diff --git a/fcli-core/fcli-ssc/src/main/java/com/fortify/cli/ssc/_common/rest/SSCUrls.java b/fcli-core/fcli-ssc/src/main/java/com/fortify/cli/ssc/_common/rest/SSCUrls.java index e47aba5d75..4906d5aa76 100644 --- a/fcli-core/fcli-ssc/src/main/java/com/fortify/cli/ssc/_common/rest/SSCUrls.java +++ b/fcli-core/fcli-ssc/src/main/java/com/fortify/cli/ssc/_common/rest/SSCUrls.java @@ -470,6 +470,10 @@ public static String DOWNLOAD_REPORT_LIBRARY(String reportLibraryId) { public static String DOWNLOAD_REPORT_DEFINITION_TEMPLATE(String reportTemplateId) { return String.format("/download/reportDefinitionTemplateDownload.html?mat={downloadToken}&id=%s", reportTemplateId); } + + public static String DOWNLOAD_REPORT(String reportId) { + return String.format("/transfer/reportDownload.html?mat={downloadToken}&id=%s", reportId); + } public static String DOWNLOAD_RULE_PACK(String rulePackId) { return String.format("/download/rulepackDownload.html?mat={downloadToken}&id=%s", rulePackId); diff --git a/fcli-core/fcli-ssc/src/main/java/com/fortify/cli/ssc/_common/rest/transfer/SSCFileTransferHelper.java b/fcli-core/fcli-ssc/src/main/java/com/fortify/cli/ssc/_common/rest/transfer/SSCFileTransferHelper.java index ba4c8ccbc2..86d27797fb 100644 --- a/fcli-core/fcli-ssc/src/main/java/com/fortify/cli/ssc/_common/rest/transfer/SSCFileTransferHelper.java +++ b/fcli-core/fcli-ssc/src/main/java/com/fortify/cli/ssc/_common/rest/transfer/SSCFileTransferHelper.java @@ -37,8 +37,8 @@ public class SSCFileTransferHelper { private static final JacksonObjectMapper XMLMAPPER = new JacksonObjectMapper(new XmlMapper()); @SneakyThrows - public static final File download(UnirestInstance unirest, String endpoint, File downloadPath, ISSCAddDownloadTokenFunction addTokenFunction) { - try ( SSCFileTransferTokenSupplier tokenSupplier = new SSCFileTransferTokenSupplier(unirest, SSCFileTransferTokenType.DOWNLOAD); ) { + public static final File download(UnirestInstance unirest, String endpoint, File downloadPath, SSCFileTransferTokenType tokenType, ISSCAddDownloadTokenFunction addTokenFunction) { + try ( SSCFileTransferTokenSupplier tokenSupplier = new SSCFileTransferTokenSupplier(unirest, tokenType); ) { try ( SSCProgressMonitor downloadMonitor = new SSCProgressMonitor("Download") ) { return addTokenFunction.apply(tokenSupplier.get(), unirest.get(endpoint)) .downloadMonitor(downloadMonitor) @@ -47,6 +47,11 @@ public static final File download(UnirestInstance unirest, String endpoint, File } } } + + @SneakyThrows + public static final File download(UnirestInstance unirest, String endpoint, File downloadPath, ISSCAddDownloadTokenFunction addTokenFunction) { + return download(unirest, endpoint, downloadPath, SSCFileTransferTokenType.DOWNLOAD, addTokenFunction); + } @SneakyThrows public static final T upload(UnirestInstance unirest, String endpoint, File filePath, ISSCAddUploadTokenFunction addTokenFunction, Class returnType) { @@ -108,9 +113,10 @@ public void close() { } } - private static enum SSCFileTransferTokenType { + public static enum SSCFileTransferTokenType { UPLOAD, - DOWNLOAD + DOWNLOAD, + REPORT_FILE } private static final class SSCFileTransferTokenSupplier implements AutoCloseable, Supplier { diff --git a/fcli-core/fcli-ssc/src/main/java/com/fortify/cli/ssc/report/cli/cmd/SSCReportCommands.java b/fcli-core/fcli-ssc/src/main/java/com/fortify/cli/ssc/report/cli/cmd/SSCReportCommands.java index 16cd099350..4cd1217cd3 100644 --- a/fcli-core/fcli-ssc/src/main/java/com/fortify/cli/ssc/report/cli/cmd/SSCReportCommands.java +++ b/fcli-core/fcli-ssc/src/main/java/com/fortify/cli/ssc/report/cli/cmd/SSCReportCommands.java @@ -13,12 +13,20 @@ package com.fortify.cli.ssc.report.cli.cmd; import com.fortify.cli.common.cli.cmd.AbstractContainerCommand; +import com.fortify.cli.common.variable.DefaultVariablePropertyName; import picocli.CommandLine.Command; @Command( name = "report", subcommands = { + SSCReportCreateCommand.class, + SSCReportListCommand.class, + SSCReportGetCommand.class, + SSCReportDownloadCommand.class, + SSCReportWaitForCommand.class, + SSCReportDeleteCommand.class, + SSCReportParameterListCommand.class, SSCReportTemplateCreateCommand.class, SSCReportTemplateListCommand.class, SSCReportTemplateGetCommand.class, @@ -27,5 +35,6 @@ SSCReportTemplateDeleteCommand.class } ) +@DefaultVariablePropertyName("id") public class SSCReportCommands extends AbstractContainerCommand { } diff --git a/fcli-core/fcli-ssc/src/main/java/com/fortify/cli/ssc/report/cli/cmd/SSCReportCreateCommand.java b/fcli-core/fcli-ssc/src/main/java/com/fortify/cli/ssc/report/cli/cmd/SSCReportCreateCommand.java new file mode 100644 index 0000000000..dfe44076ac --- /dev/null +++ b/fcli-core/fcli-ssc/src/main/java/com/fortify/cli/ssc/report/cli/cmd/SSCReportCreateCommand.java @@ -0,0 +1,269 @@ +/******************************************************************************* + * Copyright 2021, 2023 Open Text. + * + * The only warranties for products and services of Open Text + * and its affiliates and licensors ("Open Text") are as may + * be set forth in the express warranty statements accompanying + * such products and services. Nothing herein should be construed + * as constituting an additional warranty. Open Text shall not be + * liable for technical or editorial errors or omissions contained + * herein. The information contained herein is subject to change + * without notice. + *******************************************************************************/ +package com.fortify.cli.ssc.report.cli.cmd; + +import java.util.Map; +import java.util.regex.Pattern; +import java.util.stream.Stream; + +import com.fasterxml.jackson.databind.JsonNode; +import com.formkiq.graalvm.annotations.Reflectable; +import com.fortify.cli.common.output.cli.mixin.OutputHelperMixins; +import com.fortify.cli.common.output.transform.IActionCommandResultSupplier; +import com.fortify.cli.common.util.StringUtils; +import com.fortify.cli.ssc._common.output.cli.cmd.AbstractSSCJsonNodeOutputCommand; +import com.fortify.cli.ssc._common.rest.SSCUrls; +import com.fortify.cli.ssc.appversion.cli.mixin.SSCDelimiterMixin; +import com.fortify.cli.ssc.appversion.helper.SSCAppVersionHelper; +import com.fortify.cli.ssc.attribute.helper.SSCAttributeDefinitionHelper; +import com.fortify.cli.ssc.report.cli.mixin.SSCReportTemplateResolverMixin; +import com.fortify.cli.ssc.report.helper.SSCReportFormat; +import com.fortify.cli.ssc.report.helper.SSCReportHelper; +import com.fortify.cli.ssc.report.helper.SSCReportTemplateDescriptor; +import com.fortify.cli.ssc.report.helper.SSCReportTemplateDescriptor.SSCReportTemplateParameter; +import com.fortify.cli.ssc.report.helper.SSCReportTemplateDescriptor.SSCReportTemplateParameterOption; + +import kong.unirest.UnirestInstance; +import lombok.AllArgsConstructor; +import lombok.Builder; +import lombok.Data; +import lombok.EqualsAndHashCode; +import lombok.Getter; +import lombok.NoArgsConstructor; +import lombok.RequiredArgsConstructor; +import picocli.CommandLine.Command; +import picocli.CommandLine.Mixin; +import picocli.CommandLine.Option; + +@Command(name = OutputHelperMixins.Create.CMD_NAME) +public class SSCReportCreateCommand extends AbstractSSCJsonNodeOutputCommand implements IActionCommandResultSupplier { + @Getter @Mixin private OutputHelperMixins.Create outputHelper; + @Mixin private SSCReportTemplateResolverMixin.RequiredOption templateResolver; + @Option(names={"--name","-n"}, required = true) private String reportName; + @Option(names={"--notes"}, required = false, defaultValue = "") private String notes; + @Option(names={"--format","-f"}, required=true, defaultValue="pdf") private SSCReportFormat format; + @Option(names={"--parameters","-p"}, required=false, split = ",", paramLabel = "PARAM=VALUE", descriptionKey = "fcli.ssc.report.create.parameters") + private Map parameters; + @Mixin private SSCDelimiterMixin delimiterMixin; // For parsing app:version + + @Override + public JsonNode getJsonNode(UnirestInstance unirest) { + var reportId = unirest.post(SSCUrls.REPORTS) + .body(createReportCreateRequest(unirest)) + .asObject(JsonNode.class) + .getBody().get("data").get("id").asText(); + return SSCReportHelper.getRequiredReportDescriptor(unirest, reportId).asJsonNode(); + } + + @Override + public String getActionCommandResult() { + return "CREATED"; + } + + @Override + public boolean isSingular() { + return true; + } + + private SSCReportCreateRequest createReportCreateRequest(UnirestInstance unirest) { + var templateDescriptor = templateResolver.getReportTemplateDescriptor(unirest); + AbstractSSCInputReportParameter[] inputParameters = + new SSCInputReportParameterBuilder(unirest, templateDescriptor, parameters, delimiterMixin.getDelimiter()) + .buildInputParameters(); + return SSCReportCreateRequest.builder() + .name(reportName) + .note(notes) + .format(format.name().toUpperCase()) + .inputReportParameters(inputParameters) + .reportDefinitionId(templateDescriptor.getId()) + .type(templateDescriptor.getType().name()) + .build(); + } + + @RequiredArgsConstructor + private static final class SSCInputReportParameterBuilder { + private static final Pattern DATE_PATTERN = Pattern.compile("(\\d{4})-(\\d{2})-(\\d{2})"); + private final UnirestInstance unirest; + private final SSCReportTemplateDescriptor templateDescriptor; + private final Map parameters; + private final String delimiter; + private SSCAttributeDefinitionHelper attrDefinitionHelper; + public final AbstractSSCInputReportParameter[] buildInputParameters() { + return Stream.of(templateDescriptor.getParameters()) + .map(this::createInputParameter) + .toArray(AbstractSSCInputReportParameter[]::new); + } + + private final AbstractSSCInputReportParameter createInputParameter(SSCReportTemplateParameter param) { + AbstractSSCInputReportParameter result; + switch (param.getType() ) { + case BOOLEAN: result = createBooleanInputParameter(param); break; + case DATE: result = createDateInputParameter(param); break; + case MULTI_PROJECT: result = createMultiProjectInputParameter(param); break; + case PROJECT_ATTRIBUTE: result = createProjectAttributeInputParameter(param); break; + case SINGLE_PROJECT: result = createSingleProjectInputParameter(param); break; + case SINGLE_SELECT_DEFAULT: result = createSingleSelectDefaultInputParameter(param); break; + case STRING: result = createStringInputParameter(param); break; + + default: throw new RuntimeException(String.format("Unknown type %s for report parameter %s", param.getType(), param.getName())); + } + addCommonFields(param, result); + return result; + } + + private void addCommonFields(SSCReportTemplateParameter templateParam, AbstractSSCInputReportParameter inputParam) { + inputParam.setIdentifier(templateParam.getIdentifier()); + inputParam.setName(templateParam.getName()); + inputParam.setType(templateParam.getType().name()); + } + + private AbstractSSCInputReportParameter createBooleanInputParameter(SSCReportTemplateParameter param) { + var value = getValue(param, "true"); // Just like SSC UI, we set boolean options to 'true' by default + if ( "true".equalsIgnoreCase(value) || "1".equals(value) ) { + return new SSCInputReportParameterSingleBoolean(true); + } else if ( "false".equalsIgnoreCase(value) || "0".equals(value) ) { + return new SSCInputReportParameterSingleBoolean(true); + } + throw new IllegalArgumentException(String.format("Value for boolean report parameter %s must be one of true|1|false|0", param.getName())); + } + + private AbstractSSCInputReportParameter createDateInputParameter(SSCReportTemplateParameter param) { + var value = getValue(param, null); + var matcher = DATE_PATTERN.matcher(value); + if ( !matcher.matches() ) { + throw new IllegalArgumentException(String.format("Value for date report parameter %s must be specified as yyyy-MM-dd", param.getName())); + } + var reportValue = String.format("%s/%s/%s", matcher.group(2), matcher.group(3), matcher.group(1)); + return new SSCInputReportParameterSingleString(reportValue); + } + + private AbstractSSCInputReportParameter createMultiProjectInputParameter(SSCReportTemplateParameter param) { + var value = getValue(param, null); + var reportValue = Stream.of(value.split("[\\[\\];]")) + .filter(StringUtils::isNotBlank) + .mapToInt(this::getAppVersionId) + .toArray(); + return new SSCInputReportParameterMultiInt(reportValue); + } + + private AbstractSSCInputReportParameter createProjectAttributeInputParameter(SSCReportTemplateParameter param) { + var value = getValue(param, null); + if ( attrDefinitionHelper==null ) { + attrDefinitionHelper = new SSCAttributeDefinitionHelper(unirest); + } + var attrDefinitionId = Integer.parseInt(attrDefinitionHelper.getAttributeDefinitionDescriptor(value).getId()); + return new SSCInputReportParameterSingleInt(attrDefinitionId); + } + + private AbstractSSCInputReportParameter createSingleProjectInputParameter(SSCReportTemplateParameter param) { + var value = getValue(param, null); + var appVersionId = getAppVersionId(value); + return new SSCInputReportParameterSingleInt(appVersionId); + } + + private int getAppVersionId(String value) { + return SSCAppVersionHelper.getRequiredAppVersion(unirest, value, delimiter, "id").getIntVersionId(); + } + + private AbstractSSCInputReportParameter createSingleSelectDefaultInputParameter(SSCReportTemplateParameter param) { + var value = getValue(param, ""); + var reportValue = Stream.of(param.getOptions()) + .filter(o->matchesOptionValue(o,value)) + .findFirst() + .map(SSCReportTemplateParameterOption::getReportValue) + .orElse(null); + return new SSCInputReportParameterSingleString(reportValue); + } + + private final boolean matchesOptionValue(SSCReportTemplateParameterOption option, String value) { + if ( StringUtils.isBlank(value) ) { + return option.isDefaultValue(); + } else { + return value.equals(option.getReportValue()) + || value.equals(option.getIdentifier()) + || value.equals(option.getDisplayValue()); + } + + } + + private AbstractSSCInputReportParameter createStringInputParameter(SSCReportTemplateParameter param) { + return new SSCInputReportParameterSingleString(getValue(param, "")); + } + + private final String getValue(SSCReportTemplateParameter param, String defaultValue) { + String result = null; + if ( parameters!=null ) { + result = parameters.get(param.getId()+""); + if ( result==null ) { + result = parameters.get(param.getIdentifier()); + } + if ( result==null ) { + result = parameters.get(param.getName()); + } + } + if ( result==null && defaultValue!=null ) { + result = defaultValue; + } + if ( result==null ) { + throw new IllegalArgumentException("No value specified for required report parameter "+param.getName()); + } + return result; + } + + } + + + @Reflectable // We only serialize, so no no-args constructor needed + @Data @Builder + private static final class SSCReportCreateRequest { + private String name; + private String note; + private String format; + private AbstractSSCInputReportParameter[] inputReportParameters; + private int reportDefinitionId; + private String type; + } + + @Reflectable @NoArgsConstructor + @Data + private static abstract class AbstractSSCInputReportParameter { + private String name; + private String identifier; + private String type; + } + + @Reflectable @NoArgsConstructor @AllArgsConstructor + @Data @EqualsAndHashCode(callSuper=true) + private static final class SSCInputReportParameterSingleInt extends AbstractSSCInputReportParameter { + private int paramValue; + } + + @Reflectable @NoArgsConstructor @AllArgsConstructor + @Data @EqualsAndHashCode(callSuper=true) + private static final class SSCInputReportParameterMultiInt extends AbstractSSCInputReportParameter { + private int[] paramValue; + } + + @Reflectable @NoArgsConstructor @AllArgsConstructor + @Data @EqualsAndHashCode(callSuper=true) + private static final class SSCInputReportParameterSingleBoolean extends AbstractSSCInputReportParameter { + private boolean paramValue; + } + + @Reflectable @NoArgsConstructor @AllArgsConstructor + @Data @EqualsAndHashCode(callSuper=true) + private static final class SSCInputReportParameterSingleString extends AbstractSSCInputReportParameter { + private String paramValue; + } + +} diff --git a/fcli-core/fcli-ssc/src/main/java/com/fortify/cli/ssc/report/cli/cmd/SSCReportDeleteCommand.java b/fcli-core/fcli-ssc/src/main/java/com/fortify/cli/ssc/report/cli/cmd/SSCReportDeleteCommand.java new file mode 100644 index 0000000000..f4be24edc2 --- /dev/null +++ b/fcli-core/fcli-ssc/src/main/java/com/fortify/cli/ssc/report/cli/cmd/SSCReportDeleteCommand.java @@ -0,0 +1,49 @@ +/******************************************************************************* + * Copyright 2021, 2023 Open Text. + * + * The only warranties for products and services of Open Text + * and its affiliates and licensors ("Open Text") are as may + * be set forth in the express warranty statements accompanying + * such products and services. Nothing herein should be construed + * as constituting an additional warranty. Open Text shall not be + * liable for technical or editorial errors or omissions contained + * herein. The information contained herein is subject to change + * without notice. + *******************************************************************************/ +package com.fortify.cli.ssc.report.cli.cmd; + +import com.fasterxml.jackson.databind.JsonNode; +import com.fortify.cli.common.output.cli.mixin.OutputHelperMixins; +import com.fortify.cli.common.output.transform.IActionCommandResultSupplier; +import com.fortify.cli.ssc._common.output.cli.cmd.AbstractSSCJsonNodeOutputCommand; +import com.fortify.cli.ssc._common.rest.SSCUrls; +import com.fortify.cli.ssc.report.cli.mixin.SSCReportResolverMixin; +import com.fortify.cli.ssc.report.helper.SSCReportDescriptor; + +import kong.unirest.UnirestInstance; +import lombok.Getter; +import picocli.CommandLine.Command; +import picocli.CommandLine.Mixin; + +@Command(name = OutputHelperMixins.Delete.CMD_NAME) +public class SSCReportDeleteCommand extends AbstractSSCJsonNodeOutputCommand implements IActionCommandResultSupplier { + @Getter @Mixin private OutputHelperMixins.Delete outputHelper; + @Mixin private SSCReportResolverMixin.PositionalParameterSingle reportResolver; + + @Override + public JsonNode getJsonNode(UnirestInstance unirest) { + SSCReportDescriptor descriptor = reportResolver.getReportDescriptor(unirest); + unirest.delete(SSCUrls.REPORT(descriptor.getIdString())).asObject(JsonNode.class).getBody(); + return descriptor.asJsonNode(); + } + + @Override + public String getActionCommandResult() { + return "DELETED"; + } + + @Override + public boolean isSingular() { + return true; + } +} diff --git a/fcli-core/fcli-ssc/src/main/java/com/fortify/cli/ssc/report/cli/cmd/SSCReportDownloadCommand.java b/fcli-core/fcli-ssc/src/main/java/com/fortify/cli/ssc/report/cli/cmd/SSCReportDownloadCommand.java new file mode 100644 index 0000000000..799928ada5 --- /dev/null +++ b/fcli-core/fcli-ssc/src/main/java/com/fortify/cli/ssc/report/cli/cmd/SSCReportDownloadCommand.java @@ -0,0 +1,66 @@ +/******************************************************************************* + * Copyright 2021, 2023 Open Text. + * + * The only warranties for products and services of Open Text + * and its affiliates and licensors ("Open Text") are as may + * be set forth in the express warranty statements accompanying + * such products and services. Nothing herein should be construed + * as constituting an additional warranty. Open Text shall not be + * liable for technical or editorial errors or omissions contained + * herein. The information contained herein is subject to change + * without notice. + *******************************************************************************/ +package com.fortify.cli.ssc.report.cli.cmd; + +import java.io.File; + +import com.fasterxml.jackson.databind.JsonNode; +import com.fortify.cli.common.cli.mixin.CommonOptionMixins; +import com.fortify.cli.common.output.cli.mixin.OutputHelperMixins; +import com.fortify.cli.common.output.transform.IActionCommandResultSupplier; +import com.fortify.cli.ssc._common.output.cli.cmd.AbstractSSCJsonNodeOutputCommand; +import com.fortify.cli.ssc._common.rest.SSCUrls; +import com.fortify.cli.ssc._common.rest.transfer.SSCFileTransferHelper; +import com.fortify.cli.ssc._common.rest.transfer.SSCFileTransferHelper.ISSCAddDownloadTokenFunction; +import com.fortify.cli.ssc._common.rest.transfer.SSCFileTransferHelper.SSCFileTransferTokenType; +import com.fortify.cli.ssc.report.cli.mixin.SSCReportResolverMixin; +import com.fortify.cli.ssc.report.helper.SSCReportDescriptor; + +import kong.unirest.UnirestInstance; +import lombok.Getter; +import picocli.CommandLine.Command; +import picocli.CommandLine.Mixin; + +@Command(name = OutputHelperMixins.Download.CMD_NAME) +public class SSCReportDownloadCommand extends AbstractSSCJsonNodeOutputCommand implements IActionCommandResultSupplier { + @Getter @Mixin private OutputHelperMixins.Download outputHelper; + @Mixin private SSCReportResolverMixin.PositionalParameterSingle reportResolver; + @Mixin private CommonOptionMixins.OptionalFile fileMixin; + + @Override + public JsonNode getJsonNode(UnirestInstance unirest) { + SSCReportDescriptor descriptor = reportResolver.getReportDescriptor(unirest); + var destination = fileMixin.getFile(); + if ( destination==null ) { + destination = new File(String.format("./%s.%s", descriptor.getName(), descriptor.getFormat().toLowerCase())); + } + SSCFileTransferHelper.download( + unirest, + SSCUrls.DOWNLOAD_REPORT(descriptor.getIdString()), + destination, + SSCFileTransferTokenType.REPORT_FILE, + ISSCAddDownloadTokenFunction.ROUTEPARAM_DOWNLOADTOKEN + ); + return descriptor.asJsonNode(); + } + + @Override + public String getActionCommandResult() { + return "DOWNLOADED"; + } + + @Override + public boolean isSingular() { + return true; + } +} diff --git a/fcli-core/fcli-ssc/src/main/java/com/fortify/cli/ssc/report/cli/cmd/SSCReportGetCommand.java b/fcli-core/fcli-ssc/src/main/java/com/fortify/cli/ssc/report/cli/cmd/SSCReportGetCommand.java new file mode 100644 index 0000000000..35f74d547b --- /dev/null +++ b/fcli-core/fcli-ssc/src/main/java/com/fortify/cli/ssc/report/cli/cmd/SSCReportGetCommand.java @@ -0,0 +1,40 @@ +/******************************************************************************* + * Copyright 2021, 2023 Open Text. + * + * The only warranties for products and services of Open Text + * and its affiliates and licensors ("Open Text") are as may + * be set forth in the express warranty statements accompanying + * such products and services. Nothing herein should be construed + * as constituting an additional warranty. Open Text shall not be + * liable for technical or editorial errors or omissions contained + * herein. The information contained herein is subject to change + * without notice. + *******************************************************************************/ +package com.fortify.cli.ssc.report.cli.cmd; + +import com.fasterxml.jackson.databind.JsonNode; +import com.fortify.cli.common.output.cli.mixin.OutputHelperMixins; +import com.fortify.cli.ssc._common.output.cli.cmd.AbstractSSCJsonNodeOutputCommand; +import com.fortify.cli.ssc.report.cli.mixin.SSCReportResolverMixin; + +import kong.unirest.UnirestInstance; +import lombok.Getter; +import picocli.CommandLine; +import picocli.CommandLine.Command; +import picocli.CommandLine.Mixin; + +@Command(name = OutputHelperMixins.Get.CMD_NAME) +public class SSCReportGetCommand extends AbstractSSCJsonNodeOutputCommand { + @Getter @Mixin private OutputHelperMixins.Get outputHelper; + @CommandLine.Mixin private SSCReportResolverMixin.PositionalParameterSingle reportResolver; + + @Override + public JsonNode getJsonNode(UnirestInstance unirest) { + return reportResolver.getReportDescriptor(unirest).asJsonNode(); + } + + @Override + public boolean isSingular() { + return true; + } +} diff --git a/fcli-core/fcli-ssc/src/main/java/com/fortify/cli/ssc/report/cli/cmd/SSCReportListCommand.java b/fcli-core/fcli-ssc/src/main/java/com/fortify/cli/ssc/report/cli/cmd/SSCReportListCommand.java new file mode 100644 index 0000000000..881030e637 --- /dev/null +++ b/fcli-core/fcli-ssc/src/main/java/com/fortify/cli/ssc/report/cli/cmd/SSCReportListCommand.java @@ -0,0 +1,60 @@ +/******************************************************************************* + * Copyright 2021, 2023 Open Text. + * + * The only warranties for products and services of Open Text + * and its affiliates and licensors ("Open Text") are as may + * be set forth in the express warranty statements accompanying + * such products and services. Nothing herein should be construed + * as constituting an additional warranty. Open Text shall not be + * liable for technical or editorial errors or omissions contained + * herein. The information contained herein is subject to change + * without notice. + *******************************************************************************/ +package com.fortify.cli.ssc.report.cli.cmd; + +import com.fasterxml.jackson.databind.JsonNode; +import com.fortify.cli.common.output.cli.mixin.OutputHelperMixins; +import com.fortify.cli.common.output.transform.IRecordTransformer; +import com.fortify.cli.common.rest.query.IServerSideQueryParamGeneratorSupplier; +import com.fortify.cli.common.rest.query.IServerSideQueryParamValueGenerator; +import com.fortify.cli.ssc._common.output.cli.cmd.AbstractSSCBaseRequestOutputCommand; +import com.fortify.cli.ssc._common.rest.SSCUrls; +import com.fortify.cli.ssc._common.rest.query.SSCQParamGenerator; +import com.fortify.cli.ssc._common.rest.query.SSCQParamValueGenerators; +import com.fortify.cli.ssc._common.rest.query.cli.mixin.SSCQParamMixin; +import com.fortify.cli.ssc.report.helper.SSCReportHelper; + +import kong.unirest.HttpRequest; +import kong.unirest.UnirestInstance; +import lombok.Getter; +import picocli.CommandLine.Command; +import picocli.CommandLine.Mixin; + +@Command(name = OutputHelperMixins.List.CMD_NAME) +public class SSCReportListCommand extends AbstractSSCBaseRequestOutputCommand implements IRecordTransformer, IServerSideQueryParamGeneratorSupplier { + @Getter @Mixin private OutputHelperMixins.List outputHelper; + @Mixin private SSCQParamMixin qParamMixin; + @Getter private IServerSideQueryParamValueGenerator serverSideQueryParamGenerator = new SSCQParamGenerator() + .add("id", SSCQParamValueGenerators::plain) + .add("name", SSCQParamValueGenerators::wrapInQuotes) + .add("type", "reportDefinition.type", SSCQParamValueGenerators::wrapInQuotes) + .add("template.name", "reportDefinition.name", SSCQParamValueGenerators::wrapInQuotes) + .add("template.type", "reportDefinition.type", SSCQParamValueGenerators::wrapInQuotes); + + @Override + public HttpRequest getBaseRequest(UnirestInstance unirest) { + return unirest.get(SSCUrls.REPORTS) + .queryString("embed", "reportDefinition") + .queryString("orderby", "-generationDate"); + } + + @Override + public boolean isSingular() { + return false; + } + + @Override + public JsonNode transformRecord(JsonNode record) { + return SSCReportHelper.renameFields(record); + } +} diff --git a/fcli-core/fcli-ssc/src/main/java/com/fortify/cli/ssc/report/cli/cmd/SSCReportParameterListCommand.java b/fcli-core/fcli-ssc/src/main/java/com/fortify/cli/ssc/report/cli/cmd/SSCReportParameterListCommand.java new file mode 100644 index 0000000000..2c99389ef3 --- /dev/null +++ b/fcli-core/fcli-ssc/src/main/java/com/fortify/cli/ssc/report/cli/cmd/SSCReportParameterListCommand.java @@ -0,0 +1,52 @@ +/******************************************************************************* + * Copyright 2021, 2023 Open Text. + * + * The only warranties for products and services of Open Text + * and its affiliates and licensors ("Open Text") are as may + * be set forth in the express warranty statements accompanying + * such products and services. Nothing herein should be construed + * as constituting an additional warranty. Open Text shall not be + * liable for technical or editorial errors or omissions contained + * herein. The information contained herein is subject to change + * without notice. + *******************************************************************************/ +package com.fortify.cli.ssc.report.cli.cmd; + +import java.util.stream.Stream; + +import com.fasterxml.jackson.databind.JsonNode; +import com.fasterxml.jackson.databind.ObjectMapper; +import com.fortify.cli.common.cli.util.CommandGroup; +import com.fortify.cli.common.json.JsonHelper; +import com.fortify.cli.common.output.cli.mixin.OutputHelperMixins; +import com.fortify.cli.ssc._common.output.cli.cmd.AbstractSSCJsonNodeOutputCommand; +import com.fortify.cli.ssc.report.cli.mixin.SSCReportTemplateResolverMixin; + +import kong.unirest.UnirestInstance; +import lombok.Getter; +import picocli.CommandLine; +import picocli.CommandLine.Command; +import picocli.CommandLine.Mixin; + +@Command(name = "list-parameters", aliases = "lsp") @CommandGroup("parameter") +public class SSCReportParameterListCommand extends AbstractSSCJsonNodeOutputCommand { + private static final ObjectMapper OBJECT_MAPPER = JsonHelper.getObjectMapper(); + @Getter @Mixin private OutputHelperMixins.TableWithQuery outputHelper; + @CommandLine.Mixin private SSCReportTemplateResolverMixin.RequiredOption reportTemplateResolver; + + @Override + public JsonNode getJsonNode(UnirestInstance unirest) { + return Stream.of(reportTemplateResolver.getReportTemplateDescriptor(unirest).getParameters()) + .map(this::map) + .collect(JsonHelper.arrayNodeCollector()); + } + + @Override + public boolean isSingular() { + return false; + } + + private final JsonNode map(Object obj) { + return OBJECT_MAPPER.valueToTree(obj); + } +} diff --git a/fcli-core/fcli-ssc/src/main/java/com/fortify/cli/ssc/report/cli/cmd/SSCReportTemplateCreateCommand.java b/fcli-core/fcli-ssc/src/main/java/com/fortify/cli/ssc/report/cli/cmd/SSCReportTemplateCreateCommand.java index 744cc852de..99db08987a 100644 --- a/fcli-core/fcli-ssc/src/main/java/com/fortify/cli/ssc/report/cli/cmd/SSCReportTemplateCreateCommand.java +++ b/fcli-core/fcli-ssc/src/main/java/com/fortify/cli/ssc/report/cli/cmd/SSCReportTemplateCreateCommand.java @@ -14,9 +14,11 @@ import java.io.File; +import com.fasterxml.jackson.databind.DeserializationFeature; import com.fasterxml.jackson.databind.ObjectMapper; import com.fasterxml.jackson.databind.node.ObjectNode; import com.fasterxml.jackson.dataformat.yaml.YAMLFactory; +import com.formkiq.graalvm.annotations.Reflectable; import com.fortify.cli.common.cli.util.CommandGroup; import com.fortify.cli.common.output.cli.mixin.OutputHelperMixins; import com.fortify.cli.common.output.transform.IActionCommandResultSupplier; @@ -24,12 +26,15 @@ import com.fortify.cli.ssc._common.rest.SSCUrls; import com.fortify.cli.ssc._common.rest.transfer.SSCFileTransferHelper; import com.fortify.cli.ssc._common.rest.transfer.SSCFileTransferHelper.ISSCAddUploadTokenFunction; -import com.fortify.cli.ssc.report.domain.SSCReportRenderingEngineType; -import com.fortify.cli.ssc.report.domain.SSCReportTemplateDef; +import com.fortify.cli.ssc.report.helper.SSCReportParameterType; +import com.fortify.cli.ssc.report.helper.SSCReportRenderingEngineType; +import com.fortify.cli.ssc.report.helper.SSCReportType; import kong.unirest.HttpRequest; import kong.unirest.UnirestInstance; +import lombok.Data; import lombok.Getter; +import lombok.NoArgsConstructor; import lombok.SneakyThrows; import picocli.CommandLine.Command; import picocli.CommandLine.Mixin; @@ -46,6 +51,33 @@ public class SSCReportTemplateCreateCommand extends AbstractSSCBaseRequestOutput @Override @SneakyThrows public HttpRequest getBaseRequest(UnirestInstance unirest) { + var createRequest = getCreateRequest(); + String docId = uploadTemplateFile(unirest); + createRequest.setTemplateDocId(docId); + return unirest.post(SSCUrls.REPORT_DEFINITIONS).body(createRequest); + } + + @Override + public String getActionCommandResult() { + return "CREATED"; + } + + @Override + public boolean isSingular() { + return true; + } + + @SneakyThrows + private final SSCReportTemplateCreateRequest getCreateRequest() { + ObjectMapper mapper = new ObjectMapper(new YAMLFactory()); + mapper.configure(DeserializationFeature.FAIL_ON_UNKNOWN_PROPERTIES, false); + var result = mapper.readValue(answerFile, SSCReportTemplateCreateRequest.class); + result.setRenderingEngine(SSCReportRenderingEngineType.BIRT); + result.setFileName(templatePath.getName().toString()); + return result; + } + + private final String uploadTemplateFile(UnirestInstance unirest) { ObjectNode uploadResponse = SSCFileTransferHelper.upload( unirest, SSCUrls.UPLOAD_REPORT_DEFINITION_TEMPLATE, @@ -53,40 +85,38 @@ public HttpRequest getBaseRequest(UnirestInstance unirest) { ISSCAddUploadTokenFunction.ROUTEPARAM_UPLOADTOKEN, ObjectNode.class ); - - int uploadedDocId = Integer.parseInt( - uploadResponse - .get("entityId") - .toString() - .replaceAll("\"","") - ); - - ObjectMapper mapper = new ObjectMapper(new YAMLFactory()); - SSCReportTemplateDef rtd = mapper.readValue(answerFile, SSCReportTemplateDef.class); - rtd = processAnswerFile(rtd, templatePath.getAbsolutePath(), uploadedDocId); - - return unirest.post(SSCUrls.REPORT_DEFINITIONS).body(rtd); + return uploadResponse.get("entityId").asText(); } - @Override - public String getActionCommandResult() { - return "CREATED"; + @Reflectable @NoArgsConstructor + @Data + private static final class SSCReportTemplateCreateRequest { + private String name; + private String description = ""; + private SSCReportType type; + private SSCReportRenderingEngineType renderingEngine; + private String fileName; + private SSCReportTemplateCreateRequestParameter[] parameters; + private String templateDocId; } - @Override - public boolean isSingular() { - return true; + @Reflectable @NoArgsConstructor + @Data + private static final class SSCReportTemplateCreateRequestParameter { + private String name; + private String description = ""; + private String identifier; + private SSCReportParameterType type; + private SSCReportTemplateCreateRequestParameterOption[] reportParameterOptions; + private int paramOrder = 0; } - - private int indexVal=0; - private int getIndexVal(){return indexVal++;} - - private SSCReportTemplateDef processAnswerFile(SSCReportTemplateDef rtd, String fileName, int templateDocId){ - rtd.templateDocId = templateDocId; - rtd.renderingEngine = SSCReportRenderingEngineType.BIRT; - rtd.fileName = fileName; - rtd.parameters.stream().forEach(e -> e.index = getIndexVal()); - rtd.guid = java.util.UUID.randomUUID().toString(); - return rtd; + + @Reflectable @NoArgsConstructor + @Data + private static final class SSCReportTemplateCreateRequestParameterOption { + private String displayValue; + private String reportValue; + private String description = ""; + private boolean defaultValue; } } diff --git a/fcli-core/fcli-ssc/src/main/java/com/fortify/cli/ssc/report/cli/cmd/SSCReportTemplateDeleteCommand.java b/fcli-core/fcli-ssc/src/main/java/com/fortify/cli/ssc/report/cli/cmd/SSCReportTemplateDeleteCommand.java index 72a609fca5..e962e07491 100644 --- a/fcli-core/fcli-ssc/src/main/java/com/fortify/cli/ssc/report/cli/cmd/SSCReportTemplateDeleteCommand.java +++ b/fcli-core/fcli-ssc/src/main/java/com/fortify/cli/ssc/report/cli/cmd/SSCReportTemplateDeleteCommand.java @@ -34,7 +34,7 @@ public class SSCReportTemplateDeleteCommand extends AbstractSSCJsonNodeOutputCom @Override public JsonNode getJsonNode(UnirestInstance unirest) { SSCReportTemplateDescriptor descriptor = reportTemplateResolver.getReportTemplateDescriptor(unirest); - unirest.delete(SSCUrls.REPORT_DEFINITION(descriptor.getId())).asObject(JsonNode.class).getBody(); + unirest.delete(SSCUrls.REPORT_DEFINITION(descriptor.getIdString())).asObject(JsonNode.class).getBody(); return descriptor.asJsonNode(); } diff --git a/fcli-core/fcli-ssc/src/main/java/com/fortify/cli/ssc/report/cli/cmd/SSCReportTemplateDownloadCommand.java b/fcli-core/fcli-ssc/src/main/java/com/fortify/cli/ssc/report/cli/cmd/SSCReportTemplateDownloadCommand.java index 5823b18a35..983be7864a 100644 --- a/fcli-core/fcli-ssc/src/main/java/com/fortify/cli/ssc/report/cli/cmd/SSCReportTemplateDownloadCommand.java +++ b/fcli-core/fcli-ssc/src/main/java/com/fortify/cli/ssc/report/cli/cmd/SSCReportTemplateDownloadCommand.java @@ -46,7 +46,7 @@ public JsonNode getJsonNode(UnirestInstance unirest) { } SSCFileTransferHelper.download( unirest, - SSCUrls.DOWNLOAD_REPORT_DEFINITION_TEMPLATE(descriptor.getId()), + SSCUrls.DOWNLOAD_REPORT_DEFINITION_TEMPLATE(descriptor.getIdString()), destination, ISSCAddDownloadTokenFunction.ROUTEPARAM_DOWNLOADTOKEN ); diff --git a/fcli-core/fcli-ssc/src/main/java/com/fortify/cli/ssc/report/cli/cmd/SSCReportWaitForCommand.java b/fcli-core/fcli-ssc/src/main/java/com/fortify/cli/ssc/report/cli/cmd/SSCReportWaitForCommand.java new file mode 100644 index 0000000000..195f378926 --- /dev/null +++ b/fcli-core/fcli-ssc/src/main/java/com/fortify/cli/ssc/report/cli/cmd/SSCReportWaitForCommand.java @@ -0,0 +1,47 @@ +/******************************************************************************* + * Copyright 2021, 2023 Open Text. + * + * The only warranties for products and services of Open Text + * and its affiliates and licensors ("Open Text") are as may + * be set forth in the express warranty statements accompanying + * such products and services. Nothing herein should be construed + * as constituting an additional warranty. Open Text shall not be + * liable for technical or editorial errors or omissions contained + * herein. The information contained herein is subject to change + * without notice. + *******************************************************************************/ +package com.fortify.cli.ssc.report.cli.cmd; + +import java.util.Set; + +import com.fortify.cli.common.output.cli.mixin.OutputHelperMixins; +import com.fortify.cli.common.rest.cli.cmd.AbstractWaitForCommand; +import com.fortify.cli.common.rest.wait.WaitHelper.WaitHelperBuilder; +import com.fortify.cli.ssc._common.output.cli.mixin.SSCProductHelperStandardMixin; +import com.fortify.cli.ssc.report.cli.mixin.SSCReportResolverMixin; +import com.fortify.cli.ssc.report.helper.SSCReportStatus; +import com.fortify.cli.ssc.report.helper.SSCReportStatus.SSCReportStatusIterable; + +import kong.unirest.UnirestInstance; +import lombok.Getter; +import picocli.CommandLine.Command; +import picocli.CommandLine.Mixin; +import picocli.CommandLine.Option; + +@Command(name = OutputHelperMixins.WaitFor.CMD_NAME) +public class SSCReportWaitForCommand extends AbstractWaitForCommand { + @Getter @Mixin SSCProductHelperStandardMixin productHelper; + @Mixin private SSCReportResolverMixin.PositionalParameterMulti reportsResolver; + @Option(names={"-s", "--any-state"}, required=true, split=",", defaultValue="PROCESS_COMPLETE", completionCandidates = SSCReportStatusIterable.class) + private Set states; + + @Override + protected WaitHelperBuilder configure(UnirestInstance unirest, WaitHelperBuilder builder) { + return builder + .recordsSupplier(reportsResolver::getReportDescriptorJsonNodes) + .currentStateProperty("status") + .knownStates(SSCReportStatus.getKnownStateNames()) + .failureStates(SSCReportStatus.getFailureStateNames()) + .matchStates(states); + } +} diff --git a/fcli-core/fcli-ssc/src/main/java/com/fortify/cli/ssc/report/cli/mixin/SSCReportResolverMixin.java b/fcli-core/fcli-ssc/src/main/java/com/fortify/cli/ssc/report/cli/mixin/SSCReportResolverMixin.java new file mode 100644 index 0000000000..5fce72b99e --- /dev/null +++ b/fcli-core/fcli-ssc/src/main/java/com/fortify/cli/ssc/report/cli/mixin/SSCReportResolverMixin.java @@ -0,0 +1,66 @@ +/******************************************************************************* + * Copyright 2021, 2023 Open Text. + * + * The only warranties for products and services of Open Text + * and its affiliates and licensors ("Open Text") are as may + * be set forth in the express warranty statements accompanying + * such products and services. Nothing herein should be construed + * as constituting an additional warranty. Open Text shall not be + * liable for technical or editorial errors or omissions contained + * herein. The information contained herein is subject to change + * without notice. + *******************************************************************************/ +package com.fortify.cli.ssc.report.cli.mixin; + +import java.util.Collection; +import java.util.stream.Collectors; +import java.util.stream.Stream; + +import com.fasterxml.jackson.databind.JsonNode; +import com.fortify.cli.common.cli.util.EnvSuffix; +import com.fortify.cli.ssc.report.helper.SSCReportDescriptor; +import com.fortify.cli.ssc.report.helper.SSCReportHelper; + +import kong.unirest.UnirestInstance; +import lombok.Getter; +import picocli.CommandLine.Option; +import picocli.CommandLine.Parameters; + +public class SSCReportResolverMixin { + private static abstract class AbstractSSCReportResolverMixin { + protected abstract String getReportNameOrId(); + public SSCReportDescriptor getReportDescriptor(UnirestInstance unirest) { + return SSCReportHelper.getRequiredReportDescriptor(unirest, getReportNameOrId()); + } + } + + public static abstract class AbstractSSCMultiReportResolverMixin { + public abstract String[] getReportNamesOrIds(); + + public SSCReportDescriptor[] getReportDescriptors(UnirestInstance unirest){ + return Stream.of(getReportNamesOrIds()).map(id->SSCReportHelper.getRequiredReportDescriptor(unirest, id)).toArray(SSCReportDescriptor[]::new); + } + + public Collection getReportDescriptorJsonNodes(UnirestInstance unirest){ + return Stream.of(getReportDescriptors(unirest)).map(SSCReportDescriptor::asJsonNode).collect(Collectors.toList()); + } + + public String[] getReportIds(UnirestInstance unirest) { + return Stream.of(getReportDescriptors(unirest)).map(SSCReportDescriptor::getId).toArray(String[]::new); + } + } + + public static class PositionalParameterSingle extends AbstractSSCReportResolverMixin { + @EnvSuffix("REPORT") @Parameters(index = "0", arity = "1", descriptionKey = "reportNameOrId") + @Getter private String reportNameOrId; + } + public static class RequiredOption extends AbstractSSCReportResolverMixin { + @Option(names="--report", required=true, descriptionKey = "reportNameOrId") + @Getter private String reportNameOrId; + } + public static class PositionalParameterMulti extends AbstractSSCMultiReportResolverMixin { + @EnvSuffix("REPORTS") @Parameters(index = "0", arity = "1..", paramLabel = "report names or id's", descriptionKey = "fcli.ssc.report.resolver.name-or-ids") + @Getter private String[] reportNamesOrIds; + } + +} diff --git a/fcli-core/fcli-ssc/src/main/java/com/fortify/cli/ssc/report/cli/mixin/SSCReportTemplateResolverMixin.java b/fcli-core/fcli-ssc/src/main/java/com/fortify/cli/ssc/report/cli/mixin/SSCReportTemplateResolverMixin.java index 3893372047..494753ae90 100644 --- a/fcli-core/fcli-ssc/src/main/java/com/fortify/cli/ssc/report/cli/mixin/SSCReportTemplateResolverMixin.java +++ b/fcli-core/fcli-ssc/src/main/java/com/fortify/cli/ssc/report/cli/mixin/SSCReportTemplateResolverMixin.java @@ -29,11 +29,11 @@ public SSCReportTemplateDescriptor getReportTemplateDescriptor(UnirestInstance u } } public static class PositionalParameterSingle extends AbstractSSCReportTemplateResolverMixin { - @EnvSuffix("REPORT_TEMPLATE") @Parameters(index = "0", arity = "1", descriptionKey = "reportTemplateNameOrId") + @EnvSuffix("TEMPLATE") @Parameters(index = "0", arity = "1", descriptionKey = "reportTemplateNameOrId") @Getter private String reportTemplateNameOrId; } public static class RequiredOption extends AbstractSSCReportTemplateResolverMixin { - @Option(names="--report-template", required=true, descriptionKey = "reportTemplateNameOrId") + @Option(names="--template", required=true, descriptionKey = "reportTemplateNameOrId") @Getter private String reportTemplateNameOrId; } diff --git a/fcli-core/fcli-ssc/src/main/java/com/fortify/cli/ssc/report/domain/SSCReportParameterOption.java b/fcli-core/fcli-ssc/src/main/java/com/fortify/cli/ssc/report/domain/SSCReportParameterOption.java deleted file mode 100644 index 95e4a31d08..0000000000 --- a/fcli-core/fcli-ssc/src/main/java/com/fortify/cli/ssc/report/domain/SSCReportParameterOption.java +++ /dev/null @@ -1,26 +0,0 @@ -/******************************************************************************* - * Copyright 2021, 2023 Open Text. - * - * The only warranties for products and services of Open Text - * and its affiliates and licensors ("Open Text") are as may - * be set forth in the express warranty statements accompanying - * such products and services. Nothing herein should be construed - * as constituting an additional warranty. Open Text shall not be - * liable for technical or editorial errors or omissions contained - * herein. The information contained herein is subject to change - * without notice. - *******************************************************************************/ -package com.fortify.cli.ssc.report.domain; - -import com.formkiq.graalvm.annotations.Reflectable; - -import lombok.NoArgsConstructor; - -@Reflectable @NoArgsConstructor -public class SSCReportParameterOption { - public boolean defaultValue; - public String description; - public String displayValue; - public int index; - public String reportValue; -} diff --git a/fcli-core/fcli-ssc/src/main/java/com/fortify/cli/ssc/report/domain/SSCReportParameterType.java b/fcli-core/fcli-ssc/src/main/java/com/fortify/cli/ssc/report/domain/SSCReportParameterType.java deleted file mode 100644 index 44d30d53c0..0000000000 --- a/fcli-core/fcli-ssc/src/main/java/com/fortify/cli/ssc/report/domain/SSCReportParameterType.java +++ /dev/null @@ -1,27 +0,0 @@ -/******************************************************************************* - * Copyright 2021, 2023 Open Text. - * - * The only warranties for products and services of Open Text - * and its affiliates and licensors ("Open Text") are as may - * be set forth in the express warranty statements accompanying - * such products and services. Nothing herein should be construed - * as constituting an additional warranty. Open Text shall not be - * liable for technical or editorial errors or omissions contained - * herein. The information contained herein is subject to change - * without notice. - *******************************************************************************/ -package com.fortify.cli.ssc.report.domain; - -import com.formkiq.graalvm.annotations.Reflectable; - -import lombok.NoArgsConstructor; - -@Reflectable @NoArgsConstructor -public enum SSCReportParameterType { - BOOLEAN, - MULTI_PROJECT, - PROJECT_ATTRIBUTE, - SINGLE_PROJECT, - SINGLE_SELECT_DEFAULT, - STRING -} diff --git a/fcli-core/fcli-ssc/src/main/java/com/fortify/cli/ssc/report/domain/SSCReportTemplateDef.java b/fcli-core/fcli-ssc/src/main/java/com/fortify/cli/ssc/report/domain/SSCReportTemplateDef.java deleted file mode 100644 index 0c88617fa8..0000000000 --- a/fcli-core/fcli-ssc/src/main/java/com/fortify/cli/ssc/report/domain/SSCReportTemplateDef.java +++ /dev/null @@ -1,35 +0,0 @@ -/******************************************************************************* - * Copyright 2021, 2023 Open Text. - * - * The only warranties for products and services of Open Text - * and its affiliates and licensors ("Open Text") are as may - * be set forth in the express warranty statements accompanying - * such products and services. Nothing herein should be construed - * as constituting an additional warranty. Open Text shall not be - * liable for technical or editorial errors or omissions contained - * herein. The information contained herein is subject to change - * without notice. - *******************************************************************************/ -package com.fortify.cli.ssc.report.domain; - -import java.util.ArrayList; - -import com.formkiq.graalvm.annotations.Reflectable; - -import lombok.NoArgsConstructor; - -@Reflectable @NoArgsConstructor -public class SSCReportTemplateDef { - public boolean crossApp; - public String description; - public String fileName; - public String guid; - public String name; - public int objectVersion; - public ArrayList parameters; - public int publishVersion; - public SSCReportRenderingEngineType renderingEngine; - public int templateDocId; - public SSCReportType type; - public String typeDefaultText; -} diff --git a/fcli-core/fcli-ssc/src/main/java/com/fortify/cli/ssc/report/domain/SSCReportParameter.java b/fcli-core/fcli-ssc/src/main/java/com/fortify/cli/ssc/report/helper/SSCReportDescriptor.java similarity index 52% rename from fcli-core/fcli-ssc/src/main/java/com/fortify/cli/ssc/report/domain/SSCReportParameter.java rename to fcli-core/fcli-ssc/src/main/java/com/fortify/cli/ssc/report/helper/SSCReportDescriptor.java index 26c9fb66dd..7199eef37c 100644 --- a/fcli-core/fcli-ssc/src/main/java/com/fortify/cli/ssc/report/domain/SSCReportParameter.java +++ b/fcli-core/fcli-ssc/src/main/java/com/fortify/cli/ssc/report/helper/SSCReportDescriptor.java @@ -10,21 +10,32 @@ * herein. The information contained herein is subject to change * without notice. *******************************************************************************/ -package com.fortify.cli.ssc.report.domain; - -import java.util.ArrayList; +package com.fortify.cli.ssc.report.helper; import com.formkiq.graalvm.annotations.Reflectable; +import com.fortify.cli.common.json.JsonNodeHolder; +import lombok.Data; +import lombok.EqualsAndHashCode; import lombok.NoArgsConstructor; @Reflectable @NoArgsConstructor -public class SSCReportParameter { - public int index; - public String name; - public String description; - public String identifier; - public SSCReportParameterType type; - public ArrayList reportParameterOptions; - public int paramOrder; +@Data @EqualsAndHashCode(callSuper=true) +public class SSCReportDescriptor extends JsonNodeHolder { + private int id; + private String name; + private String type; + //private String typeDefaultText; + // generationDate, startDate, finishDate + private String status; + //private String statusDefaultText; + private String format; + //private String formatDefaultText; + //private String note; + //private SSCReportApplication[] applications; + private SSCReportTemplateDescriptor template; + + public String getIdString() { + return ""+id; + } } diff --git a/fcli-core/fcli-ssc/src/main/java/com/fortify/cli/ssc/report/helper/SSCReportFormat.java b/fcli-core/fcli-ssc/src/main/java/com/fortify/cli/ssc/report/helper/SSCReportFormat.java new file mode 100644 index 0000000000..b88d7d7cd9 --- /dev/null +++ b/fcli-core/fcli-ssc/src/main/java/com/fortify/cli/ssc/report/helper/SSCReportFormat.java @@ -0,0 +1,17 @@ +/** + * Copyright 2023 Open Text. + * + * The only warranties for products and services of Open Text + * and its affiliates and licensors (“Open Text”) are as may + * be set forth in the express warranty statements accompanying + * such products and services. Nothing herein should be construed + * as constituting an additional warranty. Open Text shall not be + * liable for technical or editorial errors or omissions contained + * herein. The information contained herein is subject to change + * without notice. + */ +package com.fortify.cli.ssc.report.helper; + +public enum SSCReportFormat { + xls, doc, pdf +} diff --git a/fcli-core/fcli-ssc/src/main/java/com/fortify/cli/ssc/report/helper/SSCReportHelper.java b/fcli-core/fcli-ssc/src/main/java/com/fortify/cli/ssc/report/helper/SSCReportHelper.java new file mode 100644 index 0000000000..0d9ef53835 --- /dev/null +++ b/fcli-core/fcli-ssc/src/main/java/com/fortify/cli/ssc/report/helper/SSCReportHelper.java @@ -0,0 +1,80 @@ +/******************************************************************************* + * Copyright 2021, 2023 Open Text. + * + * The only warranties for products and services of Open Text + * and its affiliates and licensors ("Open Text") are as may + * be set forth in the express warranty statements accompanying + * such products and services. Nothing herein should be construed + * as constituting an additional warranty. Open Text shall not be + * liable for technical or editorial errors or omissions contained + * herein. The information contained herein is subject to change + * without notice. + *******************************************************************************/ +package com.fortify.cli.ssc.report.helper; + +import com.fasterxml.jackson.databind.JsonNode; +import com.fasterxml.jackson.databind.node.ObjectNode; +import com.fortify.cli.common.json.JsonHelper; +import com.fortify.cli.common.output.transform.fields.RenameFieldsTransformer; + +import kong.unirest.GetRequest; +import kong.unirest.UnirestInstance; + +public final class SSCReportHelper { + private static final RenameFieldsTransformer TRANSFORMER = new RenameFieldsTransformer("projects", "applications"); + + /** + * This method renames the following fields: + *
    + *
  • projects => applications
  • + *
  • _embed.reportDefinition => template
  • + *
+ */ + public static final JsonNode renameFields(JsonNode record) { + var obj = (ObjectNode)TRANSFORMER.transform(record); + obj.set("template", obj.get("_embed").get("reportDefinition")); + obj.remove("_embed"); + return obj; + } + + public static final SSCReportDescriptor getRequiredReportDescriptor(UnirestInstance unirest, String reportNameOrId) { + SSCReportDescriptor descriptor = getOptionalReportDescriptor(unirest, reportNameOrId); + if ( descriptor==null ) { + throw new IllegalArgumentException("No report found for name or id: "+reportNameOrId); + } + return descriptor; + } + + public static final SSCReportDescriptor getOptionalReportDescriptor(UnirestInstance unirest, String reportNameOrId) { + try { + int reportId = Integer.parseInt(reportNameOrId); + return getOptionalReportFromId(unirest, reportId); + } catch (NumberFormatException nfe) { + return getOptionalReportFromName(unirest, reportNameOrId); + } + } + + public static final SSCReportDescriptor getOptionalReportFromId(UnirestInstance unirest, int reportId) { + GetRequest request = getBaseRequest(unirest).queryString("q", String.format("id:%d", reportId)); + return getOptionalDescriptor(request); + } + + public static final SSCReportDescriptor getOptionalReportFromName(UnirestInstance unirest, String name) { + GetRequest request = getBaseRequest(unirest); + request = request.queryString("q", String.format("name:\"%s\"", name)); + return getOptionalDescriptor(request); + } + + private static GetRequest getBaseRequest(UnirestInstance unirest) { + return unirest.get("/api/v1/reports?limit=2") + .queryString("embed", "reportDefinition"); + } + + private static final SSCReportDescriptor getOptionalDescriptor(GetRequest request) { + JsonNode reports = request.asObject(ObjectNode.class).getBody().get("data"); + if ( reports.size()>1 ) { + throw new IllegalArgumentException("Multiple reports found, please specify id"); + } + return reports.size()==0 ? null : JsonHelper.treeToValue(renameFields(reports.get(0)), SSCReportDescriptor.class); + } +} diff --git a/fcli-core/fcli-ssc/src/main/java/com/fortify/cli/ssc/report/helper/SSCReportParameterType.java b/fcli-core/fcli-ssc/src/main/java/com/fortify/cli/ssc/report/helper/SSCReportParameterType.java new file mode 100644 index 0000000000..b3aedc7bef --- /dev/null +++ b/fcli-core/fcli-ssc/src/main/java/com/fortify/cli/ssc/report/helper/SSCReportParameterType.java @@ -0,0 +1,32 @@ +/** + * Copyright 2023 Open Text. + * + * The only warranties for products and services of Open Text + * and its affiliates and licensors (“Open Text”) are as may + * be set forth in the express warranty statements accompanying + * such products and services. Nothing herein should be construed + * as constituting an additional warranty. Open Text shall not be + * liable for technical or editorial errors or omissions contained + * herein. The information contained herein is subject to change + * without notice. + */ +package com.fortify.cli.ssc.report.helper; + +/** + * Taken from SSC 23.2 REST documentation, commenting out types that + * are not listed in the SSC UI. + */ +public enum SSCReportParameterType { + SINGLE_PROJECT, + //SINGLE_RUNTIME_APP, + //SINGLE_SSA_PROJECT, + MULTI_PROJECT, + //MULTI_RUNTIME_APP, + //MULTI_SSA_PROJECT, + PROJECT_ATTRIBUTE, + STRING, + BOOLEAN, + DATE, + SINGLE_SELECT_DEFAULT, + //METADEF_GUID +} diff --git a/fcli-core/fcli-ssc/src/main/java/com/fortify/cli/ssc/report/domain/SSCReportRenderingEngineType.java b/fcli-core/fcli-ssc/src/main/java/com/fortify/cli/ssc/report/helper/SSCReportRenderingEngineType.java similarity index 95% rename from fcli-core/fcli-ssc/src/main/java/com/fortify/cli/ssc/report/domain/SSCReportRenderingEngineType.java rename to fcli-core/fcli-ssc/src/main/java/com/fortify/cli/ssc/report/helper/SSCReportRenderingEngineType.java index cc0dcf7065..7cae7f8571 100644 --- a/fcli-core/fcli-ssc/src/main/java/com/fortify/cli/ssc/report/domain/SSCReportRenderingEngineType.java +++ b/fcli-core/fcli-ssc/src/main/java/com/fortify/cli/ssc/report/helper/SSCReportRenderingEngineType.java @@ -10,7 +10,7 @@ * herein. The information contained herein is subject to change * without notice. *******************************************************************************/ -package com.fortify.cli.ssc.report.domain; +package com.fortify.cli.ssc.report.helper; import com.formkiq.graalvm.annotations.Reflectable; diff --git a/fcli-core/fcli-ssc/src/main/java/com/fortify/cli/ssc/report/helper/SSCReportStatus.java b/fcli-core/fcli-ssc/src/main/java/com/fortify/cli/ssc/report/helper/SSCReportStatus.java new file mode 100644 index 0000000000..6352ae4b64 --- /dev/null +++ b/fcli-core/fcli-ssc/src/main/java/com/fortify/cli/ssc/report/helper/SSCReportStatus.java @@ -0,0 +1,61 @@ +/******************************************************************************* + * Copyright 2021, 2023 Open Text. + * + * The only warranties for products and services of Open Text + * and its affiliates and licensors ("Open Text") are as may + * be set forth in the express warranty statements accompanying + * such products and services. Nothing herein should be construed + * as constituting an additional warranty. Open Text shall not be + * liable for technical or editorial errors or omissions contained + * herein. The information contained herein is subject to change + * without notice. + *******************************************************************************/ + +package com.fortify.cli.ssc.report.helper; + +import java.util.ArrayList; +import java.util.stream.Stream; + +/** + * Enum values copied from SSC internal enum (com.fortify.manager.DAO.report.ReportStatus in ssc-core-[version].jar) + */ +public enum SSCReportStatus { + SCHED_PROCESSING, + PROCESSING, + PROCESS_COMPLETE, + ERROR_PROCESSING; + + public static final SSCReportStatus[] getFailureStates() { + return new SSCReportStatus[]{ + ERROR_PROCESSING + }; + } + + public static final SSCReportStatus[] getKnownStates() { + return SSCReportStatus.values(); + } + + public static final SSCReportStatus[] getDefaultCompleteStates() { + return new SSCReportStatus[]{ PROCESS_COMPLETE }; + } + + public static final String[] getFailureStateNames() { + return Stream.of(getFailureStates()).map(SSCReportStatus::name).toArray(String[]::new); + } + + public static final String[] getKnownStateNames() { + return Stream.of(getKnownStates()).map(SSCReportStatus::name).toArray(String[]::new); + } + + public static final String[] getDefaultCompleteStateNames() { + return Stream.of(getDefaultCompleteStates()).map(SSCReportStatus::name).toArray(String[]::new); + } + + public static final class SSCReportStatusIterable extends ArrayList { + private static final long serialVersionUID = 1L; + public SSCReportStatusIterable() { + super(Stream.of(SSCReportStatus.values()).map(SSCReportStatus::name).toList()); + } + } + +} diff --git a/fcli-core/fcli-ssc/src/main/java/com/fortify/cli/ssc/report/helper/SSCReportTemplateDescriptor.java b/fcli-core/fcli-ssc/src/main/java/com/fortify/cli/ssc/report/helper/SSCReportTemplateDescriptor.java index 81b77c69b0..6ce5f59eff 100644 --- a/fcli-core/fcli-ssc/src/main/java/com/fortify/cli/ssc/report/helper/SSCReportTemplateDescriptor.java +++ b/fcli-core/fcli-ssc/src/main/java/com/fortify/cli/ssc/report/helper/SSCReportTemplateDescriptor.java @@ -12,6 +12,11 @@ *******************************************************************************/ package com.fortify.cli.ssc.report.helper; +import java.util.stream.Collectors; +import java.util.stream.Stream; + +import com.fasterxml.jackson.annotation.JsonIgnore; +import com.fasterxml.jackson.annotation.JsonProperty; import com.formkiq.graalvm.annotations.Reflectable; import com.fortify.cli.common.json.JsonNodeHolder; @@ -22,7 +27,58 @@ @Reflectable @NoArgsConstructor @Data @EqualsAndHashCode(callSuper=true) public class SSCReportTemplateDescriptor extends JsonNodeHolder { - private String id; + private int id; private String name; + private String description; + private SSCReportType type; private String fileName; + private int templateDocId; + private SSCReportRenderingEngineType renderingEngine; + private SSCReportTemplateParameter[] parameters; + + @JsonIgnore + public final String getIdString() { + return ""+id; + } + + @Reflectable @NoArgsConstructor + @Data + public static final class SSCReportTemplateParameter { + private int id; + private String name; + private SSCReportParameterType type; + private String description; + private String identifier; + private int paramOrder; + @JsonProperty("reportParameterOptions") + private SSCReportTemplateParameterOption[] options; + + public String getOptionsString() { + return options==null + ? "" + : Stream.of(options) + .map(SSCReportTemplateParameterOption::getDisplayValueWithDefaultValueIndicator) + .collect(Collectors.joining("\n")); + } + + public String getTypeString() { + return type.name().replace("PROJECT", "APPVERSION"); + } + } + + @Reflectable @NoArgsConstructor + @Data + public static final class SSCReportTemplateParameterOption { + private int id; + private String identifier; + private String displayValue; + private String reportValue; + private boolean defaultValue; + private String description; + private int order; + + public final String getDisplayValueWithDefaultValueIndicator() { + return String.format("%s%s", displayValue, defaultValue?"*":""); + } + } } diff --git a/fcli-core/fcli-ssc/src/main/java/com/fortify/cli/ssc/report/helper/SSCReportTemplateHelper.java b/fcli-core/fcli-ssc/src/main/java/com/fortify/cli/ssc/report/helper/SSCReportTemplateHelper.java index ad3d791799..1f165766dd 100644 --- a/fcli-core/fcli-ssc/src/main/java/com/fortify/cli/ssc/report/helper/SSCReportTemplateHelper.java +++ b/fcli-core/fcli-ssc/src/main/java/com/fortify/cli/ssc/report/helper/SSCReportTemplateHelper.java @@ -22,7 +22,7 @@ import kong.unirest.UnirestInstance; public final class SSCReportTemplateHelper { - private final Map descriptorsById = new HashMap<>(); + private final Map descriptorsById = new HashMap<>(); private final Map descriptorsByName = new HashMap<>(); /** @@ -49,7 +49,9 @@ private void processReportTemplate(JsonNode reportTemplate) { } public SSCReportTemplateDescriptor getDescriptorByNameOrId(String reportTemplateNameOrId, boolean failIfNotFound) { - SSCReportTemplateDescriptor descriptor = descriptorsById.get(reportTemplateNameOrId); + SSCReportTemplateDescriptor descriptor = null; + try { descriptor = descriptorsById.get(Integer.parseInt(reportTemplateNameOrId)); } + catch ( NumberFormatException ignore ) {} descriptor = descriptor!=null ? descriptor : descriptorsByName.get(reportTemplateNameOrId); if ( failIfNotFound && descriptor==null ) { throw new IllegalArgumentException("No report template found with name or id "+reportTemplateNameOrId); diff --git a/fcli-core/fcli-ssc/src/main/java/com/fortify/cli/ssc/report/domain/SSCReportType.java b/fcli-core/fcli-ssc/src/main/java/com/fortify/cli/ssc/report/helper/SSCReportType.java similarity index 92% rename from fcli-core/fcli-ssc/src/main/java/com/fortify/cli/ssc/report/domain/SSCReportType.java rename to fcli-core/fcli-ssc/src/main/java/com/fortify/cli/ssc/report/helper/SSCReportType.java index f34cd009e4..b2099b0a5d 100644 --- a/fcli-core/fcli-ssc/src/main/java/com/fortify/cli/ssc/report/domain/SSCReportType.java +++ b/fcli-core/fcli-ssc/src/main/java/com/fortify/cli/ssc/report/helper/SSCReportType.java @@ -10,7 +10,7 @@ * herein. The information contained herein is subject to change * without notice. *******************************************************************************/ -package com.fortify.cli.ssc.report.domain; +package com.fortify.cli.ssc.report.helper; import com.formkiq.graalvm.annotations.Reflectable; @@ -19,5 +19,6 @@ @Reflectable @NoArgsConstructor public enum SSCReportType { ISSUE, - PROJECT + PROJECT, + PORTFOLIO } diff --git a/fcli-core/fcli-ssc/src/main/resources/com/fortify/cli/ssc/i18n/SSCMessages.properties b/fcli-core/fcli-ssc/src/main/resources/com/fortify/cli/ssc/i18n/SSCMessages.properties index 96a933b5a8..247df255de 100644 --- a/fcli-core/fcli-ssc/src/main/resources/com/fortify/cli/ssc/i18n/SSCMessages.properties +++ b/fcli-core/fcli-ssc/src/main/resources/com/fortify/cli/ssc/i18n/SSCMessages.properties @@ -401,8 +401,21 @@ fcli.ssc.plugin.uninstall.no-auto-disable = The plugin being deleted will be aut # fcli ssc report fcli.ssc.report.usage.header = Manage SSC reports & templates. -fcli.ssc.report.usage.description = For now, this command only supports managing report templates; \ - functionality for generating and downloading reports will be added in a later fcli version. +fcli.ssc.report.create.usage.header = Generate a report on SSC. +fcli.ssc.report.create.format = Report format. Allowed values: ${COMPLETION-CANDIDATES}. +fcli.ssc.report.create.name = Name for the generated report. +fcli.ssc.report.create.notes = Notes for the generated report. +fcli.ssc.report.create.parameters = Report generation parameters, dependent on report template. +fcli.ssc.report.delete.usage.header = Delete a report from SSC. +fcli.ssc.report.download.usage.header = Download an SSC report. +fcli.ssc.report.download.file = Optional output file name. +fcli.ssc.report.get.usage.header = Get SSC report details. +fcli.ssc.report.list.usage.header = List SSC reports. +fcli.ssc.report.wait-for.usage.header = Wait for SSC report generation. +fcli.ssc.report.wait-for.until = Wait until either any or all reports match. If neither --until or --while are specified, default is to wait until all reports match. +fcli.ssc.report.wait-for.while = Wait while either any or all reports match. +fcli.ssc.report.wait-for.any-state = One or more report states against which to match the given reports. +fcli.ssc.report.list-parameters.usage.header = List SSC report parameters. fcli.ssc.report.create-template.usage.header = Create/upload a report template. fcli.ssc.report.create-template.config = File containing report template configuration, like report \ parameters. You can use the 'generate-config' command to create a new configuration file template. @@ -418,7 +431,11 @@ fcli.ssc.report.download-template.usage.header = Download a report template file fcli.ssc.report.download-template.file = Optional issue template file path. fcli.ssc.report.get-template.usage.header = Get report template details. fcli.ssc.report.list-templates.usage.header = List report template definitions. +fcli.ssc.report.output.header.authEntityUserName = Generated by reportTemplateNameOrId = The name or ID of the report template definition. +fcli.ssc.report.resolver.name-or-ids = Report names or id's. +reportNameOrId = Report name or id. If multiple reports with the same name exist on SSC, you must specify the report id. + # fcli ssc system-state fcli.ssc.system-state.usage.header = View & manage SSC system state (logs, jobs, ...) @@ -477,6 +494,8 @@ fcli.ssc.performance-indicator.output.table.options = id,name,timestamp,valueStr fcli.ssc.variable.definition.output.table.options = id,guid,name,searchString fcli.ssc.variable.output.table.options = id,name,timestamp,value fcli.ssc.plugin.output.table.options = id,pluginId,pluginType,pluginName,pluginVersion,pluginState +fcli.ssc.report.output.table.options = id,name,template.name,type,finishDate,authEntity.userName,status +fcli.ssc.report.parameter.output.table.options = identifier,name,typeString,optionsString fcli.ssc.report.template.output.table.options = id,name,type,templateDocId,inUse fcli.ssc.report.template.create-template-config.output.table.options = path # TODO Rename allApplicationRole to universalAccess in command implementation diff --git a/fcli-core/fcli-ssc/src/main/resources/com/fortify/cli/ssc/report/ReportTemplateConfig.yml b/fcli-core/fcli-ssc/src/main/resources/com/fortify/cli/ssc/report/ReportTemplateConfig.yml index 54f57ad79e..590cfd0c5a 100644 --- a/fcli-core/fcli-ssc/src/main/resources/com/fortify/cli/ssc/report/ReportTemplateConfig.yml +++ b/fcli-core/fcli-ssc/src/main/resources/com/fortify/cli/ssc/report/ReportTemplateConfig.yml @@ -1,26 +1,23 @@ --- -name: Change-Me # The name to give to the report -description: Change-Me # Description of what your report is for and what kind of information it will contain. -type: ISSUE # Possible values here are ISSUE or PROJECT. -typeDefaultText: Change-Me # This default describes the type of report this is. For example, existing values that other reports use are: "Portfolio Reports", "Application Reports", or "Issue Reports". You are free to specify some other value that fits the type of report template you have. +name: Change-Me # Required: Report template name +description: Change-Me # Optional: Report template description +type: ISSUE # Required: ISSUE, PROJECT or PORTFOLIO parameters: -- name: Change-Me0 # The parameter name. - paramOrder: 0 # Represents the ordering of your parameters in the SSC Web UI. - description: Change-Me0 # Description of the parameter. - identifier: Change-Me0 # This is the ID/name of the report parameter in your report template. - type: SINGLE_SELECT_DEFAULT # Possible values are BOOLEAN, MULTI_PROJECT, PROJECT_ATTRIBUTE, SINGLE_PROJECT, SINGLE_SELECT_DEFAULT, STRING. - reportParameterOptions: # Used only when the parameter is of type "SINGLE_SELECT_DEFAULT". The options represent the different pre-defined options/values that you will allow the user to select from. - - index: 0 - defaultValue: true # Is this option the default value for the parameter. - description: Change-Me1 # Description for this parameter option. - displayValue: Change-Me1 # The value to be shown in the SSC web UI - reportValue: Change-Me1 # The value to actually be injected into the report parameter - - index: 1 - defaultValue: false - description: Change-Me2 - displayValue: Change-Me2 - reportValue: Change-Me2 -- name: Change-Me3 # Parameters of type BOOLEAN, MULTI_PROJECT, PROJECT_ATTRIBUTE, SINGLE_PROJECT, or STRING don't need a "reportParameterOptions" section. +- name: Change-Me0 # Required: Report parameter name + description: Change-Me0 # Optional: Report parameter description + identifier: Change-Me0 # Required: ID/name of the report parameter in the BIRT template. + type: SINGLE_SELECT_DEFAULT # Required: BOOLEAN, MULTI_PROJECT, PROJECT_ATTRIBUTE, SINGLE_PROJECT, SINGLE_SELECT_DEFAULT, STRING, or DATE + paramOrder: 0 # Optional: Report parameter ordering value + reportParameterOptions: # Required for parameter type "SINGLE_SELECT_DEFAULT", not allowed for other parameter types + - defaultValue: true # Required: Boolean indicating whether this is the default parameter option + description: Change-Me1 # Optional: Report parameter option description + displayValue: Change-Me1 # Required: Report parameter display value as shown in SSC UI + reportValue: Change-Me1 # Required: The value to be passed to the BIRT template + - defaultValue: false # See above + description: Change-Me2 # See above + displayValue: Change-Me2 # See above + reportValue: Change-Me2 # See above +- name: Change-Me3 # Repeated section above for additional report parameter but different type paramOrder: 1 description: Change-Me3 identifier: Change-Me3 diff --git a/fcli-other/fcli-functional-test/ReportTemplateConfig.yml b/fcli-other/fcli-functional-test/ReportTemplateConfig.yml new file mode 100644 index 0000000000..590cfd0c5a --- /dev/null +++ b/fcli-other/fcli-functional-test/ReportTemplateConfig.yml @@ -0,0 +1,24 @@ +--- +name: Change-Me # Required: Report template name +description: Change-Me # Optional: Report template description +type: ISSUE # Required: ISSUE, PROJECT or PORTFOLIO +parameters: +- name: Change-Me0 # Required: Report parameter name + description: Change-Me0 # Optional: Report parameter description + identifier: Change-Me0 # Required: ID/name of the report parameter in the BIRT template. + type: SINGLE_SELECT_DEFAULT # Required: BOOLEAN, MULTI_PROJECT, PROJECT_ATTRIBUTE, SINGLE_PROJECT, SINGLE_SELECT_DEFAULT, STRING, or DATE + paramOrder: 0 # Optional: Report parameter ordering value + reportParameterOptions: # Required for parameter type "SINGLE_SELECT_DEFAULT", not allowed for other parameter types + - defaultValue: true # Required: Boolean indicating whether this is the default parameter option + description: Change-Me1 # Optional: Report parameter option description + displayValue: Change-Me1 # Required: Report parameter display value as shown in SSC UI + reportValue: Change-Me1 # Required: The value to be passed to the BIRT template + - defaultValue: false # See above + description: Change-Me2 # See above + displayValue: Change-Me2 # See above + reportValue: Change-Me2 # See above +- name: Change-Me3 # Repeated section above for additional report parameter but different type + paramOrder: 1 + description: Change-Me3 + identifier: Change-Me3 + type: STRING diff --git a/fcli-other/fcli-functional-test/project_report.rptdesign b/fcli-other/fcli-functional-test/project_report.rptdesign new file mode 100644 index 0000000000..42452f8aa0 --- /dev/null +++ b/fcli-other/fcli-functional-test/project_report.rptdesign @@ -0,0 +1,58216 @@ + + + Eclipse BIRT Designer Version 4.7.0.v201706222054 + + + IssueTrend_VAR.IssueTrending_LOC.x + integer + false + + + IssueTrend_VAR.IssueTrending_LOC.y + integer + false + + + IssueTrend_VAR.ISSUES.NewTabularHierarchy1.x + integer + false + + + IssueTrend_VAR.ISSUES.NewTabularHierarchy1.y + integer + false + + + IssueTrend_VAR.IssueTrending_LOC.width + integer + false + + + IssueTrend_VAR.IssueTrending_LOC.height + integer + false + + + IssueTrend_VAR.scan.NewTabularHierarchy2.x + integer + false + + + IssueTrend_VAR.ISSUES.NewTabularHierarchy1.width + integer + false + + + IssueTrend_VAR.ISSUES.NewTabularHierarchy1.height + integer + false + + + IssueByPrimaryTag.IssuesByAnalysisPerFriority.x + integer + false + + + IssueByPrimaryTag.IssuesByAnalysisPerFriority.y + integer + false + + + IssueByPrimaryTag.IssuesByAnalysisPerPrimaryTag.x + integer + false + + + IssueByPrimaryTag.IssuesByAnalysisPerPrimaryTag.y + integer + false + + + 460 + 43 + 47 + 43 + 150 + 200 + 220 + 150 + 200 + 135 + 80 + 135 + 80 + + + queryText + 6293 + + + queryTimeOut + 6293 + + + rowFetchSize + 6293 + + + queryText + 8852 + + + queryTimeOut + 8852 + + + rowFetchSize + 8852 + + + in + + /templates/sidebyside_chart_listing.gif + org.eclipse.birt.report.designer.ui.cheatsheet.sidebysidechartlisting + auto layout + ltr + + + FortifyBasicElements.rptlibrary + FortifyBasicElements + + + + + birtStyles.css + false + + + + + static + true + decimal + true + + 3 + + + simple + false + text-box + + Unformatted + + + + static + false + string + true + + http://horton.fortifysoftware.com:8180/f360 + + simple + text-box + + Unformatted + + + + static + false + string + true + simple + text-box + + Unformatted + + + + static + false + boolean + true + + true + + + simple + check-box + + + + static + false + boolean + true + + false + + + simple + check-box + + + + static + false + boolean + true + + false + + + simple + check-box + + + + static + false + boolean + true + + false + + + simple + check-box + + + + static + false + boolean + true + + true + + + simple + check-box + + + + static + false + boolean + true + + false + + simple + check-box + + + + static + false + boolean + true + + true + + + simple + check-box + + + + static + false + boolean + true + + true + + simple + check-box + + + + static + false + boolean + true + + true + + simple + check-box + + + + static + false + boolean + true + + false + + simple + check-box + + + + static + false + boolean + true + + false + + simple + check-box + + + + static + false + boolean + true + + False + + + simple + check-box + + + + static + false + boolean + true + + True + + + simple + check-box + + + + static + false + boolean + true + + true + + simple + check-box + + + + static + false + boolean + true + + true + + simple + check-box + + + + static + false + boolean + true + + true + + simple + check-box + + + + static + false + boolean + true + + true + + simple + check-box + + + + static + false + boolean + true + + true + + simple + check-box + + + + static + false + string + true + + FortifySecurityRating + + simple + text-box + + Unformatted + + + + static + false + boolean + true + + true + + simple + check-box + + + + true + static + false + string + true + + + + + simple + text-box + + Unformatted + + + + true + static + false + string + true + + + + + simple + text-box + + Unformatted + + + + + + + + + + + PVNAME + PVNAME + + + PNAME + PNAME + + + PTNAME + PTNAME + + + RTNAME + RTNAME + + + PTYPE + PTYPE + + + ID + ID + + + CREATED + CREATED + + + DESCRIPTION + DESCRIPTION + + + OWNER + OWNER + + + FIRSTSCAN + FIRSTSCAN + + + LASTSCAN + LASTSCAN + + + + + param_1 + projectversionid + + decimal + 4 + 1 + true + true + true + false + + + param_2 + projectversionid + decimal + 2 + true + false + + + + + + 1 + PVNAME + string + + + 2 + PNAME + string + + + 3 + PTNAME + string + + + 4 + RTNAME + string + + + 5 + PTYPE + string + + + 6 + ID + integer + + + 7 + CREATED + date-time + + + 8 + DESCRIPTION + string + + + 9 + OWNER + string + + + 10 + FIRSTSCAN + decimal + + + 11 + LASTSCAN + decimal + + + + FEM360DB + + + 1 + PVNAME + PVNAME + string + 12 + + + 2 + PNAME + PNAME + string + 12 + + + 3 + PTNAME + PTNAME + string + 12 + + + 4 + RTNAME + RTNAME + string + 12 + + + 5 + PTYPE + PTYPE + string + 12 + + + 6 + ID + ID + decimal + 4 + + + 7 + CREATED + CREATED + date-time + 93 + + + 8 + DESCRIPTION + DESCRIPTION + string + 12 + + + 9 + OWNER + OWNER + string + 12 + + + 10 + FIRSTSCAN + FIRSTSCAN + decimal + -5 + + + 11 + LASTSCAN + LASTSCAN + decimal + -5 + + + + + + 1.0 + + + In + + + 1 + 4 + 10 + 0 + Nullable + + + + true + + + + + + + + + + PVNAME + 1 + 12 + 255 + 0 + NotNullable + + PVNAME + + + + PVNAME + + 255 + + + + + + PNAME + 2 + 12 + 255 + 0 + Nullable + + PNAME + + + + PNAME + + 255 + + + + + + +]]> + + + + + FILES + FILES + + + LOC + LOC + + + + + param_1 + projectversionid + + decimal + 4 + 1 + 2 + true + true + true + false + + + + + + 1 + FILES + integer + + + 2 + LOC + integer + + + + FEM360DB + + + 1 + FILES + FILES + integer + 4 + + + 2 + LOC + LOC + integer + 4 + + + + + + 1.0 + + + In + + + 1 + 4 + 10 + 0 + Nullable + + + + true + + + + +]]> + + + + + IDX + IDX + + + MNAME + MNAME + + + PANAME + PANAME + + + COUNTS + COUNTS + + + + + param_1 + projectversionid + + decimal + 4 + 1 + 2 + true + true + true + false + + + + + + 1 + IDX + integer + + + 2 + MNAME + string + + + 3 + PANAME + string + + + 4 + COUNTS + integer + + + + FEM360DB + + + 1 + IDX + IDX + integer + 4 + + + 2 + MNAME + MNAME + string + 12 + + + 3 + PANAME + PANAME + string + 12 + + + 4 + COUNTS + COUNTS + integer + 4 + + + + + + 1.0 + + + In + + + 1 + 4 + 10 + 0 + Nullable + + + + true + + + + +]]> + + + + + ID + ID + + + PROJNAME + PROJNAME + + + NAME + NAME + + + OWNER + OWNER + + + TOTAL + TOTAL + + + COMPLETE + COMPLETE + + + RISK + RISK + + + TYPE + TYPE + + + BUSRISK + BUSRISK + + + + + param_3 + projectversionid + + decimal + 4 + 1 + true + true + true + false + + + param_4 + performanceIndicatorGUID + + string + 12 + 2 + true + true + true + false + + + param_5 + projectversionid + + decimal + 4 + 3 + true + true + true + false + + + + + + 1 + ID + integer + + + 2 + PROJNAME + string + + + 3 + NAME + string + + + 4 + OWNER + string + + + 5 + TOTAL + integer + + + 6 + COMPLETE + integer + + + 7 + RISK + float + + + 8 + TYPE + string + + + 9 + BUSRISK + string + + + + FEM360DB + + + 1 + ID + ID + decimal + 4 + + + 2 + PROJNAME + PROJNAME + string + 12 + + + 3 + NAME + NAME + string + 12 + + + 4 + OWNER + OWNER + string + 12 + + + 5 + TOTAL + TOTAL + integer + 4 + + + 6 + COMPLETE + COMPLETE + integer + 4 + + + 7 + RISK + RISK + float + 8 + + + 8 + TYPE + TYPE + string + 12 + + + 9 + BUSRISK + BUSRISK + string + 12 + + + + + + 1.0 + + + In + + + 1 + 4 + 10 + 0 + Nullable + + + + true + + + + + In + + + 2 + 4 + 10 + 0 + Nullable + + + + true + + + + + In + + + 3 + 4 + 10 + 0 + Nullable + + + + true + + + + + In + + + 4 + 12 + 255 + 0 + Nullable + + + + true + + + + + In + + + 5 + 4 + 10 + 0 + Nullable + + + + true + + + + +]]> + + + + + NAME + NAME + + + DESCR + DESCR + + + + + param_1 + performanceIndicatorGUID + + string + 12 + 1 + true + true + false + + + + + + 1 + NAME + string + + + 2 + DESCR + string + + + + FEM360DB + + + 1 + NAME + NAME + string + 12 + + + 2 + DESCR + DESCR + string + 12 + + + + + + 1.0 + + + In + + + 1 + 12 + 255 + 0 + Nullable + + + + true + + + + + + + + + + NAME + 1 + 12 + 255 + 0 + Nullable + + NAME + + + + NAME + + 255 + + + + + + DESCR + 2 + 12 + 2000 + 0 + Nullable + + DESCR + + + + DESCR + + 2000 + + + + + + +]]> + + + + + CATEGORY + CATEGORY + + + TOTAL_OCCUR + TOTAL_OCCUR + + + + + param_1 + projectversionid + + decimal + 4 + 1 + 2 + true + true + false + + + + + + 1 + CATEGORY + string + + + 2 + TOTAL_OCCUR + integer + + + + FEM360DB + + + 1 + CATEGORY + CATEGORY + string + 12 + + + 2 + TOTAL_OCCUR + TOTAL_OCCUR + integer + 4 + + + 'REMOVED' +AND i.friority = 'Critical' +group by i.category ) +order by TOTAL_OCCUR DESC ]]> + + + 1.0 + + + In + + + 1 + 4 + 10 + 0 + Nullable + + + + true + + + + +]]> + + + + + param_1 + projectversionid + + decimal + 4 + 1 + 2 + true + true + false + + + param_2 + performanceIndicatorGUID + + string + 12 + 2 + true + true + true + false + + + + + + 1 + STARTDATE + date-time + + + 2 + CRIT + integer + + + 3 + HIGH + integer + + + 4 + MED + integer + + + 5 + LOW + integer + + + 6 + PI + float + + + 7 + TYPE + string + + + + FEM360DB + + + 1 + STARTDATE + STARTDATE + date-time + + + 2 + CRIT + CRIT + integer + + + 3 + HIGH + HIGH + integer + + + 4 + MED + MED + integer + + + 5 + LOW + LOW + integer + + + 6 + PI + PI + float + + + 7 + TYPE + TYPE + string + + + + + + 1.0 + + + In + + + 1 + 4 + 10 + 0 + Nullable + + + + true + + + + + In + + + 2 + 12 + 255 + 0 + Nullable + + + + true + + + + + + + + + + VARIABLEVALUE + 1 + 4 + 10 + 0 + Nullable + + VARIABLEVALUE + + + + VARIABLEVALUE + + 11 + + + + + + +]]> + + + + + CRIT + CRIT + + + HIGH + HIGH + + + MED + MED + + + LOW + LOW + + + IN_CRITICAL + IN_CRITICAL + + + OUT_CRITICAL + OUT_CRITICAL + + + IN_HIGH + IN_HIGH + + + OUT_HIGH + OUT_HIGH + + + IN_MEDIUM + IN_MEDIUM + + + OUT_MEDIUM + OUT_MEDIUM + + + IN_LOW + IN_LOW + + + OUT_LOW + OUT_LOW + + + + + param_1 + projectversionid + + decimal + 4 + 1 + true + true + true + false + + + + + + 1 + CRIT + integer + + + 2 + HIGH + integer + + + 3 + MED + integer + + + 4 + LOW + integer + + + 5 + IN_CRITICAL + integer + + + 6 + OUT_CRITICAL + integer + + + 7 + IN_HIGH + integer + + + 8 + OUT_HIGH + integer + + + 9 + IN_MEDIUM + integer + + + 10 + OUT_MEDIUM + integer + + + 11 + IN_LOW + integer + + + 12 + OUT_LOW + integer + + + + FEM360DB + + + 1 + CRIT + CRIT + integer + 4 + + + 2 + HIGH + HIGH + integer + 4 + + + 3 + MED + MED + integer + 4 + + + 4 + LOW + LOW + integer + 4 + + + 5 + IN_CRITICAL + IN_CRITICAL + integer + 4 + + + 6 + OUT_CRITICAL + OUT_CRITICAL + integer + 4 + + + 7 + IN_HIGH + IN_HIGH + integer + 4 + + + 8 + OUT_HIGH + OUT_HIGH + integer + 4 + + + 9 + IN_MEDIUM + IN_MEDIUM + integer + 4 + + + 10 + OUT_MEDIUM + OUT_MEDIUM + integer + 4 + + + 11 + IN_LOW + IN_LOW + integer + 4 + + + 12 + OUT_LOW + OUT_LOW + integer + 4 + + + i.friority THEN 1 ELSE 0 END),0) AS IN_CRITICAL +, COALESCE(SUM(CASE WHEN i.enginePriority='Critical' AND i.enginePriority <> i.friority THEN 1 ELSE 0 END),0) AS OUT_CRITICAL +, COALESCE(SUM(CASE WHEN i.friority='High' AND i.enginePriority <> i.friority THEN 1 ELSE 0 END),0) AS IN_HIGH +, COALESCE(SUM(CASE WHEN i.enginePriority='High' AND i.enginePriority <> i.friority THEN 1 ELSE 0 END),0) AS OUT_HIGH +, COALESCE(SUM(CASE WHEN i.friority='Medium' AND i.enginePriority <> i.friority THEN 1 ELSE 0 END),0) AS IN_MEDIUM +, COALESCE(SUM(CASE WHEN i.enginePriority='Medium' AND i.enginePriority <> i.friority THEN 1 ELSE 0 END),0) AS OUT_MEDIUM +, COALESCE(SUM(CASE WHEN i.friority='Low' AND i.enginePriority <> i.friority THEN 1 ELSE 0 END),0) AS IN_LOW +, COALESCE(SUM(CASE WHEN i.enginePriority='Low' AND i.enginePriority <> i.friority THEN 1 ELSE 0 END),0) AS OUT_LOW + +from baseissueview i +WHERE i.hidden='N' +AND i.suppressed='N' +AND i.scanStatus <>'REMOVED' +AND i.projectVersion_id = ? +) +]]> + + + nulls lowest + + + + param_1 + projectversionid + + decimal + -1 + 1 + true + true + true + false + + + + + + 1 + G_ROUP + string + + + 2 + SORT + decimal + + + 3 + CRIT_COUNT + decimal + + + 4 + HIGH_COUNT + decimal + + + 5 + MED_COUNT + decimal + + + 6 + LOW_COUNT + decimal + + + 7 + GA_ROUP + string + + + + FEM360DB + + + 1 + G_ROUP + G_ROUP + string + + + 2 + SORT + SORT + decimal + + + 3 + CRIT_COUNT + CRIT_COUNT + decimal + + + 4 + HIGH_COUNT + HIGH_COUNT + decimal + + + 5 + MED_COUNT + MED_COUNT + decimal + + + 6 + LOW_COUNT + LOW_COUNT + decimal + + + 7 + GA_ROUP + GA_ROUP + string + + + 'REMOVED' +AND i.projectVersion_id = ? +group by cpec.name ) U on U.GA_ROUP = T.G_ROUP ) order by SORT +]]> + + + 2.0 + + + + + + + STARTDATE + 1 + + -5 + 19 + 0 + Nullable + + STARTDATE + + + + STARTDATE + + 20 + + + + + + +]]> + + + nulls lowest + + + + param_1 + projectversionid + + decimal + -1 + 1 + true + true + true + false + + + + + + 1 + G_ROUP + string + + + 2 + SORT + decimal + + + 3 + CRIT_COUNT + decimal + + + 4 + HIGH_COUNT + decimal + + + 5 + MED_COUNT + decimal + + + 6 + LOW_COUNT + decimal + + + 7 + GA_ROUP + string + + + + FEM360DB + + + 1 + G_ROUP + G_ROUP + string + + + 2 + SORT + SORT + decimal + + + 3 + CRIT_COUNT + CRIT_COUNT + decimal + + + 4 + HIGH_COUNT + HIGH_COUNT + decimal + + + 5 + MED_COUNT + MED_COUNT + decimal + + + 6 + LOW_COUNT + LOW_COUNT + decimal + + + 7 + GA_ROUP + GA_ROUP + string + + + 'REMOVED' +AND i.projectVersion_id = ? +group by cpec.name ) U on U.GA_ROUP = T.G_ROUP ) order by SORT +]]> + + + 2.0 + + + + + + + STARTDATE + 1 + + -5 + 19 + 0 + Nullable + + STARTDATE + + + + STARTDATE + + 20 + + + + + + +]]> + + + + + G_ROUP + G_ROUP + + + SORT + SORT + + + CRIT_COUNT + CRIT_COUNT + + + HIGH_COUNT + HIGH_COUNT + + + MED_COUNT + MED_COUNT + + + LOW_COUNT + LOW_COUNT + + + GA_ROUP + GA_ROUP + + + + + param_1 + projectversionid + + decimal + 4 + 1 + true + true + true + false + + + + + + 1 + G_ROUP + string + + + 2 + SORT + integer + + + 3 + CRIT_COUNT + integer + + + 4 + HIGH_COUNT + integer + + + 5 + MED_COUNT + integer + + + 6 + LOW_COUNT + integer + + + 7 + GA_ROUP + string + + + + FEM360DB + + + 1 + G_ROUP + G_ROUP + string + 12 + + + 2 + SORT + SORT + integer + 4 + + + 3 + CRIT_COUNT + CRIT_COUNT + integer + 4 + + + 4 + HIGH_COUNT + HIGH_COUNT + integer + 4 + + + 5 + MED_COUNT + MED_COUNT + integer + 4 + + + 6 + LOW_COUNT + LOW_COUNT + integer + 4 + + + 7 + GA_ROUP + GA_ROUP + string + 12 + + + 'REMOVED' +AND i.projectVersion_id = ? +group by cpec.name +) U on U.GA_ROUP = T.G_ROUP ) order by SORT +]]> + + + 1.0 + + + In + + + 1 + 4 + 10 + 0 + Nullable + + + + true + + + + + + + + + + STARTDATE + 1 + -5 + 19 + 0 + Nullable + + STARTDATE + + + + STARTDATE + + 20 + + + + + + +]]> + + + + + G_ROUP + G_ROUP + + + SORT + SORT + + + CRIT_COUNT + CRIT_COUNT + + + HIGH_COUNT + HIGH_COUNT + + + MED_COUNT + MED_COUNT + + + LOW_COUNT + LOW_COUNT + + + GA_ROUP + GA_ROUP + + + + + param_1 + projectversionid + + decimal + 4 + 1 + true + true + true + false + + + + + + 1 + G_ROUP + string + + + 2 + SORT + integer + + + 3 + CRIT_COUNT + integer + + + 4 + HIGH_COUNT + integer + + + 5 + MED_COUNT + integer + + + 6 + LOW_COUNT + integer + + + 7 + GA_ROUP + string + + + + FEM360DB + + + 1 + G_ROUP + G_ROUP + string + 12 + + + 2 + SORT + SORT + integer + 4 + + + 3 + CRIT_COUNT + CRIT_COUNT + integer + 4 + + + 4 + HIGH_COUNT + HIGH_COUNT + integer + 4 + + + 5 + MED_COUNT + MED_COUNT + integer + 4 + + + 6 + LOW_COUNT + LOW_COUNT + integer + 4 + + + 7 + GA_ROUP + GA_ROUP + string + 12 + + + 'REMOVED' +AND i.projectVersion_id = ? +group by cpec.name +) U on U.GA_ROUP = T.G_ROUP ) order by SORT +]]> + + + 1.0 + + + In + + + 1 + 4 + 10 + 0 + Nullable + + + + true + + + + + + + + + + STARTDATE + 1 + -5 + 19 + 0 + Nullable + + STARTDATE + + + + STARTDATE + + 20 + + + + + + +]]> + + + + + + param_1 + projectversionid + + decimal + -1 + 1 + true + false + + + + + + 1 + CRIT_COUNT + decimal + + + 2 + HIGH_COUNT + decimal + + + 3 + MED_COUNT + decimal + + + 4 + LOW_COUNT + decimal + + + 5 + G_ROUP + string + + + + FEM360DB + + + 1 + CRIT_COUNT + CRIT_COUNT + decimal + + + 2 + HIGH_COUNT + HIGH_COUNT + decimal + + + 3 + MED_COUNT + MED_COUNT + decimal + + + 4 + LOW_COUNT + LOW_COUNT + decimal + + + 5 + G_ROUP + G_ROUP + string + + + 'REMOVED' +AND i.projectVersion_id = ? +group by cpec.name ) order by G_ROUP]]> + + + 2.0 + + + + + + + STARTDATE + 1 + + -5 + 19 + 0 + Nullable + + STARTDATE + + + + STARTDATE + + 20 + + + + + + +]]> + + + + + CRIT_COUNT + CRIT_COUNT + + + HIGH_COUNT + HIGH_COUNT + + + MED_COUNT + MED_COUNT + + + LOW_COUNT + LOW_COUNT + + + G_ROUP + G_ROUP + + + + + param_1 + projectversionid + decimal + 1 + true + false + + + + + + 1 + CRIT_COUNT + integer + + + 2 + HIGH_COUNT + integer + + + 3 + MED_COUNT + integer + + + 4 + LOW_COUNT + integer + + + 5 + G_ROUP + string + + + + FEM360DB + + + 1 + CRIT_COUNT + CRIT_COUNT + integer + 4 + + + 2 + HIGH_COUNT + HIGH_COUNT + integer + 4 + + + 3 + MED_COUNT + MED_COUNT + integer + 4 + + + 4 + LOW_COUNT + LOW_COUNT + integer + 4 + + + 5 + G_ROUP + G_ROUP + string + 12 + + + 'REMOVED' +AND i.projectVersion_id = ? +group by cpec.name ) order by G_ROUP]]> + + + 1.0 + + + + + + STARTDATE + 1 + -5 + 19 + 0 + Nullable + + STARTDATE + + + + STARTDATE + + 20 + + + + + + +]]> + + + + + CRIT_COUNT + measure + CRIT_COUNT + + + HIGH_COUNT + measure + HIGH_COUNT + + + MED_COUNT + measure + MED_COUNT + + + LOW_COUNT + measure + LOW_COUNT + + + G_ROUP + dimension + G_ROUP + + + + + param_1 + projectversionid + decimal + 1 + true + false + + + + + + 1 + CRIT_COUNT + integer + + + 2 + HIGH_COUNT + integer + + + 3 + MED_COUNT + integer + + + 4 + LOW_COUNT + integer + + + 5 + G_ROUP + string + + + + FEM360DB + + + 1 + CRIT_COUNT + CRIT_COUNT + integer + 4 + + + 2 + HIGH_COUNT + HIGH_COUNT + integer + 4 + + + 3 + MED_COUNT + MED_COUNT + integer + 4 + + + 4 + LOW_COUNT + LOW_COUNT + integer + 4 + + + 5 + G_ROUP + G_ROUP + string + 12 + + + 'REMOVED' +AND i.projectVersion_id = ? +group by cpec.name ) order by G_ROUP]]> + + + 1.0 + + + + + + STARTDATE + 1 + -5 + 19 + 0 + Nullable + + STARTDATE + + + + STARTDATE + + 20 + + + + + + +]]> + + + + + CRIT_COUNT + CRIT_COUNT + + + HIGH_COUNT + HIGH_COUNT + + + MED_COUNT + MED_COUNT + + + LOW_COUNT + LOW_COUNT + + + G_ROUP + G_ROUP + + + + + param_1 + projectversionid + + decimal + 4 + 1 + true + true + true + false + + + + + + 1 + CRIT_COUNT + integer + + + 2 + HIGH_COUNT + integer + + + 3 + MED_COUNT + integer + + + 4 + LOW_COUNT + integer + + + 5 + G_ROUP + string + + + + FEM360DB + + + 1 + CRIT_COUNT + CRIT_COUNT + integer + 4 + + + 2 + HIGH_COUNT + HIGH_COUNT + integer + 4 + + + 3 + MED_COUNT + MED_COUNT + integer + 4 + + + 4 + LOW_COUNT + LOW_COUNT + integer + 4 + + + 5 + G_ROUP + G_ROUP + string + 12 + + + 'REMOVED' +AND i.projectVersion_id = ? +group by cpec.name ) order by G_ROUP]]> + + + 1.0 + + + In + + + 1 + 4 + 10 + 0 + Nullable + + + + true + + + + + + + + + + STARTDATE + 1 + -5 + 19 + 0 + Nullable + + STARTDATE + + + + STARTDATE + + 20 + + + + + + +]]> + + + + + + param_1 + projectversionid + + decimal + -1 + 1 + true + false + + + + + + 1 + CRIT_COUNT + decimal + + + 2 + HIGH_COUNT + decimal + + + 3 + MED_COUNT + decimal + + + 4 + LOW_COUNT + decimal + + + 5 + G_ROUP + string + + + + FEM360DB + + + 1 + CRIT_COUNT + CRIT_COUNT + decimal + + + 2 + HIGH_COUNT + HIGH_COUNT + decimal + + + 3 + MED_COUNT + MED_COUNT + decimal + + + 4 + LOW_COUNT + LOW_COUNT + decimal + + + 5 + G_ROUP + G_ROUP + string + + + 'REMOVED' +AND i.projectVersion_id = ? +group by cpec.name) order by G_ROUP]]> + + + 2.0 + + + + + + + STARTDATE + 1 + + -5 + 19 + 0 + Nullable + + STARTDATE + + + + STARTDATE + + 20 + + + + + + +]]> + + + + + CRIT_COUNT + CRIT_COUNT + + + HIGH_COUNT + HIGH_COUNT + + + MED_COUNT + MED_COUNT + + + LOW_COUNT + LOW_COUNT + + + G_ROUP + G_ROUP + + + + + param_1 + projectversionid + decimal + 1 + true + false + + + + + + 1 + CRIT_COUNT + integer + + + 2 + HIGH_COUNT + integer + + + 3 + MED_COUNT + integer + + + 4 + LOW_COUNT + integer + + + 5 + G_ROUP + string + + + + FEM360DB + + + 1 + CRIT_COUNT + CRIT_COUNT + integer + 4 + + + 2 + HIGH_COUNT + HIGH_COUNT + integer + 4 + + + 3 + MED_COUNT + MED_COUNT + integer + 4 + + + 4 + LOW_COUNT + LOW_COUNT + integer + 4 + + + 5 + G_ROUP + G_ROUP + string + 12 + + + 'REMOVED' +AND i.projectVersion_id = ? +group by cpec.name) order by G_ROUP]]> + + + 1.0 + + + + + + STARTDATE + 1 + -5 + 19 + 0 + Nullable + + STARTDATE + + + + STARTDATE + + 20 + + + + + + +]]> + + + + + + param_1 + projectversionid + + decimal + -1 + 1 + true + false + + + + + + 1 + CRIT_COUNT + decimal + + + 2 + HIGH_COUNT + decimal + + + 3 + MED_COUNT + decimal + + + 4 + LOW_COUNT + decimal + + + 5 + G_ROUP + string + + + + FEM360DB + + + 1 + CRIT_COUNT + CRIT_COUNT + decimal + + + 2 + HIGH_COUNT + HIGH_COUNT + decimal + + + 3 + MED_COUNT + MED_COUNT + decimal + + + 4 + LOW_COUNT + LOW_COUNT + decimal + + + 5 + G_ROUP + G_ROUP + string + + + 'REMOVED' +AND i.projectVersion_id = ? +group by cpec.name) order by G_ROUP]]> + + + 2.0 + + + + + + + STARTDATE + 1 + + -5 + 19 + 0 + Nullable + + STARTDATE + + + + STARTDATE + + 20 + + + + + + +]]> + + + + + + param_1 + projectversionid + + decimal + -1 + 1 + true + false + + + + + + 1 + CRIT_COUNT + decimal + + + 2 + HIGH_COUNT + decimal + + + 3 + MED_COUNT + decimal + + + 4 + LOW_COUNT + decimal + + + 5 + G_ROUP + string + + + + FEM360DB + + + 1 + CRIT_COUNT + CRIT_COUNT + decimal + + + 2 + HIGH_COUNT + HIGH_COUNT + decimal + + + 3 + MED_COUNT + MED_COUNT + decimal + + + 4 + LOW_COUNT + LOW_COUNT + decimal + + + 5 + G_ROUP + G_ROUP + string + + + 'REMOVED' +AND i.projectVersion_id = ? +group by cpec.name) order by G_ROUP]]> + + + 2.0 + + + + + + + STARTDATE + 1 + + -5 + 19 + 0 + Nullable + + STARTDATE + + + + STARTDATE + + 20 + + + + + + +]]> + + + + + CRIT_COUNT + CRIT_COUNT + + + HIGH_COUNT + HIGH_COUNT + + + MED_COUNT + MED_COUNT + + + LOW_COUNT + LOW_COUNT + + + G_ROUP + G_ROUP + + + + + param_1 + projectversionid + decimal + 1 + true + false + + + + + + 1 + CRIT_COUNT + integer + + + 2 + HIGH_COUNT + integer + + + 3 + MED_COUNT + integer + + + 4 + LOW_COUNT + integer + + + 5 + G_ROUP + string + + + + FEM360DB + + + 1 + CRIT_COUNT + CRIT_COUNT + integer + 4 + + + 2 + HIGH_COUNT + HIGH_COUNT + integer + 4 + + + 3 + MED_COUNT + MED_COUNT + integer + 4 + + + 4 + LOW_COUNT + LOW_COUNT + integer + 4 + + + 5 + G_ROUP + G_ROUP + string + 12 + + + 'REMOVED' +AND i.projectVersion_id = ? +group by cpec.name ) order by G_ROUP]]> + + + 1.0 + + + + + + STARTDATE + 1 + -5 + 19 + 0 + Nullable + + STARTDATE + + + + STARTDATE + + 20 + + + + + + +]]> + + + + + TOTAL_ISSUES + TOTAL_ISSUES + + + + + param_1_1 + projectversionid + decimal + 1 + true + false + + + + + + 1 + TOTAL_ISSUES + integer + + + + FEM360DB + + + 1 + TOTAL_ISSUES + TOTAL_ISSUES + integer + 4 + + + 'REMOVED' +AND i.projectVersion_id = ? +AND (i.taintFlag is null or not (i.taintFlag like '%DATABASE%' OR i.taintFlag like '%NETWORK%' OR i.taintFlag like '%WEB%' OR i.taintFlag like '%FORM%' OR i.taintFlag like '%WEBSERVICE%')) )]]> + + + + + param_1 + projectversionid + + decimal + 4 + 1 + true + true + true + false + + + + + + 1 + GUID + string + + + 2 + METATYPE + string + + + 3 + METANAME + string + + + 4 + TEXTVALUE + string + + + 5 + OPTIONNAME + string + + + 6 + BOOLEANVALUE + string + + + 7 + INTEGERVALUE + decimal + + + 8 + DATEVALUE + date + + + + FEM360DB + + + 1 + GUID + GUID + string + + + 2 + METATYPE + METATYPE + string + + + 3 + METANAME + METANAME + string + + + 4 + TEXTVALUE + TEXTVALUE + string + + + 5 + OPTIONNAME + OPTIONNAME + string + + + 6 + BOOLEANVALUE + BOOLEANVALUE + string + + + 7 + INTEGERVALUE + INTEGERVALUE + decimal + + + 8 + DATEVALUE + DATEVALUE + date + + + 'DYNAMIC_SCAN_REQUEST']]> + + + + + 2.0 + + + + + + + + In + + + + + + + + 1 + + + + 4 + + 10 + + 0 + + Nullable + + + + + + + + true + + + + + + + + + + + +]]> + + + + + TEMPLATENAME + TEMPLATENAME + + + ID + ID + + + PROJECTNAME + PROJECTNAME + + + VERSIONNAME + VERSIONNAME + + + CREATIONDATE + CREATIONDATE + + + + + param_1 + projectversionid + + decimal + 4 + 1 + true + true + true + false + + + + + + 1 + TEMPLATENAME + string + + + 2 + ID + integer + + + 3 + PROJECTNAME + string + + + 4 + VERSIONNAME + string + + + 5 + CREATIONDATE + date-time + + + + FEM360DB + + + 1 + TEMPLATENAME + TEMPLATENAME + string + 12 + + + 2 + ID + ID + decimal + 4 + + + 3 + PROJECTNAME + PROJECTNAME + string + 12 + + + 4 + VERSIONNAME + VERSIONNAME + string + 12 + + + 5 + CREATIONDATE + CREATIONDATE + date-time + 93 + + + + + + 1.0 + + + In + + + 1 + 4 + 10 + 0 + Nullable + + + + true + + + + +]]> + + + + + TOTAL_ISSUES + TOTAL_ISSUES + + + + + param_1 + projectversionid + + decimal + 4 + 1 + true + true + true + false + + + param_2 + + string + 12 + 2 + '%ARGS%' + true + true + true + false + + + + + + 1 + TOTAL_ISSUES + integer + + + + FEM360DB + + + 1 + TOTAL_ISSUES + TOTAL_ISSUES + integer + 4 + + + 'REMOVED' +AND i.projectVersion_id = ? +AND i.taintFlag is not null +AND i.taintFlag like ? )]]> + + + 1.0 + + + In + + + 1 + 4 + 10 + 0 + Nullable + + + + true + + + + + In + + + 2 + 12 + 255 + 0 + Nullable + + + + true + + + + +]]> + + + + + TOTAL_ISSUES + TOTAL_ISSUES + + + + + projVers + projectversionid + decimal + 1 + true + false + + + taintflag1 + string + 2 + '%ARGS%' + true + false + + + taintflag2 + string + 3 + '%ARGS%' + true + false + + + + + + 1 + TOTAL_ISSUES + integer + + + + FEM360DB + + + 1 + TOTAL_ISSUES + TOTAL_ISSUES + integer + 4 + + + 'REMOVED' +AND i.projectVersion_id = ? +AND i.taintFlag is not null +AND ( i.taintFlag like ? + OR i.taintFlag like ? ) +AND NOT ( i.taintFlag like '%WEBSERVICE%') )]]> + + + + + TOTALISSUES + TOTALISSUES + + + + + param_1 + projectversionid + + decimal + 4 + 1 + true + true + true + false + + + + + + 1 + TOTALISSUES + integer + + + + FEM360DB + + + 1 + TOTALISSUES + TOTALISSUES + integer + 4 + + + 'REMOVED' +AND i.projectVersion_id = ? )]]> + + + 1.0 + + + In + + + 1 + 4 + 10 + 0 + Nullable + + + + true + + + + +]]> + + + + + NAME + NAME + + + GUID + GUID + + + + + param_1 + projectversionid + + decimal + 4 + 1 + true + true + true + false + + + + + + 1 + NAME + string + + + 2 + GUID + string + + + + FEM360DB + + + 1 + NAME + NAME + string + 12 + + + 2 + GUID + GUID + string + 12 + + + + + + 1.0 + + + In + + + 1 + 4 + 10 + 0 + Nullable + + + + true + + + + + + + + + + ID + 1 + 4 + 10 + 0 + NotNullable + + ID + + + + ID + + 11 + + + + + + GUID + 2 + 12 + 255 + 0 + NotNullable + + GUID + + + + GUID + + 255 + + + + + + ATTRNAME + 3 + 12 + 80 + 0 + NotNullable + + ATTRNAME + + + + ATTRNAME + + 80 + + + + + + ATTRTYPE + 4 + 12 + 20 + 0 + NotNullable + + ATTRTYPE + + + + ATTRTYPE + + 20 + + + + + + DESCRIPTION + 5 + 12 + 2000 + 0 + Nullable + + DESCRIPTION + + + + DESCRIPTION + + 2000 + + + + + + EXTENSIBLE + 6 + 12 + 1 + 0 + Nullable + + EXTENSIBLE + + + + EXTENSIBLE + + 1 + + + + + + MASTERATTR + 7 + 12 + 1 + 0 + Nullable + + MASTERATTR + + + + MASTERATTR + + 1 + + + + + + DEFAULTVALUE + 8 + 4 + 10 + 0 + Nullable + + DEFAULTVALUE + + + + DEFAULTVALUE + + 11 + + + + + + OBJECTVERSION + 9 + 4 + 10 + 0 + Nullable + + OBJECTVERSION + + + + OBJECTVERSION + + 11 + + + + + + HIDDEN + 10 + 12 + 1 + 0 + Nullable + + HIDDEN + + + + HIDDEN + + 1 + + + + + + +]]> + + + + + CRIT_COUNT + CRIT_COUNT + + + HIGH_COUNT + HIGH_COUNT + + + MED_COUNT + MED_COUNT + + + LOW_COUNT + LOW_COUNT + + + G_ROUP + G_ROUP + + + LINDEX + LINDEX + + + + + param_1 + projectversionid + + decimal + 4 + 1 + true + true + false + + + param_2 + + string + 12 + 2 + '87f2364f-dcd4-49e6-861d-f8d3f351686b' + true + true + false + + + param_3 + projectversionid + + decimal + 4 + 3 + true + true + false + + + param_4 + projectversionid + + decimal + 4 + 4 + true + true + false + + + param_5 + + string + 12 + 5 + '87f2364f-dcd4-49e6-861d-f8d3f351686b' + true + true + false + + + + + + 1 + CRIT_COUNT + integer + + + 2 + HIGH_COUNT + integer + + + 3 + MED_COUNT + integer + + + 4 + LOW_COUNT + integer + + + 5 + G_ROUP + string + + + 6 + LINDEX + integer + + + + FEM360DB + + + 1 + CRIT_COUNT + CRIT_COUNT + integer + 4 + + + 2 + HIGH_COUNT + HIGH_COUNT + integer + 4 + + + 3 + MED_COUNT + MED_COUNT + integer + 4 + + + 4 + LOW_COUNT + LOW_COUNT + integer + 4 + + + 5 + G_ROUP + G_ROUP + string + 12 + + + 6 + LINDEX + LINDEX + integer + 4 + + + 'REMOVED' + +group by av.lookupValue, av.lookupIndex +) +UNION +( + +select + +sum( case when i2.friority = 'Critical' then 1 else 0 end ) as CRIT_COUNT, +sum( case when i2.friority = 'High' then 1 else 0 end ) as HIGH_COUNT, + +sum( case when i2.friority = 'Medium' then 1 else 0 end ) as MED_COUNT, + +sum( case when i2.friority = 'Low' then 1 else 0 end ) as LOW_COUNT, + +'' as G_ROUP, +-100 as LINDEX +from baseissueview i2 +where i2.projectVersion_id = ? and i2.suppressed = 'N' and i2.hidden= 'N' and i2.scanStatus <> 'REMOVED' +AND i2.id NOT IN (select distinct issue_id from auditvalueview where projectVersion_id = ? +AND attrGuid = ?) ) +order by LINDEX DESC + ]]> + + + 1.0 + + + In + + + 1 + 4 + 10 + 0 + Nullable + + + + true + + + + + In + + + 2 + 12 + 80 + 0 + Nullable + + + + true + + + + + In + + + 3 + 4 + 10 + 0 + Nullable + + + + true + + + + + In + + + 4 + 4 + 10 + 0 + Nullable + + + + true + + + + + In + + + 5 + 12 + 80 + 0 + Nullable + + + + true + + + + + + + + + + STARTDATE + 1 + -5 + 19 + 0 + Nullable + + STARTDATE + + + + STARTDATE + + 20 + + + + + + +]]> + + + + + AUD_CRIT_COUNT + AUD_CRIT_COUNT + + + CRIT_COUNT + CRIT_COUNT + + + AUD_HIGH_COUNT + AUD_HIGH_COUNT + + + HIGH_COUNT + HIGH_COUNT + + + AUD_MED_COUNT + AUD_MED_COUNT + + + MED_COUNT + MED_COUNT + + + AUD_LOW_COUNT + AUD_LOW_COUNT + + + LOW_COUNT + LOW_COUNT + + + G_ROUP + G_ROUP + + + + + param_1 + projectversionid + + decimal + 4 + 1 + true + true + true + false + + + + + + 1 + AUD_CRIT_COUNT + integer + + + 2 + CRIT_COUNT + integer + + + 3 + AUD_HIGH_COUNT + integer + + + 4 + HIGH_COUNT + integer + + + 5 + AUD_MED_COUNT + integer + + + 6 + MED_COUNT + integer + + + 7 + AUD_LOW_COUNT + integer + + + 8 + LOW_COUNT + integer + + + 9 + G_ROUP + string + + + + FEM360DB + + + 1 + AUD_CRIT_COUNT + AUD_CRIT_COUNT + integer + 4 + + + 2 + CRIT_COUNT + CRIT_COUNT + integer + 4 + + + 3 + AUD_HIGH_COUNT + AUD_HIGH_COUNT + integer + 4 + + + 4 + HIGH_COUNT + HIGH_COUNT + integer + 4 + + + 5 + AUD_MED_COUNT + AUD_MED_COUNT + integer + 4 + + + 6 + MED_COUNT + MED_COUNT + integer + 4 + + + 7 + AUD_LOW_COUNT + AUD_LOW_COUNT + integer + 4 + + + 8 + LOW_COUNT + LOW_COUNT + integer + 4 + + + 9 + G_ROUP + G_ROUP + string + 12 + + + 'REMOVED' +AND i.projectVersion_id = ? +group by i.category +) order by G_ROUP]]> + + + 1.0 + + + In + + + 1 + 4 + 10 + 0 + Nullable + + + + true + + + + + + + + + + STARTDATE + 1 + -5 + 19 + 0 + Nullable + + STARTDATE + + + + STARTDATE + + 20 + + + + + + +]]> + + + + + COUNTS + COUNTS + + + ENGINE + ENGINE + + + + + param_1 + projectversionid + + decimal + 4 + 1 + true + true + true + false + + + + + + 1 + COUNTS + integer + + + 2 + ENGINE + string + + + + FEM360DB + + + 1 + COUNTS + COUNTS + integer + 4 + + + 2 + ENGINE + ENGINE + string + 12 + + + + + + 1.0 + + + In + + + 1 + 4 + 10 + 0 + Nullable + + + + true + + + + + + + + + + COUNTS + 1 + 4 + 10 + 0 + NotNullable + + COUNTS + + + + COUNTS + + 11 + + + + + + ENGINE + 2 + 12 + 20 + 0 + NotNullable + + ENGINE + + + + ENGINE + + 20 + + + + + + +]]> + + + + + ID + ID + + + CERTIFICATION + CERTIFICATION + + + SCABUILDID + SCABUILDID + + + HOSTNAME + HOSTNAME + + + STARTDATE + STARTDATE + + + SCAFILES + SCAFILES + + + SCALOC + SCALOC + + + ENGINETYPE + ENGINETYPE + + + ENGINEVERSION + ENGINEVERSION + + + + + param_1 + projectversionid + + decimal + 4 + 1 + true + true + false + + + param_2 + projectversionid + + decimal + 4 + 2 + true + true + false + + + + + + 1 + ID + integer + + + 2 + CERTIFICATION + string + + + 3 + SCABUILDID + string + + + 4 + HOSTNAME + string + + + 5 + STARTDATE + decimal + + + 6 + SCAFILES + integer + + + 7 + SCALOC + integer + + + 8 + ENGINETYPE + string + + + 9 + ENGINEVERSION + string + + + + FEM360DB + + + 1 + ID + ID + decimal + 4 + + + 2 + CERTIFICATION + CERTIFICATION + string + 12 + + + 3 + SCABUILDID + SCABUILDID + string + 12 + + + 4 + HOSTNAME + HOSTNAME + string + 12 + + + 5 + STARTDATE + STARTDATE + decimal + -5 + + + 6 + SCAFILES + SCAFILES + integer + 4 + + + 7 + SCALOC + SCALOC + integer + 4 + + + 8 + ENGINETYPE + ENGINETYPE + string + 12 + + + 9 + ENGINEVERSION + ENGINEVERSION + string + 12 + + + + + + 1.0 + + + In + + + 1 + 4 + 10 + 0 + Nullable + + + + true + + + + + In + + + 2 + 4 + 10 + 0 + Nullable + + + + true + + + + +]]> + + + + + Fmat + if (BirtDateTime.month(row["EVENTDATE"]) < 10) + "0" + (BirtDateTime.month(row["EVENTDATE"])) +"/" +BirtDateTime.year(row["EVENTDATE"]); +else + (BirtDateTime.month(row["EVENTDATE"])) +"/" +BirtDateTime.year(row["EVENTDATE"]); + string + + + + + param_1 + projectversionid + + decimal + 4 + 1 + true + true + true + false + + + + + + 1 + EVENTDATE + date-time + + + 2 + Fmat + string + + + + FEM360DB + + + 1 + EVENTDATE + EVENTDATE + date-time + + + + + + 1.0 + + + In + + + 1 + 4 + 10 + 0 + Nullable + + + + true + + + + +]]> + + + + + USERNAME + USERNAME + + + EMAIL + EMAIL + + + + + param_1 + projectversionid + + decimal + 4 + 1 + true + true + true + false + + + + + + 1 + USERNAME + string + + + 2 + EMAIL + string + + + + FEM360DB + + + 1 + USERNAME + USERNAME + string + 12 + + + 2 + EMAIL + EMAIL + string + 12 + + + 'System' +group by ele.userName, up.email +) +]]> + + + 1.0 + + + In + + + 1 + 4 + 10 + 0 + Nullable + + + + true + + + + + + + + + + USERNAME + 1 + 12 + 255 + 0 + Nullable + + USERNAME + + + + USERNAME + + 255 + + + + + + +]]> + + + + + ISSUEINSTANCEID + ISSUEINSTANCEID + + + FILENAME + FILENAME + + + LINENUMBER + LINENUMBER + + + CATEGORY + CATEGORY + + + PACKAGENAME + PACKAGENAME + + + METHOD + METHOD + + + SOURCE + SOURCE + + + SINK + SINK + + + FRIORITY + FRIORITY + + + ISSUE_ID + ISSUE_ID + + + SOURCEFILE + SOURCEFILE + + + USERNAME + USERNAME + + + ACOMMENT + ACOMMENT + + + AUDITTIME + AUDITTIME + + + ATTRNAME + ATTRNAME + + + ATTRVALUE + ATTRVALUE + + + ENGINETYPE + ENGINETYPE + + + ENGINEPRIORITY + ENGINEPRIORITY + + + + + param_1 + projectversionid + + decimal + 4 + 1 + true + true + true + false + + + + + + 1 + ISSUEINSTANCEID + string + + + 2 + FILENAME + string + + + 3 + LINENUMBER + integer + + + 4 + CATEGORY + string + + + 5 + PACKAGENAME + string + + + 6 + METHOD + string + + + 7 + SOURCE + string + + + 8 + SINK + string + + + 9 + FRIORITY + string + + + 10 + ISSUE_ID + integer + + + 11 + SOURCEFILE + string + + + 12 + USERNAME + string + + + 13 + ACOMMENT + string + + + 14 + AUDITTIME + decimal + + + 15 + ATTRNAME + string + + + 16 + ATTRVALUE + string + + + 17 + ENGINETYPE + string + + + 18 + ENGINEPRIORITY + string + + + + FEM360DB + + + 1 + ISSUEINSTANCEID + ISSUEINSTANCEID + string + 12 + + + 2 + FILENAME + FILENAME + string + 12 + + + 3 + LINENUMBER + LINENUMBER + integer + 4 + + + 4 + CATEGORY + CATEGORY + string + 12 + + + 5 + PACKAGENAME + PACKAGENAME + string + 12 + + + 6 + METHOD + METHOD + string + 12 + + + 7 + SOURCE + SOURCE + string + 12 + + + 8 + SINK + SINK + string + 12 + + + 9 + FRIORITY + FRIORITY + string + 12 + + + 10 + ISSUE_ID + ISSUE_ID + decimal + 4 + + + 11 + SOURCEFILE + SOURCEFILE + string + 12 + + + 12 + USERNAME + USERNAME + string + 12 + + + 13 + ACOMMENT + ACOMMENT + string + 12 + + + 14 + AUDITTIME + AUDITTIME + decimal + -5 + + + 15 + ATTRNAME + ATTRNAME + string + 12 + + + 16 + ATTRVALUE + ATTRVALUE + string + 12 + + + 17 + ENGINETYPE + ENGINETYPE + string + 12 + + + 18 + ENGINEPRIORITY + ENGINEPRIORITY + string + 12 + + + 'REMOVED' +AND i.audited = 'Y' +and av.attrGuid not like '1111%' +)]]> + + + 1.0 + + + In + + + 1 + 4 + 10 + 0 + Nullable + + + + true + + + + +]]> + + + + + CRIT_COUNT + CRIT_COUNT + + + HIGH_COUNT + HIGH_COUNT + + + MED_COUNT + MED_COUNT + + + LOW_COUNT + LOW_COUNT + + + G_ROUP + G_ROUP + + + + + param_1 + projectversionid + + decimal + 4 + 1 + true + true + true + false + + + + + + 1 + CRIT_COUNT + integer + + + 2 + HIGH_COUNT + integer + + + 3 + MED_COUNT + integer + + + 4 + LOW_COUNT + integer + + + 5 + G_ROUP + string + + + + FEM360DB + + + 1 + CRIT_COUNT + CRIT_COUNT + integer + 4 + + + 2 + HIGH_COUNT + HIGH_COUNT + integer + 4 + + + 3 + MED_COUNT + MED_COUNT + integer + 4 + + + 4 + LOW_COUNT + LOW_COUNT + integer + 4 + + + 5 + G_ROUP + G_ROUP + string + 12 + + + + + + 1.0 + + + In + + + 1 + 4 + 10 + 0 + Nullable + + + + true + + + + + + + + + + STARTDATE + 1 + -5 + 19 + 0 + Nullable + + STARTDATE + + + + STARTDATE + + 20 + + + + + + +]]> + + + + + CRIT_COUNT + CRIT_COUNT + + + HIGH_COUNT + HIGH_COUNT + + + MED_COUNT + MED_COUNT + + + LOW_COUNT + LOW_COUNT + + + G_ROUP + G_ROUP + + + + + param_1 + projectversionid + + decimal + 4 + 1 + true + true + true + false + + + + + + 1 + CRIT_COUNT + integer + + + 2 + HIGH_COUNT + integer + + + 3 + MED_COUNT + integer + + + 4 + LOW_COUNT + integer + + + 5 + G_ROUP + string + + + + FEM360DB + + + 1 + CRIT_COUNT + CRIT_COUNT + integer + 4 + + + 2 + HIGH_COUNT + HIGH_COUNT + integer + 4 + + + 3 + MED_COUNT + MED_COUNT + integer + 4 + + + 4 + LOW_COUNT + LOW_COUNT + integer + 4 + + + 5 + G_ROUP + G_ROUP + string + 12 + + + 'REMOVED' +AND i.projectVersion_id = ? +group by i.category ) ]]> + + + 1.0 + + + In + + + 1 + 4 + 10 + 0 + Nullable + + + + true + + + + + + + + + + STARTDATE + 1 + -5 + 19 + 0 + Nullable + + STARTDATE + + + + STARTDATE + + 20 + + + + + + +]]> + + + + + ISSUEINSTANCEID + ISSUEINSTANCEID + + + FILENAME + FILENAME + + + LINENUMBER + LINENUMBER + + + CATEGORY + CATEGORY + + + PACKAGENAME + PACKAGENAME + + + METHOD + METHOD + + + SOURCE + SOURCE + + + SINK + SINK + + + FRIORITY + FRIORITY + + + ISSUE_ID + ISSUE_ID + + + SOURCEFILE + SOURCEFILE + + + USERNAME + USERNAME + + + ACOMMENT + ACOMMENT + + + AUDITTIME + AUDITTIME + + + ATTRNAME + ATTRNAME + + + ATTRVALUE + ATTRVALUE + + + ENGINETYPE + ENGINETYPE + + + ENGINEPRIORITY + ENGINEPRIORITY + + + + + param_1 + projectversionid + + decimal + 4 + 1 + true + true + true + false + + + + + + 1 + ISSUEINSTANCEID + string + + + 2 + FILENAME + string + + + 3 + LINENUMBER + integer + + + 4 + CATEGORY + string + + + 5 + PACKAGENAME + string + + + 6 + METHOD + string + + + 7 + SOURCE + string + + + 8 + SINK + string + + + 9 + FRIORITY + string + + + 10 + ISSUE_ID + integer + + + 11 + SOURCEFILE + string + + + 12 + USERNAME + string + + + 13 + ACOMMENT + string + + + 14 + AUDITTIME + decimal + + + 15 + ATTRNAME + string + + + 16 + ATTRVALUE + string + + + 17 + ENGINETYPE + string + + + 18 + ENGINEPRIORITY + string + + + + FEM360DB + + + 1 + ISSUEINSTANCEID + ISSUEINSTANCEID + string + 12 + + + 2 + FILENAME + FILENAME + string + 12 + + + 3 + LINENUMBER + LINENUMBER + integer + 4 + + + 4 + CATEGORY + CATEGORY + string + 12 + + + 5 + PACKAGENAME + PACKAGENAME + string + 12 + + + 6 + METHOD + METHOD + string + 12 + + + 7 + SOURCE + SOURCE + string + 12 + + + 8 + SINK + SINK + string + 12 + + + 9 + FRIORITY + FRIORITY + string + 12 + + + 10 + ISSUE_ID + ISSUE_ID + decimal + 4 + + + 11 + SOURCEFILE + SOURCEFILE + string + 12 + + + 12 + USERNAME + USERNAME + string + 12 + + + 13 + ACOMMENT + ACOMMENT + string + 12 + + + 14 + AUDITTIME + AUDITTIME + decimal + -5 + + + 15 + ATTRNAME + ATTRNAME + string + 12 + + + 16 + ATTRVALUE + ATTRVALUE + string + 12 + + + 17 + ENGINETYPE + ENGINETYPE + string + 12 + + + 18 + ENGINEPRIORITY + ENGINEPRIORITY + string + 12 + + + + + + 1.0 + + + In + + + 1 + 4 + 10 + 0 + Nullable + + + + true + + + + +]]> + + + + + param_1 + projectversionid + decimal + 1 + true + false + + + param_2 + projectversionid + decimal + 2 + true + false + + + + + + 1 + CATEGORY + string + + + 2 + DETAIL + string + + + 3 + RECOMMENDATION + string + + + 4 + TIPS + string + + + 5 + REFERS + string + + + 6 + CUSTOMDESC + integer + + + + FEM360DB + + + 1 + CATEGORY + CATEGORY + string + + + 2 + DETAIL + DETAIL + string + + + 3 + RECOMMENDATION + RECOMMENDATION + string + + + 4 + TIPS + TIPS + string + + + 5 + REFERS + REFERS + string + + + 6 + CUSTOMDESC + CUSTOMDESC + integer + + + rv.ruleGuid THEN 1 ELSE 0 END) AS CUSTOMDESC +from +ruleview rv +inner join +(select i.category as CATEGORY, max(rd.guid) AS GUID +from ruledescription rd +inner join baseissueview i on i.ruleGuid = rd.guid +where +i.projectVersion_id = ? +AND i.hidden='N' +AND i.suppressed='N' +AND i.scanStatus <> 'REMOVED' +group by i.category) S +on S.GUID = rv.ruleGuid +where rv.projectVersion_id = ? +order by CATEGORY]]> + + + + + COUNTS + COUNTS + + + + + param_1 + projectversionid + + decimal + 4 + 1 + true + true + true + false + + + + + + 1 + COUNTS + integer + + + + FEM360DB + + + 1 + COUNTS + COUNTS + integer + 4 + + + + + + 1.0 + + + In + + + 1 + 4 + 10 + 0 + Nullable + + + + true + + + + +]]> + + + + + COUNTS + COUNTS + + + + + param_1 + projectversionid + + decimal + 4 + 1 + true + true + true + false + + + + + + 1 + COUNTS + integer + + + + FEM360DB + + + 1 + COUNTS + COUNTS + integer + 4 + + + 'REMOVED' +AND i.audited = 'Y' +)]]> + + + 1.0 + + + In + + + 1 + 4 + 10 + 0 + Nullable + + + + true + + + + +]]> + + + + + param_1 + projectversionid + decimal + 1 + 2 + true + true + false + + + param_2 + projectversionid + + decimal + 4 + 2 + true + true + true + false + + + param_3 + projectversionid + + decimal + 4 + 3 + true + true + true + false + + + + + + 1 + NAME + string + + + 2 + FORMAT + string + + + 3 + CURRENT_VALUE + float + + + 4 + START_VALUE + float + + + + FEM360DB + + + 1 + NAME + NAME + string + + + 2 + FORMAT + FORMAT + string + + + 3 + CURRENT_VALUE + CURRENT_VALUE + float + + + 4 + START_VALUE + START_VALUE + float + + + + + + 1.0 + + + In + + + 2 + 4 + 10 + 0 + Nullable + + + + true + + + + + In + + + 3 + 4 + 10 + 0 + Nullable + + + + true + + + + +]]> + + + + + param_1 + projectversionid + + decimal + 1 + 1 + true + false + + + + + + 1 + COUNTS + integer + + + + FEM360DB + + + 1 + COUNTS + COUNTS + integer + + + + + + 1.0 + + + In + + + 1 + 1 + 38 + 0 + Unknown + + + +]]> + + + + + param_1 + projectversionid + + decimal + 1 + 1 + true + false + + + + + + 1 + ISSUEINSTANCEID + string + + + 2 + FILENAME + string + + + 3 + LINENUMBER + integer + + + 4 + CATEGORY + string + + + 5 + PACKAGENAME + string + + + 6 + METHOD + string + + + 7 + SOURCE + string + + + 8 + SINK + string + + + 9 + FRIORITY + string + + + 10 + ISSUE_ID + integer + + + 11 + SOURCEFILE + string + + + 12 + USERNAME + string + + + 13 + ACOMMENT + string + + + 14 + AUDITTIME + decimal + + + 15 + ATTRNAME + string + + + 16 + ATTRVALUE + string + + + 17 + ENGINETYPE + string + + + 18 + ENGINEPRIORITY + string + + + + FEM360DB + + + 1 + ISSUEINSTANCEID + ISSUEINSTANCEID + string + + + 2 + FILENAME + FILENAME + string + + + 3 + LINENUMBER + LINENUMBER + integer + + + 4 + CATEGORY + CATEGORY + string + + + 5 + PACKAGENAME + PACKAGENAME + string + + + 6 + METHOD + METHOD + string + + + 7 + SOURCE + SOURCE + string + + + 8 + SINK + SINK + string + + + 9 + FRIORITY + FRIORITY + string + + + 10 + ISSUE_ID + ISSUE_ID + decimal + + + 11 + SOURCEFILE + SOURCEFILE + string + + + 12 + USERNAME + USERNAME + string + + + 13 + ACOMMENT + ACOMMENT + string + + + 14 + AUDITTIME + AUDITTIME + decimal + + + 15 + ATTRNAME + ATTRNAME + string + + + 16 + ATTRVALUE + ATTRVALUE + string + + + 17 + ENGINETYPE + ENGINETYPE + string + + + 18 + ENGINEPRIORITY + ENGINEPRIORITY + string + + + + + + 1.0 + + + In + + + 1 + 1 + 38 + 0 + Unknown + + + +]]> + + + + + param_1 + projectversionid + + decimal + 1 + 1 + true + false + + + + + + 1 + CRIT_COUNT + integer + + + 2 + HIGH_COUNT + integer + + + 3 + MED_COUNT + integer + + + 4 + LOW_COUNT + integer + + + 5 + G_ROUP + string + + + + FEM360DB + + + 1 + CRIT_COUNT + CRIT_COUNT + integer + + + 2 + HIGH_COUNT + HIGH_COUNT + integer + + + 3 + MED_COUNT + MED_COUNT + integer + + + 4 + LOW_COUNT + LOW_COUNT + integer + + + 5 + G_ROUP + G_ROUP + string + + + + + + 1.0 + + + In + + + 1 + 1 + 38 + 0 + Unknown + + + + + + + + + STARTDATE + 1 + -5 + 19 + 0 + Nullable + + STARTDATE + + + + STARTDATE + + 20 + + + + + + +]]> + + + + + + + + + + 0.25in + 0.25in + 0.25in + 0.25in + true + 0in + 0in + + + 0pt + 0in + 0pt + 0in + 0.59375in + 100% + + left + bottom + 1.3854166666666667in + + + left + bottom + 4.958333333333333in + + + bottom + 1in + + + 0.594in + + 5pt + 11pt + bottom + + inline + 38px + 38px + embed + FortifyBasicElements.fortify_black_square_logo_100x100.png + + + + 5pt + 11pt + bottom + + 8pt + #87898B + 3pt + 0pt + 0pt + 0pt + 0pt + center + new Date() + html + + + 8pt + 0pt + 0pt + 0pt + 0pt + center + #87898B + "© Copyright 2008-" + (new Date()).getFullYear() + " Open Text." + html + + + + 0pt + 11pt + 3pt + right + bottom + + 8pt + #87898B + auto + 12pt + 0pt + 0pt + 0pt + 0pt + page-number + + + + + + + + 0in + 0in + 0in + 0in + 0in + 0in + + + + + -1pt + NoMargin + auto + 10.5in + 8.5in + + 5.5in + + + 3in + + + 0.25in + + CoverTopBar + + + CoverTopRightBar + + + + 1.5in + + CoverTopTitle + #EFE9E5 + 30pt + middle + + 100% + + + + #C8C8C8 + solid + thin + + + + + + + tableContents + 0pt + 0pt + 0pt + 0pt + ProjectVersionInfo + + + PVNAME + dataSetRow["PVNAME"] + string + + + PNAME + dataSetRow["PNAME"] + string + + + PTNAME + dataSetRow["PTNAME"] + string + + + RTNAME + dataSetRow["RTNAME"] + string + + + PTYPE + dataSetRow["PTYPE"] + string + + + CREATED + dataSetRow["CREATED"] + date-time + + + pvName + dataSetRow["PNAME"] + " - "+dataSetRow["PVNAME"] + string + + + pvName + + + + + + + alignCenter + 1pt + + 100px + 100px + file + fortify_black_square_logo_100x100.png + + + + + 1px + + 15pt + middle + + + alignCenter + 1pt + middle + + + + #C8C8C8 + solid + thin + 1px + + 15pt + middle + + + alignCenter + 1pt + + + + 9.15in + + 30pt + 30pt + + scroll + 0% + 0% + repeat + sans-serif + 10pt + normal + normal + normal + #4D4D4D + none + none + none + black + none + medium + black + none + medium + black + none + medium + black + none + medium + 0pt + 0pt + 10pt + 20pt + 1pt + 1pt + 1pt + 1pt + 0em + normal + normal + 2 + none + normal + 2 + normal + block + auto + auto + auto + false + false + auto + + + + 0pt + 20pt + 20pt + sans-serif + 10pt + normal + normal + normal + #4D4D4D + var basic = "Issue priority is initially set based on the raw scan information. However, reviewers are able to modify the original issue priority based on additional contextual information. "; +var suffix = "If audited issue details are included in the report, they will indicate any audited issues where the original priority has been changed. "; +var note = "Note: " + basic + suffix ; +util.isPriorityOverrideEnabled() ? note : ' ' + html + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + CoverRightSide + none + 10pt + 10pt + bottom + + + + + #808080 + solid + 1px + #808080 + solid + 1px + #808080 + solid + 1px + #808080 + solid + 1px + Simple MasterPage + 100% + 'Overview' + + '1. Overview' + + + 4.28in + + + + #084A58 + + 2 + 1 + #808080 + solid + 1px + + scroll + 0% + 0% + repeat + sans-serif + 14pt + bold + normal + normal + #EDE6D8 + none + none + none + black + none + medium + black + none + medium + black + none + medium + black + none + medium + 0pt + 0pt + 0pt + 0pt + 1pt + 1pt + 1pt + 1pt + left + normal + normal + 2 + none + top + normal + 2 + normal + block + auto + auto + auto + false + false + ProjectVersionInfo + + + PVNAME + dataSetRow["PVNAME"] + string + + + PNAME + dataSetRow["PNAME"] + string + + + PTNAME + dataSetRow["PTNAME"] + string + + + RTNAME + dataSetRow["RTNAME"] + string + + + PTYPE + dataSetRow["PTYPE"] + string + + + CREATED + dataSetRow["CREATED"] + date-time + + + name + dataSetRow["PNAME"] + " - " + dataSetRow["PVNAME"] + string + + + + name + + + hyperlink + params["serverURL"].value + "/html/ssc/version/" + params["projectversionid"].value + _blank + + + + + + + + 1 + 3 + #808080 + solid + 1px + + + 5pt + 5pt + 0pt + 10pt + 2.1944444444444446in + 3.9in + ProjectVersionInfo + + + PVNAME + dataSetRow["PVNAME"] + string + + + PNAME + dataSetRow["PNAME"] + string + + + PTNAME + dataSetRow["PTNAME"] + string + + + RTNAME + dataSetRow["RTNAME"] + string + + + PTYPE + dataSetRow["PTYPE"] + string + + + CREATED + dataSetRow["CREATED"] + date-time + + + owner + dataSetRow["OWNER"] + string + + + date + dataSetRow["CREATED"] + date-time + + + Column Binding + dataSetRow["PTNAME"] + string + + + Column Binding_1 + dataSetRow["RTNAME"] + string + + + scan + if(dataSetRow["LASTSCAN"]) new Date(dataSetRow["LASTSCAN"]); else null; + date + + + DESCRIPTION + dataSetRow["DESCRIPTION"] + string + + + firstScan + if(dataSetRow["FIRSTSCAN"] !=null) new Date(dataSetRow["FIRSTSCAN"]); else null; + date + + + FIRSTSCAN + dataSetRow["FIRSTSCAN"] + decimal + + + LASTSCAN + dataSetRow["LASTSCAN"] + decimal + + + + 1.5in + + + 2.4in + + + #EDE7DE + solid + 1px + + 2 + 1 + top + + + scroll + 0% + 0% + repeat + sans-serif + 11pt + normal + normal + normal + #4D4D4D + none + none + none + black + none + medium + black + none + medium + black + none + medium + black + none + medium + 0pt + 0pt + 0pt + 0pt + 0pt + 0pt + 0pt + 0pt + + Fixed + #,##0 + + right + normal + normal + 2 + none + middle + normal + 2 + normal + block + auto + auto + auto + false + false + Column Binding + + + + + #EDE7DE + solid + 1px + + + all + !"FULL".equals(row["PTYPE"]) + + + + top + + + + top + + scroll + 0% + 0% + repeat + sans-serif + 11pt + normal + normal + normal + #4D4D4D + none + none + none + black + none + medium + black + none + medium + black + none + medium + black + none + medium + 0pt + 0pt + 0pt + 0pt + 0pt + 0pt + 0pt + 0pt + + Long Date + Long Date + + + Fixed + #,##0 + + right + normal + normal + 2 + none + middle + normal + 2 + normal + block + auto + auto + auto + false + false + owner + + + + + #EDE7DE + solid + 1px + + + all + !"FULL".equals(row["PTYPE"]) + + + + top + + + + top + + scroll + 0% + 0% + repeat + sans-serif + 11pt + normal + normal + normal + #4D4D4D + none + none + none + black + none + medium + black + none + medium + black + none + medium + black + none + medium + 0pt + 0pt + 0pt + 0pt + 0pt + 0pt + 0pt + 0pt + + Long Date + Long Date + + + Fixed + #,##0 + + right + normal + normal + 2 + none + middle + normal + 2 + normal + block + auto + auto + auto + false + false + date + + + + + #EDE7DE + solid + 1px + + + all + !"FULL".equals(row["PTYPE"]) + + + + top + + + + top + + scroll + 0% + 0% + repeat + sans-serif + 11pt + normal + normal + normal + #4D4D4D + none + none + none + black + none + medium + black + none + medium + black + none + medium + black + none + medium + 0pt + 0pt + 0pt + 0pt + 0pt + 0pt + 0pt + 0pt + + Long Date + Long Date + + + Fixed + #,##0 + + right + normal + normal + 2 + none + middle + normal + 2 + normal + block + auto + auto + auto + false + false + firstScan + + + + + #EDE7DE + solid + 1px + + + all + !"FULL".equals(row["PTYPE"]) + + + + top + + + + top + + scroll + 0% + 0% + repeat + sans-serif + 11pt + normal + normal + normal + #4D4D4D + none + none + none + black + none + medium + black + none + medium + black + none + medium + black + none + medium + 0pt + 0pt + 0pt + 0pt + 0pt + 0pt + 0pt + 0pt + + Long Date + Long Date + + + Fixed + #,##0 + + right + normal + normal + 2 + none + middle + normal + 2 + normal + block + auto + auto + auto + false + false + scan + + + + + + 0pt + 5pt + 10pt + 10pt + 1.0555555555555556in + 3.9in + ScanInfo_PV + + + FILES + dataSetRow["FILES"] + integer + + + Column Binding + files + var files = dataSetRow["FILES"]; if(files==null) "Unknown"; else files; + string + + + Column Binding_1 + lines + var lines = dataSetRow["LOC"]; if(lines==null) "Unknown"; else lines; + string + + + + 1.7in + + + 2.2in + + + #EDE7DE + solid + 1px + + middle + + + + middle + + scroll + 0% + 0% + repeat + sans-serif + 11pt + normal + normal + normal + #4D4D4D + none + none + none + black + none + medium + black + none + medium + black + none + medium + black + none + medium + 0pt + 0pt + 0pt + 0pt + 0pt + 0pt + 0pt + 0pt + + Fixed + #,##0 + + right + normal + normal + 2 + none + middle + normal + 2 + normal + block + auto + auto + auto + false + false + + + eq + 10pt + #7E6F69 + row["Column Binding_1"] + + 'Unknown' + + + + Column Binding_1 + + + + + #EDE7DE + solid + 1px + + middle + + + + middle + + scroll + 0% + 0% + repeat + sans-serif + 11pt + normal + normal + normal + #4D4D4D + none + none + none + black + none + medium + black + none + medium + black + none + medium + black + none + medium + 0pt + 0pt + 0pt + 0pt + 0pt + 0pt + 0pt + 0pt + + Fixed + #,##0 + + right + normal + normal + 2 + none + middle + normal + 2 + normal + block + auto + auto + auto + false + false + + + eq + 10pt + #7E6F69 + row["Column Binding"] + + 'Unknown' + + + + Column Binding + + + + + + top + + + + top + + 100% + LanguagesForProject_Total + + + IDX + dataSetRow["IDX"] + integer + + + MNAME + dataSetRow["MNAME"] + string + + + PANAME + dataSetRow["PANAME"] + string + + + COUNTS + dataSetRow["COUNTS"] + integer + + + lang + dataSetRow["MNAME"] + string + + + + + + + 0pt + 0pt + 0pt + 0pt + + scroll + 0% + 0% + repeat + sans-serif + 11pt + normal + normal + normal + #4D4D4D + none + none + none + black + none + medium + black + none + medium + black + none + medium + black + none + medium + 0pt + 0pt + 0pt + 0pt + 0pt + 0pt + 0pt + 0pt + + Fixed + #,##0 + + right + normal + normal + 2 + none + middle + normal + 2 + normal + block + auto + auto + auto + false + false + lang + + + + +
+
+
+
+
+ + #808080 + solid + 1px + 10pt + 10pt + 10pt + 10pt + + #95A0A9 + #FCB126 + solid + 2px + #FCB126 + solid + 2px + #FCB126 + solid + 2px + #FCB126 + solid + 2px + 1in + 100% + ProjectStatus + + + ID + dataSetRow["ID"] + decimal + + + PROJNAME + dataSetRow["PROJNAME"] + string + + + NAME + dataSetRow["NAME"] + string + + + OWNER + dataSetRow["OWNER"] + string + + + TOTAL + dataSetRow["TOTAL"] + integer + + + COMPLETE + dataSetRow["COMPLETE"] + integer + + + RISK + if(dataSetRow["TYPE"]==null) 'Unknown'; else if("integer".equals(dataSetRow["TYPE"])) BirtMath.round(dataSetRow["RISK"],2); else Math.floor(dataSetRow["RISK"]) + " %"; + string + + + BUSRISK + dataSetRow["BUSRISK"] + string + + + risk + var risk = dataSetRow["BUSRISK"]; if(risk==null) "Not Set" ; else risk; + string + + + + + + 0.75in + + 5pt + 5pt + 2pt + 5pt + + #EDE7DE + #808080 + solid + medium + #808080 + solid + medium + #808080 + solid + medium + #808080 + solid + medium + 0.75in + 100% + + + 0.75in + + middle + + cellpadding + scroll + 0% + 0% + repeat + sans-serif + 16pt + normal + normal + normal + black + none + none + none + black + none + medium + black + none + medium + black + none + medium + black + none + medium + 0pt + 0pt + 0pt + 0pt + 1pt + 1pt + 1pt + 1pt + + Fixed + #,##0 + + center + normal + normal + 2 + none + middle + normal + 2 + normal + block + auto + auto + auto + false + false + + + is-true + 10pt + #7E6F69 + row["RISK"].equals("Unknown") + + + RISK + + + + + + + 5pt + 0pt + 2pt + 5pt + + #EDE7DE + #808080 + solid + medium + #808080 + solid + medium + #808080 + solid + medium + #808080 + solid + medium + 0.75in + 100% + + + 0.75in + + middle + + + eq + row["BUSRISK"] + + 'High' + + HighHighlight + + + eq + row["BUSRISK"] + + 'Medium' + + MedHighlight + + + eq + row["BUSRISK"] + + 'Low' + + LowHighlight + + + + cellpadding + scroll + 0% + 0% + repeat + sans-serif + 16pt + normal + normal + normal + black + none + none + none + black + none + medium + black + none + medium + black + none + medium + black + none + medium + 0pt + 0pt + 0pt + 0pt + 1pt + 1pt + 1pt + 1pt + + Fixed + #,##0 + + center + normal + normal + 2 + none + middle + normal + 2 + normal + block + auto + auto + auto + false + false + + + is-null + 10pt + #7E6F69 + row["BUSRISK"] + + + risk + + + + + + + + 0.25in + + middle + + scroll + 0% + 0% + repeat + sans-serif + 10pt + bold + normal + normal + #FFFFFF + none + none + none + black + none + medium + black + none + medium + black + none + medium + black + none + medium + 0pt + 0pt + 0pt + 0pt + 1pt + 1pt + 1pt + 1pt + center + normal + normal + 2 + none + middle + normal + 2 + normal + block + auto + auto + auto + false + false + PerformanceIndicatorInformation + + + NAME + dataSetRow["NAME"] + string + + + DESCR + dataSetRow["DESCR"] + string + + + row["NAME"] + html + + + + middle + + + + + +
+ + + 1 + 2 + #808080 + solid + 1px + #808080 + solid + 1px + + + 10pt + 30pt + 1.8in + 2.5in + FPO_PerProject + + + CRIT + dataSetRow["CRIT"] + decimal + + + HIGH + dataSetRow["HIGH"] + decimal + + + MED + dataSetRow["MED"] + decimal + + + LOW + dataSetRow["LOW"] + decimal + + + IN_CRITICAL + IN_CRITICAL + dataSetRow["IN_CRITICAL"] + float + + + OUT_CRITICAL + OUT_CRITICAL + dataSetRow["OUT_CRITICAL"] + float + + + IN_HIGH + IN_HIGH + dataSetRow["IN_HIGH"] + float + + + OUT_HIGH + OUT_HIGH + dataSetRow["OUT_HIGH"] + float + + + IN_MEDIUM + IN_MEDIUM + dataSetRow["IN_MEDIUM"] + float + + + OUT_MEDIUM + OUT_MEDIUM + dataSetRow["OUT_MEDIUM"] + float + + + IN_LOW + IN_LOW + dataSetRow["IN_LOW"] + float + + + OUT_LOW + OUT_LOW + dataSetRow["OUT_LOW"] + float + + + starHigh + 12 + row["HIGH"] + ((row["IN_HIGH"]>0||row["OUT_HIGH"]>0)? ' **' : '') + string + true + + + starCritical + 134 + row["CRIT"] + ((row["IN_CRITICAL"]>0||row["OUT_CRITICAL"]>0)? ' **' : '') + string + true + + + starMedium + 151 + row["MED"] + ((row["IN_MEDIUM"]>0||row["OUT_MEDIUM"]>0)? " **" : "") + string + true + + + starLow + 152 + row["LOW"] + ((row["IN_LOW"]>0||row["OUT_LOW"]>0)? ' **' : '') + string + true + + + + 1in + + + 0.75in + + + 0.75in + + + 0.75in + + 1 + 2 + middle + + + + 1 + 1 + MedHighlight + #FF8C00 + #808080 + solid + medium + #808080 + solid + medium + #808080 + solid + medium + #808080 + solid + medium + middle + + alignCenter + scroll + 0% + 0% + repeat + sans-serif + 12pt + normal + normal + normal + black + none + none + none + black + none + medium + black + none + medium + black + none + medium + black + none + medium + 0pt + 0pt + 0pt + 0pt + 1pt + 1pt + 1pt + 1pt + center + normal + normal + 2 + none + middle + normal + 2 + normal + block + auto + auto + auto + false + false + starHigh + + + + + 1 + 1 + HighHighlight + #808080 + solid + medium + #808080 + solid + medium + #808080 + solid + medium + #808080 + solid + medium + middle + + alignCenter + scroll + 0% + 0% + repeat + sans-serif + 12pt + normal + normal + normal + black + none + none + none + black + none + medium + black + none + medium + black + none + medium + black + none + medium + 0pt + 0pt + 0pt + 0pt + 1pt + 1pt + 1pt + 1pt + center + normal + normal + 2 + none + middle + normal + 2 + normal + block + auto + auto + auto + false + false + starCritical + + + + + + 0.75in + + 1 + 1 + LowHighlight + #FFFF96 + #808080 + solid + medium + #808080 + solid + medium + #808080 + solid + medium + #808080 + solid + medium + middle + + alignCenter + scroll + 0% + 0% + repeat + sans-serif + 12pt + normal + normal + normal + black + none + none + none + black + none + medium + black + none + medium + black + none + medium + black + none + medium + 0pt + 0pt + 0pt + 0pt + 1pt + 1pt + 1pt + 1pt + center + normal + normal + 2 + none + middle + normal + 2 + normal + block + auto + auto + auto + false + false + starLow + + + + + 1 + 1 + LowHighlight + #FFC800 + #808080 + solid + medium + #808080 + solid + medium + #808080 + solid + medium + #808080 + solid + medium + middle + + alignCenter + scroll + 0% + 0% + repeat + sans-serif + 12pt + normal + normal + normal + black + none + none + none + black + none + medium + black + none + medium + black + none + medium + black + none + medium + 0pt + 0pt + 0pt + 0pt + 1pt + 1pt + 1pt + 1pt + center + normal + normal + 2 + none + middle + normal + 2 + normal + block + auto + auto + auto + false + false + starMedium + + + + + + 0.3in + + + 2 + 1 + + + + + + footerurl + 5pt + 0pt + 5pt + 5pt + 9pt + left + true + html + (util.isPriorityOverrideEnabled()) ? "If present, '**' denotes the existence of issues changed from or to this priority. The issue detail sections indicate the audited issues with changed priority. " : ' ' + + + + + + + + + + + 10pt + 5pt + 10pt + 10pt + 0.8472222222222222in + 3.9in + TopTenIssueCategories_PerProject + + + all + rowsReturned = Total.count(); Total.count() < 1 + + + + + Category + Category + dataSetRow["CATEGORY"] + string + + + issueOccurences + occ + dataSetRow["TOTAL_OCCUR"] + integer + + + + + lt + row[0] + + 5 + + + + + middle + 3.15in + + + alignCenter + 0.75in + +
+ + verticalGroupHeaderWithBG + 12pt + + scroll + #B9AEAA + 0% + 0% + repeat + serif + medium + normal + normal + normal + black + none + none + none + 0pt + 0pt + 0pt + 0pt + 1pt + 1pt + 1pt + 1pt + 0em + normal + normal + 2 + none + middle + normal + 2 + normal + block + auto + auto + auto + false + false + + + + scroll + #758894 + 0% + 0% + repeat + serif + medium + normal + normal + normal + black + none + none + none + #FFFFFF + solid + 1px + 0pt + 0pt + 0pt + 0pt + 1pt + 1pt + 1pt + 1pt + 0em + normal + normal + 2 + none + normal + 2 + normal + block + auto + auto + auto + false + false + + + +
+ + + grayWithWhiteBorder + #EDE7DE + + scroll + 0% + 0% + repeat + serif + medium + normal + normal + normal + black + none + none + none + black + none + medium + black + none + medium + #FFFFFF + solid + thin + black + none + medium + 0pt + 0pt + 0pt + 0pt + 1pt + 1pt + 1pt + 1pt + 0em + normal + normal + 2 + none + normal + 2 + normal + block + auto + auto + auto + false + false + + cellpadding + scroll + 0% + 0% + repeat + sans-serif + 11pt + normal + normal + normal + #7E6F69 + none + none + none + black + none + medium + black + none + medium + black + none + medium + black + none + medium + 0pt + 0pt + 0pt + 0pt + 1pt + 1pt + 1pt + 1pt + left + normal + normal + 2 + none + middle + normal + 2 + normal + block + auto + auto + auto + false + false + Category + + + + #FFFFFF + solid + thin + + cellpadding + scroll + 0% + 0% + repeat + sans-serif + 11pt + bold + normal + normal + #4D4D4D + none + none + none + black + none + medium + black + none + medium + black + none + medium + black + none + medium + 0pt + 0pt + 0pt + 0pt + 0pt + 0pt + 0pt + 0pt + + Fixed + #,##0 + + center + normal + normal + 2 + none + middle + normal + 2 + normal + block + auto + auto + auto + false + false + issueOccurences + + + + +
+ +
+ + #808080 + solid + 1px + #808080 + solid + 1px + + + 10pt + 5pt + 10pt + 10pt + 3.35in + + 2.6in + + + middle + 0.75in + + + verticalGroupHeaderWithBG + #B9AEAA + + #FFFFFF + solid + thin + + + + #758894 + + + + + grayWithWhiteBorder + #EDE7DE + + #FFFFFF + solid + thin + + + + + scroll + 0% + 0% + repeat + sans-serif + 10pt + normal + normal + normal + #5C5C5C + none + none + none + black + none + medium + black + none + medium + black + none + medium + black + none + medium + 0pt + 0pt + 0pt + 0pt + 1pt + 1pt + 1pt + 1pt + center + normal + normal + 2 + none + middle + normal + 2 + normal + block + auto + auto + auto + false + false + + + gt + sans-serif + 11pt + bold + #4D4D4D + row["Column Binding"] + + 0 + + + + TAINT_TOTAL + + + param_2 + + '%DATABASE%' + + + + + + TOTAL_ISSUES + dataSetRow["TOTAL_ISSUES"] + decimal + + + Column Binding + TAINT + dataSetRow["TOTAL_ISSUES"]; + decimal + + + Column Binding + + + + + grayWithWhiteBorder + #EDE7DE + + #FFFFFF + solid + thin + + + + + scroll + 0% + 0% + repeat + sans-serif + 10pt + normal + normal + normal + #5C5C5C + none + none + none + black + none + medium + black + none + medium + black + none + medium + black + none + medium + 0pt + 0pt + 0pt + 0pt + 1pt + 1pt + 1pt + 1pt + center + normal + normal + 2 + none + middle + normal + 2 + normal + block + auto + auto + auto + false + false + + + gt + sans-serif + 11pt + bold + #4D4D4D + row["Column Binding"] + + 0 + + + + TAINT_TOTAL + + + param_2 + + '%NETWORK%' + + + + + + TOTAL_ISSUES + dataSetRow["TOTAL_ISSUES"] + decimal + + + Column Binding + TAINT + dataSetRow["TOTAL_ISSUES"]; + decimal + + + Column Binding + + + + + grayWithWhiteBorder + #EDE7DE + + #FFFFFF + solid + thin + + + + + scroll + 0% + 0% + repeat + sans-serif + 10pt + normal + normal + normal + #5C5C5C + none + none + none + black + none + medium + black + none + medium + black + none + medium + black + none + medium + 0pt + 0pt + 0pt + 0pt + 1pt + 1pt + 1pt + 1pt + center + normal + normal + 2 + none + middle + normal + 2 + normal + block + auto + auto + auto + false + false + + + gt + sans-serif + 11pt + bold + #4D4D4D + row["Column Binding"] + + 0 + + + + TAINT_TOTAL2 + + + taintflag1 + + '%WEB%' + + + + taintflag2 + + '%FORM%' + + + + + + Column Binding + T_WEB + dataSetRow["TOTAL_ISSUES"]; + decimal + + + Column Binding + + + + + grayWithWhiteBorder + #EDE7DE + + #FFFFFF + solid + thin + + + + + scroll + 0% + 0% + repeat + sans-serif + 10pt + normal + normal + normal + #5C5C5C + none + none + none + black + none + medium + black + none + medium + black + none + medium + black + none + medium + 0pt + 0pt + 0pt + 0pt + 1pt + 1pt + 1pt + 1pt + center + normal + normal + 2 + none + middle + normal + 2 + normal + block + auto + auto + auto + false + false + + + gt + sans-serif + 11pt + bold + #4D4D4D + row["Column Binding"] + + 0 + + + + TAINT_TOTAL + + + param_2 + + '%WEBSERVICE%' + + + + + + TOTAL_ISSUES + dataSetRow["TOTAL_ISSUES"] + decimal + + + Column Binding + TAINT + dataSetRow["TOTAL_ISSUES"]; + decimal + + + Column Binding + + + + + grayWithWhiteBorder + #EDE7DE + + #FFFFFF + solid + thin + + + + + scroll + 0% + 0% + repeat + sans-serif + 10pt + normal + normal + normal + #5C5C5C + none + none + none + black + none + medium + black + none + medium + black + none + medium + black + none + medium + 0pt + 0pt + 0pt + 0pt + 1pt + 1pt + 1pt + 1pt + center + normal + normal + 2 + none + middle + normal + 2 + normal + block + auto + auto + auto + false + false + + + gt + sans-serif + 11pt + bold + #4D4D4D + row["Column Binding"] + + 0 + + + + OTHER + + + TOTAL_ISSUES + dataSetRow["TOTAL_ISSUES"] + decimal + + + Column Binding + tot + dataSetRow["TOTAL_ISSUES"]; + decimal + + + Column Binding + + + + + grayWithWhiteBorder + white + #808080 + solid + 1px + + #FFFFFF + solid + thin + + + + + scroll + 0% + 0% + repeat + sans-serif + 11pt + bold + normal + normal + #4D4D4D + none + none + none + black + none + medium + black + none + medium + black + none + medium + black + none + medium + 0pt + 0pt + 0pt + 0pt + 1pt + 1pt + 1pt + 1pt + center + normal + normal + 2 + none + middle + normal + 2 + normal + block + auto + auto + auto + false + false + TotalIssues + + + tot + dataSetRow["TOTALISSUES"] + integer + + + tot + + + + + +
+ + + 2 + 2 + + #808080 + solid + 1px + 5pt + 5pt + 5pt + 5pt + + scroll + 0% + 0% + repeat + sans-serif + 14pt + normal + normal + normal + #7E6F69 + none + none + none + #808080 + solid + 1px + black + none + medium + black + none + medium + black + none + medium + 5pt + 5pt + 1pt + 5pt + 1pt + 1pt + 1pt + 1pt + left + normal + normal + 2 + none + top + normal + 2 + normal + block + auto + auto + auto + false + false + PerformanceIndicatorInformation + + + NAME + dataSetRow["NAME"] + string + + + DESCR + dataSetRow["DESCR"] + string + + + "Issues and " +row["NAME"] + " by Date" + html + + + + Bar Chart + Stacked + + + + 0.0 + 0.0 + 0.0 + 0.0 + + + 3.0 + 3.0 + 3.0 + 3.0 + + -1 + -1 + -1 + -1 + + + 1 + + 255 + 0 + 0 + 0 + + false + + false + + + + + 0.0 + 0.0 + 0.0 + 0.0 + + + 3.0 + 3.0 + 3.0 + 3.0 + + -1 + -1 + -1 + -1 + + + 1 + + 255 + 0 + 0 + 0 + + false + + true + 5 + 5 + + + + 255 + 254 + 254 + 221 + + + 255 + 254 + 254 + 254 + + 90.0 + + + + 0 + + 255 + 0 + 0 + 0 + + false + + + 0.0 + 0.0 + 0.0 + 0.0 + + + + + + 0.0 + 0.0 + 0.0 + 0.0 + + South + + 3.0 + 3.0 + 3.0 + 3.0 + + -1 + -1 + -1 + -1 + + + 1 + + 255 + 0 + 0 + 0 + + false + + true + + + + 0 + + 255 + 0 + 0 + 0 + + false + + + 2.0 + 2.0 + 2.0 + 2.0 + + + + + + + + + Horizontal + Left_Right + + + 1 + + 255 + 0 + 0 + 0 + + false + + Below + Series + + <Caption> + <Value></Value> + <Font> + <Alignment/> + </Font> + </Caption> + <Background xsi:type="attribute:ColorDefinition"> + <Transparency>0</Transparency> + <Red>255</Red> + <Green>255</Green> + <Blue>255</Blue> + </Background> + <Outline> + <Style>Solid</Style> + <Thickness>1</Thickness> + <Color> + <Transparency>255</Transparency> + <Red>0</Red> + <Green>0</Green> + <Blue>0</Blue> + </Color> + <Visible>false</Visible> + </Outline> + <Insets> + <Top>0.0</Top> + <Left>2.0</Left> + <Bottom>0.0</Bottom> + <Right>3.0</Right> + </Insets> + <Visible>false</Visible> + + Above + + + 0.0 + 0.0 + 561.6 + 221.0 + + + 3.0 + 3.0 + 3.0 + 3.0 + + -1 + -1 + -1 + -1 + + + 1 + + 255 + 0 + 0 + 0 + + false + + + 255 + 255 + 255 + 255 + + true + + Two_Dimensional + Points + 10.0 + + + 01/05/2000,02/01/2000,04/12/2000,03/12/2000,02/29/2000 + + + 6,4,12,8,10 + 0 + + + 12.0,8.0,24.0,16.0,20.0 + 1 + + + 18.0,12.0,36.0,24.0,30.0 + 2 + + + 24.0,16.0,48.0,32.0,40.0 + 3 + + + 42,91,62,9,21 + 4 + + + + + + + + + + + + 0 + 255 + 255 + 255 + + + + 1 + + 255 + 0 + 0 + 0 + + + + 0.0 + 2.0 + 0.0 + 3.0 + + false + + + DateTime + + <Caption> + <Value>X-Axis Title</Value> + <Font> + <Size>14.0</Size> + <Bold>true</Bold> + <Alignment> + <horizontalAlignment>Center</horizontalAlignment> + <verticalAlignment>Center</verticalAlignment> + </Alignment> + </Font> + </Caption> + <Background xsi:type="attribute:ColorDefinition"> + <Transparency>0</Transparency> + <Red>255</Red> + <Green>255</Green> + <Blue>255</Blue> + </Background> + <Outline> + <Style>Solid</Style> + <Thickness>1</Thickness> + <Color> + <Transparency>255</Transparency> + <Red>0</Red> + <Green>0</Green> + <Blue>0</Blue> + </Color> + </Outline> + <Insets> + <Top>0.0</Top> + <Left>2.0</Left> + <Bottom>0.0</Bottom> + <Right>3.0</Right> + </Insets> + <Visible>false</Visible> + + Below + + Linear + + <Caption> + <Value>Total Issues</Value> + <Font> + <Size>10.0</Size> + <Alignment> + <horizontalAlignment>Center</horizontalAlignment> + <verticalAlignment>Center</verticalAlignment> + </Alignment> + <Rotation>90.0</Rotation> + </Font> + <Color> + <Transparency>255</Transparency> + <Red>51</Red> + <Green>51</Green> + <Blue>51</Blue> + </Color> + </Caption> + <Background xsi:type="attribute:ColorDefinition"> + <Transparency>0</Transparency> + <Red>255</Red> + <Green>255</Green> + <Blue>255</Blue> + </Background> + <Outline> + <Style>Solid</Style> + <Thickness>1</Thickness> + <Color> + <Transparency>255</Transparency> + <Red>0</Red> + <Green>0</Green> + <Blue>0</Blue> + </Color> + </Outline> + <Insets> + <Top>0.0</Top> + <Left>2.0</Left> + <Bottom>0.0</Bottom> + <Right>3.0</Right> + </Insets> + <Visible>true</Visible> + + Left + + + + + + + 255 + 254 + 0 + 0 + + + 255 + 255 + 140 + 0 + + + 255 + 255 + 200 + 0 + + + 255 + 255 + 255 + 150 + + + 255 + 128 + 255 + 128 + + + 255 + 64 + 128 + 128 + + + 255 + 128 + 128 + 192 + + + 255 + 170 + 85 + 85 + + + 255 + 128 + 128 + 0 + + + 255 + 192 + 192 + 192 + + + 255 + 128 + 192 + 128 + + + 255 + 7 + 146 + 94 + + + 255 + 0 + 128 + 255 + + + 255 + 255 + 128 + 192 + + + 255 + 0 + 255 + 255 + + + 255 + 255 + 128 + 128 + + + 255 + 0 + 128 + 192 + + + 255 + 128 + 128 + 192 + + + 255 + 255 + 0 + 255 + + + 255 + 128 + 64 + 64 + + + 255 + 255 + 128 + 64 + + + 255 + 80 + 240 + 120 + + + 255 + 0 + 64 + 128 + + + 255 + 128 + 0 + 64 + + + 255 + 255 + 0 + 128 + + + 255 + 128 + 128 + 64 + + + 255 + 128 + 128 + 128 + + + 255 + 255 + 128 + 255 + + + 255 + 0 + 64 + 0 + + + 255 + 0 + 0 + 0 + + + 255 + 255 + 255 + 255 + + + 255 + 255 + 128 + 0 + + + + true + + + row["CRIT"] + + Critical + + + Orthogonal_Value + + , + + Inside + true + false + Rectangle + + + false + 1.0 + Text + Sum + + + + + + + + + 255 + 255 + 140 + 0 + + + 255 + 255 + 200 + 0 + + + 255 + 255 + 255 + 150 + + + 255 + 64 + 128 + 128 + + + 255 + 128 + 128 + 192 + + + 255 + 170 + 85 + 85 + + + 255 + 128 + 128 + 0 + + + 255 + 192 + 192 + 192 + + + 255 + 255 + 255 + 128 + + + 255 + 128 + 192 + 128 + + + 255 + 7 + 146 + 94 + + + 255 + 0 + 128 + 255 + + + 255 + 255 + 128 + 192 + + + 255 + 0 + 255 + 255 + + + 255 + 255 + 128 + 128 + + + 255 + 0 + 128 + 192 + + + 255 + 128 + 128 + 192 + + + 255 + 255 + 0 + 255 + + + 255 + 128 + 64 + 64 + + + 255 + 255 + 128 + 64 + + + 255 + 80 + 240 + 120 + + + 255 + 0 + 64 + 128 + + + 255 + 128 + 0 + 64 + + + 255 + 255 + 0 + 128 + + + 255 + 128 + 128 + 64 + + + 255 + 128 + 128 + 128 + + + 255 + 255 + 128 + 255 + + + 255 + 0 + 64 + 0 + + + 255 + 0 + 0 + 0 + + + 255 + 255 + 255 + 255 + + + 255 + 255 + 128 + 0 + + + 255 + 254 + 0 + 0 + + + + true + + + row["HIGH"] + + High + + + Orthogonal_Value + + , + + Inside + true + Rectangle + + + false + 1.0 + Text + Sum + + + + + + + + + 255 + 255 + 200 + 0 + + + 255 + 255 + 255 + 150 + + + 255 + 64 + 128 + 128 + + + 255 + 128 + 128 + 192 + + + 255 + 170 + 85 + 85 + + + 255 + 128 + 128 + 0 + + + 255 + 192 + 192 + 192 + + + 255 + 255 + 255 + 128 + + + 255 + 128 + 192 + 128 + + + 255 + 7 + 146 + 94 + + + 255 + 0 + 128 + 255 + + + 255 + 255 + 128 + 192 + + + 255 + 0 + 255 + 255 + + + 255 + 255 + 128 + 128 + + + 255 + 0 + 128 + 192 + + + 255 + 128 + 128 + 192 + + + 255 + 255 + 0 + 255 + + + 255 + 128 + 64 + 64 + + + 255 + 255 + 128 + 64 + + + 255 + 80 + 240 + 120 + + + 255 + 0 + 64 + 128 + + + 255 + 128 + 0 + 64 + + + 255 + 255 + 0 + 128 + + + 255 + 128 + 128 + 64 + + + 255 + 128 + 128 + 128 + + + 255 + 255 + 128 + 255 + + + 255 + 0 + 64 + 0 + + + 255 + 0 + 0 + 0 + + + 255 + 255 + 255 + 255 + + + 255 + 255 + 128 + 0 + + + 255 + 254 + 0 + 0 + + + 255 + 255 + 140 + 0 + + + + true + + + row["MED"] + + Medium + + + Orthogonal_Value + + , + + Inside + true + Rectangle + + + false + 1.0 + Text + Sum + + + + + + + + + 255 + 255 + 255 + 150 + + + 255 + 64 + 128 + 128 + + + 255 + 128 + 128 + 192 + + + 255 + 170 + 85 + 85 + + + 255 + 128 + 128 + 0 + + + 255 + 192 + 192 + 192 + + + 255 + 255 + 255 + 128 + + + 255 + 128 + 192 + 128 + + + 255 + 7 + 146 + 94 + + + 255 + 0 + 128 + 255 + + + 255 + 255 + 128 + 192 + + + 255 + 0 + 255 + 255 + + + 255 + 255 + 128 + 128 + + + 255 + 0 + 128 + 192 + + + 255 + 128 + 128 + 192 + + + 255 + 255 + 0 + 255 + + + 255 + 128 + 64 + 64 + + + 255 + 255 + 128 + 64 + + + 255 + 80 + 240 + 120 + + + 255 + 0 + 64 + 128 + + + 255 + 128 + 0 + 64 + + + 255 + 255 + 0 + 128 + + + 255 + 128 + 128 + 64 + + + 255 + 128 + 128 + 128 + + + 255 + 255 + 128 + 255 + + + 255 + 0 + 64 + 0 + + + 255 + 0 + 0 + 0 + + + 255 + 255 + 255 + 255 + + + 255 + 255 + 128 + 0 + + + 255 + 254 + 0 + 0 + + + 255 + 255 + 140 + 0 + + + 255 + 255 + 200 + 0 + + + + true + + + row["LOW"] + + Low + + + Orthogonal_Value + + , + + Inside + true + Rectangle + + + false + 1.0 + Text + Sum + + + Vertical + + + 1 + + 255 + 128 + 128 + 128 + + true + + + Left + + + + 1 + + 255 + 145 + 145 + 145 + + true + + Across + + + 1 + + 255 + 196 + 196 + 196 + + false + + + + + + 1 + + 255 + 225 + 225 + 225 + + false + + Across + + + 1 + + 255 + 225 + 225 + 225 + + false + + + + 5 + + + Min + + 0.0 + + + true + false + + + Linear + + <Caption> + <Value>Performance Indicator</Value> + <Font> + <Size>10.0</Size> + <Alignment> + <horizontalAlignment>Center</horizontalAlignment> + <verticalAlignment>Center</verticalAlignment> + </Alignment> + <Rotation>90.0</Rotation> + </Font> + <Color> + <Transparency>255</Transparency> + <Red>51</Red> + <Green>51</Green> + <Blue>51</Blue> + </Color> + </Caption> + <Background xsi:type="attribute:ColorDefinition"> + <Transparency>0</Transparency> + <Red>255</Red> + <Green>255</Green> + <Blue>255</Blue> + </Background> + <Outline> + <Style>Solid</Style> + <Thickness>1</Thickness> + <Color> + <Transparency>255</Transparency> + <Red>0</Red> + <Green>0</Green> + <Blue>0</Blue> + </Color> + </Outline> + <Insets> + <Top>0.0</Top> + <Left>2.0</Left> + <Bottom>0.0</Bottom> + <Right>3.0</Right> + </Insets> + <Visible>true</Visible> + + Right + + + + + + + 255 + 0 + 0 + 0 + + + 255 + 242 + 88 + 106 + + + 255 + 232 + 172 + 57 + + + 255 + 128 + 255 + 128 + + + 255 + 64 + 128 + 128 + + + 255 + 128 + 128 + 192 + + + 255 + 170 + 85 + 85 + + + 255 + 128 + 128 + 0 + + + 255 + 192 + 192 + 192 + + + 255 + 255 + 255 + 128 + + + 255 + 128 + 192 + 128 + + + 255 + 7 + 146 + 94 + + + 255 + 0 + 128 + 255 + + + 255 + 255 + 128 + 192 + + + 255 + 0 + 255 + 255 + + + 255 + 255 + 128 + 128 + + + 255 + 0 + 128 + 192 + + + 255 + 128 + 128 + 192 + + + 255 + 255 + 0 + 255 + + + 255 + 128 + 64 + 64 + + + 255 + 255 + 128 + 64 + + + 255 + 80 + 240 + 120 + + + 255 + 0 + 64 + 128 + + + 255 + 128 + 0 + 64 + + + 255 + 255 + 0 + 128 + + + 255 + 128 + 128 + 64 + + + 255 + 128 + 128 + 128 + + + 255 + 255 + 128 + 255 + + + 255 + 0 + 64 + 0 + + + 255 + 0 + 0 + 0 + + + 255 + 255 + 255 + 255 + + + 255 + 255 + 128 + 0 + + + + true + + + Math.floor(row["PI"]) ; + + Performance Indicator + + + Orthogonal_Value + + , + + Above + true + + Triangle + 2 + true + + + + 1 + + 255 + 0 + 0 + 0 + + true + + true + + + false + 1.0 + Text + Sum + + + Vertical + + + 1 + + 255 + 128 + 128 + 128 + + true + + + Right + + + + 1 + + 255 + 128 + 128 + 128 + + false + + Across + + + 1 + + 255 + 196 + 196 + 196 + + false + + + + + + 1 + + 255 + 225 + 225 + 225 + + false + + Across + + + 1 + + 255 + 225 + 225 + 225 + + false + + + + 5 + + + Max + + false + false + + + + + + + + 255 + 80 + 166 + 218 + + + 255 + 242 + 88 + 106 + + + 255 + 232 + 172 + 57 + + + 255 + 128 + 255 + 128 + + + 255 + 64 + 128 + 128 + + + 255 + 128 + 128 + 192 + + + 255 + 170 + 85 + 85 + + + 255 + 128 + 128 + 0 + + + 255 + 192 + 192 + 192 + + + 255 + 255 + 255 + 128 + + + 255 + 128 + 192 + 128 + + + 255 + 7 + 146 + 94 + + + 255 + 0 + 128 + 255 + + + 255 + 255 + 128 + 192 + + + 255 + 0 + 255 + 255 + + + 255 + 255 + 128 + 128 + + + 255 + 0 + 128 + 192 + + + 255 + 128 + 128 + 192 + + + 255 + 255 + 0 + 255 + + + 255 + 128 + 64 + 64 + + + 255 + 255 + 128 + 64 + + + 255 + 80 + 240 + 120 + + + 255 + 0 + 64 + 128 + + + 255 + 128 + 0 + 64 + + + 255 + 255 + 0 + 128 + + + 255 + 128 + 128 + 64 + + + 255 + 128 + 128 + 128 + + + 255 + 255 + 128 + 255 + + + 255 + 0 + 64 + 0 + + + 255 + 0 + 0 + 0 + + + 255 + 255 + 255 + 255 + + + 255 + 255 + 128 + 0 + + + + true + + + row["DATE"] + + + + + Orthogonal_Value + + , + + Outside + false + + + true + 1.0 + Text + Sum + + + Horizontal + + + 1 + + 255 + 128 + 128 + 128 + + true + + + + Short + Date + + Below + + + + 1 + + 255 + 196 + 196 + 196 + + false + + Across + + + 1 + + 255 + 196 + 196 + 196 + + false + + + + + + 1 + + 255 + 225 + 225 + 225 + + false + + Across + + + 1 + + 255 + 225 + 225 + 225 + + false + + + + 5 + + + Min + + 0.0 + + + true + true + false + + Vertical + 50.0 + + +]]> + JPG + 3.0694444444444446in + 7.8in + IssueTrending_ISSUES + + + all + rowsReturned = Total.count(); rowsReturned <1; + + + + + DATE + dataSetRow["STARTDATE"] + date-time + + + CRIT + dataSetRow["CRIT"] + integer + + + HIGH + dataSetRow["HIGH"] + integer + + + MED + dataSetRow["MED"] + integer + + + LOW + dataSetRow["LOW"] + integer + + + PI + dataSetRow["PI"] + float + + + TYPE + dataSetRow["TYPE"] + string + + + + + + + +
+ + #808080 + solid + 1px + #808080 + solid + 1px + #808080 + solid + 1px + #808080 + solid + 1px + Simple MasterPage + always + 100% + + + + #084A58 + + 2 + 1 + #808080 + solid + 1px + #808080 + solid + 1px + + + + + + 1 + 2 + #808080 + solid + 1px + #808080 + solid + 1px + + + scroll + 0% + 0% + repeat + sans-serif + 10pt + normal + normal + normal + #4D4D4D + none + none + none + black + none + medium + black + none + medium + black + none + medium + black + none + medium + 10pt + 5pt + 0pt + 0pt + 0pt + 0pt + 0pt + 0pt + + Fixed + #,##0 + + left + normal + normal + 2 + none + middle + normal + 2 + normal + block + auto + auto + auto + false + false + ProjectVersionInfo + + + PVNAME + dataSetRow["PVNAME"] + string + + + PNAME + dataSetRow["PNAME"] + string + + + PTNAME + dataSetRow["PTNAME"] + string + + + RTNAME + dataSetRow["RTNAME"] + string + + + PTYPE + dataSetRow["PTYPE"] + string + + + CREATED + dataSetRow["CREATED"] + date-time + + + DESCRIPTION + dataSetRow["DESCRIPTION"] + string + + + OWNER + dataSetRow["OWNER"] + string + + + desc + dataSetRow["DESCRIPTION"] + string + + + desc + + + 5pt + 5pt + 100% + ProjectDetailsMetaInfo + + + METANAME + dataSetRow["METANAME"] + string + + + TEXTVALUE + dataSetRow["TEXTVALUE"] + string + + + OPTIONNAME + if (dataSetRow["METATYPE"] == "INTEGER") dataSetRow["INTEGERVALUE"]; +else if (dataSetRow["METATYPE"] == "BOOLEAN") { + if (dataSetRow["BOOLEANVALUE"] == "Y") "TRUE"; + else "FALSE"; +} +else if (dataSetRow["METATYPE"] == "DATE") dataSetRow["DATEVALUE"]; +else if(dataSetRow["TEXTVALUE"] != null) dataSetRow["TEXTVALUE"]; +else if (dataSetRow["OPTIONNAME"] != null) dataSetRow["OPTIONNAME"]; +else "<none>"; + string + + + Aggregation + integer + + NewTableGroup1 + + RUNNINGCOUNT + + + Expression + dataSetRow["OPTIONNAME"] + + + + + Column Binding + if (row["Aggregation"] <= 1) dataSetRow["METANAME"]+":"; else ""; + string + + + + + + NewTableGroup1 + none + asc + row["METANAME"] + true + false + auto + auto + auto +
+ + #EDE7DE + solid + 1px + + + +
+
+ + + + 0pt + 0pt + middle + + scroll + 0% + 0% + repeat + sans-serif + 11pt + bold + normal + normal + #7E6F69 + none + none + none + black + none + medium + black + none + medium + black + none + medium + black + none + medium + 0pt + 0pt + 0pt + 0pt + 1pt + 1pt + 1pt + 1pt + left + normal + normal + 2 + none + top + normal + 2 + normal + block + auto + auto + auto + false + false + Column Binding + + + + #FFFFFF + solid + thin + 0pt + middle + + scroll + 0% + 0% + repeat + sans-serif + 11pt + normal + normal + normal + #4D4D4D + none + none + none + black + none + medium + black + none + medium + black + none + medium + black + none + medium + 0pt + 0pt + 0pt + 0pt + 0pt + 0pt + 0pt + 0pt + + Fixed + #,##0 + + left + normal + normal + 2 + none + middle + normal + 2 + normal + block + auto + auto + auto + false + false + OPTIONNAME + + + + +
+
+ + + #808080 + solid + 1px + #808080 + solid + 1px + + + + Bar Chart + Side-by-side + + + + + + + + + + 0.0 + 0.0 + 0.0 + 0.0 + + + 3.0 + 3.0 + 3.0 + 3.0 + + -1 + -1 + -1 + -1 + + + 1 + + 255 + 0 + 0 + 0 + + false + + false + + + + + 0.0 + 0.0 + 0.0 + 0.0 + + + 3.0 + 3.0 + 3.0 + 3.0 + + -1 + -1 + -1 + -1 + + + 1 + + 255 + 0 + 0 + 0 + + false + + true + 5 + 5 + + + + 255 + 254 + 254 + 228 + + + 255 + 255 + 255 + 255 + + 90.0 + + + + 0 + + 255 + 0 + 0 + 0 + + false + + + 0.0 + 0.0 + 0.0 + 0.0 + + + + + + 0.0 + 0.0 + 0.0 + 0.0 + + + 3.0 + 3.0 + 3.0 + 3.0 + + -1 + -1 + -1 + -1 + + + 1 + + 255 + 0 + 0 + 0 + + false + + false + + + + 0 + + 255 + 0 + 0 + 0 + + false + + + 2.0 + 2.0 + 2.0 + 2.0 + + + + + + + + + Vertical + Top_Bottom + + + 1 + + 255 + 0 + 0 + 0 + + true + + Right + Series + + <Caption> + <Value></Value> + <Font> + <Alignment/> + </Font> + </Caption> + <Background xsi:type="attribute:ColorDefinition"> + <Transparency>0</Transparency> + <Red>255</Red> + <Green>255</Green> + <Blue>255</Blue> + </Background> + <Outline> + <Style>Solid</Style> + <Thickness>1</Thickness> + <Color> + <Transparency>255</Transparency> + <Red>0</Red> + <Green>0</Green> + <Blue>0</Blue> + </Color> + <Visible>false</Visible> + </Outline> + <Insets> + <Top>0.0</Top> + <Left>2.0</Left> + <Bottom>0.0</Bottom> + <Right>3.0</Right> + </Insets> + <Visible>false</Visible> + + Above + + + 0.0 + 0.0 + 281.0 + 143.0 + + + 3.0 + 3.0 + 3.0 + 3.0 + + -1 + -1 + -1 + -1 + + + 1 + + 255 + 0 + 0 + 0 + + false + + + 255 + 255 + 255 + 255 + + true + + Two_Dimensional + Points + 10.0 + 0 + + + 'A','B','C','D','E' + + + 6,4,12,8,10 + 0 + + + Series 1 + + + + true + None + + + + + + + + + + 0 + 255 + 255 + 255 + + + + 1 + + 255 + 0 + 0 + 0 + + + + 0.0 + 2.0 + 0.0 + 3.0 + + false + + + Text + + <Caption> + <Value>X-Axis Title</Value> + <Font> + <Size>14.0</Size> + <Bold>true</Bold> + <Alignment> + <horizontalAlignment>Center</horizontalAlignment> + <verticalAlignment>Center</verticalAlignment> + </Alignment> + <Rotation>90.0</Rotation> + </Font> + </Caption> + <Background xsi:type="attribute:ColorDefinition"> + <Transparency>0</Transparency> + <Red>255</Red> + <Green>255</Green> + <Blue>255</Blue> + </Background> + <Outline> + <Style>Solid</Style> + <Thickness>1</Thickness> + <Color> + <Transparency>255</Transparency> + <Red>0</Red> + <Green>0</Green> + <Blue>0</Blue> + </Color> + </Outline> + <Insets> + <Top>0.0</Top> + <Left>2.0</Left> + <Bottom>0.0</Bottom> + <Right>3.0</Right> + </Insets> + <Visible>false</Visible> + + Below + + Linear + + <Caption> + <Value>Y-Axis Title</Value> + <Font> + <Size>14.0</Size> + <Bold>true</Bold> + <Alignment> + <horizontalAlignment>Center</horizontalAlignment> + <verticalAlignment>Center</verticalAlignment> + </Alignment> + <Rotation>0.0</Rotation> + </Font> + </Caption> + <Background xsi:type="attribute:ColorDefinition"> + <Transparency>0</Transparency> + <Red>255</Red> + <Green>255</Green> + <Blue>255</Blue> + </Background> + <Outline> + <Style>Solid</Style> + <Thickness>1</Thickness> + <Color> + <Transparency>255</Transparency> + <Red>0</Red> + <Green>0</Green> + <Blue>0</Blue> + </Color> + </Outline> + <Insets> + <Top>0.0</Top> + <Left>2.0</Left> + <Bottom>0.0</Bottom> + <Right>3.0</Right> + </Insets> + <Visible>false</Visible> + + Left + + + + + + + 255 + 0 + 128 + 255 + + + 255 + 80 + 166 + 218 + + + 255 + 242 + 88 + 106 + + + 255 + 232 + 172 + 57 + + + 255 + 128 + 255 + 128 + + + 255 + 64 + 128 + 128 + + + 255 + 128 + 128 + 192 + + + 255 + 170 + 85 + 85 + + + 255 + 128 + 128 + 0 + + + 255 + 192 + 192 + 192 + + + 255 + 255 + 255 + 128 + + + 255 + 128 + 192 + 128 + + + 255 + 7 + 146 + 94 + + + 255 + 255 + 128 + 192 + + + 255 + 0 + 255 + 255 + + + 255 + 255 + 128 + 128 + + + 255 + 0 + 128 + 192 + + + 255 + 128 + 128 + 192 + + + 255 + 255 + 0 + 255 + + + 255 + 128 + 64 + 64 + + + 255 + 255 + 128 + 64 + + + 255 + 80 + 240 + 120 + + + 255 + 0 + 64 + 128 + + + 255 + 128 + 0 + 64 + + + 255 + 255 + 0 + 128 + + + 255 + 128 + 128 + 64 + + + 255 + 128 + 128 + 128 + + + 255 + 255 + 128 + 255 + + + 255 + 0 + 64 + 0 + + + 255 + 0 + 0 + 0 + + + 255 + 255 + 255 + 255 + + + 255 + 255 + 128 + 0 + + + + true + + + row["COUNTS"] + + Series 1 + + + Orthogonal_Value + + + , + + Outside + false + Rectangle + + + false + 1.0 + Text + Sum + + + Vertical + + + 1 + false + + + Left + + + + 1 + + 255 + 196 + 196 + 196 + + false + + Across + + + 1 + + 255 + 196 + 196 + 196 + + false + + + + + + 1 + + 255 + 225 + 225 + 225 + + false + + Across + + + 1 + + 255 + 225 + 225 + 225 + + false + + + + 5 + + + Min + + 0.0 + + + true + false + + + Text + + <Caption> + <Value>Z-Axis Title</Value> + <Font> + <Size>14.0</Size> + <Bold>true</Bold> + <Alignment> + <horizontalAlignment>Center</horizontalAlignment> + <verticalAlignment>Center</verticalAlignment> + </Alignment> + </Font> + </Caption> + <Background xsi:type="attribute:ColorDefinition"> + <Transparency>0</Transparency> + <Red>255</Red> + <Green>255</Green> + <Blue>255</Blue> + </Background> + <Outline> + <Style>Solid</Style> + <Thickness>1</Thickness> + <Color> + <Transparency>255</Transparency> + <Red>0</Red> + <Green>0</Green> + <Blue>0</Blue> + </Color> + </Outline> + <Insets> + <Top>0.0</Top> + <Left>2.0</Left> + <Bottom>0.0</Bottom> + <Right>3.0</Right> + </Insets> + <Visible>false</Visible> + + Below + + + + + + + 255 + 80 + 166 + 218 + + + 255 + 242 + 88 + 106 + + + 255 + 232 + 172 + 57 + + + 255 + 128 + 255 + 128 + + + 255 + 64 + 128 + 128 + + + 255 + 128 + 128 + 192 + + + 255 + 170 + 85 + 85 + + + 255 + 128 + 128 + 0 + + + 255 + 192 + 192 + 192 + + + 255 + 255 + 255 + 128 + + + 255 + 128 + 192 + 128 + + + 255 + 7 + 146 + 94 + + + 255 + 0 + 128 + 255 + + + 255 + 255 + 128 + 192 + + + 255 + 0 + 255 + 255 + + + 255 + 255 + 128 + 128 + + + 255 + 0 + 128 + 192 + + + 255 + 128 + 128 + 192 + + + 255 + 255 + 0 + 255 + + + 255 + 128 + 64 + 64 + + + 255 + 255 + 128 + 64 + + + 255 + 80 + 240 + 120 + + + 255 + 0 + 64 + 128 + + + 255 + 128 + 0 + 64 + + + 255 + 255 + 0 + 128 + + + 255 + 128 + 128 + 64 + + + 255 + 128 + 128 + 128 + + + 255 + 255 + 128 + 255 + + + 255 + 0 + 64 + 0 + + + 255 + 0 + 0 + 0 + + + 255 + 255 + 255 + 255 + + + 255 + 255 + 128 + 0 + + + + true + + + + + Orthogonal_Value + + , + + Outside + false + + + false + 1.0 + Text + Sum + + + Horizontal + + + 1 + true + + + Below + + + + 1 + + 255 + 196 + 196 + 196 + + false + + Across + + + 1 + + 255 + 196 + 196 + 196 + + true + + + + + + 1 + + 255 + 225 + 225 + 225 + + false + + Across + + + 1 + + 255 + 225 + 225 + 225 + + false + + + + 5 + + + Min + + 0.0 + + + true + false + + + + + + + + 255 + 0 + 128 + 255 + + + 255 + 80 + 166 + 218 + + + 255 + 242 + 88 + 106 + + + 255 + 232 + 172 + 57 + + + 255 + 128 + 255 + 128 + + + 255 + 64 + 128 + 128 + + + 255 + 128 + 128 + 192 + + + 255 + 170 + 85 + 85 + + + 255 + 128 + 128 + 0 + + + 255 + 192 + 192 + 192 + + + 255 + 255 + 255 + 128 + + + 255 + 128 + 192 + 128 + + + 255 + 7 + 146 + 94 + + + 255 + 255 + 128 + 192 + + + 255 + 0 + 255 + 255 + + + 255 + 255 + 128 + 128 + + + 255 + 0 + 128 + 192 + + + 255 + 128 + 128 + 192 + + + 255 + 255 + 0 + 255 + + + 255 + 128 + 64 + 64 + + + 255 + 255 + 128 + 64 + + + 255 + 80 + 240 + 120 + + + 255 + 0 + 64 + 128 + + + 255 + 128 + 0 + 64 + + + 255 + 255 + 0 + 128 + + + 255 + 128 + 128 + 64 + + + 255 + 128 + 128 + 128 + + + 255 + 255 + 128 + 255 + + + 255 + 0 + 64 + 0 + + + 255 + 0 + 0 + 0 + + + 255 + 255 + 255 + 255 + + + 255 + 255 + 128 + 0 + + + + true + + + row["ENGINE"] + + + + + Orthogonal_Value + + , + + Outside + false + + + true + 1.0 + Text + Sum + + + Horizontal + + + 1 + true + + + Below + + + + 1 + + 255 + 196 + 196 + 196 + + false + + Across + + + 1 + + 255 + 196 + 196 + 196 + + true + + + + + + 1 + + 255 + 225 + 225 + 225 + + false + + Across + + + 1 + + 255 + 225 + 225 + 225 + + false + + + + 5 + + + Min + + 0.0 + + + true + true + false + + Horizontal + + + -20.0 + 45.0 + 0.0 + None + + + +]]> + SVG + 1pt + 1.9861111111111112in + 3.9027777777777777in + Analysis_summary + + + all + rowsReturned = Total.count(); rowsReturned <1; + + + + + COUNTS + dataSetRow["COUNTS"] + integer + + + ENGINE + dataSetRow["ENGINE"] + string + + + + + +
+ + + + #808080 + solid + 1px + #808080 + solid + 1px + + scroll + 0% + 0% + repeat + sans-serif + 14pt + normal + normal + normal + #7E6F69 + none + none + none + #808080 + solid + 1px + black + none + medium + black + none + medium + black + none + medium + 5pt + 5pt + 0pt + 5pt + 1pt + 1pt + 1pt + 1pt + left + normal + normal + 2 + none + top + normal + 2 + normal + block + auto + auto + auto + false + false + ProjectVersionInfo + + + PVNAME + dataSetRow["PVNAME"] + string + + + PNAME + dataSetRow["PNAME"] + string + + + PTNAME + dataSetRow["PTNAME"] + string + + + RTNAME + dataSetRow["RTNAME"] + string + + + PTYPE + dataSetRow["PTYPE"] + string + + + CREATED + dataSetRow["CREATED"] + date-time + + + name + "Dependencies for " +dataSetRow["PNAME"] + " - " + dataSetRow["PVNAME"] + string + + + name + + + hyperlink + params["serverURL"].value + "/flex/index.jsp?projectName="+row["PNAME"]+"&projectVersionName="+row["PVNAME"] + _blank + + + + + 10pt + 5pt + 10pt + 0pt + 0.8472222222222222in + 3.75in + dependency_info + + + all + rowsReturned = Total.count(); rowsReturned <1; + + + + + TEMPLATENAME + dataSetRow["TEMPLATENAME"] + string + + + ID + dataSetRow["ID"] + decimal + + + PROJECTNAME + dataSetRow["PROJECTNAME"] + string + + + VERSIONNAME + dataSetRow["VERSIONNAME"] + string + + + CREATIONDATE + dataSetRow["CREATIONDATE"] + date-time + + + pv + dataSetRow["PROJECTNAME"] + " - " +dataSetRow["VERSIONNAME"] + string + + + + middle + 3.75in + +
+ + 12pt + #FFFFFF + solid + 1px + + scroll + #B9AEAA + 0% + 0% + repeat + serif + medium + normal + normal + normal + black + none + none + none + 0pt + 0pt + 0pt + 0pt + 1pt + 1pt + 1pt + 1pt + 0em + normal + normal + 2 + none + middle + normal + 2 + normal + block + auto + auto + auto + false + false + + + +
+ + + #EDE7DE + + scroll + 0% + 0% + repeat + serif + medium + normal + normal + normal + black + none + none + none + black + none + medium + black + none + medium + #FFFFFF + solid + thin + black + none + medium + 0pt + 0pt + 0pt + 0pt + 1pt + 1pt + 1pt + 1pt + 0em + normal + normal + 2 + none + normal + 2 + normal + block + auto + auto + auto + false + false + + scroll + 0% + 0% + repeat + sans-serif + 11pt + normal + normal + normal + #7E6F69 + none + none + none + black + none + medium + black + none + medium + black + none + medium + black + none + medium + 0pt + 0pt + 0pt + 0pt + 1pt + 1pt + 1pt + 1pt + left + normal + normal + 2 + none + middle + normal + 2 + normal + block + auto + auto + auto + false + false + pv + + + bookmark-link + row["PROJECTNAME"] + " - " +row["VERSIONNAME"] + + + + + + +
+ +
+
+
+ + #808080 + solid + 1px + #808080 + solid + 1px + #808080 + solid + 1px + #808080 + solid + 1px + 0pt + Simple MasterPage + always + 100% + + + + #3B6E8F + #808080 + solid + 1px + + 2 + 1 + + + + + + 1 + 1 + + + BasicScanInformation + + + ID + dataSetRow["ID"] + decimal + + + CERTIFICATION + var cert = dataSetRow["CERTIFICATION"]; if("VALID".equals(cert)) "Valid"; else if("NOT_PRESENT".equals(cert)) "Not Available"; else "Invalid" + string + + + SCABUILDID + dataSetRow["SCABUILDID"] + string + + + HOSTNAME + dataSetRow["HOSTNAME"] + string + + + STARTDATE + new Date(dataSetRow["STARTDATE"]) + date + + + SCAFILES + var files = dataSetRow["SCAFILES"]; if(!"SCA".equals(dataSetRow["ENGINETYPE"])) "Unknown"; else files; + string + + + SCALOC + var loc = dataSetRow["SCALOC"]; if(!"SCA".equals(dataSetRow["ENGINETYPE"]) ) "Unknown"; loc; + integer + + + ENGINETYPE + dataSetRow["ENGINETYPE"] + string + + + ENGINEVERSION + dataSetRow["ENGINEVERSION"] + string + + + + NewListGroup1 + none + asc + row["ENGINETYPE"] + true + false + auto + auto + auto +
+ + verticalGroupHeader + scroll + 0% + 0% + repeat + sans-serif + 12pt + bold + normal + normal + #4D4D4D + none + none + none + black + none + medium + black + none + medium + black + none + medium + black + none + medium + 5pt + 0pt + 0pt + 1pt + 1pt + 1pt + 1pt + left + normal + normal + 2 + none + middle + normal + 2 + normal + block + auto + auto + auto + false + false + ENGINETYPE + +
+
+ + + alignLeft + 0pt + 5pt + 5pt + 1.0138888888888888in + 100% + + 1.4027777777777777in + + + 2.6527777777777777in + + + + subsectionHeaderNoUL + 11pt + 3pt + 3pt + + + + middle + + scroll + 0% + 0% + repeat + sans-serif + 11pt + normal + normal + normal + #4D4D4D + none + none + none + black + none + medium + black + none + medium + black + none + medium + black + none + medium + 0pt + 0pt + 0pt + 0pt + 0pt + 0pt + 0pt + 0pt + + Fixed + #,##0 + + left + normal + normal + 2 + none + middle + normal + 2 + normal + block + auto + auto + auto + false + false + ENGINEVERSION + + + + + + subsectionHeaderNoUL + 11pt + 3pt + 3pt + middle + + + + middle + + scroll + 0% + 0% + repeat + sans-serif + 11pt + normal + normal + normal + #4D4D4D + none + none + none + black + none + medium + black + none + medium + black + none + medium + black + none + medium + 0pt + 0pt + 0pt + 0pt + 0pt + 0pt + 0pt + 0pt + + Long Date + Long Date + + + Fixed + #,##0 + + left + normal + normal + 2 + none + middle + normal + 2 + normal + block + auto + auto + auto + false + false + STARTDATE + + + + + + subsectionHeaderNoUL + 11pt + 3pt + 3pt + middle + + + + middle + + scroll + 0% + 0% + repeat + sans-serif + 11pt + normal + normal + normal + #4D4D4D + none + none + none + black + none + medium + black + none + medium + black + none + medium + black + none + medium + 0pt + 0pt + 0pt + 0pt + 0pt + 0pt + 0pt + 0pt + + Fixed + #,##0 + + left + normal + normal + 2 + none + middle + normal + 2 + normal + block + auto + auto + auto + false + false + HOSTNAME + + + + + + subsectionHeaderNoUL + 11pt + 3pt + 3pt + middle + + + + middle + + scroll + 0% + 0% + repeat + sans-serif + 11pt + normal + normal + normal + #4D4D4D + none + none + none + black + none + medium + black + none + medium + black + none + medium + black + none + medium + 0pt + 0pt + 0pt + 0pt + 0pt + 0pt + 0pt + 0pt + + Fixed + #,##0 + + left + normal + normal + 2 + none + middle + normal + 2 + normal + block + auto + auto + auto + false + false + CERTIFICATION + + + + + + + all + !"SCA".equals(row["ENGINETYPE"]) + + + + subsectionHeaderNoUL + 11pt + 3pt + 3pt + middle + + + + middle + + scroll + 0% + 0% + repeat + sans-serif + 11pt + normal + normal + normal + #4D4D4D + none + none + none + black + none + medium + black + none + medium + black + none + medium + black + none + medium + 0pt + 0pt + 0pt + 0pt + 0pt + 0pt + 0pt + 0pt + + Fixed + #,##0 + + left + normal + normal + 2 + none + middle + normal + 2 + normal + block + auto + auto + auto + false + false + + + is-null + 10pt + #7E6F69 + row["SCALOC"] + + + SCALOC + + + + + + + all + !"SCA".equals(row["ENGINETYPE"]) + + + + subsectionHeaderNoUL + 11pt + 3pt + 3pt + middle + + + + middle + + scroll + 0% + 0% + repeat + sans-serif + 11pt + normal + normal + normal + #4D4D4D + none + none + none + black + none + medium + black + none + medium + black + none + medium + black + none + medium + 0pt + 0pt + 0pt + 0pt + 0pt + 0pt + 0pt + 0pt + + Fixed + #,##0 + + left + normal + normal + 2 + none + middle + normal + 2 + normal + block + auto + auto + auto + false + false + + + is-null + 10pt + #7E6F69 + row["SCAFILES"] + + + SCAFILES + + + + + +
+
+ + #808080 + solid + 1px + + + 100% + ActiveUsers + + + USERNAME + dataSetRow["USERNAME"] + string + + + EMAIL + dataSetRow["EMAIL"] + string + + + Column Binding + dataSetRow["USERNAME"] + string + + + Column Binding_1 + dataSetRow["EMAIL"] + string + + + + + + + + 5pt + 100% + + 1.3333333333333333in + + + + + + scroll + 0% + 0% + repeat + sans-serif + 11pt + normal + normal + normal + #4D4D4D + none + none + none + black + none + medium + black + none + medium + black + none + medium + black + none + medium + 0pt + 0pt + 0pt + 0pt + 0pt + 0pt + 0pt + 0pt + + Fixed + #,##0 + + left + normal + normal + 2 + none + middle + normal + 2 + normal + block + auto + auto + auto + false + false + row["OWNER"] + Column Binding + + + + + scroll + 0% + 0% + repeat + sans-serif + 11pt + normal + normal + normal + #4D4D4D + none + none + none + black + none + medium + black + none + medium + black + none + medium + black + none + medium + 0pt + 0pt + 0pt + 0pt + 0pt + 0pt + 0pt + 0pt + + Fixed + #,##0 + + left + normal + normal + 2 + none + middle + normal + 2 + normal + block + auto + auto + auto + false + false + Column Binding_1 + + + + + + + +
+
+
+ + #808080 + solid + 1px + + 2 + 1 + #808080 + solid + 1px + + + + Line Chart + Overlay + + + + 0.0 + 0.0 + 0.0 + 0.0 + + + 3.0 + 3.0 + 3.0 + 3.0 + + -1 + -1 + -1 + -1 + + + 1 + + 255 + 0 + 0 + 0 + + false + + false + + + + + 0.0 + 0.0 + 0.0 + 0.0 + + + 3.0 + 3.0 + 3.0 + 3.0 + + -1 + -1 + -1 + -1 + + + 1 + + 255 + 0 + 0 + 0 + + false + + true + 5 + 5 + + + + 255 + 254 + 254 + 228 + + + 255 + 254 + 254 + 254 + + 90.0 + + + + 0 + + 255 + 0 + 0 + 0 + + false + + + 0.0 + 0.0 + 0.0 + 0.0 + + + + + + 0.0 + 0.0 + 0.0 + 0.0 + + + 3.0 + 3.0 + 3.0 + 3.0 + + -1 + -1 + -1 + -1 + + + 1 + + 255 + 0 + 0 + 0 + + false + + false + + + + 0 + + 255 + 0 + 0 + 0 + + false + + + 2.0 + 2.0 + 2.0 + 2.0 + + + + + + + + + Vertical + Top_Bottom + + + 1 + + 255 + 0 + 0 + 0 + + true + + Right + Series + + <Caption> + <Value></Value> + <Font> + <Alignment/> + </Font> + </Caption> + <Background xsi:type="attribute:ColorDefinition"> + <Transparency>0</Transparency> + <Red>255</Red> + <Green>255</Green> + <Blue>255</Blue> + </Background> + <Outline> + <Style>Solid</Style> + <Thickness>1</Thickness> + <Color> + <Transparency>255</Transparency> + <Red>0</Red> + <Green>0</Green> + <Blue>0</Blue> + </Color> + <Visible>false</Visible> + </Outline> + <Insets> + <Top>0.0</Top> + <Left>2.0</Left> + <Bottom>0.0</Bottom> + <Right>3.0</Right> + </Insets> + <Visible>false</Visible> + + Above + + + 0.0 + 0.0 + 564.0 + 265.0 + + + 3.0 + 3.0 + 3.0 + 3.0 + + -1 + -1 + -1 + -1 + + + 1 + + 255 + 0 + 0 + 0 + + false + + + 255 + 255 + 255 + 255 + + true + + Two_Dimensional + Points + 10.0 + + + 'A','B','C','D','E' + + + 6,4,12,8,10 + 0 + + + + + + + + + + + + 0 + 255 + 255 + 255 + + + + 1 + + 255 + 0 + 0 + 0 + + + + 0.0 + 2.0 + 0.0 + 3.0 + + false + + + Text + + <Caption> + <Value>X-Axis Title</Value> + <Font> + <Size>14.0</Size> + <Bold>true</Bold> + <Alignment> + <horizontalAlignment>Center</horizontalAlignment> + <verticalAlignment>Center</verticalAlignment> + </Alignment> + <Rotation>0.0</Rotation> + </Font> + </Caption> + <Background xsi:type="attribute:ColorDefinition"> + <Transparency>0</Transparency> + <Red>255</Red> + <Green>255</Green> + <Blue>255</Blue> + </Background> + <Outline> + <Style>Solid</Style> + <Thickness>1</Thickness> + <Color> + <Transparency>255</Transparency> + <Red>0</Red> + <Green>0</Green> + <Blue>0</Blue> + </Color> + </Outline> + <Insets> + <Top>0.0</Top> + <Left>2.0</Left> + <Bottom>0.0</Bottom> + <Right>3.0</Right> + </Insets> + <Visible>false</Visible> + + Below + + Linear + + <Caption> + <Value>Events</Value> + <Font> + <Size>10.0</Size> + <Alignment> + <horizontalAlignment>Center</horizontalAlignment> + <verticalAlignment>Center</verticalAlignment> + </Alignment> + <Rotation>90.0</Rotation> + </Font> + <Color> + <Transparency>255</Transparency> + <Red>51</Red> + <Green>51</Green> + <Blue>51</Blue> + </Color> + </Caption> + <Background xsi:type="attribute:ColorDefinition"> + <Transparency>0</Transparency> + <Red>255</Red> + <Green>255</Green> + <Blue>255</Blue> + </Background> + <Outline> + <Style>Solid</Style> + <Thickness>1</Thickness> + <Color> + <Transparency>255</Transparency> + <Red>0</Red> + <Green>0</Green> + <Blue>0</Blue> + </Color> + </Outline> + <Insets> + <Top>0.0</Top> + <Left>2.0</Left> + <Bottom>0.0</Bottom> + <Right>3.0</Right> + </Insets> + <Visible>true</Visible> + + Left + + + + + + + 255 + 80 + 166 + 218 + + + 255 + 242 + 88 + 106 + + + 255 + 232 + 172 + 57 + + + 255 + 128 + 255 + 128 + + + 255 + 64 + 128 + 128 + + + 255 + 128 + 128 + 192 + + + 255 + 170 + 85 + 85 + + + 255 + 128 + 128 + 0 + + + 255 + 192 + 192 + 192 + + + 255 + 255 + 255 + 128 + + + 255 + 128 + 192 + 128 + + + 255 + 7 + 146 + 94 + + + 255 + 0 + 128 + 255 + + + 255 + 255 + 128 + 192 + + + 255 + 0 + 255 + 255 + + + 255 + 255 + 128 + 128 + + + 255 + 0 + 128 + 192 + + + 255 + 128 + 128 + 192 + + + 255 + 255 + 0 + 255 + + + 255 + 128 + 64 + 64 + + + 255 + 255 + 128 + 64 + + + 255 + 80 + 240 + 120 + + + 255 + 0 + 64 + 128 + + + 255 + 128 + 0 + 64 + + + 255 + 255 + 0 + 128 + + + 255 + 128 + 128 + 64 + + + 255 + 128 + 128 + 128 + + + 255 + 255 + 128 + 255 + + + 255 + 0 + 64 + 0 + + + 255 + 0 + 0 + 0 + + + 255 + 255 + 255 + 255 + + + 255 + 255 + 128 + 0 + + + + true + + + row["Fmat"] + + Series 1 + + + Orthogonal_Value + + + Events, + + Above + false + + Box + 2 + true + + + + 1 + + 255 + 0 + 0 + 0 + + true + + true + + + false + 1.0 + Text + Sum + + + Vertical + + + 1 + + 255 + 128 + 128 + 128 + + false + + + Left + + + + 1 + + 255 + 196 + 196 + 196 + + false + + Across + + + 1 + + 255 + 196 + 196 + 196 + + true + + + + + + 1 + + 255 + 225 + 225 + 225 + + false + + Across + + + 1 + + 255 + 225 + 225 + 225 + + false + + + + 5 + + + Min + + 0.0 + + + true + false + + + + + + + + 255 + 80 + 166 + 218 + + + 255 + 242 + 88 + 106 + + + 255 + 232 + 172 + 57 + + + 255 + 128 + 255 + 128 + + + 255 + 64 + 128 + 128 + + + 255 + 128 + 128 + 192 + + + 255 + 170 + 85 + 85 + + + 255 + 128 + 128 + 0 + + + 255 + 192 + 192 + 192 + + + 255 + 255 + 255 + 128 + + + 255 + 128 + 192 + 128 + + + 255 + 7 + 146 + 94 + + + 255 + 0 + 128 + 255 + + + 255 + 255 + 128 + 192 + + + 255 + 0 + 255 + 255 + + + 255 + 255 + 128 + 128 + + + 255 + 0 + 128 + 192 + + + 255 + 128 + 128 + 192 + + + 255 + 255 + 0 + 255 + + + 255 + 128 + 64 + 64 + + + 255 + 255 + 128 + 64 + + + 255 + 80 + 240 + 120 + + + 255 + 0 + 64 + 128 + + + 255 + 128 + 0 + 64 + + + 255 + 255 + 0 + 128 + + + 255 + 128 + 128 + 64 + + + 255 + 128 + 128 + 128 + + + 255 + 255 + 128 + 255 + + + 255 + 0 + 64 + 0 + + + 255 + 0 + 0 + 0 + + + 255 + 255 + 255 + 255 + + + 255 + 255 + 128 + 0 + + + + true + + + row["Fmat"] + + + + + Orthogonal_Value + + , + + Outside + false + + + true + Months + 1.0 + Text + Count + + Ascending + + if (row["DA"] < 9) + + row["YE"] + "-0" + (row["DA"] + 1); + +else + + row["YE"] + "-" + (row["DA"] + 1); + + + Horizontal + + + 1 + + 255 + 128 + 128 + 128 + + true + + + Below + + + + 1 + + 255 + 196 + 196 + 196 + + false + + Across + + + 1 + + 255 + 196 + 196 + 196 + + true + + + + + + 1 + + 255 + 225 + 225 + 225 + + false + + Across + + + 1 + + 255 + 225 + 225 + 225 + + false + + + + 5 + + + Min + + 0.0 + + + true + true + false + + Vertical + 50.0 + + +]]> + SVG + 1pt + 3.6805555555555554in + 7.833333333333333in + ProjectActivity + + + YE + BirtDateTime.year(dataSetRow["EVENTDATE"]) + integer + + + DA + BirtDateTime.month(dataSetRow["EVENTDATE"]) + integer + + + Fmat + dataSetRow["Fmat"] + string + + + EVENTDATE + dataSetRow["EVENTDATE"] + date-time + + + + + + +
+ + #808080 + solid + 1px + #808080 + solid + 1px + #808080 + solid + 1px + #808080 + solid + 1px + 0pt + Simple MasterPage + always + 100% + + + + #3B6E8F + #808080 + solid + 1px + + 2 + 1 + + + + + + 2 + 1 + + + + 0pt + 5pt + 10pt + 0pt + 7.75in + AllKPIForProject + + + NAME + dataSetRow["NAME"] + string + + + FORMAT + dataSetRow["FORMAT"] + string + + + Column Binding + dataSetRow["NAME"] + string + + + Column Binding_1 + c + if(dataSetRow["FORMAT"].equals("integer")) BirtMath.round(dataSetRow["CURRENT_VALUE"],2); else Math.floor(dataSetRow["CURRENT_VALUE"]) + " %"; + string + + + diff + var diff = dataSetRow["CURRENT_VALUE"] - dataSetRow["START_VALUE"]; var prepend = ""; if(diff > 0 ) prepend = "+" ; if(diff == 0 ) '-'; else if(dataSetRow["FORMAT"].equals("integer")) prepend + BirtMath.round(diff,2); else prepend + Math.floor(diff) + " %"; + string + + + CURRENT_VALUE + dataSetRow["CURRENT_VALUE"] + float + + + START_VALUE + dataSetRow["START_VALUE"] + float + + + Column Binding_2 + var base = params["fortifyCore"].value + "/flex/assets/"; if((row["CURRENT_VALUE"] - row["START_VALUE"]) > 0) base + "trend_up.jpg"; else if ((row["CURRENT_VALUE"] - row["START_VALUE"]) == 0) base + "trend_flat.jpg"; else base+"trend_down.jpg"; + string + + + 35 + + middle + 5.75in + + + alignCenter + 1in + + + alignCenter + 0.8in + + + alignCenter + 0.2in + +
+ + verticalGroupHeaderWithBG + 12pt + + scroll + #B9AEAA + 0% + 0% + repeat + serif + medium + normal + normal + normal + black + none + none + none + 0pt + 0pt + 0pt + 0pt + 1pt + 1pt + 1pt + 1pt + 0em + normal + normal + 2 + none + middle + normal + 2 + normal + block + auto + auto + auto + false + false + + + + scroll + #758894 + 0% + 0% + repeat + serif + medium + normal + normal + normal + black + none + none + none + #FFFFFF + solid + 1px + 0pt + 0pt + 0pt + 0pt + 1pt + 1pt + 1pt + 1pt + 0em + normal + normal + 2 + none + normal + 2 + normal + block + auto + auto + auto + false + false + + + + 2 + 1 + scroll + #758894 + 0% + 0% + repeat + serif + medium + normal + normal + normal + black + none + none + none + #FFFFFF + solid + 1px + 0pt + 0pt + 0pt + 0pt + 1pt + 1pt + 1pt + 1pt + 0em + normal + normal + 2 + none + normal + 2 + normal + block + auto + auto + auto + false + false + + + +
+ + + grayWithWhiteBorder + #EDE7DE + + scroll + 0% + 0% + repeat + serif + medium + normal + normal + normal + black + none + none + none + 0pt + 0pt + 0pt + 0pt + 1pt + 1pt + 1pt + 1pt + 0em + normal + normal + 2 + none + normal + 2 + normal + block + auto + auto + auto + false + false + + scroll + 0% + 0% + repeat + sans-serif + 11pt + normal + normal + normal + #7E6F69 + none + none + none + black + none + medium + black + none + medium + black + none + medium + black + none + medium + 0pt + 0pt + 0pt + 0pt + 1pt + 1pt + 1pt + 1pt + left + normal + normal + 2 + none + middle + normal + 2 + normal + block + auto + auto + auto + false + false + Column Binding + + + + #FFFFFF + solid + thin + + cellpadding + scroll + 0% + 0% + repeat + sans-serif + 10pt + normal + normal + normal + #7E6F69 + none + none + none + black + none + medium + black + none + medium + black + none + medium + black + none + medium + 0pt + 0pt + 0pt + 0pt + 0pt + 0pt + 0pt + 0pt + + Fixed + #,##0 + + center + normal + normal + 2 + none + middle + normal + 2 + normal + block + auto + auto + auto + false + false + + + gt + bold + row["CURRENT_VALUE"] + + 0 + + + + Column Binding_1 + + + + #FFFFFF + solid + thin + + scroll + 0% + 0% + repeat + sans-serif + 10pt + normal + normal + normal + #7E6F69 + none + none + none + black + none + medium + black + none + medium + black + none + medium + black + none + medium + 0pt + 0pt + 0pt + 0pt + 0pt + 0pt + 0pt + 0pt + + Fixed + #,##0 + + right + normal + normal + 2 + none + middle + normal + 2 + normal + block + auto + auto + auto + false + false + + + is-true + 10pt + #7E6F69 + row["CURRENT_VALUE"] == row["START_VALUE"] + + + diff + + + + + +
+
+
+
+ + #808080 + solid + 1px + #808080 + solid + 1px + #808080 + solid + 1px + #808080 + solid + 1px + Simple MasterPage + always + 100% + + + + #0B6E23 + + 2 + 1 + #808080 + solid + 1px + #808080 + solid + 1px + + + + + 100% + + 2 + 1 + #808080 + solid + 1px + #808080 + solid + 1px + + 0pt + 100% + AttributeInfo + + + NAME + dataSetRow["NAME"] + string + + + GUID + dataSetRow["GUID"] + string + + + Column Binding + "Issues by " + dataSetRow["NAME"] + string + + + + + + 0pt + 0pt + 0pt + 0pt + + scroll + 0% + 0% + repeat + sans-serif + 14pt + normal + normal + normal + #7E6F69 + none + none + none + #808080 + solid + 1px + black + none + medium + black + none + medium + black + none + medium + 5pt + 5pt + 0pt + 5pt + 1pt + 1pt + 1pt + 1pt + left + normal + normal + 2 + none + top + normal + 2 + normal + block + auto + auto + auto + false + false + Column Binding + + + hyperlink + params["serverURL"].value + "/html/ssc/version/" + params["projectversionid"].value + "/fix" + _blank + + + + + scroll + 0% + 0% + repeat + sans-serif + 10pt + normal + normal + normal + #7E6F69 + none + none + none + black + none + medium + black + none + medium + black + none + medium + black + none + medium + 5pt + 5pt + 5pt + 5pt + 1pt + 1pt + 1pt + 10pt + left + 0em + normal + normal + 2 + none + normal + 2 + normal + block + auto + auto + auto + false + false + + + all + rowsReturned > 0; + + + "Issues by the value an auditor has set for the custom tag '"+row["NAME"]+".' Once this tag has been set the issue is considered audited." + html + + + 0pt + 5pt + 10pt + 5pt + 0.8472222222222222in + 7.75in + IssueCount_PrimaryTag + + + param_2 + + row["GUID"] + + + + param_5 + + row["GUID"] + + + + + + HIGH_COUNT + dataSetRow["HIGH_COUNT"] + integer + + + MED_COUNT + dataSetRow["MED_COUNT"] + integer + + + LOW_COUNT + dataSetRow["LOW_COUNT"] + integer + + + G_ROUP + dataSetRow["G_ROUP"] + string + + + LINDEX + dataSetRow["LINDEX"] + integer + + + Column Binding + dataSetRow["G_ROUP"] + string + + + Column Binding_1 + hc + dataSetRow["HIGH_COUNT"] + string + + + Column Binding_2 + cc + dataSetRow["CRIT_COUNT"] + string + + + Column Binding_3 + mc + dataSetRow["MED_COUNT"] + string + + + lc + dataSetRow["LOW_COUNT"] + string + + + cagg + integer + SUM + + + Expression + dataSetRow["CRIT_COUNT"] + + + + + hagg + hagg + integer + SUM + + + Expression + dataSetRow["HIGH_COUNT"] + + + + + magg + integer + SUM + + + Expression + dataSetRow["MED_COUNT"] + + + + + lagg + integer + SUM + + + Expression + dataSetRow["LOW_COUNT"] + + + + + critical + dataSetRow["CRIT_COUNT"] + integer + + + high + dataSetRow["HIGH_COUNT"] + integer + + + med + dataSetRow["MED_COUNT"] + integer + + + low + dataSetRow["LOW_COUNT"] + integer + + + + middle + 3.75in + + + alignCenter + 1in + + + alignCenter + 1in + + + alignCenter + 1in + + + alignCenter + 1in + +
+ + verticalGroupHeaderWithBG + 12pt + #FFFFFF + solid + 1px + + scroll + #B9AEAA + 0% + 0% + repeat + serif + medium + normal + normal + normal + black + none + none + none + 0pt + 0pt + 0pt + 0pt + 1pt + 1pt + 1pt + 1pt + 0em + normal + normal + 2 + none + middle + normal + 2 + normal + block + auto + auto + auto + false + false + + + + 4 + 1 + scroll + #758894 + 0% + 0% + repeat + serif + medium + normal + normal + normal + black + none + none + none + #FFFFFF + solid + 1px + 0pt + 0pt + 0pt + 0pt + 1pt + 1pt + 1pt + 1pt + 0em + normal + normal + 2 + none + normal + 2 + normal + block + auto + auto + auto + false + false + + + + + verticalGroupHeaderWithBG + #E4E4E4 + 12pt + #808080 + solid + 1px + + scroll + 0% + 0% + repeat + serif + medium + normal + normal + normal + black + none + none + none + #FFFFFF + solid + 1px + 0pt + 0pt + 0pt + 0pt + 1pt + 1pt + 1pt + 1pt + 0em + normal + normal + 2 + none + middle + normal + 2 + normal + block + auto + auto + auto + false + false + + + scroll + red + 0% + 0% + repeat + serif + medium + normal + normal + normal + black + none + none + none + #FFFFFF + solid + 1px + 0pt + 0pt + 0pt + 0pt + 1pt + 1pt + 1pt + 1pt + 0em + normal + normal + 2 + none + normal + 2 + normal + block + auto + auto + auto + false + false + + + + MedHighlight + scroll + #FF8C00 + 0% + 0% + repeat + serif + medium + normal + normal + normal + black + none + none + none + #FFFFFF + solid + 1px + 0pt + 0pt + 0pt + 0pt + 1pt + 1pt + 1pt + 1pt + 0em + normal + normal + 2 + none + normal + 2 + normal + block + auto + auto + auto + false + false + + + + scroll + #FFC800 + 0% + 0% + repeat + serif + medium + normal + normal + normal + black + none + none + none + #FFFFFF + solid + 1px + 0pt + 0pt + 0pt + 0pt + 1pt + 1pt + 1pt + 1pt + 0em + normal + normal + 2 + none + normal + 2 + normal + block + auto + auto + auto + false + false + + + + scroll + #FFFF96 + 0% + 0% + repeat + serif + medium + normal + normal + normal + black + none + none + none + #FFFFFF + solid + 1px + 0pt + 0pt + 0pt + 0pt + 1pt + 1pt + 1pt + 1pt + 0em + normal + normal + 2 + none + normal + 2 + normal + block + auto + auto + auto + false + false + + + +
+ + + grayWithWhiteBorder + #EDE7DE + + scroll + 0% + 0% + repeat + serif + medium + normal + normal + normal + black + none + none + none + black + none + medium + black + none + medium + #FFFFFF + solid + thin + black + none + medium + 0pt + 0pt + 0pt + 0pt + 1pt + 1pt + 1pt + 1pt + 0em + normal + normal + 2 + none + normal + 2 + normal + block + auto + auto + auto + false + false + + cellpadding + scroll + 0% + 0% + repeat + sans-serif + 11pt + normal + normal + normal + #7E6F69 + none + none + none + black + none + medium + black + none + medium + black + none + medium + black + none + medium + 0pt + 0pt + 0pt + 0pt + 1pt + 1pt + 1pt + 1pt + left + normal + normal + 2 + none + middle + normal + 2 + normal + block + auto + auto + auto + false + false + Column Binding + + + + #FFFFFF + solid + thin + + + gt + #FF0000 + row["critical"] + + 0 + + + + + scroll + 0% + 0% + repeat + sans-serif + 11pt + normal + normal + normal + #4D4D4D + none + none + none + black + none + medium + black + none + medium + black + none + medium + black + none + medium + 0pt + 0pt + 0pt + 0pt + 0pt + 0pt + 0pt + 0pt + + Fixed + #,##0 + + center + normal + normal + 2 + none + middle + normal + 2 + normal + block + auto + auto + auto + false + false + + + eq + 10pt + #7E6F69 + row["critical"] + + 0 + + + + Column Binding_2 + + + + #FFFFFF + solid + thin + + + gt + #FF8C00 + row["high"] + + 0 + + + + + scroll + 0% + 0% + repeat + sans-serif + 11pt + normal + normal + normal + #4D4D4D + none + none + none + black + none + medium + black + none + medium + black + none + medium + black + none + medium + 0pt + 0pt + 0pt + 0pt + 0pt + 0pt + 0pt + 0pt + + Fixed + #,##0 + + center + normal + normal + 2 + none + middle + normal + 2 + normal + block + auto + auto + auto + false + false + + + eq + 10pt + #7E6F69 + row["high"] + + 0 + + + + Column Binding_1 + + + + #FFFFFF + solid + thin + + + gt + #FFC800 + row["med"] + + 0 + + + + + scroll + 0% + 0% + repeat + sans-serif + 11pt + normal + normal + normal + #4D4D4D + none + none + none + black + none + medium + black + none + medium + black + none + medium + black + none + medium + 0pt + 0pt + 0pt + 0pt + 0pt + 0pt + 0pt + 0pt + + Fixed + #,##0 + + center + normal + normal + 2 + none + middle + normal + 2 + normal + block + auto + auto + auto + false + false + + + eq + 10pt + #7E6F69 + row["med"] + + 0 + + + + Column Binding_3 + + + + #FFFFFF + solid + thin + + + gt + #FFFF96 + row["low"] + + 0 + + + + + scroll + 0% + 0% + repeat + sans-serif + 11pt + normal + normal + normal + #4D4D4D + none + none + none + black + none + medium + black + none + medium + black + none + medium + black + none + medium + 0pt + 0pt + 0pt + 0pt + 0pt + 0pt + 0pt + 0pt + + Fixed + #,##0 + + center + normal + normal + 2 + none + middle + normal + 2 + normal + block + auto + auto + auto + false + false + + + eq + 10pt + #7E6F69 + row["low"] + + 0 + + + + lc + + + + +
+ + #808080 + solid + 1px + + + + + + scroll + 0% + 0% + repeat + sans-serif + 11pt + bold + normal + normal + #4D4D4D + none + none + none + black + none + medium + black + none + medium + black + none + medium + black + none + medium + 0pt + 0pt + 0pt + 0pt + 0pt + 0pt + 0pt + 0pt + + Fixed + #,##0 + + center + normal + normal + 2 + none + middle + normal + 2 + normal + block + auto + auto + auto + false + false + cagg + + + + + scroll + 0% + 0% + repeat + sans-serif + 11pt + bold + normal + normal + #4D4D4D + none + none + none + black + none + medium + black + none + medium + black + none + medium + black + none + medium + 0pt + 0pt + 0pt + 0pt + 0pt + 0pt + 0pt + 0pt + + Fixed + #,##0 + + center + normal + normal + 2 + none + middle + normal + 2 + normal + block + auto + auto + auto + false + false + hagg + + + + + scroll + 0% + 0% + repeat + sans-serif + 11pt + bold + normal + normal + #4D4D4D + none + none + none + black + none + medium + black + none + medium + black + none + medium + black + none + medium + 0pt + 0pt + 0pt + 0pt + 0pt + 0pt + 0pt + 0pt + + Fixed + #,##0 + + center + normal + normal + 2 + none + middle + normal + 2 + normal + block + auto + auto + auto + false + false + magg + + + + + scroll + 0% + 0% + repeat + sans-serif + 11pt + bold + normal + normal + #4D4D4D + none + none + none + black + none + medium + black + none + medium + black + none + medium + black + none + medium + 0pt + 0pt + 0pt + 0pt + 0pt + 0pt + 0pt + 0pt + + Fixed + #,##0 + + center + normal + normal + 2 + none + middle + normal + 2 + normal + block + auto + auto + auto + false + false + lagg + + + +
+
+
+
+
+
+
+ + 100% + + 2 + 1 + #808080 + solid + 1px + #808080 + solid + 1px + + + 10pt + 5pt + 10pt + 5pt + 0.8472222222222222in + 7.75in + IssueCount_Category + + + HIGH_COUNT + dataSetRow["HIGH_COUNT"] + integer + + + MED_COUNT + dataSetRow["MED_COUNT"] + integer + + + LOW_COUNT + dataSetRow["LOW_COUNT"] + integer + + + G_ROUP + dataSetRow["G_ROUP"] + string + + + cat + dataSetRow["G_ROUP"] + string + + + critical + if(dataSetRow["CRIT_COUNT"] > 0) dataSetRow["AUD_CRIT_COUNT"] + " / " +dataSetRow["CRIT_COUNT"]; else "0"; + string + + + high + if(dataSetRow["HIGH_COUNT"]>0) dataSetRow["AUD_HIGH_COUNT"] + " / " +dataSetRow["HIGH_COUNT"]; else "0"; + string + + + med + if(dataSetRow["MED_COUNT"]>0) dataSetRow["AUD_MED_COUNT"]+ " / " +dataSetRow["MED_COUNT"]; else "0"; + string + + + low + if(dataSetRow["LOW_COUNT"]>0)dataSetRow["AUD_LOW_COUNT"]+ " / " +dataSetRow["LOW_COUNT"]; else "0"; + string + + + cagg + integer + SUM + + + Expression + dataSetRow["CRIT_COUNT"] + + + + + hagg + integer + SUM + + + Expression + dataSetRow["HIGH_COUNT"] + + + + + magg + integer + SUM + + + Expression + dataSetRow["MED_COUNT"] + + + + + lagg + integer + SUM + + + Expression + dataSetRow["LOW_COUNT"] + + + + + CATEGORY + dataSetRow["G_ROUP"] + string + + + AUD_CRIT_COUNT + dataSetRow["AUD_CRIT_COUNT"] + integer + + + CRIT_COUNT + dataSetRow["CRIT_COUNT"] + integer + + + AUD_HIGH_COUNT + dataSetRow["AUD_HIGH_COUNT"] + integer + + + AUD_MED_COUNT + dataSetRow["AUD_MED_COUNT"] + integer + + + AUD_LOW_COUNT + dataSetRow["AUD_LOW_COUNT"] + integer + + + 400 + + middle + 3.75in + + + alignCenter + 1in + + + alignCenter + 1in + + + alignCenter + 1in + + + alignCenter + 1in + +
+ + verticalGroupHeaderWithBG + 12pt + #FFFFFF + solid + 1px + + scroll + #B9AEAA + 0% + 0% + repeat + serif + medium + normal + normal + normal + black + none + none + none + 0pt + 0pt + 0pt + 0pt + 1pt + 1pt + 1pt + 1pt + 0em + normal + normal + 2 + none + middle + normal + 2 + normal + block + auto + auto + auto + false + false + + + + 4 + 1 + scroll + #758894 + 0% + 0% + repeat + serif + medium + normal + normal + normal + black + none + none + none + #FFFFFF + solid + 1px + 0pt + 0pt + 0pt + 0pt + 1pt + 1pt + 1pt + 1pt + 0em + normal + normal + 2 + none + normal + 2 + normal + block + auto + auto + auto + false + false + + + + + verticalGroupHeaderWithBG + #E4E4E4 + 12pt + #808080 + solid + 1px + + scroll + 0% + 0% + repeat + serif + medium + normal + normal + normal + black + none + none + none + 0pt + 0pt + 0pt + 0pt + 1pt + 1pt + 1pt + 1pt + 0em + normal + normal + 2 + none + middle + normal + 2 + normal + block + auto + auto + auto + false + false + + + scroll + red + 0% + 0% + repeat + serif + medium + normal + normal + normal + black + none + none + none + #FFFFFF + solid + 1px + 0pt + 0pt + 0pt + 0pt + 1pt + 1pt + 1pt + 1pt + 0em + normal + normal + 2 + none + normal + 2 + normal + block + auto + auto + auto + false + false + + + + MedHighlight + scroll + #FF8C00 + 0% + 0% + repeat + serif + medium + normal + normal + normal + black + none + none + none + #FFFFFF + solid + 1px + 0pt + 0pt + 0pt + 0pt + 1pt + 1pt + 1pt + 1pt + 0em + normal + normal + 2 + none + normal + 2 + normal + block + auto + auto + auto + false + false + + + + scroll + #FFC800 + 0% + 0% + repeat + serif + medium + normal + normal + normal + black + none + none + none + #FFFFFF + solid + 1px + 0pt + 0pt + 0pt + 0pt + 1pt + 1pt + 1pt + 1pt + 0em + normal + normal + 2 + none + normal + 2 + normal + block + auto + auto + auto + false + false + + + + scroll + #FFFF96 + 0% + 0% + repeat + serif + medium + normal + normal + normal + black + none + none + none + #FFFFFF + solid + 1px + 0pt + 0pt + 0pt + 0pt + 1pt + 1pt + 1pt + 1pt + 0em + normal + normal + 2 + none + normal + 2 + normal + block + auto + auto + auto + false + false + + + +
+ + + grayWithWhiteBorder + #EDE7DE + + scroll + 0% + 0% + repeat + serif + medium + normal + normal + normal + black + none + none + none + black + none + medium + black + none + medium + #FFFFFF + solid + thin + black + none + medium + 0pt + 0pt + 0pt + 0pt + 1pt + 1pt + 1pt + 1pt + 0em + normal + normal + 2 + none + normal + 2 + normal + block + auto + auto + auto + false + false + + cellpadding + scroll + 0% + 0% + repeat + sans-serif + 11pt + normal + normal + normal + #7E6F69 + none + none + none + black + none + medium + black + none + medium + black + none + medium + black + none + medium + 0pt + 0pt + 0pt + 0pt + 1pt + 1pt + 1pt + 1pt + left + normal + normal + 2 + none + middle + normal + 2 + normal + block + auto + auto + auto + false + false + cat + + + none + + + + + + #FFFFFF + solid + thin + + + gt + #FF0000 + row["CRIT_COUNT"] + + 0 + + + + + scroll + 0% + 0% + repeat + sans-serif + 11pt + normal + normal + normal + #4D4D4D + none + none + none + black + none + medium + black + none + medium + black + none + medium + black + none + medium + 0pt + 0pt + 0pt + 0pt + 0pt + 0pt + 0pt + 0pt + + Fixed + #,##0 + + center + normal + normal + 2 + none + middle + normal + 2 + normal + block + auto + auto + auto + false + false + + + eq + 10pt + #7E6F69 + row["CRIT_COUNT"] + + 0 + + + + critical + + + + #FFFFFF + solid + thin + + + gt + #FF8C00 + row["HIGH_COUNT"] + + 0 + + + + + scroll + 0% + 0% + repeat + sans-serif + 11pt + normal + normal + normal + #4D4D4D + none + none + none + black + none + medium + black + none + medium + black + none + medium + black + none + medium + 0pt + 0pt + 0pt + 0pt + 0pt + 0pt + 0pt + 0pt + center + normal + normal + 2 + none + middle + normal + 2 + normal + block + auto + auto + auto + false + false + + + eq + 10pt + #7E6F69 + row["HIGH_COUNT"] + + 0 + + + + high + + + + #FFFFFF + solid + thin + + + gt + #FFC800 + row["MED_COUNT"] + + 0 + + + + + scroll + 0% + 0% + repeat + sans-serif + 11pt + normal + normal + normal + #4D4D4D + none + none + none + black + none + medium + black + none + medium + black + none + medium + black + none + medium + 0pt + 0pt + 0pt + 0pt + 0pt + 0pt + 0pt + 0pt + center + normal + normal + 2 + none + middle + normal + 2 + normal + block + auto + auto + auto + false + false + + + eq + 10pt + #7E6F69 + row["MED_COUNT"] + + 0 + + + + med + + + + #FFFFFF + solid + thin + + + gt + #FFFF96 + row["LOW_COUNT"] + + 0 + + + + + scroll + 0% + 0% + repeat + sans-serif + 11pt + normal + normal + normal + #4D4D4D + none + none + none + black + none + medium + black + none + medium + black + none + medium + black + none + medium + 0pt + 0pt + 0pt + 0pt + 0pt + 0pt + 0pt + 0pt + center + normal + normal + 2 + none + middle + normal + 2 + normal + block + auto + auto + auto + false + false + + + eq + 10pt + #7E6F69 + row["LOW_COUNT"] + + 0 + + + + low + + + + +
+ + #808080 + solid + 1px + + + + + + scroll + 0% + 0% + repeat + sans-serif + 11pt + bold + normal + normal + #4D4D4D + none + none + none + black + none + medium + black + none + medium + black + none + medium + black + none + medium + 0pt + 0pt + 0pt + 0pt + 0pt + 0pt + 0pt + 0pt + + Fixed + #,##0 + + center + normal + normal + 2 + none + middle + normal + 2 + normal + block + auto + auto + auto + false + false + cagg + + + + + scroll + 0% + 0% + repeat + sans-serif + 11pt + bold + normal + normal + #4D4D4D + none + none + none + black + none + medium + black + none + medium + black + none + medium + black + none + medium + 0pt + 0pt + 0pt + 0pt + 0pt + 0pt + 0pt + 0pt + center + normal + normal + 2 + none + middle + normal + 2 + normal + block + auto + auto + auto + false + false + hagg + + + + + scroll + 0% + 0% + repeat + sans-serif + 11pt + bold + normal + normal + #4D4D4D + none + none + none + black + none + medium + black + none + medium + black + none + medium + black + none + medium + 0pt + 0pt + 0pt + 0pt + 0pt + 0pt + 0pt + 0pt + center + normal + normal + 2 + none + middle + normal + 2 + normal + block + auto + auto + auto + false + false + magg + + + + + scroll + 0% + 0% + repeat + sans-serif + 11pt + bold + normal + normal + #4D4D4D + none + none + none + black + none + medium + black + none + medium + black + none + medium + black + none + medium + 0pt + 0pt + 0pt + 0pt + 0pt + 0pt + 0pt + 0pt + center + normal + normal + 2 + none + middle + normal + 2 + normal + block + auto + auto + auto + false + false + lagg + + + +
+
+
+
+ + always + 100% + + + all + !params["includeOWASP2021"].value + + + + 2 + 1 + #808080 + solid + 1px + #808080 + solid + 1px + + + 10pt + 5pt + 10pt + 5pt + 0.8472222222222222in + 7.75in + IssueCount_OWASP21 + + + HIGH_COUNT + dataSetRow["HIGH_COUNT"] + integer + + + MED_COUNT + dataSetRow["MED_COUNT"] + integer + + + LOW_COUNT + dataSetRow["LOW_COUNT"] + integer + + + G_ROUP + dataSetRow["G_ROUP"] + string + + + cat + dataSetRow["G_ROUP"] + string + + + critical + var dat = dataSetRow["CRIT_COUNT"]; if(dat ==null) 0; else dat; + string + + + high + var dat = dataSetRow["HIGH_COUNT"]; if(dat ==null) 0; else dat; + string + + + med + var dat = dataSetRow["MED_COUNT"]; if(dat ==null) 0; else dat; + string + + + low + var dat = dataSetRow["LOW_COUNT"]; if(dat ==null) 0; else dat; + string + + + cagg + integer + SUM + + + Expression + dataSetRow["CRIT_COUNT"] + + + + + hagg + integer + SUM + + + Expression + dataSetRow["HIGH_COUNT"] + + + + + magg + integer + SUM + + + Expression + dataSetRow["MED_COUNT"] + + + + + lagg + integer + SUM + + + Expression + dataSetRow["LOW_COUNT"] + + + + + 80 + + middle + 3.75in + + + alignCenter + 1in + + + alignCenter + 1in + + + alignCenter + 1in + + + alignCenter + 1in + +
+ + verticalGroupHeaderWithBG + 12pt + #FFFFFF + solid + 1px + + scroll + #B9AEAA + 0% + 0% + repeat + serif + medium + normal + normal + normal + black + none + none + none + 0pt + 0pt + 0pt + 0pt + 1pt + 1pt + 1pt + 1pt + 0em + normal + normal + 2 + none + middle + normal + 2 + normal + block + auto + auto + auto + false + false + + + + 4 + 1 + scroll + #758894 + 0% + 0% + repeat + serif + medium + normal + normal + normal + black + none + none + none + #FFFFFF + solid + 1px + 0pt + 0pt + 0pt + 0pt + 1pt + 1pt + 1pt + 1pt + 0em + normal + normal + 2 + none + normal + 2 + normal + block + auto + auto + auto + false + false + + + + + verticalGroupHeaderWithBG + #E4E4E4 + 12pt + #808080 + solid + 1px + + scroll + 0% + 0% + repeat + serif + medium + normal + normal + normal + black + none + none + none + 0pt + 0pt + 0pt + 0pt + 1pt + 1pt + 1pt + 1pt + 0em + normal + normal + 2 + none + middle + normal + 2 + normal + block + auto + auto + auto + false + false + + + scroll + red + 0% + 0% + repeat + serif + medium + normal + normal + normal + black + none + none + none + #FFFFFF + solid + 1px + 0pt + 0pt + 0pt + 0pt + 1pt + 1pt + 1pt + 1pt + 0em + normal + normal + 2 + none + normal + 2 + normal + block + auto + auto + auto + false + false + + + + MedHighlight + scroll + #FF8C00 + 0% + 0% + repeat + serif + medium + normal + normal + normal + black + none + none + none + #FFFFFF + solid + 1px + 0pt + 0pt + 0pt + 0pt + 1pt + 1pt + 1pt + 1pt + 0em + normal + normal + 2 + none + normal + 2 + normal + block + auto + auto + auto + false + false + + + + scroll + #FFC800 + 0% + 0% + repeat + serif + medium + normal + normal + normal + black + none + none + none + #FFFFFF + solid + 1px + 0pt + 0pt + 0pt + 0pt + 1pt + 1pt + 1pt + 1pt + 0em + normal + normal + 2 + none + normal + 2 + normal + block + auto + auto + auto + false + false + + + + scroll + #FFFF96 + 0% + 0% + repeat + serif + medium + normal + normal + normal + black + none + none + none + #FFFFFF + solid + 1px + 0pt + 0pt + 0pt + 0pt + 1pt + 1pt + 1pt + 1pt + 0em + normal + normal + 2 + none + normal + 2 + normal + block + auto + auto + auto + false + false + + + +
+ + + grayWithWhiteBorder + #EDE7DE + + scroll + 0% + 0% + repeat + serif + medium + normal + normal + normal + black + none + none + none + black + none + medium + black + none + medium + #FFFFFF + solid + thin + black + none + medium + 0pt + 0pt + 0pt + 0pt + 1pt + 1pt + 1pt + 1pt + 0em + normal + normal + 2 + none + normal + 2 + normal + block + auto + auto + auto + false + false + + cellpadding + scroll + 0% + 0% + repeat + sans-serif + 11pt + normal + normal + normal + #7E6F69 + none + none + none + black + none + medium + black + none + medium + black + none + medium + black + none + medium + 0pt + 0pt + 0pt + 0pt + 1pt + 1pt + 1pt + 1pt + left + normal + normal + 2 + none + middle + normal + 2 + normal + block + auto + auto + auto + false + false + cat + + + + #FFFFFF + solid + thin + + + gt + #FF0000 + row["critical"] + + 0 + + + + + scroll + 0% + 0% + repeat + sans-serif + 11pt + normal + normal + normal + #4D4D4D + none + none + none + black + none + medium + black + none + medium + black + none + medium + black + none + medium + 0pt + 0pt + 0pt + 0pt + 0pt + 0pt + 0pt + 0pt + center + normal + normal + 2 + none + middle + normal + 2 + normal + block + auto + auto + auto + false + false + + + eq + 10pt + #7E6F69 + row["critical"] + + 0 + + + + critical + + + + #FFFFFF + solid + thin + + + gt + #FF8C00 + row["high"] + + 0 + + + + + scroll + 0% + 0% + repeat + sans-serif + 11pt + normal + normal + normal + #4D4D4D + none + none + none + black + none + medium + black + none + medium + black + none + medium + black + none + medium + 0pt + 0pt + 0pt + 0pt + 0pt + 0pt + 0pt + 0pt + center + normal + normal + 2 + none + middle + normal + 2 + normal + block + auto + auto + auto + false + false + + + eq + 10pt + #7E6F69 + row["high"] + + 0 + + + + high + + + + #FFFFFF + solid + thin + + + gt + #FFC800 + row["med"] + + 0 + + + + + scroll + 0% + 0% + repeat + sans-serif + 11pt + normal + normal + normal + #4D4D4D + none + none + none + black + none + medium + black + none + medium + black + none + medium + black + none + medium + 0pt + 0pt + 0pt + 0pt + 0pt + 0pt + 0pt + 0pt + center + normal + normal + 2 + none + middle + normal + 2 + normal + block + auto + auto + auto + false + false + + + eq + 10pt + #7E6F69 + row["med"] + + 0 + + + + med + + + + #FFFFFF + solid + thin + + + gt + #FFFF96 + row["low"] + + 0 + + + + + scroll + 0% + 0% + repeat + sans-serif + 11pt + normal + normal + normal + #4D4D4D + none + none + none + black + none + medium + black + none + medium + black + none + medium + black + none + medium + 0pt + 0pt + 0pt + 0pt + 0pt + 0pt + 0pt + 0pt + center + normal + normal + 2 + none + middle + normal + 2 + normal + block + auto + auto + auto + false + false + + + eq + 10pt + #7E6F69 + row["low"] + + 0 + + + + low + + + + +
+ + #808080 + solid + 1px + + 5 + 1 + + sans-serif + 9pt + italic + "* Reported issues in the above table may violate more than one OWASP Top Ten 2021 requirement. As such, the same issue may appear in more than one row. The total number of unique vulnerabilities are reported in the Issues by Category table." + html + + + +
+
+
+
+ + always + 100% + + + all + !params["includeOWASP2017"].value + + + + 2 + 1 + #808080 + solid + 1px + #808080 + solid + 1px + + + 10pt + 5pt + 10pt + 5pt + 0.8472222222222222in + 7.75in + IssueCount_OWASP17 + + + HIGH_COUNT + dataSetRow["HIGH_COUNT"] + integer + + + MED_COUNT + dataSetRow["MED_COUNT"] + integer + + + LOW_COUNT + dataSetRow["LOW_COUNT"] + integer + + + G_ROUP + dataSetRow["G_ROUP"] + string + + + cat + dataSetRow["G_ROUP"] + string + + + critical + var dat = dataSetRow["CRIT_COUNT"]; if(dat ==null) 0; else dat; + string + + + high + var dat = dataSetRow["HIGH_COUNT"]; if(dat ==null) 0; else dat; + string + + + med + var dat = dataSetRow["MED_COUNT"]; if(dat ==null) 0; else dat; + string + + + low + var dat = dataSetRow["LOW_COUNT"]; if(dat ==null) 0; else dat; + string + + + cagg + integer + SUM + + + Expression + dataSetRow["CRIT_COUNT"] + + + + + hagg + integer + SUM + + + Expression + dataSetRow["HIGH_COUNT"] + + + + + magg + integer + SUM + + + Expression + dataSetRow["MED_COUNT"] + + + + + lagg + integer + SUM + + + Expression + dataSetRow["LOW_COUNT"] + + + + + 80 + + middle + 3.75in + + + alignCenter + 1in + + + alignCenter + 1in + + + alignCenter + 1in + + + alignCenter + 1in + +
+ + verticalGroupHeaderWithBG + 12pt + #FFFFFF + solid + 1px + + scroll + #B9AEAA + 0% + 0% + repeat + serif + medium + normal + normal + normal + black + none + none + none + 0pt + 0pt + 0pt + 0pt + 1pt + 1pt + 1pt + 1pt + 0em + normal + normal + 2 + none + middle + normal + 2 + normal + block + auto + auto + auto + false + false + + + + 4 + 1 + scroll + #758894 + 0% + 0% + repeat + serif + medium + normal + normal + normal + black + none + none + none + #FFFFFF + solid + 1px + 0pt + 0pt + 0pt + 0pt + 1pt + 1pt + 1pt + 1pt + 0em + normal + normal + 2 + none + normal + 2 + normal + block + auto + auto + auto + false + false + + + + + verticalGroupHeaderWithBG + #E4E4E4 + 12pt + #808080 + solid + 1px + + scroll + 0% + 0% + repeat + serif + medium + normal + normal + normal + black + none + none + none + 0pt + 0pt + 0pt + 0pt + 1pt + 1pt + 1pt + 1pt + 0em + normal + normal + 2 + none + middle + normal + 2 + normal + block + auto + auto + auto + false + false + + + scroll + red + 0% + 0% + repeat + serif + medium + normal + normal + normal + black + none + none + none + #FFFFFF + solid + 1px + 0pt + 0pt + 0pt + 0pt + 1pt + 1pt + 1pt + 1pt + 0em + normal + normal + 2 + none + normal + 2 + normal + block + auto + auto + auto + false + false + + + + MedHighlight + scroll + #FF8C00 + 0% + 0% + repeat + serif + medium + normal + normal + normal + black + none + none + none + #FFFFFF + solid + 1px + 0pt + 0pt + 0pt + 0pt + 1pt + 1pt + 1pt + 1pt + 0em + normal + normal + 2 + none + normal + 2 + normal + block + auto + auto + auto + false + false + + + + scroll + #FFC800 + 0% + 0% + repeat + serif + medium + normal + normal + normal + black + none + none + none + #FFFFFF + solid + 1px + 0pt + 0pt + 0pt + 0pt + 1pt + 1pt + 1pt + 1pt + 0em + normal + normal + 2 + none + normal + 2 + normal + block + auto + auto + auto + false + false + + + + scroll + #FFFF96 + 0% + 0% + repeat + serif + medium + normal + normal + normal + black + none + none + none + #FFFFFF + solid + 1px + 0pt + 0pt + 0pt + 0pt + 1pt + 1pt + 1pt + 1pt + 0em + normal + normal + 2 + none + normal + 2 + normal + block + auto + auto + auto + false + false + + + +
+ + + grayWithWhiteBorder + #EDE7DE + + scroll + 0% + 0% + repeat + serif + medium + normal + normal + normal + black + none + none + none + black + none + medium + black + none + medium + #FFFFFF + solid + thin + black + none + medium + 0pt + 0pt + 0pt + 0pt + 1pt + 1pt + 1pt + 1pt + 0em + normal + normal + 2 + none + normal + 2 + normal + block + auto + auto + auto + false + false + + cellpadding + scroll + 0% + 0% + repeat + sans-serif + 11pt + normal + normal + normal + #7E6F69 + none + none + none + black + none + medium + black + none + medium + black + none + medium + black + none + medium + 0pt + 0pt + 0pt + 0pt + 1pt + 1pt + 1pt + 1pt + left + normal + normal + 2 + none + middle + normal + 2 + normal + block + auto + auto + auto + false + false + cat + + + + #FFFFFF + solid + thin + + + gt + #FF0000 + row["critical"] + + 0 + + + + + scroll + 0% + 0% + repeat + sans-serif + 11pt + normal + normal + normal + #4D4D4D + none + none + none + black + none + medium + black + none + medium + black + none + medium + black + none + medium + 0pt + 0pt + 0pt + 0pt + 0pt + 0pt + 0pt + 0pt + center + normal + normal + 2 + none + middle + normal + 2 + normal + block + auto + auto + auto + false + false + + + eq + 10pt + #7E6F69 + row["critical"] + + 0 + + + + critical + + + + #FFFFFF + solid + thin + + + gt + #FF8C00 + row["high"] + + 0 + + + + + scroll + 0% + 0% + repeat + sans-serif + 11pt + normal + normal + normal + #4D4D4D + none + none + none + black + none + medium + black + none + medium + black + none + medium + black + none + medium + 0pt + 0pt + 0pt + 0pt + 0pt + 0pt + 0pt + 0pt + center + normal + normal + 2 + none + middle + normal + 2 + normal + block + auto + auto + auto + false + false + + + eq + 10pt + #7E6F69 + row["high"] + + 0 + + + + high + + + + #FFFFFF + solid + thin + + + gt + #FFC800 + row["med"] + + 0 + + + + + scroll + 0% + 0% + repeat + sans-serif + 11pt + normal + normal + normal + #4D4D4D + none + none + none + black + none + medium + black + none + medium + black + none + medium + black + none + medium + 0pt + 0pt + 0pt + 0pt + 0pt + 0pt + 0pt + 0pt + center + normal + normal + 2 + none + middle + normal + 2 + normal + block + auto + auto + auto + false + false + + + eq + 10pt + #7E6F69 + row["med"] + + 0 + + + + med + + + + #FFFFFF + solid + thin + + + gt + #FFFF96 + row["low"] + + 0 + + + + + scroll + 0% + 0% + repeat + sans-serif + 11pt + normal + normal + normal + #4D4D4D + none + none + none + black + none + medium + black + none + medium + black + none + medium + black + none + medium + 0pt + 0pt + 0pt + 0pt + 0pt + 0pt + 0pt + 0pt + center + normal + normal + 2 + none + middle + normal + 2 + normal + block + auto + auto + auto + false + false + + + eq + 10pt + #7E6F69 + row["low"] + + 0 + + + + low + + + + +
+ + #808080 + solid + 1px + + 5 + 1 + + sans-serif + 9pt + italic + "* Reported issues in the above table may violate more than one OWASP Top Ten 2017 requirement. As such, the same issue may appear in more than one row. The total number of unique vulnerabilities are reported in the Issues by Category table." + html + + + +
+
+
+
+ + always + + + all + !params["includeOWASP2007"].value + + + + 2 + 1 + #808080 + solid + 1px + + + 10pt + 5pt + 10pt + 5pt + 0.8472222222222222in + 7.75in + IssueCount_OWASP07 + + + HIGH_COUNT + dataSetRow["HIGH_COUNT"] + integer + + + MED_COUNT + dataSetRow["MED_COUNT"] + integer + + + LOW_COUNT + dataSetRow["LOW_COUNT"] + integer + + + G_ROUP + dataSetRow["G_ROUP"] + string + + + cat + dataSetRow["G_ROUP"] + string + + + critical + var dat = dataSetRow["CRIT_COUNT"]; if(dat ==null) 0; else dat; + string + + + high + var dat = dataSetRow["HIGH_COUNT"]; if(dat ==null) 0; else dat; + string + + + med + var dat = dataSetRow["MED_COUNT"]; if(dat ==null) 0; else dat; + string + + + low + var dat = dataSetRow["LOW_COUNT"]; if(dat ==null) 0; else dat; + string + + + cagg + integer + SUM + + + Expression + dataSetRow["CRIT_COUNT"] + + + + + hagg + integer + SUM + + + Expression + dataSetRow["HIGH_COUNT"] + + + + + magg + integer + SUM + + + Expression + dataSetRow["MED_COUNT"] + + + + + lagg + integer + SUM + + + Expression + dataSetRow["LOW_COUNT"] + + + + + + middle + 3.75in + + + alignCenter + 1in + + + alignCenter + 1in + + + alignCenter + 1in + + + alignCenter + 1in + +
+ + verticalGroupHeaderWithBG + 12pt + #FFFFFF + solid + 1px + + scroll + #B9AEAA + 0% + 0% + repeat + serif + medium + normal + normal + normal + black + none + none + none + 0pt + 0pt + 0pt + 0pt + 1pt + 1pt + 1pt + 1pt + 0em + normal + normal + 2 + none + middle + normal + 2 + normal + block + auto + auto + auto + false + false + + + + 4 + 1 + scroll + #758894 + 0% + 0% + repeat + serif + medium + normal + normal + normal + black + none + none + none + #FFFFFF + solid + 1px + 0pt + 0pt + 0pt + 0pt + 1pt + 1pt + 1pt + 1pt + 0em + normal + normal + 2 + none + normal + 2 + normal + block + auto + auto + auto + false + false + + + + + verticalGroupHeaderWithBG + #E4E4E4 + 12pt + #808080 + solid + 1px + + scroll + 0% + 0% + repeat + serif + medium + normal + normal + normal + black + none + none + none + 0pt + 0pt + 0pt + 0pt + 1pt + 1pt + 1pt + 1pt + 0em + normal + normal + 2 + none + middle + normal + 2 + normal + block + auto + auto + auto + false + false + + + scroll + red + 0% + 0% + repeat + serif + medium + normal + normal + normal + black + none + none + none + #FFFFFF + solid + 1px + 0pt + 0pt + 0pt + 0pt + 1pt + 1pt + 1pt + 1pt + 0em + normal + normal + 2 + none + normal + 2 + normal + block + auto + auto + auto + false + false + + + + MedHighlight + scroll + #FF8C00 + 0% + 0% + repeat + serif + medium + normal + normal + normal + black + none + none + none + #FFFFFF + solid + 1px + 0pt + 0pt + 0pt + 0pt + 1pt + 1pt + 1pt + 1pt + 0em + normal + normal + 2 + none + normal + 2 + normal + block + auto + auto + auto + false + false + + + + scroll + #FFC800 + 0% + 0% + repeat + serif + medium + normal + normal + normal + black + none + none + none + #FFFFFF + solid + 1px + 0pt + 0pt + 0pt + 0pt + 1pt + 1pt + 1pt + 1pt + 0em + normal + normal + 2 + none + normal + 2 + normal + block + auto + auto + auto + false + false + + + + scroll + #FFFF96 + 0% + 0% + repeat + serif + medium + normal + normal + normal + black + none + none + none + #FFFFFF + solid + 1px + 0pt + 0pt + 0pt + 0pt + 1pt + 1pt + 1pt + 1pt + 0em + normal + normal + 2 + none + normal + 2 + normal + block + auto + auto + auto + false + false + + + +
+ + + grayWithWhiteBorder + #EDE7DE + + scroll + 0% + 0% + repeat + serif + medium + normal + normal + normal + black + none + none + none + black + none + medium + black + none + medium + #FFFFFF + solid + thin + black + none + medium + 0pt + 0pt + 0pt + 0pt + 1pt + 1pt + 1pt + 1pt + 0em + normal + normal + 2 + none + normal + 2 + normal + block + auto + auto + auto + false + false + + cellpadding + scroll + 0% + 0% + repeat + sans-serif + 11pt + normal + normal + normal + #7E6F69 + none + none + none + black + none + medium + black + none + medium + black + none + medium + black + none + medium + 0pt + 0pt + 0pt + 0pt + 1pt + 1pt + 1pt + 1pt + left + normal + normal + 2 + none + middle + normal + 2 + normal + block + auto + auto + auto + false + false + cat + + + + #FFFFFF + solid + thin + + + gt + #FF0000 + row["critical"] + + 0 + + + + + scroll + 0% + 0% + repeat + sans-serif + 11pt + normal + normal + normal + #4D4D4D + none + none + none + black + none + medium + black + none + medium + black + none + medium + black + none + medium + 0pt + 0pt + 0pt + 0pt + 0pt + 0pt + 0pt + 0pt + center + normal + normal + 2 + none + middle + normal + 2 + normal + block + auto + auto + auto + false + false + + + eq + 10pt + #7E6F69 + row["critical"] + + 0 + + + + critical + + + + #FFFFFF + solid + thin + + + gt + #FF8C00 + row["high"] + + 0 + + + + + scroll + 0% + 0% + repeat + sans-serif + 11pt + normal + normal + normal + #4D4D4D + none + none + none + black + none + medium + black + none + medium + black + none + medium + black + none + medium + 0pt + 0pt + 0pt + 0pt + 0pt + 0pt + 0pt + 0pt + center + normal + normal + 2 + none + middle + normal + 2 + normal + block + auto + auto + auto + false + false + + + eq + 10pt + #7E6F69 + row["high"] + + 0 + + + + high + + + + #FFFFFF + solid + thin + + + gt + #FFC800 + row["med"] + + 0 + + + + + scroll + 0% + 0% + repeat + sans-serif + 11pt + normal + normal + normal + #4D4D4D + none + none + none + black + none + medium + black + none + medium + black + none + medium + black + none + medium + 0pt + 0pt + 0pt + 0pt + 0pt + 0pt + 0pt + 0pt + center + normal + normal + 2 + none + middle + normal + 2 + normal + block + auto + auto + auto + false + false + + + eq + 10pt + #7E6F69 + row["med"] + + 0 + + + + med + + + + #FFFFFF + solid + thin + + + gt + #FFFF96 + row["low"] + + 0 + + + + + scroll + 0% + 0% + repeat + sans-serif + 11pt + normal + normal + normal + #4D4D4D + none + none + none + black + none + medium + black + none + medium + black + none + medium + black + none + medium + 0pt + 0pt + 0pt + 0pt + 0pt + 0pt + 0pt + 0pt + center + normal + normal + 2 + none + middle + normal + 2 + normal + block + auto + auto + auto + false + false + + + eq + 10pt + #7E6F69 + row["low"] + + 0 + + + + low + + + + +
+ + #808080 + solid + 1px + + 5 + 1 + + sans-serif + 9pt + italic + "* Reported issues in the above table may violate more than one OWASP Top Ten 2007 requirement. As such, the same issue may appear in more than one row. The total number of unique vulnerabilities are reported in the Issues by Category table." + html + + + +
+
+
+
+ + always + + + all + !params["includeOWASP2013"].value + + + + 2 + 1 + #808080 + solid + 1px + + + 10pt + 5pt + 10pt + 5pt + 0.8472222222222222in + 7.75in + IssueCount_OWASP2013 + + + HIGH_COUNT + dataSetRow["HIGH_COUNT"] + integer + + + MED_COUNT + dataSetRow["MED_COUNT"] + integer + + + LOW_COUNT + dataSetRow["LOW_COUNT"] + integer + + + G_ROUP + dataSetRow["G_ROUP"] + string + + + cat + dataSetRow["G_ROUP"] + string + + + critical + var dat = dataSetRow["CRIT_COUNT"]; if(dat ==null) 0; else dat; + string + + + high + var dat = dataSetRow["HIGH_COUNT"]; if(dat ==null) 0; else dat; + string + + + med + var dat = dataSetRow["MED_COUNT"]; if(dat ==null) 0; else dat; + string + + + low + var dat = dataSetRow["LOW_COUNT"]; if(dat ==null) 0; else dat; + string + + + cagg + integer + SUM + + + Expression + dataSetRow["CRIT_COUNT"] + + + + + hagg + integer + SUM + + + Expression + dataSetRow["HIGH_COUNT"] + + + + + magg + integer + SUM + + + Expression + dataSetRow["MED_COUNT"] + + + + + lagg + integer + SUM + + + Expression + dataSetRow["LOW_COUNT"] + + + + + + middle + 3.75in + + + alignCenter + 1in + + + alignCenter + 1in + + + alignCenter + 1in + + + alignCenter + 1in + +
+ + verticalGroupHeaderWithBG + 12pt + #FFFFFF + solid + 1px + + scroll + #B9AEAA + 0% + 0% + repeat + serif + medium + normal + normal + normal + black + none + none + none + 0pt + 0pt + 0pt + 0pt + 1pt + 1pt + 1pt + 1pt + 0em + normal + normal + 2 + none + middle + normal + 2 + normal + block + auto + auto + auto + false + false + + + + 4 + 1 + scroll + #758894 + 0% + 0% + repeat + serif + medium + normal + normal + normal + black + none + none + none + #FFFFFF + solid + 1px + 0pt + 0pt + 0pt + 0pt + 1pt + 1pt + 1pt + 1pt + 0em + normal + normal + 2 + none + normal + 2 + normal + block + auto + auto + auto + false + false + + + + + verticalGroupHeaderWithBG + #E4E4E4 + 12pt + #808080 + solid + 1px + + scroll + 0% + 0% + repeat + serif + medium + normal + normal + normal + black + none + none + none + 0pt + 0pt + 0pt + 0pt + 1pt + 1pt + 1pt + 1pt + 0em + normal + normal + 2 + none + middle + normal + 2 + normal + block + auto + auto + auto + false + false + + + scroll + red + 0% + 0% + repeat + serif + medium + normal + normal + normal + black + none + none + none + #FFFFFF + solid + 1px + 0pt + 0pt + 0pt + 0pt + 1pt + 1pt + 1pt + 1pt + 0em + normal + normal + 2 + none + normal + 2 + normal + block + auto + auto + auto + false + false + + + + MedHighlight + scroll + #FF8C00 + 0% + 0% + repeat + serif + medium + normal + normal + normal + black + none + none + none + #FFFFFF + solid + 1px + 0pt + 0pt + 0pt + 0pt + 1pt + 1pt + 1pt + 1pt + 0em + normal + normal + 2 + none + normal + 2 + normal + block + auto + auto + auto + false + false + + + + scroll + #FFC800 + 0% + 0% + repeat + serif + medium + normal + normal + normal + black + none + none + none + #FFFFFF + solid + 1px + 0pt + 0pt + 0pt + 0pt + 1pt + 1pt + 1pt + 1pt + 0em + normal + normal + 2 + none + normal + 2 + normal + block + auto + auto + auto + false + false + + + + scroll + #FFFF96 + 0% + 0% + repeat + serif + medium + normal + normal + normal + black + none + none + none + #FFFFFF + solid + 1px + 0pt + 0pt + 0pt + 0pt + 1pt + 1pt + 1pt + 1pt + 0em + normal + normal + 2 + none + normal + 2 + normal + block + auto + auto + auto + false + false + + + +
+ + + grayWithWhiteBorder + #EDE7DE + + scroll + 0% + 0% + repeat + serif + medium + normal + normal + normal + black + none + none + none + black + none + medium + black + none + medium + #FFFFFF + solid + thin + black + none + medium + 0pt + 0pt + 0pt + 0pt + 1pt + 1pt + 1pt + 1pt + 0em + normal + normal + 2 + none + normal + 2 + normal + block + auto + auto + auto + false + false + + cellpadding + scroll + 0% + 0% + repeat + sans-serif + 11pt + normal + normal + normal + #7E6F69 + none + none + none + black + none + medium + black + none + medium + black + none + medium + black + none + medium + 0pt + 0pt + 0pt + 0pt + 1pt + 1pt + 1pt + 1pt + left + normal + normal + 2 + none + middle + normal + 2 + normal + block + auto + auto + auto + false + false + cat + + + + #FFFFFF + solid + thin + + + gt + #FF0000 + row["critical"] + + 0 + + + + + scroll + 0% + 0% + repeat + sans-serif + 11pt + normal + normal + normal + #4D4D4D + none + none + none + black + none + medium + black + none + medium + black + none + medium + black + none + medium + 0pt + 0pt + 0pt + 0pt + 0pt + 0pt + 0pt + 0pt + center + normal + normal + 2 + none + middle + normal + 2 + normal + block + auto + auto + auto + false + false + + + eq + 10pt + #7E6F69 + row["critical"] + + 0 + + + + critical + + + + #FFFFFF + solid + thin + + + gt + #FF8C00 + row["high"] + + 0 + + + + + scroll + 0% + 0% + repeat + sans-serif + 11pt + normal + normal + normal + #4D4D4D + none + none + none + black + none + medium + black + none + medium + black + none + medium + black + none + medium + 0pt + 0pt + 0pt + 0pt + 0pt + 0pt + 0pt + 0pt + center + normal + normal + 2 + none + middle + normal + 2 + normal + block + auto + auto + auto + false + false + + + eq + 10pt + #7E6F69 + row["high"] + + 0 + + + + high + + + + #FFFFFF + solid + thin + + + gt + #FFC800 + row["med"] + + 0 + + + + + scroll + 0% + 0% + repeat + sans-serif + 11pt + normal + normal + normal + #4D4D4D + none + none + none + black + none + medium + black + none + medium + black + none + medium + black + none + medium + 0pt + 0pt + 0pt + 0pt + 0pt + 0pt + 0pt + 0pt + center + normal + normal + 2 + none + middle + normal + 2 + normal + block + auto + auto + auto + false + false + + + eq + 10pt + #7E6F69 + row["med"] + + 0 + + + + med + + + + #FFFFFF + solid + thin + + + gt + #FFFF96 + row["low"] + + 0 + + + + + scroll + 0% + 0% + repeat + sans-serif + 11pt + normal + normal + normal + #4D4D4D + none + none + none + black + none + medium + black + none + medium + black + none + medium + black + none + medium + 0pt + 0pt + 0pt + 0pt + 0pt + 0pt + 0pt + 0pt + center + normal + normal + 2 + none + middle + normal + 2 + normal + block + auto + auto + auto + false + false + + + eq + 10pt + #7E6F69 + row["low"] + + 0 + + + + low + + + + +
+ + #808080 + solid + 1px + 1.5833333333333333in + + 5 + 1 + + sans-serif + 9pt + italic + "* Reported issues in the above table may violate more than one OWASP Top Ten 2013 requirement. As such, the same issue may appear in more than one row. The total number of unique vulnerabilities are reported in the Issues by Category table." + html + + + +
+
+
+
+ + always + + + all + !params["includePCI321"].value + + + + 2 + 1 + #808080 + solid + 1px + #808080 + solid + 1px + + + 10pt + 5pt + 10pt + 5pt + 0.8472222222222222in + 7.75in + IssueCount_PCI321 + + + HIGH_COUNT + dataSetRow["HIGH_COUNT"] + integer + + + MED_COUNT + dataSetRow["MED_COUNT"] + integer + + + LOW_COUNT + dataSetRow["LOW_COUNT"] + integer + + + G_ROUP + dataSetRow["G_ROUP"] + string + + + cat + dataSetRow["G_ROUP"] + string + + + critical + dataSetRow["CRIT_COUNT"] + string + + + high + dataSetRow["HIGH_COUNT"] + string + + + med + dataSetRow["MED_COUNT"] + string + + + low + dataSetRow["LOW_COUNT"] + string + + + cagg + integer + SUM + + + Expression + dataSetRow["CRIT_COUNT"] + + + + + hagg + integer + SUM + + + Expression + dataSetRow["HIGH_COUNT"] + + + + + magg + integer + SUM + + + Expression + dataSetRow["MED_COUNT"] + + + + + lagg + integer + SUM + + + Expression + dataSetRow["LOW_COUNT"] + + + + + + middle + 3.75in + + + alignCenter + 1in + + + alignCenter + 1in + + + alignCenter + 1in + + + alignCenter + 1in + +
+ + verticalGroupHeaderWithBG + 12pt + #FFFFFF + solid + 1px + + scroll + #B9AEAA + 0% + 0% + repeat + serif + medium + normal + normal + normal + black + none + none + none + 0pt + 0pt + 0pt + 0pt + 1pt + 1pt + 1pt + 1pt + 0em + normal + normal + 2 + none + middle + normal + 2 + normal + block + auto + auto + auto + false + false + + + + 4 + 1 + scroll + #758894 + 0% + 0% + repeat + serif + medium + normal + normal + normal + black + none + none + none + #FFFFFF + solid + 1px + 0pt + 0pt + 0pt + 0pt + 1pt + 1pt + 1pt + 1pt + 0em + normal + normal + 2 + none + normal + 2 + normal + block + auto + auto + auto + false + false + + + + + verticalGroupHeaderWithBG + #E4E4E4 + 12pt + #808080 + solid + 1px + + scroll + 0% + 0% + repeat + serif + medium + normal + normal + normal + black + none + none + none + 0pt + 0pt + 0pt + 0pt + 1pt + 1pt + 1pt + 1pt + 0em + normal + normal + 2 + none + middle + normal + 2 + normal + block + auto + auto + auto + false + false + + + scroll + red + 0% + 0% + repeat + serif + medium + normal + normal + normal + black + none + none + none + #FFFFFF + solid + 1px + 0pt + 0pt + 0pt + 0pt + 1pt + 1pt + 1pt + 1pt + 0em + normal + normal + 2 + none + normal + 2 + normal + block + auto + auto + auto + false + false + + + + MedHighlight + scroll + #FF8C00 + 0% + 0% + repeat + serif + medium + normal + normal + normal + black + none + none + none + #FFFFFF + solid + 1px + 0pt + 0pt + 0pt + 0pt + 1pt + 1pt + 1pt + 1pt + 0em + normal + normal + 2 + none + normal + 2 + normal + block + auto + auto + auto + false + false + + + + scroll + #FFC800 + 0% + 0% + repeat + serif + medium + normal + normal + normal + black + none + none + none + #FFFFFF + solid + 1px + 0pt + 0pt + 0pt + 0pt + 1pt + 1pt + 1pt + 1pt + 0em + normal + normal + 2 + none + normal + 2 + normal + block + auto + auto + auto + false + false + + + + scroll + #FFFF96 + 0% + 0% + repeat + serif + medium + normal + normal + normal + black + none + none + none + #FFFFFF + solid + 1px + 0pt + 0pt + 0pt + 0pt + 1pt + 1pt + 1pt + 1pt + 0em + normal + normal + 2 + none + normal + 2 + normal + block + auto + auto + auto + false + false + + + +
+ + + grayWithWhiteBorder + #EDE7DE + + scroll + 0% + 0% + repeat + serif + medium + normal + normal + normal + black + none + none + none + black + none + medium + black + none + medium + #FFFFFF + solid + thin + black + none + medium + 0pt + 0pt + 0pt + 0pt + 1pt + 1pt + 1pt + 1pt + 0em + normal + normal + 2 + none + normal + 2 + normal + block + auto + auto + auto + false + false + + cellpadding + scroll + 0% + 0% + repeat + sans-serif + 11pt + normal + normal + normal + #7E6F69 + none + none + none + black + none + medium + black + none + medium + black + none + medium + black + none + medium + 0pt + 0pt + 0pt + 0pt + 1pt + 1pt + 1pt + 1pt + left + normal + normal + 2 + none + middle + normal + 2 + normal + block + auto + auto + auto + false + false + cat + + + + #FFFFFF + solid + thin + + + gt + #FF0000 + row["critical"] + + 0 + + + + + scroll + 0% + 0% + repeat + sans-serif + 11pt + normal + normal + normal + #4D4D4D + none + none + none + black + none + medium + black + none + medium + black + none + medium + black + none + medium + 0pt + 0pt + 0pt + 0pt + 0pt + 0pt + 0pt + 0pt + center + normal + normal + 2 + none + middle + normal + 2 + normal + block + auto + auto + auto + false + false + + + eq + 10pt + #7E6F69 + row["critical"] + + 0 + + + + critical + + + + #FFFFFF + solid + thin + + + gt + #FF8C00 + row["high"] + + 0 + + + + + scroll + 0% + 0% + repeat + sans-serif + 11pt + normal + normal + normal + #4D4D4D + none + none + none + black + none + medium + black + none + medium + black + none + medium + black + none + medium + 0pt + 0pt + 0pt + 0pt + 0pt + 0pt + 0pt + 0pt + center + normal + normal + 2 + none + middle + normal + 2 + normal + block + auto + auto + auto + false + false + + + eq + 10pt + #7E6F69 + row["high"] + + 0 + + + + high + + + + #FFFFFF + solid + thin + + + gt + #FFC800 + row["med"] + + 0 + + + + + scroll + 0% + 0% + repeat + sans-serif + 11pt + normal + normal + normal + #4D4D4D + none + none + none + black + none + medium + black + none + medium + black + none + medium + black + none + medium + 0pt + 0pt + 0pt + 0pt + 0pt + 0pt + 0pt + 0pt + center + normal + normal + 2 + none + middle + normal + 2 + normal + block + auto + auto + auto + false + false + + + eq + 10pt + #7E6F69 + row["med"] + + 0 + + + + med + + + + #FFFFFF + solid + thin + + + gt + #FFFF96 + row["low"] + + 0 + + + + + scroll + 0% + 0% + repeat + sans-serif + 11pt + normal + normal + normal + #4D4D4D + none + none + none + black + none + medium + black + none + medium + black + none + medium + black + none + medium + 0pt + 0pt + 0pt + 0pt + 0pt + 0pt + 0pt + 0pt + center + normal + normal + 2 + none + middle + normal + 2 + normal + block + auto + auto + auto + false + false + + + eq + 10pt + #7E6F69 + row["low"] + + 0 + + + + low + + + + +
+ + #808080 + solid + 1px + + 5 + 1 + + sans-serif + 9pt + italic + "* Reported issues in the above table may violate more than one PCI DSS 3.2.1 requirement. As such, the same issue may appear in more than one row. The total number of unique vulnerabilities are reported in the Issues by Category table." + html + + + +
+
+
+
+ + always + + + all + !params["includePCI12"].value + + + + 2 + 1 + #808080 + solid + 1px + #808080 + solid + 1px + + + 10pt + 5pt + 10pt + 5pt + 0.8472222222222222in + 7.75in + IssueCount_PCI12 + + + HIGH_COUNT + dataSetRow["HIGH_COUNT"] + integer + + + MED_COUNT + dataSetRow["MED_COUNT"] + integer + + + LOW_COUNT + dataSetRow["LOW_COUNT"] + integer + + + G_ROUP + dataSetRow["G_ROUP"] + string + + + cat + dataSetRow["G_ROUP"] + string + + + critical + dataSetRow["CRIT_COUNT"] + string + + + high + dataSetRow["HIGH_COUNT"] + string + + + med + dataSetRow["MED_COUNT"] + string + + + low + dataSetRow["LOW_COUNT"] + string + + + cagg + integer + SUM + + + Expression + dataSetRow["CRIT_COUNT"] + + + + + hagg + integer + SUM + + + Expression + dataSetRow["HIGH_COUNT"] + + + + + magg + integer + SUM + + + Expression + dataSetRow["MED_COUNT"] + + + + + lagg + integer + SUM + + + Expression + dataSetRow["LOW_COUNT"] + + + + + + middle + 3.75in + + + alignCenter + 1in + + + alignCenter + 1in + + + alignCenter + 1in + + + alignCenter + 1in + +
+ + verticalGroupHeaderWithBG + 12pt + #FFFFFF + solid + 1px + + scroll + #B9AEAA + 0% + 0% + repeat + serif + medium + normal + normal + normal + black + none + none + none + 0pt + 0pt + 0pt + 0pt + 1pt + 1pt + 1pt + 1pt + 0em + normal + normal + 2 + none + middle + normal + 2 + normal + block + auto + auto + auto + false + false + + + + 4 + 1 + scroll + #758894 + 0% + 0% + repeat + serif + medium + normal + normal + normal + black + none + none + none + #FFFFFF + solid + 1px + 0pt + 0pt + 0pt + 0pt + 1pt + 1pt + 1pt + 1pt + 0em + normal + normal + 2 + none + normal + 2 + normal + block + auto + auto + auto + false + false + + + + + verticalGroupHeaderWithBG + #E4E4E4 + 12pt + #808080 + solid + 1px + + scroll + 0% + 0% + repeat + serif + medium + normal + normal + normal + black + none + none + none + 0pt + 0pt + 0pt + 0pt + 1pt + 1pt + 1pt + 1pt + 0em + normal + normal + 2 + none + middle + normal + 2 + normal + block + auto + auto + auto + false + false + + + scroll + red + 0% + 0% + repeat + serif + medium + normal + normal + normal + black + none + none + none + #FFFFFF + solid + 1px + 0pt + 0pt + 0pt + 0pt + 1pt + 1pt + 1pt + 1pt + 0em + normal + normal + 2 + none + normal + 2 + normal + block + auto + auto + auto + false + false + + + + MedHighlight + scroll + #FF8C00 + 0% + 0% + repeat + serif + medium + normal + normal + normal + black + none + none + none + #FFFFFF + solid + 1px + 0pt + 0pt + 0pt + 0pt + 1pt + 1pt + 1pt + 1pt + 0em + normal + normal + 2 + none + normal + 2 + normal + block + auto + auto + auto + false + false + + + + scroll + #FFC800 + 0% + 0% + repeat + serif + medium + normal + normal + normal + black + none + none + none + #FFFFFF + solid + 1px + 0pt + 0pt + 0pt + 0pt + 1pt + 1pt + 1pt + 1pt + 0em + normal + normal + 2 + none + normal + 2 + normal + block + auto + auto + auto + false + false + + + + scroll + #FFFF96 + 0% + 0% + repeat + serif + medium + normal + normal + normal + black + none + none + none + #FFFFFF + solid + 1px + 0pt + 0pt + 0pt + 0pt + 1pt + 1pt + 1pt + 1pt + 0em + normal + normal + 2 + none + normal + 2 + normal + block + auto + auto + auto + false + false + + + +
+ + + grayWithWhiteBorder + #EDE7DE + + scroll + 0% + 0% + repeat + serif + medium + normal + normal + normal + black + none + none + none + black + none + medium + black + none + medium + #FFFFFF + solid + thin + black + none + medium + 0pt + 0pt + 0pt + 0pt + 1pt + 1pt + 1pt + 1pt + 0em + normal + normal + 2 + none + normal + 2 + normal + block + auto + auto + auto + false + false + + cellpadding + scroll + 0% + 0% + repeat + sans-serif + 11pt + normal + normal + normal + #7E6F69 + none + none + none + black + none + medium + black + none + medium + black + none + medium + black + none + medium + 0pt + 0pt + 0pt + 0pt + 1pt + 1pt + 1pt + 1pt + left + normal + normal + 2 + none + middle + normal + 2 + normal + block + auto + auto + auto + false + false + cat + + + + #FFFFFF + solid + thin + + + gt + #FF0000 + row["critical"] + + 0 + + + + + scroll + 0% + 0% + repeat + sans-serif + 11pt + normal + normal + normal + #4D4D4D + none + none + none + black + none + medium + black + none + medium + black + none + medium + black + none + medium + 0pt + 0pt + 0pt + 0pt + 0pt + 0pt + 0pt + 0pt + center + normal + normal + 2 + none + middle + normal + 2 + normal + block + auto + auto + auto + false + false + + + eq + 10pt + #7E6F69 + row["critical"] + + 0 + + + + critical + + + + #FFFFFF + solid + thin + + + gt + #FF8C00 + row["high"] + + 0 + + + + + scroll + 0% + 0% + repeat + sans-serif + 11pt + normal + normal + normal + #4D4D4D + none + none + none + black + none + medium + black + none + medium + black + none + medium + black + none + medium + 0pt + 0pt + 0pt + 0pt + 0pt + 0pt + 0pt + 0pt + center + normal + normal + 2 + none + middle + normal + 2 + normal + block + auto + auto + auto + false + false + + + eq + 10pt + #7E6F69 + row["high"] + + 0 + + + + high + + + + #FFFFFF + solid + thin + + + gt + #FFC800 + row["med"] + + 0 + + + + + scroll + 0% + 0% + repeat + sans-serif + 11pt + normal + normal + normal + #4D4D4D + none + none + none + black + none + medium + black + none + medium + black + none + medium + black + none + medium + 0pt + 0pt + 0pt + 0pt + 0pt + 0pt + 0pt + 0pt + center + normal + normal + 2 + none + middle + normal + 2 + normal + block + auto + auto + auto + false + false + + + eq + 10pt + #7E6F69 + row["med"] + + 0 + + + + med + + + + #FFFFFF + solid + thin + + + gt + #FFFF96 + row["low"] + + 0 + + + + + scroll + 0% + 0% + repeat + sans-serif + 11pt + normal + normal + normal + #4D4D4D + none + none + none + black + none + medium + black + none + medium + black + none + medium + black + none + medium + 0pt + 0pt + 0pt + 0pt + 0pt + 0pt + 0pt + 0pt + center + normal + normal + 2 + none + middle + normal + 2 + normal + block + auto + auto + auto + false + false + + + eq + 10pt + #7E6F69 + row["low"] + + 0 + + + + low + + + + +
+ + #808080 + solid + 1px + + 5 + 1 + + sans-serif + 9pt + italic + "* Reported issues in the above table may violate more than one PCI DSS 1.2 requirement. As such, the same issue may appear in more than one row. The total number of unique vulnerabilities are reported in the Issues by Category table." + html + + + +
+
+
+
+ + always + + + all + !params["includePCISSF10"].value + + + + 2 + 1 + #808080 + solid + 1px + #808080 + solid + 1px + + + 10pt + 5pt + 10pt + 5pt + 0.8472222222222222in + 7.75in + IssueCount_PCISSF10 + + + HIGH_COUNT + dataSetRow["HIGH_COUNT"] + integer + + + MED_COUNT + dataSetRow["MED_COUNT"] + integer + + + LOW_COUNT + dataSetRow["LOW_COUNT"] + integer + + + G_ROUP + dataSetRow["G_ROUP"] + string + + + cat + dataSetRow["G_ROUP"] + string + + + critical + dataSetRow["CRIT_COUNT"] + string + + + high + dataSetRow["HIGH_COUNT"] + string + + + med + dataSetRow["MED_COUNT"] + string + + + low + dataSetRow["LOW_COUNT"] + string + + + cagg + integer + SUM + + + Expression + dataSetRow["CRIT_COUNT"] + + + + + hagg + integer + SUM + + + Expression + dataSetRow["HIGH_COUNT"] + + + + + magg + integer + SUM + + + Expression + dataSetRow["MED_COUNT"] + + + + + lagg + integer + SUM + + + Expression + dataSetRow["LOW_COUNT"] + + + + + + middle + 3.75in + + + alignCenter + 1in + + + alignCenter + 1in + + + alignCenter + 1in + + + alignCenter + 1in + +
+ + verticalGroupHeaderWithBG + 12pt + #FFFFFF + solid + 1px + + scroll + #B9AEAA + 0% + 0% + repeat + serif + medium + normal + normal + normal + black + none + none + none + 0pt + 0pt + 0pt + 0pt + 1pt + 1pt + 1pt + 1pt + 0em + normal + normal + 2 + none + middle + normal + 2 + normal + block + auto + auto + auto + false + false + + + + 4 + 1 + scroll + #758894 + 0% + 0% + repeat + serif + medium + normal + normal + normal + black + none + none + none + #FFFFFF + solid + 1px + 0pt + 0pt + 0pt + 0pt + 1pt + 1pt + 1pt + 1pt + 0em + normal + normal + 2 + none + normal + 2 + normal + block + auto + auto + auto + false + false + + + + + verticalGroupHeaderWithBG + #E4E4E4 + 12pt + #808080 + solid + 1px + + scroll + 0% + 0% + repeat + serif + medium + normal + normal + normal + black + none + none + none + 0pt + 0pt + 0pt + 0pt + 1pt + 1pt + 1pt + 1pt + 0em + normal + normal + 2 + none + middle + normal + 2 + normal + block + auto + auto + auto + false + false + + + scroll + red + 0% + 0% + repeat + serif + medium + normal + normal + normal + black + none + none + none + #FFFFFF + solid + 1px + 0pt + 0pt + 0pt + 0pt + 1pt + 1pt + 1pt + 1pt + 0em + normal + normal + 2 + none + normal + 2 + normal + block + auto + auto + auto + false + false + + + + MedHighlight + scroll + #FF8C00 + 0% + 0% + repeat + serif + medium + normal + normal + normal + black + none + none + none + #FFFFFF + solid + 1px + 0pt + 0pt + 0pt + 0pt + 1pt + 1pt + 1pt + 1pt + 0em + normal + normal + 2 + none + normal + 2 + normal + block + auto + auto + auto + false + false + + + + scroll + #FFC800 + 0% + 0% + repeat + serif + medium + normal + normal + normal + black + none + none + none + #FFFFFF + solid + 1px + 0pt + 0pt + 0pt + 0pt + 1pt + 1pt + 1pt + 1pt + 0em + normal + normal + 2 + none + normal + 2 + normal + block + auto + auto + auto + false + false + + + + scroll + #FFFF96 + 0% + 0% + repeat + serif + medium + normal + normal + normal + black + none + none + none + #FFFFFF + solid + 1px + 0pt + 0pt + 0pt + 0pt + 1pt + 1pt + 1pt + 1pt + 0em + normal + normal + 2 + none + normal + 2 + normal + block + auto + auto + auto + false + false + + + +
+ + + grayWithWhiteBorder + #EDE7DE + + scroll + 0% + 0% + repeat + serif + medium + normal + normal + normal + black + none + none + none + black + none + medium + black + none + medium + #FFFFFF + solid + thin + black + none + medium + 0pt + 0pt + 0pt + 0pt + 1pt + 1pt + 1pt + 1pt + 0em + normal + normal + 2 + none + normal + 2 + normal + block + auto + auto + auto + false + false + + cellpadding + scroll + 0% + 0% + repeat + sans-serif + 11pt + normal + normal + normal + #7E6F69 + none + none + none + black + none + medium + black + none + medium + black + none + medium + black + none + medium + 0pt + 0pt + 0pt + 0pt + 1pt + 1pt + 1pt + 1pt + left + normal + normal + 2 + none + middle + normal + 2 + normal + block + auto + auto + auto + false + false + cat + + + + #FFFFFF + solid + thin + + + gt + #FF0000 + row["critical"] + + 0 + + + + + scroll + 0% + 0% + repeat + sans-serif + 11pt + normal + normal + normal + #4D4D4D + none + none + none + black + none + medium + black + none + medium + black + none + medium + black + none + medium + 0pt + 0pt + 0pt + 0pt + 0pt + 0pt + 0pt + 0pt + center + normal + normal + 2 + none + middle + normal + 2 + normal + block + auto + auto + auto + false + false + + + eq + 10pt + #7E6F69 + row["critical"] + + 0 + + + + critical + + + + #FFFFFF + solid + thin + + + gt + #FF8C00 + row["high"] + + 0 + + + + + scroll + 0% + 0% + repeat + sans-serif + 11pt + normal + normal + normal + #4D4D4D + none + none + none + black + none + medium + black + none + medium + black + none + medium + black + none + medium + 0pt + 0pt + 0pt + 0pt + 0pt + 0pt + 0pt + 0pt + center + normal + normal + 2 + none + middle + normal + 2 + normal + block + auto + auto + auto + false + false + + + eq + 10pt + #7E6F69 + row["high"] + + 0 + + + + high + + + + #FFFFFF + solid + thin + + + gt + #FFC800 + row["med"] + + 0 + + + + + scroll + 0% + 0% + repeat + sans-serif + 11pt + normal + normal + normal + #4D4D4D + none + none + none + black + none + medium + black + none + medium + black + none + medium + black + none + medium + 0pt + 0pt + 0pt + 0pt + 0pt + 0pt + 0pt + 0pt + center + normal + normal + 2 + none + middle + normal + 2 + normal + block + auto + auto + auto + false + false + + + eq + 10pt + #7E6F69 + row["med"] + + 0 + + + + med + + + + #FFFFFF + solid + thin + + + gt + #FFFF96 + row["low"] + + 0 + + + + + scroll + 0% + 0% + repeat + sans-serif + 11pt + normal + normal + normal + #4D4D4D + none + none + none + black + none + medium + black + none + medium + black + none + medium + black + none + medium + 0pt + 0pt + 0pt + 0pt + 0pt + 0pt + 0pt + 0pt + center + normal + normal + 2 + none + middle + normal + 2 + normal + block + auto + auto + auto + false + false + + + eq + 10pt + #7E6F69 + row["low"] + + 0 + + + + low + + + + +
+ + #808080 + solid + 1px + + 5 + 1 + + sans-serif + 9pt + italic + "* Reported issues in the above table may violate more than one PCI SSF 1.0 requirement. As such, the same issue may appear in more than one row. The total number of unique vulnerabilities are reported in the Issues by Category table." + html + + + +
+
+
+
+ + always + + + all + !params["includeCWE"].value + + + + 2 + 1 + #808080 + solid + 1px + #808080 + solid + 1px + + + 10pt + 5pt + 10pt + 5pt + 0.8472222222222222in + 7.75in + IssueCount_CWE + + + HIGH_COUNT + dataSetRow["HIGH_COUNT"] + integer + + + MED_COUNT + dataSetRow["MED_COUNT"] + integer + + + LOW_COUNT + dataSetRow["LOW_COUNT"] + integer + + + G_ROUP + dataSetRow["G_ROUP"] + string + + + cat + dataSetRow["G_ROUP"] + string + + + critical + dataSetRow["CRIT_COUNT"] + string + + + high + dataSetRow["HIGH_COUNT"] + string + + + med + dataSetRow["MED_COUNT"] + string + + + low + dataSetRow["LOW_COUNT"] + string + + + cagg + integer + SUM + + + Expression + dataSetRow["CRIT_COUNT"] + + + + + hagg + integer + SUM + + + Expression + dataSetRow["HIGH_COUNT"] + + + + + magg + integer + SUM + + + Expression + dataSetRow["MED_COUNT"] + + + + + lagg + integer + SUM + + + Expression + dataSetRow["LOW_COUNT"] + + + + + 200 + + middle + 3.75in + + + alignCenter + 1in + + + alignCenter + 1in + + + alignCenter + 1in + + + alignCenter + 1in + +
+ + verticalGroupHeaderWithBG + 12pt + #FFFFFF + solid + 1px + + scroll + #B9AEAA + 0% + 0% + repeat + serif + medium + normal + normal + normal + black + none + none + none + 0pt + 0pt + 0pt + 0pt + 1pt + 1pt + 1pt + 1pt + 0em + normal + normal + 2 + none + middle + normal + 2 + normal + block + auto + auto + auto + false + false + + + + 4 + 1 + scroll + #758894 + 0% + 0% + repeat + serif + medium + normal + normal + normal + black + none + none + none + #FFFFFF + solid + 1px + 0pt + 0pt + 0pt + 0pt + 1pt + 1pt + 1pt + 1pt + 0em + normal + normal + 2 + none + normal + 2 + normal + block + auto + auto + auto + false + false + + + + + verticalGroupHeaderWithBG + #E4E4E4 + 12pt + #808080 + solid + 1px + + scroll + 0% + 0% + repeat + serif + medium + normal + normal + normal + black + none + none + none + 0pt + 0pt + 0pt + 0pt + 1pt + 1pt + 1pt + 1pt + 0em + normal + normal + 2 + none + middle + normal + 2 + normal + block + auto + auto + auto + false + false + + + scroll + red + 0% + 0% + repeat + serif + medium + normal + normal + normal + black + none + none + none + #FFFFFF + solid + 1px + 0pt + 0pt + 0pt + 0pt + 1pt + 1pt + 1pt + 1pt + 0em + normal + normal + 2 + none + normal + 2 + normal + block + auto + auto + auto + false + false + + + + MedHighlight + scroll + #FF8C00 + 0% + 0% + repeat + serif + medium + normal + normal + normal + black + none + none + none + #FFFFFF + solid + 1px + 0pt + 0pt + 0pt + 0pt + 1pt + 1pt + 1pt + 1pt + 0em + normal + normal + 2 + none + normal + 2 + normal + block + auto + auto + auto + false + false + + + + scroll + #FFC800 + 0% + 0% + repeat + serif + medium + normal + normal + normal + black + none + none + none + #FFFFFF + solid + 1px + 0pt + 0pt + 0pt + 0pt + 1pt + 1pt + 1pt + 1pt + 0em + normal + normal + 2 + none + normal + 2 + normal + block + auto + auto + auto + false + false + + + + scroll + #FFFF96 + 0% + 0% + repeat + serif + medium + normal + normal + normal + black + none + none + none + #FFFFFF + solid + 1px + 0pt + 0pt + 0pt + 0pt + 1pt + 1pt + 1pt + 1pt + 0em + normal + normal + 2 + none + normal + 2 + normal + block + auto + auto + auto + false + false + + + +
+ + + grayWithWhiteBorder + #EDE7DE + + scroll + 0% + 0% + repeat + serif + medium + normal + normal + normal + black + none + none + none + black + none + medium + black + none + medium + #FFFFFF + solid + thin + black + none + medium + 0pt + 0pt + 0pt + 0pt + 1pt + 1pt + 1pt + 1pt + 0em + normal + normal + 2 + none + normal + 2 + normal + block + auto + auto + auto + false + false + + cellpadding + scroll + 0% + 0% + repeat + sans-serif + 11pt + normal + normal + normal + #7E6F69 + none + none + none + black + none + medium + black + none + medium + black + none + medium + black + none + medium + 0pt + 0pt + 0pt + 0pt + 1pt + 1pt + 1pt + 1pt + left + normal + normal + 2 + none + middle + normal + 2 + normal + block + auto + auto + auto + false + false + cat + + + + #FFFFFF + solid + thin + + + gt + #FF0000 + row["critical"] + + 0 + + + + + scroll + 0% + 0% + repeat + sans-serif + 11pt + normal + normal + normal + #4D4D4D + none + none + none + black + none + medium + black + none + medium + black + none + medium + black + none + medium + 0pt + 0pt + 0pt + 0pt + 0pt + 0pt + 0pt + 0pt + center + normal + normal + 2 + none + middle + normal + 2 + normal + block + auto + auto + auto + false + false + + + eq + 10pt + #7E6F69 + row["critical"] + + 0 + + + + critical + + + + #FFFFFF + solid + thin + + + gt + #FF8C00 + row["high"] + + 0 + + + + + scroll + 0% + 0% + repeat + sans-serif + 11pt + normal + normal + normal + #4D4D4D + none + none + none + black + none + medium + black + none + medium + black + none + medium + black + none + medium + 0pt + 0pt + 0pt + 0pt + 0pt + 0pt + 0pt + 0pt + center + normal + normal + 2 + none + middle + normal + 2 + normal + block + auto + auto + auto + false + false + + + eq + 10pt + #7E6F69 + row["high"] + + 0 + + + + high + + + + #FFFFFF + solid + thin + + + gt + #FFC800 + row["med"] + + 0 + + + + + scroll + 0% + 0% + repeat + sans-serif + 11pt + normal + normal + normal + #4D4D4D + none + none + none + black + none + medium + black + none + medium + black + none + medium + black + none + medium + 0pt + 0pt + 0pt + 0pt + 0pt + 0pt + 0pt + 0pt + center + normal + normal + 2 + none + middle + normal + 2 + normal + block + auto + auto + auto + false + false + + + eq + 10pt + #7E6F69 + row["med"] + + 0 + + + + med + + + + #FFFFFF + solid + thin + + + gt + #FFFF96 + row["low"] + + 0 + + + + + scroll + 0% + 0% + repeat + sans-serif + 11pt + normal + normal + normal + #4D4D4D + none + none + none + black + none + medium + black + none + medium + black + none + medium + black + none + medium + 0pt + 0pt + 0pt + 0pt + 0pt + 0pt + 0pt + 0pt + center + normal + normal + 2 + none + middle + normal + 2 + normal + block + auto + auto + auto + false + false + + + eq + 10pt + #7E6F69 + row["low"] + + 0 + + + + low + + + + +
+ + #808080 + solid + 1px + + 5 + 1 + + sans-serif + 9pt + italic + "* Reported issues in the above table may violate more than one CWE requirement. As such, the same issue may appear in more than one row. The total number of unique vulnerabilities are reported in the Issues by Category table." + html + + + +
+
+
+
+ + always + + + all + !params["includeWASC2"].value + + + + 2 + 1 + #808080 + solid + 1px + #808080 + solid + 1px + + + 10pt + 5pt + 10pt + 5pt + 0.8472222222222222in + 7.75in + IssueCount_WASC2 + + + HIGH_COUNT + dataSetRow["HIGH_COUNT"] + integer + + + MED_COUNT + dataSetRow["MED_COUNT"] + integer + + + LOW_COUNT + dataSetRow["LOW_COUNT"] + integer + + + G_ROUP + dataSetRow["G_ROUP"] + string + + + cat + dataSetRow["G_ROUP"] + string + + + critical + dataSetRow["CRIT_COUNT"] + string + + + high + dataSetRow["HIGH_COUNT"] + string + + + med + dataSetRow["MED_COUNT"] + string + + + low + dataSetRow["LOW_COUNT"] + string + + + cagg + integer + SUM + + + Expression + dataSetRow["CRIT_COUNT"] + + + + + hagg + integer + SUM + + + Expression + dataSetRow["HIGH_COUNT"] + + + + + magg + integer + SUM + + + Expression + dataSetRow["MED_COUNT"] + + + + + lagg + integer + SUM + + + Expression + dataSetRow["LOW_COUNT"] + + + + + 200 + + middle + 3.75in + + + alignCenter + 1in + + + alignCenter + 1in + + + alignCenter + 1in + + + alignCenter + 1in + +
+ + verticalGroupHeaderWithBG + 12pt + #FFFFFF + solid + 1px + + scroll + #B9AEAA + 0% + 0% + repeat + serif + medium + normal + normal + normal + black + none + none + none + 0pt + 0pt + 0pt + 0pt + 1pt + 1pt + 1pt + 1pt + 0em + normal + normal + 2 + none + middle + normal + 2 + normal + block + auto + auto + auto + false + false + + + + 4 + 1 + scroll + #758894 + 0% + 0% + repeat + serif + medium + normal + normal + normal + black + none + none + none + #FFFFFF + solid + 1px + 0pt + 0pt + 0pt + 0pt + 1pt + 1pt + 1pt + 1pt + 0em + normal + normal + 2 + none + normal + 2 + normal + block + auto + auto + auto + false + false + + + + + verticalGroupHeaderWithBG + #E4E4E4 + 12pt + #808080 + solid + 1px + + scroll + 0% + 0% + repeat + serif + medium + normal + normal + normal + black + none + none + none + 0pt + 0pt + 0pt + 0pt + 1pt + 1pt + 1pt + 1pt + 0em + normal + normal + 2 + none + middle + normal + 2 + normal + block + auto + auto + auto + false + false + + + scroll + red + 0% + 0% + repeat + serif + medium + normal + normal + normal + black + none + none + none + #FFFFFF + solid + 1px + 0pt + 0pt + 0pt + 0pt + 1pt + 1pt + 1pt + 1pt + 0em + normal + normal + 2 + none + normal + 2 + normal + block + auto + auto + auto + false + false + + + + MedHighlight + scroll + #FF8C00 + 0% + 0% + repeat + serif + medium + normal + normal + normal + black + none + none + none + #FFFFFF + solid + 1px + 0pt + 0pt + 0pt + 0pt + 1pt + 1pt + 1pt + 1pt + 0em + normal + normal + 2 + none + normal + 2 + normal + block + auto + auto + auto + false + false + + + + scroll + #FFC800 + 0% + 0% + repeat + serif + medium + normal + normal + normal + black + none + none + none + #FFFFFF + solid + 1px + 0pt + 0pt + 0pt + 0pt + 1pt + 1pt + 1pt + 1pt + 0em + normal + normal + 2 + none + normal + 2 + normal + block + auto + auto + auto + false + false + + + + scroll + #FFFF96 + 0% + 0% + repeat + serif + medium + normal + normal + normal + black + none + none + none + #FFFFFF + solid + 1px + 0pt + 0pt + 0pt + 0pt + 1pt + 1pt + 1pt + 1pt + 0em + normal + normal + 2 + none + normal + 2 + normal + block + auto + auto + auto + false + false + + + +
+ + + grayWithWhiteBorder + #EDE7DE + + scroll + 0% + 0% + repeat + serif + medium + normal + normal + normal + black + none + none + none + black + none + medium + black + none + medium + #FFFFFF + solid + thin + black + none + medium + 0pt + 0pt + 0pt + 0pt + 1pt + 1pt + 1pt + 1pt + 0em + normal + normal + 2 + none + normal + 2 + normal + block + auto + auto + auto + false + false + + cellpadding + scroll + 0% + 0% + repeat + sans-serif + 11pt + normal + normal + normal + #7E6F69 + none + none + none + black + none + medium + black + none + medium + black + none + medium + black + none + medium + 0pt + 0pt + 0pt + 0pt + 1pt + 1pt + 1pt + 1pt + left + normal + normal + 2 + none + middle + normal + 2 + normal + block + auto + auto + auto + false + false + cat + + + + #FFFFFF + solid + thin + + + gt + #FF0000 + row["critical"] + + 0 + + + + + scroll + 0% + 0% + repeat + sans-serif + 11pt + normal + normal + normal + #4D4D4D + none + none + none + black + none + medium + black + none + medium + black + none + medium + black + none + medium + 0pt + 0pt + 0pt + 0pt + 0pt + 0pt + 0pt + 0pt + center + normal + normal + 2 + none + middle + normal + 2 + normal + block + auto + auto + auto + false + false + + + eq + 10pt + #7E6F69 + row["critical"] + + 0 + + + + critical + + + + #FFFFFF + solid + thin + + + gt + #FF8C00 + row["high"] + + 0 + + + + + scroll + 0% + 0% + repeat + sans-serif + 11pt + normal + normal + normal + #4D4D4D + none + none + none + black + none + medium + black + none + medium + black + none + medium + black + none + medium + 0pt + 0pt + 0pt + 0pt + 0pt + 0pt + 0pt + 0pt + center + normal + normal + 2 + none + middle + normal + 2 + normal + block + auto + auto + auto + false + false + + + eq + 10pt + #7E6F69 + row["high"] + + 0 + + + + high + + + + #FFFFFF + solid + thin + + + gt + #FFC800 + row["med"] + + 0 + + + + + scroll + 0% + 0% + repeat + sans-serif + 11pt + normal + normal + normal + #4D4D4D + none + none + none + black + none + medium + black + none + medium + black + none + medium + black + none + medium + 0pt + 0pt + 0pt + 0pt + 0pt + 0pt + 0pt + 0pt + center + normal + normal + 2 + none + middle + normal + 2 + normal + block + auto + auto + auto + false + false + + + eq + 10pt + #7E6F69 + row["med"] + + 0 + + + + med + + + + #FFFFFF + solid + thin + + + gt + #FFFF96 + row["low"] + + 0 + + + + + scroll + 0% + 0% + repeat + sans-serif + 11pt + normal + normal + normal + #4D4D4D + none + none + none + black + none + medium + black + none + medium + black + none + medium + black + none + medium + 0pt + 0pt + 0pt + 0pt + 0pt + 0pt + 0pt + 0pt + center + normal + normal + 2 + none + middle + normal + 2 + normal + block + auto + auto + auto + false + false + + + eq + 10pt + #7E6F69 + row["low"] + + 0 + + + + low + + + + +
+ + #808080 + solid + 1px + + 5 + 1 + + sans-serif + 9pt + italic + "* Reported issues in the above table may violate more than one WASC 2.00 requirement. As such, the same issue may appear in more than one row. The total number of unique vulnerabilities are reported in the Issues by Category table." + html + + + +
+
+
+
+ + always + + + all + !params["includeSANS"].value + + + + 2 + 1 + #808080 + solid + 1px + #808080 + solid + 1px + + + 10pt + 5pt + 10pt + 5pt + 0.8472222222222222in + 7.75in + IssueCount_SANS25 + + + HIGH_COUNT + dataSetRow["HIGH_COUNT"] + integer + + + MED_COUNT + dataSetRow["MED_COUNT"] + integer + + + LOW_COUNT + dataSetRow["LOW_COUNT"] + integer + + + G_ROUP + dataSetRow["G_ROUP"] + string + + + cat + dataSetRow["G_ROUP"] + string + + + critical + dataSetRow["CRIT_COUNT"] + string + + + high + dataSetRow["HIGH_COUNT"] + string + + + med + dataSetRow["MED_COUNT"] + string + + + low + dataSetRow["LOW_COUNT"] + string + + + cagg + integer + SUM + + + Expression + dataSetRow["CRIT_COUNT"] + + + + + hagg + integer + SUM + + + Expression + dataSetRow["HIGH_COUNT"] + + + + + magg + integer + SUM + + + Expression + dataSetRow["MED_COUNT"] + + + + + lagg + integer + SUM + + + Expression + dataSetRow["LOW_COUNT"] + + + + + + middle + 3.75in + + + alignCenter + 1in + + + alignCenter + 1in + + + alignCenter + 1in + + + alignCenter + 1in + +
+ + verticalGroupHeaderWithBG + 12pt + #FFFFFF + solid + 1px + + scroll + #B9AEAA + 0% + 0% + repeat + serif + medium + normal + normal + normal + black + none + none + none + 0pt + 0pt + 0pt + 0pt + 1pt + 1pt + 1pt + 1pt + 0em + normal + normal + 2 + none + middle + normal + 2 + normal + block + auto + auto + auto + false + false + + + + 4 + 1 + scroll + #758894 + 0% + 0% + repeat + serif + medium + normal + normal + normal + black + none + none + none + #FFFFFF + solid + 1px + 0pt + 0pt + 0pt + 0pt + 1pt + 1pt + 1pt + 1pt + 0em + normal + normal + 2 + none + normal + 2 + normal + block + auto + auto + auto + false + false + + + + + verticalGroupHeaderWithBG + #E4E4E4 + 12pt + #808080 + solid + 1px + + scroll + 0% + 0% + repeat + serif + medium + normal + normal + normal + black + none + none + none + 0pt + 0pt + 0pt + 0pt + 1pt + 1pt + 1pt + 1pt + 0em + normal + normal + 2 + none + middle + normal + 2 + normal + block + auto + auto + auto + false + false + + + scroll + red + 0% + 0% + repeat + serif + medium + normal + normal + normal + black + none + none + none + #FFFFFF + solid + 1px + 0pt + 0pt + 0pt + 0pt + 1pt + 1pt + 1pt + 1pt + 0em + normal + normal + 2 + none + normal + 2 + normal + block + auto + auto + auto + false + false + + + + MedHighlight + scroll + #FF8C00 + 0% + 0% + repeat + serif + medium + normal + normal + normal + black + none + none + none + #FFFFFF + solid + 1px + 0pt + 0pt + 0pt + 0pt + 1pt + 1pt + 1pt + 1pt + 0em + normal + normal + 2 + none + normal + 2 + normal + block + auto + auto + auto + false + false + + + + scroll + #FFC800 + 0% + 0% + repeat + serif + medium + normal + normal + normal + black + none + none + none + #FFFFFF + solid + 1px + 0pt + 0pt + 0pt + 0pt + 1pt + 1pt + 1pt + 1pt + 0em + normal + normal + 2 + none + normal + 2 + normal + block + auto + auto + auto + false + false + + + + scroll + #FFFF96 + 0% + 0% + repeat + serif + medium + normal + normal + normal + black + none + none + none + #FFFFFF + solid + 1px + 0pt + 0pt + 0pt + 0pt + 1pt + 1pt + 1pt + 1pt + 0em + normal + normal + 2 + none + normal + 2 + normal + block + auto + auto + auto + false + false + + + +
+ + + grayWithWhiteBorder + #EDE7DE + + scroll + 0% + 0% + repeat + serif + medium + normal + normal + normal + black + none + none + none + black + none + medium + black + none + medium + #FFFFFF + solid + thin + black + none + medium + 0pt + 0pt + 0pt + 0pt + 1pt + 1pt + 1pt + 1pt + 0em + normal + normal + 2 + none + normal + 2 + normal + block + auto + auto + auto + false + false + + cellpadding + scroll + 0% + 0% + repeat + sans-serif + 11pt + normal + normal + normal + #7E6F69 + none + none + none + black + none + medium + black + none + medium + black + none + medium + black + none + medium + 0pt + 0pt + 0pt + 0pt + 1pt + 1pt + 1pt + 1pt + left + normal + normal + 2 + none + middle + normal + 2 + normal + block + auto + auto + auto + false + false + cat + + + + #FFFFFF + solid + thin + + + gt + #FF0000 + row["critical"] + + 0 + + + + + scroll + 0% + 0% + repeat + sans-serif + 11pt + normal + normal + normal + #4D4D4D + none + none + none + black + none + medium + black + none + medium + black + none + medium + black + none + medium + 0pt + 0pt + 0pt + 0pt + 0pt + 0pt + 0pt + 0pt + center + normal + normal + 2 + none + middle + normal + 2 + normal + block + auto + auto + auto + false + false + + + eq + 10pt + #7E6F69 + row["critical"] + + 0 + + + + critical + + + + #FFFFFF + solid + thin + + + gt + #FF8C00 + row["high"] + + 0 + + + + + scroll + 0% + 0% + repeat + sans-serif + 11pt + normal + normal + normal + #4D4D4D + none + none + none + black + none + medium + black + none + medium + black + none + medium + black + none + medium + 0pt + 0pt + 0pt + 0pt + 0pt + 0pt + 0pt + 0pt + center + normal + normal + 2 + none + middle + normal + 2 + normal + block + auto + auto + auto + false + false + + + eq + 10pt + #7E6F69 + row["high"] + + 0 + + + + high + + + + #FFFFFF + solid + thin + + + gt + #FFC800 + row["med"] + + 0 + + + + + scroll + 0% + 0% + repeat + sans-serif + 11pt + normal + normal + normal + #4D4D4D + none + none + none + black + none + medium + black + none + medium + black + none + medium + black + none + medium + 0pt + 0pt + 0pt + 0pt + 0pt + 0pt + 0pt + 0pt + center + normal + normal + 2 + none + middle + normal + 2 + normal + block + auto + auto + auto + false + false + + + eq + 10pt + #7E6F69 + row["med"] + + 0 + + + + med + + + + #FFFFFF + solid + thin + + + gt + #FFFF96 + row["low"] + + 0 + + + + + scroll + 0% + 0% + repeat + sans-serif + 11pt + normal + normal + normal + #4D4D4D + none + none + none + black + none + medium + black + none + medium + black + none + medium + black + none + medium + 0pt + 0pt + 0pt + 0pt + 0pt + 0pt + 0pt + 0pt + center + normal + normal + 2 + none + middle + normal + 2 + normal + block + auto + auto + auto + false + false + + + eq + 10pt + #7E6F69 + row["low"] + + 0 + + + + low + + + + +
+ + #808080 + solid + 1px + + 5 + 1 + + sans-serif + 9pt + italic + "* Reported issues in the above table may violate more than one CWE/SANS Top 25 requirement. As such, the same issue may appear in more than one row. The total number of unique vulnerabilities are reported in the Issues by Category table." + html + + + +
+
+
+
+ + always + + + all + !params["includeSTIG"].value + + + + 2 + 1 + #808080 + solid + 1px + #808080 + solid + 1px + + + 10pt + 5pt + 10pt + 5pt + 0.8472222222222222in + 7.75in + IssueCount_STIG + + + HIGH_COUNT + dataSetRow["HIGH_COUNT"] + integer + + + MED_COUNT + dataSetRow["MED_COUNT"] + integer + + + LOW_COUNT + dataSetRow["LOW_COUNT"] + integer + + + G_ROUP + dataSetRow["G_ROUP"] + string + + + cat + dataSetRow["G_ROUP"] + string + + + critical + dataSetRow["CRIT_COUNT"] + string + + + high + dataSetRow["HIGH_COUNT"] + string + + + med + dataSetRow["MED_COUNT"] + string + + + low + dataSetRow["LOW_COUNT"] + string + + + cagg + integer + SUM + + + Expression + dataSetRow["CRIT_COUNT"] + + + + + hagg + integer + SUM + + + Expression + dataSetRow["HIGH_COUNT"] + + + + + magg + integer + SUM + + + Expression + dataSetRow["MED_COUNT"] + + + + + lagg + integer + SUM + + + Expression + dataSetRow["LOW_COUNT"] + + + + + 200 + + middle + 3.75in + + + alignCenter + 1in + + + alignCenter + 1in + + + alignCenter + 1in + + + alignCenter + 1in + +
+ + verticalGroupHeaderWithBG + 12pt + #FFFFFF + solid + 1px + + scroll + #B9AEAA + 0% + 0% + repeat + serif + medium + normal + normal + normal + black + none + none + none + 0pt + 0pt + 0pt + 0pt + 1pt + 1pt + 1pt + 1pt + 0em + normal + normal + 2 + none + middle + normal + 2 + normal + block + auto + auto + auto + false + false + + + + 4 + 1 + scroll + #758894 + 0% + 0% + repeat + serif + medium + normal + normal + normal + black + none + none + none + #FFFFFF + solid + 1px + 0pt + 0pt + 0pt + 0pt + 1pt + 1pt + 1pt + 1pt + 0em + normal + normal + 2 + none + normal + 2 + normal + block + auto + auto + auto + false + false + + + + + verticalGroupHeaderWithBG + #E4E4E4 + 12pt + #808080 + solid + 1px + + scroll + 0% + 0% + repeat + serif + medium + normal + normal + normal + black + none + none + none + 0pt + 0pt + 0pt + 0pt + 1pt + 1pt + 1pt + 1pt + 0em + normal + normal + 2 + none + middle + normal + 2 + normal + block + auto + auto + auto + false + false + + + scroll + red + 0% + 0% + repeat + serif + medium + normal + normal + normal + black + none + none + none + #FFFFFF + solid + 1px + 0pt + 0pt + 0pt + 0pt + 1pt + 1pt + 1pt + 1pt + 0em + normal + normal + 2 + none + normal + 2 + normal + block + auto + auto + auto + false + false + + + + MedHighlight + scroll + #FF8C00 + 0% + 0% + repeat + serif + medium + normal + normal + normal + black + none + none + none + #FFFFFF + solid + 1px + 0pt + 0pt + 0pt + 0pt + 1pt + 1pt + 1pt + 1pt + 0em + normal + normal + 2 + none + normal + 2 + normal + block + auto + auto + auto + false + false + + + + scroll + #FFC800 + 0% + 0% + repeat + serif + medium + normal + normal + normal + black + none + none + none + #FFFFFF + solid + 1px + 0pt + 0pt + 0pt + 0pt + 1pt + 1pt + 1pt + 1pt + 0em + normal + normal + 2 + none + normal + 2 + normal + block + auto + auto + auto + false + false + + + + scroll + #FFFF96 + 0% + 0% + repeat + serif + medium + normal + normal + normal + black + none + none + none + #FFFFFF + solid + 1px + 0pt + 0pt + 0pt + 0pt + 1pt + 1pt + 1pt + 1pt + 0em + normal + normal + 2 + none + normal + 2 + normal + block + auto + auto + auto + false + false + + + +
+ + + grayWithWhiteBorder + #EDE7DE + + scroll + 0% + 0% + repeat + serif + medium + normal + normal + normal + black + none + none + none + black + none + medium + black + none + medium + #FFFFFF + solid + thin + black + none + medium + 0pt + 0pt + 0pt + 0pt + 1pt + 1pt + 1pt + 1pt + 0em + normal + normal + 2 + none + normal + 2 + normal + block + auto + auto + auto + false + false + + cellpadding + scroll + 0% + 0% + repeat + sans-serif + 11pt + normal + normal + normal + #7E6F69 + none + none + none + black + none + medium + black + none + medium + black + none + medium + black + none + medium + 0pt + 0pt + 0pt + 0pt + 1pt + 1pt + 1pt + 1pt + left + normal + normal + 2 + none + middle + normal + 2 + normal + block + auto + auto + auto + false + false + cat + + + + #FFFFFF + solid + thin + + + gt + #FF0000 + row["critical"] + + 0 + + + + + scroll + 0% + 0% + repeat + sans-serif + 11pt + normal + normal + normal + #4D4D4D + none + none + none + black + none + medium + black + none + medium + black + none + medium + black + none + medium + 0pt + 0pt + 0pt + 0pt + 0pt + 0pt + 0pt + 0pt + center + normal + normal + 2 + none + middle + normal + 2 + normal + block + auto + auto + auto + false + false + + + eq + 10pt + #7E6F69 + row["critical"] + + 0 + + + + critical + + + + #FFFFFF + solid + thin + + + gt + #FF8C00 + row["high"] + + 0 + + + + + scroll + 0% + 0% + repeat + sans-serif + 11pt + normal + normal + normal + #4D4D4D + none + none + none + black + none + medium + black + none + medium + black + none + medium + black + none + medium + 0pt + 0pt + 0pt + 0pt + 0pt + 0pt + 0pt + 0pt + center + normal + normal + 2 + none + middle + normal + 2 + normal + block + auto + auto + auto + false + false + + + eq + 10pt + #7E6F69 + row["high"] + + 0 + + + + high + + + + #FFFFFF + solid + thin + + + gt + #FFC800 + row["med"] + + 0 + + + + + scroll + 0% + 0% + repeat + sans-serif + 11pt + normal + normal + normal + #4D4D4D + none + none + none + black + none + medium + black + none + medium + black + none + medium + black + none + medium + 0pt + 0pt + 0pt + 0pt + 0pt + 0pt + 0pt + 0pt + center + normal + normal + 2 + none + middle + normal + 2 + normal + block + auto + auto + auto + false + false + + + eq + 10pt + #7E6F69 + row["med"] + + 0 + + + + med + + + + #FFFFFF + solid + thin + + + gt + #FFFF96 + row["low"] + + 0 + + + + + scroll + 0% + 0% + repeat + sans-serif + 11pt + normal + normal + normal + #4D4D4D + none + none + none + black + none + medium + black + none + medium + black + none + medium + black + none + medium + 0pt + 0pt + 0pt + 0pt + 0pt + 0pt + 0pt + 0pt + center + normal + normal + 2 + none + middle + normal + 2 + normal + block + auto + auto + auto + false + false + + + eq + 10pt + #7E6F69 + row["low"] + + 0 + + + + low + + + + +
+ + #808080 + solid + 1px + + 5 + 1 + + sans-serif + 9pt + italic + "* Reported issues in the above table may violate more than one DOD STIG 2r1 requirement. As such, the same issue may appear in more than one row. The total number of unique vulnerabilities are reported in the Issues by Category table." + html + + + +
+
+
+
+ + always + + + all + true + + + + 2 + 1 + #808080 + solid + 1px + #808080 + solid + 1px + + + 10pt + 5pt + 10pt + 5pt + 0.8472222222222222in + 7.75in + IssueCount_STIG410 + + + HIGH_COUNT + dataSetRow["HIGH_COUNT"] + integer + + + MED_COUNT + dataSetRow["MED_COUNT"] + integer + + + LOW_COUNT + dataSetRow["LOW_COUNT"] + integer + + + G_ROUP + dataSetRow["G_ROUP"] + string + + + cat + dataSetRow["G_ROUP"] + string + + + critical + dataSetRow["CRIT_COUNT"] + string + + + high + dataSetRow["HIGH_COUNT"] + string + + + med + dataSetRow["MED_COUNT"] + string + + + low + dataSetRow["LOW_COUNT"] + string + + + cagg + integer + SUM + + + Expression + dataSetRow["CRIT_COUNT"] + + + + + hagg + integer + SUM + + + Expression + dataSetRow["HIGH_COUNT"] + + + + + magg + integer + SUM + + + Expression + dataSetRow["MED_COUNT"] + + + + + lagg + integer + SUM + + + Expression + dataSetRow["LOW_COUNT"] + + + + + 200 + + middle + 3.75in + + + alignCenter + 1in + + + alignCenter + 1in + + + alignCenter + 1in + + + alignCenter + 1in + +
+ + verticalGroupHeaderWithBG + 12pt + #FFFFFF + solid + 1px + + scroll + #B9AEAA + 0% + 0% + repeat + serif + medium + normal + normal + normal + black + none + none + none + 0pt + 0pt + 0pt + 0pt + 1pt + 1pt + 1pt + 1pt + 0em + normal + normal + 2 + none + middle + normal + 2 + normal + block + auto + auto + auto + false + false + + + + 4 + 1 + scroll + #758894 + 0% + 0% + repeat + serif + medium + normal + normal + normal + black + none + none + none + #FFFFFF + solid + 1px + 0pt + 0pt + 0pt + 0pt + 1pt + 1pt + 1pt + 1pt + 0em + normal + normal + 2 + none + normal + 2 + normal + block + auto + auto + auto + false + false + + + + + verticalGroupHeaderWithBG + #E4E4E4 + 12pt + #808080 + solid + 1px + + scroll + 0% + 0% + repeat + serif + medium + normal + normal + normal + black + none + none + none + 0pt + 0pt + 0pt + 0pt + 1pt + 1pt + 1pt + 1pt + 0em + normal + normal + 2 + none + middle + normal + 2 + normal + block + auto + auto + auto + false + false + + + scroll + red + 0% + 0% + repeat + serif + medium + normal + normal + normal + black + none + none + none + #FFFFFF + solid + 1px + 0pt + 0pt + 0pt + 0pt + 1pt + 1pt + 1pt + 1pt + 0em + normal + normal + 2 + none + normal + 2 + normal + block + auto + auto + auto + false + false + + + + MedHighlight + scroll + #FF8C00 + 0% + 0% + repeat + serif + medium + normal + normal + normal + black + none + none + none + #FFFFFF + solid + 1px + 0pt + 0pt + 0pt + 0pt + 1pt + 1pt + 1pt + 1pt + 0em + normal + normal + 2 + none + normal + 2 + normal + block + auto + auto + auto + false + false + + + + scroll + #FFC800 + 0% + 0% + repeat + serif + medium + normal + normal + normal + black + none + none + none + #FFFFFF + solid + 1px + 0pt + 0pt + 0pt + 0pt + 1pt + 1pt + 1pt + 1pt + 0em + normal + normal + 2 + none + normal + 2 + normal + block + auto + auto + auto + false + false + + + + scroll + #FFFF96 + 0% + 0% + repeat + serif + medium + normal + normal + normal + black + none + none + none + #FFFFFF + solid + 1px + 0pt + 0pt + 0pt + 0pt + 1pt + 1pt + 1pt + 1pt + 0em + normal + normal + 2 + none + normal + 2 + normal + block + auto + auto + auto + false + false + + + +
+ + + grayWithWhiteBorder + #EDE7DE + + scroll + 0% + 0% + repeat + serif + medium + normal + normal + normal + black + none + none + none + black + none + medium + black + none + medium + #FFFFFF + solid + thin + black + none + medium + 0pt + 0pt + 0pt + 0pt + 1pt + 1pt + 1pt + 1pt + 0em + normal + normal + 2 + none + normal + 2 + normal + block + auto + auto + auto + false + false + + cellpadding + scroll + 0% + 0% + repeat + sans-serif + 11pt + normal + normal + normal + #7E6F69 + none + none + none + black + none + medium + black + none + medium + black + none + medium + black + none + medium + 0pt + 0pt + 0pt + 0pt + 1pt + 1pt + 1pt + 1pt + left + normal + normal + 2 + none + middle + normal + 2 + normal + block + auto + auto + auto + false + false + cat + + + + #FFFFFF + solid + thin + + + gt + #FF0000 + row["critical"] + + 0 + + + + + scroll + 0% + 0% + repeat + sans-serif + 11pt + normal + normal + normal + #4D4D4D + none + none + none + black + none + medium + black + none + medium + black + none + medium + black + none + medium + 0pt + 0pt + 0pt + 0pt + 0pt + 0pt + 0pt + 0pt + center + normal + normal + 2 + none + middle + normal + 2 + normal + block + auto + auto + auto + false + false + + + eq + 10pt + #7E6F69 + row["critical"] + + 0 + + + + critical + + + + #FFFFFF + solid + thin + + + gt + #FF8C00 + row["high"] + + 0 + + + + + scroll + 0% + 0% + repeat + sans-serif + 11pt + normal + normal + normal + #4D4D4D + none + none + none + black + none + medium + black + none + medium + black + none + medium + black + none + medium + 0pt + 0pt + 0pt + 0pt + 0pt + 0pt + 0pt + 0pt + center + normal + normal + 2 + none + middle + normal + 2 + normal + block + auto + auto + auto + false + false + + + eq + 10pt + #7E6F69 + row["high"] + + 0 + + + + high + + + + #FFFFFF + solid + thin + + + gt + #FFC800 + row["med"] + + 0 + + + + + scroll + 0% + 0% + repeat + sans-serif + 11pt + normal + normal + normal + #4D4D4D + none + none + none + black + none + medium + black + none + medium + black + none + medium + black + none + medium + 0pt + 0pt + 0pt + 0pt + 0pt + 0pt + 0pt + 0pt + center + normal + normal + 2 + none + middle + normal + 2 + normal + block + auto + auto + auto + false + false + + + eq + 10pt + #7E6F69 + row["med"] + + 0 + + + + med + + + + #FFFFFF + solid + thin + + + gt + #FFFF96 + row["low"] + + 0 + + + + + scroll + 0% + 0% + repeat + sans-serif + 11pt + normal + normal + normal + #4D4D4D + none + none + none + black + none + medium + black + none + medium + black + none + medium + black + none + medium + 0pt + 0pt + 0pt + 0pt + 0pt + 0pt + 0pt + 0pt + center + normal + normal + 2 + none + middle + normal + 2 + normal + block + auto + auto + auto + false + false + + + eq + 10pt + #7E6F69 + row["low"] + + 0 + + + + low + + + + +
+ + #808080 + solid + 1px + + 5 + 1 + + sans-serif + 9pt + italic + "* Reported issues in the above table may violate more than one DISA STIG 4.10 requirement. As such, the same issue may appear in more than one row. The total number of unique vulnerabilities are reported in the Issues by Category table." + html + + + +
+
+
+
+ + always + + + all + !params["includeSTIG51"].value + + + + 2 + 1 + #808080 + solid + 1px + #808080 + solid + 1px + + + 10pt + 5pt + 10pt + 5pt + 0.8472222222222222in + 7.75in + IssueCount_STIG51 + + + HIGH_COUNT + dataSetRow["HIGH_COUNT"] + integer + + + MED_COUNT + dataSetRow["MED_COUNT"] + integer + + + LOW_COUNT + dataSetRow["LOW_COUNT"] + integer + + + G_ROUP + dataSetRow["G_ROUP"] + string + + + cat + dataSetRow["G_ROUP"] + string + + + critical + dataSetRow["CRIT_COUNT"] + string + + + high + dataSetRow["HIGH_COUNT"] + string + + + med + dataSetRow["MED_COUNT"] + string + + + low + dataSetRow["LOW_COUNT"] + string + + + cagg + integer + SUM + + + Expression + dataSetRow["CRIT_COUNT"] + + + + + hagg + integer + SUM + + + Expression + dataSetRow["HIGH_COUNT"] + + + + + magg + integer + SUM + + + Expression + dataSetRow["MED_COUNT"] + + + + + lagg + integer + SUM + + + Expression + dataSetRow["LOW_COUNT"] + + + + + 200 + + middle + 3.75in + + + alignCenter + 1in + + + alignCenter + 1in + + + alignCenter + 1in + + + alignCenter + 1in + +
+ + verticalGroupHeaderWithBG + 12pt + #FFFFFF + solid + 1px + + scroll + #B9AEAA + 0% + 0% + repeat + serif + medium + normal + normal + normal + black + none + none + none + 0pt + 0pt + 0pt + 0pt + 1pt + 1pt + 1pt + 1pt + 0em + normal + normal + 2 + none + middle + normal + 2 + normal + block + auto + auto + auto + false + false + + + + 4 + 1 + scroll + #758894 + 0% + 0% + repeat + serif + medium + normal + normal + normal + black + none + none + none + #FFFFFF + solid + 1px + 0pt + 0pt + 0pt + 0pt + 1pt + 1pt + 1pt + 1pt + 0em + normal + normal + 2 + none + normal + 2 + normal + block + auto + auto + auto + false + false + + + + + verticalGroupHeaderWithBG + #E4E4E4 + 12pt + #808080 + solid + 1px + + scroll + 0% + 0% + repeat + serif + medium + normal + normal + normal + black + none + none + none + 0pt + 0pt + 0pt + 0pt + 1pt + 1pt + 1pt + 1pt + 0em + normal + normal + 2 + none + middle + normal + 2 + normal + block + auto + auto + auto + false + false + + + scroll + red + 0% + 0% + repeat + serif + medium + normal + normal + normal + black + none + none + none + #FFFFFF + solid + 1px + 0pt + 0pt + 0pt + 0pt + 1pt + 1pt + 1pt + 1pt + 0em + normal + normal + 2 + none + normal + 2 + normal + block + auto + auto + auto + false + false + + + + MedHighlight + scroll + #FF8C00 + 0% + 0% + repeat + serif + medium + normal + normal + normal + black + none + none + none + #FFFFFF + solid + 1px + 0pt + 0pt + 0pt + 0pt + 1pt + 1pt + 1pt + 1pt + 0em + normal + normal + 2 + none + normal + 2 + normal + block + auto + auto + auto + false + false + + + + scroll + #FFC800 + 0% + 0% + repeat + serif + medium + normal + normal + normal + black + none + none + none + #FFFFFF + solid + 1px + 0pt + 0pt + 0pt + 0pt + 1pt + 1pt + 1pt + 1pt + 0em + normal + normal + 2 + none + normal + 2 + normal + block + auto + auto + auto + false + false + + + + scroll + #FFFF96 + 0% + 0% + repeat + serif + medium + normal + normal + normal + black + none + none + none + #FFFFFF + solid + 1px + 0pt + 0pt + 0pt + 0pt + 1pt + 1pt + 1pt + 1pt + 0em + normal + normal + 2 + none + normal + 2 + normal + block + auto + auto + auto + false + false + + + +
+ + + grayWithWhiteBorder + #EDE7DE + + scroll + 0% + 0% + repeat + serif + medium + normal + normal + normal + black + none + none + none + black + none + medium + black + none + medium + #FFFFFF + solid + thin + black + none + medium + 0pt + 0pt + 0pt + 0pt + 1pt + 1pt + 1pt + 1pt + 0em + normal + normal + 2 + none + normal + 2 + normal + block + auto + auto + auto + false + false + + cellpadding + scroll + 0% + 0% + repeat + sans-serif + 11pt + normal + normal + normal + #7E6F69 + none + none + none + black + none + medium + black + none + medium + black + none + medium + black + none + medium + 0pt + 0pt + 0pt + 0pt + 1pt + 1pt + 1pt + 1pt + left + normal + normal + 2 + none + middle + normal + 2 + normal + block + auto + auto + auto + false + false + cat + + + + #FFFFFF + solid + thin + + + gt + #FF0000 + row["critical"] + + 0 + + + + + scroll + 0% + 0% + repeat + sans-serif + 11pt + normal + normal + normal + #4D4D4D + none + none + none + black + none + medium + black + none + medium + black + none + medium + black + none + medium + 0pt + 0pt + 0pt + 0pt + 0pt + 0pt + 0pt + 0pt + center + normal + normal + 2 + none + middle + normal + 2 + normal + block + auto + auto + auto + false + false + + + eq + 10pt + #7E6F69 + row["critical"] + + 0 + + + + critical + + + + #FFFFFF + solid + thin + + + gt + #FF8C00 + row["high"] + + 0 + + + + + scroll + 0% + 0% + repeat + sans-serif + 11pt + normal + normal + normal + #4D4D4D + none + none + none + black + none + medium + black + none + medium + black + none + medium + black + none + medium + 0pt + 0pt + 0pt + 0pt + 0pt + 0pt + 0pt + 0pt + center + normal + normal + 2 + none + middle + normal + 2 + normal + block + auto + auto + auto + false + false + + + eq + 10pt + #7E6F69 + row["high"] + + 0 + + + + high + + + + #FFFFFF + solid + thin + + + gt + #FFC800 + row["med"] + + 0 + + + + + scroll + 0% + 0% + repeat + sans-serif + 11pt + normal + normal + normal + #4D4D4D + none + none + none + black + none + medium + black + none + medium + black + none + medium + black + none + medium + 0pt + 0pt + 0pt + 0pt + 0pt + 0pt + 0pt + 0pt + center + normal + normal + 2 + none + middle + normal + 2 + normal + block + auto + auto + auto + false + false + + + eq + 10pt + #7E6F69 + row["med"] + + 0 + + + + med + + + + #FFFFFF + solid + thin + + + gt + #FFFF96 + row["low"] + + 0 + + + + + scroll + 0% + 0% + repeat + sans-serif + 11pt + normal + normal + normal + #4D4D4D + none + none + none + black + none + medium + black + none + medium + black + none + medium + black + none + medium + 0pt + 0pt + 0pt + 0pt + 0pt + 0pt + 0pt + 0pt + center + normal + normal + 2 + none + middle + normal + 2 + normal + block + auto + auto + auto + false + false + + + eq + 10pt + #7E6F69 + row["low"] + + 0 + + + + low + + + + +
+ + #808080 + solid + 1px + + 5 + 1 + + sans-serif + 9pt + italic + "* Reported issues in the above table may violate more than one DISA STIG 5.1 requirement. As such, the same issue may appear in more than one row. The total number of unique vulnerabilities are reported in the Issues by Category table." + html + + + +
+
+
+
+
+ + #808080 + solid + 1px + #808080 + solid + 1px + #808080 + solid + 1px + #808080 + solid + 1px + Simple MasterPage + always + 100% + + + all + !params["includeAppendixA"].value + + + + + #DC7F04 + #808080 + solid + 1px + + 1 + 1 + + + + + + 1 + 1 + + + + AuditedIssueDetails + + + all + rowsReturned = Total.count(); rowsReturned <1; + + + + + ISSUEINSTANCEID + dataSetRow["ISSUEINSTANCEID"] + string + + + FILENAME + dataSetRow["FILENAME"] + string + + + LINENUMBER + dataSetRow["LINENUMBER"] + integer + + + CATEGORY + dataSetRow["CATEGORY"] + string + + + PACKAGENAME + dataSetRow["PACKAGENAME"] + string + + + SOURCE + dataSetRow["SOURCE"] + string + + + SINK + dataSetRow["SINK"] + string + + + FRIORITY + dataSetRow["FRIORITY"] + string + + + NAME + dataSetRow["CATEGORY"] + string + + + Column Binding_1 + packageName + "Package: " + dataSetRow["PACKAGENAME"] + string + + + Column Binding_2 + comments + "Comment:" + string + + + Column Binding_3 + instance file + dataSetRow["FILENAME"] + ":" + dataSetRow["LINENUMBER"] + string + + + Column Binding_6 + smeth + if ((dataSetRow["SOURCE"] == null) || (dataSetRow["SOURCE"] == "")) "N/A" ; else dataSetRow["SOURCE"]; + string + + + Column Binding_7 + if ((dataSetRow["SINK"] == null) || (dataSetRow["SINK"] == ""))"N/A" ; else dataSetRow["SINK"]; + string + + + Column Binding_8 + dataSetRow["CATEGORY"] + string + + + Column Binding_11 + if ((dataSetRow["SOURCEFILE"]== null) || (dataSetRow["SOURCEFILE"] == "")) "N/A"; else dataSetRow["SOURCEFILE"]; + string + + + Column Binding_12 + issueID + dataSetRow["ISSUEINSTANCEID"] + string + + + METHOD + dataSetRow["METHOD"] + string + + + ISSUE_ID + dataSetRow["ISSUE_ID"] + decimal + + + Column Binding_9 + dataSetRow["ISSUE_ID"] + string + + + Column Binding_10 + dataSetRow["METHOD"] + string + + + auditComment + dataSetRow["ACOMMENT"] + string + + + auditDate + new Date(dataSetRow["AUDITTIME"]) + date-time + + + auditUser + dataSetRow["USERNAME"] + string + + + attrName + dataSetRow["ATTRNAME"] + string + + + attrValue + dataSetRow["ATTRVALUE"] + string + + + AttrVal + dataSetRow["ATTRVALUE"] + string + + + acomment + dataSetRow["ACOMMENT"] + string + + + SOURCEFILE + dataSetRow["SOURCEFILE"] + string + + + AUDITTIME + dataSetRow["AUDITTIME"] + decimal + + + Column Binding_5 + dataSetRow["ATTRNAME"]+":" + string + + + package + "Package: " +dataSetRow["PACKAGENAME"] + string + + + priority + dataSetRow["FRIORITY"] + string + + + ENGINETYPE + dataSetRow["ENGINETYPE"] + string + true + + + enginePriority + enginePriority + dataSetRow["ENGINEPRIORITY"] + string + true + + + + 'Appendix A - Audited Issue Details' + + 1000 + + NewListGroup1 + none + asc + row["NAME"] + + row["NAME"] + + true + false + auto + auto + auto +
+ + 10pt + 5pt + 5pt + 7.75in + + + + #758894 + + scroll + 0% + 0% + repeat + sans-serif + 12pt + bold + normal + normal + #FFFFFF + none + none + none + black + none + medium + black + none + medium + black + none + medium + black + none + medium + 0pt + 0pt + 0pt + 0pt + 1pt + 1pt + 1pt + 1pt + left + normal + normal + 2 + none + middle + normal + 2 + normal + block + auto + auto + auto + false + false + NAME + + + bookmark-link + row["CATEGORY"] + + + + + + +
+
+ + NewListGroup2 + none + asc + row["PACKAGENAME"] + + row["PACKAGENAME"] + + true + false + auto + auto + auto +
+ + #FFFFFF + solid + thin + 0pt + 5pt + 5pt + 7.75in + + + all + row["URL"] != null + + + + 3.5in + + + 3.5in + + + 0.75in + + + listSubHeader + #FFFFFF + solid + 1px + + 3 + 1 + #B9AEAA + + alignCenter + scroll + 0% + 0% + repeat + sans-serif + 12pt + bold + normal + normal + #4D4D4D + none + none + none + black + none + medium + black + none + medium + black + none + medium + black + none + medium + 0pt + 0pt + 0pt + 0pt + 1pt + 1pt + 1pt + 1pt + left + normal + normal + 2 + none + middle + normal + 2 + normal + block + auto + auto + auto + false + false + package + + + + + listSubHeader + #FFFFFF + solid + 1px + + + + + 1 + 1 + #FFFFFF + solid + thin + 1pt + + + + #FFFFFF + solid + thin + 2pt + 0pt + + + + +
+
+ + IssueId + none + asc + row["ISSUE_ID"] + false + false + auto + auto + auto +
+ + #F1EEEB + #B9AEAA + solid + 1px + 0pt + 5pt + 5pt + 7.75in + + 3.5in + + + 3.5in + + + 0.75in + + + middle + + 1 + 1 + #FFFFFF + solid + 1px + #FFFFFF + solid + 1px + + scroll + 0% + 0% + repeat + sans-serif + 10pt + normal + normal + normal + #4D4D4D + none + none + none + black + none + medium + black + none + medium + black + none + medium + black + none + medium + 0pt + 0pt + 0pt + 0pt + 1pt + 1pt + 1pt + 1pt + normal + normal + 2 + none + middle + normal + 2 + normal + block + auto + auto + auto + false + false + Column Binding_3 + + + hyperlink + params["serverURL"].value + "/html/ssc/version/" + params["projectversionid"].value+"/fix/"+row["ISSUE_ID"]+"/?projectName=" + params["projectNameHidden"].value + "&projectVersionName="+params["projectVersionNameHidden"].value + "&issue="+row["ISSUEINSTANCEID"] + "&engineType=" + row["ENGINETYPE"] + _blank + + + + + + 1 + 1 + #FFFFFF + solid + 1px + + "Courier" + #4D4D4D + Column Binding_7 + + + + middle + + + eq + #FF0000 + row["priority"] + + 'Critical' + + + + eq + #FF8C00 + row["priority"] + + 'High' + + + + eq + #FFC800 + row["priority"] + + 'Medium' + + + + eq + #FFFF96 + row["priority"] + + 'Low' + + + + + scroll + 0% + 0% + repeat + sans-serif + 12pt + normal + normal + normal + black + none + none + none + black + none + medium + black + none + medium + black + none + medium + black + none + medium + 0pt + 0pt + 0pt + 0pt + 1pt + 1pt + 1pt + 1pt + center + normal + normal + 2 + none + normal + 2 + normal + block + auto + auto + auto + false + false + priority + + + + + middle + + + all + // hide if (friority == enginePriority) + (!util.isPriorityOverrideEnabled()) || (row["priority"] == row["enginePriority"]) + + + + #FFFFFF + solid + 1px + #FFFFFF + solid + 1px + + + #FFFFFF + solid + 1px + + right + sans-serif + 10pt + normal + normal + normal + 'Originally: ' + html + + + + middle + + + eq + #FF0000 + row["enginePriority"] + + 'Critical' + + + + eq + #FF8C00 + row["enginePriority"] + + 'High' + + + + eq + #FFC800 + row["enginePriority"] + + 'Medium' + + + + eq + #FFFF96 + row["enginePriority"] + + 'Low' + + + + + center + sans-serif + 10pt + normal + normal + normal + enginePriority + + + + + middle + + + all + row["SOURCEFILE"] == null || "".equals(row["SOURCEFILE"]) + + + + #FFFFFF + solid + 1px + + + scroll + 0% + 0% + repeat + sans-serif + 10pt + normal + normal + normal + #4D4D4D + none + none + none + black + none + medium + black + none + medium + black + none + medium + black + none + medium + 0pt + 0pt + 0pt + 0pt + 1pt + 1pt + 1pt + 1pt + normal + normal + 2 + none + normal + 2 + normal + block + auto + auto + auto + false + false + Column Binding_11 + + + + 2 + 1 + + + scroll + 0% + 0% + repeat + "Courier" + 10pt + normal + normal + normal + #4D4D4D + none + none + none + black + none + medium + black + none + medium + black + none + medium + black + none + medium + 0pt + 0pt + 0pt + 0pt + 1pt + 1pt + 1pt + 1pt + normal + normal + 2 + none + normal + 2 + normal + block + auto + auto + auto + false + false + Column Binding_6 + + + + + + + NewListGroup1 + none + asc + row["attrName"] + true + false + auto + auto + auto + + + row["attrName"] + asc + + +
+ + #F1EEEB + 5pt + 5pt + 7.75in + + 1.5in + + + + middle + + #FFFFFF + solid + 1px + #FFFFFF + solid + 1px + + scroll + 0% + 0% + repeat + sans-serif + 10pt + normal + normal + normal + #7E6F69 + none + none + none + black + none + medium + black + none + medium + black + none + medium + black + none + medium + 0pt + 0pt + 0pt + 0pt + 1pt + 1pt + 1pt + 1pt + left + normal + normal + 2 + none + top + normal + 2 + normal + block + auto + auto + auto + false + false + Column Binding_5 + + + + #FFFFFF + solid + 1px + #FFFFFF + solid + 1px + #FFFFFF + solid + 1px + + scroll + 0% + 0% + repeat + sans-serif + 10pt + normal + normal + normal + #4D4D4D + none + none + none + black + none + medium + black + none + medium + black + none + medium + black + none + medium + 0pt + 0pt + 0pt + 0pt + 1pt + 1pt + 1pt + 1pt + normal + normal + 2 + none + middle + normal + 2 + normal + block + auto + auto + auto + false + false + AttrVal + + + + +
+
+
+ + + NewListGroup1 + none + asc + row["AUDITTIME"] + true + false + auto + auto + auto + + + row["AUDITTIME"] + asc + + +
+ + 0pt + 5pt + 5pt + 7.75in + + + all + row["acomment"] == null + + + + 1.5in + + + + middle + + commentBlock + #FFFFFF + solid + 1px + 1pt + 1pt + 1pt + + scroll + 0% + 0% + repeat + sans-serif + 10pt + normal + normal + normal + #7E6F69 + none + none + none + black + none + medium + black + none + medium + black + none + medium + black + none + medium + 0pt + 0pt + 0pt + 0pt + 1pt + 1pt + 1pt + 1pt + left + normal + normal + 2 + none + top + normal + 2 + normal + block + auto + auto + auto + false + false + "<b>" +row["auditUser"] + "</b><br>" + row["auditDate"].toDateString(); + html + + + + commentBlock + #FFFFFF + solid + 1px + #FFFFFF + solid + 1px + 1pt + 1pt + 1pt + top + + scroll + 0% + 0% + repeat + sans-serif + 10pt + normal + normal + normal + #4D4D4D + none + none + none + black + none + medium + black + none + medium + black + none + medium + black + none + medium + 0pt + 0pt + 0pt + 0pt + 1pt + 1pt + 1pt + 1pt + normal + normal + 2 + none + middle + normal + 2 + normal + block + auto + auto + auto + false + false + acomment + + + + +
+
+
+
+
+ + #B9AEAA + solid + 1px + 0pt + 5pt + 5pt + 5pt + 7.75in + + + + + +
+
+
+ +
+
+
+ + #808080 + solid + 1px + #808080 + solid + 1px + #808080 + solid + 1px + #808080 + solid + 1px + Simple MasterPage + always + 100% + + + all + !params["includeAppendixB"].value + + + + + #DC7F04 + #808080 + solid + 1px + + 1 + 1 + + + + + + + #808080 + solid + 1px + + + + 0pt + 5pt + 10pt + 5pt + 0.8472222222222222in + 7.75in + SuppressedIssueCount_Category + + + all + rowsReturned = Total.count(); rowsReturned <1; + + + + + HIGH_COUNT + dataSetRow["HIGH_COUNT"] + integer + + + MED_COUNT + dataSetRow["MED_COUNT"] + integer + + + LOW_COUNT + dataSetRow["LOW_COUNT"] + integer + + + G_ROUP + dataSetRow["G_ROUP"] + string + + + cat + dataSetRow["G_ROUP"] + string + + + critical + dataSetRow["CRIT_COUNT"] + string + + + high + dataSetRow["HIGH_COUNT"] + string + + + med + dataSetRow["MED_COUNT"] + string + + + low + dataSetRow["LOW_COUNT"] + string + + + cagg + integer + SUM + + + Expression + dataSetRow["CRIT_COUNT"] + + + + + hagg + integer + SUM + + + Expression + dataSetRow["HIGH_COUNT"] + + + + + magg + integer + SUM + + + Expression + dataSetRow["MED_COUNT"] + + + + + lagg + integer + SUM + + + Expression + dataSetRow["LOW_COUNT"] + + + + + CATEGORY + dataSetRow["G_ROUP"] + string + + + 80 + + middle + 3.75in + + + alignCenter + 1in + + + alignCenter + 1in + + + alignCenter + 1in + + + alignCenter + 1in + +
+ + verticalGroupHeaderWithBG + 12pt + #FFFFFF + solid + 1px + + scroll + #B9AEAA + 0% + 0% + repeat + serif + medium + normal + normal + normal + black + none + none + none + 0pt + 0pt + 0pt + 0pt + 1pt + 1pt + 1pt + 1pt + 0em + normal + normal + 2 + none + middle + normal + 2 + normal + block + auto + auto + auto + false + false + + + + 4 + 1 + scroll + #758894 + 0% + 0% + repeat + serif + medium + normal + normal + normal + black + none + none + none + #FFFFFF + solid + 1px + 0pt + 0pt + 0pt + 0pt + 1pt + 1pt + 1pt + 1pt + 0em + normal + normal + 2 + none + normal + 2 + normal + block + auto + auto + auto + false + false + + + + + verticalGroupHeaderWithBG + #E4E4E4 + 12pt + #808080 + solid + 1px + + scroll + 0% + 0% + repeat + serif + medium + normal + normal + normal + black + none + none + none + 0pt + 0pt + 0pt + 0pt + 1pt + 1pt + 1pt + 1pt + 0em + normal + normal + 2 + none + middle + normal + 2 + normal + block + auto + auto + auto + false + false + + + scroll + red + 0% + 0% + repeat + serif + medium + normal + normal + normal + black + none + none + none + #FFFFFF + solid + 1px + 0pt + 0pt + 0pt + 0pt + 1pt + 1pt + 1pt + 1pt + 0em + normal + normal + 2 + none + normal + 2 + normal + block + auto + auto + auto + false + false + + + + MedHighlight + scroll + #FF8C00 + 0% + 0% + repeat + serif + medium + normal + normal + normal + black + none + none + none + #FFFFFF + solid + 1px + 0pt + 0pt + 0pt + 0pt + 1pt + 1pt + 1pt + 1pt + 0em + normal + normal + 2 + none + normal + 2 + normal + block + auto + auto + auto + false + false + + + + scroll + #FFC800 + 0% + 0% + repeat + serif + medium + normal + normal + normal + black + none + none + none + #FFFFFF + solid + 1px + 0pt + 0pt + 0pt + 0pt + 1pt + 1pt + 1pt + 1pt + 0em + normal + normal + 2 + none + normal + 2 + normal + block + auto + auto + auto + false + false + + + + scroll + #FFFF96 + 0% + 0% + repeat + serif + medium + normal + normal + normal + black + none + none + none + #FFFFFF + solid + 1px + 0pt + 0pt + 0pt + 0pt + 1pt + 1pt + 1pt + 1pt + 0em + normal + normal + 2 + none + normal + 2 + normal + block + auto + auto + auto + false + false + + + +
+ + + grayWithWhiteBorder + #EDE7DE + + scroll + 0% + 0% + repeat + serif + medium + normal + normal + normal + black + none + none + none + black + none + medium + black + none + medium + #FFFFFF + solid + thin + black + none + medium + 0pt + 0pt + 0pt + 0pt + 1pt + 1pt + 1pt + 1pt + 0em + normal + normal + 2 + none + normal + 2 + normal + block + auto + auto + auto + false + false + + cellpadding + scroll + 0% + 0% + repeat + sans-serif + 11pt + normal + normal + normal + #7E6F69 + none + none + none + black + none + medium + black + none + medium + black + none + medium + black + none + medium + 0pt + 0pt + 0pt + 0pt + 1pt + 1pt + 1pt + 1pt + left + normal + normal + 2 + none + middle + normal + 2 + normal + block + auto + auto + auto + false + false + cat + + + bookmark-link + row["CATEGORY"] + + + + + + #FFFFFF + solid + thin + + + gt + #FF0000 + row["critical"] + + 0 + + + + + scroll + 0% + 0% + repeat + sans-serif + 11pt + normal + normal + normal + #4D4D4D + none + none + none + black + none + medium + black + none + medium + black + none + medium + black + none + medium + 0pt + 0pt + 0pt + 0pt + 0pt + 0pt + 0pt + 0pt + center + normal + normal + 2 + none + middle + normal + 2 + normal + block + auto + auto + auto + false + false + + + eq + 10pt + #7E6F69 + row["critical"] + + 0 + + + + critical + + + + #FFFFFF + solid + thin + + + gt + #FF8C00 + row["high"] + + 0 + + + + + scroll + 0% + 0% + repeat + sans-serif + 11pt + normal + normal + normal + #4D4D4D + none + none + none + black + none + medium + black + none + medium + black + none + medium + black + none + medium + 0pt + 0pt + 0pt + 0pt + 0pt + 0pt + 0pt + 0pt + center + normal + normal + 2 + none + middle + normal + 2 + normal + block + auto + auto + auto + false + false + + + eq + 10pt + #7E6F69 + row["high"] + + 0 + + + + high + + + + #FFFFFF + solid + thin + + + gt + #FFC800 + row["med"] + + 0 + + + + + scroll + 0% + 0% + repeat + sans-serif + 11pt + normal + normal + normal + #4D4D4D + none + none + none + black + none + medium + black + none + medium + black + none + medium + black + none + medium + 0pt + 0pt + 0pt + 0pt + 0pt + 0pt + 0pt + 0pt + center + normal + normal + 2 + none + middle + normal + 2 + normal + block + auto + auto + auto + false + false + + + eq + 10pt + #7E6F69 + row["med"] + + 0 + + + + med + + + + #FFFFFF + solid + thin + + + gt + #FFFF96 + row["low"] + + 0 + + + + + scroll + 0% + 0% + repeat + sans-serif + 11pt + normal + normal + normal + #4D4D4D + none + none + none + black + none + medium + black + none + medium + black + none + medium + black + none + medium + 0pt + 0pt + 0pt + 0pt + 0pt + 0pt + 0pt + 0pt + center + normal + normal + 2 + none + middle + normal + 2 + normal + block + auto + auto + auto + false + false + + + eq + 10pt + #7E6F69 + row["low"] + + 0 + + + + low + + + + +
+ + #808080 + solid + 1px + + + + + + scroll + 0% + 0% + repeat + sans-serif + 11pt + bold + normal + normal + #4D4D4D + none + none + none + black + none + medium + black + none + medium + black + none + medium + black + none + medium + 0pt + 0pt + 0pt + 0pt + 0pt + 0pt + 0pt + 0pt + center + normal + normal + 2 + none + middle + normal + 2 + normal + block + auto + auto + auto + false + false + cagg + + + + + scroll + 0% + 0% + repeat + sans-serif + 11pt + bold + normal + normal + #4D4D4D + none + none + none + black + none + medium + black + none + medium + black + none + medium + black + none + medium + 0pt + 0pt + 0pt + 0pt + 0pt + 0pt + 0pt + 0pt + center + normal + normal + 2 + none + middle + normal + 2 + normal + block + auto + auto + auto + false + false + hagg + + + + + scroll + 0% + 0% + repeat + sans-serif + 11pt + bold + normal + normal + #4D4D4D + none + none + none + black + none + medium + black + none + medium + black + none + medium + black + none + medium + 0pt + 0pt + 0pt + 0pt + 0pt + 0pt + 0pt + 0pt + center + normal + normal + 2 + none + middle + normal + 2 + normal + block + auto + auto + auto + false + false + magg + + + + + scroll + 0% + 0% + repeat + sans-serif + 11pt + bold + normal + normal + #4D4D4D + none + none + none + black + none + medium + black + none + medium + black + none + medium + black + none + medium + 0pt + 0pt + 0pt + 0pt + 0pt + 0pt + 0pt + 0pt + center + normal + normal + 2 + none + middle + normal + 2 + normal + block + auto + auto + auto + false + false + lagg + + + +
+
+ +
+
+
+ + #808080 + solid + 1px + #808080 + solid + 1px + #808080 + solid + 1px + #808080 + solid + 1px + Simple MasterPage + always + 100% + + + all + !params["includeAppendixC"].value + + + + + #DC7F04 + #808080 + solid + 1px + + 1 + 1 + + + + + #808080 + solid + 1px + + + + + + 10pt + 5pt + 10pt + 5pt + 0.8472222222222222in + 7.75in + NewIssueCount_Category + + + all + rowsReturned = Total.count(); rowsReturned <1; + + + + + HIGH_COUNT + dataSetRow["HIGH_COUNT"] + integer + + + MED_COUNT + dataSetRow["MED_COUNT"] + integer + + + LOW_COUNT + dataSetRow["LOW_COUNT"] + integer + + + G_ROUP + dataSetRow["G_ROUP"] + string + + + cat + dataSetRow["G_ROUP"] + string + + + critical + dataSetRow["CRIT_COUNT"] + string + + + high + dataSetRow["HIGH_COUNT"] + string + + + med + dataSetRow["MED_COUNT"] + string + + + low + dataSetRow["LOW_COUNT"] + string + + + cagg + integer + SUM + + + Expression + dataSetRow["CRIT_COUNT"] + + + + + hagg + integer + SUM + + + Expression + dataSetRow["HIGH_COUNT"] + + + + + magg + integer + SUM + + + Expression + dataSetRow["MED_COUNT"] + + + + + lagg + integer + SUM + + + Expression + dataSetRow["LOW_COUNT"] + + + + + CATEGORY + dataSetRow["G_ROUP"] + string + + + 80 + + middle + 3.75in + + + alignCenter + 1in + + + alignCenter + 1in + + + alignCenter + 1in + + + alignCenter + 1in + +
+ + verticalGroupHeaderWithBG + 12pt + #FFFFFF + solid + 1px + + scroll + #B9AEAA + 0% + 0% + repeat + serif + medium + normal + normal + normal + black + none + none + none + 0pt + 0pt + 0pt + 0pt + 1pt + 1pt + 1pt + 1pt + 0em + normal + normal + 2 + none + middle + normal + 2 + normal + block + auto + auto + auto + false + false + + + + 4 + 1 + scroll + #758894 + 0% + 0% + repeat + serif + medium + normal + normal + normal + black + none + none + none + #FFFFFF + solid + 1px + 0pt + 0pt + 0pt + 0pt + 1pt + 1pt + 1pt + 1pt + 0em + normal + normal + 2 + none + normal + 2 + normal + block + auto + auto + auto + false + false + + + + + verticalGroupHeaderWithBG + #E4E4E4 + 12pt + #808080 + solid + 1px + + scroll + 0% + 0% + repeat + serif + medium + normal + normal + normal + black + none + none + none + 0pt + 0pt + 0pt + 0pt + 1pt + 1pt + 1pt + 1pt + 0em + normal + normal + 2 + none + middle + normal + 2 + normal + block + auto + auto + auto + false + false + + + scroll + red + 0% + 0% + repeat + serif + medium + normal + normal + normal + black + none + none + none + #FFFFFF + solid + 1px + 0pt + 0pt + 0pt + 0pt + 1pt + 1pt + 1pt + 1pt + 0em + normal + normal + 2 + none + normal + 2 + normal + block + auto + auto + auto + false + false + + + + MedHighlight + scroll + #FF8C00 + 0% + 0% + repeat + serif + medium + normal + normal + normal + black + none + none + none + #FFFFFF + solid + 1px + 0pt + 0pt + 0pt + 0pt + 1pt + 1pt + 1pt + 1pt + 0em + normal + normal + 2 + none + normal + 2 + normal + block + auto + auto + auto + false + false + + + + scroll + #FFC800 + 0% + 0% + repeat + serif + medium + normal + normal + normal + black + none + none + none + #FFFFFF + solid + 1px + 0pt + 0pt + 0pt + 0pt + 1pt + 1pt + 1pt + 1pt + 0em + normal + normal + 2 + none + normal + 2 + normal + block + auto + auto + auto + false + false + + + + scroll + #FFFF96 + 0% + 0% + repeat + serif + medium + normal + normal + normal + black + none + none + none + #FFFFFF + solid + 1px + 0pt + 0pt + 0pt + 0pt + 1pt + 1pt + 1pt + 1pt + 0em + normal + normal + 2 + none + normal + 2 + normal + block + auto + auto + auto + false + false + + + +
+ + + grayWithWhiteBorder + #EDE7DE + + scroll + 0% + 0% + repeat + serif + medium + normal + normal + normal + black + none + none + none + black + none + medium + black + none + medium + #FFFFFF + solid + thin + black + none + medium + 0pt + 0pt + 0pt + 0pt + 1pt + 1pt + 1pt + 1pt + 0em + normal + normal + 2 + none + normal + 2 + normal + block + auto + auto + auto + false + false + + cellpadding + scroll + 0% + 0% + repeat + sans-serif + 11pt + normal + normal + normal + #7E6F69 + none + none + none + black + none + medium + black + none + medium + black + none + medium + black + none + medium + 0pt + 0pt + 0pt + 0pt + 1pt + 1pt + 1pt + 1pt + left + normal + normal + 2 + none + middle + normal + 2 + normal + block + auto + auto + auto + false + false + cat + + + bookmark-link + row["CATEGORY"] + + + + + + #FFFFFF + solid + thin + + + gt + #FF0000 + row["critical"] + + 0 + + + + + scroll + 0% + 0% + repeat + sans-serif + 11pt + normal + normal + normal + #4D4D4D + none + none + none + black + none + medium + black + none + medium + black + none + medium + black + none + medium + 0pt + 0pt + 0pt + 0pt + 0pt + 0pt + 0pt + 0pt + center + normal + normal + 2 + none + middle + normal + 2 + normal + block + auto + auto + auto + false + false + + + eq + 10pt + #7E6F69 + row["critical"] + + 0 + + + + critical + + + + #FFFFFF + solid + thin + + + gt + #FF8C00 + row["high"] + + 0 + + + + + scroll + 0% + 0% + repeat + sans-serif + 11pt + normal + normal + normal + #4D4D4D + none + none + none + black + none + medium + black + none + medium + black + none + medium + black + none + medium + 0pt + 0pt + 0pt + 0pt + 0pt + 0pt + 0pt + 0pt + center + normal + normal + 2 + none + middle + normal + 2 + normal + block + auto + auto + auto + false + false + + + eq + 10pt + #7E6F69 + row["high"] + + 0 + + + + high + + + + #FFFFFF + solid + thin + + + gt + #FFC800 + row["med"] + + 0 + + + + + scroll + 0% + 0% + repeat + sans-serif + 11pt + normal + normal + normal + #4D4D4D + none + none + none + black + none + medium + black + none + medium + black + none + medium + black + none + medium + 0pt + 0pt + 0pt + 0pt + 0pt + 0pt + 0pt + 0pt + center + normal + normal + 2 + none + middle + normal + 2 + normal + block + auto + auto + auto + false + false + + + eq + 10pt + #7E6F69 + row["med"] + + 0 + + + + med + + + + #FFFFFF + solid + thin + + + gt + #FFFF96 + row["low"] + + 0 + + + + + scroll + 0% + 0% + repeat + sans-serif + 11pt + normal + normal + normal + #4D4D4D + none + none + none + black + none + medium + black + none + medium + black + none + medium + black + none + medium + 0pt + 0pt + 0pt + 0pt + 0pt + 0pt + 0pt + 0pt + center + normal + normal + 2 + none + middle + normal + 2 + normal + block + auto + auto + auto + false + false + + + eq + 10pt + #7E6F69 + row["low"] + + 0 + + + + low + + + + +
+ + #808080 + solid + 1px + + + + + + scroll + 0% + 0% + repeat + sans-serif + 11pt + bold + normal + normal + #4D4D4D + none + none + none + black + none + medium + black + none + medium + black + none + medium + black + none + medium + 0pt + 0pt + 0pt + 0pt + 0pt + 0pt + 0pt + 0pt + center + normal + normal + 2 + none + middle + normal + 2 + normal + block + auto + auto + auto + false + false + cagg + + + + + scroll + 0% + 0% + repeat + sans-serif + 11pt + bold + normal + normal + #4D4D4D + none + none + none + black + none + medium + black + none + medium + black + none + medium + black + none + medium + 0pt + 0pt + 0pt + 0pt + 0pt + 0pt + 0pt + 0pt + center + normal + normal + 2 + none + middle + normal + 2 + normal + block + auto + auto + auto + false + false + hagg + + + + + scroll + 0% + 0% + repeat + sans-serif + 11pt + bold + normal + normal + #4D4D4D + none + none + none + black + none + medium + black + none + medium + black + none + medium + black + none + medium + 0pt + 0pt + 0pt + 0pt + 0pt + 0pt + 0pt + 0pt + center + normal + normal + 2 + none + middle + normal + 2 + normal + block + auto + auto + auto + false + false + magg + + + + + scroll + 0% + 0% + repeat + sans-serif + 11pt + bold + normal + normal + #4D4D4D + none + none + none + black + none + medium + black + none + medium + black + none + medium + black + none + medium + 0pt + 0pt + 0pt + 0pt + 0pt + 0pt + 0pt + 0pt + center + normal + normal + 2 + none + middle + normal + 2 + normal + block + auto + auto + auto + false + false + lagg + + + +
+
+ +
+
+ + + 1 + 1 + + + + 100% + NewAuditedIssue_Count + + + COUNTS + dataSetRow["COUNTS"] + integer + + + + + + + NewAuditedIssueDetails + + + all + row._outer["COUNTS"] <= 0 + + + + + ISSUEINSTANCEID + dataSetRow["ISSUEINSTANCEID"] + string + + + FILENAME + dataSetRow["FILENAME"] + string + + + LINENUMBER + dataSetRow["LINENUMBER"] + integer + + + CATEGORY + dataSetRow["CATEGORY"] + string + + + PACKAGENAME + dataSetRow["PACKAGENAME"] + string + + + SOURCE + dataSetRow["SOURCE"] + string + + + SINK + dataSetRow["SINK"] + string + + + FRIORITY + dataSetRow["FRIORITY"] + string + + + NAME + dataSetRow["CATEGORY"] + string + + + Column Binding_1 + packageName + "Package: " + dataSetRow["PACKAGENAME"] + string + + + Column Binding_2 + comments + "Comment:" + string + + + Column Binding_3 + instance file + dataSetRow["FILENAME"] + ":" + dataSetRow["LINENUMBER"] + string + + + Column Binding_6 + smeth + if ((dataSetRow["SOURCE"] == null) || (dataSetRow["SOURCE"] == "")) "N/A" ; else dataSetRow["SOURCE"]; + string + + + Column Binding_7 + if ((dataSetRow["SINK"] == null) || (dataSetRow["SINK"] == ""))"N/A" ; else dataSetRow["SINK"]; + string + + + Column Binding_8 + dataSetRow["CATEGORY"] + string + + + Column Binding_11 + if ((dataSetRow["SOURCEFILE"]== null) || (dataSetRow["SOURCEFILE"] == "")) "N/A"; else dataSetRow["SOURCEFILE"]; + string + + + Column Binding_12 + issueID + dataSetRow["ISSUEINSTANCEID"] + string + + + METHOD + dataSetRow["METHOD"] + string + + + ISSUE_ID + dataSetRow["ISSUE_ID"] + decimal + + + Column Binding_9 + dataSetRow["ISSUE_ID"] + string + + + Column Binding_10 + dataSetRow["METHOD"] + string + + + auditComment + dataSetRow["ACOMMENT"] + string + + + auditDate + new Date(dataSetRow["AUDITTIME"]) + date-time + + + auditUser + dataSetRow["USERNAME"] + string + + + attrName + dataSetRow["ATTRNAME"] + string + + + attrValue + dataSetRow["ATTRVALUE"] + string + + + AttrVal + dataSetRow["ATTRVALUE"] + string + + + acomment + dataSetRow["ACOMMENT"] + string + + + SOURCEFILE + dataSetRow["SOURCEFILE"] + string + + + AUDITTIME + dataSetRow["AUDITTIME"] + decimal + + + Column Binding_5 + dataSetRow["ATTRNAME"]+":" + string + + + package + "Package: " +dataSetRow["PACKAGENAME"] + string + + + priority + dataSetRow["FRIORITY"] + string + + + enginePriority + enginePriority + dataSetRow["ENGINEPRIORITY"] + string + true + + + + 'New Audited Issues' + + 1000 + + NewListGroup1 + none + asc + row["NAME"] + + row["NAME"] + + true + false + auto + auto + auto +
+ + 10pt + 5pt + 5pt + 7.75in + + + + #758894 + + scroll + 0% + 0% + repeat + sans-serif + 12pt + bold + normal + normal + #FFFFFF + none + none + none + black + none + medium + black + none + medium + black + none + medium + black + none + medium + 0pt + 0pt + 0pt + 0pt + 1pt + 1pt + 1pt + 1pt + left + normal + normal + 2 + none + middle + normal + 2 + normal + block + auto + auto + auto + false + false + NAME + + + bookmark-link + row["CATEGORY"] + + + + + + +
+
+ + NewListGroup2 + none + asc + row["PACKAGENAME"] + + row["PACKAGENAME"] + + true + false + auto + auto + auto +
+ + #FFFFFF + solid + thin + 0pt + 5pt + 5pt + 7.75in + + + all + row["URL"] != null + + + + 3.5in + + + 3.5in + + + 0.75in + + + listSubHeader + #FFFFFF + solid + 1px + + 3 + 1 + #B9AEAA + + alignCenter + scroll + 0% + 0% + repeat + sans-serif + 12pt + bold + normal + normal + #4D4D4D + none + none + none + black + none + medium + black + none + medium + black + none + medium + black + none + medium + 0pt + 0pt + 0pt + 0pt + 1pt + 1pt + 1pt + 1pt + left + normal + normal + 2 + none + middle + normal + 2 + normal + block + auto + auto + auto + false + false + package + + + + + listSubHeader + #FFFFFF + solid + 1px + + + + + 1 + 1 + #FFFFFF + solid + thin + 1pt + + + + #FFFFFF + solid + thin + 2pt + 0pt + + + + +
+
+ + IssueId + none + asc + row["ISSUE_ID"] + false + false + auto + auto + auto +
+ + #F1EEEB + #B9AEAA + solid + 1px + 5pt + 5pt + 7.75in + + 3.5in + + + 3.5in + + + 0.75in + + + middle + + 1 + 1 + #FFFFFF + solid + 1px + #FFFFFF + solid + 1px + + scroll + 0% + 0% + repeat + sans-serif + 10pt + normal + normal + normal + #4D4D4D + none + none + none + black + none + medium + black + none + medium + black + none + medium + black + none + medium + 0pt + 0pt + 0pt + 0pt + 1pt + 1pt + 1pt + 1pt + normal + normal + 2 + none + middle + normal + 2 + normal + block + auto + auto + auto + false + false + Column Binding_3 + + + hyperlink + params["serverURL"].value + "/html/ssc/version/" + params["projectversionid"].value+"/fix/"+row["ISSUE_ID"]+"/?projectName=" + params["projectNameHidden"].value + "&projectVersionName="+params["projectVersionNameHidden"].value + "&issue="+row["ISSUEINSTANCEID"] + "&engineType=" + row["ENGINETYPE"] + _blank + + + + + + 1 + 1 + #FFFFFF + solid + 1px + + "Courier" + #4D4D4D + Column Binding_7 + + + + middle + + + eq + #FF0000 + row["priority"] + + 'Critical' + + + + eq + #FF8C00 + row["priority"] + + 'High' + + + + eq + #FFC800 + row["priority"] + + 'Medium' + + + + eq + #FFFF96 + row["priority"] + + 'Low' + + + + + scroll + 0% + 0% + repeat + sans-serif + 12pt + normal + normal + normal + black + none + none + none + black + none + medium + black + none + medium + black + none + medium + black + none + medium + 0pt + 0pt + 0pt + 0pt + 1pt + 1pt + 1pt + 1pt + center + normal + normal + 2 + none + normal + 2 + normal + block + auto + auto + auto + false + false + priority + + + + + middle + + + all + // hide if (friority == enginePriority) +(!util.isPriorityOverrideEnabled()) || (row["priority"] == row["enginePriority"]) + + + + #FFFFFF + solid + 1px + #FFFFFF + solid + 1px + + + #FFFFFF + solid + 1px + + sans-serif + right + 'Originally: ' + html + + + + middle + + + eq + #FF0000 + row["enginePriority"] + + 'Critical' + + + + eq + #FF8C00 + row["enginePriority"] + + 'High' + + + + eq + #FFC800 + row["enginePriority"] + + 'Medium' + + + + eq + #FFFF96 + row["enginePriority"] + + 'Low' + + + + + sans-serif + center + enginePriority + + + + + #FFFFFF + solid + 1px + middle + + + all + row["SOURCEFILE"] == null || "".equals(row["SOURCEFILE"]) + + + + #FFFFFF + solid + 1px + + + scroll + 0% + 0% + repeat + sans-serif + 10pt + normal + normal + normal + #4D4D4D + none + none + none + black + none + medium + black + none + medium + black + none + medium + black + none + medium + 0pt + 0pt + 0pt + 0pt + 1pt + 1pt + 1pt + 1pt + normal + normal + 2 + none + middle + normal + 2 + normal + block + auto + auto + auto + false + false + Column Binding_11 + + + + 2 + 1 + #FFFFFF + solid + 1px + + + scroll + 0% + 0% + repeat + "Courier" + 10pt + normal + normal + normal + #4D4D4D + none + none + none + black + none + medium + black + none + medium + black + none + medium + black + none + medium + 0pt + 0pt + 0pt + 0pt + 1pt + 1pt + 1pt + 1pt + normal + normal + 2 + none + normal + 2 + normal + block + auto + auto + auto + false + false + Column Binding_6 + + + + + + + NewListGroup1 + none + asc + row["attrName"] + true + false + auto + auto + auto + + + row["attrName"] + asc + + +
+ + #F1EEEB + 5pt + 5pt + 7.75in + + 1.5in + + + + middle + + #FFFFFF + solid + 1px + #FFFFFF + solid + 1px + + scroll + 0% + 0% + repeat + sans-serif + 10pt + normal + normal + normal + #7E6F69 + none + none + none + black + none + medium + black + none + medium + black + none + medium + black + none + medium + 0pt + 0pt + 0pt + 0pt + 1pt + 1pt + 1pt + 1pt + left + normal + normal + 2 + none + top + normal + 2 + normal + block + auto + auto + auto + false + false + Column Binding_5 + + + + #FFFFFF + solid + 1px + #FFFFFF + solid + 1px + #FFFFFF + solid + 1px + + scroll + 0% + 0% + repeat + sans-serif + 10pt + normal + normal + normal + #4D4D4D + none + none + none + black + none + medium + black + none + medium + black + none + medium + black + none + medium + 0pt + 0pt + 0pt + 0pt + 1pt + 1pt + 1pt + 1pt + normal + normal + 2 + none + middle + normal + 2 + normal + block + auto + auto + auto + false + false + AttrVal + + + + +
+
+
+ + + NewListGroup1 + none + asc + row["AUDITTIME"] + true + false + auto + auto + auto + + + row["AUDITTIME"] + asc + + +
+ + 0pt + 5pt + 5pt + 7.75in + + + all + row["acomment"] == null + + + + 1.5in + + + + middle + + commentBlock + #FFFFFF + solid + 1px + 1pt + 1pt + 1pt + + scroll + 0% + 0% + repeat + sans-serif + 10pt + normal + normal + normal + #7E6F69 + none + none + none + black + none + medium + black + none + medium + black + none + medium + black + none + medium + 0pt + 0pt + 0pt + 0pt + 1pt + 1pt + 1pt + 1pt + left + normal + normal + 2 + none + top + normal + 2 + normal + block + auto + auto + auto + false + false + "<b>" +row["auditUser"] + "</b><br>" + row["auditDate"].toDateString(); + html + + + + commentBlock + #FFFFFF + solid + 1px + #FFFFFF + solid + 1px + 1pt + 1pt + 1pt + top + + scroll + 0% + 0% + repeat + sans-serif + 10pt + normal + normal + normal + #4D4D4D + none + none + none + black + none + medium + black + none + medium + black + none + medium + black + none + medium + 0pt + 0pt + 0pt + 0pt + 1pt + 1pt + 1pt + 1pt + normal + normal + 2 + none + middle + normal + 2 + normal + block + auto + auto + auto + false + false + acomment + + + + +
+
+
+
+
+ + #B9AEAA + solid + 1px + 0pt + 5pt + 5pt + 5pt + 7.75in + + + + + +
+
+
+ +
+
+
+
+
+
+ + #808080 + solid + 1px + #808080 + solid + 1px + #808080 + solid + 1px + #808080 + solid + 1px + Simple MasterPage + always + 100% + + + all + !params["includeAppendixD"].value + + + + + #DC7F04 + #808080 + solid + 1px + + 1 + 1 + + + + + #808080 + solid + 1px + + + + + + 10pt + 5pt + 10pt + 5pt + 0.8472222222222222in + 7.75in + RemovedIssueCount_Category + + + all + rowsReturned = Total.count(); rowsReturned <1; + + + + + HIGH_COUNT + dataSetRow["HIGH_COUNT"] + integer + + + MED_COUNT + dataSetRow["MED_COUNT"] + integer + + + LOW_COUNT + dataSetRow["LOW_COUNT"] + integer + + + G_ROUP + dataSetRow["G_ROUP"] + string + + + cat + dataSetRow["G_ROUP"] + string + + + critical + dataSetRow["CRIT_COUNT"] + string + + + high + dataSetRow["HIGH_COUNT"] + string + + + med + dataSetRow["MED_COUNT"] + string + + + low + dataSetRow["LOW_COUNT"] + string + + + cagg + integer + SUM + + + Expression + dataSetRow["CRIT_COUNT"] + + + + + hagg + integer + SUM + + + Expression + dataSetRow["HIGH_COUNT"] + + + + + magg + integer + SUM + + + Expression + dataSetRow["MED_COUNT"] + + + + + lagg + integer + SUM + + + Expression + dataSetRow["LOW_COUNT"] + + + + + CATEGORY + dataSetRow["G_ROUP"] + string + + + 80 + + middle + 3.75in + + + alignCenter + 1in + + + alignCenter + 1in + + + alignCenter + 1in + + + alignCenter + 1in + +
+ + verticalGroupHeaderWithBG + 12pt + #FFFFFF + solid + 1px + + scroll + #B9AEAA + 0% + 0% + repeat + serif + medium + normal + normal + normal + black + none + none + none + 0pt + 0pt + 0pt + 0pt + 1pt + 1pt + 1pt + 1pt + 0em + normal + normal + 2 + none + middle + normal + 2 + normal + block + auto + auto + auto + false + false + + + + 4 + 1 + scroll + #758894 + 0% + 0% + repeat + serif + medium + normal + normal + normal + black + none + none + none + #FFFFFF + solid + 1px + 0pt + 0pt + 0pt + 0pt + 1pt + 1pt + 1pt + 1pt + 0em + normal + normal + 2 + none + normal + 2 + normal + block + auto + auto + auto + false + false + + + + + verticalGroupHeaderWithBG + #E4E4E4 + 12pt + #808080 + solid + 1px + + scroll + 0% + 0% + repeat + serif + medium + normal + normal + normal + black + none + none + none + 0pt + 0pt + 0pt + 0pt + 1pt + 1pt + 1pt + 1pt + 0em + normal + normal + 2 + none + middle + normal + 2 + normal + block + auto + auto + auto + false + false + + + scroll + red + 0% + 0% + repeat + serif + medium + normal + normal + normal + black + none + none + none + #FFFFFF + solid + 1px + 0pt + 0pt + 0pt + 0pt + 1pt + 1pt + 1pt + 1pt + 0em + normal + normal + 2 + none + normal + 2 + normal + block + auto + auto + auto + false + false + + + + MedHighlight + scroll + #FF8C00 + 0% + 0% + repeat + serif + medium + normal + normal + normal + black + none + none + none + #FFFFFF + solid + 1px + 0pt + 0pt + 0pt + 0pt + 1pt + 1pt + 1pt + 1pt + 0em + normal + normal + 2 + none + normal + 2 + normal + block + auto + auto + auto + false + false + + + + scroll + #FFC800 + 0% + 0% + repeat + serif + medium + normal + normal + normal + black + none + none + none + #FFFFFF + solid + 1px + 0pt + 0pt + 0pt + 0pt + 1pt + 1pt + 1pt + 1pt + 0em + normal + normal + 2 + none + normal + 2 + normal + block + auto + auto + auto + false + false + + + + scroll + #FFFF96 + 0% + 0% + repeat + serif + medium + normal + normal + normal + black + none + none + none + #FFFFFF + solid + 1px + 0pt + 0pt + 0pt + 0pt + 1pt + 1pt + 1pt + 1pt + 0em + normal + normal + 2 + none + normal + 2 + normal + block + auto + auto + auto + false + false + + + +
+ + + grayWithWhiteBorder + #EDE7DE + + scroll + 0% + 0% + repeat + serif + medium + normal + normal + normal + black + none + none + none + black + none + medium + black + none + medium + #FFFFFF + solid + thin + black + none + medium + 0pt + 0pt + 0pt + 0pt + 1pt + 1pt + 1pt + 1pt + 0em + normal + normal + 2 + none + normal + 2 + normal + block + auto + auto + auto + false + false + + cellpadding + scroll + 0% + 0% + repeat + sans-serif + 11pt + normal + normal + normal + #7E6F69 + none + none + none + black + none + medium + black + none + medium + black + none + medium + black + none + medium + 0pt + 0pt + 0pt + 0pt + 1pt + 1pt + 1pt + 1pt + left + normal + normal + 2 + none + middle + normal + 2 + normal + block + auto + auto + auto + false + false + cat + + + bookmark-link + row["CATEGORY"] + + + + + + #FFFFFF + solid + thin + + + gt + #FF0000 + row["critical"] + + 0 + + + + + scroll + 0% + 0% + repeat + sans-serif + 11pt + normal + normal + normal + #4D4D4D + none + none + none + black + none + medium + black + none + medium + black + none + medium + black + none + medium + 0pt + 0pt + 0pt + 0pt + 0pt + 0pt + 0pt + 0pt + center + normal + normal + 2 + none + middle + normal + 2 + normal + block + auto + auto + auto + false + false + + + eq + 10pt + #7E6F69 + row["critical"] + + 0 + + + + critical + + + + #FFFFFF + solid + thin + + + gt + #FF8C00 + row["high"] + + 0 + + + + + scroll + 0% + 0% + repeat + sans-serif + 11pt + normal + normal + normal + #4D4D4D + none + none + none + black + none + medium + black + none + medium + black + none + medium + black + none + medium + 0pt + 0pt + 0pt + 0pt + 0pt + 0pt + 0pt + 0pt + center + normal + normal + 2 + none + middle + normal + 2 + normal + block + auto + auto + auto + false + false + + + eq + 10pt + #7E6F69 + row["high"] + + 0 + + + + high + + + + #FFFFFF + solid + thin + + + gt + #FFC800 + row["med"] + + 0 + + + + + scroll + 0% + 0% + repeat + sans-serif + 11pt + normal + normal + normal + #4D4D4D + none + none + none + black + none + medium + black + none + medium + black + none + medium + black + none + medium + 0pt + 0pt + 0pt + 0pt + 0pt + 0pt + 0pt + 0pt + center + normal + normal + 2 + none + middle + normal + 2 + normal + block + auto + auto + auto + false + false + + + eq + 10pt + #7E6F69 + row["med"] + + 0 + + + + med + + + + #FFFFFF + solid + thin + + + gt + #FFFF96 + row["low"] + + 0 + + + + + scroll + 0% + 0% + repeat + sans-serif + 11pt + normal + normal + normal + #4D4D4D + none + none + none + black + none + medium + black + none + medium + black + none + medium + black + none + medium + 0pt + 0pt + 0pt + 0pt + 0pt + 0pt + 0pt + 0pt + center + normal + normal + 2 + none + middle + normal + 2 + normal + block + auto + auto + auto + false + false + + + eq + 10pt + #7E6F69 + row["low"] + + 0 + + + + low + + + + +
+ + #808080 + solid + 1px + + + + + + scroll + 0% + 0% + repeat + sans-serif + 11pt + bold + normal + normal + #4D4D4D + none + none + none + black + none + medium + black + none + medium + black + none + medium + black + none + medium + 0pt + 0pt + 0pt + 0pt + 0pt + 0pt + 0pt + 0pt + center + normal + normal + 2 + none + middle + normal + 2 + normal + block + auto + auto + auto + false + false + cagg + + + + + scroll + 0% + 0% + repeat + sans-serif + 11pt + bold + normal + normal + #4D4D4D + none + none + none + black + none + medium + black + none + medium + black + none + medium + black + none + medium + 0pt + 0pt + 0pt + 0pt + 0pt + 0pt + 0pt + 0pt + center + normal + normal + 2 + none + middle + normal + 2 + normal + block + auto + auto + auto + false + false + hagg + + + + + scroll + 0% + 0% + repeat + sans-serif + 11pt + bold + normal + normal + #4D4D4D + none + none + none + black + none + medium + black + none + medium + black + none + medium + black + none + medium + 0pt + 0pt + 0pt + 0pt + 0pt + 0pt + 0pt + 0pt + center + normal + normal + 2 + none + middle + normal + 2 + normal + block + auto + auto + auto + false + false + magg + + + + + scroll + 0% + 0% + repeat + sans-serif + 11pt + bold + normal + normal + #4D4D4D + none + none + none + black + none + medium + black + none + medium + black + none + medium + black + none + medium + 0pt + 0pt + 0pt + 0pt + 0pt + 0pt + 0pt + 0pt + center + normal + normal + 2 + none + middle + normal + 2 + normal + block + auto + auto + auto + false + false + lagg + + + +
+
+ +
+
+ + + 1 + 1 + + + + 100% + RemovedAuditedIssue_Count + + + COUNTS + dataSetRow["COUNTS"] + integer + + + + + + + RemovedAuditedIssueDetails + + + all + row._outer["COUNTS"] <= 0 + + + + + ISSUEINSTANCEID + dataSetRow["ISSUEINSTANCEID"] + string + + + FILENAME + dataSetRow["FILENAME"] + string + + + LINENUMBER + dataSetRow["LINENUMBER"] + integer + + + CATEGORY + dataSetRow["CATEGORY"] + string + + + PACKAGENAME + dataSetRow["PACKAGENAME"] + string + + + SOURCE + dataSetRow["SOURCE"] + string + + + SINK + dataSetRow["SINK"] + string + + + FRIORITY + dataSetRow["FRIORITY"] + string + + + NAME + dataSetRow["CATEGORY"] + string + + + Column Binding_1 + packageName + "Package: " + dataSetRow["PACKAGENAME"] + string + + + Column Binding_2 + comments + "Comment:" + string + + + Column Binding_3 + instance file + dataSetRow["FILENAME"] + ":" + dataSetRow["LINENUMBER"] + string + + + Column Binding_6 + smeth + if ((dataSetRow["SOURCE"] == null) || (dataSetRow["SOURCE"] == "")) "N/A" ; else dataSetRow["SOURCE"]; + string + + + Column Binding_7 + if ((dataSetRow["SINK"] == null) || (dataSetRow["SINK"] == ""))"N/A" ; else dataSetRow["SINK"]; + string + + + Column Binding_8 + dataSetRow["CATEGORY"] + string + + + Column Binding_11 + if ((dataSetRow["SOURCEFILE"]== null) || (dataSetRow["SOURCEFILE"] == "")) "N/A"; else dataSetRow["SOURCEFILE"]; + string + + + Column Binding_12 + issueID + dataSetRow["ISSUEINSTANCEID"] + string + + + METHOD + dataSetRow["METHOD"] + string + + + ISSUE_ID + dataSetRow["ISSUE_ID"] + decimal + + + Column Binding_9 + dataSetRow["ISSUE_ID"] + string + + + Column Binding_10 + dataSetRow["METHOD"] + string + + + auditComment + dataSetRow["ACOMMENT"] + string + + + auditDate + new Date(dataSetRow["AUDITTIME"]) + date-time + + + auditUser + dataSetRow["USERNAME"] + string + + + attrName + dataSetRow["ATTRNAME"] + string + + + attrValue + dataSetRow["ATTRVALUE"] + string + + + AttrVal + dataSetRow["ATTRVALUE"] + string + + + acomment + dataSetRow["ACOMMENT"] + string + + + SOURCEFILE + dataSetRow["SOURCEFILE"] + string + + + AUDITTIME + dataSetRow["AUDITTIME"] + decimal + + + Column Binding_5 + dataSetRow["ATTRNAME"]+":" + string + + + package + "Package: " +dataSetRow["PACKAGENAME"] + string + + + priority + dataSetRow["FRIORITY"] + string + + + enginePriority + enginePriority + dataSetRow["ENGINEPRIORITY"] + string + true + + + + 'Removed Audited Issues' + + 1000 + + NewListGroup1 + none + asc + row["NAME"] + + row["NAME"] + + true + false + auto + auto + auto +
+ + 10pt + 5pt + 5pt + 7.75in + + + + #758894 + + scroll + 0% + 0% + repeat + sans-serif + 12pt + bold + normal + normal + #FFFFFF + none + none + none + black + none + medium + black + none + medium + black + none + medium + black + none + medium + 0pt + 0pt + 0pt + 0pt + 1pt + 1pt + 1pt + 1pt + left + normal + normal + 2 + none + middle + normal + 2 + normal + block + auto + auto + auto + false + false + NAME + + + bookmark-link + row["CATEGORY"] + + + + + + +
+
+ + NewListGroup2 + none + asc + row["PACKAGENAME"] + + row["PACKAGENAME"] + + true + false + auto + auto + auto +
+ + #FFFFFF + solid + thin + 0pt + 5pt + 5pt + 7.75in + + + all + row["URL"] != null + + + + 3.5in + + + 3.5in + + + 0.75in + + + listSubHeader + #FFFFFF + solid + 1px + + 3 + 1 + #B9AEAA + + alignCenter + scroll + 0% + 0% + repeat + sans-serif + 12pt + bold + normal + normal + #4D4D4D + none + none + none + black + none + medium + black + none + medium + black + none + medium + black + none + medium + 0pt + 0pt + 0pt + 0pt + 1pt + 1pt + 1pt + 1pt + left + normal + normal + 2 + none + middle + normal + 2 + normal + block + auto + auto + auto + false + false + package + + + + + listSubHeader + #FFFFFF + solid + 1px + + + + + 1 + 1 + #FFFFFF + solid + thin + 1pt + + + + #FFFFFF + solid + thin + 2pt + 0pt + + + + +
+
+ + IssueId + none + asc + row["ISSUE_ID"] + false + false + auto + auto + auto +
+ + #F1EEEB + #B9AEAA + solid + 1px + 5pt + 5pt + 7.75in + + 3.5in + + + 3.5in + + + 0.75in + + + middle + + 1 + 1 + #FFFFFF + solid + 1px + #FFFFFF + solid + 1px + + scroll + 0% + 0% + repeat + sans-serif + 10pt + normal + normal + normal + #4D4D4D + none + none + none + black + none + medium + black + none + medium + black + none + medium + black + none + medium + 0pt + 0pt + 0pt + 0pt + 1pt + 1pt + 1pt + 1pt + normal + normal + 2 + none + middle + normal + 2 + normal + block + auto + auto + auto + false + false + Column Binding_3 + + + hyperlink + params["serverURL"].value + "/html/ssc/version/" + params["projectversionid"].value+"/fix/"+row["ISSUE_ID"]+"/?projectName=" + params["projectNameHidden"].value + "&projectVersionName="+params["projectVersionNameHidden"].value + "&issue="+row["ISSUEINSTANCEID"] + "&engineType=" + row["ENGINETYPE"] + _blank + + + + + + 1 + 1 + #FFFFFF + solid + 1px + + "Courier" + #4D4D4D + Column Binding_7 + + + + middle + + + eq + #FF0000 + row["priority"] + + 'Critical' + + + + eq + #FF8C00 + row["priority"] + + 'High' + + + + eq + #FFC800 + row["priority"] + + 'Medium' + + + + eq + #FFFF96 + row["priority"] + + 'Low' + + + + + scroll + 0% + 0% + repeat + sans-serif + 12pt + normal + normal + normal + black + none + none + none + black + none + medium + black + none + medium + black + none + medium + black + none + medium + 0pt + 0pt + 0pt + 0pt + 1pt + 1pt + 1pt + 1pt + center + normal + normal + 2 + none + normal + 2 + normal + block + auto + auto + auto + false + false + priority + + + + + middle + + + all + // hide if (friority == enginePriority) +(!util.isPriorityOverrideEnabled()) || (row["priority"] == row["enginePriority"]) + + + + #FFFFFF + solid + 1px + #FFFFFF + solid + 1px + + + #FFFFFF + solid + 1px + + sans-serif + right + 'Originally: ' + html + + + + middle + + + eq + #FF0000 + row["enginePriority"] + + 'Critical' + + + + eq + #FF8C00 + row["enginePriority"] + + 'High' + + + + eq + #FFC800 + row["enginePriority"] + + 'Medium' + + + + eq + #FFFF96 + row["enginePriority"] + + 'Low' + + + + + sans-serif + center + enginePriority + + + + + #FFFFFF + solid + 1px + middle + + + all + row["SOURCEFILE"] == null || "".equals(row["SOURCEFILE"]) + + + + #FFFFFF + solid + 1px + + + scroll + 0% + 0% + repeat + sans-serif + 10pt + normal + normal + normal + #4D4D4D + none + none + none + black + none + medium + black + none + medium + black + none + medium + black + none + medium + 0pt + 0pt + 0pt + 0pt + 1pt + 1pt + 1pt + 1pt + normal + normal + 2 + none + middle + normal + 2 + normal + block + auto + auto + auto + false + false + Column Binding_11 + + + + 2 + 1 + #FFFFFF + solid + 1px + + + scroll + 0% + 0% + repeat + "Courier" + 10pt + normal + normal + normal + #4D4D4D + none + none + none + black + none + medium + black + none + medium + black + none + medium + black + none + medium + 0pt + 0pt + 0pt + 0pt + 1pt + 1pt + 1pt + 1pt + normal + normal + 2 + none + normal + 2 + normal + block + auto + auto + auto + false + false + Column Binding_6 + + + + + + + NewListGroup1 + none + asc + row["attrName"] + true + false + auto + auto + auto + + + row["attrName"] + asc + + +
+ + #F1EEEB + 5pt + 5pt + 7.75in + + 1.5in + + + + middle + + #FFFFFF + solid + 1px + #FFFFFF + solid + 1px + + scroll + 0% + 0% + repeat + sans-serif + 10pt + normal + normal + normal + #7E6F69 + none + none + none + black + none + medium + black + none + medium + black + none + medium + black + none + medium + 0pt + 0pt + 0pt + 0pt + 1pt + 1pt + 1pt + 1pt + left + normal + normal + 2 + none + top + normal + 2 + normal + block + auto + auto + auto + false + false + Column Binding_5 + + + + #FFFFFF + solid + 1px + #FFFFFF + solid + 1px + #FFFFFF + solid + 1px + + scroll + 0% + 0% + repeat + sans-serif + 10pt + normal + normal + normal + #4D4D4D + none + none + none + black + none + medium + black + none + medium + black + none + medium + black + none + medium + 0pt + 0pt + 0pt + 0pt + 1pt + 1pt + 1pt + 1pt + normal + normal + 2 + none + middle + normal + 2 + normal + block + auto + auto + auto + false + false + AttrVal + + + + +
+
+
+ + + NewListGroup1 + none + asc + row["AUDITTIME"] + true + false + auto + auto + auto + + + row["AUDITTIME"] + asc + + +
+ + 0pt + 5pt + 5pt + 7.75in + + + all + row["acomment"] == null + + + + 1.5in + + + + middle + + commentBlock + #FFFFFF + solid + 1px + 1pt + 1pt + 1pt + + scroll + 0% + 0% + repeat + sans-serif + 10pt + normal + normal + normal + #7E6F69 + none + none + none + black + none + medium + black + none + medium + black + none + medium + black + none + medium + 0pt + 0pt + 0pt + 0pt + 1pt + 1pt + 1pt + 1pt + left + normal + normal + 2 + none + top + normal + 2 + normal + block + auto + auto + auto + false + false + "<b>" +row["auditUser"] + "</b><br>" + row["auditDate"].toDateString(); + html + + + + commentBlock + #FFFFFF + solid + 1px + #FFFFFF + solid + 1px + 1pt + 1pt + 1pt + top + + scroll + 0% + 0% + repeat + sans-serif + 10pt + normal + normal + normal + #4D4D4D + none + none + none + black + none + medium + black + none + medium + black + none + medium + black + none + medium + 0pt + 0pt + 0pt + 0pt + 1pt + 1pt + 1pt + 1pt + normal + normal + 2 + none + middle + normal + 2 + normal + block + auto + auto + auto + false + false + acomment + + + + +
+
+
+
+
+ + #B9AEAA + solid + 1px + 0pt + 5pt + 5pt + 5pt + 7.75in + + + + + +
+
+
+ +
+
+
+
+
+
+ + Simple MasterPage + always + 100% + dependency_info + + + all + !params["includeAppendixE"].value + + + + + TEMPLATENAME + dataSetRow["TEMPLATENAME"] + string + + + ID + dataSetRow["ID"] + decimal + + + PROJECTNAME + dataSetRow["PROJECTNAME"] + string + + + VERSIONNAME + dataSetRow["VERSIONNAME"] + string + + + CREATIONDATE + dataSetRow["CREATIONDATE"] + date-time + + + Column Binding + dataSetRow["PROJECTNAME"] + " - "+dataSetRow["VERSIONNAME"] + string + + + + 'Appendix E - Dependencies' + + false + 40 + + + + always + auto + + 0pt + 0pt + 0pt + 0pt + + #808080 + solid + 1px + #808080 + solid + 1px + #808080 + solid + 1px + #808080 + solid + 1px + auto + always + 100% + ProjectVersionInfo + + + param_1 + + row["ID"] + + + + param_2 + + row["ID"] + + + + + + PVNAME + dataSetRow["PVNAME"] + string + + + PNAME + dataSetRow["PNAME"] + string + + + PTNAME + dataSetRow["PTNAME"] + string + + + RTNAME + dataSetRow["RTNAME"] + string + + + PTYPE + dataSetRow["PTYPE"] + string + + + CREATED + dataSetRow["CREATED"] + date-time + + + Column Binding + dataSetRow["PNAME"] + " - " +dataSetRow["PVNAME"] + string + + + date + BirtDateTime.month(dataSetRow["CREATED"],3) + " " +BirtDateTime.year(dataSetRow["CREATED"]) + string + + + owner + dataSetRow["OWNER"] + string + + + ID + dataSetRow["ID"] + decimal + + + OWNER + dataSetRow["OWNER"] + string + + + Column Binding_1 + first + if(dataSetRow["FIRSTSCAN"] !=null) new Date(dataSetRow["FIRSTSCAN"]); else null; + string + + + scan + if(dataSetRow["LASTSCAN"]) new Date(dataSetRow["LASTSCAN"]); else null; + string + + + ptname + dataSetRow["PTNAME"] + string + + + rtname + dataSetRow["RTNAME"] + string + + + + row["Column Binding"] + + + 4.125in + + + + #DC7F04 + #808080 + solid + 1px + + + all + row._outer.__rownum > 0 + + + + 2 + 1 + #808080 + solid + 1px + + + + + + 1 + 3 + #808080 + solid + 1px + + scroll + 0% + 0% + repeat + sans-serif + 14pt + normal + normal + normal + #7E6F69 + none + none + none + #808080 + solid + 1px + black + none + medium + black + none + medium + black + none + medium + 5pt + 5pt + 0pt + 5pt + 1pt + 1pt + 1pt + 1pt + left + normal + normal + 2 + none + top + normal + 2 + normal + block + auto + auto + auto + false + false + Column Binding + + + hyperlink + params["serverURL"].value + "/flex/index.jsp?projectName="+row["PNAME"]+"&projectVersionName="+row["PVNAME"] + _blank + + + + + 5pt + 5pt + 0pt + 5pt + 0.8333333333333334in + 3.9in + + 1.5in + + + 2.4in + + + #EDE7DE + solid + 1px + + 2 + 1 + top + + + scroll + 0% + 0% + repeat + sans-serif + 11pt + normal + normal + normal + #4D4D4D + none + none + none + black + none + medium + black + none + medium + black + none + medium + black + none + medium + 0pt + 0pt + 0pt + 0pt + 0pt + 0pt + 0pt + 0pt + + Fixed + #,##0 + + right + normal + normal + 2 + none + middle + normal + 2 + normal + block + auto + auto + auto + false + false + ptname + + + + + #EDE7DE + solid + 1px + + + all + !"FULL".equals(row["PTYPE"]) + + + + top + + + + top + + scroll + 0% + 0% + repeat + sans-serif + 11pt + normal + normal + normal + #4D4D4D + none + none + none + black + none + medium + black + none + medium + black + none + medium + black + none + medium + 0pt + 0pt + 0pt + 0pt + 0pt + 0pt + 0pt + 0pt + + Long Date + Long Date + + + Fixed + #,##0 + + right + normal + normal + 2 + none + middle + normal + 2 + normal + block + auto + auto + auto + false + false + owner + + + bookmark-link + row["OWNER"] + + + + + + + #EDE7DE + solid + 1px + + + all + !"FULL".equals(row["PTYPE"]) + + + + top + + + + top + + scroll + 0% + 0% + repeat + sans-serif + 11pt + normal + normal + normal + #4D4D4D + none + none + none + black + none + medium + black + none + medium + black + none + medium + black + none + medium + 0pt + 0pt + 0pt + 0pt + 0pt + 0pt + 0pt + 0pt + + Long Date + Long Date + + + Fixed + #,##0 + + right + normal + normal + 2 + none + middle + normal + 2 + normal + block + auto + auto + auto + false + false + date + + + + + #EDE7DE + solid + 1px + + + all + !"FULL".equals(row["PTYPE"]) + + + + top + + + + top + + scroll + 0% + 0% + repeat + sans-serif + 11pt + normal + normal + normal + #4D4D4D + none + none + none + black + none + medium + black + none + medium + black + none + medium + black + none + medium + 0pt + 0pt + 0pt + 0pt + 0pt + 0pt + 0pt + 0pt + + Long Date + Long Date + + + Fixed + #,##0 + + right + normal + normal + 2 + none + middle + normal + 2 + normal + block + auto + auto + auto + false + false + Column Binding_1 + + + + + #EDE7DE + solid + 1px + + + all + !"FULL".equals(row["PTYPE"]) + + + + top + + + + top + + scroll + 0% + 0% + repeat + sans-serif + 11pt + normal + normal + normal + #4D4D4D + none + none + none + black + none + medium + black + none + medium + black + none + medium + black + none + medium + 0pt + 0pt + 0pt + 0pt + 0pt + 0pt + 0pt + 0pt + + Long Date + Long Date + + + Fixed + #,##0 + + right + normal + normal + 2 + none + middle + normal + 2 + normal + block + auto + auto + auto + false + false + scan + + + + + + 0pt + 5pt + 10pt + 5pt + 1.0555555555555556in + 3.9in + ScanInfo_PV + + + param_1 + + row["ID"] + + + + + + FILES + dataSetRow["FILES"] + integer + + + Column Binding_1 + var lines = dataSetRow["LOC"]; if(lines==null) "Unknown"; else lines; + string + + + LOC + dataSetRow["LOC"] + integer + + + files + var files = dataSetRow["FILES"]; if(files==null) "Unknown"; else files; + string + + + + 1.5in + + + 2.4in + + + #EDE7DE + solid + 1px + + middle + + + + middle + + scroll + 0% + 0% + repeat + sans-serif + 11pt + normal + normal + normal + #4D4D4D + none + none + none + black + none + medium + black + none + medium + black + none + medium + black + none + medium + 0pt + 0pt + 0pt + 0pt + 0pt + 0pt + 0pt + 0pt + + Fixed + #,##0 + + right + normal + normal + 2 + none + middle + normal + 2 + normal + block + auto + auto + auto + false + false + Column Binding_1 + + + + + #EDE7DE + solid + 1px + + middle + + + + middle + + scroll + 0% + 0% + repeat + sans-serif + 11pt + normal + normal + normal + #4D4D4D + none + none + none + black + none + medium + black + none + medium + black + none + medium + black + none + medium + 0pt + 0pt + 0pt + 0pt + 0pt + 0pt + 0pt + 0pt + + Fixed + #,##0 + + right + normal + normal + 2 + none + middle + normal + 2 + normal + block + auto + auto + auto + false + false + files + + + + + + top + + + + top +
+ 100% + LanguagesForProject_Total + + + param_1 + + row._outer._outer["ID"] + + + + + + IDX + dataSetRow["IDX"] + integer + + + MNAME + dataSetRow["MNAME"] + string + + + PANAME + dataSetRow["PANAME"] + string + + + COUNTS + dataSetRow["COUNTS"] + integer + + + lang + dataSetRow["MNAME"] + string + + + + + + + 0pt + 0pt + 0pt + 0pt + + scroll + 0% + 0% + repeat + sans-serif + 11pt + normal + normal + normal + #4D4D4D + none + none + none + black + none + medium + black + none + medium + black + none + medium + black + none + medium + 0pt + 0pt + 0pt + 0pt + 0pt + 0pt + 0pt + 0pt + + Fixed + #,##0 + + right + normal + normal + 2 + none + middle + normal + 2 + normal + block + auto + auto + auto + false + false + lang + + + + +
+ + + + + + 1 + 1 + #808080 + solid + 1px + 10pt + 10pt + 10pt + 10pt + + #95A0A9 + #FCB126 + solid + 2px + #FCB126 + solid + 2px + #FCB126 + solid + 2px + #FCB126 + solid + 2px + 1in + 100% + ProjectStatus + + + param_1 + + row["ID"] + + + + param_2 + + row["ID"] + + + + param_3 + + row["ID"] + + + + param_5 + + row["ID"] + + + + + + ID + dataSetRow["ID"] + decimal + + + PROJNAME + dataSetRow["PROJNAME"] + string + + + NAME + dataSetRow["NAME"] + string + + + OWNER + dataSetRow["OWNER"] + string + + + TOTAL + dataSetRow["TOTAL"] + integer + + + COMPLETE + dataSetRow["COMPLETE"] + integer + + + RISK + if(dataSetRow["TYPE"]==null) 'Unknown'; else if("integer".equals(dataSetRow["TYPE"])) BirtMath.round(dataSetRow["RISK"],2); else Math.floor(dataSetRow["RISK"]) + " %"; + string + + + BUSRISK + dataSetRow["BUSRISK"] + string + + + risk + var risk = dataSetRow["BUSRISK"]; if(risk==null) "Not Set" ; else risk; + string + + + + + + 0.75in + + 5pt + 5pt + 2pt + 5pt + + #EDE7DE + #808080 + solid + medium + #808080 + solid + medium + #808080 + solid + medium + #808080 + solid + medium + 0.75in + 100% + + + 0.75in + + middle + + cellpadding + scroll + 0% + 0% + repeat + sans-serif + 16pt + normal + normal + normal + black + none + none + none + black + none + medium + black + none + medium + black + none + medium + black + none + medium + 0pt + 0pt + 0pt + 0pt + 1pt + 1pt + 1pt + 1pt + + Fixed + #,##0 + + center + normal + normal + 2 + none + middle + normal + 2 + normal + block + auto + auto + auto + false + false + + + is-true + 10pt + #7E6F69 + row["RISK"].equals("Unknown") + + + RISK + + + + + + + 5pt + 0pt + 2pt + 5pt + + #EDE7DE + #808080 + solid + medium + #808080 + solid + medium + #808080 + solid + medium + #808080 + solid + medium + 0.75in + 100% + + + 0.75in + + middle + + + eq + row["BUSRISK"] + + 'High' + + HighHighlight + + + eq + row["BUSRISK"] + + 'Medium' + + MedHighlight + + + eq + row["BUSRISK"] + + 'Low' + + LowHighlight + + + + cellpadding + scroll + 0% + 0% + repeat + sans-serif + 16pt + normal + normal + normal + black + none + none + none + black + none + medium + black + none + medium + black + none + medium + black + none + medium + 0pt + 0pt + 0pt + 0pt + 1pt + 1pt + 1pt + 1pt + + Fixed + #,##0 + + center + normal + normal + 2 + none + middle + normal + 2 + normal + block + auto + auto + auto + false + false + + + is-null + 10pt + #7E6F69 + row["BUSRISK"] + + + risk + + + + + + + + 0.25in + + middle + + scroll + 0% + 0% + repeat + sans-serif + 10pt + bold + normal + normal + #FFFFFF + none + none + none + black + none + medium + black + none + medium + black + none + medium + black + none + medium + 0pt + 0pt + 0pt + 0pt + 1pt + 1pt + 1pt + 1pt + center + normal + normal + 2 + none + middle + normal + 2 + normal + block + auto + auto + auto + false + false + PerformanceIndicatorInformation + + + NAME + dataSetRow["NAME"] + string + + + DESCR + dataSetRow["DESCR"] + string + + + row["NAME"] + html + + + + middle + + + + + + + + + 1 + 2 + #808080 + solid + 1px + 0pt + 0pt + 0pt + 0pt + + + 10pt + 30pt + 1.8in + 2.5in + FPO_PerProject + + + param_1 + + row["ID"] + + + + + + CRIT + dataSetRow["CRIT"] + decimal + + + HIGH + dataSetRow["HIGH"] + decimal + + + MED + dataSetRow["MED"] + decimal + + + LOW + dataSetRow["LOW"] + decimal + + + high + 12 + var dat = dataSetRow["HIGH"]; if(dat ==null) 0; else dat; + integer + + + Column Binding + 151 + var dat = dataSetRow["MED"]; if(dat ==null) 0; else dat; + integer + + + low + 152 + var dat = dataSetRow["LOW"]; if(dat ==null) 0; else dat; + integer + + + + 1in + + + 0.75in + + + 0.75in + + + 0.75in + + 1 + 2 + middle + + + + 1 + 1 + MedHighlight + #FF8C00 + #808080 + solid + medium + #808080 + solid + medium + #808080 + solid + medium + #808080 + solid + medium + middle + + alignCenter + scroll + 0% + 0% + repeat + sans-serif + 18pt + normal + normal + normal + black + none + none + none + black + none + medium + black + none + medium + black + none + medium + black + none + medium + 0pt + 0pt + 0pt + 0pt + 1pt + 1pt + 1pt + 1pt + center + normal + normal + 2 + none + middle + normal + 2 + normal + block + auto + auto + auto + false + false + high + + + + + 1 + 1 + HighHighlight + #808080 + solid + medium + #808080 + solid + medium + #808080 + solid + medium + #808080 + solid + medium + middle + + alignCenter + scroll + 0% + 0% + repeat + sans-serif + 18pt + normal + normal + normal + black + none + none + none + black + none + medium + black + none + medium + black + none + medium + black + none + medium + 0pt + 0pt + 0pt + 0pt + 1pt + 1pt + 1pt + 1pt + center + normal + normal + 2 + none + middle + normal + 2 + normal + block + auto + auto + auto + false + false + FPO_PerProject + + + crit + 134 + var dat = dataSetRow["CRIT"]; if(dat ==null) 0; else dat; + integer + + + crit + + + + + + 0.75in + + 1 + 1 + LowHighlight + #FFFF96 + #808080 + solid + medium + #808080 + solid + medium + #808080 + solid + medium + #808080 + solid + medium + middle + + alignCenter + scroll + 0% + 0% + repeat + sans-serif + 18pt + normal + normal + normal + black + none + none + none + black + none + medium + black + none + medium + black + none + medium + black + none + medium + 0pt + 0pt + 0pt + 0pt + 1pt + 1pt + 1pt + 1pt + center + normal + normal + 2 + none + middle + normal + 2 + normal + block + auto + auto + auto + false + false + low + + + + + 1 + 1 + LowHighlight + #FFC800 + #808080 + solid + medium + #808080 + solid + medium + #808080 + solid + medium + #808080 + solid + medium + middle + + alignCenter + scroll + 0% + 0% + repeat + sans-serif + 18pt + normal + normal + normal + black + none + none + none + black + none + medium + black + none + medium + black + none + medium + black + none + medium + 0pt + 0pt + 0pt + 0pt + 1pt + 1pt + 1pt + 1pt + center + normal + normal + 2 + none + middle + normal + 2 + normal + block + auto + auto + auto + false + false + Column Binding + + + + + + 0.3in + + + 2 + 1 + + + + + + + + + + 1 + 1 + + #808080 + solid + 1px + #808080 + solid + 1px + + + 10pt + 5pt + 10pt + 5pt + 0.8472222222222222in + 3.9in + TopTenIssueCategories_PerProject + + + all + rowsReturned = Total.count(); rowsReturned <1; + + + + + param_1 + + row["ID"] + + + + + + Category + Category + dataSetRow["CATEGORY"] + string + + + issueOccurences + occ + dataSetRow["TOTAL_OCCUR"] + integer + + + + + lt + row[0] + + 5 + + + + + middle + 2.9in + + + alignCenter + 0.75in + +
+ + verticalGroupHeaderWithBG + 12pt + + scroll + #B9AEAA + 0% + 0% + repeat + serif + medium + normal + normal + normal + black + none + none + none + 0pt + 0pt + 0pt + 0pt + 1pt + 1pt + 1pt + 1pt + 0em + normal + normal + 2 + none + middle + normal + 2 + normal + block + auto + auto + auto + false + false + + + + scroll + #758894 + 0% + 0% + repeat + serif + medium + normal + normal + normal + black + none + none + none + #FFFFFF + solid + 1px + 0pt + 0pt + 0pt + 0pt + 1pt + 1pt + 1pt + 1pt + 0em + normal + normal + 2 + none + normal + 2 + normal + block + auto + auto + auto + false + false + + + +
+ + + grayWithWhiteBorder + #EDE7DE + + scroll + 0% + 0% + repeat + serif + medium + normal + normal + normal + black + none + none + none + black + none + medium + black + none + medium + #FFFFFF + solid + thin + black + none + medium + 0pt + 0pt + 0pt + 0pt + 1pt + 1pt + 1pt + 1pt + 0em + normal + normal + 2 + none + normal + 2 + normal + block + auto + auto + auto + false + false + + cellpadding + scroll + 0% + 0% + repeat + sans-serif + 11pt + normal + normal + normal + #7E6F69 + none + none + none + black + none + medium + black + none + medium + black + none + medium + black + none + medium + 0pt + 0pt + 0pt + 0pt + 1pt + 1pt + 1pt + 1pt + left + normal + normal + 2 + none + middle + normal + 2 + normal + block + auto + auto + auto + false + false + Category + + + + #FFFFFF + solid + thin + + cellpadding + scroll + 0% + 0% + repeat + sans-serif + 11pt + bold + normal + normal + #4D4D4D + none + none + none + black + none + medium + black + none + medium + black + none + medium + black + none + medium + 0pt + 0pt + 0pt + 0pt + 1pt + 1pt + 1pt + 1pt + center + normal + normal + 2 + none + middle + normal + 2 + normal + block + auto + auto + auto + false + false + issueOccurences + + + + +
+ +
+ + 0pt + 0pt + 0pt + 0pt + + + 10pt + 5pt + 10pt + 5pt + 3.6in + + 2.85in + + + middle + 0.75in + + + verticalGroupHeaderWithBG + #B9AEAA + + #FFFFFF + solid + thin + + + + #758894 + + + + + grayWithWhiteBorder + #EDE7DE + + #FFFFFF + solid + thin + + + + + scroll + 0% + 0% + repeat + sans-serif + 10pt + normal + normal + normal + #5C5C5C + none + none + none + black + none + medium + black + none + medium + black + none + medium + black + none + medium + 0pt + 0pt + 0pt + 0pt + 1pt + 1pt + 1pt + 1pt + center + normal + normal + 2 + none + middle + normal + 2 + normal + block + auto + auto + auto + false + false + + + gt + sans-serif + 11pt + bold + #4D4D4D + row["Column Binding"] + + 0 + + + + TAINT_TOTAL + + + param_2 + + '%DATABASE%' + + + + param_1 + + row["ID"] + + + + + + TOTAL_ISSUES + dataSetRow["TOTAL_ISSUES"] + decimal + + + Column Binding + TAINT + dataSetRow["TOTAL_ISSUES"]; + decimal + + + Column Binding + + + + + grayWithWhiteBorder + #EDE7DE + + #FFFFFF + solid + thin + + + + + scroll + 0% + 0% + repeat + sans-serif + 10pt + normal + normal + normal + #5C5C5C + none + none + none + black + none + medium + black + none + medium + black + none + medium + black + none + medium + 0pt + 0pt + 0pt + 0pt + 1pt + 1pt + 1pt + 1pt + center + normal + normal + 2 + none + middle + normal + 2 + normal + block + auto + auto + auto + false + false + + + gt + sans-serif + 11pt + bold + #4D4D4D + row["Column Binding"] + + 0 + + + + TAINT_TOTAL + + + param_2 + + '%NETWORK%' + + + + param_1 + + row["ID"] + + + + + + TOTAL_ISSUES + dataSetRow["TOTAL_ISSUES"] + decimal + + + Column Binding + TAINT + dataSetRow["TOTAL_ISSUES"]; + decimal + + + Column Binding + + + + + grayWithWhiteBorder + #EDE7DE + + #FFFFFF + solid + thin + + + + + scroll + 0% + 0% + repeat + sans-serif + 10pt + normal + normal + normal + #5C5C5C + none + none + none + black + none + medium + black + none + medium + black + none + medium + black + none + medium + 0pt + 0pt + 0pt + 0pt + 1pt + 1pt + 1pt + 1pt + center + normal + normal + 2 + none + middle + normal + 2 + normal + block + auto + auto + auto + false + false + + + gt + sans-serif + 11pt + bold + #4D4D4D + row["Column Binding"] + + 0 + + + + TAINT_TOTAL2 + + + taintflag1 + + '%WEB%' + + + + taintflag2 + + '%FORM%' + + + + projVers + + row["ID"] + + + + + + Column Binding + T_WEB + dataSetRow["TOTAL_ISSUES"]; + decimal + + + Column Binding + + + + + grayWithWhiteBorder + #EDE7DE + + #FFFFFF + solid + thin + + + + + scroll + 0% + 0% + repeat + sans-serif + 10pt + normal + normal + normal + #5C5C5C + none + none + none + black + none + medium + black + none + medium + black + none + medium + black + none + medium + 0pt + 0pt + 0pt + 0pt + 1pt + 1pt + 1pt + 1pt + center + normal + normal + 2 + none + middle + normal + 2 + normal + block + auto + auto + auto + false + false + + + gt + sans-serif + 11pt + bold + #4D4D4D + row["Column Binding"] + + 0 + + + + TAINT_TOTAL + + + param_2 + + '%WEBSERVICE%' + + + + param_1 + + row["ID"] + + + + + + TOTAL_ISSUES + dataSetRow["TOTAL_ISSUES"] + decimal + + + Column Binding + TAINT + dataSetRow["TOTAL_ISSUES"]; + decimal + + + Column Binding + + + + + grayWithWhiteBorder + #EDE7DE + + #FFFFFF + solid + thin + + + + + scroll + 0% + 0% + repeat + sans-serif + 10pt + normal + normal + normal + #5C5C5C + none + none + none + black + none + medium + black + none + medium + black + none + medium + black + none + medium + 0pt + 0pt + 0pt + 0pt + 1pt + 1pt + 1pt + 1pt + center + normal + normal + 2 + none + middle + normal + 2 + normal + block + auto + auto + auto + false + false + + + gt + sans-serif + 11pt + bold + #4D4D4D + row["Column Binding"] + + 0 + + + + OTHER + + + param_1_1 + + row["ID"] + + + + + + TOTAL_ISSUES + dataSetRow["TOTAL_ISSUES"] + decimal + + + other + dataSetRow["TOTAL_ISSUES"] + string + + + other + + + + + grayWithWhiteBorder + white + #808080 + solid + 1px + + #FFFFFF + solid + thin + + + + + scroll + 0% + 0% + repeat + sans-serif + 11pt + bold + normal + normal + #4D4D4D + none + none + none + black + none + medium + black + none + medium + black + none + medium + black + none + medium + 0pt + 0pt + 0pt + 0pt + 1pt + 1pt + 1pt + 1pt + center + normal + normal + 2 + none + middle + normal + 2 + normal + block + auto + auto + auto + false + false + TotalIssues + + + param_1 + + row["ID"] + + + + + + Column Binding + total + dataSetRow["TOTALISSUES"] + string + + + Column Binding + + + + + +
+ + + 2 + 1 + + #808080 + solid + 1px + #808080 + solid + 1px + + scroll + 0% + 0% + repeat + sans-serif + 14pt + normal + normal + normal + #7E6F69 + none + none + none + #808080 + solid + 1px + black + none + medium + black + none + medium + black + none + medium + 5pt + 5pt + 1pt + 5pt + 1pt + 1pt + 1pt + 1pt + left + normal + normal + 2 + none + top + normal + 2 + normal + block + auto + auto + auto + false + false + PerformanceIndicatorInformation + + + NAME + dataSetRow["NAME"] + string + + + DESCR + dataSetRow["DESCR"] + string + + + "Issues and " +row["NAME"] + " by Date" + html + + + + Bar Chart + Stacked + + + + 0.0 + 0.0 + 0.0 + 0.0 + + + 3.0 + 3.0 + 3.0 + 3.0 + + -1 + -1 + -1 + -1 + + + 1 + + 255 + 0 + 0 + 0 + + false + + false + + + + + 0.0 + 0.0 + 0.0 + 0.0 + + + 3.0 + 3.0 + 3.0 + 3.0 + + -1 + -1 + -1 + -1 + + + 1 + + 255 + 0 + 0 + 0 + + false + + true + 5 + 5 + + + + 255 + 254 + 254 + 221 + + + 255 + 254 + 254 + 254 + + 90.0 + + + + 0 + + 255 + 0 + 0 + 0 + + false + + + 0.0 + 0.0 + 0.0 + 0.0 + + + + + + 0.0 + 0.0 + 0.0 + 0.0 + + South + + 3.0 + 3.0 + 3.0 + 3.0 + + -1 + -1 + -1 + -1 + + + 1 + + 255 + 0 + 0 + 0 + + false + + true + + + + 0 + + 255 + 0 + 0 + 0 + + false + + + 2.0 + 2.0 + 2.0 + 2.0 + + + + + + + + + Horizontal + Left_Right + + + 1 + + 255 + 0 + 0 + 0 + + false + + Below + Series + + <Caption> + <Value></Value> + <Font> + <Alignment/> + </Font> + </Caption> + <Background xsi:type="attribute:ColorDefinition"> + <Transparency>0</Transparency> + <Red>255</Red> + <Green>255</Green> + <Blue>255</Blue> + </Background> + <Outline> + <Style>Solid</Style> + <Thickness>1</Thickness> + <Color> + <Transparency>255</Transparency> + <Red>0</Red> + <Green>0</Green> + <Blue>0</Blue> + </Color> + <Visible>false</Visible> + </Outline> + <Insets> + <Top>0.0</Top> + <Left>2.0</Left> + <Bottom>0.0</Bottom> + <Right>3.0</Right> + </Insets> + <Visible>false</Visible> + + Above + + + 0.0 + 0.0 + 561.6 + 221.0 + + + 3.0 + 3.0 + 3.0 + 3.0 + + -1 + -1 + -1 + -1 + + + 1 + + 255 + 0 + 0 + 0 + + false + + + 255 + 255 + 255 + 255 + + true + + Two_Dimensional + Points + 10.0 + + + 01/05/2000,02/01/2000,04/12/2000,03/12/2000,02/29/2000 + + + 6,4,12,8,10 + 0 + + + 12.0,8.0,24.0,16.0,20.0 + 1 + + + 18.0,12.0,36.0,24.0,30.0 + 2 + + + 24.0,16.0,48.0,32.0,40.0 + 3 + + + 42,91,62,9,21 + 4 + + + + + + + + + + + + 0 + 255 + 255 + 255 + + + + 1 + + 255 + 0 + 0 + 0 + + + + 0.0 + 2.0 + 0.0 + 3.0 + + false + + + DateTime + + <Caption> + <Value>X-Axis Title</Value> + <Font> + <Size>14.0</Size> + <Bold>true</Bold> + <Alignment> + <horizontalAlignment>Center</horizontalAlignment> + <verticalAlignment>Center</verticalAlignment> + </Alignment> + </Font> + </Caption> + <Background xsi:type="attribute:ColorDefinition"> + <Transparency>0</Transparency> + <Red>255</Red> + <Green>255</Green> + <Blue>255</Blue> + </Background> + <Outline> + <Style>Solid</Style> + <Thickness>1</Thickness> + <Color> + <Transparency>255</Transparency> + <Red>0</Red> + <Green>0</Green> + <Blue>0</Blue> + </Color> + </Outline> + <Insets> + <Top>0.0</Top> + <Left>2.0</Left> + <Bottom>0.0</Bottom> + <Right>3.0</Right> + </Insets> + <Visible>false</Visible> + + Below + + Linear + + <Caption> + <Value>Total Issues</Value> + <Font> + <Size>10.0</Size> + <Alignment> + <horizontalAlignment>Center</horizontalAlignment> + <verticalAlignment>Center</verticalAlignment> + </Alignment> + <Rotation>90.0</Rotation> + </Font> + <Color> + <Transparency>255</Transparency> + <Red>51</Red> + <Green>51</Green> + <Blue>51</Blue> + </Color> + </Caption> + <Background xsi:type="attribute:ColorDefinition"> + <Transparency>0</Transparency> + <Red>255</Red> + <Green>255</Green> + <Blue>255</Blue> + </Background> + <Outline> + <Style>Solid</Style> + <Thickness>1</Thickness> + <Color> + <Transparency>255</Transparency> + <Red>0</Red> + <Green>0</Green> + <Blue>0</Blue> + </Color> + </Outline> + <Insets> + <Top>0.0</Top> + <Left>2.0</Left> + <Bottom>0.0</Bottom> + <Right>3.0</Right> + </Insets> + <Visible>true</Visible> + + Left + + + + + + + 255 + 254 + 0 + 0 + + + 255 + 255 + 140 + 0 + + + 255 + 255 + 200 + 0 + + + 255 + 255 + 255 + 150 + + + 255 + 128 + 255 + 128 + + + 255 + 64 + 128 + 128 + + + 255 + 128 + 128 + 192 + + + 255 + 170 + 85 + 85 + + + 255 + 128 + 128 + 0 + + + 255 + 192 + 192 + 192 + + + 255 + 128 + 192 + 128 + + + 255 + 7 + 146 + 94 + + + 255 + 0 + 128 + 255 + + + 255 + 255 + 128 + 192 + + + 255 + 0 + 255 + 255 + + + 255 + 255 + 128 + 128 + + + 255 + 0 + 128 + 192 + + + 255 + 128 + 128 + 192 + + + 255 + 255 + 0 + 255 + + + 255 + 128 + 64 + 64 + + + 255 + 255 + 128 + 64 + + + 255 + 80 + 240 + 120 + + + 255 + 0 + 64 + 128 + + + 255 + 128 + 0 + 64 + + + 255 + 255 + 0 + 128 + + + 255 + 128 + 128 + 64 + + + 255 + 128 + 128 + 128 + + + 255 + 255 + 128 + 255 + + + 255 + 0 + 64 + 0 + + + 255 + 0 + 0 + 0 + + + 255 + 255 + 255 + 255 + + + 255 + 255 + 128 + 0 + + + + true + + + row["CRIT"] + + Critical + + + Orthogonal_Value + + , + + Inside + true + false + Rectangle + + + false + 1.0 + Text + Sum + + + + + + + + + 255 + 255 + 140 + 0 + + + 255 + 255 + 200 + 0 + + + 255 + 255 + 255 + 150 + + + 255 + 64 + 128 + 128 + + + 255 + 128 + 128 + 192 + + + 255 + 170 + 85 + 85 + + + 255 + 128 + 128 + 0 + + + 255 + 192 + 192 + 192 + + + 255 + 255 + 255 + 128 + + + 255 + 128 + 192 + 128 + + + 255 + 7 + 146 + 94 + + + 255 + 0 + 128 + 255 + + + 255 + 255 + 128 + 192 + + + 255 + 0 + 255 + 255 + + + 255 + 255 + 128 + 128 + + + 255 + 0 + 128 + 192 + + + 255 + 128 + 128 + 192 + + + 255 + 255 + 0 + 255 + + + 255 + 128 + 64 + 64 + + + 255 + 255 + 128 + 64 + + + 255 + 80 + 240 + 120 + + + 255 + 0 + 64 + 128 + + + 255 + 128 + 0 + 64 + + + 255 + 255 + 0 + 128 + + + 255 + 128 + 128 + 64 + + + 255 + 128 + 128 + 128 + + + 255 + 255 + 128 + 255 + + + 255 + 0 + 64 + 0 + + + 255 + 0 + 0 + 0 + + + 255 + 255 + 255 + 255 + + + 255 + 255 + 128 + 0 + + + 255 + 254 + 0 + 0 + + + + true + + + row["HIGH"] + + High + + + Orthogonal_Value + + , + + Inside + true + Rectangle + + + false + 1.0 + Text + Sum + + + + + + + + + 255 + 255 + 200 + 0 + + + 255 + 255 + 255 + 150 + + + 255 + 64 + 128 + 128 + + + 255 + 128 + 128 + 192 + + + 255 + 170 + 85 + 85 + + + 255 + 128 + 128 + 0 + + + 255 + 192 + 192 + 192 + + + 255 + 255 + 255 + 128 + + + 255 + 128 + 192 + 128 + + + 255 + 7 + 146 + 94 + + + 255 + 0 + 128 + 255 + + + 255 + 255 + 128 + 192 + + + 255 + 0 + 255 + 255 + + + 255 + 255 + 128 + 128 + + + 255 + 0 + 128 + 192 + + + 255 + 128 + 128 + 192 + + + 255 + 255 + 0 + 255 + + + 255 + 128 + 64 + 64 + + + 255 + 255 + 128 + 64 + + + 255 + 80 + 240 + 120 + + + 255 + 0 + 64 + 128 + + + 255 + 128 + 0 + 64 + + + 255 + 255 + 0 + 128 + + + 255 + 128 + 128 + 64 + + + 255 + 128 + 128 + 128 + + + 255 + 255 + 128 + 255 + + + 255 + 0 + 64 + 0 + + + 255 + 0 + 0 + 0 + + + 255 + 255 + 255 + 255 + + + 255 + 255 + 128 + 0 + + + 255 + 254 + 0 + 0 + + + 255 + 255 + 140 + 0 + + + + true + + + row["MED"] + + Medium + + + Orthogonal_Value + + , + + Inside + true + Rectangle + + + false + 1.0 + Text + Sum + + + + + + + + + 255 + 255 + 255 + 150 + + + 255 + 64 + 128 + 128 + + + 255 + 128 + 128 + 192 + + + 255 + 170 + 85 + 85 + + + 255 + 128 + 128 + 0 + + + 255 + 192 + 192 + 192 + + + 255 + 255 + 255 + 128 + + + 255 + 128 + 192 + 128 + + + 255 + 7 + 146 + 94 + + + 255 + 0 + 128 + 255 + + + 255 + 255 + 128 + 192 + + + 255 + 0 + 255 + 255 + + + 255 + 255 + 128 + 128 + + + 255 + 0 + 128 + 192 + + + 255 + 128 + 128 + 192 + + + 255 + 255 + 0 + 255 + + + 255 + 128 + 64 + 64 + + + 255 + 255 + 128 + 64 + + + 255 + 80 + 240 + 120 + + + 255 + 0 + 64 + 128 + + + 255 + 128 + 0 + 64 + + + 255 + 255 + 0 + 128 + + + 255 + 128 + 128 + 64 + + + 255 + 128 + 128 + 128 + + + 255 + 255 + 128 + 255 + + + 255 + 0 + 64 + 0 + + + 255 + 0 + 0 + 0 + + + 255 + 255 + 255 + 255 + + + 255 + 255 + 128 + 0 + + + 255 + 254 + 0 + 0 + + + 255 + 255 + 140 + 0 + + + 255 + 255 + 200 + 0 + + + + true + + + row["LOW"] + + Low + + + Orthogonal_Value + + , + + Inside + true + Rectangle + + + false + 1.0 + Text + Sum + + + Vertical + + + 1 + + 255 + 128 + 128 + 128 + + true + + + Left + + + + 1 + + 255 + 145 + 145 + 145 + + true + + Across + + + 1 + + 255 + 196 + 196 + 196 + + false + + + + + + 1 + + 255 + 225 + 225 + 225 + + false + + Across + + + 1 + + 255 + 225 + 225 + 225 + + false + + + + 5 + + + Min + + 0.0 + + + true + false + + + Linear + + <Caption> + <Value>Performance Indicator</Value> + <Font> + <Size>10.0</Size> + <Alignment> + <horizontalAlignment>Center</horizontalAlignment> + <verticalAlignment>Center</verticalAlignment> + </Alignment> + <Rotation>90.0</Rotation> + </Font> + <Color> + <Transparency>255</Transparency> + <Red>51</Red> + <Green>51</Green> + <Blue>51</Blue> + </Color> + </Caption> + <Background xsi:type="attribute:ColorDefinition"> + <Transparency>0</Transparency> + <Red>255</Red> + <Green>255</Green> + <Blue>255</Blue> + </Background> + <Outline> + <Style>Solid</Style> + <Thickness>1</Thickness> + <Color> + <Transparency>255</Transparency> + <Red>0</Red> + <Green>0</Green> + <Blue>0</Blue> + </Color> + </Outline> + <Insets> + <Top>0.0</Top> + <Left>2.0</Left> + <Bottom>0.0</Bottom> + <Right>3.0</Right> + </Insets> + <Visible>true</Visible> + + Right + + + + + + + 255 + 0 + 0 + 0 + + + 255 + 242 + 88 + 106 + + + 255 + 232 + 172 + 57 + + + 255 + 128 + 255 + 128 + + + 255 + 64 + 128 + 128 + + + 255 + 128 + 128 + 192 + + + 255 + 170 + 85 + 85 + + + 255 + 128 + 128 + 0 + + + 255 + 192 + 192 + 192 + + + 255 + 255 + 255 + 128 + + + 255 + 128 + 192 + 128 + + + 255 + 7 + 146 + 94 + + + 255 + 0 + 128 + 255 + + + 255 + 255 + 128 + 192 + + + 255 + 0 + 255 + 255 + + + 255 + 255 + 128 + 128 + + + 255 + 0 + 128 + 192 + + + 255 + 128 + 128 + 192 + + + 255 + 255 + 0 + 255 + + + 255 + 128 + 64 + 64 + + + 255 + 255 + 128 + 64 + + + 255 + 80 + 240 + 120 + + + 255 + 0 + 64 + 128 + + + 255 + 128 + 0 + 64 + + + 255 + 255 + 0 + 128 + + + 255 + 128 + 128 + 64 + + + 255 + 128 + 128 + 128 + + + 255 + 255 + 128 + 255 + + + 255 + 0 + 64 + 0 + + + 255 + 0 + 0 + 0 + + + 255 + 255 + 255 + 255 + + + 255 + 255 + 128 + 0 + + + + true + + + Math.floor(row["PI"]) ; + + Performance Indicator + + + Orthogonal_Value + + , + + Above + true + + Triangle + 2 + true + + + + 1 + + 255 + 0 + 0 + 0 + + true + + true + + + false + 1.0 + Text + Sum + + + Vertical + + + 1 + + 255 + 128 + 128 + 128 + + true + + + Right + + + + 1 + + 255 + 128 + 128 + 128 + + false + + Across + + + 1 + + 255 + 196 + 196 + 196 + + false + + + + + + 1 + + 255 + 225 + 225 + 225 + + false + + Across + + + 1 + + 255 + 225 + 225 + 225 + + false + + + + 5 + + + Max + + false + false + + + + + + + + 255 + 80 + 166 + 218 + + + 255 + 242 + 88 + 106 + + + 255 + 232 + 172 + 57 + + + 255 + 128 + 255 + 128 + + + 255 + 64 + 128 + 128 + + + 255 + 128 + 128 + 192 + + + 255 + 170 + 85 + 85 + + + 255 + 128 + 128 + 0 + + + 255 + 192 + 192 + 192 + + + 255 + 255 + 255 + 128 + + + 255 + 128 + 192 + 128 + + + 255 + 7 + 146 + 94 + + + 255 + 0 + 128 + 255 + + + 255 + 255 + 128 + 192 + + + 255 + 0 + 255 + 255 + + + 255 + 255 + 128 + 128 + + + 255 + 0 + 128 + 192 + + + 255 + 128 + 128 + 192 + + + 255 + 255 + 0 + 255 + + + 255 + 128 + 64 + 64 + + + 255 + 255 + 128 + 64 + + + 255 + 80 + 240 + 120 + + + 255 + 0 + 64 + 128 + + + 255 + 128 + 0 + 64 + + + 255 + 255 + 0 + 128 + + + 255 + 128 + 128 + 64 + + + 255 + 128 + 128 + 128 + + + 255 + 255 + 128 + 255 + + + 255 + 0 + 64 + 0 + + + 255 + 0 + 0 + 0 + + + 255 + 255 + 255 + 255 + + + 255 + 255 + 128 + 0 + + + + true + + + row["DATE"] + + + + + Orthogonal_Value + + , + + Outside + false + + + true + 1.0 + Text + Sum + + + Horizontal + + + 1 + + 255 + 128 + 128 + 128 + + true + + + + Short + Date + + Below + + + + 1 + + 255 + 196 + 196 + 196 + + false + + Across + + + 1 + + 255 + 196 + 196 + 196 + + false + + + + + + 1 + + 255 + 225 + 225 + 225 + + false + + Across + + + 1 + + 255 + 225 + 225 + 225 + + false + + + + 5 + + + Min + + 0.0 + + + true + true + false + + Vertical + 50.0 + + +]]> + JPG + 3.0694444444444446in + 7.8in + IssueTrending_ISSUES + + + all + rowsReturned = Total.count(); rowsReturned <1; + + + + + param_1 + + row["ID"] + + + + + + DATE + dataSetRow["STARTDATE"] + date-time + + + CRIT + dataSetRow["CRIT"] + integer + + + HIGH + dataSetRow["HIGH"] + integer + + + MED + dataSetRow["MED"] + integer + + + LOW + dataSetRow["LOW"] + integer + + + PI + dataSetRow["PI"] + float + + + TYPE + dataSetRow["TYPE"] + string + + + + + + + + +
+ +
+ + #808080 + solid + 1px + #808080 + solid + 1px + #808080 + solid + 1px + #808080 + solid + 1px + + + all + rowsReturned = Total.count(); rowsReturned >0; + + + + + always + always + 100% + + + #DC7F04 + + + + + + + + + + + + +
+ + + #808080 + solid + 1px + #808080 + solid + 1px + #808080 + solid + 1px + #808080 + solid + 1px + 0pt + Simple MasterPage + auto + 100% + + + all + !params["includeAppendixF"].value + + + + + #DC7F04 + #808080 + solid + 1px + + 1 + 1 + + + + + + #808080 + solid + 1px + + Categories + + + CATEGORY + dataSetRow["CATEGORY"] + string + + + DETAIL + dataSetRow["DETAIL"] + string + + + RECOMMENDATION + dataSetRow["RECOMMENDATION"] + string + + + CUSTOMDESC + dataSetRow["CUSTOMDESC"] + integer + + + TIPS + dataSetRow["TIPS"] + string + + + REFERS + dataSetRow["REFERS"] + string + + + + 'Appendix F - Vulnerability Category Descriptions' + + 0 + + NewListGroup1 + none + asc + row["CATEGORY"] + false + false + auto + auto + auto + + + row["CATEGORY"] + asc + + + row["CUSTOMDESC"] + asc + + +
+ + sans-serif + 14pt + normal + #7E6F69 + 0pt + 0pt + left + auto + CATEGORY + +
+
+ +
+
+ + NewListGroup2 + none + asc + row["DETAIL"] + false + false + auto + auto + auto + + + row["CUSTOMDESC"] + asc + + +
+ + + + sans-serif + 0pt + 20pt + if (row["DETAIL"] == null || row["DETAIL"].length == 0) "&lt;NOT AVAILABLE>" +else row["DETAIL"] + html + +
+
+ + NewListGroup3 + none + asc + row["RECOMMENDATION"] + false + false + auto + auto + auto + + + row["CUSTOMDESC"] + asc + + +
+ + + + sans-serif + 0pt + 15pt + if (row["RECOMMENDATION"] == null || row["RECOMMENDATION"].length == 0) "&lt;NOT AVAILABLE>" +else row["RECOMMENDATION"] + html + + + + + sans-serif + 0pt + 15pt + + + all + row["TIPS"] == null || row["TIPS"].length == 0 + + + TIPS + + + + + sans-serif + 0pt + 15pt + + + all + row["REFERS"] == null || row["REFERS"].length == 0 + + + REFERS + +
+
+
+
+
+
+ +
diff --git a/fcli-other/fcli-functional-test/src/ftest/groovy/com/fortify/cli/ftest/ssc/SSCReportSpec.groovy b/fcli-other/fcli-functional-test/src/ftest/groovy/com/fortify/cli/ftest/ssc/SSCReportSpec.groovy new file mode 100644 index 0000000000..43b772614a --- /dev/null +++ b/fcli-other/fcli-functional-test/src/ftest/groovy/com/fortify/cli/ftest/ssc/SSCReportSpec.groovy @@ -0,0 +1,190 @@ +/** + * Copyright 2023 Open Text. + * + * The only warranties for products and services of Open Text + * and its affiliates and licensors ("Open Text") are as may + * be set forth in the express warranty statements accompanying + * such products and services. Nothing herein should be construed + * as constituting an additional warranty. Open Text shall not be + * liable for technical or editorial errors or omissions contained + * herein. The information contained herein is subject to change + * without notice. + */ +package com.fortify.cli.ftest.ssc + +import static com.fortify.cli.ftest._common.spec.FcliSessionType.SSC + +import java.nio.file.Files +import java.nio.file.Path +import java.text.SimpleDateFormat + +import com.fortify.cli.ftest._common.Fcli +import com.fortify.cli.ftest._common.spec.FcliBaseSpec +import com.fortify.cli.ftest._common.spec.FcliSession +import com.fortify.cli.ftest._common.spec.Prefix +import com.fortify.cli.ftest._common.spec.TempDir +import com.fortify.cli.ftest._common.spec.TempFile +import com.fortify.cli.ftest._common.spec.TestResource +import com.fortify.cli.ftest.ssc._common.SSCAppVersionSupplier + +import spock.lang.AutoCleanup +import spock.lang.Shared +import spock.lang.Stepwise + +@Prefix("ssc.report") @FcliSession(SSC) @Stepwise +class SSCReportSpec extends FcliBaseSpec { + @Shared @TempFile("report.pdf") String reportFile; + @Shared @AutoCleanup SSCAppVersionSupplier version1Supplier = new SSCAppVersionSupplier() + @Shared @AutoCleanup SSCAppVersionSupplier version2Supplier = new SSCAppVersionSupplier() + @Shared @TestResource("runtime/shared/EightBall-22.1.0.fpr") String fpr1 + @Shared @TestResource("runtime/shared/LoginProject.fpr") String fpr2 + @Shared String random = System.currentTimeMillis() + @Shared String owaspReportName = "fcli-OWASP-${random}" + @Shared String trendingReportName = "fcli-Trending-${random}" + @Shared String kpiReportName = "fcli-KPI-${random}" + + def setupSpec() { + Fcli.run("ssc artifact upload -f $fpr1 --appversion ${version1Supplier.version.variableRef} --store fpr1") + Fcli.run("ssc artifact upload -f $fpr2 --appversion ${version2Supplier.version.variableRef} --store fpr2") + Fcli.run("ssc artifact wait-for ::fpr1:: ::fpr2:: -i 2s") + } + + def "createOWASP"() { + def args = "ssc report create --template OWASP\\ Top\\ 10 --name ${owaspReportName} -p Application\\ Version=${version1Supplier.version.get("id")} --store owasp" + when: + def result = Fcli.run(args) + then: + verifyAll(result.stdout) { + size()>=2 + it.last().contains("CREATED") + } + } + + def "createTrending"() { + def today = new SimpleDateFormat("yyyy-MM-dd").format(new Date()); + def args = "ssc report create --template Issue\\ Trending --name ${trendingReportName} -p startDate=2010-01-01,endDate=${today},projectversionids=[${version1Supplier.version.get("id")};${version2Supplier.version.get("id")}] --store trending" + when: + def result = Fcli.run(args) + then: + verifyAll(result.stdout) { + size()>=2 + it.last().contains("CREATED") + } + } + + def "createKPI"() { + def args = "ssc report create --template Key\\ Performance\\ Indicators --name ${kpiReportName} -p Application\\ Attribute=Accessibility,projectversionids=[${version1Supplier.version.get("id")};${version2Supplier.version.get("id")}] --store kpi" + when: + def result = Fcli.run(args) + then: + verifyAll(result.stdout) { + size()>=2 + it.last().contains("CREATED") + } + } + + def "wait-for"() { + // Try waiting both by default property (id), and name + def args = "ssc report wait-for ::owasp:: ::trending::name ::kpi:: -i 2s" + when: + def result = Fcli.run(args) + then: + verifyAll(result.stdout) { + it.any { it =~ "WAIT_COMPLETE" } + } + } + + def "list"() { + def args = "ssc report list" + when: + def result = Fcli.run(args) + then: + verifyAll(result.stdout) { + size()>0 + it[0].replace(' ', '').equals("IdNameTemplatenameTypeFinishdateGeneratedbyStatus") + it.any { it.contains(owaspReportName) } + it.any { it.contains(trendingReportName) } + it.any { it.contains(kpiReportName) } + } + } + + def "get.byName"() { + def args = "ssc report get ::owasp::name" + when: + def result = Fcli.run(args) + then: + verifyAll(result.stdout) { + size()>=2 + it.any { it.contains(owaspReportName) } + } + } + + def "get.byId"() { + def args = "ssc report get ::trending::id" + when: + def result = Fcli.run(args) + then: + verifyAll(result.stdout) { + size()>=2 + it.any { it.contains(trendingReportName) } + } + } + + def "download"() { + def args = "ssc report download ::owasp::id -f ${reportFile}" + when: + def result = Fcli.run(args) + then: + verifyAll(result.stdout) { + size()>0 + it.last().contains("DOWNLOADED") + Files.exists(Path.of(reportFile)) + } + } + + def "deleteOWASP"() { + def args = "ssc report delete ::owasp::id" + when: + def result = Fcli.run(args) + then: + verifyAll(result.stdout) { + size()>0 + it.last().contains("DELETED") + } + } + + def "deleteTrending"() { + def args = "ssc report delete ::trending::name" + when: + def result = Fcli.run(args) + then: + verifyAll(result.stdout) { + size()>0 + it.last().contains("DELETED") + } + } + + def "deleteKPI"() { + def args = "ssc report delete ::kpi::" + when: + def result = Fcli.run(args) + then: + verifyAll(result.stdout) { + size()>0 + it.last().contains("DELETED") + } + } + + def "verifyDeleted"() { + def args = "ssc report list-templates" + when: + def result = Fcli.run(args) + then: + verifyAll(result.stdout) { + size()>0 + !it.any { it.contains(owaspReportName) } + !it.any { it.contains(trendingReportName) } + !it.any { it.contains(kpiReportName) } + } + } +} diff --git a/fcli-other/fcli-functional-test/src/ftest/groovy/com/fortify/cli/ftest/ssc/SSCReportTemplateSpec.groovy b/fcli-other/fcli-functional-test/src/ftest/groovy/com/fortify/cli/ftest/ssc/SSCReportTemplateSpec.groovy index 27cb6dff01..bfb238cfb1 100644 --- a/fcli-other/fcli-functional-test/src/ftest/groovy/com/fortify/cli/ftest/ssc/SSCReportTemplateSpec.groovy +++ b/fcli-other/fcli-functional-test/src/ftest/groovy/com/fortify/cli/ftest/ssc/SSCReportTemplateSpec.groovy @@ -29,18 +29,25 @@ import spock.lang.Stepwise class SSCReportTemplateSpec extends FcliBaseSpec { @Shared @TestResource("runtime/ssc/project_report.rptdesign") String sampleTemplate @Shared @TestResource("runtime/ssc/ReportTemplateConfig.yml") String sampleConfig - private String reportName = "fcli-test-report" + @Shared String random = System.currentTimeMillis() + @Shared private String templateName = "fcli-${random}" - def "list"() { - def args = "ssc report list-templates --store reports" + def setupSpec() { + def configFile = new File(sampleConfig) + def configContents = configFile.text.replace('${templateName}', templateName) + configFile.text = configContents + } + + def "generate-config"() { + def args = "ssc report create-template-config -y" when: def result = Fcli.run(args) then: verifyAll(result.stdout) { - size()>0 - it[0].replace(' ', '').equals("IdNameTypeTemplatedocidInuse") + size()>=2 + it[1].contains("GENERATED") } - } + } def "create"() { def args = "ssc report create-template --template $sampleTemplate --config $sampleConfig" @@ -53,41 +60,42 @@ class SSCReportTemplateSpec extends FcliBaseSpec { } } - def "generate-config"() { - def args = "ssc report create-template-config -y" + def "list"() { + def args = "ssc report list-templates --store templates" when: def result = Fcli.run(args) then: verifyAll(result.stdout) { - size()>=2 - it[1].contains("GENERATED") + size()>0 + it[0].replace(' ', '').equals("IdNameTypeTemplatedocidInuse") + it.any { it.contains(templateName) } } } def "get.byName"() { - def args = "ssc report get-template $reportName --store report" + def args = "ssc report get-template ${templateName} --store template" when: def result = Fcli.run(args) then: verifyAll(result.stdout) { size()>=2 - it[2].equals("name: \"fcli-test-report\"") + it[2].contains(templateName) } } def "get.byId"() { - def args = "ssc report get-template ::report::id" + def args = "ssc report get-template ::template::" when: def result = Fcli.run(args) then: verifyAll(result.stdout) { size()>=2 - it[2].equals("name: \"fcli-test-report\"") + it[2].contains(templateName) } } def "download"() { - def args = "ssc report download-template ::report::id" + def args = "ssc report download-template ::template::" when: def result = Fcli.run(args) then: @@ -98,7 +106,7 @@ class SSCReportTemplateSpec extends FcliBaseSpec { } def "delete"() { - def args = "ssc report delete-template ::report::id" + def args = "ssc report delete-template ::template::" when: def result = Fcli.run(args) then: @@ -115,7 +123,7 @@ class SSCReportTemplateSpec extends FcliBaseSpec { then: verifyAll(result.stdout) { size()>0 - !it.any { it.contains(reportName) } + !it.any { it.contains(templateName) } } } diff --git a/fcli-other/fcli-functional-test/src/ftest/resources/runtime/ssc/ReportTemplateConfig.yml b/fcli-other/fcli-functional-test/src/ftest/resources/runtime/ssc/ReportTemplateConfig.yml index 616e0d90ed..c1cf903cba 100644 --- a/fcli-other/fcli-functional-test/src/ftest/resources/runtime/ssc/ReportTemplateConfig.yml +++ b/fcli-other/fcli-functional-test/src/ftest/resources/runtime/ssc/ReportTemplateConfig.yml @@ -1,27 +1,24 @@ --- -name: fcli-test-report # The name to give to the report -description: fcli-test-report # Description of what your report is for and what kind of information it will contain. -type: ISSUE # Possible values here are ISSUE or PROJECT. -typeDefaultText: fcli-test-report # This default describes the type of report this is. For example, existing values that other reports use are: "Portfolio Reports", "Application Reports", or "Issue Reports". You are free to specify some other value that fits the type of report template you have. +name: ${templateName} # Required: Report template name +description: Test Description # Optional: Report template description +type: ISSUE # Required: ISSUE, PROJECT or PORTFOLIO parameters: -- name: test1 # The parameter name. - paramOrder: 0 # Represents the ordering of your parameters in the SSC Web UI. - description: test1 # Description of the parameter. - identifier: test1 # This is the ID/name of the report parameter in your report template. - type: SINGLE_SELECT_DEFAULT # Possible values are BOOLEAN, MULTI_PROJECT, PROJECT_ATTRIBUTE, SINGLE_PROJECT, SINGLE_SELECT_DEFAULT, STRING. - reportParameterOptions: # Used only when the parameter is of type "SINGLE_SELECT_DEFAULT". The options represent the different pre-defined options/values that you will allow the user to select from. - - index: 0 - defaultValue: true # Is this option the default value for the parameter. - description: val1 # Description for this parameter option. - displayValue: val1 # The value to be shown in the SSC web UI - reportValue: val1 # The value to actually be injected into the report parameter - - index: 1 - defaultValue: false - description: val2 - displayValue: val2 - reportValue: val2 -- name: test2 # Parameters of type BOOLEAN, MULTI_PROJECT, PROJECT_ATTRIBUTE, SINGLE_PROJECT, or STRING don't need a "reportParameterOptions" section. +- name: Param1 # Required: Report parameter name + description: ParamDescription # Optional: Report parameter description + identifier: param1 # Required: ID/name of the report parameter in the BIRT template. + type: SINGLE_SELECT_DEFAULT # Required: BOOLEAN, MULTI_PROJECT, PROJECT_ATTRIBUTE, SINGLE_PROJECT, SINGLE_SELECT_DEFAULT, STRING, or DATE + paramOrder: 0 # Optional: Report parameter ordering value + reportParameterOptions: # Required for parameter type "SINGLE_SELECT_DEFAULT", not allowed for other parameter types + - defaultValue: true # Required: Boolean indicating whether this is the default parameter option + description: Opt1Desc # Optional: Report parameter option description + displayValue: Option 1 # Required: Report parameter display value as shown in SSC UI + reportValue: 1 # Required: The value to be passed to the BIRT template + - defaultValue: false # See above + description: Opt1Desc # See above + displayValue: Option 2 # See above + reportValue: 2 # See above +- name: Param2 # Repeated section above for additional report parameter but different type paramOrder: 1 - description: test2 - identifier: test2 + description: Param2Description + identifier: param2 type: STRING