summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rw-r--r--common/src/main/java/org/onap/policy/clamp/controlloop/common/exception/ControlLoopException.java2
-rw-r--r--common/src/main/java/org/onap/policy/clamp/controlloop/common/startstop/CommonCommandLineArguments.java15
-rw-r--r--models/src/main/java/org/onap/policy/clamp/controlloop/models/controlloop/persistence/concepts/JpaControlLoop.java12
-rw-r--r--models/src/main/java/org/onap/policy/clamp/controlloop/models/controlloop/persistence/concepts/JpaParticipant.java10
-rw-r--r--models/src/main/java/org/onap/policy/clamp/controlloop/models/controlloop/persistence/provider/ClElementStatisticsProvider.java2
-rw-r--r--models/src/main/java/org/onap/policy/clamp/controlloop/models/controlloop/persistence/provider/ControlLoopProvider.java6
-rw-r--r--models/src/main/java/org/onap/policy/clamp/controlloop/models/controlloop/persistence/provider/ParticipantProvider.java4
-rw-r--r--models/src/main/java/org/onap/policy/clamp/controlloop/models/controlloop/persistence/provider/ParticipantStatisticsProvider.java4
-rw-r--r--models/src/test/java/org/onap/policy/clamp/controlloop/models/controlloop/persistence/provider/ClElementStatisticsProviderTest.java31
-rw-r--r--models/src/test/java/org/onap/policy/clamp/controlloop/models/controlloop/persistence/provider/ControlLoopProviderTest.java14
-rw-r--r--models/src/test/java/org/onap/policy/clamp/controlloop/models/controlloop/persistence/provider/ParticipantProviderTest.java15
-rw-r--r--models/src/test/java/org/onap/policy/clamp/controlloop/models/controlloop/persistence/provider/ParticipantStatisticsProviderTest.java5
-rw-r--r--participant/participant-impl/participant-impl-dcae/pom.xml3
-rw-r--r--participant/participant-impl/participant-impl-dcae/src/main/java/org/onap/policy/clamp/controlloop/participant/dcae/DcaeParticipantApplication.java6
-rw-r--r--participant/participant-impl/participant-impl-dcae/src/main/java/org/onap/policy/clamp/controlloop/participant/dcae/httpclient/AbstractHttpClient.java12
-rw-r--r--participant/participant-impl/participant-impl-dcae/src/main/java/org/onap/policy/clamp/controlloop/participant/dcae/httpclient/ClampHttpClient.java2
-rw-r--r--participant/participant-impl/participant-impl-dcae/src/main/java/org/onap/policy/clamp/controlloop/participant/dcae/httpclient/ConsulDcaeHttpClient.java3
-rw-r--r--participant/participant-impl/participant-impl-dcae/src/main/java/org/onap/policy/clamp/controlloop/participant/dcae/main/handler/ControlLoopElementHandler.java3
-rw-r--r--participant/participant-impl/participant-impl-dcae/src/test/java/org/onap/policy/clamp/controlloop/participant/dcae/main/parameters/CommonTestData.java10
-rw-r--r--participant/participant-impl/participant-impl-kubernetes/src/main/java/org/onap/policy/clamp/controlloop/participant/kubernetes/controller/ChartController.java12
-rw-r--r--participant/participant-impl/participant-impl-kubernetes/src/main/java/org/onap/policy/clamp/controlloop/participant/kubernetes/helm/HelmClient.java19
-rw-r--r--participant/participant-impl/participant-impl-kubernetes/src/main/java/org/onap/policy/clamp/controlloop/participant/kubernetes/service/ChartService.java18
-rw-r--r--participant/participant-impl/participant-impl-kubernetes/src/main/java/org/onap/policy/clamp/controlloop/participant/kubernetes/service/ChartStore.java1
-rw-r--r--participant/participant-impl/participant-impl-policy/src/main/java/org/onap/policy/clamp/controlloop/participant/policy/PolicyParticipantApplication.java5
-rw-r--r--participant/participant-impl/participant-impl-policy/src/main/java/org/onap/policy/clamp/controlloop/participant/policy/client/AbstractHttpClient.java19
-rw-r--r--participant/participant-impl/participant-impl-policy/src/main/java/org/onap/policy/clamp/controlloop/participant/policy/client/PolicyApiHttpClient.java3
-rw-r--r--participant/participant-impl/participant-impl-policy/src/test/java/org/onap/policy/clamp/controlloop/participant/policy/main/parameters/CommonTestData.java17
-rw-r--r--participant/participant-impl/participant-impl-simulator/src/main/java/org/onap/policy/clamp/controlloop/participant/simulator/main/rest/AbstractRestController.java2
-rw-r--r--participant/participant-impl/participant-impl-simulator/src/main/java/org/onap/policy/clamp/controlloop/participant/simulator/simulation/SimulationProvider.java1
-rw-r--r--participant/participant-impl/participant-impl-simulator/src/main/java/org/onap/policy/clamp/controlloop/participant/simulator/simulation/rest/SimulationElementController.java111
-rw-r--r--participant/participant-impl/participant-impl-simulator/src/main/java/org/onap/policy/clamp/controlloop/participant/simulator/simulation/rest/SimulationParticipantController.java94
-rw-r--r--participant/participant-impl/participant-impl-simulator/src/test/java/org/onap/policy/clamp/controlloop/participant/simulator/endtoend/ParticipantSimulatorTest.java2
-rw-r--r--participant/participant-impl/participant-impl-simulator/src/test/java/org/onap/policy/clamp/controlloop/participant/simulator/main/parameters/CommonTestData.java13
-rw-r--r--participant/participant-intermediary/pom.xml1
-rw-r--r--participant/participant-intermediary/src/main/java/org/onap/policy/clamp/controlloop/participant/intermediary/api/ParticipantIntermediaryApi.java2
-rw-r--r--participant/participant-intermediary/src/main/java/org/onap/policy/clamp/controlloop/participant/intermediary/comm/MessageSender.java9
-rw-r--r--participant/participant-intermediary/src/main/java/org/onap/policy/clamp/controlloop/participant/intermediary/handler/ControlLoopHandler.java58
-rw-r--r--participant/participant-intermediary/src/main/java/org/onap/policy/clamp/controlloop/participant/intermediary/handler/IntermediaryActivator.java25
-rw-r--r--participant/participant-intermediary/src/main/java/org/onap/policy/clamp/controlloop/participant/intermediary/handler/ParticipantHandler.java11
-rw-r--r--runtime-controlloop/src/main/java/org/onap/policy/clamp/controlloop/runtime/commissioning/CommissioningHandler.java3
-rw-r--r--runtime-controlloop/src/main/java/org/onap/policy/clamp/controlloop/runtime/commissioning/CommissioningProvider.java14
-rw-r--r--runtime-controlloop/src/main/java/org/onap/policy/clamp/controlloop/runtime/commissioning/rest/CommissioningController.java310
-rw-r--r--runtime-controlloop/src/main/java/org/onap/policy/clamp/controlloop/runtime/instantiation/ControlLoopInstantiationProvider.java56
-rw-r--r--runtime-controlloop/src/main/java/org/onap/policy/clamp/controlloop/runtime/instantiation/InstantiationHandler.java3
-rw-r--r--runtime-controlloop/src/main/java/org/onap/policy/clamp/controlloop/runtime/instantiation/rest/InstantiationController.java206
-rw-r--r--runtime-controlloop/src/main/java/org/onap/policy/clamp/controlloop/runtime/main/rest/RestController.java1
-rw-r--r--runtime-controlloop/src/main/java/org/onap/policy/clamp/controlloop/runtime/main/startstop/ClRuntimeActivator.java3
-rw-r--r--runtime-controlloop/src/main/java/org/onap/policy/clamp/controlloop/runtime/main/startstop/ClRuntimeCommandLineArguments.java31
-rw-r--r--runtime-controlloop/src/main/java/org/onap/policy/clamp/controlloop/runtime/main/startstop/Main.java9
-rw-r--r--runtime-controlloop/src/main/java/org/onap/policy/clamp/controlloop/runtime/monitoring/MonitoringHandler.java3
-rw-r--r--runtime-controlloop/src/main/java/org/onap/policy/clamp/controlloop/runtime/monitoring/MonitoringProvider.java83
-rw-r--r--runtime-controlloop/src/main/java/org/onap/policy/clamp/controlloop/runtime/monitoring/rest/MonitoringQueryController.java69
-rw-r--r--runtime-controlloop/src/main/java/org/onap/policy/clamp/controlloop/runtime/supervision/SupervisionHandler.java19
-rw-r--r--runtime-controlloop/src/main/java/org/onap/policy/clamp/controlloop/runtime/supervision/SupervisionScanner.java8
-rw-r--r--runtime-controlloop/src/test/java/org/onap/policy/clamp/controlloop/runtime/commissioning/rest/CommissioningControllerTest.java6
-rw-r--r--runtime-controlloop/src/test/java/org/onap/policy/clamp/controlloop/runtime/monitoring/TestMonitoringProvider.java55
-rw-r--r--runtime-controlloop/src/test/java/org/onap/policy/clamp/controlloop/runtime/monitoring/rest/MonitoringQueryControllerTest.java1
-rw-r--r--runtime-controlloop/src/test/java/org/onap/policy/clamp/controlloop/runtime/util/CommonTestData.java5
-rw-r--r--runtime-controlloop/src/test/java/org/onap/policy/clamp/controlloop/runtime/util/rest/CommonRestController.java15
-rw-r--r--runtime/docs/swagger/swagger.json575
-rw-r--r--runtime/docs/swagger/swagger.pdf6218
-rw-r--r--runtime/extra/sql/dump/test-data.sql70
-rw-r--r--runtime/src/main/java/org/onap/policy/clamp/clds/Application.java19
-rw-r--r--runtime/src/main/java/org/onap/policy/clamp/clds/config/AafConfiguration.java6
-rw-r--r--runtime/src/main/java/org/onap/policy/clamp/clds/config/CamelConfiguration.java10
-rw-r--r--runtime/src/main/java/org/onap/policy/clamp/clds/model/dcae/DcaeInventoryCache.java2
-rw-r--r--runtime/src/main/java/org/onap/policy/clamp/clds/tosca/update/UnknownComponentException.java2
-rw-r--r--runtime/src/main/java/org/onap/policy/clamp/clds/tosca/update/elements/Constraint.java70
-rw-r--r--runtime/src/main/java/org/onap/policy/clamp/clds/tosca/update/elements/ToscaElementProperty.java24
-rw-r--r--runtime/src/main/java/org/onap/policy/clamp/clds/tosca/update/parser/ToscaConverterToJsonSchema.java192
-rw-r--r--runtime/src/main/java/org/onap/policy/clamp/clds/tosca/update/parser/ToscaElementParser.java44
-rw-r--r--runtime/src/main/java/org/onap/policy/clamp/clds/tosca/update/parser/metadata/ToscaMetadataParserWithDictionarySupport.java17
-rw-r--r--runtime/src/main/java/org/onap/policy/clamp/clds/tosca/update/templates/JsonTemplateManager.java41
-rw-r--r--runtime/src/main/java/org/onap/policy/clamp/clds/util/ResourceFileUtils.java6
-rw-r--r--runtime/src/main/java/org/onap/policy/clamp/configuration/ClampGsonDataFormat.java4
-rw-r--r--runtime/src/main/java/org/onap/policy/clamp/dao/model/jsontype/JsonTypeDescriptor.java3
-rw-r--r--runtime/src/main/java/org/onap/policy/clamp/loop/CsarInstaller.java49
-rw-r--r--runtime/src/main/java/org/onap/policy/clamp/loop/components/external/DcaeComponent.java38
-rw-r--r--runtime/src/main/java/org/onap/policy/clamp/loop/deploy/DcaeDeployParameters.java13
-rw-r--r--runtime/src/main/java/org/onap/policy/clamp/policy/Policy.java14
-rw-r--r--runtime/src/main/java/org/onap/policy/clamp/policy/PolicyEngineServices.java14
-rw-r--r--runtime/src/main/java/org/onap/policy/clamp/policy/pdpgroup/PdpGroupsAnalyzer.java17
-rw-r--r--runtime/src/main/java/org/onap/policy/clamp/tosca/Dictionary.java4
-rw-r--r--runtime/src/main/resources/META-INF/resources/swagger.html248
-rw-r--r--runtime/src/main/resources/clds/camel/rest/clamp-api-v2.xml46
-rw-r--r--runtime/src/main/resources/clds/camel/routes/controlloop-flows.xml22
-rw-r--r--runtime/src/test/java/org/onap/policy/clamp/clds/it/AuthorizationControllerItCase.java4
-rw-r--r--runtime/src/test/java/org/onap/policy/clamp/clds/it/RobotItCase.java21
-rw-r--r--runtime/src/test/java/org/onap/policy/clamp/clds/sdc/controller/installer/CsarHandlerTest.java1
-rw-r--r--runtime/src/test/java/org/onap/policy/clamp/clds/tosca/update/ArrayFieldTest.java3
-rw-r--r--runtime/src/test/java/org/onap/policy/clamp/clds/tosca/update/ConstraintTest.java6
-rw-r--r--runtime/src/test/java/org/onap/policy/clamp/clds/tosca/update/ToscaElementPropertyTest.java4
-rw-r--r--runtime/src/test/java/org/onap/policy/clamp/clds/util/LoggingUtilsTest.java2
-rw-r--r--runtime/src/test/java/org/onap/policy/clamp/flow/FlowLogOperationTest.java7
-rw-r--r--runtime/src/test/java/org/onap/policy/clamp/loop/LoopControllerTestItCase.java10
-rw-r--r--runtime/src/test/java/org/onap/policy/clamp/loop/LoopLogServiceTestItCase.java3
-rw-r--r--runtime/src/test/java/org/onap/policy/clamp/policy/pdpgroup/PdpGroupAnalyzerTest.java1
-rw-r--r--runtime/src/test/java/org/onap/policy/clamp/policy/pdpgroup/PdpGroupPayloadExceptionTest.java1
-rw-r--r--runtime/src/test/java/org/onap/policy/clamp/policy/pdpgroup/PdpGroupPayloadTest.java2
-rw-r--r--runtime/src/test/java/org/onap/policy/clamp/policy/pdpgroup/PoliciesPdpMergerTest.java3
100 files changed, 5221 insertions, 4097 deletions
diff --git a/common/src/main/java/org/onap/policy/clamp/controlloop/common/exception/ControlLoopException.java b/common/src/main/java/org/onap/policy/clamp/controlloop/common/exception/ControlLoopException.java
index 05b913b22..58b5368a9 100644
--- a/common/src/main/java/org/onap/policy/clamp/controlloop/common/exception/ControlLoopException.java
+++ b/common/src/main/java/org/onap/policy/clamp/controlloop/common/exception/ControlLoopException.java
@@ -44,7 +44,7 @@ public class ControlLoopException extends Exception implements ErrorResponseInfo
/**
* Instantiates a new control loop exception.
*
- * @param statusCode the return code for the exception
+ * @param statusCode the status code for the response as a HTTP status code
* @param message the message on the exception
*/
public ControlLoopException(final Response.Status statusCode, final String message) {
diff --git a/common/src/main/java/org/onap/policy/clamp/controlloop/common/startstop/CommonCommandLineArguments.java b/common/src/main/java/org/onap/policy/clamp/controlloop/common/startstop/CommonCommandLineArguments.java
index 3ef3d4cb0..ebc9028f4 100644
--- a/common/src/main/java/org/onap/policy/clamp/controlloop/common/startstop/CommonCommandLineArguments.java
+++ b/common/src/main/java/org/onap/policy/clamp/controlloop/common/startstop/CommonCommandLineArguments.java
@@ -23,7 +23,6 @@ package org.onap.policy.clamp.controlloop.common.startstop;
import java.io.File;
import java.io.PrintWriter;
import java.io.StringWriter;
-import java.net.URL;
import javax.ws.rs.core.Response;
import org.apache.commons.cli.HelpFormatter;
import org.apache.commons.cli.Option;
@@ -42,6 +41,8 @@ public class CommonCommandLineArguments {
/**
* Construct the options for the policy participant.
+ *
+ * @param options the options for the command line
*/
public CommonCommandLineArguments(final Options options) {
//@formatter:off
@@ -73,6 +74,7 @@ public class CommonCommandLineArguments {
/**
* Validate the command line options.
*
+ * @param configurationFilePath the path to the configuration file
* @throws ControlLoopException on command argument validation errors
*/
public void validate(final String configurationFilePath) throws ControlLoopException {
@@ -92,12 +94,13 @@ public class CommonCommandLineArguments {
* Print help information for policy participant.
*
* @param mainClassName the main class name
+ * @param options the options for the command
* @return the help string
*/
public String help(final String mainClassName, final Options options) {
- final HelpFormatter helpFormatter = new HelpFormatter();
- final StringWriter stringWriter = new StringWriter();
- final PrintWriter printWriter = new PrintWriter(stringWriter);
+ final var helpFormatter = new HelpFormatter();
+ final var stringWriter = new StringWriter();
+ final var printWriter = new PrintWriter(stringWriter);
helpFormatter.printHelp(printWriter, HELP_LINE_LENGTH, mainClassName + " [options...]", "options", options, 0,
0, "");
@@ -119,13 +122,13 @@ public class CommonCommandLineArguments {
}
// The file name refers to a resource on the local file system
- final URL fileUrl = ResourceUtils.getUrl4Resource(fileName);
+ final var fileUrl = ResourceUtils.getUrl4Resource(fileName);
if (fileUrl == null) {
throw new ControlLoopException(Response.Status.NOT_ACCEPTABLE,
fileTag + FILE_MESSAGE_PREAMBLE + fileName + "\" does not exist");
}
- final File theFile = new File(fileUrl.getPath());
+ final var theFile = new File(fileUrl.getPath());
if (!theFile.exists()) {
throw new ControlLoopException(Response.Status.NOT_ACCEPTABLE,
fileTag + FILE_MESSAGE_PREAMBLE + fileName + "\" does not exist");
diff --git a/models/src/main/java/org/onap/policy/clamp/controlloop/models/controlloop/persistence/concepts/JpaControlLoop.java b/models/src/main/java/org/onap/policy/clamp/controlloop/models/controlloop/persistence/concepts/JpaControlLoop.java
index cac405abd..2a2cde2ae 100644
--- a/models/src/main/java/org/onap/policy/clamp/controlloop/models/controlloop/persistence/concepts/JpaControlLoop.java
+++ b/models/src/main/java/org/onap/policy/clamp/controlloop/models/controlloop/persistence/concepts/JpaControlLoop.java
@@ -26,7 +26,6 @@ import java.util.Map;
import java.util.Map.Entry;
import java.util.UUID;
import javax.persistence.AttributeOverride;
-import javax.persistence.AttributeOverrides;
import javax.persistence.CascadeType;
import javax.persistence.Column;
import javax.persistence.EmbeddedId;
@@ -76,11 +75,8 @@ public class JpaControlLoop extends PfConcept implements PfAuthorative<ControlLo
// @formatter:off
@VerifyKey
@NotNull
- @AttributeOverrides({
- @AttributeOverride(name = "name", column = @Column(name = "definition_name")),
- @AttributeOverride(name = "version", column = @Column(name = "definition_version"))
- }
- )
+ @AttributeOverride(name = "name", column = @Column(name = "definition_name"))
+ @AttributeOverride(name = "version", column = @Column(name = "definition_version"))
private PfConceptKey definition;
// @formatter:on
@@ -158,7 +154,7 @@ public class JpaControlLoop extends PfConcept implements PfAuthorative<ControlLo
@Override
public ControlLoop toAuthorative() {
- ControlLoop controlLoop = new ControlLoop();
+ var controlLoop = new ControlLoop();
controlLoop.setName(getKey().getName());
controlLoop.setVersion(getKey().getVersion());
@@ -184,7 +180,7 @@ public class JpaControlLoop extends PfConcept implements PfAuthorative<ControlLo
this.elements = new LinkedHashMap<>(controlLoop.getElements().size());
for (Entry<UUID, ControlLoopElement> elementEntry : controlLoop.getElements().entrySet()) {
- JpaControlLoopElement jpaControlLoopElement = new JpaControlLoopElement();
+ var jpaControlLoopElement = new JpaControlLoopElement();
jpaControlLoopElement.setKey(new PfReferenceKey(getKey(), elementEntry.getValue().getId().toString()));
jpaControlLoopElement.fromAuthorative(elementEntry.getValue());
this.elements.put(elementEntry.getKey(), jpaControlLoopElement);
diff --git a/models/src/main/java/org/onap/policy/clamp/controlloop/models/controlloop/persistence/concepts/JpaParticipant.java b/models/src/main/java/org/onap/policy/clamp/controlloop/models/controlloop/persistence/concepts/JpaParticipant.java
index 69b565266..4d49683bf 100644
--- a/models/src/main/java/org/onap/policy/clamp/controlloop/models/controlloop/persistence/concepts/JpaParticipant.java
+++ b/models/src/main/java/org/onap/policy/clamp/controlloop/models/controlloop/persistence/concepts/JpaParticipant.java
@@ -23,7 +23,6 @@ package org.onap.policy.clamp.controlloop.models.controlloop.persistence.concept
import java.io.Serializable;
import java.util.List;
import javax.persistence.AttributeOverride;
-import javax.persistence.AttributeOverrides;
import javax.persistence.Column;
import javax.persistence.EmbeddedId;
import javax.persistence.Entity;
@@ -66,11 +65,8 @@ public class JpaParticipant extends PfConcept implements PfAuthorative<Participa
// @formatter:off
@VerifyKey
@NotNull
- @AttributeOverrides({
- @AttributeOverride(name = "name", column = @Column(name = "definition_name")),
- @AttributeOverride(name = "version", column = @Column(name = "definition_version"))
- }
- )
+ @AttributeOverride(name = "name", column = @Column(name = "definition_name"))
+ @AttributeOverride(name = "version", column = @Column(name = "definition_version"))
private PfConceptKey definition;
// @formatter:on
@@ -142,7 +138,7 @@ public class JpaParticipant extends PfConcept implements PfAuthorative<Participa
@Override
public Participant toAuthorative() {
- Participant participant = new Participant();
+ var participant = new Participant();
participant.setName(key.getName());
participant.setVersion(key.getVersion());
diff --git a/models/src/main/java/org/onap/policy/clamp/controlloop/models/controlloop/persistence/provider/ClElementStatisticsProvider.java b/models/src/main/java/org/onap/policy/clamp/controlloop/models/controlloop/persistence/provider/ClElementStatisticsProvider.java
index 00eab8f69..f8f1f4145 100644
--- a/models/src/main/java/org/onap/policy/clamp/controlloop/models/controlloop/persistence/provider/ClElementStatisticsProvider.java
+++ b/models/src/main/java/org/onap/policy/clamp/controlloop/models/controlloop/persistence/provider/ClElementStatisticsProvider.java
@@ -121,10 +121,12 @@ public class ClElementStatisticsProvider extends AbstractModelsProvider {
* Get filtered clElement statistics.
*
* @param name the clElement name for the statistics to get
+ * @param version the clElement version for the statistics to get
* @param startTimeStamp startTimeStamp to filter statistics
* @param endTimeStamp endTimeStamp to filter statistics
* @param sortOrder sortOrder to query database
* @param getRecordNum Total query count from database
+ * @param filterMap the filters to apply to the get operation
* @return the clElement statistics found
* @throws PfModelException on errors getting policies
*/
diff --git a/models/src/main/java/org/onap/policy/clamp/controlloop/models/controlloop/persistence/provider/ControlLoopProvider.java b/models/src/main/java/org/onap/policy/clamp/controlloop/models/controlloop/persistence/provider/ControlLoopProvider.java
index 5317bb31d..7c34a6654 100644
--- a/models/src/main/java/org/onap/policy/clamp/controlloop/models/controlloop/persistence/provider/ControlLoopProvider.java
+++ b/models/src/main/java/org/onap/policy/clamp/controlloop/models/controlloop/persistence/provider/ControlLoopProvider.java
@@ -162,13 +162,13 @@ public class ControlLoopProvider extends AbstractModelsProvider {
* @param name the name of the control loop to delete
* @param version the version of the control loop to delete
* @return the control loop deleted
- * @throws PfModelException on errors deleting the control loop
+ * @throws PfModelRuntimeException on errors deleting the control loop
*/
public ControlLoop deleteControlLoop(@NonNull final String name, @NonNull final String version) {
var controlLoopKey = new PfConceptKey(name, version);
- JpaControlLoop jpaDeleteControlLoop = getPfDao().get(JpaControlLoop.class, controlLoopKey);
+ var jpaDeleteControlLoop = getPfDao().get(JpaControlLoop.class, controlLoopKey);
if (jpaDeleteControlLoop == null) {
String errorMessage =
@@ -210,6 +210,8 @@ public class ControlLoopProvider extends AbstractModelsProvider {
/**
* Convert JPA control loop list to an authorative control loop list.
*
+ * @param <T> the type of TOSCA entity
+ * @param <J> the type of JPA TOSCA entity
* @param jpaEntityList the list to convert
* @return the authorative list
*/
diff --git a/models/src/main/java/org/onap/policy/clamp/controlloop/models/controlloop/persistence/provider/ParticipantProvider.java b/models/src/main/java/org/onap/policy/clamp/controlloop/models/controlloop/persistence/provider/ParticipantProvider.java
index c569cadd8..2ccc5d3c1 100644
--- a/models/src/main/java/org/onap/policy/clamp/controlloop/models/controlloop/persistence/provider/ParticipantProvider.java
+++ b/models/src/main/java/org/onap/policy/clamp/controlloop/models/controlloop/persistence/provider/ParticipantProvider.java
@@ -133,7 +133,7 @@ public class ParticipantProvider extends AbstractModelsProvider {
* @param name the name of the participant to delete
* @param version the version of the participant to get
* @return the participant deleted
- * @throws PfModelException on errors deleting participants
+ * @throws PfModelRuntimeException on errors deleting participants
*/
public Participant deleteParticipant(@NonNull final String name, @NonNull final String version) {
@@ -155,7 +155,7 @@ public class ParticipantProvider extends AbstractModelsProvider {
/**
* Convert JPA participant list to an authorative participant list.
*
- * @param foundParticipants the list to convert
+ * @param jpaParticipantList the list to convert
* @return the authorative list
*/
private List<Participant> asParticipantList(List<JpaParticipant> jpaParticipantList) {
diff --git a/models/src/main/java/org/onap/policy/clamp/controlloop/models/controlloop/persistence/provider/ParticipantStatisticsProvider.java b/models/src/main/java/org/onap/policy/clamp/controlloop/models/controlloop/persistence/provider/ParticipantStatisticsProvider.java
index 137af3a5e..a7216ed7f 100644
--- a/models/src/main/java/org/onap/policy/clamp/controlloop/models/controlloop/persistence/provider/ParticipantStatisticsProvider.java
+++ b/models/src/main/java/org/onap/policy/clamp/controlloop/models/controlloop/persistence/provider/ParticipantStatisticsProvider.java
@@ -54,6 +54,8 @@ public class ParticipantStatisticsProvider extends AbstractModelsProvider {
* Get Participant statistics.
*
* @param name the name of the participant statistics to get, null to get all stats
+ * @param version the version of the participant statistics to get, null to get all stats for a name
+ * @param timestamp the time stamp for the stats to get
* @return the participant statistics found
* @throws PfModelException on errors getting participant statistics
*/
@@ -77,10 +79,12 @@ public class ParticipantStatisticsProvider extends AbstractModelsProvider {
* Get filtered participant statistics.
*
* @param name the participant name for the statistics to get
+ * @param version the participant version for the statistics to get
* @param startTimeStamp startTimeStamp to filter statistics
* @param endTimeStamp endTimeStamp to filter statistics
* @param sortOrder sortOrder to query database
* @param getRecordNum Total query count from database
+ * @param filterMap the filters to apply to the get operation
* @return the participant statistics found
* @throws PfModelException on errors getting policies
*/
diff --git a/models/src/test/java/org/onap/policy/clamp/controlloop/models/controlloop/persistence/provider/ClElementStatisticsProviderTest.java b/models/src/test/java/org/onap/policy/clamp/controlloop/models/controlloop/persistence/provider/ClElementStatisticsProviderTest.java
index f5d094f9e..eb6a02898 100644
--- a/models/src/test/java/org/onap/policy/clamp/controlloop/models/controlloop/persistence/provider/ClElementStatisticsProviderTest.java
+++ b/models/src/test/java/org/onap/policy/clamp/controlloop/models/controlloop/persistence/provider/ClElementStatisticsProviderTest.java
@@ -41,8 +41,7 @@ import org.onap.policy.models.tosca.authorative.concepts.ToscaConceptIdentifier;
public class ClElementStatisticsProviderTest {
private static final String LIST_IS_NULL = ".*. is marked .*ull but is null";
private static final Coder CODER = new StandardCoder();
- private static final String CL_ELEMENT_STATS_JSON =
- "src/test/resources/providers/TestClElementStatistics.json";
+ private static final String CL_ELEMENT_STATS_JSON = "src/test/resources/providers/TestClElementStatistics.json";
private static AtomicInteger dbNameCounter = new AtomicInteger();
@@ -53,9 +52,11 @@ public class ClElementStatisticsProviderTest {
/**
* Set up test ClElement statistics provider.
+ *
+ * @throws Exception on errors
*/
@Before
- public void setupDao() throws Exception {
+ public void beforeSetupDao() throws Exception {
parameters = new PolicyModelsProviderParameters();
parameters.setDatabaseDriver("org.h2.Driver");
@@ -82,8 +83,8 @@ public class ClElementStatisticsProviderTest {
}).hasMessageMatching(LIST_IS_NULL);
ClElementStatisticsList createdClElementStats = new ClElementStatisticsList();
- createdClElementStats.setClElementStatistics(clElementStatisticsProvider
- .createClElementStatistics(inputClElementStats.getClElementStatistics()));
+ createdClElementStats.setClElementStatistics(
+ clElementStatisticsProvider.createClElementStatistics(inputClElementStats.getClElementStatistics()));
assertEquals(inputClElementStats.toString().replaceAll("\\s+", ""),
createdClElementStats.toString().replaceAll("\\s+", ""));
@@ -94,22 +95,18 @@ public class ClElementStatisticsProviderTest {
List<ClElementStatistics> getResponse;
- //Return empty list when no data present in db
- getResponse = clElementStatisticsProvider.getClElementStatistics(null, null, null,
- null);
+ // Return empty list when no data present in db
+ getResponse = clElementStatisticsProvider.getClElementStatistics(null, null, null, null);
assertThat(getResponse).isEmpty();
- clElementStatisticsProvider.createClElementStatistics(inputClElementStats
- .getClElementStatistics());
- ToscaConceptIdentifier identifier = inputClElementStats.getClElementStatistics().get(0)
- .getParticipantId();
+ clElementStatisticsProvider.createClElementStatistics(inputClElementStats.getClElementStatistics());
+ ToscaConceptIdentifier identifier = inputClElementStats.getClElementStatistics().get(0).getParticipantId();
Instant instant = inputClElementStats.getClElementStatistics().get(0).getTimeStamp();
String id = inputClElementStats.getClElementStatistics().get(0).getId().toString();
- assertEquals(1, clElementStatisticsProvider.getClElementStatistics(identifier.getName(),
- identifier.getVersion(), id, instant).size());
+ assertEquals(1, clElementStatisticsProvider
+ .getClElementStatistics(identifier.getName(), identifier.getVersion(), id, instant).size());
- assertEquals(1, clElementStatisticsProvider.getFilteredClElementStatistics("name2",
- "1.0.1", null, null, null,
- "DESC", 1).size());
+ assertEquals(1, clElementStatisticsProvider
+ .getFilteredClElementStatistics("name2", "1.0.1", null, null, null, "DESC", 1).size());
}
}
diff --git a/models/src/test/java/org/onap/policy/clamp/controlloop/models/controlloop/persistence/provider/ControlLoopProviderTest.java b/models/src/test/java/org/onap/policy/clamp/controlloop/models/controlloop/persistence/provider/ControlLoopProviderTest.java
index 96b63a23d..d362c2718 100644
--- a/models/src/test/java/org/onap/policy/clamp/controlloop/models/controlloop/persistence/provider/ControlLoopProviderTest.java
+++ b/models/src/test/java/org/onap/policy/clamp/controlloop/models/controlloop/persistence/provider/ControlLoopProviderTest.java
@@ -56,11 +56,8 @@ public class ControlLoopProviderTest {
private String originalJson = ResourceUtils.getResourceAsString(CONTROL_LOOP_JSON);
private String updateClJson = ResourceUtils.getResourceAsString(UPDATE_CL_JSON);
- /**
- * Set up test control loop provider.
- */
@Before
- public void setupDao() throws Exception {
+ public void beforeSetupDao() throws Exception {
parameters = new PolicyModelsProviderParameters();
parameters.setDatabaseDriver("org.h2.Driver");
@@ -90,7 +87,7 @@ public class ControlLoopProviderTest {
ControlLoops createdControlLoops = new ControlLoops();
createdControlLoops
- .setControlLoopList(controlLoopProvider.createControlLoops(inputControlLoops.getControlLoopList()));
+ .setControlLoopList(controlLoopProvider.createControlLoops(inputControlLoops.getControlLoopList()));
assertEquals(inputControlLoops, createdControlLoops);
}
@@ -120,11 +117,10 @@ public class ControlLoopProviderTest {
}).hasMessageMatching("filter is marked .*ull but is null");
final ToscaTypedEntityFilter<ControlLoop> filter = ToscaTypedEntityFilter.<ControlLoop>builder()
- .type("org.onap.domain.pmsh.PMSHControlLoopDefinition").build();
+ .type("org.onap.domain.pmsh.PMSHControlLoopDefinition").build();
assertEquals(2, controlLoopProvider.getFilteredControlLoops(filter).size());
}
-
@Test
public void testUpdateControlLoops() throws Exception {
assertThatThrownBy(() -> {
@@ -133,7 +129,7 @@ public class ControlLoopProviderTest {
ControlLoops existingControlLoops = new ControlLoops();
existingControlLoops
- .setControlLoopList(controlLoopProvider.createControlLoops(inputControlLoops.getControlLoopList()));
+ .setControlLoopList(controlLoopProvider.createControlLoops(inputControlLoops.getControlLoopList()));
ControlLoop updateResponse = new ControlLoop();
updateResponse = controlLoopProvider.updateControlLoop(updateControlLoops.getControlLoopList().get(0));
@@ -156,5 +152,3 @@ public class ControlLoopProviderTest {
}
}
-
-
diff --git a/models/src/test/java/org/onap/policy/clamp/controlloop/models/controlloop/persistence/provider/ParticipantProviderTest.java b/models/src/test/java/org/onap/policy/clamp/controlloop/models/controlloop/persistence/provider/ParticipantProviderTest.java
index 7a86a49dc..41c106577 100644
--- a/models/src/test/java/org/onap/policy/clamp/controlloop/models/controlloop/persistence/provider/ParticipantProviderTest.java
+++ b/models/src/test/java/org/onap/policy/clamp/controlloop/models/controlloop/persistence/provider/ParticipantProviderTest.java
@@ -42,7 +42,7 @@ public class ParticipantProviderTest {
private static final Coder CODER = new StandardCoder();
private static final String PARTICIPANT_JSON =
- "src/test/resources/providers/TestParticipant.json";
+ "src/test/resources/providers/TestParticipant.json";
private static final String LIST_IS_NULL = ".*. is marked .*ull but is null";
private static AtomicInteger dbNameCounter = new AtomicInteger();
@@ -53,11 +53,8 @@ public class ParticipantProviderTest {
private Participant updateParticipants;
private String originalJson = ResourceUtils.getResourceAsString(PARTICIPANT_JSON);
- /**
- * Set up test Participant provider.
- */
@Before
- public void setupDao() throws Exception {
+ public void beforeSetupDao() throws Exception {
parameters = new PolicyModelsProviderParameters();
parameters.setDatabaseDriver("org.h2.Driver");
@@ -86,10 +83,10 @@ public class ParticipantProviderTest {
List<Participant> createdParticipants = new ArrayList<>();
createdParticipants.addAll(participantProvider
- .createParticipants(inputParticipants));
+ .createParticipants(inputParticipants));
assertEquals(createdParticipants.get(0),
- inputParticipants.get(0));
+ inputParticipants.get(0));
}
@@ -108,14 +105,14 @@ public class ParticipantProviderTest {
assertEquals(1, participantProvider.getParticipants(name, version).size());
assertThat(participantProvider.getParticipants("invalid_name",
- "1.0.1")).isEmpty();
+ "1.0.1")).isEmpty();
assertThatThrownBy(() -> {
participantProvider.getFilteredParticipants(null);
}).hasMessageMatching("filter is marked .*ull but is null");
final ToscaTypedEntityFilter<Participant> filter = ToscaTypedEntityFilter.<Participant>builder()
- .type("org.onap.domain.pmsh.PMSHControlLoopDefinition").build();
+ .type("org.onap.domain.pmsh.PMSHControlLoopDefinition").build();
assertEquals(1, participantProvider.getFilteredParticipants(filter).size());
}
diff --git a/models/src/test/java/org/onap/policy/clamp/controlloop/models/controlloop/persistence/provider/ParticipantStatisticsProviderTest.java b/models/src/test/java/org/onap/policy/clamp/controlloop/models/controlloop/persistence/provider/ParticipantStatisticsProviderTest.java
index d4bc9777a..0fd3693c0 100644
--- a/models/src/test/java/org/onap/policy/clamp/controlloop/models/controlloop/persistence/provider/ParticipantStatisticsProviderTest.java
+++ b/models/src/test/java/org/onap/policy/clamp/controlloop/models/controlloop/persistence/provider/ParticipantStatisticsProviderTest.java
@@ -51,11 +51,8 @@ public class ParticipantStatisticsProviderTest {
private ParticipantStatisticsList inputParticipantStatistics;
private String originalJson = ResourceUtils.getResourceAsString(PARTICIPANT_STATS_JSON);
- /**
- * Set up test Participant statistics provider.
- */
@Before
- public void setupDao() throws Exception {
+ public void beforeSetupDao() throws Exception {
parameters = new PolicyModelsProviderParameters();
parameters.setDatabaseDriver("org.h2.Driver");
diff --git a/participant/participant-impl/participant-impl-dcae/pom.xml b/participant/participant-impl/participant-impl-dcae/pom.xml
index 947862626..d59bca376 100644
--- a/participant/participant-impl/participant-impl-dcae/pom.xml
+++ b/participant/participant-impl/participant-impl-dcae/pom.xml
@@ -36,14 +36,17 @@
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-web</artifactId>
+ <version>${version.springboot}</version>
</dependency>
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-validation</artifactId>
+ <version>${version.springboot}</version>
</dependency>
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-test</artifactId>
+ <version>${version.springboot}</version>
<scope>test</scope>
</dependency>
<dependency>
diff --git a/participant/participant-impl/participant-impl-dcae/src/main/java/org/onap/policy/clamp/controlloop/participant/dcae/DcaeParticipantApplication.java b/participant/participant-impl/participant-impl-dcae/src/main/java/org/onap/policy/clamp/controlloop/participant/dcae/DcaeParticipantApplication.java
index 25edaf552..9be83bbd3 100644
--- a/participant/participant-impl/participant-impl-dcae/src/main/java/org/onap/policy/clamp/controlloop/participant/dcae/DcaeParticipantApplication.java
+++ b/participant/participant-impl/participant-impl-dcae/src/main/java/org/onap/policy/clamp/controlloop/participant/dcae/DcaeParticipantApplication.java
@@ -30,8 +30,10 @@ import org.springframework.context.annotation.ComponentScan;
*
*/
@SpringBootApplication
-@ComponentScan({"org.onap.policy.clamp.controlloop.participant.dcae",
- "org.onap.policy.clamp.controlloop.participant.intermediary"})
+@ComponentScan({
+ "org.onap.policy.clamp.controlloop.participant.dcae",
+ "org.onap.policy.clamp.controlloop.participant.intermediary"
+})
@ConfigurationPropertiesScan("org.onap.policy.clamp.controlloop.participant.dcae.main.parameters")
public class DcaeParticipantApplication {
diff --git a/participant/participant-impl/participant-impl-dcae/src/main/java/org/onap/policy/clamp/controlloop/participant/dcae/httpclient/AbstractHttpClient.java b/participant/participant-impl/participant-impl-dcae/src/main/java/org/onap/policy/clamp/controlloop/participant/dcae/httpclient/AbstractHttpClient.java
index e23aaaf23..43326e725 100644
--- a/participant/participant-impl/participant-impl-dcae/src/main/java/org/onap/policy/clamp/controlloop/participant/dcae/httpclient/AbstractHttpClient.java
+++ b/participant/participant-impl/participant-impl-dcae/src/main/java/org/onap/policy/clamp/controlloop/participant/dcae/httpclient/AbstractHttpClient.java
@@ -24,7 +24,6 @@ import java.io.Closeable;
import java.io.IOException;
import java.util.Collections;
import javax.ws.rs.client.Entity;
-import javax.ws.rs.core.Response;
import javax.ws.rs.core.Response.Status;
import org.onap.policy.clamp.controlloop.common.exception.ControlLoopRuntimeException;
import org.onap.policy.clamp.controlloop.participant.dcae.model.Loop;
@@ -46,6 +45,9 @@ public abstract class AbstractHttpClient implements Closeable {
/**
* Constructor.
+ *
+ * @param restClientParameters the REST client parameters
+ * @throws ControlLoopRuntimeException on errors
*/
protected AbstractHttpClient(BusTopicParams restClientParameters) {
try {
@@ -58,7 +60,7 @@ public abstract class AbstractHttpClient implements Closeable {
protected boolean executePut(String path, String jsonEntity, int statusCode) {
try {
- Response response = httpclient.put(path, Entity.json(jsonEntity), Collections.emptyMap());
+ var response = httpclient.put(path, Entity.json(jsonEntity), Collections.emptyMap());
return response.getStatus() == statusCode;
} catch (Exception e) {
LOGGER.error(MSG_REQUEST_FAILED, httpclient.getName(), e);
@@ -68,7 +70,7 @@ public abstract class AbstractHttpClient implements Closeable {
protected boolean executePut(String path, int statusCode) {
try {
- Response response = httpclient.put(path, Entity.json(""), Collections.emptyMap());
+ var response = httpclient.put(path, Entity.json(""), Collections.emptyMap());
return response.getStatus() == statusCode;
} catch (Exception e) {
LOGGER.error(MSG_REQUEST_FAILED, httpclient.getName(), e);
@@ -78,7 +80,7 @@ public abstract class AbstractHttpClient implements Closeable {
protected Loop executePost(String path, int statusCode) {
try {
- Response response = httpclient.post(path, Entity.json(""), Collections.emptyMap());
+ var response = httpclient.post(path, Entity.json(""), Collections.emptyMap());
if (response.getStatus() != statusCode) {
return null;
}
@@ -91,7 +93,7 @@ public abstract class AbstractHttpClient implements Closeable {
protected Loop executeGet(String path, int statusCode) {
try {
- Response response = httpclient.get(path);
+ var response = httpclient.get(path);
if (response.getStatus() != statusCode) {
return null;
diff --git a/participant/participant-impl/participant-impl-dcae/src/main/java/org/onap/policy/clamp/controlloop/participant/dcae/httpclient/ClampHttpClient.java b/participant/participant-impl/participant-impl-dcae/src/main/java/org/onap/policy/clamp/controlloop/participant/dcae/httpclient/ClampHttpClient.java
index e928c138f..fd19d9d3a 100644
--- a/participant/participant-impl/participant-impl-dcae/src/main/java/org/onap/policy/clamp/controlloop/participant/dcae/httpclient/ClampHttpClient.java
+++ b/participant/participant-impl/participant-impl-dcae/src/main/java/org/onap/policy/clamp/controlloop/participant/dcae/httpclient/ClampHttpClient.java
@@ -40,6 +40,8 @@ public class ClampHttpClient extends AbstractHttpClient {
/**
* Constructor.
+ *
+ * @param parameters the DCAE parameters
*/
public ClampHttpClient(ParticipantDcaeParameters parameters) {
super(parameters.getClampClientParameters());
diff --git a/participant/participant-impl/participant-impl-dcae/src/main/java/org/onap/policy/clamp/controlloop/participant/dcae/httpclient/ConsulDcaeHttpClient.java b/participant/participant-impl/participant-impl-dcae/src/main/java/org/onap/policy/clamp/controlloop/participant/dcae/httpclient/ConsulDcaeHttpClient.java
index 4f76e3025..154dd09be 100644
--- a/participant/participant-impl/participant-impl-dcae/src/main/java/org/onap/policy/clamp/controlloop/participant/dcae/httpclient/ConsulDcaeHttpClient.java
+++ b/participant/participant-impl/participant-impl-dcae/src/main/java/org/onap/policy/clamp/controlloop/participant/dcae/httpclient/ConsulDcaeHttpClient.java
@@ -31,6 +31,8 @@ public class ConsulDcaeHttpClient extends AbstractHttpClient {
/**
* Constructor.
+ *
+ * @param parameters the DCAE parameters
*/
public ConsulDcaeHttpClient(ParticipantDcaeParameters parameters) {
super(parameters.getConsulClientParameters());
@@ -39,6 +41,7 @@ public class ConsulDcaeHttpClient extends AbstractHttpClient {
/**
* Call consult.
*
+ * @param name the name to deploy
* @param jsonEntity the Entity
* @return true
*/
diff --git a/participant/participant-impl/participant-impl-dcae/src/main/java/org/onap/policy/clamp/controlloop/participant/dcae/main/handler/ControlLoopElementHandler.java b/participant/participant-impl/participant-impl-dcae/src/main/java/org/onap/policy/clamp/controlloop/participant/dcae/main/handler/ControlLoopElementHandler.java
index 76ed1122c..6c5ff1d78 100644
--- a/participant/participant-impl/participant-impl-dcae/src/main/java/org/onap/policy/clamp/controlloop/participant/dcae/main/handler/ControlLoopElementHandler.java
+++ b/participant/participant-impl/participant-impl-dcae/src/main/java/org/onap/policy/clamp/controlloop/participant/dcae/main/handler/ControlLoopElementHandler.java
@@ -74,6 +74,9 @@ public class ControlLoopElementHandler implements ControlLoopElementListener {
/**
* Constructor.
+ *
+ * @param clampClient the CLAMP client
+ * @param consulClient the Consul client
*/
public ControlLoopElementHandler(ClampHttpClient clampClient, ConsulDcaeHttpClient consulClient) {
this.clampClient = clampClient;
diff --git a/participant/participant-impl/participant-impl-dcae/src/test/java/org/onap/policy/clamp/controlloop/participant/dcae/main/parameters/CommonTestData.java b/participant/participant-impl/participant-impl-dcae/src/test/java/org/onap/policy/clamp/controlloop/participant/dcae/main/parameters/CommonTestData.java
index cb06fcb15..5d8881eb3 100644
--- a/participant/participant-impl/participant-impl-dcae/src/test/java/org/onap/policy/clamp/controlloop/participant/dcae/main/parameters/CommonTestData.java
+++ b/participant/participant-impl/participant-impl-dcae/src/test/java/org/onap/policy/clamp/controlloop/participant/dcae/main/parameters/CommonTestData.java
@@ -59,16 +59,19 @@ public class CommonTestData {
/**
* Converts the contents of a map to a parameter class.
*
+ * @param <T> specific type of ParameterGroup class
* @param source property map
* @param clazz class of object to be created from the map
* @return a new object represented by the map
+ * @throws ControlLoopRuntimeException on errors
*/
public <T extends ParameterGroup> T toObject(final Map<String, Object> source, final Class<T> clazz) {
try {
return coder.convert(source, clazz);
} catch (final CoderException e) {
- throw new RuntimeException("cannot create " + clazz.getName() + " from map", e);
+ throw new ControlLoopRuntimeException(Response.Status.INTERNAL_SERVER_ERROR,
+ "cannot create " + clazz.getName() + " from map", e);
}
}
@@ -95,6 +98,7 @@ public class CommonTestData {
*
* @param isEmpty boolean value to represent that object created should be empty or not
* @return a property map suitable for constructing an object
+ * @throws ControlLoopRuntimeException on errors
*/
public Map<String, Object> getClampClientParametersMap(final boolean isEmpty) {
final Map<String, Object> map = new TreeMap<>();
@@ -121,6 +125,7 @@ public class CommonTestData {
*
* @param isEmpty boolean value to represent that object created should be empty or not
* @return a property map suitable for constructing an object
+ * @throws ControlLoopRuntimeException on errors
*/
public Map<String, Object> getConsulClientParametersMap(final boolean isEmpty) {
final Map<String, Object> map = new TreeMap<>();
@@ -228,6 +233,7 @@ public class CommonTestData {
*
* @param port port to be inserted into the parameters
* @return the standard participant parameters
+ * @throws ControlLoopRuntimeException on errors
*/
public ParticipantDcaeParameters getParticipantParameterGroup(int port) {
try {
@@ -244,6 +250,7 @@ public class CommonTestData {
*
* @param port port to be inserted into the parameters
* @return the standard participant parameters
+ * @throws ControlLoopRuntimeException on errors
*/
public static String getParticipantParameterGroupAsString(int port) {
@@ -289,6 +296,7 @@ public class CommonTestData {
*
* @param status the status of Partecipant
* @return the JSON
+ * @throws ControlLoopRuntimeException on errors
*/
public static String createJsonStatus(String status) {
try {
diff --git a/participant/participant-impl/participant-impl-kubernetes/src/main/java/org/onap/policy/clamp/controlloop/participant/kubernetes/controller/ChartController.java b/participant/participant-impl/participant-impl-kubernetes/src/main/java/org/onap/policy/clamp/controlloop/participant/kubernetes/controller/ChartController.java
index 427b06fc5..5560e47a8 100644
--- a/participant/participant-impl/participant-impl-kubernetes/src/main/java/org/onap/policy/clamp/controlloop/participant/kubernetes/controller/ChartController.java
+++ b/participant/participant-impl/participant-impl-kubernetes/src/main/java/org/onap/policy/clamp/controlloop/participant/kubernetes/controller/ChartController.java
@@ -74,7 +74,8 @@ public class ChartController {
*
* @param info Info of the chart to be installed
* @return Status of the install operation
- * @throws ServiceException incase of error
+ * @throws ServiceException in case of error
+ * @throws IOException in case of IO error
*/
@PostMapping(path = "/install", consumes = MediaType.APPLICATION_JSON_VALUE,
produces = MediaType.APPLICATION_JSON_VALUE)
@@ -97,7 +98,7 @@ public class ChartController {
* @param name name of the chart
* @param version version of the chart
* @return Status of operation
- * @throws ServiceException incase of error.
+ * @throws ServiceException in case of error.
*/
@DeleteMapping(path = "/uninstall/{name}/{version}", produces = MediaType.APPLICATION_JSON_VALUE)
@ApiOperation(value = "Uninstall the Chart")
@@ -118,9 +119,10 @@ public class ChartController {
*
* @param chartFile Multipart file for the helm chart
* @param infoJson AppInfo of the chart
+ * @param overrideFile the file for overriding the chart
* @return Status of onboard operation
- * @throws ServiceException incase of error
- * @throws IOException incase of IO error
+ * @throws ServiceException in case of error
+ * @throws IOException in case of IO error
*/
@PostMapping(path = "/charts", consumes = MediaType.MULTIPART_FORM_DATA_VALUE,
produces = MediaType.APPLICATION_JSON_VALUE)
@@ -147,7 +149,7 @@ public class ChartController {
* @param name name of the chart
* @param version version of the chart
* @return Status of operation
- * @throws ServiceException incase of error.
+ * @throws ServiceException in case of error.
*/
@DeleteMapping(path = "/charts/{name}/{version}")
@ApiOperation(value = "Delete the chart")
diff --git a/participant/participant-impl/participant-impl-kubernetes/src/main/java/org/onap/policy/clamp/controlloop/participant/kubernetes/helm/HelmClient.java b/participant/participant-impl/participant-impl-kubernetes/src/main/java/org/onap/policy/clamp/controlloop/participant/kubernetes/helm/HelmClient.java
index 1b7599ce9..343a44617 100644
--- a/participant/participant-impl/participant-impl-kubernetes/src/main/java/org/onap/policy/clamp/controlloop/participant/kubernetes/helm/HelmClient.java
+++ b/participant/participant-impl/participant-impl-kubernetes/src/main/java/org/onap/policy/clamp/controlloop/participant/kubernetes/helm/HelmClient.java
@@ -46,7 +46,6 @@ public class HelmClient {
private static final Logger logger = LoggerFactory.getLogger(MethodHandles.lookup().lookupClass());
-
/**
* Install a chart.
*
@@ -70,7 +69,9 @@ public class HelmClient {
* Finds helm chart repository for the chart.
*
* @param chart ChartInfo.
- * @throws ServiceException incase of error
+ * @return the chart repository as a string
+ * @throws ServiceException in case of error
+ * @throws IOException in case of IO errors
*/
public String findChartRepository(ChartInfo chart) throws ServiceException, IOException {
updateHelmRepo();
@@ -127,8 +128,8 @@ public class HelmClient {
return output;
} catch (InterruptedException ie) {
Thread.currentThread().interrupt();
- throw new ServiceException(
- "Failed to execute the Command: " + commandStr + ", the command was interrupted", ie);
+ throw new ServiceException("Failed to execute the Command: " + commandStr + ", the command was interrupted",
+ ie);
} catch (Exception exc) {
throw new ServiceException("Failed to execute the Command: " + commandStr, exc);
}
@@ -139,12 +140,12 @@ public class HelmClient {
// @formatter:off
List<String> helmArguments = new ArrayList<>(
Arrays.asList(
- "helm",
- "install", chart.getReleaseName(), chart.getRepository() + "/" + chart.getChartName(),
- "--version", chart.getVersion(),
- "--namespace", chart.getNamespace()
+ "helm",
+ "install", chart.getReleaseName(), chart.getRepository() + "/" + chart.getChartName(),
+ "--version", chart.getVersion(),
+ "--namespace", chart.getNamespace()
)
- );
+ );
// @formatter:on
// Verify if values.yaml available for the chart
diff --git a/participant/participant-impl/participant-impl-kubernetes/src/main/java/org/onap/policy/clamp/controlloop/participant/kubernetes/service/ChartService.java b/participant/participant-impl/participant-impl-kubernetes/src/main/java/org/onap/policy/clamp/controlloop/participant/kubernetes/service/ChartService.java
index 6accac339..29a49a9ff 100644
--- a/participant/participant-impl/participant-impl-kubernetes/src/main/java/org/onap/policy/clamp/controlloop/participant/kubernetes/service/ChartService.java
+++ b/participant/participant-impl/participant-impl-kubernetes/src/main/java/org/onap/policy/clamp/controlloop/participant/kubernetes/service/ChartService.java
@@ -53,7 +53,7 @@ public class ChartService {
* @param name name of the app
* @param version version of the app
* @return chart
- * @throws ServiceException incase of error.
+ * @throws ServiceException in case of error.
*/
public ChartInfo getChart(String name, String version) throws ServiceException {
return chartStore.getChart(name, version);
@@ -63,12 +63,13 @@ public class ChartService {
* Save a helm chart.
* @param chartInfo name and version of the app.
* @param chartFile Helm chart file
+ * @param overrideFile override file
* @return chart details of the helm chart
- * @throws IOException incase of IO error
- * @throws ServiceException incase of error
+ * @throws IOException in case of IO error
+ * @throws ServiceException in case of error
*/
public ChartInfo saveChart(ChartInfo chartInfo, MultipartFile chartFile, MultipartFile overrideFile)
- throws IOException, ServiceException {
+ throws IOException, ServiceException {
return chartStore.saveChart(chartInfo, chartFile, overrideFile);
}
@@ -83,7 +84,8 @@ public class ChartService {
/**
* Install a helm chart.
* @param chart name and version.
- * @throws ServiceException incase of error
+ * @throws ServiceException in case of error
+ * @throws IOException in case of IO errors
*/
public void installChart(ChartInfo chart) throws ServiceException, IOException {
if (chart.getRepository() == null) {
@@ -102,7 +104,9 @@ public class ChartService {
/**
* Finds helm chart repository for a given chart.
* @param chart chartInfo.
- * @throws ServiceException incase of error
+ * @return the chart repo as a string
+ * @throws ServiceException in case of error
+ * @throws IOException in case of IO errors
*/
public String findChartRepo(ChartInfo chart) throws ServiceException, IOException {
logger.info("Fetching helm chart repository for the given chart {} ", chart.getChartName());
@@ -112,7 +116,7 @@ public class ChartService {
/**
* Uninstall a helm chart.
* @param chart name and version
- * @throws ServiceException incase of error.
+ * @throws ServiceException in case of error.
*/
public void uninstallChart(ChartInfo chart) throws ServiceException {
logger.info("Uninstalling helm deployment {}", chart.getReleaseName());
diff --git a/participant/participant-impl/participant-impl-kubernetes/src/main/java/org/onap/policy/clamp/controlloop/participant/kubernetes/service/ChartStore.java b/participant/participant-impl/participant-impl-kubernetes/src/main/java/org/onap/policy/clamp/controlloop/participant/kubernetes/service/ChartStore.java
index 041c0c810..e7458a4cd 100644
--- a/participant/participant-impl/participant-impl-kubernetes/src/main/java/org/onap/policy/clamp/controlloop/participant/kubernetes/service/ChartStore.java
+++ b/participant/participant-impl/participant-impl-kubernetes/src/main/java/org/onap/policy/clamp/controlloop/participant/kubernetes/service/ChartStore.java
@@ -94,6 +94,7 @@ public class ChartStore {
*
* @param chartInfo chartInfo
* @param chartFile helm chart file.
+ * @param overrideFile override file.
* @return chart
* @throws IOException incase of IO error
* @throws ServiceException incase of error.
diff --git a/participant/participant-impl/participant-impl-policy/src/main/java/org/onap/policy/clamp/controlloop/participant/policy/PolicyParticipantApplication.java b/participant/participant-impl/participant-impl-policy/src/main/java/org/onap/policy/clamp/controlloop/participant/policy/PolicyParticipantApplication.java
index bdc09c8b9..4869b7c2f 100644
--- a/participant/participant-impl/participant-impl-policy/src/main/java/org/onap/policy/clamp/controlloop/participant/policy/PolicyParticipantApplication.java
+++ b/participant/participant-impl/participant-impl-policy/src/main/java/org/onap/policy/clamp/controlloop/participant/policy/PolicyParticipantApplication.java
@@ -30,8 +30,9 @@ import org.springframework.context.annotation.ComponentScan;
*
*/
@SpringBootApplication
-@ComponentScan({"org.onap.policy.clamp.controlloop.participant.policy",
- "org.onap.policy.clamp.controlloop.participant.intermediary"})
+@ComponentScan({
+ "org.onap.policy.clamp.controlloop.participant.policy",
+ "org.onap.policy.clamp.controlloop.participant.intermediary"})
@ConfigurationPropertiesScan("org.onap.policy.clamp.controlloop.participant.policy.main.parameters")
public class PolicyParticipantApplication {
diff --git a/participant/participant-impl/participant-impl-policy/src/main/java/org/onap/policy/clamp/controlloop/participant/policy/client/AbstractHttpClient.java b/participant/participant-impl/participant-impl-policy/src/main/java/org/onap/policy/clamp/controlloop/participant/policy/client/AbstractHttpClient.java
index 4b6686156..2579585e5 100644
--- a/participant/participant-impl/participant-impl-policy/src/main/java/org/onap/policy/clamp/controlloop/participant/policy/client/AbstractHttpClient.java
+++ b/participant/participant-impl/participant-impl-policy/src/main/java/org/onap/policy/clamp/controlloop/participant/policy/client/AbstractHttpClient.java
@@ -41,25 +41,26 @@ public abstract class AbstractHttpClient implements Closeable {
private static final Logger LOGGER = LoggerFactory.getLogger(AbstractHttpClient.class);
private final HttpClient httpclient;
-
/**
* Constructor.
+ *
+ * @param policyParticipantParameters the parameters for the policy participant
+ * @throws ControlLoopRuntimeException on client start errors
*/
- protected AbstractHttpClient(BusTopicParams policyApiParameters) {
+ protected AbstractHttpClient(BusTopicParams policyParticipantParameters) {
try {
- httpclient = HttpClientFactoryInstance.getClientFactory().build(policyApiParameters);
+ httpclient = HttpClientFactoryInstance.getClientFactory().build(policyParticipantParameters);
} catch (final Exception e) {
throw new ControlLoopRuntimeException(Status.INTERNAL_SERVER_ERROR, " Client failed to start", e);
}
}
protected Response executePost(String path, final Entity<?> entity) {
- Response response = httpclient.post(path, entity, Map.of(HttpHeaders.ACCEPT,
- MediaType.APPLICATION_JSON, HttpHeaders.CONTENT_TYPE, MediaType.APPLICATION_JSON));
+ var response = httpclient.post(path, entity, Map.of(HttpHeaders.ACCEPT, MediaType.APPLICATION_JSON,
+ HttpHeaders.CONTENT_TYPE, MediaType.APPLICATION_JSON));
if (response.getStatus() / 100 != 2) {
- LOGGER.error(
- "Invocation of path {} failed for entity {}. Response status: {}, Response status info: {}",
- path, entity, response.getStatus(), response.getStatusInfo());
+ LOGGER.error("Invocation of path {} failed for entity {}. Response status: {}, Response status info: {}",
+ path, entity, response.getStatus(), response.getStatusInfo());
}
return response;
}
@@ -72,4 +73,4 @@ public abstract class AbstractHttpClient implements Closeable {
public void close() throws IOException {
httpclient.shutdown();
}
-} \ No newline at end of file
+}
diff --git a/participant/participant-impl/participant-impl-policy/src/main/java/org/onap/policy/clamp/controlloop/participant/policy/client/PolicyApiHttpClient.java b/participant/participant-impl/participant-impl-policy/src/main/java/org/onap/policy/clamp/controlloop/participant/policy/client/PolicyApiHttpClient.java
index 3d1047ce4..38a79f7f6 100644
--- a/participant/participant-impl/participant-impl-policy/src/main/java/org/onap/policy/clamp/controlloop/participant/policy/client/PolicyApiHttpClient.java
+++ b/participant/participant-impl/participant-impl-policy/src/main/java/org/onap/policy/clamp/controlloop/participant/policy/client/PolicyApiHttpClient.java
@@ -35,6 +35,8 @@ public class PolicyApiHttpClient extends AbstractHttpClient {
/**
* Constructor.
+ *
+ * @param parameters the policy participant parameters
*/
public PolicyApiHttpClient(ParticipantPolicyParameters parameters) {
super(parameters.getPolicyApiParameters());
@@ -45,6 +47,7 @@ public class PolicyApiHttpClient extends AbstractHttpClient {
*
* @param toscaServiceTemplate the whole ToscaServiceTemplate
* @return Response
+ * @throws PfModelException on errors creating the policy type
*/
public Response createPolicyType(ToscaServiceTemplate toscaServiceTemplate) throws PfModelException {
return executePost(POLICY_URI + "policytypes", Entity.entity(toscaServiceTemplate, MediaType.APPLICATION_JSON));
diff --git a/participant/participant-impl/participant-impl-policy/src/test/java/org/onap/policy/clamp/controlloop/participant/policy/main/parameters/CommonTestData.java b/participant/participant-impl/participant-impl-policy/src/test/java/org/onap/policy/clamp/controlloop/participant/policy/main/parameters/CommonTestData.java
index e3d7e3aa5..1acc2c838 100644
--- a/participant/participant-impl/participant-impl-policy/src/test/java/org/onap/policy/clamp/controlloop/participant/policy/main/parameters/CommonTestData.java
+++ b/participant/participant-impl/participant-impl-policy/src/test/java/org/onap/policy/clamp/controlloop/participant/policy/main/parameters/CommonTestData.java
@@ -29,6 +29,7 @@ import java.util.List;
import java.util.Map;
import java.util.TreeMap;
import javax.ws.rs.core.Response;
+import javax.ws.rs.core.Response.Status;
import org.onap.policy.clamp.controlloop.common.exception.ControlLoopRuntimeException;
import org.onap.policy.common.endpoints.parameters.TopicParameters;
import org.onap.policy.common.parameters.ParameterGroup;
@@ -51,15 +52,18 @@ public class CommonTestData {
/**
* Converts the contents of a map to a parameter class.
*
+ * @param <T> the type of ParameterGroup to process
* @param source property map
* @param clazz class of object to be created from the map
* @return a new object represented by the map
+ * @throws ControlLoopRuntimeException on decoding errors
*/
public <T extends ParameterGroup> T toObject(final Map<String, Object> source, final Class<T> clazz) {
try {
return coder.convert(source, clazz);
} catch (final CoderException e) {
- throw new RuntimeException("cannot create " + clazz.getName() + " from map", e);
+ throw new ControlLoopRuntimeException(Status.NOT_ACCEPTABLE,
+ "cannot create " + clazz.getName() + " from map", e);
}
}
@@ -163,14 +167,15 @@ public class CommonTestData {
*
* @param port port to be inserted into the parameters
* @return the standard participant parameters
+ * @throws ControlLoopRuntimeException on parameter read errors
*/
public ParticipantPolicyParameters getParticipantPolicyParameters(int port) {
try {
return coder.decode(getParticipantPolicyParametersAsString(port), ParticipantPolicyParameters.class);
} catch (CoderException e) {
- throw new ControlLoopRuntimeException(Response.Status.NOT_ACCEPTABLE,
- "cannot read participant parameters", e);
+ throw new ControlLoopRuntimeException(Response.Status.NOT_ACCEPTABLE, "cannot read participant parameters",
+ e);
}
}
@@ -179,6 +184,7 @@ public class CommonTestData {
*
* @param port port to be inserted into the parameters
* @return the standard participant parameters
+ * @throws ControlLoopRuntimeException on parameter read errors
*/
public static String getParticipantPolicyParametersAsString(int port) {
@@ -192,8 +198,8 @@ public class CommonTestData {
return json;
} catch (IOException e) {
- throw new ControlLoopRuntimeException(Response.Status.NOT_ACCEPTABLE,
- "cannot read participant parameters", e);
+ throw new ControlLoopRuntimeException(Response.Status.NOT_ACCEPTABLE, "cannot read participant parameters",
+ e);
}
}
@@ -211,6 +217,7 @@ public class CommonTestData {
/**
* Nulls out a field within a JSON string.
+ *
* @param json JSON string
* @param field field to be nulled out
* @return a new JSON string with the field nulled out
diff --git a/participant/participant-impl/participant-impl-simulator/src/main/java/org/onap/policy/clamp/controlloop/participant/simulator/main/rest/AbstractRestController.java b/participant/participant-impl/participant-impl-simulator/src/main/java/org/onap/policy/clamp/controlloop/participant/simulator/main/rest/AbstractRestController.java
index b872ec0c6..5a6dbfa81 100644
--- a/participant/participant-impl/participant-impl-simulator/src/main/java/org/onap/policy/clamp/controlloop/participant/simulator/main/rest/AbstractRestController.java
+++ b/participant/participant-impl/participant-impl-simulator/src/main/java/org/onap/policy/clamp/controlloop/participant/simulator/main/rest/AbstractRestController.java
@@ -92,6 +92,8 @@ public abstract class AbstractRestController {
/**
* create a Rest Controller.
+ *
+ * @param simulationProvider the provider for the simulation participant
*/
protected AbstractRestController(SimulationProvider simulationProvider) {
this.simulationProvider = simulationProvider;
diff --git a/participant/participant-impl/participant-impl-simulator/src/main/java/org/onap/policy/clamp/controlloop/participant/simulator/simulation/SimulationProvider.java b/participant/participant-impl/participant-impl-simulator/src/main/java/org/onap/policy/clamp/controlloop/participant/simulator/simulation/SimulationProvider.java
index 6ee4eac3e..49338c2b0 100644
--- a/participant/participant-impl/participant-impl-simulator/src/main/java/org/onap/policy/clamp/controlloop/participant/simulator/simulation/SimulationProvider.java
+++ b/participant/participant-impl/participant-impl-simulator/src/main/java/org/onap/policy/clamp/controlloop/participant/simulator/simulation/SimulationProvider.java
@@ -41,6 +41,7 @@ public class SimulationProvider {
/**
* Create a participant simulation provider.
+ * @param intermediaryApi the intermediary to use for talking to the CLAMP runtime
*/
public SimulationProvider(ParticipantIntermediaryApi intermediaryApi) {
this.intermediaryApi = intermediaryApi;
diff --git a/participant/participant-impl/participant-impl-simulator/src/main/java/org/onap/policy/clamp/controlloop/participant/simulator/simulation/rest/SimulationElementController.java b/participant/participant-impl/participant-impl-simulator/src/main/java/org/onap/policy/clamp/controlloop/participant/simulator/simulation/rest/SimulationElementController.java
index de2a06223..e0569cf0f 100644
--- a/participant/participant-impl/participant-impl-simulator/src/main/java/org/onap/policy/clamp/controlloop/participant/simulator/simulation/rest/SimulationElementController.java
+++ b/participant/participant-impl/participant-impl-simulator/src/main/java/org/onap/policy/clamp/controlloop/participant/simulator/simulation/rest/SimulationElementController.java
@@ -68,40 +68,42 @@ public class SimulationElementController extends AbstractRestController {
*/
// @formatter:off
@GetMapping("/elements/{name}/{version}")
- @ApiOperation(value = "Query details of the requested simulated control loop elements",
- notes = "Queries details of the requested simulated control loop elements, "
- + "returning all control loop element details",
- response = ControlLoops.class,
- tags = {
- "Clamp Control Loop Participant Simulator API"
- },
- authorizations = @Authorization(value = AUTHORIZATION_TYPE),
- responseHeaders = {
- @ResponseHeader(
- name = VERSION_MINOR_NAME, description = VERSION_MINOR_DESCRIPTION,
- response = String.class),
- @ResponseHeader(name = VERSION_PATCH_NAME, description = VERSION_PATCH_DESCRIPTION,
- response = String.class),
- @ResponseHeader(name = VERSION_LATEST_NAME, description = VERSION_LATEST_DESCRIPTION,
- response = String.class),
- @ResponseHeader(name = REQUEST_ID_NAME, description = REQUEST_ID_HDR_DESCRIPTION,
- response = UUID.class)},
- extensions = {
- @Extension(
- name = EXTENSION_NAME,
- properties = {
- @ExtensionProperty(name = API_VERSION_NAME, value = API_VERSION),
- @ExtensionProperty(name = LAST_MOD_NAME, value = LAST_MOD_RELEASE)
- }
- )
- }
+ @ApiOperation(
+ value = "Query details of the requested simulated control loop elements",
+ notes = "Queries details of the requested simulated control loop elements, "
+ + "returning all control loop element details",
+ response = ControlLoops.class,
+ tags = {
+ "Clamp Control Loop Participant Simulator API"
+ },
+ authorizations = @Authorization(value = AUTHORIZATION_TYPE),
+ responseHeaders = {
+ @ResponseHeader(
+ name = VERSION_MINOR_NAME, description = VERSION_MINOR_DESCRIPTION,
+ response = String.class),
+ @ResponseHeader(name = VERSION_PATCH_NAME, description = VERSION_PATCH_DESCRIPTION,
+ response = String.class),
+ @ResponseHeader(name = VERSION_LATEST_NAME, description = VERSION_LATEST_DESCRIPTION,
+ response = String.class),
+ @ResponseHeader(name = REQUEST_ID_NAME, description = REQUEST_ID_HDR_DESCRIPTION,
+ response = UUID.class)},
+ extensions = {
+ @Extension
+ (
+ name = EXTENSION_NAME,
+ properties = {
+ @ExtensionProperty(name = API_VERSION_NAME, value = API_VERSION),
+ @ExtensionProperty(name = LAST_MOD_NAME, value = LAST_MOD_RELEASE)
+ }
+ )
+ }
)
@ApiResponses(
- value = {
- @ApiResponse(code = AUTHENTICATION_ERROR_CODE, message = AUTHENTICATION_ERROR_MESSAGE),
- @ApiResponse(code = AUTHORIZATION_ERROR_CODE, message = AUTHORIZATION_ERROR_MESSAGE),
- @ApiResponse(code = SERVER_ERROR_CODE, message = SERVER_ERROR_MESSAGE)
- }
+ value = {
+ @ApiResponse(code = AUTHENTICATION_ERROR_CODE, message = AUTHENTICATION_ERROR_MESSAGE),
+ @ApiResponse(code = AUTHORIZATION_ERROR_CODE, message = AUTHORIZATION_ERROR_MESSAGE),
+ @ApiResponse(code = SERVER_ERROR_CODE, message = SERVER_ERROR_MESSAGE)
+ }
)
// @formatter:on
public ResponseEntity<Map<UUID, ControlLoopElement>> elements(
@@ -134,31 +136,32 @@ public class SimulationElementController extends AbstractRestController {
},
authorizations = @Authorization(value = AUTHORIZATION_TYPE),
responseHeaders = {
- @ResponseHeader(
- name = VERSION_MINOR_NAME,
- description = VERSION_MINOR_DESCRIPTION,
- response = String.class),
- @ResponseHeader(
- name = VERSION_PATCH_NAME,
- description = VERSION_PATCH_DESCRIPTION,
- response = String.class),
- @ResponseHeader(
- name = VERSION_LATEST_NAME,
- description = VERSION_LATEST_DESCRIPTION,
- response = String.class),
- @ResponseHeader(
- name = REQUEST_ID_NAME,
- description = REQUEST_ID_HDR_DESCRIPTION,
- response = UUID.class)
- },
+ @ResponseHeader(
+ name = VERSION_MINOR_NAME,
+ description = VERSION_MINOR_DESCRIPTION,
+ response = String.class),
+ @ResponseHeader(
+ name = VERSION_PATCH_NAME,
+ description = VERSION_PATCH_DESCRIPTION,
+ response = String.class),
+ @ResponseHeader(
+ name = VERSION_LATEST_NAME,
+ description = VERSION_LATEST_DESCRIPTION,
+ response = String.class),
+ @ResponseHeader(
+ name = REQUEST_ID_NAME,
+ description = REQUEST_ID_HDR_DESCRIPTION,
+ response = UUID.class)
+ },
extensions = {
- @Extension(
- name = EXTENSION_NAME,
- properties = {
+ @Extension
+ (
+ name = EXTENSION_NAME,
+ properties = {
@ExtensionProperty(name = API_VERSION_NAME, value = API_VERSION),
@ExtensionProperty(name = LAST_MOD_NAME, value = LAST_MOD_RELEASE)
- }
- )
+ }
+ )
}
)
@ApiResponses(
diff --git a/participant/participant-impl/participant-impl-simulator/src/main/java/org/onap/policy/clamp/controlloop/participant/simulator/simulation/rest/SimulationParticipantController.java b/participant/participant-impl/participant-impl-simulator/src/main/java/org/onap/policy/clamp/controlloop/participant/simulator/simulation/rest/SimulationParticipantController.java
index 715ec3410..25ae4ac22 100644
--- a/participant/participant-impl/participant-impl-simulator/src/main/java/org/onap/policy/clamp/controlloop/participant/simulator/simulation/rest/SimulationParticipantController.java
+++ b/participant/participant-impl/participant-impl-simulator/src/main/java/org/onap/policy/clamp/controlloop/participant/simulator/simulation/rest/SimulationParticipantController.java
@@ -76,39 +76,38 @@ public class SimulationParticipantController extends AbstractRestController {
},
authorizations = @Authorization(value = AUTHORIZATION_TYPE),
responseHeaders = {
- @ResponseHeader(
- name = VERSION_MINOR_NAME, description = VERSION_MINOR_DESCRIPTION,
- response = String.class),
- @ResponseHeader(name = VERSION_PATCH_NAME, description = VERSION_PATCH_DESCRIPTION,
- response = String.class),
- @ResponseHeader(name = VERSION_LATEST_NAME, description = VERSION_LATEST_DESCRIPTION,
- response = String.class),
- @ResponseHeader(name = REQUEST_ID_NAME, description = REQUEST_ID_HDR_DESCRIPTION,
+ @ResponseHeader(
+ name = VERSION_MINOR_NAME, description = VERSION_MINOR_DESCRIPTION,
+ response = String.class),
+ @ResponseHeader(name = VERSION_PATCH_NAME, description = VERSION_PATCH_DESCRIPTION,
+ response = String.class),
+ @ResponseHeader(name = VERSION_LATEST_NAME, description = VERSION_LATEST_DESCRIPTION,
+ response = String.class),
+ @ResponseHeader(name = REQUEST_ID_NAME, description = REQUEST_ID_HDR_DESCRIPTION,
response = UUID.class)},
extensions = {
- @Extension(
- name = EXTENSION_NAME,
- properties = {
- @ExtensionProperty(name = API_VERSION_NAME, value = API_VERSION),
- @ExtensionProperty(name = LAST_MOD_NAME, value = LAST_MOD_RELEASE)
- }
+ @Extension
+ (
+ name = EXTENSION_NAME,
+ properties = {
+ @ExtensionProperty(name = API_VERSION_NAME, value = API_VERSION),
+ @ExtensionProperty(name = LAST_MOD_NAME, value = LAST_MOD_RELEASE)
+ }
)
}
)
@ApiResponses(
value = {
- @ApiResponse(code = AUTHENTICATION_ERROR_CODE, message = AUTHENTICATION_ERROR_MESSAGE),
- @ApiResponse(code = AUTHORIZATION_ERROR_CODE, message = AUTHORIZATION_ERROR_MESSAGE),
- @ApiResponse(code = SERVER_ERROR_CODE, message = SERVER_ERROR_MESSAGE)
+ @ApiResponse(code = AUTHENTICATION_ERROR_CODE, message = AUTHENTICATION_ERROR_MESSAGE),
+ @ApiResponse(code = AUTHORIZATION_ERROR_CODE, message = AUTHORIZATION_ERROR_MESSAGE),
+ @ApiResponse(code = SERVER_ERROR_CODE, message = SERVER_ERROR_MESSAGE)
}
)
// @formatter:on
public ResponseEntity<List<Participant>> participants(
- @RequestHeader(
- name = REQUEST_ID_NAME,
- required = false) @ApiParam(REQUEST_ID_PARAM_DESCRIPTION) UUID requestId,
- @ApiParam(value = "Participant name", required = true) @PathVariable("name") String name,
- @ApiParam(value = "Participant version", required = true) @PathVariable("version") String version) {
+ @RequestHeader(name = REQUEST_ID_NAME, required = false) @ApiParam(REQUEST_ID_PARAM_DESCRIPTION) UUID requestId,
+ @ApiParam(value = "Participant name", required = true) @PathVariable("name") String name,
+ @ApiParam(value = "Participant version", required = true) @PathVariable("version") String version) {
return ResponseEntity.ok().body(getSimulationProvider().getParticipants(name, version));
}
@@ -131,31 +130,32 @@ public class SimulationParticipantController extends AbstractRestController {
},
authorizations = @Authorization(value = AUTHORIZATION_TYPE),
responseHeaders = {
- @ResponseHeader(
- name = VERSION_MINOR_NAME,
- description = VERSION_MINOR_DESCRIPTION,
- response = String.class),
- @ResponseHeader(
- name = VERSION_PATCH_NAME,
- description = VERSION_PATCH_DESCRIPTION,
- response = String.class),
- @ResponseHeader(
- name = VERSION_LATEST_NAME,
- description = VERSION_LATEST_DESCRIPTION,
- response = String.class),
- @ResponseHeader(
- name = REQUEST_ID_NAME,
- description = REQUEST_ID_HDR_DESCRIPTION,
- response = UUID.class)
- },
+ @ResponseHeader(
+ name = VERSION_MINOR_NAME,
+ description = VERSION_MINOR_DESCRIPTION,
+ response = String.class),
+ @ResponseHeader(
+ name = VERSION_PATCH_NAME,
+ description = VERSION_PATCH_DESCRIPTION,
+ response = String.class),
+ @ResponseHeader(
+ name = VERSION_LATEST_NAME,
+ description = VERSION_LATEST_DESCRIPTION,
+ response = String.class),
+ @ResponseHeader(
+ name = REQUEST_ID_NAME,
+ description = REQUEST_ID_HDR_DESCRIPTION,
+ response = UUID.class)
+ },
extensions = {
- @Extension(
- name = EXTENSION_NAME,
- properties = {
+ @Extension
+ (
+ name = EXTENSION_NAME,
+ properties = {
@ExtensionProperty(name = API_VERSION_NAME, value = API_VERSION),
@ExtensionProperty(name = LAST_MOD_NAME, value = LAST_MOD_RELEASE)
- }
- )
+ }
+ )
}
)
@ApiResponses(
@@ -167,10 +167,8 @@ public class SimulationParticipantController extends AbstractRestController {
)
// @formatter:on
public ResponseEntity<TypedSimpleResponse<Participant>> update(
- @RequestHeader(
- name = REQUEST_ID_NAME,
- required = false) @ApiParam(REQUEST_ID_PARAM_DESCRIPTION) UUID requestId,
- @ApiParam(value = "Body of a participant", required = true) @RequestBody Participant body) {
+ @RequestHeader(name = REQUEST_ID_NAME, required = false) @ApiParam(REQUEST_ID_PARAM_DESCRIPTION) UUID requestId,
+ @ApiParam(value = "Body of a participant", required = true) @RequestBody Participant body) {
return ResponseEntity.ok().body(getSimulationProvider().updateParticipant(body));
}
diff --git a/participant/participant-impl/participant-impl-simulator/src/test/java/org/onap/policy/clamp/controlloop/participant/simulator/endtoend/ParticipantSimulatorTest.java b/participant/participant-impl/participant-impl-simulator/src/test/java/org/onap/policy/clamp/controlloop/participant/simulator/endtoend/ParticipantSimulatorTest.java
index 832399660..46495f7c3 100644
--- a/participant/participant-impl/participant-impl-simulator/src/test/java/org/onap/policy/clamp/controlloop/participant/simulator/endtoend/ParticipantSimulatorTest.java
+++ b/participant/participant-impl/participant-impl-simulator/src/test/java/org/onap/policy/clamp/controlloop/participant/simulator/endtoend/ParticipantSimulatorTest.java
@@ -234,7 +234,7 @@ class ParticipantSimulatorTest {
String.class, uuid);
checkResponseEntity(response, 200, uuid);
- Map returnValue = coder.decode(response.getBody(), Map.class);
+ Map<?, ?> returnValue = coder.decode(response.getBody(), Map.class);
// Verify the result of GET controlloop elements with what is stored
assertThat(returnValue).isEmpty();
}
diff --git a/participant/participant-impl/participant-impl-simulator/src/test/java/org/onap/policy/clamp/controlloop/participant/simulator/main/parameters/CommonTestData.java b/participant/participant-impl/participant-impl-simulator/src/test/java/org/onap/policy/clamp/controlloop/participant/simulator/main/parameters/CommonTestData.java
index 8ca139bcd..2c9b1ccd2 100644
--- a/participant/participant-impl/participant-impl-simulator/src/test/java/org/onap/policy/clamp/controlloop/participant/simulator/main/parameters/CommonTestData.java
+++ b/participant/participant-impl/participant-impl-simulator/src/test/java/org/onap/policy/clamp/controlloop/participant/simulator/main/parameters/CommonTestData.java
@@ -29,6 +29,7 @@ import java.util.List;
import java.util.Map;
import java.util.TreeMap;
import javax.ws.rs.core.Response;
+import javax.ws.rs.core.Response.Status;
import org.onap.policy.clamp.controlloop.common.exception.ControlLoopRuntimeException;
import org.onap.policy.common.endpoints.parameters.TopicParameters;
import org.onap.policy.common.parameters.ParameterGroup;
@@ -57,15 +58,18 @@ public class CommonTestData {
/**
* Converts the contents of a map to a parameter class.
*
+ * @param <T> the specific parameter group type to convert
* @param source property map
* @param clazz class of object to be created from the map
* @return a new object represented by the map
+ * @throws ControlLoopRuntimeException on parameter parsing errors
*/
public <T extends ParameterGroup> T toObject(final Map<String, Object> source, final Class<T> clazz) {
try {
return coder.convert(source, clazz);
} catch (final CoderException e) {
- throw new RuntimeException("cannot create " + clazz.getName() + " from map", e);
+ throw new ControlLoopRuntimeException(Status.NOT_ACCEPTABLE,
+ "cannot create " + clazz.getName() + " from map", e);
}
}
@@ -191,14 +195,14 @@ public class CommonTestData {
*
* @param port port to be inserted into the parameters
* @return the standard participant parameters
+ * @throws ControlLoopRuntimeException on parameter read errors
*/
public ParticipantSimulatorParameters getParticipantParameterGroup(int port) {
try {
return coder.decode(getParticipantParameterGroupAsString(port), ParticipantSimulatorParameters.class);
} catch (CoderException e) {
- throw new ControlLoopRuntimeException(Response.Status.NOT_ACCEPTABLE, "cannot read participant parameters",
- e);
+ throw new ControlLoopRuntimeException(Status.NOT_ACCEPTABLE, "cannot read participant parameters", e);
}
}
@@ -207,6 +211,7 @@ public class CommonTestData {
*
* @param port port to be inserted into the parameters
* @return the standard participant parameters
+ * @throws ControlLoopRuntimeException on parameter read errors
*/
public static String getParticipantParameterGroupAsString(int port) {
@@ -221,7 +226,7 @@ public class CommonTestData {
} catch (IOException e) {
throw new ControlLoopRuntimeException(Response.Status.NOT_ACCEPTABLE, "cannot read participant parameters",
- e);
+ e);
}
}
diff --git a/participant/participant-intermediary/pom.xml b/participant/participant-intermediary/pom.xml
index df354d46c..aac80a4a2 100644
--- a/participant/participant-intermediary/pom.xml
+++ b/participant/participant-intermediary/pom.xml
@@ -28,7 +28,6 @@
<version>6.1.2-SNAPSHOT</version>
</parent>
- <groupId>org.onap.policy.clamp.participant</groupId>
<artifactId>policy-clamp-participant-intermediary</artifactId>
<name>${project.artifactId}</name>
<description>Common intermediary library for managing DMaaP participant messaging and holding participant and control
diff --git a/participant/participant-intermediary/src/main/java/org/onap/policy/clamp/controlloop/participant/intermediary/api/ParticipantIntermediaryApi.java b/participant/participant-intermediary/src/main/java/org/onap/policy/clamp/controlloop/participant/intermediary/api/ParticipantIntermediaryApi.java
index d31ae1082..adc9c2393 100644
--- a/participant/participant-intermediary/src/main/java/org/onap/policy/clamp/controlloop/participant/intermediary/api/ParticipantIntermediaryApi.java
+++ b/participant/participant-intermediary/src/main/java/org/onap/policy/clamp/controlloop/participant/intermediary/api/ParticipantIntermediaryApi.java
@@ -24,7 +24,6 @@ import java.util.List;
import java.util.Map;
import java.util.UUID;
import org.onap.policy.clamp.controlloop.models.controlloop.concepts.ClElementStatistics;
-import org.onap.policy.clamp.controlloop.models.controlloop.concepts.ControlLoop;
import org.onap.policy.clamp.controlloop.models.controlloop.concepts.ControlLoopElement;
import org.onap.policy.clamp.controlloop.models.controlloop.concepts.ControlLoopOrderedState;
import org.onap.policy.clamp.controlloop.models.controlloop.concepts.ControlLoopState;
@@ -134,6 +133,7 @@ public interface ParticipantIntermediaryApi {
* if participantHandler is not returned, there is no way to test state change messages
* without dmaap simulator.
*
+ * @return the participant handler
*/
ParticipantHandler getParticipantHandler();
}
diff --git a/participant/participant-intermediary/src/main/java/org/onap/policy/clamp/controlloop/participant/intermediary/comm/MessageSender.java b/participant/participant-intermediary/src/main/java/org/onap/policy/clamp/controlloop/participant/intermediary/comm/MessageSender.java
index 3128f1eaa..6926bc30b 100644
--- a/participant/participant-intermediary/src/main/java/org/onap/policy/clamp/controlloop/participant/intermediary/comm/MessageSender.java
+++ b/participant/participant-intermediary/src/main/java/org/onap/policy/clamp/controlloop/participant/intermediary/comm/MessageSender.java
@@ -34,7 +34,6 @@ import org.onap.policy.clamp.controlloop.models.messages.dmaap.participant.Parti
import org.onap.policy.clamp.controlloop.models.messages.dmaap.participant.ParticipantResponseStatus;
import org.onap.policy.clamp.controlloop.models.messages.dmaap.participant.ParticipantStatus;
import org.onap.policy.clamp.controlloop.participant.intermediary.api.ControlLoopElementListener;
-import org.onap.policy.clamp.controlloop.participant.intermediary.comm.ParticipantStatusPublisher;
import org.onap.policy.clamp.controlloop.participant.intermediary.handler.ParticipantHandler;
import org.onap.policy.models.base.PfModelException;
import org.onap.policy.models.tosca.authorative.concepts.ToscaConceptIdentifier;
@@ -72,7 +71,7 @@ public class MessageSender extends TimerTask implements Closeable {
public void run() {
LOGGER.debug("Sent heartbeat to CLAMP");
- ParticipantResponseDetails response = new ParticipantResponseDetails();
+ var response = new ParticipantResponseDetails();
response.setResponseTo(null);
response.setResponseStatus(ParticipantResponseStatus.PERIODIC);
@@ -100,7 +99,7 @@ public class MessageSender extends TimerTask implements Closeable {
* @param response the details to include in the response message
*/
public void sendResponse(ToscaConceptIdentifier controlLoopId, ParticipantResponseDetails response) {
- ParticipantStatus status = new ParticipantStatus();
+ var status = new ParticipantStatus();
// Participant related fields
status.setParticipantType(participantHandler.getParticipantType());
@@ -109,12 +108,12 @@ public class MessageSender extends TimerTask implements Closeable {
status.setHealthStatus(participantHandler.getHealthStatus());
// Control loop related fields
- ControlLoops controlLoops = participantHandler.getControlLoopHandler().getControlLoops();
+ var controlLoops = participantHandler.getControlLoopHandler().getControlLoops();
status.setControlLoopId(controlLoopId);
status.setControlLoops(controlLoops);
status.setResponse(response);
- ParticipantStatistics participantStatistics = new ParticipantStatistics();
+ var participantStatistics = new ParticipantStatistics();
participantStatistics.setTimeStamp(Instant.now());
participantStatistics.setParticipantId(participantHandler.getParticipantId());
participantStatistics.setHealthStatus(participantHandler.getHealthStatus());
diff --git a/participant/participant-intermediary/src/main/java/org/onap/policy/clamp/controlloop/participant/intermediary/handler/ControlLoopHandler.java b/participant/participant-intermediary/src/main/java/org/onap/policy/clamp/controlloop/participant/intermediary/handler/ControlLoopHandler.java
index cc2a66b58..18ee29f08 100644
--- a/participant/participant-intermediary/src/main/java/org/onap/policy/clamp/controlloop/participant/intermediary/handler/ControlLoopHandler.java
+++ b/participant/participant-intermediary/src/main/java/org/onap/policy/clamp/controlloop/participant/intermediary/handler/ControlLoopHandler.java
@@ -27,6 +27,7 @@ import java.util.List;
import java.util.Map;
import java.util.UUID;
import lombok.Getter;
+import lombok.NoArgsConstructor;
import org.apache.commons.collections4.CollectionUtils;
import org.onap.policy.clamp.controlloop.models.controlloop.concepts.ClElementStatistics;
import org.onap.policy.clamp.controlloop.models.controlloop.concepts.ControlLoop;
@@ -49,6 +50,7 @@ import org.slf4j.LoggerFactory;
/*
* This class is responsible for managing the state of all control loops in the participant.
*/
+@NoArgsConstructor
public class ControlLoopHandler implements Closeable {
private static final Logger LOGGER = LoggerFactory.getLogger(ControlLoopHandler.class);
@@ -63,8 +65,6 @@ public class ControlLoopHandler implements Closeable {
@Getter
private List<ControlLoopElementListener> listeners = new ArrayList<>();
- public ControlLoopHandler() {}
-
/**
* Constructor, set the participant ID and messageSender.
*
@@ -85,7 +85,7 @@ public class ControlLoopHandler implements Closeable {
public void registerControlLoopElementListener(ControlLoopElementListener listener) {
listeners.add(listener);
}
-
+
/**
* Handle a control loop element state change message.
*
@@ -95,7 +95,7 @@ public class ControlLoopHandler implements Closeable {
* @return controlLoopElement the updated controlloop element
*/
public ControlLoopElement updateControlLoopElementState(UUID id, ControlLoopOrderedState orderedState,
- ControlLoopState newState) {
+ ControlLoopState newState) {
if (id == null) {
return null;
@@ -106,7 +106,7 @@ public class ControlLoopHandler implements Closeable {
clElement.setOrderedState(orderedState);
clElement.setState(newState);
LOGGER.debug("Control loop element {} state changed to {}", id, newState);
- ParticipantResponseDetails response = new ParticipantResponseDetails();
+ var response = new ParticipantResponseDetails();
response.setResponseStatus(ParticipantResponseStatus.SUCCESS);
response.setResponseMessage("ControlLoopElement state changed to {} " + newState);
messageSender.sendResponse(response);
@@ -141,14 +141,14 @@ public class ControlLoopHandler implements Closeable {
return;
}
- ControlLoop controlLoop = controlLoopMap.get(stateChangeMsg.getControlLoopId());
+ var controlLoop = controlLoopMap.get(stateChangeMsg.getControlLoopId());
if (controlLoop == null) {
LOGGER.debug("Control loop {} does not use this participant", stateChangeMsg.getControlLoopId());
return;
}
- ParticipantResponseDetails response = new ParticipantResponseDetails(stateChangeMsg);
+ var response = new ParticipantResponseDetails(stateChangeMsg);
handleState(controlLoop, response, stateChangeMsg.getOrderedState());
messageSender.sendResponse(response);
}
@@ -161,7 +161,7 @@ public class ControlLoopHandler implements Closeable {
* @param orderedState controlloop ordered state
*/
private void handleState(final ControlLoop controlLoop, final ParticipantResponseDetails response,
- ControlLoopOrderedState orderedState) {
+ ControlLoopOrderedState orderedState) {
switch (orderedState) {
case UNINITIALISED:
handleUninitialisedState(controlLoop, orderedState, response);
@@ -189,16 +189,16 @@ public class ControlLoopHandler implements Closeable {
return;
}
- ControlLoop controlLoop = controlLoopMap.get(updateMsg.getControlLoopId());
+ var controlLoop = controlLoopMap.get(updateMsg.getControlLoopId());
- ParticipantResponseDetails response = new ParticipantResponseDetails(updateMsg);
+ var response = new ParticipantResponseDetails(updateMsg);
// TODO: Updates to existing ControlLoops are not supported yet (Addition/Removal of ControlLoop
// elements to existing ControlLoop has to be supported).
if (controlLoop != null) {
response.setResponseStatus(ParticipantResponseStatus.FAIL);
- response.setResponseMessage("Control loop " + updateMsg.getControlLoopId()
- + " already defined on participant " + participantId);
+ response.setResponseMessage(
+ "Control loop " + updateMsg.getControlLoopId() + " already defined on participant " + participantId);
messageSender.sendResponse(response);
return;
@@ -226,7 +226,7 @@ public class ControlLoopHandler implements Closeable {
response.setResponseStatus(ParticipantResponseStatus.SUCCESS);
response.setResponseMessage(
- "Control loop " + updateMsg.getControlLoopId() + " defined on participant " + participantId);
+ "Control loop " + updateMsg.getControlLoopId() + " defined on participant " + participantId);
messageSender.sendResponse(response);
}
@@ -239,15 +239,14 @@ public class ControlLoopHandler implements Closeable {
* @param response participant response
*/
private void handleUninitialisedState(final ControlLoop controlLoop, final ControlLoopOrderedState orderedState,
- final ParticipantResponseDetails response) {
+ final ParticipantResponseDetails response) {
handleStateChange(controlLoop, orderedState, ControlLoopState.UNINITIALISED, response);
controlLoopMap.remove(controlLoop.getKey().asIdentifier());
for (ControlLoopElementListener clElementListener : listeners) {
try {
for (ControlLoopElement element : controlLoop.getElements().values()) {
- clElementListener.controlLoopElementStateChange(element.getId(), element.getState(),
- orderedState);
+ clElementListener.controlLoopElementStateChange(element.getId(), element.getState(), orderedState);
}
} catch (PfModelException e) {
LOGGER.debug("Control loop element update failed {}", controlLoop.getDefinition());
@@ -263,7 +262,7 @@ public class ControlLoopHandler implements Closeable {
* @param response participant response
*/
private void handlePassiveState(final ControlLoop controlLoop, final ControlLoopOrderedState orderedState,
- final ParticipantResponseDetails response) {
+ final ParticipantResponseDetails response) {
handleStateChange(controlLoop, orderedState, ControlLoopState.PASSIVE, response);
}
@@ -275,19 +274,20 @@ public class ControlLoopHandler implements Closeable {
* @param response participant response
*/
private void handleRunningState(final ControlLoop controlLoop, final ControlLoopOrderedState orderedState,
- final ParticipantResponseDetails response) {
+ final ParticipantResponseDetails response) {
handleStateChange(controlLoop, orderedState, ControlLoopState.RUNNING, response);
}
-
+
/**
* Method to update the state of control loop elements.
*
* @param controlLoop participant status in memory
- * @param orderedState orderedState
- * @param state new state of the control loop elements
+ * @param orderedState orderedState the new ordered state the participant should have
+ * @param newState new state of the control loop elements
+ * @param response the response to the state change request
*/
private void handleStateChange(ControlLoop controlLoop, final ControlLoopOrderedState orderedState,
- ControlLoopState newState, ParticipantResponseDetails response) {
+ ControlLoopState newState, ParticipantResponseDetails response) {
if (orderedState.equals(controlLoop.getOrderedState())) {
response.setResponseStatus(ParticipantResponseStatus.SUCCESS);
@@ -297,26 +297,24 @@ public class ControlLoopHandler implements Closeable {
if (!CollectionUtils.isEmpty(controlLoop.getElements().values())) {
controlLoop.getElements().values().forEach(element -> {
- element.setState(newState);
- element.setOrderedState(orderedState);
- }
- );
+ element.setState(newState);
+ element.setOrderedState(orderedState);
+ });
}
response.setResponseStatus(ParticipantResponseStatus.SUCCESS);
- response.setResponseMessage("ControlLoop state changed from " + controlLoop.getOrderedState()
- + " to " + orderedState);
+ response.setResponseMessage(
+ "ControlLoop state changed from " + controlLoop.getOrderedState() + " to " + orderedState);
controlLoop.setOrderedState(orderedState);
}
-
/**
* Get control loops as a {@link ConrolLoops} class.
*
* @return the control loops
*/
public ControlLoops getControlLoops() {
- ControlLoops controlLoops = new ControlLoops();
+ var controlLoops = new ControlLoops();
controlLoops.setControlLoopList(new ArrayList<>(controlLoopMap.values()));
return controlLoops;
}
diff --git a/participant/participant-intermediary/src/main/java/org/onap/policy/clamp/controlloop/participant/intermediary/handler/IntermediaryActivator.java b/participant/participant-intermediary/src/main/java/org/onap/policy/clamp/controlloop/participant/intermediary/handler/IntermediaryActivator.java
index be2fa1a30..3eae27267 100644
--- a/participant/participant-intermediary/src/main/java/org/onap/policy/clamp/controlloop/participant/intermediary/handler/IntermediaryActivator.java
+++ b/participant/participant-intermediary/src/main/java/org/onap/policy/clamp/controlloop/participant/intermediary/handler/IntermediaryActivator.java
@@ -24,7 +24,6 @@ import java.util.List;
import java.util.concurrent.atomic.AtomicReference;
import javax.ws.rs.core.Response.Status;
import lombok.Getter;
-import lombok.experimental.Delegate;
import org.onap.policy.clamp.controlloop.common.exception.ControlLoopRuntimeException;
import org.onap.policy.clamp.controlloop.models.messages.dmaap.participant.ParticipantControlLoopStateChange;
import org.onap.policy.clamp.controlloop.models.messages.dmaap.participant.ParticipantControlLoopUpdate;
@@ -70,21 +69,22 @@ public class IntermediaryActivator extends ServiceManagerContainer {
* Instantiate the activator for participant.
*
* @param parameters the parameters for the participant intermediary
+ * @throws ControlLoopRuntimeException when the activation fails
*/
public IntermediaryActivator(final ParticipantIntermediaryParameters parameters) {
this.parameters = parameters;
topicSinks =
- TopicEndpointManager.getManager().addTopicSinks(parameters.getClampControlLoopTopics().getTopicSinks());
+ TopicEndpointManager.getManager().addTopicSinks(parameters.getClampControlLoopTopics().getTopicSinks());
- topicSources = TopicEndpointManager.getManager()
- .addTopicSources(parameters.getClampControlLoopTopics().getTopicSources());
+ topicSources =
+ TopicEndpointManager.getManager().addTopicSources(parameters.getClampControlLoopTopics().getTopicSources());
try {
this.msgDispatcher = new MessageTypeDispatcher(MSG_TYPE_NAMES);
} catch (final RuntimeException e) {
throw new ControlLoopRuntimeException(Status.INTERNAL_SERVER_ERROR,
- "topic message dispatcher failed to start", e);
+ "topic message dispatcher failed to start", e);
}
// @formatter:off
@@ -131,17 +131,14 @@ public class IntermediaryActivator extends ServiceManagerContainer {
*/
private void registerMsgDispatcher() {
msgDispatcher.register(ParticipantMessageType.PARTICIPANT_STATE_CHANGE.name(),
- (ScoListener<ParticipantStateChange>) new ParticipantStateChangeListener(
- participantHandler.get()));
+ (ScoListener<ParticipantStateChange>) new ParticipantStateChangeListener(participantHandler.get()));
msgDispatcher.register(ParticipantMessageType.PARTICIPANT_HEALTH_CHECK.name(),
- (ScoListener<ParticipantHealthCheck>) new ParticipantHealthCheckListener(
- participantHandler.get()));
+ (ScoListener<ParticipantHealthCheck>) new ParticipantHealthCheckListener(participantHandler.get()));
msgDispatcher.register(ParticipantMessageType.PARTICIPANT_CONTROL_LOOP_STATE_CHANGE.name(),
- (ScoListener<ParticipantControlLoopStateChange>) new ControlLoopStateChangeListener(
- participantHandler.get()));
+ (ScoListener<ParticipantControlLoopStateChange>) new ControlLoopStateChangeListener(
+ participantHandler.get()));
msgDispatcher.register(ParticipantMessageType.PARTICIPANT_CONTROL_LOOP_UPDATE.name(),
- (ScoListener<ParticipantControlLoopUpdate>) new ControlLoopUpdateListener(
- participantHandler.get()));
+ (ScoListener<ParticipantControlLoopUpdate>) new ControlLoopUpdateListener(participantHandler.get()));
for (final TopicSource source : topicSources) {
source.register(msgDispatcher);
}
@@ -158,6 +155,8 @@ public class IntermediaryActivator extends ServiceManagerContainer {
/**
* Return the participant handler.
+ *
+ * @return the participant handler
*/
public ParticipantHandler getParticipantHandler() {
return participantHandler.get();
diff --git a/participant/participant-intermediary/src/main/java/org/onap/policy/clamp/controlloop/participant/intermediary/handler/ParticipantHandler.java b/participant/participant-intermediary/src/main/java/org/onap/policy/clamp/controlloop/participant/intermediary/handler/ParticipantHandler.java
index 980ab6ec1..913c050e3 100644
--- a/participant/participant-intermediary/src/main/java/org/onap/policy/clamp/controlloop/participant/intermediary/handler/ParticipantHandler.java
+++ b/participant/participant-intermediary/src/main/java/org/onap/policy/clamp/controlloop/participant/intermediary/handler/ParticipantHandler.java
@@ -90,7 +90,7 @@ public class ParticipantHandler implements Closeable {
return;
}
- ParticipantResponseDetails response = new ParticipantResponseDetails(stateChangeMsg);
+ var response = new ParticipantResponseDetails(stateChangeMsg);
switch (stateChangeMsg.getState()) {
case PASSIVE:
@@ -126,7 +126,7 @@ public class ParticipantHandler implements Closeable {
* @param healthCheckMsg participant health check message
*/
public void handleParticipantHealthCheck(final ParticipantHealthCheck healthCheckMsg) {
- ParticipantResponseDetails response = new ParticipantResponseDetails(healthCheckMsg);
+ var response = new ParticipantResponseDetails(healthCheckMsg);
response.setResponseStatus(ParticipantResponseStatus.SUCCESS);
response.setResponseMessage(healthStatus.toString());
@@ -194,6 +194,7 @@ public class ParticipantHandler implements Closeable {
*
* @param definition participant definition
* @param participantState participant state
+ * @return the participant
*/
public Participant updateParticipantState(ToscaConceptIdentifier definition,
ParticipantState participantState) {
@@ -201,7 +202,7 @@ public class ParticipantHandler implements Closeable {
LOGGER.debug("No participant with this ID {}", definition.getName());
return null;
}
- ParticipantResponseDetails response = new ParticipantResponseDetails();
+ var response = new ParticipantResponseDetails();
handleStateChange(participantState, response);
sender.sendResponse(response);
return getParticipant(definition.getName(), definition.getVersion());
@@ -210,11 +211,13 @@ public class ParticipantHandler implements Closeable {
/**
* Get participants as a {@link Participant} class.
*
+ * @param name the participant name to get
+ * @param version the version of the participant to get
* @return the participant
*/
public Participant getParticipant(String name, String version) {
if (participantId.getName().equals(name)) {
- Participant participant = new Participant();
+ var participant = new Participant();
participant.setDefinition(participantId);
participant.setParticipantState(state);
participant.setHealthStatus(healthStatus);
diff --git a/runtime-controlloop/src/main/java/org/onap/policy/clamp/controlloop/runtime/commissioning/CommissioningHandler.java b/runtime-controlloop/src/main/java/org/onap/policy/clamp/controlloop/runtime/commissioning/CommissioningHandler.java
index 88e8b1df9..74975e768 100644
--- a/runtime-controlloop/src/main/java/org/onap/policy/clamp/controlloop/runtime/commissioning/CommissioningHandler.java
+++ b/runtime-controlloop/src/main/java/org/onap/policy/clamp/controlloop/runtime/commissioning/CommissioningHandler.java
@@ -21,15 +21,12 @@
package org.onap.policy.clamp.controlloop.runtime.commissioning;
import java.io.IOException;
-import java.util.List;
import java.util.Set;
import javax.ws.rs.core.Response;
import lombok.Getter;
import org.onap.policy.clamp.controlloop.common.handler.ControlLoopHandler;
import org.onap.policy.clamp.controlloop.runtime.commissioning.rest.CommissioningController;
import org.onap.policy.clamp.controlloop.runtime.main.parameters.ClRuntimeParameterGroup;
-import org.onap.policy.common.endpoints.event.comm.TopicSink;
-import org.onap.policy.common.endpoints.listeners.MessageTypeDispatcher;
import org.onap.policy.common.utils.services.Registry;
import org.onap.policy.models.base.PfModelRuntimeException;
diff --git a/runtime-controlloop/src/main/java/org/onap/policy/clamp/controlloop/runtime/commissioning/CommissioningProvider.java b/runtime-controlloop/src/main/java/org/onap/policy/clamp/controlloop/runtime/commissioning/CommissioningProvider.java
index 50f6787b9..5bbf6a079 100644
--- a/runtime-controlloop/src/main/java/org/onap/policy/clamp/controlloop/runtime/commissioning/CommissioningProvider.java
+++ b/runtime-controlloop/src/main/java/org/onap/policy/clamp/controlloop/runtime/commissioning/CommissioningProvider.java
@@ -29,7 +29,6 @@ import java.util.Map;
import java.util.stream.Collectors;
import org.apache.commons.collections4.CollectionUtils;
import org.apache.commons.collections4.MapUtils;
-import org.onap.policy.clamp.controlloop.common.exception.ControlLoopRuntimeException;
import org.onap.policy.clamp.controlloop.models.controlloop.persistence.provider.ControlLoopProvider;
import org.onap.policy.clamp.controlloop.models.messages.rest.commissioning.CommissioningResponse;
import org.onap.policy.models.base.PfModelException;
@@ -57,11 +56,10 @@ public class CommissioningProvider implements Closeable {
/**
* Create a commissioning provider.
- *
- * @throws ControlLoopRuntimeException on errors creating the provider
+ * @param databaseProviderParameters parameters for database access
+ * @throws PfModelRuntimeException on errors creating the database provider
*/
- public CommissioningProvider(PolicyModelsProviderParameters databaseProviderParameters)
- throws ControlLoopRuntimeException {
+ public CommissioningProvider(PolicyModelsProviderParameters databaseProviderParameters) {
try {
modelsProvider = new PolicyModelsProviderFactory()
.createPolicyModelsProvider(databaseProviderParameters);
@@ -98,7 +96,7 @@ public class CommissioningProvider implements Closeable {
modelsProvider.createServiceTemplate(serviceTemplate);
}
- CommissioningResponse response = new CommissioningResponse();
+ var response = new CommissioningResponse();
// @formatter:off
response.setAffectedControlLoopDefinitions(serviceTemplate.getToscaTopologyTemplate().getNodeTemplates()
.values()
@@ -123,7 +121,7 @@ public class CommissioningProvider implements Closeable {
modelsProvider.deleteServiceTemplate(name, version);
}
- CommissioningResponse response = new CommissioningResponse();
+ var response = new CommissioningResponse();
response.setAffectedControlLoopDefinitions(
Collections.singletonList(new ToscaConceptIdentifier(name, version)));
@@ -201,7 +199,7 @@ public class CommissioningProvider implements Closeable {
* @throws PfModelException on errors getting control loop definitions
*/
public ToscaServiceTemplate getToscaServiceTemplate(String name, String version) throws PfModelException {
- ToscaServiceTemplates serviceTemplates = new ToscaServiceTemplates();
+ var serviceTemplates = new ToscaServiceTemplates();
serviceTemplates.setServiceTemplates(modelsProvider.getServiceTemplateList(name, version));
return serviceTemplates.getServiceTemplates().get(0);
}
diff --git a/runtime-controlloop/src/main/java/org/onap/policy/clamp/controlloop/runtime/commissioning/rest/CommissioningController.java b/runtime-controlloop/src/main/java/org/onap/policy/clamp/controlloop/runtime/commissioning/rest/CommissioningController.java
index 4060ae5be..ebfbbd5ee 100644
--- a/runtime-controlloop/src/main/java/org/onap/policy/clamp/controlloop/runtime/commissioning/rest/CommissioningController.java
+++ b/runtime-controlloop/src/main/java/org/onap/policy/clamp/controlloop/runtime/commissioning/rest/CommissioningController.java
@@ -44,8 +44,6 @@ import org.onap.policy.clamp.controlloop.runtime.commissioning.CommissioningProv
import org.onap.policy.clamp.controlloop.runtime.main.rest.RestController;
import org.onap.policy.models.base.PfModelException;
import org.onap.policy.models.base.PfModelRuntimeException;
-import org.onap.policy.models.errors.concepts.ErrorResponse;
-import org.onap.policy.models.errors.concepts.ErrorResponseInfo;
import org.onap.policy.models.tosca.authorative.concepts.ToscaNodeTemplate;
import org.onap.policy.models.tosca.authorative.concepts.ToscaServiceTemplate;
import org.slf4j.Logger;
@@ -81,58 +79,56 @@ public class CommissioningController extends RestController {
value = "Commissions control loop definitions",
notes = "Commissions control loop definitions, returning the commissioned control loop definition IDs",
response = CommissioningResponse.class,
- tags = {
- "Control Loop Commissioning API"
- },
+ tags = {"Control Loop Commissioning API"},
authorizations = @Authorization(value = AUTHORIZATION_TYPE),
responseHeaders = {
- @ResponseHeader(
- name = VERSION_MINOR_NAME,
- description = VERSION_MINOR_DESCRIPTION,
- response = String.class),
- @ResponseHeader(
- name = VERSION_PATCH_NAME,
- description = VERSION_PATCH_DESCRIPTION,
- response = String.class),
- @ResponseHeader(
- name = VERSION_LATEST_NAME,
- description = VERSION_LATEST_DESCRIPTION,
- response = String.class),
- @ResponseHeader(
- name = REQUEST_ID_NAME,
- description = REQUEST_ID_HDR_DESCRIPTION,
- response = UUID.class)
+ @ResponseHeader(
+ name = VERSION_MINOR_NAME,
+ description = VERSION_MINOR_DESCRIPTION,
+ response = String.class),
+ @ResponseHeader(
+ name = VERSION_PATCH_NAME,
+ description = VERSION_PATCH_DESCRIPTION,
+ response = String.class),
+ @ResponseHeader(
+ name = VERSION_LATEST_NAME,
+ description = VERSION_LATEST_DESCRIPTION,
+ response = String.class),
+ @ResponseHeader(
+ name = REQUEST_ID_NAME,
+ description = REQUEST_ID_HDR_DESCRIPTION,
+ response = UUID.class)
},
extensions = {
- @Extension(
- name = EXTENSION_NAME,
- properties = {
- @ExtensionProperty(name = API_VERSION_NAME, value = API_VERSION),
- @ExtensionProperty(name = LAST_MOD_NAME, value = LAST_MOD_RELEASE)
- }
+ @Extension
+ (
+ name = EXTENSION_NAME,
+ properties = {
+ @ExtensionProperty(name = API_VERSION_NAME, value = API_VERSION),
+ @ExtensionProperty(name = LAST_MOD_NAME, value = LAST_MOD_RELEASE)
+ }
)
}
)
@ApiResponses(
value = {
- @ApiResponse(code = AUTHENTICATION_ERROR_CODE, message = AUTHENTICATION_ERROR_MESSAGE),
- @ApiResponse(code = AUTHORIZATION_ERROR_CODE, message = AUTHORIZATION_ERROR_MESSAGE),
- @ApiResponse(code = SERVER_ERROR_CODE, message = SERVER_ERROR_MESSAGE)
+ @ApiResponse(code = AUTHENTICATION_ERROR_CODE, message = AUTHENTICATION_ERROR_MESSAGE),
+ @ApiResponse(code = AUTHORIZATION_ERROR_CODE, message = AUTHORIZATION_ERROR_MESSAGE),
+ @ApiResponse(code = SERVER_ERROR_CODE, message = SERVER_ERROR_MESSAGE)
}
)
// @formatter:on
- public Response create(
- @HeaderParam(REQUEST_ID_NAME) @ApiParam(REQUEST_ID_PARAM_DESCRIPTION) UUID requestId,
- @ApiParam(value = "Entity Body of Control Loop", required = true) ToscaServiceTemplate body) {
+ public Response create(@HeaderParam(REQUEST_ID_NAME) @ApiParam(REQUEST_ID_PARAM_DESCRIPTION) UUID requestId,
+ @ApiParam(value = "Entity Body of Control Loop", required = true) ToscaServiceTemplate body) {
try {
CommissioningResponse response = provider.createControlLoopDefinitions(body);
- return addLoggingHeaders(addVersionControlHeaders(Response.status(Status.OK)), requestId)
- .entity(response).build();
+ return addLoggingHeaders(addVersionControlHeaders(Response.status(Status.OK)), requestId).entity(response)
+ .build();
} catch (PfModelRuntimeException | PfModelException e) {
LOGGER.warn("Commissioning of the control loops failed", e);
- CommissioningResponse resp = new CommissioningResponse();
+ var resp = new CommissioningResponse();
resp.setErrorDetails(e.getErrorResponse().getErrorMessage());
return returnResponse(e.getErrorResponse().getResponseCode(), requestId, resp);
}
@@ -153,58 +149,56 @@ public class CommissioningController extends RestController {
@ApiOperation(value = "Delete a commissioned control loop",
notes = "Deletes a Commissioned Control Loop, returning optional error details",
response = CommissioningResponse.class,
- tags = {
- "Clamp Control Loop Commissioning API"
- },
+ tags = {"Clamp Control Loop Commissioning API"},
authorizations = @Authorization(value = AUTHORIZATION_TYPE),
responseHeaders = {
- @ResponseHeader(
- name = VERSION_MINOR_NAME,
- description = VERSION_MINOR_DESCRIPTION,
- response = String.class),
- @ResponseHeader(
- name = VERSION_PATCH_NAME,
- description = VERSION_PATCH_DESCRIPTION,
- response = String.class),
- @ResponseHeader(
- name = VERSION_LATEST_NAME,
- description = VERSION_LATEST_DESCRIPTION,
- response = String.class),
- @ResponseHeader(
+ @ResponseHeader(
+ name = VERSION_MINOR_NAME,
+ description = VERSION_MINOR_DESCRIPTION,
+ response = String.class),
+ @ResponseHeader(
+ name = VERSION_PATCH_NAME,
+ description = VERSION_PATCH_DESCRIPTION,
+ response = String.class),
+ @ResponseHeader(
+ name = VERSION_LATEST_NAME,
+ description = VERSION_LATEST_DESCRIPTION,
+ response = String.class),
+ @ResponseHeader(
name = REQUEST_ID_NAME,
description = REQUEST_ID_HDR_DESCRIPTION,
response = UUID.class)},
extensions = {
- @Extension(
- name = EXTENSION_NAME,
- properties = {
- @ExtensionProperty(name = API_VERSION_NAME, value = API_VERSION),
- @ExtensionProperty(name = LAST_MOD_NAME, value = LAST_MOD_RELEASE)
- }
+ @Extension
+ (
+ name = EXTENSION_NAME,
+ properties = {
+ @ExtensionProperty(name = API_VERSION_NAME, value = API_VERSION),
+ @ExtensionProperty(name = LAST_MOD_NAME, value = LAST_MOD_RELEASE)
+ }
)
}
)
- @ApiResponses(value = {
+ @ApiResponses(
+ value = {
@ApiResponse(code = AUTHENTICATION_ERROR_CODE, message = AUTHENTICATION_ERROR_MESSAGE),
@ApiResponse(code = AUTHORIZATION_ERROR_CODE, message = AUTHORIZATION_ERROR_MESSAGE),
@ApiResponse(code = SERVER_ERROR_CODE, message = SERVER_ERROR_MESSAGE)
}
)
// @formatter:on
- public Response delete(
- @HeaderParam(REQUEST_ID_NAME) @ApiParam(REQUEST_ID_PARAM_DESCRIPTION) UUID requestId,
- @ApiParam(value = "Control Loop definition name", required = true) @QueryParam("name") String name,
- @ApiParam(value = "Control Loop definition version", required = true)
- @QueryParam("version") String version) {
+ public Response delete(@HeaderParam(REQUEST_ID_NAME) @ApiParam(REQUEST_ID_PARAM_DESCRIPTION) UUID requestId,
+ @ApiParam(value = "Control Loop definition name", required = true) @QueryParam("name") String name,
+ @ApiParam(value = "Control Loop definition version", required = true) @QueryParam("version") String version) {
try {
CommissioningResponse response = provider.deleteControlLoopDefinition(name, version);
- return addLoggingHeaders(addVersionControlHeaders(Response.status(Status.OK)), requestId)
- .entity(response).build();
+ return addLoggingHeaders(addVersionControlHeaders(Response.status(Status.OK)), requestId).entity(response)
+ .build();
} catch (PfModelRuntimeException | PfModelException e) {
LOGGER.warn("Decommisssioning of control loop failed", e);
- CommissioningResponse resp = new CommissioningResponse();
+ var resp = new CommissioningResponse();
resp.setErrorDetails(e.getErrorResponse().getErrorMessage());
return returnResponse(e.getErrorResponse().getResponseCode(), requestId, resp);
}
@@ -226,52 +220,49 @@ public class CommissioningController extends RestController {
notes = "Queries details of the requested commissioned control loop definitions, "
+ "returning all control loop details",
response = ToscaNodeTemplate.class,
- tags = {
- "Clamp Control Loop Commissioning API"
- },
+ tags = {"Clamp Control Loop Commissioning API"},
authorizations = @Authorization(value = AUTHORIZATION_TYPE),
responseHeaders = {
- @ResponseHeader(
- name = VERSION_MINOR_NAME, description = VERSION_MINOR_DESCRIPTION,
- response = String.class),
- @ResponseHeader(name = VERSION_PATCH_NAME, description = VERSION_PATCH_DESCRIPTION,
- response = String.class),
- @ResponseHeader(name = VERSION_LATEST_NAME, description = VERSION_LATEST_DESCRIPTION,
- response = String.class),
- @ResponseHeader(name = REQUEST_ID_NAME, description = REQUEST_ID_HDR_DESCRIPTION,
- response = UUID.class)},
- extensions = {
- @Extension(
- name = EXTENSION_NAME,
- properties = {
- @ExtensionProperty(name = API_VERSION_NAME, value = API_VERSION),
- @ExtensionProperty(name = LAST_MOD_NAME, value = LAST_MOD_RELEASE)
- }
- )
+ @ResponseHeader(
+ name = VERSION_MINOR_NAME, description = VERSION_MINOR_DESCRIPTION,
+ response = String.class),
+ @ResponseHeader(name = VERSION_PATCH_NAME, description = VERSION_PATCH_DESCRIPTION,
+ response = String.class),
+ @ResponseHeader(name = VERSION_LATEST_NAME, description = VERSION_LATEST_DESCRIPTION,
+ response = String.class),
+ @ResponseHeader(name = REQUEST_ID_NAME, description = REQUEST_ID_HDR_DESCRIPTION,
+ response = UUID.class)},
+ extensions = {
+ @Extension
+ (
+ name = EXTENSION_NAME,
+ properties = {
+ @ExtensionProperty(name = API_VERSION_NAME, value = API_VERSION),
+ @ExtensionProperty(name = LAST_MOD_NAME, value = LAST_MOD_RELEASE)
+ }
+ )
}
)
@ApiResponses(
- value = {
- @ApiResponse(code = AUTHENTICATION_ERROR_CODE, message = AUTHENTICATION_ERROR_MESSAGE),
- @ApiResponse(code = AUTHORIZATION_ERROR_CODE, message = AUTHORIZATION_ERROR_MESSAGE),
- @ApiResponse(code = SERVER_ERROR_CODE, message = SERVER_ERROR_MESSAGE)
- }
+ value = {
+ @ApiResponse(code = AUTHENTICATION_ERROR_CODE, message = AUTHENTICATION_ERROR_MESSAGE),
+ @ApiResponse(code = AUTHORIZATION_ERROR_CODE, message = AUTHORIZATION_ERROR_MESSAGE),
+ @ApiResponse(code = SERVER_ERROR_CODE, message = SERVER_ERROR_MESSAGE)
+ }
)
// @formatter:on
public Response query(@HeaderParam(REQUEST_ID_NAME) @ApiParam(REQUEST_ID_PARAM_DESCRIPTION) UUID requestId,
- @ApiParam(value = "Control Loop definition name", required = true)
- @QueryParam("name") String name,
- @ApiParam(value = "Control Loop definition version", required = true)
- @QueryParam("version") String version) {
+ @ApiParam(value = "Control Loop definition name", required = true) @QueryParam("name") String name,
+ @ApiParam(value = "Control Loop definition version", required = true) @QueryParam("version") String version) {
try {
List<ToscaNodeTemplate> response = provider.getControlLoopDefinitions(name, version);
return addLoggingHeaders(addVersionControlHeaders(Response.status(Status.OK)), requestId).entity(response)
- .build();
+ .build();
} catch (PfModelRuntimeException | PfModelException e) {
LOGGER.warn("Get of control loop definitions failed", e);
- CommissioningResponse resp = new CommissioningResponse();
+ var resp = new CommissioningResponse();
resp.setErrorDetails(e.getErrorResponse().getErrorMessage());
return returnResponse(e.getErrorResponse().getResponseCode(), requestId, resp);
}
@@ -293,53 +284,50 @@ public class CommissioningController extends RestController {
notes = "Queries details of the requested commissioned tosca service template, "
+ "returning all tosca service template details",
response = ToscaServiceTemplate.class,
- tags = {
- "Clamp Control Loop Commissioning API"
- },
+ tags = {"Clamp Control Loop Commissioning API"},
authorizations = @Authorization(value = AUTHORIZATION_TYPE),
responseHeaders = {
- @ResponseHeader(
- name = VERSION_MINOR_NAME, description = VERSION_MINOR_DESCRIPTION,
- response = String.class),
- @ResponseHeader(name = VERSION_PATCH_NAME, description = VERSION_PATCH_DESCRIPTION,
- response = String.class),
- @ResponseHeader(name = VERSION_LATEST_NAME, description = VERSION_LATEST_DESCRIPTION,
- response = String.class),
- @ResponseHeader(name = REQUEST_ID_NAME, description = REQUEST_ID_HDR_DESCRIPTION,
- response = UUID.class)},
+ @ResponseHeader(
+ name = VERSION_MINOR_NAME, description = VERSION_MINOR_DESCRIPTION,
+ response = String.class),
+ @ResponseHeader(name = VERSION_PATCH_NAME, description = VERSION_PATCH_DESCRIPTION,
+ response = String.class),
+ @ResponseHeader(name = VERSION_LATEST_NAME, description = VERSION_LATEST_DESCRIPTION,
+ response = String.class),
+ @ResponseHeader(name = REQUEST_ID_NAME, description = REQUEST_ID_HDR_DESCRIPTION,
+ response = UUID.class)},
extensions = {
- @Extension(
- name = EXTENSION_NAME,
- properties = {
- @ExtensionProperty(name = API_VERSION_NAME, value = API_VERSION),
- @ExtensionProperty(name = LAST_MOD_NAME, value = LAST_MOD_RELEASE)
- }
+ @Extension
+ (
+ name = EXTENSION_NAME,
+ properties = {
+ @ExtensionProperty(name = API_VERSION_NAME, value = API_VERSION),
+ @ExtensionProperty(name = LAST_MOD_NAME, value = LAST_MOD_RELEASE)
+ }
)
}
)
@ApiResponses(
- value = {
- @ApiResponse(code = AUTHENTICATION_ERROR_CODE, message = AUTHENTICATION_ERROR_MESSAGE),
- @ApiResponse(code = AUTHORIZATION_ERROR_CODE, message = AUTHORIZATION_ERROR_MESSAGE),
- @ApiResponse(code = SERVER_ERROR_CODE, message = SERVER_ERROR_MESSAGE)
- }
+ value = {
+ @ApiResponse(code = AUTHENTICATION_ERROR_CODE, message = AUTHENTICATION_ERROR_MESSAGE),
+ @ApiResponse(code = AUTHORIZATION_ERROR_CODE, message = AUTHORIZATION_ERROR_MESSAGE),
+ @ApiResponse(code = SERVER_ERROR_CODE, message = SERVER_ERROR_MESSAGE)
+ }
)
// @formatter:on
- public Response queryToscaServiceTemplate(@HeaderParam(REQUEST_ID_NAME)
- @ApiParam(REQUEST_ID_PARAM_DESCRIPTION) UUID requestId,
- @ApiParam(value = "Tosca service template name", required = true)
- @QueryParam("name") String name,
- @ApiParam(value = "Tosca service template version", required = true)
- @QueryParam("version") String version) {
+ public Response queryToscaServiceTemplate(
+ @HeaderParam(REQUEST_ID_NAME) @ApiParam(REQUEST_ID_PARAM_DESCRIPTION) UUID requestId,
+ @ApiParam(value = "Tosca service template name", required = true) @QueryParam("name") String name,
+ @ApiParam(value = "Tosca service template version", required = true) @QueryParam("version") String version) {
try {
- ToscaServiceTemplate response = provider.getToscaServiceTemplate(name, version);
+ var response = provider.getToscaServiceTemplate(name, version);
return addLoggingHeaders(addVersionControlHeaders(Response.status(Status.OK)), requestId).entity(response)
- .build();
+ .build();
} catch (PfModelRuntimeException | PfModelException e) {
LOGGER.warn("Get of tosca service template failed", e);
- CommissioningResponse resp = new CommissioningResponse();
+ var resp = new CommissioningResponse();
resp.setErrorDetails(e.getErrorResponse().getErrorMessage());
return returnResponse(e.getErrorResponse().getResponseCode(), requestId, resp);
}
@@ -361,60 +349,57 @@ public class CommissioningController extends RestController {
notes = "Queries details of the requested commissioned control loop element definitions, "
+ "returning all control loop elements' details",
response = ToscaNodeTemplate.class,
- tags = {
- "Clamp Control Loop Commissioning API"
- },
+ tags = {"Clamp Control Loop Commissioning API"},
authorizations = @Authorization(value = AUTHORIZATION_TYPE),
responseHeaders = {
- @ResponseHeader(
- name = VERSION_MINOR_NAME, description = VERSION_MINOR_DESCRIPTION,
- response = String.class),
- @ResponseHeader(name = VERSION_PATCH_NAME, description = VERSION_PATCH_DESCRIPTION,
- response = String.class),
- @ResponseHeader(name = VERSION_LATEST_NAME, description = VERSION_LATEST_DESCRIPTION,
- response = String.class),
- @ResponseHeader(name = REQUEST_ID_NAME, description = REQUEST_ID_HDR_DESCRIPTION,
- response = UUID.class)},
+ @ResponseHeader(
+ name = VERSION_MINOR_NAME, description = VERSION_MINOR_DESCRIPTION,
+ response = String.class),
+ @ResponseHeader(name = VERSION_PATCH_NAME, description = VERSION_PATCH_DESCRIPTION,
+ response = String.class),
+ @ResponseHeader(name = VERSION_LATEST_NAME, description = VERSION_LATEST_DESCRIPTION,
+ response = String.class),
+ @ResponseHeader(name = REQUEST_ID_NAME, description = REQUEST_ID_HDR_DESCRIPTION,
+ response = UUID.class)},
extensions = {
- @Extension(
- name = EXTENSION_NAME,
- properties = {
- @ExtensionProperty(name = API_VERSION_NAME, value = API_VERSION),
- @ExtensionProperty(name = LAST_MOD_NAME, value = LAST_MOD_RELEASE)
- }
+ @Extension
+ (
+ name = EXTENSION_NAME,
+ properties = {
+ @ExtensionProperty(name = API_VERSION_NAME, value = API_VERSION),
+ @ExtensionProperty(name = LAST_MOD_NAME, value = LAST_MOD_RELEASE)
+ }
)
}
)
@ApiResponses(
- value = {
- @ApiResponse(code = AUTHENTICATION_ERROR_CODE, message = AUTHENTICATION_ERROR_MESSAGE),
- @ApiResponse(code = AUTHORIZATION_ERROR_CODE, message = AUTHORIZATION_ERROR_MESSAGE),
- @ApiResponse(code = SERVER_ERROR_CODE, message = SERVER_ERROR_MESSAGE)
- }
+ value = {
+ @ApiResponse(code = AUTHENTICATION_ERROR_CODE, message = AUTHENTICATION_ERROR_MESSAGE),
+ @ApiResponse(code = AUTHORIZATION_ERROR_CODE, message = AUTHORIZATION_ERROR_MESSAGE),
+ @ApiResponse(code = SERVER_ERROR_CODE, message = SERVER_ERROR_MESSAGE)
+ }
)
// @formatter:on
public Response queryElements(@HeaderParam(REQUEST_ID_NAME) @ApiParam(REQUEST_ID_PARAM_DESCRIPTION) UUID requestId,
- @ApiParam(value = "Control Loop definition name", required = true)
- @QueryParam("name") String name,
- @ApiParam(value = "Control Loop definition version", required = true)
- @QueryParam("version") String version) throws Exception {
+ @ApiParam(value = "Control Loop definition name", required = true) @QueryParam("name") String name,
+ @ApiParam(value = "Control Loop definition version", required = true) @QueryParam("version") String version) {
try {
List<ToscaNodeTemplate> nodeTemplate = provider.getControlLoopDefinitions(name, version);
- //Prevent ambiguous queries with multiple returns
+ // Prevent ambiguous queries with multiple returns
if (nodeTemplate.size() > 1) {
- CommissioningResponse resp = new CommissioningResponse();
+ var resp = new CommissioningResponse();
resp.setErrorDetails("Multiple ControlLoops are not supported");
return returnResponse(Response.Status.NOT_ACCEPTABLE, requestId, resp);
}
List<ToscaNodeTemplate> response = provider.getControlLoopElementDefinitions(nodeTemplate.get(0));
return addLoggingHeaders(addVersionControlHeaders(Response.status(Status.OK)), requestId).entity(response)
- .build();
+ .build();
} catch (PfModelRuntimeException | PfModelException e) {
LOGGER.warn("Get of control loop element definitions failed", e);
- CommissioningResponse resp = new CommissioningResponse();
+ var resp = new CommissioningResponse();
resp.setErrorDetails(e.getErrorResponse().getErrorMessage());
return returnResponse(e.getErrorResponse().getResponseCode(), requestId, resp);
}
@@ -422,7 +407,6 @@ public class CommissioningController extends RestController {
}
private Response returnResponse(Response.Status status, UUID requestId, CommissioningResponse resp) {
- return addLoggingHeaders(addVersionControlHeaders(Response.status(status)),
- requestId).entity(resp).build();
+ return addLoggingHeaders(addVersionControlHeaders(Response.status(status)), requestId).entity(resp).build();
}
}
diff --git a/runtime-controlloop/src/main/java/org/onap/policy/clamp/controlloop/runtime/instantiation/ControlLoopInstantiationProvider.java b/runtime-controlloop/src/main/java/org/onap/policy/clamp/controlloop/runtime/instantiation/ControlLoopInstantiationProvider.java
index eb72d9219..f458d7c51 100644
--- a/runtime-controlloop/src/main/java/org/onap/policy/clamp/controlloop/runtime/instantiation/ControlLoopInstantiationProvider.java
+++ b/runtime-controlloop/src/main/java/org/onap/policy/clamp/controlloop/runtime/instantiation/ControlLoopInstantiationProvider.java
@@ -63,6 +63,7 @@ public class ControlLoopInstantiationProvider implements Closeable {
* Create a instantiation provider.
*
* @param databaseProviderParameters the parameters for database access
+ * @throws PfModelRuntimeException on errors creating a provider
*/
public ControlLoopInstantiationProvider(PolicyModelsProviderParameters databaseProviderParameters) {
try {
@@ -89,10 +90,10 @@ public class ControlLoopInstantiationProvider implements Closeable {
synchronized (lockit) {
for (ControlLoop controlLoop : controlLoops.getControlLoopList()) {
- ControlLoop checkControlLoop = controlLoopProvider.getControlLoop(controlLoop.getKey().asIdentifier());
+ var checkControlLoop = controlLoopProvider.getControlLoop(controlLoop.getKey().asIdentifier());
if (checkControlLoop != null) {
throw new PfModelException(Response.Status.BAD_REQUEST,
- controlLoop.getKey().asIdentifier() + " already defined");
+ controlLoop.getKey().asIdentifier() + " already defined");
}
}
BeanValidationResult validationResult = validateControlLoops(controlLoops);
@@ -102,9 +103,9 @@ public class ControlLoopInstantiationProvider implements Closeable {
controlLoopProvider.createControlLoops(controlLoops.getControlLoopList());
}
- InstantiationResponse response = new InstantiationResponse();
+ var response = new InstantiationResponse();
response.setAffectedControlLoops(controlLoops.getControlLoopList().stream()
- .map(cl -> cl.getKey().asIdentifier()).collect(Collectors.toList()));
+ .map(cl -> cl.getKey().asIdentifier()).collect(Collectors.toList()));
return response;
}
@@ -125,9 +126,9 @@ public class ControlLoopInstantiationProvider implements Closeable {
controlLoopProvider.updateControlLoops(controlLoops.getControlLoopList());
}
- InstantiationResponse response = new InstantiationResponse();
+ var response = new InstantiationResponse();
response.setAffectedControlLoops(controlLoops.getControlLoopList().stream()
- .map(cl -> cl.getKey().asIdentifier()).collect(Collectors.toList()));
+ .map(cl -> cl.getKey().asIdentifier()).collect(Collectors.toList()));
return response;
}
@@ -136,32 +137,29 @@ public class ControlLoopInstantiationProvider implements Closeable {
* Validate ControlLoops.
*
* @param controlLoops ControlLoops to validate
- * @result the result of validation
+ * @return the result of validation
* @throws PfModelException if controlLoops is not valid
*/
private BeanValidationResult validateControlLoops(ControlLoops controlLoops) throws PfModelException {
- BeanValidationResult result = new BeanValidationResult("ControlLoops", controlLoops);
+ var result = new BeanValidationResult("ControlLoops", controlLoops);
for (ControlLoop controlLoop : controlLoops.getControlLoopList()) {
- BeanValidationResult subResult = new BeanValidationResult(
- "entry " + controlLoop.getDefinition().getName(), controlLoop);
+ var subResult = new BeanValidationResult("entry " + controlLoop.getDefinition().getName(), controlLoop);
List<ToscaNodeTemplate> toscaNodeTemplates = commissioningProvider.getControlLoopDefinitions(
- controlLoop.getDefinition().getName(), controlLoop.getDefinition().getVersion());
+ controlLoop.getDefinition().getName(), controlLoop.getDefinition().getVersion());
if (toscaNodeTemplates.isEmpty()) {
- subResult
- .addResult(new ObjectValidationResult("ControlLoop", controlLoop.getDefinition().getName(),
- ValidationStatus.INVALID, "Commissioned control loop definition not FOUND"));
+ subResult.addResult(new ObjectValidationResult("ControlLoop", controlLoop.getDefinition().getName(),
+ ValidationStatus.INVALID, "Commissioned control loop definition not FOUND"));
} else if (toscaNodeTemplates.size() > 1) {
- subResult
- .addResult(new ObjectValidationResult("ControlLoop", controlLoop.getDefinition().getName(),
- ValidationStatus.INVALID, "Commissioned control loop definition not VALID"));
+ subResult.addResult(new ObjectValidationResult("ControlLoop", controlLoop.getDefinition().getName(),
+ ValidationStatus.INVALID, "Commissioned control loop definition not VALID"));
} else {
List<ToscaNodeTemplate> clElementDefinitions =
- commissioningProvider.getControlLoopElementDefinitions(toscaNodeTemplates.get(0));
+ commissioningProvider.getControlLoopElementDefinitions(toscaNodeTemplates.get(0));
// @formatter:off
Map<String, ToscaConceptIdentifier> definitions = clElementDefinitions
@@ -184,11 +182,11 @@ public class ControlLoopInstantiationProvider implements Closeable {
*
* @param definitions map of all ToscaConceptIdentifiers
* @param definition ToscaConceptIdentifier to validate
- * @result result the validation result
+ * @return the validation result
*/
private ValidationResult validateDefinition(Map<String, ToscaConceptIdentifier> definitions,
- ToscaConceptIdentifier definition) {
- BeanValidationResult result = new BeanValidationResult("entry " + definition.getName(), definition);
+ ToscaConceptIdentifier definition) {
+ var result = new BeanValidationResult("entry " + definition.getName(), definition);
ToscaConceptIdentifier identifier = definitions.get(definition.getName());
if (identifier == null) {
result.setResult(ValidationStatus.INVALID, "Not FOUND");
@@ -207,7 +205,7 @@ public class ControlLoopInstantiationProvider implements Closeable {
* @throws PfModelException on deletion errors
*/
public InstantiationResponse deleteControlLoop(String name, String version) throws PfModelException {
- InstantiationResponse response = new InstantiationResponse();
+ var response = new InstantiationResponse();
synchronized (lockit) {
List<ControlLoop> controlLoops = controlLoopProvider.getControlLoops(name, version);
if (controlLoops.isEmpty()) {
@@ -216,12 +214,12 @@ public class ControlLoopInstantiationProvider implements Closeable {
for (ControlLoop controlLoop : controlLoops) {
if (!ControlLoopState.UNINITIALISED.equals(controlLoop.getState())) {
throw new PfModelException(Response.Status.BAD_REQUEST,
- "Control Loop State is still " + controlLoop.getState());
+ "Control Loop State is still " + controlLoop.getState());
}
}
response.setAffectedControlLoops(Collections
- .singletonList(controlLoopProvider.deleteControlLoop(name, version).getKey().asIdentifier()));
+ .singletonList(controlLoopProvider.deleteControlLoop(name, version).getKey().asIdentifier()));
}
return response;
}
@@ -235,7 +233,7 @@ public class ControlLoopInstantiationProvider implements Closeable {
* @throws PfModelException on errors getting control loops
*/
public ControlLoops getControlLoops(String name, String version) throws PfModelException {
- ControlLoops controlLoops = new ControlLoops();
+ var controlLoops = new ControlLoops();
controlLoops.setControlLoopList(controlLoopProvider.getControlLoops(name, version));
return controlLoops;
@@ -250,7 +248,7 @@ public class ControlLoopInstantiationProvider implements Closeable {
* @throws ControlLoopException on ordered state invalid
*/
public InstantiationResponse issueControlLoopCommand(InstantiationCommand command)
- throws ControlLoopException, PfModelException {
+ throws ControlLoopException, PfModelException {
if (command.getOrderedState() == null) {
throw new ControlLoopException(Status.BAD_REQUEST, "ordered state invalid or not specified on command");
@@ -259,16 +257,16 @@ public class ControlLoopInstantiationProvider implements Closeable {
synchronized (lockit) {
List<ControlLoop> controlLoops = new ArrayList<>(command.getControlLoopIdentifierList().size());
for (ToscaConceptIdentifier id : command.getControlLoopIdentifierList()) {
- ControlLoop controlLoop = controlLoopProvider.getControlLoop(id);
+ var controlLoop = controlLoopProvider.getControlLoop(id);
controlLoop.setCascadedOrderedState(command.getOrderedState());
controlLoops.add(controlLoop);
}
controlLoopProvider.updateControlLoops(controlLoops);
}
- SupervisionHandler supervisionHandler = SupervisionHandler.getInstance();
+ var supervisionHandler = SupervisionHandler.getInstance();
supervisionHandler.triggerControlLoopSupervision(command.getControlLoopIdentifierList());
- InstantiationResponse response = new InstantiationResponse();
+ var response = new InstantiationResponse();
response.setAffectedControlLoops(command.getControlLoopIdentifierList());
return response;
diff --git a/runtime-controlloop/src/main/java/org/onap/policy/clamp/controlloop/runtime/instantiation/InstantiationHandler.java b/runtime-controlloop/src/main/java/org/onap/policy/clamp/controlloop/runtime/instantiation/InstantiationHandler.java
index d81e54ccf..67fd9455e 100644
--- a/runtime-controlloop/src/main/java/org/onap/policy/clamp/controlloop/runtime/instantiation/InstantiationHandler.java
+++ b/runtime-controlloop/src/main/java/org/onap/policy/clamp/controlloop/runtime/instantiation/InstantiationHandler.java
@@ -21,15 +21,12 @@
package org.onap.policy.clamp.controlloop.runtime.instantiation;
import java.io.IOException;
-import java.util.List;
import java.util.Set;
import javax.ws.rs.core.Response;
import lombok.Getter;
import org.onap.policy.clamp.controlloop.common.handler.ControlLoopHandler;
import org.onap.policy.clamp.controlloop.runtime.instantiation.rest.InstantiationController;
import org.onap.policy.clamp.controlloop.runtime.main.parameters.ClRuntimeParameterGroup;
-import org.onap.policy.common.endpoints.event.comm.TopicSink;
-import org.onap.policy.common.endpoints.listeners.MessageTypeDispatcher;
import org.onap.policy.common.utils.services.Registry;
import org.onap.policy.models.base.PfModelRuntimeException;
diff --git a/runtime-controlloop/src/main/java/org/onap/policy/clamp/controlloop/runtime/instantiation/rest/InstantiationController.java b/runtime-controlloop/src/main/java/org/onap/policy/clamp/controlloop/runtime/instantiation/rest/InstantiationController.java
index 7581aaf74..ea36c71fb 100644
--- a/runtime-controlloop/src/main/java/org/onap/policy/clamp/controlloop/runtime/instantiation/rest/InstantiationController.java
+++ b/runtime-controlloop/src/main/java/org/onap/policy/clamp/controlloop/runtime/instantiation/rest/InstantiationController.java
@@ -82,36 +82,35 @@ public class InstantiationController extends RestController {
value = "Commissions control loop definitions",
notes = "Commissions control loop definitions, returning the control loop IDs",
response = InstantiationResponse.class,
- tags = {
- "Control Loop Instantiation API"
- },
+ tags = {"Control Loop Instantiation API"},
authorizations = @Authorization(value = AUTHORIZATION_TYPE),
responseHeaders = {
- @ResponseHeader(
- name = VERSION_MINOR_NAME,
- description = VERSION_MINOR_DESCRIPTION,
- response = String.class),
- @ResponseHeader(
- name = VERSION_PATCH_NAME,
- description = VERSION_PATCH_DESCRIPTION,
- response = String.class),
- @ResponseHeader(
- name = VERSION_LATEST_NAME,
- description = VERSION_LATEST_DESCRIPTION,
- response = String.class),
- @ResponseHeader(
- name = REQUEST_ID_NAME,
- description = REQUEST_ID_HDR_DESCRIPTION,
- response = UUID.class)
+ @ResponseHeader(
+ name = VERSION_MINOR_NAME,
+ description = VERSION_MINOR_DESCRIPTION,
+ response = String.class),
+ @ResponseHeader(
+ name = VERSION_PATCH_NAME,
+ description = VERSION_PATCH_DESCRIPTION,
+ response = String.class),
+ @ResponseHeader(
+ name = VERSION_LATEST_NAME,
+ description = VERSION_LATEST_DESCRIPTION,
+ response = String.class),
+ @ResponseHeader(
+ name = REQUEST_ID_NAME,
+ description = REQUEST_ID_HDR_DESCRIPTION,
+ response = UUID.class)
},
extensions = {
- @Extension(
- name = EXTENSION_NAME,
- properties = {
+ @Extension
+ (
+ name = EXTENSION_NAME,
+ properties = {
@ExtensionProperty(name = API_VERSION_NAME, value = API_VERSION),
@ExtensionProperty(name = LAST_MOD_NAME, value = LAST_MOD_RELEASE)
- }
- )
+ }
+ )
}
)
@ApiResponses(
@@ -156,22 +155,23 @@ public class InstantiationController extends RestController {
},
authorizations = @Authorization(value = AUTHORIZATION_TYPE),
responseHeaders = {
- @ResponseHeader(
- name = VERSION_MINOR_NAME, description = VERSION_MINOR_DESCRIPTION,
- response = String.class),
- @ResponseHeader(name = VERSION_PATCH_NAME, description = VERSION_PATCH_DESCRIPTION,
- response = String.class),
- @ResponseHeader(name = VERSION_LATEST_NAME, description = VERSION_LATEST_DESCRIPTION,
- response = String.class),
- @ResponseHeader(name = REQUEST_ID_NAME, description = REQUEST_ID_HDR_DESCRIPTION,
- response = UUID.class)},
+ @ResponseHeader(
+ name = VERSION_MINOR_NAME, description = VERSION_MINOR_DESCRIPTION,
+ response = String.class),
+ @ResponseHeader(name = VERSION_PATCH_NAME, description = VERSION_PATCH_DESCRIPTION,
+ response = String.class),
+ @ResponseHeader(name = VERSION_LATEST_NAME, description = VERSION_LATEST_DESCRIPTION,
+ response = String.class),
+ @ResponseHeader(name = REQUEST_ID_NAME, description = REQUEST_ID_HDR_DESCRIPTION,
+ response = UUID.class)},
extensions = {
- @Extension(
- name = EXTENSION_NAME,
- properties = {
- @ExtensionProperty(name = API_VERSION_NAME, value = API_VERSION),
- @ExtensionProperty(name = LAST_MOD_NAME, value = LAST_MOD_RELEASE)
- }
+ @Extension
+ (
+ name = EXTENSION_NAME,
+ properties = {
+ @ExtensionProperty(name = API_VERSION_NAME, value = API_VERSION),
+ @ExtensionProperty(name = LAST_MOD_NAME, value = LAST_MOD_RELEASE)
+ }
)
}
)
@@ -190,7 +190,7 @@ public class InstantiationController extends RestController {
required = true) @QueryParam("version") String version) {
try {
- ControlLoops response = provider.getControlLoops(name, version);
+ var response = provider.getControlLoops(name, version);
return addLoggingHeaders(addVersionControlHeaders(Response.status(Status.OK)), requestId).entity(response)
.build();
@@ -220,31 +220,32 @@ public class InstantiationController extends RestController {
},
authorizations = @Authorization(value = AUTHORIZATION_TYPE),
responseHeaders = {
- @ResponseHeader(
- name = VERSION_MINOR_NAME,
- description = VERSION_MINOR_DESCRIPTION,
- response = String.class),
- @ResponseHeader(
- name = VERSION_PATCH_NAME,
- description = VERSION_PATCH_DESCRIPTION,
- response = String.class),
- @ResponseHeader(
- name = VERSION_LATEST_NAME,
- description = VERSION_LATEST_DESCRIPTION,
- response = String.class),
- @ResponseHeader(
- name = REQUEST_ID_NAME,
- description = REQUEST_ID_HDR_DESCRIPTION,
- response = UUID.class)
- },
+ @ResponseHeader(
+ name = VERSION_MINOR_NAME,
+ description = VERSION_MINOR_DESCRIPTION,
+ response = String.class),
+ @ResponseHeader(
+ name = VERSION_PATCH_NAME,
+ description = VERSION_PATCH_DESCRIPTION,
+ response = String.class),
+ @ResponseHeader(
+ name = VERSION_LATEST_NAME,
+ description = VERSION_LATEST_DESCRIPTION,
+ response = String.class),
+ @ResponseHeader(
+ name = REQUEST_ID_NAME,
+ description = REQUEST_ID_HDR_DESCRIPTION,
+ response = UUID.class)
+ },
extensions = {
- @Extension(
- name = EXTENSION_NAME,
- properties = {
+ @Extension
+ (
+ name = EXTENSION_NAME,
+ properties = {
@ExtensionProperty(name = API_VERSION_NAME, value = API_VERSION),
@ExtensionProperty(name = LAST_MOD_NAME, value = LAST_MOD_RELEASE)
- }
- )
+ }
+ )
}
)
@ApiResponses(
@@ -289,33 +290,35 @@ public class InstantiationController extends RestController {
},
authorizations = @Authorization(value = AUTHORIZATION_TYPE),
responseHeaders = {
- @ResponseHeader(
- name = VERSION_MINOR_NAME,
- description = VERSION_MINOR_DESCRIPTION,
- response = String.class),
- @ResponseHeader(
- name = VERSION_PATCH_NAME,
- description = VERSION_PATCH_DESCRIPTION,
- response = String.class),
- @ResponseHeader(
- name = VERSION_LATEST_NAME,
- description = VERSION_LATEST_DESCRIPTION,
- response = String.class),
- @ResponseHeader(
- name = REQUEST_ID_NAME,
- description = REQUEST_ID_HDR_DESCRIPTION,
- response = UUID.class)},
+ @ResponseHeader(
+ name = VERSION_MINOR_NAME,
+ description = VERSION_MINOR_DESCRIPTION,
+ response = String.class),
+ @ResponseHeader(
+ name = VERSION_PATCH_NAME,
+ description = VERSION_PATCH_DESCRIPTION,
+ response = String.class),
+ @ResponseHeader(
+ name = VERSION_LATEST_NAME,
+ description = VERSION_LATEST_DESCRIPTION,
+ response = String.class),
+ @ResponseHeader(
+ name = REQUEST_ID_NAME,
+ description = REQUEST_ID_HDR_DESCRIPTION,
+ response = UUID.class)},
extensions = {
- @Extension(
- name = EXTENSION_NAME,
- properties = {
- @ExtensionProperty(name = API_VERSION_NAME, value = API_VERSION),
- @ExtensionProperty(name = LAST_MOD_NAME, value = LAST_MOD_RELEASE)
- }
- )
+ @Extension
+ (
+ name = EXTENSION_NAME,
+ properties = {
+ @ExtensionProperty(name = API_VERSION_NAME, value = API_VERSION),
+ @ExtensionProperty(name = LAST_MOD_NAME, value = LAST_MOD_RELEASE)
+ }
+ )
}
)
- @ApiResponses(value = {
+ @ApiResponses(
+ value = {
@ApiResponse(code = AUTHENTICATION_ERROR_CODE, message = AUTHENTICATION_ERROR_MESSAGE),
@ApiResponse(code = AUTHORIZATION_ERROR_CODE, message = AUTHORIZATION_ERROR_MESSAGE),
@ApiResponse(code = SERVER_ERROR_CODE, message = SERVER_ERROR_MESSAGE)
@@ -358,21 +361,22 @@ public class InstantiationController extends RestController {
},
authorizations = @Authorization(value = AUTHORIZATION_TYPE),
responseHeaders = {
- @ResponseHeader(
- name = VERSION_MINOR_NAME, description = VERSION_MINOR_DESCRIPTION,
- response = String.class),
- @ResponseHeader(name = VERSION_PATCH_NAME, description = VERSION_PATCH_DESCRIPTION,
- response = String.class),
- @ResponseHeader(name = VERSION_LATEST_NAME, description = VERSION_LATEST_DESCRIPTION,
- response = String.class),
- @ResponseHeader(name = REQUEST_ID_NAME, description = REQUEST_ID_HDR_DESCRIPTION,
- response = UUID.class)},
+ @ResponseHeader(
+ name = VERSION_MINOR_NAME, description = VERSION_MINOR_DESCRIPTION,
+ response = String.class),
+ @ResponseHeader(name = VERSION_PATCH_NAME, description = VERSION_PATCH_DESCRIPTION,
+ response = String.class),
+ @ResponseHeader(name = VERSION_LATEST_NAME, description = VERSION_LATEST_DESCRIPTION,
+ response = String.class),
+ @ResponseHeader(name = REQUEST_ID_NAME, description = REQUEST_ID_HDR_DESCRIPTION,
+ response = UUID.class)},
extensions = {
- @Extension(
- name = EXTENSION_NAME,
- properties = {
- @ExtensionProperty(name = API_VERSION_NAME, value = API_VERSION),
- @ExtensionProperty(name = LAST_MOD_NAME, value = LAST_MOD_RELEASE)
+ @Extension
+ (
+ name = EXTENSION_NAME,
+ properties = {
+ @ExtensionProperty(name = API_VERSION_NAME, value = API_VERSION),
+ @ExtensionProperty(name = LAST_MOD_NAME, value = LAST_MOD_RELEASE)
}
)
}
@@ -407,7 +411,7 @@ public class InstantiationController extends RestController {
* @return the Instantiation Response
*/
private Response createInstantiationErrorResponse(ErrorResponseInfo e, UUID requestId) {
- InstantiationResponse resp = new InstantiationResponse();
+ var resp = new InstantiationResponse();
resp.setErrorDetails(e.getErrorResponse().getErrorMessage());
return addLoggingHeaders(addVersionControlHeaders(Response.status(e.getErrorResponse().getResponseCode())),
requestId).entity(resp).build();
diff --git a/runtime-controlloop/src/main/java/org/onap/policy/clamp/controlloop/runtime/main/rest/RestController.java b/runtime-controlloop/src/main/java/org/onap/policy/clamp/controlloop/runtime/main/rest/RestController.java
index dd3fa30fc..4955e4a2f 100644
--- a/runtime-controlloop/src/main/java/org/onap/policy/clamp/controlloop/runtime/main/rest/RestController.java
+++ b/runtime-controlloop/src/main/java/org/onap/policy/clamp/controlloop/runtime/main/rest/RestController.java
@@ -102,6 +102,7 @@ public class RestController {
* Adds logging headers to the response.
*
* @param respBuilder response builder
+ * @param requestId unique ID for this request
* @return the response builder, with version logging
*/
public ResponseBuilder addLoggingHeaders(ResponseBuilder respBuilder, UUID requestId) {
diff --git a/runtime-controlloop/src/main/java/org/onap/policy/clamp/controlloop/runtime/main/startstop/ClRuntimeActivator.java b/runtime-controlloop/src/main/java/org/onap/policy/clamp/controlloop/runtime/main/startstop/ClRuntimeActivator.java
index a4238a9c4..957f53600 100644
--- a/runtime-controlloop/src/main/java/org/onap/policy/clamp/controlloop/runtime/main/startstop/ClRuntimeActivator.java
+++ b/runtime-controlloop/src/main/java/org/onap/policy/clamp/controlloop/runtime/main/startstop/ClRuntimeActivator.java
@@ -64,6 +64,7 @@ public class ClRuntimeActivator extends ServiceManagerContainer {
* Instantiate the activator for the control loop runtime as a complete service.
*
* @param clRuntimeParameterGroup the parameters for the control loop runtime service
+ * @throws ControlLoopRuntimeException if the activator does not start
*/
public ClRuntimeActivator(final ClRuntimeParameterGroup clRuntimeParameterGroup) {
@@ -134,7 +135,7 @@ public class ClRuntimeActivator extends ServiceManagerContainer {
providerClasses.addAll(supervisionHandler.get().getProviderClasses());
providerClasses.addAll(monitoringHandler.get().getProviderClasses());
- RestServer server = new RestServer(clRuntimeParameterGroup.getRestServerParameters(),
+ var server = new RestServer(clRuntimeParameterGroup.getRestServerParameters(),
ControlLoopAafFilter.class,
providerClasses.toArray(new Class<?>[providerClasses.size()]));
diff --git a/runtime-controlloop/src/main/java/org/onap/policy/clamp/controlloop/runtime/main/startstop/ClRuntimeCommandLineArguments.java b/runtime-controlloop/src/main/java/org/onap/policy/clamp/controlloop/runtime/main/startstop/ClRuntimeCommandLineArguments.java
index f36bb858b..54167e8a6 100644
--- a/runtime-controlloop/src/main/java/org/onap/policy/clamp/controlloop/runtime/main/startstop/ClRuntimeCommandLineArguments.java
+++ b/runtime-controlloop/src/main/java/org/onap/policy/clamp/controlloop/runtime/main/startstop/ClRuntimeCommandLineArguments.java
@@ -20,21 +20,14 @@
package org.onap.policy.clamp.controlloop.runtime.main.startstop;
-import java.io.File;
-import java.io.PrintWriter;
-import java.io.StringWriter;
-import java.net.URL;
import java.util.Arrays;
import javax.ws.rs.core.Response;
import lombok.Getter;
import lombok.Setter;
import org.apache.commons.cli.CommandLine;
import org.apache.commons.cli.DefaultParser;
-import org.apache.commons.cli.HelpFormatter;
-import org.apache.commons.cli.Option;
import org.apache.commons.cli.Options;
import org.apache.commons.cli.ParseException;
-import org.apache.commons.lang3.StringUtils;
import org.onap.policy.clamp.controlloop.common.exception.ControlLoopException;
import org.onap.policy.clamp.controlloop.common.exception.ControlLoopRuntimeException;
import org.onap.policy.clamp.controlloop.common.startstop.CommonCommandLineArguments;
@@ -44,14 +37,11 @@ import org.onap.policy.common.utils.resources.ResourceUtils;
* This class reads and handles command line parameters for the control loop runtime service.
*/
public class ClRuntimeCommandLineArguments {
- private static final String FILE_MESSAGE_PREAMBLE = " file \"";
- private static final int HELP_LINE_LENGTH = 120;
-
private final Options options;
private final CommonCommandLineArguments commonCommandLineArguments;
- @Getter()
- @Setter()
+ @Getter
+ @Setter
private String configurationFilePath = null;
/**
@@ -66,6 +56,7 @@ public class ClRuntimeCommandLineArguments {
* Construct the options for the CLI editor and parse in the given arguments.
*
* @param args The command line arguments
+ * @throws ControlLoopRuntimeException if the arguments are invalid
*/
public ClRuntimeCommandLineArguments(final String[] args) {
// Set up the options with the default constructor
@@ -76,7 +67,7 @@ public class ClRuntimeCommandLineArguments {
parse(args);
} catch (final ControlLoopException e) {
throw new ControlLoopRuntimeException(Response.Status.NOT_ACCEPTABLE,
- "parse error on control loop runtime parameters", e);
+ "parse error on control loop runtime parameters", e);
}
}
@@ -95,7 +86,7 @@ public class ClRuntimeCommandLineArguments {
commandLine = new DefaultParser().parse(options, args);
} catch (final ParseException e) {
throw new ControlLoopException(Response.Status.NOT_ACCEPTABLE,
- "invalid command line arguments specified : " + e.getMessage());
+ "invalid command line arguments specified : " + e.getMessage());
}
// Arguments left over after Commons CLI does its stuff
@@ -103,7 +94,7 @@ public class ClRuntimeCommandLineArguments {
if (remainingArgs.length > 0) {
throw new ControlLoopException(Response.Status.NOT_ACCEPTABLE,
- "too many command line arguments specified : " + Arrays.toString(args));
+ "too many command line arguments specified : " + Arrays.toString(args));
}
if (commandLine.hasOption('h')) {
@@ -138,14 +129,4 @@ public class ClRuntimeCommandLineArguments {
public String getFullConfigurationFilePath() {
return ResourceUtils.getFilePath4Resource(getConfigurationFilePath());
}
-
- /**
- * Sets the configuration file path.
- *
- * @param configurationFilePath the configuration file path
- */
- public void setConfigurationFilePath(final String configurationFilePath) {
- this.configurationFilePath = configurationFilePath;
-
- }
}
diff --git a/runtime-controlloop/src/main/java/org/onap/policy/clamp/controlloop/runtime/main/startstop/Main.java b/runtime-controlloop/src/main/java/org/onap/policy/clamp/controlloop/runtime/main/startstop/Main.java
index 8e60d68cf..de1ce6f5d 100644
--- a/runtime-controlloop/src/main/java/org/onap/policy/clamp/controlloop/runtime/main/startstop/Main.java
+++ b/runtime-controlloop/src/main/java/org/onap/policy/clamp/controlloop/runtime/main/startstop/Main.java
@@ -46,13 +46,14 @@ public class Main {
* Instantiates the control loop runtime service.
*
* @param args the command line arguments
+ * @throws ControlLoopRuntimeException if the CLAMP runtime fails to start
*/
public Main(final String[] args) {
- final String argumentString = Arrays.toString(args);
+ final var argumentString = Arrays.toString(args);
LOGGER.info("Starting the control loop runtime service with arguments - {}", argumentString);
// Check the arguments
- final ClRuntimeCommandLineArguments arguments = new ClRuntimeCommandLineArguments();
+ final var arguments = new ClRuntimeCommandLineArguments();
try {
// The arguments return a string if there is a message to print and we should exit
final String argumentMessage = arguments.parse(args);
@@ -82,12 +83,14 @@ public class Main {
// Add a shutdown hook to shut everything down in an orderly manner
Runtime.getRuntime().addShutdownHook(new ClRuntimeShutdownHookClass());
- String successMsg = String.format(MessageConstants.START_SUCCESS_MSG, MessageConstants.POLICY_CLAMP);
+ var successMsg = String.format(MessageConstants.START_SUCCESS_MSG, MessageConstants.POLICY_CLAMP);
LOGGER.info(successMsg);
}
/**
* Check if main is running.
+ *
+ * @return true if the CLAMP runtime is running
*/
public boolean isRunning() {
return activator != null && activator.isAlive();
diff --git a/runtime-controlloop/src/main/java/org/onap/policy/clamp/controlloop/runtime/monitoring/MonitoringHandler.java b/runtime-controlloop/src/main/java/org/onap/policy/clamp/controlloop/runtime/monitoring/MonitoringHandler.java
index a7ad9180a..1584766f1 100644
--- a/runtime-controlloop/src/main/java/org/onap/policy/clamp/controlloop/runtime/monitoring/MonitoringHandler.java
+++ b/runtime-controlloop/src/main/java/org/onap/policy/clamp/controlloop/runtime/monitoring/MonitoringHandler.java
@@ -21,15 +21,12 @@
package org.onap.policy.clamp.controlloop.runtime.monitoring;
import java.io.IOException;
-import java.util.List;
import java.util.Set;
import javax.ws.rs.core.Response;
import lombok.Getter;
import org.onap.policy.clamp.controlloop.common.handler.ControlLoopHandler;
import org.onap.policy.clamp.controlloop.runtime.main.parameters.ClRuntimeParameterGroup;
import org.onap.policy.clamp.controlloop.runtime.monitoring.rest.MonitoringQueryController;
-import org.onap.policy.common.endpoints.event.comm.TopicSink;
-import org.onap.policy.common.endpoints.listeners.MessageTypeDispatcher;
import org.onap.policy.common.utils.services.Registry;
import org.onap.policy.models.base.PfModelRuntimeException;
diff --git a/runtime-controlloop/src/main/java/org/onap/policy/clamp/controlloop/runtime/monitoring/MonitoringProvider.java b/runtime-controlloop/src/main/java/org/onap/policy/clamp/controlloop/runtime/monitoring/MonitoringProvider.java
index 193f8d557..1bc1312e7 100644
--- a/runtime-controlloop/src/main/java/org/onap/policy/clamp/controlloop/runtime/monitoring/MonitoringProvider.java
+++ b/runtime-controlloop/src/main/java/org/onap/policy/clamp/controlloop/runtime/monitoring/MonitoringProvider.java
@@ -30,7 +30,6 @@ import java.util.Map;
import lombok.NonNull;
import org.onap.policy.clamp.controlloop.models.controlloop.concepts.ClElementStatistics;
import org.onap.policy.clamp.controlloop.models.controlloop.concepts.ClElementStatisticsList;
-import org.onap.policy.clamp.controlloop.models.controlloop.concepts.ControlLoop;
import org.onap.policy.clamp.controlloop.models.controlloop.concepts.ControlLoopElement;
import org.onap.policy.clamp.controlloop.models.controlloop.concepts.ParticipantStatistics;
import org.onap.policy.clamp.controlloop.models.controlloop.concepts.ParticipantStatisticsList;
@@ -55,6 +54,8 @@ public class MonitoringProvider implements Closeable {
/**
* Create a Monitoring provider.
*
+ * @param parameters parameters for accessing the database for monitoring
+ * @throws PfModelRuntimeException on errors creating the provider
*/
public MonitoringProvider(PolicyModelsProviderParameters parameters) {
@@ -83,9 +84,9 @@ public class MonitoringProvider implements Closeable {
*/
public ParticipantStatisticsList createParticipantStatistics(List<ParticipantStatistics> participantStatistics)
throws PfModelException {
- ParticipantStatisticsList participantStatisticsList = new ParticipantStatisticsList();
- participantStatisticsList.setStatisticsList(participantStatisticsProvider
- .createParticipantStatistics(participantStatistics));
+ var participantStatisticsList = new ParticipantStatisticsList();
+ participantStatisticsList
+ .setStatisticsList(participantStatisticsProvider.createParticipantStatistics(participantStatistics));
return participantStatisticsList;
}
@@ -99,9 +100,9 @@ public class MonitoringProvider implements Closeable {
*/
public ClElementStatisticsList createClElementStatistics(List<ClElementStatistics> clElementStatisticsList)
throws PfModelException {
- ClElementStatisticsList elementStatisticsList = new ClElementStatisticsList();
- elementStatisticsList.setClElementStatistics(clElementStatisticsProvider
- .createClElementStatistics(clElementStatisticsList));
+ var elementStatisticsList = new ClElementStatisticsList();
+ elementStatisticsList
+ .setClElementStatistics(clElementStatisticsProvider.createClElementStatistics(clElementStatisticsList));
return elementStatisticsList;
}
@@ -117,38 +118,36 @@ public class MonitoringProvider implements Closeable {
* @return the participant found
*/
public ParticipantStatisticsList fetchFilteredParticipantStatistics(@NonNull final String name,
- final String version, int recordCount,
- Instant startTime, Instant endTime) {
- ParticipantStatisticsList participantStatisticsList = new ParticipantStatisticsList();
+ final String version, int recordCount, Instant startTime, Instant endTime) {
+ var participantStatisticsList = new ParticipantStatisticsList();
- //Additional parameters can be added in filterMap for filtering data.
+ // Additional parameters can be added in filterMap for filtering data.
Map<String, Object> filterMap = null;
- participantStatisticsList.setStatisticsList(participantStatisticsProvider.getFilteredParticipantStatistics(
- name, version, startTime, endTime, filterMap, DESC_ORDER, recordCount));
+ participantStatisticsList.setStatisticsList(participantStatisticsProvider.getFilteredParticipantStatistics(name,
+ version, startTime, endTime, filterMap, DESC_ORDER, recordCount));
return participantStatisticsList;
}
/**
- * Get all participant statistics records found for a specific control loop. *
+ * Get all participant statistics records found for a specific control loop. *
*
* @param controlLoopName name of the control loop
* @param controlLoopVersion version of the control loop
* @return All the participant statistics found
- * @throws PfModelException on errors getting participant statistics
+ * @throws PfModelRuntimeException on errors getting participant statistics
*/
public ParticipantStatisticsList fetchParticipantStatsPerControlLoop(@NonNull final String controlLoopName,
- @NonNull final String controlLoopVersion)
- throws PfModelException {
- ParticipantStatisticsList statisticsList = new ParticipantStatisticsList();
+ @NonNull final String controlLoopVersion) {
+ var statisticsList = new ParticipantStatisticsList();
List<ParticipantStatistics> participantStatistics = new ArrayList<>();
try {
- //Fetch all participantIds for a specific control loop
- List<ToscaConceptIdentifier> participantIds = getAllParticipantIdsPerControlLoop(controlLoopName,
- controlLoopVersion);
- for (ToscaConceptIdentifier id: participantIds) {
- participantStatistics.addAll(participantStatisticsProvider.getFilteredParticipantStatistics(
- id.getName(), id.getVersion(), null, null, null, DESC_ORDER, 0));
+ // Fetch all participantIds for a specific control loop
+ List<ToscaConceptIdentifier> participantIds =
+ getAllParticipantIdsPerControlLoop(controlLoopName, controlLoopVersion);
+ for (ToscaConceptIdentifier id : participantIds) {
+ participantStatistics.addAll(participantStatisticsProvider
+ .getFilteredParticipantStatistics(id.getName(), id.getVersion(), null, null, null, DESC_ORDER, 0));
}
statisticsList.setStatisticsList(participantStatistics);
} catch (PfModelException e) {
@@ -157,8 +156,6 @@ public class MonitoringProvider implements Closeable {
return statisticsList;
}
-
-
/**
* Get clElement statistics based on specific filters.
*
@@ -172,46 +169,42 @@ public class MonitoringProvider implements Closeable {
* @throws PfModelException on errors getting control loop statistics
*/
public ClElementStatisticsList fetchFilteredClElementStatistics(@NonNull final String name, final String version,
- final String id, Instant startTime, Instant endTime,
- int recordCount) throws PfModelException {
- ClElementStatisticsList clElementStatisticsList = new ClElementStatisticsList();
+ final String id, Instant startTime, Instant endTime, int recordCount) throws PfModelException {
+ var clElementStatisticsList = new ClElementStatisticsList();
Map<String, Object> filterMap = new HashMap<>();
- //Adding UUID in filter if present
+ // Adding UUID in filter if present
if (id != null) {
filterMap.put("localName", id);
}
- clElementStatisticsList.setClElementStatistics(clElementStatisticsProvider.getFilteredClElementStatistics(
- name, version, startTime, endTime, filterMap, DESC_ORDER, recordCount));
+ clElementStatisticsList.setClElementStatistics(clElementStatisticsProvider.getFilteredClElementStatistics(name,
+ version, startTime, endTime, filterMap, DESC_ORDER, recordCount));
return clElementStatisticsList;
}
-
/**
* Get clElement statistics per control loop.
*
* @param name the name of the control loop
* @param version the version of the control loop
* @return the clElement statistics found
- * @throws PfModelException on errors getting control loop statistics
+ * @throws PfModelRuntimeException on errors getting control loop statistics
*/
public ClElementStatisticsList fetchClElementStatsPerControlLoop(@NonNull final String name,
- @NonNull final String version)
- throws PfModelException {
- ClElementStatisticsList clElementStatisticsList = new ClElementStatisticsList();
+ @NonNull final String version) {
+ var clElementStatisticsList = new ClElementStatisticsList();
List<ClElementStatistics> clElementStats = new ArrayList<>();
try {
List<ControlLoopElement> clElements = new ArrayList<>();
- //Fetch all control loop elements for the control loop
- ControlLoop controlLoop = controlLoopProvider.getControlLoop(new ToscaConceptIdentifier(name,
- version));
+ // Fetch all control loop elements for the control loop
+ var controlLoop = controlLoopProvider.getControlLoop(new ToscaConceptIdentifier(name, version));
if (controlLoop != null) {
clElements.addAll(controlLoop.getElements().values());
- //Collect control loop element statistics for each cl element.
+ // Collect control loop element statistics for each cl element.
for (ControlLoopElement clElement : clElements) {
clElementStats.addAll(fetchFilteredClElementStatistics(clElement.getParticipantId().getName(),
- clElement.getParticipantId().getVersion(), clElement.getId().toString(), null,
- null, 0).getClElementStatistics());
+ clElement.getParticipantId().getVersion(), clElement.getId().toString(), null, null, 0)
+ .getClElementStatistics());
}
}
clElementStatisticsList.setClElementStatistics(clElementStats);
@@ -233,7 +226,7 @@ public class MonitoringProvider implements Closeable {
public List<ToscaConceptIdentifier> getAllParticipantIdsPerControlLoop(String name, String version)
throws PfModelException {
List<ToscaConceptIdentifier> participantIds = new ArrayList<>();
- ControlLoop controlLoop = controlLoopProvider.getControlLoop(new ToscaConceptIdentifier(name, version));
+ var controlLoop = controlLoopProvider.getControlLoop(new ToscaConceptIdentifier(name, version));
if (controlLoop != null) {
for (ControlLoopElement clElement : controlLoop.getElements().values()) {
participantIds.add(clElement.getParticipantId());
@@ -254,7 +247,7 @@ public class MonitoringProvider implements Closeable {
public Map<String, ToscaConceptIdentifier> getAllClElementsIdPerControlLoop(String name, String version)
throws PfModelException {
Map<String, ToscaConceptIdentifier> clElementId = new HashMap<>();
- ControlLoop controlLoop = controlLoopProvider.getControlLoop(new ToscaConceptIdentifier(name, version));
+ var controlLoop = controlLoopProvider.getControlLoop(new ToscaConceptIdentifier(name, version));
if (controlLoop != null) {
for (ControlLoopElement clElement : controlLoop.getElements().values()) {
clElementId.put(clElement.getId().toString(), clElement.getParticipantId());
diff --git a/runtime-controlloop/src/main/java/org/onap/policy/clamp/controlloop/runtime/monitoring/rest/MonitoringQueryController.java b/runtime-controlloop/src/main/java/org/onap/policy/clamp/controlloop/runtime/monitoring/rest/MonitoringQueryController.java
index 2e19ffe3a..7fde5fba3 100644
--- a/runtime-controlloop/src/main/java/org/onap/policy/clamp/controlloop/runtime/monitoring/rest/MonitoringQueryController.java
+++ b/runtime-controlloop/src/main/java/org/onap/policy/clamp/controlloop/runtime/monitoring/rest/MonitoringQueryController.java
@@ -67,7 +67,10 @@ public class MonitoringQueryController extends RestController {
*
* @param requestId request ID used in ONAP logging
* @param name the name of the participant to get, null for all participants statistics
+ * @param version the version of the participant to get, null for all participants with the given name
* @param recordCount the record count to be fetched
+ * @param startTime the time from which to get statistics
+ * @param endTime the time to which to get statistics
* @return the participant statistics
*/
// @formatter:off
@@ -91,13 +94,14 @@ public class MonitoringQueryController extends RestController {
@ResponseHeader(name = REQUEST_ID_NAME, description = REQUEST_ID_HDR_DESCRIPTION,
response = UUID.class)},
extensions = {
- @Extension(
- name = EXTENSION_NAME,
- properties = {
- @ExtensionProperty(name = API_VERSION_NAME, value = API_VERSION),
- @ExtensionProperty(name = LAST_MOD_NAME, value = LAST_MOD_RELEASE)
- }
- )
+ @Extension
+ (
+ name = EXTENSION_NAME,
+ properties = {
+ @ExtensionProperty(name = API_VERSION_NAME, value = API_VERSION),
+ @ExtensionProperty(name = LAST_MOD_NAME, value = LAST_MOD_RELEASE)
+ }
+ )
}
)
@ApiResponses(
@@ -174,13 +178,14 @@ public class MonitoringQueryController extends RestController {
@ResponseHeader(name = REQUEST_ID_NAME, description = REQUEST_ID_HDR_DESCRIPTION,
response = UUID.class)},
extensions = {
- @Extension(
- name = EXTENSION_NAME,
- properties = {
- @ExtensionProperty(name = API_VERSION_NAME, value = API_VERSION),
- @ExtensionProperty(name = LAST_MOD_NAME, value = LAST_MOD_RELEASE)
- }
- )
+ @Extension
+ (
+ name = EXTENSION_NAME,
+ properties = {
+ @ExtensionProperty(name = API_VERSION_NAME, value = API_VERSION),
+ @ExtensionProperty(name = LAST_MOD_NAME, value = LAST_MOD_RELEASE)
+ }
+ )
})
@ApiResponses(
value = {
@@ -203,7 +208,7 @@ public class MonitoringQueryController extends RestController {
.entity(response)
.build();
- } catch (PfModelRuntimeException | PfModelException e) {
+ } catch (PfModelRuntimeException e) {
LOGGER.warn("Monitoring of Cl participant statistics failed", e);
return addLoggingHeaders(addVersionControlHeaders(Response.status(e.getErrorResponse().getResponseCode())),
requestId).build();
@@ -242,13 +247,14 @@ public class MonitoringQueryController extends RestController {
@ResponseHeader(name = REQUEST_ID_NAME, description = REQUEST_ID_HDR_DESCRIPTION,
response = UUID.class)},
extensions = {
- @Extension(
- name = EXTENSION_NAME,
- properties = {
- @ExtensionProperty(name = API_VERSION_NAME, value = API_VERSION),
- @ExtensionProperty(name = LAST_MOD_NAME, value = LAST_MOD_RELEASE)
- }
- )
+ @Extension
+ (
+ name = EXTENSION_NAME,
+ properties = {
+ @ExtensionProperty(name = API_VERSION_NAME, value = API_VERSION),
+ @ExtensionProperty(name = LAST_MOD_NAME, value = LAST_MOD_RELEASE)
+ }
+ )
})
@ApiResponses(
value = {
@@ -271,7 +277,7 @@ public class MonitoringQueryController extends RestController {
.entity(response)
.build();
- } catch (PfModelRuntimeException | PfModelException e) {
+ } catch (PfModelRuntimeException e) {
LOGGER.warn("Monitoring of Cl Element statistics failed", e);
return addLoggingHeaders(addVersionControlHeaders(Response.status(e.getErrorResponse().getResponseCode())),
requestId).build();
@@ -290,6 +296,8 @@ public class MonitoringQueryController extends RestController {
* @param version version of the control loop
* @param id Id of the control loop element
* @param recordCount the record count to be fetched
+ * @param startTime the time from which to get statistics
+ * @param endTime the time to which to get statistics
* @return the control loop element statistics
*/
// @formatter:off
@@ -313,13 +321,14 @@ public class MonitoringQueryController extends RestController {
@ResponseHeader(name = REQUEST_ID_NAME, description = REQUEST_ID_HDR_DESCRIPTION,
response = UUID.class)},
extensions = {
- @Extension(
- name = EXTENSION_NAME,
- properties = {
- @ExtensionProperty(name = API_VERSION_NAME, value = API_VERSION),
- @ExtensionProperty(name = LAST_MOD_NAME, value = LAST_MOD_RELEASE)
- }
- )
+ @Extension
+ (
+ name = EXTENSION_NAME,
+ properties = {
+ @ExtensionProperty(name = API_VERSION_NAME, value = API_VERSION),
+ @ExtensionProperty(name = LAST_MOD_NAME, value = LAST_MOD_RELEASE)
+ }
+ )
})
@ApiResponses(
value = {
diff --git a/runtime-controlloop/src/main/java/org/onap/policy/clamp/controlloop/runtime/supervision/SupervisionHandler.java b/runtime-controlloop/src/main/java/org/onap/policy/clamp/controlloop/runtime/supervision/SupervisionHandler.java
index 63bff00fc..7c7dc3a69 100644
--- a/runtime-controlloop/src/main/java/org/onap/policy/clamp/controlloop/runtime/supervision/SupervisionHandler.java
+++ b/runtime-controlloop/src/main/java/org/onap/policy/clamp/controlloop/runtime/supervision/SupervisionHandler.java
@@ -20,7 +20,6 @@
package org.onap.policy.clamp.controlloop.runtime.supervision;
-import java.util.ArrayList;
import java.util.List;
import java.util.UUID;
import javax.ws.rs.core.Response;
@@ -40,7 +39,6 @@ import org.onap.policy.clamp.controlloop.models.messages.dmaap.participant.Parti
import org.onap.policy.clamp.controlloop.models.messages.dmaap.participant.ParticipantMessageType;
import org.onap.policy.clamp.controlloop.models.messages.dmaap.participant.ParticipantStatus;
import org.onap.policy.clamp.controlloop.runtime.commissioning.CommissioningHandler;
-import org.onap.policy.clamp.controlloop.runtime.commissioning.CommissioningProvider;
import org.onap.policy.clamp.controlloop.runtime.main.parameters.ClRuntimeParameterGroup;
import org.onap.policy.clamp.controlloop.runtime.monitoring.MonitoringHandler;
import org.onap.policy.clamp.controlloop.runtime.monitoring.MonitoringProvider;
@@ -54,7 +52,6 @@ import org.onap.policy.common.utils.services.Registry;
import org.onap.policy.common.utils.services.ServiceManager;
import org.onap.policy.common.utils.services.ServiceManagerException;
import org.onap.policy.models.base.PfModelException;
-import org.onap.policy.models.base.PfModelRuntimeException;
import org.onap.policy.models.tosca.authorative.concepts.ToscaConceptIdentifier;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
@@ -74,7 +71,6 @@ public class SupervisionHandler extends ControlLoopHandler {
private ControlLoopProvider controlLoopProvider;
private ParticipantProvider participantProvider;
- private CommissioningProvider commissioningProvider;
private MonitoringProvider monitoringProvider;
// Publishers for participant communication
@@ -139,7 +135,7 @@ public class SupervisionHandler extends ControlLoopHandler {
for (ToscaConceptIdentifier controlLoopId : controlLoopIdentifierList) {
try {
- ControlLoop controlLoop = controlLoopProvider.getControlLoop(controlLoopId);
+ var controlLoop = controlLoopProvider.getControlLoop(controlLoopId);
superviseControlLoop(controlLoop);
@@ -223,9 +219,10 @@ public class SupervisionHandler extends ControlLoopHandler {
* Supervise a control loop, performing whatever actions need to be performed on the control loop.
*
* @param controlLoop the control loop to supervises
+ * @throws PfModelException on accessing models in the database
* @throws ControlLoopException on supervision errors
*/
- private void superviseControlLoop(ControlLoop controlLoop) throws ControlLoopException, PfModelException {
+ private void superviseControlLoop(ControlLoop controlLoop) throws ControlLoopException, PfModelException {
switch (controlLoop.getOrderedState()) {
case UNINITIALISED:
superviseControlLoopUninitialization(controlLoop);
@@ -332,18 +329,18 @@ public class SupervisionHandler extends ControlLoopHandler {
}
private void sendControlLoopUpdate(ControlLoop controlLoop) throws PfModelException {
- ParticipantControlLoopUpdate pclu = new ParticipantControlLoopUpdate();
+ var pclu = new ParticipantControlLoopUpdate();
pclu.setControlLoopId(controlLoop.getKey().asIdentifier());
pclu.setControlLoop(controlLoop);
// TODO: We should look up the correct TOSCA node template here for the control loop
// Tiny hack implemented to return the tosca service template entry from the database and be passed onto dmaap
- commissioningProvider = CommissioningHandler.getInstance().getProvider();
+ var commissioningProvider = CommissioningHandler.getInstance().getProvider();
pclu.setControlLoopDefinition(commissioningProvider.getToscaServiceTemplate(null, null));
controlLoopUpdatePublisher.send(pclu);
}
private void sendControlLoopStateChange(ControlLoop controlLoop) {
- ParticipantControlLoopStateChange clsc = new ParticipantControlLoopStateChange();
+ var clsc = new ParticipantControlLoopStateChange();
clsc.setControlLoopId(controlLoop.getKey().asIdentifier());
clsc.setMessageId(UUID.randomUUID());
clsc.setOrderedState(controlLoop.getOrderedState());
@@ -363,7 +360,7 @@ public class SupervisionHandler extends ControlLoopHandler {
participantStatusMessage.getParticipantId().getVersion());
if (CollectionUtils.isEmpty(participantList)) {
- Participant participant = new Participant();
+ var participant = new Participant();
participant.setName(participantStatusMessage.getParticipantId().getName());
participant.setVersion(participantStatusMessage.getParticipantId().getVersion());
participant.setDefinition(new ToscaConceptIdentifier("unknown", "0.0.0"));
@@ -397,7 +394,7 @@ public class SupervisionHandler extends ControlLoopHandler {
"PARTICIPANT_STATUS message references unknown control loop: " + controlLoop);
}
- ControlLoop dbControlLoop = controlLoopProvider
+ var dbControlLoop = controlLoopProvider
.getControlLoop(new ToscaConceptIdentifier(controlLoop.getName(), controlLoop.getVersion()));
if (dbControlLoop == null) {
exceptionOccured(Response.Status.NOT_FOUND,
diff --git a/runtime-controlloop/src/main/java/org/onap/policy/clamp/controlloop/runtime/supervision/SupervisionScanner.java b/runtime-controlloop/src/main/java/org/onap/policy/clamp/controlloop/runtime/supervision/SupervisionScanner.java
index 0ccfddff3..4f3faf8af 100644
--- a/runtime-controlloop/src/main/java/org/onap/policy/clamp/controlloop/runtime/supervision/SupervisionScanner.java
+++ b/runtime-controlloop/src/main/java/org/onap/policy/clamp/controlloop/runtime/supervision/SupervisionScanner.java
@@ -21,17 +21,9 @@
package org.onap.policy.clamp.controlloop.runtime.supervision;
import java.io.Closeable;
-import java.util.Collection;
-import java.util.List;
-import java.util.TimerTask;
-import java.util.concurrent.Callable;
-import java.util.concurrent.ExecutionException;
import java.util.concurrent.Executors;
-import java.util.concurrent.Future;
import java.util.concurrent.ScheduledExecutorService;
-import java.util.concurrent.ScheduledFuture;
import java.util.concurrent.TimeUnit;
-import java.util.concurrent.TimeoutException;
import org.onap.policy.clamp.controlloop.models.controlloop.concepts.ControlLoop;
import org.onap.policy.clamp.controlloop.models.controlloop.concepts.ControlLoopElement;
import org.onap.policy.clamp.controlloop.models.controlloop.persistence.provider.ControlLoopProvider;
diff --git a/runtime-controlloop/src/test/java/org/onap/policy/clamp/controlloop/runtime/commissioning/rest/CommissioningControllerTest.java b/runtime-controlloop/src/test/java/org/onap/policy/clamp/controlloop/runtime/commissioning/rest/CommissioningControllerTest.java
index 4dbb3ea02..f7749e164 100644
--- a/runtime-controlloop/src/test/java/org/onap/policy/clamp/controlloop/runtime/commissioning/rest/CommissioningControllerTest.java
+++ b/runtime-controlloop/src/test/java/org/onap/policy/clamp/controlloop/runtime/commissioning/rest/CommissioningControllerTest.java
@@ -127,7 +127,7 @@ public class CommissioningControllerTest extends CommonRestController {
Invocation.Builder invocationBuilder = super.sendRequest(COMMISSIONING_ENDPOINT + "?name=noResultWithThisName");
Response rawresp = invocationBuilder.buildGet().invoke();
assertEquals(Response.Status.OK.getStatusCode(), rawresp.getStatus());
- List entityList = rawresp.readEntity(List.class);
+ List<?> entityList = rawresp.readEntity(List.class);
assertThat(entityList).isEmpty();
}
@@ -138,7 +138,7 @@ public class CommissioningControllerTest extends CommonRestController {
Invocation.Builder invocationBuilder = super.sendRequest(COMMISSIONING_ENDPOINT);
Response rawresp = invocationBuilder.buildGet().invoke();
assertEquals(Response.Status.OK.getStatusCode(), rawresp.getStatus());
- List entityList = rawresp.readEntity(List.class);
+ List<?> entityList = rawresp.readEntity(List.class);
assertNotNull(entityList);
assertThat(entityList).hasSize(2);
}
@@ -161,7 +161,7 @@ public class CommissioningControllerTest extends CommonRestController {
+ "?name=org.onap.domain.pmsh.PMSHControlLoopDefinition");
Response rawresp = invocationBuilder.buildGet().invoke();
assertEquals(Response.Status.OK.getStatusCode(), rawresp.getStatus());
- List entityList = rawresp.readEntity(List.class);
+ List<?> entityList = rawresp.readEntity(List.class);
assertNotNull(entityList);
assertThat(entityList).hasSize(4);
}
diff --git a/runtime-controlloop/src/test/java/org/onap/policy/clamp/controlloop/runtime/monitoring/TestMonitoringProvider.java b/runtime-controlloop/src/test/java/org/onap/policy/clamp/controlloop/runtime/monitoring/TestMonitoringProvider.java
index 44096eecd..78f380405 100644
--- a/runtime-controlloop/src/test/java/org/onap/policy/clamp/controlloop/runtime/monitoring/TestMonitoringProvider.java
+++ b/runtime-controlloop/src/test/java/org/onap/policy/clamp/controlloop/runtime/monitoring/TestMonitoringProvider.java
@@ -47,7 +47,6 @@ import org.onap.policy.common.utils.coder.StandardCoder;
import org.onap.policy.models.provider.PolicyModelsProviderParameters;
import org.onap.policy.models.tosca.authorative.concepts.ToscaConceptIdentifier;
-
public class TestMonitoringProvider {
private static final String CL_PARTICIPANT_STATISTICS_JSON =
@@ -68,8 +67,6 @@ public class TestMonitoringProvider {
private static ClElementStatisticsList inputClElementStatistics;
private static ClElementStatisticsList invalidClElementInput;
-
-
@BeforeClass
public static void beforeSetupStatistics() throws CoderException {
// Reading input json for statistics data
@@ -81,7 +78,6 @@ public class TestMonitoringProvider {
invalidClElementInput = CODER.decode(new File(INVALID_CL_ELEMENT_JSON_INPUT), ClElementStatisticsList.class);
}
-
@Test
public void testCreateParticipantStatistics() throws Exception {
PolicyModelsProviderParameters parameters =
@@ -121,15 +117,14 @@ public class TestMonitoringProvider {
}).hasMessageMatching("name is marked .*null but is null");
// Fetch specific statistics record with name, version and record count
- getResponse = provider.fetchFilteredParticipantStatistics("name2", "1.001", 1,
- null, null);
+ getResponse = provider.fetchFilteredParticipantStatistics("name2", "1.001", 1, null, null);
assertThat(getResponse.getStatisticsList()).hasSize(1);
assertEquals(getResponse.getStatisticsList().get(0).toString().replaceAll("\\s+", ""),
inputParticipantStatistics.getStatisticsList().get(2).toString().replaceAll("\\s+", ""));
// Fetch statistics using timestamp
- getResponse = provider.fetchFilteredParticipantStatistics("name1", "1.001", 0,
- null, Instant.parse("2021-01-10T15:00:00.000Z"));
+ getResponse = provider.fetchFilteredParticipantStatistics("name1", "1.001", 0, null,
+ Instant.parse("2021-01-10T15:00:00.000Z"));
assertThat(getResponse.getStatisticsList()).hasSize(1);
getResponse = provider.fetchFilteredParticipantStatistics("name1", "1.001", 0,
@@ -171,15 +166,12 @@ public class TestMonitoringProvider {
ClElementStatisticsList getResponse;
assertThatThrownBy(() -> {
- provider.fetchFilteredClElementStatistics(null, null, null, null,
- null, 0);
+ provider.fetchFilteredClElementStatistics(null, null, null, null, null, 0);
}).hasMessageMatching("name is marked .*null but is null");
- ClElementStatisticsList lists = provider.createClElementStatistics(inputClElementStatistics
- .getClElementStatistics());
+ var lists = provider.createClElementStatistics(inputClElementStatistics.getClElementStatistics());
- getResponse = provider.fetchFilteredClElementStatistics("name1", null, null, null,
- null, 0);
+ getResponse = provider.fetchFilteredClElementStatistics("name1", null, null, null, null, 0);
assertThat(getResponse.getClElementStatistics()).hasSize(2);
assertEquals(getResponse.getClElementStatistics().get(0).toString().replaceAll("\\s+", ""),
@@ -204,18 +196,17 @@ public class TestMonitoringProvider {
try (MonitoringProvider provider = Mockito.spy(new MonitoringProvider(parameters))) {
provider.createParticipantStatistics(inputParticipantStatistics.getStatisticsList());
- //Mock the response for fetching participant conceptIdentifiers per control loop
+ // Mock the response for fetching participant conceptIdentifiers per control loop
List<ToscaConceptIdentifier> conceptIdentifiers = new ArrayList<>();
conceptIdentifiers.add(new ToscaConceptIdentifier("name1", "1.001"));
- when(provider.getAllParticipantIdsPerControlLoop("testName", "1.001"))
- .thenReturn(conceptIdentifiers);
+ when(provider.getAllParticipantIdsPerControlLoop("testName", "1.001")).thenReturn(conceptIdentifiers);
ParticipantStatisticsList getResponse;
getResponse = provider.fetchParticipantStatsPerControlLoop("testName", "1.001");
assertThat(getResponse.getStatisticsList()).hasSize(2);
assertEquals(getResponse.getStatisticsList().get(0).toString().replaceAll("\\s+", ""),
inputParticipantStatistics.getStatisticsList().get(0).toString().replaceAll("\\s+", ""));
- assertThat(provider.fetchParticipantStatsPerControlLoop("invalidCLName", "1.002")
- .getStatisticsList()).isEmpty();
+ assertThat(provider.fetchParticipantStatsPerControlLoop("invalidCLName", "1.002").getStatisticsList())
+ .isEmpty();
}
}
@@ -224,20 +215,19 @@ public class TestMonitoringProvider {
public void testClElementStatsPerCL() throws Exception {
PolicyModelsProviderParameters parameters =
CommonTestData.geParameterGroup(0, "getelemstatPerCL").getDatabaseProviderParameters();
- //Setup a dummy Control loop data
+ // Setup a dummy Control loop data
ControlLoopElement mockClElement = new ControlLoopElement();
mockClElement.setId(inputClElementStatistics.getClElementStatistics().get(0).getId());
- mockClElement.setParticipantId(new ToscaConceptIdentifier(inputClElementStatistics.getClElementStatistics()
- .get(0).getParticipantId().getName(), inputClElementStatistics.getClElementStatistics().get(0)
- .getParticipantId().getVersion()));
+ mockClElement.setParticipantId(new ToscaConceptIdentifier(
+ inputClElementStatistics.getClElementStatistics().get(0).getParticipantId().getName(),
+ inputClElementStatistics.getClElementStatistics().get(0).getParticipantId().getVersion()));
ControlLoop mockCL = new ControlLoop();
mockCL.setElements(new LinkedHashMap<>());
mockCL.getElements().put(mockClElement.getId(), mockClElement);
- //Mock controlloop data to be returned for the given CL Id
+ // Mock controlloop data to be returned for the given CL Id
ControlLoopProvider mockClProvider = Mockito.mock(ControlLoopProvider.class);
- when(mockClProvider.getControlLoop(new ToscaConceptIdentifier("testCLName", "1.001")))
- .thenReturn(mockCL);
+ when(mockClProvider.getControlLoop(new ToscaConceptIdentifier("testCLName", "1.001"))).thenReturn(mockCL);
try (MonitoringProvider monitoringProvider = new MonitoringProvider(parameters)) {
monitoringProvider.createClElementStatistics(inputClElementStatistics.getClElementStatistics());
@@ -252,13 +242,14 @@ public class TestMonitoringProvider {
assertEquals(getResponse.getClElementStatistics().get(1).toString().replaceAll("\\s+", ""),
inputClElementStatistics.getClElementStatistics().get(1).toString().replaceAll("\\s+", ""));
- assertThat(monitoringProvider.fetchClElementStatsPerControlLoop("invalidCLName", "1.002")
- .getClElementStatistics()).isEmpty();
+ assertThat(
+ monitoringProvider.fetchClElementStatsPerControlLoop("invalidCLName", "1.002").getClElementStatistics())
+ .isEmpty();
- Map<String, ToscaConceptIdentifier> clElementIds = monitoringProvider
- .getAllClElementsIdPerControlLoop("testCLName", "1.001");
- assertThat(clElementIds).containsKey(inputClElementStatistics.getClElementStatistics().get(0).getId()
- .toString());
+ Map<String, ToscaConceptIdentifier> clElementIds =
+ monitoringProvider.getAllClElementsIdPerControlLoop("testCLName", "1.001");
+ assertThat(clElementIds)
+ .containsKey(inputClElementStatistics.getClElementStatistics().get(0).getId().toString());
}
}
}
diff --git a/runtime-controlloop/src/test/java/org/onap/policy/clamp/controlloop/runtime/monitoring/rest/MonitoringQueryControllerTest.java b/runtime-controlloop/src/test/java/org/onap/policy/clamp/controlloop/runtime/monitoring/rest/MonitoringQueryControllerTest.java
index 118199a2d..a846d9317 100644
--- a/runtime-controlloop/src/test/java/org/onap/policy/clamp/controlloop/runtime/monitoring/rest/MonitoringQueryControllerTest.java
+++ b/runtime-controlloop/src/test/java/org/onap/policy/clamp/controlloop/runtime/monitoring/rest/MonitoringQueryControllerTest.java
@@ -30,7 +30,6 @@ import javax.ws.rs.client.Invocation;
import javax.ws.rs.core.Response;
import org.junit.AfterClass;
import org.junit.BeforeClass;
-import org.junit.Ignore;
import org.junit.Test;
import org.onap.policy.clamp.controlloop.models.controlloop.concepts.ClElementStatisticsList;
import org.onap.policy.clamp.controlloop.models.controlloop.concepts.ParticipantStatisticsList;
diff --git a/runtime-controlloop/src/test/java/org/onap/policy/clamp/controlloop/runtime/util/CommonTestData.java b/runtime-controlloop/src/test/java/org/onap/policy/clamp/controlloop/runtime/util/CommonTestData.java
index 77f802d61..aa17e9c4f 100644
--- a/runtime-controlloop/src/test/java/org/onap/policy/clamp/controlloop/runtime/util/CommonTestData.java
+++ b/runtime-controlloop/src/test/java/org/onap/policy/clamp/controlloop/runtime/util/CommonTestData.java
@@ -20,6 +20,8 @@
package org.onap.policy.clamp.controlloop.runtime.util;
+import javax.ws.rs.core.Response.Status;
+import org.onap.policy.clamp.controlloop.common.exception.ControlLoopRuntimeException;
import org.onap.policy.clamp.controlloop.runtime.main.parameters.ClRuntimeParameterGroup;
import org.onap.policy.common.utils.coder.Coder;
import org.onap.policy.common.utils.coder.CoderException;
@@ -39,13 +41,14 @@ public class CommonTestData {
* @param port port to be inserted into the parameters
* @param dbName the database name
* @return the standard Control Loop parameters
+ * @throws ControlLoopRuntimeException on errors reading the control loop parameters
*/
public static ClRuntimeParameterGroup geParameterGroup(final int port, final String dbName) {
try {
return coder.decode(getParameterGroupAsString(port, dbName), ClRuntimeParameterGroup.class);
} catch (CoderException e) {
- throw new RuntimeException("cannot read Control Loop parameters", e);
+ throw new ControlLoopRuntimeException(Status.NOT_ACCEPTABLE, "cannot read Control Loop parameters", e);
}
}
diff --git a/runtime-controlloop/src/test/java/org/onap/policy/clamp/controlloop/runtime/util/rest/CommonRestController.java b/runtime-controlloop/src/test/java/org/onap/policy/clamp/controlloop/runtime/util/rest/CommonRestController.java
index 0d668f139..00b9c6715 100644
--- a/runtime-controlloop/src/test/java/org/onap/policy/clamp/controlloop/runtime/util/rest/CommonRestController.java
+++ b/runtime-controlloop/src/test/java/org/onap/policy/clamp/controlloop/runtime/util/rest/CommonRestController.java
@@ -128,9 +128,8 @@ public class CommonRestController {
/**
* Starts the "Main".
*
- * @throws InterruptedException
- *
- * @throws Exception if an error occurs
+ * @throws InterruptedException if the NetworkUtil method calls are interrupted
+ * @throws IllegalStateException if a controller cannot be started on the requested port
*/
protected static void startMain() throws InterruptedException {
Registry.newRegistry();
@@ -152,11 +151,11 @@ public class CommonRestController {
/**
* Stops the "Main".
*
- * @throws ControlLoopException
- *
- * @throws Exception if an error occurs
+ * @throws ControlLoopException if an error occurs shutting down the controller
+ * @throws InterruptedException if the NetworkUtil method calls are interrupted
+ * @throws IllegalStateException if a controller cannot be started on the requested port
*/
- private static void stopMain() throws Exception {
+ private static void stopMain() throws ControlLoopException, InterruptedException {
if (main != null) {
Main main2 = main;
main = null;
@@ -260,4 +259,4 @@ public class CommonRestController {
Response rawresp = sendNoAuthRequest(endPoint).delete();
assertEquals(Response.Status.UNAUTHORIZED.getStatusCode(), rawresp.getStatus());
}
-} \ No newline at end of file
+}
diff --git a/runtime/docs/swagger/swagger.json b/runtime/docs/swagger/swagger.json
index b795bee95..dab1b223a 100644
--- a/runtime/docs/swagger/swagger.json
+++ b/runtime/docs/swagger/swagger.json
@@ -4,13 +4,13 @@
"version" : "6.1.2-SNAPSHOT",
"title" : "Clamp Rest API"
},
- "host" : "localhost:33201",
+ "host" : "localhost:40313",
"basePath" : "/restservices/clds/",
"schemes" : [ "http" ],
"paths" : {
"/v2/clampInformation" : {
"get" : {
- "operationId" : "verb115",
+ "operationId" : "verb38",
"produces" : [ "application/json" ],
"responses" : {
"200" : {
@@ -20,13 +20,13 @@
}
}
},
- "x-camelContextId" : "camel-3",
- "x-routeId" : "route118"
+ "x-camelContextId" : "camel-1",
+ "x-routeId" : "route39"
}
},
"/v2/dictionary" : {
"get" : {
- "operationId" : "verb99",
+ "operationId" : "verb21",
"produces" : [ "application/json" ],
"responses" : {
"200" : {
@@ -36,11 +36,11 @@
}
}
},
- "x-camelContextId" : "camel-3",
- "x-routeId" : "route102"
+ "x-camelContextId" : "camel-1",
+ "x-routeId" : "route22"
},
"put" : {
- "operationId" : "verb102",
+ "operationId" : "verb24",
"consumes" : [ "application/json" ],
"produces" : [ "application/json" ],
"parameters" : [ {
@@ -59,13 +59,13 @@
}
}
},
- "x-camelContextId" : "camel-3",
- "x-routeId" : "route105"
+ "x-camelContextId" : "camel-1",
+ "x-routeId" : "route25"
}
},
"/v2/dictionary/{dictionaryName}" : {
"get" : {
- "operationId" : "verb101",
+ "operationId" : "verb23",
"produces" : [ "application/json" ],
"parameters" : [ {
"name" : "dictionaryName",
@@ -81,13 +81,13 @@
}
}
},
- "x-camelContextId" : "camel-3",
- "x-routeId" : "route104"
+ "x-camelContextId" : "camel-1",
+ "x-routeId" : "route24"
}
},
"/v2/dictionary/{name}" : {
"put" : {
- "operationId" : "verb103",
+ "operationId" : "verb25",
"consumes" : [ "application/json" ],
"produces" : [ "application/json" ],
"parameters" : [ {
@@ -111,11 +111,11 @@
}
}
},
- "x-camelContextId" : "camel-3",
- "x-routeId" : "route106"
+ "x-camelContextId" : "camel-1",
+ "x-routeId" : "route26"
},
"delete" : {
- "operationId" : "verb104",
+ "operationId" : "verb26",
"produces" : [ "application/json" ],
"parameters" : [ {
"name" : "name",
@@ -126,13 +126,13 @@
"responses" : {
"200" : { }
},
- "x-camelContextId" : "camel-3",
- "x-routeId" : "route107"
+ "x-camelContextId" : "camel-1",
+ "x-routeId" : "route27"
}
},
"/v2/dictionary/{name}/elements/{shortName}" : {
"delete" : {
- "operationId" : "verb105",
+ "operationId" : "verb27",
"produces" : [ "application/json" ],
"parameters" : [ {
"name" : "name",
@@ -148,13 +148,13 @@
"responses" : {
"200" : { }
},
- "x-camelContextId" : "camel-3",
- "x-routeId" : "route108"
+ "x-camelContextId" : "camel-1",
+ "x-routeId" : "route28"
}
},
"/v2/dictionary/secondary/names" : {
"get" : {
- "operationId" : "verb100",
+ "operationId" : "verb22",
"produces" : [ "application/json" ],
"responses" : {
"200" : {
@@ -167,13 +167,13 @@
}
}
},
- "x-camelContextId" : "camel-3",
- "x-routeId" : "route103"
+ "x-camelContextId" : "camel-1",
+ "x-routeId" : "route23"
}
},
"/v2/loop/{loopName}" : {
"get" : {
- "operationId" : "verb80",
+ "operationId" : "verb2",
"produces" : [ "application/json" ],
"parameters" : [ {
"name" : "loopName",
@@ -189,13 +189,13 @@
}
}
},
- "x-camelContextId" : "camel-3",
- "x-routeId" : "route83"
+ "x-camelContextId" : "camel-1",
+ "x-routeId" : "route3"
}
},
"/v2/loop/addOperationaPolicy/{loopName}/policyModel/{policyType}/{policyVersion}" : {
"put" : {
- "operationId" : "verb93",
+ "operationId" : "verb15",
"produces" : [ "application/json" ],
"parameters" : [ {
"name" : "loopName",
@@ -221,13 +221,13 @@
}
}
},
- "x-camelContextId" : "camel-3",
- "x-routeId" : "route96"
+ "x-camelContextId" : "camel-1",
+ "x-routeId" : "route16"
}
},
"/v2/loop/create/{loopName}?templateName={templateName}" : {
"post" : {
- "operationId" : "verb95",
+ "operationId" : "verb17",
"consumes" : [ "application/json" ],
"produces" : [ "application/json" ],
"parameters" : [ {
@@ -249,13 +249,13 @@
}
}
},
- "x-camelContextId" : "camel-3",
- "x-routeId" : "route98"
+ "x-camelContextId" : "camel-1",
+ "x-routeId" : "route18"
}
},
"/v2/loop/delete/{loopName}" : {
"put" : {
- "operationId" : "verb91",
+ "operationId" : "verb13",
"parameters" : [ {
"name" : "loopName",
"in" : "path",
@@ -265,13 +265,13 @@
"responses" : {
"200" : { }
},
- "x-camelContextId" : "camel-3",
- "x-routeId" : "route94"
+ "x-camelContextId" : "camel-1",
+ "x-routeId" : "route14"
}
},
"/v2/loop/deploy/{loopName}" : {
"put" : {
- "operationId" : "verb84",
+ "operationId" : "verb6",
"produces" : [ "application/json" ],
"parameters" : [ {
"name" : "loopName",
@@ -287,13 +287,13 @@
}
}
},
- "x-camelContextId" : "camel-3",
- "x-routeId" : "route87"
+ "x-camelContextId" : "camel-1",
+ "x-routeId" : "route7"
}
},
"/v2/loop/getAllNames" : {
"get" : {
- "operationId" : "verb79",
+ "operationId" : "verb1",
"produces" : [ "application/json" ],
"responses" : {
"200" : {
@@ -306,13 +306,13 @@
}
}
},
- "x-camelContextId" : "camel-3",
- "x-routeId" : "route82"
+ "x-camelContextId" : "camel-1",
+ "x-routeId" : "route2"
}
},
"/v2/loop/getstatus/{loopName}" : {
"get" : {
- "operationId" : "verb92",
+ "operationId" : "verb14",
"produces" : [ "application/json" ],
"parameters" : [ {
"name" : "loopName",
@@ -328,13 +328,13 @@
}
}
},
- "x-camelContextId" : "camel-3",
- "x-routeId" : "route95"
+ "x-camelContextId" : "camel-1",
+ "x-routeId" : "route15"
}
},
"/v2/loop/refreshMicroServicePolicyJsonSchema/{loopName}/{microServicePolicyName}" : {
"put" : {
- "operationId" : "verb85",
+ "operationId" : "verb7",
"produces" : [ "application/json" ],
"parameters" : [ {
"name" : "loopName",
@@ -355,13 +355,13 @@
}
}
},
- "x-camelContextId" : "camel-3",
- "x-routeId" : "route88"
+ "x-camelContextId" : "camel-1",
+ "x-routeId" : "route8"
}
},
"/v2/loop/refreshOperationalPolicyJsonSchema/{loopName}/{operationalPolicyName}" : {
"put" : {
- "operationId" : "verb86",
+ "operationId" : "verb8",
"produces" : [ "application/json" ],
"parameters" : [ {
"name" : "loopName",
@@ -382,13 +382,13 @@
}
}
},
- "x-camelContextId" : "camel-3",
- "x-routeId" : "route89"
+ "x-camelContextId" : "camel-1",
+ "x-routeId" : "route9"
}
},
"/v2/loop/removeOperationaPolicy/{loopName}/policyModel/{policyType}/{policyVersion}/{policyName}" : {
"put" : {
- "operationId" : "verb94",
+ "operationId" : "verb16",
"produces" : [ "application/json" ],
"parameters" : [ {
"name" : "loopName",
@@ -419,13 +419,13 @@
}
}
},
- "x-camelContextId" : "camel-3",
- "x-routeId" : "route97"
+ "x-camelContextId" : "camel-1",
+ "x-routeId" : "route17"
}
},
"/v2/loop/restart/{loopName}" : {
"put" : {
- "operationId" : "verb89",
+ "operationId" : "verb11",
"produces" : [ "application/json" ],
"parameters" : [ {
"name" : "loopName",
@@ -441,13 +441,13 @@
}
}
},
- "x-camelContextId" : "camel-3",
- "x-routeId" : "route92"
+ "x-camelContextId" : "camel-1",
+ "x-routeId" : "route12"
}
},
"/v2/loop/stop/{loopName}" : {
"put" : {
- "operationId" : "verb88",
+ "operationId" : "verb10",
"produces" : [ "application/json" ],
"parameters" : [ {
"name" : "loopName",
@@ -463,13 +463,13 @@
}
}
},
- "x-camelContextId" : "camel-3",
- "x-routeId" : "route91"
+ "x-camelContextId" : "camel-1",
+ "x-routeId" : "route11"
}
},
"/v2/loop/submit/{loopName}" : {
"put" : {
- "operationId" : "verb90",
+ "operationId" : "verb12",
"produces" : [ "application/json" ],
"parameters" : [ {
"name" : "loopName",
@@ -485,13 +485,13 @@
}
}
},
- "x-camelContextId" : "camel-3",
- "x-routeId" : "route93"
+ "x-camelContextId" : "camel-1",
+ "x-routeId" : "route13"
}
},
"/v2/loop/undeploy/{loopName}" : {
"put" : {
- "operationId" : "verb87",
+ "operationId" : "verb9",
"produces" : [ "application/json" ],
"parameters" : [ {
"name" : "loopName",
@@ -507,13 +507,13 @@
}
}
},
- "x-camelContextId" : "camel-3",
- "x-routeId" : "route90"
+ "x-camelContextId" : "camel-1",
+ "x-routeId" : "route10"
}
},
"/v2/loop/updateGlobalProperties/{loopName}" : {
"post" : {
- "operationId" : "verb81",
+ "operationId" : "verb3",
"consumes" : [ "application/json" ],
"produces" : [ "application/json" ],
"parameters" : [ {
@@ -537,13 +537,13 @@
}
}
},
- "x-camelContextId" : "camel-3",
- "x-routeId" : "route84"
+ "x-camelContextId" : "camel-1",
+ "x-routeId" : "route4"
}
},
"/v2/loop/updateMicroservicePolicy/{loopName}" : {
"post" : {
- "operationId" : "verb83",
+ "operationId" : "verb5",
"consumes" : [ "application/json" ],
"produces" : [ "application/json" ],
"parameters" : [ {
@@ -567,13 +567,13 @@
}
}
},
- "x-camelContextId" : "camel-3",
- "x-routeId" : "route86"
+ "x-camelContextId" : "camel-1",
+ "x-routeId" : "route6"
}
},
"/v2/loop/updateOperationalPolicies/{loopName}" : {
"post" : {
- "operationId" : "verb82",
+ "operationId" : "verb4",
"consumes" : [ "application/json" ],
"produces" : [ "application/json" ],
"parameters" : [ {
@@ -597,13 +597,13 @@
}
}
},
- "x-camelContextId" : "camel-3",
- "x-routeId" : "route85"
+ "x-camelContextId" : "camel-1",
+ "x-routeId" : "route5"
}
},
"/v2/policies" : {
"get" : {
- "operationId" : "verb109",
+ "operationId" : "verb31",
"produces" : [ "application/json" ],
"responses" : {
"200" : {
@@ -613,13 +613,13 @@
}
}
},
- "x-camelContextId" : "camel-3",
- "x-routeId" : "route112"
+ "x-camelContextId" : "camel-1",
+ "x-routeId" : "route32"
}
},
"/v2/policies/{policyModelType}/{policyModelVersion}/{policyName}/{policyVersion}" : {
"post" : {
- "operationId" : "verb110",
+ "operationId" : "verb32",
"consumes" : [ "application/json" ],
"produces" : [ "application/json" ],
"parameters" : [ {
@@ -658,11 +658,11 @@
}
}
},
- "x-camelContextId" : "camel-3",
- "x-routeId" : "route113"
+ "x-camelContextId" : "camel-1",
+ "x-routeId" : "route33"
},
"delete" : {
- "operationId" : "verb111",
+ "operationId" : "verb33",
"parameters" : [ {
"name" : "policyModelType",
"in" : "path",
@@ -687,13 +687,13 @@
"responses" : {
"200" : { }
},
- "x-camelContextId" : "camel-3",
- "x-routeId" : "route114"
+ "x-camelContextId" : "camel-1",
+ "x-routeId" : "route34"
}
},
"/v2/policies/pdpDeployment" : {
"put" : {
- "operationId" : "verb112",
+ "operationId" : "verb34",
"consumes" : [ "application/json" ],
"parameters" : [ {
"in" : "body",
@@ -706,13 +706,13 @@
"responses" : {
"200" : { }
},
- "x-camelContextId" : "camel-3",
- "x-routeId" : "route115"
+ "x-camelContextId" : "camel-1",
+ "x-routeId" : "route35"
}
},
"/v2/policies/policytype" : {
"post" : {
- "operationId" : "verb113",
+ "operationId" : "verb35",
"consumes" : [ "plain/text" ],
"parameters" : [ {
"in" : "body",
@@ -725,13 +725,13 @@
"responses" : {
"200" : { }
},
- "x-camelContextId" : "camel-3",
- "x-routeId" : "route116"
+ "x-camelContextId" : "camel-1",
+ "x-routeId" : "route36"
}
},
"/v2/policyToscaModels" : {
"get" : {
- "operationId" : "verb106",
+ "operationId" : "verb28",
"produces" : [ "application/json" ],
"responses" : {
"200" : {
@@ -741,13 +741,13 @@
}
}
},
- "x-camelContextId" : "camel-3",
- "x-routeId" : "route109"
+ "x-camelContextId" : "camel-1",
+ "x-routeId" : "route29"
}
},
"/v2/policyToscaModels/{policyModelType}/{policyModelVersion}" : {
"get" : {
- "operationId" : "verb107",
+ "operationId" : "verb29",
"produces" : [ "application/json" ],
"parameters" : [ {
"name" : "policyModelType",
@@ -768,13 +768,13 @@
}
}
},
- "x-camelContextId" : "camel-3",
- "x-routeId" : "route110"
+ "x-camelContextId" : "camel-1",
+ "x-routeId" : "route30"
}
},
"/v2/policyToscaModels/yaml/{policyModelType}/{policyModelVersion}" : {
"get" : {
- "operationId" : "verb108",
+ "operationId" : "verb30",
"produces" : [ "application/json" ],
"parameters" : [ {
"name" : "policyModelType",
@@ -795,13 +795,13 @@
}
}
},
- "x-camelContextId" : "camel-3",
- "x-routeId" : "route111"
+ "x-camelContextId" : "camel-1",
+ "x-routeId" : "route31"
}
},
"/v2/templates" : {
"get" : {
- "operationId" : "verb96",
+ "operationId" : "verb18",
"produces" : [ "application/json" ],
"responses" : {
"200" : {
@@ -811,13 +811,13 @@
}
}
},
- "x-camelContextId" : "camel-3",
- "x-routeId" : "route99"
+ "x-camelContextId" : "camel-1",
+ "x-routeId" : "route19"
}
},
"/v2/templates/{templateName}" : {
"get" : {
- "operationId" : "verb97",
+ "operationId" : "verb19",
"produces" : [ "application/json" ],
"parameters" : [ {
"name" : "templateName",
@@ -833,13 +833,13 @@
}
}
},
- "x-camelContextId" : "camel-3",
- "x-routeId" : "route100"
+ "x-camelContextId" : "camel-1",
+ "x-routeId" : "route20"
}
},
"/v2/templates/names" : {
"get" : {
- "operationId" : "verb98",
+ "operationId" : "verb20",
"produces" : [ "application/json" ],
"responses" : {
"200" : {
@@ -852,13 +852,38 @@
}
}
},
- "x-camelContextId" : "camel-3",
- "x-routeId" : "route101"
+ "x-camelContextId" : "camel-1",
+ "x-routeId" : "route21"
+ }
+ },
+ "/v2/toscaControlLoop/commissionToscaTemplate" : {
+ "post" : {
+ "operationId" : "verb37",
+ "consumes" : [ "plain/text" ],
+ "produces" : [ "application/json" ],
+ "parameters" : [ {
+ "in" : "body",
+ "name" : "body",
+ "required" : true,
+ "schema" : {
+ "type" : "string"
+ }
+ } ],
+ "responses" : {
+ "200" : {
+ "description" : "Output type",
+ "schema" : {
+ "type" : "string"
+ }
+ }
+ },
+ "x-camelContextId" : "camel-1",
+ "x-routeId" : "route38"
}
},
"/v2/toscaControlLoop/getToscaTemplate" : {
"get" : {
- "operationId" : "verb114",
+ "operationId" : "verb36",
"produces" : [ "application/json" ],
"responses" : {
"200" : {
@@ -868,13 +893,13 @@
}
}
},
- "x-camelContextId" : "camel-3",
- "x-routeId" : "route117"
+ "x-camelContextId" : "camel-1",
+ "x-routeId" : "route37"
}
},
"/v1/healthcheck" : {
"get" : {
- "operationId" : "verb116",
+ "operationId" : "verb39",
"produces" : [ "application/json" ],
"responses" : {
"200" : {
@@ -884,19 +909,19 @@
}
}
},
- "x-camelContextId" : "camel-3",
- "x-routeId" : "route119"
+ "x-camelContextId" : "camel-1",
+ "x-routeId" : "route40"
}
},
"/v1/user/getUser" : {
"get" : {
- "operationId" : "verb117",
+ "operationId" : "verb40",
"produces" : [ "text/plain" ],
"responses" : {
"200" : { }
},
- "x-camelContextId" : "camel-3",
- "x-routeId" : "route120"
+ "x-camelContextId" : "camel-1",
+ "x-routeId" : "route41"
}
}
},
@@ -1081,39 +1106,25 @@
"asBoolean" : {
"type" : "boolean"
},
- "boolean" : {
- "type" : "boolean"
- },
- "number" : {
- "type" : "boolean"
- },
- "asNumber" : {
- "$ref" : "#/definitions/Number"
- },
- "asString" : {
- "type" : "string"
- },
"asDouble" : {
"type" : "number",
"format" : "double"
},
- "asFloat" : {
- "type" : "number",
- "format" : "float"
+ "asInt" : {
+ "type" : "integer",
+ "format" : "int32"
},
"asLong" : {
"type" : "integer",
"format" : "int64"
},
- "asInt" : {
- "type" : "integer",
- "format" : "int32"
+ "boolean" : {
+ "type" : "boolean"
},
- "asByte" : {
- "type" : "string",
- "format" : "byte"
+ "number" : {
+ "type" : "boolean"
},
- "asCharacter" : {
+ "asString" : {
"type" : "string"
},
"asBigDecimal" : {
@@ -1126,26 +1137,40 @@
"type" : "integer",
"format" : "int32"
},
+ "asNumber" : {
+ "$ref" : "#/definitions/Number"
+ },
+ "asFloat" : {
+ "type" : "number",
+ "format" : "float"
+ },
+ "asByte" : {
+ "type" : "string",
+ "format" : "byte"
+ },
+ "asCharacter" : {
+ "type" : "string"
+ },
"string" : {
"type" : "boolean"
},
"asJsonObject" : {
"$ref" : "#/definitions/JsonObject"
},
- "jsonArray" : {
- "type" : "boolean"
+ "asJsonArray" : {
+ "$ref" : "#/definitions/JsonArray"
},
- "jsonObject" : {
+ "jsonNull" : {
"type" : "boolean"
},
"jsonPrimitive" : {
"type" : "boolean"
},
- "jsonNull" : {
+ "jsonObject" : {
"type" : "boolean"
},
- "asJsonArray" : {
- "$ref" : "#/definitions/JsonArray"
+ "jsonArray" : {
+ "type" : "boolean"
},
"asJsonPrimitive" : {
"$ref" : "#/definitions/JsonPrimitive"
@@ -1230,51 +1255,58 @@
"asBoolean" : {
"type" : "boolean"
},
+ "asDouble" : {
+ "type" : "number",
+ "format" : "double"
+ },
+ "asInt" : {
+ "type" : "integer",
+ "format" : "int32"
+ },
+ "asLong" : {
+ "type" : "integer",
+ "format" : "int64"
+ },
"asJsonObject" : {
"$ref" : "#/definitions/JsonObject"
},
- "jsonArray" : {
- "type" : "boolean"
+ "asString" : {
+ "type" : "string"
},
- "jsonObject" : {
- "type" : "boolean"
+ "asJsonArray" : {
+ "$ref" : "#/definitions/JsonArray"
},
- "jsonPrimitive" : {
- "type" : "boolean"
+ "asBigDecimal" : {
+ "type" : "number"
+ },
+ "asBigInteger" : {
+ "type" : "integer"
+ },
+ "asShort" : {
+ "type" : "integer",
+ "format" : "int32"
},
"jsonNull" : {
"type" : "boolean"
},
- "asJsonArray" : {
- "$ref" : "#/definitions/JsonArray"
+ "jsonPrimitive" : {
+ "type" : "boolean"
},
- "asJsonPrimitive" : {
- "$ref" : "#/definitions/JsonPrimitive"
+ "jsonObject" : {
+ "type" : "boolean"
},
- "asJsonNull" : {
- "$ref" : "#/definitions/JsonNull"
+ "jsonArray" : {
+ "type" : "boolean"
},
"asNumber" : {
"$ref" : "#/definitions/Number"
},
- "asString" : {
- "type" : "string"
- },
- "asDouble" : {
- "type" : "number",
- "format" : "double"
- },
"asFloat" : {
"type" : "number",
"format" : "float"
},
- "asLong" : {
- "type" : "integer",
- "format" : "int64"
- },
- "asInt" : {
- "type" : "integer",
- "format" : "int32"
+ "asJsonPrimitive" : {
+ "$ref" : "#/definitions/JsonPrimitive"
},
"asByte" : {
"type" : "string",
@@ -1283,15 +1315,8 @@
"asCharacter" : {
"type" : "string"
},
- "asBigDecimal" : {
- "type" : "number"
- },
- "asBigInteger" : {
- "type" : "integer"
- },
- "asShort" : {
- "type" : "integer",
- "format" : "int32"
+ "asJsonNull" : {
+ "$ref" : "#/definitions/JsonNull"
}
},
"x-className" : {
@@ -1428,51 +1453,58 @@
"asBoolean" : {
"type" : "boolean"
},
+ "asDouble" : {
+ "type" : "number",
+ "format" : "double"
+ },
+ "asInt" : {
+ "type" : "integer",
+ "format" : "int32"
+ },
+ "asLong" : {
+ "type" : "integer",
+ "format" : "int64"
+ },
"asJsonObject" : {
"$ref" : "#/definitions/JsonObject"
},
- "jsonArray" : {
- "type" : "boolean"
+ "asString" : {
+ "type" : "string"
},
- "jsonObject" : {
- "type" : "boolean"
+ "asJsonArray" : {
+ "$ref" : "#/definitions/JsonArray"
},
- "jsonPrimitive" : {
- "type" : "boolean"
+ "asBigDecimal" : {
+ "type" : "number"
+ },
+ "asBigInteger" : {
+ "type" : "integer"
+ },
+ "asShort" : {
+ "type" : "integer",
+ "format" : "int32"
},
"jsonNull" : {
"type" : "boolean"
},
- "asJsonArray" : {
- "$ref" : "#/definitions/JsonArray"
+ "jsonPrimitive" : {
+ "type" : "boolean"
},
- "asJsonPrimitive" : {
- "$ref" : "#/definitions/JsonPrimitive"
+ "jsonObject" : {
+ "type" : "boolean"
},
- "asJsonNull" : {
- "$ref" : "#/definitions/JsonNull"
+ "jsonArray" : {
+ "type" : "boolean"
},
"asNumber" : {
"$ref" : "#/definitions/Number"
},
- "asString" : {
- "type" : "string"
- },
- "asDouble" : {
- "type" : "number",
- "format" : "double"
- },
"asFloat" : {
"type" : "number",
"format" : "float"
},
- "asLong" : {
- "type" : "integer",
- "format" : "int64"
- },
- "asInt" : {
- "type" : "integer",
- "format" : "int32"
+ "asJsonPrimitive" : {
+ "$ref" : "#/definitions/JsonPrimitive"
},
"asByte" : {
"type" : "string",
@@ -1481,15 +1513,8 @@
"asCharacter" : {
"type" : "string"
},
- "asBigDecimal" : {
- "type" : "number"
- },
- "asBigInteger" : {
- "type" : "integer"
- },
- "asShort" : {
- "type" : "integer",
- "format" : "int32"
+ "asJsonNull" : {
+ "$ref" : "#/definitions/JsonNull"
}
}
},
@@ -1499,33 +1524,19 @@
"asBoolean" : {
"type" : "boolean"
},
- "asNumber" : {
- "$ref" : "#/definitions/Number"
- },
- "asString" : {
- "type" : "string"
- },
"asDouble" : {
"type" : "number",
"format" : "double"
},
- "asFloat" : {
- "type" : "number",
- "format" : "float"
- },
- "asLong" : {
- "type" : "integer",
- "format" : "int64"
- },
"asInt" : {
"type" : "integer",
"format" : "int32"
},
- "asByte" : {
- "type" : "string",
- "format" : "byte"
+ "asLong" : {
+ "type" : "integer",
+ "format" : "int64"
},
- "asCharacter" : {
+ "asString" : {
"type" : "string"
},
"asBigDecimal" : {
@@ -1538,23 +1549,37 @@
"type" : "integer",
"format" : "int32"
},
+ "asNumber" : {
+ "$ref" : "#/definitions/Number"
+ },
+ "asFloat" : {
+ "type" : "number",
+ "format" : "float"
+ },
+ "asByte" : {
+ "type" : "string",
+ "format" : "byte"
+ },
+ "asCharacter" : {
+ "type" : "string"
+ },
"asJsonObject" : {
"$ref" : "#/definitions/JsonObject"
},
- "jsonArray" : {
- "type" : "boolean"
+ "asJsonArray" : {
+ "$ref" : "#/definitions/JsonArray"
},
- "jsonObject" : {
+ "jsonNull" : {
"type" : "boolean"
},
"jsonPrimitive" : {
"type" : "boolean"
},
- "jsonNull" : {
+ "jsonObject" : {
"type" : "boolean"
},
- "asJsonArray" : {
- "$ref" : "#/definitions/JsonArray"
+ "jsonArray" : {
+ "type" : "boolean"
},
"asJsonPrimitive" : {
"$ref" : "#/definitions/JsonPrimitive"
@@ -1730,51 +1755,58 @@
"asBoolean" : {
"type" : "boolean"
},
+ "asDouble" : {
+ "type" : "number",
+ "format" : "double"
+ },
+ "asInt" : {
+ "type" : "integer",
+ "format" : "int32"
+ },
+ "asLong" : {
+ "type" : "integer",
+ "format" : "int64"
+ },
"asJsonObject" : {
"$ref" : "#/definitions/JsonObject"
},
- "jsonArray" : {
- "type" : "boolean"
+ "asString" : {
+ "type" : "string"
},
- "jsonObject" : {
- "type" : "boolean"
+ "asJsonArray" : {
+ "$ref" : "#/definitions/JsonArray"
},
- "jsonPrimitive" : {
- "type" : "boolean"
+ "asBigDecimal" : {
+ "type" : "number"
+ },
+ "asBigInteger" : {
+ "type" : "integer"
+ },
+ "asShort" : {
+ "type" : "integer",
+ "format" : "int32"
},
"jsonNull" : {
"type" : "boolean"
},
- "asJsonArray" : {
- "$ref" : "#/definitions/JsonArray"
+ "jsonPrimitive" : {
+ "type" : "boolean"
},
- "asJsonPrimitive" : {
- "$ref" : "#/definitions/JsonPrimitive"
+ "jsonObject" : {
+ "type" : "boolean"
},
- "asJsonNull" : {
- "$ref" : "#/definitions/JsonNull"
+ "jsonArray" : {
+ "type" : "boolean"
},
"asNumber" : {
"$ref" : "#/definitions/Number"
},
- "asString" : {
- "type" : "string"
- },
- "asDouble" : {
- "type" : "number",
- "format" : "double"
- },
"asFloat" : {
"type" : "number",
"format" : "float"
},
- "asLong" : {
- "type" : "integer",
- "format" : "int64"
- },
- "asInt" : {
- "type" : "integer",
- "format" : "int32"
+ "asJsonPrimitive" : {
+ "$ref" : "#/definitions/JsonPrimitive"
},
"asByte" : {
"type" : "string",
@@ -1783,15 +1815,8 @@
"asCharacter" : {
"type" : "string"
},
- "asBigDecimal" : {
- "type" : "number"
- },
- "asBigInteger" : {
- "type" : "integer"
- },
- "asShort" : {
- "type" : "integer",
- "format" : "int32"
+ "asJsonNull" : {
+ "$ref" : "#/definitions/JsonNull"
}
},
"x-className" : {
diff --git a/runtime/docs/swagger/swagger.pdf b/runtime/docs/swagger/swagger.pdf
index 8544156bc..0d4cef345 100644
--- a/runtime/docs/swagger/swagger.pdf
+++ b/runtime/docs/swagger/swagger.pdf
@@ -4,16 +4,16 @@
<< /Title (Clamp Rest API)
/Creator (Asciidoctor PDF 1.5.0.alpha.10, based on Prawn 1.3.0)
/Producer (Asciidoctor PDF 1.5.0.alpha.10, based on Prawn 1.3.0)
-/CreationDate (D:20210611114816+01'00')
-/ModDate (D:20210611114816+01'00')
+/CreationDate (D:20210617161537+01'00')
+/ModDate (D:20210617161537+01'00')
>>
endobj
2 0 obj
<< /Type /Catalog
/Pages 3 0 R
/Names 22 0 R
-/Outlines 729 0 R
-/PageLabels 908 0 R
+/Outlines 745 0 R
+/PageLabels 929 0 R
/PageMode /UseOutlines
/OpenAction [7 0 R /FitH 793.0]
/ViewerPreferences << /DisplayDocTitle true
@@ -23,7 +23,7 @@ endobj
3 0 obj
<< /Type /Pages
/Count 41
-/Kids [7 0 R 10 0 R 12 0 R 14 0 R 16 0 R 18 0 R 20 0 R 29 0 R 45 0 R 61 0 R 75 0 R 87 0 R 97 0 R 110 0 R 123 0 R 133 0 R 144 0 R 160 0 R 174 0 R 187 0 R 201 0 R 213 0 R 224 0 R 235 0 R 246 0 R 260 0 R 265 0 R 272 0 R 278 0 R 285 0 R 291 0 R 299 0 R 306 0 R 314 0 R 321 0 R 327 0 R 336 0 R 343 0 R 352 0 R 359 0 R 368 0 R]
+/Kids [7 0 R 10 0 R 12 0 R 14 0 R 16 0 R 18 0 R 20 0 R 29 0 R 45 0 R 61 0 R 75 0 R 87 0 R 97 0 R 110 0 R 123 0 R 133 0 R 144 0 R 160 0 R 174 0 R 187 0 R 201 0 R 213 0 R 224 0 R 236 0 R 247 0 R 260 0 R 270 0 R 278 0 R 283 0 R 290 0 R 296 0 R 304 0 R 311 0 R 319 0 R 326 0 R 332 0 R 342 0 R 348 0 R 357 0 R 364 0 R 373 0 R]
>>
endobj
4 0 obj
@@ -80,11 +80,11 @@ endobj
<< /Type /Font
/BaseFont /AAAAAA+NotoSerif
/Subtype /TrueType
-/FontDescriptor 910 0 R
+/FontDescriptor 931 0 R
/FirstChar 32
/LastChar 255
-/Widths 912 0 R
-/ToUnicode 911 0 R
+/Widths 933 0 R
+/ToUnicode 932 0 R
>>
endobj
9 0 obj
@@ -1559,7 +1559,7 @@ endobj
/F1.0 8 0 R
>>
>>
-/Annots [374 0 R 375 0 R 376 0 R 377 0 R 378 0 R 379 0 R 380 0 R 381 0 R 382 0 R 383 0 R 384 0 R 385 0 R 386 0 R 387 0 R 388 0 R 389 0 R 390 0 R 391 0 R 392 0 R 393 0 R 394 0 R 395 0 R 396 0 R 397 0 R 398 0 R 399 0 R 400 0 R 401 0 R 402 0 R 403 0 R 404 0 R 405 0 R 406 0 R 407 0 R 408 0 R 409 0 R 410 0 R 411 0 R 412 0 R 413 0 R 414 0 R 415 0 R 416 0 R 417 0 R 418 0 R 419 0 R 420 0 R 421 0 R 422 0 R 423 0 R 424 0 R 425 0 R 426 0 R 427 0 R 428 0 R 429 0 R 430 0 R 431 0 R 432 0 R 433 0 R 434 0 R 435 0 R 436 0 R 437 0 R 438 0 R 439 0 R 440 0 R 441 0 R 442 0 R 443 0 R 444 0 R 445 0 R]
+/Annots [380 0 R 381 0 R 382 0 R 383 0 R 384 0 R 385 0 R 386 0 R 387 0 R 388 0 R 389 0 R 390 0 R 391 0 R 392 0 R 393 0 R 394 0 R 395 0 R 396 0 R 397 0 R 398 0 R 399 0 R 400 0 R 401 0 R 402 0 R 403 0 R 404 0 R 405 0 R 406 0 R 407 0 R 408 0 R 409 0 R 410 0 R 411 0 R 412 0 R 413 0 R 414 0 R 415 0 R 416 0 R 417 0 R 418 0 R 419 0 R 420 0 R 421 0 R 422 0 R 423 0 R 424 0 R 425 0 R 426 0 R 427 0 R 428 0 R 429 0 R 430 0 R 431 0 R 432 0 R 433 0 R 434 0 R 435 0 R 436 0 R 437 0 R 438 0 R 439 0 R 440 0 R 441 0 R 442 0 R 443 0 R 444 0 R 445 0 R 446 0 R 447 0 R 448 0 R 449 0 R 450 0 R 451 0 R]
>>
endobj
11 0 obj
@@ -3062,7 +3062,7 @@ endobj
/Font << /F1.0 8 0 R
>>
>>
-/Annots [446 0 R 447 0 R 448 0 R 449 0 R 450 0 R 451 0 R 452 0 R 453 0 R 454 0 R 455 0 R 456 0 R 457 0 R 458 0 R 459 0 R 460 0 R 461 0 R 462 0 R 463 0 R 464 0 R 465 0 R 466 0 R 467 0 R 468 0 R 469 0 R 470 0 R 471 0 R 472 0 R 473 0 R 474 0 R 475 0 R 476 0 R 477 0 R 478 0 R 479 0 R 480 0 R 481 0 R 482 0 R 483 0 R 484 0 R 485 0 R 486 0 R 487 0 R 488 0 R 489 0 R 490 0 R 491 0 R 492 0 R 493 0 R 494 0 R 495 0 R 496 0 R 497 0 R 498 0 R 499 0 R 500 0 R 501 0 R 502 0 R 503 0 R 504 0 R 505 0 R 506 0 R 507 0 R 508 0 R 509 0 R 510 0 R 511 0 R 512 0 R 513 0 R 514 0 R 515 0 R 516 0 R 517 0 R 518 0 R 519 0 R 521 0 R]
+/Annots [452 0 R 453 0 R 454 0 R 455 0 R 456 0 R 457 0 R 458 0 R 459 0 R 460 0 R 461 0 R 462 0 R 463 0 R 464 0 R 465 0 R 466 0 R 467 0 R 468 0 R 469 0 R 470 0 R 471 0 R 472 0 R 473 0 R 474 0 R 475 0 R 476 0 R 477 0 R 478 0 R 479 0 R 480 0 R 481 0 R 482 0 R 483 0 R 484 0 R 485 0 R 486 0 R 487 0 R 488 0 R 489 0 R 490 0 R 491 0 R 492 0 R 493 0 R 494 0 R 495 0 R 496 0 R 497 0 R 498 0 R 499 0 R 500 0 R 501 0 R 502 0 R 503 0 R 504 0 R 505 0 R 506 0 R 507 0 R 508 0 R 509 0 R 510 0 R 511 0 R 512 0 R 513 0 R 514 0 R 515 0 R 516 0 R 517 0 R 518 0 R 519 0 R 520 0 R 521 0 R 522 0 R 523 0 R 524 0 R 525 0 R 527 0 R]
>>
endobj
13 0 obj
@@ -4576,7 +4576,7 @@ endobj
/Font << /F1.0 8 0 R
>>
>>
-/Annots [520 0 R 522 0 R 523 0 R 524 0 R 525 0 R 526 0 R 527 0 R 528 0 R 529 0 R 530 0 R 531 0 R 532 0 R 533 0 R 534 0 R 535 0 R 536 0 R 537 0 R 538 0 R 539 0 R 540 0 R 541 0 R 542 0 R 543 0 R 544 0 R 545 0 R 546 0 R 547 0 R 548 0 R 549 0 R 550 0 R 551 0 R 552 0 R 553 0 R 554 0 R 555 0 R 556 0 R 557 0 R 558 0 R 559 0 R 560 0 R 561 0 R 562 0 R 563 0 R 564 0 R 565 0 R 566 0 R 567 0 R 568 0 R 569 0 R 570 0 R 571 0 R 572 0 R 573 0 R 574 0 R 575 0 R 576 0 R 577 0 R 578 0 R 579 0 R 580 0 R 581 0 R 582 0 R 583 0 R 584 0 R 585 0 R 586 0 R 587 0 R 588 0 R 589 0 R 590 0 R 591 0 R 592 0 R 593 0 R 594 0 R 595 0 R]
+/Annots [526 0 R 528 0 R 529 0 R 530 0 R 531 0 R 532 0 R 533 0 R 534 0 R 535 0 R 536 0 R 537 0 R 538 0 R 539 0 R 540 0 R 541 0 R 542 0 R 543 0 R 544 0 R 545 0 R 546 0 R 547 0 R 548 0 R 549 0 R 550 0 R 551 0 R 552 0 R 553 0 R 554 0 R 555 0 R 556 0 R 557 0 R 558 0 R 559 0 R 560 0 R 561 0 R 562 0 R 563 0 R 564 0 R 565 0 R 566 0 R 567 0 R 568 0 R 569 0 R 570 0 R 571 0 R 572 0 R 573 0 R 574 0 R 575 0 R 576 0 R 577 0 R 578 0 R 579 0 R 580 0 R 581 0 R 582 0 R 583 0 R 584 0 R 585 0 R 586 0 R 587 0 R 588 0 R 589 0 R 590 0 R 591 0 R 592 0 R 593 0 R 594 0 R 595 0 R 596 0 R 597 0 R 598 0 R 599 0 R 600 0 R 601 0 R]
>>
endobj
15 0 obj
@@ -6108,11 +6108,11 @@ endobj
/Font << /F1.0 8 0 R
>>
>>
-/Annots [596 0 R 597 0 R 598 0 R 599 0 R 600 0 R 601 0 R 602 0 R 603 0 R 604 0 R 605 0 R 606 0 R 607 0 R 608 0 R 609 0 R 610 0 R 611 0 R 612 0 R 613 0 R 614 0 R 615 0 R 616 0 R 617 0 R 618 0 R 619 0 R 620 0 R 621 0 R 622 0 R 623 0 R 624 0 R 625 0 R 626 0 R 627 0 R 628 0 R 629 0 R 630 0 R 631 0 R 632 0 R 633 0 R 634 0 R 635 0 R 636 0 R 637 0 R 638 0 R 639 0 R 640 0 R 641 0 R 642 0 R 643 0 R 644 0 R 645 0 R 646 0 R 647 0 R 648 0 R 649 0 R 650 0 R 651 0 R 652 0 R 653 0 R 654 0 R 655 0 R 656 0 R 657 0 R 658 0 R 659 0 R 660 0 R 661 0 R 662 0 R 663 0 R 664 0 R 665 0 R 666 0 R 667 0 R 668 0 R 669 0 R 670 0 R 671 0 R]
+/Annots [602 0 R 603 0 R 604 0 R 605 0 R 606 0 R 607 0 R 608 0 R 609 0 R 610 0 R 611 0 R 612 0 R 613 0 R 614 0 R 615 0 R 616 0 R 617 0 R 618 0 R 619 0 R 620 0 R 621 0 R 622 0 R 623 0 R 624 0 R 625 0 R 626 0 R 627 0 R 628 0 R 629 0 R 630 0 R 631 0 R 632 0 R 633 0 R 634 0 R 635 0 R 636 0 R 637 0 R 638 0 R 639 0 R 640 0 R 641 0 R 642 0 R 643 0 R 644 0 R 645 0 R 646 0 R 647 0 R 648 0 R 649 0 R 650 0 R 651 0 R 652 0 R 653 0 R 654 0 R 655 0 R 656 0 R 657 0 R 658 0 R 659 0 R 660 0 R 661 0 R 662 0 R 663 0 R 664 0 R 665 0 R 666 0 R 667 0 R 668 0 R 669 0 R 670 0 R 671 0 R 672 0 R 673 0 R 674 0 R 675 0 R 676 0 R 677 0 R]
>>
endobj
17 0 obj
-<< /Length 23866
+<< /Length 28098
>>
stream
q
@@ -6244,7 +6244,7 @@ ET
BT
60.24000000000001 689.3459999999999 Td
/F1.0 10.5 Tf
-[<322e33392e20474554202f76322f746f736361436f6e74726f6c4c6f6f702f67657454> 29.78515625 <6f73636154> 29.78515625 <656d706c617465>] TJ
+[<322e33392e20504f53> 20.01953125 <54202f76322f746f736361436f6e74726f6c4c6f6f702f636f6d6d697373696f6e54> 29.78515625 <6f73636154> 29.78515625 <656d706c617465>] TJ
ET
0.000 0.000 0.000 SCN
@@ -6253,9 +6253,9 @@ ET
0.200 0.200 0.200 SCN
BT
-310.15874999999994 689.3459999999999 Td
+363.60375 689.3459999999999 Td
/F1.0 10.5 Tf
-<2e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e20> Tj
+<2e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e20> Tj
ET
0.000 0.000 0.000 SCN
@@ -6284,7 +6284,7 @@ ET
BT
72.24000000000001 670.8659999999999 Td
/F1.0 10.5 Tf
-<322e33392e312e20526573706f6e736573> Tj
+[<322e33392e312e20506172> 20.01953125 <616d6574657273>] TJ
ET
0.000 0.000 0.000 SCN
@@ -6293,9 +6293,9 @@ ET
0.200 0.200 0.200 SCN
BT
-160.51274999999998 670.8659999999999 Td
+165.85724999999996 670.8659999999999 Td
/F1.0 10.5 Tf
-<2e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e20> Tj
+<2e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e20> Tj
ET
0.000 0.000 0.000 SCN
@@ -6324,7 +6324,7 @@ ET
BT
72.24000000000001 652.3859999999999 Td
/F1.0 10.5 Tf
-<322e33392e322e2050726f6475636573> Tj
+<322e33392e322e20526573706f6e736573> Tj
ET
0.000 0.000 0.000 SCN
@@ -6333,9 +6333,9 @@ ET
0.200 0.200 0.200 SCN
BT
-155.16824999999994 652.3859999999999 Td
+160.51274999999998 652.3859999999999 Td
/F1.0 10.5 Tf
-<2e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e20> Tj
+<2e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e20> Tj
ET
0.000 0.000 0.000 SCN
@@ -6362,9 +6362,9 @@ ET
0.200 0.200 0.200 SCN
BT
-48.24000000000001 633.9059999999998 Td
+72.24000000000001 633.9059999999998 Td
/F1.0 10.5 Tf
-<332e20446566696e6974696f6e73> Tj
+<322e33392e332e20436f6e73756d6573> Tj
ET
0.000 0.000 0.000 SCN
@@ -6373,9 +6373,9 @@ ET
0.200 0.200 0.200 SCN
BT
-117.75674999999995 633.9059999999998 Td
+160.51274999999998 633.9059999999998 Td
/F1.0 10.5 Tf
-<2e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e20> Tj
+<2e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e20> Tj
ET
0.000 0.000 0.000 SCN
@@ -6393,6 +6393,206 @@ ET
BT
552.021 633.9059999999998 Td
/F1.0 10.5 Tf
+<3230> Tj
+ET
+
+0.000 0.000 0.000 SCN
+0.000 0.000 0.000 scn
+0.200 0.200 0.200 scn
+0.200 0.200 0.200 SCN
+
+BT
+72.24000000000001 615.4259999999998 Td
+/F1.0 10.5 Tf
+<322e33392e342e2050726f6475636573> Tj
+ET
+
+0.000 0.000 0.000 SCN
+0.000 0.000 0.000 scn
+0.200 0.200 0.200 scn
+0.200 0.200 0.200 SCN
+
+BT
+155.16824999999994 615.4259999999998 Td
+/F1.0 10.5 Tf
+<2e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e20> Tj
+ET
+
+0.000 0.000 0.000 SCN
+0.000 0.000 0.000 scn
+
+BT
+550.66125 615.4259999999998 Td
+/F1.0 5.25 Tf
+<ca> Tj
+ET
+
+0.200 0.200 0.200 scn
+0.200 0.200 0.200 SCN
+
+BT
+552.021 615.4259999999998 Td
+/F1.0 10.5 Tf
+<3230> Tj
+ET
+
+0.000 0.000 0.000 SCN
+0.000 0.000 0.000 scn
+0.200 0.200 0.200 scn
+0.200 0.200 0.200 SCN
+
+BT
+60.24000000000001 596.9459999999998 Td
+/F1.0 10.5 Tf
+[<322e34302e20474554202f76322f746f736361436f6e74726f6c4c6f6f702f67657454> 29.78515625 <6f73636154> 29.78515625 <656d706c617465>] TJ
+ET
+
+0.000 0.000 0.000 SCN
+0.000 0.000 0.000 scn
+0.200 0.200 0.200 scn
+0.200 0.200 0.200 SCN
+
+BT
+310.15874999999994 596.9459999999998 Td
+/F1.0 10.5 Tf
+<2e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e20> Tj
+ET
+
+0.000 0.000 0.000 SCN
+0.000 0.000 0.000 scn
+
+BT
+550.66125 596.9459999999998 Td
+/F1.0 5.25 Tf
+<ca> Tj
+ET
+
+0.200 0.200 0.200 scn
+0.200 0.200 0.200 SCN
+
+BT
+552.021 596.9459999999998 Td
+/F1.0 10.5 Tf
+<3230> Tj
+ET
+
+0.000 0.000 0.000 SCN
+0.000 0.000 0.000 scn
+0.200 0.200 0.200 scn
+0.200 0.200 0.200 SCN
+
+BT
+72.24000000000001 578.4659999999998 Td
+/F1.0 10.5 Tf
+<322e34302e312e20526573706f6e736573> Tj
+ET
+
+0.000 0.000 0.000 SCN
+0.000 0.000 0.000 scn
+0.200 0.200 0.200 scn
+0.200 0.200 0.200 SCN
+
+BT
+160.51274999999998 578.4659999999998 Td
+/F1.0 10.5 Tf
+<2e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e20> Tj
+ET
+
+0.000 0.000 0.000 SCN
+0.000 0.000 0.000 scn
+
+BT
+550.66125 578.4659999999998 Td
+/F1.0 5.25 Tf
+<ca> Tj
+ET
+
+0.200 0.200 0.200 scn
+0.200 0.200 0.200 SCN
+
+BT
+552.021 578.4659999999998 Td
+/F1.0 10.5 Tf
+<3230> Tj
+ET
+
+0.000 0.000 0.000 SCN
+0.000 0.000 0.000 scn
+0.200 0.200 0.200 scn
+0.200 0.200 0.200 SCN
+
+BT
+72.24000000000001 559.9859999999999 Td
+/F1.0 10.5 Tf
+<322e34302e322e2050726f6475636573> Tj
+ET
+
+0.000 0.000 0.000 SCN
+0.000 0.000 0.000 scn
+0.200 0.200 0.200 scn
+0.200 0.200 0.200 SCN
+
+BT
+155.16824999999994 559.9859999999999 Td
+/F1.0 10.5 Tf
+<2e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e20> Tj
+ET
+
+0.000 0.000 0.000 SCN
+0.000 0.000 0.000 scn
+
+BT
+550.66125 559.9859999999999 Td
+/F1.0 5.25 Tf
+<ca> Tj
+ET
+
+0.200 0.200 0.200 scn
+0.200 0.200 0.200 SCN
+
+BT
+552.021 559.9859999999999 Td
+/F1.0 10.5 Tf
+<3230> Tj
+ET
+
+0.000 0.000 0.000 SCN
+0.000 0.000 0.000 scn
+0.200 0.200 0.200 scn
+0.200 0.200 0.200 SCN
+
+BT
+48.24000000000001 541.5059999999999 Td
+/F1.0 10.5 Tf
+<332e20446566696e6974696f6e73> Tj
+ET
+
+0.000 0.000 0.000 SCN
+0.000 0.000 0.000 scn
+0.200 0.200 0.200 scn
+0.200 0.200 0.200 SCN
+
+BT
+117.75674999999995 541.5059999999999 Td
+/F1.0 10.5 Tf
+<2e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e20> Tj
+ET
+
+0.000 0.000 0.000 SCN
+0.000 0.000 0.000 scn
+
+BT
+550.66125 541.5059999999999 Td
+/F1.0 5.25 Tf
+<ca> Tj
+ET
+
+0.200 0.200 0.200 scn
+0.200 0.200 0.200 SCN
+
+BT
+552.021 541.5059999999999 Td
+/F1.0 10.5 Tf
<3231> Tj
ET
@@ -6402,7 +6602,7 @@ ET
0.200 0.200 0.200 SCN
BT
-60.24000000000001 615.4259999999998 Td
+60.24000000000001 523.0259999999998 Td
/F1.0 10.5 Tf
<332e312e20436c616d70496e666f726d6174696f6e> Tj
ET
@@ -6413,7 +6613,7 @@ ET
0.200 0.200 0.200 SCN
BT
-176.54625 615.4259999999998 Td
+176.54625 523.0259999999998 Td
/F1.0 10.5 Tf
<2e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e20> Tj
ET
@@ -6422,7 +6622,7 @@ ET
0.000 0.000 0.000 scn
BT
-550.66125 615.4259999999998 Td
+550.66125 523.0259999999998 Td
/F1.0 5.25 Tf
<ca> Tj
ET
@@ -6431,7 +6631,7 @@ ET
0.200 0.200 0.200 SCN
BT
-552.021 615.4259999999998 Td
+552.021 523.0259999999998 Td
/F1.0 10.5 Tf
<3231> Tj
ET
@@ -6442,7 +6642,7 @@ ET
0.200 0.200 0.200 SCN
BT
-60.24000000000001 596.9459999999998 Td
+60.24000000000001 504.54599999999976 Td
/F1.0 10.5 Tf
<332e322e20436c64734865616c7468436865636b> Tj
ET
@@ -6453,7 +6653,7 @@ ET
0.200 0.200 0.200 SCN
BT
-165.85724999999996 596.9459999999998 Td
+165.85724999999996 504.54599999999976 Td
/F1.0 10.5 Tf
<2e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e20> Tj
ET
@@ -6462,7 +6662,7 @@ ET
0.000 0.000 0.000 scn
BT
-550.66125 596.9459999999998 Td
+550.66125 504.54599999999976 Td
/F1.0 5.25 Tf
<ca> Tj
ET
@@ -6471,7 +6671,7 @@ ET
0.200 0.200 0.200 SCN
BT
-552.021 596.9459999999998 Td
+552.021 504.54599999999976 Td
/F1.0 10.5 Tf
<3231> Tj
ET
@@ -6482,7 +6682,7 @@ ET
0.200 0.200 0.200 SCN
BT
-60.24000000000001 578.4659999999998 Td
+60.24000000000001 486.06599999999975 Td
/F1.0 10.5 Tf
<332e332e2044696374696f6e617279> Tj
ET
@@ -6493,7 +6693,7 @@ ET
0.200 0.200 0.200 SCN
BT
-133.79024999999996 578.4659999999998 Td
+133.79024999999996 486.06599999999975 Td
/F1.0 10.5 Tf
<2e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e20> Tj
ET
@@ -6502,7 +6702,7 @@ ET
0.000 0.000 0.000 scn
BT
-550.66125 578.4659999999998 Td
+550.66125 486.06599999999975 Td
/F1.0 5.25 Tf
<ca> Tj
ET
@@ -6511,7 +6711,7 @@ ET
0.200 0.200 0.200 SCN
BT
-552.021 578.4659999999998 Td
+552.021 486.06599999999975 Td
/F1.0 10.5 Tf
<3231> Tj
ET
@@ -6522,7 +6722,7 @@ ET
0.200 0.200 0.200 SCN
BT
-60.24000000000001 559.9859999999999 Td
+60.24000000000001 467.58599999999973 Td
/F1.0 10.5 Tf
<332e342e2044696374696f6e617279456c656d656e74> Tj
ET
@@ -6533,7 +6733,7 @@ ET
0.200 0.200 0.200 SCN
BT
-176.54625 559.9859999999999 Td
+176.54625 467.58599999999973 Td
/F1.0 10.5 Tf
<2e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e20> Tj
ET
@@ -6542,7 +6742,7 @@ ET
0.000 0.000 0.000 scn
BT
-550.66125 559.9859999999999 Td
+550.66125 467.58599999999973 Td
/F1.0 5.25 Tf
<ca> Tj
ET
@@ -6551,7 +6751,7 @@ ET
0.200 0.200 0.200 SCN
BT
-552.021 559.9859999999999 Td
+552.021 467.58599999999973 Td
/F1.0 10.5 Tf
<3232> Tj
ET
@@ -6562,7 +6762,7 @@ ET
0.200 0.200 0.200 SCN
BT
-60.24000000000001 541.5059999999999 Td
+60.24000000000001 449.1059999999997 Td
/F1.0 10.5 Tf
<332e352e2045787465726e616c436f6d706f6e656e74> Tj
ET
@@ -6573,7 +6773,7 @@ ET
0.200 0.200 0.200 SCN
BT
-181.89074999999997 541.5059999999999 Td
+181.89074999999997 449.1059999999997 Td
/F1.0 10.5 Tf
<2e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e20> Tj
ET
@@ -6582,7 +6782,7 @@ ET
0.000 0.000 0.000 scn
BT
-550.66125 541.5059999999999 Td
+550.66125 449.1059999999997 Td
/F1.0 5.25 Tf
<ca> Tj
ET
@@ -6591,7 +6791,7 @@ ET
0.200 0.200 0.200 SCN
BT
-552.021 541.5059999999999 Td
+552.021 449.1059999999997 Td
/F1.0 10.5 Tf
<3232> Tj
ET
@@ -6602,7 +6802,7 @@ ET
0.200 0.200 0.200 SCN
BT
-60.24000000000001 523.0259999999998 Td
+60.24000000000001 430.6259999999997 Td
/F1.0 10.5 Tf
<332e362e2045787465726e616c436f6d706f6e656e745374617465> Tj
ET
@@ -6613,7 +6813,7 @@ ET
0.200 0.200 0.200 SCN
BT
-208.61325 523.0259999999998 Td
+208.61325 430.6259999999997 Td
/F1.0 10.5 Tf
<2e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e20> Tj
ET
@@ -6622,7 +6822,7 @@ ET
0.000 0.000 0.000 scn
BT
-550.66125 523.0259999999998 Td
+550.66125 430.6259999999997 Td
/F1.0 5.25 Tf
<ca> Tj
ET
@@ -6631,7 +6831,7 @@ ET
0.200 0.200 0.200 SCN
BT
-552.021 523.0259999999998 Td
+552.021 430.6259999999997 Td
/F1.0 10.5 Tf
<3233> Tj
ET
@@ -6642,7 +6842,7 @@ ET
0.200 0.200 0.200 SCN
BT
-60.24000000000001 504.54599999999976 Td
+60.24000000000001 412.1459999999997 Td
/F1.0 10.5 Tf
[<332e372e204a736f6e417272> 20.01953125 <61> 20.01953125 <79>] TJ
ET
@@ -6653,7 +6853,7 @@ ET
0.200 0.200 0.200 SCN
BT
-133.79024999999996 504.54599999999976 Td
+133.79024999999996 412.1459999999997 Td
/F1.0 10.5 Tf
<2e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e20> Tj
ET
@@ -6662,7 +6862,7 @@ ET
0.000 0.000 0.000 scn
BT
-550.66125 504.54599999999976 Td
+550.66125 412.1459999999997 Td
/F1.0 5.25 Tf
<ca> Tj
ET
@@ -6671,7 +6871,7 @@ ET
0.200 0.200 0.200 SCN
BT
-552.021 504.54599999999976 Td
+552.021 412.1459999999997 Td
/F1.0 10.5 Tf
<3233> Tj
ET
@@ -6682,7 +6882,7 @@ ET
0.200 0.200 0.200 SCN
BT
-60.24000000000001 486.06599999999975 Td
+60.24000000000001 393.66599999999966 Td
/F1.0 10.5 Tf
<332e382e204a736f6e456c656d656e74> Tj
ET
@@ -6693,7 +6893,7 @@ ET
0.200 0.200 0.200 SCN
BT
-144.47924999999998 486.06599999999975 Td
+144.47924999999998 393.66599999999966 Td
/F1.0 10.5 Tf
<2e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e20> Tj
ET
@@ -6702,7 +6902,7 @@ ET
0.000 0.000 0.000 scn
BT
-550.66125 486.06599999999975 Td
+550.66125 393.66599999999966 Td
/F1.0 5.25 Tf
<ca> Tj
ET
@@ -6711,7 +6911,7 @@ ET
0.200 0.200 0.200 SCN
BT
-552.021 486.06599999999975 Td
+552.021 393.66599999999966 Td
/F1.0 10.5 Tf
<3234> Tj
ET
@@ -6722,7 +6922,7 @@ ET
0.200 0.200 0.200 SCN
BT
-60.24000000000001 467.58599999999973 Td
+60.24000000000001 375.18599999999964 Td
/F1.0 10.5 Tf
<332e392e204a736f6e4e756c6c> Tj
ET
@@ -6733,7 +6933,7 @@ ET
0.200 0.200 0.200 SCN
BT
-128.44574999999998 467.58599999999973 Td
+128.44574999999998 375.18599999999964 Td
/F1.0 10.5 Tf
<2e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e20> Tj
ET
@@ -6742,7 +6942,7 @@ ET
0.000 0.000 0.000 scn
BT
-550.66125 467.58599999999973 Td
+550.66125 375.18599999999964 Td
/F1.0 5.25 Tf
<ca> Tj
ET
@@ -6751,7 +6951,7 @@ ET
0.200 0.200 0.200 SCN
BT
-552.021 467.58599999999973 Td
+552.021 375.18599999999964 Td
/F1.0 10.5 Tf
<3235> Tj
ET
@@ -6762,7 +6962,7 @@ ET
0.200 0.200 0.200 SCN
BT
-60.24000000000001 449.1059999999997 Td
+60.24000000000001 356.7059999999996 Td
/F1.0 10.5 Tf
<332e31302e204a736f6e4f626a656374> Tj
ET
@@ -6773,7 +6973,7 @@ ET
0.200 0.200 0.200 SCN
BT
-144.47924999999998 449.1059999999997 Td
+144.47924999999998 356.7059999999996 Td
/F1.0 10.5 Tf
<2e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e20> Tj
ET
@@ -6782,7 +6982,7 @@ ET
0.000 0.000 0.000 scn
BT
-550.66125 449.1059999999997 Td
+550.66125 356.7059999999996 Td
/F1.0 5.25 Tf
<ca> Tj
ET
@@ -6791,7 +6991,7 @@ ET
0.200 0.200 0.200 SCN
BT
-552.021 449.1059999999997 Td
+552.021 356.7059999999996 Td
/F1.0 10.5 Tf
<3237> Tj
ET
@@ -6802,7 +7002,7 @@ ET
0.200 0.200 0.200 SCN
BT
-60.24000000000001 430.6259999999997 Td
+60.24000000000001 338.2259999999996 Td
/F1.0 10.5 Tf
<332e31312e204a736f6e5072696d6974697665> Tj
ET
@@ -6813,7 +7013,7 @@ ET
0.200 0.200 0.200 SCN
BT
-155.16824999999994 430.6259999999997 Td
+155.16824999999994 338.2259999999996 Td
/F1.0 10.5 Tf
<2e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e20> Tj
ET
@@ -6822,7 +7022,7 @@ ET
0.000 0.000 0.000 scn
BT
-550.66125 430.6259999999997 Td
+550.66125 338.2259999999996 Td
/F1.0 5.25 Tf
<ca> Tj
ET
@@ -6831,7 +7031,7 @@ ET
0.200 0.200 0.200 SCN
BT
-552.021 430.6259999999997 Td
+552.021 338.2259999999996 Td
/F1.0 10.5 Tf
<3238> Tj
ET
@@ -6842,7 +7042,7 @@ ET
0.200 0.200 0.200 SCN
BT
-60.24000000000001 412.1459999999997 Td
+60.24000000000001 319.7459999999996 Td
/F1.0 10.5 Tf
<332e31322e204c6f6f70> Tj
ET
@@ -6853,7 +7053,7 @@ ET
0.200 0.200 0.200 SCN
BT
-112.41224999999997 412.1459999999997 Td
+112.41224999999997 319.7459999999996 Td
/F1.0 10.5 Tf
<2e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e20> Tj
ET
@@ -6862,7 +7062,7 @@ ET
0.000 0.000 0.000 scn
BT
-550.66125 412.1459999999997 Td
+550.66125 319.7459999999996 Td
/F1.0 5.25 Tf
<ca> Tj
ET
@@ -6871,7 +7071,7 @@ ET
0.200 0.200 0.200 SCN
BT
-552.021 412.1459999999997 Td
+552.021 319.7459999999996 Td
/F1.0 10.5 Tf
<3239> Tj
ET
@@ -6882,7 +7082,7 @@ ET
0.200 0.200 0.200 SCN
BT
-60.24000000000001 393.66599999999966 Td
+60.24000000000001 301.26599999999956 Td
/F1.0 10.5 Tf
<332e31332e204c6f6f70456c656d656e744d6f64656c> Tj
ET
@@ -6893,7 +7093,7 @@ ET
0.200 0.200 0.200 SCN
BT
-187.23524999999995 393.66599999999966 Td
+187.23524999999995 301.26599999999956 Td
/F1.0 10.5 Tf
<2e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e20> Tj
ET
@@ -6902,7 +7102,7 @@ ET
0.000 0.000 0.000 scn
BT
-550.66125 393.66599999999966 Td
+550.66125 301.26599999999956 Td
/F1.0 5.25 Tf
<ca> Tj
ET
@@ -6911,7 +7111,7 @@ ET
0.200 0.200 0.200 SCN
BT
-552.021 393.66599999999966 Td
+552.021 301.26599999999956 Td
/F1.0 10.5 Tf
<3330> Tj
ET
@@ -6922,7 +7122,7 @@ ET
0.200 0.200 0.200 SCN
BT
-60.24000000000001 375.18599999999964 Td
+60.24000000000001 282.78599999999955 Td
/F1.0 10.5 Tf
<332e31342e204c6f6f704c6f67> Tj
ET
@@ -6933,7 +7133,7 @@ ET
0.200 0.200 0.200 SCN
BT
-133.79024999999996 375.18599999999964 Td
+133.79024999999996 282.78599999999955 Td
/F1.0 10.5 Tf
<2e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e20> Tj
ET
@@ -6942,7 +7142,7 @@ ET
0.000 0.000 0.000 scn
BT
-550.66125 375.18599999999964 Td
+550.66125 282.78599999999955 Td
/F1.0 5.25 Tf
<ca> Tj
ET
@@ -6951,7 +7151,7 @@ ET
0.200 0.200 0.200 SCN
BT
-552.021 375.18599999999964 Td
+552.021 282.78599999999955 Td
/F1.0 10.5 Tf
<3331> Tj
ET
@@ -6962,7 +7162,7 @@ ET
0.200 0.200 0.200 SCN
BT
-60.24000000000001 356.7059999999996 Td
+60.24000000000001 264.30599999999953 Td
/F1.0 10.5 Tf
[<332e31352e204c6f6f7054> 29.78515625 <656d706c617465>] TJ
ET
@@ -6973,7 +7173,7 @@ ET
0.200 0.200 0.200 SCN
BT
-160.51274999999998 356.7059999999996 Td
+160.51274999999998 264.30599999999953 Td
/F1.0 10.5 Tf
<2e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e20> Tj
ET
@@ -6982,7 +7182,7 @@ ET
0.000 0.000 0.000 scn
BT
-550.66125 356.7059999999996 Td
+550.66125 264.30599999999953 Td
/F1.0 5.25 Tf
<ca> Tj
ET
@@ -6991,7 +7191,7 @@ ET
0.200 0.200 0.200 SCN
BT
-552.021 356.7059999999996 Td
+552.021 264.30599999999953 Td
/F1.0 10.5 Tf
<3331> Tj
ET
@@ -7002,7 +7202,7 @@ ET
0.200 0.200 0.200 SCN
BT
-60.24000000000001 338.2259999999996 Td
+60.24000000000001 245.8259999999995 Td
/F1.0 10.5 Tf
[<332e31362e204c6f6f7054> 29.78515625 <656d706c6174654c6f6f70456c656d656e744d6f64656c>] TJ
ET
@@ -7013,7 +7213,7 @@ ET
0.200 0.200 0.200 SCN
BT
-256.71375 338.2259999999996 Td
+256.71375 245.8259999999995 Td
/F1.0 10.5 Tf
<2e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e20> Tj
ET
@@ -7022,7 +7222,7 @@ ET
0.000 0.000 0.000 scn
BT
-550.66125 338.2259999999996 Td
+550.66125 245.8259999999995 Td
/F1.0 5.25 Tf
<ca> Tj
ET
@@ -7031,7 +7231,7 @@ ET
0.200 0.200 0.200 SCN
BT
-552.021 338.2259999999996 Td
+552.021 245.8259999999995 Td
/F1.0 10.5 Tf
<3332> Tj
ET
@@ -7042,7 +7242,7 @@ ET
0.200 0.200 0.200 SCN
BT
-60.24000000000001 319.7459999999996 Td
+60.24000000000001 227.34599999999952 Td
/F1.0 10.5 Tf
<332e31372e204d6963726f53657276696365506f6c696379> Tj
ET
@@ -7053,7 +7253,7 @@ ET
0.200 0.200 0.200 SCN
BT
-187.23524999999995 319.7459999999996 Td
+187.23524999999995 227.34599999999952 Td
/F1.0 10.5 Tf
<2e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e20> Tj
ET
@@ -7062,7 +7262,7 @@ ET
0.000 0.000 0.000 scn
BT
-550.66125 319.7459999999996 Td
+550.66125 227.34599999999952 Td
/F1.0 5.25 Tf
<ca> Tj
ET
@@ -7071,7 +7271,7 @@ ET
0.200 0.200 0.200 SCN
BT
-552.021 319.7459999999996 Td
+552.021 227.34599999999952 Td
/F1.0 10.5 Tf
<3332> Tj
ET
@@ -7082,7 +7282,7 @@ ET
0.200 0.200 0.200 SCN
BT
-60.24000000000001 301.26599999999956 Td
+60.24000000000001 208.86599999999953 Td
/F1.0 10.5 Tf
<332e31382e204e756d626572> Tj
ET
@@ -7093,7 +7293,7 @@ ET
0.200 0.200 0.200 SCN
BT
-128.44574999999998 301.26599999999956 Td
+128.44574999999998 208.86599999999953 Td
/F1.0 10.5 Tf
<2e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e20> Tj
ET
@@ -7102,7 +7302,7 @@ ET
0.000 0.000 0.000 scn
BT
-550.66125 301.26599999999956 Td
+550.66125 208.86599999999953 Td
/F1.0 5.25 Tf
<ca> Tj
ET
@@ -7111,7 +7311,7 @@ ET
0.200 0.200 0.200 SCN
BT
-552.021 301.26599999999956 Td
+552.021 208.86599999999953 Td
/F1.0 10.5 Tf
<3333> Tj
ET
@@ -7122,7 +7322,7 @@ ET
0.200 0.200 0.200 SCN
BT
-60.24000000000001 282.78599999999955 Td
+60.24000000000001 190.38599999999954 Td
/F1.0 10.5 Tf
[<332e31392e204f706572> 20.01953125 <6174696f6e616c506f6c696379>] TJ
ET
@@ -7133,7 +7333,7 @@ ET
0.200 0.200 0.200 SCN
BT
-176.54625 282.78599999999955 Td
+176.54625 190.38599999999954 Td
/F1.0 10.5 Tf
<2e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e20> Tj
ET
@@ -7142,7 +7342,7 @@ ET
0.000 0.000 0.000 scn
BT
-550.66125 282.78599999999955 Td
+550.66125 190.38599999999954 Td
/F1.0 5.25 Tf
<ca> Tj
ET
@@ -7151,7 +7351,7 @@ ET
0.200 0.200 0.200 SCN
BT
-552.021 282.78599999999955 Td
+552.021 190.38599999999954 Td
/F1.0 10.5 Tf
<3334> Tj
ET
@@ -7162,7 +7362,7 @@ ET
0.200 0.200 0.200 SCN
BT
-60.24000000000001 264.30599999999953 Td
+60.24000000000001 171.90599999999955 Td
/F1.0 10.5 Tf
<332e32302e20506f6c6963794d6f64656c> Tj
ET
@@ -7173,7 +7373,7 @@ ET
0.200 0.200 0.200 SCN
BT
-149.82374999999996 264.30599999999953 Td
+149.82374999999996 171.90599999999955 Td
/F1.0 10.5 Tf
<2e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e20> Tj
ET
@@ -7182,7 +7382,7 @@ ET
0.000 0.000 0.000 scn
BT
-550.66125 264.30599999999953 Td
+550.66125 171.90599999999955 Td
/F1.0 5.25 Tf
<ca> Tj
ET
@@ -7191,7 +7391,7 @@ ET
0.200 0.200 0.200 SCN
BT
-552.021 264.30599999999953 Td
+552.021 171.90599999999955 Td
/F1.0 10.5 Tf
<3334> Tj
ET
@@ -7202,7 +7402,7 @@ ET
0.200 0.200 0.200 SCN
BT
-60.24000000000001 245.8259999999995 Td
+60.24000000000001 153.42599999999956 Td
/F1.0 10.5 Tf
<332e32312e2053657276696365> Tj
ET
@@ -7213,7 +7413,7 @@ ET
0.200 0.200 0.200 SCN
BT
-123.10125 245.8259999999995 Td
+123.10125 153.42599999999956 Td
/F1.0 10.5 Tf
<2e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e20> Tj
ET
@@ -7222,7 +7422,7 @@ ET
0.000 0.000 0.000 scn
BT
-550.66125 245.8259999999995 Td
+550.66125 153.42599999999956 Td
/F1.0 5.25 Tf
<ca> Tj
ET
@@ -7231,7 +7431,7 @@ ET
0.200 0.200 0.200 SCN
BT
-552.021 245.8259999999995 Td
+552.021 153.42599999999956 Td
/F1.0 10.5 Tf
<3335> Tj
ET
@@ -7251,7 +7451,7 @@ endobj
/Font << /F1.0 8 0 R
>>
>>
-/Annots [672 0 R 673 0 R 674 0 R 675 0 R 676 0 R 677 0 R 678 0 R 679 0 R 680 0 R 681 0 R 682 0 R 683 0 R 684 0 R 685 0 R 686 0 R 687 0 R 688 0 R 689 0 R 690 0 R 691 0 R 692 0 R 693 0 R 694 0 R 695 0 R 696 0 R 697 0 R 698 0 R 699 0 R 700 0 R 701 0 R 702 0 R 703 0 R 704 0 R 705 0 R 706 0 R 707 0 R 708 0 R 709 0 R 710 0 R 711 0 R 712 0 R 713 0 R 714 0 R 715 0 R 716 0 R 717 0 R 718 0 R 719 0 R 720 0 R 721 0 R 722 0 R 723 0 R 724 0 R 725 0 R 726 0 R 727 0 R]
+/Annots [678 0 R 679 0 R 680 0 R 681 0 R 682 0 R 683 0 R 684 0 R 685 0 R 686 0 R 687 0 R 688 0 R 689 0 R 690 0 R 691 0 R 692 0 R 693 0 R 694 0 R 695 0 R 696 0 R 697 0 R 698 0 R 699 0 R 700 0 R 701 0 R 702 0 R 703 0 R 704 0 R 705 0 R 706 0 R 707 0 R 708 0 R 709 0 R 710 0 R 711 0 R 712 0 R 713 0 R 714 0 R 715 0 R 716 0 R 717 0 R 718 0 R 719 0 R 720 0 R 721 0 R 722 0 R 723 0 R 724 0 R 725 0 R 726 0 R 727 0 R 728 0 R 729 0 R 730 0 R 731 0 R 732 0 R 733 0 R 734 0 R 735 0 R 736 0 R 737 0 R 738 0 R 739 0 R 740 0 R 741 0 R 742 0 R 743 0 R]
>>
endobj
19 0 obj
@@ -7333,7 +7533,7 @@ ET
BT
71.30850000000001 592.176 Td
/F1.0 10.5 Tf
-<203a206c6f63616c686f73743a3333323031> Tj
+<203a206c6f63616c686f73743a3430333133> Tj
ET
0.000 0.000 0.000 SCN
@@ -7434,7 +7634,7 @@ endobj
/F3.0 26 0 R
/F1.0 8 0 R
>>
-/XObject << /Stamp1 728 0 R
+/XObject << /Stamp1 744 0 R
>>
>>
>>
@@ -7448,18 +7648,18 @@ endobj
>>
endobj
23 0 obj
-<< /Kids [56 0 R 274 0 R 339 0 R 156 0 R 233 0 R 90 0 R 153 0 R 238 0 R 57 0 R 150 0 R 218 0 R 84 0 R 140 0 R 254 0 R]
+<< /Kids [56 0 R 275 0 R 339 0 R 156 0 R 234 0 R 90 0 R 153 0 R 239 0 R 57 0 R 150 0 R 218 0 R 377 0 R 84 0 R 140 0 R 228 0 R]
>>
endobj
24 0 obj
<< /Type /Font
/BaseFont /AAAAAB+NotoSerif-Bold
/Subtype /TrueType
-/FontDescriptor 914 0 R
+/FontDescriptor 935 0 R
/FirstChar 32
/LastChar 255
-/Widths 916 0 R
-/ToUnicode 915 0 R
+/Widths 937 0 R
+/ToUnicode 936 0 R
>>
endobj
25 0 obj
@@ -7469,11 +7669,11 @@ endobj
<< /Type /Font
/BaseFont /AAAAAC+NotoSerif-Italic
/Subtype /TrueType
-/FontDescriptor 918 0 R
+/FontDescriptor 939 0 R
/FirstChar 32
/LastChar 255
-/Widths 920 0 R
-/ToUnicode 919 0 R
+/Widths 941 0 R
+/ToUnicode 940 0 R
>>
endobj
27 0 obj
@@ -8373,7 +8573,7 @@ endobj
/F1.0 8 0 R
/F4.0 35 0 R
>>
-/XObject << /Stamp1 728 0 R
+/XObject << /Stamp1 744 0 R
>>
>>
/Annots [33 0 R 41 0 R]
@@ -8403,11 +8603,11 @@ endobj
<< /Type /Font
/BaseFont /AAAAAD+mplus1mn-regular
/Subtype /TrueType
-/FontDescriptor 922 0 R
+/FontDescriptor 943 0 R
/FirstChar 32
/LastChar 255
-/Widths 924 0 R
-/ToUnicode 923 0 R
+/Widths 945 0 R
+/ToUnicode 944 0 R
>>
endobj
36 0 obj
@@ -9651,7 +9851,7 @@ endobj
/F4.0 35 0 R
/F3.0 26 0 R
>>
-/XObject << /Stamp1 728 0 R
+/XObject << /Stamp1 744 0 R
>>
>>
/Annots [47 0 R 51 0 R 53 0 R]
@@ -9703,8 +9903,8 @@ endobj
[45 0 R /XYZ 0 290.4000000000005 null]
endobj
56 0 obj
-<< /Limits [(_clampinformation) (_consumes_8)]
-/Names [(_clampinformation) 267 0 R (_cldshealthcheck) 268 0 R (_consumes) 54 0 R (_consumes_2) 73 0 R (_consumes_3) 100 0 R (_consumes_4) 172 0 R (_consumes_5) 181 0 R (_consumes_6) 190 0 R (_consumes_7) 207 0 R (_consumes_8) 211 0 R]
+<< /Limits [(_clampinformation) (_consumes_7)]
+/Names [(_clampinformation) 272 0 R (_cldshealthcheck) 273 0 R (_consumes) 54 0 R (_consumes_10) 264 0 R (_consumes_2) 73 0 R (_consumes_3) 100 0 R (_consumes_4) 172 0 R (_consumes_5) 181 0 R (_consumes_6) 190 0 R (_consumes_7) 207 0 R]
>>
endobj
57 0 obj
@@ -11064,7 +11264,7 @@ endobj
/F4.0 35 0 R
/F3.0 26 0 R
>>
-/XObject << /Stamp1 728 0 R
+/XObject << /Stamp1 744 0 R
>>
>>
/Annots [66 0 R 70 0 R 72 0 R]
@@ -12284,7 +12484,7 @@ endobj
/F4.0 35 0 R
/F3.0 26 0 R
>>
-/XObject << /Stamp1 728 0 R
+/XObject << /Stamp1 744 0 R
>>
>>
>>
@@ -12314,8 +12514,8 @@ endobj
[75 0 R /XYZ 0 198.9600000000004 null]
endobj
84 0 obj
-<< /Limits [(_verb100) (_verb79)]
-/Names [(_verb100) 58 0 R (_verb101) 63 0 R (_verb102) 49 0 R (_verb103) 68 0 R (_verb104) 77 0 R (_verb105) 81 0 R (_verb106) 227 0 R (_verb107) 239 0 R (_verb108) 231 0 R (_verb109) 197 0 R (_verb110) 214 0 R (_verb111) 222 0 R (_verb112) 203 0 R (_verb113) 208 0 R (_verb114) 261 0 R (_verb115) 39 0 R (_verb116) 31 0 R (_verb117) 36 0 R (_verb79) 112 0 R]
+<< /Limits [(_verb1) (_verb23)]
+/Names [(_verb1) 112 0 R (_verb10) 147 0 R (_verb11) 139 0 R (_verb12) 154 0 R (_verb13) 102 0 R (_verb14) 115 0 R (_verb15) 88 0 R (_verb16) 134 0 R (_verb17) 94 0 R (_verb18) 245 0 R (_verb19) 254 0 R (_verb2) 192 0 R (_verb20) 251 0 R (_verb21) 43 0 R (_verb22) 58 0 R (_verb23) 63 0 R]
>>
endobj
85 0 obj
@@ -13627,7 +13827,7 @@ endobj
/F1.0 8 0 R
/F4.0 35 0 R
>>
-/XObject << /Stamp1 728 0 R
+/XObject << /Stamp1 744 0 R
>>
>>
/Annots [92 0 R]
@@ -13641,7 +13841,7 @@ endobj
endobj
90 0 obj
<< /Limits [(_policymodel) (_produces_18)]
-/Names [(_policymodel) 366 0 R (_produces) 34 0 R (_produces_10) 85 0 R (_produces_11) 93 0 R (_produces_12) 101 0 R (_produces_13) 111 0 R (_produces_14) 114 0 R (_produces_15) 119 0 R (_produces_16) 126 0 R (_produces_17) 131 0 R (_produces_18) 138 0 R]
+/Names [(_policymodel) 371 0 R (_produces) 34 0 R (_produces_10) 85 0 R (_produces_11) 93 0 R (_produces_12) 101 0 R (_produces_13) 111 0 R (_produces_14) 114 0 R (_produces_15) 119 0 R (_produces_16) 126 0 R (_produces_17) 131 0 R (_produces_18) 138 0 R]
>>
endobj
91 0 obj
@@ -15003,7 +15203,7 @@ endobj
/F4.0 35 0 R
/F3.0 26 0 R
>>
-/XObject << /Stamp1 728 0 R
+/XObject << /Stamp1 744 0 R
>>
>>
/Annots [99 0 R 108 0 R]
@@ -16040,7 +16240,7 @@ endobj
/F4.0 35 0 R
/F3.0 26 0 R
>>
-/XObject << /Stamp1 728 0 R
+/XObject << /Stamp1 744 0 R
>>
>>
/Annots [118 0 R]
@@ -17514,7 +17714,7 @@ endobj
/F1.0 8 0 R
/F4.0 35 0 R
>>
-/XObject << /Stamp1 728 0 R
+/XObject << /Stamp1 744 0 R
>>
>>
/Annots [125 0 R 130 0 R]
@@ -18849,7 +19049,7 @@ endobj
/F1.0 8 0 R
/F4.0 35 0 R
>>
-/XObject << /Stamp1 728 0 R
+/XObject << /Stamp1 744 0 R
>>
>>
/Annots [137 0 R]
@@ -18879,8 +19079,8 @@ endobj
[133 0 R /XYZ 0 282.9600000000001 null]
endobj
140 0 obj
-<< /Limits [(_verb80) (_verb89)]
-/Names [(_verb80) 192 0 R (_verb81) 167 0 R (_verb82) 183 0 R (_verb83) 176 0 R (_verb84) 105 0 R (_verb85) 120 0 R (_verb86) 127 0 R (_verb87) 162 0 R (_verb88) 147 0 R (_verb89) 139 0 R]
+<< /Limits [(_verb24) (_verb34)]
+/Names [(_verb24) 49 0 R (_verb25) 68 0 R (_verb26) 77 0 R (_verb27) 81 0 R (_verb28) 227 0 R (_verb29) 240 0 R (_verb3) 167 0 R (_verb30) 232 0 R (_verb31) 197 0 R (_verb32) 214 0 R (_verb33) 222 0 R (_verb34) 203 0 R]
>>
endobj
141 0 obj
@@ -20310,7 +20510,7 @@ endobj
/F4.0 35 0 R
/F3.0 26 0 R
>>
-/XObject << /Stamp1 728 0 R
+/XObject << /Stamp1 744 0 R
>>
>>
/Annots [145 0 R 151 0 R 158 0 R]
@@ -21725,7 +21925,7 @@ endobj
/F4.0 35 0 R
/F3.0 26 0 R
>>
-/XObject << /Stamp1 728 0 R
+/XObject << /Stamp1 744 0 R
>>
>>
/Annots [165 0 R 169 0 R 171 0 R]
@@ -23027,7 +23227,7 @@ endobj
/F4.0 35 0 R
/F3.0 26 0 R
>>
-/XObject << /Stamp1 728 0 R
+/XObject << /Stamp1 744 0 R
>>
>>
/Annots [178 0 R 180 0 R 185 0 R]
@@ -24293,7 +24493,7 @@ endobj
/F4.0 35 0 R
/F3.0 26 0 R
>>
-/XObject << /Stamp1 728 0 R
+/XObject << /Stamp1 744 0 R
>>
>>
/Annots [189 0 R 195 0 R 199 0 R]
@@ -25381,7 +25581,7 @@ endobj
/F4.0 35 0 R
/F3.0 26 0 R
>>
-/XObject << /Stamp1 728 0 R
+/XObject << /Stamp1 744 0 R
>>
>>
/Annots [205 0 R]
@@ -26645,7 +26845,7 @@ endobj
/F1.0 8 0 R
/F4.0 35 0 R
>>
-/XObject << /Stamp1 728 0 R
+/XObject << /Stamp1 744 0 R
>>
>>
/Annots [216 0 R 219 0 R]
@@ -26669,8 +26869,8 @@ endobj
[213 0 R /XYZ 0 406.80000000000024 null]
endobj
218 0 obj
-<< /Limits [(_responses_29) (_uri_scheme)]
-/Names [(_responses_29) 206 0 R (_responses_3) 40 0 R (_responses_30) 210 0 R (_responses_31) 217 0 R (_responses_32) 226 0 R (_responses_33) 228 0 R (_responses_34) 236 0 R (_responses_35) 241 0 R (_responses_36) 247 0 R (_responses_37) 251 0 R (_responses_38) 256 0 R (_responses_39) 262 0 R (_responses_4) 46 0 R (_responses_5) 52 0 R (_responses_6) 59 0 R (_responses_7) 65 0 R (_responses_8) 71 0 R (_responses_9) 79 0 R (_service) 371 0 R (_uri_scheme) 27 0 R]
+<< /Limits [(_responses_29) (_responses_37)]
+/Names [(_responses_29) 206 0 R (_responses_3) 40 0 R (_responses_30) 210 0 R (_responses_31) 217 0 R (_responses_32) 226 0 R (_responses_33) 229 0 R (_responses_34) 237 0 R (_responses_35) 242 0 R (_responses_36) 248 0 R (_responses_37) 252 0 R]
>>
endobj
219 0 obj
@@ -28141,10 +28341,10 @@ endobj
/F1.0 8 0 R
/F4.0 35 0 R
>>
-/XObject << /Stamp1 728 0 R
+/XObject << /Stamp1 744 0 R
>>
>>
-/Annots [229 0 R]
+/Annots [230 0 R]
>>
endobj
225 0 obj
@@ -28157,9 +28357,14 @@ endobj
[224 0 R /XYZ 0 449.76000000000033 null]
endobj
228 0 obj
-[224 0 R /XYZ 0 409.6800000000003 null]
+<< /Limits [(_verb35) (_version_information)]
+/Names [(_verb35) 208 0 R (_verb36) 266 0 R (_verb37) 261 0 R (_verb38) 39 0 R (_verb39) 31 0 R (_verb4) 183 0 R (_verb40) 36 0 R (_verb5) 176 0 R (_verb6) 105 0 R (_verb7) 120 0 R (_verb8) 127 0 R (_verb9) 162 0 R (_version_information) 25 0 R]
+>>
endobj
229 0 obj
+[224 0 R /XYZ 0 409.6800000000003 null]
+endobj
+230 0 obj
<< /Border [0 0 0]
/Dest (_policymodel)
/Subtype /Link
@@ -28167,21 +28372,21 @@ endobj
/Type /Annot
>>
endobj
-230 0 obj
+231 0 obj
[224 0 R /XYZ 0 304.5600000000003 null]
endobj
-231 0 obj
+232 0 obj
[224 0 R /XYZ 0 248.28000000000026 null]
endobj
-232 0 obj
+233 0 obj
[224 0 R /XYZ 0 152.04000000000022 null]
endobj
-233 0 obj
+234 0 obj
<< /Limits [(_parameters_24) (_paths)]
-/Names [(_parameters_24) 215 0 R (_parameters_25) 225 0 R (_parameters_26) 232 0 R (_parameters_27) 240 0 R (_parameters_28) 255 0 R (_parameters_3) 69 0 R (_parameters_4) 78 0 R (_parameters_5) 82 0 R (_parameters_6) 89 0 R (_parameters_7) 95 0 R (_parameters_8) 103 0 R (_parameters_9) 106 0 R (_paths) 30 0 R]
+/Names [(_parameters_24) 215 0 R (_parameters_25) 225 0 R (_parameters_26) 233 0 R (_parameters_27) 241 0 R (_parameters_28) 255 0 R (_parameters_29) 262 0 R (_parameters_3) 69 0 R (_parameters_4) 78 0 R (_parameters_5) 82 0 R (_parameters_6) 89 0 R (_parameters_7) 95 0 R (_parameters_8) 103 0 R (_parameters_9) 106 0 R (_paths) 30 0 R]
>>
endobj
-234 0 obj
+235 0 obj
<< /Length 17462
>>
stream
@@ -29474,44 +29679,44 @@ Q
endstream
endobj
-235 0 obj
+236 0 obj
<< /Type /Page
/Parent 3 0 R
/MediaBox [0 0 612.0 792.0]
-/Contents 234 0 R
+/Contents 235 0 R
/Resources << /ProcSet [/PDF /Text /ImageB /ImageC /ImageI]
/Font << /F2.0 24 0 R
/F3.0 26 0 R
/F1.0 8 0 R
/F4.0 35 0 R
>>
-/XObject << /Stamp1 728 0 R
+/XObject << /Stamp1 744 0 R
>>
>>
-/Annots [242 0 R]
+/Annots [243 0 R]
>>
endobj
-236 0 obj
-[235 0 R /XYZ 0 683.1600000000001 null]
-endobj
237 0 obj
-[235 0 R /XYZ 0 578.0400000000002 null]
+[236 0 R /XYZ 0 683.1600000000001 null]
endobj
238 0 obj
-<< /Limits [(_produces_28) (_responses)]
-/Names [(_produces_28) 221 0 R (_produces_29) 230 0 R (_produces_3) 42 0 R (_produces_30) 237 0 R (_produces_31) 243 0 R (_produces_32) 249 0 R (_produces_33) 252 0 R (_produces_34) 258 0 R (_produces_35) 263 0 R (_produces_4) 48 0 R (_produces_5) 55 0 R (_produces_6) 62 0 R (_produces_7) 67 0 R (_produces_8) 76 0 R (_produces_9) 80 0 R (_responses) 32 0 R]
->>
+[236 0 R /XYZ 0 578.0400000000002 null]
endobj
239 0 obj
-[235 0 R /XYZ 0 521.7600000000003 null]
+<< /Limits [(_produces_28) (_responses)]
+/Names [(_produces_28) 221 0 R (_produces_29) 231 0 R (_produces_3) 42 0 R (_produces_30) 238 0 R (_produces_31) 244 0 R (_produces_32) 250 0 R (_produces_33) 253 0 R (_produces_34) 258 0 R (_produces_35) 265 0 R (_produces_36) 268 0 R (_produces_4) 48 0 R (_produces_5) 55 0 R (_produces_6) 62 0 R (_produces_7) 67 0 R (_produces_8) 76 0 R (_produces_9) 80 0 R (_responses) 32 0 R]
+>>
endobj
240 0 obj
-[235 0 R /XYZ 0 425.5200000000004 null]
+[236 0 R /XYZ 0 521.7600000000003 null]
endobj
241 0 obj
-[235 0 R /XYZ 0 282.8400000000003 null]
+[236 0 R /XYZ 0 425.5200000000004 null]
endobj
242 0 obj
+[236 0 R /XYZ 0 282.8400000000003 null]
+endobj
+243 0 obj
<< /Border [0 0 0]
/Dest (_jsonobject)
/Subtype /Link
@@ -29519,13 +29724,13 @@ endobj
/Type /Annot
>>
endobj
-243 0 obj
-[235 0 R /XYZ 0 177.7200000000003 null]
-endobj
244 0 obj
-[235 0 R /XYZ 0 121.44000000000028 null]
+[236 0 R /XYZ 0 177.7200000000003 null]
endobj
245 0 obj
+[236 0 R /XYZ 0 121.44000000000028 null]
+endobj
+246 0 obj
<< /Length 16308
>>
stream
@@ -30718,27 +30923,27 @@ Q
endstream
endobj
-246 0 obj
+247 0 obj
<< /Type /Page
/Parent 3 0 R
/MediaBox [0 0 612.0 792.0]
-/Contents 245 0 R
+/Contents 246 0 R
/Resources << /ProcSet [/PDF /Text /ImageB /ImageC /ImageI]
/Font << /F2.0 24 0 R
/F1.0 8 0 R
/F4.0 35 0 R
/F3.0 26 0 R
>>
-/XObject << /Stamp1 728 0 R
+/XObject << /Stamp1 744 0 R
>>
>>
-/Annots [248 0 R 257 0 R]
+/Annots [249 0 R 257 0 R]
>>
endobj
-247 0 obj
-[246 0 R /XYZ 0 792.0 null]
-endobj
248 0 obj
+[247 0 R /XYZ 0 792.0 null]
+endobj
+249 0 obj
<< /Border [0 0 0]
/Dest (_looptemplate)
/Subtype /Link
@@ -30746,31 +30951,26 @@ endobj
/Type /Annot
>>
endobj
-249 0 obj
-[246 0 R /XYZ 0 653.2800000000002 null]
-endobj
250 0 obj
-[246 0 R /XYZ 0 597.0000000000003 null]
+[247 0 R /XYZ 0 653.2800000000002 null]
endobj
251 0 obj
-[246 0 R /XYZ 0 556.9200000000004 null]
+[247 0 R /XYZ 0 597.0000000000003 null]
endobj
252 0 obj
-[246 0 R /XYZ 0 451.8000000000005 null]
+[247 0 R /XYZ 0 556.9200000000004 null]
endobj
253 0 obj
-[246 0 R /XYZ 0 395.5200000000005 null]
+[247 0 R /XYZ 0 451.8000000000005 null]
endobj
254 0 obj
-<< /Limits [(_verb90) (_version_information)]
-/Names [(_verb90) 154 0 R (_verb91) 102 0 R (_verb92) 115 0 R (_verb93) 88 0 R (_verb94) 134 0 R (_verb95) 94 0 R (_verb96) 244 0 R (_verb97) 253 0 R (_verb98) 250 0 R (_verb99) 43 0 R (_version_information) 25 0 R]
->>
+[247 0 R /XYZ 0 395.5200000000005 null]
endobj
255 0 obj
-[246 0 R /XYZ 0 355.44000000000045 null]
+[247 0 R /XYZ 0 355.44000000000045 null]
endobj
256 0 obj
-[246 0 R /XYZ 0 250.32000000000045 null]
+[247 0 R /XYZ 0 250.32000000000045 null]
endobj
257 0 obj
<< /Border [0 0 0]
@@ -30781,10 +30981,10 @@ endobj
>>
endobj
258 0 obj
-[246 0 R /XYZ 0 145.20000000000041 null]
+[247 0 R /XYZ 0 145.20000000000041 null]
endobj
259 0 obj
-<< /Length 4365
+<< /Length 12677
>>
stream
q
@@ -30796,7 +30996,18 @@ q
BT
48.24 734.976 Td
/F2.0 18 Tf
-[<322e33392e20474554202f76322f746f736361436f6e74726f6c4c6f6f702f67657454> 29.78515625 <6f73636154> 29.78515625 <656d706c617465>] TJ
+[<322e33392e20504f53> 20.01953125 <54>] TJ
+ET
+
+0.000 0.000 0.000 SCN
+0.000 0.000 0.000 scn
+0.200 0.200 0.200 scn
+0.200 0.200 0.200 SCN
+
+BT
+48.24 706.8960000000001 Td
+/F2.0 18 Tf
+[<2f76322f746f736361436f6e74726f6c4c6f6f702f636f6d6d697373696f6e54> 29.78515625 <6f73636154> 29.78515625 <656d706c617465>] TJ
ET
0.000 0.000 0.000 SCN
@@ -30805,59 +31016,129 @@ ET
0.200 0.200 0.200 SCN
BT
-48.24 700.7360000000001 Td
+48.24 672.6560000000002 Td
/F2.0 13 Tf
-<322e33392e312e20526573706f6e736573> Tj
+[<322e33392e312e20506172> 20.01953125 <616d6574657273>] TJ
ET
0.000 0.000 0.000 SCN
0.000 0.000 0.000 scn
1.000 1.000 1.000 scn
-48.240 648.480 51.552 37.560 re
+48.240 634.680 114.560 23.280 re
f
0.000 0.000 0.000 scn
1.000 1.000 1.000 scn
-99.792 648.480 360.864 37.560 re
+162.800 634.680 171.840 23.280 re
f
0.000 0.000 0.000 scn
1.000 1.000 1.000 scn
-460.656 648.480 103.104 37.560 re
+334.640 634.680 229.120 23.280 re
f
0.000 0.000 0.000 scn
1.000 1.000 1.000 scn
-48.240 625.200 51.552 23.280 re
+48.240 597.120 114.560 37.560 re
f
0.000 0.000 0.000 scn
1.000 1.000 1.000 scn
-99.792 625.200 360.864 23.280 re
+162.800 597.120 171.840 37.560 re
f
0.000 0.000 0.000 scn
1.000 1.000 1.000 scn
-460.656 625.200 103.104 23.280 re
+334.640 597.120 229.120 37.560 re
f
0.000 0.000 0.000 scn
0.5 w
0.867 0.867 0.867 SCN
-48.240 686.040 m
-99.792 686.040 l
+48.240 657.960 m
+162.800 657.960 l
+S
+[ ] 0 d
+1.5 w
+0.867 0.867 0.867 SCN
+48.240 634.680 m
+162.800 634.680 l
+S
+[ ] 0 d
+0.5 w
+0.867 0.867 0.867 SCN
+48.240 658.210 m
+48.240 633.930 l
+S
+[ ] 0 d
+0.5 w
+0.867 0.867 0.867 SCN
+162.800 658.210 m
+162.800 633.930 l
+S
+[ ] 0 d
+1 w
+0.000 0.000 0.000 SCN
+0.200 0.200 0.200 scn
+
+BT
+51.24 642.2130000000002 Td
+/F2.0 10.5 Tf
+<54797065> Tj
+ET
+
+0.000 0.000 0.000 scn
+0.5 w
+0.867 0.867 0.867 SCN
+162.800 657.960 m
+334.640 657.960 l
+S
+[ ] 0 d
+1.5 w
+0.867 0.867 0.867 SCN
+162.800 634.680 m
+334.640 634.680 l
+S
+[ ] 0 d
+0.5 w
+0.867 0.867 0.867 SCN
+162.800 658.210 m
+162.800 633.930 l
+S
+[ ] 0 d
+0.5 w
+0.867 0.867 0.867 SCN
+334.640 658.210 m
+334.640 633.930 l
+S
+[ ] 0 d
+1 w
+0.000 0.000 0.000 SCN
+0.200 0.200 0.200 scn
+
+BT
+165.79988544 642.2130000000002 Td
+/F2.0 10.5 Tf
+<4e616d65> Tj
+ET
+
+0.000 0.000 0.000 scn
+0.5 w
+0.867 0.867 0.867 SCN
+334.640 657.960 m
+563.760 657.960 l
S
[ ] 0 d
1.5 w
0.867 0.867 0.867 SCN
-48.240 648.480 m
-99.792 648.480 l
+334.640 634.680 m
+563.760 634.680 l
S
[ ] 0 d
0.5 w
0.867 0.867 0.867 SCN
-48.240 686.290 m
-48.240 647.730 l
+334.640 658.210 m
+334.640 633.930 l
S
[ ] 0 d
0.5 w
0.867 0.867 0.867 SCN
-99.792 686.290 m
-99.792 647.730 l
+563.760 658.210 m
+563.760 633.930 l
S
[ ] 0 d
1 w
@@ -30865,14 +31146,201 @@ S
0.200 0.200 0.200 scn
BT
-51.24 670.2930000000001 Td
+337.6397136 642.2130000000002 Td
+/F2.0 10.5 Tf
+<536368656d61> Tj
+ET
+
+0.000 0.000 0.000 scn
+0.5 w
+0.867 0.867 0.867 SCN
+48.240 634.680 m
+162.800 634.680 l
+S
+[ ] 0 d
+0.5 w
+0.867 0.867 0.867 SCN
+48.240 597.120 m
+162.800 597.120 l
+S
+[ ] 0 d
+0.5 w
+0.867 0.867 0.867 SCN
+48.240 634.930 m
+48.240 596.870 l
+S
+[ ] 0 d
+0.5 w
+0.867 0.867 0.867 SCN
+162.800 634.930 m
+162.800 596.870 l
+S
+[ ] 0 d
+1 w
+0.000 0.000 0.000 SCN
+0.200 0.200 0.200 scn
+
+BT
+51.24 611.2930000000002 Td
+/F2.0 10.5 Tf
+<426f6479> Tj
+ET
+
+0.000 0.000 0.000 scn
+0.5 w
+0.867 0.867 0.867 SCN
+162.800 634.680 m
+334.640 634.680 l
+S
+[ ] 0 d
+0.5 w
+0.867 0.867 0.867 SCN
+162.800 597.120 m
+334.640 597.120 l
+S
+[ ] 0 d
+0.5 w
+0.867 0.867 0.867 SCN
+162.800 634.930 m
+162.800 596.870 l
+S
+[ ] 0 d
+0.5 w
+0.867 0.867 0.867 SCN
+334.640 634.930 m
+334.640 596.870 l
+S
+[ ] 0 d
+1 w
+0.000 0.000 0.000 SCN
+0.200 0.200 0.200 scn
+
+BT
+165.79988544 618.4330000000002 Td
+/F2.0 10.5 Tf
+<626f6479> Tj
+ET
+
+
+BT
+165.79988544 604.1530000000002 Td
+ET
+
+
+BT
+165.79988544 604.1530000000002 Td
+/F3.0 10.5 Tf
+<7265717569726564> Tj
+ET
+
+0.000 0.000 0.000 scn
+0.5 w
+0.867 0.867 0.867 SCN
+334.640 634.680 m
+563.760 634.680 l
+S
+[ ] 0 d
+0.5 w
+0.867 0.867 0.867 SCN
+334.640 597.120 m
+563.760 597.120 l
+S
+[ ] 0 d
+0.5 w
+0.867 0.867 0.867 SCN
+334.640 634.930 m
+334.640 596.870 l
+S
+[ ] 0 d
+0.5 w
+0.867 0.867 0.867 SCN
+563.760 634.930 m
+563.760 596.870 l
+S
+[ ] 0 d
+1 w
+0.000 0.000 0.000 SCN
+0.200 0.200 0.200 scn
+
+BT
+337.6397136 611.2930000000002 Td
+/F1.0 10.5 Tf
+<737472696e67> Tj
+ET
+
+0.000 0.000 0.000 scn
+0.200 0.200 0.200 scn
+0.200 0.200 0.200 SCN
+
+BT
+48.24 567.5360000000004 Td
+/F2.0 13 Tf
+<322e33392e322e20526573706f6e736573> Tj
+ET
+
+0.000 0.000 0.000 SCN
+0.000 0.000 0.000 scn
+1.000 1.000 1.000 scn
+48.240 515.280 51.552 37.560 re
+f
+0.000 0.000 0.000 scn
+1.000 1.000 1.000 scn
+99.792 515.280 360.864 37.560 re
+f
+0.000 0.000 0.000 scn
+1.000 1.000 1.000 scn
+460.656 515.280 103.104 37.560 re
+f
+0.000 0.000 0.000 scn
+1.000 1.000 1.000 scn
+48.240 492.000 51.552 23.280 re
+f
+0.000 0.000 0.000 scn
+1.000 1.000 1.000 scn
+99.792 492.000 360.864 23.280 re
+f
+0.000 0.000 0.000 scn
+1.000 1.000 1.000 scn
+460.656 492.000 103.104 23.280 re
+f
+0.000 0.000 0.000 scn
+0.5 w
+0.867 0.867 0.867 SCN
+48.240 552.840 m
+99.792 552.840 l
+S
+[ ] 0 d
+1.5 w
+0.867 0.867 0.867 SCN
+48.240 515.280 m
+99.792 515.280 l
+S
+[ ] 0 d
+0.5 w
+0.867 0.867 0.867 SCN
+48.240 553.090 m
+48.240 514.530 l
+S
+[ ] 0 d
+0.5 w
+0.867 0.867 0.867 SCN
+99.792 553.090 m
+99.792 514.530 l
+S
+[ ] 0 d
+1 w
+0.000 0.000 0.000 SCN
+0.200 0.200 0.200 scn
+
+BT
+51.24 537.0930000000005 Td
/F2.0 10.5 Tf
<48545450> Tj
ET
BT
-51.24 656.0130000000001 Td
+51.24 522.8130000000004 Td
/F2.0 10.5 Tf
<436f6465> Tj
ET
@@ -30880,26 +31348,26 @@ ET
0.000 0.000 0.000 scn
0.5 w
0.867 0.867 0.867 SCN
-99.792 686.040 m
-460.656 686.040 l
+99.792 552.840 m
+460.656 552.840 l
S
[ ] 0 d
1.5 w
0.867 0.867 0.867 SCN
-99.792 648.480 m
-460.656 648.480 l
+99.792 515.280 m
+460.656 515.280 l
S
[ ] 0 d
0.5 w
0.867 0.867 0.867 SCN
-99.792 686.290 m
-99.792 647.730 l
+99.792 553.090 m
+99.792 514.530 l
S
[ ] 0 d
0.5 w
0.867 0.867 0.867 SCN
-460.656 686.290 m
-460.656 647.730 l
+460.656 553.090 m
+460.656 514.530 l
S
[ ] 0 d
1 w
@@ -30907,7 +31375,7 @@ S
0.200 0.200 0.200 scn
BT
-102.792 670.2930000000001 Td
+102.792 537.0930000000005 Td
/F2.0 10.5 Tf
<4465736372697074696f6e> Tj
ET
@@ -30915,26 +31383,26 @@ ET
0.000 0.000 0.000 scn
0.5 w
0.867 0.867 0.867 SCN
-460.656 686.040 m
-563.760 686.040 l
+460.656 552.840 m
+563.760 552.840 l
S
[ ] 0 d
1.5 w
0.867 0.867 0.867 SCN
-460.656 648.480 m
-563.760 648.480 l
+460.656 515.280 m
+563.760 515.280 l
S
[ ] 0 d
0.5 w
0.867 0.867 0.867 SCN
-460.656 686.290 m
-460.656 647.730 l
+460.656 553.090 m
+460.656 514.530 l
S
[ ] 0 d
0.5 w
0.867 0.867 0.867 SCN
-563.760 686.290 m
-563.760 647.730 l
+563.760 553.090 m
+563.760 514.530 l
S
[ ] 0 d
1 w
@@ -30942,7 +31410,7 @@ S
0.200 0.200 0.200 scn
BT
-463.65600000000006 670.2930000000001 Td
+463.65600000000006 537.0930000000005 Td
/F2.0 10.5 Tf
<536368656d61> Tj
ET
@@ -30950,26 +31418,26 @@ ET
0.000 0.000 0.000 scn
0.5 w
0.867 0.867 0.867 SCN
-48.240 648.480 m
-99.792 648.480 l
+48.240 515.280 m
+99.792 515.280 l
S
[ ] 0 d
0.5 w
0.867 0.867 0.867 SCN
-48.240 625.200 m
-99.792 625.200 l
+48.240 492.000 m
+99.792 492.000 l
S
[ ] 0 d
0.5 w
0.867 0.867 0.867 SCN
-48.240 648.730 m
-48.240 624.950 l
+48.240 515.530 m
+48.240 491.750 l
S
[ ] 0 d
0.5 w
0.867 0.867 0.867 SCN
-99.792 648.730 m
-99.792 624.950 l
+99.792 515.530 m
+99.792 491.750 l
S
[ ] 0 d
1 w
@@ -30977,7 +31445,7 @@ S
0.200 0.200 0.200 scn
BT
-51.24 632.2330000000002 Td
+51.24 499.0330000000004 Td
/F2.0 10.5 Tf
<323030> Tj
ET
@@ -30985,26 +31453,26 @@ ET
0.000 0.000 0.000 scn
0.5 w
0.867 0.867 0.867 SCN
-99.792 648.480 m
-460.656 648.480 l
+99.792 515.280 m
+460.656 515.280 l
S
[ ] 0 d
0.5 w
0.867 0.867 0.867 SCN
-99.792 625.200 m
-460.656 625.200 l
+99.792 492.000 m
+460.656 492.000 l
S
[ ] 0 d
0.5 w
0.867 0.867 0.867 SCN
-99.792 648.730 m
-99.792 624.950 l
+99.792 515.530 m
+99.792 491.750 l
S
[ ] 0 d
0.5 w
0.867 0.867 0.867 SCN
-460.656 648.730 m
-460.656 624.950 l
+460.656 515.530 m
+460.656 491.750 l
S
[ ] 0 d
1 w
@@ -31012,7 +31480,7 @@ S
0.200 0.200 0.200 scn
BT
-102.792 632.2330000000002 Td
+102.792 499.0330000000004 Td
/F1.0 10.5 Tf
<4f75747075742074797065> Tj
ET
@@ -31020,26 +31488,26 @@ ET
0.000 0.000 0.000 scn
0.5 w
0.867 0.867 0.867 SCN
-460.656 648.480 m
-563.760 648.480 l
+460.656 515.280 m
+563.760 515.280 l
S
[ ] 0 d
0.5 w
0.867 0.867 0.867 SCN
-460.656 625.200 m
-563.760 625.200 l
+460.656 492.000 m
+563.760 492.000 l
S
[ ] 0 d
0.5 w
0.867 0.867 0.867 SCN
-460.656 648.730 m
-460.656 624.950 l
+460.656 515.530 m
+460.656 491.750 l
S
[ ] 0 d
0.5 w
0.867 0.867 0.867 SCN
-563.760 648.730 m
-563.760 624.950 l
+563.760 515.530 m
+563.760 491.750 l
S
[ ] 0 d
1 w
@@ -31047,7 +31515,7 @@ S
0.200 0.200 0.200 scn
BT
-463.65600000000006 632.2330000000002 Td
+463.65600000000006 499.0330000000004 Td
/F1.0 10.5 Tf
<737472696e67> Tj
ET
@@ -31057,9 +31525,9 @@ ET
0.200 0.200 0.200 SCN
BT
-48.24 595.6160000000003 Td
+48.24 462.41600000000045 Td
/F2.0 13 Tf
-<322e33392e322e2050726f6475636573> Tj
+<322e33392e332e20436f6e73756d6573> Tj
ET
0.000 0.000 0.000 SCN
@@ -31070,7 +31538,7 @@ ET
0.200 0.200 0.200 SCN
BT
-56.88050000000001 568.9560000000004 Td
+56.88050000000001 435.7560000000004 Td
/F1.0 10.5 Tf
<a5> Tj
ET
@@ -31083,7 +31551,344 @@ ET
0.694 0.129 0.275 SCN
BT
-66.24000000000001 571.1400000000004 Td
+66.24000000000001 437.94000000000045 Td
+/F4.0 10.5 Tf
+<706c61696e2f74657874> Tj
+ET
+
+0.000 0.000 0.000 SCN
+0.000 0.000 0.000 scn
+0.200 0.200 0.200 scn
+0.200 0.200 0.200 SCN
+
+BT
+48.24000000000001 406.1360000000004 Td
+/F2.0 13 Tf
+<322e33392e342e2050726f6475636573> Tj
+ET
+
+0.000 0.000 0.000 SCN
+0.000 0.000 0.000 scn
+
+-0.500 Tc
+0.200 0.200 0.200 scn
+0.200 0.200 0.200 SCN
+
+BT
+56.88050000000001 379.4760000000004 Td
+/F1.0 10.5 Tf
+<a5> Tj
+ET
+
+0.000 0.000 0.000 SCN
+0.000 0.000 0.000 scn
+
+0.000 Tc
+0.694 0.129 0.275 scn
+0.694 0.129 0.275 SCN
+
+BT
+66.24000000000001 381.6600000000004 Td
+/F4.0 10.5 Tf
+<6170706c69636174696f6e2f6a736f6e> Tj
+ET
+
+0.000 0.000 0.000 SCN
+0.000 0.000 0.000 scn
+0.200 0.200 0.200 scn
+0.200 0.200 0.200 SCN
+
+BT
+48.24000000000001 344.0160000000004 Td
+/F2.0 18 Tf
+[<322e34302e20474554202f76322f746f736361436f6e74726f6c4c6f6f702f67657454> 29.78515625 <6f73636154> 29.78515625 <656d706c617465>] TJ
+ET
+
+0.000 0.000 0.000 SCN
+0.000 0.000 0.000 scn
+0.200 0.200 0.200 scn
+0.200 0.200 0.200 SCN
+
+BT
+48.24000000000001 309.77600000000035 Td
+/F2.0 13 Tf
+<322e34302e312e20526573706f6e736573> Tj
+ET
+
+0.000 0.000 0.000 SCN
+0.000 0.000 0.000 scn
+1.000 1.000 1.000 scn
+48.240 257.520 51.552 37.560 re
+f
+0.000 0.000 0.000 scn
+1.000 1.000 1.000 scn
+99.792 257.520 360.864 37.560 re
+f
+0.000 0.000 0.000 scn
+1.000 1.000 1.000 scn
+460.656 257.520 103.104 37.560 re
+f
+0.000 0.000 0.000 scn
+1.000 1.000 1.000 scn
+48.240 234.240 51.552 23.280 re
+f
+0.000 0.000 0.000 scn
+1.000 1.000 1.000 scn
+99.792 234.240 360.864 23.280 re
+f
+0.000 0.000 0.000 scn
+1.000 1.000 1.000 scn
+460.656 234.240 103.104 23.280 re
+f
+0.000 0.000 0.000 scn
+0.5 w
+0.867 0.867 0.867 SCN
+48.240 295.080 m
+99.792 295.080 l
+S
+[ ] 0 d
+1.5 w
+0.867 0.867 0.867 SCN
+48.240 257.520 m
+99.792 257.520 l
+S
+[ ] 0 d
+0.5 w
+0.867 0.867 0.867 SCN
+48.240 295.330 m
+48.240 256.770 l
+S
+[ ] 0 d
+0.5 w
+0.867 0.867 0.867 SCN
+99.792 295.330 m
+99.792 256.770 l
+S
+[ ] 0 d
+1 w
+0.000 0.000 0.000 SCN
+0.200 0.200 0.200 scn
+
+BT
+51.24000000000001 279.3330000000003 Td
+/F2.0 10.5 Tf
+<48545450> Tj
+ET
+
+
+BT
+51.24000000000001 265.05300000000034 Td
+/F2.0 10.5 Tf
+<436f6465> Tj
+ET
+
+0.000 0.000 0.000 scn
+0.5 w
+0.867 0.867 0.867 SCN
+99.792 295.080 m
+460.656 295.080 l
+S
+[ ] 0 d
+1.5 w
+0.867 0.867 0.867 SCN
+99.792 257.520 m
+460.656 257.520 l
+S
+[ ] 0 d
+0.5 w
+0.867 0.867 0.867 SCN
+99.792 295.330 m
+99.792 256.770 l
+S
+[ ] 0 d
+0.5 w
+0.867 0.867 0.867 SCN
+460.656 295.330 m
+460.656 256.770 l
+S
+[ ] 0 d
+1 w
+0.000 0.000 0.000 SCN
+0.200 0.200 0.200 scn
+
+BT
+102.792 279.3330000000003 Td
+/F2.0 10.5 Tf
+<4465736372697074696f6e> Tj
+ET
+
+0.000 0.000 0.000 scn
+0.5 w
+0.867 0.867 0.867 SCN
+460.656 295.080 m
+563.760 295.080 l
+S
+[ ] 0 d
+1.5 w
+0.867 0.867 0.867 SCN
+460.656 257.520 m
+563.760 257.520 l
+S
+[ ] 0 d
+0.5 w
+0.867 0.867 0.867 SCN
+460.656 295.330 m
+460.656 256.770 l
+S
+[ ] 0 d
+0.5 w
+0.867 0.867 0.867 SCN
+563.760 295.330 m
+563.760 256.770 l
+S
+[ ] 0 d
+1 w
+0.000 0.000 0.000 SCN
+0.200 0.200 0.200 scn
+
+BT
+463.65600000000006 279.3330000000003 Td
+/F2.0 10.5 Tf
+<536368656d61> Tj
+ET
+
+0.000 0.000 0.000 scn
+0.5 w
+0.867 0.867 0.867 SCN
+48.240 257.520 m
+99.792 257.520 l
+S
+[ ] 0 d
+0.5 w
+0.867 0.867 0.867 SCN
+48.240 234.240 m
+99.792 234.240 l
+S
+[ ] 0 d
+0.5 w
+0.867 0.867 0.867 SCN
+48.240 257.770 m
+48.240 233.990 l
+S
+[ ] 0 d
+0.5 w
+0.867 0.867 0.867 SCN
+99.792 257.770 m
+99.792 233.990 l
+S
+[ ] 0 d
+1 w
+0.000 0.000 0.000 SCN
+0.200 0.200 0.200 scn
+
+BT
+51.24000000000001 241.27300000000034 Td
+/F2.0 10.5 Tf
+<323030> Tj
+ET
+
+0.000 0.000 0.000 scn
+0.5 w
+0.867 0.867 0.867 SCN
+99.792 257.520 m
+460.656 257.520 l
+S
+[ ] 0 d
+0.5 w
+0.867 0.867 0.867 SCN
+99.792 234.240 m
+460.656 234.240 l
+S
+[ ] 0 d
+0.5 w
+0.867 0.867 0.867 SCN
+99.792 257.770 m
+99.792 233.990 l
+S
+[ ] 0 d
+0.5 w
+0.867 0.867 0.867 SCN
+460.656 257.770 m
+460.656 233.990 l
+S
+[ ] 0 d
+1 w
+0.000 0.000 0.000 SCN
+0.200 0.200 0.200 scn
+
+BT
+102.792 241.27300000000034 Td
+/F1.0 10.5 Tf
+<4f75747075742074797065> Tj
+ET
+
+0.000 0.000 0.000 scn
+0.5 w
+0.867 0.867 0.867 SCN
+460.656 257.520 m
+563.760 257.520 l
+S
+[ ] 0 d
+0.5 w
+0.867 0.867 0.867 SCN
+460.656 234.240 m
+563.760 234.240 l
+S
+[ ] 0 d
+0.5 w
+0.867 0.867 0.867 SCN
+460.656 257.770 m
+460.656 233.990 l
+S
+[ ] 0 d
+0.5 w
+0.867 0.867 0.867 SCN
+563.760 257.770 m
+563.760 233.990 l
+S
+[ ] 0 d
+1 w
+0.000 0.000 0.000 SCN
+0.200 0.200 0.200 scn
+
+BT
+463.65600000000006 241.27300000000034 Td
+/F1.0 10.5 Tf
+<737472696e67> Tj
+ET
+
+0.000 0.000 0.000 scn
+0.200 0.200 0.200 scn
+0.200 0.200 0.200 SCN
+
+BT
+48.24000000000001 204.6560000000003 Td
+/F2.0 13 Tf
+<322e34302e322e2050726f6475636573> Tj
+ET
+
+0.000 0.000 0.000 SCN
+0.000 0.000 0.000 scn
+
+-0.500 Tc
+0.200 0.200 0.200 scn
+0.200 0.200 0.200 SCN
+
+BT
+56.88050000000001 177.9960000000003 Td
+/F1.0 10.5 Tf
+<a5> Tj
+ET
+
+0.000 0.000 0.000 SCN
+0.000 0.000 0.000 scn
+
+0.000 Tc
+0.694 0.129 0.275 scn
+0.694 0.129 0.275 SCN
+
+BT
+66.24000000000001 180.1800000000003 Td
/F4.0 10.5 Tf
<6170706c69636174696f6e2f6a736f6e> Tj
ET
@@ -31121,10 +31926,11 @@ endobj
/Contents 259 0 R
/Resources << /ProcSet [/PDF /Text /ImageB /ImageC /ImageI]
/Font << /F2.0 24 0 R
+/F3.0 26 0 R
/F1.0 8 0 R
/F4.0 35 0 R
>>
-/XObject << /Stamp1 728 0 R
+/XObject << /Stamp1 744 0 R
>>
>>
>>
@@ -31133,12 +31939,27 @@ endobj
[260 0 R /XYZ 0 792.0 null]
endobj
262 0 obj
-[260 0 R /XYZ 0 718.32 null]
+[260 0 R /XYZ 0 690.2400000000001 null]
endobj
263 0 obj
-[260 0 R /XYZ 0 613.2000000000003 null]
+[260 0 R /XYZ 0 585.1200000000003 null]
endobj
264 0 obj
+[260 0 R /XYZ 0 480.00000000000045 null]
+endobj
+265 0 obj
+[260 0 R /XYZ 0 423.7200000000004 null]
+endobj
+266 0 obj
+[260 0 R /XYZ 0 367.4400000000004 null]
+endobj
+267 0 obj
+[260 0 R /XYZ 0 327.36000000000035 null]
+endobj
+268 0 obj
+[260 0 R /XYZ 0 222.24000000000032 null]
+endobj
+269 0 obj
<< /Length 17145
>>
stream
@@ -32459,35 +33280,40 @@ Q
endstream
endobj
-265 0 obj
+270 0 obj
<< /Type /Page
/Parent 3 0 R
/MediaBox [0 0 612.0 792.0]
-/Contents 264 0 R
+/Contents 269 0 R
/Resources << /ProcSet [/PDF /Text /ImageB /ImageC /ImageI]
/Font << /F2.0 24 0 R
/F3.0 26 0 R
/F1.0 8 0 R
>>
-/XObject << /Stamp1 728 0 R
+/XObject << /Stamp1 744 0 R
>>
>>
-/Annots [270 0 R]
+/Annots [276 0 R]
>>
endobj
-266 0 obj
-[265 0 R /XYZ 0 792.0 null]
+271 0 obj
+[270 0 R /XYZ 0 792.0 null]
endobj
-267 0 obj
-[265 0 R /XYZ 0 712.0799999999999 null]
+272 0 obj
+[270 0 R /XYZ 0 712.0799999999999 null]
endobj
-268 0 obj
-[265 0 R /XYZ 0 524.04 null]
+273 0 obj
+[270 0 R /XYZ 0 524.04 null]
endobj
-269 0 obj
-[265 0 R /XYZ 0 335.99999999999994 null]
+274 0 obj
+[270 0 R /XYZ 0 335.99999999999994 null]
endobj
-270 0 obj
+275 0 obj
+<< /Limits [(_consumes_8) (_jsonnull)]
+/Names [(_consumes_8) 211 0 R (_consumes_9) 220 0 R (_definitions) 271 0 R (_dictionary) 274 0 R (_dictionaryelement) 279 0 R (_externalcomponent) 281 0 R (_externalcomponentstate) 285 0 R (_jsonarray) 286 0 R (_jsonelement) 294 0 R (_jsonnull) 302 0 R]
+>>
+endobj
+276 0 obj
<< /Border [0 0 0]
/Dest (_dictionaryelement)
/Subtype /Link
@@ -32495,7 +33321,7 @@ endobj
/Type /Annot
>>
endobj
-271 0 obj
+277 0 obj
<< /Length 19851
>>
stream
@@ -34064,31 +34890,26 @@ Q
endstream
endobj
-272 0 obj
+278 0 obj
<< /Type /Page
/Parent 3 0 R
/MediaBox [0 0 612.0 792.0]
-/Contents 271 0 R
+/Contents 277 0 R
/Resources << /ProcSet [/PDF /Text /ImageB /ImageC /ImageI]
/Font << /F2.0 24 0 R
/F3.0 26 0 R
/F1.0 8 0 R
>>
-/XObject << /Stamp1 728 0 R
+/XObject << /Stamp1 744 0 R
>>
>>
-/Annots [275 0 R]
+/Annots [280 0 R]
>>
endobj
-273 0 obj
-[272 0 R /XYZ 0 608.04 null]
-endobj
-274 0 obj
-<< /Limits [(_consumes_9) (_jsonobject)]
-/Names [(_consumes_9) 220 0 R (_definitions) 266 0 R (_dictionary) 269 0 R (_dictionaryelement) 273 0 R (_externalcomponent) 276 0 R (_externalcomponentstate) 280 0 R (_jsonarray) 281 0 R (_jsonelement) 289 0 R (_jsonnull) 297 0 R (_jsonobject) 307 0 R]
->>
+279 0 obj
+[278 0 R /XYZ 0 608.04 null]
endobj
-275 0 obj
+280 0 obj
<< /Border [0 0 0]
/Dest (_dictionary)
/Subtype /Link
@@ -34096,10 +34917,10 @@ endobj
/Type /Annot
>>
endobj
-276 0 obj
-[272 0 R /XYZ 0 157.07999999999998 null]
+281 0 obj
+[278 0 R /XYZ 0 157.07999999999998 null]
endobj
-277 0 obj
+282 0 obj
<< /Length 20493
>>
stream
@@ -35670,23 +36491,23 @@ Q
endstream
endobj
-278 0 obj
+283 0 obj
<< /Type /Page
/Parent 3 0 R
/MediaBox [0 0 612.0 792.0]
-/Contents 277 0 R
+/Contents 282 0 R
/Resources << /ProcSet [/PDF /Text /ImageB /ImageC /ImageI]
/Font << /F2.0 24 0 R
/F3.0 26 0 R
/F1.0 8 0 R
>>
-/XObject << /Stamp1 728 0 R
+/XObject << /Stamp1 744 0 R
>>
>>
-/Annots [279 0 R 282 0 R 283 0 R]
+/Annots [284 0 R 287 0 R 288 0 R]
>>
endobj
-279 0 obj
+284 0 obj
<< /Border [0 0 0]
/Dest (_externalcomponentstate)
/Subtype /Link
@@ -35694,13 +36515,13 @@ endobj
/Type /Annot
>>
endobj
-280 0 obj
-[278 0 R /XYZ 0 683.1600000000001 null]
+285 0 obj
+[283 0 R /XYZ 0 683.1600000000001 null]
endobj
-281 0 obj
-[278 0 R /XYZ 0 495.1200000000002 null]
+286 0 obj
+[283 0 R /XYZ 0 495.1200000000002 null]
endobj
-282 0 obj
+287 0 obj
<< /Border [0 0 0]
/Dest (_jsonarray)
/Subtype /Link
@@ -35708,7 +36529,7 @@ endobj
/Type /Annot
>>
endobj
-283 0 obj
+288 0 obj
<< /Border [0 0 0]
/Dest (_jsonnull)
/Subtype /Link
@@ -35716,7 +36537,7 @@ endobj
/Type /Annot
>>
endobj
-284 0 obj
+289 0 obj
<< /Length 21354
>>
stream
@@ -37378,23 +38199,23 @@ Q
endstream
endobj
-285 0 obj
+290 0 obj
<< /Type /Page
/Parent 3 0 R
/MediaBox [0 0 612.0 792.0]
-/Contents 284 0 R
+/Contents 289 0 R
/Resources << /ProcSet [/PDF /Text /ImageB /ImageC /ImageI]
/Font << /F2.0 24 0 R
/F3.0 26 0 R
/F1.0 8 0 R
>>
-/XObject << /Stamp1 728 0 R
+/XObject << /Stamp1 744 0 R
>>
>>
-/Annots [286 0 R 287 0 R 288 0 R]
+/Annots [291 0 R 292 0 R 293 0 R]
>>
endobj
-286 0 obj
+291 0 obj
<< /Border [0 0 0]
/Dest (_jsonobject)
/Subtype /Link
@@ -37402,7 +38223,7 @@ endobj
/Type /Annot
>>
endobj
-287 0 obj
+292 0 obj
<< /Border [0 0 0]
/Dest (_jsonprimitive)
/Subtype /Link
@@ -37410,7 +38231,7 @@ endobj
/Type /Annot
>>
endobj
-288 0 obj
+293 0 obj
<< /Border [0 0 0]
/Dest (_number)
/Subtype /Link
@@ -37418,10 +38239,10 @@ endobj
/Type /Annot
>>
endobj
-289 0 obj
-[285 0 R /XYZ 0 345.1200000000003 null]
+294 0 obj
+[290 0 R /XYZ 0 345.1200000000003 null]
endobj
-290 0 obj
+295 0 obj
<< /Length 21772
>>
stream
@@ -39099,23 +39920,23 @@ Q
endstream
endobj
-291 0 obj
+296 0 obj
<< /Type /Page
/Parent 3 0 R
/MediaBox [0 0 612.0 792.0]
-/Contents 290 0 R
+/Contents 295 0 R
/Resources << /ProcSet [/PDF /Text /ImageB /ImageC /ImageI]
/Font << /F2.0 24 0 R
/F3.0 26 0 R
/F1.0 8 0 R
>>
-/XObject << /Stamp1 728 0 R
+/XObject << /Stamp1 744 0 R
>>
>>
-/Annots [292 0 R 293 0 R 294 0 R 295 0 R 296 0 R]
+/Annots [297 0 R 298 0 R 299 0 R 300 0 R 301 0 R]
>>
endobj
-292 0 obj
+297 0 obj
<< /Border [0 0 0]
/Dest (_jsonarray)
/Subtype /Link
@@ -39123,7 +39944,7 @@ endobj
/Type /Annot
>>
endobj
-293 0 obj
+298 0 obj
<< /Border [0 0 0]
/Dest (_jsonnull)
/Subtype /Link
@@ -39131,7 +39952,7 @@ endobj
/Type /Annot
>>
endobj
-294 0 obj
+299 0 obj
<< /Border [0 0 0]
/Dest (_jsonobject)
/Subtype /Link
@@ -39139,7 +39960,7 @@ endobj
/Type /Annot
>>
endobj
-295 0 obj
+300 0 obj
<< /Border [0 0 0]
/Dest (_jsonprimitive)
/Subtype /Link
@@ -39147,7 +39968,7 @@ endobj
/Type /Annot
>>
endobj
-296 0 obj
+301 0 obj
<< /Border [0 0 0]
/Dest (_number)
/Subtype /Link
@@ -39155,10 +39976,10 @@ endobj
/Type /Annot
>>
endobj
-297 0 obj
-[291 0 R /XYZ 0 194.88000000000017 null]
+302 0 obj
+[296 0 R /XYZ 0 194.88000000000017 null]
endobj
-298 0 obj
+303 0 obj
<< /Length 22905
>>
stream
@@ -40927,23 +41748,23 @@ Q
endstream
endobj
-299 0 obj
+304 0 obj
<< /Type /Page
/Parent 3 0 R
/MediaBox [0 0 612.0 792.0]
-/Contents 298 0 R
+/Contents 303 0 R
/Resources << /ProcSet [/PDF /Text /ImageB /ImageC /ImageI]
/Font << /F2.0 24 0 R
/F3.0 26 0 R
/F1.0 8 0 R
>>
-/XObject << /Stamp1 728 0 R
+/XObject << /Stamp1 744 0 R
>>
>>
-/Annots [300 0 R 301 0 R 302 0 R 303 0 R 304 0 R]
+/Annots [305 0 R 306 0 R 307 0 R 308 0 R 309 0 R]
>>
endobj
-300 0 obj
+305 0 obj
<< /Border [0 0 0]
/Dest (_jsonarray)
/Subtype /Link
@@ -40951,7 +41772,7 @@ endobj
/Type /Annot
>>
endobj
-301 0 obj
+306 0 obj
<< /Border [0 0 0]
/Dest (_jsonnull)
/Subtype /Link
@@ -40959,7 +41780,7 @@ endobj
/Type /Annot
>>
endobj
-302 0 obj
+307 0 obj
<< /Border [0 0 0]
/Dest (_jsonobject)
/Subtype /Link
@@ -40967,7 +41788,7 @@ endobj
/Type /Annot
>>
endobj
-303 0 obj
+308 0 obj
<< /Border [0 0 0]
/Dest (_jsonprimitive)
/Subtype /Link
@@ -40975,7 +41796,7 @@ endobj
/Type /Annot
>>
endobj
-304 0 obj
+309 0 obj
<< /Border [0 0 0]
/Dest (_number)
/Subtype /Link
@@ -40983,7 +41804,7 @@ endobj
/Type /Annot
>>
endobj
-305 0 obj
+310 0 obj
<< /Length 21624
>>
stream
@@ -42673,26 +43494,26 @@ Q
endstream
endobj
-306 0 obj
+311 0 obj
<< /Type /Page
/Parent 3 0 R
/MediaBox [0 0 612.0 792.0]
-/Contents 305 0 R
+/Contents 310 0 R
/Resources << /ProcSet [/PDF /Text /ImageB /ImageC /ImageI]
/Font << /F2.0 24 0 R
/F3.0 26 0 R
/F1.0 8 0 R
>>
-/XObject << /Stamp1 728 0 R
+/XObject << /Stamp1 744 0 R
>>
>>
-/Annots [308 0 R 309 0 R 310 0 R 311 0 R 312 0 R]
+/Annots [313 0 R 314 0 R 315 0 R 316 0 R 317 0 R]
>>
endobj
-307 0 obj
-[306 0 R /XYZ 0 792.0 null]
+312 0 obj
+[311 0 R /XYZ 0 792.0 null]
endobj
-308 0 obj
+313 0 obj
<< /Border [0 0 0]
/Dest (_jsonarray)
/Subtype /Link
@@ -42700,7 +43521,7 @@ endobj
/Type /Annot
>>
endobj
-309 0 obj
+314 0 obj
<< /Border [0 0 0]
/Dest (_jsonnull)
/Subtype /Link
@@ -42708,7 +43529,7 @@ endobj
/Type /Annot
>>
endobj
-310 0 obj
+315 0 obj
<< /Border [0 0 0]
/Dest (_jsonobject)
/Subtype /Link
@@ -42716,7 +43537,7 @@ endobj
/Type /Annot
>>
endobj
-311 0 obj
+316 0 obj
<< /Border [0 0 0]
/Dest (_jsonprimitive)
/Subtype /Link
@@ -42724,7 +43545,7 @@ endobj
/Type /Annot
>>
endobj
-312 0 obj
+317 0 obj
<< /Border [0 0 0]
/Dest (_number)
/Subtype /Link
@@ -42732,7 +43553,7 @@ endobj
/Type /Annot
>>
endobj
-313 0 obj
+318 0 obj
<< /Length 21701
>>
stream
@@ -44402,26 +45223,26 @@ Q
endstream
endobj
-314 0 obj
+319 0 obj
<< /Type /Page
/Parent 3 0 R
/MediaBox [0 0 612.0 792.0]
-/Contents 313 0 R
+/Contents 318 0 R
/Resources << /ProcSet [/PDF /Text /ImageB /ImageC /ImageI]
/Font << /F2.0 24 0 R
/F3.0 26 0 R
/F1.0 8 0 R
>>
-/XObject << /Stamp1 728 0 R
+/XObject << /Stamp1 744 0 R
>>
>>
-/Annots [316 0 R 317 0 R 318 0 R 319 0 R]
+/Annots [321 0 R 322 0 R 323 0 R 324 0 R]
>>
endobj
-315 0 obj
-[314 0 R /XYZ 0 608.0400000000002 null]
+320 0 obj
+[319 0 R /XYZ 0 608.0400000000002 null]
endobj
-316 0 obj
+321 0 obj
<< /Border [0 0 0]
/Dest (_jsonarray)
/Subtype /Link
@@ -44429,7 +45250,7 @@ endobj
/Type /Annot
>>
endobj
-317 0 obj
+322 0 obj
<< /Border [0 0 0]
/Dest (_jsonnull)
/Subtype /Link
@@ -44437,7 +45258,7 @@ endobj
/Type /Annot
>>
endobj
-318 0 obj
+323 0 obj
<< /Border [0 0 0]
/Dest (_jsonobject)
/Subtype /Link
@@ -44445,7 +45266,7 @@ endobj
/Type /Annot
>>
endobj
-319 0 obj
+324 0 obj
<< /Border [0 0 0]
/Dest (_jsonprimitive)
/Subtype /Link
@@ -44453,7 +45274,7 @@ endobj
/Type /Annot
>>
endobj
-320 0 obj
+325 0 obj
<< /Length 21618
>>
stream
@@ -46129,23 +46950,23 @@ Q
endstream
endobj
-321 0 obj
+326 0 obj
<< /Type /Page
/Parent 3 0 R
/MediaBox [0 0 612.0 792.0]
-/Contents 320 0 R
+/Contents 325 0 R
/Resources << /ProcSet [/PDF /Text /ImageB /ImageC /ImageI]
/Font << /F2.0 24 0 R
/F3.0 26 0 R
/F1.0 8 0 R
>>
-/XObject << /Stamp1 728 0 R
+/XObject << /Stamp1 744 0 R
>>
>>
-/Annots [322 0 R 324 0 R 325 0 R]
+/Annots [327 0 R 329 0 R 330 0 R]
>>
endobj
-322 0 obj
+327 0 obj
<< /Border [0 0 0]
/Dest (_number)
/Subtype /Link
@@ -46153,10 +46974,10 @@ endobj
/Type /Annot
>>
endobj
-323 0 obj
-[321 0 R /XYZ 0 345.1200000000003 null]
+328 0 obj
+[326 0 R /XYZ 0 345.1200000000003 null]
endobj
-324 0 obj
+329 0 obj
<< /Border [0 0 0]
/Dest (_externalcomponent)
/Subtype /Link
@@ -46164,7 +46985,7 @@ endobj
/Type /Annot
>>
endobj
-325 0 obj
+330 0 obj
<< /Border [0 0 0]
/Dest (_jsonobject)
/Subtype /Link
@@ -46172,7 +46993,7 @@ endobj
/Type /Annot
>>
endobj
-326 0 obj
+331 0 obj
<< /Length 23110
>>
stream
@@ -47921,23 +48742,23 @@ Q
endstream
endobj
-327 0 obj
+332 0 obj
<< /Type /Page
/Parent 3 0 R
/MediaBox [0 0 612.0 792.0]
-/Contents 326 0 R
+/Contents 331 0 R
/Resources << /ProcSet [/PDF /Text /ImageB /ImageC /ImageI]
/Font << /F2.0 24 0 R
/F3.0 26 0 R
/F1.0 8 0 R
>>
-/XObject << /Stamp1 728 0 R
+/XObject << /Stamp1 744 0 R
>>
>>
-/Annots [328 0 R 329 0 R 330 0 R 331 0 R 332 0 R 334 0 R]
+/Annots [333 0 R 334 0 R 335 0 R 336 0 R 337 0 R 340 0 R]
>>
endobj
-328 0 obj
+333 0 obj
<< /Border [0 0 0]
/Dest (_looplog)
/Subtype /Link
@@ -47945,7 +48766,7 @@ endobj
/Type /Annot
>>
endobj
-329 0 obj
+334 0 obj
<< /Border [0 0 0]
/Dest (_looptemplate)
/Subtype /Link
@@ -47953,7 +48774,7 @@ endobj
/Type /Annot
>>
endobj
-330 0 obj
+335 0 obj
<< /Border [0 0 0]
/Dest (_microservicepolicy)
/Subtype /Link
@@ -47961,7 +48782,7 @@ endobj
/Type /Annot
>>
endobj
-331 0 obj
+336 0 obj
<< /Border [0 0 0]
/Dest (_service)
/Subtype /Link
@@ -47969,7 +48790,7 @@ endobj
/Type /Annot
>>
endobj
-332 0 obj
+337 0 obj
<< /Border [0 0 0]
/Dest (_operationalpolicy)
/Subtype /Link
@@ -47977,10 +48798,15 @@ endobj
/Type /Annot
>>
endobj
-333 0 obj
-[327 0 R /XYZ 0 382.6799999999999 null]
+338 0 obj
+[332 0 R /XYZ 0 382.6799999999999 null]
endobj
-334 0 obj
+339 0 obj
+<< /Limits [(_jsonobject) (_parameters_14)]
+/Names [(_jsonobject) 312 0 R (_jsonprimitive) 320 0 R (_loop) 328 0 R (_loopelementmodel) 338 0 R (_looplog) 344 0 R (_looptemplate) 346 0 R (_looptemplateloopelementmodel) 351 0 R (_microservicepolicy) 354 0 R (_number) 362 0 R (_operationalpolicy) 365 0 R (_overview) 21 0 R (_parameters) 50 0 R (_parameters_10) 116 0 R (_parameters_11) 121 0 R (_parameters_12) 128 0 R (_parameters_13) 135 0 R (_parameters_14) 141 0 R]
+>>
+endobj
+340 0 obj
<< /Border [0 0 0]
/Dest (_policymodel)
/Subtype /Link
@@ -47988,7 +48814,7 @@ endobj
/Type /Annot
>>
endobj
-335 0 obj
+341 0 obj
<< /Length 20407
>>
stream
@@ -49565,23 +50391,23 @@ Q
endstream
endobj
-336 0 obj
+342 0 obj
<< /Type /Page
/Parent 3 0 R
/MediaBox [0 0 612.0 792.0]
-/Contents 335 0 R
+/Contents 341 0 R
/Resources << /ProcSet [/PDF /Text /ImageB /ImageC /ImageI]
/Font << /F2.0 24 0 R
/F3.0 26 0 R
/F1.0 8 0 R
>>
-/XObject << /Stamp1 728 0 R
+/XObject << /Stamp1 744 0 R
>>
>>
-/Annots [337 0 R 340 0 R]
+/Annots [343 0 R 345 0 R]
>>
endobj
-337 0 obj
+343 0 obj
<< /Border [0 0 0]
/Dest (_looptemplateloopelementmodel)
/Subtype /Link
@@ -49589,15 +50415,10 @@ endobj
/Type /Annot
>>
endobj
-338 0 obj
-[336 0 R /XYZ 0 570.48 null]
-endobj
-339 0 obj
-<< /Limits [(_jsonprimitive) (_parameters_14)]
-/Names [(_jsonprimitive) 315 0 R (_loop) 323 0 R (_loopelementmodel) 333 0 R (_looplog) 338 0 R (_looptemplate) 341 0 R (_looptemplateloopelementmodel) 346 0 R (_microservicepolicy) 349 0 R (_number) 357 0 R (_operationalpolicy) 360 0 R (_overview) 21 0 R (_parameters) 50 0 R (_parameters_10) 116 0 R (_parameters_11) 121 0 R (_parameters_12) 128 0 R (_parameters_13) 135 0 R (_parameters_14) 141 0 R]
->>
+344 0 obj
+[342 0 R /XYZ 0 570.48 null]
endobj
-340 0 obj
+345 0 obj
<< /Border [0 0 0]
/Dest (_loop)
/Subtype /Link
@@ -49605,10 +50426,10 @@ endobj
/Type /Annot
>>
endobj
-341 0 obj
-[336 0 R /XYZ 0 269.76000000000005 null]
+346 0 obj
+[342 0 R /XYZ 0 269.76000000000005 null]
endobj
-342 0 obj
+347 0 obj
<< /Length 21073
>>
stream
@@ -51209,23 +52030,23 @@ Q
endstream
endobj
-343 0 obj
+348 0 obj
<< /Type /Page
/Parent 3 0 R
/MediaBox [0 0 612.0 792.0]
-/Contents 342 0 R
+/Contents 347 0 R
/Resources << /ProcSet [/PDF /Text /ImageB /ImageC /ImageI]
/Font << /F2.0 24 0 R
/F3.0 26 0 R
/F1.0 8 0 R
>>
-/XObject << /Stamp1 728 0 R
+/XObject << /Stamp1 744 0 R
>>
>>
-/Annots [344 0 R 345 0 R 347 0 R 348 0 R 350 0 R]
+/Annots [349 0 R 350 0 R 352 0 R 353 0 R 355 0 R]
>>
endobj
-344 0 obj
+349 0 obj
<< /Border [0 0 0]
/Dest (_looptemplateloopelementmodel)
/Subtype /Link
@@ -51233,7 +52054,7 @@ endobj
/Type /Annot
>>
endobj
-345 0 obj
+350 0 obj
<< /Border [0 0 0]
/Dest (_service)
/Subtype /Link
@@ -51241,10 +52062,10 @@ endobj
/Type /Annot
>>
endobj
-346 0 obj
-[343 0 R /XYZ 0 420.23999999999995 null]
+351 0 obj
+[348 0 R /XYZ 0 420.23999999999995 null]
endobj
-347 0 obj
+352 0 obj
<< /Border [0 0 0]
/Dest (_loopelementmodel)
/Subtype /Link
@@ -51252,7 +52073,7 @@ endobj
/Type /Annot
>>
endobj
-348 0 obj
+353 0 obj
<< /Border [0 0 0]
/Dest (_looptemplate)
/Subtype /Link
@@ -51260,10 +52081,10 @@ endobj
/Type /Annot
>>
endobj
-349 0 obj
-[343 0 R /XYZ 0 232.19999999999987 null]
+354 0 obj
+[348 0 R /XYZ 0 232.19999999999987 null]
endobj
-350 0 obj
+355 0 obj
<< /Border [0 0 0]
/Dest (_jsonobject)
/Subtype /Link
@@ -51271,7 +52092,7 @@ endobj
/Type /Annot
>>
endobj
-351 0 obj
+356 0 obj
<< /Length 19715
>>
stream
@@ -52809,23 +53630,23 @@ Q
endstream
endobj
-352 0 obj
+357 0 obj
<< /Type /Page
/Parent 3 0 R
/MediaBox [0 0 612.0 792.0]
-/Contents 351 0 R
+/Contents 356 0 R
/Resources << /ProcSet [/PDF /Text /ImageB /ImageC /ImageI]
/Font << /F2.0 24 0 R
/F3.0 26 0 R
/F1.0 8 0 R
>>
-/XObject << /Stamp1 728 0 R
+/XObject << /Stamp1 744 0 R
>>
>>
-/Annots [353 0 R 354 0 R 355 0 R 356 0 R]
+/Annots [358 0 R 359 0 R 360 0 R 361 0 R]
>>
endobj
-353 0 obj
+358 0 obj
<< /Border [0 0 0]
/Dest (_jsonobject)
/Subtype /Link
@@ -52833,7 +53654,7 @@ endobj
/Type /Annot
>>
endobj
-354 0 obj
+359 0 obj
<< /Border [0 0 0]
/Dest (_loopelementmodel)
/Subtype /Link
@@ -52841,7 +53662,7 @@ endobj
/Type /Annot
>>
endobj
-355 0 obj
+360 0 obj
<< /Border [0 0 0]
/Dest (_policymodel)
/Subtype /Link
@@ -52849,7 +53670,7 @@ endobj
/Type /Annot
>>
endobj
-356 0 obj
+361 0 obj
<< /Border [0 0 0]
/Dest (_loop)
/Subtype /Link
@@ -52857,10 +53678,10 @@ endobj
/Type /Annot
>>
endobj
-357 0 obj
-[352 0 R /XYZ 0 157.3200000000001 null]
+362 0 obj
+[357 0 R /XYZ 0 157.3200000000001 null]
endobj
-358 0 obj
+363 0 obj
<< /Length 20544
>>
stream
@@ -54459,26 +55280,26 @@ Q
endstream
endobj
-359 0 obj
+364 0 obj
<< /Type /Page
/Parent 3 0 R
/MediaBox [0 0 612.0 792.0]
-/Contents 358 0 R
+/Contents 363 0 R
/Resources << /ProcSet [/PDF /Text /ImageB /ImageC /ImageI]
/Font << /F2.0 24 0 R
/F3.0 26 0 R
/F1.0 8 0 R
>>
-/XObject << /Stamp1 728 0 R
+/XObject << /Stamp1 744 0 R
>>
>>
-/Annots [361 0 R 362 0 R 363 0 R 364 0 R 365 0 R]
+/Annots [366 0 R 367 0 R 368 0 R 369 0 R 370 0 R]
>>
endobj
-360 0 obj
-[359 0 R /XYZ 0 792.0 null]
+365 0 obj
+[364 0 R /XYZ 0 792.0 null]
endobj
-361 0 obj
+366 0 obj
<< /Border [0 0 0]
/Dest (_jsonobject)
/Subtype /Link
@@ -54486,7 +55307,7 @@ endobj
/Type /Annot
>>
endobj
-362 0 obj
+367 0 obj
<< /Border [0 0 0]
/Dest (_jsonobject)
/Subtype /Link
@@ -54494,7 +55315,7 @@ endobj
/Type /Annot
>>
endobj
-363 0 obj
+368 0 obj
<< /Border [0 0 0]
/Dest (_loop)
/Subtype /Link
@@ -54502,7 +55323,7 @@ endobj
/Type /Annot
>>
endobj
-364 0 obj
+369 0 obj
<< /Border [0 0 0]
/Dest (_loopelementmodel)
/Subtype /Link
@@ -54510,7 +55331,7 @@ endobj
/Type /Annot
>>
endobj
-365 0 obj
+370 0 obj
<< /Border [0 0 0]
/Dest (_policymodel)
/Subtype /Link
@@ -54518,10 +55339,10 @@ endobj
/Type /Annot
>>
endobj
-366 0 obj
-[359 0 R /XYZ 0 232.32 null]
+371 0 obj
+[364 0 R /XYZ 0 232.32 null]
endobj
-367 0 obj
+372 0 obj
<< /Length 17013
>>
stream
@@ -55845,23 +56666,23 @@ Q
endstream
endobj
-368 0 obj
+373 0 obj
<< /Type /Page
/Parent 3 0 R
/MediaBox [0 0 612.0 792.0]
-/Contents 367 0 R
+/Contents 372 0 R
/Resources << /ProcSet [/PDF /Text /ImageB /ImageC /ImageI]
/Font << /F2.0 24 0 R
/F3.0 26 0 R
/F1.0 8 0 R
>>
-/XObject << /Stamp1 728 0 R
+/XObject << /Stamp1 744 0 R
>>
>>
-/Annots [369 0 R 370 0 R 372 0 R 373 0 R]
+/Annots [374 0 R 375 0 R 378 0 R 379 0 R]
>>
endobj
-369 0 obj
+374 0 obj
<< /Border [0 0 0]
/Dest (_jsonobject)
/Subtype /Link
@@ -55869,7 +56690,7 @@ endobj
/Type /Annot
>>
endobj
-370 0 obj
+375 0 obj
<< /Border [0 0 0]
/Dest (_loopelementmodel)
/Subtype /Link
@@ -55877,10 +56698,15 @@ endobj
/Type /Annot
>>
endobj
-371 0 obj
-[368 0 R /XYZ 0 457.8 null]
+376 0 obj
+[373 0 R /XYZ 0 457.8 null]
endobj
-372 0 obj
+377 0 obj
+<< /Limits [(_responses_38) (_uri_scheme)]
+/Names [(_responses_38) 256 0 R (_responses_39) 263 0 R (_responses_4) 46 0 R (_responses_40) 267 0 R (_responses_5) 52 0 R (_responses_6) 59 0 R (_responses_7) 65 0 R (_responses_8) 71 0 R (_responses_9) 79 0 R (_service) 376 0 R (_uri_scheme) 27 0 R]
+>>
+endobj
+378 0 obj
<< /Border [0 0 0]
/Dest (_jsonobject)
/Subtype /Link
@@ -55888,7 +56714,7 @@ endobj
/Type /Annot
>>
endobj
-373 0 obj
+379 0 obj
<< /Border [0 0 0]
/Dest (_jsonobject)
/Subtype /Link
@@ -55896,7 +56722,7 @@ endobj
/Type /Annot
>>
endobj
-374 0 obj
+380 0 obj
<< /Border [0 0 0]
/Dest (_overview)
/Subtype /Link
@@ -55904,7 +56730,7 @@ endobj
/Type /Annot
>>
endobj
-375 0 obj
+381 0 obj
<< /Border [0 0 0]
/Dest (_overview)
/Subtype /Link
@@ -55912,7 +56738,7 @@ endobj
/Type /Annot
>>
endobj
-376 0 obj
+382 0 obj
<< /Border [0 0 0]
/Dest (_version_information)
/Subtype /Link
@@ -55920,7 +56746,7 @@ endobj
/Type /Annot
>>
endobj
-377 0 obj
+383 0 obj
<< /Border [0 0 0]
/Dest (_version_information)
/Subtype /Link
@@ -55928,7 +56754,7 @@ endobj
/Type /Annot
>>
endobj
-378 0 obj
+384 0 obj
<< /Border [0 0 0]
/Dest (_uri_scheme)
/Subtype /Link
@@ -55936,7 +56762,7 @@ endobj
/Type /Annot
>>
endobj
-379 0 obj
+385 0 obj
<< /Border [0 0 0]
/Dest (_uri_scheme)
/Subtype /Link
@@ -55944,7 +56770,7 @@ endobj
/Type /Annot
>>
endobj
-380 0 obj
+386 0 obj
<< /Border [0 0 0]
/Dest (_paths)
/Subtype /Link
@@ -55952,7 +56778,7 @@ endobj
/Type /Annot
>>
endobj
-381 0 obj
+387 0 obj
<< /Border [0 0 0]
/Dest (_paths)
/Subtype /Link
@@ -55960,23 +56786,23 @@ endobj
/Type /Annot
>>
endobj
-382 0 obj
+388 0 obj
<< /Border [0 0 0]
-/Dest (_verb116)
+/Dest (_verb39)
/Subtype /Link
/Rect [60.24000000000001 621.7799999999997 181.64100000000002 636.0599999999998]
/Type /Annot
>>
endobj
-383 0 obj
+389 0 obj
<< /Border [0 0 0]
-/Dest (_verb116)
+/Dest (_verb39)
/Subtype /Link
/Rect [557.8905 621.7799999999997 563.76 636.0599999999998]
/Type /Annot
>>
endobj
-384 0 obj
+390 0 obj
<< /Border [0 0 0]
/Dest (_responses)
/Subtype /Link
@@ -55984,7 +56810,7 @@ endobj
/Type /Annot
>>
endobj
-385 0 obj
+391 0 obj
<< /Border [0 0 0]
/Dest (_responses)
/Subtype /Link
@@ -55992,7 +56818,7 @@ endobj
/Type /Annot
>>
endobj
-386 0 obj
+392 0 obj
<< /Border [0 0 0]
/Dest (_produces)
/Subtype /Link
@@ -56000,7 +56826,7 @@ endobj
/Type /Annot
>>
endobj
-387 0 obj
+393 0 obj
<< /Border [0 0 0]
/Dest (_produces)
/Subtype /Link
@@ -56008,23 +56834,23 @@ endobj
/Type /Annot
>>
endobj
-388 0 obj
+394 0 obj
<< /Border [0 0 0]
-/Dest (_verb117)
+/Dest (_verb40)
/Subtype /Link
/Rect [60.24000000000001 566.3399999999997 183.8775 580.6199999999998]
/Type /Annot
>>
endobj
-389 0 obj
+395 0 obj
<< /Border [0 0 0]
-/Dest (_verb117)
+/Dest (_verb40)
/Subtype /Link
/Rect [557.8905 566.3399999999997 563.76 580.6199999999998]
/Type /Annot
>>
endobj
-390 0 obj
+396 0 obj
<< /Border [0 0 0]
/Dest (_responses_2)
/Subtype /Link
@@ -56032,7 +56858,7 @@ endobj
/Type /Annot
>>
endobj
-391 0 obj
+397 0 obj
<< /Border [0 0 0]
/Dest (_responses_2)
/Subtype /Link
@@ -56040,7 +56866,7 @@ endobj
/Type /Annot
>>
endobj
-392 0 obj
+398 0 obj
<< /Border [0 0 0]
/Dest (_produces_2)
/Subtype /Link
@@ -56048,7 +56874,7 @@ endobj
/Type /Annot
>>
endobj
-393 0 obj
+399 0 obj
<< /Border [0 0 0]
/Dest (_produces_2)
/Subtype /Link
@@ -56056,23 +56882,23 @@ endobj
/Type /Annot
>>
endobj
-394 0 obj
+400 0 obj
<< /Border [0 0 0]
-/Dest (_verb115)
+/Dest (_verb38)
/Subtype /Link
/Rect [60.24000000000001 510.89999999999975 212.98350000000002 525.1799999999997]
/Type /Annot
>>
endobj
-395 0 obj
+401 0 obj
<< /Border [0 0 0]
-/Dest (_verb115)
+/Dest (_verb38)
/Subtype /Link
/Rect [557.8905 510.89999999999975 563.76 525.1799999999997]
/Type /Annot
>>
endobj
-396 0 obj
+402 0 obj
<< /Border [0 0 0]
/Dest (_responses_3)
/Subtype /Link
@@ -56080,7 +56906,7 @@ endobj
/Type /Annot
>>
endobj
-397 0 obj
+403 0 obj
<< /Border [0 0 0]
/Dest (_responses_3)
/Subtype /Link
@@ -56088,7 +56914,7 @@ endobj
/Type /Annot
>>
endobj
-398 0 obj
+404 0 obj
<< /Border [0 0 0]
/Dest (_produces_3)
/Subtype /Link
@@ -56096,7 +56922,7 @@ endobj
/Type /Annot
>>
endobj
-399 0 obj
+405 0 obj
<< /Border [0 0 0]
/Dest (_produces_3)
/Subtype /Link
@@ -56104,23 +56930,23 @@ endobj
/Type /Annot
>>
endobj
-400 0 obj
+406 0 obj
<< /Border [0 0 0]
-/Dest (_verb99)
+/Dest (_verb21)
/Subtype /Link
/Rect [60.24000000000001 455.4599999999997 172.716 469.73999999999967]
/Type /Annot
>>
endobj
-401 0 obj
+407 0 obj
<< /Border [0 0 0]
-/Dest (_verb99)
+/Dest (_verb21)
/Subtype /Link
/Rect [557.8905 455.4599999999997 563.76 469.73999999999967]
/Type /Annot
>>
endobj
-402 0 obj
+408 0 obj
<< /Border [0 0 0]
/Dest (_responses_4)
/Subtype /Link
@@ -56128,7 +56954,7 @@ endobj
/Type /Annot
>>
endobj
-403 0 obj
+409 0 obj
<< /Border [0 0 0]
/Dest (_responses_4)
/Subtype /Link
@@ -56136,7 +56962,7 @@ endobj
/Type /Annot
>>
endobj
-404 0 obj
+410 0 obj
<< /Border [0 0 0]
/Dest (_produces_4)
/Subtype /Link
@@ -56144,7 +56970,7 @@ endobj
/Type /Annot
>>
endobj
-405 0 obj
+411 0 obj
<< /Border [0 0 0]
/Dest (_produces_4)
/Subtype /Link
@@ -56152,23 +56978,23 @@ endobj
/Type /Annot
>>
endobj
-406 0 obj
+412 0 obj
<< /Border [0 0 0]
-/Dest (_verb102)
+/Dest (_verb24)
/Subtype /Link
/Rect [60.24000000000001 400.01999999999964 172.548 414.2999999999996]
/Type /Annot
>>
endobj
-407 0 obj
+413 0 obj
<< /Border [0 0 0]
-/Dest (_verb102)
+/Dest (_verb24)
/Subtype /Link
/Rect [557.8905 400.01999999999964 563.76 414.2999999999996]
/Type /Annot
>>
endobj
-408 0 obj
+414 0 obj
<< /Border [0 0 0]
/Dest (_parameters)
/Subtype /Link
@@ -56176,7 +57002,7 @@ endobj
/Type /Annot
>>
endobj
-409 0 obj
+415 0 obj
<< /Border [0 0 0]
/Dest (_parameters)
/Subtype /Link
@@ -56184,7 +57010,7 @@ endobj
/Type /Annot
>>
endobj
-410 0 obj
+416 0 obj
<< /Border [0 0 0]
/Dest (_responses_5)
/Subtype /Link
@@ -56192,7 +57018,7 @@ endobj
/Type /Annot
>>
endobj
-411 0 obj
+417 0 obj
<< /Border [0 0 0]
/Dest (_responses_5)
/Subtype /Link
@@ -56200,7 +57026,7 @@ endobj
/Type /Annot
>>
endobj
-412 0 obj
+418 0 obj
<< /Border [0 0 0]
/Dest (_consumes)
/Subtype /Link
@@ -56208,7 +57034,7 @@ endobj
/Type /Annot
>>
endobj
-413 0 obj
+419 0 obj
<< /Border [0 0 0]
/Dest (_consumes)
/Subtype /Link
@@ -56216,7 +57042,7 @@ endobj
/Type /Annot
>>
endobj
-414 0 obj
+420 0 obj
<< /Border [0 0 0]
/Dest (_produces_5)
/Subtype /Link
@@ -56224,7 +57050,7 @@ endobj
/Type /Annot
>>
endobj
-415 0 obj
+421 0 obj
<< /Border [0 0 0]
/Dest (_produces_5)
/Subtype /Link
@@ -56232,23 +57058,23 @@ endobj
/Type /Annot
>>
endobj
-416 0 obj
+422 0 obj
<< /Border [0 0 0]
-/Dest (_verb100)
+/Dest (_verb22)
/Subtype /Link
/Rect [60.24000000000001 307.61999999999955 263.25750000000005 321.8999999999995]
/Type /Annot
>>
endobj
-417 0 obj
+423 0 obj
<< /Border [0 0 0]
-/Dest (_verb100)
+/Dest (_verb22)
/Subtype /Link
/Rect [557.8905 307.61999999999955 563.76 321.8999999999995]
/Type /Annot
>>
endobj
-418 0 obj
+424 0 obj
<< /Border [0 0 0]
/Dest (_responses_6)
/Subtype /Link
@@ -56256,7 +57082,7 @@ endobj
/Type /Annot
>>
endobj
-419 0 obj
+425 0 obj
<< /Border [0 0 0]
/Dest (_responses_6)
/Subtype /Link
@@ -56264,7 +57090,7 @@ endobj
/Type /Annot
>>
endobj
-420 0 obj
+426 0 obj
<< /Border [0 0 0]
/Dest (_produces_6)
/Subtype /Link
@@ -56272,7 +57098,7 @@ endobj
/Type /Annot
>>
endobj
-421 0 obj
+427 0 obj
<< /Border [0 0 0]
/Dest (_produces_6)
/Subtype /Link
@@ -56280,23 +57106,23 @@ endobj
/Type /Annot
>>
endobj
-422 0 obj
+428 0 obj
<< /Border [0 0 0]
-/Dest (_verb101)
+/Dest (_verb23)
/Subtype /Link
/Rect [60.24000000000001 252.17999999999947 265.76700000000005 266.45999999999947]
/Type /Annot
>>
endobj
-423 0 obj
+429 0 obj
<< /Border [0 0 0]
-/Dest (_verb101)
+/Dest (_verb23)
/Subtype /Link
/Rect [557.8905 252.17999999999947 563.76 266.45999999999947]
/Type /Annot
>>
endobj
-424 0 obj
+430 0 obj
<< /Border [0 0 0]
/Dest (_parameters_2)
/Subtype /Link
@@ -56304,7 +57130,7 @@ endobj
/Type /Annot
>>
endobj
-425 0 obj
+431 0 obj
<< /Border [0 0 0]
/Dest (_parameters_2)
/Subtype /Link
@@ -56312,7 +57138,7 @@ endobj
/Type /Annot
>>
endobj
-426 0 obj
+432 0 obj
<< /Border [0 0 0]
/Dest (_responses_7)
/Subtype /Link
@@ -56320,7 +57146,7 @@ endobj
/Type /Annot
>>
endobj
-427 0 obj
+433 0 obj
<< /Border [0 0 0]
/Dest (_responses_7)
/Subtype /Link
@@ -56328,7 +57154,7 @@ endobj
/Type /Annot
>>
endobj
-428 0 obj
+434 0 obj
<< /Border [0 0 0]
/Dest (_produces_7)
/Subtype /Link
@@ -56336,7 +57162,7 @@ endobj
/Type /Annot
>>
endobj
-429 0 obj
+435 0 obj
<< /Border [0 0 0]
/Dest (_produces_7)
/Subtype /Link
@@ -56344,23 +57170,23 @@ endobj
/Type /Annot
>>
endobj
-430 0 obj
+436 0 obj
<< /Border [0 0 0]
-/Dest (_verb103)
+/Dest (_verb25)
/Subtype /Link
/Rect [60.24000000000001 178.2599999999995 212.763 192.5399999999995]
/Type /Annot
>>
endobj
-431 0 obj
+437 0 obj
<< /Border [0 0 0]
-/Dest (_verb103)
+/Dest (_verb25)
/Subtype /Link
/Rect [557.8905 178.2599999999995 563.76 192.5399999999995]
/Type /Annot
>>
endobj
-432 0 obj
+438 0 obj
<< /Border [0 0 0]
/Dest (_parameters_3)
/Subtype /Link
@@ -56368,7 +57194,7 @@ endobj
/Type /Annot
>>
endobj
-433 0 obj
+439 0 obj
<< /Border [0 0 0]
/Dest (_parameters_3)
/Subtype /Link
@@ -56376,7 +57202,7 @@ endobj
/Type /Annot
>>
endobj
-434 0 obj
+440 0 obj
<< /Border [0 0 0]
/Dest (_responses_8)
/Subtype /Link
@@ -56384,7 +57210,7 @@ endobj
/Type /Annot
>>
endobj
-435 0 obj
+441 0 obj
<< /Border [0 0 0]
/Dest (_responses_8)
/Subtype /Link
@@ -56392,7 +57218,7 @@ endobj
/Type /Annot
>>
endobj
-436 0 obj
+442 0 obj
<< /Border [0 0 0]
/Dest (_consumes_2)
/Subtype /Link
@@ -56400,7 +57226,7 @@ endobj
/Type /Annot
>>
endobj
-437 0 obj
+443 0 obj
<< /Border [0 0 0]
/Dest (_consumes_2)
/Subtype /Link
@@ -56408,7 +57234,7 @@ endobj
/Type /Annot
>>
endobj
-438 0 obj
+444 0 obj
<< /Border [0 0 0]
/Dest (_produces_8)
/Subtype /Link
@@ -56416,7 +57242,7 @@ endobj
/Type /Annot
>>
endobj
-439 0 obj
+445 0 obj
<< /Border [0 0 0]
/Dest (_produces_8)
/Subtype /Link
@@ -56424,23 +57250,23 @@ endobj
/Type /Annot
>>
endobj
-440 0 obj
+446 0 obj
<< /Border [0 0 0]
-/Dest (_verb104)
+/Dest (_verb26)
/Subtype /Link
/Rect [60.24000000000001 85.85999999999956 232.70250000000001 100.13999999999956]
/Type /Annot
>>
endobj
-441 0 obj
+447 0 obj
<< /Border [0 0 0]
-/Dest (_verb104)
+/Dest (_verb26)
/Subtype /Link
/Rect [557.8905 85.85999999999956 563.76 100.13999999999956]
/Type /Annot
>>
endobj
-442 0 obj
+448 0 obj
<< /Border [0 0 0]
/Dest (_parameters_4)
/Subtype /Link
@@ -56448,7 +57274,7 @@ endobj
/Type /Annot
>>
endobj
-443 0 obj
+449 0 obj
<< /Border [0 0 0]
/Dest (_parameters_4)
/Subtype /Link
@@ -56456,7 +57282,7 @@ endobj
/Type /Annot
>>
endobj
-444 0 obj
+450 0 obj
<< /Border [0 0 0]
/Dest (_responses_9)
/Subtype /Link
@@ -56464,7 +57290,7 @@ endobj
/Type /Annot
>>
endobj
-445 0 obj
+451 0 obj
<< /Border [0 0 0]
/Dest (_responses_9)
/Subtype /Link
@@ -56472,7 +57298,7 @@ endobj
/Type /Annot
>>
endobj
-446 0 obj
+452 0 obj
<< /Border [0 0 0]
/Dest (_produces_9)
/Subtype /Link
@@ -56480,7 +57306,7 @@ endobj
/Type /Annot
>>
endobj
-447 0 obj
+453 0 obj
<< /Border [0 0 0]
/Dest (_produces_9)
/Subtype /Link
@@ -56488,23 +57314,23 @@ endobj
/Type /Annot
>>
endobj
-448 0 obj
+454 0 obj
<< /Border [0 0 0]
-/Dest (_verb105)
+/Dest (_verb27)
/Subtype /Link
/Rect [60.24000000000001 723.2399999999999 354.36600000000004 737.52]
/Type /Annot
>>
endobj
-449 0 obj
+455 0 obj
<< /Border [0 0 0]
-/Dest (_verb105)
+/Dest (_verb27)
/Subtype /Link
/Rect [557.8905 723.2399999999999 563.76 737.52]
/Type /Annot
>>
endobj
-450 0 obj
+456 0 obj
<< /Border [0 0 0]
/Dest (_parameters_5)
/Subtype /Link
@@ -56512,7 +57338,7 @@ endobj
/Type /Annot
>>
endobj
-451 0 obj
+457 0 obj
<< /Border [0 0 0]
/Dest (_parameters_5)
/Subtype /Link
@@ -56520,7 +57346,7 @@ endobj
/Type /Annot
>>
endobj
-452 0 obj
+458 0 obj
<< /Border [0 0 0]
/Dest (_responses_10)
/Subtype /Link
@@ -56528,7 +57354,7 @@ endobj
/Type /Annot
>>
endobj
-453 0 obj
+459 0 obj
<< /Border [0 0 0]
/Dest (_responses_10)
/Subtype /Link
@@ -56536,7 +57362,7 @@ endobj
/Type /Annot
>>
endobj
-454 0 obj
+460 0 obj
<< /Border [0 0 0]
/Dest (_produces_10)
/Subtype /Link
@@ -56544,7 +57370,7 @@ endobj
/Type /Annot
>>
endobj
-455 0 obj
+461 0 obj
<< /Border [0 0 0]
/Dest (_produces_10)
/Subtype /Link
@@ -56552,23 +57378,23 @@ endobj
/Type /Annot
>>
endobj
-456 0 obj
+462 0 obj
<< /Border [0 0 0]
-/Dest (_verb93)
+/Dest (_verb15)
/Subtype /Link
/Rect [60.24000000000001 649.3199999999998 531.1851796875001 663.5999999999999]
/Type /Annot
>>
endobj
-457 0 obj
+463 0 obj
<< /Border [0 0 0]
-/Dest (_verb93)
+/Dest (_verb15)
/Subtype /Link
/Rect [557.8905 649.3199999999998 563.76 663.5999999999999]
/Type /Annot
>>
endobj
-458 0 obj
+464 0 obj
<< /Border [0 0 0]
/Dest (_parameters_6)
/Subtype /Link
@@ -56576,7 +57402,7 @@ endobj
/Type /Annot
>>
endobj
-459 0 obj
+465 0 obj
<< /Border [0 0 0]
/Dest (_parameters_6)
/Subtype /Link
@@ -56584,7 +57410,7 @@ endobj
/Type /Annot
>>
endobj
-460 0 obj
+466 0 obj
<< /Border [0 0 0]
/Dest (_responses_11)
/Subtype /Link
@@ -56592,7 +57418,7 @@ endobj
/Type /Annot
>>
endobj
-461 0 obj
+467 0 obj
<< /Border [0 0 0]
/Dest (_responses_11)
/Subtype /Link
@@ -56600,7 +57426,7 @@ endobj
/Type /Annot
>>
endobj
-462 0 obj
+468 0 obj
<< /Border [0 0 0]
/Dest (_produces_11)
/Subtype /Link
@@ -56608,7 +57434,7 @@ endobj
/Type /Annot
>>
endobj
-463 0 obj
+469 0 obj
<< /Border [0 0 0]
/Dest (_produces_11)
/Subtype /Link
@@ -56616,23 +57442,23 @@ endobj
/Type /Annot
>>
endobj
-464 0 obj
+470 0 obj
<< /Border [0 0 0]
-/Dest (_verb95)
+/Dest (_verb17)
/Subtype /Link
/Rect [60.24000000000001 575.3999999999997 418.877794921875 589.6799999999998]
/Type /Annot
>>
endobj
-465 0 obj
+471 0 obj
<< /Border [0 0 0]
-/Dest (_verb95)
+/Dest (_verb17)
/Subtype /Link
/Rect [557.8905 575.3999999999997 563.76 589.6799999999998]
/Type /Annot
>>
endobj
-466 0 obj
+472 0 obj
<< /Border [0 0 0]
/Dest (_parameters_7)
/Subtype /Link
@@ -56640,7 +57466,7 @@ endobj
/Type /Annot
>>
endobj
-467 0 obj
+473 0 obj
<< /Border [0 0 0]
/Dest (_parameters_7)
/Subtype /Link
@@ -56648,7 +57474,7 @@ endobj
/Type /Annot
>>
endobj
-468 0 obj
+474 0 obj
<< /Border [0 0 0]
/Dest (_responses_12)
/Subtype /Link
@@ -56656,7 +57482,7 @@ endobj
/Type /Annot
>>
endobj
-469 0 obj
+475 0 obj
<< /Border [0 0 0]
/Dest (_responses_12)
/Subtype /Link
@@ -56664,7 +57490,7 @@ endobj
/Type /Annot
>>
endobj
-470 0 obj
+476 0 obj
<< /Border [0 0 0]
/Dest (_consumes_3)
/Subtype /Link
@@ -56672,7 +57498,7 @@ endobj
/Type /Annot
>>
endobj
-471 0 obj
+477 0 obj
<< /Border [0 0 0]
/Dest (_consumes_3)
/Subtype /Link
@@ -56680,7 +57506,7 @@ endobj
/Type /Annot
>>
endobj
-472 0 obj
+478 0 obj
<< /Border [0 0 0]
/Dest (_produces_12)
/Subtype /Link
@@ -56688,7 +57514,7 @@ endobj
/Type /Annot
>>
endobj
-473 0 obj
+479 0 obj
<< /Border [0 0 0]
/Dest (_produces_12)
/Subtype /Link
@@ -56696,23 +57522,23 @@ endobj
/Type /Annot
>>
endobj
-474 0 obj
+480 0 obj
<< /Border [0 0 0]
-/Dest (_verb91)
+/Dest (_verb13)
/Subtype /Link
/Rect [60.24000000000001 482.9999999999998 245.15550000000002 497.27999999999975]
/Type /Annot
>>
endobj
-475 0 obj
+481 0 obj
<< /Border [0 0 0]
-/Dest (_verb91)
+/Dest (_verb13)
/Subtype /Link
/Rect [557.8905 482.9999999999998 563.76 497.27999999999975]
/Type /Annot
>>
endobj
-476 0 obj
+482 0 obj
<< /Border [0 0 0]
/Dest (_parameters_8)
/Subtype /Link
@@ -56720,7 +57546,7 @@ endobj
/Type /Annot
>>
endobj
-477 0 obj
+483 0 obj
<< /Border [0 0 0]
/Dest (_parameters_8)
/Subtype /Link
@@ -56728,7 +57554,7 @@ endobj
/Type /Annot
>>
endobj
-478 0 obj
+484 0 obj
<< /Border [0 0 0]
/Dest (_responses_13)
/Subtype /Link
@@ -56736,7 +57562,7 @@ endobj
/Type /Annot
>>
endobj
-479 0 obj
+485 0 obj
<< /Border [0 0 0]
/Dest (_responses_13)
/Subtype /Link
@@ -56744,23 +57570,23 @@ endobj
/Type /Annot
>>
endobj
-480 0 obj
+486 0 obj
<< /Border [0 0 0]
-/Dest (_verb84)
+/Dest (_verb6)
/Subtype /Link
/Rect [60.24000000000001 427.5599999999997 248.431294921875 441.8399999999997]
/Type /Annot
>>
endobj
-481 0 obj
+487 0 obj
<< /Border [0 0 0]
-/Dest (_verb84)
+/Dest (_verb6)
/Subtype /Link
/Rect [557.8905 427.5599999999997 563.76 441.8399999999997]
/Type /Annot
>>
endobj
-482 0 obj
+488 0 obj
<< /Border [0 0 0]
/Dest (_parameters_9)
/Subtype /Link
@@ -56768,7 +57594,7 @@ endobj
/Type /Annot
>>
endobj
-483 0 obj
+489 0 obj
<< /Border [0 0 0]
/Dest (_parameters_9)
/Subtype /Link
@@ -56776,7 +57602,7 @@ endobj
/Type /Annot
>>
endobj
-484 0 obj
+490 0 obj
<< /Border [0 0 0]
/Dest (_responses_14)
/Subtype /Link
@@ -56784,7 +57610,7 @@ endobj
/Type /Annot
>>
endobj
-485 0 obj
+491 0 obj
<< /Border [0 0 0]
/Dest (_responses_14)
/Subtype /Link
@@ -56792,7 +57618,7 @@ endobj
/Type /Annot
>>
endobj
-486 0 obj
+492 0 obj
<< /Border [0 0 0]
/Dest (_produces_13)
/Subtype /Link
@@ -56800,7 +57626,7 @@ endobj
/Type /Annot
>>
endobj
-487 0 obj
+493 0 obj
<< /Border [0 0 0]
/Dest (_produces_13)
/Subtype /Link
@@ -56808,23 +57634,23 @@ endobj
/Type /Annot
>>
endobj
-488 0 obj
+494 0 obj
<< /Border [0 0 0]
-/Dest (_verb79)
+/Dest (_verb1)
/Subtype /Link
/Rect [60.24000000000001 353.63999999999965 214.8735 367.9199999999996]
/Type /Annot
>>
endobj
-489 0 obj
+495 0 obj
<< /Border [0 0 0]
-/Dest (_verb79)
+/Dest (_verb1)
/Subtype /Link
/Rect [557.8905 353.63999999999965 563.76 367.9199999999996]
/Type /Annot
>>
endobj
-490 0 obj
+496 0 obj
<< /Border [0 0 0]
/Dest (_responses_15)
/Subtype /Link
@@ -56832,7 +57658,7 @@ endobj
/Type /Annot
>>
endobj
-491 0 obj
+497 0 obj
<< /Border [0 0 0]
/Dest (_responses_15)
/Subtype /Link
@@ -56840,7 +57666,7 @@ endobj
/Type /Annot
>>
endobj
-492 0 obj
+498 0 obj
<< /Border [0 0 0]
/Dest (_produces_14)
/Subtype /Link
@@ -56848,7 +57674,7 @@ endobj
/Type /Annot
>>
endobj
-493 0 obj
+499 0 obj
<< /Border [0 0 0]
/Dest (_produces_14)
/Subtype /Link
@@ -56856,23 +57682,23 @@ endobj
/Type /Annot
>>
endobj
-494 0 obj
+500 0 obj
<< /Border [0 0 0]
-/Dest (_verb92)
+/Dest (_verb14)
/Subtype /Link
/Rect [60.24000000000001 298.1999999999996 259.467 312.47999999999956]
/Type /Annot
>>
endobj
-495 0 obj
+501 0 obj
<< /Border [0 0 0]
-/Dest (_verb92)
+/Dest (_verb14)
/Subtype /Link
/Rect [557.8905 298.1999999999996 563.76 312.47999999999956]
/Type /Annot
>>
endobj
-496 0 obj
+502 0 obj
<< /Border [0 0 0]
/Dest (_parameters_10)
/Subtype /Link
@@ -56880,7 +57706,7 @@ endobj
/Type /Annot
>>
endobj
-497 0 obj
+503 0 obj
<< /Border [0 0 0]
/Dest (_parameters_10)
/Subtype /Link
@@ -56888,7 +57714,7 @@ endobj
/Type /Annot
>>
endobj
-498 0 obj
+504 0 obj
<< /Border [0 0 0]
/Dest (_responses_16)
/Subtype /Link
@@ -56896,7 +57722,7 @@ endobj
/Type /Annot
>>
endobj
-499 0 obj
+505 0 obj
<< /Border [0 0 0]
/Dest (_responses_16)
/Subtype /Link
@@ -56904,7 +57730,7 @@ endobj
/Type /Annot
>>
endobj
-500 0 obj
+506 0 obj
<< /Border [0 0 0]
/Dest (_produces_15)
/Subtype /Link
@@ -56912,7 +57738,7 @@ endobj
/Type /Annot
>>
endobj
-501 0 obj
+507 0 obj
<< /Border [0 0 0]
/Dest (_produces_15)
/Subtype /Link
@@ -56920,23 +57746,23 @@ endobj
/Type /Annot
>>
endobj
-502 0 obj
+508 0 obj
<< /Border [0 0 0]
-/Dest (_verb85)
+/Dest (_verb7)
/Subtype /Link
/Rect [60.24000000000001 224.27999999999952 544.9515000000001 238.55999999999952]
/Type /Annot
>>
endobj
-503 0 obj
+509 0 obj
<< /Border [0 0 0]
-/Dest (_verb85)
+/Dest (_verb7)
/Subtype /Link
/Rect [557.8905 224.27999999999952 563.76 238.55999999999952]
/Type /Annot
>>
endobj
-504 0 obj
+510 0 obj
<< /Border [0 0 0]
/Dest (_parameters_11)
/Subtype /Link
@@ -56944,7 +57770,7 @@ endobj
/Type /Annot
>>
endobj
-505 0 obj
+511 0 obj
<< /Border [0 0 0]
/Dest (_parameters_11)
/Subtype /Link
@@ -56952,7 +57778,7 @@ endobj
/Type /Annot
>>
endobj
-506 0 obj
+512 0 obj
<< /Border [0 0 0]
/Dest (_responses_17)
/Subtype /Link
@@ -56960,7 +57786,7 @@ endobj
/Type /Annot
>>
endobj
-507 0 obj
+513 0 obj
<< /Border [0 0 0]
/Dest (_responses_17)
/Subtype /Link
@@ -56968,7 +57794,7 @@ endobj
/Type /Annot
>>
endobj
-508 0 obj
+514 0 obj
<< /Border [0 0 0]
/Dest (_produces_16)
/Subtype /Link
@@ -56976,7 +57802,7 @@ endobj
/Type /Annot
>>
endobj
-509 0 obj
+515 0 obj
<< /Border [0 0 0]
/Dest (_produces_16)
/Subtype /Link
@@ -56984,23 +57810,23 @@ endobj
/Type /Annot
>>
endobj
-510 0 obj
+516 0 obj
<< /Border [0 0 0]
-/Dest (_verb86)
+/Dest (_verb8)
/Subtype /Link
/Rect [60.24000000000001 150.35999999999956 530.5030898437501 164.63999999999956]
/Type /Annot
>>
endobj
-511 0 obj
+517 0 obj
<< /Border [0 0 0]
-/Dest (_verb86)
+/Dest (_verb8)
/Subtype /Link
/Rect [557.8905 150.35999999999956 563.76 164.63999999999956]
/Type /Annot
>>
endobj
-512 0 obj
+518 0 obj
<< /Border [0 0 0]
/Dest (_parameters_12)
/Subtype /Link
@@ -57008,7 +57834,7 @@ endobj
/Type /Annot
>>
endobj
-513 0 obj
+519 0 obj
<< /Border [0 0 0]
/Dest (_parameters_12)
/Subtype /Link
@@ -57016,7 +57842,7 @@ endobj
/Type /Annot
>>
endobj
-514 0 obj
+520 0 obj
<< /Border [0 0 0]
/Dest (_responses_18)
/Subtype /Link
@@ -57024,7 +57850,7 @@ endobj
/Type /Annot
>>
endobj
-515 0 obj
+521 0 obj
<< /Border [0 0 0]
/Dest (_responses_18)
/Subtype /Link
@@ -57032,7 +57858,7 @@ endobj
/Type /Annot
>>
endobj
-516 0 obj
+522 0 obj
<< /Border [0 0 0]
/Dest (_produces_17)
/Subtype /Link
@@ -57040,7 +57866,7 @@ endobj
/Type /Annot
>>
endobj
-517 0 obj
+523 0 obj
<< /Border [0 0 0]
/Dest (_produces_17)
/Subtype /Link
@@ -57048,39 +57874,39 @@ endobj
/Type /Annot
>>
endobj
-518 0 obj
+524 0 obj
<< /Border [0 0 0]
-/Dest (_verb94)
+/Dest (_verb16)
/Subtype /Link
/Rect [60.24000000000001 76.4399999999996 106.10400000000001 90.7199999999996]
/Type /Annot
>>
endobj
-519 0 obj
+525 0 obj
<< /Border [0 0 0]
-/Dest (_verb94)
+/Dest (_verb16)
/Subtype /Link
/Rect [60.24000000000001 57.959999999999596 553.6761796875 72.2399999999996]
/Type /Annot
>>
endobj
-520 0 obj
+526 0 obj
<< /Border [0 0 0]
-/Dest (_verb94)
+/Dest (_verb16)
/Subtype /Link
/Rect [60.24 741.7199999999999 80.26350000000001 756.0]
/Type /Annot
>>
endobj
-521 0 obj
+527 0 obj
<< /Border [0 0 0]
-/Dest (_verb94)
+/Dest (_verb16)
/Subtype /Link
/Rect [552.021 76.4399999999996 563.76 90.7199999999996]
/Type /Annot
>>
endobj
-522 0 obj
+528 0 obj
<< /Border [0 0 0]
/Dest (_parameters_13)
/Subtype /Link
@@ -57088,7 +57914,7 @@ endobj
/Type /Annot
>>
endobj
-523 0 obj
+529 0 obj
<< /Border [0 0 0]
/Dest (_parameters_13)
/Subtype /Link
@@ -57096,7 +57922,7 @@ endobj
/Type /Annot
>>
endobj
-524 0 obj
+530 0 obj
<< /Border [0 0 0]
/Dest (_responses_19)
/Subtype /Link
@@ -57104,7 +57930,7 @@ endobj
/Type /Annot
>>
endobj
-525 0 obj
+531 0 obj
<< /Border [0 0 0]
/Dest (_responses_19)
/Subtype /Link
@@ -57112,7 +57938,7 @@ endobj
/Type /Annot
>>
endobj
-526 0 obj
+532 0 obj
<< /Border [0 0 0]
/Dest (_produces_18)
/Subtype /Link
@@ -57120,7 +57946,7 @@ endobj
/Type /Annot
>>
endobj
-527 0 obj
+533 0 obj
<< /Border [0 0 0]
/Dest (_produces_18)
/Subtype /Link
@@ -57128,23 +57954,23 @@ endobj
/Type /Annot
>>
endobj
-528 0 obj
+534 0 obj
<< /Border [0 0 0]
-/Dest (_verb89)
+/Dest (_verb11)
/Subtype /Link
/Rect [60.24000000000001 667.7999999999998 248.45250000000001 682.0799999999999]
/Type /Annot
>>
endobj
-529 0 obj
+535 0 obj
<< /Border [0 0 0]
-/Dest (_verb89)
+/Dest (_verb11)
/Subtype /Link
/Rect [552.021 667.7999999999998 563.76 682.0799999999999]
/Type /Annot
>>
endobj
-530 0 obj
+536 0 obj
<< /Border [0 0 0]
/Dest (_parameters_14)
/Subtype /Link
@@ -57152,7 +57978,7 @@ endobj
/Type /Annot
>>
endobj
-531 0 obj
+537 0 obj
<< /Border [0 0 0]
/Dest (_parameters_14)
/Subtype /Link
@@ -57160,7 +57986,7 @@ endobj
/Type /Annot
>>
endobj
-532 0 obj
+538 0 obj
<< /Border [0 0 0]
/Dest (_responses_20)
/Subtype /Link
@@ -57168,7 +57994,7 @@ endobj
/Type /Annot
>>
endobj
-533 0 obj
+539 0 obj
<< /Border [0 0 0]
/Dest (_responses_20)
/Subtype /Link
@@ -57176,7 +58002,7 @@ endobj
/Type /Annot
>>
endobj
-534 0 obj
+540 0 obj
<< /Border [0 0 0]
/Dest (_produces_19)
/Subtype /Link
@@ -57184,7 +58010,7 @@ endobj
/Type /Annot
>>
endobj
-535 0 obj
+541 0 obj
<< /Border [0 0 0]
/Dest (_produces_19)
/Subtype /Link
@@ -57192,23 +58018,23 @@ endobj
/Type /Annot
>>
endobj
-536 0 obj
+542 0 obj
<< /Border [0 0 0]
-/Dest (_verb88)
+/Dest (_verb10)
/Subtype /Link
/Rect [60.24000000000001 593.8799999999998 235.842 608.1599999999999]
/Type /Annot
>>
endobj
-537 0 obj
+543 0 obj
<< /Border [0 0 0]
-/Dest (_verb88)
+/Dest (_verb10)
/Subtype /Link
/Rect [552.021 593.8799999999998 563.76 608.1599999999999]
/Type /Annot
>>
endobj
-538 0 obj
+544 0 obj
<< /Border [0 0 0]
/Dest (_parameters_15)
/Subtype /Link
@@ -57216,7 +58042,7 @@ endobj
/Type /Annot
>>
endobj
-539 0 obj
+545 0 obj
<< /Border [0 0 0]
/Dest (_parameters_15)
/Subtype /Link
@@ -57224,7 +58050,7 @@ endobj
/Type /Annot
>>
endobj
-540 0 obj
+546 0 obj
<< /Border [0 0 0]
/Dest (_responses_21)
/Subtype /Link
@@ -57232,7 +58058,7 @@ endobj
/Type /Annot
>>
endobj
-541 0 obj
+547 0 obj
<< /Border [0 0 0]
/Dest (_responses_21)
/Subtype /Link
@@ -57240,7 +58066,7 @@ endobj
/Type /Annot
>>
endobj
-542 0 obj
+548 0 obj
<< /Border [0 0 0]
/Dest (_produces_20)
/Subtype /Link
@@ -57248,7 +58074,7 @@ endobj
/Type /Annot
>>
endobj
-543 0 obj
+549 0 obj
<< /Border [0 0 0]
/Dest (_produces_20)
/Subtype /Link
@@ -57256,23 +58082,23 @@ endobj
/Type /Annot
>>
endobj
-544 0 obj
+550 0 obj
<< /Border [0 0 0]
-/Dest (_verb90)
+/Dest (_verb12)
/Subtype /Link
/Rect [60.24000000000001 519.9599999999998 249.70200000000003 534.2399999999998]
/Type /Annot
>>
endobj
-545 0 obj
+551 0 obj
<< /Border [0 0 0]
-/Dest (_verb90)
+/Dest (_verb12)
/Subtype /Link
/Rect [552.021 519.9599999999998 563.76 534.2399999999998]
/Type /Annot
>>
endobj
-546 0 obj
+552 0 obj
<< /Border [0 0 0]
/Dest (_parameters_16)
/Subtype /Link
@@ -57280,7 +58106,7 @@ endobj
/Type /Annot
>>
endobj
-547 0 obj
+553 0 obj
<< /Border [0 0 0]
/Dest (_parameters_16)
/Subtype /Link
@@ -57288,7 +58114,7 @@ endobj
/Type /Annot
>>
endobj
-548 0 obj
+554 0 obj
<< /Border [0 0 0]
/Dest (_responses_22)
/Subtype /Link
@@ -57296,7 +58122,7 @@ endobj
/Type /Annot
>>
endobj
-549 0 obj
+555 0 obj
<< /Border [0 0 0]
/Dest (_responses_22)
/Subtype /Link
@@ -57304,7 +58130,7 @@ endobj
/Type /Annot
>>
endobj
-550 0 obj
+556 0 obj
<< /Border [0 0 0]
/Dest (_produces_21)
/Subtype /Link
@@ -57312,7 +58138,7 @@ endobj
/Type /Annot
>>
endobj
-551 0 obj
+557 0 obj
<< /Border [0 0 0]
/Dest (_produces_21)
/Subtype /Link
@@ -57320,23 +58146,23 @@ endobj
/Type /Annot
>>
endobj
-552 0 obj
+558 0 obj
<< /Border [0 0 0]
-/Dest (_verb87)
+/Dest (_verb9)
/Subtype /Link
/Rect [60.24000000000001 446.03999999999974 261.860794921875 460.3199999999997]
/Type /Annot
>>
endobj
-553 0 obj
+559 0 obj
<< /Border [0 0 0]
-/Dest (_verb87)
+/Dest (_verb9)
/Subtype /Link
/Rect [552.021 446.03999999999974 563.76 460.3199999999997]
/Type /Annot
>>
endobj
-554 0 obj
+560 0 obj
<< /Border [0 0 0]
/Dest (_parameters_17)
/Subtype /Link
@@ -57344,7 +58170,7 @@ endobj
/Type /Annot
>>
endobj
-555 0 obj
+561 0 obj
<< /Border [0 0 0]
/Dest (_parameters_17)
/Subtype /Link
@@ -57352,7 +58178,7 @@ endobj
/Type /Annot
>>
endobj
-556 0 obj
+562 0 obj
<< /Border [0 0 0]
/Dest (_responses_23)
/Subtype /Link
@@ -57360,7 +58186,7 @@ endobj
/Type /Annot
>>
endobj
-557 0 obj
+563 0 obj
<< /Border [0 0 0]
/Dest (_responses_23)
/Subtype /Link
@@ -57368,7 +58194,7 @@ endobj
/Type /Annot
>>
endobj
-558 0 obj
+564 0 obj
<< /Border [0 0 0]
/Dest (_produces_22)
/Subtype /Link
@@ -57376,7 +58202,7 @@ endobj
/Type /Annot
>>
endobj
-559 0 obj
+565 0 obj
<< /Border [0 0 0]
/Dest (_produces_22)
/Subtype /Link
@@ -57384,23 +58210,23 @@ endobj
/Type /Annot
>>
endobj
-560 0 obj
+566 0 obj
<< /Border [0 0 0]
-/Dest (_verb81)
+/Dest (_verb3)
/Subtype /Link
/Rect [60.24000000000001 372.11999999999966 339.560794921875 386.39999999999964]
/Type /Annot
>>
endobj
-561 0 obj
+567 0 obj
<< /Border [0 0 0]
-/Dest (_verb81)
+/Dest (_verb3)
/Subtype /Link
/Rect [552.021 372.11999999999966 563.76 386.39999999999964]
/Type /Annot
>>
endobj
-562 0 obj
+568 0 obj
<< /Border [0 0 0]
/Dest (_parameters_18)
/Subtype /Link
@@ -57408,7 +58234,7 @@ endobj
/Type /Annot
>>
endobj
-563 0 obj
+569 0 obj
<< /Border [0 0 0]
/Dest (_parameters_18)
/Subtype /Link
@@ -57416,7 +58242,7 @@ endobj
/Type /Annot
>>
endobj
-564 0 obj
+570 0 obj
<< /Border [0 0 0]
/Dest (_responses_24)
/Subtype /Link
@@ -57424,7 +58250,7 @@ endobj
/Type /Annot
>>
endobj
-565 0 obj
+571 0 obj
<< /Border [0 0 0]
/Dest (_responses_24)
/Subtype /Link
@@ -57432,7 +58258,7 @@ endobj
/Type /Annot
>>
endobj
-566 0 obj
+572 0 obj
<< /Border [0 0 0]
/Dest (_consumes_4)
/Subtype /Link
@@ -57440,7 +58266,7 @@ endobj
/Type /Annot
>>
endobj
-567 0 obj
+573 0 obj
<< /Border [0 0 0]
/Dest (_consumes_4)
/Subtype /Link
@@ -57448,7 +58274,7 @@ endobj
/Type /Annot
>>
endobj
-568 0 obj
+574 0 obj
<< /Border [0 0 0]
/Dest (_produces_23)
/Subtype /Link
@@ -57456,7 +58282,7 @@ endobj
/Type /Annot
>>
endobj
-569 0 obj
+575 0 obj
<< /Border [0 0 0]
/Dest (_produces_23)
/Subtype /Link
@@ -57464,23 +58290,23 @@ endobj
/Type /Annot
>>
endobj
-570 0 obj
+576 0 obj
<< /Border [0 0 0]
-/Dest (_verb83)
+/Dest (_verb5)
/Subtype /Link
/Rect [60.24000000000001 279.7199999999996 350.38629492187505 293.99999999999955]
/Type /Annot
>>
endobj
-571 0 obj
+577 0 obj
<< /Border [0 0 0]
-/Dest (_verb83)
+/Dest (_verb5)
/Subtype /Link
/Rect [552.021 279.7199999999996 563.76 293.99999999999955]
/Type /Annot
>>
endobj
-572 0 obj
+578 0 obj
<< /Border [0 0 0]
/Dest (_parameters_19)
/Subtype /Link
@@ -57488,7 +58314,7 @@ endobj
/Type /Annot
>>
endobj
-573 0 obj
+579 0 obj
<< /Border [0 0 0]
/Dest (_parameters_19)
/Subtype /Link
@@ -57496,7 +58322,7 @@ endobj
/Type /Annot
>>
endobj
-574 0 obj
+580 0 obj
<< /Border [0 0 0]
/Dest (_responses_25)
/Subtype /Link
@@ -57504,7 +58330,7 @@ endobj
/Type /Annot
>>
endobj
-575 0 obj
+581 0 obj
<< /Border [0 0 0]
/Dest (_responses_25)
/Subtype /Link
@@ -57512,7 +58338,7 @@ endobj
/Type /Annot
>>
endobj
-576 0 obj
+582 0 obj
<< /Border [0 0 0]
/Dest (_consumes_5)
/Subtype /Link
@@ -57520,7 +58346,7 @@ endobj
/Type /Annot
>>
endobj
-577 0 obj
+583 0 obj
<< /Border [0 0 0]
/Dest (_consumes_5)
/Subtype /Link
@@ -57528,7 +58354,7 @@ endobj
/Type /Annot
>>
endobj
-578 0 obj
+584 0 obj
<< /Border [0 0 0]
/Dest (_produces_24)
/Subtype /Link
@@ -57536,7 +58362,7 @@ endobj
/Type /Annot
>>
endobj
-579 0 obj
+585 0 obj
<< /Border [0 0 0]
/Dest (_produces_24)
/Subtype /Link
@@ -57544,23 +58370,23 @@ endobj
/Type /Annot
>>
endobj
-580 0 obj
+586 0 obj
<< /Border [0 0 0]
-/Dest (_verb82)
+/Dest (_verb4)
/Subtype /Link
/Rect [60.24000000000001 187.31999999999954 352.81158984375 201.59999999999954]
/Type /Annot
>>
endobj
-581 0 obj
+587 0 obj
<< /Border [0 0 0]
-/Dest (_verb82)
+/Dest (_verb4)
/Subtype /Link
/Rect [552.021 187.31999999999954 563.76 201.59999999999954]
/Type /Annot
>>
endobj
-582 0 obj
+588 0 obj
<< /Border [0 0 0]
/Dest (_parameters_20)
/Subtype /Link
@@ -57568,7 +58394,7 @@ endobj
/Type /Annot
>>
endobj
-583 0 obj
+589 0 obj
<< /Border [0 0 0]
/Dest (_parameters_20)
/Subtype /Link
@@ -57576,7 +58402,7 @@ endobj
/Type /Annot
>>
endobj
-584 0 obj
+590 0 obj
<< /Border [0 0 0]
/Dest (_responses_26)
/Subtype /Link
@@ -57584,7 +58410,7 @@ endobj
/Type /Annot
>>
endobj
-585 0 obj
+591 0 obj
<< /Border [0 0 0]
/Dest (_responses_26)
/Subtype /Link
@@ -57592,7 +58418,7 @@ endobj
/Type /Annot
>>
endobj
-586 0 obj
+592 0 obj
<< /Border [0 0 0]
/Dest (_consumes_6)
/Subtype /Link
@@ -57600,7 +58426,7 @@ endobj
/Type /Annot
>>
endobj
-587 0 obj
+593 0 obj
<< /Border [0 0 0]
/Dest (_consumes_6)
/Subtype /Link
@@ -57608,7 +58434,7 @@ endobj
/Type /Annot
>>
endobj
-588 0 obj
+594 0 obj
<< /Border [0 0 0]
/Dest (_produces_25)
/Subtype /Link
@@ -57616,7 +58442,7 @@ endobj
/Type /Annot
>>
endobj
-589 0 obj
+595 0 obj
<< /Border [0 0 0]
/Dest (_produces_25)
/Subtype /Link
@@ -57624,23 +58450,23 @@ endobj
/Type /Annot
>>
endobj
-590 0 obj
+596 0 obj
<< /Border [0 0 0]
-/Dest (_verb80)
+/Dest (_verb2)
/Subtype /Link
/Rect [60.24000000000001 94.91999999999959 212.0595 109.19999999999959]
/Type /Annot
>>
endobj
-591 0 obj
+597 0 obj
<< /Border [0 0 0]
-/Dest (_verb80)
+/Dest (_verb2)
/Subtype /Link
/Rect [552.021 94.91999999999959 563.76 109.19999999999959]
/Type /Annot
>>
endobj
-592 0 obj
+598 0 obj
<< /Border [0 0 0]
/Dest (_parameters_21)
/Subtype /Link
@@ -57648,7 +58474,7 @@ endobj
/Type /Annot
>>
endobj
-593 0 obj
+599 0 obj
<< /Border [0 0 0]
/Dest (_parameters_21)
/Subtype /Link
@@ -57656,7 +58482,7 @@ endobj
/Type /Annot
>>
endobj
-594 0 obj
+600 0 obj
<< /Border [0 0 0]
/Dest (_responses_27)
/Subtype /Link
@@ -57664,7 +58490,7 @@ endobj
/Type /Annot
>>
endobj
-595 0 obj
+601 0 obj
<< /Border [0 0 0]
/Dest (_responses_27)
/Subtype /Link
@@ -57672,7 +58498,7 @@ endobj
/Type /Annot
>>
endobj
-596 0 obj
+602 0 obj
<< /Border [0 0 0]
/Dest (_produces_26)
/Subtype /Link
@@ -57680,7 +58506,7 @@ endobj
/Type /Annot
>>
endobj
-597 0 obj
+603 0 obj
<< /Border [0 0 0]
/Dest (_produces_26)
/Subtype /Link
@@ -57688,23 +58514,23 @@ endobj
/Type /Annot
>>
endobj
-598 0 obj
+604 0 obj
<< /Border [0 0 0]
-/Dest (_verb109)
+/Dest (_verb31)
/Subtype /Link
/Rect [60.24000000000001 723.2399999999999 164.9565 737.52]
/Type /Annot
>>
endobj
-599 0 obj
+605 0 obj
<< /Border [0 0 0]
-/Dest (_verb109)
+/Dest (_verb31)
/Subtype /Link
/Rect [552.021 723.2399999999999 563.76 737.52]
/Type /Annot
>>
endobj
-600 0 obj
+606 0 obj
<< /Border [0 0 0]
/Dest (_responses_28)
/Subtype /Link
@@ -57712,7 +58538,7 @@ endobj
/Type /Annot
>>
endobj
-601 0 obj
+607 0 obj
<< /Border [0 0 0]
/Dest (_responses_28)
/Subtype /Link
@@ -57720,7 +58546,7 @@ endobj
/Type /Annot
>>
endobj
-602 0 obj
+608 0 obj
<< /Border [0 0 0]
/Dest (_produces_27)
/Subtype /Link
@@ -57728,7 +58554,7 @@ endobj
/Type /Annot
>>
endobj
-603 0 obj
+609 0 obj
<< /Border [0 0 0]
/Dest (_produces_27)
/Subtype /Link
@@ -57736,23 +58562,23 @@ endobj
/Type /Annot
>>
endobj
-604 0 obj
+610 0 obj
<< /Border [0 0 0]
-/Dest (_verb112)
+/Dest (_verb34)
/Subtype /Link
/Rect [60.24000000000001 667.7999999999998 247.83279492187503 682.0799999999999]
/Type /Annot
>>
endobj
-605 0 obj
+611 0 obj
<< /Border [0 0 0]
-/Dest (_verb112)
+/Dest (_verb34)
/Subtype /Link
/Rect [552.021 667.7999999999998 563.76 682.0799999999999]
/Type /Annot
>>
endobj
-606 0 obj
+612 0 obj
<< /Border [0 0 0]
/Dest (_parameters_22)
/Subtype /Link
@@ -57760,7 +58586,7 @@ endobj
/Type /Annot
>>
endobj
-607 0 obj
+613 0 obj
<< /Border [0 0 0]
/Dest (_parameters_22)
/Subtype /Link
@@ -57768,7 +58594,7 @@ endobj
/Type /Annot
>>
endobj
-608 0 obj
+614 0 obj
<< /Border [0 0 0]
/Dest (_responses_29)
/Subtype /Link
@@ -57776,7 +58602,7 @@ endobj
/Type /Annot
>>
endobj
-609 0 obj
+615 0 obj
<< /Border [0 0 0]
/Dest (_responses_29)
/Subtype /Link
@@ -57784,7 +58610,7 @@ endobj
/Type /Annot
>>
endobj
-610 0 obj
+616 0 obj
<< /Border [0 0 0]
/Dest (_consumes_7)
/Subtype /Link
@@ -57792,7 +58618,7 @@ endobj
/Type /Annot
>>
endobj
-611 0 obj
+617 0 obj
<< /Border [0 0 0]
/Dest (_consumes_7)
/Subtype /Link
@@ -57800,23 +58626,23 @@ endobj
/Type /Annot
>>
endobj
-612 0 obj
+618 0 obj
<< /Border [0 0 0]
-/Dest (_verb113)
+/Dest (_verb35)
/Subtype /Link
/Rect [60.24000000000001 593.8799999999998 225.43629492187503 608.1599999999999]
/Type /Annot
>>
endobj
-613 0 obj
+619 0 obj
<< /Border [0 0 0]
-/Dest (_verb113)
+/Dest (_verb35)
/Subtype /Link
/Rect [552.021 593.8799999999998 563.76 608.1599999999999]
/Type /Annot
>>
endobj
-614 0 obj
+620 0 obj
<< /Border [0 0 0]
/Dest (_parameters_23)
/Subtype /Link
@@ -57824,7 +58650,7 @@ endobj
/Type /Annot
>>
endobj
-615 0 obj
+621 0 obj
<< /Border [0 0 0]
/Dest (_parameters_23)
/Subtype /Link
@@ -57832,7 +58658,7 @@ endobj
/Type /Annot
>>
endobj
-616 0 obj
+622 0 obj
<< /Border [0 0 0]
/Dest (_responses_30)
/Subtype /Link
@@ -57840,7 +58666,7 @@ endobj
/Type /Annot
>>
endobj
-617 0 obj
+623 0 obj
<< /Border [0 0 0]
/Dest (_responses_30)
/Subtype /Link
@@ -57848,7 +58674,7 @@ endobj
/Type /Annot
>>
endobj
-618 0 obj
+624 0 obj
<< /Border [0 0 0]
/Dest (_consumes_8)
/Subtype /Link
@@ -57856,7 +58682,7 @@ endobj
/Type /Annot
>>
endobj
-619 0 obj
+625 0 obj
<< /Border [0 0 0]
/Dest (_consumes_8)
/Subtype /Link
@@ -57864,23 +58690,23 @@ endobj
/Type /Annot
>>
endobj
-620 0 obj
+626 0 obj
<< /Border [0 0 0]
-/Dest (_verb110)
+/Dest (_verb32)
/Subtype /Link
/Rect [60.24000000000001 519.9599999999998 531.4575644531251 534.2399999999998]
/Type /Annot
>>
endobj
-621 0 obj
+627 0 obj
<< /Border [0 0 0]
-/Dest (_verb110)
+/Dest (_verb32)
/Subtype /Link
/Rect [552.021 519.9599999999998 563.76 534.2399999999998]
/Type /Annot
>>
endobj
-622 0 obj
+628 0 obj
<< /Border [0 0 0]
/Dest (_parameters_24)
/Subtype /Link
@@ -57888,7 +58714,7 @@ endobj
/Type /Annot
>>
endobj
-623 0 obj
+629 0 obj
<< /Border [0 0 0]
/Dest (_parameters_24)
/Subtype /Link
@@ -57896,7 +58722,7 @@ endobj
/Type /Annot
>>
endobj
-624 0 obj
+630 0 obj
<< /Border [0 0 0]
/Dest (_responses_31)
/Subtype /Link
@@ -57904,7 +58730,7 @@ endobj
/Type /Annot
>>
endobj
-625 0 obj
+631 0 obj
<< /Border [0 0 0]
/Dest (_responses_31)
/Subtype /Link
@@ -57912,7 +58738,7 @@ endobj
/Type /Annot
>>
endobj
-626 0 obj
+632 0 obj
<< /Border [0 0 0]
/Dest (_consumes_9)
/Subtype /Link
@@ -57920,7 +58746,7 @@ endobj
/Type /Annot
>>
endobj
-627 0 obj
+633 0 obj
<< /Border [0 0 0]
/Dest (_consumes_9)
/Subtype /Link
@@ -57928,7 +58754,7 @@ endobj
/Type /Annot
>>
endobj
-628 0 obj
+634 0 obj
<< /Border [0 0 0]
/Dest (_produces_28)
/Subtype /Link
@@ -57936,7 +58762,7 @@ endobj
/Type /Annot
>>
endobj
-629 0 obj
+635 0 obj
<< /Border [0 0 0]
/Dest (_produces_28)
/Subtype /Link
@@ -57944,23 +58770,23 @@ endobj
/Type /Annot
>>
endobj
-630 0 obj
+636 0 obj
<< /Border [0 0 0]
-/Dest (_verb111)
+/Dest (_verb33)
/Subtype /Link
/Rect [60.24000000000001 427.5599999999997 545.63276953125 441.8399999999997]
/Type /Annot
>>
endobj
-631 0 obj
+637 0 obj
<< /Border [0 0 0]
-/Dest (_verb111)
+/Dest (_verb33)
/Subtype /Link
/Rect [552.021 427.5599999999997 563.76 441.8399999999997]
/Type /Annot
>>
endobj
-632 0 obj
+638 0 obj
<< /Border [0 0 0]
/Dest (_parameters_25)
/Subtype /Link
@@ -57968,7 +58794,7 @@ endobj
/Type /Annot
>>
endobj
-633 0 obj
+639 0 obj
<< /Border [0 0 0]
/Dest (_parameters_25)
/Subtype /Link
@@ -57976,7 +58802,7 @@ endobj
/Type /Annot
>>
endobj
-634 0 obj
+640 0 obj
<< /Border [0 0 0]
/Dest (_responses_32)
/Subtype /Link
@@ -57984,7 +58810,7 @@ endobj
/Type /Annot
>>
endobj
-635 0 obj
+641 0 obj
<< /Border [0 0 0]
/Dest (_responses_32)
/Subtype /Link
@@ -57992,23 +58818,23 @@ endobj
/Type /Annot
>>
endobj
-636 0 obj
+642 0 obj
<< /Border [0 0 0]
-/Dest (_verb106)
+/Dest (_verb28)
/Subtype /Link
/Rect [60.24000000000001 372.11999999999966 221.091755859375 386.39999999999964]
/Type /Annot
>>
endobj
-637 0 obj
+643 0 obj
<< /Border [0 0 0]
-/Dest (_verb106)
+/Dest (_verb28)
/Subtype /Link
/Rect [552.021 372.11999999999966 563.76 386.39999999999964]
/Type /Annot
>>
endobj
-638 0 obj
+644 0 obj
<< /Border [0 0 0]
/Dest (_responses_33)
/Subtype /Link
@@ -58016,7 +58842,7 @@ endobj
/Type /Annot
>>
endobj
-639 0 obj
+645 0 obj
<< /Border [0 0 0]
/Dest (_responses_33)
/Subtype /Link
@@ -58024,7 +58850,7 @@ endobj
/Type /Annot
>>
endobj
-640 0 obj
+646 0 obj
<< /Border [0 0 0]
/Dest (_produces_29)
/Subtype /Link
@@ -58032,7 +58858,7 @@ endobj
/Type /Annot
>>
endobj
-641 0 obj
+647 0 obj
<< /Border [0 0 0]
/Dest (_produces_29)
/Subtype /Link
@@ -58040,23 +58866,23 @@ endobj
/Type /Annot
>>
endobj
-642 0 obj
+648 0 obj
<< /Border [0 0 0]
-/Dest (_verb108)
+/Dest (_verb30)
/Subtype /Link
/Rect [60.24000000000001 316.6799999999996 458.24414062500006 330.9599999999996]
/Type /Annot
>>
endobj
-643 0 obj
+649 0 obj
<< /Border [0 0 0]
-/Dest (_verb108)
+/Dest (_verb30)
/Subtype /Link
/Rect [552.021 316.6799999999996 563.76 330.9599999999996]
/Type /Annot
>>
endobj
-644 0 obj
+650 0 obj
<< /Border [0 0 0]
/Dest (_parameters_26)
/Subtype /Link
@@ -58064,7 +58890,7 @@ endobj
/Type /Annot
>>
endobj
-645 0 obj
+651 0 obj
<< /Border [0 0 0]
/Dest (_parameters_26)
/Subtype /Link
@@ -58072,7 +58898,7 @@ endobj
/Type /Annot
>>
endobj
-646 0 obj
+652 0 obj
<< /Border [0 0 0]
/Dest (_responses_34)
/Subtype /Link
@@ -58080,7 +58906,7 @@ endobj
/Type /Annot
>>
endobj
-647 0 obj
+653 0 obj
<< /Border [0 0 0]
/Dest (_responses_34)
/Subtype /Link
@@ -58088,7 +58914,7 @@ endobj
/Type /Annot
>>
endobj
-648 0 obj
+654 0 obj
<< /Border [0 0 0]
/Dest (_produces_30)
/Subtype /Link
@@ -58096,7 +58922,7 @@ endobj
/Type /Annot
>>
endobj
-649 0 obj
+655 0 obj
<< /Border [0 0 0]
/Dest (_produces_30)
/Subtype /Link
@@ -58104,23 +58930,23 @@ endobj
/Type /Annot
>>
endobj
-650 0 obj
+656 0 obj
<< /Border [0 0 0]
-/Dest (_verb107)
+/Dest (_verb29)
/Subtype /Link
/Rect [60.24000000000001 242.7599999999995 430.23014062500005 257.0399999999995]
/Type /Annot
>>
endobj
-651 0 obj
+657 0 obj
<< /Border [0 0 0]
-/Dest (_verb107)
+/Dest (_verb29)
/Subtype /Link
/Rect [552.021 242.7599999999995 563.76 257.0399999999995]
/Type /Annot
>>
endobj
-652 0 obj
+658 0 obj
<< /Border [0 0 0]
/Dest (_parameters_27)
/Subtype /Link
@@ -58128,7 +58954,7 @@ endobj
/Type /Annot
>>
endobj
-653 0 obj
+659 0 obj
<< /Border [0 0 0]
/Dest (_parameters_27)
/Subtype /Link
@@ -58136,7 +58962,7 @@ endobj
/Type /Annot
>>
endobj
-654 0 obj
+660 0 obj
<< /Border [0 0 0]
/Dest (_responses_35)
/Subtype /Link
@@ -58144,7 +58970,7 @@ endobj
/Type /Annot
>>
endobj
-655 0 obj
+661 0 obj
<< /Border [0 0 0]
/Dest (_responses_35)
/Subtype /Link
@@ -58152,7 +58978,7 @@ endobj
/Type /Annot
>>
endobj
-656 0 obj
+662 0 obj
<< /Border [0 0 0]
/Dest (_produces_31)
/Subtype /Link
@@ -58160,7 +58986,7 @@ endobj
/Type /Annot
>>
endobj
-657 0 obj
+663 0 obj
<< /Border [0 0 0]
/Dest (_produces_31)
/Subtype /Link
@@ -58168,23 +58994,23 @@ endobj
/Type /Annot
>>
endobj
-658 0 obj
+664 0 obj
<< /Border [0 0 0]
-/Dest (_verb96)
+/Dest (_verb18)
/Subtype /Link
/Rect [60.24000000000001 168.83999999999955 175.8555 183.11999999999955]
/Type /Annot
>>
endobj
-659 0 obj
+665 0 obj
<< /Border [0 0 0]
-/Dest (_verb96)
+/Dest (_verb18)
/Subtype /Link
/Rect [552.021 168.83999999999955 563.76 183.11999999999955]
/Type /Annot
>>
endobj
-660 0 obj
+666 0 obj
<< /Border [0 0 0]
/Dest (_responses_36)
/Subtype /Link
@@ -58192,7 +59018,7 @@ endobj
/Type /Annot
>>
endobj
-661 0 obj
+667 0 obj
<< /Border [0 0 0]
/Dest (_responses_36)
/Subtype /Link
@@ -58200,7 +59026,7 @@ endobj
/Type /Annot
>>
endobj
-662 0 obj
+668 0 obj
<< /Border [0 0 0]
/Dest (_produces_32)
/Subtype /Link
@@ -58208,7 +59034,7 @@ endobj
/Type /Annot
>>
endobj
-663 0 obj
+669 0 obj
<< /Border [0 0 0]
/Dest (_produces_32)
/Subtype /Link
@@ -58216,23 +59042,23 @@ endobj
/Type /Annot
>>
endobj
-664 0 obj
+670 0 obj
<< /Border [0 0 0]
-/Dest (_verb98)
+/Dest (_verb20)
/Subtype /Link
/Rect [60.24000000000001 113.39999999999958 211.818 127.67999999999958]
/Type /Annot
>>
endobj
-665 0 obj
+671 0 obj
<< /Border [0 0 0]
-/Dest (_verb98)
+/Dest (_verb20)
/Subtype /Link
/Rect [552.021 113.39999999999958 563.76 127.67999999999958]
/Type /Annot
>>
endobj
-666 0 obj
+672 0 obj
<< /Border [0 0 0]
/Dest (_responses_37)
/Subtype /Link
@@ -58240,7 +59066,7 @@ endobj
/Type /Annot
>>
endobj
-667 0 obj
+673 0 obj
<< /Border [0 0 0]
/Dest (_responses_37)
/Subtype /Link
@@ -58248,7 +59074,7 @@ endobj
/Type /Annot
>>
endobj
-668 0 obj
+674 0 obj
<< /Border [0 0 0]
/Dest (_produces_33)
/Subtype /Link
@@ -58256,7 +59082,7 @@ endobj
/Type /Annot
>>
endobj
-669 0 obj
+675 0 obj
<< /Border [0 0 0]
/Dest (_produces_33)
/Subtype /Link
@@ -58264,23 +59090,23 @@ endobj
/Type /Annot
>>
endobj
-670 0 obj
+676 0 obj
<< /Border [0 0 0]
-/Dest (_verb97)
+/Dest (_verb19)
/Subtype /Link
/Rect [60.24000000000001 57.95999999999961 261.44100000000003 72.23999999999961]
/Type /Annot
>>
endobj
-671 0 obj
+677 0 obj
<< /Border [0 0 0]
-/Dest (_verb97)
+/Dest (_verb19)
/Subtype /Link
/Rect [552.021 57.95999999999961 563.76 72.23999999999961]
/Type /Annot
>>
endobj
-672 0 obj
+678 0 obj
<< /Border [0 0 0]
/Dest (_parameters_28)
/Subtype /Link
@@ -58288,7 +59114,7 @@ endobj
/Type /Annot
>>
endobj
-673 0 obj
+679 0 obj
<< /Border [0 0 0]
/Dest (_parameters_28)
/Subtype /Link
@@ -58296,7 +59122,7 @@ endobj
/Type /Annot
>>
endobj
-674 0 obj
+680 0 obj
<< /Border [0 0 0]
/Dest (_responses_38)
/Subtype /Link
@@ -58304,7 +59130,7 @@ endobj
/Type /Annot
>>
endobj
-675 0 obj
+681 0 obj
<< /Border [0 0 0]
/Dest (_responses_38)
/Subtype /Link
@@ -58312,7 +59138,7 @@ endobj
/Type /Annot
>>
endobj
-676 0 obj
+682 0 obj
<< /Border [0 0 0]
/Dest (_produces_34)
/Subtype /Link
@@ -58320,7 +59146,7 @@ endobj
/Type /Annot
>>
endobj
-677 0 obj
+683 0 obj
<< /Border [0 0 0]
/Dest (_produces_34)
/Subtype /Link
@@ -58328,407 +59154,487 @@ endobj
/Type /Annot
>>
endobj
-678 0 obj
+684 0 obj
<< /Border [0 0 0]
-/Dest (_verb114)
+/Dest (_verb37)
/Subtype /Link
-/Rect [60.24000000000001 686.2799999999999 307.37251171875005 700.56]
+/Rect [60.24000000000001 686.2799999999999 358.055806640625 700.56]
/Type /Annot
>>
endobj
-679 0 obj
+685 0 obj
<< /Border [0 0 0]
-/Dest (_verb114)
+/Dest (_verb37)
/Subtype /Link
/Rect [552.021 686.2799999999999 563.76 700.56]
/Type /Annot
>>
endobj
-680 0 obj
+686 0 obj
+<< /Border [0 0 0]
+/Dest (_parameters_29)
+/Subtype /Link
+/Rect [72.24000000000001 667.7999999999998 163.71579492187502 682.0799999999999]
+/Type /Annot
+>>
+endobj
+687 0 obj
+<< /Border [0 0 0]
+/Dest (_parameters_29)
+/Subtype /Link
+/Rect [552.021 667.7999999999998 563.76 682.0799999999999]
+/Type /Annot
+>>
+endobj
+688 0 obj
<< /Border [0 0 0]
/Dest (_responses_39)
/Subtype /Link
-/Rect [72.24000000000001 667.7999999999998 157.899 682.0799999999999]
+/Rect [72.24000000000001 649.3199999999998 157.899 663.5999999999999]
/Type /Annot
>>
endobj
-681 0 obj
+689 0 obj
<< /Border [0 0 0]
/Dest (_responses_39)
/Subtype /Link
-/Rect [552.021 667.7999999999998 563.76 682.0799999999999]
+/Rect [552.021 649.3199999999998 563.76 663.5999999999999]
/Type /Annot
>>
endobj
-682 0 obj
+690 0 obj
+<< /Border [0 0 0]
+/Dest (_consumes_10)
+/Subtype /Link
+/Rect [72.24000000000001 630.8399999999998 157.2375 645.1199999999999]
+/Type /Annot
+>>
+endobj
+691 0 obj
+<< /Border [0 0 0]
+/Dest (_consumes_10)
+/Subtype /Link
+/Rect [552.021 630.8399999999998 563.76 645.1199999999999]
+/Type /Annot
+>>
+endobj
+692 0 obj
<< /Border [0 0 0]
/Dest (_produces_35)
/Subtype /Link
-/Rect [72.24000000000001 649.3199999999998 152.27100000000002 663.5999999999999]
+/Rect [72.24000000000001 612.3599999999998 152.27100000000002 626.6399999999999]
/Type /Annot
>>
endobj
-683 0 obj
+693 0 obj
<< /Border [0 0 0]
/Dest (_produces_35)
/Subtype /Link
-/Rect [552.021 649.3199999999998 563.76 663.5999999999999]
+/Rect [552.021 612.3599999999998 563.76 626.6399999999999]
/Type /Annot
>>
endobj
-684 0 obj
+694 0 obj
+<< /Border [0 0 0]
+/Dest (_verb36)
+/Subtype /Link
+/Rect [60.24000000000001 593.8799999999998 307.37251171875005 608.1599999999999]
+/Type /Annot
+>>
+endobj
+695 0 obj
+<< /Border [0 0 0]
+/Dest (_verb36)
+/Subtype /Link
+/Rect [552.021 593.8799999999998 563.76 608.1599999999999]
+/Type /Annot
+>>
+endobj
+696 0 obj
+<< /Border [0 0 0]
+/Dest (_responses_40)
+/Subtype /Link
+/Rect [72.24000000000001 575.3999999999997 157.899 589.6799999999998]
+/Type /Annot
+>>
+endobj
+697 0 obj
+<< /Border [0 0 0]
+/Dest (_responses_40)
+/Subtype /Link
+/Rect [552.021 575.3999999999997 563.76 589.6799999999998]
+/Type /Annot
+>>
+endobj
+698 0 obj
+<< /Border [0 0 0]
+/Dest (_produces_36)
+/Subtype /Link
+/Rect [72.24000000000001 556.9199999999998 152.27100000000002 571.1999999999998]
+/Type /Annot
+>>
+endobj
+699 0 obj
+<< /Border [0 0 0]
+/Dest (_produces_36)
+/Subtype /Link
+/Rect [552.021 556.9199999999998 563.76 571.1999999999998]
+/Type /Annot
+>>
+endobj
+700 0 obj
<< /Border [0 0 0]
/Dest (_definitions)
/Subtype /Link
-/Rect [48.24000000000001 630.8399999999998 114.66300000000001 645.1199999999999]
+/Rect [48.24000000000001 538.4399999999998 114.66300000000001 552.7199999999998]
/Type /Annot
>>
endobj
-685 0 obj
+701 0 obj
<< /Border [0 0 0]
/Dest (_definitions)
/Subtype /Link
-/Rect [552.021 630.8399999999998 563.76 645.1199999999999]
+/Rect [552.021 538.4399999999998 563.76 552.7199999999998]
/Type /Annot
>>
endobj
-686 0 obj
+702 0 obj
<< /Border [0 0 0]
/Dest (_clampinformation)
/Subtype /Link
-/Rect [60.24000000000001 612.3599999999998 173.08350000000002 626.6399999999999]
+/Rect [60.24000000000001 519.9599999999998 173.08350000000002 534.2399999999998]
/Type /Annot
>>
endobj
-687 0 obj
+703 0 obj
<< /Border [0 0 0]
/Dest (_clampinformation)
/Subtype /Link
-/Rect [552.021 612.3599999999998 563.76 626.6399999999999]
+/Rect [552.021 519.9599999999998 563.76 534.2399999999998]
/Type /Annot
>>
endobj
-688 0 obj
+704 0 obj
<< /Border [0 0 0]
/Dest (_cldshealthcheck)
/Subtype /Link
-/Rect [60.24000000000001 593.8799999999998 164.26350000000002 608.1599999999999]
+/Rect [60.24000000000001 501.4799999999998 164.26350000000002 515.7599999999998]
/Type /Annot
>>
endobj
-689 0 obj
+705 0 obj
<< /Border [0 0 0]
/Dest (_cldshealthcheck)
/Subtype /Link
-/Rect [552.021 593.8799999999998 563.76 608.1599999999999]
+/Rect [552.021 501.4799999999998 563.76 515.7599999999998]
/Type /Annot
>>
endobj
-690 0 obj
+706 0 obj
<< /Border [0 0 0]
/Dest (_dictionary)
/Subtype /Link
-/Rect [60.24000000000001 575.3999999999997 132.7425 589.6799999999998]
+/Rect [60.24000000000001 482.9999999999998 132.7425 497.27999999999975]
/Type /Annot
>>
endobj
-691 0 obj
+707 0 obj
<< /Border [0 0 0]
/Dest (_dictionary)
/Subtype /Link
-/Rect [552.021 575.3999999999997 563.76 589.6799999999998]
+/Rect [552.021 482.9999999999998 563.76 497.27999999999975]
/Type /Annot
>>
endobj
-692 0 obj
+708 0 obj
<< /Border [0 0 0]
/Dest (_dictionaryelement)
/Subtype /Link
-/Rect [60.24000000000001 556.9199999999998 174.1545 571.1999999999998]
+/Rect [60.24000000000001 464.51999999999975 174.1545 478.7999999999997]
/Type /Annot
>>
endobj
-693 0 obj
+709 0 obj
<< /Border [0 0 0]
/Dest (_dictionaryelement)
/Subtype /Link
-/Rect [552.021 556.9199999999998 563.76 571.1999999999998]
+/Rect [552.021 464.51999999999975 563.76 478.7999999999997]
/Type /Annot
>>
endobj
-694 0 obj
+710 0 obj
<< /Border [0 0 0]
/Dest (_externalcomponent)
/Subtype /Link
-/Rect [60.24000000000001 538.4399999999998 180.507 552.7199999999998]
+/Rect [60.24000000000001 446.03999999999974 180.507 460.3199999999997]
/Type /Annot
>>
endobj
-695 0 obj
+711 0 obj
<< /Border [0 0 0]
/Dest (_externalcomponent)
/Subtype /Link
-/Rect [552.021 538.4399999999998 563.76 552.7199999999998]
+/Rect [552.021 446.03999999999974 563.76 460.3199999999997]
/Type /Annot
>>
endobj
-696 0 obj
+712 0 obj
<< /Border [0 0 0]
/Dest (_externalcomponentstate)
/Subtype /Link
-/Rect [60.24000000000001 519.9599999999998 205.11900000000003 534.2399999999998]
+/Rect [60.24000000000001 427.5599999999997 205.11900000000003 441.8399999999997]
/Type /Annot
>>
endobj
-697 0 obj
+713 0 obj
<< /Border [0 0 0]
/Dest (_externalcomponentstate)
/Subtype /Link
-/Rect [552.021 519.9599999999998 563.76 534.2399999999998]
+/Rect [552.021 427.5599999999997 563.76 441.8399999999997]
/Type /Annot
>>
endobj
-698 0 obj
+714 0 obj
<< /Border [0 0 0]
/Dest (_jsonarray)
/Subtype /Link
-/Rect [60.24000000000001 501.4799999999998 129.94908984375002 515.7599999999998]
+/Rect [60.24000000000001 409.0799999999997 129.94908984375002 423.3599999999997]
/Type /Annot
>>
endobj
-699 0 obj
+715 0 obj
<< /Border [0 0 0]
/Dest (_jsonarray)
/Subtype /Link
-/Rect [552.021 501.4799999999998 563.76 515.7599999999998]
+/Rect [552.021 409.0799999999997 563.76 423.3599999999997]
/Type /Annot
>>
endobj
-700 0 obj
+716 0 obj
<< /Border [0 0 0]
/Dest (_jsonelement)
/Subtype /Link
-/Rect [60.24000000000001 482.9999999999998 142.66500000000002 497.27999999999975]
+/Rect [60.24000000000001 390.5999999999997 142.66500000000002 404.87999999999965]
/Type /Annot
>>
endobj
-701 0 obj
+717 0 obj
<< /Border [0 0 0]
/Dest (_jsonelement)
/Subtype /Link
-/Rect [552.021 482.9999999999998 563.76 497.27999999999975]
+/Rect [552.021 390.5999999999997 563.76 404.87999999999965]
/Type /Annot
>>
endobj
-702 0 obj
+718 0 obj
<< /Border [0 0 0]
/Dest (_jsonnull)
/Subtype /Link
-/Rect [60.24000000000001 464.51999999999975 122.43150000000001 478.7999999999997]
+/Rect [60.24000000000001 372.11999999999966 122.43150000000001 386.39999999999964]
/Type /Annot
>>
endobj
-703 0 obj
+719 0 obj
<< /Border [0 0 0]
/Dest (_jsonnull)
/Subtype /Link
-/Rect [552.021 464.51999999999975 563.76 478.7999999999997]
+/Rect [552.021 372.11999999999966 563.76 386.39999999999964]
/Type /Annot
>>
endobj
-704 0 obj
+720 0 obj
<< /Border [0 0 0]
/Dest (_jsonobject)
/Subtype /Link
-/Rect [60.24000000000001 446.03999999999974 138.969 460.3199999999997]
+/Rect [60.24000000000001 353.63999999999965 138.969 367.9199999999996]
/Type /Annot
>>
endobj
-705 0 obj
+721 0 obj
<< /Border [0 0 0]
/Dest (_jsonobject)
/Subtype /Link
-/Rect [552.021 446.03999999999974 563.76 460.3199999999997]
+/Rect [552.021 353.63999999999965 563.76 367.9199999999996]
/Type /Annot
>>
endobj
-706 0 obj
+722 0 obj
<< /Border [0 0 0]
/Dest (_jsonprimitive)
/Subtype /Link
-/Rect [60.24000000000001 427.5599999999997 153.76350000000002 441.8399999999997]
+/Rect [60.24000000000001 335.1599999999996 153.76350000000002 349.4399999999996]
/Type /Annot
>>
endobj
-707 0 obj
+723 0 obj
<< /Border [0 0 0]
/Dest (_jsonprimitive)
/Subtype /Link
-/Rect [552.021 427.5599999999997 563.76 441.8399999999997]
+/Rect [552.021 335.1599999999996 563.76 349.4399999999996]
/Type /Annot
>>
endobj
-708 0 obj
+724 0 obj
<< /Border [0 0 0]
/Dest (_loop)
/Subtype /Link
-/Rect [60.24000000000001 409.0799999999997 110.91300000000001 423.3599999999997]
+/Rect [60.24000000000001 316.6799999999996 110.91300000000001 330.9599999999996]
/Type /Annot
>>
endobj
-709 0 obj
+725 0 obj
<< /Border [0 0 0]
/Dest (_loop)
/Subtype /Link
-/Rect [552.021 409.0799999999997 563.76 423.3599999999997]
+/Rect [552.021 316.6799999999996 563.76 330.9599999999996]
/Type /Annot
>>
endobj
-710 0 obj
+726 0 obj
<< /Border [0 0 0]
/Dest (_loopelementmodel)
/Subtype /Link
-/Rect [60.24000000000001 390.5999999999997 183.531 404.87999999999965]
+/Rect [60.24000000000001 298.1999999999996 183.531 312.47999999999956]
/Type /Annot
>>
endobj
-711 0 obj
+727 0 obj
<< /Border [0 0 0]
/Dest (_loopelementmodel)
/Subtype /Link
-/Rect [552.021 390.5999999999997 563.76 404.87999999999965]
+/Rect [552.021 298.1999999999996 563.76 312.47999999999956]
/Type /Annot
>>
endobj
-712 0 obj
+728 0 obj
<< /Border [0 0 0]
/Dest (_looplog)
/Subtype /Link
-/Rect [60.24000000000001 372.11999999999966 129.16200000000003 386.39999999999964]
+/Rect [60.24000000000001 279.7199999999996 129.16200000000003 293.99999999999955]
/Type /Annot
>>
endobj
-713 0 obj
+729 0 obj
<< /Border [0 0 0]
/Dest (_looplog)
/Subtype /Link
-/Rect [552.021 372.11999999999966 563.76 386.39999999999964]
+/Rect [552.021 279.7199999999996 563.76 293.99999999999955]
/Type /Annot
>>
endobj
-714 0 obj
+730 0 obj
<< /Border [0 0 0]
/Dest (_looptemplate)
/Subtype /Link
-/Rect [60.24000000000001 353.63999999999965 157.46175585937502 367.9199999999996]
+/Rect [60.24000000000001 261.23999999999955 157.46175585937502 275.5199999999995]
/Type /Annot
>>
endobj
-715 0 obj
+731 0 obj
<< /Border [0 0 0]
/Dest (_looptemplate)
/Subtype /Link
-/Rect [552.021 353.63999999999965 563.76 367.9199999999996]
+/Rect [552.021 261.23999999999955 563.76 275.5199999999995]
/Type /Annot
>>
endobj
-716 0 obj
+732 0 obj
<< /Border [0 0 0]
/Dest (_looptemplateloopelementmodel)
/Subtype /Link
-/Rect [60.24000000000001 335.1599999999996 255.174755859375 349.4399999999996]
+/Rect [60.24000000000001 242.7599999999995 255.174755859375 257.0399999999995]
/Type /Annot
>>
endobj
-717 0 obj
+733 0 obj
<< /Border [0 0 0]
/Dest (_looptemplateloopelementmodel)
/Subtype /Link
-/Rect [552.021 335.1599999999996 563.76 349.4399999999996]
+/Rect [552.021 242.7599999999995 563.76 257.0399999999995]
/Type /Annot
>>
endobj
-718 0 obj
+734 0 obj
<< /Border [0 0 0]
/Dest (_microservicepolicy)
/Subtype /Link
-/Rect [60.24000000000001 316.6799999999996 181.74600000000004 330.9599999999996]
+/Rect [60.24000000000001 224.27999999999952 181.74600000000004 238.55999999999952]
/Type /Annot
>>
endobj
-719 0 obj
+735 0 obj
<< /Border [0 0 0]
/Dest (_microservicepolicy)
/Subtype /Link
-/Rect [552.021 316.6799999999996 563.76 330.9599999999996]
+/Rect [552.021 224.27999999999952 563.76 238.55999999999952]
/Type /Annot
>>
endobj
-720 0 obj
+736 0 obj
<< /Border [0 0 0]
/Dest (_number)
/Subtype /Link
-/Rect [60.24000000000001 298.1999999999996 127.39800000000001 312.47999999999956]
+/Rect [60.24000000000001 205.79999999999953 127.39800000000001 220.07999999999953]
/Type /Annot
>>
endobj
-721 0 obj
+737 0 obj
<< /Border [0 0 0]
/Dest (_number)
/Subtype /Link
-/Rect [552.021 298.1999999999996 563.76 312.47999999999956]
+/Rect [552.021 205.79999999999953 563.76 220.07999999999953]
/Type /Annot
>>
endobj
-722 0 obj
+738 0 obj
<< /Border [0 0 0]
/Dest (_operationalpolicy)
/Subtype /Link
-/Rect [60.24000000000001 279.7199999999996 175.42479492187502 293.99999999999955]
+/Rect [60.24000000000001 187.31999999999954 175.42479492187502 201.59999999999954]
/Type /Annot
>>
endobj
-723 0 obj
+739 0 obj
<< /Border [0 0 0]
/Dest (_operationalpolicy)
/Subtype /Link
-/Rect [552.021 279.7199999999996 563.76 293.99999999999955]
+/Rect [552.021 187.31999999999954 563.76 201.59999999999954]
/Type /Annot
>>
endobj
-724 0 obj
+740 0 obj
<< /Border [0 0 0]
/Dest (_policymodel)
/Subtype /Link
-/Rect [60.24000000000001 261.23999999999955 147.11700000000002 275.5199999999995]
+/Rect [60.24000000000001 168.83999999999955 147.11700000000002 183.11999999999955]
/Type /Annot
>>
endobj
-725 0 obj
+741 0 obj
<< /Border [0 0 0]
/Dest (_policymodel)
/Subtype /Link
-/Rect [552.021 261.23999999999955 563.76 275.5199999999995]
+/Rect [552.021 168.83999999999955 563.76 183.11999999999955]
/Type /Annot
>>
endobj
-726 0 obj
+742 0 obj
<< /Border [0 0 0]
/Dest (_service)
/Subtype /Link
-/Rect [60.24000000000001 242.7599999999995 122.29500000000002 257.0399999999995]
+/Rect [60.24000000000001 150.35999999999956 122.29500000000002 164.63999999999956]
/Type /Annot
>>
endobj
-727 0 obj
+743 0 obj
<< /Border [0 0 0]
/Dest (_service)
/Subtype /Link
-/Rect [552.021 242.7599999999995 563.76 257.0399999999995]
+/Rect [552.021 150.35999999999956 563.76 164.63999999999956]
/Type /Annot
>>
endobj
-728 0 obj
+744 0 obj
<< /Type /XObject
/Subtype /Form
/BBox [0 0 612.0 792.0]
@@ -58756,1614 +59662,1659 @@ Q
endstream
endobj
-729 0 obj
+745 0 obj
<< /Type /Outlines
-/Count 178
-/First 730 0 R
-/Last 886 0 R
+/Count 183
+/First 746 0 R
+/Last 907 0 R
>>
endobj
-730 0 obj
+746 0 obj
<< /Title <feff0043006c0061006d0070002000520065007300740020004100500049>
-/Parent 729 0 R
+/Parent 745 0 R
/Count 0
-/Next 731 0 R
+/Next 747 0 R
/Dest [7 0 R /XYZ 0 792.0 null]
>>
endobj
-731 0 obj
+747 0 obj
<< /Title <feff005400610062006c00650020006f006600200043006f006e00740065006e00740073>
-/Parent 729 0 R
+/Parent 745 0 R
/Count 0
-/Next 732 0 R
-/Prev 730 0 R
+/Next 748 0 R
+/Prev 746 0 R
/Dest [10 0 R /XYZ 0 792.0 null]
>>
endobj
-732 0 obj
+748 0 obj
<< /Title <feff004300680061007000740065007200200031002e0020004f0076006500720076006900650077>
-/Parent 729 0 R
+/Parent 745 0 R
/Count 2
-/First 733 0 R
-/Last 734 0 R
-/Next 735 0 R
-/Prev 731 0 R
+/First 749 0 R
+/Last 750 0 R
+/Next 751 0 R
+/Prev 747 0 R
/Dest [20 0 R /XYZ 0 792.0 null]
>>
endobj
-733 0 obj
+749 0 obj
<< /Title <feff0031002e0031002e002000560065007200730069006f006e00200069006e0066006f0072006d006100740069006f006e>
-/Parent 732 0 R
+/Parent 748 0 R
/Count 0
-/Next 734 0 R
+/Next 750 0 R
/Dest [20 0 R /XYZ 0 712.0799999999999 null]
>>
endobj
-734 0 obj
+750 0 obj
<< /Title <feff0031002e0032002e002000550052004900200073006300680065006d0065>
-/Parent 732 0 R
+/Parent 748 0 R
/Count 0
-/Prev 733 0 R
+/Prev 749 0 R
/Dest [20 0 R /XYZ 0 644.22 null]
>>
endobj
-735 0 obj
+751 0 obj
<< /Title <feff004300680061007000740065007200200032002e002000500061007400680073>
-/Parent 729 0 R
-/Count 150
-/First 736 0 R
-/Last 883 0 R
-/Next 886 0 R
-/Prev 732 0 R
+/Parent 745 0 R
+/Count 155
+/First 752 0 R
+/Last 904 0 R
+/Next 907 0 R
+/Prev 748 0 R
/Dest [29 0 R /XYZ 0 792.0 null]
>>
endobj
-736 0 obj
+752 0 obj
<< /Title <feff0032002e0031002e00200047004500540020002f00760031002f006800650061006c007400680063006800650063006b>
-/Parent 735 0 R
+/Parent 751 0 R
/Count 2
-/First 737 0 R
-/Last 738 0 R
-/Next 739 0 R
+/First 753 0 R
+/Last 754 0 R
+/Next 755 0 R
/Dest [29 0 R /XYZ 0 712.0799999999999 null]
>>
endobj
-737 0 obj
+753 0 obj
<< /Title <feff0032002e0031002e0031002e00200052006500730070006f006e007300650073>
-/Parent 736 0 R
+/Parent 752 0 R
/Count 0
-/Next 738 0 R
+/Next 754 0 R
/Dest [29 0 R /XYZ 0 672.0 null]
>>
endobj
-738 0 obj
+754 0 obj
<< /Title <feff0032002e0031002e0032002e002000500072006f00640075006300650073>
-/Parent 736 0 R
+/Parent 752 0 R
/Count 0
-/Prev 737 0 R
+/Prev 753 0 R
/Dest [29 0 R /XYZ 0 566.8800000000001 null]
>>
endobj
-739 0 obj
+755 0 obj
<< /Title <feff0032002e0032002e00200047004500540020002f00760031002f0075007300650072002f0067006500740055007300650072>
-/Parent 735 0 R
+/Parent 751 0 R
/Count 2
-/First 740 0 R
-/Last 741 0 R
-/Next 742 0 R
-/Prev 736 0 R
+/First 756 0 R
+/Last 757 0 R
+/Next 758 0 R
+/Prev 752 0 R
/Dest [29 0 R /XYZ 0 510.60000000000025 null]
>>
endobj
-740 0 obj
+756 0 obj
<< /Title <feff0032002e0032002e0031002e00200052006500730070006f006e007300650073>
-/Parent 739 0 R
+/Parent 755 0 R
/Count 0
-/Next 741 0 R
+/Next 757 0 R
/Dest [29 0 R /XYZ 0 470.5200000000002 null]
>>
endobj
-741 0 obj
+757 0 obj
<< /Title <feff0032002e0032002e0032002e002000500072006f00640075006300650073>
-/Parent 739 0 R
+/Parent 755 0 R
/Count 0
-/Prev 740 0 R
+/Prev 756 0 R
/Dest [29 0 R /XYZ 0 379.6800000000002 null]
>>
endobj
-742 0 obj
+758 0 obj
<< /Title <feff0032002e0033002e00200047004500540020002f00760032002f0063006c0061006d00700049006e0066006f0072006d006100740069006f006e>
-/Parent 735 0 R
+/Parent 751 0 R
/Count 2
-/First 743 0 R
-/Last 744 0 R
-/Next 745 0 R
-/Prev 739 0 R
+/First 759 0 R
+/Last 760 0 R
+/Next 761 0 R
+/Prev 755 0 R
/Dest [29 0 R /XYZ 0 323.40000000000015 null]
>>
endobj
-743 0 obj
+759 0 obj
<< /Title <feff0032002e0033002e0031002e00200052006500730070006f006e007300650073>
-/Parent 742 0 R
+/Parent 758 0 R
/Count 0
-/Next 744 0 R
+/Next 760 0 R
/Dest [29 0 R /XYZ 0 283.3200000000001 null]
>>
endobj
-744 0 obj
+760 0 obj
<< /Title <feff0032002e0033002e0032002e002000500072006f00640075006300650073>
-/Parent 742 0 R
+/Parent 758 0 R
/Count 0
-/Prev 743 0 R
+/Prev 759 0 R
/Dest [29 0 R /XYZ 0 178.2000000000001 null]
>>
endobj
-745 0 obj
+761 0 obj
<< /Title <feff0032002e0034002e00200047004500540020002f00760032002f00640069006300740069006f006e006100720079>
-/Parent 735 0 R
+/Parent 751 0 R
/Count 2
-/First 746 0 R
-/Last 747 0 R
-/Next 748 0 R
-/Prev 742 0 R
+/First 762 0 R
+/Last 763 0 R
+/Next 764 0 R
+/Prev 758 0 R
/Dest [29 0 R /XYZ 0 121.92000000000007 null]
>>
endobj
-746 0 obj
+762 0 obj
<< /Title <feff0032002e0034002e0031002e00200052006500730070006f006e007300650073>
-/Parent 745 0 R
+/Parent 761 0 R
/Count 0
-/Next 747 0 R
+/Next 763 0 R
/Dest [45 0 R /XYZ 0 792.0 null]
>>
endobj
-747 0 obj
+763 0 obj
<< /Title <feff0032002e0034002e0032002e002000500072006f00640075006300650073>
-/Parent 745 0 R
+/Parent 761 0 R
/Count 0
-/Prev 746 0 R
+/Prev 762 0 R
/Dest [45 0 R /XYZ 0 653.2800000000002 null]
>>
endobj
-748 0 obj
+764 0 obj
<< /Title <feff0032002e0035002e00200050005500540020002f00760032002f00640069006300740069006f006e006100720079>
-/Parent 735 0 R
+/Parent 751 0 R
/Count 4
-/First 749 0 R
-/Last 752 0 R
-/Next 753 0 R
-/Prev 745 0 R
+/First 765 0 R
+/Last 768 0 R
+/Next 769 0 R
+/Prev 761 0 R
/Dest [45 0 R /XYZ 0 597.0000000000003 null]
>>
endobj
-749 0 obj
+765 0 obj
<< /Title <feff0032002e0035002e0031002e00200050006100720061006d00650074006500720073>
-/Parent 748 0 R
+/Parent 764 0 R
/Count 0
-/Next 750 0 R
+/Next 766 0 R
/Dest [45 0 R /XYZ 0 556.9200000000004 null]
>>
endobj
-750 0 obj
+766 0 obj
<< /Title <feff0032002e0035002e0032002e00200052006500730070006f006e007300650073>
-/Parent 748 0 R
+/Parent 764 0 R
/Count 0
-/Next 751 0 R
-/Prev 749 0 R
+/Next 767 0 R
+/Prev 765 0 R
/Dest [45 0 R /XYZ 0 451.8000000000006 null]
>>
endobj
-751 0 obj
+767 0 obj
<< /Title <feff0032002e0035002e0033002e00200043006f006e00730075006d00650073>
-/Parent 748 0 R
+/Parent 764 0 R
/Count 0
-/Next 752 0 R
-/Prev 750 0 R
+/Next 768 0 R
+/Prev 766 0 R
/Dest [45 0 R /XYZ 0 346.6800000000005 null]
>>
endobj
-752 0 obj
+768 0 obj
<< /Title <feff0032002e0035002e0034002e002000500072006f00640075006300650073>
-/Parent 748 0 R
+/Parent 764 0 R
/Count 0
-/Prev 751 0 R
+/Prev 767 0 R
/Dest [45 0 R /XYZ 0 290.4000000000005 null]
>>
endobj
-753 0 obj
+769 0 obj
<< /Title <feff0032002e0036002e00200047004500540020002f00760032002f00640069006300740069006f006e006100720079002f007300650063006f006e0064006100720079002f006e0061006d00650073>
-/Parent 735 0 R
+/Parent 751 0 R
/Count 2
-/First 754 0 R
-/Last 755 0 R
-/Next 756 0 R
-/Prev 748 0 R
+/First 770 0 R
+/Last 771 0 R
+/Next 772 0 R
+/Prev 764 0 R
/Dest [45 0 R /XYZ 0 234.12000000000046 null]
>>
endobj
-754 0 obj
+770 0 obj
<< /Title <feff0032002e0036002e0031002e00200052006500730070006f006e007300650073>
-/Parent 753 0 R
+/Parent 769 0 R
/Count 0
-/Next 755 0 R
+/Next 771 0 R
/Dest [45 0 R /XYZ 0 194.04000000000045 null]
>>
endobj
-755 0 obj
+771 0 obj
<< /Title <feff0032002e0036002e0032002e002000500072006f00640075006300650073>
-/Parent 753 0 R
+/Parent 769 0 R
/Count 0
-/Prev 754 0 R
+/Prev 770 0 R
/Dest [61 0 R /XYZ 0 792.0 null]
>>
endobj
-756 0 obj
+772 0 obj
<< /Title <feff0032002e0037002e00200047004500540020002f00760032002f00640069006300740069006f006e006100720079002f007b00640069006300740069006f006e006100720079004e0061006d0065007d>
-/Parent 735 0 R
+/Parent 751 0 R
/Count 3
-/First 757 0 R
-/Last 759 0 R
-/Next 760 0 R
-/Prev 753 0 R
+/First 773 0 R
+/Last 775 0 R
+/Next 776 0 R
+/Prev 769 0 R
/Dest [61 0 R /XYZ 0 702.1200000000001 null]
>>
endobj
-757 0 obj
+773 0 obj
<< /Title <feff0032002e0037002e0031002e00200050006100720061006d00650074006500720073>
-/Parent 756 0 R
+/Parent 772 0 R
/Count 0
-/Next 758 0 R
+/Next 774 0 R
/Dest [61 0 R /XYZ 0 662.0400000000002 null]
>>
endobj
-758 0 obj
+774 0 obj
<< /Title <feff0032002e0037002e0032002e00200052006500730070006f006e007300650073>
-/Parent 756 0 R
+/Parent 772 0 R
/Count 0
-/Next 759 0 R
-/Prev 757 0 R
+/Next 775 0 R
+/Prev 773 0 R
/Dest [61 0 R /XYZ 0 556.9200000000003 null]
>>
endobj
-759 0 obj
+775 0 obj
<< /Title <feff0032002e0037002e0033002e002000500072006f00640075006300650073>
-/Parent 756 0 R
+/Parent 772 0 R
/Count 0
-/Prev 758 0 R
+/Prev 774 0 R
/Dest [61 0 R /XYZ 0 451.8000000000004 null]
>>
endobj
-760 0 obj
+776 0 obj
<< /Title <feff0032002e0038002e00200050005500540020002f00760032002f00640069006300740069006f006e006100720079002f007b006e0061006d0065007d>
-/Parent 735 0 R
+/Parent 751 0 R
/Count 4
-/First 761 0 R
-/Last 764 0 R
-/Next 765 0 R
-/Prev 756 0 R
+/First 777 0 R
+/Last 780 0 R
+/Next 781 0 R
+/Prev 772 0 R
/Dest [61 0 R /XYZ 0 395.5200000000004 null]
>>
endobj
-761 0 obj
+777 0 obj
<< /Title <feff0032002e0038002e0031002e00200050006100720061006d00650074006500720073>
-/Parent 760 0 R
+/Parent 776 0 R
/Count 0
-/Next 762 0 R
+/Next 778 0 R
/Dest [61 0 R /XYZ 0 355.44000000000034 null]
>>
endobj
-762 0 obj
+778 0 obj
<< /Title <feff0032002e0038002e0032002e00200052006500730070006f006e007300650073>
-/Parent 760 0 R
+/Parent 776 0 R
/Count 0
-/Next 763 0 R
-/Prev 761 0 R
+/Next 779 0 R
+/Prev 777 0 R
/Dest [61 0 R /XYZ 0 212.76000000000028 null]
>>
endobj
-763 0 obj
+779 0 obj
<< /Title <feff0032002e0038002e0033002e00200043006f006e00730075006d00650073>
-/Parent 760 0 R
+/Parent 776 0 R
/Count 0
-/Next 764 0 R
-/Prev 762 0 R
+/Next 780 0 R
+/Prev 778 0 R
/Dest [61 0 R /XYZ 0 107.64000000000024 null]
>>
endobj
-764 0 obj
+780 0 obj
<< /Title <feff0032002e0038002e0034002e002000500072006f00640075006300650073>
-/Parent 760 0 R
+/Parent 776 0 R
/Count 0
-/Prev 763 0 R
+/Prev 779 0 R
/Dest [75 0 R /XYZ 0 792.0 null]
>>
endobj
-765 0 obj
+781 0 obj
<< /Title <feff0032002e0039002e002000440045004c0045005400450020002f00760032002f00640069006300740069006f006e006100720079002f007b006e0061006d0065007d>
-/Parent 735 0 R
+/Parent 751 0 R
/Count 3
-/First 766 0 R
-/Last 768 0 R
-/Next 769 0 R
-/Prev 760 0 R
+/First 782 0 R
+/Last 784 0 R
+/Next 785 0 R
+/Prev 776 0 R
/Dest [75 0 R /XYZ 0 702.1200000000001 null]
>>
endobj
-766 0 obj
+782 0 obj
<< /Title <feff0032002e0039002e0031002e00200050006100720061006d00650074006500720073>
-/Parent 765 0 R
+/Parent 781 0 R
/Count 0
-/Next 767 0 R
+/Next 783 0 R
/Dest [75 0 R /XYZ 0 662.0400000000002 null]
>>
endobj
-767 0 obj
+783 0 obj
<< /Title <feff0032002e0039002e0032002e00200052006500730070006f006e007300650073>
-/Parent 765 0 R
+/Parent 781 0 R
/Count 0
-/Next 768 0 R
-/Prev 766 0 R
+/Next 784 0 R
+/Prev 782 0 R
/Dest [75 0 R /XYZ 0 556.9200000000003 null]
>>
endobj
-768 0 obj
+784 0 obj
<< /Title <feff0032002e0039002e0033002e002000500072006f00640075006300650073>
-/Parent 765 0 R
+/Parent 781 0 R
/Count 0
-/Prev 767 0 R
+/Prev 783 0 R
/Dest [75 0 R /XYZ 0 466.0800000000005 null]
>>
endobj
-769 0 obj
+785 0 obj
<< /Title <feff0032002e00310030002e002000440045004c0045005400450020002f00760032002f00640069006300740069006f006e006100720079002f007b006e0061006d0065007d002f0065006c0065006d0065006e00740073002f007b00730068006f00720074004e0061006d0065007d>
-/Parent 735 0 R
+/Parent 751 0 R
/Count 3
-/First 770 0 R
-/Last 772 0 R
-/Next 773 0 R
-/Prev 765 0 R
+/First 786 0 R
+/Last 788 0 R
+/Next 789 0 R
+/Prev 781 0 R
/Dest [75 0 R /XYZ 0 409.80000000000047 null]
>>
endobj
-770 0 obj
+786 0 obj
<< /Title <feff0032002e00310030002e0031002e00200050006100720061006d00650074006500720073>
-/Parent 769 0 R
+/Parent 785 0 R
/Count 0
-/Next 771 0 R
+/Next 787 0 R
/Dest [75 0 R /XYZ 0 341.64000000000044 null]
>>
endobj
-771 0 obj
+787 0 obj
<< /Title <feff0032002e00310030002e0032002e00200052006500730070006f006e007300650073>
-/Parent 769 0 R
+/Parent 785 0 R
/Count 0
-/Next 772 0 R
-/Prev 770 0 R
+/Next 788 0 R
+/Prev 786 0 R
/Dest [75 0 R /XYZ 0 198.9600000000004 null]
>>
endobj
-772 0 obj
+788 0 obj
<< /Title <feff0032002e00310030002e0033002e002000500072006f00640075006300650073>
-/Parent 769 0 R
+/Parent 785 0 R
/Count 0
-/Prev 771 0 R
+/Prev 787 0 R
/Dest [75 0 R /XYZ 0 108.12000000000037 null]
>>
endobj
-773 0 obj
+789 0 obj
<< /Title <feff0032002e00310031002e00200050005500540020002f00760032002f006c006f006f0070002f006100640064004f007000650072006100740069006f006e00610050006f006c006900630079002f007b006c006f006f0070004e0061006d0065007d002f0070006f006c006900630079004d006f00640065006c002f007b0070006f006c0069006300790054007900700065007d002f007b0070006f006c00690063007900560065007200730069006f006e007d>
-/Parent 735 0 R
+/Parent 751 0 R
/Count 3
-/First 774 0 R
-/Last 776 0 R
-/Next 777 0 R
-/Prev 769 0 R
+/First 790 0 R
+/Last 792 0 R
+/Next 793 0 R
+/Prev 785 0 R
/Dest [87 0 R /XYZ 0 792.0 null]
>>
endobj
-774 0 obj
+790 0 obj
<< /Title <feff0032002e00310031002e0031002e00200050006100720061006d00650074006500720073>
-/Parent 773 0 R
+/Parent 789 0 R
/Count 0
-/Next 775 0 R
+/Next 791 0 R
/Dest [87 0 R /XYZ 0 662.1600000000001 null]
>>
endobj
-775 0 obj
+791 0 obj
<< /Title <feff0032002e00310031002e0032002e00200052006500730070006f006e007300650073>
-/Parent 773 0 R
+/Parent 789 0 R
/Count 0
-/Next 776 0 R
-/Prev 774 0 R
+/Next 792 0 R
+/Prev 790 0 R
/Dest [87 0 R /XYZ 0 481.92000000000024 null]
>>
endobj
-776 0 obj
+792 0 obj
<< /Title <feff0032002e00310031002e0033002e002000500072006f00640075006300650073>
-/Parent 773 0 R
+/Parent 789 0 R
/Count 0
-/Prev 775 0 R
+/Prev 791 0 R
/Dest [87 0 R /XYZ 0 376.8000000000002 null]
>>
endobj
-777 0 obj
+793 0 obj
<< /Title <feff0032002e00310032002e00200050004f005300540020002f00760032002f006c006f006f0070002f006300720065006100740065002f007b006c006f006f0070004e0061006d0065007d003f00740065006d0070006c006100740065004e0061006d0065003d007b00740065006d0070006c006100740065004e0061006d0065007d>
-/Parent 735 0 R
+/Parent 751 0 R
/Count 4
-/First 778 0 R
-/Last 781 0 R
-/Next 782 0 R
-/Prev 773 0 R
+/First 794 0 R
+/Last 797 0 R
+/Next 798 0 R
+/Prev 789 0 R
/Dest [87 0 R /XYZ 0 320.52000000000015 null]
>>
endobj
-778 0 obj
+794 0 obj
<< /Title <feff0032002e00310032002e0031002e00200050006100720061006d00650074006500720073>
-/Parent 777 0 R
+/Parent 793 0 R
/Count 0
-/Next 779 0 R
+/Next 795 0 R
/Dest [87 0 R /XYZ 0 224.28000000000017 null]
>>
endobj
-779 0 obj
+795 0 obj
<< /Title <feff0032002e00310032002e0032002e00200052006500730070006f006e007300650073>
-/Parent 777 0 R
+/Parent 793 0 R
/Count 0
-/Next 780 0 R
-/Prev 778 0 R
+/Next 796 0 R
+/Prev 794 0 R
/Dest [97 0 R /XYZ 0 792.0 null]
>>
endobj
-780 0 obj
+796 0 obj
<< /Title <feff0032002e00310032002e0033002e00200043006f006e00730075006d00650073>
-/Parent 777 0 R
+/Parent 793 0 R
/Count 0
-/Next 781 0 R
-/Prev 779 0 R
+/Next 797 0 R
+/Prev 795 0 R
/Dest [97 0 R /XYZ 0 653.2800000000002 null]
>>
endobj
-781 0 obj
+797 0 obj
<< /Title <feff0032002e00310032002e0034002e002000500072006f00640075006300650073>
-/Parent 777 0 R
+/Parent 793 0 R
/Count 0
-/Prev 780 0 R
+/Prev 796 0 R
/Dest [97 0 R /XYZ 0 597.0000000000003 null]
>>
endobj
-782 0 obj
+798 0 obj
<< /Title <feff0032002e00310033002e00200050005500540020002f00760032002f006c006f006f0070002f00640065006c006500740065002f007b006c006f006f0070004e0061006d0065007d>
-/Parent 735 0 R
+/Parent 751 0 R
/Count 2
-/First 783 0 R
-/Last 784 0 R
-/Next 785 0 R
-/Prev 777 0 R
+/First 799 0 R
+/Last 800 0 R
+/Next 801 0 R
+/Prev 793 0 R
/Dest [97 0 R /XYZ 0 540.7200000000005 null]
>>
endobj
-783 0 obj
+799 0 obj
<< /Title <feff0032002e00310033002e0031002e00200050006100720061006d00650074006500720073>
-/Parent 782 0 R
+/Parent 798 0 R
/Count 0
-/Next 784 0 R
+/Next 800 0 R
/Dest [97 0 R /XYZ 0 500.6400000000005 null]
>>
endobj
-784 0 obj
+800 0 obj
<< /Title <feff0032002e00310033002e0032002e00200052006500730070006f006e007300650073>
-/Parent 782 0 R
+/Parent 798 0 R
/Count 0
-/Prev 783 0 R
+/Prev 799 0 R
/Dest [97 0 R /XYZ 0 395.5200000000005 null]
>>
endobj
-785 0 obj
+801 0 obj
<< /Title <feff0032002e00310034002e00200050005500540020002f00760032002f006c006f006f0070002f006400650070006c006f0079002f007b006c006f006f0070004e0061006d0065007d>
-/Parent 735 0 R
+/Parent 751 0 R
/Count 3
-/First 786 0 R
-/Last 788 0 R
-/Next 789 0 R
-/Prev 782 0 R
+/First 802 0 R
+/Last 804 0 R
+/Next 805 0 R
+/Prev 798 0 R
/Dest [97 0 R /XYZ 0 304.6800000000005 null]
>>
endobj
-786 0 obj
+802 0 obj
<< /Title <feff0032002e00310034002e0031002e00200050006100720061006d00650074006500720073>
-/Parent 785 0 R
+/Parent 801 0 R
/Count 0
-/Next 787 0 R
+/Next 803 0 R
/Dest [97 0 R /XYZ 0 264.6000000000005 null]
>>
endobj
-787 0 obj
+803 0 obj
<< /Title <feff0032002e00310034002e0032002e00200052006500730070006f006e007300650073>
-/Parent 785 0 R
+/Parent 801 0 R
/Count 0
-/Next 788 0 R
-/Prev 786 0 R
+/Next 804 0 R
+/Prev 802 0 R
/Dest [97 0 R /XYZ 0 159.48000000000047 null]
>>
endobj
-788 0 obj
+804 0 obj
<< /Title <feff0032002e00310034002e0033002e002000500072006f00640075006300650073>
-/Parent 785 0 R
+/Parent 801 0 R
/Count 0
-/Prev 787 0 R
+/Prev 803 0 R
/Dest [110 0 R /XYZ 0 792.0 null]
>>
endobj
-789 0 obj
+805 0 obj
<< /Title <feff0032002e00310035002e00200047004500540020002f00760032002f006c006f006f0070002f0067006500740041006c006c004e0061006d00650073>
-/Parent 735 0 R
+/Parent 751 0 R
/Count 2
-/First 790 0 R
-/Last 791 0 R
-/Next 792 0 R
-/Prev 785 0 R
+/First 806 0 R
+/Last 807 0 R
+/Next 808 0 R
+/Prev 801 0 R
/Dest [110 0 R /XYZ 0 702.1200000000001 null]
>>
endobj
-790 0 obj
+806 0 obj
<< /Title <feff0032002e00310035002e0031002e00200052006500730070006f006e007300650073>
-/Parent 789 0 R
+/Parent 805 0 R
/Count 0
-/Next 791 0 R
+/Next 807 0 R
/Dest [110 0 R /XYZ 0 662.0400000000002 null]
>>
endobj
-791 0 obj
+807 0 obj
<< /Title <feff0032002e00310035002e0032002e002000500072006f00640075006300650073>
-/Parent 789 0 R
+/Parent 805 0 R
/Count 0
-/Prev 790 0 R
+/Prev 806 0 R
/Dest [110 0 R /XYZ 0 556.9200000000003 null]
>>
endobj
-792 0 obj
+808 0 obj
<< /Title <feff0032002e00310036002e00200047004500540020002f00760032002f006c006f006f0070002f006700650074007300740061007400750073002f007b006c006f006f0070004e0061006d0065007d>
-/Parent 735 0 R
+/Parent 751 0 R
/Count 3
-/First 793 0 R
-/Last 795 0 R
-/Next 796 0 R
-/Prev 789 0 R
+/First 809 0 R
+/Last 811 0 R
+/Next 812 0 R
+/Prev 805 0 R
/Dest [110 0 R /XYZ 0 500.64000000000044 null]
>>
endobj
-793 0 obj
+809 0 obj
<< /Title <feff0032002e00310036002e0031002e00200050006100720061006d00650074006500720073>
-/Parent 792 0 R
+/Parent 808 0 R
/Count 0
-/Next 794 0 R
+/Next 810 0 R
/Dest [110 0 R /XYZ 0 460.5600000000004 null]
>>
endobj
-794 0 obj
+810 0 obj
<< /Title <feff0032002e00310036002e0032002e00200052006500730070006f006e007300650073>
-/Parent 792 0 R
+/Parent 808 0 R
/Count 0
-/Next 795 0 R
-/Prev 793 0 R
+/Next 811 0 R
+/Prev 809 0 R
/Dest [110 0 R /XYZ 0 355.44000000000034 null]
>>
endobj
-795 0 obj
+811 0 obj
<< /Title <feff0032002e00310036002e0033002e002000500072006f00640075006300650073>
-/Parent 792 0 R
+/Parent 808 0 R
/Count 0
-/Prev 794 0 R
+/Prev 810 0 R
/Dest [110 0 R /XYZ 0 250.32000000000028 null]
>>
endobj
-796 0 obj
+812 0 obj
<< /Title <feff0032002e00310037002e00200050005500540020002f00760032002f006c006f006f0070002f0072006500660072006500730068004d006900630072006f00530065007200760069006300650050006f006c006900630079004a0073006f006e0053006300680065006d0061002f007b006c006f006f0070004e0061006d0065007d002f007b006d006900630072006f00530065007200760069006300650050006f006c006900630079004e0061006d0065007d>
-/Parent 735 0 R
+/Parent 751 0 R
/Count 3
-/First 797 0 R
-/Last 799 0 R
-/Next 800 0 R
-/Prev 792 0 R
+/First 813 0 R
+/Last 815 0 R
+/Next 816 0 R
+/Prev 808 0 R
/Dest [110 0 R /XYZ 0 194.04000000000025 null]
>>
endobj
-797 0 obj
+813 0 obj
<< /Title <feff0032002e00310037002e0031002e00200050006100720061006d00650074006500720073>
-/Parent 796 0 R
+/Parent 812 0 R
/Count 0
-/Next 798 0 R
+/Next 814 0 R
/Dest [110 0 R /XYZ 0 97.80000000000024 null]
>>
endobj
-798 0 obj
+814 0 obj
<< /Title <feff0032002e00310037002e0032002e00200052006500730070006f006e007300650073>
-/Parent 796 0 R
+/Parent 812 0 R
/Count 0
-/Next 799 0 R
-/Prev 797 0 R
+/Next 815 0 R
+/Prev 813 0 R
/Dest [123 0 R /XYZ 0 645.5999999999999 null]
>>
endobj
-799 0 obj
+815 0 obj
<< /Title <feff0032002e00310037002e0033002e002000500072006f00640075006300650073>
-/Parent 796 0 R
+/Parent 812 0 R
/Count 0
-/Prev 798 0 R
+/Prev 814 0 R
/Dest [123 0 R /XYZ 0 540.48 null]
>>
endobj
-800 0 obj
+816 0 obj
<< /Title <feff0032002e00310038002e00200050005500540020002f00760032002f006c006f006f0070002f0072006500660072006500730068004f007000650072006100740069006f006e0061006c0050006f006c006900630079004a0073006f006e0053006300680065006d0061002f007b006c006f006f0070004e0061006d0065007d002f007b006f007000650072006100740069006f006e0061006c0050006f006c006900630079004e0061006d0065007d>
-/Parent 735 0 R
+/Parent 751 0 R
/Count 3
-/First 801 0 R
-/Last 803 0 R
-/Next 804 0 R
-/Prev 796 0 R
+/First 817 0 R
+/Last 819 0 R
+/Next 820 0 R
+/Prev 812 0 R
/Dest [123 0 R /XYZ 0 484.20000000000016 null]
>>
endobj
-801 0 obj
+817 0 obj
<< /Title <feff0032002e00310038002e0031002e00200050006100720061006d00650074006500720073>
-/Parent 800 0 R
+/Parent 816 0 R
/Count 0
-/Next 802 0 R
+/Next 818 0 R
/Dest [123 0 R /XYZ 0 387.96000000000015 null]
>>
endobj
-802 0 obj
+818 0 obj
<< /Title <feff0032002e00310038002e0032002e00200052006500730070006f006e007300650073>
-/Parent 800 0 R
+/Parent 816 0 R
/Count 0
-/Next 803 0 R
-/Prev 801 0 R
+/Next 819 0 R
+/Prev 817 0 R
/Dest [123 0 R /XYZ 0 245.28000000000014 null]
>>
endobj
-803 0 obj
+819 0 obj
<< /Title <feff0032002e00310038002e0033002e002000500072006f00640075006300650073>
-/Parent 800 0 R
+/Parent 816 0 R
/Count 0
-/Prev 802 0 R
+/Prev 818 0 R
/Dest [123 0 R /XYZ 0 140.1600000000001 null]
>>
endobj
-804 0 obj
+820 0 obj
<< /Title <feff0032002e00310039002e00200050005500540020002f00760032002f006c006f006f0070002f00720065006d006f00760065004f007000650072006100740069006f006e00610050006f006c006900630079002f007b006c006f006f0070004e0061006d0065007d002f0070006f006c006900630079004d006f00640065006c002f007b0070006f006c0069006300790054007900700065007d002f007b0070006f006c00690063007900560065007200730069006f006e007d002f007b0070006f006c006900630079004e0061006d0065007d>
-/Parent 735 0 R
+/Parent 751 0 R
/Count 3
-/First 805 0 R
-/Last 807 0 R
-/Next 808 0 R
-/Prev 800 0 R
+/First 821 0 R
+/Last 823 0 R
+/Next 824 0 R
+/Prev 816 0 R
/Dest [133 0 R /XYZ 0 792.0 null]
>>
endobj
-805 0 obj
+821 0 obj
<< /Title <feff0032002e00310039002e0031002e00200050006100720061006d00650074006500720073>
-/Parent 804 0 R
+/Parent 820 0 R
/Count 0
-/Next 806 0 R
+/Next 822 0 R
/Dest [133 0 R /XYZ 0 662.1600000000001 null]
>>
endobj
-806 0 obj
+822 0 obj
<< /Title <feff0032002e00310039002e0032002e00200052006500730070006f006e007300650073>
-/Parent 804 0 R
+/Parent 820 0 R
/Count 0
-/Next 807 0 R
-/Prev 805 0 R
+/Next 823 0 R
+/Prev 821 0 R
/Dest [133 0 R /XYZ 0 444.3600000000002 null]
>>
endobj
-807 0 obj
+823 0 obj
<< /Title <feff0032002e00310039002e0033002e002000500072006f00640075006300650073>
-/Parent 804 0 R
+/Parent 820 0 R
/Count 0
-/Prev 806 0 R
+/Prev 822 0 R
/Dest [133 0 R /XYZ 0 339.2400000000001 null]
>>
endobj
-808 0 obj
+824 0 obj
<< /Title <feff0032002e00320030002e00200050005500540020002f00760032002f006c006f006f0070002f0072006500730074006100720074002f007b006c006f006f0070004e0061006d0065007d>
-/Parent 735 0 R
+/Parent 751 0 R
/Count 3
-/First 809 0 R
-/Last 811 0 R
-/Next 812 0 R
-/Prev 804 0 R
+/First 825 0 R
+/Last 827 0 R
+/Next 828 0 R
+/Prev 820 0 R
/Dest [133 0 R /XYZ 0 282.9600000000001 null]
>>
endobj
-809 0 obj
+825 0 obj
<< /Title <feff0032002e00320030002e0031002e00200050006100720061006d00650074006500720073>
-/Parent 808 0 R
+/Parent 824 0 R
/Count 0
-/Next 810 0 R
+/Next 826 0 R
/Dest [133 0 R /XYZ 0 242.8800000000001 null]
>>
endobj
-810 0 obj
+826 0 obj
<< /Title <feff0032002e00320030002e0032002e00200052006500730070006f006e007300650073>
-/Parent 808 0 R
+/Parent 824 0 R
/Count 0
-/Next 811 0 R
-/Prev 809 0 R
+/Next 827 0 R
+/Prev 825 0 R
/Dest [133 0 R /XYZ 0 137.76000000000008 null]
>>
endobj
-811 0 obj
+827 0 obj
<< /Title <feff0032002e00320030002e0033002e002000500072006f00640075006300650073>
-/Parent 808 0 R
+/Parent 824 0 R
/Count 0
-/Prev 810 0 R
+/Prev 826 0 R
/Dest [144 0 R /XYZ 0 683.1600000000001 null]
>>
endobj
-812 0 obj
+828 0 obj
<< /Title <feff0032002e00320031002e00200050005500540020002f00760032002f006c006f006f0070002f00730074006f0070002f007b006c006f006f0070004e0061006d0065007d>
-/Parent 735 0 R
+/Parent 751 0 R
/Count 3
-/First 813 0 R
-/Last 815 0 R
-/Next 816 0 R
-/Prev 808 0 R
+/First 829 0 R
+/Last 831 0 R
+/Next 832 0 R
+/Prev 824 0 R
/Dest [144 0 R /XYZ 0 626.8800000000002 null]
>>
endobj
-813 0 obj
+829 0 obj
<< /Title <feff0032002e00320031002e0031002e00200050006100720061006d00650074006500720073>
-/Parent 812 0 R
+/Parent 828 0 R
/Count 0
-/Next 814 0 R
+/Next 830 0 R
/Dest [144 0 R /XYZ 0 586.8000000000003 null]
>>
endobj
-814 0 obj
+830 0 obj
<< /Title <feff0032002e00320031002e0032002e00200052006500730070006f006e007300650073>
-/Parent 812 0 R
+/Parent 828 0 R
/Count 0
-/Next 815 0 R
-/Prev 813 0 R
+/Next 831 0 R
+/Prev 829 0 R
/Dest [144 0 R /XYZ 0 481.68000000000046 null]
>>
endobj
-815 0 obj
+831 0 obj
<< /Title <feff0032002e00320031002e0033002e002000500072006f00640075006300650073>
-/Parent 812 0 R
+/Parent 828 0 R
/Count 0
-/Prev 814 0 R
+/Prev 830 0 R
/Dest [144 0 R /XYZ 0 376.5600000000004 null]
>>
endobj
-816 0 obj
+832 0 obj
<< /Title <feff0032002e00320032002e00200050005500540020002f00760032002f006c006f006f0070002f007300750062006d00690074002f007b006c006f006f0070004e0061006d0065007d>
-/Parent 735 0 R
+/Parent 751 0 R
/Count 3
-/First 817 0 R
-/Last 819 0 R
-/Next 820 0 R
-/Prev 812 0 R
+/First 833 0 R
+/Last 835 0 R
+/Next 836 0 R
+/Prev 828 0 R
/Dest [144 0 R /XYZ 0 320.28000000000037 null]
>>
endobj
-817 0 obj
+833 0 obj
<< /Title <feff0032002e00320032002e0031002e00200050006100720061006d00650074006500720073>
-/Parent 816 0 R
+/Parent 832 0 R
/Count 0
-/Next 818 0 R
+/Next 834 0 R
/Dest [144 0 R /XYZ 0 280.20000000000033 null]
>>
endobj
-818 0 obj
+834 0 obj
<< /Title <feff0032002e00320032002e0032002e00200052006500730070006f006e007300650073>
-/Parent 816 0 R
+/Parent 832 0 R
/Count 0
-/Next 819 0 R
-/Prev 817 0 R
+/Next 835 0 R
+/Prev 833 0 R
/Dest [144 0 R /XYZ 0 175.08000000000033 null]
>>
endobj
-819 0 obj
+835 0 obj
<< /Title <feff0032002e00320032002e0033002e002000500072006f00640075006300650073>
-/Parent 816 0 R
+/Parent 832 0 R
/Count 0
-/Prev 818 0 R
+/Prev 834 0 R
/Dest [160 0 R /XYZ 0 792.0 null]
>>
endobj
-820 0 obj
+836 0 obj
<< /Title <feff0032002e00320033002e00200050005500540020002f00760032002f006c006f006f0070002f0075006e006400650070006c006f0079002f007b006c006f006f0070004e0061006d0065007d>
-/Parent 735 0 R
+/Parent 751 0 R
/Count 3
-/First 821 0 R
-/Last 823 0 R
-/Next 824 0 R
-/Prev 816 0 R
+/First 837 0 R
+/Last 839 0 R
+/Next 840 0 R
+/Prev 832 0 R
/Dest [160 0 R /XYZ 0 702.1200000000001 null]
>>
endobj
-821 0 obj
+837 0 obj
<< /Title <feff0032002e00320033002e0031002e00200050006100720061006d00650074006500720073>
-/Parent 820 0 R
+/Parent 836 0 R
/Count 0
-/Next 822 0 R
+/Next 838 0 R
/Dest [160 0 R /XYZ 0 662.0400000000002 null]
>>
endobj
-822 0 obj
+838 0 obj
<< /Title <feff0032002e00320033002e0032002e00200052006500730070006f006e007300650073>
-/Parent 820 0 R
+/Parent 836 0 R
/Count 0
-/Next 823 0 R
-/Prev 821 0 R
+/Next 839 0 R
+/Prev 837 0 R
/Dest [160 0 R /XYZ 0 556.9200000000003 null]
>>
endobj
-823 0 obj
+839 0 obj
<< /Title <feff0032002e00320033002e0033002e002000500072006f00640075006300650073>
-/Parent 820 0 R
+/Parent 836 0 R
/Count 0
-/Prev 822 0 R
+/Prev 838 0 R
/Dest [160 0 R /XYZ 0 451.8000000000004 null]
>>
endobj
-824 0 obj
+840 0 obj
<< /Title <feff0032002e00320034002e00200050004f005300540020002f00760032002f006c006f006f0070002f0075007000640061007400650047006c006f00620061006c00500072006f0070006500720074006900650073002f007b006c006f006f0070004e0061006d0065007d>
-/Parent 735 0 R
+/Parent 751 0 R
/Count 4
-/First 825 0 R
-/Last 828 0 R
-/Next 829 0 R
-/Prev 820 0 R
+/First 841 0 R
+/Last 844 0 R
+/Next 845 0 R
+/Prev 836 0 R
/Dest [160 0 R /XYZ 0 395.5200000000004 null]
>>
endobj
-825 0 obj
+841 0 obj
<< /Title <feff0032002e00320034002e0031002e00200050006100720061006d00650074006500720073>
-/Parent 824 0 R
+/Parent 840 0 R
/Count 0
-/Next 826 0 R
+/Next 842 0 R
/Dest [160 0 R /XYZ 0 355.44000000000034 null]
>>
endobj
-826 0 obj
+842 0 obj
<< /Title <feff0032002e00320034002e0032002e00200052006500730070006f006e007300650073>
-/Parent 824 0 R
+/Parent 840 0 R
/Count 0
-/Next 827 0 R
-/Prev 825 0 R
+/Next 843 0 R
+/Prev 841 0 R
/Dest [160 0 R /XYZ 0 212.76000000000028 null]
>>
endobj
-827 0 obj
+843 0 obj
<< /Title <feff0032002e00320034002e0033002e00200043006f006e00730075006d00650073>
-/Parent 824 0 R
+/Parent 840 0 R
/Count 0
-/Next 828 0 R
-/Prev 826 0 R
+/Next 844 0 R
+/Prev 842 0 R
/Dest [160 0 R /XYZ 0 107.64000000000024 null]
>>
endobj
-828 0 obj
+844 0 obj
<< /Title <feff0032002e00320034002e0034002e002000500072006f00640075006300650073>
-/Parent 824 0 R
+/Parent 840 0 R
/Count 0
-/Prev 827 0 R
+/Prev 843 0 R
/Dest [174 0 R /XYZ 0 792.0 null]
>>
endobj
-829 0 obj
+845 0 obj
<< /Title <feff0032002e00320035002e00200050004f005300540020002f00760032002f006c006f006f0070002f007500700064006100740065004d006900630072006f00730065007200760069006300650050006f006c006900630079002f007b006c006f006f0070004e0061006d0065007d>
-/Parent 735 0 R
+/Parent 751 0 R
/Count 4
-/First 830 0 R
-/Last 833 0 R
-/Next 834 0 R
-/Prev 824 0 R
+/First 846 0 R
+/Last 849 0 R
+/Next 850 0 R
+/Prev 840 0 R
/Dest [174 0 R /XYZ 0 702.1200000000001 null]
>>
endobj
-830 0 obj
+846 0 obj
<< /Title <feff0032002e00320035002e0031002e00200050006100720061006d00650074006500720073>
-/Parent 829 0 R
+/Parent 845 0 R
/Count 0
-/Next 831 0 R
+/Next 847 0 R
/Dest [174 0 R /XYZ 0 633.9600000000002 null]
>>
endobj
-831 0 obj
+847 0 obj
<< /Title <feff0032002e00320035002e0032002e00200052006500730070006f006e007300650073>
-/Parent 829 0 R
+/Parent 845 0 R
/Count 0
-/Next 832 0 R
-/Prev 830 0 R
+/Next 848 0 R
+/Prev 846 0 R
/Dest [174 0 R /XYZ 0 491.28000000000026 null]
>>
endobj
-832 0 obj
+848 0 obj
<< /Title <feff0032002e00320035002e0033002e00200043006f006e00730075006d00650073>
-/Parent 829 0 R
+/Parent 845 0 R
/Count 0
-/Next 833 0 R
-/Prev 831 0 R
+/Next 849 0 R
+/Prev 847 0 R
/Dest [174 0 R /XYZ 0 386.1600000000002 null]
>>
endobj
-833 0 obj
+849 0 obj
<< /Title <feff0032002e00320035002e0034002e002000500072006f00640075006300650073>
-/Parent 829 0 R
+/Parent 845 0 R
/Count 0
-/Prev 832 0 R
+/Prev 848 0 R
/Dest [174 0 R /XYZ 0 329.88000000000017 null]
>>
endobj
-834 0 obj
+850 0 obj
<< /Title <feff0032002e00320036002e00200050004f005300540020002f00760032002f006c006f006f0070002f007500700064006100740065004f007000650072006100740069006f006e0061006c0050006f006c00690063006900650073002f007b006c006f006f0070004e0061006d0065007d>
-/Parent 735 0 R
+/Parent 751 0 R
/Count 4
-/First 835 0 R
-/Last 838 0 R
-/Next 839 0 R
-/Prev 829 0 R
+/First 851 0 R
+/Last 854 0 R
+/Next 855 0 R
+/Prev 845 0 R
/Dest [174 0 R /XYZ 0 273.60000000000014 null]
>>
endobj
-835 0 obj
+851 0 obj
<< /Title <feff0032002e00320036002e0031002e00200050006100720061006d00650074006500720073>
-/Parent 834 0 R
+/Parent 850 0 R
/Count 0
-/Next 836 0 R
+/Next 852 0 R
/Dest [174 0 R /XYZ 0 205.44000000000014 null]
>>
endobj
-836 0 obj
+852 0 obj
<< /Title <feff0032002e00320036002e0032002e00200052006500730070006f006e007300650073>
-/Parent 834 0 R
+/Parent 850 0 R
/Count 0
-/Next 837 0 R
-/Prev 835 0 R
+/Next 853 0 R
+/Prev 851 0 R
/Dest [187 0 R /XYZ 0 792.0 null]
>>
endobj
-837 0 obj
+853 0 obj
<< /Title <feff0032002e00320036002e0033002e00200043006f006e00730075006d00650073>
-/Parent 834 0 R
+/Parent 850 0 R
/Count 0
-/Next 838 0 R
-/Prev 836 0 R
+/Next 854 0 R
+/Prev 852 0 R
/Dest [187 0 R /XYZ 0 653.2800000000002 null]
>>
endobj
-838 0 obj
+854 0 obj
<< /Title <feff0032002e00320036002e0034002e002000500072006f00640075006300650073>
-/Parent 834 0 R
+/Parent 850 0 R
/Count 0
-/Prev 837 0 R
+/Prev 853 0 R
/Dest [187 0 R /XYZ 0 597.0000000000003 null]
>>
endobj
-839 0 obj
+855 0 obj
<< /Title <feff0032002e00320037002e00200047004500540020002f00760032002f006c006f006f0070002f007b006c006f006f0070004e0061006d0065007d>
-/Parent 735 0 R
+/Parent 751 0 R
/Count 3
-/First 840 0 R
-/Last 842 0 R
-/Next 843 0 R
-/Prev 834 0 R
+/First 856 0 R
+/Last 858 0 R
+/Next 859 0 R
+/Prev 850 0 R
/Dest [187 0 R /XYZ 0 540.7200000000005 null]
>>
endobj
-840 0 obj
+856 0 obj
<< /Title <feff0032002e00320037002e0031002e00200050006100720061006d00650074006500720073>
-/Parent 839 0 R
+/Parent 855 0 R
/Count 0
-/Next 841 0 R
+/Next 857 0 R
/Dest [187 0 R /XYZ 0 500.6400000000005 null]
>>
endobj
-841 0 obj
+857 0 obj
<< /Title <feff0032002e00320037002e0032002e00200052006500730070006f006e007300650073>
-/Parent 839 0 R
+/Parent 855 0 R
/Count 0
-/Next 842 0 R
-/Prev 840 0 R
+/Next 858 0 R
+/Prev 856 0 R
/Dest [187 0 R /XYZ 0 395.5200000000005 null]
>>
endobj
-842 0 obj
+858 0 obj
<< /Title <feff0032002e00320037002e0033002e002000500072006f00640075006300650073>
-/Parent 839 0 R
+/Parent 855 0 R
/Count 0
-/Prev 841 0 R
+/Prev 857 0 R
/Dest [187 0 R /XYZ 0 290.40000000000043 null]
>>
endobj
-843 0 obj
+859 0 obj
<< /Title <feff0032002e00320038002e00200047004500540020002f00760032002f0070006f006c00690063006900650073>
-/Parent 735 0 R
+/Parent 751 0 R
/Count 2
-/First 844 0 R
-/Last 845 0 R
-/Next 846 0 R
-/Prev 839 0 R
+/First 860 0 R
+/Last 861 0 R
+/Next 862 0 R
+/Prev 855 0 R
/Dest [187 0 R /XYZ 0 234.1200000000004 null]
>>
endobj
-844 0 obj
+860 0 obj
<< /Title <feff0032002e00320038002e0031002e00200052006500730070006f006e007300650073>
-/Parent 843 0 R
+/Parent 859 0 R
/Count 0
-/Next 845 0 R
+/Next 861 0 R
/Dest [187 0 R /XYZ 0 194.0400000000004 null]
>>
endobj
-845 0 obj
+861 0 obj
<< /Title <feff0032002e00320038002e0032002e002000500072006f00640075006300650073>
-/Parent 843 0 R
+/Parent 859 0 R
/Count 0
-/Prev 844 0 R
+/Prev 860 0 R
/Dest [201 0 R /XYZ 0 792.0 null]
>>
endobj
-846 0 obj
+862 0 obj
<< /Title <feff0032002e00320039002e00200050005500540020002f00760032002f0070006f006c00690063006900650073002f007000640070004400650070006c006f0079006d0065006e0074>
-/Parent 735 0 R
+/Parent 751 0 R
/Count 3
-/First 847 0 R
-/Last 849 0 R
-/Next 850 0 R
-/Prev 843 0 R
+/First 863 0 R
+/Last 865 0 R
+/Next 866 0 R
+/Prev 859 0 R
/Dest [201 0 R /XYZ 0 702.1200000000001 null]
>>
endobj
-847 0 obj
+863 0 obj
<< /Title <feff0032002e00320039002e0031002e00200050006100720061006d00650074006500720073>
-/Parent 846 0 R
+/Parent 862 0 R
/Count 0
-/Next 848 0 R
+/Next 864 0 R
/Dest [201 0 R /XYZ 0 662.0400000000002 null]
>>
endobj
-848 0 obj
+864 0 obj
<< /Title <feff0032002e00320039002e0032002e00200052006500730070006f006e007300650073>
-/Parent 846 0 R
+/Parent 862 0 R
/Count 0
-/Next 849 0 R
-/Prev 847 0 R
+/Next 865 0 R
+/Prev 863 0 R
/Dest [201 0 R /XYZ 0 556.9200000000003 null]
>>
endobj
-849 0 obj
+865 0 obj
<< /Title <feff0032002e00320039002e0033002e00200043006f006e00730075006d00650073>
-/Parent 846 0 R
+/Parent 862 0 R
/Count 0
-/Prev 848 0 R
+/Prev 864 0 R
/Dest [201 0 R /XYZ 0 466.0800000000005 null]
>>
endobj
-850 0 obj
+866 0 obj
<< /Title <feff0032002e00330030002e00200050004f005300540020002f00760032002f0070006f006c00690063006900650073002f0070006f006c0069006300790074007900700065>
-/Parent 735 0 R
+/Parent 751 0 R
/Count 3
-/First 851 0 R
-/Last 853 0 R
-/Next 854 0 R
-/Prev 846 0 R
+/First 867 0 R
+/Last 869 0 R
+/Next 870 0 R
+/Prev 862 0 R
/Dest [201 0 R /XYZ 0 409.80000000000047 null]
>>
endobj
-851 0 obj
+867 0 obj
<< /Title <feff0032002e00330030002e0031002e00200050006100720061006d00650074006500720073>
-/Parent 850 0 R
+/Parent 866 0 R
/Count 0
-/Next 852 0 R
+/Next 868 0 R
/Dest [201 0 R /XYZ 0 369.7200000000004 null]
>>
endobj
-852 0 obj
+868 0 obj
<< /Title <feff0032002e00330030002e0032002e00200052006500730070006f006e007300650073>
-/Parent 850 0 R
+/Parent 866 0 R
/Count 0
-/Next 853 0 R
-/Prev 851 0 R
+/Next 869 0 R
+/Prev 867 0 R
/Dest [201 0 R /XYZ 0 264.6000000000004 null]
>>
endobj
-853 0 obj
+869 0 obj
<< /Title <feff0032002e00330030002e0033002e00200043006f006e00730075006d00650073>
-/Parent 850 0 R
+/Parent 866 0 R
/Count 0
-/Prev 852 0 R
+/Prev 868 0 R
/Dest [201 0 R /XYZ 0 173.76000000000042 null]
>>
endobj
-854 0 obj
+870 0 obj
<< /Title <feff0032002e00330031002e00200050004f005300540020002f00760032002f0070006f006c00690063006900650073002f007b0070006f006c006900630079004d006f00640065006c0054007900700065007d002f007b0070006f006c006900630079004d006f00640065006c00560065007200730069006f006e007d002f007b0070006f006c006900630079004e0061006d0065007d002f007b0070006f006c00690063007900560065007200730069006f006e007d>
-/Parent 735 0 R
+/Parent 751 0 R
/Count 4
-/First 855 0 R
-/Last 858 0 R
-/Next 859 0 R
-/Prev 850 0 R
+/First 871 0 R
+/Last 874 0 R
+/Next 875 0 R
+/Prev 866 0 R
/Dest [213 0 R /XYZ 0 792.0 null]
>>
endobj
-855 0 obj
+871 0 obj
<< /Title <feff0032002e00330031002e0031002e00200050006100720061006d00650074006500720073>
-/Parent 854 0 R
+/Parent 870 0 R
/Count 0
-/Next 856 0 R
+/Next 872 0 R
/Dest [213 0 R /XYZ 0 662.1600000000001 null]
>>
endobj
-856 0 obj
+872 0 obj
<< /Title <feff0032002e00330031002e0032002e00200052006500730070006f006e007300650073>
-/Parent 854 0 R
+/Parent 870 0 R
/Count 0
-/Next 857 0 R
-/Prev 855 0 R
+/Next 873 0 R
+/Prev 871 0 R
/Dest [213 0 R /XYZ 0 406.80000000000024 null]
>>
endobj
-857 0 obj
+873 0 obj
<< /Title <feff0032002e00330031002e0033002e00200043006f006e00730075006d00650073>
-/Parent 854 0 R
+/Parent 870 0 R
/Count 0
-/Next 858 0 R
-/Prev 856 0 R
+/Next 874 0 R
+/Prev 872 0 R
/Dest [213 0 R /XYZ 0 301.6800000000002 null]
>>
endobj
-858 0 obj
+874 0 obj
<< /Title <feff0032002e00330031002e0034002e002000500072006f00640075006300650073>
-/Parent 854 0 R
+/Parent 870 0 R
/Count 0
-/Prev 857 0 R
+/Prev 873 0 R
/Dest [213 0 R /XYZ 0 245.40000000000015 null]
>>
endobj
-859 0 obj
+875 0 obj
<< /Title <feff0032002e00330032002e002000440045004c0045005400450020002f00760032002f0070006f006c00690063006900650073002f007b0070006f006c006900630079004d006f00640065006c0054007900700065007d002f007b0070006f006c006900630079004d006f00640065006c00560065007200730069006f006e007d002f007b0070006f006c006900630079004e0061006d0065007d002f007b0070006f006c00690063007900560065007200730069006f006e007d>
-/Parent 735 0 R
+/Parent 751 0 R
/Count 2
-/First 860 0 R
-/Last 861 0 R
-/Next 862 0 R
-/Prev 854 0 R
+/First 876 0 R
+/Last 877 0 R
+/Next 878 0 R
+/Prev 870 0 R
/Dest [213 0 R /XYZ 0 189.12000000000012 null]
>>
endobj
-860 0 obj
+876 0 obj
<< /Title <feff0032002e00330032002e0031002e00200050006100720061006d00650074006500720073>
-/Parent 859 0 R
+/Parent 875 0 R
/Count 0
-/Next 861 0 R
+/Next 877 0 R
/Dest [224 0 R /XYZ 0 792.0 null]
>>
endobj
-861 0 obj
+877 0 obj
<< /Title <feff0032002e00330032002e0032002e00200052006500730070006f006e007300650073>
-/Parent 859 0 R
+/Parent 875 0 R
/Count 0
-/Prev 860 0 R
+/Prev 876 0 R
/Dest [224 0 R /XYZ 0 540.6000000000001 null]
>>
endobj
-862 0 obj
+878 0 obj
<< /Title <feff0032002e00330033002e00200047004500540020002f00760032002f0070006f006c0069006300790054006f007300630061004d006f00640065006c0073>
-/Parent 735 0 R
+/Parent 751 0 R
/Count 2
-/First 863 0 R
-/Last 864 0 R
-/Next 865 0 R
-/Prev 859 0 R
+/First 879 0 R
+/Last 880 0 R
+/Next 881 0 R
+/Prev 875 0 R
/Dest [224 0 R /XYZ 0 449.76000000000033 null]
>>
endobj
-863 0 obj
+879 0 obj
<< /Title <feff0032002e00330033002e0031002e00200052006500730070006f006e007300650073>
-/Parent 862 0 R
+/Parent 878 0 R
/Count 0
-/Next 864 0 R
+/Next 880 0 R
/Dest [224 0 R /XYZ 0 409.6800000000003 null]
>>
endobj
-864 0 obj
+880 0 obj
<< /Title <feff0032002e00330033002e0032002e002000500072006f00640075006300650073>
-/Parent 862 0 R
+/Parent 878 0 R
/Count 0
-/Prev 863 0 R
+/Prev 879 0 R
/Dest [224 0 R /XYZ 0 304.5600000000003 null]
>>
endobj
-865 0 obj
+881 0 obj
<< /Title <feff0032002e00330034002e00200047004500540020002f00760032002f0070006f006c0069006300790054006f007300630061004d006f00640065006c0073002f00790061006d006c002f007b0070006f006c006900630079004d006f00640065006c0054007900700065007d002f007b0070006f006c006900630079004d006f00640065006c00560065007200730069006f006e007d>
-/Parent 735 0 R
+/Parent 751 0 R
/Count 3
-/First 866 0 R
-/Last 868 0 R
-/Next 869 0 R
-/Prev 862 0 R
+/First 882 0 R
+/Last 884 0 R
+/Next 885 0 R
+/Prev 878 0 R
/Dest [224 0 R /XYZ 0 248.28000000000026 null]
>>
endobj
-866 0 obj
+882 0 obj
<< /Title <feff0032002e00330034002e0031002e00200050006100720061006d00650074006500720073>
-/Parent 865 0 R
+/Parent 881 0 R
/Count 0
-/Next 867 0 R
+/Next 883 0 R
/Dest [224 0 R /XYZ 0 152.04000000000022 null]
>>
endobj
-867 0 obj
+883 0 obj
<< /Title <feff0032002e00330034002e0032002e00200052006500730070006f006e007300650073>
-/Parent 865 0 R
+/Parent 881 0 R
/Count 0
-/Next 868 0 R
-/Prev 866 0 R
-/Dest [235 0 R /XYZ 0 683.1600000000001 null]
+/Next 884 0 R
+/Prev 882 0 R
+/Dest [236 0 R /XYZ 0 683.1600000000001 null]
>>
endobj
-868 0 obj
+884 0 obj
<< /Title <feff0032002e00330034002e0033002e002000500072006f00640075006300650073>
-/Parent 865 0 R
+/Parent 881 0 R
/Count 0
-/Prev 867 0 R
-/Dest [235 0 R /XYZ 0 578.0400000000002 null]
+/Prev 883 0 R
+/Dest [236 0 R /XYZ 0 578.0400000000002 null]
>>
endobj
-869 0 obj
+885 0 obj
<< /Title <feff0032002e00330035002e00200047004500540020002f00760032002f0070006f006c0069006300790054006f007300630061004d006f00640065006c0073002f007b0070006f006c006900630079004d006f00640065006c0054007900700065007d002f007b0070006f006c006900630079004d006f00640065006c00560065007200730069006f006e007d>
-/Parent 735 0 R
+/Parent 751 0 R
/Count 3
-/First 870 0 R
-/Last 872 0 R
-/Next 873 0 R
-/Prev 865 0 R
-/Dest [235 0 R /XYZ 0 521.7600000000003 null]
+/First 886 0 R
+/Last 888 0 R
+/Next 889 0 R
+/Prev 881 0 R
+/Dest [236 0 R /XYZ 0 521.7600000000003 null]
>>
endobj
-870 0 obj
+886 0 obj
<< /Title <feff0032002e00330035002e0031002e00200050006100720061006d00650074006500720073>
-/Parent 869 0 R
+/Parent 885 0 R
/Count 0
-/Next 871 0 R
-/Dest [235 0 R /XYZ 0 425.5200000000004 null]
+/Next 887 0 R
+/Dest [236 0 R /XYZ 0 425.5200000000004 null]
>>
endobj
-871 0 obj
+887 0 obj
<< /Title <feff0032002e00330035002e0032002e00200052006500730070006f006e007300650073>
-/Parent 869 0 R
+/Parent 885 0 R
/Count 0
-/Next 872 0 R
-/Prev 870 0 R
-/Dest [235 0 R /XYZ 0 282.8400000000003 null]
+/Next 888 0 R
+/Prev 886 0 R
+/Dest [236 0 R /XYZ 0 282.8400000000003 null]
>>
endobj
-872 0 obj
+888 0 obj
<< /Title <feff0032002e00330035002e0033002e002000500072006f00640075006300650073>
-/Parent 869 0 R
+/Parent 885 0 R
/Count 0
-/Prev 871 0 R
-/Dest [235 0 R /XYZ 0 177.7200000000003 null]
+/Prev 887 0 R
+/Dest [236 0 R /XYZ 0 177.7200000000003 null]
>>
endobj
-873 0 obj
+889 0 obj
<< /Title <feff0032002e00330036002e00200047004500540020002f00760032002f00740065006d0070006c0061007400650073>
-/Parent 735 0 R
+/Parent 751 0 R
/Count 2
-/First 874 0 R
-/Last 875 0 R
-/Next 876 0 R
-/Prev 869 0 R
-/Dest [235 0 R /XYZ 0 121.44000000000028 null]
+/First 890 0 R
+/Last 891 0 R
+/Next 892 0 R
+/Prev 885 0 R
+/Dest [236 0 R /XYZ 0 121.44000000000028 null]
>>
endobj
-874 0 obj
+890 0 obj
<< /Title <feff0032002e00330036002e0031002e00200052006500730070006f006e007300650073>
-/Parent 873 0 R
+/Parent 889 0 R
/Count 0
-/Next 875 0 R
-/Dest [246 0 R /XYZ 0 792.0 null]
+/Next 891 0 R
+/Dest [247 0 R /XYZ 0 792.0 null]
>>
endobj
-875 0 obj
+891 0 obj
<< /Title <feff0032002e00330036002e0032002e002000500072006f00640075006300650073>
-/Parent 873 0 R
+/Parent 889 0 R
/Count 0
-/Prev 874 0 R
-/Dest [246 0 R /XYZ 0 653.2800000000002 null]
+/Prev 890 0 R
+/Dest [247 0 R /XYZ 0 653.2800000000002 null]
>>
endobj
-876 0 obj
+892 0 obj
<< /Title <feff0032002e00330037002e00200047004500540020002f00760032002f00740065006d0070006c0061007400650073002f006e0061006d00650073>
-/Parent 735 0 R
+/Parent 751 0 R
/Count 2
-/First 877 0 R
-/Last 878 0 R
-/Next 879 0 R
-/Prev 873 0 R
-/Dest [246 0 R /XYZ 0 597.0000000000003 null]
+/First 893 0 R
+/Last 894 0 R
+/Next 895 0 R
+/Prev 889 0 R
+/Dest [247 0 R /XYZ 0 597.0000000000003 null]
>>
endobj
-877 0 obj
+893 0 obj
<< /Title <feff0032002e00330037002e0031002e00200052006500730070006f006e007300650073>
-/Parent 876 0 R
+/Parent 892 0 R
/Count 0
-/Next 878 0 R
-/Dest [246 0 R /XYZ 0 556.9200000000004 null]
+/Next 894 0 R
+/Dest [247 0 R /XYZ 0 556.9200000000004 null]
>>
endobj
-878 0 obj
+894 0 obj
<< /Title <feff0032002e00330037002e0032002e002000500072006f00640075006300650073>
-/Parent 876 0 R
+/Parent 892 0 R
/Count 0
-/Prev 877 0 R
-/Dest [246 0 R /XYZ 0 451.8000000000005 null]
+/Prev 893 0 R
+/Dest [247 0 R /XYZ 0 451.8000000000005 null]
>>
endobj
-879 0 obj
+895 0 obj
<< /Title <feff0032002e00330038002e00200047004500540020002f00760032002f00740065006d0070006c0061007400650073002f007b00740065006d0070006c006100740065004e0061006d0065007d>
-/Parent 735 0 R
+/Parent 751 0 R
/Count 3
-/First 880 0 R
-/Last 882 0 R
-/Next 883 0 R
-/Prev 876 0 R
-/Dest [246 0 R /XYZ 0 395.5200000000005 null]
+/First 896 0 R
+/Last 898 0 R
+/Next 899 0 R
+/Prev 892 0 R
+/Dest [247 0 R /XYZ 0 395.5200000000005 null]
>>
endobj
-880 0 obj
+896 0 obj
<< /Title <feff0032002e00330038002e0031002e00200050006100720061006d00650074006500720073>
-/Parent 879 0 R
+/Parent 895 0 R
/Count 0
-/Next 881 0 R
-/Dest [246 0 R /XYZ 0 355.44000000000045 null]
+/Next 897 0 R
+/Dest [247 0 R /XYZ 0 355.44000000000045 null]
>>
endobj
-881 0 obj
+897 0 obj
<< /Title <feff0032002e00330038002e0032002e00200052006500730070006f006e007300650073>
-/Parent 879 0 R
+/Parent 895 0 R
/Count 0
-/Next 882 0 R
-/Prev 880 0 R
-/Dest [246 0 R /XYZ 0 250.32000000000045 null]
+/Next 898 0 R
+/Prev 896 0 R
+/Dest [247 0 R /XYZ 0 250.32000000000045 null]
>>
endobj
-882 0 obj
+898 0 obj
<< /Title <feff0032002e00330038002e0033002e002000500072006f00640075006300650073>
-/Parent 879 0 R
+/Parent 895 0 R
/Count 0
-/Prev 881 0 R
-/Dest [246 0 R /XYZ 0 145.20000000000041 null]
+/Prev 897 0 R
+/Dest [247 0 R /XYZ 0 145.20000000000041 null]
>>
endobj
-883 0 obj
-<< /Title <feff0032002e00330039002e00200047004500540020002f00760032002f0074006f0073006300610043006f006e00740072006f006c004c006f006f0070002f0067006500740054006f00730063006100540065006d0070006c006100740065>
-/Parent 735 0 R
-/Count 2
-/First 884 0 R
-/Last 885 0 R
-/Prev 879 0 R
+899 0 obj
+<< /Title <feff0032002e00330039002e00200050004f005300540020002f00760032002f0074006f0073006300610043006f006e00740072006f006c004c006f006f0070002f0063006f006d006d0069007300730069006f006e0054006f00730063006100540065006d0070006c006100740065>
+/Parent 751 0 R
+/Count 4
+/First 900 0 R
+/Last 903 0 R
+/Next 904 0 R
+/Prev 895 0 R
/Dest [260 0 R /XYZ 0 792.0 null]
>>
endobj
-884 0 obj
-<< /Title <feff0032002e00330039002e0031002e00200052006500730070006f006e007300650073>
-/Parent 883 0 R
+900 0 obj
+<< /Title <feff0032002e00330039002e0031002e00200050006100720061006d00650074006500720073>
+/Parent 899 0 R
/Count 0
-/Next 885 0 R
-/Dest [260 0 R /XYZ 0 718.32 null]
+/Next 901 0 R
+/Dest [260 0 R /XYZ 0 690.2400000000001 null]
>>
endobj
-885 0 obj
-<< /Title <feff0032002e00330039002e0032002e002000500072006f00640075006300650073>
-/Parent 883 0 R
+901 0 obj
+<< /Title <feff0032002e00330039002e0032002e00200052006500730070006f006e007300650073>
+/Parent 899 0 R
/Count 0
-/Prev 884 0 R
-/Dest [260 0 R /XYZ 0 613.2000000000003 null]
+/Next 902 0 R
+/Prev 900 0 R
+/Dest [260 0 R /XYZ 0 585.1200000000003 null]
>>
endobj
-886 0 obj
+902 0 obj
+<< /Title <feff0032002e00330039002e0033002e00200043006f006e00730075006d00650073>
+/Parent 899 0 R
+/Count 0
+/Next 903 0 R
+/Prev 901 0 R
+/Dest [260 0 R /XYZ 0 480.00000000000045 null]
+>>
+endobj
+903 0 obj
+<< /Title <feff0032002e00330039002e0034002e002000500072006f00640075006300650073>
+/Parent 899 0 R
+/Count 0
+/Prev 902 0 R
+/Dest [260 0 R /XYZ 0 423.7200000000004 null]
+>>
+endobj
+904 0 obj
+<< /Title <feff0032002e00340030002e00200047004500540020002f00760032002f0074006f0073006300610043006f006e00740072006f006c004c006f006f0070002f0067006500740054006f00730063006100540065006d0070006c006100740065>
+/Parent 751 0 R
+/Count 2
+/First 905 0 R
+/Last 906 0 R
+/Prev 899 0 R
+/Dest [260 0 R /XYZ 0 367.4400000000004 null]
+>>
+endobj
+905 0 obj
+<< /Title <feff0032002e00340030002e0031002e00200052006500730070006f006e007300650073>
+/Parent 904 0 R
+/Count 0
+/Next 906 0 R
+/Dest [260 0 R /XYZ 0 327.36000000000035 null]
+>>
+endobj
+906 0 obj
+<< /Title <feff0032002e00340030002e0032002e002000500072006f00640075006300650073>
+/Parent 904 0 R
+/Count 0
+/Prev 905 0 R
+/Dest [260 0 R /XYZ 0 222.24000000000032 null]
+>>
+endobj
+907 0 obj
<< /Title <feff004300680061007000740065007200200033002e00200044006500660069006e006900740069006f006e0073>
-/Parent 729 0 R
+/Parent 745 0 R
/Count 21
-/First 887 0 R
-/Last 907 0 R
-/Prev 735 0 R
-/Dest [265 0 R /XYZ 0 792.0 null]
+/First 908 0 R
+/Last 928 0 R
+/Prev 751 0 R
+/Dest [270 0 R /XYZ 0 792.0 null]
>>
endobj
-887 0 obj
+908 0 obj
<< /Title <feff0033002e0031002e00200043006c0061006d00700049006e0066006f0072006d006100740069006f006e>
-/Parent 886 0 R
+/Parent 907 0 R
/Count 0
-/Next 888 0 R
-/Dest [265 0 R /XYZ 0 712.0799999999999 null]
+/Next 909 0 R
+/Dest [270 0 R /XYZ 0 712.0799999999999 null]
>>
endobj
-888 0 obj
+909 0 obj
<< /Title <feff0033002e0032002e00200043006c00640073004800650061006c007400680043006800650063006b>
-/Parent 886 0 R
+/Parent 907 0 R
/Count 0
-/Next 889 0 R
-/Prev 887 0 R
-/Dest [265 0 R /XYZ 0 524.04 null]
+/Next 910 0 R
+/Prev 908 0 R
+/Dest [270 0 R /XYZ 0 524.04 null]
>>
endobj
-889 0 obj
+910 0 obj
<< /Title <feff0033002e0033002e002000440069006300740069006f006e006100720079>
-/Parent 886 0 R
+/Parent 907 0 R
/Count 0
-/Next 890 0 R
-/Prev 888 0 R
-/Dest [265 0 R /XYZ 0 335.99999999999994 null]
+/Next 911 0 R
+/Prev 909 0 R
+/Dest [270 0 R /XYZ 0 335.99999999999994 null]
>>
endobj
-890 0 obj
+911 0 obj
<< /Title <feff0033002e0034002e002000440069006300740069006f006e0061007200790045006c0065006d0065006e0074>
-/Parent 886 0 R
+/Parent 907 0 R
/Count 0
-/Next 891 0 R
-/Prev 889 0 R
-/Dest [272 0 R /XYZ 0 608.04 null]
+/Next 912 0 R
+/Prev 910 0 R
+/Dest [278 0 R /XYZ 0 608.04 null]
>>
endobj
-891 0 obj
+912 0 obj
<< /Title <feff0033002e0035002e002000450078007400650072006e0061006c0043006f006d0070006f006e0065006e0074>
-/Parent 886 0 R
+/Parent 907 0 R
/Count 0
-/Next 892 0 R
-/Prev 890 0 R
-/Dest [272 0 R /XYZ 0 157.07999999999998 null]
+/Next 913 0 R
+/Prev 911 0 R
+/Dest [278 0 R /XYZ 0 157.07999999999998 null]
>>
endobj
-892 0 obj
+913 0 obj
<< /Title <feff0033002e0036002e002000450078007400650072006e0061006c0043006f006d0070006f006e0065006e007400530074006100740065>
-/Parent 886 0 R
+/Parent 907 0 R
/Count 0
-/Next 893 0 R
-/Prev 891 0 R
-/Dest [278 0 R /XYZ 0 683.1600000000001 null]
+/Next 914 0 R
+/Prev 912 0 R
+/Dest [283 0 R /XYZ 0 683.1600000000001 null]
>>
endobj
-893 0 obj
+914 0 obj
<< /Title <feff0033002e0037002e0020004a0073006f006e00410072007200610079>
-/Parent 886 0 R
+/Parent 907 0 R
/Count 0
-/Next 894 0 R
-/Prev 892 0 R
-/Dest [278 0 R /XYZ 0 495.1200000000002 null]
+/Next 915 0 R
+/Prev 913 0 R
+/Dest [283 0 R /XYZ 0 495.1200000000002 null]
>>
endobj
-894 0 obj
+915 0 obj
<< /Title <feff0033002e0038002e0020004a0073006f006e0045006c0065006d0065006e0074>
-/Parent 886 0 R
+/Parent 907 0 R
/Count 0
-/Next 895 0 R
-/Prev 893 0 R
-/Dest [285 0 R /XYZ 0 345.1200000000003 null]
+/Next 916 0 R
+/Prev 914 0 R
+/Dest [290 0 R /XYZ 0 345.1200000000003 null]
>>
endobj
-895 0 obj
+916 0 obj
<< /Title <feff0033002e0039002e0020004a0073006f006e004e0075006c006c>
-/Parent 886 0 R
+/Parent 907 0 R
/Count 0
-/Next 896 0 R
-/Prev 894 0 R
-/Dest [291 0 R /XYZ 0 194.88000000000017 null]
+/Next 917 0 R
+/Prev 915 0 R
+/Dest [296 0 R /XYZ 0 194.88000000000017 null]
>>
endobj
-896 0 obj
+917 0 obj
<< /Title <feff0033002e00310030002e0020004a0073006f006e004f0062006a006500630074>
-/Parent 886 0 R
+/Parent 907 0 R
/Count 0
-/Next 897 0 R
-/Prev 895 0 R
-/Dest [306 0 R /XYZ 0 792.0 null]
+/Next 918 0 R
+/Prev 916 0 R
+/Dest [311 0 R /XYZ 0 792.0 null]
>>
endobj
-897 0 obj
+918 0 obj
<< /Title <feff0033002e00310031002e0020004a0073006f006e005000720069006d00690074006900760065>
-/Parent 886 0 R
+/Parent 907 0 R
/Count 0
-/Next 898 0 R
-/Prev 896 0 R
-/Dest [314 0 R /XYZ 0 608.0400000000002 null]
+/Next 919 0 R
+/Prev 917 0 R
+/Dest [319 0 R /XYZ 0 608.0400000000002 null]
>>
endobj
-898 0 obj
+919 0 obj
<< /Title <feff0033002e00310032002e0020004c006f006f0070>
-/Parent 886 0 R
+/Parent 907 0 R
/Count 0
-/Next 899 0 R
-/Prev 897 0 R
-/Dest [321 0 R /XYZ 0 345.1200000000003 null]
+/Next 920 0 R
+/Prev 918 0 R
+/Dest [326 0 R /XYZ 0 345.1200000000003 null]
>>
endobj
-899 0 obj
+920 0 obj
<< /Title <feff0033002e00310033002e0020004c006f006f00700045006c0065006d0065006e0074004d006f00640065006c>
-/Parent 886 0 R
+/Parent 907 0 R
/Count 0
-/Next 900 0 R
-/Prev 898 0 R
-/Dest [327 0 R /XYZ 0 382.6799999999999 null]
+/Next 921 0 R
+/Prev 919 0 R
+/Dest [332 0 R /XYZ 0 382.6799999999999 null]
>>
endobj
-900 0 obj
+921 0 obj
<< /Title <feff0033002e00310034002e0020004c006f006f0070004c006f0067>
-/Parent 886 0 R
+/Parent 907 0 R
/Count 0
-/Next 901 0 R
-/Prev 899 0 R
-/Dest [336 0 R /XYZ 0 570.48 null]
+/Next 922 0 R
+/Prev 920 0 R
+/Dest [342 0 R /XYZ 0 570.48 null]
>>
endobj
-901 0 obj
+922 0 obj
<< /Title <feff0033002e00310035002e0020004c006f006f007000540065006d0070006c006100740065>
-/Parent 886 0 R
+/Parent 907 0 R
/Count 0
-/Next 902 0 R
-/Prev 900 0 R
-/Dest [336 0 R /XYZ 0 269.76000000000005 null]
+/Next 923 0 R
+/Prev 921 0 R
+/Dest [342 0 R /XYZ 0 269.76000000000005 null]
>>
endobj
-902 0 obj
+923 0 obj
<< /Title <feff0033002e00310036002e0020004c006f006f007000540065006d0070006c006100740065004c006f006f00700045006c0065006d0065006e0074004d006f00640065006c>
-/Parent 886 0 R
+/Parent 907 0 R
/Count 0
-/Next 903 0 R
-/Prev 901 0 R
-/Dest [343 0 R /XYZ 0 420.23999999999995 null]
+/Next 924 0 R
+/Prev 922 0 R
+/Dest [348 0 R /XYZ 0 420.23999999999995 null]
>>
endobj
-903 0 obj
+924 0 obj
<< /Title <feff0033002e00310037002e0020004d006900630072006f00530065007200760069006300650050006f006c006900630079>
-/Parent 886 0 R
+/Parent 907 0 R
/Count 0
-/Next 904 0 R
-/Prev 902 0 R
-/Dest [343 0 R /XYZ 0 232.19999999999987 null]
+/Next 925 0 R
+/Prev 923 0 R
+/Dest [348 0 R /XYZ 0 232.19999999999987 null]
>>
endobj
-904 0 obj
+925 0 obj
<< /Title <feff0033002e00310038002e0020004e0075006d006200650072>
-/Parent 886 0 R
+/Parent 907 0 R
/Count 0
-/Next 905 0 R
-/Prev 903 0 R
-/Dest [352 0 R /XYZ 0 157.3200000000001 null]
+/Next 926 0 R
+/Prev 924 0 R
+/Dest [357 0 R /XYZ 0 157.3200000000001 null]
>>
endobj
-905 0 obj
+926 0 obj
<< /Title <feff0033002e00310039002e0020004f007000650072006100740069006f006e0061006c0050006f006c006900630079>
-/Parent 886 0 R
+/Parent 907 0 R
/Count 0
-/Next 906 0 R
-/Prev 904 0 R
-/Dest [359 0 R /XYZ 0 792.0 null]
+/Next 927 0 R
+/Prev 925 0 R
+/Dest [364 0 R /XYZ 0 792.0 null]
>>
endobj
-906 0 obj
+927 0 obj
<< /Title <feff0033002e00320030002e00200050006f006c006900630079004d006f00640065006c>
-/Parent 886 0 R
+/Parent 907 0 R
/Count 0
-/Next 907 0 R
-/Prev 905 0 R
-/Dest [359 0 R /XYZ 0 232.32 null]
+/Next 928 0 R
+/Prev 926 0 R
+/Dest [364 0 R /XYZ 0 232.32 null]
>>
endobj
-907 0 obj
+928 0 obj
<< /Title <feff0033002e00320031002e00200053006500720076006900630065>
-/Parent 886 0 R
+/Parent 907 0 R
/Count 0
-/Prev 906 0 R
-/Dest [368 0 R /XYZ 0 457.8 null]
+/Prev 927 0 R
+/Dest [373 0 R /XYZ 0 457.8 null]
>>
endobj
-908 0 obj
+929 0 obj
<< /Nums [0 << /P (i)
>> 1 << /P (ii)
>> 2 << /P (iii)
@@ -60407,7 +61358,7 @@ endobj
>>]
>>
endobj
-909 0 obj
+930 0 obj
<< /Length1 12332
/Length 7916
/Filter [/FlateDecode]
@@ -60444,10 +61395,10 @@ MR—áZ϶£êS”ÆùRp|€µÅrЭoÈ󷾡ö#ðÕ’_–Ïà¬B»ˆë(—ªC&Ži‰‡‰ðÝú”z>Ï"YØC(Ÿ“†ò©Sì
”.ìñÿZ†bh
endstream
endobj
-910 0 obj
+931 0 obj
<< /Type /FontDescriptor
/FontName /AAAAAA+NotoSerif
-/FontFile2 909 0 R
+/FontFile2 930 0 R
/FontBBox [-212 -250 1246 1047]
/Flags 6
/StemV 0
@@ -60458,7 +61409,7 @@ endobj
/XHeight 1098
>>
endobj
-911 0 obj
+932 0 obj
<< /Length 1286
/Filter [/FlateDecode]
>>
@@ -60468,10 +61419,10 @@ xœe×ËnÛF†á½®BËtHs&Ã@‘n¼èu{stÔ’ + ß}ù½¤i Æ/‰œy¾_Ã!uøôôÓÓùtß~»]ês¿ïÇéÜnýí
¿âíJ¼âíJ¼â특âíâ¬x»¯x»¯x‡+Þ!Êw¹âB®x‡b®x‡+ÞïrÅ;àà2äÍkçÎœñJ¼Y³e¼Y†Œ7+|œÆx‹ oSŠŒ7+[Æ›ețךyÞ¢oVûòæµ– -ã­Œ‹·é€"¯åþR¦W*–Ó4Xq”êC™^Jú[(£à®^ƒ1»¢y]•¡Èk¹}¼YM-x ¥úëÈVæz·ÌþÊ[YEãV¼Y³ÕÙ_}/7×*¯Y%«ê¯eã­Ó«q+ýÝ:÷Ý.â¿7™Jã‹ÈÛE¡/‰3Y(Y™*AˆW RõÝVJSƒª‚¶á:(u@c¡ðD±]a*Õíf)¤9J­ñæ)¥o,#Ú\ØZ>MU¡Û\ØjPSã {HSãçMª•ôj»ˆ·’{fk”Œ°yGá‰m[z*EïsaëÝ>Š&îÓ«Óúôj%u¼Üî; ¥2^ÆWÃ[Õßήòvú[¾Ïþ2î쯲uú[•¢³Pš:ÙçÂVÌ¡§Õ…> ¼M†ÁBi2 .Ħ‰ÇÜèÔ‡!¯áñdÈk¹`†¼–=oÌ ‘qWÞ•wdJF(”L164ÞU Ñ)™x0Eú~êñZ?
endstream
endobj
-912 0 obj
+933 0 obj
[259 1000 1000 1000 1000 1000 1000 1000 346 346 1000 1000 250 310 250 288 559 559 559 559 559 559 559 559 559 559 286 1000 559 559 559 500 1000 705 653 613 727 623 589 713 792 367 356 1000 623 937 763 742 604 1000 655 543 612 716 674 1046 1000 625 1000 1000 1000 1000 1000 458 1000 562 613 492 613 535 369 538 634 319 299 584 310 944 645 577 613 1000 471 451 352 634 579 861 578 564 1000 428 1000 428 1000 1000 1000 1000 1000 1000 1000 1000 1000 1000 1000 1000 1000 1000 1000 1000 1000 1000 1000 1000 1000 1000 1000 1000 1000 1000 1000 1000 1000 1000 1000 1000 1000 1000 1000 1000 1000 1000 1000 361 1000 1000 1000 1000 1000 1000 1000 1000 1000 1000 1000 1000 1000 1000 1000 1000 1000 1000 1000 1000 1000 1000 1000 1000 1000 1000 1000 1000 1000 1000 1000 1000 1000 1000 1000 1000 259 1000 1000 1000 1000 1000 1000 1000 1000 1000 1000 1000 1000 1000 1000 1000 1000 1000 1000 1000 1000 1000 1000 1000 1000 1000 1000 1000 1000 1000 1000 1000 1000 1000 1000 1000 1000 1000 1000 1000 1000 1000 1000 1000 1000 1000 1000 1000 1000 1000 1000 1000 1000 1000]
endobj
-913 0 obj
+934 0 obj
<< /Length1 11528
/Length 7660
/Filter [/FlateDecode]
@@ -60513,10 +61464,10 @@ g½ƒ>³q«Rœµm#}ÚQïRD÷Ÿî`H[ ±^ŸÇ†0eár#±M— +slËÖQVæ[ß¿¸ˆÇÚ¹;|E®zîÞ¸-K¬Üºw9
òza\ìnå; ¬vd'ãÈËæØË"°MLÙ#13ö†ÚòʦöJ+ƒâîóí]&Õœ§A§vÐêré3@i
endstream
endobj
-914 0 obj
+935 0 obj
<< /Type /FontDescriptor
/FontName /AAAAAB+NotoSerif-Bold
-/FontFile2 913 0 R
+/FontFile2 934 0 R
/FontBBox [-212 -250 1306 1058]
/Flags 6
/StemV 0
@@ -60527,7 +61478,7 @@ endobj
/XHeight 1098
>>
endobj
-915 0 obj
+936 0 obj
<< /Length 1286
/Filter [/FlateDecode]
>>
@@ -60537,10 +61488,10 @@ xœe×ËnÛF†á½®BËtHs&Ã@‘n¼èu{stÔ’ + ß}ù½¤i Æ/‰œy¾_Ã!uøôôÓÓùtß~»]ês¿ïÇéÜnýí
¿âíJ¼âíJ¼â특âíâ¬x»¯x»¯x‡+Þ!Êw¹âB®x‡b®x‡+ÞïrÅ;àà2äÍkçÎœñJ¼Y³e¼Y†Œ7+|œÆx‹ oSŠŒ7+[Æ›ețךyÞ¢oVûòæµ– -ã­Œ‹·é€"¯åþR¦W*–Ó4Xq”êC™^Jú[(£à®^ƒ1»¢y]•¡Èk¹}¼YM-x ¥úëÈVæz·ÌþÊ[YEãV¼Y³ÕÙ_}/7×*¯Y%«ê¯eã­Ó«q+ýÝ:÷Ý.â¿7™Jã‹ÈÛE¡/‰3Y(Y™*AˆW RõÝVJSƒª‚¶á:(u@c¡ðD±]a*Õíf)¤9J­ñæ)¥o,#Ú\ØZ>MU¡Û\ØjPSã {HSãçMª•ôj»ˆ·’{fk”Œ°yGá‰m[z*EïsaëÝ>Š&îÓ«Óúôj%u¼Üî; ¥2^ÆWÃ[Õßήòvú[¾Ïþ2î쯲uú[•¢³Pš:ÙçÂVÌ¡§Õ…> ¼M†ÁBi2 .Ħ‰ÇÜèÔ‡!¯áñdÈk¹`†¼–=oÌ ‘qWÞ•wdJF(”L164ÞU Ñ)™x0Eú~êñZ?
endstream
endobj
-916 0 obj
+937 0 obj
[259 1000 1000 1000 1000 1000 1000 1000 1000 1000 1000 1000 1000 1000 293 288 559 559 559 559 559 559 559 559 559 559 1000 1000 1000 559 1000 549 1000 752 671 667 767 652 621 769 818 400 368 1000 653 952 788 787 638 1000 707 585 652 747 698 1000 1000 1000 1000 1000 1000 1000 1000 1000 1000 599 648 526 648 570 407 560 666 352 345 636 352 985 666 612 645 647 522 487 404 666 605 855 645 579 1000 441 1000 441 1000 1000 1000 1000 1000 1000 1000 1000 1000 1000 1000 1000 1000 1000 1000 1000 1000 1000 1000 1000 1000 1000 1000 1000 1000 1000 1000 1000 1000 1000 1000 1000 1000 1000 1000 1000 1000 1000 1000 1000 1000 1000 1000 1000 1000 1000 1000 1000 1000 1000 1000 1000 1000 1000 1000 1000 1000 1000 1000 1000 1000 1000 1000 1000 1000 1000 1000 1000 1000 1000 1000 1000 1000 1000 1000 1000 1000 1000 1000 1000 1000 1000 1000 1000 1000 1000 1000 1000 1000 1000 1000 1000 1000 1000 1000 1000 1000 1000 1000 1000 1000 1000 1000 1000 1000 1000 1000 1000 1000 1000 1000 1000 1000 1000 1000 1000 1000 1000 1000 1000 1000 1000 1000 1000 1000 1000 1000 1000 1000 1000]
endobj
-917 0 obj
+938 0 obj
<< /Length1 5116
/Length 3170
/Filter [/FlateDecode]
@@ -60560,10 +61511,10 @@ aÙR÷Ÿâör×ÿrŠÌš±ãø±m'™²ÏOr׸ÜóG‰š¸ÝMÖÝ #8çMî¾nzº95“ƒ6GðÑ`#%ýà xH‚¢±Å+ÅhžQrÍD
ÿ:´2õ]Û^Ô5 w,¥Âº*›Ó‹Œ58«mÖg·±nkÞÄ7cÙÞB4èÆa¯ÅÊD[NaéU‹<V ¥Éó`ØÉ@V΋š{KÙÀ—r¿­ËS«¯ ðê ó3³§e'ó(×ÚÏ«-{S}`-õy÷¢¦ /²±ò‹ð79à]èp$xrë’¤ÏÊÃ'ý›"ZÞé³/izïþ›]’Wâ~ ïÝ–þ &ÌÁT
endstream
endobj
-918 0 obj
+939 0 obj
<< /Type /FontDescriptor
/FontName /AAAAAC+NotoSerif-Italic
-/FontFile2 917 0 R
+/FontFile2 938 0 R
/FontBBox [-254 -250 1238 1047]
/Flags 70
/StemV 0
@@ -60574,7 +61525,7 @@ endobj
/XHeight 1098
>>
endobj
-919 0 obj
+940 0 obj
<< /Length 1286
/Filter [/FlateDecode]
>>
@@ -60584,10 +61535,10 @@ xœe×ËnÛF†á½®BËtHs&Ã@‘n¼èu{stÔ’ + ß}ù½¤i Æ/‰œy¾_Ã!uøôôÓÓùtß~»]ês¿ïÇéÜnýí
¿âíJ¼âíJ¼â특âíâ¬x»¯x»¯x‡+Þ!Êw¹âB®x‡b®x‡+ÞïrÅ;àà2äÍkçÎœñJ¼Y³e¼Y†Œ7+|œÆx‹ oSŠŒ7+[Æ›ețךyÞ¢oVûòæµ– -ã­Œ‹·é€"¯åþR¦W*–Ó4Xq”êC™^Jú[(£à®^ƒ1»¢y]•¡Èk¹}¼YM-x ¥úëÈVæz·ÌþÊ[YEãV¼Y³ÕÙ_}/7×*¯Y%«ê¯eã­Ó«q+ýÝ:÷Ý.â¿7™Jã‹ÈÛE¡/‰3Y(Y™*AˆW RõÝVJSƒª‚¶á:(u@c¡ðD±]a*Õíf)¤9J­ñæ)¥o,#Ú\ØZ>MU¡Û\ØjPSã {HSãçMª•ôj»ˆ·’{fk”Œ°yGá‰m[z*EïsaëÝ>Š&îÓ«Óúôj%u¼Üî; ¥2^ÆWÃ[Õßήòvú[¾Ïþ2î쯲uú[•¢³Pš:ÙçÂVÌ¡§Õ…> ¼M†ÁBi2 .Ħ‰ÇÜèÔ‡!¯áñdÈk¹`†¼–=oÌ ‘qWÞ•wdJF(”L164ÞU Ñ)™x0Eú~êñZ?
endstream
endobj
-920 0 obj
+941 0 obj
[1000 1000 1000 1000 1000 1000 1000 1000 1000 1000 1000 1000 1000 1000 1000 1000 1000 1000 1000 1000 1000 1000 1000 1000 1000 1000 1000 1000 1000 1000 1000 1000 1000 1000 653 1000 1000 1000 1000 1000 792 1000 1000 1000 1000 1000 1000 1000 620 1000 1000 543 612 1000 674 1000 1000 1000 1000 1000 1000 1000 1000 1000 1000 579 1000 486 579 493 1000 1000 599 304 1000 1000 304 895 599 574 577 560 467 463 368 599 1000 1000 1000 527 1000 1000 1000 1000 1000 1000 1000 1000 1000 1000 1000 1000 1000 1000 1000 1000 1000 1000 1000 1000 1000 1000 1000 1000 1000 1000 1000 1000 1000 1000 1000 1000 1000 1000 1000 1000 1000 1000 1000 1000 1000 1000 1000 1000 1000 1000 1000 1000 1000 1000 1000 1000 1000 1000 1000 1000 1000 1000 1000 1000 1000 1000 1000 1000 1000 1000 1000 1000 1000 1000 1000 1000 1000 1000 1000 1000 1000 1000 1000 1000 1000 1000 1000 1000 1000 1000 1000 1000 1000 1000 1000 1000 1000 1000 1000 1000 1000 1000 1000 1000 1000 1000 1000 1000 1000 1000 1000 1000 1000 1000 1000 1000 1000 1000 1000 1000 1000 1000 1000 1000 1000 1000 1000 1000 1000 1000 1000 1000 1000 1000 1000 1000 1000 1000]
endobj
-921 0 obj
+942 0 obj
<< /Length1 3188
/Length 2052
/Filter [/FlateDecode]
@@ -60605,10 +61556,10 @@ fûzzÛ=•bn†}±kPáÝ-;8Õb­ËYKÎ…+ ƒ£cûÜ]=‹kè ±ã²ùùTª±¯þÅÓDSÉ8v"Î[ˆ£Ü9MD‚Ðuˆü ª
hžàdcßüSã¯wâ_Mõ
endstream
endobj
-922 0 obj
+943 0 obj
<< /Type /FontDescriptor
/FontName /AAAAAD+mplus1mn-regular
-/FontFile2 921 0 R
+/FontFile2 942 0 R
/FontBBox [0 -230 1000 860]
/Flags 4
/StemV 0
@@ -60619,7 +61570,7 @@ endobj
/XHeight 0
>>
endobj
-923 0 obj
+944 0 obj
<< /Length 1286
/Filter [/FlateDecode]
>>
@@ -60629,11 +61580,11 @@ xœe×ËnÛF†á½®BËtHs&Ã@‘n¼èu{stÔ’ + ß}ù½¤i Æ/‰œy¾_Ã!uøôôÓÓùtß~»]ês¿ïÇéÜnýí
¿âíJ¼âíJ¼â특âíâ¬x»¯x»¯x‡+Þ!Êw¹âB®x‡b®x‡+ÞïrÅ;àà2äÍkçÎœñJ¼Y³e¼Y†Œ7+|œÆx‹ oSŠŒ7+[Æ›ețךyÞ¢oVûòæµ– -ã­Œ‹·é€"¯åþR¦W*–Ó4Xq”êC™^Jú[(£à®^ƒ1»¢y]•¡Èk¹}¼YM-x ¥úëÈVæz·ÌþÊ[YEãV¼Y³ÕÙ_}/7×*¯Y%«ê¯eã­Ó«q+ýÝ:÷Ý.â¿7™Jã‹ÈÛE¡/‰3Y(Y™*AˆW RõÝVJSƒª‚¶á:(u@c¡ðD±]a*Õíf)¤9J­ñæ)¥o,#Ú\ØZ>MU¡Û\ØjPSã {HSãçMª•ôj»ˆ·’{fk”Œ°yGá‰m[z*EïsaëÝ>Š&îÓ«Óúôj%u¼Üî; ¥2^ÆWÃ[Õßήòvú[¾Ïþ2î쯲uú[•¢³Pš:ÙçÂVÌ¡§Õ…> ¼M†ÁBi2 .Ħ‰ÇÜèÔ‡!¯áñdÈk¹`†¼–=oÌ ‘qWÞ•wdJF(”L164ÞU Ñ)™x0Eú~êñZ?
endstream
endobj
-924 0 obj
+945 0 obj
[1000 1000 1000 1000 1000 1000 1000 1000 1000 1000 1000 1000 1000 1000 1000 500 1000 1000 1000 1000 1000 1000 1000 1000 1000 1000 1000 1000 1000 1000 1000 1000 1000 1000 1000 1000 1000 1000 1000 1000 1000 1000 1000 1000 1000 1000 1000 1000 1000 1000 1000 1000 1000 1000 1000 1000 1000 1000 1000 1000 1000 1000 1000 1000 1000 500 1000 500 1000 500 1000 1000 1000 500 500 1000 500 1000 500 500 500 1000 1000 500 500 1000 1000 1000 500 1000 1000 1000 1000 1000 1000 1000 1000 1000 1000 1000 1000 1000 1000 1000 1000 1000 1000 1000 1000 1000 1000 1000 1000 1000 1000 1000 1000 1000 1000 1000 1000 1000 1000 1000 1000 1000 1000 1000 1000 1000 1000 1000 1000 1000 1000 1000 1000 1000 1000 1000 1000 1000 1000 1000 1000 1000 1000 1000 1000 1000 1000 1000 1000 1000 1000 1000 1000 1000 1000 1000 1000 1000 1000 1000 1000 1000 1000 1000 1000 1000 1000 1000 1000 1000 1000 1000 1000 1000 1000 1000 1000 1000 1000 1000 1000 1000 1000 1000 1000 1000 1000 1000 1000 1000 1000 1000 1000 1000 1000 1000 1000 1000 1000 1000 1000 1000 1000 1000 1000 1000 1000 1000 1000 1000 1000 1000 1000 1000 1000 1000 1000 1000 1000 1000]
endobj
xref
-0 925
+0 946
0000000000 65535 f
0000000015 00000 n
0000000264 00000 n
@@ -60652,918 +61603,939 @@ xref
0000097935 00000 n
0000129718 00000 n
0000130516 00000 n
-0000154436 00000 n
-0000155074 00000 n
-0000157506 00000 n
-0000157743 00000 n
-0000157786 00000 n
-0000157835 00000 n
-0000157973 00000 n
-0000158146 00000 n
-0000158201 00000 n
-0000158376 00000 n
-0000158420 00000 n
-0000170625 00000 n
-0000170886 00000 n
-0000170929 00000 n
-0000170984 00000 n
-0000171027 00000 n
-0000171199 00000 n
-0000171254 00000 n
-0000171429 00000 n
-0000171485 00000 n
-0000171540 00000 n
-0000171595 00000 n
-0000171651 00000 n
-0000171706 00000 n
-0000171871 00000 n
-0000171926 00000 n
-0000171982 00000 n
-0000188457 00000 n
-0000188738 00000 n
-0000188781 00000 n
-0000188937 00000 n
-0000188992 00000 n
-0000189047 00000 n
-0000189102 00000 n
-0000189257 00000 n
-0000189312 00000 n
-0000189470 00000 n
-0000189525 00000 n
-0000189580 00000 n
-0000189882 00000 n
-0000190192 00000 n
-0000190248 00000 n
-0000190304 00000 n
-0000208589 00000 n
-0000208870 00000 n
-0000208913 00000 n
-0000208968 00000 n
-0000209023 00000 n
-0000209078 00000 n
-0000209235 00000 n
-0000209290 00000 n
-0000209345 00000 n
-0000209401 00000 n
-0000209557 00000 n
-0000209613 00000 n
-0000209771 00000 n
-0000209827 00000 n
-0000225555 00000 n
-0000225805 00000 n
-0000225848 00000 n
-0000225903 00000 n
-0000225958 00000 n
-0000226013 00000 n
-0000226068 00000 n
-0000226124 00000 n
-0000226180 00000 n
-0000226235 00000 n
-0000226648 00000 n
-0000226704 00000 n
-0000244190 00000 n
-0000244457 00000 n
-0000244500 00000 n
-0000244555 00000 n
-0000244873 00000 n
-0000244929 00000 n
-0000245090 00000 n
-0000245145 00000 n
-0000245201 00000 n
-0000245257 00000 n
-0000263292 00000 n
-0000263567 00000 n
-0000263610 00000 n
-0000263771 00000 n
-0000263827 00000 n
-0000263883 00000 n
-0000263939 00000 n
-0000263995 00000 n
-0000264051 00000 n
-0000264107 00000 n
-0000264163 00000 n
-0000264220 00000 n
-0000264382 00000 n
-0000278039 00000 n
-0000278309 00000 n
-0000278354 00000 n
-0000278411 00000 n
-0000278468 00000 n
-0000278525 00000 n
-0000278583 00000 n
-0000278640 00000 n
-0000278698 00000 n
-0000278860 00000 n
-0000278918 00000 n
-0000278976 00000 n
-0000279033 00000 n
-0000298180 00000 n
-0000298458 00000 n
-0000298515 00000 n
-0000298657 00000 n
-0000298703 00000 n
-0000298761 00000 n
-0000298819 00000 n
-0000298877 00000 n
-0000299041 00000 n
-0000299098 00000 n
-0000316404 00000 n
-0000316674 00000 n
-0000316719 00000 n
-0000316776 00000 n
-0000316833 00000 n
-0000316997 00000 n
-0000317054 00000 n
-0000317111 00000 n
-0000317353 00000 n
-0000317410 00000 n
-0000317468 00000 n
-0000336596 00000 n
-0000336882 00000 n
-0000337034 00000 n
-0000337091 00000 n
-0000337148 00000 n
-0000337205 00000 n
-0000337263 00000 n
-0000337574 00000 n
-0000337737 00000 n
-0000337794 00000 n
-0000338094 00000 n
-0000338152 00000 n
-0000338210 00000 n
-0000338534 00000 n
-0000338592 00000 n
-0000338755 00000 n
-0000357105 00000 n
-0000357391 00000 n
-0000357436 00000 n
-0000357493 00000 n
-0000357550 00000 n
-0000357607 00000 n
-0000357770 00000 n
-0000357827 00000 n
-0000357884 00000 n
-0000357942 00000 n
-0000358099 00000 n
-0000358157 00000 n
-0000358321 00000 n
-0000358379 00000 n
-0000375470 00000 n
-0000375756 00000 n
-0000375801 00000 n
-0000375858 00000 n
-0000375915 00000 n
-0000376078 00000 n
-0000376136 00000 n
-0000376313 00000 n
-0000376370 00000 n
-0000376428 00000 n
-0000376486 00000 n
-0000376544 00000 n
-0000376701 00000 n
-0000393088 00000 n
-0000393374 00000 n
-0000393419 00000 n
-0000393581 00000 n
-0000393638 00000 n
-0000393695 00000 n
-0000393752 00000 n
-0000393809 00000 n
-0000393866 00000 n
-0000394029 00000 n
-0000394087 00000 n
-0000394144 00000 n
-0000394201 00000 n
-0000394361 00000 n
-0000408407 00000 n
-0000408677 00000 n
-0000408722 00000 n
-0000408779 00000 n
-0000408836 00000 n
-0000408992 00000 n
-0000409049 00000 n
-0000409106 00000 n
-0000409164 00000 n
-0000409221 00000 n
-0000409278 00000 n
-0000409336 00000 n
-0000425885 00000 n
-0000426163 00000 n
-0000426208 00000 n
-0000426265 00000 n
-0000426422 00000 n
-0000426480 00000 n
-0000427010 00000 n
-0000427168 00000 n
-0000427225 00000 n
-0000427283 00000 n
-0000427341 00000 n
-0000446593 00000 n
-0000446863 00000 n
-0000446908 00000 n
-0000446965 00000 n
-0000447023 00000 n
-0000447080 00000 n
-0000447241 00000 n
-0000447298 00000 n
-0000447356 00000 n
-0000447414 00000 n
-0000447786 00000 n
-0000465303 00000 n
-0000465573 00000 n
-0000465630 00000 n
-0000465687 00000 n
-0000466108 00000 n
-0000466165 00000 n
-0000466222 00000 n
-0000466279 00000 n
-0000466439 00000 n
-0000466496 00000 n
-0000466554 00000 n
-0000482917 00000 n
-0000483195 00000 n
-0000483240 00000 n
-0000483410 00000 n
-0000483467 00000 n
-0000483524 00000 n
-0000483581 00000 n
-0000483638 00000 n
-0000483695 00000 n
-0000483977 00000 n
-0000484035 00000 n
-0000484093 00000 n
-0000484265 00000 n
-0000484323 00000 n
-0000488742 00000 n
-0000488981 00000 n
-0000489026 00000 n
-0000489072 00000 n
-0000489129 00000 n
-0000506329 00000 n
-0000506586 00000 n
-0000506631 00000 n
-0000506688 00000 n
-0000506734 00000 n
-0000506792 00000 n
-0000506970 00000 n
-0000526876 00000 n
-0000527133 00000 n
-0000527179 00000 n
-0000527494 00000 n
-0000527648 00000 n
-0000527706 00000 n
-0000548254 00000 n
-0000548527 00000 n
-0000548688 00000 n
-0000548745 00000 n
-0000548802 00000 n
-0000548972 00000 n
-0000549139 00000 n
-0000570548 00000 n
-0000570821 00000 n
-0000570970 00000 n
-0000571141 00000 n
-0000571300 00000 n
-0000571357 00000 n
-0000593184 00000 n
-0000593473 00000 n
-0000593641 00000 n
-0000593788 00000 n
-0000593937 00000 n
-0000594088 00000 n
-0000594248 00000 n
-0000594306 00000 n
-0000617266 00000 n
-0000617555 00000 n
-0000617724 00000 n
-0000617892 00000 n
-0000618062 00000 n
-0000618234 00000 n
-0000618394 00000 n
-0000640073 00000 n
-0000640362 00000 n
-0000640407 00000 n
-0000640566 00000 n
-0000640724 00000 n
-0000640884 00000 n
-0000641035 00000 n
-0000641185 00000 n
-0000662941 00000 n
-0000663222 00000 n
-0000663279 00000 n
-0000663448 00000 n
-0000663616 00000 n
-0000663786 00000 n
-0000663958 00000 n
-0000685631 00000 n
-0000685904 00000 n
-0000686063 00000 n
-0000686120 00000 n
-0000686291 00000 n
-0000686460 00000 n
-0000709625 00000 n
-0000709922 00000 n
-0000710068 00000 n
-0000710239 00000 n
-0000710396 00000 n
-0000710536 00000 n
-0000710713 00000 n
-0000710770 00000 n
-0000710939 00000 n
-0000731401 00000 n
-0000731666 00000 n
-0000731833 00000 n
-0000731879 00000 n
-0000732349 00000 n
-0000732512 00000 n
-0000732570 00000 n
-0000753698 00000 n
-0000753987 00000 n
-0000754154 00000 n
-0000754294 00000 n
-0000754352 00000 n
-0000754528 00000 n
-0000754700 00000 n
-0000754758 00000 n
-0000754928 00000 n
-0000774698 00000 n
-0000774979 00000 n
-0000775148 00000 n
-0000775303 00000 n
-0000775447 00000 n
-0000775611 00000 n
-0000775668 00000 n
-0000796267 00000 n
-0000796556 00000 n
-0000796601 00000 n
-0000796770 00000 n
-0000796919 00000 n
-0000797082 00000 n
-0000797237 00000 n
-0000797392 00000 n
-0000797438 00000 n
-0000814506 00000 n
-0000814787 00000 n
-0000814936 00000 n
-0000815111 00000 n
-0000815156 00000 n
-0000815316 00000 n
-0000815486 00000 n
-0000815630 00000 n
-0000815775 00000 n
-0000815940 00000 n
-0000816096 00000 n
-0000816254 00000 n
-0000816401 00000 n
-0000816563 00000 n
-0000816705 00000 n
-0000816870 00000 n
-0000817014 00000 n
-0000817171 00000 n
-0000817317 00000 n
-0000817473 00000 n
-0000817618 00000 n
-0000817773 00000 n
-0000817917 00000 n
-0000818076 00000 n
-0000818224 00000 n
-0000818382 00000 n
-0000818529 00000 n
-0000818695 00000 n
-0000818840 00000 n
-0000819000 00000 n
-0000819149 00000 n
-0000819307 00000 n
-0000819454 00000 n
-0000819608 00000 n
-0000819752 00000 n
-0000819912 00000 n
-0000820061 00000 n
-0000820221 00000 n
-0000820370 00000 n
-0000820525 00000 n
-0000820670 00000 n
-0000820838 00000 n
-0000820985 00000 n
-0000821144 00000 n
-0000821292 00000 n
-0000821448 00000 n
-0000821594 00000 n
-0000821754 00000 n
-0000821903 00000 n
-0000822069 00000 n
-0000822214 00000 n
-0000822374 00000 n
-0000822523 00000 n
-0000822681 00000 n
-0000822828 00000 n
-0000822995 00000 n
-0000823141 00000 n
-0000823313 00000 n
-0000823464 00000 n
-0000823623 00000 n
-0000823771 00000 n
-0000823929 00000 n
-0000824076 00000 n
-0000824230 00000 n
-0000824374 00000 n
-0000824546 00000 n
-0000824697 00000 n
-0000824858 00000 n
-0000825008 00000 n
-0000825167 00000 n
-0000825316 00000 n
-0000825476 00000 n
-0000825625 00000 n
-0000825791 00000 n
-0000825936 00000 n
-0000826106 00000 n
-0000826255 00000 n
-0000826414 00000 n
-0000826562 00000 n
-0000826708 00000 n
-0000826843 00000 n
-0000826997 00000 n
-0000827130 00000 n
-0000827289 00000 n
-0000827427 00000 n
-0000827575 00000 n
-0000827713 00000 n
-0000827882 00000 n
-0000828030 00000 n
-0000828193 00000 n
-0000828336 00000 n
-0000828506 00000 n
-0000828655 00000 n
-0000828814 00000 n
-0000828963 00000 n
-0000829132 00000 n
-0000829280 00000 n
-0000829442 00000 n
-0000829585 00000 n
-0000829755 00000 n
-0000829904 00000 n
-0000830063 00000 n
-0000830212 00000 n
-0000830370 00000 n
-0000830517 00000 n
-0000830686 00000 n
-0000830834 00000 n
-0000830999 00000 n
-0000831143 00000 n
-0000831314 00000 n
-0000831464 00000 n
-0000831624 00000 n
-0000831774 00000 n
-0000831936 00000 n
-0000832079 00000 n
-0000832249 00000 n
-0000832398 00000 n
-0000832558 00000 n
-0000832708 00000 n
-0000832879 00000 n
-0000833029 00000 n
-0000833184 00000 n
-0000833328 00000 n
-0000833487 00000 n
-0000833636 00000 n
-0000833805 00000 n
-0000833953 00000 n
-0000834107 00000 n
-0000834251 00000 n
-0000834423 00000 n
-0000834574 00000 n
-0000834734 00000 n
-0000834884 00000 n
-0000835053 00000 n
-0000835201 00000 n
-0000835366 00000 n
-0000835511 00000 n
-0000835684 00000 n
-0000835836 00000 n
-0000835997 00000 n
-0000836148 00000 n
-0000836319 00000 n
-0000836469 00000 n
-0000836634 00000 n
-0000836779 00000 n
-0000836952 00000 n
-0000837104 00000 n
-0000837265 00000 n
-0000837416 00000 n
-0000837586 00000 n
-0000837735 00000 n
-0000837897 00000 n
-0000838057 00000 n
-0000838196 00000 n
-0000838336 00000 n
-0000838496 00000 n
-0000838634 00000 n
-0000838782 00000 n
-0000838919 00000 n
-0000839077 00000 n
-0000839213 00000 n
-0000839377 00000 n
-0000839519 00000 n
-0000839690 00000 n
-0000839839 00000 n
-0000839998 00000 n
-0000840146 00000 n
-0000840315 00000 n
-0000840462 00000 n
-0000840615 00000 n
-0000840757 00000 n
-0000840928 00000 n
-0000841077 00000 n
-0000841236 00000 n
-0000841384 00000 n
-0000841553 00000 n
-0000841700 00000 n
-0000841864 00000 n
-0000842006 00000 n
-0000842177 00000 n
-0000842326 00000 n
-0000842486 00000 n
-0000842635 00000 n
-0000842805 00000 n
-0000842953 00000 n
-0000843116 00000 n
-0000843259 00000 n
-0000843430 00000 n
-0000843579 00000 n
-0000843738 00000 n
-0000843886 00000 n
-0000844056 00000 n
-0000844204 00000 n
-0000844368 00000 n
-0000844512 00000 n
-0000844684 00000 n
-0000844834 00000 n
-0000844993 00000 n
-0000845141 00000 n
-0000845299 00000 n
-0000845445 00000 n
-0000845615 00000 n
-0000845763 00000 n
-0000845928 00000 n
-0000846071 00000 n
-0000846243 00000 n
-0000846393 00000 n
-0000846552 00000 n
-0000846700 00000 n
-0000846860 00000 n
-0000847008 00000 n
-0000847179 00000 n
-0000847328 00000 n
-0000847491 00000 n
-0000847635 00000 n
-0000847808 00000 n
-0000847959 00000 n
-0000848120 00000 n
-0000848270 00000 n
-0000848430 00000 n
-0000848578 00000 n
-0000848749 00000 n
-0000848898 00000 n
-0000849053 00000 n
-0000849196 00000 n
-0000849365 00000 n
-0000849512 00000 n
-0000849671 00000 n
-0000849819 00000 n
-0000849976 00000 n
-0000850111 00000 n
-0000850255 00000 n
-0000850387 00000 n
-0000850535 00000 n
-0000850672 00000 n
-0000850830 00000 n
-0000850966 00000 n
-0000851131 00000 n
-0000851274 00000 n
-0000851445 00000 n
-0000851594 00000 n
-0000851753 00000 n
-0000851901 00000 n
-0000852059 00000 n
-0000852205 00000 n
-0000852370 00000 n
-0000852513 00000 n
-0000852684 00000 n
-0000852833 00000 n
-0000852992 00000 n
-0000853140 00000 n
-0000853298 00000 n
-0000853444 00000 n
-0000853608 00000 n
-0000853751 00000 n
-0000853922 00000 n
-0000854071 00000 n
-0000854231 00000 n
-0000854380 00000 n
-0000854539 00000 n
-0000854686 00000 n
-0000854856 00000 n
-0000855004 00000 n
-0000855166 00000 n
-0000855309 00000 n
-0000855480 00000 n
-0000855629 00000 n
-0000855789 00000 n
-0000855938 00000 n
-0000856103 00000 n
-0000856248 00000 n
-0000856408 00000 n
-0000856557 00000 n
-0000856726 00000 n
-0000856873 00000 n
-0000857038 00000 n
-0000857181 00000 n
-0000857353 00000 n
-0000857503 00000 n
-0000857663 00000 n
-0000857812 00000 n
-0000857982 00000 n
-0000858130 00000 n
-0000858295 00000 n
-0000858438 00000 n
-0000858611 00000 n
-0000858762 00000 n
-0000858923 00000 n
-0000859073 00000 n
-0000859244 00000 n
-0000859393 00000 n
-0000859549 00000 n
-0000859693 00000 n
-0000859854 00000 n
-0000860004 00000 n
-0000860175 00000 n
-0000860324 00000 n
-0000860479 00000 n
-0000860623 00000 n
-0000860783 00000 n
-0000860932 00000 n
-0000861099 00000 n
-0000861244 00000 n
-0000861408 00000 n
-0000861550 00000 n
-0000861709 00000 n
-0000861846 00000 n
-0000861994 00000 n
-0000862131 00000 n
-0000862289 00000 n
-0000862425 00000 n
-0000862579 00000 n
-0000862711 00000 n
-0000862870 00000 n
-0000863018 00000 n
-0000863187 00000 n
-0000863334 00000 n
-0000863503 00000 n
-0000863650 00000 n
-0000863824 00000 n
-0000863976 00000 n
-0000864149 00000 n
-0000864300 00000 n
-0000864458 00000 n
-0000864604 00000 n
-0000864769 00000 n
-0000864922 00000 n
-0000865086 00000 n
-0000865239 00000 n
-0000865419 00000 n
-0000865577 00000 n
-0000865744 00000 n
+0000158668 00000 n
+0000159386 00000 n
+0000161818 00000 n
+0000162055 00000 n
+0000162098 00000 n
+0000162147 00000 n
+0000162293 00000 n
+0000162466 00000 n
+0000162521 00000 n
+0000162696 00000 n
+0000162740 00000 n
+0000174945 00000 n
+0000175206 00000 n
+0000175249 00000 n
+0000175304 00000 n
+0000175347 00000 n
+0000175519 00000 n
+0000175574 00000 n
+0000175749 00000 n
+0000175805 00000 n
+0000175860 00000 n
+0000175915 00000 n
+0000175971 00000 n
+0000176026 00000 n
+0000176191 00000 n
+0000176246 00000 n
+0000176302 00000 n
+0000192777 00000 n
+0000193058 00000 n
+0000193101 00000 n
+0000193257 00000 n
+0000193312 00000 n
+0000193367 00000 n
+0000193422 00000 n
+0000193577 00000 n
+0000193632 00000 n
+0000193790 00000 n
+0000193845 00000 n
+0000193900 00000 n
+0000194203 00000 n
+0000194513 00000 n
+0000194569 00000 n
+0000194625 00000 n
+0000212910 00000 n
+0000213191 00000 n
+0000213234 00000 n
+0000213289 00000 n
+0000213344 00000 n
+0000213399 00000 n
+0000213556 00000 n
+0000213611 00000 n
+0000213666 00000 n
+0000213722 00000 n
+0000213878 00000 n
+0000213934 00000 n
+0000214092 00000 n
+0000214148 00000 n
+0000229876 00000 n
+0000230126 00000 n
+0000230169 00000 n
+0000230224 00000 n
+0000230279 00000 n
+0000230334 00000 n
+0000230389 00000 n
+0000230445 00000 n
+0000230501 00000 n
+0000230556 00000 n
+0000230897 00000 n
+0000230953 00000 n
+0000248439 00000 n
+0000248706 00000 n
+0000248749 00000 n
+0000248804 00000 n
+0000249122 00000 n
+0000249178 00000 n
+0000249339 00000 n
+0000249394 00000 n
+0000249450 00000 n
+0000249506 00000 n
+0000267541 00000 n
+0000267816 00000 n
+0000267859 00000 n
+0000268020 00000 n
+0000268076 00000 n
+0000268132 00000 n
+0000268188 00000 n
+0000268244 00000 n
+0000268300 00000 n
+0000268356 00000 n
+0000268412 00000 n
+0000268469 00000 n
+0000268631 00000 n
+0000282288 00000 n
+0000282558 00000 n
+0000282603 00000 n
+0000282660 00000 n
+0000282717 00000 n
+0000282774 00000 n
+0000282832 00000 n
+0000282889 00000 n
+0000282947 00000 n
+0000283109 00000 n
+0000283167 00000 n
+0000283225 00000 n
+0000283282 00000 n
+0000302429 00000 n
+0000302707 00000 n
+0000302764 00000 n
+0000302906 00000 n
+0000302952 00000 n
+0000303010 00000 n
+0000303068 00000 n
+0000303126 00000 n
+0000303290 00000 n
+0000303347 00000 n
+0000320653 00000 n
+0000320923 00000 n
+0000320968 00000 n
+0000321025 00000 n
+0000321082 00000 n
+0000321246 00000 n
+0000321303 00000 n
+0000321360 00000 n
+0000321633 00000 n
+0000321690 00000 n
+0000321748 00000 n
+0000340876 00000 n
+0000341162 00000 n
+0000341314 00000 n
+0000341371 00000 n
+0000341428 00000 n
+0000341485 00000 n
+0000341543 00000 n
+0000341854 00000 n
+0000342017 00000 n
+0000342074 00000 n
+0000342374 00000 n
+0000342432 00000 n
+0000342490 00000 n
+0000342814 00000 n
+0000342872 00000 n
+0000343035 00000 n
+0000361385 00000 n
+0000361671 00000 n
+0000361716 00000 n
+0000361773 00000 n
+0000361830 00000 n
+0000361887 00000 n
+0000362050 00000 n
+0000362107 00000 n
+0000362164 00000 n
+0000362222 00000 n
+0000362379 00000 n
+0000362437 00000 n
+0000362601 00000 n
+0000362659 00000 n
+0000379750 00000 n
+0000380036 00000 n
+0000380081 00000 n
+0000380138 00000 n
+0000380195 00000 n
+0000380358 00000 n
+0000380416 00000 n
+0000380593 00000 n
+0000380650 00000 n
+0000380708 00000 n
+0000380766 00000 n
+0000380824 00000 n
+0000380981 00000 n
+0000397368 00000 n
+0000397654 00000 n
+0000397699 00000 n
+0000397861 00000 n
+0000397918 00000 n
+0000397975 00000 n
+0000398032 00000 n
+0000398089 00000 n
+0000398146 00000 n
+0000398309 00000 n
+0000398367 00000 n
+0000398424 00000 n
+0000398481 00000 n
+0000398641 00000 n
+0000412687 00000 n
+0000412957 00000 n
+0000413002 00000 n
+0000413059 00000 n
+0000413116 00000 n
+0000413272 00000 n
+0000413329 00000 n
+0000413386 00000 n
+0000413444 00000 n
+0000413501 00000 n
+0000413558 00000 n
+0000413616 00000 n
+0000430165 00000 n
+0000430443 00000 n
+0000430488 00000 n
+0000430545 00000 n
+0000430702 00000 n
+0000430760 00000 n
+0000431072 00000 n
+0000431230 00000 n
+0000431287 00000 n
+0000431345 00000 n
+0000431403 00000 n
+0000450655 00000 n
+0000450925 00000 n
+0000450970 00000 n
+0000451027 00000 n
+0000451085 00000 n
+0000451397 00000 n
+0000451454 00000 n
+0000451615 00000 n
+0000451672 00000 n
+0000451730 00000 n
+0000451788 00000 n
+0000452185 00000 n
+0000469702 00000 n
+0000469972 00000 n
+0000470029 00000 n
+0000470086 00000 n
+0000470530 00000 n
+0000470587 00000 n
+0000470644 00000 n
+0000470701 00000 n
+0000470861 00000 n
+0000470918 00000 n
+0000470976 00000 n
+0000487339 00000 n
+0000487617 00000 n
+0000487662 00000 n
+0000487832 00000 n
+0000487889 00000 n
+0000487946 00000 n
+0000488003 00000 n
+0000488060 00000 n
+0000488117 00000 n
+0000488175 00000 n
+0000488233 00000 n
+0000488405 00000 n
+0000488463 00000 n
+0000501195 00000 n
+0000501447 00000 n
+0000501492 00000 n
+0000501549 00000 n
+0000501606 00000 n
+0000501664 00000 n
+0000501721 00000 n
+0000501778 00000 n
+0000501836 00000 n
+0000501894 00000 n
+0000519094 00000 n
+0000519351 00000 n
+0000519396 00000 n
+0000519453 00000 n
+0000519499 00000 n
+0000519557 00000 n
+0000519870 00000 n
+0000520048 00000 n
+0000539954 00000 n
+0000540211 00000 n
+0000540257 00000 n
+0000540411 00000 n
+0000540469 00000 n
+0000561017 00000 n
+0000561290 00000 n
+0000561451 00000 n
+0000561508 00000 n
+0000561565 00000 n
+0000561735 00000 n
+0000561902 00000 n
+0000583311 00000 n
+0000583584 00000 n
+0000583733 00000 n
+0000583904 00000 n
+0000584063 00000 n
+0000584120 00000 n
+0000605947 00000 n
+0000606236 00000 n
+0000606404 00000 n
+0000606551 00000 n
+0000606700 00000 n
+0000606851 00000 n
+0000607011 00000 n
+0000607069 00000 n
+0000630029 00000 n
+0000630318 00000 n
+0000630487 00000 n
+0000630655 00000 n
+0000630825 00000 n
+0000630997 00000 n
+0000631157 00000 n
+0000652836 00000 n
+0000653125 00000 n
+0000653170 00000 n
+0000653329 00000 n
+0000653487 00000 n
+0000653647 00000 n
+0000653798 00000 n
+0000653948 00000 n
+0000675704 00000 n
+0000675985 00000 n
+0000676042 00000 n
+0000676211 00000 n
+0000676379 00000 n
+0000676549 00000 n
+0000676721 00000 n
+0000698394 00000 n
+0000698667 00000 n
+0000698826 00000 n
+0000698883 00000 n
+0000699054 00000 n
+0000699223 00000 n
+0000722388 00000 n
+0000722685 00000 n
+0000722831 00000 n
+0000723002 00000 n
+0000723159 00000 n
+0000723299 00000 n
+0000723476 00000 n
+0000723533 00000 n
+0000724022 00000 n
+0000724191 00000 n
+0000744653 00000 n
+0000744918 00000 n
+0000745085 00000 n
+0000745131 00000 n
+0000745294 00000 n
+0000745352 00000 n
+0000766480 00000 n
+0000766769 00000 n
+0000766936 00000 n
+0000767076 00000 n
+0000767134 00000 n
+0000767310 00000 n
+0000767482 00000 n
+0000767540 00000 n
+0000767710 00000 n
+0000787480 00000 n
+0000787761 00000 n
+0000787930 00000 n
+0000788085 00000 n
+0000788229 00000 n
+0000788393 00000 n
+0000788450 00000 n
+0000809049 00000 n
+0000809338 00000 n
+0000809383 00000 n
+0000809552 00000 n
+0000809701 00000 n
+0000809864 00000 n
+0000810019 00000 n
+0000810174 00000 n
+0000810220 00000 n
+0000827288 00000 n
+0000827569 00000 n
+0000827718 00000 n
+0000827893 00000 n
+0000827938 00000 n
+0000828254 00000 n
+0000828414 00000 n
+0000828584 00000 n
+0000828728 00000 n
+0000828873 00000 n
+0000829038 00000 n
+0000829194 00000 n
+0000829352 00000 n
+0000829499 00000 n
+0000829661 00000 n
+0000829803 00000 n
+0000829967 00000 n
+0000830110 00000 n
+0000830267 00000 n
+0000830413 00000 n
+0000830569 00000 n
+0000830714 00000 n
+0000830868 00000 n
+0000831011 00000 n
+0000831170 00000 n
+0000831318 00000 n
+0000831476 00000 n
+0000831623 00000 n
+0000831788 00000 n
+0000831932 00000 n
+0000832092 00000 n
+0000832241 00000 n
+0000832399 00000 n
+0000832546 00000 n
+0000832700 00000 n
+0000832844 00000 n
+0000833004 00000 n
+0000833153 00000 n
+0000833313 00000 n
+0000833462 00000 n
+0000833616 00000 n
+0000833760 00000 n
+0000833928 00000 n
+0000834075 00000 n
+0000834234 00000 n
+0000834382 00000 n
+0000834538 00000 n
+0000834684 00000 n
+0000834844 00000 n
+0000834993 00000 n
+0000835158 00000 n
+0000835302 00000 n
+0000835462 00000 n
+0000835611 00000 n
+0000835769 00000 n
+0000835916 00000 n
+0000836082 00000 n
+0000836227 00000 n
+0000836399 00000 n
+0000836550 00000 n
+0000836709 00000 n
+0000836857 00000 n
+0000837015 00000 n
+0000837162 00000 n
+0000837315 00000 n
+0000837458 00000 n
+0000837630 00000 n
+0000837781 00000 n
+0000837942 00000 n
+0000838092 00000 n
+0000838251 00000 n
+0000838400 00000 n
+0000838560 00000 n
+0000838709 00000 n
+0000838874 00000 n
+0000839018 00000 n
+0000839188 00000 n
+0000839337 00000 n
+0000839496 00000 n
+0000839644 00000 n
+0000839790 00000 n
+0000839925 00000 n
+0000840078 00000 n
+0000840210 00000 n
+0000840369 00000 n
+0000840507 00000 n
+0000840655 00000 n
+0000840793 00000 n
+0000840962 00000 n
+0000841110 00000 n
+0000841273 00000 n
+0000841416 00000 n
+0000841586 00000 n
+0000841735 00000 n
+0000841894 00000 n
+0000842043 00000 n
+0000842212 00000 n
+0000842360 00000 n
+0000842522 00000 n
+0000842665 00000 n
+0000842835 00000 n
+0000842984 00000 n
+0000843143 00000 n
+0000843292 00000 n
+0000843450 00000 n
+0000843597 00000 n
+0000843766 00000 n
+0000843914 00000 n
+0000844079 00000 n
+0000844223 00000 n
+0000844394 00000 n
+0000844544 00000 n
+0000844704 00000 n
+0000844854 00000 n
+0000845015 00000 n
+0000845157 00000 n
+0000845327 00000 n
+0000845476 00000 n
+0000845636 00000 n
+0000845786 00000 n
+0000845957 00000 n
+0000846107 00000 n
+0000846261 00000 n
+0000846404 00000 n
+0000846563 00000 n
+0000846712 00000 n
+0000846881 00000 n
+0000847029 00000 n
+0000847183 00000 n
+0000847327 00000 n
+0000847499 00000 n
+0000847650 00000 n
+0000847810 00000 n
+0000847960 00000 n
+0000848129 00000 n
+0000848277 00000 n
+0000848441 00000 n
+0000848585 00000 n
+0000848758 00000 n
+0000848910 00000 n
+0000849071 00000 n
+0000849222 00000 n
+0000849393 00000 n
+0000849543 00000 n
+0000849707 00000 n
+0000849851 00000 n
+0000850024 00000 n
+0000850176 00000 n
+0000850337 00000 n
+0000850488 00000 n
+0000850658 00000 n
+0000850807 00000 n
+0000850969 00000 n
+0000851129 00000 n
+0000851268 00000 n
+0000851408 00000 n
+0000851568 00000 n
+0000851706 00000 n
+0000851854 00000 n
+0000851991 00000 n
+0000852149 00000 n
+0000852285 00000 n
+0000852449 00000 n
+0000852591 00000 n
+0000852762 00000 n
+0000852911 00000 n
+0000853070 00000 n
+0000853218 00000 n
+0000853387 00000 n
+0000853534 00000 n
+0000853687 00000 n
+0000853829 00000 n
+0000854000 00000 n
+0000854149 00000 n
+0000854308 00000 n
+0000854456 00000 n
+0000854625 00000 n
+0000854772 00000 n
+0000854936 00000 n
+0000855078 00000 n
+0000855249 00000 n
+0000855398 00000 n
+0000855558 00000 n
+0000855707 00000 n
+0000855877 00000 n
+0000856025 00000 n
+0000856187 00000 n
+0000856329 00000 n
+0000856500 00000 n
+0000856649 00000 n
+0000856808 00000 n
+0000856956 00000 n
+0000857126 00000 n
+0000857274 00000 n
+0000857437 00000 n
+0000857580 00000 n
+0000857752 00000 n
+0000857902 00000 n
+0000858061 00000 n
+0000858209 00000 n
+0000858367 00000 n
+0000858513 00000 n
+0000858683 00000 n
+0000858831 00000 n
+0000858995 00000 n
+0000859137 00000 n
+0000859309 00000 n
+0000859459 00000 n
+0000859618 00000 n
+0000859766 00000 n
+0000859926 00000 n
+0000860074 00000 n
+0000860245 00000 n
+0000860394 00000 n
+0000860556 00000 n
+0000860699 00000 n
+0000860872 00000 n
+0000861023 00000 n
+0000861184 00000 n
+0000861334 00000 n
+0000861494 00000 n
+0000861642 00000 n
+0000861813 00000 n
+0000861962 00000 n
+0000862116 00000 n
+0000862258 00000 n
+0000862427 00000 n
+0000862574 00000 n
+0000862733 00000 n
+0000862881 00000 n
+0000863038 00000 n
+0000863173 00000 n
+0000863316 00000 n
+0000863447 00000 n
+0000863595 00000 n
+0000863732 00000 n
+0000863890 00000 n
+0000864026 00000 n
+0000864190 00000 n
+0000864332 00000 n
+0000864503 00000 n
+0000864652 00000 n
+0000864811 00000 n
+0000864959 00000 n
+0000865117 00000 n
+0000865263 00000 n
+0000865427 00000 n
+0000865569 00000 n
+0000865740 00000 n
0000865889 00000 n
-0000866059 00000 n
-0000866207 00000 n
-0000866374 00000 n
-0000866519 00000 n
-0000866677 00000 n
-0000866824 00000 n
-0000866995 00000 n
-0000867144 00000 n
-0000867306 00000 n
-0000867446 00000 n
-0000867610 00000 n
-0000867763 00000 n
-0000867930 00000 n
-0000868075 00000 n
-0000868246 00000 n
-0000868395 00000 n
-0000868579 00000 n
-0000868743 00000 n
-0000868919 00000 n
-0000869073 00000 n
-0000869238 00000 n
-0000869381 00000 n
-0000869557 00000 n
-0000869711 00000 n
-0000869881 00000 n
-0000870029 00000 n
-0000870194 00000 n
-0000870337 00000 n
-0000870622 00000 n
-0000870701 00000 n
-0000870865 00000 n
-0000871056 00000 n
-0000871284 00000 n
-0000871501 00000 n
-0000871671 00000 n
-0000871889 00000 n
-0000872135 00000 n
-0000872308 00000 n
-0000872489 00000 n
-0000872754 00000 n
-0000872939 00000 n
-0000873120 00000 n
-0000873401 00000 n
-0000873586 00000 n
-0000873767 00000 n
-0000874024 00000 n
-0000874197 00000 n
-0000874378 00000 n
-0000874634 00000 n
-0000874823 00000 n
-0000875022 00000 n
-0000875217 00000 n
-0000875398 00000 n
-0000875719 00000 n
-0000875905 00000 n
-0000876074 00000 n
-0000876398 00000 n
-0000876587 00000 n
-0000876786 00000 n
-0000876967 00000 n
-0000877251 00000 n
-0000877441 00000 n
-0000877641 00000 n
-0000877837 00000 n
-0000878006 00000 n
-0000878302 00000 n
-0000878491 00000 n
-0000878690 00000 n
-0000878871 00000 n
-0000879256 00000 n
-0000879450 00000 n
-0000879653 00000 n
-0000879839 00000 n
-0000880351 00000 n
-0000880544 00000 n
-0000880748 00000 n
-0000880933 00000 n
-0000881358 00000 n
-0000881552 00000 n
-0000881743 00000 n
-0000881942 00000 n
-0000882127 00000 n
-0000882435 00000 n
-0000882628 00000 n
-0000882817 00000 n
-0000883125 00000 n
-0000883318 00000 n
-0000883522 00000 n
-0000883696 00000 n
-0000883981 00000 n
-0000884171 00000 n
-0000884357 00000 n
-0000884679 00000 n
-0000884873 00000 n
-0000885078 00000 n
-0000885265 00000 n
-0000885791 00000 n
-0000885985 00000 n
-0000886189 00000 n
-0000886364 00000 n
-0000886882 00000 n
-0000887077 00000 n
-0000887282 00000 n
-0000887468 00000 n
-0000888045 00000 n
-0000888239 00000 n
-0000888443 00000 n
-0000888629 00000 n
-0000888942 00000 n
-0000889136 00000 n
-0000889341 00000 n
-0000889527 00000 n
-0000889828 00000 n
-0000890022 00000 n
-0000890227 00000 n
-0000890413 00000 n
-0000890723 00000 n
-0000890918 00000 n
-0000891123 00000 n
-0000891297 00000 n
-0000891614 00000 n
-0000891808 00000 n
-0000892012 00000 n
-0000892198 00000 n
-0000892575 00000 n
-0000892770 00000 n
-0000892975 00000 n
-0000893176 00000 n
-0000893350 00000 n
-0000893735 00000 n
-0000893929 00000 n
-0000894134 00000 n
-0000894334 00000 n
-0000894521 00000 n
-0000894911 00000 n
-0000895106 00000 n
-0000895298 00000 n
-0000895498 00000 n
-0000895684 00000 n
-0000895965 00000 n
-0000896159 00000 n
-0000896363 00000 n
-0000896550 00000 n
-0000896803 00000 n
-0000896993 00000 n
-0000897167 00000 n
-0000897476 00000 n
-0000897670 00000 n
-0000897874 00000 n
-0000898060 00000 n
-0000898362 00000 n
-0000898556 00000 n
-0000898760 00000 n
-0000898947 00000 n
-0000899464 00000 n
-0000899658 00000 n
-0000899863 00000 n
-0000900063 00000 n
-0000900250 00000 n
-0000900788 00000 n
-0000900970 00000 n
-0000901160 00000 n
-0000901450 00000 n
-0000901640 00000 n
-0000901826 00000 n
-0000902292 00000 n
-0000902487 00000 n
-0000902691 00000 n
-0000902877 00000 n
-0000903322 00000 n
-0000903516 00000 n
-0000903720 00000 n
-0000903906 00000 n
-0000904164 00000 n
-0000904342 00000 n
-0000904528 00000 n
-0000904809 00000 n
-0000904999 00000 n
-0000905185 00000 n
-0000905502 00000 n
-0000905697 00000 n
-0000905902 00000 n
-0000906089 00000 n
-0000906416 00000 n
-0000906595 00000 n
-0000906781 00000 n
-0000907009 00000 n
-0000907215 00000 n
-0000907420 00000 n
-0000907617 00000 n
-0000907830 00000 n
-0000908055 00000 n
-0000908299 00000 n
-0000908491 00000 n
-0000908691 00000 n
-0000908880 00000 n
-0000909068 00000 n
-0000909280 00000 n
-0000909456 00000 n
-0000909680 00000 n
-0000909857 00000 n
-0000910066 00000 n
-0000910339 00000 n
-0000910572 00000 n
-0000910756 00000 n
-0000910972 00000 n
-0000911165 00000 n
-0000911327 00000 n
-0000912018 00000 n
-0000920026 00000 n
-0000920242 00000 n
-0000921605 00000 n
-0000922672 00000 n
-0000930424 00000 n
-0000930645 00000 n
-0000932008 00000 n
-0000933085 00000 n
-0000936346 00000 n
-0000936572 00000 n
-0000937935 00000 n
-0000939051 00000 n
-0000941194 00000 n
-0000941408 00000 n
-0000942771 00000 n
+0000866048 00000 n
+0000866196 00000 n
+0000866354 00000 n
+0000866500 00000 n
+0000866663 00000 n
+0000866805 00000 n
+0000866976 00000 n
+0000867125 00000 n
+0000867285 00000 n
+0000867434 00000 n
+0000867593 00000 n
+0000867740 00000 n
+0000867910 00000 n
+0000868058 00000 n
+0000868219 00000 n
+0000868361 00000 n
+0000868532 00000 n
+0000868681 00000 n
+0000868841 00000 n
+0000868990 00000 n
+0000869154 00000 n
+0000869298 00000 n
+0000869458 00000 n
+0000869607 00000 n
+0000869776 00000 n
+0000869923 00000 n
+0000870087 00000 n
+0000870229 00000 n
+0000870401 00000 n
+0000870551 00000 n
+0000870711 00000 n
+0000870860 00000 n
+0000871030 00000 n
+0000871178 00000 n
+0000871342 00000 n
+0000871484 00000 n
+0000871657 00000 n
+0000871808 00000 n
+0000871969 00000 n
+0000872119 00000 n
+0000872290 00000 n
+0000872439 00000 n
+0000872595 00000 n
+0000872739 00000 n
+0000872900 00000 n
+0000873050 00000 n
+0000873221 00000 n
+0000873370 00000 n
+0000873525 00000 n
+0000873669 00000 n
+0000873829 00000 n
+0000873978 00000 n
+0000874145 00000 n
+0000874290 00000 n
+0000874454 00000 n
+0000874596 00000 n
+0000874755 00000 n
+0000874892 00000 n
+0000875040 00000 n
+0000875177 00000 n
+0000875335 00000 n
+0000875471 00000 n
+0000875622 00000 n
+0000875753 00000 n
+0000875924 00000 n
+0000876073 00000 n
+0000876232 00000 n
+0000876380 00000 n
+0000876539 00000 n
+0000876686 00000 n
+0000876855 00000 n
+0000877002 00000 n
+0000877166 00000 n
+0000877308 00000 n
+0000877467 00000 n
+0000877615 00000 n
+0000877784 00000 n
+0000877931 00000 n
+0000878100 00000 n
+0000878247 00000 n
+0000878421 00000 n
+0000878573 00000 n
+0000878746 00000 n
+0000878897 00000 n
+0000879056 00000 n
+0000879203 00000 n
+0000879369 00000 n
+0000879523 00000 n
+0000879688 00000 n
+0000879842 00000 n
+0000880022 00000 n
+0000880180 00000 n
+0000880347 00000 n
+0000880492 00000 n
+0000880662 00000 n
+0000880810 00000 n
+0000880978 00000 n
+0000881124 00000 n
+0000881282 00000 n
+0000881429 00000 n
+0000881600 00000 n
+0000881749 00000 n
+0000881911 00000 n
+0000882051 00000 n
+0000882215 00000 n
+0000882368 00000 n
+0000882534 00000 n
+0000882678 00000 n
+0000882849 00000 n
+0000882998 00000 n
+0000883182 00000 n
+0000883346 00000 n
+0000883524 00000 n
+0000883680 00000 n
+0000883846 00000 n
+0000883990 00000 n
+0000884167 00000 n
+0000884322 00000 n
+0000884493 00000 n
+0000884642 00000 n
+0000884809 00000 n
+0000884954 00000 n
+0000885239 00000 n
+0000885318 00000 n
+0000885482 00000 n
+0000885673 00000 n
+0000885901 00000 n
+0000886118 00000 n
+0000886288 00000 n
+0000886506 00000 n
+0000886752 00000 n
+0000886925 00000 n
+0000887106 00000 n
+0000887371 00000 n
+0000887556 00000 n
+0000887737 00000 n
+0000888018 00000 n
+0000888203 00000 n
+0000888384 00000 n
+0000888641 00000 n
+0000888814 00000 n
+0000888995 00000 n
+0000889251 00000 n
+0000889440 00000 n
+0000889639 00000 n
+0000889834 00000 n
+0000890015 00000 n
+0000890336 00000 n
+0000890522 00000 n
+0000890691 00000 n
+0000891015 00000 n
+0000891204 00000 n
+0000891403 00000 n
+0000891584 00000 n
+0000891868 00000 n
+0000892058 00000 n
+0000892258 00000 n
+0000892454 00000 n
+0000892623 00000 n
+0000892919 00000 n
+0000893108 00000 n
+0000893307 00000 n
+0000893488 00000 n
+0000893873 00000 n
+0000894067 00000 n
+0000894270 00000 n
+0000894456 00000 n
+0000894968 00000 n
+0000895161 00000 n
+0000895365 00000 n
+0000895550 00000 n
+0000895975 00000 n
+0000896169 00000 n
+0000896360 00000 n
+0000896559 00000 n
+0000896744 00000 n
+0000897052 00000 n
+0000897245 00000 n
+0000897434 00000 n
+0000897742 00000 n
+0000897935 00000 n
+0000898139 00000 n
+0000898313 00000 n
+0000898598 00000 n
+0000898788 00000 n
+0000898974 00000 n
+0000899296 00000 n
+0000899490 00000 n
+0000899695 00000 n
+0000899882 00000 n
+0000900408 00000 n
+0000900602 00000 n
+0000900806 00000 n
+0000900981 00000 n
+0000901499 00000 n
+0000901694 00000 n
+0000901899 00000 n
+0000902085 00000 n
+0000902662 00000 n
+0000902856 00000 n
+0000903060 00000 n
+0000903246 00000 n
+0000903559 00000 n
+0000903753 00000 n
+0000903958 00000 n
+0000904144 00000 n
+0000904445 00000 n
+0000904639 00000 n
+0000904844 00000 n
+0000905030 00000 n
+0000905340 00000 n
+0000905535 00000 n
+0000905740 00000 n
+0000905914 00000 n
+0000906231 00000 n
+0000906425 00000 n
+0000906629 00000 n
+0000906815 00000 n
+0000907192 00000 n
+0000907387 00000 n
+0000907592 00000 n
+0000907793 00000 n
+0000907967 00000 n
+0000908352 00000 n
+0000908546 00000 n
+0000908751 00000 n
+0000908951 00000 n
+0000909138 00000 n
+0000909528 00000 n
+0000909723 00000 n
+0000909915 00000 n
+0000910115 00000 n
+0000910301 00000 n
+0000910582 00000 n
+0000910776 00000 n
+0000910980 00000 n
+0000911167 00000 n
+0000911420 00000 n
+0000911610 00000 n
+0000911784 00000 n
+0000912093 00000 n
+0000912287 00000 n
+0000912491 00000 n
+0000912677 00000 n
+0000912979 00000 n
+0000913173 00000 n
+0000913377 00000 n
+0000913564 00000 n
+0000914081 00000 n
+0000914275 00000 n
+0000914480 00000 n
+0000914680 00000 n
+0000914867 00000 n
+0000915405 00000 n
+0000915587 00000 n
+0000915777 00000 n
+0000916067 00000 n
+0000916257 00000 n
+0000916443 00000 n
+0000916909 00000 n
+0000917104 00000 n
+0000917308 00000 n
+0000917494 00000 n
+0000917939 00000 n
+0000918133 00000 n
+0000918337 00000 n
+0000918523 00000 n
+0000918781 00000 n
+0000918959 00000 n
+0000919145 00000 n
+0000919426 00000 n
+0000919616 00000 n
+0000919802 00000 n
+0000920119 00000 n
+0000920314 00000 n
+0000920519 00000 n
+0000920706 00000 n
+0000921079 00000 n
+0000921273 00000 n
+0000921477 00000 n
+0000921678 00000 n
+0000921864 00000 n
+0000922203 00000 n
+0000922394 00000 n
+0000922581 00000 n
+0000922809 00000 n
+0000923015 00000 n
+0000923220 00000 n
+0000923417 00000 n
+0000923630 00000 n
+0000923855 00000 n
+0000924099 00000 n
+0000924291 00000 n
+0000924491 00000 n
+0000924680 00000 n
+0000924868 00000 n
+0000925080 00000 n
+0000925256 00000 n
+0000925480 00000 n
+0000925657 00000 n
+0000925866 00000 n
+0000926139 00000 n
+0000926372 00000 n
+0000926556 00000 n
+0000926772 00000 n
+0000926965 00000 n
+0000927127 00000 n
+0000927818 00000 n
+0000935826 00000 n
+0000936042 00000 n
+0000937405 00000 n
+0000938472 00000 n
+0000946224 00000 n
+0000946445 00000 n
+0000947808 00000 n
+0000948885 00000 n
+0000952146 00000 n
+0000952372 00000 n
+0000953735 00000 n
+0000954851 00000 n
+0000956994 00000 n
+0000957208 00000 n
+0000958571 00000 n
trailer
-<< /Size 925
+<< /Size 946
/Root 2 0 R
/Info 1 0 R
>>
startxref
-943897
+959697
%%EOF
diff --git a/runtime/extra/sql/dump/test-data.sql b/runtime/extra/sql/dump/test-data.sql
index fc58ff822..5061a60c1 100644
--- a/runtime/extra/sql/dump/test-data.sql
+++ b/runtime/extra/sql/dump/test-data.sql
@@ -26,8 +26,8 @@ USE `cldsdb4`;
LOCK TABLES `dictionary` WRITE;
/*!40000 ALTER TABLE `dictionary` DISABLE KEYS */;
-INSERT INTO `dictionary` (`name`, `created_by`, `created_timestamp`, `updated_by`, `updated_timestamp`, `dictionary_second_level`, `dictionary_type`) VALUES ('DefaultActors','Not found','2021-06-11 11:47:44.320968','Not found','2021-06-11 11:47:44.320968',0,'');
-INSERT INTO `dictionary` (`name`, `created_by`, `created_timestamp`, `updated_by`, `updated_timestamp`, `dictionary_second_level`, `dictionary_type`) VALUES ('DefaultOperations','Not found','2021-06-11 11:47:44.457344','Not found','2021-06-11 11:47:44.457344',0,'');
+INSERT INTO `dictionary` (`name`, `created_by`, `created_timestamp`, `updated_by`, `updated_timestamp`, `dictionary_second_level`, `dictionary_type`) VALUES ('DefaultActors','Not found','2021-06-17 16:15:18.265816','Not found','2021-06-17 16:15:18.265816',0,'');
+INSERT INTO `dictionary` (`name`, `created_by`, `created_timestamp`, `updated_by`, `updated_timestamp`, `dictionary_second_level`, `dictionary_type`) VALUES ('DefaultOperations','Not found','2021-06-17 16:15:18.314468','Not found','2021-06-17 16:15:18.314468',0,'');
/*!40000 ALTER TABLE `dictionary` ENABLE KEYS */;
UNLOCK TABLES;
@@ -37,20 +37,20 @@ UNLOCK TABLES;
LOCK TABLES `dictionary_elements` WRITE;
/*!40000 ALTER TABLE `dictionary_elements` DISABLE KEYS */;
-INSERT INTO `dictionary_elements` (`short_name`, `created_by`, `created_timestamp`, `updated_by`, `updated_timestamp`, `description`, `name`, `subdictionary_name`, `type`) VALUES ('APPC','Not found','2021-06-11 11:47:44.379678','Not found','2021-06-11 11:47:44.379678','APPC component','APPC',NULL,'string');
-INSERT INTO `dictionary_elements` (`short_name`, `created_by`, `created_timestamp`, `updated_by`, `updated_timestamp`, `description`, `name`, `subdictionary_name`, `type`) VALUES ('BandwidthOnDemand (SDNC operation)','Not found','2021-06-11 11:47:44.460032','Not found','2021-06-11 11:47:44.460032','SDNC operation','BandwidthOnDemand',NULL,'string');
-INSERT INTO `dictionary_elements` (`short_name`, `created_by`, `created_timestamp`, `updated_by`, `updated_timestamp`, `description`, `name`, `subdictionary_name`, `type`) VALUES ('Health-Check (APPC operation)','Not found','2021-06-11 11:47:44.514571','Not found','2021-06-11 11:47:44.514571','APPC operation','Health-Check',NULL,'string');
-INSERT INTO `dictionary_elements` (`short_name`, `created_by`, `created_timestamp`, `updated_by`, `updated_timestamp`, `description`, `name`, `subdictionary_name`, `type`) VALUES ('Migrate (APPC operation)','Not found','2021-06-11 11:47:44.510317','Not found','2021-06-11 11:47:44.510317','APPC operation','Migrate',NULL,'string');
-INSERT INTO `dictionary_elements` (`short_name`, `created_by`, `created_timestamp`, `updated_by`, `updated_timestamp`, `description`, `name`, `subdictionary_name`, `type`) VALUES ('ModifyConfig (APPC/VFC operation)','Not found','2021-06-11 11:47:44.497414','Not found','2021-06-11 11:47:44.497414','APPC/VFC operation','ModifyConfig',NULL,'string');
-INSERT INTO `dictionary_elements` (`short_name`, `created_by`, `created_timestamp`, `updated_by`, `updated_timestamp`, `description`, `name`, `subdictionary_name`, `type`) VALUES ('Rebuild (APPC operation)','Not found','2021-06-11 11:47:44.489730','Not found','2021-06-11 11:47:44.489730','APPC operation','Rebuild',NULL,'string');
-INSERT INTO `dictionary_elements` (`short_name`, `created_by`, `created_timestamp`, `updated_by`, `updated_timestamp`, `description`, `name`, `subdictionary_name`, `type`) VALUES ('Reroute (SDNC operation)','Not found','2021-06-11 11:47:44.468512','Not found','2021-06-11 11:47:44.468512','SDNC operation','Reroute',NULL,'string');
-INSERT INTO `dictionary_elements` (`short_name`, `created_by`, `created_timestamp`, `updated_by`, `updated_timestamp`, `description`, `name`, `subdictionary_name`, `type`) VALUES ('Restart (APPC operation)','Not found','2021-06-11 11:47:44.508317','Not found','2021-06-11 11:47:44.508317','APPC operation','Restart',NULL,'string');
-INSERT INTO `dictionary_elements` (`short_name`, `created_by`, `created_timestamp`, `updated_by`, `updated_timestamp`, `description`, `name`, `subdictionary_name`, `type`) VALUES ('SDNC','Not found','2021-06-11 11:47:44.356168','Not found','2021-06-11 11:47:44.356168','SDNC component','SDNC',NULL,'string');
-INSERT INTO `dictionary_elements` (`short_name`, `created_by`, `created_timestamp`, `updated_by`, `updated_timestamp`, `description`, `name`, `subdictionary_name`, `type`) VALUES ('SDNR','Not found','2021-06-11 11:47:44.347633','Not found','2021-06-11 11:47:44.347633','SDNR component','SDNR',NULL,'string');
-INSERT INTO `dictionary_elements` (`short_name`, `created_by`, `created_timestamp`, `updated_by`, `updated_timestamp`, `description`, `name`, `subdictionary_name`, `type`) VALUES ('SO','Not found','2021-06-11 11:47:44.371174','Not found','2021-06-11 11:47:44.371174','SO component','SO',NULL,'string');
-INSERT INTO `dictionary_elements` (`short_name`, `created_by`, `created_timestamp`, `updated_by`, `updated_timestamp`, `description`, `name`, `subdictionary_name`, `type`) VALUES ('VF Module Create (SO operation)','Not found','2021-06-11 11:47:44.473426','Not found','2021-06-11 11:47:44.473426','SO operation','VF Module Create',NULL,'string');
-INSERT INTO `dictionary_elements` (`short_name`, `created_by`, `created_timestamp`, `updated_by`, `updated_timestamp`, `description`, `name`, `subdictionary_name`, `type`) VALUES ('VF Module Delete (SO operation)','Not found','2021-06-11 11:47:44.466054','Not found','2021-06-11 11:47:44.466054','SO operation','VF Module Delete',NULL,'string');
-INSERT INTO `dictionary_elements` (`short_name`, `created_by`, `created_timestamp`, `updated_by`, `updated_timestamp`, `description`, `name`, `subdictionary_name`, `type`) VALUES ('VFC','Not found','2021-06-11 11:47:44.367175','Not found','2021-06-11 11:47:44.367175','VFC component','VFC',NULL,'string');
+INSERT INTO `dictionary_elements` (`short_name`, `created_by`, `created_timestamp`, `updated_by`, `updated_timestamp`, `description`, `name`, `subdictionary_name`, `type`) VALUES ('APPC','Not found','2021-06-17 16:15:18.294511','Not found','2021-06-17 16:15:18.294511','APPC component','APPC',NULL,'string');
+INSERT INTO `dictionary_elements` (`short_name`, `created_by`, `created_timestamp`, `updated_by`, `updated_timestamp`, `description`, `name`, `subdictionary_name`, `type`) VALUES ('BandwidthOnDemand (SDNC operation)','Not found','2021-06-17 16:15:18.318633','Not found','2021-06-17 16:15:18.318633','SDNC operation','BandwidthOnDemand',NULL,'string');
+INSERT INTO `dictionary_elements` (`short_name`, `created_by`, `created_timestamp`, `updated_by`, `updated_timestamp`, `description`, `name`, `subdictionary_name`, `type`) VALUES ('Health-Check (APPC operation)','Not found','2021-06-17 16:15:18.367201','Not found','2021-06-17 16:15:18.367201','APPC operation','Health-Check',NULL,'string');
+INSERT INTO `dictionary_elements` (`short_name`, `created_by`, `created_timestamp`, `updated_by`, `updated_timestamp`, `description`, `name`, `subdictionary_name`, `type`) VALUES ('Migrate (APPC operation)','Not found','2021-06-17 16:15:18.364272','Not found','2021-06-17 16:15:18.364272','APPC operation','Migrate',NULL,'string');
+INSERT INTO `dictionary_elements` (`short_name`, `created_by`, `created_timestamp`, `updated_by`, `updated_timestamp`, `description`, `name`, `subdictionary_name`, `type`) VALUES ('ModifyConfig (APPC/VFC operation)','Not found','2021-06-17 16:15:18.357911','Not found','2021-06-17 16:15:18.357911','APPC/VFC operation','ModifyConfig',NULL,'string');
+INSERT INTO `dictionary_elements` (`short_name`, `created_by`, `created_timestamp`, `updated_by`, `updated_timestamp`, `description`, `name`, `subdictionary_name`, `type`) VALUES ('Rebuild (APPC operation)','Not found','2021-06-17 16:15:18.337034','Not found','2021-06-17 16:15:18.337034','APPC operation','Rebuild',NULL,'string');
+INSERT INTO `dictionary_elements` (`short_name`, `created_by`, `created_timestamp`, `updated_by`, `updated_timestamp`, `description`, `name`, `subdictionary_name`, `type`) VALUES ('Reroute (SDNC operation)','Not found','2021-06-17 16:15:18.324244','Not found','2021-06-17 16:15:18.324244','SDNC operation','Reroute',NULL,'string');
+INSERT INTO `dictionary_elements` (`short_name`, `created_by`, `created_timestamp`, `updated_by`, `updated_timestamp`, `description`, `name`, `subdictionary_name`, `type`) VALUES ('Restart (APPC operation)','Not found','2021-06-17 16:15:18.361008','Not found','2021-06-17 16:15:18.361008','APPC operation','Restart',NULL,'string');
+INSERT INTO `dictionary_elements` (`short_name`, `created_by`, `created_timestamp`, `updated_by`, `updated_timestamp`, `description`, `name`, `subdictionary_name`, `type`) VALUES ('SDNC','Not found','2021-06-17 16:15:18.278680','Not found','2021-06-17 16:15:18.278680','SDNC component','SDNC',NULL,'string');
+INSERT INTO `dictionary_elements` (`short_name`, `created_by`, `created_timestamp`, `updated_by`, `updated_timestamp`, `description`, `name`, `subdictionary_name`, `type`) VALUES ('SDNR','Not found','2021-06-17 16:15:18.275761','Not found','2021-06-17 16:15:18.275761','SDNR component','SDNR',NULL,'string');
+INSERT INTO `dictionary_elements` (`short_name`, `created_by`, `created_timestamp`, `updated_by`, `updated_timestamp`, `description`, `name`, `subdictionary_name`, `type`) VALUES ('SO','Not found','2021-06-17 16:15:18.284607','Not found','2021-06-17 16:15:18.284607','SO component','SO',NULL,'string');
+INSERT INTO `dictionary_elements` (`short_name`, `created_by`, `created_timestamp`, `updated_by`, `updated_timestamp`, `description`, `name`, `subdictionary_name`, `type`) VALUES ('VF Module Create (SO operation)','Not found','2021-06-17 16:15:18.327610','Not found','2021-06-17 16:15:18.327610','SO operation','VF Module Create',NULL,'string');
+INSERT INTO `dictionary_elements` (`short_name`, `created_by`, `created_timestamp`, `updated_by`, `updated_timestamp`, `description`, `name`, `subdictionary_name`, `type`) VALUES ('VF Module Delete (SO operation)','Not found','2021-06-17 16:15:18.320380','Not found','2021-06-17 16:15:18.320380','SO operation','VF Module Delete',NULL,'string');
+INSERT INTO `dictionary_elements` (`short_name`, `created_by`, `created_timestamp`, `updated_by`, `updated_timestamp`, `description`, `name`, `subdictionary_name`, `type`) VALUES ('VFC','Not found','2021-06-17 16:15:18.281456','Not found','2021-06-17 16:15:18.281456','VFC component','VFC',NULL,'string');
/*!40000 ALTER TABLE `dictionary_elements` ENABLE KEYS */;
UNLOCK TABLES;
@@ -93,8 +93,8 @@ UNLOCK TABLES;
LOCK TABLES `loop_element_models` WRITE;
/*!40000 ALTER TABLE `loop_element_models` DISABLE KEYS */;
-INSERT INTO `loop_element_models` (`name`, `created_by`, `created_timestamp`, `updated_by`, `updated_timestamp`, `blueprint_yaml`, `dcae_blueprint_id`, `loop_element_type`, `short_name`) VALUES ('onap.policies.monitoring.cdap.tca.hi.lo.app',NULL,'2021-06-11 11:47:47.298920','Not found','2021-06-11 11:47:47.837812',NULL,NULL,'MICRO_SERVICE_TYPE',NULL);
-INSERT INTO `loop_element_models` (`name`, `created_by`, `created_timestamp`, `updated_by`, `updated_timestamp`, `blueprint_yaml`, `dcae_blueprint_id`, `loop_element_type`, `short_name`) VALUES ('onap.policies.monitoring.tcagen2','Not found','2021-06-11 11:47:47.604509','Not found','2021-06-11 11:47:47.604509',NULL,NULL,'MICRO_SERVICE_TYPE',NULL);
+INSERT INTO `loop_element_models` (`name`, `created_by`, `created_timestamp`, `updated_by`, `updated_timestamp`, `blueprint_yaml`, `dcae_blueprint_id`, `loop_element_type`, `short_name`) VALUES ('onap.policies.monitoring.cdap.tca.hi.lo.app',NULL,'2021-06-17 16:15:19.343008','Not found','2021-06-17 16:15:19.660502',NULL,NULL,'MICRO_SERVICE_TYPE',NULL);
+INSERT INTO `loop_element_models` (`name`, `created_by`, `created_timestamp`, `updated_by`, `updated_timestamp`, `blueprint_yaml`, `dcae_blueprint_id`, `loop_element_type`, `short_name`) VALUES ('onap.policies.monitoring.tcagen2','Not found','2021-06-17 16:15:19.545296','Not found','2021-06-17 16:15:19.545296',NULL,NULL,'MICRO_SERVICE_TYPE',NULL);
/*!40000 ALTER TABLE `loop_element_models` ENABLE KEYS */;
UNLOCK TABLES;
@@ -113,10 +113,10 @@ UNLOCK TABLES;
LOCK TABLES `loop_templates` WRITE;
/*!40000 ALTER TABLE `loop_templates` DISABLE KEYS */;
-INSERT INTO `loop_templates` (`name`, `created_by`, `created_timestamp`, `updated_by`, `updated_timestamp`, `allowed_loop_type`, `blueprint_yaml`, `dcae_blueprint_id`, `maximum_instances_allowed`, `unique_blueprint`, `service_uuid`) VALUES ('LOOP_TEMPLATE_7Hs8u_v1_0_ResourceInstanceName1_tca','Not found','2021-06-11 11:47:47.456127','Not found','2021-06-11 11:47:47.456127','CLOSED','tosca_definitions_version: cloudify_dsl_1_3\nimports:\n- http://www.getcloudify.org/spec/cloudify/3.4/types.yaml\n- https://onap.org:8443/repository/solutioning01-mte2-raw/type_files/docker/2.2.0/node-type.yaml\n- https://onap.org:8443/repository/solutioning01-mte2-raw/type_files/relationship/1.0.0/node-type.yaml\n- http://onap.org:8081/repository/solutioning01-mte2-raw/type_files/dmaap/dmaap_mr.yaml\ninputs:\n location_id:\n type: string\n service_id:\n type: string\n policy_id:\n type: string\nnode_templates:\n policy_0:\n type: dcae.nodes.policy\n properties:\n policy_id: \n get_input: policy_id\n policy_model_id: \"onap.policies.monitoring.cdap.tca.hi.lo.app\"\n cdap_host_host:\n type: dcae.nodes.StreamingAnalytics.SelectedCDAPInfrastructure\n properties:\n location_id:\n get_input: location_id\n scn_override: cdap_broker.solutioning-central.dcae.onap.org\n interfaces:\n cloudify.interfaces.lifecycle: {\n }\n tca_tca:\n type: dcae.nodes.MicroService.cdap\n properties:\n app_config:\n appDescription: DCAE Analytics Threshold Crossing Alert Application\n appName: dcae-tca\n tcaSubscriberOutputStreamName: TCASubscriberOutputStream\n tcaVESAlertsTableName: TCAVESAlertsTable\n tcaVESAlertsTableTTLSeconds: \'1728000\'\n tcaVESMessageStatusTableName: TCAVESMessageStatusTable\n tcaVESMessageStatusTableTTLSeconds: \'86400\'\n thresholdCalculatorFlowletInstances: \'2\'\n app_preferences:\n publisherContentType: application/json\n publisherHostName: mrlocal-mtnjftle01.onap.org\n publisherHostPort: \'3905\'\n publisherMaxBatchSize: \'10\'\n publisherMaxRecoveryQueueSize: \'100000\'\n publisherPollingInterval: \'20000\'\n publisherProtocol: https\n publisherTopicName: org.onap.dcae.dmaap.mtnje2.DcaeTestVESPub\n publisherUserName: test@tca.af.dcae.onap.org\n publisherUserPassword: password\n subscriberConsumerGroup: OpenDCAE-c12\n subscriberConsumerId: c12\n subscriberContentType: application/json\n subscriberHostName: mrlocal-mtnjftle01.onap.org\n subscriberHostPort: \'3905\'\n subscriberMessageLimit: \'-1\'\n subscriberPollingInterval: \'20000\'\n subscriberProtocol: https\n subscriberTimeoutMS: \'-1\'\n subscriberTopicName: org.onap.dcae.dmaap.mtnje2.DcaeTestVESSub\n subscriberUserName: test@tca.af.dcae.onap.org\n subscriberUserPassword: password\n tca_policy: null\n artifact_name: dcae-analytics-tca\n artifact_version: 1.0.0\n connections:\n streams_publishes: [\n ]\n streams_subscribes: [\n ]\n jar_url: http://somejar\n location_id:\n get_input: location_id\n namespace: cdap_tca_hi_lo\n programs:\n - program_id: TCAVESCollectorFlow\n program_type: flows\n - program_id: TCADMaaPMRSubscriberWorker\n program_type: workers\n - program_id: TCADMaaPMRPublisherWorker\n program_type: workers\n service_component_type: cdap_app_tca\n service_id:\n get_input: service_id\n streamname: TCASubscriberOutputStream\n relationships:\n - target: topic0\n type: dcae.relationships.subscribe_to_events\n - target: topic1\n type: dcae.relationships.publish_events\n - target: cdap_host_host\n type: dcae.relationships.component_contained_in\n - target: policy_0\n type: dcae.relationships.depends_on\n topic0:\n type: dcae.nodes.Topic\n properties:\n topic_name: \'\'\n topic1:\n type: dcae.nodes.Topic\n properties:\n topic_name: \'\'\n \n','typeId-c9b76c0f-ab3d-4211-81e2-48c408bbb8e9',0,1,'63cac700-ab9a-4115-a74f-7eac85e3fce0');
-INSERT INTO `loop_templates` (`name`, `created_by`, `created_timestamp`, `updated_by`, `updated_timestamp`, `allowed_loop_type`, `blueprint_yaml`, `dcae_blueprint_id`, `maximum_instances_allowed`, `unique_blueprint`, `service_uuid`) VALUES ('LOOP_TEMPLATE_7Hs8u_v1_0_ResourceInstanceName1_tca-guilin','Not found','2021-06-11 11:47:47.597916','Not found','2021-06-11 11:47:47.597916','CLOSED','# ============LICENSE_START====================================================\n# =============================================================================\n# Copyright (C) 2019-2020 AT&T Intellectual Property. All rights reserved.\n# =============================================================================\n# Licensed under the Apache License, Version 2.0 (the \"License\");\n# you may not use this file except in compliance with the License.\n# You may obtain a copy of the License at\n#\n# http://www.apache.org/licenses/LICENSE-2.0\n#\n# Unless required by applicable law or agreed to in writing, software\n# distributed under the License is distributed on an \"AS IS\" BASIS,\n# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n# See the License for the specific language governing permissions and\n# limitations under the License.\n# ============LICENSE_END======================================================\n#k8s-tca-gen2-v3.yaml\n\ntosca_definitions_version: cloudify_dsl_1_3\nimports:\n - https://www.getcloudify.org/spec/cloudify/4.5.5/types.yaml\n - plugin:k8splugin?version=3.4.2\n - plugin:clamppolicyplugin?version=1.1.0\ninputs:\n service_name:\n type: string\n default: \'dcae-tcagen2\'\n log_directory:\n type: string\n default: \"/opt/logs/dcae-analytics-tca\"\n replicas:\n type: integer\n description: number of instances\n default: 1\n spring.data.mongodb.uri:\n type: string\n default: \"mongodb://dcae-mongohost/dcae-tcagen2\"\n tag_version:\n type: string\n default: \"nexus3.onap.org:10001/onap/org.onap.dcaegen2.analytics.tca-gen2.dcae-analytics-tca-web:1.2.1\"\n tca.aai.password:\n type: string\n default: \"DCAE\"\n tca.aai.url:\n type: string\n default: \"http://aai.onap.svc.cluster.local\"\n tca.aai.username:\n type: string\n default: \"DCAE\"\n tca_handle_in_subscribe_url:\n type: string\n default: \"http://message-router.onap.svc.cluster.local:3904/events/unauthenticated.VES_MEASUREMENT_OUTPUT\"\n tca_handle_out_publish_url:\n type: string\n default: \"http://message-router.onap.svc.cluster.local:3904/events/unauthenticated.DCAE_CL_OUTPUT\"\n tca_consumer_group:\n type: string\n default: \"cg1\"\n policy_model_id:\n type: string\n default: \"onap.policies.monitoring.tcagen2\"\n policy_id:\n type: string\n default: \"onap.restart.tca\"\nnode_templates:\n docker.tca:\n type: dcae.nodes.ContainerizedServiceComponent\n relationships:\n - target: tcagen2_policy\n type: cloudify.relationships.depends_on\n interfaces:\n cloudify.interfaces.lifecycle:\n start:\n inputs:\n ports:\n - concat: [\"9091:\", \"0\"]\n properties:\n application_config:\n service_calls: []\n streams_publishes:\n tca_handle_out:\n dmaap_info:\n topic_url:\n get_input: tca_handle_out_publish_url\n type: message_router\n streams_subscribes:\n tca_handle_in:\n dmaap_info:\n topic_url:\n get_input: tca_handle_in_subscribe_url\n type: message_router\n spring.data.mongodb.uri:\n get_input: spring.data.mongodb.uri\n streams_subscribes.tca_handle_in.consumer_group:\n get_input: tca_consumer_group\n streams_subscribes.tca_handle_in.consumer_ids[0]: c0\n streams_subscribes.tca_handle_in.consumer_ids[1]: c1\n streams_subscribes.tca_handle_in.message_limit: 50000\n streams_subscribes.tca_handle_in.polling.auto_adjusting.max: 60000\n streams_subscribes.tca_handle_in.polling.auto_adjusting.min: 30000\n streams_subscribes.tca_handle_in.polling.auto_adjusting.step_down: 30000\n streams_subscribes.tca_handle_in.polling.auto_adjusting.step_up: 10000\n streams_subscribes.tca_handle_in.polling.fixed_rate: 0\n streams_subscribes.tca_handle_in.timeout: -1\n tca.aai.enable_enrichment: true\n tca.aai.generic_vnf_path: aai/v11/network/generic-vnfs/generic-vnf\n tca.aai.node_query_path: aai/v11/search/nodes-query\n tca.aai.password:\n get_input: tca.aai.password\n tca.aai.url:\n get_input: tca.aai.url\n tca.aai.username:\n get_input: tca.aai.username\n tca.policy: \'{\"domain\":\"measurementsForVfScaling\",\"metricsPerEventName\":[{\"eventName\":\"vFirewallBroadcastPackets\",\"controlLoopSchemaType\":\"VM\",\"policyScope\":\"DCAE\",\"policyName\":\"DCAE.Config_tca-hi-lo\",\"policyVersion\":\"v0.0.1\",\"thresholds\":[{\"closedLoopControlName\":\"ControlLoop-vFirewall-d0a1dfc6-94f5-4fd4-a5b5-4630b438850a\",\"version\":\"1.0.2\",\"fieldPath\":\"$.event.measurementsForVfScalingFields.vNicPerformanceArray[*].receivedTotalPacketsDelta\",\"thresholdValue\":300,\"direction\":\"LESS_OR_EQUAL\",\"severity\":\"MAJOR\",\"closedLoopEventStatus\":\"ONSET\"},{\"closedLoopControlName\":\"ControlLoop-vFirewall-d0a1dfc6-94f5-4fd4-a5b5-4630b438850a\",\"version\":\"1.0.2\",\"fieldPath\":\"$.event.measurementsForVfScalingFields.vNicPerformanceArray[*].receivedTotalPacketsDelta\",\"thresholdValue\":700,\"direction\":\"GREATER_OR_EQUAL\",\"severity\":\"CRITICAL\",\"closedLoopEventStatus\":\"ONSET\"}]},{\"eventName\":\"vLoadBalancer\",\"controlLoopSchemaType\":\"VM\",\"policyScope\":\"DCAE\",\"policyName\":\"DCAE.Config_tca-hi-lo\",\"policyVersion\":\"v0.0.1\",\"thresholds\":[{\"closedLoopControlName\":\"ControlLoop-vDNS-6f37f56d-a87d-4b85-b6a9-cc953cf779b3\",\"version\":\"1.0.2\",\"fieldPath\":\"$.event.measurementsForVfScalingFields.vNicPerformanceArray[*].receivedTotalPacketsDelta\",\"thresholdValue\":300,\"direction\":\"GREATER_OR_EQUAL\",\"severity\":\"CRITICAL\",\"closedLoopEventStatus\":\"ONSET\"}]},{\"eventName\":\"Measurement_vGMUX\",\"controlLoopSchemaType\":\"VNF\",\"policyScope\":\"DCAE\",\"policyName\":\"DCAE.Config_tca-hi-lo\",\"policyVersion\":\"v0.0.1\",\"thresholds\":[{\"closedLoopControlName\":\"ControlLoop-vCPE-48f0c2c3-a172-4192-9ae3-052274181b6e\",\"version\":\"1.0.2\",\"fieldPath\":\"$.event.measurementsForVfScalingFields.additionalMeasurements[*].arrayOfFields[0].value\",\"thresholdValue\":0,\"direction\":\"EQUAL\",\"severity\":\"MAJOR\",\"closedLoopEventStatus\":\"ABATED\"},{\"closedLoopControlName\":\"ControlLoop-vCPE-48f0c2c3-a172-4192-9ae3-052274181b6e\",\"version\":\"1.0.2\",\"fieldPath\":\"$.event.measurementsForVfScalingFields.additionalMeasurements[*].arrayOfFields[0].value\",\"thresholdValue\":0,\"direction\":\"GREATER\",\"severity\":\"CRITICAL\",\"closedLoopEventStatus\":\"ONSET\"}]}]}\'\n tca.processing_batch_size: 10000\n tca.enable_abatement: true\n tca.enable_ecomp_logging: true\n docker_config:\n healthcheck:\n endpoint: /actuator/health\n interval: 30s\n timeout: 10s\n type: http\n image:\n get_input: tag_version\n log_info:\n log_directory:\n get_input: log_directory\n tls_info:\n use_tls: true\n cert_directory: \'/etc/tca-gen2/ssl\'\n replicas:\n get_input: replicas\n service_component_type: { get_input: service_name }\n tcagen2_policy:\n type: clamp.nodes.policy\n properties:\n policy_id:\n get_input: policy_id\n policy_model_id:\n get_input: policy_model_id\n','typeId-d024d8f6-831b-4f2f-b109-a74b76ac1447',0,1,'63cac700-ab9a-4115-a74f-7eac85e3fce0');
-INSERT INTO `loop_templates` (`name`, `created_by`, `created_timestamp`, `updated_by`, `updated_timestamp`, `allowed_loop_type`, `blueprint_yaml`, `dcae_blueprint_id`, `maximum_instances_allowed`, `unique_blueprint`, `service_uuid`) VALUES ('LOOP_TEMPLATE_7Hs8u_v1_0_ResourceInstanceName1_tca_3','Not found','2021-06-11 11:47:47.377190','Not found','2021-06-11 11:47:47.377190','CLOSED','#\n# ============LICENSE_START====================================================\n# =============================================================================\n# Copyright (c) 2019 AT&T Intellectual Property. All rights reserved.\n# =============================================================================\n# Licensed under the Apache License, Version 2.0 (the \"License\");\n# you may not use this file except in compliance with the License.\n# You may obtain a copy of the License at\n#\n# http://www.apache.org/licenses/LICENSE-2.0\n#\n# Unless required by applicable law or agreed to in writing, software\n# distributed under the License is distributed on an \"AS IS\" BASIS,\n# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n# See the License for the specific language governing permissions and\n# limitations under the License.\n# ============LICENSE_END======================================================\n\ntosca_definitions_version: cloudify_dsl_1_3\n\ndescription: >\n This blueprint deploys/manages the TCA module as a Docker container\n\nimports:\n - https://www.getcloudify.org/spec/cloudify/4.5.5/types.yaml\n - \"https://nexus.onap.org/service/local/repositories/raw/content/org.onap.dcaegen2.platform.plugins/R6/k8splugin/1.7.2/k8splugin_types.yaml\"\n - \"https://nexus.onap.org/service/local/repositories/raw/content/org.onap.dcaegen2.platform.plugins/R6/clamppolicyplugin/1.1.0/clamppolicyplugin_types.yaml\"\ninputs:\n aaiEnrichmentHost:\n type: string\n default: \"aai.onap.svc.cluster.local\"\n aaiEnrichmentPort:\n type: string\n default: \"8443\"\n enableAAIEnrichment:\n type: string\n default: \"true\"\n dmaap_host:\n type: string\n default: \"message-router.onap.svc.cluster.local\"\n dmaap_port:\n type: string\n default: \"3904\"\n enableRedisCaching:\n type: string\n default: \"false\"\n redisHosts:\n type: string\n default: \"dcae-redis.onap.svc.cluster.local:6379\"\n tag_version:\n type: string\n default: \"nexus3.onap.org:10001/onap/org.onap.dcaegen2.deployments.tca-cdap-container:1.2.2\"\n consul_host:\n type: string\n default: \"consul-server.onap\"\n consul_port:\n type: string\n default: \"8500\"\n cbs_host:\n type: string\n default: \"config-binding-service\"\n cbs_port:\n type: string\n default: \"10000\"\n policy_id:\n type: string\n default: \"onap.restart.tca\"\n external_port:\n type: string\n description: Kubernetes node port on which CDAPgui is exposed\n default: \"32012\"\n policy_model_id:\n type: string\n default: \"onap.policies.monitoring.cdap.tca.hi.lo.app\"\nnode_templates:\n tca_k8s:\n type: dcae.nodes.ContainerizedServiceComponent\n relationships:\n - target: tca_policy\n type: cloudify.relationships.depends_on\n properties:\n service_component_type: \'dcaegen2-analytics-tca\'\n application_config: {}\n docker_config: {}\n image:\n get_input: tag_version\n log_info:\n log_directory: \"/opt/app/TCAnalytics/logs\"\n application_config:\n app_config:\n appDescription: DCAE Analytics Threshold Crossing Alert Application\n appName: dcae-tca\n tcaAlertsAbatementTableName: TCAAlertsAbatementTable\n tcaAlertsAbatementTableTTLSeconds: \'1728000\'\n tcaSubscriberOutputStreamName: TCASubscriberOutputStream\n tcaVESAlertsTableName: TCAVESAlertsTable\n tcaVESAlertsTableTTLSeconds: \'1728000\'\n tcaVESMessageStatusTableName: TCAVESMessageStatusTable\n tcaVESMessageStatusTableTTLSeconds: \'86400\'\n thresholdCalculatorFlowletInstances: \'2\'\n app_preferences:\n aaiEnrichmentHost:\n get_input: aaiEnrichmentHost\n aaiEnrichmentIgnoreSSLCertificateErrors: \'true\'\n aaiEnrichmentPortNumber: \'8443\'\n aaiEnrichmentProtocol: https\n aaiEnrichmentUserName: dcae@dcae.onap.org\n aaiEnrichmentUserPassword: demo123456!\n aaiVMEnrichmentAPIPath: /aai/v11/search/nodes-query\n aaiVNFEnrichmentAPIPath: /aai/v11/network/generic-vnfs/generic-vnf\n enableAAIEnrichment:\n get_input: enableAAIEnrichment\n enableRedisCaching:\n get_input: enableRedisCaching\n redisHosts:\n get_input: redisHosts\n enableAlertCEFFormat: \'false\'\n publisherContentType: application/json\n publisherHostName:\n get_input: dmaap_host\n publisherHostPort:\n get_input: dmaap_port\n publisherMaxBatchSize: \'1\'\n publisherMaxRecoveryQueueSize: \'100000\'\n publisherPollingInterval: \'20000\'\n publisherProtocol: http\n publisherTopicName: unauthenticated.DCAE_CL_OUTPUT\n subscriberConsumerGroup: OpenDCAE-clamp\n subscriberConsumerId: c12\n subscriberContentType: application/json\n subscriberHostName:\n get_input: dmaap_host\n subscriberHostPort:\n get_input: dmaap_port\n subscriberMessageLimit: \'-1\'\n subscriberPollingInterval: \'30000\'\n subscriberProtocol: http\n subscriberTimeoutMS: \'-1\'\n subscriberTopicName: unauthenticated.VES_MEASUREMENT_OUTPUT\n #tca_policy: \'{\"domain\":\"measurementsForVfScaling\",\"metricsPerEventName\":[{\"eventName\":\"vFirewallBroadcastPackets\",\"controlLoopSchemaType\":\"VM\",\"policyScope\":\"DCAE\",\"policyName\":\"DCAE.Config_tca-hi-lo\",\"policyVersion\":\"v0.0.1\",\"thresholds\":[{\"closedLoopControlName\":\"ControlLoop-vFirewall-d0a1dfc6-94f5-4fd4-a5b5-4630b438850a\",\"version\":\"1.0.2\",\"fieldPath\":\"$.event.measurementsForVfScalingFields.vNicPerformanceArray[*].receivedTotalPacketsDelta\",\"thresholdValue\":300,\"direction\":\"LESS_OR_EQUAL\",\"severity\":\"MAJOR\",\"closedLoopEventStatus\":\"ONSET\"},{\"closedLoopControlName\":\"ControlLoop-vFirewall-d0a1dfc6-94f5-4fd4-a5b5-4630b438850a\",\"version\":\"1.0.2\",\"fieldPath\":\"$.event.measurementsForVfScalingFields.vNicPerformanceArray[*].receivedTotalPacketsDelta\",\"thresholdValue\":700,\"direction\":\"GREATER_OR_EQUAL\",\"severity\":\"CRITICAL\",\"closedLoopEventStatus\":\"ONSET\"}]},{\"eventName\":\"vLoadBalancer\",\"controlLoopSchemaType\":\"VM\",\"policyScope\":\"DCAE\",\"policyName\":\"DCAE.Config_tca-hi-lo\",\"policyVersion\":\"v0.0.1\",\"thresholds\":[{\"closedLoopControlName\":\"ControlLoop-vDNS-6f37f56d-a87d-4b85-b6a9-cc953cf779b3\",\"version\":\"1.0.2\",\"fieldPath\":\"$.event.measurementsForVfScalingFields.vNicPerformanceArray[*].receivedTotalPacketsDelta\",\"thresholdValue\":300,\"direction\":\"GREATER_OR_EQUAL\",\"severity\":\"CRITICAL\",\"closedLoopEventStatus\":\"ONSET\"}]},{\"eventName\":\"Measurement_vGMUX\",\"controlLoopSchemaType\":\"VNF\",\"policyScope\":\"DCAE\",\"policyName\":\"DCAE.Config_tca-hi-lo\",\"policyVersion\":\"v0.0.1\",\"thresholds\":[{\"closedLoopControlName\":\"ControlLoop-vCPE-48f0c2c3-a172-4192-9ae3-052274181b6e\",\"version\":\"1.0.2\",\"fieldPath\":\"$.event.measurementsForVfScalingFields.additionalMeasurements[*].arrayOfFields[0].value\",\"thresholdValue\":0,\"direction\":\"EQUAL\",\"severity\":\"MAJOR\",\"closedLoopEventStatus\":\"ABATED\"},{\"closedLoopControlName\":\"ControlLoop-vCPE-48f0c2c3-a172-4192-9ae3-052274181b6e\",\"version\":\"1.0.2\",\"fieldPath\":\"$.event.measurementsForVfScalingFields.additionalMeasurements[*].arrayOfFields[0].value\",\"thresholdValue\":0,\"direction\":\"GREATER\",\"severity\":\"CRITICAL\",\"closedLoopEventStatus\":\"ONSET\"}]}]}\'\n tca_policy: \'\'\n service_component_type: dcaegen2-analytics_tca\n interfaces:\n cloudify.interfaces.lifecycle:\n start:\n inputs:\n envs:\n DMAAPHOST:\n { get_input: dmaap_host }\n DMAAPPORT: \"3904\"\n DMAAPPUBTOPIC: \"unauthenticated.DCAE_CL_OUTPUT\"\n DMAAPSUBTOPIC: \"unauthenticated.VES_MEASUREMENT_OUTPUT\"\n AAIHOST:\n { get_input: aaiEnrichmentHost }\n AAIPORT: \"8443\"\n CONSUL_HOST:\n { get_input: consul_host }\n CONSUL_PORT: \"8500\"\n CBS_HOST:\n { get_input: cbs_host }\n CBS_PORT: \"10000\"\n CONFIG_BINDING_SERVICE: \"config_binding_service\"\n ports:\n - concat: [\"11011:\", { get_input: external_port }]\n tca_policy:\n type: clamp.nodes.policy\n properties:\n policy_id:\n get_input: policy_id\n policy_model_id:\n get_input: policy_model_id\n','typeId-97e0b6ba-d5cd-4a2c-b676-4df6b74ddc36',0,1,'63cac700-ab9a-4115-a74f-7eac85e3fce0');
-INSERT INTO `loop_templates` (`name`, `created_by`, `created_timestamp`, `updated_by`, `updated_timestamp`, `allowed_loop_type`, `blueprint_yaml`, `dcae_blueprint_id`, `maximum_instances_allowed`, `unique_blueprint`, `service_uuid`) VALUES ('LOOP_TEMPLATE_7Hs8u_v1_0_ResourceInstanceName2_tca_2','Not found','2021-06-11 11:47:47.253006','Not found','2021-06-11 11:47:47.253006','CLOSED','#\n# ============LICENSE_START====================================================\n# =============================================================================\n# Copyright (c) 2019 AT&T Intellectual Property. All rights reserved.\n# =============================================================================\n# Licensed under the Apache License, Version 2.0 (the \"License\");\n# you may not use this file except in compliance with the License.\n# You may obtain a copy of the License at\n#\n# http://www.apache.org/licenses/LICENSE-2.0\n#\n# Unless required by applicable law or agreed to in writing, software\n# distributed under the License is distributed on an \"AS IS\" BASIS,\n# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n# See the License for the specific language governing permissions and\n# limitations under the License.\n# ============LICENSE_END======================================================\n\ntosca_definitions_version: cloudify_dsl_1_3\n\ndescription: >\n This blueprint deploys/manages the TCA module as a Docker container\n\nimports:\n - http://www.getcloudify.org/spec/cloudify/3.4/types.yaml\n - https://nexus.onap.org/service/local/repositories/raw/content/org.onap.dcaegen2.platform.plugins/R4/k8splugin/1.4.12/k8splugin_types.yaml\n# - https://nexus.onap.org/service/local/repositories/raw/content/org.onap.dcaegen2.platform.plugins/R4/dcaepolicyplugin/2.3.0/dcaepolicyplugin_types.yaml\n - https://nexus.onap.org/service/local/repositories/raw/content/org.onap.dcaegen2.platform.plugins/R4/clamppolicyplugin/1.0.0/clamppolicyplugin_types.yaml\ninputs:\n aaiEnrichmentHost:\n type: string\n default: \"aai.onap.svc.cluster.local\"\n aaiEnrichmentPort:\n type: string\n default: \"8443\"\n enableAAIEnrichment:\n type: string\n default: true\n dmaap_host:\n type: string\n default: message-router.onap\n dmaap_port:\n type: string\n default: \"3904\"\n enableRedisCaching:\n type: string\n default: false\n redisHosts:\n type: string\n default: dcae-redis.onap.svc.cluster.local:6379\n tag_version:\n type: string\n default: \"nexus3.onap.org:10001/onap/org.onap.dcaegen2.deployments.tca-cdap-container:1.1.1\"\n consul_host:\n type: string\n default: consul-server.onap\n consul_port:\n type: string\n default: \"8500\"\n cbs_host:\n type: string\n default: \"config-binding-servicel\"\n cbs_port:\n type: string\n default: \"10000\"\n policy_id:\n type: string\n default: \"onap.restart.tca\"\n external_port:\n type: string\n description: Kubernetes node port on which CDAPgui is exposed\n default: \"32012\"\n policy_model_id:\n type: string\n default: \"onap.policies.monitoring.cdap.tca.hi.lo.app\"\nnode_templates:\n tca_k8s:\n type: dcae.nodes.ContainerizedServiceComponent\n relationships:\n - target: tca_policy\n type: cloudify.relationships.depends_on\n properties:\n service_component_type: \'dcaegen2-analytics-tca\'\n application_config: {}\n docker_config: {}\n image:\n get_input: tag_version\n log_info:\n log_directory: \"/opt/app/TCAnalytics/logs\"\n application_config:\n app_config:\n appDescription: DCAE Analytics Threshold Crossing Alert Application\n appName: dcae-tca\n tcaAlertsAbatementTableName: TCAAlertsAbatementTable\n tcaAlertsAbatementTableTTLSeconds: \'1728000\'\n tcaSubscriberOutputStreamName: TCASubscriberOutputStream\n tcaVESAlertsTableName: TCAVESAlertsTable\n tcaVESAlertsTableTTLSeconds: \'1728000\'\n tcaVESMessageStatusTableName: TCAVESMessageStatusTable\n tcaVESMessageStatusTableTTLSeconds: \'86400\'\n thresholdCalculatorFlowletInstances: \'2\'\n app_preferences:\n aaiEnrichmentHost:\n get_input: aaiEnrichmentHost\n aaiEnrichmentIgnoreSSLCertificateErrors: \'true\'\n aaiEnrichmentPortNumber: \'8443\'\n aaiEnrichmentProtocol: https\n aaiEnrichmentUserName: dcae@dcae.onap.org\n aaiEnrichmentUserPassword: demo123456!\n aaiVMEnrichmentAPIPath: /aai/v11/search/nodes-query\n aaiVNFEnrichmentAPIPath: /aai/v11/network/generic-vnfs/generic-vnf\n enableAAIEnrichment:\n get_input: enableAAIEnrichment\n enableRedisCaching:\n get_input: enableRedisCaching\n redisHosts:\n get_input: redisHosts\n enableAlertCEFFormat: \'false\'\n publisherContentType: application/json\n publisherHostName:\n get_input: dmaap_host\n publisherHostPort:\n get_input: dmaap_port\n publisherMaxBatchSize: \'1\'\n publisherMaxRecoveryQueueSize: \'100000\'\n publisherPollingInterval: \'20000\'\n publisherProtocol: http\n publisherTopicName: unauthenticated.DCAE_CL_OUTPUT\n subscriberConsumerGroup: OpenDCAE-clamp\n subscriberConsumerId: c12\n subscriberContentType: application/json\n subscriberHostName:\n get_input: dmaap_host\n subscriberHostPort:\n get_input: dmaap_port\n subscriberMessageLimit: \'-1\'\n subscriberPollingInterval: \'30000\'\n subscriberProtocol: http\n subscriberTimeoutMS: \'-1\'\n subscriberTopicName: unauthenticated.VES_MEASUREMENT_OUTPUT\n# tca_policy: \'{\"domain\":\"measurementsForVfScaling\",\"metricsPerEventName\":[{\"eventName\":\"vFirewallBroadcastPackets\",\"controlLoopSchemaType\":\"VNF\",\"policyScope\":\"DCAE\",\"policyName\":\"DCAE.Config_tca-hi-lo\",\"policyVersion\":\"v0.0.1\",\"thresholds\":[{\"closedLoopControlName\":\"ControlLoop-vFirewall-d0a1dfc6-94f5-4fd4-a5b5-4630b438850a\",\"version\":\"1.0.2\",\"fieldPath\":\"$.event.measurementsForVfScalingFields.vNicPerformanceArray[*].receivedTotalPacketsDelta\",\"thresholdValue\":300,\"direction\":\"LESS_OR_EQUAL\",\"severity\":\"MAJOR\",\"closedLoopEventStatus\":\"ONSET\"},{\"closedLoopControlName\":\"ControlLoop-vFirewall-d0a1dfc6-94f5-4fd4-a5b5-4630b438850a\",\"version\":\"1.0.2\",\"fieldPath\":\"$.event.measurementsForVfScalingFields.vNicPerformanceArray[*].receivedTotalPacketsDelta\",\"thresholdValue\":700,\"direction\":\"GREATER_OR_EQUAL\",\"severity\":\"CRITICAL\",\"closedLoopEventStatus\":\"ONSET\"}]},{\"eventName\":\"vLoadBalancer\",\"controlLoopSchemaType\":\"VM\",\"policyScope\":\"DCAE\",\"policyName\":\"DCAE.Config_tca-hi-lo\",\"policyVersion\":\"v0.0.1\",\"thresholds\":[{\"closedLoopControlName\":\"ControlLoop-vDNS-6f37f56d-a87d-4b85-b6a9-cc953cf779b3\",\"version\":\"1.0.2\",\"fieldPath\":\"$.event.measurementsForVfScalingFields.vNicPerformanceArray[*].receivedTotalPacketsDelta\",\"thresholdValue\":300,\"direction\":\"GREATER_OR_EQUAL\",\"severity\":\"CRITICAL\",\"closedLoopEventStatus\":\"ONSET\"}]},{\"eventName\":\"Measurement_vGMUX\",\"controlLoopSchemaType\":\"VNF\",\"policyScope\":\"DCAE\",\"policyName\":\"DCAE.Config_tca-hi-lo\",\"policyVersion\":\"v0.0.1\",\"thresholds\":[{\"closedLoopControlName\":\"ControlLoop-vCPE-48f0c2c3-a172-4192-9ae3-052274181b6e\",\"version\":\"1.0.2\",\"fieldPath\":\"$.event.measurementsForVfScalingFields.additionalMeasurements[*].arrayOfFields[0].value\",\"thresholdValue\":0,\"direction\":\"EQUAL\",\"severity\":\"MAJOR\",\"closedLoopEventStatus\":\"ABATED\"},{\"closedLoopControlName\":\"ControlLoop-vCPE-48f0c2c3-a172-4192-9ae3-052274181b6e\",\"version\":\"1.0.2\",\"fieldPath\":\"$.event.measurementsForVfScalingFields.additionalMeasurements[*].arrayOfFields[0].value\",\"thresholdValue\":0,\"direction\":\"GREATER\",\"severity\":\"CRITICAL\",\"closedLoopEventStatus\":\"ONSET\"}]}]}\'\n service_component_type: dcaegen2-analytics_tca\n interfaces:\n cloudify.interfaces.lifecycle:\n start:\n inputs:\n envs:\n DMAAPHOST:\n { get_input: dmaap_host }\n DMAAPPORT:\n { get_input: dmaap_port }\n DMAAPPUBTOPIC: \"unauthenticated.DCAE_CL_OUTPUT\"\n DMAAPSUBTOPIC: \"unauthenticated.VES_MEASUREMENT_OUTPUT\"\n AAIHOST:\n { get_input: aaiEnrichmentHost }\n AAIPORT:\n { get_input: aaiEnrichmentPort }\n CONSUL_HOST:\n { get_input: consul_host }\n CONSUL_PORT:\n { get_input: consul_port }\n CBS_HOST:\n { get_input: cbs_host }\n CBS_PORT:\n { get_input: cbs_port }\n CONFIG_BINDING_SERVICE: \"config_binding_service\"\n ports:\n - concat: [\"11011:\", { get_input: external_port }]\n tca_policy:\n type: clamp.nodes.policy\n properties:\n policy_id:\n get_input: policy_id\n policy_model_id: \"onap.policies.monitoring.cdap.tca.hi.lo.app\"\n','typeId-c0ae6157-b06d-428c-9aee-0a7052660a55',0,1,'63cac700-ab9a-4115-a74f-7eac85e3fce0');
+INSERT INTO `loop_templates` (`name`, `created_by`, `created_timestamp`, `updated_by`, `updated_timestamp`, `allowed_loop_type`, `blueprint_yaml`, `dcae_blueprint_id`, `maximum_instances_allowed`, `unique_blueprint`, `service_uuid`) VALUES ('LOOP_TEMPLATE_RHkGa_v1_0_ResourceInstanceName1_tca','Not found','2021-06-17 16:15:19.419002','Not found','2021-06-17 16:15:19.419002','CLOSED','tosca_definitions_version: cloudify_dsl_1_3\nimports:\n- http://www.getcloudify.org/spec/cloudify/3.4/types.yaml\n- https://onap.org:8443/repository/solutioning01-mte2-raw/type_files/docker/2.2.0/node-type.yaml\n- https://onap.org:8443/repository/solutioning01-mte2-raw/type_files/relationship/1.0.0/node-type.yaml\n- http://onap.org:8081/repository/solutioning01-mte2-raw/type_files/dmaap/dmaap_mr.yaml\ninputs:\n location_id:\n type: string\n service_id:\n type: string\n policy_id:\n type: string\nnode_templates:\n policy_0:\n type: dcae.nodes.policy\n properties:\n policy_id: \n get_input: policy_id\n policy_model_id: \"onap.policies.monitoring.cdap.tca.hi.lo.app\"\n cdap_host_host:\n type: dcae.nodes.StreamingAnalytics.SelectedCDAPInfrastructure\n properties:\n location_id:\n get_input: location_id\n scn_override: cdap_broker.solutioning-central.dcae.onap.org\n interfaces:\n cloudify.interfaces.lifecycle: {\n }\n tca_tca:\n type: dcae.nodes.MicroService.cdap\n properties:\n app_config:\n appDescription: DCAE Analytics Threshold Crossing Alert Application\n appName: dcae-tca\n tcaSubscriberOutputStreamName: TCASubscriberOutputStream\n tcaVESAlertsTableName: TCAVESAlertsTable\n tcaVESAlertsTableTTLSeconds: \'1728000\'\n tcaVESMessageStatusTableName: TCAVESMessageStatusTable\n tcaVESMessageStatusTableTTLSeconds: \'86400\'\n thresholdCalculatorFlowletInstances: \'2\'\n app_preferences:\n publisherContentType: application/json\n publisherHostName: mrlocal-mtnjftle01.onap.org\n publisherHostPort: \'3905\'\n publisherMaxBatchSize: \'10\'\n publisherMaxRecoveryQueueSize: \'100000\'\n publisherPollingInterval: \'20000\'\n publisherProtocol: https\n publisherTopicName: org.onap.dcae.dmaap.mtnje2.DcaeTestVESPub\n publisherUserName: test@tca.af.dcae.onap.org\n publisherUserPassword: password\n subscriberConsumerGroup: OpenDCAE-c12\n subscriberConsumerId: c12\n subscriberContentType: application/json\n subscriberHostName: mrlocal-mtnjftle01.onap.org\n subscriberHostPort: \'3905\'\n subscriberMessageLimit: \'-1\'\n subscriberPollingInterval: \'20000\'\n subscriberProtocol: https\n subscriberTimeoutMS: \'-1\'\n subscriberTopicName: org.onap.dcae.dmaap.mtnje2.DcaeTestVESSub\n subscriberUserName: test@tca.af.dcae.onap.org\n subscriberUserPassword: password\n tca_policy: null\n artifact_name: dcae-analytics-tca\n artifact_version: 1.0.0\n connections:\n streams_publishes: [\n ]\n streams_subscribes: [\n ]\n jar_url: http://somejar\n location_id:\n get_input: location_id\n namespace: cdap_tca_hi_lo\n programs:\n - program_id: TCAVESCollectorFlow\n program_type: flows\n - program_id: TCADMaaPMRSubscriberWorker\n program_type: workers\n - program_id: TCADMaaPMRPublisherWorker\n program_type: workers\n service_component_type: cdap_app_tca\n service_id:\n get_input: service_id\n streamname: TCASubscriberOutputStream\n relationships:\n - target: topic0\n type: dcae.relationships.subscribe_to_events\n - target: topic1\n type: dcae.relationships.publish_events\n - target: cdap_host_host\n type: dcae.relationships.component_contained_in\n - target: policy_0\n type: dcae.relationships.depends_on\n topic0:\n type: dcae.nodes.Topic\n properties:\n topic_name: \'\'\n topic1:\n type: dcae.nodes.Topic\n properties:\n topic_name: \'\'\n \n','typeId-07dcac66-fa41-4e68-addf-4d6b85313b0b',0,1,'63cac700-ab9a-4115-a74f-7eac85e3fce0');
+INSERT INTO `loop_templates` (`name`, `created_by`, `created_timestamp`, `updated_by`, `updated_timestamp`, `allowed_loop_type`, `blueprint_yaml`, `dcae_blueprint_id`, `maximum_instances_allowed`, `unique_blueprint`, `service_uuid`) VALUES ('LOOP_TEMPLATE_RHkGa_v1_0_ResourceInstanceName1_tca-guilin','Not found','2021-06-17 16:15:19.539831','Not found','2021-06-17 16:15:19.539831','CLOSED','# ============LICENSE_START====================================================\n# =============================================================================\n# Copyright (C) 2019-2020 AT&T Intellectual Property. All rights reserved.\n# =============================================================================\n# Licensed under the Apache License, Version 2.0 (the \"License\");\n# you may not use this file except in compliance with the License.\n# You may obtain a copy of the License at\n#\n# http://www.apache.org/licenses/LICENSE-2.0\n#\n# Unless required by applicable law or agreed to in writing, software\n# distributed under the License is distributed on an \"AS IS\" BASIS,\n# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n# See the License for the specific language governing permissions and\n# limitations under the License.\n# ============LICENSE_END======================================================\n#k8s-tca-gen2-v3.yaml\n\ntosca_definitions_version: cloudify_dsl_1_3\nimports:\n - https://www.getcloudify.org/spec/cloudify/4.5.5/types.yaml\n - plugin:k8splugin?version=3.4.2\n - plugin:clamppolicyplugin?version=1.1.0\ninputs:\n service_name:\n type: string\n default: \'dcae-tcagen2\'\n log_directory:\n type: string\n default: \"/opt/logs/dcae-analytics-tca\"\n replicas:\n type: integer\n description: number of instances\n default: 1\n spring.data.mongodb.uri:\n type: string\n default: \"mongodb://dcae-mongohost/dcae-tcagen2\"\n tag_version:\n type: string\n default: \"nexus3.onap.org:10001/onap/org.onap.dcaegen2.analytics.tca-gen2.dcae-analytics-tca-web:1.2.1\"\n tca.aai.password:\n type: string\n default: \"DCAE\"\n tca.aai.url:\n type: string\n default: \"http://aai.onap.svc.cluster.local\"\n tca.aai.username:\n type: string\n default: \"DCAE\"\n tca_handle_in_subscribe_url:\n type: string\n default: \"http://message-router.onap.svc.cluster.local:3904/events/unauthenticated.VES_MEASUREMENT_OUTPUT\"\n tca_handle_out_publish_url:\n type: string\n default: \"http://message-router.onap.svc.cluster.local:3904/events/unauthenticated.DCAE_CL_OUTPUT\"\n tca_consumer_group:\n type: string\n default: \"cg1\"\n policy_model_id:\n type: string\n default: \"onap.policies.monitoring.tcagen2\"\n policy_id:\n type: string\n default: \"onap.restart.tca\"\nnode_templates:\n docker.tca:\n type: dcae.nodes.ContainerizedServiceComponent\n relationships:\n - target: tcagen2_policy\n type: cloudify.relationships.depends_on\n interfaces:\n cloudify.interfaces.lifecycle:\n start:\n inputs:\n ports:\n - concat: [\"9091:\", \"0\"]\n properties:\n application_config:\n service_calls: []\n streams_publishes:\n tca_handle_out:\n dmaap_info:\n topic_url:\n get_input: tca_handle_out_publish_url\n type: message_router\n streams_subscribes:\n tca_handle_in:\n dmaap_info:\n topic_url:\n get_input: tca_handle_in_subscribe_url\n type: message_router\n spring.data.mongodb.uri:\n get_input: spring.data.mongodb.uri\n streams_subscribes.tca_handle_in.consumer_group:\n get_input: tca_consumer_group\n streams_subscribes.tca_handle_in.consumer_ids[0]: c0\n streams_subscribes.tca_handle_in.consumer_ids[1]: c1\n streams_subscribes.tca_handle_in.message_limit: 50000\n streams_subscribes.tca_handle_in.polling.auto_adjusting.max: 60000\n streams_subscribes.tca_handle_in.polling.auto_adjusting.min: 30000\n streams_subscribes.tca_handle_in.polling.auto_adjusting.step_down: 30000\n streams_subscribes.tca_handle_in.polling.auto_adjusting.step_up: 10000\n streams_subscribes.tca_handle_in.polling.fixed_rate: 0\n streams_subscribes.tca_handle_in.timeout: -1\n tca.aai.enable_enrichment: true\n tca.aai.generic_vnf_path: aai/v11/network/generic-vnfs/generic-vnf\n tca.aai.node_query_path: aai/v11/search/nodes-query\n tca.aai.password:\n get_input: tca.aai.password\n tca.aai.url:\n get_input: tca.aai.url\n tca.aai.username:\n get_input: tca.aai.username\n tca.policy: \'{\"domain\":\"measurementsForVfScaling\",\"metricsPerEventName\":[{\"eventName\":\"vFirewallBroadcastPackets\",\"controlLoopSchemaType\":\"VM\",\"policyScope\":\"DCAE\",\"policyName\":\"DCAE.Config_tca-hi-lo\",\"policyVersion\":\"v0.0.1\",\"thresholds\":[{\"closedLoopControlName\":\"ControlLoop-vFirewall-d0a1dfc6-94f5-4fd4-a5b5-4630b438850a\",\"version\":\"1.0.2\",\"fieldPath\":\"$.event.measurementsForVfScalingFields.vNicPerformanceArray[*].receivedTotalPacketsDelta\",\"thresholdValue\":300,\"direction\":\"LESS_OR_EQUAL\",\"severity\":\"MAJOR\",\"closedLoopEventStatus\":\"ONSET\"},{\"closedLoopControlName\":\"ControlLoop-vFirewall-d0a1dfc6-94f5-4fd4-a5b5-4630b438850a\",\"version\":\"1.0.2\",\"fieldPath\":\"$.event.measurementsForVfScalingFields.vNicPerformanceArray[*].receivedTotalPacketsDelta\",\"thresholdValue\":700,\"direction\":\"GREATER_OR_EQUAL\",\"severity\":\"CRITICAL\",\"closedLoopEventStatus\":\"ONSET\"}]},{\"eventName\":\"vLoadBalancer\",\"controlLoopSchemaType\":\"VM\",\"policyScope\":\"DCAE\",\"policyName\":\"DCAE.Config_tca-hi-lo\",\"policyVersion\":\"v0.0.1\",\"thresholds\":[{\"closedLoopControlName\":\"ControlLoop-vDNS-6f37f56d-a87d-4b85-b6a9-cc953cf779b3\",\"version\":\"1.0.2\",\"fieldPath\":\"$.event.measurementsForVfScalingFields.vNicPerformanceArray[*].receivedTotalPacketsDelta\",\"thresholdValue\":300,\"direction\":\"GREATER_OR_EQUAL\",\"severity\":\"CRITICAL\",\"closedLoopEventStatus\":\"ONSET\"}]},{\"eventName\":\"Measurement_vGMUX\",\"controlLoopSchemaType\":\"VNF\",\"policyScope\":\"DCAE\",\"policyName\":\"DCAE.Config_tca-hi-lo\",\"policyVersion\":\"v0.0.1\",\"thresholds\":[{\"closedLoopControlName\":\"ControlLoop-vCPE-48f0c2c3-a172-4192-9ae3-052274181b6e\",\"version\":\"1.0.2\",\"fieldPath\":\"$.event.measurementsForVfScalingFields.additionalMeasurements[*].arrayOfFields[0].value\",\"thresholdValue\":0,\"direction\":\"EQUAL\",\"severity\":\"MAJOR\",\"closedLoopEventStatus\":\"ABATED\"},{\"closedLoopControlName\":\"ControlLoop-vCPE-48f0c2c3-a172-4192-9ae3-052274181b6e\",\"version\":\"1.0.2\",\"fieldPath\":\"$.event.measurementsForVfScalingFields.additionalMeasurements[*].arrayOfFields[0].value\",\"thresholdValue\":0,\"direction\":\"GREATER\",\"severity\":\"CRITICAL\",\"closedLoopEventStatus\":\"ONSET\"}]}]}\'\n tca.processing_batch_size: 10000\n tca.enable_abatement: true\n tca.enable_ecomp_logging: true\n docker_config:\n healthcheck:\n endpoint: /actuator/health\n interval: 30s\n timeout: 10s\n type: http\n image:\n get_input: tag_version\n log_info:\n log_directory:\n get_input: log_directory\n tls_info:\n use_tls: true\n cert_directory: \'/etc/tca-gen2/ssl\'\n replicas:\n get_input: replicas\n service_component_type: { get_input: service_name }\n tcagen2_policy:\n type: clamp.nodes.policy\n properties:\n policy_id:\n get_input: policy_id\n policy_model_id:\n get_input: policy_model_id\n','typeId-ead66350-9f10-43ad-a61a-32000ef93189',0,1,'63cac700-ab9a-4115-a74f-7eac85e3fce0');
+INSERT INTO `loop_templates` (`name`, `created_by`, `created_timestamp`, `updated_by`, `updated_timestamp`, `allowed_loop_type`, `blueprint_yaml`, `dcae_blueprint_id`, `maximum_instances_allowed`, `unique_blueprint`, `service_uuid`) VALUES ('LOOP_TEMPLATE_RHkGa_v1_0_ResourceInstanceName1_tca_3','Not found','2021-06-17 16:15:19.383305','Not found','2021-06-17 16:15:19.383305','CLOSED','#\n# ============LICENSE_START====================================================\n# =============================================================================\n# Copyright (c) 2019 AT&T Intellectual Property. All rights reserved.\n# =============================================================================\n# Licensed under the Apache License, Version 2.0 (the \"License\");\n# you may not use this file except in compliance with the License.\n# You may obtain a copy of the License at\n#\n# http://www.apache.org/licenses/LICENSE-2.0\n#\n# Unless required by applicable law or agreed to in writing, software\n# distributed under the License is distributed on an \"AS IS\" BASIS,\n# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n# See the License for the specific language governing permissions and\n# limitations under the License.\n# ============LICENSE_END======================================================\n\ntosca_definitions_version: cloudify_dsl_1_3\n\ndescription: >\n This blueprint deploys/manages the TCA module as a Docker container\n\nimports:\n - https://www.getcloudify.org/spec/cloudify/4.5.5/types.yaml\n - \"https://nexus.onap.org/service/local/repositories/raw/content/org.onap.dcaegen2.platform.plugins/R6/k8splugin/1.7.2/k8splugin_types.yaml\"\n - \"https://nexus.onap.org/service/local/repositories/raw/content/org.onap.dcaegen2.platform.plugins/R6/clamppolicyplugin/1.1.0/clamppolicyplugin_types.yaml\"\ninputs:\n aaiEnrichmentHost:\n type: string\n default: \"aai.onap.svc.cluster.local\"\n aaiEnrichmentPort:\n type: string\n default: \"8443\"\n enableAAIEnrichment:\n type: string\n default: \"true\"\n dmaap_host:\n type: string\n default: \"message-router.onap.svc.cluster.local\"\n dmaap_port:\n type: string\n default: \"3904\"\n enableRedisCaching:\n type: string\n default: \"false\"\n redisHosts:\n type: string\n default: \"dcae-redis.onap.svc.cluster.local:6379\"\n tag_version:\n type: string\n default: \"nexus3.onap.org:10001/onap/org.onap.dcaegen2.deployments.tca-cdap-container:1.2.2\"\n consul_host:\n type: string\n default: \"consul-server.onap\"\n consul_port:\n type: string\n default: \"8500\"\n cbs_host:\n type: string\n default: \"config-binding-service\"\n cbs_port:\n type: string\n default: \"10000\"\n policy_id:\n type: string\n default: \"onap.restart.tca\"\n external_port:\n type: string\n description: Kubernetes node port on which CDAPgui is exposed\n default: \"32012\"\n policy_model_id:\n type: string\n default: \"onap.policies.monitoring.cdap.tca.hi.lo.app\"\nnode_templates:\n tca_k8s:\n type: dcae.nodes.ContainerizedServiceComponent\n relationships:\n - target: tca_policy\n type: cloudify.relationships.depends_on\n properties:\n service_component_type: \'dcaegen2-analytics-tca\'\n application_config: {}\n docker_config: {}\n image:\n get_input: tag_version\n log_info:\n log_directory: \"/opt/app/TCAnalytics/logs\"\n application_config:\n app_config:\n appDescription: DCAE Analytics Threshold Crossing Alert Application\n appName: dcae-tca\n tcaAlertsAbatementTableName: TCAAlertsAbatementTable\n tcaAlertsAbatementTableTTLSeconds: \'1728000\'\n tcaSubscriberOutputStreamName: TCASubscriberOutputStream\n tcaVESAlertsTableName: TCAVESAlertsTable\n tcaVESAlertsTableTTLSeconds: \'1728000\'\n tcaVESMessageStatusTableName: TCAVESMessageStatusTable\n tcaVESMessageStatusTableTTLSeconds: \'86400\'\n thresholdCalculatorFlowletInstances: \'2\'\n app_preferences:\n aaiEnrichmentHost:\n get_input: aaiEnrichmentHost\n aaiEnrichmentIgnoreSSLCertificateErrors: \'true\'\n aaiEnrichmentPortNumber: \'8443\'\n aaiEnrichmentProtocol: https\n aaiEnrichmentUserName: dcae@dcae.onap.org\n aaiEnrichmentUserPassword: demo123456!\n aaiVMEnrichmentAPIPath: /aai/v11/search/nodes-query\n aaiVNFEnrichmentAPIPath: /aai/v11/network/generic-vnfs/generic-vnf\n enableAAIEnrichment:\n get_input: enableAAIEnrichment\n enableRedisCaching:\n get_input: enableRedisCaching\n redisHosts:\n get_input: redisHosts\n enableAlertCEFFormat: \'false\'\n publisherContentType: application/json\n publisherHostName:\n get_input: dmaap_host\n publisherHostPort:\n get_input: dmaap_port\n publisherMaxBatchSize: \'1\'\n publisherMaxRecoveryQueueSize: \'100000\'\n publisherPollingInterval: \'20000\'\n publisherProtocol: http\n publisherTopicName: unauthenticated.DCAE_CL_OUTPUT\n subscriberConsumerGroup: OpenDCAE-clamp\n subscriberConsumerId: c12\n subscriberContentType: application/json\n subscriberHostName:\n get_input: dmaap_host\n subscriberHostPort:\n get_input: dmaap_port\n subscriberMessageLimit: \'-1\'\n subscriberPollingInterval: \'30000\'\n subscriberProtocol: http\n subscriberTimeoutMS: \'-1\'\n subscriberTopicName: unauthenticated.VES_MEASUREMENT_OUTPUT\n #tca_policy: \'{\"domain\":\"measurementsForVfScaling\",\"metricsPerEventName\":[{\"eventName\":\"vFirewallBroadcastPackets\",\"controlLoopSchemaType\":\"VM\",\"policyScope\":\"DCAE\",\"policyName\":\"DCAE.Config_tca-hi-lo\",\"policyVersion\":\"v0.0.1\",\"thresholds\":[{\"closedLoopControlName\":\"ControlLoop-vFirewall-d0a1dfc6-94f5-4fd4-a5b5-4630b438850a\",\"version\":\"1.0.2\",\"fieldPath\":\"$.event.measurementsForVfScalingFields.vNicPerformanceArray[*].receivedTotalPacketsDelta\",\"thresholdValue\":300,\"direction\":\"LESS_OR_EQUAL\",\"severity\":\"MAJOR\",\"closedLoopEventStatus\":\"ONSET\"},{\"closedLoopControlName\":\"ControlLoop-vFirewall-d0a1dfc6-94f5-4fd4-a5b5-4630b438850a\",\"version\":\"1.0.2\",\"fieldPath\":\"$.event.measurementsForVfScalingFields.vNicPerformanceArray[*].receivedTotalPacketsDelta\",\"thresholdValue\":700,\"direction\":\"GREATER_OR_EQUAL\",\"severity\":\"CRITICAL\",\"closedLoopEventStatus\":\"ONSET\"}]},{\"eventName\":\"vLoadBalancer\",\"controlLoopSchemaType\":\"VM\",\"policyScope\":\"DCAE\",\"policyName\":\"DCAE.Config_tca-hi-lo\",\"policyVersion\":\"v0.0.1\",\"thresholds\":[{\"closedLoopControlName\":\"ControlLoop-vDNS-6f37f56d-a87d-4b85-b6a9-cc953cf779b3\",\"version\":\"1.0.2\",\"fieldPath\":\"$.event.measurementsForVfScalingFields.vNicPerformanceArray[*].receivedTotalPacketsDelta\",\"thresholdValue\":300,\"direction\":\"GREATER_OR_EQUAL\",\"severity\":\"CRITICAL\",\"closedLoopEventStatus\":\"ONSET\"}]},{\"eventName\":\"Measurement_vGMUX\",\"controlLoopSchemaType\":\"VNF\",\"policyScope\":\"DCAE\",\"policyName\":\"DCAE.Config_tca-hi-lo\",\"policyVersion\":\"v0.0.1\",\"thresholds\":[{\"closedLoopControlName\":\"ControlLoop-vCPE-48f0c2c3-a172-4192-9ae3-052274181b6e\",\"version\":\"1.0.2\",\"fieldPath\":\"$.event.measurementsForVfScalingFields.additionalMeasurements[*].arrayOfFields[0].value\",\"thresholdValue\":0,\"direction\":\"EQUAL\",\"severity\":\"MAJOR\",\"closedLoopEventStatus\":\"ABATED\"},{\"closedLoopControlName\":\"ControlLoop-vCPE-48f0c2c3-a172-4192-9ae3-052274181b6e\",\"version\":\"1.0.2\",\"fieldPath\":\"$.event.measurementsForVfScalingFields.additionalMeasurements[*].arrayOfFields[0].value\",\"thresholdValue\":0,\"direction\":\"GREATER\",\"severity\":\"CRITICAL\",\"closedLoopEventStatus\":\"ONSET\"}]}]}\'\n tca_policy: \'\'\n service_component_type: dcaegen2-analytics_tca\n interfaces:\n cloudify.interfaces.lifecycle:\n start:\n inputs:\n envs:\n DMAAPHOST:\n { get_input: dmaap_host }\n DMAAPPORT: \"3904\"\n DMAAPPUBTOPIC: \"unauthenticated.DCAE_CL_OUTPUT\"\n DMAAPSUBTOPIC: \"unauthenticated.VES_MEASUREMENT_OUTPUT\"\n AAIHOST:\n { get_input: aaiEnrichmentHost }\n AAIPORT: \"8443\"\n CONSUL_HOST:\n { get_input: consul_host }\n CONSUL_PORT: \"8500\"\n CBS_HOST:\n { get_input: cbs_host }\n CBS_PORT: \"10000\"\n CONFIG_BINDING_SERVICE: \"config_binding_service\"\n ports:\n - concat: [\"11011:\", { get_input: external_port }]\n tca_policy:\n type: clamp.nodes.policy\n properties:\n policy_id:\n get_input: policy_id\n policy_model_id:\n get_input: policy_model_id\n','typeId-656704a9-8f99-4fec-94fc-714e20f770f8',0,1,'63cac700-ab9a-4115-a74f-7eac85e3fce0');
+INSERT INTO `loop_templates` (`name`, `created_by`, `created_timestamp`, `updated_by`, `updated_timestamp`, `allowed_loop_type`, `blueprint_yaml`, `dcae_blueprint_id`, `maximum_instances_allowed`, `unique_blueprint`, `service_uuid`) VALUES ('LOOP_TEMPLATE_RHkGa_v1_0_ResourceInstanceName2_tca_2','Not found','2021-06-17 16:15:19.325982','Not found','2021-06-17 16:15:19.325982','CLOSED','#\n# ============LICENSE_START====================================================\n# =============================================================================\n# Copyright (c) 2019 AT&T Intellectual Property. All rights reserved.\n# =============================================================================\n# Licensed under the Apache License, Version 2.0 (the \"License\");\n# you may not use this file except in compliance with the License.\n# You may obtain a copy of the License at\n#\n# http://www.apache.org/licenses/LICENSE-2.0\n#\n# Unless required by applicable law or agreed to in writing, software\n# distributed under the License is distributed on an \"AS IS\" BASIS,\n# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n# See the License for the specific language governing permissions and\n# limitations under the License.\n# ============LICENSE_END======================================================\n\ntosca_definitions_version: cloudify_dsl_1_3\n\ndescription: >\n This blueprint deploys/manages the TCA module as a Docker container\n\nimports:\n - http://www.getcloudify.org/spec/cloudify/3.4/types.yaml\n - https://nexus.onap.org/service/local/repositories/raw/content/org.onap.dcaegen2.platform.plugins/R4/k8splugin/1.4.12/k8splugin_types.yaml\n# - https://nexus.onap.org/service/local/repositories/raw/content/org.onap.dcaegen2.platform.plugins/R4/dcaepolicyplugin/2.3.0/dcaepolicyplugin_types.yaml\n - https://nexus.onap.org/service/local/repositories/raw/content/org.onap.dcaegen2.platform.plugins/R4/clamppolicyplugin/1.0.0/clamppolicyplugin_types.yaml\ninputs:\n aaiEnrichmentHost:\n type: string\n default: \"aai.onap.svc.cluster.local\"\n aaiEnrichmentPort:\n type: string\n default: \"8443\"\n enableAAIEnrichment:\n type: string\n default: true\n dmaap_host:\n type: string\n default: message-router.onap\n dmaap_port:\n type: string\n default: \"3904\"\n enableRedisCaching:\n type: string\n default: false\n redisHosts:\n type: string\n default: dcae-redis.onap.svc.cluster.local:6379\n tag_version:\n type: string\n default: \"nexus3.onap.org:10001/onap/org.onap.dcaegen2.deployments.tca-cdap-container:1.1.1\"\n consul_host:\n type: string\n default: consul-server.onap\n consul_port:\n type: string\n default: \"8500\"\n cbs_host:\n type: string\n default: \"config-binding-servicel\"\n cbs_port:\n type: string\n default: \"10000\"\n policy_id:\n type: string\n default: \"onap.restart.tca\"\n external_port:\n type: string\n description: Kubernetes node port on which CDAPgui is exposed\n default: \"32012\"\n policy_model_id:\n type: string\n default: \"onap.policies.monitoring.cdap.tca.hi.lo.app\"\nnode_templates:\n tca_k8s:\n type: dcae.nodes.ContainerizedServiceComponent\n relationships:\n - target: tca_policy\n type: cloudify.relationships.depends_on\n properties:\n service_component_type: \'dcaegen2-analytics-tca\'\n application_config: {}\n docker_config: {}\n image:\n get_input: tag_version\n log_info:\n log_directory: \"/opt/app/TCAnalytics/logs\"\n application_config:\n app_config:\n appDescription: DCAE Analytics Threshold Crossing Alert Application\n appName: dcae-tca\n tcaAlertsAbatementTableName: TCAAlertsAbatementTable\n tcaAlertsAbatementTableTTLSeconds: \'1728000\'\n tcaSubscriberOutputStreamName: TCASubscriberOutputStream\n tcaVESAlertsTableName: TCAVESAlertsTable\n tcaVESAlertsTableTTLSeconds: \'1728000\'\n tcaVESMessageStatusTableName: TCAVESMessageStatusTable\n tcaVESMessageStatusTableTTLSeconds: \'86400\'\n thresholdCalculatorFlowletInstances: \'2\'\n app_preferences:\n aaiEnrichmentHost:\n get_input: aaiEnrichmentHost\n aaiEnrichmentIgnoreSSLCertificateErrors: \'true\'\n aaiEnrichmentPortNumber: \'8443\'\n aaiEnrichmentProtocol: https\n aaiEnrichmentUserName: dcae@dcae.onap.org\n aaiEnrichmentUserPassword: demo123456!\n aaiVMEnrichmentAPIPath: /aai/v11/search/nodes-query\n aaiVNFEnrichmentAPIPath: /aai/v11/network/generic-vnfs/generic-vnf\n enableAAIEnrichment:\n get_input: enableAAIEnrichment\n enableRedisCaching:\n get_input: enableRedisCaching\n redisHosts:\n get_input: redisHosts\n enableAlertCEFFormat: \'false\'\n publisherContentType: application/json\n publisherHostName:\n get_input: dmaap_host\n publisherHostPort:\n get_input: dmaap_port\n publisherMaxBatchSize: \'1\'\n publisherMaxRecoveryQueueSize: \'100000\'\n publisherPollingInterval: \'20000\'\n publisherProtocol: http\n publisherTopicName: unauthenticated.DCAE_CL_OUTPUT\n subscriberConsumerGroup: OpenDCAE-clamp\n subscriberConsumerId: c12\n subscriberContentType: application/json\n subscriberHostName:\n get_input: dmaap_host\n subscriberHostPort:\n get_input: dmaap_port\n subscriberMessageLimit: \'-1\'\n subscriberPollingInterval: \'30000\'\n subscriberProtocol: http\n subscriberTimeoutMS: \'-1\'\n subscriberTopicName: unauthenticated.VES_MEASUREMENT_OUTPUT\n# tca_policy: \'{\"domain\":\"measurementsForVfScaling\",\"metricsPerEventName\":[{\"eventName\":\"vFirewallBroadcastPackets\",\"controlLoopSchemaType\":\"VNF\",\"policyScope\":\"DCAE\",\"policyName\":\"DCAE.Config_tca-hi-lo\",\"policyVersion\":\"v0.0.1\",\"thresholds\":[{\"closedLoopControlName\":\"ControlLoop-vFirewall-d0a1dfc6-94f5-4fd4-a5b5-4630b438850a\",\"version\":\"1.0.2\",\"fieldPath\":\"$.event.measurementsForVfScalingFields.vNicPerformanceArray[*].receivedTotalPacketsDelta\",\"thresholdValue\":300,\"direction\":\"LESS_OR_EQUAL\",\"severity\":\"MAJOR\",\"closedLoopEventStatus\":\"ONSET\"},{\"closedLoopControlName\":\"ControlLoop-vFirewall-d0a1dfc6-94f5-4fd4-a5b5-4630b438850a\",\"version\":\"1.0.2\",\"fieldPath\":\"$.event.measurementsForVfScalingFields.vNicPerformanceArray[*].receivedTotalPacketsDelta\",\"thresholdValue\":700,\"direction\":\"GREATER_OR_EQUAL\",\"severity\":\"CRITICAL\",\"closedLoopEventStatus\":\"ONSET\"}]},{\"eventName\":\"vLoadBalancer\",\"controlLoopSchemaType\":\"VM\",\"policyScope\":\"DCAE\",\"policyName\":\"DCAE.Config_tca-hi-lo\",\"policyVersion\":\"v0.0.1\",\"thresholds\":[{\"closedLoopControlName\":\"ControlLoop-vDNS-6f37f56d-a87d-4b85-b6a9-cc953cf779b3\",\"version\":\"1.0.2\",\"fieldPath\":\"$.event.measurementsForVfScalingFields.vNicPerformanceArray[*].receivedTotalPacketsDelta\",\"thresholdValue\":300,\"direction\":\"GREATER_OR_EQUAL\",\"severity\":\"CRITICAL\",\"closedLoopEventStatus\":\"ONSET\"}]},{\"eventName\":\"Measurement_vGMUX\",\"controlLoopSchemaType\":\"VNF\",\"policyScope\":\"DCAE\",\"policyName\":\"DCAE.Config_tca-hi-lo\",\"policyVersion\":\"v0.0.1\",\"thresholds\":[{\"closedLoopControlName\":\"ControlLoop-vCPE-48f0c2c3-a172-4192-9ae3-052274181b6e\",\"version\":\"1.0.2\",\"fieldPath\":\"$.event.measurementsForVfScalingFields.additionalMeasurements[*].arrayOfFields[0].value\",\"thresholdValue\":0,\"direction\":\"EQUAL\",\"severity\":\"MAJOR\",\"closedLoopEventStatus\":\"ABATED\"},{\"closedLoopControlName\":\"ControlLoop-vCPE-48f0c2c3-a172-4192-9ae3-052274181b6e\",\"version\":\"1.0.2\",\"fieldPath\":\"$.event.measurementsForVfScalingFields.additionalMeasurements[*].arrayOfFields[0].value\",\"thresholdValue\":0,\"direction\":\"GREATER\",\"severity\":\"CRITICAL\",\"closedLoopEventStatus\":\"ONSET\"}]}]}\'\n service_component_type: dcaegen2-analytics_tca\n interfaces:\n cloudify.interfaces.lifecycle:\n start:\n inputs:\n envs:\n DMAAPHOST:\n { get_input: dmaap_host }\n DMAAPPORT:\n { get_input: dmaap_port }\n DMAAPPUBTOPIC: \"unauthenticated.DCAE_CL_OUTPUT\"\n DMAAPSUBTOPIC: \"unauthenticated.VES_MEASUREMENT_OUTPUT\"\n AAIHOST:\n { get_input: aaiEnrichmentHost }\n AAIPORT:\n { get_input: aaiEnrichmentPort }\n CONSUL_HOST:\n { get_input: consul_host }\n CONSUL_PORT:\n { get_input: consul_port }\n CBS_HOST:\n { get_input: cbs_host }\n CBS_PORT:\n { get_input: cbs_port }\n CONFIG_BINDING_SERVICE: \"config_binding_service\"\n ports:\n - concat: [\"11011:\", { get_input: external_port }]\n tca_policy:\n type: clamp.nodes.policy\n properties:\n policy_id:\n get_input: policy_id\n policy_model_id: \"onap.policies.monitoring.cdap.tca.hi.lo.app\"\n','typeId-7396dd0d-9862-40b4-ac12-0a2884926c47',0,1,'63cac700-ab9a-4115-a74f-7eac85e3fce0');
/*!40000 ALTER TABLE `loop_templates` ENABLE KEYS */;
UNLOCK TABLES;
@@ -155,10 +155,10 @@ UNLOCK TABLES;
LOCK TABLES `looptemplates_to_loopelementmodels` WRITE;
/*!40000 ALTER TABLE `looptemplates_to_loopelementmodels` DISABLE KEYS */;
-INSERT INTO `looptemplates_to_loopelementmodels` (`loop_element_model_name`, `loop_template_name`, `flow_order`) VALUES ('onap.policies.monitoring.cdap.tca.hi.lo.app','LOOP_TEMPLATE_7Hs8u_v1_0_ResourceInstanceName1_tca',0);
-INSERT INTO `looptemplates_to_loopelementmodels` (`loop_element_model_name`, `loop_template_name`, `flow_order`) VALUES ('onap.policies.monitoring.cdap.tca.hi.lo.app','LOOP_TEMPLATE_7Hs8u_v1_0_ResourceInstanceName1_tca_3',0);
-INSERT INTO `looptemplates_to_loopelementmodels` (`loop_element_model_name`, `loop_template_name`, `flow_order`) VALUES ('onap.policies.monitoring.cdap.tca.hi.lo.app','LOOP_TEMPLATE_7Hs8u_v1_0_ResourceInstanceName2_tca_2',0);
-INSERT INTO `looptemplates_to_loopelementmodels` (`loop_element_model_name`, `loop_template_name`, `flow_order`) VALUES ('onap.policies.monitoring.tcagen2','LOOP_TEMPLATE_7Hs8u_v1_0_ResourceInstanceName1_tca-guilin',0);
+INSERT INTO `looptemplates_to_loopelementmodels` (`loop_element_model_name`, `loop_template_name`, `flow_order`) VALUES ('onap.policies.monitoring.cdap.tca.hi.lo.app','LOOP_TEMPLATE_RHkGa_v1_0_ResourceInstanceName1_tca',0);
+INSERT INTO `looptemplates_to_loopelementmodels` (`loop_element_model_name`, `loop_template_name`, `flow_order`) VALUES ('onap.policies.monitoring.cdap.tca.hi.lo.app','LOOP_TEMPLATE_RHkGa_v1_0_ResourceInstanceName1_tca_3',0);
+INSERT INTO `looptemplates_to_loopelementmodels` (`loop_element_model_name`, `loop_template_name`, `flow_order`) VALUES ('onap.policies.monitoring.cdap.tca.hi.lo.app','LOOP_TEMPLATE_RHkGa_v1_0_ResourceInstanceName2_tca_2',0);
+INSERT INTO `looptemplates_to_loopelementmodels` (`loop_element_model_name`, `loop_template_name`, `flow_order`) VALUES ('onap.policies.monitoring.tcagen2','LOOP_TEMPLATE_RHkGa_v1_0_ResourceInstanceName1_tca-guilin',0);
/*!40000 ALTER TABLE `looptemplates_to_loopelementmodels` ENABLE KEYS */;
UNLOCK TABLES;
@@ -186,14 +186,14 @@ UNLOCK TABLES;
LOCK TABLES `policy_models` WRITE;
/*!40000 ALTER TABLE `policy_models` DISABLE KEYS */;
-INSERT INTO `policy_models` (`policy_model_type`, `version`, `created_by`, `created_timestamp`, `updated_by`, `updated_timestamp`, `policy_acronym`, `policy_tosca`, `policy_pdp_group`) VALUES ('onap.policies.controlloop.guard.common.Blacklist','1.0.0','Not found','2021-06-11 11:47:35.984924','Not found','2021-06-11 11:47:37.439958','Blacklist','tosca_definitions_version: tosca_simple_yaml_1_1_0\npolicy_types:\n onap.policies.controlloop.guard.Common:\n derived_from: tosca.policies.Root\n version: 1.0.0\n description: |\n This is the base Policy Type for Guard policies that guard the execution of Operational\n Policies.\n properties:\n actor:\n type: string\n description: Specifies the Actor the guard applies to.\n required: true\n operation:\n type: string\n description: Specified the operation that the actor is performing\n the guard applies to.\n required: true\n timeRange:\n type: tosca.datatypes.TimeInterval\n description: |\n An optional range of time during the day the guard policy is valid for.\n required: false\n id:\n type: string\n description: The Control Loop id this applies to.\n required: false\n onap.policies.controlloop.guard.common.Blacklist:\n derived_from: onap.policies.controlloop.guard.Common\n type_version: 1.0.0\n version: 1.0.0\n description: Supports blacklist of entity id\'s from performing control loop\n actions on.\n properties:\n blacklist:\n type: list\n description: List of entity id\'s\n required: true\n entry_schema:\n type: string\n','{\n \"supportedPdpGroups\": [\n {\n \"controlloop\": [\n \"xacml\"\n ]\n }\n ]\n}');
-INSERT INTO `policy_models` (`policy_model_type`, `version`, `created_by`, `created_timestamp`, `updated_by`, `updated_timestamp`, `policy_acronym`, `policy_tosca`, `policy_pdp_group`) VALUES ('onap.policies.controlloop.guard.common.FrequencyLimiter','1.0.0','Not found','2021-06-11 11:47:35.806084','Not found','2021-06-11 11:47:37.445504','FrequencyLimiter','tosca_definitions_version: tosca_simple_yaml_1_1_0\npolicy_types:\n onap.policies.controlloop.guard.Common:\n derived_from: tosca.policies.Root\n version: 1.0.0\n description: |\n This is the base Policy Type for Guard policies that guard the execution of Operational\n Policies.\n properties:\n actor:\n type: string\n description: Specifies the Actor the guard applies to.\n required: true\n operation:\n type: string\n description: Specified the operation that the actor is performing\n the guard applies to.\n required: true\n timeRange:\n type: tosca.datatypes.TimeInterval\n description: |\n An optional range of time during the day the guard policy is valid for.\n required: false\n id:\n type: string\n description: The Control Loop id this applies to.\n required: false\n onap.policies.controlloop.guard.common.FrequencyLimiter:\n derived_from: onap.policies.controlloop.guard.Common\n type_version: 1.0.0\n version: 1.0.0\n description: Supports limiting the frequency of actions being taken by a Actor.\n properties:\n timeWindow:\n type: integer\n description: The time window to count the actions against.\n required: true\n timeUnits:\n type: string\n description: The units of time the window is counting.\n constraints:\n - valid_values:\n - second\n - minute\n - hour\n - day\n - week\n - month\n - year\n limit:\n type: integer\n description: The limit\n required: true\n constraints:\n - greater_than: 0\n','{\n \"supportedPdpGroups\": [\n {\n \"controlloop\": [\n \"xacml\"\n ]\n }\n ]\n}');
-INSERT INTO `policy_models` (`policy_model_type`, `version`, `created_by`, `created_timestamp`, `updated_by`, `updated_timestamp`, `policy_acronym`, `policy_tosca`, `policy_pdp_group`) VALUES ('onap.policies.controlloop.guard.common.MinMax','2.0.0','Not found','2021-06-11 11:47:36.300461','Not found','2021-06-11 11:47:36.300461','MinMax','tosca_definitions_version: tosca_simple_yaml_1_1_0\npolicy_types:\n onap.policies.controlloop.guard.Common:\n derived_from: tosca.policies.Root\n version: 1.0.0\n description: |\n This is the base Policy Type for Guard policies that guard the execution of Operational\n Policies.\n properties:\n actor:\n type: string\n description: Specifies the Actor the guard applies to.\n required: true\n operation:\n type: string\n description: Specified the operation that the actor is performing\n the guard applies to.\n required: true\n timeRange:\n type: tosca.datatypes.TimeInterval\n description: |\n An optional range of time during the day the guard policy is valid for.\n required: false\n id:\n type: string\n description: The Control Loop id this applies to.\n required: false\n onap.policies.controlloop.guard.common.MinMax:\n derived_from: onap.policies.controlloop.guard.Common\n type_version: 1.0.0\n version: 1.0.0\n description: Supports Min/Max number of entity for scaling operations\n properties:\n min:\n type: integer\n required: true\n description: The minimum instances of this entity\n max:\n type: integer\n required: false\n description: The maximum instances of this entity\n',NULL);
-INSERT INTO `policy_models` (`policy_model_type`, `version`, `created_by`, `created_timestamp`, `updated_by`, `updated_timestamp`, `policy_acronym`, `policy_tosca`, `policy_pdp_group`) VALUES ('onap.policies.controlloop.operational.common.Apex','1.0.0','Not found','2021-06-11 11:47:35.641807','Not found','2021-06-11 11:47:37.450759','Apex','tosca_definitions_version: tosca_simple_yaml_1_1_0\npolicy_types:\n onap.policies.controlloop.operational.Common:\n properties:\n abatement:\n name: abatement\n type: boolean\n typeVersion: 0.0.0\n description: Whether an abatement event message will be expected for\n the control loop from DCAE.\n default: \'false\'\n required: true\n constraints: [\n ]\n metadata: {\n }\n operations:\n name: operations\n type: list\n typeVersion: 0.0.0\n description: List of operations to be performed when Control Loop\n is triggered.\n required: true\n constraints: [\n ]\n entry_schema:\n type: onap.datatype.controlloop.Operation\n typeVersion: 0.0.0\n constraints: [\n ]\n metadata: {\n }\n trigger:\n name: trigger\n type: string\n typeVersion: 0.0.0\n description: Initial operation to execute upon receiving an Onset\n event message for the Control Loop.\n required: true\n constraints: [\n ]\n metadata: {\n }\n timeout:\n name: timeout\n type: integer\n typeVersion: 0.0.0\n description: |\n Overall timeout for executing all the operations. This timeout should equal or exceed the total\n timeout for each operation listed.\n required: true\n constraints: [\n ]\n metadata: {\n }\n id:\n name: id\n type: string\n typeVersion: 0.0.0\n description: The unique control loop id.\n required: true\n constraints: [\n ]\n metadata: {\n }\n name: onap.policies.controlloop.operational.Common\n version: 1.0.0\n derived_from: tosca.policies.Root\n metadata: {\n }\n description: |\n Operational Policy for Control Loop execution. Originated in Frankfurt to support TOSCA Compliant\n Policy Types. This does NOT support the legacy Policy YAML policy type.\n onap.policies.controlloop.operational.common.Apex:\n properties:\n engineServiceParameters:\n name: engineServiceParameters\n type: string\n typeVersion: 0.0.0\n description: The engine parameters like name, instanceCount, policy\n implementation, parameters etc.\n required: true\n constraints: [\n ]\n metadata: {\n }\n eventOutputParameters:\n name: eventOutputParameters\n type: string\n typeVersion: 0.0.0\n description: The event output parameters.\n required: true\n constraints: [\n ]\n metadata: {\n }\n javaProperties:\n name: javaProperties\n type: string\n typeVersion: 0.0.0\n description: Name/value pairs of properties to be set for APEX if\n needed.\n required: false\n constraints: [\n ]\n metadata: {\n }\n eventInputParameters:\n name: eventInputParameters\n type: string\n typeVersion: 0.0.0\n description: The event input parameters.\n required: true\n constraints: [\n ]\n metadata: {\n }\n name: onap.policies.controlloop.operational.common.Apex\n version: 1.0.0\n derived_from: onap.policies.controlloop.operational.Common\n metadata: {\n }\n description: Operational policies for Apex PDP\ndata_types:\n onap.datatype.controlloop.Actor:\n constraints: [\n ]\n properties:\n payload:\n name: payload\n type: map\n typeVersion: 0.0.0\n description: Name/value pairs of payload information passed by Policy\n to the actor\n required: false\n constraints: [\n ]\n entry_schema:\n type: string\n typeVersion: 0.0.0\n constraints: [\n ]\n metadata:\n clamp_possible_values: ClampExecution:CDS/payload\n target:\n name: target\n type: onap.datatype.controlloop.Target\n typeVersion: 0.0.0\n description: The resource the operation should be performed on.\n required: true\n constraints: [\n ]\n metadata: {\n }\n actor:\n name: actor\n type: string\n typeVersion: 0.0.0\n description: The actor performing the operation.\n required: true\n constraints: [\n ]\n metadata:\n clamp_possible_values: Dictionary:DefaultActors,ClampExecution:CDS/actor\n operation:\n name: operation\n type: string\n typeVersion: 0.0.0\n description: The operation the actor is performing.\n required: true\n constraints: [\n ]\n metadata:\n clamp_possible_values: Dictionary:DefaultOperations, ClampExecution:CDS/operation\n name: onap.datatype.controlloop.Actor\n version: 0.0.0\n derived_from: tosca.datatypes.Root\n metadata: {\n }\n description: An actor/operation/target definition\n onap.datatype.controlloop.Operation:\n constraints: [\n ]\n properties:\n failure_retries:\n name: failure_retries\n type: string\n typeVersion: 0.0.0\n description: Points to the operation to invoke when the current operation\n has exceeded its max retries.\n default: final_failure_retries\n required: false\n constraints: [\n ]\n metadata: {\n }\n id:\n name: id\n type: string\n typeVersion: 0.0.0\n description: Unique identifier for the operation\n required: true\n constraints: [\n ]\n metadata: {\n }\n failure_timeout:\n name: failure_timeout\n type: string\n typeVersion: 0.0.0\n description: Points to the operation to invoke when the time out for\n the operation occurs.\n default: final_failure_timeout\n required: false\n constraints: [\n ]\n metadata: {\n }\n failure:\n name: failure\n type: string\n typeVersion: 0.0.0\n description: Points to the operation to invoke on Actor operation\n failure.\n default: final_failure\n required: false\n constraints: [\n ]\n metadata: {\n }\n operation:\n name: operation\n type: onap.datatype.controlloop.Actor\n typeVersion: 0.0.0\n description: The definition of the operation to be performed.\n required: true\n constraints: [\n ]\n metadata: {\n }\n failure_guard:\n name: failure_guard\n type: string\n typeVersion: 0.0.0\n description: Points to the operation to invoke when the current operation\n is blocked due to guard policy enforcement.\n default: final_failure_guard\n required: false\n constraints: [\n ]\n metadata: {\n }\n retries:\n name: retries\n type: integer\n typeVersion: 0.0.0\n description: The number of retries the actor should attempt to perform\n the operation.\n default: \'0\'\n required: true\n constraints: [\n ]\n metadata: {\n }\n timeout:\n name: timeout\n type: integer\n typeVersion: 0.0.0\n description: The amount of time for the actor to perform the operation.\n required: true\n constraints: [\n ]\n metadata: {\n }\n failure_exception:\n name: failure_exception\n type: string\n typeVersion: 0.0.0\n description: Points to the operation to invoke when the current operation\n causes an exception.\n default: final_failure_exception\n required: false\n constraints: [\n ]\n metadata: {\n }\n description:\n name: description\n type: string\n typeVersion: 0.0.0\n description: A user-friendly description of the intent for the operation\n required: false\n constraints: [\n ]\n metadata: {\n }\n success:\n name: success\n type: string\n typeVersion: 0.0.0\n description: Points to the operation to invoke on success. A value\n of \"final_success\" indicates and end to the operation.\n default: final_success\n required: false\n constraints: [\n ]\n metadata: {\n }\n name: onap.datatype.controlloop.Operation\n version: 0.0.0\n derived_from: tosca.datatypes.Root\n metadata: {\n }\n description: An operation supported by an actor\n onap.datatype.controlloop.Target:\n constraints: [\n ]\n properties:\n entityIds:\n name: entityIds\n type: map\n typeVersion: 0.0.0\n description: |\n Map of values that identify the resource. If none are provided, it is assumed that the\n entity that generated the ONSET event will be the target.\n required: false\n constraints: [\n ]\n entry_schema:\n type: string\n typeVersion: 0.0.0\n constraints: [\n ]\n metadata:\n clamp_possible_values: ClampExecution:CSAR_RESOURCES\n targetType:\n name: targetType\n type: string\n typeVersion: 0.0.0\n description: Category for the target type\n required: true\n constraints:\n - valid_values:\n - VNF\n - VM\n - VFMODULE\n - PNF\n metadata: {\n }\n name: onap.datatype.controlloop.Target\n version: 0.0.0\n derived_from: tosca.datatypes.Root\n metadata: {\n }\n description: Definition for a entity in A&AI to perform a control loop operation\n on\nname: ToscaServiceTemplateSimple\nversion: 1.0.0\nmetadata: {\n }\n','{\n \"supportedPdpGroups\": [\n {\n \"controlloop\": [\n \"apex\",\n \"drools\"\n ]\n }\n ]\n}');
-INSERT INTO `policy_models` (`policy_model_type`, `version`, `created_by`, `created_timestamp`, `updated_by`, `updated_timestamp`, `policy_acronym`, `policy_tosca`, `policy_pdp_group`) VALUES ('onap.policies.controlloop.operational.common.Drools','1.0.0','Not found','2021-06-11 11:47:35.078777','Not found','2021-06-11 11:47:37.462985','Drools','tosca_definitions_version: tosca_simple_yaml_1_1_0\npolicy_types:\n onap.policies.controlloop.operational.common.Drools:\n derived_from: onap.policies.controlloop.operational.Common\n type_version: 1.0.0\n version: 1.0.0\n description: Operational policies for Drools PDP\n properties:\n controllerName:\n type: string\n description: Drools controller properties\n required: false\n onap.policies.controlloop.operational.Common:\n derived_from: tosca.policies.Root\n version: 1.0.0\n description: |\n Operational Policy for Control Loop execution. Originated in Frankfurt to support TOSCA Compliant\n Policy Types. This does NOT support the legacy Policy YAML policy type.\n properties:\n id:\n type: string\n description: The unique control loop id.\n required: true\n timeout:\n type: integer\n description: |\n Overall timeout for executing all the operations. This timeout should equal or exceed the total\n timeout for each operation listed.\n required: true\n abatement:\n type: boolean\n description: Whether an abatement event message will be expected for\n the control loop from DCAE.\n required: true\n default: false\n trigger:\n type: string\n description: Initial operation to execute upon receiving an Onset\n event message for the Control Loop.\n required: true\n operations:\n type: list\n description: List of operations to be performed when Control Loop\n is triggered.\n required: true\n entry_schema:\n type: onap.datatype.controlloop.Operation\ndata_types:\n onap.datatype.controlloop.Target:\n derived_from: tosca.datatypes.Root\n description: Definition for a entity in A&AI to perform a control loop operation\n on\n properties:\n targetType:\n type: string\n description: Category for the target type\n required: true\n constraints:\n - valid_values:\n - VNF\n - VM\n - VFMODULE\n - PNF\n entityIds:\n type: map\n description: |\n Map of values that identify the resource. If none are provided, it is assumed that the\n entity that generated the ONSET event will be the target.\n required: false\n metadata:\n clamp_possible_values: ClampExecution:CSAR_RESOURCES\n entry_schema:\n type: string\n onap.datatype.controlloop.Actor:\n derived_from: tosca.datatypes.Root\n description: An actor/operation/target definition\n properties:\n actor:\n type: string\n description: The actor performing the operation.\n required: true\n metadata:\n clamp_possible_values: Dictionary:DefaultActors,ClampExecution:CDS/actor\n operation:\n type: string\n description: The operation the actor is performing.\n required: true\n metadata:\n clamp_possible_values: Dictionary:DefaultOperations, ClampExecution:CDS/operations\n target:\n type: onap.datatype.controlloop.Target\n description: The resource the operation should be performed on.\n required: true\n payload:\n type: map\n description: Name/value pairs of payload information passed by Policy\n to the actor\n required: false\n metadata:\n clamp_possible_values: ClampExecution:CDS/payload\n entry_schema:\n type: string\n onap.datatype.controlloop.Operation:\n derived_from: tosca.datatypes.Root\n description: An operation supported by an actor\n properties:\n id:\n type: string\n description: Unique identifier for the operation\n required: true\n description:\n type: string\n description: A user-friendly description of the intent for the operation\n required: false\n operation:\n type: onap.datatype.controlloop.Actor\n description: The definition of the operation to be performed.\n required: true\n timeout:\n type: integer\n description: The amount of time for the actor to perform the operation.\n required: true\n retries:\n type: integer\n description: The number of retries the actor should attempt to perform\n the operation.\n required: true\n default: 0\n success:\n type: string\n description: Points to the operation to invoke on success. A value\n of \"final_success\" indicates and end to the operation.\n required: false\n default: final_success\n failure:\n type: string\n description: Points to the operation to invoke on Actor operation\n failure.\n required: false\n default: final_failure\n failure_timeout:\n type: string\n description: Points to the operation to invoke when the time out for\n the operation occurs.\n required: false\n default: final_failure_timeout\n failure_retries:\n type: string\n description: Points to the operation to invoke when the current operation\n has exceeded its max retries.\n required: false\n default: final_failure_retries\n failure_exception:\n type: string\n description: Points to the operation to invoke when the current operation\n causes an exception.\n required: false\n default: final_failure_exception\n failure_guard:\n type: string\n description: Points to the operation to invoke when the current operation\n is blocked due to guard policy enforcement.\n required: false\n default: final_failure_guard\n','{\n \"supportedPdpGroups\": [\n {\n \"controlloop\": [\n \"apex\",\n \"drools\"\n ]\n }\n ]\n}');
-INSERT INTO `policy_models` (`policy_model_type`, `version`, `created_by`, `created_timestamp`, `updated_by`, `updated_timestamp`, `policy_acronym`, `policy_tosca`, `policy_pdp_group`) VALUES ('onap.policies.monitoring.cdap.tca.hi.lo.app','1.0.0','Not found','2021-06-11 11:47:47.028387','Not found','2021-06-11 11:47:47.028387','app','tosca_definitions_version: tosca_simple_yaml_1_1_0\npolicy_types:\n onap.policies.Monitoring:\n derived_from: tosca.policies.Root\n version: 1.0.0\n description: a base policy type for all policies that govern monitoring provisioning\n onap.policies.monitoring.cdap.tca.hi.lo.app:\n derived_from: onap.policies.Monitoring\n version: 1.0.0\n properties:\n tca_policy:\n type: onap.datatypes.monitoring.tca_policy\n description: TCA Policy JSON\n required: true\ndata_types:\n onap.datatypes.monitoring.metricsPerEventName:\n derived_from: tosca.datatypes.Root\n properties:\n controlLoopSchemaType:\n type: string\n required: true\n description: Specifies Control Loop Schema Type for the event Name\n e.g. VNF, VM\n constraints:\n - valid_values:\n - VM\n - VNF\n eventName:\n type: string\n required: true\n description: Event name to which thresholds need to be applied\n policyName:\n type: string\n required: true\n description: TCA Policy Scope Name\n policyScope:\n type: string\n required: true\n description: TCA Policy Scope\n policyVersion:\n type: string\n required: true\n description: TCA Policy Scope Version\n thresholds:\n type: list\n required: true\n description: Thresholds associated with eventName\n entry_schema:\n type: onap.datatypes.monitoring.thresholds\n onap.datatypes.monitoring.tca_policy:\n derived_from: tosca.datatypes.Root\n properties:\n domain:\n type: string\n required: true\n description: Domain name to which TCA needs to be applied\n default: measurementsForVfScaling\n constraints:\n - equal: measurementsForVfScaling\n metricsPerEventName:\n type: list\n required: true\n description: Contains eventName and threshold details that need to\n be applied to given eventName\n entry_schema:\n type: onap.datatypes.monitoring.metricsPerEventName\n onap.datatypes.monitoring.thresholds:\n derived_from: tosca.datatypes.Root\n properties:\n closedLoopControlName:\n type: string\n required: true\n description: Closed Loop Control Name associated with the threshold\n closedLoopEventStatus:\n type: string\n required: true\n description: Closed Loop Event Status of the threshold\n constraints:\n - valid_values:\n - ONSET\n - ABATED\n direction:\n type: string\n required: true\n description: Direction of the threshold\n constraints:\n - valid_values:\n - LESS\n - LESS_OR_EQUAL\n - GREATER\n - GREATER_OR_EQUAL\n - EQUAL\n fieldPath:\n type: string\n required: true\n description: Json field Path as per CEF message which needs to be\n analyzed for TCA\n constraints:\n - valid_values:\n - $.event.measurementsForVfScalingFields.vNicPerformanceArray[*].receivedTotalPacketsDelta\n - $.event.measurementsForVfScalingFields.vNicPerformanceArray[*].receivedOctetsDelta\n - $.event.measurementsForVfScalingFields.vNicPerformanceArray[*].receivedUnicastPacketsDelta\n - $.event.measurementsForVfScalingFields.vNicPerformanceArray[*].receivedMulticastPacketsDelta\n - $.event.measurementsForVfScalingFields.vNicPerformanceArray[*].receivedBroadcastPacketsDelta\n - $.event.measurementsForVfScalingFields.vNicPerformanceArray[*].receivedDiscardedPacketsDelta\n - $.event.measurementsForVfScalingFields.vNicPerformanceArray[*].receivedErrorPacketsDelta\n - $.event.measurementsForVfScalingFields.vNicPerformanceArray[*].receivedTotalPacketsAccumulated\n - $.event.measurementsForVfScalingFields.vNicPerformanceArray[*].receivedOctetsAccumulated\n - $.event.measurementsForVfScalingFields.vNicPerformanceArray[*].receivedUnicastPacketsAccumulated\n - $.event.measurementsForVfScalingFields.vNicPerformanceArray[*].receivedMulticastPacketsAccumulated\n - $.event.measurementsForVfScalingFields.vNicPerformanceArray[*].receivedBroadcastPacketsAccumulated\n - $.event.measurementsForVfScalingFields.vNicPerformanceArray[*].receivedDiscardedPacketsAccumulated\n - $.event.measurementsForVfScalingFields.vNicPerformanceArray[*].receivedErrorPacketsAccumulated\n - $.event.measurementsForVfScalingFields.vNicPerformanceArray[*].transmittedTotalPacketsDelta\n - $.event.measurementsForVfScalingFields.vNicPerformanceArray[*].transmittedOctetsDelta\n - $.event.measurementsForVfScalingFields.vNicPerformanceArray[*].transmittedUnicastPacketsDelta\n - $.event.measurementsForVfScalingFields.vNicPerformanceArray[*].transmittedMulticastPacketsDelta\n - $.event.measurementsForVfScalingFields.vNicPerformanceArray[*].transmittedBroadcastPacketsDelta\n - $.event.measurementsForVfScalingFields.vNicPerformanceArray[*].transmittedDiscardedPacketsDelta\n - $.event.measurementsForVfScalingFields.vNicPerformanceArray[*].transmittedErrorPacketsDelta\n - $.event.measurementsForVfScalingFields.vNicPerformanceArray[*].transmittedTotalPacketsAccumulated\n - $.event.measurementsForVfScalingFields.vNicPerformanceArray[*].transmittedOctetsAccumulated\n - $.event.measurementsForVfScalingFields.vNicPerformanceArray[*].transmittedUnicastPacketsAccumulated\n - $.event.measurementsForVfScalingFields.vNicPerformanceArray[*].transmittedMulticastPacketsAccumulated\n - $.event.measurementsForVfScalingFields.vNicPerformanceArray[*].transmittedBroadcastPacketsAccumulated\n - $.event.measurementsForVfScalingFields.vNicPerformanceArray[*].transmittedDiscardedPacketsAccumulated\n - $.event.measurementsForVfScalingFields.vNicPerformanceArray[*].transmittedErrorPacketsAccumulated\n - $.event.measurementsForVfScalingFields.cpuUsageArray[*].cpuIdle\n - $.event.measurementsForVfScalingFields.cpuUsageArray[*].cpuUsageInterrupt\n - $.event.measurementsForVfScalingFields.cpuUsageArray[*].cpuUsageNice\n - $.event.measurementsForVfScalingFields.cpuUsageArray[*].cpuUsageSoftIrq\n - $.event.measurementsForVfScalingFields.cpuUsageArray[*].cpuUsageSteal\n - $.event.measurementsForVfScalingFields.cpuUsageArray[*].cpuUsageSystem\n - $.event.measurementsForVfScalingFields.cpuUsageArray[*].cpuWait\n - $.event.measurementsForVfScalingFields.cpuUsageArray[*].percentUsage\n - $.event.measurementsForVfScalingFields.meanRequestLatency\n - $.event.measurementsForVfScalingFields.memoryUsageArray[*].memoryBuffered\n - $.event.measurementsForVfScalingFields.memoryUsageArray[*].memoryCached\n - $.event.measurementsForVfScalingFields.memoryUsageArray[*].memoryConfigured\n - $.event.measurementsForVfScalingFields.memoryUsageArray[*].memoryFree\n - $.event.measurementsForVfScalingFields.memoryUsageArray[*].memoryUsed\n - $.event.measurementsForVfScalingFields.additionalMeasurements[*].arrayOfFields[0].value\n severity:\n type: string\n required: true\n description: Threshold Event Severity\n constraints:\n - valid_values:\n - CRITICAL\n - MAJOR\n - MINOR\n - WARNING\n - NORMAL\n thresholdValue:\n type: integer\n required: true\n description: Threshold value for the field Path inside CEF message\n version:\n type: string\n required: true\n description: Version number associated with the threshold\n',NULL);
-INSERT INTO `policy_models` (`policy_model_type`, `version`, `created_by`, `created_timestamp`, `updated_by`, `updated_timestamp`, `policy_acronym`, `policy_tosca`, `policy_pdp_group`) VALUES ('onap.policies.monitoring.tcagen2','1.0.0','Not found','2021-06-11 11:47:47.557670','Not found','2021-06-11 11:47:47.557670','tcagen2','tosca_definitions_version: tosca_simple_yaml_1_1_0\npolicy_types:\n onap.policies.Monitoring:\n derived_from: tosca.policies.Root\n version: 1.0.0\n name: onap.policies.Monitoring\n description: a base policy type for all policies that govern monitoring provisioning\n onap.policies.monitoring.tcagen2:\n derived_from: onap.policies.Monitoring\n version: 1.0.0\n name: onap.policies.monitoring.tcagen2\n properties:\n tca.policy:\n type: onap.datatypes.monitoring.tca_policy\n description: TCA Policy JSON\n required: true\ndata_types:\n onap.datatypes.monitoring.metricsPerEventName:\n derived_from: tosca.datatypes.Root\n properties:\n controlLoopSchemaType:\n type: string\n required: true\n description: Specifies Control Loop Schema Type for the event Name\n e.g. VNF, VM\n constraints:\n - valid_values:\n - VM\n - VNF\n eventName:\n type: string\n required: true\n description: Event name to which thresholds need to be applied\n policyName:\n type: string\n required: true\n description: TCA Policy Scope Name\n policyScope:\n type: string\n required: true\n description: TCA Policy Scope\n policyVersion:\n type: string\n required: true\n description: TCA Policy Scope Version\n thresholds:\n type: list\n required: true\n description: Thresholds associated with eventName\n entry_schema:\n type: onap.datatypes.monitoring.thresholds\n onap.datatypes.monitoring.tca_policy:\n derived_from: tosca.datatypes.Root\n properties:\n domain:\n type: string\n required: true\n description: Domain name to which TCA needs to be applied\n default: measurementsForVfScaling\n constraints:\n - equal: measurementsForVfScaling\n metricsPerEventName:\n type: list\n required: true\n description: Contains eventName and threshold details that need to\n be applied to given eventName\n entry_schema:\n type: onap.datatypes.monitoring.metricsPerEventName\n onap.datatypes.monitoring.thresholds:\n derived_from: tosca.datatypes.Root\n properties:\n closedLoopControlName:\n type: string\n required: true\n description: Closed Loop Control Name associated with the threshold\n closedLoopEventStatus:\n type: string\n required: true\n description: Closed Loop Event Status of the threshold\n constraints:\n - valid_values:\n - ONSET\n - ABATED\n direction:\n type: string\n required: true\n description: Direction of the threshold\n constraints:\n - valid_values:\n - LESS\n - LESS_OR_EQUAL\n - GREATER\n - GREATER_OR_EQUAL\n - EQUAL\n fieldPath:\n type: string\n required: true\n description: Json field Path as per CEF message which needs to be\n analyzed for TCA\n constraints:\n - valid_values:\n - $.event.measurementsForVfScalingFields.vNicPerformanceArray[*].receivedTotalPacketsDelta\n - $.event.measurementsForVfScalingFields.vNicPerformanceArray[*].receivedOctetsDelta\n - $.event.measurementsForVfScalingFields.vNicPerformanceArray[*].receivedUnicastPacketsDelta\n - $.event.measurementsForVfScalingFields.vNicPerformanceArray[*].receivedMulticastPacketsDelta\n - $.event.measurementsForVfScalingFields.vNicPerformanceArray[*].receivedBroadcastPacketsDelta\n - $.event.measurementsForVfScalingFields.vNicPerformanceArray[*].receivedDiscardedPacketsDelta\n - $.event.measurementsForVfScalingFields.vNicPerformanceArray[*].receivedErrorPacketsDelta\n - $.event.measurementsForVfScalingFields.vNicPerformanceArray[*].receivedTotalPacketsAccumulated\n - $.event.measurementsForVfScalingFields.vNicPerformanceArray[*].receivedOctetsAccumulated\n - $.event.measurementsForVfScalingFields.vNicPerformanceArray[*].receivedUnicastPacketsAccumulated\n - $.event.measurementsForVfScalingFields.vNicPerformanceArray[*].receivedMulticastPacketsAccumulated\n - $.event.measurementsForVfScalingFields.vNicPerformanceArray[*].receivedBroadcastPacketsAccumulated\n - $.event.measurementsForVfScalingFields.vNicPerformanceArray[*].receivedDiscardedPacketsAccumulated\n - $.event.measurementsForVfScalingFields.vNicPerformanceArray[*].receivedErrorPacketsAccumulated\n - $.event.measurementsForVfScalingFields.vNicPerformanceArray[*].transmittedTotalPacketsDelta\n - $.event.measurementsForVfScalingFields.vNicPerformanceArray[*].transmittedOctetsDelta\n - $.event.measurementsForVfScalingFields.vNicPerformanceArray[*].transmittedUnicastPacketsDelta\n - $.event.measurementsForVfScalingFields.vNicPerformanceArray[*].transmittedMulticastPacketsDelta\n - $.event.measurementsForVfScalingFields.vNicPerformanceArray[*].transmittedBroadcastPacketsDelta\n - $.event.measurementsForVfScalingFields.vNicPerformanceArray[*].transmittedDiscardedPacketsDelta\n - $.event.measurementsForVfScalingFields.vNicPerformanceArray[*].transmittedErrorPacketsDelta\n - $.event.measurementsForVfScalingFields.vNicPerformanceArray[*].transmittedTotalPacketsAccumulated\n - $.event.measurementsForVfScalingFields.vNicPerformanceArray[*].transmittedOctetsAccumulated\n - $.event.measurementsForVfScalingFields.vNicPerformanceArray[*].transmittedUnicastPacketsAccumulated\n - $.event.measurementsForVfScalingFields.vNicPerformanceArray[*].transmittedMulticastPacketsAccumulated\n - $.event.measurementsForVfScalingFields.vNicPerformanceArray[*].transmittedBroadcastPacketsAccumulated\n - $.event.measurementsForVfScalingFields.vNicPerformanceArray[*].transmittedDiscardedPacketsAccumulated\n - $.event.measurementsForVfScalingFields.vNicPerformanceArray[*].transmittedErrorPacketsAccumulated\n - $.event.measurementsForVfScalingFields.cpuUsageArray[*].cpuIdle\n - $.event.measurementsForVfScalingFields.cpuUsageArray[*].cpuUsageInterrupt\n - $.event.measurementsForVfScalingFields.cpuUsageArray[*].cpuUsageNice\n - $.event.measurementsForVfScalingFields.cpuUsageArray[*].cpuUsageSoftIrq\n - $.event.measurementsForVfScalingFields.cpuUsageArray[*].cpuUsageSteal\n - $.event.measurementsForVfScalingFields.cpuUsageArray[*].cpuUsageSystem\n - $.event.measurementsForVfScalingFields.cpuUsageArray[*].cpuWait\n - $.event.measurementsForVfScalingFields.cpuUsageArray[*].percentUsage\n - $.event.measurementsForVfScalingFields.meanRequestLatency\n - $.event.measurementsForVfScalingFields.memoryUsageArray[*].memoryBuffered\n - $.event.measurementsForVfScalingFields.memoryUsageArray[*].memoryCached\n - $.event.measurementsForVfScalingFields.memoryUsageArray[*].memoryConfigured\n - $.event.measurementsForVfScalingFields.memoryUsageArray[*].memoryFree\n - $.event.measurementsForVfScalingFields.memoryUsageArray[*].memoryUsed\n - $.event.measurementsForVfScalingFields.additionalMeasurements[*].arrayOfFields[0].value\n severity:\n type: string\n required: true\n description: Threshold Event Severity\n constraints:\n - valid_values:\n - CRITICAL\n - MAJOR\n - MINOR\n - WARNING\n - NORMAL\n thresholdValue:\n type: integer\n required: true\n description: Threshold value for the field Path inside CEF message\n version:\n type: string\n required: true\n description: Version number associated with the threshold\n',NULL);
-INSERT INTO `policy_models` (`policy_model_type`, `version`, `created_by`, `created_timestamp`, `updated_by`, `updated_timestamp`, `policy_acronym`, `policy_tosca`, `policy_pdp_group`) VALUES ('onap.policies.Naming','1.0.0','Not found','2021-06-11 11:47:36.157822','Not found','2021-06-11 11:47:37.466826','Naming','tosca_definitions_version: tosca_simple_yaml_1_1_0\npolicy_types:\n onap.policies.Naming:\n derived_from: tosca.policies.Root\n version: 1.0.0\n name: onap.policies.Naming\n description: Virtual policy node for naming\n properties:\n policy-instance-name:\n type: string\n naming-models:\n type: list\n entry_schema:\n type: policy.data.naming-model-entity\ndata_types:\n policy.data.naming-model-entity:\n derived_from: tosca.datatypes.Root\n properties:\n nfRole:\n type: string\n required: false\n metadata:\n matchable: true\n naming-type:\n type: string\n required: true\n metadata:\n matchable: true\n naming-recipe:\n type: string\n required: true\n name-operation:\n type: string\n required: false\n naming-properties:\n type: list\n required: true\n entry_schema:\n type: policy.data.naming-property\n policy.data.naming-property:\n derived_from: tosca.datatypes.Root\n properties:\n property-name:\n type: string\n required: true\n metadata:\n matchable: true\n property-value:\n type: string\n required: false\n property-operation:\n type: string\n required: false\n source-system:\n type: string\n required: false\n source-endpoint:\n type: string\n required: false\n increment-sequence:\n type: policy.data.increment-sequence\n required: false\n policy.data.increment-sequence:\n derived_from: tosca.datatypes.Root\n properties:\n scope:\n type: list\n required: true\n entry_schema:\n type: string\n constraints:\n - valid_values:\n - CLOUD_REGION_ID\n - LOCATION_CLLI\n - VNF\n - VM\n - VFMODULE\n - PRECEEDING\n - TRAILING\n - ENTIRETY\n sequence-type:\n type: string\n require: true\n entry_schema:\n type: string\n constraints:\n - valid_values:\n - numeric\n - alpha-numeric\n start-value:\n type: string\n required: true\n max:\n type: string\n required: false\n increment:\n type: string\n required: true\n length:\n type: string\n required: true\n','{\n \"supportedPdpGroups\": [\n {\n \"monitoring\": [\n \"xacml\"\n ]\n }\n ]\n}');
+INSERT INTO `policy_models` (`policy_model_type`, `version`, `created_by`, `created_timestamp`, `updated_by`, `updated_timestamp`, `policy_acronym`, `policy_tosca`, `policy_pdp_group`) VALUES ('onap.policies.controlloop.guard.common.Blacklist','1.0.0','Not found','2021-06-17 16:15:11.250177','Not found','2021-06-17 16:15:11.450816','Blacklist','tosca_definitions_version: tosca_simple_yaml_1_1_0\npolicy_types:\n onap.policies.controlloop.guard.Common:\n derived_from: tosca.policies.Root\n version: 1.0.0\n description: |\n This is the base Policy Type for Guard policies that guard the execution of Operational\n Policies.\n properties:\n actor:\n type: string\n description: Specifies the Actor the guard applies to.\n required: true\n operation:\n type: string\n description: Specified the operation that the actor is performing\n the guard applies to.\n required: true\n timeRange:\n type: tosca.datatypes.TimeInterval\n description: |\n An optional range of time during the day the guard policy is valid for.\n required: false\n id:\n type: string\n description: The Control Loop id this applies to.\n required: false\n onap.policies.controlloop.guard.common.Blacklist:\n derived_from: onap.policies.controlloop.guard.Common\n type_version: 1.0.0\n version: 1.0.0\n description: Supports blacklist of entity id\'s from performing control loop\n actions on.\n properties:\n blacklist:\n type: list\n description: List of entity id\'s\n required: true\n entry_schema:\n type: string\n','{\n \"supportedPdpGroups\": [\n {\n \"controlloop\": [\n \"xacml\"\n ]\n }\n ]\n}');
+INSERT INTO `policy_models` (`policy_model_type`, `version`, `created_by`, `created_timestamp`, `updated_by`, `updated_timestamp`, `policy_acronym`, `policy_tosca`, `policy_pdp_group`) VALUES ('onap.policies.controlloop.guard.common.FrequencyLimiter','1.0.0','Not found','2021-06-17 16:15:11.136723','Not found','2021-06-17 16:15:11.452187','FrequencyLimiter','tosca_definitions_version: tosca_simple_yaml_1_1_0\npolicy_types:\n onap.policies.controlloop.guard.Common:\n derived_from: tosca.policies.Root\n version: 1.0.0\n description: |\n This is the base Policy Type for Guard policies that guard the execution of Operational\n Policies.\n properties:\n actor:\n type: string\n description: Specifies the Actor the guard applies to.\n required: true\n operation:\n type: string\n description: Specified the operation that the actor is performing\n the guard applies to.\n required: true\n timeRange:\n type: tosca.datatypes.TimeInterval\n description: |\n An optional range of time during the day the guard policy is valid for.\n required: false\n id:\n type: string\n description: The Control Loop id this applies to.\n required: false\n onap.policies.controlloop.guard.common.FrequencyLimiter:\n derived_from: onap.policies.controlloop.guard.Common\n type_version: 1.0.0\n version: 1.0.0\n description: Supports limiting the frequency of actions being taken by a Actor.\n properties:\n timeWindow:\n type: integer\n description: The time window to count the actions against.\n required: true\n timeUnits:\n type: string\n description: The units of time the window is counting.\n constraints:\n - valid_values:\n - second\n - minute\n - hour\n - day\n - week\n - month\n - year\n limit:\n type: integer\n description: The limit\n required: true\n constraints:\n - greater_than: 0\n','{\n \"supportedPdpGroups\": [\n {\n \"controlloop\": [\n \"xacml\"\n ]\n }\n ]\n}');
+INSERT INTO `policy_models` (`policy_model_type`, `version`, `created_by`, `created_timestamp`, `updated_by`, `updated_timestamp`, `policy_acronym`, `policy_tosca`, `policy_pdp_group`) VALUES ('onap.policies.controlloop.guard.common.MinMax','2.0.0',NULL,'2021-06-17 16:15:11.511288','Not found','2021-06-17 16:15:11.581900','MinMax','tosca_definitions_version: tosca_simple_yaml_1_1_0\npolicy_types:\n onap.policies.controlloop.guard.Common:\n derived_from: tosca.policies.Root\n version: 1.0.0\n description: |\n This is the base Policy Type for Guard policies that guard the execution of Operational\n Policies.\n properties:\n actor:\n type: string\n description: Specifies the Actor the guard applies to.\n required: true\n operation:\n type: string\n description: Specified the operation that the actor is performing\n the guard applies to.\n required: true\n timeRange:\n type: tosca.datatypes.TimeInterval\n description: |\n An optional range of time during the day the guard policy is valid for.\n required: false\n id:\n type: string\n description: The Control Loop id this applies to.\n required: false\n onap.policies.controlloop.guard.common.MinMax:\n derived_from: onap.policies.controlloop.guard.Common\n type_version: 1.0.0\n version: 1.0.0\n description: Supports Min/Max number of entity for scaling operations\n properties:\n min:\n type: integer\n required: true\n description: The minimum instances of this entity\n max:\n type: integer\n required: false\n description: The maximum instances of this entity\n',NULL);
+INSERT INTO `policy_models` (`policy_model_type`, `version`, `created_by`, `created_timestamp`, `updated_by`, `updated_timestamp`, `policy_acronym`, `policy_tosca`, `policy_pdp_group`) VALUES ('onap.policies.controlloop.operational.common.Apex','1.0.0',NULL,'2021-06-17 16:15:11.035345','Not found','2021-06-17 16:15:12.049476','Apex','tosca_definitions_version: tosca_simple_yaml_1_1_0\npolicy_types:\n onap.policies.controlloop.operational.Common:\n properties:\n abatement:\n name: abatement\n type: boolean\n typeVersion: 0.0.0\n description: Whether an abatement event message will be expected for\n the control loop from DCAE.\n default: \'false\'\n required: true\n constraints: [\n ]\n metadata: {\n }\n operations:\n name: operations\n type: list\n typeVersion: 0.0.0\n description: List of operations to be performed when Control Loop\n is triggered.\n required: true\n constraints: [\n ]\n entry_schema:\n type: onap.datatype.controlloop.Operation\n typeVersion: 0.0.0\n constraints: [\n ]\n metadata: {\n }\n trigger:\n name: trigger\n type: string\n typeVersion: 0.0.0\n description: Initial operation to execute upon receiving an Onset\n event message for the Control Loop.\n required: true\n constraints: [\n ]\n metadata: {\n }\n timeout:\n name: timeout\n type: integer\n typeVersion: 0.0.0\n description: |\n Overall timeout for executing all the operations. This timeout should equal or exceed the total\n timeout for each operation listed.\n required: true\n constraints: [\n ]\n metadata: {\n }\n id:\n name: id\n type: string\n typeVersion: 0.0.0\n description: The unique control loop id.\n required: true\n constraints: [\n ]\n metadata: {\n }\n name: onap.policies.controlloop.operational.Common\n version: 1.0.0\n derived_from: tosca.policies.Root\n metadata: {\n }\n description: |\n Operational Policy for Control Loop execution. Originated in Frankfurt to support TOSCA Compliant\n Policy Types. This does NOT support the legacy Policy YAML policy type.\n onap.policies.controlloop.operational.common.Apex:\n properties:\n engineServiceParameters:\n name: engineServiceParameters\n type: string\n typeVersion: 0.0.0\n description: The engine parameters like name, instanceCount, policy\n implementation, parameters etc.\n required: true\n constraints: [\n ]\n metadata: {\n }\n eventOutputParameters:\n name: eventOutputParameters\n type: string\n typeVersion: 0.0.0\n description: The event output parameters.\n required: true\n constraints: [\n ]\n metadata: {\n }\n javaProperties:\n name: javaProperties\n type: string\n typeVersion: 0.0.0\n description: Name/value pairs of properties to be set for APEX if\n needed.\n required: false\n constraints: [\n ]\n metadata: {\n }\n eventInputParameters:\n name: eventInputParameters\n type: string\n typeVersion: 0.0.0\n description: The event input parameters.\n required: true\n constraints: [\n ]\n metadata: {\n }\n name: onap.policies.controlloop.operational.common.Apex\n version: 1.0.0\n derived_from: onap.policies.controlloop.operational.Common\n metadata: {\n }\n description: Operational policies for Apex PDP\ndata_types:\n onap.datatype.controlloop.Actor:\n constraints: [\n ]\n properties:\n payload:\n name: payload\n type: map\n typeVersion: 0.0.0\n description: Name/value pairs of payload information passed by Policy\n to the actor\n required: false\n constraints: [\n ]\n entry_schema:\n type: string\n typeVersion: 0.0.0\n constraints: [\n ]\n metadata:\n clamp_possible_values: ClampExecution:CDS/payload\n target:\n name: target\n type: onap.datatype.controlloop.Target\n typeVersion: 0.0.0\n description: The resource the operation should be performed on.\n required: true\n constraints: [\n ]\n metadata: {\n }\n actor:\n name: actor\n type: string\n typeVersion: 0.0.0\n description: The actor performing the operation.\n required: true\n constraints: [\n ]\n metadata:\n clamp_possible_values: Dictionary:DefaultActors,ClampExecution:CDS/actor\n operation:\n name: operation\n type: string\n typeVersion: 0.0.0\n description: The operation the actor is performing.\n required: true\n constraints: [\n ]\n metadata:\n clamp_possible_values: Dictionary:DefaultOperations, ClampExecution:CDS/operation\n name: onap.datatype.controlloop.Actor\n version: 0.0.0\n derived_from: tosca.datatypes.Root\n metadata: {\n }\n description: An actor/operation/target definition\n onap.datatype.controlloop.Operation:\n constraints: [\n ]\n properties:\n failure_retries:\n name: failure_retries\n type: string\n typeVersion: 0.0.0\n description: Points to the operation to invoke when the current operation\n has exceeded its max retries.\n default: final_failure_retries\n required: false\n constraints: [\n ]\n metadata: {\n }\n id:\n name: id\n type: string\n typeVersion: 0.0.0\n description: Unique identifier for the operation\n required: true\n constraints: [\n ]\n metadata: {\n }\n failure_timeout:\n name: failure_timeout\n type: string\n typeVersion: 0.0.0\n description: Points to the operation to invoke when the time out for\n the operation occurs.\n default: final_failure_timeout\n required: false\n constraints: [\n ]\n metadata: {\n }\n failure:\n name: failure\n type: string\n typeVersion: 0.0.0\n description: Points to the operation to invoke on Actor operation\n failure.\n default: final_failure\n required: false\n constraints: [\n ]\n metadata: {\n }\n operation:\n name: operation\n type: onap.datatype.controlloop.Actor\n typeVersion: 0.0.0\n description: The definition of the operation to be performed.\n required: true\n constraints: [\n ]\n metadata: {\n }\n failure_guard:\n name: failure_guard\n type: string\n typeVersion: 0.0.0\n description: Points to the operation to invoke when the current operation\n is blocked due to guard policy enforcement.\n default: final_failure_guard\n required: false\n constraints: [\n ]\n metadata: {\n }\n retries:\n name: retries\n type: integer\n typeVersion: 0.0.0\n description: The number of retries the actor should attempt to perform\n the operation.\n default: \'0\'\n required: true\n constraints: [\n ]\n metadata: {\n }\n timeout:\n name: timeout\n type: integer\n typeVersion: 0.0.0\n description: The amount of time for the actor to perform the operation.\n required: true\n constraints: [\n ]\n metadata: {\n }\n failure_exception:\n name: failure_exception\n type: string\n typeVersion: 0.0.0\n description: Points to the operation to invoke when the current operation\n causes an exception.\n default: final_failure_exception\n required: false\n constraints: [\n ]\n metadata: {\n }\n description:\n name: description\n type: string\n typeVersion: 0.0.0\n description: A user-friendly description of the intent for the operation\n required: false\n constraints: [\n ]\n metadata: {\n }\n success:\n name: success\n type: string\n typeVersion: 0.0.0\n description: Points to the operation to invoke on success. A value\n of \"final_success\" indicates and end to the operation.\n default: final_success\n required: false\n constraints: [\n ]\n metadata: {\n }\n name: onap.datatype.controlloop.Operation\n version: 0.0.0\n derived_from: tosca.datatypes.Root\n metadata: {\n }\n description: An operation supported by an actor\n onap.datatype.controlloop.Target:\n constraints: [\n ]\n properties:\n entityIds:\n name: entityIds\n type: map\n typeVersion: 0.0.0\n description: |\n Map of values that identify the resource. If none are provided, it is assumed that the\n entity that generated the ONSET event will be the target.\n required: false\n constraints: [\n ]\n entry_schema:\n type: string\n typeVersion: 0.0.0\n constraints: [\n ]\n metadata:\n clamp_possible_values: ClampExecution:CSAR_RESOURCES\n targetType:\n name: targetType\n type: string\n typeVersion: 0.0.0\n description: Category for the target type\n required: true\n constraints:\n - valid_values:\n - VNF\n - VM\n - VFMODULE\n - PNF\n metadata: {\n }\n name: onap.datatype.controlloop.Target\n version: 0.0.0\n derived_from: tosca.datatypes.Root\n metadata: {\n }\n description: Definition for a entity in A&AI to perform a control loop operation\n on\nname: ToscaServiceTemplateSimple\nversion: 1.0.0\nmetadata: {\n }\n','{\n \"supportedPdpGroups\": [\n {\n \"controlloop\": [\n \"apex\",\n \"drools\"\n ]\n }\n ]\n}');
+INSERT INTO `policy_models` (`policy_model_type`, `version`, `created_by`, `created_timestamp`, `updated_by`, `updated_timestamp`, `policy_acronym`, `policy_tosca`, `policy_pdp_group`) VALUES ('onap.policies.controlloop.operational.common.Drools','1.0.0',NULL,'2021-06-17 16:15:10.801558','Not found','2021-06-17 16:15:11.455427','Drools','tosca_definitions_version: tosca_simple_yaml_1_1_0\npolicy_types:\n onap.policies.controlloop.operational.common.Drools:\n derived_from: onap.policies.controlloop.operational.Common\n type_version: 1.0.0\n version: 1.0.0\n description: Operational policies for Drools PDP\n properties:\n controllerName:\n type: string\n description: Drools controller properties\n required: false\n onap.policies.controlloop.operational.Common:\n derived_from: tosca.policies.Root\n version: 1.0.0\n description: |\n Operational Policy for Control Loop execution. Originated in Frankfurt to support TOSCA Compliant\n Policy Types. This does NOT support the legacy Policy YAML policy type.\n properties:\n id:\n type: string\n description: The unique control loop id.\n required: true\n timeout:\n type: integer\n description: |\n Overall timeout for executing all the operations. This timeout should equal or exceed the total\n timeout for each operation listed.\n required: true\n abatement:\n type: boolean\n description: Whether an abatement event message will be expected for\n the control loop from DCAE.\n required: true\n default: false\n trigger:\n type: string\n description: Initial operation to execute upon receiving an Onset\n event message for the Control Loop.\n required: true\n operations:\n type: list\n description: List of operations to be performed when Control Loop\n is triggered.\n required: true\n entry_schema:\n type: onap.datatype.controlloop.Operation\ndata_types:\n onap.datatype.controlloop.Target:\n derived_from: tosca.datatypes.Root\n description: Definition for a entity in A&AI to perform a control loop operation\n on\n properties:\n targetType:\n type: string\n description: Category for the target type\n required: true\n constraints:\n - valid_values:\n - VNF\n - VM\n - VFMODULE\n - PNF\n entityIds:\n type: map\n description: |\n Map of values that identify the resource. If none are provided, it is assumed that the\n entity that generated the ONSET event will be the target.\n required: false\n metadata:\n clamp_possible_values: ClampExecution:CSAR_RESOURCES\n entry_schema:\n type: string\n onap.datatype.controlloop.Actor:\n derived_from: tosca.datatypes.Root\n description: An actor/operation/target definition\n properties:\n actor:\n type: string\n description: The actor performing the operation.\n required: true\n metadata:\n clamp_possible_values: Dictionary:DefaultActors,ClampExecution:CDS/actor\n operation:\n type: string\n description: The operation the actor is performing.\n required: true\n metadata:\n clamp_possible_values: Dictionary:DefaultOperations, ClampExecution:CDS/operations\n target:\n type: onap.datatype.controlloop.Target\n description: The resource the operation should be performed on.\n required: true\n payload:\n type: map\n description: Name/value pairs of payload information passed by Policy\n to the actor\n required: false\n metadata:\n clamp_possible_values: ClampExecution:CDS/payload\n entry_schema:\n type: string\n onap.datatype.controlloop.Operation:\n derived_from: tosca.datatypes.Root\n description: An operation supported by an actor\n properties:\n id:\n type: string\n description: Unique identifier for the operation\n required: true\n description:\n type: string\n description: A user-friendly description of the intent for the operation\n required: false\n operation:\n type: onap.datatype.controlloop.Actor\n description: The definition of the operation to be performed.\n required: true\n timeout:\n type: integer\n description: The amount of time for the actor to perform the operation.\n required: true\n retries:\n type: integer\n description: The number of retries the actor should attempt to perform\n the operation.\n required: true\n default: 0\n success:\n type: string\n description: Points to the operation to invoke on success. A value\n of \"final_success\" indicates and end to the operation.\n required: false\n default: final_success\n failure:\n type: string\n description: Points to the operation to invoke on Actor operation\n failure.\n required: false\n default: final_failure\n failure_timeout:\n type: string\n description: Points to the operation to invoke when the time out for\n the operation occurs.\n required: false\n default: final_failure_timeout\n failure_retries:\n type: string\n description: Points to the operation to invoke when the current operation\n has exceeded its max retries.\n required: false\n default: final_failure_retries\n failure_exception:\n type: string\n description: Points to the operation to invoke when the current operation\n causes an exception.\n required: false\n default: final_failure_exception\n failure_guard:\n type: string\n description: Points to the operation to invoke when the current operation\n is blocked due to guard policy enforcement.\n required: false\n default: final_failure_guard\n','{\n \"supportedPdpGroups\": [\n {\n \"controlloop\": [\n \"apex\",\n \"drools\"\n ]\n }\n ]\n}');
+INSERT INTO `policy_models` (`policy_model_type`, `version`, `created_by`, `created_timestamp`, `updated_by`, `updated_timestamp`, `policy_acronym`, `policy_tosca`, `policy_pdp_group`) VALUES ('onap.policies.monitoring.cdap.tca.hi.lo.app','1.0.0','Not found','2021-06-17 16:15:19.212725','Not found','2021-06-17 16:15:19.212725','app','tosca_definitions_version: tosca_simple_yaml_1_1_0\npolicy_types:\n onap.policies.Monitoring:\n derived_from: tosca.policies.Root\n version: 1.0.0\n description: a base policy type for all policies that govern monitoring provisioning\n onap.policies.monitoring.cdap.tca.hi.lo.app:\n derived_from: onap.policies.Monitoring\n version: 1.0.0\n properties:\n tca_policy:\n type: onap.datatypes.monitoring.tca_policy\n description: TCA Policy JSON\n required: true\ndata_types:\n onap.datatypes.monitoring.metricsPerEventName:\n derived_from: tosca.datatypes.Root\n properties:\n controlLoopSchemaType:\n type: string\n required: true\n description: Specifies Control Loop Schema Type for the event Name\n e.g. VNF, VM\n constraints:\n - valid_values:\n - VM\n - VNF\n eventName:\n type: string\n required: true\n description: Event name to which thresholds need to be applied\n policyName:\n type: string\n required: true\n description: TCA Policy Scope Name\n policyScope:\n type: string\n required: true\n description: TCA Policy Scope\n policyVersion:\n type: string\n required: true\n description: TCA Policy Scope Version\n thresholds:\n type: list\n required: true\n description: Thresholds associated with eventName\n entry_schema:\n type: onap.datatypes.monitoring.thresholds\n onap.datatypes.monitoring.tca_policy:\n derived_from: tosca.datatypes.Root\n properties:\n domain:\n type: string\n required: true\n description: Domain name to which TCA needs to be applied\n default: measurementsForVfScaling\n constraints:\n - equal: measurementsForVfScaling\n metricsPerEventName:\n type: list\n required: true\n description: Contains eventName and threshold details that need to\n be applied to given eventName\n entry_schema:\n type: onap.datatypes.monitoring.metricsPerEventName\n onap.datatypes.monitoring.thresholds:\n derived_from: tosca.datatypes.Root\n properties:\n closedLoopControlName:\n type: string\n required: true\n description: Closed Loop Control Name associated with the threshold\n closedLoopEventStatus:\n type: string\n required: true\n description: Closed Loop Event Status of the threshold\n constraints:\n - valid_values:\n - ONSET\n - ABATED\n direction:\n type: string\n required: true\n description: Direction of the threshold\n constraints:\n - valid_values:\n - LESS\n - LESS_OR_EQUAL\n - GREATER\n - GREATER_OR_EQUAL\n - EQUAL\n fieldPath:\n type: string\n required: true\n description: Json field Path as per CEF message which needs to be\n analyzed for TCA\n constraints:\n - valid_values:\n - $.event.measurementsForVfScalingFields.vNicPerformanceArray[*].receivedTotalPacketsDelta\n - $.event.measurementsForVfScalingFields.vNicPerformanceArray[*].receivedOctetsDelta\n - $.event.measurementsForVfScalingFields.vNicPerformanceArray[*].receivedUnicastPacketsDelta\n - $.event.measurementsForVfScalingFields.vNicPerformanceArray[*].receivedMulticastPacketsDelta\n - $.event.measurementsForVfScalingFields.vNicPerformanceArray[*].receivedBroadcastPacketsDelta\n - $.event.measurementsForVfScalingFields.vNicPerformanceArray[*].receivedDiscardedPacketsDelta\n - $.event.measurementsForVfScalingFields.vNicPerformanceArray[*].receivedErrorPacketsDelta\n - $.event.measurementsForVfScalingFields.vNicPerformanceArray[*].receivedTotalPacketsAccumulated\n - $.event.measurementsForVfScalingFields.vNicPerformanceArray[*].receivedOctetsAccumulated\n - $.event.measurementsForVfScalingFields.vNicPerformanceArray[*].receivedUnicastPacketsAccumulated\n - $.event.measurementsForVfScalingFields.vNicPerformanceArray[*].receivedMulticastPacketsAccumulated\n - $.event.measurementsForVfScalingFields.vNicPerformanceArray[*].receivedBroadcastPacketsAccumulated\n - $.event.measurementsForVfScalingFields.vNicPerformanceArray[*].receivedDiscardedPacketsAccumulated\n - $.event.measurementsForVfScalingFields.vNicPerformanceArray[*].receivedErrorPacketsAccumulated\n - $.event.measurementsForVfScalingFields.vNicPerformanceArray[*].transmittedTotalPacketsDelta\n - $.event.measurementsForVfScalingFields.vNicPerformanceArray[*].transmittedOctetsDelta\n - $.event.measurementsForVfScalingFields.vNicPerformanceArray[*].transmittedUnicastPacketsDelta\n - $.event.measurementsForVfScalingFields.vNicPerformanceArray[*].transmittedMulticastPacketsDelta\n - $.event.measurementsForVfScalingFields.vNicPerformanceArray[*].transmittedBroadcastPacketsDelta\n - $.event.measurementsForVfScalingFields.vNicPerformanceArray[*].transmittedDiscardedPacketsDelta\n - $.event.measurementsForVfScalingFields.vNicPerformanceArray[*].transmittedErrorPacketsDelta\n - $.event.measurementsForVfScalingFields.vNicPerformanceArray[*].transmittedTotalPacketsAccumulated\n - $.event.measurementsForVfScalingFields.vNicPerformanceArray[*].transmittedOctetsAccumulated\n - $.event.measurementsForVfScalingFields.vNicPerformanceArray[*].transmittedUnicastPacketsAccumulated\n - $.event.measurementsForVfScalingFields.vNicPerformanceArray[*].transmittedMulticastPacketsAccumulated\n - $.event.measurementsForVfScalingFields.vNicPerformanceArray[*].transmittedBroadcastPacketsAccumulated\n - $.event.measurementsForVfScalingFields.vNicPerformanceArray[*].transmittedDiscardedPacketsAccumulated\n - $.event.measurementsForVfScalingFields.vNicPerformanceArray[*].transmittedErrorPacketsAccumulated\n - $.event.measurementsForVfScalingFields.cpuUsageArray[*].cpuIdle\n - $.event.measurementsForVfScalingFields.cpuUsageArray[*].cpuUsageInterrupt\n - $.event.measurementsForVfScalingFields.cpuUsageArray[*].cpuUsageNice\n - $.event.measurementsForVfScalingFields.cpuUsageArray[*].cpuUsageSoftIrq\n - $.event.measurementsForVfScalingFields.cpuUsageArray[*].cpuUsageSteal\n - $.event.measurementsForVfScalingFields.cpuUsageArray[*].cpuUsageSystem\n - $.event.measurementsForVfScalingFields.cpuUsageArray[*].cpuWait\n - $.event.measurementsForVfScalingFields.cpuUsageArray[*].percentUsage\n - $.event.measurementsForVfScalingFields.meanRequestLatency\n - $.event.measurementsForVfScalingFields.memoryUsageArray[*].memoryBuffered\n - $.event.measurementsForVfScalingFields.memoryUsageArray[*].memoryCached\n - $.event.measurementsForVfScalingFields.memoryUsageArray[*].memoryConfigured\n - $.event.measurementsForVfScalingFields.memoryUsageArray[*].memoryFree\n - $.event.measurementsForVfScalingFields.memoryUsageArray[*].memoryUsed\n - $.event.measurementsForVfScalingFields.additionalMeasurements[*].arrayOfFields[0].value\n severity:\n type: string\n required: true\n description: Threshold Event Severity\n constraints:\n - valid_values:\n - CRITICAL\n - MAJOR\n - MINOR\n - WARNING\n - NORMAL\n thresholdValue:\n type: integer\n required: true\n description: Threshold value for the field Path inside CEF message\n version:\n type: string\n required: true\n description: Version number associated with the threshold\n',NULL);
+INSERT INTO `policy_models` (`policy_model_type`, `version`, `created_by`, `created_timestamp`, `updated_by`, `updated_timestamp`, `policy_acronym`, `policy_tosca`, `policy_pdp_group`) VALUES ('onap.policies.monitoring.tcagen2','1.0.0','Not found','2021-06-17 16:15:19.486012','Not found','2021-06-17 16:15:19.486012','tcagen2','tosca_definitions_version: tosca_simple_yaml_1_1_0\npolicy_types:\n onap.policies.Monitoring:\n derived_from: tosca.policies.Root\n version: 1.0.0\n name: onap.policies.Monitoring\n description: a base policy type for all policies that govern monitoring provisioning\n onap.policies.monitoring.tcagen2:\n derived_from: onap.policies.Monitoring\n version: 1.0.0\n name: onap.policies.monitoring.tcagen2\n properties:\n tca.policy:\n type: onap.datatypes.monitoring.tca_policy\n description: TCA Policy JSON\n required: true\ndata_types:\n onap.datatypes.monitoring.metricsPerEventName:\n derived_from: tosca.datatypes.Root\n properties:\n controlLoopSchemaType:\n type: string\n required: true\n description: Specifies Control Loop Schema Type for the event Name\n e.g. VNF, VM\n constraints:\n - valid_values:\n - VM\n - VNF\n eventName:\n type: string\n required: true\n description: Event name to which thresholds need to be applied\n policyName:\n type: string\n required: true\n description: TCA Policy Scope Name\n policyScope:\n type: string\n required: true\n description: TCA Policy Scope\n policyVersion:\n type: string\n required: true\n description: TCA Policy Scope Version\n thresholds:\n type: list\n required: true\n description: Thresholds associated with eventName\n entry_schema:\n type: onap.datatypes.monitoring.thresholds\n onap.datatypes.monitoring.tca_policy:\n derived_from: tosca.datatypes.Root\n properties:\n domain:\n type: string\n required: true\n description: Domain name to which TCA needs to be applied\n default: measurementsForVfScaling\n constraints:\n - equal: measurementsForVfScaling\n metricsPerEventName:\n type: list\n required: true\n description: Contains eventName and threshold details that need to\n be applied to given eventName\n entry_schema:\n type: onap.datatypes.monitoring.metricsPerEventName\n onap.datatypes.monitoring.thresholds:\n derived_from: tosca.datatypes.Root\n properties:\n closedLoopControlName:\n type: string\n required: true\n description: Closed Loop Control Name associated with the threshold\n closedLoopEventStatus:\n type: string\n required: true\n description: Closed Loop Event Status of the threshold\n constraints:\n - valid_values:\n - ONSET\n - ABATED\n direction:\n type: string\n required: true\n description: Direction of the threshold\n constraints:\n - valid_values:\n - LESS\n - LESS_OR_EQUAL\n - GREATER\n - GREATER_OR_EQUAL\n - EQUAL\n fieldPath:\n type: string\n required: true\n description: Json field Path as per CEF message which needs to be\n analyzed for TCA\n constraints:\n - valid_values:\n - $.event.measurementsForVfScalingFields.vNicPerformanceArray[*].receivedTotalPacketsDelta\n - $.event.measurementsForVfScalingFields.vNicPerformanceArray[*].receivedOctetsDelta\n - $.event.measurementsForVfScalingFields.vNicPerformanceArray[*].receivedUnicastPacketsDelta\n - $.event.measurementsForVfScalingFields.vNicPerformanceArray[*].receivedMulticastPacketsDelta\n - $.event.measurementsForVfScalingFields.vNicPerformanceArray[*].receivedBroadcastPacketsDelta\n - $.event.measurementsForVfScalingFields.vNicPerformanceArray[*].receivedDiscardedPacketsDelta\n - $.event.measurementsForVfScalingFields.vNicPerformanceArray[*].receivedErrorPacketsDelta\n - $.event.measurementsForVfScalingFields.vNicPerformanceArray[*].receivedTotalPacketsAccumulated\n - $.event.measurementsForVfScalingFields.vNicPerformanceArray[*].receivedOctetsAccumulated\n - $.event.measurementsForVfScalingFields.vNicPerformanceArray[*].receivedUnicastPacketsAccumulated\n - $.event.measurementsForVfScalingFields.vNicPerformanceArray[*].receivedMulticastPacketsAccumulated\n - $.event.measurementsForVfScalingFields.vNicPerformanceArray[*].receivedBroadcastPacketsAccumulated\n - $.event.measurementsForVfScalingFields.vNicPerformanceArray[*].receivedDiscardedPacketsAccumulated\n - $.event.measurementsForVfScalingFields.vNicPerformanceArray[*].receivedErrorPacketsAccumulated\n - $.event.measurementsForVfScalingFields.vNicPerformanceArray[*].transmittedTotalPacketsDelta\n - $.event.measurementsForVfScalingFields.vNicPerformanceArray[*].transmittedOctetsDelta\n - $.event.measurementsForVfScalingFields.vNicPerformanceArray[*].transmittedUnicastPacketsDelta\n - $.event.measurementsForVfScalingFields.vNicPerformanceArray[*].transmittedMulticastPacketsDelta\n - $.event.measurementsForVfScalingFields.vNicPerformanceArray[*].transmittedBroadcastPacketsDelta\n - $.event.measurementsForVfScalingFields.vNicPerformanceArray[*].transmittedDiscardedPacketsDelta\n - $.event.measurementsForVfScalingFields.vNicPerformanceArray[*].transmittedErrorPacketsDelta\n - $.event.measurementsForVfScalingFields.vNicPerformanceArray[*].transmittedTotalPacketsAccumulated\n - $.event.measurementsForVfScalingFields.vNicPerformanceArray[*].transmittedOctetsAccumulated\n - $.event.measurementsForVfScalingFields.vNicPerformanceArray[*].transmittedUnicastPacketsAccumulated\n - $.event.measurementsForVfScalingFields.vNicPerformanceArray[*].transmittedMulticastPacketsAccumulated\n - $.event.measurementsForVfScalingFields.vNicPerformanceArray[*].transmittedBroadcastPacketsAccumulated\n - $.event.measurementsForVfScalingFields.vNicPerformanceArray[*].transmittedDiscardedPacketsAccumulated\n - $.event.measurementsForVfScalingFields.vNicPerformanceArray[*].transmittedErrorPacketsAccumulated\n - $.event.measurementsForVfScalingFields.cpuUsageArray[*].cpuIdle\n - $.event.measurementsForVfScalingFields.cpuUsageArray[*].cpuUsageInterrupt\n - $.event.measurementsForVfScalingFields.cpuUsageArray[*].cpuUsageNice\n - $.event.measurementsForVfScalingFields.cpuUsageArray[*].cpuUsageSoftIrq\n - $.event.measurementsForVfScalingFields.cpuUsageArray[*].cpuUsageSteal\n - $.event.measurementsForVfScalingFields.cpuUsageArray[*].cpuUsageSystem\n - $.event.measurementsForVfScalingFields.cpuUsageArray[*].cpuWait\n - $.event.measurementsForVfScalingFields.cpuUsageArray[*].percentUsage\n - $.event.measurementsForVfScalingFields.meanRequestLatency\n - $.event.measurementsForVfScalingFields.memoryUsageArray[*].memoryBuffered\n - $.event.measurementsForVfScalingFields.memoryUsageArray[*].memoryCached\n - $.event.measurementsForVfScalingFields.memoryUsageArray[*].memoryConfigured\n - $.event.measurementsForVfScalingFields.memoryUsageArray[*].memoryFree\n - $.event.measurementsForVfScalingFields.memoryUsageArray[*].memoryUsed\n - $.event.measurementsForVfScalingFields.additionalMeasurements[*].arrayOfFields[0].value\n severity:\n type: string\n required: true\n description: Threshold Event Severity\n constraints:\n - valid_values:\n - CRITICAL\n - MAJOR\n - MINOR\n - WARNING\n - NORMAL\n thresholdValue:\n type: integer\n required: true\n description: Threshold value for the field Path inside CEF message\n version:\n type: string\n required: true\n description: Version number associated with the threshold\n',NULL);
+INSERT INTO `policy_models` (`policy_model_type`, `version`, `created_by`, `created_timestamp`, `updated_by`, `updated_timestamp`, `policy_acronym`, `policy_tosca`, `policy_pdp_group`) VALUES ('onap.policies.Naming','1.0.0','Not found','2021-06-17 16:15:11.367029','Not found','2021-06-17 16:15:12.054986','Naming','tosca_definitions_version: tosca_simple_yaml_1_1_0\npolicy_types:\n onap.policies.Naming:\n derived_from: tosca.policies.Root\n version: 1.0.0\n name: onap.policies.Naming\n description: Virtual policy node for naming\n properties:\n policy-instance-name:\n type: string\n naming-models:\n type: list\n entry_schema:\n type: policy.data.naming-model-entity\ndata_types:\n policy.data.naming-model-entity:\n derived_from: tosca.datatypes.Root\n properties:\n nfRole:\n type: string\n required: false\n metadata:\n matchable: true\n naming-type:\n type: string\n required: true\n metadata:\n matchable: true\n naming-recipe:\n type: string\n required: true\n name-operation:\n type: string\n required: false\n naming-properties:\n type: list\n required: true\n entry_schema:\n type: policy.data.naming-property\n policy.data.naming-property:\n derived_from: tosca.datatypes.Root\n properties:\n property-name:\n type: string\n required: true\n metadata:\n matchable: true\n property-value:\n type: string\n required: false\n property-operation:\n type: string\n required: false\n source-system:\n type: string\n required: false\n source-endpoint:\n type: string\n required: false\n increment-sequence:\n type: policy.data.increment-sequence\n required: false\n policy.data.increment-sequence:\n derived_from: tosca.datatypes.Root\n properties:\n scope:\n type: list\n required: true\n entry_schema:\n type: string\n constraints:\n - valid_values:\n - CLOUD_REGION_ID\n - LOCATION_CLLI\n - VNF\n - VM\n - VFMODULE\n - PRECEEDING\n - TRAILING\n - ENTIRETY\n sequence-type:\n type: string\n require: true\n entry_schema:\n type: string\n constraints:\n - valid_values:\n - numeric\n - alpha-numeric\n start-value:\n type: string\n required: true\n max:\n type: string\n required: false\n increment:\n type: string\n required: true\n length:\n type: string\n required: true\n','{\n \"supportedPdpGroups\": [\n {\n \"monitoring\": [\n \"xacml\"\n ]\n }\n ]\n}');
/*!40000 ALTER TABLE `policy_models` ENABLE KEYS */;
UNLOCK TABLES;
@@ -215,4 +215,4 @@ UNLOCK TABLES;
/*!40101 SET COLLATION_CONNECTION=@OLD_COLLATION_CONNECTION */;
/*!40111 SET SQL_NOTES=@OLD_SQL_NOTES */;
--- Dump completed on 2021-06-11 10:48:34
+-- Dump completed on 2021-06-17 15:15:55
diff --git a/runtime/src/main/java/org/onap/policy/clamp/clds/Application.java b/runtime/src/main/java/org/onap/policy/clamp/clds/Application.java
index ba300ac09..07c174293 100644
--- a/runtime/src/main/java/org/onap/policy/clamp/clds/Application.java
+++ b/runtime/src/main/java/org/onap/policy/clamp/clds/Application.java
@@ -39,7 +39,6 @@ import org.apache.catalina.connector.Connector;
import org.onap.policy.clamp.clds.util.ClampVersioning;
import org.onap.policy.clamp.clds.util.ResourceFileUtils;
import org.onap.policy.clamp.util.PassDecoder;
-import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.beans.factory.annotation.Value;
import org.springframework.boot.SpringApplication;
import org.springframework.boot.autoconfigure.SpringBootApplication;
@@ -54,7 +53,6 @@ import org.springframework.boot.web.servlet.server.ServletWebServerFactory;
import org.springframework.boot.web.servlet.support.SpringBootServletInitializer;
import org.springframework.context.annotation.Bean;
import org.springframework.context.annotation.ComponentScan;
-import org.springframework.core.env.Environment;
import org.springframework.data.jpa.repository.config.EnableJpaAuditing;
import org.springframework.data.jpa.repository.config.EnableJpaRepositories;
import org.springframework.scheduling.annotation.EnableAsync;
@@ -99,9 +97,6 @@ public class Application extends SpringBootServletInitializer {
@Value("${clamp.config.keyFile:classpath:/clds/aaf/org.onap.clamp.keyfile}")
private String keyFile;
- @Autowired
- private Environment env;
-
@Override
protected SpringApplicationBuilder configure(SpringApplicationBuilder application) {
return application.sources(Application.class);
@@ -124,11 +119,11 @@ public class Application extends SpringBootServletInitializer {
* @throws IOException IO Exception
*/
@Bean
- public ServletRegistrationBean camelServletRegistrationBean() throws IOException {
+ public ServletRegistrationBean<ClampServlet> camelServletRegistrationBean() throws IOException {
eelfLogger.info(ResourceFileUtils.getResourceAsString("boot-message.txt") + "(v"
+ ClampVersioning.getCldsVersionFromProps() + ")" + System.getProperty("line.separator")
+ getSslExpirationDate());
- ServletRegistrationBean registration = new ServletRegistrationBean(new ClampServlet(), "/restservices/clds/*");
+ var registration = new ServletRegistrationBean<ClampServlet>(new ClampServlet(), "/restservices/clds/*");
registration.setName("CamelServlet");
return registration;
}
@@ -140,11 +135,11 @@ public class Application extends SpringBootServletInitializer {
*/
@Bean
public ServletWebServerFactory getEmbeddedServletContainerFactory() {
- TomcatServletWebServerFactory tomcat = new TomcatServletWebServerFactory();
+ var tomcat = new TomcatServletWebServerFactory();
if (httpRedirectedPort != null && keystoreFile != null) {
// Automatically redirect to HTTPS
tomcat = new TomcatEmbeddedServletContainerFactoryRedirection();
- Connector newConnector = createRedirectConnector(Integer.parseInt(springServerPort));
+ var newConnector = createRedirectConnector(Integer.parseInt(springServerPort));
if (newConnector != null) {
tomcat.addAdditionalTomcatConnectors(newConnector);
}
@@ -158,7 +153,7 @@ public class Application extends SpringBootServletInitializer {
+ " (Connector disabled)");
return null;
}
- Connector connector = new Connector("org.apache.coyote.http11.Http11NioProtocol");
+ var connector = new Connector("org.apache.coyote.http11.Http11NioProtocol");
connector.setScheme("http");
connector.setSecure(false);
connector.setPort(Integer.parseInt(httpRedirectedPort));
@@ -167,10 +162,10 @@ public class Application extends SpringBootServletInitializer {
}
private String getSslExpirationDate() throws IOException {
- StringBuilder result = new StringBuilder(" :: SSL Certificates :: ");
+ var result = new StringBuilder(" :: SSL Certificates :: ");
try {
if (keystoreFile != null) {
- KeyStore keystore = KeyStore.getInstance(keyStoreType);
+ var keystore = KeyStore.getInstance(keyStoreType);
keystore.load(ResourceFileUtils.getResourceAsStream(keystoreFile.replace("classpath:", "")),
PassDecoder.decode(keyStorePass, keyFile).toCharArray());
diff --git a/runtime/src/main/java/org/onap/policy/clamp/clds/config/AafConfiguration.java b/runtime/src/main/java/org/onap/policy/clamp/clds/config/AafConfiguration.java
index 9b6338e00..720a3f995 100644
--- a/runtime/src/main/java/org/onap/policy/clamp/clds/config/AafConfiguration.java
+++ b/runtime/src/main/java/org/onap/policy/clamp/clds/config/AafConfiguration.java
@@ -50,8 +50,8 @@ public class AafConfiguration {
* @return FilterRegistrationBean
*/
@Bean
- public FilterRegistrationBean cadiFilterRegistration() {
- FilterRegistrationBean registration = new FilterRegistrationBean();
+ public FilterRegistrationBean<Filter> cadiFilterRegistration() {
+ var registration = new FilterRegistrationBean<Filter>();
registration.setFilter(cadiFilter());
registration.addUrlPatterns("/restservices/clds/v1/user/*");
registration.addUrlPatterns("/restservices/clds/v2/dictionary/*");
@@ -64,4 +64,4 @@ public class AafConfiguration {
registration.setOrder(0);
return registration;
}
-} \ No newline at end of file
+}
diff --git a/runtime/src/main/java/org/onap/policy/clamp/clds/config/CamelConfiguration.java b/runtime/src/main/java/org/onap/policy/clamp/clds/config/CamelConfiguration.java
index 5f10c0afb..0880e9b74 100644
--- a/runtime/src/main/java/org/onap/policy/clamp/clds/config/CamelConfiguration.java
+++ b/runtime/src/main/java/org/onap/policy/clamp/clds/config/CamelConfiguration.java
@@ -117,22 +117,22 @@ public class CamelConfiguration extends RouteBuilder {
private void configureCamelHttpComponent()
throws KeyStoreException, NoSuchAlgorithmException, KeyManagementException, CertificateException,
IOException {
- RequestConfig requestConfig = RequestConfig.custom()
+ var requestConfig = RequestConfig.custom()
.setConnectTimeout(connectTimeout)
.setConnectionRequestTimeout(connectRequestTimeout)
.setSocketTimeout(socketTimeout).build();
if (trustStore != null) {
- KeyStore truststore = KeyStore.getInstance(trustStoreType);
+ var truststore = KeyStore.getInstance(trustStoreType);
truststore.load(
ResourceFileUtils.getResourceAsStream(trustStore),
Objects.requireNonNull(PassDecoder.decode(trustStorePass, keyFile)).toCharArray());
- TrustManagerFactory trustFactory = TrustManagerFactory.getInstance(trustStoreAlgorithm);
+ var trustFactory = TrustManagerFactory.getInstance(trustStoreAlgorithm);
trustFactory.init(truststore);
- SSLContext sslcontext = SSLContext.getInstance("TLS");
+ var sslcontext = SSLContext.getInstance("TLS");
sslcontext.init(null, trustFactory.getTrustManagers(), null);
camelContext.getComponent(HTTPS, HttpComponent.class).setHttpClientConfigurer(builder -> {
- SSLSocketFactory factory = new SSLSocketFactory(sslcontext,
+ var factory = new SSLSocketFactory(sslcontext,
SSLSocketFactory.ALLOW_ALL_HOSTNAME_VERIFIER);
builder.setSSLSocketFactory(factory);
builder.setConnectionManager(new BasicHttpClientConnectionManager(
diff --git a/runtime/src/main/java/org/onap/policy/clamp/clds/model/dcae/DcaeInventoryCache.java b/runtime/src/main/java/org/onap/policy/clamp/clds/model/dcae/DcaeInventoryCache.java
index a69d1a353..248fdcaea 100644
--- a/runtime/src/main/java/org/onap/policy/clamp/clds/model/dcae/DcaeInventoryCache.java
+++ b/runtime/src/main/java/org/onap/policy/clamp/clds/model/dcae/DcaeInventoryCache.java
@@ -53,7 +53,7 @@ public class DcaeInventoryCache {
}
public Set<String> getAllLoopIds() {
- return this.blueprintsMap.keySet();
+ return blueprintsMap.keySet();
}
public Set<DcaeInventoryResponse> getAllBlueprintsPerLoopId(String loopId) {
diff --git a/runtime/src/main/java/org/onap/policy/clamp/clds/tosca/update/UnknownComponentException.java b/runtime/src/main/java/org/onap/policy/clamp/clds/tosca/update/UnknownComponentException.java
index fb684b57b..d1d45a37d 100644
--- a/runtime/src/main/java/org/onap/policy/clamp/clds/tosca/update/UnknownComponentException.java
+++ b/runtime/src/main/java/org/onap/policy/clamp/clds/tosca/update/UnknownComponentException.java
@@ -24,6 +24,8 @@
package org.onap.policy.clamp.clds.tosca.update;
public class UnknownComponentException extends Exception {
+ private static final long serialVersionUID = 1187337836071750628L;
+
public UnknownComponentException(String nameEntry) {
this.getWrongName(nameEntry);
}
diff --git a/runtime/src/main/java/org/onap/policy/clamp/clds/tosca/update/elements/Constraint.java b/runtime/src/main/java/org/onap/policy/clamp/clds/tosca/update/elements/Constraint.java
index 651456ca6..bdf9af08b 100644
--- a/runtime/src/main/java/org/onap/policy/clamp/clds/tosca/update/elements/Constraint.java
+++ b/runtime/src/main/java/org/onap/policy/clamp/clds/tosca/update/elements/Constraint.java
@@ -31,6 +31,8 @@ import java.util.Map.Entry;
import org.onap.policy.clamp.clds.tosca.update.templates.JsonTemplate;
public class Constraint {
+ private static final String ARRAY = "array";
+ private static final String STRING = "string";
private LinkedHashMap<String, Object> constraints;
private JsonTemplate jsonTemplate;
@@ -43,7 +45,7 @@ public class Constraint {
/**
* Deploy the linkedhashmap which contains the constraints, to extract them one to one.
*
- * @param jsonSchema The json Schema
+ * @param jsonSchema The json Schema
* @param typeProperty The ype property
* @return the json object
*/
@@ -57,14 +59,14 @@ public class Constraint {
/**
* Each case of Tosca constraints below parse specifically the field in the JsonObject.
*
- * @param jsonSchema Json Schema
- * @param nameConstraint Name constraint
+ * @param jsonSchema Json Schema
+ * @param nameConstraint Name constraint
* @param valueConstraint value constraint
- * @param typeProperty Type Property
+ * @param typeProperty Type Property
*/
@SuppressWarnings("unchecked")
public void parseConstraint(JsonObject jsonSchema, String nameConstraint, Object valueConstraint,
- String typeProperty) {
+ String typeProperty) {
switch (nameConstraint) {
case "equal":
checkTemplateField("const", jsonSchema, valueConstraint);
@@ -100,7 +102,7 @@ public class Constraint {
String[] maxtab = nameConstraint.split("_");
this.getLimitValue(jsonSchema, valueConstraint, typeProperty, maxtab[0]);
break;
- default://valid_value
+ default:// valid_value
this.getValueArray(jsonSchema, valueConstraint, typeProperty);
break;
}
@@ -110,17 +112,17 @@ public class Constraint {
/**
* To be done.
*
- * @param jsonSchema json schema
- * @param fieldValue field value
+ * @param jsonSchema json schema
+ * @param fieldValue field value
* @param typeProperty For the complex components, get a specific number of items/properties
*/
public void getSpecificLength(JsonObject jsonSchema, Object fieldValue, String typeProperty) {
switch (typeProperty.toLowerCase()) {
- case "string":
+ case STRING:
checkTemplateField("minLength", jsonSchema, fieldValue);
checkTemplateField("maxLength", jsonSchema, fieldValue);
break;
- case "array":
+ case ARRAY:
if (fieldValue.equals(1) && jsonTemplate.hasFields("uniqueItems")) {
jsonSchema.addProperty("uniqueItems", true);
} else {
@@ -139,48 +141,46 @@ public class Constraint {
/**
* To be done.
*
- * @param jsonSchema json schema
- * @param fieldValue field value
+ * @param jsonSchema json schema
+ * @param fieldValue field value
* @param typeProperty type property
- * @param side Get the limits fieldValue for the properties : depend of the type of the component
+ * @param side Get the limits fieldValue for the properties : depend of the type of the component
*/
public void getLimitValue(JsonObject jsonSchema, Object fieldValue, String typeProperty, String side) {
- switch (typeProperty) {
- case "string":
- if (side.equals("min")) {
- checkTemplateField("minLength", jsonSchema, fieldValue);
- } else {
- checkTemplateField("maxLength", jsonSchema, fieldValue);
- }
- break;
- default:// Array
- if (side.equals("min")) {
- checkTemplateField("minItems", jsonSchema, fieldValue);
- } else {
- checkTemplateField("maxItems", jsonSchema, fieldValue);
- }
- break;
+ if (typeProperty.equals(STRING)) {
+ if (side.equals("min")) {
+ checkTemplateField("minLength", jsonSchema, fieldValue);
+ } else {
+ checkTemplateField("maxLength", jsonSchema, fieldValue);
+ }
+ } else {
+ if (side.equals("min")) {
+ checkTemplateField("minItems", jsonSchema, fieldValue);
+ } else {
+ checkTemplateField("maxItems", jsonSchema, fieldValue);
+ }
}
-
}
/**
* To be done.
*
- * @param jsonSchema Json schema
- * @param fieldValue field value
+ * @param jsonSchema Json schema
+ * @param fieldValue field value
* @param typeProperty Get as Enum the valid values for the property
*/
public void getValueArray(JsonObject jsonSchema, Object fieldValue, String typeProperty) {
if (jsonTemplate.hasFields("enum")) {
- JsonArray enumeration = new JsonArray();
- if (typeProperty.equals("string") || typeProperty.equals("String")) {
+ var enumeration = new JsonArray();
+ if (typeProperty.equals(STRING) || typeProperty.equals("String")) {
+ @SuppressWarnings("unchecked")
ArrayList<String> arrayValues = (ArrayList<String>) fieldValue;
for (String arrayItem : arrayValues) {
enumeration.add(arrayItem);
}
jsonSchema.add("enum", enumeration);
} else {
+ @SuppressWarnings("unchecked")
ArrayList<Number> arrayValues = (ArrayList<Number>) fieldValue;
for (Number arrayItem : arrayValues) {
enumeration.add(arrayItem);
@@ -193,7 +193,7 @@ public class Constraint {
/**
* To be done.
*
- * @param field Field
+ * @param field Field
* @param jsonSchema Json schema
* @param fieldValue Simple way to avoid code duplication
*/
@@ -219,4 +219,4 @@ public class Constraint {
}
}
-} \ No newline at end of file
+}
diff --git a/runtime/src/main/java/org/onap/policy/clamp/clds/tosca/update/elements/ToscaElementProperty.java b/runtime/src/main/java/org/onap/policy/clamp/clds/tosca/update/elements/ToscaElementProperty.java
index 4db8b0356..77d920860 100644
--- a/runtime/src/main/java/org/onap/policy/clamp/clds/tosca/update/elements/ToscaElementProperty.java
+++ b/runtime/src/main/java/org/onap/policy/clamp/clds/tosca/update/elements/ToscaElementProperty.java
@@ -27,6 +27,7 @@ import com.google.gson.JsonArray;
import com.google.gson.JsonObject;
import java.util.ArrayList;
import java.util.LinkedHashMap;
+import java.util.List;
import org.onap.policy.clamp.clds.tosca.update.templates.JsonTemplate;
public class ToscaElementProperty {
@@ -40,7 +41,7 @@ public class ToscaElementProperty {
/**
* Constructor.
*
- * @param name the name
+ * @param name the name
* @param items the items
*/
public ToscaElementProperty(String name, LinkedHashMap<String, Object> items) {
@@ -69,9 +70,10 @@ public class ToscaElementProperty {
* For each primitive value, requires to get each field Value and cast it and add it in a Json.
*
* @param fieldsContent field
- * @param fieldName field
- * @param value value
+ * @param fieldName field
+ * @param value value
*/
+ @SuppressWarnings("unchecked")
public void addFieldToJson(JsonObject fieldsContent, String fieldName, Object value) {
if (value != null) {
String typeValue = value.getClass().getSimpleName();
@@ -89,7 +91,7 @@ public class ToscaElementProperty {
fieldsContent.addProperty(fieldName, (Integer) value);
break;
default:
- fieldsContent.add(fieldName, parseArray((ArrayList) value));
+ fieldsContent.add(fieldName, parseArray((ArrayList<Object>) value));
break;
}
}
@@ -101,31 +103,29 @@ public class ToscaElementProperty {
* @param arrayProperties array pro
* @return a json array
*/
- public JsonArray parseArray(ArrayList<Object> arrayProperties) {
- JsonArray arrayContent = new JsonArray();
+ public JsonArray parseArray(List<Object> arrayProperties) {
ArrayList<Object> arrayComponent = new ArrayList<>();
for (Object itemArray : arrayProperties) {
arrayComponent.add(itemArray);
}
- ArrayField af = new ArrayField(arrayComponent);
- arrayContent = af.deploy();
- return arrayContent;
+ var af = new ArrayField(arrayComponent);
+ return af.deploy();
}
/**
* Create an instance of Constraint, to extract the values and add it to the Json (according to the type
- * * of the current property).
+ * * of the current property).
*
* @param json a json
* @param constraints constraints
* @param jsonTemplate template
*/
@SuppressWarnings("unchecked")
- public void addConstraintsAsJson(JsonObject json, ArrayList<Object> constraints, JsonTemplate jsonTemplate) {
+ public void addConstraintsAsJson(JsonObject json, List<Object> constraints, JsonTemplate jsonTemplate) {
for (Object constraint : constraints) {
if (constraint instanceof LinkedHashMap) {
LinkedHashMap<String, Object> valueConstraint = (LinkedHashMap<String, Object>) constraint;
- Constraint constraintParser = new Constraint(valueConstraint, jsonTemplate);
+ var constraintParser = new Constraint(valueConstraint, jsonTemplate);
constraintParser.deployConstraints(json, (String) getItems().get("type"));
}
}
diff --git a/runtime/src/main/java/org/onap/policy/clamp/clds/tosca/update/parser/ToscaConverterToJsonSchema.java b/runtime/src/main/java/org/onap/policy/clamp/clds/tosca/update/parser/ToscaConverterToJsonSchema.java
index 74fd8e5fd..1d5ed26e0 100644
--- a/runtime/src/main/java/org/onap/policy/clamp/clds/tosca/update/parser/ToscaConverterToJsonSchema.java
+++ b/runtime/src/main/java/org/onap/policy/clamp/clds/tosca/update/parser/ToscaConverterToJsonSchema.java
@@ -45,6 +45,20 @@ import org.onap.policy.clamp.loop.service.Service;
* @see org.onap.policy.clamp.clds.tosca.update.parser.ToscaConverterToJsonSchema#getJsonSchemaOfToscaElement
*/
public class ToscaConverterToJsonSchema {
+ private static final String ARRAY = "array";
+ private static final String CONSTRAINTS = "constraints";
+ private static final String DESCRIPTION = "description";
+ private static final String ENTRY_SCHEMA = "entry_schema";
+ private static final String FORMAT = "format";
+ private static final String LIST = "list";
+ private static final String MAP = "map";
+ private static final String METADATA = "metadata";
+ private static final String OBJECT = "object";
+ private static final String PROPERTIES = "properties";
+ private static final String REQUIRED = "required";
+ private static final String TITLE = "title";
+ private static final String TYPE = "type";
+
private LinkedHashMap<String, ToscaElement> components;
private LinkedHashMap<String, JsonTemplate> templates;
@@ -55,14 +69,14 @@ public class ToscaConverterToJsonSchema {
/**
* Constructor.
*
- * @param toscaElementsMap All the tosca elements found (policy type + data types + native tosca datatypes)
+ * @param toscaElementsMap All the tosca elements found (policy type + data types + native tosca datatypes)
* @param jsonSchemaTemplates All Json schema templates to use
- * @param metadataParser The metadata parser to use for metadata section
- * @param serviceModel The service model for clamp enrichment
+ * @param metadataParser The metadata parser to use for metadata section
+ * @param serviceModel The service model for clamp enrichment
*/
public ToscaConverterToJsonSchema(LinkedHashMap<String, ToscaElement> toscaElementsMap,
- LinkedHashMap<String, JsonTemplate> jsonSchemaTemplates,
- ToscaMetadataParser metadataParser, Service serviceModel) {
+ LinkedHashMap<String, JsonTemplate> jsonSchemaTemplates, ToscaMetadataParser metadataParser,
+ Service serviceModel) {
this.components = toscaElementsMap;
this.templates = jsonSchemaTemplates;
this.metadataParser = metadataParser;
@@ -87,23 +101,21 @@ public class ToscaConverterToJsonSchema {
*/
public JsonObject getFieldAsObject(ToscaElement toscaElement) {
- JsonObject globalFields = new JsonObject();
- if (templates.get("object").hasFields("title")) {
- globalFields.addProperty("title", toscaElement.getName());
+ var globalFields = new JsonObject();
+ if (templates.get(OBJECT).hasFields(TITLE)) {
+ globalFields.addProperty(TITLE, toscaElement.getName());
}
- if (templates.get("object").hasFields("type")) {
- globalFields.addProperty("type", "object");
+ if (templates.get(OBJECT).hasFields(TYPE)) {
+ globalFields.addProperty(TYPE, OBJECT);
}
- if (templates.get("object").hasFields("description")) {
- if (toscaElement.getDescription() != null) {
- globalFields.addProperty("description", toscaElement.getDescription());
- }
+ if (templates.get(OBJECT).hasFields(DESCRIPTION) && (toscaElement.getDescription() != null)) {
+ globalFields.addProperty(DESCRIPTION, toscaElement.getDescription());
}
- if (templates.get("object").hasFields("required")) {
- globalFields.add("required", this.getRequirements(toscaElement.getName()));
+ if (templates.get(OBJECT).hasFields(REQUIRED)) {
+ globalFields.add(REQUIRED, this.getRequirements(toscaElement.getName()));
}
- if (templates.get("object").hasFields("properties")) {
- globalFields.add("properties", this.deploy(toscaElement.getName()));
+ if (templates.get(OBJECT).hasFields(PROPERTIES)) {
+ globalFields.add(PROPERTIES, this.deploy(toscaElement.getName()));
}
return globalFields;
}
@@ -115,18 +127,18 @@ public class ToscaConverterToJsonSchema {
* @return a json array
*/
public JsonArray getRequirements(String nameComponent) {
- JsonArray requirements = new JsonArray();
+ var requirements = new JsonArray();
ToscaElement toParse = components.get(nameComponent);
- //Check for a father component, and launch the same process
+ // Check for a father component, and launch the same process
if (!"tosca.datatypes.Root".equals(toParse.getDerivedFrom())
&& !"tosca.policies.Root".equals(toParse.getDerivedFrom())) {
requirements.addAll(getRequirements(toParse.getDerivedFrom()));
}
- //Each property is checked, and add to the requirement array if it's required
+ // Each property is checked, and add to the requirement array if it's required
Collection<ToscaElementProperty> properties = toParse.getProperties().values();
for (ToscaElementProperty toscaElementProperty : properties) {
- if (toscaElementProperty.getItems().containsKey("required")
- && toscaElementProperty.getItems().get("required").equals(true)) {
+ if (toscaElementProperty.getItems().containsKey(REQUIRED)
+ && toscaElementProperty.getItems().get(REQUIRED).equals(true)) {
requirements.add(toscaElementProperty.getName());
}
}
@@ -141,19 +153,19 @@ public class ToscaConverterToJsonSchema {
* @return a json object
*/
public JsonObject deploy(String nameComponent) {
- JsonObject jsonSchema = new JsonObject();
+ var jsonSchema = new JsonObject();
ToscaElement toParse = components.get(nameComponent);
- //Check for a father component, and launch the same process
+ // Check for a father component, and launch the same process
if (!toParse.getDerivedFrom().equals("tosca.datatypes.Root")
&& !toParse.getDerivedFrom().equals("tosca.policies.Root")) {
jsonSchema = this.getParent(toParse.getDerivedFrom());
}
- //For each component property, check if its a complex properties (a component) or not. In that case,
- //launch the analyse of the property.
+ // For each component property, check if its a complex properties (a component) or not. In that case,
+ // launch the analyse of the property.
for (Entry<String, ToscaElementProperty> property : toParse.getProperties().entrySet()) {
- if (getToscaElement((String) property.getValue().getItems().get("type")) != null) {
+ if (getToscaElement((String) property.getValue().getItems().get(TYPE)) != null) {
jsonSchema.add(property.getValue().getName(),
- this.getJsonSchemaOfToscaElement((String) property.getValue().getItems().get("type")));
+ this.getJsonSchemaOfToscaElement((String) property.getValue().getItems().get(TYPE)));
} else {
jsonSchema.add(property.getValue().getName(), this.complexParse(property.getValue()));
}
@@ -179,42 +191,42 @@ public class ToscaConverterToJsonSchema {
*/
@SuppressWarnings("unchecked")
public JsonObject complexParse(ToscaElementProperty toscaElementProperty) {
- JsonObject propertiesInJson = new JsonObject();
+ var propertiesInJson = new JsonObject();
JsonTemplate currentPropertyJsonTemplate;
- String typeProperty = (String) toscaElementProperty.getItems().get("type");
- if (typeProperty.toLowerCase().equals("list") || typeProperty.toLowerCase().equals("map")) {
- currentPropertyJsonTemplate = templates.get("object");
+ String typeProperty = (String) toscaElementProperty.getItems().get(TYPE);
+ if (LIST.equalsIgnoreCase(typeProperty) || MAP.equalsIgnoreCase(typeProperty)) {
+ currentPropertyJsonTemplate = templates.get(OBJECT);
} else {
- String propertyType = (String) toscaElementProperty.getItems().get("type");
+ String propertyType = (String) toscaElementProperty.getItems().get(TYPE);
currentPropertyJsonTemplate = templates.get(propertyType.toLowerCase());
}
- //Each "special" field is analysed, and has a specific treatment
+ // Each "special" field is analysed, and has a specific treatment
for (String propertyField : toscaElementProperty.getItems().keySet()) {
switch (propertyField) {
- case "type":
+ case TYPE:
if (currentPropertyJsonTemplate.hasFields(propertyField)) {
String fieldtype = (String) toscaElementProperty.getItems().get(propertyField);
switch (fieldtype.toLowerCase()) {
- case "list":
- propertiesInJson.addProperty("type", "array");
+ case LIST:
+ propertiesInJson.addProperty(TYPE, ARRAY);
break;
- case "map":
- propertiesInJson.addProperty("type", "object");
+ case MAP:
+ propertiesInJson.addProperty(TYPE, OBJECT);
break;
case "scalar-unit.time":
case "scalar-unit.frequency":
case "scalar-unit.size":
- propertiesInJson.addProperty("type", "string");
+ propertiesInJson.addProperty(TYPE, "string");
break;
case "timestamp":
- propertiesInJson.addProperty("type", "string");
- propertiesInJson.addProperty("format", "date-time");
+ propertiesInJson.addProperty(TYPE, "string");
+ propertiesInJson.addProperty(FORMAT, "date-time");
break;
case "float":
- propertiesInJson.addProperty("type", "number");
+ propertiesInJson.addProperty(TYPE, "number");
break;
case "range":
- propertiesInJson.addProperty("type", "integer");
+ propertiesInJson.addProperty(TYPE, "integer");
if (!checkConstraintPresence(toscaElementProperty, "greater_than")
&& currentPropertyJsonTemplate.hasFields("exclusiveMinimum")) {
propertiesInJson.addProperty("exclusiveMinimum", false);
@@ -225,68 +237,58 @@ public class ToscaConverterToJsonSchema {
}
break;
default:
- propertiesInJson.addProperty("type", currentPropertyJsonTemplate.getName());
+ propertiesInJson.addProperty(TYPE, currentPropertyJsonTemplate.getName());
break;
}
}
break;
- case "metadata":
+ case METADATA:
if (metadataParser != null) {
metadataParser.processAllMetadataElement(toscaElementProperty, serviceModel).entrySet()
- .forEach((jsonEntry) -> {
- propertiesInJson.add(jsonEntry.getKey(),
- jsonEntry.getValue());
-
- });
+ .forEach(jsonEntry -> propertiesInJson.add(jsonEntry.getKey(), jsonEntry.getValue()));
}
break;
- case "constraints":
+ case CONSTRAINTS:
toscaElementProperty.addConstraintsAsJson(propertiesInJson,
- (ArrayList<Object>) toscaElementProperty.getItems().get("constraints"),
+ (ArrayList<Object>) toscaElementProperty.getItems().get(CONSTRAINTS),
currentPropertyJsonTemplate);
break;
- case "entry_schema":
- //Here, a way to check if entry is a component (datatype) or a simple string
- if (getToscaElement(this.extractSpecificFieldFromMap(toscaElementProperty, "entry_schema"))
- != null) {
- String nameComponent = this.extractSpecificFieldFromMap(toscaElementProperty, "entry_schema");
- ToscaConverterToJsonSchema child = new ToscaConverterToJsonSchema(components, templates,
- metadataParser, serviceModel);
- JsonObject propertiesContainer = new JsonObject();
+ case ENTRY_SCHEMA:
+ // Here, a way to check if entry is a component (datatype) or a simple string
+ if (getToscaElement(this.extractSpecificFieldFromMap(toscaElementProperty, ENTRY_SCHEMA)) != null) {
+ String nameComponent = this.extractSpecificFieldFromMap(toscaElementProperty, ENTRY_SCHEMA);
+ var child = new ToscaConverterToJsonSchema(components, templates, metadataParser, serviceModel);
+ var propertiesContainer = new JsonObject();
- switch ((String) toscaElementProperty.getItems().get("type")) {
- case "map": // Get it as an object
- JsonObject componentAsProperty = child.getJsonSchemaOfToscaElement(nameComponent);
- propertiesContainer.add(nameComponent, componentAsProperty);
- if (currentPropertyJsonTemplate.hasFields("properties")) {
- propertiesInJson.add("properties", propertiesContainer);
- }
- break;
- default://list : get it as an Array
- JsonObject componentAsItem = child.getJsonSchemaOfToscaElement(nameComponent);
- if (currentPropertyJsonTemplate.hasFields("properties")) {
- propertiesInJson.add("items", componentAsItem);
- propertiesInJson.addProperty("format", "tabs-top");
- }
- break;
+ if (((String) toscaElementProperty.getItems().get(TYPE)).equals(MAP)) {
+ JsonObject componentAsProperty = child.getJsonSchemaOfToscaElement(nameComponent);
+ propertiesContainer.add(nameComponent, componentAsProperty);
+ if (currentPropertyJsonTemplate.hasFields(PROPERTIES)) {
+ propertiesInJson.add(PROPERTIES, propertiesContainer);
+ }
+ } else {
+ JsonObject componentAsItem = child.getJsonSchemaOfToscaElement(nameComponent);
+ if (currentPropertyJsonTemplate.hasFields(PROPERTIES)) {
+ propertiesInJson.add("items", componentAsItem);
+ propertiesInJson.addProperty(FORMAT, "tabs-top");
+ }
}
-
- } else if (toscaElementProperty.getItems().get("type").equals("list")) {
+ } else if (toscaElementProperty.getItems().get(TYPE).equals(LIST)) {
// Native cases
- JsonObject itemContainer = new JsonObject();
+ var itemContainer = new JsonObject();
String valueInEntrySchema =
- this.extractSpecificFieldFromMap(toscaElementProperty, "entry_schema");
- itemContainer.addProperty("type", valueInEntrySchema);
+ this.extractSpecificFieldFromMap(toscaElementProperty, ENTRY_SCHEMA);
+ itemContainer.addProperty(TYPE, valueInEntrySchema);
propertiesInJson.add("items", itemContainer);
- propertiesInJson.addProperty("format", "tabs-top");
+ propertiesInJson.addProperty(FORMAT, "tabs-top");
}
// MAP Case, for now nothing
break;
default:
- //Each classical field : type, description, default..
- if (currentPropertyJsonTemplate.hasFields(propertyField) && !propertyField.equals("required")) {
+ // Each classical field : type, description, default..
+ if (currentPropertyJsonTemplate.hasFields(propertyField) && !propertyField.equals(REQUIRED)) {
toscaElementProperty.addFieldToJson(propertiesInJson, propertyField,
toscaElementProperty.getItems().get(propertyField));
}
@@ -319,32 +321,32 @@ public class ToscaConverterToJsonSchema {
* Simple method to extract quickly a type field from particular property item.
*
* @param toscaElementProperty the property
- * @param fieldName the fieldname
+ * @param fieldName the fieldname
* @return a string
*/
@SuppressWarnings("unchecked")
public String extractSpecificFieldFromMap(ToscaElementProperty toscaElementProperty, String fieldName) {
LinkedHashMap<String, String> entrySchemaFields =
(LinkedHashMap<String, String>) toscaElementProperty.getItems().get(fieldName);
- return entrySchemaFields.get("type");
+ return entrySchemaFields.get(TYPE);
}
/**
* Check if a constraint, for a specific property, is there.
*
* @param toscaElementProperty property
- * @param nameConstraint name constraint
+ * @param nameConstraint name constraint
* @return a flag boolean
*/
public boolean checkConstraintPresence(ToscaElementProperty toscaElementProperty, String nameConstraint) {
- boolean presentConstraint = false;
- if (toscaElementProperty.getItems().containsKey("constraints")) {
- ArrayList<Object> constraints = (ArrayList) toscaElementProperty.getItems().get("constraints");
+ var presentConstraint = false;
+ if (toscaElementProperty.getItems().containsKey(CONSTRAINTS)) {
+ @SuppressWarnings("unchecked")
+ ArrayList<Object> constraints = (ArrayList<Object>) toscaElementProperty.getItems().get(CONSTRAINTS);
for (Object constraint : constraints) {
- if (constraint instanceof LinkedHashMap) {
- if (((LinkedHashMap) constraint).containsKey(nameConstraint)) {
- presentConstraint = true;
- }
+ if (constraint instanceof LinkedHashMap
+ && ((LinkedHashMap<?, ?>) constraint).containsKey(nameConstraint)) {
+ presentConstraint = true;
}
}
}
diff --git a/runtime/src/main/java/org/onap/policy/clamp/clds/tosca/update/parser/ToscaElementParser.java b/runtime/src/main/java/org/onap/policy/clamp/clds/tosca/update/parser/ToscaElementParser.java
index a3dd9c3e1..04d577f86 100644
--- a/runtime/src/main/java/org/onap/policy/clamp/clds/tosca/update/parser/ToscaElementParser.java
+++ b/runtime/src/main/java/org/onap/policy/clamp/clds/tosca/update/parser/ToscaElementParser.java
@@ -30,6 +30,11 @@ import org.onap.policy.clamp.clds.tosca.update.elements.ToscaElementProperty;
import org.yaml.snakeyaml.Yaml;
public class ToscaElementParser {
+ private static final String DERIVED_FROM = "derived_from";
+ private static final String DESCRIPTION = "description";
+ private static final String PROPERTIES = "properties";
+ private static final String TYPE_VERSION = "type_version";
+
/**
* Constructor.
*/
@@ -37,17 +42,19 @@ public class ToscaElementParser {
}
private static LinkedHashMap<String, Object> searchAllDataTypesAndPolicyTypes(String toscaYaml) {
+ @SuppressWarnings("unchecked")
LinkedHashMap<String, LinkedHashMap<String, Object>> file =
(LinkedHashMap<String, LinkedHashMap<String, Object>>) new Yaml().load(toscaYaml);
LinkedHashMap<String, Object> allDataTypesFound = file.get("data_types");
LinkedHashMap<String, Object> allPolicyTypesFound = file.get("policy_types");
- LinkedHashMap<String, Object> allItemsFound = new LinkedHashMap<>();
+ LinkedHashMap<String, Object> allItemsFound;
// Put the policies and datatypes in the same collection
allItemsFound = (allDataTypesFound == null) ? (new LinkedHashMap<>()) : allDataTypesFound;
allItemsFound.putAll(allPolicyTypesFound == null ? new LinkedHashMap<>() : allPolicyTypesFound);
return allItemsFound;
}
+ @SuppressWarnings("unchecked")
private static LinkedHashMap<String, Object> searchAllNativeToscaDataTypes(String toscaNativeYaml) {
return ((LinkedHashMap<String, LinkedHashMap<String, Object>>) new Yaml().load(toscaNativeYaml))
.get("data_types");
@@ -57,12 +64,11 @@ public class ToscaElementParser {
* Yaml Parse gets raw policies and datatypes, in different sections : necessary to extract
* all entities and put them at the same level.
*
- * @param toscaYaml the tosca model content
+ * @param toscaYaml the tosca model content
* @param nativeToscaYaml the tosca native datatype content
* @return a map of Tosca Element containing all tosca elements found (policy types and datatypes)
*/
- public static LinkedHashMap<String, ToscaElement> searchAllToscaElements(String toscaYaml,
- String nativeToscaYaml) {
+ public static LinkedHashMap<String, ToscaElement> searchAllToscaElements(String toscaYaml, String nativeToscaYaml) {
LinkedHashMap<String, Object> allItemsFound = searchAllDataTypesAndPolicyTypes(toscaYaml);
allItemsFound.putAll(searchAllNativeToscaDataTypes(nativeToscaYaml));
return parseAllItemsFound(allItemsFound);
@@ -73,25 +79,25 @@ public class ToscaElementParser {
*
* @param allMaps maps
*/
+ @SuppressWarnings("unchecked")
private static LinkedHashMap<String, ToscaElement> parseAllItemsFound(LinkedHashMap<String, Object> allMaps) {
- LinkedHashMap<String, ToscaElement> allItemsFound = new LinkedHashMap<String, ToscaElement>();
- //Component creations, from the file maps
+ LinkedHashMap<String, ToscaElement> allItemsFound = new LinkedHashMap<>();
+ // Component creations, from the file maps
for (Entry<String, Object> itemToParse : allMaps.entrySet()) {
LinkedHashMap<String, Object> componentBody = (LinkedHashMap<String, Object>) itemToParse.getValue();
- ToscaElement toscaElement =
- new ToscaElement(itemToParse.getKey(), (String) componentBody.get("derived_from"),
- (String) componentBody.get("description"));
- //If policy, version and type_version :
- if (componentBody.get("type_version") != null) {
- toscaElement.setVersion((String) componentBody.get("type_version"));
- toscaElement.setTypeVersion((String) componentBody.get("type_version"));
+ var toscaElement = new ToscaElement(itemToParse.getKey(), (String) componentBody.get(DERIVED_FROM),
+ (String) componentBody.get(DESCRIPTION));
+ // If policy, version and type_version :
+ if (componentBody.get(TYPE_VERSION) != null) {
+ toscaElement.setVersion((String) componentBody.get(TYPE_VERSION));
+ toscaElement.setTypeVersion((String) componentBody.get(TYPE_VERSION));
}
- //Properties creation, from the map
- if (componentBody.get("properties") != null) {
- LinkedHashMap<String, Object> properties =
- (LinkedHashMap<String, Object>) componentBody.get("properties");
- for (Entry<String, Object> itemToProperty : properties.entrySet()) {
- ToscaElementProperty toscaElementProperty = new ToscaElementProperty(itemToProperty.getKey(),
+ // Properties creation, from the map
+ if (componentBody.get(PROPERTIES) != null) {
+ LinkedHashMap<String, Object> foundProperties =
+ (LinkedHashMap<String, Object>) componentBody.get(PROPERTIES);
+ for (Entry<String, Object> itemToProperty : foundProperties.entrySet()) {
+ var toscaElementProperty = new ToscaElementProperty(itemToProperty.getKey(),
(LinkedHashMap<String, Object>) itemToProperty.getValue());
toscaElement.addProperties(toscaElementProperty);
}
diff --git a/runtime/src/main/java/org/onap/policy/clamp/clds/tosca/update/parser/metadata/ToscaMetadataParserWithDictionarySupport.java b/runtime/src/main/java/org/onap/policy/clamp/clds/tosca/update/parser/metadata/ToscaMetadataParserWithDictionarySupport.java
index 4e55263fb..2a886df3c 100644
--- a/runtime/src/main/java/org/onap/policy/clamp/clds/tosca/update/parser/metadata/ToscaMetadataParserWithDictionarySupport.java
+++ b/runtime/src/main/java/org/onap/policy/clamp/clds/tosca/update/parser/metadata/ToscaMetadataParserWithDictionarySupport.java
@@ -63,10 +63,11 @@ public class ToscaMetadataParserWithDictionarySupport implements ToscaMetadataPa
}
}
+ @SuppressWarnings("unchecked")
private static JsonObject parseMetadataPossibleValues(LinkedHashMap<String, Object> childNodeMap,
DictionaryService dictionaryService, Service serviceModel,
ToscaMetadataExecutor toscaMetadataExecutor) {
- JsonObject childObject = new JsonObject();
+ var childObject = new JsonObject();
if (childNodeMap.containsKey(ToscaSchemaConstants.METADATA)
&& childNodeMap.get(ToscaSchemaConstants.METADATA) != null) {
((LinkedHashMap<String, Object>) childNodeMap.get(ToscaSchemaConstants.METADATA)).forEach((key,
@@ -108,14 +109,14 @@ public class ToscaMetadataParserWithDictionarySupport implements ToscaMetadataPa
if (dictionaryKeyArray.length == 2) {
dictionaryElements = new ArrayList<>(dictionaryService.getDictionary(dictionaryKeyArray[0])
.getDictionaryElements());
- JsonArray subDictionaryNames = new JsonArray();
+ var subDictionaryNames = new JsonArray();
new ArrayList<DictionaryElement>(dictionaryService.getDictionary(dictionaryKeyArray[1])
.getDictionaryElements()).forEach(elem -> subDictionaryNames.add(elem.getShortName()));
- JsonArray jsonArray = new JsonArray();
+ var jsonArray = new JsonArray();
Optional.of(dictionaryElements).get().forEach(c -> {
- JsonObject jsonObject = new JsonObject();
+ var jsonObject = new JsonObject();
jsonObject.addProperty(JsonEditorSchemaConstants.TYPE, getJsonType(c.getType()));
if (c.getType() != null
&& c.getType().equalsIgnoreCase(ToscaSchemaConstants.TYPE_STRING)) {
@@ -128,7 +129,7 @@ public class ToscaMetadataParserWithDictionarySupport implements ToscaMetadataPa
jsonArray.add(jsonObject);
});
- JsonObject filterObject = new JsonObject();
+ var filterObject = new JsonObject();
filterObject.add(JsonEditorSchemaConstants.FILTERS, jsonArray);
childObject.addProperty(JsonEditorSchemaConstants.TYPE,
@@ -149,8 +150,8 @@ public class ToscaMetadataParserWithDictionarySupport implements ToscaMetadataPa
*/
private static void processSimpleDictionaryElements(String[] dictionaryKeyArray, JsonObject childObject,
DictionaryService dictionaryService) {
- JsonArray dictionaryNames = new JsonArray();
- JsonArray dictionaryFullNames = new JsonArray();
+ var dictionaryNames = new JsonArray();
+ var dictionaryFullNames = new JsonArray();
dictionaryService.getDictionary(dictionaryKeyArray[0]).getDictionaryElements().forEach(c -> {
// Json type will be translated before Policy creation
if (c.getType() != null && !c.getType().equalsIgnoreCase("json")) {
@@ -167,7 +168,7 @@ public class ToscaMetadataParserWithDictionarySupport implements ToscaMetadataPa
}
// Add Enum titles for generated translated values during JSON instance
// generation
- JsonObject enumTitles = new JsonObject();
+ var enumTitles = new JsonObject();
enumTitles.add(JsonEditorSchemaConstants.ENUM_TITLES, dictionaryNames);
if (childObject.get(JsonEditorSchemaConstants.OPTIONS) != null) {
childObject.get(JsonEditorSchemaConstants.OPTIONS).getAsJsonArray().add(enumTitles);
diff --git a/runtime/src/main/java/org/onap/policy/clamp/clds/tosca/update/templates/JsonTemplateManager.java b/runtime/src/main/java/org/onap/policy/clamp/clds/tosca/update/templates/JsonTemplateManager.java
index 1813d0786..af7f8cc54 100644
--- a/runtime/src/main/java/org/onap/policy/clamp/clds/tosca/update/templates/JsonTemplateManager.java
+++ b/runtime/src/main/java/org/onap/policy/clamp/clds/tosca/update/templates/JsonTemplateManager.java
@@ -44,9 +44,9 @@ public class JsonTemplateManager {
/**
* Constructor.
*
- * @param toscaYamlContent Policy Tosca Yaml content as string
+ * @param toscaYamlContent Policy Tosca Yaml content as string
* @param nativeToscaDatatypes The tosca yaml with tosca native datatypes
- * @param jsonSchemaTemplates template properties as string
+ * @param jsonSchemaTemplates template properties as string
*/
public JsonTemplateManager(String toscaYamlContent, String nativeToscaDatatypes, String jsonSchemaTemplates) {
if (toscaYamlContent != null && !toscaYamlContent.isEmpty()) {
@@ -57,7 +57,7 @@ public class JsonTemplateManager {
}
}
- //GETTERS & SETTERS
+ // GETTERS & SETTERS
public LinkedHashMap<String, ToscaElement> getToscaElements() {
return toscaElements;
}
@@ -77,12 +77,12 @@ public class JsonTemplateManager {
/**
* Add a template.
*
- * @param name name
+ * @param name name
* @param jsonTemplateFields fields
*/
public void addTemplate(String name, List<JsonTemplateField> jsonTemplateFields) {
- JsonTemplate jsonTemplate = new JsonTemplate(name, jsonTemplateFields);
- //If it is true, the operation does not have any interest :
+ var jsonTemplate = new JsonTemplate(name, jsonTemplateFields);
+ // If it is true, the operation does not have any interest :
// replace OR put two different object with the same body
if (!jsonSchemaTemplates.containsKey(jsonTemplate.getName()) || !this.hasTemplate(jsonTemplate)) {
this.jsonSchemaTemplates.put(jsonTemplate.getName(), jsonTemplate);
@@ -101,11 +101,11 @@ public class JsonTemplateManager {
/**
* Update Template : adding with true flag, removing with false.
*
- * @param nameTemplate name template
+ * @param nameTemplate name template
* @param jsonTemplateField field name
- * @param operation operation
+ * @param operation operation
*/
- public void updateTemplate(String nameTemplate, JsonTemplateField jsonTemplateField, Boolean operation) {
+ public void updateTemplate(String nameTemplate, JsonTemplateField jsonTemplateField, boolean operation) {
// Operation = true && field is not present => add Field
if (operation
&& !this.jsonSchemaTemplates.get(nameTemplate).getJsonTemplateFields().contains(jsonTemplateField)) {
@@ -124,10 +124,10 @@ public class JsonTemplateManager {
* @return a boolean
*/
public boolean hasTemplate(JsonTemplate jsonTemplate) {
- boolean duplicateTemplate = false;
+ var duplicateTemplate = false;
Collection<String> templatesName = jsonSchemaTemplates.keySet();
if (templatesName.contains(jsonTemplate.getName())) {
- JsonTemplate existingJsonTemplate = jsonSchemaTemplates.get(jsonTemplate.getName());
+ var existingJsonTemplate = jsonSchemaTemplates.get(jsonTemplate.getName());
duplicateTemplate = existingJsonTemplate.checkFields(jsonTemplate);
}
return duplicateTemplate;
@@ -136,17 +136,15 @@ public class JsonTemplateManager {
/**
* For a given policy type, get a corresponding JsonObject from the tosca model.
*
- * @param policyType The policy type in the tosca
+ * @param policyType The policy type in the tosca
* @param toscaMetadataParser The MetadataParser class that must be used if metadata section are encountered,
- * if null they will be skipped
+ * if null they will be skipped
* @return an json object defining the equivalent json schema from the tosca for a given policy type
*/
public JsonObject getJsonSchemaForPolicyType(String policyType, ToscaMetadataParser toscaMetadataParser,
- Service serviceModel)
- throws UnknownComponentException {
- ToscaConverterToJsonSchema
- toscaConverterToJsonSchema = new ToscaConverterToJsonSchema(toscaElements, jsonSchemaTemplates,
- toscaMetadataParser, serviceModel);
+ Service serviceModel) throws UnknownComponentException {
+ var toscaConverterToJsonSchema =
+ new ToscaConverterToJsonSchema(toscaElements, jsonSchemaTemplates, toscaMetadataParser, serviceModel);
if (toscaConverterToJsonSchema.getToscaElement(policyType) == null) {
throw new UnknownComponentException(policyType);
}
@@ -166,7 +164,7 @@ public class JsonTemplateManager {
JsonObject templates = JsonUtils.GSON.fromJson(jsonTemplates, JsonObject.class);
for (Map.Entry<String, JsonElement> templateAsJson : templates.entrySet()) {
- JsonTemplate jsonTemplate = new JsonTemplate(templateAsJson.getKey());
+ var jsonTemplate = new JsonTemplate(templateAsJson.getKey());
JsonObject templateBody = (JsonObject) templateAsJson.getValue();
for (Map.Entry<String, JsonElement> field : templateBody.entrySet()) {
String fieldName = field.getKey();
@@ -174,12 +172,11 @@ public class JsonTemplateManager {
Object fieldValue = bodyFieldAsJson.get("defaultValue").getAsString();
Boolean fieldVisible = bodyFieldAsJson.get("visible").getAsBoolean();
Boolean fieldStatic = bodyFieldAsJson.get("static").getAsBoolean();
- JsonTemplateField
- bodyJsonTemplateField = new JsonTemplateField(fieldName, fieldValue, fieldVisible, fieldStatic);
+ var bodyJsonTemplateField = new JsonTemplateField(fieldName, fieldValue, fieldVisible, fieldStatic);
jsonTemplate.getJsonTemplateFields().add(bodyJsonTemplateField);
}
generatedTemplates.put(jsonTemplate.getName(), jsonTemplate);
}
return generatedTemplates;
}
-} \ No newline at end of file
+}
diff --git a/runtime/src/main/java/org/onap/policy/clamp/clds/util/ResourceFileUtils.java b/runtime/src/main/java/org/onap/policy/clamp/clds/util/ResourceFileUtils.java
index d6184c656..ab33984da 100644
--- a/runtime/src/main/java/org/onap/policy/clamp/clds/util/ResourceFileUtils.java
+++ b/runtime/src/main/java/org/onap/policy/clamp/clds/util/ResourceFileUtils.java
@@ -81,9 +81,9 @@ public final class ResourceFileUtils {
}
private static String streamToString(InputStream inputStream) {
- try (Scanner scanner = new Scanner(inputStream)) {
- Scanner delimitedScanner = scanner.useDelimiter("\\A");
+ try (var scanner = new Scanner(inputStream)) {
+ var delimitedScanner = scanner.useDelimiter("\\A");
return delimitedScanner.hasNext() ? delimitedScanner.next() : "";
}
}
-} \ No newline at end of file
+}
diff --git a/runtime/src/main/java/org/onap/policy/clamp/configuration/ClampGsonDataFormat.java b/runtime/src/main/java/org/onap/policy/clamp/configuration/ClampGsonDataFormat.java
index 6479cf767..5cb5e143f 100644
--- a/runtime/src/main/java/org/onap/policy/clamp/configuration/ClampGsonDataFormat.java
+++ b/runtime/src/main/java/org/onap/policy/clamp/configuration/ClampGsonDataFormat.java
@@ -96,7 +96,7 @@ public class ClampGsonDataFormat extends ServiceSupport implements DataFormat, D
@Override
public void marshal(final Exchange exchange, final Object graph, final OutputStream stream) throws Exception {
- try (final OutputStreamWriter osw = new OutputStreamWriter(stream, StandardCharsets.UTF_8);
+ try (final var osw = new OutputStreamWriter(stream, StandardCharsets.UTF_8);
final BufferedWriter writer = IOHelper.buffered(osw)) {
gson.toJson(graph, writer);
}
@@ -112,7 +112,7 @@ public class ClampGsonDataFormat extends ServiceSupport implements DataFormat, D
@Override
public Object unmarshal(final Exchange exchange, final InputStream stream) throws Exception {
- try (final InputStreamReader isr = new InputStreamReader(stream, StandardCharsets.UTF_8);
+ try (final var isr = new InputStreamReader(stream, StandardCharsets.UTF_8);
final BufferedReader reader = IOHelper.buffered(isr)) {
if (unmarshalType.equals(String.class)) {
return IOUtils.toString(reader);
diff --git a/runtime/src/main/java/org/onap/policy/clamp/dao/model/jsontype/JsonTypeDescriptor.java b/runtime/src/main/java/org/onap/policy/clamp/dao/model/jsontype/JsonTypeDescriptor.java
index ed8464b14..ddc39599c 100644
--- a/runtime/src/main/java/org/onap/policy/clamp/dao/model/jsontype/JsonTypeDescriptor.java
+++ b/runtime/src/main/java/org/onap/policy/clamp/dao/model/jsontype/JsonTypeDescriptor.java
@@ -73,6 +73,7 @@ public class JsonTypeDescriptor extends AbstractTypeDescriptor<JsonObject> {
return JsonUtils.GSON_JPA_MODEL.fromJson(string, JsonObject.class);
}
+ @SuppressWarnings("unchecked")
@Override
public <X> X unwrap(JsonObject value, Class<X> type, WrapperOptions options) {
if (value == null) {
@@ -95,7 +96,7 @@ public class JsonTypeDescriptor extends AbstractTypeDescriptor<JsonObject> {
return null;
}
- if (String.class.isInstance(value)) {
+ if (value instanceof String) {
return JsonUtils.GSON_JPA_MODEL.fromJson((String) value, JsonObject.class);
}
diff --git a/runtime/src/main/java/org/onap/policy/clamp/loop/CsarInstaller.java b/runtime/src/main/java/org/onap/policy/clamp/loop/CsarInstaller.java
index f46f4227b..2da1c0553 100644
--- a/runtime/src/main/java/org/onap/policy/clamp/loop/CsarInstaller.java
+++ b/runtime/src/main/java/org/onap/policy/clamp/loop/CsarInstaller.java
@@ -45,7 +45,6 @@ import org.onap.policy.clamp.loop.service.Service;
import org.onap.policy.clamp.loop.template.LoopElementModel;
import org.onap.policy.clamp.loop.template.LoopTemplate;
import org.onap.policy.clamp.loop.template.LoopTemplatesRepository;
-import org.onap.policy.clamp.loop.template.PolicyModel;
import org.onap.policy.clamp.loop.template.PolicyModelsRepository;
import org.onap.policy.clamp.policy.PolicyEngineServices;
import org.springframework.beans.factory.annotation.Autowired;
@@ -95,11 +94,11 @@ public class CsarInstaller {
boolean alreadyInstalled = csarServiceInstaller.isServiceAlreadyDeployed(csar);
for (Entry<String, BlueprintArtifact> blueprint : csar.getMapOfBlueprints().entrySet()) {
- alreadyInstalled = alreadyInstalled
- && loopTemplatesRepository.existsById(LoopTemplate.generateLoopTemplateName(
- csar.getSdcNotification().getServiceName(), csar.getSdcNotification().getServiceVersion(),
- blueprint.getValue().getResourceAttached().getResourceInstanceName(),
- blueprint.getValue().getBlueprintArtifactName()));
+ alreadyInstalled =
+ alreadyInstalled && loopTemplatesRepository.existsById(LoopTemplate.generateLoopTemplateName(
+ csar.getSdcNotification().getServiceName(), csar.getSdcNotification().getServiceVersion(),
+ blueprint.getValue().getResourceAttached().getResourceInstanceName(),
+ blueprint.getValue().getBlueprintArtifactName()));
}
return alreadyInstalled;
}
@@ -109,14 +108,14 @@ public class CsarInstaller {
*
* @param csar The Csar Handler
* @throws SdcArtifactInstallerException The SdcArtifactInstallerException
- * @throws InterruptedException The InterruptedException
- * @throws BlueprintParserException In case of issues with the blueprint
- * parsing
+ * @throws InterruptedException The InterruptedException
+ * @throws BlueprintParserException In case of issues with the blueprint
+ * parsing
*/
public void installTheCsar(CsarHandler csar)
throws SdcArtifactInstallerException, InterruptedException, BlueprintParserException {
logger.info("Installing the CSAR " + csar.getFilePath());
- Service associatedService = csarServiceInstaller.installTheService(csar);
+ var associatedService = csarServiceInstaller.installTheService(csar);
cdsDataInstaller.installCdsServiceProperties(csar, associatedService);
installTheLoopTemplates(csar, associatedService);
@@ -126,12 +125,12 @@ public class CsarInstaller {
/**
* Install the loop templates from the csar.
*
- * @param csar The Csar Handler
+ * @param csar The Csar Handler
* @param service The service object that is related to the loop
* @throws SdcArtifactInstallerException The SdcArtifactInstallerException
- * @throws InterruptedException The InterruptedException
- * @throws BlueprintParserException In case of issues with the blueprint
- * parsing
+ * @throws InterruptedException The InterruptedException
+ * @throws BlueprintParserException In case of issues with the blueprint
+ * parsing
*/
public void installTheLoopTemplates(CsarHandler csar, Service service)
throws SdcArtifactInstallerException, InterruptedException, BlueprintParserException {
@@ -150,10 +149,9 @@ public class CsarInstaller {
}
private LoopTemplate createLoopTemplateFromBlueprint(CsarHandler csar, BlueprintArtifact blueprintArtifact,
- Service service)
- throws IOException, ParseException, InterruptedException, BlueprintParserException,
+ Service service) throws IOException, ParseException, InterruptedException, BlueprintParserException,
SdcArtifactInstallerException {
- LoopTemplate newLoopTemplate = new LoopTemplate();
+ var newLoopTemplate = new LoopTemplate();
newLoopTemplate.setBlueprint(blueprintArtifact.getDcaeBlueprint());
newLoopTemplate.setName(LoopTemplate.generateLoopTemplateName(csar.getSdcNotification().getServiceName(),
csar.getSdcNotification().getServiceVersion(),
@@ -173,22 +171,19 @@ public class CsarInstaller {
}
private HashSet<LoopElementModel> createMicroServiceModels(BlueprintArtifact blueprintArtifact,
- List<BlueprintMicroService> microServicesChain)
- throws SdcArtifactInstallerException {
+ List<BlueprintMicroService> microServicesChain) throws SdcArtifactInstallerException {
HashSet<LoopElementModel> newSet = new HashSet<>();
for (BlueprintMicroService microService : microServicesChain) {
- LoopElementModel loopElementModel =
- new LoopElementModel(microService.getModelType(), LoopElementModel.MICRO_SERVICE_TYPE,
- null);
+ var loopElementModel =
+ new LoopElementModel(microService.getModelType(), LoopElementModel.MICRO_SERVICE_TYPE, null);
newSet.add(loopElementModel);
- PolicyModel newPolicyModel = policyEngineServices.createPolicyModelFromPolicyEngine(microService);
+ var newPolicyModel = policyEngineServices.createPolicyModelFromPolicyEngine(microService);
if (newPolicyModel != null) {
loopElementModel.addPolicyModel(newPolicyModel);
} else {
- throw new SdcArtifactInstallerException(
- "Unable to find the policy specified in the blueprint " + blueprintArtifact
- .getBlueprintArtifactName() + ") on the Policy Engine:"
- + microService.getModelType() + "/" + microService.getModelVersion());
+ throw new SdcArtifactInstallerException("Unable to find the policy specified in the blueprint "
+ + blueprintArtifact.getBlueprintArtifactName() + ") on the Policy Engine:"
+ + microService.getModelType() + "/" + microService.getModelVersion());
}
}
return newSet;
diff --git a/runtime/src/main/java/org/onap/policy/clamp/loop/components/external/DcaeComponent.java b/runtime/src/main/java/org/onap/policy/clamp/loop/components/external/DcaeComponent.java
index 6a935d011..e6c05ddd9 100644
--- a/runtime/src/main/java/org/onap/policy/clamp/loop/components/external/DcaeComponent.java
+++ b/runtime/src/main/java/org/onap/policy/clamp/loop/components/external/DcaeComponent.java
@@ -43,6 +43,10 @@ import org.onap.policy.clamp.loop.Loop;
import org.onap.policy.clamp.policy.microservice.MicroServicePolicy;
public class DcaeComponent extends ExternalComponent {
+ private static final String INSTALL = "install";
+ private static final String PROCESSING = "processing";
+ private static final String SUCCEEDED = "succeeded";
+ private static final String UNINSTALL = "uninstall";
@Transient
private static final EELFLogger logger = EELFManager.getInstance().getLogger(DcaeComponent.class);
@@ -136,12 +140,12 @@ public class DcaeComponent extends ExternalComponent {
*/
public static String getDeployPayload(Loop loop) {
JsonObject globalProp = loop.getGlobalPropertiesJson();
- JsonObject deploymentProp = globalProp.getAsJsonObject(DEPLOYMENT_PARAMETER).getAsJsonObject(
+ var deploymentProp = globalProp.getAsJsonObject(DEPLOYMENT_PARAMETER).getAsJsonObject(
UNIQUE_BLUEPRINT_PARAMETERS);
String serviceTypeId = loop.getLoopTemplate().getDcaeBlueprintId();
- JsonObject rootObject = new JsonObject();
+ var rootObject = new JsonObject();
rootObject.addProperty(DCAE_SERVICETYPE_ID, serviceTypeId);
if (deploymentProp != null) {
rootObject.add(DCAE_INPUTS, deploymentProp);
@@ -159,12 +163,12 @@ public class DcaeComponent extends ExternalComponent {
*/
public static String getDeployPayload(Loop loop, MicroServicePolicy microServicePolicy) {
JsonObject globalProp = loop.getGlobalPropertiesJson();
- JsonObject deploymentProp =
+ var deploymentProp =
globalProp.getAsJsonObject(DEPLOYMENT_PARAMETER).getAsJsonObject(microServicePolicy.getName());
String serviceTypeId = microServicePolicy.getDcaeBlueprintId();
- JsonObject rootObject = new JsonObject();
+ var rootObject = new JsonObject();
rootObject.addProperty(DCAE_SERVICETYPE_ID, serviceTypeId);
if (deploymentProp != null) {
rootObject.add(DCAE_INPUTS, deploymentProp);
@@ -180,7 +184,7 @@ public class DcaeComponent extends ExternalComponent {
* @return The payload in string (json)
*/
public static String getUndeployPayload(Loop loop) {
- JsonObject rootObject = new JsonObject();
+ var rootObject = new JsonObject();
rootObject.addProperty(DCAE_SERVICETYPE_ID, loop.getLoopTemplate().getDcaeBlueprintId());
logger.info("DCAE Undeploy payload for unique blueprint: " + rootObject.toString());
return rootObject.toString();
@@ -193,7 +197,7 @@ public class DcaeComponent extends ExternalComponent {
* @return The payload in string (json)
*/
public static String getUndeployPayload(MicroServicePolicy policy) {
- JsonObject rootObject = new JsonObject();
+ var rootObject = new JsonObject();
rootObject.addProperty(DCAE_SERVICETYPE_ID, policy.getDcaeBlueprintId());
logger.info("DCAE Undeploy payload for multiple blueprints: " + rootObject.toString());
return rootObject.toString();
@@ -208,26 +212,26 @@ public class DcaeComponent extends ExternalComponent {
if (dcaeResponse == null) {
setState(BLUEPRINT_DEPLOYED);
} else {
- if (dcaeResponse.getOperationType().equals("install") && dcaeResponse.getStatus().equals("succeeded")) {
+ if (dcaeResponse.getOperationType().equals(INSTALL) && dcaeResponse.getStatus().equals(SUCCEEDED)) {
setState(MICROSERVICE_INSTALLED_SUCCESSFULLY);
} else {
- if (dcaeResponse.getOperationType().equals("install") && dcaeResponse.getStatus()
- .equals("processing")) {
+ if (dcaeResponse.getOperationType().equals(INSTALL) && dcaeResponse.getStatus()
+ .equals(PROCESSING)) {
setState(PROCESSING_MICROSERVICE_INSTALLATION);
} else {
- if (dcaeResponse.getOperationType().equals("install") && dcaeResponse.getStatus()
+ if (dcaeResponse.getOperationType().equals(INSTALL) && dcaeResponse.getStatus()
.equals("failed")) {
setState(MICROSERVICE_INSTALLATION_FAILED);
} else {
- if (dcaeResponse.getOperationType().equals("uninstall")
- && dcaeResponse.getStatus().equals("succeeded")) {
+ if (dcaeResponse.getOperationType().equals(UNINSTALL)
+ && dcaeResponse.getStatus().equals(SUCCEEDED)) {
setState(MICROSERVICE_UNINSTALLED_SUCCESSFULLY);
} else {
- if (dcaeResponse.getOperationType().equals("uninstall")
- && dcaeResponse.getStatus().equals("processing")) {
+ if (dcaeResponse.getOperationType().equals(UNINSTALL)
+ && dcaeResponse.getStatus().equals(PROCESSING)) {
setState(PROCESSING_MICROSERVICE_UNINSTALLATION);
} else {
- if (dcaeResponse.getOperationType().equals("uninstall") && dcaeResponse.getStatus()
+ if (dcaeResponse.getOperationType().equals(UNINSTALL) && dcaeResponse.getStatus()
.equals("failed")) {
setState(MICROSERVICE_UNINSTALLATION_FAILED);
} else {
@@ -251,10 +255,10 @@ public class DcaeComponent extends ExternalComponent {
*/
public static List<DcaeInventoryResponse> convertToDcaeInventoryResponse(String responseBody)
throws ParseException {
- JSONParser parser = new JSONParser();
+ var parser = new JSONParser();
JSONObject jsonObj = (JSONObject) parser.parse(responseBody);
JSONArray itemsArray = (JSONArray) jsonObj.get("items");
- Iterator it = itemsArray.iterator();
+ Iterator<?> it = itemsArray.iterator();
List<DcaeInventoryResponse> inventoryResponseList = new LinkedList<>();
while (it.hasNext()) {
JSONObject item = (JSONObject) it.next();
diff --git a/runtime/src/main/java/org/onap/policy/clamp/loop/deploy/DcaeDeployParameters.java b/runtime/src/main/java/org/onap/policy/clamp/loop/deploy/DcaeDeployParameters.java
index 1a1414611..d4b80e509 100644
--- a/runtime/src/main/java/org/onap/policy/clamp/loop/deploy/DcaeDeployParameters.java
+++ b/runtime/src/main/java/org/onap/policy/clamp/loop/deploy/DcaeDeployParameters.java
@@ -27,6 +27,8 @@ import com.google.gson.JsonObject;
import java.util.LinkedHashMap;
import java.util.Map;
import java.util.Set;
+import lombok.AccessLevel;
+import lombok.NoArgsConstructor;
import org.onap.policy.clamp.clds.util.JsonUtils;
import org.onap.policy.clamp.loop.Loop;
import org.onap.policy.clamp.loop.components.external.DcaeComponent;
@@ -36,8 +38,8 @@ import org.yaml.snakeyaml.Yaml;
/**
* To decode the bluprint input parameters.
*/
+@NoArgsConstructor(access = AccessLevel.PRIVATE)
public class DcaeDeployParameters {
-
private static LinkedHashMap<String, JsonObject> init(Loop loop) {
LinkedHashMap<String, JsonObject> deploymentParamMap = new LinkedHashMap<>();
Set<MicroServicePolicy> microServiceList = loop.getMicroServicePolicies();
@@ -54,9 +56,10 @@ public class DcaeDeployParameters {
microService.getName());
}
+ @SuppressWarnings("unchecked")
private static JsonObject generateDcaeDeployParameter(String blueprint, String policyId) {
- JsonObject deployJsonBody = new JsonObject();
- Yaml yaml = new Yaml();
+ var deployJsonBody = new JsonObject();
+ var yaml = new Yaml();
Map<String, Object> inputsNodes = ((Map<String, Object>) ((Map<String, Object>) yaml
.load(blueprint)).get("inputs"));
inputsNodes.entrySet().stream().filter(e -> !e.getKey().contains("policy_id")).forEach(elem -> {
@@ -91,8 +94,8 @@ public class DcaeDeployParameters {
* @return The deploymentParameters in Json
*/
public static JsonObject getDcaeDeploymentParametersInJson(Loop loop) {
- JsonObject globalProperties = new JsonObject();
- JsonObject deployParamJson = new JsonObject();
+ var globalProperties = new JsonObject();
+ var deployParamJson = new JsonObject();
if (loop.getLoopTemplate().getUniqueBlueprint()) {
// Normally the unique blueprint could contain multiple microservices but then we can't guess
// the policy id params that will be used, so here we expect only one by default.
diff --git a/runtime/src/main/java/org/onap/policy/clamp/policy/Policy.java b/runtime/src/main/java/org/onap/policy/clamp/policy/Policy.java
index f8bdab6c2..11587ce57 100644
--- a/runtime/src/main/java/org/onap/policy/clamp/policy/Policy.java
+++ b/runtime/src/main/java/org/onap/policy/clamp/policy/Policy.java
@@ -27,34 +27,26 @@ package org.onap.policy.clamp.policy;
import com.att.eelf.configuration.EELFLogger;
import com.att.eelf.configuration.EELFManager;
-import com.google.gson.Gson;
-import com.google.gson.GsonBuilder;
-import com.google.gson.JsonArray;
import com.google.gson.JsonObject;
import com.google.gson.annotations.Expose;
import java.io.UnsupportedEncodingException;
-import java.util.Map;
import javax.persistence.Column;
import javax.persistence.FetchType;
import javax.persistence.JoinColumn;
-import javax.persistence.JoinColumns;
import javax.persistence.ManyToOne;
import javax.persistence.MappedSuperclass;
import javax.persistence.Transient;
import org.hibernate.annotations.Type;
import org.hibernate.annotations.TypeDef;
-import org.hibernate.annotations.TypeDefs;
-import org.json.JSONObject;
import org.onap.policy.clamp.clds.tosca.update.ToscaConverterWithDictionarySupport;
import org.onap.policy.clamp.dao.model.jsontype.StringJsonUserType;
import org.onap.policy.clamp.loop.common.AuditEntity;
import org.onap.policy.clamp.loop.service.Service;
import org.onap.policy.clamp.loop.template.LoopElementModel;
import org.onap.policy.clamp.loop.template.PolicyModel;
-import org.yaml.snakeyaml.Yaml;
@MappedSuperclass
-@TypeDefs({@TypeDef(name = "json", typeClass = StringJsonUserType.class)})
+@TypeDef(name = "json", typeClass = StringJsonUserType.class)
public abstract class Policy extends AuditEntity {
@Transient
@@ -89,8 +81,8 @@ public abstract class Policy extends AuditEntity {
@Expose
@ManyToOne(fetch = FetchType.EAGER)
- @JoinColumns({@JoinColumn(name = "policy_model_type", referencedColumnName = "policy_model_type"),
- @JoinColumn(name = "policy_model_version", referencedColumnName = "version")})
+ @JoinColumn(name = "policy_model_type", referencedColumnName = "policy_model_type")
+ @JoinColumn(name = "policy_model_version", referencedColumnName = "version")
private PolicyModel policyModel;
/**
diff --git a/runtime/src/main/java/org/onap/policy/clamp/policy/PolicyEngineServices.java b/runtime/src/main/java/org/onap/policy/clamp/policy/PolicyEngineServices.java
index 4142841e2..d56480053 100644
--- a/runtime/src/main/java/org/onap/policy/clamp/policy/PolicyEngineServices.java
+++ b/runtime/src/main/java/org/onap/policy/clamp/policy/PolicyEngineServices.java
@@ -29,7 +29,6 @@ import java.io.IOException;
import java.util.LinkedHashMap;
import org.apache.camel.CamelContext;
import org.apache.camel.Exchange;
-import org.apache.camel.ProducerTemplate;
import org.apache.camel.builder.ExchangeBuilder;
import org.onap.policy.clamp.clds.config.ClampProperties;
import org.onap.policy.clamp.clds.sdc.controller.installer.BlueprintMicroService;
@@ -95,7 +94,7 @@ public class PolicyEngineServices {
* @return A PolicyModel created from policyEngine data or null if nothing is found on policyEngine
*/
public PolicyModel createPolicyModelFromPolicyEngine(String policyType, String policyVersion) {
- PolicyModel policyModelFound = policyModelsService.getPolicyModel(policyType, policyVersion);
+ var policyModelFound = policyModelsService.getPolicyModel(policyType, policyVersion);
if (policyModelFound == null) {
String policyTosca = this.downloadOnePolicyToscaModel(policyType, policyVersion);
if (policyTosca != null && !policyTosca.isEmpty()) {
@@ -127,6 +126,7 @@ public class PolicyEngineServices {
* This method synchronize the clamp database and the policy engine.
* So it creates the required PolicyModel.
*/
+ @SuppressWarnings("unchecked")
public void synchronizeAllPolicies() {
LinkedHashMap<String, Object> loadedYaml;
loadedYaml = new Yaml().load(downloadAllPolicyModels());
@@ -162,12 +162,12 @@ public class PolicyEngineServices {
*/
public String downloadOnePolicyToscaModel(String policyType, String policyVersion) {
logger.info("Downloading the policy tosca model " + policyType + "/" + policyVersion);
- DumperOptions options = new DumperOptions();
+ var options = new DumperOptions();
options.setDefaultScalarStyle(DumperOptions.ScalarStyle.PLAIN);
options.setIndent(4);
options.setPrettyFlow(true);
options.setDefaultFlowStyle(DumperOptions.FlowStyle.BLOCK);
- Yaml yamlParser = new Yaml(options);
+ var yamlParser = new Yaml(options);
String responseBody = callCamelRoute(
ExchangeBuilder.anExchange(camelContext).withProperty("policyModelType", policyType)
.withProperty("policyModelVersion", policyVersion).withProperty(RAISE_EXCEPTION_FLAG, false)
@@ -200,9 +200,9 @@ public class PolicyEngineServices {
}
private String callCamelRoute(Exchange exchange, String camelFlow, String logMsg) {
- for (int i = 0; i < retryLimit; i++) {
- try (ProducerTemplate producerTemplate = camelContext.createProducerTemplate()) {
- Exchange exchangeResponse = producerTemplate.send(camelFlow, exchange);
+ for (var i = 0; i < retryLimit; i++) {
+ try (var producerTemplate = camelContext.createProducerTemplate()) {
+ var exchangeResponse = producerTemplate.send(camelFlow, exchange);
if (HttpStatus.valueOf((Integer) exchangeResponse.getIn().getHeader(Exchange.HTTP_RESPONSE_CODE))
.is2xxSuccessful()) {
return (String) exchangeResponse.getIn().getBody();
diff --git a/runtime/src/main/java/org/onap/policy/clamp/policy/pdpgroup/PdpGroupsAnalyzer.java b/runtime/src/main/java/org/onap/policy/clamp/policy/pdpgroup/PdpGroupsAnalyzer.java
index 6098d0f63..38425fe93 100644
--- a/runtime/src/main/java/org/onap/policy/clamp/policy/pdpgroup/PdpGroupsAnalyzer.java
+++ b/runtime/src/main/java/org/onap/policy/clamp/policy/pdpgroup/PdpGroupsAnalyzer.java
@@ -26,7 +26,6 @@ package org.onap.policy.clamp.policy.pdpgroup;
import com.google.gson.JsonArray;
import com.google.gson.JsonObject;
import java.util.ArrayList;
-import java.util.Collections;
import java.util.List;
import java.util.Map;
import java.util.Objects;
@@ -82,7 +81,7 @@ public class PdpGroupsAnalyzer {
// Copy the subgroup but empty the policies & types
pdpGroupsDeploymentPerToscaIdentifier.computeIfAbsent(toscaId, toscaKey -> new ConcurrentHashMap<>())
.computeIfAbsent(pdpGroupSource.getName(), pdpGroupName -> {
- PdpGroup pdpGroupCopy = new PdpGroup(pdpGroupSource);
+ var pdpGroupCopy = new PdpGroup(pdpGroupSource);
pdpGroupCopy.setPdpSubgroups(new ArrayList<>());
return pdpGroupCopy;
}).getPdpSubgroups().add(new PdpSubGroup(pdpSubGroupSource));
@@ -107,8 +106,8 @@ public class PdpGroupsAnalyzer {
Map<String, PdpGroup> mapOfGroups =
this.pdpGroupsDeploymentPerPolicy.get(new ToscaConceptIdentifier(policyName, version));
if (mapOfGroups != null) {
- JsonObject policyPdpGroups = new JsonObject();
- JsonArray pdpGroupsArray = new JsonArray();
+ var policyPdpGroups = new JsonObject();
+ var pdpGroupsArray = new JsonArray();
policyPdpGroups.add(ASSIGNED_PDP_GROUPS_INFO, pdpGroupsArray);
pdpGroupsArray.add(JsonUtils.GSON
.toJsonTree(mapOfGroups));
@@ -133,8 +132,8 @@ public class PdpGroupsAnalyzer {
if (PdpState.TERMINATED.equals(pdpGroup.getPdpGroupState())) {
return null;
}
- JsonObject supportedPdpGroup = new JsonObject();
- JsonArray supportedSubgroups = new JsonArray();
+ var supportedPdpGroup = new JsonObject();
+ var supportedSubgroups = new JsonArray();
supportedPdpGroup.add(pdpGroup.getName(), supportedSubgroups);
pdpGroup.getPdpSubgroups().stream().forEach(pdpSubGroup -> {
if (pdpSubGroup.getSupportedPolicyTypes().stream().anyMatch(policyTypeIdentifier ->
@@ -155,8 +154,8 @@ public class PdpGroupsAnalyzer {
* @return It returns a JsonObject containing each pdpGroup and subgroups associated
*/
public static JsonObject getSupportedPdpGroupsForModelType(PdpGroups pdpGroups, String policyType, String version) {
- JsonObject supportedPdpGroups = new JsonObject();
- JsonArray pdpGroupsArray = new JsonArray();
+ var supportedPdpGroups = new JsonObject();
+ var pdpGroupsArray = new JsonArray();
supportedPdpGroups.add(SUPPORTED_PDP_GROUPS_INFO, pdpGroupsArray);
pdpGroups.getGroups().stream().map(pdpGroup -> PdpGroupsAnalyzer.getSupportedPdpSubgroupsForModelType(pdpGroup,
@@ -177,4 +176,4 @@ public class PdpGroupsAnalyzer {
.setPolicyPdpGroup(getSupportedPdpGroupsForModelType(pdpGroups, policyModel.getPolicyModelType(),
policyModel.getVersion())));
}
-} \ No newline at end of file
+}
diff --git a/runtime/src/main/java/org/onap/policy/clamp/tosca/Dictionary.java b/runtime/src/main/java/org/onap/policy/clamp/tosca/Dictionary.java
index 4b01d6902..4f748d5dd 100644
--- a/runtime/src/main/java/org/onap/policy/clamp/tosca/Dictionary.java
+++ b/runtime/src/main/java/org/onap/policy/clamp/tosca/Dictionary.java
@@ -188,8 +188,8 @@ public class Dictionary extends AuditEntity implements Serializable {
@Override
public int hashCode() {
- final int prime = 31;
- int result = 1;
+ final var prime = 31;
+ var result = 1;
result = prime * result + ((name == null) ? 0 : name.hashCode());
return result;
}
diff --git a/runtime/src/main/resources/META-INF/resources/swagger.html b/runtime/src/main/resources/META-INF/resources/swagger.html
index 64530f1c3..20cdda7ad 100644
--- a/runtime/src/main/resources/META-INF/resources/swagger.html
+++ b/runtime/src/main/resources/META-INF/resources/swagger.html
@@ -444,31 +444,31 @@ body.book #toc,body.book #preamble,body.book h1.sect0,body.book .sect1>h2{page-b
</li>
<li><a href="#_paths">2. Paths</a>
<ul class="sectlevel2">
-<li><a href="#_verb116">2.1. GET /v1/healthcheck</a>
+<li><a href="#_verb39">2.1. GET /v1/healthcheck</a>
<ul class="sectlevel3">
<li><a href="#_responses">2.1.1. Responses</a></li>
<li><a href="#_produces">2.1.2. Produces</a></li>
</ul>
</li>
-<li><a href="#_verb117">2.2. GET /v1/user/getUser</a>
+<li><a href="#_verb40">2.2. GET /v1/user/getUser</a>
<ul class="sectlevel3">
<li><a href="#_responses_2">2.2.1. Responses</a></li>
<li><a href="#_produces_2">2.2.2. Produces</a></li>
</ul>
</li>
-<li><a href="#_verb115">2.3. GET /v2/clampInformation</a>
+<li><a href="#_verb38">2.3. GET /v2/clampInformation</a>
<ul class="sectlevel3">
<li><a href="#_responses_3">2.3.1. Responses</a></li>
<li><a href="#_produces_3">2.3.2. Produces</a></li>
</ul>
</li>
-<li><a href="#_verb99">2.4. GET /v2/dictionary</a>
+<li><a href="#_verb21">2.4. GET /v2/dictionary</a>
<ul class="sectlevel3">
<li><a href="#_responses_4">2.4.1. Responses</a></li>
<li><a href="#_produces_4">2.4.2. Produces</a></li>
</ul>
</li>
-<li><a href="#_verb102">2.5. PUT /v2/dictionary</a>
+<li><a href="#_verb24">2.5. PUT /v2/dictionary</a>
<ul class="sectlevel3">
<li><a href="#_parameters">2.5.1. Parameters</a></li>
<li><a href="#_responses_5">2.5.2. Responses</a></li>
@@ -476,20 +476,20 @@ body.book #toc,body.book #preamble,body.book h1.sect0,body.book .sect1>h2{page-b
<li><a href="#_produces_5">2.5.4. Produces</a></li>
</ul>
</li>
-<li><a href="#_verb100">2.6. GET /v2/dictionary/secondary/names</a>
+<li><a href="#_verb22">2.6. GET /v2/dictionary/secondary/names</a>
<ul class="sectlevel3">
<li><a href="#_responses_6">2.6.1. Responses</a></li>
<li><a href="#_produces_6">2.6.2. Produces</a></li>
</ul>
</li>
-<li><a href="#_verb101">2.7. GET /v2/dictionary/{dictionaryName}</a>
+<li><a href="#_verb23">2.7. GET /v2/dictionary/{dictionaryName}</a>
<ul class="sectlevel3">
<li><a href="#_parameters_2">2.7.1. Parameters</a></li>
<li><a href="#_responses_7">2.7.2. Responses</a></li>
<li><a href="#_produces_7">2.7.3. Produces</a></li>
</ul>
</li>
-<li><a href="#_verb103">2.8. PUT /v2/dictionary/{name}</a>
+<li><a href="#_verb25">2.8. PUT /v2/dictionary/{name}</a>
<ul class="sectlevel3">
<li><a href="#_parameters_3">2.8.1. Parameters</a></li>
<li><a href="#_responses_8">2.8.2. Responses</a></li>
@@ -497,28 +497,28 @@ body.book #toc,body.book #preamble,body.book h1.sect0,body.book .sect1>h2{page-b
<li><a href="#_produces_8">2.8.4. Produces</a></li>
</ul>
</li>
-<li><a href="#_verb104">2.9. DELETE /v2/dictionary/{name}</a>
+<li><a href="#_verb26">2.9. DELETE /v2/dictionary/{name}</a>
<ul class="sectlevel3">
<li><a href="#_parameters_4">2.9.1. Parameters</a></li>
<li><a href="#_responses_9">2.9.2. Responses</a></li>
<li><a href="#_produces_9">2.9.3. Produces</a></li>
</ul>
</li>
-<li><a href="#_verb105">2.10. DELETE /v2/dictionary/{name}/elements/{shortName}</a>
+<li><a href="#_verb27">2.10. DELETE /v2/dictionary/{name}/elements/{shortName}</a>
<ul class="sectlevel3">
<li><a href="#_parameters_5">2.10.1. Parameters</a></li>
<li><a href="#_responses_10">2.10.2. Responses</a></li>
<li><a href="#_produces_10">2.10.3. Produces</a></li>
</ul>
</li>
-<li><a href="#_verb93">2.11. PUT /v2/loop/addOperationaPolicy/{loopName}/policyModel/{policyType}/{policyVersion}</a>
+<li><a href="#_verb15">2.11. PUT /v2/loop/addOperationaPolicy/{loopName}/policyModel/{policyType}/{policyVersion}</a>
<ul class="sectlevel3">
<li><a href="#_parameters_6">2.11.1. Parameters</a></li>
<li><a href="#_responses_11">2.11.2. Responses</a></li>
<li><a href="#_produces_11">2.11.3. Produces</a></li>
</ul>
</li>
-<li><a href="#_verb95">2.12. POST /v2/loop/create/{loopName}?templateName={templateName}</a>
+<li><a href="#_verb17">2.12. POST /v2/loop/create/{loopName}?templateName={templateName}</a>
<ul class="sectlevel3">
<li><a href="#_parameters_7">2.12.1. Parameters</a></li>
<li><a href="#_responses_12">2.12.2. Responses</a></li>
@@ -526,82 +526,82 @@ body.book #toc,body.book #preamble,body.book h1.sect0,body.book .sect1>h2{page-b
<li><a href="#_produces_12">2.12.4. Produces</a></li>
</ul>
</li>
-<li><a href="#_verb91">2.13. PUT /v2/loop/delete/{loopName}</a>
+<li><a href="#_verb13">2.13. PUT /v2/loop/delete/{loopName}</a>
<ul class="sectlevel3">
<li><a href="#_parameters_8">2.13.1. Parameters</a></li>
<li><a href="#_responses_13">2.13.2. Responses</a></li>
</ul>
</li>
-<li><a href="#_verb84">2.14. PUT /v2/loop/deploy/{loopName}</a>
+<li><a href="#_verb6">2.14. PUT /v2/loop/deploy/{loopName}</a>
<ul class="sectlevel3">
<li><a href="#_parameters_9">2.14.1. Parameters</a></li>
<li><a href="#_responses_14">2.14.2. Responses</a></li>
<li><a href="#_produces_13">2.14.3. Produces</a></li>
</ul>
</li>
-<li><a href="#_verb79">2.15. GET /v2/loop/getAllNames</a>
+<li><a href="#_verb1">2.15. GET /v2/loop/getAllNames</a>
<ul class="sectlevel3">
<li><a href="#_responses_15">2.15.1. Responses</a></li>
<li><a href="#_produces_14">2.15.2. Produces</a></li>
</ul>
</li>
-<li><a href="#_verb92">2.16. GET /v2/loop/getstatus/{loopName}</a>
+<li><a href="#_verb14">2.16. GET /v2/loop/getstatus/{loopName}</a>
<ul class="sectlevel3">
<li><a href="#_parameters_10">2.16.1. Parameters</a></li>
<li><a href="#_responses_16">2.16.2. Responses</a></li>
<li><a href="#_produces_15">2.16.3. Produces</a></li>
</ul>
</li>
-<li><a href="#_verb85">2.17. PUT /v2/loop/refreshMicroServicePolicyJsonSchema/{loopName}/{microServicePolicyName}</a>
+<li><a href="#_verb7">2.17. PUT /v2/loop/refreshMicroServicePolicyJsonSchema/{loopName}/{microServicePolicyName}</a>
<ul class="sectlevel3">
<li><a href="#_parameters_11">2.17.1. Parameters</a></li>
<li><a href="#_responses_17">2.17.2. Responses</a></li>
<li><a href="#_produces_16">2.17.3. Produces</a></li>
</ul>
</li>
-<li><a href="#_verb86">2.18. PUT /v2/loop/refreshOperationalPolicyJsonSchema/{loopName}/{operationalPolicyName}</a>
+<li><a href="#_verb8">2.18. PUT /v2/loop/refreshOperationalPolicyJsonSchema/{loopName}/{operationalPolicyName}</a>
<ul class="sectlevel3">
<li><a href="#_parameters_12">2.18.1. Parameters</a></li>
<li><a href="#_responses_18">2.18.2. Responses</a></li>
<li><a href="#_produces_17">2.18.3. Produces</a></li>
</ul>
</li>
-<li><a href="#_verb94">2.19. PUT /v2/loop/removeOperationaPolicy/{loopName}/policyModel/{policyType}/{policyVersion}/{policyName}</a>
+<li><a href="#_verb16">2.19. PUT /v2/loop/removeOperationaPolicy/{loopName}/policyModel/{policyType}/{policyVersion}/{policyName}</a>
<ul class="sectlevel3">
<li><a href="#_parameters_13">2.19.1. Parameters</a></li>
<li><a href="#_responses_19">2.19.2. Responses</a></li>
<li><a href="#_produces_18">2.19.3. Produces</a></li>
</ul>
</li>
-<li><a href="#_verb89">2.20. PUT /v2/loop/restart/{loopName}</a>
+<li><a href="#_verb11">2.20. PUT /v2/loop/restart/{loopName}</a>
<ul class="sectlevel3">
<li><a href="#_parameters_14">2.20.1. Parameters</a></li>
<li><a href="#_responses_20">2.20.2. Responses</a></li>
<li><a href="#_produces_19">2.20.3. Produces</a></li>
</ul>
</li>
-<li><a href="#_verb88">2.21. PUT /v2/loop/stop/{loopName}</a>
+<li><a href="#_verb10">2.21. PUT /v2/loop/stop/{loopName}</a>
<ul class="sectlevel3">
<li><a href="#_parameters_15">2.21.1. Parameters</a></li>
<li><a href="#_responses_21">2.21.2. Responses</a></li>
<li><a href="#_produces_20">2.21.3. Produces</a></li>
</ul>
</li>
-<li><a href="#_verb90">2.22. PUT /v2/loop/submit/{loopName}</a>
+<li><a href="#_verb12">2.22. PUT /v2/loop/submit/{loopName}</a>
<ul class="sectlevel3">
<li><a href="#_parameters_16">2.22.1. Parameters</a></li>
<li><a href="#_responses_22">2.22.2. Responses</a></li>
<li><a href="#_produces_21">2.22.3. Produces</a></li>
</ul>
</li>
-<li><a href="#_verb87">2.23. PUT /v2/loop/undeploy/{loopName}</a>
+<li><a href="#_verb9">2.23. PUT /v2/loop/undeploy/{loopName}</a>
<ul class="sectlevel3">
<li><a href="#_parameters_17">2.23.1. Parameters</a></li>
<li><a href="#_responses_23">2.23.2. Responses</a></li>
<li><a href="#_produces_22">2.23.3. Produces</a></li>
</ul>
</li>
-<li><a href="#_verb81">2.24. POST /v2/loop/updateGlobalProperties/{loopName}</a>
+<li><a href="#_verb3">2.24. POST /v2/loop/updateGlobalProperties/{loopName}</a>
<ul class="sectlevel3">
<li><a href="#_parameters_18">2.24.1. Parameters</a></li>
<li><a href="#_responses_24">2.24.2. Responses</a></li>
@@ -609,7 +609,7 @@ body.book #toc,body.book #preamble,body.book h1.sect0,body.book .sect1>h2{page-b
<li><a href="#_produces_23">2.24.4. Produces</a></li>
</ul>
</li>
-<li><a href="#_verb83">2.25. POST /v2/loop/updateMicroservicePolicy/{loopName}</a>
+<li><a href="#_verb5">2.25. POST /v2/loop/updateMicroservicePolicy/{loopName}</a>
<ul class="sectlevel3">
<li><a href="#_parameters_19">2.25.1. Parameters</a></li>
<li><a href="#_responses_25">2.25.2. Responses</a></li>
@@ -617,7 +617,7 @@ body.book #toc,body.book #preamble,body.book h1.sect0,body.book .sect1>h2{page-b
<li><a href="#_produces_24">2.25.4. Produces</a></li>
</ul>
</li>
-<li><a href="#_verb82">2.26. POST /v2/loop/updateOperationalPolicies/{loopName}</a>
+<li><a href="#_verb4">2.26. POST /v2/loop/updateOperationalPolicies/{loopName}</a>
<ul class="sectlevel3">
<li><a href="#_parameters_20">2.26.1. Parameters</a></li>
<li><a href="#_responses_26">2.26.2. Responses</a></li>
@@ -625,34 +625,34 @@ body.book #toc,body.book #preamble,body.book h1.sect0,body.book .sect1>h2{page-b
<li><a href="#_produces_25">2.26.4. Produces</a></li>
</ul>
</li>
-<li><a href="#_verb80">2.27. GET /v2/loop/{loopName}</a>
+<li><a href="#_verb2">2.27. GET /v2/loop/{loopName}</a>
<ul class="sectlevel3">
<li><a href="#_parameters_21">2.27.1. Parameters</a></li>
<li><a href="#_responses_27">2.27.2. Responses</a></li>
<li><a href="#_produces_26">2.27.3. Produces</a></li>
</ul>
</li>
-<li><a href="#_verb109">2.28. GET /v2/policies</a>
+<li><a href="#_verb31">2.28. GET /v2/policies</a>
<ul class="sectlevel3">
<li><a href="#_responses_28">2.28.1. Responses</a></li>
<li><a href="#_produces_27">2.28.2. Produces</a></li>
</ul>
</li>
-<li><a href="#_verb112">2.29. PUT /v2/policies/pdpDeployment</a>
+<li><a href="#_verb34">2.29. PUT /v2/policies/pdpDeployment</a>
<ul class="sectlevel3">
<li><a href="#_parameters_22">2.29.1. Parameters</a></li>
<li><a href="#_responses_29">2.29.2. Responses</a></li>
<li><a href="#_consumes_7">2.29.3. Consumes</a></li>
</ul>
</li>
-<li><a href="#_verb113">2.30. POST /v2/policies/policytype</a>
+<li><a href="#_verb35">2.30. POST /v2/policies/policytype</a>
<ul class="sectlevel3">
<li><a href="#_parameters_23">2.30.1. Parameters</a></li>
<li><a href="#_responses_30">2.30.2. Responses</a></li>
<li><a href="#_consumes_8">2.30.3. Consumes</a></li>
</ul>
</li>
-<li><a href="#_verb110">2.31. POST /v2/policies/{policyModelType}/{policyModelVersion}/{policyName}/{policyVersion}</a>
+<li><a href="#_verb32">2.31. POST /v2/policies/{policyModelType}/{policyModelVersion}/{policyName}/{policyVersion}</a>
<ul class="sectlevel3">
<li><a href="#_parameters_24">2.31.1. Parameters</a></li>
<li><a href="#_responses_31">2.31.2. Responses</a></li>
@@ -660,55 +660,63 @@ body.book #toc,body.book #preamble,body.book h1.sect0,body.book .sect1>h2{page-b
<li><a href="#_produces_28">2.31.4. Produces</a></li>
</ul>
</li>
-<li><a href="#_verb111">2.32. DELETE /v2/policies/{policyModelType}/{policyModelVersion}/{policyName}/{policyVersion}</a>
+<li><a href="#_verb33">2.32. DELETE /v2/policies/{policyModelType}/{policyModelVersion}/{policyName}/{policyVersion}</a>
<ul class="sectlevel3">
<li><a href="#_parameters_25">2.32.1. Parameters</a></li>
<li><a href="#_responses_32">2.32.2. Responses</a></li>
</ul>
</li>
-<li><a href="#_verb106">2.33. GET /v2/policyToscaModels</a>
+<li><a href="#_verb28">2.33. GET /v2/policyToscaModels</a>
<ul class="sectlevel3">
<li><a href="#_responses_33">2.33.1. Responses</a></li>
<li><a href="#_produces_29">2.33.2. Produces</a></li>
</ul>
</li>
-<li><a href="#_verb108">2.34. GET /v2/policyToscaModels/yaml/{policyModelType}/{policyModelVersion}</a>
+<li><a href="#_verb30">2.34. GET /v2/policyToscaModels/yaml/{policyModelType}/{policyModelVersion}</a>
<ul class="sectlevel3">
<li><a href="#_parameters_26">2.34.1. Parameters</a></li>
<li><a href="#_responses_34">2.34.2. Responses</a></li>
<li><a href="#_produces_30">2.34.3. Produces</a></li>
</ul>
</li>
-<li><a href="#_verb107">2.35. GET /v2/policyToscaModels/{policyModelType}/{policyModelVersion}</a>
+<li><a href="#_verb29">2.35. GET /v2/policyToscaModels/{policyModelType}/{policyModelVersion}</a>
<ul class="sectlevel3">
<li><a href="#_parameters_27">2.35.1. Parameters</a></li>
<li><a href="#_responses_35">2.35.2. Responses</a></li>
<li><a href="#_produces_31">2.35.3. Produces</a></li>
</ul>
</li>
-<li><a href="#_verb96">2.36. GET /v2/templates</a>
+<li><a href="#_verb18">2.36. GET /v2/templates</a>
<ul class="sectlevel3">
<li><a href="#_responses_36">2.36.1. Responses</a></li>
<li><a href="#_produces_32">2.36.2. Produces</a></li>
</ul>
</li>
-<li><a href="#_verb98">2.37. GET /v2/templates/names</a>
+<li><a href="#_verb20">2.37. GET /v2/templates/names</a>
<ul class="sectlevel3">
<li><a href="#_responses_37">2.37.1. Responses</a></li>
<li><a href="#_produces_33">2.37.2. Produces</a></li>
</ul>
</li>
-<li><a href="#_verb97">2.38. GET /v2/templates/{templateName}</a>
+<li><a href="#_verb19">2.38. GET /v2/templates/{templateName}</a>
<ul class="sectlevel3">
<li><a href="#_parameters_28">2.38.1. Parameters</a></li>
<li><a href="#_responses_38">2.38.2. Responses</a></li>
<li><a href="#_produces_34">2.38.3. Produces</a></li>
</ul>
</li>
-<li><a href="#_verb114">2.39. GET /v2/toscaControlLoop/getToscaTemplate</a>
+<li><a href="#_verb37">2.39. POST /v2/toscaControlLoop/commissionToscaTemplate</a>
<ul class="sectlevel3">
-<li><a href="#_responses_39">2.39.1. Responses</a></li>
-<li><a href="#_produces_35">2.39.2. Produces</a></li>
+<li><a href="#_parameters_29">2.39.1. Parameters</a></li>
+<li><a href="#_responses_39">2.39.2. Responses</a></li>
+<li><a href="#_consumes_10">2.39.3. Consumes</a></li>
+<li><a href="#_produces_35">2.39.4. Produces</a></li>
+</ul>
+</li>
+<li><a href="#_verb36">2.40. GET /v2/toscaControlLoop/getToscaTemplate</a>
+<ul class="sectlevel3">
+<li><a href="#_responses_40">2.40.1. Responses</a></li>
+<li><a href="#_produces_36">2.40.2. Produces</a></li>
</ul>
</li>
</ul>
@@ -754,7 +762,7 @@ body.book #toc,body.book #preamble,body.book h1.sect0,body.book .sect1>h2{page-b
<div class="sect2">
<h3 id="_uri_scheme"><a class="anchor" href="#_uri_scheme"></a><a class="link" href="#_uri_scheme">1.2. URI scheme</a></h3>
<div class="paragraph">
-<p><em>Host</em> : localhost:33201<br>
+<p><em>Host</em> : localhost:40313<br>
<em>BasePath</em> : /restservices/clds/<br>
<em>Schemes</em> : HTTP</p>
</div>
@@ -765,7 +773,7 @@ body.book #toc,body.book #preamble,body.book h1.sect0,body.book .sect1>h2{page-b
<h2 id="_paths"><a class="anchor" href="#_paths"></a><a class="link" href="#_paths">2. Paths</a></h2>
<div class="sectionbody">
<div class="sect2">
-<h3 id="_verb116"><a class="anchor" href="#_verb116"></a><a class="link" href="#_verb116">2.1. GET /v1/healthcheck</a></h3>
+<h3 id="_verb39"><a class="anchor" href="#_verb39"></a><a class="link" href="#_verb39">2.1. GET /v1/healthcheck</a></h3>
<div class="sect3">
<h4 id="_responses"><a class="anchor" href="#_responses"></a><a class="link" href="#_responses">2.1.1. Responses</a></h4>
<table class="tableblock frame-all grid-all stretch">
@@ -802,7 +810,7 @@ body.book #toc,body.book #preamble,body.book h1.sect0,body.book .sect1>h2{page-b
</div>
</div>
<div class="sect2">
-<h3 id="_verb117"><a class="anchor" href="#_verb117"></a><a class="link" href="#_verb117">2.2. GET /v1/user/getUser</a></h3>
+<h3 id="_verb40"><a class="anchor" href="#_verb40"></a><a class="link" href="#_verb40">2.2. GET /v1/user/getUser</a></h3>
<div class="sect3">
<h4 id="_responses_2"><a class="anchor" href="#_responses_2"></a><a class="link" href="#_responses_2">2.2.1. Responses</a></h4>
<table class="tableblock frame-all grid-all stretch">
@@ -836,7 +844,7 @@ body.book #toc,body.book #preamble,body.book h1.sect0,body.book .sect1>h2{page-b
</div>
</div>
<div class="sect2">
-<h3 id="_verb115"><a class="anchor" href="#_verb115"></a><a class="link" href="#_verb115">2.3. GET /v2/clampInformation</a></h3>
+<h3 id="_verb38"><a class="anchor" href="#_verb38"></a><a class="link" href="#_verb38">2.3. GET /v2/clampInformation</a></h3>
<div class="sect3">
<h4 id="_responses_3"><a class="anchor" href="#_responses_3"></a><a class="link" href="#_responses_3">2.3.1. Responses</a></h4>
<table class="tableblock frame-all grid-all stretch">
@@ -873,7 +881,7 @@ body.book #toc,body.book #preamble,body.book h1.sect0,body.book .sect1>h2{page-b
</div>
</div>
<div class="sect2">
-<h3 id="_verb99"><a class="anchor" href="#_verb99"></a><a class="link" href="#_verb99">2.4. GET /v2/dictionary</a></h3>
+<h3 id="_verb21"><a class="anchor" href="#_verb21"></a><a class="link" href="#_verb21">2.4. GET /v2/dictionary</a></h3>
<div class="sect3">
<h4 id="_responses_4"><a class="anchor" href="#_responses_4"></a><a class="link" href="#_responses_4">2.4.1. Responses</a></h4>
<table class="tableblock frame-all grid-all stretch">
@@ -910,7 +918,7 @@ body.book #toc,body.book #preamble,body.book h1.sect0,body.book .sect1>h2{page-b
</div>
</div>
<div class="sect2">
-<h3 id="_verb102"><a class="anchor" href="#_verb102"></a><a class="link" href="#_verb102">2.5. PUT /v2/dictionary</a></h3>
+<h3 id="_verb24"><a class="anchor" href="#_verb24"></a><a class="link" href="#_verb24">2.5. PUT /v2/dictionary</a></h3>
<div class="sect3">
<h4 id="_parameters"><a class="anchor" href="#_parameters"></a><a class="link" href="#_parameters">2.5.1. Parameters</a></h4>
<table class="tableblock frame-all grid-all stretch">
@@ -982,7 +990,7 @@ body.book #toc,body.book #preamble,body.book h1.sect0,body.book .sect1>h2{page-b
</div>
</div>
<div class="sect2">
-<h3 id="_verb100"><a class="anchor" href="#_verb100"></a><a class="link" href="#_verb100">2.6. GET /v2/dictionary/secondary/names</a></h3>
+<h3 id="_verb22"><a class="anchor" href="#_verb22"></a><a class="link" href="#_verb22">2.6. GET /v2/dictionary/secondary/names</a></h3>
<div class="sect3">
<h4 id="_responses_6"><a class="anchor" href="#_responses_6"></a><a class="link" href="#_responses_6">2.6.1. Responses</a></h4>
<table class="tableblock frame-all grid-all stretch">
@@ -1019,7 +1027,7 @@ body.book #toc,body.book #preamble,body.book h1.sect0,body.book .sect1>h2{page-b
</div>
</div>
<div class="sect2">
-<h3 id="_verb101"><a class="anchor" href="#_verb101"></a><a class="link" href="#_verb101">2.7. GET /v2/dictionary/{dictionaryName}</a></h3>
+<h3 id="_verb23"><a class="anchor" href="#_verb23"></a><a class="link" href="#_verb23">2.7. GET /v2/dictionary/{dictionaryName}</a></h3>
<div class="sect3">
<h4 id="_parameters_2"><a class="anchor" href="#_parameters_2"></a><a class="link" href="#_parameters_2">2.7.1. Parameters</a></h4>
<table class="tableblock frame-all grid-all stretch">
@@ -1081,7 +1089,7 @@ body.book #toc,body.book #preamble,body.book h1.sect0,body.book .sect1>h2{page-b
</div>
</div>
<div class="sect2">
-<h3 id="_verb103"><a class="anchor" href="#_verb103"></a><a class="link" href="#_verb103">2.8. PUT /v2/dictionary/{name}</a></h3>
+<h3 id="_verb25"><a class="anchor" href="#_verb25"></a><a class="link" href="#_verb25">2.8. PUT /v2/dictionary/{name}</a></h3>
<div class="sect3">
<h4 id="_parameters_3"><a class="anchor" href="#_parameters_3"></a><a class="link" href="#_parameters_3">2.8.1. Parameters</a></h4>
<table class="tableblock frame-all grid-all stretch">
@@ -1159,7 +1167,7 @@ body.book #toc,body.book #preamble,body.book h1.sect0,body.book .sect1>h2{page-b
</div>
</div>
<div class="sect2">
-<h3 id="_verb104"><a class="anchor" href="#_verb104"></a><a class="link" href="#_verb104">2.9. DELETE /v2/dictionary/{name}</a></h3>
+<h3 id="_verb26"><a class="anchor" href="#_verb26"></a><a class="link" href="#_verb26">2.9. DELETE /v2/dictionary/{name}</a></h3>
<div class="sect3">
<h4 id="_parameters_4"><a class="anchor" href="#_parameters_4"></a><a class="link" href="#_parameters_4">2.9.1. Parameters</a></h4>
<table class="tableblock frame-all grid-all stretch">
@@ -1218,7 +1226,7 @@ body.book #toc,body.book #preamble,body.book h1.sect0,body.book .sect1>h2{page-b
</div>
</div>
<div class="sect2">
-<h3 id="_verb105"><a class="anchor" href="#_verb105"></a><a class="link" href="#_verb105">2.10. DELETE /v2/dictionary/{name}/elements/{shortName}</a></h3>
+<h3 id="_verb27"><a class="anchor" href="#_verb27"></a><a class="link" href="#_verb27">2.10. DELETE /v2/dictionary/{name}/elements/{shortName}</a></h3>
<div class="sect3">
<h4 id="_parameters_5"><a class="anchor" href="#_parameters_5"></a><a class="link" href="#_parameters_5">2.10.1. Parameters</a></h4>
<table class="tableblock frame-all grid-all stretch">
@@ -1283,7 +1291,7 @@ body.book #toc,body.book #preamble,body.book h1.sect0,body.book .sect1>h2{page-b
</div>
</div>
<div class="sect2">
-<h3 id="_verb93"><a class="anchor" href="#_verb93"></a><a class="link" href="#_verb93">2.11. PUT /v2/loop/addOperationaPolicy/{loopName}/policyModel/{policyType}/{policyVersion}</a></h3>
+<h3 id="_verb15"><a class="anchor" href="#_verb15"></a><a class="link" href="#_verb15">2.11. PUT /v2/loop/addOperationaPolicy/{loopName}/policyModel/{policyType}/{policyVersion}</a></h3>
<div class="sect3">
<h4 id="_parameters_6"><a class="anchor" href="#_parameters_6"></a><a class="link" href="#_parameters_6">2.11.1. Parameters</a></h4>
<table class="tableblock frame-all grid-all stretch">
@@ -1357,7 +1365,7 @@ body.book #toc,body.book #preamble,body.book h1.sect0,body.book .sect1>h2{page-b
</div>
</div>
<div class="sect2">
-<h3 id="_verb95"><a class="anchor" href="#_verb95"></a><a class="link" href="#_verb95">2.12. POST /v2/loop/create/{loopName}?templateName={templateName}</a></h3>
+<h3 id="_verb17"><a class="anchor" href="#_verb17"></a><a class="link" href="#_verb17">2.12. POST /v2/loop/create/{loopName}?templateName={templateName}</a></h3>
<div class="sect3">
<h4 id="_parameters_7"><a class="anchor" href="#_parameters_7"></a><a class="link" href="#_parameters_7">2.12.1. Parameters</a></h4>
<table class="tableblock frame-all grid-all stretch">
@@ -1435,7 +1443,7 @@ body.book #toc,body.book #preamble,body.book h1.sect0,body.book .sect1>h2{page-b
</div>
</div>
<div class="sect2">
-<h3 id="_verb91"><a class="anchor" href="#_verb91"></a><a class="link" href="#_verb91">2.13. PUT /v2/loop/delete/{loopName}</a></h3>
+<h3 id="_verb13"><a class="anchor" href="#_verb13"></a><a class="link" href="#_verb13">2.13. PUT /v2/loop/delete/{loopName}</a></h3>
<div class="sect3">
<h4 id="_parameters_8"><a class="anchor" href="#_parameters_8"></a><a class="link" href="#_parameters_8">2.13.1. Parameters</a></h4>
<table class="tableblock frame-all grid-all stretch">
@@ -1484,7 +1492,7 @@ body.book #toc,body.book #preamble,body.book h1.sect0,body.book .sect1>h2{page-b
</div>
</div>
<div class="sect2">
-<h3 id="_verb84"><a class="anchor" href="#_verb84"></a><a class="link" href="#_verb84">2.14. PUT /v2/loop/deploy/{loopName}</a></h3>
+<h3 id="_verb6"><a class="anchor" href="#_verb6"></a><a class="link" href="#_verb6">2.14. PUT /v2/loop/deploy/{loopName}</a></h3>
<div class="sect3">
<h4 id="_parameters_9"><a class="anchor" href="#_parameters_9"></a><a class="link" href="#_parameters_9">2.14.1. Parameters</a></h4>
<table class="tableblock frame-all grid-all stretch">
@@ -1546,7 +1554,7 @@ body.book #toc,body.book #preamble,body.book h1.sect0,body.book .sect1>h2{page-b
</div>
</div>
<div class="sect2">
-<h3 id="_verb79"><a class="anchor" href="#_verb79"></a><a class="link" href="#_verb79">2.15. GET /v2/loop/getAllNames</a></h3>
+<h3 id="_verb1"><a class="anchor" href="#_verb1"></a><a class="link" href="#_verb1">2.15. GET /v2/loop/getAllNames</a></h3>
<div class="sect3">
<h4 id="_responses_15"><a class="anchor" href="#_responses_15"></a><a class="link" href="#_responses_15">2.15.1. Responses</a></h4>
<table class="tableblock frame-all grid-all stretch">
@@ -1583,7 +1591,7 @@ body.book #toc,body.book #preamble,body.book h1.sect0,body.book .sect1>h2{page-b
</div>
</div>
<div class="sect2">
-<h3 id="_verb92"><a class="anchor" href="#_verb92"></a><a class="link" href="#_verb92">2.16. GET /v2/loop/getstatus/{loopName}</a></h3>
+<h3 id="_verb14"><a class="anchor" href="#_verb14"></a><a class="link" href="#_verb14">2.16. GET /v2/loop/getstatus/{loopName}</a></h3>
<div class="sect3">
<h4 id="_parameters_10"><a class="anchor" href="#_parameters_10"></a><a class="link" href="#_parameters_10">2.16.1. Parameters</a></h4>
<table class="tableblock frame-all grid-all stretch">
@@ -1645,7 +1653,7 @@ body.book #toc,body.book #preamble,body.book h1.sect0,body.book .sect1>h2{page-b
</div>
</div>
<div class="sect2">
-<h3 id="_verb85"><a class="anchor" href="#_verb85"></a><a class="link" href="#_verb85">2.17. PUT /v2/loop/refreshMicroServicePolicyJsonSchema/{loopName}/{microServicePolicyName}</a></h3>
+<h3 id="_verb7"><a class="anchor" href="#_verb7"></a><a class="link" href="#_verb7">2.17. PUT /v2/loop/refreshMicroServicePolicyJsonSchema/{loopName}/{microServicePolicyName}</a></h3>
<div class="sect3">
<h4 id="_parameters_11"><a class="anchor" href="#_parameters_11"></a><a class="link" href="#_parameters_11">2.17.1. Parameters</a></h4>
<table class="tableblock frame-all grid-all stretch">
@@ -1713,7 +1721,7 @@ body.book #toc,body.book #preamble,body.book h1.sect0,body.book .sect1>h2{page-b
</div>
</div>
<div class="sect2">
-<h3 id="_verb86"><a class="anchor" href="#_verb86"></a><a class="link" href="#_verb86">2.18. PUT /v2/loop/refreshOperationalPolicyJsonSchema/{loopName}/{operationalPolicyName}</a></h3>
+<h3 id="_verb8"><a class="anchor" href="#_verb8"></a><a class="link" href="#_verb8">2.18. PUT /v2/loop/refreshOperationalPolicyJsonSchema/{loopName}/{operationalPolicyName}</a></h3>
<div class="sect3">
<h4 id="_parameters_12"><a class="anchor" href="#_parameters_12"></a><a class="link" href="#_parameters_12">2.18.1. Parameters</a></h4>
<table class="tableblock frame-all grid-all stretch">
@@ -1781,7 +1789,7 @@ body.book #toc,body.book #preamble,body.book h1.sect0,body.book .sect1>h2{page-b
</div>
</div>
<div class="sect2">
-<h3 id="_verb94"><a class="anchor" href="#_verb94"></a><a class="link" href="#_verb94">2.19. PUT /v2/loop/removeOperationaPolicy/{loopName}/policyModel/{policyType}/{policyVersion}/{policyName}</a></h3>
+<h3 id="_verb16"><a class="anchor" href="#_verb16"></a><a class="link" href="#_verb16">2.19. PUT /v2/loop/removeOperationaPolicy/{loopName}/policyModel/{policyType}/{policyVersion}/{policyName}</a></h3>
<div class="sect3">
<h4 id="_parameters_13"><a class="anchor" href="#_parameters_13"></a><a class="link" href="#_parameters_13">2.19.1. Parameters</a></h4>
<table class="tableblock frame-all grid-all stretch">
@@ -1861,7 +1869,7 @@ body.book #toc,body.book #preamble,body.book h1.sect0,body.book .sect1>h2{page-b
</div>
</div>
<div class="sect2">
-<h3 id="_verb89"><a class="anchor" href="#_verb89"></a><a class="link" href="#_verb89">2.20. PUT /v2/loop/restart/{loopName}</a></h3>
+<h3 id="_verb11"><a class="anchor" href="#_verb11"></a><a class="link" href="#_verb11">2.20. PUT /v2/loop/restart/{loopName}</a></h3>
<div class="sect3">
<h4 id="_parameters_14"><a class="anchor" href="#_parameters_14"></a><a class="link" href="#_parameters_14">2.20.1. Parameters</a></h4>
<table class="tableblock frame-all grid-all stretch">
@@ -1923,7 +1931,7 @@ body.book #toc,body.book #preamble,body.book h1.sect0,body.book .sect1>h2{page-b
</div>
</div>
<div class="sect2">
-<h3 id="_verb88"><a class="anchor" href="#_verb88"></a><a class="link" href="#_verb88">2.21. PUT /v2/loop/stop/{loopName}</a></h3>
+<h3 id="_verb10"><a class="anchor" href="#_verb10"></a><a class="link" href="#_verb10">2.21. PUT /v2/loop/stop/{loopName}</a></h3>
<div class="sect3">
<h4 id="_parameters_15"><a class="anchor" href="#_parameters_15"></a><a class="link" href="#_parameters_15">2.21.1. Parameters</a></h4>
<table class="tableblock frame-all grid-all stretch">
@@ -1985,7 +1993,7 @@ body.book #toc,body.book #preamble,body.book h1.sect0,body.book .sect1>h2{page-b
</div>
</div>
<div class="sect2">
-<h3 id="_verb90"><a class="anchor" href="#_verb90"></a><a class="link" href="#_verb90">2.22. PUT /v2/loop/submit/{loopName}</a></h3>
+<h3 id="_verb12"><a class="anchor" href="#_verb12"></a><a class="link" href="#_verb12">2.22. PUT /v2/loop/submit/{loopName}</a></h3>
<div class="sect3">
<h4 id="_parameters_16"><a class="anchor" href="#_parameters_16"></a><a class="link" href="#_parameters_16">2.22.1. Parameters</a></h4>
<table class="tableblock frame-all grid-all stretch">
@@ -2047,7 +2055,7 @@ body.book #toc,body.book #preamble,body.book h1.sect0,body.book .sect1>h2{page-b
</div>
</div>
<div class="sect2">
-<h3 id="_verb87"><a class="anchor" href="#_verb87"></a><a class="link" href="#_verb87">2.23. PUT /v2/loop/undeploy/{loopName}</a></h3>
+<h3 id="_verb9"><a class="anchor" href="#_verb9"></a><a class="link" href="#_verb9">2.23. PUT /v2/loop/undeploy/{loopName}</a></h3>
<div class="sect3">
<h4 id="_parameters_17"><a class="anchor" href="#_parameters_17"></a><a class="link" href="#_parameters_17">2.23.1. Parameters</a></h4>
<table class="tableblock frame-all grid-all stretch">
@@ -2109,7 +2117,7 @@ body.book #toc,body.book #preamble,body.book h1.sect0,body.book .sect1>h2{page-b
</div>
</div>
<div class="sect2">
-<h3 id="_verb81"><a class="anchor" href="#_verb81"></a><a class="link" href="#_verb81">2.24. POST /v2/loop/updateGlobalProperties/{loopName}</a></h3>
+<h3 id="_verb3"><a class="anchor" href="#_verb3"></a><a class="link" href="#_verb3">2.24. POST /v2/loop/updateGlobalProperties/{loopName}</a></h3>
<div class="sect3">
<h4 id="_parameters_18"><a class="anchor" href="#_parameters_18"></a><a class="link" href="#_parameters_18">2.24.1. Parameters</a></h4>
<table class="tableblock frame-all grid-all stretch">
@@ -2187,7 +2195,7 @@ body.book #toc,body.book #preamble,body.book h1.sect0,body.book .sect1>h2{page-b
</div>
</div>
<div class="sect2">
-<h3 id="_verb83"><a class="anchor" href="#_verb83"></a><a class="link" href="#_verb83">2.25. POST /v2/loop/updateMicroservicePolicy/{loopName}</a></h3>
+<h3 id="_verb5"><a class="anchor" href="#_verb5"></a><a class="link" href="#_verb5">2.25. POST /v2/loop/updateMicroservicePolicy/{loopName}</a></h3>
<div class="sect3">
<h4 id="_parameters_19"><a class="anchor" href="#_parameters_19"></a><a class="link" href="#_parameters_19">2.25.1. Parameters</a></h4>
<table class="tableblock frame-all grid-all stretch">
@@ -2265,7 +2273,7 @@ body.book #toc,body.book #preamble,body.book h1.sect0,body.book .sect1>h2{page-b
</div>
</div>
<div class="sect2">
-<h3 id="_verb82"><a class="anchor" href="#_verb82"></a><a class="link" href="#_verb82">2.26. POST /v2/loop/updateOperationalPolicies/{loopName}</a></h3>
+<h3 id="_verb4"><a class="anchor" href="#_verb4"></a><a class="link" href="#_verb4">2.26. POST /v2/loop/updateOperationalPolicies/{loopName}</a></h3>
<div class="sect3">
<h4 id="_parameters_20"><a class="anchor" href="#_parameters_20"></a><a class="link" href="#_parameters_20">2.26.1. Parameters</a></h4>
<table class="tableblock frame-all grid-all stretch">
@@ -2343,7 +2351,7 @@ body.book #toc,body.book #preamble,body.book h1.sect0,body.book .sect1>h2{page-b
</div>
</div>
<div class="sect2">
-<h3 id="_verb80"><a class="anchor" href="#_verb80"></a><a class="link" href="#_verb80">2.27. GET /v2/loop/{loopName}</a></h3>
+<h3 id="_verb2"><a class="anchor" href="#_verb2"></a><a class="link" href="#_verb2">2.27. GET /v2/loop/{loopName}</a></h3>
<div class="sect3">
<h4 id="_parameters_21"><a class="anchor" href="#_parameters_21"></a><a class="link" href="#_parameters_21">2.27.1. Parameters</a></h4>
<table class="tableblock frame-all grid-all stretch">
@@ -2405,7 +2413,7 @@ body.book #toc,body.book #preamble,body.book h1.sect0,body.book .sect1>h2{page-b
</div>
</div>
<div class="sect2">
-<h3 id="_verb109"><a class="anchor" href="#_verb109"></a><a class="link" href="#_verb109">2.28. GET /v2/policies</a></h3>
+<h3 id="_verb31"><a class="anchor" href="#_verb31"></a><a class="link" href="#_verb31">2.28. GET /v2/policies</a></h3>
<div class="sect3">
<h4 id="_responses_28"><a class="anchor" href="#_responses_28"></a><a class="link" href="#_responses_28">2.28.1. Responses</a></h4>
<table class="tableblock frame-all grid-all stretch">
@@ -2442,7 +2450,7 @@ body.book #toc,body.book #preamble,body.book h1.sect0,body.book .sect1>h2{page-b
</div>
</div>
<div class="sect2">
-<h3 id="_verb112"><a class="anchor" href="#_verb112"></a><a class="link" href="#_verb112">2.29. PUT /v2/policies/pdpDeployment</a></h3>
+<h3 id="_verb34"><a class="anchor" href="#_verb34"></a><a class="link" href="#_verb34">2.29. PUT /v2/policies/pdpDeployment</a></h3>
<div class="sect3">
<h4 id="_parameters_22"><a class="anchor" href="#_parameters_22"></a><a class="link" href="#_parameters_22">2.29.1. Parameters</a></h4>
<table class="tableblock frame-all grid-all stretch">
@@ -2501,7 +2509,7 @@ body.book #toc,body.book #preamble,body.book h1.sect0,body.book .sect1>h2{page-b
</div>
</div>
<div class="sect2">
-<h3 id="_verb113"><a class="anchor" href="#_verb113"></a><a class="link" href="#_verb113">2.30. POST /v2/policies/policytype</a></h3>
+<h3 id="_verb35"><a class="anchor" href="#_verb35"></a><a class="link" href="#_verb35">2.30. POST /v2/policies/policytype</a></h3>
<div class="sect3">
<h4 id="_parameters_23"><a class="anchor" href="#_parameters_23"></a><a class="link" href="#_parameters_23">2.30.1. Parameters</a></h4>
<table class="tableblock frame-all grid-all stretch">
@@ -2560,7 +2568,7 @@ body.book #toc,body.book #preamble,body.book h1.sect0,body.book .sect1>h2{page-b
</div>
</div>
<div class="sect2">
-<h3 id="_verb110"><a class="anchor" href="#_verb110"></a><a class="link" href="#_verb110">2.31. POST /v2/policies/{policyModelType}/{policyModelVersion}/{policyName}/{policyVersion}</a></h3>
+<h3 id="_verb32"><a class="anchor" href="#_verb32"></a><a class="link" href="#_verb32">2.31. POST /v2/policies/{policyModelType}/{policyModelVersion}/{policyName}/{policyVersion}</a></h3>
<div class="sect3">
<h4 id="_parameters_24"><a class="anchor" href="#_parameters_24"></a><a class="link" href="#_parameters_24">2.31.1. Parameters</a></h4>
<table class="tableblock frame-all grid-all stretch">
@@ -2656,7 +2664,7 @@ body.book #toc,body.book #preamble,body.book h1.sect0,body.book .sect1>h2{page-b
</div>
</div>
<div class="sect2">
-<h3 id="_verb111"><a class="anchor" href="#_verb111"></a><a class="link" href="#_verb111">2.32. DELETE /v2/policies/{policyModelType}/{policyModelVersion}/{policyName}/{policyVersion}</a></h3>
+<h3 id="_verb33"><a class="anchor" href="#_verb33"></a><a class="link" href="#_verb33">2.32. DELETE /v2/policies/{policyModelType}/{policyModelVersion}/{policyName}/{policyVersion}</a></h3>
<div class="sect3">
<h4 id="_parameters_25"><a class="anchor" href="#_parameters_25"></a><a class="link" href="#_parameters_25">2.32.1. Parameters</a></h4>
<table class="tableblock frame-all grid-all stretch">
@@ -2723,7 +2731,7 @@ body.book #toc,body.book #preamble,body.book h1.sect0,body.book .sect1>h2{page-b
</div>
</div>
<div class="sect2">
-<h3 id="_verb106"><a class="anchor" href="#_verb106"></a><a class="link" href="#_verb106">2.33. GET /v2/policyToscaModels</a></h3>
+<h3 id="_verb28"><a class="anchor" href="#_verb28"></a><a class="link" href="#_verb28">2.33. GET /v2/policyToscaModels</a></h3>
<div class="sect3">
<h4 id="_responses_33"><a class="anchor" href="#_responses_33"></a><a class="link" href="#_responses_33">2.33.1. Responses</a></h4>
<table class="tableblock frame-all grid-all stretch">
@@ -2760,7 +2768,7 @@ body.book #toc,body.book #preamble,body.book h1.sect0,body.book .sect1>h2{page-b
</div>
</div>
<div class="sect2">
-<h3 id="_verb108"><a class="anchor" href="#_verb108"></a><a class="link" href="#_verb108">2.34. GET /v2/policyToscaModels/yaml/{policyModelType}/{policyModelVersion}</a></h3>
+<h3 id="_verb30"><a class="anchor" href="#_verb30"></a><a class="link" href="#_verb30">2.34. GET /v2/policyToscaModels/yaml/{policyModelType}/{policyModelVersion}</a></h3>
<div class="sect3">
<h4 id="_parameters_26"><a class="anchor" href="#_parameters_26"></a><a class="link" href="#_parameters_26">2.34.1. Parameters</a></h4>
<table class="tableblock frame-all grid-all stretch">
@@ -2828,7 +2836,7 @@ body.book #toc,body.book #preamble,body.book h1.sect0,body.book .sect1>h2{page-b
</div>
</div>
<div class="sect2">
-<h3 id="_verb107"><a class="anchor" href="#_verb107"></a><a class="link" href="#_verb107">2.35. GET /v2/policyToscaModels/{policyModelType}/{policyModelVersion}</a></h3>
+<h3 id="_verb29"><a class="anchor" href="#_verb29"></a><a class="link" href="#_verb29">2.35. GET /v2/policyToscaModels/{policyModelType}/{policyModelVersion}</a></h3>
<div class="sect3">
<h4 id="_parameters_27"><a class="anchor" href="#_parameters_27"></a><a class="link" href="#_parameters_27">2.35.1. Parameters</a></h4>
<table class="tableblock frame-all grid-all stretch">
@@ -2896,7 +2904,7 @@ body.book #toc,body.book #preamble,body.book h1.sect0,body.book .sect1>h2{page-b
</div>
</div>
<div class="sect2">
-<h3 id="_verb96"><a class="anchor" href="#_verb96"></a><a class="link" href="#_verb96">2.36. GET /v2/templates</a></h3>
+<h3 id="_verb18"><a class="anchor" href="#_verb18"></a><a class="link" href="#_verb18">2.36. GET /v2/templates</a></h3>
<div class="sect3">
<h4 id="_responses_36"><a class="anchor" href="#_responses_36"></a><a class="link" href="#_responses_36">2.36.1. Responses</a></h4>
<table class="tableblock frame-all grid-all stretch">
@@ -2933,7 +2941,7 @@ body.book #toc,body.book #preamble,body.book h1.sect0,body.book .sect1>h2{page-b
</div>
</div>
<div class="sect2">
-<h3 id="_verb98"><a class="anchor" href="#_verb98"></a><a class="link" href="#_verb98">2.37. GET /v2/templates/names</a></h3>
+<h3 id="_verb20"><a class="anchor" href="#_verb20"></a><a class="link" href="#_verb20">2.37. GET /v2/templates/names</a></h3>
<div class="sect3">
<h4 id="_responses_37"><a class="anchor" href="#_responses_37"></a><a class="link" href="#_responses_37">2.37.1. Responses</a></h4>
<table class="tableblock frame-all grid-all stretch">
@@ -2970,7 +2978,7 @@ body.book #toc,body.book #preamble,body.book h1.sect0,body.book .sect1>h2{page-b
</div>
</div>
<div class="sect2">
-<h3 id="_verb97"><a class="anchor" href="#_verb97"></a><a class="link" href="#_verb97">2.38. GET /v2/templates/{templateName}</a></h3>
+<h3 id="_verb19"><a class="anchor" href="#_verb19"></a><a class="link" href="#_verb19">2.38. GET /v2/templates/{templateName}</a></h3>
<div class="sect3">
<h4 id="_parameters_28"><a class="anchor" href="#_parameters_28"></a><a class="link" href="#_parameters_28">2.38.1. Parameters</a></h4>
<table class="tableblock frame-all grid-all stretch">
@@ -3032,9 +3040,81 @@ body.book #toc,body.book #preamble,body.book h1.sect0,body.book .sect1>h2{page-b
</div>
</div>
<div class="sect2">
-<h3 id="_verb114"><a class="anchor" href="#_verb114"></a><a class="link" href="#_verb114">2.39. GET /v2/toscaControlLoop/getToscaTemplate</a></h3>
+<h3 id="_verb37"><a class="anchor" href="#_verb37"></a><a class="link" href="#_verb37">2.39. POST /v2/toscaControlLoop/commissionToscaTemplate</a></h3>
+<div class="sect3">
+<h4 id="_parameters_29"><a class="anchor" href="#_parameters_29"></a><a class="link" href="#_parameters_29">2.39.1. Parameters</a></h4>
+<table class="tableblock frame-all grid-all stretch">
+<colgroup>
+<col style="width: 22.2222%;">
+<col style="width: 33.3333%;">
+<col style="width: 44.4445%;">
+</colgroup>
+<thead>
+<tr>
+<th class="tableblock halign-left valign-middle">Type</th>
+<th class="tableblock halign-left valign-middle">Name</th>
+<th class="tableblock halign-left valign-middle">Schema</th>
+</tr>
+</thead>
+<tbody>
+<tr>
+<td class="tableblock halign-left valign-middle"><p class="tableblock"><strong>Body</strong></p></td>
+<td class="tableblock halign-left valign-middle"><p class="tableblock"><strong>body</strong><br>
+<em>required</em></p></td>
+<td class="tableblock halign-left valign-middle"><p class="tableblock">string</p></td>
+</tr>
+</tbody>
+</table>
+</div>
+<div class="sect3">
+<h4 id="_responses_39"><a class="anchor" href="#_responses_39"></a><a class="link" href="#_responses_39">2.39.2. Responses</a></h4>
+<table class="tableblock frame-all grid-all stretch">
+<colgroup>
+<col style="width: 10%;">
+<col style="width: 70%;">
+<col style="width: 20%;">
+</colgroup>
+<thead>
+<tr>
+<th class="tableblock halign-left valign-middle">HTTP Code</th>
+<th class="tableblock halign-left valign-middle">Description</th>
+<th class="tableblock halign-left valign-middle">Schema</th>
+</tr>
+</thead>
+<tbody>
+<tr>
+<td class="tableblock halign-left valign-middle"><p class="tableblock"><strong>200</strong></p></td>
+<td class="tableblock halign-left valign-middle"><p class="tableblock">Output type</p></td>
+<td class="tableblock halign-left valign-middle"><p class="tableblock">string</p></td>
+</tr>
+</tbody>
+</table>
+</div>
+<div class="sect3">
+<h4 id="_consumes_10"><a class="anchor" href="#_consumes_10"></a><a class="link" href="#_consumes_10">2.39.3. Consumes</a></h4>
+<div class="ulist">
+<ul>
+<li>
+<p><code>plain/text</code></p>
+</li>
+</ul>
+</div>
+</div>
+<div class="sect3">
+<h4 id="_produces_35"><a class="anchor" href="#_produces_35"></a><a class="link" href="#_produces_35">2.39.4. Produces</a></h4>
+<div class="ulist">
+<ul>
+<li>
+<p><code>application/json</code></p>
+</li>
+</ul>
+</div>
+</div>
+</div>
+<div class="sect2">
+<h3 id="_verb36"><a class="anchor" href="#_verb36"></a><a class="link" href="#_verb36">2.40. GET /v2/toscaControlLoop/getToscaTemplate</a></h3>
<div class="sect3">
-<h4 id="_responses_39"><a class="anchor" href="#_responses_39"></a><a class="link" href="#_responses_39">2.39.1. Responses</a></h4>
+<h4 id="_responses_40"><a class="anchor" href="#_responses_40"></a><a class="link" href="#_responses_40">2.40.1. Responses</a></h4>
<table class="tableblock frame-all grid-all stretch">
<colgroup>
<col style="width: 10%;">
@@ -3058,7 +3138,7 @@ body.book #toc,body.book #preamble,body.book h1.sect0,body.book .sect1>h2{page-b
</table>
</div>
<div class="sect3">
-<h4 id="_produces_35"><a class="anchor" href="#_produces_35"></a><a class="link" href="#_produces_35">2.39.2. Produces</a></h4>
+<h4 id="_produces_36"><a class="anchor" href="#_produces_36"></a><a class="link" href="#_produces_36">2.40.2. Produces</a></h4>
<div class="ulist">
<ul>
<li>
@@ -4544,7 +4624,7 @@ body.book #toc,body.book #preamble,body.book h1.sect0,body.book .sect1>h2{page-b
</div>
<div id="footer">
<div id="footer-text">
-Last updated 2021-06-08 11:33:09 IST
+Last updated 2021-06-17 16:04:11 IST
</div>
</div>
</body>
diff --git a/runtime/src/main/resources/clds/camel/rest/clamp-api-v2.xml b/runtime/src/main/resources/clds/camel/rest/clamp-api-v2.xml
index 6a5da8710..5fd242282 100644
--- a/runtime/src/main/resources/clds/camel/rest/clamp-api-v2.xml
+++ b/runtime/src/main/resources/clds/camel/rest/clamp-api-v2.xml
@@ -1461,7 +1461,8 @@
</route>
</post>
- <get uri="/v2/toscaControlLoop/getToscaTemplate" outType="java.lang.String" bindingMode="off" produces="application/json">
+ <get uri="/v2/toscaControlLoop/getToscaTemplate" outType="java.lang.String" bindingMode="off"
+ produces="application/json">
<route>
<removeHeaders pattern="*"
excludePattern="name|version"/>
@@ -1499,6 +1500,49 @@
</route>
</get>
+ <post uri="/v2/toscaControlLoop/commissionToscaTemplate"
+ type="java.lang.String"
+ consumes="plain/text"
+ outType="java.lang.String"
+ produces="application/json"
+ bindingMode="off">
+ <route>
+ <removeHeaders pattern="*"/>
+ <setProperty name="raiseHttpExceptionFlag">
+ <simple resultType="java.lang.Boolean">true</simple>
+ </setProperty>
+ <setHeader name="Content-Type">
+ <constant>application/json</constant>
+ </setHeader>
+ <doTry>
+ <to
+ uri="bean:org.onap.policy.clamp.flow.log.FlowLogOperation?method=startLog(*, 'Update the global properties')"/>
+ <to
+ uri="bean:org.onap.policy.clamp.authorization.AuthorizationController?method=authorize(*,'cl','','update')"/>
+ <to uri="direct:commission-service-template"/>
+ <to
+ uri="bean:org.onap.policy.clamp.flow.log.FlowLogOperation?method=endLog()"/>
+ <doCatch>
+ <exception>java.lang.Exception</exception>
+ <handled>
+ <constant>true</constant>
+ </handled>
+ <to
+ uri="bean:org.onap.policy.clamp.flow.log.FlowLogOperation?method=errorLog()"/>
+ <log loggingLevel="ERROR"
+ message="Commissioning of Tosca Service Template FAILED"/>
+
+ <setHeader name="CamelHttpResponseCode">
+ <constant>500</constant>
+ </setHeader>
+ <setBody>
+ <simple>Commissioning Tosca Service Template FAILED</simple>
+ </setBody>
+ </doCatch>
+ </doTry>
+ </route>
+ </post>
+
<get uri="/v2/clampInformation" outType="org.onap.policy.clamp.clds.model.ClampInformation"
produces="application/json">
<route>
diff --git a/runtime/src/main/resources/clds/camel/routes/controlloop-flows.xml b/runtime/src/main/resources/clds/camel/routes/controlloop-flows.xml
index b1fad103b..0641b326e 100644
--- a/runtime/src/main/resources/clds/camel/routes/controlloop-flows.xml
+++ b/runtime/src/main/resources/clds/camel/routes/controlloop-flows.xml
@@ -30,4 +30,26 @@
</doFinally>
</doTry>
</route>
+ <route id="commission-service-template">
+ <from uri="direct:commission-service-template"/>
+ <doTry>
+ <log loggingLevel="INFO"
+ message="Commissioning the tosca service template"/>
+ <to
+ uri="bean:org.onap.policy.clamp.flow.log.FlowLogOperation?method=invokeLog('Controlloop', 'Commissioning the tosca service template')"/>
+ <setHeader name="CamelHttpMethod">
+ <constant>POST</constant>
+ </setHeader>
+ <log loggingLevel="INFO"
+ message="Endpoint to send Tosca Service Template: {{clamp.config.controlloop.runtime.url}}/onap/controlloop/v2/commission"></log>
+ <toD
+ uri="{{clamp.config.controlloop.runtime.url}}/onap/controlloop/v2/commission?bridgeEndpoint=true&amp;useSystemProperties=true&amp;mapHttpMessageHeaders=false&amp;throwExceptionOnFailure=${exchangeProperty[raiseHttpExceptionFlag]}&amp;authMethod=Basic&amp;authUsername={{clamp.config.controlloop.runtime.userName}}&amp;authPassword={{clamp.config.controlloop.runtime.password}}&amp;authenticationPreemptive=true&amp;connectionClose=true"/>
+ <convertBodyTo type="java.lang.String"/>
+ <doFinally>
+ <to uri="direct:reset-raise-http-exception-flag"/>
+ <to
+ uri="bean:org.onap.policy.clamp.flow.log.FlowLogOperation?method=invokeReturnLog()"/>
+ </doFinally>
+ </doTry>
+ </route>
</routes>
diff --git a/runtime/src/test/java/org/onap/policy/clamp/clds/it/AuthorizationControllerItCase.java b/runtime/src/test/java/org/onap/policy/clamp/clds/it/AuthorizationControllerItCase.java
index 557a2e96c..45d4d64b1 100644
--- a/runtime/src/test/java/org/onap/policy/clamp/clds/it/AuthorizationControllerItCase.java
+++ b/runtime/src/test/java/org/onap/policy/clamp/clds/it/AuthorizationControllerItCase.java
@@ -70,6 +70,8 @@ public class AuthorizationControllerItCase {
public static void setupBefore() {
sc.setAuthentication(new Authentication() {
+ private static final long serialVersionUID = -6282526745791629050L;
+
@Override
public Collection<? extends GrantedAuthority> getAuthorities() {
return Arrays.asList(new SimpleGrantedAuthority(
@@ -121,7 +123,7 @@ public class AuthorizationControllerItCase {
@Test
public void testIsUserPermitted() {
- assertEquals(AuthorizationController.getPrincipalName(sc), "admin");
+ assertEquals("admin", AuthorizationController.getPrincipalName(sc));
assertTrue(auth.isUserPermitted(new SecureServicePermission("permission-type-cl", "dev", "read")));
assertTrue(auth.isUserPermitted(new SecureServicePermission("permission-type-cl-manage", "dev", "DEPLOY")));
assertTrue(auth.isUserPermitted(
diff --git a/runtime/src/test/java/org/onap/policy/clamp/clds/it/RobotItCase.java b/runtime/src/test/java/org/onap/policy/clamp/clds/it/RobotItCase.java
index 017881ba7..ad7efed36 100644
--- a/runtime/src/test/java/org/onap/policy/clamp/clds/it/RobotItCase.java
+++ b/runtime/src/test/java/org/onap/policy/clamp/clds/it/RobotItCase.java
@@ -67,11 +67,13 @@ public class RobotItCase {
public void robotTests() throws Exception {
File robotFolder = new File(getClass().getClassLoader().getResource("robotframework").getFile());
Volume testsVolume = new Volume("/opt/robotframework/tests");
- DockerClient client = DockerClientBuilder
- .getInstance()
- .withDockerCmdExecFactory(new NettyDockerCmdExecFactory())
- .build();
-
+ // @formatter:off
+ DockerClient client =
+ DockerClientBuilder
+ .getInstance()
+ .withDockerCmdExecFactory(new NettyDockerCmdExecFactory())
+ .build();
+ // @formatter:on
BuildImageResultCallback callback = new BuildImageResultCallback() {
@Override
@@ -82,14 +84,17 @@ public class RobotItCase {
};
String imageId = client.buildImageCmd(robotFolder).exec(callback).awaitImageId();
- CreateContainerResponse createContainerResponse = client.createContainerCmd(imageId)
+ // @formatter:off
+ CreateContainerResponse createContainerResponse =
+ client
+ .createContainerCmd(imageId)
.withVolumes(testsVolume)
- .withBinds(
- new Bind(robotFolder.getAbsolutePath() + "/tests/", testsVolume, AccessMode.rw))
+ .withBinds(new Bind(robotFolder.getAbsolutePath() + "/tests/", testsVolume, AccessMode.rw))
.withEnv("CLAMP_PORT=" + httpPort)
.withStopTimeout(TIMEOUT_S)
.withNetworkMode("host")
.exec();
+ // @formatter:on
String id = createContainerResponse.getId();
client.startContainerCmd(id).exec();
InspectContainerResponse exec;
diff --git a/runtime/src/test/java/org/onap/policy/clamp/clds/sdc/controller/installer/CsarHandlerTest.java b/runtime/src/test/java/org/onap/policy/clamp/clds/sdc/controller/installer/CsarHandlerTest.java
index 08e425abf..423876ede 100644
--- a/runtime/src/test/java/org/onap/policy/clamp/clds/sdc/controller/installer/CsarHandlerTest.java
+++ b/runtime/src/test/java/org/onap/policy/clamp/clds/sdc/controller/installer/CsarHandlerTest.java
@@ -55,7 +55,6 @@ public class CsarHandlerTest {
private static final String SERVICE_UUID = "serviceUUID";
private static final String RESOURCE1_UUID = "resource1UUID";
private static final String RESOURCE1_INSTANCE_NAME = "sim-1802 0";
- private static final String RESOURCE1_INSTANCE_NAME_IN_CSAR = "sim18020";
private static final String BLUEPRINT1_NAME = "FOI.Simfoimap223S0112.event_proc_bp.yaml";
private static final String BLUEPRINT2_NAME = "FOI.Simfoimap223S0112.event_proc_bp2.yaml";
diff --git a/runtime/src/test/java/org/onap/policy/clamp/clds/tosca/update/ArrayFieldTest.java b/runtime/src/test/java/org/onap/policy/clamp/clds/tosca/update/ArrayFieldTest.java
index 6f6f5c104..9cf7cee6b 100644
--- a/runtime/src/test/java/org/onap/policy/clamp/clds/tosca/update/ArrayFieldTest.java
+++ b/runtime/src/test/java/org/onap/policy/clamp/clds/tosca/update/ArrayFieldTest.java
@@ -47,9 +47,10 @@ public class ArrayFieldTest extends TestCase {
ResourceFileUtils.getResourceAsString("clds/tosca-converter/templates.json"));
ToscaElement toscaElement = jsonTemplateManager.getToscaElements().get("onap.datatype.controlloop.Actor");
ToscaElementProperty toscaElementProperty = toscaElement.getProperties().get("actor");
+ @SuppressWarnings("unchecked")
ArrayField arrayParser = new ArrayField((ArrayList<Object>) toscaElementProperty.getItems().get("default"));
JsonArray toTest = arrayParser.deploy();
String reference = "[1,\"String\",5.5,true]";
assertEquals(reference, String.valueOf(toTest));
}
-} \ No newline at end of file
+}
diff --git a/runtime/src/test/java/org/onap/policy/clamp/clds/tosca/update/ConstraintTest.java b/runtime/src/test/java/org/onap/policy/clamp/clds/tosca/update/ConstraintTest.java
index 493ee992c..06a8bdac8 100644
--- a/runtime/src/test/java/org/onap/policy/clamp/clds/tosca/update/ConstraintTest.java
+++ b/runtime/src/test/java/org/onap/policy/clamp/clds/tosca/update/ConstraintTest.java
@@ -48,6 +48,7 @@ public class ConstraintTest extends TestCase {
/**
* Test get value array.
*/
+ @SuppressWarnings("unchecked")
public void testGetValuesArray() {
ToscaElementProperty toscaElementProperty = toscaElement.getProperties().get("timeout");
JsonTemplate jsonTemplate = jsonTemplateManager.getJsonSchemaTemplates().get("integer");
@@ -70,6 +71,7 @@ public class ConstraintTest extends TestCase {
/**
* Test get Specific length.
*/
+ @SuppressWarnings("unchecked")
public void testGetSpecificLength() {
//Test for string type, same process for array
ToscaElementProperty toscaElementProperty = toscaElement.getProperties().get("id");
@@ -88,6 +90,7 @@ public class ConstraintTest extends TestCase {
/**
* Test get limit value.
*/
+ @SuppressWarnings("unchecked")
public void testGetLimitValue() {
//Test for array type, same process for string
ToscaElementProperty toscaElementProperty = toscaElement.getProperties().get("description");
@@ -102,5 +105,4 @@ public class ConstraintTest extends TestCase {
toTest = resultProcess.get("maxItems").getAsInt();
assertEquals(7, toTest);
}
-
-} \ No newline at end of file
+}
diff --git a/runtime/src/test/java/org/onap/policy/clamp/clds/tosca/update/ToscaElementPropertyTest.java b/runtime/src/test/java/org/onap/policy/clamp/clds/tosca/update/ToscaElementPropertyTest.java
index 5652fa9cd..c43b84a66 100644
--- a/runtime/src/test/java/org/onap/policy/clamp/clds/tosca/update/ToscaElementPropertyTest.java
+++ b/runtime/src/test/java/org/onap/policy/clamp/clds/tosca/update/ToscaElementPropertyTest.java
@@ -50,6 +50,7 @@ public class ToscaElementPropertyTest extends TestCase {
ResourceFileUtils.getResourceAsString("clds/tosca-converter/templates.json"));
ToscaElement toscaElement = jsonTemplateManager.getToscaElements().get("onap.datatype.controlloop.Actor");
ToscaElementProperty toscaElementProperty = toscaElement.getProperties().get("actor");
+ @SuppressWarnings("unchecked")
JsonArray toTest =
toscaElementProperty.parseArray((ArrayList<Object>) toscaElementProperty.getItems().get("default"));
assertNotNull(toTest);
@@ -60,6 +61,7 @@ public class ToscaElementPropertyTest extends TestCase {
*
* @throws IOException In case of failure
*/
+ @SuppressWarnings("unchecked")
public void testAddConstraintsAsJson() throws IOException {
JsonTemplateManager jsonTemplateManager = new JsonTemplateManager(
ResourceFileUtils.getResourceAsString("tosca/new-converter/sampleOperationalPolicies.yaml"),
@@ -76,4 +78,4 @@ public class ToscaElementPropertyTest extends TestCase {
String test = "{\"enum\":[\"error\",\"timeout\",\"retries\",\"guard\",\"exception\"]}";
assertEquals(test, String.valueOf(toTest));
}
-} \ No newline at end of file
+}
diff --git a/runtime/src/test/java/org/onap/policy/clamp/clds/util/LoggingUtilsTest.java b/runtime/src/test/java/org/onap/policy/clamp/clds/util/LoggingUtilsTest.java
index ab6a41bca..4b93ed7be 100644
--- a/runtime/src/test/java/org/onap/policy/clamp/clds/util/LoggingUtilsTest.java
+++ b/runtime/src/test/java/org/onap/policy/clamp/clds/util/LoggingUtilsTest.java
@@ -132,7 +132,7 @@ public class LoggingUtilsTest {
assertEquals(targetServiceName, mdc.get(OnapLogConstants.Mdcs.TARGET_SERVICE_NAME));
}
- private boolean checkMapKeys(Map map, String[] keys) {
+ private boolean checkMapKeys(Map<String, String> map, String[] keys) {
return Arrays.stream(keys).allMatch(key -> map.get(key) != null);
}
}
diff --git a/runtime/src/test/java/org/onap/policy/clamp/flow/FlowLogOperationTest.java b/runtime/src/test/java/org/onap/policy/clamp/flow/FlowLogOperationTest.java
index 622fd5999..1cc7e9032 100644
--- a/runtime/src/test/java/org/onap/policy/clamp/flow/FlowLogOperationTest.java
+++ b/runtime/src/test/java/org/onap/policy/clamp/flow/FlowLogOperationTest.java
@@ -24,7 +24,6 @@
package org.onap.policy.clamp.flow;
-import static junit.framework.Assert.assertEquals;
import static org.assertj.core.api.Assertions.assertThat;
import static org.mockito.Mockito.mock;
@@ -74,8 +73,8 @@ public class FlowLogOperationTest {
// then
String entity = mdcAdapter.get(OnapLogConstants.Mdcs.TARGET_ENTITY);
String serviceName = mdcAdapter.get(OnapLogConstants.Mdcs.TARGET_SERVICE_NAME);
- assertEquals(entity, mockEntity);
- assertEquals(serviceName, mockServiceName);
+ assertThat(entity).isEqualTo(mockEntity);
+ assertThat(serviceName).isEqualTo(mockServiceName);
}
@Test
@@ -99,4 +98,4 @@ public class FlowLogOperationTest {
// then
assertThat(mdcAdapter.get(OnapLogConstants.Mdcs.ENTRY_TIMESTAMP)).isNull();
}
-} \ No newline at end of file
+}
diff --git a/runtime/src/test/java/org/onap/policy/clamp/loop/LoopControllerTestItCase.java b/runtime/src/test/java/org/onap/policy/clamp/loop/LoopControllerTestItCase.java
index 6728d292c..54ecaa639 100644
--- a/runtime/src/test/java/org/onap/policy/clamp/loop/LoopControllerTestItCase.java
+++ b/runtime/src/test/java/org/onap/policy/clamp/loop/LoopControllerTestItCase.java
@@ -104,8 +104,7 @@ public class LoopControllerTestItCase {
+ "\"success\":\"\",\"failure\":\"\",\"failure_timeout\":\"\",\"failure_retries\":\"\","
+ "\"failure_exception\":\"\",\"failure_guard\":\"\",\"target\":{\"type\":\"VNF\","
+ "\"resourceID\":\"vFW_PG_T1\"}}]}}}]";
- JsonParser parser = new JsonParser();
- JsonElement ele = parser.parse(policy);
+ JsonElement ele = JsonParser.parseString(policy);
JsonArray arr = ele.getAsJsonArray();
Loop loop = loopController.updateOperationalPolicies(EXAMPLE_LOOP_NAME, arr);
assertThat(loop.getOperationalPolicies()).hasSize(1);
@@ -126,8 +125,7 @@ public class LoopControllerTestItCase {
+ "\"cbs_host\":\"config-binding-service\",\"cbs_port\":\"10000\",\"external_port\":\"32012\","
+ "\"policy_model_id\":\"onap.policies.monitoring.cdap.tca.hi.lo.app\","
+ "\"policy_id\":\"tca_k8s_CLTCA_v1_0_vFW_PG_T10_k8s-tca-clamp-policy-05162019\"}}";
- JsonParser parser = new JsonParser();
- JsonElement ele = parser.parse(policy);
+ JsonElement ele = JsonParser.parseString(policy);
JsonObject obj = ele.getAsJsonObject();
loopController.updateGlobalPropertiesJson(EXAMPLE_LOOP_NAME, obj);
Loop loop = loopController.getLoop(EXAMPLE_LOOP_NAME);
@@ -170,6 +168,6 @@ public class LoopControllerTestItCase {
loopController.removeOperationalPolicy(EXAMPLE_LOOP_NAME, "testPolicyModel", "1.0.0");
Loop newLoop2 = loopController.getLoop(EXAMPLE_LOOP_NAME);
- assertThat(newLoop2.getOperationalPolicies().size()).isEqualTo(0);
+ assertThat(newLoop2.getOperationalPolicies().size()).isZero();
}
-} \ No newline at end of file
+}
diff --git a/runtime/src/test/java/org/onap/policy/clamp/loop/LoopLogServiceTestItCase.java b/runtime/src/test/java/org/onap/policy/clamp/loop/LoopLogServiceTestItCase.java
index 7b0ab8614..ab256eafb 100644
--- a/runtime/src/test/java/org/onap/policy/clamp/loop/LoopLogServiceTestItCase.java
+++ b/runtime/src/test/java/org/onap/policy/clamp/loop/LoopLogServiceTestItCase.java
@@ -47,7 +47,6 @@ public class LoopLogServiceTestItCase {
private static final String EXAMPLE_JSON = "{\"testName\":\"testValue\"}";
private static final String CLAMP_COMPONENT = "CLAMP";
private static final String SAMPLE_LOG_MESSAGE = "Sample log";
- private static final String BLUEPRINT = "blueprint";
@Autowired
LoopService loopService;
@@ -93,4 +92,4 @@ public class LoopLogServiceTestItCase {
assertThat(log.getId()).isEqualTo(id);
Assertions.assertThat(log.getLoop()).isEqualTo(testLoop);
}
-} \ No newline at end of file
+}
diff --git a/runtime/src/test/java/org/onap/policy/clamp/policy/pdpgroup/PdpGroupAnalyzerTest.java b/runtime/src/test/java/org/onap/policy/clamp/policy/pdpgroup/PdpGroupAnalyzerTest.java
index 30d4ebe28..03cd89aeb 100644
--- a/runtime/src/test/java/org/onap/policy/clamp/policy/pdpgroup/PdpGroupAnalyzerTest.java
+++ b/runtime/src/test/java/org/onap/policy/clamp/policy/pdpgroup/PdpGroupAnalyzerTest.java
@@ -26,7 +26,6 @@ package org.onap.policy.clamp.policy.pdpgroup;
import static org.assertj.core.api.Assertions.assertThat;
import java.io.IOException;
-import java.util.ArrayList;
import java.util.Arrays;
import java.util.Collections;
import org.junit.BeforeClass;
diff --git a/runtime/src/test/java/org/onap/policy/clamp/policy/pdpgroup/PdpGroupPayloadExceptionTest.java b/runtime/src/test/java/org/onap/policy/clamp/policy/pdpgroup/PdpGroupPayloadExceptionTest.java
index f3c3fc6cd..ce695ec6f 100644
--- a/runtime/src/test/java/org/onap/policy/clamp/policy/pdpgroup/PdpGroupPayloadExceptionTest.java
+++ b/runtime/src/test/java/org/onap/policy/clamp/policy/pdpgroup/PdpGroupPayloadExceptionTest.java
@@ -21,7 +21,6 @@
package org.onap.policy.clamp.policy.pdpgroup;
import org.junit.Test;
-import org.onap.policy.clamp.policy.pdpgroup.PdpGroupPayloadException;
import org.onap.policy.common.utils.test.ExceptionsTester;
public class PdpGroupPayloadExceptionTest extends ExceptionsTester {
diff --git a/runtime/src/test/java/org/onap/policy/clamp/policy/pdpgroup/PdpGroupPayloadTest.java b/runtime/src/test/java/org/onap/policy/clamp/policy/pdpgroup/PdpGroupPayloadTest.java
index 34674e3ec..b07d3869c 100644
--- a/runtime/src/test/java/org/onap/policy/clamp/policy/pdpgroup/PdpGroupPayloadTest.java
+++ b/runtime/src/test/java/org/onap/policy/clamp/policy/pdpgroup/PdpGroupPayloadTest.java
@@ -70,6 +70,6 @@ public class PdpGroupPayloadTest {
JsonObject listOfOperations = new JsonObject();
listOfOperations.add(PdpGroupPayload.PDP_ACTIONS, operations);
- PdpGroupPayload pdpGroupPayload = new PdpGroupPayload(listOfOperations);
+ new PdpGroupPayload(listOfOperations);
}
}
diff --git a/runtime/src/test/java/org/onap/policy/clamp/policy/pdpgroup/PoliciesPdpMergerTest.java b/runtime/src/test/java/org/onap/policy/clamp/policy/pdpgroup/PoliciesPdpMergerTest.java
index be7a9d674..733e3734e 100644
--- a/runtime/src/test/java/org/onap/policy/clamp/policy/pdpgroup/PoliciesPdpMergerTest.java
+++ b/runtime/src/test/java/org/onap/policy/clamp/policy/pdpgroup/PoliciesPdpMergerTest.java
@@ -23,9 +23,6 @@
package org.onap.policy.clamp.policy.pdpgroup;
-import static org.assertj.core.api.Assertions.assertThat;
-
-import com.google.gson.JsonObject;
import java.io.IOException;
import java.util.Arrays;
import org.junit.BeforeClass;