Merge from ecomp 718fd196 - Modern UI 93/90993/4
authorIttay Stern <ittay.stern@att.com>
Sun, 7 Jul 2019 16:23:03 +0000 (19:23 +0300)
committerIttay Stern <ittay.stern@att.com>
Mon, 8 Jul 2019 13:13:43 +0000 (16:13 +0300)
Issue-ID: VID-378

Change-Id: I2736b98426e324ec3aa233b034229ba84d99839f
Signed-off-by: Ittay Stern <ittay.stern@att.com>
257 files changed:
vid-app-common/pom.xml
vid-webpack-master/cypress/integration/iFrames/ala-carte.e2e.ts
vid-webpack-master/cypress/integration/iFrames/collectionResource.e2e.ts [new file with mode: 0644]
vid-webpack-master/cypress/integration/iFrames/drawingBoard.e2e.ts
vid-webpack-master/cypress/integration/iFrames/network.popup.e2e.ts
vid-webpack-master/cypress/integration/iFrames/permission.e2e.ts
vid-webpack-master/cypress/integration/iFrames/pnf.e2e.ts [new file with mode: 0644]
vid-webpack-master/cypress/integration/iFrames/resume.e2e.ts [new file with mode: 0644]
vid-webpack-master/cypress/integration/iFrames/retry.e2e.ts
vid-webpack-master/cypress/integration/iFrames/searchExistingInstance.e2e.ts
vid-webpack-master/cypress/integration/iFrames/service.popup.e2e.ts
vid-webpack-master/cypress/integration/iFrames/serviceWithNetwork.e2e.ts
vid-webpack-master/cypress/integration/iFrames/serviceWithVnfNetwork.e2e.ts
vid-webpack-master/cypress/integration/iFrames/softDeleteAndResume.e2e.ts
vid-webpack-master/cypress/integration/iFrames/viewEdit.e2e.ts
vid-webpack-master/cypress/integration/iFrames/viewOnlyDrawingBoard.e2e.ts
vid-webpack-master/cypress/integration/iFrames/vnf.popup.e2e.ts
vid-webpack-master/cypress/integration/iFrames/vnf.update.e2e.ts [new file with mode: 0644]
vid-webpack-master/cypress/integration/iFrames/vnfGroups.e2e.ts
vid-webpack-master/cypress/integration/iFrames/vrf.e2e.ts [new file with mode: 0644]
vid-webpack-master/cypress/integration/iFrames/welcomePage.e2e.ts
vid-webpack-master/cypress/pipeline/group1.txt [new file with mode: 0644]
vid-webpack-master/cypress/pipeline/run_group1.sh [new file with mode: 0644]
vid-webpack-master/cypress/pipeline/run_group2.sh [new file with mode: 0644]
vid-webpack-master/cypress/support/application/application.session.actions.ts
vid-webpack-master/cypress/support/elements/element.actions.ts
vid-webpack-master/cypress/support/elements/element.select.actions.ts
vid-webpack-master/cypress/support/index.js
vid-webpack-master/cypress/support/jsonBuilders/mocks/aai.mock.ts
vid-webpack-master/cypress/support/jsonBuilders/mocks/jsons/aaiActiveVPNs.json [new file with mode: 0644]
vid-webpack-master/cypress/support/jsonBuilders/mocks/jsons/aaiGetHomingData.json
vid-webpack-master/cypress/support/jsonBuilders/mocks/jsons/aaiServices.json
vid-webpack-master/cypress/support/jsonBuilders/mocks/jsons/aaiSubDetails.json
vid-webpack-master/cypress/support/jsonBuilders/mocks/jsons/aaiSubViewEditForActiveFabricConfigService.json
vid-webpack-master/cypress/support/jsonBuilders/mocks/jsons/aaiSubViewEditForComplexService.json
vid-webpack-master/cypress/support/jsonBuilders/mocks/jsons/aaiSubViewEditForCreatedFabricConfigService.json
vid-webpack-master/cypress/support/jsonBuilders/mocks/jsons/aaiSubViewEditForDeactivatedFabricConfigService.json
vid-webpack-master/cypress/support/jsonBuilders/mocks/jsons/aaiSubViewEditForFabricConfigService.json
vid-webpack-master/cypress/support/jsonBuilders/mocks/jsons/aaiSubViewEditForServiceWithSomeVFModule.json
vid-webpack-master/cypress/support/jsonBuilders/mocks/jsons/activeFabricConfigService.json
vid-webpack-master/cypress/support/jsonBuilders/mocks/jsons/asyncInstantiation.json
vid-webpack-master/cypress/support/jsonBuilders/mocks/jsons/basicAsyncInstantiation.json
vid-webpack-master/cypress/support/jsonBuilders/mocks/jsons/basicFabricConfigService.json
vid-webpack-master/cypress/support/jsonBuilders/mocks/jsons/basicNetworkInstance.json
vid-webpack-master/cypress/support/jsonBuilders/mocks/jsons/basicNetworkModel.json
vid-webpack-master/cypress/support/jsonBuilders/mocks/jsons/basicRedux.json
vid-webpack-master/cypress/support/jsonBuilders/mocks/jsons/basicService.json
vid-webpack-master/cypress/support/jsonBuilders/mocks/jsons/bug616888/Dror_service1806_Macro1.json
vid-webpack-master/cypress/support/jsonBuilders/mocks/jsons/bug616888/Dror_service1806_Macro_NW.json
vid-webpack-master/cypress/support/jsonBuilders/mocks/jsons/bug616888/service-with-configuration.json
vid-webpack-master/cypress/support/jsonBuilders/mocks/jsons/bug_aLaCarteServiceWrongPopup/list-services.json
vid-webpack-master/cypress/support/jsonBuilders/mocks/jsons/bug_aLaCarteServiceWrongPopup/serviceWithoutInstantiationType.json
vid-webpack-master/cypress/support/jsonBuilders/mocks/jsons/createdFabricConfigService.json
vid-webpack-master/cypress/support/jsonBuilders/mocks/jsons/deactivatedFabricConfigService.json
vid-webpack-master/cypress/support/jsonBuilders/mocks/jsons/defect710619/aaiServiceInstancesE2E.json [new file with mode: 0644]
vid-webpack-master/cypress/support/jsonBuilders/mocks/jsons/defect710619/aaiSubDetailsE2E.json [new file with mode: 0644]
vid-webpack-master/cypress/support/jsonBuilders/mocks/jsons/defect710619/aaiSubViewEditForServiceWithSomeVFModuleE2E.json [new file with mode: 0644]
vid-webpack-master/cypress/support/jsonBuilders/mocks/jsons/defect710619/expectedResumeWithVGResults.json [new file with mode: 0644]
vid-webpack-master/cypress/support/jsonBuilders/mocks/jsons/defect710619/serviceE2E.json [new file with mode: 0644]
vid-webpack-master/cypress/support/jsonBuilders/mocks/jsons/emptyServiceRedux.json
vid-webpack-master/cypress/support/jsonBuilders/mocks/jsons/flags.json
vid-webpack-master/cypress/support/jsonBuilders/mocks/jsons/service.json
vid-webpack-master/cypress/support/jsonBuilders/mocks/jsons/serviceInstanceWithVRF.json [new file with mode: 0644]
vid-webpack-master/cypress/support/jsonBuilders/mocks/jsons/serviceModels/ecompNamingFalseModel.json
vid-webpack-master/cypress/support/jsonBuilders/mocks/jsons/serviceModels/serviceForNewViewEdit.json
vid-webpack-master/cypress/support/jsonBuilders/mocks/jsons/serviceWithNetwork/aaiSubDetailsForServiceWithNetwork.json
vid-webpack-master/cypress/support/jsonBuilders/mocks/jsons/serviceWithNetwork/serviceWithNetwork.json
vid-webpack-master/cypress/support/jsonBuilders/mocks/jsons/serviceWithVnfAndVfModules.json
vid-webpack-master/cypress/support/jsonBuilders/mocks/jsons/tenants.json
vid-webpack-master/cypress/support/jsonBuilders/mocks/jsons/vnfGroupBasicServiceInstance.json
vid-webpack-master/cypress/support/jsonBuilders/mocks/jsons/vnfGroupsBasicModel.json
vid-webpack-master/cypress/support/jsonBuilders/mocks/jsons/zones.json
vid-webpack-master/cypress/support/steps/drawingBoard/drawingBoardComponentInfo.steps.ts
vid-webpack-master/cypress/support/steps/drawingBoard/drawingBoardHeader.steps.ts [new file with mode: 0644]
vid-webpack-master/cypress/support/steps/drawingBoard/drawingBoardModel.steps.ts
vid-webpack-master/cypress/support/steps/drawingBoard/drawingBoardTree.steps.ts
vid-webpack-master/package-lock.json [deleted file]
vid-webpack-master/package.cypress.json
vid-webpack-master/package.json
vid-webpack-master/src/app/angular-tree-component.scss
vid-webpack-master/src/app/drawingBoard/drawingBoard.module.ts
vid-webpack-master/src/app/drawingBoard/objectsToTree/objectToModelTree/modelTreeNode.model.ts [new file with mode: 0644]
vid-webpack-master/src/app/drawingBoard/service-planning/available-models-tree/available-models-tree.component.html
vid-webpack-master/src/app/drawingBoard/service-planning/available-models-tree/available-models-tree.component.scss
vid-webpack-master/src/app/drawingBoard/service-planning/available-models-tree/available-models-tree.component.ts
vid-webpack-master/src/app/drawingBoard/service-planning/available-models-tree/available-models-tree.service.spec.ts
vid-webpack-master/src/app/drawingBoard/service-planning/available-models-tree/available-models-tree.service.ts
vid-webpack-master/src/app/drawingBoard/service-planning/component-info/component-info-model.ts
vid-webpack-master/src/app/drawingBoard/service-planning/component-info/component-info.component.scss
vid-webpack-master/src/app/drawingBoard/service-planning/component-info/component-info.component.ts
vid-webpack-master/src/app/drawingBoard/service-planning/component-info/component-info.service.spec.ts
vid-webpack-master/src/app/drawingBoard/service-planning/component-info/component-info.service.ts
vid-webpack-master/src/app/drawingBoard/service-planning/drawing-board-header/drawing-board-header.component.html
vid-webpack-master/src/app/drawingBoard/service-planning/drawing-board-header/drawing-board-header.component.scss
vid-webpack-master/src/app/drawingBoard/service-planning/drawing-board-header/drawing-board-header.component.ts
vid-webpack-master/src/app/drawingBoard/service-planning/drawing-board-header/drawing-board-header.service.spec.ts
vid-webpack-master/src/app/drawingBoard/service-planning/drawing-board-header/drawing-board-header.service.ts
vid-webpack-master/src/app/drawingBoard/service-planning/drawing-board-tree/dragAndDrop/dragAndDrop.service.spec.ts
vid-webpack-master/src/app/drawingBoard/service-planning/drawing-board-tree/drawing-board-tree.component.ts
vid-webpack-master/src/app/drawingBoard/service-planning/drawing-board-tree/drawing-board-tree.html
vid-webpack-master/src/app/drawingBoard/service-planning/drawing-board-tree/drawing-board-tree.scss
vid-webpack-master/src/app/drawingBoard/service-planning/drawing-board-tree/drawing-board-tree.service.spec.ts
vid-webpack-master/src/app/drawingBoard/service-planning/drawing-board-tree/drawing-board-tree.service.ts
vid-webpack-master/src/app/drawingBoard/service-planning/duplicate/duplicate.service.spec.ts
vid-webpack-master/src/app/drawingBoard/service-planning/duplicate/duplicate.service.ts
vid-webpack-master/src/app/drawingBoard/service-planning/objectsToTree/models/basic.model.info.ts
vid-webpack-master/src/app/drawingBoard/service-planning/objectsToTree/models/collectionResource/collectionResource.model.info.spec.ts [new file with mode: 0644]
vid-webpack-master/src/app/drawingBoard/service-planning/objectsToTree/models/collectionResource/collectionResource.model.info.ts [new file with mode: 0644]
vid-webpack-master/src/app/drawingBoard/service-planning/objectsToTree/models/configuration/configuration.model.info.spec.ts
vid-webpack-master/src/app/drawingBoard/service-planning/objectsToTree/models/configuration/configuration.model.info.ts
vid-webpack-master/src/app/drawingBoard/service-planning/objectsToTree/models/ncf/ncf.model.info.spec.ts [new file with mode: 0644]
vid-webpack-master/src/app/drawingBoard/service-planning/objectsToTree/models/ncf/ncf.model.info.ts [new file with mode: 0644]
vid-webpack-master/src/app/drawingBoard/service-planning/objectsToTree/models/network/network.model.info.spec.ts
vid-webpack-master/src/app/drawingBoard/service-planning/objectsToTree/models/network/network.model.info.ts
vid-webpack-master/src/app/drawingBoard/service-planning/objectsToTree/models/pnf/pnf.model.info.spec.ts [new file with mode: 0644]
vid-webpack-master/src/app/drawingBoard/service-planning/objectsToTree/models/pnf/pnf.model.info.ts [new file with mode: 0644]
vid-webpack-master/src/app/drawingBoard/service-planning/objectsToTree/models/relatedVnfMember/relatedVnfMember.info.model.spec.ts
vid-webpack-master/src/app/drawingBoard/service-planning/objectsToTree/models/relatedVnfMember/relatedVnfMember.info.model.ts
vid-webpack-master/src/app/drawingBoard/service-planning/objectsToTree/models/vfModule/vfModule.model.info.spec.ts
vid-webpack-master/src/app/drawingBoard/service-planning/objectsToTree/models/vfModule/vfModule.model.info.ts
vid-webpack-master/src/app/drawingBoard/service-planning/objectsToTree/models/vnf/vnf.model.info.spec.ts
vid-webpack-master/src/app/drawingBoard/service-planning/objectsToTree/models/vnf/vnf.model.info.ts
vid-webpack-master/src/app/drawingBoard/service-planning/objectsToTree/models/vnfGrouping/vnfGrouping.model.info.spec.ts
vid-webpack-master/src/app/drawingBoard/service-planning/objectsToTree/models/vnfGrouping/vnfGrouping.model.info.ts
vid-webpack-master/src/app/drawingBoard/service-planning/objectsToTree/models/vpn/vpn.model.info.spec.ts [new file with mode: 0644]
vid-webpack-master/src/app/drawingBoard/service-planning/objectsToTree/models/vpn/vpn.model.info.ts [new file with mode: 0644]
vid-webpack-master/src/app/drawingBoard/service-planning/objectsToTree/models/vrf/vrf.model.info.spec.ts [new file with mode: 0644]
vid-webpack-master/src/app/drawingBoard/service-planning/objectsToTree/models/vrf/vrf.model.info.ts [new file with mode: 0644]
vid-webpack-master/src/app/drawingBoard/service-planning/objectsToTree/models/vrf/vrfModal/networkStep/network.step.model.ts [new file with mode: 0644]
vid-webpack-master/src/app/drawingBoard/service-planning/objectsToTree/models/vrf/vrfModal/networkStep/network.step.service.spec.ts [new file with mode: 0644]
vid-webpack-master/src/app/drawingBoard/service-planning/objectsToTree/models/vrf/vrfModal/networkStep/network.step.service.ts [new file with mode: 0644]
vid-webpack-master/src/app/drawingBoard/service-planning/objectsToTree/models/vrf/vrfModal/vpnStep/vpn.step.model.ts [new file with mode: 0644]
vid-webpack-master/src/app/drawingBoard/service-planning/objectsToTree/models/vrf/vrfModal/vpnStep/vpn.step.service.spec.ts [new file with mode: 0644]
vid-webpack-master/src/app/drawingBoard/service-planning/objectsToTree/models/vrf/vrfModal/vpnStep/vpn.step.service.ts [new file with mode: 0644]
vid-webpack-master/src/app/drawingBoard/service-planning/objectsToTree/objectToInstanceTree/objectToInstanceTree.service.spec.ts
vid-webpack-master/src/app/drawingBoard/service-planning/objectsToTree/objectToInstanceTree/objectToInstanceTree.service.ts
vid-webpack-master/src/app/drawingBoard/service-planning/objectsToTree/objectToModelTree/objectToModelTree.service.spec.ts
vid-webpack-master/src/app/drawingBoard/service-planning/objectsToTree/objectToModelTree/objectToModelTree.service.ts
vid-webpack-master/src/app/drawingBoard/service-planning/objectsToTree/objectToTree.service.ts
vid-webpack-master/src/app/drawingBoard/service-planning/objectsToTree/shared.tree.service.spec.ts
vid-webpack-master/src/app/drawingBoard/service-planning/objectsToTree/shared.tree.service.ts
vid-webpack-master/src/app/drawingBoard/service-planning/service-planning.component.html
vid-webpack-master/src/app/factories/mso.factory.spec.ts
vid-webpack-master/src/app/instantiationStatus/instantiationStatus.component.service.spec.ts
vid-webpack-master/src/app/shared/components/auditInfoModal/auditInfoModal.component.html
vid-webpack-master/src/app/shared/components/auditInfoModal/auditInfoModal.component.service.spec.ts
vid-webpack-master/src/app/shared/components/auditInfoModal/auditInfoModal.component.spec.ts
vid-webpack-master/src/app/shared/components/auditInfoModal/auditInfoModal.component.ts
vid-webpack-master/src/app/shared/components/ellipsis/ellipsis.component.ts
vid-webpack-master/src/app/shared/components/formControlError/formControlError.component.html
vid-webpack-master/src/app/shared/components/formControls/component/dropdown/dropdown.formControl.component.html
vid-webpack-master/src/app/shared/components/formControls/component/dropdown/dropdown.formControl.component.ts
vid-webpack-master/src/app/shared/components/genericForm/formControlsServices/basic.control.generator.spec.ts
vid-webpack-master/src/app/shared/components/genericForm/formControlsServices/networkGenerator/network.control.generator.spec.ts
vid-webpack-master/src/app/shared/components/genericForm/formControlsServices/networkGenerator/network.control.generator.ts
vid-webpack-master/src/app/shared/components/genericForm/formControlsServices/service.control.generator.spec.ts
vid-webpack-master/src/app/shared/components/genericForm/formControlsServices/service.control.generator.ts
vid-webpack-master/src/app/shared/components/genericForm/formControlsServices/vfModuleGenerator/vfModule.control.generator.spec.ts
vid-webpack-master/src/app/shared/components/genericForm/formControlsServices/vnfGenerator/vnf.control.generator.spec.ts
vid-webpack-master/src/app/shared/components/genericForm/formControlsServices/vnfGenerator/vnf.control.generator.ts
vid-webpack-master/src/app/shared/components/genericForm/formControlsServices/vnfGroupGenerator/vnfGroup.control.generator.spec.ts
vid-webpack-master/src/app/shared/components/genericFormPopup/generic-form-popup.component.ts
vid-webpack-master/src/app/shared/components/genericFormPopup/generic-form-popup.service.spec.ts
vid-webpack-master/src/app/shared/components/genericFormPopup/genericFormServices/basic.popup.service.spec.ts
vid-webpack-master/src/app/shared/components/genericFormPopup/genericFormServices/network/network.popup.service.spec.ts
vid-webpack-master/src/app/shared/components/genericFormPopup/genericFormServices/network/network.popup.service.ts
vid-webpack-master/src/app/shared/components/genericFormPopup/genericFormServices/service/service.popup.service.spec.ts
vid-webpack-master/src/app/shared/components/genericFormPopup/genericFormServices/service/service.popup.service.ts
vid-webpack-master/src/app/shared/components/genericFormPopup/genericFormServices/vfModule/vfModule.popuop.service.spec.ts
vid-webpack-master/src/app/shared/components/genericFormPopup/genericFormServices/vfModule/vfModule.popuop.service.ts
vid-webpack-master/src/app/shared/components/genericFormPopup/genericFormServices/vnf/vnf.popup.service.spec.ts
vid-webpack-master/src/app/shared/components/genericFormPopup/genericFormServices/vnf/vnf.popup.service.ts
vid-webpack-master/src/app/shared/components/genericFormPopup/genericFormServices/vnfGroup/vnfGroup.popup.service.spec.ts
vid-webpack-master/src/app/shared/components/genericFormPopup/genericFormServices/vnfGroup/vnfGroup.popup.service.ts
vid-webpack-master/src/app/shared/components/model-information/model-information.service.spec.ts
vid-webpack-master/src/app/shared/components/searchMembersModal/members-table/element-table-row.model.ts [new file with mode: 0644]
vid-webpack-master/src/app/shared/components/searchMembersModal/members-table/elements-table.component.html [new file with mode: 0644]
vid-webpack-master/src/app/shared/components/searchMembersModal/members-table/elements-table.component.ts [new file with mode: 0644]
vid-webpack-master/src/app/shared/components/searchMembersModal/members-table/elements-table.service.spec.ts [moved from vid-webpack-master/src/app/shared/components/searchMembersModal/members-table/members-table.service.spec.ts with 57% similarity]
vid-webpack-master/src/app/shared/components/searchMembersModal/members-table/elements-table.service.ts [new file with mode: 0644]
vid-webpack-master/src/app/shared/components/searchMembersModal/members-table/member-table-row.model.ts [deleted file]
vid-webpack-master/src/app/shared/components/searchMembersModal/members-table/members-table.component.html [deleted file]
vid-webpack-master/src/app/shared/components/searchMembersModal/members-table/members-table.component.scss
vid-webpack-master/src/app/shared/components/searchMembersModal/members-table/members-table.component.ts [deleted file]
vid-webpack-master/src/app/shared/components/searchMembersModal/members-table/members-table.service.ts [deleted file]
vid-webpack-master/src/app/shared/components/searchMembersModal/search-elements-modal.component.html [new file with mode: 0644]
vid-webpack-master/src/app/shared/components/searchMembersModal/search-elements-modal.component.scss [moved from vid-webpack-master/src/app/shared/components/searchMembersModal/search-members-modal.component.scss with 74% similarity]
vid-webpack-master/src/app/shared/components/searchMembersModal/search-elements-modal.component.ts [new file with mode: 0644]
vid-webpack-master/src/app/shared/components/searchMembersModal/search-members-modal.component.html [deleted file]
vid-webpack-master/src/app/shared/components/searchMembersModal/search-members-modal.component.ts [deleted file]
vid-webpack-master/src/app/shared/models/VnfMember.ts
vid-webpack-master/src/app/shared/models/collectionResourceInstance.ts [new file with mode: 0644]
vid-webpack-master/src/app/shared/models/collectionResourceModel.ts [new file with mode: 0644]
vid-webpack-master/src/app/shared/models/collectionResourceTreeNode.ts [new file with mode: 0644]
vid-webpack-master/src/app/shared/models/firstLevelTreeNode.ts [new file with mode: 0644]
vid-webpack-master/src/app/shared/models/level1Instance.ts
vid-webpack-master/src/app/shared/models/ncfInstance.ts [new file with mode: 0644]
vid-webpack-master/src/app/shared/models/ncfModel.ts [new file with mode: 0644]
vid-webpack-master/src/app/shared/models/ncfTreeNode.ts [new file with mode: 0644]
vid-webpack-master/src/app/shared/models/networkInstance.ts
vid-webpack-master/src/app/shared/models/networkTreeNode.ts
vid-webpack-master/src/app/shared/models/nodeInstance.ts
vid-webpack-master/src/app/shared/models/nodeModel.ts
vid-webpack-master/src/app/shared/models/pnfInstance.ts [new file with mode: 0644]
vid-webpack-master/src/app/shared/models/pnfModel.ts [new file with mode: 0644]
vid-webpack-master/src/app/shared/models/pnfTreeNode.ts [new file with mode: 0644]
vid-webpack-master/src/app/shared/models/serviceInstance.ts
vid-webpack-master/src/app/shared/models/serviceInstanceActions.ts
vid-webpack-master/src/app/shared/models/serviceModel.ts
vid-webpack-master/src/app/shared/models/treeNodeModel.ts
vid-webpack-master/src/app/shared/models/vfModuleInstance.ts
vid-webpack-master/src/app/shared/models/vidNotions.ts [new file with mode: 0644]
vid-webpack-master/src/app/shared/models/vnfGroupTreeNode.ts
vid-webpack-master/src/app/shared/models/vnfInstance.ts
vid-webpack-master/src/app/shared/models/vnfTreeNode.ts
vid-webpack-master/src/app/shared/models/vpnTreeNode.ts [new file with mode: 0644]
vid-webpack-master/src/app/shared/models/vrfInstance.ts [new file with mode: 0644]
vid-webpack-master/src/app/shared/models/vrfModel.ts [new file with mode: 0644]
vid-webpack-master/src/app/shared/models/vrfTreeNode.ts [new file with mode: 0644]
vid-webpack-master/src/app/shared/pipes/dataFilter/data-filter.pipe.ts
vid-webpack-master/src/app/shared/pipes/serviceInfo/serviceInfo.pipe.spec.ts
vid-webpack-master/src/app/shared/resolvers/retry/retry.resolver.spec.ts
vid-webpack-master/src/app/shared/resolvers/viewEdit/viewEdit.resolver.ts
vid-webpack-master/src/app/shared/services/aaiService/aai.service.spec.ts
vid-webpack-master/src/app/shared/services/aaiService/aai.service.ts
vid-webpack-master/src/app/shared/services/defaultDataServiceGenerator/default.data.generator.service.spec.ts
vid-webpack-master/src/app/shared/services/featureFlag/feature-flags.service.ts
vid-webpack-master/src/app/shared/shared.module.ts
vid-webpack-master/src/app/shared/storeUtil/utils/cr/cr.actions.ts [new file with mode: 0644]
vid-webpack-master/src/app/shared/storeUtil/utils/cr/cr.reducer.spec.ts [new file with mode: 0644]
vid-webpack-master/src/app/shared/storeUtil/utils/cr/cr.reducer.ts [new file with mode: 0644]
vid-webpack-master/src/app/shared/storeUtil/utils/firstLevel/firstLevel.actions.ts [new file with mode: 0644]
vid-webpack-master/src/app/shared/storeUtil/utils/general/general.reducers.ts
vid-webpack-master/src/app/shared/storeUtil/utils/global/global.actions.ts
vid-webpack-master/src/app/shared/storeUtil/utils/global/global.reducers.spec.ts
vid-webpack-master/src/app/shared/storeUtil/utils/global/global.reducers.ts
vid-webpack-master/src/app/shared/storeUtil/utils/main.reducer.ts
vid-webpack-master/src/app/shared/storeUtil/utils/ncf/ncf.actions.ts [new file with mode: 0644]
vid-webpack-master/src/app/shared/storeUtil/utils/ncf/ncf.reducer.spec.ts [new file with mode: 0644]
vid-webpack-master/src/app/shared/storeUtil/utils/ncf/ncf.reducer.ts [new file with mode: 0644]
vid-webpack-master/src/app/shared/storeUtil/utils/network/network.actions.ts
vid-webpack-master/src/app/shared/storeUtil/utils/network/network.reducers.spec.ts
vid-webpack-master/src/app/shared/storeUtil/utils/network/network.reducers.ts
vid-webpack-master/src/app/shared/storeUtil/utils/reducersHelper.ts [new file with mode: 0644]
vid-webpack-master/src/app/shared/storeUtil/utils/relatedVnfMember/relatedVnfMember.reducers.spec.ts
vid-webpack-master/src/app/shared/storeUtil/utils/service/service.reducers.spec.ts
vid-webpack-master/src/app/shared/storeUtil/utils/service/service.reducers.ts
vid-webpack-master/src/app/shared/storeUtil/utils/vfModule/vfModule.reducers.ts
vid-webpack-master/src/app/shared/storeUtil/utils/vnf/vnf.actions.ts
vid-webpack-master/src/app/shared/storeUtil/utils/vnf/vnf.reducers.spec.ts
vid-webpack-master/src/app/shared/storeUtil/utils/vnf/vnf.reducers.ts
vid-webpack-master/src/app/shared/storeUtil/utils/vrf/vrf.actions.ts [new file with mode: 0644]
vid-webpack-master/src/app/shared/storeUtil/utils/vrf/vrf.reducer.spec.ts [new file with mode: 0644]
vid-webpack-master/src/app/shared/storeUtil/utils/vrf/vrf.reducer.ts [new file with mode: 0644]
vid-webpack-master/src/app/shared/utils/constants.ts
vid-webpack-master/src/app/shared/utils/iframe.service.ts
vid-webpack-master/src/styles.scss

index 6a48190..d36f592 100755 (executable)
@@ -46,7 +46,8 @@
         <kotlin.compiler.jvmTarget>1.8</kotlin.compiler.jvmTarget>
 
         <eirslett.version>1.6</eirslett.version>
-        <node.version>v6.16.0</node.version>
+        <node.version>v8.9.4</node.version>
+        <npm.version>5.6.0</npm.version>
 
         <!-- override using -Drelease_version=foo -Dpatch_version=bar -->
         <release_version>${env.RELEASE_VERSION}</release_version>
                         </goals>
                         <phase>generate-resources</phase>
                         <configuration>
+                            <npmVersion>${npm.version}</npmVersion>
                             <nodeVersion>${node.version}</nodeVersion>
                         </configuration>
                     </execution>
index 048836e..ecd9102 100644 (file)
@@ -54,7 +54,7 @@ describe('A la carte', function () {
       cy.readFile('/cypress/support/jsonBuilders/mocks/jsons/emptyServiceRedux.json').then((res) => {
 
         cy.setTestApiParamToGR();
-        res.service.serviceHierarchy['2f80c596-27e5-4ca9-b5bb-e03a7fd4c0fd'].service.instantiationType = 'A-La-Carte';
+        res.service.serviceHierarchy['2f80c596-27e5-4ca9-b5bb-e03a7fd4c0fd'].service.vidNotions.instantiationType = 'ALaCarte';
         res.service.serviceHierarchy['2f80c596-27e5-4ca9-b5bb-e03a7fd4c0fd'].service.inputs = null;
         cy.setReduxState(<any>res);
         cy.openIframe('app/ui/#/servicePlanning?serviceModelId=2f80c596-27e5-4ca9-b5bb-e03a7fd4c0fd');
@@ -96,7 +96,7 @@ describe('A la carte', function () {
     it(`VNF a-la-carte`, ()=> {
       cy.readFile('/cypress/support/jsonBuilders/mocks/jsons/emptyServiceRedux.json').then((res) => {
         cy.setTestApiParamToGR();
-        res.service.serviceHierarchy['2f80c596-27e5-4ca9-b5bb-e03a7fd4c0fd'].service.instantiationType = 'A-La-Carte';
+        res.service.serviceHierarchy['2f80c596-27e5-4ca9-b5bb-e03a7fd4c0fd'].service.vidNotions.instantiationType = 'ALaCarte';
         res.service.serviceHierarchy['2f80c596-27e5-4ca9-b5bb-e03a7fd4c0fd'].service.inputs = null;
         cy.setReduxState(<any>res);
         cy.openIframe('app/ui/#/servicePlanning?serviceModelId=2f80c596-27e5-4ca9-b5bb-e03a7fd4c0fd');
@@ -119,9 +119,9 @@ describe('A la carte', function () {
 
         cy.get('#quantity-select').should('have.attr', 'disabled');
         cy.getElementByDataTestsId('form-set').click({force: true}).then(() => {
-          cy.getElementByDataTestsId('node-2017-488_ADIOD-vPE 0-add-btn').click({force: true}).then(() => {
+          cy.getElementByDataTestsId('node-2017-488_PASQUALE-vPE 0-add-btn').click({force: true}).then(() => {
             cy.selectDropdownOptionByText('productFamily', 'Emanuel');
-            cy.selectDropdownOptionByText('lcpRegion', 'JANET25');
+            cy.selectDropdownOptionByText('lcpRegion', 'AAIAIC25');
             cy.typeToInput("lcpRegionText", "just another region");
             cy.selectDropdownOptionByText('tenant', 'USP-SIP-IC-24335-T-01');
             cy.selectDropdownOptionByText('lineOfBusiness', 'zzz1');
@@ -129,12 +129,12 @@ describe('A la carte', function () {
             cy.getElementByDataTestsId('form-set').click({force: true}).then(() => {
               cy.getReduxState().then((state) => {
 
-                const vnf = state.service.serviceInstance['2f80c596-27e5-4ca9-b5bb-e03a7fd4c0fd'].vnfs['2017-488_ADIOD-vPE 0'];
+                const vnf = state.service.serviceInstance['2f80c596-27e5-4ca9-b5bb-e03a7fd4c0fd'].vnfs['2017-488_PASQUALE-vPE 0'];
 
                 cy.readFile('../vid-automation/src/test/resources/a-la-carte/redux-a-la-carte.json').then((file) => {
-                  file.vnfs['2017-488_ADIOD-vPE 0'].trackById = vnf.trackById;
-                  file.vnfs['2017-488_ADIOD-vPE 0'].vfModules = {};
-                  cy.deepCompare(vnf, file.vnfs['2017-488_ADIOD-vPE 0'])
+                  file.vnfs['2017-488_PASQUALE-vPE 0'].trackById = vnf.trackById;
+                  file.vnfs['2017-488_PASQUALE-vPE 0'].vfModules = {};
+                  cy.deepCompare(vnf, file.vnfs['2017-488_PASQUALE-vPE 0'])
                 });
               });
             });
@@ -147,7 +147,7 @@ describe('A la carte', function () {
     it(`Network a-la-carte`, ()=> {
       cy.readFile('/cypress/support/jsonBuilders/mocks/jsons/emptyServiceRedux.json').then((res) => {
         cy.setTestApiParamToGR();
-        res.service.serviceHierarchy['2f80c596-27e5-4ca9-b5bb-e03a7fd4c0fd'].service.instantiationType = 'A-La-Carte';
+        res.service.serviceHierarchy['2f80c596-27e5-4ca9-b5bb-e03a7fd4c0fd'].service.vidNotions.instantiationType = 'ALaCarte';
         res.service.serviceHierarchy['2f80c596-27e5-4ca9-b5bb-e03a7fd4c0fd'].service.inputs = null;
         res.service.serviceHierarchy['2f80c596-27e5-4ca9-b5bb-e03a7fd4c0fd'].networks = {
           "ExtVL 0": {
@@ -175,9 +175,9 @@ describe('A la carte', function () {
         cy.openIframe('app/ui/#/servicePlanning?serviceModelId=2f80c596-27e5-4ca9-b5bb-e03a7fd4c0fd');
         cy.getElementByDataTestsId("node-ExtVL 0-add-btn").click({force: true});
         cy.selectDropdownOptionByText("platform", "xxx1");
-        cy.selectDropdownOptionByText("lcpRegion", "JANET25");
+        cy.selectDropdownOptionByText("lcpRegion", "AAIAIC25");
         cy.selectDropdownOptionByText("tenant", "USP-SIP-IC-24335-T-01");
-        cy.selectDropdownOptionByText("productFamily", "SCOTTIE");
+        cy.selectDropdownOptionByText("productFamily", "ERICA");
         cy.selectDropdownOptionByText("lineOfBusiness", "zzz1");
         cy.typeToInput("lcpRegionText", "lcpRegionText");
 
@@ -201,28 +201,28 @@ describe('A la carte', function () {
       }
       cy.readFile('/cypress/support/jsonBuilders/mocks/jsons/emptyServiceRedux.json').then((res) => {
         cy.setTestApiParamToGR();
-        res.service.serviceHierarchy['2f80c596-27e5-4ca9-b5bb-e03a7fd4c0fd'].service.instantiationType = 'A-La-Carte';
+        res.service.serviceHierarchy['2f80c596-27e5-4ca9-b5bb-e03a7fd4c0fd'].service.vidNotions.instantiationType = 'ALaCarte';
         res.service.serviceHierarchy['2f80c596-27e5-4ca9-b5bb-e03a7fd4c0fd'].service.inputs = null;
         cy.setReduxState(<any>res);
         cy.openIframe('app/ui/#/servicePlanning?serviceModelId=2f80c596-27e5-4ca9-b5bb-e03a7fd4c0fd');
 
-        cy.getElementByDataTestsId('node-2017-488_ADIOD-vPE 0-add-btn').click({force: true}).then(() => {
+        cy.getElementByDataTestsId('node-2017-488_PASQUALE-vPE 0-add-btn').click({force: true}).then(() => {
           cy.selectDropdownOptionByText('productFamily', 'Emanuel');
           cy.selectDropdownOptionByText('lcpRegion', 'hvf6');
           cy.selectDropdownOptionByText('tenant', 'AIN Web Tool-15-D-STTest2');
           cy.selectDropdownOptionByText('lineOfBusiness', 'zzz1');
           cy.selectDropdownOptionByText('platform', 'xxx1');
           cy.getElementByDataTestsId('form-set').click({force: true}).then(() => {
-            const vnfName = '2017-488_ADIOD-vPE 0';
+            const vnfName = '2017-488_PASQUALE-vPE 0';
             let vfModulesNames: Array<string> = [
-              '2017488_adiodvpe0..2017488AdiodVpe..ADIOD_base_vPE_BV..module-0',
-              '2017488_adiodvpe0..2017488AdiodVpe..ADIOD_vRE_BV..module-1',
-              '2017488_adiodvpe0..2017488AdiodVpe..ADIOD_vPFE_BV..module-2',
+              '2017488_pasqualevpe0..2017488PasqualeVpe..PASQUALE_base_vPE_BV..module-0',
+              '2017488_pasqualevpe0..2017488PasqualeVpe..PASQUALE_vRE_BV..module-1',
+              '2017488_pasqualevpe0..2017488PasqualeVpe..PASQUALE_vPFE_BV..module-2',
             ];
 
             addVfModule(vnfName, vfModulesNames[0], 'mimazepubi', 'hvf6', '', 'AINWebTool-15-D-iftach', false, false, false)
               .then(() => {
-                addVfModule(vnfName, vfModulesNames[1], 'puwesovabe', 'JANET25', 'my region', 'USP-SIP-IC-24335-T-01', true, true, false)
+                addVfModule(vnfName, vfModulesNames[1], 'puwesovabe', 'AAIAIC25', 'my region', 'USP-SIP-IC-24335-T-01', true, true, false)
                   .then(() => {
                     addVfModule(vnfName, vfModulesNames[2], 'bnmgtrx', 'hvf6', '', 'AINWebTool-15-D-iftach', false, false, true)
                       .then(() => {
diff --git a/vid-webpack-master/cypress/integration/iFrames/collectionResource.e2e.ts b/vid-webpack-master/cypress/integration/iFrames/collectionResource.e2e.ts
new file mode 100644 (file)
index 0000000..796755c
--- /dev/null
@@ -0,0 +1,1622 @@
+///<reference path="../../../node_modules/cypress/types/index.d.ts"/>
+
+import {JsonBuilder} from "../../support/jsonBuilders/jsonBuilder";
+import {ServiceModel} from "../../support/jsonBuilders/models/service.model";
+
+describe('Drawing board : Collection resource', function () {
+
+  let jsonBuilderAndMock: JsonBuilder<ServiceModel> = new JsonBuilder<ServiceModel>();
+
+  beforeEach(() => {
+    cy.window().then((win) => {
+      win.sessionStorage.clear();
+      cy.preventErrorsOnLoading();
+      cy.initAAIMock();
+      cy.initVidMock();
+      cy.login();
+    });
+  });
+
+  afterEach(() => {
+    cy.screenshot();
+  });
+
+
+  describe('should show collection resource model correctly', () => {
+    it('collection type + name', () => {
+      const serviceModelId: string = "6e59c5de-f052-46fa-aa7e-2fca9d674c44";
+      const collectionResourceName: string = "CR_sanity 0";
+      initDrawingBoardWithColectionResource(serviceModelId, collectionResourceName);
+      cy.get('.vf-type').contains('CR');
+      cy.getElementByDataTestsId('available-models-tree').getElementByDataTestsId('node-name').contains(collectionResourceName);
+    });
+
+    it('collection resource component info', () => {
+      const serviceModelId: string = "6e59c5de-f052-46fa-aa7e-2fca9d674c44";
+      const collectionResourceName: string = "CR_sanity 0";
+      const redux = initDrawingBoardWithColectionResource(serviceModelId, collectionResourceName)
+      cy.getElementByDataTestsId(`node-${collectionResourceName}`).click().then(()=>{
+        cy.getElementByDataTestsId('component-info-section-title').contains('Collection Resource INFO');
+        const customizationUuid: string = redux["service"]["serviceHierarchy"][serviceModelId]["collectionResources"][collectionResourceName].customizationUuid;
+        cy.getElementByDataTestsId('model-item-value-Model customization ID').contains(customizationUuid);
+      });
+    });
+  });
+
+  describe('collection resource in view edit mode',()=>{
+    const SUBSCRIBER_ID: string = "a9a77d5a-123e-4ca2-9eb9-0b015d2ee0fb";
+    const SERVICE_TYPE: string = "Emanuel";
+    const SERVICE_MODEL_ID: string = "6e0bec91-09f3-43aa-9cf3-e617cd0146be";
+    const SERVICE_INSTANCE_ID: string = "a565e6ad-75d1-4493-98f1-33234b5c17e2";
+
+    function verifyOnlyStatusDelete(){
+      cy.getElementByDataTestsId('delete-status-type-header').should('exist');
+      cy.getElementByDataTestsId('resume-status-type-header').should('not.exist');
+      cy.getElementByDataTestsId('serviceName').should('have.css', 'text-decoration').and('contain', 'line-through');
+      cy.isNodeDeleted(0);
+      cy.isNodeDeleted(1);
+    }
+
+    function verifyOnlyStatusResume(){
+      cy.getElementByDataTestsId('resume-status-type-header').should('exist');
+      cy.getElementByDataTestsId('delete-status-type-header').should('not.exist');
+      cy.isNodeNotDeleted(0);
+      cy.isNodeNotDeleted(1);
+    }
+
+    function verifyEmptyStatus(){
+      cy.getElementByDataTestsId('resume-status-type-header').should('not.exist');
+      cy.getElementByDataTestsId('delete-status-type-header').should('not.exist');
+      cy.isNodeNotDeleted(0);
+      cy.isNodeNotDeleted(1);
+    }
+
+    function initCrViewEdit() {
+        cy.permissionVidMock();
+        cy.readFile('../vid-app-common/src/test/resources/getTopology/serviceWithCR/getTopologyWithCR.json').then((res) => {
+          jsonBuilderAndMock.basicJson(
+            res,
+            Cypress.config('baseUrl') + `/aai_get_service_instance_topology/${SUBSCRIBER_ID}/${SERVICE_TYPE}/${SERVICE_INSTANCE_ID}`,
+            200, 0,
+            "getTopologyWithCR",
+          )
+        });
+
+
+      cy.readFile('../vid-app-common/src/test/resources/getTopology/serviceWithCR/serviceWithCRModel.json').then((res) => {
+          jsonBuilderAndMock.basicJson(
+            res,
+            Cypress.config('baseUrl') + `/rest/models/services/${SERVICE_MODEL_ID}`,
+            200,
+            0,
+            "serviceModelWithCR",
+          )
+        });
+      cy.openIframe(`app/ui/#/servicePlanning/EDIT?serviceModelId=${SERVICE_MODEL_ID}&subscriberId=${SUBSCRIBER_ID}&serviceType=${SERVICE_TYPE}&serviceInstanceId=${SERVICE_INSTANCE_ID}`);
+    }
+
+    it('should show left and right trees correctly', () => {
+      initCrViewEdit();
+      cy.hasClass('orchStatusValue','tag-status-value');
+      cy.get('.vf-type').contains('CR');
+      const crModelName = "NCM_VLAN_ym161f 0";
+      cy.getElementByDataTestsId('available-models-tree').getElementByDataTestsId('node-name').contains(crModelName);
+
+      /*
+      Right tree
+      */
+
+      const rightShouldHaves: { [dataTestId: string]: { [dataTestId: string]: string; }; } = {
+        'node-ce8c98bc-4691-44fb-8ff0-7a47487c11c4-undefined': {
+          'node-type-indicator': 'CR',
+          'node-name': 'NcmVlanSvcYm161f_77_vTSBC Customer Landing Network Collection'
+        },
+        'node-undefined-undefined': {
+          'node-type-indicator': 'NCF',
+          'node-name': 'NcmVlanSvcYm161f_77_vTSBC Customer Landing Network Collection'
+        }
+      };
+
+      const expectedComponentInfo: { [key: string]: any } = {
+        'node-ce8c98bc-4691-44fb-8ff0-7a47487c11c4-undefined': {
+          labelsAndValues: [
+            //['Model version', "5.0"] //to add once fix in code
+            ['Instance ID', '84a351ae-3601-45e2-98df-878d6c816abc'],
+            ['In maintenance', 'false']
+          ],
+          title: "Collection Resource Instance INFO"
+        },
+        'node-undefined-undefined': {
+          labelsAndValues: [
+            ['Model version', "1"],
+            ['Instance ID', '6b3536cf-3a12-457f-abb5-fa2203e0d923'],
+            ['Instance type', 'L3-NETWORK'],
+            ['In maintenance', 'false'],
+            ['Role', 'SUB_INTERFACE'],
+            ['Collection function', 'vTSBC Customer Landing Network Collection'],
+            ['Number of networks', '1']
+          ],
+          title: "Network Collection Function Instance INFO"
+        }
+      };
+
+      for (let node in rightShouldHaves) {
+        for (let span in rightShouldHaves[node]) {
+          cy.getElementByDataTestsId(node).find(`[data-tests-id='${span}']`).should('have.text', rightShouldHaves[node][span]);
+        }
+        cy.getElementByDataTestsId(node).click().then(() => {
+          let expected = <any>expectedComponentInfo[node];
+          cy.assertComponentInfoTitleLabelsAndValues(expected['title'], expected['labelsAndValues']);
+        })
+      }
+    });
+
+
+    it('resume service with cr', () => {
+      cy.server().route({
+        url: Cypress.config('baseUrl') + '/asyncInstantiation/bulk',
+        method: 'POST',
+        status: 200,
+        response: "[]",
+      }).as("expectedPostAsyncInstantiation");
+      initCrViewEdit();
+      cy.serviceActionDelete();
+      verifyOnlyStatusDelete();
+      cy.serviceActionResume();
+      verifyOnlyStatusResume();
+      cy.serviceActionDelete();
+      verifyOnlyStatusDelete();
+      cy.serviceActionUndoDelete();
+      verifyEmptyStatus();
+      cy.serviceActionResume();
+      cy.serviceActionUndoResume();
+      verifyEmptyStatus();
+      cy.serviceActionResume();
+      cy.getDrawingBoardDeployBtn().click();
+      cy.wait('@expectedPostAsyncInstantiation').then(xhr => {
+        cy.readFile('../vid-app-common/src/test/resources/payload_jsons/resume/feRequestResumeMacroService.json').then((expectedResult) => {
+           cy.deepCompare(xhr.request.body, expectedResult);
+       });
+      });
+
+    });
+  });
+
+  function initDrawingBoardWithColectionResource(serviceModelId: string, collectionResourceName: string) {
+      const redux = reduxWithCollectionResource(serviceModelId, collectionResourceName);
+      cy.setReduxState(<any>redux);
+      cy.openIframe(`app/ui/#/servicePlanning?serviceModelId=${serviceModelId}`);
+      return redux;
+  }
+
+
+  function reduxWithCollectionResource(serviceModelId: string, collectionResourceName: string) {
+    return {
+      "service": {
+        "serviceHierarchy": {
+          [serviceModelId]: {
+            "service": {
+              "uuid": serviceModelId,
+              "invariantUuid": "cfef8302-d90f-475f-87cc-3f49a62ef14c",
+              "name": "ComplexService",
+              "version": "1.0",
+              "toscaModelURL": null,
+              "category": "Emanuel",
+              "serviceType": "",
+              "serviceRole": "",
+              "description": "ComplexService",
+              "serviceEcompNaming": "true",
+              "instantiationType": "Macro",
+              "inputs": {},
+              "vidNotions": {
+                "instantiationUI": "legacy",
+                "modelCategory": "other",
+                "viewEditUI": "legacy"
+              }
+            },
+            "vnfs": {},
+            "networks": {},
+            "collectionResources": {
+              [collectionResourceName]: {
+                "uuid": "3467f91f-1a2a-4013-a5ed-8ad99d4e06ad",
+                "invariantUuid": "d0060da6-82b8-4ca0-9758-5eb2b111b926",
+                "description": "CR_sanity",
+                "name": "CR_sanity",
+                "version": "1.0",
+                "customizationUuid": "7160c618-9314-4c09-8717-b77f3d29d946",
+                "inputs": {},
+                "commands": {},
+                "properties": {
+                  "cr_sanity..Fixed..0_quantity": "10",
+                  "cr_sanity..NetworkCollection..0_network_collection_function": "ABCD",
+                  "ecomp_generated_naming": "false",
+                  "cr_sanity..NetworkCollection..0_network_collection_description": "ABCD"
+                },
+                "type": "CR",
+                "category": "Network L2-3",
+                "subcategory": "Infrastructure",
+                "resourceVendor": "ATT",
+                "resourceVendorRelease": "2018.06",
+                "resourceVendorModelNumber": "",
+                "customizationUUID": "7160c618-9314-4c09-8717-b77f3d29d946",
+                "networksCollection": {
+                  "cr_sanity..NetworkCollection..0": {
+                    "uuid": "445d7fa8-3e59-4606-bd76-30ba5fc677d3",
+                    "invariantUuid": "9dc623b8-0ae8-47ad-a791-a21b8d8e94a8",
+                    "name": "cr_sanity..NetworkCollection..0",
+                    "version": "1",
+                    "networkCollectionProperties": {
+                      "networkCollectionFunction": "ABCD",
+                      "networkCollectionDescription": "ABCD"
+                    }
+                  }
+                }
+              }
+            },
+            "configurations": {},
+            "fabricConfigurations": {},
+            "serviceProxies": {},
+            "vfModules": {},
+            "volumeGroups": {},
+            "pnfs": {},
+            "vnfGroups": {}
+          }
+        },
+        "serviceInstance": {
+          "6e59c5de-f052-46fa-aa7e-2fca9d674c44": {
+            "action": "Create",
+            "isDirty": true,
+            "vnfs": {},
+            "instanceParams": [
+              {}
+            ],
+            "validationCounter": 0,
+            "existingNames": {
+              "11": "",
+              "yoav": ""
+            },
+            "existingVNFCounterMap": {
+              "91415b44-753d-494c-926a-456a9172bbb9": 1
+            },
+            "existingVnfGroupCounterMap": {},
+            "existingNetworksCounterMap": {},
+            "optionalGroupMembersMap": {},
+            "networks": {},
+            "vnfGroups": {},
+            "bulkSize": 1,
+            "instanceName": "serviceInstanceName",
+            "globalSubscriberId": "e433710f-9217-458d-a79d-1c7aff376d89",
+            "subscriptionServiceType": "TYLER SILVIA",
+            "owningEntityId": "d61e6f2d-12fa-4cc2-91df-7c244011d6fc",
+            "productFamilyId": "d8a6ed93-251c-47ca-adc9-86671fd19f4c",
+            "lcpCloudRegionId": "AAIAIC25",
+            "tenantId": "092eb9e8e4b7412e8787dd091bc58e86",
+            "aicZoneId": "ATL53",
+            "projectName": "WATKINS",
+            "rollbackOnFailure": "true",
+            "aicZoneName": "AAIATLTE-ATL53",
+            "owningEntityName": "WayneHolland",
+            "testApi": "VNF_API",
+            "tenantName": "USP-SIP-IC-24335-T-01",
+            "modelInfo": {
+              "modelInvariantId": "cfef8302-d90f-475f-87cc-3f49a62ef14c",
+              "modelVersionId": "6e59c5de-f052-46fa-aa7e-2fca9d674c44",
+              "modelName": "ComplexService",
+              "modelVersion": "1.0",
+              "uuid": "6e59c5de-f052-46fa-aa7e-2fca9d674c44",
+              "modelUniqueId": "6e59c5de-f052-46fa-aa7e-2fca9d674c44"
+            },
+            "isALaCarte": false,
+            "name": "ComplexService",
+            "version": "1.0",
+            "description": "ComplexService",
+            "category": "Emanuel",
+            "uuid": "6e59c5de-f052-46fa-aa7e-2fca9d674c44",
+            "invariantUuid": "cfef8302-d90f-475f-87cc-3f49a62ef14c",
+            "serviceType": "",
+            "serviceRole": "",
+            "vidNotions": {
+              "instantiationUI": "legacy",
+              "modelCategory": "other",
+              "viewEditUI": "legacy"
+            },
+            "isEcompGeneratedNaming": true,
+            "isMultiStepDesign": false
+          }
+        },
+        "lcpRegionsAndTenants": {
+          "lcpRegionList": [
+            {
+              "id": "AAIAIC25",
+              "name": "AAIAIC25 (AIC)",
+              "isPermitted": true,
+              "cloudOwner": "irma-aic"
+            },
+            {
+              "id": "hvf6",
+              "name": "hvf6 (AIC)",
+              "isPermitted": true,
+              "cloudOwner": "irma-aic"
+            }
+          ],
+          "lcpRegionsTenantsMap": {
+            "AAIAIC25": [
+              {
+                "id": "092eb9e8e4b7412e8787dd091bc58e86",
+                "name": "USP-SIP-IC-24335-T-01",
+                "isPermitted": true,
+                "cloudOwner": "irma-aic"
+              }
+            ],
+            "hvf6": [
+              {
+                "id": "bae71557c5bb4d5aac6743a4e5f1d054",
+                "name": "AIN Web Tool-15-D-testalexandria",
+                "isPermitted": true,
+                "cloudOwner": "irma-aic"
+              },
+              {
+                "id": "229bcdc6eaeb4ca59d55221141d01f8e",
+                "name": "AIN Web Tool-15-D-STTest2",
+                "isPermitted": true,
+                "cloudOwner": "irma-aic"
+              },
+              {
+                "id": "1178612d2b394be4834ad77f567c0af2",
+                "name": "AIN Web Tool-15-D-SSPtestcustome",
+                "isPermitted": true,
+                "cloudOwner": "irma-aic"
+              },
+              {
+                "id": "19c5ade915eb461e8af52fb2fd8cd1f2",
+                "name": "AIN Web Tool-15-D-UncheckedEcopm",
+                "isPermitted": true,
+                "cloudOwner": "irma-aic"
+              },
+              {
+                "id": "de007636e25249238447264a988a927b",
+                "name": "AIN Web Tool-15-D-dfsdf",
+                "isPermitted": true,
+                "cloudOwner": "irma-aic"
+              },
+              {
+                "id": "62f29b3613634ca6a3065cbe0e020c44",
+                "name": "AIN/SMS-16-D-Multiservices1",
+                "isPermitted": true,
+                "cloudOwner": "irma-aic"
+              },
+              {
+                "id": "649289e30d3244e0b48098114d63c2aa",
+                "name": "AIN Web Tool-15-D-SSPST66",
+                "isPermitted": true,
+                "cloudOwner": "irma-aic"
+              },
+              {
+                "id": "3f21eeea6c2c486bba31dab816c05a32",
+                "name": "AIN Web Tool-15-D-ASSPST47",
+                "isPermitted": true,
+                "cloudOwner": "irma-aic"
+              },
+              {
+                "id": "f60ce21d3ee6427586cff0d22b03b773",
+                "name": "CESAR-100-D-sspjg67246",
+                "isPermitted": true,
+                "cloudOwner": "irma-aic"
+              },
+              {
+                "id": "8774659e425f479895ae091bb5d46560",
+                "name": "CESAR-100-D-sspjg68359",
+                "isPermitted": true,
+                "cloudOwner": "irma-aic"
+              },
+              {
+                "id": "624eb554b0d147c19ff8885341760481",
+                "name": "AINWebTool-15-D-iftach",
+                "isPermitted": true,
+                "cloudOwner": "irma-aic"
+              },
+              {
+                "id": "214f55f5fc414c678059c383b03e4962",
+                "name": "CESAR-100-D-sspjg612401",
+                "isPermitted": true,
+                "cloudOwner": "irma-aic"
+              },
+              {
+                "id": "c90666c291664841bb98e4d981ff1db5",
+                "name": "CESAR-100-D-sspjg621340",
+                "isPermitted": true,
+                "cloudOwner": "irma-aic"
+              },
+              {
+                "id": "ce5b6bc5c7b348e1bf4b91ac9a174278",
+                "name": "sspjg621351cloned",
+                "isPermitted": true,
+                "cloudOwner": "irma-aic"
+              },
+              {
+                "id": "b386b768a3f24c8e953abbe0b3488c02",
+                "name": "AINWebTool-15-D-eteancomp",
+                "isPermitted": true,
+                "cloudOwner": "irma-aic"
+              },
+              {
+                "id": "dc6c4dbfd225474e9deaadd34968646c",
+                "name": "AINWebTool-15-T-SPFET",
+                "isPermitted": true,
+                "cloudOwner": "irma-aic"
+              },
+              {
+                "id": "02cb5030e9914aa4be120bd9ed1e19eb",
+                "name": "AINWebTool-15-X-eeweww",
+                "isPermitted": true,
+                "cloudOwner": "irma-aic"
+              },
+              {
+                "id": "f2f3830e4c984d45bcd00e1a04158a79",
+                "name": "CESAR-100-D-spjg61909",
+                "isPermitted": true,
+                "cloudOwner": "irma-aic"
+              },
+              {
+                "id": "05b91bd5137f4929878edd965755c06d",
+                "name": "CESAR-100-D-sspjg621512cloned",
+                "isPermitted": true,
+                "cloudOwner": "irma-aic"
+              },
+              {
+                "id": "7002fbe8482d4a989ddf445b1ce336e0",
+                "name": "AINWebTool-15-X-vdr",
+                "isPermitted": true,
+                "cloudOwner": "irma-aic"
+              },
+              {
+                "id": "4008522be43741dcb1f5422022a2aa0b",
+                "name": "AINWebTool-15-D-ssasa",
+                "isPermitted": true,
+                "cloudOwner": "irma-aic"
+              },
+              {
+                "id": "f44e2e96a1b6476abfda2fa407b00169",
+                "name": "AINWebTool-15-D-PFNPT",
+                "isPermitted": true,
+                "cloudOwner": "irma-aic"
+              },
+              {
+                "id": "b69a52bec8a84669a37a1e8b72708be7",
+                "name": "AINWebTool-15-X-vdre",
+                "isPermitted": true,
+                "cloudOwner": "irma-aic"
+              },
+              {
+                "id": "fac7d9fd56154caeb9332202dcf2969f",
+                "name": "AINWebTool-15-X-NONPODECOMP",
+                "isPermitted": true,
+                "cloudOwner": "irma-aic"
+              },
+              {
+                "id": "2d34d8396e194eb49969fd61ffbff961",
+                "name": "DN5242-Nov16-T5",
+                "isPermitted": true,
+                "cloudOwner": "irma-aic"
+              },
+              {
+                "id": "cb42a77ff45b48a8b8deb83bb64acc74",
+                "name": "ro-T11",
+                "isPermitted": true,
+                "cloudOwner": "irma-aic"
+              },
+              {
+                "id": "fa45ca53c80b492fa8be5477cd84fc2b",
+                "name": "ro-T112",
+                "isPermitted": true,
+                "cloudOwner": "irma-aic"
+              },
+              {
+                "id": "4914ab0ab3a743e58f0eefdacc1dde77",
+                "name": "DN5242-Nov21-T1",
+                "isPermitted": true,
+                "cloudOwner": "irma-aic"
+              },
+              {
+                "id": "d0a3e3f2964542259d155a81c41aadc3",
+                "name": "test-hvf6-09",
+                "isPermitted": true,
+                "cloudOwner": "irma-aic"
+              },
+              {
+                "id": "cbb99fe4ada84631b7baf046b6fd2044",
+                "name": "DN5242-Nov16-T3",
+                "isPermitted": true,
+                "cloudOwner": "irma-aic"
+              }
+            ]
+          }
+        },
+        "subscribers": [
+          {
+            "id": "ERICA5779-Subscriber-2",
+            "name": "ERICA5779-Subscriber-2",
+            "isPermitted": false
+          },
+          {
+            "id": "ERICA5779-Subscriber-3",
+            "name": "ERICA5779-Subscriber-3",
+            "isPermitted": false
+          },
+          {
+            "id": "ERICA5779-Subscriber-4",
+            "name": "ERICA5779-Subscriber-5",
+            "isPermitted": false
+          },
+          {
+            "id": "ERICA5779-TestSub-PWT-101",
+            "name": "ERICA5779-TestSub-PWT-101",
+            "isPermitted": false
+          },
+          {
+            "id": "ERICA5779-TestSub-PWT-102",
+            "name": "ERICA5779-TestSub-PWT-102",
+            "isPermitted": false
+          },
+          {
+            "id": "ERICA5779-TestSub-PWT-103",
+            "name": "ERICA5779-TestSub-PWT-103",
+            "isPermitted": false
+          },
+          {
+            "id": "31739f3e-526b-11e6-beb8-9e71128cae77",
+            "name": "CRAIG/ROBERTS",
+            "isPermitted": false
+          },
+          {
+            "id": "DHV1707-TestSubscriber-2",
+            "name": "DALE BRIDGES",
+            "isPermitted": false
+          },
+          {
+            "id": "jimmy-example",
+            "name": "JimmyExampleCust-20161102",
+            "isPermitted": false
+          },
+          {
+            "id": "jimmy-example2",
+            "name": "JimmyExampleCust-20161103",
+            "isPermitted": false
+          },
+          {
+            "id": "CAR_2020_ER",
+            "name": "CAR_2020_ER",
+            "isPermitted": true
+          },
+          {
+            "id": "a9a77d5a-123e-4ca2-9eb9-0b015d2ee0fb",
+            "name": "Emanuel",
+            "isPermitted": true
+          },
+          {
+            "id": "21014aa2-526b-11e6-beb8-9e71128cae77",
+            "name": "JULIO ERICKSON",
+            "isPermitted": false
+          },
+          {
+            "id": "DHV1707-TestSubscriber-1",
+            "name": "LLOYD BRIDGES",
+            "isPermitted": false
+          },
+          {
+            "id": "e433710f-9217-458d-a79d-1c7aff376d89",
+            "name": "SILVIA ROBBINS",
+            "isPermitted": true
+          },
+          {
+            "id": "global-customer-id",
+            "name": "global-customer-id",
+            "isPermitted": true
+          }
+        ],
+        "productFamilies": null,
+        "serviceTypes": {
+          "a9a77d5a-123e-4ca2-9eb9-0b015d2ee0fb": [
+            {
+              "id": "3",
+              "name": "Emanuel",
+              "isPermitted": false
+            },
+            {
+              "id": "7",
+              "name": "Kennedy",
+              "isPermitted": false
+            },
+            {
+              "id": "6",
+              "name": "vJamie",
+              "isPermitted": false
+            },
+            {
+              "id": "0",
+              "name": "vWINIFRED",
+              "isPermitted": false
+            },
+            {
+              "id": "1",
+              "name": "vMNS",
+              "isPermitted": false
+            },
+            {
+              "id": "4",
+              "name": "vMOG",
+              "isPermitted": false
+            },
+            {
+              "id": "5",
+              "name": "vEsmeralda",
+              "isPermitted": false
+            },
+            {
+              "id": "2",
+              "name": "vVoiceMail",
+              "isPermitted": false
+            }
+          ],
+          "e433710f-9217-458d-a79d-1c7aff376d89": [
+            {
+              "id": "17",
+              "name": "JOHANNA_SANTOS",
+              "isPermitted": false
+            },
+            {
+              "id": "16",
+              "name": "LINDSEY",
+              "isPermitted": false
+            },
+            {
+              "id": "2",
+              "name": "Emanuel",
+              "isPermitted": false
+            },
+            {
+              "id": "5",
+              "name": "Kennedy",
+              "isPermitted": false
+            },
+            {
+              "id": "14",
+              "name": "SSD",
+              "isPermitted": false
+            },
+            {
+              "id": "1",
+              "name": "TYLER SILVIA",
+              "isPermitted": true
+            },
+            {
+              "id": "12",
+              "name": "VPMS",
+              "isPermitted": false
+            },
+            {
+              "id": "3",
+              "name": "vJamie",
+              "isPermitted": false
+            },
+            {
+              "id": "0",
+              "name": "vRichardson",
+              "isPermitted": false
+            },
+            {
+              "id": "18",
+              "name": "vCarroll",
+              "isPermitted": false
+            },
+            {
+              "id": "9",
+              "name": "vFLORENCE",
+              "isPermitted": false
+            },
+            {
+              "id": "13",
+              "name": "vWINIFRED",
+              "isPermitted": false
+            },
+            {
+              "id": "10",
+              "name": "vMNS",
+              "isPermitted": false
+            },
+            {
+              "id": "15",
+              "name": "vMOG",
+              "isPermitted": false
+            },
+            {
+              "id": "8",
+              "name": "vOTA",
+              "isPermitted": false
+            },
+            {
+              "id": "11",
+              "name": "vEsmeralda",
+              "isPermitted": false
+            },
+            {
+              "id": "6",
+              "name": "vPorfirio",
+              "isPermitted": false
+            },
+            {
+              "id": "7",
+              "name": "vVM",
+              "isPermitted": false
+            },
+            {
+              "id": "4",
+              "name": "vVoiceMail",
+              "isPermitted": false
+            }
+          ]
+        },
+        "aicZones": [
+          {
+            "id": "ATL53",
+            "name": "AAIATLTE-ATL53"
+          },
+          {
+            "id": "ABC15",
+            "name": "AAITESAN-ABC15"
+          },
+          {
+            "id": "TES36",
+            "name": "ABCEETES-TES36"
+          },
+          {
+            "id": "ATL54",
+            "name": "AICFTAAI-ATL54"
+          },
+          {
+            "id": "ATL43",
+            "name": "AICLOCID-ATL43"
+          },
+          {
+            "id": "AMD15",
+            "name": "AMDFAA01-AMD15"
+          },
+          {
+            "id": "AMF11",
+            "name": "AMDOCS01-AMF11"
+          },
+          {
+            "id": "RCT1",
+            "name": "AMSTERNL-RCT1"
+          },
+          {
+            "id": "AMS1",
+            "name": "AMSTNLBW-AMS1"
+          },
+          {
+            "id": "HJH1",
+            "name": "AOEEQQQD-HJH1"
+          },
+          {
+            "id": "HJE1",
+            "name": "AOEEWWWD-HJE1"
+          },
+          {
+            "id": "MCS1",
+            "name": "ASACMAMS-MCS1"
+          },
+          {
+            "id": "AUG1",
+            "name": "ASDFGHJK-AUG1"
+          },
+          {
+            "id": "LUC1",
+            "name": "ATLDFGYC-LUC1"
+          },
+          {
+            "id": "ATL1",
+            "name": "ATLNGAMA-ATL1"
+          },
+          {
+            "id": "ATL2",
+            "name": "ATLNGANW-ATL2"
+          },
+          {
+            "id": "HPO1",
+            "name": "ATLNGAUP-HPO1"
+          },
+          {
+            "id": "ANI1",
+            "name": "ATLNGTRE-ANI1"
+          },
+          {
+            "id": "ATL44",
+            "name": "ATLSANAB-ATL44"
+          },
+          {
+            "id": "ATL56",
+            "name": "ATLSANAC-ATL56"
+          },
+          {
+            "id": "ABC11",
+            "name": "ATLSANAI-ABC11"
+          },
+          {
+            "id": "ATL34",
+            "name": "ATLSANAI-ATL34"
+          },
+          {
+            "id": "ATL63",
+            "name": "ATLSANEW-ATL63"
+          },
+          {
+            "id": "ABC12",
+            "name": "ATLSECIA-ABC12"
+          },
+          {
+            "id": "AMD18",
+            "name": "AUDIMA01-AMD18"
+          },
+          {
+            "id": "AVT1",
+            "name": "AVTRFLHD-AVT1"
+          },
+          {
+            "id": "KIT1",
+            "name": "BHYJFGLN-KIT1"
+          },
+          {
+            "id": "BHY17",
+            "name": "BHYTFRF3-BHY17"
+          },
+          {
+            "id": "RTW5",
+            "name": "BHYTFRY4-RTW5"
+          },
+          {
+            "id": "RTZ4",
+            "name": "BHYTFRZ6-RTZ4"
+          },
+          {
+            "id": "RTD2",
+            "name": "BHYTFRk4-RTD2"
+          },
+          {
+            "id": "BNA1",
+            "name": "BNARAGBK-BNA1"
+          },
+          {
+            "id": "VEL1",
+            "name": "BNMLKUIK-VEL1"
+          },
+          {
+            "id": "BOT1",
+            "name": "BOTHWAKY-BOT1"
+          },
+          {
+            "id": "CAL33",
+            "name": "CALIFORN-CAL33"
+          },
+          {
+            "id": "ATL84",
+            "name": "CANTTCOC-ATL84"
+          },
+          {
+            "id": "HSD1",
+            "name": "CHASKCDS-HSD1"
+          },
+          {
+            "id": "CHI1",
+            "name": "CHILLIWE-CHI1"
+          },
+          {
+            "id": "XCP12",
+            "name": "CHKGH123-XCP12"
+          },
+          {
+            "id": "JNL1",
+            "name": "CJALSDAC-JNL1"
+          },
+          {
+            "id": "KJN1",
+            "name": "CKALDKSA-KJN1"
+          },
+          {
+            "id": "CLG1",
+            "name": "CLGRABAD-CLG1"
+          },
+          {
+            "id": "CKL1",
+            "name": "CLKSKCKK-CKL1"
+          },
+          {
+            "id": "ATL66",
+            "name": "CLLIAAII-ATL66"
+          },
+          {
+            "id": "CQK1",
+            "name": "CQKSCAKK-CQK1"
+          },
+          {
+            "id": "CWY1",
+            "name": "CWYMOWBS-CWY1"
+          },
+          {
+            "id": "DKJ1",
+            "name": "DKJSJDKA-DKJ1"
+          },
+          {
+            "id": "DSF45",
+            "name": "DSFBG123-DSF45"
+          },
+          {
+            "id": "DSL12",
+            "name": "DSLFK242-DSL12"
+          },
+          {
+            "id": "FDE55",
+            "name": "FDERT555-FDE55"
+          },
+          {
+            "id": "VEN2",
+            "name": "FGHJUHIL-VEN2"
+          },
+          {
+            "id": "ATL64",
+            "name": "FORLOAAJ-ATL64"
+          },
+          {
+            "id": "GNV1",
+            "name": "GNVLSCTL-GNV1"
+          },
+          {
+            "id": "SAN22",
+            "name": "GNVLSCTL-SAN22"
+          },
+          {
+            "id": "KAP1",
+            "name": "HIOUYTRQ-KAP1"
+          },
+          {
+            "id": "LIS1",
+            "name": "HOSTPROF-LIS1"
+          },
+          {
+            "id": "HRG1",
+            "name": "HRGHRGGS-HRG1"
+          },
+          {
+            "id": "HST25",
+            "name": "HSTNTX01-HST25"
+          },
+          {
+            "id": "STN27",
+            "name": "HSTNTX01-STN27"
+          },
+          {
+            "id": "HST70",
+            "name": "HSTNTX70-HST70"
+          },
+          {
+            "id": "KOR1",
+            "name": "HYFLNBVT-KOR1"
+          },
+          {
+            "id": "RAD10",
+            "name": "INDIPUNE-RAD10"
+          },
+          {
+            "id": "REL1",
+            "name": "INGERFGT-REL1"
+          },
+          {
+            "id": "JAD1",
+            "name": "JADECLLI-JAD1"
+          },
+          {
+            "id": "HKA1",
+            "name": "JAKHLASS-HKA1"
+          },
+          {
+            "id": "JCS1",
+            "name": "JCSJSCJS-JCS1"
+          },
+          {
+            "id": "JCV1",
+            "name": "JCVLFLBW-JCV1"
+          },
+          {
+            "id": "KGM2",
+            "name": "KGMTNC20-KGM2"
+          },
+          {
+            "id": "KJF12",
+            "name": "KJFDH123-KJF12"
+          },
+          {
+            "id": "JGS1",
+            "name": "KSJKKKKK-JGS1"
+          },
+          {
+            "id": "LAG1",
+            "name": "LARGIZON-LAG1"
+          },
+          {
+            "id": "LAG1a",
+            "name": "LARGIZON-LAG1a"
+          },
+          {
+            "id": "LAG45",
+            "name": "LARGIZON-LAG1a"
+          },
+          {
+            "id": "LAG1b",
+            "name": "LARGIZON-LAG1b"
+          },
+          {
+            "id": "WAN1",
+            "name": "LEIWANGW-WAN1"
+          },
+          {
+            "id": "DSA1",
+            "name": "LKJHGFDS-DSA1"
+          },
+          {
+            "id": "LON1",
+            "name": "LONEENCO-LON1"
+          },
+          {
+            "id": "SITE",
+            "name": "LONEENCO-SITE"
+          },
+          {
+            "id": "ZXL1",
+            "name": "LWLWCANN-ZXL1"
+          },
+          {
+            "id": "hvf20",
+            "name": "MDTWNJ21-hvf20"
+          },
+          {
+            "id": "hvf32",
+            "name": "MDTWNJ21-hvf32"
+          },
+          {
+            "id": "AMD13",
+            "name": "MEMATLAN-AMD13"
+          },
+          {
+            "id": "MIC54",
+            "name": "MICHIGAN-MIC54"
+          },
+          {
+            "id": "MAR1",
+            "name": "MNBVCXZM-MAR1"
+          },
+          {
+            "id": "NCA1",
+            "name": "NCANCANN-NCA1"
+          },
+          {
+            "id": "NFT1",
+            "name": "NFTJSSSS-NFT1"
+          },
+          {
+            "id": "GAR1",
+            "name": "NGFVSJKO-GAR1"
+          },
+          {
+            "id": "NYC1",
+            "name": "NYCMNY54-NYC1"
+          },
+          {
+            "id": "OKC1",
+            "name": "OKCBOK55-OKC1"
+          },
+          {
+            "id": "OLG1",
+            "name": "OLHOLHOL-OLG1"
+          },
+          {
+            "id": "OLK1",
+            "name": "OLKOLKLS-OLK1"
+          },
+          {
+            "id": "NIR1",
+            "name": "ORFLMANA-NIR1"
+          },
+          {
+            "id": "JAN1",
+            "name": "ORFLMATT-JAN1"
+          },
+          {
+            "id": "ORL1",
+            "name": "ORLDFLMA-ORL1"
+          },
+          {
+            "id": "PAR1",
+            "name": "PARSFRCG-PAR1"
+          },
+          {
+            "id": "PBL1",
+            "name": "PBLAPBAI-PBL1"
+          },
+          {
+            "id": "mac10",
+            "name": "PKGTESTF-mac10"
+          },
+          {
+            "id": "mac20",
+            "name": "PKGTESTF-mac20"
+          },
+          {
+            "id": "TIR2",
+            "name": "PLKINHYI-TIR2"
+          },
+          {
+            "id": "IBB1",
+            "name": "PLMKOIJU-IBB1"
+          },
+          {
+            "id": "COM1",
+            "name": "PLMKOPIU-COM1"
+          },
+          {
+            "id": "POI1",
+            "name": "PLMNJKIU-POI1"
+          },
+          {
+            "id": "PLT1",
+            "name": "PLTNCA60-PLT1"
+          },
+          {
+            "id": "POI22",
+            "name": "POIUY123-POI22"
+          },
+          {
+            "id": "DCC1",
+            "name": "POIUYTGH-DCC1"
+          },
+          {
+            "id": "DCC1a",
+            "name": "POIUYTGH-DCC1a"
+          },
+          {
+            "id": "DCC1b",
+            "name": "POIUYTGH-DCC1b"
+          },
+          {
+            "id": "DCC2",
+            "name": "POIUYTGH-DCC2"
+          },
+          {
+            "id": "DCC3",
+            "name": "POIUYTGH-DCC3"
+          },
+          {
+            "id": "IAA1",
+            "name": "QAZXSWED-IAA1"
+          },
+          {
+            "id": "QWE1",
+            "name": "QWECLLI1-QWE1"
+          },
+          {
+            "id": "NUM1",
+            "name": "QWERTYUI-NUM1"
+          },
+          {
+            "id": "RAD1",
+            "name": "RADICAL1-RAD1"
+          },
+          {
+            "id": "RJN1",
+            "name": "RJNRBZAW-RJN1"
+          },
+          {
+            "id": "SAA13",
+            "name": "SAIT1AA9-SAA13"
+          },
+          {
+            "id": "SAA14",
+            "name": "SAIT1AA9-SAA14"
+          },
+          {
+            "id": "SDD81",
+            "name": "SAIT1DD6-SDD81"
+          },
+          {
+            "id": "SDD82",
+            "name": "SAIT1DD9-SDD82"
+          },
+          {
+            "id": "SAA11",
+            "name": "SAIT9AA2-SAA11"
+          },
+          {
+            "id": "SAA80",
+            "name": "SAIT9AA3-SAA80"
+          },
+          {
+            "id": "SAA12",
+            "name": "SAIT9AF8-SAA12"
+          },
+          {
+            "id": "SCC80",
+            "name": "SAIT9CC3-SCC80"
+          },
+          {
+            "id": "ATL75",
+            "name": "SANAAIRE-ATL75"
+          },
+          {
+            "id": "ICC1",
+            "name": "SANJITAT-ICC1"
+          },
+          {
+            "id": "SCK1",
+            "name": "SCKSCKSK-SCK1"
+          },
+          {
+            "id": "EHH78",
+            "name": "SDCSHHH5-EHH78"
+          },
+          {
+            "id": "SAA78",
+            "name": "SDCTAAA1-SAA78"
+          },
+          {
+            "id": "SAX78",
+            "name": "SDCTAXG1-SAX78"
+          },
+          {
+            "id": "SBX78",
+            "name": "SDCTBXG1-SBX78"
+          },
+          {
+            "id": "SEE78",
+            "name": "SDCTEEE4-SEE78"
+          },
+          {
+            "id": "SGG78",
+            "name": "SDCTGGG1-SGG78"
+          },
+          {
+            "id": "SXB78",
+            "name": "SDCTGXB1-SXB78"
+          },
+          {
+            "id": "SJJ78",
+            "name": "SDCTJJJ1-SJJ78"
+          },
+          {
+            "id": "SKK78",
+            "name": "SDCTKKK1-SKK78"
+          },
+          {
+            "id": "SLF78",
+            "name": "SDCTLFN1-SLF78"
+          },
+          {
+            "id": "SLL78",
+            "name": "SDCTLLL1-SLL78"
+          },
+          {
+            "id": "MAD11",
+            "name": "SDFQWGKL-MAD11"
+          },
+          {
+            "id": "HGD1",
+            "name": "SDFQWHGD-HGD1"
+          },
+          {
+            "id": "SBB78",
+            "name": "SDIT1BBB-SBB78"
+          },
+          {
+            "id": "SDG78",
+            "name": "SDIT1BDG-SDG78"
+          },
+          {
+            "id": "SBU78",
+            "name": "SDIT1BUB-SBU78"
+          },
+          {
+            "id": "SHH78",
+            "name": "SDIT1HHH-SHH78"
+          },
+          {
+            "id": "SJU78",
+            "name": "SDIT1JUB-SJU78"
+          },
+          {
+            "id": "SNA1",
+            "name": "SNANTXCA-SNA1"
+          },
+          {
+            "id": "SAM1",
+            "name": "SNDGCA64-SAN1"
+          },
+          {
+            "id": "SNG1",
+            "name": "SNGPSIAU-SNG1"
+          },
+          {
+            "id": "SSA56",
+            "name": "SSIT2AA7-SSA56"
+          },
+          {
+            "id": "STG1",
+            "name": "STTGGE62-STG1"
+          },
+          {
+            "id": "STT1",
+            "name": "STTLWA02-STT1"
+          },
+          {
+            "id": "SYD1",
+            "name": "SYDNAUBV-SYD1"
+          },
+          {
+            "id": "ATL99",
+            "name": "TEESTAAI-ATL43"
+          },
+          {
+            "id": "ATL98",
+            "name": "TEESTAAI-ATL43"
+          },
+          {
+            "id": "ATL76",
+            "name": "TELEPAAI-ATL76"
+          },
+          {
+            "id": "ABC14",
+            "name": "TESAAISA-ABC14"
+          },
+          {
+            "id": "TAT33",
+            "name": "TESAAISA-TAT33"
+          },
+          {
+            "id": "TAT34",
+            "name": "TESAAISB-TAT34"
+          },
+          {
+            "id": "TAT37",
+            "name": "TESAAISD-TAT37"
+          },
+          {
+            "id": "ATL62",
+            "name": "TESSASCH-ATL62"
+          },
+          {
+            "id": "TLP1",
+            "name": "TLPNXM18-TLP1"
+          },
+          {
+            "id": "SAN13",
+            "name": "TOKYJPFA-SAN13"
+          },
+          {
+            "id": "TOK1",
+            "name": "TOKYJPFA-TOK1"
+          },
+          {
+            "id": "TOL1",
+            "name": "TOLDOH21-TOL1"
+          },
+          {
+            "id": "TOR1",
+            "name": "TOROONXN-TOR1"
+          },
+          {
+            "id": "TOY1",
+            "name": "TORYONNZ-TOY1"
+          },
+          {
+            "id": "ATL35",
+            "name": "TTESSAAI-ATL35"
+          },
+          {
+            "id": "TUF1",
+            "name": "TUFCLLI1-TUF1"
+          },
+          {
+            "id": "SAI1",
+            "name": "UBEKQLPD-SAI1"
+          },
+          {
+            "id": "UUU4",
+            "name": "UUUAAAUU-UUU4"
+          },
+          {
+            "id": "YYY1",
+            "name": "UUUAIAAI-YYY1"
+          },
+          {
+            "id": "BAN1",
+            "name": "VSDKYUTP-BAN1"
+          },
+          {
+            "id": "WAS1",
+            "name": "WASHDCSW-WAS1"
+          },
+          {
+            "id": "APP1",
+            "name": "WBHGTYUI-APP1"
+          },
+          {
+            "id": "SUL2",
+            "name": "WERTYUJK-SUL2"
+          },
+          {
+            "id": "DEF2",
+            "name": "WSBHGTYL-DEF2"
+          },
+          {
+            "id": "DHA12",
+            "name": "WSXEDECF-DHA12"
+          },
+          {
+            "id": "MNT11",
+            "name": "WSXEFBTH-MNT11"
+          },
+          {
+            "id": "RAJ1",
+            "name": "YGBIJNLQ-RAJ1"
+          },
+          {
+            "id": "JAG1",
+            "name": "YUDFJULP-JAG1"
+          },
+          {
+            "id": "ZEN1",
+            "name": "ZENCLLI1-ZEN1"
+          },
+          {
+            "id": "ZOG1",
+            "name": "ZOGASTRO-ZOG1"
+          },
+          {
+            "id": "SDE1",
+            "name": "ZXCVBNMA-SDE1"
+          },
+          {
+            "id": "SIP1",
+            "name": "ZXCVBNMK-SIP1"
+          },
+          {
+            "id": "JUL1",
+            "name": "ZXCVBNMM-JUL1"
+          },
+          {
+            "id": "ERT1",
+            "name": "ertclli1-ERT1"
+          },
+          {
+            "id": "IOP1",
+            "name": "iopclli1-IOP1"
+          },
+          {
+            "id": "OPA1",
+            "name": "opaclli1-OPA1"
+          },
+          {
+            "id": "RAI1",
+            "name": "poiuytre-RAI1"
+          },
+          {
+            "id": "PUR1",
+            "name": "purelyde-PUR1"
+          },
+          {
+            "id": "RTY1",
+            "name": "rtyclli1-RTY1"
+          },
+          {
+            "id": "SDF1",
+            "name": "sdfclli1-SDF1"
+          },
+          {
+            "id": "SSW56",
+            "name": "ss8126GT-SSW56"
+          },
+          {
+            "id": "UIO1",
+            "name": "uioclli1-UIO1"
+          }
+        ],
+        "categoryParameters": {
+          "owningEntityList": [
+            {
+              "id": "aaa1",
+              "name": "aaa1"
+            },
+            {
+              "id": "d61e6f2d-12fa-4cc2-91df-7c244011d6fc",
+              "name": "WayneHolland"
+            },
+            {
+              "id": "Melissa",
+              "name": "Melissa"
+            }
+          ],
+          "projectList": [
+            {
+              "id": "WATKINS",
+              "name": "WATKINS"
+            },
+            {
+              "id": "x1",
+              "name": "x1"
+            },
+            {
+              "id": "yyy1",
+              "name": "yyy1"
+            }
+          ],
+          "lineOfBusinessList": [
+            {
+              "id": "ONAP",
+              "name": "ONAP"
+            },
+            {
+              "id": "zzz1",
+              "name": "zzz1"
+            }
+          ],
+          "platformList": [
+            {
+              "id": "platform",
+              "name": "platform"
+            },
+            {
+              "id": "xxx1",
+              "name": "xxx1"
+            }
+          ]
+        },
+        "type": "UPDATE_LCP_REGIONS_AND_TENANTS"
+      },
+      "global": {
+        "name": null,
+        "flags": {
+          "FLAG_1810_IDENTIFY_SERVICE_FOR_NEW_UI": false,
+          "FLAG_1902_VNF_GROUPING": true,
+          "FLAG_1906_COMPONENT_INFO": true,
+          "FLAG_SHOW_ASSIGNMENTS": true,
+          "FLAG_A_LA_CARTE_AUDIT_INFO": true,
+          "FLAG_1810_CR_ADD_CLOUD_OWNER_TO_MSO_REQUEST": true,
+          "FLAG_SHOW_VERIFY_SERVICE": true,
+          "FLAG_1902_NEW_VIEW_EDIT": true,
+          "EMPTY_DRAWING_BOARD_TEST": false,
+          "FLAG_ADD_MSO_TESTAPI_FIELD": true,
+          "FLAG_1906_INSTANTIATION_API_USER_VALIDATION": true,
+          "FLAG_EXP_CREATE_RESOURCES_IN_PARALLEL": false,
+          "FLAG_PRESENT_PROVIDER_NETWORKS_ASSOCIATIONS": true,
+          "FLAG_NETWORK_TO_ASYNC_INSTANTIATION": false,
+          "FLAG_DEFAULT_VNF": true,
+          "FLAG_1810_CR_SOFT_DELETE_ALACARTE_VF_MODULE": true,
+          "FLAG_ASYNC_ALACARTE_VFMODULE": true,
+          "FLAG_FABRIC_CONFIGURATION_ASSIGNMENTS": true,
+          "FLAG_ASYNC_ALACARTE_VNF": true,
+          "FLAG_1810_AAI_LOCAL_CACHE": true,
+          "FLAG_EXP_USE_DEFAULT_HOST_NAME_VERIFIER": false,
+          "FLAG_SERVICE_MODEL_CACHE": true,
+          "FLAG_1902_RETRY_JOB": true,
+          "FLAG_EXP_ANY_ALACARTE_NEW_INSTANTIATION_UI": true,
+          "CREATE_INSTANCE_TEST": false,
+          "FLAG_SETTING_DEFAULTS_IN_DRAWING_BOARD": true,
+          "FLAG_1906_AAI_SUB_DETAILS_REDUCE_DEPTH": true,
+          "FLAG_VF_MODULE_RESUME_STATUS_CREATE": true,
+          "FLAG_SUPPLEMENTARY_FILE": true,
+          "FLAG_5G_IN_NEW_INSTANTIATION_UI": true,
+          "FLAG_RESTRICTED_SELECT": false,
+          "FLAG_1810_CR_LET_SELECTING_COLLECTOR_TYPE_UNCONDITIONALLY": true
+        },
+        "drawingBoardStatus": "CREATE",
+        "type": "UPDATE_DRAWING_BOARD_STATUS"
+      }
+    }
+  }
+});
index bd8c4c8..503900c 100644 (file)
@@ -1,5 +1,8 @@
 
 ///<reference path="../../../node_modules/cypress/types/index.d.ts"/>
+import {JsonBuilder} from "../../support/jsonBuilders/jsonBuilder";
+import {ServiceModel} from "../../support/jsonBuilders/models/service.model";
+
 describe('Drawing board', function () {
   beforeEach(() => {
     cy.window().then((win) => {
@@ -8,6 +11,7 @@ describe('Drawing board', function () {
       cy.preventErrorsOnLoading();
       cy.initAAIMock();
       cy.initVidMock();
+      cy.initActiveNetworks();
       cy.login();
     });
   });
@@ -22,13 +26,13 @@ describe('Drawing board', function () {
       cy.readFile('/cypress/support/jsonBuilders/mocks/jsons/emptyServiceRedux.json').then((res) => {
         cy.setReduxState(<any>res);
         cy.openIframe('app/ui/#/servicePlanning?serviceModelId=2f80c596-27e5-4ca9-b5bb-e03a7fd4c0fd');
-        cy.drawingBoardPressAddButtonByElementName('node-2017-488_ADIOD-vPE 0').get('i').should('have.class', 'fa-plus-circle');
-        cy.drawingBoardPressAddButtonByElementName('node-2017-488_ADIOD-vPE 0').click({force: true});
+        cy.drawingBoardPressAddButtonByElementName('node-2017-488_PASQUALE-vPE 0').get('i').should('have.class', 'fa-plus-circle');
+        cy.drawingBoardPressAddButtonByElementName('node-2017-488_PASQUALE-vPE 0').click({force: true});
         cy.fillVnfPopup().then(() => {
-          cy.drawingBoardPressAddButtonByElementName('node-2017-488_ADIOD-vPE 0').click({force: true});
+          cy.drawingBoardPressAddButtonByElementName('node-2017-488_PASQUALE-vPE 0').click({force: true});
           cy.fillVnfPopup().then(() => {
             cy.drawingBoardNumberOfExistingElementsShouldContains(2);
-            cy.drawingBoardTreeOpenContextMenuByElementDataTestId('node-69e09f68-8b63-4cc9-b9ff-860960b5db09-2017-488_ADIOD-vPE 0', 1)
+            cy.drawingBoardTreeOpenContextMenuByElementDataTestId('node-69e09f68-8b63-4cc9-b9ff-860960b5db09-2017-488_PASQUALE-vPE 0', 1)
               .drawingBoardTreeClickOnContextMenuOptionByName('Remove');
             cy.drawingBoardNumberOfExistingElementsShouldContains(1);
           });
@@ -40,12 +44,12 @@ describe('Drawing board', function () {
       cy.readFile('/cypress/support/jsonBuilders/mocks/jsons/emptyServiceRedux.json').then((res) => {
         cy.setReduxState(<any>res);
         cy.openIframe('app/ui/#/servicePlanning?serviceModelId=2f80c596-27e5-4ca9-b5bb-e03a7fd4c0fd');
-        cy.drawingBoardPressAddButtonByElementName('node-2017-488_ADIOD-vPE 0').get('i').should('have.class', 'fa-plus-circle');
-        cy.drawingBoardPressAddButtonByElementName('node-2017-488_ADIOD-vPE 0').click({force: true});
+        cy.drawingBoardPressAddButtonByElementName('node-2017-488_PASQUALE-vPE 0').get('i').should('have.class', 'fa-plus-circle');
+        cy.drawingBoardPressAddButtonByElementName('node-2017-488_PASQUALE-vPE 0').click({force: true});
         cy.fillVnfPopup().then(() => {
-          cy.drawingBoardPressAddButtonByElementName('node-2017-488_ADIOD-vPE 0').click({force: true});
+          cy.drawingBoardPressAddButtonByElementName('node-2017-488_PASQUALE-vPE 0').click({force: true});
           cy.fillVnfPopup().then(() => {
-            cy.drawingBoardPressAddButtonByElementName('node-2017-488_ADIOD-vPE 0').click({force: true});
+            cy.drawingBoardPressAddButtonByElementName('node-2017-488_PASQUALE-vPE 0').click({force: true});
             cy.fillVnfPopup().then(() => {
               cy.drawingBoardNumberOfExistingElementsShouldContains(3);
             });
@@ -58,29 +62,29 @@ describe('Drawing board', function () {
       cy.readFile('/cypress/support/jsonBuilders/mocks/jsons/emptyServiceRedux.json').then((res) => {
         cy.setReduxState(<any>res);
         cy.openIframe('app/ui/#/servicePlanning?serviceModelId=2f80c596-27e5-4ca9-b5bb-e03a7fd4c0fd');
-        cy.drawingBoardPressAddButtonByElementName('node-2017-488_ADIOD-vPE 0').get('i').should('have.class', 'fa-plus-circle')
-          .drawingBoardPressAddButtonByElementName('node-2017-488_ADIOD-vPE 0').click({force: true});
+        cy.drawingBoardPressAddButtonByElementName('node-2017-488_PASQUALE-vPE 0').get('i').should('have.class', 'fa-plus-circle')
+          .drawingBoardPressAddButtonByElementName('node-2017-488_PASQUALE-vPE 0').click({force: true});
         cy.fillVnfPopup().then(() => {
-          cy.drawingBoardTreeOpenContextMenuByElementDataTestId('node-69e09f68-8b63-4cc9-b9ff-860960b5db09-2017-488_ADIOD-vPE 0')
+          cy.drawingBoardTreeOpenContextMenuByElementDataTestId('node-69e09f68-8b63-4cc9-b9ff-860960b5db09-2017-488_PASQUALE-vPE 0')
             .drawingBoardTreeClickOnContextMenuOptionByName('Duplicate')
             .get('.quantity-select option').should('have.length', 9)
             .getElementByDataTestsId('duplicate-amount-vfmodules').select('4')
             .getTagElementContainsText('button', 'Duplicate').click({force: true});
-          cy.drawingBoardTreeOpenContextMenuByElementDataTestId('node-69e09f68-8b63-4cc9-b9ff-860960b5db09-2017-488_ADIOD-vPE 0', 2)
+          cy.drawingBoardTreeOpenContextMenuByElementDataTestId('node-69e09f68-8b63-4cc9-b9ff-860960b5db09-2017-488_PASQUALE-vPE 0', 2)
             .drawingBoardTreeClickOnContextMenuOptionByName('Duplicate')
             .get('.quantity-select option').should('have.length', 5)
             .getElementByDataTestsId('duplicate-amount-vfmodules').select('5')
             .getTagElementContainsText('button', 'Duplicate').click({force: true});
-          cy.getElementByDataTestsId('node-2017-488_ADIOD-vPE 0').get("span").should('have.class', 'icon-v ng-star-inserted');
-          cy.drawingBoardTreeOpenContextMenuByElementDataTestId('node-69e09f68-8b63-4cc9-b9ff-860960b5db09-2017-488_ADIOD-vPE 0', 9)
+          cy.getElementByDataTestsId('node-2017-488_PASQUALE-vPE 0').get("span").should('have.class', 'icon-v ng-star-inserted');
+          cy.drawingBoardTreeOpenContextMenuByElementDataTestId('node-69e09f68-8b63-4cc9-b9ff-860960b5db09-2017-488_PASQUALE-vPE 0', 9)
             .get('ul.dropdown-menu li:nth-child(2)').should('have.class', 'disabled');
           // close menu
           cy.get('body').click();
           cy.drawingBoardNumberOfExistingElementsShouldContains(10);
-          cy.drawingBoardTreeOpenContextMenuByElementDataTestId('node-69e09f68-8b63-4cc9-b9ff-860960b5db09-2017-488_ADIOD-vPE 0', 1)
+          cy.drawingBoardTreeOpenContextMenuByElementDataTestId('node-69e09f68-8b63-4cc9-b9ff-860960b5db09-2017-488_PASQUALE-vPE 0', 1)
             .drawingBoardTreeClickOnContextMenuOptionByName('Remove');
           cy.drawingBoardNumberOfExistingElementsShouldContains(9);
-          cy.drawingBoardTreeOpenContextMenuByElementDataTestId('node-69e09f68-8b63-4cc9-b9ff-860960b5db09-2017-488_ADIOD-vPE 0', 3)
+          cy.drawingBoardTreeOpenContextMenuByElementDataTestId('node-69e09f68-8b63-4cc9-b9ff-860960b5db09-2017-488_PASQUALE-vPE 0', 3)
             .get('ul.dropdown-menu li:nth-child(2)').should('not.have.class', 'disabled');
         })
       });
@@ -90,7 +94,7 @@ describe('Drawing board', function () {
       let res = getReduxWithVNFS(true);
       cy.setReduxState(<any>res);
       cy.openIframe('app/ui/#/servicePlanning?serviceModelId=6e59c5de-f052-46fa-aa7e-2fca9d674c44');
-      const vnfNode = 'node-d6557200-ecf2-4641-8094-5393ae3aae60-VF_vMee 0';
+      const vnfNode = 'node-d6557200-ecf2-4641-8094-5393ae3aae60-VF_vGeraldine 0';
       cy.getElementByDataTestsId(vnfNode).should('have.length', 1)
         .drawingBoardTreeOpenContextMenuByElementDataTestId(vnfNode)
         .drawingBoardTreeClickOnContextMenuOptionByName('Duplicate')
@@ -113,8 +117,8 @@ describe('Drawing board', function () {
       let res = getReduxWithVNFS(true);
       cy.setReduxState(<any>res);
       cy.openIframe('app/ui/#/servicePlanning?serviceModelId=6e59c5de-f052-46fa-aa7e-2fca9d674c44');
-      const vnfNode = 'node-d6557200-ecf2-4641-8094-5393ae3aae60-VF_vMee 0';
-      const vfModuleNode = 'node-522159d5-d6e0-4c2a-aa44-5a542a12a830-vf_vmee0..VfVmee..vmme_vlc..module-1';
+      const vnfNode = 'node-d6557200-ecf2-4641-8094-5393ae3aae60-VF_vGeraldine 0';
+      const vfModuleNode = 'node-522159d5-d6e0-4c2a-aa44-5a542a12a830-vf_vgeraldine0..VfVgeraldine..vflorence_vlc..module-1';
       cy.duplicateVnf(vnfNode, 1);
       //edit the second vnf lineOfBusiness to be ECOMP
       editSecondVnf(vnfNode);
@@ -122,8 +126,8 @@ describe('Drawing board', function () {
       //assert that each vnf has it's own lineOfBusiness
       cy.getReduxState().then((state) => {
         const serviceInstance = state.service.serviceInstance['6e59c5de-f052-46fa-aa7e-2fca9d674c44'];
-        chai.expect(serviceInstance.vnfs['VF_vMee 0'].lineOfBusiness).equal("zzz1");
-        chai.expect(serviceInstance.vnfs['VF_vMee 0:0001'].lineOfBusiness).equal("ONAP");
+        chai.expect(serviceInstance.vnfs['VF_vGeraldine 0'].lineOfBusiness).equal("zzz1");
+        chai.expect(serviceInstance.vnfs['VF_vGeraldine 0:0001'].lineOfBusiness).equal("ONAP");
       });
     });
 
@@ -131,16 +135,16 @@ describe('Drawing board', function () {
       let res = getReduxWith2VNFS();
       cy.setReduxState(<any>res);
       cy.openIframe('app/ui/#/servicePlanning?serviceModelId=f4d84bb4-a416-4b4e-997e-0059973630b9');
-      cy.getElementByDataTestsId('node-ea81d6f7-0861-44a7-b7d5-d173b562c350-2017-488_ADIOD-vPE 0').should('have.length', 2);
+      cy.getElementByDataTestsId('node-ea81d6f7-0861-44a7-b7d5-d173b562c350-2017-488_PASQUALE-vPE 0').should('have.length', 2);
 
-      cy.drawingBoardTreeOpenContextMenuByElementDataTestId('node-ea81d6f7-0861-44a7-b7d5-d173b562c350-2017-488_ADIOD-vPE 0', 1)
+      cy.drawingBoardTreeOpenContextMenuByElementDataTestId('node-ea81d6f7-0861-44a7-b7d5-d173b562c350-2017-488_PASQUALE-vPE 0', 1)
         .drawingBoardTreeClickOnContextMenuOptionByName('Duplicate')
         .getTagElementContainsText('button', 'Duplicate').click({force: true})
         .get('#drawing-board-tree .toggle-children').should('have.length', 1);
 
-      cy.drawingBoardTreeOpenContextMenuByElementDataTestId('node-ea81d6f7-0861-44a7-b7d5-d173b562c350-2017-488_ADIOD-vPE 0', 2)
+      cy.drawingBoardTreeOpenContextMenuByElementDataTestId('node-ea81d6f7-0861-44a7-b7d5-d173b562c350-2017-488_PASQUALE-vPE 0', 2)
         .drawingBoardTreeClickOnContextMenuOptionByName('Duplicate')
-        .getElementByDataTestsId('node-ea81d6f7-0861-44a7-b7d5-d173b562c350-2017-488_ADIOD-vPE 0').should('have.length', 3);
+        .getElementByDataTestsId('node-ea81d6f7-0861-44a7-b7d5-d173b562c350-2017-488_PASQUALE-vPE 0').should('have.length', 3);
     });
 
     it('check the instanceParams set to instance ', () => {
@@ -148,14 +152,14 @@ describe('Drawing board', function () {
       let instanceName = "InstanceName";
       cy.setReduxState(<any>res);
       cy.openIframe('app/ui/#/servicePlanning?serviceModelId=f4d84bb4-a416-4b4e-997e-0059973630b9');
-      cy.drawingBoardTreeOpenContextMenuByElementDataTestId('node-ea81d6f7-0861-44a7-b7d5-d173b562c350-2017-488_ADIOD-vPE 0', 1)
+      cy.drawingBoardTreeOpenContextMenuByElementDataTestId('node-ea81d6f7-0861-44a7-b7d5-d173b562c350-2017-488_PASQUALE-vPE 0', 1)
         .drawingBoardTreeClickOnContextMenuOptionByName('Edit')
         .getElementByDataTestsId('instanceName').type(instanceName)
         .genericFormSubmitForm();
 
       checkDynamicInputs();
 
-      cy.drawingBoardTreeOpenContextMenuByElementDataTestId('node-ea81d6f7-0861-44a7-b7d5-d173b562c350-2017-488_ADIOD-vPE 0', 1)
+      cy.drawingBoardTreeOpenContextMenuByElementDataTestId('node-ea81d6f7-0861-44a7-b7d5-d173b562c350-2017-488_PASQUALE-vPE 0', 1)
         .drawingBoardTreeClickOnContextMenuOptionByName('Edit');
       cy.getElementByDataTestsId('instanceName').should('have.value', instanceName);
       checkDynamicInputs();
@@ -166,18 +170,18 @@ describe('Drawing board', function () {
       let res = getReduxWith2VNFS();
       cy.setReduxState(<any>res);
       cy.openIframe('app/ui/#/servicePlanning?serviceModelId=f4d84bb4-a416-4b4e-997e-0059973630b9');
-      cy.getElementByDataTestsId('node-ea81d6f7-0861-44a7-b7d5-d173b562c350-2017-488_ADIOD-vPE 0').should('have.length', 2)
-        .drawingBoardTreeOpenContextMenuByElementDataTestId('node-040e591e-5d30-4e0d-850f-7266e5a8e013-2017488_adiodvpe0..2017488AdiodVpe..ADIOD_base_vPE_BV..module-0')
+      cy.getElementByDataTestsId('node-ea81d6f7-0861-44a7-b7d5-d173b562c350-2017-488_PASQUALE-vPE 0').should('have.length', 2)
+        .drawingBoardTreeOpenContextMenuByElementDataTestId('node-040e591e-5d30-4e0d-850f-7266e5a8e013-2017488_pasqualevpe0..2017488PasqualeVpe..PASQUALE_base_vPE_BV..module-0')
         .drawingBoardTreeClickOnContextMenuOptionByName('Remove')
-        .getElementByDataTestsId('node-ea81d6f7-0861-44a7-b7d5-d173b562c350-2017-488_ADIOD-vPE 0').should('have.length', 2);
+        .getElementByDataTestsId('node-ea81d6f7-0861-44a7-b7d5-d173b562c350-2017-488_PASQUALE-vPE 0').should('have.length', 2);
     });
 
     it('duplicate unique vnf ', () => {
       let res = getReduxWith2VNFS();
       cy.setReduxState(<any>res);
       cy.openIframe('app/ui/#/servicePlanning?serviceModelId=f4d84bb4-a416-4b4e-997e-0059973630b9');
-      cy.getElementByDataTestsId('node-ea81d6f7-0861-44a7-b7d5-d173b562c350-2017-488_ADIOD-vPE 0').should('have.length', 2)
-        .drawingBoardTreeOpenContextMenuByElementDataTestId('node-ea81d6f7-0861-44a7-b7d5-d173b562c350-2017-488_ADIOD-vPE 0', 1)
+      cy.getElementByDataTestsId('node-ea81d6f7-0861-44a7-b7d5-d173b562c350-2017-488_PASQUALE-vPE 0').should('have.length', 2)
+        .drawingBoardTreeOpenContextMenuByElementDataTestId('node-ea81d6f7-0861-44a7-b7d5-d173b562c350-2017-488_PASQUALE-vPE 0', 1)
         .drawingBoardTreeClickOnContextMenuOptionByName('Duplicate')
         .getTagElementContainsText('button', 'Duplicate').click({force: true})
         .get('#drawing-board-tree .toggle-children').should('have.length', 1);
@@ -187,16 +191,16 @@ describe('Drawing board', function () {
       let res = getReduxWithVNFS(false);
       cy.setTestApiParamToGR();
 
-      res.service.serviceHierarchy['6e59c5de-f052-46fa-aa7e-2fca9d674c44'].service.instantiationType = "A-La-Carte";
+      res.service.serviceHierarchy['6e59c5de-f052-46fa-aa7e-2fca9d674c44'].service.vidNotions.instantiationType = "ALaCarte";
 
       //remove VfModules since they are not fit to a-la-carte scenario
-      delete res.service.serviceHierarchy['6e59c5de-f052-46fa-aa7e-2fca9d674c44'].vnfs['VF_vMee 0'].vfModules;
-      delete res.service.serviceInstance['6e59c5de-f052-46fa-aa7e-2fca9d674c44'].vnfs['VF_vMee 0'].vfModules;
+      delete res.service.serviceHierarchy['6e59c5de-f052-46fa-aa7e-2fca9d674c44'].vnfs['VF_vGeraldine 0'].vfModules;
+      delete res.service.serviceInstance['6e59c5de-f052-46fa-aa7e-2fca9d674c44'].vnfs['VF_vGeraldine 0'].vfModules;
 
-      res.service.serviceInstance['6e59c5de-f052-46fa-aa7e-2fca9d674c44'].vnfs['VF_vMee 0'].instanceName = "VFvMee00001";
+      res.service.serviceInstance['6e59c5de-f052-46fa-aa7e-2fca9d674c44'].vnfs['VF_vGeraldine 0'].instanceName = "VFvGeraldine00001";
       cy.setReduxState(<any>res);
       cy.openIframe('app/ui/#/servicePlanning?serviceModelId=6e59c5de-f052-46fa-aa7e-2fca9d674c44');
-      const vnfNode = 'node-d6557200-ecf2-4641-8094-5393ae3aae60-VF_vMee 0';
+      const vnfNode = 'node-d6557200-ecf2-4641-8094-5393ae3aae60-VF_vGeraldine 0';
       cy.duplicateVnf(vnfNode, 1);
 
       //edit the second vnf lineOfBusiness to be ECOMP
@@ -209,8 +213,8 @@ describe('Drawing board', function () {
       cy.getReduxState().then((state) => {
         let serviceInstance = state.service.serviceInstance['6e59c5de-f052-46fa-aa7e-2fca9d674c44'];
         //assert that each vnf has it's own lineOfBusiness
-        chai.expect(serviceInstance.vnfs['VF_vMee 0'].lineOfBusiness).equal("zzz1");
-        chai.expect(serviceInstance.vnfs['VF_vMee 0:0001'].lineOfBusiness).equal("ONAP");
+        chai.expect(serviceInstance.vnfs['VF_vGeraldine 0'].lineOfBusiness).equal("zzz1");
+        chai.expect(serviceInstance.vnfs['VF_vGeraldine 0:0001'].lineOfBusiness).equal("ONAP");
         cy.readFile('../vid-automation/src/test/resources/a-la-carte/redux-multiple-vnf-network.json').then((file) => {
           const vnfs = file.vnfs;
           var vnfNames = Object.keys(vnfs);
@@ -219,13 +223,13 @@ describe('Drawing board', function () {
             chai.expect(serviceInstance.vnfs).to.have.any.keys(vnfNames[i]);
           }
 
-          chai.expect(serviceInstance.vnfs['VF_vMee 0'].lineOfBusiness).equal(vnfs['VF_vMee 0'].lineOfBusiness);
-          chai.expect(serviceInstance.vnfs['VF_vMee 0'].instanceName).equal(vnfs['VF_vMee 0'].instanceName);
+          chai.expect(serviceInstance.vnfs['VF_vGeraldine 0'].lineOfBusiness).equal(vnfs['VF_vGeraldine 0'].lineOfBusiness);
+          chai.expect(serviceInstance.vnfs['VF_vGeraldine 0'].instanceName).equal(vnfs['VF_vGeraldine 0'].instanceName);
 
-          vnfs['VF_vMee 0:0001'].trackById = serviceInstance.vnfs['VF_vMee 0:0001'].trackById;
+          vnfs['VF_vGeraldine 0:0001'].trackById = serviceInstance.vnfs['VF_vGeraldine 0:0001'].trackById;
 
-          cy.deepCompare(serviceInstance.vnfs['VF_vMee 0:0001'], vnfs['VF_vMee 0:0001']);
-          cy.deepCompare(serviceInstance.vnfs['VF_vMee 0'], vnfs['VF_vMee 0']);
+          cy.deepCompare(serviceInstance.vnfs['VF_vGeraldine 0:0001'], vnfs['VF_vGeraldine 0:0001']);
+          cy.deepCompare(serviceInstance.vnfs['VF_vGeraldine 0'], vnfs['VF_vGeraldine 0']);
 
           const network = serviceInstance.networks['ExtVL 0'];
 
@@ -242,8 +246,8 @@ describe('Drawing board', function () {
       let res = getReduxWithVFModuleMissingData();
       cy.setReduxState(<any>res);
       cy.openIframe('app/ui/#/servicePlanning?serviceModelId=f4d84bb4-a416-4b4e-997e-0059973630b9');
-      cy.getElementByDataTestsId('node-040e591e-5d30-4e0d-850f-7266e5a8e013-2017488_adiodvpe0..2017488AdiodVpe..ADIOD_base_vPE_BV..module-0-alert-icon').should('have.class', 'icon-alert')
-        .drawingBoardTreeOpenContextMenuByElementDataTestId('node-040e591e-5d30-4e0d-850f-7266e5a8e013-2017488_adiodvpe0..2017488AdiodVpe..ADIOD_base_vPE_BV..module-0')
+      cy.getElementByDataTestsId('node-040e591e-5d30-4e0d-850f-7266e5a8e013-2017488_pasqualevpe0..2017488PasqualeVpe..PASQUALE_base_vPE_BV..module-0-alert-icon').should('have.class', 'icon-alert')
+        .drawingBoardTreeOpenContextMenuByElementDataTestId('node-040e591e-5d30-4e0d-850f-7266e5a8e013-2017488_pasqualevpe0..2017488PasqualeVpe..PASQUALE_base_vPE_BV..module-0')
         .drawingBoardTreeClickOnContextMenuOptionByName('Remove')
         .getElementByDataTestsId('deployBtn').should('not.have.attr', 'disabled');
 
@@ -255,8 +259,8 @@ describe('Drawing board', function () {
       cy.setReduxState(<any>res);
       cy.openIframe('app/ui/#/servicePlanning?serviceModelId=f4d84bb4-a416-4b4e-997e-0059973630b9');
 
-      cy.getElementByDataTestsId('node-ea81d6f7-0861-44a7-b7d5-d173b562c350-2017-488_ADIOD-vPE 0-alert-icon').should('have.class', 'icon-alert')
-        .drawingBoardTreeOpenContextMenuByElementDataTestId('node-ea81d6f7-0861-44a7-b7d5-d173b562c350-2017-488_ADIOD-vPE 0', 1)
+      cy.getElementByDataTestsId('node-ea81d6f7-0861-44a7-b7d5-d173b562c350-2017-488_PASQUALE-vPE 0-alert-icon').should('have.class', 'icon-alert')
+        .drawingBoardTreeOpenContextMenuByElementDataTestId('node-ea81d6f7-0861-44a7-b7d5-d173b562c350-2017-488_PASQUALE-vPE 0', 1)
         .drawingBoardTreeClickOnContextMenuOptionByName('Remove')
         .getTagElementContainsText('button', 'Remove VNF').click({force: true})
         .getElementByDataTestsId('deployBtn').should('not.have.attr', 'disabled');
@@ -273,6 +277,7 @@ describe('Drawing board', function () {
 
     it('should display icon and message if no vnf and vnfModules', () => {
       cy.readFile('/cypress/support/jsonBuilders/mocks/jsons/emptyServiceRedux.json').then((res) => {
+        res.global.drawingBoardStatus = "CREATE";
         cy.setReduxState(<any>res);
         cy.openIframe('app/ui/#/servicePlanning?serviceModelId=2f80c596-27e5-4ca9-b5bb-e03a7fd4c0fd');
         cy.getElementByDataTestsId("text-title").contains("Please add objects (VNFs, network, modules etc.)");
@@ -289,16 +294,16 @@ describe('Drawing board', function () {
       cy.readFile('/cypress/support/jsonBuilders/mocks/jsons/serviceWithVnfAndVfModules.json').then((res) => {
         cy.setReduxState(<any>res);
         cy.openIframe('app/ui/#/servicePlanning?serviceModelId=2f80c596-27e5-4ca9-b5bb-e03a7fd4c0fd');
-        cy.drawingBoardTreeOpenContextMenuByElementDataTestId('node-69e09f68-8b63-4cc9-b9ff-860960b5db09-2017-488_ADIOD-vPE 0');
+        cy.drawingBoardTreeOpenContextMenuByElementDataTestId('node-69e09f68-8b63-4cc9-b9ff-860960b5db09-2017-488_PASQUALE-vPE 0');
         // assert vfModules are enabled
-        cy.get('.tree-node-disabled div[data-tests-id="node-2017488_adiodvpe0..2017488AdiodVpe..ADIOD_vRE_BV..module-1"]')
+        cy.get('.tree-node-disabled div[data-tests-id="node-2017488_pasqualevpe0..2017488PasqualeVpe..PASQUALE_vRE_BV..module-1"]')
           .should('not.be.visible');
         cy.drawingBoardTreeClickOnContextMenuOptionByName('Remove');
 
         cy.get('.title').contains('Remove VNF');
         cy.get('.sdc-button').contains('Remove VNF').click();
         // assert vfModules are disabled after remove parent vnf
-        cy.get('.tree-node-disabled div[data-tests-id="node-2017488_adiodvpe0..2017488AdiodVpe..ADIOD_vRE_BV..module-1"]')
+        cy.get('.tree-node-disabled div[data-tests-id="node-2017488_pasqualevpe0..2017488PasqualeVpe..PASQUALE_vRE_BV..module-1"]')
           .should('be.visible');
         cy.updateServiceShouldNotOverrideChild();
       });
@@ -308,7 +313,7 @@ describe('Drawing board', function () {
       cy.readFile('/cypress/support/jsonBuilders/mocks/jsons/serviceWithVnfAndVfModules.json').then((res) => {
         cy.setReduxState(<any>res);
         cy.openIframe('app/ui/#/servicePlanning?serviceModelId=2f80c596-27e5-4ca9-b5bb-e03a7fd4c0fd');
-        cy.drawingBoardTreeOpenContextMenuByElementDataTestId('node-0903e1c0-8e03-4936-b5c2-260653b96413-2017-388_ADIOD-vPE 1');
+        cy.drawingBoardTreeOpenContextMenuByElementDataTestId('node-0903e1c0-8e03-4936-b5c2-260653b96413-2017-388_PASQUALE-vPE 1');
         cy.drawingBoardTreeClickOnContextMenuOptionByName('Remove')
       });
     });
@@ -317,37 +322,37 @@ describe('Drawing board', function () {
       cy.readFile('/cypress/support/jsonBuilders/mocks/jsons/emptyServiceRedux.json').then((res) => {
         cy.setReduxState(<any>res);
         cy.openIframe('app/ui/#/servicePlanning?serviceModelId=2f80c596-27e5-4ca9-b5bb-e03a7fd4c0fd');
-        cy.drawingBoardPressAddButtonByElementName('node-2017-388_ADIOD-vPE 0').click({force: true});
+        cy.drawingBoardPressAddButtonByElementName('node-2017-388_PASQUALE-vPE 0').click({force: true});
 
-        cy.selectDropdownOptionByText('productFamily', 'DHV');
+        cy.selectDropdownOptionByText('productFamily', 'ERICA');
         cy.selectDropdownOptionByText('lcpRegion', 'hvf6');
         cy.selectDropdownOptionByText('tenant', 'AIN Web Tool-15-D-testalexandria');
         cy.selectDropdownOptionByText('lineOfBusiness', 'ONAP');
         cy.selectDropdownOptionByText('platform', 'platform');
         cy.genericFormSubmitForm();
 
-        cy.getElementByDataTestsId('node-afacccf6-397d-45d6-b5ae-94c39734b168-2017-388_ADIOD-vPE 0').contains('<Automatically Assigned>');
+        cy.getElementByDataTestsId('node-afacccf6-397d-45d6-b5ae-94c39734b168-2017-388_PASQUALE-vPE 0').contains('<Automatically Assigned>');
         cy.updateServiceShouldNotOverrideChild();
       });
     });
 
     it('should show model name if ecomp is false', () => {
-      const vnfModelKey: string = '2017-488_ADIOD-vPE 0',
-        vnfModelName: string = '2017-488_ADIOD-vPE';
+      const vnfModelKey: string = '2017-488_PASQUALE-vPE 0',
+        vnfModelName: string = '2017-488_PASQUALE-vPE';
       cy.readFile('/cypress/support/jsonBuilders/mocks/jsons/emptyServiceRedux.json').then((res) => {
         res.service.serviceHierarchy['2f80c596-27e5-4ca9-b5bb-e03a7fd4c0fd'].vnfs[vnfModelKey].properties.ecomp_generated_naming = 'false';
         cy.setReduxState(<any>res);
         cy.openIframe('app/ui/#/servicePlanning?serviceModelId=2f80c596-27e5-4ca9-b5bb-e03a7fd4c0fd');
-        cy.drawingBoardPressAddButtonByElementName('node-2017-488_ADIOD-vPE 0').click({force: true});
+        cy.drawingBoardPressAddButtonByElementName('node-2017-488_PASQUALE-vPE 0').click({force: true});
 
-        cy.selectDropdownOptionByText('productFamily', 'DHV');
+        cy.selectDropdownOptionByText('productFamily', 'ERICA');
         cy.selectDropdownOptionByText('lcpRegion', 'hvf6');
         cy.selectDropdownOptionByText('tenant', 'AIN Web Tool-15-D-testalexandria');
         cy.selectDropdownOptionByText('lineOfBusiness', 'ONAP');
         cy.selectDropdownOptionByText('platform', 'platform');
         cy.genericFormSubmitForm();
 
-        cy.getElementByDataTestsId('node-69e09f68-8b63-4cc9-b9ff-860960b5db09-2017-488_ADIOD-vPE 0').contains(vnfModelName);
+        cy.getElementByDataTestsId('node-69e09f68-8b63-4cc9-b9ff-860960b5db09-2017-488_PASQUALE-vPE 0').contains(vnfModelName);
       });
     });
 
@@ -355,23 +360,23 @@ describe('Drawing board', function () {
 
       it('should add vfModule with popup with empty required instance name', () => {
         cy.readFile('/cypress/support/jsonBuilders/mocks/jsons/serviceWithVnfAndVfModules.json').then((res) => {
-          res.service.serviceHierarchy["2f80c596-27e5-4ca9-b5bb-e03a7fd4c0fd"].vnfs["2017-488_ADIOD-vPE 0"].properties.ecomp_generated_naming = "false";
-          res.service.serviceInstance["2f80c596-27e5-4ca9-b5bb-e03a7fd4c0fd"].vnfs["2017-488_ADIOD-vPE 0"].vfModules = [];
+          res.service.serviceHierarchy["2f80c596-27e5-4ca9-b5bb-e03a7fd4c0fd"].vnfs["2017-488_PASQUALE-vPE 0"].properties.ecomp_generated_naming = "false";
+          res.service.serviceInstance["2f80c596-27e5-4ca9-b5bb-e03a7fd4c0fd"].vnfs["2017-488_PASQUALE-vPE 0"].vfModules = [];
           cy.setReduxState(<any>res);
           cy.openIframe('app/ui/#/servicePlanning?serviceModelId=2f80c596-27e5-4ca9-b5bb-e03a7fd4c0fd');
           cy.get('available-models-tree tree-node-expander').eq(2).click();
-          cy.drawingBoardPressAddButtonByElementName('node-2017488_adiodvpe0..2017488AdiodVpe..ADIOD_vRE_BV..module-1').click({force: true});
+          cy.drawingBoardPressAddButtonByElementName('node-2017488_pasqualevpe0..2017488PasqualeVpe..PASQUALE_vRE_BV..module-1').click({force: true});
         });
       });
 
       it('should add vfModule with popup if empty required dynamic input', () => {
         cy.readFile('/cypress/support/jsonBuilders/mocks/jsons/serviceWithVnfAndVfModules.json').then((res) => {
-          res.service.serviceHierarchy["2f80c596-27e5-4ca9-b5bb-e03a7fd4c0fd"].vnfs["2017-488_ADIOD-vPE 0"].vfModules["2017488_adiodvpe0..2017488AdiodVpe..ADIOD_vRE_BV..module-1"].inputs["adiodvpe0_bandwidth"].default = '';
-          res.service.serviceInstance["2f80c596-27e5-4ca9-b5bb-e03a7fd4c0fd"].vnfs["2017-488_ADIOD-vPE 0"].vfModules = [];
+          res.service.serviceHierarchy["2f80c596-27e5-4ca9-b5bb-e03a7fd4c0fd"].vnfs["2017-488_PASQUALE-vPE 0"].vfModules["2017488_pasqualevpe0..2017488PasqualeVpe..PASQUALE_vRE_BV..module-1"].inputs["pasqualevpe0_bandwidth"].default = '';
+          res.service.serviceInstance["2f80c596-27e5-4ca9-b5bb-e03a7fd4c0fd"].vnfs["2017-488_PASQUALE-vPE 0"].vfModules = [];
           cy.setReduxState(<any>res);
           cy.openIframe('app/ui/#/servicePlanning?serviceModelId=2f80c596-27e5-4ca9-b5bb-e03a7fd4c0fd');
           cy.get('available-models-tree tree-node-expander').eq(2).click();
-          cy.drawingBoardPressAddButtonByElementName('node-2017488_adiodvpe0..2017488AdiodVpe..ADIOD_vRE_BV..module-1').click({force: true});
+          cy.drawingBoardPressAddButtonByElementName('node-2017488_pasqualevpe0..2017488PasqualeVpe..PASQUALE_vRE_BV..module-1').click({force: true});
           cy.get('#instance-popup').and('be.visible');
         });
       });
@@ -384,7 +389,7 @@ describe('Drawing board', function () {
         cy.readFile('/cypress/support/jsonBuilders/mocks/jsons/serviceWithVnfAndVfModules.json').then((res) => {
           res.service.serviceInstance['2f80c596-27e5-4ca9-b5bb-e03a7fd4c0fd'].existingVNFCounterMap['0903e1c0-8e03-4936-b5c2-260653b96413'] = 1;
           res.service.serviceInstance["2f80c596-27e5-4ca9-b5bb-e03a7fd4c0fd"].validationCounter = 1;
-          res.service.serviceInstance["2f80c596-27e5-4ca9-b5bb-e03a7fd4c0fd"].vnfs["2017-388_ADIOD-vPE 1"] = {
+          res.service.serviceInstance["2f80c596-27e5-4ca9-b5bb-e03a7fd4c0fd"].vnfs["2017-388_PASQUALE-vPE 1"] = {
             "rollbackOnFailure": "false",
             "vfModules": {},
             "productFamilyId": "36b4733a-53f4-4cc8-8ff0-9172e5fc4b8e",
@@ -397,22 +402,22 @@ describe('Drawing board', function () {
               "modelType": "service",
               "modelInvariantId": "00beb8f9-6d39-452f-816d-c709b9cbb87d",
               "modelVersionId": "0903e1c0-8e03-4936-b5c2-260653b96413",
-              "modelName": "2017-388_ADIOD-vPE",
+              "modelName": "2017-388_PASQUALE-vPE",
               "modelVersion": "1.0",
               "modelCustomizationId": "280dec31-f16d-488b-9668-4aae55d6648a",
-              "modelCustomizationName": "2017-388_ADIOD-vPE 1"
+              "modelCustomizationName": "2017-388_PASQUALE-vPE 1"
             }
           };
           cy.setReduxState(<any>res);
           cy.openIframe('app/ui/#/servicePlanning?serviceModelId=2f80c596-27e5-4ca9-b5bb-e03a7fd4c0fd');
-          cy.getElementByDataTestsId("node-0903e1c0-8e03-4936-b5c2-260653b96413-2017-388_ADIOD-vPE 1-alert-icon").and('be.visible');
+          cy.getElementByDataTestsId("node-0903e1c0-8e03-4936-b5c2-260653b96413-2017-388_PASQUALE-vPE 1-alert-icon").and('be.visible');
           cy.isElementContainsAttr('deployBtn', 'disabled');
-          cy.drawingBoardTreeOpenContextMenuByElementDataTestId('node-0903e1c0-8e03-4936-b5c2-260653b96413-2017-388_ADIOD-vPE 1')
+          cy.drawingBoardTreeOpenContextMenuByElementDataTestId('node-0903e1c0-8e03-4936-b5c2-260653b96413-2017-388_PASQUALE-vPE 1')
             .drawingBoardTreeClickOnContextMenuOptionByName('Edit')
           cy.selectDropdownOptionByText('lcpRegion', 'hvf6');
           cy.selectDropdownOptionByText('tenant', 'AIN Web Tool-15-D-testalexandria');
           cy.genericFormSubmitForm();
-          cy.getElementByDataTestsId("node-0903e1c0-8e03-4936-b5c2-260653b96413-2017-388_ADIOD-vPE 1-alert-icon").should('not.be.visible');
+          cy.getElementByDataTestsId("node-0903e1c0-8e03-4936-b5c2-260653b96413-2017-388_PASQUALE-vPE 1-alert-icon").should('not.be.visible');
           cy.getElementByDataTestsId('deployBtn').should('not.have.attr', 'disabled');
           cy.updateServiceShouldNotOverrideChild();
         });
@@ -423,16 +428,16 @@ describe('Drawing board', function () {
 
       it('vnf with min_instances value > 0 without required VF modules, should be created automatically without children', () => {
         cy.readFile('/cypress/support/jsonBuilders/mocks/jsons/basicRedux.json').then((res) => {
-          res.service.serviceHierarchy["2f80c596-27e5-4ca9-b5bb-e03a7fd4c0fd"].vnfs["2017-488_ADIOD-vPE 0"].properties['min_instances'] = 1;
-          res.service.serviceHierarchy["2f80c596-27e5-4ca9-b5bb-e03a7fd4c0fd"].vnfs["2017-488_ADIOD-vPE 0"].vfModules["2017488_adiodvpe0..2017488AdiodVpe..ADIOD_base_vPE_BV..module-0"].properties['initialCount'] = 0;
-          res.service.serviceHierarchy["2f80c596-27e5-4ca9-b5bb-e03a7fd4c0fd"].vfModules["2017488_adiodvpe0..2017488AdiodVpe..ADIOD_base_vPE_BV..module-0"].properties['initialCount'] = 0;
+          res.service.serviceHierarchy["2f80c596-27e5-4ca9-b5bb-e03a7fd4c0fd"].vnfs["2017-488_PASQUALE-vPE 0"].properties['min_instances'] = 1;
+          res.service.serviceHierarchy["2f80c596-27e5-4ca9-b5bb-e03a7fd4c0fd"].vnfs["2017-488_PASQUALE-vPE 0"].vfModules["2017488_pasqualevpe0..2017488PasqualeVpe..PASQUALE_base_vPE_BV..module-0"].properties['initialCount'] = 0;
+          res.service.serviceHierarchy["2f80c596-27e5-4ca9-b5bb-e03a7fd4c0fd"].vfModules["2017488_pasqualevpe0..2017488PasqualeVpe..PASQUALE_base_vPE_BV..module-0"].properties['initialCount'] = 0;
           cy.setReduxState(<any>res);
           cy.fillServicePopup().then(() => {
             cy.visit("welcome.htm").then(() => {
               cy.visit('app/ui/#/servicePlanning?serviceModelId=2f80c596-27e5-4ca9-b5bb-e03a7fd4c0fd').then(() => {
-                cy.getElementByDataTestsId('node-69e09f68-8b63-4cc9-b9ff-860960b5db09-2017-488_ADIOD-vPE 0').should('exist');
-                cy.getElementByDataTestsId('node-25284168-24bb-4698-8cb4-3f509146eca5-2017488_adiodvpe0..2017488AdiodVpe..ADIOD_vRE_BV..module-1').should('not.exist');
-                cy.getElementByDataTestsId('node-f8360508-3f17-4414-a2ed-6bc71161e8db-2017488_adiodvpe0..2017488AdiodVpe..ADIOD_base_vPE_BV..module-0').should('not.exist');
+                cy.getElementByDataTestsId('node-69e09f68-8b63-4cc9-b9ff-860960b5db09-2017-488_PASQUALE-vPE 0').should('exist');
+                cy.getElementByDataTestsId('node-25284168-24bb-4698-8cb4-3f509146eca5-2017488_pasqualevpe0..2017488PasqualeVpe..PASQUALE_vRE_BV..module-1').should('not.exist');
+                cy.getElementByDataTestsId('node-f8360508-3f17-4414-a2ed-6bc71161e8db-2017488_pasqualevpe0..2017488PasqualeVpe..PASQUALE_base_vPE_BV..module-0').should('not.exist');
               })
             })
           });
@@ -442,13 +447,13 @@ describe('Drawing board', function () {
 
       it('vnf with min_instances value > 1 with required VF modules, should be created automatically with children only once', () => {
         cy.readFile('/cypress/support/jsonBuilders/mocks/jsons/basicRedux.json').then((res) => {
-          res.service.serviceHierarchy["2f80c596-27e5-4ca9-b5bb-e03a7fd4c0fd"].vnfs["2017-488_ADIOD-vPE 0"].properties['min_instances'] = 3;
+          res.service.serviceHierarchy["2f80c596-27e5-4ca9-b5bb-e03a7fd4c0fd"].vnfs["2017-488_PASQUALE-vPE 0"].properties['min_instances'] = 3;
           cy.setReduxState(<any>res);
           cy.fillServicePopup().then(() => {
             cy.visit("welcome.htm").then(() => {
               cy.openIframe('app/ui/#/servicePlanning?serviceModelId=2f80c596-27e5-4ca9-b5bb-e03a7fd4c0fd');
-              cy.getElementByDataTestsId('node-69e09f68-8b63-4cc9-b9ff-860960b5db09-2017-488_ADIOD-vPE 0').should('exist');
-              cy.getElementByDataTestsId('node-f8360508-3f17-4414-a2ed-6bc71161e8db-2017488_adiodvpe0..2017488AdiodVpe..ADIOD_base_vPE_BV..module-0').should('have.length', 1);
+              cy.getElementByDataTestsId('node-69e09f68-8b63-4cc9-b9ff-860960b5db09-2017-488_PASQUALE-vPE 0').should('exist');
+              cy.getElementByDataTestsId('node-f8360508-3f17-4414-a2ed-6bc71161e8db-2017488_pasqualevpe0..2017488PasqualeVpe..PASQUALE_base_vPE_BV..module-0').should('have.length', 1);
 
             });
           });
@@ -458,13 +463,13 @@ describe('Drawing board', function () {
 
       it('vnf with min_instances value = 0 with required VF modules should be created automatically with its children', () => {
         cy.readFile('/cypress/support/jsonBuilders/mocks/jsons/basicRedux.json').then((res) => {
-          res.service.serviceHierarchy["2f80c596-27e5-4ca9-b5bb-e03a7fd4c0fd"].vnfs["2017-488_ADIOD-vPE 0"].properties['min_instances'] = 0;
+          res.service.serviceHierarchy["2f80c596-27e5-4ca9-b5bb-e03a7fd4c0fd"].vnfs["2017-488_PASQUALE-vPE 0"].properties['min_instances'] = 0;
           cy.setReduxState(<any>res);
           cy.fillServicePopup().then(() => {
             cy.visit("welcome.htm").then(() => {
               cy.openIframe('app/ui/#/servicePlanning?serviceModelId=2f80c596-27e5-4ca9-b5bb-e03a7fd4c0fd');
-              cy.getElementByDataTestsId('node-69e09f68-8b63-4cc9-b9ff-860960b5db09-2017-488_ADIOD-vPE 0').should('exist');
-              cy.getElementByDataTestsId('node-f8360508-3f17-4414-a2ed-6bc71161e8db-2017488_adiodvpe0..2017488AdiodVpe..ADIOD_base_vPE_BV..module-0').should('exist');
+              cy.getElementByDataTestsId('node-69e09f68-8b63-4cc9-b9ff-860960b5db09-2017-488_PASQUALE-vPE 0').should('exist');
+              cy.getElementByDataTestsId('node-f8360508-3f17-4414-a2ed-6bc71161e8db-2017488_pasqualevpe0..2017488PasqualeVpe..PASQUALE_base_vPE_BV..module-0').should('exist');
               cy.updateServiceShouldNotOverrideChild();
             });
           });
@@ -479,7 +484,7 @@ describe('Drawing board', function () {
           cy.fillServicePopup().then(() => {
             cy.visit("welcome.htm").then(() => {
               cy.openIframe('app/ui/#/servicePlanning?serviceModelId=2f80c596-27e5-4ca9-b5bb-e03a7fd4c0fd');
-              cy.getElementByDataTestsId('node-afacccf6-397d-45d6-b5ae-94c39734b168-2017-388_ADIOD-vPE 0').should('not.exist');
+              cy.getElementByDataTestsId('node-afacccf6-397d-45d6-b5ae-94c39734b168-2017-388_PASQUALE-vPE 0').should('not.exist');
             });
           });
         });
@@ -493,7 +498,7 @@ describe('Drawing board', function () {
       let instanceName = 'instanceName';
       cy.setReduxState(<any>res);
       cy.openIframe('app/ui/#/servicePlanning?serviceModelId=6e59c5de-f052-46fa-aa7e-2fca9d674c44');
-      const vfModuleNode = 'node-522159d5-d6e0-4c2a-aa44-5a542a12a830-vf_vmee0..VfVmee..vmme_vlc..module-1';
+      const vfModuleNode = 'node-522159d5-d6e0-4c2a-aa44-5a542a12a830-vf_vgeraldine0..VfVgeraldine..vflorence_vlc..module-1';
       assertEditvfModuleShowFile(vfModuleNode, "sample.json");
       cy.getElementByDataTestsId('remove-uploaded-file').click({force: true});
       cy.getElementByDataTestsId('form-set').should('not.have.attr', 'disabled');
@@ -501,13 +506,13 @@ describe('Drawing board', function () {
       cy.genericFormSubmitForm();
       cy.getReduxState().then((state) => {
         const serviceInstance = state.service.serviceInstance['6e59c5de-f052-46fa-aa7e-2fca9d674c44'];
-        const vfModuleInstance = serviceInstance.vnfs['VF_vMee 0'].vfModules['vf_vmee0..VfVmee..vmme_vlc..module-1']['vf_vmee0..VfVmee..vmme_vlc..module-1dcudx'];
+        const vfModuleInstance = serviceInstance.vnfs['VF_vGeraldine 0'].vfModules['vf_vgeraldine0..VfVgeraldine..vflorence_vlc..module-1']['vf_vgeraldine0..VfVgeraldine..vflorence_vlc..module-1dcudx'];
         chai.expect(vfModuleInstance.supplementaryFile_hidden).to.be.null;
         chai.expect(vfModuleInstance.supplementaryFile_hidden_content).to.be.null;
         chai.expect(vfModuleInstance.supplementaryFileContent).to.be.undefined;
         chai.expect(vfModuleInstance.supplementaryFileName).to.be.undefined;
       });
-      cy.getElementByDataTestsId('node-d6557200-ecf2-4641-8094-5393ae3aae60-VF_vMee 0').click();
+      cy.getElementByDataTestsId('node-d6557200-ecf2-4641-8094-5393ae3aae60-VF_vGeraldine 0').click();
       assertEditvfModuleShowFile(vfModuleNode, "Choose file");
       cy.getElementByDataTestsId('instanceName').should('have.value', instanceName);
     });
@@ -515,6 +520,8 @@ describe('Drawing board', function () {
 
   describe('component info', () => {
 
+    var jsonBuilderAndMock: JsonBuilder<ServiceModel> = new JsonBuilder<ServiceModel>();
+
     const longText = 'Im a very long text for verify wrapping so please dont make me shorter';
 
     function testIfComponentInfoShown(flagState:boolean) {
@@ -540,22 +547,21 @@ describe('Drawing board', function () {
       testIfComponentInfoShown(true);
 
       let labelsAndValues = [
-        ['Model Version', '1.0'],
-        ['Subscriber Name', 'SILVIA ROBBINS'],
-        ['Service Type', 'TYLER SILVIA'],
-        ['Service Role', longText]
+        ['Model version', '1.0'],
+        ['Subscriber name', 'SILVIA ROBBINS'],
+        ['Service type', 'TYLER SILVIA'],
+        ['Service role', longText]
       ];
       const expectedTitle = 'Service Instance INFO';
       cy.assertComponentInfoTitleLabelsAndValues(expectedTitle, labelsAndValues);
-      cy.getElementByDataTestsId('model-item-value-Service Role').should('have.css', 'height', '32px'); //assert that long text is wrap
+      cy.getElementByDataTestsId('model-item-value-Service role').should('have.css', 'height', '32px'); //assert that long text is wrap
     });
 
-    it('component info is not shown when feature flag is false', () => {
+  it('component info is not shown when feature flag is false', () => {
       testIfComponentInfoShown(false);
     });
   });
 
-
   function addNetworkFromModel(instanceName: string) {
     return cy.get('drawing-board-tree').find('tree-node-content').then((elemets) => {
       cy.get('drawing-board-tree tree-node-content').should('have.have.length', elemets.length);
@@ -573,19 +579,14 @@ describe('Drawing board', function () {
         "name": null,
         "flags": {
           "FLAG_SHOW_ASSIGNMENTS": true,
-          "FLAG_UNASSIGN_SERVICE": true,
           "FLAG_SHOW_VERIFY_SERVICE": false,
-          "FLAG_COLLECTION_RESOURCE_SUPPORT": true,
-          "FLAG_ASYNC_INSTANTIATION": true,
           "EMPTY_DRAWING_BOARD_TEST": false,
           "FLAG_ADD_MSO_TESTAPI_FIELD": true,
           "FLAG_NETWORK_TO_ASYNC_INSTANTIATION": false,
           "FLAG_FABRIC_CONFIGURATION_ASSIGNMENTS": true,
-          "FLAG_DUPLICATE_VNF": true,
           "FLAG_SERVICE_MODEL_CACHE": true,
           "CREATE_INSTANCE_TEST": false,
           "FLAG_SETTING_DEFAULTS_IN_DRAWING_BOARD": false,
-          "FLAG_ASYNC_JOBS": true,
           "FLAG_1906_COMPONENT_INFO" : false
         },
         "type": "[FLAGS] Update"
@@ -605,14 +606,17 @@ describe('Drawing board', function () {
               "description": "ComplexService",
               "serviceEcompNaming": "true",
               "instantiationType": "Macro",
+              "vidNotions": {
+                "instantiationType": "Macro"
+              },
               "inputs": {}
             },
             "vnfs": {
-              "VF_vMee 0": {
+              "VF_vGeraldine 0": {
                 "uuid": "d6557200-ecf2-4641-8094-5393ae3aae60",
                 "invariantUuid": "4160458e-f648-4b30-a176-43881ffffe9e",
-                "description": "VSP_vMee",
-                "name": "VF_vMee",
+                "description": "VSP_vGeraldine",
+                "name": "VF_vGeraldine",
                 "version": "2.0",
                 "customizationUuid": "91415b44-753d-494c-926a-456a9172bbb9",
                 "inputs": {},
@@ -781,74 +785,74 @@ describe('Drawing board', function () {
                   "sctp-b-egress-dst_end_port": "65535.0"
                 },
                 "type": "VF",
-                "modelCustomizationName": "VF_vMee 0",
+                "modelCustomizationName": "VF_vGeraldine 0",
                 "vfModules": {
-                  "vf_vmee0..VfVmee..vmme_vlc..module-1": {
+                  "vf_vgeraldine0..VfVgeraldine..vflorence_vlc..module-1": {
                     "uuid": "522159d5-d6e0-4c2a-aa44-5a542a12a830",
                     "invariantUuid": "98a7c88b-b577-476a-90e4-e25a5871e02b",
                     "customizationUuid": "55b1be94-671a-403e-a26c-667e9c47d091",
                     "description": null,
-                    "name": "VfVmee..vmme_vlc..module-1",
+                    "name": "VfVgeraldine..vflorence_vlc..module-1",
                     "version": "2",
-                    "modelCustomizationName": "VfVmee..vmme_vlc..module-1",
+                    "modelCustomizationName": "VfVgeraldine..vflorence_vlc..module-1",
                     "properties": {
                       "minCountInstances": 0,
                       "maxCountInstances": null,
                       "initialCount": 0,
-                      "vfModuleLabel": "vmme_vlc"
+                      "vfModuleLabel": "vflorence_vlc"
                     },
                     "inputs": {},
                     "volumeGroupAllowed": false
                   },
-                  "vf_vmee0..VfVmee..vmme_gpb..module-2": {
+                  "vf_vgeraldine0..VfVgeraldine..vflorence_gpb..module-2": {
                     "uuid": "41708296-e443-4c71-953f-d9a010f059e1",
                     "invariantUuid": "1cca90b8-3490-495e-87da-3f3e4c57d5b9",
                     "customizationUuid": "6add59e0-7fe1-4bc4-af48-f8812422ae7c",
                     "description": null,
-                    "name": "VfVmee..vmme_gpb..module-2",
+                    "name": "VfVgeraldine..vflorence_gpb..module-2",
                     "version": "2",
-                    "modelCustomizationName": "VfVmee..vmme_gpb..module-2",
+                    "modelCustomizationName": "VfVgeraldine..vflorence_gpb..module-2",
                     "properties": {
                       "minCountInstances": 0,
                       "maxCountInstances": null,
                       "initialCount": 0,
-                      "vfModuleLabel": "vmme_gpb"
+                      "vfModuleLabel": "vflorence_gpb"
                     },
                     "inputs": {},
                     "volumeGroupAllowed": false
                   },
-                  "vf_vmee0..VfVmee..base_vmme..module-0": {
+                  "vf_vgeraldine0..VfVgeraldine..base_vflorence..module-0": {
                     "uuid": "a27f5cfc-7f12-4f99-af08-0af9c3885c87",
                     "invariantUuid": "a6f9e51a-2b35-416a-ae15-15e58d61f36d",
                     "customizationUuid": "f8c040f1-7e51-4a11-aca8-acf256cfd861",
                     "description": null,
-                    "name": "VfVmee..base_vmme..module-0",
+                    "name": "VfVgeraldine..base_vflorence..module-0",
                     "version": "2",
-                    "modelCustomizationName": "VfVmee..base_vmme..module-0",
+                    "modelCustomizationName": "VfVgeraldine..base_vflorence..module-0",
                     "properties": {
                       "minCountInstances": 1,
                       "maxCountInstances": 1,
                       "initialCount": 1,
-                      "vfModuleLabel": "base_vmme"
+                      "vfModuleLabel": "base_vflorence"
                     },
                     "inputs": {},
                     "volumeGroupAllowed": true
                   }
                 },
                 "volumeGroups": {
-                  "vf_vmee0..VfVmee..base_vmme..module-0": {
+                  "vf_vgeraldine0..VfVgeraldine..base_vflorence..module-0": {
                     "uuid": "a27f5cfc-7f12-4f99-af08-0af9c3885c87",
                     "invariantUuid": "a6f9e51a-2b35-416a-ae15-15e58d61f36d",
                     "customizationUuid": "f8c040f1-7e51-4a11-aca8-acf256cfd861",
                     "description": null,
-                    "name": "VfVmee..base_vmme..module-0",
+                    "name": "VfVgeraldine..base_vflorence..module-0",
                     "version": "2",
-                    "modelCustomizationName": "VfVmee..base_vmme..module-0",
+                    "modelCustomizationName": "VfVgeraldine..base_vflorence..module-0",
                     "properties": {
                       "minCountInstances": 1,
                       "maxCountInstances": 1,
                       "initialCount": 1,
-                      "vfModuleLabel": "base_vmme"
+                      "vfModuleLabel": "base_vflorence"
                     },
                     "inputs": {}
                   }
@@ -876,7 +880,7 @@ describe('Drawing board', function () {
                 "modelCustomizationName": "ExtVL 0"
               }
             },
-            "collectionResource": {},
+            "collectionResources": {},
             "configurations": {
               "Port Mirroring Configuration By Policy 0": {
                 "uuid": "b4398538-e89d-4f13-b33d-ca323434ba50",
@@ -897,72 +901,72 @@ describe('Drawing board', function () {
             },
             "serviceProxies": {},
             "vfModules": {
-              "vf_vmee0..VfVmee..vmme_vlc..module-1": {
+              "vf_vgeraldine0..VfVgeraldine..vflorence_vlc..module-1": {
                 "uuid": "522159d5-d6e0-4c2a-aa44-5a542a12a830",
                 "invariantUuid": "98a7c88b-b577-476a-90e4-e25a5871e02b",
                 "customizationUuid": "55b1be94-671a-403e-a26c-667e9c47d091",
                 "description": null,
-                "name": "VfVmee..vmme_vlc..module-1",
+                "name": "VfVgeraldine..vflorence_vlc..module-1",
                 "version": "2",
-                "modelCustomizationName": "VfVmee..vmme_vlc..module-1",
+                "modelCustomizationName": "VfVgeraldine..vflorence_vlc..module-1",
                 "properties": {
                   "minCountInstances": 0,
                   "maxCountInstances": null,
                   "initialCount": 0,
-                  "vfModuleLabel": "vmme_vlc"
+                  "vfModuleLabel": "vflorence_vlc"
                 },
                 "inputs": {},
                 "volumeGroupAllowed": false
               },
-              "vf_vmee0..VfVmee..vmme_gpb..module-2": {
+              "vf_vgeraldine0..VfVgeraldine..vflorence_gpb..module-2": {
                 "uuid": "41708296-e443-4c71-953f-d9a010f059e1",
                 "invariantUuid": "1cca90b8-3490-495e-87da-3f3e4c57d5b9",
                 "customizationUuid": "6add59e0-7fe1-4bc4-af48-f8812422ae7c",
                 "description": null,
-                "name": "VfVmee..vmme_gpb..module-2",
+                "name": "VfVgeraldine..vflorence_gpb..module-2",
                 "version": "2",
-                "modelCustomizationName": "VfVmee..vmme_gpb..module-2",
+                "modelCustomizationName": "VfVgeraldine..vflorence_gpb..module-2",
                 "properties": {
                   "minCountInstances": 0,
                   "maxCountInstances": null,
                   "initialCount": 0,
-                  "vfModuleLabel": "vmme_gpb"
+                  "vfModuleLabel": "vflorence_gpb"
                 },
                 "inputs": {},
                 "volumeGroupAllowed": false
               },
-              "vf_vmee0..VfVmee..base_vmme..module-0": {
+              "vf_vgeraldine0..VfVgeraldine..base_vflorence..module-0": {
                 "uuid": "a27f5cfc-7f12-4f99-af08-0af9c3885c87",
                 "invariantUuid": "a6f9e51a-2b35-416a-ae15-15e58d61f36d",
                 "customizationUuid": "f8c040f1-7e51-4a11-aca8-acf256cfd861",
                 "description": null,
-                "name": "VfVmee..base_vmme..module-0",
+                "name": "VfVgeraldine..base_vflorence..module-0",
                 "version": "2",
-                "modelCustomizationName": "VfVmee..base_vmme..module-0",
+                "modelCustomizationName": "VfVgeraldine..base_vflorence..module-0",
                 "properties": {
                   "minCountInstances": 1,
                   "maxCountInstances": 1,
                   "initialCount": 1,
-                  "vfModuleLabel": "base_vmme"
+                  "vfModuleLabel": "base_vflorence"
                 },
                 "inputs": {},
                 "volumeGroupAllowed": true
               }
             },
             "volumeGroups": {
-              "vf_vmee0..VfVmee..base_vmme..module-0": {
+              "vf_vgeraldine0..VfVgeraldine..base_vflorence..module-0": {
                 "uuid": "a27f5cfc-7f12-4f99-af08-0af9c3885c87",
                 "invariantUuid": "a6f9e51a-2b35-416a-ae15-15e58d61f36d",
                 "customizationUuid": "f8c040f1-7e51-4a11-aca8-acf256cfd861",
                 "description": null,
-                "name": "VfVmee..base_vmme..module-0",
+                "name": "VfVgeraldine..base_vflorence..module-0",
                 "version": "2",
-                "modelCustomizationName": "VfVmee..base_vmme..module-0",
+                "modelCustomizationName": "VfVgeraldine..base_vflorence..module-0",
                 "properties": {
                   "minCountInstances": 1,
                   "maxCountInstances": 1,
                   "initialCount": 1,
-                  "vfModuleLabel": "base_vmme"
+                  "vfModuleLabel": "base_vflorence"
                 },
                 "inputs": {}
               }
@@ -973,17 +977,20 @@ describe('Drawing board', function () {
             "service": {
               "uuid": "f4d84bb4-a416-4b4e-997e-0059973630b9",
               "invariantUuid": "598e3f9e-3244-4d8f-a8e0-0e5d7a29eda9",
-              "name": "ADIOD vMX vPE_BV Service 488",
+              "name": "PASQUALE vMX vPE_BV Service 488",
               "version": "1.0",
               "toscaModelURL": null,
               "category": "Network L1-3",
               "serviceType": "",
               "serviceRole": "",
-              "description": "ADIOD vMX vPE based on Juniper 17.2 release. Updated with updated VF for v8.0 of VLM",
+              "description": "PASQUALE vMX vPE based on Juniper 17.2 release. Updated with updated VF for v8.0 of VLM",
               "serviceEcompNaming": "true",
               "instantiationType": "Macro",
+              "vidNotions": {
+                "instantiationType": "Macro"
+              },
               "inputs": {
-                "2017488_adiodvpe0_ASN": {
+                "2017488_pasqualevpe0_ASN": {
                   "type": "string",
                   "description": "AV/PE",
                   "entry_schema": null,
@@ -995,11 +1002,11 @@ describe('Drawing board', function () {
               }
             },
             "vnfs": {
-              "2017-488_ADIOD-vPE 0": {
+              "2017-488_PASQUALE-vPE 0": {
                 "uuid": "ea81d6f7-0861-44a7-b7d5-d173b562c350",
                 "invariantUuid": "5be7e99e-8eb2-4d97-be63-8081ff3cd10e",
-                "description": "Name ADIOD vPE Description The provider edge function for the ADIOD service supported by the Junipers VMX product Category Router Vendor Juniper Vendor Release Code 17.2 Owners Mary Fragale. Updated 9-25 to use v8.0 of the Juniper Valid 2 VLM",
-                "name": "2017-488_ADIOD-vPE",
+                "description": "Name PASQUALE vPE Description The provider edge function for the PASQUALE service supported by the Junipers VMX product Category Router Vendor Juniper Vendor Release Code 17.2 Owners Mary Fragale. Updated 9-25 to use v8.0 of the Juniper Valid 2 VLM",
+                "name": "2017-488_PASQUALE-vPE",
                 "version": "9.0",
                 "customizationUuid": "41516cc6-5098-4b40-a619-f8d5f55fc4d8",
                 "inputs": {
@@ -1071,44 +1078,44 @@ describe('Drawing board', function () {
                   "vnf_config_template_version": {
                     "displayName": "vnf_config_template_version",
                     "command": "get_input",
-                    "inputName": "2017488_adiodvpe0_vnf_config_template_version"
+                    "inputName": "2017488_pasqualevpe0_vnf_config_template_version"
                   },
                   "bandwidth_units": {
                     "displayName": "bandwidth_units",
                     "command": "get_input",
-                    "inputName": "2017488_adiodvpe0_bandwidth_units"
+                    "inputName": "2017488_pasqualevpe0_bandwidth_units"
                   },
                   "bandwidth": {
                     "displayName": "bandwidth",
                     "command": "get_input",
-                    "inputName": "2017488_adiodvpe0_bandwidth"
+                    "inputName": "2017488_pasqualevpe0_bandwidth"
                   },
                   "AIC_CLLI": {
                     "displayName": "AIC_CLLI",
                     "command": "get_input",
-                    "inputName": "2017488_adiodvpe0_AIC_CLLI"
+                    "inputName": "2017488_pasqualevpe0_AIC_CLLI"
                   },
                   "availability_zone_0": {
                     "displayName": "availability_zone_0",
                     "command": "get_input",
-                    "inputName": "2017488_adiodvpe0_availability_zone_0"
+                    "inputName": "2017488_pasqualevpe0_availability_zone_0"
                   },
                   "ASN": {
                     "displayName": "ASN",
                     "command": "get_input",
-                    "inputName": "2017488_adiodvpe0_ASN"
+                    "inputName": "2017488_pasqualevpe0_ASN"
                   },
                   "vnf_instance_name": {
                     "displayName": "vnf_instance_name",
                     "command": "get_input",
-                    "inputName": "2017488_adiodvpe0_vnf_instance_name"
+                    "inputName": "2017488_pasqualevpe0_vnf_instance_name"
                   }
                 },
                 "properties": {
                   "max_instances": 10,
                   "min_instances": 1,
                   "vmxvre_retype": "RE-VMX",
-                  "vnf_config_template_version": "get_input:2017488_adiodvpe0_vnf_config_template_version",
+                  "vnf_config_template_version": "get_input:2017488_pasqualevpe0_vnf_config_template_version",
                   "sriov44_net_id": "48d399b3-11ee-48a8-94d2-f0ea94d6be8d",
                   "int_ctl_net_id": "2f323477-6936-4d01-ac53-d849430281d9",
                   "vmxvpfe_sriov41_0_port_mac": "00:11:22:EF:AC:DF",
@@ -1150,11 +1157,11 @@ describe('Drawing board', function () {
                   "vmxvpfe_sriov42_0_port_unknownmulticastallow": "true",
                   "vmxvpfe_sriov44_0_port_vlanstrip": "false",
                   "vf_module_id": "123",
-                  "nf_function": "ADIOD vPE",
+                  "nf_function": "PASQUALE vPE",
                   "vmxvpfe_sriov43_0_port_unknownmulticastallow": "true",
                   "vmxvre_int_ctl_ip_0": "10.0.0.10",
                   "ecomp_generated_naming": "true",
-                  "AIC_CLLI": "get_input:2017488_adiodvpe0_AIC_CLLI",
+                  "AIC_CLLI": "get_input:2017488_pasqualevpe0_AIC_CLLI",
                   "vnf_name": "mtnj309me6vre",
                   "vmxvpfe_sriov41_0_port_unknownunicastallow": "true",
                   "vmxvre_volume_type_1": "HITACHI",
@@ -1162,14 +1169,14 @@ describe('Drawing board', function () {
                   "vmxvre_volume_type_0": "HITACHI",
                   "vmxvpfe_volume_type_0": "HITACHI",
                   "vmxvpfe_sriov43_0_port_broadcastallow": "true",
-                  "bandwidth_units": "get_input:2017488_adiodvpe0_bandwidth_units",
+                  "bandwidth_units": "get_input:2017488_pasqualevpe0_bandwidth_units",
                   "vnf_id": "123",
                   "vmxvre_oam_prefix": "24",
-                  "availability_zone_0": "get_input:2017488_adiodvpe0_availability_zone_0",
-                  "ASN": "get_input:2017488_adiodvpe0_ASN",
+                  "availability_zone_0": "get_input:2017488_pasqualevpe0_availability_zone_0",
+                  "ASN": "get_input:2017488_pasqualevpe0_ASN",
                   "vmxvre_chassis_i2cid": "161",
                   "vmxvpfe_name_0": "vPFEXI",
-                  "bandwidth": "get_input:2017488_adiodvpe0_bandwidth",
+                  "bandwidth": "get_input:2017488_pasqualevpe0_bandwidth",
                   "availability_zone_max_count": "1",
                   "vmxvre_volume_size_0": "45.0",
                   "vmxvre_volume_size_1": "50.0",
@@ -1179,7 +1186,7 @@ describe('Drawing board', function () {
                   "vmxvre_ore_present": "0",
                   "vmxvre_volume_name_0": "vREXI_FBVolume",
                   "vmxvre_type": "0",
-                  "vnf_instance_name": "get_input:2017488_adiodvpe0_vnf_instance_name",
+                  "vnf_instance_name": "get_input:2017488_pasqualevpe0_vnf_instance_name",
                   "vmxvpfe_sriov41_0_port_unknownmulticastallow": "true",
                   "oam_net_id": "b95eeb1d-d55d-4827-abb4-8ebb94941429",
                   "vmx_int_ctl_len": "24",
@@ -1193,82 +1200,82 @@ describe('Drawing board', function () {
                   "vmxvpfe_flavor_name": "ns.c20r16d25.v5"
                 },
                 "type": "VF",
-                "modelCustomizationName": "2017-488_ADIOD-vPE 0",
+                "modelCustomizationName": "2017-488_PASQUALE-vPE 0",
                 "vfModules": {
-                  "2017488_adiodvpe0..2017488AdiodVpe..ADIOD_vRE_BV..module-1": {
+                  "2017488_pasqualevpe0..2017488PasqualeVpe..PASQUALE_vRE_BV..module-1": {
                     "uuid": "a5d8df05-11cb-4351-96e0-b6d4168ea4df",
                     "invariantUuid": "7253ff5c-97f0-4b8b-937c-77aeb4d79aa1",
                     "customizationUuid": "f3d97417-0c8d-424e-8ff7-b2eb4fbcecc3",
                     "description": null,
-                    "name": "2017488AdiodVpe..ADIOD_vRE_BV..module-1",
+                    "name": "2017488PasqualeVpe..PASQUALE_vRE_BV..module-1",
                     "version": "8",
-                    "modelCustomizationName": "2017488AdiodVpe..ADIOD_vRE_BV..module-1",
+                    "modelCustomizationName": "2017488PasqualeVpe..PASQUALE_vRE_BV..module-1",
                     "properties": {
                       "minCountInstances": 0,
                       "maxCountInstances": null,
                       "initialCount": 0,
-                      "vfModuleLabel": "ADIOD_vRE_BV"
+                      "vfModuleLabel": "PASQUALE_vRE_BV"
                     },
                     "inputs": {
-                      "2017488_adiodvpe0_bandwidth_units": {
+                      "2017488_pasqualevpe0_bandwidth_units": {
                         "type": "string",
                         "description": "Units of bandwidth",
                         "entry_schema": null,
                         "inputProperties": {
                           "sourceType": "HEAT",
-                          "vfModuleLabel": "ADIOD_vRE_BV",
+                          "vfModuleLabel": "PASQUALE_vRE_BV",
                           "paramName": "bandwidth_units"
                         },
                         "constraints": null,
                         "required": true,
                         "default": "Gbps"
                       },
-                      "2017488_adiodvpe0_bandwidth": {
+                      "2017488_pasqualevpe0_bandwidth": {
                         "type": "string",
                         "description": "Requested VPE bandwidth",
                         "entry_schema": null,
                         "inputProperties": {
                           "sourceType": "HEAT",
-                          "vfModuleLabel": "ADIOD_vRE_BV",
+                          "vfModuleLabel": "PASQUALE_vRE_BV",
                           "paramName": "bandwidth"
                         },
                         "constraints": null,
                         "required": true,
                         "default": "10"
                       },
-                      "2017488_adiodvpe0_vnf_instance_name": {
+                      "2017488_pasqualevpe0_vnf_instance_name": {
                         "type": "string",
                         "description": "The hostname assigned to the vpe.",
                         "entry_schema": null,
                         "inputProperties": {
                           "sourceType": "HEAT",
-                          "vfModuleLabel": "ADIOD_vRE_BV",
+                          "vfModuleLabel": "PASQUALE_vRE_BV",
                           "paramName": "vnf_instance_name"
                         },
                         "constraints": null,
                         "required": true,
                         "default": "mtnj309me6"
                       },
-                      "2017488_adiodvpe0_vnf_config_template_version": {
+                      "2017488_pasqualevpe0_vnf_config_template_version": {
                         "type": "string",
                         "description": "VPE Software Version",
                         "entry_schema": null,
                         "inputProperties": {
                           "sourceType": "HEAT",
-                          "vfModuleLabel": "ADIOD_vRE_BV",
+                          "vfModuleLabel": "PASQUALE_vRE_BV",
                           "paramName": "vnf_config_template_version"
                         },
                         "constraints": null,
                         "required": true,
                         "default": "17.2"
                       },
-                      "2017488_adiodvpe0_AIC_CLLI": {
+                      "2017488_pasqualevpe0_AIC_CLLI": {
                         "type": "string",
                         "description": "AIC Site CLLI",
                         "entry_schema": null,
                         "inputProperties": {
                           "sourceType": "HEAT",
-                          "vfModuleLabel": "ADIOD_vRE_BV",
+                          "vfModuleLabel": "PASQUALE_vRE_BV",
                           "paramName": "AIC_CLLI"
                         },
                         "constraints": null,
@@ -1278,45 +1285,45 @@ describe('Drawing board', function () {
                     },
                     "volumeGroupAllowed": true
                   },
-                  "2017488_adiodvpe0..2017488AdiodVpe..ADIOD_base_vPE_BV..module-0": {
+                  "2017488_pasqualevpe0..2017488PasqualeVpe..PASQUALE_base_vPE_BV..module-0": {
                     "uuid": "040e591e-5d30-4e0d-850f-7266e5a8e013",
                     "invariantUuid": "b34833bb-6aa9-4ad6-a831-70b06367a091",
                     "customizationUuid": "5c5f91f9-5e31-4120-b892-5536587ec258",
                     "description": null,
-                    "name": "2017488AdiodVpe..ADIOD_base_vPE_BV..module-0",
+                    "name": "2017488PasqualeVpe..PASQUALE_base_vPE_BV..module-0",
                     "version": "6",
-                    "modelCustomizationName": "2017488AdiodVpe..ADIOD_base_vPE_BV..module-0",
+                    "modelCustomizationName": "2017488PasqualeVpe..PASQUALE_base_vPE_BV..module-0",
                     "properties": {
                       "minCountInstances": 1,
                       "maxCountInstances": 1,
                       "initialCount": 1,
-                      "vfModuleLabel": "ADIOD_base_vPE_BV"
+                      "vfModuleLabel": "PASQUALE_base_vPE_BV"
                     },
                     "inputs": {},
                     "volumeGroupAllowed": false
                   },
-                  "2017488_adiodvpe0..2017488AdiodVpe..ADIOD_vPFE_BV..module-2": {
+                  "2017488_pasqualevpe0..2017488PasqualeVpe..PASQUALE_vPFE_BV..module-2": {
                     "uuid": "b3e8b26e-cff0-49fc-a4e6-f3e16c8440fe",
                     "invariantUuid": "eff8cc59-53a1-4101-aed7-8cf24ecf8339",
                     "customizationUuid": "6e410843-257c-46d9-ba8a-8d94e1362452",
                     "description": null,
-                    "name": "2017488AdiodVpe..ADIOD_vPFE_BV..module-2",
+                    "name": "2017488PasqualeVpe..PASQUALE_vPFE_BV..module-2",
                     "version": "8",
-                    "modelCustomizationName": "2017488AdiodVpe..ADIOD_vPFE_BV..module-2",
+                    "modelCustomizationName": "2017488PasqualeVpe..PASQUALE_vPFE_BV..module-2",
                     "properties": {
                       "minCountInstances": 0,
                       "maxCountInstances": null,
                       "initialCount": 0,
-                      "vfModuleLabel": "ADIOD_vPFE_BV"
+                      "vfModuleLabel": "PASQUALE_vPFE_BV"
                     },
                     "inputs": {
-                      "2017488_adiodvpe0_availability_zone_0": {
+                      "2017488_pasqualevpe0_availability_zone_0": {
                         "type": "string",
                         "description": "The Availability Zone to launch the instance.",
                         "entry_schema": null,
                         "inputProperties": {
                           "sourceType": "HEAT",
-                          "vfModuleLabel": "ADIOD_vPFE_BV",
+                          "vfModuleLabel": "PASQUALE_vPFE_BV",
                           "paramName": "availability_zone_0"
                         },
                         "constraints": null,
@@ -1328,80 +1335,80 @@ describe('Drawing board', function () {
                   }
                 },
                 "volumeGroups": {
-                  "2017488_adiodvpe0..2017488AdiodVpe..ADIOD_vRE_BV..module-1": {
+                  "2017488_pasqualevpe0..2017488PasqualeVpe..PASQUALE_vRE_BV..module-1": {
                     "uuid": "a5d8df05-11cb-4351-96e0-b6d4168ea4df",
                     "invariantUuid": "7253ff5c-97f0-4b8b-937c-77aeb4d79aa1",
                     "customizationUuid": "f3d97417-0c8d-424e-8ff7-b2eb4fbcecc3",
                     "description": null,
-                    "name": "2017488AdiodVpe..ADIOD_vRE_BV..module-1",
+                    "name": "2017488PasqualeVpe..PASQUALE_vRE_BV..module-1",
                     "version": "8",
-                    "modelCustomizationName": "2017488AdiodVpe..ADIOD_vRE_BV..module-1",
+                    "modelCustomizationName": "2017488PasqualeVpe..PASQUALE_vRE_BV..module-1",
                     "properties": {
                       "minCountInstances": 0,
                       "maxCountInstances": null,
                       "initialCount": 0,
-                      "vfModuleLabel": "ADIOD_vRE_BV"
+                      "vfModuleLabel": "PASQUALE_vRE_BV"
                     },
                     "inputs": {
-                      "2017488_adiodvpe0_bandwidth_units": {
+                      "2017488_pasqualevpe0_bandwidth_units": {
                         "type": "string",
                         "description": "Units of bandwidth",
                         "entry_schema": null,
                         "inputProperties": {
                           "sourceType": "HEAT",
-                          "vfModuleLabel": "ADIOD_vRE_BV",
+                          "vfModuleLabel": "PASQUALE_vRE_BV",
                           "paramName": "bandwidth_units"
                         },
                         "constraints": null,
                         "required": true,
                         "default": "Gbps"
                       },
-                      "2017488_adiodvpe0_bandwidth": {
+                      "2017488_pasqualevpe0_bandwidth": {
                         "type": "string",
                         "description": "Requested VPE bandwidth",
                         "entry_schema": null,
                         "inputProperties": {
                           "sourceType": "HEAT",
-                          "vfModuleLabel": "ADIOD_vRE_BV",
+                          "vfModuleLabel": "PASQUALE_vRE_BV",
                           "paramName": "bandwidth"
                         },
                         "constraints": null,
                         "required": true,
                         "default": "10"
                       },
-                      "2017488_adiodvpe0_vnf_instance_name": {
+                      "2017488_pasqualevpe0_vnf_instance_name": {
                         "type": "string",
                         "description": "The hostname assigned to the vpe.",
                         "entry_schema": null,
                         "inputProperties": {
                           "sourceType": "HEAT",
-                          "vfModuleLabel": "ADIOD_vRE_BV",
+                          "vfModuleLabel": "PASQUALE_vRE_BV",
                           "paramName": "vnf_instance_name"
                         },
                         "constraints": null,
                         "required": true,
                         "default": "mtnj309me6"
                       },
-                      "2017488_adiodvpe0_vnf_config_template_version": {
+                      "2017488_pasqualevpe0_vnf_config_template_version": {
                         "type": "string",
                         "description": "VPE Software Version",
                         "entry_schema": null,
                         "inputProperties": {
                           "sourceType": "HEAT",
-                          "vfModuleLabel": "ADIOD_vRE_BV",
+                          "vfModuleLabel": "PASQUALE_vRE_BV",
                           "paramName": "vnf_config_template_version"
                         },
                         "constraints": null,
                         "required": true,
                         "default": "17.2"
                       },
-                      "2017488_adiodvpe0_AIC_CLLI": {
+                      "2017488_pasqualevpe0_AIC_CLLI": {
                         "type": "string",
                         "description": "AIC Site CLLI",
                         "entry_schema": null,
                         "inputProperties": {
                           "sourceType": "HEAT",
-                          "vfModuleLabel": "ADIOD_vRE_BV",
+                          "vfModuleLabel": "PASQUALE_vRE_BV",
                           "paramName": "AIC_CLLI"
                         },
                         "constraints": null,
@@ -1410,28 +1417,28 @@ describe('Drawing board', function () {
                       }
                     }
                   },
-                  "2017488_adiodvpe0..2017488AdiodVpe..ADIOD_vPFE_BV..module-2": {
+                  "2017488_pasqualevpe0..2017488PasqualeVpe..PASQUALE_vPFE_BV..module-2": {
                     "uuid": "b3e8b26e-cff0-49fc-a4e6-f3e16c8440fe",
                     "invariantUuid": "eff8cc59-53a1-4101-aed7-8cf24ecf8339",
                     "customizationUuid": "6e410843-257c-46d9-ba8a-8d94e1362452",
                     "description": null,
-                    "name": "2017488AdiodVpe..ADIOD_vPFE_BV..module-2",
+                    "name": "2017488PasqualeVpe..PASQUALE_vPFE_BV..module-2",
                     "version": "8",
-                    "modelCustomizationName": "2017488AdiodVpe..ADIOD_vPFE_BV..module-2",
+                    "modelCustomizationName": "2017488PasqualeVpe..PASQUALE_vPFE_BV..module-2",
                     "properties": {
                       "minCountInstances": 0,
                       "maxCountInstances": null,
                       "initialCount": 0,
-                      "vfModuleLabel": "ADIOD_vPFE_BV"
+                      "vfModuleLabel": "PASQUALE_vPFE_BV"
                     },
                     "inputs": {
-                      "2017488_adiodvpe0_availability_zone_0": {
+                      "2017488_pasqualevpe0_availability_zone_0": {
                         "type": "string",
                         "description": "The Availability Zone to launch the instance.",
                         "entry_schema": null,
                         "inputProperties": {
                           "sourceType": "HEAT",
-                          "vfModuleLabel": "ADIOD_vPFE_BV",
+                          "vfModuleLabel": "PASQUALE_vPFE_BV",
                           "paramName": "availability_zone_0"
                         },
                         "constraints": null,
@@ -1445,84 +1452,84 @@ describe('Drawing board', function () {
               }
             },
             "networks": {},
-            "collectionResource": {},
+            "collectionResources": {},
             "configurations": {},
             "serviceProxies": {},
             "vfModules": {
-              "2017488_adiodvpe0..2017488AdiodVpe..ADIOD_vRE_BV..module-1": {
+              "2017488_pasqualevpe0..2017488PasqualeVpe..PASQUALE_vRE_BV..module-1": {
                 "uuid": "a5d8df05-11cb-4351-96e0-b6d4168ea4df",
                 "invariantUuid": "7253ff5c-97f0-4b8b-937c-77aeb4d79aa1",
                 "customizationUuid": "f3d97417-0c8d-424e-8ff7-b2eb4fbcecc3",
                 "description": null,
-                "name": "2017488AdiodVpe..ADIOD_vRE_BV..module-1",
+                "name": "2017488PasqualeVpe..PASQUALE_vRE_BV..module-1",
                 "version": "8",
-                "modelCustomizationName": "2017488AdiodVpe..ADIOD_vRE_BV..module-1",
+                "modelCustomizationName": "2017488PasqualeVpe..PASQUALE_vRE_BV..module-1",
                 "properties": {
                   "minCountInstances": 0,
                   "maxCountInstances": null,
                   "initialCount": 0,
-                  "vfModuleLabel": "ADIOD_vRE_BV"
+                  "vfModuleLabel": "PASQUALE_vRE_BV"
                 },
                 "inputs": {
-                  "2017488_adiodvpe0_bandwidth_units": {
+                  "2017488_pasqualevpe0_bandwidth_units": {
                     "type": "string",
                     "description": "Units of bandwidth",
                     "entry_schema": null,
                     "inputProperties": {
                       "sourceType": "HEAT",
-                      "vfModuleLabel": "ADIOD_vRE_BV",
+                      "vfModuleLabel": "PASQUALE_vRE_BV",
                       "paramName": "bandwidth_units"
                     },
                     "constraints": null,
                     "required": true,
                     "default": "Gbps"
                   },
-                  "2017488_adiodvpe0_bandwidth": {
+                  "2017488_pasqualevpe0_bandwidth": {
                     "type": "string",
                     "description": "Requested VPE bandwidth",
                     "entry_schema": null,
                     "inputProperties": {
                       "sourceType": "HEAT",
-                      "vfModuleLabel": "ADIOD_vRE_BV",
+                      "vfModuleLabel": "PASQUALE_vRE_BV",
                       "paramName": "bandwidth"
                     },
                     "constraints": null,
                     "required": true,
                     "default": "10"
                   },
-                  "2017488_adiodvpe0_vnf_instance_name": {
+                  "2017488_pasqualevpe0_vnf_instance_name": {
                     "type": "string",
                     "description": "The hostname assigned to the vpe.",
                     "entry_schema": null,
                     "inputProperties": {
                       "sourceType": "HEAT",
-                      "vfModuleLabel": "ADIOD_vRE_BV",
+                      "vfModuleLabel": "PASQUALE_vRE_BV",
                       "paramName": "vnf_instance_name"
                     },
                     "constraints": null,
                     "required": true,
                     "default": "mtnj309me6"
                   },
-                  "2017488_adiodvpe0_vnf_config_template_version": {
+                  "2017488_pasqualevpe0_vnf_config_template_version": {
                     "type": "string",
                     "description": "VPE Software Version",
                     "entry_schema": null,
                     "inputProperties": {
                       "sourceType": "HEAT",
-                      "vfModuleLabel": "ADIOD_vRE_BV",
+                      "vfModuleLabel": "PASQUALE_vRE_BV",
                       "paramName": "vnf_config_template_version"
                     },
                     "constraints": null,
                     "required": true,
                     "default": "17.2"
                   },
-                  "2017488_adiodvpe0_AIC_CLLI": {
+                  "2017488_pasqualevpe0_AIC_CLLI": {
                     "type": "string",
                     "description": "AIC Site CLLI",
                     "entry_schema": null,
                     "inputProperties": {
                       "sourceType": "HEAT",
-                      "vfModuleLabel": "ADIOD_vRE_BV",
+                      "vfModuleLabel": "PASQUALE_vRE_BV",
                       "paramName": "AIC_CLLI"
                     },
                     "constraints": null,
@@ -1532,45 +1539,45 @@ describe('Drawing board', function () {
                 },
                 "volumeGroupAllowed": true
               },
-              "2017488_adiodvpe0..2017488AdiodVpe..ADIOD_base_vPE_BV..module-0": {
+              "2017488_pasqualevpe0..2017488PasqualeVpe..PASQUALE_base_vPE_BV..module-0": {
                 "uuid": "040e591e-5d30-4e0d-850f-7266e5a8e013",
                 "invariantUuid": "b34833bb-6aa9-4ad6-a831-70b06367a091",
                 "customizationUuid": "5c5f91f9-5e31-4120-b892-5536587ec258",
                 "description": null,
-                "name": "2017488AdiodVpe..ADIOD_base_vPE_BV..module-0",
+                "name": "2017488PasqualeVpe..PASQUALE_base_vPE_BV..module-0",
                 "version": "6",
-                "modelCustomizationName": "2017488AdiodVpe..ADIOD_base_vPE_BV..module-0",
+                "modelCustomizationName": "2017488PasqualeVpe..PASQUALE_base_vPE_BV..module-0",
                 "properties": {
                   "minCountInstances": 1,
                   "maxCountInstances": 1,
                   "initialCount": 1,
-                  "vfModuleLabel": "ADIOD_base_vPE_BV"
+                  "vfModuleLabel": "PASQUALE_base_vPE_BV"
                 },
                 "inputs": {},
                 "volumeGroupAllowed": false
               },
-              "2017488_adiodvpe0..2017488AdiodVpe..ADIOD_vPFE_BV..module-2": {
+              "2017488_pasqualevpe0..2017488PasqualeVpe..PASQUALE_vPFE_BV..module-2": {
                 "uuid": "b3e8b26e-cff0-49fc-a4e6-f3e16c8440fe",
                 "invariantUuid": "eff8cc59-53a1-4101-aed7-8cf24ecf8339",
                 "customizationUuid": "6e410843-257c-46d9-ba8a-8d94e1362452",
                 "description": null,
-                "name": "2017488AdiodVpe..ADIOD_vPFE_BV..module-2",
+                "name": "2017488PasqualeVpe..PASQUALE_vPFE_BV..module-2",
                 "version": "8",
-                "modelCustomizationName": "2017488AdiodVpe..ADIOD_vPFE_BV..module-2",
+                "modelCustomizationName": "2017488PasqualeVpe..PASQUALE_vPFE_BV..module-2",
                 "properties": {
                   "minCountInstances": 0,
                   "maxCountInstances": null,
                   "initialCount": 0,
-                  "vfModuleLabel": "ADIOD_vPFE_BV"
+                  "vfModuleLabel": "PASQUALE_vPFE_BV"
                 },
                 "inputs": {
-                  "2017488_adiodvpe0_availability_zone_0": {
+                  "2017488_pasqualevpe0_availability_zone_0": {
                     "type": "string",
                     "description": "The Availability Zone to launch the instance.",
                     "entry_schema": null,
                     "inputProperties": {
                       "sourceType": "HEAT",
-                      "vfModuleLabel": "ADIOD_vPFE_BV",
+                      "vfModuleLabel": "PASQUALE_vPFE_BV",
                       "paramName": "availability_zone_0"
                     },
                     "constraints": null,
@@ -1582,80 +1589,80 @@ describe('Drawing board', function () {
               }
             },
             "volumeGroups": {
-              "2017488_adiodvpe0..2017488AdiodVpe..ADIOD_vRE_BV..module-1": {
+              "2017488_pasqualevpe0..2017488PasqualeVpe..PASQUALE_vRE_BV..module-1": {
                 "uuid": "a5d8df05-11cb-4351-96e0-b6d4168ea4df",
                 "invariantUuid": "7253ff5c-97f0-4b8b-937c-77aeb4d79aa1",
                 "customizationUuid": "f3d97417-0c8d-424e-8ff7-b2eb4fbcecc3",
                 "description": null,
-                "name": "2017488AdiodVpe..ADIOD_vRE_BV..module-1",
+                "name": "2017488PasqualeVpe..PASQUALE_vRE_BV..module-1",
                 "version": "8",
-                "modelCustomizationName": "2017488AdiodVpe..ADIOD_vRE_BV..module-1",
+                "modelCustomizationName": "2017488PasqualeVpe..PASQUALE_vRE_BV..module-1",
                 "properties": {
                   "minCountInstances": 0,
                   "maxCountInstances": null,
                   "initialCount": 0,
-                  "vfModuleLabel": "ADIOD_vRE_BV"
+                  "vfModuleLabel": "PASQUALE_vRE_BV"
                 },
                 "inputs": {
-                  "2017488_adiodvpe0_bandwidth_units": {
+                  "2017488_pasqualevpe0_bandwidth_units": {
                     "type": "string",
                     "description": "Units of bandwidth",
                     "entry_schema": null,
                     "inputProperties": {
                       "sourceType": "HEAT",
-                      "vfModuleLabel": "ADIOD_vRE_BV",
+                      "vfModuleLabel": "PASQUALE_vRE_BV",
                       "paramName": "bandwidth_units"
                     },
                     "constraints": null,
                     "required": true,
                     "default": "Gbps"
                   },
-                  "2017488_adiodvpe0_bandwidth": {
+                  "2017488_pasqualevpe0_bandwidth": {
                     "type": "string",
                     "description": "Requested VPE bandwidth",
                     "entry_schema": null,
                     "inputProperties": {
                       "sourceType": "HEAT",
-                      "vfModuleLabel": "ADIOD_vRE_BV",
+                      "vfModuleLabel": "PASQUALE_vRE_BV",
                       "paramName": "bandwidth"
                     },
                     "constraints": null,
                     "required": true,
                     "default": "10"
                   },
-                  "2017488_adiodvpe0_vnf_instance_name": {
+                  "2017488_pasqualevpe0_vnf_instance_name": {
                     "type": "string",
                     "description": "The hostname assigned to the vpe.",
                     "entry_schema": null,
                     "inputProperties": {
                       "sourceType": "HEAT",
-                      "vfModuleLabel": "ADIOD_vRE_BV",
+                      "vfModuleLabel": "PASQUALE_vRE_BV",
                       "paramName": "vnf_instance_name"
                     },
                     "constraints": null,
                     "required": true,
                     "default": "mtnj309me6"
                   },
-                  "2017488_adiodvpe0_vnf_config_template_version": {
+                  "2017488_pasqualevpe0_vnf_config_template_version": {
                     "type": "string",
                     "description": "VPE Software Version",
                     "entry_schema": null,
                     "inputProperties": {
                       "sourceType": "HEAT",
-                      "vfModuleLabel": "ADIOD_vRE_BV",
+                      "vfModuleLabel": "PASQUALE_vRE_BV",
                       "paramName": "vnf_config_template_version"
                     },
                     "constraints": null,
                     "required": true,
                     "default": "17.2"
                   },
-                  "2017488_adiodvpe0_AIC_CLLI": {
+                  "2017488_pasqualevpe0_AIC_CLLI": {
                     "type": "string",
                     "description": "AIC Site CLLI",
                     "entry_schema": null,
                     "inputProperties": {
                       "sourceType": "HEAT",
-                      "vfModuleLabel": "ADIOD_vRE_BV",
+                      "vfModuleLabel": "PASQUALE_vRE_BV",
                       "paramName": "AIC_CLLI"
                     },
                     "constraints": null,
@@ -1664,28 +1671,28 @@ describe('Drawing board', function () {
                   }
                 }
               },
-              "2017488_adiodvpe0..2017488AdiodVpe..ADIOD_vPFE_BV..module-2": {
+              "2017488_pasqualevpe0..2017488PasqualeVpe..PASQUALE_vPFE_BV..module-2": {
                 "uuid": "b3e8b26e-cff0-49fc-a4e6-f3e16c8440fe",
                 "invariantUuid": "eff8cc59-53a1-4101-aed7-8cf24ecf8339",
                 "customizationUuid": "6e410843-257c-46d9-ba8a-8d94e1362452",
                 "description": null,
-                "name": "2017488AdiodVpe..ADIOD_vPFE_BV..module-2",
+                "name": "2017488PasqualeVpe..PASQUALE_vPFE_BV..module-2",
                 "version": "8",
-                "modelCustomizationName": "2017488AdiodVpe..ADIOD_vPFE_BV..module-2",
+                "modelCustomizationName": "2017488PasqualeVpe..PASQUALE_vPFE_BV..module-2",
                 "properties": {
                   "minCountInstances": 0,
                   "maxCountInstances": null,
                   "initialCount": 0,
-                  "vfModuleLabel": "ADIOD_vPFE_BV"
+                  "vfModuleLabel": "PASQUALE_vPFE_BV"
                 },
                 "inputs": {
-                  "2017488_adiodvpe0_availability_zone_0": {
+                  "2017488_pasqualevpe0_availability_zone_0": {
                     "type": "string",
                     "description": "The Availability Zone to launch the instance.",
                     "entry_schema": null,
                     "inputProperties": {
                       "sourceType": "HEAT",
-                      "vfModuleLabel": "ADIOD_vPFE_BV",
+                      "vfModuleLabel": "PASQUALE_vPFE_BV",
                       "paramName": "availability_zone_0"
                     },
                     "constraints": null,
@@ -1701,18 +1708,18 @@ describe('Drawing board', function () {
         "serviceInstance": {
           "f4d84bb4-a416-4b4e-997e-0059973630b9": {
             "vnfs": {
-              "2017-488_ADIOD-vPE 0": {
+              "2017-488_PASQUALE-vPE 0": {
                 "rollbackOnFailure": "true",
                 "vfModules": {
-                  "2017488_adiodvpe0..2017488AdiodVpe..ADIOD_base_vPE_BV..module-0": {
-                    "2017488_adiodvpe0..2017488AdiodVpe..ADIOD_base_vPE_BV..module-0eknhp": {
+                  "2017488_pasqualevpe0..2017488PasqualeVpe..PASQUALE_base_vPE_BV..module-0": {
+                    "2017488_pasqualevpe0..2017488PasqualeVpe..PASQUALE_base_vPE_BV..module-0eknhp": {
                       "modelInfo": {
                         "modelInvariantId": "b34833bb-6aa9-4ad6-a831-70b06367a091",
                         "modelVersionId": "040e591e-5d30-4e0d-850f-7266e5a8e013",
-                        "modelName": "2017488AdiodVpe..ADIOD_base_vPE_BV..module-0",
+                        "modelName": "2017488PasqualeVpe..PASQUALE_base_vPE_BV..module-0",
                         "modelVersion": "6",
                         "modelCustomizationId": "5c5f91f9-5e31-4120-b892-5536587ec258",
-                        "modelCustomizationName": "2017488AdiodVpe..ADIOD_base_vPE_BV..module-0"
+                        "modelCustomizationName": "2017488PasqualeVpe..PASQUALE_base_vPE_BV..module-0"
                       },
                       "isMissingData": false,
                       "instanceParams": [
@@ -1731,17 +1738,17 @@ describe('Drawing board', function () {
                 "modelInfo": {
                   "modelInvariantId": "5be7e99e-8eb2-4d97-be63-8081ff3cd10e",
                   "modelVersionId": "ea81d6f7-0861-44a7-b7d5-d173b562c350",
-                  "modelName": "2017-488_ADIOD-vPE",
+                  "modelName": "2017-488_PASQUALE-vPE",
                   "modelVersion": "9.0",
                   "modelCustomizationId": "41516cc6-5098-4b40-a619-f8d5f55fc4d8",
-                  "modelCustomizationName": "2017-488_ADIOD-vPE 0"
+                  "modelCustomizationName": "2017-488_PASQUALE-vPE 0"
                 }
               },
-              "2017-488_ADIOD-vPE 0:0001": {
+              "2017-488_PASQUALE-vPE 0:0001": {
                 "rollbackOnFailure": "true",
                 "vfModules": {},
                 "isMissingData": false,
-                "originalName": "2017-488_ADIOD-vPE 0",
+                "originalName": "2017-488_PASQUALE-vPE 0",
                 "productFamilyId": "ebc3bc3d-62fd-4a3f-a037-f619df4ff034",
                 "lcpCloudRegionId": "hvf6",
                 "tenantId": "bae71557c5bb4d5aac6743a4e5f1d054",
@@ -1750,23 +1757,23 @@ describe('Drawing board', function () {
                 "modelInfo": {
                   "modelInvariantId": "5be7e99e-8eb2-4d97-be63-8081ff3cd10e",
                   "modelVersionId": "ea81d6f7-0861-44a7-b7d5-d173b562c350",
-                  "modelName": "2017-488_ADIOD-vPE",
+                  "modelName": "2017-488_PASQUALE-vPE",
                   "modelVersion": "9.0",
                   "modelCustomizationId": "41516cc6-5098-4b40-a619-f8d5f55fc4d8",
-                  "modelCustomizationName": "2017-488_ADIOD-vPE 0"
+                  "modelCustomizationName": "2017-488_PASQUALE-vPE 0"
                 }
               }
             },
             "instanceParams": [
               {
-                "2017488_adiodvpe0_ASN": "AV_vPE"
+                "2017488_pasqualevpe0_ASN": "AV_vPE"
               }
             ],
             "validationCounter": 0,
             "globalSubscriberId": "e433710f-9217-458d-a79d-1c7aff376d89",
             "productFamilyId": "ebc3bc3d-62fd-4a3f-a037-f619df4ff034",
             "subscriptionServiceType": "TYLER SILVIA",
-            "lcpCloudRegionId": "JANET25",
+            "lcpCloudRegionId": "AAIAIC25",
             "tenantId": "092eb9e8e4b7412e8787dd091bc58e86",
             "aicZoneId": "JAG1",
             "projectName": "x1",
@@ -1776,7 +1783,7 @@ describe('Drawing board', function () {
             "modelInfo": {
               "modelInvariantId": "598e3f9e-3244-4d8f-a8e0-0e5d7a29eda9",
               "modelVersionId": "f4d84bb4-a416-4b4e-997e-0059973630b9",
-              "modelName": "ADIOD vMX vPE_BV Service 488",
+              "modelName": "PASQUALE vMX vPE_BV Service 488",
               "modelVersion": "1.0"
             },
             "tenantName": "USP-SIP-IC-24335-T-01",
@@ -1790,8 +1797,8 @@ describe('Drawing board', function () {
         "lcpRegionsAndTenants": {
           "lcpRegionList": [
             {
-              "id": "JANET25",
-              "name": "JANET25",
+              "id": "AAIAIC25",
+              "name": "AAIAIC25",
               "isPermitted": true
             },
             {
@@ -1801,7 +1808,7 @@ describe('Drawing board', function () {
             }
           ],
           "lcpRegionsTenantsMap": {
-            "JANET25": [
+            "AAIAIC25": [
               {
                 "id": "092eb9e8e4b7412e8787dd091bc58e86",
                 "name": "USP-SIP-IC-24335-T-01",
@@ -1815,8 +1822,128 @@ describe('Drawing board', function () {
                 "isPermitted": true
               },
               {
-                "id": "d0a3e3f2964542259d155a81c41aadc3",
-                "name": "test-hvf6-09",
+                "id": "229bcdc6eaeb4ca59d55221141d01f8e",
+                "name": "AIN Web Tool-15-D-STTest2",
+                "isPermitted": true
+              },
+              {
+                "id": "1178612d2b394be4834ad77f567c0af2",
+                "name": "AIN Web Tool-15-D-SSPtestcustome",
+                "isPermitted": true
+              },
+              {
+                "id": "19c5ade915eb461e8af52fb2fd8cd1f2",
+                "name": "AIN Web Tool-15-D-UncheckedEcopm",
+                "isPermitted": true
+              },
+              {
+                "id": "de007636e25249238447264a988a927b",
+                "name": "AIN Web Tool-15-D-dfsdf",
+                "isPermitted": true
+              },
+              {
+                "id": "62f29b3613634ca6a3065cbe0e020c44",
+                "name": "AIN/SMS-16-D-Multiservices1",
+                "isPermitted": true
+              },
+              {
+                "id": "649289e30d3244e0b48098114d63c2aa",
+                "name": "AIN Web Tool-15-D-SSPST66",
+                "isPermitted": true
+              },
+              {
+                "id": "3f21eeea6c2c486bba31dab816c05a32",
+                "name": "AIN Web Tool-15-D-ASSPST47",
+                "isPermitted": true
+              },
+              {
+                "id": "f60ce21d3ee6427586cff0d22b03b773",
+                "name": "CESAR-100-D-sspjg67246",
+                "isPermitted": true
+              },
+              {
+                "id": "8774659e425f479895ae091bb5d46560",
+                "name": "CESAR-100-D-sspjg68359",
+                "isPermitted": true
+              },
+              {
+                "id": "624eb554b0d147c19ff8885341760481",
+                "name": "AINWebTool-15-D-iftach",
+                "isPermitted": true
+              },
+              {
+                "id": "214f55f5fc414c678059c383b03e4962",
+                "name": "CESAR-100-D-sspjg612401",
+                "isPermitted": true
+              },
+              {
+                "id": "c90666c291664841bb98e4d981ff1db5",
+                "name": "CESAR-100-D-sspjg621340",
+                "isPermitted": true
+              },
+              {
+                "id": "ce5b6bc5c7b348e1bf4b91ac9a174278",
+                "name": "sspjg621351cloned",
+                "isPermitted": true
+              },
+              {
+                "id": "b386b768a3f24c8e953abbe0b3488c02",
+                "name": "AINWebTool-15-D-eteancomp",
+                "isPermitted": true
+              },
+              {
+                "id": "dc6c4dbfd225474e9deaadd34968646c",
+                "name": "AINWebTool-15-T-SPFET",
+                "isPermitted": true
+              },
+              {
+                "id": "02cb5030e9914aa4be120bd9ed1e19eb",
+                "name": "AINWebTool-15-X-eeweww",
+                "isPermitted": true
+              },
+              {
+                "id": "f2f3830e4c984d45bcd00e1a04158a79",
+                "name": "CESAR-100-D-spjg61909",
+                "isPermitted": true
+              },
+              {
+                "id": "05b91bd5137f4929878edd965755c06d",
+                "name": "CESAR-100-D-sspjg621512cloned",
+                "isPermitted": true
+              },
+              {
+                "id": "7002fbe8482d4a989ddf445b1ce336e0",
+                "name": "AINWebTool-15-X-vdr",
+                "isPermitted": true
+              },
+              {
+                "id": "4008522be43741dcb1f5422022a2aa0b",
+                "name": "AINWebTool-15-D-ssasa",
+                "isPermitted": true
+              },
+              {
+                "id": "f44e2e96a1b6476abfda2fa407b00169",
+                "name": "AINWebTool-15-D-PFNPT",
+                "isPermitted": true
+              },
+              {
+                "id": "b69a52bec8a84669a37a1e8b72708be7",
+                "name": "AINWebTool-15-X-vdre",
+                "isPermitted": true
+              },
+              {
+                "id": "fac7d9fd56154caeb9332202dcf2969f",
+                "name": "AINWebTool-15-X-NONPODECOMP",
+                "isPermitted": true
+              },
+              {
+                "id": "2d34d8396e194eb49969fd61ffbff961",
+                "name": "DN5242-Nov16-T5",
+                "isPermitted": true
+              },
+              {
+                "id": "cb42a77ff45b48a8b8deb83bb64acc74",
+                "name": "ro-T11",
                 "isPermitted": true
               },
               {
@@ -1824,6 +1951,16 @@ describe('Drawing board', function () {
                 "name": "ro-T112",
                 "isPermitted": true
               },
+              {
+                "id": "4914ab0ab3a743e58f0eefdacc1dde77",
+                "name": "DN5242-Nov21-T1",
+                "isPermitted": true
+              },
+              {
+                "id": "d0a3e3f2964542259d155a81c41aadc3",
+                "name": "test-hvf6-09",
+                "isPermitted": true
+              },
               {
                 "id": "cbb99fe4ada84631b7baf046b6fd2044",
                 "name": "DN5242-Nov16-T3",
@@ -1912,7 +2049,7 @@ describe('Drawing board', function () {
         "productFamilies": [
           {
             "id": "ebc3bc3d-62fd-4a3f-a037-f619df4ff034",
-            "name": "SCOTTIE",
+            "name": "ERICA",
             "isPermitted": true
           },
           {
@@ -1937,7 +2074,7 @@ describe('Drawing board', function () {
           },
           {
             "id": "323d69d9-2efe-4r45-ay0a-89ea7ard4e6f",
-            "name": "vSCP",
+            "name": "vEsmeralda",
             "isPermitted": true
           },
           {
@@ -1981,7 +2118,7 @@ describe('Drawing board', function () {
             "isPermitted": true
           },
           {
-            "id": "Cisneros",
+            "id": "vMuriel",
             "name": "vMuriel",
             "isPermitted": true
           },
@@ -2007,7 +2144,7 @@ describe('Drawing board', function () {
           },
           {
             "id": "d7bb0a21-66f2-4e6d-87d9-9ef3ced63ae4",
-            "name": "Josefina",
+            "name": "JOSEFINA",
             "isPermitted": true
           },
           {
@@ -2055,7 +2192,7 @@ describe('Drawing board', function () {
             },
             {
               "id": "6",
-              "name": "vSEGW",
+              "name": "vPorfirio",
               "isPermitted": false
             },
             {
@@ -2070,7 +2207,7 @@ describe('Drawing board', function () {
             },
             {
               "id": "9",
-              "name": "vMME",
+              "name": "vFLORENCE",
               "isPermitted": false
             },
             {
@@ -2080,7 +2217,7 @@ describe('Drawing board', function () {
             },
             {
               "id": "11",
-              "name": "vSCP",
+              "name": "vEsmeralda",
               "isPermitted": false
             },
             {
@@ -2090,7 +2227,7 @@ describe('Drawing board', function () {
             },
             {
               "id": "13",
-              "name": "vMMSC",
+              "name": "vWINIFRED",
               "isPermitted": false
             },
             {
@@ -2134,186 +2271,932 @@ describe('Drawing board', function () {
             "name": "UUUAIAAI-YYY1"
           },
           {
-            "id": "AVT1",
-            "name": "AVTRFLHD-AVT1"
+            "id": "BAN1",
+            "name": "VSDKYUTP-BAN1"
           },
           {
-            "id": "ATL34",
-            "name": "ATLSANAI-ATL34"
-          }
-        ],
-        "categoryParameters": {
-          "owningEntityList": [
-            {
-              "id": "aaa1",
-              "name": "aaa1"
-            },
-            {
-              "id": "d61e6f2d-12fa-4cc2-91df-7c244011d6fc",
-              "name": "WayneHolland"
-            },
-            {
-              "id": "Melissa",
-              "name": "Melissa"
-            }
-          ],
-          "projectList": [
-            {
-              "id": "WATKINS",
-              "name": "WATKINS"
-            },
-            {
-              "id": "x1",
-              "name": "x1"
-            },
-            {
-              "id": "yyy1",
-              "name": "yyy1"
-            }
-          ],
-          "lineOfBusinessList": [
-            {
-              "id": "ONAP",
-              "name": "ONAP"
-            },
-            {
-              "id": "zzz1",
-              "name": "zzz1"
-            }
-          ],
-          "platformList": [
-            {
-              "id": "platform",
-              "name": "platform"
-            },
-            {
-              "id": "xxx1",
-              "name": "xxx1"
-            }
-          ]
-        },
-        "type": "[CATEGORY_PARAMETERS] Update"
-      }
-    }
-  }
-
-  function getReduxWithVNFMissingData() {
-    return {
-      "global": {
-        "name": null,
-        "flags": {
-          "FLAG_NETWORK_TO_ASYNC_INSTANTIATION": false,
-          "FLAG_SHOW_ASSIGNMENTS": true,
-          "FLAG_FABRIC_CONFIGURATION_ASSIGNMENTS": true,
-          "FLAG_UNASSIGN_SERVICE": true,
-          "FLAG_SHOW_VERIFY_SERVICE": false,
-          "FLAG_COLLECTION_RESOURCE_SUPPORT": true,
-          "FLAG_DUPLICATE_VNF": true,
-          "FLAG_SERVICE_MODEL_CACHE": true,
-          "CREATE_INSTANCE_TEST": false,
-          "FLAG_SETTING_DEFAULTS_IN_DRAWING_BOARD": true,
-          "FLAG_ASYNC_INSTANTIATION": true,
-          "FLAG_ASYNC_JOBS": true,
-          "EMPTY_DRAWING_BOARD_TEST": false,
-          "FLAG_ADD_MSO_TESTAPI_FIELD": true
-        },
-        "type": "[FLAGS] Update"
-      },
-      "service": {
-        "serviceHierarchy": {
-          "f4d84bb4-a416-4b4e-997e-0059973630b9": {
-            "service": {
-              "uuid": "f4d84bb4-a416-4b4e-997e-0059973630b9",
-              "invariantUuid": "598e3f9e-3244-4d8f-a8e0-0e5d7a29eda9",
-              "name": "ADIOD vMX vPE_BV Service 488",
-              "version": "1.0",
-              "toscaModelURL": null,
-              "category": "Network L1-3",
-              "serviceType": "",
-              "serviceRole": "",
-              "description": "ADIOD vMX vPE based on Juniper 17.2 release. Updated with updated VF for v8.0 of VLM",
-              "serviceEcompNaming": "true",
-              "instantiationType": "Macro",
-              "inputs": {
-                "2017488_adiodvpe0_ASN": {
-                  "type": "string",
-                  "description": "AV/PE",
-                  "entry_schema": null,
-                  "inputProperties": null,
-                  "constraints": [],
-                  "required": true,
-                  "default": "AV_vPE"
-                }
-              }
-            },
-            "vnfs": {
-              "2017-488_ADIOD-vPE 0": {
-                "uuid": "ea81d6f7-0861-44a7-b7d5-d173b562c350",
-                "invariantUuid": "5be7e99e-8eb2-4d97-be63-8081ff3cd10e",
-                "description": "Name ADIOD vPE Description The provider edge function for the ADIOD service supported by the Junipers VMX product Category Router Vendor Juniper Vendor Release Code 17.2 Owners Mary Fragale. Updated 9-25 to use v8.0 of the Juniper Valid 2 VLM",
-                "name": "2017-488_ADIOD-vPE",
-                "version": "9.0",
-                "customizationUuid": "41516cc6-5098-4b40-a619-f8d5f55fc4d8",
-                "inputs": {
-                  "vnf_config_template_version": {
-                    "type": "string",
-                    "description": "VPE Software Version",
-                    "entry_schema": null,
-                    "inputProperties": null,
-                    "constraints": [],
-                    "required": true,
-                    "default": "17.2"
-                  },
-                  "bandwidth_units": {
-                    "type": "string",
-                    "description": "Units of bandwidth",
-                    "entry_schema": null,
-                    "inputProperties": null,
-                    "constraints": [],
-                    "required": true,
-                    "default": "Gbps"
-                  },
-                  "bandwidth": {
-                    "type": "string",
-                    "description": "Requested VPE bandwidth",
-                    "entry_schema": null,
-                    "inputProperties": null,
-                    "constraints": [],
-                    "required": true,
-                    "default": "10"
-                  },
-                  "AIC_CLLI": {
-                    "type": "string",
-                    "description": "AIC Site CLLI",
-                    "entry_schema": null,
-                    "inputProperties": null,
-                    "constraints": [],
-                    "required": true,
-                    "default": "ATLMY8GA"
-                  },
-                  "availability_zone_0": {
-                    "type": "string",
-                    "description": "The Availability Zone to launch the instance.",
-                    "entry_schema": null,
-                    "inputProperties": null,
-                    "constraints": [],
-                    "required": true,
-                    "default": "mtpocfo-kvm-az01"
-                  },
-                  "ASN": {
-                    "type": "string",
-                    "description": "AV/PE",
-                    "entry_schema": null,
-                    "inputProperties": null,
-                    "constraints": [],
-                    "required": true,
-                    "default": "AV_vPE"
-                  },
-                  "vnf_instance_name": {
-                    "type": "string",
-                    "description": "The hostname assigned to the vpe.",
-                    "entry_schema": null,
-                    "inputProperties": null,
+            "id": "DKJ1",
+            "name": "DKJSJDKA-DKJ1"
+          },
+          {
+            "id": "MCS1",
+            "name": "ASACMAMS-MCS1"
+          },
+          {
+            "id": "UIO1",
+            "name": "uioclli1-UIO1"
+          },
+          {
+            "id": "RAJ1",
+            "name": "YGBIJNLQ-RAJ1"
+          },
+          {
+            "id": "OPA1",
+            "name": "opaclli1-OPA1"
+          },
+          {
+            "id": "SDE1",
+            "name": "ZXCVBNMA-SDE1"
+          },
+          {
+            "id": "VEN2",
+            "name": "FGHJUHIL-VEN2"
+          },
+          {
+            "id": "ORL1",
+            "name": "ORLDFLMA-ORL1"
+          },
+          {
+            "id": "JAD1",
+            "name": "JADECLLI-JAD1"
+          },
+          {
+            "id": "ZXL1",
+            "name": "LWLWCANN-ZXL1"
+          },
+          {
+            "id": "CKL1",
+            "name": "CLKSKCKK-CKL1"
+          },
+          {
+            "id": "SDF1",
+            "name": "sdfclli1-SDF1"
+          },
+          {
+            "id": "RAD1",
+            "name": "RADICAL1-RAD1"
+          },
+          {
+            "id": "KIT1",
+            "name": "BHYJFGLN-KIT1"
+          },
+          {
+            "id": "REL1",
+            "name": "INGERFGT-REL1"
+          },
+          {
+            "id": "JNL1",
+            "name": "CJALSDAC-JNL1"
+          },
+          {
+            "id": "OLK1",
+            "name": "OLKOLKLS-OLK1"
+          },
+          {
+            "id": "CHI1",
+            "name": "CHILLIWE-CHI1"
+          },
+          {
+            "id": "UUU4",
+            "name": "UUUAAAUU-UUU4"
+          },
+          {
+            "id": "TUF1",
+            "name": "TUFCLLI1-TUF1"
+          },
+          {
+            "id": "KJN1",
+            "name": "CKALDKSA-KJN1"
+          },
+          {
+            "id": "SAM1",
+            "name": "SNDGCA64-SAN1"
+          },
+          {
+            "id": "SCK1",
+            "name": "SCKSCKSK-SCK1"
+          },
+          {
+            "id": "HJH1",
+            "name": "AOEEQQQD-HJH1"
+          },
+          {
+            "id": "HGD1",
+            "name": "SDFQWHGD-HGD1"
+          },
+          {
+            "id": "KOR1",
+            "name": "HYFLNBVT-KOR1"
+          },
+          {
+            "id": "ATL43",
+            "name": "AICLOCID-ATL43"
+          },
+          {
+            "id": "ATL54",
+            "name": "AICFTAAI-ATL54"
+          },
+          {
+            "id": "ATL66",
+            "name": "CLLIAAII-ATL66"
+          },
+          {
+            "id": "VEL1",
+            "name": "BNMLKUIK-VEL1"
+          },
+          {
+            "id": "ICC1",
+            "name": "SANJITAT-ICC1"
+          },
+          {
+            "id": "MNT11",
+            "name": "WSXEFBTH-MNT11"
+          },
+          {
+            "id": "DEF2",
+            "name": "WSBHGTYL-DEF2"
+          },
+          {
+            "id": "MAD11",
+            "name": "SDFQWGKL-MAD11"
+          },
+          {
+            "id": "OLG1",
+            "name": "OLHOLHOL-OLG1"
+          },
+          {
+            "id": "GAR1",
+            "name": "NGFVSJKO-GAR1"
+          },
+          {
+            "id": "SAN22",
+            "name": "GNVLSCTL-SAN22"
+          },
+          {
+            "id": "HRG1",
+            "name": "HRGHRGGS-HRG1"
+          },
+          {
+            "id": "JCS1",
+            "name": "JCSJSCJS-JCS1"
+          },
+          {
+            "id": "DHA12",
+            "name": "WSXEDECF-DHA12"
+          },
+          {
+            "id": "HJE1",
+            "name": "AOEEWWWD-HJE1"
+          },
+          {
+            "id": "NCA1",
+            "name": "NCANCANN-NCA1"
+          },
+          {
+            "id": "IOP1",
+            "name": "iopclli1-IOP1"
+          },
+          {
+            "id": "RTY1",
+            "name": "rtyclli1-RTY1"
+          },
+          {
+            "id": "KAP1",
+            "name": "HIOUYTRQ-KAP1"
+          },
+          {
+            "id": "ZEN1",
+            "name": "ZENCLLI1-ZEN1"
+          },
+          {
+            "id": "HKA1",
+            "name": "JAKHLASS-HKA1"
+          },
+          {
+            "id": "CQK1",
+            "name": "CQKSCAKK-CQK1"
+          },
+          {
+            "id": "SAI1",
+            "name": "UBEKQLPD-SAI1"
+          },
+          {
+            "id": "ERT1",
+            "name": "ertclli1-ERT1"
+          },
+          {
+            "id": "IBB1",
+            "name": "PLMKOIJU-IBB1"
+          },
+          {
+            "id": "TIR2",
+            "name": "PLKINHYI-TIR2"
+          },
+          {
+            "id": "HSD1",
+            "name": "CHASKCDS-HSD1"
+          },
+          {
+            "id": "SLF78",
+            "name": "SDCTLFN1-SLF78"
+          },
+          {
+            "id": "SEE78",
+            "name": "SDCTEEE4-SEE78"
+          },
+          {
+            "id": "SAN13",
+            "name": "TOKYJPFA-SAN13"
+          },
+          {
+            "id": "SAA78",
+            "name": "SDCTAAA1-SAA78"
+          },
+          {
+            "id": "LUC1",
+            "name": "ATLDFGYC-LUC1"
+          },
+          {
+            "id": "AMD13",
+            "name": "MEMATLAN-AMD13"
+          },
+          {
+            "id": "TOR1",
+            "name": "TOROONXN-TOR1"
+          },
+          {
+            "id": "QWE1",
+            "name": "QWECLLI1-QWE1"
+          },
+          {
+            "id": "ZOG1",
+            "name": "ZOGASTRO-ZOG1"
+          },
+          {
+            "id": "CAL33",
+            "name": "CALIFORN-CAL33"
+          },
+          {
+            "id": "SHH78",
+            "name": "SDIT1HHH-SHH78"
+          },
+          {
+            "id": "DSA1",
+            "name": "LKJHGFDS-DSA1"
+          },
+          {
+            "id": "CLG1",
+            "name": "CLGRABAD-CLG1"
+          },
+          {
+            "id": "BNA1",
+            "name": "BNARAGBK-BNA1"
+          },
+          {
+            "id": "ATL84",
+            "name": "CANTTCOC-ATL84"
+          },
+          {
+            "id": "APP1",
+            "name": "WBHGTYUI-APP1"
+          },
+          {
+            "id": "RJN1",
+            "name": "RJNRBZAW-RJN1"
+          },
+          {
+            "id": "EHH78",
+            "name": "SDCSHHH5-EHH78"
+          },
+          {
+            "id": "mac10",
+            "name": "PKGTESTF-mac10"
+          },
+          {
+            "id": "SXB78",
+            "name": "SDCTGXB1-SXB78"
+          },
+          {
+            "id": "SAX78",
+            "name": "SDCTAXG1-SAX78"
+          },
+          {
+            "id": "SYD1",
+            "name": "SYDNAUBV-SYD1"
+          },
+          {
+            "id": "TOK1",
+            "name": "TOKYJPFA-TOK1"
+          },
+          {
+            "id": "KGM2",
+            "name": "KGMTNC20-KGM2"
+          },
+          {
+            "id": "DCC1b",
+            "name": "POIUYTGH-DCC1b"
+          },
+          {
+            "id": "SKK78",
+            "name": "SDCTKKK1-SKK78"
+          },
+          {
+            "id": "SGG78",
+            "name": "SDCTGGG1-SGG78"
+          },
+          {
+            "id": "SJJ78",
+            "name": "SDCTJJJ1-SJJ78"
+          },
+          {
+            "id": "SBX78",
+            "name": "SDCTBXG1-SBX78"
+          },
+          {
+            "id": "LAG1",
+            "name": "LARGIZON-LAG1"
+          },
+          {
+            "id": "IAA1",
+            "name": "QAZXSWED-IAA1"
+          },
+          {
+            "id": "POI1",
+            "name": "PLMNJKIU-POI1"
+          },
+          {
+            "id": "LAG1a",
+            "name": "LARGIZON-LAG1a"
+          },
+          {
+            "id": "PBL1",
+            "name": "PBLAPBAI-PBL1"
+          },
+          {
+            "id": "LAG45",
+            "name": "LARGIZON-LAG1a"
+          },
+          {
+            "id": "MAR1",
+            "name": "MNBVCXZM-MAR1"
+          },
+          {
+            "id": "HST70",
+            "name": "HSTNTX70-HST70"
+          },
+          {
+            "id": "DCC1a",
+            "name": "POIUYTGH-DCC1a"
+          },
+          {
+            "id": "TOL1",
+            "name": "TOLDOH21-TOL1"
+          },
+          {
+            "id": "LON1",
+            "name": "LONEENCO-LON1"
+          },
+          {
+            "id": "SJU78",
+            "name": "SDIT1JUB-SJU78"
+          },
+          {
+            "id": "STN27",
+            "name": "HSTNTX01-STN27"
+          },
+          {
+            "id": "SSW56",
+            "name": "ss8126GT-SSW56"
+          },
+          {
+            "id": "SBB78",
+            "name": "SDIT1BBB-SBB78"
+          },
+          {
+            "id": "DCC3",
+            "name": "POIUYTGH-DCC3"
+          },
+          {
+            "id": "GNV1",
+            "name": "GNVLSCTL-GNV1"
+          },
+          {
+            "id": "WAS1",
+            "name": "WASHDCSW-WAS1"
+          },
+          {
+            "id": "TOY1",
+            "name": "TORYONNZ-TOY1"
+          },
+          {
+            "id": "STT1",
+            "name": "STTLWA02-STT1"
+          },
+          {
+            "id": "STG1",
+            "name": "STTGGE62-STG1"
+          },
+          {
+            "id": "SLL78",
+            "name": "SDCTLLL1-SLL78"
+          },
+          {
+            "id": "SBU78",
+            "name": "SDIT1BUB-SBU78"
+          },
+          {
+            "id": "ATL2",
+            "name": "ATLNGANW-ATL2"
+          },
+          {
+            "id": "BOT1",
+            "name": "BOTHWAKY-BOT1"
+          },
+          {
+            "id": "SNG1",
+            "name": "SNGPSIAU-SNG1"
+          },
+          {
+            "id": "NYC1",
+            "name": "NYCMNY54-NYC1"
+          },
+          {
+            "id": "LAG1b",
+            "name": "LARGIZON-LAG1b"
+          },
+          {
+            "id": "AMD15",
+            "name": "AMDFAA01-AMD15"
+          },
+          {
+            "id": "SNA1",
+            "name": "SNANTXCA-SNA1"
+          },
+          {
+            "id": "PLT1",
+            "name": "PLTNCA60-PLT1"
+          },
+          {
+            "id": "TLP1",
+            "name": "TLPNXM18-TLP1"
+          },
+          {
+            "id": "SDD81",
+            "name": "SAIT1DD6-SDD81"
+          },
+          {
+            "id": "DCC1",
+            "name": "POIUYTGH-DCC1"
+          },
+          {
+            "id": "DCC2",
+            "name": "POIUYTGH-DCC2"
+          },
+          {
+            "id": "OKC1",
+            "name": "OKCBOK55-OKC1"
+          },
+          {
+            "id": "PAR1",
+            "name": "PARSFRCG-PAR1"
+          },
+          {
+            "id": "TES36",
+            "name": "ABCEETES-TES36"
+          },
+          {
+            "id": "COM1",
+            "name": "PLMKOPIU-COM1"
+          },
+          {
+            "id": "ANI1",
+            "name": "ATLNGTRE-ANI1"
+          },
+          {
+            "id": "SDG78",
+            "name": "SDIT1BDG-SDG78"
+          },
+          {
+            "id": "mac20",
+            "name": "PKGTESTF-mac20"
+          },
+          {
+            "id": "DSF45",
+            "name": "DSFBG123-DSF45"
+          },
+          {
+            "id": "HST25",
+            "name": "HSTNTX01-HST25"
+          },
+          {
+            "id": "AMD18",
+            "name": "AUDIMA01-AMD18"
+          },
+          {
+            "id": "SAA80",
+            "name": "SAIT9AA3-SAA80"
+          },
+          {
+            "id": "SSA56",
+            "name": "SSIT2AA7-SSA56"
+          },
+          {
+            "id": "SDD82",
+            "name": "SAIT1DD9-SDD82"
+          },
+          {
+            "id": "JCV1",
+            "name": "JCVLFLBW-JCV1"
+          },
+          {
+            "id": "SUL2",
+            "name": "WERTYUJK-SUL2"
+          },
+          {
+            "id": "PUR1",
+            "name": "purelyde-PUR1"
+          },
+          {
+            "id": "FDE55",
+            "name": "FDERT555-FDE55"
+          },
+          {
+            "id": "SITE",
+            "name": "LONEENCO-SITE"
+          },
+          {
+            "id": "ATL1",
+            "name": "ATLNGAMA-ATL1"
+          },
+          {
+            "id": "JUL1",
+            "name": "ZXCVBNMM-JUL1"
+          },
+          {
+            "id": "TAT34",
+            "name": "TESAAISB-TAT34"
+          },
+          {
+            "id": "XCP12",
+            "name": "CHKGH123-XCP12"
+          },
+          {
+            "id": "RAI1",
+            "name": "poiuytre-RAI1"
+          },
+          {
+            "id": "HPO1",
+            "name": "ATLNGAUP-HPO1"
+          },
+          {
+            "id": "KJF12",
+            "name": "KJFDH123-KJF12"
+          },
+          {
+            "id": "SCC80",
+            "name": "SAIT9CC3-SCC80"
+          },
+          {
+            "id": "SAA12",
+            "name": "SAIT9AF8-SAA12"
+          },
+          {
+            "id": "SAA14",
+            "name": "SAIT1AA9-SAA14"
+          },
+          {
+            "id": "ATL35",
+            "name": "TTESSAAI-ATL35"
+          },
+          {
+            "id": "CWY1",
+            "name": "CWYMOWBS-CWY1"
+          },
+          {
+            "id": "ATL76",
+            "name": "TELEPAAI-ATL76"
+          },
+          {
+            "id": "DSL12",
+            "name": "DSLFK242-DSL12"
+          },
+          {
+            "id": "ATL53",
+            "name": "AAIATLTE-ATL53"
+          },
+          {
+            "id": "SAA11",
+            "name": "SAIT9AA2-SAA11"
+          },
+          {
+            "id": "ATL62",
+            "name": "TESSASCH-ATL62"
+          },
+          {
+            "id": "AUG1",
+            "name": "ASDFGHJK-AUG1"
+          },
+          {
+            "id": "POI22",
+            "name": "POIUY123-POI22"
+          },
+          {
+            "id": "SAA13",
+            "name": "SAIT1AA9-SAA13"
+          },
+          {
+            "id": "BHY17",
+            "name": "BHYTFRF3-BHY17"
+          },
+          {
+            "id": "LIS1",
+            "name": "HOSTPROF-LIS1"
+          },
+          {
+            "id": "SIP1",
+            "name": "ZXCVBNMK-SIP1"
+          },
+          {
+            "id": "ATL99",
+            "name": "TEESTAAI-ATL43"
+          },
+          {
+            "id": "ATL64",
+            "name": "FORLOAAJ-ATL64"
+          },
+          {
+            "id": "TAT33",
+            "name": "TESAAISA-TAT33"
+          },
+          {
+            "id": "RAD10",
+            "name": "INDIPUNE-RAD10"
+          },
+          {
+            "id": "RTW5",
+            "name": "BHYTFRY4-RTW5"
+          },
+          {
+            "id": "JGS1",
+            "name": "KSJKKKKK-JGS1"
+          },
+          {
+            "id": "ATL98",
+            "name": "TEESTAAI-ATL43"
+          },
+          {
+            "id": "WAN1",
+            "name": "LEIWANGW-WAN1"
+          },
+          {
+            "id": "ATL44",
+            "name": "ATLSANAB-ATL44"
+          },
+          {
+            "id": "RTD2",
+            "name": "BHYTFRk4-RTD2"
+          },
+          {
+            "id": "NIR1",
+            "name": "ORFLMANA-NIR1"
+          },
+          {
+            "id": "ATL75",
+            "name": "SANAAIRE-ATL75"
+          },
+          {
+            "id": "NUM1",
+            "name": "QWERTYUI-NUM1"
+          },
+          {
+            "id": "hvf32",
+            "name": "MDTWNJ21-hvf32"
+          },
+          {
+            "id": "RTZ4",
+            "name": "BHYTFRZ6-RTZ4"
+          },
+          {
+            "id": "ATL56",
+            "name": "ATLSANAC-ATL56"
+          },
+          {
+            "id": "AMS1",
+            "name": "AMSTNLBW-AMS1"
+          },
+          {
+            "id": "RCT1",
+            "name": "AMSTERNL-RCT1"
+          },
+          {
+            "id": "JAN1",
+            "name": "ORFLMATT-JAN1"
+          },
+          {
+            "id": "ABC14",
+            "name": "TESAAISA-ABC14"
+          },
+          {
+            "id": "TAT37",
+            "name": "TESAAISD-TAT37"
+          },
+          {
+            "id": "MIC54",
+            "name": "MICHIGAN-MIC54"
+          },
+          {
+            "id": "ABC11",
+            "name": "ATLSANAI-ABC11"
+          },
+          {
+            "id": "AMF11",
+            "name": "AMDOCS01-AMF11"
+          },
+          {
+            "id": "ATL63",
+            "name": "ATLSANEW-ATL63"
+          },
+          {
+            "id": "ABC12",
+            "name": "ATLSECIA-ABC12"
+          },
+          {
+            "id": "hvf20",
+            "name": "MDTWNJ21-hvf20"
+          },
+          {
+            "id": "ABC15",
+            "name": "AAITESAN-ABC15"
+          },
+          {
+            "id": "AVT1",
+            "name": "AVTRFLHD-AVT1"
+          },
+          {
+            "id": "ATL34",
+            "name": "ATLSANAI-ATL34"
+          }
+        ],
+        "categoryParameters": {
+          "owningEntityList": [
+            {
+              "id": "aaa1",
+              "name": "aaa1"
+            },
+            {
+              "id": "d61e6f2d-12fa-4cc2-91df-7c244011d6fc",
+              "name": "WayneHolland"
+            },
+            {
+              "id": "Melissa",
+              "name": "Melissa"
+            }
+          ],
+          "projectList": [
+            {
+              "id": "WATKINS",
+              "name": "WATKINS"
+            },
+            {
+              "id": "x1",
+              "name": "x1"
+            },
+            {
+              "id": "yyy1",
+              "name": "yyy1"
+            }
+          ],
+          "lineOfBusinessList": [
+            {
+              "id": "ONAP",
+              "name": "ONAP"
+            },
+            {
+              "id": "zzz1",
+              "name": "zzz1"
+            }
+          ],
+          "platformList": [
+            {
+              "id": "platform",
+              "name": "platform"
+            },
+            {
+              "id": "xxx1",
+              "name": "xxx1"
+            }
+          ]
+        },
+        "type": "[CATEGORY_PARAMETERS] Update"
+      }
+    }
+  }
+
+  function getReduxWithVNFMissingData() {
+    return {
+      "global": {
+        "name": null,
+        "flags": {
+          "FLAG_NETWORK_TO_ASYNC_INSTANTIATION": false,
+          "FLAG_SHOW_ASSIGNMENTS": true,
+          "FLAG_FABRIC_CONFIGURATION_ASSIGNMENTS": true,
+          "FLAG_SHOW_VERIFY_SERVICE": false,
+          "FLAG_SERVICE_MODEL_CACHE": true,
+          "CREATE_INSTANCE_TEST": false,
+          "FLAG_SETTING_DEFAULTS_IN_DRAWING_BOARD": true,
+          "EMPTY_DRAWING_BOARD_TEST": false,
+          "FLAG_ADD_MSO_TESTAPI_FIELD": true
+        },
+        "type": "[FLAGS] Update"
+      },
+      "service": {
+        "serviceHierarchy": {
+          "f4d84bb4-a416-4b4e-997e-0059973630b9": {
+            "service": {
+              "uuid": "f4d84bb4-a416-4b4e-997e-0059973630b9",
+              "invariantUuid": "598e3f9e-3244-4d8f-a8e0-0e5d7a29eda9",
+              "name": "PASQUALE vMX vPE_BV Service 488",
+              "version": "1.0",
+              "toscaModelURL": null,
+              "category": "Network L1-3",
+              "serviceType": "",
+              "serviceRole": "",
+              "description": "PASQUALE vMX vPE based on Juniper 17.2 release. Updated with updated VF for v8.0 of VLM",
+              "serviceEcompNaming": "true",
+              "instantiationType": "Macro",
+              "vidNotions": {
+                "instantiationType": "Macro"
+              },
+              "inputs": {
+                "2017488_pasqualevpe0_ASN": {
+                  "type": "string",
+                  "description": "AV/PE",
+                  "entry_schema": null,
+                  "inputProperties": null,
+                  "constraints": [],
+                  "required": true,
+                  "default": "AV_vPE"
+                }
+              }
+            },
+            "vnfs": {
+              "2017-488_PASQUALE-vPE 0": {
+                "uuid": "ea81d6f7-0861-44a7-b7d5-d173b562c350",
+                "invariantUuid": "5be7e99e-8eb2-4d97-be63-8081ff3cd10e",
+                "description": "Name PASQUALE vPE Description The provider edge function for the PASQUALE service supported by the Junipers VMX product Category Router Vendor Juniper Vendor Release Code 17.2 Owners Mary Fragale. Updated 9-25 to use v8.0 of the Juniper Valid 2 VLM",
+                "name": "2017-488_PASQUALE-vPE",
+                "version": "9.0",
+                "customizationUuid": "41516cc6-5098-4b40-a619-f8d5f55fc4d8",
+                "inputs": {
+                  "vnf_config_template_version": {
+                    "type": "string",
+                    "description": "VPE Software Version",
+                    "entry_schema": null,
+                    "inputProperties": null,
+                    "constraints": [],
+                    "required": true,
+                    "default": "17.2"
+                  },
+                  "bandwidth_units": {
+                    "type": "string",
+                    "description": "Units of bandwidth",
+                    "entry_schema": null,
+                    "inputProperties": null,
+                    "constraints": [],
+                    "required": true,
+                    "default": "Gbps"
+                  },
+                  "bandwidth": {
+                    "type": "string",
+                    "description": "Requested VPE bandwidth",
+                    "entry_schema": null,
+                    "inputProperties": null,
+                    "constraints": [],
+                    "required": true,
+                    "default": "10"
+                  },
+                  "AIC_CLLI": {
+                    "type": "string",
+                    "description": "AIC Site CLLI",
+                    "entry_schema": null,
+                    "inputProperties": null,
+                    "constraints": [],
+                    "required": true,
+                    "default": "ATLMY8GA"
+                  },
+                  "availability_zone_0": {
+                    "type": "string",
+                    "description": "The Availability Zone to launch the instance.",
+                    "entry_schema": null,
+                    "inputProperties": null,
+                    "constraints": [],
+                    "required": true,
+                    "default": "mtpocfo-kvm-az01"
+                  },
+                  "ASN": {
+                    "type": "string",
+                    "description": "AV/PE",
+                    "entry_schema": null,
+                    "inputProperties": null,
+                    "constraints": [],
+                    "required": true,
+                    "default": "AV_vPE"
+                  },
+                  "vnf_instance_name": {
+                    "type": "string",
+                    "description": "The hostname assigned to the vpe.",
+                    "entry_schema": null,
+                    "inputProperties": null,
                     "constraints": [],
                     "required": true,
                     "default": "mtnj309me6"
@@ -2323,42 +3206,42 @@ describe('Drawing board', function () {
                   "vnf_config_template_version": {
                     "displayName": "vnf_config_template_version",
                     "command": "get_input",
-                    "inputName": "2017488_adiodvpe0_vnf_config_template_version"
+                    "inputName": "2017488_pasqualevpe0_vnf_config_template_version"
                   },
                   "bandwidth_units": {
                     "displayName": "bandwidth_units",
                     "command": "get_input",
-                    "inputName": "2017488_adiodvpe0_bandwidth_units"
+                    "inputName": "2017488_pasqualevpe0_bandwidth_units"
                   },
                   "bandwidth": {
                     "displayName": "bandwidth",
                     "command": "get_input",
-                    "inputName": "2017488_adiodvpe0_bandwidth"
+                    "inputName": "2017488_pasqualevpe0_bandwidth"
                   },
                   "AIC_CLLI": {
                     "displayName": "AIC_CLLI",
                     "command": "get_input",
-                    "inputName": "2017488_adiodvpe0_AIC_CLLI"
+                    "inputName": "2017488_pasqualevpe0_AIC_CLLI"
                   },
                   "availability_zone_0": {
                     "displayName": "availability_zone_0",
                     "command": "get_input",
-                    "inputName": "2017488_adiodvpe0_availability_zone_0"
+                    "inputName": "2017488_pasqualevpe0_availability_zone_0"
                   },
                   "ASN": {
                     "displayName": "ASN",
                     "command": "get_input",
-                    "inputName": "2017488_adiodvpe0_ASN"
+                    "inputName": "2017488_pasqualevpe0_ASN"
                   },
                   "vnf_instance_name": {
                     "displayName": "vnf_instance_name",
                     "command": "get_input",
-                    "inputName": "2017488_adiodvpe0_vnf_instance_name"
+                    "inputName": "2017488_pasqualevpe0_vnf_instance_name"
                   }
                 },
                 "properties": {
                   "vmxvre_retype": "RE-VMX",
-                  "vnf_config_template_version": "get_input:2017488_adiodvpe0_vnf_config_template_version",
+                  "vnf_config_template_version": "get_input:2017488_pasqualevpe0_vnf_config_template_version",
                   "sriov44_net_id": "48d399b3-11ee-48a8-94d2-f0ea94d6be8d",
                   "int_ctl_net_id": "2f323477-6936-4d01-ac53-d849430281d9",
                   "vmxvpfe_sriov41_0_port_mac": "00:11:22:EF:AC:DF",
@@ -2400,11 +3283,11 @@ describe('Drawing board', function () {
                   "vmxvpfe_sriov42_0_port_unknownmulticastallow": "true",
                   "vmxvpfe_sriov44_0_port_vlanstrip": "false",
                   "vf_module_id": "123",
-                  "nf_function": "ADIOD vPE",
+                  "nf_function": "PASQUALE vPE",
                   "vmxvpfe_sriov43_0_port_unknownmulticastallow": "true",
                   "vmxvre_int_ctl_ip_0": "10.0.0.10",
                   "ecomp_generated_naming": "true",
-                  "AIC_CLLI": "get_input:2017488_adiodvpe0_AIC_CLLI",
+                  "AIC_CLLI": "get_input:2017488_pasqualevpe0_AIC_CLLI",
                   "vnf_name": "mtnj309me6vre",
                   "vmxvpfe_sriov41_0_port_unknownunicastallow": "true",
                   "vmxvre_volume_type_1": "HITACHI",
@@ -2412,14 +3295,14 @@ describe('Drawing board', function () {
                   "vmxvre_volume_type_0": "HITACHI",
                   "vmxvpfe_volume_type_0": "HITACHI",
                   "vmxvpfe_sriov43_0_port_broadcastallow": "true",
-                  "bandwidth_units": "get_input:2017488_adiodvpe0_bandwidth_units",
+                  "bandwidth_units": "get_input:2017488_pasqualevpe0_bandwidth_units",
                   "vnf_id": "123",
                   "vmxvre_oam_prefix": "24",
-                  "availability_zone_0": "get_input:2017488_adiodvpe0_availability_zone_0",
-                  "ASN": "get_input:2017488_adiodvpe0_ASN",
+                  "availability_zone_0": "get_input:2017488_pasqualevpe0_availability_zone_0",
+                  "ASN": "get_input:2017488_pasqualevpe0_ASN",
                   "vmxvre_chassis_i2cid": "161",
                   "vmxvpfe_name_0": "vPFEXI",
-                  "bandwidth": "get_input:2017488_adiodvpe0_bandwidth",
+                  "bandwidth": "get_input:2017488_pasqualevpe0_bandwidth",
                   "availability_zone_max_count": "1",
                   "vmxvre_volume_size_0": "45.0",
                   "vmxvre_volume_size_1": "50.0",
@@ -2429,7 +3312,7 @@ describe('Drawing board', function () {
                   "vmxvre_ore_present": "0",
                   "vmxvre_volume_name_0": "vREXI_FBVolume",
                   "vmxvre_type": "0",
-                  "vnf_instance_name": "get_input:2017488_adiodvpe0_vnf_instance_name",
+                  "vnf_instance_name": "get_input:2017488_pasqualevpe0_vnf_instance_name",
                   "vmxvpfe_sriov41_0_port_unknownmulticastallow": "true",
                   "oam_net_id": "b95eeb1d-d55d-4827-abb4-8ebb94941429",
                   "vmx_int_ctl_len": "24",
@@ -2443,82 +3326,82 @@ describe('Drawing board', function () {
                   "vmxvpfe_flavor_name": "ns.c20r16d25.v5"
                 },
                 "type": "VF",
-                "modelCustomizationName": "2017-488_ADIOD-vPE 0",
+                "modelCustomizationName": "2017-488_PASQUALE-vPE 0",
                 "vfModules": {
-                  "2017488_adiodvpe0..2017488AdiodVpe..ADIOD_vRE_BV..module-1": {
+                  "2017488_pasqualevpe0..2017488PasqualeVpe..PASQUALE_vRE_BV..module-1": {
                     "uuid": "a5d8df05-11cb-4351-96e0-b6d4168ea4df",
                     "invariantUuid": "7253ff5c-97f0-4b8b-937c-77aeb4d79aa1",
                     "customizationUuid": "f3d97417-0c8d-424e-8ff7-b2eb4fbcecc3",
                     "description": null,
-                    "name": "2017488AdiodVpe..ADIOD_vRE_BV..module-1",
+                    "name": "2017488PasqualeVpe..PASQUALE_vRE_BV..module-1",
                     "version": "8",
-                    "modelCustomizationName": "2017488AdiodVpe..ADIOD_vRE_BV..module-1",
+                    "modelCustomizationName": "2017488PasqualeVpe..PASQUALE_vRE_BV..module-1",
                     "properties": {
                       "minCountInstances": 2,
                       "maxCountInstances": null,
                       "initialCount": 0,
-                      "vfModuleLabel": "ADIOD_vRE_BV"
+                      "vfModuleLabel": "PASQUALE_vRE_BV"
                     },
                     "inputs": {
-                      "2017488_adiodvpe0_bandwidth_units": {
+                      "2017488_pasqualevpe0_bandwidth_units": {
                         "type": "string",
                         "description": "Units of bandwidth",
                         "entry_schema": null,
                         "inputProperties": {
                           "sourceType": "HEAT",
-                          "vfModuleLabel": "ADIOD_vRE_BV",
+                          "vfModuleLabel": "PASQUALE_vRE_BV",
                           "paramName": "bandwidth_units"
                         },
                         "constraints": null,
                         "required": true,
                         "default": "Gbps"
                       },
-                      "2017488_adiodvpe0_bandwidth": {
+                      "2017488_pasqualevpe0_bandwidth": {
                         "type": "string",
                         "description": "Requested VPE bandwidth",
                         "entry_schema": null,
                         "inputProperties": {
                           "sourceType": "HEAT",
-                          "vfModuleLabel": "ADIOD_vRE_BV",
+                          "vfModuleLabel": "PASQUALE_vRE_BV",
                           "paramName": "bandwidth"
                         },
                         "constraints": null,
                         "required": true,
                         "default": "10"
                       },
-                      "2017488_adiodvpe0_vnf_instance_name": {
+                      "2017488_pasqualevpe0_vnf_instance_name": {
                         "type": "string",
                         "description": "The hostname assigned to the vpe.",
                         "entry_schema": null,
                         "inputProperties": {
                           "sourceType": "HEAT",
-                          "vfModuleLabel": "ADIOD_vRE_BV",
+                          "vfModuleLabel": "PASQUALE_vRE_BV",
                           "paramName": "vnf_instance_name"
                         },
                         "constraints": null,
                         "required": true,
                         "default": "mtnj309me6"
                       },
-                      "2017488_adiodvpe0_vnf_config_template_version": {
+                      "2017488_pasqualevpe0_vnf_config_template_version": {
                         "type": "string",
                         "description": "VPE Software Version",
                         "entry_schema": null,
                         "inputProperties": {
                           "sourceType": "HEAT",
-                          "vfModuleLabel": "ADIOD_vRE_BV",
+                          "vfModuleLabel": "PASQUALE_vRE_BV",
                           "paramName": "vnf_config_template_version"
                         },
                         "constraints": null,
                         "required": true,
                         "default": "17.2"
                       },
-                      "2017488_adiodvpe0_AIC_CLLI": {
+                      "2017488_pasqualevpe0_AIC_CLLI": {
                         "type": "string",
                         "description": "AIC Site CLLI",
                         "entry_schema": null,
                         "inputProperties": {
                           "sourceType": "HEAT",
-                          "vfModuleLabel": "ADIOD_vRE_BV",
+                          "vfModuleLabel": "PASQUALE_vRE_BV",
                           "paramName": "AIC_CLLI"
                         },
                         "constraints": null,
@@ -2528,45 +3411,45 @@ describe('Drawing board', function () {
                     },
                     "volumeGroupAllowed": true
                   },
-                  "2017488_adiodvpe0..2017488AdiodVpe..ADIOD_base_vPE_BV..module-0": {
+                  "2017488_pasqualevpe0..2017488PasqualeVpe..PASQUALE_base_vPE_BV..module-0": {
                     "uuid": "040e591e-5d30-4e0d-850f-7266e5a8e013",
                     "invariantUuid": "b34833bb-6aa9-4ad6-a831-70b06367a091",
                     "customizationUuid": "5c5f91f9-5e31-4120-b892-5536587ec258",
                     "description": null,
-                    "name": "2017488AdiodVpe..ADIOD_base_vPE_BV..module-0",
+                    "name": "2017488PasqualeVpe..PASQUALE_base_vPE_BV..module-0",
                     "version": "6",
-                    "modelCustomizationName": "2017488AdiodVpe..ADIOD_base_vPE_BV..module-0",
+                    "modelCustomizationName": "2017488PasqualeVpe..PASQUALE_base_vPE_BV..module-0",
                     "properties": {
                       "minCountInstances": 1,
                       "maxCountInstances": 1,
                       "initialCount": 1,
-                      "vfModuleLabel": "ADIOD_base_vPE_BV"
+                      "vfModuleLabel": "PASQUALE_base_vPE_BV"
                     },
                     "inputs": {},
                     "volumeGroupAllowed": false
                   },
-                  "2017488_adiodvpe0..2017488AdiodVpe..ADIOD_vPFE_BV..module-2": {
+                  "2017488_pasqualevpe0..2017488PasqualeVpe..PASQUALE_vPFE_BV..module-2": {
                     "uuid": "b3e8b26e-cff0-49fc-a4e6-f3e16c8440fe",
                     "invariantUuid": "eff8cc59-53a1-4101-aed7-8cf24ecf8339",
                     "customizationUuid": "6e410843-257c-46d9-ba8a-8d94e1362452",
                     "description": null,
-                    "name": "2017488AdiodVpe..ADIOD_vPFE_BV..module-2",
+                    "name": "2017488PasqualeVpe..PASQUALE_vPFE_BV..module-2",
                     "version": "8",
-                    "modelCustomizationName": "2017488AdiodVpe..ADIOD_vPFE_BV..module-2",
+                    "modelCustomizationName": "2017488PasqualeVpe..PASQUALE_vPFE_BV..module-2",
                     "properties": {
                       "minCountInstances": 0,
                       "maxCountInstances": null,
                       "initialCount": 0,
-                      "vfModuleLabel": "ADIOD_vPFE_BV"
+                      "vfModuleLabel": "PASQUALE_vPFE_BV"
                     },
                     "inputs": {
-                      "2017488_adiodvpe0_availability_zone_0": {
+                      "2017488_pasqualevpe0_availability_zone_0": {
                         "type": "string",
                         "description": "The Availability Zone to launch the instance.",
                         "entry_schema": null,
                         "inputProperties": {
                           "sourceType": "HEAT",
-                          "vfModuleLabel": "ADIOD_vPFE_BV",
+                          "vfModuleLabel": "PASQUALE_vPFE_BV",
                           "paramName": "availability_zone_0"
                         },
                         "constraints": null,
@@ -2578,80 +3461,80 @@ describe('Drawing board', function () {
                   }
                 },
                 "volumeGroups": {
-                  "2017488_adiodvpe0..2017488AdiodVpe..ADIOD_vRE_BV..module-1": {
+                  "2017488_pasqualevpe0..2017488PasqualeVpe..PASQUALE_vRE_BV..module-1": {
                     "uuid": "a5d8df05-11cb-4351-96e0-b6d4168ea4df",
                     "invariantUuid": "7253ff5c-97f0-4b8b-937c-77aeb4d79aa1",
                     "customizationUuid": "f3d97417-0c8d-424e-8ff7-b2eb4fbcecc3",
                     "description": null,
-                    "name": "2017488AdiodVpe..ADIOD_vRE_BV..module-1",
+                    "name": "2017488PasqualeVpe..PASQUALE_vRE_BV..module-1",
                     "version": "8",
-                    "modelCustomizationName": "2017488AdiodVpe..ADIOD_vRE_BV..module-1",
+                    "modelCustomizationName": "2017488PasqualeVpe..PASQUALE_vRE_BV..module-1",
                     "properties": {
                       "minCountInstances": 0,
                       "maxCountInstances": null,
                       "initialCount": 0,
-                      "vfModuleLabel": "ADIOD_vRE_BV"
+                      "vfModuleLabel": "PASQUALE_vRE_BV"
                     },
                     "inputs": {
-                      "2017488_adiodvpe0_bandwidth_units": {
+                      "2017488_pasqualevpe0_bandwidth_units": {
                         "type": "string",
                         "description": "Units of bandwidth",
                         "entry_schema": null,
                         "inputProperties": {
                           "sourceType": "HEAT",
-                          "vfModuleLabel": "ADIOD_vRE_BV",
+                          "vfModuleLabel": "PASQUALE_vRE_BV",
                           "paramName": "bandwidth_units"
                         },
                         "constraints": null,
                         "required": true,
                         "default": "Gbps"
                       },
-                      "2017488_adiodvpe0_bandwidth": {
+                      "2017488_pasqualevpe0_bandwidth": {
                         "type": "string",
                         "description": "Requested VPE bandwidth",
                         "entry_schema": null,
                         "inputProperties": {
                           "sourceType": "HEAT",
-                          "vfModuleLabel": "ADIOD_vRE_BV",
+                          "vfModuleLabel": "PASQUALE_vRE_BV",
                           "paramName": "bandwidth"
                         },
                         "constraints": null,
                         "required": true,
                         "default": "10"
                       },
-                      "2017488_adiodvpe0_vnf_instance_name": {
+                      "2017488_pasqualevpe0_vnf_instance_name": {
                         "type": "string",
                         "description": "The hostname assigned to the vpe.",
                         "entry_schema": null,
                         "inputProperties": {
                           "sourceType": "HEAT",
-                          "vfModuleLabel": "ADIOD_vRE_BV",
+                          "vfModuleLabel": "PASQUALE_vRE_BV",
                           "paramName": "vnf_instance_name"
                         },
                         "constraints": null,
                         "required": true,
                         "default": "mtnj309me6"
                       },
-                      "2017488_adiodvpe0_vnf_config_template_version": {
+                      "2017488_pasqualevpe0_vnf_config_template_version": {
                         "type": "string",
                         "description": "VPE Software Version",
                         "entry_schema": null,
                         "inputProperties": {
                           "sourceType": "HEAT",
-                          "vfModuleLabel": "ADIOD_vRE_BV",
+                          "vfModuleLabel": "PASQUALE_vRE_BV",
                           "paramName": "vnf_config_template_version"
                         },
                         "constraints": null,
                         "required": true,
                         "default": "17.2"
                       },
-                      "2017488_adiodvpe0_AIC_CLLI": {
+                      "2017488_pasqualevpe0_AIC_CLLI": {
                         "type": "string",
                         "description": "AIC Site CLLI",
                         "entry_schema": null,
                         "inputProperties": {
                           "sourceType": "HEAT",
-                          "vfModuleLabel": "ADIOD_vRE_BV",
+                          "vfModuleLabel": "PASQUALE_vRE_BV",
                           "paramName": "AIC_CLLI"
                         },
                         "constraints": null,
@@ -2660,28 +3543,28 @@ describe('Drawing board', function () {
                       }
                     }
                   },
-                  "2017488_adiodvpe0..2017488AdiodVpe..ADIOD_vPFE_BV..module-2": {
+                  "2017488_pasqualevpe0..2017488PasqualeVpe..PASQUALE_vPFE_BV..module-2": {
                     "uuid": "b3e8b26e-cff0-49fc-a4e6-f3e16c8440fe",
                     "invariantUuid": "eff8cc59-53a1-4101-aed7-8cf24ecf8339",
                     "customizationUuid": "6e410843-257c-46d9-ba8a-8d94e1362452",
                     "description": null,
-                    "name": "2017488AdiodVpe..ADIOD_vPFE_BV..module-2",
+                    "name": "2017488PasqualeVpe..PASQUALE_vPFE_BV..module-2",
                     "version": "8",
-                    "modelCustomizationName": "2017488AdiodVpe..ADIOD_vPFE_BV..module-2",
+                    "modelCustomizationName": "2017488PasqualeVpe..PASQUALE_vPFE_BV..module-2",
                     "properties": {
                       "minCountInstances": 0,
                       "maxCountInstances": null,
                       "initialCount": 0,
-                      "vfModuleLabel": "ADIOD_vPFE_BV"
+                      "vfModuleLabel": "PASQUALE_vPFE_BV"
                     },
                     "inputs": {
-                      "2017488_adiodvpe0_availability_zone_0": {
+                      "2017488_pasqualevpe0_availability_zone_0": {
                         "type": "string",
                         "description": "The Availability Zone to launch the instance.",
                         "entry_schema": null,
                         "inputProperties": {
                           "sourceType": "HEAT",
-                          "vfModuleLabel": "ADIOD_vPFE_BV",
+                          "vfModuleLabel": "PASQUALE_vPFE_BV",
                           "paramName": "availability_zone_0"
                         },
                         "constraints": null,
@@ -2695,84 +3578,84 @@ describe('Drawing board', function () {
               }
             },
             "networks": {},
-            "collectionResource": {},
+            "collectionResources": {},
             "configurations": {},
             "serviceProxies": {},
             "vfModules": {
-              "2017488_adiodvpe0..2017488AdiodVpe..ADIOD_vRE_BV..module-1": {
+              "2017488_pasqualevpe0..2017488PasqualeVpe..PASQUALE_vRE_BV..module-1": {
                 "uuid": "a5d8df05-11cb-4351-96e0-b6d4168ea4df",
                 "invariantUuid": "7253ff5c-97f0-4b8b-937c-77aeb4d79aa1",
                 "customizationUuid": "f3d97417-0c8d-424e-8ff7-b2eb4fbcecc3",
                 "description": null,
-                "name": "2017488AdiodVpe..ADIOD_vRE_BV..module-1",
+                "name": "2017488PasqualeVpe..PASQUALE_vRE_BV..module-1",
                 "version": "8",
-                "modelCustomizationName": "2017488AdiodVpe..ADIOD_vRE_BV..module-1",
+                "modelCustomizationName": "2017488PasqualeVpe..PASQUALE_vRE_BV..module-1",
                 "properties": {
                   "minCountInstances": 0,
                   "maxCountInstances": null,
                   "initialCount": 0,
-                  "vfModuleLabel": "ADIOD_vRE_BV"
+                  "vfModuleLabel": "PASQUALE_vRE_BV"
                 },
                 "inputs": {
-                  "2017488_adiodvpe0_bandwidth_units": {
+                  "2017488_pasqualevpe0_bandwidth_units": {
                     "type": "string",
                     "description": "Units of bandwidth",
                     "entry_schema": null,
                     "inputProperties": {
                       "sourceType": "HEAT",
-                      "vfModuleLabel": "ADIOD_vRE_BV",
+                      "vfModuleLabel": "PASQUALE_vRE_BV",
                       "paramName": "bandwidth_units"
                     },
                     "constraints": null,
                     "required": true,
                     "default": "Gbps"
                   },
-                  "2017488_adiodvpe0_bandwidth": {
+                  "2017488_pasqualevpe0_bandwidth": {
                     "type": "string",
                     "description": "Requested VPE bandwidth",
                     "entry_schema": null,
                     "inputProperties": {
                       "sourceType": "HEAT",
-                      "vfModuleLabel": "ADIOD_vRE_BV",
+                      "vfModuleLabel": "PASQUALE_vRE_BV",
                       "paramName": "bandwidth"
                     },
                     "constraints": null,
                     "required": true,
                     "default": "10"
                   },
-                  "2017488_adiodvpe0_vnf_instance_name": {
+                  "2017488_pasqualevpe0_vnf_instance_name": {
                     "type": "string",
                     "description": "The hostname assigned to the vpe.",
                     "entry_schema": null,
                     "inputProperties": {
                       "sourceType": "HEAT",
-                      "vfModuleLabel": "ADIOD_vRE_BV",
+                      "vfModuleLabel": "PASQUALE_vRE_BV",
                       "paramName": "vnf_instance_name"
                     },
                     "constraints": null,
                     "required": true,
                     "default": "mtnj309me6"
                   },
-                  "2017488_adiodvpe0_vnf_config_template_version": {
+                  "2017488_pasqualevpe0_vnf_config_template_version": {
                     "type": "string",
                     "description": "VPE Software Version",
                     "entry_schema": null,
                     "inputProperties": {
                       "sourceType": "HEAT",
-                      "vfModuleLabel": "ADIOD_vRE_BV",
+                      "vfModuleLabel": "PASQUALE_vRE_BV",
                       "paramName": "vnf_config_template_version"
                     },
                     "constraints": null,
                     "required": true,
                     "default": "17.2"
                   },
-                  "2017488_adiodvpe0_AIC_CLLI": {
+                  "2017488_pasqualevpe0_AIC_CLLI": {
                     "type": "string",
                     "description": "AIC Site CLLI",
                     "entry_schema": null,
                     "inputProperties": {
                       "sourceType": "HEAT",
-                      "vfModuleLabel": "ADIOD_vRE_BV",
+                      "vfModuleLabel": "PASQUALE_vRE_BV",
                       "paramName": "AIC_CLLI"
                     },
                     "constraints": null,
@@ -2782,45 +3665,45 @@ describe('Drawing board', function () {
                 },
                 "volumeGroupAllowed": true
               },
-              "2017488_adiodvpe0..2017488AdiodVpe..ADIOD_base_vPE_BV..module-0": {
+              "2017488_pasqualevpe0..2017488PasqualeVpe..PASQUALE_base_vPE_BV..module-0": {
                 "uuid": "040e591e-5d30-4e0d-850f-7266e5a8e013",
                 "invariantUuid": "b34833bb-6aa9-4ad6-a831-70b06367a091",
                 "customizationUuid": "5c5f91f9-5e31-4120-b892-5536587ec258",
                 "description": null,
-                "name": "2017488AdiodVpe..ADIOD_base_vPE_BV..module-0",
+                "name": "2017488PasqualeVpe..PASQUALE_base_vPE_BV..module-0",
                 "version": "6",
-                "modelCustomizationName": "2017488AdiodVpe..ADIOD_base_vPE_BV..module-0",
+                "modelCustomizationName": "2017488PasqualeVpe..PASQUALE_base_vPE_BV..module-0",
                 "properties": {
                   "minCountInstances": 1,
                   "maxCountInstances": 1,
                   "initialCount": 1,
-                  "vfModuleLabel": "ADIOD_base_vPE_BV"
+                  "vfModuleLabel": "PASQUALE_base_vPE_BV"
                 },
                 "inputs": {},
                 "volumeGroupAllowed": false
               },
-              "2017488_adiodvpe0..2017488AdiodVpe..ADIOD_vPFE_BV..module-2": {
+              "2017488_pasqualevpe0..2017488PasqualeVpe..PASQUALE_vPFE_BV..module-2": {
                 "uuid": "b3e8b26e-cff0-49fc-a4e6-f3e16c8440fe",
                 "invariantUuid": "eff8cc59-53a1-4101-aed7-8cf24ecf8339",
                 "customizationUuid": "6e410843-257c-46d9-ba8a-8d94e1362452",
                 "description": null,
-                "name": "2017488AdiodVpe..ADIOD_vPFE_BV..module-2",
+                "name": "2017488PasqualeVpe..PASQUALE_vPFE_BV..module-2",
                 "version": "8",
-                "modelCustomizationName": "2017488AdiodVpe..ADIOD_vPFE_BV..module-2",
+                "modelCustomizationName": "2017488PasqualeVpe..PASQUALE_vPFE_BV..module-2",
                 "properties": {
                   "minCountInstances": 0,
                   "maxCountInstances": null,
                   "initialCount": 0,
-                  "vfModuleLabel": "ADIOD_vPFE_BV"
+                  "vfModuleLabel": "PASQUALE_vPFE_BV"
                 },
                 "inputs": {
-                  "2017488_adiodvpe0_availability_zone_0": {
+                  "2017488_pasqualevpe0_availability_zone_0": {
                     "type": "string",
                     "description": "The Availability Zone to launch the instance.",
                     "entry_schema": null,
                     "inputProperties": {
                       "sourceType": "HEAT",
-                      "vfModuleLabel": "ADIOD_vPFE_BV",
+                      "vfModuleLabel": "PASQUALE_vPFE_BV",
                       "paramName": "availability_zone_0"
                     },
                     "constraints": null,
@@ -2832,80 +3715,80 @@ describe('Drawing board', function () {
               }
             },
             "volumeGroups": {
-              "2017488_adiodvpe0..2017488AdiodVpe..ADIOD_vRE_BV..module-1": {
+              "2017488_pasqualevpe0..2017488PasqualeVpe..PASQUALE_vRE_BV..module-1": {
                 "uuid": "a5d8df05-11cb-4351-96e0-b6d4168ea4df",
                 "invariantUuid": "7253ff5c-97f0-4b8b-937c-77aeb4d79aa1",
                 "customizationUuid": "f3d97417-0c8d-424e-8ff7-b2eb4fbcecc3",
                 "description": null,
-                "name": "2017488AdiodVpe..ADIOD_vRE_BV..module-1",
+                "name": "2017488PasqualeVpe..PASQUALE_vRE_BV..module-1",
                 "version": "8",
-                "modelCustomizationName": "2017488AdiodVpe..ADIOD_vRE_BV..module-1",
+                "modelCustomizationName": "2017488PasqualeVpe..PASQUALE_vRE_BV..module-1",
                 "properties": {
                   "minCountInstances": 0,
                   "maxCountInstances": null,
                   "initialCount": 0,
-                  "vfModuleLabel": "ADIOD_vRE_BV"
+                  "vfModuleLabel": "PASQUALE_vRE_BV"
                 },
                 "inputs": {
-                  "2017488_adiodvpe0_bandwidth_units": {
+                  "2017488_pasqualevpe0_bandwidth_units": {
                     "type": "string",
                     "description": "Units of bandwidth",
                     "entry_schema": null,
                     "inputProperties": {
                       "sourceType": "HEAT",
-                      "vfModuleLabel": "ADIOD_vRE_BV",
+                      "vfModuleLabel": "PASQUALE_vRE_BV",
                       "paramName": "bandwidth_units"
                     },
                     "constraints": null,
                     "required": true,
                     "default": "Gbps"
                   },
-                  "2017488_adiodvpe0_bandwidth": {
+                  "2017488_pasqualevpe0_bandwidth": {
                     "type": "string",
                     "description": "Requested VPE bandwidth",
                     "entry_schema": null,
                     "inputProperties": {
                       "sourceType": "HEAT",
-                      "vfModuleLabel": "ADIOD_vRE_BV",
+                      "vfModuleLabel": "PASQUALE_vRE_BV",
                       "paramName": "bandwidth"
                     },
                     "constraints": null,
                     "required": true,
                     "default": "10"
                   },
-                  "2017488_adiodvpe0_vnf_instance_name": {
+                  "2017488_pasqualevpe0_vnf_instance_name": {
                     "type": "string",
                     "description": "The hostname assigned to the vpe.",
                     "entry_schema": null,
                     "inputProperties": {
                       "sourceType": "HEAT",
-                      "vfModuleLabel": "ADIOD_vRE_BV",
+                      "vfModuleLabel": "PASQUALE_vRE_BV",
                       "paramName": "vnf_instance_name"
                     },
                     "constraints": null,
                     "required": true,
                     "default": "mtnj309me6"
                   },
-                  "2017488_adiodvpe0_vnf_config_template_version": {
+                  "2017488_pasqualevpe0_vnf_config_template_version": {
                     "type": "string",
                     "description": "VPE Software Version",
                     "entry_schema": null,
                     "inputProperties": {
                       "sourceType": "HEAT",
-                      "vfModuleLabel": "ADIOD_vRE_BV",
+                      "vfModuleLabel": "PASQUALE_vRE_BV",
                       "paramName": "vnf_config_template_version"
                     },
                     "constraints": null,
                     "required": true,
                     "default": "17.2"
                   },
-                  "2017488_adiodvpe0_AIC_CLLI": {
+                  "2017488_pasqualevpe0_AIC_CLLI": {
                     "type": "string",
                     "description": "AIC Site CLLI",
                     "entry_schema": null,
                     "inputProperties": {
                       "sourceType": "HEAT",
-                      "vfModuleLabel": "ADIOD_vRE_BV",
+                      "vfModuleLabel": "PASQUALE_vRE_BV",
                       "paramName": "AIC_CLLI"
                     },
                     "constraints": null,
@@ -2914,28 +3797,28 @@ describe('Drawing board', function () {
                   }
                 }
               },
-              "2017488_adiodvpe0..2017488AdiodVpe..ADIOD_vPFE_BV..module-2": {
+              "2017488_pasqualevpe0..2017488PasqualeVpe..PASQUALE_vPFE_BV..module-2": {
                 "uuid": "b3e8b26e-cff0-49fc-a4e6-f3e16c8440fe",
                 "invariantUuid": "eff8cc59-53a1-4101-aed7-8cf24ecf8339",
                 "customizationUuid": "6e410843-257c-46d9-ba8a-8d94e1362452",
                 "description": null,
-                "name": "2017488AdiodVpe..ADIOD_vPFE_BV..module-2",
+                "name": "2017488PasqualeVpe..PASQUALE_vPFE_BV..module-2",
                 "version": "8",
-                "modelCustomizationName": "2017488AdiodVpe..ADIOD_vPFE_BV..module-2",
+                "modelCustomizationName": "2017488PasqualeVpe..PASQUALE_vPFE_BV..module-2",
                 "properties": {
                   "minCountInstances": 0,
                   "maxCountInstances": null,
                   "initialCount": 0,
-                  "vfModuleLabel": "ADIOD_vPFE_BV"
+                  "vfModuleLabel": "PASQUALE_vPFE_BV"
                 },
                 "inputs": {
-                  "2017488_adiodvpe0_availability_zone_0": {
+                  "2017488_pasqualevpe0_availability_zone_0": {
                     "type": "string",
                     "description": "The Availability Zone to launch the instance.",
                     "entry_schema": null,
                     "inputProperties": {
                       "sourceType": "HEAT",
-                      "vfModuleLabel": "ADIOD_vPFE_BV",
+                      "vfModuleLabel": "PASQUALE_vPFE_BV",
                       "paramName": "availability_zone_0"
                     },
                     "constraints": null,
@@ -2960,14 +3843,17 @@ describe('Drawing board', function () {
               "description": "ComplexService",
               "serviceEcompNaming": "true",
               "instantiationType": "Macro",
+              "vidNotions": {
+                "instantiationType": "Macro"
+              },
               "inputs": {}
             },
             "vnfs": {
-              "VF_vMee 0": {
+              "VF_vGeraldine 0": {
                 "uuid": "d6557200-ecf2-4641-8094-5393ae3aae60",
                 "invariantUuid": "4160458e-f648-4b30-a176-43881ffffe9e",
-                "description": "VSP_vMee",
-                "name": "VF_vMee",
+                "description": "VSP_vGeraldine",
+                "name": "VF_vGeraldine",
                 "version": "2.0",
                 "customizationUuid": "91415b44-753d-494c-926a-456a9172bbb9",
                 "inputs": {},
@@ -3136,74 +4022,74 @@ describe('Drawing board', function () {
                   "sctp-b-egress-dst_end_port": "65535.0"
                 },
                 "type": "VF",
-                "modelCustomizationName": "VF_vMee 0",
+                "modelCustomizationName": "VF_vGeraldine 0",
                 "vfModules": {
-                  "vf_vmee0..VfVmee..vmme_vlc..module-1": {
+                  "vf_vgeraldine0..VfVgeraldine..vflorence_vlc..module-1": {
                     "uuid": "522159d5-d6e0-4c2a-aa44-5a542a12a830",
                     "invariantUuid": "98a7c88b-b577-476a-90e4-e25a5871e02b",
                     "customizationUuid": "55b1be94-671a-403e-a26c-667e9c47d091",
                     "description": null,
-                    "name": "VfVmee..vmme_vlc..module-1",
+                    "name": "VfVgeraldine..vflorence_vlc..module-1",
                     "version": "2",
-                    "modelCustomizationName": "VfVmee..vmme_vlc..module-1",
+                    "modelCustomizationName": "VfVgeraldine..vflorence_vlc..module-1",
                     "properties": {
                       "minCountInstances": 0,
                       "maxCountInstances": null,
                       "initialCount": 0,
-                      "vfModuleLabel": "vmme_vlc"
+                      "vfModuleLabel": "vflorence_vlc"
                     },
                     "inputs": {},
                     "volumeGroupAllowed": false
                   },
-                  "vf_vmee0..VfVmee..vmme_gpb..module-2": {
+                  "vf_vgeraldine0..VfVgeraldine..vflorence_gpb..module-2": {
                     "uuid": "41708296-e443-4c71-953f-d9a010f059e1",
                     "invariantUuid": "1cca90b8-3490-495e-87da-3f3e4c57d5b9",
                     "customizationUuid": "6add59e0-7fe1-4bc4-af48-f8812422ae7c",
                     "description": null,
-                    "name": "VfVmee..vmme_gpb..module-2",
+                    "name": "VfVgeraldine..vflorence_gpb..module-2",
                     "version": "2",
-                    "modelCustomizationName": "VfVmee..vmme_gpb..module-2",
+                    "modelCustomizationName": "VfVgeraldine..vflorence_gpb..module-2",
                     "properties": {
                       "minCountInstances": 0,
                       "maxCountInstances": null,
                       "initialCount": 0,
-                      "vfModuleLabel": "vmme_gpb"
+                      "vfModuleLabel": "vflorence_gpb"
                     },
                     "inputs": {},
                     "volumeGroupAllowed": false
                   },
-                  "vf_vmee0..VfVmee..base_vmme..module-0": {
+                  "vf_vgeraldine0..VfVgeraldine..base_vflorence..module-0": {
                     "uuid": "a27f5cfc-7f12-4f99-af08-0af9c3885c87",
                     "invariantUuid": "a6f9e51a-2b35-416a-ae15-15e58d61f36d",
                     "customizationUuid": "f8c040f1-7e51-4a11-aca8-acf256cfd861",
                     "description": null,
-                    "name": "VfVmee..base_vmme..module-0",
+                    "name": "VfVgeraldine..base_vflorence..module-0",
                     "version": "2",
-                    "modelCustomizationName": "VfVmee..base_vmme..module-0",
+                    "modelCustomizationName": "VfVgeraldine..base_vflorence..module-0",
                     "properties": {
                       "minCountInstances": 1,
                       "maxCountInstances": 1,
                       "initialCount": 1,
-                      "vfModuleLabel": "base_vmme"
+                      "vfModuleLabel": "base_vflorence"
                     },
                     "inputs": {},
                     "volumeGroupAllowed": true
                   }
                 },
                 "volumeGroups": {
-                  "vf_vmee0..VfVmee..base_vmme..module-0": {
+                  "vf_vgeraldine0..VfVgeraldine..base_vflorence..module-0": {
                     "uuid": "a27f5cfc-7f12-4f99-af08-0af9c3885c87",
                     "invariantUuid": "a6f9e51a-2b35-416a-ae15-15e58d61f36d",
                     "customizationUuid": "f8c040f1-7e51-4a11-aca8-acf256cfd861",
                     "description": null,
-                    "name": "VfVmee..base_vmme..module-0",
+                    "name": "VfVgeraldine..base_vflorence..module-0",
                     "version": "2",
-                    "modelCustomizationName": "VfVmee..base_vmme..module-0",
+                    "modelCustomizationName": "VfVgeraldine..base_vflorence..module-0",
                     "properties": {
                       "minCountInstances": 1,
                       "maxCountInstances": 1,
                       "initialCount": 1,
-                      "vfModuleLabel": "base_vmme"
+                      "vfModuleLabel": "base_vflorence"
                     },
                     "inputs": {}
                   }
@@ -3211,579 +4097,1457 @@ describe('Drawing board', function () {
                 "vfcInstanceGroups": {}
               }
             },
-            "networks": {
-              "ExtVL 0": {
-                "uuid": "ddc3f20c-08b5-40fd-af72-c6d14636b986",
-                "invariantUuid": "379f816b-a7aa-422f-be30-17114ff50b7c",
-                "description": "ECOMP generic virtual link (network) base type for all other service-level and global networks",
-                "name": "ExtVL",
-                "version": "37.0",
-                "customizationUuid": "94fdd893-4a36-4d70-b16a-ec29c54c184f",
-                "inputs": {},
-                "commands": {},
-                "properties": {
-                  "network_assignments": "{is_external_network=false, ipv4_subnet_default_assignment={min_subnets_count=1}, ecomp_generated_network_assignment=false, ipv6_subnet_default_assignment={min_subnets_count=1}}",
-                  "exVL_naming": "{ecomp_generated_naming=true}",
-                  "network_flows": "{is_network_policy=false, is_bound_to_vpn=false}",
-                  "network_homing": "{ecomp_selected_instance_node_target=false}"
-                },
-                "type": "VL",
-                "modelCustomizationName": "ExtVL 0"
-              }
+            "networks": {
+              "ExtVL 0": {
+                "uuid": "ddc3f20c-08b5-40fd-af72-c6d14636b986",
+                "invariantUuid": "379f816b-a7aa-422f-be30-17114ff50b7c",
+                "description": "ECOMP generic virtual link (network) base type for all other service-level and global networks",
+                "name": "ExtVL",
+                "version": "37.0",
+                "customizationUuid": "94fdd893-4a36-4d70-b16a-ec29c54c184f",
+                "inputs": {},
+                "commands": {},
+                "properties": {
+                  "network_assignments": "{is_external_network=false, ipv4_subnet_default_assignment={min_subnets_count=1}, ecomp_generated_network_assignment=false, ipv6_subnet_default_assignment={min_subnets_count=1}}",
+                  "exVL_naming": "{ecomp_generated_naming=true}",
+                  "network_flows": "{is_network_policy=false, is_bound_to_vpn=false}",
+                  "network_homing": "{ecomp_selected_instance_node_target=false}"
+                },
+                "type": "VL",
+                "modelCustomizationName": "ExtVL 0"
+              }
+            },
+            "collectionResources": {},
+            "configurations": {
+              "Port Mirroring Configuration By Policy 0": {
+                "uuid": "b4398538-e89d-4f13-b33d-ca323434ba50",
+                "invariantUuid": "6ef0ca40-f366-4897-951f-abd65d25f6f7",
+                "description": "A port mirroring configuration by policy object",
+                "name": "Port Mirroring Configuration By Policy",
+                "version": "27.0",
+                "customizationUuid": "3c3b7b8d-8669-4b3b-8664-61970041fad2",
+                "inputs": {},
+                "commands": {},
+                "properties": {},
+                "type": "Configuration",
+                "modelCustomizationName": "Port Mirroring Configuration By Policy 0",
+                "sourceNodes": [],
+                "collectorNodes": null,
+                "configurationByPolicy": false
+              }
+            },
+            "serviceProxies": {},
+            "vfModules": {
+              "vf_vgeraldine0..VfVgeraldine..vflorence_vlc..module-1": {
+                "uuid": "522159d5-d6e0-4c2a-aa44-5a542a12a830",
+                "invariantUuid": "98a7c88b-b577-476a-90e4-e25a5871e02b",
+                "customizationUuid": "55b1be94-671a-403e-a26c-667e9c47d091",
+                "description": null,
+                "name": "VfVgeraldine..vflorence_vlc..module-1",
+                "version": "2",
+                "modelCustomizationName": "VfVgeraldine..vflorence_vlc..module-1",
+                "properties": {
+                  "minCountInstances": 0,
+                  "maxCountInstances": null,
+                  "initialCount": 0,
+                  "vfModuleLabel": "vflorence_vlc"
+                },
+                "inputs": {},
+                "volumeGroupAllowed": false
+              },
+              "vf_vgeraldine0..VfVgeraldine..vflorence_gpb..module-2": {
+                "uuid": "41708296-e443-4c71-953f-d9a010f059e1",
+                "invariantUuid": "1cca90b8-3490-495e-87da-3f3e4c57d5b9",
+                "customizationUuid": "6add59e0-7fe1-4bc4-af48-f8812422ae7c",
+                "description": null,
+                "name": "VfVgeraldine..vflorence_gpb..module-2",
+                "version": "2",
+                "modelCustomizationName": "VfVgeraldine..vflorence_gpb..module-2",
+                "properties": {
+                  "minCountInstances": 0,
+                  "maxCountInstances": null,
+                  "initialCount": 0,
+                  "vfModuleLabel": "vflorence_gpb"
+                },
+                "inputs": {},
+                "volumeGroupAllowed": false
+              },
+              "vf_vgeraldine0..VfVgeraldine..base_vflorence..module-0": {
+                "uuid": "a27f5cfc-7f12-4f99-af08-0af9c3885c87",
+                "invariantUuid": "a6f9e51a-2b35-416a-ae15-15e58d61f36d",
+                "customizationUuid": "f8c040f1-7e51-4a11-aca8-acf256cfd861",
+                "description": null,
+                "name": "VfVgeraldine..base_vflorence..module-0",
+                "version": "2",
+                "modelCustomizationName": "VfVgeraldine..base_vflorence..module-0",
+                "properties": {
+                  "minCountInstances": 1,
+                  "maxCountInstances": 1,
+                  "initialCount": 1,
+                  "vfModuleLabel": "base_vflorence"
+                },
+                "inputs": {},
+                "volumeGroupAllowed": true
+              }
+            },
+            "volumeGroups": {
+              "vf_vgeraldine0..VfVgeraldine..base_vflorence..module-0": {
+                "uuid": "a27f5cfc-7f12-4f99-af08-0af9c3885c87",
+                "invariantUuid": "a6f9e51a-2b35-416a-ae15-15e58d61f36d",
+                "customizationUuid": "f8c040f1-7e51-4a11-aca8-acf256cfd861",
+                "description": null,
+                "name": "VfVgeraldine..base_vflorence..module-0",
+                "version": "2",
+                "modelCustomizationName": "VfVgeraldine..base_vflorence..module-0",
+                "properties": {
+                  "minCountInstances": 1,
+                  "maxCountInstances": 1,
+                  "initialCount": 1,
+                  "vfModuleLabel": "base_vflorence"
+                },
+                "inputs": {}
+              }
+            },
+            "pnfs": {}
+          }
+        },
+        "serviceInstance": {
+          "f4d84bb4-a416-4b4e-997e-0059973630b9": {
+            "vnfs": {
+              "2017-488_PASQUALE-vPE 0": {
+                "rollbackOnFailure": "true",
+                "vfModules": {
+                  "2017488_pasqualevpe0..2017488PasqualeVpe..PASQUALE_base_vPE_BV..module-0": {
+                    "2017488_pasqualevpe0..2017488PasqualeVpe..PASQUALE_base_vPE_BV..module-0jkyqv": {
+                      "isMissingData": false,
+                      "sdncPreReload": null,
+                      "modelInfo": {
+                        "modelType": "VFmodule",
+                        "modelInvariantId": "b34833bb-6aa9-4ad6-a831-70b06367a091",
+                        "modelVersionId": "040e591e-5d30-4e0d-850f-7266e5a8e013",
+                        "modelName": "2017488PasqualeVpe..PASQUALE_base_vPE_BV..module-0",
+                        "modelVersion": "6",
+                        "modelCustomizationId": "5c5f91f9-5e31-4120-b892-5536587ec258",
+                        "modelCustomizationName": "2017488PasqualeVpe..PASQUALE_base_vPE_BV..module-0"
+                      },
+                      "instanceParams": [
+                        {}
+                      ],
+                      "trackById": "n2ydptuy9lj"
+                    }
+                  }
+                },
+                "isMissingData": false,
+                "originalName": null,
+                "productFamilyId": "ebc3bc3d-62fd-4a3f-a037-f619df4ff034",
+                "lcpCloudRegionId": null,
+                "tenantId": null,
+                "lineOfBusiness": null,
+                "platformName": null,
+                "modelInfo": {
+                  "modelType": "VF",
+                  "modelInvariantId": "5be7e99e-8eb2-4d97-be63-8081ff3cd10e",
+                  "modelVersionId": "f4d84bb4-a416-4b4e-997e-0059973630b9",
+                  "modelName": "2017-488_PASQUALE-vPE",
+                  "modelVersion": "9.0",
+                  "modelCustomizationName": "2017-488_PASQUALE-vPE 0"
+                },
+                "trackById": "iapflwk8bip"
+              },
+              "2017-488_PASQUALE-vPE 0:0001": {
+                "rollbackOnFailure": "true",
+                "vfModules": {
+                  "2017488_pasqualevpe0..2017488PasqualeVpe..PASQUALE_base_vPE_BV..module-0": {
+                    "2017488_pasqualevpe0..2017488PasqualeVpe..PASQUALE_base_vPE_BV..module-0jkyqv": {
+                      "isMissingData": false,
+                      "sdncPreReload": null,
+                      "modelInfo": {
+                        "modelType": "VFmodule",
+                        "modelInvariantId": "b34833bb-6aa9-4ad6-a831-70b06367a091",
+                        "modelVersionId": "040e591e-5d30-4e0d-850f-7266e5a8e013",
+                        "modelName": "2017488PasqualeVpe..PASQUALE_base_vPE_BV..module-0",
+                        "modelVersion": "6",
+                        "modelCustomizationId": "5c5f91f9-5e31-4120-b892-5536587ec258",
+                        "modelCustomizationName": "2017488PasqualeVpe..PASQUALE_base_vPE_BV..module-0"
+                      },
+                      "instanceParams": [
+                        {}
+                      ],
+                      "trackById": "wh18xgy0dc"
+                    }
+                  }
+                },
+                "isMissingData": true,
+                "originalName": "2017-488_PASQUALE-vPE 0",
+                "productFamilyId": "ebc3bc3d-62fd-4a3f-a037-f619df4ff034",
+                "lcpCloudRegionId": null,
+                "tenantId": null,
+                "lineOfBusiness": null,
+                "platformName": null,
+                "modelInfo": {
+                  "modelType": "VF",
+                  "modelInvariantId": "5be7e99e-8eb2-4d97-be63-8081ff3cd10e",
+                  "modelVersionId": "f4d84bb4-a416-4b4e-997e-0059973630b9",
+                  "modelName": "2017-488_PASQUALE-vPE",
+                  "modelVersion": "9.0",
+                  "modelCustomizationName": "2017-488_PASQUALE-vPE 0"
+                },
+                "trackById": "iapflwk8bip"
+              }
+            },
+            "instanceParams": [
+              {
+                "2017488_pasqualevpe0_ASN": "AV_vPE"
+              }
+            ],
+            "validationCounter": 1,
+            "globalSubscriberId": "e433710f-9217-458d-a79d-1c7aff376d89",
+            "productFamilyId": "ebc3bc3d-62fd-4a3f-a037-f619df4ff034",
+            "subscriptionServiceType": "TYLER SILVIA",
+            "lcpCloudRegionId": "AAIAIC25",
+            "tenantId": "092eb9e8e4b7412e8787dd091bc58e86",
+            "aicZoneId": "JAG1",
+            "projectName": "x1",
+            "owningEntityId": "aaa1",
+            "rollbackOnFailure": "true",
+            "bulkSize": 1,
+            "modelInfo": {
+              "modelInvariantId": "598e3f9e-3244-4d8f-a8e0-0e5d7a29eda9",
+              "modelVersionId": "f4d84bb4-a416-4b4e-997e-0059973630b9",
+              "modelName": "PASQUALE vMX vPE_BV Service 488",
+              "modelVersion": "1.0"
+            },
+            "existingVNFCounterMap": {
+              "91415b44-753d-494c-926a-456a9172bbb9": 1
+            },
+            "existingNetworksCounterMap": {},
+            "tenantName": "USP-SIP-IC-24335-T-01",
+            "aicZoneName": "YUDFJULP-JAG1"
+          }
+        },
+        "lcpRegionsAndTenants": {
+          "lcpRegionList": [
+            {
+              "id": "AAIAIC25",
+              "name": "AAIAIC25",
+              "isPermitted": true
+            },
+            {
+              "id": "hvf6",
+              "name": "hvf6",
+              "isPermitted": true
+            }
+          ],
+          "lcpRegionsTenantsMap": {
+            "AAIAIC25": [
+              {
+                "id": "092eb9e8e4b7412e8787dd091bc58e86",
+                "name": "USP-SIP-IC-24335-T-01",
+                "isPermitted": true
+              }
+            ],
+            "hvf6": [
+              {
+                "id": "bae71557c5bb4d5aac6743a4e5f1d054",
+                "name": "AIN Web Tool-15-D-testalexandria",
+                "isPermitted": true
+              },
+              {
+                "id": "229bcdc6eaeb4ca59d55221141d01f8e",
+                "name": "AIN Web Tool-15-D-STTest2",
+                "isPermitted": true
+              },
+              {
+                "id": "1178612d2b394be4834ad77f567c0af2",
+                "name": "AIN Web Tool-15-D-SSPtestcustome",
+                "isPermitted": true
+              },
+              {
+                "id": "19c5ade915eb461e8af52fb2fd8cd1f2",
+                "name": "AIN Web Tool-15-D-UncheckedEcopm",
+                "isPermitted": true
+              },
+              {
+                "id": "de007636e25249238447264a988a927b",
+                "name": "AIN Web Tool-15-D-dfsdf",
+                "isPermitted": true
+              },
+              {
+                "id": "62f29b3613634ca6a3065cbe0e020c44",
+                "name": "AIN/SMS-16-D-Multiservices1",
+                "isPermitted": true
+              },
+              {
+                "id": "649289e30d3244e0b48098114d63c2aa",
+                "name": "AIN Web Tool-15-D-SSPST66",
+                "isPermitted": true
+              },
+              {
+                "id": "3f21eeea6c2c486bba31dab816c05a32",
+                "name": "AIN Web Tool-15-D-ASSPST47",
+                "isPermitted": true
+              },
+              {
+                "id": "f60ce21d3ee6427586cff0d22b03b773",
+                "name": "CESAR-100-D-sspjg67246",
+                "isPermitted": true
+              },
+              {
+                "id": "8774659e425f479895ae091bb5d46560",
+                "name": "CESAR-100-D-sspjg68359",
+                "isPermitted": true
+              },
+              {
+                "id": "624eb554b0d147c19ff8885341760481",
+                "name": "AINWebTool-15-D-iftach",
+                "isPermitted": true
+              },
+              {
+                "id": "214f55f5fc414c678059c383b03e4962",
+                "name": "CESAR-100-D-sspjg612401",
+                "isPermitted": true
+              },
+              {
+                "id": "c90666c291664841bb98e4d981ff1db5",
+                "name": "CESAR-100-D-sspjg621340",
+                "isPermitted": true
+              },
+              {
+                "id": "ce5b6bc5c7b348e1bf4b91ac9a174278",
+                "name": "sspjg621351cloned",
+                "isPermitted": true
+              },
+              {
+                "id": "b386b768a3f24c8e953abbe0b3488c02",
+                "name": "AINWebTool-15-D-eteancomp",
+                "isPermitted": true
+              },
+              {
+                "id": "dc6c4dbfd225474e9deaadd34968646c",
+                "name": "AINWebTool-15-T-SPFET",
+                "isPermitted": true
+              },
+              {
+                "id": "02cb5030e9914aa4be120bd9ed1e19eb",
+                "name": "AINWebTool-15-X-eeweww",
+                "isPermitted": true
+              },
+              {
+                "id": "f2f3830e4c984d45bcd00e1a04158a79",
+                "name": "CESAR-100-D-spjg61909",
+                "isPermitted": true
+              },
+              {
+                "id": "05b91bd5137f4929878edd965755c06d",
+                "name": "CESAR-100-D-sspjg621512cloned",
+                "isPermitted": true
+              },
+              {
+                "id": "7002fbe8482d4a989ddf445b1ce336e0",
+                "name": "AINWebTool-15-X-vdr",
+                "isPermitted": true
+              },
+              {
+                "id": "4008522be43741dcb1f5422022a2aa0b",
+                "name": "AINWebTool-15-D-ssasa",
+                "isPermitted": true
+              },
+              {
+                "id": "f44e2e96a1b6476abfda2fa407b00169",
+                "name": "AINWebTool-15-D-PFNPT",
+                "isPermitted": true
+              },
+              {
+                "id": "b69a52bec8a84669a37a1e8b72708be7",
+                "name": "AINWebTool-15-X-vdre",
+                "isPermitted": true
+              },
+              {
+                "id": "fac7d9fd56154caeb9332202dcf2969f",
+                "name": "AINWebTool-15-X-NONPODECOMP",
+                "isPermitted": true
+              },
+              {
+                "id": "2d34d8396e194eb49969fd61ffbff961",
+                "name": "DN5242-Nov16-T5",
+                "isPermitted": true
+              },
+              {
+                "id": "cb42a77ff45b48a8b8deb83bb64acc74",
+                "name": "ro-T11",
+                "isPermitted": true
+              },
+              {
+                "id": "fa45ca53c80b492fa8be5477cd84fc2b",
+                "name": "ro-T112",
+                "isPermitted": true
+              },
+              {
+                "id": "4914ab0ab3a743e58f0eefdacc1dde77",
+                "name": "DN5242-Nov21-T1",
+                "isPermitted": true
+              },
+              {
+                "id": "d0a3e3f2964542259d155a81c41aadc3",
+                "name": "test-hvf6-09",
+                "isPermitted": true
+              },
+              {
+                "id": "cbb99fe4ada84631b7baf046b6fd2044",
+                "name": "DN5242-Nov16-T3",
+                "isPermitted": true
+              }
+            ]
+          }
+        },
+        "subscribers": [
+          {
+            "id": "CAR_2020_ER",
+            "name": "CAR_2020_ER",
+            "isPermitted": true
+          },
+          {
+            "id": "21014aa2-526b-11e6-beb8-9e71128cae77",
+            "name": "JULIO ERICKSON",
+            "isPermitted": false
+          },
+          {
+            "id": "DHV1707-TestSubscriber-2",
+            "name": "DALE BRIDGES",
+            "isPermitted": false
+          },
+          {
+            "id": "DHV1707-TestSubscriber-1",
+            "name": "LLOYD BRIDGES",
+            "isPermitted": false
+          },
+          {
+            "id": "jimmy-example",
+            "name": "JimmyExampleCust-20161102",
+            "isPermitted": false
+          },
+          {
+            "id": "jimmy-example2",
+            "name": "JimmyExampleCust-20161103",
+            "isPermitted": false
+          },
+          {
+            "id": "ERICA5779-TestSub-PWT-102",
+            "name": "ERICA5779-TestSub-PWT-102",
+            "isPermitted": false
+          },
+          {
+            "id": "ERICA5779-TestSub-PWT-101",
+            "name": "ERICA5779-TestSub-PWT-101",
+            "isPermitted": false
+          },
+          {
+            "id": "a9a77d5a-123e-4ca2-9eb9-0b015d2ee0fb",
+            "name": "Emanuel",
+            "isPermitted": false
+          },
+          {
+            "id": "ERICA5779-Subscriber-4",
+            "name": "ERICA5779-Subscriber-5",
+            "isPermitted": false
+          },
+          {
+            "id": "ERICA5779-TestSub-PWT-103",
+            "name": "ERICA5779-TestSub-PWT-103",
+            "isPermitted": false
+          },
+          {
+            "id": "ERICA5779-Subscriber-2",
+            "name": "ERICA5779-Subscriber-2",
+            "isPermitted": false
+          },
+          {
+            "id": "e433710f-9217-458d-a79d-1c7aff376d89",
+            "name": "SILVIA ROBBINS",
+            "isPermitted": true
+          },
+          {
+            "id": "ERICA5779-Subscriber-3",
+            "name": "ERICA5779-Subscriber-3",
+            "isPermitted": false
+          },
+          {
+            "id": "31739f3e-526b-11e6-beb8-9e71128cae77",
+            "name": "CRAIG/ROBERTS",
+            "isPermitted": false
+          }
+        ],
+        "productFamilies": [
+          {
+            "id": "ebc3bc3d-62fd-4a3f-a037-f619df4ff034",
+            "name": "ERICA",
+            "isPermitted": true
+          },
+          {
+            "id": "17cc1042-527b-11e6-beb8-9e71128cae77",
+            "name": "IGNACIO",
+            "isPermitted": true
+          },
+          {
+            "id": "36b4733a-53f4-4cc8-8ff0-9172e5fc4b8e",
+            "name": "Christie",
+            "isPermitted": true
+          },
+          {
+            "id": "a4f6f2ae-9bf5-4ed7-b904-06b2099c4bd7",
+            "name": "Enhanced Services",
+            "isPermitted": true
+          },
+          {
+            "id": "vTerrance",
+            "name": "vTerrance",
+            "isPermitted": true
+          },
+          {
+            "id": "323d69d9-2efe-4r45-ay0a-89ea7ard4e6f",
+            "name": "vEsmeralda",
+            "isPermitted": true
+          },
+          {
+            "id": "a9a77d5a-123e-4ca2-9eb9-0b015d2ee0fb",
+            "name": "Emanuel",
+            "isPermitted": true
+          },
+          {
+            "id": "d8a6ed93-251c-47ca-adc9-86671fd19f4c",
+            "name": "BVOIP",
+            "isPermitted": true
+          },
+          {
+            "id": "db171b8f-115c-4992-a2e3-ee04cae357e0",
+            "name": "LINDSEY",
+            "isPermitted": true
+          },
+          {
+            "id": "LRSI-OSPF",
+            "name": "LRSI-OSPF",
+            "isPermitted": true
+          },
+          {
+            "id": "vRosemarie",
+            "name": "HNGATEWAY",
+            "isPermitted": true
+          },
+          {
+            "id": "vHNPaas",
+            "name": "WILKINS",
+            "isPermitted": true
+          },
+          {
+            "id": "e433710f-9217-458d-a79d-1c7aff376d89",
+            "name": "TYLER SILVIA",
+            "isPermitted": true
+          },
+          {
+            "id": "b6a3f28c-eebf-494c-a900-055cc7c874ce",
+            "name": "VROUTER",
+            "isPermitted": true
+          },
+          {
+            "id": "vMuriel",
+            "name": "vMuriel",
+            "isPermitted": true
+          },
+          {
+            "id": "0ee8c1bc-7cbd-4b0a-a1ac-e9999255abc1",
+            "name": "CARA Griffin",
+            "isPermitted": true
+          },
+          {
+            "id": "c7611ebe-c324-48f1-8085-94aef0c6ef3d",
+            "name": "DARREN MCGEE",
+            "isPermitted": true
+          },
+          {
+            "id": "e30755dc-5673-4b6b-9dcf-9abdd96b93d1",
+            "name": "Transport",
+            "isPermitted": true
+          },
+          {
+            "id": "vSalvatore",
+            "name": "vSalvatore",
+            "isPermitted": true
+          },
+          {
+            "id": "d7bb0a21-66f2-4e6d-87d9-9ef3ced63ae4",
+            "name": "JOSEFINA",
+            "isPermitted": true
+          },
+          {
+            "id": "vHubbard",
+            "name": "vHubbard",
+            "isPermitted": true
+          },
+          {
+            "id": "12a96a9d-4b4c-4349-a950-fe1159602621",
+            "name": "DARREN MCGEE",
+            "isPermitted": true
+          }
+        ],
+        "serviceTypes": {
+          "e433710f-9217-458d-a79d-1c7aff376d89": [
+            {
+              "id": "0",
+              "name": "vRichardson",
+              "isPermitted": false
+            },
+            {
+              "id": "1",
+              "name": "TYLER SILVIA",
+              "isPermitted": true
             },
-            "collectionResource": {},
-            "configurations": {
-              "Port Mirroring Configuration By Policy 0": {
-                "uuid": "b4398538-e89d-4f13-b33d-ca323434ba50",
-                "invariantUuid": "6ef0ca40-f366-4897-951f-abd65d25f6f7",
-                "description": "A port mirroring configuration by policy object",
-                "name": "Port Mirroring Configuration By Policy",
-                "version": "27.0",
-                "customizationUuid": "3c3b7b8d-8669-4b3b-8664-61970041fad2",
-                "inputs": {},
-                "commands": {},
-                "properties": {},
-                "type": "Configuration",
-                "modelCustomizationName": "Port Mirroring Configuration By Policy 0",
-                "sourceNodes": [],
-                "collectorNodes": null,
-                "configurationByPolicy": false
-              }
+            {
+              "id": "2",
+              "name": "Emanuel",
+              "isPermitted": false
             },
-            "serviceProxies": {},
-            "vfModules": {
-              "vf_vmee0..VfVmee..vmme_vlc..module-1": {
-                "uuid": "522159d5-d6e0-4c2a-aa44-5a542a12a830",
-                "invariantUuid": "98a7c88b-b577-476a-90e4-e25a5871e02b",
-                "customizationUuid": "55b1be94-671a-403e-a26c-667e9c47d091",
-                "description": null,
-                "name": "VfVmee..vmme_vlc..module-1",
-                "version": "2",
-                "modelCustomizationName": "VfVmee..vmme_vlc..module-1",
-                "properties": {
-                  "minCountInstances": 0,
-                  "maxCountInstances": null,
-                  "initialCount": 0,
-                  "vfModuleLabel": "vmme_vlc"
-                },
-                "inputs": {},
-                "volumeGroupAllowed": false
-              },
-              "vf_vmee0..VfVmee..vmme_gpb..module-2": {
-                "uuid": "41708296-e443-4c71-953f-d9a010f059e1",
-                "invariantUuid": "1cca90b8-3490-495e-87da-3f3e4c57d5b9",
-                "customizationUuid": "6add59e0-7fe1-4bc4-af48-f8812422ae7c",
-                "description": null,
-                "name": "VfVmee..vmme_gpb..module-2",
-                "version": "2",
-                "modelCustomizationName": "VfVmee..vmme_gpb..module-2",
-                "properties": {
-                  "minCountInstances": 0,
-                  "maxCountInstances": null,
-                  "initialCount": 0,
-                  "vfModuleLabel": "vmme_gpb"
-                },
-                "inputs": {},
-                "volumeGroupAllowed": false
-              },
-              "vf_vmee0..VfVmee..base_vmme..module-0": {
-                "uuid": "a27f5cfc-7f12-4f99-af08-0af9c3885c87",
-                "invariantUuid": "a6f9e51a-2b35-416a-ae15-15e58d61f36d",
-                "customizationUuid": "f8c040f1-7e51-4a11-aca8-acf256cfd861",
-                "description": null,
-                "name": "VfVmee..base_vmme..module-0",
-                "version": "2",
-                "modelCustomizationName": "VfVmee..base_vmme..module-0",
-                "properties": {
-                  "minCountInstances": 1,
-                  "maxCountInstances": 1,
-                  "initialCount": 1,
-                  "vfModuleLabel": "base_vmme"
-                },
-                "inputs": {},
-                "volumeGroupAllowed": true
-              }
+            {
+              "id": "3",
+              "name": "vJamie",
+              "isPermitted": false
             },
-            "volumeGroups": {
-              "vf_vmee0..VfVmee..base_vmme..module-0": {
-                "uuid": "a27f5cfc-7f12-4f99-af08-0af9c3885c87",
-                "invariantUuid": "a6f9e51a-2b35-416a-ae15-15e58d61f36d",
-                "customizationUuid": "f8c040f1-7e51-4a11-aca8-acf256cfd861",
-                "description": null,
-                "name": "VfVmee..base_vmme..module-0",
-                "version": "2",
-                "modelCustomizationName": "VfVmee..base_vmme..module-0",
-                "properties": {
-                  "minCountInstances": 1,
-                  "maxCountInstances": 1,
-                  "initialCount": 1,
-                  "vfModuleLabel": "base_vmme"
-                },
-                "inputs": {}
-              }
+            {
+              "id": "4",
+              "name": "vVoiceMail",
+              "isPermitted": false
             },
-            "pnfs": {}
-          }
-        },
-        "serviceInstance": {
-          "f4d84bb4-a416-4b4e-997e-0059973630b9": {
-            "vnfs": {
-              "2017-488_ADIOD-vPE 0": {
-                "rollbackOnFailure": "true",
-                "vfModules": {
-                  "2017488_adiodvpe0..2017488AdiodVpe..ADIOD_base_vPE_BV..module-0": {
-                    "2017488_adiodvpe0..2017488AdiodVpe..ADIOD_base_vPE_BV..module-0jkyqv": {
-                      "isMissingData": false,
-                      "sdncPreReload": null,
-                      "modelInfo": {
-                        "modelType": "VFmodule",
-                        "modelInvariantId": "b34833bb-6aa9-4ad6-a831-70b06367a091",
-                        "modelVersionId": "040e591e-5d30-4e0d-850f-7266e5a8e013",
-                        "modelName": "2017488AdiodVpe..ADIOD_base_vPE_BV..module-0",
-                        "modelVersion": "6",
-                        "modelCustomizationId": "5c5f91f9-5e31-4120-b892-5536587ec258",
-                        "modelCustomizationName": "2017488AdiodVpe..ADIOD_base_vPE_BV..module-0"
-                      },
-                      "instanceParams": [
-                        {}
-                      ],
-                      "trackById": "n2ydptuy9lj"
-                    }
-                  }
-                },
-                "isMissingData": false,
-                "originalName": null,
-                "productFamilyId": "ebc3bc3d-62fd-4a3f-a037-f619df4ff034",
-                "lcpCloudRegionId": null,
-                "tenantId": null,
-                "lineOfBusiness": null,
-                "platformName": null,
-                "modelInfo": {
-                  "modelType": "VF",
-                  "modelInvariantId": "5be7e99e-8eb2-4d97-be63-8081ff3cd10e",
-                  "modelVersionId": "f4d84bb4-a416-4b4e-997e-0059973630b9",
-                  "modelName": "2017-488_ADIOD-vPE",
-                  "modelVersion": "9.0",
-                  "modelCustomizationName": "2017-488_ADIOD-vPE 0"
-                },
-                "trackById": "iapflwk8bip"
-              },
-              "2017-488_ADIOD-vPE 0:0001": {
-                "rollbackOnFailure": "true",
-                "vfModules": {
-                  "2017488_adiodvpe0..2017488AdiodVpe..ADIOD_base_vPE_BV..module-0": {
-                    "2017488_adiodvpe0..2017488AdiodVpe..ADIOD_base_vPE_BV..module-0jkyqv": {
-                      "isMissingData": false,
-                      "sdncPreReload": null,
-                      "modelInfo": {
-                        "modelType": "VFmodule",
-                        "modelInvariantId": "b34833bb-6aa9-4ad6-a831-70b06367a091",
-                        "modelVersionId": "040e591e-5d30-4e0d-850f-7266e5a8e013",
-                        "modelName": "2017488AdiodVpe..ADIOD_base_vPE_BV..module-0",
-                        "modelVersion": "6",
-                        "modelCustomizationId": "5c5f91f9-5e31-4120-b892-5536587ec258",
-                        "modelCustomizationName": "2017488AdiodVpe..ADIOD_base_vPE_BV..module-0"
-                      },
-                      "instanceParams": [
-                        {}
-                      ],
-                      "trackById": "wh18xgy0dc"
-                    }
-                  }
-                },
-                "isMissingData": true,
-                "originalName": "2017-488_ADIOD-vPE 0",
-                "productFamilyId": "ebc3bc3d-62fd-4a3f-a037-f619df4ff034",
-                "lcpCloudRegionId": null,
-                "tenantId": null,
-                "lineOfBusiness": null,
-                "platformName": null,
-                "modelInfo": {
-                  "modelType": "VF",
-                  "modelInvariantId": "5be7e99e-8eb2-4d97-be63-8081ff3cd10e",
-                  "modelVersionId": "f4d84bb4-a416-4b4e-997e-0059973630b9",
-                  "modelName": "2017-488_ADIOD-vPE",
-                  "modelVersion": "9.0",
-                  "modelCustomizationName": "2017-488_ADIOD-vPE 0"
-                },
-                "trackById": "iapflwk8bip"
-              }
+            {
+              "id": "5",
+              "name": "Kennedy",
+              "isPermitted": false
             },
-            "instanceParams": [
-              {
-                "2017488_adiodvpe0_ASN": "AV_vPE"
-              }
-            ],
-            "validationCounter": 1,
-            "globalSubscriberId": "e433710f-9217-458d-a79d-1c7aff376d89",
-            "productFamilyId": "ebc3bc3d-62fd-4a3f-a037-f619df4ff034",
-            "subscriptionServiceType": "TYLER SILVIA",
-            "lcpCloudRegionId": "JANET25",
-            "tenantId": "092eb9e8e4b7412e8787dd091bc58e86",
-            "aicZoneId": "JAG1",
-            "projectName": "x1",
-            "owningEntityId": "aaa1",
-            "rollbackOnFailure": "true",
-            "bulkSize": 1,
-            "modelInfo": {
-              "modelInvariantId": "598e3f9e-3244-4d8f-a8e0-0e5d7a29eda9",
-              "modelVersionId": "f4d84bb4-a416-4b4e-997e-0059973630b9",
-              "modelName": "ADIOD vMX vPE_BV Service 488",
-              "modelVersion": "1.0"
+            {
+              "id": "6",
+              "name": "vPorfirio",
+              "isPermitted": false
             },
-            "existingVNFCounterMap": {
-              "91415b44-753d-494c-926a-456a9172bbb9": 1
+            {
+              "id": "7",
+              "name": "vVM",
+              "isPermitted": false
+            },
+            {
+              "id": "8",
+              "name": "vOTA",
+              "isPermitted": false
+            },
+            {
+              "id": "9",
+              "name": "vFLORENCE",
+              "isPermitted": false
+            },
+            {
+              "id": "10",
+              "name": "vMNS",
+              "isPermitted": false
+            },
+            {
+              "id": "11",
+              "name": "vEsmeralda",
+              "isPermitted": false
+            },
+            {
+              "id": "12",
+              "name": "VPMS",
+              "isPermitted": false
+            },
+            {
+              "id": "13",
+              "name": "vWINIFRED",
+              "isPermitted": false
+            },
+            {
+              "id": "14",
+              "name": "SSD",
+              "isPermitted": false
+            },
+            {
+              "id": "15",
+              "name": "vMOG",
+              "isPermitted": false
+            },
+            {
+              "id": "16",
+              "name": "LINDSEY",
+              "isPermitted": false
             },
-            "existingNetworksCounterMap": {},
-            "tenantName": "USP-SIP-IC-24335-T-01",
-            "aicZoneName": "YUDFJULP-JAG1"
-          }
-        },
-        "lcpRegionsAndTenants": {
-          "lcpRegionList": [
             {
-              "id": "JANET25",
-              "name": "JANET25",
-              "isPermitted": true
+              "id": "17",
+              "name": "JOHANNA_SANTOS",
+              "isPermitted": false
             },
             {
-              "id": "hvf6",
-              "name": "hvf6",
-              "isPermitted": true
+              "id": "18",
+              "name": "vCarroll",
+              "isPermitted": false
             }
-          ],
-          "lcpRegionsTenantsMap": {
-            "JANET25": [
-              {
-                "id": "092eb9e8e4b7412e8787dd091bc58e86",
-                "name": "USP-SIP-IC-24335-T-01",
-                "isPermitted": true
-              }
-            ],
-            "hvf6": [
-              {
-                "id": "bae71557c5bb4d5aac6743a4e5f1d054",
-                "name": "AIN Web Tool-15-D-testalexandria",
-                "isPermitted": true
-              },
-              {
-                "id": "d0a3e3f2964542259d155a81c41aadc3",
-                "name": "test-hvf6-09",
-                "isPermitted": true
-              },
-              {
-                "id": "fa45ca53c80b492fa8be5477cd84fc2b",
-                "name": "ro-T112",
-                "isPermitted": true
-              },
-              {
-                "id": "cbb99fe4ada84631b7baf046b6fd2044",
-                "name": "DN5242-Nov16-T3",
-                "isPermitted": true
-              }
-            ]
-          }
+          ]
         },
-        "subscribers": [
+        "aicZones": [
+          {
+            "id": "NFT1",
+            "name": "NFTJSSSS-NFT1"
+          },
+          {
+            "id": "JAG1",
+            "name": "YUDFJULP-JAG1"
+          },
+          {
+            "id": "YYY1",
+            "name": "UUUAIAAI-YYY1"
+          },
+          {
+            "id": "BAN1",
+            "name": "VSDKYUTP-BAN1"
+          },
+          {
+            "id": "DKJ1",
+            "name": "DKJSJDKA-DKJ1"
+          },
+          {
+            "id": "MCS1",
+            "name": "ASACMAMS-MCS1"
+          },
+          {
+            "id": "UIO1",
+            "name": "uioclli1-UIO1"
+          },
+          {
+            "id": "RAJ1",
+            "name": "YGBIJNLQ-RAJ1"
+          },
+          {
+            "id": "OPA1",
+            "name": "opaclli1-OPA1"
+          },
+          {
+            "id": "SDE1",
+            "name": "ZXCVBNMA-SDE1"
+          },
+          {
+            "id": "VEN2",
+            "name": "FGHJUHIL-VEN2"
+          },
+          {
+            "id": "ORL1",
+            "name": "ORLDFLMA-ORL1"
+          },
+          {
+            "id": "JAD1",
+            "name": "JADECLLI-JAD1"
+          },
+          {
+            "id": "ZXL1",
+            "name": "LWLWCANN-ZXL1"
+          },
+          {
+            "id": "CKL1",
+            "name": "CLKSKCKK-CKL1"
+          },
+          {
+            "id": "SDF1",
+            "name": "sdfclli1-SDF1"
+          },
+          {
+            "id": "RAD1",
+            "name": "RADICAL1-RAD1"
+          },
+          {
+            "id": "KIT1",
+            "name": "BHYJFGLN-KIT1"
+          },
+          {
+            "id": "REL1",
+            "name": "INGERFGT-REL1"
+          },
+          {
+            "id": "JNL1",
+            "name": "CJALSDAC-JNL1"
+          },
+          {
+            "id": "OLK1",
+            "name": "OLKOLKLS-OLK1"
+          },
+          {
+            "id": "CHI1",
+            "name": "CHILLIWE-CHI1"
+          },
+          {
+            "id": "UUU4",
+            "name": "UUUAAAUU-UUU4"
+          },
+          {
+            "id": "TUF1",
+            "name": "TUFCLLI1-TUF1"
+          },
+          {
+            "id": "KJN1",
+            "name": "CKALDKSA-KJN1"
+          },
+          {
+            "id": "SAM1",
+            "name": "SNDGCA64-SAN1"
+          },
+          {
+            "id": "SCK1",
+            "name": "SCKSCKSK-SCK1"
+          },
+          {
+            "id": "HJH1",
+            "name": "AOEEQQQD-HJH1"
+          },
+          {
+            "id": "HGD1",
+            "name": "SDFQWHGD-HGD1"
+          },
+          {
+            "id": "KOR1",
+            "name": "HYFLNBVT-KOR1"
+          },
+          {
+            "id": "ATL43",
+            "name": "AICLOCID-ATL43"
+          },
+          {
+            "id": "ATL54",
+            "name": "AICFTAAI-ATL54"
+          },
+          {
+            "id": "ATL66",
+            "name": "CLLIAAII-ATL66"
+          },
+          {
+            "id": "VEL1",
+            "name": "BNMLKUIK-VEL1"
+          },
+          {
+            "id": "ICC1",
+            "name": "SANJITAT-ICC1"
+          },
+          {
+            "id": "MNT11",
+            "name": "WSXEFBTH-MNT11"
+          },
+          {
+            "id": "DEF2",
+            "name": "WSBHGTYL-DEF2"
+          },
+          {
+            "id": "MAD11",
+            "name": "SDFQWGKL-MAD11"
+          },
+          {
+            "id": "OLG1",
+            "name": "OLHOLHOL-OLG1"
+          },
+          {
+            "id": "GAR1",
+            "name": "NGFVSJKO-GAR1"
+          },
+          {
+            "id": "SAN22",
+            "name": "GNVLSCTL-SAN22"
+          },
+          {
+            "id": "HRG1",
+            "name": "HRGHRGGS-HRG1"
+          },
+          {
+            "id": "JCS1",
+            "name": "JCSJSCJS-JCS1"
+          },
+          {
+            "id": "DHA12",
+            "name": "WSXEDECF-DHA12"
+          },
+          {
+            "id": "HJE1",
+            "name": "AOEEWWWD-HJE1"
+          },
+          {
+            "id": "NCA1",
+            "name": "NCANCANN-NCA1"
+          },
+          {
+            "id": "IOP1",
+            "name": "iopclli1-IOP1"
+          },
+          {
+            "id": "RTY1",
+            "name": "rtyclli1-RTY1"
+          },
+          {
+            "id": "KAP1",
+            "name": "HIOUYTRQ-KAP1"
+          },
+          {
+            "id": "ZEN1",
+            "name": "ZENCLLI1-ZEN1"
+          },
+          {
+            "id": "HKA1",
+            "name": "JAKHLASS-HKA1"
+          },
+          {
+            "id": "CQK1",
+            "name": "CQKSCAKK-CQK1"
+          },
+          {
+            "id": "SAI1",
+            "name": "UBEKQLPD-SAI1"
+          },
+          {
+            "id": "ERT1",
+            "name": "ertclli1-ERT1"
+          },
+          {
+            "id": "IBB1",
+            "name": "PLMKOIJU-IBB1"
+          },
+          {
+            "id": "TIR2",
+            "name": "PLKINHYI-TIR2"
+          },
+          {
+            "id": "HSD1",
+            "name": "CHASKCDS-HSD1"
+          },
+          {
+            "id": "SLF78",
+            "name": "SDCTLFN1-SLF78"
+          },
+          {
+            "id": "SEE78",
+            "name": "SDCTEEE4-SEE78"
+          },
+          {
+            "id": "SAN13",
+            "name": "TOKYJPFA-SAN13"
+          },
+          {
+            "id": "SAA78",
+            "name": "SDCTAAA1-SAA78"
+          },
+          {
+            "id": "LUC1",
+            "name": "ATLDFGYC-LUC1"
+          },
+          {
+            "id": "AMD13",
+            "name": "MEMATLAN-AMD13"
+          },
+          {
+            "id": "TOR1",
+            "name": "TOROONXN-TOR1"
+          },
+          {
+            "id": "QWE1",
+            "name": "QWECLLI1-QWE1"
+          },
+          {
+            "id": "ZOG1",
+            "name": "ZOGASTRO-ZOG1"
+          },
+          {
+            "id": "CAL33",
+            "name": "CALIFORN-CAL33"
+          },
+          {
+            "id": "SHH78",
+            "name": "SDIT1HHH-SHH78"
+          },
+          {
+            "id": "DSA1",
+            "name": "LKJHGFDS-DSA1"
+          },
+          {
+            "id": "CLG1",
+            "name": "CLGRABAD-CLG1"
+          },
+          {
+            "id": "BNA1",
+            "name": "BNARAGBK-BNA1"
+          },
+          {
+            "id": "ATL84",
+            "name": "CANTTCOC-ATL84"
+          },
+          {
+            "id": "APP1",
+            "name": "WBHGTYUI-APP1"
+          },
+          {
+            "id": "RJN1",
+            "name": "RJNRBZAW-RJN1"
+          },
+          {
+            "id": "EHH78",
+            "name": "SDCSHHH5-EHH78"
+          },
+          {
+            "id": "mac10",
+            "name": "PKGTESTF-mac10"
+          },
+          {
+            "id": "SXB78",
+            "name": "SDCTGXB1-SXB78"
+          },
+          {
+            "id": "SAX78",
+            "name": "SDCTAXG1-SAX78"
+          },
+          {
+            "id": "SYD1",
+            "name": "SYDNAUBV-SYD1"
+          },
+          {
+            "id": "TOK1",
+            "name": "TOKYJPFA-TOK1"
+          },
+          {
+            "id": "KGM2",
+            "name": "KGMTNC20-KGM2"
+          },
+          {
+            "id": "DCC1b",
+            "name": "POIUYTGH-DCC1b"
+          },
+          {
+            "id": "SKK78",
+            "name": "SDCTKKK1-SKK78"
+          },
+          {
+            "id": "SGG78",
+            "name": "SDCTGGG1-SGG78"
+          },
+          {
+            "id": "SJJ78",
+            "name": "SDCTJJJ1-SJJ78"
+          },
+          {
+            "id": "SBX78",
+            "name": "SDCTBXG1-SBX78"
+          },
+          {
+            "id": "LAG1",
+            "name": "LARGIZON-LAG1"
+          },
+          {
+            "id": "IAA1",
+            "name": "QAZXSWED-IAA1"
+          },
+          {
+            "id": "POI1",
+            "name": "PLMNJKIU-POI1"
+          },
+          {
+            "id": "LAG1a",
+            "name": "LARGIZON-LAG1a"
+          },
+          {
+            "id": "PBL1",
+            "name": "PBLAPBAI-PBL1"
+          },
+          {
+            "id": "LAG45",
+            "name": "LARGIZON-LAG1a"
+          },
+          {
+            "id": "MAR1",
+            "name": "MNBVCXZM-MAR1"
+          },
+          {
+            "id": "HST70",
+            "name": "HSTNTX70-HST70"
+          },
+          {
+            "id": "DCC1a",
+            "name": "POIUYTGH-DCC1a"
+          },
+          {
+            "id": "TOL1",
+            "name": "TOLDOH21-TOL1"
+          },
+          {
+            "id": "LON1",
+            "name": "LONEENCO-LON1"
+          },
+          {
+            "id": "SJU78",
+            "name": "SDIT1JUB-SJU78"
+          },
+          {
+            "id": "STN27",
+            "name": "HSTNTX01-STN27"
+          },
           {
-            "id": "CAR_2020_ER",
-            "name": "CAR_2020_ER",
-            "isPermitted": true
+            "id": "SSW56",
+            "name": "ss8126GT-SSW56"
           },
           {
-            "id": "21014aa2-526b-11e6-beb8-9e71128cae77",
-            "name": "JULIO ERICKSON",
-            "isPermitted": false
+            "id": "SBB78",
+            "name": "SDIT1BBB-SBB78"
           },
           {
-            "id": "DHV1707-TestSubscriber-2",
-            "name": "DALE BRIDGES",
-            "isPermitted": false
+            "id": "DCC3",
+            "name": "POIUYTGH-DCC3"
           },
           {
-            "id": "DHV1707-TestSubscriber-1",
-            "name": "LLOYD BRIDGES",
-            "isPermitted": false
+            "id": "GNV1",
+            "name": "GNVLSCTL-GNV1"
           },
           {
-            "id": "jimmy-example",
-            "name": "JimmyExampleCust-20161102",
-            "isPermitted": false
+            "id": "WAS1",
+            "name": "WASHDCSW-WAS1"
           },
           {
-            "id": "jimmy-example2",
-            "name": "JimmyExampleCust-20161103",
-            "isPermitted": false
+            "id": "TOY1",
+            "name": "TORYONNZ-TOY1"
           },
           {
-            "id": "ERICA5779-TestSub-PWT-102",
-            "name": "ERICA5779-TestSub-PWT-102",
-            "isPermitted": false
+            "id": "STT1",
+            "name": "STTLWA02-STT1"
           },
           {
-            "id": "ERICA5779-TestSub-PWT-101",
-            "name": "ERICA5779-TestSub-PWT-101",
-            "isPermitted": false
+            "id": "STG1",
+            "name": "STTGGE62-STG1"
           },
           {
-            "id": "a9a77d5a-123e-4ca2-9eb9-0b015d2ee0fb",
-            "name": "Emanuel",
-            "isPermitted": false
+            "id": "SLL78",
+            "name": "SDCTLLL1-SLL78"
           },
           {
-            "id": "ERICA5779-Subscriber-4",
-            "name": "ERICA5779-Subscriber-5",
-            "isPermitted": false
+            "id": "SBU78",
+            "name": "SDIT1BUB-SBU78"
           },
           {
-            "id": "ERICA5779-TestSub-PWT-103",
-            "name": "ERICA5779-TestSub-PWT-103",
-            "isPermitted": false
+            "id": "ATL2",
+            "name": "ATLNGANW-ATL2"
           },
           {
-            "id": "ERICA5779-Subscriber-2",
-            "name": "ERICA5779-Subscriber-2",
-            "isPermitted": false
+            "id": "BOT1",
+            "name": "BOTHWAKY-BOT1"
           },
           {
-            "id": "e433710f-9217-458d-a79d-1c7aff376d89",
-            "name": "SILVIA ROBBINS",
-            "isPermitted": true
+            "id": "SNG1",
+            "name": "SNGPSIAU-SNG1"
           },
           {
-            "id": "ERICA5779-Subscriber-3",
-            "name": "ERICA5779-Subscriber-3",
-            "isPermitted": false
+            "id": "NYC1",
+            "name": "NYCMNY54-NYC1"
           },
           {
-            "id": "31739f3e-526b-11e6-beb8-9e71128cae77",
-            "name": "CRAIG/ROBERTS",
-            "isPermitted": false
-          }
-        ],
-        "productFamilies": [
+            "id": "LAG1b",
+            "name": "LARGIZON-LAG1b"
+          },
           {
-            "id": "ebc3bc3d-62fd-4a3f-a037-f619df4ff034",
-            "name": "SCOTTIE",
-            "isPermitted": true
+            "id": "AMD15",
+            "name": "AMDFAA01-AMD15"
           },
           {
-            "id": "17cc1042-527b-11e6-beb8-9e71128cae77",
-            "name": "IGNACIO",
-            "isPermitted": true
+            "id": "SNA1",
+            "name": "SNANTXCA-SNA1"
           },
           {
-            "id": "36b4733a-53f4-4cc8-8ff0-9172e5fc4b8e",
-            "name": "Christie",
-            "isPermitted": true
+            "id": "PLT1",
+            "name": "PLTNCA60-PLT1"
           },
           {
-            "id": "a4f6f2ae-9bf5-4ed7-b904-06b2099c4bd7",
-            "name": "Enhanced Services",
-            "isPermitted": true
+            "id": "TLP1",
+            "name": "TLPNXM18-TLP1"
           },
           {
-            "id": "vTerrance",
-            "name": "vTerrance",
-            "isPermitted": true
+            "id": "SDD81",
+            "name": "SAIT1DD6-SDD81"
           },
           {
-            "id": "323d69d9-2efe-4r45-ay0a-89ea7ard4e6f",
-            "name": "vSCP",
-            "isPermitted": true
+            "id": "DCC1",
+            "name": "POIUYTGH-DCC1"
           },
           {
-            "id": "a9a77d5a-123e-4ca2-9eb9-0b015d2ee0fb",
-            "name": "Emanuel",
-            "isPermitted": true
+            "id": "DCC2",
+            "name": "POIUYTGH-DCC2"
           },
           {
-            "id": "d8a6ed93-251c-47ca-adc9-86671fd19f4c",
-            "name": "BVOIP",
-            "isPermitted": true
+            "id": "OKC1",
+            "name": "OKCBOK55-OKC1"
           },
           {
-            "id": "db171b8f-115c-4992-a2e3-ee04cae357e0",
-            "name": "LINDSEY",
-            "isPermitted": true
+            "id": "PAR1",
+            "name": "PARSFRCG-PAR1"
           },
           {
-            "id": "LRSI-OSPF",
-            "name": "LRSI-OSPF",
-            "isPermitted": true
+            "id": "TES36",
+            "name": "ABCEETES-TES36"
           },
           {
-            "id": "vRosemarie",
-            "name": "HNGATEWAY",
-            "isPermitted": true
+            "id": "COM1",
+            "name": "PLMKOPIU-COM1"
           },
           {
-            "id": "vHNPaas",
-            "name": "WILKINS",
-            "isPermitted": true
+            "id": "ANI1",
+            "name": "ATLNGTRE-ANI1"
           },
           {
-            "id": "e433710f-9217-458d-a79d-1c7aff376d89",
-            "name": "TYLER SILVIA",
-            "isPermitted": true
+            "id": "SDG78",
+            "name": "SDIT1BDG-SDG78"
           },
           {
-            "id": "b6a3f28c-eebf-494c-a900-055cc7c874ce",
-            "name": "VROUTER",
-            "isPermitted": true
+            "id": "mac20",
+            "name": "PKGTESTF-mac20"
           },
           {
-            "id": "Cisneros",
-            "name": "vMuriel",
-            "isPermitted": true
+            "id": "DSF45",
+            "name": "DSFBG123-DSF45"
           },
           {
-            "id": "0ee8c1bc-7cbd-4b0a-a1ac-e9999255abc1",
-            "name": "CARA Griffin",
-            "isPermitted": true
+            "id": "HST25",
+            "name": "HSTNTX01-HST25"
           },
           {
-            "id": "c7611ebe-c324-48f1-8085-94aef0c6ef3d",
-            "name": "DARREN MCGEE",
-            "isPermitted": true
+            "id": "AMD18",
+            "name": "AUDIMA01-AMD18"
           },
           {
-            "id": "e30755dc-5673-4b6b-9dcf-9abdd96b93d1",
-            "name": "Transport",
-            "isPermitted": true
+            "id": "SAA80",
+            "name": "SAIT9AA3-SAA80"
           },
           {
-            "id": "vSalvatore",
-            "name": "vSalvatore",
-            "isPermitted": true
+            "id": "SSA56",
+            "name": "SSIT2AA7-SSA56"
           },
           {
-            "id": "d7bb0a21-66f2-4e6d-87d9-9ef3ced63ae4",
-            "name": "Josefina",
-            "isPermitted": true
+            "id": "SDD82",
+            "name": "SAIT1DD9-SDD82"
           },
           {
-            "id": "vHubbard",
-            "name": "vHubbard",
-            "isPermitted": true
+            "id": "JCV1",
+            "name": "JCVLFLBW-JCV1"
           },
           {
-            "id": "12a96a9d-4b4c-4349-a950-fe1159602621",
-            "name": "DARREN MCGEE",
-            "isPermitted": true
-          }
-        ],
-        "serviceTypes": {
-          "e433710f-9217-458d-a79d-1c7aff376d89": [
-            {
-              "id": "0",
-              "name": "vRichardson",
-              "isPermitted": false
-            },
-            {
-              "id": "1",
-              "name": "TYLER SILVIA",
-              "isPermitted": true
-            },
-            {
-              "id": "2",
-              "name": "Emanuel",
-              "isPermitted": false
-            },
-            {
-              "id": "3",
-              "name": "vJamie",
-              "isPermitted": false
-            },
-            {
-              "id": "4",
-              "name": "vVoiceMail",
-              "isPermitted": false
-            },
-            {
-              "id": "5",
-              "name": "Kennedy",
-              "isPermitted": false
-            },
-            {
-              "id": "6",
-              "name": "vSEGW",
-              "isPermitted": false
-            },
-            {
-              "id": "7",
-              "name": "vVM",
-              "isPermitted": false
-            },
-            {
-              "id": "8",
-              "name": "vOTA",
-              "isPermitted": false
-            },
-            {
-              "id": "9",
-              "name": "vMME",
-              "isPermitted": false
-            },
-            {
-              "id": "10",
-              "name": "vMNS",
-              "isPermitted": false
-            },
-            {
-              "id": "11",
-              "name": "vSCP",
-              "isPermitted": false
-            },
-            {
-              "id": "12",
-              "name": "VPMS",
-              "isPermitted": false
-            },
-            {
-              "id": "13",
-              "name": "vMMSC",
-              "isPermitted": false
-            },
-            {
-              "id": "14",
-              "name": "SSD",
-              "isPermitted": false
-            },
-            {
-              "id": "15",
-              "name": "vMOG",
-              "isPermitted": false
-            },
-            {
-              "id": "16",
-              "name": "LINDSEY",
-              "isPermitted": false
-            },
-            {
-              "id": "17",
-              "name": "JOHANNA_SANTOS",
-              "isPermitted": false
-            },
-            {
-              "id": "18",
-              "name": "vCarroll",
-              "isPermitted": false
-            }
-          ]
-        },
-        "aicZones": [
+            "id": "SUL2",
+            "name": "WERTYUJK-SUL2"
+          },
+          {
+            "id": "PUR1",
+            "name": "purelyde-PUR1"
+          },
+          {
+            "id": "FDE55",
+            "name": "FDERT555-FDE55"
+          },
+          {
+            "id": "SITE",
+            "name": "LONEENCO-SITE"
+          },
+          {
+            "id": "ATL1",
+            "name": "ATLNGAMA-ATL1"
+          },
+          {
+            "id": "JUL1",
+            "name": "ZXCVBNMM-JUL1"
+          },
+          {
+            "id": "TAT34",
+            "name": "TESAAISB-TAT34"
+          },
+          {
+            "id": "XCP12",
+            "name": "CHKGH123-XCP12"
+          },
+          {
+            "id": "RAI1",
+            "name": "poiuytre-RAI1"
+          },
+          {
+            "id": "HPO1",
+            "name": "ATLNGAUP-HPO1"
+          },
+          {
+            "id": "KJF12",
+            "name": "KJFDH123-KJF12"
+          },
+          {
+            "id": "SCC80",
+            "name": "SAIT9CC3-SCC80"
+          },
+          {
+            "id": "SAA12",
+            "name": "SAIT9AF8-SAA12"
+          },
+          {
+            "id": "SAA14",
+            "name": "SAIT1AA9-SAA14"
+          },
+          {
+            "id": "ATL35",
+            "name": "TTESSAAI-ATL35"
+          },
+          {
+            "id": "CWY1",
+            "name": "CWYMOWBS-CWY1"
+          },
+          {
+            "id": "ATL76",
+            "name": "TELEPAAI-ATL76"
+          },
+          {
+            "id": "DSL12",
+            "name": "DSLFK242-DSL12"
+          },
+          {
+            "id": "ATL53",
+            "name": "AAIATLTE-ATL53"
+          },
+          {
+            "id": "SAA11",
+            "name": "SAIT9AA2-SAA11"
+          },
+          {
+            "id": "ATL62",
+            "name": "TESSASCH-ATL62"
+          },
+          {
+            "id": "AUG1",
+            "name": "ASDFGHJK-AUG1"
+          },
+          {
+            "id": "POI22",
+            "name": "POIUY123-POI22"
+          },
+          {
+            "id": "SAA13",
+            "name": "SAIT1AA9-SAA13"
+          },
           {
-            "id": "NFT1",
-            "name": "NFTJSSSS-NFT1"
+            "id": "BHY17",
+            "name": "BHYTFRF3-BHY17"
           },
           {
-            "id": "JAG1",
-            "name": "YUDFJULP-JAG1"
+            "id": "LIS1",
+            "name": "HOSTPROF-LIS1"
           },
           {
-            "id": "YYY1",
-            "name": "UUUAIAAI-YYY1"
+            "id": "SIP1",
+            "name": "ZXCVBNMK-SIP1"
+          },
+          {
+            "id": "ATL99",
+            "name": "TEESTAAI-ATL43"
+          },
+          {
+            "id": "ATL64",
+            "name": "FORLOAAJ-ATL64"
+          },
+          {
+            "id": "TAT33",
+            "name": "TESAAISA-TAT33"
+          },
+          {
+            "id": "RAD10",
+            "name": "INDIPUNE-RAD10"
+          },
+          {
+            "id": "RTW5",
+            "name": "BHYTFRY4-RTW5"
+          },
+          {
+            "id": "JGS1",
+            "name": "KSJKKKKK-JGS1"
+          },
+          {
+            "id": "ATL98",
+            "name": "TEESTAAI-ATL43"
+          },
+          {
+            "id": "WAN1",
+            "name": "LEIWANGW-WAN1"
+          },
+          {
+            "id": "ATL44",
+            "name": "ATLSANAB-ATL44"
+          },
+          {
+            "id": "RTD2",
+            "name": "BHYTFRk4-RTD2"
+          },
+          {
+            "id": "NIR1",
+            "name": "ORFLMANA-NIR1"
+          },
+          {
+            "id": "ATL75",
+            "name": "SANAAIRE-ATL75"
+          },
+          {
+            "id": "NUM1",
+            "name": "QWERTYUI-NUM1"
+          },
+          {
+            "id": "hvf32",
+            "name": "MDTWNJ21-hvf32"
+          },
+          {
+            "id": "RTZ4",
+            "name": "BHYTFRZ6-RTZ4"
+          },
+          {
+            "id": "ATL56",
+            "name": "ATLSANAC-ATL56"
+          },
+          {
+            "id": "AMS1",
+            "name": "AMSTNLBW-AMS1"
+          },
+          {
+            "id": "RCT1",
+            "name": "AMSTERNL-RCT1"
+          },
+          {
+            "id": "JAN1",
+            "name": "ORFLMATT-JAN1"
+          },
+          {
+            "id": "ABC14",
+            "name": "TESAAISA-ABC14"
+          },
+          {
+            "id": "TAT37",
+            "name": "TESAAISD-TAT37"
+          },
+          {
+            "id": "MIC54",
+            "name": "MICHIGAN-MIC54"
+          },
+          {
+            "id": "ABC11",
+            "name": "ATLSANAI-ABC11"
+          },
+          {
+            "id": "AMF11",
+            "name": "AMDOCS01-AMF11"
+          },
+          {
+            "id": "ATL63",
+            "name": "ATLSANEW-ATL63"
+          },
+          {
+            "id": "ABC12",
+            "name": "ATLSECIA-ABC12"
+          },
+          {
+            "id": "hvf20",
+            "name": "MDTWNJ21-hvf20"
+          },
+          {
+            "id": "ABC15",
+            "name": "AAITESAN-ABC15"
           },
           {
             "id": "AVT1",
@@ -3857,15 +5621,10 @@ describe('Drawing board', function () {
           "FLAG_NETWORK_TO_ASYNC_INSTANTIATION": false,
           "FLAG_SHOW_ASSIGNMENTS": true,
           "FLAG_FABRIC_CONFIGURATION_ASSIGNMENTS": true,
-          "FLAG_UNASSIGN_SERVICE": true,
           "FLAG_SHOW_VERIFY_SERVICE": false,
-          "FLAG_COLLECTION_RESOURCE_SUPPORT": true,
-          "FLAG_DUPLICATE_VNF": true,
           "FLAG_SERVICE_MODEL_CACHE": true,
           "CREATE_INSTANCE_TEST": false,
           "FLAG_SETTING_DEFAULTS_IN_DRAWING_BOARD": true,
-          "FLAG_ASYNC_INSTANTIATION": true,
-          "FLAG_ASYNC_JOBS": true,
           "EMPTY_DRAWING_BOARD_TEST": false,
           "FLAG_ADD_MSO_TESTAPI_FIELD": true
         },
@@ -3877,17 +5636,20 @@ describe('Drawing board', function () {
             "service": {
               "uuid": "f4d84bb4-a416-4b4e-997e-0059973630b9",
               "invariantUuid": "598e3f9e-3244-4d8f-a8e0-0e5d7a29eda9",
-              "name": "ADIOD vMX vPE_BV Service 488",
+              "name": "PASQUALE vMX vPE_BV Service 488",
               "version": "1.0",
               "toscaModelURL": null,
               "category": "Network L1-3",
               "serviceType": "",
               "serviceRole": "",
-              "description": "ADIOD vMX vPE based on Juniper 17.2 release. Updated with updated VF for v8.0 of VLM",
+              "description": "PASQUALE vMX vPE based on Juniper 17.2 release. Updated with updated VF for v8.0 of VLM",
               "serviceEcompNaming": "true",
               "instantiationType": "Macro",
+              "vidNotions": {
+                "instantiationType": "Macro"
+              },
               "inputs": {
-                "2017488_adiodvpe0_ASN": {
+                "2017488_pasqualevpe0_ASN": {
                   "type": "string",
                   "description": "AV/PE",
                   "entry_schema": null,
@@ -3899,11 +5661,11 @@ describe('Drawing board', function () {
               }
             },
             "vnfs": {
-              "2017-488_ADIOD-vPE 0": {
+              "2017-488_PASQUALE-vPE 0": {
                 "uuid": "ea81d6f7-0861-44a7-b7d5-d173b562c350",
                 "invariantUuid": "5be7e99e-8eb2-4d97-be63-8081ff3cd10e",
-                "description": "Name ADIOD vPE Description The provider edge function for the ADIOD service supported by the Junipers VMX product Category Router Vendor Juniper Vendor Release Code 17.2 Owners Mary Fragale. Updated 9-25 to use v8.0 of the Juniper Valid 2 VLM",
-                "name": "2017-488_ADIOD-vPE",
+                "description": "Name PASQUALE vPE Description The provider edge function for the PASQUALE service supported by the Junipers VMX product Category Router Vendor Juniper Vendor Release Code 17.2 Owners Mary Fragale. Updated 9-25 to use v8.0 of the Juniper Valid 2 VLM",
+                "name": "2017-488_PASQUALE-vPE",
                 "version": "9.0",
                 "customizationUuid": "41516cc6-5098-4b40-a619-f8d5f55fc4d8",
                 "inputs": {
@@ -3975,42 +5737,42 @@ describe('Drawing board', function () {
                   "vnf_config_template_version": {
                     "displayName": "vnf_config_template_version",
                     "command": "get_input",
-                    "inputName": "2017488_adiodvpe0_vnf_config_template_version"
+                    "inputName": "2017488_pasqualevpe0_vnf_config_template_version"
                   },
                   "bandwidth_units": {
                     "displayName": "bandwidth_units",
                     "command": "get_input",
-                    "inputName": "2017488_adiodvpe0_bandwidth_units"
+                    "inputName": "2017488_pasqualevpe0_bandwidth_units"
                   },
                   "bandwidth": {
                     "displayName": "bandwidth",
                     "command": "get_input",
-                    "inputName": "2017488_adiodvpe0_bandwidth"
+                    "inputName": "2017488_pasqualevpe0_bandwidth"
                   },
                   "AIC_CLLI": {
                     "displayName": "AIC_CLLI",
                     "command": "get_input",
-                    "inputName": "2017488_adiodvpe0_AIC_CLLI"
+                    "inputName": "2017488_pasqualevpe0_AIC_CLLI"
                   },
                   "availability_zone_0": {
                     "displayName": "availability_zone_0",
                     "command": "get_input",
-                    "inputName": "2017488_adiodvpe0_availability_zone_0"
+                    "inputName": "2017488_pasqualevpe0_availability_zone_0"
                   },
                   "ASN": {
                     "displayName": "ASN",
                     "command": "get_input",
-                    "inputName": "2017488_adiodvpe0_ASN"
+                    "inputName": "2017488_pasqualevpe0_ASN"
                   },
                   "vnf_instance_name": {
                     "displayName": "vnf_instance_name",
                     "command": "get_input",
-                    "inputName": "2017488_adiodvpe0_vnf_instance_name"
+                    "inputName": "2017488_pasqualevpe0_vnf_instance_name"
                   }
                 },
                 "properties": {
                   "vmxvre_retype": "RE-VMX",
-                  "vnf_config_template_version": "get_input:2017488_adiodvpe0_vnf_config_template_version",
+                  "vnf_config_template_version": "get_input:2017488_pasqualevpe0_vnf_config_template_version",
                   "sriov44_net_id": "48d399b3-11ee-48a8-94d2-f0ea94d6be8d",
                   "int_ctl_net_id": "2f323477-6936-4d01-ac53-d849430281d9",
                   "vmxvpfe_sriov41_0_port_mac": "00:11:22:EF:AC:DF",
@@ -4052,11 +5814,11 @@ describe('Drawing board', function () {
                   "vmxvpfe_sriov42_0_port_unknownmulticastallow": "true",
                   "vmxvpfe_sriov44_0_port_vlanstrip": "false",
                   "vf_module_id": "123",
-                  "nf_function": "ADIOD vPE",
+                  "nf_function": "PASQUALE vPE",
                   "vmxvpfe_sriov43_0_port_unknownmulticastallow": "true",
                   "vmxvre_int_ctl_ip_0": "10.0.0.10",
                   "ecomp_generated_naming": "true",
-                  "AIC_CLLI": "get_input:2017488_adiodvpe0_AIC_CLLI",
+                  "AIC_CLLI": "get_input:2017488_pasqualevpe0_AIC_CLLI",
                   "vnf_name": "mtnj309me6vre",
                   "vmxvpfe_sriov41_0_port_unknownunicastallow": "true",
                   "vmxvre_volume_type_1": "HITACHI",
@@ -4064,14 +5826,14 @@ describe('Drawing board', function () {
                   "vmxvre_volume_type_0": "HITACHI",
                   "vmxvpfe_volume_type_0": "HITACHI",
                   "vmxvpfe_sriov43_0_port_broadcastallow": "true",
-                  "bandwidth_units": "get_input:2017488_adiodvpe0_bandwidth_units",
+                  "bandwidth_units": "get_input:2017488_pasqualevpe0_bandwidth_units",
                   "vnf_id": "123",
                   "vmxvre_oam_prefix": "24",
-                  "availability_zone_0": "get_input:2017488_adiodvpe0_availability_zone_0",
-                  "ASN": "get_input:2017488_adiodvpe0_ASN",
+                  "availability_zone_0": "get_input:2017488_pasqualevpe0_availability_zone_0",
+                  "ASN": "get_input:2017488_pasqualevpe0_ASN",
                   "vmxvre_chassis_i2cid": "161",
                   "vmxvpfe_name_0": "vPFEXI",
-                  "bandwidth": "get_input:2017488_adiodvpe0_bandwidth",
+                  "bandwidth": "get_input:2017488_pasqualevpe0_bandwidth",
                   "availability_zone_max_count": "1",
                   "vmxvre_volume_size_0": "45.0",
                   "vmxvre_volume_size_1": "50.0",
@@ -4081,7 +5843,7 @@ describe('Drawing board', function () {
                   "vmxvre_ore_present": "0",
                   "vmxvre_volume_name_0": "vREXI_FBVolume",
                   "vmxvre_type": "0",
-                  "vnf_instance_name": "get_input:2017488_adiodvpe0_vnf_instance_name",
+                  "vnf_instance_name": "get_input:2017488_pasqualevpe0_vnf_instance_name",
                   "vmxvpfe_sriov41_0_port_unknownmulticastallow": "true",
                   "oam_net_id": "b95eeb1d-d55d-4827-abb4-8ebb94941429",
                   "vmx_int_ctl_len": "24",
@@ -4095,82 +5857,82 @@ describe('Drawing board', function () {
                   "vmxvpfe_flavor_name": "ns.c20r16d25.v5"
                 },
                 "type": "VF",
-                "modelCustomizationName": "2017-488_ADIOD-vPE 0",
+                "modelCustomizationName": "2017-488_PASQUALE-vPE 0",
                 "vfModules": {
-                  "2017488_adiodvpe0..2017488AdiodVpe..ADIOD_vRE_BV..module-1": {
+                  "2017488_pasqualevpe0..2017488PasqualeVpe..PASQUALE_vRE_BV..module-1": {
                     "uuid": "a5d8df05-11cb-4351-96e0-b6d4168ea4df",
                     "invariantUuid": "7253ff5c-97f0-4b8b-937c-77aeb4d79aa1",
                     "customizationUuid": "f3d97417-0c8d-424e-8ff7-b2eb4fbcecc3",
                     "description": null,
-                    "name": "2017488AdiodVpe..ADIOD_vRE_BV..module-1",
+                    "name": "2017488PasqualeVpe..PASQUALE_vRE_BV..module-1",
                     "version": "8",
-                    "modelCustomizationName": "2017488AdiodVpe..ADIOD_vRE_BV..module-1",
+                    "modelCustomizationName": "2017488PasqualeVpe..PASQUALE_vRE_BV..module-1",
                     "properties": {
                       "minCountInstances": 2,
                       "maxCountInstances": null,
                       "initialCount": 0,
-                      "vfModuleLabel": "ADIOD_vRE_BV"
+                      "vfModuleLabel": "PASQUALE_vRE_BV"
                     },
                     "inputs": {
-                      "2017488_adiodvpe0_bandwidth_units": {
+                      "2017488_pasqualevpe0_bandwidth_units": {
                         "type": "string",
                         "description": "Units of bandwidth",
                         "entry_schema": null,
                         "inputProperties": {
                           "sourceType": "HEAT",
-                          "vfModuleLabel": "ADIOD_vRE_BV",
+                          "vfModuleLabel": "PASQUALE_vRE_BV",
                           "paramName": "bandwidth_units"
                         },
                         "constraints": null,
                         "required": true,
                         "default": "Gbps"
                       },
-                      "2017488_adiodvpe0_bandwidth": {
+                      "2017488_pasqualevpe0_bandwidth": {
                         "type": "string",
                         "description": "Requested VPE bandwidth",
                         "entry_schema": null,
                         "inputProperties": {
                           "sourceType": "HEAT",
-                          "vfModuleLabel": "ADIOD_vRE_BV",
+                          "vfModuleLabel": "PASQUALE_vRE_BV",
                           "paramName": "bandwidth"
                         },
                         "constraints": null,
                         "required": true,
                         "default": "10"
                       },
-                      "2017488_adiodvpe0_vnf_instance_name": {
+                      "2017488_pasqualevpe0_vnf_instance_name": {
                         "type": "string",
                         "description": "The hostname assigned to the vpe.",
                         "entry_schema": null,
                         "inputProperties": {
                           "sourceType": "HEAT",
-                          "vfModuleLabel": "ADIOD_vRE_BV",
+                          "vfModuleLabel": "PASQUALE_vRE_BV",
                           "paramName": "vnf_instance_name"
                         },
                         "constraints": null,
                         "required": true,
                         "default": "mtnj309me6"
                       },
-                      "2017488_adiodvpe0_vnf_config_template_version": {
+                      "2017488_pasqualevpe0_vnf_config_template_version": {
                         "type": "string",
                         "description": "VPE Software Version",
                         "entry_schema": null,
                         "inputProperties": {
                           "sourceType": "HEAT",
-                          "vfModuleLabel": "ADIOD_vRE_BV",
+                          "vfModuleLabel": "PASQUALE_vRE_BV",
                           "paramName": "vnf_config_template_version"
                         },
                         "constraints": null,
                         "required": true,
                         "default": "17.2"
                       },
-                      "2017488_adiodvpe0_AIC_CLLI": {
+                      "2017488_pasqualevpe0_AIC_CLLI": {
                         "type": "string",
                         "description": "AIC Site CLLI",
                         "entry_schema": null,
                         "inputProperties": {
                           "sourceType": "HEAT",
-                          "vfModuleLabel": "ADIOD_vRE_BV",
+                          "vfModuleLabel": "PASQUALE_vRE_BV",
                           "paramName": "AIC_CLLI"
                         },
                         "constraints": null,
@@ -4180,45 +5942,45 @@ describe('Drawing board', function () {
                     },
                     "volumeGroupAllowed": true
                   },
-                  "2017488_adiodvpe0..2017488AdiodVpe..ADIOD_base_vPE_BV..module-0": {
+                  "2017488_pasqualevpe0..2017488PasqualeVpe..PASQUALE_base_vPE_BV..module-0": {
                     "uuid": "040e591e-5d30-4e0d-850f-7266e5a8e013",
                     "invariantUuid": "b34833bb-6aa9-4ad6-a831-70b06367a091",
                     "customizationUuid": "5c5f91f9-5e31-4120-b892-5536587ec258",
                     "description": null,
-                    "name": "2017488AdiodVpe..ADIOD_base_vPE_BV..module-0",
+                    "name": "2017488PasqualeVpe..PASQUALE_base_vPE_BV..module-0",
                     "version": "6",
-                    "modelCustomizationName": "2017488AdiodVpe..ADIOD_base_vPE_BV..module-0",
+                    "modelCustomizationName": "2017488PasqualeVpe..PASQUALE_base_vPE_BV..module-0",
                     "properties": {
                       "minCountInstances": 1,
                       "maxCountInstances": 1,
                       "initialCount": 1,
-                      "vfModuleLabel": "ADIOD_base_vPE_BV"
+                      "vfModuleLabel": "PASQUALE_base_vPE_BV"
                     },
                     "inputs": {},
                     "volumeGroupAllowed": false
                   },
-                  "2017488_adiodvpe0..2017488AdiodVpe..ADIOD_vPFE_BV..module-2": {
+                  "2017488_pasqualevpe0..2017488PasqualeVpe..PASQUALE_vPFE_BV..module-2": {
                     "uuid": "b3e8b26e-cff0-49fc-a4e6-f3e16c8440fe",
                     "invariantUuid": "eff8cc59-53a1-4101-aed7-8cf24ecf8339",
                     "customizationUuid": "6e410843-257c-46d9-ba8a-8d94e1362452",
                     "description": null,
-                    "name": "2017488AdiodVpe..ADIOD_vPFE_BV..module-2",
+                    "name": "2017488PasqualeVpe..PASQUALE_vPFE_BV..module-2",
                     "version": "8",
-                    "modelCustomizationName": "2017488AdiodVpe..ADIOD_vPFE_BV..module-2",
+                    "modelCustomizationName": "2017488PasqualeVpe..PASQUALE_vPFE_BV..module-2",
                     "properties": {
                       "minCountInstances": 0,
                       "maxCountInstances": null,
                       "initialCount": 0,
-                      "vfModuleLabel": "ADIOD_vPFE_BV"
+                      "vfModuleLabel": "PASQUALE_vPFE_BV"
                     },
                     "inputs": {
-                      "2017488_adiodvpe0_availability_zone_0": {
+                      "2017488_pasqualevpe0_availability_zone_0": {
                         "type": "string",
                         "description": "The Availability Zone to launch the instance.",
                         "entry_schema": null,
                         "inputProperties": {
                           "sourceType": "HEAT",
-                          "vfModuleLabel": "ADIOD_vPFE_BV",
+                          "vfModuleLabel": "PASQUALE_vPFE_BV",
                           "paramName": "availability_zone_0"
                         },
                         "constraints": null,
@@ -4230,80 +5992,80 @@ describe('Drawing board', function () {
                   }
                 },
                 "volumeGroups": {
-                  "2017488_adiodvpe0..2017488AdiodVpe..ADIOD_vRE_BV..module-1": {
+                  "2017488_pasqualevpe0..2017488PasqualeVpe..PASQUALE_vRE_BV..module-1": {
                     "uuid": "a5d8df05-11cb-4351-96e0-b6d4168ea4df",
                     "invariantUuid": "7253ff5c-97f0-4b8b-937c-77aeb4d79aa1",
                     "customizationUuid": "f3d97417-0c8d-424e-8ff7-b2eb4fbcecc3",
                     "description": null,
-                    "name": "2017488AdiodVpe..ADIOD_vRE_BV..module-1",
+                    "name": "2017488PasqualeVpe..PASQUALE_vRE_BV..module-1",
                     "version": "8",
-                    "modelCustomizationName": "2017488AdiodVpe..ADIOD_vRE_BV..module-1",
+                    "modelCustomizationName": "2017488PasqualeVpe..PASQUALE_vRE_BV..module-1",
                     "properties": {
                       "minCountInstances": 0,
                       "maxCountInstances": null,
                       "initialCount": 0,
-                      "vfModuleLabel": "ADIOD_vRE_BV"
+                      "vfModuleLabel": "PASQUALE_vRE_BV"
                     },
                     "inputs": {
-                      "2017488_adiodvpe0_bandwidth_units": {
+                      "2017488_pasqualevpe0_bandwidth_units": {
                         "type": "string",
                         "description": "Units of bandwidth",
                         "entry_schema": null,
                         "inputProperties": {
                           "sourceType": "HEAT",
-                          "vfModuleLabel": "ADIOD_vRE_BV",
+                          "vfModuleLabel": "PASQUALE_vRE_BV",
                           "paramName": "bandwidth_units"
                         },
                         "constraints": null,
                         "required": true,
                         "default": "Gbps"
                       },
-                      "2017488_adiodvpe0_bandwidth": {
+                      "2017488_pasqualevpe0_bandwidth": {
                         "type": "string",
                         "description": "Requested VPE bandwidth",
                         "entry_schema": null,
                         "inputProperties": {
                           "sourceType": "HEAT",
-                          "vfModuleLabel": "ADIOD_vRE_BV",
+                          "vfModuleLabel": "PASQUALE_vRE_BV",
                           "paramName": "bandwidth"
                         },
                         "constraints": null,
                         "required": true,
                         "default": "10"
                       },
-                      "2017488_adiodvpe0_vnf_instance_name": {
+                      "2017488_pasqualevpe0_vnf_instance_name": {
                         "type": "string",
                         "description": "The hostname assigned to the vpe.",
                         "entry_schema": null,
                         "inputProperties": {
                           "sourceType": "HEAT",
-                          "vfModuleLabel": "ADIOD_vRE_BV",
+                          "vfModuleLabel": "PASQUALE_vRE_BV",
                           "paramName": "vnf_instance_name"
                         },
                         "constraints": null,
                         "required": true,
                         "default": "mtnj309me6"
                       },
-                      "2017488_adiodvpe0_vnf_config_template_version": {
+                      "2017488_pasqualevpe0_vnf_config_template_version": {
                         "type": "string",
                         "description": "VPE Software Version",
                         "entry_schema": null,
                         "inputProperties": {
                           "sourceType": "HEAT",
-                          "vfModuleLabel": "ADIOD_vRE_BV",
+                          "vfModuleLabel": "PASQUALE_vRE_BV",
                           "paramName": "vnf_config_template_version"
                         },
                         "constraints": null,
                         "required": true,
                         "default": "17.2"
                       },
-                      "2017488_adiodvpe0_AIC_CLLI": {
+                      "2017488_pasqualevpe0_AIC_CLLI": {
                         "type": "string",
                         "description": "AIC Site CLLI",
                         "entry_schema": null,
                         "inputProperties": {
                           "sourceType": "HEAT",
-                          "vfModuleLabel": "ADIOD_vRE_BV",
+                          "vfModuleLabel": "PASQUALE_vRE_BV",
                           "paramName": "AIC_CLLI"
                         },
                         "constraints": null,
@@ -4312,28 +6074,28 @@ describe('Drawing board', function () {
                       }
                     }
                   },
-                  "2017488_adiodvpe0..2017488AdiodVpe..ADIOD_vPFE_BV..module-2": {
+                  "2017488_pasqualevpe0..2017488PasqualeVpe..PASQUALE_vPFE_BV..module-2": {
                     "uuid": "b3e8b26e-cff0-49fc-a4e6-f3e16c8440fe",
                     "invariantUuid": "eff8cc59-53a1-4101-aed7-8cf24ecf8339",
                     "customizationUuid": "6e410843-257c-46d9-ba8a-8d94e1362452",
                     "description": null,
-                    "name": "2017488AdiodVpe..ADIOD_vPFE_BV..module-2",
+                    "name": "2017488PasqualeVpe..PASQUALE_vPFE_BV..module-2",
                     "version": "8",
-                    "modelCustomizationName": "2017488AdiodVpe..ADIOD_vPFE_BV..module-2",
+                    "modelCustomizationName": "2017488PasqualeVpe..PASQUALE_vPFE_BV..module-2",
                     "properties": {
                       "minCountInstances": 0,
                       "maxCountInstances": null,
                       "initialCount": 0,
-                      "vfModuleLabel": "ADIOD_vPFE_BV"
+                      "vfModuleLabel": "PASQUALE_vPFE_BV"
                     },
                     "inputs": {
-                      "2017488_adiodvpe0_availability_zone_0": {
+                      "2017488_pasqualevpe0_availability_zone_0": {
                         "type": "string",
                         "description": "The Availability Zone to launch the instance.",
                         "entry_schema": null,
                         "inputProperties": {
                           "sourceType": "HEAT",
-                          "vfModuleLabel": "ADIOD_vPFE_BV",
+                          "vfModuleLabel": "PASQUALE_vPFE_BV",
                           "paramName": "availability_zone_0"
                         },
                         "constraints": null,
@@ -4347,84 +6109,84 @@ describe('Drawing board', function () {
               }
             },
             "networks": {},
-            "collectionResource": {},
+            "collectionResources": {},
             "configurations": {},
             "serviceProxies": {},
             "vfModules": {
-              "2017488_adiodvpe0..2017488AdiodVpe..ADIOD_vRE_BV..module-1": {
+              "2017488_pasqualevpe0..2017488PasqualeVpe..PASQUALE_vRE_BV..module-1": {
                 "uuid": "a5d8df05-11cb-4351-96e0-b6d4168ea4df",
                 "invariantUuid": "7253ff5c-97f0-4b8b-937c-77aeb4d79aa1",
                 "customizationUuid": "f3d97417-0c8d-424e-8ff7-b2eb4fbcecc3",
                 "description": null,
-                "name": "2017488AdiodVpe..ADIOD_vRE_BV..module-1",
+                "name": "2017488PasqualeVpe..PASQUALE_vRE_BV..module-1",
                 "version": "8",
-                "modelCustomizationName": "2017488AdiodVpe..ADIOD_vRE_BV..module-1",
+                "modelCustomizationName": "2017488PasqualeVpe..PASQUALE_vRE_BV..module-1",
                 "properties": {
                   "minCountInstances": 0,
                   "maxCountInstances": null,
                   "initialCount": 0,
-                  "vfModuleLabel": "ADIOD_vRE_BV"
+                  "vfModuleLabel": "PASQUALE_vRE_BV"
                 },
                 "inputs": {
-                  "2017488_adiodvpe0_bandwidth_units": {
+                  "2017488_pasqualevpe0_bandwidth_units": {
                     "type": "string",
                     "description": "Units of bandwidth",
                     "entry_schema": null,
                     "inputProperties": {
                       "sourceType": "HEAT",
-                      "vfModuleLabel": "ADIOD_vRE_BV",
+                      "vfModuleLabel": "PASQUALE_vRE_BV",
                       "paramName": "bandwidth_units"
                     },
                     "constraints": null,
                     "required": true,
                     "default": "Gbps"
                   },
-                  "2017488_adiodvpe0_bandwidth": {
+                  "2017488_pasqualevpe0_bandwidth": {
                     "type": "string",
                     "description": "Requested VPE bandwidth",
                     "entry_schema": null,
                     "inputProperties": {
                       "sourceType": "HEAT",
-                      "vfModuleLabel": "ADIOD_vRE_BV",
+                      "vfModuleLabel": "PASQUALE_vRE_BV",
                       "paramName": "bandwidth"
                     },
                     "constraints": null,
                     "required": true,
                     "default": "10"
                   },
-                  "2017488_adiodvpe0_vnf_instance_name": {
+                  "2017488_pasqualevpe0_vnf_instance_name": {
                     "type": "string",
                     "description": "The hostname assigned to the vpe.",
                     "entry_schema": null,
                     "inputProperties": {
                       "sourceType": "HEAT",
-                      "vfModuleLabel": "ADIOD_vRE_BV",
+                      "vfModuleLabel": "PASQUALE_vRE_BV",
                       "paramName": "vnf_instance_name"
                     },
                     "constraints": null,
                     "required": true,
                     "default": "mtnj309me6"
                   },
-                  "2017488_adiodvpe0_vnf_config_template_version": {
+                  "2017488_pasqualevpe0_vnf_config_template_version": {
                     "type": "string",
                     "description": "VPE Software Version",
                     "entry_schema": null,
                     "inputProperties": {
                       "sourceType": "HEAT",
-                      "vfModuleLabel": "ADIOD_vRE_BV",
+                      "vfModuleLabel": "PASQUALE_vRE_BV",
                       "paramName": "vnf_config_template_version"
                     },
                     "constraints": null,
                     "required": true,
                     "default": "17.2"
                   },
-                  "2017488_adiodvpe0_AIC_CLLI": {
+                  "2017488_pasqualevpe0_AIC_CLLI": {
                     "type": "string",
                     "description": "AIC Site CLLI",
                     "entry_schema": null,
                     "inputProperties": {
                       "sourceType": "HEAT",
-                      "vfModuleLabel": "ADIOD_vRE_BV",
+                      "vfModuleLabel": "PASQUALE_vRE_BV",
                       "paramName": "AIC_CLLI"
                     },
                     "constraints": null,
@@ -4434,45 +6196,45 @@ describe('Drawing board', function () {
                 },
                 "volumeGroupAllowed": true
               },
-              "2017488_adiodvpe0..2017488AdiodVpe..ADIOD_base_vPE_BV..module-0": {
+              "2017488_pasqualevpe0..2017488PasqualeVpe..PASQUALE_base_vPE_BV..module-0": {
                 "uuid": "040e591e-5d30-4e0d-850f-7266e5a8e013",
                 "invariantUuid": "b34833bb-6aa9-4ad6-a831-70b06367a091",
                 "customizationUuid": "5c5f91f9-5e31-4120-b892-5536587ec258",
                 "description": null,
-                "name": "2017488AdiodVpe..ADIOD_base_vPE_BV..module-0",
+                "name": "2017488PasqualeVpe..PASQUALE_base_vPE_BV..module-0",
                 "version": "6",
-                "modelCustomizationName": "2017488AdiodVpe..ADIOD_base_vPE_BV..module-0",
+                "modelCustomizationName": "2017488PasqualeVpe..PASQUALE_base_vPE_BV..module-0",
                 "properties": {
                   "minCountInstances": 1,
                   "maxCountInstances": 1,
                   "initialCount": 1,
-                  "vfModuleLabel": "ADIOD_base_vPE_BV"
+                  "vfModuleLabel": "PASQUALE_base_vPE_BV"
                 },
                 "inputs": {},
                 "volumeGroupAllowed": false
               },
-              "2017488_adiodvpe0..2017488AdiodVpe..ADIOD_vPFE_BV..module-2": {
+              "2017488_pasqualevpe0..2017488PasqualeVpe..PASQUALE_vPFE_BV..module-2": {
                 "uuid": "b3e8b26e-cff0-49fc-a4e6-f3e16c8440fe",
                 "invariantUuid": "eff8cc59-53a1-4101-aed7-8cf24ecf8339",
                 "customizationUuid": "6e410843-257c-46d9-ba8a-8d94e1362452",
                 "description": null,
-                "name": "2017488AdiodVpe..ADIOD_vPFE_BV..module-2",
+                "name": "2017488PasqualeVpe..PASQUALE_vPFE_BV..module-2",
                 "version": "8",
-                "modelCustomizationName": "2017488AdiodVpe..ADIOD_vPFE_BV..module-2",
+                "modelCustomizationName": "2017488PasqualeVpe..PASQUALE_vPFE_BV..module-2",
                 "properties": {
                   "minCountInstances": 0,
                   "maxCountInstances": null,
                   "initialCount": 0,
-                  "vfModuleLabel": "ADIOD_vPFE_BV"
+                  "vfModuleLabel": "PASQUALE_vPFE_BV"
                 },
                 "inputs": {
-                  "2017488_adiodvpe0_availability_zone_0": {
+                  "2017488_pasqualevpe0_availability_zone_0": {
                     "type": "string",
                     "description": "The Availability Zone to launch the instance.",
                     "entry_schema": null,
                     "inputProperties": {
                       "sourceType": "HEAT",
-                      "vfModuleLabel": "ADIOD_vPFE_BV",
+                      "vfModuleLabel": "PASQUALE_vPFE_BV",
                       "paramName": "availability_zone_0"
                     },
                     "constraints": null,
@@ -4484,80 +6246,80 @@ describe('Drawing board', function () {
               }
             },
             "volumeGroups": {
-              "2017488_adiodvpe0..2017488AdiodVpe..ADIOD_vRE_BV..module-1": {
+              "2017488_pasqualevpe0..2017488PasqualeVpe..PASQUALE_vRE_BV..module-1": {
                 "uuid": "a5d8df05-11cb-4351-96e0-b6d4168ea4df",
                 "invariantUuid": "7253ff5c-97f0-4b8b-937c-77aeb4d79aa1",
                 "customizationUuid": "f3d97417-0c8d-424e-8ff7-b2eb4fbcecc3",
                 "description": null,
-                "name": "2017488AdiodVpe..ADIOD_vRE_BV..module-1",
+                "name": "2017488PasqualeVpe..PASQUALE_vRE_BV..module-1",
                 "version": "8",
-                "modelCustomizationName": "2017488AdiodVpe..ADIOD_vRE_BV..module-1",
+                "modelCustomizationName": "2017488PasqualeVpe..PASQUALE_vRE_BV..module-1",
                 "properties": {
                   "minCountInstances": 0,
                   "maxCountInstances": null,
                   "initialCount": 0,
-                  "vfModuleLabel": "ADIOD_vRE_BV"
+                  "vfModuleLabel": "PASQUALE_vRE_BV"
                 },
                 "inputs": {
-                  "2017488_adiodvpe0_bandwidth_units": {
+                  "2017488_pasqualevpe0_bandwidth_units": {
                     "type": "string",
                     "description": "Units of bandwidth",
                     "entry_schema": null,
                     "inputProperties": {
                       "sourceType": "HEAT",
-                      "vfModuleLabel": "ADIOD_vRE_BV",
+                      "vfModuleLabel": "PASQUALE_vRE_BV",
                       "paramName": "bandwidth_units"
                     },
                     "constraints": null,
                     "required": true,
                     "default": "Gbps"
                   },
-                  "2017488_adiodvpe0_bandwidth": {
+                  "2017488_pasqualevpe0_bandwidth": {
                     "type": "string",
                     "description": "Requested VPE bandwidth",
                     "entry_schema": null,
                     "inputProperties": {
                       "sourceType": "HEAT",
-                      "vfModuleLabel": "ADIOD_vRE_BV",
+                      "vfModuleLabel": "PASQUALE_vRE_BV",
                       "paramName": "bandwidth"
                     },
                     "constraints": null,
                     "required": true,
                     "default": "10"
                   },
-                  "2017488_adiodvpe0_vnf_instance_name": {
+                  "2017488_pasqualevpe0_vnf_instance_name": {
                     "type": "string",
                     "description": "The hostname assigned to the vpe.",
                     "entry_schema": null,
                     "inputProperties": {
                       "sourceType": "HEAT",
-                      "vfModuleLabel": "ADIOD_vRE_BV",
+                      "vfModuleLabel": "PASQUALE_vRE_BV",
                       "paramName": "vnf_instance_name"
                     },
                     "constraints": null,
                     "required": true,
                     "default": "mtnj309me6"
                   },
-                  "2017488_adiodvpe0_vnf_config_template_version": {
+                  "2017488_pasqualevpe0_vnf_config_template_version": {
                     "type": "string",
                     "description": "VPE Software Version",
                     "entry_schema": null,
                     "inputProperties": {
                       "sourceType": "HEAT",
-                      "vfModuleLabel": "ADIOD_vRE_BV",
+                      "vfModuleLabel": "PASQUALE_vRE_BV",
                       "paramName": "vnf_config_template_version"
                     },
                     "constraints": null,
                     "required": true,
                     "default": "17.2"
                   },
-                  "2017488_adiodvpe0_AIC_CLLI": {
+                  "2017488_pasqualevpe0_AIC_CLLI": {
                     "type": "string",
                     "description": "AIC Site CLLI",
                     "entry_schema": null,
                     "inputProperties": {
                       "sourceType": "HEAT",
-                      "vfModuleLabel": "ADIOD_vRE_BV",
+                      "vfModuleLabel": "PASQUALE_vRE_BV",
                       "paramName": "AIC_CLLI"
                     },
                     "constraints": null,
@@ -4566,28 +6328,28 @@ describe('Drawing board', function () {
                   }
                 }
               },
-              "2017488_adiodvpe0..2017488AdiodVpe..ADIOD_vPFE_BV..module-2": {
+              "2017488_pasqualevpe0..2017488PasqualeVpe..PASQUALE_vPFE_BV..module-2": {
                 "uuid": "b3e8b26e-cff0-49fc-a4e6-f3e16c8440fe",
                 "invariantUuid": "eff8cc59-53a1-4101-aed7-8cf24ecf8339",
                 "customizationUuid": "6e410843-257c-46d9-ba8a-8d94e1362452",
                 "description": null,
-                "name": "2017488AdiodVpe..ADIOD_vPFE_BV..module-2",
+                "name": "2017488PasqualeVpe..PASQUALE_vPFE_BV..module-2",
                 "version": "8",
-                "modelCustomizationName": "2017488AdiodVpe..ADIOD_vPFE_BV..module-2",
+                "modelCustomizationName": "2017488PasqualeVpe..PASQUALE_vPFE_BV..module-2",
                 "properties": {
                   "minCountInstances": 0,
                   "maxCountInstances": null,
                   "initialCount": 0,
-                  "vfModuleLabel": "ADIOD_vPFE_BV"
+                  "vfModuleLabel": "PASQUALE_vPFE_BV"
                 },
                 "inputs": {
-                  "2017488_adiodvpe0_availability_zone_0": {
+                  "2017488_pasqualevpe0_availability_zone_0": {
                     "type": "string",
                     "description": "The Availability Zone to launch the instance.",
                     "entry_schema": null,
                     "inputProperties": {
                       "sourceType": "HEAT",
-                      "vfModuleLabel": "ADIOD_vPFE_BV",
+                      "vfModuleLabel": "PASQUALE_vPFE_BV",
                       "paramName": "availability_zone_0"
                     },
                     "constraints": null,
@@ -4612,14 +6374,17 @@ describe('Drawing board', function () {
               "description": "ComplexService",
               "serviceEcompNaming": "true",
               "instantiationType": "Macro",
+              "vidNotions": {
+                "instantiationType": "Macro"
+              },
               "inputs": {}
             },
             "vnfs": {
-              "VF_vMee 0": {
+              "VF_vGeraldine 0": {
                 "uuid": "d6557200-ecf2-4641-8094-5393ae3aae60",
                 "invariantUuid": "4160458e-f648-4b30-a176-43881ffffe9e",
-                "description": "VSP_vMee",
-                "name": "VF_vMee",
+                "description": "VSP_vGeraldine",
+                "name": "VF_vGeraldine",
                 "version": "2.0",
                 "customizationUuid": "91415b44-753d-494c-926a-456a9172bbb9",
                 "inputs": {},
@@ -4788,74 +6553,74 @@ describe('Drawing board', function () {
                   "sctp-b-egress-dst_end_port": "65535.0"
                 },
                 "type": "VF",
-                "modelCustomizationName": "VF_vMee 0",
+                "modelCustomizationName": "VF_vGeraldine 0",
                 "vfModules": {
-                  "vf_vmee0..VfVmee..vmme_vlc..module-1": {
+                  "vf_vgeraldine0..VfVgeraldine..vflorence_vlc..module-1": {
                     "uuid": "522159d5-d6e0-4c2a-aa44-5a542a12a830",
                     "invariantUuid": "98a7c88b-b577-476a-90e4-e25a5871e02b",
                     "customizationUuid": "55b1be94-671a-403e-a26c-667e9c47d091",
                     "description": null,
-                    "name": "VfVmee..vmme_vlc..module-1",
+                    "name": "VfVgeraldine..vflorence_vlc..module-1",
                     "version": "2",
-                    "modelCustomizationName": "VfVmee..vmme_vlc..module-1",
+                    "modelCustomizationName": "VfVgeraldine..vflorence_vlc..module-1",
                     "properties": {
                       "minCountInstances": 0,
                       "maxCountInstances": null,
                       "initialCount": 0,
-                      "vfModuleLabel": "vmme_vlc"
+                      "vfModuleLabel": "vflorence_vlc"
                     },
                     "inputs": {},
                     "volumeGroupAllowed": false
                   },
-                  "vf_vmee0..VfVmee..vmme_gpb..module-2": {
+                  "vf_vgeraldine0..VfVgeraldine..vflorence_gpb..module-2": {
                     "uuid": "41708296-e443-4c71-953f-d9a010f059e1",
                     "invariantUuid": "1cca90b8-3490-495e-87da-3f3e4c57d5b9",
                     "customizationUuid": "6add59e0-7fe1-4bc4-af48-f8812422ae7c",
                     "description": null,
-                    "name": "VfVmee..vmme_gpb..module-2",
+                    "name": "VfVgeraldine..vflorence_gpb..module-2",
                     "version": "2",
-                    "modelCustomizationName": "VfVmee..vmme_gpb..module-2",
+                    "modelCustomizationName": "VfVgeraldine..vflorence_gpb..module-2",
                     "properties": {
                       "minCountInstances": 0,
                       "maxCountInstances": null,
                       "initialCount": 0,
-                      "vfModuleLabel": "vmme_gpb"
+                      "vfModuleLabel": "vflorence_gpb"
                     },
                     "inputs": {},
                     "volumeGroupAllowed": false
                   },
-                  "vf_vmee0..VfVmee..base_vmme..module-0": {
+                  "vf_vgeraldine0..VfVgeraldine..base_vflorence..module-0": {
                     "uuid": "a27f5cfc-7f12-4f99-af08-0af9c3885c87",
                     "invariantUuid": "a6f9e51a-2b35-416a-ae15-15e58d61f36d",
                     "customizationUuid": "f8c040f1-7e51-4a11-aca8-acf256cfd861",
                     "description": null,
-                    "name": "VfVmee..base_vmme..module-0",
+                    "name": "VfVgeraldine..base_vflorence..module-0",
                     "version": "2",
-                    "modelCustomizationName": "VfVmee..base_vmme..module-0",
+                    "modelCustomizationName": "VfVgeraldine..base_vflorence..module-0",
                     "properties": {
                       "minCountInstances": 1,
                       "maxCountInstances": 1,
                       "initialCount": 1,
-                      "vfModuleLabel": "base_vmme"
+                      "vfModuleLabel": "base_vflorence"
                     },
                     "inputs": {},
                     "volumeGroupAllowed": true
                   }
                 },
                 "volumeGroups": {
-                  "vf_vmee0..VfVmee..base_vmme..module-0": {
+                  "vf_vgeraldine0..VfVgeraldine..base_vflorence..module-0": {
                     "uuid": "a27f5cfc-7f12-4f99-af08-0af9c3885c87",
                     "invariantUuid": "a6f9e51a-2b35-416a-ae15-15e58d61f36d",
                     "customizationUuid": "f8c040f1-7e51-4a11-aca8-acf256cfd861",
                     "description": null,
-                    "name": "VfVmee..base_vmme..module-0",
+                    "name": "VfVgeraldine..base_vflorence..module-0",
                     "version": "2",
-                    "modelCustomizationName": "VfVmee..base_vmme..module-0",
+                    "modelCustomizationName": "VfVgeraldine..base_vflorence..module-0",
                     "properties": {
                       "minCountInstances": 1,
                       "maxCountInstances": 1,
                       "initialCount": 1,
-                      "vfModuleLabel": "base_vmme"
+                      "vfModuleLabel": "base_vflorence"
                     },
                     "inputs": {}
                   }
@@ -4863,539 +6628,1417 @@ describe('Drawing board', function () {
                 "vfcInstanceGroups": {}
               }
             },
-            "networks": {
-              "ExtVL 0": {
-                "uuid": "ddc3f20c-08b5-40fd-af72-c6d14636b986",
-                "invariantUuid": "379f816b-a7aa-422f-be30-17114ff50b7c",
-                "description": "ECOMP generic virtual link (network) base type for all other service-level and global networks",
-                "name": "ExtVL",
-                "version": "37.0",
-                "customizationUuid": "94fdd893-4a36-4d70-b16a-ec29c54c184f",
-                "inputs": {},
-                "commands": {},
-                "properties": {
-                  "network_assignments": "{is_external_network=false, ipv4_subnet_default_assignment={min_subnets_count=1}, ecomp_generated_network_assignment=false, ipv6_subnet_default_assignment={min_subnets_count=1}}",
-                  "exVL_naming": "{ecomp_generated_naming=true}",
-                  "network_flows": "{is_network_policy=false, is_bound_to_vpn=false}",
-                  "network_homing": "{ecomp_selected_instance_node_target=false}"
-                },
-                "type": "VL",
-                "modelCustomizationName": "ExtVL 0"
-              }
+            "networks": {
+              "ExtVL 0": {
+                "uuid": "ddc3f20c-08b5-40fd-af72-c6d14636b986",
+                "invariantUuid": "379f816b-a7aa-422f-be30-17114ff50b7c",
+                "description": "ECOMP generic virtual link (network) base type for all other service-level and global networks",
+                "name": "ExtVL",
+                "version": "37.0",
+                "customizationUuid": "94fdd893-4a36-4d70-b16a-ec29c54c184f",
+                "inputs": {},
+                "commands": {},
+                "properties": {
+                  "network_assignments": "{is_external_network=false, ipv4_subnet_default_assignment={min_subnets_count=1}, ecomp_generated_network_assignment=false, ipv6_subnet_default_assignment={min_subnets_count=1}}",
+                  "exVL_naming": "{ecomp_generated_naming=true}",
+                  "network_flows": "{is_network_policy=false, is_bound_to_vpn=false}",
+                  "network_homing": "{ecomp_selected_instance_node_target=false}"
+                },
+                "type": "VL",
+                "modelCustomizationName": "ExtVL 0"
+              }
+            },
+            "collectionResources": {},
+            "configurations": {
+              "Port Mirroring Configuration By Policy 0": {
+                "uuid": "b4398538-e89d-4f13-b33d-ca323434ba50",
+                "invariantUuid": "6ef0ca40-f366-4897-951f-abd65d25f6f7",
+                "description": "A port mirroring configuration by policy object",
+                "name": "Port Mirroring Configuration By Policy",
+                "version": "27.0",
+                "customizationUuid": "3c3b7b8d-8669-4b3b-8664-61970041fad2",
+                "inputs": {},
+                "commands": {},
+                "properties": {},
+                "type": "Configuration",
+                "modelCustomizationName": "Port Mirroring Configuration By Policy 0",
+                "sourceNodes": [],
+                "collectorNodes": null,
+                "configurationByPolicy": false
+              }
+            },
+            "serviceProxies": {},
+            "vfModules": {
+              "vf_vgeraldine0..VfVgeraldine..vflorence_vlc..module-1": {
+                "uuid": "522159d5-d6e0-4c2a-aa44-5a542a12a830",
+                "invariantUuid": "98a7c88b-b577-476a-90e4-e25a5871e02b",
+                "customizationUuid": "55b1be94-671a-403e-a26c-667e9c47d091",
+                "description": null,
+                "name": "VfVgeraldine..vflorence_vlc..module-1",
+                "version": "2",
+                "modelCustomizationName": "VfVgeraldine..vflorence_vlc..module-1",
+                "properties": {
+                  "minCountInstances": 0,
+                  "maxCountInstances": null,
+                  "initialCount": 0,
+                  "vfModuleLabel": "vflorence_vlc"
+                },
+                "inputs": {},
+                "volumeGroupAllowed": false
+              },
+              "vf_vgeraldine0..VfVgeraldine..vflorence_gpb..module-2": {
+                "uuid": "41708296-e443-4c71-953f-d9a010f059e1",
+                "invariantUuid": "1cca90b8-3490-495e-87da-3f3e4c57d5b9",
+                "customizationUuid": "6add59e0-7fe1-4bc4-af48-f8812422ae7c",
+                "description": null,
+                "name": "VfVgeraldine..vflorence_gpb..module-2",
+                "version": "2",
+                "modelCustomizationName": "VfVgeraldine..vflorence_gpb..module-2",
+                "properties": {
+                  "minCountInstances": 0,
+                  "maxCountInstances": null,
+                  "initialCount": 0,
+                  "vfModuleLabel": "vflorence_gpb"
+                },
+                "inputs": {},
+                "volumeGroupAllowed": false
+              },
+              "vf_vgeraldine0..VfVgeraldine..base_vflorence..module-0": {
+                "uuid": "a27f5cfc-7f12-4f99-af08-0af9c3885c87",
+                "invariantUuid": "a6f9e51a-2b35-416a-ae15-15e58d61f36d",
+                "customizationUuid": "f8c040f1-7e51-4a11-aca8-acf256cfd861",
+                "description": null,
+                "name": "VfVgeraldine..base_vflorence..module-0",
+                "version": "2",
+                "modelCustomizationName": "VfVgeraldine..base_vflorence..module-0",
+                "properties": {
+                  "minCountInstances": 1,
+                  "maxCountInstances": 1,
+                  "initialCount": 1,
+                  "vfModuleLabel": "base_vflorence"
+                },
+                "inputs": {},
+                "volumeGroupAllowed": true
+              }
+            },
+            "volumeGroups": {
+              "vf_vgeraldine0..VfVgeraldine..base_vflorence..module-0": {
+                "uuid": "a27f5cfc-7f12-4f99-af08-0af9c3885c87",
+                "invariantUuid": "a6f9e51a-2b35-416a-ae15-15e58d61f36d",
+                "customizationUuid": "f8c040f1-7e51-4a11-aca8-acf256cfd861",
+                "description": null,
+                "name": "VfVgeraldine..base_vflorence..module-0",
+                "version": "2",
+                "modelCustomizationName": "VfVgeraldine..base_vflorence..module-0",
+                "properties": {
+                  "minCountInstances": 1,
+                  "maxCountInstances": 1,
+                  "initialCount": 1,
+                  "vfModuleLabel": "base_vflorence"
+                },
+                "inputs": {}
+              }
+            },
+            "pnfs": {}
+          }
+        },
+        "serviceInstance": {
+          "f4d84bb4-a416-4b4e-997e-0059973630b9": {
+            "vnfs": {
+              "2017-488_PASQUALE-vPE 0": {
+                "rollbackOnFailure": "true",
+                "vfModules": {
+                  "2017488_pasqualevpe0..2017488PasqualeVpe..PASQUALE_base_vPE_BV..module-0": {
+                    "2017488_pasqualevpe0..2017488PasqualeVpe..PASQUALE_base_vPE_BV..module-0jkyqv": {
+                      "isMissingData": true,
+                      "sdncPreReload": null,
+                      "modelInfo": {
+                        "modelType": "VFmodule",
+                        "modelInvariantId": "b34833bb-6aa9-4ad6-a831-70b06367a091",
+                        "modelVersionId": "040e591e-5d30-4e0d-850f-7266e5a8e013",
+                        "modelName": "2017488PasqualeVpe..PASQUALE_base_vPE_BV..module-0",
+                        "modelVersion": "6",
+                        "modelCustomizationId": "5c5f91f9-5e31-4120-b892-5536587ec258",
+                        "modelCustomizationName": "2017488PasqualeVpe..PASQUALE_base_vPE_BV..module-0"
+                      },
+                      "instanceParams": [
+                        {}
+                      ],
+                      "trackById": "n2ydptuy9lj"
+                    }
+                  }
+                },
+                "isMissingData": false,
+                "originalName": "2017-488_PASQUALE-vPE 0",
+                "productFamilyId": "ebc3bc3d-62fd-4a3f-a037-f619df4ff034",
+                "lcpCloudRegionId": null,
+                "tenantId": null,
+                "lineOfBusiness": null,
+                "platformName": null,
+                "modelInfo": {
+                  "modelType": "VF",
+                  "modelInvariantId": "5be7e99e-8eb2-4d97-be63-8081ff3cd10e",
+                  "modelVersionId": "f4d84bb4-a416-4b4e-997e-0059973630b9",
+                  "modelName": "2017-488_PASQUALE-vPE",
+                  "modelVersion": "9.0",
+                  "modelCustomizationName": "2017-488_PASQUALE-vPE 0"
+                },
+                "trackById": "iapflwk8bip"
+              }
+            },
+            "instanceParams": [
+              {
+                "2017488_pasqualevpe0_ASN": "AV_vPE"
+              }
+            ],
+            "validationCounter": 1,
+            "globalSubscriberId": "e433710f-9217-458d-a79d-1c7aff376d89",
+            "productFamilyId": "ebc3bc3d-62fd-4a3f-a037-f619df4ff034",
+            "subscriptionServiceType": "TYLER SILVIA",
+            "lcpCloudRegionId": "AAIAIC25",
+            "tenantId": "092eb9e8e4b7412e8787dd091bc58e86",
+            "aicZoneId": "JAG1",
+            "projectName": "x1",
+            "owningEntityId": "aaa1",
+            "rollbackOnFailure": "true",
+            "bulkSize": 1,
+            "modelInfo": {
+              "modelInvariantId": "598e3f9e-3244-4d8f-a8e0-0e5d7a29eda9",
+              "modelVersionId": "f4d84bb4-a416-4b4e-997e-0059973630b9",
+              "modelName": "PASQUALE vMX vPE_BV Service 488",
+              "modelVersion": "1.0"
+            },
+            "existingVNFCounterMap": {
+              "41516cc6-5098-4b40-a619-f8d5f55fc4d8": 1
+            },
+            "existingNetworksCounterMap": {},
+            "tenantName": "USP-SIP-IC-24335-T-01",
+            "aicZoneName": "YUDFJULP-JAG1"
+          }
+        },
+        "lcpRegionsAndTenants": {
+          "lcpRegionList": [
+            {
+              "id": "AAIAIC25",
+              "name": "AAIAIC25",
+              "isPermitted": true
+            },
+            {
+              "id": "hvf6",
+              "name": "hvf6",
+              "isPermitted": true
+            }
+          ],
+          "lcpRegionsTenantsMap": {
+            "AAIAIC25": [
+              {
+                "id": "092eb9e8e4b7412e8787dd091bc58e86",
+                "name": "USP-SIP-IC-24335-T-01",
+                "isPermitted": true
+              }
+            ],
+            "hvf6": [
+              {
+                "id": "bae71557c5bb4d5aac6743a4e5f1d054",
+                "name": "AIN Web Tool-15-D-testalexandria",
+                "isPermitted": true
+              },
+              {
+                "id": "229bcdc6eaeb4ca59d55221141d01f8e",
+                "name": "AIN Web Tool-15-D-STTest2",
+                "isPermitted": true
+              },
+              {
+                "id": "1178612d2b394be4834ad77f567c0af2",
+                "name": "AIN Web Tool-15-D-SSPtestcustome",
+                "isPermitted": true
+              },
+              {
+                "id": "19c5ade915eb461e8af52fb2fd8cd1f2",
+                "name": "AIN Web Tool-15-D-UncheckedEcopm",
+                "isPermitted": true
+              },
+              {
+                "id": "de007636e25249238447264a988a927b",
+                "name": "AIN Web Tool-15-D-dfsdf",
+                "isPermitted": true
+              },
+              {
+                "id": "62f29b3613634ca6a3065cbe0e020c44",
+                "name": "AIN/SMS-16-D-Multiservices1",
+                "isPermitted": true
+              },
+              {
+                "id": "649289e30d3244e0b48098114d63c2aa",
+                "name": "AIN Web Tool-15-D-SSPST66",
+                "isPermitted": true
+              },
+              {
+                "id": "3f21eeea6c2c486bba31dab816c05a32",
+                "name": "AIN Web Tool-15-D-ASSPST47",
+                "isPermitted": true
+              },
+              {
+                "id": "f60ce21d3ee6427586cff0d22b03b773",
+                "name": "CESAR-100-D-sspjg67246",
+                "isPermitted": true
+              },
+              {
+                "id": "8774659e425f479895ae091bb5d46560",
+                "name": "CESAR-100-D-sspjg68359",
+                "isPermitted": true
+              },
+              {
+                "id": "624eb554b0d147c19ff8885341760481",
+                "name": "AINWebTool-15-D-iftach",
+                "isPermitted": true
+              },
+              {
+                "id": "214f55f5fc414c678059c383b03e4962",
+                "name": "CESAR-100-D-sspjg612401",
+                "isPermitted": true
+              },
+              {
+                "id": "c90666c291664841bb98e4d981ff1db5",
+                "name": "CESAR-100-D-sspjg621340",
+                "isPermitted": true
+              },
+              {
+                "id": "ce5b6bc5c7b348e1bf4b91ac9a174278",
+                "name": "sspjg621351cloned",
+                "isPermitted": true
+              },
+              {
+                "id": "b386b768a3f24c8e953abbe0b3488c02",
+                "name": "AINWebTool-15-D-eteancomp",
+                "isPermitted": true
+              },
+              {
+                "id": "dc6c4dbfd225474e9deaadd34968646c",
+                "name": "AINWebTool-15-T-SPFET",
+                "isPermitted": true
+              },
+              {
+                "id": "02cb5030e9914aa4be120bd9ed1e19eb",
+                "name": "AINWebTool-15-X-eeweww",
+                "isPermitted": true
+              },
+              {
+                "id": "f2f3830e4c984d45bcd00e1a04158a79",
+                "name": "CESAR-100-D-spjg61909",
+                "isPermitted": true
+              },
+              {
+                "id": "05b91bd5137f4929878edd965755c06d",
+                "name": "CESAR-100-D-sspjg621512cloned",
+                "isPermitted": true
+              },
+              {
+                "id": "7002fbe8482d4a989ddf445b1ce336e0",
+                "name": "AINWebTool-15-X-vdr",
+                "isPermitted": true
+              },
+              {
+                "id": "4008522be43741dcb1f5422022a2aa0b",
+                "name": "AINWebTool-15-D-ssasa",
+                "isPermitted": true
+              },
+              {
+                "id": "f44e2e96a1b6476abfda2fa407b00169",
+                "name": "AINWebTool-15-D-PFNPT",
+                "isPermitted": true
+              },
+              {
+                "id": "b69a52bec8a84669a37a1e8b72708be7",
+                "name": "AINWebTool-15-X-vdre",
+                "isPermitted": true
+              },
+              {
+                "id": "fac7d9fd56154caeb9332202dcf2969f",
+                "name": "AINWebTool-15-X-NONPODECOMP",
+                "isPermitted": true
+              },
+              {
+                "id": "2d34d8396e194eb49969fd61ffbff961",
+                "name": "DN5242-Nov16-T5",
+                "isPermitted": true
+              },
+              {
+                "id": "cb42a77ff45b48a8b8deb83bb64acc74",
+                "name": "ro-T11",
+                "isPermitted": true
+              },
+              {
+                "id": "fa45ca53c80b492fa8be5477cd84fc2b",
+                "name": "ro-T112",
+                "isPermitted": true
+              },
+              {
+                "id": "4914ab0ab3a743e58f0eefdacc1dde77",
+                "name": "DN5242-Nov21-T1",
+                "isPermitted": true
+              },
+              {
+                "id": "d0a3e3f2964542259d155a81c41aadc3",
+                "name": "test-hvf6-09",
+                "isPermitted": true
+              },
+              {
+                "id": "cbb99fe4ada84631b7baf046b6fd2044",
+                "name": "DN5242-Nov16-T3",
+                "isPermitted": true
+              }
+            ]
+          }
+        },
+        "subscribers": [
+          {
+            "id": "CAR_2020_ER",
+            "name": "CAR_2020_ER",
+            "isPermitted": true
+          },
+          {
+            "id": "21014aa2-526b-11e6-beb8-9e71128cae77",
+            "name": "JULIO ERICKSON",
+            "isPermitted": false
+          },
+          {
+            "id": "DHV1707-TestSubscriber-2",
+            "name": "DALE BRIDGES",
+            "isPermitted": false
+          },
+          {
+            "id": "DHV1707-TestSubscriber-1",
+            "name": "LLOYD BRIDGES",
+            "isPermitted": false
+          },
+          {
+            "id": "jimmy-example",
+            "name": "JimmyExampleCust-20161102",
+            "isPermitted": false
+          },
+          {
+            "id": "jimmy-example2",
+            "name": "JimmyExampleCust-20161103",
+            "isPermitted": false
+          },
+          {
+            "id": "ERICA5779-TestSub-PWT-102",
+            "name": "ERICA5779-TestSub-PWT-102",
+            "isPermitted": false
+          },
+          {
+            "id": "ERICA5779-TestSub-PWT-101",
+            "name": "ERICA5779-TestSub-PWT-101",
+            "isPermitted": false
+          },
+          {
+            "id": "a9a77d5a-123e-4ca2-9eb9-0b015d2ee0fb",
+            "name": "Emanuel",
+            "isPermitted": false
+          },
+          {
+            "id": "ERICA5779-Subscriber-4",
+            "name": "ERICA5779-Subscriber-5",
+            "isPermitted": false
+          },
+          {
+            "id": "ERICA5779-TestSub-PWT-103",
+            "name": "ERICA5779-TestSub-PWT-103",
+            "isPermitted": false
+          },
+          {
+            "id": "ERICA5779-Subscriber-2",
+            "name": "ERICA5779-Subscriber-2",
+            "isPermitted": false
+          },
+          {
+            "id": "e433710f-9217-458d-a79d-1c7aff376d89",
+            "name": "SILVIA ROBBINS",
+            "isPermitted": true
+          },
+          {
+            "id": "ERICA5779-Subscriber-3",
+            "name": "ERICA5779-Subscriber-3",
+            "isPermitted": false
+          },
+          {
+            "id": "31739f3e-526b-11e6-beb8-9e71128cae77",
+            "name": "CRAIG/ROBERTS",
+            "isPermitted": false
+          }
+        ],
+        "productFamilies": [
+          {
+            "id": "ebc3bc3d-62fd-4a3f-a037-f619df4ff034",
+            "name": "ERICA",
+            "isPermitted": true
+          },
+          {
+            "id": "17cc1042-527b-11e6-beb8-9e71128cae77",
+            "name": "IGNACIO",
+            "isPermitted": true
+          },
+          {
+            "id": "36b4733a-53f4-4cc8-8ff0-9172e5fc4b8e",
+            "name": "Christie",
+            "isPermitted": true
+          },
+          {
+            "id": "a4f6f2ae-9bf5-4ed7-b904-06b2099c4bd7",
+            "name": "Enhanced Services",
+            "isPermitted": true
+          },
+          {
+            "id": "vTerrance",
+            "name": "vTerrance",
+            "isPermitted": true
+          },
+          {
+            "id": "323d69d9-2efe-4r45-ay0a-89ea7ard4e6f",
+            "name": "vEsmeralda",
+            "isPermitted": true
+          },
+          {
+            "id": "a9a77d5a-123e-4ca2-9eb9-0b015d2ee0fb",
+            "name": "Emanuel",
+            "isPermitted": true
+          },
+          {
+            "id": "d8a6ed93-251c-47ca-adc9-86671fd19f4c",
+            "name": "BVOIP",
+            "isPermitted": true
+          },
+          {
+            "id": "db171b8f-115c-4992-a2e3-ee04cae357e0",
+            "name": "LINDSEY",
+            "isPermitted": true
+          },
+          {
+            "id": "LRSI-OSPF",
+            "name": "LRSI-OSPF",
+            "isPermitted": true
+          },
+          {
+            "id": "vRosemarie",
+            "name": "HNGATEWAY",
+            "isPermitted": true
+          },
+          {
+            "id": "vHNPaas",
+            "name": "WILKINS",
+            "isPermitted": true
+          },
+          {
+            "id": "e433710f-9217-458d-a79d-1c7aff376d89",
+            "name": "TYLER SILVIA",
+            "isPermitted": true
+          },
+          {
+            "id": "b6a3f28c-eebf-494c-a900-055cc7c874ce",
+            "name": "VROUTER",
+            "isPermitted": true
+          },
+          {
+            "id": "vMuriel",
+            "name": "vMuriel",
+            "isPermitted": true
+          },
+          {
+            "id": "0ee8c1bc-7cbd-4b0a-a1ac-e9999255abc1",
+            "name": "CARA Griffin",
+            "isPermitted": true
+          },
+          {
+            "id": "c7611ebe-c324-48f1-8085-94aef0c6ef3d",
+            "name": "DARREN MCGEE",
+            "isPermitted": true
+          },
+          {
+            "id": "e30755dc-5673-4b6b-9dcf-9abdd96b93d1",
+            "name": "Transport",
+            "isPermitted": true
+          },
+          {
+            "id": "vSalvatore",
+            "name": "vSalvatore",
+            "isPermitted": true
+          },
+          {
+            "id": "d7bb0a21-66f2-4e6d-87d9-9ef3ced63ae4",
+            "name": "JOSEFINA",
+            "isPermitted": true
+          },
+          {
+            "id": "vHubbard",
+            "name": "vHubbard",
+            "isPermitted": true
+          },
+          {
+            "id": "12a96a9d-4b4c-4349-a950-fe1159602621",
+            "name": "DARREN MCGEE",
+            "isPermitted": true
+          }
+        ],
+        "serviceTypes": {
+          "e433710f-9217-458d-a79d-1c7aff376d89": [
+            {
+              "id": "0",
+              "name": "vRichardson",
+              "isPermitted": false
+            },
+            {
+              "id": "1",
+              "name": "TYLER SILVIA",
+              "isPermitted": true
             },
-            "collectionResource": {},
-            "configurations": {
-              "Port Mirroring Configuration By Policy 0": {
-                "uuid": "b4398538-e89d-4f13-b33d-ca323434ba50",
-                "invariantUuid": "6ef0ca40-f366-4897-951f-abd65d25f6f7",
-                "description": "A port mirroring configuration by policy object",
-                "name": "Port Mirroring Configuration By Policy",
-                "version": "27.0",
-                "customizationUuid": "3c3b7b8d-8669-4b3b-8664-61970041fad2",
-                "inputs": {},
-                "commands": {},
-                "properties": {},
-                "type": "Configuration",
-                "modelCustomizationName": "Port Mirroring Configuration By Policy 0",
-                "sourceNodes": [],
-                "collectorNodes": null,
-                "configurationByPolicy": false
-              }
+            {
+              "id": "2",
+              "name": "Emanuel",
+              "isPermitted": false
             },
-            "serviceProxies": {},
-            "vfModules": {
-              "vf_vmee0..VfVmee..vmme_vlc..module-1": {
-                "uuid": "522159d5-d6e0-4c2a-aa44-5a542a12a830",
-                "invariantUuid": "98a7c88b-b577-476a-90e4-e25a5871e02b",
-                "customizationUuid": "55b1be94-671a-403e-a26c-667e9c47d091",
-                "description": null,
-                "name": "VfVmee..vmme_vlc..module-1",
-                "version": "2",
-                "modelCustomizationName": "VfVmee..vmme_vlc..module-1",
-                "properties": {
-                  "minCountInstances": 0,
-                  "maxCountInstances": null,
-                  "initialCount": 0,
-                  "vfModuleLabel": "vmme_vlc"
-                },
-                "inputs": {},
-                "volumeGroupAllowed": false
-              },
-              "vf_vmee0..VfVmee..vmme_gpb..module-2": {
-                "uuid": "41708296-e443-4c71-953f-d9a010f059e1",
-                "invariantUuid": "1cca90b8-3490-495e-87da-3f3e4c57d5b9",
-                "customizationUuid": "6add59e0-7fe1-4bc4-af48-f8812422ae7c",
-                "description": null,
-                "name": "VfVmee..vmme_gpb..module-2",
-                "version": "2",
-                "modelCustomizationName": "VfVmee..vmme_gpb..module-2",
-                "properties": {
-                  "minCountInstances": 0,
-                  "maxCountInstances": null,
-                  "initialCount": 0,
-                  "vfModuleLabel": "vmme_gpb"
-                },
-                "inputs": {},
-                "volumeGroupAllowed": false
-              },
-              "vf_vmee0..VfVmee..base_vmme..module-0": {
-                "uuid": "a27f5cfc-7f12-4f99-af08-0af9c3885c87",
-                "invariantUuid": "a6f9e51a-2b35-416a-ae15-15e58d61f36d",
-                "customizationUuid": "f8c040f1-7e51-4a11-aca8-acf256cfd861",
-                "description": null,
-                "name": "VfVmee..base_vmme..module-0",
-                "version": "2",
-                "modelCustomizationName": "VfVmee..base_vmme..module-0",
-                "properties": {
-                  "minCountInstances": 1,
-                  "maxCountInstances": 1,
-                  "initialCount": 1,
-                  "vfModuleLabel": "base_vmme"
-                },
-                "inputs": {},
-                "volumeGroupAllowed": true
-              }
+            {
+              "id": "3",
+              "name": "vJamie",
+              "isPermitted": false
             },
-            "volumeGroups": {
-              "vf_vmee0..VfVmee..base_vmme..module-0": {
-                "uuid": "a27f5cfc-7f12-4f99-af08-0af9c3885c87",
-                "invariantUuid": "a6f9e51a-2b35-416a-ae15-15e58d61f36d",
-                "customizationUuid": "f8c040f1-7e51-4a11-aca8-acf256cfd861",
-                "description": null,
-                "name": "VfVmee..base_vmme..module-0",
-                "version": "2",
-                "modelCustomizationName": "VfVmee..base_vmme..module-0",
-                "properties": {
-                  "minCountInstances": 1,
-                  "maxCountInstances": 1,
-                  "initialCount": 1,
-                  "vfModuleLabel": "base_vmme"
-                },
-                "inputs": {}
-              }
+            {
+              "id": "4",
+              "name": "vVoiceMail",
+              "isPermitted": false
             },
-            "pnfs": {}
-          }
-        },
-        "serviceInstance": {
-          "f4d84bb4-a416-4b4e-997e-0059973630b9": {
-            "vnfs": {
-              "2017-488_ADIOD-vPE 0": {
-                "rollbackOnFailure": "true",
-                "vfModules": {
-                  "2017488_adiodvpe0..2017488AdiodVpe..ADIOD_base_vPE_BV..module-0": {
-                    "2017488_adiodvpe0..2017488AdiodVpe..ADIOD_base_vPE_BV..module-0jkyqv": {
-                      "isMissingData": true,
-                      "sdncPreReload": null,
-                      "modelInfo": {
-                        "modelType": "VFmodule",
-                        "modelInvariantId": "b34833bb-6aa9-4ad6-a831-70b06367a091",
-                        "modelVersionId": "040e591e-5d30-4e0d-850f-7266e5a8e013",
-                        "modelName": "2017488AdiodVpe..ADIOD_base_vPE_BV..module-0",
-                        "modelVersion": "6",
-                        "modelCustomizationId": "5c5f91f9-5e31-4120-b892-5536587ec258",
-                        "modelCustomizationName": "2017488AdiodVpe..ADIOD_base_vPE_BV..module-0"
-                      },
-                      "instanceParams": [
-                        {}
-                      ],
-                      "trackById": "n2ydptuy9lj"
-                    }
-                  }
-                },
-                "isMissingData": false,
-                "originalName": "2017-488_ADIOD-vPE 0",
-                "productFamilyId": "ebc3bc3d-62fd-4a3f-a037-f619df4ff034",
-                "lcpCloudRegionId": null,
-                "tenantId": null,
-                "lineOfBusiness": null,
-                "platformName": null,
-                "modelInfo": {
-                  "modelType": "VF",
-                  "modelInvariantId": "5be7e99e-8eb2-4d97-be63-8081ff3cd10e",
-                  "modelVersionId": "f4d84bb4-a416-4b4e-997e-0059973630b9",
-                  "modelName": "2017-488_ADIOD-vPE",
-                  "modelVersion": "9.0",
-                  "modelCustomizationName": "2017-488_ADIOD-vPE 0"
-                },
-                "trackById": "iapflwk8bip"
-              }
+            {
+              "id": "5",
+              "name": "Kennedy",
+              "isPermitted": false
             },
-            "instanceParams": [
-              {
-                "2017488_adiodvpe0_ASN": "AV_vPE"
-              }
-            ],
-            "validationCounter": 1,
-            "globalSubscriberId": "e433710f-9217-458d-a79d-1c7aff376d89",
-            "productFamilyId": "ebc3bc3d-62fd-4a3f-a037-f619df4ff034",
-            "subscriptionServiceType": "TYLER SILVIA",
-            "lcpCloudRegionId": "JANET25",
-            "tenantId": "092eb9e8e4b7412e8787dd091bc58e86",
-            "aicZoneId": "JAG1",
-            "projectName": "x1",
-            "owningEntityId": "aaa1",
-            "rollbackOnFailure": "true",
-            "bulkSize": 1,
-            "modelInfo": {
-              "modelInvariantId": "598e3f9e-3244-4d8f-a8e0-0e5d7a29eda9",
-              "modelVersionId": "f4d84bb4-a416-4b4e-997e-0059973630b9",
-              "modelName": "ADIOD vMX vPE_BV Service 488",
-              "modelVersion": "1.0"
+            {
+              "id": "6",
+              "name": "vPorfirio",
+              "isPermitted": false
             },
-            "existingVNFCounterMap": {
-              "41516cc6-5098-4b40-a619-f8d5f55fc4d8": 1
+            {
+              "id": "7",
+              "name": "vVM",
+              "isPermitted": false
             },
-            "existingNetworksCounterMap": {},
-            "tenantName": "USP-SIP-IC-24335-T-01",
-            "aicZoneName": "YUDFJULP-JAG1"
-          }
-        },
-        "lcpRegionsAndTenants": {
-          "lcpRegionList": [
             {
-              "id": "JANET25",
-              "name": "JANET25",
-              "isPermitted": true
+              "id": "8",
+              "name": "vOTA",
+              "isPermitted": false
             },
             {
-              "id": "hvf6",
-              "name": "hvf6",
-              "isPermitted": true
+              "id": "9",
+              "name": "vFLORENCE",
+              "isPermitted": false
+            },
+            {
+              "id": "10",
+              "name": "vMNS",
+              "isPermitted": false
+            },
+            {
+              "id": "11",
+              "name": "vEsmeralda",
+              "isPermitted": false
+            },
+            {
+              "id": "12",
+              "name": "VPMS",
+              "isPermitted": false
+            },
+            {
+              "id": "13",
+              "name": "vWINIFRED",
+              "isPermitted": false
+            },
+            {
+              "id": "14",
+              "name": "SSD",
+              "isPermitted": false
+            },
+            {
+              "id": "15",
+              "name": "vMOG",
+              "isPermitted": false
+            },
+            {
+              "id": "16",
+              "name": "LINDSEY",
+              "isPermitted": false
+            },
+            {
+              "id": "17",
+              "name": "JOHANNA_SANTOS",
+              "isPermitted": false
+            },
+            {
+              "id": "18",
+              "name": "vCarroll",
+              "isPermitted": false
             }
-          ],
-          "lcpRegionsTenantsMap": {
-            "JANET25": [
-              {
-                "id": "092eb9e8e4b7412e8787dd091bc58e86",
-                "name": "USP-SIP-IC-24335-T-01",
-                "isPermitted": true
-              }
-            ],
-            "hvf6": [
-              {
-                "id": "bae71557c5bb4d5aac6743a4e5f1d054",
-                "name": "AIN Web Tool-15-D-testalexandria",
-                "isPermitted": true
-              },
-              {
-                "id": "d0a3e3f2964542259d155a81c41aadc3",
-                "name": "test-hvf6-09",
-                "isPermitted": true
-              },
-              {
-                "id": "fa45ca53c80b492fa8be5477cd84fc2b",
-                "name": "ro-T112",
-                "isPermitted": true
-              },
-              {
-                "id": "cbb99fe4ada84631b7baf046b6fd2044",
-                "name": "DN5242-Nov16-T3",
-                "isPermitted": true
-              }
-            ]
-          }
+          ]
         },
-        "subscribers": [
+        "aicZones": [
+          {
+            "id": "NFT1",
+            "name": "NFTJSSSS-NFT1"
+          },
+          {
+            "id": "JAG1",
+            "name": "YUDFJULP-JAG1"
+          },
+          {
+            "id": "YYY1",
+            "name": "UUUAIAAI-YYY1"
+          },
+          {
+            "id": "BAN1",
+            "name": "VSDKYUTP-BAN1"
+          },
+          {
+            "id": "DKJ1",
+            "name": "DKJSJDKA-DKJ1"
+          },
+          {
+            "id": "MCS1",
+            "name": "ASACMAMS-MCS1"
+          },
+          {
+            "id": "UIO1",
+            "name": "uioclli1-UIO1"
+          },
+          {
+            "id": "RAJ1",
+            "name": "YGBIJNLQ-RAJ1"
+          },
+          {
+            "id": "OPA1",
+            "name": "opaclli1-OPA1"
+          },
+          {
+            "id": "SDE1",
+            "name": "ZXCVBNMA-SDE1"
+          },
+          {
+            "id": "VEN2",
+            "name": "FGHJUHIL-VEN2"
+          },
+          {
+            "id": "ORL1",
+            "name": "ORLDFLMA-ORL1"
+          },
+          {
+            "id": "JAD1",
+            "name": "JADECLLI-JAD1"
+          },
+          {
+            "id": "ZXL1",
+            "name": "LWLWCANN-ZXL1"
+          },
+          {
+            "id": "CKL1",
+            "name": "CLKSKCKK-CKL1"
+          },
+          {
+            "id": "SDF1",
+            "name": "sdfclli1-SDF1"
+          },
+          {
+            "id": "RAD1",
+            "name": "RADICAL1-RAD1"
+          },
+          {
+            "id": "KIT1",
+            "name": "BHYJFGLN-KIT1"
+          },
+          {
+            "id": "REL1",
+            "name": "INGERFGT-REL1"
+          },
+          {
+            "id": "JNL1",
+            "name": "CJALSDAC-JNL1"
+          },
+          {
+            "id": "OLK1",
+            "name": "OLKOLKLS-OLK1"
+          },
+          {
+            "id": "CHI1",
+            "name": "CHILLIWE-CHI1"
+          },
+          {
+            "id": "UUU4",
+            "name": "UUUAAAUU-UUU4"
+          },
+          {
+            "id": "TUF1",
+            "name": "TUFCLLI1-TUF1"
+          },
+          {
+            "id": "KJN1",
+            "name": "CKALDKSA-KJN1"
+          },
+          {
+            "id": "SAM1",
+            "name": "SNDGCA64-SAN1"
+          },
+          {
+            "id": "SCK1",
+            "name": "SCKSCKSK-SCK1"
+          },
+          {
+            "id": "HJH1",
+            "name": "AOEEQQQD-HJH1"
+          },
+          {
+            "id": "HGD1",
+            "name": "SDFQWHGD-HGD1"
+          },
+          {
+            "id": "KOR1",
+            "name": "HYFLNBVT-KOR1"
+          },
+          {
+            "id": "ATL43",
+            "name": "AICLOCID-ATL43"
+          },
+          {
+            "id": "ATL54",
+            "name": "AICFTAAI-ATL54"
+          },
+          {
+            "id": "ATL66",
+            "name": "CLLIAAII-ATL66"
+          },
+          {
+            "id": "VEL1",
+            "name": "BNMLKUIK-VEL1"
+          },
+          {
+            "id": "ICC1",
+            "name": "SANJITAT-ICC1"
+          },
+          {
+            "id": "MNT11",
+            "name": "WSXEFBTH-MNT11"
+          },
+          {
+            "id": "DEF2",
+            "name": "WSBHGTYL-DEF2"
+          },
+          {
+            "id": "MAD11",
+            "name": "SDFQWGKL-MAD11"
+          },
+          {
+            "id": "OLG1",
+            "name": "OLHOLHOL-OLG1"
+          },
+          {
+            "id": "GAR1",
+            "name": "NGFVSJKO-GAR1"
+          },
+          {
+            "id": "SAN22",
+            "name": "GNVLSCTL-SAN22"
+          },
+          {
+            "id": "HRG1",
+            "name": "HRGHRGGS-HRG1"
+          },
+          {
+            "id": "JCS1",
+            "name": "JCSJSCJS-JCS1"
+          },
+          {
+            "id": "DHA12",
+            "name": "WSXEDECF-DHA12"
+          },
+          {
+            "id": "HJE1",
+            "name": "AOEEWWWD-HJE1"
+          },
+          {
+            "id": "NCA1",
+            "name": "NCANCANN-NCA1"
+          },
+          {
+            "id": "IOP1",
+            "name": "iopclli1-IOP1"
+          },
+          {
+            "id": "RTY1",
+            "name": "rtyclli1-RTY1"
+          },
+          {
+            "id": "KAP1",
+            "name": "HIOUYTRQ-KAP1"
+          },
+          {
+            "id": "ZEN1",
+            "name": "ZENCLLI1-ZEN1"
+          },
+          {
+            "id": "HKA1",
+            "name": "JAKHLASS-HKA1"
+          },
+          {
+            "id": "CQK1",
+            "name": "CQKSCAKK-CQK1"
+          },
+          {
+            "id": "SAI1",
+            "name": "UBEKQLPD-SAI1"
+          },
+          {
+            "id": "ERT1",
+            "name": "ertclli1-ERT1"
+          },
+          {
+            "id": "IBB1",
+            "name": "PLMKOIJU-IBB1"
+          },
+          {
+            "id": "TIR2",
+            "name": "PLKINHYI-TIR2"
+          },
+          {
+            "id": "HSD1",
+            "name": "CHASKCDS-HSD1"
+          },
+          {
+            "id": "SLF78",
+            "name": "SDCTLFN1-SLF78"
+          },
+          {
+            "id": "SEE78",
+            "name": "SDCTEEE4-SEE78"
+          },
+          {
+            "id": "SAN13",
+            "name": "TOKYJPFA-SAN13"
+          },
+          {
+            "id": "SAA78",
+            "name": "SDCTAAA1-SAA78"
+          },
+          {
+            "id": "LUC1",
+            "name": "ATLDFGYC-LUC1"
+          },
+          {
+            "id": "AMD13",
+            "name": "MEMATLAN-AMD13"
+          },
+          {
+            "id": "TOR1",
+            "name": "TOROONXN-TOR1"
+          },
+          {
+            "id": "QWE1",
+            "name": "QWECLLI1-QWE1"
+          },
+          {
+            "id": "ZOG1",
+            "name": "ZOGASTRO-ZOG1"
+          },
+          {
+            "id": "CAL33",
+            "name": "CALIFORN-CAL33"
+          },
+          {
+            "id": "SHH78",
+            "name": "SDIT1HHH-SHH78"
+          },
+          {
+            "id": "DSA1",
+            "name": "LKJHGFDS-DSA1"
+          },
+          {
+            "id": "CLG1",
+            "name": "CLGRABAD-CLG1"
+          },
+          {
+            "id": "BNA1",
+            "name": "BNARAGBK-BNA1"
+          },
+          {
+            "id": "ATL84",
+            "name": "CANTTCOC-ATL84"
+          },
+          {
+            "id": "APP1",
+            "name": "WBHGTYUI-APP1"
+          },
+          {
+            "id": "RJN1",
+            "name": "RJNRBZAW-RJN1"
+          },
+          {
+            "id": "EHH78",
+            "name": "SDCSHHH5-EHH78"
+          },
+          {
+            "id": "mac10",
+            "name": "PKGTESTF-mac10"
+          },
+          {
+            "id": "SXB78",
+            "name": "SDCTGXB1-SXB78"
+          },
+          {
+            "id": "SAX78",
+            "name": "SDCTAXG1-SAX78"
+          },
+          {
+            "id": "SYD1",
+            "name": "SYDNAUBV-SYD1"
+          },
+          {
+            "id": "TOK1",
+            "name": "TOKYJPFA-TOK1"
+          },
+          {
+            "id": "KGM2",
+            "name": "KGMTNC20-KGM2"
+          },
+          {
+            "id": "DCC1b",
+            "name": "POIUYTGH-DCC1b"
+          },
+          {
+            "id": "SKK78",
+            "name": "SDCTKKK1-SKK78"
+          },
+          {
+            "id": "SGG78",
+            "name": "SDCTGGG1-SGG78"
+          },
+          {
+            "id": "SJJ78",
+            "name": "SDCTJJJ1-SJJ78"
+          },
+          {
+            "id": "SBX78",
+            "name": "SDCTBXG1-SBX78"
+          },
+          {
+            "id": "LAG1",
+            "name": "LARGIZON-LAG1"
+          },
+          {
+            "id": "IAA1",
+            "name": "QAZXSWED-IAA1"
+          },
+          {
+            "id": "POI1",
+            "name": "PLMNJKIU-POI1"
+          },
+          {
+            "id": "LAG1a",
+            "name": "LARGIZON-LAG1a"
+          },
+          {
+            "id": "PBL1",
+            "name": "PBLAPBAI-PBL1"
+          },
+          {
+            "id": "LAG45",
+            "name": "LARGIZON-LAG1a"
+          },
+          {
+            "id": "MAR1",
+            "name": "MNBVCXZM-MAR1"
+          },
+          {
+            "id": "HST70",
+            "name": "HSTNTX70-HST70"
+          },
+          {
+            "id": "DCC1a",
+            "name": "POIUYTGH-DCC1a"
+          },
+          {
+            "id": "TOL1",
+            "name": "TOLDOH21-TOL1"
+          },
+          {
+            "id": "LON1",
+            "name": "LONEENCO-LON1"
+          },
+          {
+            "id": "SJU78",
+            "name": "SDIT1JUB-SJU78"
+          },
+          {
+            "id": "STN27",
+            "name": "HSTNTX01-STN27"
+          },
+          {
+            "id": "SSW56",
+            "name": "ss8126GT-SSW56"
+          },
+          {
+            "id": "SBB78",
+            "name": "SDIT1BBB-SBB78"
+          },
+          {
+            "id": "DCC3",
+            "name": "POIUYTGH-DCC3"
+          },
+          {
+            "id": "GNV1",
+            "name": "GNVLSCTL-GNV1"
+          },
+          {
+            "id": "WAS1",
+            "name": "WASHDCSW-WAS1"
+          },
+          {
+            "id": "TOY1",
+            "name": "TORYONNZ-TOY1"
+          },
+          {
+            "id": "STT1",
+            "name": "STTLWA02-STT1"
+          },
           {
-            "id": "CAR_2020_ER",
-            "name": "CAR_2020_ER",
-            "isPermitted": true
+            "id": "STG1",
+            "name": "STTGGE62-STG1"
           },
           {
-            "id": "21014aa2-526b-11e6-beb8-9e71128cae77",
-            "name": "JULIO ERICKSON",
-            "isPermitted": false
+            "id": "SLL78",
+            "name": "SDCTLLL1-SLL78"
           },
           {
-            "id": "DHV1707-TestSubscriber-2",
-            "name": "DALE BRIDGES",
-            "isPermitted": false
+            "id": "SBU78",
+            "name": "SDIT1BUB-SBU78"
           },
           {
-            "id": "DHV1707-TestSubscriber-1",
-            "name": "LLOYD BRIDGES",
-            "isPermitted": false
+            "id": "ATL2",
+            "name": "ATLNGANW-ATL2"
           },
           {
-            "id": "jimmy-example",
-            "name": "JimmyExampleCust-20161102",
-            "isPermitted": false
+            "id": "BOT1",
+            "name": "BOTHWAKY-BOT1"
           },
           {
-            "id": "jimmy-example2",
-            "name": "JimmyExampleCust-20161103",
-            "isPermitted": false
+            "id": "SNG1",
+            "name": "SNGPSIAU-SNG1"
           },
           {
-            "id": "ERICA5779-TestSub-PWT-102",
-            "name": "ERICA5779-TestSub-PWT-102",
-            "isPermitted": false
+            "id": "NYC1",
+            "name": "NYCMNY54-NYC1"
           },
           {
-            "id": "ERICA5779-TestSub-PWT-101",
-            "name": "ERICA5779-TestSub-PWT-101",
-            "isPermitted": false
+            "id": "LAG1b",
+            "name": "LARGIZON-LAG1b"
           },
           {
-            "id": "a9a77d5a-123e-4ca2-9eb9-0b015d2ee0fb",
-            "name": "Emanuel",
-            "isPermitted": false
+            "id": "AMD15",
+            "name": "AMDFAA01-AMD15"
           },
           {
-            "id": "ERICA5779-Subscriber-4",
-            "name": "ERICA5779-Subscriber-5",
-            "isPermitted": false
+            "id": "SNA1",
+            "name": "SNANTXCA-SNA1"
           },
           {
-            "id": "ERICA5779-TestSub-PWT-103",
-            "name": "ERICA5779-TestSub-PWT-103",
-            "isPermitted": false
+            "id": "PLT1",
+            "name": "PLTNCA60-PLT1"
           },
           {
-            "id": "ERICA5779-Subscriber-2",
-            "name": "ERICA5779-Subscriber-2",
-            "isPermitted": false
+            "id": "TLP1",
+            "name": "TLPNXM18-TLP1"
           },
           {
-            "id": "e433710f-9217-458d-a79d-1c7aff376d89",
-            "name": "SILVIA ROBBINS",
-            "isPermitted": true
+            "id": "SDD81",
+            "name": "SAIT1DD6-SDD81"
           },
           {
-            "id": "ERICA5779-Subscriber-3",
-            "name": "ERICA5779-Subscriber-3",
-            "isPermitted": false
+            "id": "DCC1",
+            "name": "POIUYTGH-DCC1"
           },
           {
-            "id": "31739f3e-526b-11e6-beb8-9e71128cae77",
-            "name": "CRAIG/ROBERTS",
-            "isPermitted": false
-          }
-        ],
-        "productFamilies": [
+            "id": "DCC2",
+            "name": "POIUYTGH-DCC2"
+          },
           {
-            "id": "ebc3bc3d-62fd-4a3f-a037-f619df4ff034",
-            "name": "SCOTTIE",
-            "isPermitted": true
+            "id": "OKC1",
+            "name": "OKCBOK55-OKC1"
           },
           {
-            "id": "17cc1042-527b-11e6-beb8-9e71128cae77",
-            "name": "IGNACIO",
-            "isPermitted": true
+            "id": "PAR1",
+            "name": "PARSFRCG-PAR1"
           },
           {
-            "id": "36b4733a-53f4-4cc8-8ff0-9172e5fc4b8e",
-            "name": "Christie",
-            "isPermitted": true
+            "id": "TES36",
+            "name": "ABCEETES-TES36"
           },
           {
-            "id": "a4f6f2ae-9bf5-4ed7-b904-06b2099c4bd7",
-            "name": "Enhanced Services",
-            "isPermitted": true
+            "id": "COM1",
+            "name": "PLMKOPIU-COM1"
           },
           {
-            "id": "vTerrance",
-            "name": "vTerrance",
-            "isPermitted": true
+            "id": "ANI1",
+            "name": "ATLNGTRE-ANI1"
           },
           {
-            "id": "323d69d9-2efe-4r45-ay0a-89ea7ard4e6f",
-            "name": "vSCP",
-            "isPermitted": true
+            "id": "SDG78",
+            "name": "SDIT1BDG-SDG78"
           },
           {
-            "id": "a9a77d5a-123e-4ca2-9eb9-0b015d2ee0fb",
-            "name": "Emanuel",
-            "isPermitted": true
+            "id": "mac20",
+            "name": "PKGTESTF-mac20"
           },
           {
-            "id": "d8a6ed93-251c-47ca-adc9-86671fd19f4c",
-            "name": "BVOIP",
-            "isPermitted": true
+            "id": "DSF45",
+            "name": "DSFBG123-DSF45"
           },
           {
-            "id": "db171b8f-115c-4992-a2e3-ee04cae357e0",
-            "name": "LINDSEY",
-            "isPermitted": true
+            "id": "HST25",
+            "name": "HSTNTX01-HST25"
           },
           {
-            "id": "LRSI-OSPF",
-            "name": "LRSI-OSPF",
-            "isPermitted": true
+            "id": "AMD18",
+            "name": "AUDIMA01-AMD18"
           },
           {
-            "id": "vRosemarie",
-            "name": "HNGATEWAY",
-            "isPermitted": true
+            "id": "SAA80",
+            "name": "SAIT9AA3-SAA80"
           },
           {
-            "id": "vHNPaas",
-            "name": "WILKINS",
-            "isPermitted": true
+            "id": "SSA56",
+            "name": "SSIT2AA7-SSA56"
           },
           {
-            "id": "e433710f-9217-458d-a79d-1c7aff376d89",
-            "name": "TYLER SILVIA",
-            "isPermitted": true
+            "id": "SDD82",
+            "name": "SAIT1DD9-SDD82"
           },
           {
-            "id": "b6a3f28c-eebf-494c-a900-055cc7c874ce",
-            "name": "VROUTER",
-            "isPermitted": true
+            "id": "JCV1",
+            "name": "JCVLFLBW-JCV1"
           },
           {
-            "id": "Cisneros",
-            "name": "vMuriel",
-            "isPermitted": true
+            "id": "SUL2",
+            "name": "WERTYUJK-SUL2"
           },
           {
-            "id": "0ee8c1bc-7cbd-4b0a-a1ac-e9999255abc1",
-            "name": "CARA Griffin",
-            "isPermitted": true
+            "id": "PUR1",
+            "name": "purelyde-PUR1"
           },
           {
-            "id": "c7611ebe-c324-48f1-8085-94aef0c6ef3d",
-            "name": "DARREN MCGEE",
-            "isPermitted": true
+            "id": "FDE55",
+            "name": "FDERT555-FDE55"
           },
           {
-            "id": "e30755dc-5673-4b6b-9dcf-9abdd96b93d1",
-            "name": "Transport",
-            "isPermitted": true
+            "id": "SITE",
+            "name": "LONEENCO-SITE"
           },
           {
-            "id": "vSalvatore",
-            "name": "vSalvatore",
-            "isPermitted": true
+            "id": "ATL1",
+            "name": "ATLNGAMA-ATL1"
           },
           {
-            "id": "d7bb0a21-66f2-4e6d-87d9-9ef3ced63ae4",
-            "name": "Josefina",
-            "isPermitted": true
+            "id": "JUL1",
+            "name": "ZXCVBNMM-JUL1"
           },
           {
-            "id": "vHubbard",
-            "name": "vHubbard",
-            "isPermitted": true
+            "id": "TAT34",
+            "name": "TESAAISB-TAT34"
           },
           {
-            "id": "12a96a9d-4b4c-4349-a950-fe1159602621",
-            "name": "DARREN MCGEE",
-            "isPermitted": true
-          }
-        ],
-        "serviceTypes": {
-          "e433710f-9217-458d-a79d-1c7aff376d89": [
-            {
-              "id": "0",
-              "name": "vRichardson",
-              "isPermitted": false
-            },
-            {
-              "id": "1",
-              "name": "TYLER SILVIA",
-              "isPermitted": true
-            },
-            {
-              "id": "2",
-              "name": "Emanuel",
-              "isPermitted": false
-            },
-            {
-              "id": "3",
-              "name": "vJamie",
-              "isPermitted": false
-            },
-            {
-              "id": "4",
-              "name": "vVoiceMail",
-              "isPermitted": false
-            },
-            {
-              "id": "5",
-              "name": "Kennedy",
-              "isPermitted": false
-            },
-            {
-              "id": "6",
-              "name": "vSEGW",
-              "isPermitted": false
-            },
-            {
-              "id": "7",
-              "name": "vVM",
-              "isPermitted": false
-            },
-            {
-              "id": "8",
-              "name": "vOTA",
-              "isPermitted": false
-            },
-            {
-              "id": "9",
-              "name": "vMME",
-              "isPermitted": false
-            },
-            {
-              "id": "10",
-              "name": "vMNS",
-              "isPermitted": false
-            },
-            {
-              "id": "11",
-              "name": "vSCP",
-              "isPermitted": false
-            },
-            {
-              "id": "12",
-              "name": "VPMS",
-              "isPermitted": false
-            },
-            {
-              "id": "13",
-              "name": "vMMSC",
-              "isPermitted": false
-            },
-            {
-              "id": "14",
-              "name": "SSD",
-              "isPermitted": false
-            },
-            {
-              "id": "15",
-              "name": "vMOG",
-              "isPermitted": false
-            },
-            {
-              "id": "16",
-              "name": "LINDSEY",
-              "isPermitted": false
-            },
-            {
-              "id": "17",
-              "name": "JOHANNA_SANTOS",
-              "isPermitted": false
-            },
-            {
-              "id": "18",
-              "name": "vCarroll",
-              "isPermitted": false
-            }
-          ]
-        },
-        "aicZones": [
+            "id": "XCP12",
+            "name": "CHKGH123-XCP12"
+          },
+          {
+            "id": "RAI1",
+            "name": "poiuytre-RAI1"
+          },
+          {
+            "id": "HPO1",
+            "name": "ATLNGAUP-HPO1"
+          },
+          {
+            "id": "KJF12",
+            "name": "KJFDH123-KJF12"
+          },
+          {
+            "id": "SCC80",
+            "name": "SAIT9CC3-SCC80"
+          },
+          {
+            "id": "SAA12",
+            "name": "SAIT9AF8-SAA12"
+          },
+          {
+            "id": "SAA14",
+            "name": "SAIT1AA9-SAA14"
+          },
+          {
+            "id": "ATL35",
+            "name": "TTESSAAI-ATL35"
+          },
+          {
+            "id": "CWY1",
+            "name": "CWYMOWBS-CWY1"
+          },
+          {
+            "id": "ATL76",
+            "name": "TELEPAAI-ATL76"
+          },
+          {
+            "id": "DSL12",
+            "name": "DSLFK242-DSL12"
+          },
+          {
+            "id": "ATL53",
+            "name": "AAIATLTE-ATL53"
+          },
+          {
+            "id": "SAA11",
+            "name": "SAIT9AA2-SAA11"
+          },
+          {
+            "id": "ATL62",
+            "name": "TESSASCH-ATL62"
+          },
+          {
+            "id": "AUG1",
+            "name": "ASDFGHJK-AUG1"
+          },
+          {
+            "id": "POI22",
+            "name": "POIUY123-POI22"
+          },
+          {
+            "id": "SAA13",
+            "name": "SAIT1AA9-SAA13"
+          },
+          {
+            "id": "BHY17",
+            "name": "BHYTFRF3-BHY17"
+          },
+          {
+            "id": "LIS1",
+            "name": "HOSTPROF-LIS1"
+          },
+          {
+            "id": "SIP1",
+            "name": "ZXCVBNMK-SIP1"
+          },
+          {
+            "id": "ATL99",
+            "name": "TEESTAAI-ATL43"
+          },
+          {
+            "id": "ATL64",
+            "name": "FORLOAAJ-ATL64"
+          },
+          {
+            "id": "TAT33",
+            "name": "TESAAISA-TAT33"
+          },
+          {
+            "id": "RAD10",
+            "name": "INDIPUNE-RAD10"
+          },
           {
-            "id": "NFT1",
-            "name": "NFTJSSSS-NFT1"
+            "id": "RTW5",
+            "name": "BHYTFRY4-RTW5"
           },
           {
-            "id": "JAG1",
-            "name": "YUDFJULP-JAG1"
+            "id": "JGS1",
+            "name": "KSJKKKKK-JGS1"
           },
           {
-            "id": "YYY1",
-            "name": "UUUAIAAI-YYY1"
+            "id": "ATL98",
+            "name": "TEESTAAI-ATL43"
+          },
+          {
+            "id": "WAN1",
+            "name": "LEIWANGW-WAN1"
+          },
+          {
+            "id": "ATL44",
+            "name": "ATLSANAB-ATL44"
+          },
+          {
+            "id": "RTD2",
+            "name": "BHYTFRk4-RTD2"
+          },
+          {
+            "id": "NIR1",
+            "name": "ORFLMANA-NIR1"
+          },
+          {
+            "id": "ATL75",
+            "name": "SANAAIRE-ATL75"
+          },
+          {
+            "id": "NUM1",
+            "name": "QWERTYUI-NUM1"
+          },
+          {
+            "id": "hvf32",
+            "name": "MDTWNJ21-hvf32"
+          },
+          {
+            "id": "RTZ4",
+            "name": "BHYTFRZ6-RTZ4"
+          },
+          {
+            "id": "ATL56",
+            "name": "ATLSANAC-ATL56"
+          },
+          {
+            "id": "AMS1",
+            "name": "AMSTNLBW-AMS1"
+          },
+          {
+            "id": "RCT1",
+            "name": "AMSTERNL-RCT1"
+          },
+          {
+            "id": "JAN1",
+            "name": "ORFLMATT-JAN1"
+          },
+          {
+            "id": "ABC14",
+            "name": "TESAAISA-ABC14"
+          },
+          {
+            "id": "TAT37",
+            "name": "TESAAISD-TAT37"
+          },
+          {
+            "id": "MIC54",
+            "name": "MICHIGAN-MIC54"
+          },
+          {
+            "id": "ABC11",
+            "name": "ATLSANAI-ABC11"
+          },
+          {
+            "id": "AMF11",
+            "name": "AMDOCS01-AMF11"
+          },
+          {
+            "id": "ATL63",
+            "name": "ATLSANEW-ATL63"
+          },
+          {
+            "id": "ABC12",
+            "name": "ATLSECIA-ABC12"
+          },
+          {
+            "id": "hvf20",
+            "name": "MDTWNJ21-hvf20"
+          },
+          {
+            "id": "ABC15",
+            "name": "AAITESAN-ABC15"
           },
           {
             "id": "AVT1",
@@ -5470,15 +8113,10 @@ describe('Drawing board', function () {
           "CREATE_INSTANCE_TEST": false,
           "EMPTY_DRAWING_BOARD_TEST": false,
           "FLAG_NETWORK_TO_ASYNC_INSTANTIATION": false,
-          "FLAG_ASYNC_INSTANTIATION": true,
-          "FLAG_ASYNC_JOBS": true,
           "FLAG_ADD_MSO_TESTAPI_FIELD": true,
-          "FLAG_UNASSIGN_SERVICE": true,
           "FLAG_SERVICE_MODEL_CACHE": true,
-          "FLAG_COLLECTION_RESOURCE_SUPPORT": false,
           "FLAG_SHOW_ASSIGNMENTS": true,
           "FLAG_FABRIC_CONFIGURATION_ASSIGNMENTS": true,
-          "FLAG_DUPLICATE_VNF": true,
           "FLAG_DEFAULT_VNF": true,
           "FLAG_SETTING_DEFAULTS_IN_DRAWING_BOARD": true,
           "FLAG_A_LA_CARTE_AUDIT_INFO": true,
@@ -5491,7 +8129,6 @@ describe('Drawing board', function () {
           "FLAG_SHOW_VERIFY_SERVICE": false,
           "FLAG_ASYNC_ALACARTE_VFMODULE": true,
           "FLAG_ASYNC_ALACARTE_VNF": true,
-          "FLAG_SHIFT_VFMODULE_PARAMS_TO_VNF": true,
           "FLAG_1810_AAI_LOCAL_CACHE": true,
           "FLAG_EXP_USE_DEFAULT_HOST_NAME_VERIFIER": false,
           "FLAG_EXP_ANY_ALACARTE_NEW_INSTANTIATION_UI": false,
@@ -5521,7 +8158,8 @@ describe('Drawing board', function () {
               "vidNotions": {
                 "instantiationUI": "networkWithPropertyNetworkTechnologyEqualsStandardSriovOrOvs",
                 "modelCategory": "5G Provider Network",
-                "viewEditUI": "legacy"
+                "viewEditUI": "legacy",
+                "instantiationType": "ALaCarte"
               }
             },
             "vnfs": {},
@@ -5575,7 +8213,7 @@ describe('Drawing board', function () {
                 "modelCustomizationName": "SR-IOV Provider 2-2"
               }
             },
-            "collectionResource": {},
+            "collectionResources": {},
             "configurations": {},
             "fabricConfigurations": {},
             "serviceProxies": {},
@@ -5642,7 +8280,7 @@ describe('Drawing board', function () {
             "projectName": null,
             "rollbackOnFailure": "true",
             "aicZoneName": null,
-            "owningEntityName": "FIREWALL-MISCELLANEOUS",
+            "owningEntityName": "CRAIG-ROBERTSELLANEOUS",
             "testApi": "VNF_API",
             "tenantName": null,
             "modelInfo": {
@@ -5717,13 +8355,13 @@ describe('Drawing board', function () {
             "olson6a": [
               {
                 "id": "1dcd712850414fbd91f8a9fc9cca7fd4",
-                "name": "FNvEPC-27099-T-MS-RDM6A",
+                "name": "FNvEPC-27099-T-MS-olson6A",
                 "isPermitted": true,
                 "cloudOwner": "irma-aic"
               },
               {
                 "id": "26af9ed85a004932822a607d5e9973d5",
-                "name": "ssf-28239-T-RDM6A",
+                "name": "ssf-28239-T-olson6A",
                 "isPermitted": true,
                 "cloudOwner": "irma-aic"
               }
@@ -5837,12 +8475,12 @@ describe('Drawing board', function () {
             },
             {
               "id": "9",
-              "name": "vMME",
+              "name": "vFLORENCE",
               "isPermitted": true
             },
             {
               "id": "25",
-              "name": "vMMSC",
+              "name": "vWINIFRED",
               "isPermitted": true
             },
             {
@@ -5862,12 +8500,12 @@ describe('Drawing board', function () {
             },
             {
               "id": "16",
-              "name": "vSCP",
+              "name": "vEsmeralda",
               "isPermitted": true
             },
             {
               "id": "24",
-              "name": "vSEGW",
+              "name": "vPorfirio",
               "isPermitted": true
             },
             {
@@ -5915,7 +8553,7 @@ describe('Drawing board', function () {
             },
             {
               "id": "2d097967-10d4-4c7f-b23c-89978249ae17",
-              "name": "FIREWALL-MISCELLANEOUS"
+              "name": "CRAIG-ROBERTSELLANEOUS"
             },
             {
               "id": "aedf37e2-acda-4976-b89b-fd6d4ddffbc6",
@@ -5923,15 +8561,15 @@ describe('Drawing board', function () {
             },
             {
               "id": "9463675f-6a75-4cc8-8054-c6cb2e67ad51",
-              "name": "METRO-PACKET-CORE"
+              "name": "METRO-JULIO-ERICKSON"
             },
             {
               "id": "92ddf9af-acae-484c-a786-ad7e9c0da26f",
-              "name": "MOBILITY-ACCESS"
+              "name": "EMANUEL-ACCESS"
             },
             {
               "id": "10c645f5-9924-4b89-bec0-b17cf49d3cad",
-              "name": "MOBILITY-CORE"
+              "name": "EMANUEL-CORE"
             },
             {
               "id": "048eb6e7-fa94-4f3b-ae03-3175a750dc57",
@@ -5939,7 +8577,7 @@ describe('Drawing board', function () {
             },
             {
               "id": "0efc70be-d674-4777-a0fa-329eae187ca0",
-              "name": "PACKET-CORE"
+              "name": "JULIO-ERICKSON"
             },
             {
               "id": "0463287b-b133-46ef-a0f5-9ce62be3a053",
@@ -5974,22 +8612,186 @@ describe('Drawing board', function () {
           ],
           "lineOfBusinessList": [
             {
-              "id": "ONAP",
-              "name": "ONAP"
+              "id": "",
+              "name": ""
             },
             {
-              "id": "zzz1",
-              "name": "zzz1"
+              "id": "ADI",
+              "name": "ADI"
+            },
+            {
+              "id": "ADIG",
+              "name": "ADIG"
+            },
+            {
+              "id": "PASQUALE",
+              "name": "PASQUALE"
+            },
+            {
+              "id": "AT&TLEGACYDATASERVICES",
+              "name": "AT&TLEGACYDATASERVICES"
+            },
+            {
+              "id": "AT&TSWITCHEDETHERNET",
+              "name": "AT&TSWITCHEDETHERNET"
+            },
+            {
+              "id": "AVPN",
+              "name": "AVPN"
+            },
+            {
+              "id": "AVPN-MOW",
+              "name": "AVPN-MOW"
+            },
+            {
+              "id": "CALEA",
+              "name": "CALEA"
+            },
+            {
+              "id": "COLLABORATE",
+              "name": "COLLABORATE"
+            },
+            {
+              "id": "DIRECT-TV",
+              "name": "DIRECT-TV"
+            },
+            {
+              "id": "LINDSEY",
+              "name": "LINDSEY"
+            },
+            {
+              "id": "FLEXWARE",
+              "name": "FLEXWARE"
+            },
+            {
+              "id": "INFRASTRUCTURE",
+              "name": "INFRASTRUCTURE"
+            },
+            {
+              "id": "IOT",
+              "name": "IOT"
+            },
+            {
+              "id": "IP-FLEXIBLE-REACH",
+              "name": "IP-FLEXIBLE-REACH"
+            },
+            {
+              "id": "IP-TOLL-FREE",
+              "name": "IP-TOLL-FREE"
+            },
+            {
+              "id": "EMANUEL-ABS",
+              "name": "EMANUEL-ABS"
+            },
+            {
+              "id": "EMANUEL-CONSUMER",
+              "name": "EMANUEL-CONSUMER"
+            },
+            {
+              "id": "EMANUEL-RESELLER",
+              "name": "EMANUEL-RESELLER"
+            },
+            {
+              "id": "NETBOND",
+              "name": "NETBOND"
+            },
+            {
+              "id": "SD-WAN",
+              "name": "SD-WAN"
+            },
+            {
+              "id": "UVERSE",
+              "name": "UVERSE"
+            },
+            {
+              "id": "UVERSE-VOICE",
+              "name": "UVERSE-VOICE"
+            },
+            {
+              "id": "VIRTUAL-EDGE",
+              "name": "VIRTUAL-EDGE"
+            },
+            {
+              "id": "VOLTE",
+              "name": "VOLTE"
             }
           ],
           "platformList": [
             {
-              "id": "platform",
-              "name": "platform"
+              "id": "3rdPartyCloud",
+              "name": "3rdPartyCloud"
             },
             {
-              "id": "xxx1",
-              "name": "xxx1"
+              "id": "ACCESS",
+              "name": "ACCESS"
+            },
+            {
+              "id": "AIC",
+              "name": "AIC"
+            },
+            {
+              "id": "APPLICATIONS-SERVICES",
+              "name": "APPLICATIONS-SERVICES"
+            },
+            {
+              "id": "BVOIP",
+              "name": "BVOIP"
+            },
+            {
+              "id": "CALEA-DEDICATED",
+              "name": "CALEA-DEDICATED"
+            },
+            {
+              "id": "CBB-MPLS-CORE",
+              "name": "CBB-MPLS-CORE"
+            },
+            {
+              "id": "D1",
+              "name": "D1"
+            },
+            {
+              "id": "D1.5",
+              "name": "D1.5"
+            },
+            {
+              "id": "EPC",
+              "name": "EPC"
+            },
+            {
+              "id": "FIRSTNET-DEDICATED",
+              "name": "FIRSTNET-DEDICATED"
+            },
+            {
+              "id": "IMS-USP",
+              "name": "IMS-USP"
+            },
+            {
+              "id": "IPAG",
+              "name": "IPAG"
+            },
+            {
+              "id": "MNS",
+              "name": "MNS"
+            },
+            {
+              "id": "NETWORK-CLOUD",
+              "name": "NETWORK-CLOUD"
+            },
+            {
+              "id": "RADIO-WIRELESSENGINEERING",
+              "name": "RADIO-WIRELESSENGINEERING"
+            },
+            {
+              "id": "RAN",
+              "name": "RAN"
+            },
+            {
+              "id": "UCPE",
+              "name": "UCPE"
+            },
+            {
+              "id": "VNI",
+              "name": "VNI"
             }
           ]
         },
@@ -6006,15 +8808,10 @@ describe('Drawing board', function () {
           "FLAG_NETWORK_TO_ASYNC_INSTANTIATION": false,
           "FLAG_SHOW_ASSIGNMENTS": true,
           "FLAG_FABRIC_CONFIGURATION_ASSIGNMENTS": true,
-          "FLAG_UNASSIGN_SERVICE": true,
           "FLAG_SHOW_VERIFY_SERVICE": false,
-          "FLAG_COLLECTION_RESOURCE_SUPPORT": true,
-          "FLAG_DUPLICATE_VNF": true,
           "FLAG_SERVICE_MODEL_CACHE": true,
           "CREATE_INSTANCE_TEST": false,
           "FLAG_SETTING_DEFAULTS_IN_DRAWING_BOARD": false,
-          "FLAG_ASYNC_INSTANTIATION": true,
-          "FLAG_ASYNC_JOBS": true,
           "EMPTY_DRAWING_BOARD_TEST": false,
           "FLAG_ADD_MSO_TESTAPI_FIELD": true,
           "FLAG_SUPPLEMENTARY_FILE": true
@@ -6036,14 +8833,17 @@ describe('Drawing board', function () {
               "description": "ComplexService",
               "serviceEcompNaming": "true",
               "instantiationType": "Macro",
+              "vidNotions": {
+                "instantiationType": "Macro"
+              },
               "inputs": {}
             },
             "vnfs": {
-              "VF_vMee 0": {
+              "VF_vGeraldine 0": {
                 "uuid": "d6557200-ecf2-4641-8094-5393ae3aae60",
                 "invariantUuid": "4160458e-f648-4b30-a176-43881ffffe9e",
-                "description": "VSP_vMee",
-                "name": "VF_vMee",
+                "description": "VSP_vGeraldine",
+                "name": "VF_vGeraldine",
                 "version": "2.0",
                 "customizationUuid": "91415b44-753d-494c-926a-456a9172bbb9",
                 "inputs": {},
@@ -6213,629 +9013,1507 @@ describe('Drawing board', function () {
                   "sctp-a-ingress-src_start_port": "0.0",
                   "sctp-b-egress-dst_end_port": "65535.0"
                 },
-                "type": "VF",
-                "modelCustomizationName": "VF_vMee 0",
+                "type": "VF",
+                "modelCustomizationName": "VF_vGeraldine 0",
+                "vfModules": {
+                  "vf_vgeraldine0..VfVgeraldine..vflorence_vlc..module-1": {
+                    "uuid": "522159d5-d6e0-4c2a-aa44-5a542a12a830",
+                    "invariantUuid": "98a7c88b-b577-476a-90e4-e25a5871e02b",
+                    "customizationUuid": "55b1be94-671a-403e-a26c-667e9c47d091",
+                    "description": null,
+                    "name": "VfVgeraldine..vflorence_vlc..module-1",
+                    "version": "2",
+                    "modelCustomizationName": "VfVgeraldine..vflorence_vlc..module-1",
+                    "properties": {
+                      "minCountInstances": 0,
+                      "maxCountInstances": null,
+                      "initialCount": 0,
+                      "vfModuleLabel": "vflorence_vlc"
+                    },
+                    "inputs": {},
+                    "volumeGroupAllowed": false
+                  },
+                  "vf_vgeraldine0..VfVgeraldine..vflorence_gpb..module-2": {
+                    "uuid": "41708296-e443-4c71-953f-d9a010f059e1",
+                    "invariantUuid": "1cca90b8-3490-495e-87da-3f3e4c57d5b9",
+                    "customizationUuid": "6add59e0-7fe1-4bc4-af48-f8812422ae7c",
+                    "description": null,
+                    "name": "VfVgeraldine..vflorence_gpb..module-2",
+                    "version": "2",
+                    "modelCustomizationName": "VfVgeraldine..vflorence_gpb..module-2",
+                    "properties": {
+                      "minCountInstances": 0,
+                      "maxCountInstances": null,
+                      "initialCount": 0,
+                      "vfModuleLabel": "vflorence_gpb"
+                    },
+                    "inputs": {},
+                    "volumeGroupAllowed": false
+                  },
+                  "vf_vgeraldine0..VfVgeraldine..base_vflorence..module-0": {
+                    "uuid": "a27f5cfc-7f12-4f99-af08-0af9c3885c87",
+                    "invariantUuid": "a6f9e51a-2b35-416a-ae15-15e58d61f36d",
+                    "customizationUuid": "f8c040f1-7e51-4a11-aca8-acf256cfd861",
+                    "description": null,
+                    "name": "VfVgeraldine..base_vflorence..module-0",
+                    "version": "2",
+                    "modelCustomizationName": "VfVgeraldine..base_vflorence..module-0",
+                    "properties": {
+                      "minCountInstances": 1,
+                      "maxCountInstances": 1,
+                      "initialCount": 1,
+                      "vfModuleLabel": "base_vflorence"
+                    },
+                    "inputs": {},
+                    "volumeGroupAllowed": true
+                  }
+                },
+                "volumeGroups": {
+                  "vf_vgeraldine0..VfVgeraldine..base_vflorence..module-0": {
+                    "uuid": "a27f5cfc-7f12-4f99-af08-0af9c3885c87",
+                    "invariantUuid": "a6f9e51a-2b35-416a-ae15-15e58d61f36d",
+                    "customizationUuid": "f8c040f1-7e51-4a11-aca8-acf256cfd861",
+                    "description": null,
+                    "name": "VfVgeraldine..base_vflorence..module-0",
+                    "version": "2",
+                    "modelCustomizationName": "VfVgeraldine..base_vflorence..module-0",
+                    "properties": {
+                      "minCountInstances": 1,
+                      "maxCountInstances": 1,
+                      "initialCount": 1,
+                      "vfModuleLabel": "base_vflorence"
+                    },
+                    "inputs": {}
+                  }
+                },
+                "vfcInstanceGroups": {}
+              }
+            },
+            "networks": {
+              "ExtVL 0": {
+                "uuid": "ddc3f20c-08b5-40fd-af72-c6d14636b986",
+                "invariantUuid": "379f816b-a7aa-422f-be30-17114ff50b7c",
+                "description": "ECOMP generic virtual link (network) base type for all other service-level and global networks",
+                "name": "ExtVL",
+                "version": "37.0",
+                "customizationUuid": "94fdd893-4a36-4d70-b16a-ec29c54c184f",
+                "inputs": {},
+                "commands": {},
+                "properties": {
+                  "ecomp_generated_naming": "false",
+                  "network_assignments": "{is_external_network=false, ipv4_subnet_default_assignment={min_subnets_count=1}, ecomp_generated_network_assignment=false, ipv6_subnet_default_assignment={min_subnets_count=1}}",
+                  "exVL_naming": "{ecomp_generated_naming=true}",
+                  "network_flows": "{is_network_policy=false, is_bound_to_vpn=false}",
+                  "network_homing": "{ecomp_selected_instance_node_target=false}"
+                },
+                "type": "VL",
+                "modelCustomizationName": "ExtVL 0"
+              }
+            },
+            "collectionResources": {},
+            "configurations": {
+              "Port Mirroring Configuration By Policy 0": {
+                "uuid": "b4398538-e89d-4f13-b33d-ca323434ba50",
+                "invariantUuid": "6ef0ca40-f366-4897-951f-abd65d25f6f7",
+                "description": "A port mirroring configuration by policy object",
+                "name": "Port Mirroring Configuration By Policy",
+                "version": "27.0",
+                "customizationUuid": "3c3b7b8d-8669-4b3b-8664-61970041fad2",
+                "inputs": {},
+                "commands": {},
+                "properties": {},
+                "type": "Configuration",
+                "modelCustomizationName": "Port Mirroring Configuration By Policy 0",
+                "sourceNodes": [],
+                "collectorNodes": null,
+                "configurationByPolicy": false
+              }
+            },
+            "serviceProxies": {},
+            "vfModules": {
+              "vf_vgeraldine0..VfVgeraldine..vflorence_vlc..module-1": {
+                "uuid": "522159d5-d6e0-4c2a-aa44-5a542a12a830",
+                "invariantUuid": "98a7c88b-b577-476a-90e4-e25a5871e02b",
+                "customizationUuid": "55b1be94-671a-403e-a26c-667e9c47d091",
+                "description": null,
+                "name": "VfVgeraldine..vflorence_vlc..module-1",
+                "version": "2",
+                "modelCustomizationName": "VfVgeraldine..vflorence_vlc..module-1",
+                "properties": {
+                  "minCountInstances": 0,
+                  "maxCountInstances": null,
+                  "initialCount": 0,
+                  "vfModuleLabel": "vflorence_vlc"
+                },
+                "inputs": {},
+                "volumeGroupAllowed": false
+              },
+              "vf_vgeraldine0..VfVgeraldine..vflorence_gpb..module-2": {
+                "uuid": "41708296-e443-4c71-953f-d9a010f059e1",
+                "invariantUuid": "1cca90b8-3490-495e-87da-3f3e4c57d5b9",
+                "customizationUuid": "6add59e0-7fe1-4bc4-af48-f8812422ae7c",
+                "description": null,
+                "name": "VfVgeraldine..vflorence_gpb..module-2",
+                "version": "2",
+                "modelCustomizationName": "VfVgeraldine..vflorence_gpb..module-2",
+                "properties": {
+                  "minCountInstances": 0,
+                  "maxCountInstances": null,
+                  "initialCount": 0,
+                  "vfModuleLabel": "vflorence_gpb"
+                },
+                "inputs": {},
+                "volumeGroupAllowed": false
+              },
+              "vf_vgeraldine0..VfVgeraldine..base_vflorence..module-0": {
+                "uuid": "a27f5cfc-7f12-4f99-af08-0af9c3885c87",
+                "invariantUuid": "a6f9e51a-2b35-416a-ae15-15e58d61f36d",
+                "customizationUuid": "f8c040f1-7e51-4a11-aca8-acf256cfd861",
+                "description": null,
+                "name": "VfVgeraldine..base_vflorence..module-0",
+                "version": "2",
+                "modelCustomizationName": "VfVgeraldine..base_vflorence..module-0",
+                "properties": {
+                  "minCountInstances": 1,
+                  "maxCountInstances": 1,
+                  "initialCount": 1,
+                  "vfModuleLabel": "base_vflorence"
+                },
+                "inputs": {},
+                "volumeGroupAllowed": true
+              }
+            },
+            "volumeGroups": {
+              "vf_vgeraldine0..VfVgeraldine..base_vflorence..module-0": {
+                "uuid": "a27f5cfc-7f12-4f99-af08-0af9c3885c87",
+                "invariantUuid": "a6f9e51a-2b35-416a-ae15-15e58d61f36d",
+                "customizationUuid": "f8c040f1-7e51-4a11-aca8-acf256cfd861",
+                "description": null,
+                "name": "VfVgeraldine..base_vflorence..module-0",
+                "version": "2",
+                "modelCustomizationName": "VfVgeraldine..base_vflorence..module-0",
+                "properties": {
+                  "minCountInstances": 1,
+                  "maxCountInstances": 1,
+                  "initialCount": 1,
+                  "vfModuleLabel": "base_vflorence"
+                },
+                "inputs": {}
+              }
+            },
+            "pnfs": {}
+          }
+        },
+        "serviceInstance": {
+          "6e59c5de-f052-46fa-aa7e-2fca9d674c44": {
+            "vnfs": {
+              "VF_vGeraldine 0": {
+                "originalName": "VF_vGeraldine 0",
+                "rollbackOnFailure": "true",
+                "instanceName": "",
                 "vfModules": {
-                  "vf_vmee0..VfVmee..vmme_vlc..module-1": {
-                    "uuid": "522159d5-d6e0-4c2a-aa44-5a542a12a830",
-                    "invariantUuid": "98a7c88b-b577-476a-90e4-e25a5871e02b",
-                    "customizationUuid": "55b1be94-671a-403e-a26c-667e9c47d091",
-                    "description": null,
-                    "name": "VfVmee..vmme_vlc..module-1",
-                    "version": "2",
-                    "modelCustomizationName": "VfVmee..vmme_vlc..module-1",
-                    "properties": {
-                      "minCountInstances": 0,
-                      "maxCountInstances": null,
-                      "initialCount": 0,
-                      "vfModuleLabel": "vmme_vlc"
-                    },
-                    "inputs": {},
-                    "volumeGroupAllowed": false
-                  },
-                  "vf_vmee0..VfVmee..vmme_gpb..module-2": {
-                    "uuid": "41708296-e443-4c71-953f-d9a010f059e1",
-                    "invariantUuid": "1cca90b8-3490-495e-87da-3f3e4c57d5b9",
-                    "customizationUuid": "6add59e0-7fe1-4bc4-af48-f8812422ae7c",
-                    "description": null,
-                    "name": "VfVmee..vmme_gpb..module-2",
-                    "version": "2",
-                    "modelCustomizationName": "VfVmee..vmme_gpb..module-2",
-                    "properties": {
-                      "minCountInstances": 0,
-                      "maxCountInstances": null,
-                      "initialCount": 0,
-                      "vfModuleLabel": "vmme_gpb"
-                    },
-                    "inputs": {},
-                    "volumeGroupAllowed": false
-                  },
-                  "vf_vmee0..VfVmee..base_vmme..module-0": {
-                    "uuid": "a27f5cfc-7f12-4f99-af08-0af9c3885c87",
-                    "invariantUuid": "a6f9e51a-2b35-416a-ae15-15e58d61f36d",
-                    "customizationUuid": "f8c040f1-7e51-4a11-aca8-acf256cfd861",
-                    "description": null,
-                    "name": "VfVmee..base_vmme..module-0",
-                    "version": "2",
-                    "modelCustomizationName": "VfVmee..base_vmme..module-0",
-                    "properties": {
-                      "minCountInstances": 1,
-                      "maxCountInstances": 1,
-                      "initialCount": 1,
-                      "vfModuleLabel": "base_vmme"
-                    },
-                    "inputs": {},
-                    "volumeGroupAllowed": true
+                  "vf_vgeraldine0..VfVgeraldine..vflorence_vlc..module-1": {
+                    "vf_vgeraldine0..VfVgeraldine..vflorence_vlc..module-1dcudx": {
+                      "modelInfo": {
+                        "modelInvariantId": "98a7c88b-b577-476a-90e4-e25a5871e02b",
+                        "modelVersionId": "522159d5-d6e0-4c2a-aa44-5a542a12a830",
+                        "modelName": "VfVgeraldine..vflorence_vlc..module-1",
+                        "modelVersion": "2",
+                        "modelCustomizationId": "55b1be94-671a-403e-a26c-667e9c47d091",
+                        "modelCustomizationName": "VfVgeraldine..vflorence_vlc..module-1"
+                      },
+                      "isMissingData": false,
+                      "supplementaryFile": "C:\\fakepath\\sample.json",
+                      "supplementaryFile_hidden": {},
+                      "supplementaryFile_hidden_content": "{\r\n  \"name\": \"a\",\r\n  \"value\": \"32\"\r\n}",
+                      "supplementaryFileContent": {
+                        "name": "a",
+                          "value": "32"
+                      },
+                      "supplementaryFileName": "sample.json",
+                      "instanceParams": [
+                        {}
+                      ]
+                    }
                   }
                 },
-                "volumeGroups": {
-                  "vf_vmee0..VfVmee..base_vmme..module-0": {
-                    "uuid": "a27f5cfc-7f12-4f99-af08-0af9c3885c87",
-                    "invariantUuid": "a6f9e51a-2b35-416a-ae15-15e58d61f36d",
-                    "customizationUuid": "f8c040f1-7e51-4a11-aca8-acf256cfd861",
-                    "description": null,
-                    "name": "VfVmee..base_vmme..module-0",
-                    "version": "2",
-                    "modelCustomizationName": "VfVmee..base_vmme..module-0",
-                    "properties": {
-                      "minCountInstances": 1,
-                      "maxCountInstances": 1,
-                      "initialCount": 1,
-                      "vfModuleLabel": "base_vmme"
-                    },
-                    "inputs": {}
-                  }
+                "isMissingData": false,
+                "modelName": "VF_vGeraldine 0",
+                "productFamilyId": "36b4733a-53f4-4cc8-8ff0-9172e5fc4b8e",
+                "lcpCloudRegionId": "hvf6",
+                "tenantId": "bae71557c5bb4d5aac6743a4e5f1d054",
+                "lineOfBusiness": "zzz1",
+                "platformName": "platform",
+                "modelInfo": {
+                  "modelInvariantId": "4160458e-f648-4b30-a176-43881ffffe9e",
+                  "modelVersionId": "d6557200-ecf2-4641-8094-5393ae3aae60",
+                  "modelName": "VF_vGeraldine",
+                  "modelVersion": "2.0",
+                  "modelCustomizationId": "91415b44-753d-494c-926a-456a9172bbb9",
+                  "modelCustomizationName": "VF_vGeraldine 0"
                 },
-                "vfcInstanceGroups": {}
+                "legacyRegion": null
+              }
+            },
+            "networks": {},
+            "instanceParams": [
+              {}
+            ],
+            "validationCounter": 0,
+            "globalSubscriberId": "e433710f-9217-458d-a79d-1c7aff376d89",
+            "productFamilyId": "36b4733a-53f4-4cc8-8ff0-9172e5fc4b8e",
+            "subscriptionServiceType": "TYLER SILVIA",
+            "lcpCloudRegionId": "hvf6",
+            "tenantId": "1178612d2b394be4834ad77f567c0af2",
+            "aicZoneId": "YYY1",
+            "projectName": "yyy1",
+            "owningEntityId": "aaa1",
+            "owningEntityName": "aaa1",
+            "rollbackOnFailure": "true",
+            "isALaCarte": false,
+            "bulkSize": 1,
+            "modelInfo": {
+              "modelInvariantId": "e49fbd11-e60c-4a8e-b4bf-30fbe8f4fcc0",
+              "modelVersionId": "6e59c5de-f052-46fa-aa7e-2fca9d674c44",
+              "modelName": "ComplexService",
+              "modelVersion": "1.0"
+            },
+            "instanceName": "",
+            "existingNames": {
+              "serviceinstancename": "",
+              "vfvgeraldine00001": ""
+            },
+            "existingVNFCounterMap": {
+              "91415b44-753d-494c-926a-456a9172bbb9": 1
+            },
+            "existingNetworksCounterMap": {},
+            "tenantName": "AIN Web Tool-15-D-SSPtestcustome",
+            "aicZoneName": "UUUAIAAI-YYY1"
+          }
+        },
+        "lcpRegionsAndTenants": {
+          "lcpRegionList": [
+            {
+              "id": "AAIAIC25",
+              "name": "AAIAIC25",
+              "isPermitted": true
+            },
+            {
+              "id": "hvf6",
+              "name": "hvf6",
+              "isPermitted": true
+            }
+          ],
+          "lcpRegionsTenantsMap": {
+            "AAIAIC25": [
+              {
+                "id": "092eb9e8e4b7412e8787dd091bc58e86",
+                "name": "USP-SIP-IC-24335-T-01",
+                "isPermitted": true
+              }
+            ],
+            "hvf6": [
+              {
+                "id": "bae71557c5bb4d5aac6743a4e5f1d054",
+                "name": "AIN Web Tool-15-D-testalexandria",
+                "isPermitted": true
+              },
+              {
+                "id": "229bcdc6eaeb4ca59d55221141d01f8e",
+                "name": "AIN Web Tool-15-D-STTest2",
+                "isPermitted": true
+              },
+              {
+                "id": "1178612d2b394be4834ad77f567c0af2",
+                "name": "AIN Web Tool-15-D-SSPtestcustome",
+                "isPermitted": true
+              },
+              {
+                "id": "19c5ade915eb461e8af52fb2fd8cd1f2",
+                "name": "AIN Web Tool-15-D-UncheckedEcopm",
+                "isPermitted": true
+              },
+              {
+                "id": "de007636e25249238447264a988a927b",
+                "name": "AIN Web Tool-15-D-dfsdf",
+                "isPermitted": true
+              },
+              {
+                "id": "62f29b3613634ca6a3065cbe0e020c44",
+                "name": "AIN/SMS-16-D-Multiservices1",
+                "isPermitted": true
+              },
+              {
+                "id": "649289e30d3244e0b48098114d63c2aa",
+                "name": "AIN Web Tool-15-D-SSPST66",
+                "isPermitted": true
+              },
+              {
+                "id": "3f21eeea6c2c486bba31dab816c05a32",
+                "name": "AIN Web Tool-15-D-ASSPST47",
+                "isPermitted": true
+              },
+              {
+                "id": "f60ce21d3ee6427586cff0d22b03b773",
+                "name": "CESAR-100-D-sspjg67246",
+                "isPermitted": true
+              },
+              {
+                "id": "8774659e425f479895ae091bb5d46560",
+                "name": "CESAR-100-D-sspjg68359",
+                "isPermitted": true
+              },
+              {
+                "id": "624eb554b0d147c19ff8885341760481",
+                "name": "AINWebTool-15-D-iftach",
+                "isPermitted": true
+              },
+              {
+                "id": "214f55f5fc414c678059c383b03e4962",
+                "name": "CESAR-100-D-sspjg612401",
+                "isPermitted": true
+              },
+              {
+                "id": "c90666c291664841bb98e4d981ff1db5",
+                "name": "CESAR-100-D-sspjg621340",
+                "isPermitted": true
+              },
+              {
+                "id": "ce5b6bc5c7b348e1bf4b91ac9a174278",
+                "name": "sspjg621351cloned",
+                "isPermitted": true
+              },
+              {
+                "id": "b386b768a3f24c8e953abbe0b3488c02",
+                "name": "AINWebTool-15-D-eteancomp",
+                "isPermitted": true
+              },
+              {
+                "id": "dc6c4dbfd225474e9deaadd34968646c",
+                "name": "AINWebTool-15-T-SPFET",
+                "isPermitted": true
+              },
+              {
+                "id": "02cb5030e9914aa4be120bd9ed1e19eb",
+                "name": "AINWebTool-15-X-eeweww",
+                "isPermitted": true
+              },
+              {
+                "id": "f2f3830e4c984d45bcd00e1a04158a79",
+                "name": "CESAR-100-D-spjg61909",
+                "isPermitted": true
+              },
+              {
+                "id": "05b91bd5137f4929878edd965755c06d",
+                "name": "CESAR-100-D-sspjg621512cloned",
+                "isPermitted": true
+              },
+              {
+                "id": "7002fbe8482d4a989ddf445b1ce336e0",
+                "name": "AINWebTool-15-X-vdr",
+                "isPermitted": true
+              },
+              {
+                "id": "4008522be43741dcb1f5422022a2aa0b",
+                "name": "AINWebTool-15-D-ssasa",
+                "isPermitted": true
+              },
+              {
+                "id": "f44e2e96a1b6476abfda2fa407b00169",
+                "name": "AINWebTool-15-D-PFNPT",
+                "isPermitted": true
+              },
+              {
+                "id": "b69a52bec8a84669a37a1e8b72708be7",
+                "name": "AINWebTool-15-X-vdre",
+                "isPermitted": true
+              },
+              {
+                "id": "fac7d9fd56154caeb9332202dcf2969f",
+                "name": "AINWebTool-15-X-NONPODECOMP",
+                "isPermitted": true
+              },
+              {
+                "id": "2d34d8396e194eb49969fd61ffbff961",
+                "name": "DN5242-Nov16-T5",
+                "isPermitted": true
+              },
+              {
+                "id": "cb42a77ff45b48a8b8deb83bb64acc74",
+                "name": "ro-T11",
+                "isPermitted": true
+              },
+              {
+                "id": "fa45ca53c80b492fa8be5477cd84fc2b",
+                "name": "ro-T112",
+                "isPermitted": true
+              },
+              {
+                "id": "4914ab0ab3a743e58f0eefdacc1dde77",
+                "name": "DN5242-Nov21-T1",
+                "isPermitted": true
+              },
+              {
+                "id": "d0a3e3f2964542259d155a81c41aadc3",
+                "name": "test-hvf6-09",
+                "isPermitted": true
+              },
+              {
+                "id": "cbb99fe4ada84631b7baf046b6fd2044",
+                "name": "DN5242-Nov16-T3",
+                "isPermitted": true
               }
+            ]
+          }
+        },
+        "subscribers": [
+          {
+            "id": "CAR_2020_ER",
+            "name": "CAR_2020_ER",
+            "isPermitted": true
+          },
+          {
+            "id": "21014aa2-526b-11e6-beb8-9e71128cae77",
+            "name": "JULIO ERICKSON",
+            "isPermitted": false
+          },
+          {
+            "id": "DHV1707-TestSubscriber-2",
+            "name": "DALE BRIDGES",
+            "isPermitted": false
+          },
+          {
+            "id": "DHV1707-TestSubscriber-1",
+            "name": "LLOYD BRIDGES",
+            "isPermitted": false
+          },
+          {
+            "id": "jimmy-example",
+            "name": "JimmyExampleCust-20161102",
+            "isPermitted": false
+          },
+          {
+            "id": "jimmy-example2",
+            "name": "JimmyExampleCust-20161103",
+            "isPermitted": false
+          },
+          {
+            "id": "ERICA5779-TestSub-PWT-102",
+            "name": "ERICA5779-TestSub-PWT-102",
+            "isPermitted": false
+          },
+          {
+            "id": "ERICA5779-TestSub-PWT-101",
+            "name": "ERICA5779-TestSub-PWT-101",
+            "isPermitted": false
+          },
+          {
+            "id": "a9a77d5a-123e-4ca2-9eb9-0b015d2ee0fb",
+            "name": "Emanuel",
+            "isPermitted": false
+          },
+          {
+            "id": "ERICA5779-Subscriber-4",
+            "name": "ERICA5779-Subscriber-5",
+            "isPermitted": false
+          },
+          {
+            "id": "ERICA5779-TestSub-PWT-103",
+            "name": "ERICA5779-TestSub-PWT-103",
+            "isPermitted": false
+          },
+          {
+            "id": "ERICA5779-Subscriber-2",
+            "name": "ERICA5779-Subscriber-2",
+            "isPermitted": false
+          },
+          {
+            "id": "e433710f-9217-458d-a79d-1c7aff376d89",
+            "name": "SILVIA ROBBINS",
+            "isPermitted": true
+          },
+          {
+            "id": "ERICA5779-Subscriber-3",
+            "name": "ERICA5779-Subscriber-3",
+            "isPermitted": false
+          },
+          {
+            "id": "31739f3e-526b-11e6-beb8-9e71128cae77",
+            "name": "CRAIG/ROBERTS",
+            "isPermitted": false
+          }
+        ],
+        "productFamilies": [
+          {
+            "id": "ebc3bc3d-62fd-4a3f-a037-f619df4ff034",
+            "name": "ERICA",
+            "isPermitted": true
+          },
+          {
+            "id": "17cc1042-527b-11e6-beb8-9e71128cae77",
+            "name": "IGNACIO",
+            "isPermitted": true
+          },
+          {
+            "id": "36b4733a-53f4-4cc8-8ff0-9172e5fc4b8e",
+            "name": "Christie",
+            "isPermitted": true
+          },
+          {
+            "id": "a4f6f2ae-9bf5-4ed7-b904-06b2099c4bd7",
+            "name": "Enhanced Services",
+            "isPermitted": true
+          },
+          {
+            "id": "vTerrance",
+            "name": "vTerrance",
+            "isPermitted": true
+          },
+          {
+            "id": "323d69d9-2efe-4r45-ay0a-89ea7ard4e6f",
+            "name": "vEsmeralda",
+            "isPermitted": true
+          },
+          {
+            "id": "a9a77d5a-123e-4ca2-9eb9-0b015d2ee0fb",
+            "name": "Emanuel",
+            "isPermitted": true
+          },
+          {
+            "id": "d8a6ed93-251c-47ca-adc9-86671fd19f4c",
+            "name": "BVOIP",
+            "isPermitted": true
+          },
+          {
+            "id": "db171b8f-115c-4992-a2e3-ee04cae357e0",
+            "name": "LINDSEY",
+            "isPermitted": true
+          },
+          {
+            "id": "LRSI-OSPF",
+            "name": "LRSI-OSPF",
+            "isPermitted": true
+          },
+          {
+            "id": "vRosemarie",
+            "name": "HNGATEWAY",
+            "isPermitted": true
+          },
+          {
+            "id": "vHNPaas",
+            "name": "WILKINS",
+            "isPermitted": true
+          },
+          {
+            "id": "e433710f-9217-458d-a79d-1c7aff376d89",
+            "name": "TYLER SILVIA",
+            "isPermitted": true
+          },
+          {
+            "id": "b6a3f28c-eebf-494c-a900-055cc7c874ce",
+            "name": "VROUTER",
+            "isPermitted": true
+          },
+          {
+            "id": "vMuriel",
+            "name": "vMuriel",
+            "isPermitted": true
+          },
+          {
+            "id": "0ee8c1bc-7cbd-4b0a-a1ac-e9999255abc1",
+            "name": "CARA Griffin",
+            "isPermitted": true
+          },
+          {
+            "id": "c7611ebe-c324-48f1-8085-94aef0c6ef3d",
+            "name": "DARREN MCGEE",
+            "isPermitted": true
+          },
+          {
+            "id": "e30755dc-5673-4b6b-9dcf-9abdd96b93d1",
+            "name": "Transport",
+            "isPermitted": true
+          },
+          {
+            "id": "vSalvatore",
+            "name": "vSalvatore",
+            "isPermitted": true
+          },
+          {
+            "id": "d7bb0a21-66f2-4e6d-87d9-9ef3ced63ae4",
+            "name": "JOSEFINA",
+            "isPermitted": true
+          },
+          {
+            "id": "vHubbard",
+            "name": "vHubbard",
+            "isPermitted": true
+          },
+          {
+            "id": "12a96a9d-4b4c-4349-a950-fe1159602621",
+            "name": "DARREN MCGEE",
+            "isPermitted": true
+          }
+        ],
+        "serviceTypes": {
+          "e433710f-9217-458d-a79d-1c7aff376d89": [
+            {
+              "id": "0",
+              "name": "vRichardson",
+              "isPermitted": false
+            },
+            {
+              "id": "1",
+              "name": "TYLER SILVIA",
+              "isPermitted": true
+            },
+            {
+              "id": "2",
+              "name": "Emanuel",
+              "isPermitted": false
+            },
+            {
+              "id": "3",
+              "name": "vJamie",
+              "isPermitted": false
+            },
+            {
+              "id": "4",
+              "name": "vVoiceMail",
+              "isPermitted": false
+            },
+            {
+              "id": "5",
+              "name": "Kennedy",
+              "isPermitted": false
+            },
+            {
+              "id": "6",
+              "name": "vPorfirio",
+              "isPermitted": false
+            },
+            {
+              "id": "7",
+              "name": "vVM",
+              "isPermitted": false
+            },
+            {
+              "id": "8",
+              "name": "vOTA",
+              "isPermitted": false
             },
-            "networks": {
-              "ExtVL 0": {
-                "uuid": "ddc3f20c-08b5-40fd-af72-c6d14636b986",
-                "invariantUuid": "379f816b-a7aa-422f-be30-17114ff50b7c",
-                "description": "ECOMP generic virtual link (network) base type for all other service-level and global networks",
-                "name": "ExtVL",
-                "version": "37.0",
-                "customizationUuid": "94fdd893-4a36-4d70-b16a-ec29c54c184f",
-                "inputs": {},
-                "commands": {},
-                "properties": {
-                  "ecomp_generated_naming": "false",
-                  "network_assignments": "{is_external_network=false, ipv4_subnet_default_assignment={min_subnets_count=1}, ecomp_generated_network_assignment=false, ipv6_subnet_default_assignment={min_subnets_count=1}}",
-                  "exVL_naming": "{ecomp_generated_naming=true}",
-                  "network_flows": "{is_network_policy=false, is_bound_to_vpn=false}",
-                  "network_homing": "{ecomp_selected_instance_node_target=false}"
-                },
-                "type": "VL",
-                "modelCustomizationName": "ExtVL 0"
-              }
+            {
+              "id": "9",
+              "name": "vFLORENCE",
+              "isPermitted": false
             },
-            "collectionResource": {},
-            "configurations": {
-              "Port Mirroring Configuration By Policy 0": {
-                "uuid": "b4398538-e89d-4f13-b33d-ca323434ba50",
-                "invariantUuid": "6ef0ca40-f366-4897-951f-abd65d25f6f7",
-                "description": "A port mirroring configuration by policy object",
-                "name": "Port Mirroring Configuration By Policy",
-                "version": "27.0",
-                "customizationUuid": "3c3b7b8d-8669-4b3b-8664-61970041fad2",
-                "inputs": {},
-                "commands": {},
-                "properties": {},
-                "type": "Configuration",
-                "modelCustomizationName": "Port Mirroring Configuration By Policy 0",
-                "sourceNodes": [],
-                "collectorNodes": null,
-                "configurationByPolicy": false
-              }
+            {
+              "id": "10",
+              "name": "vMNS",
+              "isPermitted": false
             },
-            "serviceProxies": {},
-            "vfModules": {
-              "vf_vmee0..VfVmee..vmme_vlc..module-1": {
-                "uuid": "522159d5-d6e0-4c2a-aa44-5a542a12a830",
-                "invariantUuid": "98a7c88b-b577-476a-90e4-e25a5871e02b",
-                "customizationUuid": "55b1be94-671a-403e-a26c-667e9c47d091",
-                "description": null,
-                "name": "VfVmee..vmme_vlc..module-1",
-                "version": "2",
-                "modelCustomizationName": "VfVmee..vmme_vlc..module-1",
-                "properties": {
-                  "minCountInstances": 0,
-                  "maxCountInstances": null,
-                  "initialCount": 0,
-                  "vfModuleLabel": "vmme_vlc"
-                },
-                "inputs": {},
-                "volumeGroupAllowed": false
-              },
-              "vf_vmee0..VfVmee..vmme_gpb..module-2": {
-                "uuid": "41708296-e443-4c71-953f-d9a010f059e1",
-                "invariantUuid": "1cca90b8-3490-495e-87da-3f3e4c57d5b9",
-                "customizationUuid": "6add59e0-7fe1-4bc4-af48-f8812422ae7c",
-                "description": null,
-                "name": "VfVmee..vmme_gpb..module-2",
-                "version": "2",
-                "modelCustomizationName": "VfVmee..vmme_gpb..module-2",
-                "properties": {
-                  "minCountInstances": 0,
-                  "maxCountInstances": null,
-                  "initialCount": 0,
-                  "vfModuleLabel": "vmme_gpb"
-                },
-                "inputs": {},
-                "volumeGroupAllowed": false
-              },
-              "vf_vmee0..VfVmee..base_vmme..module-0": {
-                "uuid": "a27f5cfc-7f12-4f99-af08-0af9c3885c87",
-                "invariantUuid": "a6f9e51a-2b35-416a-ae15-15e58d61f36d",
-                "customizationUuid": "f8c040f1-7e51-4a11-aca8-acf256cfd861",
-                "description": null,
-                "name": "VfVmee..base_vmme..module-0",
-                "version": "2",
-                "modelCustomizationName": "VfVmee..base_vmme..module-0",
-                "properties": {
-                  "minCountInstances": 1,
-                  "maxCountInstances": 1,
-                  "initialCount": 1,
-                  "vfModuleLabel": "base_vmme"
-                },
-                "inputs": {},
-                "volumeGroupAllowed": true
-              }
+            {
+              "id": "11",
+              "name": "vEsmeralda",
+              "isPermitted": false
             },
-            "volumeGroups": {
-              "vf_vmee0..VfVmee..base_vmme..module-0": {
-                "uuid": "a27f5cfc-7f12-4f99-af08-0af9c3885c87",
-                "invariantUuid": "a6f9e51a-2b35-416a-ae15-15e58d61f36d",
-                "customizationUuid": "f8c040f1-7e51-4a11-aca8-acf256cfd861",
-                "description": null,
-                "name": "VfVmee..base_vmme..module-0",
-                "version": "2",
-                "modelCustomizationName": "VfVmee..base_vmme..module-0",
-                "properties": {
-                  "minCountInstances": 1,
-                  "maxCountInstances": 1,
-                  "initialCount": 1,
-                  "vfModuleLabel": "base_vmme"
-                },
-                "inputs": {}
-              }
+            {
+              "id": "12",
+              "name": "VPMS",
+              "isPermitted": false
             },
-            "pnfs": {}
-          }
-        },
-        "serviceInstance": {
-          "6e59c5de-f052-46fa-aa7e-2fca9d674c44": {
-            "vnfs": {
-              "VF_vMee 0": {
-                "originalName": "VF_vMee 0",
-                "rollbackOnFailure": "true",
-                "instanceName": "",
-                "vfModules": {
-                  "vf_vmee0..VfVmee..vmme_vlc..module-1": {
-                    "vf_vmee0..VfVmee..vmme_vlc..module-1dcudx": {
-                      "modelInfo": {
-                        "modelInvariantId": "98a7c88b-b577-476a-90e4-e25a5871e02b",
-                        "modelVersionId": "522159d5-d6e0-4c2a-aa44-5a542a12a830",
-                        "modelName": "VfVmee..vmme_vlc..module-1",
-                        "modelVersion": "2",
-                        "modelCustomizationId": "55b1be94-671a-403e-a26c-667e9c47d091",
-                        "modelCustomizationName": "VfVmee..vmme_vlc..module-1"
-                      },
-                      "isMissingData": false,
-                      "supplementaryFile": "C:\\fakepath\\sample.json",
-                      "supplementaryFile_hidden": {},
-                      "supplementaryFile_hidden_content": "{\r\n  \"name\": \"a\",\r\n  \"value\": \"32\"\r\n}",
-                      "supplementaryFileContent": {
-                        "name": "a",
-                          "value": "32"
-                      },
-                      "supplementaryFileName": "sample.json",
-                      "instanceParams": [
-                        {}
-                      ]
-                    }
-                  }
-                },
-                "isMissingData": false,
-                "modelName": "VF_vMee 0",
-                "productFamilyId": "36b4733a-53f4-4cc8-8ff0-9172e5fc4b8e",
-                "lcpCloudRegionId": "hvf6",
-                "tenantId": "bae71557c5bb4d5aac6743a4e5f1d054",
-                "lineOfBusiness": "zzz1",
-                "platformName": "platform",
-                "modelInfo": {
-                  "modelInvariantId": "4160458e-f648-4b30-a176-43881ffffe9e",
-                  "modelVersionId": "d6557200-ecf2-4641-8094-5393ae3aae60",
-                  "modelName": "VF_vMee",
-                  "modelVersion": "2.0",
-                  "modelCustomizationId": "91415b44-753d-494c-926a-456a9172bbb9",
-                  "modelCustomizationName": "VF_vMee 0"
-                },
-                "legacyRegion": null
-              }
+            {
+              "id": "13",
+              "name": "vWINIFRED",
+              "isPermitted": false
             },
-            "networks": {},
-            "instanceParams": [
-              {}
-            ],
-            "validationCounter": 0,
-            "globalSubscriberId": "e433710f-9217-458d-a79d-1c7aff376d89",
-            "productFamilyId": "36b4733a-53f4-4cc8-8ff0-9172e5fc4b8e",
-            "subscriptionServiceType": "TYLER SILVIA",
-            "lcpCloudRegionId": "hvf6",
-            "tenantId": "1178612d2b394be4834ad77f567c0af2",
-            "aicZoneId": "YYY1",
-            "projectName": "yyy1",
-            "owningEntityId": "aaa1",
-            "owningEntityName": "aaa1",
-            "rollbackOnFailure": "true",
-            "isALaCarte": false,
-            "bulkSize": 1,
-            "modelInfo": {
-              "modelInvariantId": "e49fbd11-e60c-4a8e-b4bf-30fbe8f4fcc0",
-              "modelVersionId": "6e59c5de-f052-46fa-aa7e-2fca9d674c44",
-              "modelName": "ComplexService",
-              "modelVersion": "1.0"
+            {
+              "id": "14",
+              "name": "SSD",
+              "isPermitted": false
             },
-            "instanceName": "",
-            "existingNames": {
-              "serviceinstancename": "",
-              "vfvmee00001": ""
+            {
+              "id": "15",
+              "name": "vMOG",
+              "isPermitted": false
             },
-            "existingVNFCounterMap": {
-              "91415b44-753d-494c-926a-456a9172bbb9": 1
+            {
+              "id": "16",
+              "name": "LINDSEY",
+              "isPermitted": false
             },
-            "existingNetworksCounterMap": {},
-            "tenantName": "AIN Web Tool-15-D-SSPtestcustome",
-            "aicZoneName": "UUUAIAAI-YYY1"
-          }
-        },
-        "lcpRegionsAndTenants": {
-          "lcpRegionList": [
             {
-              "id": "JANET25",
-              "name": "JANET25",
-              "isPermitted": true
+              "id": "17",
+              "name": "JOHANNA_SANTOS",
+              "isPermitted": false
             },
             {
-              "id": "hvf6",
-              "name": "hvf6",
-              "isPermitted": true
+              "id": "18",
+              "name": "vCarroll",
+              "isPermitted": false
             }
-          ],
-          "lcpRegionsTenantsMap": {
-            "JANET25": [
-              {
-                "id": "092eb9e8e4b7412e8787dd091bc58e86",
-                "name": "USP-SIP-IC-24335-T-01",
-                "isPermitted": true
-              }
-            ],
-            "hvf6": [
-              {
-                "id": "bae71557c5bb4d5aac6743a4e5f1d054",
-                "name": "AIN Web Tool-15-D-testalexandria",
-                "isPermitted": true
-              },
-              {
-                "id": "d0a3e3f2964542259d155a81c41aadc3",
-                "name": "test-hvf6-09",
-                "isPermitted": true
-              },
-              {
-                "id": "fa45ca53c80b492fa8be5477cd84fc2b",
-                "name": "ro-T112",
-                "isPermitted": true
-              },
-              {
-                "id": "cbb99fe4ada84631b7baf046b6fd2044",
-                "name": "DN5242-Nov16-T3",
-                "isPermitted": true
-              }
-            ]
-          }
+          ]
         },
-        "subscribers": [
+        "aicZones": [
+          {
+            "id": "NFT1",
+            "name": "NFTJSSSS-NFT1"
+          },
+          {
+            "id": "JAG1",
+            "name": "YUDFJULP-JAG1"
+          },
+          {
+            "id": "YYY1",
+            "name": "UUUAIAAI-YYY1"
+          },
+          {
+            "id": "BAN1",
+            "name": "VSDKYUTP-BAN1"
+          },
+          {
+            "id": "DKJ1",
+            "name": "DKJSJDKA-DKJ1"
+          },
+          {
+            "id": "MCS1",
+            "name": "ASACMAMS-MCS1"
+          },
+          {
+            "id": "UIO1",
+            "name": "uioclli1-UIO1"
+          },
+          {
+            "id": "RAJ1",
+            "name": "YGBIJNLQ-RAJ1"
+          },
+          {
+            "id": "OPA1",
+            "name": "opaclli1-OPA1"
+          },
+          {
+            "id": "SDE1",
+            "name": "ZXCVBNMA-SDE1"
+          },
+          {
+            "id": "VEN2",
+            "name": "FGHJUHIL-VEN2"
+          },
+          {
+            "id": "ORL1",
+            "name": "ORLDFLMA-ORL1"
+          },
+          {
+            "id": "JAD1",
+            "name": "JADECLLI-JAD1"
+          },
+          {
+            "id": "ZXL1",
+            "name": "LWLWCANN-ZXL1"
+          },
+          {
+            "id": "CKL1",
+            "name": "CLKSKCKK-CKL1"
+          },
+          {
+            "id": "SDF1",
+            "name": "sdfclli1-SDF1"
+          },
+          {
+            "id": "RAD1",
+            "name": "RADICAL1-RAD1"
+          },
+          {
+            "id": "KIT1",
+            "name": "BHYJFGLN-KIT1"
+          },
+          {
+            "id": "REL1",
+            "name": "INGERFGT-REL1"
+          },
+          {
+            "id": "JNL1",
+            "name": "CJALSDAC-JNL1"
+          },
+          {
+            "id": "OLK1",
+            "name": "OLKOLKLS-OLK1"
+          },
+          {
+            "id": "CHI1",
+            "name": "CHILLIWE-CHI1"
+          },
+          {
+            "id": "UUU4",
+            "name": "UUUAAAUU-UUU4"
+          },
+          {
+            "id": "TUF1",
+            "name": "TUFCLLI1-TUF1"
+          },
+          {
+            "id": "KJN1",
+            "name": "CKALDKSA-KJN1"
+          },
+          {
+            "id": "SAM1",
+            "name": "SNDGCA64-SAN1"
+          },
+          {
+            "id": "SCK1",
+            "name": "SCKSCKSK-SCK1"
+          },
+          {
+            "id": "HJH1",
+            "name": "AOEEQQQD-HJH1"
+          },
+          {
+            "id": "HGD1",
+            "name": "SDFQWHGD-HGD1"
+          },
+          {
+            "id": "KOR1",
+            "name": "HYFLNBVT-KOR1"
+          },
+          {
+            "id": "ATL43",
+            "name": "AICLOCID-ATL43"
+          },
+          {
+            "id": "ATL54",
+            "name": "AICFTAAI-ATL54"
+          },
+          {
+            "id": "ATL66",
+            "name": "CLLIAAII-ATL66"
+          },
+          {
+            "id": "VEL1",
+            "name": "BNMLKUIK-VEL1"
+          },
+          {
+            "id": "ICC1",
+            "name": "SANJITAT-ICC1"
+          },
+          {
+            "id": "MNT11",
+            "name": "WSXEFBTH-MNT11"
+          },
+          {
+            "id": "DEF2",
+            "name": "WSBHGTYL-DEF2"
+          },
+          {
+            "id": "MAD11",
+            "name": "SDFQWGKL-MAD11"
+          },
+          {
+            "id": "OLG1",
+            "name": "OLHOLHOL-OLG1"
+          },
+          {
+            "id": "GAR1",
+            "name": "NGFVSJKO-GAR1"
+          },
+          {
+            "id": "SAN22",
+            "name": "GNVLSCTL-SAN22"
+          },
+          {
+            "id": "HRG1",
+            "name": "HRGHRGGS-HRG1"
+          },
+          {
+            "id": "JCS1",
+            "name": "JCSJSCJS-JCS1"
+          },
+          {
+            "id": "DHA12",
+            "name": "WSXEDECF-DHA12"
+          },
+          {
+            "id": "HJE1",
+            "name": "AOEEWWWD-HJE1"
+          },
+          {
+            "id": "NCA1",
+            "name": "NCANCANN-NCA1"
+          },
+          {
+            "id": "IOP1",
+            "name": "iopclli1-IOP1"
+          },
+          {
+            "id": "RTY1",
+            "name": "rtyclli1-RTY1"
+          },
+          {
+            "id": "KAP1",
+            "name": "HIOUYTRQ-KAP1"
+          },
+          {
+            "id": "ZEN1",
+            "name": "ZENCLLI1-ZEN1"
+          },
+          {
+            "id": "HKA1",
+            "name": "JAKHLASS-HKA1"
+          },
+          {
+            "id": "CQK1",
+            "name": "CQKSCAKK-CQK1"
+          },
+          {
+            "id": "SAI1",
+            "name": "UBEKQLPD-SAI1"
+          },
+          {
+            "id": "ERT1",
+            "name": "ertclli1-ERT1"
+          },
+          {
+            "id": "IBB1",
+            "name": "PLMKOIJU-IBB1"
+          },
+          {
+            "id": "TIR2",
+            "name": "PLKINHYI-TIR2"
+          },
+          {
+            "id": "HSD1",
+            "name": "CHASKCDS-HSD1"
+          },
+          {
+            "id": "SLF78",
+            "name": "SDCTLFN1-SLF78"
+          },
+          {
+            "id": "SEE78",
+            "name": "SDCTEEE4-SEE78"
+          },
+          {
+            "id": "SAN13",
+            "name": "TOKYJPFA-SAN13"
+          },
+          {
+            "id": "SAA78",
+            "name": "SDCTAAA1-SAA78"
+          },
+          {
+            "id": "LUC1",
+            "name": "ATLDFGYC-LUC1"
+          },
+          {
+            "id": "AMD13",
+            "name": "MEMATLAN-AMD13"
+          },
+          {
+            "id": "TOR1",
+            "name": "TOROONXN-TOR1"
+          },
+          {
+            "id": "QWE1",
+            "name": "QWECLLI1-QWE1"
+          },
+          {
+            "id": "ZOG1",
+            "name": "ZOGASTRO-ZOG1"
+          },
+          {
+            "id": "CAL33",
+            "name": "CALIFORN-CAL33"
+          },
+          {
+            "id": "SHH78",
+            "name": "SDIT1HHH-SHH78"
+          },
+          {
+            "id": "DSA1",
+            "name": "LKJHGFDS-DSA1"
+          },
+          {
+            "id": "CLG1",
+            "name": "CLGRABAD-CLG1"
+          },
+          {
+            "id": "BNA1",
+            "name": "BNARAGBK-BNA1"
+          },
+          {
+            "id": "ATL84",
+            "name": "CANTTCOC-ATL84"
+          },
+          {
+            "id": "APP1",
+            "name": "WBHGTYUI-APP1"
+          },
+          {
+            "id": "RJN1",
+            "name": "RJNRBZAW-RJN1"
+          },
+          {
+            "id": "EHH78",
+            "name": "SDCSHHH5-EHH78"
+          },
+          {
+            "id": "mac10",
+            "name": "PKGTESTF-mac10"
+          },
+          {
+            "id": "SXB78",
+            "name": "SDCTGXB1-SXB78"
+          },
+          {
+            "id": "SAX78",
+            "name": "SDCTAXG1-SAX78"
+          },
+          {
+            "id": "SYD1",
+            "name": "SYDNAUBV-SYD1"
+          },
+          {
+            "id": "TOK1",
+            "name": "TOKYJPFA-TOK1"
+          },
+          {
+            "id": "KGM2",
+            "name": "KGMTNC20-KGM2"
+          },
+          {
+            "id": "DCC1b",
+            "name": "POIUYTGH-DCC1b"
+          },
+          {
+            "id": "SKK78",
+            "name": "SDCTKKK1-SKK78"
+          },
+          {
+            "id": "SGG78",
+            "name": "SDCTGGG1-SGG78"
+          },
+          {
+            "id": "SJJ78",
+            "name": "SDCTJJJ1-SJJ78"
+          },
+          {
+            "id": "SBX78",
+            "name": "SDCTBXG1-SBX78"
+          },
+          {
+            "id": "LAG1",
+            "name": "LARGIZON-LAG1"
+          },
+          {
+            "id": "IAA1",
+            "name": "QAZXSWED-IAA1"
+          },
+          {
+            "id": "POI1",
+            "name": "PLMNJKIU-POI1"
+          },
+          {
+            "id": "LAG1a",
+            "name": "LARGIZON-LAG1a"
+          },
+          {
+            "id": "PBL1",
+            "name": "PBLAPBAI-PBL1"
+          },
+          {
+            "id": "LAG45",
+            "name": "LARGIZON-LAG1a"
+          },
+          {
+            "id": "MAR1",
+            "name": "MNBVCXZM-MAR1"
+          },
+          {
+            "id": "HST70",
+            "name": "HSTNTX70-HST70"
+          },
+          {
+            "id": "DCC1a",
+            "name": "POIUYTGH-DCC1a"
+          },
+          {
+            "id": "TOL1",
+            "name": "TOLDOH21-TOL1"
+          },
+          {
+            "id": "LON1",
+            "name": "LONEENCO-LON1"
+          },
+          {
+            "id": "SJU78",
+            "name": "SDIT1JUB-SJU78"
+          },
+          {
+            "id": "STN27",
+            "name": "HSTNTX01-STN27"
+          },
+          {
+            "id": "SSW56",
+            "name": "ss8126GT-SSW56"
+          },
+          {
+            "id": "SBB78",
+            "name": "SDIT1BBB-SBB78"
+          },
+          {
+            "id": "DCC3",
+            "name": "POIUYTGH-DCC3"
+          },
+          {
+            "id": "GNV1",
+            "name": "GNVLSCTL-GNV1"
+          },
+          {
+            "id": "WAS1",
+            "name": "WASHDCSW-WAS1"
+          },
+          {
+            "id": "TOY1",
+            "name": "TORYONNZ-TOY1"
+          },
+          {
+            "id": "STT1",
+            "name": "STTLWA02-STT1"
+          },
+          {
+            "id": "STG1",
+            "name": "STTGGE62-STG1"
+          },
+          {
+            "id": "SLL78",
+            "name": "SDCTLLL1-SLL78"
+          },
+          {
+            "id": "SBU78",
+            "name": "SDIT1BUB-SBU78"
+          },
+          {
+            "id": "ATL2",
+            "name": "ATLNGANW-ATL2"
+          },
+          {
+            "id": "BOT1",
+            "name": "BOTHWAKY-BOT1"
+          },
+          {
+            "id": "SNG1",
+            "name": "SNGPSIAU-SNG1"
+          },
+          {
+            "id": "NYC1",
+            "name": "NYCMNY54-NYC1"
+          },
+          {
+            "id": "LAG1b",
+            "name": "LARGIZON-LAG1b"
+          },
+          {
+            "id": "AMD15",
+            "name": "AMDFAA01-AMD15"
+          },
+          {
+            "id": "SNA1",
+            "name": "SNANTXCA-SNA1"
+          },
+          {
+            "id": "PLT1",
+            "name": "PLTNCA60-PLT1"
+          },
+          {
+            "id": "TLP1",
+            "name": "TLPNXM18-TLP1"
+          },
+          {
+            "id": "SDD81",
+            "name": "SAIT1DD6-SDD81"
+          },
+          {
+            "id": "DCC1",
+            "name": "POIUYTGH-DCC1"
+          },
+          {
+            "id": "DCC2",
+            "name": "POIUYTGH-DCC2"
+          },
+          {
+            "id": "OKC1",
+            "name": "OKCBOK55-OKC1"
+          },
+          {
+            "id": "PAR1",
+            "name": "PARSFRCG-PAR1"
+          },
+          {
+            "id": "TES36",
+            "name": "ABCEETES-TES36"
+          },
+          {
+            "id": "COM1",
+            "name": "PLMKOPIU-COM1"
+          },
+          {
+            "id": "ANI1",
+            "name": "ATLNGTRE-ANI1"
+          },
+          {
+            "id": "SDG78",
+            "name": "SDIT1BDG-SDG78"
+          },
+          {
+            "id": "mac20",
+            "name": "PKGTESTF-mac20"
+          },
+          {
+            "id": "DSF45",
+            "name": "DSFBG123-DSF45"
+          },
+          {
+            "id": "HST25",
+            "name": "HSTNTX01-HST25"
+          },
           {
-            "id": "CAR_2020_ER",
-            "name": "CAR_2020_ER",
-            "isPermitted": true
+            "id": "AMD18",
+            "name": "AUDIMA01-AMD18"
           },
           {
-            "id": "21014aa2-526b-11e6-beb8-9e71128cae77",
-            "name": "JULIO ERICKSON",
-            "isPermitted": false
+            "id": "SAA80",
+            "name": "SAIT9AA3-SAA80"
           },
           {
-            "id": "DHV1707-TestSubscriber-2",
-            "name": "DALE BRIDGES",
-            "isPermitted": false
+            "id": "SSA56",
+            "name": "SSIT2AA7-SSA56"
           },
           {
-            "id": "DHV1707-TestSubscriber-1",
-            "name": "LLOYD BRIDGES",
-            "isPermitted": false
+            "id": "SDD82",
+            "name": "SAIT1DD9-SDD82"
           },
           {
-            "id": "jimmy-example",
-            "name": "JimmyExampleCust-20161102",
-            "isPermitted": false
+            "id": "JCV1",
+            "name": "JCVLFLBW-JCV1"
           },
           {
-            "id": "jimmy-example2",
-            "name": "JimmyExampleCust-20161103",
-            "isPermitted": false
+            "id": "SUL2",
+            "name": "WERTYUJK-SUL2"
           },
           {
-            "id": "ERICA5779-TestSub-PWT-102",
-            "name": "ERICA5779-TestSub-PWT-102",
-            "isPermitted": false
+            "id": "PUR1",
+            "name": "purelyde-PUR1"
           },
           {
-            "id": "ERICA5779-TestSub-PWT-101",
-            "name": "ERICA5779-TestSub-PWT-101",
-            "isPermitted": false
+            "id": "FDE55",
+            "name": "FDERT555-FDE55"
           },
           {
-            "id": "a9a77d5a-123e-4ca2-9eb9-0b015d2ee0fb",
-            "name": "Emanuel",
-            "isPermitted": false
+            "id": "SITE",
+            "name": "LONEENCO-SITE"
           },
           {
-            "id": "ERICA5779-Subscriber-4",
-            "name": "ERICA5779-Subscriber-5",
-            "isPermitted": false
+            "id": "ATL1",
+            "name": "ATLNGAMA-ATL1"
           },
           {
-            "id": "ERICA5779-TestSub-PWT-103",
-            "name": "ERICA5779-TestSub-PWT-103",
-            "isPermitted": false
+            "id": "JUL1",
+            "name": "ZXCVBNMM-JUL1"
           },
           {
-            "id": "ERICA5779-Subscriber-2",
-            "name": "ERICA5779-Subscriber-2",
-            "isPermitted": false
+            "id": "TAT34",
+            "name": "TESAAISB-TAT34"
           },
           {
-            "id": "e433710f-9217-458d-a79d-1c7aff376d89",
-            "name": "SILVIA ROBBINS",
-            "isPermitted": true
+            "id": "XCP12",
+            "name": "CHKGH123-XCP12"
           },
           {
-            "id": "ERICA5779-Subscriber-3",
-            "name": "ERICA5779-Subscriber-3",
-            "isPermitted": false
+            "id": "RAI1",
+            "name": "poiuytre-RAI1"
           },
           {
-            "id": "31739f3e-526b-11e6-beb8-9e71128cae77",
-            "name": "CRAIG/ROBERTS",
-            "isPermitted": false
-          }
-        ],
-        "productFamilies": [
+            "id": "HPO1",
+            "name": "ATLNGAUP-HPO1"
+          },
           {
-            "id": "ebc3bc3d-62fd-4a3f-a037-f619df4ff034",
-            "name": "SCOTTIE",
-            "isPermitted": true
+            "id": "KJF12",
+            "name": "KJFDH123-KJF12"
           },
           {
-            "id": "17cc1042-527b-11e6-beb8-9e71128cae77",
-            "name": "IGNACIO",
-            "isPermitted": true
+            "id": "SCC80",
+            "name": "SAIT9CC3-SCC80"
           },
           {
-            "id": "36b4733a-53f4-4cc8-8ff0-9172e5fc4b8e",
-            "name": "Christie",
-            "isPermitted": true
+            "id": "SAA12",
+            "name": "SAIT9AF8-SAA12"
           },
           {
-            "id": "a4f6f2ae-9bf5-4ed7-b904-06b2099c4bd7",
-            "name": "Enhanced Services",
-            "isPermitted": true
+            "id": "SAA14",
+            "name": "SAIT1AA9-SAA14"
           },
           {
-            "id": "vTerrance",
-            "name": "vTerrance",
-            "isPermitted": true
+            "id": "ATL35",
+            "name": "TTESSAAI-ATL35"
           },
           {
-            "id": "323d69d9-2efe-4r45-ay0a-89ea7ard4e6f",
-            "name": "vSCP",
-            "isPermitted": true
+            "id": "CWY1",
+            "name": "CWYMOWBS-CWY1"
           },
           {
-            "id": "a9a77d5a-123e-4ca2-9eb9-0b015d2ee0fb",
-            "name": "Emanuel",
-            "isPermitted": true
+            "id": "ATL76",
+            "name": "TELEPAAI-ATL76"
           },
           {
-            "id": "d8a6ed93-251c-47ca-adc9-86671fd19f4c",
-            "name": "BVOIP",
-            "isPermitted": true
+            "id": "DSL12",
+            "name": "DSLFK242-DSL12"
           },
           {
-            "id": "db171b8f-115c-4992-a2e3-ee04cae357e0",
-            "name": "LINDSEY",
-            "isPermitted": true
+            "id": "ATL53",
+            "name": "AAIATLTE-ATL53"
           },
           {
-            "id": "LRSI-OSPF",
-            "name": "LRSI-OSPF",
-            "isPermitted": true
+            "id": "SAA11",
+            "name": "SAIT9AA2-SAA11"
           },
           {
-            "id": "vRosemarie",
-            "name": "HNGATEWAY",
-            "isPermitted": true
+            "id": "ATL62",
+            "name": "TESSASCH-ATL62"
           },
           {
-            "id": "vHNPaas",
-            "name": "WILKINS",
-            "isPermitted": true
+            "id": "AUG1",
+            "name": "ASDFGHJK-AUG1"
           },
           {
-            "id": "e433710f-9217-458d-a79d-1c7aff376d89",
-            "name": "TYLER SILVIA",
-            "isPermitted": true
+            "id": "POI22",
+            "name": "POIUY123-POI22"
           },
           {
-            "id": "b6a3f28c-eebf-494c-a900-055cc7c874ce",
-            "name": "VROUTER",
-            "isPermitted": true
+            "id": "SAA13",
+            "name": "SAIT1AA9-SAA13"
           },
           {
-            "id": "Cisneros",
-            "name": "vMuriel",
-            "isPermitted": true
+            "id": "BHY17",
+            "name": "BHYTFRF3-BHY17"
           },
           {
-            "id": "0ee8c1bc-7cbd-4b0a-a1ac-e9999255abc1",
-            "name": "CARA Griffin",
-            "isPermitted": true
+            "id": "LIS1",
+            "name": "HOSTPROF-LIS1"
           },
           {
-            "id": "c7611ebe-c324-48f1-8085-94aef0c6ef3d",
-            "name": "DARREN MCGEE",
-            "isPermitted": true
+            "id": "SIP1",
+            "name": "ZXCVBNMK-SIP1"
           },
           {
-            "id": "e30755dc-5673-4b6b-9dcf-9abdd96b93d1",
-            "name": "Transport",
-            "isPermitted": true
+            "id": "ATL99",
+            "name": "TEESTAAI-ATL43"
           },
           {
-            "id": "vSalvatore",
-            "name": "vSalvatore",
-            "isPermitted": true
+            "id": "ATL64",
+            "name": "FORLOAAJ-ATL64"
           },
           {
-            "id": "d7bb0a21-66f2-4e6d-87d9-9ef3ced63ae4",
-            "name": "Josefina",
-            "isPermitted": true
+            "id": "TAT33",
+            "name": "TESAAISA-TAT33"
           },
           {
-            "id": "vHubbard",
-            "name": "vHubbard",
-            "isPermitted": true
+            "id": "RAD10",
+            "name": "INDIPUNE-RAD10"
           },
           {
-            "id": "12a96a9d-4b4c-4349-a950-fe1159602621",
-            "name": "DARREN MCGEE",
-            "isPermitted": true
-          }
-        ],
-        "serviceTypes": {
-          "e433710f-9217-458d-a79d-1c7aff376d89": [
-            {
-              "id": "0",
-              "name": "vRichardson",
-              "isPermitted": false
-            },
-            {
-              "id": "1",
-              "name": "TYLER SILVIA",
-              "isPermitted": true
-            },
-            {
-              "id": "2",
-              "name": "Emanuel",
-              "isPermitted": false
-            },
-            {
-              "id": "3",
-              "name": "vJamie",
-              "isPermitted": false
-            },
-            {
-              "id": "4",
-              "name": "vVoiceMail",
-              "isPermitted": false
-            },
-            {
-              "id": "5",
-              "name": "Kennedy",
-              "isPermitted": false
-            },
-            {
-              "id": "6",
-              "name": "vSEGW",
-              "isPermitted": false
-            },
-            {
-              "id": "7",
-              "name": "vVM",
-              "isPermitted": false
-            },
-            {
-              "id": "8",
-              "name": "vOTA",
-              "isPermitted": false
-            },
-            {
-              "id": "9",
-              "name": "vMME",
-              "isPermitted": false
-            },
-            {
-              "id": "10",
-              "name": "vMNS",
-              "isPermitted": false
-            },
-            {
-              "id": "11",
-              "name": "vSCP",
-              "isPermitted": false
-            },
-            {
-              "id": "12",
-              "name": "VPMS",
-              "isPermitted": false
-            },
-            {
-              "id": "13",
-              "name": "vMMSC",
-              "isPermitted": false
-            },
-            {
-              "id": "14",
-              "name": "SSD",
-              "isPermitted": false
-            },
-            {
-              "id": "15",
-              "name": "vMOG",
-              "isPermitted": false
-            },
-            {
-              "id": "16",
-              "name": "LINDSEY",
-              "isPermitted": false
-            },
-            {
-              "id": "17",
-              "name": "JOHANNA_SANTOS",
-              "isPermitted": false
-            },
-            {
-              "id": "18",
-              "name": "vCarroll",
-              "isPermitted": false
-            }
-          ]
-        },
-        "aicZones": [
+            "id": "RTW5",
+            "name": "BHYTFRY4-RTW5"
+          },
           {
-            "id": "NFT1",
-            "name": "NFTJSSSS-NFT1"
+            "id": "JGS1",
+            "name": "KSJKKKKK-JGS1"
           },
           {
-            "id": "JAG1",
-            "name": "YUDFJULP-JAG1"
+            "id": "ATL98",
+            "name": "TEESTAAI-ATL43"
           },
           {
-            "id": "YYY1",
-            "name": "UUUAIAAI-YYY1"
+            "id": "WAN1",
+            "name": "LEIWANGW-WAN1"
+          },
+          {
+            "id": "ATL44",
+            "name": "ATLSANAB-ATL44"
+          },
+          {
+            "id": "RTD2",
+            "name": "BHYTFRk4-RTD2"
+          },
+          {
+            "id": "NIR1",
+            "name": "ORFLMANA-NIR1"
+          },
+          {
+            "id": "ATL75",
+            "name": "SANAAIRE-ATL75"
+          },
+          {
+            "id": "NUM1",
+            "name": "QWERTYUI-NUM1"
+          },
+          {
+            "id": "hvf32",
+            "name": "MDTWNJ21-hvf32"
+          },
+          {
+            "id": "RTZ4",
+            "name": "BHYTFRZ6-RTZ4"
+          },
+          {
+            "id": "ATL56",
+            "name": "ATLSANAC-ATL56"
+          },
+          {
+            "id": "AMS1",
+            "name": "AMSTNLBW-AMS1"
+          },
+          {
+            "id": "RCT1",
+            "name": "AMSTERNL-RCT1"
+          },
+          {
+            "id": "JAN1",
+            "name": "ORFLMATT-JAN1"
+          },
+          {
+            "id": "ABC14",
+            "name": "TESAAISA-ABC14"
+          },
+          {
+            "id": "TAT37",
+            "name": "TESAAISD-TAT37"
+          },
+          {
+            "id": "MIC54",
+            "name": "MICHIGAN-MIC54"
+          },
+          {
+            "id": "ABC11",
+            "name": "ATLSANAI-ABC11"
+          },
+          {
+            "id": "AMF11",
+            "name": "AMDOCS01-AMF11"
+          },
+          {
+            "id": "ATL63",
+            "name": "ATLSANEW-ATL63"
+          },
+          {
+            "id": "ABC12",
+            "name": "ATLSECIA-ABC12"
+          },
+          {
+            "id": "hvf20",
+            "name": "MDTWNJ21-hvf20"
+          },
+          {
+            "id": "ABC15",
+            "name": "AAITESAN-ABC15"
           },
           {
             "id": "AVT1",
@@ -6910,7 +10588,7 @@ describe('Drawing board', function () {
 
   function checkDynamicInputs() {
     cy.getReduxState().then((state) => {
-      let dynamicInputs = state.service.serviceHierarchy['f4d84bb4-a416-4b4e-997e-0059973630b9'].vnfs['2017-488_ADIOD-vPE 0'].inputs;
+      let dynamicInputs = state.service.serviceHierarchy['f4d84bb4-a416-4b4e-997e-0059973630b9'].vnfs['2017-488_PASQUALE-vPE 0'].inputs;
 
       chai.expect(dynamicInputs.vnf_config_template_version.description).equal("VPE Software Version");
       chai.expect(dynamicInputs.bandwidth_units.description).equal("Units of bandwidth");
index 9748f39..c730dc7 100644 (file)
@@ -28,7 +28,7 @@ describe('Network popup', function () {
 
     it('Network(A-La-Carte) - create / edit / duplicate / delete', function () {
       let redux = getReduxWithVNFSAndNetwork();
-      redux.service.serviceHierarchy['6b528779-44a3-4472-bdff-9cd15ec93450'].service.instantiationType = 'A-La-Carte';
+      redux.service.serviceHierarchy['6b528779-44a3-4472-bdff-9cd15ec93450'].service.vidNotions.instantiationType = 'ALaCarte';
 
       cy.setReduxState(<any>redux);
       cy.openIframe('app/ui/#/servicePlanning?serviceModelId=6b528779-44a3-4472-bdff-9cd15ec93450');
@@ -212,17 +212,12 @@ describe('Network popup', function () {
             "FLAG_NETWORK_TO_ASYNC_INSTANTIATION": false,
             "FLAG_SHOW_ASSIGNMENTS": true,
             "FLAG_FABRIC_CONFIGURATION_ASSIGNMENTS": true,
-            "FLAG_UNASSIGN_SERVICE": true,
             "FLAG_SHOW_VERIFY_SERVICE": false,
-            "FLAG_COLLECTION_RESOURCE_SUPPORT": true,
-            "FLAG_DUPLICATE_VNF": true,
             "FLAG_SERVICE_MODEL_CACHE": true,
             "FLAG_ADVANCED_PORTS_FILTER": true,
             "CREATE_INSTANCE_TEST": false,
             "FLAG_SETTING_DEFAULTS_IN_DRAWING_BOARD": false,
             "FLAG_REGION_ID_FROM_REMOTE": true,
-            "FLAG_ASYNC_INSTANTIATION": true,
-            "FLAG_ASYNC_JOBS": true,
             "EMPTY_DRAWING_BOARD_TEST": false,
             "FLAG_ADD_MSO_TESTAPI_FIELD": true
           },
@@ -246,11 +241,11 @@ describe('Network popup', function () {
                 "inputs": {}
               },
               "vnfs": {
-                "VF_vMee 0": {
+                "VF_vGeraldine 0": {
                   "uuid": "d6557200-ecf2-4641-8094-5393ae3aae60",
                   "invariantUuid": "4160458e-f648-4b30-a176-43881ffffe9e",
-                  "description": "VSP_vMee",
-                  "name": "VF_vMee",
+                  "description": "VSP_vGeraldine",
+                  "name": "VF_vGeraldine",
                   "version": "2.0",
                   "customizationUuid": "91415b44-753d-494c-926a-456a9172bbb9",
                   "inputs": {},
@@ -421,74 +416,74 @@ describe('Network popup', function () {
                     "sctp-b-egress-dst_end_port": "65535.0"
                   },
                   "type": "VF",
-                  "modelCustomizationName": "VF_vMee 0",
+                  "modelCustomizationName": "VF_vGeraldine 0",
                   "vfModules": {
-                    "vf_vmee0..VfVmee..vmme_vlc..module-1": {
+                    "vf_vgeraldine0..VfVgeraldine..vflorence_vlc..module-1": {
                       "uuid": "522159d5-d6e0-4c2a-aa44-5a542a12a830",
                       "invariantUuid": "98a7c88b-b577-476a-90e4-e25a5871e02b",
                       "customizationUuid": "55b1be94-671a-403e-a26c-667e9c47d091",
                       "description": null,
-                      "name": "VfVmee..vmme_vlc..module-1",
+                      "name": "VfVgeraldine..vflorence_vlc..module-1",
                       "version": "2",
-                      "modelCustomizationName": "VfVmee..vmme_vlc..module-1",
+                      "modelCustomizationName": "VfVgeraldine..vflorence_vlc..module-1",
                       "properties": {
                         "minCountInstances": 0,
                         "maxCountInstances": null,
                         "initialCount": 0,
-                        "vfModuleLabel": "vmme_vlc"
+                        "vfModuleLabel": "vflorence_vlc"
                       },
                       "inputs": {},
                       "volumeGroupAllowed": true
                     },
-                    "vf_vmee0..VfVmee..vmme_gpb..module-2": {
+                    "vf_vgeraldine0..VfVgeraldine..vflorence_gpb..module-2": {
                       "uuid": "41708296-e443-4c71-953f-d9a010f059e1",
                       "invariantUuid": "1cca90b8-3490-495e-87da-3f3e4c57d5b9",
                       "customizationUuid": "6add59e0-7fe1-4bc4-af48-f8812422ae7c",
                       "description": null,
-                      "name": "VfVmee..vmme_gpb..module-2",
+                      "name": "VfVgeraldine..vflorence_gpb..module-2",
                       "version": "2",
-                      "modelCustomizationName": "VfVmee..vmme_gpb..module-2",
+                      "modelCustomizationName": "VfVgeraldine..vflorence_gpb..module-2",
                       "properties": {
                         "minCountInstances": 0,
                         "maxCountInstances": null,
                         "initialCount": 0,
-                        "vfModuleLabel": "vmme_gpb"
+                        "vfModuleLabel": "vflorence_gpb"
                       },
                       "inputs": {},
                       "volumeGroupAllowed": false
                     },
-                    "vf_vmee0..VfVmee..base_vmme..module-0": {
+                    "vf_vgeraldine0..VfVgeraldine..base_vflorence..module-0": {
                       "uuid": "a27f5cfc-7f12-4f99-af08-0af9c3885c87",
                       "invariantUuid": "a6f9e51a-2b35-416a-ae15-15e58d61f36d",
                       "customizationUuid": "f8c040f1-7e51-4a11-aca8-acf256cfd861",
                       "description": null,
-                      "name": "VfVmee..base_vmme..module-0",
+                      "name": "VfVgeraldine..base_vflorence..module-0",
                       "version": "2",
-                      "modelCustomizationName": "VfVmee..base_vmme..module-0",
+                      "modelCustomizationName": "VfVgeraldine..base_vflorence..module-0",
                       "properties": {
                         "minCountInstances": 1,
                         "maxCountInstances": 1,
                         "initialCount": 1,
-                        "vfModuleLabel": "base_vmme"
+                        "vfModuleLabel": "base_vflorence"
                       },
                       "inputs": {},
                       "volumeGroupAllowed": true
                     }
                   },
                   "volumeGroups": {
-                    "vf_vmee0..VfVmee..base_vmme..module-0": {
+                    "vf_vgeraldine0..VfVgeraldine..base_vflorence..module-0": {
                       "uuid": "a27f5cfc-7f12-4f99-af08-0af9c3885c87",
                       "invariantUuid": "a6f9e51a-2b35-416a-ae15-15e58d61f36d",
                       "customizationUuid": "f8c040f1-7e51-4a11-aca8-acf256cfd861",
                       "description": null,
-                      "name": "VfVmee..base_vmme..module-0",
+                      "name": "VfVgeraldine..base_vflorence..module-0",
                       "version": "2",
-                      "modelCustomizationName": "VfVmee..base_vmme..module-0",
+                      "modelCustomizationName": "VfVgeraldine..base_vflorence..module-0",
                       "properties": {
                         "minCountInstances": 1,
                         "maxCountInstances": 1,
                         "initialCount": 1,
-                        "vfModuleLabel": "base_vmme"
+                        "vfModuleLabel": "base_vflorence"
                       },
                       "inputs": {}
                     }
@@ -516,7 +511,7 @@ describe('Network popup', function () {
                   "modelCustomizationName": "ExtVL 0"
                 }
               },
-              "collectionResource": {},
+              "collectionResources": {},
               "configurations": {
                 "Port Mirroring Configuration By Policy 0": {
                   "uuid": "b4398538-e89d-4f13-b33d-ca323434ba50",
@@ -537,72 +532,72 @@ describe('Network popup', function () {
               },
               "serviceProxies": {},
               "vfModules": {
-                "vf_vmee0..VfVmee..vmme_vlc..module-1": {
+                "vf_vgeraldine0..VfVgeraldine..vflorence_vlc..module-1": {
                   "uuid": "522159d5-d6e0-4c2a-aa44-5a542a12a830",
                   "invariantUuid": "98a7c88b-b577-476a-90e4-e25a5871e02b",
                   "customizationUuid": "55b1be94-671a-403e-a26c-667e9c47d091",
                   "description": null,
-                  "name": "VfVmee..vmme_vlc..module-1",
+                  "name": "VfVgeraldine..vflorence_vlc..module-1",
                   "version": "2",
-                  "modelCustomizationName": "VfVmee..vmme_vlc..module-1",
+                  "modelCustomizationName": "VfVgeraldine..vflorence_vlc..module-1",
                   "properties": {
                     "minCountInstances": 0,
                     "maxCountInstances": null,
                     "initialCount": 0,
-                    "vfModuleLabel": "vmme_vlc"
+                    "vfModuleLabel": "vflorence_vlc"
                   },
                   "inputs": {},
                   "volumeGroupAllowed": true
                 },
-                "vf_vmee0..VfVmee..vmme_gpb..module-2": {
+                "vf_vgeraldine0..VfVgeraldine..vflorence_gpb..module-2": {
                   "uuid": "41708296-e443-4c71-953f-d9a010f059e1",
                   "invariantUuid": "1cca90b8-3490-495e-87da-3f3e4c57d5b9",
                   "customizationUuid": "6add59e0-7fe1-4bc4-af48-f8812422ae7c",
                   "description": null,
-                  "name": "VfVmee..vmme_gpb..module-2",
+                  "name": "VfVgeraldine..vflorence_gpb..module-2",
                   "version": "2",
-                  "modelCustomizationName": "VfVmee..vmme_gpb..module-2",
+                  "modelCustomizationName": "VfVgeraldine..vflorence_gpb..module-2",
                   "properties": {
                     "minCountInstances": 0,
                     "maxCountInstances": null,
                     "initialCount": 0,
-                    "vfModuleLabel": "vmme_gpb"
+                    "vfModuleLabel": "vflorence_gpb"
                   },
                   "inputs": {},
                   "volumeGroupAllowed": false
                 },
-                "vf_vmee0..VfVmee..base_vmme..module-0": {
+                "vf_vgeraldine0..VfVgeraldine..base_vflorence..module-0": {
                   "uuid": "a27f5cfc-7f12-4f99-af08-0af9c3885c87",
                   "invariantUuid": "a6f9e51a-2b35-416a-ae15-15e58d61f36d",
                   "customizationUuid": "f8c040f1-7e51-4a11-aca8-acf256cfd861",
                   "description": null,
-                  "name": "VfVmee..base_vmme..module-0",
+                  "name": "VfVgeraldine..base_vflorence..module-0",
                   "version": "2",
-                  "modelCustomizationName": "VfVmee..base_vmme..module-0",
+                  "modelCustomizationName": "VfVgeraldine..base_vflorence..module-0",
                   "properties": {
                     "minCountInstances": 1,
                     "maxCountInstances": 1,
                     "initialCount": 1,
-                    "vfModuleLabel": "base_vmme"
+                    "vfModuleLabel": "base_vflorence"
                   },
                   "inputs": {},
                   "volumeGroupAllowed": true
                 }
               },
               "volumeGroups": {
-                "vf_vmee0..VfVmee..base_vmme..module-0": {
+                "vf_vgeraldine0..VfVgeraldine..base_vflorence..module-0": {
                   "uuid": "a27f5cfc-7f12-4f99-af08-0af9c3885c87",
                   "invariantUuid": "a6f9e51a-2b35-416a-ae15-15e58d61f36d",
                   "customizationUuid": "f8c040f1-7e51-4a11-aca8-acf256cfd861",
                   "description": null,
-                  "name": "VfVmee..base_vmme..module-0",
+                  "name": "VfVgeraldine..base_vflorence..module-0",
                   "version": "2",
-                  "modelCustomizationName": "VfVmee..base_vmme..module-0",
+                  "modelCustomizationName": "VfVgeraldine..base_vflorence..module-0",
                   "properties": {
                     "minCountInstances": 1,
                     "maxCountInstances": 1,
                     "initialCount": 1,
-                    "vfModuleLabel": "base_vmme"
+                    "vfModuleLabel": "base_vflorence"
                   },
                   "inputs": {}
                 }
@@ -622,8 +617,11 @@ describe('Network popup', function () {
                 "description": "",
                 "serviceEcompNaming": "false",
                 "instantiationType": "Macro",
+                "vidNotions": {
+                  "instantiationType": "Macro"
+                },
                 "inputs": {
-                  "2017488_adiodvpe0_ASN": {
+                  "2017488_pasqualevpe0_ASN": {
                     "type": "string",
                     "description": "AV/PE",
                     "entry_schema": null,
@@ -635,11 +633,11 @@ describe('Network popup', function () {
                 }
               },
               "vnfs": {
-                "2017-388_ADIOD-vPE 1": {
+                "2017-388_PASQUALE-vPE 1": {
                   "uuid": "0903e1c0-8e03-4936-b5c2-260653b96413",
                   "invariantUuid": "00beb8f9-6d39-452f-816d-c709b9cbb87d",
-                  "description": "Name ADIOD vPE Description The provider edge function for the ADIOD service supported by the Junipers VMX product Category Router Vendor Juniper Vendor Release Code 17.2 Owners Mary Fragale. Updated 9-25 to use v8.0 of the Juniper Valid 2 VLM",
-                  "name": "2017-388_ADIOD-vPE",
+                  "description": "Name PASQUALE vPE Description The provider edge function for the PASQUALE service supported by the Junipers VMX product Category Router Vendor Juniper Vendor Release Code 17.2 Owners Mary Fragale. Updated 9-25 to use v8.0 of the Juniper Valid 2 VLM",
+                  "name": "2017-388_PASQUALE-vPE",
                   "version": "1.0",
                   "customizationUuid": "280dec31-f16d-488b-9668-4aae55d6648a",
                   "inputs": {
@@ -702,37 +700,37 @@ describe('Network popup', function () {
                     "vnf_config_template_version": {
                       "displayName": "vnf_config_template_version",
                       "command": "get_input",
-                      "inputName": "2017488_adiodvpe0_vnf_config_template_version"
+                      "inputName": "2017488_pasqualevpe0_vnf_config_template_version"
                     },
                     "bandwidth_units": {
                       "displayName": "bandwidth_units",
                       "command": "get_input",
-                      "inputName": "adiodvpe0_bandwidth_units"
+                      "inputName": "pasqualevpe0_bandwidth_units"
                     },
                     "bandwidth": {
                       "displayName": "bandwidth",
                       "command": "get_input",
-                      "inputName": "adiodvpe0_bandwidth"
+                      "inputName": "pasqualevpe0_bandwidth"
                     },
                     "AIC_CLLI": {
                       "displayName": "AIC_CLLI",
                       "command": "get_input",
-                      "inputName": "2017488_adiodvpe0_AIC_CLLI"
+                      "inputName": "2017488_pasqualevpe0_AIC_CLLI"
                     },
                     "ASN": {
                       "displayName": "ASN",
                       "command": "get_input",
-                      "inputName": "2017488_adiodvpe0_ASN"
+                      "inputName": "2017488_pasqualevpe0_ASN"
                     },
                     "vnf_instance_name": {
                       "displayName": "vnf_instance_name",
                       "command": "get_input",
-                      "inputName": "2017488_adiodvpe0_vnf_instance_name"
+                      "inputName": "2017488_pasqualevpe0_vnf_instance_name"
                     }
                   },
                   "properties": {
                     "vmxvre_retype": "RE-VMX",
-                    "vnf_config_template_version": "get_input:2017488_adiodvpe0_vnf_config_template_version",
+                    "vnf_config_template_version": "get_input:2017488_pasqualevpe0_vnf_config_template_version",
                     "sriov44_net_id": "48d399b3-11ee-48a8-94d2-f0ea94d6be8d",
                     "int_ctl_net_id": "2f323477-6936-4d01-ac53-d849430281d9",
                     "vmxvpfe_sriov41_0_port_mac": "00:11:22:EF:AC:DF",
@@ -777,7 +775,7 @@ describe('Network popup', function () {
                     "vmxvpfe_sriov43_0_port_unknownmulticastallow": "true",
                     "vmxvre_int_ctl_ip_0": "10.0.0.10",
                     "ecomp_generated_naming": "false",
-                    "AIC_CLLI": "get_input:2017488_adiodvpe0_AIC_CLLI",
+                    "AIC_CLLI": "get_input:2017488_pasqualevpe0_AIC_CLLI",
                     "vnf_name": "mtnj309me6vre",
                     "vmxvpfe_sriov41_0_port_unknownunicastallow": "true",
                     "vmxvre_volume_type_1": "HITACHI",
@@ -785,14 +783,14 @@ describe('Network popup', function () {
                     "vmxvre_volume_type_0": "HITACHI",
                     "vmxvpfe_volume_type_0": "HITACHI",
                     "vmxvpfe_sriov43_0_port_broadcastallow": "true",
-                    "bandwidth_units": "get_input:adiodvpe0_bandwidth_units",
+                    "bandwidth_units": "get_input:pasqualevpe0_bandwidth_units",
                     "vnf_id": "123",
                     "vmxvre_oam_prefix": "24",
                     "availability_zone_0": "mtpocfo-kvm-az01",
-                    "ASN": "get_input:2017488_adiodvpe0_ASN",
+                    "ASN": "get_input:2017488_pasqualevpe0_ASN",
                     "vmxvre_chassis_i2cid": "161",
                     "vmxvpfe_name_0": "vPFEXI",
-                    "bandwidth": "get_input:adiodvpe0_bandwidth",
+                    "bandwidth": "get_input:pasqualevpe0_bandwidth",
                     "availability_zone_max_count": "1",
                     "vmxvre_volume_size_0": "45.0",
                     "vmxvre_volume_size_1": "50.0",
@@ -802,7 +800,7 @@ describe('Network popup', function () {
                     "vmxvre_ore_present": "0",
                     "vmxvre_volume_name_0": "vREXI_FBVolume",
                     "vmxvre_type": "0",
-                    "vnf_instance_name": "get_input:2017488_adiodvpe0_vnf_instance_name",
+                    "vnf_instance_name": "get_input:2017488_pasqualevpe0_vnf_instance_name",
                     "vmxvpfe_sriov41_0_port_unknownmulticastallow": "true",
                     "oam_net_id": "b95eeb1d-d55d-4827-abb4-8ebb94941429",
                     "vmx_int_ctl_len": "24",
@@ -816,16 +814,16 @@ describe('Network popup', function () {
                     "vmxvpfe_flavor_name": "ns.c20r16d25.v5"
                   },
                   "type": "VF",
-                  "modelCustomizationName": "2017-388_ADIOD-vPE 1",
+                  "modelCustomizationName": "2017-388_PASQUALE-vPE 1",
                   "vfModules": {},
                   "volumeGroups": {},
                   "vfcInstanceGroups": {}
                 },
-                "2017-388_ADIOD-vPE 0": {
+                "2017-388_PASQUALE-vPE 0": {
                   "uuid": "afacccf6-397d-45d6-b5ae-94c39734b168",
                   "invariantUuid": "72e465fe-71b1-4e7b-b5ed-9496118ff7a8",
-                  "description": "Name ADIOD vPE Description The provider edge function for the ADIOD service supported by the Junipers VMX product Category Router Vendor Juniper Vendor Release Code 17.2 Owners Mary Fragale. Updated 9-25 to use v8.0 of the Juniper Valid 2 VLM",
-                  "name": "2017-388_ADIOD-vPE",
+                  "description": "Name PASQUALE vPE Description The provider edge function for the PASQUALE service supported by the Junipers VMX product Category Router Vendor Juniper Vendor Release Code 17.2 Owners Mary Fragale. Updated 9-25 to use v8.0 of the Juniper Valid 2 VLM",
+                  "name": "2017-388_PASQUALE-vPE",
                   "version": "4.0",
                   "customizationUuid": "b3c76f73-eeb5-4fb6-9d31-72a889f1811c",
                   "inputs": {
@@ -888,37 +886,37 @@ describe('Network popup', function () {
                     "vnf_config_template_version": {
                       "displayName": "vnf_config_template_version",
                       "command": "get_input",
-                      "inputName": "2017488_adiodvpe0_vnf_config_template_version"
+                      "inputName": "2017488_pasqualevpe0_vnf_config_template_version"
                     },
                     "bandwidth_units": {
                       "displayName": "bandwidth_units",
                       "command": "get_input",
-                      "inputName": "adiodvpe0_bandwidth_units"
+                      "inputName": "pasqualevpe0_bandwidth_units"
                     },
                     "bandwidth": {
                       "displayName": "bandwidth",
                       "command": "get_input",
-                      "inputName": "adiodvpe0_bandwidth"
+                      "inputName": "pasqualevpe0_bandwidth"
                     },
                     "AIC_CLLI": {
                       "displayName": "AIC_CLLI",
                       "command": "get_input",
-                      "inputName": "2017488_adiodvpe0_AIC_CLLI"
+                      "inputName": "2017488_pasqualevpe0_AIC_CLLI"
                     },
                     "ASN": {
                       "displayName": "ASN",
                       "command": "get_input",
-                      "inputName": "2017488_adiodvpe0_ASN"
+                      "inputName": "2017488_pasqualevpe0_ASN"
                     },
                     "vnf_instance_name": {
                       "displayName": "vnf_instance_name",
                       "command": "get_input",
-                      "inputName": "2017488_adiodvpe0_vnf_instance_name"
+                      "inputName": "2017488_pasqualevpe0_vnf_instance_name"
                     }
                   },
                   "properties": {
                     "vmxvre_retype": "RE-VMX",
-                    "vnf_config_template_version": "get_input:2017488_adiodvpe0_vnf_config_template_version",
+                    "vnf_config_template_version": "get_input:2017488_pasqualevpe0_vnf_config_template_version",
                     "sriov44_net_id": "48d399b3-11ee-48a8-94d2-f0ea94d6be8d",
                     "int_ctl_net_id": "2f323477-6936-4d01-ac53-d849430281d9",
                     "vmxvpfe_sriov41_0_port_mac": "00:11:22:EF:AC:DF",
@@ -964,7 +962,7 @@ describe('Network popup', function () {
                     "vmxvpfe_sriov43_0_port_unknownmulticastallow": "true",
                     "vmxvre_int_ctl_ip_0": "10.0.0.10",
                     "ecomp_generated_naming": "false",
-                    "AIC_CLLI": "get_input:2017488_adiodvpe0_AIC_CLLI",
+                    "AIC_CLLI": "get_input:2017488_pasqualevpe0_AIC_CLLI",
                     "vnf_name": "mtnj309me6vre",
                     "vmxvpfe_sriov41_0_port_unknownunicastallow": "true",
                     "vmxvre_volume_type_1": "HITACHI",
@@ -972,14 +970,14 @@ describe('Network popup', function () {
                     "vmxvre_volume_type_0": "HITACHI",
                     "vmxvpfe_volume_type_0": "HITACHI",
                     "vmxvpfe_sriov43_0_port_broadcastallow": "true",
-                    "bandwidth_units": "get_input:adiodvpe0_bandwidth_units",
+                    "bandwidth_units": "get_input:pasqualevpe0_bandwidth_units",
                     "vnf_id": "123",
                     "vmxvre_oam_prefix": "24",
                     "availability_zone_0": "mtpocfo-kvm-az01",
-                    "ASN": "get_input:2017488_adiodvpe0_ASN",
+                    "ASN": "get_input:2017488_pasqualevpe0_ASN",
                     "vmxvre_chassis_i2cid": "161",
                     "vmxvpfe_name_0": "vPFEXI",
-                    "bandwidth": "get_input:adiodvpe0_bandwidth",
+                    "bandwidth": "get_input:pasqualevpe0_bandwidth",
                     "availability_zone_max_count": "1",
                     "vmxvre_volume_size_0": "45.0",
                     "vmxvre_volume_size_1": "50.0",
@@ -989,7 +987,7 @@ describe('Network popup', function () {
                     "vmxvre_ore_present": "0",
                     "vmxvre_volume_name_0": "vREXI_FBVolume",
                     "vmxvre_type": "0",
-                    "vnf_instance_name": "get_input:2017488_adiodvpe0_vnf_instance_name",
+                    "vnf_instance_name": "get_input:2017488_pasqualevpe0_vnf_instance_name",
                     "vmxvpfe_sriov41_0_port_unknownmulticastallow": "true",
                     "oam_net_id": "b95eeb1d-d55d-4827-abb4-8ebb94941429",
                     "vmx_int_ctl_len": "24",
@@ -1003,16 +1001,16 @@ describe('Network popup', function () {
                     "vmxvpfe_flavor_name": "ns.c20r16d25.v5"
                   },
                   "type": "VF",
-                  "modelCustomizationName": "2017-388_ADIOD-vPE 0",
+                  "modelCustomizationName": "2017-388_PASQUALE-vPE 0",
                   "vfModules": {},
                   "volumeGroups": {},
                   "vfcInstanceGroups": {}
                 },
-                "2017-488_ADIOD-vPE 0": {
+                "2017-488_PASQUALE-vPE 0": {
                   "uuid": "69e09f68-8b63-4cc9-b9ff-860960b5db09",
                   "invariantUuid": "72e465fe-71b1-4e7b-b5ed-9496118ff7a8",
-                  "description": "Name ADIOD vPE Description The provider edge function for the ADIOD service supported by the Junipers VMX product Category Router Vendor Juniper Vendor Release Code 17.2 Owners Mary Fragale. Updated 9-25 to use v8.0 of the Juniper Valid 2 VLM",
-                  "name": "2017-488_ADIOD-vPE",
+                  "description": "Name PASQUALE vPE Description The provider edge function for the PASQUALE service supported by the Junipers VMX product Category Router Vendor Juniper Vendor Release Code 17.2 Owners Mary Fragale. Updated 9-25 to use v8.0 of the Juniper Valid 2 VLM",
+                  "name": "2017-488_PASQUALE-vPE",
                   "version": "5.0",
                   "customizationUuid": "1da7b585-5e61-4993-b95e-8e6606c81e45",
                   "inputs": {
@@ -1075,37 +1073,37 @@ describe('Network popup', function () {
                     "vnf_config_template_version": {
                       "displayName": "vnf_config_template_version",
                       "command": "get_input",
-                      "inputName": "2017488_adiodvpe0_vnf_config_template_version"
+                      "inputName": "2017488_pasqualevpe0_vnf_config_template_version"
                     },
                     "bandwidth_units": {
                       "displayName": "bandwidth_units",
                       "command": "get_input",
-                      "inputName": "adiodvpe0_bandwidth_units"
+                      "inputName": "pasqualevpe0_bandwidth_units"
                     },
                     "bandwidth": {
                       "displayName": "bandwidth",
                       "command": "get_input",
-                      "inputName": "adiodvpe0_bandwidth"
+                      "inputName": "pasqualevpe0_bandwidth"
                     },
                     "AIC_CLLI": {
                       "displayName": "AIC_CLLI",
                       "command": "get_input",
-                      "inputName": "2017488_adiodvpe0_AIC_CLLI"
+                      "inputName": "2017488_pasqualevpe0_AIC_CLLI"
                     },
                     "ASN": {
                       "displayName": "ASN",
                       "command": "get_input",
-                      "inputName": "2017488_adiodvpe0_ASN"
+                      "inputName": "2017488_pasqualevpe0_ASN"
                     },
                     "vnf_instance_name": {
                       "displayName": "vnf_instance_name",
                       "command": "get_input",
-                      "inputName": "2017488_adiodvpe0_vnf_instance_name"
+                      "inputName": "2017488_pasqualevpe0_vnf_instance_name"
                     }
                   },
                   "properties": {
                     "vmxvre_retype": "RE-VMX",
-                    "vnf_config_template_version": "get_input:2017488_adiodvpe0_vnf_config_template_version",
+                    "vnf_config_template_version": "get_input:2017488_pasqualevpe0_vnf_config_template_version",
                     "sriov44_net_id": "48d399b3-11ee-48a8-94d2-f0ea94d6be8d",
                     "int_ctl_net_id": "2f323477-6936-4d01-ac53-d849430281d9",
                     "vmxvpfe_sriov41_0_port_mac": "00:11:22:EF:AC:DF",
@@ -1152,7 +1150,7 @@ describe('Network popup', function () {
                     "vmxvpfe_sriov43_0_port_unknownmulticastallow": "true",
                     "vmxvre_int_ctl_ip_0": "10.0.0.10",
                     "ecomp_generated_naming": "false",
-                    "AIC_CLLI": "get_input:2017488_adiodvpe0_AIC_CLLI",
+                    "AIC_CLLI": "get_input:2017488_pasqualevpe0_AIC_CLLI",
                     "vnf_name": "mtnj309me6vre",
                     "vmxvpfe_sriov41_0_port_unknownunicastallow": "true",
                     "vmxvre_volume_type_1": "HITACHI",
@@ -1160,14 +1158,14 @@ describe('Network popup', function () {
                     "vmxvre_volume_type_0": "HITACHI",
                     "vmxvpfe_volume_type_0": "HITACHI",
                     "vmxvpfe_sriov43_0_port_broadcastallow": "true",
-                    "bandwidth_units": "get_input:adiodvpe0_bandwidth_units",
+                    "bandwidth_units": "get_input:pasqualevpe0_bandwidth_units",
                     "vnf_id": "123",
                     "vmxvre_oam_prefix": "24",
                     "availability_zone_0": "mtpocfo-kvm-az01",
-                    "ASN": "get_input:2017488_adiodvpe0_ASN",
+                    "ASN": "get_input:2017488_pasqualevpe0_ASN",
                     "vmxvre_chassis_i2cid": "161",
                     "vmxvpfe_name_0": "vPFEXI",
-                    "bandwidth": "get_input:adiodvpe0_bandwidth",
+                    "bandwidth": "get_input:pasqualevpe0_bandwidth",
                     "availability_zone_max_count": "1",
                     "vmxvre_volume_size_0": "45.0",
                     "vmxvre_volume_size_1": "50.0",
@@ -1177,7 +1175,7 @@ describe('Network popup', function () {
                     "vmxvre_ore_present": "0",
                     "vmxvre_volume_name_0": "vREXI_FBVolume",
                     "vmxvre_type": "0",
-                    "vnf_instance_name": "get_input:2017488_adiodvpe0_vnf_instance_name",
+                    "vnf_instance_name": "get_input:2017488_pasqualevpe0_vnf_instance_name",
                     "vmxvpfe_sriov41_0_port_unknownmulticastallow": "true",
                     "oam_net_id": "b95eeb1d-d55d-4827-abb4-8ebb94941429",
                     "vmx_int_ctl_len": "24",
@@ -1191,82 +1189,82 @@ describe('Network popup', function () {
                     "vmxvpfe_flavor_name": "ns.c20r16d25.v5"
                   },
                   "type": "VF",
-                  "modelCustomizationName": "2017-488_ADIOD-vPE 0",
+                  "modelCustomizationName": "2017-488_PASQUALE-vPE 0",
                   "vfModules": {
-                    "2017488_adiodvpe0..2017488AdiodVpe..ADIOD_vRE_BV..module-1": {
+                    "2017488_pasqualevpe0..2017488PasqualeVpe..PASQUALE_vRE_BV..module-1": {
                       "uuid": "25284168-24bb-4698-8cb4-3f509146eca5",
                       "invariantUuid": "7253ff5c-97f0-4b8b-937c-77aeb4d79aa1",
                       "customizationUuid": "f7e7c365-60cf-49a9-9ebf-a1aa11b9d401",
                       "description": null,
-                      "name": "2017488AdiodVpe..ADIOD_vRE_BV..module-1",
+                      "name": "2017488PasqualeVpe..PASQUALE_vRE_BV..module-1",
                       "version": "6",
-                      "modelCustomizationName": "2017488AdiodVpe..ADIOD_vRE_BV..module-1",
+                      "modelCustomizationName": "2017488PasqualeVpe..PASQUALE_vRE_BV..module-1",
                       "properties": {
                         "minCountInstances": 0,
                         "maxCountInstances": null,
                         "initialCount": 0,
-                        "vfModuleLabel": "ADIOD_vRE_BV"
+                        "vfModuleLabel": "PASQUALE_vRE_BV"
                       },
                       "inputs": {
-                        "adiodvpe0_bandwidth": {
+                        "pasqualevpe0_bandwidth": {
                           "type": "string",
                           "description": "Requested VPE bandwidth",
                           "entry_schema": null,
                           "inputProperties": {
                             "sourceType": "HEAT",
-                            "vfModuleLabel": "ADIOD_vRE_BV",
+                            "vfModuleLabel": "PASQUALE_vRE_BV",
                             "paramName": "bandwidth"
                           },
                           "constraints": null,
                           "required": true,
                           "default": "10"
                         },
-                        "2017488_adiodvpe0_vnf_instance_name": {
+                        "2017488_pasqualevpe0_vnf_instance_name": {
                           "type": "string",
                           "description": "The hostname assigned to the vpe.",
                           "entry_schema": null,
                           "inputProperties": {
                             "sourceType": "HEAT",
-                            "vfModuleLabel": "ADIOD_vRE_BV",
+                            "vfModuleLabel": "PASQUALE_vRE_BV",
                             "paramName": "vnf_instance_name"
                           },
                           "constraints": null,
                           "required": true,
                           "default": "mtnj309me6"
                         },
-                        "2017488_adiodvpe0_vnf_config_template_version": {
+                        "2017488_pasqualevpe0_vnf_config_template_version": {
                           "type": "string",
                           "description": "VPE Software Version",
                           "entry_schema": null,
                           "inputProperties": {
                             "sourceType": "HEAT",
-                            "vfModuleLabel": "ADIOD_vRE_BV",
+                            "vfModuleLabel": "PASQUALE_vRE_BV",
                             "paramName": "vnf_config_template_version"
                           },
                           "constraints": null,
                           "required": true,
                           "default": "17.2"
                         },
-                        "2017488_adiodvpe0_AIC_CLLI": {
+                        "2017488_pasqualevpe0_AIC_CLLI": {
                           "type": "string",
                           "description": "AIC Site CLLI",
                           "entry_schema": null,
                           "inputProperties": {
                             "sourceType": "HEAT",
-                            "vfModuleLabel": "ADIOD_vRE_BV",
+                            "vfModuleLabel": "PASQUALE_vRE_BV",
                             "paramName": "AIC_CLLI"
                           },
                           "constraints": null,
                           "required": true,
                           "default": "ATLMY8GA"
                         },
-                        "adiodvpe0_bandwidth_units": {
+                        "pasqualevpe0_bandwidth_units": {
                           "type": "string",
                           "description": "Units of bandwidth",
                           "entry_schema": null,
                           "inputProperties": {
                             "sourceType": "HEAT",
-                            "vfModuleLabel": "ADIOD_vRE_BV",
+                            "vfModuleLabel": "PASQUALE_vRE_BV",
                             "paramName": "bandwidth_units"
                           },
                           "constraints": null,
@@ -1276,116 +1274,116 @@ describe('Network popup', function () {
                       },
                       "volumeGroupAllowed": true
                     },
-                    "2017488_adiodvpe0..2017488AdiodVpe..ADIOD_base_vPE_BV..module-0": {
+                    "2017488_pasqualevpe0..2017488PasqualeVpe..PASQUALE_base_vPE_BV..module-0": {
                       "uuid": "f8360508-3f17-4414-a2ed-6bc71161e8db",
                       "invariantUuid": "b34833bb-6aa9-4ad6-a831-70b06367a091",
                       "customizationUuid": "a55961b2-2065-4ab0-a5b7-2fcee1c227e3",
                       "description": null,
-                      "name": "2017488AdiodVpe..ADIOD_base_vPE_BV..module-0",
+                      "name": "2017488PasqualeVpe..PASQUALE_base_vPE_BV..module-0",
                       "version": "5",
-                      "modelCustomizationName": "2017488AdiodVpe..ADIOD_base_vPE_BV..module-0",
+                      "modelCustomizationName": "2017488PasqualeVpe..PASQUALE_base_vPE_BV..module-0",
                       "properties": {
                         "minCountInstances": 1,
                         "maxCountInstances": 1,
                         "initialCount": 1,
-                        "vfModuleLabel": "ADIOD_base_vPE_BV"
+                        "vfModuleLabel": "PASQUALE_base_vPE_BV"
                       },
                       "inputs": {},
                       "volumeGroupAllowed": false
                     },
-                    "2017488_adiodvpe0..2017488AdiodVpe..ADIOD_vPFE_BV..module-2": {
+                    "2017488_pasqualevpe0..2017488PasqualeVpe..PASQUALE_vPFE_BV..module-2": {
                       "uuid": "0a0dd9d4-31d3-4c3a-ae89-a02f383e6a9a",
                       "invariantUuid": "eff8cc59-53a1-4101-aed7-8cf24ecf8339",
                       "customizationUuid": "3cd946bb-50e0-40d8-96d3-c9023520b557",
                       "description": null,
-                      "name": "2017488AdiodVpe..ADIOD_vPFE_BV..module-2",
+                      "name": "2017488PasqualeVpe..PASQUALE_vPFE_BV..module-2",
                       "version": "6",
-                      "modelCustomizationName": "2017488AdiodVpe..ADIOD_vPFE_BV..module-2",
+                      "modelCustomizationName": "2017488PasqualeVpe..PASQUALE_vPFE_BV..module-2",
                       "properties": {
                         "minCountInstances": 0,
                         "maxCountInstances": null,
                         "initialCount": 0,
-                        "vfModuleLabel": "ADIOD_vPFE_BV"
+                        "vfModuleLabel": "PASQUALE_vPFE_BV"
                       },
                       "inputs": {},
                       "volumeGroupAllowed": true
                     }
                   },
                   "volumeGroups": {
-                    "2017488_adiodvpe0..2017488AdiodVpe..ADIOD_vRE_BV..module-1": {
+                    "2017488_pasqualevpe0..2017488PasqualeVpe..PASQUALE_vRE_BV..module-1": {
                       "uuid": "25284168-24bb-4698-8cb4-3f509146eca5",
                       "invariantUuid": "7253ff5c-97f0-4b8b-937c-77aeb4d79aa1",
                       "customizationUuid": "f7e7c365-60cf-49a9-9ebf-a1aa11b9d401",
                       "description": null,
-                      "name": "2017488AdiodVpe..ADIOD_vRE_BV..module-1",
+                      "name": "2017488PasqualeVpe..PASQUALE_vRE_BV..module-1",
                       "version": "6",
-                      "modelCustomizationName": "2017488AdiodVpe..ADIOD_vRE_BV..module-1",
+                      "modelCustomizationName": "2017488PasqualeVpe..PASQUALE_vRE_BV..module-1",
                       "properties": {
                         "minCountInstances": 0,
                         "maxCountInstances": null,
                         "initialCount": 0,
-                        "vfModuleLabel": "ADIOD_vRE_BV"
+                        "vfModuleLabel": "PASQUALE_vRE_BV"
                       },
                       "inputs": {
-                        "adiodvpe0_bandwidth": {
+                        "pasqualevpe0_bandwidth": {
                           "type": "string",
                           "description": "Requested VPE bandwidth",
                           "entry_schema": null,
                           "inputProperties": {
                             "sourceType": "HEAT",
-                            "vfModuleLabel": "ADIOD_vRE_BV",
+                            "vfModuleLabel": "PASQUALE_vRE_BV",
                             "paramName": "bandwidth"
                           },
                           "constraints": null,
                           "required": true,
                           "default": "10"
                         },
-                        "2017488_adiodvpe0_vnf_instance_name": {
+                        "2017488_pasqualevpe0_vnf_instance_name": {
                           "type": "string",
                           "description": "The hostname assigned to the vpe.",
                           "entry_schema": null,
                           "inputProperties": {
                             "sourceType": "HEAT",
-                            "vfModuleLabel": "ADIOD_vRE_BV",
+                            "vfModuleLabel": "PASQUALE_vRE_BV",
                             "paramName": "vnf_instance_name"
                           },
                           "constraints": null,
                           "required": true,
                           "default": "mtnj309me6"
                         },
-                        "2017488_adiodvpe0_vnf_config_template_version": {
+                        "2017488_pasqualevpe0_vnf_config_template_version": {
                           "type": "string",
                           "description": "VPE Software Version",
                           "entry_schema": null,
                           "inputProperties": {
                             "sourceType": "HEAT",
-                            "vfModuleLabel": "ADIOD_vRE_BV",
+                            "vfModuleLabel": "PASQUALE_vRE_BV",
                             "paramName": "vnf_config_template_version"
                           },
                           "constraints": null,
                           "required": true,
                           "default": "17.2"
                         },
-                        "2017488_adiodvpe0_AIC_CLLI": {
+                        "2017488_pasqualevpe0_AIC_CLLI": {
                           "type": "string",
                           "description": "AIC Site CLLI",
                           "entry_schema": null,
                           "inputProperties": {
                             "sourceType": "HEAT",
-                            "vfModuleLabel": "ADIOD_vRE_BV",
+                            "vfModuleLabel": "PASQUALE_vRE_BV",
                             "paramName": "AIC_CLLI"
                           },
                           "constraints": null,
                           "required": true,
                           "default": "ATLMY8GA"
                         },
-                        "adiodvpe0_bandwidth_units": {
+                        "pasqualevpe0_bandwidth_units": {
                           "type": "string",
                           "description": "Units of bandwidth",
                           "entry_schema": null,
                           "inputProperties": {
                             "sourceType": "HEAT",
-                            "vfModuleLabel": "ADIOD_vRE_BV",
+                            "vfModuleLabel": "PASQUALE_vRE_BV",
                             "paramName": "bandwidth_units"
                           },
                           "constraints": null,
@@ -1394,19 +1392,19 @@ describe('Network popup', function () {
                         }
                       }
                     },
-                    "2017488_adiodvpe0..2017488AdiodVpe..ADIOD_vPFE_BV..module-2": {
+                    "2017488_pasqualevpe0..2017488PasqualeVpe..PASQUALE_vPFE_BV..module-2": {
                       "uuid": "0a0dd9d4-31d3-4c3a-ae89-a02f383e6a9a",
                       "invariantUuid": "eff8cc59-53a1-4101-aed7-8cf24ecf8339",
                       "customizationUuid": "3cd946bb-50e0-40d8-96d3-c9023520b557",
                       "description": null,
-                      "name": "2017488AdiodVpe..ADIOD_vPFE_BV..module-2",
+                      "name": "2017488PasqualeVpe..PASQUALE_vPFE_BV..module-2",
                       "version": "6",
-                      "modelCustomizationName": "2017488AdiodVpe..ADIOD_vPFE_BV..module-2",
+                      "modelCustomizationName": "2017488PasqualeVpe..PASQUALE_vPFE_BV..module-2",
                       "properties": {
                         "minCountInstances": 0,
                         "maxCountInstances": null,
                         "initialCount": 0,
-                        "vfModuleLabel": "ADIOD_vPFE_BV"
+                        "vfModuleLabel": "PASQUALE_vPFE_BV"
                       },
                       "inputs": {}
                     }
@@ -1436,85 +1434,85 @@ describe('Network popup', function () {
                   "modelCustomizationName": "ExtVL 0"
                 }
               },
-              "collectionResource": {},
+              "collectionResources": {},
               "configurations": {},
               "fabricConfigurations": {},
               "serviceProxies": {},
               "vfModules": {
-                "2017488_adiodvpe0..2017488AdiodVpe..ADIOD_vRE_BV..module-1": {
+                "2017488_pasqualevpe0..2017488PasqualeVpe..PASQUALE_vRE_BV..module-1": {
                   "uuid": "25284168-24bb-4698-8cb4-3f509146eca5",
                   "invariantUuid": "7253ff5c-97f0-4b8b-937c-77aeb4d79aa1",
                   "customizationUuid": "f7e7c365-60cf-49a9-9ebf-a1aa11b9d401",
                   "description": null,
-                  "name": "2017488AdiodVpe..ADIOD_vRE_BV..module-1",
+                  "name": "2017488PasqualeVpe..PASQUALE_vRE_BV..module-1",
                   "version": "6",
-                  "modelCustomizationName": "2017488AdiodVpe..ADIOD_vRE_BV..module-1",
+                  "modelCustomizationName": "2017488PasqualeVpe..PASQUALE_vRE_BV..module-1",
                   "properties": {
                     "minCountInstances": 0,
                     "maxCountInstances": null,
                     "initialCount": 0,
-                    "vfModuleLabel": "ADIOD_vRE_BV"
+                    "vfModuleLabel": "PASQUALE_vRE_BV"
                   },
                   "inputs": {
-                    "adiodvpe0_bandwidth": {
+                    "pasqualevpe0_bandwidth": {
                       "type": "string",
                       "description": "Requested VPE bandwidth",
                       "entry_schema": null,
                       "inputProperties": {
                         "sourceType": "HEAT",
-                        "vfModuleLabel": "ADIOD_vRE_BV",
+                        "vfModuleLabel": "PASQUALE_vRE_BV",
                         "paramName": "bandwidth"
                       },
                       "constraints": null,
                       "required": true,
                       "default": "10"
                     },
-                    "2017488_adiodvpe0_vnf_instance_name": {
+                    "2017488_pasqualevpe0_vnf_instance_name": {
                       "type": "string",
                       "description": "The hostname assigned to the vpe.",
                       "entry_schema": null,
                       "inputProperties": {
                         "sourceType": "HEAT",
-                        "vfModuleLabel": "ADIOD_vRE_BV",
+                        "vfModuleLabel": "PASQUALE_vRE_BV",
                         "paramName": "vnf_instance_name"
                       },
                       "constraints": null,
                       "required": true,
                       "default": "mtnj309me6"
                     },
-                    "2017488_adiodvpe0_vnf_config_template_version": {
+                    "2017488_pasqualevpe0_vnf_config_template_version": {
                       "type": "string",
                       "description": "VPE Software Version",
                       "entry_schema": null,
                       "inputProperties": {
                         "sourceType": "HEAT",
-                        "vfModuleLabel": "ADIOD_vRE_BV",
+                        "vfModuleLabel": "PASQUALE_vRE_BV",
                         "paramName": "vnf_config_template_version"
                       },
                       "constraints": null,
                       "required": true,
                       "default": "17.2"
                     },
-                    "2017488_adiodvpe0_AIC_CLLI": {
+                    "2017488_pasqualevpe0_AIC_CLLI": {
                       "type": "string",
                       "description": "AIC Site CLLI",
                       "entry_schema": null,
                       "inputProperties": {
                         "sourceType": "HEAT",
-                        "vfModuleLabel": "ADIOD_vRE_BV",
+                        "vfModuleLabel": "PASQUALE_vRE_BV",
                         "paramName": "AIC_CLLI"
                       },
                       "constraints": null,
                       "required": true,
                       "default": "ATLMY8GA"
                     },
-                    "adiodvpe0_bandwidth_units": {
+                    "pasqualevpe0_bandwidth_units": {
                       "type": "string",
                       "description": "Units of bandwidth",
                       "entry_schema": null,
                       "inputProperties": {
                         "sourceType": "HEAT",
-                        "vfModuleLabel": "ADIOD_vRE_BV",
+                        "vfModuleLabel": "PASQUALE_vRE_BV",
                         "paramName": "bandwidth_units"
                       },
                       "constraints": null,
@@ -1524,116 +1522,116 @@ describe('Network popup', function () {
                   },
                   "volumeGroupAllowed": true
                 },
-                "2017488_adiodvpe0..2017488AdiodVpe..ADIOD_base_vPE_BV..module-0": {
+                "2017488_pasqualevpe0..2017488PasqualeVpe..PASQUALE_base_vPE_BV..module-0": {
                   "uuid": "f8360508-3f17-4414-a2ed-6bc71161e8db",
                   "invariantUuid": "b34833bb-6aa9-4ad6-a831-70b06367a091",
                   "customizationUuid": "a55961b2-2065-4ab0-a5b7-2fcee1c227e3",
                   "description": null,
-                  "name": "2017488AdiodVpe..ADIOD_base_vPE_BV..module-0",
+                  "name": "2017488PasqualeVpe..PASQUALE_base_vPE_BV..module-0",
                   "version": "5",
-                  "modelCustomizationName": "2017488AdiodVpe..ADIOD_base_vPE_BV..module-0",
+                  "modelCustomizationName": "2017488PasqualeVpe..PASQUALE_base_vPE_BV..module-0",
                   "properties": {
                     "minCountInstances": 1,
                     "maxCountInstances": 1,
                     "initialCount": 1,
-                    "vfModuleLabel": "ADIOD_base_vPE_BV"
+                    "vfModuleLabel": "PASQUALE_base_vPE_BV"
                   },
                   "inputs": {},
                   "volumeGroupAllowed": false
                 },
-                "2017488_adiodvpe0..2017488AdiodVpe..ADIOD_vPFE_BV..module-2": {
+                "2017488_pasqualevpe0..2017488PasqualeVpe..PASQUALE_vPFE_BV..module-2": {
                   "uuid": "0a0dd9d4-31d3-4c3a-ae89-a02f383e6a9a",
                   "invariantUuid": "eff8cc59-53a1-4101-aed7-8cf24ecf8339",
                   "customizationUuid": "3cd946bb-50e0-40d8-96d3-c9023520b557",
                   "description": null,
-                  "name": "2017488AdiodVpe..ADIOD_vPFE_BV..module-2",
+                  "name": "2017488PasqualeVpe..PASQUALE_vPFE_BV..module-2",
                   "version": "6",
-                  "modelCustomizationName": "2017488AdiodVpe..ADIOD_vPFE_BV..module-2",
+                  "modelCustomizationName": "2017488PasqualeVpe..PASQUALE_vPFE_BV..module-2",
                   "properties": {
                     "minCountInstances": 0,
                     "maxCountInstances": null,
                     "initialCount": 0,
-                    "vfModuleLabel": "ADIOD_vPFE_BV"
+                    "vfModuleLabel": "PASQUALE_vPFE_BV"
                   },
                   "inputs": {},
                   "volumeGroupAllowed": true
                 }
               },
               "volumeGroups": {
-                "2017488_adiodvpe0..2017488AdiodVpe..ADIOD_vRE_BV..module-1": {
+                "2017488_pasqualevpe0..2017488PasqualeVpe..PASQUALE_vRE_BV..module-1": {
                   "uuid": "25284168-24bb-4698-8cb4-3f509146eca5",
                   "invariantUuid": "7253ff5c-97f0-4b8b-937c-77aeb4d79aa1",
                   "customizationUuid": "f7e7c365-60cf-49a9-9ebf-a1aa11b9d401",
                   "description": null,
-                  "name": "2017488AdiodVpe..ADIOD_vRE_BV..module-1",
+                  "name": "2017488PasqualeVpe..PASQUALE_vRE_BV..module-1",
                   "version": "6",
-                  "modelCustomizationName": "2017488AdiodVpe..ADIOD_vRE_BV..module-1",
+                  "modelCustomizationName": "2017488PasqualeVpe..PASQUALE_vRE_BV..module-1",
                   "properties": {
                     "minCountInstances": 0,
                     "maxCountInstances": null,
                     "initialCount": 0,
-                    "vfModuleLabel": "ADIOD_vRE_BV"
+                    "vfModuleLabel": "PASQUALE_vRE_BV"
                   },
                   "inputs": {
-                    "adiodvpe0_bandwidth": {
+                    "pasqualevpe0_bandwidth": {
                       "type": "string",
                       "description": "Requested VPE bandwidth",
                       "entry_schema": null,
                       "inputProperties": {
                         "sourceType": "HEAT",
-                        "vfModuleLabel": "ADIOD_vRE_BV",
+                        "vfModuleLabel": "PASQUALE_vRE_BV",
                         "paramName": "bandwidth"
                       },
                       "constraints": null,
                       "required": true,
                       "default": "10"
                     },
-                    "2017488_adiodvpe0_vnf_instance_name": {
+                    "2017488_pasqualevpe0_vnf_instance_name": {
                       "type": "string",
                       "description": "The hostname assigned to the vpe.",
                       "entry_schema": null,
                       "inputProperties": {
                         "sourceType": "HEAT",
-                        "vfModuleLabel": "ADIOD_vRE_BV",
+                        "vfModuleLabel": "PASQUALE_vRE_BV",
                         "paramName": "vnf_instance_name"
                       },
                       "constraints": null,
                       "required": true,
                       "default": "mtnj309me6"
                     },
-                    "2017488_adiodvpe0_vnf_config_template_version": {
+                    "2017488_pasqualevpe0_vnf_config_template_version": {
                       "type": "string",
                       "description": "VPE Software Version",
                       "entry_schema": null,
                       "inputProperties": {
                         "sourceType": "HEAT",
-                        "vfModuleLabel": "ADIOD_vRE_BV",
+                        "vfModuleLabel": "PASQUALE_vRE_BV",
                         "paramName": "vnf_config_template_version"
                       },
                       "constraints": null,
                       "required": true,
                       "default": "17.2"
                     },
-                    "2017488_adiodvpe0_AIC_CLLI": {
+                    "2017488_pasqualevpe0_AIC_CLLI": {
                       "type": "string",
                       "description": "AIC Site CLLI",
                       "entry_schema": null,
                       "inputProperties": {
                         "sourceType": "HEAT",
-                        "vfModuleLabel": "ADIOD_vRE_BV",
+                        "vfModuleLabel": "PASQUALE_vRE_BV",
                         "paramName": "AIC_CLLI"
                       },
                       "constraints": null,
                       "required": true,
                       "default": "ATLMY8GA"
                     },
-                    "adiodvpe0_bandwidth_units": {
+                    "pasqualevpe0_bandwidth_units": {
                       "type": "string",
                       "description": "Units of bandwidth",
                       "entry_schema": null,
                       "inputProperties": {
                         "sourceType": "HEAT",
-                        "vfModuleLabel": "ADIOD_vRE_BV",
+                        "vfModuleLabel": "PASQUALE_vRE_BV",
                         "paramName": "bandwidth_units"
                       },
                       "constraints": null,
@@ -1642,19 +1640,19 @@ describe('Network popup', function () {
                     }
                   }
                 },
-                "2017488_adiodvpe0..2017488AdiodVpe..ADIOD_vPFE_BV..module-2": {
+                "2017488_pasqualevpe0..2017488PasqualeVpe..PASQUALE_vPFE_BV..module-2": {
                   "uuid": "0a0dd9d4-31d3-4c3a-ae89-a02f383e6a9a",
                   "invariantUuid": "eff8cc59-53a1-4101-aed7-8cf24ecf8339",
                   "customizationUuid": "3cd946bb-50e0-40d8-96d3-c9023520b557",
                   "description": null,
-                  "name": "2017488AdiodVpe..ADIOD_vPFE_BV..module-2",
+                  "name": "2017488PasqualeVpe..PASQUALE_vPFE_BV..module-2",
                   "version": "6",
-                  "modelCustomizationName": "2017488AdiodVpe..ADIOD_vPFE_BV..module-2",
+                  "modelCustomizationName": "2017488PasqualeVpe..PASQUALE_vPFE_BV..module-2",
                   "properties": {
                     "minCountInstances": 0,
                     "maxCountInstances": null,
                     "initialCount": 0,
-                    "vfModuleLabel": "ADIOD_vPFE_BV"
+                    "vfModuleLabel": "PASQUALE_vPFE_BV"
                   },
                   "inputs": {}
                 }
@@ -1665,21 +1663,21 @@ describe('Network popup', function () {
           "serviceInstance": {
             "6e59c5de-f052-46fa-aa7e-2fca9d674c44": {
               "vnfs": {
-                "VF_vMee 0": {
+                "VF_vGeraldine 0": {
                   "rollbackOnFailure": "true",
                   "vfModules": {
-                    "vf_vmee0..VfVmee..base_vmme..module-0": {
-                      "vf_vmee0..VfVmee..base_vmme..module-0vmvzo": {
+                    "vf_vgeraldine0..VfVgeraldine..base_vflorence..module-0": {
+                      "vf_vgeraldine0..VfVgeraldine..base_vflorence..module-0vmvzo": {
                         "isMissingData": false,
                         "sdncPreReload": null,
                         "modelInfo": {
                           "modelType": "VFmodule",
                           "modelInvariantId": "a6f9e51a-2b35-416a-ae15-15e58d61f36d",
                           "modelVersionId": "a27f5cfc-7f12-4f99-af08-0af9c3885c87",
-                          "modelName": "VfVmee..base_vmme..module-0",
+                          "modelName": "VfVgeraldine..base_vflorence..module-0",
                           "modelVersion": "2",
                           "modelCustomizationId": "f8c040f1-7e51-4a11-aca8-acf256cfd861",
-                          "modelCustomizationName": "VfVmee..base_vmme..module-0"
+                          "modelCustomizationName": "VfVgeraldine..base_vflorence..module-0"
                         },
                         "instanceParams": [
                           {}
@@ -1689,8 +1687,8 @@ describe('Network popup', function () {
                     }
                   },
                   "isMissingData": true,
-                  "originalName": "VF_vMee 0",
-                  "vnfStoreKey": "VF_vMee 0",
+                  "originalName": "VF_vGeraldine 0",
+                  "vnfStoreKey": "VF_vGeraldine 0",
                   "trackById": "p3wk448m5do",
                   "uuid": "d6557200-ecf2-4641-8094-5393ae3aae60",
                   "productFamilyId": "36b4733a-53f4-4cc8-8ff0-9172e5fc4b8e",
@@ -1702,9 +1700,9 @@ describe('Network popup', function () {
                     "modelType": "VF",
                     "modelInvariantId": "4160458e-f648-4b30-a176-43881ffffe9e",
                     "modelVersionId": "6e59c5de-f052-46fa-aa7e-2fca9d674c44",
-                    "modelName": "VF_vMee",
+                    "modelName": "VF_vGeraldine",
                     "modelVersion": "2.0",
-                    "modelCustomizationName": "VF_vMee 0"
+                    "modelCustomizationName": "VF_vGeraldine 0"
                   }
                 }
               },
@@ -1750,7 +1748,7 @@ describe('Network popup', function () {
               "vnfs": {},
               "instanceParams": [
                 {
-                  "2017488_adiodvpe0_ASN": "AV_vPE"
+                  "2017488_pasqualevpe0_ASN": "AV_vPE"
                 }
               ],
               "validationCounter": 0,
@@ -1766,7 +1764,7 @@ describe('Network popup', function () {
               "subscriptionServiceType": "TYLER SILVIA",
               "owningEntityId": "d61e6f2d-12fa-4cc2-91df-7c244011d6fc",
               "productFamilyId": "17cc1042-527b-11e6-beb8-9e71128cae77",
-              "lcpCloudRegionId": "JANET25",
+              "lcpCloudRegionId": "AAIAIC25",
               "tenantId": "092eb9e8e4b7412e8787dd091bc58e86",
               "aicZoneId": "JAG1",
               "projectName": null,
@@ -1798,8 +1796,8 @@ describe('Network popup', function () {
           "lcpRegionsAndTenants": {
             "lcpRegionList": [
               {
-                "id": "JANET25",
-                "name": "JANET25",
+                "id": "AAIAIC25",
+                "name": "AAIAIC25",
                 "isPermitted": true
               },
               {
@@ -1809,7 +1807,7 @@ describe('Network popup', function () {
               }
             ],
             "lcpRegionsTenantsMap": {
-              "JANET25": [
+              "AAIAIC25": [
                 {
                   "id": "092eb9e8e4b7412e8787dd091bc58e86",
                   "name": "USP-SIP-IC-24335-T-01",
@@ -1823,8 +1821,128 @@ describe('Network popup', function () {
                   "isPermitted": true
                 },
                 {
-                  "id": "d0a3e3f2964542259d155a81c41aadc3",
-                  "name": "test-hvf6-09",
+                  "id": "229bcdc6eaeb4ca59d55221141d01f8e",
+                  "name": "AIN Web Tool-15-D-STTest2",
+                  "isPermitted": true
+                },
+                {
+                  "id": "1178612d2b394be4834ad77f567c0af2",
+                  "name": "AIN Web Tool-15-D-SSPtestcustome",
+                  "isPermitted": true
+                },
+                {
+                  "id": "19c5ade915eb461e8af52fb2fd8cd1f2",
+                  "name": "AIN Web Tool-15-D-UncheckedEcopm",
+                  "isPermitted": true
+                },
+                {
+                  "id": "de007636e25249238447264a988a927b",
+                  "name": "AIN Web Tool-15-D-dfsdf",
+                  "isPermitted": true
+                },
+                {
+                  "id": "62f29b3613634ca6a3065cbe0e020c44",
+                  "name": "AIN/SMS-16-D-Multiservices1",
+                  "isPermitted": true
+                },
+                {
+                  "id": "649289e30d3244e0b48098114d63c2aa",
+                  "name": "AIN Web Tool-15-D-SSPST66",
+                  "isPermitted": true
+                },
+                {
+                  "id": "3f21eeea6c2c486bba31dab816c05a32",
+                  "name": "AIN Web Tool-15-D-ASSPST47",
+                  "isPermitted": true
+                },
+                {
+                  "id": "f60ce21d3ee6427586cff0d22b03b773",
+                  "name": "CESAR-100-D-sspjg67246",
+                  "isPermitted": true
+                },
+                {
+                  "id": "8774659e425f479895ae091bb5d46560",
+                  "name": "CESAR-100-D-sspjg68359",
+                  "isPermitted": true
+                },
+                {
+                  "id": "624eb554b0d147c19ff8885341760481",
+                  "name": "AINWebTool-15-D-iftach",
+                  "isPermitted": true
+                },
+                {
+                  "id": "214f55f5fc414c678059c383b03e4962",
+                  "name": "CESAR-100-D-sspjg612401",
+                  "isPermitted": true
+                },
+                {
+                  "id": "c90666c291664841bb98e4d981ff1db5",
+                  "name": "CESAR-100-D-sspjg621340",
+                  "isPermitted": true
+                },
+                {
+                  "id": "ce5b6bc5c7b348e1bf4b91ac9a174278",
+                  "name": "sspjg621351cloned",
+                  "isPermitted": true
+                },
+                {
+                  "id": "b386b768a3f24c8e953abbe0b3488c02",
+                  "name": "AINWebTool-15-D-eteancomp",
+                  "isPermitted": true
+                },
+                {
+                  "id": "dc6c4dbfd225474e9deaadd34968646c",
+                  "name": "AINWebTool-15-T-SPFET",
+                  "isPermitted": true
+                },
+                {
+                  "id": "02cb5030e9914aa4be120bd9ed1e19eb",
+                  "name": "AINWebTool-15-X-eeweww",
+                  "isPermitted": true
+                },
+                {
+                  "id": "f2f3830e4c984d45bcd00e1a04158a79",
+                  "name": "CESAR-100-D-spjg61909",
+                  "isPermitted": true
+                },
+                {
+                  "id": "05b91bd5137f4929878edd965755c06d",
+                  "name": "CESAR-100-D-sspjg621512cloned",
+                  "isPermitted": true
+                },
+                {
+                  "id": "7002fbe8482d4a989ddf445b1ce336e0",
+                  "name": "AINWebTool-15-X-vdr",
+                  "isPermitted": true
+                },
+                {
+                  "id": "4008522be43741dcb1f5422022a2aa0b",
+                  "name": "AINWebTool-15-D-ssasa",
+                  "isPermitted": true
+                },
+                {
+                  "id": "f44e2e96a1b6476abfda2fa407b00169",
+                  "name": "AINWebTool-15-D-PFNPT",
+                  "isPermitted": true
+                },
+                {
+                  "id": "b69a52bec8a84669a37a1e8b72708be7",
+                  "name": "AINWebTool-15-X-vdre",
+                  "isPermitted": true
+                },
+                {
+                  "id": "fac7d9fd56154caeb9332202dcf2969f",
+                  "name": "AINWebTool-15-X-NONPODECOMP",
+                  "isPermitted": true
+                },
+                {
+                  "id": "2d34d8396e194eb49969fd61ffbff961",
+                  "name": "DN5242-Nov16-T5",
+                  "isPermitted": true
+                },
+                {
+                  "id": "cb42a77ff45b48a8b8deb83bb64acc74",
+                  "name": "ro-T11",
                   "isPermitted": true
                 },
                 {
@@ -1832,6 +1950,16 @@ describe('Network popup', function () {
                   "name": "ro-T112",
                   "isPermitted": true
                 },
+                {
+                  "id": "4914ab0ab3a743e58f0eefdacc1dde77",
+                  "name": "DN5242-Nov21-T1",
+                  "isPermitted": true
+                },
+                {
+                  "id": "d0a3e3f2964542259d155a81c41aadc3",
+                  "name": "test-hvf6-09",
+                  "isPermitted": true
+                },
                 {
                   "id": "cbb99fe4ada84631b7baf046b6fd2044",
                   "name": "DN5242-Nov16-T3",
@@ -1843,7 +1971,7 @@ describe('Network popup', function () {
           "productFamilies": [
             {
               "id": "ebc3bc3d-62fd-4a3f-a037-f619df4ff034",
-              "name": "SCOTTIE",
+              "name": "ERICA",
               "isPermitted": true
             },
             {
@@ -1868,7 +1996,7 @@ describe('Network popup', function () {
             },
             {
               "id": "323d69d9-2efe-4r45-ay0a-89ea7ard4e6f",
-              "name": "vSCP",
+              "name": "vEsmeralda",
               "isPermitted": true
             },
             {
@@ -1912,7 +2040,7 @@ describe('Network popup', function () {
               "isPermitted": true
             },
             {
-              "id": "Cisneros",
+              "id": "vMuriel",
               "name": "vMuriel",
               "isPermitted": true
             },
@@ -1938,7 +2066,7 @@ describe('Network popup', function () {
             },
             {
               "id": "d7bb0a21-66f2-4e6d-87d9-9ef3ced63ae4",
-              "name": "Josefina",
+              "name": "JOSEFINA",
               "isPermitted": true
             },
             {
@@ -1986,7 +2114,7 @@ describe('Network popup', function () {
               },
               {
                 "id": "6",
-                "name": "vSEGW",
+                "name": "vPorfirio",
                 "isPermitted": false
               },
               {
@@ -2001,7 +2129,7 @@ describe('Network popup', function () {
               },
               {
                 "id": "9",
-                "name": "vMME",
+                "name": "vFLORENCE",
                 "isPermitted": false
               },
               {
@@ -2011,7 +2139,7 @@ describe('Network popup', function () {
               },
               {
                 "id": "11",
-                "name": "vSCP",
+                "name": "vEsmeralda",
                 "isPermitted": false
               },
               {
@@ -2021,7 +2149,7 @@ describe('Network popup', function () {
               },
               {
                 "id": "13",
-                "name": "vMMSC",
+                "name": "vWINIFRED",
                 "isPermitted": false
               },
               {
@@ -2064,6 +2192,754 @@ describe('Network popup', function () {
               "id": "YYY1",
               "name": "UUUAIAAI-YYY1"
             },
+            {
+              "id": "BAN1",
+              "name": "VSDKYUTP-BAN1"
+            },
+            {
+              "id": "DKJ1",
+              "name": "DKJSJDKA-DKJ1"
+            },
+            {
+              "id": "MCS1",
+              "name": "ASACMAMS-MCS1"
+            },
+            {
+              "id": "UIO1",
+              "name": "uioclli1-UIO1"
+            },
+            {
+              "id": "RAJ1",
+              "name": "YGBIJNLQ-RAJ1"
+            },
+            {
+              "id": "OPA1",
+              "name": "opaclli1-OPA1"
+            },
+            {
+              "id": "SDE1",
+              "name": "ZXCVBNMA-SDE1"
+            },
+            {
+              "id": "VEN2",
+              "name": "FGHJUHIL-VEN2"
+            },
+            {
+              "id": "ORL1",
+              "name": "ORLDFLMA-ORL1"
+            },
+            {
+              "id": "JAD1",
+              "name": "JADECLLI-JAD1"
+            },
+            {
+              "id": "ZXL1",
+              "name": "LWLWCANN-ZXL1"
+            },
+            {
+              "id": "CKL1",
+              "name": "CLKSKCKK-CKL1"
+            },
+            {
+              "id": "SDF1",
+              "name": "sdfclli1-SDF1"
+            },
+            {
+              "id": "RAD1",
+              "name": "RADICAL1-RAD1"
+            },
+            {
+              "id": "KIT1",
+              "name": "BHYJFGLN-KIT1"
+            },
+            {
+              "id": "REL1",
+              "name": "INGERFGT-REL1"
+            },
+            {
+              "id": "JNL1",
+              "name": "CJALSDAC-JNL1"
+            },
+            {
+              "id": "OLK1",
+              "name": "OLKOLKLS-OLK1"
+            },
+            {
+              "id": "CHI1",
+              "name": "CHILLIWE-CHI1"
+            },
+            {
+              "id": "UUU4",
+              "name": "UUUAAAUU-UUU4"
+            },
+            {
+              "id": "TUF1",
+              "name": "TUFCLLI1-TUF1"
+            },
+            {
+              "id": "KJN1",
+              "name": "CKALDKSA-KJN1"
+            },
+            {
+              "id": "SAM1",
+              "name": "SNDGCA64-SAN1"
+            },
+            {
+              "id": "SCK1",
+              "name": "SCKSCKSK-SCK1"
+            },
+            {
+              "id": "HJH1",
+              "name": "AOEEQQQD-HJH1"
+            },
+            {
+              "id": "HGD1",
+              "name": "SDFQWHGD-HGD1"
+            },
+            {
+              "id": "KOR1",
+              "name": "HYFLNBVT-KOR1"
+            },
+            {
+              "id": "ATL43",
+              "name": "AICLOCID-ATL43"
+            },
+            {
+              "id": "ATL54",
+              "name": "AICFTAAI-ATL54"
+            },
+            {
+              "id": "ATL66",
+              "name": "CLLIAAII-ATL66"
+            },
+            {
+              "id": "VEL1",
+              "name": "BNMLKUIK-VEL1"
+            },
+            {
+              "id": "ICC1",
+              "name": "SANJITAT-ICC1"
+            },
+            {
+              "id": "MNT11",
+              "name": "WSXEFBTH-MNT11"
+            },
+            {
+              "id": "DEF2",
+              "name": "WSBHGTYL-DEF2"
+            },
+            {
+              "id": "MAD11",
+              "name": "SDFQWGKL-MAD11"
+            },
+            {
+              "id": "OLG1",
+              "name": "OLHOLHOL-OLG1"
+            },
+            {
+              "id": "GAR1",
+              "name": "NGFVSJKO-GAR1"
+            },
+            {
+              "id": "SAN22",
+              "name": "GNVLSCTL-SAN22"
+            },
+            {
+              "id": "HRG1",
+              "name": "HRGHRGGS-HRG1"
+            },
+            {
+              "id": "JCS1",
+              "name": "JCSJSCJS-JCS1"
+            },
+            {
+              "id": "DHA12",
+              "name": "WSXEDECF-DHA12"
+            },
+            {
+              "id": "HJE1",
+              "name": "AOEEWWWD-HJE1"
+            },
+            {
+              "id": "NCA1",
+              "name": "NCANCANN-NCA1"
+            },
+            {
+              "id": "IOP1",
+              "name": "iopclli1-IOP1"
+            },
+            {
+              "id": "RTY1",
+              "name": "rtyclli1-RTY1"
+            },
+            {
+              "id": "KAP1",
+              "name": "HIOUYTRQ-KAP1"
+            },
+            {
+              "id": "ZEN1",
+              "name": "ZENCLLI1-ZEN1"
+            },
+            {
+              "id": "HKA1",
+              "name": "JAKHLASS-HKA1"
+            },
+            {
+              "id": "CQK1",
+              "name": "CQKSCAKK-CQK1"
+            },
+            {
+              "id": "SAI1",
+              "name": "UBEKQLPD-SAI1"
+            },
+            {
+              "id": "ERT1",
+              "name": "ertclli1-ERT1"
+            },
+            {
+              "id": "IBB1",
+              "name": "PLMKOIJU-IBB1"
+            },
+            {
+              "id": "TIR2",
+              "name": "PLKINHYI-TIR2"
+            },
+            {
+              "id": "HSD1",
+              "name": "CHASKCDS-HSD1"
+            },
+            {
+              "id": "SLF78",
+              "name": "SDCTLFN1-SLF78"
+            },
+            {
+              "id": "SEE78",
+              "name": "SDCTEEE4-SEE78"
+            },
+            {
+              "id": "SAN13",
+              "name": "TOKYJPFA-SAN13"
+            },
+            {
+              "id": "SAA78",
+              "name": "SDCTAAA1-SAA78"
+            },
+            {
+              "id": "LUC1",
+              "name": "ATLDFGYC-LUC1"
+            },
+            {
+              "id": "AMD13",
+              "name": "MEMATLAN-AMD13"
+            },
+            {
+              "id": "TOR1",
+              "name": "TOROONXN-TOR1"
+            },
+            {
+              "id": "QWE1",
+              "name": "QWECLLI1-QWE1"
+            },
+            {
+              "id": "ZOG1",
+              "name": "ZOGASTRO-ZOG1"
+            },
+            {
+              "id": "CAL33",
+              "name": "CALIFORN-CAL33"
+            },
+            {
+              "id": "SHH78",
+              "name": "SDIT1HHH-SHH78"
+            },
+            {
+              "id": "DSA1",
+              "name": "LKJHGFDS-DSA1"
+            },
+            {
+              "id": "CLG1",
+              "name": "CLGRABAD-CLG1"
+            },
+            {
+              "id": "BNA1",
+              "name": "BNARAGBK-BNA1"
+            },
+            {
+              "id": "ATL84",
+              "name": "CANTTCOC-ATL84"
+            },
+            {
+              "id": "APP1",
+              "name": "WBHGTYUI-APP1"
+            },
+            {
+              "id": "RJN1",
+              "name": "RJNRBZAW-RJN1"
+            },
+            {
+              "id": "EHH78",
+              "name": "SDCSHHH5-EHH78"
+            },
+            {
+              "id": "mac10",
+              "name": "PKGTESTF-mac10"
+            },
+            {
+              "id": "SXB78",
+              "name": "SDCTGXB1-SXB78"
+            },
+            {
+              "id": "SAX78",
+              "name": "SDCTAXG1-SAX78"
+            },
+            {
+              "id": "SYD1",
+              "name": "SYDNAUBV-SYD1"
+            },
+            {
+              "id": "TOK1",
+              "name": "TOKYJPFA-TOK1"
+            },
+            {
+              "id": "KGM2",
+              "name": "KGMTNC20-KGM2"
+            },
+            {
+              "id": "DCC1b",
+              "name": "POIUYTGH-DCC1b"
+            },
+            {
+              "id": "SKK78",
+              "name": "SDCTKKK1-SKK78"
+            },
+            {
+              "id": "SGG78",
+              "name": "SDCTGGG1-SGG78"
+            },
+            {
+              "id": "SJJ78",
+              "name": "SDCTJJJ1-SJJ78"
+            },
+            {
+              "id": "SBX78",
+              "name": "SDCTBXG1-SBX78"
+            },
+            {
+              "id": "LAG1",
+              "name": "LARGIZON-LAG1"
+            },
+            {
+              "id": "IAA1",
+              "name": "QAZXSWED-IAA1"
+            },
+            {
+              "id": "POI1",
+              "name": "PLMNJKIU-POI1"
+            },
+            {
+              "id": "LAG1a",
+              "name": "LARGIZON-LAG1a"
+            },
+            {
+              "id": "PBL1",
+              "name": "PBLAPBAI-PBL1"
+            },
+            {
+              "id": "LAG45",
+              "name": "LARGIZON-LAG1a"
+            },
+            {
+              "id": "MAR1",
+              "name": "MNBVCXZM-MAR1"
+            },
+            {
+              "id": "HST70",
+              "name": "HSTNTX70-HST70"
+            },
+            {
+              "id": "DCC1a",
+              "name": "POIUYTGH-DCC1a"
+            },
+            {
+              "id": "TOL1",
+              "name": "TOLDOH21-TOL1"
+            },
+            {
+              "id": "LON1",
+              "name": "LONEENCO-LON1"
+            },
+            {
+              "id": "SJU78",
+              "name": "SDIT1JUB-SJU78"
+            },
+            {
+              "id": "STN27",
+              "name": "HSTNTX01-STN27"
+            },
+            {
+              "id": "SSW56",
+              "name": "ss8126GT-SSW56"
+            },
+            {
+              "id": "SBB78",
+              "name": "SDIT1BBB-SBB78"
+            },
+            {
+              "id": "DCC3",
+              "name": "POIUYTGH-DCC3"
+            },
+            {
+              "id": "GNV1",
+              "name": "GNVLSCTL-GNV1"
+            },
+            {
+              "id": "WAS1",
+              "name": "WASHDCSW-WAS1"
+            },
+            {
+              "id": "TOY1",
+              "name": "TORYONNZ-TOY1"
+            },
+            {
+              "id": "STT1",
+              "name": "STTLWA02-STT1"
+            },
+            {
+              "id": "STG1",
+              "name": "STTGGE62-STG1"
+            },
+            {
+              "id": "SLL78",
+              "name": "SDCTLLL1-SLL78"
+            },
+            {
+              "id": "SBU78",
+              "name": "SDIT1BUB-SBU78"
+            },
+            {
+              "id": "ATL2",
+              "name": "ATLNGANW-ATL2"
+            },
+            {
+              "id": "BOT1",
+              "name": "BOTHWAKY-BOT1"
+            },
+            {
+              "id": "SNG1",
+              "name": "SNGPSIAU-SNG1"
+            },
+            {
+              "id": "NYC1",
+              "name": "NYCMNY54-NYC1"
+            },
+            {
+              "id": "LAG1b",
+              "name": "LARGIZON-LAG1b"
+            },
+            {
+              "id": "AMD15",
+              "name": "AMDFAA01-AMD15"
+            },
+            {
+              "id": "SNA1",
+              "name": "SNANTXCA-SNA1"
+            },
+            {
+              "id": "PLT1",
+              "name": "PLTNCA60-PLT1"
+            },
+            {
+              "id": "TLP1",
+              "name": "TLPNXM18-TLP1"
+            },
+            {
+              "id": "SDD81",
+              "name": "SAIT1DD6-SDD81"
+            },
+            {
+              "id": "DCC1",
+              "name": "POIUYTGH-DCC1"
+            },
+            {
+              "id": "DCC2",
+              "name": "POIUYTGH-DCC2"
+            },
+            {
+              "id": "OKC1",
+              "name": "OKCBOK55-OKC1"
+            },
+            {
+              "id": "PAR1",
+              "name": "PARSFRCG-PAR1"
+            },
+            {
+              "id": "TES36",
+              "name": "ABCEETES-TES36"
+            },
+            {
+              "id": "COM1",
+              "name": "PLMKOPIU-COM1"
+            },
+            {
+              "id": "ANI1",
+              "name": "ATLNGTRE-ANI1"
+            },
+            {
+              "id": "SDG78",
+              "name": "SDIT1BDG-SDG78"
+            },
+            {
+              "id": "mac20",
+              "name": "PKGTESTF-mac20"
+            },
+            {
+              "id": "DSF45",
+              "name": "DSFBG123-DSF45"
+            },
+            {
+              "id": "HST25",
+              "name": "HSTNTX01-HST25"
+            },
+            {
+              "id": "AMD18",
+              "name": "AUDIMA01-AMD18"
+            },
+            {
+              "id": "SAA80",
+              "name": "SAIT9AA3-SAA80"
+            },
+            {
+              "id": "SSA56",
+              "name": "SSIT2AA7-SSA56"
+            },
+            {
+              "id": "SDD82",
+              "name": "SAIT1DD9-SDD82"
+            },
+            {
+              "id": "JCV1",
+              "name": "JCVLFLBW-JCV1"
+            },
+            {
+              "id": "SUL2",
+              "name": "WERTYUJK-SUL2"
+            },
+            {
+              "id": "PUR1",
+              "name": "purelyde-PUR1"
+            },
+            {
+              "id": "FDE55",
+              "name": "FDERT555-FDE55"
+            },
+            {
+              "id": "SITE",
+              "name": "LONEENCO-SITE"
+            },
+            {
+              "id": "ATL1",
+              "name": "ATLNGAMA-ATL1"
+            },
+            {
+              "id": "JUL1",
+              "name": "ZXCVBNMM-JUL1"
+            },
+            {
+              "id": "TAT34",
+              "name": "TESAAISB-TAT34"
+            },
+            {
+              "id": "XCP12",
+              "name": "CHKGH123-XCP12"
+            },
+            {
+              "id": "RAI1",
+              "name": "poiuytre-RAI1"
+            },
+            {
+              "id": "HPO1",
+              "name": "ATLNGAUP-HPO1"
+            },
+            {
+              "id": "KJF12",
+              "name": "KJFDH123-KJF12"
+            },
+            {
+              "id": "SCC80",
+              "name": "SAIT9CC3-SCC80"
+            },
+            {
+              "id": "SAA12",
+              "name": "SAIT9AF8-SAA12"
+            },
+            {
+              "id": "SAA14",
+              "name": "SAIT1AA9-SAA14"
+            },
+            {
+              "id": "ATL35",
+              "name": "TTESSAAI-ATL35"
+            },
+            {
+              "id": "CWY1",
+              "name": "CWYMOWBS-CWY1"
+            },
+            {
+              "id": "ATL76",
+              "name": "TELEPAAI-ATL76"
+            },
+            {
+              "id": "DSL12",
+              "name": "DSLFK242-DSL12"
+            },
+            {
+              "id": "ATL53",
+              "name": "AAIATLTE-ATL53"
+            },
+            {
+              "id": "SAA11",
+              "name": "SAIT9AA2-SAA11"
+            },
+            {
+              "id": "ATL62",
+              "name": "TESSASCH-ATL62"
+            },
+            {
+              "id": "AUG1",
+              "name": "ASDFGHJK-AUG1"
+            },
+            {
+              "id": "POI22",
+              "name": "POIUY123-POI22"
+            },
+            {
+              "id": "SAA13",
+              "name": "SAIT1AA9-SAA13"
+            },
+            {
+              "id": "BHY17",
+              "name": "BHYTFRF3-BHY17"
+            },
+            {
+              "id": "LIS1",
+              "name": "HOSTPROF-LIS1"
+            },
+            {
+              "id": "SIP1",
+              "name": "ZXCVBNMK-SIP1"
+            },
+            {
+              "id": "ATL99",
+              "name": "TEESTAAI-ATL43"
+            },
+            {
+              "id": "ATL64",
+              "name": "FORLOAAJ-ATL64"
+            },
+            {
+              "id": "TAT33",
+              "name": "TESAAISA-TAT33"
+            },
+            {
+              "id": "RAD10",
+              "name": "INDIPUNE-RAD10"
+            },
+            {
+              "id": "RTW5",
+              "name": "BHYTFRY4-RTW5"
+            },
+            {
+              "id": "JGS1",
+              "name": "KSJKKKKK-JGS1"
+            },
+            {
+              "id": "ATL98",
+              "name": "TEESTAAI-ATL43"
+            },
+            {
+              "id": "WAN1",
+              "name": "LEIWANGW-WAN1"
+            },
+            {
+              "id": "ATL44",
+              "name": "ATLSANAB-ATL44"
+            },
+            {
+              "id": "RTD2",
+              "name": "BHYTFRk4-RTD2"
+            },
+            {
+              "id": "NIR1",
+              "name": "ORFLMANA-NIR1"
+            },
+            {
+              "id": "ATL75",
+              "name": "SANAAIRE-ATL75"
+            },
+            {
+              "id": "NUM1",
+              "name": "QWERTYUI-NUM1"
+            },
+            {
+              "id": "hvf32",
+              "name": "MDTWNJ21-hvf32"
+            },
+            {
+              "id": "RTZ4",
+              "name": "BHYTFRZ6-RTZ4"
+            },
+            {
+              "id": "ATL56",
+              "name": "ATLSANAC-ATL56"
+            },
+            {
+              "id": "AMS1",
+              "name": "AMSTNLBW-AMS1"
+            },
+            {
+              "id": "RCT1",
+              "name": "AMSTERNL-RCT1"
+            },
+            {
+              "id": "JAN1",
+              "name": "ORFLMATT-JAN1"
+            },
+            {
+              "id": "ABC14",
+              "name": "TESAAISA-ABC14"
+            },
+            {
+              "id": "TAT37",
+              "name": "TESAAISD-TAT37"
+            },
+            {
+              "id": "MIC54",
+              "name": "MICHIGAN-MIC54"
+            },
+            {
+              "id": "ABC11",
+              "name": "ATLSANAI-ABC11"
+            },
+            {
+              "id": "AMF11",
+              "name": "AMDOCS01-AMF11"
+            },
+            {
+              "id": "ATL63",
+              "name": "ATLSANEW-ATL63"
+            },
+            {
+              "id": "ABC12",
+              "name": "ATLSECIA-ABC12"
+            },
+            {
+              "id": "hvf20",
+              "name": "MDTWNJ21-hvf20"
+            },
+            {
+              "id": "ABC15",
+              "name": "AAITESAN-ABC15"
+            },
             {
               "id": "AVT1",
               "name": "AVTRFLHD-AVT1"
index 225c12c..97be48c 100644 (file)
@@ -96,11 +96,11 @@ describe('Permissions ',  ()=> {
     cy.readFile('../vid-automation/src/test/resources/aaiGetInstanceTopology/getServiceInstanceTopologyResult.json').then((res) => {
 
       // Adding VNF with isFailed.
-      res.vnfs["2017-388_ADIOD-vPE 0"].isFailed = true;
-      res.vnfs["2017-488_ADIOD-vPE 0"].isFailed = true;
+      res.vnfs["2017-388_PASQUALE-vPE 0"].isFailed = true;
+      res.vnfs["2017-488_PASQUALE-vPE 0"].isFailed = true;
 
       // Adding VFModule with isFailed.
-      res.vnfs["2017-488_ADIOD-vPE 0"].vfModules["2017488_adiodvpe0..2017488AdiodVpe..ADIOD_base_vPE_BV..module-0"]["2017488_adiodvpe0..2017488AdiodVpe..ADIOD_base_vPE_BV..module-0uvfot"].isFailed = true;
+      res.vnfs["2017-488_PASQUALE-vPE 0"].vfModules["2017488_pasqualevpe0..2017488PasqualeVpe..PASQUALE_base_vPE_BV..module-0"]["2017488_pasqualevpe0..2017488PasqualeVpe..PASQUALE_base_vPE_BV..module-0uvfot"].isFailed = true;
 
       jsonBuilderAndMock.basicJson(
         res,
diff --git a/vid-webpack-master/cypress/integration/iFrames/pnf.e2e.ts b/vid-webpack-master/cypress/integration/iFrames/pnf.e2e.ts
new file mode 100644 (file)
index 0000000..a13094a
--- /dev/null
@@ -0,0 +1,2814 @@
+///<reference path="../../../node_modules/cypress/types/index.d.ts"/>
+
+
+describe('Drawing board: PNF ',  function()  {
+  beforeEach(() => {
+    cy.window().then((win) => {
+      win.sessionStorage.clear();
+      cy.setReduxState();
+      cy.preventErrorsOnLoading();
+      cy.initAAIMock();
+      cy.initVidMock();
+      cy.login();
+    });
+  });
+
+  afterEach(() => {
+    cy.screenshot();
+  });
+
+  describe('Should show PNF correctly',  () => {
+    it('on left side', () => {
+      const serviceModelId: string = "6e59c5de-f052-46fa-aa7e-2fca9d674c44";
+      const pnfName: string = "PNF1";
+      initDrawingBoardWithPnf(serviceModelId, pnfName);
+      cy.get('.vf-type').contains('PNF');
+    });
+
+    it ('on Component Info section', ()=>{
+      const serviceModelId: string = "6e59c5de-f052-46fa-aa7e-2fca9d674c44";
+      const pnfName: string = "PNF1";
+      const redux =  initDrawingBoardWithPnf(serviceModelId, pnfName);
+      cy.get('.vf-type').contains('PNF').click().then(() =>{
+         cy.getElementByDataTestsId('component-info-section-title').contains('PNF INFO');
+         const customizationUuid = redux["service"]["serviceHierarchy"][serviceModelId]['pnfs'][pnfName].customizationUuid;
+         cy.getElementByDataTestsId('model-item-value-Model customization ID').contains(customizationUuid);
+      })
+    });
+  });
+
+  //todo to check with Yoav to delete reduxWithPnfs
+  it('edit service popup should appear without error on tenant', ()=>{
+    const serviceModelId: string = "12550cd7-7708-4f53-a09e-41d3d6327ebc";
+    const pnfName: string = "PNF4";
+    const redux =  initDrawingBoardWithFourPnf(serviceModelId, pnfName);
+    cy.get('.vf-type').contains('PNF').click().then(() =>{
+      const customizationUuid = redux["service"]["serviceHierarchy"][serviceModelId]['pnfs'][pnfName].customizationUuid;
+      cy.getElementByDataTestsId('model-item-value-Model customization ID').contains(customizationUuid);
+      cy.getElementByDataTestsId('openMenuBtn').click().then(()=>{
+        cy.getElementByDataTestsId('context-menu-header-edit-item').click().then(()=>{
+          cy.getElementByDataTestsId('no-results-error').should('not.exist')
+        })
+      })
+    })
+  });
+});
+
+  function initDrawingBoardWithPnf(serviceModelId: string, pnfName: string) {
+    const redux = reduxWithPnfs(serviceModelId, pnfName);
+    cy.setReduxState(<any>redux);
+    cy.openIframe(`app/ui/#/servicePlanning?serviceModelId=${serviceModelId}`);
+    return redux;
+  }
+
+function initDrawingBoardWithFourPnf(serviceModelId: string, pnfName: string) {
+  const redux = reduxWithFourPnfs(serviceModelId, pnfName);
+  cy.setReduxState(<any>redux);
+  cy.openIframe(`app/ui/#/servicePlanning?serviceModelId=${serviceModelId}`);
+  return redux;
+}
+
+  function reduxWithPnfs(serviceModelId: string, pnfName: string) {
+    return {
+      "service": {
+        "serviceHierarchy": {
+          [serviceModelId]: {
+            "service": {
+              "uuid": serviceModelId,
+              "invariantUuid": "cfef8302-d90f-475f-87cc-3f49a62ef14c",
+              "name": "ComplexService",
+              "version": "1.0",
+              "toscaModelURL": null,
+              "category": "Emanuel",
+              "serviceType": "Transport",
+              "serviceRole": "ATM",
+              "description": "ComplexService",
+              "serviceEcompNaming": "true",
+              "instantiationType": "Macro",
+              "inputs": {},
+              "vidNotions": {
+                "instantiationUI": "legacy",
+                "modelCategory": "other",
+                "viewEditUI": "legacy"
+              }
+            },
+            "vnfs": {},
+            "networks": {},
+            "collectionResources": {},
+            "configurations": {},
+            "fabricConfigurations": {},
+            "serviceProxies": {},
+            "vfModules": {},
+            "volumeGroups": {},
+            "pnfs": {
+              [pnfName]:{
+                "uuid": "1c831fa9-28a6-4778-8c1d-80b9e769f2ed",
+                "invariantUuid": "74e13a12-dac9-4fba-b102-cd242d9e7f02",
+                "description": "AIM Transport service",
+                "name": "AIM PNF Model",
+                "version": "1.0",
+                "customizationUuid": "ce2453ef-4e8e-4108-944c-57bef89cfab0",
+                "inputs": {},
+                "commands": {},
+                "properties": {
+                  "nf_function": "AIM CE",
+                  "nf_role": "pCE",
+                  "ecomp_generated_naming": "false",
+                  "nf_type": "ROUTER"
+                },
+                "type": "PNF"
+              }
+            },
+            "vnfGroups": {}
+          }
+        },
+        "serviceInstance": {
+          "6e59c5de-f052-46fa-aa7e-2fca9d674c44": {
+            "action": "Create",
+            "isDirty": true,
+            "vnfs": {},
+            "instanceParams": [
+              {}
+            ],
+            "validationCounter": 0,
+            "existingNames": {
+              "11": "",
+              "yoav": ""
+            },
+            "existingVNFCounterMap": {
+              "91415b44-753d-494c-926a-456a9172bbb9": 1
+            },
+            "existingVnfGroupCounterMap": {},
+            "existingNetworksCounterMap": {},
+            "optionalGroupMembersMap": {},
+            "networks": {},
+            "vnfGroups": {},
+            "bulkSize": 1,
+            "instanceName": "serviceInstanceName",
+            "globalSubscriberId": "e433710f-9217-458d-a79d-1c7aff376d89",
+            "subscriptionServiceType": "TYLER SILVIA",
+            "owningEntityId": "d61e6f2d-12fa-4cc2-91df-7c244011d6fc",
+            "productFamilyId": "d8a6ed93-251c-47ca-adc9-86671fd19f4c",
+            "lcpCloudRegionId": "AAIAIC25",
+            "tenantId": "092eb9e8e4b7412e8787dd091bc58e86",
+            "aicZoneId": "ATL53",
+            "projectName": "WATKINS",
+            "rollbackOnFailure": "true",
+            "aicZoneName": "AAIATLTE-ATL53",
+            "owningEntityName": "WayneHolland",
+            "testApi": "VNF_API",
+            "tenantName": "USP-SIP-IC-24335-T-01",
+            "modelInfo": {
+              "modelInvariantId": "cfef8302-d90f-475f-87cc-3f49a62ef14c",
+              "modelVersionId": "6e59c5de-f052-46fa-aa7e-2fca9d674c44",
+              "modelName": "ComplexService",
+              "modelVersion": "1.0",
+              "uuid": "6e59c5de-f052-46fa-aa7e-2fca9d674c44",
+              "modelUniqueId": "6e59c5de-f052-46fa-aa7e-2fca9d674c44"
+            },
+            "isALaCarte": false,
+            "name": "ComplexService",
+            "version": "1.0",
+            "description": "ComplexService",
+            "category": "Emanuel",
+            "uuid": "6e59c5de-f052-46fa-aa7e-2fca9d674c44",
+            "invariantUuid": "cfef8302-d90f-475f-87cc-3f49a62ef14c",
+            "serviceType": "",
+            "serviceRole": "",
+            "vidNotions": {
+              "instantiationUI": "legacy",
+              "modelCategory": "other",
+              "viewEditUI": "legacy"
+            },
+            "isEcompGeneratedNaming": true,
+            "isMultiStepDesign": false
+          }
+        },
+        "lcpRegionsAndTenants": {
+          "lcpRegionList": [
+            {
+              "id": "AAIAIC25",
+              "name": "AAIAIC25 (AIC)",
+              "isPermitted": true,
+              "cloudOwner": "irma-aic"
+            },
+            {
+              "id": "hvf6",
+              "name": "hvf6 (AIC)",
+              "isPermitted": true,
+              "cloudOwner": "irma-aic"
+            }
+          ],
+          "lcpRegionsTenantsMap": {
+            "AAIAIC25": [
+              {
+                "id": "092eb9e8e4b7412e8787dd091bc58e86",
+                "name": "USP-SIP-IC-24335-T-01",
+                "isPermitted": true,
+                "cloudOwner": "irma-aic"
+              }
+            ],
+            "hvf6": [
+              {
+                "id": "bae71557c5bb4d5aac6743a4e5f1d054",
+                "name": "AIN Web Tool-15-D-testalexandria",
+                "isPermitted": true,
+                "cloudOwner": "irma-aic"
+              },
+              {
+                "id": "229bcdc6eaeb4ca59d55221141d01f8e",
+                "name": "AIN Web Tool-15-D-STTest2",
+                "isPermitted": true,
+                "cloudOwner": "irma-aic"
+              },
+              {
+                "id": "1178612d2b394be4834ad77f567c0af2",
+                "name": "AIN Web Tool-15-D-SSPtestcustome",
+                "isPermitted": true,
+                "cloudOwner": "irma-aic"
+              },
+              {
+                "id": "19c5ade915eb461e8af52fb2fd8cd1f2",
+                "name": "AIN Web Tool-15-D-UncheckedEcopm",
+                "isPermitted": true,
+                "cloudOwner": "irma-aic"
+              },
+              {
+                "id": "de007636e25249238447264a988a927b",
+                "name": "AIN Web Tool-15-D-dfsdf",
+                "isPermitted": true,
+                "cloudOwner": "irma-aic"
+              },
+              {
+                "id": "62f29b3613634ca6a3065cbe0e020c44",
+                "name": "AIN/SMS-16-D-Multiservices1",
+                "isPermitted": true,
+                "cloudOwner": "irma-aic"
+              },
+              {
+                "id": "649289e30d3244e0b48098114d63c2aa",
+                "name": "AIN Web Tool-15-D-SSPST66",
+                "isPermitted": true,
+                "cloudOwner": "irma-aic"
+              },
+              {
+                "id": "3f21eeea6c2c486bba31dab816c05a32",
+                "name": "AIN Web Tool-15-D-ASSPST47",
+                "isPermitted": true,
+                "cloudOwner": "irma-aic"
+              },
+              {
+                "id": "f60ce21d3ee6427586cff0d22b03b773",
+                "name": "CESAR-100-D-sspjg67246",
+                "isPermitted": true,
+                "cloudOwner": "irma-aic"
+              },
+              {
+                "id": "8774659e425f479895ae091bb5d46560",
+                "name": "CESAR-100-D-sspjg68359",
+                "isPermitted": true,
+                "cloudOwner": "irma-aic"
+              },
+              {
+                "id": "624eb554b0d147c19ff8885341760481",
+                "name": "AINWebTool-15-D-iftach",
+                "isPermitted": true,
+                "cloudOwner": "irma-aic"
+              },
+              {
+                "id": "214f55f5fc414c678059c383b03e4962",
+                "name": "CESAR-100-D-sspjg612401",
+                "isPermitted": true,
+                "cloudOwner": "irma-aic"
+              },
+              {
+                "id": "c90666c291664841bb98e4d981ff1db5",
+                "name": "CESAR-100-D-sspjg621340",
+                "isPermitted": true,
+                "cloudOwner": "irma-aic"
+              },
+              {
+                "id": "ce5b6bc5c7b348e1bf4b91ac9a174278",
+                "name": "sspjg621351cloned",
+                "isPermitted": true,
+                "cloudOwner": "irma-aic"
+              },
+              {
+                "id": "b386b768a3f24c8e953abbe0b3488c02",
+                "name": "AINWebTool-15-D-eteancomp",
+                "isPermitted": true,
+                "cloudOwner": "irma-aic"
+              },
+              {
+                "id": "dc6c4dbfd225474e9deaadd34968646c",
+                "name": "AINWebTool-15-T-SPFET",
+                "isPermitted": true,
+                "cloudOwner": "irma-aic"
+              },
+              {
+                "id": "02cb5030e9914aa4be120bd9ed1e19eb",
+                "name": "AINWebTool-15-X-eeweww",
+                "isPermitted": true,
+                "cloudOwner": "irma-aic"
+              },
+              {
+                "id": "f2f3830e4c984d45bcd00e1a04158a79",
+                "name": "CESAR-100-D-spjg61909",
+                "isPermitted": true,
+                "cloudOwner": "irma-aic"
+              },
+              {
+                "id": "05b91bd5137f4929878edd965755c06d",
+                "name": "CESAR-100-D-sspjg621512cloned",
+                "isPermitted": true,
+                "cloudOwner": "irma-aic"
+              },
+              {
+                "id": "7002fbe8482d4a989ddf445b1ce336e0",
+                "name": "AINWebTool-15-X-vdr",
+                "isPermitted": true,
+                "cloudOwner": "irma-aic"
+              },
+              {
+                "id": "4008522be43741dcb1f5422022a2aa0b",
+                "name": "AINWebTool-15-D-ssasa",
+                "isPermitted": true,
+                "cloudOwner": "irma-aic"
+              },
+              {
+                "id": "f44e2e96a1b6476abfda2fa407b00169",
+                "name": "AINWebTool-15-D-PFNPT",
+                "isPermitted": true,
+                "cloudOwner": "irma-aic"
+              },
+              {
+                "id": "b69a52bec8a84669a37a1e8b72708be7",
+                "name": "AINWebTool-15-X-vdre",
+                "isPermitted": true,
+                "cloudOwner": "irma-aic"
+              },
+              {
+                "id": "fac7d9fd56154caeb9332202dcf2969f",
+                "name": "AINWebTool-15-X-NONPODECOMP",
+                "isPermitted": true,
+                "cloudOwner": "irma-aic"
+              },
+              {
+                "id": "2d34d8396e194eb49969fd61ffbff961",
+                "name": "DN5242-Nov16-T5",
+                "isPermitted": true,
+                "cloudOwner": "irma-aic"
+              },
+              {
+                "id": "cb42a77ff45b48a8b8deb83bb64acc74",
+                "name": "ro-T11",
+                "isPermitted": true,
+                "cloudOwner": "irma-aic"
+              },
+              {
+                "id": "fa45ca53c80b492fa8be5477cd84fc2b",
+                "name": "ro-T112",
+                "isPermitted": true,
+                "cloudOwner": "irma-aic"
+              },
+              {
+                "id": "4914ab0ab3a743e58f0eefdacc1dde77",
+                "name": "DN5242-Nov21-T1",
+                "isPermitted": true,
+                "cloudOwner": "irma-aic"
+              },
+              {
+                "id": "d0a3e3f2964542259d155a81c41aadc3",
+                "name": "test-hvf6-09",
+                "isPermitted": true,
+                "cloudOwner": "irma-aic"
+              },
+              {
+                "id": "cbb99fe4ada84631b7baf046b6fd2044",
+                "name": "DN5242-Nov16-T3",
+                "isPermitted": true,
+                "cloudOwner": "irma-aic"
+              }
+            ]
+          }
+        },
+        "subscribers": [
+          {
+            "id": "ERICA5779-Subscriber-2",
+            "name": "ERICA5779-Subscriber-2",
+            "isPermitted": false
+          },
+          {
+            "id": "ERICA5779-Subscriber-3",
+            "name": "ERICA5779-Subscriber-3",
+            "isPermitted": false
+          },
+          {
+            "id": "ERICA5779-Subscriber-4",
+            "name": "ERICA5779-Subscriber-5",
+            "isPermitted": false
+          },
+          {
+            "id": "ERICA5779-TestSub-PWT-101",
+            "name": "ERICA5779-TestSub-PWT-101",
+            "isPermitted": false
+          },
+          {
+            "id": "ERICA5779-TestSub-PWT-102",
+            "name": "ERICA5779-TestSub-PWT-102",
+            "isPermitted": false
+          },
+          {
+            "id": "ERICA5779-TestSub-PWT-103",
+            "name": "ERICA5779-TestSub-PWT-103",
+            "isPermitted": false
+          },
+          {
+            "id": "31739f3e-526b-11e6-beb8-9e71128cae77",
+            "name": "CRAIG/ROBERTS",
+            "isPermitted": false
+          },
+          {
+            "id": "DHV1707-TestSubscriber-2",
+            "name": "DALE BRIDGES",
+            "isPermitted": false
+          },
+          {
+            "id": "jimmy-example",
+            "name": "JimmyExampleCust-20161102",
+            "isPermitted": false
+          },
+          {
+            "id": "jimmy-example2",
+            "name": "JimmyExampleCust-20161103",
+            "isPermitted": false
+          },
+          {
+            "id": "CAR_2020_ER",
+            "name": "CAR_2020_ER",
+            "isPermitted": true
+          },
+          {
+            "id": "a9a77d5a-123e-4ca2-9eb9-0b015d2ee0fb",
+            "name": "Emanuel",
+            "isPermitted": true
+          },
+          {
+            "id": "21014aa2-526b-11e6-beb8-9e71128cae77",
+            "name": "JULIO ERICKSON",
+            "isPermitted": false
+          },
+          {
+            "id": "DHV1707-TestSubscriber-1",
+            "name": "LLOYD BRIDGES",
+            "isPermitted": false
+          },
+          {
+            "id": "e433710f-9217-458d-a79d-1c7aff376d89",
+            "name": "SILVIA ROBBINS",
+            "isPermitted": true
+          },
+          {
+            "id": "global-customer-id",
+            "name": "global-customer-id",
+            "isPermitted": true
+          }
+        ],
+        "productFamilies": null,
+        "serviceTypes": {
+          "a9a77d5a-123e-4ca2-9eb9-0b015d2ee0fb": [
+            {
+              "id": "3",
+              "name": "Emanuel",
+              "isPermitted": false
+            },
+            {
+              "id": "7",
+              "name": "Kennedy",
+              "isPermitted": false
+            },
+            {
+              "id": "6",
+              "name": "vJamie",
+              "isPermitted": false
+            },
+            {
+              "id": "0",
+              "name": "vWINIFRED",
+              "isPermitted": false
+            },
+            {
+              "id": "1",
+              "name": "vMNS",
+              "isPermitted": false
+            },
+            {
+              "id": "4",
+              "name": "vMOG",
+              "isPermitted": false
+            },
+            {
+              "id": "5",
+              "name": "vEsmeralda",
+              "isPermitted": false
+            },
+            {
+              "id": "2",
+              "name": "vVoiceMail",
+              "isPermitted": false
+            }
+          ],
+          "e433710f-9217-458d-a79d-1c7aff376d89": [
+            {
+              "id": "17",
+              "name": "JOHANNA_SANTOS",
+              "isPermitted": false
+            },
+            {
+              "id": "16",
+              "name": "LINDSEY",
+              "isPermitted": false
+            },
+            {
+              "id": "2",
+              "name": "Emanuel",
+              "isPermitted": false
+            },
+            {
+              "id": "5",
+              "name": "Kennedy",
+              "isPermitted": false
+            },
+            {
+              "id": "14",
+              "name": "SSD",
+              "isPermitted": false
+            },
+            {
+              "id": "1",
+              "name": "TYLER SILVIA",
+              "isPermitted": true
+            },
+            {
+              "id": "12",
+              "name": "VPMS",
+              "isPermitted": false
+            },
+            {
+              "id": "3",
+              "name": "vJamie",
+              "isPermitted": false
+            },
+            {
+              "id": "0",
+              "name": "vRichardson",
+              "isPermitted": false
+            },
+            {
+              "id": "18",
+              "name": "vCarroll",
+              "isPermitted": false
+            },
+            {
+              "id": "9",
+              "name": "vFLORENCE",
+              "isPermitted": false
+            },
+            {
+              "id": "13",
+              "name": "vWINIFRED",
+              "isPermitted": false
+            },
+            {
+              "id": "10",
+              "name": "vMNS",
+              "isPermitted": false
+            },
+            {
+              "id": "15",
+              "name": "vMOG",
+              "isPermitted": false
+            },
+            {
+              "id": "8",
+              "name": "vOTA",
+              "isPermitted": false
+            },
+            {
+              "id": "11",
+              "name": "vEsmeralda",
+              "isPermitted": false
+            },
+            {
+              "id": "6",
+              "name": "vPorfirio",
+              "isPermitted": false
+            },
+            {
+              "id": "7",
+              "name": "vVM",
+              "isPermitted": false
+            },
+            {
+              "id": "4",
+              "name": "vVoiceMail",
+              "isPermitted": false
+            }
+          ]
+        },
+        "aicZones": [
+          {
+            "id": "ATL53",
+            "name": "AAIATLTE-ATL53"
+          },
+          {
+            "id": "ABC15",
+            "name": "AAITESAN-ABC15"
+          },
+          {
+            "id": "TES36",
+            "name": "ABCEETES-TES36"
+          },
+          {
+            "id": "ATL54",
+            "name": "AICFTAAI-ATL54"
+          },
+          {
+            "id": "ATL43",
+            "name": "AICLOCID-ATL43"
+          },
+          {
+            "id": "AMD15",
+            "name": "AMDFAA01-AMD15"
+          },
+          {
+            "id": "AMF11",
+            "name": "AMDOCS01-AMF11"
+          },
+          {
+            "id": "RCT1",
+            "name": "AMSTERNL-RCT1"
+          },
+          {
+            "id": "AMS1",
+            "name": "AMSTNLBW-AMS1"
+          },
+          {
+            "id": "HJH1",
+            "name": "AOEEQQQD-HJH1"
+          },
+          {
+            "id": "HJE1",
+            "name": "AOEEWWWD-HJE1"
+          },
+          {
+            "id": "MCS1",
+            "name": "ASACMAMS-MCS1"
+          },
+          {
+            "id": "AUG1",
+            "name": "ASDFGHJK-AUG1"
+          },
+          {
+            "id": "LUC1",
+            "name": "ATLDFGYC-LUC1"
+          },
+          {
+            "id": "ATL1",
+            "name": "ATLNGAMA-ATL1"
+          },
+          {
+            "id": "ATL2",
+            "name": "ATLNGANW-ATL2"
+          },
+          {
+            "id": "HPO1",
+            "name": "ATLNGAUP-HPO1"
+          },
+          {
+            "id": "ANI1",
+            "name": "ATLNGTRE-ANI1"
+          },
+          {
+            "id": "ATL44",
+            "name": "ATLSANAB-ATL44"
+          },
+          {
+            "id": "ATL56",
+            "name": "ATLSANAC-ATL56"
+          },
+          {
+            "id": "ABC11",
+            "name": "ATLSANAI-ABC11"
+          },
+          {
+            "id": "ATL34",
+            "name": "ATLSANAI-ATL34"
+          },
+          {
+            "id": "ATL63",
+            "name": "ATLSANEW-ATL63"
+          },
+          {
+            "id": "ABC12",
+            "name": "ATLSECIA-ABC12"
+          },
+          {
+            "id": "AMD18",
+            "name": "AUDIMA01-AMD18"
+          },
+          {
+            "id": "AVT1",
+            "name": "AVTRFLHD-AVT1"
+          },
+          {
+            "id": "KIT1",
+            "name": "BHYJFGLN-KIT1"
+          },
+          {
+            "id": "BHY17",
+            "name": "BHYTFRF3-BHY17"
+          },
+          {
+            "id": "RTW5",
+            "name": "BHYTFRY4-RTW5"
+          },
+          {
+            "id": "RTZ4",
+            "name": "BHYTFRZ6-RTZ4"
+          },
+          {
+            "id": "RTD2",
+            "name": "BHYTFRk4-RTD2"
+          },
+          {
+            "id": "BNA1",
+            "name": "BNARAGBK-BNA1"
+          },
+          {
+            "id": "VEL1",
+            "name": "BNMLKUIK-VEL1"
+          },
+          {
+            "id": "BOT1",
+            "name": "BOTHWAKY-BOT1"
+          },
+          {
+            "id": "CAL33",
+            "name": "CALIFORN-CAL33"
+          },
+          {
+            "id": "ATL84",
+            "name": "CANTTCOC-ATL84"
+          },
+          {
+            "id": "HSD1",
+            "name": "CHASKCDS-HSD1"
+          },
+          {
+            "id": "CHI1",
+            "name": "CHILLIWE-CHI1"
+          },
+          {
+            "id": "XCP12",
+            "name": "CHKGH123-XCP12"
+          },
+          {
+            "id": "JNL1",
+            "name": "CJALSDAC-JNL1"
+          },
+          {
+            "id": "KJN1",
+            "name": "CKALDKSA-KJN1"
+          },
+          {
+            "id": "CLG1",
+            "name": "CLGRABAD-CLG1"
+          },
+          {
+            "id": "CKL1",
+            "name": "CLKSKCKK-CKL1"
+          },
+          {
+            "id": "ATL66",
+            "name": "CLLIAAII-ATL66"
+          },
+          {
+            "id": "CQK1",
+            "name": "CQKSCAKK-CQK1"
+          },
+          {
+            "id": "CWY1",
+            "name": "CWYMOWBS-CWY1"
+          },
+          {
+            "id": "DKJ1",
+            "name": "DKJSJDKA-DKJ1"
+          },
+          {
+            "id": "DSF45",
+            "name": "DSFBG123-DSF45"
+          },
+          {
+            "id": "DSL12",
+            "name": "DSLFK242-DSL12"
+          },
+          {
+            "id": "FDE55",
+            "name": "FDERT555-FDE55"
+          },
+          {
+            "id": "VEN2",
+            "name": "FGHJUHIL-VEN2"
+          },
+          {
+            "id": "ATL64",
+            "name": "FORLOAAJ-ATL64"
+          },
+          {
+            "id": "GNV1",
+            "name": "GNVLSCTL-GNV1"
+          },
+          {
+            "id": "SAN22",
+            "name": "GNVLSCTL-SAN22"
+          },
+          {
+            "id": "KAP1",
+            "name": "HIOUYTRQ-KAP1"
+          },
+          {
+            "id": "LIS1",
+            "name": "HOSTPROF-LIS1"
+          },
+          {
+            "id": "HRG1",
+            "name": "HRGHRGGS-HRG1"
+          },
+          {
+            "id": "HST25",
+            "name": "HSTNTX01-HST25"
+          },
+          {
+            "id": "STN27",
+            "name": "HSTNTX01-STN27"
+          },
+          {
+            "id": "HST70",
+            "name": "HSTNTX70-HST70"
+          },
+          {
+            "id": "KOR1",
+            "name": "HYFLNBVT-KOR1"
+          },
+          {
+            "id": "RAD10",
+            "name": "INDIPUNE-RAD10"
+          },
+          {
+            "id": "REL1",
+            "name": "INGERFGT-REL1"
+          },
+          {
+            "id": "JAD1",
+            "name": "JADECLLI-JAD1"
+          },
+          {
+            "id": "HKA1",
+            "name": "JAKHLASS-HKA1"
+          },
+          {
+            "id": "JCS1",
+            "name": "JCSJSCJS-JCS1"
+          },
+          {
+            "id": "JCV1",
+            "name": "JCVLFLBW-JCV1"
+          },
+          {
+            "id": "KGM2",
+            "name": "KGMTNC20-KGM2"
+          },
+          {
+            "id": "KJF12",
+            "name": "KJFDH123-KJF12"
+          },
+          {
+            "id": "JGS1",
+            "name": "KSJKKKKK-JGS1"
+          },
+          {
+            "id": "LAG1",
+            "name": "LARGIZON-LAG1"
+          },
+          {
+            "id": "LAG1a",
+            "name": "LARGIZON-LAG1a"
+          },
+          {
+            "id": "LAG45",
+            "name": "LARGIZON-LAG1a"
+          },
+          {
+            "id": "LAG1b",
+            "name": "LARGIZON-LAG1b"
+          },
+          {
+            "id": "WAN1",
+            "name": "LEIWANGW-WAN1"
+          },
+          {
+            "id": "DSA1",
+            "name": "LKJHGFDS-DSA1"
+          },
+          {
+            "id": "LON1",
+            "name": "LONEENCO-LON1"
+          },
+          {
+            "id": "SITE",
+            "name": "LONEENCO-SITE"
+          },
+          {
+            "id": "ZXL1",
+            "name": "LWLWCANN-ZXL1"
+          },
+          {
+            "id": "hvf20",
+            "name": "MDTWNJ21-hvf20"
+          },
+          {
+            "id": "hvf32",
+            "name": "MDTWNJ21-hvf32"
+          },
+          {
+            "id": "AMD13",
+            "name": "MEMATLAN-AMD13"
+          },
+          {
+            "id": "MIC54",
+            "name": "MICHIGAN-MIC54"
+          },
+          {
+            "id": "MAR1",
+            "name": "MNBVCXZM-MAR1"
+          },
+          {
+            "id": "NCA1",
+            "name": "NCANCANN-NCA1"
+          },
+          {
+            "id": "NFT1",
+            "name": "NFTJSSSS-NFT1"
+          },
+          {
+            "id": "GAR1",
+            "name": "NGFVSJKO-GAR1"
+          },
+          {
+            "id": "NYC1",
+            "name": "NYCMNY54-NYC1"
+          },
+          {
+            "id": "OKC1",
+            "name": "OKCBOK55-OKC1"
+          },
+          {
+            "id": "OLG1",
+            "name": "OLHOLHOL-OLG1"
+          },
+          {
+            "id": "OLK1",
+            "name": "OLKOLKLS-OLK1"
+          },
+          {
+            "id": "NIR1",
+            "name": "ORFLMANA-NIR1"
+          },
+          {
+            "id": "JAN1",
+            "name": "ORFLMATT-JAN1"
+          },
+          {
+            "id": "ORL1",
+            "name": "ORLDFLMA-ORL1"
+          },
+          {
+            "id": "PAR1",
+            "name": "PARSFRCG-PAR1"
+          },
+          {
+            "id": "PBL1",
+            "name": "PBLAPBAI-PBL1"
+          },
+          {
+            "id": "mac10",
+            "name": "PKGTESTF-mac10"
+          },
+          {
+            "id": "mac20",
+            "name": "PKGTESTF-mac20"
+          },
+          {
+            "id": "TIR2",
+            "name": "PLKINHYI-TIR2"
+          },
+          {
+            "id": "IBB1",
+            "name": "PLMKOIJU-IBB1"
+          },
+          {
+            "id": "COM1",
+            "name": "PLMKOPIU-COM1"
+          },
+          {
+            "id": "POI1",
+            "name": "PLMNJKIU-POI1"
+          },
+          {
+            "id": "PLT1",
+            "name": "PLTNCA60-PLT1"
+          },
+          {
+            "id": "POI22",
+            "name": "POIUY123-POI22"
+          },
+          {
+            "id": "DCC1",
+            "name": "POIUYTGH-DCC1"
+          },
+          {
+            "id": "DCC1a",
+            "name": "POIUYTGH-DCC1a"
+          },
+          {
+            "id": "DCC1b",
+            "name": "POIUYTGH-DCC1b"
+          },
+          {
+            "id": "DCC2",
+            "name": "POIUYTGH-DCC2"
+          },
+          {
+            "id": "DCC3",
+            "name": "POIUYTGH-DCC3"
+          },
+          {
+            "id": "IAA1",
+            "name": "QAZXSWED-IAA1"
+          },
+          {
+            "id": "QWE1",
+            "name": "QWECLLI1-QWE1"
+          },
+          {
+            "id": "NUM1",
+            "name": "QWERTYUI-NUM1"
+          },
+          {
+            "id": "RAD1",
+            "name": "RADICAL1-RAD1"
+          },
+          {
+            "id": "RJN1",
+            "name": "RJNRBZAW-RJN1"
+          },
+          {
+            "id": "SAA13",
+            "name": "SAIT1AA9-SAA13"
+          },
+          {
+            "id": "SAA14",
+            "name": "SAIT1AA9-SAA14"
+          },
+          {
+            "id": "SDD81",
+            "name": "SAIT1DD6-SDD81"
+          },
+          {
+            "id": "SDD82",
+            "name": "SAIT1DD9-SDD82"
+          },
+          {
+            "id": "SAA11",
+            "name": "SAIT9AA2-SAA11"
+          },
+          {
+            "id": "SAA80",
+            "name": "SAIT9AA3-SAA80"
+          },
+          {
+            "id": "SAA12",
+            "name": "SAIT9AF8-SAA12"
+          },
+          {
+            "id": "SCC80",
+            "name": "SAIT9CC3-SCC80"
+          },
+          {
+            "id": "ATL75",
+            "name": "SANAAIRE-ATL75"
+          },
+          {
+            "id": "ICC1",
+            "name": "SANJITAT-ICC1"
+          },
+          {
+            "id": "SCK1",
+            "name": "SCKSCKSK-SCK1"
+          },
+          {
+            "id": "EHH78",
+            "name": "SDCSHHH5-EHH78"
+          },
+          {
+            "id": "SAA78",
+            "name": "SDCTAAA1-SAA78"
+          },
+          {
+            "id": "SAX78",
+            "name": "SDCTAXG1-SAX78"
+          },
+          {
+            "id": "SBX78",
+            "name": "SDCTBXG1-SBX78"
+          },
+          {
+            "id": "SEE78",
+            "name": "SDCTEEE4-SEE78"
+          },
+          {
+            "id": "SGG78",
+            "name": "SDCTGGG1-SGG78"
+          },
+          {
+            "id": "SXB78",
+            "name": "SDCTGXB1-SXB78"
+          },
+          {
+            "id": "SJJ78",
+            "name": "SDCTJJJ1-SJJ78"
+          },
+          {
+            "id": "SKK78",
+            "name": "SDCTKKK1-SKK78"
+          },
+          {
+            "id": "SLF78",
+            "name": "SDCTLFN1-SLF78"
+          },
+          {
+            "id": "SLL78",
+            "name": "SDCTLLL1-SLL78"
+          },
+          {
+            "id": "MAD11",
+            "name": "SDFQWGKL-MAD11"
+          },
+          {
+            "id": "HGD1",
+            "name": "SDFQWHGD-HGD1"
+          },
+          {
+            "id": "SBB78",
+            "name": "SDIT1BBB-SBB78"
+          },
+          {
+            "id": "SDG78",
+            "name": "SDIT1BDG-SDG78"
+          },
+          {
+            "id": "SBU78",
+            "name": "SDIT1BUB-SBU78"
+          },
+          {
+            "id": "SHH78",
+            "name": "SDIT1HHH-SHH78"
+          },
+          {
+            "id": "SJU78",
+            "name": "SDIT1JUB-SJU78"
+          },
+          {
+            "id": "SNA1",
+            "name": "SNANTXCA-SNA1"
+          },
+          {
+            "id": "SAM1",
+            "name": "SNDGCA64-SAN1"
+          },
+          {
+            "id": "SNG1",
+            "name": "SNGPSIAU-SNG1"
+          },
+          {
+            "id": "SSA56",
+            "name": "SSIT2AA7-SSA56"
+          },
+          {
+            "id": "STG1",
+            "name": "STTGGE62-STG1"
+          },
+          {
+            "id": "STT1",
+            "name": "STTLWA02-STT1"
+          },
+          {
+            "id": "SYD1",
+            "name": "SYDNAUBV-SYD1"
+          },
+          {
+            "id": "ATL99",
+            "name": "TEESTAAI-ATL43"
+          },
+          {
+            "id": "ATL98",
+            "name": "TEESTAAI-ATL43"
+          },
+          {
+            "id": "ATL76",
+            "name": "TELEPAAI-ATL76"
+          },
+          {
+            "id": "ABC14",
+            "name": "TESAAISA-ABC14"
+          },
+          {
+            "id": "TAT33",
+            "name": "TESAAISA-TAT33"
+          },
+          {
+            "id": "TAT34",
+            "name": "TESAAISB-TAT34"
+          },
+          {
+            "id": "TAT37",
+            "name": "TESAAISD-TAT37"
+          },
+          {
+            "id": "ATL62",
+            "name": "TESSASCH-ATL62"
+          },
+          {
+            "id": "TLP1",
+            "name": "TLPNXM18-TLP1"
+          },
+          {
+            "id": "SAN13",
+            "name": "TOKYJPFA-SAN13"
+          },
+          {
+            "id": "TOK1",
+            "name": "TOKYJPFA-TOK1"
+          },
+          {
+            "id": "TOL1",
+            "name": "TOLDOH21-TOL1"
+          },
+          {
+            "id": "TOR1",
+            "name": "TOROONXN-TOR1"
+          },
+          {
+            "id": "TOY1",
+            "name": "TORYONNZ-TOY1"
+          },
+          {
+            "id": "ATL35",
+            "name": "TTESSAAI-ATL35"
+          },
+          {
+            "id": "TUF1",
+            "name": "TUFCLLI1-TUF1"
+          },
+          {
+            "id": "SAI1",
+            "name": "UBEKQLPD-SAI1"
+          },
+          {
+            "id": "UUU4",
+            "name": "UUUAAAUU-UUU4"
+          },
+          {
+            "id": "YYY1",
+            "name": "UUUAIAAI-YYY1"
+          },
+          {
+            "id": "BAN1",
+            "name": "VSDKYUTP-BAN1"
+          },
+          {
+            "id": "WAS1",
+            "name": "WASHDCSW-WAS1"
+          },
+          {
+            "id": "APP1",
+            "name": "WBHGTYUI-APP1"
+          },
+          {
+            "id": "SUL2",
+            "name": "WERTYUJK-SUL2"
+          },
+          {
+            "id": "DEF2",
+            "name": "WSBHGTYL-DEF2"
+          },
+          {
+            "id": "DHA12",
+            "name": "WSXEDECF-DHA12"
+          },
+          {
+            "id": "MNT11",
+            "name": "WSXEFBTH-MNT11"
+          },
+          {
+            "id": "RAJ1",
+            "name": "YGBIJNLQ-RAJ1"
+          },
+          {
+            "id": "JAG1",
+            "name": "YUDFJULP-JAG1"
+          },
+          {
+            "id": "ZEN1",
+            "name": "ZENCLLI1-ZEN1"
+          },
+          {
+            "id": "ZOG1",
+            "name": "ZOGASTRO-ZOG1"
+          },
+          {
+            "id": "SDE1",
+            "name": "ZXCVBNMA-SDE1"
+          },
+          {
+            "id": "SIP1",
+            "name": "ZXCVBNMK-SIP1"
+          },
+          {
+            "id": "JUL1",
+            "name": "ZXCVBNMM-JUL1"
+          },
+          {
+            "id": "ERT1",
+            "name": "ertclli1-ERT1"
+          },
+          {
+            "id": "IOP1",
+            "name": "iopclli1-IOP1"
+          },
+          {
+            "id": "OPA1",
+            "name": "opaclli1-OPA1"
+          },
+          {
+            "id": "RAI1",
+            "name": "poiuytre-RAI1"
+          },
+          {
+            "id": "PUR1",
+            "name": "purelyde-PUR1"
+          },
+          {
+            "id": "RTY1",
+            "name": "rtyclli1-RTY1"
+          },
+          {
+            "id": "SDF1",
+            "name": "sdfclli1-SDF1"
+          },
+          {
+            "id": "SSW56",
+            "name": "ss8126GT-SSW56"
+          },
+          {
+            "id": "UIO1",
+            "name": "uioclli1-UIO1"
+          }
+        ],
+        "categoryParameters": {
+          "owningEntityList": [
+            {
+              "id": "aaa1",
+              "name": "aaa1"
+            },
+            {
+              "id": "d61e6f2d-12fa-4cc2-91df-7c244011d6fc",
+              "name": "WayneHolland"
+            },
+            {
+              "id": "Melissa",
+              "name": "Melissa"
+            }
+          ],
+          "projectList": [
+            {
+              "id": "WATKINS",
+              "name": "WATKINS"
+            },
+            {
+              "id": "x1",
+              "name": "x1"
+            },
+            {
+              "id": "yyy1",
+              "name": "yyy1"
+            }
+          ],
+          "lineOfBusinessList": [
+            {
+              "id": "ONAP",
+              "name": "ONAP"
+            },
+            {
+              "id": "zzz1",
+              "name": "zzz1"
+            }
+          ],
+          "platformList": [
+            {
+              "id": "platform",
+              "name": "platform"
+            },
+            {
+              "id": "xxx1",
+              "name": "xxx1"
+            }
+          ]
+        },
+        "type": "UPDATE_LCP_REGIONS_AND_TENANTS"
+      },
+      "global": {
+        "name": null,
+        "flags": {
+          "FLAG_1810_IDENTIFY_SERVICE_FOR_NEW_UI": false,
+          "FLAG_1902_VNF_GROUPING": true,
+          "FLAG_1906_COMPONENT_INFO": true,
+          "FLAG_SHOW_ASSIGNMENTS": true,
+          "FLAG_A_LA_CARTE_AUDIT_INFO": true,
+          "FLAG_1810_CR_ADD_CLOUD_OWNER_TO_MSO_REQUEST": true,
+          "FLAG_SHOW_VERIFY_SERVICE": true,
+          "FLAG_1902_NEW_VIEW_EDIT": true,
+          "EMPTY_DRAWING_BOARD_TEST": false,
+          "FLAG_ADD_MSO_TESTAPI_FIELD": true,
+          "FLAG_1906_INSTANTIATION_API_USER_VALIDATION": true,
+          "FLAG_EXP_CREATE_RESOURCES_IN_PARALLEL": false,
+          "FLAG_PRESENT_PROVIDER_NETWORKS_ASSOCIATIONS": true,
+          "FLAG_NETWORK_TO_ASYNC_INSTANTIATION": false,
+          "FLAG_DEFAULT_VNF": true,
+          "FLAG_1810_CR_SOFT_DELETE_ALACARTE_VF_MODULE": true,
+          "FLAG_ASYNC_ALACARTE_VFMODULE": true,
+          "FLAG_FABRIC_CONFIGURATION_ASSIGNMENTS": true,
+          "FLAG_ASYNC_ALACARTE_VNF": true,
+          "FLAG_1810_AAI_LOCAL_CACHE": true,
+          "FLAG_EXP_USE_DEFAULT_HOST_NAME_VERIFIER": false,
+          "FLAG_SERVICE_MODEL_CACHE": true,
+          "FLAG_1902_RETRY_JOB": true,
+          "FLAG_EXP_ANY_ALACARTE_NEW_INSTANTIATION_UI": true,
+          "CREATE_INSTANCE_TEST": false,
+          "FLAG_SETTING_DEFAULTS_IN_DRAWING_BOARD": true,
+          "FLAG_1906_AAI_SUB_DETAILS_REDUCE_DEPTH": true,
+          "FLAG_VF_MODULE_RESUME_STATUS_CREATE": true,
+          "FLAG_SUPPLEMENTARY_FILE": true,
+          "FLAG_5G_IN_NEW_INSTANTIATION_UI": true,
+          "FLAG_RESTRICTED_SELECT": false,
+          "FLAG_1810_CR_LET_SELECTING_COLLECTOR_TYPE_UNCONDITIONALLY": true
+        },
+        "drawingBoardStatus": "CREATE",
+        "type": "UPDATE_DRAWING_BOARD_STATUS"
+      }
+    }
+  }
+
+
+  function  reduxWithFourPnfs(serviceModelId: string, pnfName: string) {
+    return {
+      "service": {
+        "serviceHierarchy": {
+          [serviceModelId]: {
+            // "12550cd7-7708-4f53-a09e-41d3d6327ebc": {
+            "service": {
+              "uuid": "12550cd7-7708-4f53-a09e-41d3d6327ebc",
+              "invariantUuid": "561faa57-7bbb-40ec-a81c-c0d4133e98d4",
+              "name": "AIM Transport SVC_ym161f",
+              "version": "1.0",
+              "toscaModelURL": null,
+              "category": "Network L1-3",
+              "serviceType": "TRANSPORT",
+              "serviceRole": "AIM",
+              "description": "AIM Transport service",
+              "serviceEcompNaming": "true",
+              "instantiationType": "Macro",
+              "inputs": {},
+              "vidNotions": {
+                "instantiationUI": "transportService",
+                "modelCategory": "Transport",
+                "viewEditUI": "legacy",
+                "instantiationType": "Macro"
+              }
+            },
+            "vnfs": {},
+            "networks": {},
+            "collectionResources": {},
+            "configurations": {},
+            "fabricConfigurations": {},
+            "serviceProxies": {},
+            "vfModules": {},
+            "volumeGroups": {},
+            "pnfs": {
+              [pnfName]: {
+                "uuid": "1c831fa9-28a6-4778-8c1d-80b9e769f2ed",
+                "invariantUuid": "74e13a12-dac9-4fba-b102-cd242d9e7f02",
+                "description": "AIM Transport service",
+                "name": "AIM PNF Model",
+                "version": "1.0",
+                "customizationUuid": "ce2453ef-4e8e-4108-944c-57bef89cfab0",
+                "inputs": {},
+                "commands": {},
+                "properties": {
+                  "nf_function": "AIM CE",
+                  "nf_role": "pCE",
+                  "ecomp_generated_naming": "false",
+                  "nf_type": "ROUTER"
+                },
+                "type": "PNF"
+              },
+            },
+            "vnfGroups": {},
+            "vrfs": {}
+          }
+        },
+        "serviceInstance": {
+          "12550cd7-7708-4f53-a09e-41d3d6327ebc": {
+            "action": "Create",
+            "isDirty": false,
+            "vnfs": {},
+            "vrfs": {},
+            "instanceParams": [
+              {}
+            ],
+            "validationCounter": 0,
+            "existingNames": {},
+            "existingVNFCounterMap": {},
+            "existingVRFCounterMap": {},
+            "existingVnfGroupCounterMap": {},
+            "existingNetworksCounterMap": {},
+            "optionalGroupMembersMap": {},
+            "networks": {},
+            "vnfGroups": {},
+            "bulkSize": 1,
+            "instanceName": null,
+            "globalSubscriberId": "e433710f-9217-458d-a79d-1c7aff376d89",
+            "subscriptionServiceType": "TYLER SILVIA",
+            "owningEntityId": "d61e6f2d-12fa-4cc2-91df-7c244011d6fc",
+            "productFamilyId": "e433710f-9217-458d-a79d-1c7aff376d89",
+            "lcpCloudRegionId": null,
+            "aicZoneId": null,
+            "projectName": "WATKINS",
+            "rollbackOnFailure": "true",
+            "aicZoneName": null,
+            "owningEntityName": "WayneHolland",
+            "testApi": "VNF_API",
+            "tenantName": null,
+            "modelInfo": {
+              "modelInvariantId": "561faa57-7bbb-40ec-a81c-c0d4133e98d4",
+              "modelVersionId": "12550cd7-7708-4f53-a09e-41d3d6327ebc",
+              "modelName": "AIM Transport SVC_ym161f",
+              "modelVersion": "1.0",
+              "uuid": "12550cd7-7708-4f53-a09e-41d3d6327ebc",
+              "modelUniqueId": "12550cd7-7708-4f53-a09e-41d3d6327ebc"
+            },
+            "isALaCarte": false,
+            "name": "AIM Transport SVC_ym161f",
+            "version": "1.0",
+            "description": "AIM Transport service",
+            "category": "Network L1-3",
+            "uuid": "12550cd7-7708-4f53-a09e-41d3d6327ebc",
+            "invariantUuid": "561faa57-7bbb-40ec-a81c-c0d4133e98d4",
+            "serviceType": "TRANSPORT",
+            "serviceRole": "AIM",
+            "vidNotions": {
+              "instantiationUI": "transportService",
+              "modelCategory": "Transport",
+              "viewEditUI": "legacy",
+              "instantiationType": "Macro"
+            },
+            "isEcompGeneratedNaming": true,
+            "isMultiStepDesign": false
+          }
+        },
+        "lcpRegionsAndTenants": {
+          "lcpRegionList": [
+            {
+              "id": "AAIAIC25",
+              "name": "AAIAIC25 (AIC)",
+              "isPermitted": true,
+              "cloudOwner": "irma-aic"
+            },
+            {
+              "id": "hvf6",
+              "name": "hvf6 (AIC)",
+              "isPermitted": true,
+              "cloudOwner": "irma-aic"
+            }
+          ],
+          "lcpRegionsTenantsMap": {
+            "AAIAIC25": [
+              {
+                "id": "092eb9e8e4b7412e8787dd091bc58e86",
+                "name": "USP-SIP-IC-24335-T-01",
+                "isPermitted": true,
+                "cloudOwner": "irma-aic"
+              }
+            ],
+            "hvf6": [
+              {
+                "id": "bae71557c5bb4d5aac6743a4e5f1d054",
+                "name": "AIN Web Tool-15-D-testalexandria",
+                "isPermitted": true,
+                "cloudOwner": "irma-aic"
+              },
+              {
+                "id": "229bcdc6eaeb4ca59d55221141d01f8e",
+                "name": "AIN Web Tool-15-D-STTest2",
+                "isPermitted": true,
+                "cloudOwner": "irma-aic"
+              },
+              {
+                "id": "1178612d2b394be4834ad77f567c0af2",
+                "name": "AIN Web Tool-15-D-SSPtestcustome",
+                "isPermitted": true,
+                "cloudOwner": "irma-aic"
+              },
+              {
+                "id": "19c5ade915eb461e8af52fb2fd8cd1f2",
+                "name": "AIN Web Tool-15-D-UncheckedEcopm",
+                "isPermitted": true,
+                "cloudOwner": "irma-aic"
+              },
+              {
+                "id": "de007636e25249238447264a988a927b",
+                "name": "AIN Web Tool-15-D-dfsdf",
+                "isPermitted": true,
+                "cloudOwner": "irma-aic"
+              },
+              {
+                "id": "62f29b3613634ca6a3065cbe0e020c44",
+                "name": "AIN/SMS-16-D-Multiservices1",
+                "isPermitted": true,
+                "cloudOwner": "irma-aic"
+              },
+              {
+                "id": "649289e30d3244e0b48098114d63c2aa",
+                "name": "AIN Web Tool-15-D-SSPST66",
+                "isPermitted": true,
+                "cloudOwner": "irma-aic"
+              },
+              {
+                "id": "3f21eeea6c2c486bba31dab816c05a32",
+                "name": "AIN Web Tool-15-D-ASSPST47",
+                "isPermitted": true,
+                "cloudOwner": "irma-aic"
+              },
+              {
+                "id": "f60ce21d3ee6427586cff0d22b03b773",
+                "name": "CESAR-100-D-sspjg67246",
+                "isPermitted": true,
+                "cloudOwner": "irma-aic"
+              },
+              {
+                "id": "8774659e425f479895ae091bb5d46560",
+                "name": "CESAR-100-D-sspjg68359",
+                "isPermitted": true,
+                "cloudOwner": "irma-aic"
+              },
+              {
+                "id": "624eb554b0d147c19ff8885341760481",
+                "name": "AINWebTool-15-D-iftach",
+                "isPermitted": true,
+                "cloudOwner": "irma-aic"
+              },
+              {
+                "id": "214f55f5fc414c678059c383b03e4962",
+                "name": "CESAR-100-D-sspjg612401",
+                "isPermitted": true,
+                "cloudOwner": "irma-aic"
+              },
+              {
+                "id": "c90666c291664841bb98e4d981ff1db5",
+                "name": "CESAR-100-D-sspjg621340",
+                "isPermitted": true,
+                "cloudOwner": "irma-aic"
+              },
+              {
+                "id": "ce5b6bc5c7b348e1bf4b91ac9a174278",
+                "name": "sspjg621351cloned",
+                "isPermitted": true,
+                "cloudOwner": "irma-aic"
+              },
+              {
+                "id": "b386b768a3f24c8e953abbe0b3488c02",
+                "name": "AINWebTool-15-D-eteancomp",
+                "isPermitted": true,
+                "cloudOwner": "irma-aic"
+              },
+              {
+                "id": "dc6c4dbfd225474e9deaadd34968646c",
+                "name": "AINWebTool-15-T-SPFET",
+                "isPermitted": true,
+                "cloudOwner": "irma-aic"
+              },
+              {
+                "id": "02cb5030e9914aa4be120bd9ed1e19eb",
+                "name": "AINWebTool-15-X-eeweww",
+                "isPermitted": true,
+                "cloudOwner": "irma-aic"
+              },
+              {
+                "id": "f2f3830e4c984d45bcd00e1a04158a79",
+                "name": "CESAR-100-D-spjg61909",
+                "isPermitted": true,
+                "cloudOwner": "irma-aic"
+              },
+              {
+                "id": "05b91bd5137f4929878edd965755c06d",
+                "name": "CESAR-100-D-sspjg621512cloned",
+                "isPermitted": true,
+                "cloudOwner": "irma-aic"
+              },
+              {
+                "id": "7002fbe8482d4a989ddf445b1ce336e0",
+                "name": "AINWebTool-15-X-vdr",
+                "isPermitted": true,
+                "cloudOwner": "irma-aic"
+              },
+              {
+                "id": "4008522be43741dcb1f5422022a2aa0b",
+                "name": "AINWebTool-15-D-ssasa",
+                "isPermitted": true,
+                "cloudOwner": "irma-aic"
+              },
+              {
+                "id": "f44e2e96a1b6476abfda2fa407b00169",
+                "name": "AINWebTool-15-D-PFNPT",
+                "isPermitted": true,
+                "cloudOwner": "irma-aic"
+              },
+              {
+                "id": "b69a52bec8a84669a37a1e8b72708be7",
+                "name": "AINWebTool-15-X-vdre",
+                "isPermitted": true,
+                "cloudOwner": "irma-aic"
+              },
+              {
+                "id": "fac7d9fd56154caeb9332202dcf2969f",
+                "name": "AINWebTool-15-X-NONPODECOMP",
+                "isPermitted": true,
+                "cloudOwner": "irma-aic"
+              },
+              {
+                "id": "2d34d8396e194eb49969fd61ffbff961",
+                "name": "DN5242-Nov16-T5",
+                "isPermitted": true,
+                "cloudOwner": "irma-aic"
+              },
+              {
+                "id": "cb42a77ff45b48a8b8deb83bb64acc74",
+                "name": "ro-T11",
+                "isPermitted": true,
+                "cloudOwner": "irma-aic"
+              },
+              {
+                "id": "fa45ca53c80b492fa8be5477cd84fc2b",
+                "name": "ro-T112",
+                "isPermitted": true,
+                "cloudOwner": "irma-aic"
+              },
+              {
+                "id": "4914ab0ab3a743e58f0eefdacc1dde77",
+                "name": "DN5242-Nov21-T1",
+                "isPermitted": true,
+                "cloudOwner": "irma-aic"
+              },
+              {
+                "id": "d0a3e3f2964542259d155a81c41aadc3",
+                "name": "test-hvf6-09",
+                "isPermitted": true,
+                "cloudOwner": "irma-aic"
+              },
+              {
+                "id": "cbb99fe4ada84631b7baf046b6fd2044",
+                "name": "DN5242-Nov16-T3",
+                "isPermitted": true,
+                "cloudOwner": "irma-aic"
+              }
+            ]
+          }
+        },
+        "subscribers": [
+          {
+            "id": "ERICA5779-Subscriber-2",
+            "name": "ERICA5779-Subscriber-2",
+            "isPermitted": false
+          },
+          {
+            "id": "ERICA5779-Subscriber-3",
+            "name": "ERICA5779-Subscriber-3",
+            "isPermitted": false
+          },
+          {
+            "id": "ERICA5779-Subscriber-4",
+            "name": "ERICA5779-Subscriber-5",
+            "isPermitted": false
+          },
+          {
+            "id": "ERICA5779-TestSub-PWT-101",
+            "name": "ERICA5779-TestSub-PWT-101",
+            "isPermitted": false
+          },
+          {
+            "id": "ERICA5779-TestSub-PWT-102",
+            "name": "ERICA5779-TestSub-PWT-102",
+            "isPermitted": false
+          },
+          {
+            "id": "ERICA5779-TestSub-PWT-103",
+            "name": "ERICA5779-TestSub-PWT-103",
+            "isPermitted": false
+          },
+          {
+            "id": "31739f3e-526b-11e6-beb8-9e71128cae77",
+            "name": "CRAIG/ROBERTS",
+            "isPermitted": false
+          },
+          {
+            "id": "DHV1707-TestSubscriber-2",
+            "name": "DALE BRIDGES",
+            "isPermitted": false
+          },
+          {
+            "id": "jimmy-example",
+            "name": "JimmyExampleCust-20161102",
+            "isPermitted": false
+          },
+          {
+            "id": "jimmy-example2",
+            "name": "JimmyExampleCust-20161103",
+            "isPermitted": false
+          },
+          {
+            "id": "CAR_2020_ER",
+            "name": "CAR_2020_ER",
+            "isPermitted": true
+          },
+          {
+            "id": "a9a77d5a-123e-4ca2-9eb9-0b015d2ee0fb",
+            "name": "Emanuel",
+            "isPermitted": true
+          },
+          {
+            "id": "21014aa2-526b-11e6-beb8-9e71128cae77",
+            "name": "JULIO ERICKSON",
+            "isPermitted": false
+          },
+          {
+            "id": "DHV1707-TestSubscriber-1",
+            "name": "LLOYD BRIDGES",
+            "isPermitted": false
+          },
+          {
+            "id": "e433710f-9217-458d-a79d-1c7aff376d89",
+            "name": "SILVIA ROBBINS",
+            "isPermitted": true
+          },
+          {
+            "id": "global-customer-id",
+            "name": "global-customer-id",
+            "isPermitted": true
+          }
+        ],
+        "productFamilies": null,
+        "serviceTypes": {
+          "e433710f-9217-458d-a79d-1c7aff376d89": [
+            {
+              "id": "17",
+              "name": "JOHANNA_SANTOS",
+              "isPermitted": false
+            },
+            {
+              "id": "16",
+              "name": "LINDSEY",
+              "isPermitted": false
+            },
+            {
+              "id": "2",
+              "name": "Emanuel",
+              "isPermitted": false
+            },
+            {
+              "id": "5",
+              "name": "Kennedy",
+              "isPermitted": false
+            },
+            {
+              "id": "14",
+              "name": "SSD",
+              "isPermitted": false
+            },
+            {
+              "id": "1",
+              "name": "TYLER SILVIA",
+              "isPermitted": true
+            },
+            {
+              "id": "12",
+              "name": "VPMS",
+              "isPermitted": false
+            },
+            {
+              "id": "3",
+              "name": "vJamie",
+              "isPermitted": false
+            },
+            {
+              "id": "0",
+              "name": "vRichardson",
+              "isPermitted": false
+            },
+            {
+              "id": "18",
+              "name": "vCarroll",
+              "isPermitted": false
+            },
+            {
+              "id": "9",
+              "name": "vFLORENCE",
+              "isPermitted": false
+            },
+            {
+              "id": "13",
+              "name": "vWINIFRED",
+              "isPermitted": false
+            },
+            {
+              "id": "10",
+              "name": "vMNS",
+              "isPermitted": false
+            },
+            {
+              "id": "15",
+              "name": "vMOG",
+              "isPermitted": false
+            },
+            {
+              "id": "8",
+              "name": "vOTA",
+              "isPermitted": false
+            },
+            {
+              "id": "11",
+              "name": "vEsmeralda",
+              "isPermitted": false
+            },
+            {
+              "id": "6",
+              "name": "vPorfirio",
+              "isPermitted": false
+            },
+            {
+              "id": "7",
+              "name": "vVM",
+              "isPermitted": false
+            },
+            {
+              "id": "4",
+              "name": "vVoiceMail",
+              "isPermitted": false
+            }
+          ]
+        },
+        "aicZones": [
+          {
+            "id": "ATL53",
+            "name": "AAIATLTE-ATL53"
+          },
+          {
+            "id": "ABC15",
+            "name": "AAITESAN-ABC15"
+          },
+          {
+            "id": "TES36",
+            "name": "ABCEETES-TES36"
+          },
+          {
+            "id": "ATL54",
+            "name": "AICFTAAI-ATL54"
+          },
+          {
+            "id": "ATL43",
+            "name": "AICLOCID-ATL43"
+          },
+          {
+            "id": "AMD15",
+            "name": "AMDFAA01-AMD15"
+          },
+          {
+            "id": "AMF11",
+            "name": "AMDOCS01-AMF11"
+          },
+          {
+            "id": "RCT1",
+            "name": "AMSTERNL-RCT1"
+          },
+          {
+            "id": "AMS1",
+            "name": "AMSTNLBW-AMS1"
+          },
+          {
+            "id": "HJH1",
+            "name": "AOEEQQQD-HJH1"
+          },
+          {
+            "id": "HJE1",
+            "name": "AOEEWWWD-HJE1"
+          },
+          {
+            "id": "MCS1",
+            "name": "ASACMAMS-MCS1"
+          },
+          {
+            "id": "AUG1",
+            "name": "ASDFGHJK-AUG1"
+          },
+          {
+            "id": "LUC1",
+            "name": "ATLDFGYC-LUC1"
+          },
+          {
+            "id": "ATL1",
+            "name": "ATLNGAMA-ATL1"
+          },
+          {
+            "id": "ATL2",
+            "name": "ATLNGANW-ATL2"
+          },
+          {
+            "id": "HPO1",
+            "name": "ATLNGAUP-HPO1"
+          },
+          {
+            "id": "ANI1",
+            "name": "ATLNGTRE-ANI1"
+          },
+          {
+            "id": "ATL44",
+            "name": "ATLSANAB-ATL44"
+          },
+          {
+            "id": "ATL56",
+            "name": "ATLSANAC-ATL56"
+          },
+          {
+            "id": "ABC11",
+            "name": "ATLSANAI-ABC11"
+          },
+          {
+            "id": "ATL34",
+            "name": "ATLSANAI-ATL34"
+          },
+          {
+            "id": "ATL63",
+            "name": "ATLSANEW-ATL63"
+          },
+          {
+            "id": "ABC12",
+            "name": "ATLSECIA-ABC12"
+          },
+          {
+            "id": "AMD18",
+            "name": "AUDIMA01-AMD18"
+          },
+          {
+            "id": "AVT1",
+            "name": "AVTRFLHD-AVT1"
+          },
+          {
+            "id": "KIT1",
+            "name": "BHYJFGLN-KIT1"
+          },
+          {
+            "id": "BHY17",
+            "name": "BHYTFRF3-BHY17"
+          },
+          {
+            "id": "RTW5",
+            "name": "BHYTFRY4-RTW5"
+          },
+          {
+            "id": "RTZ4",
+            "name": "BHYTFRZ6-RTZ4"
+          },
+          {
+            "id": "RTD2",
+            "name": "BHYTFRk4-RTD2"
+          },
+          {
+            "id": "BNA1",
+            "name": "BNARAGBK-BNA1"
+          },
+          {
+            "id": "VEL1",
+            "name": "BNMLKUIK-VEL1"
+          },
+          {
+            "id": "BOT1",
+            "name": "BOTHWAKY-BOT1"
+          },
+          {
+            "id": "CAL33",
+            "name": "CALIFORN-CAL33"
+          },
+          {
+            "id": "ATL84",
+            "name": "CANTTCOC-ATL84"
+          },
+          {
+            "id": "HSD1",
+            "name": "CHASKCDS-HSD1"
+          },
+          {
+            "id": "CHI1",
+            "name": "CHILLIWE-CHI1"
+          },
+          {
+            "id": "XCP12",
+            "name": "CHKGH123-XCP12"
+          },
+          {
+            "id": "JNL1",
+            "name": "CJALSDAC-JNL1"
+          },
+          {
+            "id": "KJN1",
+            "name": "CKALDKSA-KJN1"
+          },
+          {
+            "id": "CLG1",
+            "name": "CLGRABAD-CLG1"
+          },
+          {
+            "id": "CKL1",
+            "name": "CLKSKCKK-CKL1"
+          },
+          {
+            "id": "ATL66",
+            "name": "CLLIAAII-ATL66"
+          },
+          {
+            "id": "CQK1",
+            "name": "CQKSCAKK-CQK1"
+          },
+          {
+            "id": "CWY1",
+            "name": "CWYMOWBS-CWY1"
+          },
+          {
+            "id": "DKJ1",
+            "name": "DKJSJDKA-DKJ1"
+          },
+          {
+            "id": "DSF45",
+            "name": "DSFBG123-DSF45"
+          },
+          {
+            "id": "DSL12",
+            "name": "DSLFK242-DSL12"
+          },
+          {
+            "id": "FDE55",
+            "name": "FDERT555-FDE55"
+          },
+          {
+            "id": "VEN2",
+            "name": "FGHJUHIL-VEN2"
+          },
+          {
+            "id": "ATL64",
+            "name": "FORLOAAJ-ATL64"
+          },
+          {
+            "id": "GNV1",
+            "name": "GNVLSCTL-GNV1"
+          },
+          {
+            "id": "SAN22",
+            "name": "GNVLSCTL-SAN22"
+          },
+          {
+            "id": "KAP1",
+            "name": "HIOUYTRQ-KAP1"
+          },
+          {
+            "id": "LIS1",
+            "name": "HOSTPROF-LIS1"
+          },
+          {
+            "id": "HRG1",
+            "name": "HRGHRGGS-HRG1"
+          },
+          {
+            "id": "HST25",
+            "name": "HSTNTX01-HST25"
+          },
+          {
+            "id": "STN27",
+            "name": "HSTNTX01-STN27"
+          },
+          {
+            "id": "HST70",
+            "name": "HSTNTX70-HST70"
+          },
+          {
+            "id": "KOR1",
+            "name": "HYFLNBVT-KOR1"
+          },
+          {
+            "id": "RAD10",
+            "name": "INDIPUNE-RAD10"
+          },
+          {
+            "id": "REL1",
+            "name": "INGERFGT-REL1"
+          },
+          {
+            "id": "JAD1",
+            "name": "JADECLLI-JAD1"
+          },
+          {
+            "id": "HKA1",
+            "name": "JAKHLASS-HKA1"
+          },
+          {
+            "id": "JCS1",
+            "name": "JCSJSCJS-JCS1"
+          },
+          {
+            "id": "JCV1",
+            "name": "JCVLFLBW-JCV1"
+          },
+          {
+            "id": "KGM2",
+            "name": "KGMTNC20-KGM2"
+          },
+          {
+            "id": "KJF12",
+            "name": "KJFDH123-KJF12"
+          },
+          {
+            "id": "JGS1",
+            "name": "KSJKKKKK-JGS1"
+          },
+          {
+            "id": "LAG1",
+            "name": "LARGIZON-LAG1"
+          },
+          {
+            "id": "LAG1a",
+            "name": "LARGIZON-LAG1a"
+          },
+          {
+            "id": "LAG45",
+            "name": "LARGIZON-LAG1a"
+          },
+          {
+            "id": "LAG1b",
+            "name": "LARGIZON-LAG1b"
+          },
+          {
+            "id": "WAN1",
+            "name": "LEIWANGW-WAN1"
+          },
+          {
+            "id": "DSA1",
+            "name": "LKJHGFDS-DSA1"
+          },
+          {
+            "id": "LON1",
+            "name": "LONEENCO-LON1"
+          },
+          {
+            "id": "SITE",
+            "name": "LONEENCO-SITE"
+          },
+          {
+            "id": "ZXL1",
+            "name": "LWLWCANN-ZXL1"
+          },
+          {
+            "id": "hvf20",
+            "name": "MDTWNJ21-hvf20"
+          },
+          {
+            "id": "hvf32",
+            "name": "MDTWNJ21-hvf32"
+          },
+          {
+            "id": "AMD13",
+            "name": "MEMATLAN-AMD13"
+          },
+          {
+            "id": "MIC54",
+            "name": "MICHIGAN-MIC54"
+          },
+          {
+            "id": "MAR1",
+            "name": "MNBVCXZM-MAR1"
+          },
+          {
+            "id": "NCA1",
+            "name": "NCANCANN-NCA1"
+          },
+          {
+            "id": "NFT1",
+            "name": "NFTJSSSS-NFT1"
+          },
+          {
+            "id": "GAR1",
+            "name": "NGFVSJKO-GAR1"
+          },
+          {
+            "id": "NYC1",
+            "name": "NYCMNY54-NYC1"
+          },
+          {
+            "id": "OKC1",
+            "name": "OKCBOK55-OKC1"
+          },
+          {
+            "id": "OLG1",
+            "name": "OLHOLHOL-OLG1"
+          },
+          {
+            "id": "OLK1",
+            "name": "OLKOLKLS-OLK1"
+          },
+          {
+            "id": "NIR1",
+            "name": "ORFLMANA-NIR1"
+          },
+          {
+            "id": "JAN1",
+            "name": "ORFLMATT-JAN1"
+          },
+          {
+            "id": "ORL1",
+            "name": "ORLDFLMA-ORL1"
+          },
+          {
+            "id": "PAR1",
+            "name": "PARSFRCG-PAR1"
+          },
+          {
+            "id": "PBL1",
+            "name": "PBLAPBAI-PBL1"
+          },
+          {
+            "id": "mac10",
+            "name": "PKGTESTF-mac10"
+          },
+          {
+            "id": "mac20",
+            "name": "PKGTESTF-mac20"
+          },
+          {
+            "id": "TIR2",
+            "name": "PLKINHYI-TIR2"
+          },
+          {
+            "id": "IBB1",
+            "name": "PLMKOIJU-IBB1"
+          },
+          {
+            "id": "COM1",
+            "name": "PLMKOPIU-COM1"
+          },
+          {
+            "id": "POI1",
+            "name": "PLMNJKIU-POI1"
+          },
+          {
+            "id": "PLT1",
+            "name": "PLTNCA60-PLT1"
+          },
+          {
+            "id": "POI22",
+            "name": "POIUY123-POI22"
+          },
+          {
+            "id": "DCC1",
+            "name": "POIUYTGH-DCC1"
+          },
+          {
+            "id": "DCC1a",
+            "name": "POIUYTGH-DCC1a"
+          },
+          {
+            "id": "DCC1b",
+            "name": "POIUYTGH-DCC1b"
+          },
+          {
+            "id": "DCC2",
+            "name": "POIUYTGH-DCC2"
+          },
+          {
+            "id": "DCC3",
+            "name": "POIUYTGH-DCC3"
+          },
+          {
+            "id": "IAA1",
+            "name": "QAZXSWED-IAA1"
+          },
+          {
+            "id": "QWE1",
+            "name": "QWECLLI1-QWE1"
+          },
+          {
+            "id": "NUM1",
+            "name": "QWERTYUI-NUM1"
+          },
+          {
+            "id": "RAD1",
+            "name": "RADICAL1-RAD1"
+          },
+          {
+            "id": "RJN1",
+            "name": "RJNRBZAW-RJN1"
+          },
+          {
+            "id": "SAA13",
+            "name": "SAIT1AA9-SAA13"
+          },
+          {
+            "id": "SAA14",
+            "name": "SAIT1AA9-SAA14"
+          },
+          {
+            "id": "SDD81",
+            "name": "SAIT1DD6-SDD81"
+          },
+          {
+            "id": "SDD82",
+            "name": "SAIT1DD9-SDD82"
+          },
+          {
+            "id": "SAA11",
+            "name": "SAIT9AA2-SAA11"
+          },
+          {
+            "id": "SAA80",
+            "name": "SAIT9AA3-SAA80"
+          },
+          {
+            "id": "SAA12",
+            "name": "SAIT9AF8-SAA12"
+          },
+          {
+            "id": "SCC80",
+            "name": "SAIT9CC3-SCC80"
+          },
+          {
+            "id": "ATL75",
+            "name": "SANAAIRE-ATL75"
+          },
+          {
+            "id": "ICC1",
+            "name": "SANJITAT-ICC1"
+          },
+          {
+            "id": "SCK1",
+            "name": "SCKSCKSK-SCK1"
+          },
+          {
+            "id": "EHH78",
+            "name": "SDCSHHH5-EHH78"
+          },
+          {
+            "id": "SAA78",
+            "name": "SDCTAAA1-SAA78"
+          },
+          {
+            "id": "SAX78",
+            "name": "SDCTAXG1-SAX78"
+          },
+          {
+            "id": "SBX78",
+            "name": "SDCTBXG1-SBX78"
+          },
+          {
+            "id": "SEE78",
+            "name": "SDCTEEE4-SEE78"
+          },
+          {
+            "id": "SGG78",
+            "name": "SDCTGGG1-SGG78"
+          },
+          {
+            "id": "SXB78",
+            "name": "SDCTGXB1-SXB78"
+          },
+          {
+            "id": "SJJ78",
+            "name": "SDCTJJJ1-SJJ78"
+          },
+          {
+            "id": "SKK78",
+            "name": "SDCTKKK1-SKK78"
+          },
+          {
+            "id": "SLF78",
+            "name": "SDCTLFN1-SLF78"
+          },
+          {
+            "id": "SLL78",
+            "name": "SDCTLLL1-SLL78"
+          },
+          {
+            "id": "MAD11",
+            "name": "SDFQWGKL-MAD11"
+          },
+          {
+            "id": "HGD1",
+            "name": "SDFQWHGD-HGD1"
+          },
+          {
+            "id": "SBB78",
+            "name": "SDIT1BBB-SBB78"
+          },
+          {
+            "id": "SDG78",
+            "name": "SDIT1BDG-SDG78"
+          },
+          {
+            "id": "SBU78",
+            "name": "SDIT1BUB-SBU78"
+          },
+          {
+            "id": "SHH78",
+            "name": "SDIT1HHH-SHH78"
+          },
+          {
+            "id": "SJU78",
+            "name": "SDIT1JUB-SJU78"
+          },
+          {
+            "id": "SNA1",
+            "name": "SNANTXCA-SNA1"
+          },
+          {
+            "id": "SAM1",
+            "name": "SNDGCA64-SAN1"
+          },
+          {
+            "id": "SNG1",
+            "name": "SNGPSIAU-SNG1"
+          },
+          {
+            "id": "SSA56",
+            "name": "SSIT2AA7-SSA56"
+          },
+          {
+            "id": "STG1",
+            "name": "STTGGE62-STG1"
+          },
+          {
+            "id": "STT1",
+            "name": "STTLWA02-STT1"
+          },
+          {
+            "id": "SYD1",
+            "name": "SYDNAUBV-SYD1"
+          },
+          {
+            "id": "ATL99",
+            "name": "TEESTAAI-ATL43"
+          },
+          {
+            "id": "ATL98",
+            "name": "TEESTAAI-ATL43"
+          },
+          {
+            "id": "ATL76",
+            "name": "TELEPAAI-ATL76"
+          },
+          {
+            "id": "ABC14",
+            "name": "TESAAISA-ABC14"
+          },
+          {
+            "id": "TAT33",
+            "name": "TESAAISA-TAT33"
+          },
+          {
+            "id": "TAT34",
+            "name": "TESAAISB-TAT34"
+          },
+          {
+            "id": "TAT37",
+            "name": "TESAAISD-TAT37"
+          },
+          {
+            "id": "ATL62",
+            "name": "TESSASCH-ATL62"
+          },
+          {
+            "id": "TLP1",
+            "name": "TLPNXM18-TLP1"
+          },
+          {
+            "id": "SAN13",
+            "name": "TOKYJPFA-SAN13"
+          },
+          {
+            "id": "TOK1",
+            "name": "TOKYJPFA-TOK1"
+          },
+          {
+            "id": "TOL1",
+            "name": "TOLDOH21-TOL1"
+          },
+          {
+            "id": "TOR1",
+            "name": "TOROONXN-TOR1"
+          },
+          {
+            "id": "TOY1",
+            "name": "TORYONNZ-TOY1"
+          },
+          {
+            "id": "ATL35",
+            "name": "TTESSAAI-ATL35"
+          },
+          {
+            "id": "TUF1",
+            "name": "TUFCLLI1-TUF1"
+          },
+          {
+            "id": "SAI1",
+            "name": "UBEKQLPD-SAI1"
+          },
+          {
+            "id": "UUU4",
+            "name": "UUUAAAUU-UUU4"
+          },
+          {
+            "id": "YYY1",
+            "name": "UUUAIAAI-YYY1"
+          },
+          {
+            "id": "BAN1",
+            "name": "VSDKYUTP-BAN1"
+          },
+          {
+            "id": "WAS1",
+            "name": "WASHDCSW-WAS1"
+          },
+          {
+            "id": "APP1",
+            "name": "WBHGTYUI-APP1"
+          },
+          {
+            "id": "SUL2",
+            "name": "WERTYUJK-SUL2"
+          },
+          {
+            "id": "DEF2",
+            "name": "WSBHGTYL-DEF2"
+          },
+          {
+            "id": "DHA12",
+            "name": "WSXEDECF-DHA12"
+          },
+          {
+            "id": "MNT11",
+            "name": "WSXEFBTH-MNT11"
+          },
+          {
+            "id": "RAJ1",
+            "name": "YGBIJNLQ-RAJ1"
+          },
+          {
+            "id": "JAG1",
+            "name": "YUDFJULP-JAG1"
+          },
+          {
+            "id": "ZEN1",
+            "name": "ZENCLLI1-ZEN1"
+          },
+          {
+            "id": "ZOG1",
+            "name": "ZOGASTRO-ZOG1"
+          },
+          {
+            "id": "SDE1",
+            "name": "ZXCVBNMA-SDE1"
+          },
+          {
+            "id": "SIP1",
+            "name": "ZXCVBNMK-SIP1"
+          },
+          {
+            "id": "JUL1",
+            "name": "ZXCVBNMM-JUL1"
+          },
+          {
+            "id": "ERT1",
+            "name": "ertclli1-ERT1"
+          },
+          {
+            "id": "IOP1",
+            "name": "iopclli1-IOP1"
+          },
+          {
+            "id": "OPA1",
+            "name": "opaclli1-OPA1"
+          },
+          {
+            "id": "RAI1",
+            "name": "poiuytre-RAI1"
+          },
+          {
+            "id": "PUR1",
+            "name": "purelyde-PUR1"
+          },
+          {
+            "id": "RTY1",
+            "name": "rtyclli1-RTY1"
+          },
+          {
+            "id": "SDF1",
+            "name": "sdfclli1-SDF1"
+          },
+          {
+            "id": "SSW56",
+            "name": "ss8126GT-SSW56"
+          },
+          {
+            "id": "UIO1",
+            "name": "uioclli1-UIO1"
+          }
+        ],
+        "categoryParameters": {
+          "owningEntityList": [
+            {
+              "id": "d61e6f2d-12fa-4cc2-91df-7c244011d6fc",
+              "name": "WayneHolland"
+            },
+            {
+              "id": "Melissa",
+              "name": "Melissa"
+            },
+            {
+              "id": "aaa1",
+              "name": "aaa1"
+            }
+          ],
+          "projectList": [
+            {
+              "id": "WATKINS",
+              "name": "WATKINS"
+            },
+            {
+              "id": "x1",
+              "name": "x1"
+            },
+            {
+              "id": "yyy1",
+              "name": "yyy1"
+            }
+          ],
+          "lineOfBusinessList": [
+            {
+              "id": "ONAP",
+              "name": "ONAP"
+            },
+            {
+              "id": "zzz1",
+              "name": "zzz1"
+            }
+          ],
+          "platformList": [
+            {
+              "id": "platform",
+              "name": "platform"
+            },
+            {
+              "id": "xxx1",
+              "name": "xxx1"
+            }
+          ]
+        },
+        "type": "UPDATE_LCP_REGIONS_AND_TENANTS"
+      }
+
+    }
+  }
diff --git a/vid-webpack-master/cypress/integration/iFrames/resume.e2e.ts b/vid-webpack-master/cypress/integration/iFrames/resume.e2e.ts
new file mode 100644 (file)
index 0000000..65913d4
--- /dev/null
@@ -0,0 +1,119 @@
+///<reference path="../../../node_modules/cypress/types/index.d.ts"/>
+import {JsonBuilder} from '../../support/jsonBuilders/jsonBuilder';
+import {ServiceModel} from '../../support/jsonBuilders/models/service.model';
+import {AaiServiceInstancesModel} from '../../support/jsonBuilders/models/serviceInstances.model';
+import {AAISubDetailsModel} from '../../support/jsonBuilders/models/aaiSubDetails.model';
+import {AAISubViewEditModel} from '../../support/jsonBuilders/models/aaiSubViewEdit.model';
+
+describe('Resume tests', function () {
+  describe('Resume Defect 710619 - VID doesn\'t prompt to allow the user to attach the volume group on clicking Resume', () => {
+
+    let jsonBuilderAAIService: JsonBuilder<ServiceModel> = new JsonBuilder<ServiceModel>();
+    let jsonBuilderAAISubViewEditModel: JsonBuilder<AAISubViewEditModel> = new JsonBuilder<AAISubViewEditModel>();
+    let jsonBuilderAAISubDetailsModel: JsonBuilder<AAISubDetailsModel> = new JsonBuilder<AAISubDetailsModel>();
+    let jsonBuilderAaiServiceInstances: JsonBuilder<AaiServiceInstancesModel> = new JsonBuilder<AaiServiceInstancesModel>();
+    beforeEach(() => {
+      cy.readFile('/cypress/support/jsonBuilders/mocks/jsons/defect710619/serviceE2E.json').then((res) => {
+        jsonBuilderAAIService.basicJson(
+          res,
+          Cypress.config('baseUrl') + "/rest/models/services/**",
+          200, 0,
+          "service-complexService")
+      });
+
+
+      cy.readFile('/cypress/support/jsonBuilders/mocks/jsons/defect710619/aaiSubViewEditForServiceWithSomeVFModuleE2E.json').then((res) => {
+        jsonBuilderAAISubViewEditModel.basicJson(
+          res,
+          Cypress.config('baseUrl') + "/aai_sub_viewedit/**",
+          200,
+          0,
+          "aai-sub-view-edit")
+      });
+
+      cy.readFile('/cypress/support/jsonBuilders/mocks/jsons/defect710619/aaiSubDetailsE2E.json').then((res) => {
+        jsonBuilderAAISubDetailsModel.basicJson(
+          res,
+          Cypress.config('baseUrl') + "/aai_sub_details/**",
+          200,
+          0,
+          "aai-sub-details")
+      });
+
+      cy.readFile('/cypress/support/jsonBuilders/mocks/jsons/defect710619/aaiServiceInstancesE2E.json').then((res) => {
+        jsonBuilderAaiServiceInstances.basicJson(
+          res,
+          Cypress.config('baseUrl') + "/search_service_instances**",
+          200,
+          0,
+          "aai-get-service-instances")
+      });
+
+      cy.server().route({
+        url: Cypress.config('baseUrl') + '/mso/mso_create_vfmodule_instance/dedd680f-f3bd-46d8-97c7-b6fc28db9317/vnfs/1d45e992-e282-4ba5-b17a-9ca6562169e3',
+        method: 'POST',
+        status: 200,
+        response: "[]",
+      }).as("actualResumeCall");
+
+      cy.initVidMock();
+
+      cy.initTenants();
+
+      cy.login();
+    });
+
+    afterEach(() => {
+      cy.screenshot();
+    });
+
+    it(`Resume Defect 710619 - with flag FLAG_1810_CR_SOFT_DELETE_ALACARTE_VF_MODULE is ON`, function () {
+      cy.visit('/serviceModels.htm#/instantiate?subscriberId=e433710f-9217-458d-a79d-1c7aff376d89&subscriberName=SILVIA ROBBINS&serviceType=TYLER%20SILVIA&serviceInstanceId=dedd680f-f3bd-46d8-97c7-b6fc28db9317&aaiModelVersionId=4b60252a-bf6c-40df-9db5-98b4c363fdf4&isPermitted=true').then(()=>{
+        cy.wait('@service-complexService');
+        checkResumeAndPopup("dpa2bccfx5992v_base_module","vfModuleTreeNode-assigned");
+      });
+     });
+
+    it(`Resume Defect 710619 - with flag FLAG_1810_CR_SOFT_DELETE_ALACARTE_VF_MODULE is OFF`, function () {
+
+      cy.readFile('/cypress/support/jsonBuilders/mocks/jsons/flags.json').then((res) => {
+        cy.server()
+          .route({
+            method: 'GET',
+            delay :  0,
+            status :  200,
+            url : Cypress.config('baseUrl') + "/flags**",
+            response : {
+              "FLAG_ADD_MSO_TESTAPI_FIELD": true,
+              "FLAG_1810_CR_SOFT_DELETE_ALACARTE_VF_MODULE": false
+            }
+          }).as('initFlags');
+      });
+
+      cy.visit('/serviceModels.htm#/instantiate?subscriberId=e433710f-9217-458d-a79d-1c7aff376d89&subscriberName=SILVIA ROBBINS&serviceType=TYLER%20SILVIA&serviceInstanceId=dedd680f-f3bd-46d8-97c7-b6fc28db9317&aaiModelVersionId=4b60252a-bf6c-40df-9db5-98b4c363fdf4&isPermitted=true');
+      cy.wait('@service-complexService');
+
+      checkResumeAndPopup("dpa2bccfx5992v_base_module","vfModuleTreeNode-assigned");
+
+    });
+
+
+    function checkResumeAndPopup(vfModuleName:string, vfModuleClassName:string)  {
+      cy.get('div').find('.' + vfModuleClassName)
+        .getElementByDataTestsId('resumeVFModuleButton-' + vfModuleName).click().then(()=> {
+        cy.getElementByDataTestsId('confirmResumeDeleteButton').should('be.visible')
+          .getElementByDataTestsId('softDeleteButton').should('not.be.visible')
+          .getElementByDataTestsId('lcpRegion').should('be.visible').select("hvf6")
+          .getElementByDataTestsId('tenant').should('be.visible').select("bae71557c5bb4d5aac6743a4e5f1d054");
+        cy.getElementByDataTestsId('confirmResumeDeleteButton').not('.button--inactive').click().then(()=> {
+            cy.wait('@actualResumeCall').then(xhr => {
+              cy.readFile('/cypress/support/jsonBuilders/mocks/jsons/defect710619/expectedResumeWithVGResults.json').then((expectedResult) => {
+                cy.deepCompare(xhr.request.body, expectedResult);
+              });
+            });
+        });
+      });
+    }
+  });
+});
+
index cc64343..683e1d9 100644 (file)
@@ -35,18 +35,18 @@ describe('Retry Page', function () {
       res.action = 'Create';
       res.statusMessage = 'Service instantiation has failed.'
       // Adding VNF with isFailed.
-      res.vnfs["2017-388_ADIOD-vPE 0"].isFailed = true;
-      res.vnfs["2017-488_ADIOD-vPE 0"].isFailed = true;
-      res.vnfs["2017-488_ADIOD-vPE 0"].statusMessage = 'VNF instantiation failed message';
-      res.vnfs["2017-388_ADIOD-vPE 0"].action = 'Create';
-      res.vnfs["2017-488_ADIOD-vPE 0"].action = 'Create';
+      res.vnfs["2017-388_PASQUALE-vPE 0"].isFailed = true;
+      res.vnfs["2017-488_PASQUALE-vPE 0"].isFailed = true;
+      res.vnfs["2017-488_PASQUALE-vPE 0"].statusMessage = 'VNF instantiation failed message';
+      res.vnfs["2017-388_PASQUALE-vPE 0"].action = 'Create';
+      res.vnfs["2017-488_PASQUALE-vPE 0"].action = 'Create';
       res.networks["ExtVL 0"].action = 'Create';
       res.networks["ExtVL 0"].statusMessage = 'Network instantiation failed message';
 
       // Adding VFModule with isFailed.
-      res.vnfs["2017-488_ADIOD-vPE 0"].vfModules["2017488_adiodvpe0..2017488AdiodVpe..ADIOD_base_vPE_BV..module-0"]["2017488_adiodvpe0..2017488AdiodVpe..ADIOD_base_vPE_BV..module-0uvfot"].isFailed = true;
-      res.vnfs["2017-488_ADIOD-vPE 0"].vfModules["2017488_adiodvpe0..2017488AdiodVpe..ADIOD_base_vPE_BV..module-0"]["2017488_adiodvpe0..2017488AdiodVpe..ADIOD_base_vPE_BV..module-0uvfot"].statusMessage = 'Short vfModule Failure Message';
-      res.vnfs["2017-488_ADIOD-vPE 0"].vfModules["2017488_adiodvpe0..2017488AdiodVpe..ADIOD_base_vPE_BV..module-0"]["2017488_adiodvpe0..2017488AdiodVpe..ADIOD_base_vPE_BV..module-0uvfot"].action = 'Create';
+      res.vnfs["2017-488_PASQUALE-vPE 0"].vfModules["2017488_pasqualevpe0..2017488PasqualeVpe..PASQUALE_base_vPE_BV..module-0"]["2017488_pasqualevpe0..2017488PasqualeVpe..PASQUALE_base_vPE_BV..module-0uvfot"].isFailed = true;
+      res.vnfs["2017-488_PASQUALE-vPE 0"].vfModules["2017488_pasqualevpe0..2017488PasqualeVpe..PASQUALE_base_vPE_BV..module-0"]["2017488_pasqualevpe0..2017488PasqualeVpe..PASQUALE_base_vPE_BV..module-0uvfot"].statusMessage = 'Short vfModule Failure Message';
+      res.vnfs["2017-488_PASQUALE-vPE 0"].vfModules["2017488_pasqualevpe0..2017488PasqualeVpe..PASQUALE_base_vPE_BV..module-0"]["2017488_pasqualevpe0..2017488PasqualeVpe..PASQUALE_base_vPE_BV..module-0uvfot"].action = 'Create';
 
       jsonBuilderAndMock.basicJson(
         res,
@@ -58,7 +58,7 @@ describe('Retry Page', function () {
 
     cy.openIframe(`app/ui/#/servicePlanning/RETRY_EDIT?serviceModelId=${SERVICE_MODEL_ID}&subscriberId=${SUBSCRIBER_ID}&serviceType=${SERVICE_TYPE}&serviceInstanceId=${SERVICE_INSTANCE_ID}&jobId=${JOB_ID}`);
 
-    cy.getElementByDataTestsId('node-69e09f68-8b63-4cc9-b9ff-860960b5db09-2017-488_ADIOD-vPE 0').click();
+    cy.getElementByDataTestsId('node-69e09f68-8b63-4cc9-b9ff-860960b5db09-2017-488_PASQUALE-vPE 0').click();
 
     cy.get('.failed-msg').should('have.length', 5);
     cy.get('.newIcon').should('have.length', 4);
@@ -69,10 +69,10 @@ describe('Retry Page', function () {
       cy.get('.newIcon').should('have.length', 4);
     });
 
-    cy.drawingBoardTreeOpenContextMenuByElementDataTestId('node-afacccf6-397d-45d6-b5ae-94c39734b168-2017-388_ADIOD-vPE 0')
+    cy.drawingBoardTreeOpenContextMenuByElementDataTestId('node-afacccf6-397d-45d6-b5ae-94c39734b168-2017-388_PASQUALE-vPE 0')
       .drawingBoardTreeClickOnContextMenuOptionByName('Edit')
       .getElementByDataTestsId('cancelButton').click({force: true});
-    cy.drawingBoardTreeOpenContextMenuByElementDataTestId('node-afacccf6-397d-45d6-b5ae-94c39734b168-2017-388_ADIOD-vPE 0')
+    cy.drawingBoardTreeOpenContextMenuByElementDataTestId('node-afacccf6-397d-45d6-b5ae-94c39734b168-2017-388_PASQUALE-vPE 0')
       .drawingBoardTreeClickOnContextMenuOptionByName('Remove');
 
     cy.get('.newIcon').should('have.length', 2);
@@ -106,14 +106,14 @@ describe('Retry Page', function () {
     cy.readFile('../vid-automation/src/test/resources/aaiGetInstanceTopology/getServiceInstanceTopologyResult.json').then((res) => {
 
       // Adding VNF with isFailed.
-      res.vnfs["2017-388_ADIOD-vPE 0"].isFailed = true;
-      res.vnfs["2017-488_ADIOD-vPE 0"].isFailed = true;
-      res.vnfs["2017-388_ADIOD-vPE 0"].action = 'Create';
-      res.vnfs["2017-488_ADIOD-vPE 0"].action = 'Create';
-      res.vnfs["2017-488_ADIOD-vPE 0"].statusMessage = 'Very long message that checks the popoverwindow can show very very long messagewithout problem.as-erfderfd-rfghthth-yjyjyj-ukuk. For more details go to audit show window';
+      res.vnfs["2017-388_PASQUALE-vPE 0"].isFailed = true;
+      res.vnfs["2017-488_PASQUALE-vPE 0"].isFailed = true;
+      res.vnfs["2017-388_PASQUALE-vPE 0"].action = 'Create';
+      res.vnfs["2017-488_PASQUALE-vPE 0"].action = 'Create';
+      res.vnfs["2017-488_PASQUALE-vPE 0"].statusMessage = 'Very long message that checks the popoverwindow can show very very long messagewithout problem.as-erfderfd-rfghthth-yjyjyj-ukuk. For more details go to audit show window';
       // Adding VFModule with isFailed.
-      res.vnfs["2017-488_ADIOD-vPE 0"].vfModules["2017488_adiodvpe0..2017488AdiodVpe..ADIOD_base_vPE_BV..module-0"]["2017488_adiodvpe0..2017488AdiodVpe..ADIOD_base_vPE_BV..module-0uvfot"].isFailed = true;
-      res.vnfs["2017-488_ADIOD-vPE 0"].vfModules["2017488_adiodvpe0..2017488AdiodVpe..ADIOD_base_vPE_BV..module-0"]["2017488_adiodvpe0..2017488AdiodVpe..ADIOD_base_vPE_BV..module-0uvfot"].action = 'Create';
+      res.vnfs["2017-488_PASQUALE-vPE 0"].vfModules["2017488_pasqualevpe0..2017488PasqualeVpe..PASQUALE_base_vPE_BV..module-0"]["2017488_pasqualevpe0..2017488PasqualeVpe..PASQUALE_base_vPE_BV..module-0uvfot"].isFailed = true;
+      res.vnfs["2017-488_PASQUALE-vPE 0"].vfModules["2017488_pasqualevpe0..2017488PasqualeVpe..PASQUALE_base_vPE_BV..module-0"]["2017488_pasqualevpe0..2017488PasqualeVpe..PASQUALE_base_vPE_BV..module-0uvfot"].action = 'Create';
 
       cy.readFile('/cypress/support/jsonBuilders/mocks/jsons/responceForFailedInstance.json').then((res) => {
         jsonBuilderAndMock.basicJson(
@@ -135,7 +135,7 @@ describe('Retry Page', function () {
 
     cy.openIframe(`app/ui/#/servicePlanning/RETRY?serviceModelId=${SERVICE_MODEL_ID}&subscriberId=${SUBSCRIBER_ID}&serviceType=${SERVICE_TYPE}&serviceInstanceId=${SERVICE_INSTANCE_ID}&jobId=${JOB_ID}`);
 
-    cy.getElementByDataTestsId('node-69e09f68-8b63-4cc9-b9ff-860960b5db09-2017-488_ADIOD-vPE 0').click();
+    cy.getElementByDataTestsId('node-69e09f68-8b63-4cc9-b9ff-860960b5db09-2017-488_PASQUALE-vPE 0').click();
 
     cy.get('.failed-msg').should('have.length', 4);
     cy.get('.newIcon').should('have.length', 4);
@@ -144,7 +144,7 @@ describe('Retry Page', function () {
       cy.get('.failed-msg').should('have.length', 4);
       cy.get('.newIcon').should('have.length', 4);
     });
-    cy.assertMenuItemsForNode(['showAuditInfo'],'node-afacccf6-397d-45d6-b5ae-94c39734b168-2017-388_ADIOD-vPE 0-menu-btn');
+    cy.assertMenuItemsForNode(['showAuditInfo'],'node-afacccf6-397d-45d6-b5ae-94c39734b168-2017-388_PASQUALE-vPE 0-menu-btn');
     cy.getElementByDataTestsId('isViewOnly-status-test').contains('VIEW ONLY');
 
     // deploy button should be 'REDEPLOY' and disabled.
@@ -157,7 +157,7 @@ describe('Retry Page', function () {
 
   });
 
-  it(`RETRY - drawing board mode - should show correct failed icon + Retry button`, function () {
+  it(`RETRY - drawing board mode - should show correct failed icon + Retry button`,  ()=> {
     const SUBSCRIBER_ID: string = "e433710f-9217-458d-a79d-1c7aff376d89";
     const SERVICE_TYPE: string = "TYLER SILVIA";
     const SERVICE_INSTANCE_ID: string = "f8791436-8d55-4fde-b4d5-72dd2cf13cfb";
@@ -196,4 +196,59 @@ describe('Retry Page', function () {
 
   });
 
+  it('RETRY- edit mode- failed service with vnf', ()=>{
+    const SUBSCRIBER_ID: string = "e433710f-9217-458d-a79d-1c7aff376d89";
+    const SERVICE_TYPE: string = "TYLER SILVIA";
+    const SERVICE_INSTANCE_ID: string = "f8791436-8d55-4fde-b4d5-72dd2cf13cfb";
+    const SERVICE_MODEL_ID: string = '6b528779-44a3-4472-bdff-9cd15ec93450';
+    const JOB_ID: string = '123456-44a3-4472-bdff-9cd15ec12345';
+    const TRACK_BY_ID = '14561234';
+    let expectedResult: JSON;
+    cy.readFile('../vid-automation/src/test/resources/asyncInstantiation/ServiceWithFailedServiceInstance.json').then((res) => {
+
+      cy.readFile('../vid-automation/src/test/resources/asyncInstantiation/auditModalFailedServiceInstance.json').then((res) => {
+        jsonBuilderAndMock.basicJson(
+          res,
+          Cypress.config('baseUrl') + "/asyncInstantiation/auditStatusForRetry/TRACK_BY_ID",
+          200,
+          0,
+          "msoStatusForFailedInstance",
+        )
+      });
+
+      jsonBuilderAndMock.basicJson(
+        res,
+        Cypress.config('baseUrl') + "/asyncInstantiation/bulkForRetry/" + JOB_ID,
+        200, 0,
+        "initFAiledServiceInstanceRetryTopology",
+      )
+    });
+
+    cy.openIframe(`app/ui/#/servicePlanning/RETRY_EDIT?serviceModelId=${SERVICE_MODEL_ID}&subscriberId=${SUBSCRIBER_ID}&serviceType=${SERVICE_TYPE}&serviceInstanceId=${SERVICE_INSTANCE_ID}&jobId=${JOB_ID}`);
+    cy.get('.newIcon').should('have.length', 1);
+    cy.getElementByDataTestsId('isViewOnly-status-test').contains('IN EDITING');
+    cy.getElementByDataTestsId("openMenuBtn").click({force: true});
+    cy.getElementByDataTestsId("context-menu-header-edit-item").click({force: true})
+      .getElementByDataTestsId("serviceName").should('have.text','INSTANCE_NAME')
+      .getElementByDataTestsId("subscriberName")
+      .getElementByDataTestsId("serviceType")
+      .getElementByDataTestsId("owningEntity")
+      .getElementByDataTestsId("project")
+      .getElementByDataTestsId("rollback")
+      .getElementByDataTestsId('cancelButton').click({force: true});
+    cy.getElementByDataTestsId("openMenuBtn").click({force: true})
+      .getElementByDataTestsId("context-menu-header-audit-item").click({force: true});
+    cy.getElementByDataTestsId('requestId').should('contain', 'e5f93320-cce6-424d-adc6-259a4ee8b342');
+    cy.getElementByDataTestsId('jobStatus').should('contain', 'Failed');
+    cy.getElementByDataTestsId('additionalInfo').should('contain', 'The service instantiation is failed');
+    cy.getElementByDataTestsId('close-button').click({force: true});
+    // // button should be RETRY
+    cy.getElementByDataTestsId('deployBtn').should('contain', 'REDEPLOY');
+    cy.getElementByDataTestsId('deployBtn').should('not.have.attr', 'disabled');
+    cy.get('.failed-msg').should('have.length', 1);
+    cy.get('.newIcon').should('have.length', 1);
+
+    cy.checkPopoverContentOnMouseEvent('service-failed-msg',  '.popover-content.popover-body','mouseenter', 0)
+      .should('contain', 'The service instantiation is failed');
+    });
 });
index 22e7a99..0e68930 100644 (file)
@@ -35,7 +35,7 @@ describe('search existing instance', function () {
         "serviceInstanceId":SERVICE_INSTANCE_ID,
         "globalCustomerId": SUBSCRIBER_ID,
         "serviceType": SERVICE_TYPE,
-        "serviceInstanceName": "abc_mdns_2017_1011_IST_Service_CSI",
+        "serviceInstanceName": "abc_CHARLOTTE_2017_1011_IST_Service_CSI",
         "subscriberName": SUBSCRIBER_NAME,
         "aaiModelInvariantId": SERVICE_MODEL_INVARIANT_ID,
         "aaiModelVersionId": SERVICE_MODEL_VERSION_ID,
index 8b9239c..4af4a14 100644 (file)
@@ -19,7 +19,7 @@ describe('Service popup', function () {
 
     it('a-la-carte service instantiation popup has all required fields ', function () {
       cy.readFile('/cypress/support/jsonBuilders/mocks/jsons/emptyServiceRedux.json').then((res1) => {
-        res1.service.serviceHierarchy["2f80c596-27e5-4ca9-b5bb-e03a7fd4c0fd"].service.instantiationType = 'A-LA-Carte';
+        res1.service.serviceHierarchy["2f80c596-27e5-4ca9-b5bb-e03a7fd4c0fd"].service.vidNotions.instantiationType = 'ALaCarte';
         cy.setReduxState(<any>res1);
         cy.openIframe('/app/ui/#/servicePopup?serviceModelId=2f80c596-27e5-4ca9-b5bb-e03a7fd4c0fd&isCreate=true');
         cy.isElementContainsAttr('form-set', 'disabled');
@@ -34,7 +34,7 @@ describe('Service popup', function () {
 
     it('a-la-carte service instantiation popup has Instance name as required', function () {
       cy.readFile('/cypress/support/jsonBuilders/mocks/jsons/emptyServiceRedux.json').then((res1) => {
-        res1.service.serviceHierarchy["2f80c596-27e5-4ca9-b5bb-e03a7fd4c0fd"].service.instantiationType = 'A-LA-Carte';
+        res1.service.serviceHierarchy["2f80c596-27e5-4ca9-b5bb-e03a7fd4c0fd"].service.vidNotions.instantiationType = 'ALaCarte';
         let isEcompNaming = false;
         res1.service.serviceHierarchy["2f80c596-27e5-4ca9-b5bb-e03a7fd4c0fd"].service.serviceEcompNaming = isEcompNaming.toString();
         cy.setReduxState(<any>res1);
index 678609c..8e297d0 100644 (file)
@@ -94,7 +94,7 @@ describe('View Edit Page', function () {
     });
 
     it(`should allow delete network on view edit`, function () {
-      cy.visit('/serviceModels.htm#/instantiate?subscriberId=a9a77d5a-123e-4ca2-9eb9-0b015d2ee0fb&subscriberName=Mobility&serviceType=vMOG&serviceInstanceId=9cdd1b2a-43a7-47bc-a88e-759ba2399f0b&aaiModelVersionId=5a3ad576-c01d-4bed-8194-0e72b4a3d020&isPermitted=true');
+      cy.visit('/serviceModels.htm#/instantiate?subscriberId=a9a77d5a-123e-4ca2-9eb9-0b015d2ee0fb&subscriberName=Emanuel&serviceType=vMOG&serviceInstanceId=9cdd1b2a-43a7-47bc-a88e-759ba2399f0b&aaiModelVersionId=5a3ad576-c01d-4bed-8194-0e72b4a3d020&isPermitted=true');
        cy.wait('@aai_getPortMirroringSourcePorts - empty response');
       cy.getElementByDataTestsId("deleteNetworkButton").should('not.have.attr', 'disabled');
       cy.get(".vlansTreeNode").should('have.length', 2);
index f6984a2..a1af531 100644 (file)
@@ -77,7 +77,7 @@ describe('Service With VNF network', function () {
     });
 
     it(`Display VNF's network and its vlans hierarchically`, function () {
-      cy.visit('/serviceModels.htm#/instantiate?subscriberId=e433710f-9217-458d-a79d-1c7aff376d89&subscriberName=USP%20VOICE&serviceType=VIRTUAL%20USP&serviceInstanceId=3f93c7cb-2fd0-4557-9514-e189b7b04f9d&aaiModelVersionId=6e59c5de-f052-46fa-aa7e-2fca9d674c44&isPermitted=true');
+      cy.visit('/serviceModels.htm#/instantiate?subscriberId=e433710f-9217-458d-a79d-1c7aff376d89&subscriberName=SILVIA%20ROBBINS&serviceType=TYLER%20SILVIA&serviceInstanceId=3f93c7cb-2fd0-4557-9514-e189b7b04f9d&aaiModelVersionId=6e59c5de-f052-46fa-aa7e-2fca9d674c44&isPermitted=true');
       cy.wait('@service-complexService');
       cy.get('div').contains('VNF: fsd')
         .get('div').contains('NETWORK: AAAAABBBBCCCC')
index 53e5e13..02bc272 100644 (file)
@@ -63,13 +63,13 @@ describe('Soft delete tests', function () {
     });
 
     it(`Soft delete button will be display also if base module is true`, function () {
-      cy.visit('/serviceModels.htm#/instantiate?subscriberId=e433710f-9217-458d-a79d-1c7aff376d89&subscriberName=USP%20VOICE&serviceType=VIRTUAL%20USP&serviceInstanceId=3f93c7cb-2fd0-4557-9514-e189b7b04f9d&aaiModelVersionId=6e59c5de-f052-46fa-aa7e-2fca9d674c44&isPermitted=true');
+      cy.visit('/serviceModels.htm#/instantiate?subscriberId=e433710f-9217-458d-a79d-1c7aff376d89&subscriberName=SILVIA%20ROBBINS&serviceType=TYLER%20SILVIA&serviceInstanceId=3f93c7cb-2fd0-4557-9514-e189b7b04f9d&aaiModelVersionId=6e59c5de-f052-46fa-aa7e-2fca9d674c44&isPermitted=true');
       cy.wait('@service-complexService');
       checkSoftDeleteAndDeletePopup('aa', 'vfModuleTreeNode-pendingactivation', true, true);
     });
 
     it(`Soft delete button not display in assigned orch status`, function () {
-      cy.visit('/serviceModels.htm#/instantiate?subscriberId=e433710f-9217-458d-a79d-1c7aff376d89&subscriberName=USP%20VOICE&serviceType=VIRTUAL%20USP&serviceInstanceId=3f93c7cb-2fd0-4557-9514-e189b7b04f9d&aaiModelVersionId=6e59c5de-f052-46fa-aa7e-2fca9d674c44&isPermitted=true');
+      cy.visit('/serviceModels.htm#/instantiate?subscriberId=e433710f-9217-458d-a79d-1c7aff376d89&subscriberName=SILVIA%20ROBBINS&serviceType=TYLER%20SILVIA&serviceInstanceId=3f93c7cb-2fd0-4557-9514-e189b7b04f9d&aaiModelVersionId=6e59c5de-f052-46fa-aa7e-2fca9d674c44&isPermitted=true');
       cy.wait('@service-complexService');
       checkSoftDeleteAndDeletePopup('gg', 'vfModuleTreeNode-assigned', false, true);
     });
@@ -90,7 +90,7 @@ describe('Soft delete tests', function () {
           }).as('initFlags');
       });
 
-      cy.visit('/serviceModels.htm#/instantiate?subscriberId=e433710f-9217-458d-a79d-1c7aff376d89&subscriberName=USP%20VOICE&serviceType=VIRTUAL%20USP&serviceInstanceId=3f93c7cb-2fd0-4557-9514-e189b7b04f9d&aaiModelVersionId=6e59c5de-f052-46fa-aa7e-2fca9d674c44&isPermitted=true');
+      cy.visit('/serviceModels.htm#/instantiate?subscriberId=e433710f-9217-458d-a79d-1c7aff376d89&subscriberName=SILVIA%20ROBBINS&serviceType=TYLER%20SILVIA&serviceInstanceId=3f93c7cb-2fd0-4557-9514-e189b7b04f9d&aaiModelVersionId=6e59c5de-f052-46fa-aa7e-2fca9d674c44&isPermitted=true');
       cy.wait('@service-complexService');
 
       checkResumeAndPopup('aa', 'vfModuleTreeNode-pendingactivation');
@@ -105,7 +105,7 @@ describe('Soft delete tests', function () {
 
     it(`Resume button display in orch status - pendingactivation, assigned, created - feature FLAG_VF_MODULE_RESUME_STATUS_CREATE - is ON`, function () {
 
-      cy.visit('/serviceModels.htm#/instantiate?subscriberId=e433710f-9217-458d-a79d-1c7aff376d89&subscriberName=USP%20VOICE&serviceType=VIRTUAL%20USP&serviceInstanceId=3f93c7cb-2fd0-4557-9514-e189b7b04f9d&aaiModelVersionId=6e59c5de-f052-46fa-aa7e-2fca9d674c44&isPermitted=true');
+      cy.visit('/serviceModels.htm#/instantiate?subscriberId=e433710f-9217-458d-a79d-1c7aff376d89&subscriberName=SILVIA%20ROBBINS&serviceType=TYLER%20SILVIA&serviceInstanceId=3f93c7cb-2fd0-4557-9514-e189b7b04f9d&aaiModelVersionId=6e59c5de-f052-46fa-aa7e-2fca9d674c44&isPermitted=true');
       cy.wait('@service-complexService');
 
       checkResumeAndPopup('aa', 'vfModuleTreeNode-pendingactivation');
@@ -118,10 +118,10 @@ describe('Soft delete tests', function () {
     });
 
     it(`Delete popup with not homing data from AAI`, function () {
-      cy.visit('/serviceModels.htm#/instantiate?subscriberId=e433710f-9217-458d-a79d-1c7aff376d89&subscriberName=USP%20VOICE&serviceType=VIRTUAL%20USP&serviceInstanceId=3f93c7cb-2fd0-4557-9514-e189b7b04f9d&aaiModelVersionId=6e59c5de-f052-46fa-aa7e-2fca9d674c44&isPermitted=true');
+      cy.visit('/serviceModels.htm#/instantiate?subscriberId=e433710f-9217-458d-a79d-1c7aff376d89&subscriberName=SILVIA%20ROBBINS&serviceType=TYLER%20SILVIA&serviceInstanceId=3f93c7cb-2fd0-4557-9514-e189b7b04f9d&aaiModelVersionId=6e59c5de-f052-46fa-aa7e-2fca9d674c44&isPermitted=true');
       cy.wait('@service-complexService');
       checkSoftDeleteAndDeletePopup('gg', 'vfModuleTreeNode-assigned', false, true);
-      cy.selectDropdownOptionByText('lcpRegion', 'JANET25');
+      cy.selectDropdownOptionByText('lcpRegion', 'AAIAIC25');
       cy.getElementByDataTestsId('confirmResumeDeleteButton').should('have.attr', 'disabled');
       cy.typeToInput("lcpRegionText", "just another region");
       cy.getElementByDataTestsId('confirmResumeDeleteButton').should('have.attr', 'disabled');
@@ -147,11 +147,11 @@ describe('Soft delete tests', function () {
       });
 
 
-      cy.visit('/serviceModels.htm#/instantiate?subscriberId=e433710f-9217-458d-a79d-1c7aff376d89&subscriberName=USP%20VOICE&serviceType=VIRTUAL%20USP&serviceInstanceId=3f93c7cb-2fd0-4557-9514-e189b7b04f9d&aaiModelVersionId=6e59c5de-f052-46fa-aa7e-2fca9d674c44&isPermitted=true');
+      cy.visit('/serviceModels.htm#/instantiate?subscriberId=e433710f-9217-458d-a79d-1c7aff376d89&subscriberName=SILVIA%20ROBBINS&serviceType=TYLER%20SILVIA&serviceInstanceId=3f93c7cb-2fd0-4557-9514-e189b7b04f9d&aaiModelVersionId=6e59c5de-f052-46fa-aa7e-2fca9d674c44&isPermitted=true');
       cy.wait('@service-complexService');
       checkSoftDeleteAndDeletePopup('my_vfModule', 'vfModuleTreeNode-pending-delete', true, true);
       cy.getElementByDataTestsId('lcpRegionText').should('be.visible');
-      cy.getElementByDataTestsId('lcpRegion').contains('JANET25');
+      cy.getElementByDataTestsId('lcpRegion').contains('AAIAIC25');
       cy.getElementByDataTestsId('tenant').contains('USP-SIP-IC-24335-T-01');
     });
 
@@ -166,13 +166,13 @@ describe('Soft delete tests', function () {
           "aai-get-homing-data")
       });
 
-      cy.visit('/serviceModels.htm#/instantiate?subscriberId=e433710f-9217-458d-a79d-1c7aff376d89&subscriberName=USP%20VOICE&serviceType=VIRTUAL%20USP&serviceInstanceId=3f93c7cb-2fd0-4557-9514-e189b7b04f9d&aaiModelVersionId=6e59c5de-f052-46fa-aa7e-2fca9d674c44&isPermitted=true');
+      cy.visit('/serviceModels.htm#/instantiate?subscriberId=e433710f-9217-458d-a79d-1c7aff376d89&subscriberName=SILVIA%20ROBBINS&serviceType=TYLER%20SILVIA&serviceInstanceId=3f93c7cb-2fd0-4557-9514-e189b7b04f9d&aaiModelVersionId=6e59c5de-f052-46fa-aa7e-2fca9d674c44&isPermitted=true');
       cy.wait('@service-complexService');
       checkSoftDeleteAndDeletePopup('vf_module2', 'vfModuleTreeNode-pendingcreate', true, false);
     });
 
-    it(`Soft delete and Delete - Mega region is JANET25 - not 'olson3', 'olson5a'`, function () {
-      cy.visit('/serviceModels.htm#/instantiate?subscriberId=e433710f-9217-458d-a79d-1c7aff376d89&subscriberName=USP%20VOICE&serviceType=VIRTUAL%20USP&serviceInstanceId=3f93c7cb-2fd0-4557-9514-e189b7b04f9d&aaiModelVersionId=6e59c5de-f052-46fa-aa7e-2fca9d674c44&isPermitted=true');
+    it(`Soft delete and Delete - Mega region is AAIAIC25 - not 'olson3', 'olson5a'`, function () {
+      cy.visit('/serviceModels.htm#/instantiate?subscriberId=e433710f-9217-458d-a79d-1c7aff376d89&subscriberName=SILVIA%20ROBBINS&serviceType=TYLER%20SILVIA&serviceInstanceId=3f93c7cb-2fd0-4557-9514-e189b7b04f9d&aaiModelVersionId=6e59c5de-f052-46fa-aa7e-2fca9d674c44&isPermitted=true');
       cy.wait('@service-complexService');
       //Delete
       checkSoftDeleteAndDeletePopup('gg', 'vfModuleTreeNode-assigned', false, true);
@@ -190,7 +190,7 @@ describe('Soft delete tests', function () {
     });
 
     function checkLegacyRegion() {
-      checkIsLegacyRegionTextIsDisplay('JANET25', true);
+      checkIsLegacyRegionTextIsDisplay('AAIAIC25', true);
       checkIsLegacyRegionTextIsDisplay('olson3', false);
       checkIsLegacyRegionTextIsDisplay('olson5a', false);
       checkIsLegacyRegionTextIsDisplay('hvf6', false);
index 813934e..c7780b4 100644 (file)
@@ -157,7 +157,7 @@ describe('View Edit Page', function () {
 
     it(`should display service model name and version on each info form`, function () {
       let typesToIncludeModel:Array<string> = ['service', 'vnf', 'vfmodule', 'volume-group', 'network'];
-      cy.visit('/serviceModels.htm#/instantiate?subscriberId=e433710f-9217-458d-a79d-1c7aff376d89&subscriberName=USP%20VOICE&serviceType=VIRTUAL%20USP&serviceInstanceId=3f93c7cb-2fd0-4557-9514-e189b7b04f9d&aaiModelVersionId=6e59c5de-f052-46fa-aa7e-2fca9d674c44&isPermitted=true');
+      cy.visit('/serviceModels.htm#/instantiate?subscriberId=e433710f-9217-458d-a79d-1c7aff376d89&subscriberName=SILVIA%20ROBBINS&serviceType=TYLER%20SILVIA&serviceInstanceId=3f93c7cb-2fd0-4557-9514-e189b7b04f9d&aaiModelVersionId=6e59c5de-f052-46fa-aa7e-2fca9d674c44&isPermitted=true');
       cy.wait('@service-complexService');
       cy.wait('@aai_getPortMirroringConfigsDate - empty response');
       cy.get('div').contains('VOLUME GROUP: f'); // waits for the view/edit to be ready after ports' redraw
@@ -170,7 +170,7 @@ describe('View Edit Page', function () {
     });
 
     it(`Check fabric configuration service with some configuration with diff orchStatus`, function () {
-      cy.visit('/serviceModels.htm#/instantiate?subscriberId=e433710f-9217-458d-a79d-1c7aff376d89&subscriberName=USP%20VOICE&serviceType=VIRTUAL%20USP&serviceInstanceId=c187e9fe-40c3-4862-b73e-84ff056205f61234&aaiModelVersionId=6e59c5de-f052-46fa-aa7e-2fca9d671234&isPermitted=true');
+      cy.visit('/serviceModels.htm#/instantiate?subscriberId=e433710f-9217-458d-a79d-1c7aff376d89&subscriberName=SILVIA%20ROBBINS&serviceType=TYLER%20SILVIA&serviceInstanceId=c187e9fe-40c3-4862-b73e-84ff056205f61234&aaiModelVersionId=6e59c5de-f052-46fa-aa7e-2fca9d671234&isPermitted=true');
       cy.wait('@service-FabricConfig');
       cy.get('.error-msg').should("be.visible").should('contain','Activate fabric configuration button is not available as some of the configuration objects are not in Assigned status. Check MSO logs for the reasons for this abnormal case.');
       cy.getElementByDataTestsId("activateFabricConfigurationButton").should('have.attr', 'disabled');
@@ -178,7 +178,7 @@ describe('View Edit Page', function () {
     });
 
     it(`Check fabric configuration service with active status`, function () {
-      cy.visit('/serviceModels.htm#/instantiate?subscriberId=e433710f-9217-458d-a79d-1c7aff376d89&subscriberName=USP%20VOICE&serviceType=VIRTUAL%20USP&serviceInstanceId=c187e9fe-40c3-4862-b73e-84ff056205f65678&aaiModelVersionId=6e59c5de-f052-46fa-aa7e-2fca9d671234&isPermitted=true');
+      cy.visit('/serviceModels.htm#/instantiate?subscriberId=e433710f-9217-458d-a79d-1c7aff376d89&subscriberName=SILVIA%20ROBBINS&serviceType=TYLER%20SILVIA&serviceInstanceId=c187e9fe-40c3-4862-b73e-84ff056205f65678&aaiModelVersionId=6e59c5de-f052-46fa-aa7e-2fca9d671234&isPermitted=true');
       cy.wait('@service-FabricConfig');
       cy.getElementByDataTestsId("activateFabricConfigurationButton").should('not.be.visible');
       cy.getElementByDataTestsId("activateButton").should('have.attr', 'disabled');
@@ -186,7 +186,7 @@ describe('View Edit Page', function () {
     });
 
     it(`Check fabric configuration service with created status`, function () {
-      cy.visit('/serviceModels.htm#/instantiate?subscriberId=e433710f-9217-458d-a79d-1c7aff376d89&subscriberName=USP%20VOICE&serviceType=VIRTUAL%20USP&serviceInstanceId=c187e9fe-40c3-4862-b73e-84ff056205f69000&aaiModelVersionId=6e59c5de-f052-46fa-aa7e-2fca9d679000&isPermitted=true');
+      cy.visit('/serviceModels.htm#/instantiate?subscriberId=e433710f-9217-458d-a79d-1c7aff376d89&subscriberName=SILVIA%20ROBBINS&serviceType=TYLER%20SILVIA&serviceInstanceId=c187e9fe-40c3-4862-b73e-84ff056205f69000&aaiModelVersionId=6e59c5de-f052-46fa-aa7e-2fca9d679000&isPermitted=true');
       cy.wait('@service-FabricConfig');
       cy.getElementByDataTestsId("activateFabricConfigurationButton").should('not.be.visible');
       cy.getElementByDataTestsId("activateButton").should('have.attr', 'disabled');
@@ -194,7 +194,7 @@ describe('View Edit Page', function () {
     });
 
     it(`Check fabric configuration service with pendingdeLete status`, function () {
-      cy.visit('/serviceModels.htm#/instantiate?subscriberId=e433710f-9217-458d-a79d-1c7aff376d89&subscriberName=USP%20VOICE&serviceType=VIRTUAL%20USP&serviceInstanceId=c187e9fe-40c3-4862-b73e-84ff056205f61000&aaiModelVersionId=6e59c5de-f052-46fa-aa7e-2fca9d671000&isPermitted=true');
+      cy.visit('/serviceModels.htm#/instantiate?subscriberId=e433710f-9217-458d-a79d-1c7aff376d89&subscriberName=SILVIA%20ROBBINS&serviceType=TYLER%20SILVIA&serviceInstanceId=c187e9fe-40c3-4862-b73e-84ff056205f61000&aaiModelVersionId=6e59c5de-f052-46fa-aa7e-2fca9d671000&isPermitted=true');
       cy.wait('@service-FabricConfig');
       cy.getElementByDataTestsId("activateFabricConfigurationButton").should('not.be.visible');
       cy.getElementByDataTestsId("activateButton").should('not.have.attr', 'disabled');
@@ -210,11 +210,11 @@ describe('View Edit Page', function () {
   function changeServiceModel(serviceModel: ServiceModel) {
     serviceModel.service.uuid = "6e59c5de-f052-46fa-aa7e-2fca9d674c44";
     serviceModel.vnfs = {
-      "VF_vMee 0": {
+      "VF_vGeraldine 0": {
         "uuid": "d6557200-ecf2-4641-8094-5393ae3aae60",
         "invariantUuid": "4160458e-f648-4b30-a176-43881ffffe9e",
-        "description": "VSP_vMee",
-        "name": "VF_vMee",
+        "description": "VSP_vGeraldine",
+        "name": "VF_vGeraldine",
         "version": "2.0",
         "customizationUuid": "91415b44-753d-494c-926a-456a9172bbb9",
         "inputs": {},
@@ -383,74 +383,74 @@ describe('View Edit Page', function () {
           "sctp-b-egress-dst_end_port": "65535.0"
         },
         "type": "VF",
-        "modelCustomizationName": "VF_vMee 0",
+        "modelCustomizationName": "VF_vGeraldine 0",
         "vfModules": {
-          "vf_vmee0..VfVmee..vmme_vlc..module-1": {
+          "vf_vgeraldine0..VfVgeraldine..vflorence_vlc..module-1": {
             "uuid": "522159d5-d6e0-4c2a-aa44-5a542a12a830",
             "invariantUuid": "98a7c88b-b577-476a-90e4-e25a5871e02b",
             "customizationUuid": "55b1be94-671a-403e-a26c-667e9c47d091",
             "description": null,
-            "name": "VfVmee..vmme_vlc..module-1",
+            "name": "VfVgeraldine..vflorence_vlc..module-1",
             "version": "2",
-            "modelCustomizationName": "VfVmee..vmme_vlc..module-1",
+            "modelCustomizationName": "VfVgeraldine..vflorence_vlc..module-1",
             "properties": {
               "minCountInstances": 0,
               "maxCountInstances": null,
               "initialCount": 0,
-              "vfModuleLabel": "vmme_vlc"
+              "vfModuleLabel": "vflorence_vlc"
             },
             "inputs": {},
             "volumeGroupAllowed": false
           },
-          "vf_vmee0..VfVmee..vmme_gpb..module-2": {
+          "vf_vgeraldine0..VfVgeraldine..vflorence_gpb..module-2": {
             "uuid": "41708296-e443-4c71-953f-d9a010f059e1",
             "invariantUuid": "1cca90b8-3490-495e-87da-3f3e4c57d5b9",
             "customizationUuid": "6add59e0-7fe1-4bc4-af48-f8812422ae7c",
             "description": null,
-            "name": "VfVmee..vmme_gpb..module-2",
+            "name": "VfVgeraldine..vflorence_gpb..module-2",
             "version": "2",
-            "modelCustomizationName": "VfVmee..vmme_gpb..module-2",
+            "modelCustomizationName": "VfVgeraldine..vflorence_gpb..module-2",
             "properties": {
               "minCountInstances": 0,
               "maxCountInstances": null,
               "initialCount": 0,
-              "vfModuleLabel": "vmme_gpb"
+              "vfModuleLabel": "vflorence_gpb"
             },
             "inputs": {},
             "volumeGroupAllowed": false
           },
-          "vf_vmee0..VfVmee..base_vmme..module-0": {
+          "vf_vgeraldine0..VfVgeraldine..base_vflorence..module-0": {
             "uuid": "a27f5cfc-7f12-4f99-af08-0af9c3885c87",
             "invariantUuid": "a6f9e51a-2b35-416a-ae15-15e58d61f36d",
             "customizationUuid": "f8c040f1-7e51-4a11-aca8-acf256cfd861",
             "description": null,
-            "name": "VfVmee..base_vmme..module-0",
+            "name": "VfVgeraldine..base_vflorence..module-0",
             "version": "2",
-            "modelCustomizationName": "VfVmee..base_vmme..module-0",
+            "modelCustomizationName": "VfVgeraldine..base_vflorence..module-0",
             "properties": {
               "minCountInstances": 1,
               "maxCountInstances": 1,
               "initialCount": 1,
-              "vfModuleLabel": "base_vmme"
+              "vfModuleLabel": "base_vflorence"
             },
             "inputs": {},
             "volumeGroupAllowed": true
           }
         },
         "volumeGroups": {
-          "vf_vmee0..VfVmee..base_vmme..module-0": {
+          "vf_vgeraldine0..VfVgeraldine..base_vflorence..module-0": {
             "uuid": "a27f5cfc-7f12-4f99-af08-0af9c3885c87",
             "invariantUuid": "a6f9e51a-2b35-416a-ae15-15e58d61f36d",
             "customizationUuid": "f8c040f1-7e51-4a11-aca8-acf256cfd861",
             "description": null,
-            "name": "VfVmee..base_vmme..module-0",
+            "name": "VfVgeraldine..base_vflorence..module-0",
             "version": "2",
-            "modelCustomizationName": "VfVmee..base_vmme..module-0",
+            "modelCustomizationName": "VfVgeraldine..base_vflorence..module-0",
             "properties": {
               "minCountInstances": 1,
               "maxCountInstances": 1,
               "initialCount": 1,
-              "vfModuleLabel": "base_vmme"
+              "vfModuleLabel": "base_vflorence"
             },
             "inputs": {}
           }
@@ -459,72 +459,72 @@ describe('View Edit Page', function () {
       }
     };
     serviceModel.vfModules = {
-      "vf_vmee0..VfVmee..vmme_vlc..module-1": {
+      "vf_vgeraldine0..VfVgeraldine..vflorence_vlc..module-1": {
         "uuid": "522159d5-d6e0-4c2a-aa44-5a542a12a830",
         "invariantUuid": "98a7c88b-b577-476a-90e4-e25a5871e02b",
         "customizationUuid": "55b1be94-671a-403e-a26c-667e9c47d091",
         "description": null,
-        "name": "VfVmee..vmme_vlc..module-1",
+        "name": "VfVgeraldine..vflorence_vlc..module-1",
         "version": "2",
-        "modelCustomizationName": "VfVmee..vmme_vlc..module-1",
+        "modelCustomizationName": "VfVgeraldine..vflorence_vlc..module-1",
         "properties": {
           "minCountInstances": 0,
           "maxCountInstances": null,
           "initialCount": 0,
-          "vfModuleLabel": "vmme_vlc"
+          "vfModuleLabel": "vflorence_vlc"
         },
         "inputs": {},
         "volumeGroupAllowed": false
       },
-      "vf_vmee0..VfVmee..vmme_gpb..module-2": {
+      "vf_vgeraldine0..VfVgeraldine..vflorence_gpb..module-2": {
         "uuid": "41708296-e443-4c71-953f-d9a010f059e1",
         "invariantUuid": "1cca90b8-3490-495e-87da-3f3e4c57d5b9",
         "customizationUuid": "6add59e0-7fe1-4bc4-af48-f8812422ae7c",
         "description": null,
-        "name": "VfVmee..vmme_gpb..module-2",
+        "name": "VfVgeraldine..vflorence_gpb..module-2",
         "version": "2",
-        "modelCustomizationName": "VfVmee..vmme_gpb..module-2",
+        "modelCustomizationName": "VfVgeraldine..vflorence_gpb..module-2",
         "properties": {
           "minCountInstances": 0,
           "maxCountInstances": null,
           "initialCount": 0,
-          "vfModuleLabel": "vmme_gpb"
+          "vfModuleLabel": "vflorence_gpb"
         },
         "inputs": {},
         "volumeGroupAllowed": false
       },
-      "vf_vmee0..VfVmee..base_vmme..module-0": {
+      "vf_vgeraldine0..VfVgeraldine..base_vflorence..module-0": {
         "uuid": "a27f5cfc-7f12-4f99-af08-0af9c3885c87",
         "invariantUuid": "a6f9e51a-2b35-416a-ae15-15e58d61f36d",
         "customizationUuid": "f8c040f1-7e51-4a11-aca8-acf256cfd861",
         "description": null,
-        "name": "VfVmee..base_vmme..module-0",
+        "name": "VfVgeraldine..base_vflorence..module-0",
         "version": "2",
-        "modelCustomizationName": "VfVmee..base_vmme..module-0",
+        "modelCustomizationName": "VfVgeraldine..base_vflorence..module-0",
         "properties": {
           "minCountInstances": 1,
           "maxCountInstances": 1,
           "initialCount": 1,
-          "vfModuleLabel": "base_vmme"
+          "vfModuleLabel": "base_vflorence"
         },
         "inputs": {},
         "volumeGroupAllowed": true
       }
     };
     serviceModel.volumeGroups = {
-      "vf_vmee0..VfVmee..base_vmme..module-0": {
+      "vf_vgeraldine0..VfVgeraldine..base_vflorence..module-0": {
         "uuid": "a27f5cfc-7f12-4f99-af08-0af9c3885c87",
         "invariantUuid": "a6f9e51a-2b35-416a-ae15-15e58d61f36d",
         "customizationUuid": "f8c040f1-7e51-4a11-aca8-acf256cfd861",
         "description": null,
-        "name": "VfVmee..base_vmme..module-0",
+        "name": "VfVgeraldine..base_vflorence..module-0",
         "version": "2",
-        "modelCustomizationName": "VfVmee..base_vmme..module-0",
+        "modelCustomizationName": "VfVgeraldine..base_vflorence..module-0",
         "properties": {
           "minCountInstances": 1,
           "maxCountInstances": 1,
           "initialCount": 1,
-          "vfModuleLabel": "base_vmme"
+          "vfModuleLabel": "base_vflorence"
         },
         "inputs": {}
       }
index d15809d..2f2ed14 100644 (file)
@@ -77,24 +77,24 @@ describe('View only drawing board', function () {
     //cy.visit("welcome.htm"); //relaod page to not break the following tests
 
     //testing left side
-    cy.getElementByDataTestsId('node-2017-388_ADIOD-vPE 1').find(`[data-tests-id='node-type-indicator']`).should('have.text', 'VNF');
-    cy.getElementByDataTestsId('node-2017-488_ADIOD-vPE 0').click({force: true});
-    cy.getElementByDataTestsId('node-2017488_adiodvpe0..2017488AdiodVpe..ADIOD_vRE_BV..module-1').find(`[data-tests-id='node-type-indicator']`).should('have.text', 'M');
+    cy.getElementByDataTestsId('node-2017-388_PASQUALE-vPE 1').find(`[data-tests-id='node-type-indicator']`).should('have.text', 'VNF');
+    cy.getElementByDataTestsId('node-2017-488_PASQUALE-vPE 0').click({force: true});
+    cy.getElementByDataTestsId('node-2017488_pasqualevpe0..2017488PasqualeVpe..PASQUALE_vRE_BV..module-1').find(`[data-tests-id='node-type-indicator']`).should('have.text', 'M');
 
     //testing right side
-    cy.getElementByDataTestsId('node-69e09f68-8b63-4cc9-b9ff-860960b5db09-2017-488_ADIOD-vPE 0').find(`[data-tests-id='node-type-indicator']`).should('have.text', 'VNF');
-    cy.getElementByDataTestsId('node-69e09f68-8b63-4cc9-b9ff-860960b5db09-2017-488_ADIOD-vPE 0').click({force: true});
-    cy.getElementByDataTestsId('node-f8360508-3f17-4414-a2ed-6bc71161e8db-2017488_adiodvpe0..2017488AdiodVpe..ADIOD_base_vPE_BV..module-0').eq(0).find(`[data-tests-id='node-type-indicator']`).should('have.text', 'M');
+    cy.getElementByDataTestsId('node-69e09f68-8b63-4cc9-b9ff-860960b5db09-2017-488_PASQUALE-vPE 0').find(`[data-tests-id='node-type-indicator']`).should('have.text', 'VNF');
+    cy.getElementByDataTestsId('node-69e09f68-8b63-4cc9-b9ff-860960b5db09-2017-488_PASQUALE-vPE 0').click({force: true});
+    cy.getElementByDataTestsId('node-f8360508-3f17-4414-a2ed-6bc71161e8db-2017488_pasqualevpe0..2017488PasqualeVpe..PASQUALE_base_vPE_BV..module-0').eq(0).find(`[data-tests-id='node-type-indicator']`).should('have.text', 'M');
 
     //check vnf node tree sub header
-    cy.getElementByDataTestsId('node-69e09f68-8b63-4cc9-b9ff-860960b5db09-2017-488_ADIOD-vPE 0').find("[data-tests-id='status-property-orchStatus']").should('have.text', 'Created');
-    cy.getElementByDataTestsId('node-69e09f68-8b63-4cc9-b9ff-860960b5db09-2017-488_ADIOD-vPE 0').find("[data-tests-id='status-property-provStatus']").should('have.text', '');
-    cy.getElementByDataTestsId('node-69e09f68-8b63-4cc9-b9ff-860960b5db09-2017-488_ADIOD-vPE 0').find("[data-tests-id='status-property-inMaint']").should('not.exist');
+    cy.getElementByDataTestsId('node-69e09f68-8b63-4cc9-b9ff-860960b5db09-2017-488_PASQUALE-vPE 0').find("[data-tests-id='status-property-orchStatus']").should('have.text', 'Created');
+    cy.getElementByDataTestsId('node-69e09f68-8b63-4cc9-b9ff-860960b5db09-2017-488_PASQUALE-vPE 0').find("[data-tests-id='status-property-provStatus']").should('have.text', '');
+    cy.getElementByDataTestsId('node-69e09f68-8b63-4cc9-b9ff-860960b5db09-2017-488_PASQUALE-vPE 0').find("[data-tests-id='status-property-inMaint']").should('not.exist');
 
     //check vf Module node tree sub header
-    cy.getElementByDataTestsId('node-f8360508-3f17-4414-a2ed-6bc71161e8db-2017488_adiodvpe0..2017488AdiodVpe..ADIOD_base_vPE_BV..module-0').find("[data-tests-id='status-property-provStatus']").eq(0).should('have.text', 'Prov Status');
-    cy.getElementByDataTestsId('node-f8360508-3f17-4414-a2ed-6bc71161e8db-2017488_adiodvpe0..2017488AdiodVpe..ADIOD_base_vPE_BV..module-0').find("[data-tests-id='status-property-orchStatus']").eq(0).should('have.text', 'Active');
-    cy.getElementByDataTestsId('node-f8360508-3f17-4414-a2ed-6bc71161e8db-2017488_adiodvpe0..2017488AdiodVpe..ADIOD_base_vPE_BV..module-0').find("[data-tests-id='status-property-inMaint']").eq(0).should('have.text', '');
+    cy.getElementByDataTestsId('node-f8360508-3f17-4414-a2ed-6bc71161e8db-2017488_pasqualevpe0..2017488PasqualeVpe..PASQUALE_base_vPE_BV..module-0').find("[data-tests-id='status-property-provStatus']").eq(0).should('have.text', 'Prov Status');
+    cy.getElementByDataTestsId('node-f8360508-3f17-4414-a2ed-6bc71161e8db-2017488_pasqualevpe0..2017488PasqualeVpe..PASQUALE_base_vPE_BV..module-0').find("[data-tests-id='status-property-orchStatus']").eq(0).should('have.text', 'Active');
+    cy.getElementByDataTestsId('node-f8360508-3f17-4414-a2ed-6bc71161e8db-2017488_pasqualevpe0..2017488PasqualeVpe..PASQUALE_base_vPE_BV..module-0').find("[data-tests-id='status-property-inMaint']").eq(0).should('have.text', '');
 
     cy.getElementByDataTestsId("serviceInstance").should('have.text', 'Service instance:');
     cy.getElementByDataTestsId("serviceName").should('have.text', 'mCaNkinstancename');
@@ -105,8 +105,7 @@ describe('View only drawing board', function () {
 
 
   });
-
-  it(`when open service planning in view mode service instance is shown as expected - e2e with API's ServiceTreeWithMultipleChildren`, function () {
+  function initServicePlanning(){
     const SUBSCRIBER_ID: string = "e433710f-9217-458d-a79d-1c7aff376d89";
     const SERVICE_TYPE: string = "TYLER SILVIA";
     const SERVICE_INSTANCE_ID: string = "f8791436-8d55-4fde-b4d5-72dd2cf13cfb";
@@ -133,6 +132,16 @@ describe('View only drawing board', function () {
 
     cy.openIframe(`app/ui/#/servicePlanning/VIEW?serviceModelId=${SERVICE_MODEL_ID}&subscriberId=${SUBSCRIBER_ID}&serviceType=${SERVICE_TYPE}&serviceInstanceId=${SERVICE_INSTANCE_ID}`);
 
+  }
+  it('check component info for 2 trees for vnf, vf-module, and network', function(){
+    initServicePlanning();
+    testComponentInfoForVNF();
+    testComponentInfoForVFMODULE();
+    testComponentInfoForNetwork();
+  });
+
+  it(`when open service planning in view mode service instance is shown as expected - e2e with API's ServiceTreeWithMultipleChildren`, function () {
+    initServicePlanning();
     /*
     0. title area -> generic stuff
                      instance name
@@ -151,9 +160,9 @@ describe('View only drawing board', function () {
 
     // test component info of service-level
     let labelsAndValues = [
-      ['Model Version', '1.0'],
+      ['Model version', '1.0'],
       ['Instance ID', 'service-instance-id'],
-      ['Service Type', 'service-instance-type'],
+      ['Service type', 'service-instance-type'],
     ];
     cy.assertComponentInfoTitleLabelsAndValues('Service Instance INFO', labelsAndValues);
 
@@ -167,24 +176,24 @@ describe('View only drawing board', function () {
                     Configuration
     */
     const leftShouldHaves: { [dataTestId: string]: { [dataTestId: string]: string; }; } = {
-      'node-VF_vMee 0': {
+      'node-VF_vGeraldine 0': {
         'node-type-indicator': 'VNF',
-        'node-name': 'VF_vMee 0',
+        'node-name': 'VF_vGeraldine 0',
         'numberButton': '1',
       },
-      'node-vf_vmee0..VfVmee..base_vmme..module-0': {
+      'node-vf_vgeraldine0..VfVgeraldine..base_vflorence..module-0': {
         'node-type-indicator': 'M',
-        'node-name': 'vf_vmee0..VfVmee..base_vmme..module-0',
+        'node-name': 'vf_vgeraldine0..VfVgeraldine..base_vflorence..module-0',
         'numberButton': '',
       },
-      'node-vf_vmee0..VfVmee..vmme_vlc..module-1': {
+      'node-vf_vgeraldine0..VfVgeraldine..vflorence_vlc..module-1': {
         'node-type-indicator': 'M',
-        'node-name': 'vf_vmee0..VfVmee..vmme_vlc..module-1',
+        'node-name': 'vf_vgeraldine0..VfVgeraldine..vflorence_vlc..module-1',
         'numberButton': '1',
       },
-      'node-vf_vmee0..VfVmee..vmme_gpb..module-2': {
+      'node-vf_vgeraldine0..VfVgeraldine..vflorence_gpb..module-2': {
         'node-type-indicator': 'M',
-        'node-name': 'vf_vmee0..VfVmee..vmme_gpb..module-2',
+        'node-name': 'vf_vgeraldine0..VfVgeraldine..vflorence_gpb..module-2',
         'numberButton': '',
       },
       'node-ExtVL 0': {
@@ -212,7 +221,7 @@ describe('View only drawing board', function () {
                      IGNORE, don't check: first node, which have no Service connection
     */
     const rightShouldHaves: { [dataTestId: string]: { [dataTestId: string]: string; }; } = {
-      'node-d6557200-ecf2-4641-8094-5393ae3aae60-VF_vMee 0:0': {
+      'node-d6557200-ecf2-4641-8094-5393ae3aae60-VF_vGeraldine 0:0': {
         'node-type-indicator': 'VNF',
         'node-name': 'VNF2_INSTANCE_NAME',
         'status-property-orchStatus': '',
@@ -225,7 +234,7 @@ describe('View only drawing board', function () {
         'status-property-orchStatus': 'Assigned',
         'status-property-provStatus': '',
       },
-      'node-522159d5-d6e0-4c2a-aa44-5a542a12a830-vf_vmee0..VfVmee..vmme_vlc..module-1:0': {
+      'node-522159d5-d6e0-4c2a-aa44-5a542a12a830-vf_vgeraldine0..VfVgeraldine..vflorence_vlc..module-1:0': {
         'node-type-indicator': 'M',
         'node-name': 'ss820f_0918_db',
         'status-property-orchStatus': 'deleted',
@@ -263,10 +272,10 @@ describe('View only drawing board', function () {
                     configuration: # of instances = 0, click -> nothing
     */
     const leftShouldHighlight: { [text: string]: string[] } = {
-      'VF_vMee 0': ['VNF2_INSTANCE_NAME'],
-      'vf_vmee0..VfVmee..base_vmme..module-0': [],
-      'vf_vmee0..VfVmee..vmme_vlc..module-1': ['ss820f_0918_db'],
-      'vf_vmee0..VfVmee..vmme_gpb..module-2': [],
+      'VF_vGeraldine 0': ['VNF2_INSTANCE_NAME'],
+      'vf_vgeraldine0..VfVgeraldine..base_vflorence..module-0': [],
+      'vf_vgeraldine0..VfVgeraldine..vflorence_vlc..module-1': ['ss820f_0918_db'],
+      'vf_vgeraldine0..VfVgeraldine..vflorence_gpb..module-2': [],
       'ExtVL 0': ['NETWORK3_INSTANCE_NAME', 'NETWORK4_INSTANCE_NAME'],
       'Port Mirroring Configuration By Policy 0': [],
     };
@@ -286,9 +295,9 @@ describe('View only drawing board', function () {
                     network2: click -> network selected
      */
     const rightShouldHighlight: { [text: string]: string[] } = {
-      'VNF2_INSTANCE_NAME': ['VF_vMee 0'],
+      'VNF2_INSTANCE_NAME': ['VF_vGeraldine 0'],
       'ss820f_0918_base': [],
-      'ss820f_0918_db': ['vf_vmee0..VfVmee..vmme_vlc..module-1'],
+      'ss820f_0918_db': ['vf_vgeraldine0..VfVgeraldine..vflorence_vlc..module-1'],
       'NETWORK3_INSTANCE_NAME': ['ExtVL 0'],
       'NETWORK4_INSTANCE_NAME': ['ExtVL 0'],
     };
@@ -312,4 +321,54 @@ describe('View only drawing board', function () {
 
 
   });
+
+  function testComponentInfoForVNF(){
+    const labelsAndValuesForModel = [
+      ['Model version', '2.0'],
+      ['Model customization ID', '91415b44-753d-494c-926a-456a9172bbb9'],
+      ['Min instances', '0'],
+      ['Max instances', '1']
+    ];
+    const extraLabelsAndValuesForInstance = [['Instance type', 'VNF2_INSTANCE_TYPE'],['In maintenance','true'], ['Instance ID', 'VNF2_INSTANCE_ID']];
+    testComponentInfoByType('node-VF_vGeraldine 0', labelsAndValuesForModel,'VNF INFO',
+      'VNF2_INSTANCE_NAME', extraLabelsAndValuesForInstance,'VNF Instance INFO');
+
+  }
+
+  function testComponentInfoForVFMODULE(){
+    const labelsAndValuesForModel = [
+      ['Model version', '2'],
+      ['Model customization ID', '55b1be94-671a-403e-a26c-667e9c47d091'],
+      ['Base module', 'false'],
+      ['Min instances', '0'],
+      ['Initial instances count', '0']
+    ];
+    const extraLabelsAndValuesForInstance = [['In maintenance','true'], ['Instance ID', '2c1ca484-cbc2-408b-ab86-25a2c15ce280']];
+    testComponentInfoByType('node-vf_vgeraldine0..VfVgeraldine..vflorence_vlc..module-1',labelsAndValuesForModel,'VFModule INFO',
+      'ss820f_0918_db',extraLabelsAndValuesForInstance,'VFModule Instance INFO')
+
+  }
+
+  function testComponentInfoForNetwork(){
+    const labelsAndValuesForModel = [
+      ['Model version', '37.0'],
+      ['Model customization ID', '94fdd893-4a36-4d70-b16a-ec29c54c184f'],
+      ['Network role','network role 1, network role 2']
+    ];
+    const extraLabelsAndValuesForInstance = [['In maintenance','false'], ['Instance ID', 'NETWORK3_INSTANCE_ID'],['Instance type', 'CONTRAIL30_BASIC']];
+    testComponentInfoByType('node-ExtVL 0',labelsAndValuesForModel,'Network INFO',
+      'NETWORK3_INSTANCE_NAME',extraLabelsAndValuesForInstance,'Network Instance INFO');
+
+  }
+
+  function testComponentInfoByType(leftNode:string, labelsAndValuesForModel: string[][], expectedTitleForModel:string, rightNode:string, extraLabelsAndValuesForInstance: string[][], expectedTitleForInstance:string){
+    cy.getElementByDataTestsId(leftNode).eq(0).click({force: true});
+    cy.assertComponentInfoTitleLabelsAndValues(expectedTitleForModel, labelsAndValuesForModel);
+
+    let labelsAndValuesForInstance = labelsAndValuesForModel.concat(extraLabelsAndValuesForInstance);
+    cy.get('drawing-board-tree').contains(rightNode).click();
+    cy.assertComponentInfoTitleLabelsAndValues(expectedTitleForInstance, labelsAndValuesForInstance);
+  }
+
+
 });
index e75cf24..b48f939 100644 (file)
@@ -20,13 +20,13 @@ describe('Vnf popup', function () {
 
     it('volume group should change on instance name blur if the value is null or empty', function () {
         let redux = getReduxWithVNFS();
-        redux.service.serviceHierarchy['6e59c5de-f052-46fa-aa7e-2fca9d674c44'].vnfs['VF_vMee 0'].properties['ecomp_generated_naming'] = 'false';
-        redux.service.serviceHierarchy['6e59c5de-f052-46fa-aa7e-2fca9d674c44'].vfModules['vf_vmee0..VfVmee..vmme_vlc..module-1']['volumeGroupAllowed'] = true;
+        redux.service.serviceHierarchy['6e59c5de-f052-46fa-aa7e-2fca9d674c44'].vnfs['VF_vGeraldine 0'].properties['ecomp_generated_naming'] = 'false';
+        redux.service.serviceHierarchy['6e59c5de-f052-46fa-aa7e-2fca9d674c44'].vfModules['vf_vgeraldine0..VfVgeraldine..vflorence_vlc..module-1']['volumeGroupAllowed'] = true;
 
         cy.setReduxState(<any>redux);
         cy.openIframe('app/ui/#/servicePlanning?serviceModelId=6e59c5de-f052-46fa-aa7e-2fca9d674c44');
 
-        cy.getElementByDataTestsId('node-522159d5-d6e0-4c2a-aa44-5a542a12a830-vf_vmee0..VfVmee..vmme_vlc..module-1-menu-btn').click({force: true})
+        cy.getElementByDataTestsId('node-522159d5-d6e0-4c2a-aa44-5a542a12a830-vf_vgeraldine0..VfVgeraldine..vflorence_vlc..module-1-menu-btn').click({force: true})
           .getElementByDataTestsId('context-menu-edit').click({force: true})
           .getElementByDataTestsId('form-set').should('not.have.attr', 'disabled')
           .getElementByDataTestsId("instanceName").clear()
@@ -38,7 +38,7 @@ describe('Vnf popup', function () {
         cy.typeToInput('volumeGroupName', 'textAfter');
         cy.getElementByDataTestsId('form-set').click()
           .get('#drawing-board-tree .toggle-children').click()
-          .getElementByDataTestsId('node-522159d5-d6e0-4c2a-aa44-5a542a12a830-vf_vmee0..VfVmee..vmme_vlc..module-1-menu-btn').click({force: true})
+          .getElementByDataTestsId('node-522159d5-d6e0-4c2a-aa44-5a542a12a830-vf_vgeraldine0..VfVgeraldine..vflorence_vlc..module-1-menu-btn').click({force: true})
           .getElementByDataTestsId('context-menu-edit').click({force: true})
           .getElementByDataTestsId("volumeGroupName").should('have.value', 'someInput1_voltextAfter');
 
@@ -46,11 +46,11 @@ describe('Vnf popup', function () {
 
     it('should display min/max', function () {
       cy.readFile('/cypress/support/jsonBuilders/mocks/jsons/emptyServiceRedux.json').then((res) => {
-        res.service.serviceHierarchy['2f80c596-27e5-4ca9-b5bb-e03a7fd4c0fd'].vnfs['2017-488_ADIOD-vPE 0'].properties.min_instances = 100;
-        res.service.serviceHierarchy['2f80c596-27e5-4ca9-b5bb-e03a7fd4c0fd'].vnfs['2017-488_ADIOD-vPE 0'].properties.max_instances = 200;
+        res.service.serviceHierarchy['2f80c596-27e5-4ca9-b5bb-e03a7fd4c0fd'].vnfs['2017-488_PASQUALE-vPE 0'].properties.min_instances = 100;
+        res.service.serviceHierarchy['2f80c596-27e5-4ca9-b5bb-e03a7fd4c0fd'].vnfs['2017-488_PASQUALE-vPE 0'].properties.max_instances = 200;
         cy.setReduxState(<any>res);
         cy.openIframe('app/ui/#/servicePlanning?serviceModelId=2f80c596-27e5-4ca9-b5bb-e03a7fd4c0fd');
-        cy.getElementByDataTestsId('node-2017-488_ADIOD-vPE 0-add-btn').click({force : true});
+        cy.getElementByDataTestsId('node-2017-488_PASQUALE-vPE 0-add-btn').click({force : true});
         cy.getElementByDataTestsId('model-item-label-vnf-min').contains('Minimum to instantiate');
         cy.getElementByDataTestsId('model-item-value-vnf-min').contains('100');
         cy.getElementByDataTestsId('model-item-label-vnf-max').contains('Maximum to instantiate');
@@ -60,11 +60,11 @@ describe('Vnf popup', function () {
 
     it('should display default values for undefined min/max', function () {
       cy.readFile('/cypress/support/jsonBuilders/mocks/jsons/emptyServiceRedux.json').then((res) => {
-        res.service.serviceHierarchy['2f80c596-27e5-4ca9-b5bb-e03a7fd4c0fd'].vnfs['2017-488_ADIOD-vPE 0'].properties.min_instances = null;
-        res.service.serviceHierarchy['2f80c596-27e5-4ca9-b5bb-e03a7fd4c0fd'].vnfs['2017-488_ADIOD-vPE 0'].properties.max_instances = null;
+        res.service.serviceHierarchy['2f80c596-27e5-4ca9-b5bb-e03a7fd4c0fd'].vnfs['2017-488_PASQUALE-vPE 0'].properties.min_instances = null;
+        res.service.serviceHierarchy['2f80c596-27e5-4ca9-b5bb-e03a7fd4c0fd'].vnfs['2017-488_PASQUALE-vPE 0'].properties.max_instances = null;
         cy.setReduxState(<any>res);
         cy.openIframe('app/ui/#/servicePlanning?serviceModelId=2f80c596-27e5-4ca9-b5bb-e03a7fd4c0fd');
-        cy.getElementByDataTestsId('node-2017-488_ADIOD-vPE 0-add-btn').click({force : true});
+        cy.getElementByDataTestsId('node-2017-488_PASQUALE-vPE 0-add-btn').click({force : true});
         cy.getElementByDataTestsId('model-item-label-vnf-min').contains('Minimum to instantiate');
         cy.getElementByDataTestsId('model-item-value-vnf-min').contains('0');
         cy.getElementByDataTestsId('model-item-label-vnf-max').contains('Maximum to instantiate');
@@ -74,11 +74,11 @@ describe('Vnf popup', function () {
 
     it('fill all fields of vnf popup', function () {
       cy.readFile('/cypress/support/jsonBuilders/mocks/jsons/emptyServiceRedux.json').then((res) => {
-        res.service.serviceHierarchy['2f80c596-27e5-4ca9-b5bb-e03a7fd4c0fd'].vnfs['2017-488_ADIOD-vPE 0'].min = null;
-        res.service.serviceHierarchy['2f80c596-27e5-4ca9-b5bb-e03a7fd4c0fd'].vnfs['2017-488_ADIOD-vPE 0'].max = null;
+        res.service.serviceHierarchy['2f80c596-27e5-4ca9-b5bb-e03a7fd4c0fd'].vnfs['2017-488_PASQUALE-vPE 0'].min = null;
+        res.service.serviceHierarchy['2f80c596-27e5-4ca9-b5bb-e03a7fd4c0fd'].vnfs['2017-488_PASQUALE-vPE 0'].max = null;
         cy.setReduxState(<any>res);
         cy.openIframe('app/ui/#/servicePlanning?serviceModelId=2f80c596-27e5-4ca9-b5bb-e03a7fd4c0fd');
-        cy.getElementByDataTestsId('node-2017-488_ADIOD-vPE 0-add-btn').click({force : true});
+        cy.getElementByDataTestsId('node-2017-488_PASQUALE-vPE 0-add-btn').click({force : true});
         cy.selectDropdownOptionByText('productFamily', 'Emanuel');
         cy.selectDropdownOptionByText('lcpRegion', 'hvf6');
         cy.selectDropdownOptionByText('tenant', 'AIN Web Tool-15-D-STTest2');
@@ -96,15 +96,10 @@ describe('Vnf popup', function () {
             "FLAG_NETWORK_TO_ASYNC_INSTANTIATION": false,
             "FLAG_SHOW_ASSIGNMENTS": true,
             "FLAG_FABRIC_CONFIGURATION_ASSIGNMENTS": true,
-            "FLAG_UNASSIGN_SERVICE": true,
             "FLAG_SHOW_VERIFY_SERVICE": false,
-            "FLAG_COLLECTION_RESOURCE_SUPPORT": true,
-            "FLAG_DUPLICATE_VNF": true,
             "FLAG_SERVICE_MODEL_CACHE": true,
             "CREATE_INSTANCE_TEST": false,
             "FLAG_SETTING_DEFAULTS_IN_DRAWING_BOARD": false,
-            "FLAG_ASYNC_INSTANTIATION": true,
-            "FLAG_ASYNC_JOBS": true,
             "EMPTY_DRAWING_BOARD_TEST": false,
             "FLAG_ADD_MSO_TESTAPI_FIELD": true
           },
@@ -125,14 +120,17 @@ describe('Vnf popup', function () {
                 "description": "ComplexService",
                 "serviceEcompNaming": "true",
                 "instantiationType": "Macro",
+                "vidNotions": {
+                  "instantiationType": "Macro"
+                },
                 "inputs": {}
               },
               "vnfs": {
-                "VF_vMee 0": {
+                "VF_vGeraldine 0": {
                   "uuid": "d6557200-ecf2-4641-8094-5393ae3aae60",
                   "invariantUuid": "4160458e-f648-4b30-a176-43881ffffe9e",
-                  "description": "VSP_vMee",
-                  "name": "VF_vMee",
+                  "description": "VSP_vGeraldine",
+                  "name": "VF_vGeraldine",
                   "version": "2.0",
                   "customizationUuid": "91415b44-753d-494c-926a-456a9172bbb9",
                   "inputs": {},
@@ -303,74 +301,74 @@ describe('Vnf popup', function () {
                     "sctp-b-egress-dst_end_port": "65535.0"
                   },
                   "type": "VF",
-                  "modelCustomizationName": "VF_vMee 0",
+                  "modelCustomizationName": "VF_vGeraldine 0",
                   "vfModules": {
-                    "vf_vmee0..VfVmee..vmme_vlc..module-1": {
+                    "vf_vgeraldine0..VfVgeraldine..vflorence_vlc..module-1": {
                       "uuid": "522159d5-d6e0-4c2a-aa44-5a542a12a830",
                       "invariantUuid": "98a7c88b-b577-476a-90e4-e25a5871e02b",
                       "customizationUuid": "55b1be94-671a-403e-a26c-667e9c47d091",
                       "description": null,
-                      "name": "VfVmee..vmme_vlc..module-1",
+                      "name": "VfVgeraldine..vflorence_vlc..module-1",
                       "version": "2",
-                      "modelCustomizationName": "VfVmee..vmme_vlc..module-1",
+                      "modelCustomizationName": "VfVgeraldine..vflorence_vlc..module-1",
                       "properties": {
                         "minCountInstances": 0,
                         "maxCountInstances": null,
                         "initialCount": 0,
-                        "vfModuleLabel": "vmme_vlc"
+                        "vfModuleLabel": "vflorence_vlc"
                       },
                       "inputs": {},
                       "volumeGroupAllowed": false
                     },
-                    "vf_vmee0..VfVmee..vmme_gpb..module-2": {
+                    "vf_vgeraldine0..VfVgeraldine..vflorence_gpb..module-2": {
                       "uuid": "41708296-e443-4c71-953f-d9a010f059e1",
                       "invariantUuid": "1cca90b8-3490-495e-87da-3f3e4c57d5b9",
                       "customizationUuid": "6add59e0-7fe1-4bc4-af48-f8812422ae7c",
                       "description": null,
-                      "name": "VfVmee..vmme_gpb..module-2",
+                      "name": "VfVgeraldine..vflorence_gpb..module-2",
                       "version": "2",
-                      "modelCustomizationName": "VfVmee..vmme_gpb..module-2",
+                      "modelCustomizationName": "VfVgeraldine..vflorence_gpb..module-2",
                       "properties": {
                         "minCountInstances": 0,
                         "maxCountInstances": null,
                         "initialCount": 0,
-                        "vfModuleLabel": "vmme_gpb"
+                        "vfModuleLabel": "vflorence_gpb"
                       },
                       "inputs": {},
                       "volumeGroupAllowed": false
                     },
-                    "vf_vmee0..VfVmee..base_vmme..module-0": {
+                    "vf_vgeraldine0..VfVgeraldine..base_vflorence..module-0": {
                       "uuid": "a27f5cfc-7f12-4f99-af08-0af9c3885c87",
                       "invariantUuid": "a6f9e51a-2b35-416a-ae15-15e58d61f36d",
                       "customizationUuid": "f8c040f1-7e51-4a11-aca8-acf256cfd861",
                       "description": null,
-                      "name": "VfVmee..base_vmme..module-0",
+                      "name": "VfVgeraldine..base_vflorence..module-0",
                       "version": "2",
-                      "modelCustomizationName": "VfVmee..base_vmme..module-0",
+                      "modelCustomizationName": "VfVgeraldine..base_vflorence..module-0",
                       "properties": {
                         "minCountInstances": 1,
                         "maxCountInstances": 1,
                         "initialCount": 1,
-                        "vfModuleLabel": "base_vmme"
+                        "vfModuleLabel": "base_vflorence"
                       },
                       "inputs": {},
                       "volumeGroupAllowed": true
                     }
                   },
                   "volumeGroups": {
-                    "vf_vmee0..VfVmee..base_vmme..module-0": {
+                    "vf_vgeraldine0..VfVgeraldine..base_vflorence..module-0": {
                       "uuid": "a27f5cfc-7f12-4f99-af08-0af9c3885c87",
                       "invariantUuid": "a6f9e51a-2b35-416a-ae15-15e58d61f36d",
                       "customizationUuid": "f8c040f1-7e51-4a11-aca8-acf256cfd861",
                       "description": null,
-                      "name": "VfVmee..base_vmme..module-0",
+                      "name": "VfVgeraldine..base_vflorence..module-0",
                       "version": "2",
-                      "modelCustomizationName": "VfVmee..base_vmme..module-0",
+                      "modelCustomizationName": "VfVgeraldine..base_vflorence..module-0",
                       "properties": {
                         "minCountInstances": 1,
                         "maxCountInstances": 1,
                         "initialCount": 1,
-                        "vfModuleLabel": "base_vmme"
+                        "vfModuleLabel": "base_vflorence"
                       },
                       "inputs": {}
                     }
@@ -398,7 +396,7 @@ describe('Vnf popup', function () {
                   "modelCustomizationName": "ExtVL 0"
                 }
               },
-              "collectionResource": {},
+              "collectionResources": {},
               "configurations": {
                 "Port Mirroring Configuration By Policy 0": {
                   "uuid": "b4398538-e89d-4f13-b33d-ca323434ba50",
@@ -419,72 +417,72 @@ describe('Vnf popup', function () {
               },
               "serviceProxies": {},
               "vfModules": {
-                "vf_vmee0..VfVmee..vmme_vlc..module-1": {
+                "vf_vgeraldine0..VfVgeraldine..vflorence_vlc..module-1": {
                   "uuid": "522159d5-d6e0-4c2a-aa44-5a542a12a830",
                   "invariantUuid": "98a7c88b-b577-476a-90e4-e25a5871e02b",
                   "customizationUuid": "55b1be94-671a-403e-a26c-667e9c47d091",
                   "description": null,
-                  "name": "VfVmee..vmme_vlc..module-1",
+                  "name": "VfVgeraldine..vflorence_vlc..module-1",
                   "version": "2",
-                  "modelCustomizationName": "VfVmee..vmme_vlc..module-1",
+                  "modelCustomizationName": "VfVgeraldine..vflorence_vlc..module-1",
                   "properties": {
                     "minCountInstances": 0,
                     "maxCountInstances": null,
                     "initialCount": 0,
-                    "vfModuleLabel": "vmme_vlc"
+                    "vfModuleLabel": "vflorence_vlc"
                   },
                   "inputs": {},
                   "volumeGroupAllowed": false
                 },
-                "vf_vmee0..VfVmee..vmme_gpb..module-2": {
+                "vf_vgeraldine0..VfVgeraldine..vflorence_gpb..module-2": {
                   "uuid": "41708296-e443-4c71-953f-d9a010f059e1",
                   "invariantUuid": "1cca90b8-3490-495e-87da-3f3e4c57d5b9",
                   "customizationUuid": "6add59e0-7fe1-4bc4-af48-f8812422ae7c",
                   "description": null,
-                  "name": "VfVmee..vmme_gpb..module-2",
+                  "name": "VfVgeraldine..vflorence_gpb..module-2",
                   "version": "2",
-                  "modelCustomizationName": "VfVmee..vmme_gpb..module-2",
+                  "modelCustomizationName": "VfVgeraldine..vflorence_gpb..module-2",
                   "properties": {
                     "minCountInstances": 0,
                     "maxCountInstances": null,
                     "initialCount": 0,
-                    "vfModuleLabel": "vmme_gpb"
+                    "vfModuleLabel": "vflorence_gpb"
                   },
                   "inputs": {},
                   "volumeGroupAllowed": false
                 },
-                "vf_vmee0..VfVmee..base_vmme..module-0": {
+                "vf_vgeraldine0..VfVgeraldine..base_vflorence..module-0": {
                   "uuid": "a27f5cfc-7f12-4f99-af08-0af9c3885c87",
                   "invariantUuid": "a6f9e51a-2b35-416a-ae15-15e58d61f36d",
                   "customizationUuid": "f8c040f1-7e51-4a11-aca8-acf256cfd861",
                   "description": null,
-                  "name": "VfVmee..base_vmme..module-0",
+                  "name": "VfVgeraldine..base_vflorence..module-0",
                   "version": "2",
-                  "modelCustomizationName": "VfVmee..base_vmme..module-0",
+                  "modelCustomizationName": "VfVgeraldine..base_vflorence..module-0",
                   "properties": {
                     "minCountInstances": 1,
                     "maxCountInstances": 1,
                     "initialCount": 1,
-                    "vfModuleLabel": "base_vmme"
+                    "vfModuleLabel": "base_vflorence"
                   },
                   "inputs": {},
                   "volumeGroupAllowed": true
                 }
               },
               "volumeGroups": {
-                "vf_vmee0..VfVmee..base_vmme..module-0": {
+                "vf_vgeraldine0..VfVgeraldine..base_vflorence..module-0": {
                   "uuid": "a27f5cfc-7f12-4f99-af08-0af9c3885c87",
                   "invariantUuid": "a6f9e51a-2b35-416a-ae15-15e58d61f36d",
                   "customizationUuid": "f8c040f1-7e51-4a11-aca8-acf256cfd861",
                   "description": null,
-                  "name": "VfVmee..base_vmme..module-0",
+                  "name": "VfVgeraldine..base_vflorence..module-0",
                   "version": "2",
-                  "modelCustomizationName": "VfVmee..base_vmme..module-0",
+                  "modelCustomizationName": "VfVgeraldine..base_vflorence..module-0",
                   "properties": {
                     "minCountInstances": 1,
                     "maxCountInstances": 1,
                     "initialCount": 1,
-                    "vfModuleLabel": "base_vmme"
+                    "vfModuleLabel": "base_vflorence"
                   },
                   "inputs": {}
                 }
@@ -495,19 +493,19 @@ describe('Vnf popup', function () {
           "serviceInstance": {
             "6e59c5de-f052-46fa-aa7e-2fca9d674c44": {
               "vnfs": {
-                "VF_vMee 0": {
-                  "originalName": "VF_vMee 0",
+                "VF_vGeraldine 0": {
+                  "originalName": "VF_vGeraldine 0",
                   "rollbackOnFailure": "true",
                   "vfModules": {
-                    "vf_vmee0..VfVmee..vmme_vlc..module-1": {
-                      "vf_vmee0..VfVmee..vmme_vlc..module-1dcudx": {
+                    "vf_vgeraldine0..VfVgeraldine..vflorence_vlc..module-1": {
+                      "vf_vgeraldine0..VfVgeraldine..vflorence_vlc..module-1dcudx": {
                         "modelInfo": {
                           "modelInvariantId": "98a7c88b-b577-476a-90e4-e25a5871e02b",
                           "modelVersionId": "522159d5-d6e0-4c2a-aa44-5a542a12a830",
-                          "modelName": "VfVmee..vmme_vlc..module-1",
+                          "modelName": "VfVgeraldine..vflorence_vlc..module-1",
                           "modelVersion": "2",
                           "modelCustomizationId": "55b1be94-671a-403e-a26c-667e9c47d091",
-                          "modelCustomizationName": "VfVmee..vmme_vlc..module-1"
+                          "modelCustomizationName": "VfVgeraldine..vflorence_vlc..module-1"
                         },
                         "isMissingData": false,
                         "instanceParams": [
@@ -517,7 +515,7 @@ describe('Vnf popup', function () {
                     }
                   },
                   "isMissingData": false,
-                  "modelName": "VF_vMee 0",
+                  "modelName": "VF_vGeraldine 0",
                   "productFamilyId": "36b4733a-53f4-4cc8-8ff0-9172e5fc4b8e",
                   "lcpCloudRegionId": "hvf6",
                   "tenantId": "bae71557c5bb4d5aac6743a4e5f1d054",
@@ -526,10 +524,10 @@ describe('Vnf popup', function () {
                   "modelInfo": {
                     "modelInvariantId": "4160458e-f648-4b30-a176-43881ffffe9e",
                     "modelVersionId": "d6557200-ecf2-4641-8094-5393ae3aae60",
-                    "modelName": "VF_vMee",
+                    "modelName": "VF_vGeraldine",
                     "modelVersion": "2.0",
                     "modelCustomizationId": "91415b44-753d-494c-926a-456a9172bbb9",
-                    "modelCustomizationName": "VF_vMee 0"
+                    "modelCustomizationName": "VF_vGeraldine 0"
                   }
                 }
               },
@@ -565,8 +563,8 @@ describe('Vnf popup', function () {
           "lcpRegionsAndTenants": {
             "lcpRegionList": [
               {
-                "id": "JANET25",
-                "name": "JANET25 (AIC)",
+                "id": "AAIAIC25",
+                "name": "AAIAIC25 (AIC)",
                 "cloudOwner" : "irma-aic",
                 "isPermitted": true
               },
@@ -578,7 +576,7 @@ describe('Vnf popup', function () {
               }
             ],
             "lcpRegionsTenantsMap": {
-              "JANET25": [
+              "AAIAIC25": [
                 {
                   "id": "092eb9e8e4b7412e8787dd091bc58e86",
                   "name": "USP-SIP-IC-24335-T-01",
@@ -592,8 +590,128 @@ describe('Vnf popup', function () {
                   "isPermitted": true
                 },
                 {
-                  "id": "d0a3e3f2964542259d155a81c41aadc3",
-                  "name": "test-hvf6-09",
+                  "id": "229bcdc6eaeb4ca59d55221141d01f8e",
+                  "name": "AIN Web Tool-15-D-STTest2",
+                  "isPermitted": true
+                },
+                {
+                  "id": "1178612d2b394be4834ad77f567c0af2",
+                  "name": "AIN Web Tool-15-D-SSPtestcustome",
+                  "isPermitted": true
+                },
+                {
+                  "id": "19c5ade915eb461e8af52fb2fd8cd1f2",
+                  "name": "AIN Web Tool-15-D-UncheckedEcopm",
+                  "isPermitted": true
+                },
+                {
+                  "id": "de007636e25249238447264a988a927b",
+                  "name": "AIN Web Tool-15-D-dfsdf",
+                  "isPermitted": true
+                },
+                {
+                  "id": "62f29b3613634ca6a3065cbe0e020c44",
+                  "name": "AIN/SMS-16-D-Multiservices1",
+                  "isPermitted": true
+                },
+                {
+                  "id": "649289e30d3244e0b48098114d63c2aa",
+                  "name": "AIN Web Tool-15-D-SSPST66",
+                  "isPermitted": true
+                },
+                {
+                  "id": "3f21eeea6c2c486bba31dab816c05a32",
+                  "name": "AIN Web Tool-15-D-ASSPST47",
+                  "isPermitted": true
+                },
+                {
+                  "id": "f60ce21d3ee6427586cff0d22b03b773",
+                  "name": "CESAR-100-D-sspjg67246",
+                  "isPermitted": true
+                },
+                {
+                  "id": "8774659e425f479895ae091bb5d46560",
+                  "name": "CESAR-100-D-sspjg68359",
+                  "isPermitted": true
+                },
+                {
+                  "id": "624eb554b0d147c19ff8885341760481",
+                  "name": "AINWebTool-15-D-iftach",
+                  "isPermitted": true
+                },
+                {
+                  "id": "214f55f5fc414c678059c383b03e4962",
+                  "name": "CESAR-100-D-sspjg612401",
+                  "isPermitted": true
+                },
+                {
+                  "id": "c90666c291664841bb98e4d981ff1db5",
+                  "name": "CESAR-100-D-sspjg621340",
+                  "isPermitted": true
+                },
+                {
+                  "id": "ce5b6bc5c7b348e1bf4b91ac9a174278",
+                  "name": "sspjg621351cloned",
+                  "isPermitted": true
+                },
+                {
+                  "id": "b386b768a3f24c8e953abbe0b3488c02",
+                  "name": "AINWebTool-15-D-eteancomp",
+                  "isPermitted": true
+                },
+                {
+                  "id": "dc6c4dbfd225474e9deaadd34968646c",
+                  "name": "AINWebTool-15-T-SPFET",
+                  "isPermitted": true
+                },
+                {
+                  "id": "02cb5030e9914aa4be120bd9ed1e19eb",
+                  "name": "AINWebTool-15-X-eeweww",
+                  "isPermitted": true
+                },
+                {
+                  "id": "f2f3830e4c984d45bcd00e1a04158a79",
+                  "name": "CESAR-100-D-spjg61909",
+                  "isPermitted": true
+                },
+                {
+                  "id": "05b91bd5137f4929878edd965755c06d",
+                  "name": "CESAR-100-D-sspjg621512cloned",
+                  "isPermitted": true
+                },
+                {
+                  "id": "7002fbe8482d4a989ddf445b1ce336e0",
+                  "name": "AINWebTool-15-X-vdr",
+                  "isPermitted": true
+                },
+                {
+                  "id": "4008522be43741dcb1f5422022a2aa0b",
+                  "name": "AINWebTool-15-D-ssasa",
+                  "isPermitted": true
+                },
+                {
+                  "id": "f44e2e96a1b6476abfda2fa407b00169",
+                  "name": "AINWebTool-15-D-PFNPT",
+                  "isPermitted": true
+                },
+                {
+                  "id": "b69a52bec8a84669a37a1e8b72708be7",
+                  "name": "AINWebTool-15-X-vdre",
+                  "isPermitted": true
+                },
+                {
+                  "id": "fac7d9fd56154caeb9332202dcf2969f",
+                  "name": "AINWebTool-15-X-NONPODECOMP",
+                  "isPermitted": true
+                },
+                {
+                  "id": "2d34d8396e194eb49969fd61ffbff961",
+                  "name": "DN5242-Nov16-T5",
+                  "isPermitted": true
+                },
+                {
+                  "id": "cb42a77ff45b48a8b8deb83bb64acc74",
+                  "name": "ro-T11",
                   "isPermitted": true
                 },
                 {
@@ -601,6 +719,16 @@ describe('Vnf popup', function () {
                   "name": "ro-T112",
                   "isPermitted": true
                 },
+                {
+                  "id": "4914ab0ab3a743e58f0eefdacc1dde77",
+                  "name": "DN5242-Nov21-T1",
+                  "isPermitted": true
+                },
+                {
+                  "id": "d0a3e3f2964542259d155a81c41aadc3",
+                  "name": "test-hvf6-09",
+                  "isPermitted": true
+                },
                 {
                   "id": "cbb99fe4ada84631b7baf046b6fd2044",
                   "name": "DN5242-Nov16-T3",
@@ -689,7 +817,7 @@ describe('Vnf popup', function () {
           "productFamilies": [
             {
               "id": "ebc3bc3d-62fd-4a3f-a037-f619df4ff034",
-              "name": "SCOTTIE",
+              "name": "ERICA",
               "isPermitted": true
             },
             {
@@ -714,7 +842,7 @@ describe('Vnf popup', function () {
             },
             {
               "id": "323d69d9-2efe-4r45-ay0a-89ea7ard4e6f",
-              "name": "vSCP",
+              "name": "vEsmeralda",
               "isPermitted": true
             },
             {
@@ -758,7 +886,7 @@ describe('Vnf popup', function () {
               "isPermitted": true
             },
             {
-              "id": "Cisneros",
+              "id": "vMuriel",
               "name": "vMuriel",
               "isPermitted": true
             },
@@ -784,7 +912,7 @@ describe('Vnf popup', function () {
             },
             {
               "id": "d7bb0a21-66f2-4e6d-87d9-9ef3ced63ae4",
-              "name": "Josefina",
+              "name": "JOSEFINA",
               "isPermitted": true
             },
             {
@@ -832,7 +960,7 @@ describe('Vnf popup', function () {
               },
               {
                 "id": "6",
-                "name": "vSEGW",
+                "name": "vPorfirio",
                 "isPermitted": false
               },
               {
@@ -847,7 +975,7 @@ describe('Vnf popup', function () {
               },
               {
                 "id": "9",
-                "name": "vMME",
+                "name": "vFLORENCE",
                 "isPermitted": false
               },
               {
@@ -857,7 +985,7 @@ describe('Vnf popup', function () {
               },
               {
                 "id": "11",
-                "name": "vSCP",
+                "name": "vEsmeralda",
                 "isPermitted": false
               },
               {
@@ -867,7 +995,7 @@ describe('Vnf popup', function () {
               },
               {
                 "id": "13",
-                "name": "vMMSC",
+                "name": "vWINIFRED",
                 "isPermitted": false
               },
               {
@@ -910,6 +1038,754 @@ describe('Vnf popup', function () {
               "id": "YYY1",
               "name": "UUUAIAAI-YYY1"
             },
+            {
+              "id": "BAN1",
+              "name": "VSDKYUTP-BAN1"
+            },
+            {
+              "id": "DKJ1",
+              "name": "DKJSJDKA-DKJ1"
+            },
+            {
+              "id": "MCS1",
+              "name": "ASACMAMS-MCS1"
+            },
+            {
+              "id": "UIO1",
+              "name": "uioclli1-UIO1"
+            },
+            {
+              "id": "RAJ1",
+              "name": "YGBIJNLQ-RAJ1"
+            },
+            {
+              "id": "OPA1",
+              "name": "opaclli1-OPA1"
+            },
+            {
+              "id": "SDE1",
+              "name": "ZXCVBNMA-SDE1"
+            },
+            {
+              "id": "VEN2",
+              "name": "FGHJUHIL-VEN2"
+            },
+            {
+              "id": "ORL1",
+              "name": "ORLDFLMA-ORL1"
+            },
+            {
+              "id": "JAD1",
+              "name": "JADECLLI-JAD1"
+            },
+            {
+              "id": "ZXL1",
+              "name": "LWLWCANN-ZXL1"
+            },
+            {
+              "id": "CKL1",
+              "name": "CLKSKCKK-CKL1"
+            },
+            {
+              "id": "SDF1",
+              "name": "sdfclli1-SDF1"
+            },
+            {
+              "id": "RAD1",
+              "name": "RADICAL1-RAD1"
+            },
+            {
+              "id": "KIT1",
+              "name": "BHYJFGLN-KIT1"
+            },
+            {
+              "id": "REL1",
+              "name": "INGERFGT-REL1"
+            },
+            {
+              "id": "JNL1",
+              "name": "CJALSDAC-JNL1"
+            },
+            {
+              "id": "OLK1",
+              "name": "OLKOLKLS-OLK1"
+            },
+            {
+              "id": "CHI1",
+              "name": "CHILLIWE-CHI1"
+            },
+            {
+              "id": "UUU4",
+              "name": "UUUAAAUU-UUU4"
+            },
+            {
+              "id": "TUF1",
+              "name": "TUFCLLI1-TUF1"
+            },
+            {
+              "id": "KJN1",
+              "name": "CKALDKSA-KJN1"
+            },
+            {
+              "id": "SAM1",
+              "name": "SNDGCA64-SAN1"
+            },
+            {
+              "id": "SCK1",
+              "name": "SCKSCKSK-SCK1"
+            },
+            {
+              "id": "HJH1",
+              "name": "AOEEQQQD-HJH1"
+            },
+            {
+              "id": "HGD1",
+              "name": "SDFQWHGD-HGD1"
+            },
+            {
+              "id": "KOR1",
+              "name": "HYFLNBVT-KOR1"
+            },
+            {
+              "id": "ATL43",
+              "name": "AICLOCID-ATL43"
+            },
+            {
+              "id": "ATL54",
+              "name": "AICFTAAI-ATL54"
+            },
+            {
+              "id": "ATL66",
+              "name": "CLLIAAII-ATL66"
+            },
+            {
+              "id": "VEL1",
+              "name": "BNMLKUIK-VEL1"
+            },
+            {
+              "id": "ICC1",
+              "name": "SANJITAT-ICC1"
+            },
+            {
+              "id": "MNT11",
+              "name": "WSXEFBTH-MNT11"
+            },
+            {
+              "id": "DEF2",
+              "name": "WSBHGTYL-DEF2"
+            },
+            {
+              "id": "MAD11",
+              "name": "SDFQWGKL-MAD11"
+            },
+            {
+              "id": "OLG1",
+              "name": "OLHOLHOL-OLG1"
+            },
+            {
+              "id": "GAR1",
+              "name": "NGFVSJKO-GAR1"
+            },
+            {
+              "id": "SAN22",
+              "name": "GNVLSCTL-SAN22"
+            },
+            {
+              "id": "HRG1",
+              "name": "HRGHRGGS-HRG1"
+            },
+            {
+              "id": "JCS1",
+              "name": "JCSJSCJS-JCS1"
+            },
+            {
+              "id": "DHA12",
+              "name": "WSXEDECF-DHA12"
+            },
+            {
+              "id": "HJE1",
+              "name": "AOEEWWWD-HJE1"
+            },
+            {
+              "id": "NCA1",
+              "name": "NCANCANN-NCA1"
+            },
+            {
+              "id": "IOP1",
+              "name": "iopclli1-IOP1"
+            },
+            {
+              "id": "RTY1",
+              "name": "rtyclli1-RTY1"
+            },
+            {
+              "id": "KAP1",
+              "name": "HIOUYTRQ-KAP1"
+            },
+            {
+              "id": "ZEN1",
+              "name": "ZENCLLI1-ZEN1"
+            },
+            {
+              "id": "HKA1",
+              "name": "JAKHLASS-HKA1"
+            },
+            {
+              "id": "CQK1",
+              "name": "CQKSCAKK-CQK1"
+            },
+            {
+              "id": "SAI1",
+              "name": "UBEKQLPD-SAI1"
+            },
+            {
+              "id": "ERT1",
+              "name": "ertclli1-ERT1"
+            },
+            {
+              "id": "IBB1",
+              "name": "PLMKOIJU-IBB1"
+            },
+            {
+              "id": "TIR2",
+              "name": "PLKINHYI-TIR2"
+            },
+            {
+              "id": "HSD1",
+              "name": "CHASKCDS-HSD1"
+            },
+            {
+              "id": "SLF78",
+              "name": "SDCTLFN1-SLF78"
+            },
+            {
+              "id": "SEE78",
+              "name": "SDCTEEE4-SEE78"
+            },
+            {
+              "id": "SAN13",
+              "name": "TOKYJPFA-SAN13"
+            },
+            {
+              "id": "SAA78",
+              "name": "SDCTAAA1-SAA78"
+            },
+            {
+              "id": "LUC1",
+              "name": "ATLDFGYC-LUC1"
+            },
+            {
+              "id": "AMD13",
+              "name": "MEMATLAN-AMD13"
+            },
+            {
+              "id": "TOR1",
+              "name": "TOROONXN-TOR1"
+            },
+            {
+              "id": "QWE1",
+              "name": "QWECLLI1-QWE1"
+            },
+            {
+              "id": "ZOG1",
+              "name": "ZOGASTRO-ZOG1"
+            },
+            {
+              "id": "CAL33",
+              "name": "CALIFORN-CAL33"
+            },
+            {
+              "id": "SHH78",
+              "name": "SDIT1HHH-SHH78"
+            },
+            {
+              "id": "DSA1",
+              "name": "LKJHGFDS-DSA1"
+            },
+            {
+              "id": "CLG1",
+              "name": "CLGRABAD-CLG1"
+            },
+            {
+              "id": "BNA1",
+              "name": "BNARAGBK-BNA1"
+            },
+            {
+              "id": "ATL84",
+              "name": "CANTTCOC-ATL84"
+            },
+            {
+              "id": "APP1",
+              "name": "WBHGTYUI-APP1"
+            },
+            {
+              "id": "RJN1",
+              "name": "RJNRBZAW-RJN1"
+            },
+            {
+              "id": "EHH78",
+              "name": "SDCSHHH5-EHH78"
+            },
+            {
+              "id": "mac10",
+              "name": "PKGTESTF-mac10"
+            },
+            {
+              "id": "SXB78",
+              "name": "SDCTGXB1-SXB78"
+            },
+            {
+              "id": "SAX78",
+              "name": "SDCTAXG1-SAX78"
+            },
+            {
+              "id": "SYD1",
+              "name": "SYDNAUBV-SYD1"
+            },
+            {
+              "id": "TOK1",
+              "name": "TOKYJPFA-TOK1"
+            },
+            {
+              "id": "KGM2",
+              "name": "KGMTNC20-KGM2"
+            },
+            {
+              "id": "DCC1b",
+              "name": "POIUYTGH-DCC1b"
+            },
+            {
+              "id": "SKK78",
+              "name": "SDCTKKK1-SKK78"
+            },
+            {
+              "id": "SGG78",
+              "name": "SDCTGGG1-SGG78"
+            },
+            {
+              "id": "SJJ78",
+              "name": "SDCTJJJ1-SJJ78"
+            },
+            {
+              "id": "SBX78",
+              "name": "SDCTBXG1-SBX78"
+            },
+            {
+              "id": "LAG1",
+              "name": "LARGIZON-LAG1"
+            },
+            {
+              "id": "IAA1",
+              "name": "QAZXSWED-IAA1"
+            },
+            {
+              "id": "POI1",
+              "name": "PLMNJKIU-POI1"
+            },
+            {
+              "id": "LAG1a",
+              "name": "LARGIZON-LAG1a"
+            },
+            {
+              "id": "PBL1",
+              "name": "PBLAPBAI-PBL1"
+            },
+            {
+              "id": "LAG45",
+              "name": "LARGIZON-LAG1a"
+            },
+            {
+              "id": "MAR1",
+              "name": "MNBVCXZM-MAR1"
+            },
+            {
+              "id": "HST70",
+              "name": "HSTNTX70-HST70"
+            },
+            {
+              "id": "DCC1a",
+              "name": "POIUYTGH-DCC1a"
+            },
+            {
+              "id": "TOL1",
+              "name": "TOLDOH21-TOL1"
+            },
+            {
+              "id": "LON1",
+              "name": "LONEENCO-LON1"
+            },
+            {
+              "id": "SJU78",
+              "name": "SDIT1JUB-SJU78"
+            },
+            {
+              "id": "STN27",
+              "name": "HSTNTX01-STN27"
+            },
+            {
+              "id": "SSW56",
+              "name": "ss8126GT-SSW56"
+            },
+            {
+              "id": "SBB78",
+              "name": "SDIT1BBB-SBB78"
+            },
+            {
+              "id": "DCC3",
+              "name": "POIUYTGH-DCC3"
+            },
+            {
+              "id": "GNV1",
+              "name": "GNVLSCTL-GNV1"
+            },
+            {
+              "id": "WAS1",
+              "name": "WASHDCSW-WAS1"
+            },
+            {
+              "id": "TOY1",
+              "name": "TORYONNZ-TOY1"
+            },
+            {
+              "id": "STT1",
+              "name": "STTLWA02-STT1"
+            },
+            {
+              "id": "STG1",
+              "name": "STTGGE62-STG1"
+            },
+            {
+              "id": "SLL78",
+              "name": "SDCTLLL1-SLL78"
+            },
+            {
+              "id": "SBU78",
+              "name": "SDIT1BUB-SBU78"
+            },
+            {
+              "id": "ATL2",
+              "name": "ATLNGANW-ATL2"
+            },
+            {
+              "id": "BOT1",
+              "name": "BOTHWAKY-BOT1"
+            },
+            {
+              "id": "SNG1",
+              "name": "SNGPSIAU-SNG1"
+            },
+            {
+              "id": "NYC1",
+              "name": "NYCMNY54-NYC1"
+            },
+            {
+              "id": "LAG1b",
+              "name": "LARGIZON-LAG1b"
+            },
+            {
+              "id": "AMD15",
+              "name": "AMDFAA01-AMD15"
+            },
+            {
+              "id": "SNA1",
+              "name": "SNANTXCA-SNA1"
+            },
+            {
+              "id": "PLT1",
+              "name": "PLTNCA60-PLT1"
+            },
+            {
+              "id": "TLP1",
+              "name": "TLPNXM18-TLP1"
+            },
+            {
+              "id": "SDD81",
+              "name": "SAIT1DD6-SDD81"
+            },
+            {
+              "id": "DCC1",
+              "name": "POIUYTGH-DCC1"
+            },
+            {
+              "id": "DCC2",
+              "name": "POIUYTGH-DCC2"
+            },
+            {
+              "id": "OKC1",
+              "name": "OKCBOK55-OKC1"
+            },
+            {
+              "id": "PAR1",
+              "name": "PARSFRCG-PAR1"
+            },
+            {
+              "id": "TES36",
+              "name": "ABCEETES-TES36"
+            },
+            {
+              "id": "COM1",
+              "name": "PLMKOPIU-COM1"
+            },
+            {
+              "id": "ANI1",
+              "name": "ATLNGTRE-ANI1"
+            },
+            {
+              "id": "SDG78",
+              "name": "SDIT1BDG-SDG78"
+            },
+            {
+              "id": "mac20",
+              "name": "PKGTESTF-mac20"
+            },
+            {
+              "id": "DSF45",
+              "name": "DSFBG123-DSF45"
+            },
+            {
+              "id": "HST25",
+              "name": "HSTNTX01-HST25"
+            },
+            {
+              "id": "AMD18",
+              "name": "AUDIMA01-AMD18"
+            },
+            {
+              "id": "SAA80",
+              "name": "SAIT9AA3-SAA80"
+            },
+            {
+              "id": "SSA56",
+              "name": "SSIT2AA7-SSA56"
+            },
+            {
+              "id": "SDD82",
+              "name": "SAIT1DD9-SDD82"
+            },
+            {
+              "id": "JCV1",
+              "name": "JCVLFLBW-JCV1"
+            },
+            {
+              "id": "SUL2",
+              "name": "WERTYUJK-SUL2"
+            },
+            {
+              "id": "PUR1",
+              "name": "purelyde-PUR1"
+            },
+            {
+              "id": "FDE55",
+              "name": "FDERT555-FDE55"
+            },
+            {
+              "id": "SITE",
+              "name": "LONEENCO-SITE"
+            },
+            {
+              "id": "ATL1",
+              "name": "ATLNGAMA-ATL1"
+            },
+            {
+              "id": "JUL1",
+              "name": "ZXCVBNMM-JUL1"
+            },
+            {
+              "id": "TAT34",
+              "name": "TESAAISB-TAT34"
+            },
+            {
+              "id": "XCP12",
+              "name": "CHKGH123-XCP12"
+            },
+            {
+              "id": "RAI1",
+              "name": "poiuytre-RAI1"
+            },
+            {
+              "id": "HPO1",
+              "name": "ATLNGAUP-HPO1"
+            },
+            {
+              "id": "KJF12",
+              "name": "KJFDH123-KJF12"
+            },
+            {
+              "id": "SCC80",
+              "name": "SAIT9CC3-SCC80"
+            },
+            {
+              "id": "SAA12",
+              "name": "SAIT9AF8-SAA12"
+            },
+            {
+              "id": "SAA14",
+              "name": "SAIT1AA9-SAA14"
+            },
+            {
+              "id": "ATL35",
+              "name": "TTESSAAI-ATL35"
+            },
+            {
+              "id": "CWY1",
+              "name": "CWYMOWBS-CWY1"
+            },
+            {
+              "id": "ATL76",
+              "name": "TELEPAAI-ATL76"
+            },
+            {
+              "id": "DSL12",
+              "name": "DSLFK242-DSL12"
+            },
+            {
+              "id": "ATL53",
+              "name": "AAIATLTE-ATL53"
+            },
+            {
+              "id": "SAA11",
+              "name": "SAIT9AA2-SAA11"
+            },
+            {
+              "id": "ATL62",
+              "name": "TESSASCH-ATL62"
+            },
+            {
+              "id": "AUG1",
+              "name": "ASDFGHJK-AUG1"
+            },
+            {
+              "id": "POI22",
+              "name": "POIUY123-POI22"
+            },
+            {
+              "id": "SAA13",
+              "name": "SAIT1AA9-SAA13"
+            },
+            {
+              "id": "BHY17",
+              "name": "BHYTFRF3-BHY17"
+            },
+            {
+              "id": "LIS1",
+              "name": "HOSTPROF-LIS1"
+            },
+            {
+              "id": "SIP1",
+              "name": "ZXCVBNMK-SIP1"
+            },
+            {
+              "id": "ATL99",
+              "name": "TEESTAAI-ATL43"
+            },
+            {
+              "id": "ATL64",
+              "name": "FORLOAAJ-ATL64"
+            },
+            {
+              "id": "TAT33",
+              "name": "TESAAISA-TAT33"
+            },
+            {
+              "id": "RAD10",
+              "name": "INDIPUNE-RAD10"
+            },
+            {
+              "id": "RTW5",
+              "name": "BHYTFRY4-RTW5"
+            },
+            {
+              "id": "JGS1",
+              "name": "KSJKKKKK-JGS1"
+            },
+            {
+              "id": "ATL98",
+              "name": "TEESTAAI-ATL43"
+            },
+            {
+              "id": "WAN1",
+              "name": "LEIWANGW-WAN1"
+            },
+            {
+              "id": "ATL44",
+              "name": "ATLSANAB-ATL44"
+            },
+            {
+              "id": "RTD2",
+              "name": "BHYTFRk4-RTD2"
+            },
+            {
+              "id": "NIR1",
+              "name": "ORFLMANA-NIR1"
+            },
+            {
+              "id": "ATL75",
+              "name": "SANAAIRE-ATL75"
+            },
+            {
+              "id": "NUM1",
+              "name": "QWERTYUI-NUM1"
+            },
+            {
+              "id": "hvf32",
+              "name": "MDTWNJ21-hvf32"
+            },
+            {
+              "id": "RTZ4",
+              "name": "BHYTFRZ6-RTZ4"
+            },
+            {
+              "id": "ATL56",
+              "name": "ATLSANAC-ATL56"
+            },
+            {
+              "id": "AMS1",
+              "name": "AMSTNLBW-AMS1"
+            },
+            {
+              "id": "RCT1",
+              "name": "AMSTERNL-RCT1"
+            },
+            {
+              "id": "JAN1",
+              "name": "ORFLMATT-JAN1"
+            },
+            {
+              "id": "ABC14",
+              "name": "TESAAISA-ABC14"
+            },
+            {
+              "id": "TAT37",
+              "name": "TESAAISD-TAT37"
+            },
+            {
+              "id": "MIC54",
+              "name": "MICHIGAN-MIC54"
+            },
+            {
+              "id": "ABC11",
+              "name": "ATLSANAI-ABC11"
+            },
+            {
+              "id": "AMF11",
+              "name": "AMDOCS01-AMF11"
+            },
+            {
+              "id": "ATL63",
+              "name": "ATLSANEW-ATL63"
+            },
+            {
+              "id": "ABC12",
+              "name": "ATLSECIA-ABC12"
+            },
+            {
+              "id": "hvf20",
+              "name": "MDTWNJ21-hvf20"
+            },
+            {
+              "id": "ABC15",
+              "name": "AAITESAN-ABC15"
+            },
             {
               "id": "AVT1",
               "name": "AVTRFLHD-AVT1"
diff --git a/vid-webpack-master/cypress/integration/iFrames/vnf.update.e2e.ts b/vid-webpack-master/cypress/integration/iFrames/vnf.update.e2e.ts
new file mode 100644 (file)
index 0000000..4d2d7db
--- /dev/null
@@ -0,0 +1,94 @@
+///<reference path="../../../node_modules/cypress/types/index.d.ts"/>
+import {JsonBuilder} from '../../support/jsonBuilders/jsonBuilder';
+import {ServiceModel} from '../../support/jsonBuilders/models/service.model';
+import {AsyncInstantiationModel} from "../../support/jsonBuilders/models/asyncInstantiation.model";
+
+describe('Delete vnf instance', function () {
+  let jsonBuilderAndMock: JsonBuilder<ServiceModel> = new JsonBuilder<ServiceModel>();
+
+  let jsonBuilderInstantiationBuilder: JsonBuilder<AsyncInstantiationModel> = new JsonBuilder<AsyncInstantiationModel>();
+
+  beforeEach(() => {
+    cy.window().then((win) => {
+      win.sessionStorage.clear();
+      cy.preventErrorsOnLoading();
+      cy.initAAIMock();
+      cy.initVidMock();
+      cy.initZones();
+      cy.permissionVidMock();
+      cy.login();
+    });
+  });
+
+  afterEach(() => {
+    cy.screenshot();
+  });
+
+  it(`Update vnf - add 1 delete 1`, function () {
+    const SUBSCRIBER_ID: string = "e433710f-9217-458d-a79d-1c7aff376d89";
+    const SERVICE_TYPE: string = "TYLER SILVIA";
+    const SERVICE_INSTANCE_ID: string = "f8791436-8d55-4fde-b4d5-72dd2cf13cfb";
+    const SERVICE_MODEL_ID: string = '6b528779-44a3-4472-bdff-9cd15ec93450';
+
+    cy.server().route({
+      url: Cypress.config('baseUrl') + '/asyncInstantiation/bulk',
+      method: 'POST',
+      status: 200,
+      response: "[]",
+    }).as("expectedPostAsyncInstantiation");
+
+    cy.readFile('/cypress/support/jsonBuilders/mocks/jsons/serviceModels/ecompNamingFalseModel.json').then((res) => {
+      res.service.vidNotions.instantiationType = 'ALaCarte';
+      jsonBuilderAndMock.basicJson(
+        res,
+        Cypress.config('baseUrl') + "/rest/models/services/6b528779-44a3-4472-bdff-9cd15ec93450",
+        200,
+        0,
+        "ecompNamingFalseModel",
+      )
+    });
+
+    cy.readFile('../vid-automation/src/test/resources/aaiGetInstanceTopology/getServiceInstanceTopologyResult.json').then((res) => {
+      res.networks = {};
+      res.isALaCarte = true;
+      res.instanceId = "f8791436-8d55-4fde-b4d5-72dd2cf13cfb";
+
+      const vnf = res.vnfs['2017-488_PASQUALE-vPE 0'];
+      vnf.instanceId = "VNF_INSTANCE_ID";
+      vnf.vfModules['2017488_pasqualevpe0..2017488PasqualeVpe..PASQUALE_base_vPE_BV..module-0']['2017488_pasqualevpe0..2017488PasqualeVpe..PASQUALE_base_vPE_BV..module-0uvfot'].instanceId = "VF_MODULE_BASE_INSTANCE_ID";
+      vnf.vfModules['2017488_pasqualevpe0..2017488PasqualeVpe..PASQUALE_vRE_BV..module-1']['2017488_pasqualevpe0..2017488PasqualeVpe..PASQUALE_vRE_BV..module-1fshmc'].instanceId = "VF_MODULE_INSTANCE_ID";
+
+      jsonBuilderAndMock.basicJson(
+        res,
+        Cypress.config('baseUrl') + "/aai_get_service_instance_topology/e433710f-9217-458d-a79d-1c7aff376d89/TYLER SILVIA/f8791436-8d55-4fde-b4d5-72dd2cf13cfb",
+        200, 0,
+        "initServiceInstanceTopology",
+      )
+    });
+
+    cy.openIframe(`app/ui/#/servicePlanning/EDIT?serviceModelId=${SERVICE_MODEL_ID}&subscriberId=${SUBSCRIBER_ID}&serviceType=${SERVICE_TYPE}&serviceInstanceId=${SERVICE_INSTANCE_ID}`);
+
+    // add a vnf on update mode
+    cy.drawingBoardPressAddButtonByElementName('node-2017-388_PASQUALE-vPE 0').click({force: true});
+    cy.selectDropdownOptionByText('rollback', 'Rollback');
+    cy.fillVnfPopup();
+
+    // delete VNF
+    cy.drawingBoardTreeOpenContextMenuByElementDataTestId('node-69e09f68-8b63-4cc9-b9ff-860960b5db09-2017-488_PASQUALE-vPE 0', 0)
+      .drawingBoardTreeClickOnContextMenuOptionByName('Delete');
+
+    // update service
+    cy.getDrawingBoardDeployBtn().click();
+
+    cy.getReduxState().then((state) => {
+      const vnf = state.service.serviceInstance[SERVICE_MODEL_ID].vnfs["2017-388_PASQUALE-vPE 0_1"];
+      cy.wait('@expectedPostAsyncInstantiation').then(xhr => {
+        cy.readFile('../vid-automation/src/test/resources/asyncInstantiation/vidRequestDelete1Create1Vnf.json').then((expectedResult) => {
+          expectedResult.vnfs["2017-388_PASQUALE-vPE 0_1"].trackById = vnf.trackById;
+          cy.deepCompare(xhr.request.body, expectedResult);
+        });
+      });
+    });
+  });
+
+});
index 5db0c75..f9c188b 100644 (file)
@@ -145,6 +145,7 @@ describe('Vnf Groups', function () {
 
           reduxRes.service.serviceHierarchy[SERVICE_MODEL_ID] = serviceModel;
           reduxRes.service.serviceInstance[SERVICE_MODEL_ID] = basicServiceInstance;
+          reduxRes.global.genericModalHelper = {};
 
           cy.setReduxState(<any>reduxRes);
 
@@ -205,6 +206,7 @@ describe('Vnf Groups', function () {
         });
 
         cy.openIframe(`app/ui/#/servicePlanning/EDIT?serviceModelId=${SERVICE_MODEL_ID}&subscriberId=${SUBSCRIBER_ID}&serviceType=${SERVICE_TYPE}&serviceInstanceId=${SERVICE_INSTANCE_ID}`);
+        cy.getElementByDataTestsId('orchStatusValue').should('not.have.class', 'tag-status-value');
         cy.getElementByDataTestsId('openMenuBtn').click();
         cy.getElementByDataTestsId('context-menu-header-delete-item').should('have.text', 'Delete');
         cy.getElementByDataTestsId('context-menu-header-delete-item').click();
@@ -545,7 +547,7 @@ describe('Vnf Groups', function () {
         });
       });
 
-      it(`vnf group with vnf members, add group members option open modal"`, () => {
+      it(`vnf group with vnf members, add group members option open modal`, () => {
         const SUBSCRIBER_ID: string = "global-customer-id";
         const SERVICE_TYPE: string = "service-instance-type";
         const SERVICE_INSTANCE_ID: string = "f8791436-8d55-4fde-b4d5-72dd2cf13cfb";
@@ -594,17 +596,16 @@ describe('Vnf Groups', function () {
         cy.getElementByDataTestsId('node-daeb6568-cef8-417f-9075-ed259ce59f48-groupingservicefortest..ResourceInstanceGroup..0-menu-btn')
           .eq(0).click({force: true}).then(() => {
           cy.getElementByDataTestsId('context-menu-addGroupMember').click({force: true}).then(() => {
-            cy.getElementByDataTestsId('sourceModelName').contains("vDBE_Svc_vPRS");
+            cy.getElementByDataTestsId('sourceModelName').contains("vDOROTHEA_Svc_vPRS");
             cy.getElementByDataTestsId('sourceModelInvariant').contains("24632e6b-584b-4f45-80d4-fefd75fd9f14");
             cy.get('#vnfName').eq(0).get('#VNF1_INSTANCE_NAME').contains('VNF1_INSTANCE_NAME');
             cy.get('#vnfName').eq(0).get('#VNF1_INSTANCE_ID').contains('VNF1_INSTANCE_ID');
-            cy.getElementByDataTestsId('total-amount').should('have.text', '4 VNFs match your criteria');
+            cy.getElementByDataTestsId('total-amount').should('have.text', '4 VNFs match your criteria |');
             cy.getElementByDataTestsId('total-selected').should('have.text', '0 VNF selected');
             cy.getElementByDataTestsId('setMembersBtn').should('have.attr', 'disabled');
             testCheckbox();
             testResetAddMemberModal();
             testUpdateBtn();
-
           });
         });
       });
@@ -650,7 +651,7 @@ describe('Vnf Groups', function () {
         cy.getElementByDataTestsId('node-daeb6568-cef8-417f-9075-ed259ce59f48-groupingservicefortest..ResourceInstanceGroup..0-menu-btn')
           .eq(0).click({force: true}).then(() => {
           cy.getElementByDataTestsId('context-menu-addGroupMember').click({force: true}).then(() => {
-            cy.getElementByDataTestsId('total-amount').should('have.text', '0 VNFs match your criteria');
+            cy.getElementByDataTestsId('total-amount').should('have.text', '0 VNFs match your criteria |');
             cy.getElementByDataTestsId('total-selected').should('have.text', '0 VNF selected');
             cy.get('.no-result').should('have.text', 'No VNFs were found that can belong to this group.');
           });
@@ -714,22 +715,10 @@ describe('Vnf Groups', function () {
           cy.getElementByDataTestsId('node-' + NODE_ID + '-' + GROUP_NAME_TO_DEPLOY + '-menu-btn').each((row, index) => {
             cy.wrap(row).click({force: true}).then(() => {
               cy.getElementByDataTestsId('context-menu-addGroupMember').click({force: true}).then(() => {
-                cy.getElementByDataTestsId('total-amount').should('have.text', '4 VNFs match your criteria');
-                cy.get('.allCheckboxAreSelected input').click({force: true});
-                cy.getElementByDataTestsId('setMembersBtn').click({force: true}).then(() => {
-                  checkIsErrorAppear(true, 'node-' + NODE_ID + '-' + GROUP_NAME_TO_DEPLOY, 3, index);
-                  cy.get('.toggle-children').click({force: true}).then(() => {
-                    let memberIndex = 3;
-                    while (!index && memberIndex >= 0) {
-                      clickOnVnfMemberAndAssertScaling(memberIndex--, 'context-menu-remove', false, FULL_GROUP_NAME, 3, index);
-                    }
-                  });
-                });
+
               });
             });
           });
-          clickOnVnfMemberAndAssertScaling(0, 'context-menu-remove', false, FULL_GROUP_NAME, 3, 1);
-          cy.getElementByDataTestsId('deployBtn').should('have.text', 'DEPLOY').click();
         });
       });
 
@@ -786,7 +775,7 @@ describe('Vnf Groups', function () {
         cy.getElementByDataTestsId('node-' + NODE_ID + '-' + GROUP_NAME_TO_DEPLOY + '-menu-btn')
           .eq(0).click({force: true}).then(() => {
           cy.getElementByDataTestsId('context-menu-addGroupMember').click({force: true}).then(() => {
-            cy.getElementByDataTestsId('total-amount').should('have.text', '4 VNFs match your criteria');
+            cy.getElementByDataTestsId('total-amount').should('have.text', '4 VNFs match your criteria |');
             cy.get('.allCheckboxAreSelected input').click({force: true});
             cy.getElementByDataTestsId('setMembersBtn').click({force: true}).then(() => {
               checkIsErrorAppear(true, FULL_GROUP_NAME, 4, 0);
@@ -824,32 +813,32 @@ describe('Vnf Groups', function () {
         let totalNumber = 4;
         cy.get('.allCheckboxAreSelected input').click({force: true});
         cy.getElementByDataTestsId('setMembersBtn').should('not.have.attr', 'disabled');
-        cy.getElementByDataTestsId('numberOfNotHideVnfMembers').contains(totalNumber);
-        cy.getElementByDataTestsId('numberOfSelectedVnfMembers').contains(totalNumber);
+        cy.getElementByDataTestsId('numberOfNotHideRows').contains(totalNumber);
+        cy.getElementByDataTestsId('numberOfSelectedRows').contains(totalNumber);
         cy.get('.sdcCheckboxMember input').eq(0).click({force: true});
-        cy.getElementByDataTestsId('numberOfSelectedVnfMembers').contains(totalNumber - 1);
+        cy.getElementByDataTestsId('numberOfSelectedRows').contains(totalNumber - 1);
         cy.get('.sdcCheckboxMember input').eq(1).click({force: true});
-        cy.getElementByDataTestsId('numberOfSelectedVnfMembers').contains(totalNumber - 2);
+        cy.getElementByDataTestsId('numberOfSelectedRows').contains(totalNumber - 2);
         cy.get('.allCheckboxAreSelected input').click({force: true});
-        cy.getElementByDataTestsId('numberOfSelectedVnfMembers').contains(totalNumber);
+        cy.getElementByDataTestsId('numberOfSelectedRows').contains(totalNumber);
         cy.get('.allCheckboxAreSelected input').click({force: true});
-        cy.getElementByDataTestsId('numberOfSelectedVnfMembers').contains(0);
+        cy.getElementByDataTestsId('numberOfSelectedRows').contains(0);
 
         cy.getElementByDataTestsId("vnf-members-search").find('input').type("2.0");
-        cy.getElementByDataTestsId('numberOfNotHideVnfMembers').contains(1);
+        cy.getElementByDataTestsId('numberOfNotHideRows').contains(1);
         cy.getElementByDataTestsId("vnf-members-search").find('input').clear().type("vnf1");
-        cy.getElementByDataTestsId('numberOfNotHideVnfMembers').contains(1);
+        cy.getElementByDataTestsId('numberOfNotHideRows').contains(1);
         cy.get('.allCheckboxAreSelected input').click({force: true});
-        cy.getElementByDataTestsId('numberOfSelectedVnfMembers').contains(1);
+        cy.getElementByDataTestsId('numberOfSelectedRows').contains(1);
         cy.getElementByDataTestsId("vnf-members-search").find('input').clear();
-        cy.getElementByDataTestsId('numberOfSelectedVnfMembers').contains(1);
+        cy.getElementByDataTestsId('numberOfSelectedRows').contains(1);
 
         cy.getElementByDataTestsId('setMembersBtn').click({force: true});
         //check second time behavior (selected VNFs should be filtered)
         cy.getElementByDataTestsId('node-daeb6568-cef8-417f-9075-ed259ce59f48-groupingservicefortest..ResourceInstanceGroup..0-menu-btn')
           .eq(1).click({force: true}).then(() => {
           cy.getElementByDataTestsId('context-menu-addGroupMember').click({force: true}).then(() => {
-            cy.getElementByDataTestsId('numberOfNotHideVnfMembers').contains(totalNumber - 1);
+            cy.getElementByDataTestsId('numberOfNotHideRows').contains(totalNumber - 1);
             cy.getElementByDataTestsId('cancelBtn').click({force: true});
           });
         });
@@ -859,7 +848,7 @@ describe('Vnf Groups', function () {
         cy.getElementByDataTestsId('node-groupingservicefortest..ResourceInstanceGroup..1-add-btn').click({force: true})
           .getElementByDataTestsId('node-c2b300e6-45de-4e5e-abda-3032bee2de56-groupingservicefortest..ResourceInstanceGroup..1-menu-btn').eq(0).click({force: true}).then(() => {
           cy.getElementByDataTestsId('context-menu-addGroupMember').click({force: true}).then(() => {
-            cy.getElementByDataTestsId('numberOfNotHideVnfMembers').contains(0);
+            cy.getElementByDataTestsId('numberOfNotHideRows').contains(0);
             cy.getElementByDataTestsId('cancelBtn').click({force: true});
           });
           cy.getElementByDataTestsId('node-c2b300e6-45de-4e5e-abda-3032bee2de56-groupingservicefortest..ResourceInstanceGroup..1-menu-btn').eq(0).click({force: true}).then(() => {
@@ -883,8 +872,6 @@ describe('Vnf Groups', function () {
           checkIsErrorAppear(isError, groupRowId, limit, index);
         });
       }
-
-
     }
   );
 });
diff --git a/vid-webpack-master/cypress/integration/iFrames/vrf.e2e.ts b/vid-webpack-master/cypress/integration/iFrames/vrf.e2e.ts
new file mode 100644 (file)
index 0000000..717d3a9
--- /dev/null
@@ -0,0 +1,587 @@
+import {JsonBuilder} from "../../support/jsonBuilders/jsonBuilder";
+import {ServiceModel} from "../../support/jsonBuilders/models/service.model";
+
+describe('Drawing board : VRF', function () {
+
+  var jsonBuilderAndMock: JsonBuilder<ServiceModel> = new JsonBuilder<ServiceModel>();
+
+  beforeEach(() => {
+    cy.window().then((win) => {
+      win.sessionStorage.clear();
+      cy.setReduxState();
+      cy.preventErrorsOnLoading();
+      cy.initAAIMock();
+      cy.initActiveNetworks();
+      cy.initActiveVPNs();
+      cy.initVidMock();
+      cy.login();
+
+      cy.server().route({
+        url: Cypress.config('baseUrl') + '/asyncInstantiation/bulk',
+        method: 'POST',
+        status: 200,
+        response: "[]",
+      }).as("expectedPostAsyncInstantiation");
+    });
+  });
+
+  afterEach(() => {
+    cy.screenshot();
+  });
+
+
+  describe('vrf drawing board', () => {
+    it('should show vrf model and vrf instance correctly', () => {
+      const serviceModelId: string = "f028b2e2-7080-4b13-91b2-94944d4c42d8";
+      const vrfEntryName: string = "VRF Entry Configuration 0";
+      initDrawingBoardWithColectionResource(serviceModelId);
+      cy.get('.vf-type').contains('VRF');
+      cy.getElementByDataTestsId('available-models-tree').getElementByDataTestsId('node-name').contains(vrfEntryName);
+
+      /*
+      Right tree
+      */
+
+      const rightShouldHaves: { [dataTestId: string]: { [dataTestId: string]: string; }; } = {
+        'node-9cac02be-2489-4374-888d-2863b4511a59-VRF Entry Configuration 0:0': {
+          'node-type-indicator': 'VRF',
+          'node-name': '<Automatically Assigned>'
+        },
+        'node-undefined-undefined:0': {
+          'node-type-indicator': 'N',
+          'node-name': 'NETWORK1_INSTANCE_NAME',
+          'status-property-orchStatus': 'Assigned',
+          'status-property-provStatus': 'prov'
+        },
+        'node-undefined-undefined:1': {
+          'node-type-indicator': 'VPN',
+          'node-name': 'VPN1_INSTANCE_NAME',
+          'status-property-orchStatus': 'Assigned',
+          'status-property-provStatus': 'prov'
+        }
+      };
+
+      for (let node in rightShouldHaves) {
+        var [nodeName, nodeEq] = node.split(":");
+        for (let span in rightShouldHaves[node]) {
+          cy.getElementByDataTestsId(nodeName).eq(+nodeEq).find(`[data-tests-id='${span}']`).should('have.text', rightShouldHaves[node][span]);
+
+        }
+      }
+    });
+
+
+    it('vrf on click add should show generic modal ', () => {
+      const serviceModelId: string = "f028b2e2-7080-4b13-91b2-94944d4c42d8";
+      initDrawingBoardWithColectionResource(serviceModelId);
+      cy.getElementByDataTestsId('searchByNetworkRole').click({force: true}).then(() => {
+        cy.get('.allCheckboxAreSelected input').should('have.attr', 'disabled');
+        cy.get('.sdcCheckboxMember input').eq(0).should('not.have.attr', 'disabled');
+
+        cy.get('.sdcCheckboxMember input').eq(0).click({force: true});
+        cy.get('table thead .allCheckboxAreSelected input').should('have.attr', 'disabled');
+        cy.get('.sdcCheckboxMember input').eq(1).should('not.have.attr', 'disabled');
+        cy.getElementByDataTestsId("vnf-members-search").find('input').type("2.0");
+      });
+    });
+
+    it('check VRF popup', () => {
+      const serviceModelId: string = "f028b2e2-7080-4b13-91b2-94944d4c42d8";
+      initDrawingBoardWithColectionResource(serviceModelId);
+      cy.getElementByDataTestsId('searchByNetworkRole').click({force: true}).then(() => {
+        checkNetworkTableHeaders();
+        checkNetworkPopupTitles();
+        cy.validateSelectOptions('roles-criteria', roleOptions);
+        // set Network should be disabled
+        cy.isElementContainsAttr("setMembersBtn", "disabled");
+        cy.get('.sdcCheckboxMember input').eq(0).click({force: true}).then(() => {
+          cy.isElementNotContainsAttr("setMembersBtn", "disabled");
+          cy.getElementByDataTestsId('setMembersBtn').click({force: true}).then(() => {
+            checkVPNTableHeaders();
+            checkVPNPopupTitles();
+            cy.isElementContainsAttr("setMembersBtn", "disabled");
+            cy.get('.sdcCheckboxMember[data-tests-id=\'120d39fb-3627-473d-913c-d228dd0f8e5b\'] input').eq(0).click({force: true}).then(() => {
+              cy.isElementNotContainsAttr("setMembersBtn", "disabled");
+              cy.getElementByDataTestsId('setMembersBtn').click({force: true}).then(() => {
+                cy.isElementNotContainsAttr("deployBtn", "disabled");
+                cy.getElementByDataTestsId('deployBtn').click({force: true}).then(() => {
+                  cy.wait('@expectedPostAsyncInstantiation').then(xhr => {
+                    cy.readFile('../vid-automation/src/test/resources/vrf/vrfServiceCreateRequest.json').then((expectedResult) => {
+                      cy.deepCompare(xhr.request.body, expectedResult);
+                    });
+                  });
+                });
+              });
+            });
+          });
+        })
+      });
+    });
+
+    it('create new VRF and change associations', () => {
+
+      const oldVPNDataTestId: string = '120d39fb-3627-473d-913c-d228dd0f8e5b';
+      const oldNETWORKDataTestId: string = '10a74149-c9d7-4918-bbcf-d5fb9b1799ce';
+      const newVPNDataTestId: string = '46fcb25a-e7ba-4d96-99ba-3bb6eae6aba7';
+      const newNETWORKDataTestId: string = '3b3308d4-0cd3-43e4-9a7b-d1925c861135';
+
+      const serviceModelId: string = "f028b2e2-7080-4b13-91b2-94944d4c42d8";
+
+      const redux = reduxWithVrf(serviceModelId);
+      redux.service.serviceInstance[serviceModelId].vrfs = <any>{};
+      cy.setReduxState(<any>redux);
+      cy.openIframe(`app/ui/#/servicePlanning?serviceModelId=${serviceModelId}`);
+
+      cy.getElementByDataTestsId('searchByNetworkRole').click({force: true}).then(() => {
+        cy.isElementContainsAttr("setMembersBtn", "disabled");
+        cy.get('.sdcCheckboxMember[data-tests-id="' + newNETWORKDataTestId + '"] input').eq(0).click({force: true}).then(() => {
+          cy.isElementNotContainsAttr("setMembersBtn", "disabled");
+          cy.getElementByDataTestsId('setMembersBtn').click({force: true}).then(() => {
+            cy.isElementContainsAttr("setMembersBtn", "disabled");
+            cy.get('.sdcCheckboxMember[data-tests-id="' + newVPNDataTestId + '"] input').eq(0).click({force: true}).then(() => {
+              cy.isElementNotContainsAttr("setMembersBtn", "disabled");
+              cy.getElementByDataTestsId('setMembersBtn').click({force: true}).then(() => {
+                cy.get('#VRF').should('have.length', 1);
+                cy.get('#VRF .icon-browse').click({force: true}).then(() => {
+                  cy.getElementByDataTestsId('context-menu-changeAssociations').click(); // click on change associations
+                  cy.getElementByDataTestsId(oldNETWORKDataTestId).get('input').should('be.checked'); // check if selected network is checked.
+                  cy.getElementByDataTestsId('setMembersBtn').click({force: true}).then(() => { // click 'NEXT' (set network)
+                    cy.getElementByDataTestsId(oldVPNDataTestId).get('input').should('be.checked'); // check if selected VPN is checked
+
+                    cy.get(".sdcCheckboxMember[data-tests-id='" + newVPNDataTestId + "'] input").check({force: true}).then(() => { // select other VPN
+                      cy.getElementByDataTestsId('cancelBtn').click().then(() => {
+                        cy.get(".sdcCheckboxMember[data-tests-id='" + newNETWORKDataTestId + "'] input").check({force: true}).then(() => { // select other VPN
+                          cy.getElementByDataTestsId('setMembersBtn').click();
+                          cy.get(".sdcCheckboxMember[data-tests-id='" + newVPNDataTestId + "'] input")
+                          cy.getElementByDataTestsId('setMembersBtn').click();
+
+                          checkSelectedRows(newNETWORKDataTestId, newVPNDataTestId);
+                        })
+                      });
+                    })
+                  });
+                });
+              })
+            });
+          });
+        })
+      });
+    });
+
+    it('delete vrf', () => {
+      cy.permissionVidMock();
+      const SUBSCRIBER_ID: string = "e433710f-9217-458d-a79d-1c7aff376d89";
+      const SERVICE_TYPE: string = "TYLER SILVIA";
+      const SERVICE_MODEL_ID: string = '4117a0b6-e234-467d-b5b9-fe2f68c8b0fc';
+      const SERVICE_INSTANCE_ID: string = "f8791436-8d55-4fde-b4d5-72dd2cf13cfb";
+
+      configExpectedPostAsyncInstantiationDelete();
+      configServiceTopologyWithVRF(SUBSCRIBER_ID, SERVICE_TYPE, SERVICE_INSTANCE_ID);
+      configServiceTreeWithMultipleChildren_serviceModel(SERVICE_MODEL_ID);
+
+      cy.readFile('../vid-automation/src/test/resources/VnfGroup/deleteServiceWith2VnfGroupsRequest_AndThreeGroupMembers.json').then((expectedResult) => {
+        cy.openIframe(`app/ui/#/servicePlanning/EDIT?serviceModelId=${SERVICE_MODEL_ID}&subscriberId=${SUBSCRIBER_ID}&serviceType=${SERVICE_TYPE}&serviceInstanceId=${SERVICE_INSTANCE_ID}`);
+        cy.serviceActionDelete();
+        cy.getElementByDataTestsId('delete-status-type-header').should('exist');
+        cy.serviceActionUndoDelete();
+        cy.getElementByDataTestsId('delete-status-type-header').should('not.exist');
+        cy.serviceActionDelete();
+        cy.isNodeDeleted(0);
+        cy.isNodeNotDeleted(1);
+        cy.isNodeNotDeleted(2);
+        cy.isElementNotContainsAttr("deployBtn", "disabled");
+        cy.getDrawingBoardDeployBtn().click();
+        /*cy.wait('@expectedPostAsyncInstantiationDelete').then(xhr => {
+          cy.readFile('../vid-automation/src/test/resources/asyncInstantiation/vidRequestDeleteMacroService.json').then((expectedResult) => {
+            cy.deepCompare(xhr.request.body, expectedResult);
+          });
+        });*/
+      });
+    });
+
+    it('vpn component info', () => {
+      cy.permissionVidMock();
+      const SUBSCRIBER_ID: string = "e433710f-9217-458d-a79d-1c7aff376d89";
+      const SERVICE_TYPE: string = "TYLER SILVIA";
+      const SERVICE_MODEL_ID: string = '4117a0b6-e234-467d-b5b9-fe2f68c8b0fc';
+      const SERVICE_INSTANCE_ID: string = "f8791436-8d55-4fde-b4d5-72dd2cf13cfb";
+
+      configServiceTopologyWithVRF(SUBSCRIBER_ID, SERVICE_TYPE, SERVICE_INSTANCE_ID);
+      configServiceTreeWithMultipleChildren_serviceModel(SERVICE_MODEL_ID);
+
+      cy.openIframe(`app/ui/#/servicePlanning/EDIT?serviceModelId=${SERVICE_MODEL_ID}&subscriberId=${SUBSCRIBER_ID}&serviceType=${SERVICE_TYPE}&serviceInstanceId=${SERVICE_INSTANCE_ID}`);
+      cy.getElementByDataTestsId("node-undefined-undefined").eq(1).click();
+      cy.getElementByDataTestsId("model-item-value-Route target id").should("have.text","mock-global-1");
+      cy.getElementByDataTestsId("model-item-value-Route target role").should("have.text","mock-role-x");
+      cy.getElementByDataTestsId("model-item-value-Customet VPN ID").should("have.text","VPN1260");
+      cy.getElementByDataTestsId("model-item-value-Region").should("have.text","USA,EMEA");
+    });
+
+  });
+
+  it('network component info', () => {
+    cy.permissionVidMock();
+    const SUBSCRIBER_ID: string = "e433710f-9217-458d-a79d-1c7aff376d89";
+    const SERVICE_TYPE: string = "TYLER SILVIA";
+    const SERVICE_MODEL_ID: string = '4117a0b6-e234-467d-b5b9-fe2f68c8b0fc';
+    const SERVICE_INSTANCE_ID: string = "f8791436-8d55-4fde-b4d5-72dd2cf13cfb";
+
+    configServiceTopologyWithVRF(SUBSCRIBER_ID, SERVICE_TYPE, SERVICE_INSTANCE_ID);
+    configServiceTreeWithMultipleChildren_serviceModel(SERVICE_MODEL_ID);
+
+    cy.openIframe(`app/ui/#/servicePlanning/EDIT?serviceModelId=${SERVICE_MODEL_ID}&subscriberId=${SUBSCRIBER_ID}&serviceType=${SERVICE_TYPE}&serviceInstanceId=${SERVICE_INSTANCE_ID}`);
+    cy.getElementByDataTestsId("node-undefined-undefined").eq(0).click();
+    cy.getElementByDataTestsId("model-item-value-Route target id").should("have.text","mock-global-1");
+    cy.getElementByDataTestsId("model-item-value-Route target role").should("have.text","mock-role-x");
+  });
+
+  function configServiceTopologyWithVRF(SUBSCRIBER_ID: string, SERVICE_TYPE: string, SERVICE_INSTANCE_ID: string) {
+    cy.readFile('../vid-automation/src/test/resources/aaiGetInstanceTopology/serviceWithVrfTopology.json').then((res) => {
+      jsonBuilderAndMock.basicJson(
+        res,
+        Cypress.config('baseUrl') + `/aai_get_service_instance_topology/${SUBSCRIBER_ID}/${SERVICE_TYPE}/${SERVICE_INSTANCE_ID}`,
+        200, 0,
+        "serviceWithVRF",
+      )
+    });
+  }
+
+  function configExpectedPostAsyncInstantiationDelete()
+  {
+    cy.server().route({
+      url: Cypress.config('baseUrl') + '/asyncInstantiation/bulk',
+      method: 'POST',
+      status: 200,
+      response: "[]",
+    }).as("expectedPostAsyncInstantiationDelete");
+  }
+
+  function configServiceTreeWithMultipleChildren_serviceModel(SERVICE_MODEL_ID: string) {
+    cy.readFile('../vid-automation/src/test/resources/vrf/vrfServiceRoleResponse.json').then((res) => {
+      jsonBuilderAndMock.basicJson(
+        res,
+        Cypress.config('baseUrl') + `/rest/models/services/${SERVICE_MODEL_ID}`,
+        200,
+        0,
+        "ServiceTreeWithMultipleChildren_serviceModel",
+      )
+    });
+  }
+
+  let roleOptions: string[] = [
+    '-- select an option --',
+    'Not assigned',
+    'oam_calea_net_0',
+    'oam_calea_net_1',
+    'oam_calea_net_2',
+    'oam_calea_net_3',
+  ];
+
+  function checkSelectedRows(networkFataTestId: string, vpnDataTestId: string) {
+    cy.get('#VRF .icon-browse').click({force: true}).then(() => {
+      cy.getElementByDataTestsId('context-menu-changeAssociations').click(); // click on change associations
+      cy.getElementByDataTestsId(networkFataTestId).get('input').should('be.checked'); // check if selected network is checked.
+      cy.getElementByDataTestsId('setMembersBtn').click({force: true}).then(() => { // click 'NEXT' (set network)
+        cy.getElementByDataTestsId(vpnDataTestId).get('input').should('be.checked'); // check if selected VPN is checked
+        cy.getElementByDataTestsId('setMembersBtn').click();
+        cy.getElementByDataTestsId('setMembersBtn').click();
+      });
+    });
+  }
+
+  function reduxWithVrf(serviceModelId: string) {
+    return {
+      "service": {
+        "subscribers": [
+          {
+            "id": "e433710f-9217-458d-a79d-1c7aff376d89",
+            "name": "SILVIA ROBBINS",
+            "isPermitted": true
+          },
+        ],
+        "serviceHierarchy": {
+          [serviceModelId]: {
+            "service": {
+              "uuid": serviceModelId,
+              "invariantUuid": "dfc2c44c-2429-44ca-ae26-1e6dc1f207fb",
+              "name": "infraVPN",
+              "version": "1.0",
+              "toscaModelURL": null,
+              "category": "Network Service",
+              "serviceType": "BONDING",
+              "serviceRole": "INFRASTRUCTURE-VPN",
+              "description": "ddd",
+              "serviceEcompNaming": "true",
+              "instantiationType": "A-La-Carte",
+              "inputs": {},
+              "vidNotions": {
+                "instantiationUI": "macroService",
+                "modelCategory": "other",
+                "viewEditUI": "legacy",
+                "instantiationType": "Macro"
+              }
+            },
+            "vnfs": {},
+            "networks": {},
+            "collectionResources": {},
+            "configurations": {},
+            "fabricConfigurations": {},
+            "serviceProxies": {
+              "misvpn_service_proxy 0": {
+                "uuid": "35186eb0-e6b6-4fa5-86bb-1501b342a7b1",
+                "invariantUuid": "73f89e21-b96c-473f-8884-8b93bcbd2f76",
+                "description": "A Proxy for Service MISVPN_SERVICE",
+                "name": "MISVPN_SERVICE Service Proxy",
+                "version": "3.0",
+                "customizationUuid": "4c2fb7e0-a0a5-4b32-b6ed-6a974e55d923",
+                "inputs": {},
+                "commands": {},
+                "properties": {
+                  "ecomp_generated_naming": "false"
+                },
+                "type": "Service Proxy",
+                "sourceModelUuid": "d5cc7d15-c842-450e-95ae-2a69e66dd23b",
+                "sourceModelInvariant": "c126ec86-59fe-48c0-9532-e39a9b3e5272",
+                "sourceModelName": "MISVPN_SERVICE"
+              }
+            },
+            "vfModules": {},
+            "volumeGroups": {},
+            "pnfs": {},
+            "vnfGroups": {},
+            "vrfs": {
+              "VRF Entry Configuration 0": {
+                "uuid": "9cac02be-2489-4374-888d-2863b4511a59",
+                "invariantUuid": "b67a289b-1688-496d-86e8-1583c828be0a",
+                "description": "VRF Entry configuration object",
+                "name": "VRF Entry Configuration",
+                "version": "30.0",
+                "customizationUuid": "dd024d73-9bd1-425d-9db5-476338d53433",
+                "inputs": {},
+                "commands": {},
+                "properties": {
+                  "ecomp_generated_naming": "false"
+                },
+                "type": "Configuration",
+                "modelCustomizationName": "VRF Entry Configuration 0",
+                "sourceNodes": [],
+                "collectorNodes": null,
+                "configurationByPolicy": false
+              }
+            }
+          }
+        },
+        "serviceInstance": {
+          [serviceModelId]: {
+            "action": "Create",
+            "isDirty": false,
+            "vrfs": {
+              "VRF Entry Configuration 0": {
+                "originalName": null,
+                "trackById": "VRF1_INSTANCE_ID",
+                "action": "None",
+                "instanceId": "VRF1_INSTANCE_ID",
+                "instanceType": "VRF1_INSTANCE_TYPE",
+                "orchStatus": null,
+                "provStatus": null,
+                "inMaint": false,
+                "modelInfo": {
+                  "modelInvariantId": "vnf-instance-model-invariant-id",
+                  "modelVersionId": "vnf-instance-model-version-id",
+                  "modelCustomizationId": "vnf-instance-model-customization-id",
+                  "modelType": "vrf"
+                },
+                "uuid": "vnf-instance-model-version-id",
+                "productFamilyId": null,
+                "lcpCloudRegionId": "olson3",
+                "cloudOwner": "att-nc",
+                "legacyRegion": null,
+                "tenantId": "229bcdc6eaeb4ca59d55221141d01f8e",
+                "lineOfBusiness": null,
+                "platformName": null,
+                "vfModules": {},
+                "networks": {
+                  "NETWORK1_INSTANCE_ID": {
+                    "originalName": null,
+                    "trackById": "NETWORK1_INSTANCE_ID",
+                    "instanceName": "NETWORK1_INSTANCE_NAME",
+                    "action": "None",
+                    "instanceId": "NETWORK1_INSTANCE_ID",
+                    "instanceType": "CONTRAIL30_BASIC",
+                    "orchStatus": "Assigned",
+                    "provStatus": "prov",
+                    "inMaint": false,
+                    "modelInfo": {
+                      "modelInvariantId": "network-instance-model-invariant-id",
+                      "modelVersionId": "network-instance-model-version-id",
+                      "modelCustomizationId": "network-instance-model-customization-id",
+                      "modelName": "modelName",
+                      "modelType": "network"
+                    },
+                    "uuid": "network-instance-model-version-id",
+                    "productFamilyId": null,
+                    "lcpCloudRegionId": null,
+                    "legacyRegion": null,
+                    "tenantId": null,
+                    "lineOfBusiness": null,
+                    "platformName": null
+                  }
+                },
+                "vpns": {
+                  "VPN1_INSTANCE_ID": {
+                    "originalName": null,
+                    "trackById": "VPN1_INSTANCE_ID",
+                    "instanceName": "VPN1_INSTANCE_NAME",
+                    "action": "None",
+                    "instanceId": "VPN1_INSTANCE_ID",
+                    "instanceType": "CONTRAIL30_BASIC",
+                    "orchStatus": "Assigned",
+                    "provStatus": "prov",
+                    "inMaint": false,
+                    "modelInfo": {
+                      "modelInvariantId": "network-instance-model-invariant-id",
+                      "modelVersionId": "network-instance-model-version-id",
+                      "modelCustomizationId": "network-instance-model-customization-id",
+                      "modelName": "modelName",
+                      "modelType": "vpnBinding"
+                    },
+                    "uuid": "network-instance-model-version-id",
+                    "productFamilyId": null,
+                    "lcpCloudRegionId": null,
+                    "legacyRegion": null,
+                    "tenantId": null,
+                    "lineOfBusiness": null,
+                    "platformName": null
+                  }
+                }
+              }
+            },
+            "vnfs": {},
+            "instanceParams": [
+              {}
+            ],
+            "validationCounter": 0,
+            "existingNames": {
+              "dfd": ""
+            },
+            "existingVNFCounterMap": {},
+            "existingVRFCounterMap": {},
+            "existingVnfGroupCounterMap": {},
+            "existingNetworksCounterMap": {},
+            "optionalGroupMembersMap": {},
+            "networks": {},
+            "vnfGroups": {},
+            "bulkSize": 1,
+            "instanceName": "dfd",
+            "globalSubscriberId": "e433710f-9217-458d-a79d-1c7aff376d89",
+            "subscriptionServiceType": "TYLER SILVIA",
+            "owningEntityId": "d61e6f2d-12fa-4cc2-91df-7c244011d6fc",
+            "lcpCloudRegionId": "lcpCloudRegionId",
+            "tenantName": "tenantName",
+            "projectName": "WATKINS",
+            "rollbackOnFailure": "true",
+            "aicZoneName": null,
+            "owningEntityName": "WayneHolland",
+            "testApi": "VNF_API",
+            "modelInfo": {
+              "modelInvariantId": "dfc2c44c-2429-44ca-ae26-1e6dc1f207fb",
+              "modelVersionId": "f028b2e2-7080-4b13-91b2-94944d4c42d8",
+              "modelName": "infraVPN",
+              "modelVersion": "1.0",
+              "uuid": serviceModelId,
+              "modelUniqueId": "f028b2e2-7080-4b13-91b2-94944d4c42d8"
+            },
+            "isALaCarte": true,
+            "name": "infraVPN",
+            "version": "1.0",
+            "description": "ddd",
+            "category": "Network Service",
+            "uuid": serviceModelId,
+            "invariantUuid": "dfc2c44c-2429-44ca-ae26-1e6dc1f207fb",
+            "serviceType": "BONDING",
+            "serviceRole": "INFRASTRUCTURE-VPN",
+            "vidNotions": {
+              "instantiationUI": "macroService",
+              "modelCategory": "other",
+              "viewEditUI": "legacy",
+              "instantiationType": "Macro"
+            },
+            "isEcompGeneratedNaming": true,
+            "isMultiStepDesign": false
+          }
+        },
+        "categoryParameters": {
+          "owningEntityList": [
+            {
+              "id": "d61e6f2d-12fa-4cc2-91df-7c244011d6fc",
+              "name": "WayneHolland"
+            }
+          ]
+        },
+      }
+    }
+  }
+
+  function initDrawingBoardWithColectionResource(serviceModelId: string) {
+    const redux = reduxWithVrf(serviceModelId);
+    cy.setReduxState(<any>redux);
+    cy.openIframe(`app/ui/#/servicePlanning?serviceModelId=${serviceModelId}`);
+    return redux;
+  }
+
+
+  function checkNetworkTableHeaders() {
+    cy.get('.header-title').contains('Name');
+    cy.get('.header-title').contains('Type');
+    cy.get('.header-title').contains('Role');
+    cy.get('.header-title').contains('Orch. Status');
+    cy.get('.header-title').contains('Physical name');
+    cy.get('.header-title').contains('Instance ID');
+    cy.get('.header-title').contains('Model UUID');
+    cy.get('.header-title').contains('Service name');
+    cy.get('.header-title').contains('Service UUID');
+    cy.get('.header-title').contains('Tenant');
+    cy.get('.header-title').contains('Region');
+
+    const headerTitles: string[] = [
+      'Network instance name',
+      'Instance version',
+      'Network model'
+    ];
+  }
+
+
+  function checkVPNTableHeaders() {
+    const headerTitles: string[] = [
+      'VPN instance name',
+      'Version',
+      'Instance ID',
+      'Platform',
+      'Region',
+      'Route target',
+      'Route target role',
+      'Customer VPN ID'
+    ];
+
+    headerTitles.forEach((title: string) => {
+      cy.get('.header-title').contains(title);
+    });
+  }
+
+
+  function checkNetworkPopupTitles() {
+    cy.get('.title').contains('Associate network');
+    cy.get('.title-header').contains('Select a network to associate to the VRF Entry');
+    cy.getElementByDataTestsId('setMembersBtn').contains('Next');
+    cy.getElementByDataTestsId('Orch_status').contains('Active');
+    cy.getElementByDataTestsId('Region').contains('lcpCloudRegionId');
+    cy.getElementByDataTestsId('Tenant').contains('tenantName');
+  }
+
+
+  function checkVPNPopupTitles() {
+    cy.get('.title').contains('Associate VPN');
+    cy.get('.title-header').contains('Select a VPN to associate to the VRF Entry');
+    cy.getElementByDataTestsId('setMembersBtn').contains('SET VPN');
+  }
+});
index 98d39ff..5b34ee5 100644 (file)
@@ -18,7 +18,7 @@ describe('Welcome page', function () {
 
     it(`verifying Contact Us link"`, function () {
     cy.visit('/welcome.htm');
-    cy.get('A[href="mailto:portal@lists.onap.org"]').contains('Contact Us');
+    cy.get('A[href="mailto:VID-Tier4@list.att.com"]').contains('Contact Us');
       });
 
   it(`verifying VID version"`, function () {
diff --git a/vid-webpack-master/cypress/pipeline/group1.txt b/vid-webpack-master/cypress/pipeline/group1.txt
new file mode 100644 (file)
index 0000000..1c7a8cb
--- /dev/null
@@ -0,0 +1,10 @@
+cypress/integration/iFrames/auditInfo.modal.e2e.ts
+cypress/integration/iFrames/browse-sdc.e2e.ts
+cypress/integration/iFrames/collectionResource.e2e.ts
+cypress/integration/iFrames/drawingBoard.e2e.ts
+cypress/integration/iFrames/instantiationStatus.e2e.ts
+cypress/integration/iFrames/network.popup.e2e.ts
+cypress/integration/iFrames/permission.e2e.ts
+cypress/integration/iFrames/pnf.e2e.ts
+cypress/integration/iFrames/resume.e2e.ts
+cypress/integration/iFrames/retry.e2e.ts
diff --git a/vid-webpack-master/cypress/pipeline/run_group1.sh b/vid-webpack-master/cypress/pipeline/run_group1.sh
new file mode 100644 (file)
index 0000000..d60b853
--- /dev/null
@@ -0,0 +1,13 @@
+#!/usr/bin/env bash
+
+. $HOME/.nvm/nvm.sh
+
+set -x
+
+CYPRESS_HOME_DIR=$1
+TESTS_GROUP_FILE=cypress/pipeline/group1.txt
+
+cd ${CYPRESS_HOME_DIR}
+
+cat ${TESTS_GROUP_FILE}
+npm run cypress:headless -- --spec=$(cat ${TESTS_GROUP_FILE} | tr '\n' ',')
diff --git a/vid-webpack-master/cypress/pipeline/run_group2.sh b/vid-webpack-master/cypress/pipeline/run_group2.sh
new file mode 100644 (file)
index 0000000..2f30fa7
--- /dev/null
@@ -0,0 +1,17 @@
+#!/usr/bin/env bash
+
+. $HOME/.nvm/nvm.sh
+
+set -x
+
+CYPRESS_HOME_DIR=$1
+TESTS_GROUP_FILE_1=cypress/pipeline/group1.txt
+TESTS_GROUP_FILE=cypress/pipeline/group2.generated.txt
+
+cd ${CYPRESS_HOME_DIR}
+
+# make group2 by "negating" group1.txt
+ls -1 cypress/integration/*/*.e2e.ts | comm -3 - ${TESTS_GROUP_FILE_1} > ${TESTS_GROUP_FILE}
+
+cat ${TESTS_GROUP_FILE}
+npm run cypress:headless -- --spec=$(cat ${TESTS_GROUP_FILE} | tr '\n' ',')
index 19f6881..84114aa 100644 (file)
@@ -61,7 +61,8 @@ function buildReduxStateWithServiceRespone(res: any, serviceId:string, isEcompGe
             "vnfs": {},
             "vnfGroups": {},
             "isEcompGeneratedNaming": isEcompGeneratedNaming,
-            "existingNames": {}
+            "existingNames": {},
+            "vidNotions": res.service.vidNotions
           }
         }
       }
index 44e8583..6d63e9f 100644 (file)
@@ -8,6 +8,7 @@ declare namespace Cypress {
     hasClass : typeof hasClass;
     getElementByDataTestsId : typeof getElementByDataTestsId;
     getTagElementContainsText : typeof  getTagElementContainsText;
+    isElementNotContainsAttr : typeof  isElementNotContainsAttr;
   }
 }
 
@@ -18,6 +19,13 @@ function isElementContainsAttr(id : string, attr: string) : void {
   cy.getElementByDataTestsId(id).should('have.attr', attr);
 }
 
+/*************************************************************************
+ isElementContainsAttr : check if element with id not contains some attribute
+ *************************************************************************/
+function isElementNotContainsAttr(id : string, attr: string) : void {
+  cy.getElementByDataTestsId(id).should('not.have.attr', attr);
+}
+
 /*********************************************************
  isElementDisabled : check if element with id is disabled
  *********************************************************/
@@ -54,3 +62,4 @@ Cypress.Commands.add('isElementEnabled', isElementEnabled);
 Cypress.Commands.add('hasClass', hasClass);
 Cypress.Commands.add('getElementByDataTestsId', getElementByDataTestsId);
 Cypress.Commands.add('getTagElementContainsText', getTagElementContainsText);
+Cypress.Commands.add('isElementNotContainsAttr', isElementNotContainsAttr);
index 1f8eea0..4df6216 100644 (file)
@@ -2,6 +2,7 @@ declare namespace Cypress {
   interface Chainable {
     selectDropdownOptionByText : typeof selectDropdownOptionByText;
     checkIsOptionSelected : typeof checkIsOptionSelected;
+    validateSelectOptions: typeof validateSelectOptions;
   }
 }
 
@@ -21,6 +22,18 @@ function checkIsOptionSelected(selectId : string, optionText : string) : void {
     .should('have.value', optionText)
 }
 
+
+/************************************************
+ validate the options of selected drop down
+ ************************************************/
+function validateSelectOptions(rolesCriteria: string, values: string[]){
+  values.forEach((value)=>{
+    selectDropdownOptionByText(rolesCriteria, value);
+    checkIsOptionSelected(rolesCriteria, value);
+  });
+}
+
 Cypress.Commands.add('selectDropdownOptionByText', selectDropdownOptionByText);
 Cypress.Commands.add('checkIsOptionSelected', checkIsOptionSelected);
+Cypress.Commands.add('validateSelectOptions', validateSelectOptions);
 
index a757a16..ae125c4 100644 (file)
@@ -36,6 +36,7 @@ import './steps/general/compareDeepObjects.step';
 import './steps/drawingBoard/drawingBoardModel.steps';
 import './steps/drawingBoard/drawingBoardTree.steps';
 import './steps/genericForm/genericFormAction.steps';
+import './steps/drawingBoard/drawingBoardHeader.steps';
 import './steps/drawingBoard/general.steps';
 import './steps/general/clickOutside.step';
 import './steps/drawingBoard/drawingBoardComponentInfo.steps';
index 6cb8f61..acb58c2 100644 (file)
@@ -5,6 +5,8 @@ declare namespace Cypress {
     initZones : typeof initZones;
     initTenants : typeof initTenants;
     initSearchVNFMemebers : typeof  initSearchVNFMemebers;
+    initActiveNetworks : typeof  initActiveNetworks;
+    initActiveVPNs : typeof  initActiveVPNs;
   }
 }
 
@@ -109,13 +111,36 @@ function initSearchVNFMemebers(response? : JSON) : void {
   });
 }
 
+function initActiveNetworks(response? : JSON) : void {
+  cy.readFile('../vid-automation/src/test/resources/viewEdit/aaiGetActiveNetworks.json').then((res) => {
+    cy.server()
+      .route({
+        method: 'GET',
+        status : 200,
+        url : Cypress.config('baseUrl') + "/aai_get_active_networks/**",
+        response : response ? response : res
+      }).as(('getActiveNetworks'));
+  });
+}
 
+function initActiveVPNs(response? : JSON) : void {
+  cy.readFile('/cypress/support/jsonBuilders/mocks/jsons/aaiActiveVPNs.json').then((res) => {
+    cy.server()
+      .route({
+        method: 'GET',
+        status : 200,
+        url : Cypress.config('baseUrl') + "/aai_get_vpn_list/**",
+        response : response ? response : res
+      }).as(('getVPNs'));
+  });
+}
 
 function initAAIMock(): void {
   initAaiGetFullSubscribers();
   initGetSubscribers();
   initAAIServices();
   initTenants();
+
 }
 
 
@@ -125,5 +150,7 @@ Cypress.Commands.add('initZones', initZones);
 Cypress.Commands.add('initTenants', initTenants);
 Cypress.Commands.add('initAaiGetFullSubscribers', initAaiGetFullSubscribers);
 Cypress.Commands.add('initSearchVNFMemebers', initSearchVNFMemebers);
+Cypress.Commands.add('initActiveNetworks', initActiveNetworks);
+Cypress.Commands.add('initActiveVPNs', initActiveVPNs);
 
 
diff --git a/vid-webpack-master/cypress/support/jsonBuilders/mocks/jsons/aaiActiveVPNs.json b/vid-webpack-master/cypress/support/jsonBuilders/mocks/jsons/aaiActiveVPNs.json
new file mode 100644 (file)
index 0000000..2e58776
--- /dev/null
@@ -0,0 +1,139 @@
+[
+  {
+    "instanceId": "120d39fb-3627-473d-913c-d228dd0f8e5b",
+    "instanceName": "LPPVPN",
+    "platformName": "AVPN",
+    "instanceType": "SERVICE-INFRASTRUCTURE",
+    "region": "USA,EMEA",
+    "customerId": "VPN1260",
+    "modelInfo" : {
+      "modelCustomizationId": null,
+      "modelInvariantId": null,
+      "modelVersionId": null
+    },
+    "routeTargets": [{
+      "globalRouteTarget": "globalRouteTarget_1",
+      "routeTargetRole": "routeTargetRole_1"
+    },
+      {
+        "globalRouteTarget": "globalRouteTarget_2",
+        "routeTargetRole": "routeTargetRole_2"
+      },
+      {
+        "globalRouteTarget": "globalRouteTarget_3",
+        "routeTargetRole": "routeTargetRole_3"
+      }]
+  },
+  {
+    "instanceId": "c70391f3-a6e3-4874-9834-cbe12d7bf8b6",
+    "instanceName": "LPPVPN",
+    "platformName": "AVPN",
+    "instanceType": "SERVICE-INFRASTRUCTURE",
+    "region": "USA,EMEA",
+    "customerId": "VPN1274",
+    "modelInfo" : {
+      "modelCustomizationId": null,
+      "modelInvariantId": null,
+      "modelVersionId": null
+    },
+    "routeTargets": null
+  },
+  {
+    "instanceId": "4776516b-7da2-446c-9ba7-47ca8c30c571",
+    "instanceName": "LPPVPN",
+    "platformName": "AVPN",
+    "instanceType": "SERVICE-INFRASTRUCTURE",
+    "region": "USA,EMEA",
+    "customerId": "VPN1275",
+    "modelInfo" : {
+      "modelCustomizationId": null,
+      "modelInvariantId": null,
+      "modelVersionId": null
+    },
+    "routeTargets": null
+  },
+  {
+    "instanceId": "46fcb25a-e7ba-4d96-99ba-3bb6eae6aba7",
+    "instanceName": "LPPVPN",
+    "platformName": "AVPN",
+    "instanceType": "SERVICE-INFRASTRUCTURE",
+    "region": "USA,EMEA",
+    "customerId": "VPN1271",
+    "modelInfo" : {
+      "modelCustomizationId": null,
+      "modelInvariantId": null,
+      "modelVersionId": null
+    },
+    "routeTargets": null
+  },
+  {
+    "instanceId": "ffefbe38-3087-418a-87ae-f6582a15be78",
+    "instanceName": "LPPVPN",
+    "platformName": "AVPN",
+    "instanceType": "SERVICE-INFRASTRUCTURE",
+    "region": "USA,EMEA",
+    "customerId": "VPN1272",
+    "modelInfo" : {
+      "modelCustomizationId": null,
+      "modelInvariantId": null,
+      "modelVersionId": null
+    },
+    "routeTargets": null
+  },
+  {
+    "instanceId": "961d05be-ee41-40a2-8653-f603fc495175",
+    "instanceName": "LPPVPN",
+    "platformName": "AVPN",
+    "type": "SERVICE-INFRASTRUCTURE",
+    "instanceType": "USA,EMEA",
+    "customerId": "VPN1273",
+    "modelInfo" : {
+      "modelCustomizationId": null,
+      "modelInvariantId": null,
+      "modelVersionId": null
+    },
+    "routeTargets": null
+  },
+  {
+    "instanceId": "14bcfc2f-bbee-4fd9-89a5-42eb5dbb08d5",
+    "instanceName": "LPPVPN",
+    "platformName": "AVPN",
+    "instanceType": "SERVICE-INFRASTRUCTURE",
+    "region": "USA,EMEA",
+    "customerId": "913443",
+    "modelInfo" : {
+      "modelCustomizationId": null,
+      "modelInvariantId": null,
+      "modelVersionId": null
+    },
+    "routeTargets": null
+  },
+  {
+    "instanceId": "89d4c968-158c-4722-a22c-c5c2ccc17fd5",
+    "instanceName": "LPPVPN",
+    "platformName": "AVPN",
+    "instanceType": "SERVICE-INFRASTRUCTURE",
+    "region": "USA,EMEA",
+    "customerId": "VPN1276",
+    "modelInfo" : {
+      "modelCustomizationId": null,
+      "modelInvariantId": null,
+      "modelVersionId": null
+    },
+    "routeTargets": null
+  },
+  {
+    "instanceId": "3e7834fb-a8e0-4243-a837-5352ccab4602",
+    "instanceName": "LPPVPN",
+    "platformName": "AVPN",
+    "instanceType": "SERVICE-INFRASTRUCTURE",
+    "region": "USA,EMEA",
+    "customerId": "VPN1259",
+    "modelInfo" : {
+      "modelCustomizationId": null,
+      "modelInvariantId": null,
+      "modelVersionId": null
+    },
+    "routeTargets": null
+  }
+]
index d8a7faa..a28d038 100644 (file)
@@ -2,6 +2,6 @@
   "tenantName": "USP-SIP-IC-24335-T-01",
   "tenantID": "092eb9e8e4b7412e8787dd091bc58e86",
   "cloudOwner": "irma-aic",
-  "cloudRegionID": "JANET25",
+  "cloudRegionID": "AAIAIC25",
   "is-permitted": true
 }
index 1528c75..b0aa2c0 100644 (file)
@@ -2,7 +2,7 @@
   "service": [
     {
       "service-id": "ebc3bc3d-62fd-4a3f-a037-f619df4ff034",
-      "service-description": "SCOTTIE",
+      "service-description": "ERICA",
       "resource-version": "1494001985150",
       "is-permitted": true
     },
@@ -32,7 +32,7 @@
     },
     {
       "service-id": "323d69d9-2efe-4r45-ay0a-89ea7ard4e6f",
-      "service-description": "vSCP",
+      "service-description": "vEsmeralda",
       "resource-version": "1494001903012",
       "is-permitted": true
     },
@@ -85,7 +85,7 @@
       "is-permitted": true
     },
     {
-      "service-id": "Cisneros",
+      "service-id": "vMuriel",
       "service-description": "vMuriel",
       "resource-version": "1490910058887",
       "is-permitted": true
     },
     {
       "service-id": "d7bb0a21-66f2-4e6d-87d9-9ef3ced63ae4",
-      "service-description": "Josefina",
+      "service-description": "JOSEFINA",
       "resource-version": "1494001941772",
       "is-permitted": true
     },
index f2ce087..199883c 100644 (file)
@@ -17,8 +17,8 @@
               "persona-model-version": null,
               "resource-version": "1501137356564",
               "orchestration-status": "Active",
-              "model-invariant-id": "709d1be4-9a3f-4a29-8c4d-a20465e808a3",
-              "model-version-id": "1de57bcf-365a-4ba7-8a51-7377b7144586"
+              "modelInvariantId": "709d1be4-9a3f-4a29-8c4d-a20465e808a3",
+              "modelVersionId": "1de57bcf-365a-4ba7-8a51-7377b7144586"
             },
             {
               "service-instance-id": "328e117c-8f27-4a59-beea-3b3c36e4652f",
@@ -27,8 +27,8 @@
               "persona-model-version": null,
               "resource-version": "1501142919029",
               "orchestration-status": "Active",
-              "model-invariant-id": "74b2fa72-e3b9-4942-8448-983a4b50891a",
-              "model-version-id": "8c16d416-f183-4f2e-8a05-48a7ee0738f7"
+              "modelInvariantId": "74b2fa72-e3b9-4942-8448-983a4b50891a",
+              "modelVersionId": "8c16d416-f183-4f2e-8a05-48a7ee0738f7"
             },
             {
               "service-instance-id": "66608fd9-a786-4f60-ae7b-c18d030c499b",
@@ -37,8 +37,8 @@
               "persona-model-version": null,
               "resource-version": "1503224667654",
               "orchestration-status": "Active",
-              "model-invariant-id": "1cc41b64-5c12-4d51-bac9-448e963bd81d",
-              "model-version-id": "91f79100-6450-4078-80d7-531427b4fe74"
+              "modelInvariantId": "1cc41b64-5c12-4d51-bac9-448e963bd81d",
+              "modelVersionId": "91f79100-6450-4078-80d7-531427b4fe74"
             },
             {
               "service-instance-id": "9d29dcf2-7742-4384-bca0-a38f6c296a79",
@@ -47,8 +47,8 @@
               "persona-model-version": null,
               "resource-version": "1500813552431",
               "orchestration-status": "Active",
-              "model-invariant-id": "709d1be4-9a3f-4a29-8c4d-a20465e808a3",
-              "model-version-id": "5b174112-cea4-4a36-b540-853b9d0548fc"
+              "modelInvariantId": "709d1be4-9a3f-4a29-8c4d-a20465e808a3",
+              "modelVersionId": "5b174112-cea4-4a36-b540-853b9d0548fc"
             },
             {
               "service-instance-id": "e10414d0-692b-4e8e-b56e-9fdc5ef24059",
@@ -57,8 +57,8 @@
               "persona-model-version": null,
               "resource-version": "1501144603052",
               "orchestration-status": "Active",
-              "model-invariant-id": "709d1be4-9a3f-4a29-8c4d-a20465e808a3",
-              "model-version-id": "1de57bcf-365a-4ba7-8a51-7377b7144586"
+              "modelInvariantId": "709d1be4-9a3f-4a29-8c4d-a20465e808a3",
+              "modelVersionId": "1de57bcf-365a-4ba7-8a51-7377b7144586"
             },
             {
               "service-instance-id": "25a5cc93-73df-4c9c-9cc5-e2df9a72f3b7",
@@ -67,8 +67,8 @@
               "persona-model-version": null,
               "resource-version": "1501412516301",
               "orchestration-status": "Active",
-              "model-invariant-id": "b594a6ec-94e0-4c95-826f-4c3d3af56339",
-              "model-version-id": "59f3ea84-313a-4670-b7c2-8997e5749864"
+              "modelInvariantId": "b594a6ec-94e0-4c95-826f-4c3d3af56339",
+              "modelVersionId": "59f3ea84-313a-4670-b7c2-8997e5749864"
             },
             {
               "service-instance-id": "9cfcd777-7f14-425c-80bf-a562fba03cfa",
@@ -77,8 +77,8 @@
               "persona-model-version": null,
               "resource-version": "1501421232100",
               "orchestration-status": "Active",
-              "model-invariant-id": "9f5ed6d5-c960-4903-9625-4ccb6ba9c63a",
-              "model-version-id": "f263c8f6-b52f-4b6c-9ed9-0c83ad098697"
+              "modelInvariantId": "9f5ed6d5-c960-4903-9625-4ccb6ba9c63a",
+              "modelVersionId": "f263c8f6-b52f-4b6c-9ed9-0c83ad098697"
             },
             {
               "service-instance-id": "4173d5da-df33-474e-a4ef-c93be61a1355",
@@ -87,8 +87,8 @@
               "persona-model-version": null,
               "resource-version": "1500966394803",
               "orchestration-status": "Active",
-              "model-invariant-id": "9f5ed6d5-c960-4903-9625-4ccb6ba9c63a",
-              "model-version-id": "25447dd8-4154-4146-b57b-bc3d82e1a670"
+              "modelInvariantId": "9f5ed6d5-c960-4903-9625-4ccb6ba9c63a",
+              "modelVersionId": "25447dd8-4154-4146-b57b-bc3d82e1a670"
             },
             {
               "service-instance-id": "1753f7eb-85db-498c-aa6a-c68a06fc77db",
@@ -97,8 +97,8 @@
               "persona-model-version": null,
               "resource-version": "1500991399818",
               "orchestration-status": "Active",
-              "model-invariant-id": "709d1be4-9a3f-4a29-8c4d-a20465e808a3",
-              "model-version-id": "1de57bcf-365a-4ba7-8a51-7377b7144586"
+              "modelInvariantId": "709d1be4-9a3f-4a29-8c4d-a20465e808a3",
+              "modelVersionId": "1de57bcf-365a-4ba7-8a51-7377b7144586"
             },
             {
               "service-instance-id": "5d5520c7-dcbc-4287-bed2-50ff57c41a6f",
               "persona-model-version": null,
               "resource-version": "1501400257544",
               "orchestration-status": "Active",
-              "model-invariant-id": "709d1be4-9a3f-4a29-8c4d-a20465e808a3",
-              "model-version-id": "240376de-870e-48df-915a-31f140eedd2c"
+              "modelInvariantId": "709d1be4-9a3f-4a29-8c4d-a20465e808a3",
+              "modelVersionId": "240376de-870e-48df-915a-31f140eedd2c"
             },
             {
               "service-instance-id": "1ab8ad18-1445-412a-81f2-671b936ab650",
               "persona-model-version": null,
               "resource-version": "1500562034054",
               "orchestration-status": "Active",
-              "model-invariant-id": "74b2fa72-e3b9-4942-8448-983a4b50891a",
-              "model-version-id": "8c16d416-f183-4f2e-8a05-48a7ee0738f7"
+              "modelInvariantId": "74b2fa72-e3b9-4942-8448-983a4b50891a",
+              "modelVersionId": "8c16d416-f183-4f2e-8a05-48a7ee0738f7"
             },
             {
               "service-instance-id": "a1427609-254d-4637-906f-8f0f6f6d4711",
               "persona-model-version": null,
               "resource-version": "1502111792531",
               "orchestration-status": "Active",
-              "model-invariant-id": "709d1be4-9a3f-4a29-8c4d-a20465e808a3",
-              "model-version-id": "c079d859-4d81-4add-a9c3-94551f96e2b0"
+              "modelInvariantId": "709d1be4-9a3f-4a29-8c4d-a20465e808a3",
+              "modelVersionId": "c079d859-4d81-4add-a9c3-94551f96e2b0"
             },
             {
               "service-instance-id": "f87c0dbe-2658-4971-8014-ad5da1f9df51",
               "persona-model-version": null,
               "resource-version": "1502006858511",
               "orchestration-status": "Active",
-              "model-invariant-id": "709d1be4-9a3f-4a29-8c4d-a20465e808a3",
-              "model-version-id": "240376de-870e-48df-915a-31f140eedd2c"
+              "modelInvariantId": "709d1be4-9a3f-4a29-8c4d-a20465e808a3",
+              "modelVersionId": "240376de-870e-48df-915a-31f140eedd2c"
             },
             {
               "service-instance-id": "7a8dea9f-5f67-4755-9344-ec3736240b9e",
               "persona-model-version": null,
               "resource-version": "1502111390681",
               "orchestration-status": "Active",
-              "model-invariant-id": "709d1be4-9a3f-4a29-8c4d-a20465e808a3",
-              "model-version-id": "c079d859-4d81-4add-a9c3-94551f96e2b0"
+              "modelInvariantId": "709d1be4-9a3f-4a29-8c4d-a20465e808a3",
+              "modelVersionId": "c079d859-4d81-4add-a9c3-94551f96e2b0"
             },
             {
               "service-instance-id": "8d0f4c13-a564-43ec-b756-c0017161dee2",
               "persona-model-version": null,
               "resource-version": "1500553831697",
               "orchestration-status": "Active",
-              "model-invariant-id": "709d1be4-9a3f-4a29-8c4d-a20465e808a3",
-              "model-version-id": "5b174112-cea4-4a36-b540-853b9d0548fc"
+              "modelInvariantId": "709d1be4-9a3f-4a29-8c4d-a20465e808a3",
+              "modelVersionId": "5b174112-cea4-4a36-b540-853b9d0548fc"
             },
             {
               "service-instance-id": "27535e2a-785e-47e8-a482-16f4d019033a",
               "persona-model-version": null,
               "resource-version": "1502109495302",
               "orchestration-status": "Active",
-              "model-invariant-id": "452538c0-ef1e-4d65-9939-697f6ed58934",
-              "model-version-id": "f430728a-4530-42be-a577-1206b9484cef"
+              "modelInvariantId": "452538c0-ef1e-4d65-9939-697f6ed58934",
+              "modelVersionId": "f430728a-4530-42be-a577-1206b9484cef"
             },
             {
               "service-instance-id": "9601d34e-d3f9-4108-932c-fc52312c260a",
               "persona-model-version": null,
               "resource-version": "1502028721334",
               "orchestration-status": "Active",
-              "model-invariant-id": "d2103eaa-8cc7-4422-ad67-1ce582af0097",
-              "model-version-id": "5801fed3-b6db-4969-abb4-d1171c4c3202"
+              "modelInvariantId": "d2103eaa-8cc7-4422-ad67-1ce582af0097",
+              "modelVersionId": "5801fed3-b6db-4969-abb4-d1171c4c3202"
             },
             {
               "service-instance-id": "e65ae593-afdd-4f31-8192-ba7606a026e4",
               "persona-model-version": null,
               "resource-version": "1502026481024",
               "orchestration-status": "Active",
-              "model-invariant-id": "d2103eaa-8cc7-4422-ad67-1ce582af0097",
-              "model-version-id": "5801fed3-b6db-4969-abb4-d1171c4c3202"
+              "modelInvariantId": "d2103eaa-8cc7-4422-ad67-1ce582af0097",
+              "modelVersionId": "5801fed3-b6db-4969-abb4-d1171c4c3202"
             },
             {
               "service-instance-id": "29e210af-9fa5-44ae-940c-acca84b1b287",
               "persona-model-version": null,
               "resource-version": "1502114664500",
               "orchestration-status": "Active",
-              "model-invariant-id": "709d1be4-9a3f-4a29-8c4d-a20465e808a3",
-              "model-version-id": "c079d859-4d81-4add-a9c3-94551f96e2b0"
+              "modelInvariantId": "709d1be4-9a3f-4a29-8c4d-a20465e808a3",
+              "modelVersionId": "c079d859-4d81-4add-a9c3-94551f96e2b0"
             },
             {
               "service-instance-id": "c1a81ab3-2bc6-4b6f-b04f-d358e67c1d01",
               "persona-model-version": null,
               "resource-version": "1500552497782",
               "orchestration-status": "Active",
-              "model-invariant-id": "709d1be4-9a3f-4a29-8c4d-a20465e808a3",
-              "model-version-id": "1de57bcf-365a-4ba7-8a51-7377b7144586"
+              "modelInvariantId": "709d1be4-9a3f-4a29-8c4d-a20465e808a3",
+              "modelVersionId": "1de57bcf-365a-4ba7-8a51-7377b7144586"
             },
             {
               "service-instance-id": "01834681-686a-4258-aff0-6eea448deddd",
               "persona-model-version": null,
               "resource-version": "1502019889568",
               "orchestration-status": "Active",
-              "model-invariant-id": "d2103eaa-8cc7-4422-ad67-1ce582af0097",
-              "model-version-id": "5801fed3-b6db-4969-abb4-d1171c4c3202"
+              "modelInvariantId": "d2103eaa-8cc7-4422-ad67-1ce582af0097",
+              "modelVersionId": "5801fed3-b6db-4969-abb4-d1171c4c3202"
             },
             {
               "service-instance-id": "266008e8-04f9-440a-90e9-d9299821ec08",
               "persona-model-version": null,
               "resource-version": "1494001993349",
               "orchestration-status": null,
-              "model-invariant-id": "",
-              "model-version-id": null
+              "modelInvariantId": "",
+              "modelVersionId": null
             },
             {
               "service-instance-id": "6c3a22e9-6b04-49d2-b1fa-1e49103971ca",
               "persona-model-version": null,
               "resource-version": "1494001986409",
               "orchestration-status": null,
-              "model-invariant-id": "",
-              "model-version-id": null
+              "modelInvariantId": "",
+              "modelVersionId": null
             },
             {
               "service-instance-id": "918085fc-29cf-41c2-acc8-15878c0d58b3",
               "persona-model-version": null,
               "resource-version": "1494001986411",
               "orchestration-status": null,
-              "model-invariant-id": "",
-              "model-version-id": null
+              "modelInvariantId": "",
+              "modelVersionId": null
             },
             {
               "service-instance-id": "1c464a9d-eff7-4d29-8e97-ed1e9e3c8458",
               "persona-model-version": null,
               "resource-version": "1494001953169",
               "orchestration-status": null,
-              "model-invariant-id": "",
-              "model-version-id": null
+              "modelInvariantId": "",
+              "modelVersionId": null
             },
             {
               "service-instance-id": "bb2f563f-6db7-46ec-b521-fc6ee07e4f3e",
               "persona-model-version": null,
               "resource-version": "1494002002228",
               "orchestration-status": null,
-              "model-invariant-id": "",
-              "model-version-id": null
+              "modelInvariantId": "",
+              "modelVersionId": null
             },
             {
               "service-instance-id": "4cf94a42-85b8-414f-8fb4-a43b1dac1d2f",
               "persona-model-version": null,
               "resource-version": "1494001834026",
               "orchestration-status": null,
-              "model-invariant-id": "",
-              "model-version-id": null
+              "modelInvariantId": "",
+              "modelVersionId": null
             },
             {
               "service-instance-id": "ed7c0d8e-de81-408f-b695-47b9dd6b2ca0",
               "persona-model-version": null,
               "resource-version": "1494001986403",
               "orchestration-status": null,
-              "model-invariant-id": "",
-              "model-version-id": null
+              "modelInvariantId": "",
+              "modelVersionId": null
             },
             {
               "service-instance-id": "8bf34b89-1648-4a41-a21f-9b752833bd4b",
               "persona-model-version": null,
               "resource-version": "1500377885652",
               "orchestration-status": "Active",
-              "model-invariant-id": "709d1be4-9a3f-4a29-8c4d-a20465e808a3",
-              "model-version-id": "1de57bcf-365a-4ba7-8a51-7377b7144586"
+              "modelInvariantId": "709d1be4-9a3f-4a29-8c4d-a20465e808a3",
+              "modelVersionId": "1de57bcf-365a-4ba7-8a51-7377b7144586"
             },
             {
               "service-instance-id": "082c606c-60d7-4d9a-87c7-1370de6e56ba",
               "persona-model-version": null,
               "resource-version": "1500375305701",
               "orchestration-status": "Active",
-              "model-invariant-id": "d2103eaa-8cc7-4422-ad67-1ce582af0097",
-              "model-version-id": "5801fed3-b6db-4969-abb4-d1171c4c3202"
+              "modelInvariantId": "d2103eaa-8cc7-4422-ad67-1ce582af0097",
+              "modelVersionId": "5801fed3-b6db-4969-abb4-d1171c4c3202"
             },
             {
               "service-instance-id": "c4707aae-9b16-49b4-8b52-cbeb8c4129ab",
               "persona-model-version": null,
               "resource-version": "1500376318829",
               "orchestration-status": "Active",
-              "model-invariant-id": "d27e42cf-087e-4d31-88ac-6c4b7585f800",
-              "model-version-id": "cad9f2eb-39f7-4692-90c2-8726bb594610"
+              "modelInvariantId": "d27e42cf-087e-4d31-88ac-6c4b7585f800",
+              "modelVersionId": "cad9f2eb-39f7-4692-90c2-8726bb594610"
             },
             {
               "service-instance-id": "86ab6048-9037-4367-ac01-f2e5881e8034",
               "persona-model-version": null,
               "resource-version": "1500369079277",
               "orchestration-status": "Active",
-              "model-invariant-id": "b1ed0d58-0700-4631-be18-d2f1e527d637",
-              "model-version-id": "849a6347-cca7-4ae6-b5c2-7d41e9f6d9b2"
+              "modelInvariantId": "b1ed0d58-0700-4631-be18-d2f1e527d637",
+              "modelVersionId": "849a6347-cca7-4ae6-b5c2-7d41e9f6d9b2"
             },
             {
               "service-instance-id": "a5e3b6ae-7b4c-4247-b975-1cd46c3b3e9a",
               "persona-model-version": null,
               "resource-version": "1506931067790",
               "orchestration-status": "Active",
-              "model-invariant-id": "709d1be4-9a3f-4a29-8c4d-a20465e808a3",
-              "model-version-id": "5b174112-cea4-4a36-b540-853b9d0548fc"
+              "modelInvariantId": "709d1be4-9a3f-4a29-8c4d-a20465e808a3",
+              "modelVersionId": "5b174112-cea4-4a36-b540-853b9d0548fc"
             },
             {
               "service-instance-id": "c9fb03a4-8c21-444a-84ee-a6f969698d9c",
               "persona-model-version": null,
               "resource-version": "1502021459612",
               "orchestration-status": "Active",
-              "model-invariant-id": "d2103eaa-8cc7-4422-ad67-1ce582af0097",
-              "model-version-id": "5801fed3-b6db-4969-abb4-d1171c4c3202"
+              "modelInvariantId": "d2103eaa-8cc7-4422-ad67-1ce582af0097",
+              "modelVersionId": "5801fed3-b6db-4969-abb4-d1171c4c3202"
             },
             {
               "service-instance-id": "4fd55324-bc4d-4acf-8f76-2e1eb01ae6a5",
               "persona-model-version": null,
               "resource-version": "1502019352627",
               "orchestration-status": "Active",
-              "model-invariant-id": "e3ee9d25-2c6b-4734-8a8c-b6e0dee11ca9",
-              "model-version-id": "159cc54d-a6be-4c3b-bea3-3214181ebb5d"
+              "modelInvariantId": "e3ee9d25-2c6b-4734-8a8c-b6e0dee11ca9",
+              "modelVersionId": "159cc54d-a6be-4c3b-bea3-3214181ebb5d"
             },
             {
               "service-instance-id": "bbccd5cf-f641-4082-8411-7ae123530d92",
               "persona-model-version": null,
               "resource-version": "1502087710872",
               "orchestration-status": "Active",
-              "model-invariant-id": "331a194d-9248-4533-88bc-62c812ccb5c1",
-              "model-version-id": "171b3887-e73e-479d-8ef8-2690bf74f2aa"
+              "modelInvariantId": "331a194d-9248-4533-88bc-62c812ccb5c1",
+              "modelVersionId": "171b3887-e73e-479d-8ef8-2690bf74f2aa"
             },
             {
               "service-instance-id": "4c263e04-260e-434a-8ac2-b0335a02f30b",
               "persona-model-version": null,
               "resource-version": "1494001791264",
               "orchestration-status": null,
-              "model-invariant-id": "",
-              "model-version-id": null
+              "modelInvariantId": "",
+              "modelVersionId": null
             },
             {
               "service-instance-id": "e4feb759-e4a9-4614-b2d2-985848ba3b9f",
               "persona-model-version": null,
               "resource-version": "1499869396079",
               "orchestration-status": "Active",
-              "model-invariant-id": "709d1be4-9a3f-4a29-8c4d-a20465e808a3",
-              "model-version-id": "240376de-870e-48df-915a-31f140eedd2c"
+              "modelInvariantId": "709d1be4-9a3f-4a29-8c4d-a20465e808a3",
+              "modelVersionId": "240376de-870e-48df-915a-31f140eedd2c"
             }
           ]
         },
               "persona-model-version": null,
               "resource-version": "1500370094198",
               "orchestration-status": "Active",
-              "model-invariant-id": "709d1be4-9a3f-4a29-8c4d-a20465e808a3",
-              "model-version-id": "240376de-870e-48df-915a-31f140eedd2c"
+              "modelInvariantId": "709d1be4-9a3f-4a29-8c4d-a20465e808a3",
+              "modelVersionId": "240376de-870e-48df-915a-31f140eedd2c"
             },
             {
               "service-instance-id": "7cb54908-f3fb-46b9-b547-d1e670ea95b2",
               "persona-model-version": null,
               "resource-version": "1499868690949",
               "orchestration-status": "Active",
-              "model-invariant-id": "709d1be4-9a3f-4a29-8c4d-a20465e808a3",
-              "model-version-id": "240376de-870e-48df-915a-31f140eedd2c"
+              "modelInvariantId": "709d1be4-9a3f-4a29-8c4d-a20465e808a3",
+              "modelVersionId": "240376de-870e-48df-915a-31f140eedd2c"
             },
             {
               "service-instance-id": "8e953267-4cd8-45ec-ae7f-bdeb018656c0",
               "persona-model-version": null,
               "resource-version": "1509355912484",
               "orchestration-status": "Active",
-              "model-invariant-id": "340f3957-ff0a-4503-866d-a34fd1b97450",
-              "model-version-id": "ee2d8783-8495-4fb1-9553-6cdbd2dd3a50"
+              "modelInvariantId": "340f3957-ff0a-4503-866d-a34fd1b97450",
+              "modelVersionId": "ee2d8783-8495-4fb1-9553-6cdbd2dd3a50"
             },
             {
               "service-instance-id": "e2ecfd33-b5d3-4a7b-85ba-1a709b26b66c",
               "persona-model-version": null,
               "resource-version": "1509356358573",
               "orchestration-status": "Active",
-              "model-invariant-id": "d5937aa1-37fb-4ed0-8c30-5144b89a64ae",
-              "model-version-id": "06ac9663-54cf-4c77-b926-6e8757cf6380"
+              "modelInvariantId": "d5937aa1-37fb-4ed0-8c30-5144b89a64ae",
+              "modelVersionId": "06ac9663-54cf-4c77-b926-6e8757cf6380"
             },
             {
               "service-instance-id": "7dfef88f-fec0-421f-90d4-91eea35a5813",
               "persona-model-version": null,
               "resource-version": "1508144995828",
               "orchestration-status": "Active",
-              "model-invariant-id": "d7b48529-6ae2-49f0-8633-b29e7cd4d4ce",
-              "model-version-id": "44671b15-83dd-4db7-a36e-dfada3eaa2f9"
+              "modelInvariantId": "d7b48529-6ae2-49f0-8633-b29e7cd4d4ce",
+              "modelVersionId": "44671b15-83dd-4db7-a36e-dfada3eaa2f9"
             },
             {
               "service-instance-id": "a46ca55c-e9bd-4e68-9c49-c98933240218",
               "persona-model-version": null,
               "resource-version": "1494001997513",
               "orchestration-status": null,
-              "model-invariant-id": "732263bd-0655-428d-a347-d65676d1a949",
-              "model-version-id": null
+              "modelInvariantId": "732263bd-0655-428d-a347-d65676d1a949",
+              "modelVersionId": null
             },
             {
               "service-instance-id": "e165f1af-a3cf-4323-8cd2-607acb55baa9",
               "persona-model-version": null,
               "resource-version": "1508071197869",
               "orchestration-status": "Active",
-              "model-invariant-id": "5b9c0f33-eec1-484a-bf77-736a6644d7a8",
-              "model-version-id": "b75e0d22-05ff-4448-9266-5f0d4e1dbbd6"
+              "modelInvariantId": "5b9c0f33-eec1-484a-bf77-736a6644d7a8",
+              "modelVersionId": "b75e0d22-05ff-4448-9266-5f0d4e1dbbd6"
             }
           ]
         },
             {
               "service-instance-id": "c187e9fe-40c3-4862-b73e-84ff056205f61234",
               "service-instance-name": "test_fabric_config",
-              "model-invariant-id": "12343f9e-3244-4d8f-a8e0-0e5d7a29eda9",
-              "model-version-id": "12344bb4-a416-4b4e-997e-0059973630b9",
+              "modelInvariantId": "12343f9e-3244-4d8f-a8e0-0e5d7a29eda9",
+              "modelVersionId": "12344bb4-a416-4b4e-997e-0059973630b9",
               "resource-version": "1500789244674",
               "orchestration-status": "Assigned"
             },
             {
               "service-instance-id": "c187e9fe-40c3-4862-b73e-84ff056205f69000",
               "service-instance-name": "test_fabric_config",
-              "model-invariant-id": "90003f9e-3244-4d8f-a8e0-0e5d7a29eda9",
-              "model-version-id": "90004bb4-a416-4b4e-997e-0059973630b9",
+              "modelInvariantId": "90003f9e-3244-4d8f-a8e0-0e5d7a29eda9",
+              "modelVersionId": "90004bb4-a416-4b4e-997e-0059973630b9",
               "resource-version": "1500789244674",
               "orchestration-status": "Active"
             },
             {
               "service-instance-id": "c187e9fe-40c3-4862-b73e-84ff056205f61000",
               "service-instance-name": "test_fabric_config",
-              "model-invariant-id": "10003f9e-3244-4d8f-a8e0-0e5d7a29eda9",
-              "model-version-id": "10004bb4-a416-4b4e-997e-0059973630b9",
+              "modelInvariantId": "10003f9e-3244-4d8f-a8e0-0e5d7a29eda9",
+              "modelVersionId": "10004bb4-a416-4b4e-997e-0059973630b9",
               "resource-version": "1500789244674",
               "orchestration-status": "pendingdeLete"
             },
             {
               "service-instance-id": "c187e9fe-40c3-4862-b73e-84ff056205f65678",
               "service-instance-name": "test_fabric_config",
-              "model-invariant-id": "12343f9e-3244-4d8f-a8e0-0e5d7a29eda9",
-              "model-version-id": "12344bb4-a416-4b4e-997e-0059973630b9",
+              "modelInvariantId": "12343f9e-3244-4d8f-a8e0-0e5d7a29eda9",
+              "modelVersionId": "12344bb4-a416-4b4e-997e-0059973630b9",
               "resource-version": "1500789244674",
               "orchestration-status": "Created"
             },
               "persona-model-version":null,
               "resource-version":"1502391806301",
               "orchestration-status":"Active",
-              "model-invariant-id":"64dbe153-48c6-4d6f-95e7-12ff4cce9871",
-              "model-version-id":"4e8b6372-dea3-4028-81d0-16eba59c94fd"
+              "modelInvariantId":"64dbe153-48c6-4d6f-95e7-12ff4cce9871",
+              "modelVersionId":"4e8b6372-dea3-4028-81d0-16eba59c94fd"
             }
           ]
         },
index 38c7606..69d6f7d 100644 (file)
               "configuration-name": "dummy_instance_1",
               "configuration-type": "fabric-configuration-type-1",
               "configuration-sub-type": "fabric-configuration-sub-type-1",
-              "model-invariant-id": "model-invariant-id-1",
-              "model-version-id": "model-version-id-1",
+              "modelInvariantId": "model-invariant-id-1",
+              "modelVersionId": "model-version-id-1",
               "orchestration-status": "Assigned",
               "operational-status": "",
               "configuration-selflink": "",
-              "model-customization-id": "model-customization-id-1",
+              "modelCustomizationId": "model-customization-id-1",
               "resource-version": "1504038855716"
             },
             "extra-properties": {
               "configuration-name": "dummy_instance_2",
               "configuration-type": "fabric-configuration-type-2",
               "configuration-sub-type": "fabric-configuration-sub-type-2",
-              "model-invariant-id": "model-invariant-id-2",
-              "model-version-id": "model-version-id-2",
+              "modelInvariantId": "model-invariant-id-2",
+              "modelVersionId": "model-version-id-2",
               "orchestration-status": "Assigned",
               "operational-status": "",
               "configuration-selflink": "",
-              "model-customization-id": "model-customization-id-2",
+              "modelCustomizationId": "model-customization-id-2",
               "resource-version": "1504038855712"
             },
             "extra-properties": {
index d6107b8..82b81ef 100644 (file)
       "inventory-response-items": {
         "inventory-response-item": [
           {
-            "model-name": "VID-PCRF-05-15-17",
+            "model-name": "VID-RODERICK-05-15-17",
             "generic-vnf": {
               "vnf-id": "c015cc0f-0f37-4488-aabf-53795fd93cd3",
               "vnf-name": "fsd",
-              "vnf-type": "1707vidnf/VID-PCRF-05-15-17 0",
+              "vnf-type": "1707vidnf/VID-RODERICK-05-15-17 0",
               "service-id": "36b4733a-53f4-4cc8-8ff0-9172e5fc4b8e",
               "prov-status": "PREPROV",
               "orchestration-status": "Created",
               "in-maint": false,
               "is-closed-loop-disabled": false,
               "resource-version": "1502299355826",
-              "model-invariant-id": "4160458e-f648-4b30-a176-43881ffffe9e",
-              "model-version-id": "d6557200-ecf2-4641-8094-5393ae3aae60",
-              "model-customization-id": "91415b44-753d-494c-926a-456a9172bbb9",
+              "modelInvariantId": "4160458e-f648-4b30-a176-43881ffffe9e",
+              "modelVersionId": "d6557200-ecf2-4641-8094-5393ae3aae60",
+              "modelCustomizationId": "91415b44-753d-494c-926a-456a9172bbb9",
               "nf-type": "null",
               "nf-function": "null",
               "nf-role": "null",
@@ -52,9 +52,9 @@
                     "orchestration-status": "pendingactivation",
                     "is-base-vf-module": true,
                     "resource-version": "1504770843380",
-                    "model-invariant-id": "a6f9e51a-2b35-416a-ae15-15e58d61f36d",
-                    "model-version-id": "a27f5cfc-7f12-4f99-af08-0af9c3885c87",
-                    "model-customization-id": "f8c040f1-7e51-4a11-aca8-acf256cfd861",
+                    "modelInvariantId": "a6f9e51a-2b35-416a-ae15-15e58d61f36d",
+                    "modelVersionId": "a27f5cfc-7f12-4f99-af08-0af9c3885c87",
+                    "modelCustomizationId": "f8c040f1-7e51-4a11-aca8-acf256cfd861",
                     "module-index": 0
                   },
                   "extra-properties": {}
index 0ad741c..3dba16b 100644 (file)
               "configuration-name": "dummy_instance_1",
               "configuration-type": "fabric-configuration-type-1",
               "configuration-sub-type": "fabric-configuration-sub-type-1",
-              "model-invariant-id": "model-invariant-id-1",
-              "model-version-id": "model-version-id-1",
+              "modelInvariantId": "model-invariant-id-1",
+              "modelVersionId": "model-version-id-1",
               "orchestration-status": "Active",
               "operational-status": "",
               "configuration-selflink": "",
-              "model-customization-id": "model-customization-id-1",
+              "modelCustomizationId": "model-customization-id-1",
               "resource-version": "1504038855716"
             },
             "extra-properties": {
               "configuration-name": "dummy_instance_2",
               "configuration-type": "fabric-configuration-type-2",
               "configuration-sub-type": "fabric-configuration-sub-type-2",
-              "model-invariant-id": "model-invariant-id-2",
-              "model-version-id": "model-version-id-2",
+              "modelInvariantId": "model-invariant-id-2",
+              "modelVersionId": "model-version-id-2",
               "orchestration-status": "Assigned",
               "operational-status": "",
               "configuration-selflink": "",
-              "model-customization-id": "model-customization-id-2",
+              "modelCustomizationId": "model-customization-id-2",
               "resource-version": "1504038855712"
             },
             "extra-properties": {
index b224e32..b51e862 100644 (file)
               "configuration-name": "dummy_instance_1",
               "configuration-type": "fabric-configuration-type-1",
               "configuration-sub-type": "fabric-configuration-sub-type-1",
-              "model-invariant-id": "model-invariant-id-1",
-              "model-version-id": "model-version-id-1",
+              "modelInvariantId": "model-invariant-id-1",
+              "modelVersionId": "model-version-id-1",
               "orchestration-status": "Active",
               "operational-status": "",
               "configuration-selflink": "",
-              "model-customization-id": "model-customization-id-1",
+              "modelCustomizationId": "model-customization-id-1",
               "resource-version": "1504038855716"
             },
             "extra-properties": {
               "configuration-name": "dummy_instance_2",
               "configuration-type": "fabric-configuration-type-2",
               "configuration-sub-type": "fabric-configuration-sub-type-2",
-              "model-invariant-id": "model-invariant-id-2",
-              "model-version-id": "model-version-id-2",
+              "modelInvariantId": "model-invariant-id-2",
+              "modelVersionId": "model-version-id-2",
               "orchestration-status": "Assigned",
               "operational-status": "",
               "configuration-selflink": "",
-              "model-customization-id": "model-customization-id-2",
+              "modelCustomizationId": "model-customization-id-2",
               "resource-version": "1504038855712"
             },
             "extra-properties": {
index ddd673b..ec512c3 100644 (file)
               "configuration-name": "dummy_instance_1",
               "configuration-type": "fabric-configuration-type-1",
               "configuration-sub-type": "fabric-configuration-sub-type-1",
-              "model-invariant-id": "model-invariant-id-1",
-              "model-version-id": "model-version-id-1",
+              "modelInvariantId": "model-invariant-id-1",
+              "modelVersionId": "model-version-id-1",
               "orchestration-status": "Assigned",
               "operational-status": "",
               "configuration-selflink": "",
-              "model-customization-id": "model-customization-id-1",
+              "modelCustomizationId": "model-customization-id-1",
               "resource-version": "1504038855716"
             },
             "extra-properties": {
               "configuration-name": "dummy_instance_2",
               "configuration-type": "fabric-configuration-type-2",
               "configuration-sub-type": "fabric-configuration-sub-type-2",
-              "model-invariant-id": "model-invariant-id-2",
-              "model-version-id": "model-version-id-2",
+              "modelInvariantId": "model-invariant-id-2",
+              "modelVersionId": "model-version-id-2",
               "orchestration-status": "Active",
               "operational-status": "",
               "configuration-selflink": "",
-              "model-customization-id": "model-customization-id-2",
+              "modelCustomizationId": "model-customization-id-2",
               "resource-version": "1504038855712"
             },
             "extra-properties": {
index 0a0de81..6dfa614 100644 (file)
       "inventory-response-items": {
         "inventory-response-item": [
           {
-            "model-name": "VID-PCRF-05-15-17",
+            "model-name": "VID-RODERICK-05-15-17",
             "generic-vnf": {
               "vnf-id": "c015cc0f-0f37-4488-aabf-53795fd93cd3",
               "vnf-name": "fsd",
-              "vnf-type": "1707vidnf/VID-PCRF-05-15-17 0",
+              "vnf-type": "1707vidnf/VID-RODERICK-05-15-17 0",
               "service-id": "36b4733a-53f4-4cc8-8ff0-9172e5fc4b8e",
               "prov-status": "PREPROV",
               "orchestration-status": "Created",
               "in-maint": false,
               "is-closed-loop-disabled": false,
               "resource-version": "1502299355826",
-              "model-invariant-id": "af94e0b5-454c-4fd8-b62b-ef27632afd22",
-              "model-version-id": "3d2657a7-6816-4662-93f0-26e315611336",
-              "model-customization-id": "d279139c-4b85-48ff-8ac4-9b83a6fc6da7",
+              "modelInvariantId": "af94e0b5-454c-4fd8-b62b-ef27632afd22",
+              "modelVersionId": "3d2657a7-6816-4662-93f0-26e315611336",
+              "modelCustomizationId": "d279139c-4b85-48ff-8ac4-9b83a6fc6da7",
               "nf-type": "null",
               "nf-function": "null",
               "nf-role": "null",
@@ -52,9 +52,9 @@
                     "orchestration-status": "pendingactivation",
                     "is-base-vf-module": true,
                     "resource-version": "1504770843380",
-                    "model-invariant-id": "df35ebf5-880b-4052-b4dc-5fbf38a423ca",
-                    "model-version-id": "bbf63386-42ec-4cae-a6a1-a8dade4e09e1",
-                    "model-customization-id": "56f23f2a-de4b-4f72-a51c-439970350885",
+                    "modelInvariantId": "df35ebf5-880b-4052-b4dc-5fbf38a423ca",
+                    "modelVersionId": "bbf63386-42ec-4cae-a6a1-a8dade4e09e1",
+                    "modelCustomizationId": "56f23f2a-de4b-4f72-a51c-439970350885",
                     "module-index": 0
                   },
                   "extra-properties": {}
@@ -67,9 +67,9 @@
                     "orchestration-status": "assiGned",
                     "is-base-vf-module": false,
                     "resource-version": "1504694876599",
-                    "model-invariant-id": "eb5a1e09-7f46-4f1c-ab7a-b017bad95261",
-                    "model-version-id": "fa1c8558-006c-4fb6-82f2-4fc0646d6b06",
-                    "model-customization-id": "222bd8f2-341d-4419-aa0e-98398fa34050",
+                    "modelInvariantId": "eb5a1e09-7f46-4f1c-ab7a-b017bad95261",
+                    "modelVersionId": "fa1c8558-006c-4fb6-82f2-4fc0646d6b06",
+                    "modelCustomizationId": "222bd8f2-341d-4419-aa0e-98398fa34050",
                     "module-index": 1
                   },
                   "extra-properties": {}
@@ -82,9 +82,9 @@
                     "orchestration-status": "Created",
                     "is-base-vf-module": false,
                     "resource-version": "1504694876599",
-                    "model-invariant-id": "eb5a1e09-7f46-4f1c-ab7a-b017bad95265",
-                    "model-version-id": "fa1c8558-006c-4fb6-82f2-4fc0646d6b05",
-                    "model-customization-id": "222bd8f2-341d-4419-aa0e-98398fa34055",
+                    "modelInvariantId": "eb5a1e09-7f46-4f1c-ab7a-b017bad95265",
+                    "modelVersionId": "fa1c8558-006c-4fb6-82f2-4fc0646d6b05",
+                    "modelCustomizationId": "222bd8f2-341d-4419-aa0e-98398fa34055",
                     "module-index": 1
                   },
                   "extra-properties": {}
@@ -97,9 +97,9 @@
                     "orchestration-status": "pending-delete",
                     "is-base-vf-module": false,
                     "resource-version": "1505044772033",
-                    "model-invariant-id": "eb5a1e09-7f46-4f1c-ab7a-b017bad95261",
-                    "model-version-id": "fa1c8558-006c-4fb6-82f2-4fc0646d6b06",
-                    "model-customization-id": "222bd8f2-341d-4419-aa0e-98398fa34050",
+                    "modelInvariantId": "eb5a1e09-7f46-4f1c-ab7a-b017bad95261",
+                    "modelVersionId": "fa1c8558-006c-4fb6-82f2-4fc0646d6b06",
+                    "modelCustomizationId": "222bd8f2-341d-4419-aa0e-98398fa34050",
                     "module-index": 0
                   },
                   "extra-properties": {}
             }
           },
           {
-            "model-name": "VID-PCRF-05-15-17",
+            "model-name": "VID-RODERICK-05-15-17",
             "generic-vnf": {
               "vnf-id": "0846287b-65bf-45a6-88f6-6a1af4149fac",
               "vnf-name": "kjkjk",
-              "vnf-type": "1707vidnf/VID-PCRF-05-15-17 0",
+              "vnf-type": "1707vidnf/VID-RODERICK-05-15-17 0",
               "service-id": "a9a77d5a-123e-4ca2-9eb9-0b015d2ee0fb",
               "prov-status": "PREPROV",
               "orchestration-status": "Created",
               "in-maint": false,
               "is-closed-loop-disabled": false,
               "resource-version": "1504008534044",
-              "model-invariant-id": "af94e0b5-454c-4fd8-b62b-ef27632afd22",
-              "model-version-id": "3d2657a7-6816-4662-93f0-26e315611336",
-              "model-customization-id": "d279139c-4b85-48ff-8ac4-9b83a6fc6da7",
+              "modelInvariantId": "af94e0b5-454c-4fd8-b62b-ef27632afd22",
+              "modelVersionId": "3d2657a7-6816-4662-93f0-26e315611336",
+              "modelCustomizationId": "d279139c-4b85-48ff-8ac4-9b83a6fc6da7",
               "nf-type": "",
               "nf-function": "",
               "nf-role": "",
                     "orchestration-status": "PendingCreate",
                     "is-base-vf-module": false,
                     "resource-version": "1504694397912",
-                    "model-invariant-id": "eb5a1e09-7f46-4f1c-ab7a-b017bad95261",
-                    "model-version-id": "fa1c8558-006c-4fb6-82f2-4fc0646d6b06",
-                    "model-customization-id": "222bd8f2-341d-4419-aa0e-98398fa34050",
+                    "modelInvariantId": "eb5a1e09-7f46-4f1c-ab7a-b017bad95261",
+                    "modelVersionId": "fa1c8558-006c-4fb6-82f2-4fc0646d6b06",
+                    "modelCustomizationId": "222bd8f2-341d-4419-aa0e-98398fa34050",
                     "module-index": 0
                   },
                   "extra-properties": {}
             }
           },
           {
-            "model-name": "VID-PCRF-05-15-17",
+            "model-name": "VID-RODERICK-05-15-17",
             "generic-vnf": {
               "vnf-id": "9908b762-136f-4b1f-8eb4-ef670ef58bb4",
               "vnf-name": "uiui",
-              "vnf-type": "1707vidnf/VID-PCRF-05-15-17 0",
+              "vnf-type": "1707vidnf/VID-RODERICK-05-15-17 0",
               "service-id": "vRosemarie",
               "prov-status": "PREPROV",
               "orchestration-status": "Created",
               "in-maint": false,
               "is-closed-loop-disabled": false,
               "resource-version": "1504516218649",
-              "model-invariant-id": "af94e0b5-454c-4fd8-b62b-ef27632afd22",
-              "model-version-id": "3d2657a7-6816-4662-93f0-26e315611336",
-              "model-customization-id": "d279139c-4b85-48ff-8ac4-9b83a6fc6da7",
+              "modelInvariantId": "af94e0b5-454c-4fd8-b62b-ef27632afd22",
+              "modelVersionId": "3d2657a7-6816-4662-93f0-26e315611336",
+              "modelCustomizationId": "d279139c-4b85-48ff-8ac4-9b83a6fc6da7",
               "nf-type": "",
               "nf-function": "",
               "nf-role": "",
             "extra-properties": {}
           },
           {
-            "model-name": "VID-PCRF-05-15-17",
+            "model-name": "VID-RODERICK-05-15-17",
             "generic-vnf": {
               "vnf-id": "543931f5-e50e-45a2-a69f-ab727e4c7f2f",
               "vnf-name": "sdfsdfdsf",
-              "vnf-type": "1707vidnf/VID-PCRF-05-15-17 0",
+              "vnf-type": "1707vidnf/VID-RODERICK-05-15-17 0",
               "service-id": "LRSI-OSPF",
               "prov-status": "PREPROV",
               "orchestration-status": "Created",
               "in-maint": false,
               "is-closed-loop-disabled": false,
               "resource-version": "1506509961062",
-              "model-invariant-id": "af94e0b5-454c-4fd8-b62b-ef27632afd22",
-              "model-version-id": "3d2657a7-6816-4662-93f0-26e315611336",
-              "model-customization-id": "d279139c-4b85-48ff-8ac4-9b83a6fc6da7",
+              "modelInvariantId": "af94e0b5-454c-4fd8-b62b-ef27632afd22",
+              "modelVersionId": "3d2657a7-6816-4662-93f0-26e315611336",
+              "modelCustomizationId": "d279139c-4b85-48ff-8ac4-9b83a6fc6da7",
               "nf-type": "",
               "nf-function": "",
               "nf-role": "",
             "extra-properties": {}
           },
           {
-            "model-name": "VID-PCRF-05-15-17",
+            "model-name": "VID-RODERICK-05-15-17",
             "generic-vnf": {
               "vnf-id": "25e84884-22d5-44c9-8212-cb459f63e0ba",
               "vnf-name": "sdada",
-              "vnf-type": "1707vidnf/VID-PCRF-05-15-17 0",
-              "service-id": "Cisneros",
+              "vnf-type": "1707vidnf/VID-RODERICK-05-15-17 0",
+              "service-id": "vMuriel",
               "prov-status": "PREPROV",
               "orchestration-status": "Created",
               "in-maint": false,
               "is-closed-loop-disabled": false,
               "resource-version": "1506509479125",
-              "model-invariant-id": "af94e0b5-454c-4fd8-b62b-ef27632afd22",
-              "model-version-id": "3d2657a7-6816-4662-93f0-26e315611336",
-              "model-customization-id": "d279139c-4b85-48ff-8ac4-9b83a6fc6da7",
+              "modelInvariantId": "af94e0b5-454c-4fd8-b62b-ef27632afd22",
+              "modelVersionId": "3d2657a7-6816-4662-93f0-26e315611336",
+              "modelCustomizationId": "d279139c-4b85-48ff-8ac4-9b83a6fc6da7",
               "nf-type": "",
               "nf-function": "",
               "nf-role": "",
             "extra-properties": {}
           },
           {
-            "model-name": "VID-PCRF-05-15-17",
+            "model-name": "VID-RODERICK-05-15-17",
             "generic-vnf": {
               "vnf-id": "013fb0ba-977b-496c-9faa-7f8e5f083eec",
               "vnf-name": "gvb",
-              "vnf-type": "1707vidnf/VID-PCRF-05-15-17 0",
+              "vnf-type": "1707vidnf/VID-RODERICK-05-15-17 0",
               "service-id": "a9a77d5a-123e-4ca2-9eb9-0b015d2ee0fb",
               "prov-status": "PREPROV",
               "orchestration-status": "Created",
               "in-maint": false,
               "is-closed-loop-disabled": false,
               "resource-version": "1508048678134",
-              "model-invariant-id": "af94e0b5-454c-4fd8-b62b-ef27632afd22",
-              "model-version-id": "3d2657a7-6816-4662-93f0-26e315611336",
-              "model-customization-id": "d279139c-4b85-48ff-8ac4-9b83a6fc6da7",
+              "modelInvariantId": "af94e0b5-454c-4fd8-b62b-ef27632afd22",
+              "modelVersionId": "3d2657a7-6816-4662-93f0-26e315611336",
+              "modelCustomizationId": "d279139c-4b85-48ff-8ac4-9b83a6fc6da7",
               "nf-type": "",
               "nf-function": "",
               "nf-role": "",
             "extra-properties": {}
           },
           {
-            "model-name": "VID-PCRF-05-15-17",
+            "model-name": "VID-RODERICK-05-15-17",
             "generic-vnf": {
               "vnf-id": "06914296-cb46-4b62-9453-329a706a6cbb",
               "vnf-name": "lkllll",
-              "vnf-type": "1707vidnf/VID-PCRF-05-15-17 0",
+              "vnf-type": "1707vidnf/VID-RODERICK-05-15-17 0",
               "service-id": "a9a77d5a-123e-4ca2-9eb9-0b015d2ee0fb",
               "prov-status": "PREPROV",
               "orchestration-status": "Created",
               "in-maint": false,
               "is-closed-loop-disabled": false,
               "resource-version": "1504507099829",
-              "model-invariant-id": "af94e0b5-454c-4fd8-b62b-ef27632afd22",
-              "model-version-id": "3d2657a7-6816-4662-93f0-26e315611336",
-              "model-customization-id": "d279139c-4b85-48ff-8ac4-9b83a6fc6da7",
+              "modelInvariantId": "af94e0b5-454c-4fd8-b62b-ef27632afd22",
+              "modelVersionId": "3d2657a7-6816-4662-93f0-26e315611336",
+              "modelCustomizationId": "d279139c-4b85-48ff-8ac4-9b83a6fc6da7",
               "nf-type": "",
               "nf-function": "",
               "nf-role": "",
             "extra-properties": {}
           },
           {
-            "model-name": "VID-PCRF-05-15-17",
+            "model-name": "VID-RODERICK-05-15-17",
             "generic-vnf": {
               "vnf-id": "c55da606-cf38-42c7-bc3c-be8e23b19299",
               "vnf-name": "ss",
-              "vnf-type": "1707vidnf/VID-PCRF-05-15-17 0",
+              "vnf-type": "1707vidnf/VID-RODERICK-05-15-17 0",
               "service-id": "a9a77d5a-123e-4ca2-9eb9-0b015d2ee0fb",
               "prov-status": "PREPROV",
               "orchestration-status": "Created",
               "in-maint": false,
               "is-closed-loop-disabled": false,
               "resource-version": "1508048827342",
-              "model-invariant-id": "af94e0b5-454c-4fd8-b62b-ef27632afd22",
-              "model-version-id": "3d2657a7-6816-4662-93f0-26e315611336",
-              "model-customization-id": "d279139c-4b85-48ff-8ac4-9b83a6fc6da7",
+              "modelInvariantId": "af94e0b5-454c-4fd8-b62b-ef27632afd22",
+              "modelVersionId": "3d2657a7-6816-4662-93f0-26e315611336",
+              "modelCustomizationId": "d279139c-4b85-48ff-8ac4-9b83a6fc6da7",
               "nf-type": "",
               "nf-function": "",
               "nf-role": "",
index f98a8d4..cf830c4 100644 (file)
@@ -2,13 +2,13 @@
   "service": {
     "uuid": "56784bb4-a416-4b4e-997e-0059973630b9",
     "invariantUuid": "56783f9e-3244-4d8f-a8e0-0e5d7a29eda9",
-    "name": "ADIOD vMX vPE_BV Service 488",
+    "name": "PASQUALE vMX vPE_BV Service 488",
     "version": "1.0",
     "toscaModelURL": null,
     "category": "Network L1-3",
     "serviceType": "",
     "serviceRole": "",
-    "description": "ADIOD vMX vPE based on Juniper 17.2 release. Updated with updated VF for v8.0 of VLM",
+    "description": "PASQUALE vMX vPE based on Juniper 17.2 release. Updated with updated VF for v8.0 of VLM",
     "serviceEcompNaming": "true",
     "instantiationType": "ClientConfig",
     "inputs": {
@@ -21,7 +21,7 @@
   "networks": {
 
   },
-  "collectionResource": {},
+  "collectionResources": {},
   "configurations": {
 
   },
index 317c046..eba4798 100644 (file)
     "aicZoneName": "NFTJSSSS-NFT1",
     "tenantId": "092eb9e8e4b7412e8787dd091bc58e86",
     "tenantName": "USP-SIP-IC-24335-T-01",
-    "regionId": "JANET25",
+    "regionId": "AAIAIC25",
     "regionName": null,
     "serviceType": "TYLER SILVIA",
     "subscriberName": "e433710f-9217-458d-a79d-1c7aff376d89",
index 744013a..1053a65 100644 (file)
     "aicZoneName": "NFTJSSSS-NFT1",
     "tenantId": "092eb9e8e4b7412e8787dd091bc58e86",
     "tenantName": "USP-SIP-IC-24335-T-01",
-    "regionId": "JANET25",
+    "regionId": "AAIAIC25",
     "regionName": null,
     "serviceType": "TYLER SILVIA",
     "subscriberName": "e433710f-9217-458d-a79d-1c7aff376d89",
index 46989e1..304035b 100644 (file)
@@ -2,13 +2,13 @@
   "service": {
     "uuid": "12344bb4-a416-4b4e-997e-0059973630b9",
     "invariantUuid": "12343f9e-3244-4d8f-a8e0-0e5d7a29eda9",
-    "name": "ADIOD vMX vPE_BV Service 488",
+    "name": "PASQUALE vMX vPE_BV Service 488",
     "version": "1.0",
     "toscaModelURL": null,
     "category": "Network L1-3",
     "serviceType": "",
     "serviceRole": "",
-    "description": "ADIOD vMX vPE based on Juniper 17.2 release. Updated with updated VF for v8.0 of VLM",
+    "description": "PASQUALE vMX vPE based on Juniper 17.2 release. Updated with updated VF for v8.0 of VLM",
     "serviceEcompNaming": "true",
     "instantiationType": "ClientConfig",
     "inputs": {
@@ -21,7 +21,7 @@
   "networks": {
 
   },
-  "collectionResource": {},
+  "collectionResources": {},
   "configurations": {
 
   },
index 3f85c89..eec1413 100644 (file)
@@ -25,7 +25,7 @@
   "vnfs": {},
   "instanceParams": [
     {
-      "2017488_adiodvpe0_ASN": "AV_vPE"
+      "2017488_pasqualevpe0_ASN": "AV_vPE"
     }
   ],
   "validationCounter": 0,
@@ -41,7 +41,7 @@
   "subscriptionServiceType": "TYLER SILVIA",
   "owningEntityId": "d61e6f2d-12fa-4cc2-91df-7c244011d6fc",
   "productFamilyId": "17cc1042-527b-11e6-beb8-9e71128cae77",
-  "lcpCloudRegionId": "JANET25",
+  "lcpCloudRegionId": "AAIAIC25",
   "tenantId": "092eb9e8e4b7412e8787dd091bc58e86",
   "aicZoneId": "JAG1",
   "projectName": "WATKINS",
index cd411fe..3bc105d 100644 (file)
     "description": "",
     "serviceEcompNaming": "false",
     "instantiationType": "A-La-Carte",
+    "vidNotions": {
+      "instantiationUI": "legacy",
+      "modelCategory": "other",
+      "viewEditUI": "legacy",
+      "instantiationType": "ALaCarte"
+    },
     "inputs": {
-      "2017488_adiodvpe0_ASN": {
+      "2017488_pasqualevpe0_ASN": {
         "type": "string",
         "description": "AV/PE",
         "entry_schema": null,
@@ -46,7 +52,7 @@
       "modelCustomizationName": "ExtVL 0"
     }
   },
-  "collectionResource": {},
+  "collectionResources": {},
   "configurations": {},
   "fabricConfigurations": {},
   "serviceProxies": {},
index 84c9c24..a962fc2 100644 (file)
           "description": "",
           "serviceEcompNaming": "true",
           "instantiationType": "Macro",
+          "vidNotions": {
+            "instantiationType": "Macro"
+          },
           "inputs": {
-            "2017488_adiodvpe0_ASN": {
+            "2017488_pasqualevpe0_ASN": {
               "type": "string",
               "description": "AV/PE",
               "entry_schema": null,
           }
         },
         "vnfs": {
-          "2017-388_ADIOD-vPE 1": {
+          "2017-388_PASQUALE-vPE 1": {
             "uuid": "0903e1c0-8e03-4936-b5c2-260653b96413",
             "invariantUuid": "00beb8f9-6d39-452f-816d-c709b9cbb87d",
-            "description": "Name ADIOD vPE Description The provider edge function for the ADIOD service supported by the Junipers VMX product Category Router Vendor Juniper Vendor Release Code 17.2 Owners Mary Fragale. Updated 9-25 to use v8.0 of the Juniper Valid 2 VLM",
-            "name": "2017-388_ADIOD-vPE",
+            "description": "Name PASQUALE vPE Description The provider edge function for the PASQUALE service supported by the Junipers VMX product Category Router Vendor Juniper Vendor Release Code 17.2 Owners Mary Fragale. Updated 9-25 to use v8.0 of the Juniper Valid 2 VLM",
+            "name": "2017-388_PASQUALE-vPE",
             "version": "1.0",
             "customizationUuid": "280dec31-f16d-488b-9668-4aae55d6648a",
             "inputs": {},
             "commands": {},
             "properties": {
               "vmxvre_retype": "RE-VMX",
-              "vnf_config_template_version": "get_input:2017488_adiodvpe0_vnf_config_template_version",
+              "vnf_config_template_version": "get_input:2017488_pasqualevpe0_vnf_config_template_version",
               "sriov44_net_id": "48d399b3-11ee-48a8-94d2-f0ea94d6be8d",
               "int_ctl_net_id": "2f323477-6936-4d01-ac53-d849430281d9",
               "vmxvpfe_sriov41_0_port_mac": "00:11:22:EF:AC:DF",
@@ -86,7 +89,7 @@
               "vmxvpfe_sriov43_0_port_unknownmulticastallow": "true",
               "vmxvre_int_ctl_ip_0": "10.0.0.10",
               "ecomp_generated_naming": "true",
-              "AIC_CLLI": "get_input:2017488_adiodvpe0_AIC_CLLI",
+              "AIC_CLLI": "get_input:2017488_pasqualevpe0_AIC_CLLI",
               "vnf_name": "mtnj309me6vre",
               "vmxvpfe_sriov41_0_port_unknownunicastallow": "true",
               "vmxvre_volume_type_1": "HITACHI",
               "vmxvre_volume_type_0": "HITACHI",
               "vmxvpfe_volume_type_0": "HITACHI",
               "vmxvpfe_sriov43_0_port_broadcastallow": "true",
-              "bandwidth_units": "get_input:adiodvpe0_bandwidth_units",
+              "bandwidth_units": "get_input:pasqualevpe0_bandwidth_units",
               "vnf_id": "123",
               "vmxvre_oam_prefix": "24",
               "availability_zone_0": "mtpocfo-kvm-az01",
-              "ASN": "get_input:2017488_adiodvpe0_ASN",
+              "ASN": "get_input:2017488_pasqualevpe0_ASN",
               "vmxvre_chassis_i2cid": "161",
               "vmxvpfe_name_0": "vPFEXI",
-              "bandwidth": "get_input:adiodvpe0_bandwidth",
+              "bandwidth": "get_input:pasqualevpe0_bandwidth",
               "availability_zone_max_count": "1",
               "vmxvre_volume_size_0": "45.0",
               "vmxvre_volume_size_1": "50.0",
               "vmxvre_ore_present": "0",
               "vmxvre_volume_name_0": "vREXI_FBVolume",
               "vmxvre_type": "0",
-              "vnf_instance_name": "get_input:2017488_adiodvpe0_vnf_instance_name",
+              "vnf_instance_name": "get_input:2017488_pasqualevpe0_vnf_instance_name",
               "vmxvpfe_sriov41_0_port_unknownmulticastallow": "true",
               "oam_net_id": "b95eeb1d-d55d-4827-abb4-8ebb94941429",
               "vmx_int_ctl_len": "24",
               "vmxvpfe_flavor_name": "ns.c20r16d25.v5"
             },
             "type": "VF",
-            "modelCustomizationName": "2017-388_ADIOD-vPE 1",
+            "modelCustomizationName": "2017-388_PASQUALE-vPE 1",
             "vfModules": {},
             "volumeGroups": {},
             "vfcInstanceGroups": {}
           },
-          "2017-388_ADIOD-vPE 0": {
+          "2017-388_PASQUALE-vPE 0": {
             "uuid": "afacccf6-397d-45d6-b5ae-94c39734b168",
             "invariantUuid": "72e465fe-71b1-4e7b-b5ed-9496118ff7a8",
-            "description": "Name ADIOD vPE Description The provider edge function for the ADIOD service supported by the Junipers VMX product Category Router Vendor Juniper Vendor Release Code 17.2 Owners Mary Fragale. Updated 9-25 to use v8.0 of the Juniper Valid 2 VLM",
-            "name": "2017-388_ADIOD-vPE",
+            "description": "Name PASQUALE vPE Description The provider edge function for the PASQUALE service supported by the Junipers VMX product Category Router Vendor Juniper Vendor Release Code 17.2 Owners Mary Fragale. Updated 9-25 to use v8.0 of the Juniper Valid 2 VLM",
+            "name": "2017-388_PASQUALE-vPE",
             "version": "4.0",
             "customizationUuid": "b3c76f73-eeb5-4fb6-9d31-72a889f1811c",
             "inputs": {},
             "commands": {},
             "properties": {
               "vmxvre_retype": "RE-VMX",
-              "vnf_config_template_version": "get_input:2017488_adiodvpe0_vnf_config_template_version",
+              "vnf_config_template_version": "get_input:2017488_pasqualevpe0_vnf_config_template_version",
               "sriov44_net_id": "48d399b3-11ee-48a8-94d2-f0ea94d6be8d",
               "int_ctl_net_id": "2f323477-6936-4d01-ac53-d849430281d9",
               "vmxvpfe_sriov41_0_port_mac": "00:11:22:EF:AC:DF",
               "vmxvpfe_sriov43_0_port_unknownmulticastallow": "true",
               "vmxvre_int_ctl_ip_0": "10.0.0.10",
               "ecomp_generated_naming": "true",
-              "AIC_CLLI": "get_input:2017488_adiodvpe0_AIC_CLLI",
+              "AIC_CLLI": "get_input:2017488_pasqualevpe0_AIC_CLLI",
               "vnf_name": "mtnj309me6vre",
               "vmxvpfe_sriov41_0_port_unknownunicastallow": "true",
               "vmxvre_volume_type_1": "HITACHI",
               "vmxvre_volume_type_0": "HITACHI",
               "vmxvpfe_volume_type_0": "HITACHI",
               "vmxvpfe_sriov43_0_port_broadcastallow": "true",
-              "bandwidth_units": "get_input:adiodvpe0_bandwidth_units",
+              "bandwidth_units": "get_input:pasqualevpe0_bandwidth_units",
               "vnf_id": "123",
               "vmxvre_oam_prefix": "24",
               "availability_zone_0": "mtpocfo-kvm-az01",
-              "ASN": "get_input:2017488_adiodvpe0_ASN",
+              "ASN": "get_input:2017488_pasqualevpe0_ASN",
               "vmxvre_chassis_i2cid": "161",
               "vmxvpfe_name_0": "vPFEXI",
-              "bandwidth": "get_input:adiodvpe0_bandwidth",
+              "bandwidth": "get_input:pasqualevpe0_bandwidth",
               "availability_zone_max_count": "1",
               "vmxvre_volume_size_0": "45.0",
               "vmxvre_volume_size_1": "50.0",
               "vmxvre_ore_present": "0",
               "vmxvre_volume_name_0": "vREXI_FBVolume",
               "vmxvre_type": "0",
-              "vnf_instance_name": "get_input:2017488_adiodvpe0_vnf_instance_name",
+              "vnf_instance_name": "get_input:2017488_pasqualevpe0_vnf_instance_name",
               "vmxvpfe_sriov41_0_port_unknownmulticastallow": "true",
               "oam_net_id": "b95eeb1d-d55d-4827-abb4-8ebb94941429",
               "vmx_int_ctl_len": "24",
               "vmxvpfe_flavor_name": "ns.c20r16d25.v5"
             },
             "type": "VF",
-            "modelCustomizationName": "2017-388_ADIOD-vPE 0",
+            "modelCustomizationName": "2017-388_PASQUALE-vPE 0",
             "vfModules": {},
             "volumeGroups": {},
             "vfcInstanceGroups": {}
           },
-          "2017-488_ADIOD-vPE 0": {
+          "2017-488_PASQUALE-vPE 0": {
             "uuid": "69e09f68-8b63-4cc9-b9ff-860960b5db09",
             "invariantUuid": "72e465fe-71b1-4e7b-b5ed-9496118ff7a8",
-            "description": "Name ADIOD vPE Description The provider edge function for the ADIOD service supported by the Junipers VMX product Category Router Vendor Juniper Vendor Release Code 17.2 Owners Mary Fragale. Updated 9-25 to use v8.0 of the Juniper Valid 2 VLM",
-            "name": "2017-488_ADIOD-vPE",
+            "description": "Name PASQUALE vPE Description The provider edge function for the PASQUALE service supported by the Junipers VMX product Category Router Vendor Juniper Vendor Release Code 17.2 Owners Mary Fragale. Updated 9-25 to use v8.0 of the Juniper Valid 2 VLM",
+            "name": "2017-488_PASQUALE-vPE",
             "version": "5.0",
             "customizationUuid": "1da7b585-5e61-4993-b95e-8e6606c81e45",
             "inputs": {},
             "commands": {},
             "properties": {
               "vmxvre_retype": "RE-VMX",
-              "vnf_config_template_version": "get_input:2017488_adiodvpe0_vnf_config_template_version",
+              "vnf_config_template_version": "get_input:2017488_pasqualevpe0_vnf_config_template_version",
               "sriov44_net_id": "48d399b3-11ee-48a8-94d2-f0ea94d6be8d",
               "int_ctl_net_id": "2f323477-6936-4d01-ac53-d849430281d9",
               "vmxvpfe_sriov41_0_port_mac": "00:11:22:EF:AC:DF",
               "vmxvpfe_sriov43_0_port_unknownmulticastallow": "true",
               "vmxvre_int_ctl_ip_0": "10.0.0.10",
               "ecomp_generated_naming": "true",
-              "AIC_CLLI": "get_input:2017488_adiodvpe0_AIC_CLLI",
+              "AIC_CLLI": "get_input:2017488_pasqualevpe0_AIC_CLLI",
               "vnf_name": "mtnj309me6vre",
               "vmxvpfe_sriov41_0_port_unknownunicastallow": "true",
               "vmxvre_volume_type_1": "HITACHI",
               "vmxvre_volume_type_0": "HITACHI",
               "vmxvpfe_volume_type_0": "HITACHI",
               "vmxvpfe_sriov43_0_port_broadcastallow": "true",
-              "bandwidth_units": "get_input:adiodvpe0_bandwidth_units",
+              "bandwidth_units": "get_input:pasqualevpe0_bandwidth_units",
               "vnf_id": "123",
               "vmxvre_oam_prefix": "24",
               "availability_zone_0": "mtpocfo-kvm-az01",
-              "ASN": "get_input:2017488_adiodvpe0_ASN",
+              "ASN": "get_input:2017488_pasqualevpe0_ASN",
               "vmxvre_chassis_i2cid": "161",
               "vmxvpfe_name_0": "vPFEXI",
-              "bandwidth": "get_input:adiodvpe0_bandwidth",
+              "bandwidth": "get_input:pasqualevpe0_bandwidth",
               "availability_zone_max_count": "1",
               "vmxvre_volume_size_0": "45.0",
               "vmxvre_volume_size_1": "50.0",
               "vmxvre_ore_present": "0",
               "vmxvre_volume_name_0": "vREXI_FBVolume",
               "vmxvre_type": "0",
-              "vnf_instance_name": "get_input:2017488_adiodvpe0_vnf_instance_name",
+              "vnf_instance_name": "get_input:2017488_pasqualevpe0_vnf_instance_name",
               "vmxvpfe_sriov41_0_port_unknownmulticastallow": "true",
               "oam_net_id": "b95eeb1d-d55d-4827-abb4-8ebb94941429",
               "vmx_int_ctl_len": "24",
               "vmxvpfe_flavor_name": "ns.c20r16d25.v5"
             },
             "type": "VF",
-            "modelCustomizationName": "2017-488_ADIOD-vPE 0",
+            "modelCustomizationName": "2017-488_PASQUALE-vPE 0",
             "vfModules": {
-              "2017488_adiodvpe0..2017488AdiodVpe..ADIOD_vRE_BV..module-1": {
+              "2017488_pasqualevpe0..2017488PasqualeVpe..PASQUALE_vRE_BV..module-1": {
                 "uuid": "25284168-24bb-4698-8cb4-3f509146eca5",
                 "invariantUuid": "7253ff5c-97f0-4b8b-937c-77aeb4d79aa1",
                 "customizationUuid": "f7e7c365-60cf-49a9-9ebf-a1aa11b9d401",
                 "description": null,
-                "name": "2017488AdiodVpe..ADIOD_vRE_BV..module-1",
+                "name": "2017488PasqualeVpe..PASQUALE_vRE_BV..module-1",
                 "version": "6",
-                "modelCustomizationName": "2017488AdiodVpe..ADIOD_vRE_BV..module-1",
+                "modelCustomizationName": "2017488PasqualeVpe..PASQUALE_vRE_BV..module-1",
                 "properties": {
                   "minCountInstances": 0,
                   "maxCountInstances": null,
                   "initialCount": 0,
-                  "vfModuleLabel": "ADIOD_vRE_BV"
+                  "vfModuleLabel": "PASQUALE_vRE_BV"
                 },
                 "inputs": {
-                  "adiodvpe0_bandwidth": {
+                  "pasqualevpe0_bandwidth": {
                     "type": "string",
                     "description": "Requested VPE bandwidth",
                     "entry_schema": null,
                     "inputProperties": {
                       "sourceType": "HEAT",
-                      "vfModuleLabel": "ADIOD_vRE_BV",
+                      "vfModuleLabel": "PASQUALE_vRE_BV",
                       "paramName": "bandwidth"
                     },
                     "constraints": null,
                     "required": true,
                     "default": "10"
                   },
-                  "2017488_adiodvpe0_vnf_instance_name": {
+                  "2017488_pasqualevpe0_vnf_instance_name": {
                     "type": "string",
                     "description": "The hostname assigned to the vpe.",
                     "entry_schema": null,
                     "inputProperties": {
                       "sourceType": "HEAT",
-                      "vfModuleLabel": "ADIOD_vRE_BV",
+                      "vfModuleLabel": "PASQUALE_vRE_BV",
                       "paramName": "vnf_instance_name"
                     },
                     "constraints": null,
                     "required": true,
                     "default": "mtnj309me6"
                   },
-                  "2017488_adiodvpe0_vnf_config_template_version": {
+                  "2017488_pasqualevpe0_vnf_config_template_version": {
                     "type": "string",
                     "description": "VPE Software Version",
                     "entry_schema": null,
                     "inputProperties": {
                       "sourceType": "HEAT",
-                      "vfModuleLabel": "ADIOD_vRE_BV",
+                      "vfModuleLabel": "PASQUALE_vRE_BV",
                       "paramName": "vnf_config_template_version"
                     },
                     "constraints": null,
                     "required": true,
                     "default": "17.2"
                   },
-                  "2017488_adiodvpe0_AIC_CLLI": {
+                  "2017488_pasqualevpe0_AIC_CLLI": {
                     "type": "string",
                     "description": "AIC Site CLLI",
                     "entry_schema": null,
                     "inputProperties": {
                       "sourceType": "HEAT",
-                      "vfModuleLabel": "ADIOD_vRE_BV",
+                      "vfModuleLabel": "PASQUALE_vRE_BV",
                       "paramName": "AIC_CLLI"
                     },
                     "constraints": null,
                     "required": true,
                     "default": "ATLMY8GA"
                   },
-                  "adiodvpe0_bandwidth_units": {
+                  "pasqualevpe0_bandwidth_units": {
                     "type": "string",
                     "description": "Units of bandwidth",
                     "entry_schema": null,
                     "inputProperties": {
                       "sourceType": "HEAT",
-                      "vfModuleLabel": "ADIOD_vRE_BV",
+                      "vfModuleLabel": "PASQUALE_vRE_BV",
                       "paramName": "bandwidth_units"
                     },
                     "constraints": null,
                 },
                 "volumeGroupAllowed": true
               },
-              "2017488_adiodvpe0..2017488AdiodVpe..ADIOD_base_vPE_BV..module-0": {
+              "2017488_pasqualevpe0..2017488PasqualeVpe..PASQUALE_base_vPE_BV..module-0": {
                 "uuid": "f8360508-3f17-4414-a2ed-6bc71161e8db",
                 "invariantUuid": "b34833bb-6aa9-4ad6-a831-70b06367a091",
                 "customizationUuid": "a55961b2-2065-4ab0-a5b7-2fcee1c227e3",
                 "description": null,
-                "name": "2017488AdiodVpe..ADIOD_base_vPE_BV..module-0",
+                "name": "2017488PasqualeVpe..PASQUALE_base_vPE_BV..module-0",
                 "version": "5",
-                "modelCustomizationName": "2017488AdiodVpe..ADIOD_base_vPE_BV..module-0",
+                "modelCustomizationName": "2017488PasqualeVpe..PASQUALE_base_vPE_BV..module-0",
                 "properties": {
                   "minCountInstances": 1,
                   "maxCountInstances": 1,
                   "initialCount": 1,
-                  "vfModuleLabel": "ADIOD_base_vPE_BV"
+                  "vfModuleLabel": "PASQUALE_base_vPE_BV"
                 },
                 "inputs": {},
                 "volumeGroupAllowed": false
               },
-              "2017488_adiodvpe0..2017488AdiodVpe..ADIOD_vPFE_BV..module-2": {
+              "2017488_pasqualevpe0..2017488PasqualeVpe..PASQUALE_vPFE_BV..module-2": {
                 "uuid": "0a0dd9d4-31d3-4c3a-ae89-a02f383e6a9a",
                 "invariantUuid": "eff8cc59-53a1-4101-aed7-8cf24ecf8339",
                 "customizationUuid": "3cd946bb-50e0-40d8-96d3-c9023520b557",
                 "description": null,
-                "name": "2017488AdiodVpe..ADIOD_vPFE_BV..module-2",
+                "name": "2017488PasqualeVpe..PASQUALE_vPFE_BV..module-2",
                 "version": "6",
-                "modelCustomizationName": "2017488AdiodVpe..ADIOD_vPFE_BV..module-2",
+                "modelCustomizationName": "2017488PasqualeVpe..PASQUALE_vPFE_BV..module-2",
                 "properties": {
                   "minCountInstances": 0,
                   "maxCountInstances": null,
                   "initialCount": 0,
-                  "vfModuleLabel": "ADIOD_vPFE_BV"
+                  "vfModuleLabel": "PASQUALE_vPFE_BV"
                 },
                 "inputs": {},
                 "volumeGroupAllowed": true
               }
             },
             "volumeGroups": {
-              "2017488_adiodvpe0..2017488AdiodVpe..ADIOD_vRE_BV..module-1": {
+              "2017488_pasqualevpe0..2017488PasqualeVpe..PASQUALE_vRE_BV..module-1": {
                 "uuid": "25284168-24bb-4698-8cb4-3f509146eca5",
                 "invariantUuid": "7253ff5c-97f0-4b8b-937c-77aeb4d79aa1",
                 "customizationUuid": "f7e7c365-60cf-49a9-9ebf-a1aa11b9d401",
                 "description": null,
-                "name": "2017488AdiodVpe..ADIOD_vRE_BV..module-1",
+                "name": "2017488PasqualeVpe..PASQUALE_vRE_BV..module-1",
                 "version": "6",
-                "modelCustomizationName": "2017488AdiodVpe..ADIOD_vRE_BV..module-1",
+                "modelCustomizationName": "2017488PasqualeVpe..PASQUALE_vRE_BV..module-1",
                 "properties": {
                   "minCountInstances": 0,
                   "maxCountInstances": null,
                   "initialCount": 0,
-                  "vfModuleLabel": "ADIOD_vRE_BV"
+                  "vfModuleLabel": "PASQUALE_vRE_BV"
                 },
                 "inputs": {
-                  "adiodvpe0_bandwidth": {
+                  "pasqualevpe0_bandwidth": {
                     "type": "string",
                     "description": "Requested VPE bandwidth",
                     "entry_schema": null,
                     "inputProperties": {
                       "sourceType": "HEAT",
-                      "vfModuleLabel": "ADIOD_vRE_BV",
+                      "vfModuleLabel": "PASQUALE_vRE_BV",
                       "paramName": "bandwidth"
                     },
                     "constraints": null,
                     "required": true,
                     "default": "10"
                   },
-                  "2017488_adiodvpe0_vnf_instance_name": {
+                  "2017488_pasqualevpe0_vnf_instance_name": {
                     "type": "string",
                     "description": "The hostname assigned to the vpe.",
                     "entry_schema": null,
                     "inputProperties": {
                       "sourceType": "HEAT",
-                      "vfModuleLabel": "ADIOD_vRE_BV",
+                      "vfModuleLabel": "PASQUALE_vRE_BV",
                       "paramName": "vnf_instance_name"
                     },
                     "constraints": null,
                     "required": true,
                     "default": "mtnj309me6"
                   },
-                  "2017488_adiodvpe0_vnf_config_template_version": {
+                  "2017488_pasqualevpe0_vnf_config_template_version": {
                     "type": "string",
                     "description": "VPE Software Version",
                     "entry_schema": null,
                     "inputProperties": {
                       "sourceType": "HEAT",
-                      "vfModuleLabel": "ADIOD_vRE_BV",
+                      "vfModuleLabel": "PASQUALE_vRE_BV",
                       "paramName": "vnf_config_template_version"
                     },
                     "constraints": null,
                     "required": true,
                     "default": "17.2"
                   },
-                  "2017488_adiodvpe0_AIC_CLLI": {
+                  "2017488_pasqualevpe0_AIC_CLLI": {
                     "type": "string",
                     "description": "AIC Site CLLI",
                     "entry_schema": null,
                     "inputProperties": {
                       "sourceType": "HEAT",
-                      "vfModuleLabel": "ADIOD_vRE_BV",
+                      "vfModuleLabel": "PASQUALE_vRE_BV",
                       "paramName": "AIC_CLLI"
                     },
                     "constraints": null,
                     "required": true,
                     "default": "ATLMY8GA"
                   },
-                  "adiodvpe0_bandwidth_units": {
+                  "pasqualevpe0_bandwidth_units": {
                     "type": "string",
                     "description": "Units of bandwidth",
                     "entry_schema": null,
                     "inputProperties": {
                       "sourceType": "HEAT",
-                      "vfModuleLabel": "ADIOD_vRE_BV",
+                      "vfModuleLabel": "PASQUALE_vRE_BV",
                       "paramName": "bandwidth_units"
                     },
                     "constraints": null,
                   }
                 }
               },
-              "2017488_adiodvpe0..2017488AdiodVpe..ADIOD_vPFE_BV..module-2": {
+              "2017488_pasqualevpe0..2017488PasqualeVpe..PASQUALE_vPFE_BV..module-2": {
                 "uuid": "0a0dd9d4-31d3-4c3a-ae89-a02f383e6a9a",
                 "invariantUuid": "eff8cc59-53a1-4101-aed7-8cf24ecf8339",
                 "customizationUuid": "3cd946bb-50e0-40d8-96d3-c9023520b557",
                 "description": null,
-                "name": "2017488AdiodVpe..ADIOD_vPFE_BV..module-2",
+                "name": "2017488PasqualeVpe..PASQUALE_vPFE_BV..module-2",
                 "version": "6",
-                "modelCustomizationName": "2017488AdiodVpe..ADIOD_vPFE_BV..module-2",
+                "modelCustomizationName": "2017488PasqualeVpe..PASQUALE_vPFE_BV..module-2",
                 "properties": {
                   "minCountInstances": 0,
                   "maxCountInstances": null,
                   "initialCount": 0,
-                  "vfModuleLabel": "ADIOD_vPFE_BV"
+                  "vfModuleLabel": "PASQUALE_vPFE_BV"
                 },
                 "inputs": {}
               }
           }
         },
         "networks": {},
-        "collectionResource": {},
+        "collectionResources": {},
         "configurations": {},
         "serviceProxies": {},
         "vfModules": {
-          "2017488_adiodvpe0..2017488AdiodVpe..ADIOD_vRE_BV..module-1": {
+          "2017488_pasqualevpe0..2017488PasqualeVpe..PASQUALE_vRE_BV..module-1": {
             "uuid": "25284168-24bb-4698-8cb4-3f509146eca5",
             "invariantUuid": "7253ff5c-97f0-4b8b-937c-77aeb4d79aa1",
             "customizationUuid": "f7e7c365-60cf-49a9-9ebf-a1aa11b9d401",
             "description": null,
-            "name": "2017488AdiodVpe..ADIOD_vRE_BV..module-1",
+            "name": "2017488PasqualeVpe..PASQUALE_vRE_BV..module-1",
             "version": "6",
-            "modelCustomizationName": "2017488AdiodVpe..ADIOD_vRE_BV..module-1",
+            "modelCustomizationName": "2017488PasqualeVpe..PASQUALE_vRE_BV..module-1",
             "properties": {
               "minCountInstances": 0,
               "maxCountInstances": null,
               "initialCount": 0,
-              "vfModuleLabel": "ADIOD_vRE_BV"
+              "vfModuleLabel": "PASQUALE_vRE_BV"
             },
             "inputs": {
-              "adiodvpe0_bandwidth": {
+              "pasqualevpe0_bandwidth": {
                 "type": "string",
                 "description": "Requested VPE bandwidth",
                 "entry_schema": null,
                 "inputProperties": {
                   "sourceType": "HEAT",
-                  "vfModuleLabel": "ADIOD_vRE_BV",
+                  "vfModuleLabel": "PASQUALE_vRE_BV",
                   "paramName": "bandwidth"
                 },
                 "constraints": null,
                 "required": true,
                 "default": "10"
               },
-              "2017488_adiodvpe0_vnf_instance_name": {
+              "2017488_pasqualevpe0_vnf_instance_name": {
                 "type": "string",
                 "description": "The hostname assigned to the vpe.",
                 "entry_schema": null,
                 "inputProperties": {
                   "sourceType": "HEAT",
-                  "vfModuleLabel": "ADIOD_vRE_BV",
+                  "vfModuleLabel": "PASQUALE_vRE_BV",
                   "paramName": "vnf_instance_name"
                 },
                 "constraints": null,
                 "required": true,
                 "default": "mtnj309me6"
               },
-              "2017488_adiodvpe0_vnf_config_template_version": {
+              "2017488_pasqualevpe0_vnf_config_template_version": {
                 "type": "string",
                 "description": "VPE Software Version",
                 "entry_schema": null,
                 "inputProperties": {
                   "sourceType": "HEAT",
-                  "vfModuleLabel": "ADIOD_vRE_BV",
+                  "vfModuleLabel": "PASQUALE_vRE_BV",
                   "paramName": "vnf_config_template_version"
                 },
                 "constraints": null,
                 "required": true,
                 "default": "17.2"
               },
-              "2017488_adiodvpe0_AIC_CLLI": {
+              "2017488_pasqualevpe0_AIC_CLLI": {
                 "type": "string",
                 "description": "AIC Site CLLI",
                 "entry_schema": null,
                 "inputProperties": {
                   "sourceType": "HEAT",
-                  "vfModuleLabel": "ADIOD_vRE_BV",
+                  "vfModuleLabel": "PASQUALE_vRE_BV",
                   "paramName": "AIC_CLLI"
                 },
                 "constraints": null,
                 "required": true,
                 "default": "ATLMY8GA"
               },
-              "adiodvpe0_bandwidth_units": {
+              "pasqualevpe0_bandwidth_units": {
                 "type": "string",
                 "description": "Units of bandwidth",
                 "entry_schema": null,
                 "inputProperties": {
                   "sourceType": "HEAT",
-                  "vfModuleLabel": "ADIOD_vRE_BV",
+                  "vfModuleLabel": "PASQUALE_vRE_BV",
                   "paramName": "bandwidth_units"
                 },
                 "constraints": null,
             },
             "volumeGroupAllowed": true
           },
-          "2017488_adiodvpe0..2017488AdiodVpe..ADIOD_base_vPE_BV..module-0": {
+          "2017488_pasqualevpe0..2017488PasqualeVpe..PASQUALE_base_vPE_BV..module-0": {
             "uuid": "f8360508-3f17-4414-a2ed-6bc71161e8db",
             "invariantUuid": "b34833bb-6aa9-4ad6-a831-70b06367a091",
             "customizationUuid": "a55961b2-2065-4ab0-a5b7-2fcee1c227e3",
             "description": null,
-            "name": "2017488AdiodVpe..ADIOD_base_vPE_BV..module-0",
+            "name": "2017488PasqualeVpe..PASQUALE_base_vPE_BV..module-0",
             "version": "5",
-            "modelCustomizationName": "2017488AdiodVpe..ADIOD_base_vPE_BV..module-0",
+            "modelCustomizationName": "2017488PasqualeVpe..PASQUALE_base_vPE_BV..module-0",
             "properties": {
               "minCountInstances": 1,
               "maxCountInstances": 1,
               "initialCount": 1,
-              "vfModuleLabel": "ADIOD_base_vPE_BV"
+              "vfModuleLabel": "PASQUALE_base_vPE_BV"
             },
             "inputs": {},
             "volumeGroupAllowed": false
           },
-          "2017488_adiodvpe0..2017488AdiodVpe..ADIOD_vPFE_BV..module-2": {
+          "2017488_pasqualevpe0..2017488PasqualeVpe..PASQUALE_vPFE_BV..module-2": {
             "uuid": "0a0dd9d4-31d3-4c3a-ae89-a02f383e6a9a",
             "invariantUuid": "eff8cc59-53a1-4101-aed7-8cf24ecf8339",
             "customizationUuid": "3cd946bb-50e0-40d8-96d3-c9023520b557",
             "description": null,
-            "name": "2017488AdiodVpe..ADIOD_vPFE_BV..module-2",
+            "name": "2017488PasqualeVpe..PASQUALE_vPFE_BV..module-2",
             "version": "6",
-            "modelCustomizationName": "2017488AdiodVpe..ADIOD_vPFE_BV..module-2",
+            "modelCustomizationName": "2017488PasqualeVpe..PASQUALE_vPFE_BV..module-2",
             "properties": {
               "minCountInstances": 0,
               "maxCountInstances": null,
               "initialCount": 0,
-              "vfModuleLabel": "ADIOD_vPFE_BV"
+              "vfModuleLabel": "PASQUALE_vPFE_BV"
             },
             "inputs": {},
             "volumeGroupAllowed": true
           }
         },
         "volumeGroups": {
-          "2017488_adiodvpe0..2017488AdiodVpe..ADIOD_vRE_BV..module-1": {
+          "2017488_pasqualevpe0..2017488PasqualeVpe..PASQUALE_vRE_BV..module-1": {
             "uuid": "25284168-24bb-4698-8cb4-3f509146eca5",
             "invariantUuid": "7253ff5c-97f0-4b8b-937c-77aeb4d79aa1",
             "customizationUuid": "f7e7c365-60cf-49a9-9ebf-a1aa11b9d401",
             "description": null,
-            "name": "2017488AdiodVpe..ADIOD_vRE_BV..module-1",
+            "name": "2017488PasqualeVpe..PASQUALE_vRE_BV..module-1",
             "version": "6",
-            "modelCustomizationName": "2017488AdiodVpe..ADIOD_vRE_BV..module-1",
+            "modelCustomizationName": "2017488PasqualeVpe..PASQUALE_vRE_BV..module-1",
             "properties": {
               "minCountInstances": 0,
               "maxCountInstances": null,
               "initialCount": 0,
-              "vfModuleLabel": "ADIOD_vRE_BV"
+              "vfModuleLabel": "PASQUALE_vRE_BV"
             },
             "inputs": {
-              "adiodvpe0_bandwidth": {
+              "pasqualevpe0_bandwidth": {
                 "type": "string",
                 "description": "Requested VPE bandwidth",
                 "entry_schema": null,
                 "inputProperties": {
                   "sourceType": "HEAT",
-                  "vfModuleLabel": "ADIOD_vRE_BV",
+                  "vfModuleLabel": "PASQUALE_vRE_BV",
                   "paramName": "bandwidth"
                 },
                 "constraints": null,
                 "required": true,
                 "default": "10"
               },
-              "2017488_adiodvpe0_vnf_instance_name": {
+              "2017488_pasqualevpe0_vnf_instance_name": {
                 "type": "string",
                 "description": "The hostname assigned to the vpe.",
                 "entry_schema": null,
                 "inputProperties": {
                   "sourceType": "HEAT",
-                  "vfModuleLabel": "ADIOD_vRE_BV",
+                  "vfModuleLabel": "PASQUALE_vRE_BV",
                   "paramName": "vnf_instance_name"
                 },
                 "constraints": null,
                 "required": true,
                 "default": "mtnj309me6"
               },
-              "2017488_adiodvpe0_vnf_config_template_version": {
+              "2017488_pasqualevpe0_vnf_config_template_version": {
                 "type": "string",
                 "description": "VPE Software Version",
                 "entry_schema": null,
                 "inputProperties": {
                   "sourceType": "HEAT",
-                  "vfModuleLabel": "ADIOD_vRE_BV",
+                  "vfModuleLabel": "PASQUALE_vRE_BV",
                   "paramName": "vnf_config_template_version"
                 },
                 "constraints": null,
                 "required": true,
                 "default": "17.2"
               },
-              "2017488_adiodvpe0_AIC_CLLI": {
+              "2017488_pasqualevpe0_AIC_CLLI": {
                 "type": "string",
                 "description": "AIC Site CLLI",
                 "entry_schema": null,
                 "inputProperties": {
                   "sourceType": "HEAT",
-                  "vfModuleLabel": "ADIOD_vRE_BV",
+                  "vfModuleLabel": "PASQUALE_vRE_BV",
                   "paramName": "AIC_CLLI"
                 },
                 "constraints": null,
                 "required": true,
                 "default": "ATLMY8GA"
               },
-              "adiodvpe0_bandwidth_units": {
+              "pasqualevpe0_bandwidth_units": {
                 "type": "string",
                 "description": "Units of bandwidth",
                 "entry_schema": null,
                 "inputProperties": {
                   "sourceType": "HEAT",
-                  "vfModuleLabel": "ADIOD_vRE_BV",
+                  "vfModuleLabel": "PASQUALE_vRE_BV",
                   "paramName": "bandwidth_units"
                 },
                 "constraints": null,
               }
             }
           },
-          "2017488_adiodvpe0..2017488AdiodVpe..ADIOD_vPFE_BV..module-2": {
+          "2017488_pasqualevpe0..2017488PasqualeVpe..PASQUALE_vPFE_BV..module-2": {
             "uuid": "0a0dd9d4-31d3-4c3a-ae89-a02f383e6a9a",
             "invariantUuid": "eff8cc59-53a1-4101-aed7-8cf24ecf8339",
             "customizationUuid": "3cd946bb-50e0-40d8-96d3-c9023520b557",
             "description": null,
-            "name": "2017488AdiodVpe..ADIOD_vPFE_BV..module-2",
+            "name": "2017488PasqualeVpe..PASQUALE_vPFE_BV..module-2",
             "version": "6",
-            "modelCustomizationName": "2017488AdiodVpe..ADIOD_vPFE_BV..module-2",
+            "modelCustomizationName": "2017488PasqualeVpe..PASQUALE_vPFE_BV..module-2",
             "properties": {
               "minCountInstances": 0,
               "maxCountInstances": null,
               "initialCount": 0,
-              "vfModuleLabel": "ADIOD_vPFE_BV"
+              "vfModuleLabel": "PASQUALE_vPFE_BV"
             },
             "inputs": {}
           }
     "lcpRegionsAndTenants": {
       "lcpRegionList": [
         {
-          "id": "JANET25",
-          "name": "JANET25 (AIC)",
+          "id": "AAIAIC25",
+          "name": "AAIAIC25 (AIC)",
           "isPermitted": true
         },
         {
         }
       ],
       "lcpRegionsTenantsMap": {
-        "JANET25": [
+        "AAIAIC25": [
           {
             "id": "092eb9e8e4b7412e8787dd091bc58e86",
             "name": "USP-SIP-IC-24335-T-01",
             "isPermitted": true
           },
           {
-            "id": "d0a3e3f2964542259d155a81c41aadc3",
-            "name": "test-hvf6-09",
+            "id": "229bcdc6eaeb4ca59d55221141d01f8e",
+            "name": "AIN Web Tool-15-D-STTest2",
+            "isPermitted": true
+          },
+          {
+            "id": "1178612d2b394be4834ad77f567c0af2",
+            "name": "AIN Web Tool-15-D-SSPtestcustome",
+            "isPermitted": true
+          },
+          {
+            "id": "19c5ade915eb461e8af52fb2fd8cd1f2",
+            "name": "AIN Web Tool-15-D-UncheckedEcopm",
+            "isPermitted": true
+          },
+          {
+            "id": "de007636e25249238447264a988a927b",
+            "name": "AIN Web Tool-15-D-dfsdf",
+            "isPermitted": true
+          },
+          {
+            "id": "62f29b3613634ca6a3065cbe0e020c44",
+            "name": "AIN/SMS-16-D-Multiservices1",
+            "isPermitted": true
+          },
+          {
+            "id": "649289e30d3244e0b48098114d63c2aa",
+            "name": "AIN Web Tool-15-D-SSPST66",
+            "isPermitted": true
+          },
+          {
+            "id": "3f21eeea6c2c486bba31dab816c05a32",
+            "name": "AIN Web Tool-15-D-ASSPST47",
+            "isPermitted": true
+          },
+          {
+            "id": "f60ce21d3ee6427586cff0d22b03b773",
+            "name": "CESAR-100-D-sspjg67246",
+            "isPermitted": true
+          },
+          {
+            "id": "8774659e425f479895ae091bb5d46560",
+            "name": "CESAR-100-D-sspjg68359",
+            "isPermitted": true
+          },
+          {
+            "id": "624eb554b0d147c19ff8885341760481",
+            "name": "AINWebTool-15-D-iftach",
+            "isPermitted": true
+          },
+          {
+            "id": "214f55f5fc414c678059c383b03e4962",
+            "name": "CESAR-100-D-sspjg612401",
+            "isPermitted": true
+          },
+          {
+            "id": "c90666c291664841bb98e4d981ff1db5",
+            "name": "CESAR-100-D-sspjg621340",
+            "isPermitted": true
+          },
+          {
+            "id": "ce5b6bc5c7b348e1bf4b91ac9a174278",
+            "name": "sspjg621351cloned",
+            "isPermitted": true
+          },
+          {
+            "id": "b386b768a3f24c8e953abbe0b3488c02",
+            "name": "AINWebTool-15-D-eteancomp",
+            "isPermitted": true
+          },
+          {
+            "id": "dc6c4dbfd225474e9deaadd34968646c",
+            "name": "AINWebTool-15-T-SPFET",
+            "isPermitted": true
+          },
+          {
+            "id": "02cb5030e9914aa4be120bd9ed1e19eb",
+            "name": "AINWebTool-15-X-eeweww",
+            "isPermitted": true
+          },
+          {
+            "id": "f2f3830e4c984d45bcd00e1a04158a79",
+            "name": "CESAR-100-D-spjg61909",
+            "isPermitted": true
+          },
+          {
+            "id": "05b91bd5137f4929878edd965755c06d",
+            "name": "CESAR-100-D-sspjg621512cloned",
+            "isPermitted": true
+          },
+          {
+            "id": "7002fbe8482d4a989ddf445b1ce336e0",
+            "name": "AINWebTool-15-X-vdr",
+            "isPermitted": true
+          },
+          {
+            "id": "4008522be43741dcb1f5422022a2aa0b",
+            "name": "AINWebTool-15-D-ssasa",
+            "isPermitted": true
+          },
+          {
+            "id": "f44e2e96a1b6476abfda2fa407b00169",
+            "name": "AINWebTool-15-D-PFNPT",
+            "isPermitted": true
+          },
+          {
+            "id": "b69a52bec8a84669a37a1e8b72708be7",
+            "name": "AINWebTool-15-X-vdre",
+            "isPermitted": true
+          },
+          {
+            "id": "fac7d9fd56154caeb9332202dcf2969f",
+            "name": "AINWebTool-15-X-NONPODECOMP",
+            "isPermitted": true
+          },
+          {
+            "id": "2d34d8396e194eb49969fd61ffbff961",
+            "name": "DN5242-Nov16-T5",
+            "isPermitted": true
+          },
+          {
+            "id": "cb42a77ff45b48a8b8deb83bb64acc74",
+            "name": "ro-T11",
             "isPermitted": true
           },
           {
             "name": "ro-T112",
             "isPermitted": true
           },
+          {
+            "id": "4914ab0ab3a743e58f0eefdacc1dde77",
+            "name": "DN5242-Nov21-T1",
+            "isPermitted": true
+          },
+          {
+            "id": "d0a3e3f2964542259d155a81c41aadc3",
+            "name": "test-hvf6-09",
+            "isPermitted": true
+          },
           {
             "id": "cbb99fe4ada84631b7baf046b6fd2044",
             "name": "DN5242-Nov16-T3",
     "productFamilies": [
       {
         "id": "ebc3bc3d-62fd-4a3f-a037-f619df4ff034",
-        "name": "SCOTTIE",
+        "name": "ERICA",
         "isPermitted": true
       },
       {
       },
       {
         "id": "323d69d9-2efe-4r45-ay0a-89ea7ard4e6f",
-        "name": "vSCP",
+        "name": "vEsmeralda",
         "isPermitted": true
       },
       {
         "isPermitted": true
       },
       {
-        "id": "Cisneros",
+        "id": "vMuriel",
         "name": "vMuriel",
         "isPermitted": true
       },
       },
       {
         "id": "d7bb0a21-66f2-4e6d-87d9-9ef3ced63ae4",
-        "name": "Josefina",
+        "name": "JOSEFINA",
         "isPermitted": true
       },
       {
         },
         {
           "id": "6",
-          "name": "vSEGW",
+          "name": "vPorfirio",
           "isPermitted": false
         },
         {
         },
         {
           "id": "9",
-          "name": "vMME",
+          "name": "vFLORENCE",
           "isPermitted": false
         },
         {
         },
         {
           "id": "11",
-          "name": "vSCP",
+          "name": "vEsmeralda",
           "isPermitted": false
         },
         {
         },
         {
           "id": "13",
-          "name": "vMMSC",
+          "name": "vWINIFRED",
           "isPermitted": false
         },
         {
         "id": "YYY1",
         "name": "UUUAIAAI-YYY1"
       },
+      {
+        "id": "BAN1",
+        "name": "VSDKYUTP-BAN1"
+      },
+      {
+        "id": "DKJ1",
+        "name": "DKJSJDKA-DKJ1"
+      },
+      {
+        "id": "MCS1",
+        "name": "ASACMAMS-MCS1"
+      },
+      {
+        "id": "UIO1",
+        "name": "uioclli1-UIO1"
+      },
+      {
+        "id": "RAJ1",
+        "name": "YGBIJNLQ-RAJ1"
+      },
+      {
+        "id": "OPA1",
+        "name": "opaclli1-OPA1"
+      },
+      {
+        "id": "SDE1",
+        "name": "ZXCVBNMA-SDE1"
+      },
+      {
+        "id": "VEN2",
+        "name": "FGHJUHIL-VEN2"
+      },
+      {
+        "id": "ORL1",
+        "name": "ORLDFLMA-ORL1"
+      },
+      {
+        "id": "JAD1",
+        "name": "JADECLLI-JAD1"
+      },
+      {
+        "id": "ZXL1",
+        "name": "LWLWCANN-ZXL1"
+      },
+      {
+        "id": "CKL1",
+        "name": "CLKSKCKK-CKL1"
+      },
+      {
+        "id": "SDF1",
+        "name": "sdfclli1-SDF1"
+      },
+      {
+        "id": "RAD1",
+        "name": "RADICAL1-RAD1"
+      },
+      {
+        "id": "KIT1",
+        "name": "BHYJFGLN-KIT1"
+      },
+      {
+        "id": "REL1",
+        "name": "INGERFGT-REL1"
+      },
+      {
+        "id": "JNL1",
+        "name": "CJALSDAC-JNL1"
+      },
+      {
+        "id": "OLK1",
+        "name": "OLKOLKLS-OLK1"
+      },
+      {
+        "id": "CHI1",
+        "name": "CHILLIWE-CHI1"
+      },
+      {
+        "id": "UUU4",
+        "name": "UUUAAAUU-UUU4"
+      },
+      {
+        "id": "TUF1",
+        "name": "TUFCLLI1-TUF1"
+      },
+      {
+        "id": "KJN1",
+        "name": "CKALDKSA-KJN1"
+      },
+      {
+        "id": "SAM1",
+        "name": "SNDGCA64-SAN1"
+      },
+      {
+        "id": "SCK1",
+        "name": "SCKSCKSK-SCK1"
+      },
+      {
+        "id": "HJH1",
+        "name": "AOEEQQQD-HJH1"
+      },
+      {
+        "id": "HGD1",
+        "name": "SDFQWHGD-HGD1"
+      },
+      {
+        "id": "KOR1",
+        "name": "HYFLNBVT-KOR1"
+      },
+      {
+        "id": "ATL43",
+        "name": "AICLOCID-ATL43"
+      },
+      {
+        "id": "ATL54",
+        "name": "AICFTAAI-ATL54"
+      },
+      {
+        "id": "ATL66",
+        "name": "CLLIAAII-ATL66"
+      },
+      {
+        "id": "VEL1",
+        "name": "BNMLKUIK-VEL1"
+      },
+      {
+        "id": "ICC1",
+        "name": "SANJITAT-ICC1"
+      },
+      {
+        "id": "MNT11",
+        "name": "WSXEFBTH-MNT11"
+      },
+      {
+        "id": "DEF2",
+        "name": "WSBHGTYL-DEF2"
+      },
+      {
+        "id": "MAD11",
+        "name": "SDFQWGKL-MAD11"
+      },
+      {
+        "id": "OLG1",
+        "name": "OLHOLHOL-OLG1"
+      },
+      {
+        "id": "GAR1",
+        "name": "NGFVSJKO-GAR1"
+      },
+      {
+        "id": "SAN22",
+        "name": "GNVLSCTL-SAN22"
+      },
+      {
+        "id": "HRG1",
+        "name": "HRGHRGGS-HRG1"
+      },
+      {
+        "id": "JCS1",
+        "name": "JCSJSCJS-JCS1"
+      },
+      {
+        "id": "DHA12",
+        "name": "WSXEDECF-DHA12"
+      },
+      {
+        "id": "HJE1",
+        "name": "AOEEWWWD-HJE1"
+      },
+      {
+        "id": "NCA1",
+        "name": "NCANCANN-NCA1"
+      },
+      {
+        "id": "IOP1",
+        "name": "iopclli1-IOP1"
+      },
+      {
+        "id": "RTY1",
+        "name": "rtyclli1-RTY1"
+      },
+      {
+        "id": "KAP1",
+        "name": "HIOUYTRQ-KAP1"
+      },
+      {
+        "id": "ZEN1",
+        "name": "ZENCLLI1-ZEN1"
+      },
+      {
+        "id": "HKA1",
+        "name": "JAKHLASS-HKA1"
+      },
+      {
+        "id": "CQK1",
+        "name": "CQKSCAKK-CQK1"
+      },
+      {
+        "id": "SAI1",
+        "name": "UBEKQLPD-SAI1"
+      },
+      {
+        "id": "ERT1",
+        "name": "ertclli1-ERT1"
+      },
+      {
+        "id": "IBB1",
+        "name": "PLMKOIJU-IBB1"
+      },
+      {
+        "id": "TIR2",
+        "name": "PLKINHYI-TIR2"
+      },
+      {
+        "id": "HSD1",
+        "name": "CHASKCDS-HSD1"
+      },
+      {
+        "id": "SLF78",
+        "name": "SDCTLFN1-SLF78"
+      },
+      {
+        "id": "SEE78",
+        "name": "SDCTEEE4-SEE78"
+      },
+      {
+        "id": "SAN13",
+        "name": "TOKYJPFA-SAN13"
+      },
+      {
+        "id": "SAA78",
+        "name": "SDCTAAA1-SAA78"
+      },
+      {
+        "id": "LUC1",
+        "name": "ATLDFGYC-LUC1"
+      },
+      {
+        "id": "AMD13",
+        "name": "MEMATLAN-AMD13"
+      },
+      {
+        "id": "TOR1",
+        "name": "TOROONXN-TOR1"
+      },
+      {
+        "id": "QWE1",
+        "name": "QWECLLI1-QWE1"
+      },
+      {
+        "id": "ZOG1",
+        "name": "ZOGASTRO-ZOG1"
+      },
+      {
+        "id": "CAL33",
+        "name": "CALIFORN-CAL33"
+      },
+      {
+        "id": "SHH78",
+        "name": "SDIT1HHH-SHH78"
+      },
+      {
+        "id": "DSA1",
+        "name": "LKJHGFDS-DSA1"
+      },
+      {
+        "id": "CLG1",
+        "name": "CLGRABAD-CLG1"
+      },
+      {
+        "id": "BNA1",
+        "name": "BNARAGBK-BNA1"
+      },
+      {
+        "id": "ATL84",
+        "name": "CANTTCOC-ATL84"
+      },
+      {
+        "id": "APP1",
+        "name": "WBHGTYUI-APP1"
+      },
+      {
+        "id": "RJN1",
+        "name": "RJNRBZAW-RJN1"
+      },
+      {
+        "id": "EHH78",
+        "name": "SDCSHHH5-EHH78"
+      },
+      {
+        "id": "mac10",
+        "name": "PKGTESTF-mac10"
+      },
+      {
+        "id": "SXB78",
+        "name": "SDCTGXB1-SXB78"
+      },
+      {
+        "id": "SAX78",
+        "name": "SDCTAXG1-SAX78"
+      },
+      {
+        "id": "SYD1",
+        "name": "SYDNAUBV-SYD1"
+      },
+      {
+        "id": "TOK1",
+        "name": "TOKYJPFA-TOK1"
+      },
+      {
+        "id": "KGM2",
+        "name": "KGMTNC20-KGM2"
+      },
+      {
+        "id": "DCC1b",
+        "name": "POIUYTGH-DCC1b"
+      },
+      {
+        "id": "SKK78",
+        "name": "SDCTKKK1-SKK78"
+      },
+      {
+        "id": "SGG78",
+        "name": "SDCTGGG1-SGG78"
+      },
+      {
+        "id": "SJJ78",
+        "name": "SDCTJJJ1-SJJ78"
+      },
+      {
+        "id": "SBX78",
+        "name": "SDCTBXG1-SBX78"
+      },
+      {
+        "id": "LAG1",
+        "name": "LARGIZON-LAG1"
+      },
+      {
+        "id": "IAA1",
+        "name": "QAZXSWED-IAA1"
+      },
+      {
+        "id": "POI1",
+        "name": "PLMNJKIU-POI1"
+      },
+      {
+        "id": "LAG1a",
+        "name": "LARGIZON-LAG1a"
+      },
+      {
+        "id": "PBL1",
+        "name": "PBLAPBAI-PBL1"
+      },
+      {
+        "id": "LAG45",
+        "name": "LARGIZON-LAG1a"
+      },
+      {
+        "id": "MAR1",
+        "name": "MNBVCXZM-MAR1"
+      },
+      {
+        "id": "HST70",
+        "name": "HSTNTX70-HST70"
+      },
+      {
+        "id": "DCC1a",
+        "name": "POIUYTGH-DCC1a"
+      },
+      {
+        "id": "TOL1",
+        "name": "TOLDOH21-TOL1"
+      },
+      {
+        "id": "LON1",
+        "name": "LONEENCO-LON1"
+      },
+      {
+        "id": "SJU78",
+        "name": "SDIT1JUB-SJU78"
+      },
+      {
+        "id": "STN27",
+        "name": "HSTNTX01-STN27"
+      },
+      {
+        "id": "SSW56",
+        "name": "ss8126GT-SSW56"
+      },
+      {
+        "id": "SBB78",
+        "name": "SDIT1BBB-SBB78"
+      },
+      {
+        "id": "DCC3",
+        "name": "POIUYTGH-DCC3"
+      },
+      {
+        "id": "GNV1",
+        "name": "GNVLSCTL-GNV1"
+      },
+      {
+        "id": "WAS1",
+        "name": "WASHDCSW-WAS1"
+      },
+      {
+        "id": "TOY1",
+        "name": "TORYONNZ-TOY1"
+      },
+      {
+        "id": "STT1",
+        "name": "STTLWA02-STT1"
+      },
+      {
+        "id": "STG1",
+        "name": "STTGGE62-STG1"
+      },
+      {
+        "id": "SLL78",
+        "name": "SDCTLLL1-SLL78"
+      },
+      {
+        "id": "SBU78",
+        "name": "SDIT1BUB-SBU78"
+      },
+      {
+        "id": "ATL2",
+        "name": "ATLNGANW-ATL2"
+      },
+      {
+        "id": "BOT1",
+        "name": "BOTHWAKY-BOT1"
+      },
+      {
+        "id": "SNG1",
+        "name": "SNGPSIAU-SNG1"
+      },
+      {
+        "id": "NYC1",
+        "name": "NYCMNY54-NYC1"
+      },
+      {
+        "id": "LAG1b",
+        "name": "LARGIZON-LAG1b"
+      },
+      {
+        "id": "AMD15",
+        "name": "AMDFAA01-AMD15"
+      },
+      {
+        "id": "SNA1",
+        "name": "SNANTXCA-SNA1"
+      },
+      {
+        "id": "PLT1",
+        "name": "PLTNCA60-PLT1"
+      },
+      {
+        "id": "TLP1",
+        "name": "TLPNXM18-TLP1"
+      },
+      {
+        "id": "SDD81",
+        "name": "SAIT1DD6-SDD81"
+      },
+      {
+        "id": "DCC1",
+        "name": "POIUYTGH-DCC1"
+      },
+      {
+        "id": "DCC2",
+        "name": "POIUYTGH-DCC2"
+      },
+      {
+        "id": "OKC1",
+        "name": "OKCBOK55-OKC1"
+      },
+      {
+        "id": "PAR1",
+        "name": "PARSFRCG-PAR1"
+      },
+      {
+        "id": "TES36",
+        "name": "ABCEETES-TES36"
+      },
+      {
+        "id": "COM1",
+        "name": "PLMKOPIU-COM1"
+      },
+      {
+        "id": "ANI1",
+        "name": "ATLNGTRE-ANI1"
+      },
+      {
+        "id": "SDG78",
+        "name": "SDIT1BDG-SDG78"
+      },
+      {
+        "id": "mac20",
+        "name": "PKGTESTF-mac20"
+      },
+      {
+        "id": "DSF45",
+        "name": "DSFBG123-DSF45"
+      },
+      {
+        "id": "HST25",
+        "name": "HSTNTX01-HST25"
+      },
+      {
+        "id": "AMD18",
+        "name": "AUDIMA01-AMD18"
+      },
+      {
+        "id": "SAA80",
+        "name": "SAIT9AA3-SAA80"
+      },
+      {
+        "id": "SSA56",
+        "name": "SSIT2AA7-SSA56"
+      },
+      {
+        "id": "SDD82",
+        "name": "SAIT1DD9-SDD82"
+      },
+      {
+        "id": "JCV1",
+        "name": "JCVLFLBW-JCV1"
+      },
+      {
+        "id": "SUL2",
+        "name": "WERTYUJK-SUL2"
+      },
+      {
+        "id": "PUR1",
+        "name": "purelyde-PUR1"
+      },
+      {
+        "id": "FDE55",
+        "name": "FDERT555-FDE55"
+      },
+      {
+        "id": "SITE",
+        "name": "LONEENCO-SITE"
+      },
+      {
+        "id": "ATL1",
+        "name": "ATLNGAMA-ATL1"
+      },
+      {
+        "id": "JUL1",
+        "name": "ZXCVBNMM-JUL1"
+      },
+      {
+        "id": "TAT34",
+        "name": "TESAAISB-TAT34"
+      },
+      {
+        "id": "XCP12",
+        "name": "CHKGH123-XCP12"
+      },
+      {
+        "id": "RAI1",
+        "name": "poiuytre-RAI1"
+      },
+      {
+        "id": "HPO1",
+        "name": "ATLNGAUP-HPO1"
+      },
+      {
+        "id": "KJF12",
+        "name": "KJFDH123-KJF12"
+      },
+      {
+        "id": "SCC80",
+        "name": "SAIT9CC3-SCC80"
+      },
+      {
+        "id": "SAA12",
+        "name": "SAIT9AF8-SAA12"
+      },
+      {
+        "id": "SAA14",
+        "name": "SAIT1AA9-SAA14"
+      },
+      {
+        "id": "ATL35",
+        "name": "TTESSAAI-ATL35"
+      },
+      {
+        "id": "CWY1",
+        "name": "CWYMOWBS-CWY1"
+      },
+      {
+        "id": "ATL76",
+        "name": "TELEPAAI-ATL76"
+      },
+      {
+        "id": "DSL12",
+        "name": "DSLFK242-DSL12"
+      },
+      {
+        "id": "ATL53",
+        "name": "AAIATLTE-ATL53"
+      },
+      {
+        "id": "SAA11",
+        "name": "SAIT9AA2-SAA11"
+      },
+      {
+        "id": "ATL62",
+        "name": "TESSASCH-ATL62"
+      },
+      {
+        "id": "AUG1",
+        "name": "ASDFGHJK-AUG1"
+      },
+      {
+        "id": "POI22",
+        "name": "POIUY123-POI22"
+      },
+      {
+        "id": "SAA13",
+        "name": "SAIT1AA9-SAA13"
+      },
+      {
+        "id": "BHY17",
+        "name": "BHYTFRF3-BHY17"
+      },
+      {
+        "id": "LIS1",
+        "name": "HOSTPROF-LIS1"
+      },
+      {
+        "id": "SIP1",
+        "name": "ZXCVBNMK-SIP1"
+      },
+      {
+        "id": "ATL99",
+        "name": "TEESTAAI-ATL43"
+      },
+      {
+        "id": "ATL64",
+        "name": "FORLOAAJ-ATL64"
+      },
+      {
+        "id": "TAT33",
+        "name": "TESAAISA-TAT33"
+      },
+      {
+        "id": "RAD10",
+        "name": "INDIPUNE-RAD10"
+      },
+      {
+        "id": "RTW5",
+        "name": "BHYTFRY4-RTW5"
+      },
+      {
+        "id": "JGS1",
+        "name": "KSJKKKKK-JGS1"
+      },
+      {
+        "id": "ATL98",
+        "name": "TEESTAAI-ATL43"
+      },
+      {
+        "id": "WAN1",
+        "name": "LEIWANGW-WAN1"
+      },
+      {
+        "id": "ATL44",
+        "name": "ATLSANAB-ATL44"
+      },
+      {
+        "id": "RTD2",
+        "name": "BHYTFRk4-RTD2"
+      },
+      {
+        "id": "NIR1",
+        "name": "ORFLMANA-NIR1"
+      },
+      {
+        "id": "ATL75",
+        "name": "SANAAIRE-ATL75"
+      },
+      {
+        "id": "NUM1",
+        "name": "QWERTYUI-NUM1"
+      },
+      {
+        "id": "hvf32",
+        "name": "MDTWNJ21-hvf32"
+      },
+      {
+        "id": "RTZ4",
+        "name": "BHYTFRZ6-RTZ4"
+      },
+      {
+        "id": "ATL56",
+        "name": "ATLSANAC-ATL56"
+      },
+      {
+        "id": "AMS1",
+        "name": "AMSTNLBW-AMS1"
+      },
+      {
+        "id": "RCT1",
+        "name": "AMSTERNL-RCT1"
+      },
+      {
+        "id": "JAN1",
+        "name": "ORFLMATT-JAN1"
+      },
+      {
+        "id": "ABC14",
+        "name": "TESAAISA-ABC14"
+      },
+      {
+        "id": "TAT37",
+        "name": "TESAAISD-TAT37"
+      },
+      {
+        "id": "MIC54",
+        "name": "MICHIGAN-MIC54"
+      },
+      {
+        "id": "ABC11",
+        "name": "ATLSANAI-ABC11"
+      },
+      {
+        "id": "AMF11",
+        "name": "AMDOCS01-AMF11"
+      },
+      {
+        "id": "ATL63",
+        "name": "ATLSANEW-ATL63"
+      },
+      {
+        "id": "ABC12",
+        "name": "ATLSECIA-ABC12"
+      },
+      {
+        "id": "hvf20",
+        "name": "MDTWNJ21-hvf20"
+      },
+      {
+        "id": "ABC15",
+        "name": "AAITESAN-ABC15"
+      },
       {
         "id": "AVT1",
         "name": "AVTRFLHD-AVT1"
index 7b4440d..7800cc3 100644 (file)
@@ -37,7 +37,7 @@
       "modelCustomizationName": "MULTI_PROVIDER_PORT_GROUP 0"
     }
   },
-  "collectionResource": {},
+  "collectionResources": {},
   "configurations": {},
   "serviceProxies": {},
   "vfModules": {},
index 4a0dc24..df0fed0 100644 (file)
       "type": "VF",
       "modelCustomizationName": "092017_VSP_GINGERby11 0",
       "vfModules": {
-        "092017_vsp_gingerby110..092017VspGingerby11..pxmc_vmt..module-1": {
+        "092017_vsp_gingerby110..092017VspGingerby11..CORNELIUS_vmt..module-1": {
           "uuid": "96af1531-35b5-44b8-b8e9-17e400cce6fd",
           "invariantUuid": "be556344-d212-4c88-9fe1-c72003591e78",
           "customizationUuid": "abb15cf7-174a-4815-86e8-91997b1f07b7",
           "description": null,
-          "name": "092017VspGingerby11..pxmc_vmt..module-1",
+          "name": "092017VspGingerby11..CORNELIUS_vmt..module-1",
           "version": "1",
-          "modelCustomizationName": "092017VspGingerby11..pxmc_vmt..module-1",
+          "modelCustomizationName": "092017VspGingerby11..CORNELIUS_vmt..module-1",
           "properties": {
             "minCountInstances": 0,
             "maxCountInstances": null,
             "initialCount": 0,
-            "vfModuleLabel": "pxmc_vmt"
+            "vfModuleLabel": "CORNELIUS_vmt"
           },
           "inputs": {},
           "volumeGroupAllowed": false
         },
-        "092017_vsp_gingerby110..092017VspGingerby11..pxmc_mmn..module-2": {
+        "092017_vsp_gingerby110..092017VspGingerby11..CORNELIUS_mmn..module-2": {
           "uuid": "2d8bf918-ad4b-42f6-b87d-8cb5c13660b6",
           "invariantUuid": "19c5c400-9d33-4e69-a0ef-9a26ebe68b3d",
           "customizationUuid": "6268df2d-74cc-4189-b7b5-7f833b54d457",
           "description": null,
-          "name": "092017VspGingerby11..pxmc_mmn..module-2",
+          "name": "092017VspGingerby11..CORNELIUS_mmn..module-2",
           "version": "1",
-          "modelCustomizationName": "092017VspGingerby11..pxmc_mmn..module-2",
+          "modelCustomizationName": "092017VspGingerby11..CORNELIUS_mmn..module-2",
           "properties": {
             "minCountInstances": 0,
             "maxCountInstances": null,
             "initialCount": 0,
-            "vfModuleLabel": "pxmc_mmn"
+            "vfModuleLabel": "CORNELIUS_mmn"
           },
           "inputs": {},
           "volumeGroupAllowed": true
         },
-        "092017_vsp_gingerby110..092017VspGingerby11..pxmc_base..module-0": {
+        "092017_vsp_gingerby110..092017VspGingerby11..CORNELIUS_base..module-0": {
           "uuid": "a3d8289d-7b29-4e0f-8b51-e825bfe54749",
           "invariantUuid": "dea04dc1-f4fb-435d-80b4-f176d4c15653",
           "customizationUuid": "e6e4a00e-3fde-459c-9a68-4bf2b35d5e9e",
           "description": null,
-          "name": "092017VspGingerby11..pxmc_base..module-0",
+          "name": "092017VspGingerby11..CORNELIUS_base..module-0",
           "version": "1",
-          "modelCustomizationName": "092017VspGingerby11..pxmc_base..module-0",
+          "modelCustomizationName": "092017VspGingerby11..CORNELIUS_base..module-0",
           "properties": {
             "minCountInstances": 1,
             "maxCountInstances": 1,
             "initialCount": 1,
-            "vfModuleLabel": "pxmc_base"
+            "vfModuleLabel": "CORNELIUS_base"
           },
           "inputs": {},
           "volumeGroupAllowed": false
         }
       },
       "volumeGroups": {
-        "092017_vsp_gingerby110..092017VspGingerby11..pxmc_mmn..module-2": {
+        "092017_vsp_gingerby110..092017VspGingerby11..CORNELIUS_mmn..module-2": {
           "uuid": "2d8bf918-ad4b-42f6-b87d-8cb5c13660b6",
           "invariantUuid": "19c5c400-9d33-4e69-a0ef-9a26ebe68b3d",
           "customizationUuid": "6268df2d-74cc-4189-b7b5-7f833b54d457",
           "description": null,
-          "name": "092017VspGingerby11..pxmc_mmn..module-2",
+          "name": "092017VspGingerby11..CORNELIUS_mmn..module-2",
           "version": "1",
-          "modelCustomizationName": "092017VspGingerby11..pxmc_mmn..module-2",
+          "modelCustomizationName": "092017VspGingerby11..CORNELIUS_mmn..module-2",
           "properties": {
             "minCountInstances": 0,
             "maxCountInstances": null,
             "initialCount": 0,
-            "vfModuleLabel": "pxmc_mmn"
+            "vfModuleLabel": "CORNELIUS_mmn"
           },
           "inputs": {}
         }
     }
   },
   "networks": {},
-  "collectionResource": {},
+  "collectionResources": {},
   "configurations": {},
   "serviceProxies": {},
   "vfModules": {
-    "092017_vsp_gingerby110..092017VspGingerby11..pxmc_vmt..module-1": {
+    "092017_vsp_gingerby110..092017VspGingerby11..CORNELIUS_vmt..module-1": {
       "uuid": "96af1531-35b5-44b8-b8e9-17e400cce6fd",
       "invariantUuid": "be556344-d212-4c88-9fe1-c72003591e78",
       "customizationUuid": "abb15cf7-174a-4815-86e8-91997b1f07b7",
       "description": null,
-      "name": "092017VspGingerby11..pxmc_vmt..module-1",
+      "name": "092017VspGingerby11..CORNELIUS_vmt..module-1",
       "version": "1",
-      "modelCustomizationName": "092017VspGingerby11..pxmc_vmt..module-1",
+      "modelCustomizationName": "092017VspGingerby11..CORNELIUS_vmt..module-1",
       "properties": {
         "minCountInstances": 0,
         "maxCountInstances": null,
         "initialCount": 0,
-        "vfModuleLabel": "pxmc_vmt"
+        "vfModuleLabel": "CORNELIUS_vmt"
       },
       "inputs": {},
       "volumeGroupAllowed": false
     },
-    "092017_vsp_gingerby110..092017VspGingerby11..pxmc_base..module-0": {
+    "092017_vsp_gingerby110..092017VspGingerby11..CORNELIUS_base..module-0": {
       "uuid": "a3d8289d-7b29-4e0f-8b51-e825bfe54749",
       "invariantUuid": "dea04dc1-f4fb-435d-80b4-f176d4c15653",
       "customizationUuid": "e6e4a00e-3fde-459c-9a68-4bf2b35d5e9e",
       "description": null,
-      "name": "092017VspGingerby11..pxmc_base..module-0",
+      "name": "092017VspGingerby11..CORNELIUS_base..module-0",
       "version": "1",
-      "modelCustomizationName": "092017VspGingerby11..pxmc_base..module-0",
+      "modelCustomizationName": "092017VspGingerby11..CORNELIUS_base..module-0",
       "properties": {
         "minCountInstances": 1,
         "maxCountInstances": 1,
         "initialCount": 1,
-        "vfModuleLabel": "pxmc_base"
+        "vfModuleLabel": "CORNELIUS_base"
       },
       "inputs": {},
       "volumeGroupAllowed": false
     },
-    "092017_vsp_gingerby110..092017VspGingerby11..pxmc_mmn..module-2": {
+    "092017_vsp_gingerby110..092017VspGingerby11..CORNELIUS_mmn..module-2": {
       "uuid": "2d8bf918-ad4b-42f6-b87d-8cb5c13660b6",
       "invariantUuid": "19c5c400-9d33-4e69-a0ef-9a26ebe68b3d",
       "customizationUuid": "6268df2d-74cc-4189-b7b5-7f833b54d457",
       "description": null,
-      "name": "092017VspGingerby11..pxmc_mmn..module-2",
+      "name": "092017VspGingerby11..CORNELIUS_mmn..module-2",
       "version": "1",
-      "modelCustomizationName": "092017VspGingerby11..pxmc_mmn..module-2",
+      "modelCustomizationName": "092017VspGingerby11..CORNELIUS_mmn..module-2",
       "properties": {
         "minCountInstances": 0,
         "maxCountInstances": null,
         "initialCount": 0,
-        "vfModuleLabel": "pxmc_mmn"
+        "vfModuleLabel": "CORNELIUS_mmn"
       },
       "inputs": {},
       "volumeGroupAllowed": true
     }
   },
   "volumeGroups": {
-    "092017_vsp_gingerby110..092017VspGingerby11..pxmc_mmn..module-2": {
+    "092017_vsp_gingerby110..092017VspGingerby11..CORNELIUS_mmn..module-2": {
       "uuid": "2d8bf918-ad4b-42f6-b87d-8cb5c13660b6",
       "invariantUuid": "19c5c400-9d33-4e69-a0ef-9a26ebe68b3d",
       "customizationUuid": "6268df2d-74cc-4189-b7b5-7f833b54d457",
       "description": null,
-      "name": "092017VspGingerby11..pxmc_mmn..module-2",
+      "name": "092017VspGingerby11..CORNELIUS_mmn..module-2",
       "version": "1",
-      "modelCustomizationName": "092017VspGingerby11..pxmc_mmn..module-2",
+      "modelCustomizationName": "092017VspGingerby11..CORNELIUS_mmn..module-2",
       "properties": {
         "minCountInstances": 0,
         "maxCountInstances": null,
         "initialCount": 0,
-        "vfModuleLabel": "pxmc_mmn"
+        "vfModuleLabel": "CORNELIUS_mmn"
       },
       "inputs": {}
     }
index 12d1c27..7ccd977 100644 (file)
@@ -15,7 +15,7 @@
   },
   "vnfs": {},
   "networks": {},
-  "collectionResource": {},
+  "collectionResources": {},
   "configurations": {
     "Port Mirroring Configuration By Policy 1": {
       "uuid": "f58d039d-4cfc-40ec-bd75-1f05f0458a6c",
@@ -35,9 +35,9 @@
       "type": "Configuration",
       "modelCustomizationName": "Port Mirroring Configuration By Policy 1",
       "sourceNodes": [
-        "vmmeservice2_proxy 2",
-        "vmmeservice2_proxy 3",
-        "vmmeservice_proxy 1"
+        "vflorenceservice2_proxy 2",
+        "vflorenceservice2_proxy 3",
+        "vflorenceservice_proxy 1"
       ],
       "collectorNodes": [
         "pprobeservice_proxy 5"
@@ -62,9 +62,9 @@
       "type": "Configuration",
       "modelCustomizationName": "Port Mirroring Configuration By Policy 0",
       "sourceNodes": [
-        "vmmeservice2_proxy 2",
-        "vmmeservice_proxy 1",
-        "vmmeservice_proxy 0"
+        "vflorenceservice2_proxy 2",
+        "vflorenceservice_proxy 1",
+        "vflorenceservice_proxy 0"
       ],
       "collectorNodes": [
         "pprobeservice_proxy 4"
     }
   },
   "serviceProxies": {
-    "vmmeservice_proxy 0": {
+    "vflorenceservice_proxy 0": {
       "uuid": "a32fee17-5b59-4c34-ba6f-6dd2f1c61fee",
       "invariantUuid": "2933b574-d28d-45ea-bf22-4df2907e4a10",
-      "description": "A Proxy for Service vmmeService",
-      "name": "vmmeService Service Proxy",
+      "description": "A Proxy for Service vflorenceService",
+      "name": "vflorenceService Service Proxy",
       "version": "1.0",
       "customizationUuid": "d7cfe338-eeda-4217-ba13-f24b0811fb17",
       "inputs": {},
       "type": "Service Proxy",
       "sourceModelUuid": "c3e6c9bd-b24d-458e-aa99-e0cadf70c5e5",
       "sourceModelInvariant": "dd8a805d-3946-4f11-9831-e26cd6aec9a3",
-      "sourceModelName": "vmmeService"
+      "sourceModelName": "vflorenceService"
     },
-    "vmmeservice_proxy 1": {
+    "vflorenceservice_proxy 1": {
       "uuid": "a32fee17-5b59-4c34-ba6f-6dd2f1c61fee",
       "invariantUuid": "2933b574-d28d-45ea-bf22-4df2907e4a10",
-      "description": "A Proxy for Service vmmeService",
-      "name": "vmmeService Service Proxy",
+      "description": "A Proxy for Service vflorenceService",
+      "name": "vflorenceService Service Proxy",
       "version": "1.0",
       "customizationUuid": "7a69f133-564c-4eb6-b93e-0a8281967efb",
       "inputs": {},
       "type": "Service Proxy",
       "sourceModelUuid": "c3e6c9bd-b24d-458e-aa99-e0cadf70c5e5",
       "sourceModelInvariant": "dd8a805d-3946-4f11-9831-e26cd6aec9a3",
-      "sourceModelName": "vmmeService"
+      "sourceModelName": "vflorenceService"
     },
-    "vmmeservice2_proxy 3": {
+    "vflorenceservice2_proxy 3": {
       "uuid": "a32fee17-5b59-4c34-ba6f-6dd2f1c61fee",
       "invariantUuid": "2933b574-d28d-45ea-bf22-4df2907e4a10",
-      "description": "A Proxy for Service vmmeService2",
-      "name": "vmmeService2 Service Proxy",
+      "description": "A Proxy for Service vflorenceService2",
+      "name": "vflorenceService2 Service Proxy",
       "version": "1.0",
       "customizationUuid": "9d81c21f-e29c-44f6-b5f6-caa974ee078a",
       "inputs": {},
       "type": "Service Proxy",
       "sourceModelUuid": "2a2ea15f-07c6-4b89-bfca-e8aba39a34d6",
       "sourceModelInvariant": "a7eac2b3-8444-40ee-92e3-b3359b32445c",
-      "sourceModelName": "vmmeService2"
+      "sourceModelName": "vflorenceService2"
     },
     "pprobeservice_proxy 4": {
       "uuid": "a32fee17-5b59-4c34-ba6f-6dd2f1c61fee",
       "sourceModelInvariant": "83b458fd-5dd3-419b-a9e3-7335814a0911",
       "sourceModelName": "pProbeService"
     },
-    "vmmeservice2_proxy 2": {
+    "vflorenceservice2_proxy 2": {
       "uuid": "a32fee17-5b59-4c34-ba6f-6dd2f1c61fee",
       "invariantUuid": "2933b574-d28d-45ea-bf22-4df2907e4a10",
-      "description": "A Proxy for Service vmmeService2",
-      "name": "vmmeService2 Service Proxy",
+      "description": "A Proxy for Service vflorenceService2",
+      "name": "vflorenceService2 Service Proxy",
       "version": "1.0",
       "customizationUuid": "060be63d-5f9c-4fd0-8ef7-830d5e8eca17",
       "inputs": {},
       "type": "Service Proxy",
       "sourceModelUuid": "2a2ea15f-07c6-4b89-bfca-e8aba39a34d6",
       "sourceModelInvariant": "a7eac2b3-8444-40ee-92e3-b3359b32445c",
-      "sourceModelName": "vmmeService2"
+      "sourceModelName": "vflorenceService2"
     }
   },
   "vfModules": {},
index c93191d..a2e25fe 100644 (file)
@@ -3,7 +3,7 @@
     {
       "uuid": "09c476c7-91ae-44b8-a731-04d8d8fa3695",
       "invariantUUID": "11819cb5-0ad7-4c6d-9205-2ac30d09bdc6",
-      "name": "Mobility Networking Svc Mode",
+      "name": "Emanuel Networking Svc Mode",
       "version": "1.0",
       "toscaModelURL": null,
       "category": "service",
index 90ca612..444851e 100644 (file)
@@ -2,20 +2,20 @@
   "service": {
     "uuid": "09c476c7-91ae-44b8-a731-04d8d8fa3695",
     "invariantUuid": "11819cb5-0ad7-4c6d-9205-2ac30d09bdc6",
-    "name": "Mobility Networking Svc Mode",
+    "name": "Emanuel Networking Svc Mode",
     "version": "1.0",
     "toscaModelURL": null,
     "category": "Emanuel",
     "serviceType": null,
     "serviceRole": null,
-    "description": "single generic service model with mobility VLs in it to create any mobility network",
+    "description": "single generic service model with emanuel VLs in it to create any emanuel network",
     "serviceEcompNaming": "false",
     "instantiationType": null,
     "inputs": {}
   },
   "vnfs": {},
   "networks": {},
-  "collectionResource": null,
+  "collectionResources": null,
   "configurations": null,
   "fabricConfigurations": {},
   "serviceProxies": null,
index 3e55655..398fe6c 100644 (file)
@@ -2,13 +2,13 @@
   "service": {
     "uuid": "90004bb4-a416-4b4e-997e-0059973630b9",
     "invariantUuid": "90003f9e-3244-4d8f-a8e0-0e5d7a29eda9",
-    "name": "ADIOD vMX vPE_BV Service 488",
+    "name": "PASQUALE vMX vPE_BV Service 488",
     "version": "1.0",
     "toscaModelURL": null,
     "category": "Network L1-3",
     "serviceType": "",
     "serviceRole": "",
-    "description": "ADIOD vMX vPE based on Juniper 17.2 release. Updated with updated VF for v8.0 of VLM",
+    "description": "PASQUALE vMX vPE based on Juniper 17.2 release. Updated with updated VF for v8.0 of VLM",
     "serviceEcompNaming": "true",
     "instantiationType": "ClientConfig",
     "inputs": {
@@ -21,7 +21,7 @@
   "networks": {
 
   },
-  "collectionResource": {},
+  "collectionResources": {},
   "configurations": {
 
   },
index e3aeca4..982e10d 100644 (file)
@@ -2,13 +2,13 @@
   "service": {
     "uuid": "10004bb4-a416-4b4e-997e-0059973630b9",
     "invariantUuid": "10003f9e-3244-4d8f-a8e0-0e5d7a29eda9",
-    "name": "ADIOD vMX vPE_BV Service 488",
+    "name": "PASQUALE vMX vPE_BV Service 488",
     "version": "1.0",
     "toscaModelURL": null,
     "category": "Network L1-3",
     "serviceType": "",
     "serviceRole": "",
-    "description": "ADIOD vMX vPE based on Juniper 17.2 release. Updated with updated VF for v8.0 of VLM",
+    "description": "PASQUALE vMX vPE based on Juniper 17.2 release. Updated with updated VF for v8.0 of VLM",
     "serviceEcompNaming": "true",
     "instantiationType": "ClientConfig",
     "inputs": {
@@ -21,7 +21,7 @@
   "networks": {
 
   },
-  "collectionResource": {},
+  "collectionResources": {},
   "configurations": {
 
   },
diff --git a/vid-webpack-master/cypress/support/jsonBuilders/mocks/jsons/defect710619/aaiServiceInstancesE2E.json b/vid-webpack-master/cypress/support/jsonBuilders/mocks/jsons/defect710619/aaiServiceInstancesE2E.json
new file mode 100644 (file)
index 0000000..85175b0
--- /dev/null
@@ -0,0 +1 @@
+{"service-instances":[{"serviceInstanceId":"dedd680f-f3bd-46d8-97c7-b6fc28db9317","globalCustomerId":"e433710f-9217-458d-a79d-1c7aff376d89","serviceType":"TYLER SILVIA","serviceInstanceName":"SI_E2E_vCCF_6610SD_SVC","subscriberName":"SILVIA ROBBINS","aaiModelInvariantId":"5c3eb5cb-a3ef-4089-bdbe-3b5ebd20541d","aaiModelVersionId":"afe751ef-2687-4647-8474-aba4d64cc3a3","isPermitted":true}]}
diff --git a/vid-webpack-master/cypress/support/jsonBuilders/mocks/jsons/defect710619/aaiSubDetailsE2E.json b/vid-webpack-master/cypress/support/jsonBuilders/mocks/jsons/defect710619/aaiSubDetailsE2E.json
new file mode 100644 (file)
index 0000000..9a8fc80
--- /dev/null
@@ -0,0 +1,180 @@
+{
+  "global-customer-id": "e433710f-9217-458d-a79d-1c7aff376d89",
+  "subscriber-name": "SILVIA ROBBINS",
+  "subscriber-type": "INFRA",
+  "resource-version": "1494254832007",
+  "service-subscriptions": {
+    "service-subscription": [{
+      "service-type": "LINDSEY",
+      "resource-version": "1506190376301",
+      "service-instances": {
+        "service-instance": [{
+          "service-instance-id": "ec1e72f9-1503-4f91-9a9d-f02e6afe3e64",
+          "service-instance-name": "ap7134_544027_retest_1806",
+          "persona-model-id": null,
+          "persona-model-version": null,
+          "resource-version": "1531404579331",
+          "orchestration-status": "Active",
+          "model-invariant-id": "20384767-da0d-4815-bb5b-8da1fb4f1995",
+          "model-version-id": "4b60252a-bf6c-40df-9db5-98b4c363fdf4"
+        },
+          {
+            "service-instance-id": "e59b07d9-2e59-417d-ad0e-08337a409b7c",
+            "service-instance-name": "ap7134_spnup_7252018",
+            "persona-model-id": null,
+            "persona-model-version": null,
+            "resource-version": "1532529555496",
+            "orchestration-status": "Active",
+            "model-invariant-id": "e0457621-4f61-4b30-beb5-7f27be4dc9c6",
+            "model-version-id": "b504896c-85e6-4c4a-adad-c9aaf49addc1"
+          }, {
+            "service-instance-id": "2468b69a-86b0-4756-a435-d974d01736c9",
+            "service-instance-name": "vson_bb389n_813",
+            "persona-model-id": null,
+            "persona-model-version": null,
+            "resource-version": "1534130966388",
+            "orchestration-status": "Active",
+            "model-invariant-id": "e85bacdf-b8c0-4cdf-b1ba-eb55a9b14027",
+            "model-version-id": "d948e05b-9728-4915-9b4a-6833c3a32144"
+          }, {
+            "service-instance-id": "f14b959a-b1e2-4168-a9a4-0c2e23b5721c",
+            "service-instance-name": "vrar_bb389n_0705",
+            "persona-model-id": null,
+            "persona-model-version": null,
+            "resource-version": "1530734584462",
+            "orchestration-status": "Active",
+            "model-invariant-id": "b66b71d8-a341-4351-a8bf-6346362a9e13",
+            "model-version-id": "6a0f035b-a90e-49cf-b6de-12d7540f51ae"
+          }, {
+            "service-instance-id": "9853dcaa-fb5e-48e6-866f-682a9da8f040",
+            "service-instance-name": "olson5bTFNET_CORE_Svc",
+            "persona-model-id": null,
+            "persona-model-version": null,
+            "resource-version": "1547998014228",
+            "orchestration-status": "Active",
+            "model-invariant-id": "27a63d80-76b7-438d-86fb-29ad806bff2b",
+            "model-version-id": "bb3d8047-05d3-4ea0-a243-20038e53675c"
+          }, {
+            "service-instance-id": "bedd3b9d-b274-4a3b-8cb6-f17b98904720",
+            "service-instance-name": "vson_ap7134_vnf",
+            "persona-model-id": null,
+            "persona-model-version": null,
+            "resource-version": "1531775345108",
+            "orchestration-status": "Active",
+            "model-invariant-id": "28a020b2-1ca4-45b3-aff9-9d4c21b2ff63",
+            "model-version-id": "0389f916-f78b-4707-b766-7efb7ff1a499"
+          }, {
+            "service-instance-id": "348ab22e-a8f7-4164-9cf2-e0a612c0b2bb",
+            "service-instance-name": "vson_72618_bb389n",
+            "persona-model-id": null,
+            "persona-model-version": null,
+            "resource-version": "1532547746080",
+            "orchestration-status": "Active",
+            "model-invariant-id": "e0457621-4f61-4b30-beb5-7f27be4dc9c6",
+            "model-version-id": "2846371c-baf0-469e-8384-00473a4f8ddf"
+          }, {
+            "service-instance-id": "74b3aa0c-39b3-4b71-ade9-2a8c3c8dcd22",
+            "service-instance-name": "vnf_vson_spnup_ap7134",
+            "persona-model-id": null,
+            "persona-model-version": null,
+            "resource-version": "1531837750994",
+            "orchestration-status": "Active",
+            "model-invariant-id": "28a020b2-1ca4-45b3-aff9-9d4c21b2ff63",
+            "model-version-id": "0389f916-f78b-4707-b766-7efb7ff1a499"
+          }, {
+            "service-instance-id": "de5127f9-3b0d-4ff6-a51d-01b4c8855848",
+            "service-instance-name": "olson5aTFNET_CORE_Svc",
+            "persona-model-id": null,
+            "persona-model-version": null,
+            "resource-version": "1500478578807",
+            "orchestration-status": "Active",
+            "model-invariant-id": "137fb14d-ad74-4295-9d39-400b920f8727",
+            "model-version-id": "c0b2f779-9c5d-40dd-a30d-4b6d7599b52c"
+          }, {
+            "service-instance-id": "5238bcdf-9a64-4b9e-a4c5-fca0bcc7c466",
+            "service-instance-name": "spinup_ap7134_822018",
+            "persona-model-id": null,
+            "persona-model-version": null,
+            "resource-version": "1533231684103",
+            "orchestration-status": "Active",
+            "model-invariant-id": "4b71a28a-7955-4d64-88cf-2e5426577c73",
+            "model-version-id": "087cec64-c2d3-402c-b645-a3c322255906"
+          }, {
+            "service-instance-id": "0e970d97-f5a5-4957-8c12-db63d9286fd1",
+            "service-instance-name": "vSON_ap7134_vnf_spnup",
+            "persona-model-id": null,
+            "persona-model-version": null,
+            "resource-version": "1531841030174",
+            "orchestration-status": "Active",
+            "model-invariant-id": "28a020b2-1ca4-45b3-aff9-9d4c21b2ff63",
+            "model-version-id": "0389f916-f78b-4707-b766-7efb7ff1a499"
+          }, {
+            "service-instance-id": "e166a16b-b374-4bbd-bfb7-47edadc4a00a",
+            "service-instance-name": "ap7134_spnup_822018",
+            "persona-model-id": null,
+            "persona-model-version": null,
+            "resource-version": "1533223911561",
+            "orchestration-status": "Active",
+            "model-invariant-id": "4b71a28a-7955-4d64-88cf-2e5426577c73",
+            "model-version-id": "087cec64-c2d3-402c-b645-a3c322255906"
+          }, {
+            "service-instance-id": "cbe1a45b-f7cb-4c5c-b81e-0d609895a290",
+            "service-instance-name": "vson_ap7134_Network_71118",
+            "persona-model-id": null,
+            "persona-model-version": null,
+            "resource-version": "1531319680581",
+            "orchestration-status": "Active",
+            "model-invariant-id": "62acd6dc-cfa5-451f-b9ff-47319ee5fc92",
+            "model-version-id": "51c91dfc-479d-4ac0-aa07-44bbc4425b73"
+          }
+        ]
+      },
+      "is-permitted": true
+    }, {
+      "service-type": "TSBC",
+      "resource-version": "1494254819433",
+      "service-instances": {
+        "service-instance": [
+          {
+            "service-instance-id": "dedd680f-f3bd-46d8-97c7-b6fc28db9317",
+            "service-instance-name": "SI_E2E_vCCF_6610SD_SVC",
+            "persona-model-id": null,
+            "persona-model-version": null,
+            "resource-version": "1548785479902",
+            "orchestration-status": "Active",
+            "model-invariant-id": "5c3eb5cb-a3ef-4089-bdbe-3b5ebd20541d",
+            "model-version-id": "afe751ef-2687-4647-8474-aba4d64cc3a3"
+          }
+        ]
+      },
+      "is-permitted": true
+    }, {
+      "service-type": "DARREN MCGEE",
+      "resource-version": "1520621552263",
+      "service-instances": {
+        "service-instance": []
+      },
+      "is-permitted": true
+    }, {
+      "service-type": "DARREN-MCGEE",
+      "resource-version": "1494254868313",
+      "service-instances": null,
+      "is-permitted": false
+    }, {
+      "service-type": "BVOIP",
+      "resource-version": "1495115903610",
+      "service-instances": {
+        "service-instance": []
+      },
+      "is-permitted": true
+    }, {
+      "service-type": "TYLER SILVIA",
+      "resource-version": "1537366571571",
+      "service-instances": {
+        "service-instance": []
+      },
+      "is-permitted": true
+    }
+    ]
+  }
+}
diff --git a/vid-webpack-master/cypress/support/jsonBuilders/mocks/jsons/defect710619/aaiSubViewEditForServiceWithSomeVFModuleE2E.json b/vid-webpack-master/cypress/support/jsonBuilders/mocks/jsons/defect710619/aaiSubViewEditForServiceWithSomeVFModuleE2E.json
new file mode 100644 (file)
index 0000000..2c427fd
--- /dev/null
@@ -0,0 +1,310 @@
+{
+  "inventory-response-item": [{
+    "model-name": "E2E_vCCF_6610SD _SVC",
+    "service-instance": {
+      "service-instance-id": "dedd680f-f3bd-46d8-97c7-b6fc28db9317",
+      "service-instance-name": "SI_E2E_vCCF_6610SD_SVC"
+    },
+    "extra-properties": {},
+    "inventory-response-items": {
+      "inventory-response-item": [{
+        "model-name": "E2E_vCCF_6610SD _VSP",
+        "generic-vnf": {
+          "vnf-id": "1d45e992-e282-4ba5-b17a-9ca6562169e3",
+          "vnf-name": "dpa2bccfx5992v",
+          "vnf-type": "E2E_vCCF_6610SD _SVC/E2E_vCCF_6610SD _VSP 0",
+          "service-id": "e433710f-9217-458d-a79d-1c7aff376d89",
+          "prov-status": "PREPROV",
+          "equipment-role": "vCCF",
+          "orchestration-status": "Active",
+          "in-maint": false,
+          "is-closed-loop-disabled": false,
+          "resource-version": "1551298829859",
+          "model-invariant-id": "57437138-b11e-47b1-aaca-4578251ee173",
+          "model-version-id": "229ac49e-61de-43d9-ab1a-9e6951226efe",
+          "model-customization-id": "b80c20bb-35b5-4e16-9819-4d09692e9435",
+          "nf-type": "CDR-GENERATOR",
+          "nf-function": "VUSP-VCCF",
+          "nf-role": "vCCF",
+          "nf-naming-code": "ccfx",
+          "selflink": "restconf/config/GENERIC-RESOURCE-API:services/service/dedd680f-f3bd-46d8-97c7-b6fc28db9317/service-data/vnfs/vnf/1d45e992-e282-4ba5-b17a-9ca6562169e3/vnf-data/vnf-topology/"
+        },
+        "extra-properties": {},
+        "inventory-response-items": {
+          "inventory-response-item": [{
+            "volume-group": {
+              "volume-group-id": "2ca48b79-062a-4471-a731-4fe15c2d961d",
+              "volume-group-name": "dpa2bccfx5992_vol",
+              "heat-stack-id": "dpa2bccfx5992_vol/43e17f84-0d50-4f99-9f9d-7c27fc1b39d8",
+              "vnf-type": "E2E_vCCF_6610SD _SVC/E2E_vCCF_6610SD _VSP 0",
+              "orchestration-status": "Active",
+              "model-customization-id": "ed87e68b-1b32-4aae-8aea-d2725a5e5602",
+              "vf-module-model-customization-id": "ed87e68b-1b32-4aae-8aea-d2725a5e5602",
+              "resource-version": "1548831528407"
+            },
+            "extra-properties": {}
+          }, {
+            "model-name": "E2eVccf6610sdVsp..base_vIECCF..module-0",
+            "vf-module": {
+              "vf-module-id": "f1688a69-2792-4f1f-bc95-4864f4742e7b",
+              "vf-module-name": "dpa2bccfx5992v_base_module",
+              "orchestration-status": "Assigned",
+              "is-base-vf-module": true,
+              "automated-assignment": false,
+              "resource-version": "1551299087384",
+              "model-invariant-id": "4453a55f-13fa-44eb-a158-eb36e7803787",
+              "model-version-id": "ce92010b-3520-49c7-b37f-9b10ce5a8009",
+              "model-customization-id": "ed87e68b-1b32-4aae-8aea-d2725a5e5602",
+              "module-index": 0,
+              "selflink": "restconf/config/GENERIC-RESOURCE-API:services/service/dedd680f-f3bd-46d8-97c7-b6fc28db9317/service-data/vnfs/vnf/1d45e992-e282-4ba5-b17a-9ca6562169e3/vnf-data/vf-modules/vf-module/f1688a69-2792-4f1f-bc95-4864f4742e7b/vf-module-data/vf-module-topology/"
+            },
+            "extra-properties": {},
+            "inventory-response-items": {
+              "inventory-response-item": [{
+                "volume-group": {
+                  "volume-group-id": "2ca48b79-062a-4471-a731-4fe15c2d961d",
+                  "volume-group-name": "dpa2bccfx5992_vol",
+                  "heat-stack-id": "dpa2bccfx5992_vol/43e17f84-0d50-4f99-9f9d-7c27fc1b39d8",
+                  "vnf-type": "E2E_vCCF_6610SD _SVC/E2E_vCCF_6610SD _VSP 0",
+                  "orchestration-status": "Active",
+                  "model-customization-id": "ed87e68b-1b32-4aae-8aea-d2725a5e5602",
+                  "vf-module-model-customization-id": "ed87e68b-1b32-4aae-8aea-d2725a5e5602",
+                  "resource-version": "1548831528407"
+                },
+                "extra-properties": {}
+              }, {
+                "vserver": {
+                  "vserver-id": "ca2a6247-8ed7-4b6e-ae60-1979c24db55d",
+                  "vserver-name": "dpa2bccfx5992vm011",
+                  "vserver-name2": "dpa2bccfx5992vm011",
+                  "vserver-selflink": "https://comp.onap.org:8774/v2/b60da4f71c1d4b35b8113d4eca6deaa1/servers/ca2a6247-8ed7-4b6e-ae60-1979c24db55d",
+                  "in-maint": false,
+                  "is-closed-loop-disabled": false,
+                  "resource-version": "1550896212439"
+                },
+                "extra-properties": {}
+              }, {
+                "vserver": {
+                  "vserver-id": "6354b5e7-e5eb-48b1-b770-8fb9de5ab21f",
+                  "vserver-name": "dpa2bccfx5992vm005",
+                  "vserver-name2": "dpa2bccfx5992vm005",
+                  "vserver-selflink": "https://comp.onap.org:8774/v2/b60da4f71c1d4b35b8113d4eca6deaa1/servers/6354b5e7-e5eb-48b1-b770-8fb9de5ab21f",
+                  "in-maint": false,
+                  "is-closed-loop-disabled": false,
+                  "resource-version": "1550896353025"
+                },
+                "extra-properties": {}
+              }, {
+                "vserver": {
+                  "vserver-id": "dafb62ad-36cf-4aa1-8286-337dc7232c05",
+                  "vserver-name": "dpa2bccfx5992vm010",
+                  "vserver-name2": "dpa2bccfx5992vm010",
+                  "vserver-selflink": "https://comp.onap.org:8774/v2/b60da4f71c1d4b35b8113d4eca6deaa1/servers/dafb62ad-36cf-4aa1-8286-337dc7232c05",
+                  "in-maint": false,
+                  "is-closed-loop-disabled": false,
+                  "resource-version": "1550896347787"
+                },
+                "extra-properties": {}
+              }, {
+                "vserver": {
+                  "vserver-id": "7c6e8a86-97d4-47d0-bbec-9046925f0a0c",
+                  "vserver-name": "dpa2bccfx5992vm002",
+                  "vserver-name2": "dpa2bccfx5992vm002",
+                  "vserver-selflink": "https://comp.onap.org:8774/v2/b60da4f71c1d4b35b8113d4eca6deaa1/servers/7c6e8a86-97d4-47d0-bbec-9046925f0a0c",
+                  "in-maint": false,
+                  "is-closed-loop-disabled": false,
+                  "resource-version": "1550896385541"
+                },
+                "extra-properties": {}
+              }, {
+                "vserver": {
+                  "vserver-id": "25d1e26b-fd12-4db7-85cf-900cef7af347",
+                  "vserver-name": "dpa2bccfx5992vm003",
+                  "vserver-name2": "dpa2bccfx5992vm003",
+                  "vserver-selflink": "https://comp.onap.org:8774/v2/b60da4f71c1d4b35b8113d4eca6deaa1/servers/25d1e26b-fd12-4db7-85cf-900cef7af347",
+                  "in-maint": false,
+                  "is-closed-loop-disabled": false,
+                  "resource-version": "1550896421775"
+                },
+                "extra-properties": {}
+              }, {
+                "vserver": {
+                  "vserver-id": "c6d36d19-3a31-46a1-98e7-e173807e4e57",
+                  "vserver-name": "dpa2bccfx5992vm004",
+                  "vserver-name2": "dpa2bccfx5992vm004",
+                  "vserver-selflink": "https://comp.onap.org:8774/v2/b60da4f71c1d4b35b8113d4eca6deaa1/servers/c6d36d19-3a31-46a1-98e7-e173807e4e57",
+                  "in-maint": false,
+                  "is-closed-loop-disabled": false,
+                  "resource-version": "1550896345784"
+                },
+                "extra-properties": {}
+              }, {
+                "vserver": {
+                  "vserver-id": "957e5f81-5b90-4a31-a3ff-0f34fdd9e487",
+                  "vserver-name": "dpa2bccfx5992vm006",
+                  "vserver-name2": "dpa2bccfx5992vm006",
+                  "vserver-selflink": "https://comp.onap.org:8774/v2/b60da4f71c1d4b35b8113d4eca6deaa1/servers/957e5f81-5b90-4a31-a3ff-0f34fdd9e487",
+                  "in-maint": false,
+                  "is-closed-loop-disabled": false,
+                  "resource-version": "1550896285901"
+                },
+                "extra-properties": {}
+              }, {
+                "vserver": {
+                  "vserver-id": "97f82bd5-1522-4c9d-8061-e362a3cbfdb8",
+                  "vserver-name": "dpa2bccfx5992vm008",
+                  "vserver-name2": "dpa2bccfx5992vm008",
+                  "vserver-selflink": "https://comp.onap.org:8774/v2/b60da4f71c1d4b35b8113d4eca6deaa1/servers/97f82bd5-1522-4c9d-8061-e362a3cbfdb8",
+                  "in-maint": false,
+                  "is-closed-loop-disabled": false,
+                  "resource-version": "1550896282486"
+                },
+                "extra-properties": {}
+              }, {
+                "vserver": {
+                  "vserver-id": "fd2f0db6-fcc5-46a1-8fd6-d9c4233f0e10",
+                  "vserver-name": "dpa2bccfx5992vm001",
+                  "vserver-name2": "dpa2bccfx5992vm001",
+                  "vserver-selflink": "https://comp.onap.org:8774/v2/b60da4f71c1d4b35b8113d4eca6deaa1/servers/fd2f0db6-fcc5-46a1-8fd6-d9c4233f0e10",
+                  "in-maint": false,
+                  "is-closed-loop-disabled": false,
+                  "resource-version": "1550896275425"
+                },
+                "extra-properties": {}
+              }, {
+                "vserver": {
+                  "vserver-id": "75bac4b9-dd19-40b1-848f-d3ce5ce109da",
+                  "vserver-name": "dpa2bccfx5992vm007",
+                  "vserver-name2": "dpa2bccfx5992vm007",
+                  "vserver-selflink": "https://comp.onap.org:8774/v2/b60da4f71c1d4b35b8113d4eca6deaa1/servers/75bac4b9-dd19-40b1-848f-d3ce5ce109da",
+                  "in-maint": false,
+                  "is-closed-loop-disabled": false,
+                  "resource-version": "1550896218468"
+                },
+                "extra-properties": {}
+              }, {
+                "vserver": {
+                  "vserver-id": "f255dc26-7ffb-40a1-a37a-02f858ebbd52",
+                  "vserver-name": "dpa2bccfx5992vm009",
+                  "vserver-name2": "dpa2bccfx5992vm009",
+                  "vserver-selflink": "https://comp.onap.org:8774/v2/b60da4f71c1d4b35b8113d4eca6deaa1/servers/f255dc26-7ffb-40a1-a37a-02f858ebbd52",
+                  "in-maint": false,
+                  "is-closed-loop-disabled": false,
+                  "resource-version": "1550896341966"
+                },
+                "extra-properties": {}
+              }, {
+                "l3-network": {
+                  "network-id": "b90ea5aa-5079-470b-8e79-3e2dc1a4e502",
+                  "network-name": "Control_Loop-23804-T-01-dpa2b_CORE-VIF-TSIG0_net_0",
+                  "network-type": "CONTRAIL30_BASIC",
+                  "network-role": "Control_Loop-23804-T-01-dpa2b_CORE-VIF-TSIG0",
+                  "network-technology": "contrail",
+                  "neutron-network-id": "4e996ec6-2c17-4881-b8c4-9225ec64678b",
+                  "is-bound-to-vpn": true,
+                  "service-id": "e433710f-9217-458d-a79d-1c7aff376d89",
+                  "network-role-instance": 0,
+                  "resource-version": "1547969639781",
+                  "orchestration-status": "Created",
+                  "heat-stack-id": "Control_Loop-23804-T-01-dpa2b_CORE-VIF-TSIG0_net_0/9e260519-dde7-4b9a-9692-cef542089ed5",
+                  "contrail-network-fqdn": "default-domain:Closed_Loop-23804-T-01-dpa2b:Control_Loop-23804-T-01-dpa2b_CORE-VIF-TSIG0_net_0",
+                  "physical-network-name": "Not Aplicable",
+                  "is-provider-network": false,
+                  "is-shared-network": false,
+                  "is-external-network": false,
+                  "selflink": "restconf/config/GENERIC-RESOURCE-API:services/service/cd48e066-08f5-4134-9c83-34615d6bba5c/service-data/networks/network/b90ea5aa-5079-470b-8e79-3e2dc1a4e502/network-data/network-topology/"
+                },
+                "extra-properties": {},
+                "inventory-response-items": {
+                  "inventory-response-item": [{
+                    "subnet": {
+                      "subnet-id": "2eaceba4-58ae-4abc-b6a5-bb7f2248699d",
+                      "subnet-name": "Control_Loop-23804-T-01-dpa2b_CORE-VIF-TSIG0_net_0_IPv6_Subnet1",
+                      "neutron-subnet-id": "d342e7c9-62af-4e88-939d-65b032be8078",
+                      "gateway-address": "2001:1890:1001:22D5:0:0:0:1",
+                      "network-start-address": "2001:1890:1001:22D5::",
+                      "cidr-mask": "64",
+                      "ip-version": "6",
+                      "orchestration-status": "Created",
+                      "dhcp-enabled": true,
+                      "dhcp-start": "2001:1890:1001:22D5:ffff:ffff:ffff:0",
+                      "dhcp-end": "2001:1890:1001:22D5:ffff:ffff:ffff:fffe",
+                      "ip-assignment-direction": "true",
+                      "resource-version": "1517256523275"
+                    },
+                    "extra-properties": {}
+                  }, {
+                    "subnet": {
+                      "subnet-id": "124278b1-b77b-4bb3-aeca-83d1deb58409",
+                      "subnet-name": "Control_Loop-23804-T-01-dpa2b_CORE-VIF-TSIG0_net_0_IPv4_Subnet1",
+                      "neutron-subnet-id": "9edb7006-7936-4e9d-84e0-55eb04e6a9b1",
+                      "gateway-address": "10.0.0.10",
+                      "network-start-address": "10.0.0.10",
+                      "cidr-mask": "25",
+                      "ip-version": "4",
+                      "orchestration-status": "Created",
+                      "dhcp-enabled": true,
+                      "dhcp-start": "10.0.0.10",
+                      "dhcp-end": "10.0.0.10",
+                      "ip-assignment-direction": "true",
+                      "resource-version": "1517256523267"
+                    },
+                    "extra-properties": {}
+                  }
+                  ]
+                }
+              }, {
+                "l3-network": {
+                  "network-id": "16f9455e-05d9-42b4-a40c-f2a900cebbcf",
+                  "network-name": "Control_Loop-23804-T-01-dpa2b_CORE-NSD-TOAM0_net_0",
+                  "network-type": "CONTRAIL30_BASIC",
+                  "network-role": "Control_Loop-23804-T-01-dpa2b_CORE-NSD-TOAM0",
+                  "network-technology": "contrail",
+                  "neutron-network-id": "26b26c1e-7903-478c-ad3d-9e27ef194456",
+                  "is-bound-to-vpn": true,
+                  "service-id": "e433710f-9217-458d-a79d-1c7aff376d89",
+                  "network-role-instance": 0,
+                  "resource-version": "1547969631952",
+                  "orchestration-status": "Created",
+                  "heat-stack-id": "Control_Loop-23804-T-01-dpa2b_CORE-NSD-TOAM0_net_0/f161b66f-cb65-4e97-a386-1f2e6758cbed",
+                  "contrail-network-fqdn": "default-domain:Closed_Loop-23804-T-01-dpa2b:Control_Loop-23804-T-01-dpa2b_CORE-NSD-TOAM0_net_0",
+                  "physical-network-name": "Not Aplicable",
+                  "is-provider-network": false,
+                  "is-shared-network": false,
+                  "is-external-network": false,
+                  "selflink": "restconf/config/GENERIC-RESOURCE-API:services/service/cd48e066-08f5-4134-9c83-34615d6bba5c/service-data/networks/network/16f9455e-05d9-42b4-a40c-f2a900cebbcf/network-data/network-topology/"
+                },
+                "extra-properties": {},
+                "inventory-response-items": {
+                  "inventory-response-item": [{
+                    "subnet": {
+                      "subnet-id": "b09c8d09-a873-446e-ac12-ee55c15d4915",
+                      "subnet-name": "Control_Loop-23804-T-01-dpa2b_CORE-NSD-TOAM0_net_0_IPv4_Subnet1",
+                      "neutron-subnet-id": "3dfb5920-f438-473b-9273-2c10c57ca7e5",
+                      "gateway-address": "10.0.0.10",
+                      "network-start-address": "10.0.0.10",
+                      "cidr-mask": "24",
+                      "ip-version": "4",
+                      "orchestration-status": "Created",
+                      "dhcp-enabled": true,
+                      "dhcp-start": "10.0.0.10",
+                      "dhcp-end": "10.0.0.10",
+                      "ip-assignment-direction": "true",
+                      "resource-version": "1517256872855"
+                    },
+                    "extra-properties": {}
+                  }
+                  ]
+                }
+              }
+              ]
+            }
+          }
+          ]
+        }
+      }
+      ]
+    }
+  }
+  ]
+}
diff --git a/vid-webpack-master/cypress/support/jsonBuilders/mocks/jsons/defect710619/expectedResumeWithVGResults.json b/vid-webpack-master/cypress/support/jsonBuilders/mocks/jsons/defect710619/expectedResumeWithVGResults.json
new file mode 100644 (file)
index 0000000..53cb341
--- /dev/null
@@ -0,0 +1,67 @@
+{
+  "requestDetails": {
+    "requestInfo": {
+      "instanceName": "dpa2bccfx5992v_base_module",
+      "source": "VID",
+      "suppressRollback": false,
+      "requestorId": "us16807000"
+    },
+    "modelInfo": {
+      "modelType": "vfModule",
+      "modelInvariantId": "4453a55f-13fa-44eb-a158-eb36e7803787",
+      "modelVersionId": "ce92010b-3520-49c7-b37f-9b10ce5a8009",
+      "modelName": "E2eVccf6610sdVsp..base_vIECCF..module-0",
+      "modelVersion": "1",
+      "modelCustomizationId": "ed87e68b-1b32-4aae-8aea-d2725a5e5602",
+      "modelCustomizationName": "E2eVccf6610sdVsp..base_vIECCF..module-0"
+    },
+    "requestParameters": {
+      "userParams": [],
+      "testApi": "VNF_API",
+      "usePreload": false
+    },
+    "cloudConfiguration": {
+      "lcpCloudRegionId": "hvf6",
+      "tenantId": "bae71557c5bb4d5aac6743a4e5f1d054"
+    },
+    "relatedInstanceList": [{
+      "relatedInstance": {
+        "instanceId": "dedd680f-f3bd-46d8-97c7-b6fc28db9317",
+        "modelInfo": {
+          "modelType": "service",
+          "modelName": "E2E_vCCF_6610SD _SVC",
+          "modelInvariantId": "5c3eb5cb-a3ef-4089-bdbe-3b5ebd20541d",
+          "modelVersion": "1.0",
+          "modelVersionId": "afe751ef-2687-4647-8474-aba4d64cc3a3"
+        }
+      }
+    }, {
+      "relatedInstance": {
+        "instanceId": "1d45e992-e282-4ba5-b17a-9ca6562169e3",
+        "modelInfo": {
+          "modelType": "vnf",
+          "modelName": "E2E_vCCF_6610SD _VSP",
+          "modelInvariantId": "57437138-b11e-47b1-aaca-4578251ee173",
+          "modelVersion": "1.0",
+          "modelVersionId": "229ac49e-61de-43d9-ab1a-9e6951226efe",
+          "modelCustomizationId": "b80c20bb-35b5-4e16-9819-4d09692e9435",
+          "modelCustomizationName": "E2E_vCCF_6610SD _VSP 0"
+        }
+      }
+    }, {
+      "relatedInstance": {
+        "instanceId": "2ca48b79-062a-4471-a731-4fe15c2d961d",
+        "modelInfo": {
+          "modelType": "volumeGroup",
+          "modelName": "E2eVccf6610sdVsp..base_vIECCF..module-0",
+          "modelInvariantId": "4453a55f-13fa-44eb-a158-eb36e7803787",
+          "modelVersion": "1",
+          "modelVersionId": "ce92010b-3520-49c7-b37f-9b10ce5a8009",
+          "modelCustomizationId": "ed87e68b-1b32-4aae-8aea-d2725a5e5602",
+          "modelCustomizationName": "E2eVccf6610sdVsp..base_vIECCF..module-0"
+        }
+      }
+    }
+    ]
+  }
+}
diff --git a/vid-webpack-master/cypress/support/jsonBuilders/mocks/jsons/defect710619/serviceE2E.json b/vid-webpack-master/cypress/support/jsonBuilders/mocks/jsons/defect710619/serviceE2E.json
new file mode 100644 (file)
index 0000000..ea3fe00
--- /dev/null
@@ -0,0 +1,144 @@
+{
+  "service": {
+    "uuid": "afe751ef-2687-4647-8474-aba4d64cc3a3",
+    "invariantUuid": "5c3eb5cb-a3ef-4089-bdbe-3b5ebd20541d",
+    "name": "E2E_vCCF_6610SD _SVC",
+    "version": "1.0",
+    "toscaModelURL": null,
+    "category": "Network L4+",
+    "serviceType": "",
+    "serviceRole": "",
+    "description": "vCCF for Soft Delete in DPA2b CL tenant",
+    "serviceEcompNaming": "true",
+    "instantiationType": "A-La-Carte",
+    "inputs": {},
+    "vidNotions": {
+      "instantiationUI": "legacy",
+      "modelCategory": "other",
+      "viewEditUI": "legacy"
+    }
+  },
+  "vnfs": {
+    "E2E_vCCF_6610SD _VSP 0": {
+      "uuid": "229ac49e-61de-43d9-ab1a-9e6951226efe",
+      "invariantUuid": "57437138-b11e-47b1-aaca-4578251ee173",
+      "description": "vCCF for SoftDelete in DPA2b CL tenant",
+      "name": "E2E_vCCF_6610SD _VSP",
+      "version": "1.0",
+      "customizationUuid": "b80c20bb-35b5-4e16-9819-4d09692e9435",
+      "inputs": {},
+      "commands": {},
+      "properties": {
+        "iox_flavor_name": "nd.c4r4d50",
+        "nf_naming": "{ecomp_generated_naming=true}",
+        "multi_stage_design": "false",
+        "nf_function": "VUSP-VCCF",
+        "nf_naming_code": "ccfx",
+        "app_volume_size_0": "130.0",
+        "ieccf_debug": "no",
+        "availability_zone_max_count": "1",
+        "app_flavor_name": "nd.c12r4d50",
+        "plt_pair_uuid": "573f433e25ba8",
+        "ecomp_generated_naming": "true",
+        "int_internal_subnet_cidr": "169.30.12.0/24",
+        "nf_type": "CDR-GENERATOR",
+        "plt_servicedata2_volume_size_0": "150.0",
+        "plt_servicedata1_volume_size_0": "70.0",
+        "iox_image_name": "USP_IECF-IO_30.3.3-mcas4.4.6.qcow2",
+        "nf_role": "vCCF",
+        "iox_pair_uuid": "573f433e284b4",
+        "plt_image_name": "USP_IECF-PILOT_30.3.3-mcas4.4.6.qcow2",
+        "app_image_name": "USP_IECF-APP_30.3.3-mcas4.4.6.qcow2",
+        "plt_flavor_name": "nd.c2r4d50"
+      },
+      "type": "VF",
+      "modelCustomizationName": "E2E_vCCF_6610SD _VSP 0",
+      "vfModules": {
+        "e2e_vccf_6610sd_vsp0..E2eVccf6610sdVsp..base_vIECCF..module-0": {
+          "uuid": "ce92010b-3520-49c7-b37f-9b10ce5a8009",
+          "invariantUuid": "4453a55f-13fa-44eb-a158-eb36e7803787",
+          "customizationUuid": "ed87e68b-1b32-4aae-8aea-d2725a5e5602",
+          "description": null,
+          "name": "E2eVccf6610sdVsp..base_vIECCF..module-0",
+          "version": "1",
+          "modelCustomizationName": "E2eVccf6610sdVsp..base_vIECCF..module-0",
+          "properties": {
+            "minCountInstances": 1,
+            "maxCountInstances": 1,
+            "initialCount": 1,
+            "vfModuleLabel": "base_vIECCF",
+            "baseModule": true
+          },
+          "inputs": {},
+          "volumeGroupAllowed": true
+        }
+      },
+      "volumeGroups": {
+        "e2e_vccf_6610sd_vsp0..E2eVccf6610sdVsp..base_vIECCF..module-0": {
+          "uuid": "ce92010b-3520-49c7-b37f-9b10ce5a8009",
+          "invariantUuid": "4453a55f-13fa-44eb-a158-eb36e7803787",
+          "customizationUuid": "ed87e68b-1b32-4aae-8aea-d2725a5e5602",
+          "description": null,
+          "name": "E2eVccf6610sdVsp..base_vIECCF..module-0",
+          "version": "1",
+          "modelCustomizationName": "E2eVccf6610sdVsp..base_vIECCF..module-0",
+          "properties": {
+            "minCountInstances": 1,
+            "maxCountInstances": 1,
+            "initialCount": 1,
+            "vfModuleLabel": "base_vIECCF",
+            "baseModule": true
+          },
+          "inputs": {}
+        }
+      },
+      "vfcInstanceGroups": {}
+    }
+  },
+  "networks": {},
+  "collectionResources": {},
+  "configurations": {},
+  "fabricConfigurations": {},
+  "serviceProxies": {},
+  "vfModules": {
+    "e2e_vccf_6610sd_vsp0..E2eVccf6610sdVsp..base_vIECCF..module-0": {
+      "uuid": "ce92010b-3520-49c7-b37f-9b10ce5a8009",
+      "invariantUuid": "4453a55f-13fa-44eb-a158-eb36e7803787",
+      "customizationUuid": "ed87e68b-1b32-4aae-8aea-d2725a5e5602",
+      "description": null,
+      "name": "E2eVccf6610sdVsp..base_vIECCF..module-0",
+      "version": "1",
+      "modelCustomizationName": "E2eVccf6610sdVsp..base_vIECCF..module-0",
+      "properties": {
+        "minCountInstances": 1,
+        "maxCountInstances": 1,
+        "initialCount": 1,
+        "vfModuleLabel": "base_vIECCF",
+        "baseModule": true
+      },
+      "inputs": {},
+      "volumeGroupAllowed": true
+    }
+  },
+  "volumeGroups": {
+    "e2e_vccf_6610sd_vsp0..E2eVccf6610sdVsp..base_vIECCF..module-0": {
+      "uuid": "ce92010b-3520-49c7-b37f-9b10ce5a8009",
+      "invariantUuid": "4453a55f-13fa-44eb-a158-eb36e7803787",
+      "customizationUuid": "ed87e68b-1b32-4aae-8aea-d2725a5e5602",
+      "description": null,
+      "name": "E2eVccf6610sdVsp..base_vIECCF..module-0",
+      "version": "1",
+      "modelCustomizationName": "E2eVccf6610sdVsp..base_vIECCF..module-0",
+      "properties": {
+        "minCountInstances": 1,
+        "maxCountInstances": 1,
+        "initialCount": 1,
+        "vfModuleLabel": "base_vIECCF",
+        "baseModule": true
+      },
+      "inputs": {}
+    }
+  },
+  "pnfs": {},
+  "vnfGroups": {}
+}
index 8e91f7f..6d984ba 100644 (file)
           "description": "",
           "serviceEcompNaming": "true",
           "instantiationType": "Macro",
+          "vidNotions": {
+            "instantiationType": "Macro"
+          },
           "inputs": {
-            "2017488_adiodvpe0_ASN": {
+            "2017488_pasqualevpe0_ASN": {
               "type": "string",
               "description": "AV/PE",
               "entry_schema": null,
           }
         },
         "vnfs": {
-          "2017-388_ADIOD-vPE 1": {
+          "2017-388_PASQUALE-vPE 1": {
             "uuid": "0903e1c0-8e03-4936-b5c2-260653b96413",
             "invariantUuid": "00beb8f9-6d39-452f-816d-c709b9cbb87d",
-            "description": "Name ADIOD vPE Description The provider edge function for the ADIOD service supported by the Junipers VMX product Category Router Vendor Juniper Vendor Release Code 17.2 Owners Mary Fragale. Updated 9-25 to use v8.0 of the Juniper Valid 2 VLM",
-            "name": "2017-388_ADIOD-vPE",
+            "description": "Name PASQUALE vPE Description The provider edge function for the PASQUALE service supported by the Junipers VMX product Category Router Vendor Juniper Vendor Release Code 17.2 Owners Mary Fragale. Updated 9-25 to use v8.0 of the Juniper Valid 2 VLM",
+            "name": "2017-388_PASQUALE-vPE",
             "version": "1.0",
             "customizationUuid": "280dec31-f16d-488b-9668-4aae55d6648a",
             "inputs": {},
@@ -43,7 +46,7 @@
               "max_instances" : 10,
               "min_instances"  : 1,
               "vmxvre_retype": "RE-VMX",
-              "vnf_config_template_version": "get_input:2017488_adiodvpe0_vnf_config_template_version",
+              "vnf_config_template_version": "get_input:2017488_pasqualevpe0_vnf_config_template_version",
               "sriov44_net_id": "48d399b3-11ee-48a8-94d2-f0ea94d6be8d",
               "int_ctl_net_id": "2f323477-6936-4d01-ac53-d849430281d9",
               "vmxvpfe_sriov41_0_port_mac": "00:11:22:EF:AC:DF",
@@ -88,7 +91,7 @@
               "vmxvpfe_sriov43_0_port_unknownmulticastallow": "true",
               "vmxvre_int_ctl_ip_0": "10.0.0.10",
               "ecomp_generated_naming": "false",
-              "AIC_CLLI": "get_input:2017488_adiodvpe0_AIC_CLLI",
+              "AIC_CLLI": "get_input:2017488_pasqualevpe0_AIC_CLLI",
               "vnf_name": "mtnj309me6vre",
               "vmxvpfe_sriov41_0_port_unknownunicastallow": "true",
               "vmxvre_volume_type_1": "HITACHI",
               "vmxvre_volume_type_0": "HITACHI",
               "vmxvpfe_volume_type_0": "HITACHI",
               "vmxvpfe_sriov43_0_port_broadcastallow": "true",
-              "bandwidth_units": "get_input:adiodvpe0_bandwidth_units",
+              "bandwidth_units": "get_input:pasqualevpe0_bandwidth_units",
               "vnf_id": "123",
               "vmxvre_oam_prefix": "24",
               "availability_zone_0": "mtpocfo-kvm-az01",
-              "ASN": "get_input:2017488_adiodvpe0_ASN",
+              "ASN": "get_input:2017488_pasqualevpe0_ASN",
               "vmxvre_chassis_i2cid": "161",
               "vmxvpfe_name_0": "vPFEXI",
-              "bandwidth": "get_input:adiodvpe0_bandwidth",
+              "bandwidth": "get_input:pasqualevpe0_bandwidth",
               "availability_zone_max_count": "1",
               "vmxvre_volume_size_0": "45.0",
               "vmxvre_volume_size_1": "50.0",
               "vmxvre_ore_present": "0",
               "vmxvre_volume_name_0": "vREXI_FBVolume",
               "vmxvre_type": "0",
-              "vnf_instance_name": "get_input:2017488_adiodvpe0_vnf_instance_name",
+              "vnf_instance_name": "get_input:2017488_pasqualevpe0_vnf_instance_name",
               "vmxvpfe_sriov41_0_port_unknownmulticastallow": "true",
               "oam_net_id": "b95eeb1d-d55d-4827-abb4-8ebb94941429",
               "vmx_int_ctl_len": "24",
               "vmxvpfe_flavor_name": "ns.c20r16d25.v5"
             },
             "type": "VF",
-            "modelCustomizationName": "2017-388_ADIOD-vPE 1",
+            "modelCustomizationName": "2017-388_PASQUALE-vPE 1",
             "vfModules": {},
             "volumeGroups": {},
             "vfcInstanceGroups": {}
           },
-          "2017-388_ADIOD-vPE 0": {
+          "2017-388_PASQUALE-vPE 0": {
             "uuid": "afacccf6-397d-45d6-b5ae-94c39734b168",
             "invariantUuid": "72e465fe-71b1-4e7b-b5ed-9496118ff7a8",
-            "description": "Name ADIOD vPE Description The provider edge function for the ADIOD service supported by the Junipers VMX product Category Router Vendor Juniper Vendor Release Code 17.2 Owners Mary Fragale. Updated 9-25 to use v8.0 of the Juniper Valid 2 VLM",
-            "name": "2017-388_ADIOD-vPE",
+            "description": "Name PASQUALE vPE Description The provider edge function for the PASQUALE service supported by the Junipers VMX product Category Router Vendor Juniper Vendor Release Code 17.2 Owners Mary Fragale. Updated 9-25 to use v8.0 of the Juniper Valid 2 VLM",
+            "name": "2017-388_PASQUALE-vPE",
             "version": "4.0",
             "customizationUuid": "b3c76f73-eeb5-4fb6-9d31-72a889f1811c",
             "inputs": {},
               "max_instances" : 10,
               "min_instances"  : 1,
               "vmxvre_retype": "RE-VMX",
-              "vnf_config_template_version": "get_input:2017488_adiodvpe0_vnf_config_template_version",
+              "vnf_config_template_version": "get_input:2017488_pasqualevpe0_vnf_config_template_version",
               "sriov44_net_id": "48d399b3-11ee-48a8-94d2-f0ea94d6be8d",
               "int_ctl_net_id": "2f323477-6936-4d01-ac53-d849430281d9",
               "vmxvpfe_sriov41_0_port_mac": "00:11:22:EF:AC:DF",
               "vmxvpfe_sriov43_0_port_unknownmulticastallow": "true",
               "vmxvre_int_ctl_ip_0": "10.0.0.10",
               "ecomp_generated_naming": "true",
-              "AIC_CLLI": "get_input:2017488_adiodvpe0_AIC_CLLI",
+              "AIC_CLLI": "get_input:2017488_pasqualevpe0_AIC_CLLI",
               "vnf_name": "mtnj309me6vre",
               "vmxvpfe_sriov41_0_port_unknownunicastallow": "true",
               "vmxvre_volume_type_1": "HITACHI",
               "vmxvre_volume_type_0": "HITACHI",
               "vmxvpfe_volume_type_0": "HITACHI",
               "vmxvpfe_sriov43_0_port_broadcastallow": "true",
-              "bandwidth_units": "get_input:adiodvpe0_bandwidth_units",
+              "bandwidth_units": "get_input:pasqualevpe0_bandwidth_units",
               "vnf_id": "123",
               "vmxvre_oam_prefix": "24",
               "availability_zone_0": "mtpocfo-kvm-az01",
-              "ASN": "get_input:2017488_adiodvpe0_ASN",
+              "ASN": "get_input:2017488_pasqualevpe0_ASN",
               "vmxvre_chassis_i2cid": "161",
               "vmxvpfe_name_0": "vPFEXI",
-              "bandwidth": "get_input:adiodvpe0_bandwidth",
+              "bandwidth": "get_input:pasqualevpe0_bandwidth",
               "availability_zone_max_count": "1",
               "vmxvre_volume_size_0": "45.0",
               "vmxvre_volume_size_1": "50.0",
               "vmxvre_ore_present": "0",
               "vmxvre_volume_name_0": "vREXI_FBVolume",
               "vmxvre_type": "0",
-              "vnf_instance_name": "get_input:2017488_adiodvpe0_vnf_instance_name",
+              "vnf_instance_name": "get_input:2017488_pasqualevpe0_vnf_instance_name",
               "vmxvpfe_sriov41_0_port_unknownmulticastallow": "true",
               "oam_net_id": "b95eeb1d-d55d-4827-abb4-8ebb94941429",
               "vmx_int_ctl_len": "24",
               "vmxvpfe_flavor_name": "ns.c20r16d25.v5"
             },
             "type": "VF",
-            "modelCustomizationName": "2017-388_ADIOD-vPE 0",
+            "modelCustomizationName": "2017-388_PASQUALE-vPE 0",
             "vfModules": {},
             "volumeGroups": {},
             "vfcInstanceGroups": {}
           },
-          "2017-488_ADIOD-vPE 0": {
+          "2017-488_PASQUALE-vPE 0": {
             "uuid": "69e09f68-8b63-4cc9-b9ff-860960b5db09",
             "invariantUuid": "72e465fe-71b1-4e7b-b5ed-9496118ff7a8",
-            "description": "Name ADIOD vPE Description The provider edge function for the ADIOD service supported by the Junipers VMX product Category Router Vendor Juniper Vendor Release Code 17.2 Owners Mary Fragale. Updated 9-25 to use v8.0 of the Juniper Valid 2 VLM",
-            "name": "2017-488_ADIOD-vPE",
+            "description": "Name PASQUALE vPE Description The provider edge function for the PASQUALE service supported by the Junipers VMX product Category Router Vendor Juniper Vendor Release Code 17.2 Owners Mary Fragale. Updated 9-25 to use v8.0 of the Juniper Valid 2 VLM",
+            "name": "2017-488_PASQUALE-vPE",
             "version": "5.0",
             "customizationUuid": "1da7b585-5e61-4993-b95e-8e6606c81e45",
             "inputs": {},
               "max_instances" : 10,
               "min_instances"  : 1,
               "vmxvre_retype": "RE-VMX",
-              "vnf_config_template_version": "get_input:2017488_adiodvpe0_vnf_config_template_version",
+              "vnf_config_template_version": "get_input:2017488_pasqualevpe0_vnf_config_template_version",
               "sriov44_net_id": "48d399b3-11ee-48a8-94d2-f0ea94d6be8d",
               "int_ctl_net_id": "2f323477-6936-4d01-ac53-d849430281d9",
               "vmxvpfe_sriov41_0_port_mac": "00:11:22:EF:AC:DF",
               "vmxvpfe_sriov43_0_port_unknownmulticastallow": "true",
               "vmxvre_int_ctl_ip_0": "10.0.0.10",
               "ecomp_generated_naming": "false",
-              "AIC_CLLI": "get_input:2017488_adiodvpe0_AIC_CLLI",
+              "AIC_CLLI": "get_input:2017488_pasqualevpe0_AIC_CLLI",
               "vnf_name": "mtnj309me6vre",
               "vmxvpfe_sriov41_0_port_unknownunicastallow": "true",
               "vmxvre_volume_type_1": "HITACHI",
               "vmxvre_volume_type_0": "HITACHI",
               "vmxvpfe_volume_type_0": "HITACHI",
               "vmxvpfe_sriov43_0_port_broadcastallow": "true",
-              "bandwidth_units": "get_input:adiodvpe0_bandwidth_units",
+              "bandwidth_units": "get_input:pasqualevpe0_bandwidth_units",
               "vnf_id": "123",
               "vmxvre_oam_prefix": "24",
               "availability_zone_0": "mtpocfo-kvm-az01",
-              "ASN": "get_input:2017488_adiodvpe0_ASN",
+              "ASN": "get_input:2017488_pasqualevpe0_ASN",
               "vmxvre_chassis_i2cid": "161",
               "vmxvpfe_name_0": "vPFEXI",
-              "bandwidth": "get_input:adiodvpe0_bandwidth",
+              "bandwidth": "get_input:pasqualevpe0_bandwidth",
               "availability_zone_max_count": "1",
               "vmxvre_volume_size_0": "45.0",
               "vmxvre_volume_size_1": "50.0",
               "vmxvre_ore_present": "0",
               "vmxvre_volume_name_0": "vREXI_FBVolume",
               "vmxvre_type": "0",
-              "vnf_instance_name": "get_input:2017488_adiodvpe0_vnf_instance_name",
+              "vnf_instance_name": "get_input:2017488_pasqualevpe0_vnf_instance_name",
               "vmxvpfe_sriov41_0_port_unknownmulticastallow": "true",
               "oam_net_id": "b95eeb1d-d55d-4827-abb4-8ebb94941429",
               "vmx_int_ctl_len": "24",
               "vmxvpfe_flavor_name": "ns.c20r16d25.v5"
             },
             "type": "VF",
-            "modelCustomizationName": "2017-488_ADIOD-vPE 0",
+            "modelCustomizationName": "2017-488_PASQUALE-vPE 0",
             "vfModules": {
-              "2017488_adiodvpe0..2017488AdiodVpe..ADIOD_vRE_BV..module-1": {
+              "2017488_pasqualevpe0..2017488PasqualeVpe..PASQUALE_vRE_BV..module-1": {
                 "uuid": "25284168-24bb-4698-8cb4-3f509146eca5",
                 "invariantUuid": "7253ff5c-97f0-4b8b-937c-77aeb4d79aa1",
                 "customizationUuid": "f7e7c365-60cf-49a9-9ebf-a1aa11b9d401",
                 "description": null,
-                "name": "2017488AdiodVpe..ADIOD_vRE_BV..module-1",
+                "name": "2017488PasqualeVpe..PASQUALE_vRE_BV..module-1",
                 "version": "6",
-                "modelCustomizationName": "2017488AdiodVpe..ADIOD_vRE_BV..module-1",
+                "modelCustomizationName": "2017488PasqualeVpe..PASQUALE_vRE_BV..module-1",
                 "properties": {
                   "minCountInstances": 0,
                   "maxCountInstances": null,
                   "initialCount": 0,
-                  "vfModuleLabel": "ADIOD_vRE_BV"
+                  "vfModuleLabel": "PASQUALE_vRE_BV"
                 },
                 "inputs": {
-                  "adiodvpe0_bandwidth": {
+                  "pasqualevpe0_bandwidth": {
                     "type": "string",
                     "description": "Requested VPE bandwidth",
                     "entry_schema": null,
                     "inputProperties": {
                       "sourceType": "HEAT",
-                      "vfModuleLabel": "ADIOD_vRE_BV",
+                      "vfModuleLabel": "PASQUALE_vRE_BV",
                       "paramName": "bandwidth"
                     },
                     "constraints": null,
                     "required": true,
                     "default": "10"
                   },
-                  "2017488_adiodvpe0_vnf_instance_name": {
+                  "2017488_pasqualevpe0_vnf_instance_name": {
                     "type": "string",
                     "description": "The hostname assigned to the vpe.",
                     "entry_schema": null,
                     "inputProperties": {
                       "sourceType": "HEAT",
-                      "vfModuleLabel": "ADIOD_vRE_BV",
+                      "vfModuleLabel": "PASQUALE_vRE_BV",
                       "paramName": "vnf_instance_name"
                     },
                     "constraints": null,
                     "required": true,
                     "default": "mtnj309me6"
                   },
-                  "2017488_adiodvpe0_vnf_config_template_version": {
+                  "2017488_pasqualevpe0_vnf_config_template_version": {
                     "type": "string",
                     "description": "VPE Software Version",
                     "entry_schema": null,
                     "inputProperties": {
                       "sourceType": "HEAT",
-                      "vfModuleLabel": "ADIOD_vRE_BV",
+                      "vfModuleLabel": "PASQUALE_vRE_BV",
                       "paramName": "vnf_config_template_version"
                     },
                     "constraints": null,
                     "required": true,
                     "default": "17.2"
                   },
-                  "2017488_adiodvpe0_AIC_CLLI": {
+                  "2017488_pasqualevpe0_AIC_CLLI": {
                     "type": "string",
                     "description": "AIC Site CLLI",
                     "entry_schema": null,
                     "inputProperties": {
                       "sourceType": "HEAT",
-                      "vfModuleLabel": "ADIOD_vRE_BV",
+                      "vfModuleLabel": "PASQUALE_vRE_BV",
                       "paramName": "AIC_CLLI"
                     },
                     "constraints": null,
                     "required": true,
                     "default": "ATLMY8GA"
                   },
-                  "adiodvpe0_bandwidth_units": {
+                  "pasqualevpe0_bandwidth_units": {
                     "type": "string",
                     "description": "Units of bandwidth",
                     "entry_schema": null,
                     "inputProperties": {
                       "sourceType": "HEAT",
-                      "vfModuleLabel": "ADIOD_vRE_BV",
+                      "vfModuleLabel": "PASQUALE_vRE_BV",
                       "paramName": "bandwidth_units"
                     },
                     "constraints": null,
                 },
                 "volumeGroupAllowed": true
               },
-              "2017488_adiodvpe0..2017488AdiodVpe..ADIOD_base_vPE_BV..module-0": {
+              "2017488_pasqualevpe0..2017488PasqualeVpe..PASQUALE_base_vPE_BV..module-0": {
                 "uuid": "f8360508-3f17-4414-a2ed-6bc71161e8db",
                 "invariantUuid": "b34833bb-6aa9-4ad6-a831-70b06367a091",
                 "customizationUuid": "a55961b2-2065-4ab0-a5b7-2fcee1c227e3",
                 "description": null,
-                "name": "2017488AdiodVpe..ADIOD_base_vPE_BV..module-0",
+                "name": "2017488PasqualeVpe..PASQUALE_base_vPE_BV..module-0",
                 "version": "5",
-                "modelCustomizationName": "2017488AdiodVpe..ADIOD_base_vPE_BV..module-0",
+                "modelCustomizationName": "2017488PasqualeVpe..PASQUALE_base_vPE_BV..module-0",
                 "properties": {
                   "minCountInstances": 1,
                   "maxCountInstances": 1,
                   "initialCount": 1,
-                  "vfModuleLabel": "ADIOD_base_vPE_BV"
+                  "vfModuleLabel": "PASQUALE_base_vPE_BV"
                 },
                 "inputs": {},
                 "volumeGroupAllowed": false
               },
-              "2017488_adiodvpe0..2017488AdiodVpe..ADIOD_vPFE_BV..module-2": {
+              "2017488_pasqualevpe0..2017488PasqualeVpe..PASQUALE_vPFE_BV..module-2": {
                 "uuid": "0a0dd9d4-31d3-4c3a-ae89-a02f383e6a9a",
                 "invariantUuid": "eff8cc59-53a1-4101-aed7-8cf24ecf8339",
                 "customizationUuid": "3cd946bb-50e0-40d8-96d3-c9023520b557",
                 "description": null,
-                "name": "2017488AdiodVpe..ADIOD_vPFE_BV..module-2",
+                "name": "2017488PasqualeVpe..PASQUALE_vPFE_BV..module-2",
                 "version": "6",
-                "modelCustomizationName": "2017488AdiodVpe..ADIOD_vPFE_BV..module-2",
+                "modelCustomizationName": "2017488PasqualeVpe..PASQUALE_vPFE_BV..module-2",
                 "properties": {
                   "minCountInstances": 0,
                   "maxCountInstances": null,
                   "initialCount": 0,
-                  "vfModuleLabel": "ADIOD_vPFE_BV"
+                  "vfModuleLabel": "PASQUALE_vPFE_BV"
                 },
                 "inputs": {},
                 "volumeGroupAllowed": true
               }
             },
             "volumeGroups": {
-              "2017488_adiodvpe0..2017488AdiodVpe..ADIOD_vRE_BV..module-1": {
+              "2017488_pasqualevpe0..2017488PasqualeVpe..PASQUALE_vRE_BV..module-1": {
                 "uuid": "25284168-24bb-4698-8cb4-3f509146eca5",
                 "invariantUuid": "7253ff5c-97f0-4b8b-937c-77aeb4d79aa1",
                 "customizationUuid": "f7e7c365-60cf-49a9-9ebf-a1aa11b9d401",
                 "description": null,
-                "name": "2017488AdiodVpe..ADIOD_vRE_BV..module-1",
+                "name": "2017488PasqualeVpe..PASQUALE_vRE_BV..module-1",
                 "version": "6",
-                "modelCustomizationName": "2017488AdiodVpe..ADIOD_vRE_BV..module-1",
+                "modelCustomizationName": "2017488PasqualeVpe..PASQUALE_vRE_BV..module-1",
                 "properties": {
                   "minCountInstances": 0,
                   "maxCountInstances": null,
                   "initialCount": 0,
-                  "vfModuleLabel": "ADIOD_vRE_BV"
+                  "vfModuleLabel": "PASQUALE_vRE_BV"
                 },
                 "inputs": {
-                  "adiodvpe0_bandwidth": {
+                  "pasqualevpe0_bandwidth": {
                     "type": "string",
                     "description": "Requested VPE bandwidth",
                     "entry_schema": null,
                     "inputProperties": {
                       "sourceType": "HEAT",
-                      "vfModuleLabel": "ADIOD_vRE_BV",
+                      "vfModuleLabel": "PASQUALE_vRE_BV",
                       "paramName": "bandwidth"
                     },
                     "constraints": null,
                     "required": true,
                     "default": "10"
                   },
-                  "2017488_adiodvpe0_vnf_instance_name": {
+                  "2017488_pasqualevpe0_vnf_instance_name": {
                     "type": "string",
                     "description": "The hostname assigned to the vpe.",
                     "entry_schema": null,
                     "inputProperties": {
                       "sourceType": "HEAT",
-                      "vfModuleLabel": "ADIOD_vRE_BV",
+                      "vfModuleLabel": "PASQUALE_vRE_BV",
                       "paramName": "vnf_instance_name"
                     },
                     "constraints": null,
                     "required": true,
                     "default": "mtnj309me6"
                   },
-                  "2017488_adiodvpe0_vnf_config_template_version": {
+                  "2017488_pasqualevpe0_vnf_config_template_version": {
                     "type": "string",
                     "description": "VPE Software Version",
                     "entry_schema": null,
                     "inputProperties": {
                       "sourceType": "HEAT",
-                      "vfModuleLabel": "ADIOD_vRE_BV",
+                      "vfModuleLabel": "PASQUALE_vRE_BV",
                       "paramName": "vnf_config_template_version"
                     },
                     "constraints": null,
                     "required": true,
                     "default": "17.2"
                   },
-                  "2017488_adiodvpe0_AIC_CLLI": {
+                  "2017488_pasqualevpe0_AIC_CLLI": {
                     "type": "string",
                     "description": "AIC Site CLLI",
                     "entry_schema": null,
                     "inputProperties": {
                       "sourceType": "HEAT",
-                      "vfModuleLabel": "ADIOD_vRE_BV",
+                      "vfModuleLabel": "PASQUALE_vRE_BV",
                       "paramName": "AIC_CLLI"
                     },
                     "constraints": null,
                     "required": true,
                     "default": "ATLMY8GA"
                   },
-                  "adiodvpe0_bandwidth_units": {
+                  "pasqualevpe0_bandwidth_units": {
                     "type": "string",
                     "description": "Units of bandwidth",
                     "entry_schema": null,
                     "inputProperties": {
                       "sourceType": "HEAT",
-                      "vfModuleLabel": "ADIOD_vRE_BV",
+                      "vfModuleLabel": "PASQUALE_vRE_BV",
                       "paramName": "bandwidth_units"
                     },
                     "constraints": null,
                   }
                 }
               },
-              "2017488_adiodvpe0..2017488AdiodVpe..ADIOD_vPFE_BV..module-2": {
+              "2017488_pasqualevpe0..2017488PasqualeVpe..PASQUALE_vPFE_BV..module-2": {
                 "uuid": "0a0dd9d4-31d3-4c3a-ae89-a02f383e6a9a",
                 "invariantUuid": "eff8cc59-53a1-4101-aed7-8cf24ecf8339",
                 "customizationUuid": "3cd946bb-50e0-40d8-96d3-c9023520b557",
                 "description": null,
-                "name": "2017488AdiodVpe..ADIOD_vPFE_BV..module-2",
+                "name": "2017488PasqualeVpe..PASQUALE_vPFE_BV..module-2",
                 "version": "6",
-                "modelCustomizationName": "2017488AdiodVpe..ADIOD_vPFE_BV..module-2",
+                "modelCustomizationName": "2017488PasqualeVpe..PASQUALE_vPFE_BV..module-2",
                 "properties": {
                   "minCountInstances": 0,
                   "maxCountInstances": null,
                   "initialCount": 0,
-                  "vfModuleLabel": "ADIOD_vPFE_BV"
+                  "vfModuleLabel": "PASQUALE_vPFE_BV"
                 },
                 "inputs": {}
               }
           }
         },
         "networks": {},
-        "collectionResource": {},
+        "collectionResources": {},
         "configurations": {},
         "serviceProxies": {},
         "vfModules": {
-          "2017488_adiodvpe0..2017488AdiodVpe..ADIOD_vRE_BV..module-1": {
+          "2017488_pasqualevpe0..2017488PasqualeVpe..PASQUALE_vRE_BV..module-1": {
             "uuid": "25284168-24bb-4698-8cb4-3f509146eca5",
             "invariantUuid": "7253ff5c-97f0-4b8b-937c-77aeb4d79aa1",
             "customizationUuid": "f7e7c365-60cf-49a9-9ebf-a1aa11b9d401",
             "description": null,
-            "name": "2017488AdiodVpe..ADIOD_vRE_BV..module-1",
+            "name": "2017488PasqualeVpe..PASQUALE_vRE_BV..module-1",
             "version": "6",
-            "modelCustomizationName": "2017488AdiodVpe..ADIOD_vRE_BV..module-1",
+            "modelCustomizationName": "2017488PasqualeVpe..PASQUALE_vRE_BV..module-1",
             "properties": {
               "minCountInstances": 0,
               "maxCountInstances": null,
               "initialCount": 0,
-              "vfModuleLabel": "ADIOD_vRE_BV"
+              "vfModuleLabel": "PASQUALE_vRE_BV"
             },
             "inputs": {
-              "adiodvpe0_bandwidth": {
+              "pasqualevpe0_bandwidth": {
                 "type": "string",
                 "description": "Requested VPE bandwidth",
                 "entry_schema": null,
                 "inputProperties": {
                   "sourceType": "HEAT",
-                  "vfModuleLabel": "ADIOD_vRE_BV",
+                  "vfModuleLabel": "PASQUALE_vRE_BV",
                   "paramName": "bandwidth"
                 },
                 "constraints": null,
                 "required": true,
                 "default": "10"
               },
-              "2017488_adiodvpe0_vnf_instance_name": {
+              "2017488_pasqualevpe0_vnf_instance_name": {
                 "type": "string",
                 "description": "The hostname assigned to the vpe.",
                 "entry_schema": null,
                 "inputProperties": {
                   "sourceType": "HEAT",
-                  "vfModuleLabel": "ADIOD_vRE_BV",
+                  "vfModuleLabel": "PASQUALE_vRE_BV",
                   "paramName": "vnf_instance_name"
                 },
                 "constraints": null,
                 "required": true,
                 "default": "mtnj309me6"
               },
-              "2017488_adiodvpe0_vnf_config_template_version": {
+              "2017488_pasqualevpe0_vnf_config_template_version": {
                 "type": "string",
                 "description": "VPE Software Version",
                 "entry_schema": null,
                 "inputProperties": {
                   "sourceType": "HEAT",
-                  "vfModuleLabel": "ADIOD_vRE_BV",
+                  "vfModuleLabel": "PASQUALE_vRE_BV",
                   "paramName": "vnf_config_template_version"
                 },
                 "constraints": null,
                 "required": true,
                 "default": "17.2"
               },
-              "2017488_adiodvpe0_AIC_CLLI": {
+              "2017488_pasqualevpe0_AIC_CLLI": {
                 "type": "string",
                 "description": "AIC Site CLLI",
                 "entry_schema": null,
                 "inputProperties": {
                   "sourceType": "HEAT",
-                  "vfModuleLabel": "ADIOD_vRE_BV",
+                  "vfModuleLabel": "PASQUALE_vRE_BV",
                   "paramName": "AIC_CLLI"
                 },
                 "constraints": null,
                 "required": true,
                 "default": "ATLMY8GA"
               },
-              "adiodvpe0_bandwidth_units": {
+              "pasqualevpe0_bandwidth_units": {
                 "type": "string",
                 "description": "Units of bandwidth",
                 "entry_schema": null,
                 "inputProperties": {
                   "sourceType": "HEAT",
-                  "vfModuleLabel": "ADIOD_vRE_BV",
+                  "vfModuleLabel": "PASQUALE_vRE_BV",
                   "paramName": "bandwidth_units"
                 },
                 "constraints": null,
             },
             "volumeGroupAllowed": true
           },
-          "2017488_adiodvpe0..2017488AdiodVpe..ADIOD_base_vPE_BV..module-0": {
+          "2017488_pasqualevpe0..2017488PasqualeVpe..PASQUALE_base_vPE_BV..module-0": {
             "uuid": "f8360508-3f17-4414-a2ed-6bc71161e8db",
             "invariantUuid": "b34833bb-6aa9-4ad6-a831-70b06367a091",
             "customizationUuid": "a55961b2-2065-4ab0-a5b7-2fcee1c227e3",
             "description": null,
-            "name": "2017488AdiodVpe..ADIOD_base_vPE_BV..module-0",
+            "name": "2017488PasqualeVpe..PASQUALE_base_vPE_BV..module-0",
             "version": "5",
-            "modelCustomizationName": "2017488AdiodVpe..ADIOD_base_vPE_BV..module-0",
+            "modelCustomizationName": "2017488PasqualeVpe..PASQUALE_base_vPE_BV..module-0",
             "properties": {
               "minCountInstances": 1,
               "maxCountInstances": 1,
               "initialCount": 1,
-              "vfModuleLabel": "ADIOD_base_vPE_BV"
+              "vfModuleLabel": "PASQUALE_base_vPE_BV"
             },
             "inputs": {},
             "volumeGroupAllowed": false
           },
-          "2017488_adiodvpe0..2017488AdiodVpe..ADIOD_vPFE_BV..module-2": {
+          "2017488_pasqualevpe0..2017488PasqualeVpe..PASQUALE_vPFE_BV..module-2": {
             "uuid": "0a0dd9d4-31d3-4c3a-ae89-a02f383e6a9a",
             "invariantUuid": "eff8cc59-53a1-4101-aed7-8cf24ecf8339",
             "customizationUuid": "3cd946bb-50e0-40d8-96d3-c9023520b557",
             "description": null,
-            "name": "2017488AdiodVpe..ADIOD_vPFE_BV..module-2",
+            "name": "2017488PasqualeVpe..PASQUALE_vPFE_BV..module-2",
             "version": "6",
-            "modelCustomizationName": "2017488AdiodVpe..ADIOD_vPFE_BV..module-2",
+            "modelCustomizationName": "2017488PasqualeVpe..PASQUALE_vPFE_BV..module-2",
             "properties": {
               "minCountInstances": 0,
               "maxCountInstances": null,
               "initialCount": 0,
-              "vfModuleLabel": "ADIOD_vPFE_BV"
+              "vfModuleLabel": "PASQUALE_vPFE_BV"
             },
             "inputs": {},
             "volumeGroupAllowed": true
           }
         },
         "volumeGroups": {
-          "2017488_adiodvpe0..2017488AdiodVpe..ADIOD_vRE_BV..module-1": {
+          "2017488_pasqualevpe0..2017488PasqualeVpe..PASQUALE_vRE_BV..module-1": {
             "uuid": "25284168-24bb-4698-8cb4-3f509146eca5",
             "invariantUuid": "7253ff5c-97f0-4b8b-937c-77aeb4d79aa1",
             "customizationUuid": "f7e7c365-60cf-49a9-9ebf-a1aa11b9d401",
             "description": null,
-            "name": "2017488AdiodVpe..ADIOD_vRE_BV..module-1",
+            "name": "2017488PasqualeVpe..PASQUALE_vRE_BV..module-1",
             "version": "6",
-            "modelCustomizationName": "2017488AdiodVpe..ADIOD_vRE_BV..module-1",
+            "modelCustomizationName": "2017488PasqualeVpe..PASQUALE_vRE_BV..module-1",
             "properties": {
               "minCountInstances": 0,
               "maxCountInstances": null,
               "initialCount": 0,
-              "vfModuleLabel": "ADIOD_vRE_BV"
+              "vfModuleLabel": "PASQUALE_vRE_BV"
             },
             "inputs": {
-              "adiodvpe0_bandwidth": {
+              "pasqualevpe0_bandwidth": {
                 "type": "string",
                 "description": "Requested VPE bandwidth",
                 "entry_schema": null,
                 "inputProperties": {
                   "sourceType": "HEAT",
-                  "vfModuleLabel": "ADIOD_vRE_BV",
+                  "vfModuleLabel": "PASQUALE_vRE_BV",
                   "paramName": "bandwidth"
                 },
                 "constraints": null,
                 "required": true,
                 "default": "10"
               },
-              "2017488_adiodvpe0_vnf_instance_name": {
+              "2017488_pasqualevpe0_vnf_instance_name": {
                 "type": "string",
                 "description": "The hostname assigned to the vpe.",
                 "entry_schema": null,
                 "inputProperties": {
                   "sourceType": "HEAT",
-                  "vfModuleLabel": "ADIOD_vRE_BV",
+                  "vfModuleLabel": "PASQUALE_vRE_BV",
                   "paramName": "vnf_instance_name"
                 },
                 "constraints": null,
                 "required": true,
                 "default": "mtnj309me6"
               },
-              "2017488_adiodvpe0_vnf_config_template_version": {
+              "2017488_pasqualevpe0_vnf_config_template_version": {
                 "type": "string",
                 "description": "VPE Software Version",
                 "entry_schema": null,
                 "inputProperties": {
                   "sourceType": "HEAT",
-                  "vfModuleLabel": "ADIOD_vRE_BV",
+                  "vfModuleLabel": "PASQUALE_vRE_BV",
                   "paramName": "vnf_config_template_version"
                 },
                 "constraints": null,
                 "required": true,
                 "default": "17.2"
               },
-              "2017488_adiodvpe0_AIC_CLLI": {
+              "2017488_pasqualevpe0_AIC_CLLI": {
                 "type": "string",
                 "description": "AIC Site CLLI",
                 "entry_schema": null,
                 "inputProperties": {
                   "sourceType": "HEAT",
-                  "vfModuleLabel": "ADIOD_vRE_BV",
+                  "vfModuleLabel": "PASQUALE_vRE_BV",
                   "paramName": "AIC_CLLI"
                 },
                 "constraints": null,
                 "required": true,
                 "default": "ATLMY8GA"
               },
-              "adiodvpe0_bandwidth_units": {
+              "pasqualevpe0_bandwidth_units": {
                 "type": "string",
                 "description": "Units of bandwidth",
                 "entry_schema": null,
                 "inputProperties": {
                   "sourceType": "HEAT",
-                  "vfModuleLabel": "ADIOD_vRE_BV",
+                  "vfModuleLabel": "PASQUALE_vRE_BV",
                   "paramName": "bandwidth_units"
                 },
                 "constraints": null,
               }
             }
           },
-          "2017488_adiodvpe0..2017488AdiodVpe..ADIOD_vPFE_BV..module-2": {
+          "2017488_pasqualevpe0..2017488PasqualeVpe..PASQUALE_vPFE_BV..module-2": {
             "uuid": "0a0dd9d4-31d3-4c3a-ae89-a02f383e6a9a",
             "invariantUuid": "eff8cc59-53a1-4101-aed7-8cf24ecf8339",
             "customizationUuid": "3cd946bb-50e0-40d8-96d3-c9023520b557",
             "description": null,
-            "name": "2017488AdiodVpe..ADIOD_vPFE_BV..module-2",
+            "name": "2017488PasqualeVpe..PASQUALE_vPFE_BV..module-2",
             "version": "6",
-            "modelCustomizationName": "2017488AdiodVpe..ADIOD_vPFE_BV..module-2",
+            "modelCustomizationName": "2017488PasqualeVpe..PASQUALE_vPFE_BV..module-2",
             "properties": {
               "minCountInstances": 0,
               "maxCountInstances": null,
               "initialCount": 0,
-              "vfModuleLabel": "ADIOD_vPFE_BV"
+              "vfModuleLabel": "PASQUALE_vPFE_BV"
             },
             "inputs": {}
           }
         "service": {
           "uuid": "f4d84bb4-a416-4b4e-997e-0059973630b9",
           "invariantUuid": "598e3f9e-3244-4d8f-a8e0-0e5d7a29eda9",
-          "name": "ADIOD vMX vPE_BV Service 488",
+          "name": "PASQUALE vMX vPE_BV Service 488",
           "version": "1.0",
           "toscaModelURL": null,
           "category": "Network L1-3",
           "serviceType": "",
           "serviceRole": "",
-          "description": "ADIOD vMX vPE based on Juniper 17.2 release. Updated with updated VF for v8.0 of VLM",
+          "description": "PASQUALE vMX vPE based on Juniper 17.2 release. Updated with updated VF for v8.0 of VLM",
           "serviceEcompNaming": "true",
           "instantiationType": "Macro",
           "inputs": {
-            "2017488_adiodvpe0_ASN": {
+            "2017488_pasqualevpe0_ASN": {
               "type": "string",
               "description": "AV/PE",
               "entry_schema": null,
           }
         },
         "vnfs": {
-          "2017-488_ADIOD-vPE 0": {
+          "2017-488_PASQUALE-vPE 0": {
             "uuid": "ea81d6f7-0861-44a7-b7d5-d173b562c350",
             "invariantUuid": "5be7e99e-8eb2-4d97-be63-8081ff3cd10e",
-            "description": "Name ADIOD vPE Description The provider edge function for the ADIOD service supported by the Junipers VMX product Category Router Vendor Juniper Vendor Release Code 17.2 Owners Mary Fragale. Updated 9-25 to use v8.0 of the Juniper Valid 2 VLM",
-            "name": "2017-488_ADIOD-vPE",
+            "description": "Name PASQUALE vPE Description The provider edge function for the PASQUALE service supported by the Junipers VMX product Category Router Vendor Juniper Vendor Release Code 17.2 Owners Mary Fragale. Updated 9-25 to use v8.0 of the Juniper Valid 2 VLM",
+            "name": "2017-488_PASQUALE-vPE",
             "version": "9.0",
             "customizationUuid": "41516cc6-5098-4b40-a619-f8d5f55fc4d8",
             "inputs": {},
             "commands": {},
             "properties": {
               "vmxvre_retype": "RE-VMX",
-              "vnf_config_template_version": "get_input:2017488_adiodvpe0_vnf_config_template_version",
+              "vnf_config_template_version": "get_input:2017488_pasqualevpe0_vnf_config_template_version",
               "sriov44_net_id": "48d399b3-11ee-48a8-94d2-f0ea94d6be8d",
               "int_ctl_net_id": "2f323477-6936-4d01-ac53-d849430281d9",
               "vmxvpfe_sriov41_0_port_mac": "00:11:22:EF:AC:DF",
               "vmxvpfe_sriov42_0_port_unknownmulticastallow": "true",
               "vmxvpfe_sriov44_0_port_vlanstrip": "false",
               "vf_module_id": "123",
-              "nf_function": "ADIOD vPE",
+              "nf_function": "PASQUALE vPE",
               "vmxvpfe_sriov43_0_port_unknownmulticastallow": "true",
               "vmxvre_int_ctl_ip_0": "10.0.0.10",
               "ecomp_generated_naming": "true",
-              "AIC_CLLI": "get_input:2017488_adiodvpe0_AIC_CLLI",
+              "AIC_CLLI": "get_input:2017488_pasqualevpe0_AIC_CLLI",
               "vnf_name": "mtnj309me6vre",
               "vmxvpfe_sriov41_0_port_unknownunicastallow": "true",
               "vmxvre_volume_type_1": "HITACHI",
               "vmxvre_volume_type_0": "HITACHI",
               "vmxvpfe_volume_type_0": "HITACHI",
               "vmxvpfe_sriov43_0_port_broadcastallow": "true",
-              "bandwidth_units": "get_input:2017488_adiodvpe0_bandwidth_units",
+              "bandwidth_units": "get_input:2017488_pasqualevpe0_bandwidth_units",
               "vnf_id": "123",
               "vmxvre_oam_prefix": "24",
-              "availability_zone_0": "get_input:2017488_adiodvpe0_availability_zone_0",
-              "ASN": "get_input:2017488_adiodvpe0_ASN",
+              "availability_zone_0": "get_input:2017488_pasqualevpe0_availability_zone_0",
+              "ASN": "get_input:2017488_pasqualevpe0_ASN",
               "vmxvre_chassis_i2cid": "161",
               "vmxvpfe_name_0": "vPFEXI",
-              "bandwidth": "get_input:2017488_adiodvpe0_bandwidth",
+              "bandwidth": "get_input:2017488_pasqualevpe0_bandwidth",
               "availability_zone_max_count": "1",
               "vmxvre_volume_size_0": "45.0",
               "vmxvre_volume_size_1": "50.0",
               "vmxvre_ore_present": "0",
               "vmxvre_volume_name_0": "vREXI_FBVolume",
               "vmxvre_type": "0",
-              "vnf_instance_name": "get_input:2017488_adiodvpe0_vnf_instance_name",
+              "vnf_instance_name": "get_input:2017488_pasqualevpe0_vnf_instance_name",
               "vmxvpfe_sriov41_0_port_unknownmulticastallow": "true",
               "oam_net_id": "b95eeb1d-d55d-4827-abb4-8ebb94941429",
               "vmx_int_ctl_len": "24",
               "vmxvpfe_flavor_name": "ns.c20r16d25.v5"
             },
             "type": "VF",
-            "modelCustomizationName": "2017-488_ADIOD-vPE 0",
+            "modelCustomizationName": "2017-488_PASQUALE-vPE 0",
             "vfModules": {
-              "2017488_adiodvpe0..2017488AdiodVpe..ADIOD_vRE_BV..module-1": {
+              "2017488_pasqualevpe0..2017488PasqualeVpe..PASQUALE_vRE_BV..module-1": {
                 "uuid": "a5d8df05-11cb-4351-96e0-b6d4168ea4df",
                 "invariantUuid": "7253ff5c-97f0-4b8b-937c-77aeb4d79aa1",
                 "customizationUuid": "f3d97417-0c8d-424e-8ff7-b2eb4fbcecc3",
                 "description": null,
-                "name": "2017488AdiodVpe..ADIOD_vRE_BV..module-1",
+                "name": "2017488PasqualeVpe..PASQUALE_vRE_BV..module-1",
                 "version": "8",
-                "modelCustomizationName": "2017488AdiodVpe..ADIOD_vRE_BV..module-1",
+                "modelCustomizationName": "2017488PasqualeVpe..PASQUALE_vRE_BV..module-1",
                 "properties": {
                   "minCountInstances": 0,
                   "maxCountInstances": null,
                   "initialCount": 0,
-                  "vfModuleLabel": "ADIOD_vRE_BV"
+                  "vfModuleLabel": "PASQUALE_vRE_BV"
                 },
                 "inputs": {
-                  "2017488_adiodvpe0_bandwidth_units": {
+                  "2017488_pasqualevpe0_bandwidth_units": {
                     "type": "string",
                     "description": "Units of bandwidth",
                     "entry_schema": null,
                     "inputProperties": {
                       "sourceType": "HEAT",
-                      "vfModuleLabel": "ADIOD_vRE_BV",
+                      "vfModuleLabel": "PASQUALE_vRE_BV",
                       "paramName": "bandwidth_units"
                     },
                     "constraints": null,
                     "required": true,
                     "default": "Gbps"
                   },
-                  "2017488_adiodvpe0_bandwidth": {
+                  "2017488_pasqualevpe0_bandwidth": {
                     "type": "string",
                     "description": "Requested VPE bandwidth",
                     "entry_schema": null,
                     "inputProperties": {
                       "sourceType": "HEAT",
-                      "vfModuleLabel": "ADIOD_vRE_BV",
+                      "vfModuleLabel": "PASQUALE_vRE_BV",
                       "paramName": "bandwidth"
                     },
                     "constraints": null,
                     "required": true,
                     "default": "10"
                   },
-                  "2017488_adiodvpe0_vnf_instance_name": {
+                  "2017488_pasqualevpe0_vnf_instance_name": {
                     "type": "string",
                     "description": "The hostname assigned to the vpe.",
                     "entry_schema": null,
                     "inputProperties": {
                       "sourceType": "HEAT",
-                      "vfModuleLabel": "ADIOD_vRE_BV",
+                      "vfModuleLabel": "PASQUALE_vRE_BV",
                       "paramName": "vnf_instance_name"
                     },
                     "constraints": null,
                     "required": true,
                     "default": "mtnj309me6"
                   },
-                  "2017488_adiodvpe0_vnf_config_template_version": {
+                  "2017488_pasqualevpe0_vnf_config_template_version": {
                     "type": "string",
                     "description": "VPE Software Version",
                     "entry_schema": null,
                     "inputProperties": {
                       "sourceType": "HEAT",
-                      "vfModuleLabel": "ADIOD_vRE_BV",
+                      "vfModuleLabel": "PASQUALE_vRE_BV",
                       "paramName": "vnf_config_template_version"
                     },
                     "constraints": null,
                     "required": true,
                     "default": "17.2"
                   },
-                  "2017488_adiodvpe0_AIC_CLLI": {
+                  "2017488_pasqualevpe0_AIC_CLLI": {
                     "type": "string",
                     "description": "AIC Site CLLI",
                     "entry_schema": null,
                     "inputProperties": {
                       "sourceType": "HEAT",
-                      "vfModuleLabel": "ADIOD_vRE_BV",
+                      "vfModuleLabel": "PASQUALE_vRE_BV",
                       "paramName": "AIC_CLLI"
                     },
                     "constraints": null,
                 },
                 "volumeGroupAllowed": true
               },
-              "2017488_adiodvpe0..2017488AdiodVpe..ADIOD_base_vPE_BV..module-0": {
+              "2017488_pasqualevpe0..2017488PasqualeVpe..PASQUALE_base_vPE_BV..module-0": {
                 "uuid": "040e591e-5d30-4e0d-850f-7266e5a8e013",
                 "invariantUuid": "b34833bb-6aa9-4ad6-a831-70b06367a091",
                 "customizationUuid": "5c5f91f9-5e31-4120-b892-5536587ec258",
                 "description": null,
-                "name": "2017488AdiodVpe..ADIOD_base_vPE_BV..module-0",
+                "name": "2017488PasqualeVpe..PASQUALE_base_vPE_BV..module-0",
                 "version": "6",
-                "modelCustomizationName": "2017488AdiodVpe..ADIOD_base_vPE_BV..module-0",
+                "modelCustomizationName": "2017488PasqualeVpe..PASQUALE_base_vPE_BV..module-0",
                 "properties": {
                   "minCountInstances": 1,
                   "maxCountInstances": 1,
                   "initialCount": 1,
-                  "vfModuleLabel": "ADIOD_base_vPE_BV"
+                  "vfModuleLabel": "PASQUALE_base_vPE_BV"
                 },
                 "inputs": {},
                 "volumeGroupAllowed": false
               },
-              "2017488_adiodvpe0..2017488AdiodVpe..ADIOD_vPFE_BV..module-2": {
+              "2017488_pasqualevpe0..2017488PasqualeVpe..PASQUALE_vPFE_BV..module-2": {
                 "uuid": "b3e8b26e-cff0-49fc-a4e6-f3e16c8440fe",
                 "invariantUuid": "eff8cc59-53a1-4101-aed7-8cf24ecf8339",
                 "customizationUuid": "6e410843-257c-46d9-ba8a-8d94e1362452",
                 "description": null,
-                "name": "2017488AdiodVpe..ADIOD_vPFE_BV..module-2",
+                "name": "2017488PasqualeVpe..PASQUALE_vPFE_BV..module-2",
                 "version": "8",
-                "modelCustomizationName": "2017488AdiodVpe..ADIOD_vPFE_BV..module-2",
+                "modelCustomizationName": "2017488PasqualeVpe..PASQUALE_vPFE_BV..module-2",
                 "properties": {
                   "minCountInstances": 0,
                   "maxCountInstances": null,
                   "initialCount": 0,
-                  "vfModuleLabel": "ADIOD_vPFE_BV"
+                  "vfModuleLabel": "PASQUALE_vPFE_BV"
                 },
                 "inputs": {
-                  "2017488_adiodvpe0_availability_zone_0": {
+                  "2017488_pasqualevpe0_availability_zone_0": {
                     "type": "string",
                     "description": "The Availability Zone to launch the instance.",
                     "entry_schema": null,
                     "inputProperties": {
                       "sourceType": "HEAT",
-                      "vfModuleLabel": "ADIOD_vPFE_BV",
+                      "vfModuleLabel": "PASQUALE_vPFE_BV",
                       "paramName": "availability_zone_0"
                     },
                     "constraints": null,
               }
             },
             "volumeGroups": {
-              "2017488_adiodvpe0..2017488AdiodVpe..ADIOD_vRE_BV..module-1": {
+              "2017488_pasqualevpe0..2017488PasqualeVpe..PASQUALE_vRE_BV..module-1": {
                 "uuid": "a5d8df05-11cb-4351-96e0-b6d4168ea4df",
                 "invariantUuid": "7253ff5c-97f0-4b8b-937c-77aeb4d79aa1",
                 "customizationUuid": "f3d97417-0c8d-424e-8ff7-b2eb4fbcecc3",
                 "description": null,
-                "name": "2017488AdiodVpe..ADIOD_vRE_BV..module-1",
+                "name": "2017488PasqualeVpe..PASQUALE_vRE_BV..module-1",
                 "version": "8",
-                "modelCustomizationName": "2017488AdiodVpe..ADIOD_vRE_BV..module-1",
+                "modelCustomizationName": "2017488PasqualeVpe..PASQUALE_vRE_BV..module-1",
                 "properties": {
                   "minCountInstances": 0,
                   "maxCountInstances": null,
                   "initialCount": 0,
-                  "vfModuleLabel": "ADIOD_vRE_BV"
+                  "vfModuleLabel": "PASQUALE_vRE_BV"
                 },
                 "inputs": {
-                  "2017488_adiodvpe0_bandwidth_units": {
+                  "2017488_pasqualevpe0_bandwidth_units": {
                     "type": "string",
                     "description": "Units of bandwidth",
                     "entry_schema": null,
                     "inputProperties": {
                       "sourceType": "HEAT",
-                      "vfModuleLabel": "ADIOD_vRE_BV",
+                      "vfModuleLabel": "PASQUALE_vRE_BV",
                       "paramName": "bandwidth_units"
                     },
                     "constraints": null,
                     "required": true,
                     "default": "Gbps"
                   },
-                  "2017488_adiodvpe0_bandwidth": {
+                  "2017488_pasqualevpe0_bandwidth": {
                     "type": "string",
                     "description": "Requested VPE bandwidth",
                     "entry_schema": null,
                     "inputProperties": {
                       "sourceType": "HEAT",
-                      "vfModuleLabel": "ADIOD_vRE_BV",
+                      "vfModuleLabel": "PASQUALE_vRE_BV",
                       "paramName": "bandwidth"
                     },
                     "constraints": null,
                     "required": true,
                     "default": "10"
                   },
-                  "2017488_adiodvpe0_vnf_instance_name": {
+                  "2017488_pasqualevpe0_vnf_instance_name": {
                     "type": "string",
                     "description": "The hostname assigned to the vpe.",
                     "entry_schema": null,
                     "inputProperties": {
                       "sourceType": "HEAT",
-                      "vfModuleLabel": "ADIOD_vRE_BV",
+                      "vfModuleLabel": "PASQUALE_vRE_BV",
                       "paramName": "vnf_instance_name"
                     },
                     "constraints": null,
                     "required": true,
                     "default": "mtnj309me6"
                   },
-                  "2017488_adiodvpe0_vnf_config_template_version": {
+                  "2017488_pasqualevpe0_vnf_config_template_version": {
                     "type": "string",
                     "description": "VPE Software Version",
                     "entry_schema": null,
                     "inputProperties": {
                       "sourceType": "HEAT",
-                      "vfModuleLabel": "ADIOD_vRE_BV",
+                      "vfModuleLabel": "PASQUALE_vRE_BV",
                       "paramName": "vnf_config_template_version"
                     },
                     "constraints": null,
                     "required": true,
                     "default": "17.2"
                   },
-                  "2017488_adiodvpe0_AIC_CLLI": {
+                  "2017488_pasqualevpe0_AIC_CLLI": {
                     "type": "string",
                     "description": "AIC Site CLLI",
                     "entry_schema": null,
                     "inputProperties": {
                       "sourceType": "HEAT",
-                      "vfModuleLabel": "ADIOD_vRE_BV",
+                      "vfModuleLabel": "PASQUALE_vRE_BV",
                       "paramName": "AIC_CLLI"
                     },
                     "constraints": null,
                   }
                 }
               },
-              "2017488_adiodvpe0..2017488AdiodVpe..ADIOD_vPFE_BV..module-2": {
+              "2017488_pasqualevpe0..2017488PasqualeVpe..PASQUALE_vPFE_BV..module-2": {
                 "uuid": "b3e8b26e-cff0-49fc-a4e6-f3e16c8440fe",
                 "invariantUuid": "eff8cc59-53a1-4101-aed7-8cf24ecf8339",
                 "customizationUuid": "6e410843-257c-46d9-ba8a-8d94e1362452",
                 "description": null,
-                "name": "2017488AdiodVpe..ADIOD_vPFE_BV..module-2",
+                "name": "2017488PasqualeVpe..PASQUALE_vPFE_BV..module-2",
                 "version": "8",
-                "modelCustomizationName": "2017488AdiodVpe..ADIOD_vPFE_BV..module-2",
+                "modelCustomizationName": "2017488PasqualeVpe..PASQUALE_vPFE_BV..module-2",
                 "properties": {
                   "minCountInstances": 0,
                   "maxCountInstances": null,
                   "initialCount": 0,
-                  "vfModuleLabel": "ADIOD_vPFE_BV"
+                  "vfModuleLabel": "PASQUALE_vPFE_BV"
                 },
                 "inputs": {
-                  "2017488_adiodvpe0_availability_zone_0": {
+                  "2017488_pasqualevpe0_availability_zone_0": {
                     "type": "string",
                     "description": "The Availability Zone to launch the instance.",
                     "entry_schema": null,
                     "inputProperties": {
                       "sourceType": "HEAT",
-                      "vfModuleLabel": "ADIOD_vPFE_BV",
+                      "vfModuleLabel": "PASQUALE_vPFE_BV",
                       "paramName": "availability_zone_0"
                     },
                     "constraints": null,
           }
         },
         "networks": {},
-        "collectionResource": {},
+        "collectionResources": {},
         "configurations": {},
         "serviceProxies": {},
         "vfModules": {
-          "2017488_adiodvpe0..2017488AdiodVpe..ADIOD_vRE_BV..module-1": {
+          "2017488_pasqualevpe0..2017488PasqualeVpe..PASQUALE_vRE_BV..module-1": {
             "uuid": "a5d8df05-11cb-4351-96e0-b6d4168ea4df",
             "invariantUuid": "7253ff5c-97f0-4b8b-937c-77aeb4d79aa1",
             "customizationUuid": "f3d97417-0c8d-424e-8ff7-b2eb4fbcecc3",
             "description": null,
-            "name": "2017488AdiodVpe..ADIOD_vRE_BV..module-1",
+            "name": "2017488PasqualeVpe..PASQUALE_vRE_BV..module-1",
             "version": "8",
-            "modelCustomizationName": "2017488AdiodVpe..ADIOD_vRE_BV..module-1",
+            "modelCustomizationName": "2017488PasqualeVpe..PASQUALE_vRE_BV..module-1",
             "properties": {
               "minCountInstances": 0,
               "maxCountInstances": null,
               "initialCount": 0,
-              "vfModuleLabel": "ADIOD_vRE_BV"
+              "vfModuleLabel": "PASQUALE_vRE_BV"
             },
             "inputs": {
-              "2017488_adiodvpe0_bandwidth_units": {
+              "2017488_pasqualevpe0_bandwidth_units": {
                 "type": "string",
                 "description": "Units of bandwidth",
                 "entry_schema": null,
                 "inputProperties": {
                   "sourceType": "HEAT",
-                  "vfModuleLabel": "ADIOD_vRE_BV",
+                  "vfModuleLabel": "PASQUALE_vRE_BV",
                   "paramName": "bandwidth_units"
                 },
                 "constraints": null,
                 "required": true,
                 "default": "Gbps"
               },
-              "2017488_adiodvpe0_bandwidth": {
+              "2017488_pasqualevpe0_bandwidth": {
                 "type": "string",
                 "description": "Requested VPE bandwidth",
                 "entry_schema": null,
                 "inputProperties": {
                   "sourceType": "HEAT",
-                  "vfModuleLabel": "ADIOD_vRE_BV",
+                  "vfModuleLabel": "PASQUALE_vRE_BV",
                   "paramName": "bandwidth"
                 },
                 "constraints": null,
                 "required": true,
                 "default": "10"
               },
-              "2017488_adiodvpe0_vnf_instance_name": {
+              "2017488_pasqualevpe0_vnf_instance_name": {
                 "type": "string",
                 "description": "The hostname assigned to the vpe.",
                 "entry_schema": null,
                 "inputProperties": {
                   "sourceType": "HEAT",
-                  "vfModuleLabel": "ADIOD_vRE_BV",
+                  "vfModuleLabel": "PASQUALE_vRE_BV",
                   "paramName": "vnf_instance_name"
                 },
                 "constraints": null,
                 "required": true,
                 "default": "mtnj309me6"
               },
-              "2017488_adiodvpe0_vnf_config_template_version": {
+              "2017488_pasqualevpe0_vnf_config_template_version": {
                 "type": "string",
                 "description": "VPE Software Version",
                 "entry_schema": null,
                 "inputProperties": {
                   "sourceType": "HEAT",
-                  "vfModuleLabel": "ADIOD_vRE_BV",
+                  "vfModuleLabel": "PASQUALE_vRE_BV",
                   "paramName": "vnf_config_template_version"
                 },
                 "constraints": null,
                 "required": true,
                 "default": "17.2"
               },
-              "2017488_adiodvpe0_AIC_CLLI": {
+              "2017488_pasqualevpe0_AIC_CLLI": {
                 "type": "string",
                 "description": "AIC Site CLLI",
                 "entry_schema": null,
                 "inputProperties": {
                   "sourceType": "HEAT",
-                  "vfModuleLabel": "ADIOD_vRE_BV",
+                  "vfModuleLabel": "PASQUALE_vRE_BV",
                   "paramName": "AIC_CLLI"
                 },
                 "constraints": null,
             },
             "volumeGroupAllowed": true
           },
-          "2017488_adiodvpe0..2017488AdiodVpe..ADIOD_base_vPE_BV..module-0": {
+          "2017488_pasqualevpe0..2017488PasqualeVpe..PASQUALE_base_vPE_BV..module-0": {
             "uuid": "040e591e-5d30-4e0d-850f-7266e5a8e013",
             "invariantUuid": "b34833bb-6aa9-4ad6-a831-70b06367a091",
             "customizationUuid": "5c5f91f9-5e31-4120-b892-5536587ec258",
             "description": null,
-            "name": "2017488AdiodVpe..ADIOD_base_vPE_BV..module-0",
+            "name": "2017488PasqualeVpe..PASQUALE_base_vPE_BV..module-0",
             "version": "6",
-            "modelCustomizationName": "2017488AdiodVpe..ADIOD_base_vPE_BV..module-0",
+            "modelCustomizationName": "2017488PasqualeVpe..PASQUALE_base_vPE_BV..module-0",
             "properties": {
               "minCountInstances": 1,
               "maxCountInstances": 1,
               "initialCount": 1,
-              "vfModuleLabel": "ADIOD_base_vPE_BV"
+              "vfModuleLabel": "PASQUALE_base_vPE_BV"
             },
             "inputs": {},
             "volumeGroupAllowed": false
           },
-          "2017488_adiodvpe0..2017488AdiodVpe..ADIOD_vPFE_BV..module-2": {
+          "2017488_pasqualevpe0..2017488PasqualeVpe..PASQUALE_vPFE_BV..module-2": {
             "uuid": "b3e8b26e-cff0-49fc-a4e6-f3e16c8440fe",
             "invariantUuid": "eff8cc59-53a1-4101-aed7-8cf24ecf8339",
             "customizationUuid": "6e410843-257c-46d9-ba8a-8d94e1362452",
             "description": null,
-            "name": "2017488AdiodVpe..ADIOD_vPFE_BV..module-2",
+            "name": "2017488PasqualeVpe..PASQUALE_vPFE_BV..module-2",
             "version": "8",
-            "modelCustomizationName": "2017488AdiodVpe..ADIOD_vPFE_BV..module-2",
+            "modelCustomizationName": "2017488PasqualeVpe..PASQUALE_vPFE_BV..module-2",
             "properties": {
               "minCountInstances": 0,
               "maxCountInstances": null,
               "initialCount": 0,
-              "vfModuleLabel": "ADIOD_vPFE_BV"
+              "vfModuleLabel": "PASQUALE_vPFE_BV"
             },
             "inputs": {
-              "2017488_adiodvpe0_availability_zone_0": {
+              "2017488_pasqualevpe0_availability_zone_0": {
                 "type": "string",
                 "description": "The Availability Zone to launch the instance.",
                 "entry_schema": null,
                 "inputProperties": {
                   "sourceType": "HEAT",
-                  "vfModuleLabel": "ADIOD_vPFE_BV",
+                  "vfModuleLabel": "PASQUALE_vPFE_BV",
                   "paramName": "availability_zone_0"
                 },
                 "constraints": null,
           }
         },
         "volumeGroups": {
-          "2017488_adiodvpe0..2017488AdiodVpe..ADIOD_vRE_BV..module-1": {
+          "2017488_pasqualevpe0..2017488PasqualeVpe..PASQUALE_vRE_BV..module-1": {
             "uuid": "a5d8df05-11cb-4351-96e0-b6d4168ea4df",
             "invariantUuid": "7253ff5c-97f0-4b8b-937c-77aeb4d79aa1",
             "customizationUuid": "f3d97417-0c8d-424e-8ff7-b2eb4fbcecc3",
             "description": null,
-            "name": "2017488AdiodVpe..ADIOD_vRE_BV..module-1",
+            "name": "2017488PasqualeVpe..PASQUALE_vRE_BV..module-1",
             "version": "8",
-            "modelCustomizationName": "2017488AdiodVpe..ADIOD_vRE_BV..module-1",
+            "modelCustomizationName": "2017488PasqualeVpe..PASQUALE_vRE_BV..module-1",
             "properties": {
               "minCountInstances": 0,
               "maxCountInstances": null,
               "initialCount": 0,
-              "vfModuleLabel": "ADIOD_vRE_BV"
+              "vfModuleLabel": "PASQUALE_vRE_BV"
             },
             "inputs": {
-              "2017488_adiodvpe0_bandwidth_units": {
+              "2017488_pasqualevpe0_bandwidth_units": {
                 "type": "string",
                 "description": "Units of bandwidth",
                 "entry_schema": null,
                 "inputProperties": {
                   "sourceType": "HEAT",
-                  "vfModuleLabel": "ADIOD_vRE_BV",
+                  "vfModuleLabel": "PASQUALE_vRE_BV",
                   "paramName": "bandwidth_units"
                 },
                 "constraints": null,
                 "required": true,
                 "default": "Gbps"
               },
-              "2017488_adiodvpe0_bandwidth": {
+              "2017488_pasqualevpe0_bandwidth": {
                 "type": "string",
                 "description": "Requested VPE bandwidth",
                 "entry_schema": null,
                 "inputProperties": {
                   "sourceType": "HEAT",
-                  "vfModuleLabel": "ADIOD_vRE_BV",
+                  "vfModuleLabel": "PASQUALE_vRE_BV",
                   "paramName": "bandwidth"
                 },
                 "constraints": null,
                 "required": true,
                 "default": "10"
               },
-              "2017488_adiodvpe0_vnf_instance_name": {
+              "2017488_pasqualevpe0_vnf_instance_name": {
                 "type": "string",
                 "description": "The hostname assigned to the vpe.",
                 "entry_schema": null,
                 "inputProperties": {
                   "sourceType": "HEAT",
-                  "vfModuleLabel": "ADIOD_vRE_BV",
+                  "vfModuleLabel": "PASQUALE_vRE_BV",
                   "paramName": "vnf_instance_name"
                 },
                 "constraints": null,
                 "required": true,
                 "default": "mtnj309me6"
               },
-              "2017488_adiodvpe0_vnf_config_template_version": {
+              "2017488_pasqualevpe0_vnf_config_template_version": {
                 "type": "string",
                 "description": "VPE Software Version",
                 "entry_schema": null,
                 "inputProperties": {
                   "sourceType": "HEAT",
-                  "vfModuleLabel": "ADIOD_vRE_BV",
+                  "vfModuleLabel": "PASQUALE_vRE_BV",
                   "paramName": "vnf_config_template_version"
                 },
                 "constraints": null,
                 "required": true,
                 "default": "17.2"
               },
-              "2017488_adiodvpe0_AIC_CLLI": {
+              "2017488_pasqualevpe0_AIC_CLLI": {
                 "type": "string",
                 "description": "AIC Site CLLI",
                 "entry_schema": null,
                 "inputProperties": {
                   "sourceType": "HEAT",
-                  "vfModuleLabel": "ADIOD_vRE_BV",
+                  "vfModuleLabel": "PASQUALE_vRE_BV",
                   "paramName": "AIC_CLLI"
                 },
                 "constraints": null,
               }
             }
           },
-          "2017488_adiodvpe0..2017488AdiodVpe..ADIOD_vPFE_BV..module-2": {
+          "2017488_pasqualevpe0..2017488PasqualeVpe..PASQUALE_vPFE_BV..module-2": {
             "uuid": "b3e8b26e-cff0-49fc-a4e6-f3e16c8440fe",
             "invariantUuid": "eff8cc59-53a1-4101-aed7-8cf24ecf8339",
             "customizationUuid": "6e410843-257c-46d9-ba8a-8d94e1362452",
             "description": null,
-            "name": "2017488AdiodVpe..ADIOD_vPFE_BV..module-2",
+            "name": "2017488PasqualeVpe..PASQUALE_vPFE_BV..module-2",
             "version": "8",
-            "modelCustomizationName": "2017488AdiodVpe..ADIOD_vPFE_BV..module-2",
+            "modelCustomizationName": "2017488PasqualeVpe..PASQUALE_vPFE_BV..module-2",
             "properties": {
               "minCountInstances": 0,
               "maxCountInstances": null,
               "initialCount": 0,
-              "vfModuleLabel": "ADIOD_vPFE_BV"
+              "vfModuleLabel": "PASQUALE_vPFE_BV"
             },
             "inputs": {
-              "2017488_adiodvpe0_availability_zone_0": {
+              "2017488_pasqualevpe0_availability_zone_0": {
                 "type": "string",
                 "description": "The Availability Zone to launch the instance.",
                 "entry_schema": null,
                 "inputProperties": {
                   "sourceType": "HEAT",
-                  "vfModuleLabel": "ADIOD_vPFE_BV",
+                  "vfModuleLabel": "PASQUALE_vPFE_BV",
                   "paramName": "availability_zone_0"
                 },
                 "constraints": null,
         "vnfs": {},
         "instanceParams": [
           {
-            "2017488_adiodvpe0_ASN": "AV_vPE"
+            "2017488_pasqualevpe0_ASN": "AV_vPE"
           }
         ],
         "globalSubscriberId": "e433710f-9217-458d-a79d-1c7aff376d89",
         "productFamilyId": "ebc3bc3d-62fd-4a3f-a037-f619df4ff034",
         "subscriptionServiceType": "TYLER SILVIA",
-        "lcpCloudRegionId": "JANET25",
+        "lcpCloudRegionId": "AAIAIC25",
         "tenantId": "092eb9e8e4b7412e8787dd091bc58e86",
         "aicZoneId": "JAG1",
         "projectName": "WATKINS",
         "isEcompGeneratedNaming": true,
         "tenantName": "USP-SIP-IC-24335-T-01",
         "aicZoneName": "YUDFJULP-JAG1",
-        "existingNames": {}
+        "existingNames": {},
+        "vidNotions": {
+          "instantiationType": "Macro"
+        }
       }
     },
     "lcpRegionsAndTenants": {
       "lcpRegionList": [
         {
-          "id": "JANET25",
-          "name": "JANET25",
+          "id": "AAIAIC25",
+          "name": "AAIAIC25",
           "isPermitted": true
         },
         {
         }
       ],
       "lcpRegionsTenantsMap": {
-        "JANET25": [
+        "AAIAIC25": [
           {
             "id": "092eb9e8e4b7412e8787dd091bc58e86",
             "name": "USP-SIP-IC-24335-T-01",
             "isPermitted": true
           },
           {
-            "id": "d0a3e3f2964542259d155a81c41aadc3",
-            "name": "test-hvf6-09",
+            "id": "229bcdc6eaeb4ca59d55221141d01f8e",
+            "name": "AIN Web Tool-15-D-STTest2",
+            "isPermitted": true
+          },
+          {
+            "id": "1178612d2b394be4834ad77f567c0af2",
+            "name": "AIN Web Tool-15-D-SSPtestcustome",
+            "isPermitted": true
+          },
+          {
+            "id": "19c5ade915eb461e8af52fb2fd8cd1f2",
+            "name": "AIN Web Tool-15-D-UncheckedEcopm",
+            "isPermitted": true
+          },
+          {
+            "id": "de007636e25249238447264a988a927b",
+            "name": "AIN Web Tool-15-D-dfsdf",
+            "isPermitted": true
+          },
+          {
+            "id": "62f29b3613634ca6a3065cbe0e020c44",
+            "name": "AIN/SMS-16-D-Multiservices1",
+            "isPermitted": true
+          },
+          {
+            "id": "649289e30d3244e0b48098114d63c2aa",
+            "name": "AIN Web Tool-15-D-SSPST66",
+            "isPermitted": true
+          },
+          {
+            "id": "3f21eeea6c2c486bba31dab816c05a32",
+            "name": "AIN Web Tool-15-D-ASSPST47",
+            "isPermitted": true
+          },
+          {
+            "id": "f60ce21d3ee6427586cff0d22b03b773",
+            "name": "CESAR-100-D-sspjg67246",
+            "isPermitted": true
+          },
+          {
+            "id": "8774659e425f479895ae091bb5d46560",
+            "name": "CESAR-100-D-sspjg68359",
+            "isPermitted": true
+          },
+          {
+            "id": "624eb554b0d147c19ff8885341760481",
+            "name": "AINWebTool-15-D-iftach",
+            "isPermitted": true
+          },
+          {
+            "id": "214f55f5fc414c678059c383b03e4962",
+            "name": "CESAR-100-D-sspjg612401",
+            "isPermitted": true
+          },
+          {
+            "id": "c90666c291664841bb98e4d981ff1db5",
+            "name": "CESAR-100-D-sspjg621340",
+            "isPermitted": true
+          },
+          {
+            "id": "ce5b6bc5c7b348e1bf4b91ac9a174278",
+            "name": "sspjg621351cloned",
+            "isPermitted": true
+          },
+          {
+            "id": "b386b768a3f24c8e953abbe0b3488c02",
+            "name": "AINWebTool-15-D-eteancomp",
+            "isPermitted": true
+          },
+          {
+            "id": "dc6c4dbfd225474e9deaadd34968646c",
+            "name": "AINWebTool-15-T-SPFET",
+            "isPermitted": true
+          },
+          {
+            "id": "02cb5030e9914aa4be120bd9ed1e19eb",
+            "name": "AINWebTool-15-X-eeweww",
+            "isPermitted": true
+          },
+          {
+            "id": "f2f3830e4c984d45bcd00e1a04158a79",
+            "name": "CESAR-100-D-spjg61909",
+            "isPermitted": true
+          },
+          {
+            "id": "05b91bd5137f4929878edd965755c06d",
+            "name": "CESAR-100-D-sspjg621512cloned",
+            "isPermitted": true
+          },
+          {
+            "id": "7002fbe8482d4a989ddf445b1ce336e0",
+            "name": "AINWebTool-15-X-vdr",
+            "isPermitted": true
+          },
+          {
+            "id": "4008522be43741dcb1f5422022a2aa0b",
+            "name": "AINWebTool-15-D-ssasa",
+            "isPermitted": true
+          },
+          {
+            "id": "f44e2e96a1b6476abfda2fa407b00169",
+            "name": "AINWebTool-15-D-PFNPT",
+            "isPermitted": true
+          },
+          {
+            "id": "b69a52bec8a84669a37a1e8b72708be7",
+            "name": "AINWebTool-15-X-vdre",
+            "isPermitted": true
+          },
+          {
+            "id": "fac7d9fd56154caeb9332202dcf2969f",
+            "name": "AINWebTool-15-X-NONPODECOMP",
+            "isPermitted": true
+          },
+          {
+            "id": "2d34d8396e194eb49969fd61ffbff961",
+            "name": "DN5242-Nov16-T5",
+            "isPermitted": true
+          },
+          {
+            "id": "cb42a77ff45b48a8b8deb83bb64acc74",
+            "name": "ro-T11",
             "isPermitted": true
           },
           {
             "name": "ro-T112",
             "isPermitted": true
           },
+          {
+            "id": "4914ab0ab3a743e58f0eefdacc1dde77",
+            "name": "DN5242-Nov21-T1",
+            "isPermitted": true
+          },
+          {
+            "id": "d0a3e3f2964542259d155a81c41aadc3",
+            "name": "test-hvf6-09",
+            "isPermitted": true
+          },
           {
             "id": "cbb99fe4ada84631b7baf046b6fd2044",
             "name": "DN5242-Nov16-T3",
     "productFamilies": [
       {
         "id": "ebc3bc3d-62fd-4a3f-a037-f619df4ff034",
-        "name": "SCOTTIE",
+        "name": "ERICA",
         "isPermitted": true
       },
       {
       },
       {
         "id": "323d69d9-2efe-4r45-ay0a-89ea7ard4e6f",
-        "name": "vSCP",
+        "name": "vEsmeralda",
         "isPermitted": true
       },
       {
         "isPermitted": true
       },
       {
-        "id": "Cisneros",
+        "id": "vMuriel",
         "name": "vMuriel",
         "isPermitted": true
       },
       },
       {
         "id": "d7bb0a21-66f2-4e6d-87d9-9ef3ced63ae4",
-        "name": "Josefina",
+        "name": "JOSEFINA",
         "isPermitted": true
       },
       {
         },
         {
           "id": "6",
-          "name": "vSEGW",
+          "name": "vPorfirio",
           "isPermitted": false
         },
         {
         },
         {
           "id": "9",
-          "name": "vMME",
+          "name": "vFLORENCE",
           "isPermitted": false
         },
         {
         },
         {
           "id": "11",
-          "name": "vSCP",
+          "name": "vEsmeralda",
           "isPermitted": false
         },
         {
         },
         {
           "id": "13",
-          "name": "vMMSC",
+          "name": "vWINIFRED",
           "isPermitted": false
         },
         {
         "id": "YYY1",
         "name": "UUUAIAAI-YYY1"
       },
+      {
+        "id": "BAN1",
+        "name": "VSDKYUTP-BAN1"
+      },
+      {
+        "id": "DKJ1",
+        "name": "DKJSJDKA-DKJ1"
+      },
+      {
+        "id": "MCS1",
+        "name": "ASACMAMS-MCS1"
+      },
+      {
+        "id": "UIO1",
+        "name": "uioclli1-UIO1"
+      },
+      {
+        "id": "RAJ1",
+        "name": "YGBIJNLQ-RAJ1"
+      },
+      {
+        "id": "OPA1",
+        "name": "opaclli1-OPA1"
+      },
+      {
+        "id": "SDE1",
+        "name": "ZXCVBNMA-SDE1"
+      },
+      {
+        "id": "VEN2",
+        "name": "FGHJUHIL-VEN2"
+      },
+      {
+        "id": "ORL1",
+        "name": "ORLDFLMA-ORL1"
+      },
+      {
+        "id": "JAD1",
+        "name": "JADECLLI-JAD1"
+      },
+      {
+        "id": "ZXL1",
+        "name": "LWLWCANN-ZXL1"
+      },
+      {
+        "id": "CKL1",
+        "name": "CLKSKCKK-CKL1"
+      },
+      {
+        "id": "SDF1",
+        "name": "sdfclli1-SDF1"
+      },
+      {
+        "id": "RAD1",
+        "name": "RADICAL1-RAD1"
+      },
+      {
+        "id": "KIT1",
+        "name": "BHYJFGLN-KIT1"
+      },
+      {
+        "id": "REL1",
+        "name": "INGERFGT-REL1"
+      },
+      {
+        "id": "JNL1",
+        "name": "CJALSDAC-JNL1"
+      },
+      {
+        "id": "OLK1",
+        "name": "OLKOLKLS-OLK1"
+      },
+      {
+        "id": "CHI1",
+        "name": "CHILLIWE-CHI1"
+      },
+      {
+        "id": "UUU4",
+        "name": "UUUAAAUU-UUU4"
+      },
+      {
+        "id": "TUF1",
+        "name": "TUFCLLI1-TUF1"
+      },
+      {
+        "id": "KJN1",
+        "name": "CKALDKSA-KJN1"
+      },
+      {
+        "id": "SAM1",
+        "name": "SNDGCA64-SAN1"
+      },
+      {
+        "id": "SCK1",
+        "name": "SCKSCKSK-SCK1"
+      },
+      {
+        "id": "HJH1",
+        "name": "AOEEQQQD-HJH1"
+      },
+      {
+        "id": "HGD1",
+        "name": "SDFQWHGD-HGD1"
+      },
+      {
+        "id": "KOR1",
+        "name": "HYFLNBVT-KOR1"
+      },
+      {
+        "id": "ATL43",
+        "name": "AICLOCID-ATL43"
+      },
+      {
+        "id": "ATL54",
+        "name": "AICFTAAI-ATL54"
+      },
+      {
+        "id": "ATL66",
+        "name": "CLLIAAII-ATL66"
+      },
+      {
+        "id": "VEL1",
+        "name": "BNMLKUIK-VEL1"
+      },
+      {
+        "id": "ICC1",
+        "name": "SANJITAT-ICC1"
+      },
+      {
+        "id": "MNT11",
+        "name": "WSXEFBTH-MNT11"
+      },
+      {
+        "id": "DEF2",
+        "name": "WSBHGTYL-DEF2"
+      },
+      {
+        "id": "MAD11",
+        "name": "SDFQWGKL-MAD11"
+      },
+      {
+        "id": "OLG1",
+        "name": "OLHOLHOL-OLG1"
+      },
+      {
+        "id": "GAR1",
+        "name": "NGFVSJKO-GAR1"
+      },
+      {
+        "id": "SAN22",
+        "name": "GNVLSCTL-SAN22"
+      },
+      {
+        "id": "HRG1",
+        "name": "HRGHRGGS-HRG1"
+      },
+      {
+        "id": "JCS1",
+        "name": "JCSJSCJS-JCS1"
+      },
+      {
+        "id": "DHA12",
+        "name": "WSXEDECF-DHA12"
+      },
+      {
+        "id": "HJE1",
+        "name": "AOEEWWWD-HJE1"
+      },
+      {
+        "id": "NCA1",
+        "name": "NCANCANN-NCA1"
+      },
+      {
+        "id": "IOP1",
+        "name": "iopclli1-IOP1"
+      },
+      {
+        "id": "RTY1",
+        "name": "rtyclli1-RTY1"
+      },
+      {
+        "id": "KAP1",
+        "name": "HIOUYTRQ-KAP1"
+      },
+      {
+        "id": "ZEN1",
+        "name": "ZENCLLI1-ZEN1"
+      },
+      {
+        "id": "HKA1",
+        "name": "JAKHLASS-HKA1"
+      },
+      {
+        "id": "CQK1",
+        "name": "CQKSCAKK-CQK1"
+      },
+      {
+        "id": "SAI1",
+        "name": "UBEKQLPD-SAI1"
+      },
+      {
+        "id": "ERT1",
+        "name": "ertclli1-ERT1"
+      },
+      {
+        "id": "IBB1",
+        "name": "PLMKOIJU-IBB1"
+      },
+      {
+        "id": "TIR2",
+        "name": "PLKINHYI-TIR2"
+      },
+      {
+        "id": "HSD1",
+        "name": "CHASKCDS-HSD1"
+      },
+      {
+        "id": "SLF78",
+        "name": "SDCTLFN1-SLF78"
+      },
+      {
+        "id": "SEE78",
+        "name": "SDCTEEE4-SEE78"
+      },
+      {
+        "id": "SAN13",
+        "name": "TOKYJPFA-SAN13"
+      },
+      {
+        "id": "SAA78",
+        "name": "SDCTAAA1-SAA78"
+      },
+      {
+        "id": "LUC1",
+        "name": "ATLDFGYC-LUC1"
+      },
+      {
+        "id": "AMD13",
+        "name": "MEMATLAN-AMD13"
+      },
+      {
+        "id": "TOR1",
+        "name": "TOROONXN-TOR1"
+      },
+      {
+        "id": "QWE1",
+        "name": "QWECLLI1-QWE1"
+      },
+      {
+        "id": "ZOG1",
+        "name": "ZOGASTRO-ZOG1"
+      },
+      {
+        "id": "CAL33",
+        "name": "CALIFORN-CAL33"
+      },
+      {
+        "id": "SHH78",
+        "name": "SDIT1HHH-SHH78"
+      },
+      {
+        "id": "DSA1",
+        "name": "LKJHGFDS-DSA1"
+      },
+      {
+        "id": "CLG1",
+        "name": "CLGRABAD-CLG1"
+      },
+      {
+        "id": "BNA1",
+        "name": "BNARAGBK-BNA1"
+      },
+      {
+        "id": "ATL84",
+        "name": "CANTTCOC-ATL84"
+      },
+      {
+        "id": "APP1",
+        "name": "WBHGTYUI-APP1"
+      },
+      {
+        "id": "RJN1",
+        "name": "RJNRBZAW-RJN1"
+      },
+      {
+        "id": "EHH78",
+        "name": "SDCSHHH5-EHH78"
+      },
+      {
+        "id": "mac10",
+        "name": "PKGTESTF-mac10"
+      },
+      {
+        "id": "SXB78",
+        "name": "SDCTGXB1-SXB78"
+      },
+      {
+        "id": "SAX78",
+        "name": "SDCTAXG1-SAX78"
+      },
+      {
+        "id": "SYD1",
+        "name": "SYDNAUBV-SYD1"
+      },
+      {
+        "id": "TOK1",
+        "name": "TOKYJPFA-TOK1"
+      },
+      {
+        "id": "KGM2",
+        "name": "KGMTNC20-KGM2"
+      },
+      {
+        "id": "DCC1b",
+        "name": "POIUYTGH-DCC1b"
+      },
+      {
+        "id": "SKK78",
+        "name": "SDCTKKK1-SKK78"
+      },
+      {
+        "id": "SGG78",
+        "name": "SDCTGGG1-SGG78"
+      },
+      {
+        "id": "SJJ78",
+        "name": "SDCTJJJ1-SJJ78"
+      },
+      {
+        "id": "SBX78",
+        "name": "SDCTBXG1-SBX78"
+      },
+      {
+        "id": "LAG1",
+        "name": "LARGIZON-LAG1"
+      },
+      {
+        "id": "IAA1",
+        "name": "QAZXSWED-IAA1"
+      },
+      {
+        "id": "POI1",
+        "name": "PLMNJKIU-POI1"
+      },
+      {
+        "id": "LAG1a",
+        "name": "LARGIZON-LAG1a"
+      },
+      {
+        "id": "PBL1",
+        "name": "PBLAPBAI-PBL1"
+      },
+      {
+        "id": "LAG45",
+        "name": "LARGIZON-LAG1a"
+      },
+      {
+        "id": "MAR1",
+        "name": "MNBVCXZM-MAR1"
+      },
+      {
+        "id": "HST70",
+        "name": "HSTNTX70-HST70"
+      },
+      {
+        "id": "DCC1a",
+        "name": "POIUYTGH-DCC1a"
+      },
+      {
+        "id": "TOL1",
+        "name": "TOLDOH21-TOL1"
+      },
+      {
+        "id": "LON1",
+        "name": "LONEENCO-LON1"
+      },
+      {
+        "id": "SJU78",
+        "name": "SDIT1JUB-SJU78"
+      },
+      {
+        "id": "STN27",
+        "name": "HSTNTX01-STN27"
+      },
+      {
+        "id": "SSW56",
+        "name": "ss8126GT-SSW56"
+      },
+      {
+        "id": "SBB78",
+        "name": "SDIT1BBB-SBB78"
+      },
+      {
+        "id": "DCC3",
+        "name": "POIUYTGH-DCC3"
+      },
+      {
+        "id": "GNV1",
+        "name": "GNVLSCTL-GNV1"
+      },
+      {
+        "id": "WAS1",
+        "name": "WASHDCSW-WAS1"
+      },
+      {
+        "id": "TOY1",
+        "name": "TORYONNZ-TOY1"
+      },
+      {
+        "id": "STT1",
+        "name": "STTLWA02-STT1"
+      },
+      {
+        "id": "STG1",
+        "name": "STTGGE62-STG1"
+      },
+      {
+        "id": "SLL78",
+        "name": "SDCTLLL1-SLL78"
+      },
+      {
+        "id": "SBU78",
+        "name": "SDIT1BUB-SBU78"
+      },
+      {
+        "id": "ATL2",
+        "name": "ATLNGANW-ATL2"
+      },
+      {
+        "id": "BOT1",
+        "name": "BOTHWAKY-BOT1"
+      },
+      {
+        "id": "SNG1",
+        "name": "SNGPSIAU-SNG1"
+      },
+      {
+        "id": "NYC1",
+        "name": "NYCMNY54-NYC1"
+      },
+      {
+        "id": "LAG1b",
+        "name": "LARGIZON-LAG1b"
+      },
+      {
+        "id": "AMD15",
+        "name": "AMDFAA01-AMD15"
+      },
+      {
+        "id": "SNA1",
+        "name": "SNANTXCA-SNA1"
+      },
+      {
+        "id": "PLT1",
+        "name": "PLTNCA60-PLT1"
+      },
+      {
+        "id": "TLP1",
+        "name": "TLPNXM18-TLP1"
+      },
+      {
+        "id": "SDD81",
+        "name": "SAIT1DD6-SDD81"
+      },
+      {
+        "id": "DCC1",
+        "name": "POIUYTGH-DCC1"
+      },
+      {
+        "id": "DCC2",
+        "name": "POIUYTGH-DCC2"
+      },
+      {
+        "id": "OKC1",
+        "name": "OKCBOK55-OKC1"
+      },
+      {
+        "id": "PAR1",
+        "name": "PARSFRCG-PAR1"
+      },
+      {
+        "id": "TES36",
+        "name": "ABCEETES-TES36"
+      },
+      {
+        "id": "COM1",
+        "name": "PLMKOPIU-COM1"
+      },
+      {
+        "id": "ANI1",
+        "name": "ATLNGTRE-ANI1"
+      },
+      {
+        "id": "SDG78",
+        "name": "SDIT1BDG-SDG78"
+      },
+      {
+        "id": "mac20",
+        "name": "PKGTESTF-mac20"
+      },
+      {
+        "id": "DSF45",
+        "name": "DSFBG123-DSF45"
+      },
+      {
+        "id": "HST25",
+        "name": "HSTNTX01-HST25"
+      },
+      {
+        "id": "AMD18",
+        "name": "AUDIMA01-AMD18"
+      },
+      {
+        "id": "SAA80",
+        "name": "SAIT9AA3-SAA80"
+      },
+      {
+        "id": "SSA56",
+        "name": "SSIT2AA7-SSA56"
+      },
+      {
+        "id": "SDD82",
+        "name": "SAIT1DD9-SDD82"
+      },
+      {
+        "id": "JCV1",
+        "name": "JCVLFLBW-JCV1"
+      },
+      {
+        "id": "SUL2",
+        "name": "WERTYUJK-SUL2"
+      },
+      {
+        "id": "PUR1",
+        "name": "purelyde-PUR1"
+      },
+      {
+        "id": "FDE55",
+        "name": "FDERT555-FDE55"
+      },
+      {
+        "id": "SITE",
+        "name": "LONEENCO-SITE"
+      },
+      {
+        "id": "ATL1",
+        "name": "ATLNGAMA-ATL1"
+      },
+      {
+        "id": "JUL1",
+        "name": "ZXCVBNMM-JUL1"
+      },
+      {
+        "id": "TAT34",
+        "name": "TESAAISB-TAT34"
+      },
+      {
+        "id": "XCP12",
+        "name": "CHKGH123-XCP12"
+      },
+      {
+        "id": "RAI1",
+        "name": "poiuytre-RAI1"
+      },
+      {
+        "id": "HPO1",
+        "name": "ATLNGAUP-HPO1"
+      },
+      {
+        "id": "KJF12",
+        "name": "KJFDH123-KJF12"
+      },
+      {
+        "id": "SCC80",
+        "name": "SAIT9CC3-SCC80"
+      },
+      {
+        "id": "SAA12",
+        "name": "SAIT9AF8-SAA12"
+      },
+      {
+        "id": "SAA14",
+        "name": "SAIT1AA9-SAA14"
+      },
+      {
+        "id": "ATL35",
+        "name": "TTESSAAI-ATL35"
+      },
+      {
+        "id": "CWY1",
+        "name": "CWYMOWBS-CWY1"
+      },
+      {
+        "id": "ATL76",
+        "name": "TELEPAAI-ATL76"
+      },
+      {
+        "id": "DSL12",
+        "name": "DSLFK242-DSL12"
+      },
+      {
+        "id": "ATL53",
+        "name": "AAIATLTE-ATL53"
+      },
+      {
+        "id": "SAA11",
+        "name": "SAIT9AA2-SAA11"
+      },
+      {
+        "id": "ATL62",
+        "name": "TESSASCH-ATL62"
+      },
+      {
+        "id": "AUG1",
+        "name": "ASDFGHJK-AUG1"
+      },
+      {
+        "id": "POI22",
+        "name": "POIUY123-POI22"
+      },
+      {
+        "id": "SAA13",
+        "name": "SAIT1AA9-SAA13"
+      },
+      {
+        "id": "BHY17",
+        "name": "BHYTFRF3-BHY17"
+      },
+      {
+        "id": "LIS1",
+        "name": "HOSTPROF-LIS1"
+      },
+      {
+        "id": "SIP1",
+        "name": "ZXCVBNMK-SIP1"
+      },
+      {
+        "id": "ATL99",
+        "name": "TEESTAAI-ATL43"
+      },
+      {
+        "id": "ATL64",
+        "name": "FORLOAAJ-ATL64"
+      },
+      {
+        "id": "TAT33",
+        "name": "TESAAISA-TAT33"
+      },
+      {
+        "id": "RAD10",
+        "name": "INDIPUNE-RAD10"
+      },
+      {
+        "id": "RTW5",
+        "name": "BHYTFRY4-RTW5"
+      },
+      {
+        "id": "JGS1",
+        "name": "KSJKKKKK-JGS1"
+      },
+      {
+        "id": "ATL98",
+        "name": "TEESTAAI-ATL43"
+      },
+      {
+        "id": "WAN1",
+        "name": "LEIWANGW-WAN1"
+      },
+      {
+        "id": "ATL44",
+        "name": "ATLSANAB-ATL44"
+      },
+      {
+        "id": "RTD2",
+        "name": "BHYTFRk4-RTD2"
+      },
+      {
+        "id": "NIR1",
+        "name": "ORFLMANA-NIR1"
+      },
+      {
+        "id": "ATL75",
+        "name": "SANAAIRE-ATL75"
+      },
+      {
+        "id": "NUM1",
+        "name": "QWERTYUI-NUM1"
+      },
+      {
+        "id": "hvf32",
+        "name": "MDTWNJ21-hvf32"
+      },
+      {
+        "id": "RTZ4",
+        "name": "BHYTFRZ6-RTZ4"
+      },
+      {
+        "id": "ATL56",
+        "name": "ATLSANAC-ATL56"
+      },
+      {
+        "id": "AMS1",
+        "name": "AMSTNLBW-AMS1"
+      },
+      {
+        "id": "RCT1",
+        "name": "AMSTERNL-RCT1"
+      },
+      {
+        "id": "JAN1",
+        "name": "ORFLMATT-JAN1"
+      },
+      {
+        "id": "ABC14",
+        "name": "TESAAISA-ABC14"
+      },
+      {
+        "id": "TAT37",
+        "name": "TESAAISD-TAT37"
+      },
+      {
+        "id": "MIC54",
+        "name": "MICHIGAN-MIC54"
+      },
+      {
+        "id": "ABC11",
+        "name": "ATLSANAI-ABC11"
+      },
+      {
+        "id": "AMF11",
+        "name": "AMDOCS01-AMF11"
+      },
+      {
+        "id": "ATL63",
+        "name": "ATLSANEW-ATL63"
+      },
+      {
+        "id": "ABC12",
+        "name": "ATLSECIA-ABC12"
+      },
+      {
+        "id": "hvf20",
+        "name": "MDTWNJ21-hvf20"
+      },
+      {
+        "id": "ABC15",
+        "name": "AAITESAN-ABC15"
+      },
       {
         "id": "AVT1",
         "name": "AVTRFLHD-AVT1"
index b8c3136..c4b8ef4 100644 (file)
@@ -2,15 +2,10 @@
   "CREATE_INSTANCE_TEST": false,
   "EMPTY_DRAWING_BOARD_TEST": false,
   "FLAG_NETWORK_TO_ASYNC_INSTANTIATION": false,
-  "FLAG_ASYNC_INSTANTIATION": true,
-  "FLAG_ASYNC_JOBS": true,
   "FLAG_ADD_MSO_TESTAPI_FIELD": true,
-  "FLAG_UNASSIGN_SERVICE": false,
   "FLAG_SERVICE_MODEL_CACHE": false,
-  "FLAG_COLLECTION_RESOURCE_SUPPORT": true,
   "FLAG_SHOW_ASSIGNMENTS": true,
   "FLAG_FABRIC_CONFIGURATION_ASSIGNMENTS": true,
-  "FLAG_DUPLICATE_VNF":true,
   "FLAG_DEFAULT_VNF" : true,
   "FLAG_SETTING_DEFAULTS_IN_DRAWING_BOARD" : true,
   "FLAG_A_LA_CARTE_AUDIT_INFO": true,
@@ -19,5 +14,6 @@
   "FLAG_1810_CR_SOFT_DELETE_ALACARTE_VF_MODULE": true,
   "FLAG_1902_NEW_VIEW_EDIT": true,
   "FLAG_VF_MODULE_RESUME_STATUS_CREATE" : true,
-  "FLAG_1906_COMPONENT_INFO": true
+  "FLAG_1906_COMPONENT_INFO": true,
+  "FLAG_1908_RESUME_MACRO_SERVICE": true
 }
index 5cb1c86..f689085 100644 (file)
@@ -8,24 +8,24 @@
     "category": "Network L1-3",
     "serviceType": "pnf",
     "serviceRole": "Testing",
-    "description": "ADIOD vMX vPE based on Juniper 17.2 release. Updated with updated VF for v8.0 of VLM",
+    "description": "PASQUALE vMX vPE based on Juniper 17.2 release. Updated with updated VF for v8.0 of VLM",
     "serviceEcompNaming": "false",
     "instantiationType": "Macro",
     "inputs": {}
   },
   "vnfs": {
-    "2017-388_ADIOD-vPE 1": {
+    "2017-388_PASQUALE-vPE 1": {
       "uuid": "0903e1c0-8e03-4936-b5c2-260653b96413",
       "invariantUuid": "00beb8f9-6d39-452f-816d-c709b9cbb87d",
-      "description": "Name ADIOD vPE Description The provider edge function for the ADIOD service supported by the Junipers VMX product Category Router Vendor Juniper Vendor Release Code 17.2 Owners Mary Fragale. Updated 9-25 to use v8.0 of the Juniper Valid 2 VLM",
-      "name": "2017-388_ADIOD-vPE",
+      "description": "Name PASQUALE vPE Description The provider edge function for the PASQUALE service supported by the Junipers VMX product Category Router Vendor Juniper Vendor Release Code 17.2 Owners Mary Fragale. Updated 9-25 to use v8.0 of the Juniper Valid 2 VLM",
+      "name": "2017-388_PASQUALE-vPE",
       "version": "1.0",
       "customizationUuid": "280dec31-f16d-488b-9668-4aae55d6648a",
       "inputs": {},
       "commands": {},
       "properties": {
         "vmxvre_retype": "RE-VMX",
-        "vnf_config_template_version": "get_input:2017488_adiodvpe0_vnf_config_template_version",
+        "vnf_config_template_version": "get_input:2017488_pasqualevpe0_vnf_config_template_version",
         "sriov44_net_id": "48d399b3-11ee-48a8-94d2-f0ea94d6be8d",
         "int_ctl_net_id": "2f323477-6936-4d01-ac53-d849430281d9",
         "vmxvpfe_sriov41_0_port_mac": "00:11:22:EF:AC:DF",
@@ -70,7 +70,7 @@
         "vmxvpfe_sriov43_0_port_unknownmulticastallow": "true",
         "vmxvre_int_ctl_ip_0": "10.0.0.10",
         "ecomp_generated_naming": "true",
-        "AIC_CLLI": "get_input:2017488_adiodvpe0_AIC_CLLI",
+        "AIC_CLLI": "get_input:2017488_pasqualevpe0_AIC_CLLI",
         "vnf_name": "mtnj309me6vre",
         "vmxvpfe_sriov41_0_port_unknownunicastallow": "true",
         "vmxvre_volume_type_1": "HITACHI",
         "vmxvre_volume_type_0": "HITACHI",
         "vmxvpfe_volume_type_0": "HITACHI",
         "vmxvpfe_sriov43_0_port_broadcastallow": "true",
-        "bandwidth_units": "get_input:2017488_adiodvpe0_bandwidth_units",
+        "bandwidth_units": "get_input:2017488_pasqualevpe0_bandwidth_units",
         "vnf_id": "123",
         "vmxvre_oam_prefix": "24",
         "availability_zone_0": "mtpocfo-kvm-az01",
-        "ASN": "get_input:2017488_adiodvpe0_ASN",
+        "ASN": "get_input:2017488_pasqualevpe0_ASN",
         "vmxvre_chassis_i2cid": "161",
         "vmxvpfe_name_0": "vPFEXI",
-        "bandwidth": "get_input:2017488_adiodvpe0_bandwidth",
+        "bandwidth": "get_input:2017488_pasqualevpe0_bandwidth",
         "availability_zone_max_count": "1",
         "vmxvre_volume_size_0": "45.0",
         "vmxvre_volume_size_1": "50.0",
@@ -95,7 +95,7 @@
         "vmxvre_ore_present": "0",
         "vmxvre_volume_name_0": "vREXI_FBVolume",
         "vmxvre_type": "0",
-        "vnf_instance_name": "get_input:2017488_adiodvpe0_vnf_instance_name",
+        "vnf_instance_name": "get_input:2017488_pasqualevpe0_vnf_instance_name",
         "vmxvpfe_sriov41_0_port_unknownmulticastallow": "true",
         "oam_net_id": "b95eeb1d-d55d-4827-abb4-8ebb94941429",
         "vmx_int_ctl_len": "24",
         "vmxvpfe_flavor_name": "ns.c20r16d25.v5"
       },
       "type": "VF",
-      "modelCustomizationName": "2017-388_ADIOD-vPE 1",
+      "modelCustomizationName": "2017-388_PASQUALE-vPE 1",
       "vfModules": {},
       "volumeGroups": {},
       "vfcInstanceGroups": {}
     },
-    "2017-388_ADIOD-vPE 0": {
+    "2017-388_PASQUALE-vPE 0": {
       "uuid": "afacccf6-397d-45d6-b5ae-94c39734b168",
       "invariantUuid": "72e465fe-71b1-4e7b-b5ed-9496118ff7a8",
-      "description": "Name ADIOD vPE Description The provider edge function for the ADIOD service supported by the Junipers VMX product Category Router Vendor Juniper Vendor Release Code 17.2 Owners Mary Fragale. Updated 9-25 to use v8.0 of the Juniper Valid 2 VLM",
-      "name": "2017-388_ADIOD-vPE",
+      "description": "Name PASQUALE vPE Description The provider edge function for the PASQUALE service supported by the Junipers VMX product Category Router Vendor Juniper Vendor Release Code 17.2 Owners Mary Fragale. Updated 9-25 to use v8.0 of the Juniper Valid 2 VLM",
+      "name": "2017-388_PASQUALE-vPE",
       "version": "4.0",
       "customizationUuid": "b3c76f73-eeb5-4fb6-9d31-72a889f1811c",
       "inputs": {},
       "commands": {},
       "properties": {
         "vmxvre_retype": "RE-VMX",
-        "vnf_config_template_version": "get_input:2017488_adiodvpe0_vnf_config_template_version",
+        "vnf_config_template_version": "get_input:2017488_pasqualevpe0_vnf_config_template_version",
         "sriov44_net_id": "48d399b3-11ee-48a8-94d2-f0ea94d6be8d",
         "int_ctl_net_id": "2f323477-6936-4d01-ac53-d849430281d9",
         "vmxvpfe_sriov41_0_port_mac": "00:11:22:EF:AC:DF",
         "vmxvpfe_sriov43_0_port_unknownmulticastallow": "true",
         "vmxvre_int_ctl_ip_0": "10.0.0.10",
         "ecomp_generated_naming": "true",
-        "AIC_CLLI": "get_input:2017488_adiodvpe0_AIC_CLLI",
+        "AIC_CLLI": "get_input:2017488_pasqualevpe0_AIC_CLLI",
         "vnf_name": "mtnj309me6vre",
         "vmxvpfe_sriov41_0_port_unknownunicastallow": "true",
         "vmxvre_volume_type_1": "HITACHI",
         "vmxvre_volume_type_0": "HITACHI",
         "vmxvpfe_volume_type_0": "HITACHI",
         "vmxvpfe_sriov43_0_port_broadcastallow": "true",
-        "bandwidth_units": "get_input:2017488_adiodvpe0_bandwidth_units",
+        "bandwidth_units": "get_input:2017488_pasqualevpe0_bandwidth_units",
         "vnf_id": "123",
         "vmxvre_oam_prefix": "24",
         "availability_zone_0": "mtpocfo-kvm-az01",
-        "ASN": "get_input:2017488_adiodvpe0_ASN",
+        "ASN": "get_input:2017488_pasqualevpe0_ASN",
         "vmxvre_chassis_i2cid": "161",
         "vmxvpfe_name_0": "vPFEXI",
-        "bandwidth": "get_input:2017488_adiodvpe0_bandwidth",
+        "bandwidth": "get_input:2017488_pasqualevpe0_bandwidth",
         "availability_zone_max_count": "1",
         "vmxvre_volume_size_0": "45.0",
         "vmxvre_volume_size_1": "50.0",
         "vmxvre_ore_present": "0",
         "vmxvre_volume_name_0": "vREXI_FBVolume",
         "vmxvre_type": "0",
-        "vnf_instance_name": "get_input:2017488_adiodvpe0_vnf_instance_name",
+        "vnf_instance_name": "get_input:2017488_pasqualevpe0_vnf_instance_name",
         "vmxvpfe_sriov41_0_port_unknownmulticastallow": "true",
         "oam_net_id": "b95eeb1d-d55d-4827-abb4-8ebb94941429",
         "vmx_int_ctl_len": "24",
         "vmxvpfe_flavor_name": "ns.c20r16d25.v5"
       },
       "type": "VF",
-      "modelCustomizationName": "2017-388_ADIOD-vPE 0",
+      "modelCustomizationName": "2017-388_PASQUALE-vPE 0",
       "vfModules": {},
       "volumeGroups": {},
       "vfcInstanceGroups": {}
     },
-    "2017-488_ADIOD-vPE 0": {
+    "2017-488_PASQUALE-vPE 0": {
       "uuid": "69e09f68-8b63-4cc9-b9ff-860960b5db09",
       "invariantUuid": "72e465fe-71b1-4e7b-b5ed-9496118ff7a8",
-      "description": "Name ADIOD vPE Description The provider edge function for the ADIOD service supported by the Junipers VMX product Category Router Vendor Juniper Vendor Release Code 17.2 Owners Mary Fragale. Updated 9-25 to use v8.0 of the Juniper Valid 2 VLM",
-      "name": "2017-488_ADIOD-vPE",
+      "description": "Name PASQUALE vPE Description The provider edge function for the PASQUALE service supported by the Junipers VMX product Category Router Vendor Juniper Vendor Release Code 17.2 Owners Mary Fragale. Updated 9-25 to use v8.0 of the Juniper Valid 2 VLM",
+      "name": "2017-488_PASQUALE-vPE",
       "version": "5.0",
       "customizationUuid": "1da7b585-5e61-4993-b95e-8e6606c81e45",
       "inputs": {},
       "commands": {},
       "properties": {
         "vmxvre_retype": "RE-VMX",
-        "vnf_config_template_version": "get_input:2017488_adiodvpe0_vnf_config_template_version",
+        "vnf_config_template_version": "get_input:2017488_pasqualevpe0_vnf_config_template_version",
         "sriov44_net_id": "48d399b3-11ee-48a8-94d2-f0ea94d6be8d",
         "int_ctl_net_id": "2f323477-6936-4d01-ac53-d849430281d9",
         "vmxvpfe_sriov41_0_port_mac": "00:11:22:EF:AC:DF",
         "vmxvpfe_sriov43_0_port_unknownmulticastallow": "true",
         "vmxvre_int_ctl_ip_0": "10.0.0.10",
         "ecomp_generated_naming": "true",
-        "AIC_CLLI": "get_input:2017488_adiodvpe0_AIC_CLLI",
+        "AIC_CLLI": "get_input:2017488_pasqualevpe0_AIC_CLLI",
         "vnf_name": "mtnj309me6vre",
         "vmxvpfe_sriov41_0_port_unknownunicastallow": "true",
         "vmxvre_volume_type_1": "HITACHI",
         "vmxvre_volume_type_0": "HITACHI",
         "vmxvpfe_volume_type_0": "HITACHI",
         "vmxvpfe_sriov43_0_port_broadcastallow": "true",
-        "bandwidth_units": "get_input:2017488_adiodvpe0_bandwidth_units",
+        "bandwidth_units": "get_input:2017488_pasqualevpe0_bandwidth_units",
         "vnf_id": "123",
         "vmxvre_oam_prefix": "24",
         "availability_zone_0": "mtpocfo-kvm-az01",
-        "ASN": "get_input:2017488_adiodvpe0_ASN",
+        "ASN": "get_input:2017488_pasqualevpe0_ASN",
         "vmxvre_chassis_i2cid": "161",
         "vmxvpfe_name_0": "vPFEXI",
-        "bandwidth": "get_input:2017488_adiodvpe0_bandwidth",
+        "bandwidth": "get_input:2017488_pasqualevpe0_bandwidth",
         "availability_zone_max_count": "1",
         "vmxvre_volume_size_0": "45.0",
         "vmxvre_volume_size_1": "50.0",
         "vmxvre_ore_present": "0",
         "vmxvre_volume_name_0": "vREXI_FBVolume",
         "vmxvre_type": "0",
-        "vnf_instance_name": "get_input:2017488_adiodvpe0_vnf_instance_name",
+        "vnf_instance_name": "get_input:2017488_pasqualevpe0_vnf_instance_name",
         "vmxvpfe_sriov41_0_port_unknownmulticastallow": "true",
         "oam_net_id": "b95eeb1d-d55d-4827-abb4-8ebb94941429",
         "vmx_int_ctl_len": "24",
         "vmxvpfe_flavor_name": "ns.c20r16d25.v5"
       },
       "type": "VF",
-      "modelCustomizationName": "2017-488_ADIOD-vPE 0",
+      "modelCustomizationName": "2017-488_PASQUALE-vPE 0",
       "vfModules": {
-        "2017488_adiodvpe0..2017488AdiodVpe..ADIOD_vRE_BV..module-1": {
+        "2017488_pasqualevpe0..2017488PasqualeVpe..PASQUALE_vRE_BV..module-1": {
           "uuid": "25284168-24bb-4698-8cb4-3f509146eca5",
           "invariantUuid": "7253ff5c-97f0-4b8b-937c-77aeb4d79aa1",
           "customizationUuid": "f7e7c365-60cf-49a9-9ebf-a1aa11b9d401",
           "description": null,
-          "name": "2017488AdiodVpe..ADIOD_vRE_BV..module-1",
+          "name": "2017488PasqualeVpe..PASQUALE_vRE_BV..module-1",
           "version": "6",
-          "modelCustomizationName": "2017488AdiodVpe..ADIOD_vRE_BV..module-1",
+          "modelCustomizationName": "2017488PasqualeVpe..PASQUALE_vRE_BV..module-1",
           "properties": {
             "minCountInstances": 0,
             "maxCountInstances": null,
             "initialCount": 0,
-            "vfModuleLabel": "ADIOD_vRE_BV"
+            "vfModuleLabel": "PASQUALE_vRE_BV"
           },
           "inputs": {},
           "volumeGroupAllowed": true
         },
-        "2017488_adiodvpe0..2017488AdiodVpe..ADIOD_base_vPE_BV..module-0": {
+        "2017488_pasqualevpe0..2017488PasqualeVpe..PASQUALE_base_vPE_BV..module-0": {
           "uuid": "f8360508-3f17-4414-a2ed-6bc71161e8db",
           "invariantUuid": "b34833bb-6aa9-4ad6-a831-70b06367a091",
           "customizationUuid": "a55961b2-2065-4ab0-a5b7-2fcee1c227e3",
           "description": null,
-          "name": "2017488AdiodVpe..ADIOD_base_vPE_BV..module-0",
+          "name": "2017488PasqualeVpe..PASQUALE_base_vPE_BV..module-0",
           "version": "5",
-          "modelCustomizationName": "2017488AdiodVpe..ADIOD_base_vPE_BV..module-0",
+          "modelCustomizationName": "2017488PasqualeVpe..PASQUALE_base_vPE_BV..module-0",
           "properties": {
             "minCountInstances": 1,
             "maxCountInstances": 1,
             "initialCount": 1,
-            "vfModuleLabel": "ADIOD_base_vPE_BV"
+            "vfModuleLabel": "PASQUALE_base_vPE_BV"
           },
           "inputs": {},
           "volumeGroupAllowed": false
         },
-        "2017488_adiodvpe0..2017488AdiodVpe..ADIOD_vPFE_BV..module-2": {
+        "2017488_pasqualevpe0..2017488PasqualeVpe..PASQUALE_vPFE_BV..module-2": {
           "uuid": "0a0dd9d4-31d3-4c3a-ae89-a02f383e6a9a",
           "invariantUuid": "eff8cc59-53a1-4101-aed7-8cf24ecf8339",
           "customizationUuid": "3cd946bb-50e0-40d8-96d3-c9023520b557",
           "description": null,
-          "name": "2017488AdiodVpe..ADIOD_vPFE_BV..module-2",
+          "name": "2017488PasqualeVpe..PASQUALE_vPFE_BV..module-2",
           "version": "6",
-          "modelCustomizationName": "2017488AdiodVpe..ADIOD_vPFE_BV..module-2",
+          "modelCustomizationName": "2017488PasqualeVpe..PASQUALE_vPFE_BV..module-2",
           "properties": {
             "minCountInstances": 0,
             "maxCountInstances": null,
             "initialCount": 0,
-            "vfModuleLabel": "ADIOD_vPFE_BV"
+            "vfModuleLabel": "PASQUALE_vPFE_BV"
           },
           "inputs": {},
           "volumeGroupAllowed": true
         }
       },
       "volumeGroups": {
-        "2017488_adiodvpe0..2017488AdiodVpe..ADIOD_vRE_BV..module-1": {
+        "2017488_pasqualevpe0..2017488PasqualeVpe..PASQUALE_vRE_BV..module-1": {
           "uuid": "25284168-24bb-4698-8cb4-3f509146eca5",
           "invariantUuid": "7253ff5c-97f0-4b8b-937c-77aeb4d79aa1",
           "customizationUuid": "f7e7c365-60cf-49a9-9ebf-a1aa11b9d401",
           "description": null,
-          "name": "2017488AdiodVpe..ADIOD_vRE_BV..module-1",
+          "name": "2017488PasqualeVpe..PASQUALE_vRE_BV..module-1",
           "version": "6",
-          "modelCustomizationName": "2017488AdiodVpe..ADIOD_vRE_BV..module-1",
+          "modelCustomizationName": "2017488PasqualeVpe..PASQUALE_vRE_BV..module-1",
           "properties": {
             "minCountInstances": 0,
             "maxCountInstances": null,
             "initialCount": 0,
-            "vfModuleLabel": "ADIOD_vRE_BV"
+            "vfModuleLabel": "PASQUALE_vRE_BV"
           },
           "inputs": {}
         },
-        "2017488_adiodvpe0..2017488AdiodVpe..ADIOD_vPFE_BV..module-2": {
+        "2017488_pasqualevpe0..2017488PasqualeVpe..PASQUALE_vPFE_BV..module-2": {
           "uuid": "0a0dd9d4-31d3-4c3a-ae89-a02f383e6a9a",
           "invariantUuid": "eff8cc59-53a1-4101-aed7-8cf24ecf8339",
           "customizationUuid": "3cd946bb-50e0-40d8-96d3-c9023520b557",
           "description": null,
-          "name": "2017488AdiodVpe..ADIOD_vPFE_BV..module-2",
+          "name": "2017488PasqualeVpe..PASQUALE_vPFE_BV..module-2",
           "version": "6",
-          "modelCustomizationName": "2017488AdiodVpe..ADIOD_vPFE_BV..module-2",
+          "modelCustomizationName": "2017488PasqualeVpe..PASQUALE_vPFE_BV..module-2",
           "properties": {
             "minCountInstances": 0,
             "maxCountInstances": null,
             "initialCount": 0,
-            "vfModuleLabel": "ADIOD_vPFE_BV"
+            "vfModuleLabel": "PASQUALE_vPFE_BV"
           },
           "inputs": {}
         }
     }
   },
   "networks": {},
-  "collectionResource": {},
+  "collectionResources": {},
   "configurations": {},
   "serviceProxies": {},
   "vfModules": {
-    "2017488_adiodvpe0..2017488AdiodVpe..ADIOD_vRE_BV..module-1": {
+    "2017488_pasqualevpe0..2017488PasqualeVpe..PASQUALE_vRE_BV..module-1": {
       "uuid": "25284168-24bb-4698-8cb4-3f509146eca5",
       "invariantUuid": "7253ff5c-97f0-4b8b-937c-77aeb4d79aa1",
       "customizationUuid": "f7e7c365-60cf-49a9-9ebf-a1aa11b9d401",
       "description": null,
-      "name": "2017488AdiodVpe..ADIOD_vRE_BV..module-1",
+      "name": "2017488PasqualeVpe..PASQUALE_vRE_BV..module-1",
       "version": "6",
-      "modelCustomizationName": "2017488AdiodVpe..ADIOD_vRE_BV..module-1",
+      "modelCustomizationName": "2017488PasqualeVpe..PASQUALE_vRE_BV..module-1",
       "properties": {
         "minCountInstances": 0,
         "maxCountInstances": null,
         "initialCount": 0,
-        "vfModuleLabel": "ADIOD_vRE_BV"
+        "vfModuleLabel": "PASQUALE_vRE_BV"
       },
       "inputs": {},
       "volumeGroupAllowed": true
     },
-    "2017488_adiodvpe0..2017488AdiodVpe..ADIOD_base_vPE_BV..module-0": {
+    "2017488_pasqualevpe0..2017488PasqualeVpe..PASQUALE_base_vPE_BV..module-0": {
       "uuid": "f8360508-3f17-4414-a2ed-6bc71161e8db",
       "invariantUuid": "b34833bb-6aa9-4ad6-a831-70b06367a091",
       "customizationUuid": "a55961b2-2065-4ab0-a5b7-2fcee1c227e3",
       "description": null,
-      "name": "2017488AdiodVpe..ADIOD_base_vPE_BV..module-0",
+      "name": "2017488PasqualeVpe..PASQUALE_base_vPE_BV..module-0",
       "version": "5",
-      "modelCustomizationName": "2017488AdiodVpe..ADIOD_base_vPE_BV..module-0",
+      "modelCustomizationName": "2017488PasqualeVpe..PASQUALE_base_vPE_BV..module-0",
       "properties": {
         "minCountInstances": 1,
         "maxCountInstances": 1,
         "initialCount": 1,
-        "vfModuleLabel": "ADIOD_base_vPE_BV"
+        "vfModuleLabel": "PASQUALE_base_vPE_BV"
       },
       "inputs": {},
       "volumeGroupAllowed": false
     },
-    "2017488_adiodvpe0..2017488AdiodVpe..ADIOD_vPFE_BV..module-2": {
+    "2017488_pasqualevpe0..2017488PasqualeVpe..PASQUALE_vPFE_BV..module-2": {
       "uuid": "0a0dd9d4-31d3-4c3a-ae89-a02f383e6a9a",
       "invariantUuid": "eff8cc59-53a1-4101-aed7-8cf24ecf8339",
       "customizationUuid": "3cd946bb-50e0-40d8-96d3-c9023520b557",
       "description": null,
-      "name": "2017488AdiodVpe..ADIOD_vPFE_BV..module-2",
+      "name": "2017488PasqualeVpe..PASQUALE_vPFE_BV..module-2",
       "version": "6",
-      "modelCustomizationName": "2017488AdiodVpe..ADIOD_vPFE_BV..module-2",
+      "modelCustomizationName": "2017488PasqualeVpe..PASQUALE_vPFE_BV..module-2",
       "properties": {
         "minCountInstances": 0,
         "maxCountInstances": null,
         "initialCount": 0,
-        "vfModuleLabel": "ADIOD_vPFE_BV"
+        "vfModuleLabel": "PASQUALE_vPFE_BV"
       },
       "inputs": {},
       "volumeGroupAllowed": true
     }
   },
   "volumeGroups": {
-    "2017488_adiodvpe0..2017488AdiodVpe..ADIOD_vRE_BV..module-1": {
+    "2017488_pasqualevpe0..2017488PasqualeVpe..PASQUALE_vRE_BV..module-1": {
       "uuid": "25284168-24bb-4698-8cb4-3f509146eca5",
       "invariantUuid": "7253ff5c-97f0-4b8b-937c-77aeb4d79aa1",
       "customizationUuid": "f7e7c365-60cf-49a9-9ebf-a1aa11b9d401",
       "description": null,
-      "name": "2017488AdiodVpe..ADIOD_vRE_BV..module-1",
+      "name": "2017488PasqualeVpe..PASQUALE_vRE_BV..module-1",
       "version": "6",
-      "modelCustomizationName": "2017488AdiodVpe..ADIOD_vRE_BV..module-1",
+      "modelCustomizationName": "2017488PasqualeVpe..PASQUALE_vRE_BV..module-1",
       "properties": {
         "minCountInstances": 0,
         "maxCountInstances": null,
         "initialCount": 0,
-        "vfModuleLabel": "ADIOD_vRE_BV"
+        "vfModuleLabel": "PASQUALE_vRE_BV"
       },
       "inputs": {}
     },
-    "2017488_adiodvpe0..2017488AdiodVpe..ADIOD_vPFE_BV..module-2": {
+    "2017488_pasqualevpe0..2017488PasqualeVpe..PASQUALE_vPFE_BV..module-2": {
       "uuid": "0a0dd9d4-31d3-4c3a-ae89-a02f383e6a9a",
       "invariantUuid": "eff8cc59-53a1-4101-aed7-8cf24ecf8339",
       "customizationUuid": "3cd946bb-50e0-40d8-96d3-c9023520b557",
       "description": null,
-      "name": "2017488AdiodVpe..ADIOD_vPFE_BV..module-2",
+      "name": "2017488PasqualeVpe..PASQUALE_vPFE_BV..module-2",
       "version": "6",
-      "modelCustomizationName": "2017488AdiodVpe..ADIOD_vPFE_BV..module-2",
+      "modelCustomizationName": "2017488PasqualeVpe..PASQUALE_vPFE_BV..module-2",
       "properties": {
         "minCountInstances": 0,
         "maxCountInstances": null,
         "initialCount": 0,
-        "vfModuleLabel": "ADIOD_vPFE_BV"
+        "vfModuleLabel": "PASQUALE_vPFE_BV"
       },
       "inputs": {}
     }
diff --git a/vid-webpack-master/cypress/support/jsonBuilders/mocks/jsons/serviceInstanceWithVRF.json b/vid-webpack-master/cypress/support/jsonBuilders/mocks/jsons/serviceInstanceWithVRF.json
new file mode 100644 (file)
index 0000000..e69de29
index d34da2b..6f23f31 100644 (file)
@@ -12,7 +12,7 @@
     "serviceEcompNaming": "false",
     "instantiationType": "Macro",
     "inputs": {
-      "2017488_adiodvpe0_ASN": {
+      "2017488_pasqualevpe0_ASN": {
         "type": "string",
         "description": "AV/PE",
         "entry_schema": null,
     },
     "vidNotions": {
       "instantiationUI": "legacy",
-      "modelCategory": "other"
+      "viewEditUI": "legacy",
+      "modelCategory": "other",
+      "instantiationType": "Macro"
     }
   },
   "vnfs": {
-    "2017-388_ADIOD-vPE 1": {
+    "2017-388_PASQUALE-vPE 1": {
       "uuid": "0903e1c0-8e03-4936-b5c2-260653b96413",
       "invariantUuid": "00beb8f9-6d39-452f-816d-c709b9cbb87d",
-      "description": "Name ADIOD vPE Description The provider edge function for the ADIOD service supported by the Junipers VMX product Category Router Vendor Juniper Vendor Release Code 17.2 Owners Mary Fragale. Updated 9-25 to use v8.0 of the Juniper Valid 2 VLM",
-      "name": "2017-388_ADIOD-vPE",
+      "description": "Name PASQUALE vPE Description The provider edge function for the PASQUALE service supported by the Junipers VMX product Category Router Vendor Juniper Vendor Release Code 17.2 Owners Mary Fragale. Updated 9-25 to use v8.0 of the Juniper Valid 2 VLM",
+      "name": "2017-388_PASQUALE-vPE",
       "version": "1.0",
       "customizationUuid": "280dec31-f16d-488b-9668-4aae55d6648a",
       "inputs": {
         "vnf_config_template_version": {
           "displayName": "vnf_config_template_version",
           "command": "get_input",
-          "inputName": "2017488_adiodvpe0_vnf_config_template_version"
+          "inputName": "2017488_pasqualevpe0_vnf_config_template_version"
         },
         "bandwidth_units": {
           "displayName": "bandwidth_units",
           "command": "get_input",
-          "inputName": "adiodvpe0_bandwidth_units"
+          "inputName": "pasqualevpe0_bandwidth_units"
         },
         "bandwidth": {
           "displayName": "bandwidth",
           "command": "get_input",
-          "inputName": "adiodvpe0_bandwidth"
+          "inputName": "pasqualevpe0_bandwidth"
         },
         "AIC_CLLI": {
           "displayName": "AIC_CLLI",
           "command": "get_input",
-          "inputName": "2017488_adiodvpe0_AIC_CLLI"
+          "inputName": "2017488_pasqualevpe0_AIC_CLLI"
         },
         "ASN": {
           "displayName": "ASN",
           "command": "get_input",
-          "inputName": "2017488_adiodvpe0_ASN"
+          "inputName": "2017488_pasqualevpe0_ASN"
         },
         "vnf_instance_name": {
           "displayName": "vnf_instance_name",
           "command": "get_input",
-          "inputName": "2017488_adiodvpe0_vnf_instance_name"
+          "inputName": "2017488_pasqualevpe0_vnf_instance_name"
         }
       },
       "properties": {
         "vmxvre_retype": "RE-VMX",
-        "vnf_config_template_version": "get_input:2017488_adiodvpe0_vnf_config_template_version",
+        "vnf_config_template_version": "get_input:2017488_pasqualevpe0_vnf_config_template_version",
         "sriov44_net_id": "48d399b3-11ee-48a8-94d2-f0ea94d6be8d",
         "int_ctl_net_id": "2f323477-6936-4d01-ac53-d849430281d9",
         "vmxvpfe_sriov41_0_port_mac": "00:11:22:EF:AC:DF",
         "vmxvpfe_sriov43_0_port_unknownmulticastallow": "true",
         "vmxvre_int_ctl_ip_0": "10.0.0.10",
         "ecomp_generated_naming": "false",
-        "AIC_CLLI": "get_input:2017488_adiodvpe0_AIC_CLLI",
+        "AIC_CLLI": "get_input:2017488_pasqualevpe0_AIC_CLLI",
         "vnf_name": "mtnj309me6vre",
         "vmxvpfe_sriov41_0_port_unknownunicastallow": "true",
         "vmxvre_volume_type_1": "HITACHI",
         "vmxvre_volume_type_0": "HITACHI",
         "vmxvpfe_volume_type_0": "HITACHI",
         "vmxvpfe_sriov43_0_port_broadcastallow": "true",
-        "bandwidth_units": "get_input:adiodvpe0_bandwidth_units",
+        "bandwidth_units": "get_input:pasqualevpe0_bandwidth_units",
         "vnf_id": "123",
         "vmxvre_oam_prefix": "24",
         "availability_zone_0": "mtpocfo-kvm-az01",
-        "ASN": "get_input:2017488_adiodvpe0_ASN",
+        "ASN": "get_input:2017488_pasqualevpe0_ASN",
         "vmxvre_chassis_i2cid": "161",
         "vmxvpfe_name_0": "vPFEXI",
-        "bandwidth": "get_input:adiodvpe0_bandwidth",
+        "bandwidth": "get_input:pasqualevpe0_bandwidth",
         "availability_zone_max_count": "1",
         "vmxvre_volume_size_0": "45.0",
         "vmxvre_volume_size_1": "50.0",
         "vmxvre_ore_present": "0",
         "vmxvre_volume_name_0": "vREXI_FBVolume",
         "vmxvre_type": "0",
-        "vnf_instance_name": "get_input:2017488_adiodvpe0_vnf_instance_name",
+        "vnf_instance_name": "get_input:2017488_pasqualevpe0_vnf_instance_name",
         "vmxvpfe_sriov41_0_port_unknownmulticastallow": "true",
         "oam_net_id": "b95eeb1d-d55d-4827-abb4-8ebb94941429",
         "vmx_int_ctl_len": "24",
         "vmxvpfe_flavor_name": "ns.c20r16d25.v5"
       },
       "type": "VF",
-      "modelCustomizationName": "2017-388_ADIOD-vPE 1",
+      "modelCustomizationName": "2017-388_PASQUALE-vPE 1",
       "vfModules": {},
       "volumeGroups": {},
       "vfcInstanceGroups": {}
     },
-    "2017-388_ADIOD-vPE 0": {
+    "2017-388_PASQUALE-vPE 0": {
       "uuid": "afacccf6-397d-45d6-b5ae-94c39734b168",
       "invariantUuid": "72e465fe-71b1-4e7b-b5ed-9496118ff7a8",
-      "description": "Name ADIOD vPE Description The provider edge function for the ADIOD service supported by the Junipers VMX product Category Router Vendor Juniper Vendor Release Code 17.2 Owners Mary Fragale. Updated 9-25 to use v8.0 of the Juniper Valid 2 VLM",
-      "name": "2017-388_ADIOD-vPE",
+      "description": "Name PASQUALE vPE Description The provider edge function for the PASQUALE service supported by the Junipers VMX product Category Router Vendor Juniper Vendor Release Code 17.2 Owners Mary Fragale. Updated 9-25 to use v8.0 of the Juniper Valid 2 VLM",
+      "name": "2017-388_PASQUALE-vPE",
       "version": "4.0",
       "customizationUuid": "b3c76f73-eeb5-4fb6-9d31-72a889f1811c",
       "inputs": {
         "vnf_config_template_version": {
           "displayName": "vnf_config_template_version",
           "command": "get_input",
-          "inputName": "2017488_adiodvpe0_vnf_config_template_version"
+          "inputName": "2017488_pasqualevpe0_vnf_config_template_version"
         },
         "bandwidth_units": {
           "displayName": "bandwidth_units",
           "command": "get_input",
-          "inputName": "adiodvpe0_bandwidth_units"
+          "inputName": "pasqualevpe0_bandwidth_units"
         },
         "bandwidth": {
           "displayName": "bandwidth",
           "command": "get_input",
-          "inputName": "adiodvpe0_bandwidth"
+          "inputName": "pasqualevpe0_bandwidth"
         },
         "AIC_CLLI": {
           "displayName": "AIC_CLLI",
           "command": "get_input",
-          "inputName": "2017488_adiodvpe0_AIC_CLLI"
+          "inputName": "2017488_pasqualevpe0_AIC_CLLI"
         },
         "ASN": {
           "displayName": "ASN",
           "command": "get_input",
-          "inputName": "2017488_adiodvpe0_ASN"
+          "inputName": "2017488_pasqualevpe0_ASN"
         },
         "vnf_instance_name": {
           "displayName": "vnf_instance_name",
           "command": "get_input",
-          "inputName": "2017488_adiodvpe0_vnf_instance_name"
+          "inputName": "2017488_pasqualevpe0_vnf_instance_name"
         }
       },
       "properties": {
         "vmxvre_retype": "RE-VMX",
-        "vnf_config_template_version": "get_input:2017488_adiodvpe0_vnf_config_template_version",
+        "vnf_config_template_version": "get_input:2017488_pasqualevpe0_vnf_config_template_version",
         "sriov44_net_id": "48d399b3-11ee-48a8-94d2-f0ea94d6be8d",
         "int_ctl_net_id": "2f323477-6936-4d01-ac53-d849430281d9",
         "vmxvpfe_sriov41_0_port_mac": "00:11:22:EF:AC:DF",
         "vmxvpfe_sriov43_0_port_unknownmulticastallow": "true",
         "vmxvre_int_ctl_ip_0": "10.0.0.10",
         "ecomp_generated_naming": "false",
-        "AIC_CLLI": "get_input:2017488_adiodvpe0_AIC_CLLI",
+        "AIC_CLLI": "get_input:2017488_pasqualevpe0_AIC_CLLI",
         "vnf_name": "mtnj309me6vre",
         "vmxvpfe_sriov41_0_port_unknownunicastallow": "true",
         "vmxvre_volume_type_1": "HITACHI",
         "vmxvre_volume_type_0": "HITACHI",
         "vmxvpfe_volume_type_0": "HITACHI",
         "vmxvpfe_sriov43_0_port_broadcastallow": "true",
-        "bandwidth_units": "get_input:adiodvpe0_bandwidth_units",
+        "bandwidth_units": "get_input:pasqualevpe0_bandwidth_units",
         "vnf_id": "123",
         "vmxvre_oam_prefix": "24",
         "availability_zone_0": "mtpocfo-kvm-az01",
-        "ASN": "get_input:2017488_adiodvpe0_ASN",
+        "ASN": "get_input:2017488_pasqualevpe0_ASN",
         "vmxvre_chassis_i2cid": "161",
         "vmxvpfe_name_0": "vPFEXI",
-        "bandwidth": "get_input:adiodvpe0_bandwidth",
+        "bandwidth": "get_input:pasqualevpe0_bandwidth",
         "availability_zone_max_count": "1",
         "vmxvre_volume_size_0": "45.0",
         "vmxvre_volume_size_1": "50.0",
         "vmxvre_ore_present": "0",
         "vmxvre_volume_name_0": "vREXI_FBVolume",
         "vmxvre_type": "0",
-        "vnf_instance_name": "get_input:2017488_adiodvpe0_vnf_instance_name",
+        "vnf_instance_name": "get_input:2017488_pasqualevpe0_vnf_instance_name",
         "vmxvpfe_sriov41_0_port_unknownmulticastallow": "true",
         "oam_net_id": "b95eeb1d-d55d-4827-abb4-8ebb94941429",
         "vmx_int_ctl_len": "24",
         "vmxvpfe_flavor_name": "ns.c20r16d25.v5"
       },
       "type": "VF",
-      "modelCustomizationName": "2017-388_ADIOD-vPE 0",
+      "modelCustomizationName": "2017-388_PASQUALE-vPE 0",
       "vfModules": {},
       "volumeGroups": {},
       "vfcInstanceGroups": {}
     },
-    "2017-488_ADIOD-vPE 0": {
+    "2017-488_PASQUALE-vPE 0": {
       "uuid": "69e09f68-8b63-4cc9-b9ff-860960b5db09",
       "invariantUuid": "72e465fe-71b1-4e7b-b5ed-9496118ff7a8",
-      "description": "Name ADIOD vPE Description The provider edge function for the ADIOD service supported by the Junipers VMX product Category Router Vendor Juniper Vendor Release Code 17.2 Owners Mary Fragale. Updated 9-25 to use v8.0 of the Juniper Valid 2 VLM",
-      "name": "2017-488_ADIOD-vPE",
+      "description": "Name PASQUALE vPE Description The provider edge function for the PASQUALE service supported by the Junipers VMX product Category Router Vendor Juniper Vendor Release Code 17.2 Owners Mary Fragale. Updated 9-25 to use v8.0 of the Juniper Valid 2 VLM",
+      "name": "2017-488_PASQUALE-vPE",
       "version": "5.0",
       "customizationUuid": "1da7b585-5e61-4993-b95e-8e6606c81e45",
       "inputs": {
         "vnf_config_template_version": {
           "displayName": "vnf_config_template_version",
           "command": "get_input",
-          "inputName": "2017488_adiodvpe0_vnf_config_template_version"
+          "inputName": "2017488_pasqualevpe0_vnf_config_template_version"
         },
         "bandwidth_units": {
           "displayName": "bandwidth_units",
           "command": "get_input",
-          "inputName": "adiodvpe0_bandwidth_units"
+          "inputName": "pasqualevpe0_bandwidth_units"
         },
         "bandwidth": {
           "displayName": "bandwidth",
           "command": "get_input",
-          "inputName": "adiodvpe0_bandwidth"
+          "inputName": "pasqualevpe0_bandwidth"
         },
         "AIC_CLLI": {
           "displayName": "AIC_CLLI",
           "command": "get_input",
-          "inputName": "2017488_adiodvpe0_AIC_CLLI"
+          "inputName": "2017488_pasqualevpe0_AIC_CLLI"
         },
         "ASN": {
           "displayName": "ASN",
           "command": "get_input",
-          "inputName": "2017488_adiodvpe0_ASN"
+          "inputName": "2017488_pasqualevpe0_ASN"
         },
         "vnf_instance_name": {
           "displayName": "vnf_instance_name",
           "command": "get_input",
-          "inputName": "2017488_adiodvpe0_vnf_instance_name"
+          "inputName": "2017488_pasqualevpe0_vnf_instance_name"
         }
       },
       "properties": {
         "vmxvre_retype": "RE-VMX",
-        "vnf_config_template_version": "get_input:2017488_adiodvpe0_vnf_config_template_version",
+        "vnf_config_template_version": "get_input:2017488_pasqualevpe0_vnf_config_template_version",
         "sriov44_net_id": "48d399b3-11ee-48a8-94d2-f0ea94d6be8d",
         "int_ctl_net_id": "2f323477-6936-4d01-ac53-d849430281d9",
         "vmxvpfe_sriov41_0_port_mac": "00:11:22:EF:AC:DF",
         "vmxvpfe_sriov43_0_port_unknownmulticastallow": "true",
         "vmxvre_int_ctl_ip_0": "10.0.0.10",
         "ecomp_generated_naming": "false",
-        "AIC_CLLI": "get_input:2017488_adiodvpe0_AIC_CLLI",
+        "AIC_CLLI": "get_input:2017488_pasqualevpe0_AIC_CLLI",
         "vnf_name": "mtnj309me6vre",
         "vmxvpfe_sriov41_0_port_unknownunicastallow": "true",
         "vmxvre_volume_type_1": "HITACHI",
         "vmxvre_volume_type_0": "HITACHI",
         "vmxvpfe_volume_type_0": "HITACHI",
         "vmxvpfe_sriov43_0_port_broadcastallow": "true",
-        "bandwidth_units": "get_input:adiodvpe0_bandwidth_units",
+        "bandwidth_units": "get_input:pasqualevpe0_bandwidth_units",
         "vnf_id": "123",
         "vmxvre_oam_prefix": "24",
         "availability_zone_0": "mtpocfo-kvm-az01",
-        "ASN": "get_input:2017488_adiodvpe0_ASN",
+        "ASN": "get_input:2017488_pasqualevpe0_ASN",
         "vmxvre_chassis_i2cid": "161",
         "vmxvpfe_name_0": "vPFEXI",
-        "bandwidth": "get_input:adiodvpe0_bandwidth",
+        "bandwidth": "get_input:pasqualevpe0_bandwidth",
         "availability_zone_max_count": "1",
         "vmxvre_volume_size_0": "45.0",
         "vmxvre_volume_size_1": "50.0",
         "vmxvre_ore_present": "0",
         "vmxvre_volume_name_0": "vREXI_FBVolume",
         "vmxvre_type": "0",
-        "vnf_instance_name": "get_input:2017488_adiodvpe0_vnf_instance_name",
+        "vnf_instance_name": "get_input:2017488_pasqualevpe0_vnf_instance_name",
         "vmxvpfe_sriov41_0_port_unknownmulticastallow": "true",
         "oam_net_id": "b95eeb1d-d55d-4827-abb4-8ebb94941429",
         "vmx_int_ctl_len": "24",
         "vmxvpfe_flavor_name": "ns.c20r16d25.v5"
       },
       "type": "VF",
-      "modelCustomizationName": "2017-488_ADIOD-vPE 0",
+      "modelCustomizationName": "2017-488_PASQUALE-vPE 0",
       "vfModules": {
-        "2017488_adiodvpe0..2017488AdiodVpe..ADIOD_vRE_BV..module-1": {
+        "2017488_pasqualevpe0..2017488PasqualeVpe..PASQUALE_vRE_BV..module-1": {
           "uuid": "25284168-24bb-4698-8cb4-3f509146eca5",
           "invariantUuid": "7253ff5c-97f0-4b8b-937c-77aeb4d79aa1",
           "customizationUuid": "f7e7c365-60cf-49a9-9ebf-a1aa11b9d401",
           "description": null,
-          "name": "2017488AdiodVpe..ADIOD_vRE_BV..module-1",
+          "name": "2017488PasqualeVpe..PASQUALE_vRE_BV..module-1",
           "version": "6",
-          "modelCustomizationName": "2017488AdiodVpe..ADIOD_vRE_BV..module-1",
+          "modelCustomizationName": "2017488PasqualeVpe..PASQUALE_vRE_BV..module-1",
           "properties": {
             "minCountInstances": 0,
             "maxCountInstances": null,
             "initialCount": 0,
-            "vfModuleLabel": "ADIOD_vRE_BV",
+            "vfModuleLabel": "PASQUALE_vRE_BV",
             "baseModule": false
           },
           "inputs": {
               "entry_schema": null,
               "inputProperties": {
                 "sourceType": "HEAT",
-                "vfModuleLabel": "ADIOD_vRE_BV",
+                "vfModuleLabel": "PASQUALE_vRE_BV",
                 "paramName": "vnf_config_template_version"
               },
-              "fromInputName": "2017488_adiodvpe0_vnf_config_template_version",
+              "fromInputName": "2017488_pasqualevpe0_vnf_config_template_version",
               "constraints": null,
               "required": true,
               "default": "17.2"
               "entry_schema": null,
               "inputProperties": {
                 "sourceType": "HEAT",
-                "vfModuleLabel": "ADIOD_vRE_BV",
+                "vfModuleLabel": "PASQUALE_vRE_BV",
                 "paramName": "bandwidth_units"
               },
-              "fromInputName": "adiodvpe0_bandwidth_units",
+              "fromInputName": "pasqualevpe0_bandwidth_units",
               "constraints": null,
               "required": true,
               "default": "Gbps"
               "entry_schema": null,
               "inputProperties": {
                 "sourceType": "HEAT",
-                "vfModuleLabel": "ADIOD_vRE_BV",
+                "vfModuleLabel": "PASQUALE_vRE_BV",
                 "paramName": "bandwidth"
               },
-              "fromInputName": "adiodvpe0_bandwidth",
+              "fromInputName": "pasqualevpe0_bandwidth",
               "constraints": null,
               "required": true,
               "default": "10"
               "entry_schema": null,
               "inputProperties": {
                 "sourceType": "HEAT",
-                "vfModuleLabel": "ADIOD_vRE_BV",
+                "vfModuleLabel": "PASQUALE_vRE_BV",
                 "paramName": "AIC_CLLI"
               },
-              "fromInputName": "2017488_adiodvpe0_AIC_CLLI",
+              "fromInputName": "2017488_pasqualevpe0_AIC_CLLI",
               "constraints": null,
               "required": true,
               "default": "ATLMY8GA"
               "entry_schema": null,
               "inputProperties": {
                 "sourceType": "HEAT",
-                "vfModuleLabel": "ADIOD_vRE_BV",
+                "vfModuleLabel": "PASQUALE_vRE_BV",
                 "paramName": "vnf_instance_name"
               },
-              "fromInputName": "2017488_adiodvpe0_vnf_instance_name",
+              "fromInputName": "2017488_pasqualevpe0_vnf_instance_name",
               "constraints": null,
               "required": true,
               "default": "mtnj309me6"
           },
           "volumeGroupAllowed": true
         },
-        "2017488_adiodvpe0..2017488AdiodVpe..ADIOD_base_vPE_BV..module-0": {
+        "2017488_pasqualevpe0..2017488PasqualeVpe..PASQUALE_base_vPE_BV..module-0": {
           "uuid": "f8360508-3f17-4414-a2ed-6bc71161e8db",
           "invariantUuid": "b34833bb-6aa9-4ad6-a831-70b06367a091",
           "customizationUuid": "a55961b2-2065-4ab0-a5b7-2fcee1c227e3",
           "description": null,
-          "name": "2017488AdiodVpe..ADIOD_base_vPE_BV..module-0",
+          "name": "2017488PasqualeVpe..PASQUALE_base_vPE_BV..module-0",
           "version": "5",
-          "modelCustomizationName": "2017488AdiodVpe..ADIOD_base_vPE_BV..module-0",
+          "modelCustomizationName": "2017488PasqualeVpe..PASQUALE_base_vPE_BV..module-0",
           "properties": {
             "minCountInstances": 1,
             "maxCountInstances": 1,
             "initialCount": 1,
-            "vfModuleLabel": "ADIOD_base_vPE_BV",
+            "vfModuleLabel": "PASQUALE_base_vPE_BV",
             "baseModule": true
           },
           "inputs": {},
           "volumeGroupAllowed": false
         },
-        "2017488_adiodvpe0..2017488AdiodVpe..ADIOD_vPFE_BV..module-2": {
+        "2017488_pasqualevpe0..2017488PasqualeVpe..PASQUALE_vPFE_BV..module-2": {
           "uuid": "0a0dd9d4-31d3-4c3a-ae89-a02f383e6a9a",
           "invariantUuid": "eff8cc59-53a1-4101-aed7-8cf24ecf8339",
           "customizationUuid": "3cd946bb-50e0-40d8-96d3-c9023520b557",
           "description": null,
-          "name": "2017488AdiodVpe..ADIOD_vPFE_BV..module-2",
+          "name": "2017488PasqualeVpe..PASQUALE_vPFE_BV..module-2",
           "version": "6",
-          "modelCustomizationName": "2017488AdiodVpe..ADIOD_vPFE_BV..module-2",
+          "modelCustomizationName": "2017488PasqualeVpe..PASQUALE_vPFE_BV..module-2",
           "properties": {
             "minCountInstances": 0,
             "maxCountInstances": null,
             "initialCount": 0,
-            "vfModuleLabel": "ADIOD_vPFE_BV",
+            "vfModuleLabel": "PASQUALE_vPFE_BV",
             "baseModule": false
           },
           "inputs": {},
         }
       },
       "volumeGroups": {
-        "2017488_adiodvpe0..2017488AdiodVpe..ADIOD_vRE_BV..module-1": {
+        "2017488_pasqualevpe0..2017488PasqualeVpe..PASQUALE_vRE_BV..module-1": {
           "uuid": "25284168-24bb-4698-8cb4-3f509146eca5",
           "invariantUuid": "7253ff5c-97f0-4b8b-937c-77aeb4d79aa1",
           "customizationUuid": "f7e7c365-60cf-49a9-9ebf-a1aa11b9d401",
           "description": null,
-          "name": "2017488AdiodVpe..ADIOD_vRE_BV..module-1",
+          "name": "2017488PasqualeVpe..PASQUALE_vRE_BV..module-1",
           "version": "6",
-          "modelCustomizationName": "2017488AdiodVpe..ADIOD_vRE_BV..module-1",
+          "modelCustomizationName": "2017488PasqualeVpe..PASQUALE_vRE_BV..module-1",
           "properties": {
             "minCountInstances": 0,
             "maxCountInstances": null,
             "initialCount": 0,
-            "vfModuleLabel": "ADIOD_vRE_BV",
+            "vfModuleLabel": "PASQUALE_vRE_BV",
             "baseModule": false
           },
           "inputs": {
               "entry_schema": null,
               "inputProperties": {
                 "sourceType": "HEAT",
-                "vfModuleLabel": "ADIOD_vRE_BV",
+                "vfModuleLabel": "PASQUALE_vRE_BV",
                 "paramName": "vnf_config_template_version"
               },
-              "fromInputName": "2017488_adiodvpe0_vnf_config_template_version",
+              "fromInputName": "2017488_pasqualevpe0_vnf_config_template_version",
               "constraints": null,
               "required": true,
               "default": "17.2"
               "entry_schema": null,
               "inputProperties": {
                 "sourceType": "HEAT",
-                "vfModuleLabel": "ADIOD_vRE_BV",
+                "vfModuleLabel": "PASQUALE_vRE_BV",
                 "paramName": "bandwidth_units"
               },
-              "fromInputName": "adiodvpe0_bandwidth_units",
+              "fromInputName": "pasqualevpe0_bandwidth_units",
               "constraints": null,
               "required": true,
               "default": "Gbps"
               "entry_schema": null,
               "inputProperties": {
                 "sourceType": "HEAT",
-                "vfModuleLabel": "ADIOD_vRE_BV",
+                "vfModuleLabel": "PASQUALE_vRE_BV",
                 "paramName": "bandwidth"
               },
-              "fromInputName": "adiodvpe0_bandwidth",
+              "fromInputName": "pasqualevpe0_bandwidth",
               "constraints": null,
               "required": true,
               "default": "10"
               "entry_schema": null,
               "inputProperties": {
                 "sourceType": "HEAT",
-                "vfModuleLabel": "ADIOD_vRE_BV",
+                "vfModuleLabel": "PASQUALE_vRE_BV",
                 "paramName": "AIC_CLLI"
               },
-              "fromInputName": "2017488_adiodvpe0_AIC_CLLI",
+              "fromInputName": "2017488_pasqualevpe0_AIC_CLLI",
               "constraints": null,
               "required": true,
               "default": "ATLMY8GA"
               "entry_schema": null,
               "inputProperties": {
                 "sourceType": "HEAT",
-                "vfModuleLabel": "ADIOD_vRE_BV",
+                "vfModuleLabel": "PASQUALE_vRE_BV",
                 "paramName": "vnf_instance_name"
               },
-              "fromInputName": "2017488_adiodvpe0_vnf_instance_name",
+              "fromInputName": "2017488_pasqualevpe0_vnf_instance_name",
               "constraints": null,
               "required": true,
               "default": "mtnj309me6"
             }
           }
         },
-        "2017488_adiodvpe0..2017488AdiodVpe..ADIOD_vPFE_BV..module-2": {
+        "2017488_pasqualevpe0..2017488PasqualeVpe..PASQUALE_vPFE_BV..module-2": {
           "uuid": "0a0dd9d4-31d3-4c3a-ae89-a02f383e6a9a",
           "invariantUuid": "eff8cc59-53a1-4101-aed7-8cf24ecf8339",
           "customizationUuid": "3cd946bb-50e0-40d8-96d3-c9023520b557",
           "description": null,
-          "name": "2017488AdiodVpe..ADIOD_vPFE_BV..module-2",
+          "name": "2017488PasqualeVpe..PASQUALE_vPFE_BV..module-2",
           "version": "6",
-          "modelCustomizationName": "2017488AdiodVpe..ADIOD_vPFE_BV..module-2",
+          "modelCustomizationName": "2017488PasqualeVpe..PASQUALE_vPFE_BV..module-2",
           "properties": {
             "minCountInstances": 0,
             "maxCountInstances": null,
             "initialCount": 0,
-            "vfModuleLabel": "ADIOD_vPFE_BV",
+            "vfModuleLabel": "PASQUALE_vPFE_BV",
             "baseModule": false
           },
           "inputs": {}
     }
   },
   "networks": {},
-  "collectionResource": {},
+  "collectionResources": {},
   "configurations": {},
   "fabricConfigurations": {},
   "serviceProxies": {},
   "vfModules": {
-    "2017488_adiodvpe0..2017488AdiodVpe..ADIOD_vRE_BV..module-1": {
+    "2017488_pasqualevpe0..2017488PasqualeVpe..PASQUALE_vRE_BV..module-1": {
       "uuid": "25284168-24bb-4698-8cb4-3f509146eca5",
       "invariantUuid": "7253ff5c-97f0-4b8b-937c-77aeb4d79aa1",
       "customizationUuid": "f7e7c365-60cf-49a9-9ebf-a1aa11b9d401",
       "description": null,
-      "name": "2017488AdiodVpe..ADIOD_vRE_BV..module-1",
+      "name": "2017488PasqualeVpe..PASQUALE_vRE_BV..module-1",
       "version": "6",
-      "modelCustomizationName": "2017488AdiodVpe..ADIOD_vRE_BV..module-1",
+      "modelCustomizationName": "2017488PasqualeVpe..PASQUALE_vRE_BV..module-1",
       "properties": {
         "minCountInstances": 0,
         "maxCountInstances": null,
         "initialCount": 0,
-        "vfModuleLabel": "ADIOD_vRE_BV",
+        "vfModuleLabel": "PASQUALE_vRE_BV",
         "baseModule": false
       },
       "inputs": {
           "entry_schema": null,
           "inputProperties": {
             "sourceType": "HEAT",
-            "vfModuleLabel": "ADIOD_vRE_BV",
+            "vfModuleLabel": "PASQUALE_vRE_BV",
             "paramName": "vnf_config_template_version"
           },
-          "fromInputName": "2017488_adiodvpe0_vnf_config_template_version",
+          "fromInputName": "2017488_pasqualevpe0_vnf_config_template_version",
           "constraints": null,
           "required": true,
           "default": "17.2"
           "entry_schema": null,
           "inputProperties": {
             "sourceType": "HEAT",
-            "vfModuleLabel": "ADIOD_vRE_BV",
+            "vfModuleLabel": "PASQUALE_vRE_BV",
             "paramName": "bandwidth_units"
           },
-          "fromInputName": "adiodvpe0_bandwidth_units",
+          "fromInputName": "pasqualevpe0_bandwidth_units",
           "constraints": null,
           "required": true,
           "default": "Gbps"
           "entry_schema": null,
           "inputProperties": {
             "sourceType": "HEAT",
-            "vfModuleLabel": "ADIOD_vRE_BV",
+            "vfModuleLabel": "PASQUALE_vRE_BV",
             "paramName": "bandwidth"
           },
-          "fromInputName": "adiodvpe0_bandwidth",
+          "fromInputName": "pasqualevpe0_bandwidth",
           "constraints": null,
           "required": true,
           "default": "10"
           "entry_schema": null,
           "inputProperties": {
             "sourceType": "HEAT",
-            "vfModuleLabel": "ADIOD_vRE_BV",
+            "vfModuleLabel": "PASQUALE_vRE_BV",
             "paramName": "AIC_CLLI"
           },
-          "fromInputName": "2017488_adiodvpe0_AIC_CLLI",
+          "fromInputName": "2017488_pasqualevpe0_AIC_CLLI",
           "constraints": null,
           "required": true,
           "default": "ATLMY8GA"
           "entry_schema": null,
           "inputProperties": {
             "sourceType": "HEAT",
-            "vfModuleLabel": "ADIOD_vRE_BV",
+            "vfModuleLabel": "PASQUALE_vRE_BV",
             "paramName": "vnf_instance_name"
           },
-          "fromInputName": "2017488_adiodvpe0_vnf_instance_name",
+          "fromInputName": "2017488_pasqualevpe0_vnf_instance_name",
           "constraints": null,
           "required": true,
           "default": "mtnj309me6"
       },
       "volumeGroupAllowed": true
     },
-    "2017488_adiodvpe0..2017488AdiodVpe..ADIOD_base_vPE_BV..module-0": {
+    "2017488_pasqualevpe0..2017488PasqualeVpe..PASQUALE_base_vPE_BV..module-0": {
       "uuid": "f8360508-3f17-4414-a2ed-6bc71161e8db",
       "invariantUuid": "b34833bb-6aa9-4ad6-a831-70b06367a091",
       "customizationUuid": "a55961b2-2065-4ab0-a5b7-2fcee1c227e3",
       "description": null,
-      "name": "2017488AdiodVpe..ADIOD_base_vPE_BV..module-0",
+      "name": "2017488PasqualeVpe..PASQUALE_base_vPE_BV..module-0",
       "version": "5",
-      "modelCustomizationName": "2017488AdiodVpe..ADIOD_base_vPE_BV..module-0",
+      "modelCustomizationName": "2017488PasqualeVpe..PASQUALE_base_vPE_BV..module-0",
       "properties": {
         "minCountInstances": 1,
         "maxCountInstances": 1,
         "initialCount": 1,
-        "vfModuleLabel": "ADIOD_base_vPE_BV",
+        "vfModuleLabel": "PASQUALE_base_vPE_BV",
         "baseModule": true
       },
       "inputs": {},
       "volumeGroupAllowed": false
     },
-    "2017488_adiodvpe0..2017488AdiodVpe..ADIOD_vPFE_BV..module-2": {
+    "2017488_pasqualevpe0..2017488PasqualeVpe..PASQUALE_vPFE_BV..module-2": {
       "uuid": "0a0dd9d4-31d3-4c3a-ae89-a02f383e6a9a",
       "invariantUuid": "eff8cc59-53a1-4101-aed7-8cf24ecf8339",
       "customizationUuid": "3cd946bb-50e0-40d8-96d3-c9023520b557",
       "description": null,
-      "name": "2017488AdiodVpe..ADIOD_vPFE_BV..module-2",
+      "name": "2017488PasqualeVpe..PASQUALE_vPFE_BV..module-2",
       "version": "6",
-      "modelCustomizationName": "2017488AdiodVpe..ADIOD_vPFE_BV..module-2",
+      "modelCustomizationName": "2017488PasqualeVpe..PASQUALE_vPFE_BV..module-2",
       "properties": {
         "minCountInstances": 0,
         "maxCountInstances": null,
         "initialCount": 0,
-        "vfModuleLabel": "ADIOD_vPFE_BV",
+        "vfModuleLabel": "PASQUALE_vPFE_BV",
         "baseModule": false
       },
       "inputs": {},
     }
   },
   "volumeGroups": {
-    "2017488_adiodvpe0..2017488AdiodVpe..ADIOD_vRE_BV..module-1": {
+    "2017488_pasqualevpe0..2017488PasqualeVpe..PASQUALE_vRE_BV..module-1": {
       "uuid": "25284168-24bb-4698-8cb4-3f509146eca5",
       "invariantUuid": "7253ff5c-97f0-4b8b-937c-77aeb4d79aa1",
       "customizationUuid": "f7e7c365-60cf-49a9-9ebf-a1aa11b9d401",
       "description": null,
-      "name": "2017488AdiodVpe..ADIOD_vRE_BV..module-1",
+      "name": "2017488PasqualeVpe..PASQUALE_vRE_BV..module-1",
       "version": "6",
-      "modelCustomizationName": "2017488AdiodVpe..ADIOD_vRE_BV..module-1",
+      "modelCustomizationName": "2017488PasqualeVpe..PASQUALE_vRE_BV..module-1",
       "properties": {
         "minCountInstances": 0,
         "maxCountInstances": null,
         "initialCount": 0,
-        "vfModuleLabel": "ADIOD_vRE_BV",
+        "vfModuleLabel": "PASQUALE_vRE_BV",
         "baseModule": false
       },
       "inputs": {
           "entry_schema": null,
           "inputProperties": {
             "sourceType": "HEAT",
-            "vfModuleLabel": "ADIOD_vRE_BV",
+            "vfModuleLabel": "PASQUALE_vRE_BV",
             "paramName": "vnf_config_template_version"
           },
-          "fromInputName": "2017488_adiodvpe0_vnf_config_template_version",
+          "fromInputName": "2017488_pasqualevpe0_vnf_config_template_version",
           "constraints": null,
           "required": true,
           "default": "17.2"
           "entry_schema": null,
           "inputProperties": {
             "sourceType": "HEAT",
-            "vfModuleLabel": "ADIOD_vRE_BV",
+            "vfModuleLabel": "PASQUALE_vRE_BV",
             "paramName": "bandwidth_units"
           },
-          "fromInputName": "adiodvpe0_bandwidth_units",
+          "fromInputName": "pasqualevpe0_bandwidth_units",
           "constraints": null,
           "required": true,
           "default": "Gbps"
           "entry_schema": null,
           "inputProperties": {
             "sourceType": "HEAT",
-            "vfModuleLabel": "ADIOD_vRE_BV",
+            "vfModuleLabel": "PASQUALE_vRE_BV",
             "paramName": "bandwidth"
           },
-          "fromInputName": "adiodvpe0_bandwidth",
+          "fromInputName": "pasqualevpe0_bandwidth",
           "constraints": null,
           "required": true,
           "default": "10"
           "entry_schema": null,
           "inputProperties": {
             "sourceType": "HEAT",
-            "vfModuleLabel": "ADIOD_vRE_BV",
+            "vfModuleLabel": "PASQUALE_vRE_BV",
             "paramName": "AIC_CLLI"
           },
-          "fromInputName": "2017488_adiodvpe0_AIC_CLLI",
+          "fromInputName": "2017488_pasqualevpe0_AIC_CLLI",
           "constraints": null,
           "required": true,
           "default": "ATLMY8GA"
           "entry_schema": null,
           "inputProperties": {
             "sourceType": "HEAT",
-            "vfModuleLabel": "ADIOD_vRE_BV",
+            "vfModuleLabel": "PASQUALE_vRE_BV",
             "paramName": "vnf_instance_name"
           },
-          "fromInputName": "2017488_adiodvpe0_vnf_instance_name",
+          "fromInputName": "2017488_pasqualevpe0_vnf_instance_name",
           "constraints": null,
           "required": true,
           "default": "mtnj309me6"
         }
       }
     },
-    "2017488_adiodvpe0..2017488AdiodVpe..ADIOD_vPFE_BV..module-2": {
+    "2017488_pasqualevpe0..2017488PasqualeVpe..PASQUALE_vPFE_BV..module-2": {
       "uuid": "0a0dd9d4-31d3-4c3a-ae89-a02f383e6a9a",
       "invariantUuid": "eff8cc59-53a1-4101-aed7-8cf24ecf8339",
       "customizationUuid": "3cd946bb-50e0-40d8-96d3-c9023520b557",
       "description": null,
-      "name": "2017488AdiodVpe..ADIOD_vPFE_BV..module-2",
+      "name": "2017488PasqualeVpe..PASQUALE_vPFE_BV..module-2",
       "version": "6",
-      "modelCustomizationName": "2017488AdiodVpe..ADIOD_vPFE_BV..module-2",
+      "modelCustomizationName": "2017488PasqualeVpe..PASQUALE_vPFE_BV..module-2",
       "properties": {
         "minCountInstances": 0,
         "maxCountInstances": null,
         "initialCount": 0,
-        "vfModuleLabel": "ADIOD_vPFE_BV",
+        "vfModuleLabel": "PASQUALE_vPFE_BV",
         "baseModule": false
       },
       "inputs": {}
index a749e57..0c462b3 100644 (file)
@@ -2,13 +2,13 @@
   "service": {
     "uuid": "a1531622-4e08-43fa-9ffd-222090cab7d2",
     "invariantUuid": "c54c1178-ab4b-498c-aea0-52cc2043d44f",
-    "name": "mdns_2017_1011_IST_Service",
+    "name": "CHARLOTTE_2017_1011_IST_Service",
     "version": "5.0",
     "toscaModelURL": null,
     "category": "Emanuel",
     "serviceType": "",
     "serviceRole": "",
-    "description": "mdns_2017_1011_IST_Service -Creating Service for PID 298109a",
+    "description": "CHARLOTTE_2017_1011_IST_Service -Creating Service for PID 298109a",
     "serviceEcompNaming": "true",
     "instantiationType": "ClientConfig",
     "inputs": {},
     }
   },
   "vnfs": {
-    "mdns_2017_1011_IST_Vf 0": {
+    "CHARLOTTE_2017_1011_IST_Vf 0": {
       "uuid": "e54ac8ab-746b-494d-918a-efab23a50e0d",
       "invariantUuid": "b22715a2-4ec1-4e2f-bf4f-d79fa9519707",
-      "description": "mdns_2017_1011_IST_Vf -Creating for PID 298109a",
-      "name": "mdns_2017_1011_IST_Vf",
+      "description": "CHARLOTTE_2017_1011_IST_Vf -Creating for PID 298109a",
+      "name": "CHARLOTTE_2017_1011_IST_Vf",
       "version": "4.0",
       "customizationUuid": "efa526df-e1f5-4fda-9e0d-475cb5e44e4f",
       "inputs": {},
       "commands": {},
       "properties": {
-        "nf_naming": "{naming_policy=gw1218.Config_MS_VmVnfcNamingPolicyMobility1710.*, ecomp_generated_naming=true}",
+        "nf_naming": "{naming_policy=gw1218.Config_MS_VmVnfcNamingPolicyEmanuel1710.*, ecomp_generated_naming=true}",
         "multi_stage_design": "false",
         "availability_zone_max_count": "1",
         "ecomp_generated_naming": "true",
         "node_count": "4.0",
-        "dns_image_name": "NIMBUS_MDNS_3.0.4.qcow2",
+        "dns_image_name": "KENNEDY_CHARLOTTE_3.0.4.qcow2",
         "route_eth0": "135.144.38.211/32 via 107.239.83.1 dev eth0 155.165.201.253/32 via 107.239.83.1 dev eth0 141.204.0.0/16 via 107.239.83.1 dev eth0 ",
         "dns_flavor_name": "nv.c4r4d80"
       },
       "type": "VF",
-      "modelCustomizationName": "mdns_2017_1011_IST_Vf 0",
+      "modelCustomizationName": "CHARLOTTE_2017_1011_IST_Vf 0",
       "vfModules": {
-        "mdns_2017_1011_ist_vf0..Mdns20171011IstVf..base_dns..module-0": {
+        "CHARLOTTE_2017_1011_ist_vf0..Mdns20171011IstVf..base_dns..module-0": {
           "uuid": "1259fe65-4112-44ab-a622-cc9f99296c90",
           "invariantUuid": "0be2f9a6-889a-45bd-9ba5-13ef9f62474b",
           "customizationUuid": "89200091-4583-4f01-bc2b-aade7a0eb6de",
@@ -59,7 +59,7 @@
           "inputs": {},
           "volumeGroupAllowed": false
         },
-        "mdns_2017_1011_ist_vf0..Mdns20171011IstVf..dns_az_01..module-1": {
+        "CHARLOTTE_2017_1011_ist_vf0..Mdns20171011IstVf..dns_az_01..module-1": {
           "uuid": "c921c0dd-4f02-4b1e-8234-063675955c45",
           "invariantUuid": "3744764d-32a1-468f-801d-2fc2485dc159",
           "customizationUuid": "a86c56b6-7d7d-4bc1-b60f-ea384cadd232",
     }
   },
   "networks": {},
-  "collectionResource": {},
+  "collectionResources": {},
   "configurations": {},
   "fabricConfigurations": {},
   "serviceProxies": {},
   "vfModules": {
-    "mdns_2017_1011_ist_vf0..Mdns20171011IstVf..base_dns..module-0": {
+    "CHARLOTTE_2017_1011_ist_vf0..Mdns20171011IstVf..base_dns..module-0": {
       "uuid": "1259fe65-4112-44ab-a622-cc9f99296c90",
       "invariantUuid": "0be2f9a6-889a-45bd-9ba5-13ef9f62474b",
       "customizationUuid": "89200091-4583-4f01-bc2b-aade7a0eb6de",
       "inputs": {},
       "volumeGroupAllowed": false
     },
-    "mdns_2017_1011_ist_vf0..Mdns20171011IstVf..dns_az_01..module-1": {
+    "CHARLOTTE_2017_1011_ist_vf0..Mdns20171011IstVf..dns_az_01..module-1": {
       "uuid": "c921c0dd-4f02-4b1e-8234-063675955c45",
       "invariantUuid": "3744764d-32a1-468f-801d-2fc2485dc159",
       "customizationUuid": "a86c56b6-7d7d-4bc1-b60f-ea384cadd232",
index b447e1d..5cd1438 100644 (file)
               "resource-version": "1516045827731",
               "orchestration-status": "Active",
               "model-invariant-id": "92a72881-0a97-4d16-8c29-4831062e7e9b",
-              "model-version-id": "5a3ad576-c01d-4bed-8194-0e72b4a3d020"
+              "model-version-id": "f6f4e9ee-4f2f-4a9d-9b42-56485fd4a225"
             }
           ]
         },
     ]
   }
 }
+
index 35539dd..f5f3adb 100644 (file)
@@ -18,7 +18,7 @@
     "CONTRAIL30_BASIC 0": {
       "uuid": "2920cd06-f585-436b-a002-c3081f6a91b3",
       "invariantUuid": "56f4e746-c58e-4b76-93d4-6717b8f59205",
-      "description": "Basic contrail 3.0.x L3 network for AIC 3.x sites. Keeping for existing mobility networks. ",
+      "description": "Basic contrail 3.0.x L3 network for AIC 3.x sites. Keeping for existing emanuel networks. ",
       "name": "CONTRAIL30_BASIC",
       "version": "3.0",
       "customizationUuid": "8e2128bf-77e8-4a48-84d0-520c44718161",
@@ -37,7 +37,7 @@
       "modelCustomizationName": "CONTRAIL30_BASIC 0"
     }
   },
-  "collectionResource": {},
+  "collectionResources": {},
   "configurations": {},
   "fabricConfigurations": {},
   "serviceProxies": {},
index e40d89f..2c43efd 100644 (file)
@@ -8,17 +8,20 @@
         "service": {
           "uuid": "f4d84bb4-a416-4b4e-997e-0059973630b9",
           "invariantUuid": "598e3f9e-3244-4d8f-a8e0-0e5d7a29eda9",
-          "name": "ADIOD vMX vPE_BV Service 488",
+          "name": "PASQUALE vMX vPE_BV Service 488",
           "version": "1.0",
           "toscaModelURL": null,
           "category": "Network L1-3",
           "serviceType": "",
           "serviceRole": "",
-          "description": "ADIOD vMX vPE based on Juniper 17.2 release. Updated with updated VF for v8.0 of VLM",
+          "description": "PASQUALE vMX vPE based on Juniper 17.2 release. Updated with updated VF for v8.0 of VLM",
           "serviceEcompNaming": "true",
           "instantiationType": "Macro",
+          "vidNotions": {
+            "instantiationType": "Macro"
+          },
           "inputs": {
-            "2017488_adiodvpe0_ASN": {
+            "2017488_pasqualevpe0_ASN": {
               "type": "string",
               "description": "AV/PE",
               "entry_schema": null,
           }
         },
         "vnfs": {
-          "2017-488_ADIOD-vPE 0": {
+          "2017-488_PASQUALE-vPE 0": {
             "uuid": "ea81d6f7-0861-44a7-b7d5-d173b562c350",
             "invariantUuid": "5be7e99e-8eb2-4d97-be63-8081ff3cd10e",
-            "description": "Name ADIOD vPE Description The provider edge function for the ADIOD service supported by the Junipers VMX product Category Router Vendor Juniper Vendor Release Code 17.2 Owners Mary Fragale. Updated 9-25 to use v8.0 of the Juniper Valid 2 VLM",
-            "name": "2017-488_ADIOD-vPE",
+            "description": "Name PASQUALE vPE Description The provider edge function for the PASQUALE service supported by the Junipers VMX product Category Router Vendor Juniper Vendor Release Code 17.2 Owners Mary Fragale. Updated 9-25 to use v8.0 of the Juniper Valid 2 VLM",
+            "name": "2017-488_PASQUALE-vPE",
             "version": "9.0",
             "customizationUuid": "41516cc6-5098-4b40-a619-f8d5f55fc4d8",
             "inputs": {},
             "commands": {},
             "properties": {
               "vmxvre_retype": "RE-VMX",
-              "vnf_config_template_version": "get_input:2017488_adiodvpe0_vnf_config_template_version",
+              "vnf_config_template_version": "get_input:2017488_pasqualevpe0_vnf_config_template_version",
               "sriov44_net_id": "48d399b3-11ee-48a8-94d2-f0ea94d6be8d",
               "int_ctl_net_id": "2f323477-6936-4d01-ac53-d849430281d9",
               "vmxvpfe_sriov41_0_port_mac": "00:11:22:EF:AC:DF",
               "vmxvpfe_sriov42_0_port_unknownmulticastallow": "true",
               "vmxvpfe_sriov44_0_port_vlanstrip": "false",
               "vf_module_id": "123",
-              "nf_function": "ADIOD vPE",
+              "nf_function": "PASQUALE vPE",
               "vmxvpfe_sriov43_0_port_unknownmulticastallow": "true",
               "vmxvre_int_ctl_ip_0": "10.0.0.10",
               "ecomp_generated_naming": "true",
-              "AIC_CLLI": "get_input:2017488_adiodvpe0_AIC_CLLI",
+              "AIC_CLLI": "get_input:2017488_pasqualevpe0_AIC_CLLI",
               "vnf_name": "mtnj309me6vre",
               "vmxvpfe_sriov41_0_port_unknownunicastallow": "true",
               "vmxvre_volume_type_1": "HITACHI",
               "vmxvre_volume_type_0": "HITACHI",
               "vmxvpfe_volume_type_0": "HITACHI",
               "vmxvpfe_sriov43_0_port_broadcastallow": "true",
-              "bandwidth_units": "get_input:2017488_adiodvpe0_bandwidth_units",
+              "bandwidth_units": "get_input:2017488_pasqualevpe0_bandwidth_units",
               "vnf_id": "123",
               "vmxvre_oam_prefix": "24",
-              "availability_zone_0": "get_input:2017488_adiodvpe0_availability_zone_0",
-              "ASN": "get_input:2017488_adiodvpe0_ASN",
+              "availability_zone_0": "get_input:2017488_pasqualevpe0_availability_zone_0",
+              "ASN": "get_input:2017488_pasqualevpe0_ASN",
               "vmxvre_chassis_i2cid": "161",
               "vmxvpfe_name_0": "vPFEXI",
-              "bandwidth": "get_input:2017488_adiodvpe0_bandwidth",
+              "bandwidth": "get_input:2017488_pasqualevpe0_bandwidth",
               "availability_zone_max_count": "1",
               "vmxvre_volume_size_0": "45.0",
               "vmxvre_volume_size_1": "50.0",
               "vmxvre_ore_present": "0",
               "vmxvre_volume_name_0": "vREXI_FBVolume",
               "vmxvre_type": "0",
-              "vnf_instance_name": "get_input:2017488_adiodvpe0_vnf_instance_name",
+              "vnf_instance_name": "get_input:2017488_pasqualevpe0_vnf_instance_name",
               "vmxvpfe_sriov41_0_port_unknownmulticastallow": "true",
               "oam_net_id": "b95eeb1d-d55d-4827-abb4-8ebb94941429",
               "vmx_int_ctl_len": "24",
               "vmxvpfe_flavor_name": "ns.c20r16d25.v5"
             },
             "type": "VF",
-            "modelCustomizationName": "2017-488_ADIOD-vPE 0",
+            "modelCustomizationName": "2017-488_PASQUALE-vPE 0",
             "vfModules": {
-              "2017488_adiodvpe0..2017488AdiodVpe..ADIOD_vRE_BV..module-1": {
+              "2017488_pasqualevpe0..2017488PasqualeVpe..PASQUALE_vRE_BV..module-1": {
                 "uuid": "a5d8df05-11cb-4351-96e0-b6d4168ea4df",
                 "invariantUuid": "7253ff5c-97f0-4b8b-937c-77aeb4d79aa1",
                 "customizationUuid": "f3d97417-0c8d-424e-8ff7-b2eb4fbcecc3",
                 "description": null,
-                "name": "2017488AdiodVpe..ADIOD_vRE_BV..module-1",
+                "name": "2017488PasqualeVpe..PASQUALE_vRE_BV..module-1",
                 "version": "8",
-                "modelCustomizationName": "2017488AdiodVpe..ADIOD_vRE_BV..module-1",
+                "modelCustomizationName": "2017488PasqualeVpe..PASQUALE_vRE_BV..module-1",
                 "properties": {
                   "minCountInstances": 0,
                   "maxCountInstances": null,
                   "initialCount": 0,
-                  "vfModuleLabel": "ADIOD_vRE_BV"
+                  "vfModuleLabel": "PASQUALE_vRE_BV"
                 },
                 "inputs": {
-                  "2017488_adiodvpe0_bandwidth_units": {
+                  "2017488_pasqualevpe0_bandwidth_units": {
                     "type": "string",
                     "description": "Units of bandwidth",
                     "entry_schema": null,
                     "inputProperties": {
                       "sourceType": "HEAT",
-                      "vfModuleLabel": "ADIOD_vRE_BV",
+                      "vfModuleLabel": "PASQUALE_vRE_BV",
                       "paramName": "bandwidth_units"
                     },
                     "constraints": null,
                     "required": true,
                     "default": "Gbps"
                   },
-                  "2017488_adiodvpe0_bandwidth": {
+                  "2017488_pasqualevpe0_bandwidth": {
                     "type": "string",
                     "description": "Requested VPE bandwidth",
                     "entry_schema": null,
                     "inputProperties": {
                       "sourceType": "HEAT",
-                      "vfModuleLabel": "ADIOD_vRE_BV",
+                      "vfModuleLabel": "PASQUALE_vRE_BV",
                       "paramName": "bandwidth"
                     },
                     "constraints": null,
                     "required": true,
                     "default": "10"
                   },
-                  "2017488_adiodvpe0_vnf_instance_name": {
+                  "2017488_pasqualevpe0_vnf_instance_name": {
                     "type": "string",
                     "description": "The hostname assigned to the vpe.",
                     "entry_schema": null,
                     "inputProperties": {
                       "sourceType": "HEAT",
-                      "vfModuleLabel": "ADIOD_vRE_BV",
+                      "vfModuleLabel": "PASQUALE_vRE_BV",
                       "paramName": "vnf_instance_name"
                     },
                     "constraints": null,
                     "required": true,
                     "default": "mtnj309me6"
                   },
-                  "2017488_adiodvpe0_vnf_config_template_version": {
+                  "2017488_pasqualevpe0_vnf_config_template_version": {
                     "type": "string",
                     "description": "VPE Software Version",
                     "entry_schema": null,
                     "inputProperties": {
                       "sourceType": "HEAT",
-                      "vfModuleLabel": "ADIOD_vRE_BV",
+                      "vfModuleLabel": "PASQUALE_vRE_BV",
                       "paramName": "vnf_config_template_version"
                     },
                     "constraints": null,
                     "required": true,
                     "default": "17.2"
                   },
-                  "2017488_adiodvpe0_AIC_CLLI": {
+                  "2017488_pasqualevpe0_AIC_CLLI": {
                     "type": "string",
                     "description": "AIC Site CLLI",
                     "entry_schema": null,
                     "inputProperties": {
                       "sourceType": "HEAT",
-                      "vfModuleLabel": "ADIOD_vRE_BV",
+                      "vfModuleLabel": "PASQUALE_vRE_BV",
                       "paramName": "AIC_CLLI"
                     },
                     "constraints": null,
                 },
                 "volumeGroupAllowed": true
               },
-              "2017488_adiodvpe0..2017488AdiodVpe..ADIOD_base_vPE_BV..module-0": {
+              "2017488_pasqualevpe0..2017488PasqualeVpe..PASQUALE_base_vPE_BV..module-0": {
                 "uuid": "040e591e-5d30-4e0d-850f-7266e5a8e013",
                 "invariantUuid": "b34833bb-6aa9-4ad6-a831-70b06367a091",
                 "customizationUuid": "5c5f91f9-5e31-4120-b892-5536587ec258",
                 "description": null,
-                "name": "2017488AdiodVpe..ADIOD_base_vPE_BV..module-0",
+                "name": "2017488PasqualeVpe..PASQUALE_base_vPE_BV..module-0",
                 "version": "6",
-                "modelCustomizationName": "2017488AdiodVpe..ADIOD_base_vPE_BV..module-0",
+                "modelCustomizationName": "2017488PasqualeVpe..PASQUALE_base_vPE_BV..module-0",
                 "properties": {
                   "minCountInstances": 1,
                   "maxCountInstances": 1,
                   "initialCount": 1,
-                  "vfModuleLabel": "ADIOD_base_vPE_BV"
+                  "vfModuleLabel": "PASQUALE_base_vPE_BV"
                 },
                 "inputs": {},
                 "volumeGroupAllowed": false
               },
-              "2017488_adiodvpe0..2017488AdiodVpe..ADIOD_vPFE_BV..module-2": {
+              "2017488_pasqualevpe0..2017488PasqualeVpe..PASQUALE_vPFE_BV..module-2": {
                 "uuid": "b3e8b26e-cff0-49fc-a4e6-f3e16c8440fe",
                 "invariantUuid": "eff8cc59-53a1-4101-aed7-8cf24ecf8339",
                 "customizationUuid": "6e410843-257c-46d9-ba8a-8d94e1362452",
                 "description": null,
-                "name": "2017488AdiodVpe..ADIOD_vPFE_BV..module-2",
+                "name": "2017488PasqualeVpe..PASQUALE_vPFE_BV..module-2",
                 "version": "8",
-                "modelCustomizationName": "2017488AdiodVpe..ADIOD_vPFE_BV..module-2",
+                "modelCustomizationName": "2017488PasqualeVpe..PASQUALE_vPFE_BV..module-2",
                 "properties": {
                   "minCountInstances": 0,
                   "maxCountInstances": null,
                   "initialCount": 0,
-                  "vfModuleLabel": "ADIOD_vPFE_BV"
+                  "vfModuleLabel": "PASQUALE_vPFE_BV"
                 },
                 "inputs": {
-                  "2017488_adiodvpe0_availability_zone_0": {
+                  "2017488_pasqualevpe0_availability_zone_0": {
                     "type": "string",
                     "description": "The Availability Zone to launch the instance.",
                     "entry_schema": null,
                     "inputProperties": {
                       "sourceType": "HEAT",
-                      "vfModuleLabel": "ADIOD_vPFE_BV",
+                      "vfModuleLabel": "PASQUALE_vPFE_BV",
                       "paramName": "availability_zone_0"
                     },
                     "constraints": null,
               }
             },
             "volumeGroups": {
-              "2017488_adiodvpe0..2017488AdiodVpe..ADIOD_vRE_BV..module-1": {
+              "2017488_pasqualevpe0..2017488PasqualeVpe..PASQUALE_vRE_BV..module-1": {
                 "uuid": "a5d8df05-11cb-4351-96e0-b6d4168ea4df",
                 "invariantUuid": "7253ff5c-97f0-4b8b-937c-77aeb4d79aa1",
                 "customizationUuid": "f3d97417-0c8d-424e-8ff7-b2eb4fbcecc3",
                 "description": null,
-                "name": "2017488AdiodVpe..ADIOD_vRE_BV..module-1",
+                "name": "2017488PasqualeVpe..PASQUALE_vRE_BV..module-1",
                 "version": "8",
-                "modelCustomizationName": "2017488AdiodVpe..ADIOD_vRE_BV..module-1",
+                "modelCustomizationName": "2017488PasqualeVpe..PASQUALE_vRE_BV..module-1",
                 "properties": {
                   "minCountInstances": 0,
                   "maxCountInstances": null,
                   "initialCount": 0,
-                  "vfModuleLabel": "ADIOD_vRE_BV"
+                  "vfModuleLabel": "PASQUALE_vRE_BV"
                 },
                 "inputs": {
-                  "2017488_adiodvpe0_bandwidth_units": {
+                  "2017488_pasqualevpe0_bandwidth_units": {
                     "type": "string",
                     "description": "Units of bandwidth",
                     "entry_schema": null,
                     "inputProperties": {
                       "sourceType": "HEAT",
-                      "vfModuleLabel": "ADIOD_vRE_BV",
+                      "vfModuleLabel": "PASQUALE_vRE_BV",
                       "paramName": "bandwidth_units"
                     },
                     "constraints": null,
                     "required": true,
                     "default": "Gbps"
                   },
-                  "2017488_adiodvpe0_bandwidth": {
+                  "2017488_pasqualevpe0_bandwidth": {
                     "type": "string",
                     "description": "Requested VPE bandwidth",
                     "entry_schema": null,
                     "inputProperties": {
                       "sourceType": "HEAT",
-                      "vfModuleLabel": "ADIOD_vRE_BV",
+                      "vfModuleLabel": "PASQUALE_vRE_BV",
                       "paramName": "bandwidth"
                     },
                     "constraints": null,
                     "required": true,
                     "default": "10"
                   },
-                  "2017488_adiodvpe0_vnf_instance_name": {
+                  "2017488_pasqualevpe0_vnf_instance_name": {
                     "type": "string",
                     "description": "The hostname assigned to the vpe.",
                     "entry_schema": null,
                     "inputProperties": {
                       "sourceType": "HEAT",
-                      "vfModuleLabel": "ADIOD_vRE_BV",
+                      "vfModuleLabel": "PASQUALE_vRE_BV",
                       "paramName": "vnf_instance_name"
                     },
                     "constraints": null,
                     "required": true,
                     "default": "mtnj309me6"
                   },
-                  "2017488_adiodvpe0_vnf_config_template_version": {
+                  "2017488_pasqualevpe0_vnf_config_template_version": {
                     "type": "string",
                     "description": "VPE Software Version",
                     "entry_schema": null,
                     "inputProperties": {
                       "sourceType": "HEAT",
-                      "vfModuleLabel": "ADIOD_vRE_BV",
+                      "vfModuleLabel": "PASQUALE_vRE_BV",
                       "paramName": "vnf_config_template_version"
                     },
                     "constraints": null,
                     "required": true,
                     "default": "17.2"
                   },
-                  "2017488_adiodvpe0_AIC_CLLI": {
+                  "2017488_pasqualevpe0_AIC_CLLI": {
                     "type": "string",
                     "description": "AIC Site CLLI",
                     "entry_schema": null,
                     "inputProperties": {
                       "sourceType": "HEAT",
-                      "vfModuleLabel": "ADIOD_vRE_BV",
+                      "vfModuleLabel": "PASQUALE_vRE_BV",
                       "paramName": "AIC_CLLI"
                     },
                     "constraints": null,
                   }
                 }
               },
-              "2017488_adiodvpe0..2017488AdiodVpe..ADIOD_vPFE_BV..module-2": {
+              "2017488_pasqualevpe0..2017488PasqualeVpe..PASQUALE_vPFE_BV..module-2": {
                 "uuid": "b3e8b26e-cff0-49fc-a4e6-f3e16c8440fe",
                 "invariantUuid": "eff8cc59-53a1-4101-aed7-8cf24ecf8339",
                 "customizationUuid": "6e410843-257c-46d9-ba8a-8d94e1362452",
                 "description": null,
-                "name": "2017488AdiodVpe..ADIOD_vPFE_BV..module-2",
+                "name": "2017488PasqualeVpe..PASQUALE_vPFE_BV..module-2",
                 "version": "8",
-                "modelCustomizationName": "2017488AdiodVpe..ADIOD_vPFE_BV..module-2",
+                "modelCustomizationName": "2017488PasqualeVpe..PASQUALE_vPFE_BV..module-2",
                 "properties": {
                   "minCountInstances": 0,
                   "maxCountInstances": null,
                   "initialCount": 0,
-                  "vfModuleLabel": "ADIOD_vPFE_BV"
+                  "vfModuleLabel": "PASQUALE_vPFE_BV"
                 },
                 "inputs": {
-                  "2017488_adiodvpe0_availability_zone_0": {
+                  "2017488_pasqualevpe0_availability_zone_0": {
                     "type": "string",
                     "description": "The Availability Zone to launch the instance.",
                     "entry_schema": null,
                     "inputProperties": {
                       "sourceType": "HEAT",
-                      "vfModuleLabel": "ADIOD_vPFE_BV",
+                      "vfModuleLabel": "PASQUALE_vPFE_BV",
                       "paramName": "availability_zone_0"
                     },
                     "constraints": null,
           }
         },
         "networks": {},
-        "collectionResource": {},
+        "collectionResources": {},
         "configurations": {},
         "serviceProxies": {},
         "vfModules": {
-          "2017488_adiodvpe0..2017488AdiodVpe..ADIOD_vRE_BV..module-1": {
+          "2017488_pasqualevpe0..2017488PasqualeVpe..PASQUALE_vRE_BV..module-1": {
             "uuid": "a5d8df05-11cb-4351-96e0-b6d4168ea4df",
             "invariantUuid": "7253ff5c-97f0-4b8b-937c-77aeb4d79aa1",
             "customizationUuid": "f3d97417-0c8d-424e-8ff7-b2eb4fbcecc3",
             "description": null,
-            "name": "2017488AdiodVpe..ADIOD_vRE_BV..module-1",
+            "name": "2017488PasqualeVpe..PASQUALE_vRE_BV..module-1",
             "version": "8",
-            "modelCustomizationName": "2017488AdiodVpe..ADIOD_vRE_BV..module-1",
+            "modelCustomizationName": "2017488PasqualeVpe..PASQUALE_vRE_BV..module-1",
             "properties": {
               "minCountInstances": 0,
               "maxCountInstances": null,
               "initialCount": 0,
-              "vfModuleLabel": "ADIOD_vRE_BV"
+              "vfModuleLabel": "PASQUALE_vRE_BV"
             },
             "inputs": {
-              "2017488_adiodvpe0_bandwidth_units": {
+              "2017488_pasqualevpe0_bandwidth_units": {
                 "type": "string",
                 "description": "Units of bandwidth",
                 "entry_schema": null,
                 "inputProperties": {
                   "sourceType": "HEAT",
-                  "vfModuleLabel": "ADIOD_vRE_BV",
+                  "vfModuleLabel": "PASQUALE_vRE_BV",
                   "paramName": "bandwidth_units"
                 },
                 "constraints": null,
                 "required": true,
                 "default": "Gbps"
               },
-              "2017488_adiodvpe0_bandwidth": {
+              "2017488_pasqualevpe0_bandwidth": {
                 "type": "string",
                 "description": "Requested VPE bandwidth",
                 "entry_schema": null,
                 "inputProperties": {
                   "sourceType": "HEAT",
-                  "vfModuleLabel": "ADIOD_vRE_BV",
+                  "vfModuleLabel": "PASQUALE_vRE_BV",
                   "paramName": "bandwidth"
                 },
                 "constraints": null,
                 "required": true,
                 "default": "10"
               },
-              "2017488_adiodvpe0_vnf_instance_name": {
+              "2017488_pasqualevpe0_vnf_instance_name": {
                 "type": "string",
                 "description": "The hostname assigned to the vpe.",
                 "entry_schema": null,
                 "inputProperties": {
                   "sourceType": "HEAT",
-                  "vfModuleLabel": "ADIOD_vRE_BV",
+                  "vfModuleLabel": "PASQUALE_vRE_BV",
                   "paramName": "vnf_instance_name"
                 },
                 "constraints": null,
                 "required": true,
                 "default": "mtnj309me6"
               },
-              "2017488_adiodvpe0_vnf_config_template_version": {
+              "2017488_pasqualevpe0_vnf_config_template_version": {
                 "type": "string",
                 "description": "VPE Software Version",
                 "entry_schema": null,
                 "inputProperties": {
                   "sourceType": "HEAT",
-                  "vfModuleLabel": "ADIOD_vRE_BV",
+                  "vfModuleLabel": "PASQUALE_vRE_BV",
                   "paramName": "vnf_config_template_version"
                 },
                 "constraints": null,
                 "required": true,
                 "default": "17.2"
               },
-              "2017488_adiodvpe0_AIC_CLLI": {
+              "2017488_pasqualevpe0_AIC_CLLI": {
                 "type": "string",
                 "description": "AIC Site CLLI",
                 "entry_schema": null,
                 "inputProperties": {
                   "sourceType": "HEAT",
-                  "vfModuleLabel": "ADIOD_vRE_BV",
+                  "vfModuleLabel": "PASQUALE_vRE_BV",
                   "paramName": "AIC_CLLI"
                 },
                 "constraints": null,
             },
             "volumeGroupAllowed": true
           },
-          "2017488_adiodvpe0..2017488AdiodVpe..ADIOD_base_vPE_BV..module-0": {
+          "2017488_pasqualevpe0..2017488PasqualeVpe..PASQUALE_base_vPE_BV..module-0": {
             "uuid": "040e591e-5d30-4e0d-850f-7266e5a8e013",
             "invariantUuid": "b34833bb-6aa9-4ad6-a831-70b06367a091",
             "customizationUuid": "5c5f91f9-5e31-4120-b892-5536587ec258",
             "description": null,
-            "name": "2017488AdiodVpe..ADIOD_base_vPE_BV..module-0",
+            "name": "2017488PasqualeVpe..PASQUALE_base_vPE_BV..module-0",
             "version": "6",
-            "modelCustomizationName": "2017488AdiodVpe..ADIOD_base_vPE_BV..module-0",
+            "modelCustomizationName": "2017488PasqualeVpe..PASQUALE_base_vPE_BV..module-0",
             "properties": {
               "minCountInstances": 1,
               "maxCountInstances": 1,
               "initialCount": 1,
-              "vfModuleLabel": "ADIOD_base_vPE_BV"
+              "vfModuleLabel": "PASQUALE_base_vPE_BV"
             },
             "inputs": {},
             "volumeGroupAllowed": false
           },
-          "2017488_adiodvpe0..2017488AdiodVpe..ADIOD_vPFE_BV..module-2": {
+          "2017488_pasqualevpe0..2017488PasqualeVpe..PASQUALE_vPFE_BV..module-2": {
             "uuid": "b3e8b26e-cff0-49fc-a4e6-f3e16c8440fe",
             "invariantUuid": "eff8cc59-53a1-4101-aed7-8cf24ecf8339",
             "customizationUuid": "6e410843-257c-46d9-ba8a-8d94e1362452",
             "description": null,
-            "name": "2017488AdiodVpe..ADIOD_vPFE_BV..module-2",
+            "name": "2017488PasqualeVpe..PASQUALE_vPFE_BV..module-2",
             "version": "8",
-            "modelCustomizationName": "2017488AdiodVpe..ADIOD_vPFE_BV..module-2",
+            "modelCustomizationName": "2017488PasqualeVpe..PASQUALE_vPFE_BV..module-2",
             "properties": {
               "minCountInstances": 0,
               "maxCountInstances": null,
               "initialCount": 0,
-              "vfModuleLabel": "ADIOD_vPFE_BV"
+              "vfModuleLabel": "PASQUALE_vPFE_BV"
             },
             "inputs": {
-              "2017488_adiodvpe0_availability_zone_0": {
+              "2017488_pasqualevpe0_availability_zone_0": {
                 "type": "string",
                 "description": "The Availability Zone to launch the instance.",
                 "entry_schema": null,
                 "inputProperties": {
                   "sourceType": "HEAT",
-                  "vfModuleLabel": "ADIOD_vPFE_BV",
+                  "vfModuleLabel": "PASQUALE_vPFE_BV",
                   "paramName": "availability_zone_0"
                 },
                 "constraints": null,
           }
         },
         "volumeGroups": {
-          "2017488_adiodvpe0..2017488AdiodVpe..ADIOD_vRE_BV..module-1": {
+          "2017488_pasqualevpe0..2017488PasqualeVpe..PASQUALE_vRE_BV..module-1": {
             "uuid": "a5d8df05-11cb-4351-96e0-b6d4168ea4df",
             "invariantUuid": "7253ff5c-97f0-4b8b-937c-77aeb4d79aa1",
             "customizationUuid": "f3d97417-0c8d-424e-8ff7-b2eb4fbcecc3",
             "description": null,
-            "name": "2017488AdiodVpe..ADIOD_vRE_BV..module-1",
+            "name": "2017488PasqualeVpe..PASQUALE_vRE_BV..module-1",
             "version": "8",
-            "modelCustomizationName": "2017488AdiodVpe..ADIOD_vRE_BV..module-1",
+            "modelCustomizationName": "2017488PasqualeVpe..PASQUALE_vRE_BV..module-1",
             "properties": {
               "minCountInstances": 0,
               "maxCountInstances": null,
               "initialCount": 0,
-              "vfModuleLabel": "ADIOD_vRE_BV"
+              "vfModuleLabel": "PASQUALE_vRE_BV"
             },
             "inputs": {
-              "2017488_adiodvpe0_bandwidth_units": {
+              "2017488_pasqualevpe0_bandwidth_units": {
                 "type": "string",
                 "description": "Units of bandwidth",
                 "entry_schema": null,
                 "inputProperties": {
                   "sourceType": "HEAT",
-                  "vfModuleLabel": "ADIOD_vRE_BV",
+                  "vfModuleLabel": "PASQUALE_vRE_BV",
                   "paramName": "bandwidth_units"
                 },
                 "constraints": null,
                 "required": true,
                 "default": "Gbps"
               },
-              "2017488_adiodvpe0_bandwidth": {
+              "2017488_pasqualevpe0_bandwidth": {
                 "type": "string",
                 "description": "Requested VPE bandwidth",
                 "entry_schema": null,
                 "inputProperties": {
                   "sourceType": "HEAT",
-                  "vfModuleLabel": "ADIOD_vRE_BV",
+                  "vfModuleLabel": "PASQUALE_vRE_BV",
                   "paramName": "bandwidth"
                 },
                 "constraints": null,
                 "required": true,
                 "default": "10"
               },
-              "2017488_adiodvpe0_vnf_instance_name": {
+              "2017488_pasqualevpe0_vnf_instance_name": {
                 "type": "string",
                 "description": "The hostname assigned to the vpe.",
                 "entry_schema": null,
                 "inputProperties": {
                   "sourceType": "HEAT",
-                  "vfModuleLabel": "ADIOD_vRE_BV",
+                  "vfModuleLabel": "PASQUALE_vRE_BV",
                   "paramName": "vnf_instance_name"
                 },
                 "constraints": null,
                 "required": true,
                 "default": "mtnj309me6"
               },
-              "2017488_adiodvpe0_vnf_config_template_version": {
+              "2017488_pasqualevpe0_vnf_config_template_version": {
                 "type": "string",
                 "description": "VPE Software Version",
                 "entry_schema": null,
                 "inputProperties": {
                   "sourceType": "HEAT",
-                  "vfModuleLabel": "ADIOD_vRE_BV",
+                  "vfModuleLabel": "PASQUALE_vRE_BV",
                   "paramName": "vnf_config_template_version"
                 },
                 "constraints": null,
                 "required": true,
                 "default": "17.2"
               },
-              "2017488_adiodvpe0_AIC_CLLI": {
+              "2017488_pasqualevpe0_AIC_CLLI": {
                 "type": "string",
                 "description": "AIC Site CLLI",
                 "entry_schema": null,
                 "inputProperties": {
                   "sourceType": "HEAT",
-                  "vfModuleLabel": "ADIOD_vRE_BV",
+                  "vfModuleLabel": "PASQUALE_vRE_BV",
                   "paramName": "AIC_CLLI"
                 },
                 "constraints": null,
               }
             }
           },
-          "2017488_adiodvpe0..2017488AdiodVpe..ADIOD_vPFE_BV..module-2": {
+          "2017488_pasqualevpe0..2017488PasqualeVpe..PASQUALE_vPFE_BV..module-2": {
             "uuid": "b3e8b26e-cff0-49fc-a4e6-f3e16c8440fe",
             "invariantUuid": "eff8cc59-53a1-4101-aed7-8cf24ecf8339",
             "customizationUuid": "6e410843-257c-46d9-ba8a-8d94e1362452",
             "description": null,
-            "name": "2017488AdiodVpe..ADIOD_vPFE_BV..module-2",
+            "name": "2017488PasqualeVpe..PASQUALE_vPFE_BV..module-2",
             "version": "8",
-            "modelCustomizationName": "2017488AdiodVpe..ADIOD_vPFE_BV..module-2",
+            "modelCustomizationName": "2017488PasqualeVpe..PASQUALE_vPFE_BV..module-2",
             "properties": {
               "minCountInstances": 0,
               "maxCountInstances": null,
               "initialCount": 0,
-              "vfModuleLabel": "ADIOD_vPFE_BV"
+              "vfModuleLabel": "PASQUALE_vPFE_BV"
             },
             "inputs": {
-              "2017488_adiodvpe0_availability_zone_0": {
+              "2017488_pasqualevpe0_availability_zone_0": {
                 "type": "string",
                 "description": "The Availability Zone to launch the instance.",
                 "entry_schema": null,
                 "inputProperties": {
                   "sourceType": "HEAT",
-                  "vfModuleLabel": "ADIOD_vPFE_BV",
+                  "vfModuleLabel": "PASQUALE_vPFE_BV",
                   "paramName": "availability_zone_0"
                 },
                 "constraints": null,
           "description": "",
           "serviceEcompNaming": "true",
           "instantiationType": "Macro",
+          "vidNotions": {
+            "instantiationType": "Macro"
+          },
           "inputs": {
-            "2017488_adiodvpe0_ASN": {
+            "2017488_pasqualevpe0_ASN": {
               "type": "string",
               "description": "AV/PE",
               "entry_schema": null,
           }
         },
         "vnfs": {
-          "2017-388_ADIOD-vPE 1": {
+          "2017-388_PASQUALE-vPE 1": {
             "uuid": "0903e1c0-8e03-4936-b5c2-260653b96413",
             "invariantUuid": "00beb8f9-6d39-452f-816d-c709b9cbb87d",
-            "description": "Name ADIOD vPE Description The provider edge function for the ADIOD service supported by the Junipers VMX product Category Router Vendor Juniper Vendor Release Code 17.2 Owners Mary Fragale. Updated 9-25 to use v8.0 of the Juniper Valid 2 VLM",
-            "name": "2017-388_ADIOD-vPE",
+            "description": "Name PASQUALE vPE Description The provider edge function for the PASQUALE service supported by the Junipers VMX product Category Router Vendor Juniper Vendor Release Code 17.2 Owners Mary Fragale. Updated 9-25 to use v8.0 of the Juniper Valid 2 VLM",
+            "name": "2017-388_PASQUALE-vPE",
             "version": "1.0",
             "customizationUuid": "280dec31-f16d-488b-9668-4aae55d6648a",
             "inputs": {},
             "commands": {},
             "properties": {
               "vmxvre_retype": "RE-VMX",
-              "vnf_config_template_version": "get_input:2017488_adiodvpe0_vnf_config_template_version",
+              "vnf_config_template_version": "get_input:2017488_pasqualevpe0_vnf_config_template_version",
               "sriov44_net_id": "48d399b3-11ee-48a8-94d2-f0ea94d6be8d",
               "int_ctl_net_id": "2f323477-6936-4d01-ac53-d849430281d9",
               "vmxvpfe_sriov41_0_port_mac": "00:11:22:EF:AC:DF",
               "vmxvpfe_sriov43_0_port_unknownmulticastallow": "true",
               "vmxvre_int_ctl_ip_0": "10.0.0.10",
               "ecomp_generated_naming": "true",
-              "AIC_CLLI": "get_input:2017488_adiodvpe0_AIC_CLLI",
+              "AIC_CLLI": "get_input:2017488_pasqualevpe0_AIC_CLLI",
               "vnf_name": "mtnj309me6vre",
               "vmxvpfe_sriov41_0_port_unknownunicastallow": "true",
               "vmxvre_volume_type_1": "HITACHI",
               "vmxvre_volume_type_0": "HITACHI",
               "vmxvpfe_volume_type_0": "HITACHI",
               "vmxvpfe_sriov43_0_port_broadcastallow": "true",
-              "bandwidth_units": "get_input:adiodvpe0_bandwidth_units",
+              "bandwidth_units": "get_input:pasqualevpe0_bandwidth_units",
               "vnf_id": "123",
               "vmxvre_oam_prefix": "24",
               "availability_zone_0": "mtpocfo-kvm-az01",
-              "ASN": "get_input:2017488_adiodvpe0_ASN",
+              "ASN": "get_input:2017488_pasqualevpe0_ASN",
               "vmxvre_chassis_i2cid": "161",
               "vmxvpfe_name_0": "vPFEXI",
-              "bandwidth": "get_input:adiodvpe0_bandwidth",
+              "bandwidth": "get_input:pasqualevpe0_bandwidth",
               "availability_zone_max_count": "1",
               "vmxvre_volume_size_0": "45.0",
               "vmxvre_volume_size_1": "50.0",
               "vmxvre_ore_present": "0",
               "vmxvre_volume_name_0": "vREXI_FBVolume",
               "vmxvre_type": "0",
-              "vnf_instance_name": "get_input:2017488_adiodvpe0_vnf_instance_name",
+              "vnf_instance_name": "get_input:2017488_pasqualevpe0_vnf_instance_name",
               "vmxvpfe_sriov41_0_port_unknownmulticastallow": "true",
               "oam_net_id": "b95eeb1d-d55d-4827-abb4-8ebb94941429",
               "vmx_int_ctl_len": "24",
               "vmxvpfe_flavor_name": "ns.c20r16d25.v5"
             },
             "type": "VF",
-            "modelCustomizationName": "2017-388_ADIOD-vPE 1",
+            "modelCustomizationName": "2017-388_PASQUALE-vPE 1",
             "vfModules": {},
             "volumeGroups": {},
             "vfcInstanceGroups": {}
           },
-          "2017-388_ADIOD-vPE 0": {
+          "2017-388_PASQUALE-vPE 0": {
             "uuid": "afacccf6-397d-45d6-b5ae-94c39734b168",
             "invariantUuid": "72e465fe-71b1-4e7b-b5ed-9496118ff7a8",
-            "description": "Name ADIOD vPE Description The provider edge function for the ADIOD service supported by the Junipers VMX product Category Router Vendor Juniper Vendor Release Code 17.2 Owners Mary Fragale. Updated 9-25 to use v8.0 of the Juniper Valid 2 VLM",
-            "name": "2017-388_ADIOD-vPE",
+            "description": "Name PASQUALE vPE Description The provider edge function for the PASQUALE service supported by the Junipers VMX product Category Router Vendor Juniper Vendor Release Code 17.2 Owners Mary Fragale. Updated 9-25 to use v8.0 of the Juniper Valid 2 VLM",
+            "name": "2017-388_PASQUALE-vPE",
             "version": "4.0",
             "customizationUuid": "b3c76f73-eeb5-4fb6-9d31-72a889f1811c",
             "inputs": {},
             "commands": {},
             "properties": {
               "vmxvre_retype": "RE-VMX",
-              "vnf_config_template_version": "get_input:2017488_adiodvpe0_vnf_config_template_version",
+              "vnf_config_template_version": "get_input:2017488_pasqualevpe0_vnf_config_template_version",
               "sriov44_net_id": "48d399b3-11ee-48a8-94d2-f0ea94d6be8d",
               "int_ctl_net_id": "2f323477-6936-4d01-ac53-d849430281d9",
               "vmxvpfe_sriov41_0_port_mac": "00:11:22:EF:AC:DF",
               "vmxvpfe_sriov43_0_port_unknownmulticastallow": "true",
               "vmxvre_int_ctl_ip_0": "10.0.0.10",
               "ecomp_generated_naming": "true",
-              "AIC_CLLI": "get_input:2017488_adiodvpe0_AIC_CLLI",
+              "AIC_CLLI": "get_input:2017488_pasqualevpe0_AIC_CLLI",
               "vnf_name": "mtnj309me6vre",
               "vmxvpfe_sriov41_0_port_unknownunicastallow": "true",
               "vmxvre_volume_type_1": "HITACHI",
               "vmxvre_volume_type_0": "HITACHI",
               "vmxvpfe_volume_type_0": "HITACHI",
               "vmxvpfe_sriov43_0_port_broadcastallow": "true",
-              "bandwidth_units": "get_input:adiodvpe0_bandwidth_units",
+              "bandwidth_units": "get_input:pasqualevpe0_bandwidth_units",
               "vnf_id": "123",
               "vmxvre_oam_prefix": "24",
               "availability_zone_0": "mtpocfo-kvm-az01",
-              "ASN": "get_input:2017488_adiodvpe0_ASN",
+              "ASN": "get_input:2017488_pasqualevpe0_ASN",
               "vmxvre_chassis_i2cid": "161",
               "vmxvpfe_name_0": "vPFEXI",
-              "bandwidth": "get_input:adiodvpe0_bandwidth",
+              "bandwidth": "get_input:pasqualevpe0_bandwidth",
               "availability_zone_max_count": "1",
               "vmxvre_volume_size_0": "45.0",
               "vmxvre_volume_size_1": "50.0",
               "vmxvre_ore_present": "0",
               "vmxvre_volume_name_0": "vREXI_FBVolume",
               "vmxvre_type": "0",
-              "vnf_instance_name": "get_input:2017488_adiodvpe0_vnf_instance_name",
+              "vnf_instance_name": "get_input:2017488_pasqualevpe0_vnf_instance_name",
               "vmxvpfe_sriov41_0_port_unknownmulticastallow": "true",
               "oam_net_id": "b95eeb1d-d55d-4827-abb4-8ebb94941429",
               "vmx_int_ctl_len": "24",
               "vmxvpfe_flavor_name": "ns.c20r16d25.v5"
             },
             "type": "VF",
-            "modelCustomizationName": "2017-388_ADIOD-vPE 0",
+            "modelCustomizationName": "2017-388_PASQUALE-vPE 0",
             "vfModules": {},
             "volumeGroups": {},
             "vfcInstanceGroups": {}
           },
-          "2017-488_ADIOD-vPE 0": {
+          "2017-488_PASQUALE-vPE 0": {
             "uuid": "69e09f68-8b63-4cc9-b9ff-860960b5db09",
             "invariantUuid": "72e465fe-71b1-4e7b-b5ed-9496118ff7a8",
-            "description": "Name ADIOD vPE Description The provider edge function for the ADIOD service supported by the Junipers VMX product Category Router Vendor Juniper Vendor Release Code 17.2 Owners Mary Fragale. Updated 9-25 to use v8.0 of the Juniper Valid 2 VLM",
-            "name": "2017-488_ADIOD-vPE",
+            "description": "Name PASQUALE vPE Description The provider edge function for the PASQUALE service supported by the Junipers VMX product Category Router Vendor Juniper Vendor Release Code 17.2 Owners Mary Fragale. Updated 9-25 to use v8.0 of the Juniper Valid 2 VLM",
+            "name": "2017-488_PASQUALE-vPE",
             "version": "5.0",
             "customizationUuid": "1da7b585-5e61-4993-b95e-8e6606c81e45",
             "inputs": {},
             "commands": {},
             "properties": {
               "vmxvre_retype": "RE-VMX",
-              "vnf_config_template_version": "get_input:2017488_adiodvpe0_vnf_config_template_version",
+              "vnf_config_template_version": "get_input:2017488_pasqualevpe0_vnf_config_template_version",
               "sriov44_net_id": "48d399b3-11ee-48a8-94d2-f0ea94d6be8d",
               "int_ctl_net_id": "2f323477-6936-4d01-ac53-d849430281d9",
               "vmxvpfe_sriov41_0_port_mac": "00:11:22:EF:AC:DF",
               "vmxvpfe_sriov43_0_port_unknownmulticastallow": "true",
               "vmxvre_int_ctl_ip_0": "10.0.0.10",
               "ecomp_generated_naming": "true",
-              "AIC_CLLI": "get_input:2017488_adiodvpe0_AIC_CLLI",
+              "AIC_CLLI": "get_input:2017488_pasqualevpe0_AIC_CLLI",
               "vnf_name": "mtnj309me6vre",
               "vmxvpfe_sriov41_0_port_unknownunicastallow": "true",
               "vmxvre_volume_type_1": "HITACHI",
               "vmxvre_volume_type_0": "HITACHI",
               "vmxvpfe_volume_type_0": "HITACHI",
               "vmxvpfe_sriov43_0_port_broadcastallow": "true",
-              "bandwidth_units": "get_input:adiodvpe0_bandwidth_units",
+              "bandwidth_units": "get_input:pasqualevpe0_bandwidth_units",
               "vnf_id": "123",
               "vmxvre_oam_prefix": "24",
               "availability_zone_0": "mtpocfo-kvm-az01",
-              "ASN": "get_input:2017488_adiodvpe0_ASN",
+              "ASN": "get_input:2017488_pasqualevpe0_ASN",
               "vmxvre_chassis_i2cid": "161",
               "vmxvpfe_name_0": "vPFEXI",
-              "bandwidth": "get_input:adiodvpe0_bandwidth",
+              "bandwidth": "get_input:pasqualevpe0_bandwidth",
               "availability_zone_max_count": "1",
               "vmxvre_volume_size_0": "45.0",
               "vmxvre_volume_size_1": "50.0",
               "vmxvre_ore_present": "0",
               "vmxvre_volume_name_0": "vREXI_FBVolume",
               "vmxvre_type": "0",
-              "vnf_instance_name": "get_input:2017488_adiodvpe0_vnf_instance_name",
+              "vnf_instance_name": "get_input:2017488_pasqualevpe0_vnf_instance_name",
               "vmxvpfe_sriov41_0_port_unknownmulticastallow": "true",
               "oam_net_id": "b95eeb1d-d55d-4827-abb4-8ebb94941429",
               "vmx_int_ctl_len": "24",
               "vmxvpfe_flavor_name": "ns.c20r16d25.v5"
             },
             "type": "VF",
-            "modelCustomizationName": "2017-488_ADIOD-vPE 0",
+            "modelCustomizationName": "2017-488_PASQUALE-vPE 0",
             "vfModules": {
-              "2017488_adiodvpe0..2017488AdiodVpe..ADIOD_vRE_BV..module-1": {
+              "2017488_pasqualevpe0..2017488PasqualeVpe..PASQUALE_vRE_BV..module-1": {
                 "uuid": "25284168-24bb-4698-8cb4-3f509146eca5",
                 "invariantUuid": "7253ff5c-97f0-4b8b-937c-77aeb4d79aa1",
                 "customizationUuid": "f7e7c365-60cf-49a9-9ebf-a1aa11b9d401",
                 "description": null,
-                "name": "2017488AdiodVpe..ADIOD_vRE_BV..module-1",
+                "name": "2017488PasqualeVpe..PASQUALE_vRE_BV..module-1",
                 "version": "6",
-                "modelCustomizationName": "2017488AdiodVpe..ADIOD_vRE_BV..module-1",
+                "modelCustomizationName": "2017488PasqualeVpe..PASQUALE_vRE_BV..module-1",
                 "properties": {
                   "minCountInstances": 0,
                   "maxCountInstances": null,
                   "initialCount": 0,
-                  "vfModuleLabel": "ADIOD_vRE_BV"
+                  "vfModuleLabel": "PASQUALE_vRE_BV"
                 },
                 "inputs": {
-                  "adiodvpe0_bandwidth": {
+                  "pasqualevpe0_bandwidth": {
                     "type": "string",
                     "description": "Requested VPE bandwidth",
                     "entry_schema": null,
                     "inputProperties": {
                       "sourceType": "HEAT",
-                      "vfModuleLabel": "ADIOD_vRE_BV",
+                      "vfModuleLabel": "PASQUALE_vRE_BV",
                       "paramName": "bandwidth"
                     },
                     "constraints": null,
                     "required": true,
                     "default": "10"
                   },
-                  "2017488_adiodvpe0_vnf_instance_name": {
+                  "2017488_pasqualevpe0_vnf_instance_name": {
                     "type": "string",
                     "description": "The hostname assigned to the vpe.",
                     "entry_schema": null,
                     "inputProperties": {
                       "sourceType": "HEAT",
-                      "vfModuleLabel": "ADIOD_vRE_BV",
+                      "vfModuleLabel": "PASQUALE_vRE_BV",
                       "paramName": "vnf_instance_name"
                     },
                     "constraints": null,
                     "required": true,
                     "default": "mtnj309me6"
                   },
-                  "2017488_adiodvpe0_vnf_config_template_version": {
+                  "2017488_pasqualevpe0_vnf_config_template_version": {
                     "type": "string",
                     "description": "VPE Software Version",
                     "entry_schema": null,
                     "inputProperties": {
                       "sourceType": "HEAT",
-                      "vfModuleLabel": "ADIOD_vRE_BV",
+                      "vfModuleLabel": "PASQUALE_vRE_BV",
                       "paramName": "vnf_config_template_version"
                     },
                     "constraints": null,
                     "required": true,
                     "default": "17.2"
                   },
-                  "2017488_adiodvpe0_AIC_CLLI": {
+                  "2017488_pasqualevpe0_AIC_CLLI": {
                     "type": "string",
                     "description": "AIC Site CLLI",
                     "entry_schema": null,
                     "inputProperties": {
                       "sourceType": "HEAT",
-                      "vfModuleLabel": "ADIOD_vRE_BV",
+                      "vfModuleLabel": "PASQUALE_vRE_BV",
                       "paramName": "AIC_CLLI"
                     },
                     "constraints": null,
                     "required": true,
                     "default": "ATLMY8GA"
                   },
-                  "adiodvpe0_bandwidth_units": {
+                  "pasqualevpe0_bandwidth_units": {
                     "type": "string",
                     "description": "Units of bandwidth",
                     "entry_schema": null,
                     "inputProperties": {
                       "sourceType": "HEAT",
-                      "vfModuleLabel": "ADIOD_vRE_BV",
+                      "vfModuleLabel": "PASQUALE_vRE_BV",
                       "paramName": "bandwidth_units"
                     },
                     "constraints": null,
                 },
                 "volumeGroupAllowed": true
               },
-              "2017488_adiodvpe0..2017488AdiodVpe..ADIOD_base_vPE_BV..module-0": {
+              "2017488_pasqualevpe0..2017488PasqualeVpe..PASQUALE_base_vPE_BV..module-0": {
                 "uuid": "f8360508-3f17-4414-a2ed-6bc71161e8db",
                 "invariantUuid": "b34833bb-6aa9-4ad6-a831-70b06367a091",
                 "customizationUuid": "a55961b2-2065-4ab0-a5b7-2fcee1c227e3",
                 "description": null,
-                "name": "2017488AdiodVpe..ADIOD_base_vPE_BV..module-0",
+                "name": "2017488PasqualeVpe..PASQUALE_base_vPE_BV..module-0",
                 "version": "5",
-                "modelCustomizationName": "2017488AdiodVpe..ADIOD_base_vPE_BV..module-0",
+                "modelCustomizationName": "2017488PasqualeVpe..PASQUALE_base_vPE_BV..module-0",
                 "properties": {
                   "minCountInstances": 1,
                   "maxCountInstances": 1,
                   "initialCount": 1,
-                  "vfModuleLabel": "ADIOD_base_vPE_BV"
+                  "vfModuleLabel": "PASQUALE_base_vPE_BV"
                 },
                 "inputs": {},
                 "volumeGroupAllowed": false
               },
-              "2017488_adiodvpe0..2017488AdiodVpe..ADIOD_vPFE_BV..module-2": {
+              "2017488_pasqualevpe0..2017488PasqualeVpe..PASQUALE_vPFE_BV..module-2": {
                 "uuid": "0a0dd9d4-31d3-4c3a-ae89-a02f383e6a9a",
                 "invariantUuid": "eff8cc59-53a1-4101-aed7-8cf24ecf8339",
                 "customizationUuid": "3cd946bb-50e0-40d8-96d3-c9023520b557",
                 "description": null,
-                "name": "2017488AdiodVpe..ADIOD_vPFE_BV..module-2",
+                "name": "2017488PasqualeVpe..PASQUALE_vPFE_BV..module-2",
                 "version": "6",
-                "modelCustomizationName": "2017488AdiodVpe..ADIOD_vPFE_BV..module-2",
+                "modelCustomizationName": "2017488PasqualeVpe..PASQUALE_vPFE_BV..module-2",
                 "properties": {
                   "minCountInstances": 0,
                   "maxCountInstances": null,
                   "initialCount": 0,
-                  "vfModuleLabel": "ADIOD_vPFE_BV"
+                  "vfModuleLabel": "PASQUALE_vPFE_BV"
                 },
                 "inputs": {},
                 "volumeGroupAllowed": true
               }
             },
             "volumeGroups": {
-              "2017488_adiodvpe0..2017488AdiodVpe..ADIOD_vRE_BV..module-1": {
+              "2017488_pasqualevpe0..2017488PasqualeVpe..PASQUALE_vRE_BV..module-1": {
                 "uuid": "25284168-24bb-4698-8cb4-3f509146eca5",
                 "invariantUuid": "7253ff5c-97f0-4b8b-937c-77aeb4d79aa1",
                 "customizationUuid": "f7e7c365-60cf-49a9-9ebf-a1aa11b9d401",
                 "description": null,
-                "name": "2017488AdiodVpe..ADIOD_vRE_BV..module-1",
+                "name": "2017488PasqualeVpe..PASQUALE_vRE_BV..module-1",
                 "version": "6",
-                "modelCustomizationName": "2017488AdiodVpe..ADIOD_vRE_BV..module-1",
+                "modelCustomizationName": "2017488PasqualeVpe..PASQUALE_vRE_BV..module-1",
                 "properties": {
                   "minCountInstances": 0,
                   "maxCountInstances": null,
                   "initialCount": 0,
-                  "vfModuleLabel": "ADIOD_vRE_BV"
+                  "vfModuleLabel": "PASQUALE_vRE_BV"
                 },
                 "inputs": {
-                  "adiodvpe0_bandwidth": {
+                  "pasqualevpe0_bandwidth": {
                     "type": "string",
                     "description": "Requested VPE bandwidth",
                     "entry_schema": null,
                     "inputProperties": {
                       "sourceType": "HEAT",
-                      "vfModuleLabel": "ADIOD_vRE_BV",
+                      "vfModuleLabel": "PASQUALE_vRE_BV",
                       "paramName": "bandwidth"
                     },
                     "constraints": null,
                     "required": true,
                     "default": "10"
                   },
-                  "2017488_adiodvpe0_vnf_instance_name": {
+                  "2017488_pasqualevpe0_vnf_instance_name": {
                     "type": "string",
                     "description": "The hostname assigned to the vpe.",
                     "entry_schema": null,
                     "inputProperties": {
                       "sourceType": "HEAT",
-                      "vfModuleLabel": "ADIOD_vRE_BV",
+                      "vfModuleLabel": "PASQUALE_vRE_BV",
                       "paramName": "vnf_instance_name"
                     },
                     "constraints": null,
                     "required": true,
                     "default": "mtnj309me6"
                   },
-                  "2017488_adiodvpe0_vnf_config_template_version": {
+                  "2017488_pasqualevpe0_vnf_config_template_version": {
                     "type": "string",
                     "description": "VPE Software Version",
                     "entry_schema": null,
                     "inputProperties": {
                       "sourceType": "HEAT",
-                      "vfModuleLabel": "ADIOD_vRE_BV",
+                      "vfModuleLabel": "PASQUALE_vRE_BV",
                       "paramName": "vnf_config_template_version"
                     },
                     "constraints": null,
                     "required": true,
                     "default": "17.2"
                   },
-                  "2017488_adiodvpe0_AIC_CLLI": {
+                  "2017488_pasqualevpe0_AIC_CLLI": {
                     "type": "string",
                     "description": "AIC Site CLLI",
                     "entry_schema": null,
                     "inputProperties": {
                       "sourceType": "HEAT",
-                      "vfModuleLabel": "ADIOD_vRE_BV",
+                      "vfModuleLabel": "PASQUALE_vRE_BV",
                       "paramName": "AIC_CLLI"
                     },
                     "constraints": null,
                     "required": true,
                     "default": "ATLMY8GA"
                   },
-                  "adiodvpe0_bandwidth_units": {
+                  "pasqualevpe0_bandwidth_units": {
                     "type": "string",
                     "description": "Units of bandwidth",
                     "entry_schema": null,
                     "inputProperties": {
                       "sourceType": "HEAT",
-                      "vfModuleLabel": "ADIOD_vRE_BV",
+                      "vfModuleLabel": "PASQUALE_vRE_BV",
                       "paramName": "bandwidth_units"
                     },
                     "constraints": null,
                   }
                 }
               },
-              "2017488_adiodvpe0..2017488AdiodVpe..ADIOD_vPFE_BV..module-2": {
+              "2017488_pasqualevpe0..2017488PasqualeVpe..PASQUALE_vPFE_BV..module-2": {
                 "uuid": "0a0dd9d4-31d3-4c3a-ae89-a02f383e6a9a",
                 "invariantUuid": "eff8cc59-53a1-4101-aed7-8cf24ecf8339",
                 "customizationUuid": "3cd946bb-50e0-40d8-96d3-c9023520b557",
                 "description": null,
-                "name": "2017488AdiodVpe..ADIOD_vPFE_BV..module-2",
+                "name": "2017488PasqualeVpe..PASQUALE_vPFE_BV..module-2",
                 "version": "6",
-                "modelCustomizationName": "2017488AdiodVpe..ADIOD_vPFE_BV..module-2",
+                "modelCustomizationName": "2017488PasqualeVpe..PASQUALE_vPFE_BV..module-2",
                 "properties": {
                   "minCountInstances": 0,
                   "maxCountInstances": null,
                   "initialCount": 0,
-                  "vfModuleLabel": "ADIOD_vPFE_BV"
+                  "vfModuleLabel": "PASQUALE_vPFE_BV"
                 },
                 "inputs": {}
               }
           }
         },
         "networks": {},
-        "collectionResource": {},
+        "collectionResources": {},
         "configurations": {},
         "serviceProxies": {},
         "vfModules": {
-          "2017488_adiodvpe0..2017488AdiodVpe..ADIOD_vRE_BV..module-1": {
+          "2017488_pasqualevpe0..2017488PasqualeVpe..PASQUALE_vRE_BV..module-1": {
             "uuid": "25284168-24bb-4698-8cb4-3f509146eca5",
             "invariantUuid": "7253ff5c-97f0-4b8b-937c-77aeb4d79aa1",
             "customizationUuid": "f7e7c365-60cf-49a9-9ebf-a1aa11b9d401",
             "description": null,
-            "name": "2017488AdiodVpe..ADIOD_vRE_BV..module-1",
+            "name": "2017488PasqualeVpe..PASQUALE_vRE_BV..module-1",
             "version": "6",
-            "modelCustomizationName": "2017488AdiodVpe..ADIOD_vRE_BV..module-1",
+            "modelCustomizationName": "2017488PasqualeVpe..PASQUALE_vRE_BV..module-1",
             "properties": {
               "minCountInstances": 0,
               "maxCountInstances": null,
               "initialCount": 0,
-              "vfModuleLabel": "ADIOD_vRE_BV"
+              "vfModuleLabel": "PASQUALE_vRE_BV"
             },
             "inputs": {
-              "adiodvpe0_bandwidth": {
+              "pasqualevpe0_bandwidth": {
                 "type": "string",
                 "description": "Requested VPE bandwidth",
                 "entry_schema": null,
                 "inputProperties": {
                   "sourceType": "HEAT",
-                  "vfModuleLabel": "ADIOD_vRE_BV",
+                  "vfModuleLabel": "PASQUALE_vRE_BV",
                   "paramName": "bandwidth"
                 },
                 "constraints": null,
                 "required": true,
                 "default": "10"
               },
-              "2017488_adiodvpe0_vnf_instance_name": {
+              "2017488_pasqualevpe0_vnf_instance_name": {
                 "type": "string",
                 "description": "The hostname assigned to the vpe.",
                 "entry_schema": null,
                 "inputProperties": {
                   "sourceType": "HEAT",
-                  "vfModuleLabel": "ADIOD_vRE_BV",
+                  "vfModuleLabel": "PASQUALE_vRE_BV",
                   "paramName": "vnf_instance_name"
                 },
                 "constraints": null,
                 "required": true,
                 "default": "mtnj309me6"
               },
-              "2017488_adiodvpe0_vnf_config_template_version": {
+              "2017488_pasqualevpe0_vnf_config_template_version": {
                 "type": "string",
                 "description": "VPE Software Version",
                 "entry_schema": null,
                 "inputProperties": {
                   "sourceType": "HEAT",
-                  "vfModuleLabel": "ADIOD_vRE_BV",
+                  "vfModuleLabel": "PASQUALE_vRE_BV",
                   "paramName": "vnf_config_template_version"
                 },
                 "constraints": null,
                 "required": true,
                 "default": "17.2"
               },
-              "2017488_adiodvpe0_AIC_CLLI": {
+              "2017488_pasqualevpe0_AIC_CLLI": {
                 "type": "string",
                 "description": "AIC Site CLLI",
                 "entry_schema": null,
                 "inputProperties": {
                   "sourceType": "HEAT",
-                  "vfModuleLabel": "ADIOD_vRE_BV",
+                  "vfModuleLabel": "PASQUALE_vRE_BV",
                   "paramName": "AIC_CLLI"
                 },
                 "constraints": null,
                 "required": true,
                 "default": "ATLMY8GA"
               },
-              "adiodvpe0_bandwidth_units": {
+              "pasqualevpe0_bandwidth_units": {
                 "type": "string",
                 "description": "Units of bandwidth",
                 "entry_schema": null,
                 "inputProperties": {
                   "sourceType": "HEAT",
-                  "vfModuleLabel": "ADIOD_vRE_BV",
+                  "vfModuleLabel": "PASQUALE_vRE_BV",
                   "paramName": "bandwidth_units"
                 },
                 "constraints": null,
             },
             "volumeGroupAllowed": true
           },
-          "2017488_adiodvpe0..2017488AdiodVpe..ADIOD_base_vPE_BV..module-0": {
+          "2017488_pasqualevpe0..2017488PasqualeVpe..PASQUALE_base_vPE_BV..module-0": {
             "uuid": "f8360508-3f17-4414-a2ed-6bc71161e8db",
             "invariantUuid": "b34833bb-6aa9-4ad6-a831-70b06367a091",
             "customizationUuid": "a55961b2-2065-4ab0-a5b7-2fcee1c227e3",
             "description": null,
-            "name": "2017488AdiodVpe..ADIOD_base_vPE_BV..module-0",
+            "name": "2017488PasqualeVpe..PASQUALE_base_vPE_BV..module-0",
             "version": "5",
-            "modelCustomizationName": "2017488AdiodVpe..ADIOD_base_vPE_BV..module-0",
+            "modelCustomizationName": "2017488PasqualeVpe..PASQUALE_base_vPE_BV..module-0",
             "properties": {
               "minCountInstances": 1,
               "maxCountInstances": 1,
               "initialCount": 1,
-              "vfModuleLabel": "ADIOD_base_vPE_BV"
+              "vfModuleLabel": "PASQUALE_base_vPE_BV"
             },
             "inputs": {},
             "volumeGroupAllowed": false
           },
-          "2017488_adiodvpe0..2017488AdiodVpe..ADIOD_vPFE_BV..module-2": {
+          "2017488_pasqualevpe0..2017488PasqualeVpe..PASQUALE_vPFE_BV..module-2": {
             "uuid": "0a0dd9d4-31d3-4c3a-ae89-a02f383e6a9a",
             "invariantUuid": "eff8cc59-53a1-4101-aed7-8cf24ecf8339",
             "customizationUuid": "3cd946bb-50e0-40d8-96d3-c9023520b557",
             "description": null,
-            "name": "2017488AdiodVpe..ADIOD_vPFE_BV..module-2",
+            "name": "2017488PasqualeVpe..PASQUALE_vPFE_BV..module-2",
             "version": "6",
-            "modelCustomizationName": "2017488AdiodVpe..ADIOD_vPFE_BV..module-2",
+            "modelCustomizationName": "2017488PasqualeVpe..PASQUALE_vPFE_BV..module-2",
             "properties": {
               "minCountInstances": 0,
               "maxCountInstances": null,
               "initialCount": 0,
-              "vfModuleLabel": "ADIOD_vPFE_BV"
+              "vfModuleLabel": "PASQUALE_vPFE_BV"
             },
             "inputs": {},
             "volumeGroupAllowed": true
           }
         },
         "volumeGroups": {
-          "2017488_adiodvpe0..2017488AdiodVpe..ADIOD_vRE_BV..module-1": {
+          "2017488_pasqualevpe0..2017488PasqualeVpe..PASQUALE_vRE_BV..module-1": {
             "uuid": "25284168-24bb-4698-8cb4-3f509146eca5",
             "invariantUuid": "7253ff5c-97f0-4b8b-937c-77aeb4d79aa1",
             "customizationUuid": "f7e7c365-60cf-49a9-9ebf-a1aa11b9d401",
             "description": null,
-            "name": "2017488AdiodVpe..ADIOD_vRE_BV..module-1",
+            "name": "2017488PasqualeVpe..PASQUALE_vRE_BV..module-1",
             "version": "6",
-            "modelCustomizationName": "2017488AdiodVpe..ADIOD_vRE_BV..module-1",
+            "modelCustomizationName": "2017488PasqualeVpe..PASQUALE_vRE_BV..module-1",
             "properties": {
               "minCountInstances": 0,
               "maxCountInstances": null,
               "initialCount": 0,
-              "vfModuleLabel": "ADIOD_vRE_BV"
+              "vfModuleLabel": "PASQUALE_vRE_BV"
             },
             "inputs": {
-              "adiodvpe0_bandwidth": {
+              "pasqualevpe0_bandwidth": {
                 "type": "string",
                 "description": "Requested VPE bandwidth",
                 "entry_schema": null,
                 "inputProperties": {
                   "sourceType": "HEAT",
-                  "vfModuleLabel": "ADIOD_vRE_BV",
+                  "vfModuleLabel": "PASQUALE_vRE_BV",
                   "paramName": "bandwidth"
                 },
                 "constraints": null,
                 "required": true,
                 "default": "10"
               },
-              "2017488_adiodvpe0_vnf_instance_name": {
+              "2017488_pasqualevpe0_vnf_instance_name": {
                 "type": "string",
                 "description": "The hostname assigned to the vpe.",
                 "entry_schema": null,
                 "inputProperties": {
                   "sourceType": "HEAT",
-                  "vfModuleLabel": "ADIOD_vRE_BV",
+                  "vfModuleLabel": "PASQUALE_vRE_BV",
                   "paramName": "vnf_instance_name"
                 },
                 "constraints": null,
                 "required": true,
                 "default": "mtnj309me6"
               },
-              "2017488_adiodvpe0_vnf_config_template_version": {
+              "2017488_pasqualevpe0_vnf_config_template_version": {
                 "type": "string",
                 "description": "VPE Software Version",
                 "entry_schema": null,
                 "inputProperties": {
                   "sourceType": "HEAT",
-                  "vfModuleLabel": "ADIOD_vRE_BV",
+                  "vfModuleLabel": "PASQUALE_vRE_BV",
                   "paramName": "vnf_config_template_version"
                 },
                 "constraints": null,
                 "required": true,
                 "default": "17.2"
               },
-              "2017488_adiodvpe0_AIC_CLLI": {
+              "2017488_pasqualevpe0_AIC_CLLI": {
                 "type": "string",
                 "description": "AIC Site CLLI",
                 "entry_schema": null,
                 "inputProperties": {
                   "sourceType": "HEAT",
-                  "vfModuleLabel": "ADIOD_vRE_BV",
+                  "vfModuleLabel": "PASQUALE_vRE_BV",
                   "paramName": "AIC_CLLI"
                 },
                 "constraints": null,
                 "required": true,
                 "default": "ATLMY8GA"
               },
-              "adiodvpe0_bandwidth_units": {
+              "pasqualevpe0_bandwidth_units": {
                 "type": "string",
                 "description": "Units of bandwidth",
                 "entry_schema": null,
                 "inputProperties": {
                   "sourceType": "HEAT",
-                  "vfModuleLabel": "ADIOD_vRE_BV",
+                  "vfModuleLabel": "PASQUALE_vRE_BV",
                   "paramName": "bandwidth_units"
                 },
                 "constraints": null,
               }
             }
           },
-          "2017488_adiodvpe0..2017488AdiodVpe..ADIOD_vPFE_BV..module-2": {
+          "2017488_pasqualevpe0..2017488PasqualeVpe..PASQUALE_vPFE_BV..module-2": {
             "uuid": "0a0dd9d4-31d3-4c3a-ae89-a02f383e6a9a",
             "invariantUuid": "eff8cc59-53a1-4101-aed7-8cf24ecf8339",
             "customizationUuid": "3cd946bb-50e0-40d8-96d3-c9023520b557",
             "description": null,
-            "name": "2017488AdiodVpe..ADIOD_vPFE_BV..module-2",
+            "name": "2017488PasqualeVpe..PASQUALE_vPFE_BV..module-2",
             "version": "6",
-            "modelCustomizationName": "2017488AdiodVpe..ADIOD_vPFE_BV..module-2",
+            "modelCustomizationName": "2017488PasqualeVpe..PASQUALE_vPFE_BV..module-2",
             "properties": {
               "minCountInstances": 0,
               "maxCountInstances": null,
               "initialCount": 0,
-              "vfModuleLabel": "ADIOD_vPFE_BV"
+              "vfModuleLabel": "PASQUALE_vPFE_BV"
             },
             "inputs": {}
           }
           "1da7b585-5e61-4993-b95e-8e6606c81e45": 1
         },
         "vnfs": {
-          "2017-388_ADIOD-vPE 1": {
+          "2017-388_PASQUALE-vPE 1": {
             "rollbackOnFailure": "false",
             "vfModules": {},
             "productFamilyId": "36b4733a-53f4-4cc8-8ff0-9172e5fc4b8e",
             "tenantId": "229bcdc6eaeb4ca59d55221141d01f8e",
             "lineOfBusiness": "zzz1",
             "platformName": "platform",
-            "originalName": "2017-388_ADIOD-vPE 1",
+            "originalName": "2017-388_PASQUALE-vPE 1",
             "modelInfo": {
               "modelType": "service",
               "modelInvariantId": "00beb8f9-6d39-452f-816d-c709b9cbb87d",
               "modelVersionId": "0903e1c0-8e03-4936-b5c2-260653b96413",
-              "modelName": "2017-388_ADIOD-vPE",
+              "modelName": "2017-388_PASQUALE-vPE",
               "modelVersion": "1.0",
               "modelCustomizationId": "280dec31-f16d-488b-9668-4aae55d6648a",
-              "modelCustomizationName": "2017-388_ADIOD-vPE 1"
+              "modelCustomizationName": "2017-388_PASQUALE-vPE 1"
             }
           },
-          "2017-488_ADIOD-vPE 0": {
+          "2017-488_PASQUALE-vPE 0": {
             "rollbackOnFailure": "false",
-            "originalName": "2017-488_ADIOD-vPE 0",
+            "originalName": "2017-488_PASQUALE-vPE 0",
             "vfModules": {
-              "2017488_adiodvpe0..2017488AdiodVpe..ADIOD_vRE_BV..module-1": {
-                "2017488_adiodvpe0..2017488AdiodVpe..ADIOD_vRE_BV..module-1": {
+              "2017488_pasqualevpe0..2017488PasqualeVpe..PASQUALE_vRE_BV..module-1": {
+                "2017488_pasqualevpe0..2017488PasqualeVpe..PASQUALE_vRE_BV..module-1": {
                   "rollbackOnFailure": true,
                   "modelInfo": {
                     "modelType": "service",
                     "modelInvariantId": "7253ff5c-97f0-4b8b-937c-77aeb4d79aa1",
                     "modelVersionId": "25284168-24bb-4698-8cb4-3f509146eca5",
-                    "modelName": "2017488AdiodVpe..ADIOD_vRE_BV..module-1",
+                    "modelName": "2017488PasqualeVpe..PASQUALE_vRE_BV..module-1",
                     "modelVersion": "6"
                   },
                   "instanceParams": [
                     {
-                      "adiodvpe0_bandwidth": "10",
-                      "2017488_adiodvpe0_vnf_instance_name": "mtnj309me6",
-                      "2017488_adiodvpe0_vnf_config_template_version": "17.2",
-                      "2017488_adiodvpe0_AIC_CLLI": "ATLMY8GA",
-                      "adiodvpe0_bandwidth_units": "Gbps"
+                      "pasqualevpe0_bandwidth": "10",
+                      "2017488_pasqualevpe0_vnf_instance_name": "mtnj309me6",
+                      "2017488_pasqualevpe0_vnf_config_template_version": "17.2",
+                      "2017488_pasqualevpe0_AIC_CLLI": "ATLMY8GA",
+                      "pasqualevpe0_bandwidth_units": "Gbps"
                     }
                   ]
                 }
               "modelType": "service",
               "modelInvariantId": "72e465fe-71b1-4e7b-b5ed-9496118ff7a8",
               "modelVersionId": "69e09f68-8b63-4cc9-b9ff-860960b5db09",
-              "modelName": "2017-488_ADIOD-vPE",
+              "modelName": "2017-488_PASQUALE-vPE",
               "modelVersion": "5.0",
               "modelCustomizationId": "1da7b585-5e61-4993-b95e-8e6606c81e45",
-              "modelCustomizationName": "2017-488_ADIOD-vPE 0"
+              "modelCustomizationName": "2017-488_PASQUALE-vPE 0"
             }
           }
         },
         "instanceParams": [
           {
-            "2017488_adiodvpe0_ASN": "AV_vPE"
+            "2017488_pasqualevpe0_ASN": "AV_vPE"
           }
         ],
         "globalSubscriberId": "e433710f-9217-458d-a79d-1c7aff376d89",
         "productFamilyId": "ebc3bc3d-62fd-4a3f-a037-f619df4ff034",
         "subscriptionServiceType": "TYLER SILVIA",
-        "lcpCloudRegionId": "JANET25",
+        "lcpCloudRegionId": "AAIAIC25",
         "tenantId": "092eb9e8e4b7412e8787dd091bc58e86",
         "aicZoneId": "JAG1",
         "projectName": "WATKINS",
           "modelName": "action-data",
           "modelVersion": "1.0"
         },
+        "vidNotions": {
+          "instantiationType": "Macro"
+        },
         "isEcompGeneratedNaming": true,
         "tenantName": "USP-SIP-IC-24335-T-01",
         "aicZoneName": "YUDFJULP-JAG1"
     "lcpRegionsAndTenants": {
       "lcpRegionList": [
         {
-          "id": "JANET25",
-          "name": "JANET25",
+          "id": "AAIAIC25",
+          "name": "AAIAIC25",
           "isPermitted": true
         },
         {
         }
       ],
       "lcpRegionsTenantsMap": {
-        "JANET25": [
+        "AAIAIC25": [
           {
             "id": "092eb9e8e4b7412e8787dd091bc58e86",
             "name": "USP-SIP-IC-24335-T-01",
             "isPermitted": true
           },
           {
-            "id": "d0a3e3f2964542259d155a81c41aadc3",
-            "name": "test-hvf6-09",
+            "id": "229bcdc6eaeb4ca59d55221141d01f8e",
+            "name": "AIN Web Tool-15-D-STTest2",
+            "isPermitted": true
+          },
+          {
+            "id": "1178612d2b394be4834ad77f567c0af2",
+            "name": "AIN Web Tool-15-D-SSPtestcustome",
+            "isPermitted": true
+          },
+          {
+            "id": "19c5ade915eb461e8af52fb2fd8cd1f2",
+            "name": "AIN Web Tool-15-D-UncheckedEcopm",
+            "isPermitted": true
+          },
+          {
+            "id": "de007636e25249238447264a988a927b",
+            "name": "AIN Web Tool-15-D-dfsdf",
+            "isPermitted": true
+          },
+          {
+            "id": "62f29b3613634ca6a3065cbe0e020c44",
+            "name": "AIN/SMS-16-D-Multiservices1",
+            "isPermitted": true
+          },
+          {
+            "id": "649289e30d3244e0b48098114d63c2aa",
+            "name": "AIN Web Tool-15-D-SSPST66",
+            "isPermitted": true
+          },
+          {
+            "id": "3f21eeea6c2c486bba31dab816c05a32",
+            "name": "AIN Web Tool-15-D-ASSPST47",
+            "isPermitted": true
+          },
+          {
+            "id": "f60ce21d3ee6427586cff0d22b03b773",
+            "name": "CESAR-100-D-sspjg67246",
+            "isPermitted": true
+          },
+          {
+            "id": "8774659e425f479895ae091bb5d46560",
+            "name": "CESAR-100-D-sspjg68359",
+            "isPermitted": true
+          },
+          {
+            "id": "624eb554b0d147c19ff8885341760481",
+            "name": "AINWebTool-15-D-iftach",
+            "isPermitted": true
+          },
+          {
+            "id": "214f55f5fc414c678059c383b03e4962",
+            "name": "CESAR-100-D-sspjg612401",
+            "isPermitted": true
+          },
+          {
+            "id": "c90666c291664841bb98e4d981ff1db5",
+            "name": "CESAR-100-D-sspjg621340",
+            "isPermitted": true
+          },
+          {
+            "id": "ce5b6bc5c7b348e1bf4b91ac9a174278",
+            "name": "sspjg621351cloned",
+            "isPermitted": true
+          },
+          {
+            "id": "b386b768a3f24c8e953abbe0b3488c02",
+            "name": "AINWebTool-15-D-eteancomp",
+            "isPermitted": true
+          },
+          {
+            "id": "dc6c4dbfd225474e9deaadd34968646c",
+            "name": "AINWebTool-15-T-SPFET",
+            "isPermitted": true
+          },
+          {
+            "id": "02cb5030e9914aa4be120bd9ed1e19eb",
+            "name": "AINWebTool-15-X-eeweww",
+            "isPermitted": true
+          },
+          {
+            "id": "f2f3830e4c984d45bcd00e1a04158a79",
+            "name": "CESAR-100-D-spjg61909",
+            "isPermitted": true
+          },
+          {
+            "id": "05b91bd5137f4929878edd965755c06d",
+            "name": "CESAR-100-D-sspjg621512cloned",
+            "isPermitted": true
+          },
+          {
+            "id": "7002fbe8482d4a989ddf445b1ce336e0",
+            "name": "AINWebTool-15-X-vdr",
+            "isPermitted": true
+          },
+          {
+            "id": "4008522be43741dcb1f5422022a2aa0b",
+            "name": "AINWebTool-15-D-ssasa",
+            "isPermitted": true
+          },
+          {
+            "id": "f44e2e96a1b6476abfda2fa407b00169",
+            "name": "AINWebTool-15-D-PFNPT",
+            "isPermitted": true
+          },
+          {
+            "id": "b69a52bec8a84669a37a1e8b72708be7",
+            "name": "AINWebTool-15-X-vdre",
+            "isPermitted": true
+          },
+          {
+            "id": "fac7d9fd56154caeb9332202dcf2969f",
+            "name": "AINWebTool-15-X-NONPODECOMP",
+            "isPermitted": true
+          },
+          {
+            "id": "2d34d8396e194eb49969fd61ffbff961",
+            "name": "DN5242-Nov16-T5",
+            "isPermitted": true
+          },
+          {
+            "id": "cb42a77ff45b48a8b8deb83bb64acc74",
+            "name": "ro-T11",
             "isPermitted": true
           },
           {
             "name": "ro-T112",
             "isPermitted": true
           },
+          {
+            "id": "4914ab0ab3a743e58f0eefdacc1dde77",
+            "name": "DN5242-Nov21-T1",
+            "isPermitted": true
+          },
+          {
+            "id": "d0a3e3f2964542259d155a81c41aadc3",
+            "name": "test-hvf6-09",
+            "isPermitted": true
+          },
           {
             "id": "cbb99fe4ada84631b7baf046b6fd2044",
             "name": "DN5242-Nov16-T3",
     "productFamilies": [
       {
         "id": "ebc3bc3d-62fd-4a3f-a037-f619df4ff034",
-        "name": "SCOTTIE",
+        "name": "ERICA",
         "isPermitted": true
       },
       {
       },
       {
         "id": "323d69d9-2efe-4r45-ay0a-89ea7ard4e6f",
-        "name": "vSCP",
+        "name": "vEsmeralda",
         "isPermitted": true
       },
       {
         "isPermitted": true
       },
       {
-        "id": "Cisneros",
+        "id": "vMuriel",
         "name": "vMuriel",
         "isPermitted": true
       },
       },
       {
         "id": "d7bb0a21-66f2-4e6d-87d9-9ef3ced63ae4",
-        "name": "Josefina",
+        "name": "JOSEFINA",
         "isPermitted": true
       },
       {
         },
         {
           "id": "6",
-          "name": "vSEGW",
+          "name": "vPorfirio",
           "isPermitted": false
         },
         {
         },
         {
           "id": "9",
-          "name": "vMME",
+          "name": "vFLORENCE",
           "isPermitted": false
         },
         {
         },
         {
           "id": "11",
-          "name": "vSCP",
+          "name": "vEsmeralda",
           "isPermitted": false
         },
         {
         },
         {
           "id": "13",
-          "name": "vMMSC",
+          "name": "vWINIFRED",
           "isPermitted": false
         },
         {
         "id": "YYY1",
         "name": "UUUAIAAI-YYY1"
       },
+      {
+        "id": "BAN1",
+        "name": "VSDKYUTP-BAN1"
+      },
+      {
+        "id": "DKJ1",
+        "name": "DKJSJDKA-DKJ1"
+      },
+      {
+        "id": "MCS1",
+        "name": "ASACMAMS-MCS1"
+      },
+      {
+        "id": "UIO1",
+        "name": "uioclli1-UIO1"
+      },
+      {
+        "id": "RAJ1",
+        "name": "YGBIJNLQ-RAJ1"
+      },
+      {
+        "id": "OPA1",
+        "name": "opaclli1-OPA1"
+      },
+      {
+        "id": "SDE1",
+        "name": "ZXCVBNMA-SDE1"
+      },
+      {
+        "id": "VEN2",
+        "name": "FGHJUHIL-VEN2"
+      },
+      {
+        "id": "ORL1",
+        "name": "ORLDFLMA-ORL1"
+      },
+      {
+        "id": "JAD1",
+        "name": "JADECLLI-JAD1"
+      },
+      {
+        "id": "ZXL1",
+        "name": "LWLWCANN-ZXL1"
+      },
+      {
+        "id": "CKL1",
+        "name": "CLKSKCKK-CKL1"
+      },
+      {
+        "id": "SDF1",
+        "name": "sdfclli1-SDF1"
+      },
+      {
+        "id": "RAD1",
+        "name": "RADICAL1-RAD1"
+      },
+      {
+        "id": "KIT1",
+        "name": "BHYJFGLN-KIT1"
+      },
+      {
+        "id": "REL1",
+        "name": "INGERFGT-REL1"
+      },
+      {
+        "id": "JNL1",
+        "name": "CJALSDAC-JNL1"
+      },
+      {
+        "id": "OLK1",
+        "name": "OLKOLKLS-OLK1"
+      },
+      {
+        "id": "CHI1",
+        "name": "CHILLIWE-CHI1"
+      },
+      {
+        "id": "UUU4",
+        "name": "UUUAAAUU-UUU4"
+      },
+      {
+        "id": "TUF1",
+        "name": "TUFCLLI1-TUF1"
+      },
+      {
+        "id": "KJN1",
+        "name": "CKALDKSA-KJN1"
+      },
+      {
+        "id": "SAM1",
+        "name": "SNDGCA64-SAN1"
+      },
+      {
+        "id": "SCK1",
+        "name": "SCKSCKSK-SCK1"
+      },
+      {
+        "id": "HJH1",
+        "name": "AOEEQQQD-HJH1"
+      },
+      {
+        "id": "HGD1",
+        "name": "SDFQWHGD-HGD1"
+      },
+      {
+        "id": "KOR1",
+        "name": "HYFLNBVT-KOR1"
+      },
+      {
+        "id": "ATL43",
+        "name": "AICLOCID-ATL43"
+      },
+      {
+        "id": "ATL54",
+        "name": "AICFTAAI-ATL54"
+      },
+      {
+        "id": "ATL66",
+        "name": "CLLIAAII-ATL66"
+      },
+      {
+        "id": "VEL1",
+        "name": "BNMLKUIK-VEL1"
+      },
+      {
+        "id": "ICC1",
+        "name": "SANJITAT-ICC1"
+      },
+      {
+        "id": "MNT11",
+        "name": "WSXEFBTH-MNT11"
+      },
+      {
+        "id": "DEF2",
+        "name": "WSBHGTYL-DEF2"
+      },
+      {
+        "id": "MAD11",
+        "name": "SDFQWGKL-MAD11"
+      },
+      {
+        "id": "OLG1",
+        "name": "OLHOLHOL-OLG1"
+      },
+      {
+        "id": "GAR1",
+        "name": "NGFVSJKO-GAR1"
+      },
+      {
+        "id": "SAN22",
+        "name": "GNVLSCTL-SAN22"
+      },
+      {
+        "id": "HRG1",
+        "name": "HRGHRGGS-HRG1"
+      },
+      {
+        "id": "JCS1",
+        "name": "JCSJSCJS-JCS1"
+      },
+      {
+        "id": "DHA12",
+        "name": "WSXEDECF-DHA12"
+      },
+      {
+        "id": "HJE1",
+        "name": "AOEEWWWD-HJE1"
+      },
+      {
+        "id": "NCA1",
+        "name": "NCANCANN-NCA1"
+      },
+      {
+        "id": "IOP1",
+        "name": "iopclli1-IOP1"
+      },
+      {
+        "id": "RTY1",
+        "name": "rtyclli1-RTY1"
+      },
+      {
+        "id": "KAP1",
+        "name": "HIOUYTRQ-KAP1"
+      },
+      {
+        "id": "ZEN1",
+        "name": "ZENCLLI1-ZEN1"
+      },
+      {
+        "id": "HKA1",
+        "name": "JAKHLASS-HKA1"
+      },
+      {
+        "id": "CQK1",
+        "name": "CQKSCAKK-CQK1"
+      },
+      {
+        "id": "SAI1",
+        "name": "UBEKQLPD-SAI1"
+      },
+      {
+        "id": "ERT1",
+        "name": "ertclli1-ERT1"
+      },
+      {
+        "id": "IBB1",
+        "name": "PLMKOIJU-IBB1"
+      },
+      {
+        "id": "TIR2",
+        "name": "PLKINHYI-TIR2"
+      },
+      {
+        "id": "HSD1",
+        "name": "CHASKCDS-HSD1"
+      },
+      {
+        "id": "SLF78",
+        "name": "SDCTLFN1-SLF78"
+      },
+      {
+        "id": "SEE78",
+        "name": "SDCTEEE4-SEE78"
+      },
+      {
+        "id": "SAN13",
+        "name": "TOKYJPFA-SAN13"
+      },
+      {
+        "id": "SAA78",
+        "name": "SDCTAAA1-SAA78"
+      },
+      {
+        "id": "LUC1",
+        "name": "ATLDFGYC-LUC1"
+      },
+      {
+        "id": "AMD13",
+        "name": "MEMATLAN-AMD13"
+      },
+      {
+        "id": "TOR1",
+        "name": "TOROONXN-TOR1"
+      },
+      {
+        "id": "QWE1",
+        "name": "QWECLLI1-QWE1"
+      },
+      {
+        "id": "ZOG1",
+        "name": "ZOGASTRO-ZOG1"
+      },
+      {
+        "id": "CAL33",
+        "name": "CALIFORN-CAL33"
+      },
+      {
+        "id": "SHH78",
+        "name": "SDIT1HHH-SHH78"
+      },
+      {
+        "id": "DSA1",
+        "name": "LKJHGFDS-DSA1"
+      },
+      {
+        "id": "CLG1",
+        "name": "CLGRABAD-CLG1"
+      },
+      {
+        "id": "BNA1",
+        "name": "BNARAGBK-BNA1"
+      },
+      {
+        "id": "ATL84",
+        "name": "CANTTCOC-ATL84"
+      },
+      {
+        "id": "APP1",
+        "name": "WBHGTYUI-APP1"
+      },
+      {
+        "id": "RJN1",
+        "name": "RJNRBZAW-RJN1"
+      },
+      {
+        "id": "EHH78",
+        "name": "SDCSHHH5-EHH78"
+      },
+      {
+        "id": "mac10",
+        "name": "PKGTESTF-mac10"
+      },
+      {
+        "id": "SXB78",
+        "name": "SDCTGXB1-SXB78"
+      },
+      {
+        "id": "SAX78",
+        "name": "SDCTAXG1-SAX78"
+      },
+      {
+        "id": "SYD1",
+        "name": "SYDNAUBV-SYD1"
+      },
+      {
+        "id": "TOK1",
+        "name": "TOKYJPFA-TOK1"
+      },
+      {
+        "id": "KGM2",
+        "name": "KGMTNC20-KGM2"
+      },
+      {
+        "id": "DCC1b",
+        "name": "POIUYTGH-DCC1b"
+      },
+      {
+        "id": "SKK78",
+        "name": "SDCTKKK1-SKK78"
+      },
+      {
+        "id": "SGG78",
+        "name": "SDCTGGG1-SGG78"
+      },
+      {
+        "id": "SJJ78",
+        "name": "SDCTJJJ1-SJJ78"
+      },
+      {
+        "id": "SBX78",
+        "name": "SDCTBXG1-SBX78"
+      },
+      {
+        "id": "LAG1",
+        "name": "LARGIZON-LAG1"
+      },
+      {
+        "id": "IAA1",
+        "name": "QAZXSWED-IAA1"
+      },
+      {
+        "id": "POI1",
+        "name": "PLMNJKIU-POI1"
+      },
+      {
+        "id": "LAG1a",
+        "name": "LARGIZON-LAG1a"
+      },
+      {
+        "id": "PBL1",
+        "name": "PBLAPBAI-PBL1"
+      },
+      {
+        "id": "LAG45",
+        "name": "LARGIZON-LAG1a"
+      },
+      {
+        "id": "MAR1",
+        "name": "MNBVCXZM-MAR1"
+      },
+      {
+        "id": "HST70",
+        "name": "HSTNTX70-HST70"
+      },
+      {
+        "id": "DCC1a",
+        "name": "POIUYTGH-DCC1a"
+      },
+      {
+        "id": "TOL1",
+        "name": "TOLDOH21-TOL1"
+      },
+      {
+        "id": "LON1",
+        "name": "LONEENCO-LON1"
+      },
+      {
+        "id": "SJU78",
+        "name": "SDIT1JUB-SJU78"
+      },
+      {
+        "id": "STN27",
+        "name": "HSTNTX01-STN27"
+      },
+      {
+        "id": "SSW56",
+        "name": "ss8126GT-SSW56"
+      },
+      {
+        "id": "SBB78",
+        "name": "SDIT1BBB-SBB78"
+      },
+      {
+        "id": "DCC3",
+        "name": "POIUYTGH-DCC3"
+      },
+      {
+        "id": "GNV1",
+        "name": "GNVLSCTL-GNV1"
+      },
+      {
+        "id": "WAS1",
+        "name": "WASHDCSW-WAS1"
+      },
+      {
+        "id": "TOY1",
+        "name": "TORYONNZ-TOY1"
+      },
+      {
+        "id": "STT1",
+        "name": "STTLWA02-STT1"
+      },
+      {
+        "id": "STG1",
+        "name": "STTGGE62-STG1"
+      },
+      {
+        "id": "SLL78",
+        "name": "SDCTLLL1-SLL78"
+      },
+      {
+        "id": "SBU78",
+        "name": "SDIT1BUB-SBU78"
+      },
+      {
+        "id": "ATL2",
+        "name": "ATLNGANW-ATL2"
+      },
+      {
+        "id": "BOT1",
+        "name": "BOTHWAKY-BOT1"
+      },
+      {
+        "id": "SNG1",
+        "name": "SNGPSIAU-SNG1"
+      },
+      {
+        "id": "NYC1",
+        "name": "NYCMNY54-NYC1"
+      },
+      {
+        "id": "LAG1b",
+        "name": "LARGIZON-LAG1b"
+      },
+      {
+        "id": "AMD15",
+        "name": "AMDFAA01-AMD15"
+      },
+      {
+        "id": "SNA1",
+        "name": "SNANTXCA-SNA1"
+      },
+      {
+        "id": "PLT1",
+        "name": "PLTNCA60-PLT1"
+      },
+      {
+        "id": "TLP1",
+        "name": "TLPNXM18-TLP1"
+      },
+      {
+        "id": "SDD81",
+        "name": "SAIT1DD6-SDD81"
+      },
+      {
+        "id": "DCC1",
+        "name": "POIUYTGH-DCC1"
+      },
+      {
+        "id": "DCC2",
+        "name": "POIUYTGH-DCC2"
+      },
+      {
+        "id": "OKC1",
+        "name": "OKCBOK55-OKC1"
+      },
+      {
+        "id": "PAR1",
+        "name": "PARSFRCG-PAR1"
+      },
+      {
+        "id": "TES36",
+        "name": "ABCEETES-TES36"
+      },
+      {
+        "id": "COM1",
+        "name": "PLMKOPIU-COM1"
+      },
+      {
+        "id": "ANI1",
+        "name": "ATLNGTRE-ANI1"
+      },
+      {
+        "id": "SDG78",
+        "name": "SDIT1BDG-SDG78"
+      },
+      {
+        "id": "mac20",
+        "name": "PKGTESTF-mac20"
+      },
+      {
+        "id": "DSF45",
+        "name": "DSFBG123-DSF45"
+      },
+      {
+        "id": "HST25",
+        "name": "HSTNTX01-HST25"
+      },
+      {
+        "id": "AMD18",
+        "name": "AUDIMA01-AMD18"
+      },
+      {
+        "id": "SAA80",
+        "name": "SAIT9AA3-SAA80"
+      },
+      {
+        "id": "SSA56",
+        "name": "SSIT2AA7-SSA56"
+      },
+      {
+        "id": "SDD82",
+        "name": "SAIT1DD9-SDD82"
+      },
+      {
+        "id": "JCV1",
+        "name": "JCVLFLBW-JCV1"
+      },
+      {
+        "id": "SUL2",
+        "name": "WERTYUJK-SUL2"
+      },
+      {
+        "id": "PUR1",
+        "name": "purelyde-PUR1"
+      },
+      {
+        "id": "FDE55",
+        "name": "FDERT555-FDE55"
+      },
+      {
+        "id": "SITE",
+        "name": "LONEENCO-SITE"
+      },
+      {
+        "id": "ATL1",
+        "name": "ATLNGAMA-ATL1"
+      },
+      {
+        "id": "JUL1",
+        "name": "ZXCVBNMM-JUL1"
+      },
+      {
+        "id": "TAT34",
+        "name": "TESAAISB-TAT34"
+      },
+      {
+        "id": "XCP12",
+        "name": "CHKGH123-XCP12"
+      },
+      {
+        "id": "RAI1",
+        "name": "poiuytre-RAI1"
+      },
+      {
+        "id": "HPO1",
+        "name": "ATLNGAUP-HPO1"
+      },
+      {
+        "id": "KJF12",
+        "name": "KJFDH123-KJF12"
+      },
+      {
+        "id": "SCC80",
+        "name": "SAIT9CC3-SCC80"
+      },
+      {
+        "id": "SAA12",
+        "name": "SAIT9AF8-SAA12"
+      },
+      {
+        "id": "SAA14",
+        "name": "SAIT1AA9-SAA14"
+      },
+      {
+        "id": "ATL35",
+        "name": "TTESSAAI-ATL35"
+      },
+      {
+        "id": "CWY1",
+        "name": "CWYMOWBS-CWY1"
+      },
+      {
+        "id": "ATL76",
+        "name": "TELEPAAI-ATL76"
+      },
+      {
+        "id": "DSL12",
+        "name": "DSLFK242-DSL12"
+      },
+      {
+        "id": "ATL53",
+        "name": "AAIATLTE-ATL53"
+      },
+      {
+        "id": "SAA11",
+        "name": "SAIT9AA2-SAA11"
+      },
+      {
+        "id": "ATL62",
+        "name": "TESSASCH-ATL62"
+      },
+      {
+        "id": "AUG1",
+        "name": "ASDFGHJK-AUG1"
+      },
+      {
+        "id": "POI22",
+        "name": "POIUY123-POI22"
+      },
+      {
+        "id": "SAA13",
+        "name": "SAIT1AA9-SAA13"
+      },
+      {
+        "id": "BHY17",
+        "name": "BHYTFRF3-BHY17"
+      },
+      {
+        "id": "LIS1",
+        "name": "HOSTPROF-LIS1"
+      },
+      {
+        "id": "SIP1",
+        "name": "ZXCVBNMK-SIP1"
+      },
+      {
+        "id": "ATL99",
+        "name": "TEESTAAI-ATL43"
+      },
+      {
+        "id": "ATL64",
+        "name": "FORLOAAJ-ATL64"
+      },
+      {
+        "id": "TAT33",
+        "name": "TESAAISA-TAT33"
+      },
+      {
+        "id": "RAD10",
+        "name": "INDIPUNE-RAD10"
+      },
+      {
+        "id": "RTW5",
+        "name": "BHYTFRY4-RTW5"
+      },
+      {
+        "id": "JGS1",
+        "name": "KSJKKKKK-JGS1"
+      },
+      {
+        "id": "ATL98",
+        "name": "TEESTAAI-ATL43"
+      },
+      {
+        "id": "WAN1",
+        "name": "LEIWANGW-WAN1"
+      },
+      {
+        "id": "ATL44",
+        "name": "ATLSANAB-ATL44"
+      },
+      {
+        "id": "RTD2",
+        "name": "BHYTFRk4-RTD2"
+      },
+      {
+        "id": "NIR1",
+        "name": "ORFLMANA-NIR1"
+      },
+      {
+        "id": "ATL75",
+        "name": "SANAAIRE-ATL75"
+      },
+      {
+        "id": "NUM1",
+        "name": "QWERTYUI-NUM1"
+      },
+      {
+        "id": "hvf32",
+        "name": "MDTWNJ21-hvf32"
+      },
+      {
+        "id": "RTZ4",
+        "name": "BHYTFRZ6-RTZ4"
+      },
+      {
+        "id": "ATL56",
+        "name": "ATLSANAC-ATL56"
+      },
+      {
+        "id": "AMS1",
+        "name": "AMSTNLBW-AMS1"
+      },
+      {
+        "id": "RCT1",
+        "name": "AMSTERNL-RCT1"
+      },
+      {
+        "id": "JAN1",
+        "name": "ORFLMATT-JAN1"
+      },
+      {
+        "id": "ABC14",
+        "name": "TESAAISA-ABC14"
+      },
+      {
+        "id": "TAT37",
+        "name": "TESAAISD-TAT37"
+      },
+      {
+        "id": "MIC54",
+        "name": "MICHIGAN-MIC54"
+      },
+      {
+        "id": "ABC11",
+        "name": "ATLSANAI-ABC11"
+      },
+      {
+        "id": "AMF11",
+        "name": "AMDOCS01-AMF11"
+      },
+      {
+        "id": "ATL63",
+        "name": "ATLSANEW-ATL63"
+      },
+      {
+        "id": "ABC12",
+        "name": "ATLSECIA-ABC12"
+      },
+      {
+        "id": "hvf20",
+        "name": "MDTWNJ21-hvf20"
+      },
+      {
+        "id": "ABC15",
+        "name": "AAITESAN-ABC15"
+      },
       {
         "id": "AVT1",
         "name": "AVTRFLHD-AVT1"
index 30d53b4..028b62b 100644 (file)
@@ -3,7 +3,7 @@
     "cloudOwner": "irma-aic",
     "tenantName": "USP-SIP-IC-24335-T-01",
     "tenantID": "092eb9e8e4b7412e8787dd091bc58e86",
-    "cloudRegionID": "JANET25",
+    "cloudRegionID": "AAIAIC25",
     "is-permitted": true
   },
   {
index bba5ec1..bc37b6b 100644 (file)
@@ -7,7 +7,7 @@
   "vnfGroups":{},
   "instanceParams":[
     {
-      "2017488_adiodvpe0_ASN":"AV_vPE"
+      "2017488_pasqualevpe0_ASN":"AV_vPE"
     }],
   "globalSubscriberId":"e433710f-9217-458d-a79d-1c7aff376d89",
   "subscriptionServiceType":"TYLER SILVIA",
     "modelName":"Grouping Service for Test",
     "modelVersion":"1.0"
   },
+  "vidNotions": {
+    "instantiationUI": "serviceWithVnfGrouping",
+    "modelCategory": "other",
+    "viewEditUI": "serviceWithVnfGrouping",
+    "instantiationType": "ALaCarte"
+  },
   "existingNames":{},
   "instanceName": "Grouping_Service_Instance",
   "subscriberName":"SILVIA ROBBINS",
index 6012d59..a96da4c 100644 (file)
@@ -15,7 +15,7 @@
           "serviceEcompNaming": "true",
           "instantiationType": "Macro",
           "inputs": {
-            "2017488_adiodvpe0_ASN": {
+            "2017488_pasqualevpe0_ASN": {
               "type": "string",
               "description": "AV/PE",
               "entry_schema": null,
               "type": "LOAD-GROUP"
             },
             "members": {
-              "vdbe_svc_vprs_proxy 0": {
+              "vdorothea_svc_vprs_proxy 0": {
                 "uuid": "65fadfa8-a0d9-443f-95ad-836cd044e26c",
                 "invariantUuid": "f4baae0c-b3a5-4ca1-a777-afbffe7010bc",
-                "description": "A Proxy for Service vDBE_Svc_vPRS",
-                "name": "vDBE_Svc_vPRS Service Proxy",
+                "description": "A Proxy for Service vDOROTHEA_Svc_vPRS",
+                "name": "vDOROTHEA_Svc_vPRS Service Proxy",
                 "version": "1.0",
                 "customizationUuid": "bdb63d23-e132-4ce7-af2c-a493b4cafac9",
                 "inputs": {},
                 "type": "Service Proxy",
                 "sourceModelUuid": "da7827a2-366d-4be6-8c68-a69153c61274",
                 "sourceModelInvariant": "24632e6b-584b-4f45-80d4-fefd75fd9f14",
-                "sourceModelName": "vDBE_Svc_vPRS"
+                "sourceModelName": "vDOROTHEA_Svc_vPRS"
               },
-              "vdbe_svc_vprs_proxy 1": {
+              "vdorothea_svc_vprs_proxy 1": {
                 "uuid": "111dfa8-a0d9-443f-95ad-836cd044e26c",
                 "invariantUuid": "111ae0c-b3a5-4ca1-a777-afbffe7010bc",
-                "description": "A Proxy for Service vDBE_Svc_vPRS",
+                "description": "A Proxy for Service vDOROTHEA_Svc_vPRS",
                 "name": "111_Svc_vPRS Service Proxy",
                 "version": "1.0",
                 "customizationUuid": "1113d23-e132-4ce7-af2c-a493b4cafac9",
@@ -76,7 +76,7 @@
           }
         },
         "networks": {},
-        "collectionResource": {},
+        "collectionResources": {},
         "configurations": {},
         "serviceProxies": {},
         "vfModules": {},
         "vnfGroups": {},
         "instanceParams": [
           {
-            "2017488_adiodvpe0_ASN": "AV_vPE"
+            "2017488_pasqualevpe0_ASN": "AV_vPE"
           }
         ],
         "globalSubscriberId": "e433710f-9217-458d-a79d-1c7aff376d89",
         "productFamilyId": "ebc3bc3d-62fd-4a3f-a037-f619df4ff034",
         "subscriptionServiceType": "TYLER SILVIA",
-        "lcpCloudRegionId": "JANET25",
+        "lcpCloudRegionId": "AAIAIC25",
         "tenantId": "092eb9e8e4b7412e8787dd091bc58e86",
         "aicZoneId": "JAG1",
         "projectName": "WATKINS",
     "lcpRegionsAndTenants": {
       "lcpRegionList": [
         {
-          "id": "JANET25",
-          "name": "JANET25 (AIC)",
+          "id": "AAIAIC25",
+          "name": "AAIAIC25 (AIC)",
           "isPermitted": true,
           "cloudOwner": "irma-aic"
         },
         }
       ],
       "lcpRegionsTenantsMap": {
-        "JANET25": [
+        "AAIAIC25": [
           {
             "id": "092eb9e8e4b7412e8787dd091bc58e86",
             "name": "USP-SIP-IC-24335-T-01",
             "cloudOwner": "irma-aic"
           },
           {
-            "id": "d0a3e3f2964542259d155a81c41aadc3",
-            "name": "test-hvf6-09",
+            "id": "229bcdc6eaeb4ca59d55221141d01f8e",
+            "name": "AIN Web Tool-15-D-STTest2",
+            "isPermitted": true,
+            "cloudOwner": "irma-aic"
+          },
+          {
+            "id": "1178612d2b394be4834ad77f567c0af2",
+            "name": "AIN Web Tool-15-D-SSPtestcustome",
+            "isPermitted": true,
+            "cloudOwner": "irma-aic"
+          },
+          {
+            "id": "19c5ade915eb461e8af52fb2fd8cd1f2",
+            "name": "AIN Web Tool-15-D-UncheckedEcopm",
+            "isPermitted": true,
+            "cloudOwner": "irma-aic"
+          },
+          {
+            "id": "de007636e25249238447264a988a927b",
+            "name": "AIN Web Tool-15-D-dfsdf",
+            "isPermitted": true,
+            "cloudOwner": "irma-aic"
+          },
+          {
+            "id": "62f29b3613634ca6a3065cbe0e020c44",
+            "name": "AIN/SMS-16-D-Multiservices1",
+            "isPermitted": true,
+            "cloudOwner": "irma-aic"
+          },
+          {
+            "id": "649289e30d3244e0b48098114d63c2aa",
+            "name": "AIN Web Tool-15-D-SSPST66",
+            "isPermitted": true,
+            "cloudOwner": "irma-aic"
+          },
+          {
+            "id": "3f21eeea6c2c486bba31dab816c05a32",
+            "name": "AIN Web Tool-15-D-ASSPST47",
+            "isPermitted": true,
+            "cloudOwner": "irma-aic"
+          },
+          {
+            "id": "f60ce21d3ee6427586cff0d22b03b773",
+            "name": "CESAR-100-D-sspjg67246",
+            "isPermitted": true,
+            "cloudOwner": "irma-aic"
+          },
+          {
+            "id": "8774659e425f479895ae091bb5d46560",
+            "name": "CESAR-100-D-sspjg68359",
+            "isPermitted": true,
+            "cloudOwner": "irma-aic"
+          },
+          {
+            "id": "624eb554b0d147c19ff8885341760481",
+            "name": "AINWebTool-15-D-iftach",
+            "isPermitted": true,
+            "cloudOwner": "irma-aic"
+          },
+          {
+            "id": "214f55f5fc414c678059c383b03e4962",
+            "name": "CESAR-100-D-sspjg612401",
+            "isPermitted": true,
+            "cloudOwner": "irma-aic"
+          },
+          {
+            "id": "c90666c291664841bb98e4d981ff1db5",
+            "name": "CESAR-100-D-sspjg621340",
+            "isPermitted": true,
+            "cloudOwner": "irma-aic"
+          },
+          {
+            "id": "ce5b6bc5c7b348e1bf4b91ac9a174278",
+            "name": "sspjg621351cloned",
+            "isPermitted": true,
+            "cloudOwner": "irma-aic"
+          },
+          {
+            "id": "b386b768a3f24c8e953abbe0b3488c02",
+            "name": "AINWebTool-15-D-eteancomp",
+            "isPermitted": true,
+            "cloudOwner": "irma-aic"
+          },
+          {
+            "id": "dc6c4dbfd225474e9deaadd34968646c",
+            "name": "AINWebTool-15-T-SPFET",
+            "isPermitted": true,
+            "cloudOwner": "irma-aic"
+          },
+          {
+            "id": "02cb5030e9914aa4be120bd9ed1e19eb",
+            "name": "AINWebTool-15-X-eeweww",
+            "isPermitted": true,
+            "cloudOwner": "irma-aic"
+          },
+          {
+            "id": "f2f3830e4c984d45bcd00e1a04158a79",
+            "name": "CESAR-100-D-spjg61909",
+            "isPermitted": true,
+            "cloudOwner": "irma-aic"
+          },
+          {
+            "id": "05b91bd5137f4929878edd965755c06d",
+            "name": "CESAR-100-D-sspjg621512cloned",
+            "isPermitted": true,
+            "cloudOwner": "irma-aic"
+          },
+          {
+            "id": "7002fbe8482d4a989ddf445b1ce336e0",
+            "name": "AINWebTool-15-X-vdr",
+            "isPermitted": true,
+            "cloudOwner": "irma-aic"
+          },
+          {
+            "id": "4008522be43741dcb1f5422022a2aa0b",
+            "name": "AINWebTool-15-D-ssasa",
+            "isPermitted": true,
+            "cloudOwner": "irma-aic"
+          },
+          {
+            "id": "f44e2e96a1b6476abfda2fa407b00169",
+            "name": "AINWebTool-15-D-PFNPT",
+            "isPermitted": true,
+            "cloudOwner": "irma-aic"
+          },
+          {
+            "id": "b69a52bec8a84669a37a1e8b72708be7",
+            "name": "AINWebTool-15-X-vdre",
+            "isPermitted": true,
+            "cloudOwner": "irma-aic"
+          },
+          {
+            "id": "fac7d9fd56154caeb9332202dcf2969f",
+            "name": "AINWebTool-15-X-NONPODECOMP",
+            "isPermitted": true,
+            "cloudOwner": "irma-aic"
+          },
+          {
+            "id": "2d34d8396e194eb49969fd61ffbff961",
+            "name": "DN5242-Nov16-T5",
+            "isPermitted": true,
+            "cloudOwner": "irma-aic"
+          },
+          {
+            "id": "cb42a77ff45b48a8b8deb83bb64acc74",
+            "name": "ro-T11",
             "isPermitted": true,
             "cloudOwner": "irma-aic"
           },
             "isPermitted": true,
             "cloudOwner": "irma-aic"
           },
+          {
+            "id": "4914ab0ab3a743e58f0eefdacc1dde77",
+            "name": "DN5242-Nov21-T1",
+            "isPermitted": true,
+            "cloudOwner": "irma-aic"
+          },
+          {
+            "id": "d0a3e3f2964542259d155a81c41aadc3",
+            "name": "test-hvf6-09",
+            "isPermitted": true,
+            "cloudOwner": "irma-aic"
+          },
           {
             "id": "cbb99fe4ada84631b7baf046b6fd2044",
             "name": "DN5242-Nov16-T3",
     "productFamilies": [
       {
         "id": "ebc3bc3d-62fd-4a3f-a037-f619df4ff034",
-        "name": "SCOTTIE",
+        "name": "ERICA",
         "isPermitted": true
       },
       {
       },
       {
         "id": "323d69d9-2efe-4r45-ay0a-89ea7ard4e6f",
-        "name": "vSCP",
+        "name": "vEsmeralda",
         "isPermitted": true
       },
       {
         "isPermitted": true
       },
       {
-        "id": "Cisneros",
+        "id": "vMuriel",
         "name": "vMuriel",
         "isPermitted": true
       },
       },
       {
         "id": "d7bb0a21-66f2-4e6d-87d9-9ef3ced63ae4",
-        "name": "Josefina",
+        "name": "JOSEFINA",
         "isPermitted": true
       },
       {
         },
         {
           "id": "6",
-          "name": "vSEGW",
+          "name": "vPorfirio",
           "isPermitted": false
         },
         {
         },
         {
           "id": "9",
-          "name": "vMME",
+          "name": "vFLORENCE",
           "isPermitted": false
         },
         {
         },
         {
           "id": "11",
-          "name": "vSCP",
+          "name": "vEsmeralda",
           "isPermitted": false
         },
         {
         },
         {
           "id": "13",
-          "name": "vMMSC",
+          "name": "vWINIFRED",
           "isPermitted": false
         },
         {
         "id": "YYY1",
         "name": "UUUAIAAI-YYY1"
       },
+      {
+        "id": "BAN1",
+        "name": "VSDKYUTP-BAN1"
+      },
+      {
+        "id": "DKJ1",
+        "name": "DKJSJDKA-DKJ1"
+      },
+      {
+        "id": "MCS1",
+        "name": "ASACMAMS-MCS1"
+      },
+      {
+        "id": "UIO1",
+        "name": "uioclli1-UIO1"
+      },
+      {
+        "id": "RAJ1",
+        "name": "YGBIJNLQ-RAJ1"
+      },
+      {
+        "id": "OPA1",
+        "name": "opaclli1-OPA1"
+      },
+      {
+        "id": "SDE1",
+        "name": "ZXCVBNMA-SDE1"
+      },
+      {
+        "id": "VEN2",
+        "name": "FGHJUHIL-VEN2"
+      },
+      {
+        "id": "ORL1",
+        "name": "ORLDFLMA-ORL1"
+      },
+      {
+        "id": "JAD1",
+        "name": "JADECLLI-JAD1"
+      },
+      {
+        "id": "ZXL1",
+        "name": "LWLWCANN-ZXL1"
+      },
+      {
+        "id": "CKL1",
+        "name": "CLKSKCKK-CKL1"
+      },
+      {
+        "id": "SDF1",
+        "name": "sdfclli1-SDF1"
+      },
+      {
+        "id": "RAD1",
+        "name": "RADICAL1-RAD1"
+      },
+      {
+        "id": "KIT1",
+        "name": "BHYJFGLN-KIT1"
+      },
+      {
+        "id": "REL1",
+        "name": "INGERFGT-REL1"
+      },
+      {
+        "id": "JNL1",
+        "name": "CJALSDAC-JNL1"
+      },
+      {
+        "id": "OLK1",
+        "name": "OLKOLKLS-OLK1"
+      },
+      {
+        "id": "CHI1",
+        "name": "CHILLIWE-CHI1"
+      },
+      {
+        "id": "UUU4",
+        "name": "UUUAAAUU-UUU4"
+      },
+      {
+        "id": "TUF1",
+        "name": "TUFCLLI1-TUF1"
+      },
+      {
+        "id": "KJN1",
+        "name": "CKALDKSA-KJN1"
+      },
+      {
+        "id": "SAM1",
+        "name": "SNDGCA64-SAN1"
+      },
+      {
+        "id": "SCK1",
+        "name": "SCKSCKSK-SCK1"
+      },
+      {
+        "id": "HJH1",
+        "name": "AOEEQQQD-HJH1"
+      },
+      {
+        "id": "HGD1",
+        "name": "SDFQWHGD-HGD1"
+      },
+      {
+        "id": "KOR1",
+        "name": "HYFLNBVT-KOR1"
+      },
+      {
+        "id": "ATL43",
+        "name": "AICLOCID-ATL43"
+      },
+      {
+        "id": "ATL54",
+        "name": "AICFTAAI-ATL54"
+      },
+      {
+        "id": "ATL66",
+        "name": "CLLIAAII-ATL66"
+      },
+      {
+        "id": "VEL1",
+        "name": "BNMLKUIK-VEL1"
+      },
+      {
+        "id": "ICC1",
+        "name": "SANJITAT-ICC1"
+      },
+      {
+        "id": "MNT11",
+        "name": "WSXEFBTH-MNT11"
+      },
+      {
+        "id": "DEF2",
+        "name": "WSBHGTYL-DEF2"
+      },
+      {
+        "id": "MAD11",
+        "name": "SDFQWGKL-MAD11"
+      },
+      {
+        "id": "OLG1",
+        "name": "OLHOLHOL-OLG1"
+      },
+      {
+        "id": "GAR1",
+        "name": "NGFVSJKO-GAR1"
+      },
+      {
+        "id": "SAN22",
+        "name": "GNVLSCTL-SAN22"
+      },
+      {
+        "id": "HRG1",
+        "name": "HRGHRGGS-HRG1"
+      },
+      {
+        "id": "JCS1",
+        "name": "JCSJSCJS-JCS1"
+      },
+      {
+        "id": "DHA12",
+        "name": "WSXEDECF-DHA12"
+      },
+      {
+        "id": "HJE1",
+        "name": "AOEEWWWD-HJE1"
+      },
+      {
+        "id": "NCA1",
+        "name": "NCANCANN-NCA1"
+      },
+      {
+        "id": "IOP1",
+        "name": "iopclli1-IOP1"
+      },
+      {
+        "id": "RTY1",
+        "name": "rtyclli1-RTY1"
+      },
+      {
+        "id": "KAP1",
+        "name": "HIOUYTRQ-KAP1"
+      },
+      {
+        "id": "ZEN1",
+        "name": "ZENCLLI1-ZEN1"
+      },
+      {
+        "id": "HKA1",
+        "name": "JAKHLASS-HKA1"
+      },
+      {
+        "id": "CQK1",
+        "name": "CQKSCAKK-CQK1"
+      },
+      {
+        "id": "SAI1",
+        "name": "UBEKQLPD-SAI1"
+      },
+      {
+        "id": "ERT1",
+        "name": "ertclli1-ERT1"
+      },
+      {
+        "id": "IBB1",
+        "name": "PLMKOIJU-IBB1"
+      },
+      {
+        "id": "TIR2",
+        "name": "PLKINHYI-TIR2"
+      },
+      {
+        "id": "HSD1",
+        "name": "CHASKCDS-HSD1"
+      },
+      {
+        "id": "SLF78",
+        "name": "SDCTLFN1-SLF78"
+      },
+      {
+        "id": "SEE78",
+        "name": "SDCTEEE4-SEE78"
+      },
+      {
+        "id": "SAN13",
+        "name": "TOKYJPFA-SAN13"
+      },
+      {
+        "id": "SAA78",
+        "name": "SDCTAAA1-SAA78"
+      },
+      {
+        "id": "LUC1",
+        "name": "ATLDFGYC-LUC1"
+      },
+      {
+        "id": "AMD13",
+        "name": "MEMATLAN-AMD13"
+      },
+      {
+        "id": "TOR1",
+        "name": "TOROONXN-TOR1"
+      },
+      {
+        "id": "QWE1",
+        "name": "QWECLLI1-QWE1"
+      },
+      {
+        "id": "ZOG1",
+        "name": "ZOGASTRO-ZOG1"
+      },
+      {
+        "id": "CAL33",
+        "name": "CALIFORN-CAL33"
+      },
+      {
+        "id": "SHH78",
+        "name": "SDIT1HHH-SHH78"
+      },
+      {
+        "id": "DSA1",
+        "name": "LKJHGFDS-DSA1"
+      },
+      {
+        "id": "CLG1",
+        "name": "CLGRABAD-CLG1"
+      },
+      {
+        "id": "BNA1",
+        "name": "BNARAGBK-BNA1"
+      },
+      {
+        "id": "ATL84",
+        "name": "CANTTCOC-ATL84"
+      },
+      {
+        "id": "APP1",
+        "name": "WBHGTYUI-APP1"
+      },
+      {
+        "id": "RJN1",
+        "name": "RJNRBZAW-RJN1"
+      },
+      {
+        "id": "EHH78",
+        "name": "SDCSHHH5-EHH78"
+      },
+      {
+        "id": "mac10",
+        "name": "PKGTESTF-mac10"
+      },
+      {
+        "id": "SXB78",
+        "name": "SDCTGXB1-SXB78"
+      },
+      {
+        "id": "SAX78",
+        "name": "SDCTAXG1-SAX78"
+      },
+      {
+        "id": "SYD1",
+        "name": "SYDNAUBV-SYD1"
+      },
+      {
+        "id": "TOK1",
+        "name": "TOKYJPFA-TOK1"
+      },
+      {
+        "id": "KGM2",
+        "name": "KGMTNC20-KGM2"
+      },
+      {
+        "id": "DCC1b",
+        "name": "POIUYTGH-DCC1b"
+      },
+      {
+        "id": "SKK78",
+        "name": "SDCTKKK1-SKK78"
+      },
+      {
+        "id": "SGG78",
+        "name": "SDCTGGG1-SGG78"
+      },
+      {
+        "id": "SJJ78",
+        "name": "SDCTJJJ1-SJJ78"
+      },
+      {
+        "id": "SBX78",
+        "name": "SDCTBXG1-SBX78"
+      },
+      {
+        "id": "LAG1",
+        "name": "LARGIZON-LAG1"
+      },
+      {
+        "id": "IAA1",
+        "name": "QAZXSWED-IAA1"
+      },
+      {
+        "id": "POI1",
+        "name": "PLMNJKIU-POI1"
+      },
+      {
+        "id": "LAG1a",
+        "name": "LARGIZON-LAG1a"
+      },
+      {
+        "id": "PBL1",
+        "name": "PBLAPBAI-PBL1"
+      },
+      {
+        "id": "LAG45",
+        "name": "LARGIZON-LAG1a"
+      },
+      {
+        "id": "MAR1",
+        "name": "MNBVCXZM-MAR1"
+      },
+      {
+        "id": "HST70",
+        "name": "HSTNTX70-HST70"
+      },
+      {
+        "id": "DCC1a",
+        "name": "POIUYTGH-DCC1a"
+      },
+      {
+        "id": "TOL1",
+        "name": "TOLDOH21-TOL1"
+      },
+      {
+        "id": "LON1",
+        "name": "LONEENCO-LON1"
+      },
+      {
+        "id": "SJU78",
+        "name": "SDIT1JUB-SJU78"
+      },
+      {
+        "id": "STN27",
+        "name": "HSTNTX01-STN27"
+      },
+      {
+        "id": "SSW56",
+        "name": "ss8126GT-SSW56"
+      },
+      {
+        "id": "SBB78",
+        "name": "SDIT1BBB-SBB78"
+      },
+      {
+        "id": "DCC3",
+        "name": "POIUYTGH-DCC3"
+      },
+      {
+        "id": "GNV1",
+        "name": "GNVLSCTL-GNV1"
+      },
+      {
+        "id": "WAS1",
+        "name": "WASHDCSW-WAS1"
+      },
+      {
+        "id": "TOY1",
+        "name": "TORYONNZ-TOY1"
+      },
+      {
+        "id": "STT1",
+        "name": "STTLWA02-STT1"
+      },
+      {
+        "id": "STG1",
+        "name": "STTGGE62-STG1"
+      },
+      {
+        "id": "SLL78",
+        "name": "SDCTLLL1-SLL78"
+      },
+      {
+        "id": "SBU78",
+        "name": "SDIT1BUB-SBU78"
+      },
+      {
+        "id": "ATL2",
+        "name": "ATLNGANW-ATL2"
+      },
+      {
+        "id": "BOT1",
+        "name": "BOTHWAKY-BOT1"
+      },
+      {
+        "id": "SNG1",
+        "name": "SNGPSIAU-SNG1"
+      },
+      {
+        "id": "NYC1",
+        "name": "NYCMNY54-NYC1"
+      },
+      {
+        "id": "LAG1b",
+        "name": "LARGIZON-LAG1b"
+      },
+      {
+        "id": "AMD15",
+        "name": "AMDFAA01-AMD15"
+      },
+      {
+        "id": "SNA1",
+        "name": "SNANTXCA-SNA1"
+      },
+      {
+        "id": "PLT1",
+        "name": "PLTNCA60-PLT1"
+      },
+      {
+        "id": "TLP1",
+        "name": "TLPNXM18-TLP1"
+      },
+      {
+        "id": "SDD81",
+        "name": "SAIT1DD6-SDD81"
+      },
+      {
+        "id": "DCC1",
+        "name": "POIUYTGH-DCC1"
+      },
+      {
+        "id": "DCC2",
+        "name": "POIUYTGH-DCC2"
+      },
+      {
+        "id": "OKC1",
+        "name": "OKCBOK55-OKC1"
+      },
+      {
+        "id": "PAR1",
+        "name": "PARSFRCG-PAR1"
+      },
+      {
+        "id": "TES36",
+        "name": "ABCEETES-TES36"
+      },
+      {
+        "id": "COM1",
+        "name": "PLMKOPIU-COM1"
+      },
+      {
+        "id": "ANI1",
+        "name": "ATLNGTRE-ANI1"
+      },
+      {
+        "id": "SDG78",
+        "name": "SDIT1BDG-SDG78"
+      },
+      {
+        "id": "mac20",
+        "name": "PKGTESTF-mac20"
+      },
+      {
+        "id": "DSF45",
+        "name": "DSFBG123-DSF45"
+      },
+      {
+        "id": "HST25",
+        "name": "HSTNTX01-HST25"
+      },
+      {
+        "id": "AMD18",
+        "name": "AUDIMA01-AMD18"
+      },
+      {
+        "id": "SAA80",
+        "name": "SAIT9AA3-SAA80"
+      },
+      {
+        "id": "SSA56",
+        "name": "SSIT2AA7-SSA56"
+      },
+      {
+        "id": "SDD82",
+        "name": "SAIT1DD9-SDD82"
+      },
+      {
+        "id": "JCV1",
+        "name": "JCVLFLBW-JCV1"
+      },
+      {
+        "id": "SUL2",
+        "name": "WERTYUJK-SUL2"
+      },
+      {
+        "id": "PUR1",
+        "name": "purelyde-PUR1"
+      },
+      {
+        "id": "FDE55",
+        "name": "FDERT555-FDE55"
+      },
+      {
+        "id": "SITE",
+        "name": "LONEENCO-SITE"
+      },
+      {
+        "id": "ATL1",
+        "name": "ATLNGAMA-ATL1"
+      },
+      {
+        "id": "JUL1",
+        "name": "ZXCVBNMM-JUL1"
+      },
+      {
+        "id": "TAT34",
+        "name": "TESAAISB-TAT34"
+      },
+      {
+        "id": "XCP12",
+        "name": "CHKGH123-XCP12"
+      },
+      {
+        "id": "RAI1",
+        "name": "poiuytre-RAI1"
+      },
+      {
+        "id": "HPO1",
+        "name": "ATLNGAUP-HPO1"
+      },
+      {
+        "id": "KJF12",
+        "name": "KJFDH123-KJF12"
+      },
+      {
+        "id": "SCC80",
+        "name": "SAIT9CC3-SCC80"
+      },
+      {
+        "id": "SAA12",
+        "name": "SAIT9AF8-SAA12"
+      },
+      {
+        "id": "SAA14",
+        "name": "SAIT1AA9-SAA14"
+      },
+      {
+        "id": "ATL35",
+        "name": "TTESSAAI-ATL35"
+      },
+      {
+        "id": "CWY1",
+        "name": "CWYMOWBS-CWY1"
+      },
+      {
+        "id": "ATL76",
+        "name": "TELEPAAI-ATL76"
+      },
+      {
+        "id": "DSL12",
+        "name": "DSLFK242-DSL12"
+      },
+      {
+        "id": "ATL53",
+        "name": "AAIATLTE-ATL53"
+      },
+      {
+        "id": "SAA11",
+        "name": "SAIT9AA2-SAA11"
+      },
+      {
+        "id": "ATL62",
+        "name": "TESSASCH-ATL62"
+      },
+      {
+        "id": "AUG1",
+        "name": "ASDFGHJK-AUG1"
+      },
+      {
+        "id": "POI22",
+        "name": "POIUY123-POI22"
+      },
+      {
+        "id": "SAA13",
+        "name": "SAIT1AA9-SAA13"
+      },
+      {
+        "id": "BHY17",
+        "name": "BHYTFRF3-BHY17"
+      },
+      {
+        "id": "LIS1",
+        "name": "HOSTPROF-LIS1"
+      },
+      {
+        "id": "SIP1",
+        "name": "ZXCVBNMK-SIP1"
+      },
+      {
+        "id": "ATL99",
+        "name": "TEESTAAI-ATL43"
+      },
+      {
+        "id": "ATL64",
+        "name": "FORLOAAJ-ATL64"
+      },
+      {
+        "id": "TAT33",
+        "name": "TESAAISA-TAT33"
+      },
+      {
+        "id": "RAD10",
+        "name": "INDIPUNE-RAD10"
+      },
+      {
+        "id": "RTW5",
+        "name": "BHYTFRY4-RTW5"
+      },
+      {
+        "id": "JGS1",
+        "name": "KSJKKKKK-JGS1"
+      },
+      {
+        "id": "ATL98",
+        "name": "TEESTAAI-ATL43"
+      },
+      {
+        "id": "WAN1",
+        "name": "LEIWANGW-WAN1"
+      },
+      {
+        "id": "ATL44",
+        "name": "ATLSANAB-ATL44"
+      },
+      {
+        "id": "RTD2",
+        "name": "BHYTFRk4-RTD2"
+      },
+      {
+        "id": "NIR1",
+        "name": "ORFLMANA-NIR1"
+      },
+      {
+        "id": "ATL75",
+        "name": "SANAAIRE-ATL75"
+      },
+      {
+        "id": "NUM1",
+        "name": "QWERTYUI-NUM1"
+      },
+      {
+        "id": "hvf32",
+        "name": "MDTWNJ21-hvf32"
+      },
+      {
+        "id": "RTZ4",
+        "name": "BHYTFRZ6-RTZ4"
+      },
+      {
+        "id": "ATL56",
+        "name": "ATLSANAC-ATL56"
+      },
+      {
+        "id": "AMS1",
+        "name": "AMSTNLBW-AMS1"
+      },
+      {
+        "id": "RCT1",
+        "name": "AMSTERNL-RCT1"
+      },
+      {
+        "id": "JAN1",
+        "name": "ORFLMATT-JAN1"
+      },
+      {
+        "id": "ABC14",
+        "name": "TESAAISA-ABC14"
+      },
+      {
+        "id": "TAT37",
+        "name": "TESAAISD-TAT37"
+      },
+      {
+        "id": "MIC54",
+        "name": "MICHIGAN-MIC54"
+      },
+      {
+        "id": "ABC11",
+        "name": "ATLSANAI-ABC11"
+      },
+      {
+        "id": "AMF11",
+        "name": "AMDOCS01-AMF11"
+      },
+      {
+        "id": "ATL63",
+        "name": "ATLSANEW-ATL63"
+      },
+      {
+        "id": "ABC12",
+        "name": "ATLSECIA-ABC12"
+      },
+      {
+        "id": "hvf20",
+        "name": "MDTWNJ21-hvf20"
+      },
+      {
+        "id": "ABC15",
+        "name": "AAITESAN-ABC15"
+      },
       {
         "id": "AVT1",
         "name": "AVTRFLHD-AVT1"
index de18d8b..3942d82 100644 (file)
       "zone-name": "QWERTYUI-NUM1"
     },
     {
-      "zone-id": "MTN32",
-      "zone-name": "MDTWNJ21-MTN32"
+      "zone-id": "hvf32",
+      "zone-name": "MDTWNJ21-hvf32"
     },
     {
       "zone-id": "RTZ4",
       "zone-name": "ATLSECIA-ABC12"
     },
     {
-      "zone-id": "MTN20",
-      "zone-name": "MDTWNJ21-MTN20"
+      "zone-id": "hvf20",
+      "zone-name": "MDTWNJ21-hvf20"
     },
     {
       "zone-id": "ABC15",
index 2033f06..2668277 100644 (file)
@@ -8,6 +8,7 @@ declare namespace Cypress {
 
 function assertComponentInfoTitleLabelsAndValues(expectedTitle: string, labelsAndValues: string[][]) : void{
   cy.getElementByDataTestsId('component-info-section-title').should('have.text', expectedTitle);
+  cy.get('.componentInfoItem').should('have.length', labelsAndValues.length);
   labelsAndValues.forEach((tuple: string[], index: number, array: string[][]) => {
     let label = tuple[0];
     let value = tuple[1];
diff --git a/vid-webpack-master/cypress/support/steps/drawingBoard/drawingBoardHeader.steps.ts b/vid-webpack-master/cypress/support/steps/drawingBoard/drawingBoardHeader.steps.ts
new file mode 100644 (file)
index 0000000..7881eb1
--- /dev/null
@@ -0,0 +1,33 @@
+declare namespace Cypress {
+  interface Chainable {
+    serviceActionDelete: typeof serviceActionDelete
+    serviceActionUndoDelete: typeof serviceActionUndoDelete
+    serviceActionResume: typeof serviceActionResume
+    serviceActionUndoResume: typeof serviceActionResume
+  }
+}
+
+function serviceActionDelete() : void  {
+  cy.getElementByDataTestsId('openMenuBtn').click();
+  cy.getElementByDataTestsId('context-menu-header-delete-item').click();
+  cy.getElementByDataTestsId('openMenuBtn').click();
+  cy.getElementByDataTestsId('context-menu-header-delete-item').should("have.text", "Undo delete");
+}
+
+function serviceActionUndoDelete() : void  {
+  cy.getElementByDataTestsId('openMenuBtn').click();
+  cy.getElementByDataTestsId('context-menu-header-delete-item').click();
+  cy.getElementByDataTestsId('openMenuBtn').click();
+  cy.getElementByDataTestsId('context-menu-header-delete-item').should("have.text", "Delete");
+}
+
+function serviceActionResume() : void {
+  cy.getElementByDataTestsId('openMenuBtn').click();
+  cy.getElementByDataTestsId('context-menu-header-resume-item').click();
+}
+
+
+Cypress.Commands.add('serviceActionUndoDelete', serviceActionUndoDelete);
+Cypress.Commands.add('serviceActionDelete', serviceActionDelete);
+Cypress.Commands.add('serviceActionResume', serviceActionResume);
+Cypress.Commands.add('serviceActionUndoResume', serviceActionResume);
index b2b48b2..7854899 100644 (file)
@@ -2,6 +2,7 @@ declare namespace Cypress {
   interface Chainable {
     drawingBoardPressAddButtonByElementName: typeof drawingBoardPressAddButtonByElementName,
     drawingBoardNumberOfExistingElementsShouldContains: typeof drawingBoardNumberOfExistingElementsShouldContains
+    getDrawingBoardDeployBtn: typeof getDrawingBoardDeployBtn
   }
 }
 
@@ -13,5 +14,10 @@ function drawingBoardNumberOfExistingElementsShouldContains(expectedElements : n
   cy.getElementByDataTestsId('numberButton').contains(expectedElements);
 }
 
+function getDrawingBoardDeployBtn() : Chainable<any> {
+  return cy.getElementByDataTestsId('deployBtn');
+}
+
 Cypress.Commands.add('drawingBoardPressAddButtonByElementName', drawingBoardPressAddButtonByElementName);
 Cypress.Commands.add('drawingBoardNumberOfExistingElementsShouldContains', drawingBoardNumberOfExistingElementsShouldContains);
+Cypress.Commands.add('getDrawingBoardDeployBtn', getDrawingBoardDeployBtn);
index 0150b44..a940ae1 100644 (file)
@@ -1,7 +1,13 @@
 declare namespace Cypress {
   interface Chainable {
     drawingBoardTreeOpenContextMenuByElementDataTestId: typeof drawingBoardTreeOpenContextMenuByElementDataTestId,
-    drawingBoardTreeClickOnContextMenuOptionByName: typeof drawingBoardTreeClickOnContextMenuOptionByName
+    drawingBoardTreeClickOnContextMenuOptionByName: typeof drawingBoardTreeClickOnContextMenuOptionByName,
+    nodeWithLineThrough: typeof nodeWithLineThrough,
+    nodeWithoutLineThrough: typeof nodeWithoutLineThrough,
+    IsDeleteTagShownOnNode: typeof IsDeleteTagShownOnNode,
+    IsDeleteTagNotShownOnNode: typeof IsDeleteTagNotShownOnNode,
+    isNodeDeleted: typeof isNodeDeleted,
+    isNodeNotDeleted: typeof isNodeNotDeleted
   }
 }
 
@@ -17,11 +23,51 @@ function drawingBoardTreeClickOnContextMenuOptionByName(optionName : string) : C
       return cy.getElementByDataTestsId('context-menu-remove').click({force : true});
     case 'Edit':
       return cy.getElementByDataTestsId('context-menu-edit').click({force : true});
+    case 'Delete':
+      return cy.getElementByDataTestsId('context-menu-delete').trigger('mouseover').click();
     default:
       return cy.getElementByDataTestsId('context-menu-duplicate').click({force : true});
   }
 }
 
+function isNodeDeleted(index: number)
+{
+  cy.get('.tree-node').eq(1).find('[data-tests-id="node-name"]').eq(index).should('have.css', 'text-decoration').and('contain', 'line-through');
+  cy.getElementByDataTestsId('delete-status-type').eq(index).should("contain.text", "Delete").should("contain.css", "opacity", "1");
+}
+
+function isNodeNotDeleted(index: number)
+{
+  cy.get('.tree-node').eq(1).find('[data-tests-id="node-name"]').eq(index).should('have.css', 'text-decoration').and('not.contain', 'line-through');
+  cy.getElementByDataTestsId('delete-status-type').eq(index).should("contain.text", "Delete").should("contain.css", "opacity", "0");
+}
+function nodeWithLineThrough(index: number)
+{
+  cy.getElementByDataTestsId('node-name').eq(index).should('have.css', 'text-decoration').and('contain', 'line-through')
+}
+
+function nodeWithoutLineThrough(index: number)
+{
+  cy.getElementByDataTestsId('node-name').eq(index).should('have.css', 'text-decoration').and('not.contain', 'line-through')
+}
+
+
+function IsDeleteTagShownOnNode(index: number)
+{
+  cy.getElementByDataTestsId('delete-status-type').eq(index).should("contain.text", "Delete").should("contain.css", "opacity", "1");
+}
+
+function IsDeleteTagNotShownOnNode(index: number)
+{
+  cy.getElementByDataTestsId('delete-status-type').eq(index).should("contain.text", "Delete").should("contain.css", "opacity", "0");
+}
 
 Cypress.Commands.add('drawingBoardTreeOpenContextMenuByElementDataTestId', drawingBoardTreeOpenContextMenuByElementDataTestId);
 Cypress.Commands.add('drawingBoardTreeClickOnContextMenuOptionByName', drawingBoardTreeClickOnContextMenuOptionByName);
+Cypress.Commands.add('nodeWithLineThrough', nodeWithLineThrough);
+Cypress.Commands.add('nodeWithoutLineThrough', nodeWithoutLineThrough);
+Cypress.Commands.add('IsDeleteTagShownOnNode', IsDeleteTagShownOnNode);
+Cypress.Commands.add('IsDeleteTagNotShownOnNode', IsDeleteTagNotShownOnNode);
+
+Cypress.Commands.add('isNodeDeleted', isNodeDeleted);
+Cypress.Commands.add('isNodeNotDeleted', isNodeNotDeleted);
diff --git a/vid-webpack-master/package-lock.json b/vid-webpack-master/package-lock.json
deleted file mode 100644 (file)
index 21ec61c..0000000
+++ /dev/null
@@ -1,32018 +0,0 @@
-{
-  "name": "vid-cli",
-  "version": "0.0.0",
-  "lockfileVersion": 1,
-  "requires": true,
-  "dependencies": {
-    "@angular-builders/jest": {
-      "version": "7.1.2",
-      "resolved": "https://registry.npmjs.org/@angular-builders/jest/-/jest-7.1.2.tgz",
-      "integrity": "sha512-xscNy9w86kw/NJADAiRcEIASxb7Pxp6GYbEh3nlN6wVUKPSn9k9H08Z3UCoCM6h/UvJIg1JN1eXfyV6OeppF8Q==",
-      "dev": true,
-      "requires": {
-        "jest-preset-angular": "^6.0.0",
-        "lodash": "^4.17.10"
-      },
-      "dependencies": {
-        "lodash": {
-          "version": "4.17.11",
-          "resolved": "https://registry.npmjs.org/lodash/-/lodash-4.17.11.tgz",
-          "integrity": "sha512-cQKh8igo5QUhZ7lg38DYWAxMvjSAKG0A8wGSVimP07SIUEK2UO+arSRKbRZWtelMtN5V0Hkwh5ryOto/SshYIg==",
-          "dev": true
-        }
-      }
-    },
-    "@angular-devkit/architect": {
-      "version": "0.11.4",
-      "resolved": "https://registry.npmjs.org/@angular-devkit/architect/-/architect-0.11.4.tgz",
-      "integrity": "sha512-2zi6S9tPlk52vyqN67IvFoeNgd0uxtrPlwl3TdvJ3wrH7sYGJnkQ+EzAE7cKUGWAV989BbNtx2YxhRDHnN21Fg==",
-      "dev": true,
-      "requires": {
-        "@angular-devkit/core": "7.1.4",
-        "rxjs": "6.3.3"
-      },
-      "dependencies": {
-        "rxjs": {
-          "version": "6.3.3",
-          "resolved": "https://registry.npmjs.org/rxjs/-/rxjs-6.3.3.tgz",
-          "integrity": "sha512-JTWmoY9tWCs7zvIk/CvRjhjGaOd+OVBM987mxFo+OW66cGpdKjZcpmc74ES1sB//7Kl/PAe8+wEakuhG4pcgOw==",
-          "dev": true,
-          "requires": {
-            "tslib": "^1.9.0"
-          }
-        }
-      }
-    },
-    "@angular-devkit/build-angular": {
-      "version": "0.11.4",
-      "resolved": "https://registry.npmjs.org/@angular-devkit/build-angular/-/build-angular-0.11.4.tgz",
-      "integrity": "sha512-5WQAQB4heDqAotqjU3Tl8Ons0S/e16dKwVkQFdqfKPyBgmu4CyUH35eTV+i6i7un1Elg65U5GnA4MiUtApqVyw==",
-      "dev": true,
-      "requires": {
-        "@angular-devkit/architect": "0.11.4",
-        "@angular-devkit/build-optimizer": "0.11.4",
-        "@angular-devkit/build-webpack": "0.11.4",
-        "@angular-devkit/core": "7.1.4",
-        "@ngtools/webpack": "7.1.4",
-        "ajv": "6.5.3",
-        "autoprefixer": "9.3.1",
-        "circular-dependency-plugin": "5.0.2",
-        "clean-css": "4.2.1",
-        "copy-webpack-plugin": "4.5.4",
-        "file-loader": "2.0.0",
-        "glob": "7.1.3",
-        "istanbul": "0.4.5",
-        "istanbul-instrumenter-loader": "3.0.1",
-        "karma-source-map-support": "1.3.0",
-        "less": "3.8.1",
-        "less-loader": "4.1.0",
-        "license-webpack-plugin": "2.0.2",
-        "loader-utils": "1.1.0",
-        "mini-css-extract-plugin": "0.4.4",
-        "minimatch": "3.0.4",
-        "node-sass": "4.10.0",
-        "opn": "5.3.0",
-        "parse5": "4.0.0",
-        "portfinder": "1.0.17",
-        "postcss": "7.0.5",
-        "postcss-import": "12.0.0",
-        "postcss-loader": "3.0.0",
-        "raw-loader": "0.5.1",
-        "rxjs": "6.3.3",
-        "sass-loader": "7.1.0",
-        "semver": "5.5.1",
-        "source-map-loader": "0.2.4",
-        "source-map-support": "0.5.9",
-        "speed-measure-webpack-plugin": "1.2.3",
-        "stats-webpack-plugin": "0.7.0",
-        "style-loader": "0.23.1",
-        "stylus": "0.54.5",
-        "stylus-loader": "3.0.2",
-        "terser-webpack-plugin": "1.1.0",
-        "tree-kill": "1.2.0",
-        "webpack": "4.23.1",
-        "webpack-dev-middleware": "3.4.0",
-        "webpack-dev-server": "3.1.10",
-        "webpack-merge": "4.1.4",
-        "webpack-sources": "1.3.0",
-        "webpack-subresource-integrity": "1.1.0-rc.6"
-      },
-      "dependencies": {
-        "@webassemblyjs/ast": {
-          "version": "1.7.10",
-          "resolved": "https://registry.npmjs.org/@webassemblyjs/ast/-/ast-1.7.10.tgz",
-          "integrity": "sha512-wTUeaByYN2EA6qVqhbgavtGc7fLTOx0glG2IBsFlrFG51uXIGlYBTyIZMf4SPLo3v1bgV/7lBN3l7Z0R6Hswew==",
-          "dev": true,
-          "requires": {
-            "@webassemblyjs/helper-module-context": "1.7.10",
-            "@webassemblyjs/helper-wasm-bytecode": "1.7.10",
-            "@webassemblyjs/wast-parser": "1.7.10"
-          }
-        },
-        "@webassemblyjs/floating-point-hex-parser": {
-          "version": "1.7.10",
-          "resolved": "https://registry.npmjs.org/@webassemblyjs/floating-point-hex-parser/-/floating-point-hex-parser-1.7.10.tgz",
-          "integrity": "sha512-gMsGbI6I3p/P1xL2UxqhNh1ga2HCsx5VBB2i5VvJFAaqAjd2PBTRULc3BpTydabUQEGlaZCzEUQhLoLG7TvEYQ==",
-          "dev": true
-        },
-        "@webassemblyjs/helper-api-error": {
-          "version": "1.7.10",
-          "resolved": "https://registry.npmjs.org/@webassemblyjs/helper-api-error/-/helper-api-error-1.7.10.tgz",
-          "integrity": "sha512-DoYRlPWtuw3yd5BOr9XhtrmB6X1enYF0/54yNvQWGXZEPDF5PJVNI7zQ7gkcKfTESzp8bIBWailaFXEK/jjCsw==",
-          "dev": true
-        },
-        "@webassemblyjs/helper-buffer": {
-          "version": "1.7.10",
-          "resolved": "https://registry.npmjs.org/@webassemblyjs/helper-buffer/-/helper-buffer-1.7.10.tgz",
-          "integrity": "sha512-+RMU3dt/dPh4EpVX4u5jxsOlw22tp3zjqE0m3ftU2tsYxnPULb4cyHlgaNd2KoWuwasCQqn8Mhr+TTdbtj3LlA==",
-          "dev": true
-        },
-        "@webassemblyjs/helper-code-frame": {
-          "version": "1.7.10",
-          "resolved": "https://registry.npmjs.org/@webassemblyjs/helper-code-frame/-/helper-code-frame-1.7.10.tgz",
-          "integrity": "sha512-UiytbpKAULOEab2hUZK2ywXen4gWJVrgxtwY3Kn+eZaaSWaRM8z/7dAXRSoamhKFiBh1uaqxzE/XD9BLlug3gw==",
-          "dev": true,
-          "requires": {
-            "@webassemblyjs/wast-printer": "1.7.10"
-          }
-        },
-        "@webassemblyjs/helper-fsm": {
-          "version": "1.7.10",
-          "resolved": "https://registry.npmjs.org/@webassemblyjs/helper-fsm/-/helper-fsm-1.7.10.tgz",
-          "integrity": "sha512-w2vDtUK9xeSRtt5+RnnlRCI7wHEvLjF0XdnxJpgx+LJOvklTZPqWkuy/NhwHSLP19sm9H8dWxKeReMR7sCkGZA==",
-          "dev": true
-        },
-        "@webassemblyjs/helper-module-context": {
-          "version": "1.7.10",
-          "resolved": "https://registry.npmjs.org/@webassemblyjs/helper-module-context/-/helper-module-context-1.7.10.tgz",
-          "integrity": "sha512-yE5x/LzZ3XdPdREmJijxzfrf+BDRewvO0zl8kvORgSWmxpRrkqY39KZSq6TSgIWBxkK4SrzlS3BsMCv2s1FpsQ==",
-          "dev": true
-        },
-        "@webassemblyjs/helper-wasm-bytecode": {
-          "version": "1.7.10",
-          "resolved": "https://registry.npmjs.org/@webassemblyjs/helper-wasm-bytecode/-/helper-wasm-bytecode-1.7.10.tgz",
-          "integrity": "sha512-u5qy4SJ/OrxKxZqJ9N3qH4ZQgHaAzsopsYwLvoWJY6Q33r8PhT3VPyNMaJ7ZFoqzBnZlCcS/0f4Sp8WBxylXfg==",
-          "dev": true
-        },
-        "@webassemblyjs/helper-wasm-section": {
-          "version": "1.7.10",
-          "resolved": "https://registry.npmjs.org/@webassemblyjs/helper-wasm-section/-/helper-wasm-section-1.7.10.tgz",
-          "integrity": "sha512-Ecvww6sCkcjatcyctUrn22neSJHLN/TTzolMGG/N7S9rpbsTZ8c6Bl98GpSpV77EvzNijiNRHBG0+JO99qKz6g==",
-          "dev": true,
-          "requires": {
-            "@webassemblyjs/ast": "1.7.10",
-            "@webassemblyjs/helper-buffer": "1.7.10",
-            "@webassemblyjs/helper-wasm-bytecode": "1.7.10",
-            "@webassemblyjs/wasm-gen": "1.7.10"
-          }
-        },
-        "@webassemblyjs/ieee754": {
-          "version": "1.7.10",
-          "resolved": "https://registry.npmjs.org/@webassemblyjs/ieee754/-/ieee754-1.7.10.tgz",
-          "integrity": "sha512-HRcWcY+YWt4+s/CvQn+vnSPfRaD4KkuzQFt5MNaELXXHSjelHlSEA8ZcqT69q0GTIuLWZ6JaoKar4yWHVpZHsQ==",
-          "dev": true,
-          "requires": {
-            "@xtuc/ieee754": "^1.2.0"
-          }
-        },
-        "@webassemblyjs/leb128": {
-          "version": "1.7.10",
-          "resolved": "https://registry.npmjs.org/@webassemblyjs/leb128/-/leb128-1.7.10.tgz",
-          "integrity": "sha512-og8MciYlA8hvzCLR71hCuZKPbVBfLQeHv7ImKZ4nlyxrYbG7uJHYtHiHu6OV9SqrGuD03H/HtXC4Bgdjfm9FHw==",
-          "dev": true,
-          "requires": {
-            "@xtuc/long": "4.2.1"
-          }
-        },
-        "@webassemblyjs/utf8": {
-          "version": "1.7.10",
-          "resolved": "https://registry.npmjs.org/@webassemblyjs/utf8/-/utf8-1.7.10.tgz",
-          "integrity": "sha512-Ng6Pxv6siyZp635xCSnH3mKmIFgqWPCcGdoo0GBYgyGdxu7cUj4agV7Uu1a8REP66UYUFXJLudeGgd4RvuJAnQ==",
-          "dev": true
-        },
-        "@webassemblyjs/wasm-edit": {
-          "version": "1.7.10",
-          "resolved": "https://registry.npmjs.org/@webassemblyjs/wasm-edit/-/wasm-edit-1.7.10.tgz",
-          "integrity": "sha512-e9RZFQlb+ZuYcKRcW9yl+mqX/Ycj9+3/+ppDI8nEE/NCY6FoK8f3dKBcfubYV/HZn44b+ND4hjh+4BYBt+sDnA==",
-          "dev": true,
-          "requires": {
-            "@webassemblyjs/ast": "1.7.10",
-            "@webassemblyjs/helper-buffer": "1.7.10",
-            "@webassemblyjs/helper-wasm-bytecode": "1.7.10",
-            "@webassemblyjs/helper-wasm-section": "1.7.10",
-            "@webassemblyjs/wasm-gen": "1.7.10",
-            "@webassemblyjs/wasm-opt": "1.7.10",
-            "@webassemblyjs/wasm-parser": "1.7.10",
-            "@webassemblyjs/wast-printer": "1.7.10"
-          }
-        },
-        "@webassemblyjs/wasm-gen": {
-          "version": "1.7.10",
-          "resolved": "https://registry.npmjs.org/@webassemblyjs/wasm-gen/-/wasm-gen-1.7.10.tgz",
-          "integrity": "sha512-M0lb6cO2Y0PzDye/L39PqwV+jvO+2YxEG5ax+7dgq7EwXdAlpOMx1jxyXJTScQoeTpzOPIb+fLgX/IkLF8h2yw==",
-          "dev": true,
-          "requires": {
-            "@webassemblyjs/ast": "1.7.10",
-            "@webassemblyjs/helper-wasm-bytecode": "1.7.10",
-            "@webassemblyjs/ieee754": "1.7.10",
-            "@webassemblyjs/leb128": "1.7.10",
-            "@webassemblyjs/utf8": "1.7.10"
-          }
-        },
-        "@webassemblyjs/wasm-opt": {
-          "version": "1.7.10",
-          "resolved": "https://registry.npmjs.org/@webassemblyjs/wasm-opt/-/wasm-opt-1.7.10.tgz",
-          "integrity": "sha512-R66IHGCdicgF5ZliN10yn5HaC7vwYAqrSVJGjtJJQp5+QNPBye6heWdVH/at40uh0uoaDN/UVUfXK0gvuUqtVg==",
-          "dev": true,
-          "requires": {
-            "@webassemblyjs/ast": "1.7.10",
-            "@webassemblyjs/helper-buffer": "1.7.10",
-            "@webassemblyjs/wasm-gen": "1.7.10",
-            "@webassemblyjs/wasm-parser": "1.7.10"
-          }
-        },
-        "@webassemblyjs/wasm-parser": {
-          "version": "1.7.10",
-          "resolved": "https://registry.npmjs.org/@webassemblyjs/wasm-parser/-/wasm-parser-1.7.10.tgz",
-          "integrity": "sha512-AEv8mkXVK63n/iDR3T693EzoGPnNAwKwT3iHmKJNBrrALAhhEjuPzo/lTE4U7LquEwyvg5nneSNdTdgrBaGJcA==",
-          "dev": true,
-          "requires": {
-            "@webassemblyjs/ast": "1.7.10",
-            "@webassemblyjs/helper-api-error": "1.7.10",
-            "@webassemblyjs/helper-wasm-bytecode": "1.7.10",
-            "@webassemblyjs/ieee754": "1.7.10",
-            "@webassemblyjs/leb128": "1.7.10",
-            "@webassemblyjs/utf8": "1.7.10"
-          }
-        },
-        "@webassemblyjs/wast-parser": {
-          "version": "1.7.10",
-          "resolved": "https://registry.npmjs.org/@webassemblyjs/wast-parser/-/wast-parser-1.7.10.tgz",
-          "integrity": "sha512-YTPEtOBljkCL0VjDp4sHe22dAYSm3ZwdJ9+2NTGdtC7ayNvuip1wAhaAS8Zt9Q6SW9E5Jf5PX7YE3XWlrzR9cw==",
-          "dev": true,
-          "requires": {
-            "@webassemblyjs/ast": "1.7.10",
-            "@webassemblyjs/floating-point-hex-parser": "1.7.10",
-            "@webassemblyjs/helper-api-error": "1.7.10",
-            "@webassemblyjs/helper-code-frame": "1.7.10",
-            "@webassemblyjs/helper-fsm": "1.7.10",
-            "@xtuc/long": "4.2.1"
-          }
-        },
-        "@webassemblyjs/wast-printer": {
-          "version": "1.7.10",
-          "resolved": "https://registry.npmjs.org/@webassemblyjs/wast-printer/-/wast-printer-1.7.10.tgz",
-          "integrity": "sha512-mJ3QKWtCchL1vhU/kZlJnLPuQZnlDOdZsyP0bbLWPGdYsQDnSBvyTLhzwBA3QAMlzEL9V4JHygEmK6/OTEyytA==",
-          "dev": true,
-          "requires": {
-            "@webassemblyjs/ast": "1.7.10",
-            "@webassemblyjs/wast-parser": "1.7.10",
-            "@xtuc/long": "4.2.1"
-          }
-        },
-        "acorn": {
-          "version": "5.7.3",
-          "resolved": "https://registry.npmjs.org/acorn/-/acorn-5.7.3.tgz",
-          "integrity": "sha512-T/zvzYRfbVojPWahDsE5evJdHb3oJoQfFbsrKM7w5Zcs++Tr257tia3BmMP8XYVjp1S9RZXQMh7gao96BlqZOw==",
-          "dev": true
-        },
-        "acorn-dynamic-import": {
-          "version": "3.0.0",
-          "resolved": "https://registry.npmjs.org/acorn-dynamic-import/-/acorn-dynamic-import-3.0.0.tgz",
-          "integrity": "sha512-zVWV8Z8lislJoOKKqdNMOB+s6+XV5WERty8MnKBeFgwA+19XJjJHs2RP5dzM57FftIs+jQnRToLiWazKr6sSWg==",
-          "dev": true,
-          "requires": {
-            "acorn": "^5.0.0"
-          }
-        },
-        "arr-diff": {
-          "version": "4.0.0",
-          "resolved": "https://registry.npmjs.org/arr-diff/-/arr-diff-4.0.0.tgz",
-          "integrity": "sha1-1kYQdP6/7HHn4VI1dhoyml3HxSA=",
-          "dev": true
-        },
-        "array-unique": {
-          "version": "0.3.2",
-          "resolved": "https://registry.npmjs.org/array-unique/-/array-unique-0.3.2.tgz",
-          "integrity": "sha1-qJS3XUvE9s1nnvMkSp/Y9Gri1Cg=",
-          "dev": true
-        },
-        "braces": {
-          "version": "2.3.2",
-          "resolved": "https://registry.npmjs.org/braces/-/braces-2.3.2.tgz",
-          "integrity": "sha512-aNdbnj9P8PjdXU4ybaWLK2IF3jc/EoDYbC7AazW6to3TRsfXxscC9UXOB5iDiEQrkyIbWp2SLQda4+QAa7nc3w==",
-          "dev": true,
-          "requires": {
-            "arr-flatten": "^1.1.0",
-            "array-unique": "^0.3.2",
-            "extend-shallow": "^2.0.1",
-            "fill-range": "^4.0.0",
-            "isobject": "^3.0.1",
-            "repeat-element": "^1.1.2",
-            "snapdragon": "^0.8.1",
-            "snapdragon-node": "^2.0.1",
-            "split-string": "^3.0.2",
-            "to-regex": "^3.0.1"
-          },
-          "dependencies": {
-            "extend-shallow": {
-              "version": "2.0.1",
-              "resolved": "https://registry.npmjs.org/extend-shallow/-/extend-shallow-2.0.1.tgz",
-              "integrity": "sha1-Ua99YUrZqfYQ6huvu5idaxxWiQ8=",
-              "dev": true,
-              "requires": {
-                "is-extendable": "^0.1.0"
-              }
-            }
-          }
-        },
-        "enhanced-resolve": {
-          "version": "4.1.0",
-          "resolved": "https://registry.npmjs.org/enhanced-resolve/-/enhanced-resolve-4.1.0.tgz",
-          "integrity": "sha512-F/7vkyTtyc/llOIn8oWclcB25KdRaiPBpZYDgJHgh/UHtpgT2p2eldQgtQnLtUvfMKPKxbRaQM/hHkvLHt1Vng==",
-          "dev": true,
-          "requires": {
-            "graceful-fs": "^4.1.2",
-            "memory-fs": "^0.4.0",
-            "tapable": "^1.0.0"
-          }
-        },
-        "expand-brackets": {
-          "version": "2.1.4",
-          "resolved": "https://registry.npmjs.org/expand-brackets/-/expand-brackets-2.1.4.tgz",
-          "integrity": "sha1-t3c14xXOMPa27/D4OwQVGiJEliI=",
-          "dev": true,
-          "requires": {
-            "debug": "^2.3.3",
-            "define-property": "^0.2.5",
-            "extend-shallow": "^2.0.1",
-            "posix-character-classes": "^0.1.0",
-            "regex-not": "^1.0.0",
-            "snapdragon": "^0.8.1",
-            "to-regex": "^3.0.1"
-          },
-          "dependencies": {
-            "define-property": {
-              "version": "0.2.5",
-              "resolved": "https://registry.npmjs.org/define-property/-/define-property-0.2.5.tgz",
-              "integrity": "sha1-w1se+RjsPJkPmlvFe+BKrOxcgRY=",
-              "dev": true,
-              "requires": {
-                "is-descriptor": "^0.1.0"
-              }
-            },
-            "extend-shallow": {
-              "version": "2.0.1",
-              "resolved": "https://registry.npmjs.org/extend-shallow/-/extend-shallow-2.0.1.tgz",
-              "integrity": "sha1-Ua99YUrZqfYQ6huvu5idaxxWiQ8=",
-              "dev": true,
-              "requires": {
-                "is-extendable": "^0.1.0"
-              }
-            },
-            "is-descriptor": {
-              "version": "0.1.6",
-              "resolved": "https://registry.npmjs.org/is-descriptor/-/is-descriptor-0.1.6.tgz",
-              "integrity": "sha512-avDYr0SB3DwO9zsMov0gKCESFYqCnE4hq/4z3TdUlukEy5t9C0YRq7HLrsN52NAcqXKaepeCD0n+B0arnVG3Hg==",
-              "dev": true,
-              "requires": {
-                "is-accessor-descriptor": "^0.1.6",
-                "is-data-descriptor": "^0.1.4",
-                "kind-of": "^5.0.0"
-              }
-            },
-            "kind-of": {
-              "version": "5.1.0",
-              "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-5.1.0.tgz",
-              "integrity": "sha512-NGEErnH6F2vUuXDh+OlbcKW7/wOcfdRHaZ7VWtqCztfHri/++YKmP51OdWeGPuqCOba6kk2OTe5d02VmTB80Pw==",
-              "dev": true
-            }
-          }
-        },
-        "extglob": {
-          "version": "2.0.4",
-          "resolved": "https://registry.npmjs.org/extglob/-/extglob-2.0.4.tgz",
-          "integrity": "sha512-Nmb6QXkELsuBr24CJSkilo6UHHgbekK5UiZgfE6UHD3Eb27YC6oD+bhcT+tJ6cl8dmsgdQxnWlcry8ksBIBLpw==",
-          "dev": true,
-          "requires": {
-            "array-unique": "^0.3.2",
-            "define-property": "^1.0.0",
-            "expand-brackets": "^2.1.4",
-            "extend-shallow": "^2.0.1",
-            "fragment-cache": "^0.2.1",
-            "regex-not": "^1.0.0",
-            "snapdragon": "^0.8.1",
-            "to-regex": "^3.0.1"
-          },
-          "dependencies": {
-            "define-property": {
-              "version": "1.0.0",
-              "resolved": "https://registry.npmjs.org/define-property/-/define-property-1.0.0.tgz",
-              "integrity": "sha1-dp66rz9KY6rTr56NMEybvnm/sOY=",
-              "dev": true,
-              "requires": {
-                "is-descriptor": "^1.0.0"
-              }
-            },
-            "extend-shallow": {
-              "version": "2.0.1",
-              "resolved": "https://registry.npmjs.org/extend-shallow/-/extend-shallow-2.0.1.tgz",
-              "integrity": "sha1-Ua99YUrZqfYQ6huvu5idaxxWiQ8=",
-              "dev": true,
-              "requires": {
-                "is-extendable": "^0.1.0"
-              }
-            }
-          }
-        },
-        "fill-range": {
-          "version": "4.0.0",
-          "resolved": "https://registry.npmjs.org/fill-range/-/fill-range-4.0.0.tgz",
-          "integrity": "sha1-1USBHUKPmOsGpj3EAtJAPDKMOPc=",
-          "dev": true,
-          "requires": {
-            "extend-shallow": "^2.0.1",
-            "is-number": "^3.0.0",
-            "repeat-string": "^1.6.1",
-            "to-regex-range": "^2.1.0"
-          },
-          "dependencies": {
-            "extend-shallow": {
-              "version": "2.0.1",
-              "resolved": "https://registry.npmjs.org/extend-shallow/-/extend-shallow-2.0.1.tgz",
-              "integrity": "sha1-Ua99YUrZqfYQ6huvu5idaxxWiQ8=",
-              "dev": true,
-              "requires": {
-                "is-extendable": "^0.1.0"
-              }
-            }
-          }
-        },
-        "glob": {
-          "version": "7.1.3",
-          "resolved": "https://registry.npmjs.org/glob/-/glob-7.1.3.tgz",
-          "integrity": "sha512-vcfuiIxogLV4DlGBHIUOwI0IbrJ8HWPc4MU7HzviGeNho/UJDfi6B5p3sHeWIQ0KGIU0Jpxi5ZHxemQfLkkAwQ==",
-          "dev": true,
-          "requires": {
-            "fs.realpath": "^1.0.0",
-            "inflight": "^1.0.4",
-            "inherits": "2",
-            "minimatch": "^3.0.4",
-            "once": "^1.3.0",
-            "path-is-absolute": "^1.0.0"
-          }
-        },
-        "is-accessor-descriptor": {
-          "version": "0.1.6",
-          "resolved": "http://registry.npmjs.org/is-accessor-descriptor/-/is-accessor-descriptor-0.1.6.tgz",
-          "integrity": "sha1-qeEss66Nh2cn7u84Q/igiXtcmNY=",
-          "dev": true,
-          "requires": {
-            "kind-of": "^3.0.2"
-          },
-          "dependencies": {
-            "kind-of": {
-              "version": "3.2.2",
-              "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-3.2.2.tgz",
-              "integrity": "sha1-MeohpzS6ubuw8yRm2JOupR5KPGQ=",
-              "dev": true,
-              "requires": {
-                "is-buffer": "^1.1.5"
-              }
-            }
-          }
-        },
-        "is-data-descriptor": {
-          "version": "0.1.4",
-          "resolved": "http://registry.npmjs.org/is-data-descriptor/-/is-data-descriptor-0.1.4.tgz",
-          "integrity": "sha1-C17mSDiOLIYCgueT8YVv7D8wG1Y=",
-          "dev": true,
-          "requires": {
-            "kind-of": "^3.0.2"
-          },
-          "dependencies": {
-            "kind-of": {
-              "version": "3.2.2",
-              "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-3.2.2.tgz",
-              "integrity": "sha1-MeohpzS6ubuw8yRm2JOupR5KPGQ=",
-              "dev": true,
-              "requires": {
-                "is-buffer": "^1.1.5"
-              }
-            }
-          }
-        },
-        "is-number": {
-          "version": "3.0.0",
-          "resolved": "https://registry.npmjs.org/is-number/-/is-number-3.0.0.tgz",
-          "integrity": "sha1-JP1iAaR4LPUFYcgQJ2r8fRLXEZU=",
-          "dev": true,
-          "requires": {
-            "kind-of": "^3.0.2"
-          },
-          "dependencies": {
-            "kind-of": {
-              "version": "3.2.2",
-              "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-3.2.2.tgz",
-              "integrity": "sha1-MeohpzS6ubuw8yRm2JOupR5KPGQ=",
-              "dev": true,
-              "requires": {
-                "is-buffer": "^1.1.5"
-              }
-            }
-          }
-        },
-        "isobject": {
-          "version": "3.0.1",
-          "resolved": "https://registry.npmjs.org/isobject/-/isobject-3.0.1.tgz",
-          "integrity": "sha1-TkMekrEalzFjaqH5yNHMvP2reN8=",
-          "dev": true
-        },
-        "kind-of": {
-          "version": "6.0.2",
-          "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-6.0.2.tgz",
-          "integrity": "sha512-s5kLOcnH0XqDO+FvuaLX8DDjZ18CGFk7VygH40QoKPUQhW4e2rvM0rwUq0t8IQDOwYSeLK01U90OjzBTme2QqA==",
-          "dev": true
-        },
-        "micromatch": {
-          "version": "3.1.10",
-          "resolved": "https://registry.npmjs.org/micromatch/-/micromatch-3.1.10.tgz",
-          "integrity": "sha512-MWikgl9n9M3w+bpsY3He8L+w9eF9338xRl8IAO5viDizwSzziFEyUzo2xrrloB64ADbTf8uA8vRqqttDTOmccg==",
-          "dev": true,
-          "requires": {
-            "arr-diff": "^4.0.0",
-            "array-unique": "^0.3.2",
-            "braces": "^2.3.1",
-            "define-property": "^2.0.2",
-            "extend-shallow": "^3.0.2",
-            "extglob": "^2.0.4",
-            "fragment-cache": "^0.2.1",
-            "kind-of": "^6.0.2",
-            "nanomatch": "^1.2.9",
-            "object.pick": "^1.3.0",
-            "regex-not": "^1.0.0",
-            "snapdragon": "^0.8.1",
-            "to-regex": "^3.0.2"
-          }
-        },
-        "parse5": {
-          "version": "4.0.0",
-          "resolved": "https://registry.npmjs.org/parse5/-/parse5-4.0.0.tgz",
-          "integrity": "sha512-VrZ7eOd3T1Fk4XWNXMgiGBK/z0MG48BWG2uQNU4I72fkQuKUTZpl+u9k+CxEG0twMVzSmXEEz12z5Fnw1jIQFA==",
-          "dev": true
-        },
-        "rxjs": {
-          "version": "6.3.3",
-          "resolved": "https://registry.npmjs.org/rxjs/-/rxjs-6.3.3.tgz",
-          "integrity": "sha512-JTWmoY9tWCs7zvIk/CvRjhjGaOd+OVBM987mxFo+OW66cGpdKjZcpmc74ES1sB//7Kl/PAe8+wEakuhG4pcgOw==",
-          "dev": true,
-          "requires": {
-            "tslib": "^1.9.0"
-          }
-        },
-        "schema-utils": {
-          "version": "0.4.7",
-          "resolved": "https://registry.npmjs.org/schema-utils/-/schema-utils-0.4.7.tgz",
-          "integrity": "sha512-v/iwU6wvwGK8HbU9yi3/nhGzP0yGSuhQMzL6ySiec1FSrZZDkhm4noOSWzrNFo/jEc+SJY6jRTwuwbSXJPDUnQ==",
-          "dev": true,
-          "requires": {
-            "ajv": "^6.1.0",
-            "ajv-keywords": "^3.1.0"
-          }
-        },
-        "semver": {
-          "version": "5.5.1",
-          "resolved": "https://registry.npmjs.org/semver/-/semver-5.5.1.tgz",
-          "integrity": "sha512-PqpAxfrEhlSUWge8dwIp4tZnQ25DIOthpiaHNIthsjEFQD6EvqUKUDM7L8O2rShkFccYo1VjJR0coWfNkCubRw==",
-          "dev": true
-        },
-        "source-map": {
-          "version": "0.6.1",
-          "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.6.1.tgz",
-          "integrity": "sha512-UjgapumWlbMhkBgzT7Ykc5YXUT46F0iKu8SGXq0bcwP5dz/h0Plj6enJqjz1Zbq2l5WaqYnrVbwWOWMyF3F47g==",
-          "dev": true
-        },
-        "source-map-support": {
-          "version": "0.5.9",
-          "resolved": "https://registry.npmjs.org/source-map-support/-/source-map-support-0.5.9.tgz",
-          "integrity": "sha512-gR6Rw4MvUlYy83vP0vxoVNzM6t8MUXqNuRsuBmBHQDu1Fh6X015FrLdgoDKcNdkwGubozq0P4N0Q37UyFVr1EA==",
-          "dev": true,
-          "requires": {
-            "buffer-from": "^1.0.0",
-            "source-map": "^0.6.0"
-          }
-        },
-        "tapable": {
-          "version": "1.1.1",
-          "resolved": "https://registry.npmjs.org/tapable/-/tapable-1.1.1.tgz",
-          "integrity": "sha512-9I2ydhj8Z9veORCw5PRm4u9uebCn0mcCa6scWoNcbZ6dAtoo2618u9UUzxgmsCOreJpqDDuv61LvwofW7hLcBA==",
-          "dev": true
-        },
-        "webpack": {
-          "version": "4.23.1",
-          "resolved": "https://registry.npmjs.org/webpack/-/webpack-4.23.1.tgz",
-          "integrity": "sha512-iE5Cu4rGEDk7ONRjisTOjVHv3dDtcFfwitSxT7evtYj/rANJpt1OuC/Kozh1pBa99AUBr1L/LsaNB+D9Xz3CEg==",
-          "dev": true,
-          "requires": {
-            "@webassemblyjs/ast": "1.7.10",
-            "@webassemblyjs/helper-module-context": "1.7.10",
-            "@webassemblyjs/wasm-edit": "1.7.10",
-            "@webassemblyjs/wasm-parser": "1.7.10",
-            "acorn": "^5.6.2",
-            "acorn-dynamic-import": "^3.0.0",
-            "ajv": "^6.1.0",
-            "ajv-keywords": "^3.1.0",
-            "chrome-trace-event": "^1.0.0",
-            "enhanced-resolve": "^4.1.0",
-            "eslint-scope": "^4.0.0",
-            "json-parse-better-errors": "^1.0.2",
-            "loader-runner": "^2.3.0",
-            "loader-utils": "^1.1.0",
-            "memory-fs": "~0.4.1",
-            "micromatch": "^3.1.8",
-            "mkdirp": "~0.5.0",
-            "neo-async": "^2.5.0",
-            "node-libs-browser": "^2.0.0",
-            "schema-utils": "^0.4.4",
-            "tapable": "^1.1.0",
-            "uglifyjs-webpack-plugin": "^1.2.4",
-            "watchpack": "^1.5.0",
-            "webpack-sources": "^1.3.0"
-          }
-        },
-        "webpack-sources": {
-          "version": "1.3.0",
-          "resolved": "https://registry.npmjs.org/webpack-sources/-/webpack-sources-1.3.0.tgz",
-          "integrity": "sha512-OiVgSrbGu7NEnEvQJJgdSFPl2qWKkWq5lHMhgiToIiN9w34EBnjYzSYs+VbL5KoYiLNtFFa7BZIKxRED3I32pA==",
-          "dev": true,
-          "requires": {
-            "source-list-map": "^2.0.0",
-            "source-map": "~0.6.1"
-          }
-        }
-      }
-    },
-    "@angular-devkit/build-optimizer": {
-      "version": "0.11.4",
-      "resolved": "https://registry.npmjs.org/@angular-devkit/build-optimizer/-/build-optimizer-0.11.4.tgz",
-      "integrity": "sha512-tAAWWFCcl918Q1JivlLvLFer8Qm4/THWbEneMwk5fQvG6/NgJLoa3itP/MCUq4qL6YHmp2DWkdWnWfRQCgHeFA==",
-      "dev": true,
-      "requires": {
-        "loader-utils": "1.1.0",
-        "source-map": "0.5.6",
-        "typescript": "3.1.6",
-        "webpack-sources": "1.2.0"
-      },
-      "dependencies": {
-        "source-map": {
-          "version": "0.5.6",
-          "resolved": "http://registry.npmjs.org/source-map/-/source-map-0.5.6.tgz",
-          "integrity": "sha1-dc449SvwczxafwwRjYEzSiu19BI=",
-          "dev": true
-        },
-        "typescript": {
-          "version": "3.1.6",
-          "resolved": "https://registry.npmjs.org/typescript/-/typescript-3.1.6.tgz",
-          "integrity": "sha512-tDMYfVtvpb96msS1lDX9MEdHrW4yOuZ4Kdc4Him9oU796XldPYF/t2+uKoX0BBa0hXXwDlqYQbXY5Rzjzc5hBA==",
-          "dev": true
-        },
-        "webpack-sources": {
-          "version": "1.2.0",
-          "resolved": "https://registry.npmjs.org/webpack-sources/-/webpack-sources-1.2.0.tgz",
-          "integrity": "sha512-9BZwxR85dNsjWz3blyxdOhTgtnQvv3OEs5xofI0wPYTwu5kaWxS08UuD1oI7WLBLpRO+ylf0ofnXLXWmGb2WMw==",
-          "dev": true,
-          "requires": {
-            "source-list-map": "^2.0.0",
-            "source-map": "~0.6.1"
-          },
-          "dependencies": {
-            "source-map": {
-              "version": "0.6.1",
-              "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.6.1.tgz",
-              "integrity": "sha512-UjgapumWlbMhkBgzT7Ykc5YXUT46F0iKu8SGXq0bcwP5dz/h0Plj6enJqjz1Zbq2l5WaqYnrVbwWOWMyF3F47g==",
-              "dev": true
-            }
-          }
-        }
-      }
-    },
-    "@angular-devkit/build-webpack": {
-      "version": "0.11.4",
-      "resolved": "https://registry.npmjs.org/@angular-devkit/build-webpack/-/build-webpack-0.11.4.tgz",
-      "integrity": "sha512-4nEDXSbv3oDu27Rw5s2DMKmcOZYVAt76bryVF2SycSkDq3eAIiqmgw3G3CJJ4LTulXzDpaIpk02MvgbYkX+hvw==",
-      "dev": true,
-      "requires": {
-        "@angular-devkit/architect": "0.11.4",
-        "@angular-devkit/core": "7.1.4",
-        "rxjs": "6.3.3"
-      },
-      "dependencies": {
-        "rxjs": {
-          "version": "6.3.3",
-          "resolved": "https://registry.npmjs.org/rxjs/-/rxjs-6.3.3.tgz",
-          "integrity": "sha512-JTWmoY9tWCs7zvIk/CvRjhjGaOd+OVBM987mxFo+OW66cGpdKjZcpmc74ES1sB//7Kl/PAe8+wEakuhG4pcgOw==",
-          "dev": true,
-          "requires": {
-            "tslib": "^1.9.0"
-          }
-        }
-      }
-    },
-    "@angular-devkit/core": {
-      "version": "7.1.4",
-      "resolved": "https://registry.npmjs.org/@angular-devkit/core/-/core-7.1.4.tgz",
-      "integrity": "sha512-3cBVHjSQjMyE/mIyOX82ekdybNRQlN+kUfmdZS6oVW9aV48vdxcVbEGdl8t1H4enMf89u8kXiAAET9jFaqWopg==",
-      "dev": true,
-      "requires": {
-        "ajv": "6.5.3",
-        "chokidar": "2.0.4",
-        "fast-json-stable-stringify": "2.0.0",
-        "rxjs": "6.3.3",
-        "source-map": "0.7.3"
-      },
-      "dependencies": {
-        "anymatch": {
-          "version": "2.0.0",
-          "resolved": "https://registry.npmjs.org/anymatch/-/anymatch-2.0.0.tgz",
-          "integrity": "sha512-5teOsQWABXHHBFP9y3skS5P3d/WfWXpv3FUpy+LorMrNYaT9pI4oLMQX7jzQ2KklNpGpWHzdCXTDT2Y3XGlZBw==",
-          "dev": true,
-          "requires": {
-            "micromatch": "^3.1.4",
-            "normalize-path": "^2.1.1"
-          }
-        },
-        "arr-diff": {
-          "version": "4.0.0",
-          "resolved": "https://registry.npmjs.org/arr-diff/-/arr-diff-4.0.0.tgz",
-          "integrity": "sha1-1kYQdP6/7HHn4VI1dhoyml3HxSA=",
-          "dev": true
-        },
-        "array-unique": {
-          "version": "0.3.2",
-          "resolved": "https://registry.npmjs.org/array-unique/-/array-unique-0.3.2.tgz",
-          "integrity": "sha1-qJS3XUvE9s1nnvMkSp/Y9Gri1Cg=",
-          "dev": true
-        },
-        "braces": {
-          "version": "2.3.2",
-          "resolved": "https://registry.npmjs.org/braces/-/braces-2.3.2.tgz",
-          "integrity": "sha512-aNdbnj9P8PjdXU4ybaWLK2IF3jc/EoDYbC7AazW6to3TRsfXxscC9UXOB5iDiEQrkyIbWp2SLQda4+QAa7nc3w==",
-          "dev": true,
-          "requires": {
-            "arr-flatten": "^1.1.0",
-            "array-unique": "^0.3.2",
-            "extend-shallow": "^2.0.1",
-            "fill-range": "^4.0.0",
-            "isobject": "^3.0.1",
-            "repeat-element": "^1.1.2",
-            "snapdragon": "^0.8.1",
-            "snapdragon-node": "^2.0.1",
-            "split-string": "^3.0.2",
-            "to-regex": "^3.0.1"
-          },
-          "dependencies": {
-            "extend-shallow": {
-              "version": "2.0.1",
-              "resolved": "https://registry.npmjs.org/extend-shallow/-/extend-shallow-2.0.1.tgz",
-              "integrity": "sha1-Ua99YUrZqfYQ6huvu5idaxxWiQ8=",
-              "dev": true,
-              "requires": {
-                "is-extendable": "^0.1.0"
-              }
-            }
-          }
-        },
-        "chokidar": {
-          "version": "2.0.4",
-          "resolved": "https://registry.npmjs.org/chokidar/-/chokidar-2.0.4.tgz",
-          "integrity": "sha512-z9n7yt9rOvIJrMhvDtDictKrkFHeihkNl6uWMmZlmL6tJtX9Cs+87oK+teBx+JIgzvbX3yZHT3eF8vpbDxHJXQ==",
-          "dev": true,
-          "requires": {
-            "anymatch": "^2.0.0",
-            "async-each": "^1.0.0",
-            "braces": "^2.3.0",
-            "fsevents": "^1.2.2",
-            "glob-parent": "^3.1.0",
-            "inherits": "^2.0.1",
-            "is-binary-path": "^1.0.0",
-            "is-glob": "^4.0.0",
-            "lodash.debounce": "^4.0.8",
-            "normalize-path": "^2.1.1",
-            "path-is-absolute": "^1.0.0",
-            "readdirp": "^2.0.0",
-            "upath": "^1.0.5"
-          }
-        },
-        "expand-brackets": {
-          "version": "2.1.4",
-          "resolved": "https://registry.npmjs.org/expand-brackets/-/expand-brackets-2.1.4.tgz",
-          "integrity": "sha1-t3c14xXOMPa27/D4OwQVGiJEliI=",
-          "dev": true,
-          "requires": {
-            "debug": "^2.3.3",
-            "define-property": "^0.2.5",
-            "extend-shallow": "^2.0.1",
-            "posix-character-classes": "^0.1.0",
-            "regex-not": "^1.0.0",
-            "snapdragon": "^0.8.1",
-            "to-regex": "^3.0.1"
-          },
-          "dependencies": {
-            "define-property": {
-              "version": "0.2.5",
-              "resolved": "https://registry.npmjs.org/define-property/-/define-property-0.2.5.tgz",
-              "integrity": "sha1-w1se+RjsPJkPmlvFe+BKrOxcgRY=",
-              "dev": true,
-              "requires": {
-                "is-descriptor": "^0.1.0"
-              }
-            },
-            "extend-shallow": {
-              "version": "2.0.1",
-              "resolved": "https://registry.npmjs.org/extend-shallow/-/extend-shallow-2.0.1.tgz",
-              "integrity": "sha1-Ua99YUrZqfYQ6huvu5idaxxWiQ8=",
-              "dev": true,
-              "requires": {
-                "is-extendable": "^0.1.0"
-              }
-            },
-            "is-descriptor": {
-              "version": "0.1.6",
-              "resolved": "https://registry.npmjs.org/is-descriptor/-/is-descriptor-0.1.6.tgz",
-              "integrity": "sha512-avDYr0SB3DwO9zsMov0gKCESFYqCnE4hq/4z3TdUlukEy5t9C0YRq7HLrsN52NAcqXKaepeCD0n+B0arnVG3Hg==",
-              "dev": true,
-              "requires": {
-                "is-accessor-descriptor": "^0.1.6",
-                "is-data-descriptor": "^0.1.4",
-                "kind-of": "^5.0.0"
-              }
-            },
-            "kind-of": {
-              "version": "5.1.0",
-              "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-5.1.0.tgz",
-              "integrity": "sha512-NGEErnH6F2vUuXDh+OlbcKW7/wOcfdRHaZ7VWtqCztfHri/++YKmP51OdWeGPuqCOba6kk2OTe5d02VmTB80Pw==",
-              "dev": true
-            }
-          }
-        },
-        "extglob": {
-          "version": "2.0.4",
-          "resolved": "https://registry.npmjs.org/extglob/-/extglob-2.0.4.tgz",
-          "integrity": "sha512-Nmb6QXkELsuBr24CJSkilo6UHHgbekK5UiZgfE6UHD3Eb27YC6oD+bhcT+tJ6cl8dmsgdQxnWlcry8ksBIBLpw==",
-          "dev": true,
-          "requires": {
-            "array-unique": "^0.3.2",
-            "define-property": "^1.0.0",
-            "expand-brackets": "^2.1.4",
-            "extend-shallow": "^2.0.1",
-            "fragment-cache": "^0.2.1",
-            "regex-not": "^1.0.0",
-            "snapdragon": "^0.8.1",
-            "to-regex": "^3.0.1"
-          },
-          "dependencies": {
-            "define-property": {
-              "version": "1.0.0",
-              "resolved": "https://registry.npmjs.org/define-property/-/define-property-1.0.0.tgz",
-              "integrity": "sha1-dp66rz9KY6rTr56NMEybvnm/sOY=",
-              "dev": true,
-              "requires": {
-                "is-descriptor": "^1.0.0"
-              }
-            },
-            "extend-shallow": {
-              "version": "2.0.1",
-              "resolved": "https://registry.npmjs.org/extend-shallow/-/extend-shallow-2.0.1.tgz",
-              "integrity": "sha1-Ua99YUrZqfYQ6huvu5idaxxWiQ8=",
-              "dev": true,
-              "requires": {
-                "is-extendable": "^0.1.0"
-              }
-            }
-          }
-        },
-        "fill-range": {
-          "version": "4.0.0",
-          "resolved": "https://registry.npmjs.org/fill-range/-/fill-range-4.0.0.tgz",
-          "integrity": "sha1-1USBHUKPmOsGpj3EAtJAPDKMOPc=",
-          "dev": true,
-          "requires": {
-            "extend-shallow": "^2.0.1",
-            "is-number": "^3.0.0",
-            "repeat-string": "^1.6.1",
-            "to-regex-range": "^2.1.0"
-          },
-          "dependencies": {
-            "extend-shallow": {
-              "version": "2.0.1",
-              "resolved": "https://registry.npmjs.org/extend-shallow/-/extend-shallow-2.0.1.tgz",
-              "integrity": "sha1-Ua99YUrZqfYQ6huvu5idaxxWiQ8=",
-              "dev": true,
-              "requires": {
-                "is-extendable": "^0.1.0"
-              }
-            }
-          }
-        },
-        "fsevents": {
-          "version": "1.2.4",
-          "resolved": "https://registry.npmjs.org/fsevents/-/fsevents-1.2.4.tgz",
-          "integrity": "sha512-z8H8/diyk76B7q5wg+Ud0+CqzcAF3mBBI/bA5ne5zrRUUIvNkJY//D3BqyH571KuAC4Nr7Rw7CjWX4r0y9DvNg==",
-          "dev": true,
-          "optional": true,
-          "requires": {
-            "nan": "^2.9.2",
-            "node-pre-gyp": "^0.10.0"
-          },
-          "dependencies": {
-            "abbrev": {
-              "version": "1.1.1",
-              "bundled": true,
-              "dev": true,
-              "optional": true
-            },
-            "ansi-regex": {
-              "version": "2.1.1",
-              "bundled": true,
-              "dev": true
-            },
-            "aproba": {
-              "version": "1.2.0",
-              "bundled": true,
-              "dev": true,
-              "optional": true
-            },
-            "are-we-there-yet": {
-              "version": "1.1.4",
-              "bundled": true,
-              "dev": true,
-              "optional": true,
-              "requires": {
-                "delegates": "^1.0.0",
-                "readable-stream": "^2.0.6"
-              }
-            },
-            "balanced-match": {
-              "version": "1.0.0",
-              "bundled": true,
-              "dev": true
-            },
-            "brace-expansion": {
-              "version": "1.1.11",
-              "bundled": true,
-              "dev": true,
-              "requires": {
-                "balanced-match": "^1.0.0",
-                "concat-map": "0.0.1"
-              }
-            },
-            "chownr": {
-              "version": "1.0.1",
-              "bundled": true,
-              "dev": true,
-              "optional": true
-            },
-            "code-point-at": {
-              "version": "1.1.0",
-              "bundled": true,
-              "dev": true
-            },
-            "concat-map": {
-              "version": "0.0.1",
-              "bundled": true,
-              "dev": true
-            },
-            "console-control-strings": {
-              "version": "1.1.0",
-              "bundled": true,
-              "dev": true
-            },
-            "core-util-is": {
-              "version": "1.0.2",
-              "bundled": true,
-              "dev": true,
-              "optional": true
-            },
-            "debug": {
-              "version": "2.6.9",
-              "bundled": true,
-              "dev": true,
-              "optional": true,
-              "requires": {
-                "ms": "2.0.0"
-              }
-            },
-            "deep-extend": {
-              "version": "0.5.1",
-              "bundled": true,
-              "dev": true,
-              "optional": true
-            },
-            "delegates": {
-              "version": "1.0.0",
-              "bundled": true,
-              "dev": true,
-              "optional": true
-            },
-            "detect-libc": {
-              "version": "1.0.3",
-              "bundled": true,
-              "dev": true,
-              "optional": true
-            },
-            "fs-minipass": {
-              "version": "1.2.5",
-              "bundled": true,
-              "dev": true,
-              "optional": true,
-              "requires": {
-                "minipass": "^2.2.1"
-              }
-            },
-            "fs.realpath": {
-              "version": "1.0.0",
-              "bundled": true,
-              "dev": true,
-              "optional": true
-            },
-            "gauge": {
-              "version": "2.7.4",
-              "bundled": true,
-              "dev": true,
-              "optional": true,
-              "requires": {
-                "aproba": "^1.0.3",
-                "console-control-strings": "^1.0.0",
-                "has-unicode": "^2.0.0",
-                "object-assign": "^4.1.0",
-                "signal-exit": "^3.0.0",
-                "string-width": "^1.0.1",
-                "strip-ansi": "^3.0.1",
-                "wide-align": "^1.1.0"
-              }
-            },
-            "glob": {
-              "version": "7.1.2",
-              "bundled": true,
-              "dev": true,
-              "optional": true,
-              "requires": {
-                "fs.realpath": "^1.0.0",
-                "inflight": "^1.0.4",
-                "inherits": "2",
-                "minimatch": "^3.0.4",
-                "once": "^1.3.0",
-                "path-is-absolute": "^1.0.0"
-              }
-            },
-            "has-unicode": {
-              "version": "2.0.1",
-              "bundled": true,
-              "dev": true,
-              "optional": true
-            },
-            "iconv-lite": {
-              "version": "0.4.21",
-              "bundled": true,
-              "dev": true,
-              "optional": true,
-              "requires": {
-                "safer-buffer": "^2.1.0"
-              }
-            },
-            "ignore-walk": {
-              "version": "3.0.1",
-              "bundled": true,
-              "dev": true,
-              "optional": true,
-              "requires": {
-                "minimatch": "^3.0.4"
-              }
-            },
-            "inflight": {
-              "version": "1.0.6",
-              "bundled": true,
-              "dev": true,
-              "optional": true,
-              "requires": {
-                "once": "^1.3.0",
-                "wrappy": "1"
-              }
-            },
-            "inherits": {
-              "version": "2.0.3",
-              "bundled": true,
-              "dev": true
-            },
-            "ini": {
-              "version": "1.3.5",
-              "bundled": true,
-              "dev": true,
-              "optional": true
-            },
-            "is-fullwidth-code-point": {
-              "version": "1.0.0",
-              "bundled": true,
-              "dev": true,
-              "requires": {
-                "number-is-nan": "^1.0.0"
-              }
-            },
-            "isarray": {
-              "version": "1.0.0",
-              "bundled": true,
-              "dev": true,
-              "optional": true
-            },
-            "minimatch": {
-              "version": "3.0.4",
-              "bundled": true,
-              "dev": true,
-              "requires": {
-                "brace-expansion": "^1.1.7"
-              }
-            },
-            "minimist": {
-              "version": "0.0.8",
-              "bundled": true,
-              "dev": true
-            },
-            "minipass": {
-              "version": "2.2.4",
-              "bundled": true,
-              "dev": true,
-              "requires": {
-                "safe-buffer": "^5.1.1",
-                "yallist": "^3.0.0"
-              }
-            },
-            "minizlib": {
-              "version": "1.1.0",
-              "bundled": true,
-              "dev": true,
-              "optional": true,
-              "requires": {
-                "minipass": "^2.2.1"
-              }
-            },
-            "mkdirp": {
-              "version": "0.5.1",
-              "bundled": true,
-              "dev": true,
-              "requires": {
-                "minimist": "0.0.8"
-              }
-            },
-            "ms": {
-              "version": "2.0.0",
-              "bundled": true,
-              "dev": true,
-              "optional": true
-            },
-            "needle": {
-              "version": "2.2.0",
-              "bundled": true,
-              "dev": true,
-              "optional": true,
-              "requires": {
-                "debug": "^2.1.2",
-                "iconv-lite": "^0.4.4",
-                "sax": "^1.2.4"
-              }
-            },
-            "node-pre-gyp": {
-              "version": "0.10.0",
-              "bundled": true,
-              "dev": true,
-              "optional": true,
-              "requires": {
-                "detect-libc": "^1.0.2",
-                "mkdirp": "^0.5.1",
-                "needle": "^2.2.0",
-                "nopt": "^4.0.1",
-                "npm-packlist": "^1.1.6",
-                "npmlog": "^4.0.2",
-                "rc": "^1.1.7",
-                "rimraf": "^2.6.1",
-                "semver": "^5.3.0",
-                "tar": "^4"
-              }
-            },
-            "nopt": {
-              "version": "4.0.1",
-              "bundled": true,
-              "dev": true,
-              "optional": true,
-              "requires": {
-                "abbrev": "1",
-                "osenv": "^0.1.4"
-              }
-            },
-            "npm-bundled": {
-              "version": "1.0.3",
-              "bundled": true,
-              "dev": true,
-              "optional": true
-            },
-            "npm-packlist": {
-              "version": "1.1.10",
-              "bundled": true,
-              "dev": true,
-              "optional": true,
-              "requires": {
-                "ignore-walk": "^3.0.1",
-                "npm-bundled": "^1.0.1"
-              }
-            },
-            "npmlog": {
-              "version": "4.1.2",
-              "bundled": true,
-              "dev": true,
-              "optional": true,
-              "requires": {
-                "are-we-there-yet": "~1.1.2",
-                "console-control-strings": "~1.1.0",
-                "gauge": "~2.7.3",
-                "set-blocking": "~2.0.0"
-              }
-            },
-            "number-is-nan": {
-              "version": "1.0.1",
-              "bundled": true,
-              "dev": true
-            },
-            "object-assign": {
-              "version": "4.1.1",
-              "bundled": true,
-              "dev": true,
-              "optional": true
-            },
-            "once": {
-              "version": "1.4.0",
-              "bundled": true,
-              "dev": true,
-              "requires": {
-                "wrappy": "1"
-              }
-            },
-            "os-homedir": {
-              "version": "1.0.2",
-              "bundled": true,
-              "dev": true,
-              "optional": true
-            },
-            "os-tmpdir": {
-              "version": "1.0.2",
-              "bundled": true,
-              "dev": true,
-              "optional": true
-            },
-            "osenv": {
-              "version": "0.1.5",
-              "bundled": true,
-              "dev": true,
-              "optional": true,
-              "requires": {
-                "os-homedir": "^1.0.0",
-                "os-tmpdir": "^1.0.0"
-              }
-            },
-            "path-is-absolute": {
-              "version": "1.0.1",
-              "bundled": true,
-              "dev": true,
-              "optional": true
-            },
-            "process-nextick-args": {
-              "version": "2.0.0",
-              "bundled": true,
-              "dev": true,
-              "optional": true
-            },
-            "rc": {
-              "version": "1.2.7",
-              "bundled": true,
-              "dev": true,
-              "optional": true,
-              "requires": {
-                "deep-extend": "^0.5.1",
-                "ini": "~1.3.0",
-                "minimist": "^1.2.0",
-                "strip-json-comments": "~2.0.1"
-              },
-              "dependencies": {
-                "minimist": {
-                  "version": "1.2.0",
-                  "bundled": true,
-                  "dev": true,
-                  "optional": true
-                }
-              }
-            },
-            "readable-stream": {
-              "version": "2.3.6",
-              "bundled": true,
-              "dev": true,
-              "optional": true,
-              "requires": {
-                "core-util-is": "~1.0.0",
-                "inherits": "~2.0.3",
-                "isarray": "~1.0.0",
-                "process-nextick-args": "~2.0.0",
-                "safe-buffer": "~5.1.1",
-                "string_decoder": "~1.1.1",
-                "util-deprecate": "~1.0.1"
-              }
-            },
-            "rimraf": {
-              "version": "2.6.2",
-              "bundled": true,
-              "dev": true,
-              "optional": true,
-              "requires": {
-                "glob": "^7.0.5"
-              }
-            },
-            "safe-buffer": {
-              "version": "5.1.1",
-              "bundled": true,
-              "dev": true
-            },
-            "safer-buffer": {
-              "version": "2.1.2",
-              "bundled": true,
-              "dev": true,
-              "optional": true
-            },
-            "sax": {
-              "version": "1.2.4",
-              "bundled": true,
-              "dev": true,
-              "optional": true
-            },
-            "semver": {
-              "version": "5.5.0",
-              "bundled": true,
-              "dev": true,
-              "optional": true
-            },
-            "set-blocking": {
-              "version": "2.0.0",
-              "bundled": true,
-              "dev": true,
-              "optional": true
-            },
-            "signal-exit": {
-              "version": "3.0.2",
-              "bundled": true,
-              "dev": true,
-              "optional": true
-            },
-            "string-width": {
-              "version": "1.0.2",
-              "bundled": true,
-              "dev": true,
-              "requires": {
-                "code-point-at": "^1.0.0",
-                "is-fullwidth-code-point": "^1.0.0",
-                "strip-ansi": "^3.0.0"
-              }
-            },
-            "string_decoder": {
-              "version": "1.1.1",
-              "bundled": true,
-              "dev": true,
-              "optional": true,
-              "requires": {
-                "safe-buffer": "~5.1.0"
-              }
-            },
-            "strip-ansi": {
-              "version": "3.0.1",
-              "bundled": true,
-              "dev": true,
-              "requires": {
-                "ansi-regex": "^2.0.0"
-              }
-            },
-            "strip-json-comments": {
-              "version": "2.0.1",
-              "bundled": true,
-              "dev": true,
-              "optional": true
-            },
-            "tar": {
-              "version": "4.4.1",
-              "bundled": true,
-              "dev": true,
-              "optional": true,
-              "requires": {
-                "chownr": "^1.0.1",
-                "fs-minipass": "^1.2.5",
-                "minipass": "^2.2.4",
-                "minizlib": "^1.1.0",
-                "mkdirp": "^0.5.0",
-                "safe-buffer": "^5.1.1",
-                "yallist": "^3.0.2"
-              }
-            },
-            "util-deprecate": {
-              "version": "1.0.2",
-              "bundled": true,
-              "dev": true,
-              "optional": true
-            },
-            "wide-align": {
-              "version": "1.1.2",
-              "bundled": true,
-              "dev": true,
-              "optional": true,
-              "requires": {
-                "string-width": "^1.0.2"
-              }
-            },
-            "wrappy": {
-              "version": "1.0.2",
-              "bundled": true,
-              "dev": true
-            },
-            "yallist": {
-              "version": "3.0.2",
-              "bundled": true,
-              "dev": true
-            }
-          }
-        },
-        "glob-parent": {
-          "version": "3.1.0",
-          "resolved": "https://registry.npmjs.org/glob-parent/-/glob-parent-3.1.0.tgz",
-          "integrity": "sha1-nmr2KZ2NO9K9QEMIMr0RPfkGxa4=",
-          "dev": true,
-          "requires": {
-            "is-glob": "^3.1.0",
-            "path-dirname": "^1.0.0"
-          },
-          "dependencies": {
-            "is-glob": {
-              "version": "3.1.0",
-              "resolved": "https://registry.npmjs.org/is-glob/-/is-glob-3.1.0.tgz",
-              "integrity": "sha1-e6WuJCF4BKxwcHuWkiVnSGzD6Eo=",
-              "dev": true,
-              "requires": {
-                "is-extglob": "^2.1.0"
-              }
-            }
-          }
-        },
-        "is-accessor-descriptor": {
-          "version": "0.1.6",
-          "resolved": "http://registry.npmjs.org/is-accessor-descriptor/-/is-accessor-descriptor-0.1.6.tgz",
-          "integrity": "sha1-qeEss66Nh2cn7u84Q/igiXtcmNY=",
-          "dev": true,
-          "requires": {
-            "kind-of": "^3.0.2"
-          },
-          "dependencies": {
-            "kind-of": {
-              "version": "3.2.2",
-              "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-3.2.2.tgz",
-              "integrity": "sha1-MeohpzS6ubuw8yRm2JOupR5KPGQ=",
-              "dev": true,
-              "requires": {
-                "is-buffer": "^1.1.5"
-              }
-            }
-          }
-        },
-        "is-data-descriptor": {
-          "version": "0.1.4",
-          "resolved": "http://registry.npmjs.org/is-data-descriptor/-/is-data-descriptor-0.1.4.tgz",
-          "integrity": "sha1-C17mSDiOLIYCgueT8YVv7D8wG1Y=",
-          "dev": true,
-          "requires": {
-            "kind-of": "^3.0.2"
-          },
-          "dependencies": {
-            "kind-of": {
-              "version": "3.2.2",
-              "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-3.2.2.tgz",
-              "integrity": "sha1-MeohpzS6ubuw8yRm2JOupR5KPGQ=",
-              "dev": true,
-              "requires": {
-                "is-buffer": "^1.1.5"
-              }
-            }
-          }
-        },
-        "is-extglob": {
-          "version": "2.1.1",
-          "resolved": "https://registry.npmjs.org/is-extglob/-/is-extglob-2.1.1.tgz",
-          "integrity": "sha1-qIwCU1eR8C7TfHahueqXc8gz+MI=",
-          "dev": true
-        },
-        "is-glob": {
-          "version": "4.0.0",
-          "resolved": "https://registry.npmjs.org/is-glob/-/is-glob-4.0.0.tgz",
-          "integrity": "sha1-lSHHaEXMJhCoUgPd8ICpWML/q8A=",
-          "dev": true,
-          "requires": {
-            "is-extglob": "^2.1.1"
-          }
-        },
-        "is-number": {
-          "version": "3.0.0",
-          "resolved": "https://registry.npmjs.org/is-number/-/is-number-3.0.0.tgz",
-          "integrity": "sha1-JP1iAaR4LPUFYcgQJ2r8fRLXEZU=",
-          "dev": true,
-          "requires": {
-            "kind-of": "^3.0.2"
-          },
-          "dependencies": {
-            "kind-of": {
-              "version": "3.2.2",
-              "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-3.2.2.tgz",
-              "integrity": "sha1-MeohpzS6ubuw8yRm2JOupR5KPGQ=",
-              "dev": true,
-              "requires": {
-                "is-buffer": "^1.1.5"
-              }
-            }
-          }
-        },
-        "isobject": {
-          "version": "3.0.1",
-          "resolved": "https://registry.npmjs.org/isobject/-/isobject-3.0.1.tgz",
-          "integrity": "sha1-TkMekrEalzFjaqH5yNHMvP2reN8=",
-          "dev": true
-        },
-        "kind-of": {
-          "version": "6.0.2",
-          "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-6.0.2.tgz",
-          "integrity": "sha512-s5kLOcnH0XqDO+FvuaLX8DDjZ18CGFk7VygH40QoKPUQhW4e2rvM0rwUq0t8IQDOwYSeLK01U90OjzBTme2QqA==",
-          "dev": true
-        },
-        "micromatch": {
-          "version": "3.1.10",
-          "resolved": "https://registry.npmjs.org/micromatch/-/micromatch-3.1.10.tgz",
-          "integrity": "sha512-MWikgl9n9M3w+bpsY3He8L+w9eF9338xRl8IAO5viDizwSzziFEyUzo2xrrloB64ADbTf8uA8vRqqttDTOmccg==",
-          "dev": true,
-          "requires": {
-            "arr-diff": "^4.0.0",
-            "array-unique": "^0.3.2",
-            "braces": "^2.3.1",
-            "define-property": "^2.0.2",
-            "extend-shallow": "^3.0.2",
-            "extglob": "^2.0.4",
-            "fragment-cache": "^0.2.1",
-            "kind-of": "^6.0.2",
-            "nanomatch": "^1.2.9",
-            "object.pick": "^1.3.0",
-            "regex-not": "^1.0.0",
-            "snapdragon": "^0.8.1",
-            "to-regex": "^3.0.2"
-          }
-        },
-        "rxjs": {
-          "version": "6.3.3",
-          "resolved": "https://registry.npmjs.org/rxjs/-/rxjs-6.3.3.tgz",
-          "integrity": "sha512-JTWmoY9tWCs7zvIk/CvRjhjGaOd+OVBM987mxFo+OW66cGpdKjZcpmc74ES1sB//7Kl/PAe8+wEakuhG4pcgOw==",
-          "dev": true,
-          "requires": {
-            "tslib": "^1.9.0"
-          }
-        },
-        "source-map": {
-          "version": "0.7.3",
-          "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.7.3.tgz",
-          "integrity": "sha512-CkCj6giN3S+n9qrYiBTX5gystlENnRW5jZeNLHpe6aue+SrHcG5VYwujhW9s4dY31mEGsxBDrHR6oI69fTXsaQ==",
-          "dev": true
-        },
-        "upath": {
-          "version": "1.1.0",
-          "resolved": "https://registry.npmjs.org/upath/-/upath-1.1.0.tgz",
-          "integrity": "sha512-bzpH/oBhoS/QI/YtbkqCg6VEiPYjSZtrHQM6/QnJS6OL9pKUFLqb3aFh4Scvwm45+7iAgiMkLhSbaZxUqmrprw==",
-          "dev": true
-        }
-      }
-    },
-    "@angular-devkit/schematics": {
-      "version": "7.1.4",
-      "resolved": "https://registry.npmjs.org/@angular-devkit/schematics/-/schematics-7.1.4.tgz",
-      "integrity": "sha512-+rn3ppcC3grsi9vV2uUIYh/5mUBEJ+JRCKW11BJoUqLMeu8W7h+vbVonyfwJXsk3FSTf9ZY0C7F7UqggRS3cWw==",
-      "dev": true,
-      "requires": {
-        "@angular-devkit/core": "7.1.4",
-        "rxjs": "6.3.3"
-      },
-      "dependencies": {
-        "rxjs": {
-          "version": "6.3.3",
-          "resolved": "https://registry.npmjs.org/rxjs/-/rxjs-6.3.3.tgz",
-          "integrity": "sha512-JTWmoY9tWCs7zvIk/CvRjhjGaOd+OVBM987mxFo+OW66cGpdKjZcpmc74ES1sB//7Kl/PAe8+wEakuhG4pcgOw==",
-          "dev": true,
-          "requires": {
-            "tslib": "^1.9.0"
-          }
-        }
-      }
-    },
-    "@angular-redux/store": {
-      "version": "9.0.0",
-      "resolved": "https://registry.npmjs.org/@angular-redux/store/-/store-9.0.0.tgz",
-      "integrity": "sha512-0aWUktzTK88xDoDlGUDmDBnGW1ZB21W3H9dq0E52fuaN87cwtdca83ioi20/YT+M6EOecYPY7il9fSpy/Ewd1A=="
-    },
-    "@angular/animations": {
-      "version": "7.1.4",
-      "resolved": "https://registry.npmjs.org/@angular/animations/-/animations-7.1.4.tgz",
-      "integrity": "sha512-877LZ83scksJtflVz97CUWlSsZnxduBxPD+ls5OTrTT/bq3muzHCm8rgTO7S8fBwwrEVXLorvMAlhDPpMg5Swg==",
-      "requires": {
-        "tslib": "^1.9.0"
-      }
-    },
-    "@angular/cdk": {
-      "version": "7.2.2",
-      "resolved": "https://registry.npmjs.org/@angular/cdk/-/cdk-7.2.2.tgz",
-      "integrity": "sha512-DG4Ip9COZuQngG31gNFrJRtVPYC8H938dCHuqVjHrLEKfdsKzvprI/y0W+tr/sUnIbIJWEPSvnzmS3XYOgmFyg==",
-      "requires": {
-        "parse5": "^5.0.0",
-        "tslib": "^1.7.1"
-      }
-    },
-    "@angular/cli": {
-      "version": "7.1.4",
-      "resolved": "https://registry.npmjs.org/@angular/cli/-/cli-7.1.4.tgz",
-      "integrity": "sha512-SruaZsmyq3+ymMPeMJSzhytvgtvzyzb1q58pUYX+vZjff2aMYOo0TVxJALwTOPIABICTqUTZmujbLG9uxVgxFA==",
-      "dev": true,
-      "requires": {
-        "@angular-devkit/architect": "0.11.4",
-        "@angular-devkit/core": "7.1.4",
-        "@angular-devkit/schematics": "7.1.4",
-        "@schematics/angular": "7.1.4",
-        "@schematics/update": "0.11.4",
-        "inquirer": "6.2.0",
-        "opn": "5.3.0",
-        "semver": "5.5.1",
-        "symbol-observable": "1.2.0"
-      },
-      "dependencies": {
-        "semver": {
-          "version": "5.5.1",
-          "resolved": "https://registry.npmjs.org/semver/-/semver-5.5.1.tgz",
-          "integrity": "sha512-PqpAxfrEhlSUWge8dwIp4tZnQ25DIOthpiaHNIthsjEFQD6EvqUKUDM7L8O2rShkFccYo1VjJR0coWfNkCubRw==",
-          "dev": true
-        }
-      }
-    },
-    "@angular/common": {
-      "version": "7.1.4",
-      "resolved": "https://registry.npmjs.org/@angular/common/-/common-7.1.4.tgz",
-      "integrity": "sha512-oQPCilcf1H/OXmt4z6PfGoCSb1YPRBAXGs/KRBARm3tYan2r5CmV0BFwpWXWQrEMt8YQqqLiBQUQ64d8+VFm8Q==",
-      "requires": {
-        "tslib": "^1.9.0"
-      }
-    },
-    "@angular/compiler": {
-      "version": "7.1.4",
-      "resolved": "https://registry.npmjs.org/@angular/compiler/-/compiler-7.1.4.tgz",
-      "integrity": "sha512-AvYXtjEJ27Rhv4c27DXNEa58Lit63jdydzbz7VuyFhNU+FwDUK2DC4gZe0nWZsf7HUniJezVRFkECDCZQeSKCQ==",
-      "requires": {
-        "tslib": "^1.9.0"
-      }
-    },
-    "@angular/compiler-cli": {
-      "version": "7.1.4",
-      "resolved": "https://registry.npmjs.org/@angular/compiler-cli/-/compiler-cli-7.1.4.tgz",
-      "integrity": "sha512-fyEY58A53pmVEuhfyU1z1TAi1n5rOK5cCjhFnUUnnESQFEW/aQYOl0ZL6LDsMSYfa78fkDw4Nc0DytvZ1ymVMw==",
-      "dev": true,
-      "requires": {
-        "canonical-path": "1.0.0",
-        "chokidar": "^1.4.2",
-        "convert-source-map": "^1.5.1",
-        "dependency-graph": "^0.7.2",
-        "magic-string": "^0.25.0",
-        "minimist": "^1.2.0",
-        "reflect-metadata": "^0.1.2",
-        "shelljs": "^0.8.1",
-        "source-map": "^0.6.1",
-        "tslib": "^1.9.0",
-        "yargs": "9.0.1"
-      },
-      "dependencies": {
-        "ansi-regex": {
-          "version": "3.0.0",
-          "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-3.0.0.tgz",
-          "integrity": "sha1-7QMXwyIGT3lGbAKWa922Bas32Zg=",
-          "dev": true
-        },
-        "camelcase": {
-          "version": "4.1.0",
-          "resolved": "https://registry.npmjs.org/camelcase/-/camelcase-4.1.0.tgz",
-          "integrity": "sha1-1UVjW+HjPFQmScaRc+Xeas+uNN0=",
-          "dev": true
-        },
-        "is-fullwidth-code-point": {
-          "version": "2.0.0",
-          "resolved": "https://registry.npmjs.org/is-fullwidth-code-point/-/is-fullwidth-code-point-2.0.0.tgz",
-          "integrity": "sha1-o7MKXE8ZkYMWeqq5O+764937ZU8=",
-          "dev": true
-        },
-        "load-json-file": {
-          "version": "2.0.0",
-          "resolved": "http://registry.npmjs.org/load-json-file/-/load-json-file-2.0.0.tgz",
-          "integrity": "sha1-eUfkIUmvgNaWy/eXvKq8/h/inKg=",
-          "dev": true,
-          "requires": {
-            "graceful-fs": "^4.1.2",
-            "parse-json": "^2.2.0",
-            "pify": "^2.0.0",
-            "strip-bom": "^3.0.0"
-          }
-        },
-        "minimist": {
-          "version": "1.2.0",
-          "resolved": "https://registry.npmjs.org/minimist/-/minimist-1.2.0.tgz",
-          "integrity": "sha1-o1AIsg9BOD7sH7kU9M1d95omQoQ=",
-          "dev": true
-        },
-        "os-locale": {
-          "version": "2.1.0",
-          "resolved": "https://registry.npmjs.org/os-locale/-/os-locale-2.1.0.tgz",
-          "integrity": "sha512-3sslG3zJbEYcaC4YVAvDorjGxc7tv6KVATnLPZONiljsUncvihe9BQoVCEs0RZ1kmf4Hk9OBqlZfJZWI4GanKA==",
-          "dev": true,
-          "requires": {
-            "execa": "^0.7.0",
-            "lcid": "^1.0.0",
-            "mem": "^1.1.0"
-          }
-        },
-        "path-type": {
-          "version": "2.0.0",
-          "resolved": "https://registry.npmjs.org/path-type/-/path-type-2.0.0.tgz",
-          "integrity": "sha1-8BLMuEFbcJb8LaoQVMPXI4lZTHM=",
-          "dev": true,
-          "requires": {
-            "pify": "^2.0.0"
-          }
-        },
-        "pify": {
-          "version": "2.3.0",
-          "resolved": "http://registry.npmjs.org/pify/-/pify-2.3.0.tgz",
-          "integrity": "sha1-7RQaasBDqEnqWISY59yosVMw6Qw=",
-          "dev": true
-        },
-        "read-pkg": {
-          "version": "2.0.0",
-          "resolved": "https://registry.npmjs.org/read-pkg/-/read-pkg-2.0.0.tgz",
-          "integrity": "sha1-jvHAYjxqbbDcZxPEv6xGMysjaPg=",
-          "dev": true,
-          "requires": {
-            "load-json-file": "^2.0.0",
-            "normalize-package-data": "^2.3.2",
-            "path-type": "^2.0.0"
-          }
-        },
-        "read-pkg-up": {
-          "version": "2.0.0",
-          "resolved": "https://registry.npmjs.org/read-pkg-up/-/read-pkg-up-2.0.0.tgz",
-          "integrity": "sha1-a3KoBImE4MQeeVEP1en6mbO1Sb4=",
-          "dev": true,
-          "requires": {
-            "find-up": "^2.0.0",
-            "read-pkg": "^2.0.0"
-          }
-        },
-        "source-map": {
-          "version": "0.6.1",
-          "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.6.1.tgz",
-          "integrity": "sha512-UjgapumWlbMhkBgzT7Ykc5YXUT46F0iKu8SGXq0bcwP5dz/h0Plj6enJqjz1Zbq2l5WaqYnrVbwWOWMyF3F47g==",
-          "dev": true
-        },
-        "string-width": {
-          "version": "2.1.1",
-          "resolved": "https://registry.npmjs.org/string-width/-/string-width-2.1.1.tgz",
-          "integrity": "sha512-nOqH59deCq9SRHlxq1Aw85Jnt4w6KvLKqWVik6oA9ZklXLNIOlqg4F2yrT1MVaTjAqvVwdfeZ7w7aCvJD7ugkw==",
-          "dev": true,
-          "requires": {
-            "is-fullwidth-code-point": "^2.0.0",
-            "strip-ansi": "^4.0.0"
-          }
-        },
-        "strip-ansi": {
-          "version": "4.0.0",
-          "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-4.0.0.tgz",
-          "integrity": "sha1-qEeQIusaw2iocTibY1JixQXuNo8=",
-          "dev": true,
-          "requires": {
-            "ansi-regex": "^3.0.0"
-          }
-        },
-        "strip-bom": {
-          "version": "3.0.0",
-          "resolved": "https://registry.npmjs.org/strip-bom/-/strip-bom-3.0.0.tgz",
-          "integrity": "sha1-IzTBjpx1n3vdVv3vfprj1YjmjtM=",
-          "dev": true
-        },
-        "which-module": {
-          "version": "2.0.0",
-          "resolved": "https://registry.npmjs.org/which-module/-/which-module-2.0.0.tgz",
-          "integrity": "sha1-2e8H3Od7mQK4o6j6SzHD4/fm6Ho=",
-          "dev": true
-        },
-        "y18n": {
-          "version": "3.2.1",
-          "resolved": "https://registry.npmjs.org/y18n/-/y18n-3.2.1.tgz",
-          "integrity": "sha1-bRX7qITAhnnA136I53WegR4H+kE=",
-          "dev": true
-        },
-        "yargs": {
-          "version": "9.0.1",
-          "resolved": "https://registry.npmjs.org/yargs/-/yargs-9.0.1.tgz",
-          "integrity": "sha1-UqzCP+7Kw0BCB47njAwAf1CF20w=",
-          "dev": true,
-          "requires": {
-            "camelcase": "^4.1.0",
-            "cliui": "^3.2.0",
-            "decamelize": "^1.1.1",
-            "get-caller-file": "^1.0.1",
-            "os-locale": "^2.0.0",
-            "read-pkg-up": "^2.0.0",
-            "require-directory": "^2.1.1",
-            "require-main-filename": "^1.0.1",
-            "set-blocking": "^2.0.0",
-            "string-width": "^2.0.0",
-            "which-module": "^2.0.0",
-            "y18n": "^3.2.1",
-            "yargs-parser": "^7.0.0"
-          }
-        },
-        "yargs-parser": {
-          "version": "7.0.0",
-          "resolved": "https://registry.npmjs.org/yargs-parser/-/yargs-parser-7.0.0.tgz",
-          "integrity": "sha1-jQrELxbqVd69MyyvTEA4s+P139k=",
-          "dev": true,
-          "requires": {
-            "camelcase": "^4.1.0"
-          }
-        }
-      }
-    },
-    "@angular/core": {
-      "version": "7.1.4",
-      "resolved": "https://registry.npmjs.org/@angular/core/-/core-7.1.4.tgz",
-      "integrity": "sha512-36uWLrmmlzf8JKaq2A5F2tPQEHvFSsbTQWOT559Drp1tzM2uSA7PysNHv5TXUshDn5i54S2EQFm4bj2YPp4Hzg==",
-      "requires": {
-        "tslib": "^1.9.0"
-      }
-    },
-    "@angular/forms": {
-      "version": "7.1.4",
-      "resolved": "https://registry.npmjs.org/@angular/forms/-/forms-7.1.4.tgz",
-      "integrity": "sha512-YB2lDRe7aMsaO5ZlbeFZGH+uTQOcpotFDKCmTckpefRJ7id6TlUSBYdYRH80qOQfPJGpsnqQvLZkL24UMasKtQ==",
-      "requires": {
-        "tslib": "^1.9.0"
-      }
-    },
-    "@angular/http": {
-      "version": "7.1.4",
-      "resolved": "https://registry.npmjs.org/@angular/http/-/http-7.1.4.tgz",
-      "integrity": "sha512-Lrjb99sHu0Cv7MBbVLev1I1Fe+DJcwG4v7juZB/5nE5opKmbQo3Lfqvt2dVrMOxHeju9ReFznEnuGNMK6+m6pQ==",
-      "requires": {
-        "tslib": "^1.9.0"
-      }
-    },
-    "@angular/language-service": {
-      "version": "7.1.4",
-      "resolved": "https://registry.npmjs.org/@angular/language-service/-/language-service-7.1.4.tgz",
-      "integrity": "sha512-Pvrk3W3+6XfrmpCRcTumfyplv6AQJXKfDdPFSbhdpHJlpdcQRo6TckA85Yln5/CXZSAiPaZeiejQt2OogrIRLg==",
-      "dev": true
-    },
-    "@angular/material": {
-      "version": "7.2.2",
-      "resolved": "https://registry.npmjs.org/@angular/material/-/material-7.2.2.tgz",
-      "integrity": "sha512-HTtDhK5XkDvP6GPg4WTTa0HbeeagTfVRooTfw0TA+IuTAMBhXt5h1yzuGpFyMap8/PUVZN1D04g2CLhBSzoDxg==",
-      "requires": {
-        "tslib": "^1.7.1"
-      }
-    },
-    "@angular/platform-browser": {
-      "version": "7.1.4",
-      "resolved": "https://registry.npmjs.org/@angular/platform-browser/-/platform-browser-7.1.4.tgz",
-      "integrity": "sha512-lIFBKo6Uqty7qYDI9T8quFCUzUpGBgpzvDe14aAHFwZCft9rMS1J7PB1F26/dy2RBQE8tUyN2zp2xZQnYAhMcA==",
-      "requires": {
-        "tslib": "^1.9.0"
-      }
-    },
-    "@angular/platform-browser-dynamic": {
-      "version": "7.1.4",
-      "resolved": "https://registry.npmjs.org/@angular/platform-browser-dynamic/-/platform-browser-dynamic-7.1.4.tgz",
-      "integrity": "sha512-LtFd6XIz98BKjxrCRbaz2y0XSmVQSTzrvpAyNzKnzHAMn+4XpIpnzyV3Y6DeHolIBwLjFHFzGKMBwOHOwME4RQ==",
-      "requires": {
-        "tslib": "^1.9.0"
-      }
-    },
-    "@angular/platform-server": {
-      "version": "7.1.4",
-      "resolved": "https://registry.npmjs.org/@angular/platform-server/-/platform-server-7.1.4.tgz",
-      "integrity": "sha512-4SwCzrXK4W9rlxnf+XBcqENLhKd0JVQ6S7agE56Jb3h7Vk5m9xABb+jmFYNfSqW9ZOwgM2inP7bKD9fjlp3x4g==",
-      "requires": {
-        "domino": "^2.1.0",
-        "tslib": "^1.9.0",
-        "xhr2": "^0.1.4"
-      }
-    },
-    "@angular/router": {
-      "version": "7.1.4",
-      "resolved": "https://registry.npmjs.org/@angular/router/-/router-7.1.4.tgz",
-      "integrity": "sha512-5VVVcRsmuKrIWPnh5zF1ExXmIpCx2tlisJ7YTS2FFDXnqrZ9i2QgaxyJuyZE+Btg3t7LPF4tkhRQpjauNiHJYA==",
-      "requires": {
-        "tslib": "^1.9.0"
-      }
-    },
-    "@babel/code-frame": {
-      "version": "7.0.0-beta.51",
-      "resolved": "https://registry.npmjs.org/@babel/code-frame/-/code-frame-7.0.0-beta.51.tgz",
-      "integrity": "sha1-vXHZsZKvl435FYKdOdQJRFZDmgw=",
-      "requires": {
-        "@babel/highlight": "7.0.0-beta.51"
-      }
-    },
-    "@babel/core": {
-      "version": "7.3.3",
-      "resolved": "https://registry.npmjs.org/@babel/core/-/core-7.3.3.tgz",
-      "integrity": "sha512-w445QGI2qd0E0GlSnq6huRZWPMmQGCp5gd5ZWS4hagn0EiwzxD5QMFkpchyusAyVC1n27OKXzQ0/88aVU9n4xQ==",
-      "dev": true,
-      "requires": {
-        "@babel/code-frame": "^7.0.0",
-        "@babel/generator": "^7.3.3",
-        "@babel/helpers": "^7.2.0",
-        "@babel/parser": "^7.3.3",
-        "@babel/template": "^7.2.2",
-        "@babel/traverse": "^7.2.2",
-        "@babel/types": "^7.3.3",
-        "convert-source-map": "^1.1.0",
-        "debug": "^4.1.0",
-        "json5": "^2.1.0",
-        "lodash": "^4.17.11",
-        "resolve": "^1.3.2",
-        "semver": "^5.4.1",
-        "source-map": "^0.5.0"
-      },
-      "dependencies": {
-        "@babel/code-frame": {
-          "version": "7.0.0",
-          "resolved": "https://registry.npmjs.org/@babel/code-frame/-/code-frame-7.0.0.tgz",
-          "integrity": "sha512-OfC2uemaknXr87bdLUkWog7nYuliM9Ij5HUcajsVcMCpQrcLmtxRbVFTIqmcSkSeYRBFBRxs2FiUqFJDLdiebA==",
-          "dev": true,
-          "requires": {
-            "@babel/highlight": "^7.0.0"
-          }
-        },
-        "@babel/generator": {
-          "version": "7.3.3",
-          "resolved": "https://registry.npmjs.org/@babel/generator/-/generator-7.3.3.tgz",
-          "integrity": "sha512-aEADYwRRZjJyMnKN7llGIlircxTCofm3dtV5pmY6ob18MSIuipHpA2yZWkPlycwu5HJcx/pADS3zssd8eY7/6A==",
-          "dev": true,
-          "requires": {
-            "@babel/types": "^7.3.3",
-            "jsesc": "^2.5.1",
-            "lodash": "^4.17.11",
-            "source-map": "^0.5.0",
-            "trim-right": "^1.0.1"
-          }
-        },
-        "@babel/helper-function-name": {
-          "version": "7.1.0",
-          "resolved": "https://registry.npmjs.org/@babel/helper-function-name/-/helper-function-name-7.1.0.tgz",
-          "integrity": "sha512-A95XEoCpb3TO+KZzJ4S/5uW5fNe26DjBGqf1o9ucyLyCmi1dXq/B3c8iaWTfBk3VvetUxl16e8tIrd5teOCfGw==",
-          "dev": true,
-          "requires": {
-            "@babel/helper-get-function-arity": "^7.0.0",
-            "@babel/template": "^7.1.0",
-            "@babel/types": "^7.0.0"
-          }
-        },
-        "@babel/helper-get-function-arity": {
-          "version": "7.0.0",
-          "resolved": "https://registry.npmjs.org/@babel/helper-get-function-arity/-/helper-get-function-arity-7.0.0.tgz",
-          "integrity": "sha512-r2DbJeg4svYvt3HOS74U4eWKsUAMRH01Z1ds1zx8KNTPtpTL5JAsdFv8BNyOpVqdFhHkkRDIg5B4AsxmkjAlmQ==",
-          "dev": true,
-          "requires": {
-            "@babel/types": "^7.0.0"
-          }
-        },
-        "@babel/helper-split-export-declaration": {
-          "version": "7.0.0",
-          "resolved": "https://registry.npmjs.org/@babel/helper-split-export-declaration/-/helper-split-export-declaration-7.0.0.tgz",
-          "integrity": "sha512-MXkOJqva62dfC0w85mEf/LucPPS/1+04nmmRMPEBUB++hiiThQ2zPtX/mEWQ3mtzCEjIJvPY8nuwxXtQeQwUag==",
-          "dev": true,
-          "requires": {
-            "@babel/types": "^7.0.0"
-          }
-        },
-        "@babel/highlight": {
-          "version": "7.0.0",
-          "resolved": "https://registry.npmjs.org/@babel/highlight/-/highlight-7.0.0.tgz",
-          "integrity": "sha512-UFMC4ZeFC48Tpvj7C8UgLvtkaUuovQX+5xNWrsIoMG8o2z+XFKjKaN9iVmS84dPwVN00W4wPmqvYoZF3EGAsfw==",
-          "dev": true,
-          "requires": {
-            "chalk": "^2.0.0",
-            "esutils": "^2.0.2",
-            "js-tokens": "^4.0.0"
-          }
-        },
-        "@babel/parser": {
-          "version": "7.3.3",
-          "resolved": "https://registry.npmjs.org/@babel/parser/-/parser-7.3.3.tgz",
-          "integrity": "sha512-xsH1CJoln2r74hR+y7cg2B5JCPaTh+Hd+EbBRk9nWGSNspuo6krjhX0Om6RnRQuIvFq8wVXCLKH3kwKDYhanSg==",
-          "dev": true
-        },
-        "@babel/template": {
-          "version": "7.2.2",
-          "resolved": "https://registry.npmjs.org/@babel/template/-/template-7.2.2.tgz",
-          "integrity": "sha512-zRL0IMM02AUDwghf5LMSSDEz7sBCO2YnNmpg3uWTZj/v1rcG2BmQUvaGU8GhU8BvfMh1k2KIAYZ7Ji9KXPUg7g==",
-          "dev": true,
-          "requires": {
-            "@babel/code-frame": "^7.0.0",
-            "@babel/parser": "^7.2.2",
-            "@babel/types": "^7.2.2"
-          }
-        },
-        "@babel/traverse": {
-          "version": "7.2.3",
-          "resolved": "https://registry.npmjs.org/@babel/traverse/-/traverse-7.2.3.tgz",
-          "integrity": "sha512-Z31oUD/fJvEWVR0lNZtfgvVt512ForCTNKYcJBGbPb1QZfve4WGH8Wsy7+Mev33/45fhP/hwQtvgusNdcCMgSw==",
-          "dev": true,
-          "requires": {
-            "@babel/code-frame": "^7.0.0",
-            "@babel/generator": "^7.2.2",
-            "@babel/helper-function-name": "^7.1.0",
-            "@babel/helper-split-export-declaration": "^7.0.0",
-            "@babel/parser": "^7.2.3",
-            "@babel/types": "^7.2.2",
-            "debug": "^4.1.0",
-            "globals": "^11.1.0",
-            "lodash": "^4.17.10"
-          }
-        },
-        "@babel/types": {
-          "version": "7.3.3",
-          "resolved": "https://registry.npmjs.org/@babel/types/-/types-7.3.3.tgz",
-          "integrity": "sha512-2tACZ80Wg09UnPg5uGAOUvvInaqLk3l/IAhQzlxLQOIXacr6bMsra5SH6AWw/hIDRCSbCdHP2KzSOD+cT7TzMQ==",
-          "dev": true,
-          "requires": {
-            "esutils": "^2.0.2",
-            "lodash": "^4.17.11",
-            "to-fast-properties": "^2.0.0"
-          }
-        },
-        "debug": {
-          "version": "4.1.1",
-          "resolved": "https://registry.npmjs.org/debug/-/debug-4.1.1.tgz",
-          "integrity": "sha512-pYAIzeRo8J6KPEaJ0VWOh5Pzkbw/RetuzehGM7QRRX5he4fPHx2rdKMB256ehJCkX+XRQm16eZLqLNS8RSZXZw==",
-          "dev": true,
-          "requires": {
-            "ms": "^2.1.1"
-          }
-        },
-        "globals": {
-          "version": "11.11.0",
-          "resolved": "https://registry.npmjs.org/globals/-/globals-11.11.0.tgz",
-          "integrity": "sha512-WHq43gS+6ufNOEqlrDBxVEbb8ntfXrfAUU2ZOpCxrBdGKW3gyv8mCxAfIBD0DroPKGrJ2eSsXsLtY9MPntsyTw==",
-          "dev": true
-        },
-        "js-tokens": {
-          "version": "4.0.0",
-          "resolved": "https://registry.npmjs.org/js-tokens/-/js-tokens-4.0.0.tgz",
-          "integrity": "sha512-RdJUflcE3cUzKiMqQgsCu06FPu9UdIJO0beYbPhHN4k6apgJtifcoCtT9bcxOpYBtpD2kCM6Sbzg4CausW/PKQ==",
-          "dev": true
-        },
-        "jsesc": {
-          "version": "2.5.2",
-          "resolved": "https://registry.npmjs.org/jsesc/-/jsesc-2.5.2.tgz",
-          "integrity": "sha512-OYu7XEzjkCQ3C5Ps3QIZsQfNpqoJyZZA99wd9aWd05NCtC5pWOkShK2mkL6HXQR6/Cy2lbNdPlZBpuQHXE63gA==",
-          "dev": true
-        },
-        "json5": {
-          "version": "2.1.0",
-          "resolved": "https://registry.npmjs.org/json5/-/json5-2.1.0.tgz",
-          "integrity": "sha512-8Mh9h6xViijj36g7Dxi+Y4S6hNGV96vcJZr/SrlHh1LR/pEn/8j/+qIBbs44YKl69Lrfctp4QD+AdWLTMqEZAQ==",
-          "dev": true,
-          "requires": {
-            "minimist": "^1.2.0"
-          }
-        },
-        "lodash": {
-          "version": "4.17.11",
-          "resolved": "https://registry.npmjs.org/lodash/-/lodash-4.17.11.tgz",
-          "integrity": "sha512-cQKh8igo5QUhZ7lg38DYWAxMvjSAKG0A8wGSVimP07SIUEK2UO+arSRKbRZWtelMtN5V0Hkwh5ryOto/SshYIg==",
-          "dev": true
-        },
-        "minimist": {
-          "version": "1.2.0",
-          "resolved": "https://registry.npmjs.org/minimist/-/minimist-1.2.0.tgz",
-          "integrity": "sha1-o1AIsg9BOD7sH7kU9M1d95omQoQ=",
-          "dev": true
-        },
-        "ms": {
-          "version": "2.1.1",
-          "resolved": "https://registry.npmjs.org/ms/-/ms-2.1.1.tgz",
-          "integrity": "sha512-tgp+dl5cGk28utYktBsrFqA7HKgrhgPsg6Z/EfhWI4gl1Hwq8B/GmY/0oXZ6nF8hDVesS/FpnYaD/kOWhYQvyg==",
-          "dev": true
-        },
-        "to-fast-properties": {
-          "version": "2.0.0",
-          "resolved": "https://registry.npmjs.org/to-fast-properties/-/to-fast-properties-2.0.0.tgz",
-          "integrity": "sha1-3F5pjL0HkmW8c+A3doGk5Og/YW4=",
-          "dev": true
-        }
-      }
-    },
-    "@babel/generator": {
-      "version": "7.0.0-beta.51",
-      "resolved": "https://registry.npmjs.org/@babel/generator/-/generator-7.0.0-beta.51.tgz",
-      "integrity": "sha1-bHV1/952HQdIXgS67cA5LG2eMPY=",
-      "requires": {
-        "@babel/types": "7.0.0-beta.51",
-        "jsesc": "^2.5.1",
-        "lodash": "^4.17.5",
-        "source-map": "^0.5.0",
-        "trim-right": "^1.0.1"
-      },
-      "dependencies": {
-        "jsesc": {
-          "version": "2.5.1",
-          "resolved": "https://registry.npmjs.org/jsesc/-/jsesc-2.5.1.tgz",
-          "integrity": "sha1-5CGiqOINawgZ3yiQj3glJrlt0f4="
-        }
-      }
-    },
-    "@babel/helper-annotate-as-pure": {
-      "version": "7.0.0",
-      "resolved": "https://registry.npmjs.org/@babel/helper-annotate-as-pure/-/helper-annotate-as-pure-7.0.0.tgz",
-      "integrity": "sha512-3UYcJUj9kvSLbLbUIfQTqzcy5VX7GRZ/CCDrnOaZorFFM01aXp1+GJwuFGV4NDDoAS+mOUyHcO6UD/RfqOks3Q==",
-      "dev": true,
-      "requires": {
-        "@babel/types": "^7.0.0"
-      },
-      "dependencies": {
-        "@babel/types": {
-          "version": "7.2.2",
-          "resolved": "https://registry.npmjs.org/@babel/types/-/types-7.2.2.tgz",
-          "integrity": "sha512-fKCuD6UFUMkR541eDWL+2ih/xFZBXPOg/7EQFeTluMDebfqR4jrpaCjLhkWlQS4hT6nRa2PMEgXKbRB5/H2fpg==",
-          "dev": true,
-          "requires": {
-            "esutils": "^2.0.2",
-            "lodash": "^4.17.10",
-            "to-fast-properties": "^2.0.0"
-          }
-        },
-        "lodash": {
-          "version": "4.17.11",
-          "resolved": "https://registry.npmjs.org/lodash/-/lodash-4.17.11.tgz",
-          "integrity": "sha512-cQKh8igo5QUhZ7lg38DYWAxMvjSAKG0A8wGSVimP07SIUEK2UO+arSRKbRZWtelMtN5V0Hkwh5ryOto/SshYIg==",
-          "dev": true
-        },
-        "to-fast-properties": {
-          "version": "2.0.0",
-          "resolved": "https://registry.npmjs.org/to-fast-properties/-/to-fast-properties-2.0.0.tgz",
-          "integrity": "sha1-3F5pjL0HkmW8c+A3doGk5Og/YW4=",
-          "dev": true
-        }
-      }
-    },
-    "@babel/helper-builder-binary-assignment-operator-visitor": {
-      "version": "7.1.0",
-      "resolved": "https://registry.npmjs.org/@babel/helper-builder-binary-assignment-operator-visitor/-/helper-builder-binary-assignment-operator-visitor-7.1.0.tgz",
-      "integrity": "sha512-qNSR4jrmJ8M1VMM9tibvyRAHXQs2PmaksQF7c1CGJNipfe3D8p+wgNwgso/P2A2r2mdgBWAXljNWR0QRZAMW8w==",
-      "dev": true,
-      "requires": {
-        "@babel/helper-explode-assignable-expression": "^7.1.0",
-        "@babel/types": "^7.0.0"
-      },
-      "dependencies": {
-        "@babel/types": {
-          "version": "7.2.2",
-          "resolved": "https://registry.npmjs.org/@babel/types/-/types-7.2.2.tgz",
-          "integrity": "sha512-fKCuD6UFUMkR541eDWL+2ih/xFZBXPOg/7EQFeTluMDebfqR4jrpaCjLhkWlQS4hT6nRa2PMEgXKbRB5/H2fpg==",
-          "dev": true,
-          "requires": {
-            "esutils": "^2.0.2",
-            "lodash": "^4.17.10",
-            "to-fast-properties": "^2.0.0"
-          }
-        },
-        "lodash": {
-          "version": "4.17.11",
-          "resolved": "https://registry.npmjs.org/lodash/-/lodash-4.17.11.tgz",
-          "integrity": "sha512-cQKh8igo5QUhZ7lg38DYWAxMvjSAKG0A8wGSVimP07SIUEK2UO+arSRKbRZWtelMtN5V0Hkwh5ryOto/SshYIg==",
-          "dev": true
-        },
-        "to-fast-properties": {
-          "version": "2.0.0",
-          "resolved": "https://registry.npmjs.org/to-fast-properties/-/to-fast-properties-2.0.0.tgz",
-          "integrity": "sha1-3F5pjL0HkmW8c+A3doGk5Og/YW4=",
-          "dev": true
-        }
-      }
-    },
-    "@babel/helper-call-delegate": {
-      "version": "7.1.0",
-      "resolved": "https://registry.npmjs.org/@babel/helper-call-delegate/-/helper-call-delegate-7.1.0.tgz",
-      "integrity": "sha512-YEtYZrw3GUK6emQHKthltKNZwszBcHK58Ygcis+gVUrF4/FmTVr5CCqQNSfmvg2y+YDEANyYoaLz/SHsnusCwQ==",
-      "dev": true,
-      "requires": {
-        "@babel/helper-hoist-variables": "^7.0.0",
-        "@babel/traverse": "^7.1.0",
-        "@babel/types": "^7.0.0"
-      },
-      "dependencies": {
-        "@babel/code-frame": {
-          "version": "7.0.0",
-          "resolved": "https://registry.npmjs.org/@babel/code-frame/-/code-frame-7.0.0.tgz",
-          "integrity": "sha512-OfC2uemaknXr87bdLUkWog7nYuliM9Ij5HUcajsVcMCpQrcLmtxRbVFTIqmcSkSeYRBFBRxs2FiUqFJDLdiebA==",
-          "dev": true,
-          "requires": {
-            "@babel/highlight": "^7.0.0"
-          }
-        },
-        "@babel/generator": {
-          "version": "7.2.2",
-          "resolved": "https://registry.npmjs.org/@babel/generator/-/generator-7.2.2.tgz",
-          "integrity": "sha512-I4o675J/iS8k+P38dvJ3IBGqObLXyQLTxtrR4u9cSUJOURvafeEWb/pFMOTwtNrmq73mJzyF6ueTbO1BtN0Zeg==",
-          "dev": true,
-          "requires": {
-            "@babel/types": "^7.2.2",
-            "jsesc": "^2.5.1",
-            "lodash": "^4.17.10",
-            "source-map": "^0.5.0",
-            "trim-right": "^1.0.1"
-          }
-        },
-        "@babel/helper-function-name": {
-          "version": "7.1.0",
-          "resolved": "https://registry.npmjs.org/@babel/helper-function-name/-/helper-function-name-7.1.0.tgz",
-          "integrity": "sha512-A95XEoCpb3TO+KZzJ4S/5uW5fNe26DjBGqf1o9ucyLyCmi1dXq/B3c8iaWTfBk3VvetUxl16e8tIrd5teOCfGw==",
-          "dev": true,
-          "requires": {
-            "@babel/helper-get-function-arity": "^7.0.0",
-            "@babel/template": "^7.1.0",
-            "@babel/types": "^7.0.0"
-          }
-        },
-        "@babel/helper-get-function-arity": {
-          "version": "7.0.0",
-          "resolved": "https://registry.npmjs.org/@babel/helper-get-function-arity/-/helper-get-function-arity-7.0.0.tgz",
-          "integrity": "sha512-r2DbJeg4svYvt3HOS74U4eWKsUAMRH01Z1ds1zx8KNTPtpTL5JAsdFv8BNyOpVqdFhHkkRDIg5B4AsxmkjAlmQ==",
-          "dev": true,
-          "requires": {
-            "@babel/types": "^7.0.0"
-          }
-        },
-        "@babel/helper-split-export-declaration": {
-          "version": "7.0.0",
-          "resolved": "https://registry.npmjs.org/@babel/helper-split-export-declaration/-/helper-split-export-declaration-7.0.0.tgz",
-          "integrity": "sha512-MXkOJqva62dfC0w85mEf/LucPPS/1+04nmmRMPEBUB++hiiThQ2zPtX/mEWQ3mtzCEjIJvPY8nuwxXtQeQwUag==",
-          "dev": true,
-          "requires": {
-            "@babel/types": "^7.0.0"
-          }
-        },
-        "@babel/highlight": {
-          "version": "7.0.0",
-          "resolved": "https://registry.npmjs.org/@babel/highlight/-/highlight-7.0.0.tgz",
-          "integrity": "sha512-UFMC4ZeFC48Tpvj7C8UgLvtkaUuovQX+5xNWrsIoMG8o2z+XFKjKaN9iVmS84dPwVN00W4wPmqvYoZF3EGAsfw==",
-          "dev": true,
-          "requires": {
-            "chalk": "^2.0.0",
-            "esutils": "^2.0.2",
-            "js-tokens": "^4.0.0"
-          }
-        },
-        "@babel/parser": {
-          "version": "7.2.3",
-          "resolved": "https://registry.npmjs.org/@babel/parser/-/parser-7.2.3.tgz",
-          "integrity": "sha512-0LyEcVlfCoFmci8mXx8A5oIkpkOgyo8dRHtxBnK9RRBwxO2+JZPNsqtVEZQ7mJFPxnXF9lfmU24mHOPI0qnlkA==",
-          "dev": true
-        },
-        "@babel/template": {
-          "version": "7.2.2",
-          "resolved": "https://registry.npmjs.org/@babel/template/-/template-7.2.2.tgz",
-          "integrity": "sha512-zRL0IMM02AUDwghf5LMSSDEz7sBCO2YnNmpg3uWTZj/v1rcG2BmQUvaGU8GhU8BvfMh1k2KIAYZ7Ji9KXPUg7g==",
-          "dev": true,
-          "requires": {
-            "@babel/code-frame": "^7.0.0",
-            "@babel/parser": "^7.2.2",
-            "@babel/types": "^7.2.2"
-          }
-        },
-        "@babel/traverse": {
-          "version": "7.2.3",
-          "resolved": "https://registry.npmjs.org/@babel/traverse/-/traverse-7.2.3.tgz",
-          "integrity": "sha512-Z31oUD/fJvEWVR0lNZtfgvVt512ForCTNKYcJBGbPb1QZfve4WGH8Wsy7+Mev33/45fhP/hwQtvgusNdcCMgSw==",
-          "dev": true,
-          "requires": {
-            "@babel/code-frame": "^7.0.0",
-            "@babel/generator": "^7.2.2",
-            "@babel/helper-function-name": "^7.1.0",
-            "@babel/helper-split-export-declaration": "^7.0.0",
-            "@babel/parser": "^7.2.3",
-            "@babel/types": "^7.2.2",
-            "debug": "^4.1.0",
-            "globals": "^11.1.0",
-            "lodash": "^4.17.10"
-          }
-        },
-        "@babel/types": {
-          "version": "7.2.2",
-          "resolved": "https://registry.npmjs.org/@babel/types/-/types-7.2.2.tgz",
-          "integrity": "sha512-fKCuD6UFUMkR541eDWL+2ih/xFZBXPOg/7EQFeTluMDebfqR4jrpaCjLhkWlQS4hT6nRa2PMEgXKbRB5/H2fpg==",
-          "dev": true,
-          "requires": {
-            "esutils": "^2.0.2",
-            "lodash": "^4.17.10",
-            "to-fast-properties": "^2.0.0"
-          }
-        },
-        "debug": {
-          "version": "4.1.1",
-          "resolved": "https://registry.npmjs.org/debug/-/debug-4.1.1.tgz",
-          "integrity": "sha512-pYAIzeRo8J6KPEaJ0VWOh5Pzkbw/RetuzehGM7QRRX5he4fPHx2rdKMB256ehJCkX+XRQm16eZLqLNS8RSZXZw==",
-          "dev": true,
-          "requires": {
-            "ms": "^2.1.1"
-          }
-        },
-        "globals": {
-          "version": "11.9.0",
-          "resolved": "https://registry.npmjs.org/globals/-/globals-11.9.0.tgz",
-          "integrity": "sha512-5cJVtyXWH8PiJPVLZzzoIizXx944O4OmRro5MWKx5fT4MgcN7OfaMutPeaTdJCCURwbWdhhcCWcKIffPnmTzBg==",
-          "dev": true
-        },
-        "js-tokens": {
-          "version": "4.0.0",
-          "resolved": "https://registry.npmjs.org/js-tokens/-/js-tokens-4.0.0.tgz",
-          "integrity": "sha512-RdJUflcE3cUzKiMqQgsCu06FPu9UdIJO0beYbPhHN4k6apgJtifcoCtT9bcxOpYBtpD2kCM6Sbzg4CausW/PKQ==",
-          "dev": true
-        },
-        "jsesc": {
-          "version": "2.5.2",
-          "resolved": "https://registry.npmjs.org/jsesc/-/jsesc-2.5.2.tgz",
-          "integrity": "sha512-OYu7XEzjkCQ3C5Ps3QIZsQfNpqoJyZZA99wd9aWd05NCtC5pWOkShK2mkL6HXQR6/Cy2lbNdPlZBpuQHXE63gA==",
-          "dev": true
-        },
-        "lodash": {
-          "version": "4.17.11",
-          "resolved": "https://registry.npmjs.org/lodash/-/lodash-4.17.11.tgz",
-          "integrity": "sha512-cQKh8igo5QUhZ7lg38DYWAxMvjSAKG0A8wGSVimP07SIUEK2UO+arSRKbRZWtelMtN5V0Hkwh5ryOto/SshYIg==",
-          "dev": true
-        },
-        "ms": {
-          "version": "2.1.1",
-          "resolved": "https://registry.npmjs.org/ms/-/ms-2.1.1.tgz",
-          "integrity": "sha512-tgp+dl5cGk28utYktBsrFqA7HKgrhgPsg6Z/EfhWI4gl1Hwq8B/GmY/0oXZ6nF8hDVesS/FpnYaD/kOWhYQvyg==",
-          "dev": true
-        },
-        "to-fast-properties": {
-          "version": "2.0.0",
-          "resolved": "https://registry.npmjs.org/to-fast-properties/-/to-fast-properties-2.0.0.tgz",
-          "integrity": "sha1-3F5pjL0HkmW8c+A3doGk5Og/YW4=",
-          "dev": true
-        }
-      }
-    },
-    "@babel/helper-define-map": {
-      "version": "7.1.0",
-      "resolved": "https://registry.npmjs.org/@babel/helper-define-map/-/helper-define-map-7.1.0.tgz",
-      "integrity": "sha512-yPPcW8dc3gZLN+U1mhYV91QU3n5uTbx7DUdf8NnPbjS0RMwBuHi9Xt2MUgppmNz7CJxTBWsGczTiEp1CSOTPRg==",
-      "dev": true,
-      "requires": {
-        "@babel/helper-function-name": "^7.1.0",
-        "@babel/types": "^7.0.0",
-        "lodash": "^4.17.10"
-      },
-      "dependencies": {
-        "@babel/code-frame": {
-          "version": "7.0.0",
-          "resolved": "https://registry.npmjs.org/@babel/code-frame/-/code-frame-7.0.0.tgz",
-          "integrity": "sha512-OfC2uemaknXr87bdLUkWog7nYuliM9Ij5HUcajsVcMCpQrcLmtxRbVFTIqmcSkSeYRBFBRxs2FiUqFJDLdiebA==",
-          "dev": true,
-          "requires": {
-            "@babel/highlight": "^7.0.0"
-          }
-        },
-        "@babel/helper-function-name": {
-          "version": "7.1.0",
-          "resolved": "https://registry.npmjs.org/@babel/helper-function-name/-/helper-function-name-7.1.0.tgz",
-          "integrity": "sha512-A95XEoCpb3TO+KZzJ4S/5uW5fNe26DjBGqf1o9ucyLyCmi1dXq/B3c8iaWTfBk3VvetUxl16e8tIrd5teOCfGw==",
-          "dev": true,
-          "requires": {
-            "@babel/helper-get-function-arity": "^7.0.0",
-            "@babel/template": "^7.1.0",
-            "@babel/types": "^7.0.0"
-          }
-        },
-        "@babel/helper-get-function-arity": {
-          "version": "7.0.0",
-          "resolved": "https://registry.npmjs.org/@babel/helper-get-function-arity/-/helper-get-function-arity-7.0.0.tgz",
-          "integrity": "sha512-r2DbJeg4svYvt3HOS74U4eWKsUAMRH01Z1ds1zx8KNTPtpTL5JAsdFv8BNyOpVqdFhHkkRDIg5B4AsxmkjAlmQ==",
-          "dev": true,
-          "requires": {
-            "@babel/types": "^7.0.0"
-          }
-        },
-        "@babel/highlight": {
-          "version": "7.0.0",
-          "resolved": "https://registry.npmjs.org/@babel/highlight/-/highlight-7.0.0.tgz",
-          "integrity": "sha512-UFMC4ZeFC48Tpvj7C8UgLvtkaUuovQX+5xNWrsIoMG8o2z+XFKjKaN9iVmS84dPwVN00W4wPmqvYoZF3EGAsfw==",
-          "dev": true,
-          "requires": {
-            "chalk": "^2.0.0",
-            "esutils": "^2.0.2",
-            "js-tokens": "^4.0.0"
-          }
-        },
-        "@babel/parser": {
-          "version": "7.2.3",
-          "resolved": "https://registry.npmjs.org/@babel/parser/-/parser-7.2.3.tgz",
-          "integrity": "sha512-0LyEcVlfCoFmci8mXx8A5oIkpkOgyo8dRHtxBnK9RRBwxO2+JZPNsqtVEZQ7mJFPxnXF9lfmU24mHOPI0qnlkA==",
-          "dev": true
-        },
-        "@babel/template": {
-          "version": "7.2.2",
-          "resolved": "https://registry.npmjs.org/@babel/template/-/template-7.2.2.tgz",
-          "integrity": "sha512-zRL0IMM02AUDwghf5LMSSDEz7sBCO2YnNmpg3uWTZj/v1rcG2BmQUvaGU8GhU8BvfMh1k2KIAYZ7Ji9KXPUg7g==",
-          "dev": true,
-          "requires": {
-            "@babel/code-frame": "^7.0.0",
-            "@babel/parser": "^7.2.2",
-            "@babel/types": "^7.2.2"
-          }
-        },
-        "@babel/types": {
-          "version": "7.2.2",
-          "resolved": "https://registry.npmjs.org/@babel/types/-/types-7.2.2.tgz",
-          "integrity": "sha512-fKCuD6UFUMkR541eDWL+2ih/xFZBXPOg/7EQFeTluMDebfqR4jrpaCjLhkWlQS4hT6nRa2PMEgXKbRB5/H2fpg==",
-          "dev": true,
-          "requires": {
-            "esutils": "^2.0.2",
-            "lodash": "^4.17.10",
-            "to-fast-properties": "^2.0.0"
-          }
-        },
-        "js-tokens": {
-          "version": "4.0.0",
-          "resolved": "https://registry.npmjs.org/js-tokens/-/js-tokens-4.0.0.tgz",
-          "integrity": "sha512-RdJUflcE3cUzKiMqQgsCu06FPu9UdIJO0beYbPhHN4k6apgJtifcoCtT9bcxOpYBtpD2kCM6Sbzg4CausW/PKQ==",
-          "dev": true
-        },
-        "lodash": {
-          "version": "4.17.11",
-          "resolved": "https://registry.npmjs.org/lodash/-/lodash-4.17.11.tgz",
-          "integrity": "sha512-cQKh8igo5QUhZ7lg38DYWAxMvjSAKG0A8wGSVimP07SIUEK2UO+arSRKbRZWtelMtN5V0Hkwh5ryOto/SshYIg==",
-          "dev": true
-        },
-        "to-fast-properties": {
-          "version": "2.0.0",
-          "resolved": "https://registry.npmjs.org/to-fast-properties/-/to-fast-properties-2.0.0.tgz",
-          "integrity": "sha1-3F5pjL0HkmW8c+A3doGk5Og/YW4=",
-          "dev": true
-        }
-      }
-    },
-    "@babel/helper-explode-assignable-expression": {
-      "version": "7.1.0",
-      "resolved": "https://registry.npmjs.org/@babel/helper-explode-assignable-expression/-/helper-explode-assignable-expression-7.1.0.tgz",
-      "integrity": "sha512-NRQpfHrJ1msCHtKjbzs9YcMmJZOg6mQMmGRB+hbamEdG5PNpaSm95275VD92DvJKuyl0s2sFiDmMZ+EnnvufqA==",
-      "dev": true,
-      "requires": {
-        "@babel/traverse": "^7.1.0",
-        "@babel/types": "^7.0.0"
-      },
-      "dependencies": {
-        "@babel/code-frame": {
-          "version": "7.0.0",
-          "resolved": "https://registry.npmjs.org/@babel/code-frame/-/code-frame-7.0.0.tgz",
-          "integrity": "sha512-OfC2uemaknXr87bdLUkWog7nYuliM9Ij5HUcajsVcMCpQrcLmtxRbVFTIqmcSkSeYRBFBRxs2FiUqFJDLdiebA==",
-          "dev": true,
-          "requires": {
-            "@babel/highlight": "^7.0.0"
-          }
-        },
-        "@babel/generator": {
-          "version": "7.2.2",
-          "resolved": "https://registry.npmjs.org/@babel/generator/-/generator-7.2.2.tgz",
-          "integrity": "sha512-I4o675J/iS8k+P38dvJ3IBGqObLXyQLTxtrR4u9cSUJOURvafeEWb/pFMOTwtNrmq73mJzyF6ueTbO1BtN0Zeg==",
-          "dev": true,
-          "requires": {
-            "@babel/types": "^7.2.2",
-            "jsesc": "^2.5.1",
-            "lodash": "^4.17.10",
-            "source-map": "^0.5.0",
-            "trim-right": "^1.0.1"
-          }
-        },
-        "@babel/helper-function-name": {
-          "version": "7.1.0",
-          "resolved": "https://registry.npmjs.org/@babel/helper-function-name/-/helper-function-name-7.1.0.tgz",
-          "integrity": "sha512-A95XEoCpb3TO+KZzJ4S/5uW5fNe26DjBGqf1o9ucyLyCmi1dXq/B3c8iaWTfBk3VvetUxl16e8tIrd5teOCfGw==",
-          "dev": true,
-          "requires": {
-            "@babel/helper-get-function-arity": "^7.0.0",
-            "@babel/template": "^7.1.0",
-            "@babel/types": "^7.0.0"
-          }
-        },
-        "@babel/helper-get-function-arity": {
-          "version": "7.0.0",
-          "resolved": "https://registry.npmjs.org/@babel/helper-get-function-arity/-/helper-get-function-arity-7.0.0.tgz",
-          "integrity": "sha512-r2DbJeg4svYvt3HOS74U4eWKsUAMRH01Z1ds1zx8KNTPtpTL5JAsdFv8BNyOpVqdFhHkkRDIg5B4AsxmkjAlmQ==",
-          "dev": true,
-          "requires": {
-            "@babel/types": "^7.0.0"
-          }
-        },
-        "@babel/helper-split-export-declaration": {
-          "version": "7.0.0",
-          "resolved": "https://registry.npmjs.org/@babel/helper-split-export-declaration/-/helper-split-export-declaration-7.0.0.tgz",
-          "integrity": "sha512-MXkOJqva62dfC0w85mEf/LucPPS/1+04nmmRMPEBUB++hiiThQ2zPtX/mEWQ3mtzCEjIJvPY8nuwxXtQeQwUag==",
-          "dev": true,
-          "requires": {
-            "@babel/types": "^7.0.0"
-          }
-        },
-        "@babel/highlight": {
-          "version": "7.0.0",
-          "resolved": "https://registry.npmjs.org/@babel/highlight/-/highlight-7.0.0.tgz",
-          "integrity": "sha512-UFMC4ZeFC48Tpvj7C8UgLvtkaUuovQX+5xNWrsIoMG8o2z+XFKjKaN9iVmS84dPwVN00W4wPmqvYoZF3EGAsfw==",
-          "dev": true,
-          "requires": {
-            "chalk": "^2.0.0",
-            "esutils": "^2.0.2",
-            "js-tokens": "^4.0.0"
-          }
-        },
-        "@babel/parser": {
-          "version": "7.2.3",
-          "resolved": "https://registry.npmjs.org/@babel/parser/-/parser-7.2.3.tgz",
-          "integrity": "sha512-0LyEcVlfCoFmci8mXx8A5oIkpkOgyo8dRHtxBnK9RRBwxO2+JZPNsqtVEZQ7mJFPxnXF9lfmU24mHOPI0qnlkA==",
-          "dev": true
-        },
-        "@babel/template": {
-          "version": "7.2.2",
-          "resolved": "https://registry.npmjs.org/@babel/template/-/template-7.2.2.tgz",
-          "integrity": "sha512-zRL0IMM02AUDwghf5LMSSDEz7sBCO2YnNmpg3uWTZj/v1rcG2BmQUvaGU8GhU8BvfMh1k2KIAYZ7Ji9KXPUg7g==",
-          "dev": true,
-          "requires": {
-            "@babel/code-frame": "^7.0.0",
-            "@babel/parser": "^7.2.2",
-            "@babel/types": "^7.2.2"
-          }
-        },
-        "@babel/traverse": {
-          "version": "7.2.3",
-          "resolved": "https://registry.npmjs.org/@babel/traverse/-/traverse-7.2.3.tgz",
-          "integrity": "sha512-Z31oUD/fJvEWVR0lNZtfgvVt512ForCTNKYcJBGbPb1QZfve4WGH8Wsy7+Mev33/45fhP/hwQtvgusNdcCMgSw==",
-          "dev": true,
-          "requires": {
-            "@babel/code-frame": "^7.0.0",
-            "@babel/generator": "^7.2.2",
-            "@babel/helper-function-name": "^7.1.0",
-            "@babel/helper-split-export-declaration": "^7.0.0",
-            "@babel/parser": "^7.2.3",
-            "@babel/types": "^7.2.2",
-            "debug": "^4.1.0",
-            "globals": "^11.1.0",
-            "lodash": "^4.17.10"
-          }
-        },
-        "@babel/types": {
-          "version": "7.2.2",
-          "resolved": "https://registry.npmjs.org/@babel/types/-/types-7.2.2.tgz",
-          "integrity": "sha512-fKCuD6UFUMkR541eDWL+2ih/xFZBXPOg/7EQFeTluMDebfqR4jrpaCjLhkWlQS4hT6nRa2PMEgXKbRB5/H2fpg==",
-          "dev": true,
-          "requires": {
-            "esutils": "^2.0.2",
-            "lodash": "^4.17.10",
-            "to-fast-properties": "^2.0.0"
-          }
-        },
-        "debug": {
-          "version": "4.1.1",
-          "resolved": "https://registry.npmjs.org/debug/-/debug-4.1.1.tgz",
-          "integrity": "sha512-pYAIzeRo8J6KPEaJ0VWOh5Pzkbw/RetuzehGM7QRRX5he4fPHx2rdKMB256ehJCkX+XRQm16eZLqLNS8RSZXZw==",
-          "dev": true,
-          "requires": {
-            "ms": "^2.1.1"
-          }
-        },
-        "globals": {
-          "version": "11.9.0",
-          "resolved": "https://registry.npmjs.org/globals/-/globals-11.9.0.tgz",
-          "integrity": "sha512-5cJVtyXWH8PiJPVLZzzoIizXx944O4OmRro5MWKx5fT4MgcN7OfaMutPeaTdJCCURwbWdhhcCWcKIffPnmTzBg==",
-          "dev": true
-        },
-        "js-tokens": {
-          "version": "4.0.0",
-          "resolved": "https://registry.npmjs.org/js-tokens/-/js-tokens-4.0.0.tgz",
-          "integrity": "sha512-RdJUflcE3cUzKiMqQgsCu06FPu9UdIJO0beYbPhHN4k6apgJtifcoCtT9bcxOpYBtpD2kCM6Sbzg4CausW/PKQ==",
-          "dev": true
-        },
-        "jsesc": {
-          "version": "2.5.2",
-          "resolved": "https://registry.npmjs.org/jsesc/-/jsesc-2.5.2.tgz",
-          "integrity": "sha512-OYu7XEzjkCQ3C5Ps3QIZsQfNpqoJyZZA99wd9aWd05NCtC5pWOkShK2mkL6HXQR6/Cy2lbNdPlZBpuQHXE63gA==",
-          "dev": true
-        },
-        "lodash": {
-          "version": "4.17.11",
-          "resolved": "https://registry.npmjs.org/lodash/-/lodash-4.17.11.tgz",
-          "integrity": "sha512-cQKh8igo5QUhZ7lg38DYWAxMvjSAKG0A8wGSVimP07SIUEK2UO+arSRKbRZWtelMtN5V0Hkwh5ryOto/SshYIg==",
-          "dev": true
-        },
-        "ms": {
-          "version": "2.1.1",
-          "resolved": "https://registry.npmjs.org/ms/-/ms-2.1.1.tgz",
-          "integrity": "sha512-tgp+dl5cGk28utYktBsrFqA7HKgrhgPsg6Z/EfhWI4gl1Hwq8B/GmY/0oXZ6nF8hDVesS/FpnYaD/kOWhYQvyg==",
-          "dev": true
-        },
-        "to-fast-properties": {
-          "version": "2.0.0",
-          "resolved": "https://registry.npmjs.org/to-fast-properties/-/to-fast-properties-2.0.0.tgz",
-          "integrity": "sha1-3F5pjL0HkmW8c+A3doGk5Og/YW4=",
-          "dev": true
-        }
-      }
-    },
-    "@babel/helper-function-name": {
-      "version": "7.0.0-beta.51",
-      "resolved": "https://registry.npmjs.org/@babel/helper-function-name/-/helper-function-name-7.0.0-beta.51.tgz",
-      "integrity": "sha1-IbSHSiJ8+Z7K/MMKkDAtpaJkBWE=",
-      "requires": {
-        "@babel/helper-get-function-arity": "7.0.0-beta.51",
-        "@babel/template": "7.0.0-beta.51",
-        "@babel/types": "7.0.0-beta.51"
-      }
-    },
-    "@babel/helper-get-function-arity": {
-      "version": "7.0.0-beta.51",
-      "resolved": "https://registry.npmjs.org/@babel/helper-get-function-arity/-/helper-get-function-arity-7.0.0-beta.51.tgz",
-      "integrity": "sha1-MoGy0EWvlcFyzpGyCCXYXqRnZBE=",
-      "requires": {
-        "@babel/types": "7.0.0-beta.51"
-      }
-    },
-    "@babel/helper-hoist-variables": {
-      "version": "7.0.0",
-      "resolved": "https://registry.npmjs.org/@babel/helper-hoist-variables/-/helper-hoist-variables-7.0.0.tgz",
-      "integrity": "sha512-Ggv5sldXUeSKsuzLkddtyhyHe2YantsxWKNi7A+7LeD12ExRDWTRk29JCXpaHPAbMaIPZSil7n+lq78WY2VY7w==",
-      "dev": true,
-      "requires": {
-        "@babel/types": "^7.0.0"
-      },
-      "dependencies": {
-        "@babel/types": {
-          "version": "7.2.2",
-          "resolved": "https://registry.npmjs.org/@babel/types/-/types-7.2.2.tgz",
-          "integrity": "sha512-fKCuD6UFUMkR541eDWL+2ih/xFZBXPOg/7EQFeTluMDebfqR4jrpaCjLhkWlQS4hT6nRa2PMEgXKbRB5/H2fpg==",
-          "dev": true,
-          "requires": {
-            "esutils": "^2.0.2",
-            "lodash": "^4.17.10",
-            "to-fast-properties": "^2.0.0"
-          }
-        },
-        "lodash": {
-          "version": "4.17.11",
-          "resolved": "https://registry.npmjs.org/lodash/-/lodash-4.17.11.tgz",
-          "integrity": "sha512-cQKh8igo5QUhZ7lg38DYWAxMvjSAKG0A8wGSVimP07SIUEK2UO+arSRKbRZWtelMtN5V0Hkwh5ryOto/SshYIg==",
-          "dev": true
-        },
-        "to-fast-properties": {
-          "version": "2.0.0",
-          "resolved": "https://registry.npmjs.org/to-fast-properties/-/to-fast-properties-2.0.0.tgz",
-          "integrity": "sha1-3F5pjL0HkmW8c+A3doGk5Og/YW4=",
-          "dev": true
-        }
-      }
-    },
-    "@babel/helper-member-expression-to-functions": {
-      "version": "7.0.0",
-      "resolved": "https://registry.npmjs.org/@babel/helper-member-expression-to-functions/-/helper-member-expression-to-functions-7.0.0.tgz",
-      "integrity": "sha512-avo+lm/QmZlv27Zsi0xEor2fKcqWG56D5ae9dzklpIaY7cQMK5N8VSpaNVPPagiqmy7LrEjK1IWdGMOqPu5csg==",
-      "dev": true,
-      "requires": {
-        "@babel/types": "^7.0.0"
-      },
-      "dependencies": {
-        "@babel/types": {
-          "version": "7.2.2",
-          "resolved": "https://registry.npmjs.org/@babel/types/-/types-7.2.2.tgz",
-          "integrity": "sha512-fKCuD6UFUMkR541eDWL+2ih/xFZBXPOg/7EQFeTluMDebfqR4jrpaCjLhkWlQS4hT6nRa2PMEgXKbRB5/H2fpg==",
-          "dev": true,
-          "requires": {
-            "esutils": "^2.0.2",
-            "lodash": "^4.17.10",
-            "to-fast-properties": "^2.0.0"
-          }
-        },
-        "lodash": {
-          "version": "4.17.11",
-          "resolved": "https://registry.npmjs.org/lodash/-/lodash-4.17.11.tgz",
-          "integrity": "sha512-cQKh8igo5QUhZ7lg38DYWAxMvjSAKG0A8wGSVimP07SIUEK2UO+arSRKbRZWtelMtN5V0Hkwh5ryOto/SshYIg==",
-          "dev": true
-        },
-        "to-fast-properties": {
-          "version": "2.0.0",
-          "resolved": "https://registry.npmjs.org/to-fast-properties/-/to-fast-properties-2.0.0.tgz",
-          "integrity": "sha1-3F5pjL0HkmW8c+A3doGk5Og/YW4=",
-          "dev": true
-        }
-      }
-    },
-    "@babel/helper-module-imports": {
-      "version": "7.0.0",
-      "resolved": "https://registry.npmjs.org/@babel/helper-module-imports/-/helper-module-imports-7.0.0.tgz",
-      "integrity": "sha512-aP/hlLq01DWNEiDg4Jn23i+CXxW/owM4WpDLFUbpjxe4NS3BhLVZQ5i7E0ZrxuQ/vwekIeciyamgB1UIYxxM6A==",
-      "dev": true,
-      "requires": {
-        "@babel/types": "^7.0.0"
-      },
-      "dependencies": {
-        "@babel/types": {
-          "version": "7.2.2",
-          "resolved": "https://registry.npmjs.org/@babel/types/-/types-7.2.2.tgz",
-          "integrity": "sha512-fKCuD6UFUMkR541eDWL+2ih/xFZBXPOg/7EQFeTluMDebfqR4jrpaCjLhkWlQS4hT6nRa2PMEgXKbRB5/H2fpg==",
-          "dev": true,
-          "requires": {
-            "esutils": "^2.0.2",
-            "lodash": "^4.17.10",
-            "to-fast-properties": "^2.0.0"
-          }
-        },
-        "lodash": {
-          "version": "4.17.11",
-          "resolved": "https://registry.npmjs.org/lodash/-/lodash-4.17.11.tgz",
-          "integrity": "sha512-cQKh8igo5QUhZ7lg38DYWAxMvjSAKG0A8wGSVimP07SIUEK2UO+arSRKbRZWtelMtN5V0Hkwh5ryOto/SshYIg==",
-          "dev": true
-        },
-        "to-fast-properties": {
-          "version": "2.0.0",
-          "resolved": "https://registry.npmjs.org/to-fast-properties/-/to-fast-properties-2.0.0.tgz",
-          "integrity": "sha1-3F5pjL0HkmW8c+A3doGk5Og/YW4=",
-          "dev": true
-        }
-      }
-    },
-    "@babel/helper-module-transforms": {
-      "version": "7.2.2",
-      "resolved": "https://registry.npmjs.org/@babel/helper-module-transforms/-/helper-module-transforms-7.2.2.tgz",
-      "integrity": "sha512-YRD7I6Wsv+IHuTPkAmAS4HhY0dkPobgLftHp0cRGZSdrRvmZY8rFvae/GVu3bD00qscuvK3WPHB3YdNpBXUqrA==",
-      "dev": true,
-      "requires": {
-        "@babel/helper-module-imports": "^7.0.0",
-        "@babel/helper-simple-access": "^7.1.0",
-        "@babel/helper-split-export-declaration": "^7.0.0",
-        "@babel/template": "^7.2.2",
-        "@babel/types": "^7.2.2",
-        "lodash": "^4.17.10"
-      },
-      "dependencies": {
-        "@babel/code-frame": {
-          "version": "7.0.0",
-          "resolved": "https://registry.npmjs.org/@babel/code-frame/-/code-frame-7.0.0.tgz",
-          "integrity": "sha512-OfC2uemaknXr87bdLUkWog7nYuliM9Ij5HUcajsVcMCpQrcLmtxRbVFTIqmcSkSeYRBFBRxs2FiUqFJDLdiebA==",
-          "dev": true,
-          "requires": {
-            "@babel/highlight": "^7.0.0"
-          }
-        },
-        "@babel/helper-split-export-declaration": {
-          "version": "7.0.0",
-          "resolved": "https://registry.npmjs.org/@babel/helper-split-export-declaration/-/helper-split-export-declaration-7.0.0.tgz",
-          "integrity": "sha512-MXkOJqva62dfC0w85mEf/LucPPS/1+04nmmRMPEBUB++hiiThQ2zPtX/mEWQ3mtzCEjIJvPY8nuwxXtQeQwUag==",
-          "dev": true,
-          "requires": {
-            "@babel/types": "^7.0.0"
-          }
-        },
-        "@babel/highlight": {
-          "version": "7.0.0",
-          "resolved": "https://registry.npmjs.org/@babel/highlight/-/highlight-7.0.0.tgz",
-          "integrity": "sha512-UFMC4ZeFC48Tpvj7C8UgLvtkaUuovQX+5xNWrsIoMG8o2z+XFKjKaN9iVmS84dPwVN00W4wPmqvYoZF3EGAsfw==",
-          "dev": true,
-          "requires": {
-            "chalk": "^2.0.0",
-            "esutils": "^2.0.2",
-            "js-tokens": "^4.0.0"
-          }
-        },
-        "@babel/parser": {
-          "version": "7.2.3",
-          "resolved": "https://registry.npmjs.org/@babel/parser/-/parser-7.2.3.tgz",
-          "integrity": "sha512-0LyEcVlfCoFmci8mXx8A5oIkpkOgyo8dRHtxBnK9RRBwxO2+JZPNsqtVEZQ7mJFPxnXF9lfmU24mHOPI0qnlkA==",
-          "dev": true
-        },
-        "@babel/template": {
-          "version": "7.2.2",
-          "resolved": "https://registry.npmjs.org/@babel/template/-/template-7.2.2.tgz",
-          "integrity": "sha512-zRL0IMM02AUDwghf5LMSSDEz7sBCO2YnNmpg3uWTZj/v1rcG2BmQUvaGU8GhU8BvfMh1k2KIAYZ7Ji9KXPUg7g==",
-          "dev": true,
-          "requires": {
-            "@babel/code-frame": "^7.0.0",
-            "@babel/parser": "^7.2.2",
-            "@babel/types": "^7.2.2"
-          }
-        },
-        "@babel/types": {
-          "version": "7.2.2",
-          "resolved": "https://registry.npmjs.org/@babel/types/-/types-7.2.2.tgz",
-          "integrity": "sha512-fKCuD6UFUMkR541eDWL+2ih/xFZBXPOg/7EQFeTluMDebfqR4jrpaCjLhkWlQS4hT6nRa2PMEgXKbRB5/H2fpg==",
-          "dev": true,
-          "requires": {
-            "esutils": "^2.0.2",
-            "lodash": "^4.17.10",
-            "to-fast-properties": "^2.0.0"
-          }
-        },
-        "js-tokens": {
-          "version": "4.0.0",
-          "resolved": "https://registry.npmjs.org/js-tokens/-/js-tokens-4.0.0.tgz",
-          "integrity": "sha512-RdJUflcE3cUzKiMqQgsCu06FPu9UdIJO0beYbPhHN4k6apgJtifcoCtT9bcxOpYBtpD2kCM6Sbzg4CausW/PKQ==",
-          "dev": true
-        },
-        "lodash": {
-          "version": "4.17.11",
-          "resolved": "https://registry.npmjs.org/lodash/-/lodash-4.17.11.tgz",
-          "integrity": "sha512-cQKh8igo5QUhZ7lg38DYWAxMvjSAKG0A8wGSVimP07SIUEK2UO+arSRKbRZWtelMtN5V0Hkwh5ryOto/SshYIg==",
-          "dev": true
-        },
-        "to-fast-properties": {
-          "version": "2.0.0",
-          "resolved": "https://registry.npmjs.org/to-fast-properties/-/to-fast-properties-2.0.0.tgz",
-          "integrity": "sha1-3F5pjL0HkmW8c+A3doGk5Og/YW4=",
-          "dev": true
-        }
-      }
-    },
-    "@babel/helper-optimise-call-expression": {
-      "version": "7.0.0",
-      "resolved": "https://registry.npmjs.org/@babel/helper-optimise-call-expression/-/helper-optimise-call-expression-7.0.0.tgz",
-      "integrity": "sha512-u8nd9NQePYNQV8iPWu/pLLYBqZBa4ZaY1YWRFMuxrid94wKI1QNt67NEZ7GAe5Kc/0LLScbim05xZFWkAdrj9g==",
-      "dev": true,
-      "requires": {
-        "@babel/types": "^7.0.0"
-      },
-      "dependencies": {
-        "@babel/types": {
-          "version": "7.2.2",
-          "resolved": "https://registry.npmjs.org/@babel/types/-/types-7.2.2.tgz",
-          "integrity": "sha512-fKCuD6UFUMkR541eDWL+2ih/xFZBXPOg/7EQFeTluMDebfqR4jrpaCjLhkWlQS4hT6nRa2PMEgXKbRB5/H2fpg==",
-          "dev": true,
-          "requires": {
-            "esutils": "^2.0.2",
-            "lodash": "^4.17.10",
-            "to-fast-properties": "^2.0.0"
-          }
-        },
-        "lodash": {
-          "version": "4.17.11",
-          "resolved": "https://registry.npmjs.org/lodash/-/lodash-4.17.11.tgz",
-          "integrity": "sha512-cQKh8igo5QUhZ7lg38DYWAxMvjSAKG0A8wGSVimP07SIUEK2UO+arSRKbRZWtelMtN5V0Hkwh5ryOto/SshYIg==",
-          "dev": true
-        },
-        "to-fast-properties": {
-          "version": "2.0.0",
-          "resolved": "https://registry.npmjs.org/to-fast-properties/-/to-fast-properties-2.0.0.tgz",
-          "integrity": "sha1-3F5pjL0HkmW8c+A3doGk5Og/YW4=",
-          "dev": true
-        }
-      }
-    },
-    "@babel/helper-plugin-utils": {
-      "version": "7.0.0",
-      "resolved": "https://registry.npmjs.org/@babel/helper-plugin-utils/-/helper-plugin-utils-7.0.0.tgz",
-      "integrity": "sha512-CYAOUCARwExnEixLdB6sDm2dIJ/YgEAKDM1MOeMeZu9Ld/bDgVo8aiWrXwcY7OBh+1Ea2uUcVRcxKk0GJvW7QA==",
-      "dev": true
-    },
-    "@babel/helper-regex": {
-      "version": "7.0.0",
-      "resolved": "https://registry.npmjs.org/@babel/helper-regex/-/helper-regex-7.0.0.tgz",
-      "integrity": "sha512-TR0/N0NDCcUIUEbqV6dCO+LptmmSQFQ7q70lfcEB4URsjD0E1HzicrwUH+ap6BAQ2jhCX9Q4UqZy4wilujWlkg==",
-      "dev": true,
-      "requires": {
-        "lodash": "^4.17.10"
-      },
-      "dependencies": {
-        "lodash": {
-          "version": "4.17.11",
-          "resolved": "https://registry.npmjs.org/lodash/-/lodash-4.17.11.tgz",
-          "integrity": "sha512-cQKh8igo5QUhZ7lg38DYWAxMvjSAKG0A8wGSVimP07SIUEK2UO+arSRKbRZWtelMtN5V0Hkwh5ryOto/SshYIg==",
-          "dev": true
-        }
-      }
-    },
-    "@babel/helper-remap-async-to-generator": {
-      "version": "7.1.0",
-      "resolved": "https://registry.npmjs.org/@babel/helper-remap-async-to-generator/-/helper-remap-async-to-generator-7.1.0.tgz",
-      "integrity": "sha512-3fOK0L+Fdlg8S5al8u/hWE6vhufGSn0bN09xm2LXMy//REAF8kDCrYoOBKYmA8m5Nom+sV9LyLCwrFynA8/slg==",
-      "dev": true,
-      "requires": {
-        "@babel/helper-annotate-as-pure": "^7.0.0",
-        "@babel/helper-wrap-function": "^7.1.0",
-        "@babel/template": "^7.1.0",
-        "@babel/traverse": "^7.1.0",
-        "@babel/types": "^7.0.0"
-      },
-      "dependencies": {
-        "@babel/code-frame": {
-          "version": "7.0.0",
-          "resolved": "https://registry.npmjs.org/@babel/code-frame/-/code-frame-7.0.0.tgz",
-          "integrity": "sha512-OfC2uemaknXr87bdLUkWog7nYuliM9Ij5HUcajsVcMCpQrcLmtxRbVFTIqmcSkSeYRBFBRxs2FiUqFJDLdiebA==",
-          "dev": true,
-          "requires": {
-            "@babel/highlight": "^7.0.0"
-          }
-        },
-        "@babel/generator": {
-          "version": "7.2.2",
-          "resolved": "https://registry.npmjs.org/@babel/generator/-/generator-7.2.2.tgz",
-          "integrity": "sha512-I4o675J/iS8k+P38dvJ3IBGqObLXyQLTxtrR4u9cSUJOURvafeEWb/pFMOTwtNrmq73mJzyF6ueTbO1BtN0Zeg==",
-          "dev": true,
-          "requires": {
-            "@babel/types": "^7.2.2",
-            "jsesc": "^2.5.1",
-            "lodash": "^4.17.10",
-            "source-map": "^0.5.0",
-            "trim-right": "^1.0.1"
-          }
-        },
-        "@babel/helper-function-name": {
-          "version": "7.1.0",
-          "resolved": "https://registry.npmjs.org/@babel/helper-function-name/-/helper-function-name-7.1.0.tgz",
-          "integrity": "sha512-A95XEoCpb3TO+KZzJ4S/5uW5fNe26DjBGqf1o9ucyLyCmi1dXq/B3c8iaWTfBk3VvetUxl16e8tIrd5teOCfGw==",
-          "dev": true,
-          "requires": {
-            "@babel/helper-get-function-arity": "^7.0.0",
-            "@babel/template": "^7.1.0",
-            "@babel/types": "^7.0.0"
-          }
-        },
-        "@babel/helper-get-function-arity": {
-          "version": "7.0.0",
-          "resolved": "https://registry.npmjs.org/@babel/helper-get-function-arity/-/helper-get-function-arity-7.0.0.tgz",
-          "integrity": "sha512-r2DbJeg4svYvt3HOS74U4eWKsUAMRH01Z1ds1zx8KNTPtpTL5JAsdFv8BNyOpVqdFhHkkRDIg5B4AsxmkjAlmQ==",
-          "dev": true,
-          "requires": {
-            "@babel/types": "^7.0.0"
-          }
-        },
-        "@babel/helper-split-export-declaration": {
-          "version": "7.0.0",
-          "resolved": "https://registry.npmjs.org/@babel/helper-split-export-declaration/-/helper-split-export-declaration-7.0.0.tgz",
-          "integrity": "sha512-MXkOJqva62dfC0w85mEf/LucPPS/1+04nmmRMPEBUB++hiiThQ2zPtX/mEWQ3mtzCEjIJvPY8nuwxXtQeQwUag==",
-          "dev": true,
-          "requires": {
-            "@babel/types": "^7.0.0"
-          }
-        },
-        "@babel/highlight": {
-          "version": "7.0.0",
-          "resolved": "https://registry.npmjs.org/@babel/highlight/-/highlight-7.0.0.tgz",
-          "integrity": "sha512-UFMC4ZeFC48Tpvj7C8UgLvtkaUuovQX+5xNWrsIoMG8o2z+XFKjKaN9iVmS84dPwVN00W4wPmqvYoZF3EGAsfw==",
-          "dev": true,
-          "requires": {
-            "chalk": "^2.0.0",
-            "esutils": "^2.0.2",
-            "js-tokens": "^4.0.0"
-          }
-        },
-        "@babel/parser": {
-          "version": "7.2.3",
-          "resolved": "https://registry.npmjs.org/@babel/parser/-/parser-7.2.3.tgz",
-          "integrity": "sha512-0LyEcVlfCoFmci8mXx8A5oIkpkOgyo8dRHtxBnK9RRBwxO2+JZPNsqtVEZQ7mJFPxnXF9lfmU24mHOPI0qnlkA==",
-          "dev": true
-        },
-        "@babel/template": {
-          "version": "7.2.2",
-          "resolved": "https://registry.npmjs.org/@babel/template/-/template-7.2.2.tgz",
-          "integrity": "sha512-zRL0IMM02AUDwghf5LMSSDEz7sBCO2YnNmpg3uWTZj/v1rcG2BmQUvaGU8GhU8BvfMh1k2KIAYZ7Ji9KXPUg7g==",
-          "dev": true,
-          "requires": {
-            "@babel/code-frame": "^7.0.0",
-            "@babel/parser": "^7.2.2",
-            "@babel/types": "^7.2.2"
-          }
-        },
-        "@babel/traverse": {
-          "version": "7.2.3",
-          "resolved": "https://registry.npmjs.org/@babel/traverse/-/traverse-7.2.3.tgz",
-          "integrity": "sha512-Z31oUD/fJvEWVR0lNZtfgvVt512ForCTNKYcJBGbPb1QZfve4WGH8Wsy7+Mev33/45fhP/hwQtvgusNdcCMgSw==",
-          "dev": true,
-          "requires": {
-            "@babel/code-frame": "^7.0.0",
-            "@babel/generator": "^7.2.2",
-            "@babel/helper-function-name": "^7.1.0",
-            "@babel/helper-split-export-declaration": "^7.0.0",
-            "@babel/parser": "^7.2.3",
-            "@babel/types": "^7.2.2",
-            "debug": "^4.1.0",
-            "globals": "^11.1.0",
-            "lodash": "^4.17.10"
-          }
-        },
-        "@babel/types": {
-          "version": "7.2.2",
-          "resolved": "https://registry.npmjs.org/@babel/types/-/types-7.2.2.tgz",
-          "integrity": "sha512-fKCuD6UFUMkR541eDWL+2ih/xFZBXPOg/7EQFeTluMDebfqR4jrpaCjLhkWlQS4hT6nRa2PMEgXKbRB5/H2fpg==",
-          "dev": true,
-          "requires": {
-            "esutils": "^2.0.2",
-            "lodash": "^4.17.10",
-            "to-fast-properties": "^2.0.0"
-          }
-        },
-        "debug": {
-          "version": "4.1.1",
-          "resolved": "https://registry.npmjs.org/debug/-/debug-4.1.1.tgz",
-          "integrity": "sha512-pYAIzeRo8J6KPEaJ0VWOh5Pzkbw/RetuzehGM7QRRX5he4fPHx2rdKMB256ehJCkX+XRQm16eZLqLNS8RSZXZw==",
-          "dev": true,
-          "requires": {
-            "ms": "^2.1.1"
-          }
-        },
-        "globals": {
-          "version": "11.9.0",
-          "resolved": "https://registry.npmjs.org/globals/-/globals-11.9.0.tgz",
-          "integrity": "sha512-5cJVtyXWH8PiJPVLZzzoIizXx944O4OmRro5MWKx5fT4MgcN7OfaMutPeaTdJCCURwbWdhhcCWcKIffPnmTzBg==",
-          "dev": true
-        },
-        "js-tokens": {
-          "version": "4.0.0",
-          "resolved": "https://registry.npmjs.org/js-tokens/-/js-tokens-4.0.0.tgz",
-          "integrity": "sha512-RdJUflcE3cUzKiMqQgsCu06FPu9UdIJO0beYbPhHN4k6apgJtifcoCtT9bcxOpYBtpD2kCM6Sbzg4CausW/PKQ==",
-          "dev": true
-        },
-        "jsesc": {
-          "version": "2.5.2",
-          "resolved": "https://registry.npmjs.org/jsesc/-/jsesc-2.5.2.tgz",
-          "integrity": "sha512-OYu7XEzjkCQ3C5Ps3QIZsQfNpqoJyZZA99wd9aWd05NCtC5pWOkShK2mkL6HXQR6/Cy2lbNdPlZBpuQHXE63gA==",
-          "dev": true
-        },
-        "lodash": {
-          "version": "4.17.11",
-          "resolved": "https://registry.npmjs.org/lodash/-/lodash-4.17.11.tgz",
-          "integrity": "sha512-cQKh8igo5QUhZ7lg38DYWAxMvjSAKG0A8wGSVimP07SIUEK2UO+arSRKbRZWtelMtN5V0Hkwh5ryOto/SshYIg==",
-          "dev": true
-        },
-        "ms": {
-          "version": "2.1.1",
-          "resolved": "https://registry.npmjs.org/ms/-/ms-2.1.1.tgz",
-          "integrity": "sha512-tgp+dl5cGk28utYktBsrFqA7HKgrhgPsg6Z/EfhWI4gl1Hwq8B/GmY/0oXZ6nF8hDVesS/FpnYaD/kOWhYQvyg==",
-          "dev": true
-        },
-        "to-fast-properties": {
-          "version": "2.0.0",
-          "resolved": "https://registry.npmjs.org/to-fast-properties/-/to-fast-properties-2.0.0.tgz",
-          "integrity": "sha1-3F5pjL0HkmW8c+A3doGk5Og/YW4=",
-          "dev": true
-        }
-      }
-    },
-    "@babel/helper-replace-supers": {
-      "version": "7.2.3",
-      "resolved": "https://registry.npmjs.org/@babel/helper-replace-supers/-/helper-replace-supers-7.2.3.tgz",
-      "integrity": "sha512-GyieIznGUfPXPWu0yLS6U55Mz67AZD9cUk0BfirOWlPrXlBcan9Gz+vHGz+cPfuoweZSnPzPIm67VtQM0OWZbA==",
-      "dev": true,
-      "requires": {
-        "@babel/helper-member-expression-to-functions": "^7.0.0",
-        "@babel/helper-optimise-call-expression": "^7.0.0",
-        "@babel/traverse": "^7.2.3",
-        "@babel/types": "^7.0.0"
-      },
-      "dependencies": {
-        "@babel/code-frame": {
-          "version": "7.0.0",
-          "resolved": "https://registry.npmjs.org/@babel/code-frame/-/code-frame-7.0.0.tgz",
-          "integrity": "sha512-OfC2uemaknXr87bdLUkWog7nYuliM9Ij5HUcajsVcMCpQrcLmtxRbVFTIqmcSkSeYRBFBRxs2FiUqFJDLdiebA==",
-          "dev": true,
-          "requires": {
-            "@babel/highlight": "^7.0.0"
-          }
-        },
-        "@babel/generator": {
-          "version": "7.2.2",
-          "resolved": "https://registry.npmjs.org/@babel/generator/-/generator-7.2.2.tgz",
-          "integrity": "sha512-I4o675J/iS8k+P38dvJ3IBGqObLXyQLTxtrR4u9cSUJOURvafeEWb/pFMOTwtNrmq73mJzyF6ueTbO1BtN0Zeg==",
-          "dev": true,
-          "requires": {
-            "@babel/types": "^7.2.2",
-            "jsesc": "^2.5.1",
-            "lodash": "^4.17.10",
-            "source-map": "^0.5.0",
-            "trim-right": "^1.0.1"
-          }
-        },
-        "@babel/helper-function-name": {
-          "version": "7.1.0",
-          "resolved": "https://registry.npmjs.org/@babel/helper-function-name/-/helper-function-name-7.1.0.tgz",
-          "integrity": "sha512-A95XEoCpb3TO+KZzJ4S/5uW5fNe26DjBGqf1o9ucyLyCmi1dXq/B3c8iaWTfBk3VvetUxl16e8tIrd5teOCfGw==",
-          "dev": true,
-          "requires": {
-            "@babel/helper-get-function-arity": "^7.0.0",
-            "@babel/template": "^7.1.0",
-            "@babel/types": "^7.0.0"
-          }
-        },
-        "@babel/helper-get-function-arity": {
-          "version": "7.0.0",
-          "resolved": "https://registry.npmjs.org/@babel/helper-get-function-arity/-/helper-get-function-arity-7.0.0.tgz",
-          "integrity": "sha512-r2DbJeg4svYvt3HOS74U4eWKsUAMRH01Z1ds1zx8KNTPtpTL5JAsdFv8BNyOpVqdFhHkkRDIg5B4AsxmkjAlmQ==",
-          "dev": true,
-          "requires": {
-            "@babel/types": "^7.0.0"
-          }
-        },
-        "@babel/helper-split-export-declaration": {
-          "version": "7.0.0",
-          "resolved": "https://registry.npmjs.org/@babel/helper-split-export-declaration/-/helper-split-export-declaration-7.0.0.tgz",
-          "integrity": "sha512-MXkOJqva62dfC0w85mEf/LucPPS/1+04nmmRMPEBUB++hiiThQ2zPtX/mEWQ3mtzCEjIJvPY8nuwxXtQeQwUag==",
-          "dev": true,
-          "requires": {
-            "@babel/types": "^7.0.0"
-          }
-        },
-        "@babel/highlight": {
-          "version": "7.0.0",
-          "resolved": "https://registry.npmjs.org/@babel/highlight/-/highlight-7.0.0.tgz",
-          "integrity": "sha512-UFMC4ZeFC48Tpvj7C8UgLvtkaUuovQX+5xNWrsIoMG8o2z+XFKjKaN9iVmS84dPwVN00W4wPmqvYoZF3EGAsfw==",
-          "dev": true,
-          "requires": {
-            "chalk": "^2.0.0",
-            "esutils": "^2.0.2",
-            "js-tokens": "^4.0.0"
-          }
-        },
-        "@babel/parser": {
-          "version": "7.2.3",
-          "resolved": "https://registry.npmjs.org/@babel/parser/-/parser-7.2.3.tgz",
-          "integrity": "sha512-0LyEcVlfCoFmci8mXx8A5oIkpkOgyo8dRHtxBnK9RRBwxO2+JZPNsqtVEZQ7mJFPxnXF9lfmU24mHOPI0qnlkA==",
-          "dev": true
-        },
-        "@babel/template": {
-          "version": "7.2.2",
-          "resolved": "https://registry.npmjs.org/@babel/template/-/template-7.2.2.tgz",
-          "integrity": "sha512-zRL0IMM02AUDwghf5LMSSDEz7sBCO2YnNmpg3uWTZj/v1rcG2BmQUvaGU8GhU8BvfMh1k2KIAYZ7Ji9KXPUg7g==",
-          "dev": true,
-          "requires": {
-            "@babel/code-frame": "^7.0.0",
-            "@babel/parser": "^7.2.2",
-            "@babel/types": "^7.2.2"
-          }
-        },
-        "@babel/traverse": {
-          "version": "7.2.3",
-          "resolved": "https://registry.npmjs.org/@babel/traverse/-/traverse-7.2.3.tgz",
-          "integrity": "sha512-Z31oUD/fJvEWVR0lNZtfgvVt512ForCTNKYcJBGbPb1QZfve4WGH8Wsy7+Mev33/45fhP/hwQtvgusNdcCMgSw==",
-          "dev": true,
-          "requires": {
-            "@babel/code-frame": "^7.0.0",
-            "@babel/generator": "^7.2.2",
-            "@babel/helper-function-name": "^7.1.0",
-            "@babel/helper-split-export-declaration": "^7.0.0",
-            "@babel/parser": "^7.2.3",
-            "@babel/types": "^7.2.2",
-            "debug": "^4.1.0",
-            "globals": "^11.1.0",
-            "lodash": "^4.17.10"
-          }
-        },
-        "@babel/types": {
-          "version": "7.2.2",
-          "resolved": "https://registry.npmjs.org/@babel/types/-/types-7.2.2.tgz",
-          "integrity": "sha512-fKCuD6UFUMkR541eDWL+2ih/xFZBXPOg/7EQFeTluMDebfqR4jrpaCjLhkWlQS4hT6nRa2PMEgXKbRB5/H2fpg==",
-          "dev": true,
-          "requires": {
-            "esutils": "^2.0.2",
-            "lodash": "^4.17.10",
-            "to-fast-properties": "^2.0.0"
-          }
-        },
-        "debug": {
-          "version": "4.1.1",
-          "resolved": "https://registry.npmjs.org/debug/-/debug-4.1.1.tgz",
-          "integrity": "sha512-pYAIzeRo8J6KPEaJ0VWOh5Pzkbw/RetuzehGM7QRRX5he4fPHx2rdKMB256ehJCkX+XRQm16eZLqLNS8RSZXZw==",
-          "dev": true,
-          "requires": {
-            "ms": "^2.1.1"
-          }
-        },
-        "globals": {
-          "version": "11.9.0",
-          "resolved": "https://registry.npmjs.org/globals/-/globals-11.9.0.tgz",
-          "integrity": "sha512-5cJVtyXWH8PiJPVLZzzoIizXx944O4OmRro5MWKx5fT4MgcN7OfaMutPeaTdJCCURwbWdhhcCWcKIffPnmTzBg==",
-          "dev": true
-        },
-        "js-tokens": {
-          "version": "4.0.0",
-          "resolved": "https://registry.npmjs.org/js-tokens/-/js-tokens-4.0.0.tgz",
-          "integrity": "sha512-RdJUflcE3cUzKiMqQgsCu06FPu9UdIJO0beYbPhHN4k6apgJtifcoCtT9bcxOpYBtpD2kCM6Sbzg4CausW/PKQ==",
-          "dev": true
-        },
-        "jsesc": {
-          "version": "2.5.2",
-          "resolved": "https://registry.npmjs.org/jsesc/-/jsesc-2.5.2.tgz",
-          "integrity": "sha512-OYu7XEzjkCQ3C5Ps3QIZsQfNpqoJyZZA99wd9aWd05NCtC5pWOkShK2mkL6HXQR6/Cy2lbNdPlZBpuQHXE63gA==",
-          "dev": true
-        },
-        "lodash": {
-          "version": "4.17.11",
-          "resolved": "https://registry.npmjs.org/lodash/-/lodash-4.17.11.tgz",
-          "integrity": "sha512-cQKh8igo5QUhZ7lg38DYWAxMvjSAKG0A8wGSVimP07SIUEK2UO+arSRKbRZWtelMtN5V0Hkwh5ryOto/SshYIg==",
-          "dev": true
-        },
-        "ms": {
-          "version": "2.1.1",
-          "resolved": "https://registry.npmjs.org/ms/-/ms-2.1.1.tgz",
-          "integrity": "sha512-tgp+dl5cGk28utYktBsrFqA7HKgrhgPsg6Z/EfhWI4gl1Hwq8B/GmY/0oXZ6nF8hDVesS/FpnYaD/kOWhYQvyg==",
-          "dev": true
-        },
-        "to-fast-properties": {
-          "version": "2.0.0",
-          "resolved": "https://registry.npmjs.org/to-fast-properties/-/to-fast-properties-2.0.0.tgz",
-          "integrity": "sha1-3F5pjL0HkmW8c+A3doGk5Og/YW4=",
-          "dev": true
-        }
-      }
-    },
-    "@babel/helper-simple-access": {
-      "version": "7.1.0",
-      "resolved": "https://registry.npmjs.org/@babel/helper-simple-access/-/helper-simple-access-7.1.0.tgz",
-      "integrity": "sha512-Vk+78hNjRbsiu49zAPALxTb+JUQCz1aolpd8osOF16BGnLtseD21nbHgLPGUwrXEurZgiCOUmvs3ExTu4F5x6w==",
-      "dev": true,
-      "requires": {
-        "@babel/template": "^7.1.0",
-        "@babel/types": "^7.0.0"
-      },
-      "dependencies": {
-        "@babel/code-frame": {
-          "version": "7.0.0",
-          "resolved": "https://registry.npmjs.org/@babel/code-frame/-/code-frame-7.0.0.tgz",
-          "integrity": "sha512-OfC2uemaknXr87bdLUkWog7nYuliM9Ij5HUcajsVcMCpQrcLmtxRbVFTIqmcSkSeYRBFBRxs2FiUqFJDLdiebA==",
-          "dev": true,
-          "requires": {
-            "@babel/highlight": "^7.0.0"
-          }
-        },
-        "@babel/highlight": {
-          "version": "7.0.0",
-          "resolved": "https://registry.npmjs.org/@babel/highlight/-/highlight-7.0.0.tgz",
-          "integrity": "sha512-UFMC4ZeFC48Tpvj7C8UgLvtkaUuovQX+5xNWrsIoMG8o2z+XFKjKaN9iVmS84dPwVN00W4wPmqvYoZF3EGAsfw==",
-          "dev": true,
-          "requires": {
-            "chalk": "^2.0.0",
-            "esutils": "^2.0.2",
-            "js-tokens": "^4.0.0"
-          }
-        },
-        "@babel/parser": {
-          "version": "7.2.3",
-          "resolved": "https://registry.npmjs.org/@babel/parser/-/parser-7.2.3.tgz",
-          "integrity": "sha512-0LyEcVlfCoFmci8mXx8A5oIkpkOgyo8dRHtxBnK9RRBwxO2+JZPNsqtVEZQ7mJFPxnXF9lfmU24mHOPI0qnlkA==",
-          "dev": true
-        },
-        "@babel/template": {
-          "version": "7.2.2",
-          "resolved": "https://registry.npmjs.org/@babel/template/-/template-7.2.2.tgz",
-          "integrity": "sha512-zRL0IMM02AUDwghf5LMSSDEz7sBCO2YnNmpg3uWTZj/v1rcG2BmQUvaGU8GhU8BvfMh1k2KIAYZ7Ji9KXPUg7g==",
-          "dev": true,
-          "requires": {
-            "@babel/code-frame": "^7.0.0",
-            "@babel/parser": "^7.2.2",
-            "@babel/types": "^7.2.2"
-          }
-        },
-        "@babel/types": {
-          "version": "7.2.2",
-          "resolved": "https://registry.npmjs.org/@babel/types/-/types-7.2.2.tgz",
-          "integrity": "sha512-fKCuD6UFUMkR541eDWL+2ih/xFZBXPOg/7EQFeTluMDebfqR4jrpaCjLhkWlQS4hT6nRa2PMEgXKbRB5/H2fpg==",
-          "dev": true,
-          "requires": {
-            "esutils": "^2.0.2",
-            "lodash": "^4.17.10",
-            "to-fast-properties": "^2.0.0"
-          }
-        },
-        "js-tokens": {
-          "version": "4.0.0",
-          "resolved": "https://registry.npmjs.org/js-tokens/-/js-tokens-4.0.0.tgz",
-          "integrity": "sha512-RdJUflcE3cUzKiMqQgsCu06FPu9UdIJO0beYbPhHN4k6apgJtifcoCtT9bcxOpYBtpD2kCM6Sbzg4CausW/PKQ==",
-          "dev": true
-        },
-        "lodash": {
-          "version": "4.17.11",
-          "resolved": "https://registry.npmjs.org/lodash/-/lodash-4.17.11.tgz",
-          "integrity": "sha512-cQKh8igo5QUhZ7lg38DYWAxMvjSAKG0A8wGSVimP07SIUEK2UO+arSRKbRZWtelMtN5V0Hkwh5ryOto/SshYIg==",
-          "dev": true
-        },
-        "to-fast-properties": {
-          "version": "2.0.0",
-          "resolved": "https://registry.npmjs.org/to-fast-properties/-/to-fast-properties-2.0.0.tgz",
-          "integrity": "sha1-3F5pjL0HkmW8c+A3doGk5Og/YW4=",
-          "dev": true
-        }
-      }
-    },
-    "@babel/helper-split-export-declaration": {
-      "version": "7.0.0-beta.51",
-      "resolved": "https://registry.npmjs.org/@babel/helper-split-export-declaration/-/helper-split-export-declaration-7.0.0-beta.51.tgz",
-      "integrity": "sha1-imw/ZsTSZTUvwHdIT59ugKUauXg=",
-      "requires": {
-        "@babel/types": "7.0.0-beta.51"
-      }
-    },
-    "@babel/helper-wrap-function": {
-      "version": "7.2.0",
-      "resolved": "https://registry.npmjs.org/@babel/helper-wrap-function/-/helper-wrap-function-7.2.0.tgz",
-      "integrity": "sha512-o9fP1BZLLSrYlxYEYyl2aS+Flun5gtjTIG8iln+XuEzQTs0PLagAGSXUcqruJwD5fM48jzIEggCKpIfWTcR7pQ==",
-      "dev": true,
-      "requires": {
-        "@babel/helper-function-name": "^7.1.0",
-        "@babel/template": "^7.1.0",
-        "@babel/traverse": "^7.1.0",
-        "@babel/types": "^7.2.0"
-      },
-      "dependencies": {
-        "@babel/code-frame": {
-          "version": "7.0.0",
-          "resolved": "https://registry.npmjs.org/@babel/code-frame/-/code-frame-7.0.0.tgz",
-          "integrity": "sha512-OfC2uemaknXr87bdLUkWog7nYuliM9Ij5HUcajsVcMCpQrcLmtxRbVFTIqmcSkSeYRBFBRxs2FiUqFJDLdiebA==",
-          "dev": true,
-          "requires": {
-            "@babel/highlight": "^7.0.0"
-          }
-        },
-        "@babel/generator": {
-          "version": "7.2.2",
-          "resolved": "https://registry.npmjs.org/@babel/generator/-/generator-7.2.2.tgz",
-          "integrity": "sha512-I4o675J/iS8k+P38dvJ3IBGqObLXyQLTxtrR4u9cSUJOURvafeEWb/pFMOTwtNrmq73mJzyF6ueTbO1BtN0Zeg==",
-          "dev": true,
-          "requires": {
-            "@babel/types": "^7.2.2",
-            "jsesc": "^2.5.1",
-            "lodash": "^4.17.10",
-            "source-map": "^0.5.0",
-            "trim-right": "^1.0.1"
-          }
-        },
-        "@babel/helper-function-name": {
-          "version": "7.1.0",
-          "resolved": "https://registry.npmjs.org/@babel/helper-function-name/-/helper-function-name-7.1.0.tgz",
-          "integrity": "sha512-A95XEoCpb3TO+KZzJ4S/5uW5fNe26DjBGqf1o9ucyLyCmi1dXq/B3c8iaWTfBk3VvetUxl16e8tIrd5teOCfGw==",
-          "dev": true,
-          "requires": {
-            "@babel/helper-get-function-arity": "^7.0.0",
-            "@babel/template": "^7.1.0",
-            "@babel/types": "^7.0.0"
-          }
-        },
-        "@babel/helper-get-function-arity": {
-          "version": "7.0.0",
-          "resolved": "https://registry.npmjs.org/@babel/helper-get-function-arity/-/helper-get-function-arity-7.0.0.tgz",
-          "integrity": "sha512-r2DbJeg4svYvt3HOS74U4eWKsUAMRH01Z1ds1zx8KNTPtpTL5JAsdFv8BNyOpVqdFhHkkRDIg5B4AsxmkjAlmQ==",
-          "dev": true,
-          "requires": {
-            "@babel/types": "^7.0.0"
-          }
-        },
-        "@babel/helper-split-export-declaration": {
-          "version": "7.0.0",
-          "resolved": "https://registry.npmjs.org/@babel/helper-split-export-declaration/-/helper-split-export-declaration-7.0.0.tgz",
-          "integrity": "sha512-MXkOJqva62dfC0w85mEf/LucPPS/1+04nmmRMPEBUB++hiiThQ2zPtX/mEWQ3mtzCEjIJvPY8nuwxXtQeQwUag==",
-          "dev": true,
-          "requires": {
-            "@babel/types": "^7.0.0"
-          }
-        },
-        "@babel/highlight": {
-          "version": "7.0.0",
-          "resolved": "https://registry.npmjs.org/@babel/highlight/-/highlight-7.0.0.tgz",
-          "integrity": "sha512-UFMC4ZeFC48Tpvj7C8UgLvtkaUuovQX+5xNWrsIoMG8o2z+XFKjKaN9iVmS84dPwVN00W4wPmqvYoZF3EGAsfw==",
-          "dev": true,
-          "requires": {
-            "chalk": "^2.0.0",
-            "esutils": "^2.0.2",
-            "js-tokens": "^4.0.0"
-          }
-        },
-        "@babel/parser": {
-          "version": "7.2.3",
-          "resolved": "https://registry.npmjs.org/@babel/parser/-/parser-7.2.3.tgz",
-          "integrity": "sha512-0LyEcVlfCoFmci8mXx8A5oIkpkOgyo8dRHtxBnK9RRBwxO2+JZPNsqtVEZQ7mJFPxnXF9lfmU24mHOPI0qnlkA==",
-          "dev": true
-        },
-        "@babel/template": {
-          "version": "7.2.2",
-          "resolved": "https://registry.npmjs.org/@babel/template/-/template-7.2.2.tgz",
-          "integrity": "sha512-zRL0IMM02AUDwghf5LMSSDEz7sBCO2YnNmpg3uWTZj/v1rcG2BmQUvaGU8GhU8BvfMh1k2KIAYZ7Ji9KXPUg7g==",
-          "dev": true,
-          "requires": {
-            "@babel/code-frame": "^7.0.0",
-            "@babel/parser": "^7.2.2",
-            "@babel/types": "^7.2.2"
-          }
-        },
-        "@babel/traverse": {
-          "version": "7.2.3",
-          "resolved": "https://registry.npmjs.org/@babel/traverse/-/traverse-7.2.3.tgz",
-          "integrity": "sha512-Z31oUD/fJvEWVR0lNZtfgvVt512ForCTNKYcJBGbPb1QZfve4WGH8Wsy7+Mev33/45fhP/hwQtvgusNdcCMgSw==",
-          "dev": true,
-          "requires": {
-            "@babel/code-frame": "^7.0.0",
-            "@babel/generator": "^7.2.2",
-            "@babel/helper-function-name": "^7.1.0",
-            "@babel/helper-split-export-declaration": "^7.0.0",
-            "@babel/parser": "^7.2.3",
-            "@babel/types": "^7.2.2",
-            "debug": "^4.1.0",
-            "globals": "^11.1.0",
-            "lodash": "^4.17.10"
-          }
-        },
-        "@babel/types": {
-          "version": "7.2.2",
-          "resolved": "https://registry.npmjs.org/@babel/types/-/types-7.2.2.tgz",
-          "integrity": "sha512-fKCuD6UFUMkR541eDWL+2ih/xFZBXPOg/7EQFeTluMDebfqR4jrpaCjLhkWlQS4hT6nRa2PMEgXKbRB5/H2fpg==",
-          "dev": true,
-          "requires": {
-            "esutils": "^2.0.2",
-            "lodash": "^4.17.10",
-            "to-fast-properties": "^2.0.0"
-          }
-        },
-        "debug": {
-          "version": "4.1.1",
-          "resolved": "https://registry.npmjs.org/debug/-/debug-4.1.1.tgz",
-          "integrity": "sha512-pYAIzeRo8J6KPEaJ0VWOh5Pzkbw/RetuzehGM7QRRX5he4fPHx2rdKMB256ehJCkX+XRQm16eZLqLNS8RSZXZw==",
-          "dev": true,
-          "requires": {
-            "ms": "^2.1.1"
-          }
-        },
-        "globals": {
-          "version": "11.9.0",
-          "resolved": "https://registry.npmjs.org/globals/-/globals-11.9.0.tgz",
-          "integrity": "sha512-5cJVtyXWH8PiJPVLZzzoIizXx944O4OmRro5MWKx5fT4MgcN7OfaMutPeaTdJCCURwbWdhhcCWcKIffPnmTzBg==",
-          "dev": true
-        },
-        "js-tokens": {
-          "version": "4.0.0",
-          "resolved": "https://registry.npmjs.org/js-tokens/-/js-tokens-4.0.0.tgz",
-          "integrity": "sha512-RdJUflcE3cUzKiMqQgsCu06FPu9UdIJO0beYbPhHN4k6apgJtifcoCtT9bcxOpYBtpD2kCM6Sbzg4CausW/PKQ==",
-          "dev": true
-        },
-        "jsesc": {
-          "version": "2.5.2",
-          "resolved": "https://registry.npmjs.org/jsesc/-/jsesc-2.5.2.tgz",
-          "integrity": "sha512-OYu7XEzjkCQ3C5Ps3QIZsQfNpqoJyZZA99wd9aWd05NCtC5pWOkShK2mkL6HXQR6/Cy2lbNdPlZBpuQHXE63gA==",
-          "dev": true
-        },
-        "lodash": {
-          "version": "4.17.11",
-          "resolved": "https://registry.npmjs.org/lodash/-/lodash-4.17.11.tgz",
-          "integrity": "sha512-cQKh8igo5QUhZ7lg38DYWAxMvjSAKG0A8wGSVimP07SIUEK2UO+arSRKbRZWtelMtN5V0Hkwh5ryOto/SshYIg==",
-          "dev": true
-        },
-        "ms": {
-          "version": "2.1.1",
-          "resolved": "https://registry.npmjs.org/ms/-/ms-2.1.1.tgz",
-          "integrity": "sha512-tgp+dl5cGk28utYktBsrFqA7HKgrhgPsg6Z/EfhWI4gl1Hwq8B/GmY/0oXZ6nF8hDVesS/FpnYaD/kOWhYQvyg==",
-          "dev": true
-        },
-        "to-fast-properties": {
-          "version": "2.0.0",
-          "resolved": "https://registry.npmjs.org/to-fast-properties/-/to-fast-properties-2.0.0.tgz",
-          "integrity": "sha1-3F5pjL0HkmW8c+A3doGk5Og/YW4=",
-          "dev": true
-        }
-      }
-    },
-    "@babel/helpers": {
-      "version": "7.3.1",
-      "resolved": "https://registry.npmjs.org/@babel/helpers/-/helpers-7.3.1.tgz",
-      "integrity": "sha512-Q82R3jKsVpUV99mgX50gOPCWwco9Ec5Iln/8Vyu4osNIOQgSrd9RFrQeUvmvddFNoLwMyOUWU+5ckioEKpDoGA==",
-      "dev": true,
-      "requires": {
-        "@babel/template": "^7.1.2",
-        "@babel/traverse": "^7.1.5",
-        "@babel/types": "^7.3.0"
-      },
-      "dependencies": {
-        "@babel/code-frame": {
-          "version": "7.0.0",
-          "resolved": "https://registry.npmjs.org/@babel/code-frame/-/code-frame-7.0.0.tgz",
-          "integrity": "sha512-OfC2uemaknXr87bdLUkWog7nYuliM9Ij5HUcajsVcMCpQrcLmtxRbVFTIqmcSkSeYRBFBRxs2FiUqFJDLdiebA==",
-          "dev": true,
-          "requires": {
-            "@babel/highlight": "^7.0.0"
-          }
-        },
-        "@babel/generator": {
-          "version": "7.3.3",
-          "resolved": "https://registry.npmjs.org/@babel/generator/-/generator-7.3.3.tgz",
-          "integrity": "sha512-aEADYwRRZjJyMnKN7llGIlircxTCofm3dtV5pmY6ob18MSIuipHpA2yZWkPlycwu5HJcx/pADS3zssd8eY7/6A==",
-          "dev": true,
-          "requires": {
-            "@babel/types": "^7.3.3",
-            "jsesc": "^2.5.1",
-            "lodash": "^4.17.11",
-            "source-map": "^0.5.0",
-            "trim-right": "^1.0.1"
-          }
-        },
-        "@babel/helper-function-name": {
-          "version": "7.1.0",
-          "resolved": "https://registry.npmjs.org/@babel/helper-function-name/-/helper-function-name-7.1.0.tgz",
-          "integrity": "sha512-A95XEoCpb3TO+KZzJ4S/5uW5fNe26DjBGqf1o9ucyLyCmi1dXq/B3c8iaWTfBk3VvetUxl16e8tIrd5teOCfGw==",
-          "dev": true,
-          "requires": {
-            "@babel/helper-get-function-arity": "^7.0.0",
-            "@babel/template": "^7.1.0",
-            "@babel/types": "^7.0.0"
-          }
-        },
-        "@babel/helper-get-function-arity": {
-          "version": "7.0.0",
-          "resolved": "https://registry.npmjs.org/@babel/helper-get-function-arity/-/helper-get-function-arity-7.0.0.tgz",
-          "integrity": "sha512-r2DbJeg4svYvt3HOS74U4eWKsUAMRH01Z1ds1zx8KNTPtpTL5JAsdFv8BNyOpVqdFhHkkRDIg5B4AsxmkjAlmQ==",
-          "dev": true,
-          "requires": {
-            "@babel/types": "^7.0.0"
-          }
-        },
-        "@babel/helper-split-export-declaration": {
-          "version": "7.0.0",
-          "resolved": "https://registry.npmjs.org/@babel/helper-split-export-declaration/-/helper-split-export-declaration-7.0.0.tgz",
-          "integrity": "sha512-MXkOJqva62dfC0w85mEf/LucPPS/1+04nmmRMPEBUB++hiiThQ2zPtX/mEWQ3mtzCEjIJvPY8nuwxXtQeQwUag==",
-          "dev": true,
-          "requires": {
-            "@babel/types": "^7.0.0"
-          }
-        },
-        "@babel/highlight": {
-          "version": "7.0.0",
-          "resolved": "https://registry.npmjs.org/@babel/highlight/-/highlight-7.0.0.tgz",
-          "integrity": "sha512-UFMC4ZeFC48Tpvj7C8UgLvtkaUuovQX+5xNWrsIoMG8o2z+XFKjKaN9iVmS84dPwVN00W4wPmqvYoZF3EGAsfw==",
-          "dev": true,
-          "requires": {
-            "chalk": "^2.0.0",
-            "esutils": "^2.0.2",
-            "js-tokens": "^4.0.0"
-          }
-        },
-        "@babel/parser": {
-          "version": "7.3.3",
-          "resolved": "https://registry.npmjs.org/@babel/parser/-/parser-7.3.3.tgz",
-          "integrity": "sha512-xsH1CJoln2r74hR+y7cg2B5JCPaTh+Hd+EbBRk9nWGSNspuo6krjhX0Om6RnRQuIvFq8wVXCLKH3kwKDYhanSg==",
-          "dev": true
-        },
-        "@babel/template": {
-          "version": "7.2.2",
-          "resolved": "https://registry.npmjs.org/@babel/template/-/template-7.2.2.tgz",
-          "integrity": "sha512-zRL0IMM02AUDwghf5LMSSDEz7sBCO2YnNmpg3uWTZj/v1rcG2BmQUvaGU8GhU8BvfMh1k2KIAYZ7Ji9KXPUg7g==",
-          "dev": true,
-          "requires": {
-            "@babel/code-frame": "^7.0.0",
-            "@babel/parser": "^7.2.2",
-            "@babel/types": "^7.2.2"
-          }
-        },
-        "@babel/traverse": {
-          "version": "7.2.3",
-          "resolved": "https://registry.npmjs.org/@babel/traverse/-/traverse-7.2.3.tgz",
-          "integrity": "sha512-Z31oUD/fJvEWVR0lNZtfgvVt512ForCTNKYcJBGbPb1QZfve4WGH8Wsy7+Mev33/45fhP/hwQtvgusNdcCMgSw==",
-          "dev": true,
-          "requires": {
-            "@babel/code-frame": "^7.0.0",
-            "@babel/generator": "^7.2.2",
-            "@babel/helper-function-name": "^7.1.0",
-            "@babel/helper-split-export-declaration": "^7.0.0",
-            "@babel/parser": "^7.2.3",
-            "@babel/types": "^7.2.2",
-            "debug": "^4.1.0",
-            "globals": "^11.1.0",
-            "lodash": "^4.17.10"
-          }
-        },
-        "@babel/types": {
-          "version": "7.3.3",
-          "resolved": "https://registry.npmjs.org/@babel/types/-/types-7.3.3.tgz",
-          "integrity": "sha512-2tACZ80Wg09UnPg5uGAOUvvInaqLk3l/IAhQzlxLQOIXacr6bMsra5SH6AWw/hIDRCSbCdHP2KzSOD+cT7TzMQ==",
-          "dev": true,
-          "requires": {
-            "esutils": "^2.0.2",
-            "lodash": "^4.17.11",
-            "to-fast-properties": "^2.0.0"
-          }
-        },
-        "debug": {
-          "version": "4.1.1",
-          "resolved": "https://registry.npmjs.org/debug/-/debug-4.1.1.tgz",
-          "integrity": "sha512-pYAIzeRo8J6KPEaJ0VWOh5Pzkbw/RetuzehGM7QRRX5he4fPHx2rdKMB256ehJCkX+XRQm16eZLqLNS8RSZXZw==",
-          "dev": true,
-          "requires": {
-            "ms": "^2.1.1"
-          }
-        },
-        "globals": {
-          "version": "11.11.0",
-          "resolved": "https://registry.npmjs.org/globals/-/globals-11.11.0.tgz",
-          "integrity": "sha512-WHq43gS+6ufNOEqlrDBxVEbb8ntfXrfAUU2ZOpCxrBdGKW3gyv8mCxAfIBD0DroPKGrJ2eSsXsLtY9MPntsyTw==",
-          "dev": true
-        },
-        "js-tokens": {
-          "version": "4.0.0",
-          "resolved": "https://registry.npmjs.org/js-tokens/-/js-tokens-4.0.0.tgz",
-          "integrity": "sha512-RdJUflcE3cUzKiMqQgsCu06FPu9UdIJO0beYbPhHN4k6apgJtifcoCtT9bcxOpYBtpD2kCM6Sbzg4CausW/PKQ==",
-          "dev": true
-        },
-        "jsesc": {
-          "version": "2.5.2",
-          "resolved": "https://registry.npmjs.org/jsesc/-/jsesc-2.5.2.tgz",
-          "integrity": "sha512-OYu7XEzjkCQ3C5Ps3QIZsQfNpqoJyZZA99wd9aWd05NCtC5pWOkShK2mkL6HXQR6/Cy2lbNdPlZBpuQHXE63gA==",
-          "dev": true
-        },
-        "lodash": {
-          "version": "4.17.11",
-          "resolved": "https://registry.npmjs.org/lodash/-/lodash-4.17.11.tgz",
-          "integrity": "sha512-cQKh8igo5QUhZ7lg38DYWAxMvjSAKG0A8wGSVimP07SIUEK2UO+arSRKbRZWtelMtN5V0Hkwh5ryOto/SshYIg==",
-          "dev": true
-        },
-        "ms": {
-          "version": "2.1.1",
-          "resolved": "https://registry.npmjs.org/ms/-/ms-2.1.1.tgz",
-          "integrity": "sha512-tgp+dl5cGk28utYktBsrFqA7HKgrhgPsg6Z/EfhWI4gl1Hwq8B/GmY/0oXZ6nF8hDVesS/FpnYaD/kOWhYQvyg==",
-          "dev": true
-        },
-        "to-fast-properties": {
-          "version": "2.0.0",
-          "resolved": "https://registry.npmjs.org/to-fast-properties/-/to-fast-properties-2.0.0.tgz",
-          "integrity": "sha1-3F5pjL0HkmW8c+A3doGk5Og/YW4=",
-          "dev": true
-        }
-      }
-    },
-    "@babel/highlight": {
-      "version": "7.0.0-beta.51",
-      "resolved": "https://registry.npmjs.org/@babel/highlight/-/highlight-7.0.0-beta.51.tgz",
-      "integrity": "sha1-6IRK4loVlcz9QriWI7Q3bKBtIl0=",
-      "requires": {
-        "chalk": "^2.0.0",
-        "esutils": "^2.0.2",
-        "js-tokens": "^3.0.0"
-      }
-    },
-    "@babel/parser": {
-      "version": "7.0.0-beta.51",
-      "resolved": "https://registry.npmjs.org/@babel/parser/-/parser-7.0.0-beta.51.tgz",
-      "integrity": "sha1-J87C30Cd9gr1gnDtj2qlVAnqhvY="
-    },
-    "@babel/plugin-proposal-async-generator-functions": {
-      "version": "7.2.0",
-      "resolved": "https://registry.npmjs.org/@babel/plugin-proposal-async-generator-functions/-/plugin-proposal-async-generator-functions-7.2.0.tgz",
-      "integrity": "sha512-+Dfo/SCQqrwx48ptLVGLdE39YtWRuKc/Y9I5Fy0P1DDBB9lsAHpjcEJQt+4IifuSOSTLBKJObJqMvaO1pIE8LQ==",
-      "dev": true,
-      "requires": {
-        "@babel/helper-plugin-utils": "^7.0.0",
-        "@babel/helper-remap-async-to-generator": "^7.1.0",
-        "@babel/plugin-syntax-async-generators": "^7.2.0"
-      }
-    },
-    "@babel/plugin-proposal-json-strings": {
-      "version": "7.2.0",
-      "resolved": "https://registry.npmjs.org/@babel/plugin-proposal-json-strings/-/plugin-proposal-json-strings-7.2.0.tgz",
-      "integrity": "sha512-MAFV1CA/YVmYwZG0fBQyXhmj0BHCB5egZHCKWIFVv/XCxAeVGIHfos3SwDck4LvCllENIAg7xMKOG5kH0dzyUg==",
-      "dev": true,
-      "requires": {
-        "@babel/helper-plugin-utils": "^7.0.0",
-        "@babel/plugin-syntax-json-strings": "^7.2.0"
-      }
-    },
-    "@babel/plugin-proposal-object-rest-spread": {
-      "version": "7.2.0",
-      "resolved": "https://registry.npmjs.org/@babel/plugin-proposal-object-rest-spread/-/plugin-proposal-object-rest-spread-7.2.0.tgz",
-      "integrity": "sha512-1L5mWLSvR76XYUQJXkd/EEQgjq8HHRP6lQuZTTg0VA4tTGPpGemmCdAfQIz1rzEuWAm+ecP8PyyEm30jC1eQCg==",
-      "dev": true,
-      "requires": {
-        "@babel/helper-plugin-utils": "^7.0.0",
-        "@babel/plugin-syntax-object-rest-spread": "^7.2.0"
-      }
-    },
-    "@babel/plugin-proposal-optional-catch-binding": {
-      "version": "7.2.0",
-      "resolved": "https://registry.npmjs.org/@babel/plugin-proposal-optional-catch-binding/-/plugin-proposal-optional-catch-binding-7.2.0.tgz",
-      "integrity": "sha512-mgYj3jCcxug6KUcX4OBoOJz3CMrwRfQELPQ5560F70YQUBZB7uac9fqaWamKR1iWUzGiK2t0ygzjTScZnVz75g==",
-      "dev": true,
-      "requires": {
-        "@babel/helper-plugin-utils": "^7.0.0",
-        "@babel/plugin-syntax-optional-catch-binding": "^7.2.0"
-      }
-    },
-    "@babel/plugin-proposal-unicode-property-regex": {
-      "version": "7.2.0",
-      "resolved": "https://registry.npmjs.org/@babel/plugin-proposal-unicode-property-regex/-/plugin-proposal-unicode-property-regex-7.2.0.tgz",
-      "integrity": "sha512-LvRVYb7kikuOtIoUeWTkOxQEV1kYvL5B6U3iWEGCzPNRus1MzJweFqORTj+0jkxozkTSYNJozPOddxmqdqsRpw==",
-      "dev": true,
-      "requires": {
-        "@babel/helper-plugin-utils": "^7.0.0",
-        "@babel/helper-regex": "^7.0.0",
-        "regexpu-core": "^4.2.0"
-      },
-      "dependencies": {
-        "jsesc": {
-          "version": "0.5.0",
-          "resolved": "http://registry.npmjs.org/jsesc/-/jsesc-0.5.0.tgz",
-          "integrity": "sha1-597mbjXW/Bb3EP6R1c9p9w8IkR0=",
-          "dev": true
-        },
-        "regenerate": {
-          "version": "1.4.0",
-          "resolved": "https://registry.npmjs.org/regenerate/-/regenerate-1.4.0.tgz",
-          "integrity": "sha512-1G6jJVDWrt0rK99kBjvEtziZNCICAuvIPkSiUFIQxVP06RCVpq3dmDo2oi6ABpYaDYaTRr67BEhL8r1wgEZZKg==",
-          "dev": true
-        },
-        "regexpu-core": {
-          "version": "4.4.0",
-          "resolved": "https://registry.npmjs.org/regexpu-core/-/regexpu-core-4.4.0.tgz",
-          "integrity": "sha512-eDDWElbwwI3K0Lo6CqbQbA6FwgtCz4kYTarrri1okfkRLZAqstU+B3voZBCjg8Fl6iq0gXrJG6MvRgLthfvgOA==",
-          "dev": true,
-          "requires": {
-            "regenerate": "^1.4.0",
-            "regenerate-unicode-properties": "^7.0.0",
-            "regjsgen": "^0.5.0",
-            "regjsparser": "^0.6.0",
-            "unicode-match-property-ecmascript": "^1.0.4",
-            "unicode-match-property-value-ecmascript": "^1.0.2"
-          }
-        },
-        "regjsgen": {
-          "version": "0.5.0",
-          "resolved": "https://registry.npmjs.org/regjsgen/-/regjsgen-0.5.0.tgz",
-          "integrity": "sha512-RnIrLhrXCX5ow/E5/Mh2O4e/oa1/jW0eaBKTSy3LaCj+M3Bqvm97GWDp2yUtzIs4LEn65zR2yiYGFqb2ApnzDA==",
-          "dev": true
-        },
-        "regjsparser": {
-          "version": "0.6.0",
-          "resolved": "https://registry.npmjs.org/regjsparser/-/regjsparser-0.6.0.tgz",
-          "integrity": "sha512-RQ7YyokLiQBomUJuUG8iGVvkgOLxwyZM8k6d3q5SAXpg4r5TZJZigKFvC6PpD+qQ98bCDC5YelPeA3EucDoNeQ==",
-          "dev": true,
-          "requires": {
-            "jsesc": "~0.5.0"
-          }
-        }
-      }
-    },
-    "@babel/plugin-syntax-async-generators": {
-      "version": "7.2.0",
-      "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-async-generators/-/plugin-syntax-async-generators-7.2.0.tgz",
-      "integrity": "sha512-1ZrIRBv2t0GSlcwVoQ6VgSLpLgiN/FVQUzt9znxo7v2Ov4jJrs8RY8tv0wvDmFN3qIdMKWrmMMW6yZ0G19MfGg==",
-      "dev": true,
-      "requires": {
-        "@babel/helper-plugin-utils": "^7.0.0"
-      }
-    },
-    "@babel/plugin-syntax-json-strings": {
-      "version": "7.2.0",
-      "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-json-strings/-/plugin-syntax-json-strings-7.2.0.tgz",
-      "integrity": "sha512-5UGYnMSLRE1dqqZwug+1LISpA403HzlSfsg6P9VXU6TBjcSHeNlw4DxDx7LgpF+iKZoOG/+uzqoRHTdcUpiZNg==",
-      "dev": true,
-      "requires": {
-        "@babel/helper-plugin-utils": "^7.0.0"
-      }
-    },
-    "@babel/plugin-syntax-object-rest-spread": {
-      "version": "7.2.0",
-      "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-object-rest-spread/-/plugin-syntax-object-rest-spread-7.2.0.tgz",
-      "integrity": "sha512-t0JKGgqk2We+9may3t0xDdmneaXmyxq0xieYcKHxIsrJO64n1OiMWNUtc5gQK1PA0NpdCRrtZp4z+IUaKugrSA==",
-      "dev": true,
-      "requires": {
-        "@babel/helper-plugin-utils": "^7.0.0"
-      }
-    },
-    "@babel/plugin-syntax-optional-catch-binding": {
-      "version": "7.2.0",
-      "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-optional-catch-binding/-/plugin-syntax-optional-catch-binding-7.2.0.tgz",
-      "integrity": "sha512-bDe4xKNhb0LI7IvZHiA13kff0KEfaGX/Hv4lMA9+7TEc63hMNvfKo6ZFpXhKuEp+II/q35Gc4NoMeDZyaUbj9w==",
-      "dev": true,
-      "requires": {
-        "@babel/helper-plugin-utils": "^7.0.0"
-      }
-    },
-    "@babel/plugin-transform-arrow-functions": {
-      "version": "7.2.0",
-      "resolved": "https://registry.npmjs.org/@babel/plugin-transform-arrow-functions/-/plugin-transform-arrow-functions-7.2.0.tgz",
-      "integrity": "sha512-ER77Cax1+8/8jCB9fo4Ud161OZzWN5qawi4GusDuRLcDbDG+bIGYY20zb2dfAFdTRGzrfq2xZPvF0R64EHnimg==",
-      "dev": true,
-      "requires": {
-        "@babel/helper-plugin-utils": "^7.0.0"
-      }
-    },
-    "@babel/plugin-transform-async-to-generator": {
-      "version": "7.2.0",
-      "resolved": "https://registry.npmjs.org/@babel/plugin-transform-async-to-generator/-/plugin-transform-async-to-generator-7.2.0.tgz",
-      "integrity": "sha512-CEHzg4g5UraReozI9D4fblBYABs7IM6UerAVG7EJVrTLC5keh00aEuLUT+O40+mJCEzaXkYfTCUKIyeDfMOFFQ==",
-      "dev": true,
-      "requires": {
-        "@babel/helper-module-imports": "^7.0.0",
-        "@babel/helper-plugin-utils": "^7.0.0",
-        "@babel/helper-remap-async-to-generator": "^7.1.0"
-      }
-    },
-    "@babel/plugin-transform-block-scoped-functions": {
-      "version": "7.2.0",
-      "resolved": "https://registry.npmjs.org/@babel/plugin-transform-block-scoped-functions/-/plugin-transform-block-scoped-functions-7.2.0.tgz",
-      "integrity": "sha512-ntQPR6q1/NKuphly49+QiQiTN0O63uOwjdD6dhIjSWBI5xlrbUFh720TIpzBhpnrLfv2tNH/BXvLIab1+BAI0w==",
-      "dev": true,
-      "requires": {
-        "@babel/helper-plugin-utils": "^7.0.0"
-      }
-    },
-    "@babel/plugin-transform-block-scoping": {
-      "version": "7.2.0",
-      "resolved": "https://registry.npmjs.org/@babel/plugin-transform-block-scoping/-/plugin-transform-block-scoping-7.2.0.tgz",
-      "integrity": "sha512-vDTgf19ZEV6mx35yiPJe4fS02mPQUUcBNwWQSZFXSzTSbsJFQvHt7DqyS3LK8oOWALFOsJ+8bbqBgkirZteD5Q==",
-      "dev": true,
-      "requires": {
-        "@babel/helper-plugin-utils": "^7.0.0",
-        "lodash": "^4.17.10"
-      },
-      "dependencies": {
-        "lodash": {
-          "version": "4.17.11",
-          "resolved": "https://registry.npmjs.org/lodash/-/lodash-4.17.11.tgz",
-          "integrity": "sha512-cQKh8igo5QUhZ7lg38DYWAxMvjSAKG0A8wGSVimP07SIUEK2UO+arSRKbRZWtelMtN5V0Hkwh5ryOto/SshYIg==",
-          "dev": true
-        }
-      }
-    },
-    "@babel/plugin-transform-classes": {
-      "version": "7.2.2",
-      "resolved": "https://registry.npmjs.org/@babel/plugin-transform-classes/-/plugin-transform-classes-7.2.2.tgz",
-      "integrity": "sha512-gEZvgTy1VtcDOaQty1l10T3jQmJKlNVxLDCs+3rCVPr6nMkODLELxViq5X9l+rfxbie3XrfrMCYYY6eX3aOcOQ==",
-      "dev": true,
-      "requires": {
-        "@babel/helper-annotate-as-pure": "^7.0.0",
-        "@babel/helper-define-map": "^7.1.0",
-        "@babel/helper-function-name": "^7.1.0",
-        "@babel/helper-optimise-call-expression": "^7.0.0",
-        "@babel/helper-plugin-utils": "^7.0.0",
-        "@babel/helper-replace-supers": "^7.1.0",
-        "@babel/helper-split-export-declaration": "^7.0.0",
-        "globals": "^11.1.0"
-      },
-      "dependencies": {
-        "@babel/code-frame": {
-          "version": "7.0.0",
-          "resolved": "https://registry.npmjs.org/@babel/code-frame/-/code-frame-7.0.0.tgz",
-          "integrity": "sha512-OfC2uemaknXr87bdLUkWog7nYuliM9Ij5HUcajsVcMCpQrcLmtxRbVFTIqmcSkSeYRBFBRxs2FiUqFJDLdiebA==",
-          "dev": true,
-          "requires": {
-            "@babel/highlight": "^7.0.0"
-          }
-        },
-        "@babel/helper-function-name": {
-          "version": "7.1.0",
-          "resolved": "https://registry.npmjs.org/@babel/helper-function-name/-/helper-function-name-7.1.0.tgz",
-          "integrity": "sha512-A95XEoCpb3TO+KZzJ4S/5uW5fNe26DjBGqf1o9ucyLyCmi1dXq/B3c8iaWTfBk3VvetUxl16e8tIrd5teOCfGw==",
-          "dev": true,
-          "requires": {
-            "@babel/helper-get-function-arity": "^7.0.0",
-            "@babel/template": "^7.1.0",
-            "@babel/types": "^7.0.0"
-          }
-        },
-        "@babel/helper-get-function-arity": {
-          "version": "7.0.0",
-          "resolved": "https://registry.npmjs.org/@babel/helper-get-function-arity/-/helper-get-function-arity-7.0.0.tgz",
-          "integrity": "sha512-r2DbJeg4svYvt3HOS74U4eWKsUAMRH01Z1ds1zx8KNTPtpTL5JAsdFv8BNyOpVqdFhHkkRDIg5B4AsxmkjAlmQ==",
-          "dev": true,
-          "requires": {
-            "@babel/types": "^7.0.0"
-          }
-        },
-        "@babel/helper-split-export-declaration": {
-          "version": "7.0.0",
-          "resolved": "https://registry.npmjs.org/@babel/helper-split-export-declaration/-/helper-split-export-declaration-7.0.0.tgz",
-          "integrity": "sha512-MXkOJqva62dfC0w85mEf/LucPPS/1+04nmmRMPEBUB++hiiThQ2zPtX/mEWQ3mtzCEjIJvPY8nuwxXtQeQwUag==",
-          "dev": true,
-          "requires": {
-            "@babel/types": "^7.0.0"
-          }
-        },
-        "@babel/highlight": {
-          "version": "7.0.0",
-          "resolved": "https://registry.npmjs.org/@babel/highlight/-/highlight-7.0.0.tgz",
-          "integrity": "sha512-UFMC4ZeFC48Tpvj7C8UgLvtkaUuovQX+5xNWrsIoMG8o2z+XFKjKaN9iVmS84dPwVN00W4wPmqvYoZF3EGAsfw==",
-          "dev": true,
-          "requires": {
-            "chalk": "^2.0.0",
-            "esutils": "^2.0.2",
-            "js-tokens": "^4.0.0"
-          }
-        },
-        "@babel/parser": {
-          "version": "7.2.3",
-          "resolved": "https://registry.npmjs.org/@babel/parser/-/parser-7.2.3.tgz",
-          "integrity": "sha512-0LyEcVlfCoFmci8mXx8A5oIkpkOgyo8dRHtxBnK9RRBwxO2+JZPNsqtVEZQ7mJFPxnXF9lfmU24mHOPI0qnlkA==",
-          "dev": true
-        },
-        "@babel/template": {
-          "version": "7.2.2",
-          "resolved": "https://registry.npmjs.org/@babel/template/-/template-7.2.2.tgz",
-          "integrity": "sha512-zRL0IMM02AUDwghf5LMSSDEz7sBCO2YnNmpg3uWTZj/v1rcG2BmQUvaGU8GhU8BvfMh1k2KIAYZ7Ji9KXPUg7g==",
-          "dev": true,
-          "requires": {
-            "@babel/code-frame": "^7.0.0",
-            "@babel/parser": "^7.2.2",
-            "@babel/types": "^7.2.2"
-          }
-        },
-        "@babel/types": {
-          "version": "7.2.2",
-          "resolved": "https://registry.npmjs.org/@babel/types/-/types-7.2.2.tgz",
-          "integrity": "sha512-fKCuD6UFUMkR541eDWL+2ih/xFZBXPOg/7EQFeTluMDebfqR4jrpaCjLhkWlQS4hT6nRa2PMEgXKbRB5/H2fpg==",
-          "dev": true,
-          "requires": {
-            "esutils": "^2.0.2",
-            "lodash": "^4.17.10",
-            "to-fast-properties": "^2.0.0"
-          }
-        },
-        "globals": {
-          "version": "11.9.0",
-          "resolved": "https://registry.npmjs.org/globals/-/globals-11.9.0.tgz",
-          "integrity": "sha512-5cJVtyXWH8PiJPVLZzzoIizXx944O4OmRro5MWKx5fT4MgcN7OfaMutPeaTdJCCURwbWdhhcCWcKIffPnmTzBg==",
-          "dev": true
-        },
-        "js-tokens": {
-          "version": "4.0.0",
-          "resolved": "https://registry.npmjs.org/js-tokens/-/js-tokens-4.0.0.tgz",
-          "integrity": "sha512-RdJUflcE3cUzKiMqQgsCu06FPu9UdIJO0beYbPhHN4k6apgJtifcoCtT9bcxOpYBtpD2kCM6Sbzg4CausW/PKQ==",
-          "dev": true
-        },
-        "lodash": {
-          "version": "4.17.11",
-          "resolved": "https://registry.npmjs.org/lodash/-/lodash-4.17.11.tgz",
-          "integrity": "sha512-cQKh8igo5QUhZ7lg38DYWAxMvjSAKG0A8wGSVimP07SIUEK2UO+arSRKbRZWtelMtN5V0Hkwh5ryOto/SshYIg==",
-          "dev": true
-        },
-        "to-fast-properties": {
-          "version": "2.0.0",
-          "resolved": "https://registry.npmjs.org/to-fast-properties/-/to-fast-properties-2.0.0.tgz",
-          "integrity": "sha1-3F5pjL0HkmW8c+A3doGk5Og/YW4=",
-          "dev": true
-        }
-      }
-    },
-    "@babel/plugin-transform-computed-properties": {
-      "version": "7.2.0",
-      "resolved": "https://registry.npmjs.org/@babel/plugin-transform-computed-properties/-/plugin-transform-computed-properties-7.2.0.tgz",
-      "integrity": "sha512-kP/drqTxY6Xt3NNpKiMomfgkNn4o7+vKxK2DDKcBG9sHj51vHqMBGy8wbDS/J4lMxnqs153/T3+DmCEAkC5cpA==",
-      "dev": true,
-      "requires": {
-        "@babel/helper-plugin-utils": "^7.0.0"
-      }
-    },
-    "@babel/plugin-transform-destructuring": {
-      "version": "7.2.0",
-      "resolved": "https://registry.npmjs.org/@babel/plugin-transform-destructuring/-/plugin-transform-destructuring-7.2.0.tgz",
-      "integrity": "sha512-coVO2Ayv7g0qdDbrNiadE4bU7lvCd9H539m2gMknyVjjMdwF/iCOM7R+E8PkntoqLkltO0rk+3axhpp/0v68VQ==",
-      "dev": true,
-      "requires": {
-        "@babel/helper-plugin-utils": "^7.0.0"
-      }
-    },
-    "@babel/plugin-transform-dotall-regex": {
-      "version": "7.2.0",
-      "resolved": "https://registry.npmjs.org/@babel/plugin-transform-dotall-regex/-/plugin-transform-dotall-regex-7.2.0.tgz",
-      "integrity": "sha512-sKxnyHfizweTgKZf7XsXu/CNupKhzijptfTM+bozonIuyVrLWVUvYjE2bhuSBML8VQeMxq4Mm63Q9qvcvUcciQ==",
-      "dev": true,
-      "requires": {
-        "@babel/helper-plugin-utils": "^7.0.0",
-        "@babel/helper-regex": "^7.0.0",
-        "regexpu-core": "^4.1.3"
-      },
-      "dependencies": {
-        "jsesc": {
-          "version": "0.5.0",
-          "resolved": "http://registry.npmjs.org/jsesc/-/jsesc-0.5.0.tgz",
-          "integrity": "sha1-597mbjXW/Bb3EP6R1c9p9w8IkR0=",
-          "dev": true
-        },
-        "regenerate": {
-          "version": "1.4.0",
-          "resolved": "https://registry.npmjs.org/regenerate/-/regenerate-1.4.0.tgz",
-          "integrity": "sha512-1G6jJVDWrt0rK99kBjvEtziZNCICAuvIPkSiUFIQxVP06RCVpq3dmDo2oi6ABpYaDYaTRr67BEhL8r1wgEZZKg==",
-          "dev": true
-        },
-        "regexpu-core": {
-          "version": "4.4.0",
-          "resolved": "https://registry.npmjs.org/regexpu-core/-/regexpu-core-4.4.0.tgz",
-          "integrity": "sha512-eDDWElbwwI3K0Lo6CqbQbA6FwgtCz4kYTarrri1okfkRLZAqstU+B3voZBCjg8Fl6iq0gXrJG6MvRgLthfvgOA==",
-          "dev": true,
-          "requires": {
-            "regenerate": "^1.4.0",
-            "regenerate-unicode-properties": "^7.0.0",
-            "regjsgen": "^0.5.0",
-            "regjsparser": "^0.6.0",
-            "unicode-match-property-ecmascript": "^1.0.4",
-            "unicode-match-property-value-ecmascript": "^1.0.2"
-          }
-        },
-        "regjsgen": {
-          "version": "0.5.0",
-          "resolved": "https://registry.npmjs.org/regjsgen/-/regjsgen-0.5.0.tgz",
-          "integrity": "sha512-RnIrLhrXCX5ow/E5/Mh2O4e/oa1/jW0eaBKTSy3LaCj+M3Bqvm97GWDp2yUtzIs4LEn65zR2yiYGFqb2ApnzDA==",
-          "dev": true
-        },
-        "regjsparser": {
-          "version": "0.6.0",
-          "resolved": "https://registry.npmjs.org/regjsparser/-/regjsparser-0.6.0.tgz",
-          "integrity": "sha512-RQ7YyokLiQBomUJuUG8iGVvkgOLxwyZM8k6d3q5SAXpg4r5TZJZigKFvC6PpD+qQ98bCDC5YelPeA3EucDoNeQ==",
-          "dev": true,
-          "requires": {
-            "jsesc": "~0.5.0"
-          }
-        }
-      }
-    },
-    "@babel/plugin-transform-duplicate-keys": {
-      "version": "7.2.0",
-      "resolved": "https://registry.npmjs.org/@babel/plugin-transform-duplicate-keys/-/plugin-transform-duplicate-keys-7.2.0.tgz",
-      "integrity": "sha512-q+yuxW4DsTjNceUiTzK0L+AfQ0zD9rWaTLiUqHA8p0gxx7lu1EylenfzjeIWNkPy6e/0VG/Wjw9uf9LueQwLOw==",
-      "dev": true,
-      "requires": {
-        "@babel/helper-plugin-utils": "^7.0.0"
-      }
-    },
-    "@babel/plugin-transform-exponentiation-operator": {
-      "version": "7.2.0",
-      "resolved": "https://registry.npmjs.org/@babel/plugin-transform-exponentiation-operator/-/plugin-transform-exponentiation-operator-7.2.0.tgz",
-      "integrity": "sha512-umh4hR6N7mu4Elq9GG8TOu9M0bakvlsREEC+ialrQN6ABS4oDQ69qJv1VtR3uxlKMCQMCvzk7vr17RHKcjx68A==",
-      "dev": true,
-      "requires": {
-        "@babel/helper-builder-binary-assignment-operator-visitor": "^7.1.0",
-        "@babel/helper-plugin-utils": "^7.0.0"
-      }
-    },
-    "@babel/plugin-transform-for-of": {
-      "version": "7.2.0",
-      "resolved": "https://registry.npmjs.org/@babel/plugin-transform-for-of/-/plugin-transform-for-of-7.2.0.tgz",
-      "integrity": "sha512-Kz7Mt0SsV2tQk6jG5bBv5phVbkd0gd27SgYD4hH1aLMJRchM0dzHaXvrWhVZ+WxAlDoAKZ7Uy3jVTW2mKXQ1WQ==",
-      "dev": true,
-      "requires": {
-        "@babel/helper-plugin-utils": "^7.0.0"
-      }
-    },
-    "@babel/plugin-transform-function-name": {
-      "version": "7.2.0",
-      "resolved": "https://registry.npmjs.org/@babel/plugin-transform-function-name/-/plugin-transform-function-name-7.2.0.tgz",
-      "integrity": "sha512-kWgksow9lHdvBC2Z4mxTsvc7YdY7w/V6B2vy9cTIPtLEE9NhwoWivaxdNM/S37elu5bqlLP/qOY906LukO9lkQ==",
-      "dev": true,
-      "requires": {
-        "@babel/helper-function-name": "^7.1.0",
-        "@babel/helper-plugin-utils": "^7.0.0"
-      },
-      "dependencies": {
-        "@babel/code-frame": {
-          "version": "7.0.0",
-          "resolved": "https://registry.npmjs.org/@babel/code-frame/-/code-frame-7.0.0.tgz",
-          "integrity": "sha512-OfC2uemaknXr87bdLUkWog7nYuliM9Ij5HUcajsVcMCpQrcLmtxRbVFTIqmcSkSeYRBFBRxs2FiUqFJDLdiebA==",
-          "dev": true,
-          "requires": {
-            "@babel/highlight": "^7.0.0"
-          }
-        },
-        "@babel/helper-function-name": {
-          "version": "7.1.0",
-          "resolved": "https://registry.npmjs.org/@babel/helper-function-name/-/helper-function-name-7.1.0.tgz",
-          "integrity": "sha512-A95XEoCpb3TO+KZzJ4S/5uW5fNe26DjBGqf1o9ucyLyCmi1dXq/B3c8iaWTfBk3VvetUxl16e8tIrd5teOCfGw==",
-          "dev": true,
-          "requires": {
-            "@babel/helper-get-function-arity": "^7.0.0",
-            "@babel/template": "^7.1.0",
-            "@babel/types": "^7.0.0"
-          }
-        },
-        "@babel/helper-get-function-arity": {
-          "version": "7.0.0",
-          "resolved": "https://registry.npmjs.org/@babel/helper-get-function-arity/-/helper-get-function-arity-7.0.0.tgz",
-          "integrity": "sha512-r2DbJeg4svYvt3HOS74U4eWKsUAMRH01Z1ds1zx8KNTPtpTL5JAsdFv8BNyOpVqdFhHkkRDIg5B4AsxmkjAlmQ==",
-          "dev": true,
-          "requires": {
-            "@babel/types": "^7.0.0"
-          }
-        },
-        "@babel/highlight": {
-          "version": "7.0.0",
-          "resolved": "https://registry.npmjs.org/@babel/highlight/-/highlight-7.0.0.tgz",
-          "integrity": "sha512-UFMC4ZeFC48Tpvj7C8UgLvtkaUuovQX+5xNWrsIoMG8o2z+XFKjKaN9iVmS84dPwVN00W4wPmqvYoZF3EGAsfw==",
-          "dev": true,
-          "requires": {
-            "chalk": "^2.0.0",
-            "esutils": "^2.0.2",
-            "js-tokens": "^4.0.0"
-          }
-        },
-        "@babel/parser": {
-          "version": "7.2.3",
-          "resolved": "https://registry.npmjs.org/@babel/parser/-/parser-7.2.3.tgz",
-          "integrity": "sha512-0LyEcVlfCoFmci8mXx8A5oIkpkOgyo8dRHtxBnK9RRBwxO2+JZPNsqtVEZQ7mJFPxnXF9lfmU24mHOPI0qnlkA==",
-          "dev": true
-        },
-        "@babel/template": {
-          "version": "7.2.2",
-          "resolved": "https://registry.npmjs.org/@babel/template/-/template-7.2.2.tgz",
-          "integrity": "sha512-zRL0IMM02AUDwghf5LMSSDEz7sBCO2YnNmpg3uWTZj/v1rcG2BmQUvaGU8GhU8BvfMh1k2KIAYZ7Ji9KXPUg7g==",
-          "dev": true,
-          "requires": {
-            "@babel/code-frame": "^7.0.0",
-            "@babel/parser": "^7.2.2",
-            "@babel/types": "^7.2.2"
-          }
-        },
-        "@babel/types": {
-          "version": "7.2.2",
-          "resolved": "https://registry.npmjs.org/@babel/types/-/types-7.2.2.tgz",
-          "integrity": "sha512-fKCuD6UFUMkR541eDWL+2ih/xFZBXPOg/7EQFeTluMDebfqR4jrpaCjLhkWlQS4hT6nRa2PMEgXKbRB5/H2fpg==",
-          "dev": true,
-          "requires": {
-            "esutils": "^2.0.2",
-            "lodash": "^4.17.10",
-            "to-fast-properties": "^2.0.0"
-          }
-        },
-        "js-tokens": {
-          "version": "4.0.0",
-          "resolved": "https://registry.npmjs.org/js-tokens/-/js-tokens-4.0.0.tgz",
-          "integrity": "sha512-RdJUflcE3cUzKiMqQgsCu06FPu9UdIJO0beYbPhHN4k6apgJtifcoCtT9bcxOpYBtpD2kCM6Sbzg4CausW/PKQ==",
-          "dev": true
-        },
-        "lodash": {
-          "version": "4.17.11",
-          "resolved": "https://registry.npmjs.org/lodash/-/lodash-4.17.11.tgz",
-          "integrity": "sha512-cQKh8igo5QUhZ7lg38DYWAxMvjSAKG0A8wGSVimP07SIUEK2UO+arSRKbRZWtelMtN5V0Hkwh5ryOto/SshYIg==",
-          "dev": true
-        },
-        "to-fast-properties": {
-          "version": "2.0.0",
-          "resolved": "https://registry.npmjs.org/to-fast-properties/-/to-fast-properties-2.0.0.tgz",
-          "integrity": "sha1-3F5pjL0HkmW8c+A3doGk5Og/YW4=",
-          "dev": true
-        }
-      }
-    },
-    "@babel/plugin-transform-literals": {
-      "version": "7.2.0",
-      "resolved": "https://registry.npmjs.org/@babel/plugin-transform-literals/-/plugin-transform-literals-7.2.0.tgz",
-      "integrity": "sha512-2ThDhm4lI4oV7fVQ6pNNK+sx+c/GM5/SaML0w/r4ZB7sAneD/piDJtwdKlNckXeyGK7wlwg2E2w33C/Hh+VFCg==",
-      "dev": true,
-      "requires": {
-        "@babel/helper-plugin-utils": "^7.0.0"
-      }
-    },
-    "@babel/plugin-transform-modules-amd": {
-      "version": "7.2.0",
-      "resolved": "https://registry.npmjs.org/@babel/plugin-transform-modules-amd/-/plugin-transform-modules-amd-7.2.0.tgz",
-      "integrity": "sha512-mK2A8ucqz1qhrdqjS9VMIDfIvvT2thrEsIQzbaTdc5QFzhDjQv2CkJJ5f6BXIkgbmaoax3zBr2RyvV/8zeoUZw==",
-      "dev": true,
-      "requires": {
-        "@babel/helper-module-transforms": "^7.1.0",
-        "@babel/helper-plugin-utils": "^7.0.0"
-      }
-    },
-    "@babel/plugin-transform-modules-commonjs": {
-      "version": "7.2.0",
-      "resolved": "https://registry.npmjs.org/@babel/plugin-transform-modules-commonjs/-/plugin-transform-modules-commonjs-7.2.0.tgz",
-      "integrity": "sha512-V6y0uaUQrQPXUrmj+hgnks8va2L0zcZymeU7TtWEgdRLNkceafKXEduv7QzgQAE4lT+suwooG9dC7LFhdRAbVQ==",
-      "dev": true,
-      "requires": {
-        "@babel/helper-module-transforms": "^7.1.0",
-        "@babel/helper-plugin-utils": "^7.0.0",
-        "@babel/helper-simple-access": "^7.1.0"
-      }
-    },
-    "@babel/plugin-transform-modules-systemjs": {
-      "version": "7.2.0",
-      "resolved": "https://registry.npmjs.org/@babel/plugin-transform-modules-systemjs/-/plugin-transform-modules-systemjs-7.2.0.tgz",
-      "integrity": "sha512-aYJwpAhoK9a+1+O625WIjvMY11wkB/ok0WClVwmeo3mCjcNRjt+/8gHWrB5i+00mUju0gWsBkQnPpdvQ7PImmQ==",
-      "dev": true,
-      "requires": {
-        "@babel/helper-hoist-variables": "^7.0.0",
-        "@babel/helper-plugin-utils": "^7.0.0"
-      }
-    },
-    "@babel/plugin-transform-modules-umd": {
-      "version": "7.2.0",
-      "resolved": "https://registry.npmjs.org/@babel/plugin-transform-modules-umd/-/plugin-transform-modules-umd-7.2.0.tgz",
-      "integrity": "sha512-BV3bw6MyUH1iIsGhXlOK6sXhmSarZjtJ/vMiD9dNmpY8QXFFQTj+6v92pcfy1iqa8DeAfJFwoxcrS/TUZda6sw==",
-      "dev": true,
-      "requires": {
-        "@babel/helper-module-transforms": "^7.1.0",
-        "@babel/helper-plugin-utils": "^7.0.0"
-      }
-    },
-    "@babel/plugin-transform-new-target": {
-      "version": "7.0.0",
-      "resolved": "https://registry.npmjs.org/@babel/plugin-transform-new-target/-/plugin-transform-new-target-7.0.0.tgz",
-      "integrity": "sha512-yin069FYjah+LbqfGeTfzIBODex/e++Yfa0rH0fpfam9uTbuEeEOx5GLGr210ggOV77mVRNoeqSYqeuaqSzVSw==",
-      "dev": true,
-      "requires": {
-        "@babel/helper-plugin-utils": "^7.0.0"
-      }
-    },
-    "@babel/plugin-transform-object-super": {
-      "version": "7.2.0",
-      "resolved": "https://registry.npmjs.org/@babel/plugin-transform-object-super/-/plugin-transform-object-super-7.2.0.tgz",
-      "integrity": "sha512-VMyhPYZISFZAqAPVkiYb7dUe2AsVi2/wCT5+wZdsNO31FojQJa9ns40hzZ6U9f50Jlq4w6qwzdBB2uwqZ00ebg==",
-      "dev": true,
-      "requires": {
-        "@babel/helper-plugin-utils": "^7.0.0",
-        "@babel/helper-replace-supers": "^7.1.0"
-      }
-    },
-    "@babel/plugin-transform-parameters": {
-      "version": "7.2.0",
-      "resolved": "https://registry.npmjs.org/@babel/plugin-transform-parameters/-/plugin-transform-parameters-7.2.0.tgz",
-      "integrity": "sha512-kB9+hhUidIgUoBQ0MsxMewhzr8i60nMa2KgeJKQWYrqQpqcBYtnpR+JgkadZVZoaEZ/eKu9mclFaVwhRpLNSzA==",
-      "dev": true,
-      "requires": {
-        "@babel/helper-call-delegate": "^7.1.0",
-        "@babel/helper-get-function-arity": "^7.0.0",
-        "@babel/helper-plugin-utils": "^7.0.0"
-      },
-      "dependencies": {
-        "@babel/helper-get-function-arity": {
-          "version": "7.0.0",
-          "resolved": "https://registry.npmjs.org/@babel/helper-get-function-arity/-/helper-get-function-arity-7.0.0.tgz",
-          "integrity": "sha512-r2DbJeg4svYvt3HOS74U4eWKsUAMRH01Z1ds1zx8KNTPtpTL5JAsdFv8BNyOpVqdFhHkkRDIg5B4AsxmkjAlmQ==",
-          "dev": true,
-          "requires": {
-            "@babel/types": "^7.0.0"
-          }
-        },
-        "@babel/types": {
-          "version": "7.2.2",
-          "resolved": "https://registry.npmjs.org/@babel/types/-/types-7.2.2.tgz",
-          "integrity": "sha512-fKCuD6UFUMkR541eDWL+2ih/xFZBXPOg/7EQFeTluMDebfqR4jrpaCjLhkWlQS4hT6nRa2PMEgXKbRB5/H2fpg==",
-          "dev": true,
-          "requires": {
-            "esutils": "^2.0.2",
-            "lodash": "^4.17.10",
-            "to-fast-properties": "^2.0.0"
-          }
-        },
-        "lodash": {
-          "version": "4.17.11",
-          "resolved": "https://registry.npmjs.org/lodash/-/lodash-4.17.11.tgz",
-          "integrity": "sha512-cQKh8igo5QUhZ7lg38DYWAxMvjSAKG0A8wGSVimP07SIUEK2UO+arSRKbRZWtelMtN5V0Hkwh5ryOto/SshYIg==",
-          "dev": true
-        },
-        "to-fast-properties": {
-          "version": "2.0.0",
-          "resolved": "https://registry.npmjs.org/to-fast-properties/-/to-fast-properties-2.0.0.tgz",
-          "integrity": "sha1-3F5pjL0HkmW8c+A3doGk5Og/YW4=",
-          "dev": true
-        }
-      }
-    },
-    "@babel/plugin-transform-regenerator": {
-      "version": "7.0.0",
-      "resolved": "https://registry.npmjs.org/@babel/plugin-transform-regenerator/-/plugin-transform-regenerator-7.0.0.tgz",
-      "integrity": "sha512-sj2qzsEx8KDVv1QuJc/dEfilkg3RRPvPYx/VnKLtItVQRWt1Wqf5eVCOLZm29CiGFfYYsA3VPjfizTCV0S0Dlw==",
-      "dev": true,
-      "requires": {
-        "regenerator-transform": "^0.13.3"
-      },
-      "dependencies": {
-        "regenerator-transform": {
-          "version": "0.13.3",
-          "resolved": "https://registry.npmjs.org/regenerator-transform/-/regenerator-transform-0.13.3.tgz",
-          "integrity": "sha512-5ipTrZFSq5vU2YoGoww4uaRVAK4wyYC4TSICibbfEPOruUu8FFP7ErV0BjmbIOEpn3O/k9na9UEdYR/3m7N6uA==",
-          "dev": true,
-          "requires": {
-            "private": "^0.1.6"
-          }
-        }
-      }
-    },
-    "@babel/plugin-transform-shorthand-properties": {
-      "version": "7.2.0",
-      "resolved": "https://registry.npmjs.org/@babel/plugin-transform-shorthand-properties/-/plugin-transform-shorthand-properties-7.2.0.tgz",
-      "integrity": "sha512-QP4eUM83ha9zmYtpbnyjTLAGKQritA5XW/iG9cjtuOI8s1RuL/3V6a3DeSHfKutJQ+ayUfeZJPcnCYEQzaPQqg==",
-      "dev": true,
-      "requires": {
-        "@babel/helper-plugin-utils": "^7.0.0"
-      }
-    },
-    "@babel/plugin-transform-spread": {
-      "version": "7.2.2",
-      "resolved": "https://registry.npmjs.org/@babel/plugin-transform-spread/-/plugin-transform-spread-7.2.2.tgz",
-      "integrity": "sha512-KWfky/58vubwtS0hLqEnrWJjsMGaOeSBn90Ezn5Jeg9Z8KKHmELbP1yGylMlm5N6TPKeY9A2+UaSYLdxahg01w==",
-      "dev": true,
-      "requires": {
-        "@babel/helper-plugin-utils": "^7.0.0"
-      }
-    },
-    "@babel/plugin-transform-sticky-regex": {
-      "version": "7.2.0",
-      "resolved": "https://registry.npmjs.org/@babel/plugin-transform-sticky-regex/-/plugin-transform-sticky-regex-7.2.0.tgz",
-      "integrity": "sha512-KKYCoGaRAf+ckH8gEL3JHUaFVyNHKe3ASNsZ+AlktgHevvxGigoIttrEJb8iKN03Q7Eazlv1s6cx2B2cQ3Jabw==",
-      "dev": true,
-      "requires": {
-        "@babel/helper-plugin-utils": "^7.0.0",
-        "@babel/helper-regex": "^7.0.0"
-      }
-    },
-    "@babel/plugin-transform-template-literals": {
-      "version": "7.2.0",
-      "resolved": "https://registry.npmjs.org/@babel/plugin-transform-template-literals/-/plugin-transform-template-literals-7.2.0.tgz",
-      "integrity": "sha512-FkPix00J9A/XWXv4VoKJBMeSkyY9x/TqIh76wzcdfl57RJJcf8CehQ08uwfhCDNtRQYtHQKBTwKZDEyjE13Lwg==",
-      "dev": true,
-      "requires": {
-        "@babel/helper-annotate-as-pure": "^7.0.0",
-        "@babel/helper-plugin-utils": "^7.0.0"
-      }
-    },
-    "@babel/plugin-transform-typeof-symbol": {
-      "version": "7.2.0",
-      "resolved": "https://registry.npmjs.org/@babel/plugin-transform-typeof-symbol/-/plugin-transform-typeof-symbol-7.2.0.tgz",
-      "integrity": "sha512-2LNhETWYxiYysBtrBTqL8+La0jIoQQnIScUJc74OYvUGRmkskNY4EzLCnjHBzdmb38wqtTaixpo1NctEcvMDZw==",
-      "dev": true,
-      "requires": {
-        "@babel/helper-plugin-utils": "^7.0.0"
-      }
-    },
-    "@babel/plugin-transform-unicode-regex": {
-      "version": "7.2.0",
-      "resolved": "https://registry.npmjs.org/@babel/plugin-transform-unicode-regex/-/plugin-transform-unicode-regex-7.2.0.tgz",
-      "integrity": "sha512-m48Y0lMhrbXEJnVUaYly29jRXbQ3ksxPrS1Tg8t+MHqzXhtBYAvI51euOBaoAlZLPHsieY9XPVMf80a5x0cPcA==",
-      "dev": true,
-      "requires": {
-        "@babel/helper-plugin-utils": "^7.0.0",
-        "@babel/helper-regex": "^7.0.0",
-        "regexpu-core": "^4.1.3"
-      },
-      "dependencies": {
-        "jsesc": {
-          "version": "0.5.0",
-          "resolved": "http://registry.npmjs.org/jsesc/-/jsesc-0.5.0.tgz",
-          "integrity": "sha1-597mbjXW/Bb3EP6R1c9p9w8IkR0=",
-          "dev": true
-        },
-        "regenerate": {
-          "version": "1.4.0",
-          "resolved": "https://registry.npmjs.org/regenerate/-/regenerate-1.4.0.tgz",
-          "integrity": "sha512-1G6jJVDWrt0rK99kBjvEtziZNCICAuvIPkSiUFIQxVP06RCVpq3dmDo2oi6ABpYaDYaTRr67BEhL8r1wgEZZKg==",
-          "dev": true
-        },
-        "regexpu-core": {
-          "version": "4.4.0",
-          "resolved": "https://registry.npmjs.org/regexpu-core/-/regexpu-core-4.4.0.tgz",
-          "integrity": "sha512-eDDWElbwwI3K0Lo6CqbQbA6FwgtCz4kYTarrri1okfkRLZAqstU+B3voZBCjg8Fl6iq0gXrJG6MvRgLthfvgOA==",
-          "dev": true,
-          "requires": {
-            "regenerate": "^1.4.0",
-            "regenerate-unicode-properties": "^7.0.0",
-            "regjsgen": "^0.5.0",
-            "regjsparser": "^0.6.0",
-            "unicode-match-property-ecmascript": "^1.0.4",
-            "unicode-match-property-value-ecmascript": "^1.0.2"
-          }
-        },
-        "regjsgen": {
-          "version": "0.5.0",
-          "resolved": "https://registry.npmjs.org/regjsgen/-/regjsgen-0.5.0.tgz",
-          "integrity": "sha512-RnIrLhrXCX5ow/E5/Mh2O4e/oa1/jW0eaBKTSy3LaCj+M3Bqvm97GWDp2yUtzIs4LEn65zR2yiYGFqb2ApnzDA==",
-          "dev": true
-        },
-        "regjsparser": {
-          "version": "0.6.0",
-          "resolved": "https://registry.npmjs.org/regjsparser/-/regjsparser-0.6.0.tgz",
-          "integrity": "sha512-RQ7YyokLiQBomUJuUG8iGVvkgOLxwyZM8k6d3q5SAXpg4r5TZJZigKFvC6PpD+qQ98bCDC5YelPeA3EucDoNeQ==",
-          "dev": true,
-          "requires": {
-            "jsesc": "~0.5.0"
-          }
-        }
-      }
-    },
-    "@babel/preset-env": {
-      "version": "7.2.3",
-      "resolved": "https://registry.npmjs.org/@babel/preset-env/-/preset-env-7.2.3.tgz",
-      "integrity": "sha512-AuHzW7a9rbv5WXmvGaPX7wADxFkZIqKlbBh1dmZUQp4iwiPpkE/Qnrji6SC4UQCQzvWY/cpHET29eUhXS9cLPw==",
-      "dev": true,
-      "requires": {
-        "@babel/helper-module-imports": "^7.0.0",
-        "@babel/helper-plugin-utils": "^7.0.0",
-        "@babel/plugin-proposal-async-generator-functions": "^7.2.0",
-        "@babel/plugin-proposal-json-strings": "^7.2.0",
-        "@babel/plugin-proposal-object-rest-spread": "^7.2.0",
-        "@babel/plugin-proposal-optional-catch-binding": "^7.2.0",
-        "@babel/plugin-proposal-unicode-property-regex": "^7.2.0",
-        "@babel/plugin-syntax-async-generators": "^7.2.0",
-        "@babel/plugin-syntax-object-rest-spread": "^7.2.0",
-        "@babel/plugin-syntax-optional-catch-binding": "^7.2.0",
-        "@babel/plugin-transform-arrow-functions": "^7.2.0",
-        "@babel/plugin-transform-async-to-generator": "^7.2.0",
-        "@babel/plugin-transform-block-scoped-functions": "^7.2.0",
-        "@babel/plugin-transform-block-scoping": "^7.2.0",
-        "@babel/plugin-transform-classes": "^7.2.0",
-        "@babel/plugin-transform-computed-properties": "^7.2.0",
-        "@babel/plugin-transform-destructuring": "^7.2.0",
-        "@babel/plugin-transform-dotall-regex": "^7.2.0",
-        "@babel/plugin-transform-duplicate-keys": "^7.2.0",
-        "@babel/plugin-transform-exponentiation-operator": "^7.2.0",
-        "@babel/plugin-transform-for-of": "^7.2.0",
-        "@babel/plugin-transform-function-name": "^7.2.0",
-        "@babel/plugin-transform-literals": "^7.2.0",
-        "@babel/plugin-transform-modules-amd": "^7.2.0",
-        "@babel/plugin-transform-modules-commonjs": "^7.2.0",
-        "@babel/plugin-transform-modules-systemjs": "^7.2.0",
-        "@babel/plugin-transform-modules-umd": "^7.2.0",
-        "@babel/plugin-transform-new-target": "^7.0.0",
-        "@babel/plugin-transform-object-super": "^7.2.0",
-        "@babel/plugin-transform-parameters": "^7.2.0",
-        "@babel/plugin-transform-regenerator": "^7.0.0",
-        "@babel/plugin-transform-shorthand-properties": "^7.2.0",
-        "@babel/plugin-transform-spread": "^7.2.0",
-        "@babel/plugin-transform-sticky-regex": "^7.2.0",
-        "@babel/plugin-transform-template-literals": "^7.2.0",
-        "@babel/plugin-transform-typeof-symbol": "^7.2.0",
-        "@babel/plugin-transform-unicode-regex": "^7.2.0",
-        "browserslist": "^4.3.4",
-        "invariant": "^2.2.2",
-        "js-levenshtein": "^1.1.3",
-        "semver": "^5.3.0"
-      },
-      "dependencies": {
-        "browserslist": {
-          "version": "4.3.6",
-          "resolved": "https://registry.npmjs.org/browserslist/-/browserslist-4.3.6.tgz",
-          "integrity": "sha512-kMGKs4BTzRWviZ8yru18xBpx+CyHG9eqgRbj9XbE3IMgtczf4aiA0Y1YCpVdvUieKGZ03kolSPXqTcscBCb9qw==",
-          "dev": true,
-          "requires": {
-            "caniuse-lite": "^1.0.30000921",
-            "electron-to-chromium": "^1.3.92",
-            "node-releases": "^1.1.1"
-          }
-        },
-        "caniuse-lite": {
-          "version": "1.0.30000925",
-          "resolved": "https://registry.npmjs.org/caniuse-lite/-/caniuse-lite-1.0.30000925.tgz",
-          "integrity": "sha512-zcYupoUxtW46rOikuDF7vfL9N1Qe9ZuUBTz3n3q8fFsoJIs/h9UN6Vg/0QpjsmvImXw9mVc3g+ZBfqvUz/iALA==",
-          "dev": true
-        },
-        "electron-to-chromium": {
-          "version": "1.3.96",
-          "resolved": "https://registry.npmjs.org/electron-to-chromium/-/electron-to-chromium-1.3.96.tgz",
-          "integrity": "sha512-ZUXBUyGLeoJxp4Nt6G/GjBRLnyz8IKQGexZ2ndWaoegThgMGFO1tdDYID5gBV32/1S83osjJHyfzvanE/8HY4Q==",
-          "dev": true
-        }
-      }
-    },
-    "@babel/template": {
-      "version": "7.0.0-beta.51",
-      "resolved": "https://registry.npmjs.org/@babel/template/-/template-7.0.0-beta.51.tgz",
-      "integrity": "sha1-lgKkCuvPNXrpZ34lMu9fyBD1+/8=",
-      "requires": {
-        "@babel/code-frame": "7.0.0-beta.51",
-        "@babel/parser": "7.0.0-beta.51",
-        "@babel/types": "7.0.0-beta.51",
-        "lodash": "^4.17.5"
-      }
-    },
-    "@babel/traverse": {
-      "version": "7.0.0-beta.51",
-      "resolved": "https://registry.npmjs.org/@babel/traverse/-/traverse-7.0.0-beta.51.tgz",
-      "integrity": "sha1-mB2vLOw0emIx06odnhgDsDqqpKg=",
-      "requires": {
-        "@babel/code-frame": "7.0.0-beta.51",
-        "@babel/generator": "7.0.0-beta.51",
-        "@babel/helper-function-name": "7.0.0-beta.51",
-        "@babel/helper-split-export-declaration": "7.0.0-beta.51",
-        "@babel/parser": "7.0.0-beta.51",
-        "@babel/types": "7.0.0-beta.51",
-        "debug": "^3.1.0",
-        "globals": "^11.1.0",
-        "invariant": "^2.2.0",
-        "lodash": "^4.17.5"
-      },
-      "dependencies": {
-        "debug": {
-          "version": "3.1.0",
-          "resolved": "https://registry.npmjs.org/debug/-/debug-3.1.0.tgz",
-          "integrity": "sha512-OX8XqP7/1a9cqkxYw2yXss15f26NKWBpDXQd0/uK/KPqdQhxbPa994hnzjcE2VqQpDslf55723cKPUOGSmMY3g==",
-          "requires": {
-            "ms": "2.0.0"
-          }
-        },
-        "globals": {
-          "version": "11.7.0",
-          "resolved": "https://registry.npmjs.org/globals/-/globals-11.7.0.tgz",
-          "integrity": "sha512-K8BNSPySfeShBQXsahYB/AbbWruVOTyVpgoIDnl8odPpeSfP2J5QO2oLFFdl2j7GfDCtZj2bMKar2T49itTPCg=="
-        }
-      }
-    },
-    "@babel/types": {
-      "version": "7.0.0-beta.51",
-      "resolved": "https://registry.npmjs.org/@babel/types/-/types-7.0.0-beta.51.tgz",
-      "integrity": "sha1-2AK3tUO1g2x3iqaReXq/APPZfqk=",
-      "requires": {
-        "esutils": "^2.0.2",
-        "lodash": "^4.17.5",
-        "to-fast-properties": "^2.0.0"
-      },
-      "dependencies": {
-        "to-fast-properties": {
-          "version": "2.0.0",
-          "resolved": "https://registry.npmjs.org/to-fast-properties/-/to-fast-properties-2.0.0.tgz",
-          "integrity": "sha1-3F5pjL0HkmW8c+A3doGk5Og/YW4="
-        }
-      }
-    },
-    "@bahmutov/add-typescript-to-cypress": {
-      "version": "2.0.0",
-      "resolved": "https://registry.npmjs.org/@bahmutov/add-typescript-to-cypress/-/add-typescript-to-cypress-2.0.0.tgz",
-      "integrity": "sha512-tnM/bBrvOHAXvTD6WAnbkwi9Su6WXiuOBhDsNr9SLu42Ne6DjRKHZdxo8Ros6kToEoh+Pe2E6dP9u0QEDfMABg==",
-      "dev": true,
-      "requires": {
-        "@cypress/webpack-preprocessor": "1.1.3",
-        "am-i-a-dependency": "1.1.2",
-        "chalk": "2.3.0",
-        "debug": "3.1.0",
-        "shelljs": "0.8.0",
-        "terminal-banner": "1.1.0",
-        "ts-loader": "3.2.0"
-      },
-      "dependencies": {
-        "chalk": {
-          "version": "2.3.0",
-          "resolved": "https://registry.npmjs.org/chalk/-/chalk-2.3.0.tgz",
-          "integrity": "sha512-Az5zJR2CBujap2rqXGaJKaPHyJ0IrUimvYNX+ncCy8PJP4ltOGTrHUIo097ZaL2zMeKYpiCdqDvS6zdrTFok3Q==",
-          "dev": true,
-          "requires": {
-            "ansi-styles": "^3.1.0",
-            "escape-string-regexp": "^1.0.5",
-            "supports-color": "^4.0.0"
-          }
-        },
-        "debug": {
-          "version": "3.1.0",
-          "resolved": "https://registry.npmjs.org/debug/-/debug-3.1.0.tgz",
-          "integrity": "sha512-OX8XqP7/1a9cqkxYw2yXss15f26NKWBpDXQd0/uK/KPqdQhxbPa994hnzjcE2VqQpDslf55723cKPUOGSmMY3g==",
-          "dev": true,
-          "requires": {
-            "ms": "2.0.0"
-          }
-        },
-        "shelljs": {
-          "version": "0.8.0",
-          "resolved": "https://registry.npmjs.org/shelljs/-/shelljs-0.8.0.tgz",
-          "integrity": "sha512-wb72o5SM27oFRq2mMeNSl70DVkkvwf3ZSgk9rvieRVz7xFMIQp02HYw0oxlZgeAWS+wzGB+jcJWQTF7hH9WIPg==",
-          "dev": true,
-          "requires": {
-            "glob": "^7.0.0",
-            "interpret": "^1.0.0",
-            "rechoir": "^0.6.2"
-          }
-        }
-      }
-    },
-    "@cypress/listr-verbose-renderer": {
-      "version": "0.4.1",
-      "resolved": "https://registry.npmjs.org/@cypress/listr-verbose-renderer/-/listr-verbose-renderer-0.4.1.tgz",
-      "integrity": "sha1-p3SS9LEdzHxEajSz4ochr9M8ZCo=",
-      "dev": true,
-      "requires": {
-        "chalk": "^1.1.3",
-        "cli-cursor": "^1.0.2",
-        "date-fns": "^1.27.2",
-        "figures": "^1.7.0"
-      },
-      "dependencies": {
-        "ansi-styles": {
-          "version": "2.2.1",
-          "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-2.2.1.tgz",
-          "integrity": "sha1-tDLdM1i2NM914eRmQ2gkBTPB3b4=",
-          "dev": true
-        },
-        "chalk": {
-          "version": "1.1.3",
-          "resolved": "https://registry.npmjs.org/chalk/-/chalk-1.1.3.tgz",
-          "integrity": "sha1-qBFcVeSnAv5NFQq9OHKCKn4J/Jg=",
-          "dev": true,
-          "requires": {
-            "ansi-styles": "^2.2.1",
-            "escape-string-regexp": "^1.0.2",
-            "has-ansi": "^2.0.0",
-            "strip-ansi": "^3.0.0",
-            "supports-color": "^2.0.0"
-          }
-        },
-        "cli-cursor": {
-          "version": "1.0.2",
-          "resolved": "https://registry.npmjs.org/cli-cursor/-/cli-cursor-1.0.2.tgz",
-          "integrity": "sha1-ZNo/fValRBLll5S9Ytw1KV6PKYc=",
-          "dev": true,
-          "requires": {
-            "restore-cursor": "^1.0.1"
-          }
-        },
-        "figures": {
-          "version": "1.7.0",
-          "resolved": "https://registry.npmjs.org/figures/-/figures-1.7.0.tgz",
-          "integrity": "sha1-y+Hjr/zxzUS4DK3+0o3Hk6lwHS4=",
-          "dev": true,
-          "requires": {
-            "escape-string-regexp": "^1.0.5",
-            "object-assign": "^4.1.0"
-          }
-        },
-        "onetime": {
-          "version": "1.1.0",
-          "resolved": "https://registry.npmjs.org/onetime/-/onetime-1.1.0.tgz",
-          "integrity": "sha1-ofeDj4MUxRbwXs78vEzP4EtO14k=",
-          "dev": true
-        },
-        "restore-cursor": {
-          "version": "1.0.1",
-          "resolved": "https://registry.npmjs.org/restore-cursor/-/restore-cursor-1.0.1.tgz",
-          "integrity": "sha1-NGYfRohjJ/7SmRR5FSJS35LapUE=",
-          "dev": true,
-          "requires": {
-            "exit-hook": "^1.0.0",
-            "onetime": "^1.0.0"
-          }
-        },
-        "supports-color": {
-          "version": "2.0.0",
-          "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-2.0.0.tgz",
-          "integrity": "sha1-U10EXOa2Nj+kARcIRimZXp3zJMc=",
-          "dev": true
-        }
-      }
-    },
-    "@cypress/webpack-preprocessor": {
-      "version": "1.1.3",
-      "resolved": "https://registry.npmjs.org/@cypress/webpack-preprocessor/-/webpack-preprocessor-1.1.3.tgz",
-      "integrity": "sha512-guldaqrDN2+tINtgedExYKOO5lIl7ieacFb5V6vAqm7UgaLGguld7hm3lYip6HhfkVhE+gentdJ7yZeH36WChw==",
-      "dev": true,
-      "requires": {
-        "babel-core": "6.26.0",
-        "babel-loader": "7.1.2",
-        "babel-preset-env": "1.6.0",
-        "babel-preset-react": "6.24.1",
-        "bluebird": "3.5.0",
-        "debug": "3.1.0",
-        "lodash.clonedeep": "4.5.0",
-        "webpack": "3.6.0"
-      },
-      "dependencies": {
-        "ajv": {
-          "version": "5.5.2",
-          "resolved": "https://registry.npmjs.org/ajv/-/ajv-5.5.2.tgz",
-          "integrity": "sha1-c7Xuyj+rZT49P5Qis0GtQiBdyWU=",
-          "dev": true,
-          "requires": {
-            "co": "^4.6.0",
-            "fast-deep-equal": "^1.0.0",
-            "fast-json-stable-stringify": "^2.0.0",
-            "json-schema-traverse": "^0.3.0"
-          }
-        },
-        "ajv-keywords": {
-          "version": "2.1.1",
-          "resolved": "https://registry.npmjs.org/ajv-keywords/-/ajv-keywords-2.1.1.tgz",
-          "integrity": "sha1-YXmX/F9gV2iUxDX5QNgZ4TW4B2I=",
-          "dev": true
-        },
-        "ansi-regex": {
-          "version": "3.0.0",
-          "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-3.0.0.tgz",
-          "integrity": "sha1-7QMXwyIGT3lGbAKWa922Bas32Zg=",
-          "dev": true
-        },
-        "babel-loader": {
-          "version": "7.1.2",
-          "resolved": "https://registry.npmjs.org/babel-loader/-/babel-loader-7.1.2.tgz",
-          "integrity": "sha512-jRwlFbINAeyDStqK6Dd5YuY0k5YuzQUvlz2ZamuXrXmxav3pNqe9vfJ402+2G+OmlJSXxCOpB6Uz0INM7RQe2A==",
-          "dev": true,
-          "requires": {
-            "find-cache-dir": "^1.0.0",
-            "loader-utils": "^1.0.2",
-            "mkdirp": "^0.5.1"
-          }
-        },
-        "babel-preset-env": {
-          "version": "1.6.0",
-          "resolved": "https://registry.npmjs.org/babel-preset-env/-/babel-preset-env-1.6.0.tgz",
-          "integrity": "sha512-OVgtQRuOZKckrILgMA5rvctvFZPv72Gua9Rt006AiPoB0DJKGN07UmaQA+qRrYgK71MVct8fFhT0EyNWYorVew==",
-          "dev": true,
-          "requires": {
-            "babel-plugin-check-es2015-constants": "^6.22.0",
-            "babel-plugin-syntax-trailing-function-commas": "^6.22.0",
-            "babel-plugin-transform-async-to-generator": "^6.22.0",
-            "babel-plugin-transform-es2015-arrow-functions": "^6.22.0",
-            "babel-plugin-transform-es2015-block-scoped-functions": "^6.22.0",
-            "babel-plugin-transform-es2015-block-scoping": "^6.23.0",
-            "babel-plugin-transform-es2015-classes": "^6.23.0",
-            "babel-plugin-transform-es2015-computed-properties": "^6.22.0",
-            "babel-plugin-transform-es2015-destructuring": "^6.23.0",
-            "babel-plugin-transform-es2015-duplicate-keys": "^6.22.0",
-            "babel-plugin-transform-es2015-for-of": "^6.23.0",
-            "babel-plugin-transform-es2015-function-name": "^6.22.0",
-            "babel-plugin-transform-es2015-literals": "^6.22.0",
-            "babel-plugin-transform-es2015-modules-amd": "^6.22.0",
-            "babel-plugin-transform-es2015-modules-commonjs": "^6.23.0",
-            "babel-plugin-transform-es2015-modules-systemjs": "^6.23.0",
-            "babel-plugin-transform-es2015-modules-umd": "^6.23.0",
-            "babel-plugin-transform-es2015-object-super": "^6.22.0",
-            "babel-plugin-transform-es2015-parameters": "^6.23.0",
-            "babel-plugin-transform-es2015-shorthand-properties": "^6.22.0",
-            "babel-plugin-transform-es2015-spread": "^6.22.0",
-            "babel-plugin-transform-es2015-sticky-regex": "^6.22.0",
-            "babel-plugin-transform-es2015-template-literals": "^6.22.0",
-            "babel-plugin-transform-es2015-typeof-symbol": "^6.23.0",
-            "babel-plugin-transform-es2015-unicode-regex": "^6.22.0",
-            "babel-plugin-transform-exponentiation-operator": "^6.22.0",
-            "babel-plugin-transform-regenerator": "^6.22.0",
-            "browserslist": "^2.1.2",
-            "invariant": "^2.2.2",
-            "semver": "^5.3.0"
-          }
-        },
-        "bluebird": {
-          "version": "3.5.0",
-          "resolved": "https://registry.npmjs.org/bluebird/-/bluebird-3.5.0.tgz",
-          "integrity": "sha1-eRQg1/VR7qKJdFOop3ZT+WYG1nw=",
-          "dev": true
-        },
-        "camelcase": {
-          "version": "1.2.1",
-          "resolved": "https://registry.npmjs.org/camelcase/-/camelcase-1.2.1.tgz",
-          "integrity": "sha1-m7UwTS4LVmmLLHWLCKPqqdqlijk=",
-          "dev": true
-        },
-        "cliui": {
-          "version": "2.1.0",
-          "resolved": "https://registry.npmjs.org/cliui/-/cliui-2.1.0.tgz",
-          "integrity": "sha1-S0dXYP+AJkx2LDoXGQMukcf+oNE=",
-          "dev": true,
-          "requires": {
-            "center-align": "^0.1.1",
-            "right-align": "^0.1.1",
-            "wordwrap": "0.0.2"
-          }
-        },
-        "debug": {
-          "version": "3.1.0",
-          "resolved": "https://registry.npmjs.org/debug/-/debug-3.1.0.tgz",
-          "integrity": "sha512-OX8XqP7/1a9cqkxYw2yXss15f26NKWBpDXQd0/uK/KPqdQhxbPa994hnzjcE2VqQpDslf55723cKPUOGSmMY3g==",
-          "dev": true,
-          "requires": {
-            "ms": "2.0.0"
-          }
-        },
-        "load-json-file": {
-          "version": "2.0.0",
-          "resolved": "https://registry.npmjs.org/load-json-file/-/load-json-file-2.0.0.tgz",
-          "integrity": "sha1-eUfkIUmvgNaWy/eXvKq8/h/inKg=",
-          "dev": true,
-          "requires": {
-            "graceful-fs": "^4.1.2",
-            "parse-json": "^2.2.0",
-            "pify": "^2.0.0",
-            "strip-bom": "^3.0.0"
-          }
-        },
-        "os-locale": {
-          "version": "2.1.0",
-          "resolved": "https://registry.npmjs.org/os-locale/-/os-locale-2.1.0.tgz",
-          "integrity": "sha512-3sslG3zJbEYcaC4YVAvDorjGxc7tv6KVATnLPZONiljsUncvihe9BQoVCEs0RZ1kmf4Hk9OBqlZfJZWI4GanKA==",
-          "dev": true,
-          "requires": {
-            "execa": "^0.7.0",
-            "lcid": "^1.0.0",
-            "mem": "^1.1.0"
-          }
-        },
-        "path-type": {
-          "version": "2.0.0",
-          "resolved": "https://registry.npmjs.org/path-type/-/path-type-2.0.0.tgz",
-          "integrity": "sha1-8BLMuEFbcJb8LaoQVMPXI4lZTHM=",
-          "dev": true,
-          "requires": {
-            "pify": "^2.0.0"
-          }
-        },
-        "pify": {
-          "version": "2.3.0",
-          "resolved": "https://registry.npmjs.org/pify/-/pify-2.3.0.tgz",
-          "integrity": "sha1-7RQaasBDqEnqWISY59yosVMw6Qw=",
-          "dev": true
-        },
-        "read-pkg": {
-          "version": "2.0.0",
-          "resolved": "https://registry.npmjs.org/read-pkg/-/read-pkg-2.0.0.tgz",
-          "integrity": "sha1-jvHAYjxqbbDcZxPEv6xGMysjaPg=",
-          "dev": true,
-          "requires": {
-            "load-json-file": "^2.0.0",
-            "normalize-package-data": "^2.3.2",
-            "path-type": "^2.0.0"
-          }
-        },
-        "read-pkg-up": {
-          "version": "2.0.0",
-          "resolved": "https://registry.npmjs.org/read-pkg-up/-/read-pkg-up-2.0.0.tgz",
-          "integrity": "sha1-a3KoBImE4MQeeVEP1en6mbO1Sb4=",
-          "dev": true,
-          "requires": {
-            "find-up": "^2.0.0",
-            "read-pkg": "^2.0.0"
-          }
-        },
-        "string-width": {
-          "version": "2.1.1",
-          "resolved": "https://registry.npmjs.org/string-width/-/string-width-2.1.1.tgz",
-          "integrity": "sha512-nOqH59deCq9SRHlxq1Aw85Jnt4w6KvLKqWVik6oA9ZklXLNIOlqg4F2yrT1MVaTjAqvVwdfeZ7w7aCvJD7ugkw==",
-          "dev": true,
-          "requires": {
-            "is-fullwidth-code-point": "^2.0.0",
-            "strip-ansi": "^4.0.0"
-          },
-          "dependencies": {
-            "is-fullwidth-code-point": {
-              "version": "2.0.0",
-              "resolved": "https://registry.npmjs.org/is-fullwidth-code-point/-/is-fullwidth-code-point-2.0.0.tgz",
-              "integrity": "sha1-o7MKXE8ZkYMWeqq5O+764937ZU8=",
-              "dev": true
-            },
-            "strip-ansi": {
-              "version": "4.0.0",
-              "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-4.0.0.tgz",
-              "integrity": "sha1-qEeQIusaw2iocTibY1JixQXuNo8=",
-              "dev": true,
-              "requires": {
-                "ansi-regex": "^3.0.0"
-              }
-            }
-          }
-        },
-        "strip-bom": {
-          "version": "3.0.0",
-          "resolved": "https://registry.npmjs.org/strip-bom/-/strip-bom-3.0.0.tgz",
-          "integrity": "sha1-IzTBjpx1n3vdVv3vfprj1YjmjtM=",
-          "dev": true
-        },
-        "uglify-js": {
-          "version": "2.8.29",
-          "resolved": "https://registry.npmjs.org/uglify-js/-/uglify-js-2.8.29.tgz",
-          "integrity": "sha1-KcVzMUgFe7Th913zW3qcty5qWd0=",
-          "dev": true,
-          "requires": {
-            "source-map": "~0.5.1",
-            "uglify-to-browserify": "~1.0.0",
-            "yargs": "~3.10.0"
-          },
-          "dependencies": {
-            "yargs": {
-              "version": "3.10.0",
-              "resolved": "https://registry.npmjs.org/yargs/-/yargs-3.10.0.tgz",
-              "integrity": "sha1-9+572FfdfB0tOMDnTvvWgdFDH9E=",
-              "dev": true,
-              "requires": {
-                "camelcase": "^1.0.2",
-                "cliui": "^2.1.0",
-                "decamelize": "^1.0.0",
-                "window-size": "0.1.0"
-              }
-            }
-          }
-        },
-        "uglifyjs-webpack-plugin": {
-          "version": "0.4.6",
-          "resolved": "https://registry.npmjs.org/uglifyjs-webpack-plugin/-/uglifyjs-webpack-plugin-0.4.6.tgz",
-          "integrity": "sha1-uVH0q7a9YX5m9j64kUmOORdj4wk=",
-          "dev": true,
-          "requires": {
-            "source-map": "^0.5.6",
-            "uglify-js": "^2.8.29",
-            "webpack-sources": "^1.0.1"
-          }
-        },
-        "webpack": {
-          "version": "3.6.0",
-          "resolved": "https://registry.npmjs.org/webpack/-/webpack-3.6.0.tgz",
-          "integrity": "sha512-OsHT3D0W0KmPPh60tC7asNnOmST6bKTiR90UyEdT9QYoaJ4OYN4Gg7WK1k3VxHK07ZoiYWPsKvlS/gAjwL/vRA==",
-          "dev": true,
-          "requires": {
-            "acorn": "^5.0.0",
-            "acorn-dynamic-import": "^2.0.0",
-            "ajv": "^5.1.5",
-            "ajv-keywords": "^2.0.0",
-            "async": "^2.1.2",
-            "enhanced-resolve": "^3.4.0",
-            "escope": "^3.6.0",
-            "interpret": "^1.0.0",
-            "json-loader": "^0.5.4",
-            "json5": "^0.5.1",
-            "loader-runner": "^2.3.0",
-            "loader-utils": "^1.1.0",
-            "memory-fs": "~0.4.1",
-            "mkdirp": "~0.5.0",
-            "node-libs-browser": "^2.0.0",
-            "source-map": "^0.5.3",
-            "supports-color": "^4.2.1",
-            "tapable": "^0.2.7",
-            "uglifyjs-webpack-plugin": "^0.4.6",
-            "watchpack": "^1.4.0",
-            "webpack-sources": "^1.0.1",
-            "yargs": "^8.0.2"
-          }
-        },
-        "which-module": {
-          "version": "2.0.0",
-          "resolved": "https://registry.npmjs.org/which-module/-/which-module-2.0.0.tgz",
-          "integrity": "sha1-2e8H3Od7mQK4o6j6SzHD4/fm6Ho=",
-          "dev": true
-        },
-        "y18n": {
-          "version": "3.2.1",
-          "resolved": "https://registry.npmjs.org/y18n/-/y18n-3.2.1.tgz",
-          "integrity": "sha1-bRX7qITAhnnA136I53WegR4H+kE=",
-          "dev": true
-        },
-        "yargs": {
-          "version": "8.0.2",
-          "resolved": "https://registry.npmjs.org/yargs/-/yargs-8.0.2.tgz",
-          "integrity": "sha1-YpmpBVsc78lp/355wdkY3Osiw2A=",
-          "dev": true,
-          "requires": {
-            "camelcase": "^4.1.0",
-            "cliui": "^3.2.0",
-            "decamelize": "^1.1.1",
-            "get-caller-file": "^1.0.1",
-            "os-locale": "^2.0.0",
-            "read-pkg-up": "^2.0.0",
-            "require-directory": "^2.1.1",
-            "require-main-filename": "^1.0.1",
-            "set-blocking": "^2.0.0",
-            "string-width": "^2.0.0",
-            "which-module": "^2.0.0",
-            "y18n": "^3.2.1",
-            "yargs-parser": "^7.0.0"
-          },
-          "dependencies": {
-            "camelcase": {
-              "version": "4.1.0",
-              "resolved": "https://registry.npmjs.org/camelcase/-/camelcase-4.1.0.tgz",
-              "integrity": "sha1-1UVjW+HjPFQmScaRc+Xeas+uNN0=",
-              "dev": true
-            },
-            "cliui": {
-              "version": "3.2.0",
-              "resolved": "https://registry.npmjs.org/cliui/-/cliui-3.2.0.tgz",
-              "integrity": "sha1-EgYBU3qRbSmUD5NNo7SNWFo5IT0=",
-              "dev": true,
-              "requires": {
-                "string-width": "^1.0.1",
-                "strip-ansi": "^3.0.1",
-                "wrap-ansi": "^2.0.0"
-              },
-              "dependencies": {
-                "string-width": {
-                  "version": "1.0.2",
-                  "resolved": "https://registry.npmjs.org/string-width/-/string-width-1.0.2.tgz",
-                  "integrity": "sha1-EYvfW4zcUaKn5w0hHgfisLmxB9M=",
-                  "dev": true,
-                  "requires": {
-                    "code-point-at": "^1.0.0",
-                    "is-fullwidth-code-point": "^1.0.0",
-                    "strip-ansi": "^3.0.0"
-                  }
-                }
-              }
-            }
-          }
-        },
-        "yargs-parser": {
-          "version": "7.0.0",
-          "resolved": "https://registry.npmjs.org/yargs-parser/-/yargs-parser-7.0.0.tgz",
-          "integrity": "sha1-jQrELxbqVd69MyyvTEA4s+P139k=",
-          "dev": true,
-          "requires": {
-            "camelcase": "^4.1.0"
-          },
-          "dependencies": {
-            "camelcase": {
-              "version": "4.1.0",
-              "resolved": "https://registry.npmjs.org/camelcase/-/camelcase-4.1.0.tgz",
-              "integrity": "sha1-1UVjW+HjPFQmScaRc+Xeas+uNN0=",
-              "dev": true
-            }
-          }
-        }
-      }
-    },
-    "@cypress/xvfb": {
-      "version": "1.2.3",
-      "resolved": "https://registry.npmjs.org/@cypress/xvfb/-/xvfb-1.2.3.tgz",
-      "integrity": "sha512-yYrK+/bgL3hwoRHMZG4r5fyLniCy1pXex5fimtewAY6vE/jsVs8Q37UsEO03tFlcmiLnQ3rBNMaZBYTi/+C1cw==",
-      "dev": true,
-      "requires": {
-        "debug": "^3.1.0",
-        "lodash.once": "^4.1.1"
-      },
-      "dependencies": {
-        "debug": {
-          "version": "3.2.6",
-          "resolved": "https://registry.npmjs.org/debug/-/debug-3.2.6.tgz",
-          "integrity": "sha512-mel+jf7nrtEl5Pn1Qx46zARXKDpBbvzezse7p7LqINmdoIk8PYP5SySaxEmYv6TZ0JyEKA1hsCId6DIhgITtWQ==",
-          "dev": true,
-          "requires": {
-            "ms": "^2.1.1"
-          }
-        },
-        "ms": {
-          "version": "2.1.1",
-          "resolved": "https://registry.npmjs.org/ms/-/ms-2.1.1.tgz",
-          "integrity": "sha512-tgp+dl5cGk28utYktBsrFqA7HKgrhgPsg6Z/EfhWI4gl1Hwq8B/GmY/0oXZ6nF8hDVesS/FpnYaD/kOWhYQvyg==",
-          "dev": true
-        }
-      }
-    },
-    "@harmowatch/ngx-redux-core": {
-      "version": "0.2.2",
-      "resolved": "https://registry.npmjs.org/@harmowatch/ngx-redux-core/-/ngx-redux-core-0.2.2.tgz",
-      "integrity": "sha512-68I2L8Qe49ApUtezKtiNThcpIfnXAbHanxSJDLm9wQvAL4jBrQVN7K+DthGjO++THCQBHP1U64HHW8KVTRkqhw==",
-      "requires": {
-        "@harmowatch/redux-decorators": "0.1.0",
-        "tslib": "^1.7.1"
-      }
-    },
-    "@harmowatch/redux-decorators": {
-      "version": "0.1.0",
-      "resolved": "https://registry.npmjs.org/@harmowatch/redux-decorators/-/redux-decorators-0.1.0.tgz",
-      "integrity": "sha512-BWpYM+8TYYO2N/gceHcEZVyri1KJ/P3fBfahi8YfyaR+2rQ7cHEWHh/cHciaIt0ceRSX3R1H5zNmo8AYnmYqaA=="
-    },
-    "@ngtools/webpack": {
-      "version": "7.1.4",
-      "resolved": "https://registry.npmjs.org/@ngtools/webpack/-/webpack-7.1.4.tgz",
-      "integrity": "sha512-8A15TPJzg3g7yI70QvBzJ253P32WAgCVre9nMaDdd22UmlbvN8Ke4RuQY7vYVTECLL+bWpFJEFXL+ThzCRUgeA==",
-      "dev": true,
-      "requires": {
-        "@angular-devkit/core": "7.1.4",
-        "enhanced-resolve": "4.1.0",
-        "rxjs": "6.3.3",
-        "tree-kill": "1.2.0",
-        "webpack-sources": "1.2.0"
-      },
-      "dependencies": {
-        "enhanced-resolve": {
-          "version": "4.1.0",
-          "resolved": "https://registry.npmjs.org/enhanced-resolve/-/enhanced-resolve-4.1.0.tgz",
-          "integrity": "sha512-F/7vkyTtyc/llOIn8oWclcB25KdRaiPBpZYDgJHgh/UHtpgT2p2eldQgtQnLtUvfMKPKxbRaQM/hHkvLHt1Vng==",
-          "dev": true,
-          "requires": {
-            "graceful-fs": "^4.1.2",
-            "memory-fs": "^0.4.0",
-            "tapable": "^1.0.0"
-          }
-        },
-        "rxjs": {
-          "version": "6.3.3",
-          "resolved": "https://registry.npmjs.org/rxjs/-/rxjs-6.3.3.tgz",
-          "integrity": "sha512-JTWmoY9tWCs7zvIk/CvRjhjGaOd+OVBM987mxFo+OW66cGpdKjZcpmc74ES1sB//7Kl/PAe8+wEakuhG4pcgOw==",
-          "dev": true,
-          "requires": {
-            "tslib": "^1.9.0"
-          }
-        },
-        "source-map": {
-          "version": "0.6.1",
-          "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.6.1.tgz",
-          "integrity": "sha512-UjgapumWlbMhkBgzT7Ykc5YXUT46F0iKu8SGXq0bcwP5dz/h0Plj6enJqjz1Zbq2l5WaqYnrVbwWOWMyF3F47g==",
-          "dev": true
-        },
-        "tapable": {
-          "version": "1.1.1",
-          "resolved": "https://registry.npmjs.org/tapable/-/tapable-1.1.1.tgz",
-          "integrity": "sha512-9I2ydhj8Z9veORCw5PRm4u9uebCn0mcCa6scWoNcbZ6dAtoo2618u9UUzxgmsCOreJpqDDuv61LvwofW7hLcBA==",
-          "dev": true
-        },
-        "webpack-sources": {
-          "version": "1.2.0",
-          "resolved": "https://registry.npmjs.org/webpack-sources/-/webpack-sources-1.2.0.tgz",
-          "integrity": "sha512-9BZwxR85dNsjWz3blyxdOhTgtnQvv3OEs5xofI0wPYTwu5kaWxS08UuD1oI7WLBLpRO+ylf0ofnXLXWmGb2WMw==",
-          "dev": true,
-          "requires": {
-            "source-list-map": "^2.0.0",
-            "source-map": "~0.6.1"
-          }
-        }
-      }
-    },
-    "@nicky-lenaers/ngx-scroll-to": {
-      "version": "0.6.1",
-      "resolved": "https://registry.npmjs.org/@nicky-lenaers/ngx-scroll-to/-/ngx-scroll-to-0.6.1.tgz",
-      "integrity": "sha512-K5Lffbnvr75VVrcxIM3F2+JX5Eh5cpsDqdcySsO9SLdsLZ0UdHfzoVjUab3452ocpTpNDfC5o24F2CtMx1ENfQ=="
-    },
-    "@schematics/angular": {
-      "version": "7.1.4",
-      "resolved": "https://registry.npmjs.org/@schematics/angular/-/angular-7.1.4.tgz",
-      "integrity": "sha512-4QVSmvQtOELek+FDq+k2ROeH9YrRrPJ6jWK179+qOruKSd4uTgEti/jy+fS0rfr52kDSGdDhz7XTh/QvQB89fg==",
-      "dev": true,
-      "requires": {
-        "@angular-devkit/core": "7.1.4",
-        "@angular-devkit/schematics": "7.1.4",
-        "typescript": "3.1.6"
-      },
-      "dependencies": {
-        "typescript": {
-          "version": "3.1.6",
-          "resolved": "https://registry.npmjs.org/typescript/-/typescript-3.1.6.tgz",
-          "integrity": "sha512-tDMYfVtvpb96msS1lDX9MEdHrW4yOuZ4Kdc4Him9oU796XldPYF/t2+uKoX0BBa0hXXwDlqYQbXY5Rzjzc5hBA==",
-          "dev": true
-        }
-      }
-    },
-    "@schematics/update": {
-      "version": "0.11.4",
-      "resolved": "https://registry.npmjs.org/@schematics/update/-/update-0.11.4.tgz",
-      "integrity": "sha512-InfsMJtdWwoqCPmtlJeXBwRPPgIXUzpzIkCCcayRe9gy6PkPUIlOjfgEZ4Mqm/HR46lqsI8xwZfUK7SLV//a2g==",
-      "dev": true,
-      "requires": {
-        "@angular-devkit/core": "7.1.4",
-        "@angular-devkit/schematics": "7.1.4",
-        "@yarnpkg/lockfile": "1.1.0",
-        "ini": "1.3.5",
-        "pacote": "9.1.1",
-        "rxjs": "6.3.3",
-        "semver": "5.5.1",
-        "semver-intersect": "1.4.0"
-      },
-      "dependencies": {
-        "rxjs": {
-          "version": "6.3.3",
-          "resolved": "https://registry.npmjs.org/rxjs/-/rxjs-6.3.3.tgz",
-          "integrity": "sha512-JTWmoY9tWCs7zvIk/CvRjhjGaOd+OVBM987mxFo+OW66cGpdKjZcpmc74ES1sB//7Kl/PAe8+wEakuhG4pcgOw==",
-          "dev": true,
-          "requires": {
-            "tslib": "^1.9.0"
-          }
-        },
-        "semver": {
-          "version": "5.5.1",
-          "resolved": "https://registry.npmjs.org/semver/-/semver-5.5.1.tgz",
-          "integrity": "sha512-PqpAxfrEhlSUWge8dwIp4tZnQ25DIOthpiaHNIthsjEFQD6EvqUKUDM7L8O2rShkFccYo1VjJR0coWfNkCubRw==",
-          "dev": true
-        }
-      }
-    },
-    "@turf/along": {
-      "version": "5.1.5",
-      "resolved": "https://registry.npmjs.org/@turf/along/-/along-5.1.5.tgz",
-      "integrity": "sha1-YdbmplhKzdq1asVYTge/jL5fi+s=",
-      "requires": {
-        "@turf/bearing": "^5.1.5",
-        "@turf/destination": "^5.1.5",
-        "@turf/distance": "^5.1.5",
-        "@turf/helpers": "^5.1.5"
-      }
-    },
-    "@turf/area": {
-      "version": "5.1.5",
-      "resolved": "https://registry.npmjs.org/@turf/area/-/area-5.1.5.tgz",
-      "integrity": "sha1-79iZv9Jgzb0VQbKjwVX4pdLu+h0=",
-      "requires": {
-        "@turf/helpers": "^5.1.5",
-        "@turf/meta": "^5.1.5"
-      }
-    },
-    "@turf/bbox": {
-      "version": "5.1.5",
-      "resolved": "https://registry.npmjs.org/@turf/bbox/-/bbox-5.1.5.tgz",
-      "integrity": "sha1-MFHfUUrUxQ9KT5uKLRX9i2hA7aM=",
-      "requires": {
-        "@turf/helpers": "^5.1.5",
-        "@turf/meta": "^5.1.5"
-      }
-    },
-    "@turf/bbox-clip": {
-      "version": "5.1.5",
-      "resolved": "https://registry.npmjs.org/@turf/bbox-clip/-/bbox-clip-5.1.5.tgz",
-      "integrity": "sha1-M2S1Mo3/nzz0HZ4C7a/zdNFQzIQ=",
-      "requires": {
-        "@turf/helpers": "^5.1.5",
-        "@turf/invariant": "^5.1.5",
-        "lineclip": "^1.1.5"
-      }
-    },
-    "@turf/bbox-polygon": {
-      "version": "5.1.5",
-      "resolved": "https://registry.npmjs.org/@turf/bbox-polygon/-/bbox-polygon-5.1.5.tgz",
-      "integrity": "sha1-auuk7VHYXSluD3w4uIwznwHu4CQ=",
-      "requires": {
-        "@turf/helpers": "^5.1.5"
-      }
-    },
-    "@turf/bearing": {
-      "version": "5.1.5",
-      "resolved": "https://registry.npmjs.org/@turf/bearing/-/bearing-5.1.5.tgz",
-      "integrity": "sha1-egt5ATbE70eX8CRjBdRcvi0ns/c=",
-      "requires": {
-        "@turf/helpers": "^5.1.5",
-        "@turf/invariant": "^5.1.5"
-      }
-    },
-    "@turf/bezier-spline": {
-      "version": "5.1.5",
-      "resolved": "https://registry.npmjs.org/@turf/bezier-spline/-/bezier-spline-5.1.5.tgz",
-      "integrity": "sha1-WaJ7ul17l+8Vqz/VpA+9I4cEm8o=",
-      "requires": {
-        "@turf/helpers": "^5.1.5",
-        "@turf/invariant": "^5.1.5"
-      }
-    },
-    "@turf/boolean-clockwise": {
-      "version": "5.1.5",
-      "resolved": "https://registry.npmjs.org/@turf/boolean-clockwise/-/boolean-clockwise-5.1.5.tgz",
-      "integrity": "sha1-MwK32sYsXikaB4nimvcoM4f6nes=",
-      "requires": {
-        "@turf/helpers": "^5.1.5",
-        "@turf/invariant": "^5.1.5"
-      }
-    },
-    "@turf/boolean-contains": {
-      "version": "5.1.5",
-      "resolved": "https://registry.npmjs.org/@turf/boolean-contains/-/boolean-contains-5.1.5.tgz",
-      "integrity": "sha1-WW1jruY2961T7pn5/yTJaZSg7xQ=",
-      "requires": {
-        "@turf/bbox": "^5.1.5",
-        "@turf/boolean-point-in-polygon": "^5.1.5",
-        "@turf/boolean-point-on-line": "^5.1.5",
-        "@turf/helpers": "^5.1.5",
-        "@turf/invariant": "^5.1.5"
-      }
-    },
-    "@turf/boolean-crosses": {
-      "version": "5.1.5",
-      "resolved": "https://registry.npmjs.org/@turf/boolean-crosses/-/boolean-crosses-5.1.5.tgz",
-      "integrity": "sha1-Ab+uollvFk3kpNMlCU3HwlXHFdY=",
-      "requires": {
-        "@turf/boolean-point-in-polygon": "^5.1.5",
-        "@turf/helpers": "^5.1.5",
-        "@turf/invariant": "^5.1.5",
-        "@turf/line-intersect": "^5.1.5",
-        "@turf/polygon-to-line": "^5.1.5"
-      }
-    },
-    "@turf/boolean-disjoint": {
-      "version": "5.1.6",
-      "resolved": "https://registry.npmjs.org/@turf/boolean-disjoint/-/boolean-disjoint-5.1.6.tgz",
-      "integrity": "sha512-KHvUS6SBNYHBCLIJEJrg04pF5Oy+Fqn8V5G9U+9pti5vI9tyX7Ln2g7RSB7iJ1Cxsz8QAi6OukhXjEF2/8ZpGg==",
-      "requires": {
-        "@turf/boolean-point-in-polygon": "^5.1.5",
-        "@turf/helpers": "^5.1.5",
-        "@turf/line-intersect": "^5.1.5",
-        "@turf/meta": "^5.1.5",
-        "@turf/polygon-to-line": "^5.1.5"
-      }
-    },
-    "@turf/boolean-equal": {
-      "version": "5.1.5",
-      "resolved": "https://registry.npmjs.org/@turf/boolean-equal/-/boolean-equal-5.1.5.tgz",
-      "integrity": "sha1-Kfj21gu4RQff12WzIlTbjnLJOKQ=",
-      "requires": {
-        "@turf/clean-coords": "^5.1.5",
-        "@turf/helpers": "^5.1.5",
-        "@turf/invariant": "^5.1.5",
-        "geojson-equality": "0.1.6"
-      }
-    },
-    "@turf/boolean-overlap": {
-      "version": "5.1.5",
-      "resolved": "https://registry.npmjs.org/@turf/boolean-overlap/-/boolean-overlap-5.1.5.tgz",
-      "integrity": "sha1-DU5kxSx3CijpPZ7834qLg3OsznU=",
-      "requires": {
-        "@turf/helpers": "^5.1.5",
-        "@turf/invariant": "^5.1.5",
-        "@turf/line-intersect": "^5.1.5",
-        "@turf/line-overlap": "^5.1.5",
-        "@turf/meta": "^5.1.5",
-        "geojson-equality": "0.1.6"
-      }
-    },
-    "@turf/boolean-parallel": {
-      "version": "5.1.5",
-      "resolved": "https://registry.npmjs.org/@turf/boolean-parallel/-/boolean-parallel-5.1.5.tgz",
-      "integrity": "sha1-c5NYR16ltlx+GCejw+DopofTqF0=",
-      "requires": {
-        "@turf/clean-coords": "^5.1.5",
-        "@turf/helpers": "^5.1.5",
-        "@turf/line-segment": "^5.1.5",
-        "@turf/rhumb-bearing": "^5.1.5"
-      }
-    },
-    "@turf/boolean-point-in-polygon": {
-      "version": "5.1.5",
-      "resolved": "https://registry.npmjs.org/@turf/boolean-point-in-polygon/-/boolean-point-in-polygon-5.1.5.tgz",
-      "integrity": "sha1-8BzBlNHgMKVIv9qYHLpDz9YpQbc=",
-      "requires": {
-        "@turf/helpers": "^5.1.5",
-        "@turf/invariant": "^5.1.5"
-      }
-    },
-    "@turf/boolean-point-on-line": {
-      "version": "5.1.5",
-      "resolved": "https://registry.npmjs.org/@turf/boolean-point-on-line/-/boolean-point-on-line-5.1.5.tgz",
-      "integrity": "sha1-9jPF/4Aq0ku48Vja269v9KAj3Xs=",
-      "requires": {
-        "@turf/helpers": "^5.1.5",
-        "@turf/invariant": "^5.1.5"
-      }
-    },
-    "@turf/boolean-within": {
-      "version": "5.1.5",
-      "resolved": "https://registry.npmjs.org/@turf/boolean-within/-/boolean-within-5.1.5.tgz",
-      "integrity": "sha1-RxBdVtB1Kp0Pv81Dw2pfkUnchpc=",
-      "requires": {
-        "@turf/bbox": "^5.1.5",
-        "@turf/boolean-point-in-polygon": "^5.1.5",
-        "@turf/boolean-point-on-line": "^5.1.5",
-        "@turf/helpers": "^5.1.5",
-        "@turf/invariant": "^5.1.5"
-      }
-    },
-    "@turf/buffer": {
-      "version": "5.1.5",
-      "resolved": "https://registry.npmjs.org/@turf/buffer/-/buffer-5.1.5.tgz",
-      "integrity": "sha1-hByWJ8+5dLEirE4alW8EZrwCMcQ=",
-      "requires": {
-        "@turf/bbox": "^5.1.5",
-        "@turf/center": "^5.1.5",
-        "@turf/helpers": "^5.1.5",
-        "@turf/meta": "^5.1.5",
-        "@turf/projection": "^5.1.5",
-        "d3-geo": "1.7.1",
-        "turf-jsts": "*"
-      }
-    },
-    "@turf/center": {
-      "version": "5.1.5",
-      "resolved": "https://registry.npmjs.org/@turf/center/-/center-5.1.5.tgz",
-      "integrity": "sha1-RKss2VT2PA03dX9xWKmcPvURS4A=",
-      "requires": {
-        "@turf/bbox": "^5.1.5",
-        "@turf/helpers": "^5.1.5"
-      }
-    },
-    "@turf/center-mean": {
-      "version": "5.1.5",
-      "resolved": "https://registry.npmjs.org/@turf/center-mean/-/center-mean-5.1.5.tgz",
-      "integrity": "sha1-jI6YdTkeXwnw5uePXWYbiLIQigo=",
-      "requires": {
-        "@turf/bbox": "^5.1.5",
-        "@turf/helpers": "^5.1.5",
-        "@turf/meta": "^5.1.5"
-      }
-    },
-    "@turf/center-median": {
-      "version": "5.1.5",
-      "resolved": "https://registry.npmjs.org/@turf/center-median/-/center-median-5.1.5.tgz",
-      "integrity": "sha1-u0Yb/noqSGAdikcnaFcYcjoUqHI=",
-      "requires": {
-        "@turf/center-mean": "^5.1.5",
-        "@turf/centroid": "^5.1.5",
-        "@turf/distance": "^5.1.5",
-        "@turf/helpers": "^5.1.5",
-        "@turf/meta": "^5.1.5"
-      }
-    },
-    "@turf/center-of-mass": {
-      "version": "5.1.5",
-      "resolved": "https://registry.npmjs.org/@turf/center-of-mass/-/center-of-mass-5.1.5.tgz",
-      "integrity": "sha1-TTvXnYhJjbq4Mk1PafAyL2Uguco=",
-      "requires": {
-        "@turf/centroid": "^5.1.5",
-        "@turf/convex": "^5.1.5",
-        "@turf/helpers": "^5.1.5",
-        "@turf/invariant": "^5.1.5",
-        "@turf/meta": "^5.1.5"
-      }
-    },
-    "@turf/centroid": {
-      "version": "5.1.5",
-      "resolved": "https://registry.npmjs.org/@turf/centroid/-/centroid-5.1.5.tgz",
-      "integrity": "sha1-d4radCFjNQIa2P0OemWoNJ1Tx2k=",
-      "requires": {
-        "@turf/helpers": "^5.1.5",
-        "@turf/meta": "^5.1.5"
-      }
-    },
-    "@turf/circle": {
-      "version": "5.1.5",
-      "resolved": "https://registry.npmjs.org/@turf/circle/-/circle-5.1.5.tgz",
-      "integrity": "sha1-mxV3g1UIq1L7HBCypQZcuiuHtqU=",
-      "requires": {
-        "@turf/destination": "^5.1.5",
-        "@turf/helpers": "^5.1.5"
-      }
-    },
-    "@turf/clean-coords": {
-      "version": "5.1.5",
-      "resolved": "https://registry.npmjs.org/@turf/clean-coords/-/clean-coords-5.1.5.tgz",
-      "integrity": "sha1-EoAKmKeMmkUqcuxChJPEOs8q2h8=",
-      "requires": {
-        "@turf/helpers": "^5.1.5",
-        "@turf/invariant": "^5.1.5"
-      }
-    },
-    "@turf/clone": {
-      "version": "5.1.5",
-      "resolved": "https://registry.npmjs.org/@turf/clone/-/clone-5.1.5.tgz",
-      "integrity": "sha1-JT6NNUdxgZduM636tQoPAqfw42c=",
-      "requires": {
-        "@turf/helpers": "^5.1.5"
-      }
-    },
-    "@turf/clusters": {
-      "version": "5.1.5",
-      "resolved": "https://registry.npmjs.org/@turf/clusters/-/clusters-5.1.5.tgz",
-      "integrity": "sha1-ZzpeXxsZycq6vFfJCO6t1oIiTdQ=",
-      "requires": {
-        "@turf/helpers": "^5.1.5",
-        "@turf/meta": "^5.1.5"
-      }
-    },
-    "@turf/clusters-dbscan": {
-      "version": "5.1.5",
-      "resolved": "https://registry.npmjs.org/@turf/clusters-dbscan/-/clusters-dbscan-5.1.5.tgz",
-      "integrity": "sha1-V4H7TmVsdHoLjpk333MYHAMJ4m8=",
-      "requires": {
-        "@turf/clone": "^5.1.5",
-        "@turf/distance": "^5.1.5",
-        "@turf/helpers": "^5.1.5",
-        "@turf/invariant": "^5.1.5",
-        "@turf/meta": "^5.1.5",
-        "density-clustering": "1.3.0"
-      }
-    },
-    "@turf/clusters-kmeans": {
-      "version": "5.1.5",
-      "resolved": "https://registry.npmjs.org/@turf/clusters-kmeans/-/clusters-kmeans-5.1.5.tgz",
-      "integrity": "sha1-/W3+qLEzuovcI3CsPKzuFYejAvE=",
-      "requires": {
-        "@turf/clone": "^5.1.5",
-        "@turf/helpers": "^5.1.5",
-        "@turf/invariant": "^5.1.5",
-        "@turf/meta": "^5.1.5",
-        "skmeans": "0.9.7"
-      }
-    },
-    "@turf/collect": {
-      "version": "5.1.5",
-      "resolved": "https://registry.npmjs.org/@turf/collect/-/collect-5.1.5.tgz",
-      "integrity": "sha1-/pjJqMIY7PJP/DPXApUXt8GbKj4=",
-      "requires": {
-        "@turf/bbox": "^5.1.5",
-        "@turf/boolean-point-in-polygon": "^5.1.5",
-        "@turf/helpers": "^5.1.5",
-        "rbush": "^2.0.1"
-      }
-    },
-    "@turf/combine": {
-      "version": "5.1.5",
-      "resolved": "https://registry.npmjs.org/@turf/combine/-/combine-5.1.5.tgz",
-      "integrity": "sha1-uxS976VVBDVxlfwaEkzX1TqMiQU=",
-      "requires": {
-        "@turf/helpers": "^5.1.5",
-        "@turf/meta": "^5.1.5"
-      }
-    },
-    "@turf/concave": {
-      "version": "5.1.5",
-      "resolved": "https://registry.npmjs.org/@turf/concave/-/concave-5.1.5.tgz",
-      "integrity": "sha1-I7uqw4fQNLlldKG9cNBZI3qdIRA=",
-      "requires": {
-        "@turf/clone": "^5.1.5",
-        "@turf/distance": "^5.1.5",
-        "@turf/helpers": "^5.1.5",
-        "@turf/invariant": "^5.1.5",
-        "@turf/meta": "^5.1.5",
-        "@turf/tin": "^5.1.5",
-        "topojson-client": "3.x",
-        "topojson-server": "3.x"
-      }
-    },
-    "@turf/convex": {
-      "version": "5.1.5",
-      "resolved": "https://registry.npmjs.org/@turf/convex/-/convex-5.1.5.tgz",
-      "integrity": "sha1-Dfk3fdACIWzpghsH9wXgN9rj4B0=",
-      "requires": {
-        "@turf/helpers": "^5.1.5",
-        "@turf/meta": "^5.1.5",
-        "concaveman": "*"
-      }
-    },
-    "@turf/destination": {
-      "version": "5.1.5",
-      "resolved": "https://registry.npmjs.org/@turf/destination/-/destination-5.1.5.tgz",
-      "integrity": "sha1-7TU4G9zoO73cvQei4rzivd/7zCY=",
-      "requires": {
-        "@turf/helpers": "^5.1.5",
-        "@turf/invariant": "^5.1.5"
-      }
-    },
-    "@turf/difference": {
-      "version": "5.1.5",
-      "resolved": "https://registry.npmjs.org/@turf/difference/-/difference-5.1.5.tgz",
-      "integrity": "sha1-ok1pCnvKgD8QkKnuO52Qb8Q3H0I=",
-      "requires": {
-        "@turf/area": "^5.1.5",
-        "@turf/helpers": "^5.1.5",
-        "@turf/invariant": "^5.1.5",
-        "@turf/meta": "^5.1.5",
-        "turf-jsts": "*"
-      }
-    },
-    "@turf/dissolve": {
-      "version": "5.1.5",
-      "resolved": "https://registry.npmjs.org/@turf/dissolve/-/dissolve-5.1.5.tgz",
-      "integrity": "sha1-LPEzqQIdIWODHD16lY1lB/nYGTg=",
-      "requires": {
-        "@turf/boolean-overlap": "^5.1.5",
-        "@turf/clone": "^5.1.5",
-        "@turf/helpers": "^5.1.5",
-        "@turf/invariant": "^5.1.5",
-        "@turf/line-intersect": "^5.1.5",
-        "@turf/meta": "^5.1.5",
-        "@turf/union": "^5.1.5",
-        "geojson-rbush": "2.1.0",
-        "get-closest": "*"
-      }
-    },
-    "@turf/distance": {
-      "version": "5.1.5",
-      "resolved": "https://registry.npmjs.org/@turf/distance/-/distance-5.1.5.tgz",
-      "integrity": "sha1-Oc8YIEu/h1h9cH5gmmARiQkVZAk=",
-      "requires": {
-        "@turf/helpers": "^5.1.5",
-        "@turf/invariant": "^5.1.5"
-      }
-    },
-    "@turf/ellipse": {
-      "version": "5.1.5",
-      "resolved": "https://registry.npmjs.org/@turf/ellipse/-/ellipse-5.1.5.tgz",
-      "integrity": "sha1-1XyrhTmFkgzeYCKKeNgEWAJcVL4=",
-      "requires": {
-        "@turf/helpers": "^5.1.5",
-        "@turf/invariant": "^5.1.5",
-        "@turf/rhumb-destination": "^5.1.5",
-        "@turf/transform-rotate": "^5.1.5"
-      }
-    },
-    "@turf/envelope": {
-      "version": "5.1.5",
-      "resolved": "https://registry.npmjs.org/@turf/envelope/-/envelope-5.1.5.tgz",
-      "integrity": "sha1-UBMwnFP91D369LWIplw/7X28EIo=",
-      "requires": {
-        "@turf/bbox": "^5.1.5",
-        "@turf/bbox-polygon": "^5.1.5",
-        "@turf/helpers": "^5.1.5"
-      }
-    },
-    "@turf/explode": {
-      "version": "5.1.5",
-      "resolved": "https://registry.npmjs.org/@turf/explode/-/explode-5.1.5.tgz",
-      "integrity": "sha1-sSsvd0AEobSPYrqVsgocZVo94Rg=",
-      "requires": {
-        "@turf/helpers": "^5.1.5",
-        "@turf/meta": "^5.1.5"
-      }
-    },
-    "@turf/flatten": {
-      "version": "5.1.5",
-      "resolved": "https://registry.npmjs.org/@turf/flatten/-/flatten-5.1.5.tgz",
-      "integrity": "sha1-2iknBnEz7WFpsLnWB7khVoiqE1g=",
-      "requires": {
-        "@turf/helpers": "^5.1.5",
-        "@turf/meta": "^5.1.5"
-      }
-    },
-    "@turf/flip": {
-      "version": "5.1.5",
-      "resolved": "https://registry.npmjs.org/@turf/flip/-/flip-5.1.5.tgz",
-      "integrity": "sha1-Q29kOnIvDKU7n85jjkaT2zYIpoo=",
-      "requires": {
-        "@turf/clone": "^5.1.5",
-        "@turf/helpers": "^5.1.5",
-        "@turf/meta": "^5.1.5"
-      }
-    },
-    "@turf/great-circle": {
-      "version": "5.1.5",
-      "resolved": "https://registry.npmjs.org/@turf/great-circle/-/great-circle-5.1.5.tgz",
-      "integrity": "sha1-3r+2cc5HVQnLY3MBwV/PzPo1mpM=",
-      "requires": {
-        "@turf/helpers": "^5.1.5",
-        "@turf/invariant": "^5.1.5"
-      }
-    },
-    "@turf/helpers": {
-      "version": "5.1.5",
-      "resolved": "https://registry.npmjs.org/@turf/helpers/-/helpers-5.1.5.tgz",
-      "integrity": "sha1-FTQFInq5M9AEpbuWQantmZ/L4M8="
-    },
-    "@turf/hex-grid": {
-      "version": "5.1.5",
-      "resolved": "https://registry.npmjs.org/@turf/hex-grid/-/hex-grid-5.1.5.tgz",
-      "integrity": "sha1-m3ul/s9QUfHoWJL3E/zlxVBQKmo=",
-      "requires": {
-        "@turf/distance": "^5.1.5",
-        "@turf/helpers": "^5.1.5",
-        "@turf/intersect": "^5.1.5",
-        "@turf/invariant": "^5.1.5"
-      }
-    },
-    "@turf/interpolate": {
-      "version": "5.1.5",
-      "resolved": "https://registry.npmjs.org/@turf/interpolate/-/interpolate-5.1.5.tgz",
-      "integrity": "sha1-DxLwq3VtbdEK+ykMpuh3ve8BPqo=",
-      "requires": {
-        "@turf/bbox": "^5.1.5",
-        "@turf/centroid": "^5.1.5",
-        "@turf/clone": "^5.1.5",
-        "@turf/distance": "^5.1.5",
-        "@turf/helpers": "^5.1.5",
-        "@turf/hex-grid": "^5.1.5",
-        "@turf/invariant": "^5.1.5",
-        "@turf/meta": "^5.1.5",
-        "@turf/point-grid": "^5.1.5",
-        "@turf/square-grid": "^5.1.5",
-        "@turf/triangle-grid": "^5.1.5"
-      }
-    },
-    "@turf/intersect": {
-      "version": "5.1.6",
-      "resolved": "https://registry.npmjs.org/@turf/intersect/-/intersect-5.1.6.tgz",
-      "integrity": "sha512-KXyNv/GXdoGAOy03qZF53rgtXC2tNhF/4jLwTKiVRrBQH6kcEpipGStdJ+QkYIlarQPa8f7I9UlVAB19et4MfQ==",
-      "requires": {
-        "@turf/clean-coords": "^5.1.5",
-        "@turf/helpers": "^5.1.5",
-        "@turf/invariant": "^5.1.5",
-        "@turf/truncate": "^5.1.5",
-        "turf-jsts": "*"
-      }
-    },
-    "@turf/invariant": {
-      "version": "5.1.5",
-      "resolved": "https://registry.npmjs.org/@turf/invariant/-/invariant-5.1.5.tgz",
-      "integrity": "sha1-9Z9P76CSJLFdzhZR+QPIaNV6JOE=",
-      "requires": {
-        "@turf/helpers": "^5.1.5"
-      }
-    },
-    "@turf/isobands": {
-      "version": "5.1.5",
-      "resolved": "https://registry.npmjs.org/@turf/isobands/-/isobands-5.1.5.tgz",
-      "integrity": "sha1-a0TO9YTVUaMTBBh68jtKFYLj8I0=",
-      "requires": {
-        "@turf/area": "^5.1.5",
-        "@turf/bbox": "^5.1.5",
-        "@turf/boolean-point-in-polygon": "^5.1.5",
-        "@turf/explode": "^5.1.5",
-        "@turf/helpers": "^5.1.5",
-        "@turf/invariant": "^5.1.5",
-        "@turf/meta": "^5.1.5"
-      }
-    },
-    "@turf/isolines": {
-      "version": "5.1.5",
-      "resolved": "https://registry.npmjs.org/@turf/isolines/-/isolines-5.1.5.tgz",
-      "integrity": "sha1-irTn9Cuz38VGFOW/FVln9+VdLeE=",
-      "requires": {
-        "@turf/bbox": "^5.1.5",
-        "@turf/helpers": "^5.1.5",
-        "@turf/invariant": "^5.1.5",
-        "@turf/meta": "^5.1.5"
-      }
-    },
-    "@turf/kinks": {
-      "version": "5.1.5",
-      "resolved": "https://registry.npmjs.org/@turf/kinks/-/kinks-5.1.5.tgz",
-      "integrity": "sha1-irtpYdm7AQchO63fLCwmQNAlaYA=",
-      "requires": {
-        "@turf/helpers": "^5.1.5"
-      }
-    },
-    "@turf/length": {
-      "version": "5.1.5",
-      "resolved": "https://registry.npmjs.org/@turf/length/-/length-5.1.5.tgz",
-      "integrity": "sha1-86X4ZMK5lqi7RxeUU1ofrxLuvvs=",
-      "requires": {
-        "@turf/distance": "^5.1.5",
-        "@turf/helpers": "^5.1.5",
-        "@turf/meta": "^5.1.5"
-      }
-    },
-    "@turf/line-arc": {
-      "version": "5.1.5",
-      "resolved": "https://registry.npmjs.org/@turf/line-arc/-/line-arc-5.1.5.tgz",
-      "integrity": "sha1-AHinRHg1oSrkFKIR+aZNEYYVDhU=",
-      "requires": {
-        "@turf/circle": "^5.1.5",
-        "@turf/destination": "^5.1.5",
-        "@turf/helpers": "^5.1.5"
-      }
-    },
-    "@turf/line-chunk": {
-      "version": "5.1.5",
-      "resolved": "https://registry.npmjs.org/@turf/line-chunk/-/line-chunk-5.1.5.tgz",
-      "integrity": "sha1-kQqFwFwG2dD5w4l3oF4IGNUIXEI=",
-      "requires": {
-        "@turf/helpers": "^5.1.5",
-        "@turf/length": "^5.1.5",
-        "@turf/line-slice-along": "^5.1.5",
-        "@turf/meta": "^5.1.5"
-      }
-    },
-    "@turf/line-intersect": {
-      "version": "5.1.5",
-      "resolved": "https://registry.npmjs.org/@turf/line-intersect/-/line-intersect-5.1.5.tgz",
-      "integrity": "sha1-DikHGuQDKV5JFyO8SfXPrI0R3fM=",
-      "requires": {
-        "@turf/helpers": "^5.1.5",
-        "@turf/invariant": "^5.1.5",
-        "@turf/line-segment": "^5.1.5",
-        "@turf/meta": "^5.1.5",
-        "geojson-rbush": "2.1.0"
-      }
-    },
-    "@turf/line-offset": {
-      "version": "5.1.5",
-      "resolved": "https://registry.npmjs.org/@turf/line-offset/-/line-offset-5.1.5.tgz",
-      "integrity": "sha1-KrWy8In4yRPiMdmUN4553KkLWh4=",
-      "requires": {
-        "@turf/helpers": "^5.1.5",
-        "@turf/invariant": "^5.1.5",
-        "@turf/meta": "^5.1.5"
-      }
-    },
-    "@turf/line-overlap": {
-      "version": "5.1.5",
-      "resolved": "https://registry.npmjs.org/@turf/line-overlap/-/line-overlap-5.1.5.tgz",
-      "integrity": "sha1-lDxvh6A4bcQ9+sEdKz/5wRLNP2A=",
-      "requires": {
-        "@turf/boolean-point-on-line": "^5.1.5",
-        "@turf/helpers": "^5.1.5",
-        "@turf/invariant": "^5.1.5",
-        "@turf/line-segment": "^5.1.5",
-        "@turf/meta": "^5.1.5",
-        "@turf/nearest-point-on-line": "^5.1.5",
-        "geojson-rbush": "2.1.0"
-      }
-    },
-    "@turf/line-segment": {
-      "version": "5.1.5",
-      "resolved": "https://registry.npmjs.org/@turf/line-segment/-/line-segment-5.1.5.tgz",
-      "integrity": "sha1-Mgeq7lRqskw9jcPMY/kcdwuAE+U=",
-      "requires": {
-        "@turf/helpers": "^5.1.5",
-        "@turf/invariant": "^5.1.5",
-        "@turf/meta": "^5.1.5"
-      }
-    },
-    "@turf/line-slice": {
-      "version": "5.1.5",
-      "resolved": "https://registry.npmjs.org/@turf/line-slice/-/line-slice-5.1.5.tgz",
-      "integrity": "sha1-Hs/OFGKjeFeXVM7fRGTN4mgp8rU=",
-      "requires": {
-        "@turf/helpers": "^5.1.5",
-        "@turf/invariant": "^5.1.5",
-        "@turf/nearest-point-on-line": "^5.1.5"
-      }
-    },
-    "@turf/line-slice-along": {
-      "version": "5.1.5",
-      "resolved": "https://registry.npmjs.org/@turf/line-slice-along/-/line-slice-along-5.1.5.tgz",
-      "integrity": "sha1-7drQoh70efKWihG9LdcomiEy6aU=",
-      "requires": {
-        "@turf/bearing": "^5.1.5",
-        "@turf/destination": "^5.1.5",
-        "@turf/distance": "^5.1.5",
-        "@turf/helpers": "^5.1.5"
-      }
-    },
-    "@turf/line-split": {
-      "version": "5.1.5",
-      "resolved": "https://registry.npmjs.org/@turf/line-split/-/line-split-5.1.5.tgz",
-      "integrity": "sha1-Wy30w3YZty73JbUWPPmSbVVArLc=",
-      "requires": {
-        "@turf/bbox": "^5.1.5",
-        "@turf/helpers": "^5.1.5",
-        "@turf/invariant": "^5.1.5",
-        "@turf/line-intersect": "^5.1.5",
-        "@turf/line-segment": "^5.1.5",
-        "@turf/meta": "^5.1.5",
-        "@turf/nearest-point-on-line": "^5.1.5",
-        "@turf/square": "^5.1.5",
-        "@turf/truncate": "^5.1.5",
-        "geojson-rbush": "2.1.0"
-      }
-    },
-    "@turf/line-to-polygon": {
-      "version": "5.1.5",
-      "resolved": "https://registry.npmjs.org/@turf/line-to-polygon/-/line-to-polygon-5.1.5.tgz",
-      "integrity": "sha1-ITz0Gmj4Ikd4ujnTGH3sPouBhlo=",
-      "requires": {
-        "@turf/bbox": "^5.1.5",
-        "@turf/helpers": "^5.1.5",
-        "@turf/invariant": "^5.1.5"
-      }
-    },
-    "@turf/mask": {
-      "version": "5.1.5",
-      "resolved": "https://registry.npmjs.org/@turf/mask/-/mask-5.1.5.tgz",
-      "integrity": "sha1-mrD+8aJyyY/j70kvn/thggayQtU=",
-      "requires": {
-        "@turf/bbox": "^5.1.5",
-        "@turf/helpers": "^5.1.5",
-        "@turf/meta": "^5.1.5",
-        "@turf/union": "^5.1.5",
-        "rbush": "^2.0.1"
-      }
-    },
-    "@turf/meta": {
-      "version": "5.1.6",
-      "resolved": "https://registry.npmjs.org/@turf/meta/-/meta-5.1.6.tgz",
-      "integrity": "sha1-wgqGPt7Qhp+yhUje6Ik0G8y0akY=",
-      "requires": {
-        "@turf/helpers": "^5.1.5"
-      }
-    },
-    "@turf/midpoint": {
-      "version": "5.1.5",
-      "resolved": "https://registry.npmjs.org/@turf/midpoint/-/midpoint-5.1.5.tgz",
-      "integrity": "sha1-4mH2srDqgSTM7/VSomLdRlydBfA=",
-      "requires": {
-        "@turf/bearing": "^5.1.5",
-        "@turf/destination": "^5.1.5",
-        "@turf/distance": "^5.1.5",
-        "@turf/helpers": "^5.1.5"
-      }
-    },
-    "@turf/nearest-point": {
-      "version": "5.1.5",
-      "resolved": "https://registry.npmjs.org/@turf/nearest-point/-/nearest-point-5.1.5.tgz",
-      "integrity": "sha1-EgUN5Bw5hEMiTHl43g9iE5ANNPs=",
-      "requires": {
-        "@turf/clone": "^5.1.5",
-        "@turf/distance": "^5.1.5",
-        "@turf/helpers": "^5.1.5",
-        "@turf/meta": "^5.1.5"
-      }
-    },
-    "@turf/nearest-point-on-line": {
-      "version": "5.1.5",
-      "resolved": "https://registry.npmjs.org/@turf/nearest-point-on-line/-/nearest-point-on-line-5.1.5.tgz",
-      "integrity": "sha1-VgauKX8VlHUkvqUaKp71HsG/nDY=",
-      "requires": {
-        "@turf/bearing": "^5.1.5",
-        "@turf/destination": "^5.1.5",
-        "@turf/distance": "^5.1.5",
-        "@turf/helpers": "^5.1.5",
-        "@turf/invariant": "^5.1.5",
-        "@turf/line-intersect": "^5.1.5",
-        "@turf/meta": "^5.1.5"
-      }
-    },
-    "@turf/nearest-point-to-line": {
-      "version": "5.1.6",
-      "resolved": "https://registry.npmjs.org/@turf/nearest-point-to-line/-/nearest-point-to-line-5.1.6.tgz",
-      "integrity": "sha512-ZSvDIEiHhifn/vNwLXZI/E8xmEz5yBPqfUR7BVHRZrB1cP7jLhKZvkbidjG//uW8Fr1Ulc+PFOXczLspIcx/lw==",
-      "requires": {
-        "@turf/helpers": "6.x",
-        "@turf/invariant": "6.x",
-        "@turf/meta": "6.x",
-        "@turf/point-to-line-distance": "^5.1.5",
-        "object-assign": "*"
-      },
-      "dependencies": {
-        "@turf/helpers": {
-          "version": "6.1.4",
-          "resolved": "https://registry.npmjs.org/@turf/helpers/-/helpers-6.1.4.tgz",
-          "integrity": "sha512-vJvrdOZy1ngC7r3MDA7zIGSoIgyrkWcGnNIEaqn/APmw+bVLF2gAW7HIsdTxd12s5wQMqEpqIQrmrbRRZ0xC7g=="
-        },
-        "@turf/invariant": {
-          "version": "6.1.2",
-          "resolved": "https://registry.npmjs.org/@turf/invariant/-/invariant-6.1.2.tgz",
-          "integrity": "sha512-WU08Ph8j0J2jVGlQCKChXoCtI50BB3yEH21V++V0T4cR1T27HKCxkehV2sYMwTierfMBgjwSwDIsxnR4/2mWXg==",
-          "requires": {
-            "@turf/helpers": "6.x"
-          }
-        },
-        "@turf/meta": {
-          "version": "6.0.2",
-          "resolved": "https://registry.npmjs.org/@turf/meta/-/meta-6.0.2.tgz",
-          "integrity": "sha512-VA7HJkx7qF1l3+GNGkDVn2oXy4+QoLP6LktXAaZKjuT1JI0YESat7quUkbCMy4zP9lAUuvS4YMslLyTtr919FA==",
-          "requires": {
-            "@turf/helpers": "6.x"
-          }
-        }
-      }
-    },
-    "@turf/planepoint": {
-      "version": "5.1.5",
-      "resolved": "https://registry.npmjs.org/@turf/planepoint/-/planepoint-5.1.5.tgz",
-      "integrity": "sha1-GLvfAG91ne9eQsagBsn53oGyt/8=",
-      "requires": {
-        "@turf/helpers": "^5.1.5",
-        "@turf/invariant": "^5.1.5"
-      }
-    },
-    "@turf/point-grid": {
-      "version": "5.1.5",
-      "resolved": "https://registry.npmjs.org/@turf/point-grid/-/point-grid-5.1.5.tgz",
-      "integrity": "sha1-MFFBJI9Quv42zn5mukuX56sjaIc=",
-      "requires": {
-        "@turf/boolean-within": "^5.1.5",
-        "@turf/distance": "^5.1.5",
-        "@turf/helpers": "^5.1.5",
-        "@turf/invariant": "^5.1.5"
-      }
-    },
-    "@turf/point-on-feature": {
-      "version": "5.1.5",
-      "resolved": "https://registry.npmjs.org/@turf/point-on-feature/-/point-on-feature-5.1.5.tgz",
-      "integrity": "sha1-MMfwMkMCd8ZBjZbSieRba/shP+c=",
-      "requires": {
-        "@turf/boolean-point-in-polygon": "^5.1.5",
-        "@turf/center": "^5.1.5",
-        "@turf/explode": "^5.1.5",
-        "@turf/helpers": "^5.1.5",
-        "@turf/nearest-point": "^5.1.5"
-      }
-    },
-    "@turf/point-to-line-distance": {
-      "version": "5.1.6",
-      "resolved": "https://registry.npmjs.org/@turf/point-to-line-distance/-/point-to-line-distance-5.1.6.tgz",
-      "integrity": "sha512-PE3hiTeeDEi4ZLPtI8XAzFYW9nHo1EVsZGm/4ZVV8jo39d3X1oLVHxY3e1PkCmWwRapXy4QLqvnTQ7nU4wspNw==",
-      "requires": {
-        "@turf/bearing": "6.x",
-        "@turf/distance": "6.x",
-        "@turf/helpers": "6.x",
-        "@turf/invariant": "6.x",
-        "@turf/meta": "6.x",
-        "@turf/projection": "6.x",
-        "@turf/rhumb-bearing": "6.x",
-        "@turf/rhumb-distance": "6.x"
-      },
-      "dependencies": {
-        "@turf/bearing": {
-          "version": "6.0.1",
-          "resolved": "https://registry.npmjs.org/@turf/bearing/-/bearing-6.0.1.tgz",
-          "integrity": "sha512-mXY1NozqV9EFfBTbUItujwfqfQF0G/Xe2fzvnZle90ekPEUfhi4Dgf5JswJTd96J9LiT8kcd6Jonp5khnx0wIg==",
-          "requires": {
-            "@turf/helpers": "6.x",
-            "@turf/invariant": "6.x"
-          }
-        },
-        "@turf/clone": {
-          "version": "6.0.2",
-          "resolved": "https://registry.npmjs.org/@turf/clone/-/clone-6.0.2.tgz",
-          "integrity": "sha512-UVpYPnW3wRj3bPncR6Z2PRbowBk+nEdVWgGewPxrKKLfvswtVtG9n/OIyvbU3E3ZOadBVxTH2uAMEMOz4800FA==",
-          "requires": {
-            "@turf/helpers": "6.x"
-          }
-        },
-        "@turf/distance": {
-          "version": "6.0.1",
-          "resolved": "https://registry.npmjs.org/@turf/distance/-/distance-6.0.1.tgz",
-          "integrity": "sha512-q7t7rWIWfkg7MP1Vt4uLjSEhe5rPfCO2JjpKmk7JC+QZKEQkuvHEqy3ejW1iC7Kw5ZcZNR3qdMGGz+6HnVwqvg==",
-          "requires": {
-            "@turf/helpers": "6.x",
-            "@turf/invariant": "6.x"
-          }
-        },
-        "@turf/helpers": {
-          "version": "6.1.4",
-          "resolved": "https://registry.npmjs.org/@turf/helpers/-/helpers-6.1.4.tgz",
-          "integrity": "sha512-vJvrdOZy1ngC7r3MDA7zIGSoIgyrkWcGnNIEaqn/APmw+bVLF2gAW7HIsdTxd12s5wQMqEpqIQrmrbRRZ0xC7g=="
-        },
-        "@turf/invariant": {
-          "version": "6.1.2",
-          "resolved": "https://registry.npmjs.org/@turf/invariant/-/invariant-6.1.2.tgz",
-          "integrity": "sha512-WU08Ph8j0J2jVGlQCKChXoCtI50BB3yEH21V++V0T4cR1T27HKCxkehV2sYMwTierfMBgjwSwDIsxnR4/2mWXg==",
-          "requires": {
-            "@turf/helpers": "6.x"
-          }
-        },
-        "@turf/meta": {
-          "version": "6.0.2",
-          "resolved": "https://registry.npmjs.org/@turf/meta/-/meta-6.0.2.tgz",
-          "integrity": "sha512-VA7HJkx7qF1l3+GNGkDVn2oXy4+QoLP6LktXAaZKjuT1JI0YESat7quUkbCMy4zP9lAUuvS4YMslLyTtr919FA==",
-          "requires": {
-            "@turf/helpers": "6.x"
-          }
-        },
-        "@turf/projection": {
-          "version": "6.0.1",
-          "resolved": "https://registry.npmjs.org/@turf/projection/-/projection-6.0.1.tgz",
-          "integrity": "sha512-Y3RvGT6I53MjYKLG69e9sMk45wJXcLbrEO1t6P3WQQQGqA2gYhhMJyV41vE2Z2llrJpvs2dDx/tIeQzGd0HHMQ==",
-          "requires": {
-            "@turf/clone": "6.x",
-            "@turf/helpers": "6.x",
-            "@turf/meta": "6.x"
-          }
-        },
-        "@turf/rhumb-bearing": {
-          "version": "6.0.1",
-          "resolved": "https://registry.npmjs.org/@turf/rhumb-bearing/-/rhumb-bearing-6.0.1.tgz",
-          "integrity": "sha512-MVBra8OVfjM4+/N0B3o6cBIYg9p/uRKzA9uk05RfrzasEbUL1vdD23LkTooVL74Yw4UxL8BQD9hS5Re2COJFDA==",
-          "requires": {
-            "@turf/helpers": "6.x",
-            "@turf/invariant": "6.x"
-          }
-        },
-        "@turf/rhumb-distance": {
-          "version": "6.0.1",
-          "resolved": "https://registry.npmjs.org/@turf/rhumb-distance/-/rhumb-distance-6.0.1.tgz",
-          "integrity": "sha512-3G45DQtQByzzfHFPcCyJdUZFwsd45zfZ7sAb1ddF7mhEj4G70+T2G3GKjInymqDNrbyh2gbG6wQiZSToC8Uf9g==",
-          "requires": {
-            "@turf/helpers": "6.x",
-            "@turf/invariant": "6.x"
-          }
-        }
-      }
-    },
-    "@turf/points-within-polygon": {
-      "version": "5.1.5",
-      "resolved": "https://registry.npmjs.org/@turf/points-within-polygon/-/points-within-polygon-5.1.5.tgz",
-      "integrity": "sha1-K4VaXfOq2lfC7oIKB1SrlJKKIzc=",
-      "requires": {
-        "@turf/boolean-point-in-polygon": "^5.1.5",
-        "@turf/helpers": "^5.1.5",
-        "@turf/meta": "^5.1.5"
-      }
-    },
-    "@turf/polygon-tangents": {
-      "version": "5.1.5",
-      "resolved": "https://registry.npmjs.org/@turf/polygon-tangents/-/polygon-tangents-5.1.5.tgz",
-      "integrity": "sha1-K/AJkUcwJbF44lDcfLmuVAm71lI=",
-      "requires": {
-        "@turf/helpers": "^5.1.5",
-        "@turf/invariant": "^5.1.5"
-      }
-    },
-    "@turf/polygon-to-line": {
-      "version": "5.1.5",
-      "resolved": "https://registry.npmjs.org/@turf/polygon-to-line/-/polygon-to-line-5.1.5.tgz",
-      "integrity": "sha1-I7tEjYTcTGUZmaxhGjbZHFklA2o=",
-      "requires": {
-        "@turf/helpers": "^5.1.5",
-        "@turf/invariant": "^5.1.5"
-      }
-    },
-    "@turf/polygonize": {
-      "version": "5.1.5",
-      "resolved": "https://registry.npmjs.org/@turf/polygonize/-/polygonize-5.1.5.tgz",
-      "integrity": "sha1-BJP6EYefOdELmtAs5qI+lC0IqjI=",
-      "requires": {
-        "@turf/boolean-point-in-polygon": "^5.1.5",
-        "@turf/envelope": "^5.1.5",
-        "@turf/helpers": "^5.1.5",
-        "@turf/invariant": "^5.1.5",
-        "@turf/meta": "^5.1.5"
-      }
-    },
-    "@turf/projection": {
-      "version": "5.1.5",
-      "resolved": "https://registry.npmjs.org/@turf/projection/-/projection-5.1.5.tgz",
-      "integrity": "sha1-JFF+7rLzaBa6n3EueubWo2jt91c=",
-      "requires": {
-        "@turf/clone": "^5.1.5",
-        "@turf/helpers": "^5.1.5",
-        "@turf/meta": "^5.1.5"
-      }
-    },
-    "@turf/random": {
-      "version": "5.1.5",
-      "resolved": "https://registry.npmjs.org/@turf/random/-/random-5.1.5.tgz",
-      "integrity": "sha1-sy78k0Vgroulfo67UfJBw5+6Lns=",
-      "requires": {
-        "@turf/helpers": "^5.1.5"
-      }
-    },
-    "@turf/rewind": {
-      "version": "5.1.5",
-      "resolved": "https://registry.npmjs.org/@turf/rewind/-/rewind-5.1.5.tgz",
-      "integrity": "sha1-nqPbSmi3PB/R3RH1djGxQ8/vock=",
-      "requires": {
-        "@turf/boolean-clockwise": "^5.1.5",
-        "@turf/clone": "^5.1.5",
-        "@turf/helpers": "^5.1.5",
-        "@turf/invariant": "^5.1.5",
-        "@turf/meta": "^5.1.5"
-      }
-    },
-    "@turf/rhumb-bearing": {
-      "version": "5.1.5",
-      "resolved": "https://registry.npmjs.org/@turf/rhumb-bearing/-/rhumb-bearing-5.1.5.tgz",
-      "integrity": "sha1-rPalAkJ+uMSeGM2mrg7/qwxd3NI=",
-      "requires": {
-        "@turf/helpers": "^5.1.5",
-        "@turf/invariant": "^5.1.5"
-      }
-    },
-    "@turf/rhumb-destination": {
-      "version": "5.1.5",
-      "resolved": "https://registry.npmjs.org/@turf/rhumb-destination/-/rhumb-destination-5.1.5.tgz",
-      "integrity": "sha1-sbKuuSFUfyrAwamUtqEw+SRjx0I=",
-      "requires": {
-        "@turf/helpers": "^5.1.5",
-        "@turf/invariant": "^5.1.5"
-      }
-    },
-    "@turf/rhumb-distance": {
-      "version": "5.1.5",
-      "resolved": "https://registry.npmjs.org/@turf/rhumb-distance/-/rhumb-distance-5.1.5.tgz",
-      "integrity": "sha1-GAaFdiX0IlOE2tQT5p85U4/192U=",
-      "requires": {
-        "@turf/helpers": "^5.1.5",
-        "@turf/invariant": "^5.1.5"
-      }
-    },
-    "@turf/sample": {
-      "version": "5.1.5",
-      "resolved": "https://registry.npmjs.org/@turf/sample/-/sample-5.1.5.tgz",
-      "integrity": "sha1-6ctEikeJzFbuPeLdZ4HiNDQ1tBE=",
-      "requires": {
-        "@turf/helpers": "^5.1.5"
-      }
-    },
-    "@turf/sector": {
-      "version": "5.1.5",
-      "resolved": "https://registry.npmjs.org/@turf/sector/-/sector-5.1.5.tgz",
-      "integrity": "sha1-rCu5TBPt1gNPb9wrZwCBNdIPXgc=",
-      "requires": {
-        "@turf/circle": "^5.1.5",
-        "@turf/helpers": "^5.1.5",
-        "@turf/invariant": "^5.1.5",
-        "@turf/line-arc": "^5.1.5",
-        "@turf/meta": "^5.1.5"
-      }
-    },
-    "@turf/shortest-path": {
-      "version": "5.1.5",
-      "resolved": "https://registry.npmjs.org/@turf/shortest-path/-/shortest-path-5.1.5.tgz",
-      "integrity": "sha1-hUroCW9rw+EwD6ynfz6PZ9j5Nas=",
-      "requires": {
-        "@turf/bbox": "^5.1.5",
-        "@turf/bbox-polygon": "^5.1.5",
-        "@turf/boolean-point-in-polygon": "^5.1.5",
-        "@turf/clean-coords": "^5.1.5",
-        "@turf/distance": "^5.1.5",
-        "@turf/helpers": "^5.1.5",
-        "@turf/invariant": "^5.1.5",
-        "@turf/meta": "^5.1.5",
-        "@turf/transform-scale": "^5.1.5"
-      }
-    },
-    "@turf/simplify": {
-      "version": "5.1.5",
-      "resolved": "https://registry.npmjs.org/@turf/simplify/-/simplify-5.1.5.tgz",
-      "integrity": "sha1-Csjyei60IYGD7dmZjDJ1q+QIuSY=",
-      "requires": {
-        "@turf/clean-coords": "^5.1.5",
-        "@turf/clone": "^5.1.5",
-        "@turf/helpers": "^5.1.5",
-        "@turf/meta": "^5.1.5"
-      }
-    },
-    "@turf/square": {
-      "version": "5.1.5",
-      "resolved": "https://registry.npmjs.org/@turf/square/-/square-5.1.5.tgz",
-      "integrity": "sha1-qnsh5gM8ySUsOlvW89iNq9b+0YA=",
-      "requires": {
-        "@turf/distance": "^5.1.5",
-        "@turf/helpers": "^5.1.5"
-      }
-    },
-    "@turf/square-grid": {
-      "version": "5.1.5",
-      "resolved": "https://registry.npmjs.org/@turf/square-grid/-/square-grid-5.1.5.tgz",
-      "integrity": "sha1-G9X3uesU8LYLwjH+/nNR0aMvGlE=",
-      "requires": {
-        "@turf/boolean-contains": "^5.1.5",
-        "@turf/boolean-overlap": "^5.1.5",
-        "@turf/distance": "^5.1.5",
-        "@turf/helpers": "^5.1.5",
-        "@turf/intersect": "^5.1.5",
-        "@turf/invariant": "^5.1.5"
-      }
-    },
-    "@turf/standard-deviational-ellipse": {
-      "version": "5.1.5",
-      "resolved": "https://registry.npmjs.org/@turf/standard-deviational-ellipse/-/standard-deviational-ellipse-5.1.5.tgz",
-      "integrity": "sha1-hc0oO14ayljyG9ZkEuQUtW2FIyQ=",
-      "requires": {
-        "@turf/center-mean": "^5.1.5",
-        "@turf/ellipse": "^5.1.5",
-        "@turf/helpers": "^5.1.5",
-        "@turf/invariant": "^5.1.5",
-        "@turf/meta": "^5.1.5",
-        "@turf/points-within-polygon": "^5.1.5"
-      }
-    },
-    "@turf/tag": {
-      "version": "5.1.5",
-      "resolved": "https://registry.npmjs.org/@turf/tag/-/tag-5.1.5.tgz",
-      "integrity": "sha1-0e4aUIjs/UoUEQGcmCOczypJfSA=",
-      "requires": {
-        "@turf/boolean-point-in-polygon": "^5.1.5",
-        "@turf/clone": "^5.1.5",
-        "@turf/helpers": "^5.1.5",
-        "@turf/meta": "^5.1.5"
-      }
-    },
-    "@turf/tesselate": {
-      "version": "5.1.5",
-      "resolved": "https://registry.npmjs.org/@turf/tesselate/-/tesselate-5.1.5.tgz",
-      "integrity": "sha1-MqWU6cIaAEIKn5DSxD3z4RZgYc0=",
-      "requires": {
-        "@turf/helpers": "^5.1.5",
-        "earcut": "^2.0.0"
-      }
-    },
-    "@turf/tin": {
-      "version": "5.1.5",
-      "resolved": "https://registry.npmjs.org/@turf/tin/-/tin-5.1.5.tgz",
-      "integrity": "sha1-KCI+r8X76a6azKgc3P6l0UJMkX0=",
-      "requires": {
-        "@turf/helpers": "^5.1.5"
-      }
-    },
-    "@turf/transform-rotate": {
-      "version": "5.1.5",
-      "resolved": "https://registry.npmjs.org/@turf/transform-rotate/-/transform-rotate-5.1.5.tgz",
-      "integrity": "sha1-0Jbt2eMA/jFQadVNjkWMQJIh7fs=",
-      "requires": {
-        "@turf/centroid": "^5.1.5",
-        "@turf/clone": "^5.1.5",
-        "@turf/helpers": "^5.1.5",
-        "@turf/invariant": "^5.1.5",
-        "@turf/meta": "^5.1.5",
-        "@turf/rhumb-bearing": "^5.1.5",
-        "@turf/rhumb-destination": "^5.1.5",
-        "@turf/rhumb-distance": "^5.1.5"
-      }
-    },
-    "@turf/transform-scale": {
-      "version": "5.1.5",
-      "resolved": "https://registry.npmjs.org/@turf/transform-scale/-/transform-scale-5.1.5.tgz",
-      "integrity": "sha1-cP064BhWz3uunxWtVhzf6PiQAbk=",
-      "requires": {
-        "@turf/bbox": "^5.1.5",
-        "@turf/center": "^5.1.5",
-        "@turf/centroid": "^5.1.5",
-        "@turf/clone": "^5.1.5",
-        "@turf/helpers": "^5.1.5",
-        "@turf/invariant": "^5.1.5",
-        "@turf/meta": "^5.1.5",
-        "@turf/rhumb-bearing": "^5.1.5",
-        "@turf/rhumb-destination": "^5.1.5",
-        "@turf/rhumb-distance": "^5.1.5"
-      }
-    },
-    "@turf/transform-translate": {
-      "version": "5.1.5",
-      "resolved": "https://registry.npmjs.org/@turf/transform-translate/-/transform-translate-5.1.5.tgz",
-      "integrity": "sha1-Uwolf7Hccmja3Ks05nkB6yo97GM=",
-      "requires": {
-        "@turf/clone": "^5.1.5",
-        "@turf/helpers": "^5.1.5",
-        "@turf/invariant": "^5.1.5",
-        "@turf/meta": "^5.1.5",
-        "@turf/rhumb-destination": "^5.1.5"
-      }
-    },
-    "@turf/triangle-grid": {
-      "version": "5.1.5",
-      "resolved": "https://registry.npmjs.org/@turf/triangle-grid/-/triangle-grid-5.1.5.tgz",
-      "integrity": "sha1-ezZ2IQhVTBTyjK/zxIsc/ILI3IE=",
-      "requires": {
-        "@turf/distance": "^5.1.5",
-        "@turf/helpers": "^5.1.5",
-        "@turf/intersect": "^5.1.5",
-        "@turf/invariant": "^5.1.5"
-      }
-    },
-    "@turf/truncate": {
-      "version": "5.1.5",
-      "resolved": "https://registry.npmjs.org/@turf/truncate/-/truncate-5.1.5.tgz",
-      "integrity": "sha1-nu37Oxi6gfLJjT6tCUMcyhiErYk=",
-      "requires": {
-        "@turf/helpers": "^5.1.5",
-        "@turf/meta": "^5.1.5"
-      }
-    },
-    "@turf/turf": {
-      "version": "5.1.6",
-      "resolved": "https://registry.npmjs.org/@turf/turf/-/turf-5.1.6.tgz",
-      "integrity": "sha1-wxIlkoh+0jS3VGi4qMRb+Ib7+PY=",
-      "requires": {
-        "@turf/along": "5.1.x",
-        "@turf/area": "5.1.x",
-        "@turf/bbox": "5.1.x",
-        "@turf/bbox-clip": "5.1.x",
-        "@turf/bbox-polygon": "5.1.x",
-        "@turf/bearing": "5.1.x",
-        "@turf/bezier-spline": "5.1.x",
-        "@turf/boolean-clockwise": "5.1.x",
-        "@turf/boolean-contains": "5.1.x",
-        "@turf/boolean-crosses": "5.1.x",
-        "@turf/boolean-disjoint": "5.1.x",
-        "@turf/boolean-equal": "5.1.x",
-        "@turf/boolean-overlap": "5.1.x",
-        "@turf/boolean-parallel": "5.1.x",
-        "@turf/boolean-point-in-polygon": "5.1.x",
-        "@turf/boolean-point-on-line": "5.1.x",
-        "@turf/boolean-within": "5.1.x",
-        "@turf/buffer": "5.1.x",
-        "@turf/center": "5.1.x",
-        "@turf/center-mean": "5.1.x",
-        "@turf/center-median": "5.1.x",
-        "@turf/center-of-mass": "5.1.x",
-        "@turf/centroid": "5.1.x",
-        "@turf/circle": "5.1.x",
-        "@turf/clean-coords": "5.1.x",
-        "@turf/clone": "5.1.x",
-        "@turf/clusters": "5.1.x",
-        "@turf/clusters-dbscan": "5.1.x",
-        "@turf/clusters-kmeans": "5.1.x",
-        "@turf/collect": "5.1.x",
-        "@turf/combine": "5.1.x",
-        "@turf/concave": "5.1.x",
-        "@turf/convex": "5.1.x",
-        "@turf/destination": "5.1.x",
-        "@turf/difference": "5.1.x",
-        "@turf/dissolve": "5.1.x",
-        "@turf/distance": "5.1.x",
-        "@turf/ellipse": "5.1.x",
-        "@turf/envelope": "5.1.x",
-        "@turf/explode": "5.1.x",
-        "@turf/flatten": "5.1.x",
-        "@turf/flip": "5.1.x",
-        "@turf/great-circle": "5.1.x",
-        "@turf/helpers": "5.1.x",
-        "@turf/hex-grid": "5.1.x",
-        "@turf/interpolate": "5.1.x",
-        "@turf/intersect": "5.1.x",
-        "@turf/invariant": "5.1.x",
-        "@turf/isobands": "5.1.x",
-        "@turf/isolines": "5.1.x",
-        "@turf/kinks": "5.1.x",
-        "@turf/length": "5.1.x",
-        "@turf/line-arc": "5.1.x",
-        "@turf/line-chunk": "5.1.x",
-        "@turf/line-intersect": "5.1.x",
-        "@turf/line-offset": "5.1.x",
-        "@turf/line-overlap": "5.1.x",
-        "@turf/line-segment": "5.1.x",
-        "@turf/line-slice": "5.1.x",
-        "@turf/line-slice-along": "5.1.x",
-        "@turf/line-split": "5.1.x",
-        "@turf/line-to-polygon": "5.1.x",
-        "@turf/mask": "5.1.x",
-        "@turf/meta": "5.1.x",
-        "@turf/midpoint": "5.1.x",
-        "@turf/nearest-point": "5.1.x",
-        "@turf/nearest-point-on-line": "5.1.x",
-        "@turf/nearest-point-to-line": "5.1.x",
-        "@turf/planepoint": "5.1.x",
-        "@turf/point-grid": "5.1.x",
-        "@turf/point-on-feature": "5.1.x",
-        "@turf/point-to-line-distance": "5.1.x",
-        "@turf/points-within-polygon": "5.1.x",
-        "@turf/polygon-tangents": "5.1.x",
-        "@turf/polygon-to-line": "5.1.x",
-        "@turf/polygonize": "5.1.x",
-        "@turf/projection": "5.1.x",
-        "@turf/random": "5.1.x",
-        "@turf/rewind": "5.1.x",
-        "@turf/rhumb-bearing": "5.1.x",
-        "@turf/rhumb-destination": "5.1.x",
-        "@turf/rhumb-distance": "5.1.x",
-        "@turf/sample": "5.1.x",
-        "@turf/sector": "5.1.x",
-        "@turf/shortest-path": "5.1.x",
-        "@turf/simplify": "5.1.x",
-        "@turf/square": "5.1.x",
-        "@turf/square-grid": "5.1.x",
-        "@turf/standard-deviational-ellipse": "5.1.x",
-        "@turf/tag": "5.1.x",
-        "@turf/tesselate": "5.1.x",
-        "@turf/tin": "5.1.x",
-        "@turf/transform-rotate": "5.1.x",
-        "@turf/transform-scale": "5.1.x",
-        "@turf/transform-translate": "5.1.x",
-        "@turf/triangle-grid": "5.1.x",
-        "@turf/truncate": "5.1.x",
-        "@turf/union": "5.1.x",
-        "@turf/unkink-polygon": "5.1.x",
-        "@turf/voronoi": "5.1.x"
-      }
-    },
-    "@turf/union": {
-      "version": "5.1.5",
-      "resolved": "https://registry.npmjs.org/@turf/union/-/union-5.1.5.tgz",
-      "integrity": "sha1-UyhbYJQEf8WNlqrA6pCGXsNNRUs=",
-      "requires": {
-        "@turf/helpers": "^5.1.5",
-        "turf-jsts": "*"
-      }
-    },
-    "@turf/unkink-polygon": {
-      "version": "5.1.5",
-      "resolved": "https://registry.npmjs.org/@turf/unkink-polygon/-/unkink-polygon-5.1.5.tgz",
-      "integrity": "sha1-ewGEfFD7V0riV54Z5Ey6hSbSE8M=",
-      "requires": {
-        "@turf/area": "^5.1.5",
-        "@turf/boolean-point-in-polygon": "^5.1.5",
-        "@turf/helpers": "^5.1.5",
-        "@turf/meta": "^5.1.5",
-        "rbush": "^2.0.1"
-      }
-    },
-    "@turf/voronoi": {
-      "version": "5.1.5",
-      "resolved": "https://registry.npmjs.org/@turf/voronoi/-/voronoi-5.1.5.tgz",
-      "integrity": "sha1-6FbpQG3MLyXWbdyJhYTifC6/ymY=",
-      "requires": {
-        "@turf/helpers": "^5.1.5",
-        "@turf/invariant": "^5.1.5",
-        "d3-voronoi": "1.1.2"
-      }
-    },
-    "@types/blob-util": {
-      "version": "1.3.3",
-      "resolved": "https://registry.npmjs.org/@types/blob-util/-/blob-util-1.3.3.tgz",
-      "integrity": "sha512-4ahcL/QDnpjWA2Qs16ZMQif7HjGP2cw3AGjHabybjw7Vm1EKu+cfQN1D78BaZbS1WJNa1opSMF5HNMztx7lR0w==",
-      "dev": true
-    },
-    "@types/bluebird": {
-      "version": "3.5.18",
-      "resolved": "https://registry.npmjs.org/@types/bluebird/-/bluebird-3.5.18.tgz",
-      "integrity": "sha512-OTPWHmsyW18BhrnG5x8F7PzeZ2nFxmHGb42bZn79P9hl+GI5cMzyPgQTwNjbem0lJhoru/8vtjAFCUOu3+gE2w==",
-      "dev": true
-    },
-    "@types/bunyan": {
-      "version": "0.0.36",
-      "resolved": "https://registry.npmjs.org/@types/bunyan/-/bunyan-0.0.36.tgz",
-      "integrity": "sha1-/dhlxY6OqvCtQBzQMtyGH1xXNCo=",
-      "requires": {
-        "@types/node": "*"
-      }
-    },
-    "@types/chai": {
-      "version": "4.1.3",
-      "resolved": "https://registry.npmjs.org/@types/chai/-/chai-4.1.3.tgz",
-      "integrity": "sha512-f5dXGzOJycyzSMdaXVhiBhauL4dYydXwVpavfQ1mVCaGjR56a9QfklXObUxlIY9bGTmCPHEEZ04I16BZ/8w5ww==",
-      "dev": true
-    },
-    "@types/chai-jquery": {
-      "version": "1.1.35",
-      "resolved": "https://registry.npmjs.org/@types/chai-jquery/-/chai-jquery-1.1.35.tgz",
-      "integrity": "sha512-7aIt9QMRdxuagLLI48dPz96YJdhu64p6FCa6n4qkGN5DQLHnrIjZpD9bXCvV2G0NwgZ1FAmfP214dxc5zNCfgQ==",
-      "dev": true,
-      "requires": {
-        "@types/chai": "*",
-        "@types/jquery": "*"
-      }
-    },
-    "@types/cypress": {
-      "version": "1.1.3",
-      "resolved": "https://registry.npmjs.org/@types/cypress/-/cypress-1.1.3.tgz",
-      "integrity": "sha512-OXe0Gw8LeCflkG1oPgFpyrYWJmEKqYncBsD/J0r17r0ETx/TnIGDNLwXt/pFYSYuYTpzcq1q3g62M9DrfsBL4g==",
-      "dev": true,
-      "requires": {
-        "cypress": "*"
-      }
-    },
-    "@types/form-data": {
-      "version": "2.2.1",
-      "resolved": "https://registry.npmjs.org/@types/form-data/-/form-data-2.2.1.tgz",
-      "integrity": "sha512-JAMFhOaHIciYVh8fb5/83nmuO/AHwmto+Hq7a9y8FzLDcC1KCU344XDOMEmahnrTFlHjgh4L0WJFczNIX2GxnQ==",
-      "requires": {
-        "@types/node": "*"
-      }
-    },
-    "@types/jest": {
-      "version": "24.0.6",
-      "resolved": "https://registry.npmjs.org/@types/jest/-/jest-24.0.6.tgz",
-      "integrity": "sha512-NE7FBG/F4cMDKdCBqgyd+Sa6JZ5GiMOyA5QwJdeS4Ii/Z9a18WgGbFrHbcr48/7I9HdnkaAYP+S2MmQ27qoqJA==",
-      "dev": true,
-      "requires": {
-        "@types/jest-diff": "*"
-      }
-    },
-    "@types/jest-diff": {
-      "version": "20.0.1",
-      "resolved": "https://registry.npmjs.org/@types/jest-diff/-/jest-diff-20.0.1.tgz",
-      "integrity": "sha512-yALhelO3i0hqZwhjtcr6dYyaLoCHbAMshwtj6cGxTvHZAKXHsYGdff6E8EPw3xLKY0ELUTQ69Q1rQiJENnccMA==",
-      "dev": true
-    },
-    "@types/jest-each": {
-      "version": "0.3.4",
-      "resolved": "https://registry.npmjs.org/@types/jest-each/-/jest-each-0.3.4.tgz",
-      "integrity": "sha512-ZHTN/i7aLE0Bae73slS88oM8sucx1D2pXLZ5UAwrVzv2LHfNnzmxz1KwdjJ4cHomIxU1Z+M3kSbj7FLVD56K5A==",
-      "dev": true
-    },
-    "@types/jquery": {
-      "version": "3.2.16",
-      "resolved": "https://registry.npmjs.org/@types/jquery/-/jquery-3.2.16.tgz",
-      "integrity": "sha512-q2WC02YxQoX2nY1HRKlYGHpGP1saPmD7GN0pwCDlTz35a4eOtJG+aHRlXyjCuXokUukSrR2aXyBhSW3j+jPc0A==",
-      "dev": true
-    },
-    "@types/jwt-decode": {
-      "version": "1.4.30",
-      "resolved": "https://registry.npmjs.org/@types/jwt-decode/-/jwt-decode-1.4.30.tgz",
-      "integrity": "sha512-vmBy38tpxTDimkD+YP5i6gyvjD/sIVj8CNuTKjbDJ28LOkAisv0NDoKbfnSwRq+SYWza6bpie0C4lI7pkCbDIg=="
-    },
-    "@types/lodash": {
-      "version": "4.14.91",
-      "resolved": "https://registry.npmjs.org/@types/lodash/-/lodash-4.14.91.tgz",
-      "integrity": "sha512-k+nc3moSlAaXacyvz4/c6D9lnUeI6AKsLvkXFuNzUEEqMw7sjDnLW2GqlJ4nyFgMX/p+QzvVG6zRoDo4lJIV5g=="
-    },
-    "@types/minimatch": {
-      "version": "3.0.3",
-      "resolved": "https://registry.npmjs.org/@types/minimatch/-/minimatch-3.0.3.tgz",
-      "integrity": "sha512-tHq6qdbT9U1IRSGf14CL0pUlULksvY9OZ+5eEgl1N7t+OA3tGvNpxJCzuKQlsNgCVwbAs670L1vcVQi8j9HjnA==",
-      "dev": true
-    },
-    "@types/mocha": {
-      "version": "2.2.44",
-      "resolved": "https://registry.npmjs.org/@types/mocha/-/mocha-2.2.44.tgz",
-      "integrity": "sha512-k2tWTQU8G4+iSMvqKi0Q9IIsWAp/n8xzdZS4Q4YVIltApoMA00wFBFdlJnmoaK1/z7B0Cy0yPe6GgXteSmdUNw==",
-      "dev": true
-    },
-    "@types/node": {
-      "version": "10.12.18",
-      "resolved": "https://registry.npmjs.org/@types/node/-/node-10.12.18.tgz",
-      "integrity": "sha512-fh+pAqt4xRzPfqA6eh3Z2y6fyZavRIumvjhaCL753+TVkGKGhpPeyrJG2JftD0T9q4GF00KjefsQ+PQNDdWQaQ=="
-    },
-    "@types/request": {
-      "version": "0.0.45",
-      "resolved": "https://registry.npmjs.org/@types/request/-/request-0.0.45.tgz",
-      "integrity": "sha512-OIIREjT58pnpfJjEY5PeBEuRtRR2ED4DF1Ez3Dj9474kCqEKfE+iNAYyM/P3RxxDjNxBhipo+peNBW0S/7Wrzg==",
-      "requires": {
-        "@types/form-data": "*",
-        "@types/node": "*"
-      }
-    },
-    "@types/sinon": {
-      "version": "4.0.0",
-      "resolved": "https://registry.npmjs.org/@types/sinon/-/sinon-4.0.0.tgz",
-      "integrity": "sha512-cuK4xM8Lg2wd8cxshcQa8RG4IK/xfyB6TNE6tNVvkrShR4xdrYgsV04q6Dp6v1Lp6biEFdzD8k8zg/ujQeiw+A==",
-      "dev": true
-    },
-    "@types/sinon-chai": {
-      "version": "2.7.29",
-      "resolved": "https://registry.npmjs.org/@types/sinon-chai/-/sinon-chai-2.7.29.tgz",
-      "integrity": "sha512-EkI/ZvJT4hglWo7Ipf9SX+J+R9htNOMjW8xiOhce7+0csqvgoF5IXqY5Ae1GqRgNtWCuaywR5HjVa1snkTqpOw==",
-      "dev": true,
-      "requires": {
-        "@types/chai": "*",
-        "@types/sinon": "*"
-      }
-    },
-    "@types/uuid": {
-      "version": "3.4.4",
-      "resolved": "https://registry.npmjs.org/@types/uuid/-/uuid-3.4.4.tgz",
-      "integrity": "sha512-tPIgT0GUmdJQNSHxp0X2jnpQfBSTfGxUMc/2CXBU2mnyTFVYVa2ojpoQ74w0U2yn2vw3jnC640+77lkFFpdVDw==",
-      "requires": {
-        "@types/node": "*"
-      }
-    },
-    "@webassemblyjs/ast": {
-      "version": "1.7.11",
-      "resolved": "https://registry.npmjs.org/@webassemblyjs/ast/-/ast-1.7.11.tgz",
-      "integrity": "sha512-ZEzy4vjvTzScC+SH8RBssQUawpaInUdMTYwYYLh54/s8TuT0gBLuyUnppKsVyZEi876VmmStKsUs28UxPgdvrA==",
-      "dev": true,
-      "requires": {
-        "@webassemblyjs/helper-module-context": "1.7.11",
-        "@webassemblyjs/helper-wasm-bytecode": "1.7.11",
-        "@webassemblyjs/wast-parser": "1.7.11"
-      }
-    },
-    "@webassemblyjs/floating-point-hex-parser": {
-      "version": "1.7.11",
-      "resolved": "https://registry.npmjs.org/@webassemblyjs/floating-point-hex-parser/-/floating-point-hex-parser-1.7.11.tgz",
-      "integrity": "sha512-zY8dSNyYcgzNRNT666/zOoAyImshm3ycKdoLsyDw/Bwo6+/uktb7p4xyApuef1dwEBo/U/SYQzbGBvV+nru2Xg==",
-      "dev": true
-    },
-    "@webassemblyjs/helper-api-error": {
-      "version": "1.7.11",
-      "resolved": "https://registry.npmjs.org/@webassemblyjs/helper-api-error/-/helper-api-error-1.7.11.tgz",
-      "integrity": "sha512-7r1qXLmiglC+wPNkGuXCvkmalyEstKVwcueZRP2GNC2PAvxbLYwLLPr14rcdJaE4UtHxQKfFkuDFuv91ipqvXg==",
-      "dev": true
-    },
-    "@webassemblyjs/helper-buffer": {
-      "version": "1.7.11",
-      "resolved": "https://registry.npmjs.org/@webassemblyjs/helper-buffer/-/helper-buffer-1.7.11.tgz",
-      "integrity": "sha512-MynuervdylPPh3ix+mKZloTcL06P8tenNH3sx6s0qE8SLR6DdwnfgA7Hc9NSYeob2jrW5Vql6GVlsQzKQCa13w==",
-      "dev": true
-    },
-    "@webassemblyjs/helper-code-frame": {
-      "version": "1.7.11",
-      "resolved": "https://registry.npmjs.org/@webassemblyjs/helper-code-frame/-/helper-code-frame-1.7.11.tgz",
-      "integrity": "sha512-T8ESC9KMXFTXA5urJcyor5cn6qWeZ4/zLPyWeEXZ03hj/x9weSokGNkVCdnhSabKGYWxElSdgJ+sFa9G/RdHNw==",
-      "dev": true,
-      "requires": {
-        "@webassemblyjs/wast-printer": "1.7.11"
-      }
-    },
-    "@webassemblyjs/helper-fsm": {
-      "version": "1.7.11",
-      "resolved": "https://registry.npmjs.org/@webassemblyjs/helper-fsm/-/helper-fsm-1.7.11.tgz",
-      "integrity": "sha512-nsAQWNP1+8Z6tkzdYlXT0kxfa2Z1tRTARd8wYnc/e3Zv3VydVVnaeePgqUzFrpkGUyhUUxOl5ML7f1NuT+gC0A==",
-      "dev": true
-    },
-    "@webassemblyjs/helper-module-context": {
-      "version": "1.7.11",
-      "resolved": "https://registry.npmjs.org/@webassemblyjs/helper-module-context/-/helper-module-context-1.7.11.tgz",
-      "integrity": "sha512-JxfD5DX8Ygq4PvXDucq0M+sbUFA7BJAv/GGl9ITovqE+idGX+J3QSzJYz+LwQmL7fC3Rs+utvWoJxDb6pmC0qg==",
-      "dev": true
-    },
-    "@webassemblyjs/helper-wasm-bytecode": {
-      "version": "1.7.11",
-      "resolved": "https://registry.npmjs.org/@webassemblyjs/helper-wasm-bytecode/-/helper-wasm-bytecode-1.7.11.tgz",
-      "integrity": "sha512-cMXeVS9rhoXsI9LLL4tJxBgVD/KMOKXuFqYb5oCJ/opScWpkCMEz9EJtkonaNcnLv2R3K5jIeS4TRj/drde1JQ==",
-      "dev": true
-    },
-    "@webassemblyjs/helper-wasm-section": {
-      "version": "1.7.11",
-      "resolved": "https://registry.npmjs.org/@webassemblyjs/helper-wasm-section/-/helper-wasm-section-1.7.11.tgz",
-      "integrity": "sha512-8ZRY5iZbZdtNFE5UFunB8mmBEAbSI3guwbrsCl4fWdfRiAcvqQpeqd5KHhSWLL5wuxo53zcaGZDBU64qgn4I4Q==",
-      "dev": true,
-      "requires": {
-        "@webassemblyjs/ast": "1.7.11",
-        "@webassemblyjs/helper-buffer": "1.7.11",
-        "@webassemblyjs/helper-wasm-bytecode": "1.7.11",
-        "@webassemblyjs/wasm-gen": "1.7.11"
-      }
-    },
-    "@webassemblyjs/ieee754": {
-      "version": "1.7.11",
-      "resolved": "https://registry.npmjs.org/@webassemblyjs/ieee754/-/ieee754-1.7.11.tgz",
-      "integrity": "sha512-Mmqx/cS68K1tSrvRLtaV/Lp3NZWzXtOHUW2IvDvl2sihAwJh4ACE0eL6A8FvMyDG9abes3saB6dMimLOs+HMoQ==",
-      "dev": true,
-      "requires": {
-        "@xtuc/ieee754": "^1.2.0"
-      }
-    },
-    "@webassemblyjs/leb128": {
-      "version": "1.7.11",
-      "resolved": "https://registry.npmjs.org/@webassemblyjs/leb128/-/leb128-1.7.11.tgz",
-      "integrity": "sha512-vuGmgZjjp3zjcerQg+JA+tGOncOnJLWVkt8Aze5eWQLwTQGNgVLcyOTqgSCxWTR4J42ijHbBxnuRaL1Rv7XMdw==",
-      "dev": true,
-      "requires": {
-        "@xtuc/long": "4.2.1"
-      }
-    },
-    "@webassemblyjs/utf8": {
-      "version": "1.7.11",
-      "resolved": "https://registry.npmjs.org/@webassemblyjs/utf8/-/utf8-1.7.11.tgz",
-      "integrity": "sha512-C6GFkc7aErQIAH+BMrIdVSmW+6HSe20wg57HEC1uqJP8E/xpMjXqQUxkQw07MhNDSDcGpxI9G5JSNOQCqJk4sA==",
-      "dev": true
-    },
-    "@webassemblyjs/wasm-edit": {
-      "version": "1.7.11",
-      "resolved": "https://registry.npmjs.org/@webassemblyjs/wasm-edit/-/wasm-edit-1.7.11.tgz",
-      "integrity": "sha512-FUd97guNGsCZQgeTPKdgxJhBXkUbMTY6hFPf2Y4OedXd48H97J+sOY2Ltaq6WGVpIH8o/TGOVNiVz/SbpEMJGg==",
-      "dev": true,
-      "requires": {
-        "@webassemblyjs/ast": "1.7.11",
-        "@webassemblyjs/helper-buffer": "1.7.11",
-        "@webassemblyjs/helper-wasm-bytecode": "1.7.11",
-        "@webassemblyjs/helper-wasm-section": "1.7.11",
-        "@webassemblyjs/wasm-gen": "1.7.11",
-        "@webassemblyjs/wasm-opt": "1.7.11",
-        "@webassemblyjs/wasm-parser": "1.7.11",
-        "@webassemblyjs/wast-printer": "1.7.11"
-      }
-    },
-    "@webassemblyjs/wasm-gen": {
-      "version": "1.7.11",
-      "resolved": "https://registry.npmjs.org/@webassemblyjs/wasm-gen/-/wasm-gen-1.7.11.tgz",
-      "integrity": "sha512-U/KDYp7fgAZX5KPfq4NOupK/BmhDc5Kjy2GIqstMhvvdJRcER/kUsMThpWeRP8BMn4LXaKhSTggIJPOeYHwISA==",
-      "dev": true,
-      "requires": {
-        "@webassemblyjs/ast": "1.7.11",
-        "@webassemblyjs/helper-wasm-bytecode": "1.7.11",
-        "@webassemblyjs/ieee754": "1.7.11",
-        "@webassemblyjs/leb128": "1.7.11",
-        "@webassemblyjs/utf8": "1.7.11"
-      }
-    },
-    "@webassemblyjs/wasm-opt": {
-      "version": "1.7.11",
-      "resolved": "https://registry.npmjs.org/@webassemblyjs/wasm-opt/-/wasm-opt-1.7.11.tgz",
-      "integrity": "sha512-XynkOwQyiRidh0GLua7SkeHvAPXQV/RxsUeERILmAInZegApOUAIJfRuPYe2F7RcjOC9tW3Cb9juPvAC/sCqvg==",
-      "dev": true,
-      "requires": {
-        "@webassemblyjs/ast": "1.7.11",
-        "@webassemblyjs/helper-buffer": "1.7.11",
-        "@webassemblyjs/wasm-gen": "1.7.11",
-        "@webassemblyjs/wasm-parser": "1.7.11"
-      }
-    },
-    "@webassemblyjs/wasm-parser": {
-      "version": "1.7.11",
-      "resolved": "https://registry.npmjs.org/@webassemblyjs/wasm-parser/-/wasm-parser-1.7.11.tgz",
-      "integrity": "sha512-6lmXRTrrZjYD8Ng8xRyvyXQJYUQKYSXhJqXOBLw24rdiXsHAOlvw5PhesjdcaMadU/pyPQOJ5dHreMjBxwnQKg==",
-      "dev": true,
-      "requires": {
-        "@webassemblyjs/ast": "1.7.11",
-        "@webassemblyjs/helper-api-error": "1.7.11",
-        "@webassemblyjs/helper-wasm-bytecode": "1.7.11",
-        "@webassemblyjs/ieee754": "1.7.11",
-        "@webassemblyjs/leb128": "1.7.11",
-        "@webassemblyjs/utf8": "1.7.11"
-      }
-    },
-    "@webassemblyjs/wast-parser": {
-      "version": "1.7.11",
-      "resolved": "https://registry.npmjs.org/@webassemblyjs/wast-parser/-/wast-parser-1.7.11.tgz",
-      "integrity": "sha512-lEyVCg2np15tS+dm7+JJTNhNWq9yTZvi3qEhAIIOaofcYlUp0UR5/tVqOwa/gXYr3gjwSZqw+/lS9dscyLelbQ==",
-      "dev": true,
-      "requires": {
-        "@webassemblyjs/ast": "1.7.11",
-        "@webassemblyjs/floating-point-hex-parser": "1.7.11",
-        "@webassemblyjs/helper-api-error": "1.7.11",
-        "@webassemblyjs/helper-code-frame": "1.7.11",
-        "@webassemblyjs/helper-fsm": "1.7.11",
-        "@xtuc/long": "4.2.1"
-      }
-    },
-    "@webassemblyjs/wast-printer": {
-      "version": "1.7.11",
-      "resolved": "https://registry.npmjs.org/@webassemblyjs/wast-printer/-/wast-printer-1.7.11.tgz",
-      "integrity": "sha512-m5vkAsuJ32QpkdkDOUPGSltrg8Cuk3KBx4YrmAGQwCZPRdUHXxG4phIOuuycLemHFr74sWL9Wthqss4fzdzSwg==",
-      "dev": true,
-      "requires": {
-        "@webassemblyjs/ast": "1.7.11",
-        "@webassemblyjs/wast-parser": "1.7.11",
-        "@xtuc/long": "4.2.1"
-      }
-    },
-    "@xtuc/ieee754": {
-      "version": "1.2.0",
-      "resolved": "https://registry.npmjs.org/@xtuc/ieee754/-/ieee754-1.2.0.tgz",
-      "integrity": "sha512-DX8nKgqcGwsc0eJSqYt5lwP4DH5FlHnmuWWBRy7X0NcaGR0ZtuyeESgMwTYVEtxmsNGY+qit4QYT/MIYTOTPeA==",
-      "dev": true
-    },
-    "@xtuc/long": {
-      "version": "4.2.1",
-      "resolved": "https://registry.npmjs.org/@xtuc/long/-/long-4.2.1.tgz",
-      "integrity": "sha512-FZdkNBDqBRHKQ2MEbSC17xnPFOhZxeJ2YGSfr2BKf3sujG49Qe3bB+rGCwQfIaA7WHnGeGkSijX4FuBCdrzW/g==",
-      "dev": true
-    },
-    "@yarnpkg/lockfile": {
-      "version": "1.1.0",
-      "resolved": "https://registry.npmjs.org/@yarnpkg/lockfile/-/lockfile-1.1.0.tgz",
-      "integrity": "sha512-GpSwvyXOcOOlV70vbnzjj4fW5xW/FdUF6nQEt1ENy7m4ZCczi1+/buVUPAqmGfqznsORNFzUMjctTIp8a9tuCQ==",
-      "dev": true
-    },
-    "JSONStream": {
-      "version": "1.3.5",
-      "resolved": "https://registry.npmjs.org/JSONStream/-/JSONStream-1.3.5.tgz",
-      "integrity": "sha512-E+iruNOY8VV9s4JEbe1aNEm6MiszPRr/UfcHMz0TQh1BXSxHK+ASV1R6W4HpjBhSeS+54PIsAMCBmwD06LLsqQ==",
-      "dev": true,
-      "requires": {
-        "jsonparse": "^1.2.0",
-        "through": ">=2.2.7 <3"
-      }
-    },
-    "abab": {
-      "version": "2.0.0",
-      "resolved": "https://registry.npmjs.org/abab/-/abab-2.0.0.tgz",
-      "integrity": "sha512-sY5AXXVZv4Y1VACTtR11UJCPHHudgY5i26Qj5TypE6DKlIApbwb5uqhXcJ5UUGbvZNRh7EeIoW+LrJumBsKp7w==",
-      "dev": true
-    },
-    "abbrev": {
-      "version": "1.1.1",
-      "resolved": "https://registry.npmjs.org/abbrev/-/abbrev-1.1.1.tgz",
-      "integrity": "sha512-nne9/IiQ/hzIhY6pdDnbBtz7DjPTKrY00P/zvPSm5pOFkl6xuGrGnXn/VtTNNfNtAfZ9/1RtehkszU9qcTii0Q=="
-    },
-    "accepts": {
-      "version": "1.3.5",
-      "resolved": "https://registry.npmjs.org/accepts/-/accepts-1.3.5.tgz",
-      "integrity": "sha1-63d99gEXI6OxTopywIBcjoZ0a9I=",
-      "dev": true,
-      "requires": {
-        "mime-types": "~2.1.18",
-        "negotiator": "0.6.1"
-      }
-    },
-    "acorn": {
-      "version": "5.5.3",
-      "resolved": "https://registry.npmjs.org/acorn/-/acorn-5.5.3.tgz",
-      "integrity": "sha512-jd5MkIUlbbmb07nXH0DT3y7rDVtkzDi4XZOUVWAer8ajmF/DTSSbl5oNFyDOl/OXA33Bl79+ypHhl2pN20VeOQ==",
-      "dev": true
-    },
-    "acorn-dynamic-import": {
-      "version": "2.0.2",
-      "resolved": "https://registry.npmjs.org/acorn-dynamic-import/-/acorn-dynamic-import-2.0.2.tgz",
-      "integrity": "sha1-x1K9IQvvZ5UBtsbLf8hPj0cVjMQ=",
-      "dev": true,
-      "requires": {
-        "acorn": "^4.0.3"
-      },
-      "dependencies": {
-        "acorn": {
-          "version": "4.0.13",
-          "resolved": "https://registry.npmjs.org/acorn/-/acorn-4.0.13.tgz",
-          "integrity": "sha1-EFSVrlNh1pe9GVyCUZLhrX8lN4c=",
-          "dev": true
-        }
-      }
-    },
-    "acorn-globals": {
-      "version": "4.3.0",
-      "resolved": "https://registry.npmjs.org/acorn-globals/-/acorn-globals-4.3.0.tgz",
-      "integrity": "sha512-hMtHj3s5RnuhvHPowpBYvJVj3rAar82JiDQHvGs1zO0l10ocX/xEdBShNHTJaboucJUsScghp74pH3s7EnHHQw==",
-      "dev": true,
-      "requires": {
-        "acorn": "^6.0.1",
-        "acorn-walk": "^6.0.1"
-      },
-      "dependencies": {
-        "acorn": {
-          "version": "6.1.0",
-          "resolved": "https://registry.npmjs.org/acorn/-/acorn-6.1.0.tgz",
-          "integrity": "sha512-MW/FjM+IvU9CgBzjO3UIPCE2pyEwUsoFl+VGdczOPEdxfGFjuKny/gN54mOuX7Qxmb9Rg9MCn2oKiSUeW+pjrw==",
-          "dev": true
-        }
-      }
-    },
-    "acorn-walk": {
-      "version": "6.1.1",
-      "resolved": "https://registry.npmjs.org/acorn-walk/-/acorn-walk-6.1.1.tgz",
-      "integrity": "sha512-OtUw6JUTgxA2QoqqmrmQ7F2NYqiBPi/L2jqHyFtllhOUvXYQXf0Z1CYUinIfyT4bTCGmrA7gX9FvHA81uzCoVw==",
-      "dev": true
-    },
-    "agent-base": {
-      "version": "4.2.1",
-      "resolved": "https://registry.npmjs.org/agent-base/-/agent-base-4.2.1.tgz",
-      "integrity": "sha512-JVwXMr9nHYTUXsBFKUqhJwvlcYU/blreOEUkhNR2eXZIvwd+c+o5V4MgDPKWnMS/56awN3TRzIP+KoPn+roQtg==",
-      "dev": true,
-      "requires": {
-        "es6-promisify": "^5.0.0"
-      }
-    },
-    "agentkeepalive": {
-      "version": "3.5.2",
-      "resolved": "https://registry.npmjs.org/agentkeepalive/-/agentkeepalive-3.5.2.tgz",
-      "integrity": "sha512-e0L/HNe6qkQ7H19kTlRRqUibEAwDK5AFk6y3PtMsuut2VAH6+Q4xZml1tNDJD7kSAyqmbG/K08K5WEJYtUrSlQ==",
-      "dev": true,
-      "requires": {
-        "humanize-ms": "^1.2.1"
-      }
-    },
-    "ajv": {
-      "version": "6.5.3",
-      "resolved": "https://registry.npmjs.org/ajv/-/ajv-6.5.3.tgz",
-      "integrity": "sha512-LqZ9wY+fx3UMiiPd741yB2pj3hhil+hQc8taf4o2QGRFpWgZ2V5C8HA165DY9sS3fJwsk7uT7ZlFEyC3Ig3lLg==",
-      "dev": true,
-      "requires": {
-        "fast-deep-equal": "^2.0.1",
-        "fast-json-stable-stringify": "^2.0.0",
-        "json-schema-traverse": "^0.4.1",
-        "uri-js": "^4.2.2"
-      },
-      "dependencies": {
-        "fast-deep-equal": {
-          "version": "2.0.1",
-          "resolved": "https://registry.npmjs.org/fast-deep-equal/-/fast-deep-equal-2.0.1.tgz",
-          "integrity": "sha1-ewUhjd+WZ79/Nwv3/bLLFf3Qqkk=",
-          "dev": true
-        },
-        "json-schema-traverse": {
-          "version": "0.4.1",
-          "resolved": "https://registry.npmjs.org/json-schema-traverse/-/json-schema-traverse-0.4.1.tgz",
-          "integrity": "sha512-xbbCH5dCYU5T8LcEhhuh7HJ88HXuW3qsI3Y0zOZFKfZEHcpWiHU/Jxzk629Brsab/mMiHQti9wMP+845RPe3Vg==",
-          "dev": true
-        }
-      }
-    },
-    "ajv-errors": {
-      "version": "1.0.1",
-      "resolved": "https://registry.npmjs.org/ajv-errors/-/ajv-errors-1.0.1.tgz",
-      "integrity": "sha512-DCRfO/4nQ+89p/RK43i8Ezd41EqdGIU4ld7nGF8OQ14oc/we5rEntLCUa7+jrn3nn83BosfwZA0wb4pon2o8iQ==",
-      "dev": true
-    },
-    "ajv-keywords": {
-      "version": "3.2.0",
-      "resolved": "https://registry.npmjs.org/ajv-keywords/-/ajv-keywords-3.2.0.tgz",
-      "integrity": "sha1-6GuBnGAs+IIa1jdBNpjx3sAhhHo=",
-      "dev": true
-    },
-    "align-text": {
-      "version": "0.1.4",
-      "resolved": "https://registry.npmjs.org/align-text/-/align-text-0.1.4.tgz",
-      "integrity": "sha1-DNkKVhCT810KmSVsIrcGlDP60Rc=",
-      "dev": true,
-      "requires": {
-        "kind-of": "^3.0.2",
-        "longest": "^1.0.1",
-        "repeat-string": "^1.5.2"
-      }
-    },
-    "am-i-a-dependency": {
-      "version": "1.1.2",
-      "resolved": "https://registry.npmjs.org/am-i-a-dependency/-/am-i-a-dependency-1.1.2.tgz",
-      "integrity": "sha1-+dNCIwTW9kL4IeTEB1ZQNfYWfx8=",
-      "dev": true
-    },
-    "amdefine": {
-      "version": "1.0.1",
-      "resolved": "https://registry.npmjs.org/amdefine/-/amdefine-1.0.1.tgz",
-      "integrity": "sha1-SlKCrBZHKek2Gbz9OtFR+BfOkfU=",
-      "dev": true
-    },
-    "angular-base64-upload": {
-      "version": "0.1.23",
-      "resolved": "https://registry.npmjs.org/angular-base64-upload/-/angular-base64-upload-0.1.23.tgz",
-      "integrity": "sha512-vRSY+7/pag2hEdTSB90LTvT5rU5XPxBNMA1WGz60pNSpChRUzf+h5FR9lObRcGg1WUOvlYinnvoPTD6Nktcx1g==",
-      "dev": true
-    },
-    "angular-svg-icon": {
-      "version": "5.0.0",
-      "resolved": "https://registry.npmjs.org/angular-svg-icon/-/angular-svg-icon-5.0.0.tgz",
-      "integrity": "sha512-wIRpoQ3PwytxA4MRe9cgmdytXrHgTGUuTdmIFtAQvCcftUSWWkzkVaXF1QSlFip6ipHf/YacdJHFYXpnW2lWPQ=="
-    },
-    "angular-tree-component": {
-      "version": "7.0.1",
-      "resolved": "https://registry.npmjs.org/angular-tree-component/-/angular-tree-component-7.0.1.tgz",
-      "integrity": "sha1-/I0OctjDS4cTGjuivTKtIJRWiaw=",
-      "requires": {
-        "lodash": "4.17.4",
-        "mobx": ">=3",
-        "mobx-angular": ">=1"
-      },
-      "dependencies": {
-        "lodash": {
-          "version": "4.17.4",
-          "resolved": "https://registry.npmjs.org/lodash/-/lodash-4.17.4.tgz",
-          "integrity": "sha1-eCA6TRwyiuHYbcpkYONptX9AVa4="
-        }
-      }
-    },
-    "angular2-datatable": {
-      "version": "0.6.0",
-      "resolved": "https://registry.npmjs.org/angular2-datatable/-/angular2-datatable-0.6.0.tgz",
-      "integrity": "sha1-ygCPdAh/DLh9pXCe0vLR0GF3JjI=",
-      "requires": {
-        "lodash": "^4.0.0"
-      }
-    },
-    "angular2-multiselect-dropdown": {
-      "version": "2.5.0",
-      "resolved": "https://registry.npmjs.org/angular2-multiselect-dropdown/-/angular2-multiselect-dropdown-2.5.0.tgz",
-      "integrity": "sha1-6halE/Z0LN5V312fqumSzThU7dM=",
-      "requires": {
-        "font-awesome": "*"
-      }
-    },
-    "angular2-template-loader": {
-      "version": "0.6.2",
-      "resolved": "https://registry.npmjs.org/angular2-template-loader/-/angular2-template-loader-0.6.2.tgz",
-      "integrity": "sha1-wNROkP/w+sleiyPwQ6zaf9HFHXw=",
-      "dev": true,
-      "requires": {
-        "loader-utils": "^0.2.15"
-      },
-      "dependencies": {
-        "loader-utils": {
-          "version": "0.2.17",
-          "resolved": "https://registry.npmjs.org/loader-utils/-/loader-utils-0.2.17.tgz",
-          "integrity": "sha1-+G5jdNQyBabmxg6RlvF8Apm/s0g=",
-          "dev": true,
-          "requires": {
-            "big.js": "^3.1.3",
-            "emojis-list": "^2.0.0",
-            "json5": "^0.5.0",
-            "object-assign": "^4.0.1"
-          }
-        }
-      }
-    },
-    "angular5-csv": {
-      "version": "0.2.10",
-      "resolved": "https://registry.npmjs.org/angular5-csv/-/angular5-csv-0.2.10.tgz",
-      "integrity": "sha512-hLEXyYjocQWev8e9P1LMWny3PxCtzeXvHUjiRGwMXUP8myByrFXf+B5taJFvlgTKsIONFu2wmRsTjjpyB2O1Yw=="
-    },
-    "ansi-colors": {
-      "version": "3.2.3",
-      "resolved": "https://registry.npmjs.org/ansi-colors/-/ansi-colors-3.2.3.tgz",
-      "integrity": "sha512-LEHHyuhlPY3TmuUYMh2oz89lTShfvgbmzaBcxve9t/9Wuy7Dwf4yoAKcND7KFT1HAQfqZ12qtc+DUrBMeKF9nw==",
-      "dev": true
-    },
-    "ansi-escapes": {
-      "version": "3.1.0",
-      "resolved": "http://registry.npmjs.org/ansi-escapes/-/ansi-escapes-3.1.0.tgz",
-      "integrity": "sha512-UgAb8H9D41AQnu/PbWlCofQVcnV4Gs2bBJi9eZPxfU/hgglFh3SMDMENRIqdr7H6XFnXdoknctFByVsCOotTVw==",
-      "dev": true
-    },
-    "ansi-html": {
-      "version": "0.0.7",
-      "resolved": "https://registry.npmjs.org/ansi-html/-/ansi-html-0.0.7.tgz",
-      "integrity": "sha1-gTWEAhliqenm/QOflA0S9WynhZ4=",
-      "dev": true
-    },
-    "ansi-regex": {
-      "version": "2.1.1",
-      "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-2.1.1.tgz",
-      "integrity": "sha1-w7M6te42DYbg5ijwRorn7yfWVN8="
-    },
-    "ansi-styles": {
-      "version": "3.2.1",
-      "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-3.2.1.tgz",
-      "integrity": "sha512-VT0ZI6kZRdTh8YyJw3SMbYm/u+NqfsAxEpWO0Pf9sq8/e94WxxOpPKx9FR1FlyCtOVDNOQ+8ntlqFxiRc+r5qA==",
-      "requires": {
-        "color-convert": "^1.9.0"
-      }
-    },
-    "ansicolors": {
-      "version": "0.2.1",
-      "resolved": "https://registry.npmjs.org/ansicolors/-/ansicolors-0.2.1.tgz",
-      "integrity": "sha1-vgiVmQl7dKXJxKhKDNvNtivYeu8="
-    },
-    "ansistyles": {
-      "version": "0.1.3",
-      "resolved": "https://registry.npmjs.org/ansistyles/-/ansistyles-0.1.3.tgz",
-      "integrity": "sha1-XeYEFb2gcbs3EnhUyGT0GyMlRTk="
-    },
-    "anymatch": {
-      "version": "1.3.2",
-      "resolved": "https://registry.npmjs.org/anymatch/-/anymatch-1.3.2.tgz",
-      "integrity": "sha512-0XNayC8lTHQ2OI8aljNCN3sSx6hsr/1+rlcDAotXJR7C1oZZHCNsfpbKwMjRA3Uqb5tF1Rae2oloTr4xpq+WjA==",
-      "dev": true,
-      "requires": {
-        "micromatch": "^2.1.5",
-        "normalize-path": "^2.0.0"
-      }
-    },
-    "app-root-path": {
-      "version": "2.1.0",
-      "resolved": "https://registry.npmjs.org/app-root-path/-/app-root-path-2.1.0.tgz",
-      "integrity": "sha1-mL9lmTJ+zqGZMJhm6BQDaP0uZGo=",
-      "dev": true
-    },
-    "append-transform": {
-      "version": "1.0.0",
-      "resolved": "https://registry.npmjs.org/append-transform/-/append-transform-1.0.0.tgz",
-      "integrity": "sha512-P009oYkeHyU742iSZJzZZywj4QRJdnTWffaKuJQLablCZ1uz6/cW4yaRgcDaoQ+uwOxxnt0gRUcwfsNP2ri0gw==",
-      "dev": true,
-      "requires": {
-        "default-require-extensions": "^2.0.0"
-      }
-    },
-    "aproba": {
-      "version": "1.2.0",
-      "resolved": "https://registry.npmjs.org/aproba/-/aproba-1.2.0.tgz",
-      "integrity": "sha512-Y9J6ZjXtoYh8RnXVCMOU/ttDmk1aBjunq9vO0ta5x85WDQiQfUF9sIPBITdbiiIVcBo03Hi3jMxigBtsddlXRw==",
-      "dev": true
-    },
-    "archy": {
-      "version": "1.0.0",
-      "resolved": "https://registry.npmjs.org/archy/-/archy-1.0.0.tgz",
-      "integrity": "sha1-+cjBN1fMHde8N5rHeyxipcKGjEA="
-    },
-    "are-we-there-yet": {
-      "version": "1.1.5",
-      "resolved": "https://registry.npmjs.org/are-we-there-yet/-/are-we-there-yet-1.1.5.tgz",
-      "integrity": "sha512-5hYdAkZlcG8tOLujVDTgCT+uPX0VnpAH28gWsLfzpXYm7wP6mp5Q/gYyR7YQ0cKVJcXJnl3j2kpBan13PtQf6w==",
-      "dev": true,
-      "requires": {
-        "delegates": "^1.0.0",
-        "readable-stream": "^2.0.6"
-      }
-    },
-    "argparse": {
-      "version": "1.0.10",
-      "resolved": "https://registry.npmjs.org/argparse/-/argparse-1.0.10.tgz",
-      "integrity": "sha512-o5Roy6tNG4SL/FOkCAN6RzjiakZS25RLYFrcMttJqbdd8BWrnA+fGz57iN5Pb06pvBGvl5gQ0B48dJlslXvoTg==",
-      "dev": true,
-      "requires": {
-        "sprintf-js": "~1.0.2"
-      }
-    },
-    "args": {
-      "version": "2.6.1",
-      "resolved": "https://registry.npmjs.org/args/-/args-2.6.1.tgz",
-      "integrity": "sha1-slkO1BaM0xtiREGZvcUWa7GSDC8=",
-      "requires": {
-        "camelcase": "4.1.0",
-        "chalk": "1.1.3",
-        "minimist": "1.2.0",
-        "pkginfo": "0.4.0",
-        "string-similarity": "1.1.0"
-      },
-      "dependencies": {
-        "ansi-styles": {
-          "version": "2.2.1",
-          "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-2.2.1.tgz",
-          "integrity": "sha1-tDLdM1i2NM914eRmQ2gkBTPB3b4="
-        },
-        "camelcase": {
-          "version": "4.1.0",
-          "resolved": "https://registry.npmjs.org/camelcase/-/camelcase-4.1.0.tgz",
-          "integrity": "sha1-1UVjW+HjPFQmScaRc+Xeas+uNN0="
-        },
-        "chalk": {
-          "version": "1.1.3",
-          "resolved": "http://registry.npmjs.org/chalk/-/chalk-1.1.3.tgz",
-          "integrity": "sha1-qBFcVeSnAv5NFQq9OHKCKn4J/Jg=",
-          "requires": {
-            "ansi-styles": "^2.2.1",
-            "escape-string-regexp": "^1.0.2",
-            "has-ansi": "^2.0.0",
-            "strip-ansi": "^3.0.0",
-            "supports-color": "^2.0.0"
-          }
-        },
-        "minimist": {
-          "version": "1.2.0",
-          "resolved": "http://registry.npmjs.org/minimist/-/minimist-1.2.0.tgz",
-          "integrity": "sha1-o1AIsg9BOD7sH7kU9M1d95omQoQ="
-        },
-        "supports-color": {
-          "version": "2.0.0",
-          "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-2.0.0.tgz",
-          "integrity": "sha1-U10EXOa2Nj+kARcIRimZXp3zJMc="
-        }
-      }
-    },
-    "arr-diff": {
-      "version": "2.0.0",
-      "resolved": "https://registry.npmjs.org/arr-diff/-/arr-diff-2.0.0.tgz",
-      "integrity": "sha1-jzuCf5Vai9ZpaX5KQlasPOrjVs8=",
-      "dev": true,
-      "requires": {
-        "arr-flatten": "^1.0.1"
-      }
-    },
-    "arr-flatten": {
-      "version": "1.1.0",
-      "resolved": "https://registry.npmjs.org/arr-flatten/-/arr-flatten-1.1.0.tgz",
-      "integrity": "sha512-L3hKV5R/p5o81R7O02IGnwpDmkp6E982XhtbuwSe3O4qOtMMMtodicASA1Cny2U+aCXcNpml+m4dPsvsJ3jatg==",
-      "dev": true
-    },
-    "arr-union": {
-      "version": "3.1.0",
-      "resolved": "https://registry.npmjs.org/arr-union/-/arr-union-3.1.0.tgz",
-      "integrity": "sha1-45sJrqne+Gao8gbiiK9jkZuuOcQ=",
-      "dev": true
-    },
-    "array-differ": {
-      "version": "2.0.3",
-      "resolved": "https://registry.npmjs.org/array-differ/-/array-differ-2.0.3.tgz",
-      "integrity": "sha1-AZW7AMzM8nEQbv7kpHhkiLcYBxI=",
-      "dev": true
-    },
-    "array-equal": {
-      "version": "1.0.0",
-      "resolved": "https://registry.npmjs.org/array-equal/-/array-equal-1.0.0.tgz",
-      "integrity": "sha1-jCpe8kcv2ep0KwTHenUJO6J1fJM=",
-      "dev": true
-    },
-    "array-filter": {
-      "version": "0.0.1",
-      "resolved": "https://registry.npmjs.org/array-filter/-/array-filter-0.0.1.tgz",
-      "integrity": "sha1-fajPLiZijtcygDWB/SH2fKzS7uw="
-    },
-    "array-find-index": {
-      "version": "1.0.2",
-      "resolved": "https://registry.npmjs.org/array-find-index/-/array-find-index-1.0.2.tgz",
-      "integrity": "sha1-3wEKoSh+Fku9pvlyOwqWoexBh6E=",
-      "dev": true,
-      "optional": true
-    },
-    "array-flatten": {
-      "version": "2.1.2",
-      "resolved": "https://registry.npmjs.org/array-flatten/-/array-flatten-2.1.2.tgz",
-      "integrity": "sha512-hNfzcOV8W4NdualtqBFPyVO+54DSJuZGY9qT4pRroB6S9e3iiido2ISIC5h9R2sPJ8H3FHCIiEnsv1lPXO3KtQ==",
-      "dev": true
-    },
-    "array-map": {
-      "version": "0.0.0",
-      "resolved": "https://registry.npmjs.org/array-map/-/array-map-0.0.0.tgz",
-      "integrity": "sha1-iKK6tz0c97zVwbEYoAP2b2ZfpmI="
-    },
-    "array-reduce": {
-      "version": "0.0.0",
-      "resolved": "https://registry.npmjs.org/array-reduce/-/array-reduce-0.0.0.tgz",
-      "integrity": "sha1-FziZ0//Rx9k4PkR5Ul2+J4yrXys="
-    },
-    "array-union": {
-      "version": "1.0.2",
-      "resolved": "https://registry.npmjs.org/array-union/-/array-union-1.0.2.tgz",
-      "integrity": "sha1-mjRBDk9OPaI96jdb5b5w8kd47Dk=",
-      "dev": true,
-      "requires": {
-        "array-uniq": "^1.0.1"
-      }
-    },
-    "array-uniq": {
-      "version": "1.0.3",
-      "resolved": "https://registry.npmjs.org/array-uniq/-/array-uniq-1.0.3.tgz",
-      "integrity": "sha1-r2rId6Jcx/dOBYiUdThY39sk/bY=",
-      "dev": true
-    },
-    "array-unique": {
-      "version": "0.2.1",
-      "resolved": "https://registry.npmjs.org/array-unique/-/array-unique-0.2.1.tgz",
-      "integrity": "sha1-odl8yvy8JiXMcPrc6zalDFiwGlM=",
-      "dev": true
-    },
-    "arrify": {
-      "version": "1.0.1",
-      "resolved": "https://registry.npmjs.org/arrify/-/arrify-1.0.1.tgz",
-      "integrity": "sha1-iYUI2iIm84DfkEcoRWhJwVAaSw0=",
-      "dev": true
-    },
-    "asap": {
-      "version": "2.0.6",
-      "resolved": "https://registry.npmjs.org/asap/-/asap-2.0.6.tgz",
-      "integrity": "sha1-5QNHYR1+aQlDIIu9r+vLwvuGbUY="
-    },
-    "asn1": {
-      "version": "0.2.3",
-      "resolved": "https://registry.npmjs.org/asn1/-/asn1-0.2.3.tgz",
-      "integrity": "sha1-2sh4dxPJlmhJ/IGAd36+nB3fO4Y="
-    },
-    "asn1.js": {
-      "version": "4.10.1",
-      "resolved": "https://registry.npmjs.org/asn1.js/-/asn1.js-4.10.1.tgz",
-      "integrity": "sha512-p32cOF5q0Zqs9uBiONKYLm6BClCoBCM5O9JfeUSlnQLBTxYdTK+pW+nXflm8UkKd2UYlEbYz5qEi0JuZR9ckSw==",
-      "dev": true,
-      "requires": {
-        "bn.js": "^4.0.0",
-        "inherits": "^2.0.1",
-        "minimalistic-assert": "^1.0.0"
-      }
-    },
-    "assert": {
-      "version": "1.4.1",
-      "resolved": "https://registry.npmjs.org/assert/-/assert-1.4.1.tgz",
-      "integrity": "sha1-mZEtWRg2tab1s0XA8H7vwI/GXZE=",
-      "dev": true,
-      "requires": {
-        "util": "0.10.3"
-      }
-    },
-    "assert-plus": {
-      "version": "0.2.0",
-      "resolved": "https://registry.npmjs.org/assert-plus/-/assert-plus-0.2.0.tgz",
-      "integrity": "sha1-104bh+ev/A24qttwIfP+SBAasjQ="
-    },
-    "assign-symbols": {
-      "version": "1.0.0",
-      "resolved": "https://registry.npmjs.org/assign-symbols/-/assign-symbols-1.0.0.tgz",
-      "integrity": "sha1-WWZ/QfrdTyDMvCu5a41Pf3jsA2c=",
-      "dev": true
-    },
-    "ast-traverse": {
-      "version": "0.1.1",
-      "resolved": "https://registry.npmjs.org/ast-traverse/-/ast-traverse-0.1.1.tgz",
-      "integrity": "sha1-ac8rg4bxnc2hux4F1o/jWdiJfeY="
-    },
-    "astral-regex": {
-      "version": "1.0.0",
-      "resolved": "https://registry.npmjs.org/astral-regex/-/astral-regex-1.0.0.tgz",
-      "integrity": "sha512-+Ryf6g3BKoRc7jfp7ad8tM4TtMiaWvbF/1/sQcZPkkS7ag3D5nMBCe2UfOTONtAkaG0tO0ij3C5Lwmf1EiyjHg==",
-      "dev": true
-    },
-    "async": {
-      "version": "2.6.0",
-      "resolved": "https://registry.npmjs.org/async/-/async-2.6.0.tgz",
-      "integrity": "sha512-xAfGg1/NTLBBKlHFmnd7PlmUW9KhVQIUuSrYem9xzFUZy13ScvtyGGejaae9iAVRiRq9+Cx7DPFaAAhCpyxyPw==",
-      "requires": {
-        "lodash": "^4.14.0"
-      }
-    },
-    "async-each": {
-      "version": "1.0.1",
-      "resolved": "https://registry.npmjs.org/async-each/-/async-each-1.0.1.tgz",
-      "integrity": "sha1-GdOGodntxufByF04iu28xW0zYC0=",
-      "dev": true
-    },
-    "async-foreach": {
-      "version": "0.1.3",
-      "resolved": "https://registry.npmjs.org/async-foreach/-/async-foreach-0.1.3.tgz",
-      "integrity": "sha1-NhIfhFwFeBct5Bmpfb6x0W7DRUI=",
-      "dev": true,
-      "optional": true
-    },
-    "async-limiter": {
-      "version": "1.0.0",
-      "resolved": "https://registry.npmjs.org/async-limiter/-/async-limiter-1.0.0.tgz",
-      "integrity": "sha512-jp/uFnooOiO+L211eZOoSyzpOITMXx1rBITauYykG3BRYPu8h0UcxsPNB04RR5vo4Tyz3+ay17tR6JVf9qzYWg==",
-      "dev": true
-    },
-    "asynckit": {
-      "version": "0.4.0",
-      "resolved": "https://registry.npmjs.org/asynckit/-/asynckit-0.4.0.tgz",
-      "integrity": "sha1-x57Zf380y48robyXkLzDZkdLS3k="
-    },
-    "atob": {
-      "version": "2.0.3",
-      "resolved": "https://registry.npmjs.org/atob/-/atob-2.0.3.tgz",
-      "integrity": "sha1-GcenYEc3dEaPILLS0DNyrX1Mv10=",
-      "dev": true
-    },
-    "autoprefixer": {
-      "version": "9.3.1",
-      "resolved": "https://registry.npmjs.org/autoprefixer/-/autoprefixer-9.3.1.tgz",
-      "integrity": "sha512-DY9gOh8z3tnCbJ13JIWaeQsoYncTGdsrgCceBaQSIL4nvdrLxgbRSBPevg2XbX7u4QCSfLheSJEEIUUSlkbx6Q==",
-      "dev": true,
-      "requires": {
-        "browserslist": "^4.3.3",
-        "caniuse-lite": "^1.0.30000898",
-        "normalize-range": "^0.1.2",
-        "num2fraction": "^1.2.2",
-        "postcss": "^7.0.5",
-        "postcss-value-parser": "^3.3.1"
-      },
-      "dependencies": {
-        "browserslist": {
-          "version": "4.3.6",
-          "resolved": "https://registry.npmjs.org/browserslist/-/browserslist-4.3.6.tgz",
-          "integrity": "sha512-kMGKs4BTzRWviZ8yru18xBpx+CyHG9eqgRbj9XbE3IMgtczf4aiA0Y1YCpVdvUieKGZ03kolSPXqTcscBCb9qw==",
-          "dev": true,
-          "requires": {
-            "caniuse-lite": "^1.0.30000921",
-            "electron-to-chromium": "^1.3.92",
-            "node-releases": "^1.1.1"
-          }
-        },
-        "caniuse-lite": {
-          "version": "1.0.30000923",
-          "resolved": "https://registry.npmjs.org/caniuse-lite/-/caniuse-lite-1.0.30000923.tgz",
-          "integrity": "sha512-j5ur7eeluOFjjPUkydtXP4KFAsmH3XaQNch5tvWSO+dLHYt5PE+VgJZLWtbVOodfWij6m6zas28T4gB/cLYq1w==",
-          "dev": true
-        },
-        "electron-to-chromium": {
-          "version": "1.3.96",
-          "resolved": "https://registry.npmjs.org/electron-to-chromium/-/electron-to-chromium-1.3.96.tgz",
-          "integrity": "sha512-ZUXBUyGLeoJxp4Nt6G/GjBRLnyz8IKQGexZ2ndWaoegThgMGFO1tdDYID5gBV32/1S83osjJHyfzvanE/8HY4Q==",
-          "dev": true
-        }
-      }
-    },
-    "aws-sign2": {
-      "version": "0.6.0",
-      "resolved": "https://registry.npmjs.org/aws-sign2/-/aws-sign2-0.6.0.tgz",
-      "integrity": "sha1-FDQt0428yU0OW4fXY81jYSwOeU8="
-    },
-    "aws4": {
-      "version": "1.6.0",
-      "resolved": "https://registry.npmjs.org/aws4/-/aws4-1.6.0.tgz",
-      "integrity": "sha1-g+9cqGCysy5KDe7e6MdxudtXRx4="
-    },
-    "babel-code-frame": {
-      "version": "6.26.0",
-      "resolved": "https://registry.npmjs.org/babel-code-frame/-/babel-code-frame-6.26.0.tgz",
-      "integrity": "sha1-Y/1D99weO7fONZR9uP42mj9Yx0s=",
-      "requires": {
-        "chalk": "^1.1.3",
-        "esutils": "^2.0.2",
-        "js-tokens": "^3.0.2"
-      },
-      "dependencies": {
-        "ansi-styles": {
-          "version": "2.2.1",
-          "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-2.2.1.tgz",
-          "integrity": "sha1-tDLdM1i2NM914eRmQ2gkBTPB3b4="
-        },
-        "chalk": {
-          "version": "1.1.3",
-          "resolved": "https://registry.npmjs.org/chalk/-/chalk-1.1.3.tgz",
-          "integrity": "sha1-qBFcVeSnAv5NFQq9OHKCKn4J/Jg=",
-          "requires": {
-            "ansi-styles": "^2.2.1",
-            "escape-string-regexp": "^1.0.2",
-            "has-ansi": "^2.0.0",
-            "strip-ansi": "^3.0.0",
-            "supports-color": "^2.0.0"
-          }
-        },
-        "supports-color": {
-          "version": "2.0.0",
-          "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-2.0.0.tgz",
-          "integrity": "sha1-U10EXOa2Nj+kARcIRimZXp3zJMc="
-        }
-      }
-    },
-    "babel-core": {
-      "version": "6.26.0",
-      "resolved": "https://registry.npmjs.org/babel-core/-/babel-core-6.26.0.tgz",
-      "integrity": "sha1-rzL3izGm/O8RnIew/Y2XU/A6C7g=",
-      "dev": true,
-      "requires": {
-        "babel-code-frame": "^6.26.0",
-        "babel-generator": "^6.26.0",
-        "babel-helpers": "^6.24.1",
-        "babel-messages": "^6.23.0",
-        "babel-register": "^6.26.0",
-        "babel-runtime": "^6.26.0",
-        "babel-template": "^6.26.0",
-        "babel-traverse": "^6.26.0",
-        "babel-types": "^6.26.0",
-        "babylon": "^6.18.0",
-        "convert-source-map": "^1.5.0",
-        "debug": "^2.6.8",
-        "json5": "^0.5.1",
-        "lodash": "^4.17.4",
-        "minimatch": "^3.0.4",
-        "path-is-absolute": "^1.0.1",
-        "private": "^0.1.7",
-        "slash": "^1.0.0",
-        "source-map": "^0.5.6"
-      }
-    },
-    "babel-generator": {
-      "version": "6.26.1",
-      "resolved": "https://registry.npmjs.org/babel-generator/-/babel-generator-6.26.1.tgz",
-      "integrity": "sha512-HyfwY6ApZj7BYTcJURpM5tznulaBvyio7/0d4zFOeMPUmfxkCjHocCuoLa2SAGzBI8AREcH3eP3758F672DppA==",
-      "requires": {
-        "babel-messages": "^6.23.0",
-        "babel-runtime": "^6.26.0",
-        "babel-types": "^6.26.0",
-        "detect-indent": "^4.0.0",
-        "jsesc": "^1.3.0",
-        "lodash": "^4.17.4",
-        "source-map": "^0.5.7",
-        "trim-right": "^1.0.1"
-      }
-    },
-    "babel-helper-builder-binary-assignment-operator-visitor": {
-      "version": "6.24.1",
-      "resolved": "https://registry.npmjs.org/babel-helper-builder-binary-assignment-operator-visitor/-/babel-helper-builder-binary-assignment-operator-visitor-6.24.1.tgz",
-      "integrity": "sha1-zORReto1b0IgvK6KAsKzRvmlZmQ=",
-      "dev": true,
-      "requires": {
-        "babel-helper-explode-assignable-expression": "^6.24.1",
-        "babel-runtime": "^6.22.0",
-        "babel-types": "^6.24.1"
-      }
-    },
-    "babel-helper-builder-react-jsx": {
-      "version": "6.26.0",
-      "resolved": "https://registry.npmjs.org/babel-helper-builder-react-jsx/-/babel-helper-builder-react-jsx-6.26.0.tgz",
-      "integrity": "sha1-Of+DE7dci2Xc7/HzHTg+D/KkCKA=",
-      "dev": true,
-      "requires": {
-        "babel-runtime": "^6.26.0",
-        "babel-types": "^6.26.0",
-        "esutils": "^2.0.2"
-      }
-    },
-    "babel-helper-call-delegate": {
-      "version": "6.24.1",
-      "resolved": "https://registry.npmjs.org/babel-helper-call-delegate/-/babel-helper-call-delegate-6.24.1.tgz",
-      "integrity": "sha1-7Oaqzdx25Bw0YfiL/Fdb0Nqi340=",
-      "dev": true,
-      "requires": {
-        "babel-helper-hoist-variables": "^6.24.1",
-        "babel-runtime": "^6.22.0",
-        "babel-traverse": "^6.24.1",
-        "babel-types": "^6.24.1"
-      }
-    },
-    "babel-helper-define-map": {
-      "version": "6.26.0",
-      "resolved": "https://registry.npmjs.org/babel-helper-define-map/-/babel-helper-define-map-6.26.0.tgz",
-      "integrity": "sha1-pfVtq0GiX5fstJjH66ypgZ+Vvl8=",
-      "dev": true,
-      "requires": {
-        "babel-helper-function-name": "^6.24.1",
-        "babel-runtime": "^6.26.0",
-        "babel-types": "^6.26.0",
-        "lodash": "^4.17.4"
-      }
-    },
-    "babel-helper-explode-assignable-expression": {
-      "version": "6.24.1",
-      "resolved": "https://registry.npmjs.org/babel-helper-explode-assignable-expression/-/babel-helper-explode-assignable-expression-6.24.1.tgz",
-      "integrity": "sha1-8luCz33BBDPFX3BZLVdGQArCLKo=",
-      "dev": true,
-      "requires": {
-        "babel-runtime": "^6.22.0",
-        "babel-traverse": "^6.24.1",
-        "babel-types": "^6.24.1"
-      }
-    },
-    "babel-helper-function-name": {
-      "version": "6.24.1",
-      "resolved": "https://registry.npmjs.org/babel-helper-function-name/-/babel-helper-function-name-6.24.1.tgz",
-      "integrity": "sha1-00dbjAPtmCQqJbSDUasYOZ01gKk=",
-      "dev": true,
-      "requires": {
-        "babel-helper-get-function-arity": "^6.24.1",
-        "babel-runtime": "^6.22.0",
-        "babel-template": "^6.24.1",
-        "babel-traverse": "^6.24.1",
-        "babel-types": "^6.24.1"
-      }
-    },
-    "babel-helper-get-function-arity": {
-      "version": "6.24.1",
-      "resolved": "https://registry.npmjs.org/babel-helper-get-function-arity/-/babel-helper-get-function-arity-6.24.1.tgz",
-      "integrity": "sha1-j3eCqpNAfEHTqlCQj4mwMbG2hT0=",
-      "dev": true,
-      "requires": {
-        "babel-runtime": "^6.22.0",
-        "babel-types": "^6.24.1"
-      }
-    },
-    "babel-helper-hoist-variables": {
-      "version": "6.24.1",
-      "resolved": "https://registry.npmjs.org/babel-helper-hoist-variables/-/babel-helper-hoist-variables-6.24.1.tgz",
-      "integrity": "sha1-HssnaJydJVE+rbyZFKc/VAi+enY=",
-      "dev": true,
-      "requires": {
-        "babel-runtime": "^6.22.0",
-        "babel-types": "^6.24.1"
-      }
-    },
-    "babel-helper-optimise-call-expression": {
-      "version": "6.24.1",
-      "resolved": "https://registry.npmjs.org/babel-helper-optimise-call-expression/-/babel-helper-optimise-call-expression-6.24.1.tgz",
-      "integrity": "sha1-96E0J7qfc/j0+pk8VKl4gtEkQlc=",
-      "dev": true,
-      "requires": {
-        "babel-runtime": "^6.22.0",
-        "babel-types": "^6.24.1"
-      }
-    },
-    "babel-helper-regex": {
-      "version": "6.26.0",
-      "resolved": "https://registry.npmjs.org/babel-helper-regex/-/babel-helper-regex-6.26.0.tgz",
-      "integrity": "sha1-MlxZ+QL4LyS3T6zu0DY5VPZJXnI=",
-      "dev": true,
-      "requires": {
-        "babel-runtime": "^6.26.0",
-        "babel-types": "^6.26.0",
-        "lodash": "^4.17.4"
-      }
-    },
-    "babel-helper-remap-async-to-generator": {
-      "version": "6.24.1",
-      "resolved": "https://registry.npmjs.org/babel-helper-remap-async-to-generator/-/babel-helper-remap-async-to-generator-6.24.1.tgz",
-      "integrity": "sha1-XsWBgnrXI/7N04HxySg5BnbkVRs=",
-      "dev": true,
-      "requires": {
-        "babel-helper-function-name": "^6.24.1",
-        "babel-runtime": "^6.22.0",
-        "babel-template": "^6.24.1",
-        "babel-traverse": "^6.24.1",
-        "babel-types": "^6.24.1"
-      }
-    },
-    "babel-helper-replace-supers": {
-      "version": "6.24.1",
-      "resolved": "https://registry.npmjs.org/babel-helper-replace-supers/-/babel-helper-replace-supers-6.24.1.tgz",
-      "integrity": "sha1-v22/5Dk40XNpohPKiov3S2qQqxo=",
-      "dev": true,
-      "requires": {
-        "babel-helper-optimise-call-expression": "^6.24.1",
-        "babel-messages": "^6.23.0",
-        "babel-runtime": "^6.22.0",
-        "babel-template": "^6.24.1",
-        "babel-traverse": "^6.24.1",
-        "babel-types": "^6.24.1"
-      }
-    },
-    "babel-helpers": {
-      "version": "6.24.1",
-      "resolved": "https://registry.npmjs.org/babel-helpers/-/babel-helpers-6.24.1.tgz",
-      "integrity": "sha1-NHHenK7DiOXIUOWX5Yom3fN2ArI=",
-      "dev": true,
-      "requires": {
-        "babel-runtime": "^6.22.0",
-        "babel-template": "^6.24.1"
-      }
-    },
-    "babel-jest": {
-      "version": "24.1.0",
-      "resolved": "https://registry.npmjs.org/babel-jest/-/babel-jest-24.1.0.tgz",
-      "integrity": "sha512-MLcagnVrO9ybQGLEfZUqnOzv36iQzU7Bj4elm39vCukumLVSfoX+tRy3/jW7lUKc7XdpRmB/jech6L/UCsSZjw==",
-      "dev": true,
-      "requires": {
-        "babel-plugin-istanbul": "^5.1.0",
-        "babel-preset-jest": "^24.1.0",
-        "chalk": "^2.4.2",
-        "slash": "^2.0.0"
-      },
-      "dependencies": {
-        "chalk": {
-          "version": "2.4.2",
-          "resolved": "https://registry.npmjs.org/chalk/-/chalk-2.4.2.tgz",
-          "integrity": "sha512-Mti+f9lpJNcwF4tWV8/OrTTtF1gZi+f8FqlyAdouralcFWFQWF2+NgCHShjkCb+IFBLq9buZwE1xckQU4peSuQ==",
-          "dev": true,
-          "requires": {
-            "ansi-styles": "^3.2.1",
-            "escape-string-regexp": "^1.0.5",
-            "supports-color": "^5.3.0"
-          }
-        },
-        "has-flag": {
-          "version": "3.0.0",
-          "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-3.0.0.tgz",
-          "integrity": "sha1-tdRU3CGZriJWmfNGfloH87lVuv0=",
-          "dev": true
-        },
-        "slash": {
-          "version": "2.0.0",
-          "resolved": "https://registry.npmjs.org/slash/-/slash-2.0.0.tgz",
-          "integrity": "sha512-ZYKh3Wh2z1PpEXWr0MpSBZ0V6mZHAQfYevttO11c51CaWjGTaadiKZ+wVt1PbMlDV5qhMFslpZCemhwOK7C89A==",
-          "dev": true
-        },
-        "supports-color": {
-          "version": "5.5.0",
-          "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-5.5.0.tgz",
-          "integrity": "sha512-QjVjwdXIt408MIiAqCX4oUKsgU2EqAGzs2Ppkm4aQYbjm+ZEWEcW4SfFNTr4uMNZma0ey4f5lgLrkB0aX0QMow==",
-          "dev": true,
-          "requires": {
-            "has-flag": "^3.0.0"
-          }
-        }
-      }
-    },
-    "babel-messages": {
-      "version": "6.23.0",
-      "resolved": "https://registry.npmjs.org/babel-messages/-/babel-messages-6.23.0.tgz",
-      "integrity": "sha1-8830cDhYA1sqKVHG7F7fbGLyYw4=",
-      "requires": {
-        "babel-runtime": "^6.22.0"
-      }
-    },
-    "babel-plugin-check-es2015-constants": {
-      "version": "6.22.0",
-      "resolved": "https://registry.npmjs.org/babel-plugin-check-es2015-constants/-/babel-plugin-check-es2015-constants-6.22.0.tgz",
-      "integrity": "sha1-NRV7EBQm/S/9PaP3XH0ekYNbv4o=",
-      "dev": true,
-      "requires": {
-        "babel-runtime": "^6.22.0"
-      }
-    },
-    "babel-plugin-istanbul": {
-      "version": "5.1.1",
-      "resolved": "https://registry.npmjs.org/babel-plugin-istanbul/-/babel-plugin-istanbul-5.1.1.tgz",
-      "integrity": "sha512-RNNVv2lsHAXJQsEJ5jonQwrJVWK8AcZpG1oxhnjCUaAjL7xahYLANhPUZbzEQHjKy1NMYUwn+0NPKQc8iSY4xQ==",
-      "dev": true,
-      "requires": {
-        "find-up": "^3.0.0",
-        "istanbul-lib-instrument": "^3.0.0",
-        "test-exclude": "^5.0.0"
-      },
-      "dependencies": {
-        "@babel/code-frame": {
-          "version": "7.0.0",
-          "resolved": "https://registry.npmjs.org/@babel/code-frame/-/code-frame-7.0.0.tgz",
-          "integrity": "sha512-OfC2uemaknXr87bdLUkWog7nYuliM9Ij5HUcajsVcMCpQrcLmtxRbVFTIqmcSkSeYRBFBRxs2FiUqFJDLdiebA==",
-          "dev": true,
-          "requires": {
-            "@babel/highlight": "^7.0.0"
-          }
-        },
-        "@babel/generator": {
-          "version": "7.3.3",
-          "resolved": "https://registry.npmjs.org/@babel/generator/-/generator-7.3.3.tgz",
-          "integrity": "sha512-aEADYwRRZjJyMnKN7llGIlircxTCofm3dtV5pmY6ob18MSIuipHpA2yZWkPlycwu5HJcx/pADS3zssd8eY7/6A==",
-          "dev": true,
-          "requires": {
-            "@babel/types": "^7.3.3",
-            "jsesc": "^2.5.1",
-            "lodash": "^4.17.11",
-            "source-map": "^0.5.0",
-            "trim-right": "^1.0.1"
-          }
-        },
-        "@babel/helper-function-name": {
-          "version": "7.1.0",
-          "resolved": "https://registry.npmjs.org/@babel/helper-function-name/-/helper-function-name-7.1.0.tgz",
-          "integrity": "sha512-A95XEoCpb3TO+KZzJ4S/5uW5fNe26DjBGqf1o9ucyLyCmi1dXq/B3c8iaWTfBk3VvetUxl16e8tIrd5teOCfGw==",
-          "dev": true,
-          "requires": {
-            "@babel/helper-get-function-arity": "^7.0.0",
-            "@babel/template": "^7.1.0",
-            "@babel/types": "^7.0.0"
-          }
-        },
-        "@babel/helper-get-function-arity": {
-          "version": "7.0.0",
-          "resolved": "https://registry.npmjs.org/@babel/helper-get-function-arity/-/helper-get-function-arity-7.0.0.tgz",
-          "integrity": "sha512-r2DbJeg4svYvt3HOS74U4eWKsUAMRH01Z1ds1zx8KNTPtpTL5JAsdFv8BNyOpVqdFhHkkRDIg5B4AsxmkjAlmQ==",
-          "dev": true,
-          "requires": {
-            "@babel/types": "^7.0.0"
-          }
-        },
-        "@babel/helper-split-export-declaration": {
-          "version": "7.0.0",
-          "resolved": "https://registry.npmjs.org/@babel/helper-split-export-declaration/-/helper-split-export-declaration-7.0.0.tgz",
-          "integrity": "sha512-MXkOJqva62dfC0w85mEf/LucPPS/1+04nmmRMPEBUB++hiiThQ2zPtX/mEWQ3mtzCEjIJvPY8nuwxXtQeQwUag==",
-          "dev": true,
-          "requires": {
-            "@babel/types": "^7.0.0"
-          }
-        },
-        "@babel/highlight": {
-          "version": "7.0.0",
-          "resolved": "https://registry.npmjs.org/@babel/highlight/-/highlight-7.0.0.tgz",
-          "integrity": "sha512-UFMC4ZeFC48Tpvj7C8UgLvtkaUuovQX+5xNWrsIoMG8o2z+XFKjKaN9iVmS84dPwVN00W4wPmqvYoZF3EGAsfw==",
-          "dev": true,
-          "requires": {
-            "chalk": "^2.0.0",
-            "esutils": "^2.0.2",
-            "js-tokens": "^4.0.0"
-          }
-        },
-        "@babel/parser": {
-          "version": "7.3.3",
-          "resolved": "https://registry.npmjs.org/@babel/parser/-/parser-7.3.3.tgz",
-          "integrity": "sha512-xsH1CJoln2r74hR+y7cg2B5JCPaTh+Hd+EbBRk9nWGSNspuo6krjhX0Om6RnRQuIvFq8wVXCLKH3kwKDYhanSg==",
-          "dev": true
-        },
-        "@babel/template": {
-          "version": "7.2.2",
-          "resolved": "https://registry.npmjs.org/@babel/template/-/template-7.2.2.tgz",
-          "integrity": "sha512-zRL0IMM02AUDwghf5LMSSDEz7sBCO2YnNmpg3uWTZj/v1rcG2BmQUvaGU8GhU8BvfMh1k2KIAYZ7Ji9KXPUg7g==",
-          "dev": true,
-          "requires": {
-            "@babel/code-frame": "^7.0.0",
-            "@babel/parser": "^7.2.2",
-            "@babel/types": "^7.2.2"
-          }
-        },
-        "@babel/traverse": {
-          "version": "7.2.3",
-          "resolved": "https://registry.npmjs.org/@babel/traverse/-/traverse-7.2.3.tgz",
-          "integrity": "sha512-Z31oUD/fJvEWVR0lNZtfgvVt512ForCTNKYcJBGbPb1QZfve4WGH8Wsy7+Mev33/45fhP/hwQtvgusNdcCMgSw==",
-          "dev": true,
-          "requires": {
-            "@babel/code-frame": "^7.0.0",
-            "@babel/generator": "^7.2.2",
-            "@babel/helper-function-name": "^7.1.0",
-            "@babel/helper-split-export-declaration": "^7.0.0",
-            "@babel/parser": "^7.2.3",
-            "@babel/types": "^7.2.2",
-            "debug": "^4.1.0",
-            "globals": "^11.1.0",
-            "lodash": "^4.17.10"
-          }
-        },
-        "@babel/types": {
-          "version": "7.3.3",
-          "resolved": "https://registry.npmjs.org/@babel/types/-/types-7.3.3.tgz",
-          "integrity": "sha512-2tACZ80Wg09UnPg5uGAOUvvInaqLk3l/IAhQzlxLQOIXacr6bMsra5SH6AWw/hIDRCSbCdHP2KzSOD+cT7TzMQ==",
-          "dev": true,
-          "requires": {
-            "esutils": "^2.0.2",
-            "lodash": "^4.17.11",
-            "to-fast-properties": "^2.0.0"
-          }
-        },
-        "debug": {
-          "version": "4.1.1",
-          "resolved": "https://registry.npmjs.org/debug/-/debug-4.1.1.tgz",
-          "integrity": "sha512-pYAIzeRo8J6KPEaJ0VWOh5Pzkbw/RetuzehGM7QRRX5he4fPHx2rdKMB256ehJCkX+XRQm16eZLqLNS8RSZXZw==",
-          "dev": true,
-          "requires": {
-            "ms": "^2.1.1"
-          }
-        },
-        "find-up": {
-          "version": "3.0.0",
-          "resolved": "https://registry.npmjs.org/find-up/-/find-up-3.0.0.tgz",
-          "integrity": "sha512-1yD6RmLI1XBfxugvORwlck6f75tYL+iR0jqwsOrOxMZyGYqUuDhJ0l4AXdO1iX/FTs9cBAMEk1gWSEx1kSbylg==",
-          "dev": true,
-          "requires": {
-            "locate-path": "^3.0.0"
-          }
-        },
-        "globals": {
-          "version": "11.11.0",
-          "resolved": "https://registry.npmjs.org/globals/-/globals-11.11.0.tgz",
-          "integrity": "sha512-WHq43gS+6ufNOEqlrDBxVEbb8ntfXrfAUU2ZOpCxrBdGKW3gyv8mCxAfIBD0DroPKGrJ2eSsXsLtY9MPntsyTw==",
-          "dev": true
-        },
-        "istanbul-lib-coverage": {
-          "version": "2.0.3",
-          "resolved": "https://registry.npmjs.org/istanbul-lib-coverage/-/istanbul-lib-coverage-2.0.3.tgz",
-          "integrity": "sha512-dKWuzRGCs4G+67VfW9pBFFz2Jpi4vSp/k7zBcJ888ofV5Mi1g5CUML5GvMvV6u9Cjybftu+E8Cgp+k0dI1E5lw==",
-          "dev": true
-        },
-        "istanbul-lib-instrument": {
-          "version": "3.1.0",
-          "resolved": "https://registry.npmjs.org/istanbul-lib-instrument/-/istanbul-lib-instrument-3.1.0.tgz",
-          "integrity": "sha512-ooVllVGT38HIk8MxDj/OIHXSYvH+1tq/Vb38s8ixt9GoJadXska4WkGY+0wkmtYCZNYtaARniH/DixUGGLZ0uA==",
-          "dev": true,
-          "requires": {
-            "@babel/generator": "^7.0.0",
-            "@babel/parser": "^7.0.0",
-            "@babel/template": "^7.0.0",
-            "@babel/traverse": "^7.0.0",
-            "@babel/types": "^7.0.0",
-            "istanbul-lib-coverage": "^2.0.3",
-            "semver": "^5.5.0"
-          }
-        },
-        "js-tokens": {
-          "version": "4.0.0",
-          "resolved": "https://registry.npmjs.org/js-tokens/-/js-tokens-4.0.0.tgz",
-          "integrity": "sha512-RdJUflcE3cUzKiMqQgsCu06FPu9UdIJO0beYbPhHN4k6apgJtifcoCtT9bcxOpYBtpD2kCM6Sbzg4CausW/PKQ==",
-          "dev": true
-        },
-        "jsesc": {
-          "version": "2.5.2",
-          "resolved": "https://registry.npmjs.org/jsesc/-/jsesc-2.5.2.tgz",
-          "integrity": "sha512-OYu7XEzjkCQ3C5Ps3QIZsQfNpqoJyZZA99wd9aWd05NCtC5pWOkShK2mkL6HXQR6/Cy2lbNdPlZBpuQHXE63gA==",
-          "dev": true
-        },
-        "locate-path": {
-          "version": "3.0.0",
-          "resolved": "https://registry.npmjs.org/locate-path/-/locate-path-3.0.0.tgz",
-          "integrity": "sha512-7AO748wWnIhNqAuaty2ZWHkQHRSNfPVIsPIfwEOWO22AmaoVrWavlOcMR5nzTLNYvp36X220/maaRsrec1G65A==",
-          "dev": true,
-          "requires": {
-            "p-locate": "^3.0.0",
-            "path-exists": "^3.0.0"
-          }
-        },
-        "lodash": {
-          "version": "4.17.11",
-          "resolved": "https://registry.npmjs.org/lodash/-/lodash-4.17.11.tgz",
-          "integrity": "sha512-cQKh8igo5QUhZ7lg38DYWAxMvjSAKG0A8wGSVimP07SIUEK2UO+arSRKbRZWtelMtN5V0Hkwh5ryOto/SshYIg==",
-          "dev": true
-        },
-        "ms": {
-          "version": "2.1.1",
-          "resolved": "https://registry.npmjs.org/ms/-/ms-2.1.1.tgz",
-          "integrity": "sha512-tgp+dl5cGk28utYktBsrFqA7HKgrhgPsg6Z/EfhWI4gl1Hwq8B/GmY/0oXZ6nF8hDVesS/FpnYaD/kOWhYQvyg==",
-          "dev": true
-        },
-        "p-limit": {
-          "version": "2.1.0",
-          "resolved": "https://registry.npmjs.org/p-limit/-/p-limit-2.1.0.tgz",
-          "integrity": "sha512-NhURkNcrVB+8hNfLuysU8enY5xn2KXphsHBaC2YmRNTZRc7RWusw6apSpdEj3jo4CMb6W9nrF6tTnsJsJeyu6g==",
-          "dev": true,
-          "requires": {
-            "p-try": "^2.0.0"
-          }
-        },
-        "p-locate": {
-          "version": "3.0.0",
-          "resolved": "https://registry.npmjs.org/p-locate/-/p-locate-3.0.0.tgz",
-          "integrity": "sha512-x+12w/To+4GFfgJhBEpiDcLozRJGegY+Ei7/z0tSLkMmxGZNybVMSfWj9aJn8Z5Fc7dBUNJOOVgPv2H7IwulSQ==",
-          "dev": true,
-          "requires": {
-            "p-limit": "^2.0.0"
-          }
-        },
-        "p-try": {
-          "version": "2.0.0",
-          "resolved": "https://registry.npmjs.org/p-try/-/p-try-2.0.0.tgz",
-          "integrity": "sha512-hMp0onDKIajHfIkdRk3P4CdCmErkYAxxDtP3Wx/4nZ3aGlau2VKh3mZpcuFkH27WQkL/3WBCPOktzA9ZOAnMQQ==",
-          "dev": true
-        },
-        "to-fast-properties": {
-          "version": "2.0.0",
-          "resolved": "https://registry.npmjs.org/to-fast-properties/-/to-fast-properties-2.0.0.tgz",
-          "integrity": "sha1-3F5pjL0HkmW8c+A3doGk5Og/YW4=",
-          "dev": true
-        }
-      }
-    },
-    "babel-plugin-jest-hoist": {
-      "version": "24.1.0",
-      "resolved": "https://registry.npmjs.org/babel-plugin-jest-hoist/-/babel-plugin-jest-hoist-24.1.0.tgz",
-      "integrity": "sha512-gljYrZz8w1b6fJzKcsfKsipSru2DU2DmQ39aB6nV3xQ0DDv3zpIzKGortA5gknrhNnPN8DweaEgrnZdmbGmhnw==",
-      "dev": true
-    },
-    "babel-plugin-syntax-async-functions": {
-      "version": "6.13.0",
-      "resolved": "https://registry.npmjs.org/babel-plugin-syntax-async-functions/-/babel-plugin-syntax-async-functions-6.13.0.tgz",
-      "integrity": "sha1-ytnK0RkbWtY0vzCuCHI5HgZHvpU=",
-      "dev": true
-    },
-    "babel-plugin-syntax-exponentiation-operator": {
-      "version": "6.13.0",
-      "resolved": "https://registry.npmjs.org/babel-plugin-syntax-exponentiation-operator/-/babel-plugin-syntax-exponentiation-operator-6.13.0.tgz",
-      "integrity": "sha1-nufoM3KQ2pUoggGmpX9BcDF4MN4=",
-      "dev": true
-    },
-    "babel-plugin-syntax-flow": {
-      "version": "6.18.0",
-      "resolved": "https://registry.npmjs.org/babel-plugin-syntax-flow/-/babel-plugin-syntax-flow-6.18.0.tgz",
-      "integrity": "sha1-TDqyCiryaqIM0lmVw5jE63AxDI0=",
-      "dev": true
-    },
-    "babel-plugin-syntax-jsx": {
-      "version": "6.18.0",
-      "resolved": "https://registry.npmjs.org/babel-plugin-syntax-jsx/-/babel-plugin-syntax-jsx-6.18.0.tgz",
-      "integrity": "sha1-CvMqmm4Tyno/1QaeYtew9Y0NiUY=",
-      "dev": true
-    },
-    "babel-plugin-syntax-trailing-function-commas": {
-      "version": "6.22.0",
-      "resolved": "https://registry.npmjs.org/babel-plugin-syntax-trailing-function-commas/-/babel-plugin-syntax-trailing-function-commas-6.22.0.tgz",
-      "integrity": "sha1-ugNgk3+NBuQBgKQ/4NVhb/9TLPM=",
-      "dev": true
-    },
-    "babel-plugin-transform-async-to-generator": {
-      "version": "6.24.1",
-      "resolved": "https://registry.npmjs.org/babel-plugin-transform-async-to-generator/-/babel-plugin-transform-async-to-generator-6.24.1.tgz",
-      "integrity": "sha1-ZTbjeK/2yx1VF6wOQOs+n8jQh2E=",
-      "dev": true,
-      "requires": {
-        "babel-helper-remap-async-to-generator": "^6.24.1",
-        "babel-plugin-syntax-async-functions": "^6.8.0",
-        "babel-runtime": "^6.22.0"
-      }
-    },
-    "babel-plugin-transform-es2015-arrow-functions": {
-      "version": "6.22.0",
-      "resolved": "https://registry.npmjs.org/babel-plugin-transform-es2015-arrow-functions/-/babel-plugin-transform-es2015-arrow-functions-6.22.0.tgz",
-      "integrity": "sha1-RSaSy3EdX3ncf4XkQM5BufJE0iE=",
-      "dev": true,
-      "requires": {
-        "babel-runtime": "^6.22.0"
-      }
-    },
-    "babel-plugin-transform-es2015-block-scoped-functions": {
-      "version": "6.22.0",
-      "resolved": "https://registry.npmjs.org/babel-plugin-transform-es2015-block-scoped-functions/-/babel-plugin-transform-es2015-block-scoped-functions-6.22.0.tgz",
-      "integrity": "sha1-u8UbSflk1wy42OC5ToICRs46YUE=",
-      "dev": true,
-      "requires": {
-        "babel-runtime": "^6.22.0"
-      }
-    },
-    "babel-plugin-transform-es2015-block-scoping": {
-      "version": "6.26.0",
-      "resolved": "https://registry.npmjs.org/babel-plugin-transform-es2015-block-scoping/-/babel-plugin-transform-es2015-block-scoping-6.26.0.tgz",
-      "integrity": "sha1-1w9SmcEwjQXBL0Y4E7CgnnOxiV8=",
-      "dev": true,
-      "requires": {
-        "babel-runtime": "^6.26.0",
-        "babel-template": "^6.26.0",
-        "babel-traverse": "^6.26.0",
-        "babel-types": "^6.26.0",
-        "lodash": "^4.17.4"
-      }
-    },
-    "babel-plugin-transform-es2015-classes": {
-      "version": "6.24.1",
-      "resolved": "https://registry.npmjs.org/babel-plugin-transform-es2015-classes/-/babel-plugin-transform-es2015-classes-6.24.1.tgz",
-      "integrity": "sha1-WkxYpQyclGHlZLSyo7+ryXolhNs=",
-      "dev": true,
-      "requires": {
-        "babel-helper-define-map": "^6.24.1",
-        "babel-helper-function-name": "^6.24.1",
-        "babel-helper-optimise-call-expression": "^6.24.1",
-        "babel-helper-replace-supers": "^6.24.1",
-        "babel-messages": "^6.23.0",
-        "babel-runtime": "^6.22.0",
-        "babel-template": "^6.24.1",
-        "babel-traverse": "^6.24.1",
-        "babel-types": "^6.24.1"
-      }
-    },
-    "babel-plugin-transform-es2015-computed-properties": {
-      "version": "6.24.1",
-      "resolved": "https://registry.npmjs.org/babel-plugin-transform-es2015-computed-properties/-/babel-plugin-transform-es2015-computed-properties-6.24.1.tgz",
-      "integrity": "sha1-b+Ko0WiV1WNPTNmZttNICjCBWbM=",
-      "dev": true,
-      "requires": {
-        "babel-runtime": "^6.22.0",
-        "babel-template": "^6.24.1"
-      }
-    },
-    "babel-plugin-transform-es2015-destructuring": {
-      "version": "6.23.0",
-      "resolved": "https://registry.npmjs.org/babel-plugin-transform-es2015-destructuring/-/babel-plugin-transform-es2015-destructuring-6.23.0.tgz",
-      "integrity": "sha1-mXux8auWf2gtKwh2/jWNYOdlxW0=",
-      "dev": true,
-      "requires": {
-        "babel-runtime": "^6.22.0"
-      }
-    },
-    "babel-plugin-transform-es2015-duplicate-keys": {
-      "version": "6.24.1",
-      "resolved": "https://registry.npmjs.org/babel-plugin-transform-es2015-duplicate-keys/-/babel-plugin-transform-es2015-duplicate-keys-6.24.1.tgz",
-      "integrity": "sha1-c+s9MQypaePvnskcU3QabxV2Qj4=",
-      "dev": true,
-      "requires": {
-        "babel-runtime": "^6.22.0",
-        "babel-types": "^6.24.1"
-      }
-    },
-    "babel-plugin-transform-es2015-for-of": {
-      "version": "6.23.0",
-      "resolved": "https://registry.npmjs.org/babel-plugin-transform-es2015-for-of/-/babel-plugin-transform-es2015-for-of-6.23.0.tgz",
-      "integrity": "sha1-9HyVsrYT3x0+zC/bdXNiPHUkhpE=",
-      "dev": true,
-      "requires": {
-        "babel-runtime": "^6.22.0"
-      }
-    },
-    "babel-plugin-transform-es2015-function-name": {
-      "version": "6.24.1",
-      "resolved": "https://registry.npmjs.org/babel-plugin-transform-es2015-function-name/-/babel-plugin-transform-es2015-function-name-6.24.1.tgz",
-      "integrity": "sha1-g0yJhTvDaxrw86TF26qU/Y6sqos=",
-      "dev": true,
-      "requires": {
-        "babel-helper-function-name": "^6.24.1",
-        "babel-runtime": "^6.22.0",
-        "babel-types": "^6.24.1"
-      }
-    },
-    "babel-plugin-transform-es2015-literals": {
-      "version": "6.22.0",
-      "resolved": "https://registry.npmjs.org/babel-plugin-transform-es2015-literals/-/babel-plugin-transform-es2015-literals-6.22.0.tgz",
-      "integrity": "sha1-T1SgLWzWbPkVKAAZox0xklN3yi4=",
-      "dev": true,
-      "requires": {
-        "babel-runtime": "^6.22.0"
-      }
-    },
-    "babel-plugin-transform-es2015-modules-amd": {
-      "version": "6.24.1",
-      "resolved": "https://registry.npmjs.org/babel-plugin-transform-es2015-modules-amd/-/babel-plugin-transform-es2015-modules-amd-6.24.1.tgz",
-      "integrity": "sha1-Oz5UAXI5hC1tGcMBHEvS8AoA0VQ=",
-      "dev": true,
-      "requires": {
-        "babel-plugin-transform-es2015-modules-commonjs": "^6.24.1",
-        "babel-runtime": "^6.22.0",
-        "babel-template": "^6.24.1"
-      }
-    },
-    "babel-plugin-transform-es2015-modules-commonjs": {
-      "version": "6.26.0",
-      "resolved": "https://registry.npmjs.org/babel-plugin-transform-es2015-modules-commonjs/-/babel-plugin-transform-es2015-modules-commonjs-6.26.0.tgz",
-      "integrity": "sha1-DYOUApt9xqvhqX7xgeAHWN0uXYo=",
-      "dev": true,
-      "requires": {
-        "babel-plugin-transform-strict-mode": "^6.24.1",
-        "babel-runtime": "^6.26.0",
-        "babel-template": "^6.26.0",
-        "babel-types": "^6.26.0"
-      }
-    },
-    "babel-plugin-transform-es2015-modules-systemjs": {
-      "version": "6.24.1",
-      "resolved": "https://registry.npmjs.org/babel-plugin-transform-es2015-modules-systemjs/-/babel-plugin-transform-es2015-modules-systemjs-6.24.1.tgz",
-      "integrity": "sha1-/4mhQrkRmpBhlfXxBuzzBdlAfSM=",
-      "dev": true,
-      "requires": {
-        "babel-helper-hoist-variables": "^6.24.1",
-        "babel-runtime": "^6.22.0",
-        "babel-template": "^6.24.1"
-      }
-    },
-    "babel-plugin-transform-es2015-modules-umd": {
-      "version": "6.24.1",
-      "resolved": "https://registry.npmjs.org/babel-plugin-transform-es2015-modules-umd/-/babel-plugin-transform-es2015-modules-umd-6.24.1.tgz",
-      "integrity": "sha1-rJl+YoXNGO1hdq22B9YCNErThGg=",
-      "dev": true,
-      "requires": {
-        "babel-plugin-transform-es2015-modules-amd": "^6.24.1",
-        "babel-runtime": "^6.22.0",
-        "babel-template": "^6.24.1"
-      }
-    },
-    "babel-plugin-transform-es2015-object-super": {
-      "version": "6.24.1",
-      "resolved": "https://registry.npmjs.org/babel-plugin-transform-es2015-object-super/-/babel-plugin-transform-es2015-object-super-6.24.1.tgz",
-      "integrity": "sha1-JM72muIcuDp/hgPa0CH1cusnj40=",
-      "dev": true,
-      "requires": {
-        "babel-helper-replace-supers": "^6.24.1",
-        "babel-runtime": "^6.22.0"
-      }
-    },
-    "babel-plugin-transform-es2015-parameters": {
-      "version": "6.24.1",
-      "resolved": "https://registry.npmjs.org/babel-plugin-transform-es2015-parameters/-/babel-plugin-transform-es2015-parameters-6.24.1.tgz",
-      "integrity": "sha1-V6w1GrScrxSpfNE7CfZv3wpiXys=",
-      "dev": true,
-      "requires": {
-        "babel-helper-call-delegate": "^6.24.1",
-        "babel-helper-get-function-arity": "^6.24.1",
-        "babel-runtime": "^6.22.0",
-        "babel-template": "^6.24.1",
-        "babel-traverse": "^6.24.1",
-        "babel-types": "^6.24.1"
-      }
-    },
-    "babel-plugin-transform-es2015-shorthand-properties": {
-      "version": "6.24.1",
-      "resolved": "https://registry.npmjs.org/babel-plugin-transform-es2015-shorthand-properties/-/babel-plugin-transform-es2015-shorthand-properties-6.24.1.tgz",
-      "integrity": "sha1-JPh11nIch2YbvZmkYi5R8U3jiqA=",
-      "dev": true,
-      "requires": {
-        "babel-runtime": "^6.22.0",
-        "babel-types": "^6.24.1"
-      }
-    },
-    "babel-plugin-transform-es2015-spread": {
-      "version": "6.22.0",
-      "resolved": "https://registry.npmjs.org/babel-plugin-transform-es2015-spread/-/babel-plugin-transform-es2015-spread-6.22.0.tgz",
-      "integrity": "sha1-1taKmfia7cRTbIGlQujdnxdG+NE=",
-      "dev": true,
-      "requires": {
-        "babel-runtime": "^6.22.0"
-      }
-    },
-    "babel-plugin-transform-es2015-sticky-regex": {
-      "version": "6.24.1",
-      "resolved": "https://registry.npmjs.org/babel-plugin-transform-es2015-sticky-regex/-/babel-plugin-transform-es2015-sticky-regex-6.24.1.tgz",
-      "integrity": "sha1-AMHNsaynERLN8M9hJsLta0V8zbw=",
-      "dev": true,
-      "requires": {
-        "babel-helper-regex": "^6.24.1",
-        "babel-runtime": "^6.22.0",
-        "babel-types": "^6.24.1"
-      }
-    },
-    "babel-plugin-transform-es2015-template-literals": {
-      "version": "6.22.0",
-      "resolved": "https://registry.npmjs.org/babel-plugin-transform-es2015-template-literals/-/babel-plugin-transform-es2015-template-literals-6.22.0.tgz",
-      "integrity": "sha1-qEs0UPfp+PH2g51taH2oS7EjbY0=",
-      "dev": true,
-      "requires": {
-        "babel-runtime": "^6.22.0"
-      }
-    },
-    "babel-plugin-transform-es2015-typeof-symbol": {
-      "version": "6.23.0",
-      "resolved": "https://registry.npmjs.org/babel-plugin-transform-es2015-typeof-symbol/-/babel-plugin-transform-es2015-typeof-symbol-6.23.0.tgz",
-      "integrity": "sha1-3sCfHN3/lLUqxz1QXITfWdzOs3I=",
-      "dev": true,
-      "requires": {
-        "babel-runtime": "^6.22.0"
-      }
-    },
-    "babel-plugin-transform-es2015-unicode-regex": {
-      "version": "6.24.1",
-      "resolved": "https://registry.npmjs.org/babel-plugin-transform-es2015-unicode-regex/-/babel-plugin-transform-es2015-unicode-regex-6.24.1.tgz",
-      "integrity": "sha1-04sS9C6nMj9yk4fxinxa4frrNek=",
-      "dev": true,
-      "requires": {
-        "babel-helper-regex": "^6.24.1",
-        "babel-runtime": "^6.22.0",
-        "regexpu-core": "^2.0.0"
-      },
-      "dependencies": {
-        "regexpu-core": {
-          "version": "2.0.0",
-          "resolved": "https://registry.npmjs.org/regexpu-core/-/regexpu-core-2.0.0.tgz",
-          "integrity": "sha1-SdA4g3uNz4v6W5pCE5k45uoq4kA=",
-          "dev": true,
-          "requires": {
-            "regenerate": "^1.2.1",
-            "regjsgen": "^0.2.0",
-            "regjsparser": "^0.1.4"
-          }
-        }
-      }
-    },
-    "babel-plugin-transform-exponentiation-operator": {
-      "version": "6.24.1",
-      "resolved": "https://registry.npmjs.org/babel-plugin-transform-exponentiation-operator/-/babel-plugin-transform-exponentiation-operator-6.24.1.tgz",
-      "integrity": "sha1-KrDJx/MJj6SJB3cruBP+QejeOg4=",
-      "dev": true,
-      "requires": {
-        "babel-helper-builder-binary-assignment-operator-visitor": "^6.24.1",
-        "babel-plugin-syntax-exponentiation-operator": "^6.8.0",
-        "babel-runtime": "^6.22.0"
-      }
-    },
-    "babel-plugin-transform-flow-strip-types": {
-      "version": "6.22.0",
-      "resolved": "https://registry.npmjs.org/babel-plugin-transform-flow-strip-types/-/babel-plugin-transform-flow-strip-types-6.22.0.tgz",
-      "integrity": "sha1-hMtnKTXUNxT9wyvOhFaNh0Qc988=",
-      "dev": true,
-      "requires": {
-        "babel-plugin-syntax-flow": "^6.18.0",
-        "babel-runtime": "^6.22.0"
-      }
-    },
-    "babel-plugin-transform-react-display-name": {
-      "version": "6.25.0",
-      "resolved": "https://registry.npmjs.org/babel-plugin-transform-react-display-name/-/babel-plugin-transform-react-display-name-6.25.0.tgz",
-      "integrity": "sha1-Z+K/Hx6ck6sI25Z5LgU5K/LMKNE=",
-      "dev": true,
-      "requires": {
-        "babel-runtime": "^6.22.0"
-      }
-    },
-    "babel-plugin-transform-react-jsx": {
-      "version": "6.24.1",
-      "resolved": "https://registry.npmjs.org/babel-plugin-transform-react-jsx/-/babel-plugin-transform-react-jsx-6.24.1.tgz",
-      "integrity": "sha1-hAoCjn30YN/DotKfDA2R9jduZqM=",
-      "dev": true,
-      "requires": {
-        "babel-helper-builder-react-jsx": "^6.24.1",
-        "babel-plugin-syntax-jsx": "^6.8.0",
-        "babel-runtime": "^6.22.0"
-      }
-    },
-    "babel-plugin-transform-react-jsx-self": {
-      "version": "6.22.0",
-      "resolved": "https://registry.npmjs.org/babel-plugin-transform-react-jsx-self/-/babel-plugin-transform-react-jsx-self-6.22.0.tgz",
-      "integrity": "sha1-322AqdomEqEh5t3XVYvL7PBuY24=",
-      "dev": true,
-      "requires": {
-        "babel-plugin-syntax-jsx": "^6.8.0",
-        "babel-runtime": "^6.22.0"
-      }
-    },
-    "babel-plugin-transform-react-jsx-source": {
-      "version": "6.22.0",
-      "resolved": "https://registry.npmjs.org/babel-plugin-transform-react-jsx-source/-/babel-plugin-transform-react-jsx-source-6.22.0.tgz",
-      "integrity": "sha1-ZqwSFT9c0tF7PBkmj0vwGX9E7NY=",
-      "dev": true,
-      "requires": {
-        "babel-plugin-syntax-jsx": "^6.8.0",
-        "babel-runtime": "^6.22.0"
-      }
-    },
-    "babel-plugin-transform-regenerator": {
-      "version": "6.26.0",
-      "resolved": "https://registry.npmjs.org/babel-plugin-transform-regenerator/-/babel-plugin-transform-regenerator-6.26.0.tgz",
-      "integrity": "sha1-4HA2lvveJ/Cj78rPi03KL3s6jy8=",
-      "dev": true,
-      "requires": {
-        "regenerator-transform": "^0.10.0"
-      }
-    },
-    "babel-plugin-transform-strict-mode": {
-      "version": "6.24.1",
-      "resolved": "https://registry.npmjs.org/babel-plugin-transform-strict-mode/-/babel-plugin-transform-strict-mode-6.24.1.tgz",
-      "integrity": "sha1-1fr3qleKZbvlkc9e2uBKDGcCB1g=",
-      "dev": true,
-      "requires": {
-        "babel-runtime": "^6.22.0",
-        "babel-types": "^6.24.1"
-      }
-    },
-    "babel-preset-flow": {
-      "version": "6.23.0",
-      "resolved": "https://registry.npmjs.org/babel-preset-flow/-/babel-preset-flow-6.23.0.tgz",
-      "integrity": "sha1-5xIYiHCFrpoktb5Baa/7WZgWxJ0=",
-      "dev": true,
-      "requires": {
-        "babel-plugin-transform-flow-strip-types": "^6.22.0"
-      }
-    },
-    "babel-preset-jest": {
-      "version": "24.1.0",
-      "resolved": "https://registry.npmjs.org/babel-preset-jest/-/babel-preset-jest-24.1.0.tgz",
-      "integrity": "sha512-FfNLDxFWsNX9lUmtwY7NheGlANnagvxq8LZdl5PKnVG3umP+S/g0XbVBfwtA4Ai3Ri/IMkWabBz3Tyk9wdspcw==",
-      "dev": true,
-      "requires": {
-        "@babel/plugin-syntax-object-rest-spread": "^7.0.0",
-        "babel-plugin-jest-hoist": "^24.1.0"
-      }
-    },
-    "babel-preset-react": {
-      "version": "6.24.1",
-      "resolved": "https://registry.npmjs.org/babel-preset-react/-/babel-preset-react-6.24.1.tgz",
-      "integrity": "sha1-umnfrqRfw+xjm2pOzqbhdwLJE4A=",
-      "dev": true,
-      "requires": {
-        "babel-plugin-syntax-jsx": "^6.3.13",
-        "babel-plugin-transform-react-display-name": "^6.23.0",
-        "babel-plugin-transform-react-jsx": "^6.24.1",
-        "babel-plugin-transform-react-jsx-self": "^6.22.0",
-        "babel-plugin-transform-react-jsx-source": "^6.22.0",
-        "babel-preset-flow": "^6.23.0"
-      }
-    },
-    "babel-register": {
-      "version": "6.26.0",
-      "resolved": "https://registry.npmjs.org/babel-register/-/babel-register-6.26.0.tgz",
-      "integrity": "sha1-btAhFz4vy0htestFxgCahW9kcHE=",
-      "dev": true,
-      "requires": {
-        "babel-core": "^6.26.0",
-        "babel-runtime": "^6.26.0",
-        "core-js": "^2.5.0",
-        "home-or-tmp": "^2.0.0",
-        "lodash": "^4.17.4",
-        "mkdirp": "^0.5.1",
-        "source-map-support": "^0.4.15"
-      },
-      "dependencies": {
-        "core-js": {
-          "version": "2.5.6",
-          "resolved": "https://registry.npmjs.org/core-js/-/core-js-2.5.6.tgz",
-          "integrity": "sha512-lQUVfQi0aLix2xpyjrrJEvfuYCqPc/HwmTKsC/VNf8q0zsjX7SQZtp4+oRONN5Tsur9GDETPjj+Ub2iDiGZfSQ==",
-          "dev": true
-        }
-      }
-    },
-    "babel-runtime": {
-      "version": "6.26.0",
-      "resolved": "https://registry.npmjs.org/babel-runtime/-/babel-runtime-6.26.0.tgz",
-      "integrity": "sha1-llxwWGaOgrVde/4E/yM3vItWR/4=",
-      "requires": {
-        "core-js": "^2.4.0",
-        "regenerator-runtime": "^0.11.0"
-      }
-    },
-    "babel-template": {
-      "version": "6.26.0",
-      "resolved": "https://registry.npmjs.org/babel-template/-/babel-template-6.26.0.tgz",
-      "integrity": "sha1-3gPi0WOWsGn0bdn/+FIfsaDjXgI=",
-      "requires": {
-        "babel-runtime": "^6.26.0",
-        "babel-traverse": "^6.26.0",
-        "babel-types": "^6.26.0",
-        "babylon": "^6.18.0",
-        "lodash": "^4.17.4"
-      }
-    },
-    "babel-traverse": {
-      "version": "6.26.0",
-      "resolved": "https://registry.npmjs.org/babel-traverse/-/babel-traverse-6.26.0.tgz",
-      "integrity": "sha1-RqnL1+3MYsjlwGTi0tjQ9ANXZu4=",
-      "requires": {
-        "babel-code-frame": "^6.26.0",
-        "babel-messages": "^6.23.0",
-        "babel-runtime": "^6.26.0",
-        "babel-types": "^6.26.0",
-        "babylon": "^6.18.0",
-        "debug": "^2.6.8",
-        "globals": "^9.18.0",
-        "invariant": "^2.2.2",
-        "lodash": "^4.17.4"
-      }
-    },
-    "babel-types": {
-      "version": "6.26.0",
-      "resolved": "https://registry.npmjs.org/babel-types/-/babel-types-6.26.0.tgz",
-      "integrity": "sha1-o7Bz+Uq0nrb6Vc1lInozQ4BjJJc=",
-      "requires": {
-        "babel-runtime": "^6.26.0",
-        "esutils": "^2.0.2",
-        "lodash": "^4.17.4",
-        "to-fast-properties": "^1.0.3"
-      }
-    },
-    "babylon": {
-      "version": "6.18.0",
-      "resolved": "https://registry.npmjs.org/babylon/-/babylon-6.18.0.tgz",
-      "integrity": "sha512-q/UEjfGJ2Cm3oKV71DJz9d25TPnq5rhBVL2Q4fA5wcC3jcrdn7+SssEybFIxwAvvP+YCsCYNKughoF33GxgycQ=="
-    },
-    "balanced-match": {
-      "version": "1.0.0",
-      "resolved": "https://registry.npmjs.org/balanced-match/-/balanced-match-1.0.0.tgz",
-      "integrity": "sha1-ibTRmasr7kneFk6gK4nORi1xt2c="
-    },
-    "base": {
-      "version": "0.11.2",
-      "resolved": "https://registry.npmjs.org/base/-/base-0.11.2.tgz",
-      "integrity": "sha512-5T6P4xPgpp0YDFvSWwEZ4NoE3aM4QBQXDzmVbraCkFj8zHM+mba8SyqB5DbZWyR7mYHo6Y7BdQo3MoA4m0TeQg==",
-      "dev": true,
-      "requires": {
-        "cache-base": "^1.0.1",
-        "class-utils": "^0.3.5",
-        "component-emitter": "^1.2.1",
-        "define-property": "^1.0.0",
-        "isobject": "^3.0.1",
-        "mixin-deep": "^1.2.0",
-        "pascalcase": "^0.1.1"
-      },
-      "dependencies": {
-        "define-property": {
-          "version": "1.0.0",
-          "resolved": "https://registry.npmjs.org/define-property/-/define-property-1.0.0.tgz",
-          "integrity": "sha1-dp66rz9KY6rTr56NMEybvnm/sOY=",
-          "dev": true,
-          "requires": {
-            "is-descriptor": "^1.0.0"
-          }
-        },
-        "isobject": {
-          "version": "3.0.1",
-          "resolved": "https://registry.npmjs.org/isobject/-/isobject-3.0.1.tgz",
-          "integrity": "sha1-TkMekrEalzFjaqH5yNHMvP2reN8=",
-          "dev": true
-        }
-      }
-    },
-    "base64-js": {
-      "version": "1.2.3",
-      "resolved": "https://registry.npmjs.org/base64-js/-/base64-js-1.2.3.tgz",
-      "integrity": "sha512-MsAhsUW1GxCdgYSO6tAfZrNapmUKk7mWx/k5mFY/A1gBtkaCaNapTg+FExCw1r9yeaZhqx/xPg43xgTFH6KL5w==",
-      "dev": true
-    },
-    "batch": {
-      "version": "0.6.1",
-      "resolved": "https://registry.npmjs.org/batch/-/batch-0.6.1.tgz",
-      "integrity": "sha1-3DQxT05nkxgJP8dgJyUl+UvyXBY=",
-      "dev": true
-    },
-    "bcrypt-pbkdf": {
-      "version": "1.0.1",
-      "resolved": "https://registry.npmjs.org/bcrypt-pbkdf/-/bcrypt-pbkdf-1.0.1.tgz",
-      "integrity": "sha1-Y7xdy2EzG5K8Bf1SiVPDNGKgb40=",
-      "optional": true,
-      "requires": {
-        "tweetnacl": "^0.14.3"
-      }
-    },
-    "big.js": {
-      "version": "3.2.0",
-      "resolved": "https://registry.npmjs.org/big.js/-/big.js-3.2.0.tgz",
-      "integrity": "sha512-+hN/Zh2D08Mx65pZ/4g5bsmNiZUuChDiQfTUQ7qJr4/kuopCr88xZsAXv6mBoZEsUI4OuGHlX59qE94K2mMW8Q=="
-    },
-    "binary-extensions": {
-      "version": "1.11.0",
-      "resolved": "https://registry.npmjs.org/binary-extensions/-/binary-extensions-1.11.0.tgz",
-      "integrity": "sha1-RqoXUftqL5PuXmibsQh9SxTGwgU=",
-      "dev": true
-    },
-    "block-stream": {
-      "version": "0.0.9",
-      "resolved": "https://registry.npmjs.org/block-stream/-/block-stream-0.0.9.tgz",
-      "integrity": "sha1-E+v+d4oDIFz+A3UUgeu0szAMEmo=",
-      "dev": true,
-      "optional": true,
-      "requires": {
-        "inherits": "~2.0.0"
-      }
-    },
-    "bluebird": {
-      "version": "3.5.3",
-      "resolved": "https://registry.npmjs.org/bluebird/-/bluebird-3.5.3.tgz",
-      "integrity": "sha512-/qKPUQlaW1OyR51WeCPBvRnAlnZFUJkCSG5HzGnuIqhgyJtF+T94lFnn33eiazjRm2LAHVy2guNnaq48X9SJuw==",
-      "dev": true
-    },
-    "bn.js": {
-      "version": "4.11.8",
-      "resolved": "https://registry.npmjs.org/bn.js/-/bn.js-4.11.8.tgz",
-      "integrity": "sha512-ItfYfPLkWHUjckQCk8xC+LwxgK8NYcXywGigJgSwOP8Y2iyWT4f2vsZnoOXTTbo+o5yXmIUJ4gn5538SO5S3gA==",
-      "dev": true
-    },
-    "body-parser": {
-      "version": "1.18.3",
-      "resolved": "https://registry.npmjs.org/body-parser/-/body-parser-1.18.3.tgz",
-      "integrity": "sha1-WykhmP/dVTs6DyDe0FkrlWlVyLQ=",
-      "dev": true,
-      "requires": {
-        "bytes": "3.0.0",
-        "content-type": "~1.0.4",
-        "debug": "2.6.9",
-        "depd": "~1.1.2",
-        "http-errors": "~1.6.3",
-        "iconv-lite": "0.4.23",
-        "on-finished": "~2.3.0",
-        "qs": "6.5.2",
-        "raw-body": "2.3.3",
-        "type-is": "~1.6.16"
-      },
-      "dependencies": {
-        "iconv-lite": {
-          "version": "0.4.23",
-          "resolved": "https://registry.npmjs.org/iconv-lite/-/iconv-lite-0.4.23.tgz",
-          "integrity": "sha512-neyTUVFtahjf0mB3dZT77u+8O0QB89jFdnBkd5P1JgYPbPaia3gXXOVL2fq8VyU2gMMD7SaN7QukTB/pmXYvDA==",
-          "dev": true,
-          "requires": {
-            "safer-buffer": ">= 2.1.2 < 3"
-          }
-        },
-        "qs": {
-          "version": "6.5.2",
-          "resolved": "https://registry.npmjs.org/qs/-/qs-6.5.2.tgz",
-          "integrity": "sha512-N5ZAX4/LxJmF+7wN74pUD6qAh9/wnvdQcjq9TZjevvXzSUo7bfmw91saqMjzGS2xq91/odN2dW/WOl7qQHNDGA==",
-          "dev": true
-        }
-      }
-    },
-    "bonjour": {
-      "version": "3.5.0",
-      "resolved": "https://registry.npmjs.org/bonjour/-/bonjour-3.5.0.tgz",
-      "integrity": "sha1-jokKGD2O6aI5OzhExpGkK897yfU=",
-      "dev": true,
-      "requires": {
-        "array-flatten": "^2.1.0",
-        "deep-equal": "^1.0.1",
-        "dns-equal": "^1.0.0",
-        "dns-txt": "^2.0.2",
-        "multicast-dns": "^6.0.1",
-        "multicast-dns-service-types": "^1.1.0"
-      }
-    },
-    "boom": {
-      "version": "2.10.1",
-      "resolved": "https://registry.npmjs.org/boom/-/boom-2.10.1.tgz",
-      "integrity": "sha1-OciRjO/1eZ+D+UkqhI9iWt0Mdm8=",
-      "requires": {
-        "hoek": "2.x.x"
-      }
-    },
-    "bootstrap": {
-      "version": "3.3.7",
-      "resolved": "https://registry.npmjs.org/bootstrap/-/bootstrap-3.3.7.tgz",
-      "integrity": "sha1-WjiTlFSfIzMIdaOxUGVldPip63E="
-    },
-    "brace-expansion": {
-      "version": "1.1.11",
-      "resolved": "https://registry.npmjs.org/brace-expansion/-/brace-expansion-1.1.11.tgz",
-      "integrity": "sha512-iCuPHDFgrHX7H2vEI/5xpz07zSHB00TpugqhmYtVmMO6518mCuRMoOYFldEBl0g187ufozdaHgWKcYFb61qGiA==",
-      "requires": {
-        "balanced-match": "^1.0.0",
-        "concat-map": "0.0.1"
-      }
-    },
-    "braces": {
-      "version": "1.8.5",
-      "resolved": "https://registry.npmjs.org/braces/-/braces-1.8.5.tgz",
-      "integrity": "sha1-uneWLhLf+WnWt2cR6RS3N4V79qc=",
-      "dev": true,
-      "requires": {
-        "expand-range": "^1.8.1",
-        "preserve": "^0.2.0",
-        "repeat-element": "^1.1.2"
-      }
-    },
-    "brorand": {
-      "version": "1.1.0",
-      "resolved": "https://registry.npmjs.org/brorand/-/brorand-1.1.0.tgz",
-      "integrity": "sha1-EsJe/kCkXjwyPrhnWgoM5XsiNx8=",
-      "dev": true
-    },
-    "browser-process-hrtime": {
-      "version": "0.1.3",
-      "resolved": "https://registry.npmjs.org/browser-process-hrtime/-/browser-process-hrtime-0.1.3.tgz",
-      "integrity": "sha512-bRFnI4NnjO6cnyLmOV/7PVoDEMJChlcfN0z4s1YMBY989/SvlfMI1lgCnkFUs53e9gQF+w7qu7XdllSTiSl8Aw==",
-      "dev": true
-    },
-    "browser-resolve": {
-      "version": "1.11.3",
-      "resolved": "https://registry.npmjs.org/browser-resolve/-/browser-resolve-1.11.3.tgz",
-      "integrity": "sha512-exDi1BYWB/6raKHmDTCicQfTkqwN5fioMFV4j8BsfMU4R2DK/QfZfK7kOVkmWCNANf0snkBzqGqAJBao9gZMdQ==",
-      "dev": true,
-      "requires": {
-        "resolve": "1.1.7"
-      },
-      "dependencies": {
-        "resolve": {
-          "version": "1.1.7",
-          "resolved": "https://registry.npmjs.org/resolve/-/resolve-1.1.7.tgz",
-          "integrity": "sha1-IDEU2CrSxe2ejgQRs5ModeiJ6Xs=",
-          "dev": true
-        }
-      }
-    },
-    "browserify-aes": {
-      "version": "1.1.1",
-      "resolved": "https://registry.npmjs.org/browserify-aes/-/browserify-aes-1.1.1.tgz",
-      "integrity": "sha512-UGnTYAnB2a3YuYKIRy1/4FB2HdM866E0qC46JXvVTYKlBlZlnvfpSfY6OKfXZAkv70eJ2a1SqzpAo5CRhZGDFg==",
-      "dev": true,
-      "requires": {
-        "buffer-xor": "^1.0.3",
-        "cipher-base": "^1.0.0",
-        "create-hash": "^1.1.0",
-        "evp_bytestokey": "^1.0.3",
-        "inherits": "^2.0.1",
-        "safe-buffer": "^5.0.1"
-      }
-    },
-    "browserify-cipher": {
-      "version": "1.0.0",
-      "resolved": "https://registry.npmjs.org/browserify-cipher/-/browserify-cipher-1.0.0.tgz",
-      "integrity": "sha1-mYgkSHS/XtTijalWZtzWasj8Njo=",
-      "dev": true,
-      "requires": {
-        "browserify-aes": "^1.0.4",
-        "browserify-des": "^1.0.0",
-        "evp_bytestokey": "^1.0.0"
-      }
-    },
-    "browserify-des": {
-      "version": "1.0.0",
-      "resolved": "https://registry.npmjs.org/browserify-des/-/browserify-des-1.0.0.tgz",
-      "integrity": "sha1-2qJ3cXRwki7S/hhZQRihdUOXId0=",
-      "dev": true,
-      "requires": {
-        "cipher-base": "^1.0.1",
-        "des.js": "^1.0.0",
-        "inherits": "^2.0.1"
-      }
-    },
-    "browserify-rsa": {
-      "version": "4.0.1",
-      "resolved": "https://registry.npmjs.org/browserify-rsa/-/browserify-rsa-4.0.1.tgz",
-      "integrity": "sha1-IeCr+vbyApzy+vsTNWenAdQTVSQ=",
-      "dev": true,
-      "requires": {
-        "bn.js": "^4.1.0",
-        "randombytes": "^2.0.1"
-      }
-    },
-    "browserify-sign": {
-      "version": "4.0.4",
-      "resolved": "https://registry.npmjs.org/browserify-sign/-/browserify-sign-4.0.4.tgz",
-      "integrity": "sha1-qk62jl17ZYuqa/alfmMMvXqT0pg=",
-      "dev": true,
-      "requires": {
-        "bn.js": "^4.1.1",
-        "browserify-rsa": "^4.0.0",
-        "create-hash": "^1.1.0",
-        "create-hmac": "^1.1.2",
-        "elliptic": "^6.0.0",
-        "inherits": "^2.0.1",
-        "parse-asn1": "^5.0.0"
-      }
-    },
-    "browserify-zlib": {
-      "version": "0.2.0",
-      "resolved": "https://registry.npmjs.org/browserify-zlib/-/browserify-zlib-0.2.0.tgz",
-      "integrity": "sha512-Z942RysHXmJrhqk88FmKBVq/v5tqmSkDz7p54G/MGyjMnCFFnC79XWNbg+Vta8W6Wb2qtSZTSxIGkJrRpCFEiA==",
-      "dev": true,
-      "requires": {
-        "pako": "~1.0.5"
-      }
-    },
-    "browserslist": {
-      "version": "2.11.3",
-      "resolved": "https://registry.npmjs.org/browserslist/-/browserslist-2.11.3.tgz",
-      "integrity": "sha512-yWu5cXT7Av6mVwzWc8lMsJMHWn4xyjSuGYi4IozbVTLUOEYPSagUB8kiMDUHA1fS3zjr8nkxkn9jdvug4BBRmA==",
-      "dev": true,
-      "requires": {
-        "caniuse-lite": "^1.0.30000792",
-        "electron-to-chromium": "^1.3.30"
-      }
-    },
-    "bser": {
-      "version": "2.0.0",
-      "resolved": "https://registry.npmjs.org/bser/-/bser-2.0.0.tgz",
-      "integrity": "sha1-mseNPtXZFYBP2HrLFYvHlxR6Fxk=",
-      "dev": true,
-      "requires": {
-        "node-int64": "^0.4.0"
-      }
-    },
-    "buffer": {
-      "version": "4.9.1",
-      "resolved": "https://registry.npmjs.org/buffer/-/buffer-4.9.1.tgz",
-      "integrity": "sha1-bRu2AbB6TvztlwlBMgkwJ8lbwpg=",
-      "dev": true,
-      "requires": {
-        "base64-js": "^1.0.2",
-        "ieee754": "^1.1.4",
-        "isarray": "^1.0.0"
-      }
-    },
-    "buffer-crc32": {
-      "version": "0.2.13",
-      "resolved": "https://registry.npmjs.org/buffer-crc32/-/buffer-crc32-0.2.13.tgz",
-      "integrity": "sha1-DTM+PwDqxQqhRUq9MO+MKl2ackI=",
-      "dev": true
-    },
-    "buffer-from": {
-      "version": "1.1.1",
-      "resolved": "https://registry.npmjs.org/buffer-from/-/buffer-from-1.1.1.tgz",
-      "integrity": "sha512-MQcXEUbCKtEo7bhqEs6560Hyd4XaovZlO/k9V3hjVUF/zwW7KBVdSK4gIt/bzwS9MbR5qob+F5jusZsb0YQK2A==",
-      "dev": true
-    },
-    "buffer-indexof": {
-      "version": "1.1.1",
-      "resolved": "https://registry.npmjs.org/buffer-indexof/-/buffer-indexof-1.1.1.tgz",
-      "integrity": "sha512-4/rOEg86jivtPTeOUUT61jJO1Ya1TrR/OkqCSZDyq84WJh3LuuiphBYJN+fm5xufIk4XAFcEwte/8WzC8If/1g==",
-      "dev": true
-    },
-    "buffer-xor": {
-      "version": "1.0.3",
-      "resolved": "https://registry.npmjs.org/buffer-xor/-/buffer-xor-1.0.3.tgz",
-      "integrity": "sha1-JuYe0UIvtw3ULm42cp7VHYVf6Nk=",
-      "dev": true
-    },
-    "builtin-modules": {
-      "version": "1.1.1",
-      "resolved": "https://registry.npmjs.org/builtin-modules/-/builtin-modules-1.1.1.tgz",
-      "integrity": "sha1-Jw8HbFpywC9bZaR9+Uxf46J4iS8=",
-      "dev": true
-    },
-    "builtin-status-codes": {
-      "version": "3.0.0",
-      "resolved": "https://registry.npmjs.org/builtin-status-codes/-/builtin-status-codes-3.0.0.tgz",
-      "integrity": "sha1-hZgoeOIbmOHGZCXgPQF0eI9Wnug=",
-      "dev": true
-    },
-    "builtins": {
-      "version": "1.0.3",
-      "resolved": "https://registry.npmjs.org/builtins/-/builtins-1.0.3.tgz",
-      "integrity": "sha1-y5T662HIaWRR2zZTThQi+U8K7og=",
-      "dev": true
-    },
-    "bunyan": {
-      "version": "1.8.12",
-      "resolved": "https://registry.npmjs.org/bunyan/-/bunyan-1.8.12.tgz",
-      "integrity": "sha1-8VDw9nSKvdcq6uhPBEA74u8RN5c=",
-      "requires": {
-        "dtrace-provider": "~0.8",
-        "moment": "^2.10.6",
-        "mv": "~2",
-        "safe-json-stringify": "~1"
-      }
-    },
-    "bunyan-blackhole": {
-      "version": "1.1.1",
-      "resolved": "https://registry.npmjs.org/bunyan-blackhole/-/bunyan-blackhole-1.1.1.tgz",
-      "integrity": "sha1-uSCFhtwLTkf09xMhWxvd1l5PYlc=",
-      "requires": {
-        "stream-blackhole": "^1.0.3"
-      }
-    },
-    "bunyan-format": {
-      "version": "0.2.1",
-      "resolved": "https://registry.npmjs.org/bunyan-format/-/bunyan-format-0.2.1.tgz",
-      "integrity": "sha1-pLOw2ABwqGUnlBcmnj8A/wL7y0c=",
-      "requires": {
-        "ansicolors": "~0.2.1",
-        "ansistyles": "~0.1.1",
-        "xtend": "~2.1.1"
-      },
-      "dependencies": {
-        "object-keys": {
-          "version": "0.4.0",
-          "resolved": "https://registry.npmjs.org/object-keys/-/object-keys-0.4.0.tgz",
-          "integrity": "sha1-KKaq50KN0sOpLz2V8hM13SBOAzY="
-        },
-        "xtend": {
-          "version": "2.1.2",
-          "resolved": "https://registry.npmjs.org/xtend/-/xtend-2.1.2.tgz",
-          "integrity": "sha1-bv7MKk2tjmlixJAbM3znuoe10os=",
-          "requires": {
-            "object-keys": "~0.4.0"
-          }
-        }
-      }
-    },
-    "bytes": {
-      "version": "3.0.0",
-      "resolved": "https://registry.npmjs.org/bytes/-/bytes-3.0.0.tgz",
-      "integrity": "sha1-0ygVQE1olpn4Wk6k+odV3ROpYEg=",
-      "dev": true
-    },
-    "cacache": {
-      "version": "10.0.4",
-      "resolved": "https://registry.npmjs.org/cacache/-/cacache-10.0.4.tgz",
-      "integrity": "sha512-Dph0MzuH+rTQzGPNT9fAnrPmMmjKfST6trxJeK7NQuHRaVw24VzPRWTmg9MpcwOVQZO0E1FBICUlFeNaKPIfHA==",
-      "dev": true,
-      "requires": {
-        "bluebird": "^3.5.1",
-        "chownr": "^1.0.1",
-        "glob": "^7.1.2",
-        "graceful-fs": "^4.1.11",
-        "lru-cache": "^4.1.1",
-        "mississippi": "^2.0.0",
-        "mkdirp": "^0.5.1",
-        "move-concurrently": "^1.0.1",
-        "promise-inflight": "^1.0.1",
-        "rimraf": "^2.6.2",
-        "ssri": "^5.2.4",
-        "unique-filename": "^1.1.0",
-        "y18n": "^4.0.0"
-      }
-    },
-    "cache-base": {
-      "version": "1.0.1",
-      "resolved": "https://registry.npmjs.org/cache-base/-/cache-base-1.0.1.tgz",
-      "integrity": "sha512-AKcdTnFSWATd5/GCPRxr2ChwIJ85CeyrEyjRHlKxQ56d4XJMGym0uAiKn0xbLOGOl3+yRpOTi484dVCEc5AUzQ==",
-      "dev": true,
-      "requires": {
-        "collection-visit": "^1.0.0",
-        "component-emitter": "^1.2.1",
-        "get-value": "^2.0.6",
-        "has-value": "^1.0.0",
-        "isobject": "^3.0.1",
-        "set-value": "^2.0.0",
-        "to-object-path": "^0.3.0",
-        "union-value": "^1.0.0",
-        "unset-value": "^1.0.0"
-      },
-      "dependencies": {
-        "isobject": {
-          "version": "3.0.1",
-          "resolved": "https://registry.npmjs.org/isobject/-/isobject-3.0.1.tgz",
-          "integrity": "sha1-TkMekrEalzFjaqH5yNHMvP2reN8=",
-          "dev": true
-        }
-      }
-    },
-    "cachedir": {
-      "version": "1.3.0",
-      "resolved": "https://registry.npmjs.org/cachedir/-/cachedir-1.3.0.tgz",
-      "integrity": "sha512-O1ji32oyON9laVPJL1IZ5bmwd2cB46VfpxkDequezH+15FDzzVddEyrGEeX4WusDSqKxdyFdDQDEG1yo1GoWkg==",
-      "dev": true,
-      "requires": {
-        "os-homedir": "^1.0.1"
-      }
-    },
-    "caller-callsite": {
-      "version": "2.0.0",
-      "resolved": "https://registry.npmjs.org/caller-callsite/-/caller-callsite-2.0.0.tgz",
-      "integrity": "sha1-hH4PzgoiN1CpoCfFSzNzGtMVQTQ=",
-      "dev": true,
-      "requires": {
-        "callsites": "^2.0.0"
-      }
-    },
-    "caller-path": {
-      "version": "2.0.0",
-      "resolved": "https://registry.npmjs.org/caller-path/-/caller-path-2.0.0.tgz",
-      "integrity": "sha1-Ro+DBE42mrIBD6xfBs7uFbsssfQ=",
-      "dev": true,
-      "requires": {
-        "caller-callsite": "^2.0.0"
-      }
-    },
-    "callsites": {
-      "version": "2.0.0",
-      "resolved": "https://registry.npmjs.org/callsites/-/callsites-2.0.0.tgz",
-      "integrity": "sha1-BuuE8A7qQT2oav/vrL/7Ngk7PFA=",
-      "dev": true
-    },
-    "camelcase": {
-      "version": "2.1.1",
-      "resolved": "https://registry.npmjs.org/camelcase/-/camelcase-2.1.1.tgz",
-      "integrity": "sha1-fB0W1nmhu+WcoCys7PsBHiAfWh8=",
-      "dev": true,
-      "optional": true
-    },
-    "camelcase-keys": {
-      "version": "2.1.0",
-      "resolved": "https://registry.npmjs.org/camelcase-keys/-/camelcase-keys-2.1.0.tgz",
-      "integrity": "sha1-MIvur/3ygRkFHvodkyITyRuPkuc=",
-      "dev": true,
-      "optional": true,
-      "requires": {
-        "camelcase": "^2.0.0",
-        "map-obj": "^1.0.0"
-      }
-    },
-    "caniuse-lite": {
-      "version": "1.0.30000815",
-      "resolved": "https://registry.npmjs.org/caniuse-lite/-/caniuse-lite-1.0.30000815.tgz",
-      "integrity": "sha512-PGSOPK6gFe5fWd+eD0u2bG0aOsN1qC4B1E66tl3jOsIoKkTIcBYAc2+O6AeNzKW8RsFykWgnhkTlfOyuTzgI9A==",
-      "dev": true
-    },
-    "canonical-path": {
-      "version": "1.0.0",
-      "resolved": "https://registry.npmjs.org/canonical-path/-/canonical-path-1.0.0.tgz",
-      "integrity": "sha512-feylzsbDxi1gPZ1IjystzIQZagYYLvfKrSuygUCgf7z6x790VEzze5QEkdSV1U58RA7Hi0+v6fv4K54atOzATg==",
-      "dev": true
-    },
-    "capture-exit": {
-      "version": "1.2.0",
-      "resolved": "https://registry.npmjs.org/capture-exit/-/capture-exit-1.2.0.tgz",
-      "integrity": "sha1-HF/MSJ/QqwDU8ax64QcuMXP7q28=",
-      "dev": true,
-      "requires": {
-        "rsvp": "^3.3.3"
-      }
-    },
-    "capture-stack-trace": {
-      "version": "1.0.1",
-      "resolved": "https://registry.npmjs.org/capture-stack-trace/-/capture-stack-trace-1.0.1.tgz",
-      "integrity": "sha512-mYQLZnx5Qt1JgB1WEiMCf2647plpGeQ2NMR/5L0HNZzGQo4fuSPnK+wjfPnKZV0aiJDgzmWqqkV/g7JD+DW0qw=="
-    },
-    "caseless": {
-      "version": "0.12.0",
-      "resolved": "https://registry.npmjs.org/caseless/-/caseless-0.12.0.tgz",
-      "integrity": "sha1-G2gcIf+EAzyCZUMJBolCDRhxUdw="
-    },
-    "center-align": {
-      "version": "0.1.3",
-      "resolved": "https://registry.npmjs.org/center-align/-/center-align-0.1.3.tgz",
-      "integrity": "sha1-qg0yYptu6XIgBBHL1EYckHvCt60=",
-      "dev": true,
-      "requires": {
-        "align-text": "^0.1.3",
-        "lazy-cache": "^1.0.3"
-      }
-    },
-    "chalk": {
-      "version": "2.2.2",
-      "resolved": "https://registry.npmjs.org/chalk/-/chalk-2.2.2.tgz",
-      "integrity": "sha512-LvixLAQ4MYhbf7hgL4o5PeK32gJKvVzDRiSNIApDofQvyhl8adgG2lJVXn4+ekQoK7HL9RF8lqxwerpe0x2pCw==",
-      "requires": {
-        "ansi-styles": "^3.1.0",
-        "escape-string-regexp": "^1.0.5",
-        "supports-color": "^4.0.0"
-      }
-    },
-    "chardet": {
-      "version": "0.7.0",
-      "resolved": "https://registry.npmjs.org/chardet/-/chardet-0.7.0.tgz",
-      "integrity": "sha512-mT8iDcrh03qDGRRmoA2hmBJnxpllMR+0/0qlzjqZES6NdiWDcZkCNAk4rPFZ9Q85r27unkiNNg8ZOiwZXBHwcA==",
-      "dev": true
-    },
-    "charenc": {
-      "version": "0.0.2",
-      "resolved": "https://registry.npmjs.org/charenc/-/charenc-0.0.2.tgz",
-      "integrity": "sha1-wKHS86cJLgN3S/qD8UwPxXkKhmc="
-    },
-    "check-more-types": {
-      "version": "2.24.0",
-      "resolved": "https://registry.npmjs.org/check-more-types/-/check-more-types-2.24.0.tgz",
-      "integrity": "sha1-FCD/sQ/URNz8ebQ4kbv//TKoRgA=",
-      "dev": true
-    },
-    "chokidar": {
-      "version": "1.7.0",
-      "resolved": "https://registry.npmjs.org/chokidar/-/chokidar-1.7.0.tgz",
-      "integrity": "sha1-eY5ol3gVHIB2tLNg5e3SjNortGg=",
-      "dev": true,
-      "requires": {
-        "anymatch": "^1.3.0",
-        "async-each": "^1.0.0",
-        "fsevents": "^1.0.0",
-        "glob-parent": "^2.0.0",
-        "inherits": "^2.0.1",
-        "is-binary-path": "^1.0.0",
-        "is-glob": "^2.0.0",
-        "path-is-absolute": "^1.0.0",
-        "readdirp": "^2.0.0"
-      }
-    },
-    "chownr": {
-      "version": "1.1.1",
-      "resolved": "https://registry.npmjs.org/chownr/-/chownr-1.1.1.tgz",
-      "integrity": "sha512-j38EvO5+LHX84jlo6h4UzmOwi0UgW61WRyPtJz4qaadK5eY3BTS5TY/S1Stc3Uk2lIM6TPevAlULiEJwie860g==",
-      "dev": true
-    },
-    "chrome-trace-event": {
-      "version": "1.0.0",
-      "resolved": "https://registry.npmjs.org/chrome-trace-event/-/chrome-trace-event-1.0.0.tgz",
-      "integrity": "sha512-xDbVgyfDTT2piup/h8dK/y4QZfJRSa73bw1WZ8b4XM1o7fsFubUVGYcE+1ANtOzJJELGpYoG2961z0Z6OAld9A==",
-      "dev": true,
-      "requires": {
-        "tslib": "^1.9.0"
-      }
-    },
-    "ci-info": {
-      "version": "1.1.3",
-      "resolved": "https://registry.npmjs.org/ci-info/-/ci-info-1.1.3.tgz",
-      "integrity": "sha512-SK/846h/Rcy8q9Z9CAwGBLfCJ6EkjJWdpelWDufQpqVDYq2Wnnv8zlSO6AMQap02jvhVruKKpEtQOufo3pFhLg==",
-      "dev": true
-    },
-    "cipher-base": {
-      "version": "1.0.4",
-      "resolved": "https://registry.npmjs.org/cipher-base/-/cipher-base-1.0.4.tgz",
-      "integrity": "sha512-Kkht5ye6ZGmwv40uUDZztayT2ThLQGfnj/T71N/XzeZeo3nf8foyW7zGTsPYkEya3m5f3cAypH+qe7YOrM1U2Q==",
-      "dev": true,
-      "requires": {
-        "inherits": "^2.0.1",
-        "safe-buffer": "^5.0.1"
-      }
-    },
-    "circular-dependency-plugin": {
-      "version": "5.0.2",
-      "resolved": "https://registry.npmjs.org/circular-dependency-plugin/-/circular-dependency-plugin-5.0.2.tgz",
-      "integrity": "sha512-oC7/DVAyfcY3UWKm0sN/oVoDedQDQiw/vIiAnuTWTpE5s0zWf7l3WY417Xw/Fbi/QbAjctAkxgMiS9P0s3zkmA==",
-      "dev": true
-    },
-    "class-utils": {
-      "version": "0.3.6",
-      "resolved": "https://registry.npmjs.org/class-utils/-/class-utils-0.3.6.tgz",
-      "integrity": "sha512-qOhPa/Fj7s6TY8H8esGu5QNpMMQxz79h+urzrNYN6mn+9BnxlDGf5QZ+XeCDsxSjPqsSR56XOZOJmpeurnLMeg==",
-      "dev": true,
-      "requires": {
-        "arr-union": "^3.1.0",
-        "define-property": "^0.2.5",
-        "isobject": "^3.0.0",
-        "static-extend": "^0.1.1"
-      },
-      "dependencies": {
-        "define-property": {
-          "version": "0.2.5",
-          "resolved": "https://registry.npmjs.org/define-property/-/define-property-0.2.5.tgz",
-          "integrity": "sha1-w1se+RjsPJkPmlvFe+BKrOxcgRY=",
-          "dev": true,
-          "requires": {
-            "is-descriptor": "^0.1.0"
-          }
-        },
-        "is-accessor-descriptor": {
-          "version": "0.1.6",
-          "resolved": "https://registry.npmjs.org/is-accessor-descriptor/-/is-accessor-descriptor-0.1.6.tgz",
-          "integrity": "sha1-qeEss66Nh2cn7u84Q/igiXtcmNY=",
-          "dev": true,
-          "requires": {
-            "kind-of": "^3.0.2"
-          },
-          "dependencies": {
-            "kind-of": {
-              "version": "3.2.2",
-              "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-3.2.2.tgz",
-              "integrity": "sha1-MeohpzS6ubuw8yRm2JOupR5KPGQ=",
-              "dev": true,
-              "requires": {
-                "is-buffer": "^1.1.5"
-              }
-            }
-          }
-        },
-        "is-data-descriptor": {
-          "version": "0.1.4",
-          "resolved": "https://registry.npmjs.org/is-data-descriptor/-/is-data-descriptor-0.1.4.tgz",
-          "integrity": "sha1-C17mSDiOLIYCgueT8YVv7D8wG1Y=",
-          "dev": true,
-          "requires": {
-            "kind-of": "^3.0.2"
-          },
-          "dependencies": {
-            "kind-of": {
-              "version": "3.2.2",
-              "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-3.2.2.tgz",
-              "integrity": "sha1-MeohpzS6ubuw8yRm2JOupR5KPGQ=",
-              "dev": true,
-              "requires": {
-                "is-buffer": "^1.1.5"
-              }
-            }
-          }
-        },
-        "is-descriptor": {
-          "version": "0.1.6",
-          "resolved": "https://registry.npmjs.org/is-descriptor/-/is-descriptor-0.1.6.tgz",
-          "integrity": "sha512-avDYr0SB3DwO9zsMov0gKCESFYqCnE4hq/4z3TdUlukEy5t9C0YRq7HLrsN52NAcqXKaepeCD0n+B0arnVG3Hg==",
-          "dev": true,
-          "requires": {
-            "is-accessor-descriptor": "^0.1.6",
-            "is-data-descriptor": "^0.1.4",
-            "kind-of": "^5.0.0"
-          }
-        },
-        "isobject": {
-          "version": "3.0.1",
-          "resolved": "https://registry.npmjs.org/isobject/-/isobject-3.0.1.tgz",
-          "integrity": "sha1-TkMekrEalzFjaqH5yNHMvP2reN8=",
-          "dev": true
-        },
-        "kind-of": {
-          "version": "5.1.0",
-          "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-5.1.0.tgz",
-          "integrity": "sha512-NGEErnH6F2vUuXDh+OlbcKW7/wOcfdRHaZ7VWtqCztfHri/++YKmP51OdWeGPuqCOba6kk2OTe5d02VmTB80Pw==",
-          "dev": true
-        }
-      }
-    },
-    "clean-css": {
-      "version": "4.2.1",
-      "resolved": "https://registry.npmjs.org/clean-css/-/clean-css-4.2.1.tgz",
-      "integrity": "sha512-4ZxI6dy4lrY6FHzfiy1aEOXgu4LIsW2MhwG0VBKdcoGoH/XLFgaHSdLTGr4O8Be6A8r3MOphEiI8Gc1n0ecf3g==",
-      "dev": true,
-      "requires": {
-        "source-map": "~0.6.0"
-      },
-      "dependencies": {
-        "source-map": {
-          "version": "0.6.1",
-          "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.6.1.tgz",
-          "integrity": "sha512-UjgapumWlbMhkBgzT7Ykc5YXUT46F0iKu8SGXq0bcwP5dz/h0Plj6enJqjz1Zbq2l5WaqYnrVbwWOWMyF3F47g==",
-          "dev": true
-        }
-      }
-    },
-    "cli-cursor": {
-      "version": "2.1.0",
-      "resolved": "https://registry.npmjs.org/cli-cursor/-/cli-cursor-2.1.0.tgz",
-      "integrity": "sha1-s12sN2R5+sw+lHR9QdDQ9SOP/LU=",
-      "dev": true,
-      "requires": {
-        "restore-cursor": "^2.0.0"
-      }
-    },
-    "cli-spinners": {
-      "version": "0.1.2",
-      "resolved": "https://registry.npmjs.org/cli-spinners/-/cli-spinners-0.1.2.tgz",
-      "integrity": "sha1-u3ZNiOGF+54eaiofGXcjGPYF4xw=",
-      "dev": true
-    },
-    "cli-truncate": {
-      "version": "0.2.1",
-      "resolved": "https://registry.npmjs.org/cli-truncate/-/cli-truncate-0.2.1.tgz",
-      "integrity": "sha1-nxXPuwcFAFNpIWxiasfQWrkN1XQ=",
-      "dev": true,
-      "requires": {
-        "slice-ansi": "0.0.4",
-        "string-width": "^1.0.1"
-      }
-    },
-    "cli-width": {
-      "version": "2.2.0",
-      "resolved": "https://registry.npmjs.org/cli-width/-/cli-width-2.2.0.tgz",
-      "integrity": "sha1-/xnt6Kml5XkyQUewwR8PvLq+1jk=",
-      "dev": true
-    },
-    "cliui": {
-      "version": "3.2.0",
-      "resolved": "https://registry.npmjs.org/cliui/-/cliui-3.2.0.tgz",
-      "integrity": "sha1-EgYBU3qRbSmUD5NNo7SNWFo5IT0=",
-      "dev": true,
-      "requires": {
-        "string-width": "^1.0.1",
-        "strip-ansi": "^3.0.1",
-        "wrap-ansi": "^2.0.0"
-      }
-    },
-    "clone": {
-      "version": "2.1.2",
-      "resolved": "https://registry.npmjs.org/clone/-/clone-2.1.2.tgz",
-      "integrity": "sha1-G39Ln1kfHo+DZwQBYANFoCiHQ18=",
-      "dev": true
-    },
-    "clone-deep": {
-      "version": "2.0.2",
-      "resolved": "https://registry.npmjs.org/clone-deep/-/clone-deep-2.0.2.tgz",
-      "integrity": "sha512-SZegPTKjCgpQH63E+eN6mVEEPdQBOUzjyJm5Pora4lrwWRFS8I0QAxV/KD6vV/i0WuijHZWQC1fMsPEdxfdVCQ==",
-      "dev": true,
-      "requires": {
-        "for-own": "^1.0.0",
-        "is-plain-object": "^2.0.4",
-        "kind-of": "^6.0.0",
-        "shallow-clone": "^1.0.0"
-      },
-      "dependencies": {
-        "for-own": {
-          "version": "1.0.0",
-          "resolved": "https://registry.npmjs.org/for-own/-/for-own-1.0.0.tgz",
-          "integrity": "sha1-xjMy9BXO3EsE2/5wz4NklMU8tEs=",
-          "dev": true,
-          "requires": {
-            "for-in": "^1.0.1"
-          }
-        },
-        "kind-of": {
-          "version": "6.0.2",
-          "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-6.0.2.tgz",
-          "integrity": "sha512-s5kLOcnH0XqDO+FvuaLX8DDjZ18CGFk7VygH40QoKPUQhW4e2rvM0rwUq0t8IQDOwYSeLK01U90OjzBTme2QqA==",
-          "dev": true
-        }
-      }
-    },
-    "closest-file-data": {
-      "version": "0.1.4",
-      "resolved": "https://registry.npmjs.org/closest-file-data/-/closest-file-data-0.1.4.tgz",
-      "integrity": "sha1-l1+HwTLymdJKA3W59jyj+4j3Kzo="
-    },
-    "co": {
-      "version": "4.6.0",
-      "resolved": "https://registry.npmjs.org/co/-/co-4.6.0.tgz",
-      "integrity": "sha1-bqa989hTrlTMuOR7+gvz+QMfsYQ="
-    },
-    "code-point-at": {
-      "version": "1.1.0",
-      "resolved": "https://registry.npmjs.org/code-point-at/-/code-point-at-1.1.0.tgz",
-      "integrity": "sha1-DQcLTQQ6W+ozovGkDi7bPZpMz3c=",
-      "dev": true
-    },
-    "codelyzer": {
-      "version": "4.5.0",
-      "resolved": "https://registry.npmjs.org/codelyzer/-/codelyzer-4.5.0.tgz",
-      "integrity": "sha512-oO6vCkjqsVrEsmh58oNlnJkRXuA30hF8cdNAQV9DytEalDwyOFRvHMnlKFzmOStNerOmPGZU9GAHnBo4tGvtiQ==",
-      "dev": true,
-      "requires": {
-        "app-root-path": "^2.1.0",
-        "css-selector-tokenizer": "^0.7.0",
-        "cssauron": "^1.4.0",
-        "semver-dsl": "^1.0.1",
-        "source-map": "^0.5.7",
-        "sprintf-js": "^1.1.1"
-      },
-      "dependencies": {
-        "sprintf-js": {
-          "version": "1.1.2",
-          "resolved": "https://registry.npmjs.org/sprintf-js/-/sprintf-js-1.1.2.tgz",
-          "integrity": "sha512-VE0SOVEHCk7Qc8ulkWw3ntAzXuqf7S2lvwQaDLRnUeIEaKNQJzV6BwmLKhOqT61aGhfUMrXeaBk+oDGCzvhcug==",
-          "dev": true
-        }
-      }
-    },
-    "collection-visit": {
-      "version": "1.0.0",
-      "resolved": "https://registry.npmjs.org/collection-visit/-/collection-visit-1.0.0.tgz",
-      "integrity": "sha1-S8A3PBZLwykbTTaMgpzxqApZ3KA=",
-      "dev": true,
-      "requires": {
-        "map-visit": "^1.0.0",
-        "object-visit": "^1.0.0"
-      }
-    },
-    "color-convert": {
-      "version": "1.9.1",
-      "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-1.9.1.tgz",
-      "integrity": "sha512-mjGanIiwQJskCC18rPR6OmrZ6fm2Lc7PeGFYwCmy5J34wC6F1PzdGL6xeMfmgicfYcNLGuVFA3WzXtIDCQSZxQ==",
-      "requires": {
-        "color-name": "^1.1.1"
-      }
-    },
-    "color-name": {
-      "version": "1.1.3",
-      "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.3.tgz",
-      "integrity": "sha1-p9BVi9icQveV3UIyj3QIMcpTvCU="
-    },
-    "combined-stream": {
-      "version": "1.0.6",
-      "resolved": "https://registry.npmjs.org/combined-stream/-/combined-stream-1.0.6.tgz",
-      "integrity": "sha1-cj599ugBrFYTETp+RFqbactjKBg=",
-      "requires": {
-        "delayed-stream": "~1.0.0"
-      }
-    },
-    "commander": {
-      "version": "2.15.0",
-      "resolved": "https://registry.npmjs.org/commander/-/commander-2.15.0.tgz",
-      "integrity": "sha512-7B1ilBwtYSbetCgTY1NJFg+gVpestg0fdA1MhC1Vs4ssyfSXnCAjFr+QcQM9/RedXC0EaUx1sG8Smgw2VfgKEg=="
-    },
-    "common-tags": {
-      "version": "1.4.0",
-      "resolved": "https://registry.npmjs.org/common-tags/-/common-tags-1.4.0.tgz",
-      "integrity": "sha1-EYe+Tz1M8MBCfUP3Tu8fc1AWFMA=",
-      "dev": true,
-      "requires": {
-        "babel-runtime": "^6.18.0"
-      }
-    },
-    "commondir": {
-      "version": "1.0.1",
-      "resolved": "https://registry.npmjs.org/commondir/-/commondir-1.0.1.tgz",
-      "integrity": "sha1-3dgA2gxmEnOTzKWVDqloo6rxJTs=",
-      "dev": true
-    },
-    "compare-versions": {
-      "version": "3.4.0",
-      "resolved": "https://registry.npmjs.org/compare-versions/-/compare-versions-3.4.0.tgz",
-      "integrity": "sha512-tK69D7oNXXqUW3ZNo/z7NXTEz22TCF0pTE+YF9cxvaAM9XnkLo1fV621xCLrRR6aevJlKxExkss0vWqUCUpqdg==",
-      "dev": true
-    },
-    "component-emitter": {
-      "version": "1.2.1",
-      "resolved": "https://registry.npmjs.org/component-emitter/-/component-emitter-1.2.1.tgz",
-      "integrity": "sha1-E3kY1teCg/ffemt8WmPhQOaUJeY=",
-      "dev": true
-    },
-    "compressible": {
-      "version": "2.0.15",
-      "resolved": "https://registry.npmjs.org/compressible/-/compressible-2.0.15.tgz",
-      "integrity": "sha512-4aE67DL33dSW9gw4CI2H/yTxqHLNcxp0yS6jB+4h+wr3e43+1z7vm0HU9qXOH8j+qjKuL8+UtkOxYQSMq60Ylw==",
-      "dev": true,
-      "requires": {
-        "mime-db": ">= 1.36.0 < 2"
-      },
-      "dependencies": {
-        "mime-db": {
-          "version": "1.37.0",
-          "resolved": "https://registry.npmjs.org/mime-db/-/mime-db-1.37.0.tgz",
-          "integrity": "sha512-R3C4db6bgQhlIhPU48fUtdVmKnflq+hRdad7IyKhtFj06VPNVdk2RhiYL3UjQIlso8L+YxAtFkobT0VK+S/ybg==",
-          "dev": true
-        }
-      }
-    },
-    "compression": {
-      "version": "1.7.3",
-      "resolved": "https://registry.npmjs.org/compression/-/compression-1.7.3.tgz",
-      "integrity": "sha512-HSjyBG5N1Nnz7tF2+O7A9XUhyjru71/fwgNb7oIsEVHR0WShfs2tIS/EySLgiTe98aOK18YDlMXpzjCXY/n9mg==",
-      "dev": true,
-      "requires": {
-        "accepts": "~1.3.5",
-        "bytes": "3.0.0",
-        "compressible": "~2.0.14",
-        "debug": "2.6.9",
-        "on-headers": "~1.0.1",
-        "safe-buffer": "5.1.2",
-        "vary": "~1.1.2"
-      },
-      "dependencies": {
-        "safe-buffer": {
-          "version": "5.1.2",
-          "resolved": "https://registry.npmjs.org/safe-buffer/-/safe-buffer-5.1.2.tgz",
-          "integrity": "sha512-Gd2UZBJDkXlY7GbJxfsE8/nvKkUEU1G38c1siN6QP6a9PT9MmHB8GnpscSmMJSoF8LOIrt8ud/wPtojys4G6+g==",
-          "dev": true
-        }
-      }
-    },
-    "concat-map": {
-      "version": "0.0.1",
-      "resolved": "https://registry.npmjs.org/concat-map/-/concat-map-0.0.1.tgz",
-      "integrity": "sha1-2Klr13/Wjfd5OnMDajug1UBdR3s="
-    },
-    "concat-stream": {
-      "version": "1.6.2",
-      "resolved": "http://registry.npmjs.org/concat-stream/-/concat-stream-1.6.2.tgz",
-      "integrity": "sha512-27HBghJxjiZtIk3Ycvn/4kbJk/1uZuJFfuPEns6LaEvpvG1f0hTea8lilrouyo9mVc2GWdcEZ8OLoGmSADlrCw==",
-      "dev": true,
-      "requires": {
-        "buffer-from": "^1.0.0",
-        "inherits": "^2.0.3",
-        "readable-stream": "^2.2.2",
-        "typedarray": "^0.0.6"
-      }
-    },
-    "concaveman": {
-      "version": "1.1.1",
-      "resolved": "https://registry.npmjs.org/concaveman/-/concaveman-1.1.1.tgz",
-      "integrity": "sha1-bCSCWAslI874L8K+wAoEFebmgWI=",
-      "requires": {
-        "monotone-convex-hull-2d": "^1.0.1",
-        "point-in-polygon": "^1.0.1",
-        "rbush": "^2.0.1",
-        "robust-orientation": "^1.1.3",
-        "tinyqueue": "^1.1.0"
-      }
-    },
-    "connect-history-api-fallback": {
-      "version": "1.5.0",
-      "resolved": "https://registry.npmjs.org/connect-history-api-fallback/-/connect-history-api-fallback-1.5.0.tgz",
-      "integrity": "sha1-sGhzk0vF40T+9hGhlqb6rgruAVo=",
-      "dev": true
-    },
-    "console-browserify": {
-      "version": "1.1.0",
-      "resolved": "https://registry.npmjs.org/console-browserify/-/console-browserify-1.1.0.tgz",
-      "integrity": "sha1-8CQcRXMKn8YyOyBtvzjtx0HQuxA=",
-      "dev": true,
-      "requires": {
-        "date-now": "^0.1.4"
-      }
-    },
-    "console-control-strings": {
-      "version": "1.1.0",
-      "resolved": "https://registry.npmjs.org/console-control-strings/-/console-control-strings-1.1.0.tgz",
-      "integrity": "sha1-PXz0Rk22RG6mRL9LOVB/mFEAjo4=",
-      "dev": true
-    },
-    "constants-browserify": {
-      "version": "1.0.0",
-      "resolved": "https://registry.npmjs.org/constants-browserify/-/constants-browserify-1.0.0.tgz",
-      "integrity": "sha1-wguW2MYXdIqvHBYCF2DNJ/y4y3U=",
-      "dev": true
-    },
-    "content-disposition": {
-      "version": "0.5.2",
-      "resolved": "https://registry.npmjs.org/content-disposition/-/content-disposition-0.5.2.tgz",
-      "integrity": "sha1-DPaLud318r55YcOoUXjLhdunjLQ=",
-      "dev": true
-    },
-    "content-type": {
-      "version": "1.0.4",
-      "resolved": "https://registry.npmjs.org/content-type/-/content-type-1.0.4.tgz",
-      "integrity": "sha512-hIP3EEPs8tB9AT1L+NUqtwOAps4mk2Zob89MWXMHjHWg9milF/j4osnnQLXBCBFBk/tvIG/tUc9mOUJiPBhPXA==",
-      "dev": true
-    },
-    "convert-source-map": {
-      "version": "1.5.1",
-      "resolved": "https://registry.npmjs.org/convert-source-map/-/convert-source-map-1.5.1.tgz",
-      "integrity": "sha1-uCeAl7m8IpNl3lxiz1/K7YtVmeU="
-    },
-    "cookie": {
-      "version": "0.3.1",
-      "resolved": "https://registry.npmjs.org/cookie/-/cookie-0.3.1.tgz",
-      "integrity": "sha1-5+Ch+e9DtMi6klxcWpboBtFoc7s="
-    },
-    "cookie-signature": {
-      "version": "1.0.6",
-      "resolved": "https://registry.npmjs.org/cookie-signature/-/cookie-signature-1.0.6.tgz",
-      "integrity": "sha1-4wOogrNCzD7oylE6eZmXNNqzriw=",
-      "dev": true
-    },
-    "copy-concurrently": {
-      "version": "1.0.5",
-      "resolved": "https://registry.npmjs.org/copy-concurrently/-/copy-concurrently-1.0.5.tgz",
-      "integrity": "sha512-f2domd9fsVDFtaFcbaRZuYXwtdmnzqbADSwhSWYxYB/Q8zsdUUFMXVRwXGDMWmbEzAn1kdRrtI1T/KTFOL4X2A==",
-      "dev": true,
-      "requires": {
-        "aproba": "^1.1.1",
-        "fs-write-stream-atomic": "^1.0.8",
-        "iferr": "^0.1.5",
-        "mkdirp": "^0.5.1",
-        "rimraf": "^2.5.4",
-        "run-queue": "^1.0.0"
-      }
-    },
-    "copy-descriptor": {
-      "version": "0.1.1",
-      "resolved": "https://registry.npmjs.org/copy-descriptor/-/copy-descriptor-0.1.1.tgz",
-      "integrity": "sha1-Z29us8OZl8LuGsOpJP1hJHSPV40=",
-      "dev": true
-    },
-    "copy-webpack-plugin": {
-      "version": "4.5.4",
-      "resolved": "https://registry.npmjs.org/copy-webpack-plugin/-/copy-webpack-plugin-4.5.4.tgz",
-      "integrity": "sha512-0lstlEyj74OAtYMrDxlNZsU7cwFijAI3Ofz2fD6Mpo9r4xCv4yegfa3uHIKvZY1NSuOtE9nvG6TAhJ+uz9gDaQ==",
-      "dev": true,
-      "requires": {
-        "cacache": "^10.0.4",
-        "find-cache-dir": "^1.0.0",
-        "globby": "^7.1.1",
-        "is-glob": "^4.0.0",
-        "loader-utils": "^1.1.0",
-        "minimatch": "^3.0.4",
-        "p-limit": "^1.0.0",
-        "serialize-javascript": "^1.4.0"
-      },
-      "dependencies": {
-        "is-extglob": {
-          "version": "2.1.1",
-          "resolved": "https://registry.npmjs.org/is-extglob/-/is-extglob-2.1.1.tgz",
-          "integrity": "sha1-qIwCU1eR8C7TfHahueqXc8gz+MI=",
-          "dev": true
-        },
-        "is-glob": {
-          "version": "4.0.0",
-          "resolved": "https://registry.npmjs.org/is-glob/-/is-glob-4.0.0.tgz",
-          "integrity": "sha1-lSHHaEXMJhCoUgPd8ICpWML/q8A=",
-          "dev": true,
-          "requires": {
-            "is-extglob": "^2.1.1"
-          }
-        }
-      }
-    },
-    "core-js": {
-      "version": "2.6.1",
-      "resolved": "https://registry.npmjs.org/core-js/-/core-js-2.6.1.tgz",
-      "integrity": "sha512-L72mmmEayPJBejKIWe2pYtGis5r0tQ5NaJekdhyXgeMQTpJoBsH0NL4ElY2LfSoV15xeQWKQ+XTTOZdyero5Xg=="
-    },
-    "core-util-is": {
-      "version": "1.0.2",
-      "resolved": "https://registry.npmjs.org/core-util-is/-/core-util-is-1.0.2.tgz",
-      "integrity": "sha1-tf1UIgqivFq1eqtxQMlAdUUDwac="
-    },
-    "cosmiconfig": {
-      "version": "4.0.0",
-      "resolved": "https://registry.npmjs.org/cosmiconfig/-/cosmiconfig-4.0.0.tgz",
-      "integrity": "sha512-6e5vDdrXZD+t5v0L8CrurPeybg4Fmf+FCSYxXKYVAqLUtyCSbuyqE059d0kDthTNRzKVjL7QMgNpEUlsoYH3iQ==",
-      "dev": true,
-      "requires": {
-        "is-directory": "^0.3.1",
-        "js-yaml": "^3.9.0",
-        "parse-json": "^4.0.0",
-        "require-from-string": "^2.0.1"
-      },
-      "dependencies": {
-        "parse-json": {
-          "version": "4.0.0",
-          "resolved": "https://registry.npmjs.org/parse-json/-/parse-json-4.0.0.tgz",
-          "integrity": "sha1-vjX1Qlvh9/bHRxhPmKeIy5lHfuA=",
-          "dev": true,
-          "requires": {
-            "error-ex": "^1.3.1",
-            "json-parse-better-errors": "^1.0.1"
-          }
-        }
-      }
-    },
-    "create-ecdh": {
-      "version": "4.0.0",
-      "resolved": "https://registry.npmjs.org/create-ecdh/-/create-ecdh-4.0.0.tgz",
-      "integrity": "sha1-iIxyNZbN92EvZJgjPuvXo1MBc30=",
-      "dev": true,
-      "requires": {
-        "bn.js": "^4.1.0",
-        "elliptic": "^6.0.0"
-      }
-    },
-    "create-error-class": {
-      "version": "3.0.2",
-      "resolved": "https://registry.npmjs.org/create-error-class/-/create-error-class-3.0.2.tgz",
-      "integrity": "sha1-Br56vvlHo/FKMP1hBnHUAbyot7Y=",
-      "requires": {
-        "capture-stack-trace": "^1.0.0"
-      }
-    },
-    "create-hash": {
-      "version": "1.1.3",
-      "resolved": "https://registry.npmjs.org/create-hash/-/create-hash-1.1.3.tgz",
-      "integrity": "sha1-YGBCrIuSYnUPSDyt2rD1gZFy2P0=",
-      "dev": true,
-      "requires": {
-        "cipher-base": "^1.0.1",
-        "inherits": "^2.0.1",
-        "ripemd160": "^2.0.0",
-        "sha.js": "^2.4.0"
-      }
-    },
-    "create-hmac": {
-      "version": "1.1.6",
-      "resolved": "https://registry.npmjs.org/create-hmac/-/create-hmac-1.1.6.tgz",
-      "integrity": "sha1-rLniIaThe9sHbpBlfEK5PjcmzwY=",
-      "dev": true,
-      "requires": {
-        "cipher-base": "^1.0.3",
-        "create-hash": "^1.1.0",
-        "inherits": "^2.0.1",
-        "ripemd160": "^2.0.0",
-        "safe-buffer": "^5.0.1",
-        "sha.js": "^2.4.8"
-      }
-    },
-    "cross-spawn": {
-      "version": "3.0.1",
-      "resolved": "https://registry.npmjs.org/cross-spawn/-/cross-spawn-3.0.1.tgz",
-      "integrity": "sha1-ElYDfsufDF9549bvE14wdwGEuYI=",
-      "dev": true,
-      "optional": true,
-      "requires": {
-        "lru-cache": "^4.0.1",
-        "which": "^1.2.9"
-      }
-    },
-    "crypt": {
-      "version": "0.0.2",
-      "resolved": "https://registry.npmjs.org/crypt/-/crypt-0.0.2.tgz",
-      "integrity": "sha1-iNf/fsDfuG9xPch7u0LQRNPmxBs="
-    },
-    "cryptiles": {
-      "version": "2.0.5",
-      "resolved": "https://registry.npmjs.org/cryptiles/-/cryptiles-2.0.5.tgz",
-      "integrity": "sha1-O9/s3GCBR8HGcgL6KR59ylnqo7g=",
-      "requires": {
-        "boom": "2.x.x"
-      }
-    },
-    "crypto-browserify": {
-      "version": "3.12.0",
-      "resolved": "https://registry.npmjs.org/crypto-browserify/-/crypto-browserify-3.12.0.tgz",
-      "integrity": "sha512-fz4spIh+znjO2VjL+IdhEpRJ3YN6sMzITSBijk6FK2UvTqruSQW+/cCZTSNsMiZNvUeq0CqurF+dAbyiGOY6Wg==",
-      "dev": true,
-      "requires": {
-        "browserify-cipher": "^1.0.0",
-        "browserify-sign": "^4.0.0",
-        "create-ecdh": "^4.0.0",
-        "create-hash": "^1.1.0",
-        "create-hmac": "^1.1.0",
-        "diffie-hellman": "^5.0.0",
-        "inherits": "^2.0.1",
-        "pbkdf2": "^3.0.3",
-        "public-encrypt": "^4.0.0",
-        "randombytes": "^2.0.0",
-        "randomfill": "^1.0.3"
-      }
-    },
-    "css-parse": {
-      "version": "1.7.0",
-      "resolved": "https://registry.npmjs.org/css-parse/-/css-parse-1.7.0.tgz",
-      "integrity": "sha1-Mh9s9zeCpv91ERE5D8BeLGV9jJs=",
-      "dev": true
-    },
-    "css-selector-tokenizer": {
-      "version": "0.7.1",
-      "resolved": "https://registry.npmjs.org/css-selector-tokenizer/-/css-selector-tokenizer-0.7.1.tgz",
-      "integrity": "sha512-xYL0AMZJ4gFzJQsHUKa5jiWWi2vH77WVNg7JYRyewwj6oPh4yb/y6Y9ZCw9dsj/9UauMhtuxR+ogQd//EdEVNA==",
-      "dev": true,
-      "requires": {
-        "cssesc": "^0.1.0",
-        "fastparse": "^1.1.1",
-        "regexpu-core": "^1.0.0"
-      }
-    },
-    "cssauron": {
-      "version": "1.4.0",
-      "resolved": "https://registry.npmjs.org/cssauron/-/cssauron-1.4.0.tgz",
-      "integrity": "sha1-pmAt/34EqDBtwNuaVR6S6LVmKtg=",
-      "dev": true,
-      "requires": {
-        "through": "X.X.X"
-      }
-    },
-    "cssauron-falafel": {
-      "version": "1.2.1",
-      "resolved": "https://registry.npmjs.org/cssauron-falafel/-/cssauron-falafel-1.2.1.tgz",
-      "integrity": "sha1-N7s/jpT9tKaaxadmgYajqEK+fc4=",
-      "requires": {
-        "cssauron": "1.1.0"
-      },
-      "dependencies": {
-        "cssauron": {
-          "version": "1.1.0",
-          "resolved": "https://registry.npmjs.org/cssauron/-/cssauron-1.1.0.tgz",
-          "integrity": "sha1-HywscQi/POSaOe21CF7ByZxeJew=",
-          "requires": {
-            "through": "X.X.X"
-          }
-        }
-      }
-    },
-    "cssesc": {
-      "version": "0.1.0",
-      "resolved": "https://registry.npmjs.org/cssesc/-/cssesc-0.1.0.tgz",
-      "integrity": "sha1-yBSQPkViM3GgR3tAEJqq++6t27Q=",
-      "dev": true
-    },
-    "cssom": {
-      "version": "0.3.6",
-      "resolved": "https://registry.npmjs.org/cssom/-/cssom-0.3.6.tgz",
-      "integrity": "sha512-DtUeseGk9/GBW0hl0vVPpU22iHL6YB5BUX7ml1hB+GMpo0NX5G4voX3kdWiMSEguFtcW3Vh3djqNF4aIe6ne0A==",
-      "dev": true
-    },
-    "cssstyle": {
-      "version": "1.2.1",
-      "resolved": "https://registry.npmjs.org/cssstyle/-/cssstyle-1.2.1.tgz",
-      "integrity": "sha512-7DYm8qe+gPx/h77QlCyFmX80+fGaE/6A/Ekl0zaszYOubvySO2saYFdQ78P29D0UsULxFKCetDGNaNRUdSF+2A==",
-      "dev": true,
-      "requires": {
-        "cssom": "0.3.x"
-      }
-    },
-    "currently-unhandled": {
-      "version": "0.4.1",
-      "resolved": "https://registry.npmjs.org/currently-unhandled/-/currently-unhandled-0.4.1.tgz",
-      "integrity": "sha1-mI3zP+qxke95mmE2nddsF635V+o=",
-      "dev": true,
-      "optional": true,
-      "requires": {
-        "array-find-index": "^1.0.1"
-      }
-    },
-    "cyclist": {
-      "version": "0.2.2",
-      "resolved": "https://registry.npmjs.org/cyclist/-/cyclist-0.2.2.tgz",
-      "integrity": "sha1-GzN5LhHpFKL9bW7WRHRkRE5fpkA=",
-      "dev": true
-    },
-    "cypress": {
-      "version": "3.1.0",
-      "resolved": "https://registry.npmjs.org/cypress/-/cypress-3.1.0.tgz",
-      "integrity": "sha512-UqLbXgHvM8Y6Y+roHrepZMWcyMN5u4KcjpTbJTZi0d5O2Prvtqmnpoky7a4C65q4oRQXeSc6cBZUhxJkhU4pbQ==",
-      "dev": true,
-      "requires": {
-        "@cypress/listr-verbose-renderer": "0.4.1",
-        "@cypress/xvfb": "1.2.3",
-        "@types/blob-util": "1.3.3",
-        "@types/bluebird": "3.5.18",
-        "@types/chai": "4.0.8",
-        "@types/chai-jquery": "1.1.35",
-        "@types/jquery": "3.2.16",
-        "@types/lodash": "4.14.87",
-        "@types/minimatch": "3.0.3",
-        "@types/mocha": "2.2.44",
-        "@types/sinon": "4.0.0",
-        "@types/sinon-chai": "2.7.29",
-        "bluebird": "3.5.0",
-        "cachedir": "1.3.0",
-        "chalk": "2.4.1",
-        "check-more-types": "2.24.0",
-        "commander": "2.11.0",
-        "common-tags": "1.4.0",
-        "debug": "3.1.0",
-        "execa": "0.10.0",
-        "executable": "4.1.1",
-        "extract-zip": "1.6.6",
-        "fs-extra": "4.0.1",
-        "getos": "3.1.0",
-        "glob": "7.1.2",
-        "is-ci": "1.0.10",
-        "is-installed-globally": "0.1.0",
-        "lazy-ass": "1.6.0",
-        "listr": "0.12.0",
-        "lodash": "4.17.10",
-        "log-symbols": "2.2.0",
-        "minimist": "1.2.0",
-        "progress": "1.1.8",
-        "ramda": "0.24.1",
-        "request": "2.87.0",
-        "request-progress": "0.3.1",
-        "supports-color": "5.1.0",
-        "tmp": "0.0.31",
-        "url": "0.11.0",
-        "yauzl": "2.8.0"
-      },
-      "dependencies": {
-        "@types/chai": {
-          "version": "4.0.8",
-          "resolved": "https://registry.npmjs.org/@types/chai/-/chai-4.0.8.tgz",
-          "integrity": "sha512-m812CONwdZn/dMzkIJEY0yAs4apyTkTORgfB2UsMOxgkUbC205AHnm4T8I0I5gPg9MHrFc1dJ35iS75c0CJkjg==",
-          "dev": true
-        },
-        "@types/lodash": {
-          "version": "4.14.87",
-          "resolved": "https://registry.npmjs.org/@types/lodash/-/lodash-4.14.87.tgz",
-          "integrity": "sha512-AqRC+aEF4N0LuNHtcjKtvF9OTfqZI0iaBoe3dA6m/W+/YZJBZjBmW/QIZ8fBeXC6cnytSY9tBoFBqZ9uSCeVsw==",
-          "dev": true
-        },
-        "ajv": {
-          "version": "5.5.2",
-          "resolved": "https://registry.npmjs.org/ajv/-/ajv-5.5.2.tgz",
-          "integrity": "sha1-c7Xuyj+rZT49P5Qis0GtQiBdyWU=",
-          "dev": true,
-          "requires": {
-            "co": "^4.6.0",
-            "fast-deep-equal": "^1.0.0",
-            "fast-json-stable-stringify": "^2.0.0",
-            "json-schema-traverse": "^0.3.0"
-          }
-        },
-        "assert-plus": {
-          "version": "1.0.0",
-          "resolved": "https://registry.npmjs.org/assert-plus/-/assert-plus-1.0.0.tgz",
-          "integrity": "sha1-8S4PPF13sLHN2RRpQuTpbB5N1SU=",
-          "dev": true
-        },
-        "aws-sign2": {
-          "version": "0.7.0",
-          "resolved": "https://registry.npmjs.org/aws-sign2/-/aws-sign2-0.7.0.tgz",
-          "integrity": "sha1-tG6JCTSpWR8tL2+G1+ap8bP+dqg=",
-          "dev": true
-        },
-        "bluebird": {
-          "version": "3.5.0",
-          "resolved": "https://registry.npmjs.org/bluebird/-/bluebird-3.5.0.tgz",
-          "integrity": "sha1-eRQg1/VR7qKJdFOop3ZT+WYG1nw=",
-          "dev": true
-        },
-        "chalk": {
-          "version": "2.4.1",
-          "resolved": "https://registry.npmjs.org/chalk/-/chalk-2.4.1.tgz",
-          "integrity": "sha512-ObN6h1v2fTJSmUXoS3nMQ92LbDK9be4TV+6G+omQlGJFdcUX5heKi1LZ1YnRMIgwTLEj3E24bT6tYni50rlCfQ==",
-          "dev": true,
-          "requires": {
-            "ansi-styles": "^3.2.1",
-            "escape-string-regexp": "^1.0.5",
-            "supports-color": "^5.3.0"
-          },
-          "dependencies": {
-            "supports-color": {
-              "version": "5.5.0",
-              "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-5.5.0.tgz",
-              "integrity": "sha512-QjVjwdXIt408MIiAqCX4oUKsgU2EqAGzs2Ppkm4aQYbjm+ZEWEcW4SfFNTr4uMNZma0ey4f5lgLrkB0aX0QMow==",
-              "dev": true,
-              "requires": {
-                "has-flag": "^3.0.0"
-              }
-            }
-          }
-        },
-        "commander": {
-          "version": "2.11.0",
-          "resolved": "https://registry.npmjs.org/commander/-/commander-2.11.0.tgz",
-          "integrity": "sha512-b0553uYA5YAEGgyYIGYROzKQ7X5RAqedkfjiZxwi0kL1g3bOaBNNZfYkzt/CL0umgD5wc9Jec2FbB98CjkMRvQ==",
-          "dev": true
-        },
-        "cross-spawn": {
-          "version": "6.0.5",
-          "resolved": "https://registry.npmjs.org/cross-spawn/-/cross-spawn-6.0.5.tgz",
-          "integrity": "sha512-eTVLrBSt7fjbDygz805pMnstIs2VTBNkRm0qxZd+M7A5XDdxVRWO5MxGBXZhjY4cqLYLdtrGqRf8mBPmzwSpWQ==",
-          "dev": true,
-          "requires": {
-            "nice-try": "^1.0.4",
-            "path-key": "^2.0.1",
-            "semver": "^5.5.0",
-            "shebang-command": "^1.2.0",
-            "which": "^1.2.9"
-          }
-        },
-        "debug": {
-          "version": "3.1.0",
-          "resolved": "https://registry.npmjs.org/debug/-/debug-3.1.0.tgz",
-          "integrity": "sha512-OX8XqP7/1a9cqkxYw2yXss15f26NKWBpDXQd0/uK/KPqdQhxbPa994hnzjcE2VqQpDslf55723cKPUOGSmMY3g==",
-          "dev": true,
-          "requires": {
-            "ms": "2.0.0"
-          }
-        },
-        "execa": {
-          "version": "0.10.0",
-          "resolved": "https://registry.npmjs.org/execa/-/execa-0.10.0.tgz",
-          "integrity": "sha512-7XOMnz8Ynx1gGo/3hyV9loYNPWM94jG3+3T3Y8tsfSstFmETmENCMU/A/zj8Lyaj1lkgEepKepvd6240tBRvlw==",
-          "dev": true,
-          "requires": {
-            "cross-spawn": "^6.0.0",
-            "get-stream": "^3.0.0",
-            "is-stream": "^1.1.0",
-            "npm-run-path": "^2.0.0",
-            "p-finally": "^1.0.0",
-            "signal-exit": "^3.0.0",
-            "strip-eof": "^1.0.0"
-          }
-        },
-        "form-data": {
-          "version": "2.3.3",
-          "resolved": "https://registry.npmjs.org/form-data/-/form-data-2.3.3.tgz",
-          "integrity": "sha512-1lLKB2Mu3aGP1Q/2eCOx0fNbRMe7XdwktwOruhfqqd0rIJWwN4Dh+E3hrPSlDCXnSR7UtZ1N38rVXm+6+MEhJQ==",
-          "dev": true,
-          "requires": {
-            "asynckit": "^0.4.0",
-            "combined-stream": "^1.0.6",
-            "mime-types": "^2.1.12"
-          }
-        },
-        "fs-extra": {
-          "version": "4.0.1",
-          "resolved": "https://registry.npmjs.org/fs-extra/-/fs-extra-4.0.1.tgz",
-          "integrity": "sha1-f8DGyJV/mD9X8waiTlud3Y0N2IA=",
-          "dev": true,
-          "requires": {
-            "graceful-fs": "^4.1.2",
-            "jsonfile": "^3.0.0",
-            "universalify": "^0.1.0"
-          }
-        },
-        "har-schema": {
-          "version": "2.0.0",
-          "resolved": "https://registry.npmjs.org/har-schema/-/har-schema-2.0.0.tgz",
-          "integrity": "sha1-qUwiJOvKwEeCoNkDVSHyRzW37JI=",
-          "dev": true
-        },
-        "har-validator": {
-          "version": "5.0.3",
-          "resolved": "https://registry.npmjs.org/har-validator/-/har-validator-5.0.3.tgz",
-          "integrity": "sha1-ukAsJmGU8VlW7xXg/PJCmT9qff0=",
-          "dev": true,
-          "requires": {
-            "ajv": "^5.1.0",
-            "har-schema": "^2.0.0"
-          }
-        },
-        "has-flag": {
-          "version": "3.0.0",
-          "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-3.0.0.tgz",
-          "integrity": "sha1-tdRU3CGZriJWmfNGfloH87lVuv0=",
-          "dev": true
-        },
-        "http-signature": {
-          "version": "1.2.0",
-          "resolved": "https://registry.npmjs.org/http-signature/-/http-signature-1.2.0.tgz",
-          "integrity": "sha1-muzZJRFHcvPZW2WmCruPfBj7rOE=",
-          "dev": true,
-          "requires": {
-            "assert-plus": "^1.0.0",
-            "jsprim": "^1.2.2",
-            "sshpk": "^1.7.0"
-          }
-        },
-        "jsonfile": {
-          "version": "3.0.1",
-          "resolved": "https://registry.npmjs.org/jsonfile/-/jsonfile-3.0.1.tgz",
-          "integrity": "sha1-pezG9l9T9mLEQVx2daAzHQmS7GY=",
-          "dev": true,
-          "requires": {
-            "graceful-fs": "^4.1.6"
-          }
-        },
-        "lodash": {
-          "version": "4.17.10",
-          "resolved": "https://registry.npmjs.org/lodash/-/lodash-4.17.10.tgz",
-          "integrity": "sha512-UejweD1pDoXu+AD825lWwp4ZGtSwgnpZxb3JDViD7StjQz+Nb/6l093lx4OQ0foGWNRoc19mWy7BzL+UAK2iVg==",
-          "dev": true
-        },
-        "minimist": {
-          "version": "1.2.0",
-          "resolved": "https://registry.npmjs.org/minimist/-/minimist-1.2.0.tgz",
-          "integrity": "sha1-o1AIsg9BOD7sH7kU9M1d95omQoQ=",
-          "dev": true
-        },
-        "performance-now": {
-          "version": "2.1.0",
-          "resolved": "https://registry.npmjs.org/performance-now/-/performance-now-2.1.0.tgz",
-          "integrity": "sha1-Ywn04OX6kT7BxpMHrjZLSzd8nns=",
-          "dev": true
-        },
-        "qs": {
-          "version": "6.5.2",
-          "resolved": "https://registry.npmjs.org/qs/-/qs-6.5.2.tgz",
-          "integrity": "sha512-N5ZAX4/LxJmF+7wN74pUD6qAh9/wnvdQcjq9TZjevvXzSUo7bfmw91saqMjzGS2xq91/odN2dW/WOl7qQHNDGA==",
-          "dev": true
-        },
-        "request": {
-          "version": "2.87.0",
-          "resolved": "https://registry.npmjs.org/request/-/request-2.87.0.tgz",
-          "integrity": "sha512-fcogkm7Az5bsS6Sl0sibkbhcKsnyon/jV1kF3ajGmF0c8HrttdKTPRT9hieOaQHA5HEq6r8OyWOo/o781C1tNw==",
-          "dev": true,
-          "requires": {
-            "aws-sign2": "~0.7.0",
-            "aws4": "^1.6.0",
-            "caseless": "~0.12.0",
-            "combined-stream": "~1.0.5",
-            "extend": "~3.0.1",
-            "forever-agent": "~0.6.1",
-            "form-data": "~2.3.1",
-            "har-validator": "~5.0.3",
-            "http-signature": "~1.2.0",
-            "is-typedarray": "~1.0.0",
-            "isstream": "~0.1.2",
-            "json-stringify-safe": "~5.0.1",
-            "mime-types": "~2.1.17",
-            "oauth-sign": "~0.8.2",
-            "performance-now": "^2.1.0",
-            "qs": "~6.5.1",
-            "safe-buffer": "^5.1.1",
-            "tough-cookie": "~2.3.3",
-            "tunnel-agent": "^0.6.0",
-            "uuid": "^3.1.0"
-          }
-        },
-        "supports-color": {
-          "version": "5.1.0",
-          "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-5.1.0.tgz",
-          "integrity": "sha512-Ry0AwkoKjDpVKK4sV4h6o3UJmNRbjYm2uXhwfj3J56lMVdvnUNqzQVRztOOMGQ++w1K/TjNDFvpJk0F/LoeBCQ==",
-          "dev": true,
-          "requires": {
-            "has-flag": "^2.0.0"
-          },
-          "dependencies": {
-            "has-flag": {
-              "version": "2.0.0",
-              "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-2.0.0.tgz",
-              "integrity": "sha1-6CB68cx7MNRGzHC3NLXovhj4jVE=",
-              "dev": true
-            }
-          }
-        }
-      }
-    },
-    "d": {
-      "version": "1.0.0",
-      "resolved": "https://registry.npmjs.org/d/-/d-1.0.0.tgz",
-      "integrity": "sha1-dUu1v+VUUdpppYuU1F9MWwRi1Y8=",
-      "dev": true,
-      "requires": {
-        "es5-ext": "^0.10.9"
-      }
-    },
-    "d3-array": {
-      "version": "1.2.4",
-      "resolved": "https://registry.npmjs.org/d3-array/-/d3-array-1.2.4.tgz",
-      "integrity": "sha512-KHW6M86R+FUPYGb3R5XiYjXPq7VzwxZ22buHhAEVG5ztoEcZZMLov530mmccaqA1GghZArjQV46fuc8kUqhhHw=="
-    },
-    "d3-geo": {
-      "version": "1.7.1",
-      "resolved": "https://registry.npmjs.org/d3-geo/-/d3-geo-1.7.1.tgz",
-      "integrity": "sha512-O4AempWAr+P5qbk2bC2FuN/sDW4z+dN2wDf9QV3bxQt4M5HfOEeXLgJ/UKQW0+o1Dj8BE+L5kiDbdWUMjsmQpw==",
-      "requires": {
-        "d3-array": "1"
-      }
-    },
-    "d3-voronoi": {
-      "version": "1.1.2",
-      "resolved": "https://registry.npmjs.org/d3-voronoi/-/d3-voronoi-1.1.2.tgz",
-      "integrity": "sha1-Fodmfo8TotFYyAwUgMWinLDYlzw="
-    },
-    "dashdash": {
-      "version": "1.14.1",
-      "resolved": "https://registry.npmjs.org/dashdash/-/dashdash-1.14.1.tgz",
-      "integrity": "sha1-hTz6D3y+L+1d4gMmuN1YEDX24vA=",
-      "requires": {
-        "assert-plus": "^1.0.0"
-      },
-      "dependencies": {
-        "assert-plus": {
-          "version": "1.0.0",
-          "resolved": "https://registry.npmjs.org/assert-plus/-/assert-plus-1.0.0.tgz",
-          "integrity": "sha1-8S4PPF13sLHN2RRpQuTpbB5N1SU="
-        }
-      }
-    },
-    "data-urls": {
-      "version": "1.1.0",
-      "resolved": "https://registry.npmjs.org/data-urls/-/data-urls-1.1.0.tgz",
-      "integrity": "sha512-YTWYI9se1P55u58gL5GkQHW4P6VJBJ5iBT+B5a7i2Tjadhv52paJG0qHX4A0OR6/t52odI64KP2YvFpkDOi3eQ==",
-      "dev": true,
-      "requires": {
-        "abab": "^2.0.0",
-        "whatwg-mimetype": "^2.2.0",
-        "whatwg-url": "^7.0.0"
-      },
-      "dependencies": {
-        "whatwg-url": {
-          "version": "7.0.0",
-          "resolved": "https://registry.npmjs.org/whatwg-url/-/whatwg-url-7.0.0.tgz",
-          "integrity": "sha512-37GeVSIJ3kn1JgKyjiYNmSLP1yzbpb29jdmwBSgkD9h40/hyrR/OifpVUndji3tmwGgD8qpw7iQu3RSbCrBpsQ==",
-          "dev": true,
-          "requires": {
-            "lodash.sortby": "^4.7.0",
-            "tr46": "^1.0.1",
-            "webidl-conversions": "^4.0.2"
-          }
-        }
-      }
-    },
-    "date-fns": {
-      "version": "1.30.1",
-      "resolved": "https://registry.npmjs.org/date-fns/-/date-fns-1.30.1.tgz",
-      "integrity": "sha512-hBSVCvSmWC+QypYObzwGOd9wqdDpOt+0wl0KbU+R+uuZBS1jN8VsD1ss3irQDknRj5NvxiTF6oj/nDRnN/UQNw==",
-      "dev": true
-    },
-    "date-now": {
-      "version": "0.1.4",
-      "resolved": "https://registry.npmjs.org/date-now/-/date-now-0.1.4.tgz",
-      "integrity": "sha1-6vQ5/U1ISK105cx9vvIAZyueNFs=",
-      "dev": true
-    },
-    "debug": {
-      "version": "2.6.9",
-      "resolved": "https://registry.npmjs.org/debug/-/debug-2.6.9.tgz",
-      "integrity": "sha512-bC7ElrdJaJnPbAP+1EotYvqZsb3ecl5wi6Bfi6BJTUcNowp6cvspg0jXznRTKDjm/E7AdgFBVeAPVMNcKGsHMA==",
-      "requires": {
-        "ms": "2.0.0"
-      }
-    },
-    "decamelize": {
-      "version": "1.2.0",
-      "resolved": "https://registry.npmjs.org/decamelize/-/decamelize-1.2.0.tgz",
-      "integrity": "sha1-9lNNFRSCabIDUue+4m9QH5oZEpA=",
-      "dev": true
-    },
-    "decode-uri-component": {
-      "version": "0.2.0",
-      "resolved": "https://registry.npmjs.org/decode-uri-component/-/decode-uri-component-0.2.0.tgz",
-      "integrity": "sha1-6zkTMzRYd1y4TNGh+uBiEGu4dUU=",
-      "dev": true
-    },
-    "deep-equal": {
-      "version": "1.0.1",
-      "resolved": "https://registry.npmjs.org/deep-equal/-/deep-equal-1.0.1.tgz",
-      "integrity": "sha1-9dJgKStmDghO/0zbyfCK0yR0SLU="
-    },
-    "deep-extend": {
-      "version": "0.6.0",
-      "resolved": "https://registry.npmjs.org/deep-extend/-/deep-extend-0.6.0.tgz",
-      "integrity": "sha512-LOHxIOaPYdHlJRtCQfDIVZtfw/ufM8+rVj649RIHzcm/vGwQRXFt6OPqIFWsm2XEMrNIEtWR64sY1LEKD2vAOA=="
-    },
-    "deep-is": {
-      "version": "0.1.3",
-      "resolved": "https://registry.npmjs.org/deep-is/-/deep-is-0.1.3.tgz",
-      "integrity": "sha1-s2nW+128E+7PUk+RsHD+7cNXzzQ="
-    },
-    "default-gateway": {
-      "version": "2.7.2",
-      "resolved": "https://registry.npmjs.org/default-gateway/-/default-gateway-2.7.2.tgz",
-      "integrity": "sha512-lAc4i9QJR0YHSDFdzeBQKfZ1SRDG3hsJNEkrpcZa8QhBfidLAilT60BDEIVUUGqosFp425KOgB3uYqcnQrWafQ==",
-      "dev": true,
-      "requires": {
-        "execa": "^0.10.0",
-        "ip-regex": "^2.1.0"
-      },
-      "dependencies": {
-        "cross-spawn": {
-          "version": "6.0.5",
-          "resolved": "https://registry.npmjs.org/cross-spawn/-/cross-spawn-6.0.5.tgz",
-          "integrity": "sha512-eTVLrBSt7fjbDygz805pMnstIs2VTBNkRm0qxZd+M7A5XDdxVRWO5MxGBXZhjY4cqLYLdtrGqRf8mBPmzwSpWQ==",
-          "dev": true,
-          "requires": {
-            "nice-try": "^1.0.4",
-            "path-key": "^2.0.1",
-            "semver": "^5.5.0",
-            "shebang-command": "^1.2.0",
-            "which": "^1.2.9"
-          }
-        },
-        "execa": {
-          "version": "0.10.0",
-          "resolved": "https://registry.npmjs.org/execa/-/execa-0.10.0.tgz",
-          "integrity": "sha512-7XOMnz8Ynx1gGo/3hyV9loYNPWM94jG3+3T3Y8tsfSstFmETmENCMU/A/zj8Lyaj1lkgEepKepvd6240tBRvlw==",
-          "dev": true,
-          "requires": {
-            "cross-spawn": "^6.0.0",
-            "get-stream": "^3.0.0",
-            "is-stream": "^1.1.0",
-            "npm-run-path": "^2.0.0",
-            "p-finally": "^1.0.0",
-            "signal-exit": "^3.0.0",
-            "strip-eof": "^1.0.0"
-          }
-        }
-      }
-    },
-    "default-require-extensions": {
-      "version": "2.0.0",
-      "resolved": "https://registry.npmjs.org/default-require-extensions/-/default-require-extensions-2.0.0.tgz",
-      "integrity": "sha1-9fj7sYp9bVCyH2QfZJ67Uiz+JPc=",
-      "dev": true,
-      "requires": {
-        "strip-bom": "^3.0.0"
-      },
-      "dependencies": {
-        "strip-bom": {
-          "version": "3.0.0",
-          "resolved": "https://registry.npmjs.org/strip-bom/-/strip-bom-3.0.0.tgz",
-          "integrity": "sha1-IzTBjpx1n3vdVv3vfprj1YjmjtM=",
-          "dev": true
-        }
-      }
-    },
-    "define-properties": {
-      "version": "1.1.3",
-      "resolved": "https://registry.npmjs.org/define-properties/-/define-properties-1.1.3.tgz",
-      "integrity": "sha512-3MqfYKj2lLzdMSf8ZIZE/V+Zuy+BgD6f164e8K2w7dgnpKArBDerGYpM46IYYcjnkdPNMjPk9A6VFB8+3SKlXQ==",
-      "dev": true,
-      "requires": {
-        "object-keys": "^1.0.12"
-      }
-    },
-    "define-property": {
-      "version": "2.0.2",
-      "resolved": "https://registry.npmjs.org/define-property/-/define-property-2.0.2.tgz",
-      "integrity": "sha512-jwK2UV4cnPpbcG7+VRARKTZPUWowwXA8bzH5NP6ud0oeAxyYPuGZUAC7hMugpCdz4BeSZl2Dl9k66CHJ/46ZYQ==",
-      "dev": true,
-      "requires": {
-        "is-descriptor": "^1.0.2",
-        "isobject": "^3.0.1"
-      },
-      "dependencies": {
-        "isobject": {
-          "version": "3.0.1",
-          "resolved": "https://registry.npmjs.org/isobject/-/isobject-3.0.1.tgz",
-          "integrity": "sha1-TkMekrEalzFjaqH5yNHMvP2reN8=",
-          "dev": true
-        }
-      }
-    },
-    "del": {
-      "version": "3.0.0",
-      "resolved": "https://registry.npmjs.org/del/-/del-3.0.0.tgz",
-      "integrity": "sha1-U+z2mf/LyzljdpGrE7rxYIGXZuU=",
-      "dev": true,
-      "requires": {
-        "globby": "^6.1.0",
-        "is-path-cwd": "^1.0.0",
-        "is-path-in-cwd": "^1.0.0",
-        "p-map": "^1.1.1",
-        "pify": "^3.0.0",
-        "rimraf": "^2.2.8"
-      },
-      "dependencies": {
-        "globby": {
-          "version": "6.1.0",
-          "resolved": "https://registry.npmjs.org/globby/-/globby-6.1.0.tgz",
-          "integrity": "sha1-9abXDoOV4hyFj7BInWTfAkJNUGw=",
-          "dev": true,
-          "requires": {
-            "array-union": "^1.0.1",
-            "glob": "^7.0.3",
-            "object-assign": "^4.0.1",
-            "pify": "^2.0.0",
-            "pinkie-promise": "^2.0.0"
-          },
-          "dependencies": {
-            "pify": {
-              "version": "2.3.0",
-              "resolved": "https://registry.npmjs.org/pify/-/pify-2.3.0.tgz",
-              "integrity": "sha1-7RQaasBDqEnqWISY59yosVMw6Qw=",
-              "dev": true
-            }
-          }
-        }
-      }
-    },
-    "delayed-stream": {
-      "version": "1.0.0",
-      "resolved": "https://registry.npmjs.org/delayed-stream/-/delayed-stream-1.0.0.tgz",
-      "integrity": "sha1-3zrhmayt+31ECqrgsp4icrJOxhk="
-    },
-    "delegates": {
-      "version": "1.0.0",
-      "resolved": "https://registry.npmjs.org/delegates/-/delegates-1.0.0.tgz",
-      "integrity": "sha1-hMbhWbgZBP3KWaDvRM2HDTElD5o=",
-      "dev": true
-    },
-    "density-clustering": {
-      "version": "1.3.0",
-      "resolved": "https://registry.npmjs.org/density-clustering/-/density-clustering-1.3.0.tgz",
-      "integrity": "sha1-3J9ZyPCrl+FiSsZJMP0xlIF9ysU="
-    },
-    "depd": {
-      "version": "1.1.2",
-      "resolved": "https://registry.npmjs.org/depd/-/depd-1.1.2.tgz",
-      "integrity": "sha1-m81S4UwJd2PnSbJ0xDRu0uVgtak=",
-      "dev": true
-    },
-    "dependency-graph": {
-      "version": "0.7.2",
-      "resolved": "https://registry.npmjs.org/dependency-graph/-/dependency-graph-0.7.2.tgz",
-      "integrity": "sha512-KqtH4/EZdtdfWX0p6MGP9jljvxSY6msy/pRUD4jgNwVpv3v1QmNLlsB3LDSSUg79BRVSn7jI1QPRtArGABovAQ==",
-      "dev": true
-    },
-    "des.js": {
-      "version": "1.0.0",
-      "resolved": "https://registry.npmjs.org/des.js/-/des.js-1.0.0.tgz",
-      "integrity": "sha1-wHTS4qpqipoH29YfmhXCzYPsjsw=",
-      "dev": true,
-      "requires": {
-        "inherits": "^2.0.1",
-        "minimalistic-assert": "^1.0.0"
-      }
-    },
-    "destroy": {
-      "version": "1.0.4",
-      "resolved": "https://registry.npmjs.org/destroy/-/destroy-1.0.4.tgz",
-      "integrity": "sha1-l4hXRCxEdJ5CBmE+N5RiBYJqvYA=",
-      "dev": true
-    },
-    "detect-indent": {
-      "version": "4.0.0",
-      "resolved": "https://registry.npmjs.org/detect-indent/-/detect-indent-4.0.0.tgz",
-      "integrity": "sha1-920GQ1LN9Docts5hnE7jqUdd4gg=",
-      "requires": {
-        "repeating": "^2.0.0"
-      }
-    },
-    "detect-newline": {
-      "version": "2.1.0",
-      "resolved": "https://registry.npmjs.org/detect-newline/-/detect-newline-2.1.0.tgz",
-      "integrity": "sha1-9B8cEL5LAOh7XxPaaAdZ8sW/0+I=",
-      "dev": true
-    },
-    "detect-node": {
-      "version": "2.0.4",
-      "resolved": "https://registry.npmjs.org/detect-node/-/detect-node-2.0.4.tgz",
-      "integrity": "sha512-ZIzRpLJrOj7jjP2miAtgqIfmzbxa4ZOr5jJc601zklsfEx9oTzmmj2nVpIPRpNlRTIh8lc1kyViIY7BWSGNmKw==",
-      "dev": true
-    },
-    "diff": {
-      "version": "3.5.0",
-      "resolved": "https://registry.npmjs.org/diff/-/diff-3.5.0.tgz",
-      "integrity": "sha512-A46qtFgd+g7pDZinpnwiRJtxbC1hpgf0uzP3iG89scHk0AUC7A1TGxf5OiiOUv/JMZR8GOt8hL900hV0bOy5xA==",
-      "dev": true
-    },
-    "diff-sequences": {
-      "version": "24.0.0",
-      "resolved": "https://registry.npmjs.org/diff-sequences/-/diff-sequences-24.0.0.tgz",
-      "integrity": "sha512-46OkIuVGBBnrC0soO/4LHu5LHGHx0uhP65OVz8XOrAJpqiCB2aVIuESvjI1F9oqebuvY8lekS1pt6TN7vt7qsw==",
-      "dev": true
-    },
-    "diffie-hellman": {
-      "version": "5.0.2",
-      "resolved": "https://registry.npmjs.org/diffie-hellman/-/diffie-hellman-5.0.2.tgz",
-      "integrity": "sha1-tYNXOScM/ias9jIJn97SoH8gnl4=",
-      "dev": true,
-      "requires": {
-        "bn.js": "^4.1.0",
-        "miller-rabin": "^4.0.0",
-        "randombytes": "^2.0.0"
-      }
-    },
-    "dir-glob": {
-      "version": "2.0.0",
-      "resolved": "https://registry.npmjs.org/dir-glob/-/dir-glob-2.0.0.tgz",
-      "integrity": "sha512-37qirFDz8cA5fimp9feo43fSuRo2gHwaIn6dXL8Ber1dGwUosDrGZeCCXq57WnIqE4aQ+u3eQZzsk1yOzhdwag==",
-      "dev": true,
-      "requires": {
-        "arrify": "^1.0.1",
-        "path-type": "^3.0.0"
-      }
-    },
-    "dns-equal": {
-      "version": "1.0.0",
-      "resolved": "https://registry.npmjs.org/dns-equal/-/dns-equal-1.0.0.tgz",
-      "integrity": "sha1-s55/HabrCnW6nBcySzR1PEfgZU0=",
-      "dev": true
-    },
-    "dns-packet": {
-      "version": "1.3.1",
-      "resolved": "https://registry.npmjs.org/dns-packet/-/dns-packet-1.3.1.tgz",
-      "integrity": "sha512-0UxfQkMhYAUaZI+xrNZOz/as5KgDU0M/fQ9b6SpkyLbk3GEswDi6PADJVaYJradtRVsRIlF1zLyOodbcTCDzUg==",
-      "dev": true,
-      "requires": {
-        "ip": "^1.1.0",
-        "safe-buffer": "^5.0.1"
-      }
-    },
-    "dns-txt": {
-      "version": "2.0.2",
-      "resolved": "https://registry.npmjs.org/dns-txt/-/dns-txt-2.0.2.tgz",
-      "integrity": "sha1-uR2Ab10nGI5Ks+fRB9iBocxGQrY=",
-      "dev": true,
-      "requires": {
-        "buffer-indexof": "^1.0.0"
-      }
-    },
-    "domain-browser": {
-      "version": "1.2.0",
-      "resolved": "https://registry.npmjs.org/domain-browser/-/domain-browser-1.2.0.tgz",
-      "integrity": "sha512-jnjyiM6eRyZl2H+W8Q/zLMA481hzi0eszAaBUzIVnmYVDBbnLxVNnfu1HgEBvCbL+71FrxMl3E6lpKH7Ge3OXA==",
-      "dev": true
-    },
-    "domexception": {
-      "version": "1.0.1",
-      "resolved": "https://registry.npmjs.org/domexception/-/domexception-1.0.1.tgz",
-      "integrity": "sha512-raigMkn7CJNNo6Ihro1fzG7wr3fHuYVytzquZKX5n0yizGsTcYgzdIUwj1X9pK0VvjeihV+XiclP+DjwbsSKug==",
-      "dev": true,
-      "requires": {
-        "webidl-conversions": "^4.0.2"
-      }
-    },
-    "domino": {
-      "version": "2.1.1",
-      "resolved": "https://registry.npmjs.org/domino/-/domino-2.1.1.tgz",
-      "integrity": "sha512-fqoTi6oQ881wYRENIEmz78hKVoc3X9HqVpklo419yxzebys6dtU5c83iVh3UYvvexPFdAuwlDYCsUM9//CrMMg=="
-    },
-    "dtrace-provider": {
-      "version": "0.8.7",
-      "resolved": "https://registry.npmjs.org/dtrace-provider/-/dtrace-provider-0.8.7.tgz",
-      "integrity": "sha1-3JObTT4GIM/gwc2APQ0tftBP/QQ=",
-      "optional": true,
-      "requires": {
-        "nan": "^2.10.0"
-      }
-    },
-    "duplexer3": {
-      "version": "0.1.4",
-      "resolved": "https://registry.npmjs.org/duplexer3/-/duplexer3-0.1.4.tgz",
-      "integrity": "sha1-7gHdHKwO08vH/b6jfcCo8c4ALOI="
-    },
-    "duplexify": {
-      "version": "3.6.1",
-      "resolved": "https://registry.npmjs.org/duplexify/-/duplexify-3.6.1.tgz",
-      "integrity": "sha512-vM58DwdnKmty+FSPzT14K9JXb90H+j5emaR4KYbr2KTIz00WHGbWOe5ghQTx233ZCLZtrGDALzKwcjEtSt35mA==",
-      "dev": true,
-      "requires": {
-        "end-of-stream": "^1.0.0",
-        "inherits": "^2.0.1",
-        "readable-stream": "^2.0.0",
-        "stream-shift": "^1.0.0"
-      }
-    },
-    "earcut": {
-      "version": "2.1.4",
-      "resolved": "https://registry.npmjs.org/earcut/-/earcut-2.1.4.tgz",
-      "integrity": "sha512-ttRjmPD5oaTtXOoxhFp9aZvMB14kBjapYaiBuzBB1elOgSLU9P2Ev86G2OClBg+uspUXERsIzXKpUWweH2K4Xg=="
-    },
-    "ecc-jsbn": {
-      "version": "0.1.1",
-      "resolved": "https://registry.npmjs.org/ecc-jsbn/-/ecc-jsbn-0.1.1.tgz",
-      "integrity": "sha1-D8c6ntXw1Tw4GTOYUj735UN3dQU=",
-      "optional": true,
-      "requires": {
-        "jsbn": "~0.1.0"
-      }
-    },
-    "ee-first": {
-      "version": "1.1.1",
-      "resolved": "https://registry.npmjs.org/ee-first/-/ee-first-1.1.1.tgz",
-      "integrity": "sha1-WQxhFWsK4vTwJVcyoViyZrxWsh0=",
-      "dev": true
-    },
-    "electron-to-chromium": {
-      "version": "1.3.39",
-      "resolved": "https://registry.npmjs.org/electron-to-chromium/-/electron-to-chromium-1.3.39.tgz",
-      "integrity": "sha1-16RpZAnKCZXidQFW2mEsIhr62E0=",
-      "dev": true
-    },
-    "elegant-spinner": {
-      "version": "1.0.1",
-      "resolved": "https://registry.npmjs.org/elegant-spinner/-/elegant-spinner-1.0.1.tgz",
-      "integrity": "sha1-2wQ1IcldfjA/2PNFvtwzSc+wcp4=",
-      "dev": true
-    },
-    "elliptic": {
-      "version": "6.4.0",
-      "resolved": "https://registry.npmjs.org/elliptic/-/elliptic-6.4.0.tgz",
-      "integrity": "sha1-ysmvh2LIWDYYcAPI3+GT5eLq5d8=",
-      "dev": true,
-      "requires": {
-        "bn.js": "^4.4.0",
-        "brorand": "^1.0.1",
-        "hash.js": "^1.0.0",
-        "hmac-drbg": "^1.0.0",
-        "inherits": "^2.0.1",
-        "minimalistic-assert": "^1.0.0",
-        "minimalistic-crypto-utils": "^1.0.0"
-      }
-    },
-    "emojis-list": {
-      "version": "2.1.0",
-      "resolved": "https://registry.npmjs.org/emojis-list/-/emojis-list-2.1.0.tgz",
-      "integrity": "sha1-TapNnbAPmBmIDHn6RXrlsJof04k="
-    },
-    "encodeurl": {
-      "version": "1.0.2",
-      "resolved": "https://registry.npmjs.org/encodeurl/-/encodeurl-1.0.2.tgz",
-      "integrity": "sha1-rT/0yG7C0CkyL1oCw6mmBslbP1k=",
-      "dev": true
-    },
-    "encoding": {
-      "version": "0.1.12",
-      "resolved": "https://registry.npmjs.org/encoding/-/encoding-0.1.12.tgz",
-      "integrity": "sha1-U4tm8+5izRq1HsMjgp0flIDHS+s=",
-      "requires": {
-        "iconv-lite": "~0.4.13"
-      }
-    },
-    "end-of-stream": {
-      "version": "1.4.1",
-      "resolved": "https://registry.npmjs.org/end-of-stream/-/end-of-stream-1.4.1.tgz",
-      "integrity": "sha512-1MkrZNvWTKCaigbn+W15elq2BB/L22nqrSY5DKlo3X6+vclJm8Bb5djXJBmEX6fS3+zCh/F4VBK5Z2KxJt4s2Q==",
-      "dev": true,
-      "requires": {
-        "once": "^1.4.0"
-      }
-    },
-    "enhanced-resolve": {
-      "version": "3.4.1",
-      "resolved": "https://registry.npmjs.org/enhanced-resolve/-/enhanced-resolve-3.4.1.tgz",
-      "integrity": "sha1-BCHjOf1xQZs9oT0Smzl5BAIwR24=",
-      "dev": true,
-      "requires": {
-        "graceful-fs": "^4.1.2",
-        "memory-fs": "^0.4.0",
-        "object-assign": "^4.0.1",
-        "tapable": "^0.2.7"
-      }
-    },
-    "err-code": {
-      "version": "1.1.2",
-      "resolved": "https://registry.npmjs.org/err-code/-/err-code-1.1.2.tgz",
-      "integrity": "sha1-BuARbTAo9q70gGhJ6w6mp0iuaWA=",
-      "dev": true
-    },
-    "errno": {
-      "version": "0.1.7",
-      "resolved": "https://registry.npmjs.org/errno/-/errno-0.1.7.tgz",
-      "integrity": "sha512-MfrRBDWzIWifgq6tJj60gkAwtLNb6sQPlcFrSOflcP1aFmmruKQ2wRnze/8V6kgyz7H3FF8Npzv78mZ7XLLflg==",
-      "dev": true,
-      "requires": {
-        "prr": "~1.0.1"
-      }
-    },
-    "error-ex": {
-      "version": "1.3.1",
-      "resolved": "https://registry.npmjs.org/error-ex/-/error-ex-1.3.1.tgz",
-      "integrity": "sha1-+FWobOYa3E6GIcPNoh56dhLDqNw=",
-      "dev": true,
-      "requires": {
-        "is-arrayish": "^0.2.1"
-      }
-    },
-    "es-abstract": {
-      "version": "1.13.0",
-      "resolved": "https://registry.npmjs.org/es-abstract/-/es-abstract-1.13.0.tgz",
-      "integrity": "sha512-vDZfg/ykNxQVwup/8E1BZhVzFfBxs9NqMzGcvIJrqg5k2/5Za2bWo40dK2J1pgLngZ7c+Shh8lwYtLGyrwPutg==",
-      "dev": true,
-      "requires": {
-        "es-to-primitive": "^1.2.0",
-        "function-bind": "^1.1.1",
-        "has": "^1.0.3",
-        "is-callable": "^1.1.4",
-        "is-regex": "^1.0.4",
-        "object-keys": "^1.0.12"
-      }
-    },
-    "es-to-primitive": {
-      "version": "1.2.0",
-      "resolved": "https://registry.npmjs.org/es-to-primitive/-/es-to-primitive-1.2.0.tgz",
-      "integrity": "sha512-qZryBOJjV//LaxLTV6UC//WewneB3LcXOL9NP++ozKVXsIIIpm/2c13UDiD9Jp2eThsecw9m3jPqDwTyobcdbg==",
-      "dev": true,
-      "requires": {
-        "is-callable": "^1.1.4",
-        "is-date-object": "^1.0.1",
-        "is-symbol": "^1.0.2"
-      }
-    },
-    "es5-ext": {
-      "version": "0.10.41",
-      "resolved": "https://registry.npmjs.org/es5-ext/-/es5-ext-0.10.41.tgz",
-      "integrity": "sha512-MYK02wXfwTMie5TEJWPolgOsXEmz7wKCQaGzgmRjZOoV6VLG8I5dSv2bn6AOClXhK64gnSQTQ9W9MKvx87J4gw==",
-      "dev": true,
-      "requires": {
-        "es6-iterator": "~2.0.3",
-        "es6-symbol": "~3.1.1",
-        "next-tick": "1"
-      }
-    },
-    "es6-iterator": {
-      "version": "2.0.3",
-      "resolved": "https://registry.npmjs.org/es6-iterator/-/es6-iterator-2.0.3.tgz",
-      "integrity": "sha1-p96IkUGgWpSwhUQDstCg+/qY87c=",
-      "dev": true,
-      "requires": {
-        "d": "1",
-        "es5-ext": "^0.10.35",
-        "es6-symbol": "^3.1.1"
-      }
-    },
-    "es6-map": {
-      "version": "0.1.5",
-      "resolved": "https://registry.npmjs.org/es6-map/-/es6-map-0.1.5.tgz",
-      "integrity": "sha1-kTbgUD3MBqMBaQ8LsU/042TpSfA=",
-      "dev": true,
-      "requires": {
-        "d": "1",
-        "es5-ext": "~0.10.14",
-        "es6-iterator": "~2.0.1",
-        "es6-set": "~0.1.5",
-        "es6-symbol": "~3.1.1",
-        "event-emitter": "~0.3.5"
-      }
-    },
-    "es6-promise": {
-      "version": "4.2.4",
-      "resolved": "https://registry.npmjs.org/es6-promise/-/es6-promise-4.2.4.tgz",
-      "integrity": "sha512-/NdNZVJg+uZgtm9eS3O6lrOLYmQag2DjdEXuPaHlZ6RuVqgqaVZfgYCepEIKsLqwdQArOPtC3XzRLqGGfT8KQQ==",
-      "dev": true
-    },
-    "es6-promisify": {
-      "version": "5.0.0",
-      "resolved": "http://registry.npmjs.org/es6-promisify/-/es6-promisify-5.0.0.tgz",
-      "integrity": "sha1-UQnWLz5W6pZ8S2NQWu8IKRyKUgM=",
-      "dev": true,
-      "requires": {
-        "es6-promise": "^4.0.3"
-      }
-    },
-    "es6-set": {
-      "version": "0.1.5",
-      "resolved": "https://registry.npmjs.org/es6-set/-/es6-set-0.1.5.tgz",
-      "integrity": "sha1-0rPsXU2ADO2BjbU40ol02wpzzLE=",
-      "dev": true,
-      "requires": {
-        "d": "1",
-        "es5-ext": "~0.10.14",
-        "es6-iterator": "~2.0.1",
-        "es6-symbol": "3.1.1",
-        "event-emitter": "~0.3.5"
-      }
-    },
-    "es6-symbol": {
-      "version": "3.1.1",
-      "resolved": "https://registry.npmjs.org/es6-symbol/-/es6-symbol-3.1.1.tgz",
-      "integrity": "sha1-vwDvT9q2uhtG7Le2KbTH7VcVzHc=",
-      "dev": true,
-      "requires": {
-        "d": "1",
-        "es5-ext": "~0.10.14"
-      }
-    },
-    "es6-weak-map": {
-      "version": "2.0.2",
-      "resolved": "https://registry.npmjs.org/es6-weak-map/-/es6-weak-map-2.0.2.tgz",
-      "integrity": "sha1-XjqzIlH/0VOKH45f+hNXdy+S2W8=",
-      "dev": true,
-      "requires": {
-        "d": "1",
-        "es5-ext": "^0.10.14",
-        "es6-iterator": "^2.0.1",
-        "es6-symbol": "^3.1.1"
-      }
-    },
-    "escape-html": {
-      "version": "1.0.3",
-      "resolved": "https://registry.npmjs.org/escape-html/-/escape-html-1.0.3.tgz",
-      "integrity": "sha1-Aljq5NPQwJdN4cFpGI7wBR0dGYg=",
-      "dev": true
-    },
-    "escape-string-regexp": {
-      "version": "1.0.5",
-      "resolved": "https://registry.npmjs.org/escape-string-regexp/-/escape-string-regexp-1.0.5.tgz",
-      "integrity": "sha1-G2HAViGQqN/2rjuyzwIAyhMLhtQ="
-    },
-    "escodegen": {
-      "version": "1.9.1",
-      "resolved": "https://registry.npmjs.org/escodegen/-/escodegen-1.9.1.tgz",
-      "integrity": "sha512-6hTjO1NAWkHnDk3OqQ4YrCuwwmGHL9S3nPlzBOUG/R44rda3wLNrfvQ5fkSGjyhHFKM7ALPKcKGrwvCLe0lC7Q==",
-      "requires": {
-        "esprima": "^3.1.3",
-        "estraverse": "^4.2.0",
-        "esutils": "^2.0.2",
-        "optionator": "^0.8.1",
-        "source-map": "~0.6.1"
-      },
-      "dependencies": {
-        "esprima": {
-          "version": "3.1.3",
-          "resolved": "https://registry.npmjs.org/esprima/-/esprima-3.1.3.tgz",
-          "integrity": "sha1-/cpRzuYTOJXjyI1TXOSdv/YqRjM="
-        },
-        "source-map": {
-          "version": "0.6.1",
-          "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.6.1.tgz",
-          "integrity": "sha512-UjgapumWlbMhkBgzT7Ykc5YXUT46F0iKu8SGXq0bcwP5dz/h0Plj6enJqjz1Zbq2l5WaqYnrVbwWOWMyF3F47g==",
-          "optional": true
-        }
-      }
-    },
-    "escope": {
-      "version": "3.6.0",
-      "resolved": "https://registry.npmjs.org/escope/-/escope-3.6.0.tgz",
-      "integrity": "sha1-4Bl16BJ4GhY6ba392AOY3GTIicM=",
-      "dev": true,
-      "requires": {
-        "es6-map": "^0.1.3",
-        "es6-weak-map": "^2.0.1",
-        "esrecurse": "^4.1.0",
-        "estraverse": "^4.1.1"
-      }
-    },
-    "eslint-scope": {
-      "version": "4.0.0",
-      "resolved": "https://registry.npmjs.org/eslint-scope/-/eslint-scope-4.0.0.tgz",
-      "integrity": "sha512-1G6UTDi7Jc1ELFwnR58HV4fK9OQK4S6N985f166xqXxpjU6plxFISJa2Ba9KCQuFa8RCnj/lSFJbHo7UFDBnUA==",
-      "dev": true,
-      "requires": {
-        "esrecurse": "^4.1.0",
-        "estraverse": "^4.1.1"
-      }
-    },
-    "esprima": {
-      "version": "4.0.0",
-      "resolved": "https://registry.npmjs.org/esprima/-/esprima-4.0.0.tgz",
-      "integrity": "sha512-oftTcaMu/EGrEIu904mWteKIv8vMuOgGYo7EhVJJN00R/EED9DCua/xxHRdYnKtcECzVg7xOWhflvJMnqcFZjw=="
-    },
-    "esrecurse": {
-      "version": "4.2.1",
-      "resolved": "https://registry.npmjs.org/esrecurse/-/esrecurse-4.2.1.tgz",
-      "integrity": "sha512-64RBB++fIOAXPw3P9cy89qfMlvZEXZkqqJkjqqXIvzP5ezRZjW+lPWjw35UX/3EhUPFYbg5ER4JYgDw4007/DQ==",
-      "dev": true,
-      "requires": {
-        "estraverse": "^4.1.0"
-      }
-    },
-    "estraverse": {
-      "version": "4.2.0",
-      "resolved": "https://registry.npmjs.org/estraverse/-/estraverse-4.2.0.tgz",
-      "integrity": "sha1-De4/7TH81GlhjOc0IJn8GvoL2xM="
-    },
-    "esutils": {
-      "version": "2.0.2",
-      "resolved": "https://registry.npmjs.org/esutils/-/esutils-2.0.2.tgz",
-      "integrity": "sha1-Cr9PHKpbyx96nYrMbepPqqBLrJs="
-    },
-    "etag": {
-      "version": "1.8.1",
-      "resolved": "https://registry.npmjs.org/etag/-/etag-1.8.1.tgz",
-      "integrity": "sha1-Qa4u62XvpiJorr/qg6x9eSmbCIc=",
-      "dev": true
-    },
-    "event-emitter": {
-      "version": "0.3.5",
-      "resolved": "https://registry.npmjs.org/event-emitter/-/event-emitter-0.3.5.tgz",
-      "integrity": "sha1-34xp7vFkeSPHFXuc6DhAYQsCzDk=",
-      "dev": true,
-      "requires": {
-        "d": "1",
-        "es5-ext": "~0.10.14"
-      }
-    },
-    "eventemitter3": {
-      "version": "3.1.0",
-      "resolved": "https://registry.npmjs.org/eventemitter3/-/eventemitter3-3.1.0.tgz",
-      "integrity": "sha512-ivIvhpq/Y0uSjcHDcOIccjmYjGLcP09MFGE7ysAwkAvkXfpZlC985pH2/ui64DKazbTW/4kN3yqozUxlXzI6cA==",
-      "dev": true
-    },
-    "events": {
-      "version": "1.1.1",
-      "resolved": "https://registry.npmjs.org/events/-/events-1.1.1.tgz",
-      "integrity": "sha1-nr23Y1rQmccNzEwqH1AEKI6L2SQ=",
-      "dev": true
-    },
-    "eventsource": {
-      "version": "1.0.7",
-      "resolved": "https://registry.npmjs.org/eventsource/-/eventsource-1.0.7.tgz",
-      "integrity": "sha512-4Ln17+vVT0k8aWq+t/bF5arcS3EpT9gYtW66EPacdj/mAFevznsnyoHLPy2BA8gbIQeIHoPsvwmfBftfcG//BQ==",
-      "dev": true,
-      "requires": {
-        "original": "^1.0.0"
-      }
-    },
-    "evp_bytestokey": {
-      "version": "1.0.3",
-      "resolved": "https://registry.npmjs.org/evp_bytestokey/-/evp_bytestokey-1.0.3.tgz",
-      "integrity": "sha512-/f2Go4TognH/KvCISP7OUsHn85hT9nUkxxA9BEWxFn+Oj9o8ZNLm/40hdlgSLyuOimsrTKLUMEorQexp/aPQeA==",
-      "dev": true,
-      "requires": {
-        "md5.js": "^1.3.4",
-        "safe-buffer": "^5.1.1"
-      }
-    },
-    "exec-sh": {
-      "version": "0.2.2",
-      "resolved": "https://registry.npmjs.org/exec-sh/-/exec-sh-0.2.2.tgz",
-      "integrity": "sha512-FIUCJz1RbuS0FKTdaAafAByGS0CPvU3R0MeHxgtl+djzCc//F8HakL8GzmVNZanasTbTAY/3DRFA0KpVqj/eAw==",
-      "dev": true,
-      "requires": {
-        "merge": "^1.2.0"
-      }
-    },
-    "execa": {
-      "version": "0.7.0",
-      "resolved": "https://registry.npmjs.org/execa/-/execa-0.7.0.tgz",
-      "integrity": "sha1-lEvs00zEHuMqY6n68nrVpl/Fl3c=",
-      "dev": true,
-      "requires": {
-        "cross-spawn": "^5.0.1",
-        "get-stream": "^3.0.0",
-        "is-stream": "^1.1.0",
-        "npm-run-path": "^2.0.0",
-        "p-finally": "^1.0.0",
-        "signal-exit": "^3.0.0",
-        "strip-eof": "^1.0.0"
-      },
-      "dependencies": {
-        "cross-spawn": {
-          "version": "5.1.0",
-          "resolved": "https://registry.npmjs.org/cross-spawn/-/cross-spawn-5.1.0.tgz",
-          "integrity": "sha1-6L0O/uWPz/b4+UUQoKVUu/ojVEk=",
-          "dev": true,
-          "requires": {
-            "lru-cache": "^4.0.1",
-            "shebang-command": "^1.2.0",
-            "which": "^1.2.9"
-          }
-        }
-      }
-    },
-    "executable": {
-      "version": "4.1.1",
-      "resolved": "https://registry.npmjs.org/executable/-/executable-4.1.1.tgz",
-      "integrity": "sha512-8iA79xD3uAch729dUG8xaaBBFGaEa0wdD2VkYLFHwlqosEj/jT66AzcreRDSgV7ehnNLBW2WR5jIXwGKjVdTLg==",
-      "dev": true,
-      "requires": {
-        "pify": "^2.2.0"
-      },
-      "dependencies": {
-        "pify": {
-          "version": "2.3.0",
-          "resolved": "https://registry.npmjs.org/pify/-/pify-2.3.0.tgz",
-          "integrity": "sha1-7RQaasBDqEnqWISY59yosVMw6Qw=",
-          "dev": true
-        }
-      }
-    },
-    "exit": {
-      "version": "0.1.2",
-      "resolved": "https://registry.npmjs.org/exit/-/exit-0.1.2.tgz",
-      "integrity": "sha1-BjJjj42HfMghB9MKD/8aF8uhzQw=",
-      "dev": true
-    },
-    "exit-hook": {
-      "version": "1.1.1",
-      "resolved": "https://registry.npmjs.org/exit-hook/-/exit-hook-1.1.1.tgz",
-      "integrity": "sha1-8FyiM7SMBdVP/wd2XfhQfpXAL/g=",
-      "dev": true
-    },
-    "expand-brackets": {
-      "version": "0.1.5",
-      "resolved": "https://registry.npmjs.org/expand-brackets/-/expand-brackets-0.1.5.tgz",
-      "integrity": "sha1-3wcoTjQqgHzXM6xa9yQR5YHRF3s=",
-      "dev": true,
-      "requires": {
-        "is-posix-bracket": "^0.1.0"
-      }
-    },
-    "expand-range": {
-      "version": "1.8.2",
-      "resolved": "https://registry.npmjs.org/expand-range/-/expand-range-1.8.2.tgz",
-      "integrity": "sha1-opnv/TNf4nIeuujiV+x5ZE/IUzc=",
-      "dev": true,
-      "requires": {
-        "fill-range": "^2.1.0"
-      }
-    },
-    "expect": {
-      "version": "24.1.0",
-      "resolved": "https://registry.npmjs.org/expect/-/expect-24.1.0.tgz",
-      "integrity": "sha512-lVcAPhaYkQcIyMS+F8RVwzbm1jro20IG8OkvxQ6f1JfqhVZyyudCwYogQ7wnktlf14iF3ii7ArIUO/mqvrW9Gw==",
-      "dev": true,
-      "requires": {
-        "ansi-styles": "^3.2.0",
-        "jest-get-type": "^24.0.0",
-        "jest-matcher-utils": "^24.0.0",
-        "jest-message-util": "^24.0.0",
-        "jest-regex-util": "^24.0.0"
-      }
-    },
-    "express": {
-      "version": "4.16.4",
-      "resolved": "https://registry.npmjs.org/express/-/express-4.16.4.tgz",
-      "integrity": "sha512-j12Uuyb4FMrd/qQAm6uCHAkPtO8FDTRJZBDd5D2KOL2eLaz1yUNdUB/NOIyq0iU4q4cFarsUCrnFDPBcnksuOg==",
-      "dev": true,
-      "requires": {
-        "accepts": "~1.3.5",
-        "array-flatten": "1.1.1",
-        "body-parser": "1.18.3",
-        "content-disposition": "0.5.2",
-        "content-type": "~1.0.4",
-        "cookie": "0.3.1",
-        "cookie-signature": "1.0.6",
-        "debug": "2.6.9",
-        "depd": "~1.1.2",
-        "encodeurl": "~1.0.2",
-        "escape-html": "~1.0.3",
-        "etag": "~1.8.1",
-        "finalhandler": "1.1.1",
-        "fresh": "0.5.2",
-        "merge-descriptors": "1.0.1",
-        "methods": "~1.1.2",
-        "on-finished": "~2.3.0",
-        "parseurl": "~1.3.2",
-        "path-to-regexp": "0.1.7",
-        "proxy-addr": "~2.0.4",
-        "qs": "6.5.2",
-        "range-parser": "~1.2.0",
-        "safe-buffer": "5.1.2",
-        "send": "0.16.2",
-        "serve-static": "1.13.2",
-        "setprototypeof": "1.1.0",
-        "statuses": "~1.4.0",
-        "type-is": "~1.6.16",
-        "utils-merge": "1.0.1",
-        "vary": "~1.1.2"
-      },
-      "dependencies": {
-        "array-flatten": {
-          "version": "1.1.1",
-          "resolved": "https://registry.npmjs.org/array-flatten/-/array-flatten-1.1.1.tgz",
-          "integrity": "sha1-ml9pkFGx5wczKPKgCJaLZOopVdI=",
-          "dev": true
-        },
-        "qs": {
-          "version": "6.5.2",
-          "resolved": "https://registry.npmjs.org/qs/-/qs-6.5.2.tgz",
-          "integrity": "sha512-N5ZAX4/LxJmF+7wN74pUD6qAh9/wnvdQcjq9TZjevvXzSUo7bfmw91saqMjzGS2xq91/odN2dW/WOl7qQHNDGA==",
-          "dev": true
-        },
-        "safe-buffer": {
-          "version": "5.1.2",
-          "resolved": "https://registry.npmjs.org/safe-buffer/-/safe-buffer-5.1.2.tgz",
-          "integrity": "sha512-Gd2UZBJDkXlY7GbJxfsE8/nvKkUEU1G38c1siN6QP6a9PT9MmHB8GnpscSmMJSoF8LOIrt8ud/wPtojys4G6+g==",
-          "dev": true
-        }
-      }
-    },
-    "extend": {
-      "version": "3.0.1",
-      "resolved": "https://registry.npmjs.org/extend/-/extend-3.0.1.tgz",
-      "integrity": "sha1-p1Xqe8Gt/MWjHOfnYtuq3F5jZEQ="
-    },
-    "extend-shallow": {
-      "version": "3.0.2",
-      "resolved": "https://registry.npmjs.org/extend-shallow/-/extend-shallow-3.0.2.tgz",
-      "integrity": "sha1-Jqcarwc7OfshJxcnRhMcJwQCjbg=",
-      "dev": true,
-      "requires": {
-        "assign-symbols": "^1.0.0",
-        "is-extendable": "^1.0.1"
-      },
-      "dependencies": {
-        "is-extendable": {
-          "version": "1.0.1",
-          "resolved": "https://registry.npmjs.org/is-extendable/-/is-extendable-1.0.1.tgz",
-          "integrity": "sha512-arnXMxT1hhoKo9k1LZdmlNyJdDDfy2v0fXjFlmok4+i8ul/6WlbVge9bhM74OpNPQPMGUToDtz+KXa1PneJxOA==",
-          "dev": true,
-          "requires": {
-            "is-plain-object": "^2.0.4"
-          }
-        }
-      }
-    },
-    "external-editor": {
-      "version": "3.0.3",
-      "resolved": "https://registry.npmjs.org/external-editor/-/external-editor-3.0.3.tgz",
-      "integrity": "sha512-bn71H9+qWoOQKyZDo25mOMVpSmXROAsTJVVVYzrrtol3d4y+AsKjf4Iwl2Q+IuT0kFSQ1qo166UuIwqYq7mGnA==",
-      "dev": true,
-      "requires": {
-        "chardet": "^0.7.0",
-        "iconv-lite": "^0.4.24",
-        "tmp": "^0.0.33"
-      },
-      "dependencies": {
-        "iconv-lite": {
-          "version": "0.4.24",
-          "resolved": "https://registry.npmjs.org/iconv-lite/-/iconv-lite-0.4.24.tgz",
-          "integrity": "sha512-v3MXnZAcvnywkTUEZomIActle7RXXeedOR31wwl7VlyoXO4Qi9arvSenNQWne1TcRwhCL1HwLI21bEqdpj8/rA==",
-          "dev": true,
-          "requires": {
-            "safer-buffer": ">= 2.1.2 < 3"
-          }
-        },
-        "tmp": {
-          "version": "0.0.33",
-          "resolved": "https://registry.npmjs.org/tmp/-/tmp-0.0.33.tgz",
-          "integrity": "sha512-jRCJlojKnZ3addtTOjdIqoRuPEKBvNXcGYqzO6zWZX8KfKEpnGY5jfggJQ3EjKuu8D4bJRr0y+cYJFmYbImXGw==",
-          "dev": true,
-          "requires": {
-            "os-tmpdir": "~1.0.2"
-          }
-        }
-      }
-    },
-    "extglob": {
-      "version": "0.3.2",
-      "resolved": "https://registry.npmjs.org/extglob/-/extglob-0.3.2.tgz",
-      "integrity": "sha1-Lhj/PS9JqydlzskCPwEdqo2DSaE=",
-      "dev": true,
-      "requires": {
-        "is-extglob": "^1.0.0"
-      }
-    },
-    "extract-zip": {
-      "version": "1.6.6",
-      "resolved": "https://registry.npmjs.org/extract-zip/-/extract-zip-1.6.6.tgz",
-      "integrity": "sha1-EpDt6NINCHK0Kf0/NRyhKOxe+Fw=",
-      "dev": true,
-      "requires": {
-        "concat-stream": "1.6.0",
-        "debug": "2.6.9",
-        "mkdirp": "0.5.0",
-        "yauzl": "2.4.1"
-      },
-      "dependencies": {
-        "concat-stream": {
-          "version": "1.6.0",
-          "resolved": "https://registry.npmjs.org/concat-stream/-/concat-stream-1.6.0.tgz",
-          "integrity": "sha1-CqxmL9Ur54lk1VMvaUeE5wEQrPc=",
-          "dev": true,
-          "requires": {
-            "inherits": "^2.0.3",
-            "readable-stream": "^2.2.2",
-            "typedarray": "^0.0.6"
-          }
-        },
-        "mkdirp": {
-          "version": "0.5.0",
-          "resolved": "https://registry.npmjs.org/mkdirp/-/mkdirp-0.5.0.tgz",
-          "integrity": "sha1-HXMHam35hs2TROFecfzAWkyavxI=",
-          "dev": true,
-          "requires": {
-            "minimist": "0.0.8"
-          }
-        },
-        "yauzl": {
-          "version": "2.4.1",
-          "resolved": "https://registry.npmjs.org/yauzl/-/yauzl-2.4.1.tgz",
-          "integrity": "sha1-lSj0QtqxsihOWLQ3m7GU4i4MQAU=",
-          "dev": true,
-          "requires": {
-            "fd-slicer": "~1.0.1"
-          }
-        }
-      }
-    },
-    "extsprintf": {
-      "version": "1.3.0",
-      "resolved": "https://registry.npmjs.org/extsprintf/-/extsprintf-1.3.0.tgz",
-      "integrity": "sha1-lpGEQOMEGnpBT4xS48V06zw+HgU="
-    },
-    "fast-deep-equal": {
-      "version": "1.1.0",
-      "resolved": "https://registry.npmjs.org/fast-deep-equal/-/fast-deep-equal-1.1.0.tgz",
-      "integrity": "sha1-wFNHeBfIa1HaqFPIHgWbcz0CNhQ=",
-      "dev": true
-    },
-    "fast-json-stable-stringify": {
-      "version": "2.0.0",
-      "resolved": "https://registry.npmjs.org/fast-json-stable-stringify/-/fast-json-stable-stringify-2.0.0.tgz",
-      "integrity": "sha1-1RQsDK7msRifh9OnYREGT4bIu/I=",
-      "dev": true
-    },
-    "fast-levenshtein": {
-      "version": "2.0.6",
-      "resolved": "https://registry.npmjs.org/fast-levenshtein/-/fast-levenshtein-2.0.6.tgz",
-      "integrity": "sha1-PYpcZog6FqMMqGQ+hR8Zuqd5eRc="
-    },
-    "fastparse": {
-      "version": "1.1.2",
-      "resolved": "https://registry.npmjs.org/fastparse/-/fastparse-1.1.2.tgz",
-      "integrity": "sha512-483XLLxTVIwWK3QTrMGRqUfUpoOs/0hbQrl2oz4J0pAcm3A3bu84wxTFqGqkJzewCLdME38xJLJAxBABfQT8sQ==",
-      "dev": true
-    },
-    "faye-websocket": {
-      "version": "0.10.0",
-      "resolved": "https://registry.npmjs.org/faye-websocket/-/faye-websocket-0.10.0.tgz",
-      "integrity": "sha1-TkkvjQTftviQA1B/btvy1QHnxvQ=",
-      "dev": true,
-      "requires": {
-        "websocket-driver": ">=0.5.1"
-      }
-    },
-    "fb-watchman": {
-      "version": "2.0.0",
-      "resolved": "https://registry.npmjs.org/fb-watchman/-/fb-watchman-2.0.0.tgz",
-      "integrity": "sha1-VOmr99+i8mzZsWNsWIwa/AXeXVg=",
-      "dev": true,
-      "requires": {
-        "bser": "^2.0.0"
-      }
-    },
-    "fd-slicer": {
-      "version": "1.0.1",
-      "resolved": "https://registry.npmjs.org/fd-slicer/-/fd-slicer-1.0.1.tgz",
-      "integrity": "sha1-i1vL2ewyfFBBv5qwI/1nUPEXfmU=",
-      "dev": true,
-      "requires": {
-        "pend": "~1.2.0"
-      }
-    },
-    "figgy-pudding": {
-      "version": "3.5.1",
-      "resolved": "https://registry.npmjs.org/figgy-pudding/-/figgy-pudding-3.5.1.tgz",
-      "integrity": "sha512-vNKxJHTEKNThjfrdJwHc7brvM6eVevuO5nTj6ez8ZQ1qbXTvGthucRF7S4vf2cr71QVnT70V34v0S1DyQsti0w==",
-      "dev": true
-    },
-    "figures": {
-      "version": "2.0.0",
-      "resolved": "https://registry.npmjs.org/figures/-/figures-2.0.0.tgz",
-      "integrity": "sha1-OrGi0qYsi/tDGgyUy3l6L84nyWI=",
-      "dev": true,
-      "requires": {
-        "escape-string-regexp": "^1.0.5"
-      }
-    },
-    "file-loader": {
-      "version": "2.0.0",
-      "resolved": "https://registry.npmjs.org/file-loader/-/file-loader-2.0.0.tgz",
-      "integrity": "sha512-YCsBfd1ZGCyonOKLxPiKPdu+8ld9HAaMEvJewzz+b2eTF7uL5Zm/HdBF6FjCrpCMRq25Mi0U1gl4pwn2TlH7hQ==",
-      "dev": true,
-      "requires": {
-        "loader-utils": "^1.0.2",
-        "schema-utils": "^1.0.0"
-      }
-    },
-    "filename-regex": {
-      "version": "2.0.1",
-      "resolved": "https://registry.npmjs.org/filename-regex/-/filename-regex-2.0.1.tgz",
-      "integrity": "sha1-wcS5vuPglyXdsQa3XB4wH+LxiyY=",
-      "dev": true
-    },
-    "fileset": {
-      "version": "2.0.3",
-      "resolved": "https://registry.npmjs.org/fileset/-/fileset-2.0.3.tgz",
-      "integrity": "sha1-jnVIqW08wjJ+5eZ0FocjozO7oqA=",
-      "requires": {
-        "glob": "^7.0.3",
-        "minimatch": "^3.0.3"
-      }
-    },
-    "fill-range": {
-      "version": "2.2.3",
-      "resolved": "https://registry.npmjs.org/fill-range/-/fill-range-2.2.3.tgz",
-      "integrity": "sha1-ULd9/X5Gm8dJJHCWNpn+eoSFpyM=",
-      "dev": true,
-      "requires": {
-        "is-number": "^2.1.0",
-        "isobject": "^2.0.0",
-        "randomatic": "^1.1.3",
-        "repeat-element": "^1.1.2",
-        "repeat-string": "^1.5.2"
-      }
-    },
-    "finalhandler": {
-      "version": "1.1.1",
-      "resolved": "https://registry.npmjs.org/finalhandler/-/finalhandler-1.1.1.tgz",
-      "integrity": "sha512-Y1GUDo39ez4aHAw7MysnUD5JzYX+WaIj8I57kO3aEPT1fFRL4sr7mjei97FgnwhAyyzRYmQZaTHb2+9uZ1dPtg==",
-      "dev": true,
-      "requires": {
-        "debug": "2.6.9",
-        "encodeurl": "~1.0.2",
-        "escape-html": "~1.0.3",
-        "on-finished": "~2.3.0",
-        "parseurl": "~1.3.2",
-        "statuses": "~1.4.0",
-        "unpipe": "~1.0.0"
-      }
-    },
-    "find-cache-dir": {
-      "version": "1.0.0",
-      "resolved": "https://registry.npmjs.org/find-cache-dir/-/find-cache-dir-1.0.0.tgz",
-      "integrity": "sha1-kojj6ePMN0hxfTnq3hfPcfww7m8=",
-      "dev": true,
-      "requires": {
-        "commondir": "^1.0.1",
-        "make-dir": "^1.0.0",
-        "pkg-dir": "^2.0.0"
-      }
-    },
-    "find-up": {
-      "version": "2.1.0",
-      "resolved": "https://registry.npmjs.org/find-up/-/find-up-2.1.0.tgz",
-      "integrity": "sha1-RdG35QbHF93UgndaK3eSCjwMV6c=",
-      "dev": true,
-      "requires": {
-        "locate-path": "^2.0.0"
-      }
-    },
-    "flush-write-stream": {
-      "version": "1.0.3",
-      "resolved": "https://registry.npmjs.org/flush-write-stream/-/flush-write-stream-1.0.3.tgz",
-      "integrity": "sha512-calZMC10u0FMUqoiunI2AiGIIUtUIvifNwkHhNupZH4cbNnW1Itkoh/Nf5HFYmDrwWPjrUxpkZT0KhuCq0jmGw==",
-      "dev": true,
-      "requires": {
-        "inherits": "^2.0.1",
-        "readable-stream": "^2.0.4"
-      }
-    },
-    "follow-redirects": {
-      "version": "1.5.10",
-      "resolved": "https://registry.npmjs.org/follow-redirects/-/follow-redirects-1.5.10.tgz",
-      "integrity": "sha512-0V5l4Cizzvqt5D44aTXbFZz+FtyXV1vrDN6qrelxtfYQKW0KO0W2T/hkE8xvGa/540LkZlkaUjO4ailYTFtHVQ==",
-      "dev": true,
-      "requires": {
-        "debug": "=3.1.0"
-      },
-      "dependencies": {
-        "debug": {
-          "version": "3.1.0",
-          "resolved": "https://registry.npmjs.org/debug/-/debug-3.1.0.tgz",
-          "integrity": "sha512-OX8XqP7/1a9cqkxYw2yXss15f26NKWBpDXQd0/uK/KPqdQhxbPa994hnzjcE2VqQpDslf55723cKPUOGSmMY3g==",
-          "dev": true,
-          "requires": {
-            "ms": "2.0.0"
-          }
-        }
-      }
-    },
-    "font-awesome": {
-      "version": "4.7.0",
-      "resolved": "https://registry.npmjs.org/font-awesome/-/font-awesome-4.7.0.tgz",
-      "integrity": "sha1-j6jPBBGhoxr9B7BtKQK7n8gVoTM="
-    },
-    "for-in": {
-      "version": "1.0.2",
-      "resolved": "https://registry.npmjs.org/for-in/-/for-in-1.0.2.tgz",
-      "integrity": "sha1-gQaNKVqBQuwKxybG4iAMMPttXoA=",
-      "dev": true
-    },
-    "for-own": {
-      "version": "0.1.5",
-      "resolved": "https://registry.npmjs.org/for-own/-/for-own-0.1.5.tgz",
-      "integrity": "sha1-UmXGgaTylNq78XyVCbZ2OqhFEM4=",
-      "dev": true,
-      "requires": {
-        "for-in": "^1.0.1"
-      }
-    },
-    "forever-agent": {
-      "version": "0.6.1",
-      "resolved": "https://registry.npmjs.org/forever-agent/-/forever-agent-0.6.1.tgz",
-      "integrity": "sha1-+8cfDEGt6zf5bFd60e1C2P2sypE="
-    },
-    "form-data": {
-      "version": "2.1.4",
-      "resolved": "https://registry.npmjs.org/form-data/-/form-data-2.1.4.tgz",
-      "integrity": "sha1-M8GDrPGTJ27KqYFDpp6Uv+4XUNE=",
-      "requires": {
-        "asynckit": "^0.4.0",
-        "combined-stream": "^1.0.5",
-        "mime-types": "^2.1.12"
-      }
-    },
-    "forwarded": {
-      "version": "0.1.2",
-      "resolved": "https://registry.npmjs.org/forwarded/-/forwarded-0.1.2.tgz",
-      "integrity": "sha1-mMI9qxF1ZXuMBXPozszZGw/xjIQ=",
-      "dev": true
-    },
-    "fragment-cache": {
-      "version": "0.2.1",
-      "resolved": "https://registry.npmjs.org/fragment-cache/-/fragment-cache-0.2.1.tgz",
-      "integrity": "sha1-QpD60n8T6Jvn8zeZxrxaCr//DRk=",
-      "dev": true,
-      "requires": {
-        "map-cache": "^0.2.2"
-      }
-    },
-    "fresh": {
-      "version": "0.5.2",
-      "resolved": "https://registry.npmjs.org/fresh/-/fresh-0.5.2.tgz",
-      "integrity": "sha1-PYyt2Q2XZWn6g1qx+OSyOhBWBac=",
-      "dev": true
-    },
-    "from2": {
-      "version": "2.3.0",
-      "resolved": "https://registry.npmjs.org/from2/-/from2-2.3.0.tgz",
-      "integrity": "sha1-i/tVAr3kpNNs/e6gB/zKIdfjgq8=",
-      "dev": true,
-      "requires": {
-        "inherits": "^2.0.1",
-        "readable-stream": "^2.0.0"
-      }
-    },
-    "fs": {
-      "version": "0.0.1-security",
-      "resolved": "https://registry.npmjs.org/fs/-/fs-0.0.1-security.tgz",
-      "integrity": "sha1-invTcYa23d84E/I4WLV+yq9eQdQ=",
-      "dev": true
-    },
-    "fs-extra": {
-      "version": "6.0.1",
-      "resolved": "https://registry.npmjs.org/fs-extra/-/fs-extra-6.0.1.tgz",
-      "integrity": "sha512-GnyIkKhhzXZUWFCaJzvyDLEEgDkPfb4/TPvJCJVuS8MWZgoSsErf++QpiAlDnKFcqhRlm+tIOcencCjyJE6ZCA==",
-      "requires": {
-        "graceful-fs": "^4.1.2",
-        "jsonfile": "^4.0.0",
-        "universalify": "^0.1.0"
-      }
-    },
-    "fs-minipass": {
-      "version": "1.2.5",
-      "resolved": "https://registry.npmjs.org/fs-minipass/-/fs-minipass-1.2.5.tgz",
-      "integrity": "sha512-JhBl0skXjUPCFH7x6x61gQxrKyXsxB5gcgePLZCwfyCGGsTISMoIeObbrvVeP6Xmyaudw4TT43qV2Gz+iyd2oQ==",
-      "dev": true,
-      "requires": {
-        "minipass": "^2.2.1"
-      }
-    },
-    "fs-write-stream-atomic": {
-      "version": "1.0.10",
-      "resolved": "https://registry.npmjs.org/fs-write-stream-atomic/-/fs-write-stream-atomic-1.0.10.tgz",
-      "integrity": "sha1-tH31NJPvkR33VzHnCp3tAYnbQMk=",
-      "dev": true,
-      "requires": {
-        "graceful-fs": "^4.1.2",
-        "iferr": "^0.1.5",
-        "imurmurhash": "^0.1.4",
-        "readable-stream": "1 || 2"
-      }
-    },
-    "fs.realpath": {
-      "version": "1.0.0",
-      "resolved": "https://registry.npmjs.org/fs.realpath/-/fs.realpath-1.0.0.tgz",
-      "integrity": "sha1-FQStJSMVjKpA20onh8sBQRmU6k8="
-    },
-    "fsevents": {
-      "version": "1.1.3",
-      "resolved": "https://registry.npmjs.org/fsevents/-/fsevents-1.1.3.tgz",
-      "integrity": "sha512-WIr7iDkdmdbxu/Gh6eKEZJL6KPE74/5MEsf2whTOFNxbIoIixogroLdKYqB6FDav4Wavh/lZdzzd3b2KxIXC5Q==",
-      "dev": true,
-      "optional": true,
-      "requires": {
-        "nan": "^2.3.0",
-        "node-pre-gyp": "^0.6.39"
-      },
-      "dependencies": {
-        "abbrev": {
-          "version": "1.1.0",
-          "bundled": true,
-          "dev": true,
-          "optional": true
-        },
-        "ajv": {
-          "version": "4.11.8",
-          "bundled": true,
-          "dev": true,
-          "optional": true,
-          "requires": {
-            "co": "^4.6.0",
-            "json-stable-stringify": "^1.0.1"
-          }
-        },
-        "ansi-regex": {
-          "version": "2.1.1",
-          "bundled": true,
-          "dev": true
-        },
-        "aproba": {
-          "version": "1.1.1",
-          "bundled": true,
-          "dev": true,
-          "optional": true
-        },
-        "are-we-there-yet": {
-          "version": "1.1.4",
-          "bundled": true,
-          "dev": true,
-          "optional": true,
-          "requires": {
-            "delegates": "^1.0.0",
-            "readable-stream": "^2.0.6"
-          }
-        },
-        "asn1": {
-          "version": "0.2.3",
-          "bundled": true,
-          "dev": true,
-          "optional": true
-        },
-        "assert-plus": {
-          "version": "0.2.0",
-          "bundled": true,
-          "dev": true,
-          "optional": true
-        },
-        "asynckit": {
-          "version": "0.4.0",
-          "bundled": true,
-          "dev": true,
-          "optional": true
-        },
-        "aws-sign2": {
-          "version": "0.6.0",
-          "bundled": true,
-          "dev": true,
-          "optional": true
-        },
-        "aws4": {
-          "version": "1.6.0",
-          "bundled": true,
-          "dev": true,
-          "optional": true
-        },
-        "balanced-match": {
-          "version": "0.4.2",
-          "bundled": true,
-          "dev": true
-        },
-        "bcrypt-pbkdf": {
-          "version": "1.0.1",
-          "bundled": true,
-          "dev": true,
-          "optional": true,
-          "requires": {
-            "tweetnacl": "^0.14.3"
-          }
-        },
-        "block-stream": {
-          "version": "0.0.9",
-          "bundled": true,
-          "dev": true,
-          "requires": {
-            "inherits": "~2.0.0"
-          }
-        },
-        "boom": {
-          "version": "2.10.1",
-          "bundled": true,
-          "dev": true,
-          "requires": {
-            "hoek": "2.x.x"
-          }
-        },
-        "brace-expansion": {
-          "version": "1.1.7",
-          "bundled": true,
-          "dev": true,
-          "requires": {
-            "balanced-match": "^0.4.1",
-            "concat-map": "0.0.1"
-          }
-        },
-        "buffer-shims": {
-          "version": "1.0.0",
-          "bundled": true,
-          "dev": true
-        },
-        "caseless": {
-          "version": "0.12.0",
-          "bundled": true,
-          "dev": true,
-          "optional": true
-        },
-        "co": {
-          "version": "4.6.0",
-          "bundled": true,
-          "dev": true,
-          "optional": true
-        },
-        "code-point-at": {
-          "version": "1.1.0",
-          "bundled": true,
-          "dev": true
-        },
-        "combined-stream": {
-          "version": "1.0.5",
-          "bundled": true,
-          "dev": true,
-          "requires": {
-            "delayed-stream": "~1.0.0"
-          }
-        },
-        "concat-map": {
-          "version": "0.0.1",
-          "bundled": true,
-          "dev": true
-        },
-        "console-control-strings": {
-          "version": "1.1.0",
-          "bundled": true,
-          "dev": true
-        },
-        "core-util-is": {
-          "version": "1.0.2",
-          "bundled": true,
-          "dev": true
-        },
-        "cryptiles": {
-          "version": "2.0.5",
-          "bundled": true,
-          "dev": true,
-          "requires": {
-            "boom": "2.x.x"
-          }
-        },
-        "dashdash": {
-          "version": "1.14.1",
-          "bundled": true,
-          "dev": true,
-          "optional": true,
-          "requires": {
-            "assert-plus": "^1.0.0"
-          },
-          "dependencies": {
-            "assert-plus": {
-              "version": "1.0.0",
-              "bundled": true,
-              "dev": true,
-              "optional": true
-            }
-          }
-        },
-        "debug": {
-          "version": "2.6.8",
-          "bundled": true,
-          "dev": true,
-          "optional": true,
-          "requires": {
-            "ms": "2.0.0"
-          }
-        },
-        "deep-extend": {
-          "version": "0.4.2",
-          "bundled": true,
-          "dev": true,
-          "optional": true
-        },
-        "delayed-stream": {
-          "version": "1.0.0",
-          "bundled": true,
-          "dev": true
-        },
-        "delegates": {
-          "version": "1.0.0",
-          "bundled": true,
-          "dev": true,
-          "optional": true
-        },
-        "detect-libc": {
-          "version": "1.0.2",
-          "bundled": true,
-          "dev": true,
-          "optional": true
-        },
-        "ecc-jsbn": {
-          "version": "0.1.1",
-          "bundled": true,
-          "dev": true,
-          "optional": true,
-          "requires": {
-            "jsbn": "~0.1.0"
-          }
-        },
-        "extend": {
-          "version": "3.0.1",
-          "bundled": true,
-          "dev": true,
-          "optional": true
-        },
-        "extsprintf": {
-          "version": "1.0.2",
-          "bundled": true,
-          "dev": true
-        },
-        "forever-agent": {
-          "version": "0.6.1",
-          "bundled": true,
-          "dev": true,
-          "optional": true
-        },
-        "form-data": {
-          "version": "2.1.4",
-          "bundled": true,
-          "dev": true,
-          "optional": true,
-          "requires": {
-            "asynckit": "^0.4.0",
-            "combined-stream": "^1.0.5",
-            "mime-types": "^2.1.12"
-          }
-        },
-        "fs.realpath": {
-          "version": "1.0.0",
-          "bundled": true,
-          "dev": true
-        },
-        "fstream": {
-          "version": "1.0.11",
-          "bundled": true,
-          "dev": true,
-          "requires": {
-            "graceful-fs": "^4.1.2",
-            "inherits": "~2.0.0",
-            "mkdirp": ">=0.5 0",
-            "rimraf": "2"
-          }
-        },
-        "fstream-ignore": {
-          "version": "1.0.5",
-          "bundled": true,
-          "dev": true,
-          "optional": true,
-          "requires": {
-            "fstream": "^1.0.0",
-            "inherits": "2",
-            "minimatch": "^3.0.0"
-          }
-        },
-        "gauge": {
-          "version": "2.7.4",
-          "bundled": true,
-          "dev": true,
-          "optional": true,
-          "requires": {
-            "aproba": "^1.0.3",
-            "console-control-strings": "^1.0.0",
-            "has-unicode": "^2.0.0",
-            "object-assign": "^4.1.0",
-            "signal-exit": "^3.0.0",
-            "string-width": "^1.0.1",
-            "strip-ansi": "^3.0.1",
-            "wide-align": "^1.1.0"
-          }
-        },
-        "getpass": {
-          "version": "0.1.7",
-          "bundled": true,
-          "dev": true,
-          "optional": true,
-          "requires": {
-            "assert-plus": "^1.0.0"
-          },
-          "dependencies": {
-            "assert-plus": {
-              "version": "1.0.0",
-              "bundled": true,
-              "dev": true,
-              "optional": true
-            }
-          }
-        },
-        "glob": {
-          "version": "7.1.2",
-          "bundled": true,
-          "dev": true,
-          "requires": {
-            "fs.realpath": "^1.0.0",
-            "inflight": "^1.0.4",
-            "inherits": "2",
-            "minimatch": "^3.0.4",
-            "once": "^1.3.0",
-            "path-is-absolute": "^1.0.0"
-          }
-        },
-        "graceful-fs": {
-          "version": "4.1.11",
-          "bundled": true,
-          "dev": true
-        },
-        "har-schema": {
-          "version": "1.0.5",
-          "bundled": true,
-          "dev": true,
-          "optional": true
-        },
-        "har-validator": {
-          "version": "4.2.1",
-          "bundled": true,
-          "dev": true,
-          "optional": true,
-          "requires": {
-            "ajv": "^4.9.1",
-            "har-schema": "^1.0.5"
-          }
-        },
-        "has-unicode": {
-          "version": "2.0.1",
-          "bundled": true,
-          "dev": true,
-          "optional": true
-        },
-        "hawk": {
-          "version": "3.1.3",
-          "bundled": true,
-          "dev": true,
-          "requires": {
-            "boom": "2.x.x",
-            "cryptiles": "2.x.x",
-            "hoek": "2.x.x",
-            "sntp": "1.x.x"
-          }
-        },
-        "hoek": {
-          "version": "2.16.3",
-          "bundled": true,
-          "dev": true
-        },
-        "http-signature": {
-          "version": "1.1.1",
-          "bundled": true,
-          "dev": true,
-          "optional": true,
-          "requires": {
-            "assert-plus": "^0.2.0",
-            "jsprim": "^1.2.2",
-            "sshpk": "^1.7.0"
-          }
-        },
-        "inflight": {
-          "version": "1.0.6",
-          "bundled": true,
-          "dev": true,
-          "requires": {
-            "once": "^1.3.0",
-            "wrappy": "1"
-          }
-        },
-        "inherits": {
-          "version": "2.0.3",
-          "bundled": true,
-          "dev": true
-        },
-        "ini": {
-          "version": "1.3.4",
-          "bundled": true,
-          "dev": true,
-          "optional": true
-        },
-        "is-fullwidth-code-point": {
-          "version": "1.0.0",
-          "bundled": true,
-          "dev": true,
-          "requires": {
-            "number-is-nan": "^1.0.0"
-          }
-        },
-        "is-typedarray": {
-          "version": "1.0.0",
-          "bundled": true,
-          "dev": true,
-          "optional": true
-        },
-        "isarray": {
-          "version": "1.0.0",
-          "bundled": true,
-          "dev": true
-        },
-        "isstream": {
-          "version": "0.1.2",
-          "bundled": true,
-          "dev": true,
-          "optional": true
-        },
-        "jodid25519": {
-          "version": "1.0.2",
-          "bundled": true,
-          "dev": true,
-          "optional": true,
-          "requires": {
-            "jsbn": "~0.1.0"
-          }
-        },
-        "jsbn": {
-          "version": "0.1.1",
-          "bundled": true,
-          "dev": true,
-          "optional": true
-        },
-        "json-schema": {
-          "version": "0.2.3",
-          "bundled": true,
-          "dev": true,
-          "optional": true
-        },
-        "json-stable-stringify": {
-          "version": "1.0.1",
-          "bundled": true,
-          "dev": true,
-          "optional": true,
-          "requires": {
-            "jsonify": "~0.0.0"
-          }
-        },
-        "json-stringify-safe": {
-          "version": "5.0.1",
-          "bundled": true,
-          "dev": true,
-          "optional": true
-        },
-        "jsonify": {
-          "version": "0.0.0",
-          "bundled": true,
-          "dev": true,
-          "optional": true
-        },
-        "jsprim": {
-          "version": "1.4.0",
-          "bundled": true,
-          "dev": true,
-          "optional": true,
-          "requires": {
-            "assert-plus": "1.0.0",
-            "extsprintf": "1.0.2",
-            "json-schema": "0.2.3",
-            "verror": "1.3.6"
-          },
-          "dependencies": {
-            "assert-plus": {
-              "version": "1.0.0",
-              "bundled": true,
-              "dev": true,
-              "optional": true
-            }
-          }
-        },
-        "mime-db": {
-          "version": "1.27.0",
-          "bundled": true,
-          "dev": true
-        },
-        "mime-types": {
-          "version": "2.1.15",
-          "bundled": true,
-          "dev": true,
-          "requires": {
-            "mime-db": "~1.27.0"
-          }
-        },
-        "minimatch": {
-          "version": "3.0.4",
-          "bundled": true,
-          "dev": true,
-          "requires": {
-            "brace-expansion": "^1.1.7"
-          }
-        },
-        "minimist": {
-          "version": "0.0.8",
-          "bundled": true,
-          "dev": true
-        },
-        "mkdirp": {
-          "version": "0.5.1",
-          "bundled": true,
-          "dev": true,
-          "requires": {
-            "minimist": "0.0.8"
-          }
-        },
-        "ms": {
-          "version": "2.0.0",
-          "bundled": true,
-          "dev": true,
-          "optional": true
-        },
-        "node-pre-gyp": {
-          "version": "0.6.39",
-          "bundled": true,
-          "dev": true,
-          "optional": true,
-          "requires": {
-            "detect-libc": "^1.0.2",
-            "hawk": "3.1.3",
-            "mkdirp": "^0.5.1",
-            "nopt": "^4.0.1",
-            "npmlog": "^4.0.2",
-            "rc": "^1.1.7",
-            "request": "2.81.0",
-            "rimraf": "^2.6.1",
-            "semver": "^5.3.0",
-            "tar": "^2.2.1",
-            "tar-pack": "^3.4.0"
-          }
-        },
-        "nopt": {
-          "version": "4.0.1",
-          "bundled": true,
-          "dev": true,
-          "optional": true,
-          "requires": {
-            "abbrev": "1",
-            "osenv": "^0.1.4"
-          }
-        },
-        "npmlog": {
-          "version": "4.1.0",
-          "bundled": true,
-          "dev": true,
-          "optional": true,
-          "requires": {
-            "are-we-there-yet": "~1.1.2",
-            "console-control-strings": "~1.1.0",
-            "gauge": "~2.7.3",
-            "set-blocking": "~2.0.0"
-          }
-        },
-        "number-is-nan": {
-          "version": "1.0.1",
-          "bundled": true,
-          "dev": true
-        },
-        "oauth-sign": {
-          "version": "0.8.2",
-          "bundled": true,
-          "dev": true,
-          "optional": true
-        },
-        "object-assign": {
-          "version": "4.1.1",
-          "bundled": true,
-          "dev": true,
-          "optional": true
-        },
-        "once": {
-          "version": "1.4.0",
-          "bundled": true,
-          "dev": true,
-          "requires": {
-            "wrappy": "1"
-          }
-        },
-        "os-homedir": {
-          "version": "1.0.2",
-          "bundled": true,
-          "dev": true,
-          "optional": true
-        },
-        "os-tmpdir": {
-          "version": "1.0.2",
-          "bundled": true,
-          "dev": true,
-          "optional": true
-        },
-        "osenv": {
-          "version": "0.1.4",
-          "bundled": true,
-          "dev": true,
-          "optional": true,
-          "requires": {
-            "os-homedir": "^1.0.0",
-            "os-tmpdir": "^1.0.0"
-          }
-        },
-        "path-is-absolute": {
-          "version": "1.0.1",
-          "bundled": true,
-          "dev": true
-        },
-        "performance-now": {
-          "version": "0.2.0",
-          "bundled": true,
-          "dev": true,
-          "optional": true
-        },
-        "process-nextick-args": {
-          "version": "1.0.7",
-          "bundled": true,
-          "dev": true
-        },
-        "punycode": {
-          "version": "1.4.1",
-          "bundled": true,
-          "dev": true,
-          "optional": true
-        },
-        "qs": {
-          "version": "6.4.0",
-          "bundled": true,
-          "dev": true,
-          "optional": true
-        },
-        "rc": {
-          "version": "1.2.1",
-          "bundled": true,
-          "dev": true,
-          "optional": true,
-          "requires": {
-            "deep-extend": "~0.4.0",
-            "ini": "~1.3.0",
-            "minimist": "^1.2.0",
-            "strip-json-comments": "~2.0.1"
-          },
-          "dependencies": {
-            "minimist": {
-              "version": "1.2.0",
-              "bundled": true,
-              "dev": true,
-              "optional": true
-            }
-          }
-        },
-        "readable-stream": {
-          "version": "2.2.9",
-          "bundled": true,
-          "dev": true,
-          "requires": {
-            "buffer-shims": "~1.0.0",
-            "core-util-is": "~1.0.0",
-            "inherits": "~2.0.1",
-            "isarray": "~1.0.0",
-            "process-nextick-args": "~1.0.6",
-            "string_decoder": "~1.0.0",
-            "util-deprecate": "~1.0.1"
-          }
-        },
-        "request": {
-          "version": "2.81.0",
-          "bundled": true,
-          "dev": true,
-          "optional": true,
-          "requires": {
-            "aws-sign2": "~0.6.0",
-            "aws4": "^1.2.1",
-            "caseless": "~0.12.0",
-            "combined-stream": "~1.0.5",
-            "extend": "~3.0.0",
-            "forever-agent": "~0.6.1",
-            "form-data": "~2.1.1",
-            "har-validator": "~4.2.1",
-            "hawk": "~3.1.3",
-            "http-signature": "~1.1.0",
-            "is-typedarray": "~1.0.0",
-            "isstream": "~0.1.2",
-            "json-stringify-safe": "~5.0.1",
-            "mime-types": "~2.1.7",
-            "oauth-sign": "~0.8.1",
-            "performance-now": "^0.2.0",
-            "qs": "~6.4.0",
-            "safe-buffer": "^5.0.1",
-            "stringstream": "~0.0.4",
-            "tough-cookie": "~2.3.0",
-            "tunnel-agent": "^0.6.0",
-            "uuid": "^3.0.0"
-          }
-        },
-        "rimraf": {
-          "version": "2.6.1",
-          "bundled": true,
-          "dev": true,
-          "requires": {
-            "glob": "^7.0.5"
-          }
-        },
-        "safe-buffer": {
-          "version": "5.0.1",
-          "bundled": true,
-          "dev": true
-        },
-        "semver": {
-          "version": "5.3.0",
-          "bundled": true,
-          "dev": true,
-          "optional": true
-        },
-        "set-blocking": {
-          "version": "2.0.0",
-          "bundled": true,
-          "dev": true,
-          "optional": true
-        },
-        "signal-exit": {
-          "version": "3.0.2",
-          "bundled": true,
-          "dev": true,
-          "optional": true
-        },
-        "sntp": {
-          "version": "1.0.9",
-          "bundled": true,
-          "dev": true,
-          "requires": {
-            "hoek": "2.x.x"
-          }
-        },
-        "sshpk": {
-          "version": "1.13.0",
-          "bundled": true,
-          "dev": true,
-          "optional": true,
-          "requires": {
-            "asn1": "~0.2.3",
-            "assert-plus": "^1.0.0",
-            "bcrypt-pbkdf": "^1.0.0",
-            "dashdash": "^1.12.0",
-            "ecc-jsbn": "~0.1.1",
-            "getpass": "^0.1.1",
-            "jodid25519": "^1.0.0",
-            "jsbn": "~0.1.0",
-            "tweetnacl": "~0.14.0"
-          },
-          "dependencies": {
-            "assert-plus": {
-              "version": "1.0.0",
-              "bundled": true,
-              "dev": true,
-              "optional": true
-            }
-          }
-        },
-        "string-width": {
-          "version": "1.0.2",
-          "bundled": true,
-          "dev": true,
-          "requires": {
-            "code-point-at": "^1.0.0",
-            "is-fullwidth-code-point": "^1.0.0",
-            "strip-ansi": "^3.0.0"
-          }
-        },
-        "string_decoder": {
-          "version": "1.0.1",
-          "bundled": true,
-          "dev": true,
-          "requires": {
-            "safe-buffer": "^5.0.1"
-          }
-        },
-        "stringstream": {
-          "version": "0.0.5",
-          "bundled": true,
-          "dev": true,
-          "optional": true
-        },
-        "strip-ansi": {
-          "version": "3.0.1",
-          "bundled": true,
-          "dev": true,
-          "requires": {
-            "ansi-regex": "^2.0.0"
-          }
-        },
-        "strip-json-comments": {
-          "version": "2.0.1",
-          "bundled": true,
-          "dev": true,
-          "optional": true
-        },
-        "tar": {
-          "version": "2.2.1",
-          "bundled": true,
-          "dev": true,
-          "requires": {
-            "block-stream": "*",
-            "fstream": "^1.0.2",
-            "inherits": "2"
-          }
-        },
-        "tar-pack": {
-          "version": "3.4.0",
-          "bundled": true,
-          "dev": true,
-          "optional": true,
-          "requires": {
-            "debug": "^2.2.0",
-            "fstream": "^1.0.10",
-            "fstream-ignore": "^1.0.5",
-            "once": "^1.3.3",
-            "readable-stream": "^2.1.4",
-            "rimraf": "^2.5.1",
-            "tar": "^2.2.1",
-            "uid-number": "^0.0.6"
-          }
-        },
-        "tough-cookie": {
-          "version": "2.3.2",
-          "bundled": true,
-          "dev": true,
-          "optional": true,
-          "requires": {
-            "punycode": "^1.4.1"
-          }
-        },
-        "tunnel-agent": {
-          "version": "0.6.0",
-          "bundled": true,
-          "dev": true,
-          "optional": true,
-          "requires": {
-            "safe-buffer": "^5.0.1"
-          }
-        },
-        "tweetnacl": {
-          "version": "0.14.5",
-          "bundled": true,
-          "dev": true,
-          "optional": true
-        },
-        "uid-number": {
-          "version": "0.0.6",
-          "bundled": true,
-          "dev": true,
-          "optional": true
-        },
-        "util-deprecate": {
-          "version": "1.0.2",
-          "bundled": true,
-          "dev": true
-        },
-        "uuid": {
-          "version": "3.0.1",
-          "bundled": true,
-          "dev": true,
-          "optional": true
-        },
-        "verror": {
-          "version": "1.3.6",
-          "bundled": true,
-          "dev": true,
-          "optional": true,
-          "requires": {
-            "extsprintf": "1.0.2"
-          }
-        },
-        "wide-align": {
-          "version": "1.1.2",
-          "bundled": true,
-          "dev": true,
-          "optional": true,
-          "requires": {
-            "string-width": "^1.0.2"
-          }
-        },
-        "wrappy": {
-          "version": "1.0.2",
-          "bundled": true,
-          "dev": true
-        }
-      }
-    },
-    "fstream": {
-      "version": "1.0.11",
-      "resolved": "https://registry.npmjs.org/fstream/-/fstream-1.0.11.tgz",
-      "integrity": "sha1-XB+x8RdHcRTwYyoOtLcbPLD9MXE=",
-      "dev": true,
-      "requires": {
-        "graceful-fs": "^4.1.2",
-        "inherits": "~2.0.0",
-        "mkdirp": ">=0.5 0",
-        "rimraf": "2"
-      }
-    },
-    "function-bind": {
-      "version": "1.1.1",
-      "resolved": "https://registry.npmjs.org/function-bind/-/function-bind-1.1.1.tgz",
-      "integrity": "sha512-yIovAzMX49sF8Yl58fSCWJ5svSLuaibPxXQJFLmBObTuCr0Mf1KiPopGM9NiFjiYBCbfaa2Fh6breQ6ANVTI0A==",
-      "dev": true
-    },
-    "gauge": {
-      "version": "2.7.4",
-      "resolved": "https://registry.npmjs.org/gauge/-/gauge-2.7.4.tgz",
-      "integrity": "sha1-LANAXHU4w51+s3sxcCLjJfsBi/c=",
-      "dev": true,
-      "requires": {
-        "aproba": "^1.0.3",
-        "console-control-strings": "^1.0.0",
-        "has-unicode": "^2.0.0",
-        "object-assign": "^4.1.0",
-        "signal-exit": "^3.0.0",
-        "string-width": "^1.0.1",
-        "strip-ansi": "^3.0.1",
-        "wide-align": "^1.1.0"
-      }
-    },
-    "gaze": {
-      "version": "1.1.3",
-      "resolved": "https://registry.npmjs.org/gaze/-/gaze-1.1.3.tgz",
-      "integrity": "sha512-BRdNm8hbWzFzWHERTrejLqwHDfS4GibPoq5wjTPIoJHoBtKGPg3xAFfxmM+9ztbXelxcf2hwQcaz1PtmFeue8g==",
-      "dev": true,
-      "optional": true,
-      "requires": {
-        "globule": "^1.0.0"
-      }
-    },
-    "genfun": {
-      "version": "5.0.0",
-      "resolved": "https://registry.npmjs.org/genfun/-/genfun-5.0.0.tgz",
-      "integrity": "sha512-KGDOARWVga7+rnB3z9Sd2Letx515owfk0hSxHGuqjANb1M+x2bGZGqHLiozPsYMdM2OubeMni/Hpwmjq6qIUhA==",
-      "dev": true
-    },
-    "geojson-equality": {
-      "version": "0.1.6",
-      "resolved": "https://registry.npmjs.org/geojson-equality/-/geojson-equality-0.1.6.tgz",
-      "integrity": "sha1-oXE3TvBD5dR5eZWEC65GSOB1LXI=",
-      "requires": {
-        "deep-equal": "^1.0.0"
-      }
-    },
-    "geojson-rbush": {
-      "version": "2.1.0",
-      "resolved": "https://registry.npmjs.org/geojson-rbush/-/geojson-rbush-2.1.0.tgz",
-      "integrity": "sha1-O9c745H8ELCuaT2bis6iquC4Oo0=",
-      "requires": {
-        "@turf/helpers": "*",
-        "@turf/meta": "*",
-        "rbush": "*"
-      }
-    },
-    "get-caller-file": {
-      "version": "1.0.2",
-      "resolved": "https://registry.npmjs.org/get-caller-file/-/get-caller-file-1.0.2.tgz",
-      "integrity": "sha1-9wLmMSfn4jHBYKgMFVSstw1QR+U=",
-      "dev": true
-    },
-    "get-closest": {
-      "version": "0.0.4",
-      "resolved": "https://registry.npmjs.org/get-closest/-/get-closest-0.0.4.tgz",
-      "integrity": "sha1-JprHdtHmAiqg/Vht1wjop9Miaa8="
-    },
-    "get-stdin": {
-      "version": "4.0.1",
-      "resolved": "https://registry.npmjs.org/get-stdin/-/get-stdin-4.0.1.tgz",
-      "integrity": "sha1-uWjGsKBDhDJJAui/Gl3zJXmkUP4=",
-      "dev": true
-    },
-    "get-stream": {
-      "version": "3.0.0",
-      "resolved": "https://registry.npmjs.org/get-stream/-/get-stream-3.0.0.tgz",
-      "integrity": "sha1-jpQ9E1jcN1VQVOy+LtsFqhdO3hQ="
-    },
-    "get-value": {
-      "version": "2.0.6",
-      "resolved": "https://registry.npmjs.org/get-value/-/get-value-2.0.6.tgz",
-      "integrity": "sha1-3BXKHGcjh8p2vTesCjlbogQqLCg=",
-      "dev": true
-    },
-    "getos": {
-      "version": "3.1.0",
-      "resolved": "https://registry.npmjs.org/getos/-/getos-3.1.0.tgz",
-      "integrity": "sha512-i9vrxtDu5DlLVFcrbqUqGWYlZN/zZ4pGMICCAcZoYsX3JA54nYp8r5EThw5K+m2q3wszkx4Th746JstspB0H4Q==",
-      "dev": true,
-      "requires": {
-        "async": "2.4.0"
-      },
-      "dependencies": {
-        "async": {
-          "version": "2.4.0",
-          "resolved": "https://registry.npmjs.org/async/-/async-2.4.0.tgz",
-          "integrity": "sha1-SZAgDxjqW4N8LMT4wDGmmFw4VhE=",
-          "dev": true,
-          "requires": {
-            "lodash": "^4.14.0"
-          }
-        }
-      }
-    },
-    "getpass": {
-      "version": "0.1.7",
-      "resolved": "https://registry.npmjs.org/getpass/-/getpass-0.1.7.tgz",
-      "integrity": "sha1-Xv+OPmhNVprkyysSgmBOi6YhSfo=",
-      "requires": {
-        "assert-plus": "^1.0.0"
-      },
-      "dependencies": {
-        "assert-plus": {
-          "version": "1.0.0",
-          "resolved": "https://registry.npmjs.org/assert-plus/-/assert-plus-1.0.0.tgz",
-          "integrity": "sha1-8S4PPF13sLHN2RRpQuTpbB5N1SU="
-        }
-      }
-    },
-    "gitignore-parser": {
-      "version": "0.0.2",
-      "resolved": "https://registry.npmjs.org/gitignore-parser/-/gitignore-parser-0.0.2.tgz",
-      "integrity": "sha1-9hJZuYXdkUFLmnFo+u+RccLuxd8="
-    },
-    "glob": {
-      "version": "7.1.2",
-      "resolved": "https://registry.npmjs.org/glob/-/glob-7.1.2.tgz",
-      "integrity": "sha512-MJTUg1kjuLeQCJ+ccE4Vpa6kKVXkPYJ2mOCQyUuKLcLQsdrMCpBPUi8qVE6+YuaJkozeA9NusTAw3hLr8Xe5EQ==",
-      "requires": {
-        "fs.realpath": "^1.0.0",
-        "inflight": "^1.0.4",
-        "inherits": "2",
-        "minimatch": "^3.0.4",
-        "once": "^1.3.0",
-        "path-is-absolute": "^1.0.0"
-      }
-    },
-    "glob-base": {
-      "version": "0.3.0",
-      "resolved": "https://registry.npmjs.org/glob-base/-/glob-base-0.3.0.tgz",
-      "integrity": "sha1-27Fk9iIbHAscz4Kuoyi0l98Oo8Q=",
-      "dev": true,
-      "requires": {
-        "glob-parent": "^2.0.0",
-        "is-glob": "^2.0.0"
-      }
-    },
-    "glob-parent": {
-      "version": "2.0.0",
-      "resolved": "https://registry.npmjs.org/glob-parent/-/glob-parent-2.0.0.tgz",
-      "integrity": "sha1-gTg9ctsFT8zPUzbaqQLxgvbtuyg=",
-      "dev": true,
-      "requires": {
-        "is-glob": "^2.0.0"
-      }
-    },
-    "global-dirs": {
-      "version": "0.1.1",
-      "resolved": "https://registry.npmjs.org/global-dirs/-/global-dirs-0.1.1.tgz",
-      "integrity": "sha1-sxnA3UYH81PzvpzKTHL8FIxJ9EU=",
-      "dev": true,
-      "requires": {
-        "ini": "^1.3.4"
-      }
-    },
-    "globals": {
-      "version": "9.18.0",
-      "resolved": "https://registry.npmjs.org/globals/-/globals-9.18.0.tgz",
-      "integrity": "sha512-S0nG3CLEQiY/ILxqtztTWH/3iRRdyBLw6KMDxnKMchrtbj2OFmehVh0WUCfW3DUrIgx/qFrJPICrq4Z4sTR9UQ=="
-    },
-    "globby": {
-      "version": "7.1.1",
-      "resolved": "https://registry.npmjs.org/globby/-/globby-7.1.1.tgz",
-      "integrity": "sha1-+yzP+UAfhgCUXfral0QMypcrhoA=",
-      "dev": true,
-      "requires": {
-        "array-union": "^1.0.1",
-        "dir-glob": "^2.0.0",
-        "glob": "^7.1.2",
-        "ignore": "^3.3.5",
-        "pify": "^3.0.0",
-        "slash": "^1.0.0"
-      }
-    },
-    "globule": {
-      "version": "1.2.1",
-      "resolved": "https://registry.npmjs.org/globule/-/globule-1.2.1.tgz",
-      "integrity": "sha512-g7QtgWF4uYSL5/dn71WxubOrS7JVGCnFPEnoeChJmBnyR9Mw8nGoEwOgJL/RC2Te0WhbsEUCejfH8SZNJ+adYQ==",
-      "dev": true,
-      "optional": true,
-      "requires": {
-        "glob": "~7.1.1",
-        "lodash": "~4.17.10",
-        "minimatch": "~3.0.2"
-      },
-      "dependencies": {
-        "lodash": {
-          "version": "4.17.11",
-          "resolved": "https://registry.npmjs.org/lodash/-/lodash-4.17.11.tgz",
-          "integrity": "sha512-cQKh8igo5QUhZ7lg38DYWAxMvjSAKG0A8wGSVimP07SIUEK2UO+arSRKbRZWtelMtN5V0Hkwh5ryOto/SshYIg==",
-          "dev": true,
-          "optional": true
-        }
-      }
-    },
-    "got": {
-      "version": "6.7.1",
-      "resolved": "http://registry.npmjs.org/got/-/got-6.7.1.tgz",
-      "integrity": "sha1-JAzQV4WpoY5WHcG0S0HHY+8ejbA=",
-      "requires": {
-        "create-error-class": "^3.0.0",
-        "duplexer3": "^0.1.4",
-        "get-stream": "^3.0.0",
-        "is-redirect": "^1.0.0",
-        "is-retry-allowed": "^1.0.0",
-        "is-stream": "^1.0.0",
-        "lowercase-keys": "^1.0.0",
-        "safe-buffer": "^5.0.1",
-        "timed-out": "^4.0.0",
-        "unzip-response": "^2.0.1",
-        "url-parse-lax": "^1.0.0"
-      }
-    },
-    "graceful-fs": {
-      "version": "4.1.11",
-      "resolved": "https://registry.npmjs.org/graceful-fs/-/graceful-fs-4.1.11.tgz",
-      "integrity": "sha1-Dovf5NHduIVNZOBOp8AOKgJuVlg="
-    },
-    "growly": {
-      "version": "1.3.0",
-      "resolved": "https://registry.npmjs.org/growly/-/growly-1.3.0.tgz",
-      "integrity": "sha1-8QdIy+dq+WS3yWyTxrzCivEgwIE=",
-      "dev": true
-    },
-    "hammerjs": {
-      "version": "2.0.8",
-      "resolved": "https://registry.npmjs.org/hammerjs/-/hammerjs-2.0.8.tgz",
-      "integrity": "sha1-BO93hiz/K7edMPdpIJWTAiK/YPE=",
-      "dev": true
-    },
-    "handle-thing": {
-      "version": "1.2.5",
-      "resolved": "https://registry.npmjs.org/handle-thing/-/handle-thing-1.2.5.tgz",
-      "integrity": "sha1-/Xqtcmvxpf0W38KbL3pmAdJxOcQ=",
-      "dev": true
-    },
-    "handlebars": {
-      "version": "4.0.11",
-      "resolved": "https://registry.npmjs.org/handlebars/-/handlebars-4.0.11.tgz",
-      "integrity": "sha1-Ywo13+ApS8KB7a5v/F0yn8eYLcw=",
-      "dev": true,
-      "requires": {
-        "async": "^1.4.0",
-        "optimist": "^0.6.1",
-        "source-map": "^0.4.4",
-        "uglify-js": "^2.6"
-      },
-      "dependencies": {
-        "async": {
-          "version": "1.5.2",
-          "resolved": "https://registry.npmjs.org/async/-/async-1.5.2.tgz",
-          "integrity": "sha1-7GphrlZIDAw8skHJVhjiCJL5Zyo=",
-          "dev": true
-        },
-        "camelcase": {
-          "version": "1.2.1",
-          "resolved": "https://registry.npmjs.org/camelcase/-/camelcase-1.2.1.tgz",
-          "integrity": "sha1-m7UwTS4LVmmLLHWLCKPqqdqlijk=",
-          "dev": true,
-          "optional": true
-        },
-        "cliui": {
-          "version": "2.1.0",
-          "resolved": "https://registry.npmjs.org/cliui/-/cliui-2.1.0.tgz",
-          "integrity": "sha1-S0dXYP+AJkx2LDoXGQMukcf+oNE=",
-          "dev": true,
-          "optional": true,
-          "requires": {
-            "center-align": "^0.1.1",
-            "right-align": "^0.1.1",
-            "wordwrap": "0.0.2"
-          }
-        },
-        "source-map": {
-          "version": "0.4.4",
-          "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.4.4.tgz",
-          "integrity": "sha1-66T12pwNyZneaAMti092FzZSA2s=",
-          "dev": true,
-          "requires": {
-            "amdefine": ">=0.0.4"
-          }
-        },
-        "uglify-js": {
-          "version": "2.8.29",
-          "resolved": "https://registry.npmjs.org/uglify-js/-/uglify-js-2.8.29.tgz",
-          "integrity": "sha1-KcVzMUgFe7Th913zW3qcty5qWd0=",
-          "dev": true,
-          "optional": true,
-          "requires": {
-            "source-map": "~0.5.1",
-            "uglify-to-browserify": "~1.0.0",
-            "yargs": "~3.10.0"
-          },
-          "dependencies": {
-            "source-map": {
-              "version": "0.5.7",
-              "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.5.7.tgz",
-              "integrity": "sha1-igOdLRAh0i0eoUyA2OpGi6LvP8w=",
-              "dev": true,
-              "optional": true
-            }
-          }
-        },
-        "yargs": {
-          "version": "3.10.0",
-          "resolved": "https://registry.npmjs.org/yargs/-/yargs-3.10.0.tgz",
-          "integrity": "sha1-9+572FfdfB0tOMDnTvvWgdFDH9E=",
-          "dev": true,
-          "optional": true,
-          "requires": {
-            "camelcase": "^1.0.2",
-            "cliui": "^2.1.0",
-            "decamelize": "^1.0.0",
-            "window-size": "0.1.0"
-          }
-        }
-      }
-    },
-    "har-schema": {
-      "version": "1.0.5",
-      "resolved": "https://registry.npmjs.org/har-schema/-/har-schema-1.0.5.tgz",
-      "integrity": "sha1-0mMTX0MwfALGAq/I/pWXDAFRNp4="
-    },
-    "har-validator": {
-      "version": "4.2.1",
-      "resolved": "https://registry.npmjs.org/har-validator/-/har-validator-4.2.1.tgz",
-      "integrity": "sha1-M0gdDxu/9gDdID11gSpqX7oALio=",
-      "requires": {
-        "ajv": "^4.9.1",
-        "har-schema": "^1.0.5"
-      },
-      "dependencies": {
-        "ajv": {
-          "version": "4.11.8",
-          "resolved": "https://registry.npmjs.org/ajv/-/ajv-4.11.8.tgz",
-          "integrity": "sha1-gv+wKynmYq5TvcIK8VlHcGc5xTY=",
-          "requires": {
-            "co": "^4.6.0",
-            "json-stable-stringify": "^1.0.1"
-          }
-        }
-      }
-    },
-    "has": {
-      "version": "1.0.3",
-      "resolved": "https://registry.npmjs.org/has/-/has-1.0.3.tgz",
-      "integrity": "sha512-f2dvO0VU6Oej7RkWJGrehjbzMAjFp5/VKPp5tTpWIV4JHHZK1/BxbFRtf/siA2SWTe09caDmVtYYzWEIbBS4zw==",
-      "dev": true,
-      "requires": {
-        "function-bind": "^1.1.1"
-      }
-    },
-    "has-ansi": {
-      "version": "2.0.0",
-      "resolved": "https://registry.npmjs.org/has-ansi/-/has-ansi-2.0.0.tgz",
-      "integrity": "sha1-NPUEnOHs3ysGSa8+8k5F7TVBbZE=",
-      "requires": {
-        "ansi-regex": "^2.0.0"
-      }
-    },
-    "has-flag": {
-      "version": "2.0.0",
-      "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-2.0.0.tgz",
-      "integrity": "sha1-6CB68cx7MNRGzHC3NLXovhj4jVE="
-    },
-    "has-symbols": {
-      "version": "1.0.0",
-      "resolved": "https://registry.npmjs.org/has-symbols/-/has-symbols-1.0.0.tgz",
-      "integrity": "sha1-uhqPGvKg/DllD1yFA2dwQSIGO0Q=",
-      "dev": true
-    },
-    "has-unicode": {
-      "version": "2.0.1",
-      "resolved": "https://registry.npmjs.org/has-unicode/-/has-unicode-2.0.1.tgz",
-      "integrity": "sha1-4Ob+aijPUROIVeCG0Wkedx3iqLk=",
-      "dev": true
-    },
-    "has-value": {
-      "version": "1.0.0",
-      "resolved": "https://registry.npmjs.org/has-value/-/has-value-1.0.0.tgz",
-      "integrity": "sha1-GLKB2lhbHFxR3vJMkw7SmgvmsXc=",
-      "dev": true,
-      "requires": {
-        "get-value": "^2.0.6",
-        "has-values": "^1.0.0",
-        "isobject": "^3.0.0"
-      },
-      "dependencies": {
-        "isobject": {
-          "version": "3.0.1",
-          "resolved": "https://registry.npmjs.org/isobject/-/isobject-3.0.1.tgz",
-          "integrity": "sha1-TkMekrEalzFjaqH5yNHMvP2reN8=",
-          "dev": true
-        }
-      }
-    },
-    "has-values": {
-      "version": "1.0.0",
-      "resolved": "https://registry.npmjs.org/has-values/-/has-values-1.0.0.tgz",
-      "integrity": "sha1-lbC2P+whRmGab+V/51Yo1aOe/k8=",
-      "dev": true,
-      "requires": {
-        "is-number": "^3.0.0",
-        "kind-of": "^4.0.0"
-      },
-      "dependencies": {
-        "is-number": {
-          "version": "3.0.0",
-          "resolved": "https://registry.npmjs.org/is-number/-/is-number-3.0.0.tgz",
-          "integrity": "sha1-JP1iAaR4LPUFYcgQJ2r8fRLXEZU=",
-          "dev": true,
-          "requires": {
-            "kind-of": "^3.0.2"
-          },
-          "dependencies": {
-            "kind-of": {
-              "version": "3.2.2",
-              "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-3.2.2.tgz",
-              "integrity": "sha1-MeohpzS6ubuw8yRm2JOupR5KPGQ=",
-              "dev": true,
-              "requires": {
-                "is-buffer": "^1.1.5"
-              }
-            }
-          }
-        },
-        "kind-of": {
-          "version": "4.0.0",
-          "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-4.0.0.tgz",
-          "integrity": "sha1-IIE989cSkosgc3hpGkUGb65y3Vc=",
-          "dev": true,
-          "requires": {
-            "is-buffer": "^1.1.5"
-          }
-        }
-      }
-    },
-    "hash-base": {
-      "version": "2.0.2",
-      "resolved": "https://registry.npmjs.org/hash-base/-/hash-base-2.0.2.tgz",
-      "integrity": "sha1-ZuodhW206KVHDK32/OI65SRO8uE=",
-      "dev": true,
-      "requires": {
-        "inherits": "^2.0.1"
-      }
-    },
-    "hash.js": {
-      "version": "1.1.3",
-      "resolved": "https://registry.npmjs.org/hash.js/-/hash.js-1.1.3.tgz",
-      "integrity": "sha512-/UETyP0W22QILqS+6HowevwhEFJ3MBJnwTf75Qob9Wz9t0DPuisL8kW8YZMK62dHAKE1c1p+gY1TtOLY+USEHA==",
-      "dev": true,
-      "requires": {
-        "inherits": "^2.0.3",
-        "minimalistic-assert": "^1.0.0"
-      }
-    },
-    "hawk": {
-      "version": "3.1.3",
-      "resolved": "https://registry.npmjs.org/hawk/-/hawk-3.1.3.tgz",
-      "integrity": "sha1-B4REvXwWQLD+VA0sm3PVlnjo4cQ=",
-      "requires": {
-        "boom": "2.x.x",
-        "cryptiles": "2.x.x",
-        "hoek": "2.x.x",
-        "sntp": "1.x.x"
-      }
-    },
-    "hmac-drbg": {
-      "version": "1.0.1",
-      "resolved": "https://registry.npmjs.org/hmac-drbg/-/hmac-drbg-1.0.1.tgz",
-      "integrity": "sha1-0nRXAQJabHdabFRXk+1QL8DGSaE=",
-      "dev": true,
-      "requires": {
-        "hash.js": "^1.0.3",
-        "minimalistic-assert": "^1.0.0",
-        "minimalistic-crypto-utils": "^1.0.1"
-      }
-    },
-    "hoek": {
-      "version": "2.16.3",
-      "resolved": "https://registry.npmjs.org/hoek/-/hoek-2.16.3.tgz",
-      "integrity": "sha1-ILt0A9POo5jpHcRxCo/xuCdKJe0="
-    },
-    "home-or-tmp": {
-      "version": "2.0.0",
-      "resolved": "https://registry.npmjs.org/home-or-tmp/-/home-or-tmp-2.0.0.tgz",
-      "integrity": "sha1-42w/LSyufXRqhX440Y1fMqeILbg=",
-      "dev": true,
-      "requires": {
-        "os-homedir": "^1.0.0",
-        "os-tmpdir": "^1.0.1"
-      }
-    },
-    "hosted-git-info": {
-      "version": "2.6.0",
-      "resolved": "https://registry.npmjs.org/hosted-git-info/-/hosted-git-info-2.6.0.tgz",
-      "integrity": "sha512-lIbgIIQA3lz5XaB6vxakj6sDHADJiZadYEJB+FgA+C4nubM1NwcuvUr9EJPmnH1skZqpqUzWborWo8EIUi0Sdw==",
-      "dev": true
-    },
-    "hpack.js": {
-      "version": "2.1.6",
-      "resolved": "https://registry.npmjs.org/hpack.js/-/hpack.js-2.1.6.tgz",
-      "integrity": "sha1-h3dMCUnlE/QuhFdbPEVoH63ioLI=",
-      "dev": true,
-      "requires": {
-        "inherits": "^2.0.1",
-        "obuf": "^1.0.0",
-        "readable-stream": "^2.0.1",
-        "wbuf": "^1.1.0"
-      }
-    },
-    "html-encoding-sniffer": {
-      "version": "1.0.2",
-      "resolved": "https://registry.npmjs.org/html-encoding-sniffer/-/html-encoding-sniffer-1.0.2.tgz",
-      "integrity": "sha512-71lZziiDnsuabfdYiUeWdCVyKuqwWi23L8YeIgV9jSSZHCtb6wB1BKWooH7L3tn4/FuZJMVWyNaIDr4RGmaSYw==",
-      "dev": true,
-      "requires": {
-        "whatwg-encoding": "^1.0.1"
-      }
-    },
-    "html-entities": {
-      "version": "1.2.1",
-      "resolved": "https://registry.npmjs.org/html-entities/-/html-entities-1.2.1.tgz",
-      "integrity": "sha1-DfKTUfByEWNRXfueVUPl9u7VFi8=",
-      "dev": true
-    },
-    "http-cache-semantics": {
-      "version": "3.8.1",
-      "resolved": "https://registry.npmjs.org/http-cache-semantics/-/http-cache-semantics-3.8.1.tgz",
-      "integrity": "sha512-5ai2iksyV8ZXmnZhHH4rWPoxxistEexSi5936zIQ1bnNTW5VnA85B6P/VpXiRM017IgRvb2kKo1a//y+0wSp3w==",
-      "dev": true
-    },
-    "http-deceiver": {
-      "version": "1.2.7",
-      "resolved": "https://registry.npmjs.org/http-deceiver/-/http-deceiver-1.2.7.tgz",
-      "integrity": "sha1-+nFolEq5pRnTN8sL7HKE3D5yPYc=",
-      "dev": true
-    },
-    "http-errors": {
-      "version": "1.6.3",
-      "resolved": "http://registry.npmjs.org/http-errors/-/http-errors-1.6.3.tgz",
-      "integrity": "sha1-i1VoC7S+KDoLW/TqLjhYC+HZMg0=",
-      "dev": true,
-      "requires": {
-        "depd": "~1.1.2",
-        "inherits": "2.0.3",
-        "setprototypeof": "1.1.0",
-        "statuses": ">= 1.4.0 < 2"
-      }
-    },
-    "http-parser-js": {
-      "version": "0.5.0",
-      "resolved": "https://registry.npmjs.org/http-parser-js/-/http-parser-js-0.5.0.tgz",
-      "integrity": "sha512-cZdEF7r4gfRIq7ezX9J0T+kQmJNOub71dWbgAXVHDct80TKP4MCETtZQ31xyv38UwgzkWPYF/Xc0ge55dW9Z9w==",
-      "dev": true
-    },
-    "http-proxy": {
-      "version": "1.17.0",
-      "resolved": "https://registry.npmjs.org/http-proxy/-/http-proxy-1.17.0.tgz",
-      "integrity": "sha512-Taqn+3nNvYRfJ3bGvKfBSRwy1v6eePlm3oc/aWVxZp57DQr5Eq3xhKJi7Z4hZpS8PC3H4qI+Yly5EmFacGuA/g==",
-      "dev": true,
-      "requires": {
-        "eventemitter3": "^3.0.0",
-        "follow-redirects": "^1.0.0",
-        "requires-port": "^1.0.0"
-      }
-    },
-    "http-proxy-agent": {
-      "version": "2.1.0",
-      "resolved": "https://registry.npmjs.org/http-proxy-agent/-/http-proxy-agent-2.1.0.tgz",
-      "integrity": "sha512-qwHbBLV7WviBl0rQsOzH6o5lwyOIvwp/BdFnvVxXORldu5TmjFfjzBcWUWS5kWAZhmv+JtiDhSuQCp4sBfbIgg==",
-      "dev": true,
-      "requires": {
-        "agent-base": "4",
-        "debug": "3.1.0"
-      },
-      "dependencies": {
-        "debug": {
-          "version": "3.1.0",
-          "resolved": "https://registry.npmjs.org/debug/-/debug-3.1.0.tgz",
-          "integrity": "sha512-OX8XqP7/1a9cqkxYw2yXss15f26NKWBpDXQd0/uK/KPqdQhxbPa994hnzjcE2VqQpDslf55723cKPUOGSmMY3g==",
-          "dev": true,
-          "requires": {
-            "ms": "2.0.0"
-          }
-        }
-      }
-    },
-    "http-proxy-middleware": {
-      "version": "0.18.0",
-      "resolved": "http://registry.npmjs.org/http-proxy-middleware/-/http-proxy-middleware-0.18.0.tgz",
-      "integrity": "sha512-Fs25KVMPAIIcgjMZkVHJoKg9VcXcC1C8yb9JUgeDvVXY0S/zgVIhMb+qVswDIgtJe2DfckMSY2d6TuTEutlk6Q==",
-      "dev": true,
-      "requires": {
-        "http-proxy": "^1.16.2",
-        "is-glob": "^4.0.0",
-        "lodash": "^4.17.5",
-        "micromatch": "^3.1.9"
-      },
-      "dependencies": {
-        "arr-diff": {
-          "version": "4.0.0",
-          "resolved": "https://registry.npmjs.org/arr-diff/-/arr-diff-4.0.0.tgz",
-          "integrity": "sha1-1kYQdP6/7HHn4VI1dhoyml3HxSA=",
-          "dev": true
-        },
-        "array-unique": {
-          "version": "0.3.2",
-          "resolved": "https://registry.npmjs.org/array-unique/-/array-unique-0.3.2.tgz",
-          "integrity": "sha1-qJS3XUvE9s1nnvMkSp/Y9Gri1Cg=",
-          "dev": true
-        },
-        "braces": {
-          "version": "2.3.2",
-          "resolved": "https://registry.npmjs.org/braces/-/braces-2.3.2.tgz",
-          "integrity": "sha512-aNdbnj9P8PjdXU4ybaWLK2IF3jc/EoDYbC7AazW6to3TRsfXxscC9UXOB5iDiEQrkyIbWp2SLQda4+QAa7nc3w==",
-          "dev": true,
-          "requires": {
-            "arr-flatten": "^1.1.0",
-            "array-unique": "^0.3.2",
-            "extend-shallow": "^2.0.1",
-            "fill-range": "^4.0.0",
-            "isobject": "^3.0.1",
-            "repeat-element": "^1.1.2",
-            "snapdragon": "^0.8.1",
-            "snapdragon-node": "^2.0.1",
-            "split-string": "^3.0.2",
-            "to-regex": "^3.0.1"
-          },
-          "dependencies": {
-            "extend-shallow": {
-              "version": "2.0.1",
-              "resolved": "https://registry.npmjs.org/extend-shallow/-/extend-shallow-2.0.1.tgz",
-              "integrity": "sha1-Ua99YUrZqfYQ6huvu5idaxxWiQ8=",
-              "dev": true,
-              "requires": {
-                "is-extendable": "^0.1.0"
-              }
-            }
-          }
-        },
-        "expand-brackets": {
-          "version": "2.1.4",
-          "resolved": "https://registry.npmjs.org/expand-brackets/-/expand-brackets-2.1.4.tgz",
-          "integrity": "sha1-t3c14xXOMPa27/D4OwQVGiJEliI=",
-          "dev": true,
-          "requires": {
-            "debug": "^2.3.3",
-            "define-property": "^0.2.5",
-            "extend-shallow": "^2.0.1",
-            "posix-character-classes": "^0.1.0",
-            "regex-not": "^1.0.0",
-            "snapdragon": "^0.8.1",
-            "to-regex": "^3.0.1"
-          },
-          "dependencies": {
-            "define-property": {
-              "version": "0.2.5",
-              "resolved": "https://registry.npmjs.org/define-property/-/define-property-0.2.5.tgz",
-              "integrity": "sha1-w1se+RjsPJkPmlvFe+BKrOxcgRY=",
-              "dev": true,
-              "requires": {
-                "is-descriptor": "^0.1.0"
-              }
-            },
-            "extend-shallow": {
-              "version": "2.0.1",
-              "resolved": "https://registry.npmjs.org/extend-shallow/-/extend-shallow-2.0.1.tgz",
-              "integrity": "sha1-Ua99YUrZqfYQ6huvu5idaxxWiQ8=",
-              "dev": true,
-              "requires": {
-                "is-extendable": "^0.1.0"
-              }
-            },
-            "is-descriptor": {
-              "version": "0.1.6",
-              "resolved": "https://registry.npmjs.org/is-descriptor/-/is-descriptor-0.1.6.tgz",
-              "integrity": "sha512-avDYr0SB3DwO9zsMov0gKCESFYqCnE4hq/4z3TdUlukEy5t9C0YRq7HLrsN52NAcqXKaepeCD0n+B0arnVG3Hg==",
-              "dev": true,
-              "requires": {
-                "is-accessor-descriptor": "^0.1.6",
-                "is-data-descriptor": "^0.1.4",
-                "kind-of": "^5.0.0"
-              }
-            },
-            "kind-of": {
-              "version": "5.1.0",
-              "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-5.1.0.tgz",
-              "integrity": "sha512-NGEErnH6F2vUuXDh+OlbcKW7/wOcfdRHaZ7VWtqCztfHri/++YKmP51OdWeGPuqCOba6kk2OTe5d02VmTB80Pw==",
-              "dev": true
-            }
-          }
-        },
-        "extglob": {
-          "version": "2.0.4",
-          "resolved": "https://registry.npmjs.org/extglob/-/extglob-2.0.4.tgz",
-          "integrity": "sha512-Nmb6QXkELsuBr24CJSkilo6UHHgbekK5UiZgfE6UHD3Eb27YC6oD+bhcT+tJ6cl8dmsgdQxnWlcry8ksBIBLpw==",
-          "dev": true,
-          "requires": {
-            "array-unique": "^0.3.2",
-            "define-property": "^1.0.0",
-            "expand-brackets": "^2.1.4",
-            "extend-shallow": "^2.0.1",
-            "fragment-cache": "^0.2.1",
-            "regex-not": "^1.0.0",
-            "snapdragon": "^0.8.1",
-            "to-regex": "^3.0.1"
-          },
-          "dependencies": {
-            "define-property": {
-              "version": "1.0.0",
-              "resolved": "https://registry.npmjs.org/define-property/-/define-property-1.0.0.tgz",
-              "integrity": "sha1-dp66rz9KY6rTr56NMEybvnm/sOY=",
-              "dev": true,
-              "requires": {
-                "is-descriptor": "^1.0.0"
-              }
-            },
-            "extend-shallow": {
-              "version": "2.0.1",
-              "resolved": "https://registry.npmjs.org/extend-shallow/-/extend-shallow-2.0.1.tgz",
-              "integrity": "sha1-Ua99YUrZqfYQ6huvu5idaxxWiQ8=",
-              "dev": true,
-              "requires": {
-                "is-extendable": "^0.1.0"
-              }
-            }
-          }
-        },
-        "fill-range": {
-          "version": "4.0.0",
-          "resolved": "https://registry.npmjs.org/fill-range/-/fill-range-4.0.0.tgz",
-          "integrity": "sha1-1USBHUKPmOsGpj3EAtJAPDKMOPc=",
-          "dev": true,
-          "requires": {
-            "extend-shallow": "^2.0.1",
-            "is-number": "^3.0.0",
-            "repeat-string": "^1.6.1",
-            "to-regex-range": "^2.1.0"
-          },
-          "dependencies": {
-            "extend-shallow": {
-              "version": "2.0.1",
-              "resolved": "https://registry.npmjs.org/extend-shallow/-/extend-shallow-2.0.1.tgz",
-              "integrity": "sha1-Ua99YUrZqfYQ6huvu5idaxxWiQ8=",
-              "dev": true,
-              "requires": {
-                "is-extendable": "^0.1.0"
-              }
-            }
-          }
-        },
-        "is-accessor-descriptor": {
-          "version": "0.1.6",
-          "resolved": "http://registry.npmjs.org/is-accessor-descriptor/-/is-accessor-descriptor-0.1.6.tgz",
-          "integrity": "sha1-qeEss66Nh2cn7u84Q/igiXtcmNY=",
-          "dev": true,
-          "requires": {
-            "kind-of": "^3.0.2"
-          },
-          "dependencies": {
-            "kind-of": {
-              "version": "3.2.2",
-              "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-3.2.2.tgz",
-              "integrity": "sha1-MeohpzS6ubuw8yRm2JOupR5KPGQ=",
-              "dev": true,
-              "requires": {
-                "is-buffer": "^1.1.5"
-              }
-            }
-          }
-        },
-        "is-data-descriptor": {
-          "version": "0.1.4",
-          "resolved": "http://registry.npmjs.org/is-data-descriptor/-/is-data-descriptor-0.1.4.tgz",
-          "integrity": "sha1-C17mSDiOLIYCgueT8YVv7D8wG1Y=",
-          "dev": true,
-          "requires": {
-            "kind-of": "^3.0.2"
-          },
-          "dependencies": {
-            "kind-of": {
-              "version": "3.2.2",
-              "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-3.2.2.tgz",
-              "integrity": "sha1-MeohpzS6ubuw8yRm2JOupR5KPGQ=",
-              "dev": true,
-              "requires": {
-                "is-buffer": "^1.1.5"
-              }
-            }
-          }
-        },
-        "is-extglob": {
-          "version": "2.1.1",
-          "resolved": "https://registry.npmjs.org/is-extglob/-/is-extglob-2.1.1.tgz",
-          "integrity": "sha1-qIwCU1eR8C7TfHahueqXc8gz+MI=",
-          "dev": true
-        },
-        "is-glob": {
-          "version": "4.0.0",
-          "resolved": "https://registry.npmjs.org/is-glob/-/is-glob-4.0.0.tgz",
-          "integrity": "sha1-lSHHaEXMJhCoUgPd8ICpWML/q8A=",
-          "dev": true,
-          "requires": {
-            "is-extglob": "^2.1.1"
-          }
-        },
-        "is-number": {
-          "version": "3.0.0",
-          "resolved": "https://registry.npmjs.org/is-number/-/is-number-3.0.0.tgz",
-          "integrity": "sha1-JP1iAaR4LPUFYcgQJ2r8fRLXEZU=",
-          "dev": true,
-          "requires": {
-            "kind-of": "^3.0.2"
-          },
-          "dependencies": {
-            "kind-of": {
-              "version": "3.2.2",
-              "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-3.2.2.tgz",
-              "integrity": "sha1-MeohpzS6ubuw8yRm2JOupR5KPGQ=",
-              "dev": true,
-              "requires": {
-                "is-buffer": "^1.1.5"
-              }
-            }
-          }
-        },
-        "isobject": {
-          "version": "3.0.1",
-          "resolved": "https://registry.npmjs.org/isobject/-/isobject-3.0.1.tgz",
-          "integrity": "sha1-TkMekrEalzFjaqH5yNHMvP2reN8=",
-          "dev": true
-        },
-        "kind-of": {
-          "version": "6.0.2",
-          "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-6.0.2.tgz",
-          "integrity": "sha512-s5kLOcnH0XqDO+FvuaLX8DDjZ18CGFk7VygH40QoKPUQhW4e2rvM0rwUq0t8IQDOwYSeLK01U90OjzBTme2QqA==",
-          "dev": true
-        },
-        "micromatch": {
-          "version": "3.1.10",
-          "resolved": "https://registry.npmjs.org/micromatch/-/micromatch-3.1.10.tgz",
-          "integrity": "sha512-MWikgl9n9M3w+bpsY3He8L+w9eF9338xRl8IAO5viDizwSzziFEyUzo2xrrloB64ADbTf8uA8vRqqttDTOmccg==",
-          "dev": true,
-          "requires": {
-            "arr-diff": "^4.0.0",
-            "array-unique": "^0.3.2",
-            "braces": "^2.3.1",
-            "define-property": "^2.0.2",
-            "extend-shallow": "^3.0.2",
-            "extglob": "^2.0.4",
-            "fragment-cache": "^0.2.1",
-            "kind-of": "^6.0.2",
-            "nanomatch": "^1.2.9",
-            "object.pick": "^1.3.0",
-            "regex-not": "^1.0.0",
-            "snapdragon": "^0.8.1",
-            "to-regex": "^3.0.2"
-          }
-        }
-      }
-    },
-    "http-signature": {
-      "version": "1.1.1",
-      "resolved": "https://registry.npmjs.org/http-signature/-/http-signature-1.1.1.tgz",
-      "integrity": "sha1-33LiZwZs0Kxn+3at+OE0qPvPkb8=",
-      "requires": {
-        "assert-plus": "^0.2.0",
-        "jsprim": "^1.2.2",
-        "sshpk": "^1.7.0"
-      }
-    },
-    "https-browserify": {
-      "version": "1.0.0",
-      "resolved": "https://registry.npmjs.org/https-browserify/-/https-browserify-1.0.0.tgz",
-      "integrity": "sha1-7AbBDgo0wPL68Zn3/X/Hj//QPHM=",
-      "dev": true
-    },
-    "https-proxy-agent": {
-      "version": "2.2.1",
-      "resolved": "https://registry.npmjs.org/https-proxy-agent/-/https-proxy-agent-2.2.1.tgz",
-      "integrity": "sha512-HPCTS1LW51bcyMYbxUIOO4HEOlQ1/1qRaFWcyxvwaqUS9TY88aoEuHUY33kuAh1YhVVaDQhLZsnPd+XNARWZlQ==",
-      "dev": true,
-      "requires": {
-        "agent-base": "^4.1.0",
-        "debug": "^3.1.0"
-      },
-      "dependencies": {
-        "debug": {
-          "version": "3.2.6",
-          "resolved": "https://registry.npmjs.org/debug/-/debug-3.2.6.tgz",
-          "integrity": "sha512-mel+jf7nrtEl5Pn1Qx46zARXKDpBbvzezse7p7LqINmdoIk8PYP5SySaxEmYv6TZ0JyEKA1hsCId6DIhgITtWQ==",
-          "dev": true,
-          "requires": {
-            "ms": "^2.1.1"
-          }
-        },
-        "ms": {
-          "version": "2.1.1",
-          "resolved": "https://registry.npmjs.org/ms/-/ms-2.1.1.tgz",
-          "integrity": "sha512-tgp+dl5cGk28utYktBsrFqA7HKgrhgPsg6Z/EfhWI4gl1Hwq8B/GmY/0oXZ6nF8hDVesS/FpnYaD/kOWhYQvyg==",
-          "dev": true
-        }
-      }
-    },
-    "humanize-ms": {
-      "version": "1.2.1",
-      "resolved": "https://registry.npmjs.org/humanize-ms/-/humanize-ms-1.2.1.tgz",
-      "integrity": "sha1-xG4xWaKT9riW2ikxbYtv6Lt5u+0=",
-      "dev": true,
-      "requires": {
-        "ms": "^2.0.0"
-      }
-    },
-    "husky": {
-      "version": "1.3.1",
-      "resolved": "https://registry.npmjs.org/husky/-/husky-1.3.1.tgz",
-      "integrity": "sha512-86U6sVVVf4b5NYSZ0yvv88dRgBSSXXmHaiq5pP4KDj5JVzdwKgBjEtUPOm8hcoytezFwbU+7gotXNhpHdystlg==",
-      "dev": true,
-      "requires": {
-        "cosmiconfig": "^5.0.7",
-        "execa": "^1.0.0",
-        "find-up": "^3.0.0",
-        "get-stdin": "^6.0.0",
-        "is-ci": "^2.0.0",
-        "pkg-dir": "^3.0.0",
-        "please-upgrade-node": "^3.1.1",
-        "read-pkg": "^4.0.1",
-        "run-node": "^1.0.0",
-        "slash": "^2.0.0"
-      },
-      "dependencies": {
-        "ci-info": {
-          "version": "2.0.0",
-          "resolved": "https://registry.npmjs.org/ci-info/-/ci-info-2.0.0.tgz",
-          "integrity": "sha512-5tK7EtrZ0N+OLFMthtqOj4fI2Jeb88C4CAZPu25LDVUgXJ0A3Js4PMGqrn0JU1W0Mh1/Z8wZzYPxqUrXeBboCQ==",
-          "dev": true
-        },
-        "cosmiconfig": {
-          "version": "5.1.0",
-          "resolved": "https://registry.npmjs.org/cosmiconfig/-/cosmiconfig-5.1.0.tgz",
-          "integrity": "sha512-kCNPvthka8gvLtzAxQXvWo4FxqRB+ftRZyPZNuab5ngvM9Y7yw7hbEysglptLgpkGX9nAOKTBVkHUAe8xtYR6Q==",
-          "dev": true,
-          "requires": {
-            "import-fresh": "^2.0.0",
-            "is-directory": "^0.3.1",
-            "js-yaml": "^3.9.0",
-            "lodash.get": "^4.4.2",
-            "parse-json": "^4.0.0"
-          }
-        },
-        "cross-spawn": {
-          "version": "6.0.5",
-          "resolved": "https://registry.npmjs.org/cross-spawn/-/cross-spawn-6.0.5.tgz",
-          "integrity": "sha512-eTVLrBSt7fjbDygz805pMnstIs2VTBNkRm0qxZd+M7A5XDdxVRWO5MxGBXZhjY4cqLYLdtrGqRf8mBPmzwSpWQ==",
-          "dev": true,
-          "requires": {
-            "nice-try": "^1.0.4",
-            "path-key": "^2.0.1",
-            "semver": "^5.5.0",
-            "shebang-command": "^1.2.0",
-            "which": "^1.2.9"
-          }
-        },
-        "execa": {
-          "version": "1.0.0",
-          "resolved": "https://registry.npmjs.org/execa/-/execa-1.0.0.tgz",
-          "integrity": "sha512-adbxcyWV46qiHyvSp50TKt05tB4tK3HcmF7/nxfAdhnox83seTDbwnaqKO4sXRy7roHAIFqJP/Rw/AuEbX61LA==",
-          "dev": true,
-          "requires": {
-            "cross-spawn": "^6.0.0",
-            "get-stream": "^4.0.0",
-            "is-stream": "^1.1.0",
-            "npm-run-path": "^2.0.0",
-            "p-finally": "^1.0.0",
-            "signal-exit": "^3.0.0",
-            "strip-eof": "^1.0.0"
-          }
-        },
-        "find-up": {
-          "version": "3.0.0",
-          "resolved": "https://registry.npmjs.org/find-up/-/find-up-3.0.0.tgz",
-          "integrity": "sha512-1yD6RmLI1XBfxugvORwlck6f75tYL+iR0jqwsOrOxMZyGYqUuDhJ0l4AXdO1iX/FTs9cBAMEk1gWSEx1kSbylg==",
-          "dev": true,
-          "requires": {
-            "locate-path": "^3.0.0"
-          }
-        },
-        "get-stdin": {
-          "version": "6.0.0",
-          "resolved": "https://registry.npmjs.org/get-stdin/-/get-stdin-6.0.0.tgz",
-          "integrity": "sha512-jp4tHawyV7+fkkSKyvjuLZswblUtz+SQKzSWnBbii16BuZksJlU1wuBYXY75r+duh/llF1ur6oNwi+2ZzjKZ7g==",
-          "dev": true
-        },
-        "get-stream": {
-          "version": "4.1.0",
-          "resolved": "https://registry.npmjs.org/get-stream/-/get-stream-4.1.0.tgz",
-          "integrity": "sha512-GMat4EJ5161kIy2HevLlr4luNjBgvmj413KaQA7jt4V8B4RDsfpHk7WQ9GVqfYyyx8OS/L66Kox+rJRNklLK7w==",
-          "dev": true,
-          "requires": {
-            "pump": "^3.0.0"
-          }
-        },
-        "is-ci": {
-          "version": "2.0.0",
-          "resolved": "https://registry.npmjs.org/is-ci/-/is-ci-2.0.0.tgz",
-          "integrity": "sha512-YfJT7rkpQB0updsdHLGWrvhBJfcfzNNawYDNIyQXJz0IViGf75O8EBPKSdvw2rF+LGCsX4FZ8tcr3b19LcZq4w==",
-          "dev": true,
-          "requires": {
-            "ci-info": "^2.0.0"
-          }
-        },
-        "locate-path": {
-          "version": "3.0.0",
-          "resolved": "https://registry.npmjs.org/locate-path/-/locate-path-3.0.0.tgz",
-          "integrity": "sha512-7AO748wWnIhNqAuaty2ZWHkQHRSNfPVIsPIfwEOWO22AmaoVrWavlOcMR5nzTLNYvp36X220/maaRsrec1G65A==",
-          "dev": true,
-          "requires": {
-            "p-locate": "^3.0.0",
-            "path-exists": "^3.0.0"
-          }
-        },
-        "p-limit": {
-          "version": "2.1.0",
-          "resolved": "https://registry.npmjs.org/p-limit/-/p-limit-2.1.0.tgz",
-          "integrity": "sha512-NhURkNcrVB+8hNfLuysU8enY5xn2KXphsHBaC2YmRNTZRc7RWusw6apSpdEj3jo4CMb6W9nrF6tTnsJsJeyu6g==",
-          "dev": true,
-          "requires": {
-            "p-try": "^2.0.0"
-          }
-        },
-        "p-locate": {
-          "version": "3.0.0",
-          "resolved": "https://registry.npmjs.org/p-locate/-/p-locate-3.0.0.tgz",
-          "integrity": "sha512-x+12w/To+4GFfgJhBEpiDcLozRJGegY+Ei7/z0tSLkMmxGZNybVMSfWj9aJn8Z5Fc7dBUNJOOVgPv2H7IwulSQ==",
-          "dev": true,
-          "requires": {
-            "p-limit": "^2.0.0"
-          }
-        },
-        "p-try": {
-          "version": "2.0.0",
-          "resolved": "https://registry.npmjs.org/p-try/-/p-try-2.0.0.tgz",
-          "integrity": "sha512-hMp0onDKIajHfIkdRk3P4CdCmErkYAxxDtP3Wx/4nZ3aGlau2VKh3mZpcuFkH27WQkL/3WBCPOktzA9ZOAnMQQ==",
-          "dev": true
-        },
-        "parse-json": {
-          "version": "4.0.0",
-          "resolved": "https://registry.npmjs.org/parse-json/-/parse-json-4.0.0.tgz",
-          "integrity": "sha1-vjX1Qlvh9/bHRxhPmKeIy5lHfuA=",
-          "dev": true,
-          "requires": {
-            "error-ex": "^1.3.1",
-            "json-parse-better-errors": "^1.0.1"
-          }
-        },
-        "pkg-dir": {
-          "version": "3.0.0",
-          "resolved": "https://registry.npmjs.org/pkg-dir/-/pkg-dir-3.0.0.tgz",
-          "integrity": "sha512-/E57AYkoeQ25qkxMj5PBOVgF8Kiu/h7cYS30Z5+R7WaiCCBfLq58ZI/dSeaEKb9WVJV5n/03QwrN3IeWIFllvw==",
-          "dev": true,
-          "requires": {
-            "find-up": "^3.0.0"
-          }
-        },
-        "pump": {
-          "version": "3.0.0",
-          "resolved": "https://registry.npmjs.org/pump/-/pump-3.0.0.tgz",
-          "integrity": "sha512-LwZy+p3SFs1Pytd/jYct4wpv49HiYCqd9Rlc5ZVdk0V+8Yzv6jR5Blk3TRmPL1ft69TxP0IMZGJ+WPFU2BFhww==",
-          "dev": true,
-          "requires": {
-            "end-of-stream": "^1.1.0",
-            "once": "^1.3.1"
-          }
-        },
-        "read-pkg": {
-          "version": "4.0.1",
-          "resolved": "https://registry.npmjs.org/read-pkg/-/read-pkg-4.0.1.tgz",
-          "integrity": "sha1-ljYlN48+HE1IyFhytabsfV0JMjc=",
-          "dev": true,
-          "requires": {
-            "normalize-package-data": "^2.3.2",
-            "parse-json": "^4.0.0",
-            "pify": "^3.0.0"
-          }
-        },
-        "slash": {
-          "version": "2.0.0",
-          "resolved": "https://registry.npmjs.org/slash/-/slash-2.0.0.tgz",
-          "integrity": "sha512-ZYKh3Wh2z1PpEXWr0MpSBZ0V6mZHAQfYevttO11c51CaWjGTaadiKZ+wVt1PbMlDV5qhMFslpZCemhwOK7C89A==",
-          "dev": true
-        }
-      }
-    },
-    "iconv-lite": {
-      "version": "0.4.19",
-      "resolved": "https://registry.npmjs.org/iconv-lite/-/iconv-lite-0.4.19.tgz",
-      "integrity": "sha512-oTZqweIP51xaGPI4uPa56/Pri/480R+mo7SeU+YETByQNhDG55ycFyNLIgta9vXhILrxXDmF7ZGhqZIcuN0gJQ=="
-    },
-    "ieee754": {
-      "version": "1.1.10",
-      "resolved": "https://registry.npmjs.org/ieee754/-/ieee754-1.1.10.tgz",
-      "integrity": "sha512-byWFX8OyW/qeVxcY21r6Ncxl0ZYHgnf0cPup2h34eHXrCJbOp7IuqnJ4Q0omfyWl6Z++BTI6bByf31pZt7iRLg==",
-      "dev": true
-    },
-    "iferr": {
-      "version": "0.1.5",
-      "resolved": "https://registry.npmjs.org/iferr/-/iferr-0.1.5.tgz",
-      "integrity": "sha1-xg7taebY/bazEEofy8ocGS3FtQE=",
-      "dev": true
-    },
-    "ignore": {
-      "version": "3.3.10",
-      "resolved": "https://registry.npmjs.org/ignore/-/ignore-3.3.10.tgz",
-      "integrity": "sha512-Pgs951kaMm5GXP7MOvxERINe3gsaVjUWFm+UZPSq9xYriQAksyhg0csnS0KXSNRD5NmNdapXEpjxG49+AKh/ug==",
-      "dev": true
-    },
-    "ignore-walk": {
-      "version": "3.0.1",
-      "resolved": "https://registry.npmjs.org/ignore-walk/-/ignore-walk-3.0.1.tgz",
-      "integrity": "sha512-DTVlMx3IYPe0/JJcYP7Gxg7ttZZu3IInhuEhbchuqneY9wWe5Ojy2mXLBaQFUQmo0AW2r3qG7m1mg86js+gnlQ==",
-      "dev": true,
-      "requires": {
-        "minimatch": "^3.0.4"
-      }
-    },
-    "image-size": {
-      "version": "0.5.5",
-      "resolved": "https://registry.npmjs.org/image-size/-/image-size-0.5.5.tgz",
-      "integrity": "sha1-Cd/Uq50g4p6xw+gLiZA3jfnjy5w=",
-      "dev": true,
-      "optional": true
-    },
-    "import-cwd": {
-      "version": "2.1.0",
-      "resolved": "https://registry.npmjs.org/import-cwd/-/import-cwd-2.1.0.tgz",
-      "integrity": "sha1-qmzzbnInYShcs3HsZRn1PiQ1sKk=",
-      "dev": true,
-      "requires": {
-        "import-from": "^2.1.0"
-      }
-    },
-    "import-fresh": {
-      "version": "2.0.0",
-      "resolved": "https://registry.npmjs.org/import-fresh/-/import-fresh-2.0.0.tgz",
-      "integrity": "sha1-2BNVwVYS04bGH53dOSLUMEgipUY=",
-      "dev": true,
-      "requires": {
-        "caller-path": "^2.0.0",
-        "resolve-from": "^3.0.0"
-      }
-    },
-    "import-from": {
-      "version": "2.1.0",
-      "resolved": "https://registry.npmjs.org/import-from/-/import-from-2.1.0.tgz",
-      "integrity": "sha1-M1238qev/VOqpHHUuAId7ja387E=",
-      "dev": true,
-      "requires": {
-        "resolve-from": "^3.0.0"
-      }
-    },
-    "import-local": {
-      "version": "2.0.0",
-      "resolved": "https://registry.npmjs.org/import-local/-/import-local-2.0.0.tgz",
-      "integrity": "sha512-b6s04m3O+s3CGSbqDIyP4R6aAwAeYlVq9+WUWep6iHa8ETRf9yei1U48C5MmfJmV9AiLYYBKPMq/W+/WRpQmCQ==",
-      "dev": true,
-      "requires": {
-        "pkg-dir": "^3.0.0",
-        "resolve-cwd": "^2.0.0"
-      },
-      "dependencies": {
-        "find-up": {
-          "version": "3.0.0",
-          "resolved": "https://registry.npmjs.org/find-up/-/find-up-3.0.0.tgz",
-          "integrity": "sha512-1yD6RmLI1XBfxugvORwlck6f75tYL+iR0jqwsOrOxMZyGYqUuDhJ0l4AXdO1iX/FTs9cBAMEk1gWSEx1kSbylg==",
-          "dev": true,
-          "requires": {
-            "locate-path": "^3.0.0"
-          }
-        },
-        "locate-path": {
-          "version": "3.0.0",
-          "resolved": "https://registry.npmjs.org/locate-path/-/locate-path-3.0.0.tgz",
-          "integrity": "sha512-7AO748wWnIhNqAuaty2ZWHkQHRSNfPVIsPIfwEOWO22AmaoVrWavlOcMR5nzTLNYvp36X220/maaRsrec1G65A==",
-          "dev": true,
-          "requires": {
-            "p-locate": "^3.0.0",
-            "path-exists": "^3.0.0"
-          }
-        },
-        "p-limit": {
-          "version": "2.0.0",
-          "resolved": "https://registry.npmjs.org/p-limit/-/p-limit-2.0.0.tgz",
-          "integrity": "sha512-fl5s52lI5ahKCernzzIyAP0QAZbGIovtVHGwpcu1Jr/EpzLVDI2myISHwGqK7m8uQFugVWSrbxH7XnhGtvEc+A==",
-          "dev": true,
-          "requires": {
-            "p-try": "^2.0.0"
-          }
-        },
-        "p-locate": {
-          "version": "3.0.0",
-          "resolved": "https://registry.npmjs.org/p-locate/-/p-locate-3.0.0.tgz",
-          "integrity": "sha512-x+12w/To+4GFfgJhBEpiDcLozRJGegY+Ei7/z0tSLkMmxGZNybVMSfWj9aJn8Z5Fc7dBUNJOOVgPv2H7IwulSQ==",
-          "dev": true,
-          "requires": {
-            "p-limit": "^2.0.0"
-          }
-        },
-        "p-try": {
-          "version": "2.0.0",
-          "resolved": "https://registry.npmjs.org/p-try/-/p-try-2.0.0.tgz",
-          "integrity": "sha512-hMp0onDKIajHfIkdRk3P4CdCmErkYAxxDtP3Wx/4nZ3aGlau2VKh3mZpcuFkH27WQkL/3WBCPOktzA9ZOAnMQQ==",
-          "dev": true
-        },
-        "pkg-dir": {
-          "version": "3.0.0",
-          "resolved": "https://registry.npmjs.org/pkg-dir/-/pkg-dir-3.0.0.tgz",
-          "integrity": "sha512-/E57AYkoeQ25qkxMj5PBOVgF8Kiu/h7cYS30Z5+R7WaiCCBfLq58ZI/dSeaEKb9WVJV5n/03QwrN3IeWIFllvw==",
-          "dev": true,
-          "requires": {
-            "find-up": "^3.0.0"
-          }
-        }
-      }
-    },
-    "imurmurhash": {
-      "version": "0.1.4",
-      "resolved": "https://registry.npmjs.org/imurmurhash/-/imurmurhash-0.1.4.tgz",
-      "integrity": "sha1-khi5srkoojixPcT7a21XbyMUU+o=",
-      "dev": true
-    },
-    "in-publish": {
-      "version": "2.0.0",
-      "resolved": "https://registry.npmjs.org/in-publish/-/in-publish-2.0.0.tgz",
-      "integrity": "sha1-4g/146KvwmkDILbcVSaCqcf631E=",
-      "dev": true,
-      "optional": true
-    },
-    "indent-string": {
-      "version": "2.1.0",
-      "resolved": "https://registry.npmjs.org/indent-string/-/indent-string-2.1.0.tgz",
-      "integrity": "sha1-ji1INIdCEhtKghi3oTfppSBJ3IA=",
-      "dev": true,
-      "requires": {
-        "repeating": "^2.0.0"
-      }
-    },
-    "indexof": {
-      "version": "0.0.1",
-      "resolved": "https://registry.npmjs.org/indexof/-/indexof-0.0.1.tgz",
-      "integrity": "sha1-gtwzbSMrkGIXnQWrMpOmYFn9Q10=",
-      "dev": true
-    },
-    "inflight": {
-      "version": "1.0.6",
-      "resolved": "https://registry.npmjs.org/inflight/-/inflight-1.0.6.tgz",
-      "integrity": "sha1-Sb1jMdfQLQwJvJEKEHW6gWW1bfk=",
-      "requires": {
-        "once": "^1.3.0",
-        "wrappy": "1"
-      }
-    },
-    "inherits": {
-      "version": "2.0.3",
-      "resolved": "https://registry.npmjs.org/inherits/-/inherits-2.0.3.tgz",
-      "integrity": "sha1-Yzwsg+PaQqUC9SRmAiSA9CCCYd4="
-    },
-    "ini": {
-      "version": "1.3.5",
-      "resolved": "https://registry.npmjs.org/ini/-/ini-1.3.5.tgz",
-      "integrity": "sha512-RZY5huIKCMRWDUqZlEi72f/lmXKMvuszcMBduliQ3nnWbx9X/ZBQO7DijMEYS9EhHBb2qacRUMtC7svLwe0lcw=="
-    },
-    "inquirer": {
-      "version": "6.2.0",
-      "resolved": "https://registry.npmjs.org/inquirer/-/inquirer-6.2.0.tgz",
-      "integrity": "sha512-QIEQG4YyQ2UYZGDC4srMZ7BjHOmNk1lR2JQj5UknBapklm6WHA+VVH7N+sUdX3A7NeCfGF8o4X1S3Ao7nAcIeg==",
-      "dev": true,
-      "requires": {
-        "ansi-escapes": "^3.0.0",
-        "chalk": "^2.0.0",
-        "cli-cursor": "^2.1.0",
-        "cli-width": "^2.0.0",
-        "external-editor": "^3.0.0",
-        "figures": "^2.0.0",
-        "lodash": "^4.17.10",
-        "mute-stream": "0.0.7",
-        "run-async": "^2.2.0",
-        "rxjs": "^6.1.0",
-        "string-width": "^2.1.0",
-        "strip-ansi": "^4.0.0",
-        "through": "^2.3.6"
-      },
-      "dependencies": {
-        "ansi-regex": {
-          "version": "3.0.0",
-          "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-3.0.0.tgz",
-          "integrity": "sha1-7QMXwyIGT3lGbAKWa922Bas32Zg=",
-          "dev": true
-        },
-        "is-fullwidth-code-point": {
-          "version": "2.0.0",
-          "resolved": "https://registry.npmjs.org/is-fullwidth-code-point/-/is-fullwidth-code-point-2.0.0.tgz",
-          "integrity": "sha1-o7MKXE8ZkYMWeqq5O+764937ZU8=",
-          "dev": true
-        },
-        "lodash": {
-          "version": "4.17.11",
-          "resolved": "https://registry.npmjs.org/lodash/-/lodash-4.17.11.tgz",
-          "integrity": "sha512-cQKh8igo5QUhZ7lg38DYWAxMvjSAKG0A8wGSVimP07SIUEK2UO+arSRKbRZWtelMtN5V0Hkwh5ryOto/SshYIg==",
-          "dev": true
-        },
-        "string-width": {
-          "version": "2.1.1",
-          "resolved": "https://registry.npmjs.org/string-width/-/string-width-2.1.1.tgz",
-          "integrity": "sha512-nOqH59deCq9SRHlxq1Aw85Jnt4w6KvLKqWVik6oA9ZklXLNIOlqg4F2yrT1MVaTjAqvVwdfeZ7w7aCvJD7ugkw==",
-          "dev": true,
-          "requires": {
-            "is-fullwidth-code-point": "^2.0.0",
-            "strip-ansi": "^4.0.0"
-          }
-        },
-        "strip-ansi": {
-          "version": "4.0.0",
-          "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-4.0.0.tgz",
-          "integrity": "sha1-qEeQIusaw2iocTibY1JixQXuNo8=",
-          "dev": true,
-          "requires": {
-            "ansi-regex": "^3.0.0"
-          }
-        }
-      }
-    },
-    "install": {
-      "version": "0.12.2",
-      "resolved": "https://registry.npmjs.org/install/-/install-0.12.2.tgz",
-      "integrity": "sha512-+7thTb4Rpvs9mnlhHKGZFJbGOO6kyMgy+gg0sgM5vFzIFK0wrCYXqdlaM71Bi289DTuPHf61puMFsaZBcwDIrg=="
-    },
-    "internal-ip": {
-      "version": "3.0.1",
-      "resolved": "https://registry.npmjs.org/internal-ip/-/internal-ip-3.0.1.tgz",
-      "integrity": "sha512-NXXgESC2nNVtU+pqmC9e6R8B1GpKxzsAQhffvh5AL79qKnodd+L7tnEQmTiUAVngqLalPbSqRA7XGIEL5nCd0Q==",
-      "dev": true,
-      "requires": {
-        "default-gateway": "^2.6.0",
-        "ipaddr.js": "^1.5.2"
-      }
-    },
-    "interpret": {
-      "version": "1.1.0",
-      "resolved": "https://registry.npmjs.org/interpret/-/interpret-1.1.0.tgz",
-      "integrity": "sha1-ftGxQQxqDg94z5XTuEQMY/eLhhQ=",
-      "dev": true
-    },
-    "invariant": {
-      "version": "2.2.4",
-      "resolved": "https://registry.npmjs.org/invariant/-/invariant-2.2.4.tgz",
-      "integrity": "sha512-phJfQVBuaJM5raOpJjSfkiD6BpbCE4Ns//LaXl6wGYtUBY83nWS6Rf9tXm2e8VaK60JEjYldbPif/A2B1C2gNA==",
-      "requires": {
-        "loose-envify": "^1.0.0"
-      }
-    },
-    "invert-kv": {
-      "version": "1.0.0",
-      "resolved": "https://registry.npmjs.org/invert-kv/-/invert-kv-1.0.0.tgz",
-      "integrity": "sha1-EEqOSqym09jNFXqO+L+rLXo//bY=",
-      "dev": true
-    },
-    "ip": {
-      "version": "1.1.5",
-      "resolved": "https://registry.npmjs.org/ip/-/ip-1.1.5.tgz",
-      "integrity": "sha1-vd7XARQpCCjAoDnnLvJfWq7ENUo=",
-      "dev": true
-    },
-    "ip-regex": {
-      "version": "2.1.0",
-      "resolved": "https://registry.npmjs.org/ip-regex/-/ip-regex-2.1.0.tgz",
-      "integrity": "sha1-+ni/XS5pE8kRzp+BnuUUa7bYROk=",
-      "dev": true
-    },
-    "ipaddr.js": {
-      "version": "1.8.0",
-      "resolved": "https://registry.npmjs.org/ipaddr.js/-/ipaddr.js-1.8.0.tgz",
-      "integrity": "sha1-6qM9bd16zo9/b+DJygRA5wZzix4=",
-      "dev": true
-    },
-    "is-accessor-descriptor": {
-      "version": "1.0.0",
-      "resolved": "https://registry.npmjs.org/is-accessor-descriptor/-/is-accessor-descriptor-1.0.0.tgz",
-      "integrity": "sha512-m5hnHTkcVsPfqx3AKlyttIPb7J+XykHvJP2B9bZDjlhLIoEq4XoK64Vg7boZlVWYK6LUY94dYPEE7Lh0ZkZKcQ==",
-      "dev": true,
-      "requires": {
-        "kind-of": "^6.0.0"
-      },
-      "dependencies": {
-        "kind-of": {
-          "version": "6.0.2",
-          "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-6.0.2.tgz",
-          "integrity": "sha512-s5kLOcnH0XqDO+FvuaLX8DDjZ18CGFk7VygH40QoKPUQhW4e2rvM0rwUq0t8IQDOwYSeLK01U90OjzBTme2QqA==",
-          "dev": true
-        }
-      }
-    },
-    "is-arrayish": {
-      "version": "0.2.1",
-      "resolved": "https://registry.npmjs.org/is-arrayish/-/is-arrayish-0.2.1.tgz",
-      "integrity": "sha1-d8mYQFJ6qOyxqLppe4BkWnqSap0=",
-      "dev": true
-    },
-    "is-binary-path": {
-      "version": "1.0.1",
-      "resolved": "https://registry.npmjs.org/is-binary-path/-/is-binary-path-1.0.1.tgz",
-      "integrity": "sha1-dfFmQrSA8YenEcgUFh/TpKdlWJg=",
-      "dev": true,
-      "requires": {
-        "binary-extensions": "^1.0.0"
-      }
-    },
-    "is-buffer": {
-      "version": "1.1.6",
-      "resolved": "https://registry.npmjs.org/is-buffer/-/is-buffer-1.1.6.tgz",
-      "integrity": "sha512-NcdALwpXkTm5Zvvbk7owOUSvVvBKDgKP5/ewfXEznmQFfs4ZRmanOeKBTjRVjka3QFoN6XJ+9F3USqfHqTaU5w=="
-    },
-    "is-builtin-module": {
-      "version": "1.0.0",
-      "resolved": "https://registry.npmjs.org/is-builtin-module/-/is-builtin-module-1.0.0.tgz",
-      "integrity": "sha1-VAVy0096wxGfj3bDDLwbHgN6/74=",
-      "dev": true,
-      "requires": {
-        "builtin-modules": "^1.0.0"
-      }
-    },
-    "is-callable": {
-      "version": "1.1.4",
-      "resolved": "https://registry.npmjs.org/is-callable/-/is-callable-1.1.4.tgz",
-      "integrity": "sha512-r5p9sxJjYnArLjObpjA4xu5EKI3CuKHkJXMhT7kwbpUyIFD1n5PMAsoPvWnvtZiNz7LjkYDRZhd7FlI0eMijEA==",
-      "dev": true
-    },
-    "is-ci": {
-      "version": "1.0.10",
-      "resolved": "https://registry.npmjs.org/is-ci/-/is-ci-1.0.10.tgz",
-      "integrity": "sha1-9zkzayYyNlBhqdSCcM1WrjNpMY4=",
-      "dev": true,
-      "requires": {
-        "ci-info": "^1.0.0"
-      }
-    },
-    "is-data-descriptor": {
-      "version": "1.0.0",
-      "resolved": "https://registry.npmjs.org/is-data-descriptor/-/is-data-descriptor-1.0.0.tgz",
-      "integrity": "sha512-jbRXy1FmtAoCjQkVmIVYwuuqDFUbaOeDjmed1tOGPrsMhtJA4rD9tkgA0F1qJ3gRFRXcHYVkdeaP50Q5rE/jLQ==",
-      "dev": true,
-      "requires": {
-        "kind-of": "^6.0.0"
-      },
-      "dependencies": {
-        "kind-of": {
-          "version": "6.0.2",
-          "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-6.0.2.tgz",
-          "integrity": "sha512-s5kLOcnH0XqDO+FvuaLX8DDjZ18CGFk7VygH40QoKPUQhW4e2rvM0rwUq0t8IQDOwYSeLK01U90OjzBTme2QqA==",
-          "dev": true
-        }
-      }
-    },
-    "is-date-object": {
-      "version": "1.0.1",
-      "resolved": "https://registry.npmjs.org/is-date-object/-/is-date-object-1.0.1.tgz",
-      "integrity": "sha1-mqIOtq7rv/d/vTPnTKAbM1gdOhY=",
-      "dev": true
-    },
-    "is-descriptor": {
-      "version": "1.0.2",
-      "resolved": "https://registry.npmjs.org/is-descriptor/-/is-descriptor-1.0.2.tgz",
-      "integrity": "sha512-2eis5WqQGV7peooDyLmNEPUrps9+SXX5c9pL3xEB+4e9HnGuDa7mB7kHxHw4CbqS9k1T2hOH3miL8n8WtiYVtg==",
-      "dev": true,
-      "requires": {
-        "is-accessor-descriptor": "^1.0.0",
-        "is-data-descriptor": "^1.0.0",
-        "kind-of": "^6.0.2"
-      },
-      "dependencies": {
-        "kind-of": {
-          "version": "6.0.2",
-          "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-6.0.2.tgz",
-          "integrity": "sha512-s5kLOcnH0XqDO+FvuaLX8DDjZ18CGFk7VygH40QoKPUQhW4e2rvM0rwUq0t8IQDOwYSeLK01U90OjzBTme2QqA==",
-          "dev": true
-        }
-      }
-    },
-    "is-directory": {
-      "version": "0.3.1",
-      "resolved": "https://registry.npmjs.org/is-directory/-/is-directory-0.3.1.tgz",
-      "integrity": "sha1-YTObbyR1/Hcv2cnYP1yFddwVSuE=",
-      "dev": true
-    },
-    "is-dotfile": {
-      "version": "1.0.3",
-      "resolved": "https://registry.npmjs.org/is-dotfile/-/is-dotfile-1.0.3.tgz",
-      "integrity": "sha1-pqLzL/0t+wT1yiXs0Pa4PPeYoeE=",
-      "dev": true
-    },
-    "is-equal-shallow": {
-      "version": "0.1.3",
-      "resolved": "https://registry.npmjs.org/is-equal-shallow/-/is-equal-shallow-0.1.3.tgz",
-      "integrity": "sha1-IjgJj8Ih3gvPpdnqxMRdY4qhxTQ=",
-      "dev": true,
-      "requires": {
-        "is-primitive": "^2.0.0"
-      }
-    },
-    "is-extendable": {
-      "version": "0.1.1",
-      "resolved": "https://registry.npmjs.org/is-extendable/-/is-extendable-0.1.1.tgz",
-      "integrity": "sha1-YrEQ4omkcUGOPsNqYX1HLjAd/Ik=",
-      "dev": true
-    },
-    "is-extglob": {
-      "version": "1.0.0",
-      "resolved": "https://registry.npmjs.org/is-extglob/-/is-extglob-1.0.0.tgz",
-      "integrity": "sha1-rEaBd8SUNAWgkvyPKXYMb/xiBsA="
-    },
-    "is-finite": {
-      "version": "1.0.2",
-      "resolved": "https://registry.npmjs.org/is-finite/-/is-finite-1.0.2.tgz",
-      "integrity": "sha1-zGZ3aVYCvlUO8R6LSqYwU0K20Ko=",
-      "requires": {
-        "number-is-nan": "^1.0.0"
-      }
-    },
-    "is-fullwidth-code-point": {
-      "version": "1.0.0",
-      "resolved": "https://registry.npmjs.org/is-fullwidth-code-point/-/is-fullwidth-code-point-1.0.0.tgz",
-      "integrity": "sha1-754xOG8DGn8NZDr4L95QxFfvAMs=",
-      "dev": true,
-      "requires": {
-        "number-is-nan": "^1.0.0"
-      }
-    },
-    "is-generator-fn": {
-      "version": "2.0.0",
-      "resolved": "https://registry.npmjs.org/is-generator-fn/-/is-generator-fn-2.0.0.tgz",
-      "integrity": "sha512-elzyIdM7iKoFHzcrndIqjYomImhxrFRnGP3galODoII4TB9gI7mZ+FnlLQmmjf27SxHS2gKEeyhX5/+YRS6H9g==",
-      "dev": true
-    },
-    "is-glob": {
-      "version": "2.0.1",
-      "resolved": "https://registry.npmjs.org/is-glob/-/is-glob-2.0.1.tgz",
-      "integrity": "sha1-0Jb5JqPe1WAPP9/ZEZjLCIjC2GM=",
-      "requires": {
-        "is-extglob": "^1.0.0"
-      }
-    },
-    "is-installed-globally": {
-      "version": "0.1.0",
-      "resolved": "https://registry.npmjs.org/is-installed-globally/-/is-installed-globally-0.1.0.tgz",
-      "integrity": "sha1-Df2Y9akRFxbdU13aZJL2e/PSWoA=",
-      "dev": true,
-      "requires": {
-        "global-dirs": "^0.1.0",
-        "is-path-inside": "^1.0.0"
-      }
-    },
-    "is-invalid-path": {
-      "version": "0.1.0",
-      "resolved": "https://registry.npmjs.org/is-invalid-path/-/is-invalid-path-0.1.0.tgz",
-      "integrity": "sha1-MHqFWzzxqTi0TqcNLGEQYFNxTzQ=",
-      "requires": {
-        "is-glob": "^2.0.0"
-      }
-    },
-    "is-number": {
-      "version": "2.1.0",
-      "resolved": "https://registry.npmjs.org/is-number/-/is-number-2.1.0.tgz",
-      "integrity": "sha1-Afy7s5NGOlSPL0ZszhbezknbkI8=",
-      "dev": true,
-      "requires": {
-        "kind-of": "^3.0.2"
-      }
-    },
-    "is-odd": {
-      "version": "2.0.0",
-      "resolved": "https://registry.npmjs.org/is-odd/-/is-odd-2.0.0.tgz",
-      "integrity": "sha512-OTiixgpZAT1M4NHgS5IguFp/Vz2VI3U7Goh4/HA1adtwyLtSBrxYlcSYkhpAE07s4fKEcjrFxyvtQBND4vFQyQ==",
-      "dev": true,
-      "requires": {
-        "is-number": "^4.0.0"
-      },
-      "dependencies": {
-        "is-number": {
-          "version": "4.0.0",
-          "resolved": "https://registry.npmjs.org/is-number/-/is-number-4.0.0.tgz",
-          "integrity": "sha512-rSklcAIlf1OmFdyAqbnWTLVelsQ58uvZ66S/ZyawjWqIviTWCjg2PzVGw8WUA+nNuPTqb4wgA+NszrJ+08LlgQ==",
-          "dev": true
-        }
-      }
-    },
-    "is-path-cwd": {
-      "version": "1.0.0",
-      "resolved": "https://registry.npmjs.org/is-path-cwd/-/is-path-cwd-1.0.0.tgz",
-      "integrity": "sha1-0iXsIxMuie3Tj9p2dHLmLmXxEG0=",
-      "dev": true
-    },
-    "is-path-in-cwd": {
-      "version": "1.0.1",
-      "resolved": "https://registry.npmjs.org/is-path-in-cwd/-/is-path-in-cwd-1.0.1.tgz",
-      "integrity": "sha512-FjV1RTW48E7CWM7eE/J2NJvAEEVektecDBVBE5Hh3nM1Jd0kvhHtX68Pr3xsDf857xt3Y4AkwVULK1Vku62aaQ==",
-      "dev": true,
-      "requires": {
-        "is-path-inside": "^1.0.0"
-      }
-    },
-    "is-path-inside": {
-      "version": "1.0.1",
-      "resolved": "https://registry.npmjs.org/is-path-inside/-/is-path-inside-1.0.1.tgz",
-      "integrity": "sha1-jvW33lBDej/cprToZe96pVy0gDY=",
-      "dev": true,
-      "requires": {
-        "path-is-inside": "^1.0.1"
-      }
-    },
-    "is-plain-object": {
-      "version": "2.0.4",
-      "resolved": "https://registry.npmjs.org/is-plain-object/-/is-plain-object-2.0.4.tgz",
-      "integrity": "sha512-h5PpgXkWitc38BBMYawTYMWJHFZJVnBquFE57xFpjB8pJFiF6gZ+bU+WyI/yqXiFR5mdLsgYNaPe8uao6Uv9Og==",
-      "dev": true,
-      "requires": {
-        "isobject": "^3.0.1"
-      },
-      "dependencies": {
-        "isobject": {
-          "version": "3.0.1",
-          "resolved": "https://registry.npmjs.org/isobject/-/isobject-3.0.1.tgz",
-          "integrity": "sha1-TkMekrEalzFjaqH5yNHMvP2reN8=",
-          "dev": true
-        }
-      }
-    },
-    "is-posix-bracket": {
-      "version": "0.1.1",
-      "resolved": "https://registry.npmjs.org/is-posix-bracket/-/is-posix-bracket-0.1.1.tgz",
-      "integrity": "sha1-MzTceXdDaOkvAW5vvAqI9c1ua8Q=",
-      "dev": true
-    },
-    "is-primitive": {
-      "version": "2.0.0",
-      "resolved": "https://registry.npmjs.org/is-primitive/-/is-primitive-2.0.0.tgz",
-      "integrity": "sha1-IHurkWOEmcB7Kt8kCkGochADRXU=",
-      "dev": true
-    },
-    "is-promise": {
-      "version": "2.1.0",
-      "resolved": "https://registry.npmjs.org/is-promise/-/is-promise-2.1.0.tgz",
-      "integrity": "sha1-eaKp7OfwlugPNtKy87wWwf9L8/o=",
-      "dev": true
-    },
-    "is-redirect": {
-      "version": "1.0.0",
-      "resolved": "https://registry.npmjs.org/is-redirect/-/is-redirect-1.0.0.tgz",
-      "integrity": "sha1-HQPd7VO9jbDzDCbk+V02/HyH3CQ="
-    },
-    "is-regex": {
-      "version": "1.0.4",
-      "resolved": "https://registry.npmjs.org/is-regex/-/is-regex-1.0.4.tgz",
-      "integrity": "sha1-VRdIm1RwkbCTDglWVM7SXul+lJE=",
-      "dev": true,
-      "requires": {
-        "has": "^1.0.1"
-      }
-    },
-    "is-retry-allowed": {
-      "version": "1.1.0",
-      "resolved": "https://registry.npmjs.org/is-retry-allowed/-/is-retry-allowed-1.1.0.tgz",
-      "integrity": "sha1-EaBgVotnM5REAz0BJaYaINVk+zQ="
-    },
-    "is-stream": {
-      "version": "1.1.0",
-      "resolved": "https://registry.npmjs.org/is-stream/-/is-stream-1.1.0.tgz",
-      "integrity": "sha1-EtSj3U5o4Lec6428hBc66A2RykQ="
-    },
-    "is-symbol": {
-      "version": "1.0.2",
-      "resolved": "https://registry.npmjs.org/is-symbol/-/is-symbol-1.0.2.tgz",
-      "integrity": "sha512-HS8bZ9ox60yCJLH9snBpIwv9pYUAkcuLhSA1oero1UB5y9aiQpRA8y2ex945AOtCZL1lJDeIk3G5LthswI46Lw==",
-      "dev": true,
-      "requires": {
-        "has-symbols": "^1.0.0"
-      }
-    },
-    "is-typedarray": {
-      "version": "1.0.0",
-      "resolved": "https://registry.npmjs.org/is-typedarray/-/is-typedarray-1.0.0.tgz",
-      "integrity": "sha1-5HnICFjfDBsR3dppQPlgEfzaSpo="
-    },
-    "is-utf8": {
-      "version": "0.2.1",
-      "resolved": "https://registry.npmjs.org/is-utf8/-/is-utf8-0.2.1.tgz",
-      "integrity": "sha1-Sw2hRCEE0bM2NA6AeX6GXPOffXI=",
-      "dev": true
-    },
-    "is-valid-path": {
-      "version": "0.1.1",
-      "resolved": "https://registry.npmjs.org/is-valid-path/-/is-valid-path-0.1.1.tgz",
-      "integrity": "sha1-EQ+f90w39mPh7HkV60UfLbk6yd8=",
-      "requires": {
-        "is-invalid-path": "^0.1.0"
-      }
-    },
-    "is-windows": {
-      "version": "1.0.2",
-      "resolved": "https://registry.npmjs.org/is-windows/-/is-windows-1.0.2.tgz",
-      "integrity": "sha512-eXK1UInq2bPmjyX6e3VHIzMLobc4J94i4AWn+Hpq3OU5KkrRC96OAcR3PRJ/pGu6m8TRnBHP9dkXQVsT/COVIA==",
-      "dev": true
-    },
-    "is-wsl": {
-      "version": "1.1.0",
-      "resolved": "https://registry.npmjs.org/is-wsl/-/is-wsl-1.1.0.tgz",
-      "integrity": "sha1-HxbkqiKwTRM2tmGIpmrzxgDDpm0=",
-      "dev": true
-    },
-    "isarray": {
-      "version": "1.0.0",
-      "resolved": "https://registry.npmjs.org/isarray/-/isarray-1.0.0.tgz",
-      "integrity": "sha1-u5NdSFgsuhaMBoNJV6VKPgcSTxE=",
-      "dev": true
-    },
-    "isexe": {
-      "version": "2.0.0",
-      "resolved": "https://registry.npmjs.org/isexe/-/isexe-2.0.0.tgz",
-      "integrity": "sha1-6PvzdNxVb/iUehDcsFctYz8s+hA=",
-      "dev": true
-    },
-    "isobject": {
-      "version": "2.1.0",
-      "resolved": "https://registry.npmjs.org/isobject/-/isobject-2.1.0.tgz",
-      "integrity": "sha1-8GVWEJaj8dou9GJy+BXIQNh+DIk=",
-      "dev": true,
-      "requires": {
-        "isarray": "1.0.0"
-      }
-    },
-    "isstream": {
-      "version": "0.1.2",
-      "resolved": "https://registry.npmjs.org/isstream/-/isstream-0.1.2.tgz",
-      "integrity": "sha1-R+Y/evVa+m+S4VAOaQ64uFKcCZo="
-    },
-    "istanbul": {
-      "version": "0.4.5",
-      "resolved": "https://registry.npmjs.org/istanbul/-/istanbul-0.4.5.tgz",
-      "integrity": "sha1-ZcfXPUxNqE1POsMQuRj7C4Azczs=",
-      "dev": true,
-      "requires": {
-        "abbrev": "1.0.x",
-        "async": "1.x",
-        "escodegen": "1.8.x",
-        "esprima": "2.7.x",
-        "glob": "^5.0.15",
-        "handlebars": "^4.0.1",
-        "js-yaml": "3.x",
-        "mkdirp": "0.5.x",
-        "nopt": "3.x",
-        "once": "1.x",
-        "resolve": "1.1.x",
-        "supports-color": "^3.1.0",
-        "which": "^1.1.1",
-        "wordwrap": "^1.0.0"
-      },
-      "dependencies": {
-        "abbrev": {
-          "version": "1.0.9",
-          "resolved": "https://registry.npmjs.org/abbrev/-/abbrev-1.0.9.tgz",
-          "integrity": "sha1-kbR5JYinc4wl813W9jdSovh3YTU=",
-          "dev": true
-        },
-        "async": {
-          "version": "1.5.2",
-          "resolved": "https://registry.npmjs.org/async/-/async-1.5.2.tgz",
-          "integrity": "sha1-7GphrlZIDAw8skHJVhjiCJL5Zyo=",
-          "dev": true
-        },
-        "escodegen": {
-          "version": "1.8.1",
-          "resolved": "https://registry.npmjs.org/escodegen/-/escodegen-1.8.1.tgz",
-          "integrity": "sha1-WltTr0aTEQvrsIZ6o0MN07cKEBg=",
-          "dev": true,
-          "requires": {
-            "esprima": "^2.7.1",
-            "estraverse": "^1.9.1",
-            "esutils": "^2.0.2",
-            "optionator": "^0.8.1",
-            "source-map": "~0.2.0"
-          }
-        },
-        "esprima": {
-          "version": "2.7.3",
-          "resolved": "https://registry.npmjs.org/esprima/-/esprima-2.7.3.tgz",
-          "integrity": "sha1-luO3DVd59q1JzQMmc9HDEnZ7pYE=",
-          "dev": true
-        },
-        "estraverse": {
-          "version": "1.9.3",
-          "resolved": "https://registry.npmjs.org/estraverse/-/estraverse-1.9.3.tgz",
-          "integrity": "sha1-r2fy3JIlgkFZUJJgkaQAXSnJu0Q=",
-          "dev": true
-        },
-        "glob": {
-          "version": "5.0.15",
-          "resolved": "https://registry.npmjs.org/glob/-/glob-5.0.15.tgz",
-          "integrity": "sha1-G8k2ueAvSmA/zCIuz3Yz0wuLk7E=",
-          "dev": true,
-          "requires": {
-            "inflight": "^1.0.4",
-            "inherits": "2",
-            "minimatch": "2 || 3",
-            "once": "^1.3.0",
-            "path-is-absolute": "^1.0.0"
-          }
-        },
-        "has-flag": {
-          "version": "1.0.0",
-          "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-1.0.0.tgz",
-          "integrity": "sha1-nZ55MWXOAXoA8AQYxD+UKnsdEfo=",
-          "dev": true
-        },
-        "nopt": {
-          "version": "3.0.6",
-          "resolved": "https://registry.npmjs.org/nopt/-/nopt-3.0.6.tgz",
-          "integrity": "sha1-xkZdvwirzU2zWTF/eaxopkayj/k=",
-          "dev": true,
-          "requires": {
-            "abbrev": "1"
-          }
-        },
-        "resolve": {
-          "version": "1.1.7",
-          "resolved": "https://registry.npmjs.org/resolve/-/resolve-1.1.7.tgz",
-          "integrity": "sha1-IDEU2CrSxe2ejgQRs5ModeiJ6Xs=",
-          "dev": true
-        },
-        "source-map": {
-          "version": "0.2.0",
-          "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.2.0.tgz",
-          "integrity": "sha1-2rc/vPwrqBm03gO9b26qSBZLP50=",
-          "dev": true,
-          "optional": true,
-          "requires": {
-            "amdefine": ">=0.0.4"
-          }
-        },
-        "supports-color": {
-          "version": "3.2.3",
-          "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-3.2.3.tgz",
-          "integrity": "sha1-ZawFBLOVQXHYpklGsq48u4pfVPY=",
-          "dev": true,
-          "requires": {
-            "has-flag": "^1.0.0"
-          }
-        },
-        "wordwrap": {
-          "version": "1.0.0",
-          "resolved": "https://registry.npmjs.org/wordwrap/-/wordwrap-1.0.0.tgz",
-          "integrity": "sha1-J1hIEIkUVqQXHI0CJkQa3pDLyus=",
-          "dev": true
-        }
-      }
-    },
-    "istanbul-api": {
-      "version": "2.1.1",
-      "resolved": "https://registry.npmjs.org/istanbul-api/-/istanbul-api-2.1.1.tgz",
-      "integrity": "sha512-kVmYrehiwyeBAk/wE71tW6emzLiHGjYIiDrc8sfyty4F8M02/lrgXSm+R1kXysmF20zArvmZXjlE/mg24TVPJw==",
-      "dev": true,
-      "requires": {
-        "async": "^2.6.1",
-        "compare-versions": "^3.2.1",
-        "fileset": "^2.0.3",
-        "istanbul-lib-coverage": "^2.0.3",
-        "istanbul-lib-hook": "^2.0.3",
-        "istanbul-lib-instrument": "^3.1.0",
-        "istanbul-lib-report": "^2.0.4",
-        "istanbul-lib-source-maps": "^3.0.2",
-        "istanbul-reports": "^2.1.1",
-        "js-yaml": "^3.12.0",
-        "make-dir": "^1.3.0",
-        "minimatch": "^3.0.4",
-        "once": "^1.4.0"
-      },
-      "dependencies": {
-        "@babel/code-frame": {
-          "version": "7.0.0",
-          "resolved": "https://registry.npmjs.org/@babel/code-frame/-/code-frame-7.0.0.tgz",
-          "integrity": "sha512-OfC2uemaknXr87bdLUkWog7nYuliM9Ij5HUcajsVcMCpQrcLmtxRbVFTIqmcSkSeYRBFBRxs2FiUqFJDLdiebA==",
-          "dev": true,
-          "requires": {
-            "@babel/highlight": "^7.0.0"
-          }
-        },
-        "@babel/generator": {
-          "version": "7.3.3",
-          "resolved": "https://registry.npmjs.org/@babel/generator/-/generator-7.3.3.tgz",
-          "integrity": "sha512-aEADYwRRZjJyMnKN7llGIlircxTCofm3dtV5pmY6ob18MSIuipHpA2yZWkPlycwu5HJcx/pADS3zssd8eY7/6A==",
-          "dev": true,
-          "requires": {
-            "@babel/types": "^7.3.3",
-            "jsesc": "^2.5.1",
-            "lodash": "^4.17.11",
-            "source-map": "^0.5.0",
-            "trim-right": "^1.0.1"
-          }
-        },
-        "@babel/helper-function-name": {
-          "version": "7.1.0",
-          "resolved": "https://registry.npmjs.org/@babel/helper-function-name/-/helper-function-name-7.1.0.tgz",
-          "integrity": "sha512-A95XEoCpb3TO+KZzJ4S/5uW5fNe26DjBGqf1o9ucyLyCmi1dXq/B3c8iaWTfBk3VvetUxl16e8tIrd5teOCfGw==",
-          "dev": true,
-          "requires": {
-            "@babel/helper-get-function-arity": "^7.0.0",
-            "@babel/template": "^7.1.0",
-            "@babel/types": "^7.0.0"
-          }
-        },
-        "@babel/helper-get-function-arity": {
-          "version": "7.0.0",
-          "resolved": "https://registry.npmjs.org/@babel/helper-get-function-arity/-/helper-get-function-arity-7.0.0.tgz",
-          "integrity": "sha512-r2DbJeg4svYvt3HOS74U4eWKsUAMRH01Z1ds1zx8KNTPtpTL5JAsdFv8BNyOpVqdFhHkkRDIg5B4AsxmkjAlmQ==",
-          "dev": true,
-          "requires": {
-            "@babel/types": "^7.0.0"
-          }
-        },
-        "@babel/helper-split-export-declaration": {
-          "version": "7.0.0",
-          "resolved": "https://registry.npmjs.org/@babel/helper-split-export-declaration/-/helper-split-export-declaration-7.0.0.tgz",
-          "integrity": "sha512-MXkOJqva62dfC0w85mEf/LucPPS/1+04nmmRMPEBUB++hiiThQ2zPtX/mEWQ3mtzCEjIJvPY8nuwxXtQeQwUag==",
-          "dev": true,
-          "requires": {
-            "@babel/types": "^7.0.0"
-          }
-        },
-        "@babel/highlight": {
-          "version": "7.0.0",
-          "resolved": "https://registry.npmjs.org/@babel/highlight/-/highlight-7.0.0.tgz",
-          "integrity": "sha512-UFMC4ZeFC48Tpvj7C8UgLvtkaUuovQX+5xNWrsIoMG8o2z+XFKjKaN9iVmS84dPwVN00W4wPmqvYoZF3EGAsfw==",
-          "dev": true,
-          "requires": {
-            "chalk": "^2.0.0",
-            "esutils": "^2.0.2",
-            "js-tokens": "^4.0.0"
-          }
-        },
-        "@babel/parser": {
-          "version": "7.3.3",
-          "resolved": "https://registry.npmjs.org/@babel/parser/-/parser-7.3.3.tgz",
-          "integrity": "sha512-xsH1CJoln2r74hR+y7cg2B5JCPaTh+Hd+EbBRk9nWGSNspuo6krjhX0Om6RnRQuIvFq8wVXCLKH3kwKDYhanSg==",
-          "dev": true
-        },
-        "@babel/template": {
-          "version": "7.2.2",
-          "resolved": "https://registry.npmjs.org/@babel/template/-/template-7.2.2.tgz",
-          "integrity": "sha512-zRL0IMM02AUDwghf5LMSSDEz7sBCO2YnNmpg3uWTZj/v1rcG2BmQUvaGU8GhU8BvfMh1k2KIAYZ7Ji9KXPUg7g==",
-          "dev": true,
-          "requires": {
-            "@babel/code-frame": "^7.0.0",
-            "@babel/parser": "^7.2.2",
-            "@babel/types": "^7.2.2"
-          }
-        },
-        "@babel/traverse": {
-          "version": "7.2.3",
-          "resolved": "https://registry.npmjs.org/@babel/traverse/-/traverse-7.2.3.tgz",
-          "integrity": "sha512-Z31oUD/fJvEWVR0lNZtfgvVt512ForCTNKYcJBGbPb1QZfve4WGH8Wsy7+Mev33/45fhP/hwQtvgusNdcCMgSw==",
-          "dev": true,
-          "requires": {
-            "@babel/code-frame": "^7.0.0",
-            "@babel/generator": "^7.2.2",
-            "@babel/helper-function-name": "^7.1.0",
-            "@babel/helper-split-export-declaration": "^7.0.0",
-            "@babel/parser": "^7.2.3",
-            "@babel/types": "^7.2.2",
-            "debug": "^4.1.0",
-            "globals": "^11.1.0",
-            "lodash": "^4.17.10"
-          }
-        },
-        "@babel/types": {
-          "version": "7.3.3",
-          "resolved": "https://registry.npmjs.org/@babel/types/-/types-7.3.3.tgz",
-          "integrity": "sha512-2tACZ80Wg09UnPg5uGAOUvvInaqLk3l/IAhQzlxLQOIXacr6bMsra5SH6AWw/hIDRCSbCdHP2KzSOD+cT7TzMQ==",
-          "dev": true,
-          "requires": {
-            "esutils": "^2.0.2",
-            "lodash": "^4.17.11",
-            "to-fast-properties": "^2.0.0"
-          }
-        },
-        "async": {
-          "version": "2.6.2",
-          "resolved": "https://registry.npmjs.org/async/-/async-2.6.2.tgz",
-          "integrity": "sha512-H1qVYh1MYhEEFLsP97cVKqCGo7KfCyTt6uEWqsTBr9SO84oK9Uwbyd/yCW+6rKJLHksBNUVWZDAjfS+Ccx0Bbg==",
-          "dev": true,
-          "requires": {
-            "lodash": "^4.17.11"
-          }
-        },
-        "commander": {
-          "version": "2.17.1",
-          "resolved": "https://registry.npmjs.org/commander/-/commander-2.17.1.tgz",
-          "integrity": "sha512-wPMUt6FnH2yzG95SA6mzjQOEKUU3aLaDEmzs1ti+1E9h+CsrZghRlqEM/EJ4KscsQVG8uNN4uVreUeT8+drlgg==",
-          "dev": true,
-          "optional": true
-        },
-        "debug": {
-          "version": "4.1.1",
-          "resolved": "https://registry.npmjs.org/debug/-/debug-4.1.1.tgz",
-          "integrity": "sha512-pYAIzeRo8J6KPEaJ0VWOh5Pzkbw/RetuzehGM7QRRX5he4fPHx2rdKMB256ehJCkX+XRQm16eZLqLNS8RSZXZw==",
-          "dev": true,
-          "requires": {
-            "ms": "^2.1.1"
-          }
-        },
-        "globals": {
-          "version": "11.11.0",
-          "resolved": "https://registry.npmjs.org/globals/-/globals-11.11.0.tgz",
-          "integrity": "sha512-WHq43gS+6ufNOEqlrDBxVEbb8ntfXrfAUU2ZOpCxrBdGKW3gyv8mCxAfIBD0DroPKGrJ2eSsXsLtY9MPntsyTw==",
-          "dev": true
-        },
-        "handlebars": {
-          "version": "4.1.0",
-          "resolved": "https://registry.npmjs.org/handlebars/-/handlebars-4.1.0.tgz",
-          "integrity": "sha512-l2jRuU1NAWK6AW5qqcTATWQJvNPEwkM7NEKSiv/gqOsoSQbVoWyqVEY5GS+XPQ88zLNmqASRpzfdm8d79hJS+w==",
-          "dev": true,
-          "requires": {
-            "async": "^2.5.0",
-            "optimist": "^0.6.1",
-            "source-map": "^0.6.1",
-            "uglify-js": "^3.1.4"
-          },
-          "dependencies": {
-            "source-map": {
-              "version": "0.6.1",
-              "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.6.1.tgz",
-              "integrity": "sha512-UjgapumWlbMhkBgzT7Ykc5YXUT46F0iKu8SGXq0bcwP5dz/h0Plj6enJqjz1Zbq2l5WaqYnrVbwWOWMyF3F47g==",
-              "dev": true
-            }
-          }
-        },
-        "istanbul-lib-coverage": {
-          "version": "2.0.3",
-          "resolved": "https://registry.npmjs.org/istanbul-lib-coverage/-/istanbul-lib-coverage-2.0.3.tgz",
-          "integrity": "sha512-dKWuzRGCs4G+67VfW9pBFFz2Jpi4vSp/k7zBcJ888ofV5Mi1g5CUML5GvMvV6u9Cjybftu+E8Cgp+k0dI1E5lw==",
-          "dev": true
-        },
-        "istanbul-lib-instrument": {
-          "version": "3.1.0",
-          "resolved": "https://registry.npmjs.org/istanbul-lib-instrument/-/istanbul-lib-instrument-3.1.0.tgz",
-          "integrity": "sha512-ooVllVGT38HIk8MxDj/OIHXSYvH+1tq/Vb38s8ixt9GoJadXska4WkGY+0wkmtYCZNYtaARniH/DixUGGLZ0uA==",
-          "dev": true,
-          "requires": {
-            "@babel/generator": "^7.0.0",
-            "@babel/parser": "^7.0.0",
-            "@babel/template": "^7.0.0",
-            "@babel/traverse": "^7.0.0",
-            "@babel/types": "^7.0.0",
-            "istanbul-lib-coverage": "^2.0.3",
-            "semver": "^5.5.0"
-          }
-        },
-        "istanbul-reports": {
-          "version": "2.1.1",
-          "resolved": "https://registry.npmjs.org/istanbul-reports/-/istanbul-reports-2.1.1.tgz",
-          "integrity": "sha512-FzNahnidyEPBCI0HcufJoSEoKykesRlFcSzQqjH9x0+LC8tnnE/p/90PBLu8iZTxr8yYZNyTtiAujUqyN+CIxw==",
-          "dev": true,
-          "requires": {
-            "handlebars": "^4.1.0"
-          }
-        },
-        "js-tokens": {
-          "version": "4.0.0",
-          "resolved": "https://registry.npmjs.org/js-tokens/-/js-tokens-4.0.0.tgz",
-          "integrity": "sha512-RdJUflcE3cUzKiMqQgsCu06FPu9UdIJO0beYbPhHN4k6apgJtifcoCtT9bcxOpYBtpD2kCM6Sbzg4CausW/PKQ==",
-          "dev": true
-        },
-        "js-yaml": {
-          "version": "3.12.1",
-          "resolved": "https://registry.npmjs.org/js-yaml/-/js-yaml-3.12.1.tgz",
-          "integrity": "sha512-um46hB9wNOKlwkHgiuyEVAybXBjwFUV0Z/RaHJblRd9DXltue9FTYvzCr9ErQrK9Adz5MU4gHWVaNUfdmrC8qA==",
-          "dev": true,
-          "requires": {
-            "argparse": "^1.0.7",
-            "esprima": "^4.0.0"
-          }
-        },
-        "jsesc": {
-          "version": "2.5.2",
-          "resolved": "https://registry.npmjs.org/jsesc/-/jsesc-2.5.2.tgz",
-          "integrity": "sha512-OYu7XEzjkCQ3C5Ps3QIZsQfNpqoJyZZA99wd9aWd05NCtC5pWOkShK2mkL6HXQR6/Cy2lbNdPlZBpuQHXE63gA==",
-          "dev": true
-        },
-        "lodash": {
-          "version": "4.17.11",
-          "resolved": "https://registry.npmjs.org/lodash/-/lodash-4.17.11.tgz",
-          "integrity": "sha512-cQKh8igo5QUhZ7lg38DYWAxMvjSAKG0A8wGSVimP07SIUEK2UO+arSRKbRZWtelMtN5V0Hkwh5ryOto/SshYIg==",
-          "dev": true
-        },
-        "make-dir": {
-          "version": "1.3.0",
-          "resolved": "https://registry.npmjs.org/make-dir/-/make-dir-1.3.0.tgz",
-          "integrity": "sha512-2w31R7SJtieJJnQtGc7RVL2StM2vGYVfqUOvUDxH6bC6aJTxPxTF0GnIgCyu7tjockiUWAYQRbxa7vKn34s5sQ==",
-          "dev": true,
-          "requires": {
-            "pify": "^3.0.0"
-          }
-        },
-        "ms": {
-          "version": "2.1.1",
-          "resolved": "https://registry.npmjs.org/ms/-/ms-2.1.1.tgz",
-          "integrity": "sha512-tgp+dl5cGk28utYktBsrFqA7HKgrhgPsg6Z/EfhWI4gl1Hwq8B/GmY/0oXZ6nF8hDVesS/FpnYaD/kOWhYQvyg==",
-          "dev": true
-        },
-        "to-fast-properties": {
-          "version": "2.0.0",
-          "resolved": "https://registry.npmjs.org/to-fast-properties/-/to-fast-properties-2.0.0.tgz",
-          "integrity": "sha1-3F5pjL0HkmW8c+A3doGk5Og/YW4=",
-          "dev": true
-        },
-        "uglify-js": {
-          "version": "3.4.9",
-          "resolved": "https://registry.npmjs.org/uglify-js/-/uglify-js-3.4.9.tgz",
-          "integrity": "sha512-8CJsbKOtEbnJsTyv6LE6m6ZKniqMiFWmm9sRbopbkGs3gMPPfd3Fh8iIA4Ykv5MgaTbqHr4BaoGLJLZNhsrW1Q==",
-          "dev": true,
-          "optional": true,
-          "requires": {
-            "commander": "~2.17.1",
-            "source-map": "~0.6.1"
-          },
-          "dependencies": {
-            "source-map": {
-              "version": "0.6.1",
-              "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.6.1.tgz",
-              "integrity": "sha512-UjgapumWlbMhkBgzT7Ykc5YXUT46F0iKu8SGXq0bcwP5dz/h0Plj6enJqjz1Zbq2l5WaqYnrVbwWOWMyF3F47g==",
-              "dev": true,
-              "optional": true
-            }
-          }
-        }
-      }
-    },
-    "istanbul-instrumenter-loader": {
-      "version": "3.0.1",
-      "resolved": "https://registry.npmjs.org/istanbul-instrumenter-loader/-/istanbul-instrumenter-loader-3.0.1.tgz",
-      "integrity": "sha512-a5SPObZgS0jB/ixaKSMdn6n/gXSrK2S6q/UfRJBT3e6gQmVjwZROTODQsYW5ZNwOu78hG62Y3fWlebaVOL0C+w==",
-      "dev": true,
-      "requires": {
-        "convert-source-map": "^1.5.0",
-        "istanbul-lib-instrument": "^1.7.3",
-        "loader-utils": "^1.1.0",
-        "schema-utils": "^0.3.0"
-      },
-      "dependencies": {
-        "ajv": {
-          "version": "5.5.2",
-          "resolved": "https://registry.npmjs.org/ajv/-/ajv-5.5.2.tgz",
-          "integrity": "sha1-c7Xuyj+rZT49P5Qis0GtQiBdyWU=",
-          "dev": true,
-          "requires": {
-            "co": "^4.6.0",
-            "fast-deep-equal": "^1.0.0",
-            "fast-json-stable-stringify": "^2.0.0",
-            "json-schema-traverse": "^0.3.0"
-          }
-        },
-        "schema-utils": {
-          "version": "0.3.0",
-          "resolved": "https://registry.npmjs.org/schema-utils/-/schema-utils-0.3.0.tgz",
-          "integrity": "sha1-9YdyIs4+kx7a4DnxfrNxbnE3+M8=",
-          "dev": true,
-          "requires": {
-            "ajv": "^5.0.0"
-          }
-        }
-      }
-    },
-    "istanbul-lib-coverage": {
-      "version": "1.2.0",
-      "resolved": "https://registry.npmjs.org/istanbul-lib-coverage/-/istanbul-lib-coverage-1.2.0.tgz",
-      "integrity": "sha512-GvgM/uXRwm+gLlvkWHTjDAvwynZkL9ns15calTrmhGgowlwJBbWMYzWbKqE2DT6JDP1AFXKa+Zi0EkqNCUqY0A=="
-    },
-    "istanbul-lib-hook": {
-      "version": "2.0.3",
-      "resolved": "https://registry.npmjs.org/istanbul-lib-hook/-/istanbul-lib-hook-2.0.3.tgz",
-      "integrity": "sha512-CLmEqwEhuCYtGcpNVJjLV1DQyVnIqavMLFHV/DP+np/g3qvdxu3gsPqYoJMXm15sN84xOlckFB3VNvRbf5yEgA==",
-      "dev": true,
-      "requires": {
-        "append-transform": "^1.0.0"
-      }
-    },
-    "istanbul-lib-instrument": {
-      "version": "1.10.1",
-      "resolved": "https://registry.npmjs.org/istanbul-lib-instrument/-/istanbul-lib-instrument-1.10.1.tgz",
-      "integrity": "sha512-1dYuzkOCbuR5GRJqySuZdsmsNKPL3PTuyPevQfoCXJePT9C8y1ga75neU+Tuy9+yS3G/dgx8wgOmp2KLpgdoeQ==",
-      "requires": {
-        "babel-generator": "^6.18.0",
-        "babel-template": "^6.16.0",
-        "babel-traverse": "^6.18.0",
-        "babel-types": "^6.18.0",
-        "babylon": "^6.18.0",
-        "istanbul-lib-coverage": "^1.2.0",
-        "semver": "^5.3.0"
-      }
-    },
-    "istanbul-lib-report": {
-      "version": "2.0.4",
-      "resolved": "https://registry.npmjs.org/istanbul-lib-report/-/istanbul-lib-report-2.0.4.tgz",
-      "integrity": "sha512-sOiLZLAWpA0+3b5w5/dq0cjm2rrNdAfHWaGhmn7XEFW6X++IV9Ohn+pnELAl9K3rfpaeBfbmH9JU5sejacdLeA==",
-      "dev": true,
-      "requires": {
-        "istanbul-lib-coverage": "^2.0.3",
-        "make-dir": "^1.3.0",
-        "supports-color": "^6.0.0"
-      },
-      "dependencies": {
-        "has-flag": {
-          "version": "3.0.0",
-          "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-3.0.0.tgz",
-          "integrity": "sha1-tdRU3CGZriJWmfNGfloH87lVuv0=",
-          "dev": true
-        },
-        "istanbul-lib-coverage": {
-          "version": "2.0.3",
-          "resolved": "https://registry.npmjs.org/istanbul-lib-coverage/-/istanbul-lib-coverage-2.0.3.tgz",
-          "integrity": "sha512-dKWuzRGCs4G+67VfW9pBFFz2Jpi4vSp/k7zBcJ888ofV5Mi1g5CUML5GvMvV6u9Cjybftu+E8Cgp+k0dI1E5lw==",
-          "dev": true
-        },
-        "make-dir": {
-          "version": "1.3.0",
-          "resolved": "https://registry.npmjs.org/make-dir/-/make-dir-1.3.0.tgz",
-          "integrity": "sha512-2w31R7SJtieJJnQtGc7RVL2StM2vGYVfqUOvUDxH6bC6aJTxPxTF0GnIgCyu7tjockiUWAYQRbxa7vKn34s5sQ==",
-          "dev": true,
-          "requires": {
-            "pify": "^3.0.0"
-          }
-        },
-        "supports-color": {
-          "version": "6.1.0",
-          "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-6.1.0.tgz",
-          "integrity": "sha512-qe1jfm1Mg7Nq/NSh6XE24gPXROEVsWHxC1LIx//XNlD9iw7YZQGjZNjYN7xGaEG6iKdA8EtNFW6R0gjnVXp+wQ==",
-          "dev": true,
-          "requires": {
-            "has-flag": "^3.0.0"
-          }
-        }
-      }
-    },
-    "istanbul-lib-source-maps": {
-      "version": "3.0.2",
-      "resolved": "https://registry.npmjs.org/istanbul-lib-source-maps/-/istanbul-lib-source-maps-3.0.2.tgz",
-      "integrity": "sha512-JX4v0CiKTGp9fZPmoxpu9YEkPbEqCqBbO3403VabKjH+NRXo72HafD5UgnjTEqHL2SAjaZK1XDuDOkn6I5QVfQ==",
-      "dev": true,
-      "requires": {
-        "debug": "^4.1.1",
-        "istanbul-lib-coverage": "^2.0.3",
-        "make-dir": "^1.3.0",
-        "rimraf": "^2.6.2",
-        "source-map": "^0.6.1"
-      },
-      "dependencies": {
-        "debug": {
-          "version": "4.1.1",
-          "resolved": "https://registry.npmjs.org/debug/-/debug-4.1.1.tgz",
-          "integrity": "sha512-pYAIzeRo8J6KPEaJ0VWOh5Pzkbw/RetuzehGM7QRRX5he4fPHx2rdKMB256ehJCkX+XRQm16eZLqLNS8RSZXZw==",
-          "dev": true,
-          "requires": {
-            "ms": "^2.1.1"
-          }
-        },
-        "istanbul-lib-coverage": {
-          "version": "2.0.3",
-          "resolved": "https://registry.npmjs.org/istanbul-lib-coverage/-/istanbul-lib-coverage-2.0.3.tgz",
-          "integrity": "sha512-dKWuzRGCs4G+67VfW9pBFFz2Jpi4vSp/k7zBcJ888ofV5Mi1g5CUML5GvMvV6u9Cjybftu+E8Cgp+k0dI1E5lw==",
-          "dev": true
-        },
-        "make-dir": {
-          "version": "1.3.0",
-          "resolved": "https://registry.npmjs.org/make-dir/-/make-dir-1.3.0.tgz",
-          "integrity": "sha512-2w31R7SJtieJJnQtGc7RVL2StM2vGYVfqUOvUDxH6bC6aJTxPxTF0GnIgCyu7tjockiUWAYQRbxa7vKn34s5sQ==",
-          "dev": true,
-          "requires": {
-            "pify": "^3.0.0"
-          }
-        },
-        "ms": {
-          "version": "2.1.1",
-          "resolved": "https://registry.npmjs.org/ms/-/ms-2.1.1.tgz",
-          "integrity": "sha512-tgp+dl5cGk28utYktBsrFqA7HKgrhgPsg6Z/EfhWI4gl1Hwq8B/GmY/0oXZ6nF8hDVesS/FpnYaD/kOWhYQvyg==",
-          "dev": true
-        },
-        "source-map": {
-          "version": "0.6.1",
-          "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.6.1.tgz",
-          "integrity": "sha512-UjgapumWlbMhkBgzT7Ykc5YXUT46F0iKu8SGXq0bcwP5dz/h0Plj6enJqjz1Zbq2l5WaqYnrVbwWOWMyF3F47g==",
-          "dev": true
-        }
-      }
-    },
-    "istanbul-reports": {
-      "version": "2.0.1",
-      "resolved": "https://registry.npmjs.org/istanbul-reports/-/istanbul-reports-2.0.1.tgz",
-      "integrity": "sha512-CT0QgMBJqs6NJLF678ZHcquUAZIoBIUNzdJrRJfpkI9OnzG6MkUfHxbJC3ln981dMswC7/B1mfX3LNkhgJxsuw==",
-      "dev": true,
-      "requires": {
-        "handlebars": "^4.0.11"
-      }
-    },
-    "jest": {
-      "version": "24.1.0",
-      "resolved": "https://registry.npmjs.org/jest/-/jest-24.1.0.tgz",
-      "integrity": "sha512-+q91L65kypqklvlRFfXfdzUKyngQLOcwGhXQaLmVHv+d09LkNXuBuGxlofTFW42XMzu3giIcChchTsCNUjQ78A==",
-      "dev": true,
-      "requires": {
-        "import-local": "^2.0.0",
-        "jest-cli": "^24.1.0"
-      },
-      "dependencies": {
-        "@babel/code-frame": {
-          "version": "7.0.0",
-          "resolved": "https://registry.npmjs.org/@babel/code-frame/-/code-frame-7.0.0.tgz",
-          "integrity": "sha512-OfC2uemaknXr87bdLUkWog7nYuliM9Ij5HUcajsVcMCpQrcLmtxRbVFTIqmcSkSeYRBFBRxs2FiUqFJDLdiebA==",
-          "dev": true,
-          "requires": {
-            "@babel/highlight": "^7.0.0"
-          }
-        },
-        "@babel/generator": {
-          "version": "7.3.3",
-          "resolved": "https://registry.npmjs.org/@babel/generator/-/generator-7.3.3.tgz",
-          "integrity": "sha512-aEADYwRRZjJyMnKN7llGIlircxTCofm3dtV5pmY6ob18MSIuipHpA2yZWkPlycwu5HJcx/pADS3zssd8eY7/6A==",
-          "dev": true,
-          "requires": {
-            "@babel/types": "^7.3.3",
-            "jsesc": "^2.5.1",
-            "lodash": "^4.17.11",
-            "source-map": "^0.5.0",
-            "trim-right": "^1.0.1"
-          }
-        },
-        "@babel/helper-function-name": {
-          "version": "7.1.0",
-          "resolved": "https://registry.npmjs.org/@babel/helper-function-name/-/helper-function-name-7.1.0.tgz",
-          "integrity": "sha512-A95XEoCpb3TO+KZzJ4S/5uW5fNe26DjBGqf1o9ucyLyCmi1dXq/B3c8iaWTfBk3VvetUxl16e8tIrd5teOCfGw==",
-          "dev": true,
-          "requires": {
-            "@babel/helper-get-function-arity": "^7.0.0",
-            "@babel/template": "^7.1.0",
-            "@babel/types": "^7.0.0"
-          }
-        },
-        "@babel/helper-get-function-arity": {
-          "version": "7.0.0",
-          "resolved": "https://registry.npmjs.org/@babel/helper-get-function-arity/-/helper-get-function-arity-7.0.0.tgz",
-          "integrity": "sha512-r2DbJeg4svYvt3HOS74U4eWKsUAMRH01Z1ds1zx8KNTPtpTL5JAsdFv8BNyOpVqdFhHkkRDIg5B4AsxmkjAlmQ==",
-          "dev": true,
-          "requires": {
-            "@babel/types": "^7.0.0"
-          }
-        },
-        "@babel/helper-split-export-declaration": {
-          "version": "7.0.0",
-          "resolved": "https://registry.npmjs.org/@babel/helper-split-export-declaration/-/helper-split-export-declaration-7.0.0.tgz",
-          "integrity": "sha512-MXkOJqva62dfC0w85mEf/LucPPS/1+04nmmRMPEBUB++hiiThQ2zPtX/mEWQ3mtzCEjIJvPY8nuwxXtQeQwUag==",
-          "dev": true,
-          "requires": {
-            "@babel/types": "^7.0.0"
-          }
-        },
-        "@babel/highlight": {
-          "version": "7.0.0",
-          "resolved": "https://registry.npmjs.org/@babel/highlight/-/highlight-7.0.0.tgz",
-          "integrity": "sha512-UFMC4ZeFC48Tpvj7C8UgLvtkaUuovQX+5xNWrsIoMG8o2z+XFKjKaN9iVmS84dPwVN00W4wPmqvYoZF3EGAsfw==",
-          "dev": true,
-          "requires": {
-            "chalk": "^2.0.0",
-            "esutils": "^2.0.2",
-            "js-tokens": "^4.0.0"
-          }
-        },
-        "@babel/parser": {
-          "version": "7.3.3",
-          "resolved": "https://registry.npmjs.org/@babel/parser/-/parser-7.3.3.tgz",
-          "integrity": "sha512-xsH1CJoln2r74hR+y7cg2B5JCPaTh+Hd+EbBRk9nWGSNspuo6krjhX0Om6RnRQuIvFq8wVXCLKH3kwKDYhanSg==",
-          "dev": true
-        },
-        "@babel/template": {
-          "version": "7.2.2",
-          "resolved": "https://registry.npmjs.org/@babel/template/-/template-7.2.2.tgz",
-          "integrity": "sha512-zRL0IMM02AUDwghf5LMSSDEz7sBCO2YnNmpg3uWTZj/v1rcG2BmQUvaGU8GhU8BvfMh1k2KIAYZ7Ji9KXPUg7g==",
-          "dev": true,
-          "requires": {
-            "@babel/code-frame": "^7.0.0",
-            "@babel/parser": "^7.2.2",
-            "@babel/types": "^7.2.2"
-          }
-        },
-        "@babel/traverse": {
-          "version": "7.2.3",
-          "resolved": "https://registry.npmjs.org/@babel/traverse/-/traverse-7.2.3.tgz",
-          "integrity": "sha512-Z31oUD/fJvEWVR0lNZtfgvVt512ForCTNKYcJBGbPb1QZfve4WGH8Wsy7+Mev33/45fhP/hwQtvgusNdcCMgSw==",
-          "dev": true,
-          "requires": {
-            "@babel/code-frame": "^7.0.0",
-            "@babel/generator": "^7.2.2",
-            "@babel/helper-function-name": "^7.1.0",
-            "@babel/helper-split-export-declaration": "^7.0.0",
-            "@babel/parser": "^7.2.3",
-            "@babel/types": "^7.2.2",
-            "debug": "^4.1.0",
-            "globals": "^11.1.0",
-            "lodash": "^4.17.10"
-          }
-        },
-        "@babel/types": {
-          "version": "7.3.3",
-          "resolved": "https://registry.npmjs.org/@babel/types/-/types-7.3.3.tgz",
-          "integrity": "sha512-2tACZ80Wg09UnPg5uGAOUvvInaqLk3l/IAhQzlxLQOIXacr6bMsra5SH6AWw/hIDRCSbCdHP2KzSOD+cT7TzMQ==",
-          "dev": true,
-          "requires": {
-            "esutils": "^2.0.2",
-            "lodash": "^4.17.11",
-            "to-fast-properties": "^2.0.0"
-          }
-        },
-        "ansi-regex": {
-          "version": "4.0.0",
-          "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-4.0.0.tgz",
-          "integrity": "sha512-iB5Dda8t/UqpPI/IjsejXu5jOGDrzn41wJyljwPH65VCIbk6+1BzFIMJGFwTNrYXT1CrD+B4l19U7awiQ8rk7w==",
-          "dev": true
-        },
-        "arr-diff": {
-          "version": "4.0.0",
-          "resolved": "https://registry.npmjs.org/arr-diff/-/arr-diff-4.0.0.tgz",
-          "integrity": "sha1-1kYQdP6/7HHn4VI1dhoyml3HxSA=",
-          "dev": true
-        },
-        "array-unique": {
-          "version": "0.3.2",
-          "resolved": "https://registry.npmjs.org/array-unique/-/array-unique-0.3.2.tgz",
-          "integrity": "sha1-qJS3XUvE9s1nnvMkSp/Y9Gri1Cg=",
-          "dev": true
-        },
-        "braces": {
-          "version": "2.3.2",
-          "resolved": "https://registry.npmjs.org/braces/-/braces-2.3.2.tgz",
-          "integrity": "sha512-aNdbnj9P8PjdXU4ybaWLK2IF3jc/EoDYbC7AazW6to3TRsfXxscC9UXOB5iDiEQrkyIbWp2SLQda4+QAa7nc3w==",
-          "dev": true,
-          "requires": {
-            "arr-flatten": "^1.1.0",
-            "array-unique": "^0.3.2",
-            "extend-shallow": "^2.0.1",
-            "fill-range": "^4.0.0",
-            "isobject": "^3.0.1",
-            "repeat-element": "^1.1.2",
-            "snapdragon": "^0.8.1",
-            "snapdragon-node": "^2.0.1",
-            "split-string": "^3.0.2",
-            "to-regex": "^3.0.1"
-          },
-          "dependencies": {
-            "extend-shallow": {
-              "version": "2.0.1",
-              "resolved": "https://registry.npmjs.org/extend-shallow/-/extend-shallow-2.0.1.tgz",
-              "integrity": "sha1-Ua99YUrZqfYQ6huvu5idaxxWiQ8=",
-              "dev": true,
-              "requires": {
-                "is-extendable": "^0.1.0"
-              }
-            }
-          }
-        },
-        "camelcase": {
-          "version": "5.0.0",
-          "resolved": "https://registry.npmjs.org/camelcase/-/camelcase-5.0.0.tgz",
-          "integrity": "sha512-faqwZqnWxbxn+F1d399ygeamQNy3lPp/H9H6rNrqYh4FSVCtcY+3cub1MxA8o9mDd55mM8Aghuu/kuyYA6VTsA==",
-          "dev": true
-        },
-        "ci-info": {
-          "version": "2.0.0",
-          "resolved": "https://registry.npmjs.org/ci-info/-/ci-info-2.0.0.tgz",
-          "integrity": "sha512-5tK7EtrZ0N+OLFMthtqOj4fI2Jeb88C4CAZPu25LDVUgXJ0A3Js4PMGqrn0JU1W0Mh1/Z8wZzYPxqUrXeBboCQ==",
-          "dev": true
-        },
-        "cliui": {
-          "version": "4.1.0",
-          "resolved": "https://registry.npmjs.org/cliui/-/cliui-4.1.0.tgz",
-          "integrity": "sha512-4FG+RSG9DL7uEwRUZXZn3SS34DiDPfzP0VOiEwtUWlE+AR2EIg+hSyvrIgUUfhdgR/UkAeW2QHgeP+hWrXs7jQ==",
-          "dev": true,
-          "requires": {
-            "string-width": "^2.1.1",
-            "strip-ansi": "^4.0.0",
-            "wrap-ansi": "^2.0.0"
-          },
-          "dependencies": {
-            "ansi-regex": {
-              "version": "3.0.0",
-              "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-3.0.0.tgz",
-              "integrity": "sha1-7QMXwyIGT3lGbAKWa922Bas32Zg=",
-              "dev": true
-            },
-            "strip-ansi": {
-              "version": "4.0.0",
-              "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-4.0.0.tgz",
-              "integrity": "sha1-qEeQIusaw2iocTibY1JixQXuNo8=",
-              "dev": true,
-              "requires": {
-                "ansi-regex": "^3.0.0"
-              }
-            }
-          }
-        },
-        "cross-spawn": {
-          "version": "6.0.5",
-          "resolved": "https://registry.npmjs.org/cross-spawn/-/cross-spawn-6.0.5.tgz",
-          "integrity": "sha512-eTVLrBSt7fjbDygz805pMnstIs2VTBNkRm0qxZd+M7A5XDdxVRWO5MxGBXZhjY4cqLYLdtrGqRf8mBPmzwSpWQ==",
-          "dev": true,
-          "requires": {
-            "nice-try": "^1.0.4",
-            "path-key": "^2.0.1",
-            "semver": "^5.5.0",
-            "shebang-command": "^1.2.0",
-            "which": "^1.2.9"
-          }
-        },
-        "debug": {
-          "version": "4.1.1",
-          "resolved": "https://registry.npmjs.org/debug/-/debug-4.1.1.tgz",
-          "integrity": "sha512-pYAIzeRo8J6KPEaJ0VWOh5Pzkbw/RetuzehGM7QRRX5he4fPHx2rdKMB256ehJCkX+XRQm16eZLqLNS8RSZXZw==",
-          "dev": true,
-          "requires": {
-            "ms": "^2.1.1"
-          }
-        },
-        "execa": {
-          "version": "1.0.0",
-          "resolved": "https://registry.npmjs.org/execa/-/execa-1.0.0.tgz",
-          "integrity": "sha512-adbxcyWV46qiHyvSp50TKt05tB4tK3HcmF7/nxfAdhnox83seTDbwnaqKO4sXRy7roHAIFqJP/Rw/AuEbX61LA==",
-          "dev": true,
-          "requires": {
-            "cross-spawn": "^6.0.0",
-            "get-stream": "^4.0.0",
-            "is-stream": "^1.1.0",
-            "npm-run-path": "^2.0.0",
-            "p-finally": "^1.0.0",
-            "signal-exit": "^3.0.0",
-            "strip-eof": "^1.0.0"
-          }
-        },
-        "expand-brackets": {
-          "version": "2.1.4",
-          "resolved": "https://registry.npmjs.org/expand-brackets/-/expand-brackets-2.1.4.tgz",
-          "integrity": "sha1-t3c14xXOMPa27/D4OwQVGiJEliI=",
-          "dev": true,
-          "requires": {
-            "debug": "^2.3.3",
-            "define-property": "^0.2.5",
-            "extend-shallow": "^2.0.1",
-            "posix-character-classes": "^0.1.0",
-            "regex-not": "^1.0.0",
-            "snapdragon": "^0.8.1",
-            "to-regex": "^3.0.1"
-          },
-          "dependencies": {
-            "debug": {
-              "version": "2.6.9",
-              "resolved": "https://registry.npmjs.org/debug/-/debug-2.6.9.tgz",
-              "integrity": "sha512-bC7ElrdJaJnPbAP+1EotYvqZsb3ecl5wi6Bfi6BJTUcNowp6cvspg0jXznRTKDjm/E7AdgFBVeAPVMNcKGsHMA==",
-              "dev": true,
-              "requires": {
-                "ms": "2.0.0"
-              }
-            },
-            "define-property": {
-              "version": "0.2.5",
-              "resolved": "https://registry.npmjs.org/define-property/-/define-property-0.2.5.tgz",
-              "integrity": "sha1-w1se+RjsPJkPmlvFe+BKrOxcgRY=",
-              "dev": true,
-              "requires": {
-                "is-descriptor": "^0.1.0"
-              }
-            },
-            "extend-shallow": {
-              "version": "2.0.1",
-              "resolved": "https://registry.npmjs.org/extend-shallow/-/extend-shallow-2.0.1.tgz",
-              "integrity": "sha1-Ua99YUrZqfYQ6huvu5idaxxWiQ8=",
-              "dev": true,
-              "requires": {
-                "is-extendable": "^0.1.0"
-              }
-            },
-            "is-descriptor": {
-              "version": "0.1.6",
-              "resolved": "https://registry.npmjs.org/is-descriptor/-/is-descriptor-0.1.6.tgz",
-              "integrity": "sha512-avDYr0SB3DwO9zsMov0gKCESFYqCnE4hq/4z3TdUlukEy5t9C0YRq7HLrsN52NAcqXKaepeCD0n+B0arnVG3Hg==",
-              "dev": true,
-              "requires": {
-                "is-accessor-descriptor": "^0.1.6",
-                "is-data-descriptor": "^0.1.4",
-                "kind-of": "^5.0.0"
-              }
-            },
-            "kind-of": {
-              "version": "5.1.0",
-              "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-5.1.0.tgz",
-              "integrity": "sha512-NGEErnH6F2vUuXDh+OlbcKW7/wOcfdRHaZ7VWtqCztfHri/++YKmP51OdWeGPuqCOba6kk2OTe5d02VmTB80Pw==",
-              "dev": true
-            },
-            "ms": {
-              "version": "2.0.0",
-              "resolved": "https://registry.npmjs.org/ms/-/ms-2.0.0.tgz",
-              "integrity": "sha1-VgiurfwAvmwpAd9fmGF4jeDVl8g=",
-              "dev": true
-            }
-          }
-        },
-        "extglob": {
-          "version": "2.0.4",
-          "resolved": "https://registry.npmjs.org/extglob/-/extglob-2.0.4.tgz",
-          "integrity": "sha512-Nmb6QXkELsuBr24CJSkilo6UHHgbekK5UiZgfE6UHD3Eb27YC6oD+bhcT+tJ6cl8dmsgdQxnWlcry8ksBIBLpw==",
-          "dev": true,
-          "requires": {
-            "array-unique": "^0.3.2",
-            "define-property": "^1.0.0",
-            "expand-brackets": "^2.1.4",
-            "extend-shallow": "^2.0.1",
-            "fragment-cache": "^0.2.1",
-            "regex-not": "^1.0.0",
-            "snapdragon": "^0.8.1",
-            "to-regex": "^3.0.1"
-          },
-          "dependencies": {
-            "define-property": {
-              "version": "1.0.0",
-              "resolved": "https://registry.npmjs.org/define-property/-/define-property-1.0.0.tgz",
-              "integrity": "sha1-dp66rz9KY6rTr56NMEybvnm/sOY=",
-              "dev": true,
-              "requires": {
-                "is-descriptor": "^1.0.0"
-              }
-            },
-            "extend-shallow": {
-              "version": "2.0.1",
-              "resolved": "https://registry.npmjs.org/extend-shallow/-/extend-shallow-2.0.1.tgz",
-              "integrity": "sha1-Ua99YUrZqfYQ6huvu5idaxxWiQ8=",
-              "dev": true,
-              "requires": {
-                "is-extendable": "^0.1.0"
-              }
-            }
-          }
-        },
-        "fill-range": {
-          "version": "4.0.0",
-          "resolved": "https://registry.npmjs.org/fill-range/-/fill-range-4.0.0.tgz",
-          "integrity": "sha1-1USBHUKPmOsGpj3EAtJAPDKMOPc=",
-          "dev": true,
-          "requires": {
-            "extend-shallow": "^2.0.1",
-            "is-number": "^3.0.0",
-            "repeat-string": "^1.6.1",
-            "to-regex-range": "^2.1.0"
-          },
-          "dependencies": {
-            "extend-shallow": {
-              "version": "2.0.1",
-              "resolved": "https://registry.npmjs.org/extend-shallow/-/extend-shallow-2.0.1.tgz",
-              "integrity": "sha1-Ua99YUrZqfYQ6huvu5idaxxWiQ8=",
-              "dev": true,
-              "requires": {
-                "is-extendable": "^0.1.0"
-              }
-            }
-          }
-        },
-        "find-up": {
-          "version": "3.0.0",
-          "resolved": "https://registry.npmjs.org/find-up/-/find-up-3.0.0.tgz",
-          "integrity": "sha512-1yD6RmLI1XBfxugvORwlck6f75tYL+iR0jqwsOrOxMZyGYqUuDhJ0l4AXdO1iX/FTs9cBAMEk1gWSEx1kSbylg==",
-          "dev": true,
-          "requires": {
-            "locate-path": "^3.0.0"
-          }
-        },
-        "get-stream": {
-          "version": "4.1.0",
-          "resolved": "https://registry.npmjs.org/get-stream/-/get-stream-4.1.0.tgz",
-          "integrity": "sha512-GMat4EJ5161kIy2HevLlr4luNjBgvmj413KaQA7jt4V8B4RDsfpHk7WQ9GVqfYyyx8OS/L66Kox+rJRNklLK7w==",
-          "dev": true,
-          "requires": {
-            "pump": "^3.0.0"
-          }
-        },
-        "globals": {
-          "version": "11.11.0",
-          "resolved": "https://registry.npmjs.org/globals/-/globals-11.11.0.tgz",
-          "integrity": "sha512-WHq43gS+6ufNOEqlrDBxVEbb8ntfXrfAUU2ZOpCxrBdGKW3gyv8mCxAfIBD0DroPKGrJ2eSsXsLtY9MPntsyTw==",
-          "dev": true
-        },
-        "graceful-fs": {
-          "version": "4.1.15",
-          "resolved": "https://registry.npmjs.org/graceful-fs/-/graceful-fs-4.1.15.tgz",
-          "integrity": "sha512-6uHUhOPEBgQ24HM+r6b/QwWfZq+yiFcipKFrOFiBEnWdy5sdzYoi+pJeQaPI5qOLRFqWmAXUPQNsielzdLoecA==",
-          "dev": true
-        },
-        "invert-kv": {
-          "version": "2.0.0",
-          "resolved": "https://registry.npmjs.org/invert-kv/-/invert-kv-2.0.0.tgz",
-          "integrity": "sha512-wPVv/y/QQ/Uiirj/vh3oP+1Ww+AWehmi1g5fFWGPF6IpCBCDVrhgHRMvrLfdYcwDh3QJbGXDW4JAuzxElLSqKA==",
-          "dev": true
-        },
-        "is-accessor-descriptor": {
-          "version": "0.1.6",
-          "resolved": "https://registry.npmjs.org/is-accessor-descriptor/-/is-accessor-descriptor-0.1.6.tgz",
-          "integrity": "sha1-qeEss66Nh2cn7u84Q/igiXtcmNY=",
-          "dev": true,
-          "requires": {
-            "kind-of": "^3.0.2"
-          },
-          "dependencies": {
-            "kind-of": {
-              "version": "3.2.2",
-              "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-3.2.2.tgz",
-              "integrity": "sha1-MeohpzS6ubuw8yRm2JOupR5KPGQ=",
-              "dev": true,
-              "requires": {
-                "is-buffer": "^1.1.5"
-              }
-            }
-          }
-        },
-        "is-ci": {
-          "version": "2.0.0",
-          "resolved": "https://registry.npmjs.org/is-ci/-/is-ci-2.0.0.tgz",
-          "integrity": "sha512-YfJT7rkpQB0updsdHLGWrvhBJfcfzNNawYDNIyQXJz0IViGf75O8EBPKSdvw2rF+LGCsX4FZ8tcr3b19LcZq4w==",
-          "dev": true,
-          "requires": {
-            "ci-info": "^2.0.0"
-          }
-        },
-        "is-data-descriptor": {
-          "version": "0.1.4",
-          "resolved": "https://registry.npmjs.org/is-data-descriptor/-/is-data-descriptor-0.1.4.tgz",
-          "integrity": "sha1-C17mSDiOLIYCgueT8YVv7D8wG1Y=",
-          "dev": true,
-          "requires": {
-            "kind-of": "^3.0.2"
-          },
-          "dependencies": {
-            "kind-of": {
-              "version": "3.2.2",
-              "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-3.2.2.tgz",
-              "integrity": "sha1-MeohpzS6ubuw8yRm2JOupR5KPGQ=",
-              "dev": true,
-              "requires": {
-                "is-buffer": "^1.1.5"
-              }
-            }
-          }
-        },
-        "is-fullwidth-code-point": {
-          "version": "2.0.0",
-          "resolved": "https://registry.npmjs.org/is-fullwidth-code-point/-/is-fullwidth-code-point-2.0.0.tgz",
-          "integrity": "sha1-o7MKXE8ZkYMWeqq5O+764937ZU8=",
-          "dev": true
-        },
-        "is-number": {
-          "version": "3.0.0",
-          "resolved": "https://registry.npmjs.org/is-number/-/is-number-3.0.0.tgz",
-          "integrity": "sha1-JP1iAaR4LPUFYcgQJ2r8fRLXEZU=",
-          "dev": true,
-          "requires": {
-            "kind-of": "^3.0.2"
-          },
-          "dependencies": {
-            "kind-of": {
-              "version": "3.2.2",
-              "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-3.2.2.tgz",
-              "integrity": "sha1-MeohpzS6ubuw8yRm2JOupR5KPGQ=",
-              "dev": true,
-              "requires": {
-                "is-buffer": "^1.1.5"
-              }
-            }
-          }
-        },
-        "isobject": {
-          "version": "3.0.1",
-          "resolved": "https://registry.npmjs.org/isobject/-/isobject-3.0.1.tgz",
-          "integrity": "sha1-TkMekrEalzFjaqH5yNHMvP2reN8=",
-          "dev": true
-        },
-        "istanbul-lib-coverage": {
-          "version": "2.0.3",
-          "resolved": "https://registry.npmjs.org/istanbul-lib-coverage/-/istanbul-lib-coverage-2.0.3.tgz",
-          "integrity": "sha512-dKWuzRGCs4G+67VfW9pBFFz2Jpi4vSp/k7zBcJ888ofV5Mi1g5CUML5GvMvV6u9Cjybftu+E8Cgp+k0dI1E5lw==",
-          "dev": true
-        },
-        "istanbul-lib-instrument": {
-          "version": "3.1.0",
-          "resolved": "https://registry.npmjs.org/istanbul-lib-instrument/-/istanbul-lib-instrument-3.1.0.tgz",
-          "integrity": "sha512-ooVllVGT38HIk8MxDj/OIHXSYvH+1tq/Vb38s8ixt9GoJadXska4WkGY+0wkmtYCZNYtaARniH/DixUGGLZ0uA==",
-          "dev": true,
-          "requires": {
-            "@babel/generator": "^7.0.0",
-            "@babel/parser": "^7.0.0",
-            "@babel/template": "^7.0.0",
-            "@babel/traverse": "^7.0.0",
-            "@babel/types": "^7.0.0",
-            "istanbul-lib-coverage": "^2.0.3",
-            "semver": "^5.5.0"
-          }
-        },
-        "jest-cli": {
-          "version": "24.1.0",
-          "resolved": "https://registry.npmjs.org/jest-cli/-/jest-cli-24.1.0.tgz",
-          "integrity": "sha512-U/iyWPwOI0T1CIxVLtk/2uviOTJ/OiSWJSe8qt6X1VkbbgP+nrtLJlmT9lPBe4lK78VNFJtrJ7pttcNv/s7yCw==",
-          "dev": true,
-          "requires": {
-            "ansi-escapes": "^3.0.0",
-            "chalk": "^2.0.1",
-            "exit": "^0.1.2",
-            "glob": "^7.1.2",
-            "graceful-fs": "^4.1.15",
-            "import-local": "^2.0.0",
-            "is-ci": "^2.0.0",
-            "istanbul-api": "^2.0.8",
-            "istanbul-lib-coverage": "^2.0.2",
-            "istanbul-lib-instrument": "^3.0.1",
-            "istanbul-lib-source-maps": "^3.0.1",
-            "jest-changed-files": "^24.0.0",
-            "jest-config": "^24.1.0",
-            "jest-environment-jsdom": "^24.0.0",
-            "jest-get-type": "^24.0.0",
-            "jest-haste-map": "^24.0.0",
-            "jest-message-util": "^24.0.0",
-            "jest-regex-util": "^24.0.0",
-            "jest-resolve-dependencies": "^24.1.0",
-            "jest-runner": "^24.1.0",
-            "jest-runtime": "^24.1.0",
-            "jest-snapshot": "^24.1.0",
-            "jest-util": "^24.0.0",
-            "jest-validate": "^24.0.0",
-            "jest-watcher": "^24.0.0",
-            "jest-worker": "^24.0.0",
-            "micromatch": "^3.1.10",
-            "node-notifier": "^5.2.1",
-            "p-each-series": "^1.0.0",
-            "pirates": "^4.0.0",
-            "prompts": "^2.0.1",
-            "realpath-native": "^1.0.0",
-            "rimraf": "^2.5.4",
-            "slash": "^2.0.0",
-            "string-length": "^2.0.0",
-            "strip-ansi": "^5.0.0",
-            "which": "^1.2.12",
-            "yargs": "^12.0.2"
-          }
-        },
-        "js-tokens": {
-          "version": "4.0.0",
-          "resolved": "https://registry.npmjs.org/js-tokens/-/js-tokens-4.0.0.tgz",
-          "integrity": "sha512-RdJUflcE3cUzKiMqQgsCu06FPu9UdIJO0beYbPhHN4k6apgJtifcoCtT9bcxOpYBtpD2kCM6Sbzg4CausW/PKQ==",
-          "dev": true
-        },
-        "jsesc": {
-          "version": "2.5.2",
-          "resolved": "https://registry.npmjs.org/jsesc/-/jsesc-2.5.2.tgz",
-          "integrity": "sha512-OYu7XEzjkCQ3C5Ps3QIZsQfNpqoJyZZA99wd9aWd05NCtC5pWOkShK2mkL6HXQR6/Cy2lbNdPlZBpuQHXE63gA==",
-          "dev": true
-        },
-        "kind-of": {
-          "version": "6.0.2",
-          "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-6.0.2.tgz",
-          "integrity": "sha512-s5kLOcnH0XqDO+FvuaLX8DDjZ18CGFk7VygH40QoKPUQhW4e2rvM0rwUq0t8IQDOwYSeLK01U90OjzBTme2QqA==",
-          "dev": true
-        },
-        "lcid": {
-          "version": "2.0.0",
-          "resolved": "https://registry.npmjs.org/lcid/-/lcid-2.0.0.tgz",
-          "integrity": "sha512-avPEb8P8EGnwXKClwsNUgryVjllcRqtMYa49NTsbQagYuT1DcXnl1915oxWjoyGrXR6zH/Y0Zc96xWsPcoDKeA==",
-          "dev": true,
-          "requires": {
-            "invert-kv": "^2.0.0"
-          }
-        },
-        "locate-path": {
-          "version": "3.0.0",
-          "resolved": "https://registry.npmjs.org/locate-path/-/locate-path-3.0.0.tgz",
-          "integrity": "sha512-7AO748wWnIhNqAuaty2ZWHkQHRSNfPVIsPIfwEOWO22AmaoVrWavlOcMR5nzTLNYvp36X220/maaRsrec1G65A==",
-          "dev": true,
-          "requires": {
-            "p-locate": "^3.0.0",
-            "path-exists": "^3.0.0"
-          }
-        },
-        "lodash": {
-          "version": "4.17.11",
-          "resolved": "https://registry.npmjs.org/lodash/-/lodash-4.17.11.tgz",
-          "integrity": "sha512-cQKh8igo5QUhZ7lg38DYWAxMvjSAKG0A8wGSVimP07SIUEK2UO+arSRKbRZWtelMtN5V0Hkwh5ryOto/SshYIg==",
-          "dev": true
-        },
-        "mem": {
-          "version": "4.1.0",
-          "resolved": "https://registry.npmjs.org/mem/-/mem-4.1.0.tgz",
-          "integrity": "sha512-I5u6Q1x7wxO0kdOpYBB28xueHADYps5uty/zg936CiG8NTe5sJL8EjrCuLneuDW3PlMdZBGDIn8BirEVdovZvg==",
-          "dev": true,
-          "requires": {
-            "map-age-cleaner": "^0.1.1",
-            "mimic-fn": "^1.0.0",
-            "p-is-promise": "^2.0.0"
-          }
-        },
-        "micromatch": {
-          "version": "3.1.10",
-          "resolved": "https://registry.npmjs.org/micromatch/-/micromatch-3.1.10.tgz",
-          "integrity": "sha512-MWikgl9n9M3w+bpsY3He8L+w9eF9338xRl8IAO5viDizwSzziFEyUzo2xrrloB64ADbTf8uA8vRqqttDTOmccg==",
-          "dev": true,
-          "requires": {
-            "arr-diff": "^4.0.0",
-            "array-unique": "^0.3.2",
-            "braces": "^2.3.1",
-            "define-property": "^2.0.2",
-            "extend-shallow": "^3.0.2",
-            "extglob": "^2.0.4",
-            "fragment-cache": "^0.2.1",
-            "kind-of": "^6.0.2",
-            "nanomatch": "^1.2.9",
-            "object.pick": "^1.3.0",
-            "regex-not": "^1.0.0",
-            "snapdragon": "^0.8.1",
-            "to-regex": "^3.0.2"
-          }
-        },
-        "ms": {
-          "version": "2.1.1",
-          "resolved": "https://registry.npmjs.org/ms/-/ms-2.1.1.tgz",
-          "integrity": "sha512-tgp+dl5cGk28utYktBsrFqA7HKgrhgPsg6Z/EfhWI4gl1Hwq8B/GmY/0oXZ6nF8hDVesS/FpnYaD/kOWhYQvyg==",
-          "dev": true
-        },
-        "os-locale": {
-          "version": "3.1.0",
-          "resolved": "https://registry.npmjs.org/os-locale/-/os-locale-3.1.0.tgz",
-          "integrity": "sha512-Z8l3R4wYWM40/52Z+S265okfFj8Kt2cC2MKY+xNi3kFs+XGI7WXu/I309QQQYbRW4ijiZ+yxs9pqEhJh0DqW3Q==",
-          "dev": true,
-          "requires": {
-            "execa": "^1.0.0",
-            "lcid": "^2.0.0",
-            "mem": "^4.0.0"
-          }
-        },
-        "p-is-promise": {
-          "version": "2.0.0",
-          "resolved": "https://registry.npmjs.org/p-is-promise/-/p-is-promise-2.0.0.tgz",
-          "integrity": "sha512-pzQPhYMCAgLAKPWD2jC3Se9fEfrD9npNos0y150EeqZll7akhEgGhTW/slB6lHku8AvYGiJ+YJ5hfHKePPgFWg==",
-          "dev": true
-        },
-        "p-limit": {
-          "version": "2.1.0",
-          "resolved": "https://registry.npmjs.org/p-limit/-/p-limit-2.1.0.tgz",
-          "integrity": "sha512-NhURkNcrVB+8hNfLuysU8enY5xn2KXphsHBaC2YmRNTZRc7RWusw6apSpdEj3jo4CMb6W9nrF6tTnsJsJeyu6g==",
-          "dev": true,
-          "requires": {
-            "p-try": "^2.0.0"
-          }
-        },
-        "p-locate": {
-          "version": "3.0.0",
-          "resolved": "https://registry.npmjs.org/p-locate/-/p-locate-3.0.0.tgz",
-          "integrity": "sha512-x+12w/To+4GFfgJhBEpiDcLozRJGegY+Ei7/z0tSLkMmxGZNybVMSfWj9aJn8Z5Fc7dBUNJOOVgPv2H7IwulSQ==",
-          "dev": true,
-          "requires": {
-            "p-limit": "^2.0.0"
-          }
-        },
-        "p-try": {
-          "version": "2.0.0",
-          "resolved": "https://registry.npmjs.org/p-try/-/p-try-2.0.0.tgz",
-          "integrity": "sha512-hMp0onDKIajHfIkdRk3P4CdCmErkYAxxDtP3Wx/4nZ3aGlau2VKh3mZpcuFkH27WQkL/3WBCPOktzA9ZOAnMQQ==",
-          "dev": true
-        },
-        "pump": {
-          "version": "3.0.0",
-          "resolved": "https://registry.npmjs.org/pump/-/pump-3.0.0.tgz",
-          "integrity": "sha512-LwZy+p3SFs1Pytd/jYct4wpv49HiYCqd9Rlc5ZVdk0V+8Yzv6jR5Blk3TRmPL1ft69TxP0IMZGJ+WPFU2BFhww==",
-          "dev": true,
-          "requires": {
-            "end-of-stream": "^1.1.0",
-            "once": "^1.3.1"
-          }
-        },
-        "slash": {
-          "version": "2.0.0",
-          "resolved": "https://registry.npmjs.org/slash/-/slash-2.0.0.tgz",
-          "integrity": "sha512-ZYKh3Wh2z1PpEXWr0MpSBZ0V6mZHAQfYevttO11c51CaWjGTaadiKZ+wVt1PbMlDV5qhMFslpZCemhwOK7C89A==",
-          "dev": true
-        },
-        "string-width": {
-          "version": "2.1.1",
-          "resolved": "https://registry.npmjs.org/string-width/-/string-width-2.1.1.tgz",
-          "integrity": "sha512-nOqH59deCq9SRHlxq1Aw85Jnt4w6KvLKqWVik6oA9ZklXLNIOlqg4F2yrT1MVaTjAqvVwdfeZ7w7aCvJD7ugkw==",
-          "dev": true,
-          "requires": {
-            "is-fullwidth-code-point": "^2.0.0",
-            "strip-ansi": "^4.0.0"
-          },
-          "dependencies": {
-            "ansi-regex": {
-              "version": "3.0.0",
-              "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-3.0.0.tgz",
-              "integrity": "sha1-7QMXwyIGT3lGbAKWa922Bas32Zg=",
-              "dev": true
-            },
-            "strip-ansi": {
-              "version": "4.0.0",
-              "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-4.0.0.tgz",
-              "integrity": "sha1-qEeQIusaw2iocTibY1JixQXuNo8=",
-              "dev": true,
-              "requires": {
-                "ansi-regex": "^3.0.0"
-              }
-            }
-          }
-        },
-        "strip-ansi": {
-          "version": "5.0.0",
-          "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-5.0.0.tgz",
-          "integrity": "sha512-Uu7gQyZI7J7gn5qLn1Np3G9vcYGTVqB+lFTytnDJv83dd8T22aGH451P3jueT2/QemInJDfxHB5Tde5OzgG1Ow==",
-          "dev": true,
-          "requires": {
-            "ansi-regex": "^4.0.0"
-          }
-        },
-        "to-fast-properties": {
-          "version": "2.0.0",
-          "resolved": "https://registry.npmjs.org/to-fast-properties/-/to-fast-properties-2.0.0.tgz",
-          "integrity": "sha1-3F5pjL0HkmW8c+A3doGk5Og/YW4=",
-          "dev": true
-        },
-        "which-module": {
-          "version": "2.0.0",
-          "resolved": "https://registry.npmjs.org/which-module/-/which-module-2.0.0.tgz",
-          "integrity": "sha1-2e8H3Od7mQK4o6j6SzHD4/fm6Ho=",
-          "dev": true
-        },
-        "yargs": {
-          "version": "12.0.5",
-          "resolved": "https://registry.npmjs.org/yargs/-/yargs-12.0.5.tgz",
-          "integrity": "sha512-Lhz8TLaYnxq/2ObqHDql8dX8CJi97oHxrjUcYtzKbbykPtVW9WB+poxI+NM2UIzsMgNCZTIf0AQwsjK5yMAqZw==",
-          "dev": true,
-          "requires": {
-            "cliui": "^4.0.0",
-            "decamelize": "^1.2.0",
-            "find-up": "^3.0.0",
-            "get-caller-file": "^1.0.1",
-            "os-locale": "^3.0.0",
-            "require-directory": "^2.1.1",
-            "require-main-filename": "^1.0.1",
-            "set-blocking": "^2.0.0",
-            "string-width": "^2.0.0",
-            "which-module": "^2.0.0",
-            "y18n": "^3.2.1 || ^4.0.0",
-            "yargs-parser": "^11.1.1"
-          }
-        },
-        "yargs-parser": {
-          "version": "11.1.1",
-          "resolved": "https://registry.npmjs.org/yargs-parser/-/yargs-parser-11.1.1.tgz",
-          "integrity": "sha512-C6kB/WJDiaxONLJQnF8ccx9SEeoTTLek8RVbaOIsrAUS8VrBEXfmeSnCZxygc+XC2sNMBIwOOnfcxiynjHsVSQ==",
-          "dev": true,
-          "requires": {
-            "camelcase": "^5.0.0",
-            "decamelize": "^1.2.0"
-          }
-        }
-      }
-    },
-    "jest-changed-files": {
-      "version": "24.0.0",
-      "resolved": "https://registry.npmjs.org/jest-changed-files/-/jest-changed-files-24.0.0.tgz",
-      "integrity": "sha512-nnuU510R9U+UX0WNb5XFEcsrMqriSiRLeO9KWDFgPrpToaQm60prfQYpxsXigdClpvNot5bekDY440x9dNGnsQ==",
-      "dev": true,
-      "requires": {
-        "execa": "^1.0.0",
-        "throat": "^4.0.0"
-      },
-      "dependencies": {
-        "cross-spawn": {
-          "version": "6.0.5",
-          "resolved": "https://registry.npmjs.org/cross-spawn/-/cross-spawn-6.0.5.tgz",
-          "integrity": "sha512-eTVLrBSt7fjbDygz805pMnstIs2VTBNkRm0qxZd+M7A5XDdxVRWO5MxGBXZhjY4cqLYLdtrGqRf8mBPmzwSpWQ==",
-          "dev": true,
-          "requires": {
-            "nice-try": "^1.0.4",
-            "path-key": "^2.0.1",
-            "semver": "^5.5.0",
-            "shebang-command": "^1.2.0",
-            "which": "^1.2.9"
-          }
-        },
-        "execa": {
-          "version": "1.0.0",
-          "resolved": "https://registry.npmjs.org/execa/-/execa-1.0.0.tgz",
-          "integrity": "sha512-adbxcyWV46qiHyvSp50TKt05tB4tK3HcmF7/nxfAdhnox83seTDbwnaqKO4sXRy7roHAIFqJP/Rw/AuEbX61LA==",
-          "dev": true,
-          "requires": {
-            "cross-spawn": "^6.0.0",
-            "get-stream": "^4.0.0",
-            "is-stream": "^1.1.0",
-            "npm-run-path": "^2.0.0",
-            "p-finally": "^1.0.0",
-            "signal-exit": "^3.0.0",
-            "strip-eof": "^1.0.0"
-          }
-        },
-        "get-stream": {
-          "version": "4.1.0",
-          "resolved": "https://registry.npmjs.org/get-stream/-/get-stream-4.1.0.tgz",
-          "integrity": "sha512-GMat4EJ5161kIy2HevLlr4luNjBgvmj413KaQA7jt4V8B4RDsfpHk7WQ9GVqfYyyx8OS/L66Kox+rJRNklLK7w==",
-          "dev": true,
-          "requires": {
-            "pump": "^3.0.0"
-          }
-        },
-        "pump": {
-          "version": "3.0.0",
-          "resolved": "https://registry.npmjs.org/pump/-/pump-3.0.0.tgz",
-          "integrity": "sha512-LwZy+p3SFs1Pytd/jYct4wpv49HiYCqd9Rlc5ZVdk0V+8Yzv6jR5Blk3TRmPL1ft69TxP0IMZGJ+WPFU2BFhww==",
-          "dev": true,
-          "requires": {
-            "end-of-stream": "^1.1.0",
-            "once": "^1.3.1"
-          }
-        }
-      }
-    },
-    "jest-config": {
-      "version": "24.1.0",
-      "resolved": "https://registry.npmjs.org/jest-config/-/jest-config-24.1.0.tgz",
-      "integrity": "sha512-FbbRzRqtFC6eGjG5VwsbW4E5dW3zqJKLWYiZWhB0/4E5fgsMw8GODLbGSrY5t17kKOtCWb/Z7nsIThRoDpuVyg==",
-      "dev": true,
-      "requires": {
-        "@babel/core": "^7.1.0",
-        "babel-jest": "^24.1.0",
-        "chalk": "^2.0.1",
-        "glob": "^7.1.1",
-        "jest-environment-jsdom": "^24.0.0",
-        "jest-environment-node": "^24.0.0",
-        "jest-get-type": "^24.0.0",
-        "jest-jasmine2": "^24.1.0",
-        "jest-regex-util": "^24.0.0",
-        "jest-resolve": "^24.1.0",
-        "jest-util": "^24.0.0",
-        "jest-validate": "^24.0.0",
-        "micromatch": "^3.1.10",
-        "pretty-format": "^24.0.0",
-        "realpath-native": "^1.0.2"
-      },
-      "dependencies": {
-        "arr-diff": {
-          "version": "4.0.0",
-          "resolved": "https://registry.npmjs.org/arr-diff/-/arr-diff-4.0.0.tgz",
-          "integrity": "sha1-1kYQdP6/7HHn4VI1dhoyml3HxSA=",
-          "dev": true
-        },
-        "array-unique": {
-          "version": "0.3.2",
-          "resolved": "https://registry.npmjs.org/array-unique/-/array-unique-0.3.2.tgz",
-          "integrity": "sha1-qJS3XUvE9s1nnvMkSp/Y9Gri1Cg=",
-          "dev": true
-        },
-        "braces": {
-          "version": "2.3.2",
-          "resolved": "https://registry.npmjs.org/braces/-/braces-2.3.2.tgz",
-          "integrity": "sha512-aNdbnj9P8PjdXU4ybaWLK2IF3jc/EoDYbC7AazW6to3TRsfXxscC9UXOB5iDiEQrkyIbWp2SLQda4+QAa7nc3w==",
-          "dev": true,
-          "requires": {
-            "arr-flatten": "^1.1.0",
-            "array-unique": "^0.3.2",
-            "extend-shallow": "^2.0.1",
-            "fill-range": "^4.0.0",
-            "isobject": "^3.0.1",
-            "repeat-element": "^1.1.2",
-            "snapdragon": "^0.8.1",
-            "snapdragon-node": "^2.0.1",
-            "split-string": "^3.0.2",
-            "to-regex": "^3.0.1"
-          },
-          "dependencies": {
-            "extend-shallow": {
-              "version": "2.0.1",
-              "resolved": "https://registry.npmjs.org/extend-shallow/-/extend-shallow-2.0.1.tgz",
-              "integrity": "sha1-Ua99YUrZqfYQ6huvu5idaxxWiQ8=",
-              "dev": true,
-              "requires": {
-                "is-extendable": "^0.1.0"
-              }
-            }
-          }
-        },
-        "expand-brackets": {
-          "version": "2.1.4",
-          "resolved": "https://registry.npmjs.org/expand-brackets/-/expand-brackets-2.1.4.tgz",
-          "integrity": "sha1-t3c14xXOMPa27/D4OwQVGiJEliI=",
-          "dev": true,
-          "requires": {
-            "debug": "^2.3.3",
-            "define-property": "^0.2.5",
-            "extend-shallow": "^2.0.1",
-            "posix-character-classes": "^0.1.0",
-            "regex-not": "^1.0.0",
-            "snapdragon": "^0.8.1",
-            "to-regex": "^3.0.1"
-          },
-          "dependencies": {
-            "define-property": {
-              "version": "0.2.5",
-              "resolved": "https://registry.npmjs.org/define-property/-/define-property-0.2.5.tgz",
-              "integrity": "sha1-w1se+RjsPJkPmlvFe+BKrOxcgRY=",
-              "dev": true,
-              "requires": {
-                "is-descriptor": "^0.1.0"
-              }
-            },
-            "extend-shallow": {
-              "version": "2.0.1",
-              "resolved": "https://registry.npmjs.org/extend-shallow/-/extend-shallow-2.0.1.tgz",
-              "integrity": "sha1-Ua99YUrZqfYQ6huvu5idaxxWiQ8=",
-              "dev": true,
-              "requires": {
-                "is-extendable": "^0.1.0"
-              }
-            },
-            "is-descriptor": {
-              "version": "0.1.6",
-              "resolved": "https://registry.npmjs.org/is-descriptor/-/is-descriptor-0.1.6.tgz",
-              "integrity": "sha512-avDYr0SB3DwO9zsMov0gKCESFYqCnE4hq/4z3TdUlukEy5t9C0YRq7HLrsN52NAcqXKaepeCD0n+B0arnVG3Hg==",
-              "dev": true,
-              "requires": {
-                "is-accessor-descriptor": "^0.1.6",
-                "is-data-descriptor": "^0.1.4",
-                "kind-of": "^5.0.0"
-              }
-            },
-            "kind-of": {
-              "version": "5.1.0",
-              "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-5.1.0.tgz",
-              "integrity": "sha512-NGEErnH6F2vUuXDh+OlbcKW7/wOcfdRHaZ7VWtqCztfHri/++YKmP51OdWeGPuqCOba6kk2OTe5d02VmTB80Pw==",
-              "dev": true
-            }
-          }
-        },
-        "extglob": {
-          "version": "2.0.4",
-          "resolved": "https://registry.npmjs.org/extglob/-/extglob-2.0.4.tgz",
-          "integrity": "sha512-Nmb6QXkELsuBr24CJSkilo6UHHgbekK5UiZgfE6UHD3Eb27YC6oD+bhcT+tJ6cl8dmsgdQxnWlcry8ksBIBLpw==",
-          "dev": true,
-          "requires": {
-            "array-unique": "^0.3.2",
-            "define-property": "^1.0.0",
-            "expand-brackets": "^2.1.4",
-            "extend-shallow": "^2.0.1",
-            "fragment-cache": "^0.2.1",
-            "regex-not": "^1.0.0",
-            "snapdragon": "^0.8.1",
-            "to-regex": "^3.0.1"
-          },
-          "dependencies": {
-            "define-property": {
-              "version": "1.0.0",
-              "resolved": "https://registry.npmjs.org/define-property/-/define-property-1.0.0.tgz",
-              "integrity": "sha1-dp66rz9KY6rTr56NMEybvnm/sOY=",
-              "dev": true,
-              "requires": {
-                "is-descriptor": "^1.0.0"
-              }
-            },
-            "extend-shallow": {
-              "version": "2.0.1",
-              "resolved": "https://registry.npmjs.org/extend-shallow/-/extend-shallow-2.0.1.tgz",
-              "integrity": "sha1-Ua99YUrZqfYQ6huvu5idaxxWiQ8=",
-              "dev": true,
-              "requires": {
-                "is-extendable": "^0.1.0"
-              }
-            }
-          }
-        },
-        "fill-range": {
-          "version": "4.0.0",
-          "resolved": "https://registry.npmjs.org/fill-range/-/fill-range-4.0.0.tgz",
-          "integrity": "sha1-1USBHUKPmOsGpj3EAtJAPDKMOPc=",
-          "dev": true,
-          "requires": {
-            "extend-shallow": "^2.0.1",
-            "is-number": "^3.0.0",
-            "repeat-string": "^1.6.1",
-            "to-regex-range": "^2.1.0"
-          },
-          "dependencies": {
-            "extend-shallow": {
-              "version": "2.0.1",
-              "resolved": "https://registry.npmjs.org/extend-shallow/-/extend-shallow-2.0.1.tgz",
-              "integrity": "sha1-Ua99YUrZqfYQ6huvu5idaxxWiQ8=",
-              "dev": true,
-              "requires": {
-                "is-extendable": "^0.1.0"
-              }
-            }
-          }
-        },
-        "is-accessor-descriptor": {
-          "version": "0.1.6",
-          "resolved": "https://registry.npmjs.org/is-accessor-descriptor/-/is-accessor-descriptor-0.1.6.tgz",
-          "integrity": "sha1-qeEss66Nh2cn7u84Q/igiXtcmNY=",
-          "dev": true,
-          "requires": {
-            "kind-of": "^3.0.2"
-          },
-          "dependencies": {
-            "kind-of": {
-              "version": "3.2.2",
-              "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-3.2.2.tgz",
-              "integrity": "sha1-MeohpzS6ubuw8yRm2JOupR5KPGQ=",
-              "dev": true,
-              "requires": {
-                "is-buffer": "^1.1.5"
-              }
-            }
-          }
-        },
-        "is-data-descriptor": {
-          "version": "0.1.4",
-          "resolved": "https://registry.npmjs.org/is-data-descriptor/-/is-data-descriptor-0.1.4.tgz",
-          "integrity": "sha1-C17mSDiOLIYCgueT8YVv7D8wG1Y=",
-          "dev": true,
-          "requires": {
-            "kind-of": "^3.0.2"
-          },
-          "dependencies": {
-            "kind-of": {
-              "version": "3.2.2",
-              "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-3.2.2.tgz",
-              "integrity": "sha1-MeohpzS6ubuw8yRm2JOupR5KPGQ=",
-              "dev": true,
-              "requires": {
-                "is-buffer": "^1.1.5"
-              }
-            }
-          }
-        },
-        "is-number": {
-          "version": "3.0.0",
-          "resolved": "https://registry.npmjs.org/is-number/-/is-number-3.0.0.tgz",
-          "integrity": "sha1-JP1iAaR4LPUFYcgQJ2r8fRLXEZU=",
-          "dev": true,
-          "requires": {
-            "kind-of": "^3.0.2"
-          },
-          "dependencies": {
-            "kind-of": {
-              "version": "3.2.2",
-              "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-3.2.2.tgz",
-              "integrity": "sha1-MeohpzS6ubuw8yRm2JOupR5KPGQ=",
-              "dev": true,
-              "requires": {
-                "is-buffer": "^1.1.5"
-              }
-            }
-          }
-        },
-        "isobject": {
-          "version": "3.0.1",
-          "resolved": "https://registry.npmjs.org/isobject/-/isobject-3.0.1.tgz",
-          "integrity": "sha1-TkMekrEalzFjaqH5yNHMvP2reN8=",
-          "dev": true
-        },
-        "kind-of": {
-          "version": "6.0.2",
-          "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-6.0.2.tgz",
-          "integrity": "sha512-s5kLOcnH0XqDO+FvuaLX8DDjZ18CGFk7VygH40QoKPUQhW4e2rvM0rwUq0t8IQDOwYSeLK01U90OjzBTme2QqA==",
-          "dev": true
-        },
-        "micromatch": {
-          "version": "3.1.10",
-          "resolved": "https://registry.npmjs.org/micromatch/-/micromatch-3.1.10.tgz",
-          "integrity": "sha512-MWikgl9n9M3w+bpsY3He8L+w9eF9338xRl8IAO5viDizwSzziFEyUzo2xrrloB64ADbTf8uA8vRqqttDTOmccg==",
-          "dev": true,
-          "requires": {
-            "arr-diff": "^4.0.0",
-            "array-unique": "^0.3.2",
-            "braces": "^2.3.1",
-            "define-property": "^2.0.2",
-            "extend-shallow": "^3.0.2",
-            "extglob": "^2.0.4",
-            "fragment-cache": "^0.2.1",
-            "kind-of": "^6.0.2",
-            "nanomatch": "^1.2.9",
-            "object.pick": "^1.3.0",
-            "regex-not": "^1.0.0",
-            "snapdragon": "^0.8.1",
-            "to-regex": "^3.0.2"
-          }
-        }
-      }
-    },
-    "jest-diff": {
-      "version": "24.0.0",
-      "resolved": "https://registry.npmjs.org/jest-diff/-/jest-diff-24.0.0.tgz",
-      "integrity": "sha512-XY5wMpRaTsuMoU+1/B2zQSKQ9RdE9gsLkGydx3nvApeyPijLA8GtEvIcPwISRCer+VDf9W1mStTYYq6fPt8ryA==",
-      "dev": true,
-      "requires": {
-        "chalk": "^2.0.1",
-        "diff-sequences": "^24.0.0",
-        "jest-get-type": "^24.0.0",
-        "pretty-format": "^24.0.0"
-      }
-    },
-    "jest-docblock": {
-      "version": "24.0.0",
-      "resolved": "https://registry.npmjs.org/jest-docblock/-/jest-docblock-24.0.0.tgz",
-      "integrity": "sha512-KfAKZ4SN7CFOZpWg4i7g7MSlY0M+mq7K0aMqENaG2vHuhC9fc3vkpU/iNN9sOus7v3h3Y48uEjqz3+Gdn2iptA==",
-      "dev": true,
-      "requires": {
-        "detect-newline": "^2.1.0"
-      }
-    },
-    "jest-each": {
-      "version": "24.0.0",
-      "resolved": "https://registry.npmjs.org/jest-each/-/jest-each-24.0.0.tgz",
-      "integrity": "sha512-gFcbY4Cu55yxExXMkjrnLXov3bWO3dbPAW7HXb31h/DNWdNc/6X8MtxGff8nh3/MjkF9DpVqnj0KsPKuPK0cpA==",
-      "dev": true,
-      "requires": {
-        "chalk": "^2.0.1",
-        "jest-get-type": "^24.0.0",
-        "jest-util": "^24.0.0",
-        "pretty-format": "^24.0.0"
-      }
-    },
-    "jest-environment-jsdom": {
-      "version": "24.0.0",
-      "resolved": "https://registry.npmjs.org/jest-environment-jsdom/-/jest-environment-jsdom-24.0.0.tgz",
-      "integrity": "sha512-1YNp7xtxajTRaxbylDc2pWvFnfDTH5BJJGyVzyGAKNt/lEULohwEV9zFqTgG4bXRcq7xzdd+sGFws+LxThXXOw==",
-      "dev": true,
-      "requires": {
-        "jest-mock": "^24.0.0",
-        "jest-util": "^24.0.0",
-        "jsdom": "^11.5.1"
-      }
-    },
-    "jest-environment-node": {
-      "version": "24.0.0",
-      "resolved": "https://registry.npmjs.org/jest-environment-node/-/jest-environment-node-24.0.0.tgz",
-      "integrity": "sha512-62fOFcaEdU0VLaq8JL90TqwI7hLn0cOKOl8vY2n477vRkCJRojiRRtJVRzzCcgFvs6gqU97DNqX5R0BrBP6Rxg==",
-      "dev": true,
-      "requires": {
-        "jest-mock": "^24.0.0",
-        "jest-util": "^24.0.0"
-      }
-    },
-    "jest-get-type": {
-      "version": "24.0.0",
-      "resolved": "https://registry.npmjs.org/jest-get-type/-/jest-get-type-24.0.0.tgz",
-      "integrity": "sha512-z6/Eyf6s9ZDGz7eOvl+fzpuJmN9i0KyTt1no37/dHu8galssxz5ZEgnc1KaV8R31q1khxyhB4ui/X5ZjjPk77w==",
-      "dev": true
-    },
-    "jest-haste-map": {
-      "version": "24.0.0",
-      "resolved": "https://registry.npmjs.org/jest-haste-map/-/jest-haste-map-24.0.0.tgz",
-      "integrity": "sha512-CcViJyUo41IQqttLxXVdI41YErkzBKbE6cS6dRAploCeutePYfUimWd3C9rQEWhX0YBOQzvNsC0O9nYxK2nnxQ==",
-      "dev": true,
-      "requires": {
-        "fb-watchman": "^2.0.0",
-        "graceful-fs": "^4.1.15",
-        "invariant": "^2.2.4",
-        "jest-serializer": "^24.0.0",
-        "jest-util": "^24.0.0",
-        "jest-worker": "^24.0.0",
-        "micromatch": "^3.1.10",
-        "sane": "^3.0.0"
-      },
-      "dependencies": {
-        "arr-diff": {
-          "version": "4.0.0",
-          "resolved": "https://registry.npmjs.org/arr-diff/-/arr-diff-4.0.0.tgz",
-          "integrity": "sha1-1kYQdP6/7HHn4VI1dhoyml3HxSA=",
-          "dev": true
-        },
-        "array-unique": {
-          "version": "0.3.2",
-          "resolved": "https://registry.npmjs.org/array-unique/-/array-unique-0.3.2.tgz",
-          "integrity": "sha1-qJS3XUvE9s1nnvMkSp/Y9Gri1Cg=",
-          "dev": true
-        },
-        "braces": {
-          "version": "2.3.2",
-          "resolved": "https://registry.npmjs.org/braces/-/braces-2.3.2.tgz",
-          "integrity": "sha512-aNdbnj9P8PjdXU4ybaWLK2IF3jc/EoDYbC7AazW6to3TRsfXxscC9UXOB5iDiEQrkyIbWp2SLQda4+QAa7nc3w==",
-          "dev": true,
-          "requires": {
-            "arr-flatten": "^1.1.0",
-            "array-unique": "^0.3.2",
-            "extend-shallow": "^2.0.1",
-            "fill-range": "^4.0.0",
-            "isobject": "^3.0.1",
-            "repeat-element": "^1.1.2",
-            "snapdragon": "^0.8.1",
-            "snapdragon-node": "^2.0.1",
-            "split-string": "^3.0.2",
-            "to-regex": "^3.0.1"
-          },
-          "dependencies": {
-            "extend-shallow": {
-              "version": "2.0.1",
-              "resolved": "https://registry.npmjs.org/extend-shallow/-/extend-shallow-2.0.1.tgz",
-              "integrity": "sha1-Ua99YUrZqfYQ6huvu5idaxxWiQ8=",
-              "dev": true,
-              "requires": {
-                "is-extendable": "^0.1.0"
-              }
-            }
-          }
-        },
-        "expand-brackets": {
-          "version": "2.1.4",
-          "resolved": "https://registry.npmjs.org/expand-brackets/-/expand-brackets-2.1.4.tgz",
-          "integrity": "sha1-t3c14xXOMPa27/D4OwQVGiJEliI=",
-          "dev": true,
-          "requires": {
-            "debug": "^2.3.3",
-            "define-property": "^0.2.5",
-            "extend-shallow": "^2.0.1",
-            "posix-character-classes": "^0.1.0",
-            "regex-not": "^1.0.0",
-            "snapdragon": "^0.8.1",
-            "to-regex": "^3.0.1"
-          },
-          "dependencies": {
-            "define-property": {
-              "version": "0.2.5",
-              "resolved": "https://registry.npmjs.org/define-property/-/define-property-0.2.5.tgz",
-              "integrity": "sha1-w1se+RjsPJkPmlvFe+BKrOxcgRY=",
-              "dev": true,
-              "requires": {
-                "is-descriptor": "^0.1.0"
-              }
-            },
-            "extend-shallow": {
-              "version": "2.0.1",
-              "resolved": "https://registry.npmjs.org/extend-shallow/-/extend-shallow-2.0.1.tgz",
-              "integrity": "sha1-Ua99YUrZqfYQ6huvu5idaxxWiQ8=",
-              "dev": true,
-              "requires": {
-                "is-extendable": "^0.1.0"
-              }
-            },
-            "is-descriptor": {
-              "version": "0.1.6",
-              "resolved": "https://registry.npmjs.org/is-descriptor/-/is-descriptor-0.1.6.tgz",
-              "integrity": "sha512-avDYr0SB3DwO9zsMov0gKCESFYqCnE4hq/4z3TdUlukEy5t9C0YRq7HLrsN52NAcqXKaepeCD0n+B0arnVG3Hg==",
-              "dev": true,
-              "requires": {
-                "is-accessor-descriptor": "^0.1.6",
-                "is-data-descriptor": "^0.1.4",
-                "kind-of": "^5.0.0"
-              }
-            },
-            "kind-of": {
-              "version": "5.1.0",
-              "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-5.1.0.tgz",
-              "integrity": "sha512-NGEErnH6F2vUuXDh+OlbcKW7/wOcfdRHaZ7VWtqCztfHri/++YKmP51OdWeGPuqCOba6kk2OTe5d02VmTB80Pw==",
-              "dev": true
-            }
-          }
-        },
-        "extglob": {
-          "version": "2.0.4",
-          "resolved": "https://registry.npmjs.org/extglob/-/extglob-2.0.4.tgz",
-          "integrity": "sha512-Nmb6QXkELsuBr24CJSkilo6UHHgbekK5UiZgfE6UHD3Eb27YC6oD+bhcT+tJ6cl8dmsgdQxnWlcry8ksBIBLpw==",
-          "dev": true,
-          "requires": {
-            "array-unique": "^0.3.2",
-            "define-property": "^1.0.0",
-            "expand-brackets": "^2.1.4",
-            "extend-shallow": "^2.0.1",
-            "fragment-cache": "^0.2.1",
-            "regex-not": "^1.0.0",
-            "snapdragon": "^0.8.1",
-            "to-regex": "^3.0.1"
-          },
-          "dependencies": {
-            "define-property": {
-              "version": "1.0.0",
-              "resolved": "https://registry.npmjs.org/define-property/-/define-property-1.0.0.tgz",
-              "integrity": "sha1-dp66rz9KY6rTr56NMEybvnm/sOY=",
-              "dev": true,
-              "requires": {
-                "is-descriptor": "^1.0.0"
-              }
-            },
-            "extend-shallow": {
-              "version": "2.0.1",
-              "resolved": "https://registry.npmjs.org/extend-shallow/-/extend-shallow-2.0.1.tgz",
-              "integrity": "sha1-Ua99YUrZqfYQ6huvu5idaxxWiQ8=",
-              "dev": true,
-              "requires": {
-                "is-extendable": "^0.1.0"
-              }
-            }
-          }
-        },
-        "fill-range": {
-          "version": "4.0.0",
-          "resolved": "https://registry.npmjs.org/fill-range/-/fill-range-4.0.0.tgz",
-          "integrity": "sha1-1USBHUKPmOsGpj3EAtJAPDKMOPc=",
-          "dev": true,
-          "requires": {
-            "extend-shallow": "^2.0.1",
-            "is-number": "^3.0.0",
-            "repeat-string": "^1.6.1",
-            "to-regex-range": "^2.1.0"
-          },
-          "dependencies": {
-            "extend-shallow": {
-              "version": "2.0.1",
-              "resolved": "https://registry.npmjs.org/extend-shallow/-/extend-shallow-2.0.1.tgz",
-              "integrity": "sha1-Ua99YUrZqfYQ6huvu5idaxxWiQ8=",
-              "dev": true,
-              "requires": {
-                "is-extendable": "^0.1.0"
-              }
-            }
-          }
-        },
-        "graceful-fs": {
-          "version": "4.1.15",
-          "resolved": "https://registry.npmjs.org/graceful-fs/-/graceful-fs-4.1.15.tgz",
-          "integrity": "sha512-6uHUhOPEBgQ24HM+r6b/QwWfZq+yiFcipKFrOFiBEnWdy5sdzYoi+pJeQaPI5qOLRFqWmAXUPQNsielzdLoecA==",
-          "dev": true
-        },
-        "is-accessor-descriptor": {
-          "version": "0.1.6",
-          "resolved": "https://registry.npmjs.org/is-accessor-descriptor/-/is-accessor-descriptor-0.1.6.tgz",
-          "integrity": "sha1-qeEss66Nh2cn7u84Q/igiXtcmNY=",
-          "dev": true,
-          "requires": {
-            "kind-of": "^3.0.2"
-          },
-          "dependencies": {
-            "kind-of": {
-              "version": "3.2.2",
-              "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-3.2.2.tgz",
-              "integrity": "sha1-MeohpzS6ubuw8yRm2JOupR5KPGQ=",
-              "dev": true,
-              "requires": {
-                "is-buffer": "^1.1.5"
-              }
-            }
-          }
-        },
-        "is-data-descriptor": {
-          "version": "0.1.4",
-          "resolved": "https://registry.npmjs.org/is-data-descriptor/-/is-data-descriptor-0.1.4.tgz",
-          "integrity": "sha1-C17mSDiOLIYCgueT8YVv7D8wG1Y=",
-          "dev": true,
-          "requires": {
-            "kind-of": "^3.0.2"
-          },
-          "dependencies": {
-            "kind-of": {
-              "version": "3.2.2",
-              "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-3.2.2.tgz",
-              "integrity": "sha1-MeohpzS6ubuw8yRm2JOupR5KPGQ=",
-              "dev": true,
-              "requires": {
-                "is-buffer": "^1.1.5"
-              }
-            }
-          }
-        },
-        "is-number": {
-          "version": "3.0.0",
-          "resolved": "https://registry.npmjs.org/is-number/-/is-number-3.0.0.tgz",
-          "integrity": "sha1-JP1iAaR4LPUFYcgQJ2r8fRLXEZU=",
-          "dev": true,
-          "requires": {
-            "kind-of": "^3.0.2"
-          },
-          "dependencies": {
-            "kind-of": {
-              "version": "3.2.2",
-              "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-3.2.2.tgz",
-              "integrity": "sha1-MeohpzS6ubuw8yRm2JOupR5KPGQ=",
-              "dev": true,
-              "requires": {
-                "is-buffer": "^1.1.5"
-              }
-            }
-          }
-        },
-        "isobject": {
-          "version": "3.0.1",
-          "resolved": "https://registry.npmjs.org/isobject/-/isobject-3.0.1.tgz",
-          "integrity": "sha1-TkMekrEalzFjaqH5yNHMvP2reN8=",
-          "dev": true
-        },
-        "kind-of": {
-          "version": "6.0.2",
-          "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-6.0.2.tgz",
-          "integrity": "sha512-s5kLOcnH0XqDO+FvuaLX8DDjZ18CGFk7VygH40QoKPUQhW4e2rvM0rwUq0t8IQDOwYSeLK01U90OjzBTme2QqA==",
-          "dev": true
-        },
-        "micromatch": {
-          "version": "3.1.10",
-          "resolved": "https://registry.npmjs.org/micromatch/-/micromatch-3.1.10.tgz",
-          "integrity": "sha512-MWikgl9n9M3w+bpsY3He8L+w9eF9338xRl8IAO5viDizwSzziFEyUzo2xrrloB64ADbTf8uA8vRqqttDTOmccg==",
-          "dev": true,
-          "requires": {
-            "arr-diff": "^4.0.0",
-            "array-unique": "^0.3.2",
-            "braces": "^2.3.1",
-            "define-property": "^2.0.2",
-            "extend-shallow": "^3.0.2",
-            "extglob": "^2.0.4",
-            "fragment-cache": "^0.2.1",
-            "kind-of": "^6.0.2",
-            "nanomatch": "^1.2.9",
-            "object.pick": "^1.3.0",
-            "regex-not": "^1.0.0",
-            "snapdragon": "^0.8.1",
-            "to-regex": "^3.0.2"
-          }
-        }
-      }
-    },
-    "jest-image-snapshot": {
-      "version": "2.8.1",
-      "resolved": "https://registry.npmjs.org/jest-image-snapshot/-/jest-image-snapshot-2.8.1.tgz",
-      "integrity": "sha512-/el/cknCo0pu7nopKg1Hu9PEaFNNIHIDpxxUGxYr/cYO7qSrIFAfUgRPDXGOJN2tqMu1tuwqaO+xlTWV86mjLw==",
-      "requires": {
-        "chalk": "^1.1.3",
-        "get-stdin": "^5.0.1",
-        "lodash": "^4.17.4",
-        "mkdirp": "^0.5.1",
-        "pixelmatch": "^4.0.2",
-        "pngjs": "^3.3.3",
-        "rimraf": "^2.6.2"
-      },
-      "dependencies": {
-        "ansi-styles": {
-          "version": "2.2.1",
-          "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-2.2.1.tgz",
-          "integrity": "sha1-tDLdM1i2NM914eRmQ2gkBTPB3b4="
-        },
-        "chalk": {
-          "version": "1.1.3",
-          "resolved": "https://registry.npmjs.org/chalk/-/chalk-1.1.3.tgz",
-          "integrity": "sha1-qBFcVeSnAv5NFQq9OHKCKn4J/Jg=",
-          "requires": {
-            "ansi-styles": "^2.2.1",
-            "escape-string-regexp": "^1.0.2",
-            "has-ansi": "^2.0.0",
-            "strip-ansi": "^3.0.0",
-            "supports-color": "^2.0.0"
-          }
-        },
-        "get-stdin": {
-          "version": "5.0.1",
-          "resolved": "https://registry.npmjs.org/get-stdin/-/get-stdin-5.0.1.tgz",
-          "integrity": "sha1-Ei4WFZHiH/TFJTAwVpPyDmOTo5g="
-        },
-        "supports-color": {
-          "version": "2.0.0",
-          "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-2.0.0.tgz",
-          "integrity": "sha1-U10EXOa2Nj+kARcIRimZXp3zJMc="
-        }
-      }
-    },
-    "jest-jasmine2": {
-      "version": "24.1.0",
-      "resolved": "https://registry.npmjs.org/jest-jasmine2/-/jest-jasmine2-24.1.0.tgz",
-      "integrity": "sha512-H+o76SdSNyCh9fM5K8upK45YTo/DiFx5w2YAzblQebSQmukDcoVBVeXynyr7DDnxh+0NTHYRCLwJVf3tC518wg==",
-      "dev": true,
-      "requires": {
-        "@babel/traverse": "^7.1.0",
-        "chalk": "^2.0.1",
-        "co": "^4.6.0",
-        "expect": "^24.1.0",
-        "is-generator-fn": "^2.0.0",
-        "jest-each": "^24.0.0",
-        "jest-matcher-utils": "^24.0.0",
-        "jest-message-util": "^24.0.0",
-        "jest-snapshot": "^24.1.0",
-        "jest-util": "^24.0.0",
-        "pretty-format": "^24.0.0",
-        "throat": "^4.0.0"
-      },
-      "dependencies": {
-        "@babel/code-frame": {
-          "version": "7.0.0",
-          "resolved": "https://registry.npmjs.org/@babel/code-frame/-/code-frame-7.0.0.tgz",
-          "integrity": "sha512-OfC2uemaknXr87bdLUkWog7nYuliM9Ij5HUcajsVcMCpQrcLmtxRbVFTIqmcSkSeYRBFBRxs2FiUqFJDLdiebA==",
-          "dev": true,
-          "requires": {
-            "@babel/highlight": "^7.0.0"
-          }
-        },
-        "@babel/generator": {
-          "version": "7.3.3",
-          "resolved": "https://registry.npmjs.org/@babel/generator/-/generator-7.3.3.tgz",
-          "integrity": "sha512-aEADYwRRZjJyMnKN7llGIlircxTCofm3dtV5pmY6ob18MSIuipHpA2yZWkPlycwu5HJcx/pADS3zssd8eY7/6A==",
-          "dev": true,
-          "requires": {
-            "@babel/types": "^7.3.3",
-            "jsesc": "^2.5.1",
-            "lodash": "^4.17.11",
-            "source-map": "^0.5.0",
-            "trim-right": "^1.0.1"
-          }
-        },
-        "@babel/helper-function-name": {
-          "version": "7.1.0",
-          "resolved": "https://registry.npmjs.org/@babel/helper-function-name/-/helper-function-name-7.1.0.tgz",
-          "integrity": "sha512-A95XEoCpb3TO+KZzJ4S/5uW5fNe26DjBGqf1o9ucyLyCmi1dXq/B3c8iaWTfBk3VvetUxl16e8tIrd5teOCfGw==",
-          "dev": true,
-          "requires": {
-            "@babel/helper-get-function-arity": "^7.0.0",
-            "@babel/template": "^7.1.0",
-            "@babel/types": "^7.0.0"
-          }
-        },
-        "@babel/helper-get-function-arity": {
-          "version": "7.0.0",
-          "resolved": "https://registry.npmjs.org/@babel/helper-get-function-arity/-/helper-get-function-arity-7.0.0.tgz",
-          "integrity": "sha512-r2DbJeg4svYvt3HOS74U4eWKsUAMRH01Z1ds1zx8KNTPtpTL5JAsdFv8BNyOpVqdFhHkkRDIg5B4AsxmkjAlmQ==",
-          "dev": true,
-          "requires": {
-            "@babel/types": "^7.0.0"
-          }
-        },
-        "@babel/helper-split-export-declaration": {
-          "version": "7.0.0",
-          "resolved": "https://registry.npmjs.org/@babel/helper-split-export-declaration/-/helper-split-export-declaration-7.0.0.tgz",
-          "integrity": "sha512-MXkOJqva62dfC0w85mEf/LucPPS/1+04nmmRMPEBUB++hiiThQ2zPtX/mEWQ3mtzCEjIJvPY8nuwxXtQeQwUag==",
-          "dev": true,
-          "requires": {
-            "@babel/types": "^7.0.0"
-          }
-        },
-        "@babel/highlight": {
-          "version": "7.0.0",
-          "resolved": "https://registry.npmjs.org/@babel/highlight/-/highlight-7.0.0.tgz",
-          "integrity": "sha512-UFMC4ZeFC48Tpvj7C8UgLvtkaUuovQX+5xNWrsIoMG8o2z+XFKjKaN9iVmS84dPwVN00W4wPmqvYoZF3EGAsfw==",
-          "dev": true,
-          "requires": {
-            "chalk": "^2.0.0",
-            "esutils": "^2.0.2",
-            "js-tokens": "^4.0.0"
-          }
-        },
-        "@babel/parser": {
-          "version": "7.3.3",
-          "resolved": "https://registry.npmjs.org/@babel/parser/-/parser-7.3.3.tgz",
-          "integrity": "sha512-xsH1CJoln2r74hR+y7cg2B5JCPaTh+Hd+EbBRk9nWGSNspuo6krjhX0Om6RnRQuIvFq8wVXCLKH3kwKDYhanSg==",
-          "dev": true
-        },
-        "@babel/template": {
-          "version": "7.2.2",
-          "resolved": "https://registry.npmjs.org/@babel/template/-/template-7.2.2.tgz",
-          "integrity": "sha512-zRL0IMM02AUDwghf5LMSSDEz7sBCO2YnNmpg3uWTZj/v1rcG2BmQUvaGU8GhU8BvfMh1k2KIAYZ7Ji9KXPUg7g==",
-          "dev": true,
-          "requires": {
-            "@babel/code-frame": "^7.0.0",
-            "@babel/parser": "^7.2.2",
-            "@babel/types": "^7.2.2"
-          }
-        },
-        "@babel/traverse": {
-          "version": "7.2.3",
-          "resolved": "https://registry.npmjs.org/@babel/traverse/-/traverse-7.2.3.tgz",
-          "integrity": "sha512-Z31oUD/fJvEWVR0lNZtfgvVt512ForCTNKYcJBGbPb1QZfve4WGH8Wsy7+Mev33/45fhP/hwQtvgusNdcCMgSw==",
-          "dev": true,
-          "requires": {
-            "@babel/code-frame": "^7.0.0",
-            "@babel/generator": "^7.2.2",
-            "@babel/helper-function-name": "^7.1.0",
-            "@babel/helper-split-export-declaration": "^7.0.0",
-            "@babel/parser": "^7.2.3",
-            "@babel/types": "^7.2.2",
-            "debug": "^4.1.0",
-            "globals": "^11.1.0",
-            "lodash": "^4.17.10"
-          }
-        },
-        "@babel/types": {
-          "version": "7.3.3",
-          "resolved": "https://registry.npmjs.org/@babel/types/-/types-7.3.3.tgz",
-          "integrity": "sha512-2tACZ80Wg09UnPg5uGAOUvvInaqLk3l/IAhQzlxLQOIXacr6bMsra5SH6AWw/hIDRCSbCdHP2KzSOD+cT7TzMQ==",
-          "dev": true,
-          "requires": {
-            "esutils": "^2.0.2",
-            "lodash": "^4.17.11",
-            "to-fast-properties": "^2.0.0"
-          }
-        },
-        "debug": {
-          "version": "4.1.1",
-          "resolved": "https://registry.npmjs.org/debug/-/debug-4.1.1.tgz",
-          "integrity": "sha512-pYAIzeRo8J6KPEaJ0VWOh5Pzkbw/RetuzehGM7QRRX5he4fPHx2rdKMB256ehJCkX+XRQm16eZLqLNS8RSZXZw==",
-          "dev": true,
-          "requires": {
-            "ms": "^2.1.1"
-          }
-        },
-        "globals": {
-          "version": "11.11.0",
-          "resolved": "https://registry.npmjs.org/globals/-/globals-11.11.0.tgz",
-          "integrity": "sha512-WHq43gS+6ufNOEqlrDBxVEbb8ntfXrfAUU2ZOpCxrBdGKW3gyv8mCxAfIBD0DroPKGrJ2eSsXsLtY9MPntsyTw==",
-          "dev": true
-        },
-        "js-tokens": {
-          "version": "4.0.0",
-          "resolved": "https://registry.npmjs.org/js-tokens/-/js-tokens-4.0.0.tgz",
-          "integrity": "sha512-RdJUflcE3cUzKiMqQgsCu06FPu9UdIJO0beYbPhHN4k6apgJtifcoCtT9bcxOpYBtpD2kCM6Sbzg4CausW/PKQ==",
-          "dev": true
-        },
-        "jsesc": {
-          "version": "2.5.2",
-          "resolved": "https://registry.npmjs.org/jsesc/-/jsesc-2.5.2.tgz",
-          "integrity": "sha512-OYu7XEzjkCQ3C5Ps3QIZsQfNpqoJyZZA99wd9aWd05NCtC5pWOkShK2mkL6HXQR6/Cy2lbNdPlZBpuQHXE63gA==",
-          "dev": true
-        },
-        "lodash": {
-          "version": "4.17.11",
-          "resolved": "https://registry.npmjs.org/lodash/-/lodash-4.17.11.tgz",
-          "integrity": "sha512-cQKh8igo5QUhZ7lg38DYWAxMvjSAKG0A8wGSVimP07SIUEK2UO+arSRKbRZWtelMtN5V0Hkwh5ryOto/SshYIg==",
-          "dev": true
-        },
-        "ms": {
-          "version": "2.1.1",
-          "resolved": "https://registry.npmjs.org/ms/-/ms-2.1.1.tgz",
-          "integrity": "sha512-tgp+dl5cGk28utYktBsrFqA7HKgrhgPsg6Z/EfhWI4gl1Hwq8B/GmY/0oXZ6nF8hDVesS/FpnYaD/kOWhYQvyg==",
-          "dev": true
-        },
-        "to-fast-properties": {
-          "version": "2.0.0",
-          "resolved": "https://registry.npmjs.org/to-fast-properties/-/to-fast-properties-2.0.0.tgz",
-          "integrity": "sha1-3F5pjL0HkmW8c+A3doGk5Og/YW4=",
-          "dev": true
-        }
-      }
-    },
-    "jest-junit": {
-      "version": "6.3.0",
-      "resolved": "https://registry.npmjs.org/jest-junit/-/jest-junit-6.3.0.tgz",
-      "integrity": "sha512-3PH9UkpaomX6CUzqjlnk0m4yBCW/eroxV6v61OM6LkCQFO848P3YUhfIzu8ypZSBKB3vvCbB4WaLTKT0BrIf8A==",
-      "dev": true,
-      "requires": {
-        "jest-validate": "^24.0.0",
-        "mkdirp": "^0.5.1",
-        "strip-ansi": "^4.0.0",
-        "xml": "^1.0.1"
-      },
-      "dependencies": {
-        "ansi-regex": {
-          "version": "3.0.0",
-          "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-3.0.0.tgz",
-          "integrity": "sha1-7QMXwyIGT3lGbAKWa922Bas32Zg=",
-          "dev": true
-        },
-        "strip-ansi": {
-          "version": "4.0.0",
-          "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-4.0.0.tgz",
-          "integrity": "sha1-qEeQIusaw2iocTibY1JixQXuNo8=",
-          "dev": true,
-          "requires": {
-            "ansi-regex": "^3.0.0"
-          }
-        }
-      }
-    },
-    "jest-leak-detector": {
-      "version": "24.0.0",
-      "resolved": "https://registry.npmjs.org/jest-leak-detector/-/jest-leak-detector-24.0.0.tgz",
-      "integrity": "sha512-ZYHJYFeibxfsDSKowjDP332pStuiFT2xfc5R67Rjm/l+HFJWJgNIOCOlQGeXLCtyUn3A23+VVDdiCcnB6dTTrg==",
-      "dev": true,
-      "requires": {
-        "pretty-format": "^24.0.0"
-      }
-    },
-    "jest-matcher-utils": {
-      "version": "24.0.0",
-      "resolved": "https://registry.npmjs.org/jest-matcher-utils/-/jest-matcher-utils-24.0.0.tgz",
-      "integrity": "sha512-LQTDmO+aWRz1Tf9HJg+HlPHhDh1E1c65kVwRFo5mwCVp5aQDzlkz4+vCvXhOKFjitV2f0kMdHxnODrXVoi+rlA==",
-      "dev": true,
-      "requires": {
-        "chalk": "^2.0.1",
-        "jest-diff": "^24.0.0",
-        "jest-get-type": "^24.0.0",
-        "pretty-format": "^24.0.0"
-      }
-    },
-    "jest-message-util": {
-      "version": "24.0.0",
-      "resolved": "https://registry.npmjs.org/jest-message-util/-/jest-message-util-24.0.0.tgz",
-      "integrity": "sha512-J9ROJIwz/IeC+eV1XSwnRK4oAwPuhmxEyYx1+K5UI+pIYwFZDSrfZaiWTdq0d2xYFw4Xiu+0KQWsdsQpgJMf3Q==",
-      "dev": true,
-      "requires": {
-        "@babel/code-frame": "^7.0.0",
-        "chalk": "^2.0.1",
-        "micromatch": "^3.1.10",
-        "slash": "^2.0.0",
-        "stack-utils": "^1.0.1"
-      },
-      "dependencies": {
-        "@babel/code-frame": {
-          "version": "7.0.0",
-          "resolved": "https://registry.npmjs.org/@babel/code-frame/-/code-frame-7.0.0.tgz",
-          "integrity": "sha512-OfC2uemaknXr87bdLUkWog7nYuliM9Ij5HUcajsVcMCpQrcLmtxRbVFTIqmcSkSeYRBFBRxs2FiUqFJDLdiebA==",
-          "dev": true,
-          "requires": {
-            "@babel/highlight": "^7.0.0"
-          }
-        },
-        "@babel/highlight": {
-          "version": "7.0.0",
-          "resolved": "https://registry.npmjs.org/@babel/highlight/-/highlight-7.0.0.tgz",
-          "integrity": "sha512-UFMC4ZeFC48Tpvj7C8UgLvtkaUuovQX+5xNWrsIoMG8o2z+XFKjKaN9iVmS84dPwVN00W4wPmqvYoZF3EGAsfw==",
-          "dev": true,
-          "requires": {
-            "chalk": "^2.0.0",
-            "esutils": "^2.0.2",
-            "js-tokens": "^4.0.0"
-          }
-        },
-        "arr-diff": {
-          "version": "4.0.0",
-          "resolved": "https://registry.npmjs.org/arr-diff/-/arr-diff-4.0.0.tgz",
-          "integrity": "sha1-1kYQdP6/7HHn4VI1dhoyml3HxSA=",
-          "dev": true
-        },
-        "array-unique": {
-          "version": "0.3.2",
-          "resolved": "https://registry.npmjs.org/array-unique/-/array-unique-0.3.2.tgz",
-          "integrity": "sha1-qJS3XUvE9s1nnvMkSp/Y9Gri1Cg=",
-          "dev": true
-        },
-        "braces": {
-          "version": "2.3.2",
-          "resolved": "https://registry.npmjs.org/braces/-/braces-2.3.2.tgz",
-          "integrity": "sha512-aNdbnj9P8PjdXU4ybaWLK2IF3jc/EoDYbC7AazW6to3TRsfXxscC9UXOB5iDiEQrkyIbWp2SLQda4+QAa7nc3w==",
-          "dev": true,
-          "requires": {
-            "arr-flatten": "^1.1.0",
-            "array-unique": "^0.3.2",
-            "extend-shallow": "^2.0.1",
-            "fill-range": "^4.0.0",
-            "isobject": "^3.0.1",
-            "repeat-element": "^1.1.2",
-            "snapdragon": "^0.8.1",
-            "snapdragon-node": "^2.0.1",
-            "split-string": "^3.0.2",
-            "to-regex": "^3.0.1"
-          },
-          "dependencies": {
-            "extend-shallow": {
-              "version": "2.0.1",
-              "resolved": "https://registry.npmjs.org/extend-shallow/-/extend-shallow-2.0.1.tgz",
-              "integrity": "sha1-Ua99YUrZqfYQ6huvu5idaxxWiQ8=",
-              "dev": true,
-              "requires": {
-                "is-extendable": "^0.1.0"
-              }
-            }
-          }
-        },
-        "expand-brackets": {
-          "version": "2.1.4",
-          "resolved": "https://registry.npmjs.org/expand-brackets/-/expand-brackets-2.1.4.tgz",
-          "integrity": "sha1-t3c14xXOMPa27/D4OwQVGiJEliI=",
-          "dev": true,
-          "requires": {
-            "debug": "^2.3.3",
-            "define-property": "^0.2.5",
-            "extend-shallow": "^2.0.1",
-            "posix-character-classes": "^0.1.0",
-            "regex-not": "^1.0.0",
-            "snapdragon": "^0.8.1",
-            "to-regex": "^3.0.1"
-          },
-          "dependencies": {
-            "define-property": {
-              "version": "0.2.5",
-              "resolved": "https://registry.npmjs.org/define-property/-/define-property-0.2.5.tgz",
-              "integrity": "sha1-w1se+RjsPJkPmlvFe+BKrOxcgRY=",
-              "dev": true,
-              "requires": {
-                "is-descriptor": "^0.1.0"
-              }
-            },
-            "extend-shallow": {
-              "version": "2.0.1",
-              "resolved": "https://registry.npmjs.org/extend-shallow/-/extend-shallow-2.0.1.tgz",
-              "integrity": "sha1-Ua99YUrZqfYQ6huvu5idaxxWiQ8=",
-              "dev": true,
-              "requires": {
-                "is-extendable": "^0.1.0"
-              }
-            },
-            "is-descriptor": {
-              "version": "0.1.6",
-              "resolved": "https://registry.npmjs.org/is-descriptor/-/is-descriptor-0.1.6.tgz",
-              "integrity": "sha512-avDYr0SB3DwO9zsMov0gKCESFYqCnE4hq/4z3TdUlukEy5t9C0YRq7HLrsN52NAcqXKaepeCD0n+B0arnVG3Hg==",
-              "dev": true,
-              "requires": {
-                "is-accessor-descriptor": "^0.1.6",
-                "is-data-descriptor": "^0.1.4",
-                "kind-of": "^5.0.0"
-              }
-            },
-            "kind-of": {
-              "version": "5.1.0",
-              "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-5.1.0.tgz",
-              "integrity": "sha512-NGEErnH6F2vUuXDh+OlbcKW7/wOcfdRHaZ7VWtqCztfHri/++YKmP51OdWeGPuqCOba6kk2OTe5d02VmTB80Pw==",
-              "dev": true
-            }
-          }
-        },
-        "extglob": {
-          "version": "2.0.4",
-          "resolved": "https://registry.npmjs.org/extglob/-/extglob-2.0.4.tgz",
-          "integrity": "sha512-Nmb6QXkELsuBr24CJSkilo6UHHgbekK5UiZgfE6UHD3Eb27YC6oD+bhcT+tJ6cl8dmsgdQxnWlcry8ksBIBLpw==",
-          "dev": true,
-          "requires": {
-            "array-unique": "^0.3.2",
-            "define-property": "^1.0.0",
-            "expand-brackets": "^2.1.4",
-            "extend-shallow": "^2.0.1",
-            "fragment-cache": "^0.2.1",
-            "regex-not": "^1.0.0",
-            "snapdragon": "^0.8.1",
-            "to-regex": "^3.0.1"
-          },
-          "dependencies": {
-            "define-property": {
-              "version": "1.0.0",
-              "resolved": "https://registry.npmjs.org/define-property/-/define-property-1.0.0.tgz",
-              "integrity": "sha1-dp66rz9KY6rTr56NMEybvnm/sOY=",
-              "dev": true,
-              "requires": {
-                "is-descriptor": "^1.0.0"
-              }
-            },
-            "extend-shallow": {
-              "version": "2.0.1",
-              "resolved": "https://registry.npmjs.org/extend-shallow/-/extend-shallow-2.0.1.tgz",
-              "integrity": "sha1-Ua99YUrZqfYQ6huvu5idaxxWiQ8=",
-              "dev": true,
-              "requires": {
-                "is-extendable": "^0.1.0"
-              }
-            }
-          }
-        },
-        "fill-range": {
-          "version": "4.0.0",
-          "resolved": "https://registry.npmjs.org/fill-range/-/fill-range-4.0.0.tgz",
-          "integrity": "sha1-1USBHUKPmOsGpj3EAtJAPDKMOPc=",
-          "dev": true,
-          "requires": {
-            "extend-shallow": "^2.0.1",
-            "is-number": "^3.0.0",
-            "repeat-string": "^1.6.1",
-            "to-regex-range": "^2.1.0"
-          },
-          "dependencies": {
-            "extend-shallow": {
-              "version": "2.0.1",
-              "resolved": "https://registry.npmjs.org/extend-shallow/-/extend-shallow-2.0.1.tgz",
-              "integrity": "sha1-Ua99YUrZqfYQ6huvu5idaxxWiQ8=",
-              "dev": true,
-              "requires": {
-                "is-extendable": "^0.1.0"
-              }
-            }
-          }
-        },
-        "is-accessor-descriptor": {
-          "version": "0.1.6",
-          "resolved": "https://registry.npmjs.org/is-accessor-descriptor/-/is-accessor-descriptor-0.1.6.tgz",
-          "integrity": "sha1-qeEss66Nh2cn7u84Q/igiXtcmNY=",
-          "dev": true,
-          "requires": {
-            "kind-of": "^3.0.2"
-          },
-          "dependencies": {
-            "kind-of": {
-              "version": "3.2.2",
-              "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-3.2.2.tgz",
-              "integrity": "sha1-MeohpzS6ubuw8yRm2JOupR5KPGQ=",
-              "dev": true,
-              "requires": {
-                "is-buffer": "^1.1.5"
-              }
-            }
-          }
-        },
-        "is-data-descriptor": {
-          "version": "0.1.4",
-          "resolved": "https://registry.npmjs.org/is-data-descriptor/-/is-data-descriptor-0.1.4.tgz",
-          "integrity": "sha1-C17mSDiOLIYCgueT8YVv7D8wG1Y=",
-          "dev": true,
-          "requires": {
-            "kind-of": "^3.0.2"
-          },
-          "dependencies": {
-            "kind-of": {
-              "version": "3.2.2",
-              "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-3.2.2.tgz",
-              "integrity": "sha1-MeohpzS6ubuw8yRm2JOupR5KPGQ=",
-              "dev": true,
-              "requires": {
-                "is-buffer": "^1.1.5"
-              }
-            }
-          }
-        },
-        "is-number": {
-          "version": "3.0.0",
-          "resolved": "https://registry.npmjs.org/is-number/-/is-number-3.0.0.tgz",
-          "integrity": "sha1-JP1iAaR4LPUFYcgQJ2r8fRLXEZU=",
-          "dev": true,
-          "requires": {
-            "kind-of": "^3.0.2"
-          },
-          "dependencies": {
-            "kind-of": {
-              "version": "3.2.2",
-              "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-3.2.2.tgz",
-              "integrity": "sha1-MeohpzS6ubuw8yRm2JOupR5KPGQ=",
-              "dev": true,
-              "requires": {
-                "is-buffer": "^1.1.5"
-              }
-            }
-          }
-        },
-        "isobject": {
-          "version": "3.0.1",
-          "resolved": "https://registry.npmjs.org/isobject/-/isobject-3.0.1.tgz",
-          "integrity": "sha1-TkMekrEalzFjaqH5yNHMvP2reN8=",
-          "dev": true
-        },
-        "js-tokens": {
-          "version": "4.0.0",
-          "resolved": "https://registry.npmjs.org/js-tokens/-/js-tokens-4.0.0.tgz",
-          "integrity": "sha512-RdJUflcE3cUzKiMqQgsCu06FPu9UdIJO0beYbPhHN4k6apgJtifcoCtT9bcxOpYBtpD2kCM6Sbzg4CausW/PKQ==",
-          "dev": true
-        },
-        "kind-of": {
-          "version": "6.0.2",
-          "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-6.0.2.tgz",
-          "integrity": "sha512-s5kLOcnH0XqDO+FvuaLX8DDjZ18CGFk7VygH40QoKPUQhW4e2rvM0rwUq0t8IQDOwYSeLK01U90OjzBTme2QqA==",
-          "dev": true
-        },
-        "micromatch": {
-          "version": "3.1.10",
-          "resolved": "https://registry.npmjs.org/micromatch/-/micromatch-3.1.10.tgz",
-          "integrity": "sha512-MWikgl9n9M3w+bpsY3He8L+w9eF9338xRl8IAO5viDizwSzziFEyUzo2xrrloB64ADbTf8uA8vRqqttDTOmccg==",
-          "dev": true,
-          "requires": {
-            "arr-diff": "^4.0.0",
-            "array-unique": "^0.3.2",
-            "braces": "^2.3.1",
-            "define-property": "^2.0.2",
-            "extend-shallow": "^3.0.2",
-            "extglob": "^2.0.4",
-            "fragment-cache": "^0.2.1",
-            "kind-of": "^6.0.2",
-            "nanomatch": "^1.2.9",
-            "object.pick": "^1.3.0",
-            "regex-not": "^1.0.0",
-            "snapdragon": "^0.8.1",
-            "to-regex": "^3.0.2"
-          }
-        },
-        "slash": {
-          "version": "2.0.0",
-          "resolved": "https://registry.npmjs.org/slash/-/slash-2.0.0.tgz",
-          "integrity": "sha512-ZYKh3Wh2z1PpEXWr0MpSBZ0V6mZHAQfYevttO11c51CaWjGTaadiKZ+wVt1PbMlDV5qhMFslpZCemhwOK7C89A==",
-          "dev": true
-        }
-      }
-    },
-    "jest-mock": {
-      "version": "24.0.0",
-      "resolved": "https://registry.npmjs.org/jest-mock/-/jest-mock-24.0.0.tgz",
-      "integrity": "sha512-sQp0Hu5fcf5NZEh1U9eIW2qD0BwJZjb63Yqd98PQJFvf/zzUTBoUAwv/Dc/HFeNHIw1f3hl/48vNn+j3STaI7A==",
-      "dev": true
-    },
-    "jest-preset-angular": {
-      "version": "6.0.2",
-      "resolved": "https://registry.npmjs.org/jest-preset-angular/-/jest-preset-angular-6.0.2.tgz",
-      "integrity": "sha512-uhrllY41tUvkeR41aX9bU5w3/EvvmwZiJ3UitDhRSEJL2Jvq2N/xKlmw7qvlZoGZnciFjOUJ2WDKv5fmCrvnQA==",
-      "requires": {
-        "jest-zone-patch": ">=0.0.9 <1.0.0",
-        "ts-jest": "~23.1.3"
-      }
-    },
-    "jest-regex-util": {
-      "version": "24.0.0",
-      "resolved": "https://registry.npmjs.org/jest-regex-util/-/jest-regex-util-24.0.0.tgz",
-      "integrity": "sha512-Jv/uOTCuC+PY7WpJl2mpoI+WbY2ut73qwwO9ByJJNwOCwr1qWhEW2Lyi2S9ZewUdJqeVpEBisdEVZSI+Zxo58Q==",
-      "dev": true
-    },
-    "jest-resolve": {
-      "version": "24.1.0",
-      "resolved": "https://registry.npmjs.org/jest-resolve/-/jest-resolve-24.1.0.tgz",
-      "integrity": "sha512-TPiAIVp3TG6zAxH28u/6eogbwrvZjBMWroSLBDkwkHKrqxB/RIdwkWDye4uqPlZIXWIaHtifY3L0/eO5Z0f2wg==",
-      "dev": true,
-      "requires": {
-        "browser-resolve": "^1.11.3",
-        "chalk": "^2.0.1",
-        "realpath-native": "^1.0.0"
-      }
-    },
-    "jest-resolve-dependencies": {
-      "version": "24.1.0",
-      "resolved": "https://registry.npmjs.org/jest-resolve-dependencies/-/jest-resolve-dependencies-24.1.0.tgz",
-      "integrity": "sha512-2VwPsjd3kRPu7qe2cpytAgowCObk5AKeizfXuuiwgm1a9sijJDZe8Kh1sFj6FKvSaNEfCPlBVkZEJa2482m/Uw==",
-      "dev": true,
-      "requires": {
-        "jest-regex-util": "^24.0.0",
-        "jest-snapshot": "^24.1.0"
-      }
-    },
-    "jest-runner": {
-      "version": "24.1.0",
-      "resolved": "https://registry.npmjs.org/jest-runner/-/jest-runner-24.1.0.tgz",
-      "integrity": "sha512-CDGOkT3AIFl16BLL/OdbtYgYvbAprwJ+ExKuLZmGSCSldwsuU2dEGauqkpvd9nphVdAnJUcP12e/EIlnTX0QXg==",
-      "dev": true,
-      "requires": {
-        "chalk": "^2.4.2",
-        "exit": "^0.1.2",
-        "graceful-fs": "^4.1.15",
-        "jest-config": "^24.1.0",
-        "jest-docblock": "^24.0.0",
-        "jest-haste-map": "^24.0.0",
-        "jest-jasmine2": "^24.1.0",
-        "jest-leak-detector": "^24.0.0",
-        "jest-message-util": "^24.0.0",
-        "jest-runtime": "^24.1.0",
-        "jest-util": "^24.0.0",
-        "jest-worker": "^24.0.0",
-        "source-map-support": "^0.5.6",
-        "throat": "^4.0.0"
-      },
-      "dependencies": {
-        "chalk": {
-          "version": "2.4.2",
-          "resolved": "https://registry.npmjs.org/chalk/-/chalk-2.4.2.tgz",
-          "integrity": "sha512-Mti+f9lpJNcwF4tWV8/OrTTtF1gZi+f8FqlyAdouralcFWFQWF2+NgCHShjkCb+IFBLq9buZwE1xckQU4peSuQ==",
-          "dev": true,
-          "requires": {
-            "ansi-styles": "^3.2.1",
-            "escape-string-regexp": "^1.0.5",
-            "supports-color": "^5.3.0"
-          }
-        },
-        "graceful-fs": {
-          "version": "4.1.15",
-          "resolved": "https://registry.npmjs.org/graceful-fs/-/graceful-fs-4.1.15.tgz",
-          "integrity": "sha512-6uHUhOPEBgQ24HM+r6b/QwWfZq+yiFcipKFrOFiBEnWdy5sdzYoi+pJeQaPI5qOLRFqWmAXUPQNsielzdLoecA==",
-          "dev": true
-        },
-        "has-flag": {
-          "version": "3.0.0",
-          "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-3.0.0.tgz",
-          "integrity": "sha1-tdRU3CGZriJWmfNGfloH87lVuv0=",
-          "dev": true
-        },
-        "source-map": {
-          "version": "0.6.1",
-          "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.6.1.tgz",
-          "integrity": "sha512-UjgapumWlbMhkBgzT7Ykc5YXUT46F0iKu8SGXq0bcwP5dz/h0Plj6enJqjz1Zbq2l5WaqYnrVbwWOWMyF3F47g==",
-          "dev": true
-        },
-        "source-map-support": {
-          "version": "0.5.10",
-          "resolved": "https://registry.npmjs.org/source-map-support/-/source-map-support-0.5.10.tgz",
-          "integrity": "sha512-YfQ3tQFTK/yzlGJuX8pTwa4tifQj4QS2Mj7UegOu8jAz59MqIiMGPXxQhVQiIMNzayuUSF/jEuVnfFF5JqybmQ==",
-          "dev": true,
-          "requires": {
-            "buffer-from": "^1.0.0",
-            "source-map": "^0.6.0"
-          }
-        },
-        "supports-color": {
-          "version": "5.5.0",
-          "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-5.5.0.tgz",
-          "integrity": "sha512-QjVjwdXIt408MIiAqCX4oUKsgU2EqAGzs2Ppkm4aQYbjm+ZEWEcW4SfFNTr4uMNZma0ey4f5lgLrkB0aX0QMow==",
-          "dev": true,
-          "requires": {
-            "has-flag": "^3.0.0"
-          }
-        }
-      }
-    },
-    "jest-runtime": {
-      "version": "24.1.0",
-      "resolved": "https://registry.npmjs.org/jest-runtime/-/jest-runtime-24.1.0.tgz",
-      "integrity": "sha512-59/BY6OCuTXxGeDhEMU7+N33dpMQyXq7MLK07cNSIY/QYt2QZgJ7Tjx+rykBI0skAoigFl0A5tmT8UdwX92YuQ==",
-      "dev": true,
-      "requires": {
-        "@babel/core": "^7.1.0",
-        "babel-plugin-istanbul": "^5.1.0",
-        "chalk": "^2.0.1",
-        "convert-source-map": "^1.4.0",
-        "exit": "^0.1.2",
-        "fast-json-stable-stringify": "^2.0.0",
-        "glob": "^7.1.3",
-        "graceful-fs": "^4.1.15",
-        "jest-config": "^24.1.0",
-        "jest-haste-map": "^24.0.0",
-        "jest-message-util": "^24.0.0",
-        "jest-regex-util": "^24.0.0",
-        "jest-resolve": "^24.1.0",
-        "jest-snapshot": "^24.1.0",
-        "jest-util": "^24.0.0",
-        "jest-validate": "^24.0.0",
-        "micromatch": "^3.1.10",
-        "realpath-native": "^1.0.0",
-        "slash": "^2.0.0",
-        "strip-bom": "^3.0.0",
-        "write-file-atomic": "2.4.1",
-        "yargs": "^12.0.2"
-      },
-      "dependencies": {
-        "ansi-regex": {
-          "version": "3.0.0",
-          "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-3.0.0.tgz",
-          "integrity": "sha1-7QMXwyIGT3lGbAKWa922Bas32Zg=",
-          "dev": true
-        },
-        "arr-diff": {
-          "version": "4.0.0",
-          "resolved": "https://registry.npmjs.org/arr-diff/-/arr-diff-4.0.0.tgz",
-          "integrity": "sha1-1kYQdP6/7HHn4VI1dhoyml3HxSA=",
-          "dev": true
-        },
-        "array-unique": {
-          "version": "0.3.2",
-          "resolved": "https://registry.npmjs.org/array-unique/-/array-unique-0.3.2.tgz",
-          "integrity": "sha1-qJS3XUvE9s1nnvMkSp/Y9Gri1Cg=",
-          "dev": true
-        },
-        "braces": {
-          "version": "2.3.2",
-          "resolved": "https://registry.npmjs.org/braces/-/braces-2.3.2.tgz",
-          "integrity": "sha512-aNdbnj9P8PjdXU4ybaWLK2IF3jc/EoDYbC7AazW6to3TRsfXxscC9UXOB5iDiEQrkyIbWp2SLQda4+QAa7nc3w==",
-          "dev": true,
-          "requires": {
-            "arr-flatten": "^1.1.0",
-            "array-unique": "^0.3.2",
-            "extend-shallow": "^2.0.1",
-            "fill-range": "^4.0.0",
-            "isobject": "^3.0.1",
-            "repeat-element": "^1.1.2",
-            "snapdragon": "^0.8.1",
-            "snapdragon-node": "^2.0.1",
-            "split-string": "^3.0.2",
-            "to-regex": "^3.0.1"
-          },
-          "dependencies": {
-            "extend-shallow": {
-              "version": "2.0.1",
-              "resolved": "https://registry.npmjs.org/extend-shallow/-/extend-shallow-2.0.1.tgz",
-              "integrity": "sha1-Ua99YUrZqfYQ6huvu5idaxxWiQ8=",
-              "dev": true,
-              "requires": {
-                "is-extendable": "^0.1.0"
-              }
-            }
-          }
-        },
-        "camelcase": {
-          "version": "5.0.0",
-          "resolved": "https://registry.npmjs.org/camelcase/-/camelcase-5.0.0.tgz",
-          "integrity": "sha512-faqwZqnWxbxn+F1d399ygeamQNy3lPp/H9H6rNrqYh4FSVCtcY+3cub1MxA8o9mDd55mM8Aghuu/kuyYA6VTsA==",
-          "dev": true
-        },
-        "cliui": {
-          "version": "4.1.0",
-          "resolved": "https://registry.npmjs.org/cliui/-/cliui-4.1.0.tgz",
-          "integrity": "sha512-4FG+RSG9DL7uEwRUZXZn3SS34DiDPfzP0VOiEwtUWlE+AR2EIg+hSyvrIgUUfhdgR/UkAeW2QHgeP+hWrXs7jQ==",
-          "dev": true,
-          "requires": {
-            "string-width": "^2.1.1",
-            "strip-ansi": "^4.0.0",
-            "wrap-ansi": "^2.0.0"
-          }
-        },
-        "cross-spawn": {
-          "version": "6.0.5",
-          "resolved": "https://registry.npmjs.org/cross-spawn/-/cross-spawn-6.0.5.tgz",
-          "integrity": "sha512-eTVLrBSt7fjbDygz805pMnstIs2VTBNkRm0qxZd+M7A5XDdxVRWO5MxGBXZhjY4cqLYLdtrGqRf8mBPmzwSpWQ==",
-          "dev": true,
-          "requires": {
-            "nice-try": "^1.0.4",
-            "path-key": "^2.0.1",
-            "semver": "^5.5.0",
-            "shebang-command": "^1.2.0",
-            "which": "^1.2.9"
-          }
-        },
-        "execa": {
-          "version": "1.0.0",
-          "resolved": "https://registry.npmjs.org/execa/-/execa-1.0.0.tgz",
-          "integrity": "sha512-adbxcyWV46qiHyvSp50TKt05tB4tK3HcmF7/nxfAdhnox83seTDbwnaqKO4sXRy7roHAIFqJP/Rw/AuEbX61LA==",
-          "dev": true,
-          "requires": {
-            "cross-spawn": "^6.0.0",
-            "get-stream": "^4.0.0",
-            "is-stream": "^1.1.0",
-            "npm-run-path": "^2.0.0",
-            "p-finally": "^1.0.0",
-            "signal-exit": "^3.0.0",
-            "strip-eof": "^1.0.0"
-          }
-        },
-        "expand-brackets": {
-          "version": "2.1.4",
-          "resolved": "https://registry.npmjs.org/expand-brackets/-/expand-brackets-2.1.4.tgz",
-          "integrity": "sha1-t3c14xXOMPa27/D4OwQVGiJEliI=",
-          "dev": true,
-          "requires": {
-            "debug": "^2.3.3",
-            "define-property": "^0.2.5",
-            "extend-shallow": "^2.0.1",
-            "posix-character-classes": "^0.1.0",
-            "regex-not": "^1.0.0",
-            "snapdragon": "^0.8.1",
-            "to-regex": "^3.0.1"
-          },
-          "dependencies": {
-            "define-property": {
-              "version": "0.2.5",
-              "resolved": "https://registry.npmjs.org/define-property/-/define-property-0.2.5.tgz",
-              "integrity": "sha1-w1se+RjsPJkPmlvFe+BKrOxcgRY=",
-              "dev": true,
-              "requires": {
-                "is-descriptor": "^0.1.0"
-              }
-            },
-            "extend-shallow": {
-              "version": "2.0.1",
-              "resolved": "https://registry.npmjs.org/extend-shallow/-/extend-shallow-2.0.1.tgz",
-              "integrity": "sha1-Ua99YUrZqfYQ6huvu5idaxxWiQ8=",
-              "dev": true,
-              "requires": {
-                "is-extendable": "^0.1.0"
-              }
-            },
-            "is-descriptor": {
-              "version": "0.1.6",
-              "resolved": "https://registry.npmjs.org/is-descriptor/-/is-descriptor-0.1.6.tgz",
-              "integrity": "sha512-avDYr0SB3DwO9zsMov0gKCESFYqCnE4hq/4z3TdUlukEy5t9C0YRq7HLrsN52NAcqXKaepeCD0n+B0arnVG3Hg==",
-              "dev": true,
-              "requires": {
-                "is-accessor-descriptor": "^0.1.6",
-                "is-data-descriptor": "^0.1.4",
-                "kind-of": "^5.0.0"
-              }
-            },
-            "kind-of": {
-              "version": "5.1.0",
-              "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-5.1.0.tgz",
-              "integrity": "sha512-NGEErnH6F2vUuXDh+OlbcKW7/wOcfdRHaZ7VWtqCztfHri/++YKmP51OdWeGPuqCOba6kk2OTe5d02VmTB80Pw==",
-              "dev": true
-            }
-          }
-        },
-        "extglob": {
-          "version": "2.0.4",
-          "resolved": "https://registry.npmjs.org/extglob/-/extglob-2.0.4.tgz",
-          "integrity": "sha512-Nmb6QXkELsuBr24CJSkilo6UHHgbekK5UiZgfE6UHD3Eb27YC6oD+bhcT+tJ6cl8dmsgdQxnWlcry8ksBIBLpw==",
-          "dev": true,
-          "requires": {
-            "array-unique": "^0.3.2",
-            "define-property": "^1.0.0",
-            "expand-brackets": "^2.1.4",
-            "extend-shallow": "^2.0.1",
-            "fragment-cache": "^0.2.1",
-            "regex-not": "^1.0.0",
-            "snapdragon": "^0.8.1",
-            "to-regex": "^3.0.1"
-          },
-          "dependencies": {
-            "define-property": {
-              "version": "1.0.0",
-              "resolved": "https://registry.npmjs.org/define-property/-/define-property-1.0.0.tgz",
-              "integrity": "sha1-dp66rz9KY6rTr56NMEybvnm/sOY=",
-              "dev": true,
-              "requires": {
-                "is-descriptor": "^1.0.0"
-              }
-            },
-            "extend-shallow": {
-              "version": "2.0.1",
-              "resolved": "https://registry.npmjs.org/extend-shallow/-/extend-shallow-2.0.1.tgz",
-              "integrity": "sha1-Ua99YUrZqfYQ6huvu5idaxxWiQ8=",
-              "dev": true,
-              "requires": {
-                "is-extendable": "^0.1.0"
-              }
-            }
-          }
-        },
-        "fill-range": {
-          "version": "4.0.0",
-          "resolved": "https://registry.npmjs.org/fill-range/-/fill-range-4.0.0.tgz",
-          "integrity": "sha1-1USBHUKPmOsGpj3EAtJAPDKMOPc=",
-          "dev": true,
-          "requires": {
-            "extend-shallow": "^2.0.1",
-            "is-number": "^3.0.0",
-            "repeat-string": "^1.6.1",
-            "to-regex-range": "^2.1.0"
-          },
-          "dependencies": {
-            "extend-shallow": {
-              "version": "2.0.1",
-              "resolved": "https://registry.npmjs.org/extend-shallow/-/extend-shallow-2.0.1.tgz",
-              "integrity": "sha1-Ua99YUrZqfYQ6huvu5idaxxWiQ8=",
-              "dev": true,
-              "requires": {
-                "is-extendable": "^0.1.0"
-              }
-            }
-          }
-        },
-        "find-up": {
-          "version": "3.0.0",
-          "resolved": "https://registry.npmjs.org/find-up/-/find-up-3.0.0.tgz",
-          "integrity": "sha512-1yD6RmLI1XBfxugvORwlck6f75tYL+iR0jqwsOrOxMZyGYqUuDhJ0l4AXdO1iX/FTs9cBAMEk1gWSEx1kSbylg==",
-          "dev": true,
-          "requires": {
-            "locate-path": "^3.0.0"
-          }
-        },
-        "get-stream": {
-          "version": "4.1.0",
-          "resolved": "https://registry.npmjs.org/get-stream/-/get-stream-4.1.0.tgz",
-          "integrity": "sha512-GMat4EJ5161kIy2HevLlr4luNjBgvmj413KaQA7jt4V8B4RDsfpHk7WQ9GVqfYyyx8OS/L66Kox+rJRNklLK7w==",
-          "dev": true,
-          "requires": {
-            "pump": "^3.0.0"
-          }
-        },
-        "glob": {
-          "version": "7.1.3",
-          "resolved": "https://registry.npmjs.org/glob/-/glob-7.1.3.tgz",
-          "integrity": "sha512-vcfuiIxogLV4DlGBHIUOwI0IbrJ8HWPc4MU7HzviGeNho/UJDfi6B5p3sHeWIQ0KGIU0Jpxi5ZHxemQfLkkAwQ==",
-          "dev": true,
-          "requires": {
-            "fs.realpath": "^1.0.0",
-            "inflight": "^1.0.4",
-            "inherits": "2",
-            "minimatch": "^3.0.4",
-            "once": "^1.3.0",
-            "path-is-absolute": "^1.0.0"
-          }
-        },
-        "graceful-fs": {
-          "version": "4.1.15",
-          "resolved": "https://registry.npmjs.org/graceful-fs/-/graceful-fs-4.1.15.tgz",
-          "integrity": "sha512-6uHUhOPEBgQ24HM+r6b/QwWfZq+yiFcipKFrOFiBEnWdy5sdzYoi+pJeQaPI5qOLRFqWmAXUPQNsielzdLoecA==",
-          "dev": true
-        },
-        "invert-kv": {
-          "version": "2.0.0",
-          "resolved": "https://registry.npmjs.org/invert-kv/-/invert-kv-2.0.0.tgz",
-          "integrity": "sha512-wPVv/y/QQ/Uiirj/vh3oP+1Ww+AWehmi1g5fFWGPF6IpCBCDVrhgHRMvrLfdYcwDh3QJbGXDW4JAuzxElLSqKA==",
-          "dev": true
-        },
-        "is-accessor-descriptor": {
-          "version": "0.1.6",
-          "resolved": "https://registry.npmjs.org/is-accessor-descriptor/-/is-accessor-descriptor-0.1.6.tgz",
-          "integrity": "sha1-qeEss66Nh2cn7u84Q/igiXtcmNY=",
-          "dev": true,
-          "requires": {
-            "kind-of": "^3.0.2"
-          },
-          "dependencies": {
-            "kind-of": {
-              "version": "3.2.2",
-              "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-3.2.2.tgz",
-              "integrity": "sha1-MeohpzS6ubuw8yRm2JOupR5KPGQ=",
-              "dev": true,
-              "requires": {
-                "is-buffer": "^1.1.5"
-              }
-            }
-          }
-        },
-        "is-data-descriptor": {
-          "version": "0.1.4",
-          "resolved": "https://registry.npmjs.org/is-data-descriptor/-/is-data-descriptor-0.1.4.tgz",
-          "integrity": "sha1-C17mSDiOLIYCgueT8YVv7D8wG1Y=",
-          "dev": true,
-          "requires": {
-            "kind-of": "^3.0.2"
-          },
-          "dependencies": {
-            "kind-of": {
-              "version": "3.2.2",
-              "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-3.2.2.tgz",
-              "integrity": "sha1-MeohpzS6ubuw8yRm2JOupR5KPGQ=",
-              "dev": true,
-              "requires": {
-                "is-buffer": "^1.1.5"
-              }
-            }
-          }
-        },
-        "is-fullwidth-code-point": {
-          "version": "2.0.0",
-          "resolved": "https://registry.npmjs.org/is-fullwidth-code-point/-/is-fullwidth-code-point-2.0.0.tgz",
-          "integrity": "sha1-o7MKXE8ZkYMWeqq5O+764937ZU8=",
-          "dev": true
-        },
-        "is-number": {
-          "version": "3.0.0",
-          "resolved": "https://registry.npmjs.org/is-number/-/is-number-3.0.0.tgz",
-          "integrity": "sha1-JP1iAaR4LPUFYcgQJ2r8fRLXEZU=",
-          "dev": true,
-          "requires": {
-            "kind-of": "^3.0.2"
-          },
-          "dependencies": {
-            "kind-of": {
-              "version": "3.2.2",
-              "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-3.2.2.tgz",
-              "integrity": "sha1-MeohpzS6ubuw8yRm2JOupR5KPGQ=",
-              "dev": true,
-              "requires": {
-                "is-buffer": "^1.1.5"
-              }
-            }
-          }
-        },
-        "isobject": {
-          "version": "3.0.1",
-          "resolved": "https://registry.npmjs.org/isobject/-/isobject-3.0.1.tgz",
-          "integrity": "sha1-TkMekrEalzFjaqH5yNHMvP2reN8=",
-          "dev": true
-        },
-        "kind-of": {
-          "version": "6.0.2",
-          "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-6.0.2.tgz",
-          "integrity": "sha512-s5kLOcnH0XqDO+FvuaLX8DDjZ18CGFk7VygH40QoKPUQhW4e2rvM0rwUq0t8IQDOwYSeLK01U90OjzBTme2QqA==",
-          "dev": true
-        },
-        "lcid": {
-          "version": "2.0.0",
-          "resolved": "https://registry.npmjs.org/lcid/-/lcid-2.0.0.tgz",
-          "integrity": "sha512-avPEb8P8EGnwXKClwsNUgryVjllcRqtMYa49NTsbQagYuT1DcXnl1915oxWjoyGrXR6zH/Y0Zc96xWsPcoDKeA==",
-          "dev": true,
-          "requires": {
-            "invert-kv": "^2.0.0"
-          }
-        },
-        "locate-path": {
-          "version": "3.0.0",
-          "resolved": "https://registry.npmjs.org/locate-path/-/locate-path-3.0.0.tgz",
-          "integrity": "sha512-7AO748wWnIhNqAuaty2ZWHkQHRSNfPVIsPIfwEOWO22AmaoVrWavlOcMR5nzTLNYvp36X220/maaRsrec1G65A==",
-          "dev": true,
-          "requires": {
-            "p-locate": "^3.0.0",
-            "path-exists": "^3.0.0"
-          }
-        },
-        "mem": {
-          "version": "4.1.0",
-          "resolved": "https://registry.npmjs.org/mem/-/mem-4.1.0.tgz",
-          "integrity": "sha512-I5u6Q1x7wxO0kdOpYBB28xueHADYps5uty/zg936CiG8NTe5sJL8EjrCuLneuDW3PlMdZBGDIn8BirEVdovZvg==",
-          "dev": true,
-          "requires": {
-            "map-age-cleaner": "^0.1.1",
-            "mimic-fn": "^1.0.0",
-            "p-is-promise": "^2.0.0"
-          }
-        },
-        "micromatch": {
-          "version": "3.1.10",
-          "resolved": "https://registry.npmjs.org/micromatch/-/micromatch-3.1.10.tgz",
-          "integrity": "sha512-MWikgl9n9M3w+bpsY3He8L+w9eF9338xRl8IAO5viDizwSzziFEyUzo2xrrloB64ADbTf8uA8vRqqttDTOmccg==",
-          "dev": true,
-          "requires": {
-            "arr-diff": "^4.0.0",
-            "array-unique": "^0.3.2",
-            "braces": "^2.3.1",
-            "define-property": "^2.0.2",
-            "extend-shallow": "^3.0.2",
-            "extglob": "^2.0.4",
-            "fragment-cache": "^0.2.1",
-            "kind-of": "^6.0.2",
-            "nanomatch": "^1.2.9",
-            "object.pick": "^1.3.0",
-            "regex-not": "^1.0.0",
-            "snapdragon": "^0.8.1",
-            "to-regex": "^3.0.2"
-          }
-        },
-        "os-locale": {
-          "version": "3.1.0",
-          "resolved": "https://registry.npmjs.org/os-locale/-/os-locale-3.1.0.tgz",
-          "integrity": "sha512-Z8l3R4wYWM40/52Z+S265okfFj8Kt2cC2MKY+xNi3kFs+XGI7WXu/I309QQQYbRW4ijiZ+yxs9pqEhJh0DqW3Q==",
-          "dev": true,
-          "requires": {
-            "execa": "^1.0.0",
-            "lcid": "^2.0.0",
-            "mem": "^4.0.0"
-          }
-        },
-        "p-is-promise": {
-          "version": "2.0.0",
-          "resolved": "https://registry.npmjs.org/p-is-promise/-/p-is-promise-2.0.0.tgz",
-          "integrity": "sha512-pzQPhYMCAgLAKPWD2jC3Se9fEfrD9npNos0y150EeqZll7akhEgGhTW/slB6lHku8AvYGiJ+YJ5hfHKePPgFWg==",
-          "dev": true
-        },
-        "p-limit": {
-          "version": "2.1.0",
-          "resolved": "https://registry.npmjs.org/p-limit/-/p-limit-2.1.0.tgz",
-          "integrity": "sha512-NhURkNcrVB+8hNfLuysU8enY5xn2KXphsHBaC2YmRNTZRc7RWusw6apSpdEj3jo4CMb6W9nrF6tTnsJsJeyu6g==",
-          "dev": true,
-          "requires": {
-            "p-try": "^2.0.0"
-          }
-        },
-        "p-locate": {
-          "version": "3.0.0",
-          "resolved": "https://registry.npmjs.org/p-locate/-/p-locate-3.0.0.tgz",
-          "integrity": "sha512-x+12w/To+4GFfgJhBEpiDcLozRJGegY+Ei7/z0tSLkMmxGZNybVMSfWj9aJn8Z5Fc7dBUNJOOVgPv2H7IwulSQ==",
-          "dev": true,
-          "requires": {
-            "p-limit": "^2.0.0"
-          }
-        },
-        "p-try": {
-          "version": "2.0.0",
-          "resolved": "https://registry.npmjs.org/p-try/-/p-try-2.0.0.tgz",
-          "integrity": "sha512-hMp0onDKIajHfIkdRk3P4CdCmErkYAxxDtP3Wx/4nZ3aGlau2VKh3mZpcuFkH27WQkL/3WBCPOktzA9ZOAnMQQ==",
-          "dev": true
-        },
-        "pump": {
-          "version": "3.0.0",
-          "resolved": "https://registry.npmjs.org/pump/-/pump-3.0.0.tgz",
-          "integrity": "sha512-LwZy+p3SFs1Pytd/jYct4wpv49HiYCqd9Rlc5ZVdk0V+8Yzv6jR5Blk3TRmPL1ft69TxP0IMZGJ+WPFU2BFhww==",
-          "dev": true,
-          "requires": {
-            "end-of-stream": "^1.1.0",
-            "once": "^1.3.1"
-          }
-        },
-        "slash": {
-          "version": "2.0.0",
-          "resolved": "https://registry.npmjs.org/slash/-/slash-2.0.0.tgz",
-          "integrity": "sha512-ZYKh3Wh2z1PpEXWr0MpSBZ0V6mZHAQfYevttO11c51CaWjGTaadiKZ+wVt1PbMlDV5qhMFslpZCemhwOK7C89A==",
-          "dev": true
-        },
-        "string-width": {
-          "version": "2.1.1",
-          "resolved": "https://registry.npmjs.org/string-width/-/string-width-2.1.1.tgz",
-          "integrity": "sha512-nOqH59deCq9SRHlxq1Aw85Jnt4w6KvLKqWVik6oA9ZklXLNIOlqg4F2yrT1MVaTjAqvVwdfeZ7w7aCvJD7ugkw==",
-          "dev": true,
-          "requires": {
-            "is-fullwidth-code-point": "^2.0.0",
-            "strip-ansi": "^4.0.0"
-          }
-        },
-        "strip-ansi": {
-          "version": "4.0.0",
-          "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-4.0.0.tgz",
-          "integrity": "sha1-qEeQIusaw2iocTibY1JixQXuNo8=",
-          "dev": true,
-          "requires": {
-            "ansi-regex": "^3.0.0"
-          }
-        },
-        "strip-bom": {
-          "version": "3.0.0",
-          "resolved": "https://registry.npmjs.org/strip-bom/-/strip-bom-3.0.0.tgz",
-          "integrity": "sha1-IzTBjpx1n3vdVv3vfprj1YjmjtM=",
-          "dev": true
-        },
-        "which-module": {
-          "version": "2.0.0",
-          "resolved": "https://registry.npmjs.org/which-module/-/which-module-2.0.0.tgz",
-          "integrity": "sha1-2e8H3Od7mQK4o6j6SzHD4/fm6Ho=",
-          "dev": true
-        },
-        "yargs": {
-          "version": "12.0.5",
-          "resolved": "https://registry.npmjs.org/yargs/-/yargs-12.0.5.tgz",
-          "integrity": "sha512-Lhz8TLaYnxq/2ObqHDql8dX8CJi97oHxrjUcYtzKbbykPtVW9WB+poxI+NM2UIzsMgNCZTIf0AQwsjK5yMAqZw==",
-          "dev": true,
-          "requires": {
-            "cliui": "^4.0.0",
-            "decamelize": "^1.2.0",
-            "find-up": "^3.0.0",
-            "get-caller-file": "^1.0.1",
-            "os-locale": "^3.0.0",
-            "require-directory": "^2.1.1",
-            "require-main-filename": "^1.0.1",
-            "set-blocking": "^2.0.0",
-            "string-width": "^2.0.0",
-            "which-module": "^2.0.0",
-            "y18n": "^3.2.1 || ^4.0.0",
-            "yargs-parser": "^11.1.1"
-          }
-        },
-        "yargs-parser": {
-          "version": "11.1.1",
-          "resolved": "https://registry.npmjs.org/yargs-parser/-/yargs-parser-11.1.1.tgz",
-          "integrity": "sha512-C6kB/WJDiaxONLJQnF8ccx9SEeoTTLek8RVbaOIsrAUS8VrBEXfmeSnCZxygc+XC2sNMBIwOOnfcxiynjHsVSQ==",
-          "dev": true,
-          "requires": {
-            "camelcase": "^5.0.0",
-            "decamelize": "^1.2.0"
-          }
-        }
-      }
-    },
-    "jest-serializer": {
-      "version": "24.0.0",
-      "resolved": "https://registry.npmjs.org/jest-serializer/-/jest-serializer-24.0.0.tgz",
-      "integrity": "sha512-9FKxQyrFgHtx3ozU+1a8v938ILBE7S8Ko3uiAVjT8Yfi2o91j/fj81jacCQZ/Ihjiff/VsUCXVgQ+iF1XdImOw==",
-      "dev": true
-    },
-    "jest-snapshot": {
-      "version": "24.1.0",
-      "resolved": "https://registry.npmjs.org/jest-snapshot/-/jest-snapshot-24.1.0.tgz",
-      "integrity": "sha512-th6TDfFqEmXvuViacU1ikD7xFb7lQsPn2rJl7OEmnfIVpnrx3QNY2t3PE88meeg0u/mQ0nkyvmC05PBqO4USFA==",
-      "dev": true,
-      "requires": {
-        "@babel/types": "^7.0.0",
-        "chalk": "^2.0.1",
-        "jest-diff": "^24.0.0",
-        "jest-matcher-utils": "^24.0.0",
-        "jest-message-util": "^24.0.0",
-        "jest-resolve": "^24.1.0",
-        "mkdirp": "^0.5.1",
-        "natural-compare": "^1.4.0",
-        "pretty-format": "^24.0.0",
-        "semver": "^5.5.0"
-      },
-      "dependencies": {
-        "@babel/types": {
-          "version": "7.3.3",
-          "resolved": "https://registry.npmjs.org/@babel/types/-/types-7.3.3.tgz",
-          "integrity": "sha512-2tACZ80Wg09UnPg5uGAOUvvInaqLk3l/IAhQzlxLQOIXacr6bMsra5SH6AWw/hIDRCSbCdHP2KzSOD+cT7TzMQ==",
-          "dev": true,
-          "requires": {
-            "esutils": "^2.0.2",
-            "lodash": "^4.17.11",
-            "to-fast-properties": "^2.0.0"
-          }
-        },
-        "lodash": {
-          "version": "4.17.11",
-          "resolved": "https://registry.npmjs.org/lodash/-/lodash-4.17.11.tgz",
-          "integrity": "sha512-cQKh8igo5QUhZ7lg38DYWAxMvjSAKG0A8wGSVimP07SIUEK2UO+arSRKbRZWtelMtN5V0Hkwh5ryOto/SshYIg==",
-          "dev": true
-        },
-        "to-fast-properties": {
-          "version": "2.0.0",
-          "resolved": "https://registry.npmjs.org/to-fast-properties/-/to-fast-properties-2.0.0.tgz",
-          "integrity": "sha1-3F5pjL0HkmW8c+A3doGk5Og/YW4=",
-          "dev": true
-        }
-      }
-    },
-    "jest-sonar-reporter": {
-      "version": "2.0.0",
-      "resolved": "https://registry.npmjs.org/jest-sonar-reporter/-/jest-sonar-reporter-2.0.0.tgz",
-      "integrity": "sha512-ZervDCgEX5gdUbdtWsjdipLN3bKJwpxbvhkYNXTAYvAckCihobSLr9OT/IuyNIRT1EZMDDwR6DroWtrq+IL64w==",
-      "dev": true,
-      "requires": {
-        "xml": "^1.0.1"
-      }
-    },
-    "jest-util": {
-      "version": "24.0.0",
-      "resolved": "https://registry.npmjs.org/jest-util/-/jest-util-24.0.0.tgz",
-      "integrity": "sha512-QxsALc4wguYS7cfjdQSOr5HTkmjzkHgmZvIDkcmPfl1ib8PNV8QUWLwbKefCudWS0PRKioV+VbQ0oCUPC691fQ==",
-      "dev": true,
-      "requires": {
-        "callsites": "^3.0.0",
-        "chalk": "^2.0.1",
-        "graceful-fs": "^4.1.15",
-        "is-ci": "^2.0.0",
-        "jest-message-util": "^24.0.0",
-        "mkdirp": "^0.5.1",
-        "slash": "^2.0.0",
-        "source-map": "^0.6.0"
-      },
-      "dependencies": {
-        "callsites": {
-          "version": "3.0.0",
-          "resolved": "https://registry.npmjs.org/callsites/-/callsites-3.0.0.tgz",
-          "integrity": "sha512-tWnkwu9YEq2uzlBDI4RcLn8jrFvF9AOi8PxDNU3hZZjJcjkcRAq3vCI+vZcg1SuxISDYe86k9VZFwAxDiJGoAw==",
-          "dev": true
-        },
-        "ci-info": {
-          "version": "2.0.0",
-          "resolved": "https://registry.npmjs.org/ci-info/-/ci-info-2.0.0.tgz",
-          "integrity": "sha512-5tK7EtrZ0N+OLFMthtqOj4fI2Jeb88C4CAZPu25LDVUgXJ0A3Js4PMGqrn0JU1W0Mh1/Z8wZzYPxqUrXeBboCQ==",
-          "dev": true
-        },
-        "graceful-fs": {
-          "version": "4.1.15",
-          "resolved": "https://registry.npmjs.org/graceful-fs/-/graceful-fs-4.1.15.tgz",
-          "integrity": "sha512-6uHUhOPEBgQ24HM+r6b/QwWfZq+yiFcipKFrOFiBEnWdy5sdzYoi+pJeQaPI5qOLRFqWmAXUPQNsielzdLoecA==",
-          "dev": true
-        },
-        "is-ci": {
-          "version": "2.0.0",
-          "resolved": "https://registry.npmjs.org/is-ci/-/is-ci-2.0.0.tgz",
-          "integrity": "sha512-YfJT7rkpQB0updsdHLGWrvhBJfcfzNNawYDNIyQXJz0IViGf75O8EBPKSdvw2rF+LGCsX4FZ8tcr3b19LcZq4w==",
-          "dev": true,
-          "requires": {
-            "ci-info": "^2.0.0"
-          }
-        },
-        "slash": {
-          "version": "2.0.0",
-          "resolved": "https://registry.npmjs.org/slash/-/slash-2.0.0.tgz",
-          "integrity": "sha512-ZYKh3Wh2z1PpEXWr0MpSBZ0V6mZHAQfYevttO11c51CaWjGTaadiKZ+wVt1PbMlDV5qhMFslpZCemhwOK7C89A==",
-          "dev": true
-        },
-        "source-map": {
-          "version": "0.6.1",
-          "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.6.1.tgz",
-          "integrity": "sha512-UjgapumWlbMhkBgzT7Ykc5YXUT46F0iKu8SGXq0bcwP5dz/h0Plj6enJqjz1Zbq2l5WaqYnrVbwWOWMyF3F47g==",
-          "dev": true
-        }
-      }
-    },
-    "jest-validate": {
-      "version": "24.0.0",
-      "resolved": "https://registry.npmjs.org/jest-validate/-/jest-validate-24.0.0.tgz",
-      "integrity": "sha512-vMrKrTOP4BBFIeOWsjpsDgVXATxCspC9S1gqvbJ3Tnn/b9ACsJmteYeVx9830UMV28Cob1RX55x96Qq3Tfad4g==",
-      "dev": true,
-      "requires": {
-        "camelcase": "^5.0.0",
-        "chalk": "^2.0.1",
-        "jest-get-type": "^24.0.0",
-        "leven": "^2.1.0",
-        "pretty-format": "^24.0.0"
-      },
-      "dependencies": {
-        "camelcase": {
-          "version": "5.0.0",
-          "resolved": "https://registry.npmjs.org/camelcase/-/camelcase-5.0.0.tgz",
-          "integrity": "sha512-faqwZqnWxbxn+F1d399ygeamQNy3lPp/H9H6rNrqYh4FSVCtcY+3cub1MxA8o9mDd55mM8Aghuu/kuyYA6VTsA==",
-          "dev": true
-        }
-      }
-    },
-    "jest-watcher": {
-      "version": "24.0.0",
-      "resolved": "https://registry.npmjs.org/jest-watcher/-/jest-watcher-24.0.0.tgz",
-      "integrity": "sha512-GxkW2QrZ4YxmW1GUWER05McjVDunBlKMFfExu+VsGmXJmpej1saTEKvONdx5RJBlVdpPI5x6E3+EDQSIGgl53g==",
-      "dev": true,
-      "requires": {
-        "ansi-escapes": "^3.0.0",
-        "chalk": "^2.0.1",
-        "jest-util": "^24.0.0",
-        "string-length": "^2.0.0"
-      }
-    },
-    "jest-worker": {
-      "version": "24.0.0",
-      "resolved": "https://registry.npmjs.org/jest-worker/-/jest-worker-24.0.0.tgz",
-      "integrity": "sha512-s64/OThpfQvoCeHG963MiEZOAAxu8kHsaL/rCMF7lpdzo7vgF0CtPml9hfguOMgykgH/eOm4jFP4ibfHLruytg==",
-      "dev": true,
-      "requires": {
-        "merge-stream": "^1.0.1",
-        "supports-color": "^6.1.0"
-      },
-      "dependencies": {
-        "has-flag": {
-          "version": "3.0.0",
-          "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-3.0.0.tgz",
-          "integrity": "sha1-tdRU3CGZriJWmfNGfloH87lVuv0=",
-          "dev": true
-        },
-        "supports-color": {
-          "version": "6.1.0",
-          "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-6.1.0.tgz",
-          "integrity": "sha512-qe1jfm1Mg7Nq/NSh6XE24gPXROEVsWHxC1LIx//XNlD9iw7YZQGjZNjYN7xGaEG6iKdA8EtNFW6R0gjnVXp+wQ==",
-          "dev": true,
-          "requires": {
-            "has-flag": "^3.0.0"
-          }
-        }
-      }
-    },
-    "jest-zone-patch": {
-      "version": "0.0.10",
-      "resolved": "https://registry.npmjs.org/jest-zone-patch/-/jest-zone-patch-0.0.10.tgz",
-      "integrity": "sha512-K5uHLHgMgi2Eyj74gbY+xSeGGekb5U48bXsgDwgipRbFdaekyZK+TAcp8auamqU4UjrAt5S4sIUZz/2bBNyTTA=="
-    },
-    "js-base64": {
-      "version": "2.5.0",
-      "resolved": "https://registry.npmjs.org/js-base64/-/js-base64-2.5.0.tgz",
-      "integrity": "sha512-wlEBIZ5LP8usDylWbDNhKPEFVFdI5hCHpnVoT/Ysvoi/PRhJENm/Rlh9TvjYB38HFfKZN7OzEbRjmjvLkFw11g==",
-      "dev": true,
-      "optional": true
-    },
-    "js-levenshtein": {
-      "version": "1.1.4",
-      "resolved": "https://registry.npmjs.org/js-levenshtein/-/js-levenshtein-1.1.4.tgz",
-      "integrity": "sha512-PxfGzSs0ztShKrUYPIn5r0MtyAhYcCwmndozzpz8YObbPnD1jFxzlBGbRnX2mIu6Z13xN6+PTu05TQFnZFlzow==",
-      "dev": true
-    },
-    "js-tokens": {
-      "version": "3.0.2",
-      "resolved": "https://registry.npmjs.org/js-tokens/-/js-tokens-3.0.2.tgz",
-      "integrity": "sha1-mGbfOVECEw449/mWvOtlRDIJwls="
-    },
-    "js-yaml": {
-      "version": "3.11.0",
-      "resolved": "https://registry.npmjs.org/js-yaml/-/js-yaml-3.11.0.tgz",
-      "integrity": "sha512-saJstZWv7oNeOyBh3+Dx1qWzhW0+e6/8eDzo7p5rDFqxntSztloLtuKu+Ejhtq82jsilwOIZYsCz+lIjthg1Hw==",
-      "dev": true,
-      "requires": {
-        "argparse": "^1.0.7",
-        "esprima": "^4.0.0"
-      }
-    },
-    "jsbn": {
-      "version": "0.1.1",
-      "resolved": "https://registry.npmjs.org/jsbn/-/jsbn-0.1.1.tgz",
-      "integrity": "sha1-peZUwuWi3rXyAdls77yoDA7y9RM=",
-      "optional": true
-    },
-    "jsdom": {
-      "version": "11.12.0",
-      "resolved": "https://registry.npmjs.org/jsdom/-/jsdom-11.12.0.tgz",
-      "integrity": "sha512-y8Px43oyiBM13Zc1z780FrfNLJCXTL40EWlty/LXUtcjykRBNgLlCjWXpfSPBl2iv+N7koQN+dvqszHZgT/Fjw==",
-      "dev": true,
-      "requires": {
-        "abab": "^2.0.0",
-        "acorn": "^5.5.3",
-        "acorn-globals": "^4.1.0",
-        "array-equal": "^1.0.0",
-        "cssom": ">= 0.3.2 < 0.4.0",
-        "cssstyle": "^1.0.0",
-        "data-urls": "^1.0.0",
-        "domexception": "^1.0.1",
-        "escodegen": "^1.9.1",
-        "html-encoding-sniffer": "^1.0.2",
-        "left-pad": "^1.3.0",
-        "nwsapi": "^2.0.7",
-        "parse5": "4.0.0",
-        "pn": "^1.1.0",
-        "request": "^2.87.0",
-        "request-promise-native": "^1.0.5",
-        "sax": "^1.2.4",
-        "symbol-tree": "^3.2.2",
-        "tough-cookie": "^2.3.4",
-        "w3c-hr-time": "^1.0.1",
-        "webidl-conversions": "^4.0.2",
-        "whatwg-encoding": "^1.0.3",
-        "whatwg-mimetype": "^2.1.0",
-        "whatwg-url": "^6.4.1",
-        "ws": "^5.2.0",
-        "xml-name-validator": "^3.0.0"
-      },
-      "dependencies": {
-        "ajv": {
-          "version": "6.9.1",
-          "resolved": "https://registry.npmjs.org/ajv/-/ajv-6.9.1.tgz",
-          "integrity": "sha512-XDN92U311aINL77ieWHmqCcNlwjoP5cHXDxIxbf2MaPYuCXOHS7gHH8jktxeK5omgd52XbSTX6a4Piwd1pQmzA==",
-          "dev": true,
-          "requires": {
-            "fast-deep-equal": "^2.0.1",
-            "fast-json-stable-stringify": "^2.0.0",
-            "json-schema-traverse": "^0.4.1",
-            "uri-js": "^4.2.2"
-          }
-        },
-        "assert-plus": {
-          "version": "1.0.0",
-          "resolved": "https://registry.npmjs.org/assert-plus/-/assert-plus-1.0.0.tgz",
-          "integrity": "sha1-8S4PPF13sLHN2RRpQuTpbB5N1SU=",
-          "dev": true
-        },
-        "aws-sign2": {
-          "version": "0.7.0",
-          "resolved": "https://registry.npmjs.org/aws-sign2/-/aws-sign2-0.7.0.tgz",
-          "integrity": "sha1-tG6JCTSpWR8tL2+G1+ap8bP+dqg=",
-          "dev": true
-        },
-        "aws4": {
-          "version": "1.8.0",
-          "resolved": "https://registry.npmjs.org/aws4/-/aws4-1.8.0.tgz",
-          "integrity": "sha512-ReZxvNHIOv88FlT7rxcXIIC0fPt4KZqZbOlivyWtXLt8ESx84zd3kMC6iK5jVeS2qt+g7ftS7ye4fi06X5rtRQ==",
-          "dev": true
-        },
-        "extend": {
-          "version": "3.0.2",
-          "resolved": "https://registry.npmjs.org/extend/-/extend-3.0.2.tgz",
-          "integrity": "sha512-fjquC59cD7CyW6urNXK0FBufkZcoiGG80wTuPujX590cB5Ttln20E2UB4S/WARVqhXffZl2LNgS+gQdPIIim/g==",
-          "dev": true
-        },
-        "fast-deep-equal": {
-          "version": "2.0.1",
-          "resolved": "https://registry.npmjs.org/fast-deep-equal/-/fast-deep-equal-2.0.1.tgz",
-          "integrity": "sha1-ewUhjd+WZ79/Nwv3/bLLFf3Qqkk=",
-          "dev": true
-        },
-        "form-data": {
-          "version": "2.3.3",
-          "resolved": "https://registry.npmjs.org/form-data/-/form-data-2.3.3.tgz",
-          "integrity": "sha512-1lLKB2Mu3aGP1Q/2eCOx0fNbRMe7XdwktwOruhfqqd0rIJWwN4Dh+E3hrPSlDCXnSR7UtZ1N38rVXm+6+MEhJQ==",
-          "dev": true,
-          "requires": {
-            "asynckit": "^0.4.0",
-            "combined-stream": "^1.0.6",
-            "mime-types": "^2.1.12"
-          }
-        },
-        "har-schema": {
-          "version": "2.0.0",
-          "resolved": "https://registry.npmjs.org/har-schema/-/har-schema-2.0.0.tgz",
-          "integrity": "sha1-qUwiJOvKwEeCoNkDVSHyRzW37JI=",
-          "dev": true
-        },
-        "har-validator": {
-          "version": "5.1.3",
-          "resolved": "https://registry.npmjs.org/har-validator/-/har-validator-5.1.3.tgz",
-          "integrity": "sha512-sNvOCzEQNr/qrvJgc3UG/kD4QtlHycrzwS+6mfTrrSq97BvaYcPZZI1ZSqGSPR73Cxn4LKTD4PttRwfU7jWq5g==",
-          "dev": true,
-          "requires": {
-            "ajv": "^6.5.5",
-            "har-schema": "^2.0.0"
-          }
-        },
-        "http-signature": {
-          "version": "1.2.0",
-          "resolved": "https://registry.npmjs.org/http-signature/-/http-signature-1.2.0.tgz",
-          "integrity": "sha1-muzZJRFHcvPZW2WmCruPfBj7rOE=",
-          "dev": true,
-          "requires": {
-            "assert-plus": "^1.0.0",
-            "jsprim": "^1.2.2",
-            "sshpk": "^1.7.0"
-          }
-        },
-        "json-schema-traverse": {
-          "version": "0.4.1",
-          "resolved": "https://registry.npmjs.org/json-schema-traverse/-/json-schema-traverse-0.4.1.tgz",
-          "integrity": "sha512-xbbCH5dCYU5T8LcEhhuh7HJ88HXuW3qsI3Y0zOZFKfZEHcpWiHU/Jxzk629Brsab/mMiHQti9wMP+845RPe3Vg==",
-          "dev": true
-        },
-        "mime-db": {
-          "version": "1.38.0",
-          "resolved": "https://registry.npmjs.org/mime-db/-/mime-db-1.38.0.tgz",
-          "integrity": "sha512-bqVioMFFzc2awcdJZIzR3HjZFX20QhilVS7hytkKrv7xFAn8bM1gzc/FOX2awLISvWe0PV8ptFKcon+wZ5qYkg==",
-          "dev": true
-        },
-        "mime-types": {
-          "version": "2.1.22",
-          "resolved": "https://registry.npmjs.org/mime-types/-/mime-types-2.1.22.tgz",
-          "integrity": "sha512-aGl6TZGnhm/li6F7yx82bJiBZwgiEa4Hf6CNr8YO+r5UHr53tSTYZb102zyU50DOWWKeOv0uQLRL0/9EiKWCog==",
-          "dev": true,
-          "requires": {
-            "mime-db": "~1.38.0"
-          }
-        },
-        "oauth-sign": {
-          "version": "0.9.0",
-          "resolved": "https://registry.npmjs.org/oauth-sign/-/oauth-sign-0.9.0.tgz",
-          "integrity": "sha512-fexhUFFPTGV8ybAtSIGbV6gOkSv8UtRbDBnAyLQw4QPKkgNlsH2ByPGtMUqdWkos6YCRmAqViwgZrJc/mRDzZQ==",
-          "dev": true
-        },
-        "parse5": {
-          "version": "4.0.0",
-          "resolved": "https://registry.npmjs.org/parse5/-/parse5-4.0.0.tgz",
-          "integrity": "sha512-VrZ7eOd3T1Fk4XWNXMgiGBK/z0MG48BWG2uQNU4I72fkQuKUTZpl+u9k+CxEG0twMVzSmXEEz12z5Fnw1jIQFA==",
-          "dev": true
-        },
-        "performance-now": {
-          "version": "2.1.0",
-          "resolved": "https://registry.npmjs.org/performance-now/-/performance-now-2.1.0.tgz",
-          "integrity": "sha1-Ywn04OX6kT7BxpMHrjZLSzd8nns=",
-          "dev": true
-        },
-        "qs": {
-          "version": "6.5.2",
-          "resolved": "https://registry.npmjs.org/qs/-/qs-6.5.2.tgz",
-          "integrity": "sha512-N5ZAX4/LxJmF+7wN74pUD6qAh9/wnvdQcjq9TZjevvXzSUo7bfmw91saqMjzGS2xq91/odN2dW/WOl7qQHNDGA==",
-          "dev": true
-        },
-        "request": {
-          "version": "2.88.0",
-          "resolved": "https://registry.npmjs.org/request/-/request-2.88.0.tgz",
-          "integrity": "sha512-NAqBSrijGLZdM0WZNsInLJpkJokL72XYjUpnB0iwsRgxh7dB6COrHnTBNwN0E+lHDAJzu7kLAkDeY08z2/A0hg==",
-          "dev": true,
-          "requires": {
-            "aws-sign2": "~0.7.0",
-            "aws4": "^1.8.0",
-            "caseless": "~0.12.0",
-            "combined-stream": "~1.0.6",
-            "extend": "~3.0.2",
-            "forever-agent": "~0.6.1",
-            "form-data": "~2.3.2",
-            "har-validator": "~5.1.0",
-            "http-signature": "~1.2.0",
-            "is-typedarray": "~1.0.0",
-            "isstream": "~0.1.2",
-            "json-stringify-safe": "~5.0.1",
-            "mime-types": "~2.1.19",
-            "oauth-sign": "~0.9.0",
-            "performance-now": "^2.1.0",
-            "qs": "~6.5.2",
-            "safe-buffer": "^5.1.2",
-            "tough-cookie": "~2.4.3",
-            "tunnel-agent": "^0.6.0",
-            "uuid": "^3.3.2"
-          },
-          "dependencies": {
-            "tough-cookie": {
-              "version": "2.4.3",
-              "resolved": "https://registry.npmjs.org/tough-cookie/-/tough-cookie-2.4.3.tgz",
-              "integrity": "sha512-Q5srk/4vDM54WJsJio3XNn6K2sCG+CQ8G5Wz6bZhRZoAe/+TxjWB/GlFAnYEbkYVlON9FMk/fE3h2RLpPXo4lQ==",
-              "dev": true,
-              "requires": {
-                "psl": "^1.1.24",
-                "punycode": "^1.4.1"
-              }
-            }
-          }
-        },
-        "safe-buffer": {
-          "version": "5.1.2",
-          "resolved": "https://registry.npmjs.org/safe-buffer/-/safe-buffer-5.1.2.tgz",
-          "integrity": "sha512-Gd2UZBJDkXlY7GbJxfsE8/nvKkUEU1G38c1siN6QP6a9PT9MmHB8GnpscSmMJSoF8LOIrt8ud/wPtojys4G6+g==",
-          "dev": true
-        },
-        "sax": {
-          "version": "1.2.4",
-          "resolved": "https://registry.npmjs.org/sax/-/sax-1.2.4.tgz",
-          "integrity": "sha512-NqVDv9TpANUjFm0N8uM5GxL36UgKi9/atZw+x7YFnQ8ckwFGKrl4xX4yWtrey3UJm5nP1kUbnYgLopqWNSRhWw==",
-          "dev": true
-        },
-        "uuid": {
-          "version": "3.3.2",
-          "resolved": "https://registry.npmjs.org/uuid/-/uuid-3.3.2.tgz",
-          "integrity": "sha512-yXJmeNaw3DnnKAOKJE51sL/ZaYfWJRl1pK9dr19YFCu0ObS231AB1/LbqTKRAQ5kw8A90rA6fr4riOUpTZvQZA==",
-          "dev": true
-        }
-      }
-    },
-    "jsesc": {
-      "version": "1.3.0",
-      "resolved": "https://registry.npmjs.org/jsesc/-/jsesc-1.3.0.tgz",
-      "integrity": "sha1-RsP+yMGJKxKwgz25vHYiF226s0s="
-    },
-    "json-loader": {
-      "version": "0.5.7",
-      "resolved": "https://registry.npmjs.org/json-loader/-/json-loader-0.5.7.tgz",
-      "integrity": "sha512-QLPs8Dj7lnf3e3QYS1zkCo+4ZwqOiF9d/nZnYozTISxXWCfNs9yuky5rJw4/W34s7POaNlbZmQGaB5NiXCbP4w==",
-      "dev": true
-    },
-    "json-parse-better-errors": {
-      "version": "1.0.2",
-      "resolved": "https://registry.npmjs.org/json-parse-better-errors/-/json-parse-better-errors-1.0.2.tgz",
-      "integrity": "sha512-mrqyZKfX5EhL7hvqcV6WG1yYjnjeuYDzDhhcAAUrq8Po85NBQBJP+ZDUT75qZQ98IkUoBqdkExkukOU7Ts2wrw==",
-      "dev": true
-    },
-    "json-schema": {
-      "version": "0.2.3",
-      "resolved": "https://registry.npmjs.org/json-schema/-/json-schema-0.2.3.tgz",
-      "integrity": "sha1-tIDIkuWaLwWVTOcnvT8qTogvnhM="
-    },
-    "json-schema-traverse": {
-      "version": "0.3.1",
-      "resolved": "https://registry.npmjs.org/json-schema-traverse/-/json-schema-traverse-0.3.1.tgz",
-      "integrity": "sha1-NJptRMU6Ud6JtAgFxdXlm0F9M0A=",
-      "dev": true
-    },
-    "json-stable-stringify": {
-      "version": "1.0.1",
-      "resolved": "https://registry.npmjs.org/json-stable-stringify/-/json-stable-stringify-1.0.1.tgz",
-      "integrity": "sha1-mnWdOcXy/1A/1TAGRu1EX4jE+a8=",
-      "requires": {
-        "jsonify": "~0.0.0"
-      }
-    },
-    "json-stringify-safe": {
-      "version": "5.0.1",
-      "resolved": "https://registry.npmjs.org/json-stringify-safe/-/json-stringify-safe-5.0.1.tgz",
-      "integrity": "sha1-Epai1Y/UXxmg9s4B1lcB4sc1tus="
-    },
-    "json3": {
-      "version": "3.3.2",
-      "resolved": "https://registry.npmjs.org/json3/-/json3-3.3.2.tgz",
-      "integrity": "sha1-PAQ0dD35Pi9cQq7nsZvLSDV19OE=",
-      "dev": true
-    },
-    "json5": {
-      "version": "0.5.1",
-      "resolved": "https://registry.npmjs.org/json5/-/json5-0.5.1.tgz",
-      "integrity": "sha1-Hq3nrMASA0rYTiOWdn6tn6VJWCE="
-    },
-    "jsonfile": {
-      "version": "4.0.0",
-      "resolved": "https://registry.npmjs.org/jsonfile/-/jsonfile-4.0.0.tgz",
-      "integrity": "sha1-h3Gq4HmbZAdrdmQPygWPnBDjPss=",
-      "requires": {
-        "graceful-fs": "^4.1.6"
-      }
-    },
-    "jsonify": {
-      "version": "0.0.0",
-      "resolved": "https://registry.npmjs.org/jsonify/-/jsonify-0.0.0.tgz",
-      "integrity": "sha1-LHS27kHZPKUbe1qu6PUDYx0lKnM="
-    },
-    "jsonparse": {
-      "version": "1.3.1",
-      "resolved": "https://registry.npmjs.org/jsonparse/-/jsonparse-1.3.1.tgz",
-      "integrity": "sha1-P02uSpH6wxX3EGL4UhzCOfE2YoA=",
-      "dev": true
-    },
-    "jsprim": {
-      "version": "1.4.1",
-      "resolved": "https://registry.npmjs.org/jsprim/-/jsprim-1.4.1.tgz",
-      "integrity": "sha1-MT5mvB5cwG5Di8G3SZwuXFastqI=",
-      "requires": {
-        "assert-plus": "1.0.0",
-        "extsprintf": "1.3.0",
-        "json-schema": "0.2.3",
-        "verror": "1.10.0"
-      },
-      "dependencies": {
-        "assert-plus": {
-          "version": "1.0.0",
-          "resolved": "https://registry.npmjs.org/assert-plus/-/assert-plus-1.0.0.tgz",
-          "integrity": "sha1-8S4PPF13sLHN2RRpQuTpbB5N1SU="
-        }
-      }
-    },
-    "jwt-decode": {
-      "version": "2.2.0",
-      "resolved": "https://registry.npmjs.org/jwt-decode/-/jwt-decode-2.2.0.tgz",
-      "integrity": "sha1-fYa9VmefWM5qhHBKZX3TkruoGnk="
-    },
-    "karma-source-map-support": {
-      "version": "1.3.0",
-      "resolved": "https://registry.npmjs.org/karma-source-map-support/-/karma-source-map-support-1.3.0.tgz",
-      "integrity": "sha512-HcPqdAusNez/ywa+biN4EphGz62MmQyPggUsDfsHqa7tSe4jdsxgvTKuDfIazjL+IOxpVWyT7Pr4dhAV+sxX5Q==",
-      "dev": true,
-      "requires": {
-        "source-map-support": "^0.5.5"
-      },
-      "dependencies": {
-        "source-map": {
-          "version": "0.6.1",
-          "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.6.1.tgz",
-          "integrity": "sha512-UjgapumWlbMhkBgzT7Ykc5YXUT46F0iKu8SGXq0bcwP5dz/h0Plj6enJqjz1Zbq2l5WaqYnrVbwWOWMyF3F47g==",
-          "dev": true
-        },
-        "source-map-support": {
-          "version": "0.5.9",
-          "resolved": "https://registry.npmjs.org/source-map-support/-/source-map-support-0.5.9.tgz",
-          "integrity": "sha512-gR6Rw4MvUlYy83vP0vxoVNzM6t8MUXqNuRsuBmBHQDu1Fh6X015FrLdgoDKcNdkwGubozq0P4N0Q37UyFVr1EA==",
-          "dev": true,
-          "requires": {
-            "buffer-from": "^1.0.0",
-            "source-map": "^0.6.0"
-          }
-        }
-      }
-    },
-    "killable": {
-      "version": "1.0.1",
-      "resolved": "https://registry.npmjs.org/killable/-/killable-1.0.1.tgz",
-      "integrity": "sha512-LzqtLKlUwirEUyl/nicirVmNiPvYs7l5n8wOPP7fyJVpUPkvCnW/vuiXGpylGUlnPDnB7311rARzAt3Mhswpjg==",
-      "dev": true
-    },
-    "kind-of": {
-      "version": "3.2.2",
-      "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-3.2.2.tgz",
-      "integrity": "sha1-MeohpzS6ubuw8yRm2JOupR5KPGQ=",
-      "dev": true,
-      "requires": {
-        "is-buffer": "^1.1.5"
-      }
-    },
-    "kleur": {
-      "version": "3.0.2",
-      "resolved": "https://registry.npmjs.org/kleur/-/kleur-3.0.2.tgz",
-      "integrity": "sha512-3h7B2WRT5LNXOtQiAaWonilegHcPSf9nLVXlSTci8lu1dZUuui61+EsPEZqSVxY7rXYmB2DVKMQILxaO5WL61Q==",
-      "dev": true
-    },
-    "lazy-ass": {
-      "version": "1.6.0",
-      "resolved": "https://registry.npmjs.org/lazy-ass/-/lazy-ass-1.6.0.tgz",
-      "integrity": "sha1-eZllXoZGwX8In90YfRUNMyTVRRM=",
-      "dev": true
-    },
-    "lazy-cache": {
-      "version": "1.0.4",
-      "resolved": "https://registry.npmjs.org/lazy-cache/-/lazy-cache-1.0.4.tgz",
-      "integrity": "sha1-odePw6UEdMuAhF07O24dpJpEbo4=",
-      "dev": true
-    },
-    "lcid": {
-      "version": "1.0.0",
-      "resolved": "https://registry.npmjs.org/lcid/-/lcid-1.0.0.tgz",
-      "integrity": "sha1-MIrMr6C8SDo4Z7S28rlQYlHRuDU=",
-      "dev": true,
-      "requires": {
-        "invert-kv": "^1.0.0"
-      }
-    },
-    "left-pad": {
-      "version": "1.3.0",
-      "resolved": "https://registry.npmjs.org/left-pad/-/left-pad-1.3.0.tgz",
-      "integrity": "sha512-XI5MPzVNApjAyhQzphX8BkmKsKUxD4LdyK24iZeQGinBN9yTQT3bFlCBy/aVx2HrNcqQGsdot8ghrjyrvMCoEA==",
-      "dev": true
-    },
-    "less": {
-      "version": "3.8.1",
-      "resolved": "https://registry.npmjs.org/less/-/less-3.8.1.tgz",
-      "integrity": "sha512-8HFGuWmL3FhQR0aH89escFNBQH/nEiYPP2ltDFdQw2chE28Yx2E3lhAIq9Y2saYwLSwa699s4dBVEfCY8Drf7Q==",
-      "dev": true,
-      "requires": {
-        "clone": "^2.1.2",
-        "errno": "^0.1.1",
-        "graceful-fs": "^4.1.2",
-        "image-size": "~0.5.0",
-        "mime": "^1.4.1",
-        "mkdirp": "^0.5.0",
-        "promise": "^7.1.1",
-        "request": "^2.83.0",
-        "source-map": "~0.6.0"
-      },
-      "dependencies": {
-        "ajv": {
-          "version": "6.6.2",
-          "resolved": "https://registry.npmjs.org/ajv/-/ajv-6.6.2.tgz",
-          "integrity": "sha512-FBHEW6Jf5TB9MGBgUUA9XHkTbjXYfAUjY43ACMfmdMRHniyoMHjHjzD50OK8LGDWQwp4rWEsIq5kEqq7rvIM1g==",
-          "dev": true,
-          "optional": true,
-          "requires": {
-            "fast-deep-equal": "^2.0.1",
-            "fast-json-stable-stringify": "^2.0.0",
-            "json-schema-traverse": "^0.4.1",
-            "uri-js": "^4.2.2"
-          }
-        },
-        "assert-plus": {
-          "version": "1.0.0",
-          "resolved": "https://registry.npmjs.org/assert-plus/-/assert-plus-1.0.0.tgz",
-          "integrity": "sha1-8S4PPF13sLHN2RRpQuTpbB5N1SU=",
-          "dev": true,
-          "optional": true
-        },
-        "aws-sign2": {
-          "version": "0.7.0",
-          "resolved": "https://registry.npmjs.org/aws-sign2/-/aws-sign2-0.7.0.tgz",
-          "integrity": "sha1-tG6JCTSpWR8tL2+G1+ap8bP+dqg=",
-          "dev": true,
-          "optional": true
-        },
-        "aws4": {
-          "version": "1.8.0",
-          "resolved": "https://registry.npmjs.org/aws4/-/aws4-1.8.0.tgz",
-          "integrity": "sha512-ReZxvNHIOv88FlT7rxcXIIC0fPt4KZqZbOlivyWtXLt8ESx84zd3kMC6iK5jVeS2qt+g7ftS7ye4fi06X5rtRQ==",
-          "dev": true,
-          "optional": true
-        },
-        "extend": {
-          "version": "3.0.2",
-          "resolved": "https://registry.npmjs.org/extend/-/extend-3.0.2.tgz",
-          "integrity": "sha512-fjquC59cD7CyW6urNXK0FBufkZcoiGG80wTuPujX590cB5Ttln20E2UB4S/WARVqhXffZl2LNgS+gQdPIIim/g==",
-          "dev": true,
-          "optional": true
-        },
-        "fast-deep-equal": {
-          "version": "2.0.1",
-          "resolved": "https://registry.npmjs.org/fast-deep-equal/-/fast-deep-equal-2.0.1.tgz",
-          "integrity": "sha1-ewUhjd+WZ79/Nwv3/bLLFf3Qqkk=",
-          "dev": true,
-          "optional": true
-        },
-        "form-data": {
-          "version": "2.3.3",
-          "resolved": "https://registry.npmjs.org/form-data/-/form-data-2.3.3.tgz",
-          "integrity": "sha512-1lLKB2Mu3aGP1Q/2eCOx0fNbRMe7XdwktwOruhfqqd0rIJWwN4Dh+E3hrPSlDCXnSR7UtZ1N38rVXm+6+MEhJQ==",
-          "dev": true,
-          "optional": true,
-          "requires": {
-            "asynckit": "^0.4.0",
-            "combined-stream": "^1.0.6",
-            "mime-types": "^2.1.12"
-          }
-        },
-        "har-schema": {
-          "version": "2.0.0",
-          "resolved": "https://registry.npmjs.org/har-schema/-/har-schema-2.0.0.tgz",
-          "integrity": "sha1-qUwiJOvKwEeCoNkDVSHyRzW37JI=",
-          "dev": true,
-          "optional": true
-        },
-        "har-validator": {
-          "version": "5.1.3",
-          "resolved": "https://registry.npmjs.org/har-validator/-/har-validator-5.1.3.tgz",
-          "integrity": "sha512-sNvOCzEQNr/qrvJgc3UG/kD4QtlHycrzwS+6mfTrrSq97BvaYcPZZI1ZSqGSPR73Cxn4LKTD4PttRwfU7jWq5g==",
-          "dev": true,
-          "optional": true,
-          "requires": {
-            "ajv": "^6.5.5",
-            "har-schema": "^2.0.0"
-          }
-        },
-        "http-signature": {
-          "version": "1.2.0",
-          "resolved": "https://registry.npmjs.org/http-signature/-/http-signature-1.2.0.tgz",
-          "integrity": "sha1-muzZJRFHcvPZW2WmCruPfBj7rOE=",
-          "dev": true,
-          "optional": true,
-          "requires": {
-            "assert-plus": "^1.0.0",
-            "jsprim": "^1.2.2",
-            "sshpk": "^1.7.0"
-          }
-        },
-        "json-schema-traverse": {
-          "version": "0.4.1",
-          "resolved": "https://registry.npmjs.org/json-schema-traverse/-/json-schema-traverse-0.4.1.tgz",
-          "integrity": "sha512-xbbCH5dCYU5T8LcEhhuh7HJ88HXuW3qsI3Y0zOZFKfZEHcpWiHU/Jxzk629Brsab/mMiHQti9wMP+845RPe3Vg==",
-          "dev": true,
-          "optional": true
-        },
-        "mime-db": {
-          "version": "1.37.0",
-          "resolved": "https://registry.npmjs.org/mime-db/-/mime-db-1.37.0.tgz",
-          "integrity": "sha512-R3C4db6bgQhlIhPU48fUtdVmKnflq+hRdad7IyKhtFj06VPNVdk2RhiYL3UjQIlso8L+YxAtFkobT0VK+S/ybg==",
-          "dev": true
-        },
-        "mime-types": {
-          "version": "2.1.21",
-          "resolved": "https://registry.npmjs.org/mime-types/-/mime-types-2.1.21.tgz",
-          "integrity": "sha512-3iL6DbwpyLzjR3xHSFNFeb9Nz/M8WDkX33t1GFQnFOllWk8pOrh/LSrB5OXlnlW5P9LH73X6loW/eogc+F5lJg==",
-          "dev": true,
-          "requires": {
-            "mime-db": "~1.37.0"
-          }
-        },
-        "oauth-sign": {
-          "version": "0.9.0",
-          "resolved": "https://registry.npmjs.org/oauth-sign/-/oauth-sign-0.9.0.tgz",
-          "integrity": "sha512-fexhUFFPTGV8ybAtSIGbV6gOkSv8UtRbDBnAyLQw4QPKkgNlsH2ByPGtMUqdWkos6YCRmAqViwgZrJc/mRDzZQ==",
-          "dev": true,
-          "optional": true
-        },
-        "performance-now": {
-          "version": "2.1.0",
-          "resolved": "https://registry.npmjs.org/performance-now/-/performance-now-2.1.0.tgz",
-          "integrity": "sha1-Ywn04OX6kT7BxpMHrjZLSzd8nns=",
-          "dev": true,
-          "optional": true
-        },
-        "qs": {
-          "version": "6.5.2",
-          "resolved": "https://registry.npmjs.org/qs/-/qs-6.5.2.tgz",
-          "integrity": "sha512-N5ZAX4/LxJmF+7wN74pUD6qAh9/wnvdQcjq9TZjevvXzSUo7bfmw91saqMjzGS2xq91/odN2dW/WOl7qQHNDGA==",
-          "dev": true,
-          "optional": true
-        },
-        "request": {
-          "version": "2.88.0",
-          "resolved": "https://registry.npmjs.org/request/-/request-2.88.0.tgz",
-          "integrity": "sha512-NAqBSrijGLZdM0WZNsInLJpkJokL72XYjUpnB0iwsRgxh7dB6COrHnTBNwN0E+lHDAJzu7kLAkDeY08z2/A0hg==",
-          "dev": true,
-          "optional": true,
-          "requires": {
-            "aws-sign2": "~0.7.0",
-            "aws4": "^1.8.0",
-            "caseless": "~0.12.0",
-            "combined-stream": "~1.0.6",
-            "extend": "~3.0.2",
-            "forever-agent": "~0.6.1",
-            "form-data": "~2.3.2",
-            "har-validator": "~5.1.0",
-            "http-signature": "~1.2.0",
-            "is-typedarray": "~1.0.0",
-            "isstream": "~0.1.2",
-            "json-stringify-safe": "~5.0.1",
-            "mime-types": "~2.1.19",
-            "oauth-sign": "~0.9.0",
-            "performance-now": "^2.1.0",
-            "qs": "~6.5.2",
-            "safe-buffer": "^5.1.2",
-            "tough-cookie": "~2.4.3",
-            "tunnel-agent": "^0.6.0",
-            "uuid": "^3.3.2"
-          }
-        },
-        "safe-buffer": {
-          "version": "5.1.2",
-          "resolved": "https://registry.npmjs.org/safe-buffer/-/safe-buffer-5.1.2.tgz",
-          "integrity": "sha512-Gd2UZBJDkXlY7GbJxfsE8/nvKkUEU1G38c1siN6QP6a9PT9MmHB8GnpscSmMJSoF8LOIrt8ud/wPtojys4G6+g==",
-          "dev": true,
-          "optional": true
-        },
-        "source-map": {
-          "version": "0.6.1",
-          "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.6.1.tgz",
-          "integrity": "sha512-UjgapumWlbMhkBgzT7Ykc5YXUT46F0iKu8SGXq0bcwP5dz/h0Plj6enJqjz1Zbq2l5WaqYnrVbwWOWMyF3F47g==",
-          "dev": true,
-          "optional": true
-        },
-        "tough-cookie": {
-          "version": "2.4.3",
-          "resolved": "https://registry.npmjs.org/tough-cookie/-/tough-cookie-2.4.3.tgz",
-          "integrity": "sha512-Q5srk/4vDM54WJsJio3XNn6K2sCG+CQ8G5Wz6bZhRZoAe/+TxjWB/GlFAnYEbkYVlON9FMk/fE3h2RLpPXo4lQ==",
-          "dev": true,
-          "optional": true,
-          "requires": {
-            "psl": "^1.1.24",
-            "punycode": "^1.4.1"
-          }
-        },
-        "uuid": {
-          "version": "3.3.2",
-          "resolved": "https://registry.npmjs.org/uuid/-/uuid-3.3.2.tgz",
-          "integrity": "sha512-yXJmeNaw3DnnKAOKJE51sL/ZaYfWJRl1pK9dr19YFCu0ObS231AB1/LbqTKRAQ5kw8A90rA6fr4riOUpTZvQZA==",
-          "dev": true,
-          "optional": true
-        }
-      }
-    },
-    "less-loader": {
-      "version": "4.1.0",
-      "resolved": "https://registry.npmjs.org/less-loader/-/less-loader-4.1.0.tgz",
-      "integrity": "sha512-KNTsgCE9tMOM70+ddxp9yyt9iHqgmSs0yTZc5XH5Wo+g80RWRIYNqE58QJKm/yMud5wZEvz50ugRDuzVIkyahg==",
-      "dev": true,
-      "requires": {
-        "clone": "^2.1.1",
-        "loader-utils": "^1.1.0",
-        "pify": "^3.0.0"
-      }
-    },
-    "leven": {
-      "version": "2.1.0",
-      "resolved": "https://registry.npmjs.org/leven/-/leven-2.1.0.tgz",
-      "integrity": "sha1-wuep93IJTe6dNCAq6KzORoeHVYA=",
-      "dev": true
-    },
-    "levn": {
-      "version": "0.3.0",
-      "resolved": "https://registry.npmjs.org/levn/-/levn-0.3.0.tgz",
-      "integrity": "sha1-OwmSTt+fCDwEkP3UwLxEIeBHZO4=",
-      "requires": {
-        "prelude-ls": "~1.1.2",
-        "type-check": "~0.3.2"
-      }
-    },
-    "license-webpack-plugin": {
-      "version": "2.0.2",
-      "resolved": "https://registry.npmjs.org/license-webpack-plugin/-/license-webpack-plugin-2.0.2.tgz",
-      "integrity": "sha512-GsomZw5VoT20ST8qH2tOjBgbyhn6Pgs9M94g0mbvfBIV1VXufm1iKY+4dbgfTObj1Mp6nSRE3Zf74deOZr0KwA==",
-      "dev": true,
-      "requires": {
-        "webpack-sources": "^1.2.0"
-      },
-      "dependencies": {
-        "source-map": {
-          "version": "0.6.1",
-          "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.6.1.tgz",
-          "integrity": "sha512-UjgapumWlbMhkBgzT7Ykc5YXUT46F0iKu8SGXq0bcwP5dz/h0Plj6enJqjz1Zbq2l5WaqYnrVbwWOWMyF3F47g==",
-          "dev": true
-        },
-        "webpack-sources": {
-          "version": "1.3.0",
-          "resolved": "https://registry.npmjs.org/webpack-sources/-/webpack-sources-1.3.0.tgz",
-          "integrity": "sha512-OiVgSrbGu7NEnEvQJJgdSFPl2qWKkWq5lHMhgiToIiN9w34EBnjYzSYs+VbL5KoYiLNtFFa7BZIKxRED3I32pA==",
-          "dev": true,
-          "requires": {
-            "source-list-map": "^2.0.0",
-            "source-map": "~0.6.1"
-          }
-        }
-      }
-    },
-    "lineclip": {
-      "version": "1.1.5",
-      "resolved": "https://registry.npmjs.org/lineclip/-/lineclip-1.1.5.tgz",
-      "integrity": "sha1-K/JgZ9lDVP6r+R5CdoI221YW/RM="
-    },
-    "listr": {
-      "version": "0.12.0",
-      "resolved": "https://registry.npmjs.org/listr/-/listr-0.12.0.tgz",
-      "integrity": "sha1-a84sD1YD+klYDqF81qAMwOX6RRo=",
-      "dev": true,
-      "requires": {
-        "chalk": "^1.1.3",
-        "cli-truncate": "^0.2.1",
-        "figures": "^1.7.0",
-        "indent-string": "^2.1.0",
-        "is-promise": "^2.1.0",
-        "is-stream": "^1.1.0",
-        "listr-silent-renderer": "^1.1.1",
-        "listr-update-renderer": "^0.2.0",
-        "listr-verbose-renderer": "^0.4.0",
-        "log-symbols": "^1.0.2",
-        "log-update": "^1.0.2",
-        "ora": "^0.2.3",
-        "p-map": "^1.1.1",
-        "rxjs": "^5.0.0-beta.11",
-        "stream-to-observable": "^0.1.0",
-        "strip-ansi": "^3.0.1"
-      },
-      "dependencies": {
-        "ansi-styles": {
-          "version": "2.2.1",
-          "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-2.2.1.tgz",
-          "integrity": "sha1-tDLdM1i2NM914eRmQ2gkBTPB3b4=",
-          "dev": true
-        },
-        "chalk": {
-          "version": "1.1.3",
-          "resolved": "https://registry.npmjs.org/chalk/-/chalk-1.1.3.tgz",
-          "integrity": "sha1-qBFcVeSnAv5NFQq9OHKCKn4J/Jg=",
-          "dev": true,
-          "requires": {
-            "ansi-styles": "^2.2.1",
-            "escape-string-regexp": "^1.0.2",
-            "has-ansi": "^2.0.0",
-            "strip-ansi": "^3.0.0",
-            "supports-color": "^2.0.0"
-          }
-        },
-        "figures": {
-          "version": "1.7.0",
-          "resolved": "https://registry.npmjs.org/figures/-/figures-1.7.0.tgz",
-          "integrity": "sha1-y+Hjr/zxzUS4DK3+0o3Hk6lwHS4=",
-          "dev": true,
-          "requires": {
-            "escape-string-regexp": "^1.0.5",
-            "object-assign": "^4.1.0"
-          }
-        },
-        "log-symbols": {
-          "version": "1.0.2",
-          "resolved": "https://registry.npmjs.org/log-symbols/-/log-symbols-1.0.2.tgz",
-          "integrity": "sha1-N2/3tY6jCGoPCfrMdGF+ylAeGhg=",
-          "dev": true,
-          "requires": {
-            "chalk": "^1.0.0"
-          }
-        },
-        "rxjs": {
-          "version": "5.5.12",
-          "resolved": "https://registry.npmjs.org/rxjs/-/rxjs-5.5.12.tgz",
-          "integrity": "sha512-xx2itnL5sBbqeeiVgNPVuQQ1nC8Jp2WfNJhXWHmElW9YmrpS9UVnNzhP3EH3HFqexO5Tlp8GhYY+WEcqcVMvGw==",
-          "dev": true,
-          "requires": {
-            "symbol-observable": "1.0.1"
-          }
-        },
-        "supports-color": {
-          "version": "2.0.0",
-          "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-2.0.0.tgz",
-          "integrity": "sha1-U10EXOa2Nj+kARcIRimZXp3zJMc=",
-          "dev": true
-        },
-        "symbol-observable": {
-          "version": "1.0.1",
-          "resolved": "https://registry.npmjs.org/symbol-observable/-/symbol-observable-1.0.1.tgz",
-          "integrity": "sha1-g0D8RwLDEi310iKI+IKD9RPT/dQ=",
-          "dev": true
-        }
-      }
-    },
-    "listr-silent-renderer": {
-      "version": "1.1.1",
-      "resolved": "https://registry.npmjs.org/listr-silent-renderer/-/listr-silent-renderer-1.1.1.tgz",
-      "integrity": "sha1-kktaN1cVN3C/Go4/v3S4u/P5JC4=",
-      "dev": true
-    },
-    "listr-update-renderer": {
-      "version": "0.2.0",
-      "resolved": "https://registry.npmjs.org/listr-update-renderer/-/listr-update-renderer-0.2.0.tgz",
-      "integrity": "sha1-yoDhd5tOcCZoB+ju0a1qvjmFUPk=",
-      "dev": true,
-      "requires": {
-        "chalk": "^1.1.3",
-        "cli-truncate": "^0.2.1",
-        "elegant-spinner": "^1.0.1",
-        "figures": "^1.7.0",
-        "indent-string": "^3.0.0",
-        "log-symbols": "^1.0.2",
-        "log-update": "^1.0.2",
-        "strip-ansi": "^3.0.1"
-      },
-      "dependencies": {
-        "ansi-styles": {
-          "version": "2.2.1",
-          "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-2.2.1.tgz",
-          "integrity": "sha1-tDLdM1i2NM914eRmQ2gkBTPB3b4=",
-          "dev": true
-        },
-        "chalk": {
-          "version": "1.1.3",
-          "resolved": "https://registry.npmjs.org/chalk/-/chalk-1.1.3.tgz",
-          "integrity": "sha1-qBFcVeSnAv5NFQq9OHKCKn4J/Jg=",
-          "dev": true,
-          "requires": {
-            "ansi-styles": "^2.2.1",
-            "escape-string-regexp": "^1.0.2",
-            "has-ansi": "^2.0.0",
-            "strip-ansi": "^3.0.0",
-            "supports-color": "^2.0.0"
-          }
-        },
-        "figures": {
-          "version": "1.7.0",
-          "resolved": "https://registry.npmjs.org/figures/-/figures-1.7.0.tgz",
-          "integrity": "sha1-y+Hjr/zxzUS4DK3+0o3Hk6lwHS4=",
-          "dev": true,
-          "requires": {
-            "escape-string-regexp": "^1.0.5",
-            "object-assign": "^4.1.0"
-          }
-        },
-        "indent-string": {
-          "version": "3.2.0",
-          "resolved": "https://registry.npmjs.org/indent-string/-/indent-string-3.2.0.tgz",
-          "integrity": "sha1-Sl/W0nzDMvN+VBmlBNu4NxBckok=",
-          "dev": true
-        },
-        "log-symbols": {
-          "version": "1.0.2",
-          "resolved": "https://registry.npmjs.org/log-symbols/-/log-symbols-1.0.2.tgz",
-          "integrity": "sha1-N2/3tY6jCGoPCfrMdGF+ylAeGhg=",
-          "dev": true,
-          "requires": {
-            "chalk": "^1.0.0"
-          }
-        },
-        "supports-color": {
-          "version": "2.0.0",
-          "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-2.0.0.tgz",
-          "integrity": "sha1-U10EXOa2Nj+kARcIRimZXp3zJMc=",
-          "dev": true
-        }
-      }
-    },
-    "listr-verbose-renderer": {
-      "version": "0.4.1",
-      "resolved": "https://registry.npmjs.org/listr-verbose-renderer/-/listr-verbose-renderer-0.4.1.tgz",
-      "integrity": "sha1-ggb0z21S3cWCfl/RSYng6WWTOjU=",
-      "dev": true,
-      "requires": {
-        "chalk": "^1.1.3",
-        "cli-cursor": "^1.0.2",
-        "date-fns": "^1.27.2",
-        "figures": "^1.7.0"
-      },
-      "dependencies": {
-        "ansi-styles": {
-          "version": "2.2.1",
-          "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-2.2.1.tgz",
-          "integrity": "sha1-tDLdM1i2NM914eRmQ2gkBTPB3b4=",
-          "dev": true
-        },
-        "chalk": {
-          "version": "1.1.3",
-          "resolved": "https://registry.npmjs.org/chalk/-/chalk-1.1.3.tgz",
-          "integrity": "sha1-qBFcVeSnAv5NFQq9OHKCKn4J/Jg=",
-          "dev": true,
-          "requires": {
-            "ansi-styles": "^2.2.1",
-            "escape-string-regexp": "^1.0.2",
-            "has-ansi": "^2.0.0",
-            "strip-ansi": "^3.0.0",
-            "supports-color": "^2.0.0"
-          }
-        },
-        "cli-cursor": {
-          "version": "1.0.2",
-          "resolved": "https://registry.npmjs.org/cli-cursor/-/cli-cursor-1.0.2.tgz",
-          "integrity": "sha1-ZNo/fValRBLll5S9Ytw1KV6PKYc=",
-          "dev": true,
-          "requires": {
-            "restore-cursor": "^1.0.1"
-          }
-        },
-        "figures": {
-          "version": "1.7.0",
-          "resolved": "https://registry.npmjs.org/figures/-/figures-1.7.0.tgz",
-          "integrity": "sha1-y+Hjr/zxzUS4DK3+0o3Hk6lwHS4=",
-          "dev": true,
-          "requires": {
-            "escape-string-regexp": "^1.0.5",
-            "object-assign": "^4.1.0"
-          }
-        },
-        "onetime": {
-          "version": "1.1.0",
-          "resolved": "https://registry.npmjs.org/onetime/-/onetime-1.1.0.tgz",
-          "integrity": "sha1-ofeDj4MUxRbwXs78vEzP4EtO14k=",
-          "dev": true
-        },
-        "restore-cursor": {
-          "version": "1.0.1",
-          "resolved": "https://registry.npmjs.org/restore-cursor/-/restore-cursor-1.0.1.tgz",
-          "integrity": "sha1-NGYfRohjJ/7SmRR5FSJS35LapUE=",
-          "dev": true,
-          "requires": {
-            "exit-hook": "^1.0.0",
-            "onetime": "^1.0.0"
-          }
-        },
-        "supports-color": {
-          "version": "2.0.0",
-          "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-2.0.0.tgz",
-          "integrity": "sha1-U10EXOa2Nj+kARcIRimZXp3zJMc=",
-          "dev": true
-        }
-      }
-    },
-    "load-json-file": {
-      "version": "1.1.0",
-      "resolved": "https://registry.npmjs.org/load-json-file/-/load-json-file-1.1.0.tgz",
-      "integrity": "sha1-lWkFcI1YtLq0wiYbBPWfMcmTdMA=",
-      "dev": true,
-      "requires": {
-        "graceful-fs": "^4.1.2",
-        "parse-json": "^2.2.0",
-        "pify": "^2.0.0",
-        "pinkie-promise": "^2.0.0",
-        "strip-bom": "^2.0.0"
-      },
-      "dependencies": {
-        "pify": {
-          "version": "2.3.0",
-          "resolved": "https://registry.npmjs.org/pify/-/pify-2.3.0.tgz",
-          "integrity": "sha1-7RQaasBDqEnqWISY59yosVMw6Qw=",
-          "dev": true
-        }
-      }
-    },
-    "loader-runner": {
-      "version": "2.3.0",
-      "resolved": "https://registry.npmjs.org/loader-runner/-/loader-runner-2.3.0.tgz",
-      "integrity": "sha1-9IKuqC1UPgeSFwDVpG7yb9rGuKI=",
-      "dev": true
-    },
-    "loader-utils": {
-      "version": "1.1.0",
-      "resolved": "https://registry.npmjs.org/loader-utils/-/loader-utils-1.1.0.tgz",
-      "integrity": "sha1-yYrvSIvM7aL/teLeZG1qdUQp9c0=",
-      "requires": {
-        "big.js": "^3.1.3",
-        "emojis-list": "^2.0.0",
-        "json5": "^0.5.0"
-      }
-    },
-    "locate-path": {
-      "version": "2.0.0",
-      "resolved": "https://registry.npmjs.org/locate-path/-/locate-path-2.0.0.tgz",
-      "integrity": "sha1-K1aLJl7slExtnA3pw9u7ygNUzY4=",
-      "dev": true,
-      "requires": {
-        "p-locate": "^2.0.0",
-        "path-exists": "^3.0.0"
-      }
-    },
-    "lodash": {
-      "version": "4.17.5",
-      "resolved": "https://registry.npmjs.org/lodash/-/lodash-4.17.5.tgz",
-      "integrity": "sha512-svL3uiZf1RwhH+cWrfZn3A4+U58wbP0tGVTLQPbjplZxZ8ROD9VLuNgsRniTlLe7OlSqR79RUehXgpBW/s0IQw=="
-    },
-    "lodash.assign": {
-      "version": "4.2.0",
-      "resolved": "https://registry.npmjs.org/lodash.assign/-/lodash.assign-4.2.0.tgz",
-      "integrity": "sha1-DZnzzNem0mHRm9rrkkUAXShYCOc=",
-      "dev": true,
-      "optional": true
-    },
-    "lodash.clonedeep": {
-      "version": "4.5.0",
-      "resolved": "https://registry.npmjs.org/lodash.clonedeep/-/lodash.clonedeep-4.5.0.tgz",
-      "integrity": "sha1-4j8/nE+Pvd6HJSnBBxhXoIblzO8=",
-      "dev": true
-    },
-    "lodash.debounce": {
-      "version": "4.0.8",
-      "resolved": "https://registry.npmjs.org/lodash.debounce/-/lodash.debounce-4.0.8.tgz",
-      "integrity": "sha1-gteb/zCmfEAF/9XiUVMArZyk168=",
-      "dev": true
-    },
-    "lodash.get": {
-      "version": "4.4.2",
-      "resolved": "https://registry.npmjs.org/lodash.get/-/lodash.get-4.4.2.tgz",
-      "integrity": "sha1-LRd/ZS+jHpObRDjVNBSZ36OCXpk=",
-      "dev": true
-    },
-    "lodash.mergewith": {
-      "version": "4.6.1",
-      "resolved": "https://registry.npmjs.org/lodash.mergewith/-/lodash.mergewith-4.6.1.tgz",
-      "integrity": "sha512-eWw5r+PYICtEBgrBE5hhlT6aAa75f411bgDz/ZL2KZqYV03USvucsxcHUIlGTDTECs1eunpI7HOV7U+WLDvNdQ==",
-      "dev": true,
-      "optional": true
-    },
-    "lodash.once": {
-      "version": "4.1.1",
-      "resolved": "https://registry.npmjs.org/lodash.once/-/lodash.once-4.1.1.tgz",
-      "integrity": "sha1-DdOXEhPHxW34gJd9UEyI+0cal6w=",
-      "dev": true
-    },
-    "lodash.sortby": {
-      "version": "4.7.0",
-      "resolved": "https://registry.npmjs.org/lodash.sortby/-/lodash.sortby-4.7.0.tgz",
-      "integrity": "sha1-7dFMgk4sycHgsKG0K7UhBRakJDg=",
-      "dev": true
-    },
-    "lodash.tail": {
-      "version": "4.1.1",
-      "resolved": "https://registry.npmjs.org/lodash.tail/-/lodash.tail-4.1.1.tgz",
-      "integrity": "sha1-0jM6NtnncXyK0vfKyv7HwytERmQ=",
-      "dev": true
-    },
-    "lodash.zip": {
-      "version": "4.2.0",
-      "resolved": "https://registry.npmjs.org/lodash.zip/-/lodash.zip-4.2.0.tgz",
-      "integrity": "sha1-7GZi5IlkCO1KtsVCo5kLcswIACA="
-    },
-    "log-symbols": {
-      "version": "2.2.0",
-      "resolved": "https://registry.npmjs.org/log-symbols/-/log-symbols-2.2.0.tgz",
-      "integrity": "sha512-VeIAFslyIerEJLXHziedo2basKbMKtTw3vfn5IzG0XTjhAVEJyNHnL2p7vc+wBDSdQuUpNw3M2u6xb9QsAY5Eg==",
-      "dev": true,
-      "requires": {
-        "chalk": "^2.0.1"
-      }
-    },
-    "log-update": {
-      "version": "1.0.2",
-      "resolved": "https://registry.npmjs.org/log-update/-/log-update-1.0.2.tgz",
-      "integrity": "sha1-GZKfZMQJPS0ucHWh2tivWcKWuNE=",
-      "dev": true,
-      "requires": {
-        "ansi-escapes": "^1.0.0",
-        "cli-cursor": "^1.0.2"
-      },
-      "dependencies": {
-        "ansi-escapes": {
-          "version": "1.4.0",
-          "resolved": "https://registry.npmjs.org/ansi-escapes/-/ansi-escapes-1.4.0.tgz",
-          "integrity": "sha1-06ioOzGapneTZisT52HHkRQiMG4=",
-          "dev": true
-        },
-        "cli-cursor": {
-          "version": "1.0.2",
-          "resolved": "https://registry.npmjs.org/cli-cursor/-/cli-cursor-1.0.2.tgz",
-          "integrity": "sha1-ZNo/fValRBLll5S9Ytw1KV6PKYc=",
-          "dev": true,
-          "requires": {
-            "restore-cursor": "^1.0.1"
-          }
-        },
-        "onetime": {
-          "version": "1.1.0",
-          "resolved": "https://registry.npmjs.org/onetime/-/onetime-1.1.0.tgz",
-          "integrity": "sha1-ofeDj4MUxRbwXs78vEzP4EtO14k=",
-          "dev": true
-        },
-        "restore-cursor": {
-          "version": "1.0.1",
-          "resolved": "https://registry.npmjs.org/restore-cursor/-/restore-cursor-1.0.1.tgz",
-          "integrity": "sha1-NGYfRohjJ/7SmRR5FSJS35LapUE=",
-          "dev": true,
-          "requires": {
-            "exit-hook": "^1.0.0",
-            "onetime": "^1.0.0"
-          }
-        }
-      }
-    },
-    "loglevel": {
-      "version": "1.6.1",
-      "resolved": "https://registry.npmjs.org/loglevel/-/loglevel-1.6.1.tgz",
-      "integrity": "sha1-4PyVEztu8nbNyIh82vJKpvFW+Po=",
-      "dev": true
-    },
-    "longest": {
-      "version": "1.0.1",
-      "resolved": "https://registry.npmjs.org/longest/-/longest-1.0.1.tgz",
-      "integrity": "sha1-MKCy2jj3N3DoKUoNIuZiXtd9AJc=",
-      "dev": true
-    },
-    "loose-envify": {
-      "version": "1.3.1",
-      "resolved": "https://registry.npmjs.org/loose-envify/-/loose-envify-1.3.1.tgz",
-      "integrity": "sha1-0aitM/qc4OcT1l/dCsi3SNR4yEg=",
-      "requires": {
-        "js-tokens": "^3.0.0"
-      }
-    },
-    "loud-rejection": {
-      "version": "1.6.0",
-      "resolved": "https://registry.npmjs.org/loud-rejection/-/loud-rejection-1.6.0.tgz",
-      "integrity": "sha1-W0b4AUft7leIcPCG0Eghz5mOVR8=",
-      "dev": true,
-      "optional": true,
-      "requires": {
-        "currently-unhandled": "^0.4.1",
-        "signal-exit": "^3.0.0"
-      }
-    },
-    "lowercase-keys": {
-      "version": "1.0.1",
-      "resolved": "https://registry.npmjs.org/lowercase-keys/-/lowercase-keys-1.0.1.tgz",
-      "integrity": "sha512-G2Lj61tXDnVFFOi8VZds+SoQjtQC3dgokKdDG2mTm1tx4m50NUHBOZSBwQQHyy0V12A0JTG4icfZQH+xPyh8VA=="
-    },
-    "lru-cache": {
-      "version": "4.1.2",
-      "resolved": "https://registry.npmjs.org/lru-cache/-/lru-cache-4.1.2.tgz",
-      "integrity": "sha512-wgeVXhrDwAWnIF/yZARsFnMBtdFXOg1b8RIrhilp+0iDYN4mdQcNZElDZ0e4B64BhaxeQ5zN7PMyvu7we1kPeQ==",
-      "dev": true,
-      "requires": {
-        "pseudomap": "^1.0.2",
-        "yallist": "^2.1.2"
-      }
-    },
-    "magic-string": {
-      "version": "0.25.1",
-      "resolved": "https://registry.npmjs.org/magic-string/-/magic-string-0.25.1.tgz",
-      "integrity": "sha512-sCuTz6pYom8Rlt4ISPFn6wuFodbKMIHUMv4Qko9P17dpxb7s52KJTmRuZZqHdGmLCK9AOcDare039nRIcfdkEg==",
-      "dev": true,
-      "requires": {
-        "sourcemap-codec": "^1.4.1"
-      }
-    },
-    "make-dir": {
-      "version": "1.2.0",
-      "resolved": "https://registry.npmjs.org/make-dir/-/make-dir-1.2.0.tgz",
-      "integrity": "sha512-aNUAa4UMg/UougV25bbrU4ZaaKNjJ/3/xnvg/twpmKROPdKZPZ9wGgI0opdZzO8q/zUFawoUuixuOv33eZ61Iw==",
-      "dev": true,
-      "requires": {
-        "pify": "^3.0.0"
-      }
-    },
-    "make-error": {
-      "version": "1.3.5",
-      "resolved": "https://registry.npmjs.org/make-error/-/make-error-1.3.5.tgz",
-      "integrity": "sha512-c3sIjNUow0+8swNwVpqoH4YCShKNFkMaw6oH1mNS2haDZQqkeZFlHS3dhoeEbKKmJB4vXpJucU6oH75aDYeE9g==",
-      "dev": true
-    },
-    "make-fetch-happen": {
-      "version": "4.0.1",
-      "resolved": "https://registry.npmjs.org/make-fetch-happen/-/make-fetch-happen-4.0.1.tgz",
-      "integrity": "sha512-7R5ivfy9ilRJ1EMKIOziwrns9fGeAD4bAha8EB7BIiBBLHm2KeTUGCrICFt2rbHfzheTLynv50GnNTK1zDTrcQ==",
-      "dev": true,
-      "requires": {
-        "agentkeepalive": "^3.4.1",
-        "cacache": "^11.0.1",
-        "http-cache-semantics": "^3.8.1",
-        "http-proxy-agent": "^2.1.0",
-        "https-proxy-agent": "^2.2.1",
-        "lru-cache": "^4.1.2",
-        "mississippi": "^3.0.0",
-        "node-fetch-npm": "^2.0.2",
-        "promise-retry": "^1.1.1",
-        "socks-proxy-agent": "^4.0.0",
-        "ssri": "^6.0.0"
-      },
-      "dependencies": {
-        "cacache": {
-          "version": "11.3.2",
-          "resolved": "https://registry.npmjs.org/cacache/-/cacache-11.3.2.tgz",
-          "integrity": "sha512-E0zP4EPGDOaT2chM08Als91eYnf8Z+eH1awwwVsngUmgppfM5jjJ8l3z5vO5p5w/I3LsiXawb1sW0VY65pQABg==",
-          "dev": true,
-          "requires": {
-            "bluebird": "^3.5.3",
-            "chownr": "^1.1.1",
-            "figgy-pudding": "^3.5.1",
-            "glob": "^7.1.3",
-            "graceful-fs": "^4.1.15",
-            "lru-cache": "^5.1.1",
-            "mississippi": "^3.0.0",
-            "mkdirp": "^0.5.1",
-            "move-concurrently": "^1.0.1",
-            "promise-inflight": "^1.0.1",
-            "rimraf": "^2.6.2",
-            "ssri": "^6.0.1",
-            "unique-filename": "^1.1.1",
-            "y18n": "^4.0.0"
-          },
-          "dependencies": {
-            "lru-cache": {
-              "version": "5.1.1",
-              "resolved": "https://registry.npmjs.org/lru-cache/-/lru-cache-5.1.1.tgz",
-              "integrity": "sha512-KpNARQA3Iwv+jTA0utUVVbrh+Jlrr1Fv0e56GGzAFOXN7dk/FviaDW8LHmK52DlcH4WP2n6gI8vN1aesBFgo9w==",
-              "dev": true,
-              "requires": {
-                "yallist": "^3.0.2"
-              }
-            }
-          }
-        },
-        "glob": {
-          "version": "7.1.3",
-          "resolved": "https://registry.npmjs.org/glob/-/glob-7.1.3.tgz",
-          "integrity": "sha512-vcfuiIxogLV4DlGBHIUOwI0IbrJ8HWPc4MU7HzviGeNho/UJDfi6B5p3sHeWIQ0KGIU0Jpxi5ZHxemQfLkkAwQ==",
-          "dev": true,
-          "requires": {
-            "fs.realpath": "^1.0.0",
-            "inflight": "^1.0.4",
-            "inherits": "2",
-            "minimatch": "^3.0.4",
-            "once": "^1.3.0",
-            "path-is-absolute": "^1.0.0"
-          }
-        },
-        "graceful-fs": {
-          "version": "4.1.15",
-          "resolved": "https://registry.npmjs.org/graceful-fs/-/graceful-fs-4.1.15.tgz",
-          "integrity": "sha512-6uHUhOPEBgQ24HM+r6b/QwWfZq+yiFcipKFrOFiBEnWdy5sdzYoi+pJeQaPI5qOLRFqWmAXUPQNsielzdLoecA==",
-          "dev": true
-        },
-        "mississippi": {
-          "version": "3.0.0",
-          "resolved": "https://registry.npmjs.org/mississippi/-/mississippi-3.0.0.tgz",
-          "integrity": "sha512-x471SsVjUtBRtcvd4BzKE9kFC+/2TeWgKCgw0bZcw1b9l2X3QX5vCWgF+KaZaYm87Ss//rHnWryupDrgLvmSkA==",
-          "dev": true,
-          "requires": {
-            "concat-stream": "^1.5.0",
-            "duplexify": "^3.4.2",
-            "end-of-stream": "^1.1.0",
-            "flush-write-stream": "^1.0.0",
-            "from2": "^2.1.0",
-            "parallel-transform": "^1.1.0",
-            "pump": "^3.0.0",
-            "pumpify": "^1.3.3",
-            "stream-each": "^1.1.0",
-            "through2": "^2.0.0"
-          }
-        },
-        "pump": {
-          "version": "3.0.0",
-          "resolved": "https://registry.npmjs.org/pump/-/pump-3.0.0.tgz",
-          "integrity": "sha512-LwZy+p3SFs1Pytd/jYct4wpv49HiYCqd9Rlc5ZVdk0V+8Yzv6jR5Blk3TRmPL1ft69TxP0IMZGJ+WPFU2BFhww==",
-          "dev": true,
-          "requires": {
-            "end-of-stream": "^1.1.0",
-            "once": "^1.3.1"
-          }
-        },
-        "ssri": {
-          "version": "6.0.1",
-          "resolved": "https://registry.npmjs.org/ssri/-/ssri-6.0.1.tgz",
-          "integrity": "sha512-3Wge10hNcT1Kur4PDFwEieXSCMCJs/7WvSACcrMYrNp+b8kDL1/0wJch5Ni2WrtwEa2IO8OsVfeKIciKCDx/QA==",
-          "dev": true,
-          "requires": {
-            "figgy-pudding": "^3.5.1"
-          }
-        },
-        "yallist": {
-          "version": "3.0.3",
-          "resolved": "https://registry.npmjs.org/yallist/-/yallist-3.0.3.tgz",
-          "integrity": "sha512-S+Zk8DEWE6oKpV+vI3qWkaK+jSbIK86pCwe2IF/xwIpQ8jEuxpw9NyaGjmp9+BoJv5FV2piqCDcoCtStppiq2A==",
-          "dev": true
-        }
-      }
-    },
-    "makeerror": {
-      "version": "1.0.11",
-      "resolved": "https://registry.npmjs.org/makeerror/-/makeerror-1.0.11.tgz",
-      "integrity": "sha1-4BpckQnyr3lmDk6LlYd5AYT1qWw=",
-      "dev": true,
-      "requires": {
-        "tmpl": "1.0.x"
-      }
-    },
-    "map-age-cleaner": {
-      "version": "0.1.3",
-      "resolved": "https://registry.npmjs.org/map-age-cleaner/-/map-age-cleaner-0.1.3.tgz",
-      "integrity": "sha512-bJzx6nMoP6PDLPBFmg7+xRKeFZvFboMrGlxmNj9ClvX53KrmvM5bXFXEWjbz4cz1AFn+jWJ9z/DJSz7hrs0w3w==",
-      "dev": true,
-      "requires": {
-        "p-defer": "^1.0.0"
-      }
-    },
-    "map-cache": {
-      "version": "0.2.2",
-      "resolved": "https://registry.npmjs.org/map-cache/-/map-cache-0.2.2.tgz",
-      "integrity": "sha1-wyq9C9ZSXZsFFkW7TyasXcmKDb8=",
-      "dev": true
-    },
-    "map-obj": {
-      "version": "1.0.1",
-      "resolved": "https://registry.npmjs.org/map-obj/-/map-obj-1.0.1.tgz",
-      "integrity": "sha1-2TPOuSBdgr3PSIb2dCvcK03qFG0=",
-      "dev": true
-    },
-    "map-visit": {
-      "version": "1.0.0",
-      "resolved": "https://registry.npmjs.org/map-visit/-/map-visit-1.0.0.tgz",
-      "integrity": "sha1-7Nyo8TFE5mDxtb1B8S80edmN+48=",
-      "dev": true,
-      "requires": {
-        "object-visit": "^1.0.0"
-      }
-    },
-    "md5": {
-      "version": "2.2.1",
-      "resolved": "https://registry.npmjs.org/md5/-/md5-2.2.1.tgz",
-      "integrity": "sha1-U6s41f48iJG6RlMp6iP6wFQBJvk=",
-      "requires": {
-        "charenc": "~0.0.1",
-        "crypt": "~0.0.1",
-        "is-buffer": "~1.1.1"
-      }
-    },
-    "md5.js": {
-      "version": "1.3.4",
-      "resolved": "https://registry.npmjs.org/md5.js/-/md5.js-1.3.4.tgz",
-      "integrity": "sha1-6b296UogpawYsENA/Fdk1bCdkB0=",
-      "dev": true,
-      "requires": {
-        "hash-base": "^3.0.0",
-        "inherits": "^2.0.1"
-      },
-      "dependencies": {
-        "hash-base": {
-          "version": "3.0.4",
-          "resolved": "https://registry.npmjs.org/hash-base/-/hash-base-3.0.4.tgz",
-          "integrity": "sha1-X8hoaEfs1zSZQDMZprCj8/auSRg=",
-          "dev": true,
-          "requires": {
-            "inherits": "^2.0.1",
-            "safe-buffer": "^5.0.1"
-          }
-        }
-      }
-    },
-    "media-typer": {
-      "version": "0.3.0",
-      "resolved": "https://registry.npmjs.org/media-typer/-/media-typer-0.3.0.tgz",
-      "integrity": "sha1-hxDXrwqmJvj/+hzgAWhUUmMlV0g=",
-      "dev": true
-    },
-    "mem": {
-      "version": "1.1.0",
-      "resolved": "https://registry.npmjs.org/mem/-/mem-1.1.0.tgz",
-      "integrity": "sha1-Xt1StIXKHZAP5kiVUFOZoN+kX3Y=",
-      "dev": true,
-      "requires": {
-        "mimic-fn": "^1.0.0"
-      }
-    },
-    "memory-fs": {
-      "version": "0.4.1",
-      "resolved": "https://registry.npmjs.org/memory-fs/-/memory-fs-0.4.1.tgz",
-      "integrity": "sha1-OpoguEYlI+RHz7x+i7gO1me/xVI=",
-      "dev": true,
-      "requires": {
-        "errno": "^0.1.3",
-        "readable-stream": "^2.0.1"
-      }
-    },
-    "memorystream": {
-      "version": "0.3.1",
-      "resolved": "https://registry.npmjs.org/memorystream/-/memorystream-0.3.1.tgz",
-      "integrity": "sha1-htcJCzDORV1j+64S3aUaR93K+bI=",
-      "dev": true
-    },
-    "meow": {
-      "version": "3.7.0",
-      "resolved": "https://registry.npmjs.org/meow/-/meow-3.7.0.tgz",
-      "integrity": "sha1-cstmi0JSKCkKu/qFaJJYcwioAfs=",
-      "dev": true,
-      "optional": true,
-      "requires": {
-        "camelcase-keys": "^2.0.0",
-        "decamelize": "^1.1.2",
-        "loud-rejection": "^1.0.0",
-        "map-obj": "^1.0.1",
-        "minimist": "^1.1.3",
-        "normalize-package-data": "^2.3.4",
-        "object-assign": "^4.0.1",
-        "read-pkg-up": "^1.0.1",
-        "redent": "^1.0.0",
-        "trim-newlines": "^1.0.0"
-      },
-      "dependencies": {
-        "minimist": {
-          "version": "1.2.0",
-          "resolved": "https://registry.npmjs.org/minimist/-/minimist-1.2.0.tgz",
-          "integrity": "sha1-o1AIsg9BOD7sH7kU9M1d95omQoQ=",
-          "dev": true,
-          "optional": true
-        }
-      }
-    },
-    "merge": {
-      "version": "1.2.1",
-      "resolved": "https://registry.npmjs.org/merge/-/merge-1.2.1.tgz",
-      "integrity": "sha512-VjFo4P5Whtj4vsLzsYBu5ayHhoHJ0UqNm7ibvShmbmoz7tGi0vXaoJbGdB+GmDMLUdg8DpQXEIeVDAe8MaABvQ==",
-      "dev": true
-    },
-    "merge-descriptors": {
-      "version": "1.0.1",
-      "resolved": "https://registry.npmjs.org/merge-descriptors/-/merge-descriptors-1.0.1.tgz",
-      "integrity": "sha1-sAqqVW3YtEVoFQ7J0blT8/kMu2E=",
-      "dev": true
-    },
-    "merge-stream": {
-      "version": "1.0.1",
-      "resolved": "https://registry.npmjs.org/merge-stream/-/merge-stream-1.0.1.tgz",
-      "integrity": "sha1-QEEgLVCKNCugAXQAjfDCUbjBNeE=",
-      "dev": true,
-      "requires": {
-        "readable-stream": "^2.0.1"
-      }
-    },
-    "methods": {
-      "version": "1.1.2",
-      "resolved": "https://registry.npmjs.org/methods/-/methods-1.1.2.tgz",
-      "integrity": "sha1-VSmk1nZUE07cxSZmVoNbD4Ua/O4=",
-      "dev": true
-    },
-    "micromatch": {
-      "version": "2.3.11",
-      "resolved": "https://registry.npmjs.org/micromatch/-/micromatch-2.3.11.tgz",
-      "integrity": "sha1-hmd8l9FyCzY0MdBNDRUpO9OMFWU=",
-      "dev": true,
-      "requires": {
-        "arr-diff": "^2.0.0",
-        "array-unique": "^0.2.1",
-        "braces": "^1.8.2",
-        "expand-brackets": "^0.1.4",
-        "extglob": "^0.3.1",
-        "filename-regex": "^2.0.0",
-        "is-extglob": "^1.0.0",
-        "is-glob": "^2.0.1",
-        "kind-of": "^3.0.2",
-        "normalize-path": "^2.0.1",
-        "object.omit": "^2.0.0",
-        "parse-glob": "^3.0.4",
-        "regex-cache": "^0.4.2"
-      }
-    },
-    "miller-rabin": {
-      "version": "4.0.1",
-      "resolved": "https://registry.npmjs.org/miller-rabin/-/miller-rabin-4.0.1.tgz",
-      "integrity": "sha512-115fLhvZVqWwHPbClyntxEVfVDfl9DLLTuJvq3g2O/Oxi8AiNouAHvDSzHS0viUJc+V5vm3eq91Xwqn9dp4jRA==",
-      "dev": true,
-      "requires": {
-        "bn.js": "^4.0.0",
-        "brorand": "^1.0.1"
-      }
-    },
-    "mime": {
-      "version": "1.6.0",
-      "resolved": "https://registry.npmjs.org/mime/-/mime-1.6.0.tgz",
-      "integrity": "sha512-x0Vn8spI+wuJ1O6S7gnbaQg8Pxh4NNHb7KSINmEWKiPE4RKOplvijn+NkmYmmRgP68mc70j2EbeTFRsrswaQeg==",
-      "dev": true,
-      "optional": true
-    },
-    "mime-db": {
-      "version": "1.33.0",
-      "resolved": "https://registry.npmjs.org/mime-db/-/mime-db-1.33.0.tgz",
-      "integrity": "sha512-BHJ/EKruNIqJf/QahvxwQZXKygOQ256myeN/Ew+THcAa5q+PjyTTMMeNQC4DZw5AwfvelsUrA6B67NKMqXDbzQ=="
-    },
-    "mime-types": {
-      "version": "2.1.18",
-      "resolved": "https://registry.npmjs.org/mime-types/-/mime-types-2.1.18.tgz",
-      "integrity": "sha512-lc/aahn+t4/SWV/qcmumYjymLsWfN3ELhpmVuUFjgsORruuZPVSwAQryq+HHGvO/SI2KVX26bx+En+zhM8g8hQ==",
-      "requires": {
-        "mime-db": "~1.33.0"
-      }
-    },
-    "mimic-fn": {
-      "version": "1.2.0",
-      "resolved": "https://registry.npmjs.org/mimic-fn/-/mimic-fn-1.2.0.tgz",
-      "integrity": "sha512-jf84uxzwiuiIVKiOLpfYk7N46TSy8ubTonmneY9vrpHNAnp0QBt2BxWV9dO3/j+BoVAb+a5G6YDPW3M5HOdMWQ==",
-      "dev": true
-    },
-    "mini-css-extract-plugin": {
-      "version": "0.4.4",
-      "resolved": "https://registry.npmjs.org/mini-css-extract-plugin/-/mini-css-extract-plugin-0.4.4.tgz",
-      "integrity": "sha512-o+Jm+ocb0asEngdM6FsZWtZsRzA8koFUudIDwYUfl94M3PejPHG7Vopw5hN9V8WsMkSFpm3tZP3Fesz89EyrfQ==",
-      "dev": true,
-      "requires": {
-        "loader-utils": "^1.1.0",
-        "schema-utils": "^1.0.0",
-        "webpack-sources": "^1.1.0"
-      }
-    },
-    "minimalistic-assert": {
-      "version": "1.0.0",
-      "resolved": "https://registry.npmjs.org/minimalistic-assert/-/minimalistic-assert-1.0.0.tgz",
-      "integrity": "sha1-cCvi3aazf0g2vLP121ZkG2Sh09M=",
-      "dev": true
-    },
-    "minimalistic-crypto-utils": {
-      "version": "1.0.1",
-      "resolved": "https://registry.npmjs.org/minimalistic-crypto-utils/-/minimalistic-crypto-utils-1.0.1.tgz",
-      "integrity": "sha1-9sAMHAsIIkblxNmd+4x8CDsrWCo=",
-      "dev": true
-    },
-    "minimatch": {
-      "version": "3.0.4",
-      "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-3.0.4.tgz",
-      "integrity": "sha512-yJHVQEhyqPLUTgt9B83PXu6W3rx4MvvHvSUvToogpwoGDOUQ+yDrR0HRot+yOCdCO7u4hX3pWft6kWBBcqh0UA==",
-      "requires": {
-        "brace-expansion": "^1.1.7"
-      }
-    },
-    "minimist": {
-      "version": "0.0.8",
-      "resolved": "https://registry.npmjs.org/minimist/-/minimist-0.0.8.tgz",
-      "integrity": "sha1-hX/Kv8M5fSYluCKCYuhqp6ARsF0="
-    },
-    "minipass": {
-      "version": "2.3.5",
-      "resolved": "https://registry.npmjs.org/minipass/-/minipass-2.3.5.tgz",
-      "integrity": "sha512-Gi1W4k059gyRbyVUZQ4mEqLm0YIUiGYfvxhF6SIlk3ui1WVxMTGfGdQ2SInh3PDrRTVvPKgULkpJtT4RH10+VA==",
-      "dev": true,
-      "requires": {
-        "safe-buffer": "^5.1.2",
-        "yallist": "^3.0.0"
-      },
-      "dependencies": {
-        "safe-buffer": {
-          "version": "5.1.2",
-          "resolved": "https://registry.npmjs.org/safe-buffer/-/safe-buffer-5.1.2.tgz",
-          "integrity": "sha512-Gd2UZBJDkXlY7GbJxfsE8/nvKkUEU1G38c1siN6QP6a9PT9MmHB8GnpscSmMJSoF8LOIrt8ud/wPtojys4G6+g==",
-          "dev": true
-        },
-        "yallist": {
-          "version": "3.0.3",
-          "resolved": "https://registry.npmjs.org/yallist/-/yallist-3.0.3.tgz",
-          "integrity": "sha512-S+Zk8DEWE6oKpV+vI3qWkaK+jSbIK86pCwe2IF/xwIpQ8jEuxpw9NyaGjmp9+BoJv5FV2piqCDcoCtStppiq2A==",
-          "dev": true
-        }
-      }
-    },
-    "minizlib": {
-      "version": "1.2.1",
-      "resolved": "https://registry.npmjs.org/minizlib/-/minizlib-1.2.1.tgz",
-      "integrity": "sha512-7+4oTUOWKg7AuL3vloEWekXY2/D20cevzsrNT2kGWm+39J9hGTCBv8VI5Pm5lXZ/o3/mdR4f8rflAPhnQb8mPA==",
-      "dev": true,
-      "requires": {
-        "minipass": "^2.2.1"
-      }
-    },
-    "mississippi": {
-      "version": "2.0.0",
-      "resolved": "https://registry.npmjs.org/mississippi/-/mississippi-2.0.0.tgz",
-      "integrity": "sha512-zHo8v+otD1J10j/tC+VNoGK9keCuByhKovAvdn74dmxJl9+mWHnx6EMsDN4lgRoMI/eYo2nchAxniIbUPb5onw==",
-      "dev": true,
-      "requires": {
-        "concat-stream": "^1.5.0",
-        "duplexify": "^3.4.2",
-        "end-of-stream": "^1.1.0",
-        "flush-write-stream": "^1.0.0",
-        "from2": "^2.1.0",
-        "parallel-transform": "^1.1.0",
-        "pump": "^2.0.1",
-        "pumpify": "^1.3.3",
-        "stream-each": "^1.1.0",
-        "through2": "^2.0.0"
-      }
-    },
-    "mixin-deep": {
-      "version": "1.3.1",
-      "resolved": "https://registry.npmjs.org/mixin-deep/-/mixin-deep-1.3.1.tgz",
-      "integrity": "sha512-8ZItLHeEgaqEvd5lYBXfm4EZSFCX29Jb9K+lAHhDKzReKBQKj3R+7NOF6tjqYi9t4oI8VUfaWITJQm86wnXGNQ==",
-      "dev": true,
-      "requires": {
-        "for-in": "^1.0.2",
-        "is-extendable": "^1.0.1"
-      },
-      "dependencies": {
-        "is-extendable": {
-          "version": "1.0.1",
-          "resolved": "https://registry.npmjs.org/is-extendable/-/is-extendable-1.0.1.tgz",
-          "integrity": "sha512-arnXMxT1hhoKo9k1LZdmlNyJdDDfy2v0fXjFlmok4+i8ul/6WlbVge9bhM74OpNPQPMGUToDtz+KXa1PneJxOA==",
-          "dev": true,
-          "requires": {
-            "is-plain-object": "^2.0.4"
-          }
-        }
-      }
-    },
-    "mixin-object": {
-      "version": "2.0.1",
-      "resolved": "https://registry.npmjs.org/mixin-object/-/mixin-object-2.0.1.tgz",
-      "integrity": "sha1-T7lJRB2rGCVA8f4DW6YOGUel5X4=",
-      "dev": true,
-      "requires": {
-        "for-in": "^0.1.3",
-        "is-extendable": "^0.1.1"
-      },
-      "dependencies": {
-        "for-in": {
-          "version": "0.1.8",
-          "resolved": "https://registry.npmjs.org/for-in/-/for-in-0.1.8.tgz",
-          "integrity": "sha1-2Hc5COMSVhCZUrH9ubP6hn0ndeE=",
-          "dev": true
-        }
-      }
-    },
-    "mkdirp": {
-      "version": "0.5.1",
-      "resolved": "https://registry.npmjs.org/mkdirp/-/mkdirp-0.5.1.tgz",
-      "integrity": "sha1-MAV0OOrGz3+MR2fzhkjWaX11yQM=",
-      "requires": {
-        "minimist": "0.0.8"
-      }
-    },
-    "mobx": {
-      "version": "4.1.0",
-      "resolved": "https://registry.npmjs.org/mobx/-/mobx-4.1.0.tgz",
-      "integrity": "sha1-5KlnnNr74hWyDjLvk6cDGEWz8a8="
-    },
-    "mobx-angular": {
-      "version": "3.0.1",
-      "resolved": "https://registry.npmjs.org/mobx-angular/-/mobx-angular-3.0.1.tgz",
-      "integrity": "sha512-PoEUEw74LoR7Ib6iGGCqvw8xMlmA/Zr5/0TVyhshq4kuzA8pHdvtCiE5AeyRK0w4LhyS7J0Qt0GboTgdhuys+A=="
-    },
-    "moment": {
-      "version": "2.22.1",
-      "resolved": "https://registry.npmjs.org/moment/-/moment-2.22.1.tgz",
-      "integrity": "sha512-shJkRTSebXvsVqk56I+lkb2latjBs8I+pc2TzWc545y2iFnSjm7Wg0QMh+ZWcdSLQyGEau5jI8ocnmkyTgr9YQ=="
-    },
-    "monotone-convex-hull-2d": {
-      "version": "1.0.1",
-      "resolved": "https://registry.npmjs.org/monotone-convex-hull-2d/-/monotone-convex-hull-2d-1.0.1.tgz",
-      "integrity": "sha1-R/Xa6t88Sv03dkuqGqh4ekDu4Iw=",
-      "requires": {
-        "robust-orientation": "^1.1.3"
-      }
-    },
-    "move-concurrently": {
-      "version": "1.0.1",
-      "resolved": "https://registry.npmjs.org/move-concurrently/-/move-concurrently-1.0.1.tgz",
-      "integrity": "sha1-viwAX9oy4LKa8fBdfEszIUxwH5I=",
-      "dev": true,
-      "requires": {
-        "aproba": "^1.1.1",
-        "copy-concurrently": "^1.0.0",
-        "fs-write-stream-atomic": "^1.0.8",
-        "mkdirp": "^0.5.1",
-        "rimraf": "^2.5.4",
-        "run-queue": "^1.0.3"
-      }
-    },
-    "mri": {
-      "version": "1.1.4",
-      "resolved": "https://registry.npmjs.org/mri/-/mri-1.1.4.tgz",
-      "integrity": "sha512-6y7IjGPm8AzlvoUrwAaw1tLnUBudaS3752vcd8JtrpGGQn+rXIe63LFVHm/YMwtqAuh+LJPCFdlLYPWM1nYn6w==",
-      "dev": true
-    },
-    "ms": {
-      "version": "2.0.0",
-      "resolved": "https://registry.npmjs.org/ms/-/ms-2.0.0.tgz",
-      "integrity": "sha1-VgiurfwAvmwpAd9fmGF4jeDVl8g="
-    },
-    "multicast-dns": {
-      "version": "6.2.3",
-      "resolved": "https://registry.npmjs.org/multicast-dns/-/multicast-dns-6.2.3.tgz",
-      "integrity": "sha512-ji6J5enbMyGRHIAkAOu3WdV8nggqviKCEKtXcOqfphZZtQrmHKycfynJ2V7eVPUA4NhJ6V7Wf4TmGbTwKE9B6g==",
-      "dev": true,
-      "requires": {
-        "dns-packet": "^1.3.1",
-        "thunky": "^1.0.2"
-      }
-    },
-    "multicast-dns-service-types": {
-      "version": "1.1.0",
-      "resolved": "https://registry.npmjs.org/multicast-dns-service-types/-/multicast-dns-service-types-1.1.0.tgz",
-      "integrity": "sha1-iZ8R2WhuXgXLkbNdXw5jt3PPyQE=",
-      "dev": true
-    },
-    "multimatch": {
-      "version": "3.0.0",
-      "resolved": "https://registry.npmjs.org/multimatch/-/multimatch-3.0.0.tgz",
-      "integrity": "sha512-22foS/gqQfANZ3o+W7ST2x25ueHDVNWl/b9OlGcLpy/iKxjCpvcNCM51YCenUi7Mt/jAjjqv8JwZRs8YP5sRjA==",
-      "dev": true,
-      "requires": {
-        "array-differ": "^2.0.3",
-        "array-union": "^1.0.2",
-        "arrify": "^1.0.1",
-        "minimatch": "^3.0.4"
-      }
-    },
-    "mute-stream": {
-      "version": "0.0.7",
-      "resolved": "https://registry.npmjs.org/mute-stream/-/mute-stream-0.0.7.tgz",
-      "integrity": "sha1-MHXOk7whuPq0PhvE2n6BFe0ee6s=",
-      "dev": true
-    },
-    "mv": {
-      "version": "2.1.1",
-      "resolved": "https://registry.npmjs.org/mv/-/mv-2.1.1.tgz",
-      "integrity": "sha1-rmzg1vbV4KT32JN5jQPB6pVZtqI=",
-      "optional": true,
-      "requires": {
-        "mkdirp": "~0.5.1",
-        "ncp": "~2.0.0",
-        "rimraf": "~2.4.0"
-      },
-      "dependencies": {
-        "glob": {
-          "version": "6.0.4",
-          "resolved": "https://registry.npmjs.org/glob/-/glob-6.0.4.tgz",
-          "integrity": "sha1-DwiGD2oVUSey+t1PnOJLGqtuTSI=",
-          "optional": true,
-          "requires": {
-            "inflight": "^1.0.4",
-            "inherits": "2",
-            "minimatch": "2 || 3",
-            "once": "^1.3.0",
-            "path-is-absolute": "^1.0.0"
-          }
-        },
-        "rimraf": {
-          "version": "2.4.5",
-          "resolved": "http://registry.npmjs.org/rimraf/-/rimraf-2.4.5.tgz",
-          "integrity": "sha1-7nEM5dk6j9uFb7Xqj/Di11k0sto=",
-          "optional": true,
-          "requires": {
-            "glob": "^6.0.1"
-          }
-        }
-      }
-    },
-    "nan": {
-      "version": "2.10.0",
-      "resolved": "https://registry.npmjs.org/nan/-/nan-2.10.0.tgz",
-      "integrity": "sha512-bAdJv7fBLhWC+/Bls0Oza+mvTaNQtP+1RyhhhvD95pgUJz6XM5IzgmxOkItJ9tkoCiplvAnXI1tNmmUD/eScyA==",
-      "optional": true
-    },
-    "nanomatch": {
-      "version": "1.2.9",
-      "resolved": "https://registry.npmjs.org/nanomatch/-/nanomatch-1.2.9.tgz",
-      "integrity": "sha512-n8R9bS8yQ6eSXaV6jHUpKzD8gLsin02w1HSFiegwrs9E098Ylhw5jdyKPaYqvHknHaSCKTPp7C8dGCQ0q9koXA==",
-      "dev": true,
-      "requires": {
-        "arr-diff": "^4.0.0",
-        "array-unique": "^0.3.2",
-        "define-property": "^2.0.2",
-        "extend-shallow": "^3.0.2",
-        "fragment-cache": "^0.2.1",
-        "is-odd": "^2.0.0",
-        "is-windows": "^1.0.2",
-        "kind-of": "^6.0.2",
-        "object.pick": "^1.3.0",
-        "regex-not": "^1.0.0",
-        "snapdragon": "^0.8.1",
-        "to-regex": "^3.0.1"
-      },
-      "dependencies": {
-        "arr-diff": {
-          "version": "4.0.0",
-          "resolved": "https://registry.npmjs.org/arr-diff/-/arr-diff-4.0.0.tgz",
-          "integrity": "sha1-1kYQdP6/7HHn4VI1dhoyml3HxSA=",
-          "dev": true
-        },
-        "array-unique": {
-          "version": "0.3.2",
-          "resolved": "https://registry.npmjs.org/array-unique/-/array-unique-0.3.2.tgz",
-          "integrity": "sha1-qJS3XUvE9s1nnvMkSp/Y9Gri1Cg=",
-          "dev": true
-        },
-        "kind-of": {
-          "version": "6.0.2",
-          "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-6.0.2.tgz",
-          "integrity": "sha512-s5kLOcnH0XqDO+FvuaLX8DDjZ18CGFk7VygH40QoKPUQhW4e2rvM0rwUq0t8IQDOwYSeLK01U90OjzBTme2QqA==",
-          "dev": true
-        }
-      }
-    },
-    "natural-compare": {
-      "version": "1.4.0",
-      "resolved": "https://registry.npmjs.org/natural-compare/-/natural-compare-1.4.0.tgz",
-      "integrity": "sha1-Sr6/7tdUHywnrPspvbvRXI1bpPc=",
-      "dev": true
-    },
-    "ncp": {
-      "version": "2.0.0",
-      "resolved": "https://registry.npmjs.org/ncp/-/ncp-2.0.0.tgz",
-      "integrity": "sha1-GVoh1sRuNh0vsSgbo4uR6d9727M=",
-      "optional": true
-    },
-    "needle": {
-      "version": "1.6.0",
-      "resolved": "https://registry.npmjs.org/needle/-/needle-1.6.0.tgz",
-      "integrity": "sha1-9SpYWJchIWGOAC+OY4TK2sItYk8=",
-      "requires": {
-        "debug": "^2.1.2",
-        "iconv-lite": "^0.4.4"
-      }
-    },
-    "negotiator": {
-      "version": "0.6.1",
-      "resolved": "https://registry.npmjs.org/negotiator/-/negotiator-0.6.1.tgz",
-      "integrity": "sha1-KzJxhOiZIQEXeyhWP7XnECrNDKk=",
-      "dev": true
-    },
-    "neo-async": {
-      "version": "2.5.0",
-      "resolved": "https://registry.npmjs.org/neo-async/-/neo-async-2.5.0.tgz",
-      "integrity": "sha512-nJmSswG4As/MkRq7QZFuH/sf/yuv8ODdMZrY4Bedjp77a5MK4A6s7YbBB64c9u79EBUOfXUXBvArmvzTD0X+6g==",
-      "dev": true
-    },
-    "next-tick": {
-      "version": "1.0.0",
-      "resolved": "https://registry.npmjs.org/next-tick/-/next-tick-1.0.0.tgz",
-      "integrity": "sha1-yobR/ogoFpsBICCOPchCS524NCw=",
-      "dev": true
-    },
-    "ng-multiselect-dropdown": {
-      "version": "0.1.3",
-      "resolved": "https://registry.npmjs.org/ng-multiselect-dropdown/-/ng-multiselect-dropdown-0.1.3.tgz",
-      "integrity": "sha512-N4MTqtcEwIQYOPB8LDer6eylo9uGmpNUrAS99HPYz9LTbupEiPkh/V87nsQmaenkiPndHXDbQhpa3/DSLcj+ew=="
-    },
-    "ng2-bootstrap-modal": {
-      "version": "1.0.1",
-      "resolved": "https://registry.npmjs.org/ng2-bootstrap-modal/-/ng2-bootstrap-modal-1.0.1.tgz",
-      "integrity": "sha1-8xZvymP9Ozrqyym41eO4cqtqseQ="
-    },
-    "ngx-bootstrap": {
-      "version": "2.0.3",
-      "resolved": "https://registry.npmjs.org/ngx-bootstrap/-/ngx-bootstrap-2.0.3.tgz",
-      "integrity": "sha512-SdtOQeQrT2BW5mUbzotZF8S55QaAYOBT7orrl2Pi/U5mCVH4U7YJIaN7yNzMfjGsYINmBOSY8Zi1MBUC1UzbWg=="
-    },
-    "ngx-contextmenu": {
-      "version": "5.1.1",
-      "resolved": "https://registry.npmjs.org/ngx-contextmenu/-/ngx-contextmenu-5.1.1.tgz",
-      "integrity": "sha512-PORVcTo9txGonSaQx8y1ZyG526Na0LY/I4NSPIquMhwziqal/WGijHtOPSJ/AjGxLooMcWsh8DyGNEzOijWrOw==",
-      "requires": {
-        "tslib": "^1.9.0"
-      }
-    },
-    "ngx-datatable": {
-      "version": "1.0.3",
-      "resolved": "https://registry.npmjs.org/ngx-datatable/-/ngx-datatable-1.0.3.tgz",
-      "integrity": "sha1-nvmRWqAZ6Zg6qOOJe2H0APL9adU="
-    },
-    "ngx-moment": {
-      "version": "2.0.0",
-      "resolved": "https://registry.npmjs.org/ngx-moment/-/ngx-moment-2.0.0.tgz",
-      "integrity": "sha512-KVTiKeSbrnTTVVtEGvC/7cqN+SCTWtbFYcRP+o0gudOPOYPS35rjIRHygADSFWoq5XqctUr5tC4/ZsWv3vJDRw==",
-      "requires": {
-        "moment": "^2.19.3",
-        "tslib": "^1.9.0"
-      }
-    },
-    "ngx-tooltip": {
-      "version": "0.0.9",
-      "resolved": "https://registry.npmjs.org/ngx-tooltip/-/ngx-tooltip-0.0.9.tgz",
-      "integrity": "sha1-mCFpPn2RxX2ugYnF1qgQUmiQtvY="
-    },
-    "ngx-wallaby-jest": {
-      "version": "0.0.1",
-      "resolved": "https://registry.npmjs.org/ngx-wallaby-jest/-/ngx-wallaby-jest-0.0.1.tgz",
-      "integrity": "sha512-dLVzxo4bzZwXG3EShUt119pTWvV8o572nMQA77LczMxxi/fWNGrGkkWx7+LiigoeGredvO9Htmlqtx4qPvcYGA==",
-      "dev": true,
-      "requires": {
-        "fs": "0.0.1-security"
-      }
-    },
-    "nice-try": {
-      "version": "1.0.4",
-      "resolved": "https://registry.npmjs.org/nice-try/-/nice-try-1.0.4.tgz",
-      "integrity": "sha512-2NpiFHqC87y/zFke0fC0spBXL3bBsoh/p5H1EFhshxjCR5+0g2d6BiXbUFz9v1sAcxsk2htp2eQnNIci2dIYcA==",
-      "dev": true
-    },
-    "node-fetch-npm": {
-      "version": "2.0.2",
-      "resolved": "https://registry.npmjs.org/node-fetch-npm/-/node-fetch-npm-2.0.2.tgz",
-      "integrity": "sha512-nJIxm1QmAj4v3nfCvEeCrYSoVwXyxLnaPBK5W1W5DGEJwjlKuC2VEUycGw5oxk+4zZahRrB84PUJJgEmhFTDFw==",
-      "dev": true,
-      "requires": {
-        "encoding": "^0.1.11",
-        "json-parse-better-errors": "^1.0.0",
-        "safe-buffer": "^5.1.1"
-      }
-    },
-    "node-forge": {
-      "version": "0.7.5",
-      "resolved": "https://registry.npmjs.org/node-forge/-/node-forge-0.7.5.tgz",
-      "integrity": "sha512-MmbQJ2MTESTjt3Gi/3yG1wGpIMhUfcIypUCGtTizFR9IiccFwxSpfp0vtIZlkFclEqERemxfnSdZEMR9VqqEFQ==",
-      "dev": true
-    },
-    "node-gyp": {
-      "version": "3.8.0",
-      "resolved": "https://registry.npmjs.org/node-gyp/-/node-gyp-3.8.0.tgz",
-      "integrity": "sha512-3g8lYefrRRzvGeSowdJKAKyks8oUpLEd/DyPV4eMhVlhJ0aNaZqIrNUIPuEWWTAoPqyFkfGrM67MC69baqn6vA==",
-      "dev": true,
-      "optional": true,
-      "requires": {
-        "fstream": "^1.0.0",
-        "glob": "^7.0.3",
-        "graceful-fs": "^4.1.2",
-        "mkdirp": "^0.5.0",
-        "nopt": "2 || 3",
-        "npmlog": "0 || 1 || 2 || 3 || 4",
-        "osenv": "0",
-        "request": "^2.87.0",
-        "rimraf": "2",
-        "semver": "~5.3.0",
-        "tar": "^2.0.0",
-        "which": "1"
-      },
-      "dependencies": {
-        "ajv": {
-          "version": "6.6.2",
-          "resolved": "https://registry.npmjs.org/ajv/-/ajv-6.6.2.tgz",
-          "integrity": "sha512-FBHEW6Jf5TB9MGBgUUA9XHkTbjXYfAUjY43ACMfmdMRHniyoMHjHjzD50OK8LGDWQwp4rWEsIq5kEqq7rvIM1g==",
-          "dev": true,
-          "optional": true,
-          "requires": {
-            "fast-deep-equal": "^2.0.1",
-            "fast-json-stable-stringify": "^2.0.0",
-            "json-schema-traverse": "^0.4.1",
-            "uri-js": "^4.2.2"
-          }
-        },
-        "assert-plus": {
-          "version": "1.0.0",
-          "resolved": "https://registry.npmjs.org/assert-plus/-/assert-plus-1.0.0.tgz",
-          "integrity": "sha1-8S4PPF13sLHN2RRpQuTpbB5N1SU=",
-          "dev": true,
-          "optional": true
-        },
-        "aws-sign2": {
-          "version": "0.7.0",
-          "resolved": "https://registry.npmjs.org/aws-sign2/-/aws-sign2-0.7.0.tgz",
-          "integrity": "sha1-tG6JCTSpWR8tL2+G1+ap8bP+dqg=",
-          "dev": true,
-          "optional": true
-        },
-        "aws4": {
-          "version": "1.8.0",
-          "resolved": "https://registry.npmjs.org/aws4/-/aws4-1.8.0.tgz",
-          "integrity": "sha512-ReZxvNHIOv88FlT7rxcXIIC0fPt4KZqZbOlivyWtXLt8ESx84zd3kMC6iK5jVeS2qt+g7ftS7ye4fi06X5rtRQ==",
-          "dev": true,
-          "optional": true
-        },
-        "extend": {
-          "version": "3.0.2",
-          "resolved": "https://registry.npmjs.org/extend/-/extend-3.0.2.tgz",
-          "integrity": "sha512-fjquC59cD7CyW6urNXK0FBufkZcoiGG80wTuPujX590cB5Ttln20E2UB4S/WARVqhXffZl2LNgS+gQdPIIim/g==",
-          "dev": true,
-          "optional": true
-        },
-        "fast-deep-equal": {
-          "version": "2.0.1",
-          "resolved": "https://registry.npmjs.org/fast-deep-equal/-/fast-deep-equal-2.0.1.tgz",
-          "integrity": "sha1-ewUhjd+WZ79/Nwv3/bLLFf3Qqkk=",
-          "dev": true,
-          "optional": true
-        },
-        "form-data": {
-          "version": "2.3.3",
-          "resolved": "https://registry.npmjs.org/form-data/-/form-data-2.3.3.tgz",
-          "integrity": "sha512-1lLKB2Mu3aGP1Q/2eCOx0fNbRMe7XdwktwOruhfqqd0rIJWwN4Dh+E3hrPSlDCXnSR7UtZ1N38rVXm+6+MEhJQ==",
-          "dev": true,
-          "optional": true,
-          "requires": {
-            "asynckit": "^0.4.0",
-            "combined-stream": "^1.0.6",
-            "mime-types": "^2.1.12"
-          }
-        },
-        "har-schema": {
-          "version": "2.0.0",
-          "resolved": "https://registry.npmjs.org/har-schema/-/har-schema-2.0.0.tgz",
-          "integrity": "sha1-qUwiJOvKwEeCoNkDVSHyRzW37JI=",
-          "dev": true,
-          "optional": true
-        },
-        "har-validator": {
-          "version": "5.1.3",
-          "resolved": "https://registry.npmjs.org/har-validator/-/har-validator-5.1.3.tgz",
-          "integrity": "sha512-sNvOCzEQNr/qrvJgc3UG/kD4QtlHycrzwS+6mfTrrSq97BvaYcPZZI1ZSqGSPR73Cxn4LKTD4PttRwfU7jWq5g==",
-          "dev": true,
-          "optional": true,
-          "requires": {
-            "ajv": "^6.5.5",
-            "har-schema": "^2.0.0"
-          }
-        },
-        "http-signature": {
-          "version": "1.2.0",
-          "resolved": "https://registry.npmjs.org/http-signature/-/http-signature-1.2.0.tgz",
-          "integrity": "sha1-muzZJRFHcvPZW2WmCruPfBj7rOE=",
-          "dev": true,
-          "optional": true,
-          "requires": {
-            "assert-plus": "^1.0.0",
-            "jsprim": "^1.2.2",
-            "sshpk": "^1.7.0"
-          }
-        },
-        "json-schema-traverse": {
-          "version": "0.4.1",
-          "resolved": "https://registry.npmjs.org/json-schema-traverse/-/json-schema-traverse-0.4.1.tgz",
-          "integrity": "sha512-xbbCH5dCYU5T8LcEhhuh7HJ88HXuW3qsI3Y0zOZFKfZEHcpWiHU/Jxzk629Brsab/mMiHQti9wMP+845RPe3Vg==",
-          "dev": true,
-          "optional": true
-        },
-        "mime-db": {
-          "version": "1.37.0",
-          "resolved": "https://registry.npmjs.org/mime-db/-/mime-db-1.37.0.tgz",
-          "integrity": "sha512-R3C4db6bgQhlIhPU48fUtdVmKnflq+hRdad7IyKhtFj06VPNVdk2RhiYL3UjQIlso8L+YxAtFkobT0VK+S/ybg==",
-          "dev": true
-        },
-        "mime-types": {
-          "version": "2.1.21",
-          "resolved": "https://registry.npmjs.org/mime-types/-/mime-types-2.1.21.tgz",
-          "integrity": "sha512-3iL6DbwpyLzjR3xHSFNFeb9Nz/M8WDkX33t1GFQnFOllWk8pOrh/LSrB5OXlnlW5P9LH73X6loW/eogc+F5lJg==",
-          "dev": true,
-          "requires": {
-            "mime-db": "~1.37.0"
-          }
-        },
-        "oauth-sign": {
-          "version": "0.9.0",
-          "resolved": "https://registry.npmjs.org/oauth-sign/-/oauth-sign-0.9.0.tgz",
-          "integrity": "sha512-fexhUFFPTGV8ybAtSIGbV6gOkSv8UtRbDBnAyLQw4QPKkgNlsH2ByPGtMUqdWkos6YCRmAqViwgZrJc/mRDzZQ==",
-          "dev": true,
-          "optional": true
-        },
-        "performance-now": {
-          "version": "2.1.0",
-          "resolved": "https://registry.npmjs.org/performance-now/-/performance-now-2.1.0.tgz",
-          "integrity": "sha1-Ywn04OX6kT7BxpMHrjZLSzd8nns=",
-          "dev": true,
-          "optional": true
-        },
-        "qs": {
-          "version": "6.5.2",
-          "resolved": "https://registry.npmjs.org/qs/-/qs-6.5.2.tgz",
-          "integrity": "sha512-N5ZAX4/LxJmF+7wN74pUD6qAh9/wnvdQcjq9TZjevvXzSUo7bfmw91saqMjzGS2xq91/odN2dW/WOl7qQHNDGA==",
-          "dev": true,
-          "optional": true
-        },
-        "request": {
-          "version": "2.88.0",
-          "resolved": "https://registry.npmjs.org/request/-/request-2.88.0.tgz",
-          "integrity": "sha512-NAqBSrijGLZdM0WZNsInLJpkJokL72XYjUpnB0iwsRgxh7dB6COrHnTBNwN0E+lHDAJzu7kLAkDeY08z2/A0hg==",
-          "dev": true,
-          "optional": true,
-          "requires": {
-            "aws-sign2": "~0.7.0",
-            "aws4": "^1.8.0",
-            "caseless": "~0.12.0",
-            "combined-stream": "~1.0.6",
-            "extend": "~3.0.2",
-            "forever-agent": "~0.6.1",
-            "form-data": "~2.3.2",
-            "har-validator": "~5.1.0",
-            "http-signature": "~1.2.0",
-            "is-typedarray": "~1.0.0",
-            "isstream": "~0.1.2",
-            "json-stringify-safe": "~5.0.1",
-            "mime-types": "~2.1.19",
-            "oauth-sign": "~0.9.0",
-            "performance-now": "^2.1.0",
-            "qs": "~6.5.2",
-            "safe-buffer": "^5.1.2",
-            "tough-cookie": "~2.4.3",
-            "tunnel-agent": "^0.6.0",
-            "uuid": "^3.3.2"
-          }
-        },
-        "safe-buffer": {
-          "version": "5.1.2",
-          "resolved": "https://registry.npmjs.org/safe-buffer/-/safe-buffer-5.1.2.tgz",
-          "integrity": "sha512-Gd2UZBJDkXlY7GbJxfsE8/nvKkUEU1G38c1siN6QP6a9PT9MmHB8GnpscSmMJSoF8LOIrt8ud/wPtojys4G6+g==",
-          "dev": true,
-          "optional": true
-        },
-        "semver": {
-          "version": "5.3.0",
-          "resolved": "https://registry.npmjs.org/semver/-/semver-5.3.0.tgz",
-          "integrity": "sha1-myzl094C0XxgEq0yaqa00M9U+U8=",
-          "dev": true,
-          "optional": true
-        },
-        "tough-cookie": {
-          "version": "2.4.3",
-          "resolved": "https://registry.npmjs.org/tough-cookie/-/tough-cookie-2.4.3.tgz",
-          "integrity": "sha512-Q5srk/4vDM54WJsJio3XNn6K2sCG+CQ8G5Wz6bZhRZoAe/+TxjWB/GlFAnYEbkYVlON9FMk/fE3h2RLpPXo4lQ==",
-          "dev": true,
-          "optional": true,
-          "requires": {
-            "psl": "^1.1.24",
-            "punycode": "^1.4.1"
-          }
-        },
-        "uuid": {
-          "version": "3.3.2",
-          "resolved": "https://registry.npmjs.org/uuid/-/uuid-3.3.2.tgz",
-          "integrity": "sha512-yXJmeNaw3DnnKAOKJE51sL/ZaYfWJRl1pK9dr19YFCu0ObS231AB1/LbqTKRAQ5kw8A90rA6fr4riOUpTZvQZA==",
-          "dev": true,
-          "optional": true
-        }
-      }
-    },
-    "node-int64": {
-      "version": "0.4.0",
-      "resolved": "https://registry.npmjs.org/node-int64/-/node-int64-0.4.0.tgz",
-      "integrity": "sha1-h6kGXNs1XTGC2PlM4RGIuCXGijs=",
-      "dev": true
-    },
-    "node-libs-browser": {
-      "version": "2.1.0",
-      "resolved": "https://registry.npmjs.org/node-libs-browser/-/node-libs-browser-2.1.0.tgz",
-      "integrity": "sha512-5AzFzdoIMb89hBGMZglEegffzgRg+ZFoUmisQ8HI4j1KDdpx13J0taNp2y9xPbur6W61gepGDDotGBVQ7mfUCg==",
-      "dev": true,
-      "requires": {
-        "assert": "^1.1.1",
-        "browserify-zlib": "^0.2.0",
-        "buffer": "^4.3.0",
-        "console-browserify": "^1.1.0",
-        "constants-browserify": "^1.0.0",
-        "crypto-browserify": "^3.11.0",
-        "domain-browser": "^1.1.1",
-        "events": "^1.0.0",
-        "https-browserify": "^1.0.0",
-        "os-browserify": "^0.3.0",
-        "path-browserify": "0.0.0",
-        "process": "^0.11.10",
-        "punycode": "^1.2.4",
-        "querystring-es3": "^0.2.0",
-        "readable-stream": "^2.3.3",
-        "stream-browserify": "^2.0.1",
-        "stream-http": "^2.7.2",
-        "string_decoder": "^1.0.0",
-        "timers-browserify": "^2.0.4",
-        "tty-browserify": "0.0.0",
-        "url": "^0.11.0",
-        "util": "^0.10.3",
-        "vm-browserify": "0.0.4"
-      }
-    },
-    "node-modules-regexp": {
-      "version": "1.0.0",
-      "resolved": "https://registry.npmjs.org/node-modules-regexp/-/node-modules-regexp-1.0.0.tgz",
-      "integrity": "sha1-jZ2+KJZKSsVxLpExZCEHxx6Q7EA=",
-      "dev": true
-    },
-    "node-notifier": {
-      "version": "5.4.0",
-      "resolved": "https://registry.npmjs.org/node-notifier/-/node-notifier-5.4.0.tgz",
-      "integrity": "sha512-SUDEb+o71XR5lXSTyivXd9J7fCloE3SyP4lSgt3lU2oSANiox+SxlNRGPjDKrwU1YN3ix2KN/VGGCg0t01rttQ==",
-      "dev": true,
-      "requires": {
-        "growly": "^1.3.0",
-        "is-wsl": "^1.1.0",
-        "semver": "^5.5.0",
-        "shellwords": "^0.1.1",
-        "which": "^1.3.0"
-      }
-    },
-    "node-releases": {
-      "version": "1.1.2",
-      "resolved": "https://registry.npmjs.org/node-releases/-/node-releases-1.1.2.tgz",
-      "integrity": "sha512-j1gEV/zX821yxdWp/1vBMN0pSUjuH9oGUdLCb4PfUko6ZW7KdRs3Z+QGGwDUhYtSpQvdVVyLd2V0YvLsmdg5jQ==",
-      "dev": true,
-      "requires": {
-        "semver": "^5.3.0"
-      }
-    },
-    "node-sass": {
-      "version": "4.10.0",
-      "resolved": "https://registry.npmjs.org/node-sass/-/node-sass-4.10.0.tgz",
-      "integrity": "sha512-fDQJfXszw6vek63Fe/ldkYXmRYK/QS6NbvM3i5oEo9ntPDy4XX7BcKZyTKv+/kSSxRtXXc7l+MSwEmYc0CSy6Q==",
-      "dev": true,
-      "optional": true,
-      "requires": {
-        "async-foreach": "^0.1.3",
-        "chalk": "^1.1.1",
-        "cross-spawn": "^3.0.0",
-        "gaze": "^1.0.0",
-        "get-stdin": "^4.0.1",
-        "glob": "^7.0.3",
-        "in-publish": "^2.0.0",
-        "lodash.assign": "^4.2.0",
-        "lodash.clonedeep": "^4.3.2",
-        "lodash.mergewith": "^4.6.0",
-        "meow": "^3.7.0",
-        "mkdirp": "^0.5.1",
-        "nan": "^2.10.0",
-        "node-gyp": "^3.8.0",
-        "npmlog": "^4.0.0",
-        "request": "^2.88.0",
-        "sass-graph": "^2.2.4",
-        "stdout-stream": "^1.4.0",
-        "true-case-path": "^1.0.2"
-      },
-      "dependencies": {
-        "ajv": {
-          "version": "6.6.2",
-          "resolved": "https://registry.npmjs.org/ajv/-/ajv-6.6.2.tgz",
-          "integrity": "sha512-FBHEW6Jf5TB9MGBgUUA9XHkTbjXYfAUjY43ACMfmdMRHniyoMHjHjzD50OK8LGDWQwp4rWEsIq5kEqq7rvIM1g==",
-          "dev": true,
-          "optional": true,
-          "requires": {
-            "fast-deep-equal": "^2.0.1",
-            "fast-json-stable-stringify": "^2.0.0",
-            "json-schema-traverse": "^0.4.1",
-            "uri-js": "^4.2.2"
-          }
-        },
-        "ansi-styles": {
-          "version": "2.2.1",
-          "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-2.2.1.tgz",
-          "integrity": "sha1-tDLdM1i2NM914eRmQ2gkBTPB3b4=",
-          "dev": true,
-          "optional": true
-        },
-        "assert-plus": {
-          "version": "1.0.0",
-          "resolved": "https://registry.npmjs.org/assert-plus/-/assert-plus-1.0.0.tgz",
-          "integrity": "sha1-8S4PPF13sLHN2RRpQuTpbB5N1SU=",
-          "dev": true,
-          "optional": true
-        },
-        "aws-sign2": {
-          "version": "0.7.0",
-          "resolved": "https://registry.npmjs.org/aws-sign2/-/aws-sign2-0.7.0.tgz",
-          "integrity": "sha1-tG6JCTSpWR8tL2+G1+ap8bP+dqg=",
-          "dev": true,
-          "optional": true
-        },
-        "aws4": {
-          "version": "1.8.0",
-          "resolved": "https://registry.npmjs.org/aws4/-/aws4-1.8.0.tgz",
-          "integrity": "sha512-ReZxvNHIOv88FlT7rxcXIIC0fPt4KZqZbOlivyWtXLt8ESx84zd3kMC6iK5jVeS2qt+g7ftS7ye4fi06X5rtRQ==",
-          "dev": true,
-          "optional": true
-        },
-        "chalk": {
-          "version": "1.1.3",
-          "resolved": "https://registry.npmjs.org/chalk/-/chalk-1.1.3.tgz",
-          "integrity": "sha1-qBFcVeSnAv5NFQq9OHKCKn4J/Jg=",
-          "dev": true,
-          "optional": true,
-          "requires": {
-            "ansi-styles": "^2.2.1",
-            "escape-string-regexp": "^1.0.2",
-            "has-ansi": "^2.0.0",
-            "strip-ansi": "^3.0.0",
-            "supports-color": "^2.0.0"
-          }
-        },
-        "extend": {
-          "version": "3.0.2",
-          "resolved": "https://registry.npmjs.org/extend/-/extend-3.0.2.tgz",
-          "integrity": "sha512-fjquC59cD7CyW6urNXK0FBufkZcoiGG80wTuPujX590cB5Ttln20E2UB4S/WARVqhXffZl2LNgS+gQdPIIim/g==",
-          "dev": true,
-          "optional": true
-        },
-        "fast-deep-equal": {
-          "version": "2.0.1",
-          "resolved": "https://registry.npmjs.org/fast-deep-equal/-/fast-deep-equal-2.0.1.tgz",
-          "integrity": "sha1-ewUhjd+WZ79/Nwv3/bLLFf3Qqkk=",
-          "dev": true,
-          "optional": true
-        },
-        "form-data": {
-          "version": "2.3.3",
-          "resolved": "https://registry.npmjs.org/form-data/-/form-data-2.3.3.tgz",
-          "integrity": "sha512-1lLKB2Mu3aGP1Q/2eCOx0fNbRMe7XdwktwOruhfqqd0rIJWwN4Dh+E3hrPSlDCXnSR7UtZ1N38rVXm+6+MEhJQ==",
-          "dev": true,
-          "optional": true,
-          "requires": {
-            "asynckit": "^0.4.0",
-            "combined-stream": "^1.0.6",
-            "mime-types": "^2.1.12"
-          }
-        },
-        "har-schema": {
-          "version": "2.0.0",
-          "resolved": "https://registry.npmjs.org/har-schema/-/har-schema-2.0.0.tgz",
-          "integrity": "sha1-qUwiJOvKwEeCoNkDVSHyRzW37JI=",
-          "dev": true,
-          "optional": true
-        },
-        "har-validator": {
-          "version": "5.1.3",
-          "resolved": "https://registry.npmjs.org/har-validator/-/har-validator-5.1.3.tgz",
-          "integrity": "sha512-sNvOCzEQNr/qrvJgc3UG/kD4QtlHycrzwS+6mfTrrSq97BvaYcPZZI1ZSqGSPR73Cxn4LKTD4PttRwfU7jWq5g==",
-          "dev": true,
-          "optional": true,
-          "requires": {
-            "ajv": "^6.5.5",
-            "har-schema": "^2.0.0"
-          }
-        },
-        "http-signature": {
-          "version": "1.2.0",
-          "resolved": "https://registry.npmjs.org/http-signature/-/http-signature-1.2.0.tgz",
-          "integrity": "sha1-muzZJRFHcvPZW2WmCruPfBj7rOE=",
-          "dev": true,
-          "optional": true,
-          "requires": {
-            "assert-plus": "^1.0.0",
-            "jsprim": "^1.2.2",
-            "sshpk": "^1.7.0"
-          }
-        },
-        "json-schema-traverse": {
-          "version": "0.4.1",
-          "resolved": "https://registry.npmjs.org/json-schema-traverse/-/json-schema-traverse-0.4.1.tgz",
-          "integrity": "sha512-xbbCH5dCYU5T8LcEhhuh7HJ88HXuW3qsI3Y0zOZFKfZEHcpWiHU/Jxzk629Brsab/mMiHQti9wMP+845RPe3Vg==",
-          "dev": true,
-          "optional": true
-        },
-        "mime-db": {
-          "version": "1.37.0",
-          "resolved": "https://registry.npmjs.org/mime-db/-/mime-db-1.37.0.tgz",
-          "integrity": "sha512-R3C4db6bgQhlIhPU48fUtdVmKnflq+hRdad7IyKhtFj06VPNVdk2RhiYL3UjQIlso8L+YxAtFkobT0VK+S/ybg==",
-          "dev": true
-        },
-        "mime-types": {
-          "version": "2.1.21",
-          "resolved": "https://registry.npmjs.org/mime-types/-/mime-types-2.1.21.tgz",
-          "integrity": "sha512-3iL6DbwpyLzjR3xHSFNFeb9Nz/M8WDkX33t1GFQnFOllWk8pOrh/LSrB5OXlnlW5P9LH73X6loW/eogc+F5lJg==",
-          "dev": true,
-          "requires": {
-            "mime-db": "~1.37.0"
-          }
-        },
-        "oauth-sign": {
-          "version": "0.9.0",
-          "resolved": "https://registry.npmjs.org/oauth-sign/-/oauth-sign-0.9.0.tgz",
-          "integrity": "sha512-fexhUFFPTGV8ybAtSIGbV6gOkSv8UtRbDBnAyLQw4QPKkgNlsH2ByPGtMUqdWkos6YCRmAqViwgZrJc/mRDzZQ==",
-          "dev": true,
-          "optional": true
-        },
-        "performance-now": {
-          "version": "2.1.0",
-          "resolved": "https://registry.npmjs.org/performance-now/-/performance-now-2.1.0.tgz",
-          "integrity": "sha1-Ywn04OX6kT7BxpMHrjZLSzd8nns=",
-          "dev": true,
-          "optional": true
-        },
-        "qs": {
-          "version": "6.5.2",
-          "resolved": "https://registry.npmjs.org/qs/-/qs-6.5.2.tgz",
-          "integrity": "sha512-N5ZAX4/LxJmF+7wN74pUD6qAh9/wnvdQcjq9TZjevvXzSUo7bfmw91saqMjzGS2xq91/odN2dW/WOl7qQHNDGA==",
-          "dev": true,
-          "optional": true
-        },
-        "request": {
-          "version": "2.88.0",
-          "resolved": "https://registry.npmjs.org/request/-/request-2.88.0.tgz",
-          "integrity": "sha512-NAqBSrijGLZdM0WZNsInLJpkJokL72XYjUpnB0iwsRgxh7dB6COrHnTBNwN0E+lHDAJzu7kLAkDeY08z2/A0hg==",
-          "dev": true,
-          "optional": true,
-          "requires": {
-            "aws-sign2": "~0.7.0",
-            "aws4": "^1.8.0",
-            "caseless": "~0.12.0",
-            "combined-stream": "~1.0.6",
-            "extend": "~3.0.2",
-            "forever-agent": "~0.6.1",
-            "form-data": "~2.3.2",
-            "har-validator": "~5.1.0",
-            "http-signature": "~1.2.0",
-            "is-typedarray": "~1.0.0",
-            "isstream": "~0.1.2",
-            "json-stringify-safe": "~5.0.1",
-            "mime-types": "~2.1.19",
-            "oauth-sign": "~0.9.0",
-            "performance-now": "^2.1.0",
-            "qs": "~6.5.2",
-            "safe-buffer": "^5.1.2",
-            "tough-cookie": "~2.4.3",
-            "tunnel-agent": "^0.6.0",
-            "uuid": "^3.3.2"
-          }
-        },
-        "safe-buffer": {
-          "version": "5.1.2",
-          "resolved": "https://registry.npmjs.org/safe-buffer/-/safe-buffer-5.1.2.tgz",
-          "integrity": "sha512-Gd2UZBJDkXlY7GbJxfsE8/nvKkUEU1G38c1siN6QP6a9PT9MmHB8GnpscSmMJSoF8LOIrt8ud/wPtojys4G6+g==",
-          "dev": true,
-          "optional": true
-        },
-        "supports-color": {
-          "version": "2.0.0",
-          "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-2.0.0.tgz",
-          "integrity": "sha1-U10EXOa2Nj+kARcIRimZXp3zJMc=",
-          "dev": true,
-          "optional": true
-        },
-        "tough-cookie": {
-          "version": "2.4.3",
-          "resolved": "https://registry.npmjs.org/tough-cookie/-/tough-cookie-2.4.3.tgz",
-          "integrity": "sha512-Q5srk/4vDM54WJsJio3XNn6K2sCG+CQ8G5Wz6bZhRZoAe/+TxjWB/GlFAnYEbkYVlON9FMk/fE3h2RLpPXo4lQ==",
-          "dev": true,
-          "optional": true,
-          "requires": {
-            "psl": "^1.1.24",
-            "punycode": "^1.4.1"
-          }
-        },
-        "uuid": {
-          "version": "3.3.2",
-          "resolved": "https://registry.npmjs.org/uuid/-/uuid-3.3.2.tgz",
-          "integrity": "sha512-yXJmeNaw3DnnKAOKJE51sL/ZaYfWJRl1pK9dr19YFCu0ObS231AB1/LbqTKRAQ5kw8A90rA6fr4riOUpTZvQZA==",
-          "dev": true,
-          "optional": true
-        }
-      }
-    },
-    "nopt": {
-      "version": "3.0.6",
-      "resolved": "https://registry.npmjs.org/nopt/-/nopt-3.0.6.tgz",
-      "integrity": "sha1-xkZdvwirzU2zWTF/eaxopkayj/k=",
-      "dev": true,
-      "optional": true,
-      "requires": {
-        "abbrev": "1"
-      }
-    },
-    "nopt-usage": {
-      "version": "0.1.0",
-      "resolved": "https://registry.npmjs.org/nopt-usage/-/nopt-usage-0.1.0.tgz",
-      "integrity": "sha1-sYuMGD4YEEfKnmO3zefPxwLMpXk="
-    },
-    "normalize-package-data": {
-      "version": "2.4.0",
-      "resolved": "https://registry.npmjs.org/normalize-package-data/-/normalize-package-data-2.4.0.tgz",
-      "integrity": "sha512-9jjUFbTPfEy3R/ad/2oNbKtW9Hgovl5O1FvFWKkKblNXoN/Oou6+9+KKohPK13Yc3/TyunyWhJp6gvRNR/PPAw==",
-      "dev": true,
-      "requires": {
-        "hosted-git-info": "^2.1.4",
-        "is-builtin-module": "^1.0.0",
-        "semver": "2 || 3 || 4 || 5",
-        "validate-npm-package-license": "^3.0.1"
-      }
-    },
-    "normalize-path": {
-      "version": "2.1.1",
-      "resolved": "https://registry.npmjs.org/normalize-path/-/normalize-path-2.1.1.tgz",
-      "integrity": "sha1-GrKLVW4Zg2Oowab35vogE3/mrtk=",
-      "dev": true,
-      "requires": {
-        "remove-trailing-separator": "^1.0.1"
-      }
-    },
-    "normalize-range": {
-      "version": "0.1.2",
-      "resolved": "https://registry.npmjs.org/normalize-range/-/normalize-range-0.1.2.tgz",
-      "integrity": "sha1-LRDAa9/TEuqXd2laTShDlFa3WUI=",
-      "dev": true
-    },
-    "npm": {
-      "version": "6.4.1",
-      "resolved": "https://registry.npmjs.org/npm/-/npm-6.4.1.tgz",
-      "integrity": "sha512-mXJL1NTVU136PtuopXCUQaNWuHlXCTp4McwlSW8S9/Aj8OEPAlSBgo8og7kJ01MjCDrkmqFQTvN5tTEhBMhXQg==",
-      "requires": {
-        "JSONStream": "^1.3.4",
-        "abbrev": "~1.1.1",
-        "ansicolors": "~0.3.2",
-        "ansistyles": "~0.1.3",
-        "aproba": "~1.2.0",
-        "archy": "~1.0.0",
-        "bin-links": "^1.1.2",
-        "bluebird": "~3.5.1",
-        "byte-size": "^4.0.3",
-        "cacache": "^11.2.0",
-        "call-limit": "~1.1.0",
-        "chownr": "~1.0.1",
-        "ci-info": "^1.4.0",
-        "cli-columns": "^3.1.2",
-        "cli-table3": "^0.5.0",
-        "cmd-shim": "~2.0.2",
-        "columnify": "~1.5.4",
-        "config-chain": "~1.1.11",
-        "debuglog": "*",
-        "detect-indent": "~5.0.0",
-        "detect-newline": "^2.1.0",
-        "dezalgo": "~1.0.3",
-        "editor": "~1.0.0",
-        "figgy-pudding": "^3.4.1",
-        "find-npm-prefix": "^1.0.2",
-        "fs-vacuum": "~1.2.10",
-        "fs-write-stream-atomic": "~1.0.10",
-        "gentle-fs": "^2.0.1",
-        "glob": "~7.1.2",
-        "graceful-fs": "~4.1.11",
-        "has-unicode": "~2.0.1",
-        "hosted-git-info": "^2.7.1",
-        "iferr": "^1.0.2",
-        "imurmurhash": "*",
-        "inflight": "~1.0.6",
-        "inherits": "~2.0.3",
-        "ini": "^1.3.5",
-        "init-package-json": "^1.10.3",
-        "is-cidr": "^2.0.6",
-        "json-parse-better-errors": "^1.0.2",
-        "lazy-property": "~1.0.0",
-        "libcipm": "^2.0.2",
-        "libnpmhook": "^4.0.1",
-        "libnpx": "^10.2.0",
-        "lock-verify": "^2.0.2",
-        "lockfile": "^1.0.4",
-        "lodash._baseindexof": "*",
-        "lodash._baseuniq": "~4.6.0",
-        "lodash._bindcallback": "*",
-        "lodash._cacheindexof": "*",
-        "lodash._createcache": "*",
-        "lodash._getnative": "*",
-        "lodash.clonedeep": "~4.5.0",
-        "lodash.restparam": "*",
-        "lodash.union": "~4.6.0",
-        "lodash.uniq": "~4.5.0",
-        "lodash.without": "~4.4.0",
-        "lru-cache": "^4.1.3",
-        "meant": "~1.0.1",
-        "mississippi": "^3.0.0",
-        "mkdirp": "~0.5.1",
-        "move-concurrently": "^1.0.1",
-        "node-gyp": "^3.8.0",
-        "nopt": "~4.0.1",
-        "normalize-package-data": "~2.4.0",
-        "npm-audit-report": "^1.3.1",
-        "npm-cache-filename": "~1.0.2",
-        "npm-install-checks": "~3.0.0",
-        "npm-lifecycle": "^2.1.0",
-        "npm-package-arg": "^6.1.0",
-        "npm-packlist": "^1.1.11",
-        "npm-pick-manifest": "^2.1.0",
-        "npm-profile": "^3.0.2",
-        "npm-registry-client": "^8.6.0",
-        "npm-registry-fetch": "^1.1.0",
-        "npm-user-validate": "~1.0.0",
-        "npmlog": "~4.1.2",
-        "once": "~1.4.0",
-        "opener": "^1.5.0",
-        "osenv": "^0.1.5",
-        "pacote": "^8.1.6",
-        "path-is-inside": "~1.0.2",
-        "promise-inflight": "~1.0.1",
-        "qrcode-terminal": "^0.12.0",
-        "query-string": "^6.1.0",
-        "qw": "~1.0.1",
-        "read": "~1.0.7",
-        "read-cmd-shim": "~1.0.1",
-        "read-installed": "~4.0.3",
-        "read-package-json": "^2.0.13",
-        "read-package-tree": "^5.2.1",
-        "readable-stream": "^2.3.6",
-        "readdir-scoped-modules": "*",
-        "request": "^2.88.0",
-        "retry": "^0.12.0",
-        "rimraf": "~2.6.2",
-        "safe-buffer": "^5.1.2",
-        "semver": "^5.5.0",
-        "sha": "~2.0.1",
-        "slide": "~1.1.6",
-        "sorted-object": "~2.0.1",
-        "sorted-union-stream": "~2.1.3",
-        "ssri": "^6.0.0",
-        "stringify-package": "^1.0.0",
-        "tar": "^4.4.6",
-        "text-table": "~0.2.0",
-        "tiny-relative-date": "^1.3.0",
-        "uid-number": "0.0.6",
-        "umask": "~1.1.0",
-        "unique-filename": "~1.1.0",
-        "unpipe": "~1.0.0",
-        "update-notifier": "^2.5.0",
-        "uuid": "^3.3.2",
-        "validate-npm-package-license": "^3.0.4",
-        "validate-npm-package-name": "~3.0.0",
-        "which": "^1.3.1",
-        "worker-farm": "^1.6.0",
-        "write-file-atomic": "^2.3.0"
-      },
-      "dependencies": {
-        "JSONStream": {
-          "version": "1.3.4",
-          "bundled": true,
-          "requires": {
-            "jsonparse": "^1.2.0",
-            "through": ">=2.2.7 <3"
-          }
-        },
-        "abbrev": {
-          "version": "1.1.1",
-          "bundled": true
-        },
-        "agent-base": {
-          "version": "4.2.0",
-          "bundled": true,
-          "requires": {
-            "es6-promisify": "^5.0.0"
-          }
-        },
-        "agentkeepalive": {
-          "version": "3.4.1",
-          "bundled": true,
-          "requires": {
-            "humanize-ms": "^1.2.1"
-          }
-        },
-        "ajv": {
-          "version": "5.5.2",
-          "bundled": true,
-          "requires": {
-            "co": "^4.6.0",
-            "fast-deep-equal": "^1.0.0",
-            "fast-json-stable-stringify": "^2.0.0",
-            "json-schema-traverse": "^0.3.0"
-          }
-        },
-        "ansi-align": {
-          "version": "2.0.0",
-          "bundled": true,
-          "requires": {
-            "string-width": "^2.0.0"
-          }
-        },
-        "ansi-regex": {
-          "version": "2.1.1",
-          "bundled": true
-        },
-        "ansi-styles": {
-          "version": "3.2.1",
-          "bundled": true,
-          "requires": {
-            "color-convert": "^1.9.0"
-          }
-        },
-        "ansicolors": {
-          "version": "0.3.2",
-          "bundled": true
-        },
-        "ansistyles": {
-          "version": "0.1.3",
-          "bundled": true
-        },
-        "aproba": {
-          "version": "1.2.0",
-          "bundled": true
-        },
-        "archy": {
-          "version": "1.0.0",
-          "bundled": true
-        },
-        "are-we-there-yet": {
-          "version": "1.1.4",
-          "bundled": true,
-          "requires": {
-            "delegates": "^1.0.0",
-            "readable-stream": "^2.0.6"
-          }
-        },
-        "asap": {
-          "version": "2.0.6",
-          "bundled": true
-        },
-        "asn1": {
-          "version": "0.2.4",
-          "bundled": true,
-          "requires": {
-            "safer-buffer": "~2.1.0"
-          }
-        },
-        "assert-plus": {
-          "version": "1.0.0",
-          "bundled": true
-        },
-        "asynckit": {
-          "version": "0.4.0",
-          "bundled": true
-        },
-        "aws-sign2": {
-          "version": "0.7.0",
-          "bundled": true
-        },
-        "aws4": {
-          "version": "1.8.0",
-          "bundled": true
-        },
-        "balanced-match": {
-          "version": "1.0.0",
-          "bundled": true
-        },
-        "bcrypt-pbkdf": {
-          "version": "1.0.2",
-          "bundled": true,
-          "optional": true,
-          "requires": {
-            "tweetnacl": "^0.14.3"
-          }
-        },
-        "bin-links": {
-          "version": "1.1.2",
-          "bundled": true,
-          "requires": {
-            "bluebird": "^3.5.0",
-            "cmd-shim": "^2.0.2",
-            "gentle-fs": "^2.0.0",
-            "graceful-fs": "^4.1.11",
-            "write-file-atomic": "^2.3.0"
-          }
-        },
-        "block-stream": {
-          "version": "0.0.9",
-          "bundled": true,
-          "requires": {
-            "inherits": "~2.0.0"
-          }
-        },
-        "bluebird": {
-          "version": "3.5.1",
-          "bundled": true
-        },
-        "boxen": {
-          "version": "1.3.0",
-          "bundled": true,
-          "requires": {
-            "ansi-align": "^2.0.0",
-            "camelcase": "^4.0.0",
-            "chalk": "^2.0.1",
-            "cli-boxes": "^1.0.0",
-            "string-width": "^2.0.0",
-            "term-size": "^1.2.0",
-            "widest-line": "^2.0.0"
-          }
-        },
-        "brace-expansion": {
-          "version": "1.1.11",
-          "bundled": true,
-          "requires": {
-            "balanced-match": "^1.0.0",
-            "concat-map": "0.0.1"
-          }
-        },
-        "buffer-from": {
-          "version": "1.0.0",
-          "bundled": true
-        },
-        "builtin-modules": {
-          "version": "1.1.1",
-          "bundled": true
-        },
-        "builtins": {
-          "version": "1.0.3",
-          "bundled": true
-        },
-        "byline": {
-          "version": "5.0.0",
-          "bundled": true
-        },
-        "byte-size": {
-          "version": "4.0.3",
-          "bundled": true
-        },
-        "cacache": {
-          "version": "11.2.0",
-          "bundled": true,
-          "requires": {
-            "bluebird": "^3.5.1",
-            "chownr": "^1.0.1",
-            "figgy-pudding": "^3.1.0",
-            "glob": "^7.1.2",
-            "graceful-fs": "^4.1.11",
-            "lru-cache": "^4.1.3",
-            "mississippi": "^3.0.0",
-            "mkdirp": "^0.5.1",
-            "move-concurrently": "^1.0.1",
-            "promise-inflight": "^1.0.1",
-            "rimraf": "^2.6.2",
-            "ssri": "^6.0.0",
-            "unique-filename": "^1.1.0",
-            "y18n": "^4.0.0"
-          }
-        },
-        "call-limit": {
-          "version": "1.1.0",
-          "bundled": true
-        },
-        "camelcase": {
-          "version": "4.1.0",
-          "bundled": true
-        },
-        "capture-stack-trace": {
-          "version": "1.0.0",
-          "bundled": true
-        },
-        "caseless": {
-          "version": "0.12.0",
-          "bundled": true
-        },
-        "chalk": {
-          "version": "2.4.1",
-          "bundled": true,
-          "requires": {
-            "ansi-styles": "^3.2.1",
-            "escape-string-regexp": "^1.0.5",
-            "supports-color": "^5.3.0"
-          }
-        },
-        "chownr": {
-          "version": "1.0.1",
-          "bundled": true
-        },
-        "ci-info": {
-          "version": "1.4.0",
-          "bundled": true
-        },
-        "cidr-regex": {
-          "version": "2.0.9",
-          "bundled": true,
-          "requires": {
-            "ip-regex": "^2.1.0"
-          }
-        },
-        "cli-boxes": {
-          "version": "1.0.0",
-          "bundled": true
-        },
-        "cli-columns": {
-          "version": "3.1.2",
-          "bundled": true,
-          "requires": {
-            "string-width": "^2.0.0",
-            "strip-ansi": "^3.0.1"
-          }
-        },
-        "cli-table3": {
-          "version": "0.5.0",
-          "bundled": true,
-          "requires": {
-            "colors": "^1.1.2",
-            "object-assign": "^4.1.0",
-            "string-width": "^2.1.1"
-          }
-        },
-        "cliui": {
-          "version": "4.1.0",
-          "bundled": true,
-          "requires": {
-            "string-width": "^2.1.1",
-            "strip-ansi": "^4.0.0",
-            "wrap-ansi": "^2.0.0"
-          },
-          "dependencies": {
-            "ansi-regex": {
-              "version": "3.0.0",
-              "bundled": true
-            },
-            "strip-ansi": {
-              "version": "4.0.0",
-              "bundled": true,
-              "requires": {
-                "ansi-regex": "^3.0.0"
-              }
-            }
-          }
-        },
-        "clone": {
-          "version": "1.0.4",
-          "bundled": true
-        },
-        "cmd-shim": {
-          "version": "2.0.2",
-          "bundled": true,
-          "requires": {
-            "graceful-fs": "^4.1.2",
-            "mkdirp": "~0.5.0"
-          }
-        },
-        "co": {
-          "version": "4.6.0",
-          "bundled": true
-        },
-        "code-point-at": {
-          "version": "1.1.0",
-          "bundled": true
-        },
-        "color-convert": {
-          "version": "1.9.1",
-          "bundled": true,
-          "requires": {
-            "color-name": "^1.1.1"
-          }
-        },
-        "color-name": {
-          "version": "1.1.3",
-          "bundled": true
-        },
-        "colors": {
-          "version": "1.1.2",
-          "bundled": true,
-          "optional": true
-        },
-        "columnify": {
-          "version": "1.5.4",
-          "bundled": true,
-          "requires": {
-            "strip-ansi": "^3.0.0",
-            "wcwidth": "^1.0.0"
-          }
-        },
-        "combined-stream": {
-          "version": "1.0.6",
-          "bundled": true,
-          "requires": {
-            "delayed-stream": "~1.0.0"
-          }
-        },
-        "concat-map": {
-          "version": "0.0.1",
-          "bundled": true
-        },
-        "concat-stream": {
-          "version": "1.6.2",
-          "bundled": true,
-          "requires": {
-            "buffer-from": "^1.0.0",
-            "inherits": "^2.0.3",
-            "readable-stream": "^2.2.2",
-            "typedarray": "^0.0.6"
-          }
-        },
-        "config-chain": {
-          "version": "1.1.11",
-          "bundled": true,
-          "requires": {
-            "ini": "^1.3.4",
-            "proto-list": "~1.2.1"
-          }
-        },
-        "configstore": {
-          "version": "3.1.2",
-          "bundled": true,
-          "requires": {
-            "dot-prop": "^4.1.0",
-            "graceful-fs": "^4.1.2",
-            "make-dir": "^1.0.0",
-            "unique-string": "^1.0.0",
-            "write-file-atomic": "^2.0.0",
-            "xdg-basedir": "^3.0.0"
-          }
-        },
-        "console-control-strings": {
-          "version": "1.1.0",
-          "bundled": true
-        },
-        "copy-concurrently": {
-          "version": "1.0.5",
-          "bundled": true,
-          "requires": {
-            "aproba": "^1.1.1",
-            "fs-write-stream-atomic": "^1.0.8",
-            "iferr": "^0.1.5",
-            "mkdirp": "^0.5.1",
-            "rimraf": "^2.5.4",
-            "run-queue": "^1.0.0"
-          },
-          "dependencies": {
-            "iferr": {
-              "version": "0.1.5",
-              "bundled": true
-            }
-          }
-        },
-        "core-util-is": {
-          "version": "1.0.2",
-          "bundled": true
-        },
-        "create-error-class": {
-          "version": "3.0.2",
-          "bundled": true,
-          "requires": {
-            "capture-stack-trace": "^1.0.0"
-          }
-        },
-        "cross-spawn": {
-          "version": "5.1.0",
-          "bundled": true,
-          "requires": {
-            "lru-cache": "^4.0.1",
-            "shebang-command": "^1.2.0",
-            "which": "^1.2.9"
-          }
-        },
-        "crypto-random-string": {
-          "version": "1.0.0",
-          "bundled": true
-        },
-        "cyclist": {
-          "version": "0.2.2",
-          "bundled": true
-        },
-        "dashdash": {
-          "version": "1.14.1",
-          "bundled": true,
-          "requires": {
-            "assert-plus": "^1.0.0"
-          }
-        },
-        "debug": {
-          "version": "3.1.0",
-          "bundled": true,
-          "requires": {
-            "ms": "2.0.0"
-          },
-          "dependencies": {
-            "ms": {
-              "version": "2.0.0",
-              "bundled": true
-            }
-          }
-        },
-        "debuglog": {
-          "version": "1.0.1",
-          "bundled": true
-        },
-        "decamelize": {
-          "version": "1.2.0",
-          "bundled": true
-        },
-        "decode-uri-component": {
-          "version": "0.2.0",
-          "bundled": true
-        },
-        "deep-extend": {
-          "version": "0.5.1",
-          "bundled": true
-        },
-        "defaults": {
-          "version": "1.0.3",
-          "bundled": true,
-          "requires": {
-            "clone": "^1.0.2"
-          }
-        },
-        "delayed-stream": {
-          "version": "1.0.0",
-          "bundled": true
-        },
-        "delegates": {
-          "version": "1.0.0",
-          "bundled": true
-        },
-        "detect-indent": {
-          "version": "5.0.0",
-          "bundled": true
-        },
-        "detect-newline": {
-          "version": "2.1.0",
-          "bundled": true
-        },
-        "dezalgo": {
-          "version": "1.0.3",
-          "bundled": true,
-          "requires": {
-            "asap": "^2.0.0",
-            "wrappy": "1"
-          }
-        },
-        "dot-prop": {
-          "version": "4.2.0",
-          "bundled": true,
-          "requires": {
-            "is-obj": "^1.0.0"
-          }
-        },
-        "dotenv": {
-          "version": "5.0.1",
-          "bundled": true
-        },
-        "duplexer3": {
-          "version": "0.1.4",
-          "bundled": true
-        },
-        "duplexify": {
-          "version": "3.6.0",
-          "bundled": true,
-          "requires": {
-            "end-of-stream": "^1.0.0",
-            "inherits": "^2.0.1",
-            "readable-stream": "^2.0.0",
-            "stream-shift": "^1.0.0"
-          }
-        },
-        "ecc-jsbn": {
-          "version": "0.1.2",
-          "bundled": true,
-          "optional": true,
-          "requires": {
-            "jsbn": "~0.1.0",
-            "safer-buffer": "^2.1.0"
-          }
-        },
-        "editor": {
-          "version": "1.0.0",
-          "bundled": true
-        },
-        "encoding": {
-          "version": "0.1.12",
-          "bundled": true,
-          "requires": {
-            "iconv-lite": "~0.4.13"
-          }
-        },
-        "end-of-stream": {
-          "version": "1.4.1",
-          "bundled": true,
-          "requires": {
-            "once": "^1.4.0"
-          }
-        },
-        "err-code": {
-          "version": "1.1.2",
-          "bundled": true
-        },
-        "errno": {
-          "version": "0.1.7",
-          "bundled": true,
-          "requires": {
-            "prr": "~1.0.1"
-          }
-        },
-        "es6-promise": {
-          "version": "4.2.4",
-          "bundled": true
-        },
-        "es6-promisify": {
-          "version": "5.0.0",
-          "bundled": true,
-          "requires": {
-            "es6-promise": "^4.0.3"
-          }
-        },
-        "escape-string-regexp": {
-          "version": "1.0.5",
-          "bundled": true
-        },
-        "execa": {
-          "version": "0.7.0",
-          "bundled": true,
-          "requires": {
-            "cross-spawn": "^5.0.1",
-            "get-stream": "^3.0.0",
-            "is-stream": "^1.1.0",
-            "npm-run-path": "^2.0.0",
-            "p-finally": "^1.0.0",
-            "signal-exit": "^3.0.0",
-            "strip-eof": "^1.0.0"
-          }
-        },
-        "extend": {
-          "version": "3.0.2",
-          "bundled": true
-        },
-        "extsprintf": {
-          "version": "1.3.0",
-          "bundled": true
-        },
-        "fast-deep-equal": {
-          "version": "1.1.0",
-          "bundled": true
-        },
-        "fast-json-stable-stringify": {
-          "version": "2.0.0",
-          "bundled": true
-        },
-        "figgy-pudding": {
-          "version": "3.4.1",
-          "bundled": true
-        },
-        "find-npm-prefix": {
-          "version": "1.0.2",
-          "bundled": true
-        },
-        "find-up": {
-          "version": "2.1.0",
-          "bundled": true,
-          "requires": {
-            "locate-path": "^2.0.0"
-          }
-        },
-        "flush-write-stream": {
-          "version": "1.0.3",
-          "bundled": true,
-          "requires": {
-            "inherits": "^2.0.1",
-            "readable-stream": "^2.0.4"
-          }
-        },
-        "forever-agent": {
-          "version": "0.6.1",
-          "bundled": true
-        },
-        "form-data": {
-          "version": "2.3.2",
-          "bundled": true,
-          "requires": {
-            "asynckit": "^0.4.0",
-            "combined-stream": "1.0.6",
-            "mime-types": "^2.1.12"
-          }
-        },
-        "from2": {
-          "version": "2.3.0",
-          "bundled": true,
-          "requires": {
-            "inherits": "^2.0.1",
-            "readable-stream": "^2.0.0"
-          }
-        },
-        "fs-minipass": {
-          "version": "1.2.5",
-          "bundled": true,
-          "requires": {
-            "minipass": "^2.2.1"
-          }
-        },
-        "fs-vacuum": {
-          "version": "1.2.10",
-          "bundled": true,
-          "requires": {
-            "graceful-fs": "^4.1.2",
-            "path-is-inside": "^1.0.1",
-            "rimraf": "^2.5.2"
-          }
-        },
-        "fs-write-stream-atomic": {
-          "version": "1.0.10",
-          "bundled": true,
-          "requires": {
-            "graceful-fs": "^4.1.2",
-            "iferr": "^0.1.5",
-            "imurmurhash": "^0.1.4",
-            "readable-stream": "1 || 2"
-          },
-          "dependencies": {
-            "iferr": {
-              "version": "0.1.5",
-              "bundled": true
-            }
-          }
-        },
-        "fs.realpath": {
-          "version": "1.0.0",
-          "bundled": true
-        },
-        "fstream": {
-          "version": "1.0.11",
-          "bundled": true,
-          "requires": {
-            "graceful-fs": "^4.1.2",
-            "inherits": "~2.0.0",
-            "mkdirp": ">=0.5 0",
-            "rimraf": "2"
-          }
-        },
-        "gauge": {
-          "version": "2.7.4",
-          "bundled": true,
-          "requires": {
-            "aproba": "^1.0.3",
-            "console-control-strings": "^1.0.0",
-            "has-unicode": "^2.0.0",
-            "object-assign": "^4.1.0",
-            "signal-exit": "^3.0.0",
-            "string-width": "^1.0.1",
-            "strip-ansi": "^3.0.1",
-            "wide-align": "^1.1.0"
-          },
-          "dependencies": {
-            "string-width": {
-              "version": "1.0.2",
-              "bundled": true,
-              "requires": {
-                "code-point-at": "^1.0.0",
-                "is-fullwidth-code-point": "^1.0.0",
-                "strip-ansi": "^3.0.0"
-              }
-            }
-          }
-        },
-        "genfun": {
-          "version": "4.0.1",
-          "bundled": true
-        },
-        "gentle-fs": {
-          "version": "2.0.1",
-          "bundled": true,
-          "requires": {
-            "aproba": "^1.1.2",
-            "fs-vacuum": "^1.2.10",
-            "graceful-fs": "^4.1.11",
-            "iferr": "^0.1.5",
-            "mkdirp": "^0.5.1",
-            "path-is-inside": "^1.0.2",
-            "read-cmd-shim": "^1.0.1",
-            "slide": "^1.1.6"
-          },
-          "dependencies": {
-            "iferr": {
-              "version": "0.1.5",
-              "bundled": true
-            }
-          }
-        },
-        "get-caller-file": {
-          "version": "1.0.2",
-          "bundled": true
-        },
-        "get-stream": {
-          "version": "3.0.0",
-          "bundled": true
-        },
-        "getpass": {
-          "version": "0.1.7",
-          "bundled": true,
-          "requires": {
-            "assert-plus": "^1.0.0"
-          }
-        },
-        "glob": {
-          "version": "7.1.2",
-          "bundled": true,
-          "requires": {
-            "fs.realpath": "^1.0.0",
-            "inflight": "^1.0.4",
-            "inherits": "2",
-            "minimatch": "^3.0.4",
-            "once": "^1.3.0",
-            "path-is-absolute": "^1.0.0"
-          }
-        },
-        "global-dirs": {
-          "version": "0.1.1",
-          "bundled": true,
-          "requires": {
-            "ini": "^1.3.4"
-          }
-        },
-        "got": {
-          "version": "6.7.1",
-          "bundled": true,
-          "requires": {
-            "create-error-class": "^3.0.0",
-            "duplexer3": "^0.1.4",
-            "get-stream": "^3.0.0",
-            "is-redirect": "^1.0.0",
-            "is-retry-allowed": "^1.0.0",
-            "is-stream": "^1.0.0",
-            "lowercase-keys": "^1.0.0",
-            "safe-buffer": "^5.0.1",
-            "timed-out": "^4.0.0",
-            "unzip-response": "^2.0.1",
-            "url-parse-lax": "^1.0.0"
-          }
-        },
-        "graceful-fs": {
-          "version": "4.1.11",
-          "bundled": true
-        },
-        "har-schema": {
-          "version": "2.0.0",
-          "bundled": true
-        },
-        "har-validator": {
-          "version": "5.1.0",
-          "bundled": true,
-          "requires": {
-            "ajv": "^5.3.0",
-            "har-schema": "^2.0.0"
-          }
-        },
-        "has-flag": {
-          "version": "3.0.0",
-          "bundled": true
-        },
-        "has-unicode": {
-          "version": "2.0.1",
-          "bundled": true
-        },
-        "hosted-git-info": {
-          "version": "2.7.1",
-          "bundled": true
-        },
-        "http-cache-semantics": {
-          "version": "3.8.1",
-          "bundled": true
-        },
-        "http-proxy-agent": {
-          "version": "2.1.0",
-          "bundled": true,
-          "requires": {
-            "agent-base": "4",
-            "debug": "3.1.0"
-          }
-        },
-        "http-signature": {
-          "version": "1.2.0",
-          "bundled": true,
-          "requires": {
-            "assert-plus": "^1.0.0",
-            "jsprim": "^1.2.2",
-            "sshpk": "^1.7.0"
-          }
-        },
-        "https-proxy-agent": {
-          "version": "2.2.1",
-          "bundled": true,
-          "requires": {
-            "agent-base": "^4.1.0",
-            "debug": "^3.1.0"
-          }
-        },
-        "humanize-ms": {
-          "version": "1.2.1",
-          "bundled": true,
-          "requires": {
-            "ms": "^2.0.0"
-          }
-        },
-        "iconv-lite": {
-          "version": "0.4.23",
-          "bundled": true,
-          "requires": {
-            "safer-buffer": ">= 2.1.2 < 3"
-          }
-        },
-        "iferr": {
-          "version": "1.0.2",
-          "bundled": true
-        },
-        "ignore-walk": {
-          "version": "3.0.1",
-          "bundled": true,
-          "requires": {
-            "minimatch": "^3.0.4"
-          }
-        },
-        "import-lazy": {
-          "version": "2.1.0",
-          "bundled": true
-        },
-        "imurmurhash": {
-          "version": "0.1.4",
-          "bundled": true
-        },
-        "inflight": {
-          "version": "1.0.6",
-          "bundled": true,
-          "requires": {
-            "once": "^1.3.0",
-            "wrappy": "1"
-          }
-        },
-        "inherits": {
-          "version": "2.0.3",
-          "bundled": true
-        },
-        "ini": {
-          "version": "1.3.5",
-          "bundled": true
-        },
-        "init-package-json": {
-          "version": "1.10.3",
-          "bundled": true,
-          "requires": {
-            "glob": "^7.1.1",
-            "npm-package-arg": "^4.0.0 || ^5.0.0 || ^6.0.0",
-            "promzard": "^0.3.0",
-            "read": "~1.0.1",
-            "read-package-json": "1 || 2",
-            "semver": "2.x || 3.x || 4 || 5",
-            "validate-npm-package-license": "^3.0.1",
-            "validate-npm-package-name": "^3.0.0"
-          }
-        },
-        "invert-kv": {
-          "version": "1.0.0",
-          "bundled": true
-        },
-        "ip": {
-          "version": "1.1.5",
-          "bundled": true
-        },
-        "ip-regex": {
-          "version": "2.1.0",
-          "bundled": true
-        },
-        "is-builtin-module": {
-          "version": "1.0.0",
-          "bundled": true,
-          "requires": {
-            "builtin-modules": "^1.0.0"
-          }
-        },
-        "is-ci": {
-          "version": "1.1.0",
-          "bundled": true,
-          "requires": {
-            "ci-info": "^1.0.0"
-          }
-        },
-        "is-cidr": {
-          "version": "2.0.6",
-          "bundled": true,
-          "requires": {
-            "cidr-regex": "^2.0.8"
-          }
-        },
-        "is-fullwidth-code-point": {
-          "version": "1.0.0",
-          "bundled": true,
-          "requires": {
-            "number-is-nan": "^1.0.0"
-          }
-        },
-        "is-installed-globally": {
-          "version": "0.1.0",
-          "bundled": true,
-          "requires": {
-            "global-dirs": "^0.1.0",
-            "is-path-inside": "^1.0.0"
-          }
-        },
-        "is-npm": {
-          "version": "1.0.0",
-          "bundled": true
-        },
-        "is-obj": {
-          "version": "1.0.1",
-          "bundled": true
-        },
-        "is-path-inside": {
-          "version": "1.0.1",
-          "bundled": true,
-          "requires": {
-            "path-is-inside": "^1.0.1"
-          }
-        },
-        "is-redirect": {
-          "version": "1.0.0",
-          "bundled": true
-        },
-        "is-retry-allowed": {
-          "version": "1.1.0",
-          "bundled": true
-        },
-        "is-stream": {
-          "version": "1.1.0",
-          "bundled": true
-        },
-        "is-typedarray": {
-          "version": "1.0.0",
-          "bundled": true
-        },
-        "isarray": {
-          "version": "1.0.0",
-          "bundled": true
-        },
-        "isexe": {
-          "version": "2.0.0",
-          "bundled": true
-        },
-        "isstream": {
-          "version": "0.1.2",
-          "bundled": true
-        },
-        "jsbn": {
-          "version": "0.1.1",
-          "bundled": true,
-          "optional": true
-        },
-        "json-parse-better-errors": {
-          "version": "1.0.2",
-          "bundled": true
-        },
-        "json-schema": {
-          "version": "0.2.3",
-          "bundled": true
-        },
-        "json-schema-traverse": {
-          "version": "0.3.1",
-          "bundled": true
-        },
-        "json-stringify-safe": {
-          "version": "5.0.1",
-          "bundled": true
-        },
-        "jsonparse": {
-          "version": "1.3.1",
-          "bundled": true
-        },
-        "jsprim": {
-          "version": "1.4.1",
-          "bundled": true,
-          "requires": {
-            "assert-plus": "1.0.0",
-            "extsprintf": "1.3.0",
-            "json-schema": "0.2.3",
-            "verror": "1.10.0"
-          }
-        },
-        "latest-version": {
-          "version": "3.1.0",
-          "bundled": true,
-          "requires": {
-            "package-json": "^4.0.0"
-          }
-        },
-        "lazy-property": {
-          "version": "1.0.0",
-          "bundled": true
-        },
-        "lcid": {
-          "version": "1.0.0",
-          "bundled": true,
-          "requires": {
-            "invert-kv": "^1.0.0"
-          }
-        },
-        "libcipm": {
-          "version": "2.0.2",
-          "bundled": true,
-          "requires": {
-            "bin-links": "^1.1.2",
-            "bluebird": "^3.5.1",
-            "find-npm-prefix": "^1.0.2",
-            "graceful-fs": "^4.1.11",
-            "lock-verify": "^2.0.2",
-            "mkdirp": "^0.5.1",
-            "npm-lifecycle": "^2.0.3",
-            "npm-logical-tree": "^1.2.1",
-            "npm-package-arg": "^6.1.0",
-            "pacote": "^8.1.6",
-            "protoduck": "^5.0.0",
-            "read-package-json": "^2.0.13",
-            "rimraf": "^2.6.2",
-            "worker-farm": "^1.6.0"
-          }
-        },
-        "libnpmhook": {
-          "version": "4.0.1",
-          "bundled": true,
-          "requires": {
-            "figgy-pudding": "^3.1.0",
-            "npm-registry-fetch": "^3.0.0"
-          },
-          "dependencies": {
-            "npm-registry-fetch": {
-              "version": "3.1.1",
-              "bundled": true,
-              "requires": {
-                "bluebird": "^3.5.1",
-                "figgy-pudding": "^3.1.0",
-                "lru-cache": "^4.1.2",
-                "make-fetch-happen": "^4.0.0",
-                "npm-package-arg": "^6.0.0"
-              }
-            }
-          }
-        },
-        "libnpx": {
-          "version": "10.2.0",
-          "bundled": true,
-          "requires": {
-            "dotenv": "^5.0.1",
-            "npm-package-arg": "^6.0.0",
-            "rimraf": "^2.6.2",
-            "safe-buffer": "^5.1.0",
-            "update-notifier": "^2.3.0",
-            "which": "^1.3.0",
-            "y18n": "^4.0.0",
-            "yargs": "^11.0.0"
-          }
-        },
-        "locate-path": {
-          "version": "2.0.0",
-          "bundled": true,
-          "requires": {
-            "p-locate": "^2.0.0",
-            "path-exists": "^3.0.0"
-          }
-        },
-        "lock-verify": {
-          "version": "2.0.2",
-          "bundled": true,
-          "requires": {
-            "npm-package-arg": "^5.1.2 || 6",
-            "semver": "^5.4.1"
-          }
-        },
-        "lockfile": {
-          "version": "1.0.4",
-          "bundled": true,
-          "requires": {
-            "signal-exit": "^3.0.2"
-          }
-        },
-        "lodash._baseindexof": {
-          "version": "3.1.0",
-          "bundled": true
-        },
-        "lodash._baseuniq": {
-          "version": "4.6.0",
-          "bundled": true,
-          "requires": {
-            "lodash._createset": "~4.0.0",
-            "lodash._root": "~3.0.0"
-          }
-        },
-        "lodash._bindcallback": {
-          "version": "3.0.1",
-          "bundled": true
-        },
-        "lodash._cacheindexof": {
-          "version": "3.0.2",
-          "bundled": true
-        },
-        "lodash._createcache": {
-          "version": "3.1.2",
-          "bundled": true,
-          "requires": {
-            "lodash._getnative": "^3.0.0"
-          }
-        },
-        "lodash._createset": {
-          "version": "4.0.3",
-          "bundled": true
-        },
-        "lodash._getnative": {
-          "version": "3.9.1",
-          "bundled": true
-        },
-        "lodash._root": {
-          "version": "3.0.1",
-          "bundled": true
-        },
-        "lodash.clonedeep": {
-          "version": "4.5.0",
-          "bundled": true
-        },
-        "lodash.restparam": {
-          "version": "3.6.1",
-          "bundled": true
-        },
-        "lodash.union": {
-          "version": "4.6.0",
-          "bundled": true
-        },
-        "lodash.uniq": {
-          "version": "4.5.0",
-          "bundled": true
-        },
-        "lodash.without": {
-          "version": "4.4.0",
-          "bundled": true
-        },
-        "lowercase-keys": {
-          "version": "1.0.1",
-          "bundled": true
-        },
-        "lru-cache": {
-          "version": "4.1.3",
-          "bundled": true,
-          "requires": {
-            "pseudomap": "^1.0.2",
-            "yallist": "^2.1.2"
-          }
-        },
-        "make-dir": {
-          "version": "1.3.0",
-          "bundled": true,
-          "requires": {
-            "pify": "^3.0.0"
-          }
-        },
-        "make-fetch-happen": {
-          "version": "4.0.1",
-          "bundled": true,
-          "requires": {
-            "agentkeepalive": "^3.4.1",
-            "cacache": "^11.0.1",
-            "http-cache-semantics": "^3.8.1",
-            "http-proxy-agent": "^2.1.0",
-            "https-proxy-agent": "^2.2.1",
-            "lru-cache": "^4.1.2",
-            "mississippi": "^3.0.0",
-            "node-fetch-npm": "^2.0.2",
-            "promise-retry": "^1.1.1",
-            "socks-proxy-agent": "^4.0.0",
-            "ssri": "^6.0.0"
-          }
-        },
-        "meant": {
-          "version": "1.0.1",
-          "bundled": true
-        },
-        "mem": {
-          "version": "1.1.0",
-          "bundled": true,
-          "requires": {
-            "mimic-fn": "^1.0.0"
-          }
-        },
-        "mime-db": {
-          "version": "1.35.0",
-          "bundled": true
-        },
-        "mime-types": {
-          "version": "2.1.19",
-          "bundled": true,
-          "requires": {
-            "mime-db": "~1.35.0"
-          }
-        },
-        "mimic-fn": {
-          "version": "1.2.0",
-          "bundled": true
-        },
-        "minimatch": {
-          "version": "3.0.4",
-          "bundled": true,
-          "requires": {
-            "brace-expansion": "^1.1.7"
-          }
-        },
-        "minimist": {
-          "version": "0.0.8",
-          "bundled": true
-        },
-        "minipass": {
-          "version": "2.3.3",
-          "bundled": true,
-          "requires": {
-            "safe-buffer": "^5.1.2",
-            "yallist": "^3.0.0"
-          },
-          "dependencies": {
-            "yallist": {
-              "version": "3.0.2",
-              "bundled": true
-            }
-          }
-        },
-        "minizlib": {
-          "version": "1.1.0",
-          "bundled": true,
-          "requires": {
-            "minipass": "^2.2.1"
-          }
-        },
-        "mississippi": {
-          "version": "3.0.0",
-          "bundled": true,
-          "requires": {
-            "concat-stream": "^1.5.0",
-            "duplexify": "^3.4.2",
-            "end-of-stream": "^1.1.0",
-            "flush-write-stream": "^1.0.0",
-            "from2": "^2.1.0",
-            "parallel-transform": "^1.1.0",
-            "pump": "^3.0.0",
-            "pumpify": "^1.3.3",
-            "stream-each": "^1.1.0",
-            "through2": "^2.0.0"
-          }
-        },
-        "mkdirp": {
-          "version": "0.5.1",
-          "bundled": true,
-          "requires": {
-            "minimist": "0.0.8"
-          }
-        },
-        "move-concurrently": {
-          "version": "1.0.1",
-          "bundled": true,
-          "requires": {
-            "aproba": "^1.1.1",
-            "copy-concurrently": "^1.0.0",
-            "fs-write-stream-atomic": "^1.0.8",
-            "mkdirp": "^0.5.1",
-            "rimraf": "^2.5.4",
-            "run-queue": "^1.0.3"
-          }
-        },
-        "ms": {
-          "version": "2.1.1",
-          "bundled": true
-        },
-        "mute-stream": {
-          "version": "0.0.7",
-          "bundled": true
-        },
-        "node-fetch-npm": {
-          "version": "2.0.2",
-          "bundled": true,
-          "requires": {
-            "encoding": "^0.1.11",
-            "json-parse-better-errors": "^1.0.0",
-            "safe-buffer": "^5.1.1"
-          }
-        },
-        "node-gyp": {
-          "version": "3.8.0",
-          "bundled": true,
-          "requires": {
-            "fstream": "^1.0.0",
-            "glob": "^7.0.3",
-            "graceful-fs": "^4.1.2",
-            "mkdirp": "^0.5.0",
-            "nopt": "2 || 3",
-            "npmlog": "0 || 1 || 2 || 3 || 4",
-            "osenv": "0",
-            "request": "^2.87.0",
-            "rimraf": "2",
-            "semver": "~5.3.0",
-            "tar": "^2.0.0",
-            "which": "1"
-          },
-          "dependencies": {
-            "nopt": {
-              "version": "3.0.6",
-              "bundled": true,
-              "requires": {
-                "abbrev": "1"
-              }
-            },
-            "semver": {
-              "version": "5.3.0",
-              "bundled": true
-            },
-            "tar": {
-              "version": "2.2.1",
-              "bundled": true,
-              "requires": {
-                "block-stream": "*",
-                "fstream": "^1.0.2",
-                "inherits": "2"
-              }
-            }
-          }
-        },
-        "nopt": {
-          "version": "4.0.1",
-          "bundled": true,
-          "requires": {
-            "abbrev": "1",
-            "osenv": "^0.1.4"
-          }
-        },
-        "normalize-package-data": {
-          "version": "2.4.0",
-          "bundled": true,
-          "requires": {
-            "hosted-git-info": "^2.1.4",
-            "is-builtin-module": "^1.0.0",
-            "semver": "2 || 3 || 4 || 5",
-            "validate-npm-package-license": "^3.0.1"
-          }
-        },
-        "npm-audit-report": {
-          "version": "1.3.1",
-          "bundled": true,
-          "requires": {
-            "cli-table3": "^0.5.0",
-            "console-control-strings": "^1.1.0"
-          }
-        },
-        "npm-bundled": {
-          "version": "1.0.5",
-          "bundled": true
-        },
-        "npm-cache-filename": {
-          "version": "1.0.2",
-          "bundled": true
-        },
-        "npm-install-checks": {
-          "version": "3.0.0",
-          "bundled": true,
-          "requires": {
-            "semver": "^2.3.0 || 3.x || 4 || 5"
-          }
-        },
-        "npm-lifecycle": {
-          "version": "2.1.0",
-          "bundled": true,
-          "requires": {
-            "byline": "^5.0.0",
-            "graceful-fs": "^4.1.11",
-            "node-gyp": "^3.8.0",
-            "resolve-from": "^4.0.0",
-            "slide": "^1.1.6",
-            "uid-number": "0.0.6",
-            "umask": "^1.1.0",
-            "which": "^1.3.1"
-          }
-        },
-        "npm-logical-tree": {
-          "version": "1.2.1",
-          "bundled": true
-        },
-        "npm-package-arg": {
-          "version": "6.1.0",
-          "bundled": true,
-          "requires": {
-            "hosted-git-info": "^2.6.0",
-            "osenv": "^0.1.5",
-            "semver": "^5.5.0",
-            "validate-npm-package-name": "^3.0.0"
-          }
-        },
-        "npm-packlist": {
-          "version": "1.1.11",
-          "bundled": true,
-          "requires": {
-            "ignore-walk": "^3.0.1",
-            "npm-bundled": "^1.0.1"
-          }
-        },
-        "npm-pick-manifest": {
-          "version": "2.1.0",
-          "bundled": true,
-          "requires": {
-            "npm-package-arg": "^6.0.0",
-            "semver": "^5.4.1"
-          }
-        },
-        "npm-profile": {
-          "version": "3.0.2",
-          "bundled": true,
-          "requires": {
-            "aproba": "^1.1.2 || 2",
-            "make-fetch-happen": "^2.5.0 || 3 || 4"
-          }
-        },
-        "npm-registry-client": {
-          "version": "8.6.0",
-          "bundled": true,
-          "requires": {
-            "concat-stream": "^1.5.2",
-            "graceful-fs": "^4.1.6",
-            "normalize-package-data": "~1.0.1 || ^2.0.0",
-            "npm-package-arg": "^3.0.0 || ^4.0.0 || ^5.0.0 || ^6.0.0",
-            "npmlog": "2 || ^3.1.0 || ^4.0.0",
-            "once": "^1.3.3",
-            "request": "^2.74.0",
-            "retry": "^0.10.0",
-            "safe-buffer": "^5.1.1",
-            "semver": "2 >=2.2.1 || 3.x || 4 || 5",
-            "slide": "^1.1.3",
-            "ssri": "^5.2.4"
-          },
-          "dependencies": {
-            "retry": {
-              "version": "0.10.1",
-              "bundled": true
-            },
-            "ssri": {
-              "version": "5.3.0",
-              "bundled": true,
-              "requires": {
-                "safe-buffer": "^5.1.1"
-              }
-            }
-          }
-        },
-        "npm-registry-fetch": {
-          "version": "1.1.0",
-          "bundled": true,
-          "requires": {
-            "bluebird": "^3.5.1",
-            "figgy-pudding": "^2.0.1",
-            "lru-cache": "^4.1.2",
-            "make-fetch-happen": "^3.0.0",
-            "npm-package-arg": "^6.0.0",
-            "safe-buffer": "^5.1.1"
-          },
-          "dependencies": {
-            "cacache": {
-              "version": "10.0.4",
-              "bundled": true,
-              "requires": {
-                "bluebird": "^3.5.1",
-                "chownr": "^1.0.1",
-                "glob": "^7.1.2",
-                "graceful-fs": "^4.1.11",
-                "lru-cache": "^4.1.1",
-                "mississippi": "^2.0.0",
-                "mkdirp": "^0.5.1",
-                "move-concurrently": "^1.0.1",
-                "promise-inflight": "^1.0.1",
-                "rimraf": "^2.6.2",
-                "ssri": "^5.2.4",
-                "unique-filename": "^1.1.0",
-                "y18n": "^4.0.0"
-              },
-              "dependencies": {
-                "mississippi": {
-                  "version": "2.0.0",
-                  "bundled": true,
-                  "requires": {
-                    "concat-stream": "^1.5.0",
-                    "duplexify": "^3.4.2",
-                    "end-of-stream": "^1.1.0",
-                    "flush-write-stream": "^1.0.0",
-                    "from2": "^2.1.0",
-                    "parallel-transform": "^1.1.0",
-                    "pump": "^2.0.1",
-                    "pumpify": "^1.3.3",
-                    "stream-each": "^1.1.0",
-                    "through2": "^2.0.0"
-                  }
-                }
-              }
-            },
-            "figgy-pudding": {
-              "version": "2.0.1",
-              "bundled": true
-            },
-            "make-fetch-happen": {
-              "version": "3.0.0",
-              "bundled": true,
-              "requires": {
-                "agentkeepalive": "^3.4.1",
-                "cacache": "^10.0.4",
-                "http-cache-semantics": "^3.8.1",
-                "http-proxy-agent": "^2.1.0",
-                "https-proxy-agent": "^2.2.0",
-                "lru-cache": "^4.1.2",
-                "mississippi": "^3.0.0",
-                "node-fetch-npm": "^2.0.2",
-                "promise-retry": "^1.1.1",
-                "socks-proxy-agent": "^3.0.1",
-                "ssri": "^5.2.4"
-              }
-            },
-            "pump": {
-              "version": "2.0.1",
-              "bundled": true,
-              "requires": {
-                "end-of-stream": "^1.1.0",
-                "once": "^1.3.1"
-              }
-            },
-            "smart-buffer": {
-              "version": "1.1.15",
-              "bundled": true
-            },
-            "socks": {
-              "version": "1.1.10",
-              "bundled": true,
-              "requires": {
-                "ip": "^1.1.4",
-                "smart-buffer": "^1.0.13"
-              }
-            },
-            "socks-proxy-agent": {
-              "version": "3.0.1",
-              "bundled": true,
-              "requires": {
-                "agent-base": "^4.1.0",
-                "socks": "^1.1.10"
-              }
-            },
-            "ssri": {
-              "version": "5.3.0",
-              "bundled": true,
-              "requires": {
-                "safe-buffer": "^5.1.1"
-              }
-            }
-          }
-        },
-        "npm-run-path": {
-          "version": "2.0.2",
-          "bundled": true,
-          "requires": {
-            "path-key": "^2.0.0"
-          }
-        },
-        "npm-user-validate": {
-          "version": "1.0.0",
-          "bundled": true
-        },
-        "npmlog": {
-          "version": "4.1.2",
-          "bundled": true,
-          "requires": {
-            "are-we-there-yet": "~1.1.2",
-            "console-control-strings": "~1.1.0",
-            "gauge": "~2.7.3",
-            "set-blocking": "~2.0.0"
-          }
-        },
-        "number-is-nan": {
-          "version": "1.0.1",
-          "bundled": true
-        },
-        "oauth-sign": {
-          "version": "0.9.0",
-          "bundled": true
-        },
-        "object-assign": {
-          "version": "4.1.1",
-          "bundled": true
-        },
-        "once": {
-          "version": "1.4.0",
-          "bundled": true,
-          "requires": {
-            "wrappy": "1"
-          }
-        },
-        "opener": {
-          "version": "1.5.0",
-          "bundled": true
-        },
-        "os-homedir": {
-          "version": "1.0.2",
-          "bundled": true
-        },
-        "os-locale": {
-          "version": "2.1.0",
-          "bundled": true,
-          "requires": {
-            "execa": "^0.7.0",
-            "lcid": "^1.0.0",
-            "mem": "^1.1.0"
-          }
-        },
-        "os-tmpdir": {
-          "version": "1.0.2",
-          "bundled": true
-        },
-        "osenv": {
-          "version": "0.1.5",
-          "bundled": true,
-          "requires": {
-            "os-homedir": "^1.0.0",
-            "os-tmpdir": "^1.0.0"
-          }
-        },
-        "p-finally": {
-          "version": "1.0.0",
-          "bundled": true
-        },
-        "p-limit": {
-          "version": "1.2.0",
-          "bundled": true,
-          "requires": {
-            "p-try": "^1.0.0"
-          }
-        },
-        "p-locate": {
-          "version": "2.0.0",
-          "bundled": true,
-          "requires": {
-            "p-limit": "^1.1.0"
-          }
-        },
-        "p-try": {
-          "version": "1.0.0",
-          "bundled": true
-        },
-        "package-json": {
-          "version": "4.0.1",
-          "bundled": true,
-          "requires": {
-            "got": "^6.7.1",
-            "registry-auth-token": "^3.0.1",
-            "registry-url": "^3.0.3",
-            "semver": "^5.1.0"
-          }
-        },
-        "pacote": {
-          "version": "8.1.6",
-          "bundled": true,
-          "requires": {
-            "bluebird": "^3.5.1",
-            "cacache": "^11.0.2",
-            "get-stream": "^3.0.0",
-            "glob": "^7.1.2",
-            "lru-cache": "^4.1.3",
-            "make-fetch-happen": "^4.0.1",
-            "minimatch": "^3.0.4",
-            "minipass": "^2.3.3",
-            "mississippi": "^3.0.0",
-            "mkdirp": "^0.5.1",
-            "normalize-package-data": "^2.4.0",
-            "npm-package-arg": "^6.1.0",
-            "npm-packlist": "^1.1.10",
-            "npm-pick-manifest": "^2.1.0",
-            "osenv": "^0.1.5",
-            "promise-inflight": "^1.0.1",
-            "promise-retry": "^1.1.1",
-            "protoduck": "^5.0.0",
-            "rimraf": "^2.6.2",
-            "safe-buffer": "^5.1.2",
-            "semver": "^5.5.0",
-            "ssri": "^6.0.0",
-            "tar": "^4.4.3",
-            "unique-filename": "^1.1.0",
-            "which": "^1.3.0"
-          }
-        },
-        "parallel-transform": {
-          "version": "1.1.0",
-          "bundled": true,
-          "requires": {
-            "cyclist": "~0.2.2",
-            "inherits": "^2.0.3",
-            "readable-stream": "^2.1.5"
-          }
-        },
-        "path-exists": {
-          "version": "3.0.0",
-          "bundled": true
-        },
-        "path-is-absolute": {
-          "version": "1.0.1",
-          "bundled": true
-        },
-        "path-is-inside": {
-          "version": "1.0.2",
-          "bundled": true
-        },
-        "path-key": {
-          "version": "2.0.1",
-          "bundled": true
-        },
-        "performance-now": {
-          "version": "2.1.0",
-          "bundled": true
-        },
-        "pify": {
-          "version": "3.0.0",
-          "bundled": true
-        },
-        "prepend-http": {
-          "version": "1.0.4",
-          "bundled": true
-        },
-        "process-nextick-args": {
-          "version": "2.0.0",
-          "bundled": true
-        },
-        "promise-inflight": {
-          "version": "1.0.1",
-          "bundled": true
-        },
-        "promise-retry": {
-          "version": "1.1.1",
-          "bundled": true,
-          "requires": {
-            "err-code": "^1.0.0",
-            "retry": "^0.10.0"
-          },
-          "dependencies": {
-            "retry": {
-              "version": "0.10.1",
-              "bundled": true
-            }
-          }
-        },
-        "promzard": {
-          "version": "0.3.0",
-          "bundled": true,
-          "requires": {
-            "read": "1"
-          }
-        },
-        "proto-list": {
-          "version": "1.2.4",
-          "bundled": true
-        },
-        "protoduck": {
-          "version": "5.0.0",
-          "bundled": true,
-          "requires": {
-            "genfun": "^4.0.1"
-          }
-        },
-        "prr": {
-          "version": "1.0.1",
-          "bundled": true
-        },
-        "pseudomap": {
-          "version": "1.0.2",
-          "bundled": true
-        },
-        "psl": {
-          "version": "1.1.29",
-          "bundled": true
-        },
-        "pump": {
-          "version": "3.0.0",
-          "bundled": true,
-          "requires": {
-            "end-of-stream": "^1.1.0",
-            "once": "^1.3.1"
-          }
-        },
-        "pumpify": {
-          "version": "1.5.1",
-          "bundled": true,
-          "requires": {
-            "duplexify": "^3.6.0",
-            "inherits": "^2.0.3",
-            "pump": "^2.0.0"
-          },
-          "dependencies": {
-            "pump": {
-              "version": "2.0.1",
-              "bundled": true,
-              "requires": {
-                "end-of-stream": "^1.1.0",
-                "once": "^1.3.1"
-              }
-            }
-          }
-        },
-        "punycode": {
-          "version": "1.4.1",
-          "bundled": true
-        },
-        "qrcode-terminal": {
-          "version": "0.12.0",
-          "bundled": true
-        },
-        "qs": {
-          "version": "6.5.2",
-          "bundled": true
-        },
-        "query-string": {
-          "version": "6.1.0",
-          "bundled": true,
-          "requires": {
-            "decode-uri-component": "^0.2.0",
-            "strict-uri-encode": "^2.0.0"
-          }
-        },
-        "qw": {
-          "version": "1.0.1",
-          "bundled": true
-        },
-        "rc": {
-          "version": "1.2.7",
-          "bundled": true,
-          "requires": {
-            "deep-extend": "^0.5.1",
-            "ini": "~1.3.0",
-            "minimist": "^1.2.0",
-            "strip-json-comments": "~2.0.1"
-          },
-          "dependencies": {
-            "minimist": {
-              "version": "1.2.0",
-              "bundled": true
-            }
-          }
-        },
-        "read": {
-          "version": "1.0.7",
-          "bundled": true,
-          "requires": {
-            "mute-stream": "~0.0.4"
-          }
-        },
-        "read-cmd-shim": {
-          "version": "1.0.1",
-          "bundled": true,
-          "requires": {
-            "graceful-fs": "^4.1.2"
-          }
-        },
-        "read-installed": {
-          "version": "4.0.3",
-          "bundled": true,
-          "requires": {
-            "debuglog": "^1.0.1",
-            "graceful-fs": "^4.1.2",
-            "read-package-json": "^2.0.0",
-            "readdir-scoped-modules": "^1.0.0",
-            "semver": "2 || 3 || 4 || 5",
-            "slide": "~1.1.3",
-            "util-extend": "^1.0.1"
-          }
-        },
-        "read-package-json": {
-          "version": "2.0.13",
-          "bundled": true,
-          "requires": {
-            "glob": "^7.1.1",
-            "graceful-fs": "^4.1.2",
-            "json-parse-better-errors": "^1.0.1",
-            "normalize-package-data": "^2.0.0",
-            "slash": "^1.0.0"
-          }
-        },
-        "read-package-tree": {
-          "version": "5.2.1",
-          "bundled": true,
-          "requires": {
-            "debuglog": "^1.0.1",
-            "dezalgo": "^1.0.0",
-            "once": "^1.3.0",
-            "read-package-json": "^2.0.0",
-            "readdir-scoped-modules": "^1.0.0"
-          }
-        },
-        "readable-stream": {
-          "version": "2.3.6",
-          "bundled": true,
-          "requires": {
-            "core-util-is": "~1.0.0",
-            "inherits": "~2.0.3",
-            "isarray": "~1.0.0",
-            "process-nextick-args": "~2.0.0",
-            "safe-buffer": "~5.1.1",
-            "string_decoder": "~1.1.1",
-            "util-deprecate": "~1.0.1"
-          }
-        },
-        "readdir-scoped-modules": {
-          "version": "1.0.2",
-          "bundled": true,
-          "requires": {
-            "debuglog": "^1.0.1",
-            "dezalgo": "^1.0.0",
-            "graceful-fs": "^4.1.2",
-            "once": "^1.3.0"
-          }
-        },
-        "registry-auth-token": {
-          "version": "3.3.2",
-          "bundled": true,
-          "requires": {
-            "rc": "^1.1.6",
-            "safe-buffer": "^5.0.1"
-          }
-        },
-        "registry-url": {
-          "version": "3.1.0",
-          "bundled": true,
-          "requires": {
-            "rc": "^1.0.1"
-          }
-        },
-        "request": {
-          "version": "2.88.0",
-          "bundled": true,
-          "requires": {
-            "aws-sign2": "~0.7.0",
-            "aws4": "^1.8.0",
-            "caseless": "~0.12.0",
-            "combined-stream": "~1.0.6",
-            "extend": "~3.0.2",
-            "forever-agent": "~0.6.1",
-            "form-data": "~2.3.2",
-            "har-validator": "~5.1.0",
-            "http-signature": "~1.2.0",
-            "is-typedarray": "~1.0.0",
-            "isstream": "~0.1.2",
-            "json-stringify-safe": "~5.0.1",
-            "mime-types": "~2.1.19",
-            "oauth-sign": "~0.9.0",
-            "performance-now": "^2.1.0",
-            "qs": "~6.5.2",
-            "safe-buffer": "^5.1.2",
-            "tough-cookie": "~2.4.3",
-            "tunnel-agent": "^0.6.0",
-            "uuid": "^3.3.2"
-          }
-        },
-        "require-directory": {
-          "version": "2.1.1",
-          "bundled": true
-        },
-        "require-main-filename": {
-          "version": "1.0.1",
-          "bundled": true
-        },
-        "resolve-from": {
-          "version": "4.0.0",
-          "bundled": true
-        },
-        "retry": {
-          "version": "0.12.0",
-          "bundled": true
-        },
-        "rimraf": {
-          "version": "2.6.2",
-          "bundled": true,
-          "requires": {
-            "glob": "^7.0.5"
-          }
-        },
-        "run-queue": {
-          "version": "1.0.3",
-          "bundled": true,
-          "requires": {
-            "aproba": "^1.1.1"
-          }
-        },
-        "safe-buffer": {
-          "version": "5.1.2",
-          "bundled": true
-        },
-        "safer-buffer": {
-          "version": "2.1.2",
-          "bundled": true
-        },
-        "semver": {
-          "version": "5.5.0",
-          "bundled": true
-        },
-        "semver-diff": {
-          "version": "2.1.0",
-          "bundled": true,
-          "requires": {
-            "semver": "^5.0.3"
-          }
-        },
-        "set-blocking": {
-          "version": "2.0.0",
-          "bundled": true
-        },
-        "sha": {
-          "version": "2.0.1",
-          "bundled": true,
-          "requires": {
-            "graceful-fs": "^4.1.2",
-            "readable-stream": "^2.0.2"
-          }
-        },
-        "shebang-command": {
-          "version": "1.2.0",
-          "bundled": true,
-          "requires": {
-            "shebang-regex": "^1.0.0"
-          }
-        },
-        "shebang-regex": {
-          "version": "1.0.0",
-          "bundled": true
-        },
-        "signal-exit": {
-          "version": "3.0.2",
-          "bundled": true
-        },
-        "slash": {
-          "version": "1.0.0",
-          "bundled": true
-        },
-        "slide": {
-          "version": "1.1.6",
-          "bundled": true
-        },
-        "smart-buffer": {
-          "version": "4.0.1",
-          "bundled": true
-        },
-        "socks": {
-          "version": "2.2.0",
-          "bundled": true,
-          "requires": {
-            "ip": "^1.1.5",
-            "smart-buffer": "^4.0.1"
-          }
-        },
-        "socks-proxy-agent": {
-          "version": "4.0.1",
-          "bundled": true,
-          "requires": {
-            "agent-base": "~4.2.0",
-            "socks": "~2.2.0"
-          }
-        },
-        "sorted-object": {
-          "version": "2.0.1",
-          "bundled": true
-        },
-        "sorted-union-stream": {
-          "version": "2.1.3",
-          "bundled": true,
-          "requires": {
-            "from2": "^1.3.0",
-            "stream-iterate": "^1.1.0"
-          },
-          "dependencies": {
-            "from2": {
-              "version": "1.3.0",
-              "bundled": true,
-              "requires": {
-                "inherits": "~2.0.1",
-                "readable-stream": "~1.1.10"
-              }
-            },
-            "isarray": {
-              "version": "0.0.1",
-              "bundled": true
-            },
-            "readable-stream": {
-              "version": "1.1.14",
-              "bundled": true,
-              "requires": {
-                "core-util-is": "~1.0.0",
-                "inherits": "~2.0.1",
-                "isarray": "0.0.1",
-                "string_decoder": "~0.10.x"
-              }
-            },
-            "string_decoder": {
-              "version": "0.10.31",
-              "bundled": true
-            }
-          }
-        },
-        "spdx-correct": {
-          "version": "3.0.0",
-          "bundled": true,
-          "requires": {
-            "spdx-expression-parse": "^3.0.0",
-            "spdx-license-ids": "^3.0.0"
-          }
-        },
-        "spdx-exceptions": {
-          "version": "2.1.0",
-          "bundled": true
-        },
-        "spdx-expression-parse": {
-          "version": "3.0.0",
-          "bundled": true,
-          "requires": {
-            "spdx-exceptions": "^2.1.0",
-            "spdx-license-ids": "^3.0.0"
-          }
-        },
-        "spdx-license-ids": {
-          "version": "3.0.0",
-          "bundled": true
-        },
-        "sshpk": {
-          "version": "1.14.2",
-          "bundled": true,
-          "requires": {
-            "asn1": "~0.2.3",
-            "assert-plus": "^1.0.0",
-            "bcrypt-pbkdf": "^1.0.0",
-            "dashdash": "^1.12.0",
-            "ecc-jsbn": "~0.1.1",
-            "getpass": "^0.1.1",
-            "jsbn": "~0.1.0",
-            "safer-buffer": "^2.0.2",
-            "tweetnacl": "~0.14.0"
-          }
-        },
-        "ssri": {
-          "version": "6.0.0",
-          "bundled": true
-        },
-        "stream-each": {
-          "version": "1.2.2",
-          "bundled": true,
-          "requires": {
-            "end-of-stream": "^1.1.0",
-            "stream-shift": "^1.0.0"
-          }
-        },
-        "stream-iterate": {
-          "version": "1.2.0",
-          "bundled": true,
-          "requires": {
-            "readable-stream": "^2.1.5",
-            "stream-shift": "^1.0.0"
-          }
-        },
-        "stream-shift": {
-          "version": "1.0.0",
-          "bundled": true
-        },
-        "strict-uri-encode": {
-          "version": "2.0.0",
-          "bundled": true
-        },
-        "string-width": {
-          "version": "2.1.1",
-          "bundled": true,
-          "requires": {
-            "is-fullwidth-code-point": "^2.0.0",
-            "strip-ansi": "^4.0.0"
-          },
-          "dependencies": {
-            "ansi-regex": {
-              "version": "3.0.0",
-              "bundled": true
-            },
-            "is-fullwidth-code-point": {
-              "version": "2.0.0",
-              "bundled": true
-            },
-            "strip-ansi": {
-              "version": "4.0.0",
-              "bundled": true,
-              "requires": {
-                "ansi-regex": "^3.0.0"
-              }
-            }
-          }
-        },
-        "string_decoder": {
-          "version": "1.1.1",
-          "bundled": true,
-          "requires": {
-            "safe-buffer": "~5.1.0"
-          }
-        },
-        "stringify-package": {
-          "version": "1.0.0",
-          "bundled": true
-        },
-        "strip-ansi": {
-          "version": "3.0.1",
-          "bundled": true,
-          "requires": {
-            "ansi-regex": "^2.0.0"
-          }
-        },
-        "strip-eof": {
-          "version": "1.0.0",
-          "bundled": true
-        },
-        "strip-json-comments": {
-          "version": "2.0.1",
-          "bundled": true
-        },
-        "supports-color": {
-          "version": "5.4.0",
-          "bundled": true,
-          "requires": {
-            "has-flag": "^3.0.0"
-          }
-        },
-        "tar": {
-          "version": "4.4.6",
-          "bundled": true,
-          "requires": {
-            "chownr": "^1.0.1",
-            "fs-minipass": "^1.2.5",
-            "minipass": "^2.3.3",
-            "minizlib": "^1.1.0",
-            "mkdirp": "^0.5.0",
-            "safe-buffer": "^5.1.2",
-            "yallist": "^3.0.2"
-          },
-          "dependencies": {
-            "yallist": {
-              "version": "3.0.2",
-              "bundled": true
-            }
-          }
-        },
-        "term-size": {
-          "version": "1.2.0",
-          "bundled": true,
-          "requires": {
-            "execa": "^0.7.0"
-          }
-        },
-        "text-table": {
-          "version": "0.2.0",
-          "bundled": true
-        },
-        "through": {
-          "version": "2.3.8",
-          "bundled": true
-        },
-        "through2": {
-          "version": "2.0.3",
-          "bundled": true,
-          "requires": {
-            "readable-stream": "^2.1.5",
-            "xtend": "~4.0.1"
-          }
-        },
-        "timed-out": {
-          "version": "4.0.1",
-          "bundled": true
-        },
-        "tiny-relative-date": {
-          "version": "1.3.0",
-          "bundled": true
-        },
-        "tough-cookie": {
-          "version": "2.4.3",
-          "bundled": true,
-          "requires": {
-            "psl": "^1.1.24",
-            "punycode": "^1.4.1"
-          }
-        },
-        "tunnel-agent": {
-          "version": "0.6.0",
-          "bundled": true,
-          "requires": {
-            "safe-buffer": "^5.0.1"
-          }
-        },
-        "tweetnacl": {
-          "version": "0.14.5",
-          "bundled": true,
-          "optional": true
-        },
-        "typedarray": {
-          "version": "0.0.6",
-          "bundled": true
-        },
-        "uid-number": {
-          "version": "0.0.6",
-          "bundled": true
-        },
-        "umask": {
-          "version": "1.1.0",
-          "bundled": true
-        },
-        "unique-filename": {
-          "version": "1.1.0",
-          "bundled": true,
-          "requires": {
-            "unique-slug": "^2.0.0"
-          }
-        },
-        "unique-slug": {
-          "version": "2.0.0",
-          "bundled": true,
-          "requires": {
-            "imurmurhash": "^0.1.4"
-          }
-        },
-        "unique-string": {
-          "version": "1.0.0",
-          "bundled": true,
-          "requires": {
-            "crypto-random-string": "^1.0.0"
-          }
-        },
-        "unpipe": {
-          "version": "1.0.0",
-          "bundled": true
-        },
-        "unzip-response": {
-          "version": "2.0.1",
-          "bundled": true
-        },
-        "update-notifier": {
-          "version": "2.5.0",
-          "bundled": true,
-          "requires": {
-            "boxen": "^1.2.1",
-            "chalk": "^2.0.1",
-            "configstore": "^3.0.0",
-            "import-lazy": "^2.1.0",
-            "is-ci": "^1.0.10",
-            "is-installed-globally": "^0.1.0",
-            "is-npm": "^1.0.0",
-            "latest-version": "^3.0.0",
-            "semver-diff": "^2.0.0",
-            "xdg-basedir": "^3.0.0"
-          }
-        },
-        "url-parse-lax": {
-          "version": "1.0.0",
-          "bundled": true,
-          "requires": {
-            "prepend-http": "^1.0.1"
-          }
-        },
-        "util-deprecate": {
-          "version": "1.0.2",
-          "bundled": true
-        },
-        "util-extend": {
-          "version": "1.0.3",
-          "bundled": true
-        },
-        "uuid": {
-          "version": "3.3.2",
-          "bundled": true
-        },
-        "validate-npm-package-license": {
-          "version": "3.0.4",
-          "bundled": true,
-          "requires": {
-            "spdx-correct": "^3.0.0",
-            "spdx-expression-parse": "^3.0.0"
-          }
-        },
-        "validate-npm-package-name": {
-          "version": "3.0.0",
-          "bundled": true,
-          "requires": {
-            "builtins": "^1.0.3"
-          }
-        },
-        "verror": {
-          "version": "1.10.0",
-          "bundled": true,
-          "requires": {
-            "assert-plus": "^1.0.0",
-            "core-util-is": "1.0.2",
-            "extsprintf": "^1.2.0"
-          }
-        },
-        "wcwidth": {
-          "version": "1.0.1",
-          "bundled": true,
-          "requires": {
-            "defaults": "^1.0.3"
-          }
-        },
-        "which": {
-          "version": "1.3.1",
-          "bundled": true,
-          "requires": {
-            "isexe": "^2.0.0"
-          }
-        },
-        "which-module": {
-          "version": "2.0.0",
-          "bundled": true
-        },
-        "wide-align": {
-          "version": "1.1.2",
-          "bundled": true,
-          "requires": {
-            "string-width": "^1.0.2"
-          },
-          "dependencies": {
-            "string-width": {
-              "version": "1.0.2",
-              "bundled": true,
-              "requires": {
-                "code-point-at": "^1.0.0",
-                "is-fullwidth-code-point": "^1.0.0",
-                "strip-ansi": "^3.0.0"
-              }
-            }
-          }
-        },
-        "widest-line": {
-          "version": "2.0.0",
-          "bundled": true,
-          "requires": {
-            "string-width": "^2.1.1"
-          }
-        },
-        "worker-farm": {
-          "version": "1.6.0",
-          "bundled": true,
-          "requires": {
-            "errno": "~0.1.7"
-          }
-        },
-        "wrap-ansi": {
-          "version": "2.1.0",
-          "bundled": true,
-          "requires": {
-            "string-width": "^1.0.1",
-            "strip-ansi": "^3.0.1"
-          },
-          "dependencies": {
-            "string-width": {
-              "version": "1.0.2",
-              "bundled": true,
-              "requires": {
-                "code-point-at": "^1.0.0",
-                "is-fullwidth-code-point": "^1.0.0",
-                "strip-ansi": "^3.0.0"
-              }
-            }
-          }
-        },
-        "wrappy": {
-          "version": "1.0.2",
-          "bundled": true
-        },
-        "write-file-atomic": {
-          "version": "2.3.0",
-          "bundled": true,
-          "requires": {
-            "graceful-fs": "^4.1.11",
-            "imurmurhash": "^0.1.4",
-            "signal-exit": "^3.0.2"
-          }
-        },
-        "xdg-basedir": {
-          "version": "3.0.0",
-          "bundled": true
-        },
-        "xtend": {
-          "version": "4.0.1",
-          "bundled": true
-        },
-        "y18n": {
-          "version": "4.0.0",
-          "bundled": true
-        },
-        "yallist": {
-          "version": "2.1.2",
-          "bundled": true
-        },
-        "yargs": {
-          "version": "11.0.0",
-          "bundled": true,
-          "requires": {
-            "cliui": "^4.0.0",
-            "decamelize": "^1.1.1",
-            "find-up": "^2.1.0",
-            "get-caller-file": "^1.0.1",
-            "os-locale": "^2.0.0",
-            "require-directory": "^2.1.1",
-            "require-main-filename": "^1.0.1",
-            "set-blocking": "^2.0.0",
-            "string-width": "^2.0.0",
-            "which-module": "^2.0.0",
-            "y18n": "^3.2.1",
-            "yargs-parser": "^9.0.2"
-          },
-          "dependencies": {
-            "y18n": {
-              "version": "3.2.1",
-              "bundled": true
-            }
-          }
-        },
-        "yargs-parser": {
-          "version": "9.0.2",
-          "bundled": true,
-          "requires": {
-            "camelcase": "^4.1.0"
-          }
-        }
-      }
-    },
-    "npm-bundled": {
-      "version": "1.0.5",
-      "resolved": "https://registry.npmjs.org/npm-bundled/-/npm-bundled-1.0.5.tgz",
-      "integrity": "sha512-m/e6jgWu8/v5niCUKQi9qQl8QdeEduFA96xHDDzFGqly0OOjI7c+60KM/2sppfnUU9JJagf+zs+yGhqSOFj71g==",
-      "dev": true
-    },
-    "npm-name": {
-      "version": "3.0.0",
-      "resolved": "https://registry.npmjs.org/npm-name/-/npm-name-3.0.0.tgz",
-      "integrity": "sha1-9y5AR5k6C/kyp9jbeAur/3e6cj8=",
-      "requires": {
-        "got": "^6.3.0",
-        "lodash.zip": "^4.0.0",
-        "registry-url": "^3.0.0"
-      }
-    },
-    "npm-package-arg": {
-      "version": "6.1.0",
-      "resolved": "https://registry.npmjs.org/npm-package-arg/-/npm-package-arg-6.1.0.tgz",
-      "integrity": "sha512-zYbhP2k9DbJhA0Z3HKUePUgdB1x7MfIfKssC+WLPFMKTBZKpZh5m13PgexJjCq6KW7j17r0jHWcCpxEqnnncSA==",
-      "dev": true,
-      "requires": {
-        "hosted-git-info": "^2.6.0",
-        "osenv": "^0.1.5",
-        "semver": "^5.5.0",
-        "validate-npm-package-name": "^3.0.0"
-      }
-    },
-    "npm-packlist": {
-      "version": "1.1.12",
-      "resolved": "https://registry.npmjs.org/npm-packlist/-/npm-packlist-1.1.12.tgz",
-      "integrity": "sha512-WJKFOVMeAlsU/pjXuqVdzU0WfgtIBCupkEVwn+1Y0ERAbUfWw8R4GjgVbaKnUjRoD2FoQbHOCbOyT5Mbs9Lw4g==",
-      "dev": true,
-      "requires": {
-        "ignore-walk": "^3.0.1",
-        "npm-bundled": "^1.0.1"
-      }
-    },
-    "npm-pick-manifest": {
-      "version": "2.2.3",
-      "resolved": "https://registry.npmjs.org/npm-pick-manifest/-/npm-pick-manifest-2.2.3.tgz",
-      "integrity": "sha512-+IluBC5K201+gRU85vFlUwX3PFShZAbAgDNp2ewJdWMVSppdo/Zih0ul2Ecky/X7b51J7LrrUAP+XOmOCvYZqA==",
-      "dev": true,
-      "requires": {
-        "figgy-pudding": "^3.5.1",
-        "npm-package-arg": "^6.0.0",
-        "semver": "^5.4.1"
-      }
-    },
-    "npm-registry-fetch": {
-      "version": "3.8.0",
-      "resolved": "https://registry.npmjs.org/npm-registry-fetch/-/npm-registry-fetch-3.8.0.tgz",
-      "integrity": "sha512-hrw8UMD+Nob3Kl3h8Z/YjmKamb1gf7D1ZZch2otrIXM3uFLB5vjEY6DhMlq80z/zZet6eETLbOXcuQudCB3Zpw==",
-      "dev": true,
-      "requires": {
-        "JSONStream": "^1.3.4",
-        "bluebird": "^3.5.1",
-        "figgy-pudding": "^3.4.1",
-        "lru-cache": "^4.1.3",
-        "make-fetch-happen": "^4.0.1",
-        "npm-package-arg": "^6.1.0"
-      },
-      "dependencies": {
-        "lru-cache": {
-          "version": "4.1.5",
-          "resolved": "https://registry.npmjs.org/lru-cache/-/lru-cache-4.1.5.tgz",
-          "integrity": "sha512-sWZlbEP2OsHNkXrMl5GYk/jKk70MBng6UU4YI/qGDYbgf6YbP4EvmqISbXCoJiRKs+1bSpFHVgQxvJ17F2li5g==",
-          "dev": true,
-          "requires": {
-            "pseudomap": "^1.0.2",
-            "yallist": "^2.1.2"
-          }
-        }
-      }
-    },
-    "npm-run-all": {
-      "version": "4.1.5",
-      "resolved": "https://registry.npmjs.org/npm-run-all/-/npm-run-all-4.1.5.tgz",
-      "integrity": "sha512-Oo82gJDAVcaMdi3nuoKFavkIHBRVqQ1qvMb+9LHk/cF4P6B2m8aP04hGf7oL6wZ9BuGwX1onlLhpuoofSyoQDQ==",
-      "dev": true,
-      "requires": {
-        "ansi-styles": "^3.2.1",
-        "chalk": "^2.4.1",
-        "cross-spawn": "^6.0.5",
-        "memorystream": "^0.3.1",
-        "minimatch": "^3.0.4",
-        "pidtree": "^0.3.0",
-        "read-pkg": "^3.0.0",
-        "shell-quote": "^1.6.1",
-        "string.prototype.padend": "^3.0.0"
-      },
-      "dependencies": {
-        "chalk": {
-          "version": "2.4.2",
-          "resolved": "https://registry.npmjs.org/chalk/-/chalk-2.4.2.tgz",
-          "integrity": "sha512-Mti+f9lpJNcwF4tWV8/OrTTtF1gZi+f8FqlyAdouralcFWFQWF2+NgCHShjkCb+IFBLq9buZwE1xckQU4peSuQ==",
-          "dev": true,
-          "requires": {
-            "ansi-styles": "^3.2.1",
-            "escape-string-regexp": "^1.0.5",
-            "supports-color": "^5.3.0"
-          }
-        },
-        "cross-spawn": {
-          "version": "6.0.5",
-          "resolved": "https://registry.npmjs.org/cross-spawn/-/cross-spawn-6.0.5.tgz",
-          "integrity": "sha512-eTVLrBSt7fjbDygz805pMnstIs2VTBNkRm0qxZd+M7A5XDdxVRWO5MxGBXZhjY4cqLYLdtrGqRf8mBPmzwSpWQ==",
-          "dev": true,
-          "requires": {
-            "nice-try": "^1.0.4",
-            "path-key": "^2.0.1",
-            "semver": "^5.5.0",
-            "shebang-command": "^1.2.0",
-            "which": "^1.2.9"
-          }
-        },
-        "has-flag": {
-          "version": "3.0.0",
-          "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-3.0.0.tgz",
-          "integrity": "sha1-tdRU3CGZriJWmfNGfloH87lVuv0=",
-          "dev": true
-        },
-        "load-json-file": {
-          "version": "4.0.0",
-          "resolved": "https://registry.npmjs.org/load-json-file/-/load-json-file-4.0.0.tgz",
-          "integrity": "sha1-L19Fq5HjMhYjT9U62rZo607AmTs=",
-          "dev": true,
-          "requires": {
-            "graceful-fs": "^4.1.2",
-            "parse-json": "^4.0.0",
-            "pify": "^3.0.0",
-            "strip-bom": "^3.0.0"
-          }
-        },
-        "parse-json": {
-          "version": "4.0.0",
-          "resolved": "https://registry.npmjs.org/parse-json/-/parse-json-4.0.0.tgz",
-          "integrity": "sha1-vjX1Qlvh9/bHRxhPmKeIy5lHfuA=",
-          "dev": true,
-          "requires": {
-            "error-ex": "^1.3.1",
-            "json-parse-better-errors": "^1.0.1"
-          }
-        },
-        "read-pkg": {
-          "version": "3.0.0",
-          "resolved": "https://registry.npmjs.org/read-pkg/-/read-pkg-3.0.0.tgz",
-          "integrity": "sha1-nLxoaXj+5l0WwA4rGcI3/Pbjg4k=",
-          "dev": true,
-          "requires": {
-            "load-json-file": "^4.0.0",
-            "normalize-package-data": "^2.3.2",
-            "path-type": "^3.0.0"
-          }
-        },
-        "strip-bom": {
-          "version": "3.0.0",
-          "resolved": "https://registry.npmjs.org/strip-bom/-/strip-bom-3.0.0.tgz",
-          "integrity": "sha1-IzTBjpx1n3vdVv3vfprj1YjmjtM=",
-          "dev": true
-        },
-        "supports-color": {
-          "version": "5.5.0",
-          "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-5.5.0.tgz",
-          "integrity": "sha512-QjVjwdXIt408MIiAqCX4oUKsgU2EqAGzs2Ppkm4aQYbjm+ZEWEcW4SfFNTr4uMNZma0ey4f5lgLrkB0aX0QMow==",
-          "dev": true,
-          "requires": {
-            "has-flag": "^3.0.0"
-          }
-        }
-      }
-    },
-    "npm-run-path": {
-      "version": "2.0.2",
-      "resolved": "https://registry.npmjs.org/npm-run-path/-/npm-run-path-2.0.2.tgz",
-      "integrity": "sha1-NakjLfo11wZ7TLLd8jV7GHFTbF8=",
-      "dev": true,
-      "requires": {
-        "path-key": "^2.0.0"
-      }
-    },
-    "npmlog": {
-      "version": "4.1.2",
-      "resolved": "https://registry.npmjs.org/npmlog/-/npmlog-4.1.2.tgz",
-      "integrity": "sha512-2uUqazuKlTaSI/dC8AzicUck7+IrEaOnN/e0jd3Xtt1KcGpwx30v50mL7oPyr/h9bL3E4aZccVwpwP+5W9Vjkg==",
-      "dev": true,
-      "requires": {
-        "are-we-there-yet": "~1.1.2",
-        "console-control-strings": "~1.1.0",
-        "gauge": "~2.7.3",
-        "set-blocking": "~2.0.0"
-      }
-    },
-    "num2fraction": {
-      "version": "1.2.2",
-      "resolved": "https://registry.npmjs.org/num2fraction/-/num2fraction-1.2.2.tgz",
-      "integrity": "sha1-b2gragJ6Tp3fpFZM0lidHU5mnt4=",
-      "dev": true
-    },
-    "number-is-nan": {
-      "version": "1.0.1",
-      "resolved": "https://registry.npmjs.org/number-is-nan/-/number-is-nan-1.0.1.tgz",
-      "integrity": "sha1-CXtgK1NCKlIsGvuHkDGDNpQaAR0="
-    },
-    "nwsapi": {
-      "version": "2.1.0",
-      "resolved": "https://registry.npmjs.org/nwsapi/-/nwsapi-2.1.0.tgz",
-      "integrity": "sha512-ZG3bLAvdHmhIjaQ/Db1qvBxsGvFMLIRpQszyqbg31VJ53UP++uZX1/gf3Ut96pdwN9AuDwlMqIYLm0UPCdUeHg==",
-      "dev": true
-    },
-    "nyc": {
-      "version": "12.0.2",
-      "resolved": "https://registry.npmjs.org/nyc/-/nyc-12.0.2.tgz",
-      "integrity": "sha1-ikpO1pCWbBHsWH/4fuoMEsl0upk=",
-      "requires": {
-        "archy": "^1.0.0",
-        "arrify": "^1.0.1",
-        "caching-transform": "^1.0.0",
-        "convert-source-map": "^1.5.1",
-        "debug-log": "^1.0.1",
-        "default-require-extensions": "^1.0.0",
-        "find-cache-dir": "^0.1.1",
-        "find-up": "^2.1.0",
-        "foreground-child": "^1.5.3",
-        "glob": "^7.0.6",
-        "istanbul-lib-coverage": "^1.2.0",
-        "istanbul-lib-hook": "^1.1.0",
-        "istanbul-lib-instrument": "^2.1.0",
-        "istanbul-lib-report": "^1.1.3",
-        "istanbul-lib-source-maps": "^1.2.5",
-        "istanbul-reports": "^1.4.1",
-        "md5-hex": "^1.2.0",
-        "merge-source-map": "^1.1.0",
-        "micromatch": "^3.1.10",
-        "mkdirp": "^0.5.0",
-        "resolve-from": "^2.0.0",
-        "rimraf": "^2.6.2",
-        "signal-exit": "^3.0.1",
-        "spawn-wrap": "^1.4.2",
-        "test-exclude": "^4.2.0",
-        "yargs": "11.1.0",
-        "yargs-parser": "^8.0.0"
-      },
-      "dependencies": {
-        "align-text": {
-          "version": "0.1.4",
-          "bundled": true,
-          "requires": {
-            "kind-of": "^3.0.2",
-            "longest": "^1.0.1",
-            "repeat-string": "^1.5.2"
-          }
-        },
-        "amdefine": {
-          "version": "1.0.1",
-          "bundled": true
-        },
-        "ansi-regex": {
-          "version": "3.0.0",
-          "bundled": true
-        },
-        "append-transform": {
-          "version": "0.4.0",
-          "bundled": true,
-          "requires": {
-            "default-require-extensions": "^1.0.0"
-          }
-        },
-        "archy": {
-          "version": "1.0.0",
-          "bundled": true
-        },
-        "arr-diff": {
-          "version": "4.0.0",
-          "bundled": true
-        },
-        "arr-flatten": {
-          "version": "1.1.0",
-          "bundled": true
-        },
-        "arr-union": {
-          "version": "3.1.0",
-          "bundled": true
-        },
-        "array-unique": {
-          "version": "0.3.2",
-          "bundled": true
-        },
-        "arrify": {
-          "version": "1.0.1",
-          "bundled": true
-        },
-        "assign-symbols": {
-          "version": "1.0.0",
-          "bundled": true
-        },
-        "async": {
-          "version": "1.5.2",
-          "bundled": true
-        },
-        "atob": {
-          "version": "2.1.1",
-          "bundled": true
-        },
-        "balanced-match": {
-          "version": "1.0.0",
-          "bundled": true
-        },
-        "base": {
-          "version": "0.11.2",
-          "bundled": true,
-          "requires": {
-            "cache-base": "^1.0.1",
-            "class-utils": "^0.3.5",
-            "component-emitter": "^1.2.1",
-            "define-property": "^1.0.0",
-            "isobject": "^3.0.1",
-            "mixin-deep": "^1.2.0",
-            "pascalcase": "^0.1.1"
-          },
-          "dependencies": {
-            "define-property": {
-              "version": "1.0.0",
-              "bundled": true,
-              "requires": {
-                "is-descriptor": "^1.0.0"
-              }
-            },
-            "is-accessor-descriptor": {
-              "version": "1.0.0",
-              "bundled": true,
-              "requires": {
-                "kind-of": "^6.0.0"
-              }
-            },
-            "is-data-descriptor": {
-              "version": "1.0.0",
-              "bundled": true,
-              "requires": {
-                "kind-of": "^6.0.0"
-              }
-            },
-            "is-descriptor": {
-              "version": "1.0.2",
-              "bundled": true,
-              "requires": {
-                "is-accessor-descriptor": "^1.0.0",
-                "is-data-descriptor": "^1.0.0",
-                "kind-of": "^6.0.2"
-              }
-            },
-            "kind-of": {
-              "version": "6.0.2",
-              "bundled": true
-            }
-          }
-        },
-        "brace-expansion": {
-          "version": "1.1.11",
-          "bundled": true,
-          "requires": {
-            "balanced-match": "^1.0.0",
-            "concat-map": "0.0.1"
-          }
-        },
-        "braces": {
-          "version": "2.3.2",
-          "bundled": true,
-          "requires": {
-            "arr-flatten": "^1.1.0",
-            "array-unique": "^0.3.2",
-            "extend-shallow": "^2.0.1",
-            "fill-range": "^4.0.0",
-            "isobject": "^3.0.1",
-            "repeat-element": "^1.1.2",
-            "snapdragon": "^0.8.1",
-            "snapdragon-node": "^2.0.1",
-            "split-string": "^3.0.2",
-            "to-regex": "^3.0.1"
-          },
-          "dependencies": {
-            "extend-shallow": {
-              "version": "2.0.1",
-              "bundled": true,
-              "requires": {
-                "is-extendable": "^0.1.0"
-              }
-            }
-          }
-        },
-        "builtin-modules": {
-          "version": "1.1.1",
-          "bundled": true
-        },
-        "cache-base": {
-          "version": "1.0.1",
-          "bundled": true,
-          "requires": {
-            "collection-visit": "^1.0.0",
-            "component-emitter": "^1.2.1",
-            "get-value": "^2.0.6",
-            "has-value": "^1.0.0",
-            "isobject": "^3.0.1",
-            "set-value": "^2.0.0",
-            "to-object-path": "^0.3.0",
-            "union-value": "^1.0.0",
-            "unset-value": "^1.0.0"
-          }
-        },
-        "caching-transform": {
-          "version": "1.0.1",
-          "bundled": true,
-          "requires": {
-            "md5-hex": "^1.2.0",
-            "mkdirp": "^0.5.1",
-            "write-file-atomic": "^1.1.4"
-          }
-        },
-        "camelcase": {
-          "version": "1.2.1",
-          "bundled": true,
-          "optional": true
-        },
-        "center-align": {
-          "version": "0.1.3",
-          "bundled": true,
-          "optional": true,
-          "requires": {
-            "align-text": "^0.1.3",
-            "lazy-cache": "^1.0.3"
-          }
-        },
-        "class-utils": {
-          "version": "0.3.6",
-          "bundled": true,
-          "requires": {
-            "arr-union": "^3.1.0",
-            "define-property": "^0.2.5",
-            "isobject": "^3.0.0",
-            "static-extend": "^0.1.1"
-          },
-          "dependencies": {
-            "define-property": {
-              "version": "0.2.5",
-              "bundled": true,
-              "requires": {
-                "is-descriptor": "^0.1.0"
-              }
-            }
-          }
-        },
-        "cliui": {
-          "version": "2.1.0",
-          "bundled": true,
-          "optional": true,
-          "requires": {
-            "center-align": "^0.1.1",
-            "right-align": "^0.1.1",
-            "wordwrap": "0.0.2"
-          },
-          "dependencies": {
-            "wordwrap": {
-              "version": "0.0.2",
-              "bundled": true,
-              "optional": true
-            }
-          }
-        },
-        "code-point-at": {
-          "version": "1.1.0",
-          "bundled": true
-        },
-        "collection-visit": {
-          "version": "1.0.0",
-          "bundled": true,
-          "requires": {
-            "map-visit": "^1.0.0",
-            "object-visit": "^1.0.0"
-          }
-        },
-        "commondir": {
-          "version": "1.0.1",
-          "bundled": true
-        },
-        "component-emitter": {
-          "version": "1.2.1",
-          "bundled": true
-        },
-        "concat-map": {
-          "version": "0.0.1",
-          "bundled": true
-        },
-        "convert-source-map": {
-          "version": "1.5.1",
-          "bundled": true
-        },
-        "copy-descriptor": {
-          "version": "0.1.1",
-          "bundled": true
-        },
-        "cross-spawn": {
-          "version": "4.0.2",
-          "bundled": true,
-          "requires": {
-            "lru-cache": "^4.0.1",
-            "which": "^1.2.9"
-          }
-        },
-        "debug": {
-          "version": "3.1.0",
-          "bundled": true,
-          "requires": {
-            "ms": "2.0.0"
-          }
-        },
-        "debug-log": {
-          "version": "1.0.1",
-          "bundled": true
-        },
-        "decamelize": {
-          "version": "1.2.0",
-          "bundled": true
-        },
-        "decode-uri-component": {
-          "version": "0.2.0",
-          "bundled": true
-        },
-        "default-require-extensions": {
-          "version": "1.0.0",
-          "bundled": true,
-          "requires": {
-            "strip-bom": "^2.0.0"
-          }
-        },
-        "define-property": {
-          "version": "2.0.2",
-          "bundled": true,
-          "requires": {
-            "is-descriptor": "^1.0.2",
-            "isobject": "^3.0.1"
-          },
-          "dependencies": {
-            "is-accessor-descriptor": {
-              "version": "1.0.0",
-              "bundled": true,
-              "requires": {
-                "kind-of": "^6.0.0"
-              }
-            },
-            "is-data-descriptor": {
-              "version": "1.0.0",
-              "bundled": true,
-              "requires": {
-                "kind-of": "^6.0.0"
-              }
-            },
-            "is-descriptor": {
-              "version": "1.0.2",
-              "bundled": true,
-              "requires": {
-                "is-accessor-descriptor": "^1.0.0",
-                "is-data-descriptor": "^1.0.0",
-                "kind-of": "^6.0.2"
-              }
-            },
-            "kind-of": {
-              "version": "6.0.2",
-              "bundled": true
-            }
-          }
-        },
-        "error-ex": {
-          "version": "1.3.1",
-          "bundled": true,
-          "requires": {
-            "is-arrayish": "^0.2.1"
-          }
-        },
-        "execa": {
-          "version": "0.7.0",
-          "bundled": true,
-          "requires": {
-            "cross-spawn": "^5.0.1",
-            "get-stream": "^3.0.0",
-            "is-stream": "^1.1.0",
-            "npm-run-path": "^2.0.0",
-            "p-finally": "^1.0.0",
-            "signal-exit": "^3.0.0",
-            "strip-eof": "^1.0.0"
-          },
-          "dependencies": {
-            "cross-spawn": {
-              "version": "5.1.0",
-              "bundled": true,
-              "requires": {
-                "lru-cache": "^4.0.1",
-                "shebang-command": "^1.2.0",
-                "which": "^1.2.9"
-              }
-            }
-          }
-        },
-        "expand-brackets": {
-          "version": "2.1.4",
-          "bundled": true,
-          "requires": {
-            "debug": "^2.3.3",
-            "define-property": "^0.2.5",
-            "extend-shallow": "^2.0.1",
-            "posix-character-classes": "^0.1.0",
-            "regex-not": "^1.0.0",
-            "snapdragon": "^0.8.1",
-            "to-regex": "^3.0.1"
-          },
-          "dependencies": {
-            "debug": {
-              "version": "2.6.9",
-              "bundled": true,
-              "requires": {
-                "ms": "2.0.0"
-              }
-            },
-            "define-property": {
-              "version": "0.2.5",
-              "bundled": true,
-              "requires": {
-                "is-descriptor": "^0.1.0"
-              }
-            },
-            "extend-shallow": {
-              "version": "2.0.1",
-              "bundled": true,
-              "requires": {
-                "is-extendable": "^0.1.0"
-              }
-            }
-          }
-        },
-        "extend-shallow": {
-          "version": "3.0.2",
-          "bundled": true,
-          "requires": {
-            "assign-symbols": "^1.0.0",
-            "is-extendable": "^1.0.1"
-          },
-          "dependencies": {
-            "is-extendable": {
-              "version": "1.0.1",
-              "bundled": true,
-              "requires": {
-                "is-plain-object": "^2.0.4"
-              }
-            }
-          }
-        },
-        "extglob": {
-          "version": "2.0.4",
-          "bundled": true,
-          "requires": {
-            "array-unique": "^0.3.2",
-            "define-property": "^1.0.0",
-            "expand-brackets": "^2.1.4",
-            "extend-shallow": "^2.0.1",
-            "fragment-cache": "^0.2.1",
-            "regex-not": "^1.0.0",
-            "snapdragon": "^0.8.1",
-            "to-regex": "^3.0.1"
-          },
-          "dependencies": {
-            "define-property": {
-              "version": "1.0.0",
-              "bundled": true,
-              "requires": {
-                "is-descriptor": "^1.0.0"
-              }
-            },
-            "extend-shallow": {
-              "version": "2.0.1",
-              "bundled": true,
-              "requires": {
-                "is-extendable": "^0.1.0"
-              }
-            },
-            "is-accessor-descriptor": {
-              "version": "1.0.0",
-              "bundled": true,
-              "requires": {
-                "kind-of": "^6.0.0"
-              }
-            },
-            "is-data-descriptor": {
-              "version": "1.0.0",
-              "bundled": true,
-              "requires": {
-                "kind-of": "^6.0.0"
-              }
-            },
-            "is-descriptor": {
-              "version": "1.0.2",
-              "bundled": true,
-              "requires": {
-                "is-accessor-descriptor": "^1.0.0",
-                "is-data-descriptor": "^1.0.0",
-                "kind-of": "^6.0.2"
-              }
-            },
-            "kind-of": {
-              "version": "6.0.2",
-              "bundled": true
-            }
-          }
-        },
-        "fill-range": {
-          "version": "4.0.0",
-          "bundled": true,
-          "requires": {
-            "extend-shallow": "^2.0.1",
-            "is-number": "^3.0.0",
-            "repeat-string": "^1.6.1",
-            "to-regex-range": "^2.1.0"
-          },
-          "dependencies": {
-            "extend-shallow": {
-              "version": "2.0.1",
-              "bundled": true,
-              "requires": {
-                "is-extendable": "^0.1.0"
-              }
-            }
-          }
-        },
-        "find-cache-dir": {
-          "version": "0.1.1",
-          "bundled": true,
-          "requires": {
-            "commondir": "^1.0.1",
-            "mkdirp": "^0.5.1",
-            "pkg-dir": "^1.0.0"
-          }
-        },
-        "find-up": {
-          "version": "2.1.0",
-          "bundled": true,
-          "requires": {
-            "locate-path": "^2.0.0"
-          }
-        },
-        "for-in": {
-          "version": "1.0.2",
-          "bundled": true
-        },
-        "foreground-child": {
-          "version": "1.5.6",
-          "bundled": true,
-          "requires": {
-            "cross-spawn": "^4",
-            "signal-exit": "^3.0.0"
-          }
-        },
-        "fragment-cache": {
-          "version": "0.2.1",
-          "bundled": true,
-          "requires": {
-            "map-cache": "^0.2.2"
-          }
-        },
-        "fs.realpath": {
-          "version": "1.0.0",
-          "bundled": true
-        },
-        "get-caller-file": {
-          "version": "1.0.2",
-          "bundled": true
-        },
-        "get-stream": {
-          "version": "3.0.0",
-          "bundled": true
-        },
-        "get-value": {
-          "version": "2.0.6",
-          "bundled": true
-        },
-        "glob": {
-          "version": "7.1.2",
-          "bundled": true,
-          "requires": {
-            "fs.realpath": "^1.0.0",
-            "inflight": "^1.0.4",
-            "inherits": "2",
-            "minimatch": "^3.0.4",
-            "once": "^1.3.0",
-            "path-is-absolute": "^1.0.0"
-          }
-        },
-        "graceful-fs": {
-          "version": "4.1.11",
-          "bundled": true
-        },
-        "handlebars": {
-          "version": "4.0.11",
-          "bundled": true,
-          "requires": {
-            "async": "^1.4.0",
-            "optimist": "^0.6.1",
-            "source-map": "^0.4.4",
-            "uglify-js": "^2.6"
-          },
-          "dependencies": {
-            "source-map": {
-              "version": "0.4.4",
-              "bundled": true,
-              "requires": {
-                "amdefine": ">=0.0.4"
-              }
-            }
-          }
-        },
-        "has-value": {
-          "version": "1.0.0",
-          "bundled": true,
-          "requires": {
-            "get-value": "^2.0.6",
-            "has-values": "^1.0.0",
-            "isobject": "^3.0.0"
-          }
-        },
-        "has-values": {
-          "version": "1.0.0",
-          "bundled": true,
-          "requires": {
-            "is-number": "^3.0.0",
-            "kind-of": "^4.0.0"
-          },
-          "dependencies": {
-            "kind-of": {
-              "version": "4.0.0",
-              "bundled": true,
-              "requires": {
-                "is-buffer": "^1.1.5"
-              }
-            }
-          }
-        },
-        "hosted-git-info": {
-          "version": "2.6.0",
-          "bundled": true
-        },
-        "imurmurhash": {
-          "version": "0.1.4",
-          "bundled": true
-        },
-        "inflight": {
-          "version": "1.0.6",
-          "bundled": true,
-          "requires": {
-            "once": "^1.3.0",
-            "wrappy": "1"
-          }
-        },
-        "inherits": {
-          "version": "2.0.3",
-          "bundled": true
-        },
-        "invert-kv": {
-          "version": "1.0.0",
-          "bundled": true
-        },
-        "is-accessor-descriptor": {
-          "version": "0.1.6",
-          "bundled": true,
-          "requires": {
-            "kind-of": "^3.0.2"
-          }
-        },
-        "is-arrayish": {
-          "version": "0.2.1",
-          "bundled": true
-        },
-        "is-buffer": {
-          "version": "1.1.6",
-          "bundled": true
-        },
-        "is-builtin-module": {
-          "version": "1.0.0",
-          "bundled": true,
-          "requires": {
-            "builtin-modules": "^1.0.0"
-          }
-        },
-        "is-data-descriptor": {
-          "version": "0.1.4",
-          "bundled": true,
-          "requires": {
-            "kind-of": "^3.0.2"
-          }
-        },
-        "is-descriptor": {
-          "version": "0.1.6",
-          "bundled": true,
-          "requires": {
-            "is-accessor-descriptor": "^0.1.6",
-            "is-data-descriptor": "^0.1.4",
-            "kind-of": "^5.0.0"
-          },
-          "dependencies": {
-            "kind-of": {
-              "version": "5.1.0",
-              "bundled": true
-            }
-          }
-        },
-        "is-extendable": {
-          "version": "0.1.1",
-          "bundled": true
-        },
-        "is-fullwidth-code-point": {
-          "version": "2.0.0",
-          "bundled": true
-        },
-        "is-number": {
-          "version": "3.0.0",
-          "bundled": true,
-          "requires": {
-            "kind-of": "^3.0.2"
-          }
-        },
-        "is-odd": {
-          "version": "2.0.0",
-          "bundled": true,
-          "requires": {
-            "is-number": "^4.0.0"
-          },
-          "dependencies": {
-            "is-number": {
-              "version": "4.0.0",
-              "bundled": true
-            }
-          }
-        },
-        "is-plain-object": {
-          "version": "2.0.4",
-          "bundled": true,
-          "requires": {
-            "isobject": "^3.0.1"
-          }
-        },
-        "is-stream": {
-          "version": "1.1.0",
-          "bundled": true
-        },
-        "is-utf8": {
-          "version": "0.2.1",
-          "bundled": true
-        },
-        "is-windows": {
-          "version": "1.0.2",
-          "bundled": true
-        },
-        "isarray": {
-          "version": "1.0.0",
-          "bundled": true
-        },
-        "isexe": {
-          "version": "2.0.0",
-          "bundled": true
-        },
-        "isobject": {
-          "version": "3.0.1",
-          "bundled": true
-        },
-        "istanbul-lib-coverage": {
-          "version": "1.2.0",
-          "bundled": true
-        },
-        "istanbul-lib-hook": {
-          "version": "1.1.0",
-          "bundled": true,
-          "requires": {
-            "append-transform": "^0.4.0"
-          }
-        },
-        "istanbul-lib-instrument": {
-          "version": "2.3.2",
-          "resolved": "https://registry.npmjs.org/istanbul-lib-instrument/-/istanbul-lib-instrument-2.3.2.tgz",
-          "integrity": "sha512-l7TD/VnBsIB2OJvSyxaLW/ab1+92dxZNH9wLH7uHPPioy3JZ8tnx2UXUdKmdkgmP2EFPzg64CToUP6dAS3U32Q==",
-          "requires": {
-            "@babel/generator": "7.0.0-beta.51",
-            "@babel/parser": "7.0.0-beta.51",
-            "@babel/template": "7.0.0-beta.51",
-            "@babel/traverse": "7.0.0-beta.51",
-            "@babel/types": "7.0.0-beta.51",
-            "istanbul-lib-coverage": "^2.0.1",
-            "semver": "^5.5.0"
-          },
-          "dependencies": {
-            "istanbul-lib-coverage": {
-              "version": "2.0.1",
-              "resolved": "https://registry.npmjs.org/istanbul-lib-coverage/-/istanbul-lib-coverage-2.0.1.tgz",
-              "integrity": "sha512-nPvSZsVlbG9aLhZYaC3Oi1gT/tpyo3Yt5fNyf6NmcKIayz4VV/txxJFFKAK/gU4dcNn8ehsanBbVHVl0+amOLA=="
-            }
-          }
-        },
-        "istanbul-lib-report": {
-          "version": "1.1.3",
-          "bundled": true,
-          "requires": {
-            "istanbul-lib-coverage": "^1.1.2",
-            "mkdirp": "^0.5.1",
-            "path-parse": "^1.0.5",
-            "supports-color": "^3.1.2"
-          },
-          "dependencies": {
-            "has-flag": {
-              "version": "1.0.0",
-              "bundled": true
-            },
-            "supports-color": {
-              "version": "3.2.3",
-              "bundled": true,
-              "requires": {
-                "has-flag": "^1.0.0"
-              }
-            }
-          }
-        },
-        "istanbul-lib-source-maps": {
-          "version": "1.2.5",
-          "bundled": true,
-          "requires": {
-            "debug": "^3.1.0",
-            "istanbul-lib-coverage": "^1.2.0",
-            "mkdirp": "^0.5.1",
-            "rimraf": "^2.6.1",
-            "source-map": "^0.5.3"
-          }
-        },
-        "istanbul-reports": {
-          "version": "1.4.1",
-          "bundled": true,
-          "requires": {
-            "handlebars": "^4.0.3"
-          }
-        },
-        "kind-of": {
-          "version": "3.2.2",
-          "bundled": true,
-          "requires": {
-            "is-buffer": "^1.1.5"
-          }
-        },
-        "lazy-cache": {
-          "version": "1.0.4",
-          "bundled": true,
-          "optional": true
-        },
-        "lcid": {
-          "version": "1.0.0",
-          "bundled": true,
-          "requires": {
-            "invert-kv": "^1.0.0"
-          }
-        },
-        "load-json-file": {
-          "version": "1.1.0",
-          "bundled": true,
-          "requires": {
-            "graceful-fs": "^4.1.2",
-            "parse-json": "^2.2.0",
-            "pify": "^2.0.0",
-            "pinkie-promise": "^2.0.0",
-            "strip-bom": "^2.0.0"
-          }
-        },
-        "locate-path": {
-          "version": "2.0.0",
-          "bundled": true,
-          "requires": {
-            "p-locate": "^2.0.0",
-            "path-exists": "^3.0.0"
-          },
-          "dependencies": {
-            "path-exists": {
-              "version": "3.0.0",
-              "bundled": true
-            }
-          }
-        },
-        "longest": {
-          "version": "1.0.1",
-          "bundled": true
-        },
-        "lru-cache": {
-          "version": "4.1.3",
-          "bundled": true,
-          "requires": {
-            "pseudomap": "^1.0.2",
-            "yallist": "^2.1.2"
-          }
-        },
-        "map-cache": {
-          "version": "0.2.2",
-          "bundled": true
-        },
-        "map-visit": {
-          "version": "1.0.0",
-          "bundled": true,
-          "requires": {
-            "object-visit": "^1.0.0"
-          }
-        },
-        "md5-hex": {
-          "version": "1.3.0",
-          "bundled": true,
-          "requires": {
-            "md5-o-matic": "^0.1.1"
-          }
-        },
-        "md5-o-matic": {
-          "version": "0.1.1",
-          "bundled": true
-        },
-        "mem": {
-          "version": "1.1.0",
-          "bundled": true,
-          "requires": {
-            "mimic-fn": "^1.0.0"
-          }
-        },
-        "merge-source-map": {
-          "version": "1.1.0",
-          "bundled": true,
-          "requires": {
-            "source-map": "^0.6.1"
-          },
-          "dependencies": {
-            "source-map": {
-              "version": "0.6.1",
-              "bundled": true
-            }
-          }
-        },
-        "micromatch": {
-          "version": "3.1.10",
-          "bundled": true,
-          "requires": {
-            "arr-diff": "^4.0.0",
-            "array-unique": "^0.3.2",
-            "braces": "^2.3.1",
-            "define-property": "^2.0.2",
-            "extend-shallow": "^3.0.2",
-            "extglob": "^2.0.4",
-            "fragment-cache": "^0.2.1",
-            "kind-of": "^6.0.2",
-            "nanomatch": "^1.2.9",
-            "object.pick": "^1.3.0",
-            "regex-not": "^1.0.0",
-            "snapdragon": "^0.8.1",
-            "to-regex": "^3.0.2"
-          },
-          "dependencies": {
-            "kind-of": {
-              "version": "6.0.2",
-              "bundled": true
-            }
-          }
-        },
-        "mimic-fn": {
-          "version": "1.2.0",
-          "bundled": true
-        },
-        "minimatch": {
-          "version": "3.0.4",
-          "bundled": true,
-          "requires": {
-            "brace-expansion": "^1.1.7"
-          }
-        },
-        "minimist": {
-          "version": "0.0.8",
-          "bundled": true
-        },
-        "mixin-deep": {
-          "version": "1.3.1",
-          "bundled": true,
-          "requires": {
-            "for-in": "^1.0.2",
-            "is-extendable": "^1.0.1"
-          },
-          "dependencies": {
-            "is-extendable": {
-              "version": "1.0.1",
-              "bundled": true,
-              "requires": {
-                "is-plain-object": "^2.0.4"
-              }
-            }
-          }
-        },
-        "mkdirp": {
-          "version": "0.5.1",
-          "bundled": true,
-          "requires": {
-            "minimist": "0.0.8"
-          }
-        },
-        "ms": {
-          "version": "2.0.0",
-          "bundled": true
-        },
-        "nanomatch": {
-          "version": "1.2.9",
-          "bundled": true,
-          "requires": {
-            "arr-diff": "^4.0.0",
-            "array-unique": "^0.3.2",
-            "define-property": "^2.0.2",
-            "extend-shallow": "^3.0.2",
-            "fragment-cache": "^0.2.1",
-            "is-odd": "^2.0.0",
-            "is-windows": "^1.0.2",
-            "kind-of": "^6.0.2",
-            "object.pick": "^1.3.0",
-            "regex-not": "^1.0.0",
-            "snapdragon": "^0.8.1",
-            "to-regex": "^3.0.1"
-          },
-          "dependencies": {
-            "kind-of": {
-              "version": "6.0.2",
-              "bundled": true
-            }
-          }
-        },
-        "normalize-package-data": {
-          "version": "2.4.0",
-          "bundled": true,
-          "requires": {
-            "hosted-git-info": "^2.1.4",
-            "is-builtin-module": "^1.0.0",
-            "semver": "2 || 3 || 4 || 5",
-            "validate-npm-package-license": "^3.0.1"
-          }
-        },
-        "npm-run-path": {
-          "version": "2.0.2",
-          "bundled": true,
-          "requires": {
-            "path-key": "^2.0.0"
-          }
-        },
-        "number-is-nan": {
-          "version": "1.0.1",
-          "bundled": true
-        },
-        "object-assign": {
-          "version": "4.1.1",
-          "bundled": true
-        },
-        "object-copy": {
-          "version": "0.1.0",
-          "bundled": true,
-          "requires": {
-            "copy-descriptor": "^0.1.0",
-            "define-property": "^0.2.5",
-            "kind-of": "^3.0.3"
-          },
-          "dependencies": {
-            "define-property": {
-              "version": "0.2.5",
-              "bundled": true,
-              "requires": {
-                "is-descriptor": "^0.1.0"
-              }
-            }
-          }
-        },
-        "object-visit": {
-          "version": "1.0.1",
-          "bundled": true,
-          "requires": {
-            "isobject": "^3.0.0"
-          }
-        },
-        "object.pick": {
-          "version": "1.3.0",
-          "bundled": true,
-          "requires": {
-            "isobject": "^3.0.1"
-          }
-        },
-        "once": {
-          "version": "1.4.0",
-          "bundled": true,
-          "requires": {
-            "wrappy": "1"
-          }
-        },
-        "optimist": {
-          "version": "0.6.1",
-          "bundled": true,
-          "requires": {
-            "minimist": "~0.0.1",
-            "wordwrap": "~0.0.2"
-          }
-        },
-        "os-homedir": {
-          "version": "1.0.2",
-          "bundled": true
-        },
-        "os-locale": {
-          "version": "2.1.0",
-          "bundled": true,
-          "requires": {
-            "execa": "^0.7.0",
-            "lcid": "^1.0.0",
-            "mem": "^1.1.0"
-          }
-        },
-        "p-finally": {
-          "version": "1.0.0",
-          "bundled": true
-        },
-        "p-limit": {
-          "version": "1.2.0",
-          "bundled": true,
-          "requires": {
-            "p-try": "^1.0.0"
-          }
-        },
-        "p-locate": {
-          "version": "2.0.0",
-          "bundled": true,
-          "requires": {
-            "p-limit": "^1.1.0"
-          }
-        },
-        "p-try": {
-          "version": "1.0.0",
-          "bundled": true
-        },
-        "parse-json": {
-          "version": "2.2.0",
-          "bundled": true,
-          "requires": {
-            "error-ex": "^1.2.0"
-          }
-        },
-        "pascalcase": {
-          "version": "0.1.1",
-          "bundled": true
-        },
-        "path-exists": {
-          "version": "2.1.0",
-          "bundled": true,
-          "requires": {
-            "pinkie-promise": "^2.0.0"
-          }
-        },
-        "path-is-absolute": {
-          "version": "1.0.1",
-          "bundled": true
-        },
-        "path-key": {
-          "version": "2.0.1",
-          "bundled": true
-        },
-        "path-parse": {
-          "version": "1.0.5",
-          "bundled": true
-        },
-        "path-type": {
-          "version": "1.1.0",
-          "bundled": true,
-          "requires": {
-            "graceful-fs": "^4.1.2",
-            "pify": "^2.0.0",
-            "pinkie-promise": "^2.0.0"
-          }
-        },
-        "pify": {
-          "version": "2.3.0",
-          "bundled": true
-        },
-        "pinkie": {
-          "version": "2.0.4",
-          "bundled": true
-        },
-        "pinkie-promise": {
-          "version": "2.0.1",
-          "bundled": true,
-          "requires": {
-            "pinkie": "^2.0.0"
-          }
-        },
-        "pkg-dir": {
-          "version": "1.0.0",
-          "bundled": true,
-          "requires": {
-            "find-up": "^1.0.0"
-          },
-          "dependencies": {
-            "find-up": {
-              "version": "1.1.2",
-              "bundled": true,
-              "requires": {
-                "path-exists": "^2.0.0",
-                "pinkie-promise": "^2.0.0"
-              }
-            }
-          }
-        },
-        "posix-character-classes": {
-          "version": "0.1.1",
-          "bundled": true
-        },
-        "pseudomap": {
-          "version": "1.0.2",
-          "bundled": true
-        },
-        "read-pkg": {
-          "version": "1.1.0",
-          "bundled": true,
-          "requires": {
-            "load-json-file": "^1.0.0",
-            "normalize-package-data": "^2.3.2",
-            "path-type": "^1.0.0"
-          }
-        },
-        "read-pkg-up": {
-          "version": "1.0.1",
-          "bundled": true,
-          "requires": {
-            "find-up": "^1.0.0",
-            "read-pkg": "^1.0.0"
-          },
-          "dependencies": {
-            "find-up": {
-              "version": "1.1.2",
-              "bundled": true,
-              "requires": {
-                "path-exists": "^2.0.0",
-                "pinkie-promise": "^2.0.0"
-              }
-            }
-          }
-        },
-        "regex-not": {
-          "version": "1.0.2",
-          "bundled": true,
-          "requires": {
-            "extend-shallow": "^3.0.2",
-            "safe-regex": "^1.1.0"
-          }
-        },
-        "repeat-element": {
-          "version": "1.1.2",
-          "bundled": true
-        },
-        "repeat-string": {
-          "version": "1.6.1",
-          "bundled": true
-        },
-        "require-directory": {
-          "version": "2.1.1",
-          "bundled": true
-        },
-        "require-main-filename": {
-          "version": "1.0.1",
-          "bundled": true
-        },
-        "resolve-from": {
-          "version": "2.0.0",
-          "bundled": true
-        },
-        "resolve-url": {
-          "version": "0.2.1",
-          "bundled": true
-        },
-        "ret": {
-          "version": "0.1.15",
-          "bundled": true
-        },
-        "right-align": {
-          "version": "0.1.3",
-          "bundled": true,
-          "optional": true,
-          "requires": {
-            "align-text": "^0.1.1"
-          }
-        },
-        "rimraf": {
-          "version": "2.6.2",
-          "bundled": true,
-          "requires": {
-            "glob": "^7.0.5"
-          }
-        },
-        "safe-regex": {
-          "version": "1.1.0",
-          "bundled": true,
-          "requires": {
-            "ret": "~0.1.10"
-          }
-        },
-        "semver": {
-          "version": "5.5.0",
-          "bundled": true
-        },
-        "set-blocking": {
-          "version": "2.0.0",
-          "bundled": true
-        },
-        "set-value": {
-          "version": "2.0.0",
-          "bundled": true,
-          "requires": {
-            "extend-shallow": "^2.0.1",
-            "is-extendable": "^0.1.1",
-            "is-plain-object": "^2.0.3",
-            "split-string": "^3.0.1"
-          },
-          "dependencies": {
-            "extend-shallow": {
-              "version": "2.0.1",
-              "bundled": true,
-              "requires": {
-                "is-extendable": "^0.1.0"
-              }
-            }
-          }
-        },
-        "shebang-command": {
-          "version": "1.2.0",
-          "bundled": true,
-          "requires": {
-            "shebang-regex": "^1.0.0"
-          }
-        },
-        "shebang-regex": {
-          "version": "1.0.0",
-          "bundled": true
-        },
-        "signal-exit": {
-          "version": "3.0.2",
-          "bundled": true
-        },
-        "slide": {
-          "version": "1.1.6",
-          "bundled": true
-        },
-        "snapdragon": {
-          "version": "0.8.2",
-          "bundled": true,
-          "requires": {
-            "base": "^0.11.1",
-            "debug": "^2.2.0",
-            "define-property": "^0.2.5",
-            "extend-shallow": "^2.0.1",
-            "map-cache": "^0.2.2",
-            "source-map": "^0.5.6",
-            "source-map-resolve": "^0.5.0",
-            "use": "^3.1.0"
-          },
-          "dependencies": {
-            "debug": {
-              "version": "2.6.9",
-              "bundled": true,
-              "requires": {
-                "ms": "2.0.0"
-              }
-            },
-            "define-property": {
-              "version": "0.2.5",
-              "bundled": true,
-              "requires": {
-                "is-descriptor": "^0.1.0"
-              }
-            },
-            "extend-shallow": {
-              "version": "2.0.1",
-              "bundled": true,
-              "requires": {
-                "is-extendable": "^0.1.0"
-              }
-            }
-          }
-        },
-        "snapdragon-node": {
-          "version": "2.1.1",
-          "bundled": true,
-          "requires": {
-            "define-property": "^1.0.0",
-            "isobject": "^3.0.0",
-            "snapdragon-util": "^3.0.1"
-          },
-          "dependencies": {
-            "define-property": {
-              "version": "1.0.0",
-              "bundled": true,
-              "requires": {
-                "is-descriptor": "^1.0.0"
-              }
-            },
-            "is-accessor-descriptor": {
-              "version": "1.0.0",
-              "bundled": true,
-              "requires": {
-                "kind-of": "^6.0.0"
-              }
-            },
-            "is-data-descriptor": {
-              "version": "1.0.0",
-              "bundled": true,
-              "requires": {
-                "kind-of": "^6.0.0"
-              }
-            },
-            "is-descriptor": {
-              "version": "1.0.2",
-              "bundled": true,
-              "requires": {
-                "is-accessor-descriptor": "^1.0.0",
-                "is-data-descriptor": "^1.0.0",
-                "kind-of": "^6.0.2"
-              }
-            },
-            "kind-of": {
-              "version": "6.0.2",
-              "bundled": true
-            }
-          }
-        },
-        "snapdragon-util": {
-          "version": "3.0.1",
-          "bundled": true,
-          "requires": {
-            "kind-of": "^3.2.0"
-          }
-        },
-        "source-map": {
-          "version": "0.5.7",
-          "bundled": true
-        },
-        "source-map-resolve": {
-          "version": "0.5.2",
-          "bundled": true,
-          "requires": {
-            "atob": "^2.1.1",
-            "decode-uri-component": "^0.2.0",
-            "resolve-url": "^0.2.1",
-            "source-map-url": "^0.4.0",
-            "urix": "^0.1.0"
-          }
-        },
-        "source-map-url": {
-          "version": "0.4.0",
-          "bundled": true
-        },
-        "spawn-wrap": {
-          "version": "1.4.2",
-          "bundled": true,
-          "requires": {
-            "foreground-child": "^1.5.6",
-            "mkdirp": "^0.5.0",
-            "os-homedir": "^1.0.1",
-            "rimraf": "^2.6.2",
-            "signal-exit": "^3.0.2",
-            "which": "^1.3.0"
-          }
-        },
-        "spdx-correct": {
-          "version": "3.0.0",
-          "bundled": true,
-          "requires": {
-            "spdx-expression-parse": "^3.0.0",
-            "spdx-license-ids": "^3.0.0"
-          }
-        },
-        "spdx-exceptions": {
-          "version": "2.1.0",
-          "bundled": true
-        },
-        "spdx-expression-parse": {
-          "version": "3.0.0",
-          "bundled": true,
-          "requires": {
-            "spdx-exceptions": "^2.1.0",
-            "spdx-license-ids": "^3.0.0"
-          }
-        },
-        "spdx-license-ids": {
-          "version": "3.0.0",
-          "bundled": true
-        },
-        "split-string": {
-          "version": "3.1.0",
-          "bundled": true,
-          "requires": {
-            "extend-shallow": "^3.0.0"
-          }
-        },
-        "static-extend": {
-          "version": "0.1.2",
-          "bundled": true,
-          "requires": {
-            "define-property": "^0.2.5",
-            "object-copy": "^0.1.0"
-          },
-          "dependencies": {
-            "define-property": {
-              "version": "0.2.5",
-              "bundled": true,
-              "requires": {
-                "is-descriptor": "^0.1.0"
-              }
-            }
-          }
-        },
-        "string-width": {
-          "version": "2.1.1",
-          "bundled": true,
-          "requires": {
-            "is-fullwidth-code-point": "^2.0.0",
-            "strip-ansi": "^4.0.0"
-          }
-        },
-        "strip-ansi": {
-          "version": "4.0.0",
-          "bundled": true,
-          "requires": {
-            "ansi-regex": "^3.0.0"
-          }
-        },
-        "strip-bom": {
-          "version": "2.0.0",
-          "bundled": true,
-          "requires": {
-            "is-utf8": "^0.2.0"
-          }
-        },
-        "strip-eof": {
-          "version": "1.0.0",
-          "bundled": true
-        },
-        "test-exclude": {
-          "version": "4.2.1",
-          "bundled": true,
-          "requires": {
-            "arrify": "^1.0.1",
-            "micromatch": "^3.1.8",
-            "object-assign": "^4.1.0",
-            "read-pkg-up": "^1.0.1",
-            "require-main-filename": "^1.0.1"
-          }
-        },
-        "to-object-path": {
-          "version": "0.3.0",
-          "bundled": true,
-          "requires": {
-            "kind-of": "^3.0.2"
-          }
-        },
-        "to-regex": {
-          "version": "3.0.2",
-          "bundled": true,
-          "requires": {
-            "define-property": "^2.0.2",
-            "extend-shallow": "^3.0.2",
-            "regex-not": "^1.0.2",
-            "safe-regex": "^1.1.0"
-          }
-        },
-        "to-regex-range": {
-          "version": "2.1.1",
-          "bundled": true,
-          "requires": {
-            "is-number": "^3.0.0",
-            "repeat-string": "^1.6.1"
-          }
-        },
-        "uglify-js": {
-          "version": "2.8.29",
-          "bundled": true,
-          "optional": true,
-          "requires": {
-            "source-map": "~0.5.1",
-            "uglify-to-browserify": "~1.0.0",
-            "yargs": "~3.10.0"
-          },
-          "dependencies": {
-            "yargs": {
-              "version": "3.10.0",
-              "bundled": true,
-              "optional": true,
-              "requires": {
-                "camelcase": "^1.0.2",
-                "cliui": "^2.1.0",
-                "decamelize": "^1.0.0",
-                "window-size": "0.1.0"
-              }
-            }
-          }
-        },
-        "uglify-to-browserify": {
-          "version": "1.0.2",
-          "bundled": true,
-          "optional": true
-        },
-        "union-value": {
-          "version": "1.0.0",
-          "bundled": true,
-          "requires": {
-            "arr-union": "^3.1.0",
-            "get-value": "^2.0.6",
-            "is-extendable": "^0.1.1",
-            "set-value": "^0.4.3"
-          },
-          "dependencies": {
-            "extend-shallow": {
-              "version": "2.0.1",
-              "bundled": true,
-              "requires": {
-                "is-extendable": "^0.1.0"
-              }
-            },
-            "set-value": {
-              "version": "0.4.3",
-              "bundled": true,
-              "requires": {
-                "extend-shallow": "^2.0.1",
-                "is-extendable": "^0.1.1",
-                "is-plain-object": "^2.0.1",
-                "to-object-path": "^0.3.0"
-              }
-            }
-          }
-        },
-        "unset-value": {
-          "version": "1.0.0",
-          "bundled": true,
-          "requires": {
-            "has-value": "^0.3.1",
-            "isobject": "^3.0.0"
-          },
-          "dependencies": {
-            "has-value": {
-              "version": "0.3.1",
-              "bundled": true,
-              "requires": {
-                "get-value": "^2.0.3",
-                "has-values": "^0.1.4",
-                "isobject": "^2.0.0"
-              },
-              "dependencies": {
-                "isobject": {
-                  "version": "2.1.0",
-                  "bundled": true,
-                  "requires": {
-                    "isarray": "1.0.0"
-                  }
-                }
-              }
-            },
-            "has-values": {
-              "version": "0.1.4",
-              "bundled": true
-            }
-          }
-        },
-        "urix": {
-          "version": "0.1.0",
-          "bundled": true
-        },
-        "use": {
-          "version": "3.1.0",
-          "bundled": true,
-          "requires": {
-            "kind-of": "^6.0.2"
-          },
-          "dependencies": {
-            "kind-of": {
-              "version": "6.0.2",
-              "bundled": true
-            }
-          }
-        },
-        "validate-npm-package-license": {
-          "version": "3.0.3",
-          "bundled": true,
-          "requires": {
-            "spdx-correct": "^3.0.0",
-            "spdx-expression-parse": "^3.0.0"
-          }
-        },
-        "which": {
-          "version": "1.3.1",
-          "bundled": true,
-          "requires": {
-            "isexe": "^2.0.0"
-          }
-        },
-        "which-module": {
-          "version": "2.0.0",
-          "bundled": true
-        },
-        "window-size": {
-          "version": "0.1.0",
-          "bundled": true,
-          "optional": true
-        },
-        "wordwrap": {
-          "version": "0.0.3",
-          "bundled": true
-        },
-        "wrap-ansi": {
-          "version": "2.1.0",
-          "bundled": true,
-          "requires": {
-            "string-width": "^1.0.1",
-            "strip-ansi": "^3.0.1"
-          },
-          "dependencies": {
-            "ansi-regex": {
-              "version": "2.1.1",
-              "bundled": true
-            },
-            "is-fullwidth-code-point": {
-              "version": "1.0.0",
-              "bundled": true,
-              "requires": {
-                "number-is-nan": "^1.0.0"
-              }
-            },
-            "string-width": {
-              "version": "1.0.2",
-              "bundled": true,
-              "requires": {
-                "code-point-at": "^1.0.0",
-                "is-fullwidth-code-point": "^1.0.0",
-                "strip-ansi": "^3.0.0"
-              }
-            },
-            "strip-ansi": {
-              "version": "3.0.1",
-              "bundled": true,
-              "requires": {
-                "ansi-regex": "^2.0.0"
-              }
-            }
-          }
-        },
-        "wrappy": {
-          "version": "1.0.2",
-          "bundled": true
-        },
-        "write-file-atomic": {
-          "version": "1.3.4",
-          "bundled": true,
-          "requires": {
-            "graceful-fs": "^4.1.11",
-            "imurmurhash": "^0.1.4",
-            "slide": "^1.1.5"
-          }
-        },
-        "y18n": {
-          "version": "3.2.1",
-          "bundled": true
-        },
-        "yallist": {
-          "version": "2.1.2",
-          "bundled": true
-        },
-        "yargs": {
-          "version": "11.1.0",
-          "bundled": true,
-          "requires": {
-            "cliui": "^4.0.0",
-            "decamelize": "^1.1.1",
-            "find-up": "^2.1.0",
-            "get-caller-file": "^1.0.1",
-            "os-locale": "^2.0.0",
-            "require-directory": "^2.1.1",
-            "require-main-filename": "^1.0.1",
-            "set-blocking": "^2.0.0",
-            "string-width": "^2.0.0",
-            "which-module": "^2.0.0",
-            "y18n": "^3.2.1",
-            "yargs-parser": "^9.0.2"
-          },
-          "dependencies": {
-            "camelcase": {
-              "version": "4.1.0",
-              "bundled": true
-            },
-            "cliui": {
-              "version": "4.1.0",
-              "bundled": true,
-              "requires": {
-                "string-width": "^2.1.1",
-                "strip-ansi": "^4.0.0",
-                "wrap-ansi": "^2.0.0"
-              }
-            },
-            "yargs-parser": {
-              "version": "9.0.2",
-              "bundled": true,
-              "requires": {
-                "camelcase": "^4.1.0"
-              }
-            }
-          }
-        },
-        "yargs-parser": {
-          "version": "8.1.0",
-          "bundled": true,
-          "requires": {
-            "camelcase": "^4.1.0"
-          },
-          "dependencies": {
-            "camelcase": {
-              "version": "4.1.0",
-              "bundled": true
-            }
-          }
-        }
-      }
-    },
-    "oauth-sign": {
-      "version": "0.8.2",
-      "resolved": "https://registry.npmjs.org/oauth-sign/-/oauth-sign-0.8.2.tgz",
-      "integrity": "sha1-Rqarfwrq2N6unsBWV4C31O/rnUM="
-    },
-    "object-assign": {
-      "version": "4.1.1",
-      "resolved": "https://registry.npmjs.org/object-assign/-/object-assign-4.1.1.tgz",
-      "integrity": "sha1-IQmtx5ZYh8/AXLvUQsrIv7s2CGM="
-    },
-    "object-copy": {
-      "version": "0.1.0",
-      "resolved": "https://registry.npmjs.org/object-copy/-/object-copy-0.1.0.tgz",
-      "integrity": "sha1-fn2Fi3gb18mRpBupde04EnVOmYw=",
-      "dev": true,
-      "requires": {
-        "copy-descriptor": "^0.1.0",
-        "define-property": "^0.2.5",
-        "kind-of": "^3.0.3"
-      },
-      "dependencies": {
-        "define-property": {
-          "version": "0.2.5",
-          "resolved": "https://registry.npmjs.org/define-property/-/define-property-0.2.5.tgz",
-          "integrity": "sha1-w1se+RjsPJkPmlvFe+BKrOxcgRY=",
-          "dev": true,
-          "requires": {
-            "is-descriptor": "^0.1.0"
-          }
-        },
-        "is-accessor-descriptor": {
-          "version": "0.1.6",
-          "resolved": "https://registry.npmjs.org/is-accessor-descriptor/-/is-accessor-descriptor-0.1.6.tgz",
-          "integrity": "sha1-qeEss66Nh2cn7u84Q/igiXtcmNY=",
-          "dev": true,
-          "requires": {
-            "kind-of": "^3.0.2"
-          }
-        },
-        "is-data-descriptor": {
-          "version": "0.1.4",
-          "resolved": "https://registry.npmjs.org/is-data-descriptor/-/is-data-descriptor-0.1.4.tgz",
-          "integrity": "sha1-C17mSDiOLIYCgueT8YVv7D8wG1Y=",
-          "dev": true,
-          "requires": {
-            "kind-of": "^3.0.2"
-          }
-        },
-        "is-descriptor": {
-          "version": "0.1.6",
-          "resolved": "https://registry.npmjs.org/is-descriptor/-/is-descriptor-0.1.6.tgz",
-          "integrity": "sha512-avDYr0SB3DwO9zsMov0gKCESFYqCnE4hq/4z3TdUlukEy5t9C0YRq7HLrsN52NAcqXKaepeCD0n+B0arnVG3Hg==",
-          "dev": true,
-          "requires": {
-            "is-accessor-descriptor": "^0.1.6",
-            "is-data-descriptor": "^0.1.4",
-            "kind-of": "^5.0.0"
-          },
-          "dependencies": {
-            "kind-of": {
-              "version": "5.1.0",
-              "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-5.1.0.tgz",
-              "integrity": "sha512-NGEErnH6F2vUuXDh+OlbcKW7/wOcfdRHaZ7VWtqCztfHri/++YKmP51OdWeGPuqCOba6kk2OTe5d02VmTB80Pw==",
-              "dev": true
-            }
-          }
-        }
-      }
-    },
-    "object-keys": {
-      "version": "1.1.0",
-      "resolved": "https://registry.npmjs.org/object-keys/-/object-keys-1.1.0.tgz",
-      "integrity": "sha512-6OO5X1+2tYkNyNEx6TsCxEqFfRWaqx6EtMiSbGrw8Ob8v9Ne+Hl8rBAgLBZn5wjEz3s/s6U1WXFUFOcxxAwUpg==",
-      "dev": true
-    },
-    "object-visit": {
-      "version": "1.0.1",
-      "resolved": "https://registry.npmjs.org/object-visit/-/object-visit-1.0.1.tgz",
-      "integrity": "sha1-95xEk68MU3e1n+OdOV5BBC3QRbs=",
-      "dev": true,
-      "requires": {
-        "isobject": "^3.0.0"
-      },
-      "dependencies": {
-        "isobject": {
-          "version": "3.0.1",
-          "resolved": "https://registry.npmjs.org/isobject/-/isobject-3.0.1.tgz",
-          "integrity": "sha1-TkMekrEalzFjaqH5yNHMvP2reN8=",
-          "dev": true
-        }
-      }
-    },
-    "object.getownpropertydescriptors": {
-      "version": "2.0.3",
-      "resolved": "https://registry.npmjs.org/object.getownpropertydescriptors/-/object.getownpropertydescriptors-2.0.3.tgz",
-      "integrity": "sha1-h1jIRvW0B62rDyNuCYbxSwUcqhY=",
-      "dev": true,
-      "requires": {
-        "define-properties": "^1.1.2",
-        "es-abstract": "^1.5.1"
-      }
-    },
-    "object.omit": {
-      "version": "2.0.1",
-      "resolved": "https://registry.npmjs.org/object.omit/-/object.omit-2.0.1.tgz",
-      "integrity": "sha1-Gpx0SCnznbuFjHbKNXmuKlTr0fo=",
-      "dev": true,
-      "requires": {
-        "for-own": "^0.1.4",
-        "is-extendable": "^0.1.1"
-      }
-    },
-    "object.pick": {
-      "version": "1.3.0",
-      "resolved": "https://registry.npmjs.org/object.pick/-/object.pick-1.3.0.tgz",
-      "integrity": "sha1-h6EKxMFpS9Lhy/U1kaZhQftd10c=",
-      "dev": true,
-      "requires": {
-        "isobject": "^3.0.1"
-      },
-      "dependencies": {
-        "isobject": {
-          "version": "3.0.1",
-          "resolved": "https://registry.npmjs.org/isobject/-/isobject-3.0.1.tgz",
-          "integrity": "sha1-TkMekrEalzFjaqH5yNHMvP2reN8=",
-          "dev": true
-        }
-      }
-    },
-    "obuf": {
-      "version": "1.1.2",
-      "resolved": "https://registry.npmjs.org/obuf/-/obuf-1.1.2.tgz",
-      "integrity": "sha512-PX1wu0AmAdPqOL1mWhqmlOd8kOIZQwGZw6rh7uby9fTc5lhaOWFLX3I6R1hrF9k3zUY40e6igsLGkDXK92LJNg==",
-      "dev": true
-    },
-    "on-finished": {
-      "version": "2.3.0",
-      "resolved": "https://registry.npmjs.org/on-finished/-/on-finished-2.3.0.tgz",
-      "integrity": "sha1-IPEzZIGwg811M3mSoWlxqi2QaUc=",
-      "dev": true,
-      "requires": {
-        "ee-first": "1.1.1"
-      }
-    },
-    "on-headers": {
-      "version": "1.0.1",
-      "resolved": "https://registry.npmjs.org/on-headers/-/on-headers-1.0.1.tgz",
-      "integrity": "sha1-ko9dD0cNSTQmUepnlLCFfBAGk/c=",
-      "dev": true
-    },
-    "onap-ui-angular": {
-      "version": "5.1.71",
-      "resolved": "https://registry.npmjs.org/onap-ui-angular/-/onap-ui-angular-5.1.71.tgz",
-      "integrity": "sha512-CMIJKE2Kx4Y85/DXG7svbUymGjXXJ2qKiInXuXTs1MrDTpKur9ksx/l1I8/AAFx5rOuXFEHM6uSAChXjR0OPQQ==",
-      "dev": true,
-      "requires": {
-        "angular-base64-upload": "^0.1.23",
-        "core-js": "^2.5.7",
-        "onap-ui-common": "^1.0.86",
-        "rxjs-compat": "^6.2.0"
-      }
-    },
-    "onap-ui-common": {
-      "version": "1.0.86",
-      "resolved": "https://registry.npmjs.org/onap-ui-common/-/onap-ui-common-1.0.86.tgz",
-      "integrity": "sha512-27Mvn67/3LdpEUN9ihCrdNmmLWgEChWd5mtPGIS9N2Rcuhoy5naA4Fncut1NkLyFJJJ5B/HAg8+7AHIY1OqXdQ==",
-      "dev": true
-    },
-    "once": {
-      "version": "1.4.0",
-      "resolved": "https://registry.npmjs.org/once/-/once-1.4.0.tgz",
-      "integrity": "sha1-WDsap3WWHUsROsF9nFC6753Xa9E=",
-      "requires": {
-        "wrappy": "1"
-      }
-    },
-    "onetime": {
-      "version": "2.0.1",
-      "resolved": "https://registry.npmjs.org/onetime/-/onetime-2.0.1.tgz",
-      "integrity": "sha1-BnQoIw/WdEOyeUsiu6UotoZ5YtQ=",
-      "dev": true,
-      "requires": {
-        "mimic-fn": "^1.0.0"
-      }
-    },
-    "opn": {
-      "version": "5.3.0",
-      "resolved": "http://registry.npmjs.org/opn/-/opn-5.3.0.tgz",
-      "integrity": "sha512-bYJHo/LOmoTd+pfiYhfZDnf9zekVJrY+cnS2a5F2x+w5ppvTqObojTP7WiFG+kVZs9Inw+qQ/lw7TroWwhdd2g==",
-      "dev": true,
-      "requires": {
-        "is-wsl": "^1.1.0"
-      }
-    },
-    "optimist": {
-      "version": "0.6.1",
-      "resolved": "https://registry.npmjs.org/optimist/-/optimist-0.6.1.tgz",
-      "integrity": "sha1-2j6nRob6IaGaERwybpDrFaAZZoY=",
-      "dev": true,
-      "requires": {
-        "minimist": "~0.0.1",
-        "wordwrap": "~0.0.2"
-      }
-    },
-    "optionator": {
-      "version": "0.8.2",
-      "resolved": "https://registry.npmjs.org/optionator/-/optionator-0.8.2.tgz",
-      "integrity": "sha1-NkxeQJ0/TWMB1sC0wFu6UBgK62Q=",
-      "requires": {
-        "deep-is": "~0.1.3",
-        "fast-levenshtein": "~2.0.4",
-        "levn": "~0.3.0",
-        "prelude-ls": "~1.1.2",
-        "type-check": "~0.3.2",
-        "wordwrap": "~1.0.0"
-      },
-      "dependencies": {
-        "wordwrap": {
-          "version": "1.0.0",
-          "resolved": "https://registry.npmjs.org/wordwrap/-/wordwrap-1.0.0.tgz",
-          "integrity": "sha1-J1hIEIkUVqQXHI0CJkQa3pDLyus="
-        }
-      }
-    },
-    "ora": {
-      "version": "0.2.3",
-      "resolved": "https://registry.npmjs.org/ora/-/ora-0.2.3.tgz",
-      "integrity": "sha1-N1J9Igrc1Tw5tzVx11QVbV22V6Q=",
-      "dev": true,
-      "requires": {
-        "chalk": "^1.1.1",
-        "cli-cursor": "^1.0.2",
-        "cli-spinners": "^0.1.2",
-        "object-assign": "^4.0.1"
-      },
-      "dependencies": {
-        "ansi-styles": {
-          "version": "2.2.1",
-          "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-2.2.1.tgz",
-          "integrity": "sha1-tDLdM1i2NM914eRmQ2gkBTPB3b4=",
-          "dev": true
-        },
-        "chalk": {
-          "version": "1.1.3",
-          "resolved": "https://registry.npmjs.org/chalk/-/chalk-1.1.3.tgz",
-          "integrity": "sha1-qBFcVeSnAv5NFQq9OHKCKn4J/Jg=",
-          "dev": true,
-          "requires": {
-            "ansi-styles": "^2.2.1",
-            "escape-string-regexp": "^1.0.2",
-            "has-ansi": "^2.0.0",
-            "strip-ansi": "^3.0.0",
-            "supports-color": "^2.0.0"
-          }
-        },
-        "cli-cursor": {
-          "version": "1.0.2",
-          "resolved": "https://registry.npmjs.org/cli-cursor/-/cli-cursor-1.0.2.tgz",
-          "integrity": "sha1-ZNo/fValRBLll5S9Ytw1KV6PKYc=",
-          "dev": true,
-          "requires": {
-            "restore-cursor": "^1.0.1"
-          }
-        },
-        "onetime": {
-          "version": "1.1.0",
-          "resolved": "https://registry.npmjs.org/onetime/-/onetime-1.1.0.tgz",
-          "integrity": "sha1-ofeDj4MUxRbwXs78vEzP4EtO14k=",
-          "dev": true
-        },
-        "restore-cursor": {
-          "version": "1.0.1",
-          "resolved": "https://registry.npmjs.org/restore-cursor/-/restore-cursor-1.0.1.tgz",
-          "integrity": "sha1-NGYfRohjJ/7SmRR5FSJS35LapUE=",
-          "dev": true,
-          "requires": {
-            "exit-hook": "^1.0.0",
-            "onetime": "^1.0.0"
-          }
-        },
-        "supports-color": {
-          "version": "2.0.0",
-          "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-2.0.0.tgz",
-          "integrity": "sha1-U10EXOa2Nj+kARcIRimZXp3zJMc=",
-          "dev": true
-        }
-      }
-    },
-    "original": {
-      "version": "1.0.2",
-      "resolved": "https://registry.npmjs.org/original/-/original-1.0.2.tgz",
-      "integrity": "sha512-hyBVl6iqqUOJ8FqRe+l/gS8H+kKYjrEndd5Pm1MfBtsEKA038HkkdbAl/72EAXGyonD/PFsvmVG+EvcIpliMBg==",
-      "dev": true,
-      "requires": {
-        "url-parse": "^1.4.3"
-      }
-    },
-    "os-browserify": {
-      "version": "0.3.0",
-      "resolved": "https://registry.npmjs.org/os-browserify/-/os-browserify-0.3.0.tgz",
-      "integrity": "sha1-hUNzx/XCMVkU/Jv8a9gjj92h7Cc=",
-      "dev": true
-    },
-    "os-homedir": {
-      "version": "1.0.2",
-      "resolved": "https://registry.npmjs.org/os-homedir/-/os-homedir-1.0.2.tgz",
-      "integrity": "sha1-/7xJiDNuDoM94MFox+8VISGqf7M=",
-      "dev": true
-    },
-    "os-locale": {
-      "version": "1.4.0",
-      "resolved": "https://registry.npmjs.org/os-locale/-/os-locale-1.4.0.tgz",
-      "integrity": "sha1-IPnxeuKe00XoveWDsT0gCYA8FNk=",
-      "dev": true,
-      "optional": true,
-      "requires": {
-        "lcid": "^1.0.0"
-      }
-    },
-    "os-tmpdir": {
-      "version": "1.0.2",
-      "resolved": "https://registry.npmjs.org/os-tmpdir/-/os-tmpdir-1.0.2.tgz",
-      "integrity": "sha1-u+Z0BseaqFxc/sdm/lc0VV36EnQ=",
-      "dev": true
-    },
-    "osenv": {
-      "version": "0.1.5",
-      "resolved": "https://registry.npmjs.org/osenv/-/osenv-0.1.5.tgz",
-      "integrity": "sha512-0CWcCECdMVc2Rw3U5w9ZjqX6ga6ubk1xDVKxtBQPK7wis/0F2r9T6k4ydGYhecl7YUBxBVxhL5oisPsNxAPe2g==",
-      "dev": true,
-      "requires": {
-        "os-homedir": "^1.0.0",
-        "os-tmpdir": "^1.0.0"
-      }
-    },
-    "p-defer": {
-      "version": "1.0.0",
-      "resolved": "https://registry.npmjs.org/p-defer/-/p-defer-1.0.0.tgz",
-      "integrity": "sha1-n26xgvbJqozXQwBKfU+WsZaw+ww=",
-      "dev": true
-    },
-    "p-each-series": {
-      "version": "1.0.0",
-      "resolved": "https://registry.npmjs.org/p-each-series/-/p-each-series-1.0.0.tgz",
-      "integrity": "sha1-kw89Et0fUOdDRFeiLNbwSsatf3E=",
-      "dev": true,
-      "requires": {
-        "p-reduce": "^1.0.0"
-      }
-    },
-    "p-finally": {
-      "version": "1.0.0",
-      "resolved": "https://registry.npmjs.org/p-finally/-/p-finally-1.0.0.tgz",
-      "integrity": "sha1-P7z7FbiZpEEjs0ttzBi3JDNqLK4=",
-      "dev": true
-    },
-    "p-is-promise": {
-      "version": "1.1.0",
-      "resolved": "http://registry.npmjs.org/p-is-promise/-/p-is-promise-1.1.0.tgz",
-      "integrity": "sha1-nJRWmJ6fZYgBewQ01WCXZ1w9oF4=",
-      "dev": true
-    },
-    "p-limit": {
-      "version": "1.2.0",
-      "resolved": "https://registry.npmjs.org/p-limit/-/p-limit-1.2.0.tgz",
-      "integrity": "sha512-Y/OtIaXtUPr4/YpMv1pCL5L5ed0rumAaAeBSj12F+bSlMdys7i8oQF/GUJmfpTS/QoaRrS/k6pma29haJpsMng==",
-      "dev": true,
-      "requires": {
-        "p-try": "^1.0.0"
-      }
-    },
-    "p-locate": {
-      "version": "2.0.0",
-      "resolved": "https://registry.npmjs.org/p-locate/-/p-locate-2.0.0.tgz",
-      "integrity": "sha1-IKAQOyIqcMj9OcwuWAaA893l7EM=",
-      "dev": true,
-      "requires": {
-        "p-limit": "^1.1.0"
-      }
-    },
-    "p-map": {
-      "version": "1.2.0",
-      "resolved": "https://registry.npmjs.org/p-map/-/p-map-1.2.0.tgz",
-      "integrity": "sha512-r6zKACMNhjPJMTl8KcFH4li//gkrXWfbD6feV8l6doRHlzljFWGJ2AP6iKaCJXyZmAUMOPtvbW7EXkbWO/pLEA==",
-      "dev": true
-    },
-    "p-reduce": {
-      "version": "1.0.0",
-      "resolved": "https://registry.npmjs.org/p-reduce/-/p-reduce-1.0.0.tgz",
-      "integrity": "sha1-GMKw3ZNqRpClKfgjH1ig/bakffo=",
-      "dev": true
-    },
-    "p-try": {
-      "version": "1.0.0",
-      "resolved": "https://registry.npmjs.org/p-try/-/p-try-1.0.0.tgz",
-      "integrity": "sha1-y8ec26+P1CKOE/Yh8rGiN8GyB7M=",
-      "dev": true
-    },
-    "pacote": {
-      "version": "9.1.1",
-      "resolved": "https://registry.npmjs.org/pacote/-/pacote-9.1.1.tgz",
-      "integrity": "sha512-f28Rq5ozzKAA9YwIKw61/ipwAatUZseYmVssDbHHaexF0wRIVotapVEZPAjOT7Eu3LYVqEp0NVpNizoAnYBUaA==",
-      "dev": true,
-      "requires": {
-        "bluebird": "^3.5.2",
-        "cacache": "^11.2.0",
-        "figgy-pudding": "^3.5.1",
-        "get-stream": "^4.1.0",
-        "glob": "^7.1.3",
-        "lru-cache": "^4.1.3",
-        "make-fetch-happen": "^4.0.1",
-        "minimatch": "^3.0.4",
-        "minipass": "^2.3.5",
-        "mississippi": "^3.0.0",
-        "mkdirp": "^0.5.1",
-        "normalize-package-data": "^2.4.0",
-        "npm-package-arg": "^6.1.0",
-        "npm-packlist": "^1.1.12",
-        "npm-pick-manifest": "^2.1.0",
-        "npm-registry-fetch": "^3.8.0",
-        "osenv": "^0.1.5",
-        "promise-inflight": "^1.0.1",
-        "promise-retry": "^1.1.1",
-        "protoduck": "^5.0.1",
-        "rimraf": "^2.6.2",
-        "safe-buffer": "^5.1.2",
-        "semver": "^5.6.0",
-        "ssri": "^6.0.1",
-        "tar": "^4.4.6",
-        "unique-filename": "^1.1.1",
-        "which": "^1.3.1"
-      },
-      "dependencies": {
-        "cacache": {
-          "version": "11.3.2",
-          "resolved": "https://registry.npmjs.org/cacache/-/cacache-11.3.2.tgz",
-          "integrity": "sha512-E0zP4EPGDOaT2chM08Als91eYnf8Z+eH1awwwVsngUmgppfM5jjJ8l3z5vO5p5w/I3LsiXawb1sW0VY65pQABg==",
-          "dev": true,
-          "requires": {
-            "bluebird": "^3.5.3",
-            "chownr": "^1.1.1",
-            "figgy-pudding": "^3.5.1",
-            "glob": "^7.1.3",
-            "graceful-fs": "^4.1.15",
-            "lru-cache": "^5.1.1",
-            "mississippi": "^3.0.0",
-            "mkdirp": "^0.5.1",
-            "move-concurrently": "^1.0.1",
-            "promise-inflight": "^1.0.1",
-            "rimraf": "^2.6.2",
-            "ssri": "^6.0.1",
-            "unique-filename": "^1.1.1",
-            "y18n": "^4.0.0"
-          },
-          "dependencies": {
-            "lru-cache": {
-              "version": "5.1.1",
-              "resolved": "https://registry.npmjs.org/lru-cache/-/lru-cache-5.1.1.tgz",
-              "integrity": "sha512-KpNARQA3Iwv+jTA0utUVVbrh+Jlrr1Fv0e56GGzAFOXN7dk/FviaDW8LHmK52DlcH4WP2n6gI8vN1aesBFgo9w==",
-              "dev": true,
-              "requires": {
-                "yallist": "^3.0.2"
-              }
-            }
-          }
-        },
-        "get-stream": {
-          "version": "4.1.0",
-          "resolved": "https://registry.npmjs.org/get-stream/-/get-stream-4.1.0.tgz",
-          "integrity": "sha512-GMat4EJ5161kIy2HevLlr4luNjBgvmj413KaQA7jt4V8B4RDsfpHk7WQ9GVqfYyyx8OS/L66Kox+rJRNklLK7w==",
-          "dev": true,
-          "requires": {
-            "pump": "^3.0.0"
-          }
-        },
-        "glob": {
-          "version": "7.1.3",
-          "resolved": "https://registry.npmjs.org/glob/-/glob-7.1.3.tgz",
-          "integrity": "sha512-vcfuiIxogLV4DlGBHIUOwI0IbrJ8HWPc4MU7HzviGeNho/UJDfi6B5p3sHeWIQ0KGIU0Jpxi5ZHxemQfLkkAwQ==",
-          "dev": true,
-          "requires": {
-            "fs.realpath": "^1.0.0",
-            "inflight": "^1.0.4",
-            "inherits": "2",
-            "minimatch": "^3.0.4",
-            "once": "^1.3.0",
-            "path-is-absolute": "^1.0.0"
-          }
-        },
-        "graceful-fs": {
-          "version": "4.1.15",
-          "resolved": "https://registry.npmjs.org/graceful-fs/-/graceful-fs-4.1.15.tgz",
-          "integrity": "sha512-6uHUhOPEBgQ24HM+r6b/QwWfZq+yiFcipKFrOFiBEnWdy5sdzYoi+pJeQaPI5qOLRFqWmAXUPQNsielzdLoecA==",
-          "dev": true
-        },
-        "lru-cache": {
-          "version": "4.1.5",
-          "resolved": "https://registry.npmjs.org/lru-cache/-/lru-cache-4.1.5.tgz",
-          "integrity": "sha512-sWZlbEP2OsHNkXrMl5GYk/jKk70MBng6UU4YI/qGDYbgf6YbP4EvmqISbXCoJiRKs+1bSpFHVgQxvJ17F2li5g==",
-          "dev": true,
-          "requires": {
-            "pseudomap": "^1.0.2",
-            "yallist": "^2.1.2"
-          },
-          "dependencies": {
-            "yallist": {
-              "version": "2.1.2",
-              "resolved": "https://registry.npmjs.org/yallist/-/yallist-2.1.2.tgz",
-              "integrity": "sha1-HBH5IY8HYImkfdUS+TxmmaaoHVI=",
-              "dev": true
-            }
-          }
-        },
-        "mississippi": {
-          "version": "3.0.0",
-          "resolved": "https://registry.npmjs.org/mississippi/-/mississippi-3.0.0.tgz",
-          "integrity": "sha512-x471SsVjUtBRtcvd4BzKE9kFC+/2TeWgKCgw0bZcw1b9l2X3QX5vCWgF+KaZaYm87Ss//rHnWryupDrgLvmSkA==",
-          "dev": true,
-          "requires": {
-            "concat-stream": "^1.5.0",
-            "duplexify": "^3.4.2",
-            "end-of-stream": "^1.1.0",
-            "flush-write-stream": "^1.0.0",
-            "from2": "^2.1.0",
-            "parallel-transform": "^1.1.0",
-            "pump": "^3.0.0",
-            "pumpify": "^1.3.3",
-            "stream-each": "^1.1.0",
-            "through2": "^2.0.0"
-          }
-        },
-        "pump": {
-          "version": "3.0.0",
-          "resolved": "https://registry.npmjs.org/pump/-/pump-3.0.0.tgz",
-          "integrity": "sha512-LwZy+p3SFs1Pytd/jYct4wpv49HiYCqd9Rlc5ZVdk0V+8Yzv6jR5Blk3TRmPL1ft69TxP0IMZGJ+WPFU2BFhww==",
-          "dev": true,
-          "requires": {
-            "end-of-stream": "^1.1.0",
-            "once": "^1.3.1"
-          }
-        },
-        "safe-buffer": {
-          "version": "5.1.2",
-          "resolved": "https://registry.npmjs.org/safe-buffer/-/safe-buffer-5.1.2.tgz",
-          "integrity": "sha512-Gd2UZBJDkXlY7GbJxfsE8/nvKkUEU1G38c1siN6QP6a9PT9MmHB8GnpscSmMJSoF8LOIrt8ud/wPtojys4G6+g==",
-          "dev": true
-        },
-        "semver": {
-          "version": "5.6.0",
-          "resolved": "https://registry.npmjs.org/semver/-/semver-5.6.0.tgz",
-          "integrity": "sha512-RS9R6R35NYgQn++fkDWaOmqGoj4Ek9gGs+DPxNUZKuwE183xjJroKvyo1IzVFeXvUrvmALy6FWD5xrdJT25gMg==",
-          "dev": true
-        },
-        "ssri": {
-          "version": "6.0.1",
-          "resolved": "https://registry.npmjs.org/ssri/-/ssri-6.0.1.tgz",
-          "integrity": "sha512-3Wge10hNcT1Kur4PDFwEieXSCMCJs/7WvSACcrMYrNp+b8kDL1/0wJch5Ni2WrtwEa2IO8OsVfeKIciKCDx/QA==",
-          "dev": true,
-          "requires": {
-            "figgy-pudding": "^3.5.1"
-          }
-        },
-        "tar": {
-          "version": "4.4.8",
-          "resolved": "https://registry.npmjs.org/tar/-/tar-4.4.8.tgz",
-          "integrity": "sha512-LzHF64s5chPQQS0IYBn9IN5h3i98c12bo4NCO7e0sGM2llXQ3p2FGC5sdENN4cTW48O915Sh+x+EXx7XW96xYQ==",
-          "dev": true,
-          "requires": {
-            "chownr": "^1.1.1",
-            "fs-minipass": "^1.2.5",
-            "minipass": "^2.3.4",
-            "minizlib": "^1.1.1",
-            "mkdirp": "^0.5.0",
-            "safe-buffer": "^5.1.2",
-            "yallist": "^3.0.2"
-          }
-        },
-        "which": {
-          "version": "1.3.1",
-          "resolved": "https://registry.npmjs.org/which/-/which-1.3.1.tgz",
-          "integrity": "sha512-HxJdYWq1MTIQbJ3nw0cqssHoTNU267KlrDuGZ1WYlxDStUtKUhOaJmh112/TZmHxxUfuJqPXSOm7tDyas0OSIQ==",
-          "dev": true,
-          "requires": {
-            "isexe": "^2.0.0"
-          }
-        },
-        "yallist": {
-          "version": "3.0.3",
-          "resolved": "https://registry.npmjs.org/yallist/-/yallist-3.0.3.tgz",
-          "integrity": "sha512-S+Zk8DEWE6oKpV+vI3qWkaK+jSbIK86pCwe2IF/xwIpQ8jEuxpw9NyaGjmp9+BoJv5FV2piqCDcoCtStppiq2A==",
-          "dev": true
-        }
-      }
-    },
-    "pako": {
-      "version": "1.0.6",
-      "resolved": "https://registry.npmjs.org/pako/-/pako-1.0.6.tgz",
-      "integrity": "sha512-lQe48YPsMJAig+yngZ87Lus+NF+3mtu7DVOBu6b/gHO1YpKwIj5AWjZ/TOS7i46HD/UixzWb1zeWDZfGZ3iYcg==",
-      "dev": true
-    },
-    "parallel-transform": {
-      "version": "1.1.0",
-      "resolved": "https://registry.npmjs.org/parallel-transform/-/parallel-transform-1.1.0.tgz",
-      "integrity": "sha1-1BDwZbBdojCB/NEPKIVMKb2jOwY=",
-      "dev": true,
-      "requires": {
-        "cyclist": "~0.2.2",
-        "inherits": "^2.0.3",
-        "readable-stream": "^2.1.5"
-      }
-    },
-    "parse-asn1": {
-      "version": "5.1.0",
-      "resolved": "https://registry.npmjs.org/parse-asn1/-/parse-asn1-5.1.0.tgz",
-      "integrity": "sha1-N8T5t+06tlx0gXtfJICTf7+XxxI=",
-      "dev": true,
-      "requires": {
-        "asn1.js": "^4.0.0",
-        "browserify-aes": "^1.0.0",
-        "create-hash": "^1.1.0",
-        "evp_bytestokey": "^1.0.0",
-        "pbkdf2": "^3.0.3"
-      }
-    },
-    "parse-diff": {
-      "version": "0.3.2",
-      "resolved": "https://registry.npmjs.org/parse-diff/-/parse-diff-0.3.2.tgz",
-      "integrity": "sha1-QH1sHmzKs4e8aU6KWN38iJiamhs="
-    },
-    "parse-glob": {
-      "version": "3.0.4",
-      "resolved": "https://registry.npmjs.org/parse-glob/-/parse-glob-3.0.4.tgz",
-      "integrity": "sha1-ssN2z7EfNVE7rdFz7wu246OIORw=",
-      "dev": true,
-      "requires": {
-        "glob-base": "^0.3.0",
-        "is-dotfile": "^1.0.0",
-        "is-extglob": "^1.0.0",
-        "is-glob": "^2.0.0"
-      }
-    },
-    "parse-json": {
-      "version": "2.2.0",
-      "resolved": "https://registry.npmjs.org/parse-json/-/parse-json-2.2.0.tgz",
-      "integrity": "sha1-9ID0BDTvgHQfhGkJn43qGPVaTck=",
-      "dev": true,
-      "requires": {
-        "error-ex": "^1.2.0"
-      }
-    },
-    "parse5": {
-      "version": "5.1.0",
-      "resolved": "https://registry.npmjs.org/parse5/-/parse5-5.1.0.tgz",
-      "integrity": "sha512-fxNG2sQjHvlVAYmzBZS9YlDp6PTSSDwa98vkD4QgVDDCAo84z5X1t5XyJQ62ImdLXx5NdIIfihey6xpum9/gRQ==",
-      "optional": true
-    },
-    "parseurl": {
-      "version": "1.3.2",
-      "resolved": "https://registry.npmjs.org/parseurl/-/parseurl-1.3.2.tgz",
-      "integrity": "sha1-/CidTtiZMRlGDBViUyYs3I3mW/M=",
-      "dev": true
-    },
-    "pascalcase": {
-      "version": "0.1.1",
-      "resolved": "https://registry.npmjs.org/pascalcase/-/pascalcase-0.1.1.tgz",
-      "integrity": "sha1-s2PlXoAGym/iF4TS2yK9FdeRfxQ=",
-      "dev": true
-    },
-    "path-browserify": {
-      "version": "0.0.0",
-      "resolved": "https://registry.npmjs.org/path-browserify/-/path-browserify-0.0.0.tgz",
-      "integrity": "sha1-oLhwcpquIUAFt9UDLsLLuw+0RRo=",
-      "dev": true
-    },
-    "path-dirname": {
-      "version": "1.0.2",
-      "resolved": "https://registry.npmjs.org/path-dirname/-/path-dirname-1.0.2.tgz",
-      "integrity": "sha1-zDPSTVJeCZpTiMAzbG4yuRYGCeA=",
-      "dev": true
-    },
-    "path-exists": {
-      "version": "3.0.0",
-      "resolved": "https://registry.npmjs.org/path-exists/-/path-exists-3.0.0.tgz",
-      "integrity": "sha1-zg6+ql94yxiSXqfYENe1mwEP1RU="
-    },
-    "path-is-absolute": {
-      "version": "1.0.1",
-      "resolved": "https://registry.npmjs.org/path-is-absolute/-/path-is-absolute-1.0.1.tgz",
-      "integrity": "sha1-F0uSaHNVNP+8es5r9TpanhtcX18="
-    },
-    "path-is-inside": {
-      "version": "1.0.2",
-      "resolved": "https://registry.npmjs.org/path-is-inside/-/path-is-inside-1.0.2.tgz",
-      "integrity": "sha1-NlQX3t5EQw0cEa9hAn+s8HS9/FM=",
-      "dev": true
-    },
-    "path-key": {
-      "version": "2.0.1",
-      "resolved": "https://registry.npmjs.org/path-key/-/path-key-2.0.1.tgz",
-      "integrity": "sha1-QRyttXTFoUDTpLGRDUDYDMn0C0A=",
-      "dev": true
-    },
-    "path-parse": {
-      "version": "1.0.5",
-      "resolved": "https://registry.npmjs.org/path-parse/-/path-parse-1.0.5.tgz",
-      "integrity": "sha1-PBrfhx6pzWyUMbbqK9dKD/BVxME=",
-      "dev": true
-    },
-    "path-to-regexp": {
-      "version": "0.1.7",
-      "resolved": "https://registry.npmjs.org/path-to-regexp/-/path-to-regexp-0.1.7.tgz",
-      "integrity": "sha1-32BBeABfUi8V60SQ5yR6G/qmf4w=",
-      "dev": true
-    },
-    "path-type": {
-      "version": "3.0.0",
-      "resolved": "https://registry.npmjs.org/path-type/-/path-type-3.0.0.tgz",
-      "integrity": "sha512-T2ZUsdZFHgA3u4e5PfPbjd7HDDpxPnQb5jN0SrDsjNSuVXHJqtwTnWqG0B1jZrgmJ/7lj1EmVIByWt1gxGkWvg==",
-      "dev": true,
-      "requires": {
-        "pify": "^3.0.0"
-      }
-    },
-    "pbkdf2": {
-      "version": "3.0.14",
-      "resolved": "https://registry.npmjs.org/pbkdf2/-/pbkdf2-3.0.14.tgz",
-      "integrity": "sha512-gjsZW9O34fm0R7PaLHRJmLLVfSoesxztjPjE9o6R+qtVJij90ltg1joIovN9GKrRW3t1PzhDDG3UMEMFfZ+1wA==",
-      "dev": true,
-      "requires": {
-        "create-hash": "^1.1.2",
-        "create-hmac": "^1.1.4",
-        "ripemd160": "^2.0.1",
-        "safe-buffer": "^5.0.1",
-        "sha.js": "^2.4.8"
-      }
-    },
-    "pend": {
-      "version": "1.2.0",
-      "resolved": "https://registry.npmjs.org/pend/-/pend-1.2.0.tgz",
-      "integrity": "sha1-elfrVQpng/kRUzH89GY9XI4AelA=",
-      "dev": true
-    },
-    "performance-now": {
-      "version": "0.2.0",
-      "resolved": "https://registry.npmjs.org/performance-now/-/performance-now-0.2.0.tgz",
-      "integrity": "sha1-M+8wxcd9TqIcWlOGnZG1bY8lVeU="
-    },
-    "pidtree": {
-      "version": "0.3.0",
-      "resolved": "https://registry.npmjs.org/pidtree/-/pidtree-0.3.0.tgz",
-      "integrity": "sha512-9CT4NFlDcosssyg8KVFltgokyKZIFjoBxw8CTGy+5F38Y1eQWrt8tRayiUOXE+zVKQnYu5BR8JjCtvK3BcnBhg==",
-      "dev": true
-    },
-    "pify": {
-      "version": "3.0.0",
-      "resolved": "https://registry.npmjs.org/pify/-/pify-3.0.0.tgz",
-      "integrity": "sha1-5aSs0sEB/fPZpNB/DbxNtJ3SgXY=",
-      "dev": true
-    },
-    "pinkie": {
-      "version": "2.0.4",
-      "resolved": "https://registry.npmjs.org/pinkie/-/pinkie-2.0.4.tgz",
-      "integrity": "sha1-clVrgM+g1IqXToDnckjoDtT3+HA=",
-      "dev": true
-    },
-    "pinkie-promise": {
-      "version": "2.0.1",
-      "resolved": "https://registry.npmjs.org/pinkie-promise/-/pinkie-promise-2.0.1.tgz",
-      "integrity": "sha1-ITXW36ejWMBprJsXh3YogihFD/o=",
-      "dev": true,
-      "requires": {
-        "pinkie": "^2.0.0"
-      }
-    },
-    "pirates": {
-      "version": "4.0.1",
-      "resolved": "https://registry.npmjs.org/pirates/-/pirates-4.0.1.tgz",
-      "integrity": "sha512-WuNqLTbMI3tmfef2TKxlQmAiLHKtFhlsCZnPIpuv2Ow0RDVO8lfy1Opf4NUzlMXLjPl+Men7AuVdX6TA+s+uGA==",
-      "dev": true,
-      "requires": {
-        "node-modules-regexp": "^1.0.0"
-      }
-    },
-    "pixelmatch": {
-      "version": "4.0.2",
-      "resolved": "https://registry.npmjs.org/pixelmatch/-/pixelmatch-4.0.2.tgz",
-      "integrity": "sha1-j0fc7FARtHe2fbA8JDvB8wheiFQ=",
-      "requires": {
-        "pngjs": "^3.0.0"
-      }
-    },
-    "pkg-dir": {
-      "version": "2.0.0",
-      "resolved": "https://registry.npmjs.org/pkg-dir/-/pkg-dir-2.0.0.tgz",
-      "integrity": "sha1-9tXREJ4Z1j7fQo4L1X4Sd3YVM0s=",
-      "dev": true,
-      "requires": {
-        "find-up": "^2.1.0"
-      }
-    },
-    "pkginfo": {
-      "version": "0.4.0",
-      "resolved": "https://registry.npmjs.org/pkginfo/-/pkginfo-0.4.0.tgz",
-      "integrity": "sha1-NJ27f/04CB/K3AhT32h/DHdEzWU="
-    },
-    "please-upgrade-node": {
-      "version": "3.1.1",
-      "resolved": "https://registry.npmjs.org/please-upgrade-node/-/please-upgrade-node-3.1.1.tgz",
-      "integrity": "sha512-KY1uHnQ2NlQHqIJQpnh/i54rKkuxCEBx+voJIS/Mvb+L2iYd2NMotwduhKTMjfC1uKoX3VXOxLjIYG66dfJTVQ==",
-      "dev": true,
-      "requires": {
-        "semver-compare": "^1.0.0"
-      }
-    },
-    "pn": {
-      "version": "1.1.0",
-      "resolved": "https://registry.npmjs.org/pn/-/pn-1.1.0.tgz",
-      "integrity": "sha512-2qHaIQr2VLRFoxe2nASzsV6ef4yOOH+Fi9FBOVH6cqeSgUnoyySPZkxzLuzd+RYOQTRpROA0ztTMqxROKSb/nA==",
-      "dev": true
-    },
-    "pngjs": {
-      "version": "3.3.3",
-      "resolved": "https://registry.npmjs.org/pngjs/-/pngjs-3.3.3.tgz",
-      "integrity": "sha512-1n3Z4p3IOxArEs1VRXnZ/RXdfEniAUS9jb68g58FIXMNkPJeZd+Qh4Uq7/e0LVxAQGos1eIUrqrt4FpjdnEd+Q=="
-    },
-    "point-in-polygon": {
-      "version": "1.0.1",
-      "resolved": "https://registry.npmjs.org/point-in-polygon/-/point-in-polygon-1.0.1.tgz",
-      "integrity": "sha1-1Ztk6P7kHElFiqyCtWcYxZV7Kvc="
-    },
-    "portfinder": {
-      "version": "1.0.17",
-      "resolved": "https://registry.npmjs.org/portfinder/-/portfinder-1.0.17.tgz",
-      "integrity": "sha512-syFcRIRzVI1BoEFOCaAiizwDolh1S1YXSodsVhncbhjzjZQulhczNRbqnUl9N31Q4dKGOXsNDqxC2BWBgSMqeQ==",
-      "dev": true,
-      "requires": {
-        "async": "^1.5.2",
-        "debug": "^2.2.0",
-        "mkdirp": "0.5.x"
-      },
-      "dependencies": {
-        "async": {
-          "version": "1.5.2",
-          "resolved": "https://registry.npmjs.org/async/-/async-1.5.2.tgz",
-          "integrity": "sha1-7GphrlZIDAw8skHJVhjiCJL5Zyo=",
-          "dev": true
-        }
-      }
-    },
-    "posix-character-classes": {
-      "version": "0.1.1",
-      "resolved": "https://registry.npmjs.org/posix-character-classes/-/posix-character-classes-0.1.1.tgz",
-      "integrity": "sha1-AerA/jta9xoqbAL+q7jB/vfgDqs=",
-      "dev": true
-    },
-    "postcss": {
-      "version": "7.0.5",
-      "resolved": "https://registry.npmjs.org/postcss/-/postcss-7.0.5.tgz",
-      "integrity": "sha512-HBNpviAUFCKvEh7NZhw1e8MBPivRszIiUnhrJ+sBFVSYSqubrzwX3KG51mYgcRHX8j/cAgZJedONZcm5jTBdgQ==",
-      "dev": true,
-      "requires": {
-        "chalk": "^2.4.1",
-        "source-map": "^0.6.1",
-        "supports-color": "^5.5.0"
-      },
-      "dependencies": {
-        "chalk": {
-          "version": "2.4.1",
-          "resolved": "https://registry.npmjs.org/chalk/-/chalk-2.4.1.tgz",
-          "integrity": "sha512-ObN6h1v2fTJSmUXoS3nMQ92LbDK9be4TV+6G+omQlGJFdcUX5heKi1LZ1YnRMIgwTLEj3E24bT6tYni50rlCfQ==",
-          "dev": true,
-          "requires": {
-            "ansi-styles": "^3.2.1",
-            "escape-string-regexp": "^1.0.5",
-            "supports-color": "^5.3.0"
-          }
-        },
-        "has-flag": {
-          "version": "3.0.0",
-          "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-3.0.0.tgz",
-          "integrity": "sha1-tdRU3CGZriJWmfNGfloH87lVuv0=",
-          "dev": true
-        },
-        "source-map": {
-          "version": "0.6.1",
-          "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.6.1.tgz",
-          "integrity": "sha512-UjgapumWlbMhkBgzT7Ykc5YXUT46F0iKu8SGXq0bcwP5dz/h0Plj6enJqjz1Zbq2l5WaqYnrVbwWOWMyF3F47g==",
-          "dev": true
-        },
-        "supports-color": {
-          "version": "5.5.0",
-          "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-5.5.0.tgz",
-          "integrity": "sha512-QjVjwdXIt408MIiAqCX4oUKsgU2EqAGzs2Ppkm4aQYbjm+ZEWEcW4SfFNTr4uMNZma0ey4f5lgLrkB0aX0QMow==",
-          "dev": true,
-          "requires": {
-            "has-flag": "^3.0.0"
-          }
-        }
-      }
-    },
-    "postcss-import": {
-      "version": "12.0.0",
-      "resolved": "https://registry.npmjs.org/postcss-import/-/postcss-import-12.0.0.tgz",
-      "integrity": "sha512-3KqKRZcaZAvxbY8DVLdd81tG5uKzbUQuiWIvy0o0fzEC42bKacqPYFWbfCQyw6L4LWUaqPz/idvIdbhpgQ32eQ==",
-      "dev": true,
-      "requires": {
-        "postcss": "^7.0.1",
-        "postcss-value-parser": "^3.2.3",
-        "read-cache": "^1.0.0",
-        "resolve": "^1.1.7"
-      }
-    },
-    "postcss-load-config": {
-      "version": "2.0.0",
-      "resolved": "https://registry.npmjs.org/postcss-load-config/-/postcss-load-config-2.0.0.tgz",
-      "integrity": "sha512-V5JBLzw406BB8UIfsAWSK2KSwIJ5yoEIVFb4gVkXci0QdKgA24jLmHZ/ghe/GgX0lJ0/D1uUK1ejhzEY94MChQ==",
-      "dev": true,
-      "requires": {
-        "cosmiconfig": "^4.0.0",
-        "import-cwd": "^2.0.0"
-      }
-    },
-    "postcss-loader": {
-      "version": "3.0.0",
-      "resolved": "https://registry.npmjs.org/postcss-loader/-/postcss-loader-3.0.0.tgz",
-      "integrity": "sha512-cLWoDEY5OwHcAjDnkyRQzAXfs2jrKjXpO/HQFcc5b5u/r7aa471wdmChmwfnv7x2u840iat/wi0lQ5nbRgSkUA==",
-      "dev": true,
-      "requires": {
-        "loader-utils": "^1.1.0",
-        "postcss": "^7.0.0",
-        "postcss-load-config": "^2.0.0",
-        "schema-utils": "^1.0.0"
-      }
-    },
-    "postcss-value-parser": {
-      "version": "3.3.1",
-      "resolved": "https://registry.npmjs.org/postcss-value-parser/-/postcss-value-parser-3.3.1.tgz",
-      "integrity": "sha512-pISE66AbVkp4fDQ7VHBwRNXzAAKJjw4Vw7nWI/+Q3vuly7SNfgYXvm6i5IgFylHGK5sP/xHAbB7N49OS4gWNyQ==",
-      "dev": true
-    },
-    "prelude-ls": {
-      "version": "1.1.2",
-      "resolved": "https://registry.npmjs.org/prelude-ls/-/prelude-ls-1.1.2.tgz",
-      "integrity": "sha1-IZMqVJ9eUv/ZqCf1cOBL5iqX2lQ="
-    },
-    "prepend-http": {
-      "version": "1.0.4",
-      "resolved": "https://registry.npmjs.org/prepend-http/-/prepend-http-1.0.4.tgz",
-      "integrity": "sha1-1PRWKwzjaW5BrFLQ4ALlemNdxtw="
-    },
-    "preserve": {
-      "version": "0.2.0",
-      "resolved": "https://registry.npmjs.org/preserve/-/preserve-0.2.0.tgz",
-      "integrity": "sha1-gV7R9uvGWSb4ZbMQwHE7yzMVzks=",
-      "dev": true
-    },
-    "prettier": {
-      "version": "1.16.4",
-      "resolved": "https://registry.npmjs.org/prettier/-/prettier-1.16.4.tgz",
-      "integrity": "sha512-ZzWuos7TI5CKUeQAtFd6Zhm2s6EpAD/ZLApIhsF9pRvRtM1RFo61dM/4MSRUA0SuLugA/zgrZD8m0BaY46Og7g==",
-      "dev": true
-    },
-    "pretty-format": {
-      "version": "24.0.0",
-      "resolved": "https://registry.npmjs.org/pretty-format/-/pretty-format-24.0.0.tgz",
-      "integrity": "sha512-LszZaKG665djUcqg5ZQq+XzezHLKrxsA86ZABTozp+oNhkdqa+tG2dX4qa6ERl5c/sRDrAa3lHmwnvKoP+OG/g==",
-      "dev": true,
-      "requires": {
-        "ansi-regex": "^4.0.0",
-        "ansi-styles": "^3.2.0"
-      },
-      "dependencies": {
-        "ansi-regex": {
-          "version": "4.0.0",
-          "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-4.0.0.tgz",
-          "integrity": "sha512-iB5Dda8t/UqpPI/IjsejXu5jOGDrzn41wJyljwPH65VCIbk6+1BzFIMJGFwTNrYXT1CrD+B4l19U7awiQ8rk7w==",
-          "dev": true
-        }
-      }
-    },
-    "pretty-quick": {
-      "version": "1.10.0",
-      "resolved": "https://registry.npmjs.org/pretty-quick/-/pretty-quick-1.10.0.tgz",
-      "integrity": "sha512-uNvm2N3UWmnZRZrClyQI45hIbV20f5BpSyZY51Spbvn4APp9+XLyX4bCjWRGT3fGyVyQ/2/iw7dbQq1UUaq7SQ==",
-      "dev": true,
-      "requires": {
-        "chalk": "^2.3.0",
-        "execa": "^0.8.0",
-        "find-up": "^2.1.0",
-        "ignore": "^3.3.7",
-        "mri": "^1.1.0",
-        "multimatch": "^3.0.0"
-      },
-      "dependencies": {
-        "chalk": {
-          "version": "2.4.2",
-          "resolved": "https://registry.npmjs.org/chalk/-/chalk-2.4.2.tgz",
-          "integrity": "sha512-Mti+f9lpJNcwF4tWV8/OrTTtF1gZi+f8FqlyAdouralcFWFQWF2+NgCHShjkCb+IFBLq9buZwE1xckQU4peSuQ==",
-          "dev": true,
-          "requires": {
-            "ansi-styles": "^3.2.1",
-            "escape-string-regexp": "^1.0.5",
-            "supports-color": "^5.3.0"
-          }
-        },
-        "cross-spawn": {
-          "version": "5.1.0",
-          "resolved": "https://registry.npmjs.org/cross-spawn/-/cross-spawn-5.1.0.tgz",
-          "integrity": "sha1-6L0O/uWPz/b4+UUQoKVUu/ojVEk=",
-          "dev": true,
-          "requires": {
-            "lru-cache": "^4.0.1",
-            "shebang-command": "^1.2.0",
-            "which": "^1.2.9"
-          }
-        },
-        "execa": {
-          "version": "0.8.0",
-          "resolved": "https://registry.npmjs.org/execa/-/execa-0.8.0.tgz",
-          "integrity": "sha1-2NdrvBtVIX7RkP1t1J08d07PyNo=",
-          "dev": true,
-          "requires": {
-            "cross-spawn": "^5.0.1",
-            "get-stream": "^3.0.0",
-            "is-stream": "^1.1.0",
-            "npm-run-path": "^2.0.0",
-            "p-finally": "^1.0.0",
-            "signal-exit": "^3.0.0",
-            "strip-eof": "^1.0.0"
-          }
-        },
-        "has-flag": {
-          "version": "3.0.0",
-          "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-3.0.0.tgz",
-          "integrity": "sha1-tdRU3CGZriJWmfNGfloH87lVuv0=",
-          "dev": true
-        },
-        "supports-color": {
-          "version": "5.5.0",
-          "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-5.5.0.tgz",
-          "integrity": "sha512-QjVjwdXIt408MIiAqCX4oUKsgU2EqAGzs2Ppkm4aQYbjm+ZEWEcW4SfFNTr4uMNZma0ey4f5lgLrkB0aX0QMow==",
-          "dev": true,
-          "requires": {
-            "has-flag": "^3.0.0"
-          }
-        }
-      }
-    },
-    "private": {
-      "version": "0.1.8",
-      "resolved": "https://registry.npmjs.org/private/-/private-0.1.8.tgz",
-      "integrity": "sha512-VvivMrbvd2nKkiG38qjULzlc+4Vx4wm/whI9pQD35YrARNnhxeiRktSOhSukRLFNlzg6Br/cJPet5J/u19r/mg==",
-      "dev": true
-    },
-    "process": {
-      "version": "0.11.10",
-      "resolved": "https://registry.npmjs.org/process/-/process-0.11.10.tgz",
-      "integrity": "sha1-czIwDoQBYb2j5podHZGn1LwW8YI=",
-      "dev": true
-    },
-    "process-nextick-args": {
-      "version": "2.0.0",
-      "resolved": "https://registry.npmjs.org/process-nextick-args/-/process-nextick-args-2.0.0.tgz",
-      "integrity": "sha512-MtEC1TqN0EU5nephaJ4rAtThHtC86dNN9qCuEhtshvpVBkAW5ZO7BASN9REnF9eoXGcRub+pFuKEpOHE+HbEMw==",
-      "dev": true
-    },
-    "progress": {
-      "version": "1.1.8",
-      "resolved": "https://registry.npmjs.org/progress/-/progress-1.1.8.tgz",
-      "integrity": "sha1-4mDHj2Fhzdmw5WzD4Khd4Xx6V74=",
-      "dev": true
-    },
-    "promise": {
-      "version": "7.3.1",
-      "resolved": "https://registry.npmjs.org/promise/-/promise-7.3.1.tgz",
-      "integrity": "sha512-nolQXZ/4L+bP/UGlkfaIujX9BKxGwmQ9OT4mOt5yvy8iK1h3wqTEJCijzGANTCCl9nWjY41juyAn2K3Q1hLLTg==",
-      "requires": {
-        "asap": "~2.0.3"
-      }
-    },
-    "promise-inflight": {
-      "version": "1.0.1",
-      "resolved": "https://registry.npmjs.org/promise-inflight/-/promise-inflight-1.0.1.tgz",
-      "integrity": "sha1-mEcocL8igTL8vdhoEputEsPAKeM=",
-      "dev": true
-    },
-    "promise-retry": {
-      "version": "1.1.1",
-      "resolved": "https://registry.npmjs.org/promise-retry/-/promise-retry-1.1.1.tgz",
-      "integrity": "sha1-ZznpaOMFHaIM5kl/srUPaRHfPW0=",
-      "dev": true,
-      "requires": {
-        "err-code": "^1.0.0",
-        "retry": "^0.10.0"
-      }
-    },
-    "prompts": {
-      "version": "2.0.3",
-      "resolved": "https://registry.npmjs.org/prompts/-/prompts-2.0.3.tgz",
-      "integrity": "sha512-H8oWEoRZpybm6NV4to9/1limhttEo13xK62pNvn2JzY0MA03p7s0OjtmhXyon3uJmxiJJVSuUwEJFFssI3eBiQ==",
-      "dev": true,
-      "requires": {
-        "kleur": "^3.0.2",
-        "sisteransi": "^1.0.0"
-      }
-    },
-    "protoduck": {
-      "version": "5.0.1",
-      "resolved": "https://registry.npmjs.org/protoduck/-/protoduck-5.0.1.tgz",
-      "integrity": "sha512-WxoCeDCoCBY55BMvj4cAEjdVUFGRWed9ZxPlqTKYyw1nDDTQ4pqmnIMAGfJlg7Dx35uB/M+PHJPTmGOvaCaPTg==",
-      "dev": true,
-      "requires": {
-        "genfun": "^5.0.0"
-      }
-    },
-    "proxy-addr": {
-      "version": "2.0.4",
-      "resolved": "https://registry.npmjs.org/proxy-addr/-/proxy-addr-2.0.4.tgz",
-      "integrity": "sha512-5erio2h9jp5CHGwcybmxmVqHmnCBZeewlfJ0pex+UW7Qny7OOZXTtH56TGNyBizkgiOwhJtMKrVzDTeKcySZwA==",
-      "dev": true,
-      "requires": {
-        "forwarded": "~0.1.2",
-        "ipaddr.js": "1.8.0"
-      }
-    },
-    "prr": {
-      "version": "1.0.1",
-      "resolved": "https://registry.npmjs.org/prr/-/prr-1.0.1.tgz",
-      "integrity": "sha1-0/wRS6BplaRexok/SEzrHXj19HY=",
-      "dev": true
-    },
-    "pseudomap": {
-      "version": "1.0.2",
-      "resolved": "https://registry.npmjs.org/pseudomap/-/pseudomap-1.0.2.tgz",
-      "integrity": "sha1-8FKijacOYYkX7wqKw0wa5aaChrM=",
-      "dev": true
-    },
-    "psl": {
-      "version": "1.1.31",
-      "resolved": "https://registry.npmjs.org/psl/-/psl-1.1.31.tgz",
-      "integrity": "sha512-/6pt4+C+T+wZUieKR620OpzN/LlnNKuWjy1iFLQ/UG35JqHlR/89MP1d96dUfkf6Dne3TuLQzOYEYshJ+Hx8mw==",
-      "dev": true
-    },
-    "public-encrypt": {
-      "version": "4.0.0",
-      "resolved": "https://registry.npmjs.org/public-encrypt/-/public-encrypt-4.0.0.tgz",
-      "integrity": "sha1-OfaZ86RlYN1eusvKaTyvfGXBjMY=",
-      "dev": true,
-      "requires": {
-        "bn.js": "^4.1.0",
-        "browserify-rsa": "^4.0.0",
-        "create-hash": "^1.1.0",
-        "parse-asn1": "^5.0.0",
-        "randombytes": "^2.0.1"
-      }
-    },
-    "pump": {
-      "version": "2.0.1",
-      "resolved": "https://registry.npmjs.org/pump/-/pump-2.0.1.tgz",
-      "integrity": "sha512-ruPMNRkN3MHP1cWJc9OWr+T/xDP0jhXYCLfJcBuX54hhfIBnaQmAUMfDcG4DM5UMWByBbJY69QSphm3jtDKIkA==",
-      "dev": true,
-      "requires": {
-        "end-of-stream": "^1.1.0",
-        "once": "^1.3.1"
-      }
-    },
-    "pumpify": {
-      "version": "1.5.1",
-      "resolved": "https://registry.npmjs.org/pumpify/-/pumpify-1.5.1.tgz",
-      "integrity": "sha512-oClZI37HvuUJJxSKKrC17bZ9Cu0ZYhEAGPsPUy9KlMUmv9dKX2o77RUmq7f3XjIxbwyGwYzbzQ1L2Ks8sIradQ==",
-      "dev": true,
-      "requires": {
-        "duplexify": "^3.6.0",
-        "inherits": "^2.0.3",
-        "pump": "^2.0.0"
-      }
-    },
-    "punycode": {
-      "version": "1.4.1",
-      "resolved": "https://registry.npmjs.org/punycode/-/punycode-1.4.1.tgz",
-      "integrity": "sha1-wNWmOycYgArY4esPpSachN1BhF4="
-    },
-    "qs": {
-      "version": "6.4.0",
-      "resolved": "https://registry.npmjs.org/qs/-/qs-6.4.0.tgz",
-      "integrity": "sha1-E+JtKK1rD/qpExLNO/cI7TUecjM="
-    },
-    "querystring": {
-      "version": "0.2.0",
-      "resolved": "https://registry.npmjs.org/querystring/-/querystring-0.2.0.tgz",
-      "integrity": "sha1-sgmEkgO7Jd+CDadW50cAWHhSFiA=",
-      "dev": true
-    },
-    "querystring-es3": {
-      "version": "0.2.1",
-      "resolved": "https://registry.npmjs.org/querystring-es3/-/querystring-es3-0.2.1.tgz",
-      "integrity": "sha1-nsYfeQSYdXB9aUFFlv2Qek1xHnM=",
-      "dev": true
-    },
-    "querystringify": {
-      "version": "2.1.0",
-      "resolved": "https://registry.npmjs.org/querystringify/-/querystringify-2.1.0.tgz",
-      "integrity": "sha512-sluvZZ1YiTLD5jsqZcDmFyV2EwToyXZBfpoVOmktMmW+VEnhgakFHnasVph65fOjGPTWN0Nw3+XQaSeMayr0kg==",
-      "dev": true
-    },
-    "quickselect": {
-      "version": "1.1.1",
-      "resolved": "https://registry.npmjs.org/quickselect/-/quickselect-1.1.1.tgz",
-      "integrity": "sha512-qN0Gqdw4c4KGPsBOQafj6yj/PA6c/L63f6CaZ/DCF/xF4Esu3jVmKLUDYxghFx8Kb/O7y9tI7x2RjTSXwdK1iQ=="
-    },
-    "ramda": {
-      "version": "0.24.1",
-      "resolved": "https://registry.npmjs.org/ramda/-/ramda-0.24.1.tgz",
-      "integrity": "sha1-w7d1UZfzW43DUCIoJixMkd22uFc=",
-      "dev": true
-    },
-    "randomatic": {
-      "version": "1.1.7",
-      "resolved": "https://registry.npmjs.org/randomatic/-/randomatic-1.1.7.tgz",
-      "integrity": "sha512-D5JUjPyJbaJDkuAazpVnSfVkLlpeO3wDlPROTMLGKG1zMFNFRgrciKo1ltz/AzNTkqE0HzDx655QOL51N06how==",
-      "dev": true,
-      "requires": {
-        "is-number": "^3.0.0",
-        "kind-of": "^4.0.0"
-      },
-      "dependencies": {
-        "is-number": {
-          "version": "3.0.0",
-          "resolved": "https://registry.npmjs.org/is-number/-/is-number-3.0.0.tgz",
-          "integrity": "sha1-JP1iAaR4LPUFYcgQJ2r8fRLXEZU=",
-          "dev": true,
-          "requires": {
-            "kind-of": "^3.0.2"
-          },
-          "dependencies": {
-            "kind-of": {
-              "version": "3.2.2",
-              "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-3.2.2.tgz",
-              "integrity": "sha1-MeohpzS6ubuw8yRm2JOupR5KPGQ=",
-              "dev": true,
-              "requires": {
-                "is-buffer": "^1.1.5"
-              }
-            }
-          }
-        },
-        "kind-of": {
-          "version": "4.0.0",
-          "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-4.0.0.tgz",
-          "integrity": "sha1-IIE989cSkosgc3hpGkUGb65y3Vc=",
-          "dev": true,
-          "requires": {
-            "is-buffer": "^1.1.5"
-          }
-        }
-      }
-    },
-    "randombytes": {
-      "version": "2.0.6",
-      "resolved": "https://registry.npmjs.org/randombytes/-/randombytes-2.0.6.tgz",
-      "integrity": "sha512-CIQ5OFxf4Jou6uOKe9t1AOgqpeU5fd70A8NPdHSGeYXqXsPe6peOwI0cUl88RWZ6sP1vPMV3avd/R6cZ5/sP1A==",
-      "dev": true,
-      "requires": {
-        "safe-buffer": "^5.1.0"
-      }
-    },
-    "randomfill": {
-      "version": "1.0.4",
-      "resolved": "https://registry.npmjs.org/randomfill/-/randomfill-1.0.4.tgz",
-      "integrity": "sha512-87lcbR8+MhcWcUiQ+9e+Rwx8MyR2P7qnt15ynUlbm3TU/fjbgz4GsvfSUDTemtCCtVCqb4ZcEFlyPNTh9bBTLw==",
-      "dev": true,
-      "requires": {
-        "randombytes": "^2.0.5",
-        "safe-buffer": "^5.1.0"
-      }
-    },
-    "range-parser": {
-      "version": "1.2.0",
-      "resolved": "https://registry.npmjs.org/range-parser/-/range-parser-1.2.0.tgz",
-      "integrity": "sha1-9JvmtIeJTdxA3MlKMi9hEJLgDV4=",
-      "dev": true
-    },
-    "raw-body": {
-      "version": "2.3.3",
-      "resolved": "https://registry.npmjs.org/raw-body/-/raw-body-2.3.3.tgz",
-      "integrity": "sha512-9esiElv1BrZoI3rCDuOuKCBRbuApGGaDPQfjSflGxdy4oyzqghxu6klEkkVIvBje+FF0BX9coEv8KqW6X/7njw==",
-      "dev": true,
-      "requires": {
-        "bytes": "3.0.0",
-        "http-errors": "1.6.3",
-        "iconv-lite": "0.4.23",
-        "unpipe": "1.0.0"
-      },
-      "dependencies": {
-        "iconv-lite": {
-          "version": "0.4.23",
-          "resolved": "https://registry.npmjs.org/iconv-lite/-/iconv-lite-0.4.23.tgz",
-          "integrity": "sha512-neyTUVFtahjf0mB3dZT77u+8O0QB89jFdnBkd5P1JgYPbPaia3gXXOVL2fq8VyU2gMMD7SaN7QukTB/pmXYvDA==",
-          "dev": true,
-          "requires": {
-            "safer-buffer": ">= 2.1.2 < 3"
-          }
-        }
-      }
-    },
-    "raw-loader": {
-      "version": "0.5.1",
-      "resolved": "https://registry.npmjs.org/raw-loader/-/raw-loader-0.5.1.tgz",
-      "integrity": "sha1-DD0L6u2KAclm2Xh793goElKpeao=",
-      "dev": true
-    },
-    "rbush": {
-      "version": "2.0.2",
-      "resolved": "https://registry.npmjs.org/rbush/-/rbush-2.0.2.tgz",
-      "integrity": "sha512-XBOuALcTm+O/H8G90b6pzu6nX6v2zCKiFG4BJho8a+bY6AER6t8uQUZdi5bomQc0AprCWhEGa7ncAbbRap0bRA==",
-      "requires": {
-        "quickselect": "^1.0.1"
-      }
-    },
-    "rc": {
-      "version": "1.2.8",
-      "resolved": "https://registry.npmjs.org/rc/-/rc-1.2.8.tgz",
-      "integrity": "sha512-y3bGgqKj3QBdxLbLkomlohkvsA8gdAiUQlSBJnBhfn+BPxg4bc62d8TcBW15wavDfgexCgccckhcZvywyQYPOw==",
-      "requires": {
-        "deep-extend": "^0.6.0",
-        "ini": "~1.3.0",
-        "minimist": "^1.2.0",
-        "strip-json-comments": "~2.0.1"
-      },
-      "dependencies": {
-        "minimist": {
-          "version": "1.2.0",
-          "resolved": "http://registry.npmjs.org/minimist/-/minimist-1.2.0.tgz",
-          "integrity": "sha1-o1AIsg9BOD7sH7kU9M1d95omQoQ="
-        }
-      }
-    },
-    "read-cache": {
-      "version": "1.0.0",
-      "resolved": "https://registry.npmjs.org/read-cache/-/read-cache-1.0.0.tgz",
-      "integrity": "sha1-5mTvMRYRZsl1HNvo28+GtftY93Q=",
-      "dev": true,
-      "requires": {
-        "pify": "^2.3.0"
-      },
-      "dependencies": {
-        "pify": {
-          "version": "2.3.0",
-          "resolved": "https://registry.npmjs.org/pify/-/pify-2.3.0.tgz",
-          "integrity": "sha1-7RQaasBDqEnqWISY59yosVMw6Qw=",
-          "dev": true
-        }
-      }
-    },
-    "read-json-sync": {
-      "version": "1.1.1",
-      "resolved": "https://registry.npmjs.org/read-json-sync/-/read-json-sync-1.1.1.tgz",
-      "integrity": "sha1-Q8ZproZKrjCN+7snIaZ+KV7I//Y=",
-      "requires": {
-        "graceful-fs": "^4.1.2"
-      }
-    },
-    "read-pkg": {
-      "version": "1.1.0",
-      "resolved": "https://registry.npmjs.org/read-pkg/-/read-pkg-1.1.0.tgz",
-      "integrity": "sha1-9f+qXs0pyzHAR0vKfXVra7KePyg=",
-      "dev": true,
-      "requires": {
-        "load-json-file": "^1.0.0",
-        "normalize-package-data": "^2.3.2",
-        "path-type": "^1.0.0"
-      },
-      "dependencies": {
-        "path-type": {
-          "version": "1.1.0",
-          "resolved": "https://registry.npmjs.org/path-type/-/path-type-1.1.0.tgz",
-          "integrity": "sha1-WcRPfuSR2nBNpBXaWkBwuk+P5EE=",
-          "dev": true,
-          "requires": {
-            "graceful-fs": "^4.1.2",
-            "pify": "^2.0.0",
-            "pinkie-promise": "^2.0.0"
-          }
-        },
-        "pify": {
-          "version": "2.3.0",
-          "resolved": "https://registry.npmjs.org/pify/-/pify-2.3.0.tgz",
-          "integrity": "sha1-7RQaasBDqEnqWISY59yosVMw6Qw=",
-          "dev": true
-        }
-      }
-    },
-    "read-pkg-up": {
-      "version": "1.0.1",
-      "resolved": "https://registry.npmjs.org/read-pkg-up/-/read-pkg-up-1.0.1.tgz",
-      "integrity": "sha1-nWPBMnbAZZGNV/ACpX9AobZD+wI=",
-      "dev": true,
-      "requires": {
-        "find-up": "^1.0.0",
-        "read-pkg": "^1.0.0"
-      },
-      "dependencies": {
-        "find-up": {
-          "version": "1.1.2",
-          "resolved": "https://registry.npmjs.org/find-up/-/find-up-1.1.2.tgz",
-          "integrity": "sha1-ay6YIrGizgpgq2TWEOzK1TyyTQ8=",
-          "dev": true,
-          "requires": {
-            "path-exists": "^2.0.0",
-            "pinkie-promise": "^2.0.0"
-          }
-        },
-        "path-exists": {
-          "version": "2.1.0",
-          "resolved": "https://registry.npmjs.org/path-exists/-/path-exists-2.1.0.tgz",
-          "integrity": "sha1-D+tsZPD8UY2adU3V77YscCJ2H0s=",
-          "dev": true,
-          "requires": {
-            "pinkie-promise": "^2.0.0"
-          }
-        }
-      }
-    },
-    "readable-stream": {
-      "version": "2.3.5",
-      "resolved": "https://registry.npmjs.org/readable-stream/-/readable-stream-2.3.5.tgz",
-      "integrity": "sha512-tK0yDhrkygt/knjowCUiWP9YdV7c5R+8cR0r/kt9ZhBU906Fs6RpQJCEilamRJj1Nx2rWI6LkW9gKqjTkshhEw==",
-      "dev": true,
-      "requires": {
-        "core-util-is": "~1.0.0",
-        "inherits": "~2.0.3",
-        "isarray": "~1.0.0",
-        "process-nextick-args": "~2.0.0",
-        "safe-buffer": "~5.1.1",
-        "string_decoder": "~1.0.3",
-        "util-deprecate": "~1.0.1"
-      }
-    },
-    "readdirp": {
-      "version": "2.1.0",
-      "resolved": "https://registry.npmjs.org/readdirp/-/readdirp-2.1.0.tgz",
-      "integrity": "sha1-TtCtBg3zBzMAxIRANz9y0cxkLXg=",
-      "dev": true,
-      "requires": {
-        "graceful-fs": "^4.1.2",
-        "minimatch": "^3.0.2",
-        "readable-stream": "^2.0.2",
-        "set-immediate-shim": "^1.0.1"
-      }
-    },
-    "realpath-native": {
-      "version": "1.1.0",
-      "resolved": "https://registry.npmjs.org/realpath-native/-/realpath-native-1.1.0.tgz",
-      "integrity": "sha512-wlgPA6cCIIg9gKz0fgAPjnzh4yR/LnXovwuo9hvyGvx3h8nX4+/iLZplfUWasXpqD8BdnGnP5njOFjkUwPzvjA==",
-      "dev": true,
-      "requires": {
-        "util.promisify": "^1.0.0"
-      }
-    },
-    "rechoir": {
-      "version": "0.6.2",
-      "resolved": "https://registry.npmjs.org/rechoir/-/rechoir-0.6.2.tgz",
-      "integrity": "sha1-hSBLVNuoLVdC4oyWdW70OvUOM4Q=",
-      "dev": true,
-      "requires": {
-        "resolve": "^1.1.6"
-      }
-    },
-    "redent": {
-      "version": "1.0.0",
-      "resolved": "https://registry.npmjs.org/redent/-/redent-1.0.0.tgz",
-      "integrity": "sha1-z5Fqsf1fHxbfsggi3W7H9zDCr94=",
-      "dev": true,
-      "optional": true,
-      "requires": {
-        "indent-string": "^2.1.0",
-        "strip-indent": "^1.0.1"
-      }
-    },
-    "redux": {
-      "version": "4.0.1",
-      "resolved": "https://registry.npmjs.org/redux/-/redux-4.0.1.tgz",
-      "integrity": "sha512-R7bAtSkk7nY6O/OYMVR9RiBI+XghjF9rlbl5806HJbQph0LJVHZrU5oaO4q70eUKiqMRqm4y07KLTlMZ2BlVmg==",
-      "requires": {
-        "loose-envify": "^1.4.0",
-        "symbol-observable": "^1.2.0"
-      },
-      "dependencies": {
-        "loose-envify": {
-          "version": "1.4.0",
-          "resolved": "https://registry.npmjs.org/loose-envify/-/loose-envify-1.4.0.tgz",
-          "integrity": "sha512-lyuxPGr/Wfhrlem2CL/UcnUc1zcqKAImBDzukY7Y5F/yQiNdko6+fRLevlw1HgMySw7f611UIY408EtxRSoK3Q==",
-          "requires": {
-            "js-tokens": "^3.0.0 || ^4.0.0"
-          }
-        }
-      }
-    },
-    "redux-observable": {
-      "version": "1.0.0",
-      "resolved": "https://registry.npmjs.org/redux-observable/-/redux-observable-1.0.0.tgz",
-      "integrity": "sha512-6bXnpqWTBeLaLQjXHyN1giXq4nLxCmv+SUkdmiwBgvmVxvDbdmydvL1Z7DGo0WItyzI/kqXQKiucUuTxnrPRkA=="
-    },
-    "reflect-metadata": {
-      "version": "0.1.12",
-      "resolved": "https://registry.npmjs.org/reflect-metadata/-/reflect-metadata-0.1.12.tgz",
-      "integrity": "sha512-n+IyV+nGz3+0q3/Yf1ra12KpCyi001bi4XFxSjbiWWjfqb52iTTtpGXmCCAOWWIAn9KEuFZKGqBERHmrtScZ3A==",
-      "dev": true
-    },
-    "regenerate": {
-      "version": "1.3.3",
-      "resolved": "https://registry.npmjs.org/regenerate/-/regenerate-1.3.3.tgz",
-      "integrity": "sha512-jVpo1GadrDAK59t/0jRx5VxYWQEDkkEKi6+HjE3joFVLfDOh9Xrdh0dF1eSq+BI/SwvTQ44gSscJ8N5zYL61sg==",
-      "dev": true
-    },
-    "regenerate-unicode-properties": {
-      "version": "7.0.0",
-      "resolved": "https://registry.npmjs.org/regenerate-unicode-properties/-/regenerate-unicode-properties-7.0.0.tgz",
-      "integrity": "sha512-s5NGghCE4itSlUS+0WUj88G6cfMVMmH8boTPNvABf8od+2dhT9WDlWu8n01raQAJZMOK8Ch6jSexaRO7swd6aw==",
-      "dev": true,
-      "requires": {
-        "regenerate": "^1.4.0"
-      },
-      "dependencies": {
-        "regenerate": {
-          "version": "1.4.0",
-          "resolved": "https://registry.npmjs.org/regenerate/-/regenerate-1.4.0.tgz",
-          "integrity": "sha512-1G6jJVDWrt0rK99kBjvEtziZNCICAuvIPkSiUFIQxVP06RCVpq3dmDo2oi6ABpYaDYaTRr67BEhL8r1wgEZZKg==",
-          "dev": true
-        }
-      }
-    },
-    "regenerator-runtime": {
-      "version": "0.11.1",
-      "resolved": "https://registry.npmjs.org/regenerator-runtime/-/regenerator-runtime-0.11.1.tgz",
-      "integrity": "sha512-MguG95oij0fC3QV3URf4V2SDYGJhJnJGqvIIgdECeODCT98wSWDAJ94SSuVpYQUoTcGUIL6L4yNB7j1DFFHSBg=="
-    },
-    "regenerator-transform": {
-      "version": "0.10.1",
-      "resolved": "https://registry.npmjs.org/regenerator-transform/-/regenerator-transform-0.10.1.tgz",
-      "integrity": "sha512-PJepbvDbuK1xgIgnau7Y90cwaAmO/LCLMI2mPvaXq2heGMR3aWW5/BQvYrhJ8jgmQjXewXvBjzfqKcVOmhjZ6Q==",
-      "dev": true,
-      "requires": {
-        "babel-runtime": "^6.18.0",
-        "babel-types": "^6.19.0",
-        "private": "^0.1.6"
-      }
-    },
-    "regex-cache": {
-      "version": "0.4.4",
-      "resolved": "https://registry.npmjs.org/regex-cache/-/regex-cache-0.4.4.tgz",
-      "integrity": "sha512-nVIZwtCjkC9YgvWkpM55B5rBhBYRZhAaJbgcFYXXsHnbZ9UZI9nnVWYZpBlCqv9ho2eZryPnWrZGsOdPwVWXWQ==",
-      "dev": true,
-      "requires": {
-        "is-equal-shallow": "^0.1.3"
-      }
-    },
-    "regex-not": {
-      "version": "1.0.2",
-      "resolved": "https://registry.npmjs.org/regex-not/-/regex-not-1.0.2.tgz",
-      "integrity": "sha512-J6SDjUgDxQj5NusnOtdFxDwN/+HWykR8GELwctJ7mdqhcyy1xEc4SRFHUXvxTp661YaVKAjfRLZ9cCqS6tn32A==",
-      "dev": true,
-      "requires": {
-        "extend-shallow": "^3.0.2",
-        "safe-regex": "^1.1.0"
-      }
-    },
-    "regexpu-core": {
-      "version": "1.0.0",
-      "resolved": "https://registry.npmjs.org/regexpu-core/-/regexpu-core-1.0.0.tgz",
-      "integrity": "sha1-hqdj9Y7k18L2sQLkdkBQ3n7ZDGs=",
-      "dev": true,
-      "requires": {
-        "regenerate": "^1.2.1",
-        "regjsgen": "^0.2.0",
-        "regjsparser": "^0.1.4"
-      }
-    },
-    "registry-url": {
-      "version": "3.1.0",
-      "resolved": "https://registry.npmjs.org/registry-url/-/registry-url-3.1.0.tgz",
-      "integrity": "sha1-PU74cPc93h138M+aOBQyRE4XSUI=",
-      "requires": {
-        "rc": "^1.0.1"
-      }
-    },
-    "regjsgen": {
-      "version": "0.2.0",
-      "resolved": "https://registry.npmjs.org/regjsgen/-/regjsgen-0.2.0.tgz",
-      "integrity": "sha1-bAFq3qxVT3WCP+N6wFuS1aTtsfc=",
-      "dev": true
-    },
-    "regjsparser": {
-      "version": "0.1.5",
-      "resolved": "https://registry.npmjs.org/regjsparser/-/regjsparser-0.1.5.tgz",
-      "integrity": "sha1-fuj4Tcb6eS0/0K4ijSS9lJ6tIFw=",
-      "dev": true,
-      "requires": {
-        "jsesc": "~0.5.0"
-      },
-      "dependencies": {
-        "jsesc": {
-          "version": "0.5.0",
-          "resolved": "https://registry.npmjs.org/jsesc/-/jsesc-0.5.0.tgz",
-          "integrity": "sha1-597mbjXW/Bb3EP6R1c9p9w8IkR0=",
-          "dev": true
-        }
-      }
-    },
-    "remove-trailing-separator": {
-      "version": "1.1.0",
-      "resolved": "https://registry.npmjs.org/remove-trailing-separator/-/remove-trailing-separator-1.1.0.tgz",
-      "integrity": "sha1-wkvOKig62tW8P1jg1IJJuSN52O8=",
-      "dev": true
-    },
-    "repeat-element": {
-      "version": "1.1.2",
-      "resolved": "https://registry.npmjs.org/repeat-element/-/repeat-element-1.1.2.tgz",
-      "integrity": "sha1-7wiaF40Ug7quTZPrmLT55OEdmQo=",
-      "dev": true
-    },
-    "repeat-string": {
-      "version": "1.6.1",
-      "resolved": "https://registry.npmjs.org/repeat-string/-/repeat-string-1.6.1.tgz",
-      "integrity": "sha1-jcrkcOHIirwtYA//Sndihtp15jc=",
-      "dev": true
-    },
-    "repeating": {
-      "version": "2.0.1",
-      "resolved": "https://registry.npmjs.org/repeating/-/repeating-2.0.1.tgz",
-      "integrity": "sha1-UhTFOpJtNVJwdSf7q0FdvAjQbdo=",
-      "requires": {
-        "is-finite": "^1.0.0"
-      }
-    },
-    "request": {
-      "version": "2.81.0",
-      "resolved": "https://registry.npmjs.org/request/-/request-2.81.0.tgz",
-      "integrity": "sha1-xpKJRqDgbF+Nb4qTM0af/aRimKA=",
-      "requires": {
-        "aws-sign2": "~0.6.0",
-        "aws4": "^1.2.1",
-        "caseless": "~0.12.0",
-        "combined-stream": "~1.0.5",
-        "extend": "~3.0.0",
-        "forever-agent": "~0.6.1",
-        "form-data": "~2.1.1",
-        "har-validator": "~4.2.1",
-        "hawk": "~3.1.3",
-        "http-signature": "~1.1.0",
-        "is-typedarray": "~1.0.0",
-        "isstream": "~0.1.2",
-        "json-stringify-safe": "~5.0.1",
-        "mime-types": "~2.1.7",
-        "oauth-sign": "~0.8.1",
-        "performance-now": "^0.2.0",
-        "qs": "~6.4.0",
-        "safe-buffer": "^5.0.1",
-        "stringstream": "~0.0.4",
-        "tough-cookie": "~2.3.0",
-        "tunnel-agent": "^0.6.0",
-        "uuid": "^3.0.0"
-      }
-    },
-    "request-progress": {
-      "version": "0.3.1",
-      "resolved": "https://registry.npmjs.org/request-progress/-/request-progress-0.3.1.tgz",
-      "integrity": "sha1-ByHBBdipasayzossia4tXs/Pazo=",
-      "dev": true,
-      "requires": {
-        "throttleit": "~0.0.2"
-      }
-    },
-    "request-promise-core": {
-      "version": "1.1.2",
-      "resolved": "https://registry.npmjs.org/request-promise-core/-/request-promise-core-1.1.2.tgz",
-      "integrity": "sha512-UHYyq1MO8GsefGEt7EprS8UrXsm1TxEvFUX1IMTuSLU2Rh7fTIdFtl8xD7JiEYiWU2dl+NYAjCTksTehQUxPag==",
-      "dev": true,
-      "requires": {
-        "lodash": "^4.17.11"
-      },
-      "dependencies": {
-        "lodash": {
-          "version": "4.17.11",
-          "resolved": "https://registry.npmjs.org/lodash/-/lodash-4.17.11.tgz",
-          "integrity": "sha512-cQKh8igo5QUhZ7lg38DYWAxMvjSAKG0A8wGSVimP07SIUEK2UO+arSRKbRZWtelMtN5V0Hkwh5ryOto/SshYIg==",
-          "dev": true
-        }
-      }
-    },
-    "request-promise-native": {
-      "version": "1.0.7",
-      "resolved": "https://registry.npmjs.org/request-promise-native/-/request-promise-native-1.0.7.tgz",
-      "integrity": "sha512-rIMnbBdgNViL37nZ1b3L/VfPOpSi0TqVDQPAvO6U14lMzOLrt5nilxCQqtDKhZeDiW0/hkCXGoQjhgJd/tCh6w==",
-      "dev": true,
-      "requires": {
-        "request-promise-core": "1.1.2",
-        "stealthy-require": "^1.1.1",
-        "tough-cookie": "^2.3.3"
-      }
-    },
-    "require-directory": {
-      "version": "2.1.1",
-      "resolved": "https://registry.npmjs.org/require-directory/-/require-directory-2.1.1.tgz",
-      "integrity": "sha1-jGStX9MNqxyXbiNE/+f3kqam30I=",
-      "dev": true
-    },
-    "require-from-string": {
-      "version": "2.0.2",
-      "resolved": "https://registry.npmjs.org/require-from-string/-/require-from-string-2.0.2.tgz",
-      "integrity": "sha512-Xf0nWe6RseziFMu+Ap9biiUbmplq6S9/p+7w7YXP/JBHhrUDDUhwa+vANyubuqfZWTveU//DYVGsDG7RKL/vEw==",
-      "dev": true
-    },
-    "require-main-filename": {
-      "version": "1.0.1",
-      "resolved": "https://registry.npmjs.org/require-main-filename/-/require-main-filename-1.0.1.tgz",
-      "integrity": "sha1-l/cXtp1IeE9fUmpsWqj/3aBVpNE=",
-      "dev": true
-    },
-    "requires-port": {
-      "version": "1.0.0",
-      "resolved": "https://registry.npmjs.org/requires-port/-/requires-port-1.0.0.tgz",
-      "integrity": "sha1-kl0mAdOaxIXgkc8NpcbmlNw9yv8=",
-      "dev": true
-    },
-    "resolve": {
-      "version": "1.5.0",
-      "resolved": "https://registry.npmjs.org/resolve/-/resolve-1.5.0.tgz",
-      "integrity": "sha512-hgoSGrc3pjzAPHNBg+KnFcK2HwlHTs/YrAGUr6qgTVUZmXv1UEXXl0bZNBKMA9fud6lRYFdPGz0xXxycPzmmiw==",
-      "dev": true,
-      "requires": {
-        "path-parse": "^1.0.5"
-      }
-    },
-    "resolve-cwd": {
-      "version": "2.0.0",
-      "resolved": "https://registry.npmjs.org/resolve-cwd/-/resolve-cwd-2.0.0.tgz",
-      "integrity": "sha1-AKn3OHVW4nA46uIyyqNypqWbZlo=",
-      "dev": true,
-      "requires": {
-        "resolve-from": "^3.0.0"
-      }
-    },
-    "resolve-from": {
-      "version": "3.0.0",
-      "resolved": "https://registry.npmjs.org/resolve-from/-/resolve-from-3.0.0.tgz",
-      "integrity": "sha1-six699nWiBvItuZTM17rywoYh0g=",
-      "dev": true
-    },
-    "resolve-url": {
-      "version": "0.2.1",
-      "resolved": "https://registry.npmjs.org/resolve-url/-/resolve-url-0.2.1.tgz",
-      "integrity": "sha1-LGN/53yJOv0qZj/iGqkIAGjiBSo=",
-      "dev": true
-    },
-    "restore-cursor": {
-      "version": "2.0.0",
-      "resolved": "https://registry.npmjs.org/restore-cursor/-/restore-cursor-2.0.0.tgz",
-      "integrity": "sha1-n37ih/gv0ybU/RYpI9YhKe7g368=",
-      "dev": true,
-      "requires": {
-        "onetime": "^2.0.0",
-        "signal-exit": "^3.0.2"
-      }
-    },
-    "ret": {
-      "version": "0.1.15",
-      "resolved": "https://registry.npmjs.org/ret/-/ret-0.1.15.tgz",
-      "integrity": "sha512-TTlYpa+OL+vMMNG24xSlQGEJ3B/RzEfUlLct7b5G/ytav+wPrplCpVMFuwzXbkecJrb6IYo1iFb0S9v37754mg==",
-      "dev": true
-    },
-    "retry": {
-      "version": "0.10.1",
-      "resolved": "https://registry.npmjs.org/retry/-/retry-0.10.1.tgz",
-      "integrity": "sha1-52OI0heZLCUnUCQdPTlW/tmNj/Q=",
-      "dev": true
-    },
-    "right-align": {
-      "version": "0.1.3",
-      "resolved": "https://registry.npmjs.org/right-align/-/right-align-0.1.3.tgz",
-      "integrity": "sha1-YTObci/mo1FWiSENJOFMlhSGE+8=",
-      "dev": true,
-      "requires": {
-        "align-text": "^0.1.1"
-      }
-    },
-    "rimraf": {
-      "version": "2.6.2",
-      "resolved": "https://registry.npmjs.org/rimraf/-/rimraf-2.6.2.tgz",
-      "integrity": "sha512-lreewLK/BlghmxtfH36YYVg1i8IAce4TI7oao75I1g245+6BctqTVQiBP3YUJ9C6DQOXJmkYR9X9fCLtCOJc5w==",
-      "requires": {
-        "glob": "^7.0.5"
-      }
-    },
-    "ripemd160": {
-      "version": "2.0.1",
-      "resolved": "https://registry.npmjs.org/ripemd160/-/ripemd160-2.0.1.tgz",
-      "integrity": "sha1-D0WEKVxTo2KK9+bXmsohzlfRxuc=",
-      "dev": true,
-      "requires": {
-        "hash-base": "^2.0.0",
-        "inherits": "^2.0.1"
-      }
-    },
-    "robust-orientation": {
-      "version": "1.1.3",
-      "resolved": "https://registry.npmjs.org/robust-orientation/-/robust-orientation-1.1.3.tgz",
-      "integrity": "sha1-2v9bANO+TmByLw6cAVbvln8cIEk=",
-      "requires": {
-        "robust-scale": "^1.0.2",
-        "robust-subtract": "^1.0.0",
-        "robust-sum": "^1.0.0",
-        "two-product": "^1.0.2"
-      }
-    },
-    "robust-scale": {
-      "version": "1.0.2",
-      "resolved": "https://registry.npmjs.org/robust-scale/-/robust-scale-1.0.2.tgz",
-      "integrity": "sha1-d1Ey7QlULQKOWLLMecBikLz3jDI=",
-      "requires": {
-        "two-product": "^1.0.2",
-        "two-sum": "^1.0.0"
-      }
-    },
-    "robust-subtract": {
-      "version": "1.0.0",
-      "resolved": "https://registry.npmjs.org/robust-subtract/-/robust-subtract-1.0.0.tgz",
-      "integrity": "sha1-4LFk4e2LpOOl3aRaEgODSNvtPpo="
-    },
-    "robust-sum": {
-      "version": "1.0.0",
-      "resolved": "https://registry.npmjs.org/robust-sum/-/robust-sum-1.0.0.tgz",
-      "integrity": "sha1-FmRuUlKStNJdgnV6KGlV4Lv6U9k="
-    },
-    "rsvp": {
-      "version": "3.6.2",
-      "resolved": "https://registry.npmjs.org/rsvp/-/rsvp-3.6.2.tgz",
-      "integrity": "sha512-OfWGQTb9vnwRjwtA2QwpG2ICclHC3pgXZO5xt8H2EfgDquO0qVdSb5T88L4qJVAEugbS56pAuV4XZM58UX8ulw==",
-      "dev": true
-    },
-    "run-async": {
-      "version": "2.3.0",
-      "resolved": "https://registry.npmjs.org/run-async/-/run-async-2.3.0.tgz",
-      "integrity": "sha1-A3GrSuC91yDUFm19/aZP96RFpsA=",
-      "dev": true,
-      "requires": {
-        "is-promise": "^2.1.0"
-      }
-    },
-    "run-node": {
-      "version": "1.0.0",
-      "resolved": "https://registry.npmjs.org/run-node/-/run-node-1.0.0.tgz",
-      "integrity": "sha512-kc120TBlQ3mih1LSzdAJXo4xn/GWS2ec0l3S+syHDXP9uRr0JAT8Qd3mdMuyjqCzeZktgP3try92cEgf9Nks8A==",
-      "dev": true
-    },
-    "run-queue": {
-      "version": "1.0.3",
-      "resolved": "https://registry.npmjs.org/run-queue/-/run-queue-1.0.3.tgz",
-      "integrity": "sha1-6Eg5bwV9Ij8kOGkkYY4laUFh7Ec=",
-      "dev": true,
-      "requires": {
-        "aproba": "^1.1.1"
-      }
-    },
-    "rxjs": {
-      "version": "6.3.3",
-      "resolved": "https://registry.npmjs.org/rxjs/-/rxjs-6.3.3.tgz",
-      "integrity": "sha512-JTWmoY9tWCs7zvIk/CvRjhjGaOd+OVBM987mxFo+OW66cGpdKjZcpmc74ES1sB//7Kl/PAe8+wEakuhG4pcgOw==",
-      "requires": {
-        "tslib": "^1.9.0"
-      }
-    },
-    "rxjs-compat": {
-      "version": "6.3.3",
-      "resolved": "https://registry.npmjs.org/rxjs-compat/-/rxjs-compat-6.3.3.tgz",
-      "integrity": "sha512-caGN7ixiabHpOofginKEquuHk7GgaCrC7UpUQ9ZqGp80tMc68msadOeP/2AKy2R4YJsT1+TX5GZCtxO82qWkyA=="
-    },
-    "safe-buffer": {
-      "version": "5.1.1",
-      "resolved": "https://registry.npmjs.org/safe-buffer/-/safe-buffer-5.1.1.tgz",
-      "integrity": "sha512-kKvNJn6Mm93gAczWVJg7wH+wGYWNrDHdWvpUmHyEsgCtIwwo3bqPtV4tR5tuPaUhTOo/kvhVwd8XwwOllGYkbg=="
-    },
-    "safe-json-stringify": {
-      "version": "1.2.0",
-      "resolved": "https://registry.npmjs.org/safe-json-stringify/-/safe-json-stringify-1.2.0.tgz",
-      "integrity": "sha512-gH8eh2nZudPQO6TytOvbxnuhYBOvDBBLW52tz5q6X58lJcd/tkmqFR+5Z9adS8aJtURSXWThWy/xJtJwixErvg==",
-      "optional": true
-    },
-    "safe-regex": {
-      "version": "1.1.0",
-      "resolved": "https://registry.npmjs.org/safe-regex/-/safe-regex-1.1.0.tgz",
-      "integrity": "sha1-QKNmnzsHfR6UPURinhV91IAjvy4=",
-      "dev": true,
-      "requires": {
-        "ret": "~0.1.10"
-      }
-    },
-    "safer-buffer": {
-      "version": "2.1.2",
-      "resolved": "https://registry.npmjs.org/safer-buffer/-/safer-buffer-2.1.2.tgz",
-      "integrity": "sha512-YZo3K82SD7Riyi0E1EQPojLz7kpepnSQI9IyPbHHg1XXXevb5dJI7tpyN2ADxGcQbHG7vcyRHk0cbwqcQriUtg==",
-      "dev": true
-    },
-    "sane": {
-      "version": "3.1.0",
-      "resolved": "https://registry.npmjs.org/sane/-/sane-3.1.0.tgz",
-      "integrity": "sha512-G5GClRRxT1cELXfdAq7UKtUsv8q/ZC5k8lQGmjEm4HcAl3HzBy68iglyNCmw4+0tiXPCBZntslHlRhbnsSws+Q==",
-      "dev": true,
-      "requires": {
-        "anymatch": "^2.0.0",
-        "capture-exit": "^1.2.0",
-        "exec-sh": "^0.2.0",
-        "execa": "^1.0.0",
-        "fb-watchman": "^2.0.0",
-        "fsevents": "^1.2.3",
-        "micromatch": "^3.1.4",
-        "minimist": "^1.1.1",
-        "walker": "~1.0.5",
-        "watch": "~0.18.0"
-      },
-      "dependencies": {
-        "anymatch": {
-          "version": "2.0.0",
-          "resolved": "https://registry.npmjs.org/anymatch/-/anymatch-2.0.0.tgz",
-          "integrity": "sha512-5teOsQWABXHHBFP9y3skS5P3d/WfWXpv3FUpy+LorMrNYaT9pI4oLMQX7jzQ2KklNpGpWHzdCXTDT2Y3XGlZBw==",
-          "dev": true,
-          "requires": {
-            "micromatch": "^3.1.4",
-            "normalize-path": "^2.1.1"
-          }
-        },
-        "arr-diff": {
-          "version": "4.0.0",
-          "resolved": "https://registry.npmjs.org/arr-diff/-/arr-diff-4.0.0.tgz",
-          "integrity": "sha1-1kYQdP6/7HHn4VI1dhoyml3HxSA=",
-          "dev": true
-        },
-        "array-unique": {
-          "version": "0.3.2",
-          "resolved": "https://registry.npmjs.org/array-unique/-/array-unique-0.3.2.tgz",
-          "integrity": "sha1-qJS3XUvE9s1nnvMkSp/Y9Gri1Cg=",
-          "dev": true
-        },
-        "braces": {
-          "version": "2.3.2",
-          "resolved": "https://registry.npmjs.org/braces/-/braces-2.3.2.tgz",
-          "integrity": "sha512-aNdbnj9P8PjdXU4ybaWLK2IF3jc/EoDYbC7AazW6to3TRsfXxscC9UXOB5iDiEQrkyIbWp2SLQda4+QAa7nc3w==",
-          "dev": true,
-          "requires": {
-            "arr-flatten": "^1.1.0",
-            "array-unique": "^0.3.2",
-            "extend-shallow": "^2.0.1",
-            "fill-range": "^4.0.0",
-            "isobject": "^3.0.1",
-            "repeat-element": "^1.1.2",
-            "snapdragon": "^0.8.1",
-            "snapdragon-node": "^2.0.1",
-            "split-string": "^3.0.2",
-            "to-regex": "^3.0.1"
-          },
-          "dependencies": {
-            "extend-shallow": {
-              "version": "2.0.1",
-              "resolved": "https://registry.npmjs.org/extend-shallow/-/extend-shallow-2.0.1.tgz",
-              "integrity": "sha1-Ua99YUrZqfYQ6huvu5idaxxWiQ8=",
-              "dev": true,
-              "requires": {
-                "is-extendable": "^0.1.0"
-              }
-            }
-          }
-        },
-        "cross-spawn": {
-          "version": "6.0.5",
-          "resolved": "https://registry.npmjs.org/cross-spawn/-/cross-spawn-6.0.5.tgz",
-          "integrity": "sha512-eTVLrBSt7fjbDygz805pMnstIs2VTBNkRm0qxZd+M7A5XDdxVRWO5MxGBXZhjY4cqLYLdtrGqRf8mBPmzwSpWQ==",
-          "dev": true,
-          "requires": {
-            "nice-try": "^1.0.4",
-            "path-key": "^2.0.1",
-            "semver": "^5.5.0",
-            "shebang-command": "^1.2.0",
-            "which": "^1.2.9"
-          }
-        },
-        "execa": {
-          "version": "1.0.0",
-          "resolved": "https://registry.npmjs.org/execa/-/execa-1.0.0.tgz",
-          "integrity": "sha512-adbxcyWV46qiHyvSp50TKt05tB4tK3HcmF7/nxfAdhnox83seTDbwnaqKO4sXRy7roHAIFqJP/Rw/AuEbX61LA==",
-          "dev": true,
-          "requires": {
-            "cross-spawn": "^6.0.0",
-            "get-stream": "^4.0.0",
-            "is-stream": "^1.1.0",
-            "npm-run-path": "^2.0.0",
-            "p-finally": "^1.0.0",
-            "signal-exit": "^3.0.0",
-            "strip-eof": "^1.0.0"
-          }
-        },
-        "expand-brackets": {
-          "version": "2.1.4",
-          "resolved": "https://registry.npmjs.org/expand-brackets/-/expand-brackets-2.1.4.tgz",
-          "integrity": "sha1-t3c14xXOMPa27/D4OwQVGiJEliI=",
-          "dev": true,
-          "requires": {
-            "debug": "^2.3.3",
-            "define-property": "^0.2.5",
-            "extend-shallow": "^2.0.1",
-            "posix-character-classes": "^0.1.0",
-            "regex-not": "^1.0.0",
-            "snapdragon": "^0.8.1",
-            "to-regex": "^3.0.1"
-          },
-          "dependencies": {
-            "define-property": {
-              "version": "0.2.5",
-              "resolved": "https://registry.npmjs.org/define-property/-/define-property-0.2.5.tgz",
-              "integrity": "sha1-w1se+RjsPJkPmlvFe+BKrOxcgRY=",
-              "dev": true,
-              "requires": {
-                "is-descriptor": "^0.1.0"
-              }
-            },
-            "extend-shallow": {
-              "version": "2.0.1",
-              "resolved": "https://registry.npmjs.org/extend-shallow/-/extend-shallow-2.0.1.tgz",
-              "integrity": "sha1-Ua99YUrZqfYQ6huvu5idaxxWiQ8=",
-              "dev": true,
-              "requires": {
-                "is-extendable": "^0.1.0"
-              }
-            },
-            "is-descriptor": {
-              "version": "0.1.6",
-              "resolved": "https://registry.npmjs.org/is-descriptor/-/is-descriptor-0.1.6.tgz",
-              "integrity": "sha512-avDYr0SB3DwO9zsMov0gKCESFYqCnE4hq/4z3TdUlukEy5t9C0YRq7HLrsN52NAcqXKaepeCD0n+B0arnVG3Hg==",
-              "dev": true,
-              "requires": {
-                "is-accessor-descriptor": "^0.1.6",
-                "is-data-descriptor": "^0.1.4",
-                "kind-of": "^5.0.0"
-              }
-            },
-            "kind-of": {
-              "version": "5.1.0",
-              "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-5.1.0.tgz",
-              "integrity": "sha512-NGEErnH6F2vUuXDh+OlbcKW7/wOcfdRHaZ7VWtqCztfHri/++YKmP51OdWeGPuqCOba6kk2OTe5d02VmTB80Pw==",
-              "dev": true
-            }
-          }
-        },
-        "extglob": {
-          "version": "2.0.4",
-          "resolved": "https://registry.npmjs.org/extglob/-/extglob-2.0.4.tgz",
-          "integrity": "sha512-Nmb6QXkELsuBr24CJSkilo6UHHgbekK5UiZgfE6UHD3Eb27YC6oD+bhcT+tJ6cl8dmsgdQxnWlcry8ksBIBLpw==",
-          "dev": true,
-          "requires": {
-            "array-unique": "^0.3.2",
-            "define-property": "^1.0.0",
-            "expand-brackets": "^2.1.4",
-            "extend-shallow": "^2.0.1",
-            "fragment-cache": "^0.2.1",
-            "regex-not": "^1.0.0",
-            "snapdragon": "^0.8.1",
-            "to-regex": "^3.0.1"
-          },
-          "dependencies": {
-            "define-property": {
-              "version": "1.0.0",
-              "resolved": "https://registry.npmjs.org/define-property/-/define-property-1.0.0.tgz",
-              "integrity": "sha1-dp66rz9KY6rTr56NMEybvnm/sOY=",
-              "dev": true,
-              "requires": {
-                "is-descriptor": "^1.0.0"
-              }
-            },
-            "extend-shallow": {
-              "version": "2.0.1",
-              "resolved": "https://registry.npmjs.org/extend-shallow/-/extend-shallow-2.0.1.tgz",
-              "integrity": "sha1-Ua99YUrZqfYQ6huvu5idaxxWiQ8=",
-              "dev": true,
-              "requires": {
-                "is-extendable": "^0.1.0"
-              }
-            }
-          }
-        },
-        "fill-range": {
-          "version": "4.0.0",
-          "resolved": "https://registry.npmjs.org/fill-range/-/fill-range-4.0.0.tgz",
-          "integrity": "sha1-1USBHUKPmOsGpj3EAtJAPDKMOPc=",
-          "dev": true,
-          "requires": {
-            "extend-shallow": "^2.0.1",
-            "is-number": "^3.0.0",
-            "repeat-string": "^1.6.1",
-            "to-regex-range": "^2.1.0"
-          },
-          "dependencies": {
-            "extend-shallow": {
-              "version": "2.0.1",
-              "resolved": "https://registry.npmjs.org/extend-shallow/-/extend-shallow-2.0.1.tgz",
-              "integrity": "sha1-Ua99YUrZqfYQ6huvu5idaxxWiQ8=",
-              "dev": true,
-              "requires": {
-                "is-extendable": "^0.1.0"
-              }
-            }
-          }
-        },
-        "fsevents": {
-          "version": "1.2.7",
-          "resolved": "https://registry.npmjs.org/fsevents/-/fsevents-1.2.7.tgz",
-          "integrity": "sha512-Pxm6sI2MeBD7RdD12RYsqaP0nMiwx8eZBXCa6z2L+mRHm2DYrOYwihmhjpkdjUHwQhslWQjRpEgNq4XvBmaAuw==",
-          "dev": true,
-          "optional": true,
-          "requires": {
-            "nan": "^2.9.2",
-            "node-pre-gyp": "^0.10.0"
-          },
-          "dependencies": {
-            "abbrev": {
-              "version": "1.1.1",
-              "bundled": true,
-              "dev": true,
-              "optional": true
-            },
-            "ansi-regex": {
-              "version": "2.1.1",
-              "bundled": true,
-              "dev": true
-            },
-            "aproba": {
-              "version": "1.2.0",
-              "bundled": true,
-              "dev": true,
-              "optional": true
-            },
-            "are-we-there-yet": {
-              "version": "1.1.5",
-              "bundled": true,
-              "dev": true,
-              "optional": true,
-              "requires": {
-                "delegates": "^1.0.0",
-                "readable-stream": "^2.0.6"
-              }
-            },
-            "balanced-match": {
-              "version": "1.0.0",
-              "bundled": true,
-              "dev": true
-            },
-            "brace-expansion": {
-              "version": "1.1.11",
-              "bundled": true,
-              "dev": true,
-              "requires": {
-                "balanced-match": "^1.0.0",
-                "concat-map": "0.0.1"
-              }
-            },
-            "chownr": {
-              "version": "1.1.1",
-              "bundled": true,
-              "dev": true,
-              "optional": true
-            },
-            "code-point-at": {
-              "version": "1.1.0",
-              "bundled": true,
-              "dev": true
-            },
-            "concat-map": {
-              "version": "0.0.1",
-              "bundled": true,
-              "dev": true
-            },
-            "console-control-strings": {
-              "version": "1.1.0",
-              "bundled": true,
-              "dev": true
-            },
-            "core-util-is": {
-              "version": "1.0.2",
-              "bundled": true,
-              "dev": true,
-              "optional": true
-            },
-            "debug": {
-              "version": "2.6.9",
-              "bundled": true,
-              "dev": true,
-              "optional": true,
-              "requires": {
-                "ms": "2.0.0"
-              }
-            },
-            "deep-extend": {
-              "version": "0.6.0",
-              "bundled": true,
-              "dev": true,
-              "optional": true
-            },
-            "delegates": {
-              "version": "1.0.0",
-              "bundled": true,
-              "dev": true,
-              "optional": true
-            },
-            "detect-libc": {
-              "version": "1.0.3",
-              "bundled": true,
-              "dev": true,
-              "optional": true
-            },
-            "fs-minipass": {
-              "version": "1.2.5",
-              "bundled": true,
-              "dev": true,
-              "optional": true,
-              "requires": {
-                "minipass": "^2.2.1"
-              }
-            },
-            "fs.realpath": {
-              "version": "1.0.0",
-              "bundled": true,
-              "dev": true,
-              "optional": true
-            },
-            "gauge": {
-              "version": "2.7.4",
-              "bundled": true,
-              "dev": true,
-              "optional": true,
-              "requires": {
-                "aproba": "^1.0.3",
-                "console-control-strings": "^1.0.0",
-                "has-unicode": "^2.0.0",
-                "object-assign": "^4.1.0",
-                "signal-exit": "^3.0.0",
-                "string-width": "^1.0.1",
-                "strip-ansi": "^3.0.1",
-                "wide-align": "^1.1.0"
-              }
-            },
-            "glob": {
-              "version": "7.1.3",
-              "bundled": true,
-              "dev": true,
-              "optional": true,
-              "requires": {
-                "fs.realpath": "^1.0.0",
-                "inflight": "^1.0.4",
-                "inherits": "2",
-                "minimatch": "^3.0.4",
-                "once": "^1.3.0",
-                "path-is-absolute": "^1.0.0"
-              }
-            },
-            "has-unicode": {
-              "version": "2.0.1",
-              "bundled": true,
-              "dev": true,
-              "optional": true
-            },
-            "iconv-lite": {
-              "version": "0.4.24",
-              "bundled": true,
-              "dev": true,
-              "optional": true,
-              "requires": {
-                "safer-buffer": ">= 2.1.2 < 3"
-              }
-            },
-            "ignore-walk": {
-              "version": "3.0.1",
-              "bundled": true,
-              "dev": true,
-              "optional": true,
-              "requires": {
-                "minimatch": "^3.0.4"
-              }
-            },
-            "inflight": {
-              "version": "1.0.6",
-              "bundled": true,
-              "dev": true,
-              "optional": true,
-              "requires": {
-                "once": "^1.3.0",
-                "wrappy": "1"
-              }
-            },
-            "inherits": {
-              "version": "2.0.3",
-              "bundled": true,
-              "dev": true
-            },
-            "ini": {
-              "version": "1.3.5",
-              "bundled": true,
-              "dev": true,
-              "optional": true
-            },
-            "is-fullwidth-code-point": {
-              "version": "1.0.0",
-              "bundled": true,
-              "dev": true,
-              "requires": {
-                "number-is-nan": "^1.0.0"
-              }
-            },
-            "isarray": {
-              "version": "1.0.0",
-              "bundled": true,
-              "dev": true,
-              "optional": true
-            },
-            "minimatch": {
-              "version": "3.0.4",
-              "bundled": true,
-              "dev": true,
-              "requires": {
-                "brace-expansion": "^1.1.7"
-              }
-            },
-            "minimist": {
-              "version": "0.0.8",
-              "bundled": true,
-              "dev": true
-            },
-            "minipass": {
-              "version": "2.3.5",
-              "bundled": true,
-              "dev": true,
-              "requires": {
-                "safe-buffer": "^5.1.2",
-                "yallist": "^3.0.0"
-              }
-            },
-            "minizlib": {
-              "version": "1.2.1",
-              "bundled": true,
-              "dev": true,
-              "optional": true,
-              "requires": {
-                "minipass": "^2.2.1"
-              }
-            },
-            "mkdirp": {
-              "version": "0.5.1",
-              "bundled": true,
-              "dev": true,
-              "requires": {
-                "minimist": "0.0.8"
-              }
-            },
-            "ms": {
-              "version": "2.0.0",
-              "bundled": true,
-              "dev": true,
-              "optional": true
-            },
-            "needle": {
-              "version": "2.2.4",
-              "bundled": true,
-              "dev": true,
-              "optional": true,
-              "requires": {
-                "debug": "^2.1.2",
-                "iconv-lite": "^0.4.4",
-                "sax": "^1.2.4"
-              }
-            },
-            "node-pre-gyp": {
-              "version": "0.10.3",
-              "bundled": true,
-              "dev": true,
-              "optional": true,
-              "requires": {
-                "detect-libc": "^1.0.2",
-                "mkdirp": "^0.5.1",
-                "needle": "^2.2.1",
-                "nopt": "^4.0.1",
-                "npm-packlist": "^1.1.6",
-                "npmlog": "^4.0.2",
-                "rc": "^1.2.7",
-                "rimraf": "^2.6.1",
-                "semver": "^5.3.0",
-                "tar": "^4"
-              }
-            },
-            "nopt": {
-              "version": "4.0.1",
-              "bundled": true,
-              "dev": true,
-              "optional": true,
-              "requires": {
-                "abbrev": "1",
-                "osenv": "^0.1.4"
-              }
-            },
-            "npm-bundled": {
-              "version": "1.0.5",
-              "bundled": true,
-              "dev": true,
-              "optional": true
-            },
-            "npm-packlist": {
-              "version": "1.2.0",
-              "bundled": true,
-              "dev": true,
-              "optional": true,
-              "requires": {
-                "ignore-walk": "^3.0.1",
-                "npm-bundled": "^1.0.1"
-              }
-            },
-            "npmlog": {
-              "version": "4.1.2",
-              "bundled": true,
-              "dev": true,
-              "optional": true,
-              "requires": {
-                "are-we-there-yet": "~1.1.2",
-                "console-control-strings": "~1.1.0",
-                "gauge": "~2.7.3",
-                "set-blocking": "~2.0.0"
-              }
-            },
-            "number-is-nan": {
-              "version": "1.0.1",
-              "bundled": true,
-              "dev": true
-            },
-            "object-assign": {
-              "version": "4.1.1",
-              "bundled": true,
-              "dev": true,
-              "optional": true
-            },
-            "once": {
-              "version": "1.4.0",
-              "bundled": true,
-              "dev": true,
-              "requires": {
-                "wrappy": "1"
-              }
-            },
-            "os-homedir": {
-              "version": "1.0.2",
-              "bundled": true,
-              "dev": true,
-              "optional": true
-            },
-            "os-tmpdir": {
-              "version": "1.0.2",
-              "bundled": true,
-              "dev": true,
-              "optional": true
-            },
-            "osenv": {
-              "version": "0.1.5",
-              "bundled": true,
-              "dev": true,
-              "optional": true,
-              "requires": {
-                "os-homedir": "^1.0.0",
-                "os-tmpdir": "^1.0.0"
-              }
-            },
-            "path-is-absolute": {
-              "version": "1.0.1",
-              "bundled": true,
-              "dev": true,
-              "optional": true
-            },
-            "process-nextick-args": {
-              "version": "2.0.0",
-              "bundled": true,
-              "dev": true,
-              "optional": true
-            },
-            "rc": {
-              "version": "1.2.8",
-              "bundled": true,
-              "dev": true,
-              "optional": true,
-              "requires": {
-                "deep-extend": "^0.6.0",
-                "ini": "~1.3.0",
-                "minimist": "^1.2.0",
-                "strip-json-comments": "~2.0.1"
-              },
-              "dependencies": {
-                "minimist": {
-                  "version": "1.2.0",
-                  "bundled": true,
-                  "dev": true,
-                  "optional": true
-                }
-              }
-            },
-            "readable-stream": {
-              "version": "2.3.6",
-              "bundled": true,
-              "dev": true,
-              "optional": true,
-              "requires": {
-                "core-util-is": "~1.0.0",
-                "inherits": "~2.0.3",
-                "isarray": "~1.0.0",
-                "process-nextick-args": "~2.0.0",
-                "safe-buffer": "~5.1.1",
-                "string_decoder": "~1.1.1",
-                "util-deprecate": "~1.0.1"
-              }
-            },
-            "rimraf": {
-              "version": "2.6.3",
-              "bundled": true,
-              "dev": true,
-              "optional": true,
-              "requires": {
-                "glob": "^7.1.3"
-              }
-            },
-            "safe-buffer": {
-              "version": "5.1.2",
-              "bundled": true,
-              "dev": true
-            },
-            "safer-buffer": {
-              "version": "2.1.2",
-              "bundled": true,
-              "dev": true,
-              "optional": true
-            },
-            "sax": {
-              "version": "1.2.4",
-              "bundled": true,
-              "dev": true,
-              "optional": true
-            },
-            "semver": {
-              "version": "5.6.0",
-              "bundled": true,
-              "dev": true,
-              "optional": true
-            },
-            "set-blocking": {
-              "version": "2.0.0",
-              "bundled": true,
-              "dev": true,
-              "optional": true
-            },
-            "signal-exit": {
-              "version": "3.0.2",
-              "bundled": true,
-              "dev": true,
-              "optional": true
-            },
-            "string-width": {
-              "version": "1.0.2",
-              "bundled": true,
-              "dev": true,
-              "requires": {
-                "code-point-at": "^1.0.0",
-                "is-fullwidth-code-point": "^1.0.0",
-                "strip-ansi": "^3.0.0"
-              }
-            },
-            "string_decoder": {
-              "version": "1.1.1",
-              "bundled": true,
-              "dev": true,
-              "optional": true,
-              "requires": {
-                "safe-buffer": "~5.1.0"
-              }
-            },
-            "strip-ansi": {
-              "version": "3.0.1",
-              "bundled": true,
-              "dev": true,
-              "requires": {
-                "ansi-regex": "^2.0.0"
-              }
-            },
-            "strip-json-comments": {
-              "version": "2.0.1",
-              "bundled": true,
-              "dev": true,
-              "optional": true
-            },
-            "tar": {
-              "version": "4.4.8",
-              "bundled": true,
-              "dev": true,
-              "optional": true,
-              "requires": {
-                "chownr": "^1.1.1",
-                "fs-minipass": "^1.2.5",
-                "minipass": "^2.3.4",
-                "minizlib": "^1.1.1",
-                "mkdirp": "^0.5.0",
-                "safe-buffer": "^5.1.2",
-                "yallist": "^3.0.2"
-              }
-            },
-            "util-deprecate": {
-              "version": "1.0.2",
-              "bundled": true,
-              "dev": true,
-              "optional": true
-            },
-            "wide-align": {
-              "version": "1.1.3",
-              "bundled": true,
-              "dev": true,
-              "optional": true,
-              "requires": {
-                "string-width": "^1.0.2 || 2"
-              }
-            },
-            "wrappy": {
-              "version": "1.0.2",
-              "bundled": true,
-              "dev": true
-            },
-            "yallist": {
-              "version": "3.0.3",
-              "bundled": true,
-              "dev": true
-            }
-          }
-        },
-        "get-stream": {
-          "version": "4.1.0",
-          "resolved": "https://registry.npmjs.org/get-stream/-/get-stream-4.1.0.tgz",
-          "integrity": "sha512-GMat4EJ5161kIy2HevLlr4luNjBgvmj413KaQA7jt4V8B4RDsfpHk7WQ9GVqfYyyx8OS/L66Kox+rJRNklLK7w==",
-          "dev": true,
-          "requires": {
-            "pump": "^3.0.0"
-          }
-        },
-        "is-accessor-descriptor": {
-          "version": "0.1.6",
-          "resolved": "https://registry.npmjs.org/is-accessor-descriptor/-/is-accessor-descriptor-0.1.6.tgz",
-          "integrity": "sha1-qeEss66Nh2cn7u84Q/igiXtcmNY=",
-          "dev": true,
-          "requires": {
-            "kind-of": "^3.0.2"
-          },
-          "dependencies": {
-            "kind-of": {
-              "version": "3.2.2",
-              "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-3.2.2.tgz",
-              "integrity": "sha1-MeohpzS6ubuw8yRm2JOupR5KPGQ=",
-              "dev": true,
-              "requires": {
-                "is-buffer": "^1.1.5"
-              }
-            }
-          }
-        },
-        "is-data-descriptor": {
-          "version": "0.1.4",
-          "resolved": "https://registry.npmjs.org/is-data-descriptor/-/is-data-descriptor-0.1.4.tgz",
-          "integrity": "sha1-C17mSDiOLIYCgueT8YVv7D8wG1Y=",
-          "dev": true,
-          "requires": {
-            "kind-of": "^3.0.2"
-          },
-          "dependencies": {
-            "kind-of": {
-              "version": "3.2.2",
-              "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-3.2.2.tgz",
-              "integrity": "sha1-MeohpzS6ubuw8yRm2JOupR5KPGQ=",
-              "dev": true,
-              "requires": {
-                "is-buffer": "^1.1.5"
-              }
-            }
-          }
-        },
-        "is-number": {
-          "version": "3.0.0",
-          "resolved": "https://registry.npmjs.org/is-number/-/is-number-3.0.0.tgz",
-          "integrity": "sha1-JP1iAaR4LPUFYcgQJ2r8fRLXEZU=",
-          "dev": true,
-          "requires": {
-            "kind-of": "^3.0.2"
-          },
-          "dependencies": {
-            "kind-of": {
-              "version": "3.2.2",
-              "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-3.2.2.tgz",
-              "integrity": "sha1-MeohpzS6ubuw8yRm2JOupR5KPGQ=",
-              "dev": true,
-              "requires": {
-                "is-buffer": "^1.1.5"
-              }
-            }
-          }
-        },
-        "isobject": {
-          "version": "3.0.1",
-          "resolved": "https://registry.npmjs.org/isobject/-/isobject-3.0.1.tgz",
-          "integrity": "sha1-TkMekrEalzFjaqH5yNHMvP2reN8=",
-          "dev": true
-        },
-        "kind-of": {
-          "version": "6.0.2",
-          "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-6.0.2.tgz",
-          "integrity": "sha512-s5kLOcnH0XqDO+FvuaLX8DDjZ18CGFk7VygH40QoKPUQhW4e2rvM0rwUq0t8IQDOwYSeLK01U90OjzBTme2QqA==",
-          "dev": true
-        },
-        "micromatch": {
-          "version": "3.1.10",
-          "resolved": "https://registry.npmjs.org/micromatch/-/micromatch-3.1.10.tgz",
-          "integrity": "sha512-MWikgl9n9M3w+bpsY3He8L+w9eF9338xRl8IAO5viDizwSzziFEyUzo2xrrloB64ADbTf8uA8vRqqttDTOmccg==",
-          "dev": true,
-          "requires": {
-            "arr-diff": "^4.0.0",
-            "array-unique": "^0.3.2",
-            "braces": "^2.3.1",
-            "define-property": "^2.0.2",
-            "extend-shallow": "^3.0.2",
-            "extglob": "^2.0.4",
-            "fragment-cache": "^0.2.1",
-            "kind-of": "^6.0.2",
-            "nanomatch": "^1.2.9",
-            "object.pick": "^1.3.0",
-            "regex-not": "^1.0.0",
-            "snapdragon": "^0.8.1",
-            "to-regex": "^3.0.2"
-          }
-        },
-        "minimist": {
-          "version": "1.2.0",
-          "resolved": "https://registry.npmjs.org/minimist/-/minimist-1.2.0.tgz",
-          "integrity": "sha1-o1AIsg9BOD7sH7kU9M1d95omQoQ=",
-          "dev": true
-        },
-        "pump": {
-          "version": "3.0.0",
-          "resolved": "https://registry.npmjs.org/pump/-/pump-3.0.0.tgz",
-          "integrity": "sha512-LwZy+p3SFs1Pytd/jYct4wpv49HiYCqd9Rlc5ZVdk0V+8Yzv6jR5Blk3TRmPL1ft69TxP0IMZGJ+WPFU2BFhww==",
-          "dev": true,
-          "requires": {
-            "end-of-stream": "^1.1.0",
-            "once": "^1.3.1"
-          }
-        }
-      }
-    },
-    "sass-graph": {
-      "version": "2.2.4",
-      "resolved": "https://registry.npmjs.org/sass-graph/-/sass-graph-2.2.4.tgz",
-      "integrity": "sha1-E/vWPNHK8JCLn9k0dq1DpR0eC0k=",
-      "dev": true,
-      "optional": true,
-      "requires": {
-        "glob": "^7.0.0",
-        "lodash": "^4.0.0",
-        "scss-tokenizer": "^0.2.3",
-        "yargs": "^7.0.0"
-      }
-    },
-    "sass-loader": {
-      "version": "7.1.0",
-      "resolved": "https://registry.npmjs.org/sass-loader/-/sass-loader-7.1.0.tgz",
-      "integrity": "sha512-+G+BKGglmZM2GUSfT9TLuEp6tzehHPjAMoRRItOojWIqIGPloVCMhNIQuG639eJ+y033PaGTSjLaTHts8Kw79w==",
-      "dev": true,
-      "requires": {
-        "clone-deep": "^2.0.1",
-        "loader-utils": "^1.0.1",
-        "lodash.tail": "^4.1.1",
-        "neo-async": "^2.5.0",
-        "pify": "^3.0.0",
-        "semver": "^5.5.0"
-      }
-    },
-    "sax": {
-      "version": "0.5.8",
-      "resolved": "https://registry.npmjs.org/sax/-/sax-0.5.8.tgz",
-      "integrity": "sha1-1HLbIo6zMcJQaw6MFVJK25OdEsE=",
-      "dev": true
-    },
-    "schema-utils": {
-      "version": "1.0.0",
-      "resolved": "https://registry.npmjs.org/schema-utils/-/schema-utils-1.0.0.tgz",
-      "integrity": "sha512-i27Mic4KovM/lnGsy8whRCHhc7VicJajAjTrYg11K9zfZXnYIt4k5F+kZkwjnrhKzLic/HLU4j11mjsz2G/75g==",
-      "dev": true,
-      "requires": {
-        "ajv": "^6.1.0",
-        "ajv-errors": "^1.0.0",
-        "ajv-keywords": "^3.1.0"
-      }
-    },
-    "scss-tokenizer": {
-      "version": "0.2.3",
-      "resolved": "https://registry.npmjs.org/scss-tokenizer/-/scss-tokenizer-0.2.3.tgz",
-      "integrity": "sha1-jrBtualyMzOCTT9VMGQRSYR85dE=",
-      "dev": true,
-      "optional": true,
-      "requires": {
-        "js-base64": "^2.1.8",
-        "source-map": "^0.4.2"
-      },
-      "dependencies": {
-        "source-map": {
-          "version": "0.4.4",
-          "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.4.4.tgz",
-          "integrity": "sha1-66T12pwNyZneaAMti092FzZSA2s=",
-          "dev": true,
-          "optional": true,
-          "requires": {
-            "amdefine": ">=0.0.4"
-          }
-        }
-      }
-    },
-    "select-hose": {
-      "version": "2.0.0",
-      "resolved": "https://registry.npmjs.org/select-hose/-/select-hose-2.0.0.tgz",
-      "integrity": "sha1-Yl2GWPhlr0Psliv8N2o3NZpJlMo=",
-      "dev": true
-    },
-    "selfsigned": {
-      "version": "1.10.4",
-      "resolved": "https://registry.npmjs.org/selfsigned/-/selfsigned-1.10.4.tgz",
-      "integrity": "sha512-9AukTiDmHXGXWtWjembZ5NDmVvP2695EtpgbCsxCa68w3c88B+alqbmZ4O3hZ4VWGXeGWzEVdvqgAJD8DQPCDw==",
-      "dev": true,
-      "requires": {
-        "node-forge": "0.7.5"
-      }
-    },
-    "semver": {
-      "version": "5.5.0",
-      "resolved": "https://registry.npmjs.org/semver/-/semver-5.5.0.tgz",
-      "integrity": "sha512-4SJ3dm0WAwWy/NVeioZh5AntkdJoWKxHxcmyP622fOkgHa4z3R0TdBJICINyaSDE6uNwVc8gZr+ZinwZAH4xIA=="
-    },
-    "semver-compare": {
-      "version": "1.0.0",
-      "resolved": "https://registry.npmjs.org/semver-compare/-/semver-compare-1.0.0.tgz",
-      "integrity": "sha1-De4hahyUGrN+nvsXiPavxf9VN/w=",
-      "dev": true
-    },
-    "semver-dsl": {
-      "version": "1.0.1",
-      "resolved": "https://registry.npmjs.org/semver-dsl/-/semver-dsl-1.0.1.tgz",
-      "integrity": "sha1-02eN5VVeimH2Ke7QJTZq5fJzQKA=",
-      "dev": true,
-      "requires": {
-        "semver": "^5.3.0"
-      }
-    },
-    "semver-intersect": {
-      "version": "1.4.0",
-      "resolved": "https://registry.npmjs.org/semver-intersect/-/semver-intersect-1.4.0.tgz",
-      "integrity": "sha512-d8fvGg5ycKAq0+I6nfWeCx6ffaWJCsBYU0H2Rq56+/zFePYfT8mXkB3tWBSjR5BerkHNZ5eTPIk1/LBYas35xQ==",
-      "dev": true,
-      "requires": {
-        "semver": "^5.0.0"
-      }
-    },
-    "send": {
-      "version": "0.16.2",
-      "resolved": "https://registry.npmjs.org/send/-/send-0.16.2.tgz",
-      "integrity": "sha512-E64YFPUssFHEFBvpbbjr44NCLtI1AohxQ8ZSiJjQLskAdKuriYEP6VyGEsRDH8ScozGpkaX1BGvhanqCwkcEZw==",
-      "dev": true,
-      "requires": {
-        "debug": "2.6.9",
-        "depd": "~1.1.2",
-        "destroy": "~1.0.4",
-        "encodeurl": "~1.0.2",
-        "escape-html": "~1.0.3",
-        "etag": "~1.8.1",
-        "fresh": "0.5.2",
-        "http-errors": "~1.6.2",
-        "mime": "1.4.1",
-        "ms": "2.0.0",
-        "on-finished": "~2.3.0",
-        "range-parser": "~1.2.0",
-        "statuses": "~1.4.0"
-      },
-      "dependencies": {
-        "mime": {
-          "version": "1.4.1",
-          "resolved": "https://registry.npmjs.org/mime/-/mime-1.4.1.tgz",
-          "integrity": "sha512-KI1+qOZu5DcW6wayYHSzR/tXKCDC5Om4s1z2QJjDULzLcmf3DvzS7oluY4HCTrc+9FiKmWUgeNLg7W3uIQvxtQ==",
-          "dev": true
-        }
-      }
-    },
-    "serialize-javascript": {
-      "version": "1.6.0",
-      "resolved": "https://registry.npmjs.org/serialize-javascript/-/serialize-javascript-1.6.0.tgz",
-      "integrity": "sha512-AQxrNqu4EXWt03dJdgKXI+Au9+pvEuM5+Nk5g6+TmuxMCkEL03VhZ31HM+VKeaaZbFpDHaoSruiHq4PW9AIrOQ==",
-      "dev": true
-    },
-    "serve-index": {
-      "version": "1.9.1",
-      "resolved": "https://registry.npmjs.org/serve-index/-/serve-index-1.9.1.tgz",
-      "integrity": "sha1-03aNabHn2C5c4FD/9bRTvqEqkjk=",
-      "dev": true,
-      "requires": {
-        "accepts": "~1.3.4",
-        "batch": "0.6.1",
-        "debug": "2.6.9",
-        "escape-html": "~1.0.3",
-        "http-errors": "~1.6.2",
-        "mime-types": "~2.1.17",
-        "parseurl": "~1.3.2"
-      }
-    },
-    "serve-static": {
-      "version": "1.13.2",
-      "resolved": "https://registry.npmjs.org/serve-static/-/serve-static-1.13.2.tgz",
-      "integrity": "sha512-p/tdJrO4U387R9oMjb1oj7qSMaMfmOyd4j9hOFoxZe2baQszgHcSWjuya/CiT5kgZZKRudHNOA0pYXOl8rQ5nw==",
-      "dev": true,
-      "requires": {
-        "encodeurl": "~1.0.2",
-        "escape-html": "~1.0.3",
-        "parseurl": "~1.3.2",
-        "send": "0.16.2"
-      }
-    },
-    "set-blocking": {
-      "version": "2.0.0",
-      "resolved": "https://registry.npmjs.org/set-blocking/-/set-blocking-2.0.0.tgz",
-      "integrity": "sha1-BF+XgtARrppoA93TgrJDkrPYkPc=",
-      "dev": true
-    },
-    "set-immediate-shim": {
-      "version": "1.0.1",
-      "resolved": "https://registry.npmjs.org/set-immediate-shim/-/set-immediate-shim-1.0.1.tgz",
-      "integrity": "sha1-SysbJ+uAip+NzEgaWOXlb1mfP2E=",
-      "dev": true
-    },
-    "set-value": {
-      "version": "2.0.0",
-      "resolved": "https://registry.npmjs.org/set-value/-/set-value-2.0.0.tgz",
-      "integrity": "sha512-hw0yxk9GT/Hr5yJEYnHNKYXkIA8mVJgd9ditYZCe16ZczcaELYYcfvaXesNACk2O8O0nTiPQcQhGUQj8JLzeeg==",
-      "dev": true,
-      "requires": {
-        "extend-shallow": "^2.0.1",
-        "is-extendable": "^0.1.1",
-        "is-plain-object": "^2.0.3",
-        "split-string": "^3.0.1"
-      },
-      "dependencies": {
-        "extend-shallow": {
-          "version": "2.0.1",
-          "resolved": "https://registry.npmjs.org/extend-shallow/-/extend-shallow-2.0.1.tgz",
-          "integrity": "sha1-Ua99YUrZqfYQ6huvu5idaxxWiQ8=",
-          "dev": true,
-          "requires": {
-            "is-extendable": "^0.1.0"
-          }
-        }
-      }
-    },
-    "setimmediate": {
-      "version": "1.0.5",
-      "resolved": "https://registry.npmjs.org/setimmediate/-/setimmediate-1.0.5.tgz",
-      "integrity": "sha1-KQy7Iy4waULX1+qbg3Mqt4VvgoU=",
-      "dev": true
-    },
-    "setprototypeof": {
-      "version": "1.1.0",
-      "resolved": "https://registry.npmjs.org/setprototypeof/-/setprototypeof-1.1.0.tgz",
-      "integrity": "sha512-BvE/TwpZX4FXExxOxZyRGQQv651MSwmWKZGqvmPcRIjDqWub67kTKuIMx43cZZrS/cBBzwBcNDWoFxt2XEFIpQ==",
-      "dev": true
-    },
-    "sha.js": {
-      "version": "2.4.10",
-      "resolved": "https://registry.npmjs.org/sha.js/-/sha.js-2.4.10.tgz",
-      "integrity": "sha512-vnwmrFDlOExK4Nm16J2KMWHLrp14lBrjxMxBJpu++EnsuBmpiYaM/MEs46Vxxm/4FvdP5yTwuCTO9it5FSjrqA==",
-      "dev": true,
-      "requires": {
-        "inherits": "^2.0.1",
-        "safe-buffer": "^5.0.1"
-      }
-    },
-    "shallow-clone": {
-      "version": "1.0.0",
-      "resolved": "https://registry.npmjs.org/shallow-clone/-/shallow-clone-1.0.0.tgz",
-      "integrity": "sha512-oeXreoKR/SyNJtRJMAKPDSvd28OqEwG4eR/xc856cRGBII7gX9lvAqDxusPm0846z/w/hWYjI1NpKwJ00NHzRA==",
-      "dev": true,
-      "requires": {
-        "is-extendable": "^0.1.1",
-        "kind-of": "^5.0.0",
-        "mixin-object": "^2.0.1"
-      },
-      "dependencies": {
-        "kind-of": {
-          "version": "5.1.0",
-          "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-5.1.0.tgz",
-          "integrity": "sha512-NGEErnH6F2vUuXDh+OlbcKW7/wOcfdRHaZ7VWtqCztfHri/++YKmP51OdWeGPuqCOba6kk2OTe5d02VmTB80Pw==",
-          "dev": true
-        }
-      }
-    },
-    "shebang-command": {
-      "version": "1.2.0",
-      "resolved": "https://registry.npmjs.org/shebang-command/-/shebang-command-1.2.0.tgz",
-      "integrity": "sha1-RKrGW2lbAzmJaMOfNj/uXer98eo=",
-      "dev": true,
-      "requires": {
-        "shebang-regex": "^1.0.0"
-      }
-    },
-    "shebang-regex": {
-      "version": "1.0.0",
-      "resolved": "https://registry.npmjs.org/shebang-regex/-/shebang-regex-1.0.0.tgz",
-      "integrity": "sha1-2kL0l0DAtC2yypcoVxyxkMmO/qM=",
-      "dev": true
-    },
-    "shell-quote": {
-      "version": "1.6.1",
-      "resolved": "https://registry.npmjs.org/shell-quote/-/shell-quote-1.6.1.tgz",
-      "integrity": "sha1-9HgZSczkAmlxJ0MOo7PFR29IF2c=",
-      "requires": {
-        "array-filter": "~0.0.0",
-        "array-map": "~0.0.0",
-        "array-reduce": "~0.0.0",
-        "jsonify": "~0.0.0"
-      }
-    },
-    "shelljs": {
-      "version": "0.8.3",
-      "resolved": "https://registry.npmjs.org/shelljs/-/shelljs-0.8.3.tgz",
-      "integrity": "sha512-fc0BKlAWiLpwZljmOvAOTE/gXawtCoNrP5oaY7KIaQbbyHeQVg01pSEuEGvGh3HEdBU4baCD7wQBwADmM/7f7A==",
-      "dev": true,
-      "requires": {
-        "glob": "^7.0.0",
-        "interpret": "^1.0.0",
-        "rechoir": "^0.6.2"
-      }
-    },
-    "shellwords": {
-      "version": "0.1.1",
-      "resolved": "https://registry.npmjs.org/shellwords/-/shellwords-0.1.1.tgz",
-      "integrity": "sha512-vFwSUfQvqybiICwZY5+DAWIPLKsWO31Q91JSKl3UYv+K5c2QRPzn0qzec6QPu1Qc9eHYItiP3NdJqNVqetYAww==",
-      "dev": true
-    },
-    "signal-exit": {
-      "version": "3.0.2",
-      "resolved": "https://registry.npmjs.org/signal-exit/-/signal-exit-3.0.2.tgz",
-      "integrity": "sha1-tf3AjxKH6hF4Yo5BXiUTK3NkbG0=",
-      "dev": true
-    },
-    "sisteransi": {
-      "version": "1.0.0",
-      "resolved": "https://registry.npmjs.org/sisteransi/-/sisteransi-1.0.0.tgz",
-      "integrity": "sha512-N+z4pHB4AmUv0SjveWRd6q1Nj5w62m5jodv+GD8lvmbY/83T/rpbJGZOnK5T149OldDj4Db07BSv9xY4K6NTPQ==",
-      "dev": true
-    },
-    "skmeans": {
-      "version": "0.9.7",
-      "resolved": "https://registry.npmjs.org/skmeans/-/skmeans-0.9.7.tgz",
-      "integrity": "sha512-hNj1/oZ7ygsfmPZ7ZfN5MUBRoGg1gtpnImuJBgLO0ljQ67DtJuiQaiYdS4lUA6s0KCwnPhGivtC/WRwIZLkHyg=="
-    },
-    "sl-browser-agent": {
-      "version": "1.0.170",
-      "resolved": "https://registry.npmjs.org/sl-browser-agent/-/sl-browser-agent-1.0.170.tgz",
-      "integrity": "sha512-roB2ZAf10LuSdMUBVCfOPoFH6DGId8zuO/UW2Wl7ZlaLkhS/bfOB9vFaGR01UnT9UxK86V+H6mI/Ix0JukSXpw==",
-      "requires": {
-        "source-map": "^0.5.6"
-      }
-    },
-    "sl-cia": {
-      "version": "2.1.274",
-      "resolved": "https://registry.npmjs.org/sl-cia/-/sl-cia-2.1.274.tgz",
-      "integrity": "sha512-UzoNc9vInZPMVpQA1Zq3/iNFZNm5sDfj/RhInAc8Xrb5VWAjxMNsOYML3go7yqxVng5yQ504uYfHpXjYKEyYdw==",
-      "requires": {
-        "ast-traverse": "^0.1.1",
-        "async": "^2.6.0",
-        "babel-generator": "^6.25.0",
-        "babylon": "^6.17.4",
-        "bunyan": "^1.8.4",
-        "bunyan-blackhole": "^1.1.1",
-        "bunyan-format": "^0.2.1",
-        "escodegen": "^1.9.0",
-        "esprima": "^4.0.0",
-        "fileset": "^2.0.3",
-        "glob": "^5.0.15",
-        "is-valid-path": "^0.1.1",
-        "istanbul-lib-instrument": "^1.9.1",
-        "jwt-decode": "^2.1.0",
-        "md5": "^2.0.0",
-        "mkdirp": "^0.5.1",
-        "nopt": "^3.0.4",
-        "nopt-usage": "^0.1.0",
-        "once": "^1.4.0",
-        "parse-diff": "^0.3.0",
-        "promise": "^7.0.4",
-        "read-json-sync": "^1.1.0",
-        "sl-esprima-ast-utils": "^0.0.7",
-        "sl-js-infra": "^1.0.115",
-        "source-map": "^0.5.7",
-        "util": "^0.10.3",
-        "uuid": "^2.0.1"
-      },
-      "dependencies": {
-        "glob": {
-          "version": "5.0.15",
-          "resolved": "https://registry.npmjs.org/glob/-/glob-5.0.15.tgz",
-          "integrity": "sha1-G8k2ueAvSmA/zCIuz3Yz0wuLk7E=",
-          "requires": {
-            "inflight": "^1.0.4",
-            "inherits": "2",
-            "minimatch": "2 || 3",
-            "once": "^1.3.0",
-            "path-is-absolute": "^1.0.0"
-          }
-        },
-        "nopt": {
-          "version": "3.0.6",
-          "resolved": "https://registry.npmjs.org/nopt/-/nopt-3.0.6.tgz",
-          "integrity": "sha1-xkZdvwirzU2zWTF/eaxopkayj/k=",
-          "requires": {
-            "abbrev": "1"
-          }
-        },
-        "uuid": {
-          "version": "2.0.3",
-          "resolved": "https://registry.npmjs.org/uuid/-/uuid-2.0.3.tgz",
-          "integrity": "sha1-Z+LoY3lyFVMN/zGOW/nc6/1Hsho="
-        }
-      }
-    },
-    "sl-esprima-ast-utils": {
-      "version": "0.0.7",
-      "resolved": "https://registry.npmjs.org/sl-esprima-ast-utils/-/sl-esprima-ast-utils-0.0.7.tgz",
-      "integrity": "sha1-N76P/OEry3x/0zBBG855rz3y0mg=",
-      "requires": {
-        "archy": "^1.0.0",
-        "cssauron-falafel": "^1.2.1",
-        "esprima": "^3.1.3"
-      },
-      "dependencies": {
-        "esprima": {
-          "version": "3.1.3",
-          "resolved": "https://registry.npmjs.org/esprima/-/esprima-3.1.3.tgz",
-          "integrity": "sha1-/cpRzuYTOJXjyI1TXOSdv/YqRjM="
-        }
-      }
-    },
-    "sl-js-infra": {
-      "version": "1.0.119",
-      "resolved": "https://registry.npmjs.org/sl-js-infra/-/sl-js-infra-1.0.119.tgz",
-      "integrity": "sha512-3MlitHbJ32cjNE4nrqhAoKRzsAxpBuuvRSs+lCi3/ry34vlndjYFE6pReqb+MChc2qvBmXVycL3wUq08DMghPg==",
-      "requires": {
-        "@types/bunyan": "0.0.36",
-        "@types/request": "^0.0.45",
-        "@types/uuid": "^3.4.3",
-        "bunyan": "^1.8.4",
-        "bunyan-format": "^0.2.1",
-        "find-up": "^3.0.0",
-        "gitignore-parser": "0.0.2",
-        "jwt-decode": "^2.2.0",
-        "request": "^2.80.0",
-        "source-map": "^0.6.1",
-        "uuid": "^3.1.0"
-      },
-      "dependencies": {
-        "find-up": {
-          "version": "3.0.0",
-          "resolved": "https://registry.npmjs.org/find-up/-/find-up-3.0.0.tgz",
-          "integrity": "sha512-1yD6RmLI1XBfxugvORwlck6f75tYL+iR0jqwsOrOxMZyGYqUuDhJ0l4AXdO1iX/FTs9cBAMEk1gWSEx1kSbylg==",
-          "requires": {
-            "locate-path": "^3.0.0"
-          }
-        },
-        "locate-path": {
-          "version": "3.0.0",
-          "resolved": "https://registry.npmjs.org/locate-path/-/locate-path-3.0.0.tgz",
-          "integrity": "sha512-7AO748wWnIhNqAuaty2ZWHkQHRSNfPVIsPIfwEOWO22AmaoVrWavlOcMR5nzTLNYvp36X220/maaRsrec1G65A==",
-          "requires": {
-            "p-locate": "^3.0.0",
-            "path-exists": "^3.0.0"
-          }
-        },
-        "p-limit": {
-          "version": "2.0.0",
-          "resolved": "https://registry.npmjs.org/p-limit/-/p-limit-2.0.0.tgz",
-          "integrity": "sha512-fl5s52lI5ahKCernzzIyAP0QAZbGIovtVHGwpcu1Jr/EpzLVDI2myISHwGqK7m8uQFugVWSrbxH7XnhGtvEc+A==",
-          "requires": {
-            "p-try": "^2.0.0"
-          }
-        },
-        "p-locate": {
-          "version": "3.0.0",
-          "resolved": "https://registry.npmjs.org/p-locate/-/p-locate-3.0.0.tgz",
-          "integrity": "sha512-x+12w/To+4GFfgJhBEpiDcLozRJGegY+Ei7/z0tSLkMmxGZNybVMSfWj9aJn8Z5Fc7dBUNJOOVgPv2H7IwulSQ==",
-          "requires": {
-            "p-limit": "^2.0.0"
-          }
-        },
-        "p-try": {
-          "version": "2.0.0",
-          "resolved": "https://registry.npmjs.org/p-try/-/p-try-2.0.0.tgz",
-          "integrity": "sha512-hMp0onDKIajHfIkdRk3P4CdCmErkYAxxDtP3Wx/4nZ3aGlau2VKh3mZpcuFkH27WQkL/3WBCPOktzA9ZOAnMQQ=="
-        },
-        "source-map": {
-          "version": "0.6.1",
-          "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.6.1.tgz",
-          "integrity": "sha512-UjgapumWlbMhkBgzT7Ykc5YXUT46F0iKu8SGXq0bcwP5dz/h0Plj6enJqjz1Zbq2l5WaqYnrVbwWOWMyF3F47g=="
-        }
-      }
-    },
-    "sl-node": {
-      "version": "2.0.122",
-      "resolved": "https://registry.npmjs.org/sl-node/-/sl-node-2.0.122.tgz",
-      "integrity": "sha512-k9p43lfm3AwNt4L1hfedd/0wdzlFiM0Loxwi+hGcz4WBqwGBBtaPXdArAyk3FK4+s+wuo6HWmEx/1/0n3lh6zg==",
-      "requires": {
-        "async": "^2.1.4",
-        "bunyan": "^1.8.10",
-        "bunyan-format": "^0.2.1",
-        "commander": "^2.9.0",
-        "jwt-decode": "^2.2.0",
-        "needle": "^1.0.0",
-        "nopt": "^3.0.4",
-        "nopt-usage": "^0.1.0",
-        "promise": "^7.0.4",
-        "shell-quote": "^1.6.1"
-      },
-      "dependencies": {
-        "nopt": {
-          "version": "3.0.6",
-          "resolved": "https://registry.npmjs.org/nopt/-/nopt-3.0.6.tgz",
-          "integrity": "sha1-xkZdvwirzU2zWTF/eaxopkayj/k=",
-          "requires": {
-            "abbrev": "1"
-          }
-        }
-      }
-    },
-    "sl-node-mocha": {
-      "version": "1.0.27",
-      "resolved": "https://registry.npmjs.org/sl-node-mocha/-/sl-node-mocha-1.0.27.tgz",
-      "integrity": "sha1-V5DbaYtbfJCZi8x1f+T9htuEIh8="
-    },
-    "sl-node-mocha2": {
-      "version": "2.0.1",
-      "resolved": "https://registry.npmjs.org/sl-node-mocha2/-/sl-node-mocha2-2.0.1.tgz",
-      "integrity": "sha1-kJJcQZ2vN2apwth0T06m4Ms24to="
-    },
-    "sl-node2": {
-      "version": "3.0.165",
-      "resolved": "https://registry.npmjs.org/sl-node2/-/sl-node2-3.0.165.tgz",
-      "integrity": "sha512-tStrBzldG++sMeY06/mWVmmkywwDNcy4hTrHC4x0Wnm/SGiOJ4F2kMRAB8IBn0KHrtzoG/36US7tFoB6W4xdMw==",
-      "requires": {
-        "@types/jwt-decode": "^1.4.28",
-        "@types/request": "^0.0.45",
-        "bunyan": "^1.8.8",
-        "bunyan-format": "^0.2.1",
-        "commander": "^2.9.0",
-        "cookie": "^0.3.1",
-        "jwt-decode": "^2.1.0",
-        "nyc": "^12.0.1",
-        "object-assign": "^4.1.1",
-        "promise": "^7.0.4",
-        "request": "^2.80.0",
-        "shell-quote": "^1.6.1",
-        "sl-js-infra": "^1.0.114"
-      }
-    },
-    "slash": {
-      "version": "1.0.0",
-      "resolved": "https://registry.npmjs.org/slash/-/slash-1.0.0.tgz",
-      "integrity": "sha1-xB8vbDn8FtHNF61LXYlhFK5HDVU=",
-      "dev": true
-    },
-    "slice-ansi": {
-      "version": "0.0.4",
-      "resolved": "https://registry.npmjs.org/slice-ansi/-/slice-ansi-0.0.4.tgz",
-      "integrity": "sha1-7b+JA/ZvfOL46v1s7tZeJkyDGzU=",
-      "dev": true
-    },
-    "slnodejs": {
-      "version": "2.1.124",
-      "resolved": "https://registry.npmjs.org/slnodejs/-/slnodejs-2.1.124.tgz",
-      "integrity": "sha512-qR5hhUXjVdcwVMo/WdCIvuLaEaAmhNtCkMtY7/NMaA8nDckShQt0y6sw/L8MiKQXzFbQaJNTjumUhEwZlpR2wg==",
-      "requires": {
-        "@types/sinon": "^2.3.3",
-        "bunyan": "^1.8.8",
-        "bunyan-format": "^0.2.1",
-        "commander": "^2.9.0",
-        "convert-source-map": "^1.4.0",
-        "esprima": "^4.0.0",
-        "jwt-decode": "^2.1.0",
-        "loader-utils": "^1.1.0",
-        "object-assign": "^4.1.1",
-        "rimraf": "^2.6.2",
-        "semver": "^5.3.0",
-        "sl-browser-agent": "1.0.170",
-        "sl-cia": "2.1.274",
-        "sl-js-infra": "^1.0.113",
-        "sl-node": "^2.0.122",
-        "sl-node-mocha": "^1.0.25",
-        "sl-node-mocha2": "^2.0.0",
-        "sl-node2": "^3.0.163",
-        "version-exists": "0.0.3"
-      },
-      "dependencies": {
-        "@types/sinon": {
-          "version": "2.3.7",
-          "resolved": "https://registry.npmjs.org/@types/sinon/-/sinon-2.3.7.tgz",
-          "integrity": "sha512-w+LjztaZbgZWgt/y/VMP5BUAWLtSyoIJhXyW279hehLPyubDoBNwvhcj3WaSptcekuKYeTCVxrq60rdLc6ImJA=="
-        }
-      }
-    },
-    "smart-buffer": {
-      "version": "4.0.1",
-      "resolved": "https://registry.npmjs.org/smart-buffer/-/smart-buffer-4.0.1.tgz",
-      "integrity": "sha512-RFqinRVJVcCAL9Uh1oVqE6FZkqsyLiVOYEZ20TqIOjuX7iFVJ+zsbs4RIghnw/pTs7mZvt8ZHhvm1ZUrR4fykg==",
-      "dev": true
-    },
-    "snapdragon": {
-      "version": "0.8.2",
-      "resolved": "https://registry.npmjs.org/snapdragon/-/snapdragon-0.8.2.tgz",
-      "integrity": "sha512-FtyOnWN/wCHTVXOMwvSv26d+ko5vWlIDD6zoUJ7LW8vh+ZBC8QdljveRP+crNrtBwioEUWy/4dMtbBjA4ioNlg==",
-      "dev": true,
-      "requires": {
-        "base": "^0.11.1",
-        "debug": "^2.2.0",
-        "define-property": "^0.2.5",
-        "extend-shallow": "^2.0.1",
-        "map-cache": "^0.2.2",
-        "source-map": "^0.5.6",
-        "source-map-resolve": "^0.5.0",
-        "use": "^3.1.0"
-      },
-      "dependencies": {
-        "define-property": {
-          "version": "0.2.5",
-          "resolved": "https://registry.npmjs.org/define-property/-/define-property-0.2.5.tgz",
-          "integrity": "sha1-w1se+RjsPJkPmlvFe+BKrOxcgRY=",
-          "dev": true,
-          "requires": {
-            "is-descriptor": "^0.1.0"
-          }
-        },
-        "extend-shallow": {
-          "version": "2.0.1",
-          "resolved": "https://registry.npmjs.org/extend-shallow/-/extend-shallow-2.0.1.tgz",
-          "integrity": "sha1-Ua99YUrZqfYQ6huvu5idaxxWiQ8=",
-          "dev": true,
-          "requires": {
-            "is-extendable": "^0.1.0"
-          }
-        },
-        "is-accessor-descriptor": {
-          "version": "0.1.6",
-          "resolved": "https://registry.npmjs.org/is-accessor-descriptor/-/is-accessor-descriptor-0.1.6.tgz",
-          "integrity": "sha1-qeEss66Nh2cn7u84Q/igiXtcmNY=",
-          "dev": true,
-          "requires": {
-            "kind-of": "^3.0.2"
-          },
-          "dependencies": {
-            "kind-of": {
-              "version": "3.2.2",
-              "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-3.2.2.tgz",
-              "integrity": "sha1-MeohpzS6ubuw8yRm2JOupR5KPGQ=",
-              "dev": true,
-              "requires": {
-                "is-buffer": "^1.1.5"
-              }
-            }
-          }
-        },
-        "is-data-descriptor": {
-          "version": "0.1.4",
-          "resolved": "https://registry.npmjs.org/is-data-descriptor/-/is-data-descriptor-0.1.4.tgz",
-          "integrity": "sha1-C17mSDiOLIYCgueT8YVv7D8wG1Y=",
-          "dev": true,
-          "requires": {
-            "kind-of": "^3.0.2"
-          },
-          "dependencies": {
-            "kind-of": {
-              "version": "3.2.2",
-              "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-3.2.2.tgz",
-              "integrity": "sha1-MeohpzS6ubuw8yRm2JOupR5KPGQ=",
-              "dev": true,
-              "requires": {
-                "is-buffer": "^1.1.5"
-              }
-            }
-          }
-        },
-        "is-descriptor": {
-          "version": "0.1.6",
-          "resolved": "https://registry.npmjs.org/is-descriptor/-/is-descriptor-0.1.6.tgz",
-          "integrity": "sha512-avDYr0SB3DwO9zsMov0gKCESFYqCnE4hq/4z3TdUlukEy5t9C0YRq7HLrsN52NAcqXKaepeCD0n+B0arnVG3Hg==",
-          "dev": true,
-          "requires": {
-            "is-accessor-descriptor": "^0.1.6",
-            "is-data-descriptor": "^0.1.4",
-            "kind-of": "^5.0.0"
-          }
-        },
-        "kind-of": {
-          "version": "5.1.0",
-          "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-5.1.0.tgz",
-          "integrity": "sha512-NGEErnH6F2vUuXDh+OlbcKW7/wOcfdRHaZ7VWtqCztfHri/++YKmP51OdWeGPuqCOba6kk2OTe5d02VmTB80Pw==",
-          "dev": true
-        }
-      }
-    },
-    "snapdragon-node": {
-      "version": "2.1.1",
-      "resolved": "https://registry.npmjs.org/snapdragon-node/-/snapdragon-node-2.1.1.tgz",
-      "integrity": "sha512-O27l4xaMYt/RSQ5TR3vpWCAB5Kb/czIcqUFOM/C4fYcLnbZUc1PkjTAMjof2pBWaSTwOUd6qUHcFGVGj7aIwnw==",
-      "dev": true,
-      "requires": {
-        "define-property": "^1.0.0",
-        "isobject": "^3.0.0",
-        "snapdragon-util": "^3.0.1"
-      },
-      "dependencies": {
-        "define-property": {
-          "version": "1.0.0",
-          "resolved": "https://registry.npmjs.org/define-property/-/define-property-1.0.0.tgz",
-          "integrity": "sha1-dp66rz9KY6rTr56NMEybvnm/sOY=",
-          "dev": true,
-          "requires": {
-            "is-descriptor": "^1.0.0"
-          }
-        },
-        "isobject": {
-          "version": "3.0.1",
-          "resolved": "https://registry.npmjs.org/isobject/-/isobject-3.0.1.tgz",
-          "integrity": "sha1-TkMekrEalzFjaqH5yNHMvP2reN8=",
-          "dev": true
-        }
-      }
-    },
-    "snapdragon-util": {
-      "version": "3.0.1",
-      "resolved": "https://registry.npmjs.org/snapdragon-util/-/snapdragon-util-3.0.1.tgz",
-      "integrity": "sha512-mbKkMdQKsjX4BAL4bRYTj21edOf8cN7XHdYUJEe+Zn99hVEYcMvKPct1IqNe7+AZPirn8BCDOQBHQZknqmKlZQ==",
-      "dev": true,
-      "requires": {
-        "kind-of": "^3.2.0"
-      }
-    },
-    "sntp": {
-      "version": "1.0.9",
-      "resolved": "https://registry.npmjs.org/sntp/-/sntp-1.0.9.tgz",
-      "integrity": "sha1-ZUEYTMkK7qbG57NeJlkIJEPGYZg=",
-      "requires": {
-        "hoek": "2.x.x"
-      }
-    },
-    "sockjs": {
-      "version": "0.3.19",
-      "resolved": "https://registry.npmjs.org/sockjs/-/sockjs-0.3.19.tgz",
-      "integrity": "sha512-V48klKZl8T6MzatbLlzzRNhMepEys9Y4oGFpypBFFn1gLI/QQ9HtLLyWJNbPlwGLelOVOEijUbTTJeLLI59jLw==",
-      "dev": true,
-      "requires": {
-        "faye-websocket": "^0.10.0",
-        "uuid": "^3.0.1"
-      }
-    },
-    "sockjs-client": {
-      "version": "1.3.0",
-      "resolved": "https://registry.npmjs.org/sockjs-client/-/sockjs-client-1.3.0.tgz",
-      "integrity": "sha512-R9jxEzhnnrdxLCNln0xg5uGHqMnkhPSTzUZH2eXcR03S/On9Yvoq2wyUZILRUhZCNVu2PmwWVoyuiPz8th8zbg==",
-      "dev": true,
-      "requires": {
-        "debug": "^3.2.5",
-        "eventsource": "^1.0.7",
-        "faye-websocket": "~0.11.1",
-        "inherits": "^2.0.3",
-        "json3": "^3.3.2",
-        "url-parse": "^1.4.3"
-      },
-      "dependencies": {
-        "debug": {
-          "version": "3.2.6",
-          "resolved": "https://registry.npmjs.org/debug/-/debug-3.2.6.tgz",
-          "integrity": "sha512-mel+jf7nrtEl5Pn1Qx46zARXKDpBbvzezse7p7LqINmdoIk8PYP5SySaxEmYv6TZ0JyEKA1hsCId6DIhgITtWQ==",
-          "dev": true,
-          "requires": {
-            "ms": "^2.1.1"
-          }
-        },
-        "faye-websocket": {
-          "version": "0.11.1",
-          "resolved": "https://registry.npmjs.org/faye-websocket/-/faye-websocket-0.11.1.tgz",
-          "integrity": "sha1-8O/hjE9W5PQK/H4Gxxn9XuYYjzg=",
-          "dev": true,
-          "requires": {
-            "websocket-driver": ">=0.5.1"
-          }
-        },
-        "ms": {
-          "version": "2.1.1",
-          "resolved": "https://registry.npmjs.org/ms/-/ms-2.1.1.tgz",
-          "integrity": "sha512-tgp+dl5cGk28utYktBsrFqA7HKgrhgPsg6Z/EfhWI4gl1Hwq8B/GmY/0oXZ6nF8hDVesS/FpnYaD/kOWhYQvyg==",
-          "dev": true
-        }
-      }
-    },
-    "socks": {
-      "version": "2.2.2",
-      "resolved": "https://registry.npmjs.org/socks/-/socks-2.2.2.tgz",
-      "integrity": "sha512-g6wjBnnMOZpE0ym6e0uHSddz9p3a+WsBaaYQaBaSCJYvrC4IXykQR9MNGjLQf38e9iIIhp3b1/Zk8YZI3KGJ0Q==",
-      "dev": true,
-      "requires": {
-        "ip": "^1.1.5",
-        "smart-buffer": "^4.0.1"
-      }
-    },
-    "socks-proxy-agent": {
-      "version": "4.0.1",
-      "resolved": "https://registry.npmjs.org/socks-proxy-agent/-/socks-proxy-agent-4.0.1.tgz",
-      "integrity": "sha512-Kezx6/VBguXOsEe5oU3lXYyKMi4+gva72TwJ7pQY5JfqUx2nMk7NXA6z/mpNqIlfQjWYVfeuNvQjexiTaTn6Nw==",
-      "dev": true,
-      "requires": {
-        "agent-base": "~4.2.0",
-        "socks": "~2.2.0"
-      }
-    },
-    "source-list-map": {
-      "version": "2.0.0",
-      "resolved": "https://registry.npmjs.org/source-list-map/-/source-list-map-2.0.0.tgz",
-      "integrity": "sha512-I2UmuJSRr/T8jisiROLU3A3ltr+swpniSmNPI4Ml3ZCX6tVnDsuZzK7F2hl5jTqbZBWCEKlj5HRQiPExXLgE8A==",
-      "dev": true
-    },
-    "source-map": {
-      "version": "0.5.7",
-      "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.5.7.tgz",
-      "integrity": "sha1-igOdLRAh0i0eoUyA2OpGi6LvP8w="
-    },
-    "source-map-loader": {
-      "version": "0.2.4",
-      "resolved": "https://registry.npmjs.org/source-map-loader/-/source-map-loader-0.2.4.tgz",
-      "integrity": "sha512-OU6UJUty+i2JDpTItnizPrlpOIBLmQbWMuBg9q5bVtnHACqw1tn9nNwqJLbv0/00JjnJb/Ee5g5WS5vrRv7zIQ==",
-      "dev": true,
-      "requires": {
-        "async": "^2.5.0",
-        "loader-utils": "^1.1.0"
-      }
-    },
-    "source-map-resolve": {
-      "version": "0.5.1",
-      "resolved": "https://registry.npmjs.org/source-map-resolve/-/source-map-resolve-0.5.1.tgz",
-      "integrity": "sha512-0KW2wvzfxm8NCTb30z0LMNyPqWCdDGE2viwzUaucqJdkTRXtZiSY3I+2A6nVAjmdOy0I4gU8DwnVVGsk9jvP2A==",
-      "dev": true,
-      "requires": {
-        "atob": "^2.0.0",
-        "decode-uri-component": "^0.2.0",
-        "resolve-url": "^0.2.1",
-        "source-map-url": "^0.4.0",
-        "urix": "^0.1.0"
-      }
-    },
-    "source-map-support": {
-      "version": "0.4.18",
-      "resolved": "https://registry.npmjs.org/source-map-support/-/source-map-support-0.4.18.tgz",
-      "integrity": "sha512-try0/JqxPLF9nOjvSta7tVondkP5dwgyLDjVoyMDlmjugT2lRZ1OfsrYTkCd2hkDnJTKRbO/Rl3orm8vlsUzbA==",
-      "dev": true,
-      "requires": {
-        "source-map": "^0.5.6"
-      }
-    },
-    "source-map-url": {
-      "version": "0.4.0",
-      "resolved": "https://registry.npmjs.org/source-map-url/-/source-map-url-0.4.0.tgz",
-      "integrity": "sha1-PpNdfd1zYxuXZZlW1VEo6HtQhKM=",
-      "dev": true
-    },
-    "sourcemap-codec": {
-      "version": "1.4.4",
-      "resolved": "https://registry.npmjs.org/sourcemap-codec/-/sourcemap-codec-1.4.4.tgz",
-      "integrity": "sha512-CYAPYdBu34781kLHkaW3m6b/uUSyMOC2R61gcYMWooeuaGtjof86ZA/8T+qVPPt7np1085CR9hmMGrySwEc8Xg==",
-      "dev": true
-    },
-    "spdx-correct": {
-      "version": "3.0.0",
-      "resolved": "https://registry.npmjs.org/spdx-correct/-/spdx-correct-3.0.0.tgz",
-      "integrity": "sha512-N19o9z5cEyc8yQQPukRCZ9EUmb4HUpnrmaL/fxS2pBo2jbfcFRVuFZ/oFC+vZz0MNNk0h80iMn5/S6qGZOL5+g==",
-      "dev": true,
-      "requires": {
-        "spdx-expression-parse": "^3.0.0",
-        "spdx-license-ids": "^3.0.0"
-      }
-    },
-    "spdx-exceptions": {
-      "version": "2.1.0",
-      "resolved": "https://registry.npmjs.org/spdx-exceptions/-/spdx-exceptions-2.1.0.tgz",
-      "integrity": "sha512-4K1NsmrlCU1JJgUrtgEeTVyfx8VaYea9J9LvARxhbHtVtohPs/gFGG5yy49beySjlIMhhXZ4QqujIZEfS4l6Cg==",
-      "dev": true
-    },
-    "spdx-expression-parse": {
-      "version": "3.0.0",
-      "resolved": "https://registry.npmjs.org/spdx-expression-parse/-/spdx-expression-parse-3.0.0.tgz",
-      "integrity": "sha512-Yg6D3XpRD4kkOmTpdgbUiEJFKghJH03fiC1OPll5h/0sO6neh2jqRDVHOQ4o/LMea0tgCkbMgea5ip/e+MkWyg==",
-      "dev": true,
-      "requires": {
-        "spdx-exceptions": "^2.1.0",
-        "spdx-license-ids": "^3.0.0"
-      }
-    },
-    "spdx-license-ids": {
-      "version": "3.0.0",
-      "resolved": "https://registry.npmjs.org/spdx-license-ids/-/spdx-license-ids-3.0.0.tgz",
-      "integrity": "sha512-2+EPwgbnmOIl8HjGBXXMd9NAu02vLjOO1nWw4kmeRDFyHn+M/ETfHxQUK0oXg8ctgVnl9t3rosNVsZ1jG61nDA==",
-      "dev": true
-    },
-    "spdy": {
-      "version": "3.4.7",
-      "resolved": "https://registry.npmjs.org/spdy/-/spdy-3.4.7.tgz",
-      "integrity": "sha1-Qv9B7OXMD5mjpsKKq7c/XDsDrLw=",
-      "dev": true,
-      "requires": {
-        "debug": "^2.6.8",
-        "handle-thing": "^1.2.5",
-        "http-deceiver": "^1.2.7",
-        "safe-buffer": "^5.0.1",
-        "select-hose": "^2.0.0",
-        "spdy-transport": "^2.0.18"
-      }
-    },
-    "spdy-transport": {
-      "version": "2.1.1",
-      "resolved": "https://registry.npmjs.org/spdy-transport/-/spdy-transport-2.1.1.tgz",
-      "integrity": "sha512-q7D8c148escoB3Z7ySCASadkegMmUZW8Wb/Q1u0/XBgDKMO880rLQDj8Twiew/tYi7ghemKUi/whSYOwE17f5Q==",
-      "dev": true,
-      "requires": {
-        "debug": "^2.6.8",
-        "detect-node": "^2.0.3",
-        "hpack.js": "^2.1.6",
-        "obuf": "^1.1.1",
-        "readable-stream": "^2.2.9",
-        "safe-buffer": "^5.0.1",
-        "wbuf": "^1.7.2"
-      }
-    },
-    "speed-measure-webpack-plugin": {
-      "version": "1.2.3",
-      "resolved": "https://registry.npmjs.org/speed-measure-webpack-plugin/-/speed-measure-webpack-plugin-1.2.3.tgz",
-      "integrity": "sha512-p+taQ69VkRUXYMoZOx2nxV/Tz8tt79ahctoZJyJDHWP7fEYvwFNf5Pd73k5kZ6auu0pTsPNLEUwWpM8mCk85Zw==",
-      "dev": true,
-      "requires": {
-        "chalk": "^2.0.1"
-      }
-    },
-    "split-string": {
-      "version": "3.1.0",
-      "resolved": "https://registry.npmjs.org/split-string/-/split-string-3.1.0.tgz",
-      "integrity": "sha512-NzNVhJDYpwceVVii8/Hu6DKfD2G+NrQHlS/V/qgv763EYudVwEcMQNxd2lh+0VrUByXN/oJkl5grOhYWvQUYiw==",
-      "dev": true,
-      "requires": {
-        "extend-shallow": "^3.0.0"
-      }
-    },
-    "sprintf-js": {
-      "version": "1.0.3",
-      "resolved": "https://registry.npmjs.org/sprintf-js/-/sprintf-js-1.0.3.tgz",
-      "integrity": "sha1-BOaSb2YolTVPPdAVIDYzuFcpfiw=",
-      "dev": true
-    },
-    "sshpk": {
-      "version": "1.14.1",
-      "resolved": "https://registry.npmjs.org/sshpk/-/sshpk-1.14.1.tgz",
-      "integrity": "sha1-Ew9Zde3a2WPx1W+SuaxsUfqfg+s=",
-      "requires": {
-        "asn1": "~0.2.3",
-        "assert-plus": "^1.0.0",
-        "bcrypt-pbkdf": "^1.0.0",
-        "dashdash": "^1.12.0",
-        "ecc-jsbn": "~0.1.1",
-        "getpass": "^0.1.1",
-        "jsbn": "~0.1.0",
-        "tweetnacl": "~0.14.0"
-      },
-      "dependencies": {
-        "assert-plus": {
-          "version": "1.0.0",
-          "resolved": "https://registry.npmjs.org/assert-plus/-/assert-plus-1.0.0.tgz",
-          "integrity": "sha1-8S4PPF13sLHN2RRpQuTpbB5N1SU="
-        }
-      }
-    },
-    "ssri": {
-      "version": "5.3.0",
-      "resolved": "https://registry.npmjs.org/ssri/-/ssri-5.3.0.tgz",
-      "integrity": "sha512-XRSIPqLij52MtgoQavH/x/dU1qVKtWUAAZeOHsR9c2Ddi4XerFy3mc1alf+dLJKl9EUIm/Ht+EowFkTUOA6GAQ==",
-      "dev": true,
-      "requires": {
-        "safe-buffer": "^5.1.1"
-      }
-    },
-    "stack-utils": {
-      "version": "1.0.2",
-      "resolved": "https://registry.npmjs.org/stack-utils/-/stack-utils-1.0.2.tgz",
-      "integrity": "sha512-MTX+MeG5U994cazkjd/9KNAapsHnibjMLnfXodlkXw76JEea0UiNzrqidzo1emMwk7w5Qhc9jd4Bn9TBb1MFwA==",
-      "dev": true
-    },
-    "static-extend": {
-      "version": "0.1.2",
-      "resolved": "https://registry.npmjs.org/static-extend/-/static-extend-0.1.2.tgz",
-      "integrity": "sha1-YICcOcv/VTNyJv1eC1IPNB8ftcY=",
-      "dev": true,
-      "requires": {
-        "define-property": "^0.2.5",
-        "object-copy": "^0.1.0"
-      },
-      "dependencies": {
-        "define-property": {
-          "version": "0.2.5",
-          "resolved": "https://registry.npmjs.org/define-property/-/define-property-0.2.5.tgz",
-          "integrity": "sha1-w1se+RjsPJkPmlvFe+BKrOxcgRY=",
-          "dev": true,
-          "requires": {
-            "is-descriptor": "^0.1.0"
-          }
-        },
-        "is-accessor-descriptor": {
-          "version": "0.1.6",
-          "resolved": "https://registry.npmjs.org/is-accessor-descriptor/-/is-accessor-descriptor-0.1.6.tgz",
-          "integrity": "sha1-qeEss66Nh2cn7u84Q/igiXtcmNY=",
-          "dev": true,
-          "requires": {
-            "kind-of": "^3.0.2"
-          },
-          "dependencies": {
-            "kind-of": {
-              "version": "3.2.2",
-              "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-3.2.2.tgz",
-              "integrity": "sha1-MeohpzS6ubuw8yRm2JOupR5KPGQ=",
-              "dev": true,
-              "requires": {
-                "is-buffer": "^1.1.5"
-              }
-            }
-          }
-        },
-        "is-data-descriptor": {
-          "version": "0.1.4",
-          "resolved": "https://registry.npmjs.org/is-data-descriptor/-/is-data-descriptor-0.1.4.tgz",
-          "integrity": "sha1-C17mSDiOLIYCgueT8YVv7D8wG1Y=",
-          "dev": true,
-          "requires": {
-            "kind-of": "^3.0.2"
-          },
-          "dependencies": {
-            "kind-of": {
-              "version": "3.2.2",
-              "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-3.2.2.tgz",
-              "integrity": "sha1-MeohpzS6ubuw8yRm2JOupR5KPGQ=",
-              "dev": true,
-              "requires": {
-                "is-buffer": "^1.1.5"
-              }
-            }
-          }
-        },
-        "is-descriptor": {
-          "version": "0.1.6",
-          "resolved": "https://registry.npmjs.org/is-descriptor/-/is-descriptor-0.1.6.tgz",
-          "integrity": "sha512-avDYr0SB3DwO9zsMov0gKCESFYqCnE4hq/4z3TdUlukEy5t9C0YRq7HLrsN52NAcqXKaepeCD0n+B0arnVG3Hg==",
-          "dev": true,
-          "requires": {
-            "is-accessor-descriptor": "^0.1.6",
-            "is-data-descriptor": "^0.1.4",
-            "kind-of": "^5.0.0"
-          }
-        },
-        "kind-of": {
-          "version": "5.1.0",
-          "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-5.1.0.tgz",
-          "integrity": "sha512-NGEErnH6F2vUuXDh+OlbcKW7/wOcfdRHaZ7VWtqCztfHri/++YKmP51OdWeGPuqCOba6kk2OTe5d02VmTB80Pw==",
-          "dev": true
-        }
-      }
-    },
-    "stats-webpack-plugin": {
-      "version": "0.7.0",
-      "resolved": "https://registry.npmjs.org/stats-webpack-plugin/-/stats-webpack-plugin-0.7.0.tgz",
-      "integrity": "sha512-NT0YGhwuQ0EOX+uPhhUcI6/+1Sq/pMzNuSCBVT4GbFl/ac6I/JZefBcjlECNfAb1t3GOx5dEj1Z7x0cAxeeVLQ==",
-      "dev": true,
-      "requires": {
-        "lodash": "^4.17.4"
-      }
-    },
-    "statuses": {
-      "version": "1.4.0",
-      "resolved": "https://registry.npmjs.org/statuses/-/statuses-1.4.0.tgz",
-      "integrity": "sha512-zhSCtt8v2NDrRlPQpCNtw/heZLtfUDqxBM1udqikb/Hbk52LK4nQSwr10u77iopCW5LsyHpuXS0GnEc48mLeew==",
-      "dev": true
-    },
-    "stdout-stream": {
-      "version": "1.4.1",
-      "resolved": "https://registry.npmjs.org/stdout-stream/-/stdout-stream-1.4.1.tgz",
-      "integrity": "sha512-j4emi03KXqJWcIeF8eIXkjMFN1Cmb8gUlDYGeBALLPo5qdyTfA9bOtl8m33lRoC+vFMkP3gl0WsDr6+gzxbbTA==",
-      "dev": true,
-      "optional": true,
-      "requires": {
-        "readable-stream": "^2.0.1"
-      }
-    },
-    "stealthy-require": {
-      "version": "1.1.1",
-      "resolved": "https://registry.npmjs.org/stealthy-require/-/stealthy-require-1.1.1.tgz",
-      "integrity": "sha1-NbCYdbT/SfJqd35QmzCQoyJr8ks=",
-      "dev": true
-    },
-    "stream-blackhole": {
-      "version": "1.0.3",
-      "resolved": "https://registry.npmjs.org/stream-blackhole/-/stream-blackhole-1.0.3.tgz",
-      "integrity": "sha1-b8LiwunZ/ea+jGjT24jeCYAuTWM="
-    },
-    "stream-browserify": {
-      "version": "2.0.1",
-      "resolved": "https://registry.npmjs.org/stream-browserify/-/stream-browserify-2.0.1.tgz",
-      "integrity": "sha1-ZiZu5fm9uZQKTkUUyvtDu3Hlyds=",
-      "dev": true,
-      "requires": {
-        "inherits": "~2.0.1",
-        "readable-stream": "^2.0.2"
-      }
-    },
-    "stream-each": {
-      "version": "1.2.3",
-      "resolved": "https://registry.npmjs.org/stream-each/-/stream-each-1.2.3.tgz",
-      "integrity": "sha512-vlMC2f8I2u/bZGqkdfLQW/13Zihpej/7PmSiMQsbYddxuTsJp8vRe2x2FvVExZg7FaOds43ROAuFJwPR4MTZLw==",
-      "dev": true,
-      "requires": {
-        "end-of-stream": "^1.1.0",
-        "stream-shift": "^1.0.0"
-      }
-    },
-    "stream-http": {
-      "version": "2.8.1",
-      "resolved": "https://registry.npmjs.org/stream-http/-/stream-http-2.8.1.tgz",
-      "integrity": "sha512-cQ0jo17BLca2r0GfRdZKYAGLU6JRoIWxqSOakUMuKOT6MOK7AAlE856L33QuDmAy/eeOrhLee3dZKX0Uadu93A==",
-      "dev": true,
-      "requires": {
-        "builtin-status-codes": "^3.0.0",
-        "inherits": "^2.0.1",
-        "readable-stream": "^2.3.3",
-        "to-arraybuffer": "^1.0.0",
-        "xtend": "^4.0.0"
-      }
-    },
-    "stream-shift": {
-      "version": "1.0.0",
-      "resolved": "https://registry.npmjs.org/stream-shift/-/stream-shift-1.0.0.tgz",
-      "integrity": "sha1-1cdSgl5TZ+eG944Y5EXqIjoVWVI=",
-      "dev": true
-    },
-    "stream-to-observable": {
-      "version": "0.1.0",
-      "resolved": "https://registry.npmjs.org/stream-to-observable/-/stream-to-observable-0.1.0.tgz",
-      "integrity": "sha1-Rb8dny19wJvtgfHDB8Qw5ouEz/4=",
-      "dev": true
-    },
-    "string-length": {
-      "version": "2.0.0",
-      "resolved": "https://registry.npmjs.org/string-length/-/string-length-2.0.0.tgz",
-      "integrity": "sha1-1A27aGo6zpYMHP/KVivyxF+DY+0=",
-      "dev": true,
-      "requires": {
-        "astral-regex": "^1.0.0",
-        "strip-ansi": "^4.0.0"
-      },
-      "dependencies": {
-        "ansi-regex": {
-          "version": "3.0.0",
-          "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-3.0.0.tgz",
-          "integrity": "sha1-7QMXwyIGT3lGbAKWa922Bas32Zg=",
-          "dev": true
-        },
-        "strip-ansi": {
-          "version": "4.0.0",
-          "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-4.0.0.tgz",
-          "integrity": "sha1-qEeQIusaw2iocTibY1JixQXuNo8=",
-          "dev": true,
-          "requires": {
-            "ansi-regex": "^3.0.0"
-          }
-        }
-      }
-    },
-    "string-similarity": {
-      "version": "1.1.0",
-      "resolved": "https://registry.npmjs.org/string-similarity/-/string-similarity-1.1.0.tgz",
-      "integrity": "sha1-PGZJiFikZex8QMfYFzm72ZWQSRQ=",
-      "requires": {
-        "lodash": "^4.13.1"
-      }
-    },
-    "string-width": {
-      "version": "1.0.2",
-      "resolved": "https://registry.npmjs.org/string-width/-/string-width-1.0.2.tgz",
-      "integrity": "sha1-EYvfW4zcUaKn5w0hHgfisLmxB9M=",
-      "dev": true,
-      "requires": {
-        "code-point-at": "^1.0.0",
-        "is-fullwidth-code-point": "^1.0.0",
-        "strip-ansi": "^3.0.0"
-      }
-    },
-    "string.prototype.padend": {
-      "version": "3.0.0",
-      "resolved": "https://registry.npmjs.org/string.prototype.padend/-/string.prototype.padend-3.0.0.tgz",
-      "integrity": "sha1-86rvfBcZ8XDF6rHDK/eA2W4h8vA=",
-      "dev": true,
-      "requires": {
-        "define-properties": "^1.1.2",
-        "es-abstract": "^1.4.3",
-        "function-bind": "^1.0.2"
-      }
-    },
-    "string_decoder": {
-      "version": "1.0.3",
-      "resolved": "https://registry.npmjs.org/string_decoder/-/string_decoder-1.0.3.tgz",
-      "integrity": "sha512-4AH6Z5fzNNBcH+6XDMfA/BTt87skxqJlO0lAh3Dker5zThcAxG6mKz+iGu308UKoPPQ8Dcqx/4JhujzltRa+hQ==",
-      "dev": true,
-      "requires": {
-        "safe-buffer": "~5.1.0"
-      }
-    },
-    "stringstream": {
-      "version": "0.0.5",
-      "resolved": "https://registry.npmjs.org/stringstream/-/stringstream-0.0.5.tgz",
-      "integrity": "sha1-TkhM1N5aC7vuGORjB3EKioFiGHg="
-    },
-    "strip-ansi": {
-      "version": "3.0.1",
-      "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-3.0.1.tgz",
-      "integrity": "sha1-ajhfuIU9lS1f8F0Oiq+UJ43GPc8=",
-      "requires": {
-        "ansi-regex": "^2.0.0"
-      }
-    },
-    "strip-bom": {
-      "version": "2.0.0",
-      "resolved": "https://registry.npmjs.org/strip-bom/-/strip-bom-2.0.0.tgz",
-      "integrity": "sha1-YhmoVhZSBJHzV4i9vxRHqZx+aw4=",
-      "dev": true,
-      "requires": {
-        "is-utf8": "^0.2.0"
-      }
-    },
-    "strip-eof": {
-      "version": "1.0.0",
-      "resolved": "https://registry.npmjs.org/strip-eof/-/strip-eof-1.0.0.tgz",
-      "integrity": "sha1-u0P/VZim6wXYm1n80SnJgzE2Br8=",
-      "dev": true
-    },
-    "strip-indent": {
-      "version": "1.0.1",
-      "resolved": "https://registry.npmjs.org/strip-indent/-/strip-indent-1.0.1.tgz",
-      "integrity": "sha1-DHlipq3vp7vUrDZkYKY4VSrhoKI=",
-      "dev": true,
-      "optional": true,
-      "requires": {
-        "get-stdin": "^4.0.1"
-      }
-    },
-    "strip-json-comments": {
-      "version": "2.0.1",
-      "resolved": "https://registry.npmjs.org/strip-json-comments/-/strip-json-comments-2.0.1.tgz",
-      "integrity": "sha1-PFMZQukIwml8DsNEhYwobHygpgo="
-    },
-    "style-loader": {
-      "version": "0.23.1",
-      "resolved": "https://registry.npmjs.org/style-loader/-/style-loader-0.23.1.tgz",
-      "integrity": "sha512-XK+uv9kWwhZMZ1y7mysB+zoihsEj4wneFWAS5qoiLwzW0WzSqMrrsIy+a3zkQJq0ipFtBpX5W3MqyRIBF/WFGg==",
-      "dev": true,
-      "requires": {
-        "loader-utils": "^1.1.0",
-        "schema-utils": "^1.0.0"
-      }
-    },
-    "stylus": {
-      "version": "0.54.5",
-      "resolved": "https://registry.npmjs.org/stylus/-/stylus-0.54.5.tgz",
-      "integrity": "sha1-QrlWCTHKcJDOhRWnmLqeaqPW3Hk=",
-      "dev": true,
-      "requires": {
-        "css-parse": "1.7.x",
-        "debug": "*",
-        "glob": "7.0.x",
-        "mkdirp": "0.5.x",
-        "sax": "0.5.x",
-        "source-map": "0.1.x"
-      },
-      "dependencies": {
-        "glob": {
-          "version": "7.0.6",
-          "resolved": "https://registry.npmjs.org/glob/-/glob-7.0.6.tgz",
-          "integrity": "sha1-IRuvr0nlJbjNkyYNFKsTYVKz9Xo=",
-          "dev": true,
-          "requires": {
-            "fs.realpath": "^1.0.0",
-            "inflight": "^1.0.4",
-            "inherits": "2",
-            "minimatch": "^3.0.2",
-            "once": "^1.3.0",
-            "path-is-absolute": "^1.0.0"
-          }
-        },
-        "source-map": {
-          "version": "0.1.43",
-          "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.1.43.tgz",
-          "integrity": "sha1-wkvBRspRfBRx9drL4lcbK3+eM0Y=",
-          "dev": true,
-          "requires": {
-            "amdefine": ">=0.0.4"
-          }
-        }
-      }
-    },
-    "stylus-loader": {
-      "version": "3.0.2",
-      "resolved": "https://registry.npmjs.org/stylus-loader/-/stylus-loader-3.0.2.tgz",
-      "integrity": "sha512-+VomPdZ6a0razP+zinir61yZgpw2NfljeSsdUF5kJuEzlo3khXhY19Fn6l8QQz1GRJGtMCo8nG5C04ePyV7SUA==",
-      "dev": true,
-      "requires": {
-        "loader-utils": "^1.0.2",
-        "lodash.clonedeep": "^4.5.0",
-        "when": "~3.6.x"
-      }
-    },
-    "supports-color": {
-      "version": "4.5.0",
-      "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-4.5.0.tgz",
-      "integrity": "sha1-vnoN5ITexcXN34s9WRJQRJEvY1s=",
-      "requires": {
-        "has-flag": "^2.0.0"
-      }
-    },
-    "symbol-observable": {
-      "version": "1.2.0",
-      "resolved": "https://registry.npmjs.org/symbol-observable/-/symbol-observable-1.2.0.tgz",
-      "integrity": "sha512-e900nM8RRtGhlV36KGEU9k65K3mPb1WV70OdjfxlG2EAuM1noi/E/BaW/uMhL7bPEssK8QV57vN3esixjUvcXQ=="
-    },
-    "symbol-tree": {
-      "version": "3.2.2",
-      "resolved": "https://registry.npmjs.org/symbol-tree/-/symbol-tree-3.2.2.tgz",
-      "integrity": "sha1-rifbOPZgp64uHDt9G8KQgZuFGeY=",
-      "dev": true
-    },
-    "tapable": {
-      "version": "0.2.8",
-      "resolved": "https://registry.npmjs.org/tapable/-/tapable-0.2.8.tgz",
-      "integrity": "sha1-mTcqXJmb8t8WCvwNdL7U9HlIzSI=",
-      "dev": true
-    },
-    "tar": {
-      "version": "2.2.1",
-      "resolved": "https://registry.npmjs.org/tar/-/tar-2.2.1.tgz",
-      "integrity": "sha1-jk0qJWwOIYXGsYrWlK7JaLg8sdE=",
-      "dev": true,
-      "optional": true,
-      "requires": {
-        "block-stream": "*",
-        "fstream": "^1.0.2",
-        "inherits": "2"
-      }
-    },
-    "terminal-banner": {
-      "version": "1.1.0",
-      "resolved": "https://registry.npmjs.org/terminal-banner/-/terminal-banner-1.1.0.tgz",
-      "integrity": "sha512-A70B8Io5gGOTKQuoqU6LUPLouNd9DvFLgw3cPh6bfrQjdy7HWW1t04VJfQwjTnygTVDX0xremaj1cg3SQaCGyg==",
-      "dev": true
-    },
-    "terser": {
-      "version": "3.13.1",
-      "resolved": "https://registry.npmjs.org/terser/-/terser-3.13.1.tgz",
-      "integrity": "sha512-ogyZye4DFqOtMzT92Y3Nxxw8OvXmL39HOALro4fc+EUYFFF9G/kk0znkvwMz6PPYgBtdKAodh3FPR70eugdaQA==",
-      "dev": true,
-      "requires": {
-        "commander": "~2.17.1",
-        "source-map": "~0.6.1",
-        "source-map-support": "~0.5.6"
-      },
-      "dependencies": {
-        "commander": {
-          "version": "2.17.1",
-          "resolved": "https://registry.npmjs.org/commander/-/commander-2.17.1.tgz",
-          "integrity": "sha512-wPMUt6FnH2yzG95SA6mzjQOEKUU3aLaDEmzs1ti+1E9h+CsrZghRlqEM/EJ4KscsQVG8uNN4uVreUeT8+drlgg==",
-          "dev": true
-        },
-        "source-map": {
-          "version": "0.6.1",
-          "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.6.1.tgz",
-          "integrity": "sha512-UjgapumWlbMhkBgzT7Ykc5YXUT46F0iKu8SGXq0bcwP5dz/h0Plj6enJqjz1Zbq2l5WaqYnrVbwWOWMyF3F47g==",
-          "dev": true
-        },
-        "source-map-support": {
-          "version": "0.5.9",
-          "resolved": "https://registry.npmjs.org/source-map-support/-/source-map-support-0.5.9.tgz",
-          "integrity": "sha512-gR6Rw4MvUlYy83vP0vxoVNzM6t8MUXqNuRsuBmBHQDu1Fh6X015FrLdgoDKcNdkwGubozq0P4N0Q37UyFVr1EA==",
-          "dev": true,
-          "requires": {
-            "buffer-from": "^1.0.0",
-            "source-map": "^0.6.0"
-          }
-        }
-      }
-    },
-    "terser-webpack-plugin": {
-      "version": "1.1.0",
-      "resolved": "https://registry.npmjs.org/terser-webpack-plugin/-/terser-webpack-plugin-1.1.0.tgz",
-      "integrity": "sha512-61lV0DSxMAZ8AyZG7/A4a3UPlrbOBo8NIQ4tJzLPAdGOQ+yoNC7l5ijEow27lBAL2humer01KLS6bGIMYQxKoA==",
-      "dev": true,
-      "requires": {
-        "cacache": "^11.0.2",
-        "find-cache-dir": "^2.0.0",
-        "schema-utils": "^1.0.0",
-        "serialize-javascript": "^1.4.0",
-        "source-map": "^0.6.1",
-        "terser": "^3.8.1",
-        "webpack-sources": "^1.1.0",
-        "worker-farm": "^1.5.2"
-      },
-      "dependencies": {
-        "cacache": {
-          "version": "11.3.2",
-          "resolved": "https://registry.npmjs.org/cacache/-/cacache-11.3.2.tgz",
-          "integrity": "sha512-E0zP4EPGDOaT2chM08Als91eYnf8Z+eH1awwwVsngUmgppfM5jjJ8l3z5vO5p5w/I3LsiXawb1sW0VY65pQABg==",
-          "dev": true,
-          "requires": {
-            "bluebird": "^3.5.3",
-            "chownr": "^1.1.1",
-            "figgy-pudding": "^3.5.1",
-            "glob": "^7.1.3",
-            "graceful-fs": "^4.1.15",
-            "lru-cache": "^5.1.1",
-            "mississippi": "^3.0.0",
-            "mkdirp": "^0.5.1",
-            "move-concurrently": "^1.0.1",
-            "promise-inflight": "^1.0.1",
-            "rimraf": "^2.6.2",
-            "ssri": "^6.0.1",
-            "unique-filename": "^1.1.1",
-            "y18n": "^4.0.0"
-          }
-        },
-        "find-cache-dir": {
-          "version": "2.0.0",
-          "resolved": "https://registry.npmjs.org/find-cache-dir/-/find-cache-dir-2.0.0.tgz",
-          "integrity": "sha512-LDUY6V1Xs5eFskUVYtIwatojt6+9xC9Chnlk/jYOOvn3FAFfSaWddxahDGyNHh0b2dMXa6YW2m0tk8TdVaXHlA==",
-          "dev": true,
-          "requires": {
-            "commondir": "^1.0.1",
-            "make-dir": "^1.0.0",
-            "pkg-dir": "^3.0.0"
-          }
-        },
-        "find-up": {
-          "version": "3.0.0",
-          "resolved": "https://registry.npmjs.org/find-up/-/find-up-3.0.0.tgz",
-          "integrity": "sha512-1yD6RmLI1XBfxugvORwlck6f75tYL+iR0jqwsOrOxMZyGYqUuDhJ0l4AXdO1iX/FTs9cBAMEk1gWSEx1kSbylg==",
-          "dev": true,
-          "requires": {
-            "locate-path": "^3.0.0"
-          }
-        },
-        "glob": {
-          "version": "7.1.3",
-          "resolved": "https://registry.npmjs.org/glob/-/glob-7.1.3.tgz",
-          "integrity": "sha512-vcfuiIxogLV4DlGBHIUOwI0IbrJ8HWPc4MU7HzviGeNho/UJDfi6B5p3sHeWIQ0KGIU0Jpxi5ZHxemQfLkkAwQ==",
-          "dev": true,
-          "requires": {
-            "fs.realpath": "^1.0.0",
-            "inflight": "^1.0.4",
-            "inherits": "2",
-            "minimatch": "^3.0.4",
-            "once": "^1.3.0",
-            "path-is-absolute": "^1.0.0"
-          }
-        },
-        "graceful-fs": {
-          "version": "4.1.15",
-          "resolved": "https://registry.npmjs.org/graceful-fs/-/graceful-fs-4.1.15.tgz",
-          "integrity": "sha512-6uHUhOPEBgQ24HM+r6b/QwWfZq+yiFcipKFrOFiBEnWdy5sdzYoi+pJeQaPI5qOLRFqWmAXUPQNsielzdLoecA==",
-          "dev": true
-        },
-        "locate-path": {
-          "version": "3.0.0",
-          "resolved": "https://registry.npmjs.org/locate-path/-/locate-path-3.0.0.tgz",
-          "integrity": "sha512-7AO748wWnIhNqAuaty2ZWHkQHRSNfPVIsPIfwEOWO22AmaoVrWavlOcMR5nzTLNYvp36X220/maaRsrec1G65A==",
-          "dev": true,
-          "requires": {
-            "p-locate": "^3.0.0",
-            "path-exists": "^3.0.0"
-          }
-        },
-        "lru-cache": {
-          "version": "5.1.1",
-          "resolved": "https://registry.npmjs.org/lru-cache/-/lru-cache-5.1.1.tgz",
-          "integrity": "sha512-KpNARQA3Iwv+jTA0utUVVbrh+Jlrr1Fv0e56GGzAFOXN7dk/FviaDW8LHmK52DlcH4WP2n6gI8vN1aesBFgo9w==",
-          "dev": true,
-          "requires": {
-            "yallist": "^3.0.2"
-          }
-        },
-        "mississippi": {
-          "version": "3.0.0",
-          "resolved": "https://registry.npmjs.org/mississippi/-/mississippi-3.0.0.tgz",
-          "integrity": "sha512-x471SsVjUtBRtcvd4BzKE9kFC+/2TeWgKCgw0bZcw1b9l2X3QX5vCWgF+KaZaYm87Ss//rHnWryupDrgLvmSkA==",
-          "dev": true,
-          "requires": {
-            "concat-stream": "^1.5.0",
-            "duplexify": "^3.4.2",
-            "end-of-stream": "^1.1.0",
-            "flush-write-stream": "^1.0.0",
-            "from2": "^2.1.0",
-            "parallel-transform": "^1.1.0",
-            "pump": "^3.0.0",
-            "pumpify": "^1.3.3",
-            "stream-each": "^1.1.0",
-            "through2": "^2.0.0"
-          }
-        },
-        "p-limit": {
-          "version": "2.0.0",
-          "resolved": "https://registry.npmjs.org/p-limit/-/p-limit-2.0.0.tgz",
-          "integrity": "sha512-fl5s52lI5ahKCernzzIyAP0QAZbGIovtVHGwpcu1Jr/EpzLVDI2myISHwGqK7m8uQFugVWSrbxH7XnhGtvEc+A==",
-          "dev": true,
-          "requires": {
-            "p-try": "^2.0.0"
-          }
-        },
-        "p-locate": {
-          "version": "3.0.0",
-          "resolved": "https://registry.npmjs.org/p-locate/-/p-locate-3.0.0.tgz",
-          "integrity": "sha512-x+12w/To+4GFfgJhBEpiDcLozRJGegY+Ei7/z0tSLkMmxGZNybVMSfWj9aJn8Z5Fc7dBUNJOOVgPv2H7IwulSQ==",
-          "dev": true,
-          "requires": {
-            "p-limit": "^2.0.0"
-          }
-        },
-        "p-try": {
-          "version": "2.0.0",
-          "resolved": "https://registry.npmjs.org/p-try/-/p-try-2.0.0.tgz",
-          "integrity": "sha512-hMp0onDKIajHfIkdRk3P4CdCmErkYAxxDtP3Wx/4nZ3aGlau2VKh3mZpcuFkH27WQkL/3WBCPOktzA9ZOAnMQQ==",
-          "dev": true
-        },
-        "pkg-dir": {
-          "version": "3.0.0",
-          "resolved": "https://registry.npmjs.org/pkg-dir/-/pkg-dir-3.0.0.tgz",
-          "integrity": "sha512-/E57AYkoeQ25qkxMj5PBOVgF8Kiu/h7cYS30Z5+R7WaiCCBfLq58ZI/dSeaEKb9WVJV5n/03QwrN3IeWIFllvw==",
-          "dev": true,
-          "requires": {
-            "find-up": "^3.0.0"
-          }
-        },
-        "pump": {
-          "version": "3.0.0",
-          "resolved": "https://registry.npmjs.org/pump/-/pump-3.0.0.tgz",
-          "integrity": "sha512-LwZy+p3SFs1Pytd/jYct4wpv49HiYCqd9Rlc5ZVdk0V+8Yzv6jR5Blk3TRmPL1ft69TxP0IMZGJ+WPFU2BFhww==",
-          "dev": true,
-          "requires": {
-            "end-of-stream": "^1.1.0",
-            "once": "^1.3.1"
-          }
-        },
-        "source-map": {
-          "version": "0.6.1",
-          "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.6.1.tgz",
-          "integrity": "sha512-UjgapumWlbMhkBgzT7Ykc5YXUT46F0iKu8SGXq0bcwP5dz/h0Plj6enJqjz1Zbq2l5WaqYnrVbwWOWMyF3F47g==",
-          "dev": true
-        },
-        "ssri": {
-          "version": "6.0.1",
-          "resolved": "https://registry.npmjs.org/ssri/-/ssri-6.0.1.tgz",
-          "integrity": "sha512-3Wge10hNcT1Kur4PDFwEieXSCMCJs/7WvSACcrMYrNp+b8kDL1/0wJch5Ni2WrtwEa2IO8OsVfeKIciKCDx/QA==",
-          "dev": true,
-          "requires": {
-            "figgy-pudding": "^3.5.1"
-          }
-        },
-        "yallist": {
-          "version": "3.0.3",
-          "resolved": "https://registry.npmjs.org/yallist/-/yallist-3.0.3.tgz",
-          "integrity": "sha512-S+Zk8DEWE6oKpV+vI3qWkaK+jSbIK86pCwe2IF/xwIpQ8jEuxpw9NyaGjmp9+BoJv5FV2piqCDcoCtStppiq2A==",
-          "dev": true
-        }
-      }
-    },
-    "test-exclude": {
-      "version": "5.1.0",
-      "resolved": "https://registry.npmjs.org/test-exclude/-/test-exclude-5.1.0.tgz",
-      "integrity": "sha512-gwf0S2fFsANC55fSeSqpb8BYk6w3FDvwZxfNjeF6FRgvFa43r+7wRiA/Q0IxoRU37wB/LE8IQ4221BsNucTaCA==",
-      "dev": true,
-      "requires": {
-        "arrify": "^1.0.1",
-        "minimatch": "^3.0.4",
-        "read-pkg-up": "^4.0.0",
-        "require-main-filename": "^1.0.1"
-      },
-      "dependencies": {
-        "find-up": {
-          "version": "3.0.0",
-          "resolved": "https://registry.npmjs.org/find-up/-/find-up-3.0.0.tgz",
-          "integrity": "sha512-1yD6RmLI1XBfxugvORwlck6f75tYL+iR0jqwsOrOxMZyGYqUuDhJ0l4AXdO1iX/FTs9cBAMEk1gWSEx1kSbylg==",
-          "dev": true,
-          "requires": {
-            "locate-path": "^3.0.0"
-          }
-        },
-        "load-json-file": {
-          "version": "4.0.0",
-          "resolved": "https://registry.npmjs.org/load-json-file/-/load-json-file-4.0.0.tgz",
-          "integrity": "sha1-L19Fq5HjMhYjT9U62rZo607AmTs=",
-          "dev": true,
-          "requires": {
-            "graceful-fs": "^4.1.2",
-            "parse-json": "^4.0.0",
-            "pify": "^3.0.0",
-            "strip-bom": "^3.0.0"
-          }
-        },
-        "locate-path": {
-          "version": "3.0.0",
-          "resolved": "https://registry.npmjs.org/locate-path/-/locate-path-3.0.0.tgz",
-          "integrity": "sha512-7AO748wWnIhNqAuaty2ZWHkQHRSNfPVIsPIfwEOWO22AmaoVrWavlOcMR5nzTLNYvp36X220/maaRsrec1G65A==",
-          "dev": true,
-          "requires": {
-            "p-locate": "^3.0.0",
-            "path-exists": "^3.0.0"
-          }
-        },
-        "p-limit": {
-          "version": "2.1.0",
-          "resolved": "https://registry.npmjs.org/p-limit/-/p-limit-2.1.0.tgz",
-          "integrity": "sha512-NhURkNcrVB+8hNfLuysU8enY5xn2KXphsHBaC2YmRNTZRc7RWusw6apSpdEj3jo4CMb6W9nrF6tTnsJsJeyu6g==",
-          "dev": true,
-          "requires": {
-            "p-try": "^2.0.0"
-          }
-        },
-        "p-locate": {
-          "version": "3.0.0",
-          "resolved": "https://registry.npmjs.org/p-locate/-/p-locate-3.0.0.tgz",
-          "integrity": "sha512-x+12w/To+4GFfgJhBEpiDcLozRJGegY+Ei7/z0tSLkMmxGZNybVMSfWj9aJn8Z5Fc7dBUNJOOVgPv2H7IwulSQ==",
-          "dev": true,
-          "requires": {
-            "p-limit": "^2.0.0"
-          }
-        },
-        "p-try": {
-          "version": "2.0.0",
-          "resolved": "https://registry.npmjs.org/p-try/-/p-try-2.0.0.tgz",
-          "integrity": "sha512-hMp0onDKIajHfIkdRk3P4CdCmErkYAxxDtP3Wx/4nZ3aGlau2VKh3mZpcuFkH27WQkL/3WBCPOktzA9ZOAnMQQ==",
-          "dev": true
-        },
-        "parse-json": {
-          "version": "4.0.0",
-          "resolved": "https://registry.npmjs.org/parse-json/-/parse-json-4.0.0.tgz",
-          "integrity": "sha1-vjX1Qlvh9/bHRxhPmKeIy5lHfuA=",
-          "dev": true,
-          "requires": {
-            "error-ex": "^1.3.1",
-            "json-parse-better-errors": "^1.0.1"
-          }
-        },
-        "read-pkg": {
-          "version": "3.0.0",
-          "resolved": "https://registry.npmjs.org/read-pkg/-/read-pkg-3.0.0.tgz",
-          "integrity": "sha1-nLxoaXj+5l0WwA4rGcI3/Pbjg4k=",
-          "dev": true,
-          "requires": {
-            "load-json-file": "^4.0.0",
-            "normalize-package-data": "^2.3.2",
-            "path-type": "^3.0.0"
-          }
-        },
-        "read-pkg-up": {
-          "version": "4.0.0",
-          "resolved": "https://registry.npmjs.org/read-pkg-up/-/read-pkg-up-4.0.0.tgz",
-          "integrity": "sha512-6etQSH7nJGsK0RbG/2TeDzZFa8shjQ1um+SwQQ5cwKy0dhSXdOncEhb1CPpvQG4h7FyOV6EB6YlV0yJvZQNAkA==",
-          "dev": true,
-          "requires": {
-            "find-up": "^3.0.0",
-            "read-pkg": "^3.0.0"
-          }
-        },
-        "strip-bom": {
-          "version": "3.0.0",
-          "resolved": "https://registry.npmjs.org/strip-bom/-/strip-bom-3.0.0.tgz",
-          "integrity": "sha1-IzTBjpx1n3vdVv3vfprj1YjmjtM=",
-          "dev": true
-        }
-      }
-    },
-    "throat": {
-      "version": "4.1.0",
-      "resolved": "https://registry.npmjs.org/throat/-/throat-4.1.0.tgz",
-      "integrity": "sha1-iQN8vJLFarGJJua6TLsgDhVnKmo=",
-      "dev": true
-    },
-    "throttleit": {
-      "version": "0.0.2",
-      "resolved": "https://registry.npmjs.org/throttleit/-/throttleit-0.0.2.tgz",
-      "integrity": "sha1-z+34jmDADdlpe2H90qg0OptoDq8=",
-      "dev": true
-    },
-    "through": {
-      "version": "2.3.8",
-      "resolved": "https://registry.npmjs.org/through/-/through-2.3.8.tgz",
-      "integrity": "sha1-DdTJ/6q8NXlgsbckEV1+Doai4fU="
-    },
-    "through2": {
-      "version": "2.0.3",
-      "resolved": "https://registry.npmjs.org/through2/-/through2-2.0.3.tgz",
-      "integrity": "sha1-AARWmzfHx0ujnEPzzteNGtlBQL4=",
-      "dev": true,
-      "requires": {
-        "readable-stream": "^2.1.5",
-        "xtend": "~4.0.1"
-      }
-    },
-    "thunky": {
-      "version": "1.0.3",
-      "resolved": "https://registry.npmjs.org/thunky/-/thunky-1.0.3.tgz",
-      "integrity": "sha512-YwT8pjmNcAXBZqrubu22P4FYsh2D4dxRmnWBOL8Jk8bUcRUtc5326kx32tuTmFDAZtLOGEVNl8POAR8j896Iow==",
-      "dev": true
-    },
-    "timed-out": {
-      "version": "4.0.1",
-      "resolved": "https://registry.npmjs.org/timed-out/-/timed-out-4.0.1.tgz",
-      "integrity": "sha1-8y6srFoXW+ol1/q1Zas+2HQe9W8="
-    },
-    "timers-browserify": {
-      "version": "2.0.6",
-      "resolved": "https://registry.npmjs.org/timers-browserify/-/timers-browserify-2.0.6.tgz",
-      "integrity": "sha512-HQ3nbYRAowdVd0ckGFvmJPPCOH/CHleFN/Y0YQCX1DVaB7t+KFvisuyN09fuP8Jtp1CpfSh8O8bMkHbdbPe6Pw==",
-      "dev": true,
-      "requires": {
-        "setimmediate": "^1.0.4"
-      }
-    },
-    "tinyqueue": {
-      "version": "1.2.3",
-      "resolved": "https://registry.npmjs.org/tinyqueue/-/tinyqueue-1.2.3.tgz",
-      "integrity": "sha512-Qz9RgWuO9l8lT+Y9xvbzhPT2efIUIFd69N7eF7tJ9lnQl0iLj1M7peK7IoUGZL9DJHw9XftqLreccfxcQgYLxA=="
-    },
-    "tmp": {
-      "version": "0.0.31",
-      "resolved": "https://registry.npmjs.org/tmp/-/tmp-0.0.31.tgz",
-      "integrity": "sha1-jzirlDjhcxXl29izZX6L+yd65Kc=",
-      "dev": true,
-      "requires": {
-        "os-tmpdir": "~1.0.1"
-      }
-    },
-    "tmpl": {
-      "version": "1.0.4",
-      "resolved": "https://registry.npmjs.org/tmpl/-/tmpl-1.0.4.tgz",
-      "integrity": "sha1-I2QN17QtAEM5ERQIIOXPRA5SHdE=",
-      "dev": true
-    },
-    "to-arraybuffer": {
-      "version": "1.0.1",
-      "resolved": "https://registry.npmjs.org/to-arraybuffer/-/to-arraybuffer-1.0.1.tgz",
-      "integrity": "sha1-fSKbH8xjfkZsoIEYCDanqr/4P0M=",
-      "dev": true
-    },
-    "to-fast-properties": {
-      "version": "1.0.3",
-      "resolved": "https://registry.npmjs.org/to-fast-properties/-/to-fast-properties-1.0.3.tgz",
-      "integrity": "sha1-uDVx+k2MJbguIxsG46MFXeTKGkc="
-    },
-    "to-object-path": {
-      "version": "0.3.0",
-      "resolved": "https://registry.npmjs.org/to-object-path/-/to-object-path-0.3.0.tgz",
-      "integrity": "sha1-KXWIt7Dn4KwI4E5nL4XB9JmeF68=",
-      "dev": true,
-      "requires": {
-        "kind-of": "^3.0.2"
-      }
-    },
-    "to-regex": {
-      "version": "3.0.2",
-      "resolved": "https://registry.npmjs.org/to-regex/-/to-regex-3.0.2.tgz",
-      "integrity": "sha512-FWtleNAtZ/Ki2qtqej2CXTOayOH9bHDQF+Q48VpWyDXjbYxA4Yz8iDB31zXOBUlOHHKidDbqGVrTUvQMPmBGBw==",
-      "dev": true,
-      "requires": {
-        "define-property": "^2.0.2",
-        "extend-shallow": "^3.0.2",
-        "regex-not": "^1.0.2",
-        "safe-regex": "^1.1.0"
-      }
-    },
-    "to-regex-range": {
-      "version": "2.1.1",
-      "resolved": "https://registry.npmjs.org/to-regex-range/-/to-regex-range-2.1.1.tgz",
-      "integrity": "sha1-fIDBe53+vlmeJzZ+DU3VWQFB2zg=",
-      "dev": true,
-      "requires": {
-        "is-number": "^3.0.0",
-        "repeat-string": "^1.6.1"
-      },
-      "dependencies": {
-        "is-number": {
-          "version": "3.0.0",
-          "resolved": "https://registry.npmjs.org/is-number/-/is-number-3.0.0.tgz",
-          "integrity": "sha1-JP1iAaR4LPUFYcgQJ2r8fRLXEZU=",
-          "dev": true,
-          "requires": {
-            "kind-of": "^3.0.2"
-          }
-        }
-      }
-    },
-    "topojson-client": {
-      "version": "3.0.0",
-      "resolved": "https://registry.npmjs.org/topojson-client/-/topojson-client-3.0.0.tgz",
-      "integrity": "sha1-H5kpOnfvQqRI0DKoGqmCtz82DS8=",
-      "requires": {
-        "commander": "2"
-      }
-    },
-    "topojson-server": {
-      "version": "3.0.0",
-      "resolved": "https://registry.npmjs.org/topojson-server/-/topojson-server-3.0.0.tgz",
-      "integrity": "sha1-N4546Hw5cqe1vixdYENptrrmnF4=",
-      "requires": {
-        "commander": "2"
-      }
-    },
-    "tough-cookie": {
-      "version": "2.3.4",
-      "resolved": "https://registry.npmjs.org/tough-cookie/-/tough-cookie-2.3.4.tgz",
-      "integrity": "sha512-TZ6TTfI5NtZnuyy/Kecv+CnoROnyXn2DN97LontgQpCwsX2XyLYCC0ENhYkehSOwAp8rTQKc/NUIF7BkQ5rKLA==",
-      "requires": {
-        "punycode": "^1.4.1"
-      }
-    },
-    "tr46": {
-      "version": "1.0.1",
-      "resolved": "https://registry.npmjs.org/tr46/-/tr46-1.0.1.tgz",
-      "integrity": "sha1-qLE/1r/SSJUZZ0zN5VujaTtwbQk=",
-      "dev": true,
-      "requires": {
-        "punycode": "^2.1.0"
-      },
-      "dependencies": {
-        "punycode": {
-          "version": "2.1.1",
-          "resolved": "https://registry.npmjs.org/punycode/-/punycode-2.1.1.tgz",
-          "integrity": "sha512-XRsRjdf+j5ml+y/6GKHPZbrF/8p2Yga0JPtdqTIY2Xe5ohJPD9saDJJLPvp9+NSBprVvevdXZybnj2cv8OEd0A==",
-          "dev": true
-        }
-      }
-    },
-    "tree-kill": {
-      "version": "1.2.0",
-      "resolved": "https://registry.npmjs.org/tree-kill/-/tree-kill-1.2.0.tgz",
-      "integrity": "sha512-DlX6dR0lOIRDFxI0mjL9IYg6OTncLm/Zt+JiBhE5OlFcAR8yc9S7FFXU9so0oda47frdM/JFsk7UjNt9vscKcg==",
-      "dev": true
-    },
-    "trim-newlines": {
-      "version": "1.0.0",
-      "resolved": "https://registry.npmjs.org/trim-newlines/-/trim-newlines-1.0.0.tgz",
-      "integrity": "sha1-WIeWa7WCpFA6QetST301ARgVphM=",
-      "dev": true,
-      "optional": true
-    },
-    "trim-right": {
-      "version": "1.0.1",
-      "resolved": "https://registry.npmjs.org/trim-right/-/trim-right-1.0.1.tgz",
-      "integrity": "sha1-yy4SAwZ+DI3h9hQJS5/kVwTqYAM="
-    },
-    "true-case-path": {
-      "version": "1.0.3",
-      "resolved": "https://registry.npmjs.org/true-case-path/-/true-case-path-1.0.3.tgz",
-      "integrity": "sha512-m6s2OdQe5wgpFMC+pAJ+q9djG82O2jcHPOI6RNg1yy9rCYR+WD6Nbpl32fDpfC56nirdRy+opFa/Vk7HYhqaew==",
-      "dev": true,
-      "optional": true,
-      "requires": {
-        "glob": "^7.1.2"
-      }
-    },
-    "ts-jest": {
-      "version": "23.1.4",
-      "resolved": "https://registry.npmjs.org/ts-jest/-/ts-jest-23.1.4.tgz",
-      "integrity": "sha512-9rCSxbWfoZxxeXnSoEIzRNr9hDIQ8iEJAWmSRsWhDHDT8OeuGfURhJQUE8jtJlkyEygs6rngH8RYtHz9cfjmEA==",
-      "requires": {
-        "closest-file-data": "^0.1.4",
-        "fs-extra": "6.0.1",
-        "json5": "^0.5.0",
-        "lodash": "^4.17.10"
-      },
-      "dependencies": {
-        "lodash": {
-          "version": "4.17.11",
-          "resolved": "https://registry.npmjs.org/lodash/-/lodash-4.17.11.tgz",
-          "integrity": "sha512-cQKh8igo5QUhZ7lg38DYWAxMvjSAKG0A8wGSVimP07SIUEK2UO+arSRKbRZWtelMtN5V0Hkwh5ryOto/SshYIg=="
-        }
-      }
-    },
-    "ts-loader": {
-      "version": "3.2.0",
-      "resolved": "https://registry.npmjs.org/ts-loader/-/ts-loader-3.2.0.tgz",
-      "integrity": "sha512-4g8BF3gKWBHeM1jAFmMPHofuJlwTUU4iHJ0i3mwXRHwy74RU6VBOgl9kDVMGpapvGcMlVqV5G6v9XmV66Qqd7w==",
-      "dev": true,
-      "requires": {
-        "chalk": "^2.3.0",
-        "enhanced-resolve": "^3.0.0",
-        "loader-utils": "^1.0.2",
-        "semver": "^5.0.1"
-      },
-      "dependencies": {
-        "chalk": {
-          "version": "2.4.1",
-          "resolved": "https://registry.npmjs.org/chalk/-/chalk-2.4.1.tgz",
-          "integrity": "sha512-ObN6h1v2fTJSmUXoS3nMQ92LbDK9be4TV+6G+omQlGJFdcUX5heKi1LZ1YnRMIgwTLEj3E24bT6tYni50rlCfQ==",
-          "dev": true,
-          "requires": {
-            "ansi-styles": "^3.2.1",
-            "escape-string-regexp": "^1.0.5",
-            "supports-color": "^5.3.0"
-          }
-        },
-        "has-flag": {
-          "version": "3.0.0",
-          "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-3.0.0.tgz",
-          "integrity": "sha1-tdRU3CGZriJWmfNGfloH87lVuv0=",
-          "dev": true
-        },
-        "supports-color": {
-          "version": "5.4.0",
-          "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-5.4.0.tgz",
-          "integrity": "sha512-zjaXglF5nnWpsq470jSv6P9DwPvgLkuapYmfDm3JWOm0vkNTVF2tI4UrN2r6jH1qM/uc/WtxYY1hYoA2dOKj5w==",
-          "dev": true,
-          "requires": {
-            "has-flag": "^3.0.0"
-          }
-        }
-      }
-    },
-    "ts-mockito": {
-      "version": "2.3.1",
-      "resolved": "https://registry.npmjs.org/ts-mockito/-/ts-mockito-2.3.1.tgz",
-      "integrity": "sha512-chcKw0sTApwJxTyKhzbWxI4BTUJ6RStZKUVh2/mfwYqFS09PYy5pvdXZwG35QSkqT5pkdXZlYKBX196RRvEZdQ==",
-      "dev": true,
-      "requires": {
-        "lodash": "^4.17.5"
-      }
-    },
-    "ts-node": {
-      "version": "5.0.1",
-      "resolved": "https://registry.npmjs.org/ts-node/-/ts-node-5.0.1.tgz",
-      "integrity": "sha512-XK7QmDcNHVmZkVtkiwNDWiERRHPyU8nBqZB1+iv2UhOG0q3RQ9HsZ2CMqISlFbxjrYFGfG2mX7bW4dAyxBVzUw==",
-      "dev": true,
-      "requires": {
-        "arrify": "^1.0.0",
-        "chalk": "^2.3.0",
-        "diff": "^3.1.0",
-        "make-error": "^1.1.1",
-        "minimist": "^1.2.0",
-        "mkdirp": "^0.5.1",
-        "source-map-support": "^0.5.3",
-        "yn": "^2.0.0"
-      },
-      "dependencies": {
-        "chalk": {
-          "version": "2.4.1",
-          "resolved": "https://registry.npmjs.org/chalk/-/chalk-2.4.1.tgz",
-          "integrity": "sha512-ObN6h1v2fTJSmUXoS3nMQ92LbDK9be4TV+6G+omQlGJFdcUX5heKi1LZ1YnRMIgwTLEj3E24bT6tYni50rlCfQ==",
-          "dev": true,
-          "requires": {
-            "ansi-styles": "^3.2.1",
-            "escape-string-regexp": "^1.0.5",
-            "supports-color": "^5.3.0"
-          }
-        },
-        "has-flag": {
-          "version": "3.0.0",
-          "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-3.0.0.tgz",
-          "integrity": "sha1-tdRU3CGZriJWmfNGfloH87lVuv0=",
-          "dev": true
-        },
-        "minimist": {
-          "version": "1.2.0",
-          "resolved": "https://registry.npmjs.org/minimist/-/minimist-1.2.0.tgz",
-          "integrity": "sha1-o1AIsg9BOD7sH7kU9M1d95omQoQ=",
-          "dev": true
-        },
-        "source-map": {
-          "version": "0.6.1",
-          "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.6.1.tgz",
-          "integrity": "sha512-UjgapumWlbMhkBgzT7Ykc5YXUT46F0iKu8SGXq0bcwP5dz/h0Plj6enJqjz1Zbq2l5WaqYnrVbwWOWMyF3F47g==",
-          "dev": true
-        },
-        "source-map-support": {
-          "version": "0.5.9",
-          "resolved": "https://registry.npmjs.org/source-map-support/-/source-map-support-0.5.9.tgz",
-          "integrity": "sha512-gR6Rw4MvUlYy83vP0vxoVNzM6t8MUXqNuRsuBmBHQDu1Fh6X015FrLdgoDKcNdkwGubozq0P4N0Q37UyFVr1EA==",
-          "dev": true,
-          "requires": {
-            "buffer-from": "^1.0.0",
-            "source-map": "^0.6.0"
-          }
-        },
-        "supports-color": {
-          "version": "5.5.0",
-          "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-5.5.0.tgz",
-          "integrity": "sha512-QjVjwdXIt408MIiAqCX4oUKsgU2EqAGzs2Ppkm4aQYbjm+ZEWEcW4SfFNTr4uMNZma0ey4f5lgLrkB0aX0QMow==",
-          "dev": true,
-          "requires": {
-            "has-flag": "^3.0.0"
-          }
-        }
-      }
-    },
-    "tslib": {
-      "version": "1.9.0",
-      "resolved": "https://registry.npmjs.org/tslib/-/tslib-1.9.0.tgz",
-      "integrity": "sha512-f/qGG2tUkrISBlQZEjEqoZ3B2+npJjIf04H1wuAv9iA8i04Icp+61KRXxFdha22670NJopsZCIjhC3SnjPRKrQ=="
-    },
-    "tslint": {
-      "version": "5.12.0",
-      "resolved": "https://registry.npmjs.org/tslint/-/tslint-5.12.0.tgz",
-      "integrity": "sha512-CKEcH1MHUBhoV43SA/Jmy1l24HJJgI0eyLbBNSRyFlsQvb9v6Zdq+Nz2vEOH00nC5SUx4SneJ59PZUS/ARcokQ==",
-      "dev": true,
-      "requires": {
-        "babel-code-frame": "^6.22.0",
-        "builtin-modules": "^1.1.1",
-        "chalk": "^2.3.0",
-        "commander": "^2.12.1",
-        "diff": "^3.2.0",
-        "glob": "^7.1.1",
-        "js-yaml": "^3.7.0",
-        "minimatch": "^3.0.4",
-        "resolve": "^1.3.2",
-        "semver": "^5.3.0",
-        "tslib": "^1.8.0",
-        "tsutils": "^2.27.2"
-      },
-      "dependencies": {
-        "chalk": {
-          "version": "2.4.1",
-          "resolved": "https://registry.npmjs.org/chalk/-/chalk-2.4.1.tgz",
-          "integrity": "sha512-ObN6h1v2fTJSmUXoS3nMQ92LbDK9be4TV+6G+omQlGJFdcUX5heKi1LZ1YnRMIgwTLEj3E24bT6tYni50rlCfQ==",
-          "dev": true,
-          "requires": {
-            "ansi-styles": "^3.2.1",
-            "escape-string-regexp": "^1.0.5",
-            "supports-color": "^5.3.0"
-          }
-        },
-        "has-flag": {
-          "version": "3.0.0",
-          "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-3.0.0.tgz",
-          "integrity": "sha1-tdRU3CGZriJWmfNGfloH87lVuv0=",
-          "dev": true
-        },
-        "supports-color": {
-          "version": "5.5.0",
-          "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-5.5.0.tgz",
-          "integrity": "sha512-QjVjwdXIt408MIiAqCX4oUKsgU2EqAGzs2Ppkm4aQYbjm+ZEWEcW4SfFNTr4uMNZma0ey4f5lgLrkB0aX0QMow==",
-          "dev": true,
-          "requires": {
-            "has-flag": "^3.0.0"
-          }
-        }
-      }
-    },
-    "tsutils": {
-      "version": "2.29.0",
-      "resolved": "https://registry.npmjs.org/tsutils/-/tsutils-2.29.0.tgz",
-      "integrity": "sha512-g5JVHCIJwzfISaXpXE1qvNalca5Jwob6FjI4AoPlqMusJ6ftFE7IkkFoMhVLRgK+4Kx3gkzb8UZK5t5yTTvEmA==",
-      "dev": true,
-      "requires": {
-        "tslib": "^1.8.1"
-      }
-    },
-    "tty-browserify": {
-      "version": "0.0.0",
-      "resolved": "https://registry.npmjs.org/tty-browserify/-/tty-browserify-0.0.0.tgz",
-      "integrity": "sha1-oVe6QC2iTpv5V/mqadUk7tQpAaY=",
-      "dev": true
-    },
-    "tunnel-agent": {
-      "version": "0.6.0",
-      "resolved": "https://registry.npmjs.org/tunnel-agent/-/tunnel-agent-0.6.0.tgz",
-      "integrity": "sha1-J6XeoGs2sEoKmWZ3SykIaPD8QP0=",
-      "requires": {
-        "safe-buffer": "^5.0.1"
-      }
-    },
-    "turf-jsts": {
-      "version": "1.2.3",
-      "resolved": "https://registry.npmjs.org/turf-jsts/-/turf-jsts-1.2.3.tgz",
-      "integrity": "sha512-Ja03QIJlPuHt4IQ2FfGex4F4JAr8m3jpaHbFbQrgwr7s7L6U8ocrHiF3J1+wf9jzhGKxvDeaCAnGDot8OjGFyA=="
-    },
-    "tweetnacl": {
-      "version": "0.14.5",
-      "resolved": "https://registry.npmjs.org/tweetnacl/-/tweetnacl-0.14.5.tgz",
-      "integrity": "sha1-WuaBd/GS1EViadEIr6k/+HQ/T2Q=",
-      "optional": true
-    },
-    "two-product": {
-      "version": "1.0.2",
-      "resolved": "https://registry.npmjs.org/two-product/-/two-product-1.0.2.tgz",
-      "integrity": "sha1-Z9ldSyV6kh4stL16+VEfkIhSLqo="
-    },
-    "two-sum": {
-      "version": "1.0.0",
-      "resolved": "https://registry.npmjs.org/two-sum/-/two-sum-1.0.0.tgz",
-      "integrity": "sha1-MdPzIjnk9zHsqd+RVeKyl/AIq2Q="
-    },
-    "type-check": {
-      "version": "0.3.2",
-      "resolved": "https://registry.npmjs.org/type-check/-/type-check-0.3.2.tgz",
-      "integrity": "sha1-WITKtRLPHTVeP7eE8wgEsrUg23I=",
-      "requires": {
-        "prelude-ls": "~1.1.2"
-      }
-    },
-    "type-is": {
-      "version": "1.6.16",
-      "resolved": "https://registry.npmjs.org/type-is/-/type-is-1.6.16.tgz",
-      "integrity": "sha512-HRkVv/5qY2G6I8iab9cI7v1bOIdhm94dVjQCPFElW9W+3GeDOSHmy2EBYe4VTApuzolPcmgFTN3ftVJRKR2J9Q==",
-      "dev": true,
-      "requires": {
-        "media-typer": "0.3.0",
-        "mime-types": "~2.1.18"
-      }
-    },
-    "typedarray": {
-      "version": "0.0.6",
-      "resolved": "https://registry.npmjs.org/typedarray/-/typedarray-0.0.6.tgz",
-      "integrity": "sha1-hnrHTjhkGHsdPUfZlqeOxciDB3c=",
-      "dev": true
-    },
-    "typescript": {
-      "version": "3.1.6",
-      "resolved": "https://registry.npmjs.org/typescript/-/typescript-3.1.6.tgz",
-      "integrity": "sha512-tDMYfVtvpb96msS1lDX9MEdHrW4yOuZ4Kdc4Him9oU796XldPYF/t2+uKoX0BBa0hXXwDlqYQbXY5Rzjzc5hBA==",
-      "dev": true
-    },
-    "uglify-es": {
-      "version": "3.3.9",
-      "resolved": "https://registry.npmjs.org/uglify-es/-/uglify-es-3.3.9.tgz",
-      "integrity": "sha512-r+MU0rfv4L/0eeW3xZrd16t4NZfK8Ld4SWVglYBb7ez5uXFWHuVRs6xCTrf1yirs9a4j4Y27nn7SRfO6v67XsQ==",
-      "dev": true,
-      "requires": {
-        "commander": "~2.13.0",
-        "source-map": "~0.6.1"
-      },
-      "dependencies": {
-        "commander": {
-          "version": "2.13.0",
-          "resolved": "https://registry.npmjs.org/commander/-/commander-2.13.0.tgz",
-          "integrity": "sha512-MVuS359B+YzaWqjCL/c+22gfryv+mCBPHAv3zyVI2GN8EY6IRP8VwtasXn8jyyhvvq84R4ImN1OKRtcbIasjYA==",
-          "dev": true
-        },
-        "source-map": {
-          "version": "0.6.1",
-          "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.6.1.tgz",
-          "integrity": "sha512-UjgapumWlbMhkBgzT7Ykc5YXUT46F0iKu8SGXq0bcwP5dz/h0Plj6enJqjz1Zbq2l5WaqYnrVbwWOWMyF3F47g==",
-          "dev": true
-        }
-      }
-    },
-    "uglify-to-browserify": {
-      "version": "1.0.2",
-      "resolved": "https://registry.npmjs.org/uglify-to-browserify/-/uglify-to-browserify-1.0.2.tgz",
-      "integrity": "sha1-bgkk1r2mta/jSeOabWMoUKD4grc=",
-      "dev": true,
-      "optional": true
-    },
-    "uglifyjs-webpack-plugin": {
-      "version": "1.3.0",
-      "resolved": "https://registry.npmjs.org/uglifyjs-webpack-plugin/-/uglifyjs-webpack-plugin-1.3.0.tgz",
-      "integrity": "sha512-ovHIch0AMlxjD/97j9AYovZxG5wnHOPkL7T1GKochBADp/Zwc44pEWNqpKl1Loupp1WhFg7SlYmHZRUfdAacgw==",
-      "dev": true,
-      "requires": {
-        "cacache": "^10.0.4",
-        "find-cache-dir": "^1.0.0",
-        "schema-utils": "^0.4.5",
-        "serialize-javascript": "^1.4.0",
-        "source-map": "^0.6.1",
-        "uglify-es": "^3.3.4",
-        "webpack-sources": "^1.1.0",
-        "worker-farm": "^1.5.2"
-      },
-      "dependencies": {
-        "schema-utils": {
-          "version": "0.4.7",
-          "resolved": "https://registry.npmjs.org/schema-utils/-/schema-utils-0.4.7.tgz",
-          "integrity": "sha512-v/iwU6wvwGK8HbU9yi3/nhGzP0yGSuhQMzL6ySiec1FSrZZDkhm4noOSWzrNFo/jEc+SJY6jRTwuwbSXJPDUnQ==",
-          "dev": true,
-          "requires": {
-            "ajv": "^6.1.0",
-            "ajv-keywords": "^3.1.0"
-          }
-        },
-        "source-map": {
-          "version": "0.6.1",
-          "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.6.1.tgz",
-          "integrity": "sha512-UjgapumWlbMhkBgzT7Ykc5YXUT46F0iKu8SGXq0bcwP5dz/h0Plj6enJqjz1Zbq2l5WaqYnrVbwWOWMyF3F47g==",
-          "dev": true
-        }
-      }
-    },
-    "unicode-canonical-property-names-ecmascript": {
-      "version": "1.0.4",
-      "resolved": "https://registry.npmjs.org/unicode-canonical-property-names-ecmascript/-/unicode-canonical-property-names-ecmascript-1.0.4.tgz",
-      "integrity": "sha512-jDrNnXWHd4oHiTZnx/ZG7gtUTVp+gCcTTKr8L0HjlwphROEW3+Him+IpvC+xcJEFegapiMZyZe02CyuOnRmbnQ==",
-      "dev": true
-    },
-    "unicode-match-property-ecmascript": {
-      "version": "1.0.4",
-      "resolved": "https://registry.npmjs.org/unicode-match-property-ecmascript/-/unicode-match-property-ecmascript-1.0.4.tgz",
-      "integrity": "sha512-L4Qoh15vTfntsn4P1zqnHulG0LdXgjSO035fEpdtp6YxXhMT51Q6vgM5lYdG/5X3MjS+k/Y9Xw4SFCY9IkR0rg==",
-      "dev": true,
-      "requires": {
-        "unicode-canonical-property-names-ecmascript": "^1.0.4",
-        "unicode-property-aliases-ecmascript": "^1.0.4"
-      }
-    },
-    "unicode-match-property-value-ecmascript": {
-      "version": "1.0.2",
-      "resolved": "https://registry.npmjs.org/unicode-match-property-value-ecmascript/-/unicode-match-property-value-ecmascript-1.0.2.tgz",
-      "integrity": "sha512-Rx7yODZC1L/T8XKo/2kNzVAQaRE88AaMvI1EF/Xnj3GW2wzN6fop9DDWuFAKUVFH7vozkz26DzP0qyWLKLIVPQ==",
-      "dev": true
-    },
-    "unicode-property-aliases-ecmascript": {
-      "version": "1.0.4",
-      "resolved": "https://registry.npmjs.org/unicode-property-aliases-ecmascript/-/unicode-property-aliases-ecmascript-1.0.4.tgz",
-      "integrity": "sha512-2WSLa6OdYd2ng8oqiGIWnJqyFArvhn+5vgx5GTxMbUYjCYKUcuKS62YLFF0R/BDGlB1yzXjQOLtPAfHsgirEpg==",
-      "dev": true
-    },
-    "union-value": {
-      "version": "1.0.0",
-      "resolved": "https://registry.npmjs.org/union-value/-/union-value-1.0.0.tgz",
-      "integrity": "sha1-XHHDTLW61dzr4+oM0IIHulqhrqQ=",
-      "dev": true,
-      "requires": {
-        "arr-union": "^3.1.0",
-        "get-value": "^2.0.6",
-        "is-extendable": "^0.1.1",
-        "set-value": "^0.4.3"
-      },
-      "dependencies": {
-        "extend-shallow": {
-          "version": "2.0.1",
-          "resolved": "https://registry.npmjs.org/extend-shallow/-/extend-shallow-2.0.1.tgz",
-          "integrity": "sha1-Ua99YUrZqfYQ6huvu5idaxxWiQ8=",
-          "dev": true,
-          "requires": {
-            "is-extendable": "^0.1.0"
-          }
-        },
-        "set-value": {
-          "version": "0.4.3",
-          "resolved": "https://registry.npmjs.org/set-value/-/set-value-0.4.3.tgz",
-          "integrity": "sha1-fbCPnT0i3H945Trzw79GZuzfzPE=",
-          "dev": true,
-          "requires": {
-            "extend-shallow": "^2.0.1",
-            "is-extendable": "^0.1.1",
-            "is-plain-object": "^2.0.1",
-            "to-object-path": "^0.3.0"
-          }
-        }
-      }
-    },
-    "unique-filename": {
-      "version": "1.1.1",
-      "resolved": "https://registry.npmjs.org/unique-filename/-/unique-filename-1.1.1.tgz",
-      "integrity": "sha512-Vmp0jIp2ln35UTXuryvjzkjGdRyf9b2lTXuSYUiPmzRcl3FDtYqAwOnTJkAngD9SWhnoJzDbTKwaOrZ+STtxNQ==",
-      "dev": true,
-      "requires": {
-        "unique-slug": "^2.0.0"
-      }
-    },
-    "unique-slug": {
-      "version": "2.0.1",
-      "resolved": "https://registry.npmjs.org/unique-slug/-/unique-slug-2.0.1.tgz",
-      "integrity": "sha512-n9cU6+gITaVu7VGj1Z8feKMmfAjEAQGhwD9fE3zvpRRa0wEIx8ODYkVGfSc94M2OX00tUFV8wH3zYbm1I8mxFg==",
-      "dev": true,
-      "requires": {
-        "imurmurhash": "^0.1.4"
-      }
-    },
-    "universalify": {
-      "version": "0.1.1",
-      "resolved": "https://registry.npmjs.org/universalify/-/universalify-0.1.1.tgz",
-      "integrity": "sha1-+nG63UQ3r0wUiEHjs7Fl+enlkLc="
-    },
-    "unpipe": {
-      "version": "1.0.0",
-      "resolved": "https://registry.npmjs.org/unpipe/-/unpipe-1.0.0.tgz",
-      "integrity": "sha1-sr9O6FFKrmFltIF4KdIbLvSZBOw=",
-      "dev": true
-    },
-    "unset-value": {
-      "version": "1.0.0",
-      "resolved": "https://registry.npmjs.org/unset-value/-/unset-value-1.0.0.tgz",
-      "integrity": "sha1-g3aHP30jNRef+x5vw6jtDfyKtVk=",
-      "dev": true,
-      "requires": {
-        "has-value": "^0.3.1",
-        "isobject": "^3.0.0"
-      },
-      "dependencies": {
-        "has-value": {
-          "version": "0.3.1",
-          "resolved": "https://registry.npmjs.org/has-value/-/has-value-0.3.1.tgz",
-          "integrity": "sha1-ex9YutpiyoJ+wKIHgCVlSEWZXh8=",
-          "dev": true,
-          "requires": {
-            "get-value": "^2.0.3",
-            "has-values": "^0.1.4",
-            "isobject": "^2.0.0"
-          },
-          "dependencies": {
-            "isobject": {
-              "version": "2.1.0",
-              "resolved": "https://registry.npmjs.org/isobject/-/isobject-2.1.0.tgz",
-              "integrity": "sha1-8GVWEJaj8dou9GJy+BXIQNh+DIk=",
-              "dev": true,
-              "requires": {
-                "isarray": "1.0.0"
-              }
-            }
-          }
-        },
-        "has-values": {
-          "version": "0.1.4",
-          "resolved": "https://registry.npmjs.org/has-values/-/has-values-0.1.4.tgz",
-          "integrity": "sha1-bWHeldkd/Km5oCCJrThL/49it3E=",
-          "dev": true
-        },
-        "isobject": {
-          "version": "3.0.1",
-          "resolved": "https://registry.npmjs.org/isobject/-/isobject-3.0.1.tgz",
-          "integrity": "sha1-TkMekrEalzFjaqH5yNHMvP2reN8=",
-          "dev": true
-        }
-      }
-    },
-    "unzip-response": {
-      "version": "2.0.1",
-      "resolved": "https://registry.npmjs.org/unzip-response/-/unzip-response-2.0.1.tgz",
-      "integrity": "sha1-0vD3N9FrBhXnKmk17QQhRXLVb5c="
-    },
-    "upath": {
-      "version": "1.0.4",
-      "resolved": "https://registry.npmjs.org/upath/-/upath-1.0.4.tgz",
-      "integrity": "sha512-d4SJySNBXDaQp+DPrziv3xGS6w3d2Xt69FijJr86zMPBy23JEloMCEOUBBzuN7xCtjLCnmB9tI/z7SBCahHBOw==",
-      "dev": true
-    },
-    "uri-js": {
-      "version": "4.2.2",
-      "resolved": "https://registry.npmjs.org/uri-js/-/uri-js-4.2.2.tgz",
-      "integrity": "sha512-KY9Frmirql91X2Qgjry0Wd4Y+YTdrdZheS8TFwvkbLWf/G5KNJDCh6pKL5OZctEW4+0Baa5idK2ZQuELRwPznQ==",
-      "dev": true,
-      "requires": {
-        "punycode": "^2.1.0"
-      },
-      "dependencies": {
-        "punycode": {
-          "version": "2.1.1",
-          "resolved": "https://registry.npmjs.org/punycode/-/punycode-2.1.1.tgz",
-          "integrity": "sha512-XRsRjdf+j5ml+y/6GKHPZbrF/8p2Yga0JPtdqTIY2Xe5ohJPD9saDJJLPvp9+NSBprVvevdXZybnj2cv8OEd0A==",
-          "dev": true
-        }
-      }
-    },
-    "urix": {
-      "version": "0.1.0",
-      "resolved": "https://registry.npmjs.org/urix/-/urix-0.1.0.tgz",
-      "integrity": "sha1-2pN/emLiH+wf0Y1Js1wpNQZ6bHI=",
-      "dev": true
-    },
-    "url": {
-      "version": "0.11.0",
-      "resolved": "https://registry.npmjs.org/url/-/url-0.11.0.tgz",
-      "integrity": "sha1-ODjpfPxgUh63PFJajlW/3Z4uKPE=",
-      "dev": true,
-      "requires": {
-        "punycode": "1.3.2",
-        "querystring": "0.2.0"
-      },
-      "dependencies": {
-        "punycode": {
-          "version": "1.3.2",
-          "resolved": "https://registry.npmjs.org/punycode/-/punycode-1.3.2.tgz",
-          "integrity": "sha1-llOgNvt8HuQjQvIyXM7v6jkmxI0=",
-          "dev": true
-        }
-      }
-    },
-    "url-parse": {
-      "version": "1.4.4",
-      "resolved": "https://registry.npmjs.org/url-parse/-/url-parse-1.4.4.tgz",
-      "integrity": "sha512-/92DTTorg4JjktLNLe6GPS2/RvAd/RGr6LuktmWSMLEOa6rjnlrFXNgSbSmkNvCoL2T028A0a1JaJLzRMlFoHg==",
-      "dev": true,
-      "requires": {
-        "querystringify": "^2.0.0",
-        "requires-port": "^1.0.0"
-      }
-    },
-    "url-parse-lax": {
-      "version": "1.0.0",
-      "resolved": "https://registry.npmjs.org/url-parse-lax/-/url-parse-lax-1.0.0.tgz",
-      "integrity": "sha1-evjzA2Rem9eaJy56FKxovAYJ2nM=",
-      "requires": {
-        "prepend-http": "^1.0.1"
-      }
-    },
-    "use": {
-      "version": "3.1.0",
-      "resolved": "https://registry.npmjs.org/use/-/use-3.1.0.tgz",
-      "integrity": "sha512-6UJEQM/L+mzC3ZJNM56Q4DFGLX/evKGRg15UJHGB9X5j5Z3AFbgZvjUh2yq/UJUY4U5dh7Fal++XbNg1uzpRAw==",
-      "dev": true,
-      "requires": {
-        "kind-of": "^6.0.2"
-      },
-      "dependencies": {
-        "kind-of": {
-          "version": "6.0.2",
-          "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-6.0.2.tgz",
-          "integrity": "sha512-s5kLOcnH0XqDO+FvuaLX8DDjZ18CGFk7VygH40QoKPUQhW4e2rvM0rwUq0t8IQDOwYSeLK01U90OjzBTme2QqA==",
-          "dev": true
-        }
-      }
-    },
-    "util": {
-      "version": "0.10.3",
-      "resolved": "https://registry.npmjs.org/util/-/util-0.10.3.tgz",
-      "integrity": "sha1-evsa/lCAUkZInj23/g7TeTNqwPk=",
-      "requires": {
-        "inherits": "2.0.1"
-      },
-      "dependencies": {
-        "inherits": {
-          "version": "2.0.1",
-          "resolved": "https://registry.npmjs.org/inherits/-/inherits-2.0.1.tgz",
-          "integrity": "sha1-sX0I0ya0Qj5Wjv9xn5GwscvfafE="
-        }
-      }
-    },
-    "util-deprecate": {
-      "version": "1.0.2",
-      "resolved": "https://registry.npmjs.org/util-deprecate/-/util-deprecate-1.0.2.tgz",
-      "integrity": "sha1-RQ1Nyfpw3nMnYvvS1KKJgUGaDM8=",
-      "dev": true
-    },
-    "util.promisify": {
-      "version": "1.0.0",
-      "resolved": "https://registry.npmjs.org/util.promisify/-/util.promisify-1.0.0.tgz",
-      "integrity": "sha512-i+6qA2MPhvoKLuxnJNpXAGhg7HphQOSUq2LKMZD0m15EiskXUkMvKdF4Uui0WYeCUGea+o2cw/ZuwehtfsrNkA==",
-      "dev": true,
-      "requires": {
-        "define-properties": "^1.1.2",
-        "object.getownpropertydescriptors": "^2.0.3"
-      }
-    },
-    "utils-merge": {
-      "version": "1.0.1",
-      "resolved": "https://registry.npmjs.org/utils-merge/-/utils-merge-1.0.1.tgz",
-      "integrity": "sha1-n5VxD1CiZ5R7LMwSR0HBAoQn5xM=",
-      "dev": true
-    },
-    "uuid": {
-      "version": "3.2.1",
-      "resolved": "https://registry.npmjs.org/uuid/-/uuid-3.2.1.tgz",
-      "integrity": "sha512-jZnMwlb9Iku/O3smGWvZhauCf6cvvpKi4BKRiliS3cxnI+Gz9j5MEpTz2UFuXiKPJocb7gnsLHwiS05ige5BEA=="
-    },
-    "validate-npm-package-license": {
-      "version": "3.0.3",
-      "resolved": "https://registry.npmjs.org/validate-npm-package-license/-/validate-npm-package-license-3.0.3.tgz",
-      "integrity": "sha512-63ZOUnL4SIXj4L0NixR3L1lcjO38crAbgrTpl28t8jjrfuiOBL5Iygm+60qPs/KsZGzPNg6Smnc/oY16QTjF0g==",
-      "dev": true,
-      "requires": {
-        "spdx-correct": "^3.0.0",
-        "spdx-expression-parse": "^3.0.0"
-      }
-    },
-    "validate-npm-package-name": {
-      "version": "3.0.0",
-      "resolved": "https://registry.npmjs.org/validate-npm-package-name/-/validate-npm-package-name-3.0.0.tgz",
-      "integrity": "sha1-X6kS2B630MdK/BQN5zF/DKffQ34=",
-      "dev": true,
-      "requires": {
-        "builtins": "^1.0.3"
-      }
-    },
-    "vary": {
-      "version": "1.1.2",
-      "resolved": "https://registry.npmjs.org/vary/-/vary-1.1.2.tgz",
-      "integrity": "sha1-IpnwLG3tMNSllhsLn3RSShj2NPw=",
-      "dev": true
-    },
-    "verror": {
-      "version": "1.10.0",
-      "resolved": "https://registry.npmjs.org/verror/-/verror-1.10.0.tgz",
-      "integrity": "sha1-OhBcoXBTr1XW4nDB+CiGguGNpAA=",
-      "requires": {
-        "assert-plus": "^1.0.0",
-        "core-util-is": "1.0.2",
-        "extsprintf": "^1.2.0"
-      },
-      "dependencies": {
-        "assert-plus": {
-          "version": "1.0.0",
-          "resolved": "https://registry.npmjs.org/assert-plus/-/assert-plus-1.0.0.tgz",
-          "integrity": "sha1-8S4PPF13sLHN2RRpQuTpbB5N1SU="
-        }
-      }
-    },
-    "version-exists": {
-      "version": "0.0.3",
-      "resolved": "https://registry.npmjs.org/version-exists/-/version-exists-0.0.3.tgz",
-      "integrity": "sha1-Lub+LIpTy9X5F6hSHpiyDs9668k=",
-      "requires": {
-        "args": "2.6.1",
-        "chalk": "1.1.3",
-        "node-fetch": "1.6.3",
-        "npm-name": "3.0.0"
-      },
-      "dependencies": {
-        "ansi-styles": {
-          "version": "2.2.1",
-          "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-2.2.1.tgz",
-          "integrity": "sha1-tDLdM1i2NM914eRmQ2gkBTPB3b4="
-        },
-        "chalk": {
-          "version": "1.1.3",
-          "resolved": "http://registry.npmjs.org/chalk/-/chalk-1.1.3.tgz",
-          "integrity": "sha1-qBFcVeSnAv5NFQq9OHKCKn4J/Jg=",
-          "requires": {
-            "ansi-styles": "^2.2.1",
-            "escape-string-regexp": "^1.0.2",
-            "has-ansi": "^2.0.0",
-            "strip-ansi": "^3.0.0",
-            "supports-color": "^2.0.0"
-          }
-        },
-        "node-fetch": {
-          "version": "1.6.3",
-          "resolved": "http://registry.npmjs.org/node-fetch/-/node-fetch-1.6.3.tgz",
-          "integrity": "sha1-3CNO3WSJmC1Y6PDbT2lQKavNjAQ=",
-          "requires": {
-            "encoding": "^0.1.11",
-            "is-stream": "^1.0.1"
-          }
-        },
-        "supports-color": {
-          "version": "2.0.0",
-          "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-2.0.0.tgz",
-          "integrity": "sha1-U10EXOa2Nj+kARcIRimZXp3zJMc="
-        }
-      }
-    },
-    "vm-browserify": {
-      "version": "0.0.4",
-      "resolved": "https://registry.npmjs.org/vm-browserify/-/vm-browserify-0.0.4.tgz",
-      "integrity": "sha1-XX6kW7755Kb/ZflUOOCofDV9WnM=",
-      "dev": true,
-      "requires": {
-        "indexof": "0.0.1"
-      }
-    },
-    "w3c-hr-time": {
-      "version": "1.0.1",
-      "resolved": "https://registry.npmjs.org/w3c-hr-time/-/w3c-hr-time-1.0.1.tgz",
-      "integrity": "sha1-gqwr/2PZUOqeMYmlimViX+3xkEU=",
-      "dev": true,
-      "requires": {
-        "browser-process-hrtime": "^0.1.2"
-      }
-    },
-    "walker": {
-      "version": "1.0.7",
-      "resolved": "https://registry.npmjs.org/walker/-/walker-1.0.7.tgz",
-      "integrity": "sha1-L3+bj9ENZ3JisYqITijRlhjgKPs=",
-      "dev": true,
-      "requires": {
-        "makeerror": "1.0.x"
-      }
-    },
-    "wallaby-webpack": {
-      "version": "3.9.11",
-      "resolved": "https://registry.npmjs.org/wallaby-webpack/-/wallaby-webpack-3.9.11.tgz",
-      "integrity": "sha512-V96IfgtFIpt03ZAyRUD/Az63rkIwWSdID88cMKS+4S0iWfyDyxXO7FnCPqBSRZ8/5V+5f1PyT3jXXSt5eTXNdQ==",
-      "dev": true,
-      "requires": {
-        "graceful-fs": "^4.1.3",
-        "lodash": "^4.17.10",
-        "minimatch": "3.0.3"
-      },
-      "dependencies": {
-        "lodash": {
-          "version": "4.17.10",
-          "resolved": "https://registry.npmjs.org/lodash/-/lodash-4.17.10.tgz",
-          "integrity": "sha512-UejweD1pDoXu+AD825lWwp4ZGtSwgnpZxb3JDViD7StjQz+Nb/6l093lx4OQ0foGWNRoc19mWy7BzL+UAK2iVg==",
-          "dev": true
-        },
-        "minimatch": {
-          "version": "3.0.3",
-          "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-3.0.3.tgz",
-          "integrity": "sha1-Kk5AkLlrLbBqnX3wEFWmKnfJt3Q=",
-          "dev": true,
-          "requires": {
-            "brace-expansion": "^1.0.0"
-          }
-        }
-      }
-    },
-    "watch": {
-      "version": "0.18.0",
-      "resolved": "https://registry.npmjs.org/watch/-/watch-0.18.0.tgz",
-      "integrity": "sha1-KAlUdsbffJDJYxOJkMClQj60uYY=",
-      "dev": true,
-      "requires": {
-        "exec-sh": "^0.2.0",
-        "minimist": "^1.2.0"
-      },
-      "dependencies": {
-        "minimist": {
-          "version": "1.2.0",
-          "resolved": "https://registry.npmjs.org/minimist/-/minimist-1.2.0.tgz",
-          "integrity": "sha1-o1AIsg9BOD7sH7kU9M1d95omQoQ=",
-          "dev": true
-        }
-      }
-    },
-    "watchpack": {
-      "version": "1.5.0",
-      "resolved": "https://registry.npmjs.org/watchpack/-/watchpack-1.5.0.tgz",
-      "integrity": "sha512-RSlipNQB1u48cq0wH/BNfCu1tD/cJ8ydFIkNYhp9o+3d+8unClkIovpW5qpFPgmL9OE48wfAnlZydXByWP82AA==",
-      "dev": true,
-      "requires": {
-        "chokidar": "^2.0.2",
-        "graceful-fs": "^4.1.2",
-        "neo-async": "^2.5.0"
-      },
-      "dependencies": {
-        "anymatch": {
-          "version": "2.0.0",
-          "resolved": "https://registry.npmjs.org/anymatch/-/anymatch-2.0.0.tgz",
-          "integrity": "sha512-5teOsQWABXHHBFP9y3skS5P3d/WfWXpv3FUpy+LorMrNYaT9pI4oLMQX7jzQ2KklNpGpWHzdCXTDT2Y3XGlZBw==",
-          "dev": true,
-          "requires": {
-            "micromatch": "^3.1.4",
-            "normalize-path": "^2.1.1"
-          }
-        },
-        "arr-diff": {
-          "version": "4.0.0",
-          "resolved": "https://registry.npmjs.org/arr-diff/-/arr-diff-4.0.0.tgz",
-          "integrity": "sha1-1kYQdP6/7HHn4VI1dhoyml3HxSA=",
-          "dev": true
-        },
-        "array-unique": {
-          "version": "0.3.2",
-          "resolved": "https://registry.npmjs.org/array-unique/-/array-unique-0.3.2.tgz",
-          "integrity": "sha1-qJS3XUvE9s1nnvMkSp/Y9Gri1Cg=",
-          "dev": true
-        },
-        "braces": {
-          "version": "2.3.1",
-          "resolved": "https://registry.npmjs.org/braces/-/braces-2.3.1.tgz",
-          "integrity": "sha512-SO5lYHA3vO6gz66erVvedSCkp7AKWdv6VcQ2N4ysXfPxdAlxAMMAdwegGGcv1Bqwm7naF1hNdk5d6AAIEHV2nQ==",
-          "dev": true,
-          "requires": {
-            "arr-flatten": "^1.1.0",
-            "array-unique": "^0.3.2",
-            "define-property": "^1.0.0",
-            "extend-shallow": "^2.0.1",
-            "fill-range": "^4.0.0",
-            "isobject": "^3.0.1",
-            "kind-of": "^6.0.2",
-            "repeat-element": "^1.1.2",
-            "snapdragon": "^0.8.1",
-            "snapdragon-node": "^2.0.1",
-            "split-string": "^3.0.2",
-            "to-regex": "^3.0.1"
-          },
-          "dependencies": {
-            "define-property": {
-              "version": "1.0.0",
-              "resolved": "https://registry.npmjs.org/define-property/-/define-property-1.0.0.tgz",
-              "integrity": "sha1-dp66rz9KY6rTr56NMEybvnm/sOY=",
-              "dev": true,
-              "requires": {
-                "is-descriptor": "^1.0.0"
-              }
-            },
-            "extend-shallow": {
-              "version": "2.0.1",
-              "resolved": "https://registry.npmjs.org/extend-shallow/-/extend-shallow-2.0.1.tgz",
-              "integrity": "sha1-Ua99YUrZqfYQ6huvu5idaxxWiQ8=",
-              "dev": true,
-              "requires": {
-                "is-extendable": "^0.1.0"
-              }
-            }
-          }
-        },
-        "chokidar": {
-          "version": "2.0.2",
-          "resolved": "https://registry.npmjs.org/chokidar/-/chokidar-2.0.2.tgz",
-          "integrity": "sha512-l32Hw3wqB0L2kGVmSbK/a+xXLDrUEsc84pSgMkmwygHvD7ubRsP/vxxHa5BtB6oix1XLLVCHyYMsckRXxThmZw==",
-          "dev": true,
-          "requires": {
-            "anymatch": "^2.0.0",
-            "async-each": "^1.0.0",
-            "braces": "^2.3.0",
-            "fsevents": "^1.0.0",
-            "glob-parent": "^3.1.0",
-            "inherits": "^2.0.1",
-            "is-binary-path": "^1.0.0",
-            "is-glob": "^4.0.0",
-            "normalize-path": "^2.1.1",
-            "path-is-absolute": "^1.0.0",
-            "readdirp": "^2.0.0",
-            "upath": "^1.0.0"
-          }
-        },
-        "expand-brackets": {
-          "version": "2.1.4",
-          "resolved": "https://registry.npmjs.org/expand-brackets/-/expand-brackets-2.1.4.tgz",
-          "integrity": "sha1-t3c14xXOMPa27/D4OwQVGiJEliI=",
-          "dev": true,
-          "requires": {
-            "debug": "^2.3.3",
-            "define-property": "^0.2.5",
-            "extend-shallow": "^2.0.1",
-            "posix-character-classes": "^0.1.0",
-            "regex-not": "^1.0.0",
-            "snapdragon": "^0.8.1",
-            "to-regex": "^3.0.1"
-          },
-          "dependencies": {
-            "define-property": {
-              "version": "0.2.5",
-              "resolved": "https://registry.npmjs.org/define-property/-/define-property-0.2.5.tgz",
-              "integrity": "sha1-w1se+RjsPJkPmlvFe+BKrOxcgRY=",
-              "dev": true,
-              "requires": {
-                "is-descriptor": "^0.1.0"
-              }
-            },
-            "extend-shallow": {
-              "version": "2.0.1",
-              "resolved": "https://registry.npmjs.org/extend-shallow/-/extend-shallow-2.0.1.tgz",
-              "integrity": "sha1-Ua99YUrZqfYQ6huvu5idaxxWiQ8=",
-              "dev": true,
-              "requires": {
-                "is-extendable": "^0.1.0"
-              }
-            },
-            "is-descriptor": {
-              "version": "0.1.6",
-              "resolved": "https://registry.npmjs.org/is-descriptor/-/is-descriptor-0.1.6.tgz",
-              "integrity": "sha512-avDYr0SB3DwO9zsMov0gKCESFYqCnE4hq/4z3TdUlukEy5t9C0YRq7HLrsN52NAcqXKaepeCD0n+B0arnVG3Hg==",
-              "dev": true,
-              "requires": {
-                "is-accessor-descriptor": "^0.1.6",
-                "is-data-descriptor": "^0.1.4",
-                "kind-of": "^5.0.0"
-              }
-            },
-            "kind-of": {
-              "version": "5.1.0",
-              "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-5.1.0.tgz",
-              "integrity": "sha512-NGEErnH6F2vUuXDh+OlbcKW7/wOcfdRHaZ7VWtqCztfHri/++YKmP51OdWeGPuqCOba6kk2OTe5d02VmTB80Pw==",
-              "dev": true
-            }
-          }
-        },
-        "extglob": {
-          "version": "2.0.4",
-          "resolved": "https://registry.npmjs.org/extglob/-/extglob-2.0.4.tgz",
-          "integrity": "sha512-Nmb6QXkELsuBr24CJSkilo6UHHgbekK5UiZgfE6UHD3Eb27YC6oD+bhcT+tJ6cl8dmsgdQxnWlcry8ksBIBLpw==",
-          "dev": true,
-          "requires": {
-            "array-unique": "^0.3.2",
-            "define-property": "^1.0.0",
-            "expand-brackets": "^2.1.4",
-            "extend-shallow": "^2.0.1",
-            "fragment-cache": "^0.2.1",
-            "regex-not": "^1.0.0",
-            "snapdragon": "^0.8.1",
-            "to-regex": "^3.0.1"
-          },
-          "dependencies": {
-            "define-property": {
-              "version": "1.0.0",
-              "resolved": "https://registry.npmjs.org/define-property/-/define-property-1.0.0.tgz",
-              "integrity": "sha1-dp66rz9KY6rTr56NMEybvnm/sOY=",
-              "dev": true,
-              "requires": {
-                "is-descriptor": "^1.0.0"
-              }
-            },
-            "extend-shallow": {
-              "version": "2.0.1",
-              "resolved": "https://registry.npmjs.org/extend-shallow/-/extend-shallow-2.0.1.tgz",
-              "integrity": "sha1-Ua99YUrZqfYQ6huvu5idaxxWiQ8=",
-              "dev": true,
-              "requires": {
-                "is-extendable": "^0.1.0"
-              }
-            }
-          }
-        },
-        "fill-range": {
-          "version": "4.0.0",
-          "resolved": "https://registry.npmjs.org/fill-range/-/fill-range-4.0.0.tgz",
-          "integrity": "sha1-1USBHUKPmOsGpj3EAtJAPDKMOPc=",
-          "dev": true,
-          "requires": {
-            "extend-shallow": "^2.0.1",
-            "is-number": "^3.0.0",
-            "repeat-string": "^1.6.1",
-            "to-regex-range": "^2.1.0"
-          },
-          "dependencies": {
-            "extend-shallow": {
-              "version": "2.0.1",
-              "resolved": "https://registry.npmjs.org/extend-shallow/-/extend-shallow-2.0.1.tgz",
-              "integrity": "sha1-Ua99YUrZqfYQ6huvu5idaxxWiQ8=",
-              "dev": true,
-              "requires": {
-                "is-extendable": "^0.1.0"
-              }
-            }
-          }
-        },
-        "glob-parent": {
-          "version": "3.1.0",
-          "resolved": "https://registry.npmjs.org/glob-parent/-/glob-parent-3.1.0.tgz",
-          "integrity": "sha1-nmr2KZ2NO9K9QEMIMr0RPfkGxa4=",
-          "dev": true,
-          "requires": {
-            "is-glob": "^3.1.0",
-            "path-dirname": "^1.0.0"
-          },
-          "dependencies": {
-            "is-glob": {
-              "version": "3.1.0",
-              "resolved": "https://registry.npmjs.org/is-glob/-/is-glob-3.1.0.tgz",
-              "integrity": "sha1-e6WuJCF4BKxwcHuWkiVnSGzD6Eo=",
-              "dev": true,
-              "requires": {
-                "is-extglob": "^2.1.0"
-              }
-            }
-          }
-        },
-        "is-accessor-descriptor": {
-          "version": "0.1.6",
-          "resolved": "https://registry.npmjs.org/is-accessor-descriptor/-/is-accessor-descriptor-0.1.6.tgz",
-          "integrity": "sha1-qeEss66Nh2cn7u84Q/igiXtcmNY=",
-          "dev": true,
-          "requires": {
-            "kind-of": "^3.0.2"
-          },
-          "dependencies": {
-            "kind-of": {
-              "version": "3.2.2",
-              "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-3.2.2.tgz",
-              "integrity": "sha1-MeohpzS6ubuw8yRm2JOupR5KPGQ=",
-              "dev": true,
-              "requires": {
-                "is-buffer": "^1.1.5"
-              }
-            }
-          }
-        },
-        "is-data-descriptor": {
-          "version": "0.1.4",
-          "resolved": "https://registry.npmjs.org/is-data-descriptor/-/is-data-descriptor-0.1.4.tgz",
-          "integrity": "sha1-C17mSDiOLIYCgueT8YVv7D8wG1Y=",
-          "dev": true,
-          "requires": {
-            "kind-of": "^3.0.2"
-          },
-          "dependencies": {
-            "kind-of": {
-              "version": "3.2.2",
-              "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-3.2.2.tgz",
-              "integrity": "sha1-MeohpzS6ubuw8yRm2JOupR5KPGQ=",
-              "dev": true,
-              "requires": {
-                "is-buffer": "^1.1.5"
-              }
-            }
-          }
-        },
-        "is-extglob": {
-          "version": "2.1.1",
-          "resolved": "https://registry.npmjs.org/is-extglob/-/is-extglob-2.1.1.tgz",
-          "integrity": "sha1-qIwCU1eR8C7TfHahueqXc8gz+MI=",
-          "dev": true
-        },
-        "is-glob": {
-          "version": "4.0.0",
-          "resolved": "https://registry.npmjs.org/is-glob/-/is-glob-4.0.0.tgz",
-          "integrity": "sha1-lSHHaEXMJhCoUgPd8ICpWML/q8A=",
-          "dev": true,
-          "requires": {
-            "is-extglob": "^2.1.1"
-          }
-        },
-        "is-number": {
-          "version": "3.0.0",
-          "resolved": "https://registry.npmjs.org/is-number/-/is-number-3.0.0.tgz",
-          "integrity": "sha1-JP1iAaR4LPUFYcgQJ2r8fRLXEZU=",
-          "dev": true,
-          "requires": {
-            "kind-of": "^3.0.2"
-          },
-          "dependencies": {
-            "kind-of": {
-              "version": "3.2.2",
-              "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-3.2.2.tgz",
-              "integrity": "sha1-MeohpzS6ubuw8yRm2JOupR5KPGQ=",
-              "dev": true,
-              "requires": {
-                "is-buffer": "^1.1.5"
-              }
-            }
-          }
-        },
-        "isobject": {
-          "version": "3.0.1",
-          "resolved": "https://registry.npmjs.org/isobject/-/isobject-3.0.1.tgz",
-          "integrity": "sha1-TkMekrEalzFjaqH5yNHMvP2reN8=",
-          "dev": true
-        },
-        "kind-of": {
-          "version": "6.0.2",
-          "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-6.0.2.tgz",
-          "integrity": "sha512-s5kLOcnH0XqDO+FvuaLX8DDjZ18CGFk7VygH40QoKPUQhW4e2rvM0rwUq0t8IQDOwYSeLK01U90OjzBTme2QqA==",
-          "dev": true
-        },
-        "micromatch": {
-          "version": "3.1.9",
-          "resolved": "https://registry.npmjs.org/micromatch/-/micromatch-3.1.9.tgz",
-          "integrity": "sha512-SlIz6sv5UPaAVVFRKodKjCg48EbNoIhgetzfK/Cy0v5U52Z6zB136M8tp0UC9jM53LYbmIRihJszvvqpKkfm9g==",
-          "dev": true,
-          "requires": {
-            "arr-diff": "^4.0.0",
-            "array-unique": "^0.3.2",
-            "braces": "^2.3.1",
-            "define-property": "^2.0.2",
-            "extend-shallow": "^3.0.2",
-            "extglob": "^2.0.4",
-            "fragment-cache": "^0.2.1",
-            "kind-of": "^6.0.2",
-            "nanomatch": "^1.2.9",
-            "object.pick": "^1.3.0",
-            "regex-not": "^1.0.0",
-            "snapdragon": "^0.8.1",
-            "to-regex": "^3.0.1"
-          }
-        }
-      }
-    },
-    "wbuf": {
-      "version": "1.7.3",
-      "resolved": "https://registry.npmjs.org/wbuf/-/wbuf-1.7.3.tgz",
-      "integrity": "sha512-O84QOnr0icsbFGLS0O3bI5FswxzRr8/gHwWkDlQFskhSPryQXvrTMxjxGP4+iWYoauLoBvfDpkrOauZ+0iZpDA==",
-      "dev": true,
-      "requires": {
-        "minimalistic-assert": "^1.0.0"
-      }
-    },
-    "webidl-conversions": {
-      "version": "4.0.2",
-      "resolved": "https://registry.npmjs.org/webidl-conversions/-/webidl-conversions-4.0.2.tgz",
-      "integrity": "sha512-YQ+BmxuTgd6UXZW3+ICGfyqRyHXVlD5GtQr5+qjiNW7bF0cqrzX500HVXPBOvgXb5YnzDd+h0zqyv61KUD7+Sg==",
-      "dev": true
-    },
-    "webpack": {
-      "version": "4.28.2",
-      "resolved": "https://registry.npmjs.org/webpack/-/webpack-4.28.2.tgz",
-      "integrity": "sha512-PK3uVg3/NuNVOjPfYleFI6JF7khO7c2kIlksH7mivQm+QDcwiqV1x6+q89dDeOioh5FNxJHr3LKbDu3oSAhl9g==",
-      "dev": true,
-      "requires": {
-        "@webassemblyjs/ast": "1.7.11",
-        "@webassemblyjs/helper-module-context": "1.7.11",
-        "@webassemblyjs/wasm-edit": "1.7.11",
-        "@webassemblyjs/wasm-parser": "1.7.11",
-        "acorn": "^5.6.2",
-        "acorn-dynamic-import": "^3.0.0",
-        "ajv": "^6.1.0",
-        "ajv-keywords": "^3.1.0",
-        "chrome-trace-event": "^1.0.0",
-        "enhanced-resolve": "^4.1.0",
-        "eslint-scope": "^4.0.0",
-        "json-parse-better-errors": "^1.0.2",
-        "loader-runner": "^2.3.0",
-        "loader-utils": "^1.1.0",
-        "memory-fs": "~0.4.1",
-        "micromatch": "^3.1.8",
-        "mkdirp": "~0.5.0",
-        "neo-async": "^2.5.0",
-        "node-libs-browser": "^2.0.0",
-        "schema-utils": "^0.4.4",
-        "tapable": "^1.1.0",
-        "terser-webpack-plugin": "^1.1.0",
-        "watchpack": "^1.5.0",
-        "webpack-sources": "^1.3.0"
-      },
-      "dependencies": {
-        "acorn": {
-          "version": "5.7.3",
-          "resolved": "https://registry.npmjs.org/acorn/-/acorn-5.7.3.tgz",
-          "integrity": "sha512-T/zvzYRfbVojPWahDsE5evJdHb3oJoQfFbsrKM7w5Zcs++Tr257tia3BmMP8XYVjp1S9RZXQMh7gao96BlqZOw==",
-          "dev": true
-        },
-        "acorn-dynamic-import": {
-          "version": "3.0.0",
-          "resolved": "https://registry.npmjs.org/acorn-dynamic-import/-/acorn-dynamic-import-3.0.0.tgz",
-          "integrity": "sha512-zVWV8Z8lislJoOKKqdNMOB+s6+XV5WERty8MnKBeFgwA+19XJjJHs2RP5dzM57FftIs+jQnRToLiWazKr6sSWg==",
-          "dev": true,
-          "requires": {
-            "acorn": "^5.0.0"
-          }
-        },
-        "arr-diff": {
-          "version": "4.0.0",
-          "resolved": "https://registry.npmjs.org/arr-diff/-/arr-diff-4.0.0.tgz",
-          "integrity": "sha1-1kYQdP6/7HHn4VI1dhoyml3HxSA=",
-          "dev": true
-        },
-        "array-unique": {
-          "version": "0.3.2",
-          "resolved": "https://registry.npmjs.org/array-unique/-/array-unique-0.3.2.tgz",
-          "integrity": "sha1-qJS3XUvE9s1nnvMkSp/Y9Gri1Cg=",
-          "dev": true
-        },
-        "braces": {
-          "version": "2.3.2",
-          "resolved": "https://registry.npmjs.org/braces/-/braces-2.3.2.tgz",
-          "integrity": "sha512-aNdbnj9P8PjdXU4ybaWLK2IF3jc/EoDYbC7AazW6to3TRsfXxscC9UXOB5iDiEQrkyIbWp2SLQda4+QAa7nc3w==",
-          "dev": true,
-          "requires": {
-            "arr-flatten": "^1.1.0",
-            "array-unique": "^0.3.2",
-            "extend-shallow": "^2.0.1",
-            "fill-range": "^4.0.0",
-            "isobject": "^3.0.1",
-            "repeat-element": "^1.1.2",
-            "snapdragon": "^0.8.1",
-            "snapdragon-node": "^2.0.1",
-            "split-string": "^3.0.2",
-            "to-regex": "^3.0.1"
-          },
-          "dependencies": {
-            "extend-shallow": {
-              "version": "2.0.1",
-              "resolved": "https://registry.npmjs.org/extend-shallow/-/extend-shallow-2.0.1.tgz",
-              "integrity": "sha1-Ua99YUrZqfYQ6huvu5idaxxWiQ8=",
-              "dev": true,
-              "requires": {
-                "is-extendable": "^0.1.0"
-              }
-            }
-          }
-        },
-        "enhanced-resolve": {
-          "version": "4.1.0",
-          "resolved": "https://registry.npmjs.org/enhanced-resolve/-/enhanced-resolve-4.1.0.tgz",
-          "integrity": "sha512-F/7vkyTtyc/llOIn8oWclcB25KdRaiPBpZYDgJHgh/UHtpgT2p2eldQgtQnLtUvfMKPKxbRaQM/hHkvLHt1Vng==",
-          "dev": true,
-          "requires": {
-            "graceful-fs": "^4.1.2",
-            "memory-fs": "^0.4.0",
-            "tapable": "^1.0.0"
-          }
-        },
-        "expand-brackets": {
-          "version": "2.1.4",
-          "resolved": "https://registry.npmjs.org/expand-brackets/-/expand-brackets-2.1.4.tgz",
-          "integrity": "sha1-t3c14xXOMPa27/D4OwQVGiJEliI=",
-          "dev": true,
-          "requires": {
-            "debug": "^2.3.3",
-            "define-property": "^0.2.5",
-            "extend-shallow": "^2.0.1",
-            "posix-character-classes": "^0.1.0",
-            "regex-not": "^1.0.0",
-            "snapdragon": "^0.8.1",
-            "to-regex": "^3.0.1"
-          },
-          "dependencies": {
-            "define-property": {
-              "version": "0.2.5",
-              "resolved": "https://registry.npmjs.org/define-property/-/define-property-0.2.5.tgz",
-              "integrity": "sha1-w1se+RjsPJkPmlvFe+BKrOxcgRY=",
-              "dev": true,
-              "requires": {
-                "is-descriptor": "^0.1.0"
-              }
-            },
-            "extend-shallow": {
-              "version": "2.0.1",
-              "resolved": "https://registry.npmjs.org/extend-shallow/-/extend-shallow-2.0.1.tgz",
-              "integrity": "sha1-Ua99YUrZqfYQ6huvu5idaxxWiQ8=",
-              "dev": true,
-              "requires": {
-                "is-extendable": "^0.1.0"
-              }
-            },
-            "is-descriptor": {
-              "version": "0.1.6",
-              "resolved": "https://registry.npmjs.org/is-descriptor/-/is-descriptor-0.1.6.tgz",
-              "integrity": "sha512-avDYr0SB3DwO9zsMov0gKCESFYqCnE4hq/4z3TdUlukEy5t9C0YRq7HLrsN52NAcqXKaepeCD0n+B0arnVG3Hg==",
-              "dev": true,
-              "requires": {
-                "is-accessor-descriptor": "^0.1.6",
-                "is-data-descriptor": "^0.1.4",
-                "kind-of": "^5.0.0"
-              }
-            },
-            "kind-of": {
-              "version": "5.1.0",
-              "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-5.1.0.tgz",
-              "integrity": "sha512-NGEErnH6F2vUuXDh+OlbcKW7/wOcfdRHaZ7VWtqCztfHri/++YKmP51OdWeGPuqCOba6kk2OTe5d02VmTB80Pw==",
-              "dev": true
-            }
-          }
-        },
-        "extglob": {
-          "version": "2.0.4",
-          "resolved": "https://registry.npmjs.org/extglob/-/extglob-2.0.4.tgz",
-          "integrity": "sha512-Nmb6QXkELsuBr24CJSkilo6UHHgbekK5UiZgfE6UHD3Eb27YC6oD+bhcT+tJ6cl8dmsgdQxnWlcry8ksBIBLpw==",
-          "dev": true,
-          "requires": {
-            "array-unique": "^0.3.2",
-            "define-property": "^1.0.0",
-            "expand-brackets": "^2.1.4",
-            "extend-shallow": "^2.0.1",
-            "fragment-cache": "^0.2.1",
-            "regex-not": "^1.0.0",
-            "snapdragon": "^0.8.1",
-            "to-regex": "^3.0.1"
-          },
-          "dependencies": {
-            "define-property": {
-              "version": "1.0.0",
-              "resolved": "https://registry.npmjs.org/define-property/-/define-property-1.0.0.tgz",
-              "integrity": "sha1-dp66rz9KY6rTr56NMEybvnm/sOY=",
-              "dev": true,
-              "requires": {
-                "is-descriptor": "^1.0.0"
-              }
-            },
-            "extend-shallow": {
-              "version": "2.0.1",
-              "resolved": "https://registry.npmjs.org/extend-shallow/-/extend-shallow-2.0.1.tgz",
-              "integrity": "sha1-Ua99YUrZqfYQ6huvu5idaxxWiQ8=",
-              "dev": true,
-              "requires": {
-                "is-extendable": "^0.1.0"
-              }
-            }
-          }
-        },
-        "fill-range": {
-          "version": "4.0.0",
-          "resolved": "https://registry.npmjs.org/fill-range/-/fill-range-4.0.0.tgz",
-          "integrity": "sha1-1USBHUKPmOsGpj3EAtJAPDKMOPc=",
-          "dev": true,
-          "requires": {
-            "extend-shallow": "^2.0.1",
-            "is-number": "^3.0.0",
-            "repeat-string": "^1.6.1",
-            "to-regex-range": "^2.1.0"
-          },
-          "dependencies": {
-            "extend-shallow": {
-              "version": "2.0.1",
-              "resolved": "https://registry.npmjs.org/extend-shallow/-/extend-shallow-2.0.1.tgz",
-              "integrity": "sha1-Ua99YUrZqfYQ6huvu5idaxxWiQ8=",
-              "dev": true,
-              "requires": {
-                "is-extendable": "^0.1.0"
-              }
-            }
-          }
-        },
-        "is-accessor-descriptor": {
-          "version": "0.1.6",
-          "resolved": "http://registry.npmjs.org/is-accessor-descriptor/-/is-accessor-descriptor-0.1.6.tgz",
-          "integrity": "sha1-qeEss66Nh2cn7u84Q/igiXtcmNY=",
-          "dev": true,
-          "requires": {
-            "kind-of": "^3.0.2"
-          },
-          "dependencies": {
-            "kind-of": {
-              "version": "3.2.2",
-              "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-3.2.2.tgz",
-              "integrity": "sha1-MeohpzS6ubuw8yRm2JOupR5KPGQ=",
-              "dev": true,
-              "requires": {
-                "is-buffer": "^1.1.5"
-              }
-            }
-          }
-        },
-        "is-data-descriptor": {
-          "version": "0.1.4",
-          "resolved": "http://registry.npmjs.org/is-data-descriptor/-/is-data-descriptor-0.1.4.tgz",
-          "integrity": "sha1-C17mSDiOLIYCgueT8YVv7D8wG1Y=",
-          "dev": true,
-          "requires": {
-            "kind-of": "^3.0.2"
-          },
-          "dependencies": {
-            "kind-of": {
-              "version": "3.2.2",
-              "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-3.2.2.tgz",
-              "integrity": "sha1-MeohpzS6ubuw8yRm2JOupR5KPGQ=",
-              "dev": true,
-              "requires": {
-                "is-buffer": "^1.1.5"
-              }
-            }
-          }
-        },
-        "is-number": {
-          "version": "3.0.0",
-          "resolved": "https://registry.npmjs.org/is-number/-/is-number-3.0.0.tgz",
-          "integrity": "sha1-JP1iAaR4LPUFYcgQJ2r8fRLXEZU=",
-          "dev": true,
-          "requires": {
-            "kind-of": "^3.0.2"
-          },
-          "dependencies": {
-            "kind-of": {
-              "version": "3.2.2",
-              "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-3.2.2.tgz",
-              "integrity": "sha1-MeohpzS6ubuw8yRm2JOupR5KPGQ=",
-              "dev": true,
-              "requires": {
-                "is-buffer": "^1.1.5"
-              }
-            }
-          }
-        },
-        "isobject": {
-          "version": "3.0.1",
-          "resolved": "https://registry.npmjs.org/isobject/-/isobject-3.0.1.tgz",
-          "integrity": "sha1-TkMekrEalzFjaqH5yNHMvP2reN8=",
-          "dev": true
-        },
-        "kind-of": {
-          "version": "6.0.2",
-          "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-6.0.2.tgz",
-          "integrity": "sha512-s5kLOcnH0XqDO+FvuaLX8DDjZ18CGFk7VygH40QoKPUQhW4e2rvM0rwUq0t8IQDOwYSeLK01U90OjzBTme2QqA==",
-          "dev": true
-        },
-        "micromatch": {
-          "version": "3.1.10",
-          "resolved": "https://registry.npmjs.org/micromatch/-/micromatch-3.1.10.tgz",
-          "integrity": "sha512-MWikgl9n9M3w+bpsY3He8L+w9eF9338xRl8IAO5viDizwSzziFEyUzo2xrrloB64ADbTf8uA8vRqqttDTOmccg==",
-          "dev": true,
-          "requires": {
-            "arr-diff": "^4.0.0",
-            "array-unique": "^0.3.2",
-            "braces": "^2.3.1",
-            "define-property": "^2.0.2",
-            "extend-shallow": "^3.0.2",
-            "extglob": "^2.0.4",
-            "fragment-cache": "^0.2.1",
-            "kind-of": "^6.0.2",
-            "nanomatch": "^1.2.9",
-            "object.pick": "^1.3.0",
-            "regex-not": "^1.0.0",
-            "snapdragon": "^0.8.1",
-            "to-regex": "^3.0.2"
-          }
-        },
-        "schema-utils": {
-          "version": "0.4.7",
-          "resolved": "https://registry.npmjs.org/schema-utils/-/schema-utils-0.4.7.tgz",
-          "integrity": "sha512-v/iwU6wvwGK8HbU9yi3/nhGzP0yGSuhQMzL6ySiec1FSrZZDkhm4noOSWzrNFo/jEc+SJY6jRTwuwbSXJPDUnQ==",
-          "dev": true,
-          "requires": {
-            "ajv": "^6.1.0",
-            "ajv-keywords": "^3.1.0"
-          }
-        },
-        "source-map": {
-          "version": "0.6.1",
-          "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.6.1.tgz",
-          "integrity": "sha512-UjgapumWlbMhkBgzT7Ykc5YXUT46F0iKu8SGXq0bcwP5dz/h0Plj6enJqjz1Zbq2l5WaqYnrVbwWOWMyF3F47g==",
-          "dev": true
-        },
-        "tapable": {
-          "version": "1.1.1",
-          "resolved": "https://registry.npmjs.org/tapable/-/tapable-1.1.1.tgz",
-          "integrity": "sha512-9I2ydhj8Z9veORCw5PRm4u9uebCn0mcCa6scWoNcbZ6dAtoo2618u9UUzxgmsCOreJpqDDuv61LvwofW7hLcBA==",
-          "dev": true
-        },
-        "webpack-sources": {
-          "version": "1.3.0",
-          "resolved": "https://registry.npmjs.org/webpack-sources/-/webpack-sources-1.3.0.tgz",
-          "integrity": "sha512-OiVgSrbGu7NEnEvQJJgdSFPl2qWKkWq5lHMhgiToIiN9w34EBnjYzSYs+VbL5KoYiLNtFFa7BZIKxRED3I32pA==",
-          "dev": true,
-          "requires": {
-            "source-list-map": "^2.0.0",
-            "source-map": "~0.6.1"
-          }
-        }
-      }
-    },
-    "webpack-core": {
-      "version": "0.6.9",
-      "resolved": "https://registry.npmjs.org/webpack-core/-/webpack-core-0.6.9.tgz",
-      "integrity": "sha1-/FcViMhVjad76e+23r3Fo7FyvcI=",
-      "dev": true,
-      "requires": {
-        "source-list-map": "~0.1.7",
-        "source-map": "~0.4.1"
-      },
-      "dependencies": {
-        "source-list-map": {
-          "version": "0.1.8",
-          "resolved": "https://registry.npmjs.org/source-list-map/-/source-list-map-0.1.8.tgz",
-          "integrity": "sha1-xVCyq1Qn9rPyH1r+rYjE9Vh7IQY=",
-          "dev": true
-        },
-        "source-map": {
-          "version": "0.4.4",
-          "resolved": "http://registry.npmjs.org/source-map/-/source-map-0.4.4.tgz",
-          "integrity": "sha1-66T12pwNyZneaAMti092FzZSA2s=",
-          "dev": true,
-          "requires": {
-            "amdefine": ">=0.0.4"
-          }
-        }
-      }
-    },
-    "webpack-dev-middleware": {
-      "version": "3.4.0",
-      "resolved": "https://registry.npmjs.org/webpack-dev-middleware/-/webpack-dev-middleware-3.4.0.tgz",
-      "integrity": "sha512-Q9Iyc0X9dP9bAsYskAVJ/hmIZZQwf/3Sy4xCAZgL5cUkjZmUZLt4l5HpbST/Pdgjn3u6pE7u5OdGd1apgzRujA==",
-      "dev": true,
-      "requires": {
-        "memory-fs": "~0.4.1",
-        "mime": "^2.3.1",
-        "range-parser": "^1.0.3",
-        "webpack-log": "^2.0.0"
-      },
-      "dependencies": {
-        "mime": {
-          "version": "2.4.0",
-          "resolved": "https://registry.npmjs.org/mime/-/mime-2.4.0.tgz",
-          "integrity": "sha512-ikBcWwyqXQSHKtciCcctu9YfPbFYZ4+gbHEmE0Q8jzcTYQg5dHCr3g2wwAZjPoJfQVXZq6KXAjpXOTf5/cjT7w==",
-          "dev": true
-        }
-      }
-    },
-    "webpack-dev-server": {
-      "version": "3.1.10",
-      "resolved": "https://registry.npmjs.org/webpack-dev-server/-/webpack-dev-server-3.1.10.tgz",
-      "integrity": "sha512-RqOAVjfqZJtQcB0LmrzJ5y4Jp78lv9CK0MZ1YJDTaTmedMZ9PU9FLMQNrMCfVu8hHzaVLVOJKBlGEHMN10z+ww==",
-      "dev": true,
-      "requires": {
-        "ansi-html": "0.0.7",
-        "bonjour": "^3.5.0",
-        "chokidar": "^2.0.0",
-        "compression": "^1.5.2",
-        "connect-history-api-fallback": "^1.3.0",
-        "debug": "^3.1.0",
-        "del": "^3.0.0",
-        "express": "^4.16.2",
-        "html-entities": "^1.2.0",
-        "http-proxy-middleware": "~0.18.0",
-        "import-local": "^2.0.0",
-        "internal-ip": "^3.0.1",
-        "ip": "^1.1.5",
-        "killable": "^1.0.0",
-        "loglevel": "^1.4.1",
-        "opn": "^5.1.0",
-        "portfinder": "^1.0.9",
-        "schema-utils": "^1.0.0",
-        "selfsigned": "^1.9.1",
-        "serve-index": "^1.7.2",
-        "sockjs": "0.3.19",
-        "sockjs-client": "1.3.0",
-        "spdy": "^3.4.1",
-        "strip-ansi": "^3.0.0",
-        "supports-color": "^5.1.0",
-        "webpack-dev-middleware": "3.4.0",
-        "webpack-log": "^2.0.0",
-        "yargs": "12.0.2"
-      },
-      "dependencies": {
-        "ansi-regex": {
-          "version": "3.0.0",
-          "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-3.0.0.tgz",
-          "integrity": "sha1-7QMXwyIGT3lGbAKWa922Bas32Zg=",
-          "dev": true
-        },
-        "anymatch": {
-          "version": "2.0.0",
-          "resolved": "https://registry.npmjs.org/anymatch/-/anymatch-2.0.0.tgz",
-          "integrity": "sha512-5teOsQWABXHHBFP9y3skS5P3d/WfWXpv3FUpy+LorMrNYaT9pI4oLMQX7jzQ2KklNpGpWHzdCXTDT2Y3XGlZBw==",
-          "dev": true,
-          "requires": {
-            "micromatch": "^3.1.4",
-            "normalize-path": "^2.1.1"
-          }
-        },
-        "arr-diff": {
-          "version": "4.0.0",
-          "resolved": "https://registry.npmjs.org/arr-diff/-/arr-diff-4.0.0.tgz",
-          "integrity": "sha1-1kYQdP6/7HHn4VI1dhoyml3HxSA=",
-          "dev": true
-        },
-        "array-unique": {
-          "version": "0.3.2",
-          "resolved": "https://registry.npmjs.org/array-unique/-/array-unique-0.3.2.tgz",
-          "integrity": "sha1-qJS3XUvE9s1nnvMkSp/Y9Gri1Cg=",
-          "dev": true
-        },
-        "braces": {
-          "version": "2.3.2",
-          "resolved": "https://registry.npmjs.org/braces/-/braces-2.3.2.tgz",
-          "integrity": "sha512-aNdbnj9P8PjdXU4ybaWLK2IF3jc/EoDYbC7AazW6to3TRsfXxscC9UXOB5iDiEQrkyIbWp2SLQda4+QAa7nc3w==",
-          "dev": true,
-          "requires": {
-            "arr-flatten": "^1.1.0",
-            "array-unique": "^0.3.2",
-            "extend-shallow": "^2.0.1",
-            "fill-range": "^4.0.0",
-            "isobject": "^3.0.1",
-            "repeat-element": "^1.1.2",
-            "snapdragon": "^0.8.1",
-            "snapdragon-node": "^2.0.1",
-            "split-string": "^3.0.2",
-            "to-regex": "^3.0.1"
-          },
-          "dependencies": {
-            "extend-shallow": {
-              "version": "2.0.1",
-              "resolved": "https://registry.npmjs.org/extend-shallow/-/extend-shallow-2.0.1.tgz",
-              "integrity": "sha1-Ua99YUrZqfYQ6huvu5idaxxWiQ8=",
-              "dev": true,
-              "requires": {
-                "is-extendable": "^0.1.0"
-              }
-            }
-          }
-        },
-        "camelcase": {
-          "version": "4.1.0",
-          "resolved": "https://registry.npmjs.org/camelcase/-/camelcase-4.1.0.tgz",
-          "integrity": "sha1-1UVjW+HjPFQmScaRc+Xeas+uNN0=",
-          "dev": true
-        },
-        "chokidar": {
-          "version": "2.0.4",
-          "resolved": "https://registry.npmjs.org/chokidar/-/chokidar-2.0.4.tgz",
-          "integrity": "sha512-z9n7yt9rOvIJrMhvDtDictKrkFHeihkNl6uWMmZlmL6tJtX9Cs+87oK+teBx+JIgzvbX3yZHT3eF8vpbDxHJXQ==",
-          "dev": true,
-          "requires": {
-            "anymatch": "^2.0.0",
-            "async-each": "^1.0.0",
-            "braces": "^2.3.0",
-            "fsevents": "^1.2.2",
-            "glob-parent": "^3.1.0",
-            "inherits": "^2.0.1",
-            "is-binary-path": "^1.0.0",
-            "is-glob": "^4.0.0",
-            "lodash.debounce": "^4.0.8",
-            "normalize-path": "^2.1.1",
-            "path-is-absolute": "^1.0.0",
-            "readdirp": "^2.0.0",
-            "upath": "^1.0.5"
-          }
-        },
-        "cliui": {
-          "version": "4.1.0",
-          "resolved": "https://registry.npmjs.org/cliui/-/cliui-4.1.0.tgz",
-          "integrity": "sha512-4FG+RSG9DL7uEwRUZXZn3SS34DiDPfzP0VOiEwtUWlE+AR2EIg+hSyvrIgUUfhdgR/UkAeW2QHgeP+hWrXs7jQ==",
-          "dev": true,
-          "requires": {
-            "string-width": "^2.1.1",
-            "strip-ansi": "^4.0.0",
-            "wrap-ansi": "^2.0.0"
-          },
-          "dependencies": {
-            "strip-ansi": {
-              "version": "4.0.0",
-              "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-4.0.0.tgz",
-              "integrity": "sha1-qEeQIusaw2iocTibY1JixQXuNo8=",
-              "dev": true,
-              "requires": {
-                "ansi-regex": "^3.0.0"
-              }
-            }
-          }
-        },
-        "cross-spawn": {
-          "version": "6.0.5",
-          "resolved": "https://registry.npmjs.org/cross-spawn/-/cross-spawn-6.0.5.tgz",
-          "integrity": "sha512-eTVLrBSt7fjbDygz805pMnstIs2VTBNkRm0qxZd+M7A5XDdxVRWO5MxGBXZhjY4cqLYLdtrGqRf8mBPmzwSpWQ==",
-          "dev": true,
-          "requires": {
-            "nice-try": "^1.0.4",
-            "path-key": "^2.0.1",
-            "semver": "^5.5.0",
-            "shebang-command": "^1.2.0",
-            "which": "^1.2.9"
-          }
-        },
-        "debug": {
-          "version": "3.2.6",
-          "resolved": "https://registry.npmjs.org/debug/-/debug-3.2.6.tgz",
-          "integrity": "sha512-mel+jf7nrtEl5Pn1Qx46zARXKDpBbvzezse7p7LqINmdoIk8PYP5SySaxEmYv6TZ0JyEKA1hsCId6DIhgITtWQ==",
-          "dev": true,
-          "requires": {
-            "ms": "^2.1.1"
-          },
-          "dependencies": {
-            "ms": {
-              "version": "2.1.1",
-              "resolved": "https://registry.npmjs.org/ms/-/ms-2.1.1.tgz",
-              "integrity": "sha512-tgp+dl5cGk28utYktBsrFqA7HKgrhgPsg6Z/EfhWI4gl1Hwq8B/GmY/0oXZ6nF8hDVesS/FpnYaD/kOWhYQvyg==",
-              "dev": true
-            }
-          }
-        },
-        "decamelize": {
-          "version": "2.0.0",
-          "resolved": "https://registry.npmjs.org/decamelize/-/decamelize-2.0.0.tgz",
-          "integrity": "sha512-Ikpp5scV3MSYxY39ymh45ZLEecsTdv/Xj2CaQfI8RLMuwi7XvjX9H/fhraiSuU+C5w5NTDu4ZU72xNiZnurBPg==",
-          "dev": true,
-          "requires": {
-            "xregexp": "4.0.0"
-          }
-        },
-        "execa": {
-          "version": "0.10.0",
-          "resolved": "https://registry.npmjs.org/execa/-/execa-0.10.0.tgz",
-          "integrity": "sha512-7XOMnz8Ynx1gGo/3hyV9loYNPWM94jG3+3T3Y8tsfSstFmETmENCMU/A/zj8Lyaj1lkgEepKepvd6240tBRvlw==",
-          "dev": true,
-          "requires": {
-            "cross-spawn": "^6.0.0",
-            "get-stream": "^3.0.0",
-            "is-stream": "^1.1.0",
-            "npm-run-path": "^2.0.0",
-            "p-finally": "^1.0.0",
-            "signal-exit": "^3.0.0",
-            "strip-eof": "^1.0.0"
-          }
-        },
-        "expand-brackets": {
-          "version": "2.1.4",
-          "resolved": "https://registry.npmjs.org/expand-brackets/-/expand-brackets-2.1.4.tgz",
-          "integrity": "sha1-t3c14xXOMPa27/D4OwQVGiJEliI=",
-          "dev": true,
-          "requires": {
-            "debug": "^2.3.3",
-            "define-property": "^0.2.5",
-            "extend-shallow": "^2.0.1",
-            "posix-character-classes": "^0.1.0",
-            "regex-not": "^1.0.0",
-            "snapdragon": "^0.8.1",
-            "to-regex": "^3.0.1"
-          },
-          "dependencies": {
-            "debug": {
-              "version": "2.6.9",
-              "resolved": "https://registry.npmjs.org/debug/-/debug-2.6.9.tgz",
-              "integrity": "sha512-bC7ElrdJaJnPbAP+1EotYvqZsb3ecl5wi6Bfi6BJTUcNowp6cvspg0jXznRTKDjm/E7AdgFBVeAPVMNcKGsHMA==",
-              "dev": true,
-              "requires": {
-                "ms": "2.0.0"
-              }
-            },
-            "define-property": {
-              "version": "0.2.5",
-              "resolved": "https://registry.npmjs.org/define-property/-/define-property-0.2.5.tgz",
-              "integrity": "sha1-w1se+RjsPJkPmlvFe+BKrOxcgRY=",
-              "dev": true,
-              "requires": {
-                "is-descriptor": "^0.1.0"
-              }
-            },
-            "extend-shallow": {
-              "version": "2.0.1",
-              "resolved": "https://registry.npmjs.org/extend-shallow/-/extend-shallow-2.0.1.tgz",
-              "integrity": "sha1-Ua99YUrZqfYQ6huvu5idaxxWiQ8=",
-              "dev": true,
-              "requires": {
-                "is-extendable": "^0.1.0"
-              }
-            },
-            "is-descriptor": {
-              "version": "0.1.6",
-              "resolved": "https://registry.npmjs.org/is-descriptor/-/is-descriptor-0.1.6.tgz",
-              "integrity": "sha512-avDYr0SB3DwO9zsMov0gKCESFYqCnE4hq/4z3TdUlukEy5t9C0YRq7HLrsN52NAcqXKaepeCD0n+B0arnVG3Hg==",
-              "dev": true,
-              "requires": {
-                "is-accessor-descriptor": "^0.1.6",
-                "is-data-descriptor": "^0.1.4",
-                "kind-of": "^5.0.0"
-              }
-            },
-            "kind-of": {
-              "version": "5.1.0",
-              "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-5.1.0.tgz",
-              "integrity": "sha512-NGEErnH6F2vUuXDh+OlbcKW7/wOcfdRHaZ7VWtqCztfHri/++YKmP51OdWeGPuqCOba6kk2OTe5d02VmTB80Pw==",
-              "dev": true
-            }
-          }
-        },
-        "extglob": {
-          "version": "2.0.4",
-          "resolved": "https://registry.npmjs.org/extglob/-/extglob-2.0.4.tgz",
-          "integrity": "sha512-Nmb6QXkELsuBr24CJSkilo6UHHgbekK5UiZgfE6UHD3Eb27YC6oD+bhcT+tJ6cl8dmsgdQxnWlcry8ksBIBLpw==",
-          "dev": true,
-          "requires": {
-            "array-unique": "^0.3.2",
-            "define-property": "^1.0.0",
-            "expand-brackets": "^2.1.4",
-            "extend-shallow": "^2.0.1",
-            "fragment-cache": "^0.2.1",
-            "regex-not": "^1.0.0",
-            "snapdragon": "^0.8.1",
-            "to-regex": "^3.0.1"
-          },
-          "dependencies": {
-            "define-property": {
-              "version": "1.0.0",
-              "resolved": "https://registry.npmjs.org/define-property/-/define-property-1.0.0.tgz",
-              "integrity": "sha1-dp66rz9KY6rTr56NMEybvnm/sOY=",
-              "dev": true,
-              "requires": {
-                "is-descriptor": "^1.0.0"
-              }
-            },
-            "extend-shallow": {
-              "version": "2.0.1",
-              "resolved": "https://registry.npmjs.org/extend-shallow/-/extend-shallow-2.0.1.tgz",
-              "integrity": "sha1-Ua99YUrZqfYQ6huvu5idaxxWiQ8=",
-              "dev": true,
-              "requires": {
-                "is-extendable": "^0.1.0"
-              }
-            }
-          }
-        },
-        "fill-range": {
-          "version": "4.0.0",
-          "resolved": "https://registry.npmjs.org/fill-range/-/fill-range-4.0.0.tgz",
-          "integrity": "sha1-1USBHUKPmOsGpj3EAtJAPDKMOPc=",
-          "dev": true,
-          "requires": {
-            "extend-shallow": "^2.0.1",
-            "is-number": "^3.0.0",
-            "repeat-string": "^1.6.1",
-            "to-regex-range": "^2.1.0"
-          },
-          "dependencies": {
-            "extend-shallow": {
-              "version": "2.0.1",
-              "resolved": "https://registry.npmjs.org/extend-shallow/-/extend-shallow-2.0.1.tgz",
-              "integrity": "sha1-Ua99YUrZqfYQ6huvu5idaxxWiQ8=",
-              "dev": true,
-              "requires": {
-                "is-extendable": "^0.1.0"
-              }
-            }
-          }
-        },
-        "find-up": {
-          "version": "3.0.0",
-          "resolved": "https://registry.npmjs.org/find-up/-/find-up-3.0.0.tgz",
-          "integrity": "sha512-1yD6RmLI1XBfxugvORwlck6f75tYL+iR0jqwsOrOxMZyGYqUuDhJ0l4AXdO1iX/FTs9cBAMEk1gWSEx1kSbylg==",
-          "dev": true,
-          "requires": {
-            "locate-path": "^3.0.0"
-          }
-        },
-        "fsevents": {
-          "version": "1.2.4",
-          "resolved": "https://registry.npmjs.org/fsevents/-/fsevents-1.2.4.tgz",
-          "integrity": "sha512-z8H8/diyk76B7q5wg+Ud0+CqzcAF3mBBI/bA5ne5zrRUUIvNkJY//D3BqyH571KuAC4Nr7Rw7CjWX4r0y9DvNg==",
-          "dev": true,
-          "optional": true,
-          "requires": {
-            "nan": "^2.9.2",
-            "node-pre-gyp": "^0.10.0"
-          },
-          "dependencies": {
-            "abbrev": {
-              "version": "1.1.1",
-              "bundled": true,
-              "dev": true,
-              "optional": true
-            },
-            "ansi-regex": {
-              "version": "2.1.1",
-              "bundled": true,
-              "dev": true
-            },
-            "aproba": {
-              "version": "1.2.0",
-              "bundled": true,
-              "dev": true,
-              "optional": true
-            },
-            "are-we-there-yet": {
-              "version": "1.1.4",
-              "bundled": true,
-              "dev": true,
-              "optional": true,
-              "requires": {
-                "delegates": "^1.0.0",
-                "readable-stream": "^2.0.6"
-              }
-            },
-            "balanced-match": {
-              "version": "1.0.0",
-              "bundled": true,
-              "dev": true
-            },
-            "brace-expansion": {
-              "version": "1.1.11",
-              "bundled": true,
-              "dev": true,
-              "requires": {
-                "balanced-match": "^1.0.0",
-                "concat-map": "0.0.1"
-              }
-            },
-            "chownr": {
-              "version": "1.0.1",
-              "bundled": true,
-              "dev": true,
-              "optional": true
-            },
-            "code-point-at": {
-              "version": "1.1.0",
-              "bundled": true,
-              "dev": true
-            },
-            "concat-map": {
-              "version": "0.0.1",
-              "bundled": true,
-              "dev": true
-            },
-            "console-control-strings": {
-              "version": "1.1.0",
-              "bundled": true,
-              "dev": true
-            },
-            "core-util-is": {
-              "version": "1.0.2",
-              "bundled": true,
-              "dev": true,
-              "optional": true
-            },
-            "debug": {
-              "version": "2.6.9",
-              "bundled": true,
-              "dev": true,
-              "optional": true,
-              "requires": {
-                "ms": "2.0.0"
-              }
-            },
-            "deep-extend": {
-              "version": "0.5.1",
-              "bundled": true,
-              "dev": true,
-              "optional": true
-            },
-            "delegates": {
-              "version": "1.0.0",
-              "bundled": true,
-              "dev": true,
-              "optional": true
-            },
-            "detect-libc": {
-              "version": "1.0.3",
-              "bundled": true,
-              "dev": true,
-              "optional": true
-            },
-            "fs-minipass": {
-              "version": "1.2.5",
-              "bundled": true,
-              "dev": true,
-              "optional": true,
-              "requires": {
-                "minipass": "^2.2.1"
-              }
-            },
-            "fs.realpath": {
-              "version": "1.0.0",
-              "bundled": true,
-              "dev": true,
-              "optional": true
-            },
-            "gauge": {
-              "version": "2.7.4",
-              "bundled": true,
-              "dev": true,
-              "optional": true,
-              "requires": {
-                "aproba": "^1.0.3",
-                "console-control-strings": "^1.0.0",
-                "has-unicode": "^2.0.0",
-                "object-assign": "^4.1.0",
-                "signal-exit": "^3.0.0",
-                "string-width": "^1.0.1",
-                "strip-ansi": "^3.0.1",
-                "wide-align": "^1.1.0"
-              }
-            },
-            "glob": {
-              "version": "7.1.2",
-              "bundled": true,
-              "dev": true,
-              "optional": true,
-              "requires": {
-                "fs.realpath": "^1.0.0",
-                "inflight": "^1.0.4",
-                "inherits": "2",
-                "minimatch": "^3.0.4",
-                "once": "^1.3.0",
-                "path-is-absolute": "^1.0.0"
-              }
-            },
-            "has-unicode": {
-              "version": "2.0.1",
-              "bundled": true,
-              "dev": true,
-              "optional": true
-            },
-            "iconv-lite": {
-              "version": "0.4.21",
-              "bundled": true,
-              "dev": true,
-              "optional": true,
-              "requires": {
-                "safer-buffer": "^2.1.0"
-              }
-            },
-            "ignore-walk": {
-              "version": "3.0.1",
-              "bundled": true,
-              "dev": true,
-              "optional": true,
-              "requires": {
-                "minimatch": "^3.0.4"
-              }
-            },
-            "inflight": {
-              "version": "1.0.6",
-              "bundled": true,
-              "dev": true,
-              "optional": true,
-              "requires": {
-                "once": "^1.3.0",
-                "wrappy": "1"
-              }
-            },
-            "inherits": {
-              "version": "2.0.3",
-              "bundled": true,
-              "dev": true
-            },
-            "ini": {
-              "version": "1.3.5",
-              "bundled": true,
-              "dev": true,
-              "optional": true
-            },
-            "is-fullwidth-code-point": {
-              "version": "1.0.0",
-              "bundled": true,
-              "dev": true,
-              "requires": {
-                "number-is-nan": "^1.0.0"
-              }
-            },
-            "isarray": {
-              "version": "1.0.0",
-              "bundled": true,
-              "dev": true,
-              "optional": true
-            },
-            "minimatch": {
-              "version": "3.0.4",
-              "bundled": true,
-              "dev": true,
-              "requires": {
-                "brace-expansion": "^1.1.7"
-              }
-            },
-            "minimist": {
-              "version": "0.0.8",
-              "bundled": true,
-              "dev": true
-            },
-            "minipass": {
-              "version": "2.2.4",
-              "bundled": true,
-              "dev": true,
-              "requires": {
-                "safe-buffer": "^5.1.1",
-                "yallist": "^3.0.0"
-              }
-            },
-            "minizlib": {
-              "version": "1.1.0",
-              "bundled": true,
-              "dev": true,
-              "optional": true,
-              "requires": {
-                "minipass": "^2.2.1"
-              }
-            },
-            "mkdirp": {
-              "version": "0.5.1",
-              "bundled": true,
-              "dev": true,
-              "requires": {
-                "minimist": "0.0.8"
-              }
-            },
-            "ms": {
-              "version": "2.0.0",
-              "bundled": true,
-              "dev": true,
-              "optional": true
-            },
-            "needle": {
-              "version": "2.2.0",
-              "bundled": true,
-              "dev": true,
-              "optional": true,
-              "requires": {
-                "debug": "^2.1.2",
-                "iconv-lite": "^0.4.4",
-                "sax": "^1.2.4"
-              }
-            },
-            "node-pre-gyp": {
-              "version": "0.10.0",
-              "bundled": true,
-              "dev": true,
-              "optional": true,
-              "requires": {
-                "detect-libc": "^1.0.2",
-                "mkdirp": "^0.5.1",
-                "needle": "^2.2.0",
-                "nopt": "^4.0.1",
-                "npm-packlist": "^1.1.6",
-                "npmlog": "^4.0.2",
-                "rc": "^1.1.7",
-                "rimraf": "^2.6.1",
-                "semver": "^5.3.0",
-                "tar": "^4"
-              }
-            },
-            "nopt": {
-              "version": "4.0.1",
-              "bundled": true,
-              "dev": true,
-              "optional": true,
-              "requires": {
-                "abbrev": "1",
-                "osenv": "^0.1.4"
-              }
-            },
-            "npm-bundled": {
-              "version": "1.0.3",
-              "bundled": true,
-              "dev": true,
-              "optional": true
-            },
-            "npm-packlist": {
-              "version": "1.1.10",
-              "bundled": true,
-              "dev": true,
-              "optional": true,
-              "requires": {
-                "ignore-walk": "^3.0.1",
-                "npm-bundled": "^1.0.1"
-              }
-            },
-            "npmlog": {
-              "version": "4.1.2",
-              "bundled": true,
-              "dev": true,
-              "optional": true,
-              "requires": {
-                "are-we-there-yet": "~1.1.2",
-                "console-control-strings": "~1.1.0",
-                "gauge": "~2.7.3",
-                "set-blocking": "~2.0.0"
-              }
-            },
-            "number-is-nan": {
-              "version": "1.0.1",
-              "bundled": true,
-              "dev": true
-            },
-            "object-assign": {
-              "version": "4.1.1",
-              "bundled": true,
-              "dev": true,
-              "optional": true
-            },
-            "once": {
-              "version": "1.4.0",
-              "bundled": true,
-              "dev": true,
-              "requires": {
-                "wrappy": "1"
-              }
-            },
-            "os-homedir": {
-              "version": "1.0.2",
-              "bundled": true,
-              "dev": true,
-              "optional": true
-            },
-            "os-tmpdir": {
-              "version": "1.0.2",
-              "bundled": true,
-              "dev": true,
-              "optional": true
-            },
-            "osenv": {
-              "version": "0.1.5",
-              "bundled": true,
-              "dev": true,
-              "optional": true,
-              "requires": {
-                "os-homedir": "^1.0.0",
-                "os-tmpdir": "^1.0.0"
-              }
-            },
-            "path-is-absolute": {
-              "version": "1.0.1",
-              "bundled": true,
-              "dev": true,
-              "optional": true
-            },
-            "process-nextick-args": {
-              "version": "2.0.0",
-              "bundled": true,
-              "dev": true,
-              "optional": true
-            },
-            "rc": {
-              "version": "1.2.7",
-              "bundled": true,
-              "dev": true,
-              "optional": true,
-              "requires": {
-                "deep-extend": "^0.5.1",
-                "ini": "~1.3.0",
-                "minimist": "^1.2.0",
-                "strip-json-comments": "~2.0.1"
-              },
-              "dependencies": {
-                "minimist": {
-                  "version": "1.2.0",
-                  "bundled": true,
-                  "dev": true,
-                  "optional": true
-                }
-              }
-            },
-            "readable-stream": {
-              "version": "2.3.6",
-              "bundled": true,
-              "dev": true,
-              "optional": true,
-              "requires": {
-                "core-util-is": "~1.0.0",
-                "inherits": "~2.0.3",
-                "isarray": "~1.0.0",
-                "process-nextick-args": "~2.0.0",
-                "safe-buffer": "~5.1.1",
-                "string_decoder": "~1.1.1",
-                "util-deprecate": "~1.0.1"
-              }
-            },
-            "rimraf": {
-              "version": "2.6.2",
-              "bundled": true,
-              "dev": true,
-              "optional": true,
-              "requires": {
-                "glob": "^7.0.5"
-              }
-            },
-            "safe-buffer": {
-              "version": "5.1.1",
-              "bundled": true,
-              "dev": true
-            },
-            "safer-buffer": {
-              "version": "2.1.2",
-              "bundled": true,
-              "dev": true,
-              "optional": true
-            },
-            "sax": {
-              "version": "1.2.4",
-              "bundled": true,
-              "dev": true,
-              "optional": true
-            },
-            "semver": {
-              "version": "5.5.0",
-              "bundled": true,
-              "dev": true,
-              "optional": true
-            },
-            "set-blocking": {
-              "version": "2.0.0",
-              "bundled": true,
-              "dev": true,
-              "optional": true
-            },
-            "signal-exit": {
-              "version": "3.0.2",
-              "bundled": true,
-              "dev": true,
-              "optional": true
-            },
-            "string-width": {
-              "version": "1.0.2",
-              "bundled": true,
-              "dev": true,
-              "requires": {
-                "code-point-at": "^1.0.0",
-                "is-fullwidth-code-point": "^1.0.0",
-                "strip-ansi": "^3.0.0"
-              }
-            },
-            "string_decoder": {
-              "version": "1.1.1",
-              "bundled": true,
-              "dev": true,
-              "optional": true,
-              "requires": {
-                "safe-buffer": "~5.1.0"
-              }
-            },
-            "strip-ansi": {
-              "version": "3.0.1",
-              "bundled": true,
-              "dev": true,
-              "requires": {
-                "ansi-regex": "^2.0.0"
-              }
-            },
-            "strip-json-comments": {
-              "version": "2.0.1",
-              "bundled": true,
-              "dev": true,
-              "optional": true
-            },
-            "tar": {
-              "version": "4.4.1",
-              "bundled": true,
-              "dev": true,
-              "optional": true,
-              "requires": {
-                "chownr": "^1.0.1",
-                "fs-minipass": "^1.2.5",
-                "minipass": "^2.2.4",
-                "minizlib": "^1.1.0",
-                "mkdirp": "^0.5.0",
-                "safe-buffer": "^5.1.1",
-                "yallist": "^3.0.2"
-              }
-            },
-            "util-deprecate": {
-              "version": "1.0.2",
-              "bundled": true,
-              "dev": true,
-              "optional": true
-            },
-            "wide-align": {
-              "version": "1.1.2",
-              "bundled": true,
-              "dev": true,
-              "optional": true,
-              "requires": {
-                "string-width": "^1.0.2"
-              }
-            },
-            "wrappy": {
-              "version": "1.0.2",
-              "bundled": true,
-              "dev": true
-            },
-            "yallist": {
-              "version": "3.0.2",
-              "bundled": true,
-              "dev": true
-            }
-          }
-        },
-        "glob-parent": {
-          "version": "3.1.0",
-          "resolved": "https://registry.npmjs.org/glob-parent/-/glob-parent-3.1.0.tgz",
-          "integrity": "sha1-nmr2KZ2NO9K9QEMIMr0RPfkGxa4=",
-          "dev": true,
-          "requires": {
-            "is-glob": "^3.1.0",
-            "path-dirname": "^1.0.0"
-          },
-          "dependencies": {
-            "is-glob": {
-              "version": "3.1.0",
-              "resolved": "https://registry.npmjs.org/is-glob/-/is-glob-3.1.0.tgz",
-              "integrity": "sha1-e6WuJCF4BKxwcHuWkiVnSGzD6Eo=",
-              "dev": true,
-              "requires": {
-                "is-extglob": "^2.1.0"
-              }
-            }
-          }
-        },
-        "has-flag": {
-          "version": "3.0.0",
-          "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-3.0.0.tgz",
-          "integrity": "sha1-tdRU3CGZriJWmfNGfloH87lVuv0=",
-          "dev": true
-        },
-        "invert-kv": {
-          "version": "2.0.0",
-          "resolved": "https://registry.npmjs.org/invert-kv/-/invert-kv-2.0.0.tgz",
-          "integrity": "sha512-wPVv/y/QQ/Uiirj/vh3oP+1Ww+AWehmi1g5fFWGPF6IpCBCDVrhgHRMvrLfdYcwDh3QJbGXDW4JAuzxElLSqKA==",
-          "dev": true
-        },
-        "is-accessor-descriptor": {
-          "version": "0.1.6",
-          "resolved": "https://registry.npmjs.org/is-accessor-descriptor/-/is-accessor-descriptor-0.1.6.tgz",
-          "integrity": "sha1-qeEss66Nh2cn7u84Q/igiXtcmNY=",
-          "dev": true,
-          "requires": {
-            "kind-of": "^3.0.2"
-          },
-          "dependencies": {
-            "kind-of": {
-              "version": "3.2.2",
-              "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-3.2.2.tgz",
-              "integrity": "sha1-MeohpzS6ubuw8yRm2JOupR5KPGQ=",
-              "dev": true,
-              "requires": {
-                "is-buffer": "^1.1.5"
-              }
-            }
-          }
-        },
-        "is-data-descriptor": {
-          "version": "0.1.4",
-          "resolved": "https://registry.npmjs.org/is-data-descriptor/-/is-data-descriptor-0.1.4.tgz",
-          "integrity": "sha1-C17mSDiOLIYCgueT8YVv7D8wG1Y=",
-          "dev": true,
-          "requires": {
-            "kind-of": "^3.0.2"
-          },
-          "dependencies": {
-            "kind-of": {
-              "version": "3.2.2",
-              "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-3.2.2.tgz",
-              "integrity": "sha1-MeohpzS6ubuw8yRm2JOupR5KPGQ=",
-              "dev": true,
-              "requires": {
-                "is-buffer": "^1.1.5"
-              }
-            }
-          }
-        },
-        "is-extglob": {
-          "version": "2.1.1",
-          "resolved": "https://registry.npmjs.org/is-extglob/-/is-extglob-2.1.1.tgz",
-          "integrity": "sha1-qIwCU1eR8C7TfHahueqXc8gz+MI=",
-          "dev": true
-        },
-        "is-fullwidth-code-point": {
-          "version": "2.0.0",
-          "resolved": "https://registry.npmjs.org/is-fullwidth-code-point/-/is-fullwidth-code-point-2.0.0.tgz",
-          "integrity": "sha1-o7MKXE8ZkYMWeqq5O+764937ZU8=",
-          "dev": true
-        },
-        "is-glob": {
-          "version": "4.0.0",
-          "resolved": "https://registry.npmjs.org/is-glob/-/is-glob-4.0.0.tgz",
-          "integrity": "sha1-lSHHaEXMJhCoUgPd8ICpWML/q8A=",
-          "dev": true,
-          "requires": {
-            "is-extglob": "^2.1.1"
-          }
-        },
-        "is-number": {
-          "version": "3.0.0",
-          "resolved": "https://registry.npmjs.org/is-number/-/is-number-3.0.0.tgz",
-          "integrity": "sha1-JP1iAaR4LPUFYcgQJ2r8fRLXEZU=",
-          "dev": true,
-          "requires": {
-            "kind-of": "^3.0.2"
-          },
-          "dependencies": {
-            "kind-of": {
-              "version": "3.2.2",
-              "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-3.2.2.tgz",
-              "integrity": "sha1-MeohpzS6ubuw8yRm2JOupR5KPGQ=",
-              "dev": true,
-              "requires": {
-                "is-buffer": "^1.1.5"
-              }
-            }
-          }
-        },
-        "isobject": {
-          "version": "3.0.1",
-          "resolved": "https://registry.npmjs.org/isobject/-/isobject-3.0.1.tgz",
-          "integrity": "sha1-TkMekrEalzFjaqH5yNHMvP2reN8=",
-          "dev": true
-        },
-        "kind-of": {
-          "version": "6.0.2",
-          "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-6.0.2.tgz",
-          "integrity": "sha512-s5kLOcnH0XqDO+FvuaLX8DDjZ18CGFk7VygH40QoKPUQhW4e2rvM0rwUq0t8IQDOwYSeLK01U90OjzBTme2QqA==",
-          "dev": true
-        },
-        "lcid": {
-          "version": "2.0.0",
-          "resolved": "https://registry.npmjs.org/lcid/-/lcid-2.0.0.tgz",
-          "integrity": "sha512-avPEb8P8EGnwXKClwsNUgryVjllcRqtMYa49NTsbQagYuT1DcXnl1915oxWjoyGrXR6zH/Y0Zc96xWsPcoDKeA==",
-          "dev": true,
-          "requires": {
-            "invert-kv": "^2.0.0"
-          }
-        },
-        "locate-path": {
-          "version": "3.0.0",
-          "resolved": "https://registry.npmjs.org/locate-path/-/locate-path-3.0.0.tgz",
-          "integrity": "sha512-7AO748wWnIhNqAuaty2ZWHkQHRSNfPVIsPIfwEOWO22AmaoVrWavlOcMR5nzTLNYvp36X220/maaRsrec1G65A==",
-          "dev": true,
-          "requires": {
-            "p-locate": "^3.0.0",
-            "path-exists": "^3.0.0"
-          }
-        },
-        "mem": {
-          "version": "4.0.0",
-          "resolved": "https://registry.npmjs.org/mem/-/mem-4.0.0.tgz",
-          "integrity": "sha512-WQxG/5xYc3tMbYLXoXPm81ET2WDULiU5FxbuIoNbJqLOOI8zehXFdZuiUEgfdrU2mVB1pxBZUGlYORSrpuJreA==",
-          "dev": true,
-          "requires": {
-            "map-age-cleaner": "^0.1.1",
-            "mimic-fn": "^1.0.0",
-            "p-is-promise": "^1.1.0"
-          }
-        },
-        "micromatch": {
-          "version": "3.1.10",
-          "resolved": "https://registry.npmjs.org/micromatch/-/micromatch-3.1.10.tgz",
-          "integrity": "sha512-MWikgl9n9M3w+bpsY3He8L+w9eF9338xRl8IAO5viDizwSzziFEyUzo2xrrloB64ADbTf8uA8vRqqttDTOmccg==",
-          "dev": true,
-          "requires": {
-            "arr-diff": "^4.0.0",
-            "array-unique": "^0.3.2",
-            "braces": "^2.3.1",
-            "define-property": "^2.0.2",
-            "extend-shallow": "^3.0.2",
-            "extglob": "^2.0.4",
-            "fragment-cache": "^0.2.1",
-            "kind-of": "^6.0.2",
-            "nanomatch": "^1.2.9",
-            "object.pick": "^1.3.0",
-            "regex-not": "^1.0.0",
-            "snapdragon": "^0.8.1",
-            "to-regex": "^3.0.2"
-          }
-        },
-        "os-locale": {
-          "version": "3.0.1",
-          "resolved": "https://registry.npmjs.org/os-locale/-/os-locale-3.0.1.tgz",
-          "integrity": "sha512-7g5e7dmXPtzcP4bgsZ8ixDVqA7oWYuEz4lOSujeWyliPai4gfVDiFIcwBg3aGCPnmSGfzOKTK3ccPn0CKv3DBw==",
-          "dev": true,
-          "requires": {
-            "execa": "^0.10.0",
-            "lcid": "^2.0.0",
-            "mem": "^4.0.0"
-          }
-        },
-        "p-limit": {
-          "version": "2.0.0",
-          "resolved": "https://registry.npmjs.org/p-limit/-/p-limit-2.0.0.tgz",
-          "integrity": "sha512-fl5s52lI5ahKCernzzIyAP0QAZbGIovtVHGwpcu1Jr/EpzLVDI2myISHwGqK7m8uQFugVWSrbxH7XnhGtvEc+A==",
-          "dev": true,
-          "requires": {
-            "p-try": "^2.0.0"
-          }
-        },
-        "p-locate": {
-          "version": "3.0.0",
-          "resolved": "https://registry.npmjs.org/p-locate/-/p-locate-3.0.0.tgz",
-          "integrity": "sha512-x+12w/To+4GFfgJhBEpiDcLozRJGegY+Ei7/z0tSLkMmxGZNybVMSfWj9aJn8Z5Fc7dBUNJOOVgPv2H7IwulSQ==",
-          "dev": true,
-          "requires": {
-            "p-limit": "^2.0.0"
-          }
-        },
-        "p-try": {
-          "version": "2.0.0",
-          "resolved": "https://registry.npmjs.org/p-try/-/p-try-2.0.0.tgz",
-          "integrity": "sha512-hMp0onDKIajHfIkdRk3P4CdCmErkYAxxDtP3Wx/4nZ3aGlau2VKh3mZpcuFkH27WQkL/3WBCPOktzA9ZOAnMQQ==",
-          "dev": true
-        },
-        "string-width": {
-          "version": "2.1.1",
-          "resolved": "https://registry.npmjs.org/string-width/-/string-width-2.1.1.tgz",
-          "integrity": "sha512-nOqH59deCq9SRHlxq1Aw85Jnt4w6KvLKqWVik6oA9ZklXLNIOlqg4F2yrT1MVaTjAqvVwdfeZ7w7aCvJD7ugkw==",
-          "dev": true,
-          "requires": {
-            "is-fullwidth-code-point": "^2.0.0",
-            "strip-ansi": "^4.0.0"
-          },
-          "dependencies": {
-            "strip-ansi": {
-              "version": "4.0.0",
-              "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-4.0.0.tgz",
-              "integrity": "sha1-qEeQIusaw2iocTibY1JixQXuNo8=",
-              "dev": true,
-              "requires": {
-                "ansi-regex": "^3.0.0"
-              }
-            }
-          }
-        },
-        "supports-color": {
-          "version": "5.5.0",
-          "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-5.5.0.tgz",
-          "integrity": "sha512-QjVjwdXIt408MIiAqCX4oUKsgU2EqAGzs2Ppkm4aQYbjm+ZEWEcW4SfFNTr4uMNZma0ey4f5lgLrkB0aX0QMow==",
-          "dev": true,
-          "requires": {
-            "has-flag": "^3.0.0"
-          }
-        },
-        "upath": {
-          "version": "1.1.0",
-          "resolved": "https://registry.npmjs.org/upath/-/upath-1.1.0.tgz",
-          "integrity": "sha512-bzpH/oBhoS/QI/YtbkqCg6VEiPYjSZtrHQM6/QnJS6OL9pKUFLqb3aFh4Scvwm45+7iAgiMkLhSbaZxUqmrprw==",
-          "dev": true
-        },
-        "which-module": {
-          "version": "2.0.0",
-          "resolved": "https://registry.npmjs.org/which-module/-/which-module-2.0.0.tgz",
-          "integrity": "sha1-2e8H3Od7mQK4o6j6SzHD4/fm6Ho=",
-          "dev": true
-        },
-        "yargs": {
-          "version": "12.0.2",
-          "resolved": "https://registry.npmjs.org/yargs/-/yargs-12.0.2.tgz",
-          "integrity": "sha512-e7SkEx6N6SIZ5c5H22RTZae61qtn3PYUE8JYbBFlK9sYmh3DMQ6E5ygtaG/2BW0JZi4WGgTR2IV5ChqlqrDGVQ==",
-          "dev": true,
-          "requires": {
-            "cliui": "^4.0.0",
-            "decamelize": "^2.0.0",
-            "find-up": "^3.0.0",
-            "get-caller-file": "^1.0.1",
-            "os-locale": "^3.0.0",
-            "require-directory": "^2.1.1",
-            "require-main-filename": "^1.0.1",
-            "set-blocking": "^2.0.0",
-            "string-width": "^2.0.0",
-            "which-module": "^2.0.0",
-            "y18n": "^3.2.1 || ^4.0.0",
-            "yargs-parser": "^10.1.0"
-          }
-        },
-        "yargs-parser": {
-          "version": "10.1.0",
-          "resolved": "https://registry.npmjs.org/yargs-parser/-/yargs-parser-10.1.0.tgz",
-          "integrity": "sha512-VCIyR1wJoEBZUqk5PA+oOBF6ypbwh5aNB3I50guxAL/quggdfs4TtNHQrSazFA3fYZ+tEqfs0zIGlv0c/rgjbQ==",
-          "dev": true,
-          "requires": {
-            "camelcase": "^4.1.0"
-          }
-        }
-      }
-    },
-    "webpack-log": {
-      "version": "2.0.0",
-      "resolved": "https://registry.npmjs.org/webpack-log/-/webpack-log-2.0.0.tgz",
-      "integrity": "sha512-cX8G2vR/85UYG59FgkoMamwHUIkSSlV3bBMRsbxVXVUk2j6NleCKjQ/WE9eYg9WY4w25O9w8wKP4rzNZFmUcUg==",
-      "dev": true,
-      "requires": {
-        "ansi-colors": "^3.0.0",
-        "uuid": "^3.3.2"
-      },
-      "dependencies": {
-        "uuid": {
-          "version": "3.3.2",
-          "resolved": "https://registry.npmjs.org/uuid/-/uuid-3.3.2.tgz",
-          "integrity": "sha512-yXJmeNaw3DnnKAOKJE51sL/ZaYfWJRl1pK9dr19YFCu0ObS231AB1/LbqTKRAQ5kw8A90rA6fr4riOUpTZvQZA==",
-          "dev": true
-        }
-      }
-    },
-    "webpack-merge": {
-      "version": "4.1.4",
-      "resolved": "https://registry.npmjs.org/webpack-merge/-/webpack-merge-4.1.4.tgz",
-      "integrity": "sha512-TmSe1HZKeOPey3oy1Ov2iS3guIZjWvMT2BBJDzzT5jScHTjVC3mpjJofgueEzaEd6ibhxRDD6MIblDr8tzh8iQ==",
-      "dev": true,
-      "requires": {
-        "lodash": "^4.17.5"
-      }
-    },
-    "webpack-sources": {
-      "version": "1.1.0",
-      "resolved": "https://registry.npmjs.org/webpack-sources/-/webpack-sources-1.1.0.tgz",
-      "integrity": "sha512-aqYp18kPphgoO5c/+NaUvEeACtZjMESmDChuD3NBciVpah3XpMEU9VAAtIaB1BsfJWWTSdv8Vv1m3T0aRk2dUw==",
-      "dev": true,
-      "requires": {
-        "source-list-map": "^2.0.0",
-        "source-map": "~0.6.1"
-      },
-      "dependencies": {
-        "source-map": {
-          "version": "0.6.1",
-          "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.6.1.tgz",
-          "integrity": "sha512-UjgapumWlbMhkBgzT7Ykc5YXUT46F0iKu8SGXq0bcwP5dz/h0Plj6enJqjz1Zbq2l5WaqYnrVbwWOWMyF3F47g==",
-          "dev": true
-        }
-      }
-    },
-    "webpack-subresource-integrity": {
-      "version": "1.1.0-rc.6",
-      "resolved": "https://registry.npmjs.org/webpack-subresource-integrity/-/webpack-subresource-integrity-1.1.0-rc.6.tgz",
-      "integrity": "sha512-Az7y8xTniNhaA0620AV1KPwWOqawurVVDzQSpPAeR5RwNbL91GoBSJAAo9cfd+GiFHwsS5bbHepBw1e6Hzxy4w==",
-      "dev": true,
-      "requires": {
-        "webpack-core": "^0.6.8"
-      }
-    },
-    "websocket-driver": {
-      "version": "0.7.0",
-      "resolved": "https://registry.npmjs.org/websocket-driver/-/websocket-driver-0.7.0.tgz",
-      "integrity": "sha1-DK+dLXVdk67gSdS90NP+LMoqJOs=",
-      "dev": true,
-      "requires": {
-        "http-parser-js": ">=0.4.0",
-        "websocket-extensions": ">=0.1.1"
-      }
-    },
-    "websocket-extensions": {
-      "version": "0.1.3",
-      "resolved": "https://registry.npmjs.org/websocket-extensions/-/websocket-extensions-0.1.3.tgz",
-      "integrity": "sha512-nqHUnMXmBzT0w570r2JpJxfiSD1IzoI+HGVdd3aZ0yNi3ngvQ4jv1dtHt5VGxfI2yj5yqImPhOK4vmIh2xMbGg==",
-      "dev": true
-    },
-    "whatwg-encoding": {
-      "version": "1.0.5",
-      "resolved": "https://registry.npmjs.org/whatwg-encoding/-/whatwg-encoding-1.0.5.tgz",
-      "integrity": "sha512-b5lim54JOPN9HtzvK9HFXvBma/rnfFeqsic0hSpjtDbVxR3dJKLc+KB4V6GgiGOvl7CY/KNh8rxSo9DKQrnUEw==",
-      "dev": true,
-      "requires": {
-        "iconv-lite": "0.4.24"
-      },
-      "dependencies": {
-        "iconv-lite": {
-          "version": "0.4.24",
-          "resolved": "https://registry.npmjs.org/iconv-lite/-/iconv-lite-0.4.24.tgz",
-          "integrity": "sha512-v3MXnZAcvnywkTUEZomIActle7RXXeedOR31wwl7VlyoXO4Qi9arvSenNQWne1TcRwhCL1HwLI21bEqdpj8/rA==",
-          "dev": true,
-          "requires": {
-            "safer-buffer": ">= 2.1.2 < 3"
-          }
-        }
-      }
-    },
-    "whatwg-mimetype": {
-      "version": "2.3.0",
-      "resolved": "https://registry.npmjs.org/whatwg-mimetype/-/whatwg-mimetype-2.3.0.tgz",
-      "integrity": "sha512-M4yMwr6mAnQz76TbJm914+gPpB/nCwvZbJU28cUD6dR004SAxDLOOSUaB1JDRqLtaOV/vi0IC5lEAGFgrjGv/g==",
-      "dev": true
-    },
-    "whatwg-url": {
-      "version": "6.5.0",
-      "resolved": "https://registry.npmjs.org/whatwg-url/-/whatwg-url-6.5.0.tgz",
-      "integrity": "sha512-rhRZRqx/TLJQWUpQ6bmrt2UV4f0HCQ463yQuONJqC6fO2VoEb1pTYddbe59SkYq87aoM5A3bdhMZiUiVws+fzQ==",
-      "dev": true,
-      "requires": {
-        "lodash.sortby": "^4.7.0",
-        "tr46": "^1.0.1",
-        "webidl-conversions": "^4.0.2"
-      }
-    },
-    "when": {
-      "version": "3.6.4",
-      "resolved": "https://registry.npmjs.org/when/-/when-3.6.4.tgz",
-      "integrity": "sha1-RztRfsFZ4rhQBUl6E5g/CVQS404=",
-      "dev": true
-    },
-    "which": {
-      "version": "1.3.0",
-      "resolved": "https://registry.npmjs.org/which/-/which-1.3.0.tgz",
-      "integrity": "sha512-xcJpopdamTuY5duC/KnTTNBraPK54YwpenP4lzxU8H91GudWpFv38u0CKjclE1Wi2EH2EDz5LRcHcKbCIzqGyg==",
-      "dev": true,
-      "requires": {
-        "isexe": "^2.0.0"
-      }
-    },
-    "which-module": {
-      "version": "1.0.0",
-      "resolved": "https://registry.npmjs.org/which-module/-/which-module-1.0.0.tgz",
-      "integrity": "sha1-u6Y8qGGUiZT/MHc2CJ47lgJsKk8=",
-      "dev": true,
-      "optional": true
-    },
-    "wide-align": {
-      "version": "1.1.3",
-      "resolved": "https://registry.npmjs.org/wide-align/-/wide-align-1.1.3.tgz",
-      "integrity": "sha512-QGkOQc8XL6Bt5PwnsExKBPuMKBxnGxWWW3fU55Xt4feHozMUhdUMaBCk290qpm/wG5u/RSKzwdAC4i51YigihA==",
-      "dev": true,
-      "requires": {
-        "string-width": "^1.0.2 || 2"
-      }
-    },
-    "window-size": {
-      "version": "0.1.0",
-      "resolved": "https://registry.npmjs.org/window-size/-/window-size-0.1.0.tgz",
-      "integrity": "sha1-VDjNLqk7IC76Ohn+iIeu58lPnJ0=",
-      "dev": true
-    },
-    "wordwrap": {
-      "version": "0.0.2",
-      "resolved": "https://registry.npmjs.org/wordwrap/-/wordwrap-0.0.2.tgz",
-      "integrity": "sha1-t5Zpu0LstAn4PVg8rVLKF+qhZD8=",
-      "dev": true
-    },
-    "worker-farm": {
-      "version": "1.6.0",
-      "resolved": "https://registry.npmjs.org/worker-farm/-/worker-farm-1.6.0.tgz",
-      "integrity": "sha512-6w+3tHbM87WnSWnENBUvA2pxJPLhQUg5LKwUQHq3r+XPhIM+Gh2R5ycbwPCyuGbNg+lPgdcnQUhuC02kJCvffQ==",
-      "dev": true,
-      "requires": {
-        "errno": "~0.1.7"
-      }
-    },
-    "wrap-ansi": {
-      "version": "2.1.0",
-      "resolved": "https://registry.npmjs.org/wrap-ansi/-/wrap-ansi-2.1.0.tgz",
-      "integrity": "sha1-2Pw9KE3QV5T+hJc8rs3Rz4JP3YU=",
-      "dev": true,
-      "requires": {
-        "string-width": "^1.0.1",
-        "strip-ansi": "^3.0.1"
-      }
-    },
-    "wrappy": {
-      "version": "1.0.2",
-      "resolved": "https://registry.npmjs.org/wrappy/-/wrappy-1.0.2.tgz",
-      "integrity": "sha1-tSQ9jz7BqjXxNkYFvA0QNuMKtp8="
-    },
-    "write-file-atomic": {
-      "version": "2.4.1",
-      "resolved": "https://registry.npmjs.org/write-file-atomic/-/write-file-atomic-2.4.1.tgz",
-      "integrity": "sha512-TGHFeZEZMnv+gBFRfjAcxL5bPHrsGKtnb4qsFAws7/vlh+QfwAaySIw4AXP9ZskTTh5GWu3FLuJhsWVdiJPGvg==",
-      "dev": true,
-      "requires": {
-        "graceful-fs": "^4.1.11",
-        "imurmurhash": "^0.1.4",
-        "signal-exit": "^3.0.2"
-      }
-    },
-    "ws": {
-      "version": "5.2.2",
-      "resolved": "https://registry.npmjs.org/ws/-/ws-5.2.2.tgz",
-      "integrity": "sha512-jaHFD6PFv6UgoIVda6qZllptQsMlDEJkTQcybzzXDYM1XO9Y8em691FGMPmM46WGyLU4z9KMgQN+qrux/nhlHA==",
-      "dev": true,
-      "requires": {
-        "async-limiter": "~1.0.0"
-      }
-    },
-    "xhr2": {
-      "version": "0.1.4",
-      "resolved": "https://registry.npmjs.org/xhr2/-/xhr2-0.1.4.tgz",
-      "integrity": "sha1-f4dliEdxbbUCYyOBL4GMras4el8="
-    },
-    "xml": {
-      "version": "1.0.1",
-      "resolved": "https://registry.npmjs.org/xml/-/xml-1.0.1.tgz",
-      "integrity": "sha1-eLpyAgApxbyHuKgaPPzXS0ovweU=",
-      "dev": true
-    },
-    "xml-name-validator": {
-      "version": "3.0.0",
-      "resolved": "https://registry.npmjs.org/xml-name-validator/-/xml-name-validator-3.0.0.tgz",
-      "integrity": "sha512-A5CUptxDsvxKJEU3yO6DuWBSJz/qizqzJKOMIfUJHETbBw/sFaDxgd6fxm1ewUaM0jZ444Fc5vC5ROYurg/4Pw==",
-      "dev": true
-    },
-    "xregexp": {
-      "version": "4.0.0",
-      "resolved": "https://registry.npmjs.org/xregexp/-/xregexp-4.0.0.tgz",
-      "integrity": "sha512-PHyM+sQouu7xspQQwELlGwwd05mXUFqwFYfqPO0cC7x4fxyHnnuetmQr6CjJiafIDoH4MogHb9dOoJzR/Y4rFg==",
-      "dev": true
-    },
-    "xtend": {
-      "version": "4.0.1",
-      "resolved": "https://registry.npmjs.org/xtend/-/xtend-4.0.1.tgz",
-      "integrity": "sha1-pcbVMr5lbiPbgg77lDofBJmNY68=",
-      "dev": true
-    },
-    "y18n": {
-      "version": "4.0.0",
-      "resolved": "https://registry.npmjs.org/y18n/-/y18n-4.0.0.tgz",
-      "integrity": "sha512-r9S/ZyXu/Xu9q1tYlpsLIsa3EeLXXk0VwlxqTcFRfg9EhMW+17kbt9G0NrgCmhGb5vT2hyhJZLfDGx+7+5Uj/w==",
-      "dev": true
-    },
-    "yallist": {
-      "version": "2.1.2",
-      "resolved": "https://registry.npmjs.org/yallist/-/yallist-2.1.2.tgz",
-      "integrity": "sha1-HBH5IY8HYImkfdUS+TxmmaaoHVI=",
-      "dev": true
-    },
-    "yargs": {
-      "version": "7.1.0",
-      "resolved": "https://registry.npmjs.org/yargs/-/yargs-7.1.0.tgz",
-      "integrity": "sha1-a6MY6xaWFyf10oT46gA+jWFU0Mg=",
-      "dev": true,
-      "optional": true,
-      "requires": {
-        "camelcase": "^3.0.0",
-        "cliui": "^3.2.0",
-        "decamelize": "^1.1.1",
-        "get-caller-file": "^1.0.1",
-        "os-locale": "^1.4.0",
-        "read-pkg-up": "^1.0.1",
-        "require-directory": "^2.1.1",
-        "require-main-filename": "^1.0.1",
-        "set-blocking": "^2.0.0",
-        "string-width": "^1.0.2",
-        "which-module": "^1.0.0",
-        "y18n": "^3.2.1",
-        "yargs-parser": "^5.0.0"
-      },
-      "dependencies": {
-        "camelcase": {
-          "version": "3.0.0",
-          "resolved": "https://registry.npmjs.org/camelcase/-/camelcase-3.0.0.tgz",
-          "integrity": "sha1-MvxLn82vhF/N9+c7uXysImHwqwo=",
-          "dev": true,
-          "optional": true
-        },
-        "y18n": {
-          "version": "3.2.1",
-          "resolved": "https://registry.npmjs.org/y18n/-/y18n-3.2.1.tgz",
-          "integrity": "sha1-bRX7qITAhnnA136I53WegR4H+kE=",
-          "dev": true,
-          "optional": true
-        }
-      }
-    },
-    "yargs-parser": {
-      "version": "5.0.0",
-      "resolved": "https://registry.npmjs.org/yargs-parser/-/yargs-parser-5.0.0.tgz",
-      "integrity": "sha1-J17PDX/+Bcd+ZOfIbkzZS/DhIoo=",
-      "dev": true,
-      "optional": true,
-      "requires": {
-        "camelcase": "^3.0.0"
-      },
-      "dependencies": {
-        "camelcase": {
-          "version": "3.0.0",
-          "resolved": "https://registry.npmjs.org/camelcase/-/camelcase-3.0.0.tgz",
-          "integrity": "sha1-MvxLn82vhF/N9+c7uXysImHwqwo=",
-          "dev": true,
-          "optional": true
-        }
-      }
-    },
-    "yauzl": {
-      "version": "2.8.0",
-      "resolved": "https://registry.npmjs.org/yauzl/-/yauzl-2.8.0.tgz",
-      "integrity": "sha1-eUUK/yKyqcWkHvVOAtuQfM+/nuI=",
-      "dev": true,
-      "requires": {
-        "buffer-crc32": "~0.2.3",
-        "fd-slicer": "~1.0.1"
-      }
-    },
-    "yn": {
-      "version": "2.0.0",
-      "resolved": "https://registry.npmjs.org/yn/-/yn-2.0.0.tgz",
-      "integrity": "sha1-5a2ryKz0CPY4X8dklWhMiOavaJo=",
-      "dev": true
-    },
-    "zone.js": {
-      "version": "0.8.26",
-      "resolved": "https://registry.npmjs.org/zone.js/-/zone.js-0.8.26.tgz",
-      "integrity": "sha512-W9Nj+UmBJG251wkCacIkETgra4QgBo/vgoEkb4a2uoLzpQG7qF9nzwoLXWU5xj3Fg2mxGvEDh47mg24vXccYjA=="
-    }
-  }
-}
index b872e61..1f2031d 100644 (file)
@@ -12,6 +12,7 @@
   "dependencies": {},
   "devDependencies": {
     "@bahmutov/add-typescript-to-cypress": "2.0.0",
+    "@types/lodash": "4.14.121",
     "cypress": "^3.1.0",
     "typescript": "2.9.2",
     "rxjs": "^6.3.3",
index ff2682b..d718b22 100644 (file)
@@ -1,7 +1,7 @@
 {
   "name": "vid-cli",
   "version": "0.0.0",
-  "license": "Apache-2.0",
+  "license": "MIT",
   "scripts": {
     "ng": "ng",
     "start": "ng serve --port 4201",
@@ -19,7 +19,7 @@
     "e2e": "ng e2e",
     "build-watch": "ng build --watch",
     "cypress:open": "cypress open",
-    "cypress": "cypress open --config baseUrl=http://localhost:8080/vid ",
+    "cypress": "cypress open --config watchForFileChanges=false,baseUrl=http://localhost:8080/vid",
     "cypress:run": "cypress run",
     "cypress:headless": "cypress run --config baseUrl=http://localhost:8080/vid",
     "format": "prettier",
   },
   "private": true,
   "dependencies": {
-    "@angular-redux/store": "^9.0.0",
-    "@angular/animations": "^7.1.4",
-    "@angular/cdk": "^7.2.2",
-    "@angular/common": "^7.1.4",
-    "@angular/compiler": "^7.1.4",
-    "@angular/core": "^7.1.4",
-    "@angular/forms": "^7.1.4",
-    "@angular/http": "^7.1.4",
+    "@angular-redux/store": "9.0.0",
+    "@angular/animations": "7.1.4",
+    "@angular/cdk": "7.2.2",
+    "@angular/common": "7.1.4",
+    "@angular/compiler": "7.1.4",
+    "@angular/core": "7.1.4",
+    "@angular/forms": "7.1.4",
+    "@angular/http": "7.1.4",
     "@angular/material": "7.2.2",
-    "@angular/platform-browser": "^7.1.4",
-    "@angular/platform-browser-dynamic": "^7.1.4",
-    "@angular/platform-server": "^7.1.4",
-    "@angular/router": "^7.1.4",
+    "@angular/platform-browser": "7.1.4",
+    "@angular/platform-browser-dynamic": "7.1.4",
+    "@angular/platform-server": "7.1.4",
+    "@angular/router": "7.1.4",
     "@harmowatch/ngx-redux-core": "0.2.2",
     "@nicky-lenaers/ngx-scroll-to": "^0.6.1",
-    "@turf/turf": "^5.1.6",
-    "@types/lodash": "4.14.91",
-    "angular-svg-icon": "^5.0.0",
+    "@turf/turf": "5.1.6",
+    "@types/lodash": "4.14.121",
+    "angular-svg-icon": "5.0.0",
     "angular-tree-component": "7.0.1",
     "angular2-datatable": "0.6.0",
     "angular2-multiselect-dropdown": "2.5.0",
     "angular5-csv": "^0.2.10",
-    "bootstrap": "^4.1.2",
-    "core-js": "^2.6.1",
-    "font-awesome": "^4.7.0",
-    "install": "^0.12.2",
+    "bootstrap": "3.3.7",
+    "core-js": "2.6.1",
+    "font-awesome": "4.7.0",
+    "install": "0.12.2",
     "jest-image-snapshot": "2.8.1",
     "jest-preset-angular": "6.0.2",
     "ng-multiselect-dropdown": "0.1.3",
     "zone.js": "^0.8.26"
   },
   "devDependencies": {
-    "@angular-builders/jest": "^7.1.2",
-    "@angular-devkit/build-angular": "^0.11.4",
-    "@angular/cli": "^7.1.4",
-    "@angular/compiler-cli": "^7.1.4",
-    "@angular/language-service": "^7.1.4",
-    "@babel/preset-env": "^7.2.3",
+    "@angular-builders/jest": "7.3.1",
+    "@angular-devkit/build-angular": "0.13.1",
+    "@angular/cli": "7.3.1",
+    "@angular/compiler-cli": "7.2.5",
+    "@angular/language-service": "7.2.5",
+    "@babel/preset-env": "7.3.1",
     "@bahmutov/add-typescript-to-cypress": "2.0.0",
-    "@types/chai": "^4.1.3",
-    "@types/cypress": "1.1.3",
+    "@types/chai": "4.1.7",
     "@types/jest": "24.0.6",
     "@types/jest-each": "0.3.4",
     "@types/node": "^10.12.18",
-    "angular2-template-loader": "^0.6.2",
+    "angular2-template-loader": "0.6.2",
     "babel-jest": "24.1.0",
-    "codelyzer": "^4.5.0",
-    "cypress": "^3.1.0",
+    "codelyzer": "4.5.0",
+    "cypress": "^3.1.5",
     "hammerjs": "2.0.8",
     "husky": "^1.3.1",
-    "istanbul-reports": "^2.0.1",
+    "istanbul-reports": "2.1.1",
     "jest": "24.1.0",
     "jest-each": "24.0.0",
     "jest-junit": "6.3.0",
     "ts-mockito": "2.3.1",
     "ts-node": "~5.0.1",
     "tslint": "^5.12.0",
-    "typescript": "^3.1.6",
+    "typescript": "3.1.6",
     "wallaby-webpack": "^3.9.11",
     "webpack": "^4.28.2"
   },
   },
   "jest": {
     "preset": "jest-preset-angular",
-    "setupFilesAfterEnv": ["<rootDir>/src/setupJest.ts"],
+    "setupFilesAfterEnv": [
+      "<rootDir>/src/setupJest.ts"
+    ],
     "transform": {
       "^.+\\.(ts|html)$": "<rootDir>/node_modules/jest-preset-angular/preprocessor.js",
       "^.+\\.js$": "babel-jest"
index 40333b9..be3533d 100644 (file)
   transition: background-color .15s,box-shadow .15s;
 }
 .node-wrapper {display: flex; align-items: flex-start;}
-.node-content-wrapper-active,
-.node-content-wrapper.node-content-wrapper-active:hover,
-.node-content-wrapper-active.node-content-wrapper-focused {
-  background: #beebff;
-}
+
 .node-content-wrapper-focused { background: #e7f4f9 }
-.node-content-wrapper:hover { background: #f7fbff }
 .node-content-wrapper-active, .node-content-wrapper-focused, .node-content-wrapper:hover {
   box-shadow: inset 0 0 1px #999;
 }
index 6a3574f..67b5405 100644 (file)
@@ -34,6 +34,8 @@ import {SdcUiServices} from "onap-ui-angular/dist";
 import {CreateDynamicComponentService} from "onap-ui-angular/dist/utils/create-dynamic-component.service";
 import {ComponentInfoComponent} from './service-planning/component-info/component-info.component';
 import {ComponentInfoService} from "./service-planning/component-info/component-info.service";
+import {NetworkStepService} from "./service-planning/objectsToTree/models/vrf/vrfModal/networkStep/network.step.service";
+import {VpnStepService} from "./service-planning/objectsToTree/models/vrf/vrfModal/vpnStep/vpn.step.service";
 
 
 @NgModule({
@@ -66,7 +68,9 @@ import {ComponentInfoService} from "./service-planning/component-info/component-
     SdcUiServices.LoaderService,
     CreateDynamicComponentService,
     ComponentInfoService,
-    DragAndDropService],
+    DragAndDropService,
+    NetworkStepService,
+    VpnStepService],
   declarations: [
     AvailableModelsTreeComponent,
     HighlightPipe,
diff --git a/vid-webpack-master/src/app/drawingBoard/objectsToTree/objectToModelTree/modelTreeNode.model.ts b/vid-webpack-master/src/app/drawingBoard/objectsToTree/objectToModelTree/modelTreeNode.model.ts
new file mode 100644 (file)
index 0000000..36dd3ac
--- /dev/null
@@ -0,0 +1,30 @@
+import {ITreeNode} from "angular-tree-component/dist/defs/api";
+import {ModelInformationItem} from "../../../shared/components/model-information/model-information.component";
+import {ComponentInfoType} from "../../service-planning/component-info/component-info-model";
+
+export interface IModelTreeNodeModel {
+  id?: string;
+  modelCustomizationId? : string;
+  modelVersionId?:  string;
+  modelUniqueId? : string;
+  name?: string;
+  tooltip?: string;
+  type?: string;
+  count?: number;
+  max?: number;
+  children?: any[];
+  disabled?: boolean;
+  dynamicInputs?: any;
+  isEcompGeneratedNaming?: boolean;
+  typeName? : string;
+  componentInfoType?: ComponentInfoType;
+
+
+  onAddClick?(node, serviceId);
+  getNodeCount?(node, serviceId);
+  getMenuAction?(node, serviceId);
+  showNodeIcons?(node, serviceId);
+  getModel?(modelId: string, instance: any, serviceHierarchy)
+  getInfo?(model, instance): ModelInformationItem[];
+
+}
index 91acca0..7864808 100644 (file)
@@ -34,7 +34,7 @@
                   [name]="'maximum'">
               </svg-icon>
             </span>
-            <span class="icon-plus" *ngIf="node?.data?.showNodeIcons(node, serviceModelId)?.addIcon">
+            <span class="icon-plus" *ngIf="_store.getState().service.serviceInstance[serviceModelId].action !== 'Delete' && node?.data?.showNodeIcons(node, serviceModelId)?.addIcon">
               <span tooltip="Add" [attr.data-tests-id]="'node-'+node.data.name+'-add-btn'" (click)="onClickAdd(node, serviceModelId)">
                 <i class="fa fa-plus-circle" aria-hidden="true"></i>
               </span>
index 90c2cd8..62e9be7 100644 (file)
@@ -168,7 +168,7 @@ available-models-tree {
                 .node-content-wrapper.node-content-wrapper-focused {
                   tree-node-content {
                     > div {
-                      background: #009FDB;
+                      background: #009FDB !important;
                       color: white;
                     }
                   }
@@ -178,7 +178,7 @@ available-models-tree {
                     > div {
                       background: #F2F2F2;
                       &.tree-node-focused:not(.tree-node-disabled) {
-                        background: #009FDB;
+                        background: #009FDB !important;
                         color: white;
                       }
                       span.actions {
@@ -206,6 +206,8 @@ available-models-tree {
                   border-color: #1EB9F3;
                 }
                 .node-content-wrapper-focused{
+                  background: #009FDB !important;
+                  border-color: #1EB9F3;
                   box-shadow: none;
                   tree-node-content {
 
@@ -395,6 +397,7 @@ available-models-tree {
 
   .node-content-wrapper.node-content-wrapper-focused{
      border-color:#1EB9F3 ;
+     background: #009FDB !important;
      tree-node-content > div{
        .vf-type,.model-info,.model-info .property-name {
          color: white;
@@ -410,7 +413,9 @@ available-models-tree {
   }
 
 
-
+  available-models-tree .node-content-wrapper.node-content-wrapper-focused {
+    background: #009FDB !important;
+  }
   .vf-type {
     width: 40px;
     height: 45px;
index 31d7b03..145ee19 100644 (file)
@@ -25,6 +25,9 @@ import {VnfGroupControlGenerator} from "../../../shared/components/genericForm/f
 import {HighlightPipe} from "../../../shared/pipes/highlight/highlight-filter.pipe";
 import * as _ from 'lodash';
 import {DrawingBoardTreeComponent} from "../drawing-board-tree/drawing-board-tree.component";
+import {ComponentInfoModel} from "../component-info/component-info-model";
+import {ComponentInfoService} from "../component-info/component-info.service";
+import {FeatureFlagsService, Features} from "../../../shared/services/featureFlag/feature-flags.service";
 
 
 @Component({
@@ -72,6 +75,7 @@ export class AvailableModelsTreeComponent {
           value => {
             this.serviceHierarchy = value;
             this.nodes = this._objectToModelTreeService.convertServiceHierarchyModelToTreeNodes(this.serviceHierarchy);
+            this.shouldOpenVRFModal(this.nodes);
           },
           error => {
             console.log('error is ', error)
@@ -102,6 +106,13 @@ export class AvailableModelsTreeComponent {
   };
 
 
+  shouldOpenVRFModal(nodes) :void {
+    const node = this._availableModelsTreeService.shouldOpenVRFModal(nodes, this.serviceModelId, this.store.getState().service);
+    if(!_.isNil(node)){
+      this.onClickAdd(node,  this.serviceModelId);
+    }
+  }
+
   getNodeName(node : ITreeNode, filter : string) {
     return this._highlightPipe.transform(node.data.name ,filter ? filter : '');
   }
@@ -119,6 +130,13 @@ export class AvailableModelsTreeComponent {
     node.expand();
     this._sharedTreeService.setSelectedVNF(null);
     this.highlightInstances.emit(node.data.modelUniqueId);
+    if (FeatureFlagsService.getFlagState(Features.FLAG_1906_COMPONENT_INFO, this.store)) {
+      const serviceHierarchy = this._store.getState().service.serviceHierarchy[this.serviceModelId];
+      const model = node.data.getModel(node.data.name, node.data, serviceHierarchy);
+      const modelInfoItems  = node.data.getInfo(model, null);
+      const componentInfoModel :ComponentInfoModel = this._sharedTreeService.addGeneralInfoItems(modelInfoItems, node.data.componentInfoType, model, null);
+      ComponentInfoService.triggerComponentInfoChange.next(componentInfoModel);
+    }
   }
 
 
@@ -127,7 +145,7 @@ export class AvailableModelsTreeComponent {
     this.isNewObject = isNewObject;
     let data = node.data;
     let dynamicInputs = data.dynamicInputs;
-    let isAlaCarte: boolean = this.serviceHierarchy.service.instantiationType == "A-La-Carte";
+    let isAlaCarte: boolean = this.serviceHierarchy.service.vidNotions.instantiationType == 'ALaCarte';
     let isEcompGeneratedNaming: boolean = data.isEcompGeneratedNaming;
     let type: string = data.type;
     if (!this.store.getState().global.flags['FLAG_SETTING_DEFAULTS_IN_DRAWING_BOARD'] || node.data.type === ServiceNodeTypes.VF ||
@@ -150,7 +168,8 @@ export class AvailableModelsTreeComponent {
           let existVnf = this._store.getState().service.serviceInstance[this.serviceModelId].vnfs;
           if(!_.isNil(existVnf)){
             for(let vnfKey in existVnf){
-              if(existVnf[vnfKey]['modelInfo'].modelUniqueId === node.parent.data.id){
+              const modelUniqueId =  existVnf[vnfKey]['modelInfo'].modelCustomizationId || existVnf[vnfKey]['modelInfo'].modelInvariantId;
+              if(modelUniqueId === node.parent.data.id){
                 this.store.dispatch(createVFModuleInstance(vfModule, node.data.name, this.serviceModelId, null, vnfKey));
                 DrawingBoardTreeComponent.triggerreCalculateIsDirty.next(this.serviceModelId);
               }
index cf9d04a..4abc203 100644 (file)
@@ -1,9 +1,6 @@
-import {TestBed, getTestBed} from '@angular/core/testing';
-import {
-  HttpClientTestingModule,
-  HttpTestingController
-} from '@angular/common/http/testing';
-import {AvailableModelsTreeService, AvailableNodeIcons} from './available-models-tree.service';
+import {getTestBed, TestBed} from '@angular/core/testing';
+import {HttpClientTestingModule, HttpTestingController} from '@angular/common/http/testing';
+import {AvailableModelsTreeService} from './available-models-tree.service';
 import {ServiceNodeTypes} from "../../../shared/models/ServiceNodeTypes";
 import {DefaultDataGeneratorService} from "../../../shared/services/defaultDataServiceGenerator/default.data.generator.service";
 import {MessageBoxService} from "../../../shared/components/messageBox/messageBox.service";
@@ -63,9 +60,9 @@ describe('Available Models Tree Service', () => {
 
       //  add vfModule with dynamicInputs without defaultValues should return true
       result = service.shouldOpenDialog(ServiceNodeTypes.VFmodule, [{
-        id: '2017488_adiodvpe0_vnf_config_template_version',
+        id: '2017488_pasqualevpe0_vnf_config_template_version',
         type: 'string',
-        name: '2017488_adiodvpe0_vnf_config_template_version',
+        name: '2017488_pasqualevpe0_vnf_config_template_version',
         isRequired: true,
         description: 'VPE Software Version'
       }], true);
@@ -73,9 +70,9 @@ describe('Available Models Tree Service', () => {
 
       // add vfModule with dynamicInputs with defaultValues should return false
       result = service.shouldOpenDialog(ServiceNodeTypes.VFmodule, [{
-        id: '2017488_adiodvpe0_vnf_config_template_version',
+        id: '2017488_pasqualevpe0_vnf_config_template_version',
         type: 'string',
-        name: '2017488_adiodvpe0_vnf_config_template_version',
+        name: '2017488_pasqualevpe0_vnf_config_template_version',
         value: '17.2',
         isRequired: true,
         description: 'VPE Software Version'
@@ -84,6 +81,160 @@ describe('Available Models Tree Service', () => {
     });
   });
 
+
+  test('shouldOpenVRFModal', () => {
+    const nodes = [{
+      "id": "dd024d73-9bd1-425d-9db5-476338d53433",
+      "modelCustomizationId": "dd024d73-9bd1-425d-9db5-476338d53433",
+      "modelVersionId": "9cac02be-2489-4374-888d-2863b4511a59",
+      "modelUniqueId": "dd024d73-9bd1-425d-9db5-476338d53433",
+      "name": "VRF Entry Configuration 0",
+      "tooltip": "VRF",
+      "type": "VRF",
+      "count": 0,
+      "max": 1,
+      "children": [],
+      "disabled": false,
+      "dynamicInputs": [],
+      "isEcompGeneratedNaming": false,
+      "typeName": "VRF",
+      "componentInfoType": "VRF",
+      "getModel" : ()=>{
+        return  {
+          min : 1
+        }
+      }
+    }];
+
+
+    const serviceStore = {
+      "serviceInstance": {
+        "4117a0b6-e234-467d-b5b9-fe2f68c8b0fc": {
+          "action": "Create",
+          "isDirty": false,
+          "vnfs": {},
+          "vrfs": {
+            "VRF Entry Configuration": {
+              "action": "Create",
+              "uuid": "9cac02be-2489-4374-888d-2863b4511a59",
+              "inputs": {},
+              "type": "Configuration",
+              "trackById": "s0z58emiprq",
+              "modelInfo": {
+                "modelInvariantId": "b67a289b-1688-496d-86e8-1583c828be0a",
+                "modelVersionId": "69e09f68-8b63-4cc9-b9ff-860960b5db09",
+                "modelName": "VRF Entry Configuration",
+                "modelVersion": "5.0",
+                "modelCustomizationId": "dd024d73-9bd1-425d-9db5-476338d53433",
+                "modelUniqueId": "dd024d73-9bd1-425d-9db5-476338d53433",
+                "modelCustomizationName": "VRF Entry Configuration",
+                "uuid": "9cac02be-2489-4374-888d-2863b4511a59"
+              },
+              "vpns": {
+                "VRF Entry Configuration vpns 1": {
+                  "action": "Create",
+                  "instanceId": "46fcb25a-e7ba-4d96-99ba-3bb6eae6aba7",
+                  "instanceName": "LPPVPN",
+                  "platformName": "AVPN",
+                  "instanceType": "SERVICE-INFRASTRUCTURE",
+                  "region": "USA,EMEA",
+                  "customerId": "VPN1271",
+                  "modelInfo": {
+                    "modelCustomizationId": null,
+                    "modelInvariantId": null,
+                    "modelVersionId": null
+                  },
+                  "routeTargets": null,
+                  "isSelected": true
+                }
+              },
+              "networks": {
+                "VRF Entry Configuration networks 1": {
+                  "action ": "Create",
+                  "instanceName": "AUK51a_oam_calea_net_0",
+                  "instanceType": "SR-IOV-PROVIDER2-0",
+                  "role": "role-1",
+                  "orchStatus": "Active",
+                  "physicalName": "sriovnet0",
+                  "instanceId": "46fcb25a-e7ba-4d96-99ba-3bb6eae6aba7",
+                  "serviceName": "LPPVPN",
+                  "serv§iceUUID": "VPN1271",
+                  "tenantName": "ecomp_ispt",
+                  "lcpCloudRegionId": "USA,EMEA",
+                  "modelInfo": {
+                    "modelCustomizationId": "46fcb25a-e7ba-4d96-99ba-3bb6eae6aba7",
+                    "modelInvariantId": "46fcb25a-e7ba-4d96-99ba-3bb6eae6aba7",
+                    "modelVersionId": "7010093-df36-4dcb-8428-c3d02bf3f88d",
+                    "modelType": "vpn"
+                  }
+                }
+              }
+            }
+          },
+          "instanceParams": [],
+          "validationCounter": 0,
+          "existingNames": {},
+          "existingVNFCounterMap": {},
+          "existingVRFCounterMap": {},
+          "existingVnfGroupCounterMap": {},
+          "existingNetworksCounterMap": {},
+          "optionalGroupMembersMap": {},
+          "networks": {},
+          "vnfGroups": {},
+          "bulkSize": 1,
+          "service": {
+            "vidNotions": {
+              "instantiationUI": "serviceWithVRF",
+              "modelCategory": "other",
+              "viewEditUI": "serviceWithVRF",
+              "instantiationType": "ALaCarte"
+            },
+            "uuid": "4117a0b6-e234-467d-b5b9-fe2f68c8b0fc",
+            "invariantUuid": "7ee41ce4-4827-44b0-a48e-2707a59905d2",
+            "name": "VRF Service for Test",
+            "version": "1.0",
+            "toscaModelURL": null,
+            "category": "Network L4+",
+            "serviceType": "INFRASTRUCTURE",
+            "serviceRole": "Configuration",
+            "description": "xxx",
+            "serviceEcompNaming": "true",
+            "instantiationType": "A-La-Carte",
+            "inputs": {}
+          },
+          "collectionResources": {},
+          "configurations": {},
+          "fabricConfigurations": {},
+          "serviceProxies": {},
+          "vfModules": {},
+          "volumeGroups": {},
+          "pnfs": {},
+          "isALaCarte": true,
+          "testApi": "VNF_API",
+          "vidNotions": {
+            "instantiationUI": "serviceWithVVRF",
+            "modelCategory": "other",
+            "viewEditUI": "serviceWithVRF",
+            "instantiationType": "ALaCarte"
+          }
+        }
+      }
+    };
+
+    const serviceModelId :string = '4117a0b6-e234-467d-b5b9-fe2f68c8b0fc';
+
+    let result: boolean = service.shouldOpenVRFModal(nodes,  serviceModelId, serviceStore);
+    expect(result).not.toBeNull();
+
+    serviceStore.serviceInstance[serviceModelId].existingVRFCounterMap = {
+      "dd024d73-9bd1-425d-9db5-476338d53433" : 1
+    };
+
+    result = service.shouldOpenVRFModal(nodes,  serviceModelId, serviceStore);
+    expect(result).toBeNull();
+
+  });
+
   function getServiceServiceHierarchy() {
     return JSON.parse(JSON.stringify(
       {
@@ -103,11 +254,11 @@ describe('Available Models Tree Service', () => {
             'inputs': {}
           },
           'vnfs': {
-            'VF_vMee 0': {
+            'VF_vGeraldine 0': {
               'uuid': 'd6557200-ecf2-4641-8094-5393ae3aae60',
               'invariantUuid': '4160458e-f648-4b30-a176-43881ffffe9e',
-              'description': 'VSP_vMee',
-              'name': 'VF_vMee',
+              'description': 'VSP_vGeraldine',
+              'name': 'VF_vGeraldine',
               'version': '2.0',
               'customizationUuid': '91415b44-753d-494c-926a-456a9172bbb9',
               'inputs': {},
@@ -277,54 +428,54 @@ describe('Available Models Tree Service', () => {
                 'sctp-b-egress-dst_end_port': '65535.0'
               },
               'type': 'VF',
-              'modelCustomizationName': 'VF_vMee 0',
+              'modelCustomizationName': 'VF_vGeraldine 0',
               'vfModules': {
-                'vf_vmee0..VfVmee..vmme_vlc..module-1': {
+                'vf_vgeraldine0..VfVgeraldine..vflorence_vlc..module-1': {
                   'uuid': '522159d5-d6e0-4c2a-aa44-5a542a12a830',
                   'invariantUuid': '98a7c88b-b577-476a-90e4-e25a5871e02b',
                   'customizationUuid': '55b1be94-671a-403e-a26c-667e9c47d091',
                   'description': null,
-                  'name': 'VfVmee..vmme_vlc..module-1',
+                  'name': 'VfVgeraldine..vflorence_vlc..module-1',
                   'version': '2',
-                  'modelCustomizationName': 'VfVmee..vmme_vlc..module-1',
+                  'modelCustomizationName': 'VfVgeraldine..vflorence_vlc..module-1',
                   'properties': {'minCountInstances': 0, 'maxCountInstances': null, 'initialCount': 0},
                   'commands': {},
                   'volumeGroupAllowed': false
                 },
-                'vf_vmee0..VfVmee..vmme_gpb..module-2': {
+                'vf_vgeraldine0..VfVgeraldine..vflorence_gpb..module-2': {
                   'uuid': '41708296-e443-4c71-953f-d9a010f059e1',
                   'invariantUuid': '1cca90b8-3490-495e-87da-3f3e4c57d5b9',
                   'customizationUuid': '6add59e0-7fe1-4bc4-af48-f8812422ae7c',
                   'description': null,
-                  'name': 'VfVmee..vmme_gpb..module-2',
+                  'name': 'VfVgeraldine..vflorence_gpb..module-2',
                   'version': '2',
-                  'modelCustomizationName': 'VfVmee..vmme_gpb..module-2',
+                  'modelCustomizationName': 'VfVgeraldine..vflorence_gpb..module-2',
                   'properties': {'minCountInstances': 0, 'maxCountInstances': null, 'initialCount': 0},
                   'commands': {},
                   'volumeGroupAllowed': false
                 },
-                'vf_vmee0..VfVmee..base_vmme..module-0': {
+                'vf_vgeraldine0..VfVgeraldine..base_vflorence..module-0': {
                   'uuid': 'a27f5cfc-7f12-4f99-af08-0af9c3885c87',
                   'invariantUuid': 'a6f9e51a-2b35-416a-ae15-15e58d61f36d',
                   'customizationUuid': 'f8c040f1-7e51-4a11-aca8-acf256cfd861',
                   'description': null,
-                  'name': 'VfVmee..base_vmme..module-0',
+                  'name': 'VfVgeraldine..base_vflorence..module-0',
                   'version': '2',
-                  'modelCustomizationName': 'VfVmee..base_vmme..module-0',
+                  'modelCustomizationName': 'VfVgeraldine..base_vflorence..module-0',
                   'properties': {'minCountInstances': 1, 'maxCountInstances': 1, 'initialCount': 1},
                   'commands': {},
                   'volumeGroupAllowed': true
                 }
               },
               'volumeGroups': {
-                'vf_vmee0..VfVmee..base_vmme..module-0': {
+                'vf_vgeraldine0..VfVgeraldine..base_vflorence..module-0': {
                   'uuid': 'a27f5cfc-7f12-4f99-af08-0af9c3885c87',
                   'invariantUuid': 'a6f9e51a-2b35-416a-ae15-15e58d61f36d',
                   'customizationUuid': 'f8c040f1-7e51-4a11-aca8-acf256cfd861',
                   'description': null,
-                  'name': 'VfVmee..base_vmme..module-0',
+                  'name': 'VfVgeraldine..base_vflorence..module-0',
                   'version': '2',
-                  'modelCustomizationName': 'VfVmee..base_vmme..module-0',
+                  'modelCustomizationName': 'VfVgeraldine..base_vflorence..module-0',
                   'properties': {'minCountInstances': 1, 'maxCountInstances': 1, 'initialCount': 1}
                 }
               }
@@ -370,52 +521,52 @@ describe('Available Models Tree Service', () => {
           },
           'serviceProxies': {},
           'vfModules': {
-            'vf_vmee0..VfVmee..vmme_vlc..module-1': {
+            'vf_vgeraldine0..VfVgeraldine..vflorence_vlc..module-1': {
               'uuid': '522159d5-d6e0-4c2a-aa44-5a542a12a830',
               'invariantUuid': '98a7c88b-b577-476a-90e4-e25a5871e02b',
               'customizationUuid': '55b1be94-671a-403e-a26c-667e9c47d091',
               'description': null,
-              'name': 'VfVmee..vmme_vlc..module-1',
+              'name': 'VfVgeraldine..vflorence_vlc..module-1',
               'version': '2',
-              'modelCustomizationName': 'VfVmee..vmme_vlc..module-1',
+              'modelCustomizationName': 'VfVgeraldine..vflorence_vlc..module-1',
               'properties': {'minCountInstances': 0, 'maxCountInstances': null, 'initialCount': 0},
               'commands': {},
               'volumeGroupAllowed': false
             },
-            'vf_vmee0..VfVmee..vmme_gpb..module-2': {
+            'vf_vgeraldine0..VfVgeraldine..vflorence_gpb..module-2': {
               'uuid': '41708296-e443-4c71-953f-d9a010f059e1',
               'invariantUuid': '1cca90b8-3490-495e-87da-3f3e4c57d5b9',
               'customizationUuid': '6add59e0-7fe1-4bc4-af48-f8812422ae7c',
               'description': null,
-              'name': 'VfVmee..vmme_gpb..module-2',
+              'name': 'VfVgeraldine..vflorence_gpb..module-2',
               'version': '2',
-              'modelCustomizationName': 'VfVmee..vmme_gpb..module-2',
+              'modelCustomizationName': 'VfVgeraldine..vflorence_gpb..module-2',
               'properties': {'minCountInstances': 0, 'maxCountInstances': null, 'initialCount': 0},
               'commands': {},
               'volumeGroupAllowed': false
             },
-            'vf_vmee0..VfVmee..base_vmme..module-0': {
+            'vf_vgeraldine0..VfVgeraldine..base_vflorence..module-0': {
               'uuid': 'a27f5cfc-7f12-4f99-af08-0af9c3885c87',
               'invariantUuid': 'a6f9e51a-2b35-416a-ae15-15e58d61f36d',
               'customizationUuid': 'f8c040f1-7e51-4a11-aca8-acf256cfd861',
               'description': null,
-              'name': 'VfVmee..base_vmme..module-0',
+              'name': 'VfVgeraldine..base_vflorence..module-0',
               'version': '2',
-              'modelCustomizationName': 'VfVmee..base_vmme..module-0',
+              'modelCustomizationName': 'VfVgeraldine..base_vflorence..module-0',
               'properties': {'minCountInstances': 1, 'maxCountInstances': 1, 'initialCount': 1},
               'commands': {},
               'volumeGroupAllowed': true
             }
           },
           'volumeGroups': {
-            'vf_vmee0..VfVmee..base_vmme..module-0': {
+            'vf_vgeraldine0..VfVgeraldine..base_vflorence..module-0': {
               'uuid': 'a27f5cfc-7f12-4f99-af08-0af9c3885c87',
               'invariantUuid': 'a6f9e51a-2b35-416a-ae15-15e58d61f36d',
               'customizationUuid': 'f8c040f1-7e51-4a11-aca8-acf256cfd861',
               'description': null,
-              'name': 'VfVmee..base_vmme..module-0',
+              'name': 'VfVgeraldine..base_vflorence..module-0',
               'version': '2',
-              'modelCustomizationName': 'VfVmee..base_vmme..module-0',
+              'modelCustomizationName': 'VfVgeraldine..base_vflorence..module-0',
               'properties': {'minCountInstances': 1, 'maxCountInstances': 1, 'initialCount': 1}
             }
           },
index dc72f8f..39a3c50 100644 (file)
@@ -7,6 +7,8 @@ import {MessageBoxService} from "../../../shared/components/messageBox/messageBo
 import * as _ from "lodash";
 import { SdcUiCommon} from "onap-ui-angular";
 import {SharedTreeService} from "../objectsToTree/shared.tree.service";
+import {VrfModel} from "../../../shared/models/vrfModel";
+import {clearAllGenericModalhelper} from "../../../shared/storeUtil/utils/global/global.actions";
 
 export class AvailableNodeIcons {
    addIcon: boolean;
@@ -16,6 +18,7 @@ export class AvailableNodeIcons {
     this.addIcon = addIcon;
     this.vIcon = vIcon;
   }
+
 }
 
 @Injectable()
@@ -73,4 +76,20 @@ export class AvailableModelsTreeService {
     MessageBoxService.openModal.next(messageBoxData);
   }
 
+  shouldOpenVRFModal(nodes, serviceModelId: string , service)  {
+    for(const node of nodes){
+      if(node.type === 'VRF' && service.serviceInstance[serviceModelId].existingVRFCounterMap && !service.serviceInstance[serviceModelId].existingVRFCounterMap[node.modelUniqueId]){
+        const vrfModel : VrfModel = node.getModel(node.name, node, service.serviceInstance[serviceModelId]);
+        const vrfCounter : number = service.serviceInstance[serviceModelId].existingVRFCounterMap[node.modelUniqueId];
+        console.log('vrfCounter', vrfCounter);
+        if(vrfModel.min > 0 && (_.isNil(vrfCounter) || vrfCounter === 0)){
+          node.data = node;
+          this.store.dispatch(clearAllGenericModalhelper());
+          return node;
+        }
+      }
+    }
+    return null;
+  }
+
 }
index 4c5bf67..d06dfbe 100644 (file)
@@ -7,11 +7,11 @@ export class ComponentInfoModel {
   title: string;
 
 
-  constructor(type: ComponentInfoType, modelInfoItems: ModelInformationItem[], additionalInfoItems: ModelInformationItem[], isInstance:boolean=true) {
+  constructor(type: ComponentInfoType, modelInfoItems: ModelInformationItem[], additionalInfoItems: ModelInformationItem[], isInstance:boolean = true) {
     this.type = type;
     this.modelInfoItems = modelInfoItems;
     this.additionalInfoItems = additionalInfoItems;
-    this.title=this.type+(isInstance ? " Instance" : "");
+    this.title = this.type + (isInstance ? " Instance" : "");
   }
 }
 
@@ -22,5 +22,11 @@ export enum ComponentInfoType {
   NETWORK = "Network",
   VFMODULE = "VFModule",
   VNFGROUP = "Group",
-  VNFMEMBER = "VNF"
+  VNFMEMBER = "VNF",
+  CONFIGURATION = "Configuration",
+  COLLECTION_RESOURCE  = "Collection Resource",
+  VRF = "VRF",
+  PNF = "PNF",
+  VPN = "VPN",
+  NCF = "Network Collection Function"
 }
index 2d77356..62e53ed 100644 (file)
@@ -26,7 +26,6 @@
     font-family: OpenSans-Regular;
     font-size: 12px;
     color: #5A5A5A;
-    text-transform: capitalize;
   }
 
   .model-item-value {
@@ -34,6 +33,7 @@
     font-size: 14px;
     color: #191919;
     line-height: 16px;
+    word-break: break-word;
   }
 }
 
index c69ab52..d9fa985 100644 (file)
@@ -7,8 +7,8 @@ import {ActivatedRoute} from "@angular/router";
 @Component({
   selector: 'component-info',
   templateUrl: './component-info.component.html',
-  styleUrls: ['./component-info.component.scss'],
-  changeDetection: ChangeDetectionStrategy.OnPush
+  styleUrls: ['./component-info.component.scss']//,
+  // changeDetection: ChangeDetectionStrategy.OnPush
 })
 export class ComponentInfoComponent implements OnInit {
   componentInfoModel: ComponentInfoModel = null;
index 8b0da40..6671e2e 100644 (file)
@@ -7,6 +7,7 @@ import {HttpClient, HttpHandler} from '@angular/common/http';
 import {FeatureFlagsService} from '../../../shared/services/featureFlag/feature-flags.service';
 import {ModelInformationItem} from "../../../shared/components/model-information/model-information.component";
 import {ComponentInfoModel, ComponentInfoType} from "./component-info-model";
+import {SharedTreeService} from "../objectsToTree/shared.tree.service";
 
 class MockAppStore<T> {
   getState() {
@@ -58,6 +59,7 @@ beforeAll(done => (async () => {
       HttpHandler,
       FeatureFlagsService,
       ComponentInfoService,
+      SharedTreeService,
       {provide: NgRedux, useClass: MockAppStore},
       MockNgRedux]
   });
@@ -77,12 +79,12 @@ describe('Service Info Data', () => {
     let actualServiceInfo = service.getInfoForService('1a80c596-27e5-4ca9-b5bb-e03a7fd4c0fd');
     let expectedServiceInfo = [
       ModelInformationItem.createInstance('Type', 'pnf'),
-      ModelInformationItem.createInstance('Model Version', '1.0'),
-      ModelInformationItem.createInstance('Model Customization ID', ''),
+      ModelInformationItem.createInstance('Model version', '1.0'),
+      ModelInformationItem.createInstance('Model customization ID', ''),
       ModelInformationItem.createInstance('Instance ID', '2f7130e8-27d6-4c01-8988-60ca67e8dae4'),
-      ModelInformationItem.createInstance('Subscriber Name', 'SILVIA ROBBINS'),
-      ModelInformationItem.createInstance('Service Type', 'TYLER SILVIA'),
-      ModelInformationItem.createInstance('Service Role', 'Testing'),
+      ModelInformationItem.createInstance('Subscriber name', 'SILVIA ROBBINS'),
+      ModelInformationItem.createInstance('Service type', 'TYLER SILVIA'),
+      ModelInformationItem.createInstance('Service role', 'Testing'),
     ];
     expect(actualServiceInfo).toEqual(new ComponentInfoModel(ComponentInfoType.SERVICE, expectedServiceInfo, []));
 
index 9318b3a..32610d9 100644 (file)
@@ -6,36 +6,27 @@ import {Subject} from "rxjs";
 import {ComponentInfoModel, ComponentInfoType} from "./component-info-model";
 import {ModelInformationItem} from "../../../shared/components/model-information/model-information.component";
 import * as _ from 'lodash';
+import {SharedTreeService} from "../objectsToTree/shared.tree.service";
 @Injectable()
 export class ComponentInfoService {
   static triggerComponentInfoChange: Subject<ComponentInfoModel> = new Subject<ComponentInfoModel>();
-  constructor( private _store: NgRedux<AppState>, private _aaiService : AaiService){ }
+  constructor( private _store: NgRedux<AppState>, private _aaiService : AaiService, private _sharedTreeService : SharedTreeService){ }
 
   getInfoForService(serviceModelId):ComponentInfoModel {
     if(_.isNil(this._store.getState().service.serviceHierarchy[serviceModelId])) return null;
 
-    let serviceHierarchy = this._store.getState().service.serviceHierarchy[serviceModelId].service;
+    const serviceHierarchy = this._store.getState().service.serviceHierarchy[serviceModelId].service;
     const serviceInstance = this._store.getState().service.serviceInstance[serviceModelId];
     const modelInfoItems: ModelInformationItem[] = [
-     ModelInformationItem.createInstance("Subscriber Name",this._aaiService.extractSubscriberNameBySubscriberId(serviceInstance.globalSubscriberId)),
-     ModelInformationItem.createInstance("Service Type",serviceInstance.subscriptionServiceType),
-     ModelInformationItem.createInstance("Service Role",serviceHierarchy.serviceRole),
+       ModelInformationItem.createInstance("Type", serviceHierarchy.serviceType),
+       ModelInformationItem.createInstance("Model version", serviceHierarchy.version ),
+       ModelInformationItem.createInstance("Model customization ID", serviceHierarchy.customizationUuid ),
+       ModelInformationItem.createInstance("Instance ID", serviceInstance.instanceId),
+       ModelInformationItem.createInstance("Subscriber name",this._aaiService.extractSubscriberNameBySubscriberId(serviceInstance.globalSubscriberId)),
+       ModelInformationItem.createInstance("Service type",serviceInstance.subscriptionServiceType),
+       ModelInformationItem.createInstance("Service role",serviceHierarchy.serviceRole),
     ];
-    serviceHierarchy.type = serviceHierarchy.serviceType;
-    return this.addGeneralInfoItems(modelInfoItems, ComponentInfoType.SERVICE, serviceHierarchy, serviceInstance );
-  }
-
 
-  addGeneralInfoItems(modelInfoSpecificItems: ModelInformationItem[], type: ComponentInfoType, model, instance) {
-    let modelInfoItems: ModelInformationItem[] = [
-      ModelInformationItem.createInstance("Type", (model && model.type) ? model.type : ((instance && instance.modelInfo) ? instance.modelInfo.modelType : null)),
-      ModelInformationItem.createInstance("Model Version", model ? model.version : null),
-      ModelInformationItem.createInstance("Model Customization ID", model ? model.customizationUuid : null),
-      ModelInformationItem.createInstance("Instance ID", instance ? instance.instanceId : null),
-      ModelInformationItem.createInstance("In Maintenance", instance? instance.inMaint : null),
-    ];
-    modelInfoItems = modelInfoItems.concat(modelInfoSpecificItems);
-    const modelInfoItemsWithoutEmpty = _.filter(modelInfoItems, function(item){ return !item.values.every(_.isNil)});
-    return new ComponentInfoModel(type, modelInfoItemsWithoutEmpty, []);
+    return this._sharedTreeService.getComponentInfoModelByModelInformationItems(modelInfoItems, ComponentInfoType.SERVICE, serviceInstance );
   }
 }
index f02ed62..4680760 100644 (file)
@@ -10,7 +10,7 @@
               </svg-icon>
     </span>
 
-    <div class="header-col middleDetails" style="padding-top: 5px;padding-left: 13px;line-height: 100%;" *ngIf="isServiceFailed">
+    <div class="header-col middleDetails" style="padding-top: 7px;padding-left: 13px;line-height: 100%;" *ngIf="isServiceFailed">
       <custom-popover class="failed-popover-wrap" [value]= "serviceStatusMessage" [placement]="'bottom'" [popoverType]="'error'">
         <span [attr.data-tests-id]="'service-failed-msg'" class="failed-msg labelPosition" >Failed</span>
       </custom-popover>
@@ -22,7 +22,9 @@
     <div class="header-col middleDetails notShowOnCreateMode"
          style="padding-top: 0px;padding-left: 13px;line-height: 100%;">
       <span [attr.data-tests-id]="'orchStatusLabel'" class="service-instance-label labelPosition">Orch Status:</span>
-      <span [attr.data-tests-id]="'orchStatusValue'" class="orch-status-value">{{serviceOrchStatus}}</span>
+      <span [attr.data-tests-id]="'orchStatusValue'"
+            [ngClass]="{'tag-status-value' :serviceOrchStatus?.toLowerCase()!= 'active'}"
+            class="orch-status-value">{{serviceOrchStatus}}</span>
     </div>
     <div class="quantity-container header-col middleDetails"
          style="padding-top: 0px;padding-left: 13px;line-height: 100%;"
@@ -38,6 +40,8 @@
 
 
   <div class="right-header">
+    <span class="action-status-type-header delete" [attr.data-tests-id]="'delete-status-type-header'" *ngIf="isDeleted === true">Delete</span>
+    <span class="action-status-type-header resume" [attr.data-tests-id]="'resume-status-type-header'" *ngIf="isResume === true">Resume</span>
     <span class="menu-container notShowOnViewMode notShowOnRetryMode">
       <span [attr.data-tests-id]="'openMenuBtn'" class="icon-browse" (click)="onContextMenu($event)"></span>
       <context-menu>
@@ -46,7 +50,7 @@
             <span class="icon-edit"></span>Edit</div>
         </ng-template>
         <ng-template *ngIf="mode === 'EDIT'" contextMenuItem
-                     (execute)="isDeleted=!isDeleted; drawingBoardHeaderService.deleteService(serviceModelId,isDeleted)">
+                     (execute)="onDeleteUndoDeleteClick()">
           <div [attr.data-tests-id]="'context-menu-header-delete-item'"><span class="icon-trash"></span>{{isDeleted ? 'Undo delete': 'Delete'}}</div>
         </ng-template>
         <ng-template *ngIf="mode !== 'CREATE'" contextMenuItem
                 </svg-icon></div>
                 <div style="padding-left: 12px;">Show Audit Info</div>
         </ng-template>
+        <ng-template *ngIf="drawingBoardHeaderService?.showResumeService(serviceModelId)" contextMenuItem
+                     (execute)="onResumeUndoResumeClick()">
+          <div [attr.data-tests-id]="'context-menu-header-resume-item'"><span class="icon-trash"></span>{{isResume ? 'Undo resume': 'Resume'}}</div>
+        </ng-template>
       </context-menu>
     </span>
     <button [disabled]="drawingBoardHeaderService?.deployShouldBeDisabled(serviceModelId, mode)"
index 1242f94..353c115 100644 (file)
         font-family: OpenSans-Regular;
         font-size: 14px;
         color: #191919;
+        &.tag-status-value {
+          background: #009fdb;
+          color: white;
+          border-radius: 2px;
+          text-align: center;
+          padding: 5px;
+        }
       }
       .scale-value {
         font-family: OpenSans-Regular;
         height: 45px;
       }
     }
+
     .right-header {
       display: flex;
       align-items: center;
+      .action-status-type-header {
+          background: transparent;
+          font-family: OpenSans-SemiBold;
+          font-size: 12px;
+          border-radius: 50px;
+          border: 1px solid gray;
+          padding: 5px 20px;
+          margin-right: 10px;
+        &.delete {
+          color: red;
+        }
+        &.resume {
+          color: #009fdb;
+        }
+      }
       .quantity-container {
         .quantity-label {
           padding-left: 10px;
index 6e43915..51f9053 100644 (file)
@@ -39,6 +39,7 @@ export class DrawingBoardHeader {
   mode : DrawingBoardModes = DrawingBoardModes.CREATE;
   serviceOrchStatus: string;
   isDeleted: boolean = false;
+  isResume: boolean = false;
   store : NgRedux<AppState>;
   drawingBoardPermissions : DrawingBoardPermissions;
   drawingBoardHeaderService : DrawingBoardHeaderService;
@@ -122,7 +123,7 @@ export class DrawingBoardHeader {
       type: PopupType.SERVICE,
       uuidData: <any>{
         type : PopupType.SERVICE,
-        isMacro : this.store.getState().service.serviceHierarchy[this.serviceModelId].service.instantiationType === 'Macro',
+        isMacro : this.store.getState().service.serviceHierarchy[this.serviceModelId].service.vidNotions.instantiationType === 'Macro',
         serviceId: this.serviceModelId,
         popupService: this._servicePopupService
       },
@@ -130,6 +131,32 @@ export class DrawingBoardHeader {
     });
   }
 
+  onDeleteUndoDeleteClick(){
+    this.cancelResume(this.serviceModelId);
+    this.isDeleted = !this.isDeleted;
+    this._drawingBoardHeaderService.deleteService(this.serviceModelId, this.isDeleted)
+  }
+
+  onResumeUndoResumeClick(){
+    this.cancelDelete(this.serviceModelId);
+    this.isResume = !this.isResume;
+    this._drawingBoardHeaderService.toggleResumeService(this.serviceModelId, this.isResume);
+  }
+
+  cancelDelete(serviceModelId: string) {
+    if (this.isDeleted) {
+      this.isDeleted = false;
+      this._drawingBoardHeaderService.deleteService(serviceModelId,this.isDeleted);
+    }
+  }
+
+  cancelResume(serviceModelId: string) {
+    if (this.isResume) {
+      this.isResume = false;
+      this._drawingBoardHeaderService.toggleResumeService(serviceModelId,this.isResume);
+    }
+  }
+
   extractOwningEntityNameAccordingtoId(id:String): string {
     let owningEntityName;
     _.forEach(this.store.getState().service.categoryParameters.owningEntityList,(owningEntity: OwningEntity) => {
index bcf6753..76fc28a 100644 (file)
@@ -85,7 +85,7 @@ describe('Generate path to old View/Edit ', () => {
   });
 
   test('deployShouldBeDisabled with validationCounter greater then 0',()=>{
-    jest.spyOn(store, 'getState').mockReturnValue({
+    jest.spyOn(store, 'getState').mockReturnValue(<any>{
       service: {
         serviceInstance : {
           'serviceInstanceId' : {
@@ -94,12 +94,12 @@ describe('Generate path to old View/Edit ', () => {
         }
       }
     });
-    let result = service.deployShouldBeDisabled("serviceInstanceId");
+    let result = service.deployShouldBeDisabled("serviceInstanceId", DrawingBoardModes.RETRY_EDIT);
     expect(result).toBeTruthy();
   });
 
   test('deployShouldBeDisabled with validationCounter is 0 and not dirty',()=>{
-    jest.spyOn(store, 'getState').mockReturnValue({
+    jest.spyOn(store, 'getState').mockReturnValue(<any>{
       service: {
         serviceInstance : {
           'serviceInstanceId' : {
@@ -109,12 +109,12 @@ describe('Generate path to old View/Edit ', () => {
         }
       }
     });
-    let result = service.deployShouldBeDisabled("serviceInstanceId");
+    let result = service.deployShouldBeDisabled("serviceInstanceId", DrawingBoardModes.RETRY_EDIT);
     expect(result).toBeFalsy();
   });
 
   test('deployShouldBeDisabled with validationCounter is 0 and dirty',()=>{
-    jest.spyOn(store, 'getState').mockReturnValue({
+    jest.spyOn(store, 'getState').mockReturnValue(<any>{
       service: {
         serviceInstance : {
           'serviceInstanceId' : {
@@ -125,12 +125,12 @@ describe('Generate path to old View/Edit ', () => {
         }
       }
     });
-    let result = service.deployShouldBeDisabled("serviceInstanceId");
+    let result = service.deployShouldBeDisabled("serviceInstanceId", DrawingBoardModes.RETRY_EDIT);
     expect(result).not.toBeTruthy();
   });
 
   test('deployShouldBeDisabled with validationCounter is 0 and not and action is None and dirty',()=>{
-    jest.spyOn(store, 'getState').mockReturnValue({
+    jest.spyOn(store, 'getState').mockReturnValue(<any>{
       service: {
         serviceInstance : {
           'serviceInstanceId' : {
@@ -141,7 +141,7 @@ describe('Generate path to old View/Edit ', () => {
         }
       }
     });
-    let result = service.deployShouldBeDisabled("serviceInstanceId");
+    let result = service.deployShouldBeDisabled("serviceInstanceId", DrawingBoardModes.RETRY_EDIT);
     expect(result).not.toBeTruthy();
   });
 
@@ -157,8 +157,8 @@ describe('Generate path to old View/Edit ', () => {
     expect(result).toEqual('REDEPLOY');
   });
   test('getButtonText',()=>{
-    expect(service.getButtonText("VIEW")).toEqual('EDIT');
-    expect(service.getButtonText("RETRY")).toEqual('REDEPLOY');
+    expect(service.getButtonText(DrawingBoardModes.VIEW)).toEqual('EDIT');
+    expect(service.getButtonText(DrawingBoardModes.RETRY)).toEqual('REDEPLOY');
 
   });
   const showEditServiceDataProvider = [
@@ -169,7 +169,7 @@ describe('Generate path to old View/Edit ', () => {
     ['None action EDIT mode',DrawingBoardModes.EDIT,  ServiceInstanceActions.None, false],
     ['None action RETRY_EDIT mode', DrawingBoardModes.RETRY_EDIT, ServiceInstanceActions.None, false]];
   each(showEditServiceDataProvider).test('showEditService service with %s', (description, mode, action, enabled) => {
-    jest.spyOn(store, 'getState').mockReturnValue({
+    jest.spyOn(store, 'getState').mockReturnValue(<any>{
       service: {
         serviceInstance : {
           'serviceInstanceId' : {
@@ -181,4 +181,49 @@ describe('Generate path to old View/Edit ', () => {
     expect(service.showEditService(mode, 'serviceInstanceId')).toBe(enabled);
 
   });
+
+  const showResumeServiceDataProvider = [
+    ['all conditions of resume- should show resume',true, 'MACRO', 'VPE', 'AssiGNed', true],
+    ['flag is disabled- should not show resume ',false, 'MACRO', 'VPE', 'AssiGNed', false],
+    ['transport service (PNF)- should not show resume', true, 'Macro', 'transport', 'Assigned', false],
+    ['instantiationType is a-la-carte- should not show resume', true, 'ALaCarte', 'VPE', 'Assigned', false],
+    ['orchestration Status is not assigned- should not show resume', true, 'Macro', 'VPE', 'Created', false],
+    ['orchestration Status is Inventoried - should show resume', true, 'Macro', 'VPE', 'iNventOriEd', true]
+  ];
+
+  each(showResumeServiceDataProvider).test('showResumeService when %s', (description, flagResumeMacroService,instantiationType, subscriptionServiceType, orchStatus, shouldShowResumeService) => {
+    jest.spyOn(store, 'getState').mockReturnValue(<any>{
+      global: {
+        flags:{
+          'FLAG_1908_RESUME_MACRO_SERVICE': flagResumeMacroService
+        }
+      },
+      service: {
+        serviceInstance : {
+          'serviceModelId' : {
+            'vidNotions': {
+              'instantiationType': instantiationType
+            },
+            'subscriptionServiceType':subscriptionServiceType,
+            'orchStatus': orchStatus
+          }
+        }
+      }
+    });
+    expect(service.showResumeService('serviceModelId')).toBe(shouldShowResumeService);
+
+  });
+
+
+  const toggleResumeServiceDataProvider = [
+    [ServiceInstanceActions.None, true],
+    [ServiceInstanceActions.Resume, false]
+  ];
+
+  each(toggleResumeServiceDataProvider).test('toggleResumeService - should call %s for resume/ undo Resume',(serviceAction, isResume)=>{
+    jest.spyOn(store, 'dispatch');
+    service.toggleResumeService("serviceInstanceId", isResume);
+    expect(store.dispatch).toHaveBeenCalledWith(addServiceAction("serviceInstanceId", serviceAction));
+  });
+
 });
index 946c5ca..7df2f3a 100644 (file)
@@ -11,6 +11,7 @@ import * as _ from 'lodash';
 import {ErrorMsgService} from "../../../shared/components/error-msg/error-msg.service";
 import {DrawingBoardModes} from "../drawing-board.modes";
 import {ServiceInstance} from "../../../shared/models/serviceInstance";
+import {FeatureFlagsService, Features} from "../../../shared/services/featureFlag/feature-flags.service";
 
 @Injectable()
 export class DrawingBoardHeaderService{
@@ -38,7 +39,13 @@ export class DrawingBoardHeaderService{
   showAuditInfo(serviceModelId) : void {
     let instance: ServiceInstance = this.store.getState().service.serviceInstance[serviceModelId];
     let model =  new ServiceModel(this.store.getState().service.serviceHierarchy[serviceModelId]);
-    AuditInfoModalComponent.openInstanceAuditInfoModal.next({instanceId : serviceModelId , type : 'SERVICE', model : model , instance : instance, trackById: instance.trackById});
+    AuditInfoModalComponent.openInstanceAuditInfoModal.next({instanceId : serviceModelId , type : 'SERVICE', model : model , instance : instance});
+  }
+
+  toggleResumeService(serviceModelId, isResume: boolean) : void {
+    const action: ServiceInstanceActions = isResume ? ServiceInstanceActions.Resume : ServiceInstanceActions.None;
+    this.store.dispatch(addServiceAction(serviceModelId, action));
+
   }
 
 
@@ -49,7 +56,7 @@ export class DrawingBoardHeaderService{
     const serviceInstance = this.store.getState().service.serviceInstance[serviceInstanceId];
     if(!_.isNil(serviceInstance)){
       const validationCounter = serviceInstance.validationCounter;
-      if (!_.isNil(this.errorMsgService.errorMsgObject)&& mode !== DrawingBoardModes.RETRY_EDIT) return true;
+      if (!_.isNil(this.errorMsgService.errorMsgObject) && mode !== DrawingBoardModes.RETRY_EDIT) return true;
       if(validationCounter > 0) return true;
       if(serviceInstance.action !== ServiceInstanceActions.None) return false;
       if(mode === DrawingBoardModes.RETRY_EDIT) return false;
@@ -83,4 +90,18 @@ export class DrawingBoardHeaderService{
     return mode === DrawingBoardModes.CREATE || ((mode === DrawingBoardModes.RETRY_EDIT || mode === DrawingBoardModes.EDIT)&&
       !_.isNil(serviceInstance) && !_.isNil(serviceInstance[serviceModelId])&& serviceInstance[serviceModelId].action === ServiceInstanceActions.Create);
   }
+
+  showResumeService(serviceModelId: string): boolean {
+    const serviceInstance: ServiceInstance = !_.isNil(this.store.getState().service.serviceInstance)? this.store.getState().service.serviceInstance[serviceModelId] : null;
+    if (serviceInstance)
+    {
+      return FeatureFlagsService.getFlagState(Features.FLAG_1908_RESUME_MACRO_SERVICE, this.store) &&
+        serviceInstance.vidNotions.instantiationType.toLowerCase() === "macro" &&
+        serviceInstance.subscriptionServiceType.toLowerCase() !== "transport" &&
+        serviceInstance.orchStatus &&
+        (serviceInstance.orchStatus.toLowerCase() === "assigned" ||
+          serviceInstance.orchStatus.toLowerCase() === "inventoried");
+    }
+    return false;
+  }
 }
index 1221cef..8b7f1a4 100644 (file)
@@ -83,11 +83,11 @@ describe('Drag and drop service', () => {
       "action": "Create",
       "inMaint": false,
       "name": "yoav2_001",
-      "modelName": "VF_vMee 0",
+      "modelName": "VF_vGeraldine 0",
       "type": "VF",
       "isEcompGeneratedNaming": true,
-      "networkStoreKey": "VF_vMee 0:0001",
-      "vnfStoreKey": "VF_vMee 0:0001",
+      "networkStoreKey": "VF_vGeraldine 0:0001",
+      "vnfStoreKey": "VF_vGeraldine 0:0001",
       "typeName": "VNF",
       "menuActions": {"edit": {}, "showAuditInfo": {}, "duplicate": {}, "remove": {}, "delete": {}, "undoDelete": {}},
       "isFailed": false,
@@ -106,11 +106,11 @@ describe('Drag and drop service', () => {
         "id": 6654971919519,
         "action": "Create",
         "name": "VFModule1",
-        "modelName": "vf_vmee0..VfVmee..base_vmme..module-0",
+        "modelName": "vf_vgeraldine0..VfVgeraldine..base_vflorence..module-0",
         "type": "VFmodule",
         "isEcompGeneratedNaming": true,
         "dynamicInputs": [],
-        "dynamicModelName": "vf_vmee0..VfVmee..base_vmme..module-0bykqx",
+        "dynamicModelName": "vf_vgeraldine0..VfVgeraldine..base_vflorence..module-0bykqx",
         "typeName": "M",
         "menuActions": {"edit": {}, "showAuditInfo": {}, "remove": {}, "delete": {}, "undoDelete": {}},
         "isFailed": false,
@@ -130,11 +130,11 @@ describe('Drag and drop service', () => {
         "id": 987761655742,
         "action": "Create",
         "name": "VNFModule3",
-        "modelName": "vf_vmee0..VfVmee..vmme_gpb..module-2",
+        "modelName": "vf_vgeraldine0..VfVgeraldine..vflorence_gpb..module-2",
         "type": "VFmodule",
         "isEcompGeneratedNaming": true,
         "dynamicInputs": [],
-        "dynamicModelName": "vf_vmee0..VfVmee..vmme_gpb..module-2fjrrc",
+        "dynamicModelName": "vf_vgeraldine0..VfVgeraldine..vflorence_gpb..module-2fjrrc",
         "typeName": "M",
         "menuActions": {"edit": {}, "showAuditInfo": {}, "remove": {}, "delete": {}, "undoDelete": {}},
         "isFailed": false,
@@ -154,11 +154,11 @@ describe('Drag and drop service', () => {
         "id": 873798901625,
         "action": "Create",
         "name": "VFModule2",
-        "modelName": "vf_vmee0..VfVmee..vmme_vlc..module-1",
+        "modelName": "vf_vgeraldine0..VfVgeraldine..vflorence_vlc..module-1",
         "type": "VFmodule",
         "isEcompGeneratedNaming": true,
         "dynamicInputs": [],
-        "dynamicModelName": "vf_vmee0..VfVmee..vmme_vlc..module-1djjni",
+        "dynamicModelName": "vf_vgeraldine0..VfVgeraldine..vflorence_vlc..module-1djjni",
         "typeName": "M",
         "menuActions": {"edit": {}, "showAuditInfo": {}, "remove": {}, "delete": {}, "undoDelete": {}},
         "isFailed": false,
@@ -181,11 +181,11 @@ describe('Drag and drop service', () => {
       "action": "Create",
       "inMaint": false,
       "name": "yoav2",
-      "modelName": "VF_vMee 0",
+      "modelName": "VF_vGeraldine 0",
       "type": "VF",
       "isEcompGeneratedNaming": true,
-      "networkStoreKey": "VF_vMee 0",
-      "vnfStoreKey": "VF_vMee 0",
+      "networkStoreKey": "VF_vGeraldine 0",
+      "vnfStoreKey": "VF_vGeraldine 0",
       "typeName": "VNF",
       "menuActions": {"edit": {}, "showAuditInfo": {}, "duplicate": {}, "remove": {}, "delete": {}, "undoDelete": {}},
       "isFailed": false,
index d071598..6be5036 100644 (file)
@@ -1,4 +1,4 @@
-import {AfterViewInit, Component, EventEmitter, OnInit, Output, ViewChild,} from '@angular/core';
+import {AfterViewInit, Component, EventEmitter, Input, OnInit, Output, ViewChild,} from '@angular/core';
 import {ContextMenuComponent, ContextMenuService} from 'ngx-contextmenu';
 import {Constants} from '../../../shared/utils/constants';
 import {IDType, ITreeNode} from "angular-tree-component/dist/defs/api";
@@ -24,7 +24,10 @@ import * as _ from 'lodash';
 import {ErrorMsgService} from "../../../shared/components/error-msg/error-msg.service";
 import {DragAndDropService} from "./dragAndDrop/dragAndDrop.service";
 import {FeatureFlagsService, Features} from "../../../shared/services/featureFlag/feature-flags.service";
-import {PopoverPlacement} from "../../../shared/components/popover/popover.component";
+import {ComponentInfoService} from "../component-info/component-info.service";
+import {ComponentInfoModel} from "../component-info/component-info-model";
+import {ObjectToModelTreeService} from "../objectsToTree/objectToModelTree/objectToModelTree.service";
+import {DrawingBoardModes} from "../drawing-board.modes";
 
 @Component({
   selector: 'drawing-board-tree',
@@ -37,10 +40,14 @@ export class DrawingBoardTreeComponent implements OnInit, AfterViewInit {
   _store: NgRedux<AppState>;
   duplicateService: DuplicateService;
   drawingBoardTreeService: DrawingBoardTreeService;
+  objectToModelTreeService : ObjectToModelTreeService;
+  objectToInstanceTreeService : ObjectToInstanceTreeService;
   errorMsgService: ErrorMsgService;
   isFilterEnabled: boolean = false;
   filterValue: string = '';
   contextMenuOptions: TreeNodeContextMenuModel[];
+
+  @Input() pageMode : DrawingBoardModes;
   static triggerDeleteActionService: Subject<string> = new Subject<string>();
   static triggerUndoDeleteActionService: Subject<string> = new Subject<string>();
   static triggerreCalculateIsDirty: Subject<string> = new Subject<string>();
@@ -62,13 +69,16 @@ export class DrawingBoardTreeComponent implements OnInit, AfterViewInit {
               private _highlightPipe: HighlightPipe,
               private _objectToInstanceTreeService: ObjectToInstanceTreeService,
               private _sharedTreeService: SharedTreeService,
-              private _dragAndDropService : DragAndDropService) {
+              private _dragAndDropService : DragAndDropService,
+              private _objectToModelTreeService : ObjectToModelTreeService,
+              private _componentInfoService: ComponentInfoService) {
 
     this.errorMsgService = _errorMsgService;
     this.duplicateService = _duplicateService;
     this.drawingBoardTreeService = _drawingBoardTreeService;
     this.contextMenuOptions = _drawingBoardTreeService.generateContextMenuOptions();
-
+    this.objectToModelTreeService = _objectToModelTreeService;
+    this.objectToInstanceTreeService = _objectToInstanceTreeService;
     DrawingBoardTreeComponent.triggerDeleteActionService.subscribe((serviceModelId) => {
       this._sharedTreeService.shouldShowDeleteInstanceWithChildrenModal(this.nodes, serviceModelId, (node, serviceModelId)=>{
         this.drawingBoardTreeService.deleteActionService(this.nodes, serviceModelId);
@@ -102,6 +112,10 @@ export class DrawingBoardTreeComponent implements OnInit, AfterViewInit {
     this.filterValue = updateData.filterValue;
   }
 
+  isLinkedInstance = (node) : boolean => {
+    return !_.isNil(node) && node.parentType === "VRF" || node.parentType === "VnfGroup";
+  };
+
   @Output()
   highlightNode: EventEmitter<number> = new EventEmitter<number>();
 
@@ -138,7 +152,7 @@ export class DrawingBoardTreeComponent implements OnInit, AfterViewInit {
 
   updateTree() {
     const serviceInstance = this.store.getState().service.serviceInstance[this.serviceModelId];
-    this.nodes = this._objectToInstanceTreeService.convertServiceInstanceToTreeData(serviceInstance, this.store.getState().service.serviceHierarchy[this.serviceModelId]);
+    this.nodes = this._objectToInstanceTreeService.convertServiceInstanceToTreeData(serviceInstance, this.store.getState().service.serviceHierarchy[this.serviceModelId]).filter((item) => item !== null);
     console.log('right nodes', this.nodes);
 
   }
@@ -194,7 +208,11 @@ export class DrawingBoardTreeComponent implements OnInit, AfterViewInit {
     this._sharedTreeService.setSelectedVNF(node);
     this.highlightNode.emit(node.data.modelUniqueId);
     if (FeatureFlagsService.getFlagState(Features.FLAG_1906_COMPONENT_INFO, this.store)) {
-      node.data.onSelectedNode(node);
+      const serviceHierarchy = this._store.getState().service.serviceHierarchy[this.serviceModelId];
+      const model = node.data.getModel(node.data.modelName, node.data, serviceHierarchy);
+      const modelInfoItems = node.data.getInfo(model, node.data);
+      const componentInfoModel: ComponentInfoModel = this._sharedTreeService.addGeneralInfoItems(modelInfoItems, node.data.componentInfoType, model, node.data);
+      ComponentInfoService.triggerComponentInfoChange.next(componentInfoModel);
     }
   }
 
index 8af909f..e1d88a6 100644 (file)
@@ -1,33 +1,54 @@
 <error-msg></error-msg>
 <div class="drawing-board-tree" style="height: calc(100vh - 55px);">
   <div *ngIf="nodes?.length == 0" style="text-align: center;    margin-top: 50px;">
-    <no-content-message-and-icon class="span-over"
+
+    <no-content-message-and-icon *ngIf="objectToModelTreeService.numberOfPlusButton != 0" class="span-over"
                                  data-title="Please add objects (VNFs, network, modules etc.)"
                                  title2="from the left tree to design the service instance"
                                  subtitle="Once done, click Deploy to start instantiation"
                                  iconPath="./assets/img/UPLOAD.svg"
                                  iconClass="upload-icon-service-planing"></no-content-message-and-icon>
+
+    <no-content-message-and-icon *ngIf="objectToModelTreeService.numberOfPlusButton == 0" class="span-over"
+                                 data-title="No objects to add in this service instance."
+                                 title2=""
+                                 subtitle="Click Deploy to start instantiation"
+                                 iconPath="./assets/img/UPLOAD.svg"
+                                 iconClass="upload-icon-service-planing"></no-content-message-and-icon>
   </div>
   <div class="tree-header" *ngIf="nodes?.length > 0">
     <div class="title-tree">Instance:</div>
     <search-component (updateNodes)="updateNodes($event)"
-                        [nodes]="nodes" [tree]="tree"
-                        [inputTestId]="'search-right-tree'"
-                        *ngIf="drawingBoardTreeService.isViewEditFlagTrue()"></search-component>
+                      [nodes]="nodes" [tree]="tree"
+                      [inputTestId]="'search-right-tree'"
+                      *ngIf="drawingBoardTreeService.isViewEditFlagTrue()"></search-component>
   </div>
   <tree-root [attr.data-tests-id]="'drawing-board-tree'" #tree [nodes]="nodes" [options]="options"
              id="drawing-board-tree">
 
-    <ng-template #treeNodeTemplate let-node let-index="index" >
-       <div [attr.id]="getNodeId(node)" [attr.data-tests-id]="'node-'+node.data.modelId +'-' +node.data.modelName" (click)="selectNode(node)" >
-         <custom-popover class="failed-popover-wrap" *ngIf= "node?.data?.isFailed"  [value]= "node?.data?.statusMessage" [placement]="'left'" [popoverType]="'error'">
-          <div class="failed-msg" [attr.data-tests-id]="'failed-error-message'" *ngIf= "node?.data?.isFailed">Failed</div>
-         </custom-popover>
-          <div class="instance-type" style="position: relative;">
-            <div *ngIf="node?.data?.action == 'Create'" class="notShowOnViewMode notShowOnCreateMode newIcon"></div>
-            <div><span title="{{node.data.type}}" [attr.data-tests-id]="'node-type-indicator'">{{node?.data?.typeName}}</span></div>
+    <ng-template #treeNodeTemplate let-node let-index="index">
+      <div class="main-row" [attr.id]="getNodeId(node)" [attr.data-tests-id]="'node-'+node.data.modelId +'-' +node.data.modelName"
+           (click)="selectNode(node)"
+           [ngClass]="{'isLinked' : isLinkedInstance(node?.data)}">
+        <custom-popover class="failed-popover-wrap" *ngIf="node?.data?.isFailed" [value]="node?.data?.statusMessage"
+                        [placement]="'left'" [popoverType]="'error'">
+          <div class="failed-msg" [attr.data-tests-id]="'failed-error-message'" *ngIf="node?.data?.isFailed">Failed
+          </div>
+        </custom-popover>
+        <div class="instance-type" style="position: relative;border: 1px solid #D2D2CD;">
+          <div *ngIf="node?.data?.action == 'Create'" class="notShowOnViewMode notShowOnCreateMode newIcon"></div>
+          <div><span title="{{node.data.type}}"
+                     [attr.data-tests-id]="'node-type-indicator'">{{node?.data?.typeName}}</span></div>
+          <div *ngIf="isLinkedInstance(node?.data)">
+            <svg-icon
+              [ngClass]="'link'"
+              class="icon-link"
+              [size]="'small'"
+              [name]="'link'">
+            </svg-icon>
           </div>
-          <div class="model-info">
+        </div>
+        <div class="model-info" [ngClass]="{'rightBorder' : pageMode === 'VIEW'}">
           <span class="header-info">
             <span class="property-name">
               <span class="auto-name"
               ></span>
             </span>
           </span>
-            <tree-node-header-properties
-              *ngIf="(node?.data?.action !== 'Create' || node?.data?.parentType === 'VnfGroup') && !node?.data?.isFailed"
-              [properties]="node.data.statusProperties"></tree-node-header-properties>
-          </div>
-          <div class="scaling invalid" *ngIf="node?.data?.errors?.scalingError" [attr.data-tests-id]="'scaling-policy'">
-            <span>Limit</span><span>{{node?.data?.limitMembers}}</span>
-          </div>
-          <div class="model-actions notShowOnViewMode">
+          <tree-node-header-properties
+            *ngIf="(node?.data?.action !== 'Create' || node?.data?.parentType === 'VnfGroup') && !node?.data?.isFailed"
+            [properties]="node.data.statusProperties"></tree-node-header-properties>
+        </div>
+        <div class="scaling invalid" *ngIf="node?.data?.errors?.scalingError" [attr.data-tests-id]="'scaling-policy'">
+          <span>Limit</span><span>{{node?.data?.limitMembers}}</span>
+        </div>
+        <div class="model-actions notShowOnViewMode ">
           <span class="icon-browse"
+                [ngClass]="{'isLinked' : isLinkedInstance(node?.data)}"
                 [attr.data-tests-id]="'node-'+node.data.modelId +'-' +node.data.modelName+'-menu-btn'"
                 (click)="onContextMenu($event, node)">
           <context-menu>
             </ng-template>
           </context-menu>
           </span>
-            <span
-              *ngIf="drawingBoardTreeService.isVNFMissingData(node, serviceModelId)"
-              tooltip="{{ missingDataTooltip }}"
-              tooltipPlacement="left"
-              [attr.data-tests-id]="'node-'+node.data.modelId +'-' +node.data.modelName+'-alert-icon'"
-              class="icon-alert" >
+          <span
+            *ngIf="drawingBoardTreeService.isVNFMissingData(node, serviceModelId)"
+            tooltip="{{ missingDataTooltip }}"
+            tooltipPlacement="left"
+            [attr.data-tests-id]="'node-'+node.data.modelId +'-' +node.data.modelName+'-alert-icon'"
+            class="icon-alert">
               <svg-icon
                 [mode]="'warning'"
                 [testId]="'icon-alert'"
                 [name]="'alert-triangle-o'">
               </svg-icon>
             </span>
+          <span *ngIf="drawingBoardTreeService.isVFModuleMissingData(node, serviceModelId)" class="icon-alert"
+                tooltip="{{ missingDataTooltip }}" tooltipPlacement="left"
+                [attr.data-tests-id]="'node-'+node.data.modelId +'-' +node.data.modelName+'-alert-icon'"></span>
+        </div>
 
-            <!--<span *ngIf="drawingBoardTreeService.isVNFMissingData(node, serviceModelId)" class="icon-alert"-->
-                  <!--tooltip="{{ missingDataTooltip }}" tooltipPlacement="left"-->
-                  <!--[attr.data-tests-id]="'node-'+node.data.modelId +'-' +node.data.modelName+'-alert-icon'"></span>-->
-            <span *ngIf="drawingBoardTreeService.isVFModuleMissingData(node, serviceModelId)" class="icon-alert"
-                  tooltip="{{ missingDataTooltip }}" tooltipPlacement="left"
-                  [attr.data-tests-id]="'node-'+node.data.modelId +'-' +node.data.modelName+'-alert-icon'"></span>
-          </div>
-        </div >
-      </ng-template>
+        <div class="action-status">
+          <span class="action-status-type delete" [attr.data-tests-id]="'delete-status-type'" [ngStyle]="{ 'opacity': node.data.action.split('_').pop() !== 'Delete' ? '0' : '1'}">Delete</span>
+        </div>
+
+      </div>
+    </ng-template>
   </tree-root>
 </div>
 
index be9f9f2..e08e69e 100644 (file)
   }
 }
 
+
+.icon-browse.isLinked {
+  display: none !important;
+}
+
 #RETRY_EDIT drawing-board-tree tree-node-collection > div,
 #RETRY drawing-board-tree tree-node-collection > div {
    margin-top: 0px;
@@ -98,11 +103,54 @@ drawing-board-tree {
             @include highlight-toggle-children;
             .node-content-wrapper-focused,
             .node-content-wrapper-active {
+              background: transparent !important;
+              .main-row {
+                //background-color: #E6F6FB;
+                //color: #009FDB;
+                //border-right: none !important;
+                //border: #009FDB 1px solid;
+              }
+              .instance-type {
+                background-color: #E6F6FB;
+                color: #009FDB;
+                border-right: none !important;
+                border: #009FDB 1px solid !important;
+              }
+
+              .isLinked {
+                .model-info {
+                  border-top: 1px #009FDB dashed !important;
+                  border-bottom: 1px #009FDB dashed !important;
+                }
+                .model-info.rightBorder {
+                  border-right: 1px #009FDB dashed !important ;
+                }
+              }
+              .model-info {
+                background-color: #E6F6FB;
+                color: #009FDB;
+                border-right: none !important;
+                border: #009FDB 1px solid;
+              }
+
+              .model-info.rightBorder {
+                border-right: #009FDB 1px solid !important;
+              }
+
+              .model-actions {
+                background-color: #E6F6FB;
+                color: #009FDB;
+                color: #009FDB;
+                border-left: none !important;
+                border: #009FDB 1px solid;
+              }
+
               @include highlight-toggle-children;
-              @include highlight(#E6F6FB, #009FDB);
               .property-name,.instance-type {
                 color: #009FDB !important;
                 position: relative;
+                background-color: #E6F6FB;
+                color: #009FDB !important;
               }
               .status-properties {
                 .status-property-value,.status-property-name {
@@ -119,7 +167,7 @@ drawing-board-tree {
       }
       & .tree-node-expanded {
         > tree-node-wrapper .node-wrapper {
-          box-shadow: 0 0px 2px rgba(90,90,90,0.24);
+
         }
       }
 
@@ -136,7 +184,7 @@ drawing-board-tree {
       }
 
       .tree-node.tree-node-expanded > tree-node-wrapper{
-        box-shadow: 0 2px 2px 0 rgba(0,0,0,.1);
+
         position: relative;
         z-index: 1;
         display: block;
@@ -146,7 +194,11 @@ drawing-board-tree {
           height: 45px;
           &:hover {
             .node-content-wrapper:not(.node-content-wrapper-focused) {
-              background: #F2F2F2;
+              .instance-type ,
+              .model-info ,
+              .model-actions {
+                background: #F2F2F2;
+              }
               .icon-browse:before {
                 color: #5A5A5A;
               }
@@ -164,11 +216,12 @@ drawing-board-tree {
               display: block;
               height: 100%;
               span.toggle-children {
+                height: 43px;
                 display: flex;
                 width: 45px;
+                margin-top: 1px;
                 padding: 0;
                 top: 0;
-                height: inherit;
                 background-image: none;
                 background-color: white;
                 border: 1px solid #D2D2D2;
@@ -196,18 +249,44 @@ drawing-board-tree {
               width:45px;
             }
           }
+          .node-content-wrapper-active,
+          .node-content-wrapper.node-content-wrapper-active:hover,
+          .node-content-wrapper-active.node-content-wrapper-focused {
+            background: white !important;
+          }
 
+          .node-content-wrapper-active.node-content-wrapper-focused {
+            background: white !important;
+          }
           .node-content-wrapper {
+
             padding: 0;
             background: none;
             box-shadow: none;
             border-radius: 0;
-            border: 1px solid #D2D2D2;
+            border: 1px solid white;
             height: 100%;
             flex: 1;
             .resourceGroup {
               border: 1px dashed #D2D2D2 !important;
             }
+
+            .isLinked {
+              .instance-type  {
+                border-style: dashed !important;
+              }
+
+              .model-info {
+                border: 1px #D2D2CD dashed !important;
+                border-right: none !important;
+              }
+
+              .model-actions {
+                border-style: dashed !important;
+                border-left-style: none !important;
+              }
+            }
+
             tree-node-content {
               > div {
                 height: 100%;
@@ -217,14 +296,18 @@ drawing-board-tree {
                 .instance-type {
                   width: 40px;
                   height: 100%;
-                  padding-top: 16px;
                   text-transform: uppercase;
-                  text-align: center;
                   border-right: 1px solid #D2D2D2;
                   word-break: break-all;
                   color: #959595;
                   font-size: 13px;
                   font-family: OpenSans-SemiBold;
+                  display: flex;
+                  text-align: center;
+                  flex-direction: column;
+                  align-items: center;
+                  justify-content: center;
+
                   .newIcon {
                     background: #45B16D;
                     position: absolute;
@@ -247,9 +330,42 @@ drawing-board-tree {
                     display: block;
                   }
                 }
+                .node-content-wrapper-active {
+                  .action-status {
+                    background-color: white !important;
+                  }
+                }
+                .action-status {
+                  padding-left: 10px;
+                  background-color: white !important;
+                  line-height: 42px;
+                  width: 95px;
+                  min-width: 95px;
+                  .action-status-type.delete {
+                    background: transparent;
+                    font-family: OpenSans-SemiBold;
+                    font-size: 12px;
+                    color: red;
+                    border-radius: 50px;
+                    border: 1px solid gray;
+                    padding: 5px 20px;
+                  }
+                }
+
+                .model-info.rightBorder {
+                  border-right: 1px solid #D2D2CD !important;
+                }
                 .model-info {
+                  border: 1px solid #D2D2CD;
+                  line-height: normal;
                   padding-left: 16px;
                   width: 100%;
+                  height: 100%;
+                  flex-direction: column;
+                  display: flex;
+                  justify-content: center;
+                  border-right: none;
+
                   .property-name {
                     font-family: OpenSans-SemiBold;
                     font-size: 13px;
@@ -285,9 +401,17 @@ drawing-board-tree {
                     margin-right: 3px;
                   }
                 }
+
                 .model-actions {
+                  :hover {
+                    background: transparent !important;
+                  }
                   display: flex;
                   align-items: center;
+                  border: 1px solid #D2D2CD;
+                  line-height: normal;
+                  height: 100%;
+                  border-left: none;
                   .icon-browse {
                     padding: 0;
                     width: 30px;
@@ -298,11 +422,11 @@ drawing-board-tree {
                       display: none;
                     }
                     &:hover:before {
-                      color: #009FDB;
+                      //color: #009FDB;
                     }
                     &:focus:before,
                     &:active:before {
-                      color: #009FDB;
+                      //color: #009FDB;
                     }
                   }
 
@@ -319,7 +443,7 @@ drawing-board-tree {
         .tree-children {
           padding-left: 45px;
           .model-info span:first-child {
-            flex: 1.1 !important;
+            //flex: 1.1 !important;
           }
         }
       }
index 1b913cf..b804342 100644 (file)
@@ -7,39 +7,39 @@ import {NgRedux} from "@angular-redux/store";
 import {DrawingBoardTreeService, TreeNodeContextMenuModel} from "./drawing-board-tree.service";
 import {ITreeNode} from "angular-tree-component/dist/defs/api";
 
- class MockAppStore<T>{
-  getState()  {
+class MockAppStore<T> {
+  getState() {
     return {
-     service : {
-       serviceInstance : {
-         "serviceInstanceId" : {
-           vnfs : {
-             "vnfStoreKey" : {
-               isMissingData : true,
-               vfModules : {
-                 "vfModulesName" : {
-                   "vfModulesName" : {
-                     isMissingData : true
-                   }
-                 }
-               }
-             },
-
-             "vnfStoreKey1" : {
-               isMissingData : false,
-               vfModules : {
-                 "vfModulesName" : {
-                   "vfModulesName" : {
-                     isMissingData : false
-                   }
-                 }
-               }
-             }
-           }
-         }
-       }
-     }
-   }
+      service: {
+        serviceInstance: {
+          "serviceInstanceId": {
+            vnfs: {
+              "vnfStoreKey": {
+                isMissingData: true,
+                vfModules: {
+                  "vfModulesName": {
+                    "vfModulesName": {
+                      isMissingData: true
+                    }
+                  }
+                }
+              },
+
+              "vnfStoreKey1": {
+                isMissingData: false,
+                vfModules: {
+                  "vfModulesName": {
+                    "vfModulesName": {
+                      isMissingData: false
+                    }
+                  }
+                }
+              }
+            }
+          }
+        }
+      }
+    }
   }
 }
 
@@ -65,82 +65,81 @@ describe('Drawing board tree Service', () => {
   })().then(done).catch(done.fail));
 
 
-
-
   test('generateContextMenuOptions should return list of optional context menu', () => {
-    const options : TreeNodeContextMenuModel[] = service.generateContextMenuOptions();
-    const expected : TreeNodeContextMenuModel[] = [
+    const options: TreeNodeContextMenuModel[] = service.generateContextMenuOptions();
+    const expected: TreeNodeContextMenuModel[] = [
       new TreeNodeContextMenuModel('edit', 'context-menu-edit', 'Edit', 'edit-file-o'),
       new TreeNodeContextMenuModel('duplicate', 'context-menu-duplicate', 'Duplicate', 'copy-o'),
       new TreeNodeContextMenuModel('showAuditInfo', 'context-menu-showAuditInfo', 'Show audit info', 'eye-o'),
       new TreeNodeContextMenuModel('addGroupMember', 'context-menu-addGroupMember', 'Add group members', 'plus'),
       new TreeNodeContextMenuModel('delete', 'context-menu-delete', 'Delete', 'trash-o'),
       new TreeNodeContextMenuModel('remove', 'context-menu-remove', 'Remove', 'trash-o'),
-      new TreeNodeContextMenuModel('undoDelete', 'context-menu-undoDelete', 'Undo Delete', 'undo-delete')
+      new TreeNodeContextMenuModel('undoDelete', 'context-menu-undoDelete', 'Undo Delete', 'undo-delete'),
+      new TreeNodeContextMenuModel('changeAssociations', 'context-menu-changeAssociations', 'Change Associations', 'edit-file-o')
     ];
-    expect(options.length).toEqual(7);
+    expect(options.length).toEqual(8);
     expect(options).toEqual(expected);
   });
 
   test('isVNFMissingData should return true if vnf isMissingData = true', () => {
-    let node : ITreeNode  = <any>{
-      data : {
-        type : 'VF',
-        vnfStoreKey : "vnfStoreKey"
+    let node: ITreeNode = <any>{
+      data: {
+        type: 'VF',
+        vnfStoreKey: "vnfStoreKey"
       }
     };
-    let result : boolean = service.isVNFMissingData(node, "serviceInstanceId");
+    let result: boolean = service.isVNFMissingData(node, "serviceInstanceId");
     expect(result).toBeTruthy();
   });
 
 
   test('isVNFMissingData should return false if vnf has isMissingData = false', () => {
-    let node : ITreeNode  = <any>{
-      data : {
-        type : 'VFModule',
-        modelName : "vfModulesName",
-        dynamicModelName : "vfModulesName",
-        parent : {
-          vnfStoreKey : "vnfStoreKey1",
-          type : 'VF'
+    let node: ITreeNode = <any>{
+      data: {
+        type: 'VFModule',
+        modelName: "vfModulesName",
+        dynamicModelName: "vfModulesName",
+        parent: {
+          vnfStoreKey: "vnfStoreKey1",
+          type: 'VF'
         }
       }
     };
-    let result : boolean = service.isVNFMissingData(node, "serviceInstanceId");
+    let result: boolean = service.isVNFMissingData(node, "serviceInstanceId");
     expect(result).toBeFalsy();
   });
 
 
   test('isVFModuleMissingData should return true if vnfModule has isMissingData = true', () => {
-    let node : ITreeNode  = <any>{
-      data : {
-        type : 'VFModule',
-        modelName : "vfModulesName",
-        dynamicModelName : "vfModulesName",
-        parent : {
-          vnfStoreKey : "vnfStoreKey",
-          type : 'VF'
+    let node: ITreeNode = <any>{
+      data: {
+        type: 'VFModule',
+        modelName: "vfModulesName",
+        dynamicModelName: "vfModulesName",
+        parent: {
+          vnfStoreKey: "vnfStoreKey",
+          type: 'VF'
         }
       }
     };
-    let result : boolean = service.isVFModuleMissingData(node, "serviceInstanceId");
+    let result: boolean = service.isVFModuleMissingData(node, "serviceInstanceId");
     expect(result).toBeFalsy();
   });
 
 
   test('isVFModuleMissingData should return false if vnfModule has isMissingData = false', () => {
-    let node : ITreeNode  = <any>{
-      data : {
-        type : 'VFModule',
-        modelName : "vfModulesName",
-        dynamicModelName : "vfModulesName",
-        parent : {
-          vnfStoreKey : "vnfStoreKey1",
-          type : 'VF'
+    let node: ITreeNode = <any>{
+      data: {
+        type: 'VFModule',
+        modelName: "vfModulesName",
+        dynamicModelName: "vfModulesName",
+        parent: {
+          vnfStoreKey: "vnfStoreKey1",
+          type: 'VF'
         }
       }
     };
-    let result : boolean = service.isVFModuleMissingData(node, "serviceInstanceId");
+    let result: boolean = service.isVFModuleMissingData(node, "serviceInstanceId");
     expect(result).toBeFalsy();
   });
 
index 17f761c..acf6224 100644 (file)
@@ -42,7 +42,8 @@ export class  DrawingBoardTreeService {
       new TreeNodeContextMenuModel('addGroupMember', 'context-menu-addGroupMember', 'Add group members', 'plus'),
       new TreeNodeContextMenuModel('delete', 'context-menu-delete', 'Delete', 'trash-o'),
       new TreeNodeContextMenuModel('remove', 'context-menu-remove', 'Remove', 'trash-o'),
-      new TreeNodeContextMenuModel('undoDelete', 'context-menu-undoDelete', 'Undo Delete', 'undo-delete')
+      new TreeNodeContextMenuModel('undoDelete', 'context-menu-undoDelete', 'Undo Delete', 'undo-delete'),
+      new TreeNodeContextMenuModel('changeAssociations', 'context-menu-changeAssociations', 'Change Associations', 'edit-file-o')
     ];
   }
 
index 81251cb..3483885 100644 (file)
@@ -1,8 +1,8 @@
-import { DuplicateService } from './duplicate.service';
-import { LogService } from '../../../shared/utils/log/log.service';
-import { NgRedux } from '@angular-redux/store';
+import {DuplicateService} from './duplicate.service';
+import {LogService} from '../../../shared/utils/log/log.service';
+import {NgRedux} from '@angular-redux/store';
 import {ITreeNode} from "angular-tree-component/dist/defs/api";
-import { SdcUiServices} from "onap-ui-angular";
+import {SdcUiServices} from "onap-ui-angular";
 import {IModalConfig} from "onap-ui-angular/dist/components/common";
 import {AppState} from "../../../shared/store/reducers";
 import {getTestBed, TestBed} from "@angular/core/testing";
@@ -121,7 +121,6 @@ describe('Drawing board tree service', () => {
   });
 
   test('canDuplicate VNF should return true', () => {
-    sessionStorage.setItem('reduxState' , JSON.stringify({global : { flags : {FLAG_DUPLICATE_VNF : true}}}));
     let node : ITreeNode = <any> {data : {type : 'VF'}};
 
     let result = service.canDuplicate(node);
@@ -129,7 +128,6 @@ describe('Drawing board tree service', () => {
   });
 
   test('canDuplicate Network should return true', () => {
-    sessionStorage.setItem('reduxState' , JSON.stringify({global : { flags : {FLAG_DUPLICATE_VNF : true}}}));
     let node : ITreeNode = <any> {data : {type : 'VL'}};
 
     let result = service.canDuplicate(node);
@@ -137,7 +135,6 @@ describe('Drawing board tree service', () => {
   });
 
   test('canDuplicate VFModule should return false', () => {
-    sessionStorage.setItem('reduxState' , JSON.stringify({global : { flags : {FLAG_DUPLICATE_VNF : true}}}));
     let node : ITreeNode = <any> {data : {type : 'VFModule'}};
 
     let result = service.canDuplicate(node);
@@ -154,14 +151,14 @@ describe('Drawing board tree service', () => {
 
   test('Duplicate multi vnfs should save multi vnfs in redux', () => {
     service.existingNames = {
-      "2017488_adiodvpe": "",
+      "2017488_pasqualevpe": "",
       "rrr": "",
       "ttt": ""
     };
     let newVnfs = service.cloneVnf(<any>{
       "vfModules": {
-        "2017488_adiodvpe0..2017488AdiodVpe..ADIOD_vPFE_BV..module-2": {
-          "2017488_adiodvpe0..2017488AdiodVpe..ADIOD_vPFE_BV..module-2mtlfi": {
+        "2017488_pasqualevpe0..2017488PasqualeVpe..PASQUALE_vPFE_BV..module-2": {
+          "2017488_pasqualevpe0..2017488PasqualeVpe..PASQUALE_vPFE_BV..module-2mtlfi": {
             "instanceName": "rrr",
             "volumeGroupName": "ttt"
           }
@@ -169,17 +166,17 @@ describe('Drawing board tree service', () => {
       },
       "originalName": null,
       "trackById": "pfs1f0len3",
-      "instanceName": "2017488_ADIODvPE"
-    }, "2017-488_ADIOD-vPE 0");
+      "instanceName": "2017488_PASQUALEvPE"
+    }, "2017-488_PASQUALE-vPE 0");
 
-    expect(newVnfs.instanceName).toBe("2017488_ADIODvPE_001");
-    expect(newVnfs.vfModules['2017488_adiodvpe0..2017488AdiodVpe..ADIOD_vPFE_BV..module-2']['2017488_adiodvpe0..2017488AdiodVpe..ADIOD_vPFE_BV..module-2mtlfi'].instanceName).toBe("rrr_001");
-    expect(newVnfs.vfModules['2017488_adiodvpe0..2017488AdiodVpe..ADIOD_vPFE_BV..module-2']['2017488_adiodvpe0..2017488AdiodVpe..ADIOD_vPFE_BV..module-2mtlfi'].volumeGroupName).toBe("ttt_001");
+    expect(newVnfs.instanceName).toBe("2017488_PASQUALEvPE_001");
+    expect(newVnfs.vfModules['2017488_pasqualevpe0..2017488PasqualeVpe..PASQUALE_vPFE_BV..module-2']['2017488_pasqualevpe0..2017488PasqualeVpe..PASQUALE_vPFE_BV..module-2mtlfi'].instanceName).toBe("rrr_001");
+    expect(newVnfs.vfModules['2017488_pasqualevpe0..2017488PasqualeVpe..PASQUALE_vPFE_BV..module-2']['2017488_pasqualevpe0..2017488PasqualeVpe..PASQUALE_vPFE_BV..module-2mtlfi'].volumeGroupName).toBe("ttt_001");
 
     newVnfs = service.cloneVnf(<any>{
       "vfModules": {
-        "2017488_adiodvpe0..2017488AdiodVpe..ADIOD_vPFE_BV..module-2": {
-          "2017488_adiodvpe0..2017488AdiodVpe..ADIOD_vPFE_BV..module-2mtlfi": {
+        "2017488_pasqualevpe0..2017488PasqualeVpe..PASQUALE_vPFE_BV..module-2": {
+          "2017488_pasqualevpe0..2017488PasqualeVpe..PASQUALE_vPFE_BV..module-2mtlfi": {
             "instanceName": "rrr",
             "volumeGroupName": "ttt"
           }
@@ -187,17 +184,17 @@ describe('Drawing board tree service', () => {
       },
       "originalName": null,
       "trackById": "pfs1f0len3",
-      "instanceName": "2017488_ADIODvPE"
-    }, "2017-488_ADIOD-vPE 0");
+      "instanceName": "2017488_PASQUALEvPE"
+    }, "2017-488_PASQUALE-vPE 0");
 
-    expect(newVnfs.instanceName).toBe("2017488_ADIODvPE_002");
-    expect(newVnfs.vfModules['2017488_adiodvpe0..2017488AdiodVpe..ADIOD_vPFE_BV..module-2']['2017488_adiodvpe0..2017488AdiodVpe..ADIOD_vPFE_BV..module-2mtlfi'].instanceName).toBe("rrr_002");
-    expect(newVnfs.vfModules['2017488_adiodvpe0..2017488AdiodVpe..ADIOD_vPFE_BV..module-2']['2017488_adiodvpe0..2017488AdiodVpe..ADIOD_vPFE_BV..module-2mtlfi'].volumeGroupName).toBe("ttt_002");
+    expect(newVnfs.instanceName).toBe("2017488_PASQUALEvPE_002");
+    expect(newVnfs.vfModules['2017488_pasqualevpe0..2017488PasqualeVpe..PASQUALE_vPFE_BV..module-2']['2017488_pasqualevpe0..2017488PasqualeVpe..PASQUALE_vPFE_BV..module-2mtlfi'].instanceName).toBe("rrr_002");
+    expect(newVnfs.vfModules['2017488_pasqualevpe0..2017488PasqualeVpe..PASQUALE_vPFE_BV..module-2']['2017488_pasqualevpe0..2017488PasqualeVpe..PASQUALE_vPFE_BV..module-2mtlfi'].volumeGroupName).toBe("ttt_002");
   });
 
   test('ensure name is unique - send new name - shouldn\'t change name', () => {
     service.existingNames = {
-      "2017488_adiodvpe": "",
+      "2017488_pasqualevpe": "",
       "uniqueinstancename": ""
     };
     const name = "uniqueInstanceName-1";
@@ -207,7 +204,7 @@ describe('Drawing board tree service', () => {
 
   test('ensure name is unique send existing name should change name', () => {
     service.existingNames = {
-      "2017488_adiodvpe": "",
+      "2017488_pasqualevpe": "",
       "uniqueinstancename-1": ""
     };
     const name = "uniqueInstanceName-1";
@@ -217,7 +214,7 @@ describe('Drawing board tree service', () => {
 
   test('isAlreadyExist - send new name should return false', () => {
     service.existingNames = {
-      "2017488_adiodvpe": "",
+      "2017488_pasqualevpe": "",
       "uniqueinstancename": ""
     };
     const name = "uniqueinstancename-1";
@@ -227,7 +224,7 @@ describe('Drawing board tree service', () => {
 
   test('isAlreadyExist - send existing name should return true', () => {
     service.existingNames = {
-      "2017488_adiodvpe": "",
+      "2017488_pasqualevpe": "",
       "uniqueinstancename-1": ""
     };
     const name = "uniqueinstancename-1";
@@ -237,7 +234,7 @@ describe('Drawing board tree service', () => {
 
   test('isAlreadyExist - send existing name case insensitive should return true', () => {
     service.existingNames = {
-      "2017488_adiodvpe": "",
+      "2017488_pasqualevpe": "",
       "uniqueinstancename-1": ""
     };
     const name = "uniqueInstanceName-1";
@@ -256,7 +253,7 @@ describe('Drawing board tree service', () => {
   });
 
   test('generateVNFUniqueName should return the next free number', () => {
-    const vnfName: string = "VF_vMee 0";
+    const vnfName: string = "VF_vGeraldine 0";
     let result: string = service.generateUniqueStoreKey(
       "6e59c5de-f052-46fa-aa7e-2fca9d674c44",
       vnfName,
@@ -380,7 +377,7 @@ describe('Drawing board tree service', () => {
   });
 
   function getExistingVNFs(){
-    return {"VF_vMee 0":{"rollbackOnFailure":"true","vfModules":{"vf_vmee0..VfVmee..vmme_vlc..module-1":{"vf_vmee0..VfVmee..vmme_vlc..module-1dgbxq":{"modelInfo":{"modelInvariantId":"98a7c88b-b577-476a-90e4-e25a5871e02b","modelVersionId":"522159d5-d6e0-4c2a-aa44-5a542a12a830","modelName":"VfVmee..vmme_vlc..module-1","modelVersion":"2","modelCustomizationId":"55b1be94-671a-403e-a26c-667e9c47d091","modelCustomizationName":"VfVmee..vmme_vlc..module-1"},"instanceParams":[{}]}}},"productFamilyId":"17cc1042-527b-11e6-beb8-9e71128cae77","lcpCloudRegionId":"hvf6","tenantId":"bae71557c5bb4d5aac6743a4e5f1d054","lineOfBusiness":"ONAP","platformName":"platform","modelInfo":{"modelInvariantId":"4160458e-f648-4b30-a176-43881ffffe9e","modelVersionId":"d6557200-ecf2-4641-8094-5393ae3aae60","modelName":"VF_vMee","modelVersion":"2.0","modelCustomizationId":"91415b44-753d-494c-926a-456a9172bbb9","modelCustomizationName":"VF_vMee 0"}},"VF_vMee 0:0001":{"rollbackOnFailure":"true","vfModules":{"vf_vmee0..VfVmee..vmme_vlc..module-1":{"vf_vmee0..VfVmee..vmme_vlc..module-1dgbxq":{"modelInfo":{"modelInvariantId":"98a7c88b-b577-476a-90e4-e25a5871e02b","modelVersionId":"522159d5-d6e0-4c2a-aa44-5a542a12a830","modelName":"VfVmee..vmme_vlc..module-1","modelVersion":"2","modelCustomizationId":"55b1be94-671a-403e-a26c-667e9c47d091","modelCustomizationName":"VfVmee..vmme_vlc..module-1"},"instanceParams":[{}]}}},"productFamilyId":"17cc1042-527b-11e6-beb8-9e71128cae77","lcpCloudRegionId":"hvf6","tenantId":"bae71557c5bb4d5aac6743a4e5f1d054","lineOfBusiness":"ONAP","platformName":"platform","modelInfo":{"modelInvariantId":"4160458e-f648-4b30-a176-43881ffffe9e","modelVersionId":"d6557200-ecf2-4641-8094-5393ae3aae60","modelName":"VF_vMee","modelVersion":"2.0","modelCustomizationId":"91415b44-753d-494c-926a-456a9172bbb9","modelCustomizationName":"VF_vMee 0"},"originalName":"VF_vMee 0"},"VF_vMee 0:0002":{"rollbackOnFailure":"true","vfModules":{"vf_vmee0..VfVmee..vmme_vlc..module-1":{"vf_vmee0..VfVmee..vmme_vlc..module-1dgbxq":{"modelInfo":{"modelInvariantId":"98a7c88b-b577-476a-90e4-e25a5871e02b","modelVersionId":"522159d5-d6e0-4c2a-aa44-5a542a12a830","modelName":"VfVmee..vmme_vlc..module-1","modelVersion":"2","modelCustomizationId":"55b1be94-671a-403e-a26c-667e9c47d091","modelCustomizationName":"VfVmee..vmme_vlc..module-1"},"instanceParams":[{}]}}},"productFamilyId":"17cc1042-527b-11e6-beb8-9e71128cae77","lcpCloudRegionId":"hvf6","tenantId":"bae71557c5bb4d5aac6743a4e5f1d054","lineOfBusiness":"ONAP","platformName":"platform","modelInfo":{"modelInvariantId":"4160458e-f648-4b30-a176-43881ffffe9e","modelVersionId":"d6557200-ecf2-4641-8094-5393ae3aae60","modelName":"VF_vMee","modelVersion":"2.0","modelCustomizationId":"91415b44-753d-494c-926a-456a9172bbb9","modelCustomizationName":"VF_vMee 0"},"originalName":"VF_vMee 0"}}
+    return {"VF_vGeraldine 0":{"rollbackOnFailure":"true","vfModules":{"vf_vgeraldine0..VfVgeraldine..vflorence_vlc..module-1":{"vf_vgeraldine0..VfVgeraldine..vflorence_vlc..module-1dgbxq":{"modelInfo":{"modelInvariantId":"98a7c88b-b577-476a-90e4-e25a5871e02b","modelVersionId":"522159d5-d6e0-4c2a-aa44-5a542a12a830","modelName":"VfVgeraldine..vflorence_vlc..module-1","modelVersion":"2","modelCustomizationId":"55b1be94-671a-403e-a26c-667e9c47d091","modelCustomizationName":"VfVgeraldine..vflorence_vlc..module-1"},"instanceParams":[{}]}}},"productFamilyId":"17cc1042-527b-11e6-beb8-9e71128cae77","lcpCloudRegionId":"hvf6","tenantId":"bae71557c5bb4d5aac6743a4e5f1d054","lineOfBusiness":"ONAP","platformName":"platform","modelInfo":{"modelInvariantId":"4160458e-f648-4b30-a176-43881ffffe9e","modelVersionId":"d6557200-ecf2-4641-8094-5393ae3aae60","modelName":"VF_vGeraldine","modelVersion":"2.0","modelCustomizationId":"91415b44-753d-494c-926a-456a9172bbb9","modelCustomizationName":"VF_vGeraldine 0"}},"VF_vGeraldine 0:0001":{"rollbackOnFailure":"true","vfModules":{"vf_vgeraldine0..VfVgeraldine..vflorence_vlc..module-1":{"vf_vgeraldine0..VfVgeraldine..vflorence_vlc..module-1dgbxq":{"modelInfo":{"modelInvariantId":"98a7c88b-b577-476a-90e4-e25a5871e02b","modelVersionId":"522159d5-d6e0-4c2a-aa44-5a542a12a830","modelName":"VfVgeraldine..vflorence_vlc..module-1","modelVersion":"2","modelCustomizationId":"55b1be94-671a-403e-a26c-667e9c47d091","modelCustomizationName":"VfVgeraldine..vflorence_vlc..module-1"},"instanceParams":[{}]}}},"productFamilyId":"17cc1042-527b-11e6-beb8-9e71128cae77","lcpCloudRegionId":"hvf6","tenantId":"bae71557c5bb4d5aac6743a4e5f1d054","lineOfBusiness":"ONAP","platformName":"platform","modelInfo":{"modelInvariantId":"4160458e-f648-4b30-a176-43881ffffe9e","modelVersionId":"d6557200-ecf2-4641-8094-5393ae3aae60","modelName":"VF_vGeraldine","modelVersion":"2.0","modelCustomizationId":"91415b44-753d-494c-926a-456a9172bbb9","modelCustomizationName":"VF_vGeraldine 0"},"originalName":"VF_vGeraldine 0"},"VF_vGeraldine 0:0002":{"rollbackOnFailure":"true","vfModules":{"vf_vgeraldine0..VfVgeraldine..vflorence_vlc..module-1":{"vf_vgeraldine0..VfVgeraldine..vflorence_vlc..module-1dgbxq":{"modelInfo":{"modelInvariantId":"98a7c88b-b577-476a-90e4-e25a5871e02b","modelVersionId":"522159d5-d6e0-4c2a-aa44-5a542a12a830","modelName":"VfVgeraldine..vflorence_vlc..module-1","modelVersion":"2","modelCustomizationId":"55b1be94-671a-403e-a26c-667e9c47d091","modelCustomizationName":"VfVgeraldine..vflorence_vlc..module-1"},"instanceParams":[{}]}}},"productFamilyId":"17cc1042-527b-11e6-beb8-9e71128cae77","lcpCloudRegionId":"hvf6","tenantId":"bae71557c5bb4d5aac6743a4e5f1d054","lineOfBusiness":"ONAP","platformName":"platform","modelInfo":{"modelInvariantId":"4160458e-f648-4b30-a176-43881ffffe9e","modelVersionId":"d6557200-ecf2-4641-8094-5393ae3aae60","modelName":"VF_vGeraldine","modelVersion":"2.0","modelCustomizationId":"91415b44-753d-494c-926a-456a9172bbb9","modelCustomizationName":"VF_vGeraldine 0"},"originalName":"VF_vGeraldine 0"}}
   }
 
   function getStoreState(){
index e695edf..5fb5f0b 100644 (file)
@@ -1,15 +1,14 @@
-import { Injectable } from '@angular/core';
-import { ITreeNode } from 'angular-tree-component/dist/defs/api';
-import { AppState } from '../../../shared/store/reducers';
-import { LogService } from '../../../shared/utils/log/log.service';
-import { NgRedux } from '@angular-redux/store';
+import {Injectable} from '@angular/core';
+import {ITreeNode} from 'angular-tree-component/dist/defs/api';
+import {AppState} from '../../../shared/store/reducers';
+import {LogService} from '../../../shared/utils/log/log.service';
+import {NgRedux} from '@angular-redux/store';
 import {VnfInstance} from "../../../shared/models/vnfInstance";
 import {VfModuleMap} from "../../../shared/models/vfModulesMap";
 import * as _ from "lodash";
 import {DefaultDataGeneratorService} from "../../../shared/services/defaultDataServiceGenerator/default.data.generator.service";
 import {TypeNodeInformation} from "../typeNodeInformation.model";
-import { SdcUiServices} from "onap-ui-angular";
-import { SdcUiCommon} from "onap-ui-angular";
+import {SdcUiCommon, SdcUiServices} from "onap-ui-angular";
 import {changeInstanceCounter, duplicateBulkInstances} from "../../../shared/storeUtil/utils/general/general.actions";
 import {IModalConfig} from "onap-ui-angular/dist/modals/models/modal-config";
 
@@ -39,7 +38,7 @@ export class DuplicateService {
 
   canDuplicate(node: ITreeNode): boolean {
     let reduxState = <AppState>JSON.parse(sessionStorage.getItem('reduxState'));
-    return reduxState.global.flags['FLAG_DUPLICATE_VNF'] && (node.data.type === 'VF' || node.data.type === 'VL');
+    return node.data.type === 'VF' || node.data.type === 'VL';
   }
 
   isEnabled(node: ITreeNode, store: NgRedux<AppState>, serviceId : string): boolean {
index 51b6cfa..5ae6437 100644 (file)
@@ -1,5 +1,7 @@
 import {ITreeNode} from "angular-tree-component/dist/defs/api";
 import {AvailableNodeIcons} from "../../available-models-tree/available-models-tree.service";
+import {ComponentInfoModel, ComponentInfoType} from "../../component-info/component-info-model";
+import {ModelInformationItem} from "../../../../shared/components/model-information/model-information.component";
 
 export interface ILevelNodeInfo {
   /** Name of the key inside the serviceHierarchy object **/
@@ -9,14 +11,13 @@ export interface ILevelNodeInfo {
   type: string;
 
   /** Child name inside the of the serviceHierarchy object (if exist) **/
-  childName?: string;
-
-  /** Child type the of object (if exist) **/
-  childType?: string;
+  childNames?: string[];
 
   /** model type name **/
   typeName?: string;
 
+  componentInfoType? :ComponentInfoType;
+
   /** is instance failed **/
   isFailed?: boolean;
 
@@ -86,7 +87,7 @@ export interface ILevelNodeInfo {
   /************************************
    * return child model option object
    ***********************************/
-  getNextLevelObject(): any;
+  getNextLevelObject(type?:string): any;
 
   /***********************************************************
    * open popup
@@ -116,6 +117,10 @@ export interface ILevelNodeInfo {
    ************************************************************/
   getMenuAction(node: ITreeNode, serviceModelId: string): { [methodName: string]: { method: Function, visible: Function, enable: Function } };
 
-
-  onSelectedNode(node : ITreeNode): void
+   /*******************************************************************************************
+   * should generate array of node information
+   * @param model - node model
+   * @param node - current ITrees node
+   *****************************************************************************************/
+  getInfo?(model, instance): ModelInformationItem[];
 }
diff --git a/vid-webpack-master/src/app/drawingBoard/service-planning/objectsToTree/models/collectionResource/collectionResource.model.info.spec.ts b/vid-webpack-master/src/app/drawingBoard/service-planning/objectsToTree/models/collectionResource/collectionResource.model.info.spec.ts
new file mode 100644 (file)
index 0000000..f8ce819
--- /dev/null
@@ -0,0 +1,1207 @@
+import {HttpClientTestingModule} from "@angular/common/http/testing";
+import {getTestBed, TestBed} from "@angular/core/testing";
+import {MockNgRedux, NgReduxTestingModule} from "@angular-redux/store/testing";
+import {DynamicInputsService} from "../../dynamicInputs.service";
+import {SharedTreeService} from "../../shared.tree.service";
+import {NgRedux} from "@angular-redux/store";
+import {AppState} from "../../../../../shared/store/reducers";
+import {DuplicateService} from "../../../duplicate/duplicate.service";
+import {IframeService} from "../../../../../shared/utils/iframe.service";
+import {ComponentInfoService} from "../../../component-info/component-info.service";
+import {AaiService} from "../../../../../shared/services/aaiService/aai.service";
+import {HttpClient, HttpHandler} from "@angular/common/http";
+import {FeatureFlagsService} from "../../../../../shared/services/featureFlag/feature-flags.service";
+import {CollectionResourceModelInfo} from "./collectionResource.model.info";
+import {ComponentInfoType} from "../../../component-info/component-info-model";
+import {CollectionResourceModel} from "../../../../../shared/models/collectionResourceModel";
+import {NcfModelInfo} from "../ncf/ncf.model.info";
+
+describe('Collection Resource Model Info', () => {
+  let injector;
+  let _componentInfoService : ComponentInfoService;
+
+  let _store : NgRedux<AppState>;
+  let collectionResourceModel: CollectionResourceModelInfo;
+  let  _sharedTreeService : SharedTreeService;
+
+  beforeEach(() => {
+    TestBed.configureTestingModule({
+      imports: [HttpClientTestingModule, NgReduxTestingModule],
+      providers: [
+        MockNgRedux,
+        DynamicInputsService,
+        SharedTreeService,
+        DuplicateService,
+        AaiService,
+        HttpClient,
+        HttpHandler,
+        FeatureFlagsService,
+        ComponentInfoService,
+        IframeService]
+    }).compileComponents();
+
+    injector = getTestBed();
+    _store = injector.get(NgRedux);
+    _componentInfoService = injector.get(ComponentInfoService);
+
+    collectionResourceModel = new CollectionResourceModelInfo(_store, _sharedTreeService);
+
+
+  });
+
+  test('collection resource should be defined', () => {
+    expect(collectionResourceModel).toBeDefined();
+  });
+
+  test('collectionResourceModel should defined extra details', () => {
+    expect(collectionResourceModel.name).toEqual('collectionResources');
+    expect(collectionResourceModel.type).toEqual('collection Resource');
+    expect(collectionResourceModel.childNames).toEqual(['ncfs']);
+    expect(collectionResourceModel.componentInfoType).toEqual(ComponentInfoType.COLLECTION_RESOURCE);
+  });
+
+  test('isEcompGeneratedNaming should return false', () => {
+    let isEcompGeneratedNaming: boolean = collectionResourceModel.isEcompGeneratedNaming(<any>{});
+    expect(isEcompGeneratedNaming).toBeFalsy();
+  });
+
+
+  test('getTooltip should return "Collection Resource"', () => {
+    let tooltip: string = collectionResourceModel.getTooltip();
+    expect(tooltip).toEqual('Collection Resource');
+  });
+
+  test('getType should return "collectionResources"', () => {
+    let tooltip: string = collectionResourceModel.getType();
+    expect(tooltip).toEqual('collectionResource');
+  });
+
+  test('getNextLevelObject should return ncfs', () => {
+    let nextLevel: NcfModelInfo = collectionResourceModel.getNextLevelObject();
+    expect(nextLevel.type).toEqual('NCF');
+  });
+
+  test('getModel should return collectionResource model', () => {
+    let model: CollectionResourceModel = collectionResourceModel.getModel('CR_sanity 0', <any>{
+      originalName : 'CR_sanity 0'
+    }, getServiceHierarchy());
+    expect(model.type).toEqual('CR');
+  });
+
+  test('cr getMenuAction: delete', ()=>{
+    let node = {};
+    let serviceModelId = 'serviceModelId';
+    let result = collectionResourceModel.getMenuAction(<any>node, serviceModelId);
+    spyOn(result['delete'], 'method');
+    expect(result['delete']).toBeDefined();
+    expect(result['delete'].visible()).toBeFalsy();
+    expect(result['delete'].enable()).toBeFalsy();
+    result['delete']['method'](node, serviceModelId);
+    expect(result['delete']['method']).toHaveBeenCalledWith(node, serviceModelId);
+  });
+
+  function getServiceHierarchy(){
+    return {
+      "service": {
+        "uuid": "6b528779-44a3-4472-bdff-9cd15ec93450",
+        "invariantUuid": "e49fbd11-e60c-4a8e-b4bf-30fbe8f4fcc0",
+        "name": "action-data",
+        "version": "1.0",
+        "toscaModelURL": null,
+        "category": "",
+        "serviceType": "",
+        "serviceRole": "",
+        "description": "",
+        "serviceEcompNaming": "false",
+        "instantiationType": "Macro",
+        "inputs": {
+          "2017488_pasqualevpe0_ASN": {
+            "type": "string",
+            "description": "AV/PE",
+            "entry_schema": null,
+            "inputProperties": null,
+            "constraints": [],
+            "required": true,
+            "default": "AV_vPE"
+          }
+        },
+        "vidNotions": {
+          "instantiationUI": "legacy",
+          "modelCategory": "other"
+        }
+      },
+      "collectionResources": {
+        "CR_sanity 0": {
+          "uuid": "3467f91f-1a2a-4013-a5ed-8ad99d4e06ad",
+          "invariantUuid": "d0060da6-82b8-4ca0-9758-5eb2b111b926",
+          "description": "CR_sanity",
+          "name": "CR_sanity",
+          "version": "1.0",
+          "customizationUuid": "7160c618-9314-4c09-8717-b77f3d29d946",
+          "inputs": {},
+          "commands": {},
+          "properties": {
+            "cr_sanity..Fixed..0_quantity": "10",
+            "cr_sanity..NetworkCollection..0_network_collection_function": "ABCD",
+            "ecomp_generated_naming": "false",
+            "cr_sanity..NetworkCollection..0_network_collection_description": "ABCD"
+          },
+          "type": "CR",
+          "category": "Network L2-3",
+          "subcategory": "Infrastructure",
+          "resourceVendor": "ATT",
+          "resourceVendorRelease": "2018.06",
+          "resourceVendorModelNumber": "",
+          "customizationUUID": "7160c618-9314-4c09-8717-b77f3d29d946",
+          "networksCollection": {
+            "cr_sanity..NetworkCollection..0": {
+              "uuid": "445d7fa8-3e59-4606-bd76-30ba5fc677d3",
+              "invariantUuid": "9dc623b8-0ae8-47ad-a791-a21b8d8e94a8",
+              "name": "cr_sanity..NetworkCollection..0",
+              "version": "1",
+              "networkCollectionProperties": {
+                "networkCollectionFunction": "ABCD",
+                "networkCollectionDescription": "ABCD"
+              }
+            }
+          }
+        }
+      },
+      "vnfs": {
+        "2017-388_PASQUALE-vPE 1": {
+          "uuid": "0903e1c0-8e03-4936-b5c2-260653b96413",
+          "invariantUuid": "00beb8f9-6d39-452f-816d-c709b9cbb87d",
+          "description": "Name PASQUALE vPE Description The provider edge function for the PASQUALE service supported by the Junipers VMX product Category Router Vendor Juniper Vendor Release Code 17.2 Owners Mary Fragale. Updated 9-25 to use v8.0 of the Juniper Valid 2 VLM",
+          "name": "2017-388_PASQUALE-vPE",
+          "version": "1.0",
+          "customizationUuid": "280dec31-f16d-488b-9668-4aae55d6648a",
+          "inputs": {
+            "vnf_config_template_version": {
+              "type": "string",
+              "description": "VPE Software Version",
+              "entry_schema": null,
+              "inputProperties": null,
+              "constraints": [],
+              "required": true,
+              "default": "17.2"
+            },
+            "bandwidth_units": {
+              "type": "string",
+              "description": "Units of bandwidth",
+              "entry_schema": null,
+              "inputProperties": null,
+              "constraints": [],
+              "required": true,
+              "default": "Gbps"
+            },
+            "bandwidth": {
+              "type": "string",
+              "description": "Requested VPE bandwidth",
+              "entry_schema": null,
+              "inputProperties": null,
+              "constraints": [],
+              "required": true,
+              "default": "10"
+            },
+            "AIC_CLLI": {
+              "type": "string",
+              "description": "AIC Site CLLI",
+              "entry_schema": null,
+              "inputProperties": null,
+              "constraints": [],
+              "required": true,
+              "default": "ATLMY8GA"
+            },
+            "ASN": {
+              "type": "string",
+              "description": "AV/PE",
+              "entry_schema": null,
+              "inputProperties": null,
+              "constraints": [],
+              "required": true,
+              "default": "AV_vPE"
+            },
+            "vnf_instance_name": {
+              "type": "string",
+              "description": "The hostname assigned to the vpe.",
+              "entry_schema": null,
+              "inputProperties": null,
+              "constraints": [],
+              "required": true,
+              "default": "mtnj309me6"
+            }
+          },
+          "commands": {
+            "vnf_config_template_version": {
+              "displayName": "vnf_config_template_version",
+              "command": "get_input",
+              "inputName": "2017488_pasqualevpe0_vnf_config_template_version"
+            },
+            "bandwidth_units": {
+              "displayName": "bandwidth_units",
+              "command": "get_input",
+              "inputName": "pasqualevpe0_bandwidth_units"
+            },
+            "bandwidth": {
+              "displayName": "bandwidth",
+              "command": "get_input",
+              "inputName": "pasqualevpe0_bandwidth"
+            },
+            "AIC_CLLI": {
+              "displayName": "AIC_CLLI",
+              "command": "get_input",
+              "inputName": "2017488_pasqualevpe0_AIC_CLLI"
+            },
+            "ASN": {
+              "displayName": "ASN",
+              "command": "get_input",
+              "inputName": "2017488_pasqualevpe0_ASN"
+            },
+            "vnf_instance_name": {
+              "displayName": "vnf_instance_name",
+              "command": "get_input",
+              "inputName": "2017488_pasqualevpe0_vnf_instance_name"
+            }
+          },
+          "properties": {
+            "vmxvre_retype": "RE-VMX",
+            "vnf_config_template_version": "get_input:2017488_pasqualevpe0_vnf_config_template_version",
+            "sriov44_net_id": "48d399b3-11ee-48a8-94d2-f0ea94d6be8d",
+            "int_ctl_net_id": "2f323477-6936-4d01-ac53-d849430281d9",
+            "vmxvpfe_sriov41_0_port_mac": "00:11:22:EF:AC:DF",
+            "int_ctl_net_name": "VMX-INTXI",
+            "vmx_int_ctl_prefix": "10.0.0.10",
+            "sriov43_net_id": "da349ca1-6de9-4548-be88-2d88e99bfef5",
+            "sriov42_net_id": "760669ba-013d-4d9b-b0e7-4151fe2e6279",
+            "sriov41_net_id": "25ad52d5-c165-40f8-b3b0-ddfc2373280a",
+            "nf_type": "vPE",
+            "vmxvpfe_int_ctl_ip_1": "10.0.0.10",
+            "is_AVPN_service": "false",
+            "vmx_RSG_name": "vREXI-affinity",
+            "vmx_int_ctl_forwarding": "l2",
+            "vmxvre_oam_ip_0": "10.0.0.10",
+            "vmxvpfe_sriov44_0_port_mac": "00:11:22:EF:AC:DF",
+            "vmxvpfe_sriov41_0_port_vlanstrip": "false",
+            "vmxvpfe_sriov42_0_port_vlanfilter": "4001",
+            "vmxvpfe_sriov44_0_port_unknownunicastallow": "true",
+            "vmxvre_image_name_0": "VRE-ENGINE_17.2-S2.1.qcow2",
+            "vmxvre_instance": "0",
+            "vmxvpfe_sriov43_0_port_mac": "00:11:22:EF:AC:DF",
+            "vmxvre_flavor_name": "ns.c1r16d32.v5",
+            "vmxvpfe_volume_size_0": "40.0",
+            "vmxvpfe_sriov43_0_port_vlanfilter": "4001",
+            "nf_naming": "{ecomp_generated_naming=false}",
+            "nf_naming_code": "Navneet",
+            "vmxvre_name_0": "vREXI",
+            "vmxvpfe_sriov42_0_port_vlanstrip": "false",
+            "vmxvpfe_volume_name_0": "vPFEXI_FBVolume",
+            "vmx_RSG_id": "bd89a33c-13c3-4a04-8fde-1a57eb123141",
+            "vmxvpfe_image_name_0": "VPE_ROUTING-ENGINE_17.2R1-S2.1.qcow2",
+            "vmxvpfe_sriov43_0_port_unknownunicastallow": "true",
+            "vmxvpfe_sriov44_0_port_unknownmulticastallow": "true",
+            "vmxvre_console": "vidconsole",
+            "vmxvpfe_sriov44_0_port_vlanfilter": "4001",
+            "vmxvpfe_sriov42_0_port_mac": "00:11:22:EF:AC:DF",
+            "vmxvpfe_volume_id_0": "47cede15-da2f-4397-a101-aa683220aff3",
+            "vmxvpfe_sriov42_0_port_unknownmulticastallow": "true",
+            "vmxvpfe_sriov44_0_port_vlanstrip": "false",
+            "vf_module_id": "123",
+            "nf_function": "JAI",
+            "vmxvpfe_sriov43_0_port_unknownmulticastallow": "true",
+            "vmxvre_int_ctl_ip_0": "10.0.0.10",
+            "ecomp_generated_naming": "false",
+            "AIC_CLLI": "get_input:2017488_pasqualevpe0_AIC_CLLI",
+            "vnf_name": "mtnj309me6vre",
+            "vmxvpfe_sriov41_0_port_unknownunicastallow": "true",
+            "vmxvre_volume_type_1": "HITACHI",
+            "vmxvpfe_sriov44_0_port_broadcastallow": "true",
+            "vmxvre_volume_type_0": "HITACHI",
+            "vmxvpfe_volume_type_0": "HITACHI",
+            "vmxvpfe_sriov43_0_port_broadcastallow": "true",
+            "bandwidth_units": "get_input:pasqualevpe0_bandwidth_units",
+            "vnf_id": "123",
+            "vmxvre_oam_prefix": "24",
+            "availability_zone_0": "mtpocfo-kvm-az01",
+            "ASN": "get_input:2017488_pasqualevpe0_ASN",
+            "vmxvre_chassis_i2cid": "161",
+            "vmxvpfe_name_0": "vPFEXI",
+            "bandwidth": "get_input:pasqualevpe0_bandwidth",
+            "availability_zone_max_count": "1",
+            "vmxvre_volume_size_0": "45.0",
+            "vmxvre_volume_size_1": "50.0",
+            "vmxvpfe_sriov42_0_port_broadcastallow": "true",
+            "vmxvre_oam_gateway": "10.0.0.10",
+            "vmxvre_volume_name_1": "vREXI_FAVolume",
+            "vmxvre_ore_present": "0",
+            "vmxvre_volume_name_0": "vREXI_FBVolume",
+            "vmxvre_type": "0",
+            "vnf_instance_name": "get_input:2017488_pasqualevpe0_vnf_instance_name",
+            "vmxvpfe_sriov41_0_port_unknownmulticastallow": "true",
+            "oam_net_id": "b95eeb1d-d55d-4827-abb4-8ebb94941429",
+            "vmx_int_ctl_len": "24",
+            "vmxvpfe_sriov43_0_port_vlanstrip": "false",
+            "vmxvpfe_sriov41_0_port_broadcastallow": "true",
+            "vmxvre_volume_id_1": "6e86797e-03cd-4fdc-ba72-2957119c746d",
+            "vmxvpfe_sriov41_0_port_vlanfilter": "4001",
+            "nf_role": "Testing",
+            "vmxvre_volume_id_0": "f4eacb79-f687-4e9d-b760-21847c8bb15a",
+            "vmxvpfe_sriov42_0_port_unknownunicastallow": "true",
+            "vmxvpfe_flavor_name": "ns.c20r16d25.v5"
+          },
+          "type": "VF",
+          "modelCustomizationName": "2017-388_PASQUALE-vPE 1",
+          "vfModules": {},
+          "volumeGroups": {},
+          "vfcInstanceGroups": {}
+        },
+        "2017-388_PASQUALE-vPE 0": {
+          "uuid": "afacccf6-397d-45d6-b5ae-94c39734b168",
+          "invariantUuid": "72e465fe-71b1-4e7b-b5ed-9496118ff7a8",
+          "description": "Name PASQUALE vPE Description The provider edge function for the PASQUALE service supported by the Junipers VMX product Category Router Vendor Juniper Vendor Release Code 17.2 Owners Mary Fragale. Updated 9-25 to use v8.0 of the Juniper Valid 2 VLM",
+          "name": "2017-388_PASQUALE-vPE",
+          "version": "4.0",
+          "customizationUuid": "b3c76f73-eeb5-4fb6-9d31-72a889f1811c",
+          "inputs": {
+            "vnf_config_template_version": {
+              "type": "string",
+              "description": "VPE Software Version",
+              "entry_schema": null,
+              "inputProperties": null,
+              "constraints": [],
+              "required": true,
+              "default": "17.2"
+            },
+            "bandwidth_units": {
+              "type": "string",
+              "description": "Units of bandwidth",
+              "entry_schema": null,
+              "inputProperties": null,
+              "constraints": [],
+              "required": true,
+              "default": "Gbps"
+            },
+            "bandwidth": {
+              "type": "string",
+              "description": "Requested VPE bandwidth",
+              "entry_schema": null,
+              "inputProperties": null,
+              "constraints": [],
+              "required": true,
+              "default": "10"
+            },
+            "AIC_CLLI": {
+              "type": "string",
+              "description": "AIC Site CLLI",
+              "entry_schema": null,
+              "inputProperties": null,
+              "constraints": [],
+              "required": true,
+              "default": "ATLMY8GA"
+            },
+            "ASN": {
+              "type": "string",
+              "description": "AV/PE",
+              "entry_schema": null,
+              "inputProperties": null,
+              "constraints": [],
+              "required": true,
+              "default": "AV_vPE"
+            },
+            "vnf_instance_name": {
+              "type": "string",
+              "description": "The hostname assigned to the vpe.",
+              "entry_schema": null,
+              "inputProperties": null,
+              "constraints": [],
+              "required": true,
+              "default": "mtnj309me6"
+            }
+          },
+          "commands": {
+            "vnf_config_template_version": {
+              "displayName": "vnf_config_template_version",
+              "command": "get_input",
+              "inputName": "2017488_pasqualevpe0_vnf_config_template_version"
+            },
+            "bandwidth_units": {
+              "displayName": "bandwidth_units",
+              "command": "get_input",
+              "inputName": "pasqualevpe0_bandwidth_units"
+            },
+            "bandwidth": {
+              "displayName": "bandwidth",
+              "command": "get_input",
+              "inputName": "pasqualevpe0_bandwidth"
+            },
+            "AIC_CLLI": {
+              "displayName": "AIC_CLLI",
+              "command": "get_input",
+              "inputName": "2017488_pasqualevpe0_AIC_CLLI"
+            },
+            "ASN": {
+              "displayName": "ASN",
+              "command": "get_input",
+              "inputName": "2017488_pasqualevpe0_ASN"
+            },
+            "vnf_instance_name": {
+              "displayName": "vnf_instance_name",
+              "command": "get_input",
+              "inputName": "2017488_pasqualevpe0_vnf_instance_name"
+            }
+          },
+          "properties": {
+            "vmxvre_retype": "RE-VMX",
+            "vnf_config_template_version": "get_input:2017488_pasqualevpe0_vnf_config_template_version",
+            "sriov44_net_id": "48d399b3-11ee-48a8-94d2-f0ea94d6be8d",
+            "int_ctl_net_id": "2f323477-6936-4d01-ac53-d849430281d9",
+            "vmxvpfe_sriov41_0_port_mac": "00:11:22:EF:AC:DF",
+            "int_ctl_net_name": "VMX-INTXI",
+            "vmx_int_ctl_prefix": "10.0.0.10",
+            "sriov43_net_id": "da349ca1-6de9-4548-be88-2d88e99bfef5",
+            "sriov42_net_id": "760669ba-013d-4d9b-b0e7-4151fe2e6279",
+            "sriov41_net_id": "25ad52d5-c165-40f8-b3b0-ddfc2373280a",
+            "nf_type": "vPE",
+            "vmxvpfe_int_ctl_ip_1": "10.0.0.10",
+            "is_AVPN_service": "false",
+            "vmx_RSG_name": "vREXI-affinity",
+            "vmx_int_ctl_forwarding": "l2",
+            "vmxvre_oam_ip_0": "10.0.0.10",
+            "vmxvpfe_sriov44_0_port_mac": "00:11:22:EF:AC:DF",
+            "vmxvpfe_sriov41_0_port_vlanstrip": "false",
+            "vmxvpfe_sriov42_0_port_vlanfilter": "4001",
+            "vmxvpfe_sriov44_0_port_unknownunicastallow": "true",
+            "vmxvre_image_name_0": "VRE-ENGINE_17.2-S2.1.qcow2",
+            "vmxvre_instance": "0",
+            "vmxvpfe_sriov43_0_port_mac": "00:11:22:EF:AC:DF",
+            "vmxvre_flavor_name": "ns.c1r16d32.v5",
+            "vmxvpfe_volume_size_0": "40.0",
+            "vmxvpfe_sriov43_0_port_vlanfilter": "4001",
+            "nf_naming": "{ecomp_generated_naming=false}",
+            "nf_naming_code": "Navneet",
+            "vmxvre_name_0": "vREXI",
+            "vmxvpfe_sriov42_0_port_vlanstrip": "false",
+            "vmxvpfe_volume_name_0": "vPFEXI_FBVolume",
+            "vmx_RSG_id": "bd89a33c-13c3-4a04-8fde-1a57eb123141",
+            "vmxvpfe_image_name_0": "VPE_ROUTING-ENGINE_17.2R1-S2.1.qcow2",
+            "vmxvpfe_sriov43_0_port_unknownunicastallow": "true",
+            "vmxvpfe_sriov44_0_port_unknownmulticastallow": "true",
+            "vmxvre_console": "vidconsole",
+            "vmxvpfe_sriov44_0_port_vlanfilter": "4001",
+            "vmxvpfe_sriov42_0_port_mac": "00:11:22:EF:AC:DF",
+            "vmxvpfe_volume_id_0": "47cede15-da2f-4397-a101-aa683220aff3",
+            "vmxvpfe_sriov42_0_port_unknownmulticastallow": "true",
+            "min_instances": "1",
+            "vmxvpfe_sriov44_0_port_vlanstrip": "false",
+            "vf_module_id": "123",
+            "nf_function": "JAI",
+            "vmxvpfe_sriov43_0_port_unknownmulticastallow": "true",
+            "vmxvre_int_ctl_ip_0": "10.0.0.10",
+            "ecomp_generated_naming": "false",
+            "AIC_CLLI": "get_input:2017488_pasqualevpe0_AIC_CLLI",
+            "vnf_name": "mtnj309me6vre",
+            "vmxvpfe_sriov41_0_port_unknownunicastallow": "true",
+            "vmxvre_volume_type_1": "HITACHI",
+            "vmxvpfe_sriov44_0_port_broadcastallow": "true",
+            "vmxvre_volume_type_0": "HITACHI",
+            "vmxvpfe_volume_type_0": "HITACHI",
+            "vmxvpfe_sriov43_0_port_broadcastallow": "true",
+            "bandwidth_units": "get_input:pasqualevpe0_bandwidth_units",
+            "vnf_id": "123",
+            "vmxvre_oam_prefix": "24",
+            "availability_zone_0": "mtpocfo-kvm-az01",
+            "ASN": "get_input:2017488_pasqualevpe0_ASN",
+            "vmxvre_chassis_i2cid": "161",
+            "vmxvpfe_name_0": "vPFEXI",
+            "bandwidth": "get_input:pasqualevpe0_bandwidth",
+            "availability_zone_max_count": "1",
+            "vmxvre_volume_size_0": "45.0",
+            "vmxvre_volume_size_1": "50.0",
+            "vmxvpfe_sriov42_0_port_broadcastallow": "true",
+            "vmxvre_oam_gateway": "10.0.0.10",
+            "vmxvre_volume_name_1": "vREXI_FAVolume",
+            "vmxvre_ore_present": "0",
+            "vmxvre_volume_name_0": "vREXI_FBVolume",
+            "vmxvre_type": "0",
+            "vnf_instance_name": "get_input:2017488_pasqualevpe0_vnf_instance_name",
+            "vmxvpfe_sriov41_0_port_unknownmulticastallow": "true",
+            "oam_net_id": "b95eeb1d-d55d-4827-abb4-8ebb94941429",
+            "vmx_int_ctl_len": "24",
+            "vmxvpfe_sriov43_0_port_vlanstrip": "false",
+            "vmxvpfe_sriov41_0_port_broadcastallow": "true",
+            "vmxvre_volume_id_1": "6e86797e-03cd-4fdc-ba72-2957119c746d",
+            "vmxvpfe_sriov41_0_port_vlanfilter": "4001",
+            "nf_role": "Testing",
+            "vmxvre_volume_id_0": "f4eacb79-f687-4e9d-b760-21847c8bb15a",
+            "vmxvpfe_sriov42_0_port_unknownunicastallow": "true",
+            "vmxvpfe_flavor_name": "ns.c20r16d25.v5"
+          },
+          "type": "VF",
+          "modelCustomizationName": "2017-388_PASQUALE-vPE 0",
+          "vfModules": {},
+          "volumeGroups": {},
+          "vfcInstanceGroups": {}
+        },
+        "2017-488_PASQUALE-vPE 0": {
+          "uuid": "69e09f68-8b63-4cc9-b9ff-860960b5db09",
+          "invariantUuid": "72e465fe-71b1-4e7b-b5ed-9496118ff7a8",
+          "description": "Name PASQUALE vPE Description The provider edge function for the PASQUALE service supported by the Junipers VMX product Category Router Vendor Juniper Vendor Release Code 17.2 Owners Mary Fragale. Updated 9-25 to use v8.0 of the Juniper Valid 2 VLM",
+          "name": "2017-488_PASQUALE-vPE",
+          "version": "5.0",
+          "customizationUuid": "1da7b585-5e61-4993-b95e-8e6606c81e45",
+          "inputs": {
+            "vnf_config_template_version": {
+              "type": "string",
+              "description": "VPE Software Version",
+              "entry_schema": null,
+              "inputProperties": null,
+              "constraints": [],
+              "required": true,
+              "default": "17.2"
+            },
+            "bandwidth_units": {
+              "type": "string",
+              "description": "Units of bandwidth",
+              "entry_schema": null,
+              "inputProperties": null,
+              "constraints": [],
+              "required": true,
+              "default": "Gbps"
+            },
+            "bandwidth": {
+              "type": "string",
+              "description": "Requested VPE bandwidth",
+              "entry_schema": null,
+              "inputProperties": null,
+              "constraints": [],
+              "required": true,
+              "default": "10"
+            },
+            "AIC_CLLI": {
+              "type": "string",
+              "description": "AIC Site CLLI",
+              "entry_schema": null,
+              "inputProperties": null,
+              "constraints": [],
+              "required": true,
+              "default": "ATLMY8GA"
+            },
+            "ASN": {
+              "type": "string",
+              "description": "AV/PE",
+              "entry_schema": null,
+              "inputProperties": null,
+              "constraints": [],
+              "required": true,
+              "default": "AV_vPE"
+            },
+            "vnf_instance_name": {
+              "type": "string",
+              "description": "The hostname assigned to the vpe.",
+              "entry_schema": null,
+              "inputProperties": null,
+              "constraints": [],
+              "required": true,
+              "default": "mtnj309me6"
+            }
+          },
+          "commands": {
+            "vnf_config_template_version": {
+              "displayName": "vnf_config_template_version",
+              "command": "get_input",
+              "inputName": "2017488_pasqualevpe0_vnf_config_template_version"
+            },
+            "bandwidth_units": {
+              "displayName": "bandwidth_units",
+              "command": "get_input",
+              "inputName": "pasqualevpe0_bandwidth_units"
+            },
+            "bandwidth": {
+              "displayName": "bandwidth",
+              "command": "get_input",
+              "inputName": "pasqualevpe0_bandwidth"
+            },
+            "AIC_CLLI": {
+              "displayName": "AIC_CLLI",
+              "command": "get_input",
+              "inputName": "2017488_pasqualevpe0_AIC_CLLI"
+            },
+            "ASN": {
+              "displayName": "ASN",
+              "command": "get_input",
+              "inputName": "2017488_pasqualevpe0_ASN"
+            },
+            "vnf_instance_name": {
+              "displayName": "vnf_instance_name",
+              "command": "get_input",
+              "inputName": "2017488_pasqualevpe0_vnf_instance_name"
+            }
+          },
+          "properties": {
+            "vmxvre_retype": "RE-VMX",
+            "vnf_config_template_version": "get_input:2017488_pasqualevpe0_vnf_config_template_version",
+            "sriov44_net_id": "48d399b3-11ee-48a8-94d2-f0ea94d6be8d",
+            "int_ctl_net_id": "2f323477-6936-4d01-ac53-d849430281d9",
+            "vmxvpfe_sriov41_0_port_mac": "00:11:22:EF:AC:DF",
+            "int_ctl_net_name": "VMX-INTXI",
+            "vmx_int_ctl_prefix": "10.0.0.10",
+            "sriov43_net_id": "da349ca1-6de9-4548-be88-2d88e99bfef5",
+            "sriov42_net_id": "760669ba-013d-4d9b-b0e7-4151fe2e6279",
+            "sriov41_net_id": "25ad52d5-c165-40f8-b3b0-ddfc2373280a",
+            "nf_type": "vPE",
+            "vmxvpfe_int_ctl_ip_1": "10.0.0.10",
+            "is_AVPN_service": "false",
+            "vmx_RSG_name": "vREXI-affinity",
+            "vmx_int_ctl_forwarding": "l2",
+            "vmxvre_oam_ip_0": "10.0.0.10",
+            "vmxvpfe_sriov44_0_port_mac": "00:11:22:EF:AC:DF",
+            "vmxvpfe_sriov41_0_port_vlanstrip": "false",
+            "vmxvpfe_sriov42_0_port_vlanfilter": "4001",
+            "vmxvpfe_sriov44_0_port_unknownunicastallow": "true",
+            "vmxvre_image_name_0": "VRE-ENGINE_17.2-S2.1.qcow2",
+            "vmxvre_instance": "0",
+            "vmxvpfe_sriov43_0_port_mac": "00:11:22:EF:AC:DF",
+            "vmxvre_flavor_name": "ns.c1r16d32.v5",
+            "vmxvpfe_volume_size_0": "40.0",
+            "vmxvpfe_sriov43_0_port_vlanfilter": "4001",
+            "nf_naming": "{ecomp_generated_naming=false}",
+            "nf_naming_code": "Navneet",
+            "vmxvre_name_0": "vREXI",
+            "vmxvpfe_sriov42_0_port_vlanstrip": "false",
+            "vmxvpfe_volume_name_0": "vPFEXI_FBVolume",
+            "max_instances": "3",
+            "vmx_RSG_id": "bd89a33c-13c3-4a04-8fde-1a57eb123141",
+            "vmxvpfe_image_name_0": "VPE_ROUTING-ENGINE_17.2R1-S2.1.qcow2",
+            "vmxvpfe_sriov43_0_port_unknownunicastallow": "true",
+            "vmxvpfe_sriov44_0_port_unknownmulticastallow": "true",
+            "vmxvre_console": "vidconsole",
+            "vmxvpfe_sriov44_0_port_vlanfilter": "4001",
+            "vmxvpfe_sriov42_0_port_mac": "00:11:22:EF:AC:DF",
+            "vmxvpfe_volume_id_0": "47cede15-da2f-4397-a101-aa683220aff3",
+            "vmxvpfe_sriov42_0_port_unknownmulticastallow": "true",
+            "min_instances": "1",
+            "vmxvpfe_sriov44_0_port_vlanstrip": "false",
+            "vf_module_id": "123",
+            "nf_function": "JAI",
+            "vmxvpfe_sriov43_0_port_unknownmulticastallow": "true",
+            "vmxvre_int_ctl_ip_0": "10.0.0.10",
+            "ecomp_generated_naming": "false",
+            "AIC_CLLI": "get_input:2017488_pasqualevpe0_AIC_CLLI",
+            "vnf_name": "mtnj309me6vre",
+            "vmxvpfe_sriov41_0_port_unknownunicastallow": "true",
+            "vmxvre_volume_type_1": "HITACHI",
+            "vmxvpfe_sriov44_0_port_broadcastallow": "true",
+            "vmxvre_volume_type_0": "HITACHI",
+            "vmxvpfe_volume_type_0": "HITACHI",
+            "vmxvpfe_sriov43_0_port_broadcastallow": "true",
+            "bandwidth_units": "get_input:pasqualevpe0_bandwidth_units",
+            "vnf_id": "123",
+            "vmxvre_oam_prefix": "24",
+            "availability_zone_0": "mtpocfo-kvm-az01",
+            "ASN": "get_input:2017488_pasqualevpe0_ASN",
+            "vmxvre_chassis_i2cid": "161",
+            "vmxvpfe_name_0": "vPFEXI",
+            "bandwidth": "get_input:pasqualevpe0_bandwidth",
+            "availability_zone_max_count": "1",
+            "vmxvre_volume_size_0": "45.0",
+            "vmxvre_volume_size_1": "50.0",
+            "vmxvpfe_sriov42_0_port_broadcastallow": "true",
+            "vmxvre_oam_gateway": "10.0.0.10",
+            "vmxvre_volume_name_1": "vREXI_FAVolume",
+            "vmxvre_ore_present": "0",
+            "vmxvre_volume_name_0": "vREXI_FBVolume",
+            "vmxvre_type": "0",
+            "vnf_instance_name": "get_input:2017488_pasqualevpe0_vnf_instance_name",
+            "vmxvpfe_sriov41_0_port_unknownmulticastallow": "true",
+            "oam_net_id": "b95eeb1d-d55d-4827-abb4-8ebb94941429",
+            "vmx_int_ctl_len": "24",
+            "vmxvpfe_sriov43_0_port_vlanstrip": "false",
+            "vmxvpfe_sriov41_0_port_broadcastallow": "true",
+            "vmxvre_volume_id_1": "6e86797e-03cd-4fdc-ba72-2957119c746d",
+            "vmxvpfe_sriov41_0_port_vlanfilter": "4001",
+            "nf_role": "Testing",
+            "vmxvre_volume_id_0": "f4eacb79-f687-4e9d-b760-21847c8bb15a",
+            "vmxvpfe_sriov42_0_port_unknownunicastallow": "true",
+            "vmxvpfe_flavor_name": "ns.c20r16d25.v5"
+          },
+          "type": "VF",
+          "modelCustomizationName": "2017-488_PASQUALE-vPE 0",
+          "vfModules": {
+            "2017488_pasqualevpe0..2017488PasqualeVpe..PASQUALE_vRE_BV..module-1": {
+              "uuid": "25284168-24bb-4698-8cb4-3f509146eca5",
+              "invariantUuid": "7253ff5c-97f0-4b8b-937c-77aeb4d79aa1",
+              "customizationUuid": "f7e7c365-60cf-49a9-9ebf-a1aa11b9d401",
+              "description": null,
+              "name": "2017488PasqualeVpe..PASQUALE_vRE_BV..module-1",
+              "version": "6",
+              "modelCustomizationName": "2017488PasqualeVpe..PASQUALE_vRE_BV..module-1",
+              "properties": {
+                "minCountInstances": 0,
+                "maxCountInstances": null,
+                "initialCount": 0,
+                "vfModuleLabel": "PASQUALE_vRE_BV",
+                "baseModule": false
+              },
+              "inputs": {
+                "vnf_config_template_version": {
+                  "type": "string",
+                  "description": "VPE Software Version",
+                  "entry_schema": null,
+                  "inputProperties": {
+                    "sourceType": "HEAT",
+                    "vfModuleLabel": "PASQUALE_vRE_BV",
+                    "paramName": "vnf_config_template_version"
+                  },
+                  "fromInputName": "2017488_pasqualevpe0_vnf_config_template_version",
+                  "constraints": null,
+                  "required": true,
+                  "default": "17.2"
+                },
+                "bandwidth_units": {
+                  "type": "string",
+                  "description": "Units of bandwidth",
+                  "entry_schema": null,
+                  "inputProperties": {
+                    "sourceType": "HEAT",
+                    "vfModuleLabel": "PASQUALE_vRE_BV",
+                    "paramName": "bandwidth_units"
+                  },
+                  "fromInputName": "pasqualevpe0_bandwidth_units",
+                  "constraints": null,
+                  "required": true,
+                  "default": "Gbps"
+                },
+                "bandwidth": {
+                  "type": "string",
+                  "description": "Requested VPE bandwidth",
+                  "entry_schema": null,
+                  "inputProperties": {
+                    "sourceType": "HEAT",
+                    "vfModuleLabel": "PASQUALE_vRE_BV",
+                    "paramName": "bandwidth"
+                  },
+                  "fromInputName": "pasqualevpe0_bandwidth",
+                  "constraints": null,
+                  "required": true,
+                  "default": "10"
+                },
+                "AIC_CLLI": {
+                  "type": "string",
+                  "description": "AIC Site CLLI",
+                  "entry_schema": null,
+                  "inputProperties": {
+                    "sourceType": "HEAT",
+                    "vfModuleLabel": "PASQUALE_vRE_BV",
+                    "paramName": "AIC_CLLI"
+                  },
+                  "fromInputName": "2017488_pasqualevpe0_AIC_CLLI",
+                  "constraints": null,
+                  "required": true,
+                  "default": "ATLMY8GA"
+                },
+                "vnf_instance_name": {
+                  "type": "string",
+                  "description": "The hostname assigned to the vpe.",
+                  "entry_schema": null,
+                  "inputProperties": {
+                    "sourceType": "HEAT",
+                    "vfModuleLabel": "PASQUALE_vRE_BV",
+                    "paramName": "vnf_instance_name"
+                  },
+                  "fromInputName": "2017488_pasqualevpe0_vnf_instance_name",
+                  "constraints": null,
+                  "required": true,
+                  "default": "mtnj309me6"
+                }
+              },
+              "volumeGroupAllowed": true
+            },
+            "2017488_pasqualevpe0..2017488PasqualeVpe..PASQUALE_base_vPE_BV..module-0": {
+              "uuid": "f8360508-3f17-4414-a2ed-6bc71161e8db",
+              "invariantUuid": "b34833bb-6aa9-4ad6-a831-70b06367a091",
+              "customizationUuid": "a55961b2-2065-4ab0-a5b7-2fcee1c227e3",
+              "description": null,
+              "name": "2017488PasqualeVpe..PASQUALE_base_vPE_BV..module-0",
+              "version": "5",
+              "modelCustomizationName": "2017488PasqualeVpe..PASQUALE_base_vPE_BV..module-0",
+              "properties": {
+                "minCountInstances": 1,
+                "maxCountInstances": 1,
+                "initialCount": 1,
+                "vfModuleLabel": "PASQUALE_base_vPE_BV",
+                "baseModule": true
+              },
+              "inputs": {},
+              "volumeGroupAllowed": false
+            },
+            "2017488_pasqualevpe0..2017488PasqualeVpe..PASQUALE_vPFE_BV..module-2": {
+              "uuid": "0a0dd9d4-31d3-4c3a-ae89-a02f383e6a9a",
+              "invariantUuid": "eff8cc59-53a1-4101-aed7-8cf24ecf8339",
+              "customizationUuid": "3cd946bb-50e0-40d8-96d3-c9023520b557",
+              "description": null,
+              "name": "2017488PasqualeVpe..PASQUALE_vPFE_BV..module-2",
+              "version": "6",
+              "modelCustomizationName": "2017488PasqualeVpe..PASQUALE_vPFE_BV..module-2",
+              "properties": {
+                "minCountInstances": 0,
+                "maxCountInstances": null,
+                "initialCount": 0,
+                "vfModuleLabel": "PASQUALE_vPFE_BV",
+                "baseModule": false
+              },
+              "inputs": {},
+              "volumeGroupAllowed": true
+            }
+          },
+          "volumeGroups": {
+            "2017488_pasqualevpe0..2017488PasqualeVpe..PASQUALE_vRE_BV..module-1": {
+              "uuid": "25284168-24bb-4698-8cb4-3f509146eca5",
+              "invariantUuid": "7253ff5c-97f0-4b8b-937c-77aeb4d79aa1",
+              "customizationUuid": "f7e7c365-60cf-49a9-9ebf-a1aa11b9d401",
+              "description": null,
+              "name": "2017488PasqualeVpe..PASQUALE_vRE_BV..module-1",
+              "version": "6",
+              "modelCustomizationName": "2017488PasqualeVpe..PASQUALE_vRE_BV..module-1",
+              "properties": {
+                "minCountInstances": 0,
+                "maxCountInstances": null,
+                "initialCount": 0,
+                "vfModuleLabel": "PASQUALE_vRE_BV",
+                "baseModule": false
+              },
+              "inputs": {
+                "vnf_config_template_version": {
+                  "type": "string",
+                  "description": "VPE Software Version",
+                  "entry_schema": null,
+                  "inputProperties": {
+                    "sourceType": "HEAT",
+                    "vfModuleLabel": "PASQUALE_vRE_BV",
+                    "paramName": "vnf_config_template_version"
+                  },
+                  "fromInputName": "2017488_pasqualevpe0_vnf_config_template_version",
+                  "constraints": null,
+                  "required": true,
+                  "default": "17.2"
+                },
+                "bandwidth_units": {
+                  "type": "string",
+                  "description": "Units of bandwidth",
+                  "entry_schema": null,
+                  "inputProperties": {
+                    "sourceType": "HEAT",
+                    "vfModuleLabel": "PASQUALE_vRE_BV",
+                    "paramName": "bandwidth_units"
+                  },
+                  "fromInputName": "pasqualevpe0_bandwidth_units",
+                  "constraints": null,
+                  "required": true,
+                  "default": "Gbps"
+                },
+                "bandwidth": {
+                  "type": "string",
+                  "description": "Requested VPE bandwidth",
+                  "entry_schema": null,
+                  "inputProperties": {
+                    "sourceType": "HEAT",
+                    "vfModuleLabel": "PASQUALE_vRE_BV",
+                    "paramName": "bandwidth"
+                  },
+                  "fromInputName": "pasqualevpe0_bandwidth",
+                  "constraints": null,
+                  "required": true,
+                  "default": "10"
+                },
+                "AIC_CLLI": {
+                  "type": "string",
+                  "description": "AIC Site CLLI",
+                  "entry_schema": null,
+                  "inputProperties": {
+                    "sourceType": "HEAT",
+                    "vfModuleLabel": "PASQUALE_vRE_BV",
+                    "paramName": "AIC_CLLI"
+                  },
+                  "fromInputName": "2017488_pasqualevpe0_AIC_CLLI",
+                  "constraints": null,
+                  "required": true,
+                  "default": "ATLMY8GA"
+                },
+                "vnf_instance_name": {
+                  "type": "string",
+                  "description": "The hostname assigned to the vpe.",
+                  "entry_schema": null,
+                  "inputProperties": {
+                    "sourceType": "HEAT",
+                    "vfModuleLabel": "PASQUALE_vRE_BV",
+                    "paramName": "vnf_instance_name"
+                  },
+                  "fromInputName": "2017488_pasqualevpe0_vnf_instance_name",
+                  "constraints": null,
+                  "required": true,
+                  "default": "mtnj309me6"
+                }
+              }
+            },
+            "2017488_pasqualevpe0..2017488PasqualeVpe..PASQUALE_vPFE_BV..module-2": {
+              "uuid": "0a0dd9d4-31d3-4c3a-ae89-a02f383e6a9a",
+              "invariantUuid": "eff8cc59-53a1-4101-aed7-8cf24ecf8339",
+              "customizationUuid": "3cd946bb-50e0-40d8-96d3-c9023520b557",
+              "description": null,
+              "name": "2017488PasqualeVpe..PASQUALE_vPFE_BV..module-2",
+              "version": "6",
+              "modelCustomizationName": "2017488PasqualeVpe..PASQUALE_vPFE_BV..module-2",
+              "properties": {
+                "minCountInstances": 0,
+                "maxCountInstances": null,
+                "initialCount": 0,
+                "vfModuleLabel": "PASQUALE_vPFE_BV",
+                "baseModule": false
+              },
+              "inputs": {}
+            }
+          },
+          "vfcInstanceGroups": {}
+        }
+      },
+      "networks": {},
+      "configurations": {},
+      "fabricConfigurations": {},
+      "serviceProxies": {},
+      "vfModules": {
+        "2017488_pasqualevpe0..2017488PasqualeVpe..PASQUALE_vRE_BV..module-1": {
+          "uuid": "25284168-24bb-4698-8cb4-3f509146eca5",
+          "invariantUuid": "7253ff5c-97f0-4b8b-937c-77aeb4d79aa1",
+          "customizationUuid": "f7e7c365-60cf-49a9-9ebf-a1aa11b9d401",
+          "description": null,
+          "name": "2017488PasqualeVpe..PASQUALE_vRE_BV..module-1",
+          "version": "6",
+          "modelCustomizationName": "2017488PasqualeVpe..PASQUALE_vRE_BV..module-1",
+          "properties": {
+            "minCountInstances": 0,
+            "maxCountInstances": null,
+            "initialCount": 0,
+            "vfModuleLabel": "PASQUALE_vRE_BV",
+            "baseModule": false
+          },
+          "inputs": {
+            "vnf_config_template_version": {
+              "type": "string",
+              "description": "VPE Software Version",
+              "entry_schema": null,
+              "inputProperties": {
+                "sourceType": "HEAT",
+                "vfModuleLabel": "PASQUALE_vRE_BV",
+                "paramName": "vnf_config_template_version"
+              },
+              "fromInputName": "2017488_pasqualevpe0_vnf_config_template_version",
+              "constraints": null,
+              "required": true,
+              "default": "17.2"
+            },
+            "bandwidth_units": {
+              "type": "string",
+              "description": "Units of bandwidth",
+              "entry_schema": null,
+              "inputProperties": {
+                "sourceType": "HEAT",
+                "vfModuleLabel": "PASQUALE_vRE_BV",
+                "paramName": "bandwidth_units"
+              },
+              "fromInputName": "pasqualevpe0_bandwidth_units",
+              "constraints": null,
+              "required": true,
+              "default": "Gbps"
+            },
+            "bandwidth": {
+              "type": "string",
+              "description": "Requested VPE bandwidth",
+              "entry_schema": null,
+              "inputProperties": {
+                "sourceType": "HEAT",
+                "vfModuleLabel": "PASQUALE_vRE_BV",
+                "paramName": "bandwidth"
+              },
+              "fromInputName": "pasqualevpe0_bandwidth",
+              "constraints": null,
+              "required": true,
+              "default": "10"
+            },
+            "AIC_CLLI": {
+              "type": "string",
+              "description": "AIC Site CLLI",
+              "entry_schema": null,
+              "inputProperties": {
+                "sourceType": "HEAT",
+                "vfModuleLabel": "PASQUALE_vRE_BV",
+                "paramName": "AIC_CLLI"
+              },
+              "fromInputName": "2017488_pasqualevpe0_AIC_CLLI",
+              "constraints": null,
+              "required": true,
+              "default": "ATLMY8GA"
+            },
+            "vnf_instance_name": {
+              "type": "string",
+              "description": "The hostname assigned to the vpe.",
+              "entry_schema": null,
+              "inputProperties": {
+                "sourceType": "HEAT",
+                "vfModuleLabel": "PASQUALE_vRE_BV",
+                "paramName": "vnf_instance_name"
+              },
+              "fromInputName": "2017488_pasqualevpe0_vnf_instance_name",
+              "constraints": null,
+              "required": true,
+              "default": "mtnj309me6"
+            }
+          },
+          "volumeGroupAllowed": true
+        },
+        "2017488_pasqualevpe0..2017488PasqualeVpe..PASQUALE_base_vPE_BV..module-0": {
+          "uuid": "f8360508-3f17-4414-a2ed-6bc71161e8db",
+          "invariantUuid": "b34833bb-6aa9-4ad6-a831-70b06367a091",
+          "customizationUuid": "a55961b2-2065-4ab0-a5b7-2fcee1c227e3",
+          "description": null,
+          "name": "2017488PasqualeVpe..PASQUALE_base_vPE_BV..module-0",
+          "version": "5",
+          "modelCustomizationName": "2017488PasqualeVpe..PASQUALE_base_vPE_BV..module-0",
+          "properties": {
+            "minCountInstances": 1,
+            "maxCountInstances": 1,
+            "initialCount": 1,
+            "vfModuleLabel": "PASQUALE_base_vPE_BV",
+            "baseModule": true
+          },
+          "inputs": {},
+          "volumeGroupAllowed": false
+        },
+        "2017488_pasqualevpe0..2017488PasqualeVpe..PASQUALE_vPFE_BV..module-2": {
+          "uuid": "0a0dd9d4-31d3-4c3a-ae89-a02f383e6a9a",
+          "invariantUuid": "eff8cc59-53a1-4101-aed7-8cf24ecf8339",
+          "customizationUuid": "3cd946bb-50e0-40d8-96d3-c9023520b557",
+          "description": null,
+          "name": "2017488PasqualeVpe..PASQUALE_vPFE_BV..module-2",
+          "version": "6",
+          "modelCustomizationName": "2017488PasqualeVpe..PASQUALE_vPFE_BV..module-2",
+          "properties": {
+            "minCountInstances": 0,
+            "maxCountInstances": null,
+            "initialCount": 0,
+            "vfModuleLabel": "PASQUALE_vPFE_BV",
+            "baseModule": false
+          },
+          "inputs": {},
+          "volumeGroupAllowed": true
+        }
+      },
+      "volumeGroups": {
+        "2017488_pasqualevpe0..2017488PasqualeVpe..PASQUALE_vRE_BV..module-1": {
+          "uuid": "25284168-24bb-4698-8cb4-3f509146eca5",
+          "invariantUuid": "7253ff5c-97f0-4b8b-937c-77aeb4d79aa1",
+          "customizationUuid": "f7e7c365-60cf-49a9-9ebf-a1aa11b9d401",
+          "description": null,
+          "name": "2017488PasqualeVpe..PASQUALE_vRE_BV..module-1",
+          "version": "6",
+          "modelCustomizationName": "2017488PasqualeVpe..PASQUALE_vRE_BV..module-1",
+          "properties": {
+            "minCountInstances": 0,
+            "maxCountInstances": null,
+            "initialCount": 0,
+            "vfModuleLabel": "PASQUALE_vRE_BV",
+            "baseModule": false
+          },
+          "inputs": {
+            "vnf_config_template_version": {
+              "type": "string",
+              "description": "VPE Software Version",
+              "entry_schema": null,
+              "inputProperties": {
+                "sourceType": "HEAT",
+                "vfModuleLabel": "PASQUALE_vRE_BV",
+                "paramName": "vnf_config_template_version"
+              },
+              "fromInputName": "2017488_pasqualevpe0_vnf_config_template_version",
+              "constraints": null,
+              "required": true,
+              "default": "17.2"
+            },
+            "bandwidth_units": {
+              "type": "string",
+              "description": "Units of bandwidth",
+              "entry_schema": null,
+              "inputProperties": {
+                "sourceType": "HEAT",
+                "vfModuleLabel": "PASQUALE_vRE_BV",
+                "paramName": "bandwidth_units"
+              },
+              "fromInputName": "pasqualevpe0_bandwidth_units",
+              "constraints": null,
+              "required": true,
+              "default": "Gbps"
+            },
+            "bandwidth": {
+              "type": "string",
+              "description": "Requested VPE bandwidth",
+              "entry_schema": null,
+              "inputProperties": {
+                "sourceType": "HEAT",
+                "vfModuleLabel": "PASQUALE_vRE_BV",
+                "paramName": "bandwidth"
+              },
+              "fromInputName": "pasqualevpe0_bandwidth",
+              "constraints": null,
+              "required": true,
+              "default": "10"
+            },
+            "AIC_CLLI": {
+              "type": "string",
+              "description": "AIC Site CLLI",
+              "entry_schema": null,
+              "inputProperties": {
+                "sourceType": "HEAT",
+                "vfModuleLabel": "PASQUALE_vRE_BV",
+                "paramName": "AIC_CLLI"
+              },
+              "fromInputName": "2017488_pasqualevpe0_AIC_CLLI",
+              "constraints": null,
+              "required": true,
+              "default": "ATLMY8GA"
+            },
+            "vnf_instance_name": {
+              "type": "string",
+              "description": "The hostname assigned to the vpe.",
+              "entry_schema": null,
+              "inputProperties": {
+                "sourceType": "HEAT",
+                "vfModuleLabel": "PASQUALE_vRE_BV",
+                "paramName": "vnf_instance_name"
+              },
+              "fromInputName": "2017488_pasqualevpe0_vnf_instance_name",
+              "constraints": null,
+              "required": true,
+              "default": "mtnj309me6"
+            }
+          }
+        },
+        "2017488_pasqualevpe0..2017488PasqualeVpe..PASQUALE_vPFE_BV..module-2": {
+          "uuid": "0a0dd9d4-31d3-4c3a-ae89-a02f383e6a9a",
+          "invariantUuid": "eff8cc59-53a1-4101-aed7-8cf24ecf8339",
+          "customizationUuid": "3cd946bb-50e0-40d8-96d3-c9023520b557",
+          "description": null,
+          "name": "2017488PasqualeVpe..PASQUALE_vPFE_BV..module-2",
+          "version": "6",
+          "modelCustomizationName": "2017488PasqualeVpe..PASQUALE_vPFE_BV..module-2",
+          "properties": {
+            "minCountInstances": 0,
+            "maxCountInstances": null,
+            "initialCount": 0,
+            "vfModuleLabel": "PASQUALE_vPFE_BV",
+            "baseModule": false
+          },
+          "inputs": {}
+        }
+      },
+      "pnfs": {}
+    }
+  }
+
+});
diff --git a/vid-webpack-master/src/app/drawingBoard/service-planning/objectsToTree/models/collectionResource/collectionResource.model.info.ts b/vid-webpack-master/src/app/drawingBoard/service-planning/objectsToTree/models/collectionResource/collectionResource.model.info.ts
new file mode 100644 (file)
index 0000000..564e04b
--- /dev/null
@@ -0,0 +1,102 @@
+import {ILevelNodeInfo} from "../basic.model.info";
+import {ITreeNode} from "angular-tree-component/dist/defs/api";
+import {AvailableNodeIcons} from "../../../available-models-tree/available-models-tree.service";
+import {ComponentInfoType} from "../../../component-info/component-info-model";
+import {ModelInformationItem} from "../../../../../shared/components/model-information/model-information.component";
+import {CollectionResourceTreeNode} from "../../../../../shared/models/collectionResourceTreeNode";
+import {CollectionResourceInstance} from "../../../../../shared/models/collectionResourceInstance";
+import {CollectionResourceModel} from "../../../../../shared/models/collectionResourceModel";
+import * as _ from 'lodash';
+import {NcfModelInfo} from "../ncf/ncf.model.info";
+
+import {NgRedux} from "@angular-redux/store";
+import {AppState} from "../../../../../shared/store/reducers";
+import {deleteActionCrInstance, undoDeleteActionCrInstance} from "../../../../../shared/storeUtil/utils/cr/cr.actions";
+import {SharedTreeService} from "../../shared.tree.service";
+
+export class CollectionResourceModelInfo implements ILevelNodeInfo{
+  constructor(private _store: NgRedux<AppState>,private  _sharedTreeService: SharedTreeService){
+  }
+  name: string = 'collectionResources';
+  type : string = 'collection Resource';
+  typeName : string = 'CR';
+  childNames: string[] = ['ncfs'];
+  componentInfoType = ComponentInfoType.COLLECTION_RESOURCE;
+
+
+  isEcompGeneratedNaming(currentModel): boolean {return false; }
+
+  updateDynamicInputsDataFromModel = (currentModel): any => [];
+
+  getModel = (collectionResourceModelId: string, instance: CollectionResourceInstance, serviceHierarchy): CollectionResourceModel => {
+    const originalModelName = instance.originalName ? instance.originalName : collectionResourceModelId;
+    return new CollectionResourceModel(serviceHierarchy[this.name][originalModelName]);
+  };
+
+
+  createInstanceTreeNode = (instance: CollectionResourceInstance, model: CollectionResourceModel, parentModel, storeKey: string): CollectionResourceTreeNode => {
+      let node = new CollectionResourceTreeNode(instance, model, storeKey);
+      node.missingData = this.hasMissingData(instance, node, model.isEcompGeneratedNaming);
+      node.typeName = this.typeName;
+      node.menuActions = this.getMenuAction(<any>node, model.uuid);
+      node.isFailed = _.isNil(instance.isFailed) ? false : instance.isFailed;
+      node.statusMessage = !_.isNil(instance.statusMessage) ? instance.statusMessage : "";
+      return node;
+  };
+
+  getNextLevelObject = (): any => {
+    return new NcfModelInfo(this._store);
+  }
+
+  getTooltip = (): string => 'Collection Resource';
+
+  getType = (): string => 'collectionResource';
+
+  hasMissingData(instance, dynamicInputs: any, isEcompGeneratedNaming: boolean): boolean {return false; }
+
+  onClickAdd(node, serviceModelId: string): void { }
+
+  getNodeCount(node: ITreeNode, serviceModelId: string): number {return 0;}
+
+  showNodeIcons(node: ITreeNode, serviceModelId: string): AvailableNodeIcons { return null;}
+
+  getMenuAction(node: ITreeNode, serviceModelId: string): { [methodName: string]: { method: Function, visible: Function, enable: Function } } {
+    return <any>{
+      delete: {
+        method: (node, serviceModelId) => {
+          if ((!_.isNil(node.data.children) && node.data.children.length === 0) || _.isNil(node.data.children)) {
+            this._store.dispatch(deleteActionCrInstance(node.data.collectionResourceStoreKey, serviceModelId));
+        }
+        else {
+          this._sharedTreeService.removeDeleteAllChild(node, serviceModelId, (node, serviceModelId) => {
+            this._store.dispatch(deleteActionCrInstance(node.data.collectionResourceStoreKey, serviceModelId));
+          })
+        }},
+        visible: (node) => false,
+        enable: (node) => false
+      },
+      undoDelete: {
+        method: (node, serviceModelId) => {
+          if ((!_.isNil(node.data.children) && node.data.children.length === 0) || _.isNil(node.data.children)) {
+            this._store.dispatch(undoDeleteActionCrInstance(node.data.collectionResourceStoreKey, serviceModelId));
+          }
+          else {
+            this._sharedTreeService.undoDeleteAllChild(node, serviceModelId, (node, serviceModelId) => {
+              this._store.dispatch(undoDeleteActionCrInstance(node.data.collectionResourceStoreKey, serviceModelId));
+            })
+          }
+
+        },
+        visible: (node) => (node) => false,
+        enable: (node) => (node) => false
+      }
+
+    };
+  }
+
+  updatePosition(that , node, instanceId): void {}
+
+  getNodePosition(instance): number { return 0; }
+
+  getInfo(model, instance): ModelInformationItem[] {return [];}
+}
index d99ec3b..6b67de6 100644 (file)
@@ -50,7 +50,7 @@ describe('Vnf Model Info', () => {
 
   test('getModel should return Configuration model', () => {
     let configurationModelInfo: ConfigurationModelInfo = new ConfigurationModelInfo(_dynamicInputsService, _sharedTreeService);
-    let model = configurationModelInfo.getModel('2017-388_ADIOD-vPE 1__configuration', getServiceHierarchy());
+    let model = configurationModelInfo.getModel('2017-388_PASQUALE-vPE 1__configuration', getServiceHierarchy());
     expect(model.uuid).toEqual('0903e1c0-8e03-4936-b5c2-260653b96413');
   });
 
@@ -70,7 +70,7 @@ describe('Vnf Model Info', () => {
         "serviceEcompNaming": "false",
         "instantiationType": "Macro",
         "inputs": {
-          "2017488_adiodvpe0_ASN": {
+          "2017488_pasqualevpe0_ASN": {
             "type": "string",
             "description": "AV/PE",
             "entry_schema": null,
@@ -86,11 +86,11 @@ describe('Vnf Model Info', () => {
         }
       },
       "vnfs": {
-        "2017-388_ADIOD-vPE 1": {
+        "2017-388_PASQUALE-vPE 1": {
           "uuid": "0903e1c0-8e03-4936-b5c2-260653b96413",
           "invariantUuid": "00beb8f9-6d39-452f-816d-c709b9cbb87d",
-          "description": "Name ADIOD vPE Description The provider edge function for the ADIOD service supported by the Junipers VMX product Category Router Vendor Juniper Vendor Release Code 17.2 Owners Mary Fragale. Updated 9-25 to use v8.0 of the Juniper Valid 2 VLM",
-          "name": "2017-388_ADIOD-vPE",
+          "description": "Name PASQUALE vPE Description The provider edge function for the PASQUALE service supported by the Junipers VMX product Category Router Vendor Juniper Vendor Release Code 17.2 Owners Mary Fragale. Updated 9-25 to use v8.0 of the Juniper Valid 2 VLM",
+          "name": "2017-388_PASQUALE-vPE",
           "version": "1.0",
           "customizationUuid": "280dec31-f16d-488b-9668-4aae55d6648a",
           "inputs": {
@@ -153,37 +153,37 @@ describe('Vnf Model Info', () => {
             "vnf_config_template_version": {
               "displayName": "vnf_config_template_version",
               "command": "get_input",
-              "inputName": "2017488_adiodvpe0_vnf_config_template_version"
+              "inputName": "2017488_pasqualevpe0_vnf_config_template_version"
             },
             "bandwidth_units": {
               "displayName": "bandwidth_units",
               "command": "get_input",
-              "inputName": "adiodvpe0_bandwidth_units"
+              "inputName": "pasqualevpe0_bandwidth_units"
             },
             "bandwidth": {
               "displayName": "bandwidth",
               "command": "get_input",
-              "inputName": "adiodvpe0_bandwidth"
+              "inputName": "pasqualevpe0_bandwidth"
             },
             "AIC_CLLI": {
               "displayName": "AIC_CLLI",
               "command": "get_input",
-              "inputName": "2017488_adiodvpe0_AIC_CLLI"
+              "inputName": "2017488_pasqualevpe0_AIC_CLLI"
             },
             "ASN": {
               "displayName": "ASN",
               "command": "get_input",
-              "inputName": "2017488_adiodvpe0_ASN"
+              "inputName": "2017488_pasqualevpe0_ASN"
             },
             "vnf_instance_name": {
               "displayName": "vnf_instance_name",
               "command": "get_input",
-              "inputName": "2017488_adiodvpe0_vnf_instance_name"
+              "inputName": "2017488_pasqualevpe0_vnf_instance_name"
             }
           },
           "properties": {
             "vmxvre_retype": "RE-VMX",
-            "vnf_config_template_version": "get_input:2017488_adiodvpe0_vnf_config_template_version",
+            "vnf_config_template_version": "get_input:2017488_pasqualevpe0_vnf_config_template_version",
             "sriov44_net_id": "48d399b3-11ee-48a8-94d2-f0ea94d6be8d",
             "int_ctl_net_id": "2f323477-6936-4d01-ac53-d849430281d9",
             "vmxvpfe_sriov41_0_port_mac": "00:11:22:EF:AC:DF",
@@ -228,7 +228,7 @@ describe('Vnf Model Info', () => {
             "vmxvpfe_sriov43_0_port_unknownmulticastallow": "true",
             "vmxvre_int_ctl_ip_0": "10.0.0.10",
             "ecomp_generated_naming": "false",
-            "AIC_CLLI": "get_input:2017488_adiodvpe0_AIC_CLLI",
+            "AIC_CLLI": "get_input:2017488_pasqualevpe0_AIC_CLLI",
             "vnf_name": "mtnj309me6vre",
             "vmxvpfe_sriov41_0_port_unknownunicastallow": "true",
             "vmxvre_volume_type_1": "HITACHI",
@@ -236,14 +236,14 @@ describe('Vnf Model Info', () => {
             "vmxvre_volume_type_0": "HITACHI",
             "vmxvpfe_volume_type_0": "HITACHI",
             "vmxvpfe_sriov43_0_port_broadcastallow": "true",
-            "bandwidth_units": "get_input:adiodvpe0_bandwidth_units",
+            "bandwidth_units": "get_input:pasqualevpe0_bandwidth_units",
             "vnf_id": "123",
             "vmxvre_oam_prefix": "24",
             "availability_zone_0": "mtpocfo-kvm-az01",
-            "ASN": "get_input:2017488_adiodvpe0_ASN",
+            "ASN": "get_input:2017488_pasqualevpe0_ASN",
             "vmxvre_chassis_i2cid": "161",
             "vmxvpfe_name_0": "vPFEXI",
-            "bandwidth": "get_input:adiodvpe0_bandwidth",
+            "bandwidth": "get_input:pasqualevpe0_bandwidth",
             "availability_zone_max_count": "1",
             "vmxvre_volume_size_0": "45.0",
             "vmxvre_volume_size_1": "50.0",
@@ -253,7 +253,7 @@ describe('Vnf Model Info', () => {
             "vmxvre_ore_present": "0",
             "vmxvre_volume_name_0": "vREXI_FBVolume",
             "vmxvre_type": "0",
-            "vnf_instance_name": "get_input:2017488_adiodvpe0_vnf_instance_name",
+            "vnf_instance_name": "get_input:2017488_pasqualevpe0_vnf_instance_name",
             "vmxvpfe_sriov41_0_port_unknownmulticastallow": "true",
             "oam_net_id": "b95eeb1d-d55d-4827-abb4-8ebb94941429",
             "vmx_int_ctl_len": "24",
@@ -267,16 +267,16 @@ describe('Vnf Model Info', () => {
             "vmxvpfe_flavor_name": "ns.c20r16d25.v5"
           },
           "type": "VF",
-          "modelCustomizationName": "2017-388_ADIOD-vPE 1",
+          "modelCustomizationName": "2017-388_PASQUALE-vPE 1",
           "vfModules": {},
           "volumeGroups": {},
           "vfcInstanceGroups": {}
         },
-        "2017-388_ADIOD-vPE 0": {
+        "2017-388_PASQUALE-vPE 0": {
           "uuid": "afacccf6-397d-45d6-b5ae-94c39734b168",
           "invariantUuid": "72e465fe-71b1-4e7b-b5ed-9496118ff7a8",
-          "description": "Name ADIOD vPE Description The provider edge function for the ADIOD service supported by the Junipers VMX product Category Router Vendor Juniper Vendor Release Code 17.2 Owners Mary Fragale. Updated 9-25 to use v8.0 of the Juniper Valid 2 VLM",
-          "name": "2017-388_ADIOD-vPE",
+          "description": "Name PASQUALE vPE Description The provider edge function for the PASQUALE service supported by the Junipers VMX product Category Router Vendor Juniper Vendor Release Code 17.2 Owners Mary Fragale. Updated 9-25 to use v8.0 of the Juniper Valid 2 VLM",
+          "name": "2017-388_PASQUALE-vPE",
           "version": "4.0",
           "customizationUuid": "b3c76f73-eeb5-4fb6-9d31-72a889f1811c",
           "inputs": {
@@ -339,37 +339,37 @@ describe('Vnf Model Info', () => {
             "vnf_config_template_version": {
               "displayName": "vnf_config_template_version",
               "command": "get_input",
-              "inputName": "2017488_adiodvpe0_vnf_config_template_version"
+              "inputName": "2017488_pasqualevpe0_vnf_config_template_version"
             },
             "bandwidth_units": {
               "displayName": "bandwidth_units",
               "command": "get_input",
-              "inputName": "adiodvpe0_bandwidth_units"
+              "inputName": "pasqualevpe0_bandwidth_units"
             },
             "bandwidth": {
               "displayName": "bandwidth",
               "command": "get_input",
-              "inputName": "adiodvpe0_bandwidth"
+              "inputName": "pasqualevpe0_bandwidth"
             },
             "AIC_CLLI": {
               "displayName": "AIC_CLLI",
               "command": "get_input",
-              "inputName": "2017488_adiodvpe0_AIC_CLLI"
+              "inputName": "2017488_pasqualevpe0_AIC_CLLI"
             },
             "ASN": {
               "displayName": "ASN",
               "command": "get_input",
-              "inputName": "2017488_adiodvpe0_ASN"
+              "inputName": "2017488_pasqualevpe0_ASN"
             },
             "vnf_instance_name": {
               "displayName": "vnf_instance_name",
               "command": "get_input",
-              "inputName": "2017488_adiodvpe0_vnf_instance_name"
+              "inputName": "2017488_pasqualevpe0_vnf_instance_name"
             }
           },
           "properties": {
             "vmxvre_retype": "RE-VMX",
-            "vnf_config_template_version": "get_input:2017488_adiodvpe0_vnf_config_template_version",
+            "vnf_config_template_version": "get_input:2017488_pasqualevpe0_vnf_config_template_version",
             "sriov44_net_id": "48d399b3-11ee-48a8-94d2-f0ea94d6be8d",
             "int_ctl_net_id": "2f323477-6936-4d01-ac53-d849430281d9",
             "vmxvpfe_sriov41_0_port_mac": "00:11:22:EF:AC:DF",
@@ -415,7 +415,7 @@ describe('Vnf Model Info', () => {
             "vmxvpfe_sriov43_0_port_unknownmulticastallow": "true",
             "vmxvre_int_ctl_ip_0": "10.0.0.10",
             "ecomp_generated_naming": "false",
-            "AIC_CLLI": "get_input:2017488_adiodvpe0_AIC_CLLI",
+            "AIC_CLLI": "get_input:2017488_pasqualevpe0_AIC_CLLI",
             "vnf_name": "mtnj309me6vre",
             "vmxvpfe_sriov41_0_port_unknownunicastallow": "true",
             "vmxvre_volume_type_1": "HITACHI",
@@ -423,14 +423,14 @@ describe('Vnf Model Info', () => {
             "vmxvre_volume_type_0": "HITACHI",
             "vmxvpfe_volume_type_0": "HITACHI",
             "vmxvpfe_sriov43_0_port_broadcastallow": "true",
-            "bandwidth_units": "get_input:adiodvpe0_bandwidth_units",
+            "bandwidth_units": "get_input:pasqualevpe0_bandwidth_units",
             "vnf_id": "123",
             "vmxvre_oam_prefix": "24",
             "availability_zone_0": "mtpocfo-kvm-az01",
-            "ASN": "get_input:2017488_adiodvpe0_ASN",
+            "ASN": "get_input:2017488_pasqualevpe0_ASN",
             "vmxvre_chassis_i2cid": "161",
             "vmxvpfe_name_0": "vPFEXI",
-            "bandwidth": "get_input:adiodvpe0_bandwidth",
+            "bandwidth": "get_input:pasqualevpe0_bandwidth",
             "availability_zone_max_count": "1",
             "vmxvre_volume_size_0": "45.0",
             "vmxvre_volume_size_1": "50.0",
@@ -440,7 +440,7 @@ describe('Vnf Model Info', () => {
             "vmxvre_ore_present": "0",
             "vmxvre_volume_name_0": "vREXI_FBVolume",
             "vmxvre_type": "0",
-            "vnf_instance_name": "get_input:2017488_adiodvpe0_vnf_instance_name",
+            "vnf_instance_name": "get_input:2017488_pasqualevpe0_vnf_instance_name",
             "vmxvpfe_sriov41_0_port_unknownmulticastallow": "true",
             "oam_net_id": "b95eeb1d-d55d-4827-abb4-8ebb94941429",
             "vmx_int_ctl_len": "24",
@@ -454,16 +454,16 @@ describe('Vnf Model Info', () => {
             "vmxvpfe_flavor_name": "ns.c20r16d25.v5"
           },
           "type": "VF",
-          "modelCustomizationName": "2017-388_ADIOD-vPE 0",
+          "modelCustomizationName": "2017-388_PASQUALE-vPE 0",
           "vfModules": {},
           "volumeGroups": {},
           "vfcInstanceGroups": {}
         },
-        "2017-488_ADIOD-vPE 0": {
+        "2017-488_PASQUALE-vPE 0": {
           "uuid": "69e09f68-8b63-4cc9-b9ff-860960b5db09",
           "invariantUuid": "72e465fe-71b1-4e7b-b5ed-9496118ff7a8",
-          "description": "Name ADIOD vPE Description The provider edge function for the ADIOD service supported by the Junipers VMX product Category Router Vendor Juniper Vendor Release Code 17.2 Owners Mary Fragale. Updated 9-25 to use v8.0 of the Juniper Valid 2 VLM",
-          "name": "2017-488_ADIOD-vPE",
+          "description": "Name PASQUALE vPE Description The provider edge function for the PASQUALE service supported by the Junipers VMX product Category Router Vendor Juniper Vendor Release Code 17.2 Owners Mary Fragale. Updated 9-25 to use v8.0 of the Juniper Valid 2 VLM",
+          "name": "2017-488_PASQUALE-vPE",
           "version": "5.0",
           "customizationUuid": "1da7b585-5e61-4993-b95e-8e6606c81e45",
           "inputs": {
@@ -526,37 +526,37 @@ describe('Vnf Model Info', () => {
             "vnf_config_template_version": {
               "displayName": "vnf_config_template_version",
               "command": "get_input",
-              "inputName": "2017488_adiodvpe0_vnf_config_template_version"
+              "inputName": "2017488_pasqualevpe0_vnf_config_template_version"
             },
             "bandwidth_units": {
               "displayName": "bandwidth_units",
               "command": "get_input",
-              "inputName": "adiodvpe0_bandwidth_units"
+              "inputName": "pasqualevpe0_bandwidth_units"
             },
             "bandwidth": {
               "displayName": "bandwidth",
               "command": "get_input",
-              "inputName": "adiodvpe0_bandwidth"
+              "inputName": "pasqualevpe0_bandwidth"
             },
             "AIC_CLLI": {
               "displayName": "AIC_CLLI",
               "command": "get_input",
-              "inputName": "2017488_adiodvpe0_AIC_CLLI"
+              "inputName": "2017488_pasqualevpe0_AIC_CLLI"
             },
             "ASN": {
               "displayName": "ASN",
               "command": "get_input",
-              "inputName": "2017488_adiodvpe0_ASN"
+              "inputName": "2017488_pasqualevpe0_ASN"
             },
             "vnf_instance_name": {
               "displayName": "vnf_instance_name",
               "command": "get_input",
-              "inputName": "2017488_adiodvpe0_vnf_instance_name"
+              "inputName": "2017488_pasqualevpe0_vnf_instance_name"
             }
           },
           "properties": {
             "vmxvre_retype": "RE-VMX",
-            "vnf_config_template_version": "get_input:2017488_adiodvpe0_vnf_config_template_version",
+            "vnf_config_template_version": "get_input:2017488_pasqualevpe0_vnf_config_template_version",
             "sriov44_net_id": "48d399b3-11ee-48a8-94d2-f0ea94d6be8d",
             "int_ctl_net_id": "2f323477-6936-4d01-ac53-d849430281d9",
             "vmxvpfe_sriov41_0_port_mac": "00:11:22:EF:AC:DF",
@@ -603,7 +603,7 @@ describe('Vnf Model Info', () => {
             "vmxvpfe_sriov43_0_port_unknownmulticastallow": "true",
             "vmxvre_int_ctl_ip_0": "10.0.0.10",
             "ecomp_generated_naming": "false",
-            "AIC_CLLI": "get_input:2017488_adiodvpe0_AIC_CLLI",
+            "AIC_CLLI": "get_input:2017488_pasqualevpe0_AIC_CLLI",
             "vnf_name": "mtnj309me6vre",
             "vmxvpfe_sriov41_0_port_unknownunicastallow": "true",
             "vmxvre_volume_type_1": "HITACHI",
@@ -611,14 +611,14 @@ describe('Vnf Model Info', () => {
             "vmxvre_volume_type_0": "HITACHI",
             "vmxvpfe_volume_type_0": "HITACHI",
             "vmxvpfe_sriov43_0_port_broadcastallow": "true",
-            "bandwidth_units": "get_input:adiodvpe0_bandwidth_units",
+            "bandwidth_units": "get_input:pasqualevpe0_bandwidth_units",
             "vnf_id": "123",
             "vmxvre_oam_prefix": "24",
             "availability_zone_0": "mtpocfo-kvm-az01",
-            "ASN": "get_input:2017488_adiodvpe0_ASN",
+            "ASN": "get_input:2017488_pasqualevpe0_ASN",
             "vmxvre_chassis_i2cid": "161",
             "vmxvpfe_name_0": "vPFEXI",
-            "bandwidth": "get_input:adiodvpe0_bandwidth",
+            "bandwidth": "get_input:pasqualevpe0_bandwidth",
             "availability_zone_max_count": "1",
             "vmxvre_volume_size_0": "45.0",
             "vmxvre_volume_size_1": "50.0",
@@ -628,7 +628,7 @@ describe('Vnf Model Info', () => {
             "vmxvre_ore_present": "0",
             "vmxvre_volume_name_0": "vREXI_FBVolume",
             "vmxvre_type": "0",
-            "vnf_instance_name": "get_input:2017488_adiodvpe0_vnf_instance_name",
+            "vnf_instance_name": "get_input:2017488_pasqualevpe0_vnf_instance_name",
             "vmxvpfe_sriov41_0_port_unknownmulticastallow": "true",
             "oam_net_id": "b95eeb1d-d55d-4827-abb4-8ebb94941429",
             "vmx_int_ctl_len": "24",
@@ -642,21 +642,21 @@ describe('Vnf Model Info', () => {
             "vmxvpfe_flavor_name": "ns.c20r16d25.v5"
           },
           "type": "VF",
-          "modelCustomizationName": "2017-488_ADIOD-vPE 0",
+          "modelCustomizationName": "2017-488_PASQUALE-vPE 0",
           "vfModules": {
-            "2017488_adiodvpe0..2017488AdiodVpe..ADIOD_vRE_BV..module-1": {
+            "2017488_pasqualevpe0..2017488PasqualeVpe..PASQUALE_vRE_BV..module-1": {
               "uuid": "25284168-24bb-4698-8cb4-3f509146eca5",
               "invariantUuid": "7253ff5c-97f0-4b8b-937c-77aeb4d79aa1",
               "customizationUuid": "f7e7c365-60cf-49a9-9ebf-a1aa11b9d401",
               "description": null,
-              "name": "2017488AdiodVpe..ADIOD_vRE_BV..module-1",
+              "name": "2017488PasqualeVpe..PASQUALE_vRE_BV..module-1",
               "version": "6",
-              "modelCustomizationName": "2017488AdiodVpe..ADIOD_vRE_BV..module-1",
+              "modelCustomizationName": "2017488PasqualeVpe..PASQUALE_vRE_BV..module-1",
               "properties": {
                 "minCountInstances": 0,
                 "maxCountInstances": null,
                 "initialCount": 0,
-                "vfModuleLabel": "ADIOD_vRE_BV",
+                "vfModuleLabel": "PASQUALE_vRE_BV",
                 "baseModule": false
               },
               "inputs": {
@@ -666,10 +666,10 @@ describe('Vnf Model Info', () => {
                   "entry_schema": null,
                   "inputProperties": {
                     "sourceType": "HEAT",
-                    "vfModuleLabel": "ADIOD_vRE_BV",
+                    "vfModuleLabel": "PASQUALE_vRE_BV",
                     "paramName": "vnf_config_template_version"
                   },
-                  "fromInputName": "2017488_adiodvpe0_vnf_config_template_version",
+                  "fromInputName": "2017488_pasqualevpe0_vnf_config_template_version",
                   "constraints": null,
                   "required": true,
                   "default": "17.2"
@@ -680,10 +680,10 @@ describe('Vnf Model Info', () => {
                   "entry_schema": null,
                   "inputProperties": {
                     "sourceType": "HEAT",
-                    "vfModuleLabel": "ADIOD_vRE_BV",
+                    "vfModuleLabel": "PASQUALE_vRE_BV",
                     "paramName": "bandwidth_units"
                   },
-                  "fromInputName": "adiodvpe0_bandwidth_units",
+                  "fromInputName": "pasqualevpe0_bandwidth_units",
                   "constraints": null,
                   "required": true,
                   "default": "Gbps"
@@ -694,10 +694,10 @@ describe('Vnf Model Info', () => {
                   "entry_schema": null,
                   "inputProperties": {
                     "sourceType": "HEAT",
-                    "vfModuleLabel": "ADIOD_vRE_BV",
+                    "vfModuleLabel": "PASQUALE_vRE_BV",
                     "paramName": "bandwidth"
                   },
-                  "fromInputName": "adiodvpe0_bandwidth",
+                  "fromInputName": "pasqualevpe0_bandwidth",
                   "constraints": null,
                   "required": true,
                   "default": "10"
@@ -708,10 +708,10 @@ describe('Vnf Model Info', () => {
                   "entry_schema": null,
                   "inputProperties": {
                     "sourceType": "HEAT",
-                    "vfModuleLabel": "ADIOD_vRE_BV",
+                    "vfModuleLabel": "PASQUALE_vRE_BV",
                     "paramName": "AIC_CLLI"
                   },
-                  "fromInputName": "2017488_adiodvpe0_AIC_CLLI",
+                  "fromInputName": "2017488_pasqualevpe0_AIC_CLLI",
                   "constraints": null,
                   "required": true,
                   "default": "ATLMY8GA"
@@ -722,10 +722,10 @@ describe('Vnf Model Info', () => {
                   "entry_schema": null,
                   "inputProperties": {
                     "sourceType": "HEAT",
-                    "vfModuleLabel": "ADIOD_vRE_BV",
+                    "vfModuleLabel": "PASQUALE_vRE_BV",
                     "paramName": "vnf_instance_name"
                   },
-                  "fromInputName": "2017488_adiodvpe0_vnf_instance_name",
+                  "fromInputName": "2017488_pasqualevpe0_vnf_instance_name",
                   "constraints": null,
                   "required": true,
                   "default": "mtnj309me6"
@@ -733,37 +733,37 @@ describe('Vnf Model Info', () => {
               },
               "volumeGroupAllowed": true
             },
-            "2017488_adiodvpe0..2017488AdiodVpe..ADIOD_base_vPE_BV..module-0": {
+            "2017488_pasqualevpe0..2017488PasqualeVpe..PASQUALE_base_vPE_BV..module-0": {
               "uuid": "f8360508-3f17-4414-a2ed-6bc71161e8db",
               "invariantUuid": "b34833bb-6aa9-4ad6-a831-70b06367a091",
               "customizationUuid": "a55961b2-2065-4ab0-a5b7-2fcee1c227e3",
               "description": null,
-              "name": "2017488AdiodVpe..ADIOD_base_vPE_BV..module-0",
+              "name": "2017488PasqualeVpe..PASQUALE_base_vPE_BV..module-0",
               "version": "5",
-              "modelCustomizationName": "2017488AdiodVpe..ADIOD_base_vPE_BV..module-0",
+              "modelCustomizationName": "2017488PasqualeVpe..PASQUALE_base_vPE_BV..module-0",
               "properties": {
                 "minCountInstances": 1,
                 "maxCountInstances": 1,
                 "initialCount": 1,
-                "vfModuleLabel": "ADIOD_base_vPE_BV",
+                "vfModuleLabel": "PASQUALE_base_vPE_BV",
                 "baseModule": true
               },
               "inputs": {},
               "volumeGroupAllowed": false
             },
-            "2017488_adiodvpe0..2017488AdiodVpe..ADIOD_vPFE_BV..module-2": {
+            "2017488_pasqualevpe0..2017488PasqualeVpe..PASQUALE_vPFE_BV..module-2": {
               "uuid": "0a0dd9d4-31d3-4c3a-ae89-a02f383e6a9a",
               "invariantUuid": "eff8cc59-53a1-4101-aed7-8cf24ecf8339",
               "customizationUuid": "3cd946bb-50e0-40d8-96d3-c9023520b557",
               "description": null,
-              "name": "2017488AdiodVpe..ADIOD_vPFE_BV..module-2",
+              "name": "2017488PasqualeVpe..PASQUALE_vPFE_BV..module-2",
               "version": "6",
-              "modelCustomizationName": "2017488AdiodVpe..ADIOD_vPFE_BV..module-2",
+              "modelCustomizationName": "2017488PasqualeVpe..PASQUALE_vPFE_BV..module-2",
               "properties": {
                 "minCountInstances": 0,
                 "maxCountInstances": null,
                 "initialCount": 0,
-                "vfModuleLabel": "ADIOD_vPFE_BV",
+                "vfModuleLabel": "PASQUALE_vPFE_BV",
                 "baseModule": false
               },
               "inputs": {},
@@ -771,19 +771,19 @@ describe('Vnf Model Info', () => {
             }
           },
           "volumeGroups": {
-            "2017488_adiodvpe0..2017488AdiodVpe..ADIOD_vRE_BV..module-1": {
+            "2017488_pasqualevpe0..2017488PasqualeVpe..PASQUALE_vRE_BV..module-1": {
               "uuid": "25284168-24bb-4698-8cb4-3f509146eca5",
               "invariantUuid": "7253ff5c-97f0-4b8b-937c-77aeb4d79aa1",
               "customizationUuid": "f7e7c365-60cf-49a9-9ebf-a1aa11b9d401",
               "description": null,
-              "name": "2017488AdiodVpe..ADIOD_vRE_BV..module-1",
+              "name": "2017488PasqualeVpe..PASQUALE_vRE_BV..module-1",
               "version": "6",
-              "modelCustomizationName": "2017488AdiodVpe..ADIOD_vRE_BV..module-1",
+              "modelCustomizationName": "2017488PasqualeVpe..PASQUALE_vRE_BV..module-1",
               "properties": {
                 "minCountInstances": 0,
                 "maxCountInstances": null,
                 "initialCount": 0,
-                "vfModuleLabel": "ADIOD_vRE_BV",
+                "vfModuleLabel": "PASQUALE_vRE_BV",
                 "baseModule": false
               },
               "inputs": {
@@ -793,10 +793,10 @@ describe('Vnf Model Info', () => {
                   "entry_schema": null,
                   "inputProperties": {
                     "sourceType": "HEAT",
-                    "vfModuleLabel": "ADIOD_vRE_BV",
+                    "vfModuleLabel": "PASQUALE_vRE_BV",
                     "paramName": "vnf_config_template_version"
                   },
-                  "fromInputName": "2017488_adiodvpe0_vnf_config_template_version",
+                  "fromInputName": "2017488_pasqualevpe0_vnf_config_template_version",
                   "constraints": null,
                   "required": true,
                   "default": "17.2"
@@ -807,10 +807,10 @@ describe('Vnf Model Info', () => {
                   "entry_schema": null,
                   "inputProperties": {
                     "sourceType": "HEAT",
-                    "vfModuleLabel": "ADIOD_vRE_BV",
+                    "vfModuleLabel": "PASQUALE_vRE_BV",
                     "paramName": "bandwidth_units"
                   },
-                  "fromInputName": "adiodvpe0_bandwidth_units",
+                  "fromInputName": "pasqualevpe0_bandwidth_units",
                   "constraints": null,
                   "required": true,
                   "default": "Gbps"
@@ -821,10 +821,10 @@ describe('Vnf Model Info', () => {
                   "entry_schema": null,
                   "inputProperties": {
                     "sourceType": "HEAT",
-                    "vfModuleLabel": "ADIOD_vRE_BV",
+                    "vfModuleLabel": "PASQUALE_vRE_BV",
                     "paramName": "bandwidth"
                   },
-                  "fromInputName": "adiodvpe0_bandwidth",
+                  "fromInputName": "pasqualevpe0_bandwidth",
                   "constraints": null,
                   "required": true,
                   "default": "10"
@@ -835,10 +835,10 @@ describe('Vnf Model Info', () => {
                   "entry_schema": null,
                   "inputProperties": {
                     "sourceType": "HEAT",
-                    "vfModuleLabel": "ADIOD_vRE_BV",
+                    "vfModuleLabel": "PASQUALE_vRE_BV",
                     "paramName": "AIC_CLLI"
                   },
-                  "fromInputName": "2017488_adiodvpe0_AIC_CLLI",
+                  "fromInputName": "2017488_pasqualevpe0_AIC_CLLI",
                   "constraints": null,
                   "required": true,
                   "default": "ATLMY8GA"
@@ -849,29 +849,29 @@ describe('Vnf Model Info', () => {
                   "entry_schema": null,
                   "inputProperties": {
                     "sourceType": "HEAT",
-                    "vfModuleLabel": "ADIOD_vRE_BV",
+                    "vfModuleLabel": "PASQUALE_vRE_BV",
                     "paramName": "vnf_instance_name"
                   },
-                  "fromInputName": "2017488_adiodvpe0_vnf_instance_name",
+                  "fromInputName": "2017488_pasqualevpe0_vnf_instance_name",
                   "constraints": null,
                   "required": true,
                   "default": "mtnj309me6"
                 }
               }
             },
-            "2017488_adiodvpe0..2017488AdiodVpe..ADIOD_vPFE_BV..module-2": {
+            "2017488_pasqualevpe0..2017488PasqualeVpe..PASQUALE_vPFE_BV..module-2": {
               "uuid": "0a0dd9d4-31d3-4c3a-ae89-a02f383e6a9a",
               "invariantUuid": "eff8cc59-53a1-4101-aed7-8cf24ecf8339",
               "customizationUuid": "3cd946bb-50e0-40d8-96d3-c9023520b557",
               "description": null,
-              "name": "2017488AdiodVpe..ADIOD_vPFE_BV..module-2",
+              "name": "2017488PasqualeVpe..PASQUALE_vPFE_BV..module-2",
               "version": "6",
-              "modelCustomizationName": "2017488AdiodVpe..ADIOD_vPFE_BV..module-2",
+              "modelCustomizationName": "2017488PasqualeVpe..PASQUALE_vPFE_BV..module-2",
               "properties": {
                 "minCountInstances": 0,
                 "maxCountInstances": null,
                 "initialCount": 0,
-                "vfModuleLabel": "ADIOD_vPFE_BV",
+                "vfModuleLabel": "PASQUALE_vPFE_BV",
                 "baseModule": false
               },
               "inputs": {}
@@ -881,11 +881,11 @@ describe('Vnf Model Info', () => {
         }
       },
       "networks": {
-        "2017-388_ADIOD-vPE 1": {
+        "2017-388_PASQUALE-vPE 1": {
           "uuid": "0903e1c0-8e03-4936-b5c2-260653b96413",
           "invariantUuid": "00beb8f9-6d39-452f-816d-c709b9cbb87d",
-          "description": "Name ADIOD vPE Description The provider edge function for the ADIOD service supported by the Junipers VMX product Category Router Vendor Juniper Vendor Release Code 17.2 Owners Mary Fragale. Updated 9-25 to use v8.0 of the Juniper Valid 2 VLM",
-          "name": "2017-388_ADIOD-vPE",
+          "description": "Name PASQUALE vPE Description The provider edge function for the PASQUALE service supported by the Junipers VMX product Category Router Vendor Juniper Vendor Release Code 17.2 Owners Mary Fragale. Updated 9-25 to use v8.0 of the Juniper Valid 2 VLM",
+          "name": "2017-388_PASQUALE-vPE",
           "version": "1.0",
           "customizationUuid": "280dec31-f16d-488b-9668-4aae55d6648a",
           "inputs": {
@@ -948,37 +948,37 @@ describe('Vnf Model Info', () => {
             "vnf_config_template_version": {
               "displayName": "vnf_config_template_version",
               "command": "get_input",
-              "inputName": "2017488_adiodvpe0_vnf_config_template_version"
+              "inputName": "2017488_pasqualevpe0_vnf_config_template_version"
             },
             "bandwidth_units": {
               "displayName": "bandwidth_units",
               "command": "get_input",
-              "inputName": "adiodvpe0_bandwidth_units"
+              "inputName": "pasqualevpe0_bandwidth_units"
             },
             "bandwidth": {
               "displayName": "bandwidth",
               "command": "get_input",
-              "inputName": "adiodvpe0_bandwidth"
+              "inputName": "pasqualevpe0_bandwidth"
             },
             "AIC_CLLI": {
               "displayName": "AIC_CLLI",
               "command": "get_input",
-              "inputName": "2017488_adiodvpe0_AIC_CLLI"
+              "inputName": "2017488_pasqualevpe0_AIC_CLLI"
             },
             "ASN": {
               "displayName": "ASN",
               "command": "get_input",
-              "inputName": "2017488_adiodvpe0_ASN"
+              "inputName": "2017488_pasqualevpe0_ASN"
             },
             "vnf_instance_name": {
               "displayName": "vnf_instance_name",
               "command": "get_input",
-              "inputName": "2017488_adiodvpe0_vnf_instance_name"
+              "inputName": "2017488_pasqualevpe0_vnf_instance_name"
             }
           },
           "properties": {
             "vmxvre_retype": "RE-VMX",
-            "vnf_config_template_version": "get_input:2017488_adiodvpe0_vnf_config_template_version",
+            "vnf_config_template_version": "get_input:2017488_pasqualevpe0_vnf_config_template_version",
             "sriov44_net_id": "48d399b3-11ee-48a8-94d2-f0ea94d6be8d",
             "int_ctl_net_id": "2f323477-6936-4d01-ac53-d849430281d9",
             "vmxvpfe_sriov41_0_port_mac": "00:11:22:EF:AC:DF",
@@ -1023,7 +1023,7 @@ describe('Vnf Model Info', () => {
             "vmxvpfe_sriov43_0_port_unknownmulticastallow": "true",
             "vmxvre_int_ctl_ip_0": "10.0.0.10",
             "ecomp_generated_naming": "false",
-            "AIC_CLLI": "get_input:2017488_adiodvpe0_AIC_CLLI",
+            "AIC_CLLI": "get_input:2017488_pasqualevpe0_AIC_CLLI",
             "vnf_name": "mtnj309me6vre",
             "vmxvpfe_sriov41_0_port_unknownunicastallow": "true",
             "vmxvre_volume_type_1": "HITACHI",
@@ -1031,14 +1031,14 @@ describe('Vnf Model Info', () => {
             "vmxvre_volume_type_0": "HITACHI",
             "vmxvpfe_volume_type_0": "HITACHI",
             "vmxvpfe_sriov43_0_port_broadcastallow": "true",
-            "bandwidth_units": "get_input:adiodvpe0_bandwidth_units",
+            "bandwidth_units": "get_input:pasqualevpe0_bandwidth_units",
             "vnf_id": "123",
             "vmxvre_oam_prefix": "24",
             "availability_zone_0": "mtpocfo-kvm-az01",
-            "ASN": "get_input:2017488_adiodvpe0_ASN",
+            "ASN": "get_input:2017488_pasqualevpe0_ASN",
             "vmxvre_chassis_i2cid": "161",
             "vmxvpfe_name_0": "vPFEXI",
-            "bandwidth": "get_input:adiodvpe0_bandwidth",
+            "bandwidth": "get_input:pasqualevpe0_bandwidth",
             "availability_zone_max_count": "1",
             "vmxvre_volume_size_0": "45.0",
             "vmxvre_volume_size_1": "50.0",
@@ -1048,7 +1048,7 @@ describe('Vnf Model Info', () => {
             "vmxvre_ore_present": "0",
             "vmxvre_volume_name_0": "vREXI_FBVolume",
             "vmxvre_type": "0",
-            "vnf_instance_name": "get_input:2017488_adiodvpe0_vnf_instance_name",
+            "vnf_instance_name": "get_input:2017488_pasqualevpe0_vnf_instance_name",
             "vmxvpfe_sriov41_0_port_unknownmulticastallow": "true",
             "oam_net_id": "b95eeb1d-d55d-4827-abb4-8ebb94941429",
             "vmx_int_ctl_len": "24",
@@ -1062,19 +1062,19 @@ describe('Vnf Model Info', () => {
             "vmxvpfe_flavor_name": "ns.c20r16d25.v5"
           },
           "type": "VF",
-          "modelCustomizationName": "2017-388_ADIOD-vPE 1",
+          "modelCustomizationName": "2017-388_PASQUALE-vPE 1",
           "vfModules": {},
           "volumeGroups": {},
           "vfcInstanceGroups": {}
         }
       },
-      "collectionResource": {},
+      "collectionResources": {},
       "configurations": {
-        "2017-388_ADIOD-vPE 1__configuration": {
+        "2017-388_PASQUALE-vPE 1__configuration": {
           "uuid": "0903e1c0-8e03-4936-b5c2-260653b96413",
           "invariantUuid": "00beb8f9-6d39-452f-816d-c709b9cbb87d",
-          "description": "Name ADIOD vPE Description The provider edge function for the ADIOD service supported by the Junipers VMX product Category Router Vendor Juniper Vendor Release Code 17.2 Owners Mary Fragale. Updated 9-25 to use v8.0 of the Juniper Valid 2 VLM",
-          "name": "2017-388_ADIOD-vPE",
+          "description": "Name PASQUALE vPE Description The provider edge function for the PASQUALE service supported by the Junipers VMX product Category Router Vendor Juniper Vendor Release Code 17.2 Owners Mary Fragale. Updated 9-25 to use v8.0 of the Juniper Valid 2 VLM",
+          "name": "2017-388_PASQUALE-vPE",
           "version": "1.0",
           "customizationUuid": "280dec31-f16d-488b-9668-4aae55d6648a",
           "inputs": {
@@ -1137,37 +1137,37 @@ describe('Vnf Model Info', () => {
             "vnf_config_template_version": {
               "displayName": "vnf_config_template_version",
               "command": "get_input",
-              "inputName": "2017488_adiodvpe0_vnf_config_template_version"
+              "inputName": "2017488_pasqualevpe0_vnf_config_template_version"
             },
             "bandwidth_units": {
               "displayName": "bandwidth_units",
               "command": "get_input",
-              "inputName": "adiodvpe0_bandwidth_units"
+              "inputName": "pasqualevpe0_bandwidth_units"
             },
             "bandwidth": {
               "displayName": "bandwidth",
               "command": "get_input",
-              "inputName": "adiodvpe0_bandwidth"
+              "inputName": "pasqualevpe0_bandwidth"
             },
             "AIC_CLLI": {
               "displayName": "AIC_CLLI",
               "command": "get_input",
-              "inputName": "2017488_adiodvpe0_AIC_CLLI"
+              "inputName": "2017488_pasqualevpe0_AIC_CLLI"
             },
             "ASN": {
               "displayName": "ASN",
               "command": "get_input",
-              "inputName": "2017488_adiodvpe0_ASN"
+              "inputName": "2017488_pasqualevpe0_ASN"
             },
             "vnf_instance_name": {
               "displayName": "vnf_instance_name",
               "command": "get_input",
-              "inputName": "2017488_adiodvpe0_vnf_instance_name"
+              "inputName": "2017488_pasqualevpe0_vnf_instance_name"
             }
           },
           "properties": {
             "vmxvre_retype": "RE-VMX",
-            "vnf_config_template_version": "get_input:2017488_adiodvpe0_vnf_config_template_version",
+            "vnf_config_template_version": "get_input:2017488_pasqualevpe0_vnf_config_template_version",
             "sriov44_net_id": "48d399b3-11ee-48a8-94d2-f0ea94d6be8d",
             "int_ctl_net_id": "2f323477-6936-4d01-ac53-d849430281d9",
             "vmxvpfe_sriov41_0_port_mac": "00:11:22:EF:AC:DF",
@@ -1212,7 +1212,7 @@ describe('Vnf Model Info', () => {
             "vmxvpfe_sriov43_0_port_unknownmulticastallow": "true",
             "vmxvre_int_ctl_ip_0": "10.0.0.10",
             "ecomp_generated_naming": "false",
-            "AIC_CLLI": "get_input:2017488_adiodvpe0_AIC_CLLI",
+            "AIC_CLLI": "get_input:2017488_pasqualevpe0_AIC_CLLI",
             "vnf_name": "mtnj309me6vre",
             "vmxvpfe_sriov41_0_port_unknownunicastallow": "true",
             "vmxvre_volume_type_1": "HITACHI",
@@ -1220,14 +1220,14 @@ describe('Vnf Model Info', () => {
             "vmxvre_volume_type_0": "HITACHI",
             "vmxvpfe_volume_type_0": "HITACHI",
             "vmxvpfe_sriov43_0_port_broadcastallow": "true",
-            "bandwidth_units": "get_input:adiodvpe0_bandwidth_units",
+            "bandwidth_units": "get_input:pasqualevpe0_bandwidth_units",
             "vnf_id": "123",
             "vmxvre_oam_prefix": "24",
             "availability_zone_0": "mtpocfo-kvm-az01",
-            "ASN": "get_input:2017488_adiodvpe0_ASN",
+            "ASN": "get_input:2017488_pasqualevpe0_ASN",
             "vmxvre_chassis_i2cid": "161",
             "vmxvpfe_name_0": "vPFEXI",
-            "bandwidth": "get_input:adiodvpe0_bandwidth",
+            "bandwidth": "get_input:pasqualevpe0_bandwidth",
             "availability_zone_max_count": "1",
             "vmxvre_volume_size_0": "45.0",
             "vmxvre_volume_size_1": "50.0",
@@ -1237,7 +1237,7 @@ describe('Vnf Model Info', () => {
             "vmxvre_ore_present": "0",
             "vmxvre_volume_name_0": "vREXI_FBVolume",
             "vmxvre_type": "0",
-            "vnf_instance_name": "get_input:2017488_adiodvpe0_vnf_instance_name",
+            "vnf_instance_name": "get_input:2017488_pasqualevpe0_vnf_instance_name",
             "vmxvpfe_sriov41_0_port_unknownmulticastallow": "true",
             "oam_net_id": "b95eeb1d-d55d-4827-abb4-8ebb94941429",
             "vmx_int_ctl_len": "24",
@@ -1251,7 +1251,7 @@ describe('Vnf Model Info', () => {
             "vmxvpfe_flavor_name": "ns.c20r16d25.v5"
           },
           "type": "VF",
-          "modelCustomizationName": "2017-388_ADIOD-vPE 1",
+          "modelCustomizationName": "2017-388_PASQUALE-vPE 1",
           "vfModules": {},
           "volumeGroups": {},
           "vfcInstanceGroups": {}
@@ -1261,19 +1261,19 @@ describe('Vnf Model Info', () => {
       "fabricConfigurations": {},
       "serviceProxies": {},
       "vfModules": {
-        "2017488_adiodvpe0..2017488AdiodVpe..ADIOD_vRE_BV..module-1": {
+        "2017488_pasqualevpe0..2017488PasqualeVpe..PASQUALE_vRE_BV..module-1": {
           "uuid": "25284168-24bb-4698-8cb4-3f509146eca5",
           "invariantUuid": "7253ff5c-97f0-4b8b-937c-77aeb4d79aa1",
           "customizationUuid": "f7e7c365-60cf-49a9-9ebf-a1aa11b9d401",
           "description": null,
-          "name": "2017488AdiodVpe..ADIOD_vRE_BV..module-1",
+          "name": "2017488PasqualeVpe..PASQUALE_vRE_BV..module-1",
           "version": "6",
-          "modelCustomizationName": "2017488AdiodVpe..ADIOD_vRE_BV..module-1",
+          "modelCustomizationName": "2017488PasqualeVpe..PASQUALE_vRE_BV..module-1",
           "properties": {
             "minCountInstances": 0,
             "maxCountInstances": null,
             "initialCount": 0,
-            "vfModuleLabel": "ADIOD_vRE_BV",
+            "vfModuleLabel": "PASQUALE_vRE_BV",
             "baseModule": false
           },
           "inputs": {
@@ -1283,10 +1283,10 @@ describe('Vnf Model Info', () => {
               "entry_schema": null,
               "inputProperties": {
                 "sourceType": "HEAT",
-                "vfModuleLabel": "ADIOD_vRE_BV",
+                "vfModuleLabel": "PASQUALE_vRE_BV",
                 "paramName": "vnf_config_template_version"
               },
-              "fromInputName": "2017488_adiodvpe0_vnf_config_template_version",
+              "fromInputName": "2017488_pasqualevpe0_vnf_config_template_version",
               "constraints": null,
               "required": true,
               "default": "17.2"
@@ -1297,10 +1297,10 @@ describe('Vnf Model Info', () => {
               "entry_schema": null,
               "inputProperties": {
                 "sourceType": "HEAT",
-                "vfModuleLabel": "ADIOD_vRE_BV",
+                "vfModuleLabel": "PASQUALE_vRE_BV",
                 "paramName": "bandwidth_units"
               },
-              "fromInputName": "adiodvpe0_bandwidth_units",
+              "fromInputName": "pasqualevpe0_bandwidth_units",
               "constraints": null,
               "required": true,
               "default": "Gbps"
@@ -1311,10 +1311,10 @@ describe('Vnf Model Info', () => {
               "entry_schema": null,
               "inputProperties": {
                 "sourceType": "HEAT",
-                "vfModuleLabel": "ADIOD_vRE_BV",
+                "vfModuleLabel": "PASQUALE_vRE_BV",
                 "paramName": "bandwidth"
               },
-              "fromInputName": "adiodvpe0_bandwidth",
+              "fromInputName": "pasqualevpe0_bandwidth",
               "constraints": null,
               "required": true,
               "default": "10"
@@ -1325,10 +1325,10 @@ describe('Vnf Model Info', () => {
               "entry_schema": null,
               "inputProperties": {
                 "sourceType": "HEAT",
-                "vfModuleLabel": "ADIOD_vRE_BV",
+                "vfModuleLabel": "PASQUALE_vRE_BV",
                 "paramName": "AIC_CLLI"
               },
-              "fromInputName": "2017488_adiodvpe0_AIC_CLLI",
+              "fromInputName": "2017488_pasqualevpe0_AIC_CLLI",
               "constraints": null,
               "required": true,
               "default": "ATLMY8GA"
@@ -1339,10 +1339,10 @@ describe('Vnf Model Info', () => {
               "entry_schema": null,
               "inputProperties": {
                 "sourceType": "HEAT",
-                "vfModuleLabel": "ADIOD_vRE_BV",
+                "vfModuleLabel": "PASQUALE_vRE_BV",
                 "paramName": "vnf_instance_name"
               },
-              "fromInputName": "2017488_adiodvpe0_vnf_instance_name",
+              "fromInputName": "2017488_pasqualevpe0_vnf_instance_name",
               "constraints": null,
               "required": true,
               "default": "mtnj309me6"
@@ -1350,37 +1350,37 @@ describe('Vnf Model Info', () => {
           },
           "volumeGroupAllowed": true
         },
-        "2017488_adiodvpe0..2017488AdiodVpe..ADIOD_base_vPE_BV..module-0": {
+        "2017488_pasqualevpe0..2017488PasqualeVpe..PASQUALE_base_vPE_BV..module-0": {
           "uuid": "f8360508-3f17-4414-a2ed-6bc71161e8db",
           "invariantUuid": "b34833bb-6aa9-4ad6-a831-70b06367a091",
           "customizationUuid": "a55961b2-2065-4ab0-a5b7-2fcee1c227e3",
           "description": null,
-          "name": "2017488AdiodVpe..ADIOD_base_vPE_BV..module-0",
+          "name": "2017488PasqualeVpe..PASQUALE_base_vPE_BV..module-0",
           "version": "5",
-          "modelCustomizationName": "2017488AdiodVpe..ADIOD_base_vPE_BV..module-0",
+          "modelCustomizationName": "2017488PasqualeVpe..PASQUALE_base_vPE_BV..module-0",
           "properties": {
             "minCountInstances": 1,
             "maxCountInstances": 1,
             "initialCount": 1,
-            "vfModuleLabel": "ADIOD_base_vPE_BV",
+            "vfModuleLabel": "PASQUALE_base_vPE_BV",
             "baseModule": true
           },
           "inputs": {},
           "volumeGroupAllowed": false
         },
-        "2017488_adiodvpe0..2017488AdiodVpe..ADIOD_vPFE_BV..module-2": {
+        "2017488_pasqualevpe0..2017488PasqualeVpe..PASQUALE_vPFE_BV..module-2": {
           "uuid": "0a0dd9d4-31d3-4c3a-ae89-a02f383e6a9a",
           "invariantUuid": "eff8cc59-53a1-4101-aed7-8cf24ecf8339",
           "customizationUuid": "3cd946bb-50e0-40d8-96d3-c9023520b557",
           "description": null,
-          "name": "2017488AdiodVpe..ADIOD_vPFE_BV..module-2",
+          "name": "2017488PasqualeVpe..PASQUALE_vPFE_BV..module-2",
           "version": "6",
-          "modelCustomizationName": "2017488AdiodVpe..ADIOD_vPFE_BV..module-2",
+          "modelCustomizationName": "2017488PasqualeVpe..PASQUALE_vPFE_BV..module-2",
           "properties": {
             "minCountInstances": 0,
             "maxCountInstances": null,
             "initialCount": 0,
-            "vfModuleLabel": "ADIOD_vPFE_BV",
+            "vfModuleLabel": "PASQUALE_vPFE_BV",
             "baseModule": false
           },
           "inputs": {},
@@ -1388,19 +1388,19 @@ describe('Vnf Model Info', () => {
         }
       },
       "volumeGroups": {
-        "2017488_adiodvpe0..2017488AdiodVpe..ADIOD_vRE_BV..module-1": {
+        "2017488_pasqualevpe0..2017488PasqualeVpe..PASQUALE_vRE_BV..module-1": {
           "uuid": "25284168-24bb-4698-8cb4-3f509146eca5",
           "invariantUuid": "7253ff5c-97f0-4b8b-937c-77aeb4d79aa1",
           "customizationUuid": "f7e7c365-60cf-49a9-9ebf-a1aa11b9d401",
           "description": null,
-          "name": "2017488AdiodVpe..ADIOD_vRE_BV..module-1",
+          "name": "2017488PasqualeVpe..PASQUALE_vRE_BV..module-1",
           "version": "6",
-          "modelCustomizationName": "2017488AdiodVpe..ADIOD_vRE_BV..module-1",
+          "modelCustomizationName": "2017488PasqualeVpe..PASQUALE_vRE_BV..module-1",
           "properties": {
             "minCountInstances": 0,
             "maxCountInstances": null,
             "initialCount": 0,
-            "vfModuleLabel": "ADIOD_vRE_BV",
+            "vfModuleLabel": "PASQUALE_vRE_BV",
             "baseModule": false
           },
           "inputs": {
@@ -1410,10 +1410,10 @@ describe('Vnf Model Info', () => {
               "entry_schema": null,
               "inputProperties": {
                 "sourceType": "HEAT",
-                "vfModuleLabel": "ADIOD_vRE_BV",
+                "vfModuleLabel": "PASQUALE_vRE_BV",
                 "paramName": "vnf_config_template_version"
               },
-              "fromInputName": "2017488_adiodvpe0_vnf_config_template_version",
+              "fromInputName": "2017488_pasqualevpe0_vnf_config_template_version",
               "constraints": null,
               "required": true,
               "default": "17.2"
@@ -1424,10 +1424,10 @@ describe('Vnf Model Info', () => {
               "entry_schema": null,
               "inputProperties": {
                 "sourceType": "HEAT",
-                "vfModuleLabel": "ADIOD_vRE_BV",
+                "vfModuleLabel": "PASQUALE_vRE_BV",
                 "paramName": "bandwidth_units"
               },
-              "fromInputName": "adiodvpe0_bandwidth_units",
+              "fromInputName": "pasqualevpe0_bandwidth_units",
               "constraints": null,
               "required": true,
               "default": "Gbps"
@@ -1438,10 +1438,10 @@ describe('Vnf Model Info', () => {
               "entry_schema": null,
               "inputProperties": {
                 "sourceType": "HEAT",
-                "vfModuleLabel": "ADIOD_vRE_BV",
+                "vfModuleLabel": "PASQUALE_vRE_BV",
                 "paramName": "bandwidth"
               },
-              "fromInputName": "adiodvpe0_bandwidth",
+              "fromInputName": "pasqualevpe0_bandwidth",
               "constraints": null,
               "required": true,
               "default": "10"
@@ -1452,10 +1452,10 @@ describe('Vnf Model Info', () => {
               "entry_schema": null,
               "inputProperties": {
                 "sourceType": "HEAT",
-                "vfModuleLabel": "ADIOD_vRE_BV",
+                "vfModuleLabel": "PASQUALE_vRE_BV",
                 "paramName": "AIC_CLLI"
               },
-              "fromInputName": "2017488_adiodvpe0_AIC_CLLI",
+              "fromInputName": "2017488_pasqualevpe0_AIC_CLLI",
               "constraints": null,
               "required": true,
               "default": "ATLMY8GA"
@@ -1466,29 +1466,29 @@ describe('Vnf Model Info', () => {
               "entry_schema": null,
               "inputProperties": {
                 "sourceType": "HEAT",
-                "vfModuleLabel": "ADIOD_vRE_BV",
+                "vfModuleLabel": "PASQUALE_vRE_BV",
                 "paramName": "vnf_instance_name"
               },
-              "fromInputName": "2017488_adiodvpe0_vnf_instance_name",
+              "fromInputName": "2017488_pasqualevpe0_vnf_instance_name",
               "constraints": null,
               "required": true,
               "default": "mtnj309me6"
             }
           }
         },
-        "2017488_adiodvpe0..2017488AdiodVpe..ADIOD_vPFE_BV..module-2": {
+        "2017488_pasqualevpe0..2017488PasqualeVpe..PASQUALE_vPFE_BV..module-2": {
           "uuid": "0a0dd9d4-31d3-4c3a-ae89-a02f383e6a9a",
           "invariantUuid": "eff8cc59-53a1-4101-aed7-8cf24ecf8339",
           "customizationUuid": "3cd946bb-50e0-40d8-96d3-c9023520b557",
           "description": null,
-          "name": "2017488AdiodVpe..ADIOD_vPFE_BV..module-2",
+          "name": "2017488PasqualeVpe..PASQUALE_vPFE_BV..module-2",
           "version": "6",
-          "modelCustomizationName": "2017488AdiodVpe..ADIOD_vPFE_BV..module-2",
+          "modelCustomizationName": "2017488PasqualeVpe..PASQUALE_vPFE_BV..module-2",
           "properties": {
             "minCountInstances": 0,
             "maxCountInstances": null,
             "initialCount": 0,
-            "vfModuleLabel": "ADIOD_vPFE_BV",
+            "vfModuleLabel": "PASQUALE_vPFE_BV",
             "baseModule": false
           },
           "inputs": {}
index dd85ea1..0d1a9aa 100644 (file)
@@ -4,6 +4,8 @@ import * as _ from 'lodash';
 import {SharedTreeService} from "../../shared.tree.service";
 import {ITreeNode} from "angular-tree-component/dist/defs/api";
 import {AvailableNodeIcons} from "../../../available-models-tree/available-models-tree.service";
+import {ComponentInfoType} from "../../../component-info/component-info-model";
+import {ModelInformationItem} from "../../../../../shared/components/model-information/model-information.component";
 
 export class ConfigurationModelInfo implements ILevelNodeInfo{
   constructor(private _dynamicInputsService : DynamicInputsService,
@@ -11,6 +13,7 @@ export class ConfigurationModelInfo implements ILevelNodeInfo{
   name: string = 'configurations';
   type : string = 'Configuration';
   typeName : string = 'C';
+  componentInfoType = ComponentInfoType.CONFIGURATION;
 
   isEcompGeneratedNaming = () : boolean => true;
 
@@ -38,8 +41,7 @@ export class ConfigurationModelInfo implements ILevelNodeInfo{
 
   createInstanceTreeNode(instance: any, model: any, storeKey: string): any {return null;}
 
-  childName: string;
-  childType: string;
+  childNames: string[];
 
   /***********************************************************
    * return if instance has missing data
@@ -84,4 +86,8 @@ export class ConfigurationModelInfo implements ILevelNodeInfo{
   onSelectedNode(node: ITreeNode): void {
   }
 
+  getInfo(model, instance): ModelInformationItem[] {
+    return [];
+  }
+
 }
diff --git a/vid-webpack-master/src/app/drawingBoard/service-planning/objectsToTree/models/ncf/ncf.model.info.spec.ts b/vid-webpack-master/src/app/drawingBoard/service-planning/objectsToTree/models/ncf/ncf.model.info.spec.ts
new file mode 100644 (file)
index 0000000..6c83828
--- /dev/null
@@ -0,0 +1,112 @@
+import {ComponentInfoType} from "../../../component-info/component-info-model";
+import {NcfModelInfo} from "./ncf.model.info";
+import {ModelInformationItem} from "../../../../../shared/components/model-information/model-information.component";
+import {NcfTreeNode} from "../../../../../shared/models/ncfTreeNode";
+
+describe('NCF Model Info', () => {
+
+  let ncfModel: NcfModelInfo;
+
+  beforeEach(() => {
+    ncfModel = new NcfModelInfo(null);
+  });
+
+  test('ncfModel should be defined', () => {
+    expect(ncfModel).toBeDefined();
+  });
+
+  test('ncfModel should defined extra details', () => {
+    expect(ncfModel.name).toEqual('ncfs');
+    expect(ncfModel.type).toEqual('NCF');
+    expect(ncfModel.childNames).toBeUndefined;
+    expect(ncfModel.componentInfoType).toEqual(ComponentInfoType.NCF);
+  });
+
+  test('createInstanceTreeNode shall create the right ncfTreeNode', () => {
+    const instance = {
+      action: "None",
+      instanceName: "NcmVlanSvcYm161f_77_vTSBC Customer Landing Network Collection",
+      instanceId: "6b3536cf-3a12-457f-abb5-fa2203e0d923",
+      instanceType: "L3-NETWORK",
+      inMaint: false,
+      uuid: "dd182d7d-6949-4b90-b3cc-5befe400742e",
+      originalName: "ncm_vlan_ym161f..NetworkCollection..0",
+      trackById: "6b3536cf-3a12-457f-abb5-fa2203e0d923",
+      instanceGroupRole: "SUB_INTERFACE",
+      instanceGroupFunction: "vTSBC Customer Landing Network Collection",
+      numberOfNetworks: 1
+    };
+
+    const parentModel = {
+      networksCollection: {
+        "ncm_vlan_ym161f..NetworkCollection..0": {
+          uuid: "dd182d7d-6949-4b90-b3cc-5befe400742e",
+          invariantUuid: "868b109c-9481-4a18-891b-af974db7705a",
+          name: "ncm_vlan_ym161f..NetworkCollection..0",
+          version: "1",
+          networkCollectionProperties: {
+            networkCollectionFunction: "vTSBC Customer Landing Network Collection",
+            networkCollectionDescription: "vTSBC Customer Landing Network Collection Desc"
+          }
+        }
+      }
+    };
+
+    const expected = {
+      action: "None",
+      id: "6b3536cf-3a12-457f-abb5-fa2203e0d923",
+      inMaint: false,
+      instanceGroupFunction: "vTSBC Customer Landing Network Collection",
+      instanceGroupRole: "SUB_INTERFACE",
+      instanceId: "6b3536cf-3a12-457f-abb5-fa2203e0d923",
+      instanceName: "NcmVlanSvcYm161f_77_vTSBC Customer Landing Network Collection",
+      instanceType: "L3-NETWORK",
+      missingData: false,
+      modelVersion: "1",
+      name: "NcmVlanSvcYm161f_77_vTSBC Customer Landing Network Collection",
+      numberOfNetworks: 1,
+      storeKey: "6b3536cf-3a12-457f-abb5-fa2203e0d923",
+      typeName: "NCF"
+    };
+
+    const ncfTreeNode: NcfTreeNode = ncfModel.createInstanceTreeNode(instance, {}, parentModel, "6b3536cf-3a12-457f-abb5-fa2203e0d923");
+    expect(ncfTreeNode).toMatchObject(expected);
+  });
+
+  test('get modelInformation shall return Model version, role, Collection function, Number of networks', () => {
+    const ncf = {
+      trackById: "6b3536cf-3a12-457f-abb5-fa2203e0d923",
+      instanceGroupRole: "SUB_INTERFACE",
+      instanceGroupFunction: "vTSBC Customer Landing Network Collection",
+      numberOfNetworks: 1,
+      modelVersion: "35"
+    };
+
+    const actualModelInformationItems = ncfModel.getInfo(null, ncf);
+    const expected = [
+      ModelInformationItem.createInstance('Model version', '35'),
+      ModelInformationItem.createInstance('Role', 'SUB_INTERFACE'),
+      ModelInformationItem.createInstance('Collection function', 'vTSBC Customer Landing Network Collection'),
+      ModelInformationItem.createInstance('Number of networks', 1),
+    ];
+
+    expect(actualModelInformationItems).toEqual(expected);
+  });
+
+  test('get modelInformation shall return empty array when ncf instance is null', () => {
+    expect(ncfModel.getInfo(null, null)).toEqual([]);
+  });
+
+  test('ncf getMenuAction: delete', ()=>{
+    let node = {};
+    let serviceModelId = 'serviceModelId';
+    let result = ncfModel.getMenuAction(<any>node, serviceModelId);
+    spyOn(result['delete'], 'method');
+    expect(result['delete']).toBeDefined();
+    expect(result['delete'].visible()).toBeFalsy();
+    expect(result['delete'].enable()).toBeFalsy();
+    result['delete']['method'](node, serviceModelId);
+    expect(result['delete']['method']).toHaveBeenCalledWith(node, serviceModelId);
+  });
+
+});
diff --git a/vid-webpack-master/src/app/drawingBoard/service-planning/objectsToTree/models/ncf/ncf.model.info.ts b/vid-webpack-master/src/app/drawingBoard/service-planning/objectsToTree/models/ncf/ncf.model.info.ts
new file mode 100644 (file)
index 0000000..4db41c0
--- /dev/null
@@ -0,0 +1,121 @@
+import {ILevelNodeInfo} from "../basic.model.info";
+import {ComponentInfoType} from "../../../component-info/component-info-model";
+import {ITreeNode} from "angular-tree-component/dist/defs/api";
+import {AvailableNodeIcons} from "../../../available-models-tree/available-models-tree.service";
+import {ModelInformationItem} from "../../../../../shared/components/model-information/model-information.component";
+import {Level1Model} from "../../../../../shared/models/nodeModel";
+import {NcfTreeNode} from "../../../../../shared/models/ncfTreeNode";
+import {Level1Instance} from "../../../../../shared/models/level1Instance";
+import {NgRedux} from "@angular-redux/store";
+import {AppState} from "../../../../../shared/store/reducers";
+import {
+  deleteActionNcfInstance,
+  undoDeleteActionNcfInstance
+} from "../../../../../shared/storeUtil/utils/ncf/ncf.actions";
+import * as _ from 'lodash';
+import {NcfModelInterface} from "../../../../../shared/models/ncfModel";
+
+export class NcfModelInfo implements ILevelNodeInfo {
+  constructor(private _store: NgRedux<AppState>){
+  }
+
+  name: string = 'ncfs';
+  type: string = 'NCF';
+  typeName: string = 'NCF';
+
+  childNames: string[] = [];
+  componentInfoType = ComponentInfoType.NCF;
+
+  isEcompGeneratedNaming(currentModel): boolean {
+    return false;
+  }
+
+  updateDynamicInputsDataFromModel = (currentModel): any => [];
+
+  getModel = (modelId: string, instance: any, serviceHierarchy): any => {
+    return new Level1Model();
+  };
+
+
+  createInstanceTreeNode = (instance: Level1Instance, model: Level1Model, parentModel, storeKey: string): NcfTreeNode => {
+    let modelVersion: string = null;
+    if (parentModel.networksCollection && instance.originalName) {
+      const ncfRealModel: NcfModelInterface = parentModel.networksCollection[instance.originalName];
+      if (ncfRealModel) {
+        modelVersion = ncfRealModel.version;
+      }
+    }
+
+    let node = new NcfTreeNode(instance, model, storeKey, modelVersion);
+    node.menuActions = this.getMenuAction(<any>node, model.uuid);
+    node.typeName = this.typeName;
+    return node;
+  };
+
+
+  getNextLevelObject = (): any => {
+    return null;
+  };
+
+  getTooltip = (): string => 'NCF';
+
+  getType = (): string => 'NCF';
+
+  hasMissingData(instance, dynamicInputs: any, isEcompGeneratedNaming: boolean): boolean {
+    return false;
+  }
+
+  onClickAdd(node, serviceModelId: string): void {
+
+  }
+
+  getNodeCount(node: ITreeNode, serviceModelId: string): number {
+    return 0;
+  }
+
+  showNodeIcons(node: ITreeNode, serviceModelId: string): AvailableNodeIcons {
+    return null;
+  }
+
+  getMenuAction(node: ITreeNode, serviceModelId: string): { [methodName: string]: { method: Function, visible: Function, enable: Function } } {
+    return <any>{
+      delete: {
+        method: (node, serviceModelId) => {
+          this._store.dispatch(deleteActionNcfInstance(node.data.parent.collectionResourceStoreKey, node.data.storeKey, serviceModelId));
+        },
+        visible: (node) => false,
+        enable: (node) => false
+      },
+      undoDelete: {
+        method: (node, serviceModelId) => {
+          this._store.dispatch(undoDeleteActionNcfInstance(node.data.parent.collectionResourceStoreKey, node.data.storeKey, serviceModelId));
+        },
+        visible: (node) => false,
+        enable: (node) => false
+      }
+
+    };
+  }
+
+  updatePosition(that, node, instanceId): void {
+  }
+
+  getNodePosition(instance): number {
+    return 0;
+  }
+
+  getInfo(model, instance: NcfTreeNode): ModelInformationItem[] {
+
+    if (_.isNil(instance)) {
+      return [];
+    }
+
+    return [
+      ModelInformationItem.createInstance("Model version", instance.modelVersion),
+      ModelInformationItem.createInstance('Role', instance.instanceGroupRole),
+      ModelInformationItem.createInstance('Collection function', instance.instanceGroupFunction),
+      ModelInformationItem.createInstance('Number of networks', instance.numberOfNetworks),
+    ];
+  }
+}
+
index 206adb6..10c1366 100644 (file)
@@ -1,4 +1,4 @@
-import {HttpClientTestingModule, HttpTestingController} from "@angular/common/http/testing";
+import {HttpClientTestingModule} from "@angular/common/http/testing";
 import {getTestBed, TestBed} from "@angular/core/testing";
 import {MockNgRedux, NgReduxTestingModule} from "@angular-redux/store/testing";
 import {NetworkModelInfo} from "./network.model.info";
@@ -11,6 +11,8 @@ import {AvailableNodeIcons} from "../../../available-models-tree/available-model
 import {DrawingBoardModes} from "../../../drawing-board.modes";
 import {IframeService} from "../../../../../shared/utils/iframe.service";
 import {DuplicateService} from "../../../duplicate/duplicate.service";
+import {ModelInformationItem} from "../../../../../shared/components/model-information/model-information.component";
+
 class MockAppStore<T> {
   getState() {
     return {
@@ -131,7 +133,7 @@ describe('Network Model Info', () => {
   });
 
   test('getModel should return Network model', () => {
-    let model = networkModel.getModel('2017-388_ADIOD-vPE 1_1', <any>{}, getServiceHierarchy());
+    let model = networkModel.getModel('2017-388_PASQUALE-vPE 1_1', <any>{}, getServiceHierarchy());
     expect(model.type).toEqual('VL');
   });
 
@@ -295,6 +297,80 @@ describe('Network Model Info', () => {
     expect(result['showAuditInfo']['method']).toHaveBeenCalledWith(node, serviceModelId);
   });
 
+  test('Info for network should be correct', () => {
+    const model = getNetworkModel();
+    const instance = getNetworkInstance();
+    let actualNetworkInfo = networkModel.getInfo(model,instance);
+    let expectedNetworkInfo = [
+      ModelInformationItem.createInstance('Network role', "network role 1, network role 2"),
+      ModelInformationItem.createInstance("Route target id", null),
+      ModelInformationItem.createInstance("Route target role", null)
+    ];
+    expect(actualNetworkInfo).toEqual(expectedNetworkInfo);
+  });
+
+  function getNetworkModel(){
+    return {
+      "customizationUuid":"94fdd893-4a36-4d70-b16a-ec29c54c184f",
+      "name":"ExtVL",
+      "version":"37.0",
+      "description":"ECOMP generic virtual link (network) base type for all other service-level and global networks",
+      "uuid":"ddc3f20c-08b5-40fd-af72-c6d14636b986",
+      "invariantUuid":"379f816b-a7aa-422f-be30-17114ff50b7c",
+      "max":1,
+      "min":0,
+      "isEcompGeneratedNaming":false,
+      "type":"VL",
+      "modelCustomizationName":"ExtVL 0",
+      "roles":["network role 1"," network role 2"],
+      "properties":{
+        "network_role":"network role 1, network role 2",
+        "network_assignments":
+          "{is_external_network=false, ipv4_subnet_default_assignment={min_subnets_count=1}, ecomp_generated_network_assignment=false, ipv6_subnet_default_assignment={min_subnets_count=1}}",
+        "exVL_naming":"{ecomp_generated_naming=true}","network_flows":"{is_network_policy=false, is_bound_to_vpn=false}",
+        "network_homing":"{ecomp_selected_instance_node_target=false}"
+      }
+    };
+
+  }
+
+  function getNetworkInstance() {
+    return {
+      "modelCustomizationId": "94fdd893-4a36-4d70-b16a-ec29c54c184f",
+      "modelId": "ddc3f20c-08b5-40fd-af72-c6d14636b986",
+      "modelUniqueId": "94fdd893-4a36-4d70-b16a-ec29c54c184f",
+      "missingData": true,
+      "id": "NETWORK4_INSTANCE_ID",
+      "action": "None",
+      "orchStatus": "Created",
+      "provStatus": "preprov",
+      "inMaint": false,
+      "instanceId": "NETWORK4_INSTANCE_ID",
+      "instanceType": "CONTRAIL30_HIMELGUARD",
+      "instanceName": "NETWORK4_INSTANCE_NAME",
+      "name": "NETWORK4_INSTANCE_NAME",
+      "modelName": "ExtVL 0",
+      "type": "VL",
+      "isEcompGeneratedNaming": false,
+      "networkStoreKey": "NETWORK4_INSTANCE_ID",
+      "typeName": "N",
+      "menuActions": {"edit": {}, "showAuditInfo": {}, "duplicate": {}, "remove": {}, "delete": {}, "undoDelete": {}},
+      "isFailed": false,
+      "statusMessage": "",
+      "statusProperties": [{"key": "Prov Status:", "value": "preprov", "testId": "provStatus"}, {
+        "key": "Orch Status:",
+        "value": "Created",
+        "testId": "orchStatus"
+      }],
+      "trackById": "1wvr73xl999",
+      "parentType": "",
+      "componentInfoType": "Network",
+      "errors": {}
+    };
+  }
+
+
+
 
   function getServiceHierarchy(){
     return {
@@ -311,7 +387,7 @@ describe('Network Model Info', () => {
         "serviceEcompNaming": "false",
         "instantiationType": "Macro",
         "inputs": {
-          "2017488_adiodvpe0_ASN": {
+          "2017488_pasqualevpe0_ASN": {
             "type": "string",
             "description": "AV/PE",
             "entry_schema": null,
@@ -327,11 +403,11 @@ describe('Network Model Info', () => {
         }
       },
       "vnfs": {
-        "2017-388_ADIOD-vPE 1": {
+        "2017-388_PASQUALE-vPE 1": {
           "uuid": "0903e1c0-8e03-4936-b5c2-260653b96413",
           "invariantUuid": "00beb8f9-6d39-452f-816d-c709b9cbb87d",
-          "description": "Name ADIOD vPE Description The provider edge function for the ADIOD service supported by the Junipers VMX product Category Router Vendor Juniper Vendor Release Code 17.2 Owners Mary Fragale. Updated 9-25 to use v8.0 of the Juniper Valid 2 VLM",
-          "name": "2017-388_ADIOD-vPE",
+          "description": "Name PASQUALE vPE Description The provider edge function for the PASQUALE service supported by the Junipers VMX product Category Router Vendor Juniper Vendor Release Code 17.2 Owners Mary Fragale. Updated 9-25 to use v8.0 of the Juniper Valid 2 VLM",
+          "name": "2017-388_PASQUALE-vPE",
           "version": "1.0",
           "customizationUuid": "280dec31-f16d-488b-9668-4aae55d6648a",
           "inputs": {
@@ -394,37 +470,37 @@ describe('Network Model Info', () => {
             "vnf_config_template_version": {
               "displayName": "vnf_config_template_version",
               "command": "get_input",
-              "inputName": "2017488_adiodvpe0_vnf_config_template_version"
+              "inputName": "2017488_pasqualevpe0_vnf_config_template_version"
             },
             "bandwidth_units": {
               "displayName": "bandwidth_units",
               "command": "get_input",
-              "inputName": "adiodvpe0_bandwidth_units"
+              "inputName": "pasqualevpe0_bandwidth_units"
             },
             "bandwidth": {
               "displayName": "bandwidth",
               "command": "get_input",
-              "inputName": "adiodvpe0_bandwidth"
+              "inputName": "pasqualevpe0_bandwidth"
             },
             "AIC_CLLI": {
               "displayName": "AIC_CLLI",
               "command": "get_input",
-              "inputName": "2017488_adiodvpe0_AIC_CLLI"
+              "inputName": "2017488_pasqualevpe0_AIC_CLLI"
             },
             "ASN": {
               "displayName": "ASN",
               "command": "get_input",
-              "inputName": "2017488_adiodvpe0_ASN"
+              "inputName": "2017488_pasqualevpe0_ASN"
             },
             "vnf_instance_name": {
               "displayName": "vnf_instance_name",
               "command": "get_input",
-              "inputName": "2017488_adiodvpe0_vnf_instance_name"
+              "inputName": "2017488_pasqualevpe0_vnf_instance_name"
             }
           },
           "properties": {
             "vmxvre_retype": "RE-VMX",
-            "vnf_config_template_version": "get_input:2017488_adiodvpe0_vnf_config_template_version",
+            "vnf_config_template_version": "get_input:2017488_pasqualevpe0_vnf_config_template_version",
             "sriov44_net_id": "48d399b3-11ee-48a8-94d2-f0ea94d6be8d",
             "int_ctl_net_id": "2f323477-6936-4d01-ac53-d849430281d9",
             "vmxvpfe_sriov41_0_port_mac": "00:11:22:EF:AC:DF",
@@ -469,7 +545,7 @@ describe('Network Model Info', () => {
             "vmxvpfe_sriov43_0_port_unknownmulticastallow": "true",
             "vmxvre_int_ctl_ip_0": "10.0.0.10",
             "ecomp_generated_naming": "false",
-            "AIC_CLLI": "get_input:2017488_adiodvpe0_AIC_CLLI",
+            "AIC_CLLI": "get_input:2017488_pasqualevpe0_AIC_CLLI",
             "vnf_name": "mtnj309me6vre",
             "vmxvpfe_sriov41_0_port_unknownunicastallow": "true",
             "vmxvre_volume_type_1": "HITACHI",
@@ -477,14 +553,14 @@ describe('Network Model Info', () => {
             "vmxvre_volume_type_0": "HITACHI",
             "vmxvpfe_volume_type_0": "HITACHI",
             "vmxvpfe_sriov43_0_port_broadcastallow": "true",
-            "bandwidth_units": "get_input:adiodvpe0_bandwidth_units",
+            "bandwidth_units": "get_input:pasqualevpe0_bandwidth_units",
             "vnf_id": "123",
             "vmxvre_oam_prefix": "24",
             "availability_zone_0": "mtpocfo-kvm-az01",
-            "ASN": "get_input:2017488_adiodvpe0_ASN",
+            "ASN": "get_input:2017488_pasqualevpe0_ASN",
             "vmxvre_chassis_i2cid": "161",
             "vmxvpfe_name_0": "vPFEXI",
-            "bandwidth": "get_input:adiodvpe0_bandwidth",
+            "bandwidth": "get_input:pasqualevpe0_bandwidth",
             "availability_zone_max_count": "1",
             "vmxvre_volume_size_0": "45.0",
             "vmxvre_volume_size_1": "50.0",
@@ -494,7 +570,7 @@ describe('Network Model Info', () => {
             "vmxvre_ore_present": "0",
             "vmxvre_volume_name_0": "vREXI_FBVolume",
             "vmxvre_type": "0",
-            "vnf_instance_name": "get_input:2017488_adiodvpe0_vnf_instance_name",
+            "vnf_instance_name": "get_input:2017488_pasqualevpe0_vnf_instance_name",
             "vmxvpfe_sriov41_0_port_unknownmulticastallow": "true",
             "oam_net_id": "b95eeb1d-d55d-4827-abb4-8ebb94941429",
             "vmx_int_ctl_len": "24",
@@ -508,16 +584,16 @@ describe('Network Model Info', () => {
             "vmxvpfe_flavor_name": "ns.c20r16d25.v5"
           },
           "type": "VF",
-          "modelCustomizationName": "2017-388_ADIOD-vPE 1",
+          "modelCustomizationName": "2017-388_PASQUALE-vPE 1",
           "vfModules": {},
           "volumeGroups": {},
           "vfcInstanceGroups": {}
         },
-        "2017-388_ADIOD-vPE 0": {
+        "2017-388_PASQUALE-vPE 0": {
           "uuid": "afacccf6-397d-45d6-b5ae-94c39734b168",
           "invariantUuid": "72e465fe-71b1-4e7b-b5ed-9496118ff7a8",
-          "description": "Name ADIOD vPE Description The provider edge function for the ADIOD service supported by the Junipers VMX product Category Router Vendor Juniper Vendor Release Code 17.2 Owners Mary Fragale. Updated 9-25 to use v8.0 of the Juniper Valid 2 VLM",
-          "name": "2017-388_ADIOD-vPE",
+          "description": "Name PASQUALE vPE Description The provider edge function for the PASQUALE service supported by the Junipers VMX product Category Router Vendor Juniper Vendor Release Code 17.2 Owners Mary Fragale. Updated 9-25 to use v8.0 of the Juniper Valid 2 VLM",
+          "name": "2017-388_PASQUALE-vPE",
           "version": "4.0",
           "customizationUuid": "b3c76f73-eeb5-4fb6-9d31-72a889f1811c",
           "inputs": {
@@ -580,37 +656,37 @@ describe('Network Model Info', () => {
             "vnf_config_template_version": {
               "displayName": "vnf_config_template_version",
               "command": "get_input",
-              "inputName": "2017488_adiodvpe0_vnf_config_template_version"
+              "inputName": "2017488_pasqualevpe0_vnf_config_template_version"
             },
             "bandwidth_units": {
               "displayName": "bandwidth_units",
               "command": "get_input",
-              "inputName": "adiodvpe0_bandwidth_units"
+              "inputName": "pasqualevpe0_bandwidth_units"
             },
             "bandwidth": {
               "displayName": "bandwidth",
               "command": "get_input",
-              "inputName": "adiodvpe0_bandwidth"
+              "inputName": "pasqualevpe0_bandwidth"
             },
             "AIC_CLLI": {
               "displayName": "AIC_CLLI",
               "command": "get_input",
-              "inputName": "2017488_adiodvpe0_AIC_CLLI"
+              "inputName": "2017488_pasqualevpe0_AIC_CLLI"
             },
             "ASN": {
               "displayName": "ASN",
               "command": "get_input",
-              "inputName": "2017488_adiodvpe0_ASN"
+              "inputName": "2017488_pasqualevpe0_ASN"
             },
             "vnf_instance_name": {
               "displayName": "vnf_instance_name",
               "command": "get_input",
-              "inputName": "2017488_adiodvpe0_vnf_instance_name"
+              "inputName": "2017488_pasqualevpe0_vnf_instance_name"
             }
           },
           "properties": {
             "vmxvre_retype": "RE-VMX",
-            "vnf_config_template_version": "get_input:2017488_adiodvpe0_vnf_config_template_version",
+            "vnf_config_template_version": "get_input:2017488_pasqualevpe0_vnf_config_template_version",
             "sriov44_net_id": "48d399b3-11ee-48a8-94d2-f0ea94d6be8d",
             "int_ctl_net_id": "2f323477-6936-4d01-ac53-d849430281d9",
             "vmxvpfe_sriov41_0_port_mac": "00:11:22:EF:AC:DF",
@@ -656,7 +732,7 @@ describe('Network Model Info', () => {
             "vmxvpfe_sriov43_0_port_unknownmulticastallow": "true",
             "vmxvre_int_ctl_ip_0": "10.0.0.10",
             "ecomp_generated_naming": "false",
-            "AIC_CLLI": "get_input:2017488_adiodvpe0_AIC_CLLI",
+            "AIC_CLLI": "get_input:2017488_pasqualevpe0_AIC_CLLI",
             "vnf_name": "mtnj309me6vre",
             "vmxvpfe_sriov41_0_port_unknownunicastallow": "true",
             "vmxvre_volume_type_1": "HITACHI",
@@ -664,14 +740,14 @@ describe('Network Model Info', () => {
             "vmxvre_volume_type_0": "HITACHI",
             "vmxvpfe_volume_type_0": "HITACHI",
             "vmxvpfe_sriov43_0_port_broadcastallow": "true",
-            "bandwidth_units": "get_input:adiodvpe0_bandwidth_units",
+            "bandwidth_units": "get_input:pasqualevpe0_bandwidth_units",
             "vnf_id": "123",
             "vmxvre_oam_prefix": "24",
             "availability_zone_0": "mtpocfo-kvm-az01",
-            "ASN": "get_input:2017488_adiodvpe0_ASN",
+            "ASN": "get_input:2017488_pasqualevpe0_ASN",
             "vmxvre_chassis_i2cid": "161",
             "vmxvpfe_name_0": "vPFEXI",
-            "bandwidth": "get_input:adiodvpe0_bandwidth",
+            "bandwidth": "get_input:pasqualevpe0_bandwidth",
             "availability_zone_max_count": "1",
             "vmxvre_volume_size_0": "45.0",
             "vmxvre_volume_size_1": "50.0",
@@ -681,7 +757,7 @@ describe('Network Model Info', () => {
             "vmxvre_ore_present": "0",
             "vmxvre_volume_name_0": "vREXI_FBVolume",
             "vmxvre_type": "0",
-            "vnf_instance_name": "get_input:2017488_adiodvpe0_vnf_instance_name",
+            "vnf_instance_name": "get_input:2017488_pasqualevpe0_vnf_instance_name",
             "vmxvpfe_sriov41_0_port_unknownmulticastallow": "true",
             "oam_net_id": "b95eeb1d-d55d-4827-abb4-8ebb94941429",
             "vmx_int_ctl_len": "24",
@@ -695,16 +771,16 @@ describe('Network Model Info', () => {
             "vmxvpfe_flavor_name": "ns.c20r16d25.v5"
           },
           "type": "VF",
-          "modelCustomizationName": "2017-388_ADIOD-vPE 0",
+          "modelCustomizationName": "2017-388_PASQUALE-vPE 0",
           "vfModules": {},
           "volumeGroups": {},
           "vfcInstanceGroups": {}
         },
-        "2017-488_ADIOD-vPE 0": {
+        "2017-488_PASQUALE-vPE 0": {
           "uuid": "69e09f68-8b63-4cc9-b9ff-860960b5db09",
           "invariantUuid": "72e465fe-71b1-4e7b-b5ed-9496118ff7a8",
-          "description": "Name ADIOD vPE Description The provider edge function for the ADIOD service supported by the Junipers VMX product Category Router Vendor Juniper Vendor Release Code 17.2 Owners Mary Fragale. Updated 9-25 to use v8.0 of the Juniper Valid 2 VLM",
-          "name": "2017-488_ADIOD-vPE",
+          "description": "Name PASQUALE vPE Description The provider edge function for the PASQUALE service supported by the Junipers VMX product Category Router Vendor Juniper Vendor Release Code 17.2 Owners Mary Fragale. Updated 9-25 to use v8.0 of the Juniper Valid 2 VLM",
+          "name": "2017-488_PASQUALE-vPE",
           "version": "5.0",
           "customizationUuid": "1da7b585-5e61-4993-b95e-8e6606c81e45",
           "inputs": {
@@ -767,37 +843,37 @@ describe('Network Model Info', () => {
             "vnf_config_template_version": {
               "displayName": "vnf_config_template_version",
               "command": "get_input",
-              "inputName": "2017488_adiodvpe0_vnf_config_template_version"
+              "inputName": "2017488_pasqualevpe0_vnf_config_template_version"
             },
             "bandwidth_units": {
               "displayName": "bandwidth_units",
               "command": "get_input",
-              "inputName": "adiodvpe0_bandwidth_units"
+              "inputName": "pasqualevpe0_bandwidth_units"
             },
             "bandwidth": {
               "displayName": "bandwidth",
               "command": "get_input",
-              "inputName": "adiodvpe0_bandwidth"
+              "inputName": "pasqualevpe0_bandwidth"
             },
             "AIC_CLLI": {
               "displayName": "AIC_CLLI",
               "command": "get_input",
-              "inputName": "2017488_adiodvpe0_AIC_CLLI"
+              "inputName": "2017488_pasqualevpe0_AIC_CLLI"
             },
             "ASN": {
               "displayName": "ASN",
               "command": "get_input",
-              "inputName": "2017488_adiodvpe0_ASN"
+              "inputName": "2017488_pasqualevpe0_ASN"
             },
             "vnf_instance_name": {
               "displayName": "vnf_instance_name",
               "command": "get_input",
-              "inputName": "2017488_adiodvpe0_vnf_instance_name"
+              "inputName": "2017488_pasqualevpe0_vnf_instance_name"
             }
           },
           "properties": {
             "vmxvre_retype": "RE-VMX",
-            "vnf_config_template_version": "get_input:2017488_adiodvpe0_vnf_config_template_version",
+            "vnf_config_template_version": "get_input:2017488_pasqualevpe0_vnf_config_template_version",
             "sriov44_net_id": "48d399b3-11ee-48a8-94d2-f0ea94d6be8d",
             "int_ctl_net_id": "2f323477-6936-4d01-ac53-d849430281d9",
             "vmxvpfe_sriov41_0_port_mac": "00:11:22:EF:AC:DF",
@@ -844,7 +920,7 @@ describe('Network Model Info', () => {
             "vmxvpfe_sriov43_0_port_unknownmulticastallow": "true",
             "vmxvre_int_ctl_ip_0": "10.0.0.10",
             "ecomp_generated_naming": "false",
-            "AIC_CLLI": "get_input:2017488_adiodvpe0_AIC_CLLI",
+            "AIC_CLLI": "get_input:2017488_pasqualevpe0_AIC_CLLI",
             "vnf_name": "mtnj309me6vre",
             "vmxvpfe_sriov41_0_port_unknownunicastallow": "true",
             "vmxvre_volume_type_1": "HITACHI",
@@ -852,14 +928,14 @@ describe('Network Model Info', () => {
             "vmxvre_volume_type_0": "HITACHI",
             "vmxvpfe_volume_type_0": "HITACHI",
             "vmxvpfe_sriov43_0_port_broadcastallow": "true",
-            "bandwidth_units": "get_input:adiodvpe0_bandwidth_units",
+            "bandwidth_units": "get_input:pasqualevpe0_bandwidth_units",
             "vnf_id": "123",
             "vmxvre_oam_prefix": "24",
             "availability_zone_0": "mtpocfo-kvm-az01",
-            "ASN": "get_input:2017488_adiodvpe0_ASN",
+            "ASN": "get_input:2017488_pasqualevpe0_ASN",
             "vmxvre_chassis_i2cid": "161",
             "vmxvpfe_name_0": "vPFEXI",
-            "bandwidth": "get_input:adiodvpe0_bandwidth",
+            "bandwidth": "get_input:pasqualevpe0_bandwidth",
             "availability_zone_max_count": "1",
             "vmxvre_volume_size_0": "45.0",
             "vmxvre_volume_size_1": "50.0",
@@ -869,7 +945,7 @@ describe('Network Model Info', () => {
             "vmxvre_ore_present": "0",
             "vmxvre_volume_name_0": "vREXI_FBVolume",
             "vmxvre_type": "0",
-            "vnf_instance_name": "get_input:2017488_adiodvpe0_vnf_instance_name",
+            "vnf_instance_name": "get_input:2017488_pasqualevpe0_vnf_instance_name",
             "vmxvpfe_sriov41_0_port_unknownmulticastallow": "true",
             "oam_net_id": "b95eeb1d-d55d-4827-abb4-8ebb94941429",
             "vmx_int_ctl_len": "24",
@@ -883,21 +959,21 @@ describe('Network Model Info', () => {
             "vmxvpfe_flavor_name": "ns.c20r16d25.v5"
           },
           "type": "VF",
-          "modelCustomizationName": "2017-488_ADIOD-vPE 0",
+          "modelCustomizationName": "2017-488_PASQUALE-vPE 0",
           "vfModules": {
-            "2017488_adiodvpe0..2017488AdiodVpe..ADIOD_vRE_BV..module-1": {
+            "2017488_pasqualevpe0..2017488PasqualeVpe..PASQUALE_vRE_BV..module-1": {
               "uuid": "25284168-24bb-4698-8cb4-3f509146eca5",
               "invariantUuid": "7253ff5c-97f0-4b8b-937c-77aeb4d79aa1",
               "customizationUuid": "f7e7c365-60cf-49a9-9ebf-a1aa11b9d401",
               "description": null,
-              "name": "2017488AdiodVpe..ADIOD_vRE_BV..module-1",
+              "name": "2017488PasqualeVpe..PASQUALE_vRE_BV..module-1",
               "version": "6",
-              "modelCustomizationName": "2017488AdiodVpe..ADIOD_vRE_BV..module-1",
+              "modelCustomizationName": "2017488PasqualeVpe..PASQUALE_vRE_BV..module-1",
               "properties": {
                 "minCountInstances": 0,
                 "maxCountInstances": null,
                 "initialCount": 0,
-                "vfModuleLabel": "ADIOD_vRE_BV",
+                "vfModuleLabel": "PASQUALE_vRE_BV",
                 "baseModule": false
               },
               "inputs": {
@@ -907,10 +983,10 @@ describe('Network Model Info', () => {
                   "entry_schema": null,
                   "inputProperties": {
                     "sourceType": "HEAT",
-                    "vfModuleLabel": "ADIOD_vRE_BV",
+                    "vfModuleLabel": "PASQUALE_vRE_BV",
                     "paramName": "vnf_config_template_version"
                   },
-                  "fromInputName": "2017488_adiodvpe0_vnf_config_template_version",
+                  "fromInputName": "2017488_pasqualevpe0_vnf_config_template_version",
                   "constraints": null,
                   "required": true,
                   "default": "17.2"
@@ -921,10 +997,10 @@ describe('Network Model Info', () => {
                   "entry_schema": null,
                   "inputProperties": {
                     "sourceType": "HEAT",
-                    "vfModuleLabel": "ADIOD_vRE_BV",
+                    "vfModuleLabel": "PASQUALE_vRE_BV",
                     "paramName": "bandwidth_units"
                   },
-                  "fromInputName": "adiodvpe0_bandwidth_units",
+                  "fromInputName": "pasqualevpe0_bandwidth_units",
                   "constraints": null,
                   "required": true,
                   "default": "Gbps"
@@ -935,10 +1011,10 @@ describe('Network Model Info', () => {
                   "entry_schema": null,
                   "inputProperties": {
                     "sourceType": "HEAT",
-                    "vfModuleLabel": "ADIOD_vRE_BV",
+                    "vfModuleLabel": "PASQUALE_vRE_BV",
                     "paramName": "bandwidth"
                   },
-                  "fromInputName": "adiodvpe0_bandwidth",
+                  "fromInputName": "pasqualevpe0_bandwidth",
                   "constraints": null,
                   "required": true,
                   "default": "10"
@@ -949,10 +1025,10 @@ describe('Network Model Info', () => {
                   "entry_schema": null,
                   "inputProperties": {
                     "sourceType": "HEAT",
-                    "vfModuleLabel": "ADIOD_vRE_BV",
+                    "vfModuleLabel": "PASQUALE_vRE_BV",
                     "paramName": "AIC_CLLI"
                   },
-                  "fromInputName": "2017488_adiodvpe0_AIC_CLLI",
+                  "fromInputName": "2017488_pasqualevpe0_AIC_CLLI",
                   "constraints": null,
                   "required": true,
                   "default": "ATLMY8GA"
@@ -963,10 +1039,10 @@ describe('Network Model Info', () => {
                   "entry_schema": null,
                   "inputProperties": {
                     "sourceType": "HEAT",
-                    "vfModuleLabel": "ADIOD_vRE_BV",
+                    "vfModuleLabel": "PASQUALE_vRE_BV",
                     "paramName": "vnf_instance_name"
                   },
-                  "fromInputName": "2017488_adiodvpe0_vnf_instance_name",
+                  "fromInputName": "2017488_pasqualevpe0_vnf_instance_name",
                   "constraints": null,
                   "required": true,
                   "default": "mtnj309me6"
@@ -974,37 +1050,37 @@ describe('Network Model Info', () => {
               },
               "volumeGroupAllowed": true
             },
-            "2017488_adiodvpe0..2017488AdiodVpe..ADIOD_base_vPE_BV..module-0": {
+            "2017488_pasqualevpe0..2017488PasqualeVpe..PASQUALE_base_vPE_BV..module-0": {
               "uuid": "f8360508-3f17-4414-a2ed-6bc71161e8db",
               "invariantUuid": "b34833bb-6aa9-4ad6-a831-70b06367a091",
               "customizationUuid": "a55961b2-2065-4ab0-a5b7-2fcee1c227e3",
               "description": null,
-              "name": "2017488AdiodVpe..ADIOD_base_vPE_BV..module-0",
+              "name": "2017488PasqualeVpe..PASQUALE_base_vPE_BV..module-0",
               "version": "5",
-              "modelCustomizationName": "2017488AdiodVpe..ADIOD_base_vPE_BV..module-0",
+              "modelCustomizationName": "2017488PasqualeVpe..PASQUALE_base_vPE_BV..module-0",
               "properties": {
                 "minCountInstances": 1,
                 "maxCountInstances": 1,
                 "initialCount": 1,
-                "vfModuleLabel": "ADIOD_base_vPE_BV",
+                "vfModuleLabel": "PASQUALE_base_vPE_BV",
                 "baseModule": true
               },
               "inputs": {},
               "volumeGroupAllowed": false
             },
-            "2017488_adiodvpe0..2017488AdiodVpe..ADIOD_vPFE_BV..module-2": {
+            "2017488_pasqualevpe0..2017488PasqualeVpe..PASQUALE_vPFE_BV..module-2": {
               "uuid": "0a0dd9d4-31d3-4c3a-ae89-a02f383e6a9a",
               "invariantUuid": "eff8cc59-53a1-4101-aed7-8cf24ecf8339",
               "customizationUuid": "3cd946bb-50e0-40d8-96d3-c9023520b557",
               "description": null,
-              "name": "2017488AdiodVpe..ADIOD_vPFE_BV..module-2",
+              "name": "2017488PasqualeVpe..PASQUALE_vPFE_BV..module-2",
               "version": "6",
-              "modelCustomizationName": "2017488AdiodVpe..ADIOD_vPFE_BV..module-2",
+              "modelCustomizationName": "2017488PasqualeVpe..PASQUALE_vPFE_BV..module-2",
               "properties": {
                 "minCountInstances": 0,
                 "maxCountInstances": null,
                 "initialCount": 0,
-                "vfModuleLabel": "ADIOD_vPFE_BV",
+                "vfModuleLabel": "PASQUALE_vPFE_BV",
                 "baseModule": false
               },
               "inputs": {},
@@ -1012,19 +1088,19 @@ describe('Network Model Info', () => {
             }
           },
           "volumeGroups": {
-            "2017488_adiodvpe0..2017488AdiodVpe..ADIOD_vRE_BV..module-1": {
+            "2017488_pasqualevpe0..2017488PasqualeVpe..PASQUALE_vRE_BV..module-1": {
               "uuid": "25284168-24bb-4698-8cb4-3f509146eca5",
               "invariantUuid": "7253ff5c-97f0-4b8b-937c-77aeb4d79aa1",
               "customizationUuid": "f7e7c365-60cf-49a9-9ebf-a1aa11b9d401",
               "description": null,
-              "name": "2017488AdiodVpe..ADIOD_vRE_BV..module-1",
+              "name": "2017488PasqualeVpe..PASQUALE_vRE_BV..module-1",
               "version": "6",
-              "modelCustomizationName": "2017488AdiodVpe..ADIOD_vRE_BV..module-1",
+              "modelCustomizationName": "2017488PasqualeVpe..PASQUALE_vRE_BV..module-1",
               "properties": {
                 "minCountInstances": 0,
                 "maxCountInstances": null,
                 "initialCount": 0,
-                "vfModuleLabel": "ADIOD_vRE_BV",
+                "vfModuleLabel": "PASQUALE_vRE_BV",
                 "baseModule": false
               },
               "inputs": {
@@ -1034,10 +1110,10 @@ describe('Network Model Info', () => {
                   "entry_schema": null,
                   "inputProperties": {
                     "sourceType": "HEAT",
-                    "vfModuleLabel": "ADIOD_vRE_BV",
+                    "vfModuleLabel": "PASQUALE_vRE_BV",
                     "paramName": "vnf_config_template_version"
                   },
-                  "fromInputName": "2017488_adiodvpe0_vnf_config_template_version",
+                  "fromInputName": "2017488_pasqualevpe0_vnf_config_template_version",
                   "constraints": null,
                   "required": true,
                   "default": "17.2"
@@ -1048,10 +1124,10 @@ describe('Network Model Info', () => {
                   "entry_schema": null,
                   "inputProperties": {
                     "sourceType": "HEAT",
-                    "vfModuleLabel": "ADIOD_vRE_BV",
+                    "vfModuleLabel": "PASQUALE_vRE_BV",
                     "paramName": "bandwidth_units"
                   },
-                  "fromInputName": "adiodvpe0_bandwidth_units",
+                  "fromInputName": "pasqualevpe0_bandwidth_units",
                   "constraints": null,
                   "required": true,
                   "default": "Gbps"
@@ -1062,10 +1138,10 @@ describe('Network Model Info', () => {
                   "entry_schema": null,
                   "inputProperties": {
                     "sourceType": "HEAT",
-                    "vfModuleLabel": "ADIOD_vRE_BV",
+                    "vfModuleLabel": "PASQUALE_vRE_BV",
                     "paramName": "bandwidth"
                   },
-                  "fromInputName": "adiodvpe0_bandwidth",
+                  "fromInputName": "pasqualevpe0_bandwidth",
                   "constraints": null,
                   "required": true,
                   "default": "10"
@@ -1076,10 +1152,10 @@ describe('Network Model Info', () => {
                   "entry_schema": null,
                   "inputProperties": {
                     "sourceType": "HEAT",
-                    "vfModuleLabel": "ADIOD_vRE_BV",
+                    "vfModuleLabel": "PASQUALE_vRE_BV",
                     "paramName": "AIC_CLLI"
                   },
-                  "fromInputName": "2017488_adiodvpe0_AIC_CLLI",
+                  "fromInputName": "2017488_pasqualevpe0_AIC_CLLI",
                   "constraints": null,
                   "required": true,
                   "default": "ATLMY8GA"
@@ -1090,29 +1166,29 @@ describe('Network Model Info', () => {
                   "entry_schema": null,
                   "inputProperties": {
                     "sourceType": "HEAT",
-                    "vfModuleLabel": "ADIOD_vRE_BV",
+                    "vfModuleLabel": "PASQUALE_vRE_BV",
                     "paramName": "vnf_instance_name"
                   },
-                  "fromInputName": "2017488_adiodvpe0_vnf_instance_name",
+                  "fromInputName": "2017488_pasqualevpe0_vnf_instance_name",
                   "constraints": null,
                   "required": true,
                   "default": "mtnj309me6"
                 }
               }
             },
-            "2017488_adiodvpe0..2017488AdiodVpe..ADIOD_vPFE_BV..module-2": {
+            "2017488_pasqualevpe0..2017488PasqualeVpe..PASQUALE_vPFE_BV..module-2": {
               "uuid": "0a0dd9d4-31d3-4c3a-ae89-a02f383e6a9a",
               "invariantUuid": "eff8cc59-53a1-4101-aed7-8cf24ecf8339",
               "customizationUuid": "3cd946bb-50e0-40d8-96d3-c9023520b557",
               "description": null,
-              "name": "2017488AdiodVpe..ADIOD_vPFE_BV..module-2",
+              "name": "2017488PasqualeVpe..PASQUALE_vPFE_BV..module-2",
               "version": "6",
-              "modelCustomizationName": "2017488AdiodVpe..ADIOD_vPFE_BV..module-2",
+              "modelCustomizationName": "2017488PasqualeVpe..PASQUALE_vPFE_BV..module-2",
               "properties": {
                 "minCountInstances": 0,
                 "maxCountInstances": null,
                 "initialCount": 0,
-                "vfModuleLabel": "ADIOD_vPFE_BV",
+                "vfModuleLabel": "PASQUALE_vPFE_BV",
                 "baseModule": false
               },
               "inputs": {}
@@ -1122,11 +1198,11 @@ describe('Network Model Info', () => {
         }
       },
       "networks": {
-        "2017-388_ADIOD-vPE 1_1": {
+        "2017-388_PASQUALE-vPE 1_1": {
           "uuid": "0903e1c0-8e03-4936-b5c2-260653b96413",
           "invariantUuid": "00beb8f9-6d39-452f-816d-c709b9cbb87d",
-          "description": "Name ADIOD vPE Description The provider edge function for the ADIOD service supported by the Junipers VMX product Category Router Vendor Juniper Vendor Release Code 17.2 Owners Mary Fragale. Updated 9-25 to use v8.0 of the Juniper Valid 2 VLM",
-          "name": "2017-388_ADIOD-vPE",
+          "description": "Name PASQUALE vPE Description The provider edge function for the PASQUALE service supported by the Junipers VMX product Category Router Vendor Juniper Vendor Release Code 17.2 Owners Mary Fragale. Updated 9-25 to use v8.0 of the Juniper Valid 2 VLM",
+          "name": "2017-388_PASQUALE-vPE",
           "version": "1.0",
           "customizationUuid": "280dec31-f16d-488b-9668-4aae55d6648a",
           "inputs": {
@@ -1189,37 +1265,37 @@ describe('Network Model Info', () => {
             "vnf_config_template_version": {
               "displayName": "vnf_config_template_version",
               "command": "get_input",
-              "inputName": "2017488_adiodvpe0_vnf_config_template_version"
+              "inputName": "2017488_pasqualevpe0_vnf_config_template_version"
             },
             "bandwidth_units": {
               "displayName": "bandwidth_units",
               "command": "get_input",
-              "inputName": "adiodvpe0_bandwidth_units"
+              "inputName": "pasqualevpe0_bandwidth_units"
             },
             "bandwidth": {
               "displayName": "bandwidth",
               "command": "get_input",
-              "inputName": "adiodvpe0_bandwidth"
+              "inputName": "pasqualevpe0_bandwidth"
             },
             "AIC_CLLI": {
               "displayName": "AIC_CLLI",
               "command": "get_input",
-              "inputName": "2017488_adiodvpe0_AIC_CLLI"
+              "inputName": "2017488_pasqualevpe0_AIC_CLLI"
             },
             "ASN": {
               "displayName": "ASN",
               "command": "get_input",
-              "inputName": "2017488_adiodvpe0_ASN"
+              "inputName": "2017488_pasqualevpe0_ASN"
             },
             "vnf_instance_name": {
               "displayName": "vnf_instance_name",
               "command": "get_input",
-              "inputName": "2017488_adiodvpe0_vnf_instance_name"
+              "inputName": "2017488_pasqualevpe0_vnf_instance_name"
             }
           },
           "properties": {
             "vmxvre_retype": "RE-VMX",
-            "vnf_config_template_version": "get_input:2017488_adiodvpe0_vnf_config_template_version",
+            "vnf_config_template_version": "get_input:2017488_pasqualevpe0_vnf_config_template_version",
             "sriov44_net_id": "48d399b3-11ee-48a8-94d2-f0ea94d6be8d",
             "int_ctl_net_id": "2f323477-6936-4d01-ac53-d849430281d9",
             "vmxvpfe_sriov41_0_port_mac": "00:11:22:EF:AC:DF",
@@ -1264,7 +1340,7 @@ describe('Network Model Info', () => {
             "vmxvpfe_sriov43_0_port_unknownmulticastallow": "true",
             "vmxvre_int_ctl_ip_0": "10.0.0.10",
             "ecomp_generated_naming": "false",
-            "AIC_CLLI": "get_input:2017488_adiodvpe0_AIC_CLLI",
+            "AIC_CLLI": "get_input:2017488_pasqualevpe0_AIC_CLLI",
             "vnf_name": "mtnj309me6vre",
             "vmxvpfe_sriov41_0_port_unknownunicastallow": "true",
             "vmxvre_volume_type_1": "HITACHI",
@@ -1272,14 +1348,14 @@ describe('Network Model Info', () => {
             "vmxvre_volume_type_0": "HITACHI",
             "vmxvpfe_volume_type_0": "HITACHI",
             "vmxvpfe_sriov43_0_port_broadcastallow": "true",
-            "bandwidth_units": "get_input:adiodvpe0_bandwidth_units",
+            "bandwidth_units": "get_input:pasqualevpe0_bandwidth_units",
             "vnf_id": "123",
             "vmxvre_oam_prefix": "24",
             "availability_zone_0": "mtpocfo-kvm-az01",
-            "ASN": "get_input:2017488_adiodvpe0_ASN",
+            "ASN": "get_input:2017488_pasqualevpe0_ASN",
             "vmxvre_chassis_i2cid": "161",
             "vmxvpfe_name_0": "vPFEXI",
-            "bandwidth": "get_input:adiodvpe0_bandwidth",
+            "bandwidth": "get_input:pasqualevpe0_bandwidth",
             "availability_zone_max_count": "1",
             "vmxvre_volume_size_0": "45.0",
             "vmxvre_volume_size_1": "50.0",
@@ -1289,7 +1365,7 @@ describe('Network Model Info', () => {
             "vmxvre_ore_present": "0",
             "vmxvre_volume_name_0": "vREXI_FBVolume",
             "vmxvre_type": "0",
-            "vnf_instance_name": "get_input:2017488_adiodvpe0_vnf_instance_name",
+            "vnf_instance_name": "get_input:2017488_pasqualevpe0_vnf_instance_name",
             "vmxvpfe_sriov41_0_port_unknownmulticastallow": "true",
             "oam_net_id": "b95eeb1d-d55d-4827-abb4-8ebb94941429",
             "vmx_int_ctl_len": "24",
@@ -1303,30 +1379,30 @@ describe('Network Model Info', () => {
             "vmxvpfe_flavor_name": "ns.c20r16d25.v5"
           },
           "type": "VL",
-          "modelCustomizationName": "2017-388_ADIOD-vPE 1",
+          "modelCustomizationName": "2017-388_PASQUALE-vPE 1",
           "vfModules": {},
           "volumeGroups": {},
           "vfcInstanceGroups": {}
         }
       },
-      "collectionResource": {},
+      "collectionResources": {},
       "configurations": {},
       "fabricConfigurations": {},
       "serviceProxies": {},
       "vfModules": {
-        "2017488_adiodvpe0..2017488AdiodVpe..ADIOD_vRE_BV..module-1": {
+        "2017488_pasqualevpe0..2017488PasqualeVpe..PASQUALE_vRE_BV..module-1": {
           "uuid": "25284168-24bb-4698-8cb4-3f509146eca5",
           "invariantUuid": "7253ff5c-97f0-4b8b-937c-77aeb4d79aa1",
           "customizationUuid": "f7e7c365-60cf-49a9-9ebf-a1aa11b9d401",
           "description": null,
-          "name": "2017488AdiodVpe..ADIOD_vRE_BV..module-1",
+          "name": "2017488PasqualeVpe..PASQUALE_vRE_BV..module-1",
           "version": "6",
-          "modelCustomizationName": "2017488AdiodVpe..ADIOD_vRE_BV..module-1",
+          "modelCustomizationName": "2017488PasqualeVpe..PASQUALE_vRE_BV..module-1",
           "properties": {
             "minCountInstances": 0,
             "maxCountInstances": null,
             "initialCount": 0,
-            "vfModuleLabel": "ADIOD_vRE_BV",
+            "vfModuleLabel": "PASQUALE_vRE_BV",
             "baseModule": false
           },
           "inputs": {
@@ -1336,10 +1412,10 @@ describe('Network Model Info', () => {
               "entry_schema": null,
               "inputProperties": {
                 "sourceType": "HEAT",
-                "vfModuleLabel": "ADIOD_vRE_BV",
+                "vfModuleLabel": "PASQUALE_vRE_BV",
                 "paramName": "vnf_config_template_version"
               },
-              "fromInputName": "2017488_adiodvpe0_vnf_config_template_version",
+              "fromInputName": "2017488_pasqualevpe0_vnf_config_template_version",
               "constraints": null,
               "required": true,
               "default": "17.2"
@@ -1350,10 +1426,10 @@ describe('Network Model Info', () => {
               "entry_schema": null,
               "inputProperties": {
                 "sourceType": "HEAT",
-                "vfModuleLabel": "ADIOD_vRE_BV",
+                "vfModuleLabel": "PASQUALE_vRE_BV",
                 "paramName": "bandwidth_units"
               },
-              "fromInputName": "adiodvpe0_bandwidth_units",
+              "fromInputName": "pasqualevpe0_bandwidth_units",
               "constraints": null,
               "required": true,
               "default": "Gbps"
@@ -1364,10 +1440,10 @@ describe('Network Model Info', () => {
               "entry_schema": null,
               "inputProperties": {
                 "sourceType": "HEAT",
-                "vfModuleLabel": "ADIOD_vRE_BV",
+                "vfModuleLabel": "PASQUALE_vRE_BV",
                 "paramName": "bandwidth"
               },
-              "fromInputName": "adiodvpe0_bandwidth",
+              "fromInputName": "pasqualevpe0_bandwidth",
               "constraints": null,
               "required": true,
               "default": "10"
@@ -1378,10 +1454,10 @@ describe('Network Model Info', () => {
               "entry_schema": null,
               "inputProperties": {
                 "sourceType": "HEAT",
-                "vfModuleLabel": "ADIOD_vRE_BV",
+                "vfModuleLabel": "PASQUALE_vRE_BV",
                 "paramName": "AIC_CLLI"
               },
-              "fromInputName": "2017488_adiodvpe0_AIC_CLLI",
+              "fromInputName": "2017488_pasqualevpe0_AIC_CLLI",
               "constraints": null,
               "required": true,
               "default": "ATLMY8GA"
@@ -1392,10 +1468,10 @@ describe('Network Model Info', () => {
               "entry_schema": null,
               "inputProperties": {
                 "sourceType": "HEAT",
-                "vfModuleLabel": "ADIOD_vRE_BV",
+                "vfModuleLabel": "PASQUALE_vRE_BV",
                 "paramName": "vnf_instance_name"
               },
-              "fromInputName": "2017488_adiodvpe0_vnf_instance_name",
+              "fromInputName": "2017488_pasqualevpe0_vnf_instance_name",
               "constraints": null,
               "required": true,
               "default": "mtnj309me6"
@@ -1403,37 +1479,37 @@ describe('Network Model Info', () => {
           },
           "volumeGroupAllowed": true
         },
-        "2017488_adiodvpe0..2017488AdiodVpe..ADIOD_base_vPE_BV..module-0": {
+        "2017488_pasqualevpe0..2017488PasqualeVpe..PASQUALE_base_vPE_BV..module-0": {
           "uuid": "f8360508-3f17-4414-a2ed-6bc71161e8db",
           "invariantUuid": "b34833bb-6aa9-4ad6-a831-70b06367a091",
           "customizationUuid": "a55961b2-2065-4ab0-a5b7-2fcee1c227e3",
           "description": null,
-          "name": "2017488AdiodVpe..ADIOD_base_vPE_BV..module-0",
+          "name": "2017488PasqualeVpe..PASQUALE_base_vPE_BV..module-0",
           "version": "5",
-          "modelCustomizationName": "2017488AdiodVpe..ADIOD_base_vPE_BV..module-0",
+          "modelCustomizationName": "2017488PasqualeVpe..PASQUALE_base_vPE_BV..module-0",
           "properties": {
             "minCountInstances": 1,
             "maxCountInstances": 1,
             "initialCount": 1,
-            "vfModuleLabel": "ADIOD_base_vPE_BV",
+            "vfModuleLabel": "PASQUALE_base_vPE_BV",
             "baseModule": true
           },
           "inputs": {},
           "volumeGroupAllowed": false
         },
-        "2017488_adiodvpe0..2017488AdiodVpe..ADIOD_vPFE_BV..module-2": {
+        "2017488_pasqualevpe0..2017488PasqualeVpe..PASQUALE_vPFE_BV..module-2": {
           "uuid": "0a0dd9d4-31d3-4c3a-ae89-a02f383e6a9a",
           "invariantUuid": "eff8cc59-53a1-4101-aed7-8cf24ecf8339",
           "customizationUuid": "3cd946bb-50e0-40d8-96d3-c9023520b557",
           "description": null,
-          "name": "2017488AdiodVpe..ADIOD_vPFE_BV..module-2",
+          "name": "2017488PasqualeVpe..PASQUALE_vPFE_BV..module-2",
           "version": "6",
-          "modelCustomizationName": "2017488AdiodVpe..ADIOD_vPFE_BV..module-2",
+          "modelCustomizationName": "2017488PasqualeVpe..PASQUALE_vPFE_BV..module-2",
           "properties": {
             "minCountInstances": 0,
             "maxCountInstances": null,
             "initialCount": 0,
-            "vfModuleLabel": "ADIOD_vPFE_BV",
+            "vfModuleLabel": "PASQUALE_vPFE_BV",
             "baseModule": false
           },
           "inputs": {},
@@ -1441,19 +1517,19 @@ describe('Network Model Info', () => {
         }
       },
       "volumeGroups": {
-        "2017488_adiodvpe0..2017488AdiodVpe..ADIOD_vRE_BV..module-1": {
+        "2017488_pasqualevpe0..2017488PasqualeVpe..PASQUALE_vRE_BV..module-1": {
           "uuid": "25284168-24bb-4698-8cb4-3f509146eca5",
           "invariantUuid": "7253ff5c-97f0-4b8b-937c-77aeb4d79aa1",
           "customizationUuid": "f7e7c365-60cf-49a9-9ebf-a1aa11b9d401",
           "description": null,
-          "name": "2017488AdiodVpe..ADIOD_vRE_BV..module-1",
+          "name": "2017488PasqualeVpe..PASQUALE_vRE_BV..module-1",
           "version": "6",
-          "modelCustomizationName": "2017488AdiodVpe..ADIOD_vRE_BV..module-1",
+          "modelCustomizationName": "2017488PasqualeVpe..PASQUALE_vRE_BV..module-1",
           "properties": {
             "minCountInstances": 0,
             "maxCountInstances": null,
             "initialCount": 0,
-            "vfModuleLabel": "ADIOD_vRE_BV",
+            "vfModuleLabel": "PASQUALE_vRE_BV",
             "baseModule": false
           },
           "inputs": {
@@ -1463,10 +1539,10 @@ describe('Network Model Info', () => {
               "entry_schema": null,
               "inputProperties": {
                 "sourceType": "HEAT",
-                "vfModuleLabel": "ADIOD_vRE_BV",
+                "vfModuleLabel": "PASQUALE_vRE_BV",
                 "paramName": "vnf_config_template_version"
               },
-              "fromInputName": "2017488_adiodvpe0_vnf_config_template_version",
+              "fromInputName": "2017488_pasqualevpe0_vnf_config_template_version",
               "constraints": null,
               "required": true,
               "default": "17.2"
@@ -1477,10 +1553,10 @@ describe('Network Model Info', () => {
               "entry_schema": null,
               "inputProperties": {
                 "sourceType": "HEAT",
-                "vfModuleLabel": "ADIOD_vRE_BV",
+                "vfModuleLabel": "PASQUALE_vRE_BV",
                 "paramName": "bandwidth_units"
               },
-              "fromInputName": "adiodvpe0_bandwidth_units",
+              "fromInputName": "pasqualevpe0_bandwidth_units",
               "constraints": null,
               "required": true,
               "default": "Gbps"
@@ -1491,10 +1567,10 @@ describe('Network Model Info', () => {
               "entry_schema": null,
               "inputProperties": {
                 "sourceType": "HEAT",
-                "vfModuleLabel": "ADIOD_vRE_BV",
+                "vfModuleLabel": "PASQUALE_vRE_BV",
                 "paramName": "bandwidth"
               },
-              "fromInputName": "adiodvpe0_bandwidth",
+              "fromInputName": "pasqualevpe0_bandwidth",
               "constraints": null,
               "required": true,
               "default": "10"
@@ -1505,10 +1581,10 @@ describe('Network Model Info', () => {
               "entry_schema": null,
               "inputProperties": {
                 "sourceType": "HEAT",
-                "vfModuleLabel": "ADIOD_vRE_BV",
+                "vfModuleLabel": "PASQUALE_vRE_BV",
                 "paramName": "AIC_CLLI"
               },
-              "fromInputName": "2017488_adiodvpe0_AIC_CLLI",
+              "fromInputName": "2017488_pasqualevpe0_AIC_CLLI",
               "constraints": null,
               "required": true,
               "default": "ATLMY8GA"
@@ -1519,29 +1595,29 @@ describe('Network Model Info', () => {
               "entry_schema": null,
               "inputProperties": {
                 "sourceType": "HEAT",
-                "vfModuleLabel": "ADIOD_vRE_BV",
+                "vfModuleLabel": "PASQUALE_vRE_BV",
                 "paramName": "vnf_instance_name"
               },
-              "fromInputName": "2017488_adiodvpe0_vnf_instance_name",
+              "fromInputName": "2017488_pasqualevpe0_vnf_instance_name",
               "constraints": null,
               "required": true,
               "default": "mtnj309me6"
             }
           }
         },
-        "2017488_adiodvpe0..2017488AdiodVpe..ADIOD_vPFE_BV..module-2": {
+        "2017488_pasqualevpe0..2017488PasqualeVpe..PASQUALE_vPFE_BV..module-2": {
           "uuid": "0a0dd9d4-31d3-4c3a-ae89-a02f383e6a9a",
           "invariantUuid": "eff8cc59-53a1-4101-aed7-8cf24ecf8339",
           "customizationUuid": "3cd946bb-50e0-40d8-96d3-c9023520b557",
           "description": null,
-          "name": "2017488AdiodVpe..ADIOD_vPFE_BV..module-2",
+          "name": "2017488PasqualeVpe..PASQUALE_vPFE_BV..module-2",
           "version": "6",
-          "modelCustomizationName": "2017488AdiodVpe..ADIOD_vPFE_BV..module-2",
+          "modelCustomizationName": "2017488PasqualeVpe..PASQUALE_vPFE_BV..module-2",
           "properties": {
             "minCountInstances": 0,
             "maxCountInstances": null,
             "initialCount": 0,
-            "vfModuleLabel": "ADIOD_vPFE_BV",
+            "vfModuleLabel": "PASQUALE_vPFE_BV",
             "baseModule": false
           },
           "inputs": {}
index 3d99750..3ed40cd 100644 (file)
@@ -28,6 +28,8 @@ import {
   updateNetworkPosition
 } from "../../../../../shared/storeUtil/utils/network/network.actions";
 import {IModalConfig} from "onap-ui-angular/dist/modals/models/modal-config";
+import {ComponentInfoType} from "../../../component-info/component-info-model";
+import {ModelInformationItem} from "../../../../../shared/components/model-information/model-information.component";
 
 export class NetworkModelInfo implements ILevelNodeInfo {
   constructor(private _dynamicInputsService: DynamicInputsService,
@@ -43,6 +45,8 @@ export class NetworkModelInfo implements ILevelNodeInfo {
   name: string = 'networks';
   type: string = 'Network';
   typeName: string = 'N';
+  childNames: string[];
+  componentInfoType = ComponentInfoType.NETWORK;
 
   /***********************************************************
    * return model dynamic inputs
@@ -83,7 +87,7 @@ export class NetworkModelInfo implements ILevelNodeInfo {
     node.typeName = this.typeName;
     node.menuActions = this.getMenuAction(<any>node, model.uuid);
     node.isFailed = _.isNil(instance.isFailed) ? false : instance.isFailed;
-    node.statusMessage = !_.isNil(instance.statusMessage) ? instance.statusMessage: "";
+    node.statusMessage = !_.isNil(instance.statusMessage) ? instance.statusMessage : "";
     node = this._sharedTreeService.addingStatusProperty(node);
     return node;
   };
@@ -141,7 +145,7 @@ export class NetworkModelInfo implements ILevelNodeInfo {
       map = this._store.getState().service.serviceInstance[serviceModelId].existingNetworksCounterMap || 0;
       if (!_.isNil(map)) {
         let count = map[node.data.modelUniqueId] || 0;
-        count -= this._sharedTreeService.getExistingInstancesWithDeleteMode(node, serviceModelId , 'networks');
+        count -= this._sharedTreeService.getExistingInstancesWithDeleteMode(node, serviceModelId, 'networks');
         return count;
       }
     }
@@ -157,7 +161,7 @@ export class NetworkModelInfo implements ILevelNodeInfo {
     let counter: number = !_.isNil(this._store.getState().service.serviceInstance[serviceModelId]) ?
       (this._store.getState().service.serviceInstance[serviceModelId].existingNetworksCounterMap[node.data.modelUniqueId] || 0) : 0;
 
-    counter -= this._sharedTreeService.getExistingInstancesWithDeleteMode(node, serviceModelId , 'networks');
+    counter -= this._sharedTreeService.getExistingInstancesWithDeleteMode(node, serviceModelId, 'networks');
 
     const properties = this._store.getState().service.serviceHierarchy[serviceModelId].networks[node.data.name].properties;
     const maxInstances: number = !_.isNil(properties) ? (properties.max_instances || 1) : 1;
@@ -167,7 +171,7 @@ export class NetworkModelInfo implements ILevelNodeInfo {
     return new AvailableNodeIcons(showAddIcon, isReachedLimit)
   }
 
-  getMenuAction(node: ITreeNode, serviceModelId: string): { [methodName: string]: { method: Function, visible: Function, enable: Function }} {
+  getMenuAction(node: ITreeNode, serviceModelId: string): { [methodName: string]: { method: Function, visible: Function, enable: Function } } {
     const mode = this._store.getState().global.drawingBoardStatus;
     return {
       edit: {
@@ -186,64 +190,63 @@ export class NetworkModelInfo implements ILevelNodeInfo {
             isUpdateMode: true
           });
         },
-        visible: (node) => this._sharedTreeService.shouldShowRemoveAndEdit(node),
-        enable: (node) => this._sharedTreeService.shouldShowRemoveAndEdit(node)
+        visible: (node) => node.data.parentType !== 'VRF' && this._sharedTreeService.shouldShowRemoveAndEdit(node),
+        enable: (node) => node.data.parentType !== 'VRF' && this._sharedTreeService.shouldShowRemoveAndEdit(node)
       },
       showAuditInfo: {
         method: (node, serviceModelId) => {
           let instance = this._store.getState().service.serviceInstance[serviceModelId].networks[node.data.networkStoreKey];
           this._sharedTreeService.openAuditInfoModal(node, serviceModelId, instance, 'NETWORK', this);
         },
-        visible: (node) => this._sharedTreeService.shouldShowAuditInfo(node),
-        enable: (node) => this._sharedTreeService.shouldShowAuditInfo(node)
+        visible: (node) => node.data.parentType !== 'VRF' && this._sharedTreeService.shouldShowAuditInfo(node),
+        enable: (node) => node.data.parentType !== 'VRF' && this._sharedTreeService.shouldShowAuditInfo(node)
       },
       duplicate: {
         method: (node, serviceModelId) => {
-          if (this._store.getState().global.flags['FLAG_DUPLICATE_VNF']) {
-            const storeKey = node.data.networkStoreKey;
-            let modalConfig: IModalConfig = this._duplicateService.openDuplicateModal(serviceModelId, node.data.modelUniqueId, node.data.modelName, storeKey, 1, this._store, node);
-            this.modalService.openCustomModal(modalConfig, DuplicateVnfComponent);
-          }
+          const storeKey = node.data.networkStoreKey;
+          let modalConfig: IModalConfig = this._duplicateService.openDuplicateModal(serviceModelId, node.data.modelUniqueId, node.data.modelName, storeKey, 1, this._store, node);
+          this.modalService.openCustomModal(modalConfig, DuplicateVnfComponent);
         },
-        visible: (node) => this._sharedTreeService.shouldShowDuplicate(node) && !_.isNil(node.data) && !_.isNil(node.data.action) && node.data.action === ServiceInstanceActions.Create && this._duplicateService.canDuplicate(node),
-        enable: (node, serviceModelId) => this._duplicateService.isEnabled(node, this._store, serviceModelId)
+        visible: (node) => node.data.parentType !== 'VRF' && this._sharedTreeService.shouldShowDuplicate(node) && !_.isNil(node.data) && !_.isNil(node.data.action) && node.data.action === ServiceInstanceActions.Create && this._duplicateService.canDuplicate(node),
+        enable: (node, serviceModelId) => node.data.parentType !== 'VRF' && this._duplicateService.isEnabled(node, this._store, serviceModelId)
       },
       remove: {
         method: (node, serviceModelId) => {
           let storeKey: string = node.data.networkStoreKey;
           this._store.dispatch(removeInstance(node.data.networkStoreKey, serviceModelId, storeKey, node));
-          this._store.dispatch(changeInstanceCounter(node.data.modelUniqueId , serviceModelId, -1, node));
+          this._store.dispatch(changeInstanceCounter(node.data.modelUniqueId, serviceModelId, -1, node));
           this._sharedTreeService.selectedVNF = null;
         },
-        visible: (node) => this._sharedTreeService.shouldShowRemoveAndEdit(node),
-        enable: (node) => this._sharedTreeService.shouldShowRemoveAndEdit(node),
+        visible: (node) => node.data.parentType !== 'VRF' && this._sharedTreeService.shouldShowRemoveAndEdit(node),
+        enable: (node) => node.data.parentType !== 'VRF' && this._sharedTreeService.shouldShowRemoveAndEdit(node),
       },
-      delete : {
-        method : (node, serviceModelId) => {
+      delete: {
+        method: (node, serviceModelId) => {
           if ((!_.isNil(node.data.children) && node.data.children.length === 0) || _.isNil(node.data.children)) {
             this._store.dispatch(deleteActionNetworkInstance(node.data.networkStoreKey, serviceModelId));
-          }else {
-            this._sharedTreeService.removeDeleteAllChild(node, serviceModelId, (node, serviceModelId)=>{
+          } else {
+            this._sharedTreeService.removeDeleteAllChild(node, serviceModelId, (node, serviceModelId) => {
               this._store.dispatch(deleteActionNetworkInstance(node.data.networkStoreKey, serviceModelId));
             });
           }
         },
-        visible: (node) => this._sharedTreeService.shouldShowDelete(node),
-        enable: (node) => this._sharedTreeService.shouldShowDelete(node)
+        visible: (node) => node.data.parentType !== 'VRF' && this._sharedTreeService.shouldShowDelete(node),
+        enable: (node) => node.data.parentType !== 'VRF' && this._sharedTreeService.shouldShowDelete(node)
       },
-      undoDelete : {
-        method : (node, serviceModelId) => {
+      undoDelete: {
+        method: (node, serviceModelId) => {
           if ((!_.isNil(node.data.children) && node.data.children.length === 0) || _.isNil(node.data.children)) {
             this._store.dispatch(undoDeleteActionNetworkInstance(node.data.networkStoreKey, serviceModelId));
-          }else {
-            this._sharedTreeService.undoDeleteAllChild(node, serviceModelId, (node, serviceModelId)=>{
+          } else {
+            this._sharedTreeService.undoDeleteAllChild(node, serviceModelId, (node, serviceModelId) => {
               this._store.dispatch(undoDeleteActionNetworkInstance(node.data.networkStoreKey, serviceModelId));
             });
           }
         },
-        visible: (node) => this._sharedTreeService.shouldShowUndoDelete(node),
-        enable: (node, serviceModelId) => this._sharedTreeService.shouldShowUndoDelete(node) && !this._sharedTreeService.isServiceOnDeleteMode(serviceModelId)
+        visible: (node) => node.data.parentType !== 'VRF' && this._sharedTreeService.shouldShowUndoDelete(node),
+        enable: (node, serviceModelId) => node.data.parentType !== 'VRF' && this._sharedTreeService.shouldShowUndoDelete(node) && !this._sharedTreeService.isServiceOnDeleteMode(serviceModelId)
       }
+
     };
   }
 
@@ -251,7 +254,7 @@ export class NetworkModelInfo implements ILevelNodeInfo {
    * should update node position inside the tree
    * @param node - current ITrees node
    ************************************************************/
-  updatePosition(that , node, instanceId): void {
+  updatePosition(that, node, instanceId): void {
     that.store.dispatch(updateNetworkPosition(node));
   }
 
@@ -259,6 +262,16 @@ export class NetworkModelInfo implements ILevelNodeInfo {
     return !_.isNil(instance) ? instance.position : null;
   }
 
-  onSelectedNode(node: ITreeNode): void {
+  getInfo(model, instance): ModelInformationItem[] {
+    const modelInformation = !_.isEmpty(model) && !_.isEmpty(model.properties) ? [
+      ModelInformationItem.createInstance("Network role", model.properties.network_role)] : [];
+    ModelInformationItem.createInstance("Min instances", !_.isNull(model.min) ? String(model.min) : null),
+      ModelInformationItem.createInstance("Max instances", !_.isNull(model.max) ? String(model.max) : null)
+    const instanceInfo = !_.isEmpty(instance) ? [
+        ModelInformationItem.createInstance("Route target id", instance.routeTargetId ? instance.routeTargetId : null),
+        ModelInformationItem.createInstance("Route target role", instance.routeTargetRole ? instance.routeTargetRole : null)] :
+      [];
+    const result = [modelInformation, instanceInfo];
+    return _.uniq(_.flatten(result));
   }
 }
diff --git a/vid-webpack-master/src/app/drawingBoard/service-planning/objectsToTree/models/pnf/pnf.model.info.spec.ts b/vid-webpack-master/src/app/drawingBoard/service-planning/objectsToTree/models/pnf/pnf.model.info.spec.ts
new file mode 100644 (file)
index 0000000..ca041e0
--- /dev/null
@@ -0,0 +1,134 @@
+import {ComponentInfoService} from "../../../component-info/component-info.service";
+import {AppState} from "../../../../../shared/store/reducers";
+import {NgRedux} from "@angular-redux/store";
+import {PnfModelInfo} from "./pnf.model.info";
+import {getTestBed, TestBed} from "@angular/core/testing";
+import {DynamicInputsService} from "../../dynamicInputs.service";
+import {SharedTreeService} from "../../shared.tree.service";
+import {DuplicateService} from "../../../duplicate/duplicate.service";
+import {AaiService} from "../../../../../shared/services/aaiService/aai.service";
+import {FeatureFlagsService} from "../../../../../shared/services/featureFlag/feature-flags.service";
+import {IframeService} from "../../../../../shared/utils/iframe.service";
+import {HttpClientTestingModule} from "@angular/common/http/testing";
+import {MockNgRedux, NgReduxTestingModule} from "@angular-redux/store/testing";
+import {HttpClient, HttpHandler} from "@angular/common/http";
+import {CollectionResourceModel} from "../../../../../shared/models/collectionResourceModel";
+import {ComponentInfoType} from "../../../component-info/component-info-model";
+
+
+describe('PNF model info', () => {
+  let injector;
+  let _componentInfoService: ComponentInfoService;
+  let _store: NgRedux<AppState>;
+  let pnfModel: PnfModelInfo =  new PnfModelInfo();
+  beforeEach(() => {
+    TestBed.configureTestingModule({
+      imports: [HttpClientTestingModule, NgReduxTestingModule],
+      providers: [
+        MockNgRedux,
+        DynamicInputsService,
+        SharedTreeService,
+        DuplicateService,
+        AaiService,
+        HttpClient,
+        HttpHandler,
+        FeatureFlagsService,
+        ComponentInfoService,
+        IframeService]
+    }).compileComponents();
+
+    injector = getTestBed();
+    _store = injector.get(NgRedux);
+    _componentInfoService = injector.get(ComponentInfoService);
+  });
+
+  test('pnf model should be defined', () => {
+    expect(pnfModel).toBeDefined();
+  });
+
+  test('pnf model should defined extra details', () => {
+    expect(pnfModel.name).toEqual('pnfs');
+    expect(pnfModel.type).toEqual('PNF');
+    expect(pnfModel.typeName).toEqual('PNF');
+    expect(pnfModel.componentInfoType).toEqual(ComponentInfoType.PNF);
+  });
+
+  test('getTooltip should return "PNF"', () => {
+    let tooltip: string = pnfModel.getTooltip();
+    expect(tooltip).toEqual('PNF');
+  });
+
+  test('getType should return "pnf"', () => {
+    let tooltip: string = pnfModel.getType();
+    expect(tooltip).toEqual('pnf');
+  });
+
+  test('getNextLevelObject should be null', () => {
+    let nextLevel: any = pnfModel.getNextLevelObject();
+    expect(nextLevel).toBeNull();
+  });
+
+  test('isEcompGeneratedNaming should return false', () => {
+    let isEcompGeneratedNaming: boolean = pnfModel.isEcompGeneratedNaming(<any>{});
+    expect(isEcompGeneratedNaming).toBeFalsy();
+  });
+
+  test('getModel should return pnf model', () => {
+    let model: CollectionResourceModel = pnfModel.getModel('PNF1', <any>{
+      originalName : 'PNF1'
+    }, getServiceHierarchy());
+    expect(model.type).toEqual('PNF');
+  });
+
+  function getServiceHierarchy(){
+    return {
+      "service": {
+        "uuid": "12550cd7-7708-4f53-a09e-41d3d6327ebc",
+        "invariantUuid": "561faa57-7bbb-40ec-a81c-c0d4133e98d4",
+        "name": "AIM Transport SVC_ym161f",
+        "version": "1.0",
+        "toscaModelURL": null,
+        "category": "Network L1-3",
+        "serviceType": "TRANSPORT",
+        "serviceRole": "AIM",
+        "description": "AIM Transport service",
+        "serviceEcompNaming": "true",
+        "instantiationType": "Macro",
+        "inputs": {},
+        "vidNotions": {
+          "instantiationUI": "legacy",
+          "modelCategory": "other",
+          "viewEditUI": "legacy"
+        }
+      },
+      "vnfs": {},
+      "networks": {},
+      "collectionResources": {},
+      "configurations": {},
+      "fabricConfigurations": {},
+      "serviceProxies": {},
+      "vfModules": {},
+      "volumeGroups": {},
+      "pnfs": {
+        "PNF1": {
+          "uuid": "1c831fa9-28a6-4778-8c1d-80b9e769f2ed",
+          "invariantUuid": "74e13a12-dac9-4fba-b102-cd242d9e7f02",
+          "description": "AIM Transport service",
+          "name": "AIM PNF Model",
+          "version": "1.0",
+          "customizationUuid": "dce78da7-c842-47a1-aba2-2de1cd03ab7a",
+          "inputs": {},
+          "commands": {},
+          "properties": {
+            "nf_function": "SDNGW",
+            "nf_role": "pD2IPE",
+            "ecomp_generated_naming": "false",
+            "nf_type": "ROUTER"
+          },
+          "type": "PNF"
+        }
+      },
+      "vnfGroups": {}
+    }
+  }
+})
diff --git a/vid-webpack-master/src/app/drawingBoard/service-planning/objectsToTree/models/pnf/pnf.model.info.ts b/vid-webpack-master/src/app/drawingBoard/service-planning/objectsToTree/models/pnf/pnf.model.info.ts
new file mode 100644 (file)
index 0000000..dc01b87
--- /dev/null
@@ -0,0 +1,70 @@
+import {ILevelNodeInfo} from "../basic.model.info";
+import {ComponentInfoType} from "../../../component-info/component-info-model";
+import {ModelInformationItem} from "../../../../../shared/components/model-information/model-information.component";
+import {ITreeNode} from "angular-tree-component/dist/defs/api";
+import {AvailableNodeIcons} from "../../../available-models-tree/available-models-tree.service";
+import {PnfInstance} from "app/shared/models/pnfInstance";
+import {PNFModel} from "../../../../../shared/models/pnfModel";
+import {PnfTreeNode} from "../../../../../shared/models/pnfTreeNode";
+
+
+export class PnfModelInfo implements ILevelNodeInfo{
+
+  constructor(){}
+
+  name: string = 'pnfs';
+  type: string ='PNF';
+  typeName: string = 'PNF';
+  childNames: string[];
+  componentInfoType = ComponentInfoType.PNF;
+
+  createInstanceTreeNode = (instance: PnfInstance, model: PNFModel, parentModel: any, storeKey: string): PnfTreeNode => null;
+
+  getInfo(model, instance): ModelInformationItem[] {
+    return [];
+  }
+
+  getMenuAction(node: ITreeNode, serviceModelId: string): { [methodName: string]: { method: Function; visible: Function; enable: Function } } {
+    return {};
+  }
+
+  getModel = (pnfModelId: string, instance: PnfInstance, serviceHierarchy): PNFModel => {
+    const originalModelName = instance.originalName ? instance.originalName : pnfModelId;
+    return new PNFModel(serviceHierarchy[this.name][originalModelName]);
+  };
+
+  getNextLevelObject(): any { return null;  }
+
+  getNodeCount(node: ITreeNode, serviceModelId: string): number {
+    return 0;
+  }
+
+  getNodePosition(instance): number {return 0;  }
+
+  getTooltip = (): string => 'PNF';
+
+
+  getType = (): string => 'pnf';
+
+
+  hasMissingData(instance, dynamicInputs: any, isEcompGeneratedNaming: boolean): boolean {
+    return false;
+  }
+
+  isEcompGeneratedNaming(currentModel): boolean {
+    return false;
+  }
+
+  onClickAdd(node: ITreeNode, serviceModelId: string): void {
+  }
+
+  showNodeIcons(node: ITreeNode, serviceModelId: string): AvailableNodeIcons {
+    return null;
+  }
+
+  updateDynamicInputsDataFromModel = (currentModel): any => [];
+
+  updatePosition(that, node, instanceId): void {
+  }
+
+}
index dcf25f5..840f31d 100644 (file)
@@ -107,15 +107,15 @@ describe('Related Vnf member Model Info', () => {
   });
 
   test('getModel should return VNF model', () => {
-    let model: VNFModel = relatedVnfMemeber.getModel('2017-388_ADIOD-vPE 1', <any>{
-      originalName : '2017-388_ADIOD-vPE 1'
+    let model: VNFModel = relatedVnfMemeber.getModel('2017-388_PASQUALE-vPE 1', <any>{
+      originalName : '2017-388_PASQUALE-vPE 1'
     }, getServiceHierarchy());
     expect(model.type).toEqual('VF');
   });
 
 
   test('getMenuAction: delete', ()=>{
-    let node = {"modelId":"d6557200-ecf2-4641-8094-5393ae3aae60","missingData":true,"action":"None","inMaint":true,"name":"jlfBwIks283yKlCD8","modelName":"VF_vMee 0","type":"VF","isEcompGeneratedNaming":true,"networkStoreKey":"VF_vMee 0:004","vnfStoreKey":"VF_vMee 0:004","typeName":"VNF"};
+    let node = {"modelId":"d6557200-ecf2-4641-8094-5393ae3aae60","missingData":true,"action":"None","inMaint":true,"name":"jlfBwIks283yKlCD8","modelName":"VF_vGeraldine 0","type":"VF","isEcompGeneratedNaming":true,"networkStoreKey":"VF_vGeraldine 0:004","vnfStoreKey":"VF_vGeraldine 0:004","typeName":"VNF"};
     let serviceModelId = "d6557200-ecf2-4641-8094-5393ae3aae60";
     let result = relatedVnfMemeber.getMenuAction(<any>node, serviceModelId);
     spyOn(result['delete'], 'method');
@@ -128,7 +128,7 @@ describe('Related Vnf member Model Info', () => {
 
 
   test('getMenuAction: undoDelete', ()=>{
-    let node = {"modelId":"d6557200-ecf2-4641-8094-5393ae3aae60","missingData":true,"action":"None","inMaint":true,"name":"jlfBwIks283yKlCD8","modelName":"VF_vMee 0","type":"VF","isEcompGeneratedNaming":true,"networkStoreKey":"VF_vMee 0:004","vnfStoreKey":"VF_vMee 0:004","typeName":"VNF"};
+    let node = {"modelId":"d6557200-ecf2-4641-8094-5393ae3aae60","missingData":true,"action":"None","inMaint":true,"name":"jlfBwIks283yKlCD8","modelName":"VF_vGeraldine 0","type":"VF","isEcompGeneratedNaming":true,"networkStoreKey":"VF_vGeraldine 0:004","vnfStoreKey":"VF_vGeraldine 0:004","typeName":"VNF"};
     let serviceModelId = "d6557200-ecf2-4641-8094-5393ae3aae60";
     let result = relatedVnfMemeber.getMenuAction(<any>node, serviceModelId);
     spyOn(result['undoDelete'], 'method');
@@ -156,7 +156,7 @@ describe('Related Vnf member Model Info', () => {
         "serviceEcompNaming": "false",
         "instantiationType": "Macro",
         "inputs": {
-          "2017488_adiodvpe0_ASN": {
+          "2017488_pasqualevpe0_ASN": {
             "type": "string",
             "description": "AV/PE",
             "entry_schema": null,
@@ -172,11 +172,11 @@ describe('Related Vnf member Model Info', () => {
         }
       },
       "vnfs": {
-        "2017-388_ADIOD-vPE 1": {
+        "2017-388_PASQUALE-vPE 1": {
           "uuid": "0903e1c0-8e03-4936-b5c2-260653b96413",
           "invariantUuid": "00beb8f9-6d39-452f-816d-c709b9cbb87d",
-          "description": "Name ADIOD vPE Description The provider edge function for the ADIOD service supported by the Junipers VMX product Category Router Vendor Juniper Vendor Release Code 17.2 Owners Mary Fragale. Updated 9-25 to use v8.0 of the Juniper Valid 2 VLM",
-          "name": "2017-388_ADIOD-vPE",
+          "description": "Name PASQUALE vPE Description The provider edge function for the PASQUALE service supported by the Junipers VMX product Category Router Vendor Juniper Vendor Release Code 17.2 Owners Mary Fragale. Updated 9-25 to use v8.0 of the Juniper Valid 2 VLM",
+          "name": "2017-388_PASQUALE-vPE",
           "version": "1.0",
           "customizationUuid": "280dec31-f16d-488b-9668-4aae55d6648a",
           "inputs": {
@@ -239,37 +239,37 @@ describe('Related Vnf member Model Info', () => {
             "vnf_config_template_version": {
               "displayName": "vnf_config_template_version",
               "command": "get_input",
-              "inputName": "2017488_adiodvpe0_vnf_config_template_version"
+              "inputName": "2017488_pasqualevpe0_vnf_config_template_version"
             },
             "bandwidth_units": {
               "displayName": "bandwidth_units",
               "command": "get_input",
-              "inputName": "adiodvpe0_bandwidth_units"
+              "inputName": "pasqualevpe0_bandwidth_units"
             },
             "bandwidth": {
               "displayName": "bandwidth",
               "command": "get_input",
-              "inputName": "adiodvpe0_bandwidth"
+              "inputName": "pasqualevpe0_bandwidth"
             },
             "AIC_CLLI": {
               "displayName": "AIC_CLLI",
               "command": "get_input",
-              "inputName": "2017488_adiodvpe0_AIC_CLLI"
+              "inputName": "2017488_pasqualevpe0_AIC_CLLI"
             },
             "ASN": {
               "displayName": "ASN",
               "command": "get_input",
-              "inputName": "2017488_adiodvpe0_ASN"
+              "inputName": "2017488_pasqualevpe0_ASN"
             },
             "vnf_instance_name": {
               "displayName": "vnf_instance_name",
               "command": "get_input",
-              "inputName": "2017488_adiodvpe0_vnf_instance_name"
+              "inputName": "2017488_pasqualevpe0_vnf_instance_name"
             }
           },
           "properties": {
             "vmxvre_retype": "RE-VMX",
-            "vnf_config_template_version": "get_input:2017488_adiodvpe0_vnf_config_template_version",
+            "vnf_config_template_version": "get_input:2017488_pasqualevpe0_vnf_config_template_version",
             "sriov44_net_id": "48d399b3-11ee-48a8-94d2-f0ea94d6be8d",
             "int_ctl_net_id": "2f323477-6936-4d01-ac53-d849430281d9",
             "vmxvpfe_sriov41_0_port_mac": "00:11:22:EF:AC:DF",
@@ -314,7 +314,7 @@ describe('Related Vnf member Model Info', () => {
             "vmxvpfe_sriov43_0_port_unknownmulticastallow": "true",
             "vmxvre_int_ctl_ip_0": "10.0.0.10",
             "ecomp_generated_naming": "false",
-            "AIC_CLLI": "get_input:2017488_adiodvpe0_AIC_CLLI",
+            "AIC_CLLI": "get_input:2017488_pasqualevpe0_AIC_CLLI",
             "vnf_name": "mtnj309me6vre",
             "vmxvpfe_sriov41_0_port_unknownunicastallow": "true",
             "vmxvre_volume_type_1": "HITACHI",
@@ -322,14 +322,14 @@ describe('Related Vnf member Model Info', () => {
             "vmxvre_volume_type_0": "HITACHI",
             "vmxvpfe_volume_type_0": "HITACHI",
             "vmxvpfe_sriov43_0_port_broadcastallow": "true",
-            "bandwidth_units": "get_input:adiodvpe0_bandwidth_units",
+            "bandwidth_units": "get_input:pasqualevpe0_bandwidth_units",
             "vnf_id": "123",
             "vmxvre_oam_prefix": "24",
             "availability_zone_0": "mtpocfo-kvm-az01",
-            "ASN": "get_input:2017488_adiodvpe0_ASN",
+            "ASN": "get_input:2017488_pasqualevpe0_ASN",
             "vmxvre_chassis_i2cid": "161",
             "vmxvpfe_name_0": "vPFEXI",
-            "bandwidth": "get_input:adiodvpe0_bandwidth",
+            "bandwidth": "get_input:pasqualevpe0_bandwidth",
             "availability_zone_max_count": "1",
             "vmxvre_volume_size_0": "45.0",
             "vmxvre_volume_size_1": "50.0",
@@ -339,7 +339,7 @@ describe('Related Vnf member Model Info', () => {
             "vmxvre_ore_present": "0",
             "vmxvre_volume_name_0": "vREXI_FBVolume",
             "vmxvre_type": "0",
-            "vnf_instance_name": "get_input:2017488_adiodvpe0_vnf_instance_name",
+            "vnf_instance_name": "get_input:2017488_pasqualevpe0_vnf_instance_name",
             "vmxvpfe_sriov41_0_port_unknownmulticastallow": "true",
             "oam_net_id": "b95eeb1d-d55d-4827-abb4-8ebb94941429",
             "vmx_int_ctl_len": "24",
@@ -353,16 +353,16 @@ describe('Related Vnf member Model Info', () => {
             "vmxvpfe_flavor_name": "ns.c20r16d25.v5"
           },
           "type": "VF",
-          "modelCustomizationName": "2017-388_ADIOD-vPE 1",
+          "modelCustomizationName": "2017-388_PASQUALE-vPE 1",
           "vfModules": {},
           "volumeGroups": {},
           "vfcInstanceGroups": {}
         },
-        "2017-388_ADIOD-vPE 0": {
+        "2017-388_PASQUALE-vPE 0": {
           "uuid": "afacccf6-397d-45d6-b5ae-94c39734b168",
           "invariantUuid": "72e465fe-71b1-4e7b-b5ed-9496118ff7a8",
-          "description": "Name ADIOD vPE Description The provider edge function for the ADIOD service supported by the Junipers VMX product Category Router Vendor Juniper Vendor Release Code 17.2 Owners Mary Fragale. Updated 9-25 to use v8.0 of the Juniper Valid 2 VLM",
-          "name": "2017-388_ADIOD-vPE",
+          "description": "Name PASQUALE vPE Description The provider edge function for the PASQUALE service supported by the Junipers VMX product Category Router Vendor Juniper Vendor Release Code 17.2 Owners Mary Fragale. Updated 9-25 to use v8.0 of the Juniper Valid 2 VLM",
+          "name": "2017-388_PASQUALE-vPE",
           "version": "4.0",
           "customizationUuid": "b3c76f73-eeb5-4fb6-9d31-72a889f1811c",
           "inputs": {
@@ -425,37 +425,37 @@ describe('Related Vnf member Model Info', () => {
             "vnf_config_template_version": {
               "displayName": "vnf_config_template_version",
               "command": "get_input",
-              "inputName": "2017488_adiodvpe0_vnf_config_template_version"
+              "inputName": "2017488_pasqualevpe0_vnf_config_template_version"
             },
             "bandwidth_units": {
               "displayName": "bandwidth_units",
               "command": "get_input",
-              "inputName": "adiodvpe0_bandwidth_units"
+              "inputName": "pasqualevpe0_bandwidth_units"
             },
             "bandwidth": {
               "displayName": "bandwidth",
               "command": "get_input",
-              "inputName": "adiodvpe0_bandwidth"
+              "inputName": "pasqualevpe0_bandwidth"
             },
             "AIC_CLLI": {
               "displayName": "AIC_CLLI",
               "command": "get_input",
-              "inputName": "2017488_adiodvpe0_AIC_CLLI"
+              "inputName": "2017488_pasqualevpe0_AIC_CLLI"
             },
             "ASN": {
               "displayName": "ASN",
               "command": "get_input",
-              "inputName": "2017488_adiodvpe0_ASN"
+              "inputName": "2017488_pasqualevpe0_ASN"
             },
             "vnf_instance_name": {
               "displayName": "vnf_instance_name",
               "command": "get_input",
-              "inputName": "2017488_adiodvpe0_vnf_instance_name"
+              "inputName": "2017488_pasqualevpe0_vnf_instance_name"
             }
           },
           "properties": {
             "vmxvre_retype": "RE-VMX",
-            "vnf_config_template_version": "get_input:2017488_adiodvpe0_vnf_config_template_version",
+            "vnf_config_template_version": "get_input:2017488_pasqualevpe0_vnf_config_template_version",
             "sriov44_net_id": "48d399b3-11ee-48a8-94d2-f0ea94d6be8d",
             "int_ctl_net_id": "2f323477-6936-4d01-ac53-d849430281d9",
             "vmxvpfe_sriov41_0_port_mac": "00:11:22:EF:AC:DF",
@@ -501,7 +501,7 @@ describe('Related Vnf member Model Info', () => {
             "vmxvpfe_sriov43_0_port_unknownmulticastallow": "true",
             "vmxvre_int_ctl_ip_0": "10.0.0.10",
             "ecomp_generated_naming": "false",
-            "AIC_CLLI": "get_input:2017488_adiodvpe0_AIC_CLLI",
+            "AIC_CLLI": "get_input:2017488_pasqualevpe0_AIC_CLLI",
             "vnf_name": "mtnj309me6vre",
             "vmxvpfe_sriov41_0_port_unknownunicastallow": "true",
             "vmxvre_volume_type_1": "HITACHI",
@@ -509,14 +509,14 @@ describe('Related Vnf member Model Info', () => {
             "vmxvre_volume_type_0": "HITACHI",
             "vmxvpfe_volume_type_0": "HITACHI",
             "vmxvpfe_sriov43_0_port_broadcastallow": "true",
-            "bandwidth_units": "get_input:adiodvpe0_bandwidth_units",
+            "bandwidth_units": "get_input:pasqualevpe0_bandwidth_units",
             "vnf_id": "123",
             "vmxvre_oam_prefix": "24",
             "availability_zone_0": "mtpocfo-kvm-az01",
-            "ASN": "get_input:2017488_adiodvpe0_ASN",
+            "ASN": "get_input:2017488_pasqualevpe0_ASN",
             "vmxvre_chassis_i2cid": "161",
             "vmxvpfe_name_0": "vPFEXI",
-            "bandwidth": "get_input:adiodvpe0_bandwidth",
+            "bandwidth": "get_input:pasqualevpe0_bandwidth",
             "availability_zone_max_count": "1",
             "vmxvre_volume_size_0": "45.0",
             "vmxvre_volume_size_1": "50.0",
@@ -526,7 +526,7 @@ describe('Related Vnf member Model Info', () => {
             "vmxvre_ore_present": "0",
             "vmxvre_volume_name_0": "vREXI_FBVolume",
             "vmxvre_type": "0",
-            "vnf_instance_name": "get_input:2017488_adiodvpe0_vnf_instance_name",
+            "vnf_instance_name": "get_input:2017488_pasqualevpe0_vnf_instance_name",
             "vmxvpfe_sriov41_0_port_unknownmulticastallow": "true",
             "oam_net_id": "b95eeb1d-d55d-4827-abb4-8ebb94941429",
             "vmx_int_ctl_len": "24",
@@ -540,16 +540,16 @@ describe('Related Vnf member Model Info', () => {
             "vmxvpfe_flavor_name": "ns.c20r16d25.v5"
           },
           "type": "VF",
-          "modelCustomizationName": "2017-388_ADIOD-vPE 0",
+          "modelCustomizationName": "2017-388_PASQUALE-vPE 0",
           "vfModules": {},
           "volumeGroups": {},
           "vfcInstanceGroups": {}
         },
-        "2017-488_ADIOD-vPE 0": {
+        "2017-488_PASQUALE-vPE 0": {
           "uuid": "69e09f68-8b63-4cc9-b9ff-860960b5db09",
           "invariantUuid": "72e465fe-71b1-4e7b-b5ed-9496118ff7a8",
-          "description": "Name ADIOD vPE Description The provider edge function for the ADIOD service supported by the Junipers VMX product Category Router Vendor Juniper Vendor Release Code 17.2 Owners Mary Fragale. Updated 9-25 to use v8.0 of the Juniper Valid 2 VLM",
-          "name": "2017-488_ADIOD-vPE",
+          "description": "Name PASQUALE vPE Description The provider edge function for the PASQUALE service supported by the Junipers VMX product Category Router Vendor Juniper Vendor Release Code 17.2 Owners Mary Fragale. Updated 9-25 to use v8.0 of the Juniper Valid 2 VLM",
+          "name": "2017-488_PASQUALE-vPE",
           "version": "5.0",
           "customizationUuid": "1da7b585-5e61-4993-b95e-8e6606c81e45",
           "inputs": {
@@ -612,37 +612,37 @@ describe('Related Vnf member Model Info', () => {
             "vnf_config_template_version": {
               "displayName": "vnf_config_template_version",
               "command": "get_input",
-              "inputName": "2017488_adiodvpe0_vnf_config_template_version"
+              "inputName": "2017488_pasqualevpe0_vnf_config_template_version"
             },
             "bandwidth_units": {
               "displayName": "bandwidth_units",
               "command": "get_input",
-              "inputName": "adiodvpe0_bandwidth_units"
+              "inputName": "pasqualevpe0_bandwidth_units"
             },
             "bandwidth": {
               "displayName": "bandwidth",
               "command": "get_input",
-              "inputName": "adiodvpe0_bandwidth"
+              "inputName": "pasqualevpe0_bandwidth"
             },
             "AIC_CLLI": {
               "displayName": "AIC_CLLI",
               "command": "get_input",
-              "inputName": "2017488_adiodvpe0_AIC_CLLI"
+              "inputName": "2017488_pasqualevpe0_AIC_CLLI"
             },
             "ASN": {
               "displayName": "ASN",
               "command": "get_input",
-              "inputName": "2017488_adiodvpe0_ASN"
+              "inputName": "2017488_pasqualevpe0_ASN"
             },
             "vnf_instance_name": {
               "displayName": "vnf_instance_name",
               "command": "get_input",
-              "inputName": "2017488_adiodvpe0_vnf_instance_name"
+              "inputName": "2017488_pasqualevpe0_vnf_instance_name"
             }
           },
           "properties": {
             "vmxvre_retype": "RE-VMX",
-            "vnf_config_template_version": "get_input:2017488_adiodvpe0_vnf_config_template_version",
+            "vnf_config_template_version": "get_input:2017488_pasqualevpe0_vnf_config_template_version",
             "sriov44_net_id": "48d399b3-11ee-48a8-94d2-f0ea94d6be8d",
             "int_ctl_net_id": "2f323477-6936-4d01-ac53-d849430281d9",
             "vmxvpfe_sriov41_0_port_mac": "00:11:22:EF:AC:DF",
@@ -689,7 +689,7 @@ describe('Related Vnf member Model Info', () => {
             "vmxvpfe_sriov43_0_port_unknownmulticastallow": "true",
             "vmxvre_int_ctl_ip_0": "10.0.0.10",
             "ecomp_generated_naming": "false",
-            "AIC_CLLI": "get_input:2017488_adiodvpe0_AIC_CLLI",
+            "AIC_CLLI": "get_input:2017488_pasqualevpe0_AIC_CLLI",
             "vnf_name": "mtnj309me6vre",
             "vmxvpfe_sriov41_0_port_unknownunicastallow": "true",
             "vmxvre_volume_type_1": "HITACHI",
@@ -697,14 +697,14 @@ describe('Related Vnf member Model Info', () => {
             "vmxvre_volume_type_0": "HITACHI",
             "vmxvpfe_volume_type_0": "HITACHI",
             "vmxvpfe_sriov43_0_port_broadcastallow": "true",
-            "bandwidth_units": "get_input:adiodvpe0_bandwidth_units",
+            "bandwidth_units": "get_input:pasqualevpe0_bandwidth_units",
             "vnf_id": "123",
             "vmxvre_oam_prefix": "24",
             "availability_zone_0": "mtpocfo-kvm-az01",
-            "ASN": "get_input:2017488_adiodvpe0_ASN",
+            "ASN": "get_input:2017488_pasqualevpe0_ASN",
             "vmxvre_chassis_i2cid": "161",
             "vmxvpfe_name_0": "vPFEXI",
-            "bandwidth": "get_input:adiodvpe0_bandwidth",
+            "bandwidth": "get_input:pasqualevpe0_bandwidth",
             "availability_zone_max_count": "1",
             "vmxvre_volume_size_0": "45.0",
             "vmxvre_volume_size_1": "50.0",
@@ -714,7 +714,7 @@ describe('Related Vnf member Model Info', () => {
             "vmxvre_ore_present": "0",
             "vmxvre_volume_name_0": "vREXI_FBVolume",
             "vmxvre_type": "0",
-            "vnf_instance_name": "get_input:2017488_adiodvpe0_vnf_instance_name",
+            "vnf_instance_name": "get_input:2017488_pasqualevpe0_vnf_instance_name",
             "vmxvpfe_sriov41_0_port_unknownmulticastallow": "true",
             "oam_net_id": "b95eeb1d-d55d-4827-abb4-8ebb94941429",
             "vmx_int_ctl_len": "24",
@@ -728,21 +728,21 @@ describe('Related Vnf member Model Info', () => {
             "vmxvpfe_flavor_name": "ns.c20r16d25.v5"
           },
           "type": "VF",
-          "modelCustomizationName": "2017-488_ADIOD-vPE 0",
+          "modelCustomizationName": "2017-488_PASQUALE-vPE 0",
           "vfModules": {
-            "2017488_adiodvpe0..2017488AdiodVpe..ADIOD_vRE_BV..module-1": {
+            "2017488_pasqualevpe0..2017488PasqualeVpe..PASQUALE_vRE_BV..module-1": {
               "uuid": "25284168-24bb-4698-8cb4-3f509146eca5",
               "invariantUuid": "7253ff5c-97f0-4b8b-937c-77aeb4d79aa1",
               "customizationUuid": "f7e7c365-60cf-49a9-9ebf-a1aa11b9d401",
               "description": null,
-              "name": "2017488AdiodVpe..ADIOD_vRE_BV..module-1",
+              "name": "2017488PasqualeVpe..PASQUALE_vRE_BV..module-1",
               "version": "6",
-              "modelCustomizationName": "2017488AdiodVpe..ADIOD_vRE_BV..module-1",
+              "modelCustomizationName": "2017488PasqualeVpe..PASQUALE_vRE_BV..module-1",
               "properties": {
                 "minCountInstances": 0,
                 "maxCountInstances": null,
                 "initialCount": 0,
-                "vfModuleLabel": "ADIOD_vRE_BV",
+                "vfModuleLabel": "PASQUALE_vRE_BV",
                 "baseModule": false
               },
               "inputs": {
@@ -752,10 +752,10 @@ describe('Related Vnf member Model Info', () => {
                   "entry_schema": null,
                   "inputProperties": {
                     "sourceType": "HEAT",
-                    "vfModuleLabel": "ADIOD_vRE_BV",
+                    "vfModuleLabel": "PASQUALE_vRE_BV",
                     "paramName": "vnf_config_template_version"
                   },
-                  "fromInputName": "2017488_adiodvpe0_vnf_config_template_version",
+                  "fromInputName": "2017488_pasqualevpe0_vnf_config_template_version",
                   "constraints": null,
                   "required": true,
                   "default": "17.2"
@@ -766,10 +766,10 @@ describe('Related Vnf member Model Info', () => {
                   "entry_schema": null,
                   "inputProperties": {
                     "sourceType": "HEAT",
-                    "vfModuleLabel": "ADIOD_vRE_BV",
+                    "vfModuleLabel": "PASQUALE_vRE_BV",
                     "paramName": "bandwidth_units"
                   },
-                  "fromInputName": "adiodvpe0_bandwidth_units",
+                  "fromInputName": "pasqualevpe0_bandwidth_units",
                   "constraints": null,
                   "required": true,
                   "default": "Gbps"
@@ -780,10 +780,10 @@ describe('Related Vnf member Model Info', () => {
                   "entry_schema": null,
                   "inputProperties": {
                     "sourceType": "HEAT",
-                    "vfModuleLabel": "ADIOD_vRE_BV",
+                    "vfModuleLabel": "PASQUALE_vRE_BV",
                     "paramName": "bandwidth"
                   },
-                  "fromInputName": "adiodvpe0_bandwidth",
+                  "fromInputName": "pasqualevpe0_bandwidth",
                   "constraints": null,
                   "required": true,
                   "default": "10"
@@ -794,10 +794,10 @@ describe('Related Vnf member Model Info', () => {
                   "entry_schema": null,
                   "inputProperties": {
                     "sourceType": "HEAT",
-                    "vfModuleLabel": "ADIOD_vRE_BV",
+                    "vfModuleLabel": "PASQUALE_vRE_BV",
                     "paramName": "AIC_CLLI"
                   },
-                  "fromInputName": "2017488_adiodvpe0_AIC_CLLI",
+                  "fromInputName": "2017488_pasqualevpe0_AIC_CLLI",
                   "constraints": null,
                   "required": true,
                   "default": "ATLMY8GA"
@@ -808,10 +808,10 @@ describe('Related Vnf member Model Info', () => {
                   "entry_schema": null,
                   "inputProperties": {
                     "sourceType": "HEAT",
-                    "vfModuleLabel": "ADIOD_vRE_BV",
+                    "vfModuleLabel": "PASQUALE_vRE_BV",
                     "paramName": "vnf_instance_name"
                   },
-                  "fromInputName": "2017488_adiodvpe0_vnf_instance_name",
+                  "fromInputName": "2017488_pasqualevpe0_vnf_instance_name",
                   "constraints": null,
                   "required": true,
                   "default": "mtnj309me6"
@@ -819,37 +819,37 @@ describe('Related Vnf member Model Info', () => {
               },
               "volumeGroupAllowed": true
             },
-            "2017488_adiodvpe0..2017488AdiodVpe..ADIOD_base_vPE_BV..module-0": {
+            "2017488_pasqualevpe0..2017488PasqualeVpe..PASQUALE_base_vPE_BV..module-0": {
               "uuid": "f8360508-3f17-4414-a2ed-6bc71161e8db",
               "invariantUuid": "b34833bb-6aa9-4ad6-a831-70b06367a091",
               "customizationUuid": "a55961b2-2065-4ab0-a5b7-2fcee1c227e3",
               "description": null,
-              "name": "2017488AdiodVpe..ADIOD_base_vPE_BV..module-0",
+              "name": "2017488PasqualeVpe..PASQUALE_base_vPE_BV..module-0",
               "version": "5",
-              "modelCustomizationName": "2017488AdiodVpe..ADIOD_base_vPE_BV..module-0",
+              "modelCustomizationName": "2017488PasqualeVpe..PASQUALE_base_vPE_BV..module-0",
               "properties": {
                 "minCountInstances": 1,
                 "maxCountInstances": 1,
                 "initialCount": 1,
-                "vfModuleLabel": "ADIOD_base_vPE_BV",
+                "vfModuleLabel": "PASQUALE_base_vPE_BV",
                 "baseModule": true
               },
               "inputs": {},
               "volumeGroupAllowed": false
             },
-            "2017488_adiodvpe0..2017488AdiodVpe..ADIOD_vPFE_BV..module-2": {
+            "2017488_pasqualevpe0..2017488PasqualeVpe..PASQUALE_vPFE_BV..module-2": {
               "uuid": "0a0dd9d4-31d3-4c3a-ae89-a02f383e6a9a",
               "invariantUuid": "eff8cc59-53a1-4101-aed7-8cf24ecf8339",
               "customizationUuid": "3cd946bb-50e0-40d8-96d3-c9023520b557",
               "description": null,
-              "name": "2017488AdiodVpe..ADIOD_vPFE_BV..module-2",
+              "name": "2017488PasqualeVpe..PASQUALE_vPFE_BV..module-2",
               "version": "6",
-              "modelCustomizationName": "2017488AdiodVpe..ADIOD_vPFE_BV..module-2",
+              "modelCustomizationName": "2017488PasqualeVpe..PASQUALE_vPFE_BV..module-2",
               "properties": {
                 "minCountInstances": 0,
                 "maxCountInstances": null,
                 "initialCount": 0,
-                "vfModuleLabel": "ADIOD_vPFE_BV",
+                "vfModuleLabel": "PASQUALE_vPFE_BV",
                 "baseModule": false
               },
               "inputs": {},
@@ -857,19 +857,19 @@ describe('Related Vnf member Model Info', () => {
             }
           },
           "volumeGroups": {
-            "2017488_adiodvpe0..2017488AdiodVpe..ADIOD_vRE_BV..module-1": {
+            "2017488_pasqualevpe0..2017488PasqualeVpe..PASQUALE_vRE_BV..module-1": {
               "uuid": "25284168-24bb-4698-8cb4-3f509146eca5",
               "invariantUuid": "7253ff5c-97f0-4b8b-937c-77aeb4d79aa1",
               "customizationUuid": "f7e7c365-60cf-49a9-9ebf-a1aa11b9d401",
               "description": null,
-              "name": "2017488AdiodVpe..ADIOD_vRE_BV..module-1",
+              "name": "2017488PasqualeVpe..PASQUALE_vRE_BV..module-1",
               "version": "6",
-              "modelCustomizationName": "2017488AdiodVpe..ADIOD_vRE_BV..module-1",
+              "modelCustomizationName": "2017488PasqualeVpe..PASQUALE_vRE_BV..module-1",
               "properties": {
                 "minCountInstances": 0,
                 "maxCountInstances": null,
                 "initialCount": 0,
-                "vfModuleLabel": "ADIOD_vRE_BV",
+                "vfModuleLabel": "PASQUALE_vRE_BV",
                 "baseModule": false
               },
               "inputs": {
@@ -879,10 +879,10 @@ describe('Related Vnf member Model Info', () => {
                   "entry_schema": null,
                   "inputProperties": {
                     "sourceType": "HEAT",
-                    "vfModuleLabel": "ADIOD_vRE_BV",
+                    "vfModuleLabel": "PASQUALE_vRE_BV",
                     "paramName": "vnf_config_template_version"
                   },
-                  "fromInputName": "2017488_adiodvpe0_vnf_config_template_version",
+                  "fromInputName": "2017488_pasqualevpe0_vnf_config_template_version",
                   "constraints": null,
                   "required": true,
                   "default": "17.2"
@@ -893,10 +893,10 @@ describe('Related Vnf member Model Info', () => {
                   "entry_schema": null,
                   "inputProperties": {
                     "sourceType": "HEAT",
-                    "vfModuleLabel": "ADIOD_vRE_BV",
+                    "vfModuleLabel": "PASQUALE_vRE_BV",
                     "paramName": "bandwidth_units"
                   },
-                  "fromInputName": "adiodvpe0_bandwidth_units",
+                  "fromInputName": "pasqualevpe0_bandwidth_units",
                   "constraints": null,
                   "required": true,
                   "default": "Gbps"
@@ -907,10 +907,10 @@ describe('Related Vnf member Model Info', () => {
                   "entry_schema": null,
                   "inputProperties": {
                     "sourceType": "HEAT",
-                    "vfModuleLabel": "ADIOD_vRE_BV",
+                    "vfModuleLabel": "PASQUALE_vRE_BV",
                     "paramName": "bandwidth"
                   },
-                  "fromInputName": "adiodvpe0_bandwidth",
+                  "fromInputName": "pasqualevpe0_bandwidth",
                   "constraints": null,
                   "required": true,
                   "default": "10"
@@ -921,10 +921,10 @@ describe('Related Vnf member Model Info', () => {
                   "entry_schema": null,
                   "inputProperties": {
                     "sourceType": "HEAT",
-                    "vfModuleLabel": "ADIOD_vRE_BV",
+                    "vfModuleLabel": "PASQUALE_vRE_BV",
                     "paramName": "AIC_CLLI"
                   },
-                  "fromInputName": "2017488_adiodvpe0_AIC_CLLI",
+                  "fromInputName": "2017488_pasqualevpe0_AIC_CLLI",
                   "constraints": null,
                   "required": true,
                   "default": "ATLMY8GA"
@@ -935,29 +935,29 @@ describe('Related Vnf member Model Info', () => {
                   "entry_schema": null,
                   "inputProperties": {
                     "sourceType": "HEAT",
-                    "vfModuleLabel": "ADIOD_vRE_BV",
+                    "vfModuleLabel": "PASQUALE_vRE_BV",
                     "paramName": "vnf_instance_name"
                   },
-                  "fromInputName": "2017488_adiodvpe0_vnf_instance_name",
+                  "fromInputName": "2017488_pasqualevpe0_vnf_instance_name",
                   "constraints": null,
                   "required": true,
                   "default": "mtnj309me6"
                 }
               }
             },
-            "2017488_adiodvpe0..2017488AdiodVpe..ADIOD_vPFE_BV..module-2": {
+            "2017488_pasqualevpe0..2017488PasqualeVpe..PASQUALE_vPFE_BV..module-2": {
               "uuid": "0a0dd9d4-31d3-4c3a-ae89-a02f383e6a9a",
               "invariantUuid": "eff8cc59-53a1-4101-aed7-8cf24ecf8339",
               "customizationUuid": "3cd946bb-50e0-40d8-96d3-c9023520b557",
               "description": null,
-              "name": "2017488AdiodVpe..ADIOD_vPFE_BV..module-2",
+              "name": "2017488PasqualeVpe..PASQUALE_vPFE_BV..module-2",
               "version": "6",
-              "modelCustomizationName": "2017488AdiodVpe..ADIOD_vPFE_BV..module-2",
+              "modelCustomizationName": "2017488PasqualeVpe..PASQUALE_vPFE_BV..module-2",
               "properties": {
                 "minCountInstances": 0,
                 "maxCountInstances": null,
                 "initialCount": 0,
-                "vfModuleLabel": "ADIOD_vPFE_BV",
+                "vfModuleLabel": "PASQUALE_vPFE_BV",
                 "baseModule": false
               },
               "inputs": {}
@@ -967,24 +967,24 @@ describe('Related Vnf member Model Info', () => {
         }
       },
       "networks": {},
-      "collectionResource": {},
+      "collectionResources": {},
       "configurations": {},
       "fabricConfigurations": {},
       "serviceProxies": {},
       "vfModules": {
-        "2017488_adiodvpe0..2017488AdiodVpe..ADIOD_vRE_BV..module-1": {
+        "2017488_pasqualevpe0..2017488PasqualeVpe..PASQUALE_vRE_BV..module-1": {
           "uuid": "25284168-24bb-4698-8cb4-3f509146eca5",
           "invariantUuid": "7253ff5c-97f0-4b8b-937c-77aeb4d79aa1",
           "customizationUuid": "f7e7c365-60cf-49a9-9ebf-a1aa11b9d401",
           "description": null,
-          "name": "2017488AdiodVpe..ADIOD_vRE_BV..module-1",
+          "name": "2017488PasqualeVpe..PASQUALE_vRE_BV..module-1",
           "version": "6",
-          "modelCustomizationName": "2017488AdiodVpe..ADIOD_vRE_BV..module-1",
+          "modelCustomizationName": "2017488PasqualeVpe..PASQUALE_vRE_BV..module-1",
           "properties": {
             "minCountInstances": 0,
             "maxCountInstances": null,
             "initialCount": 0,
-            "vfModuleLabel": "ADIOD_vRE_BV",
+            "vfModuleLabel": "PASQUALE_vRE_BV",
             "baseModule": false
           },
           "inputs": {
@@ -994,10 +994,10 @@ describe('Related Vnf member Model Info', () => {
               "entry_schema": null,
               "inputProperties": {
                 "sourceType": "HEAT",
-                "vfModuleLabel": "ADIOD_vRE_BV",
+                "vfModuleLabel": "PASQUALE_vRE_BV",
                 "paramName": "vnf_config_template_version"
               },
-              "fromInputName": "2017488_adiodvpe0_vnf_config_template_version",
+              "fromInputName": "2017488_pasqualevpe0_vnf_config_template_version",
               "constraints": null,
               "required": true,
               "default": "17.2"
@@ -1008,10 +1008,10 @@ describe('Related Vnf member Model Info', () => {
               "entry_schema": null,
               "inputProperties": {
                 "sourceType": "HEAT",
-                "vfModuleLabel": "ADIOD_vRE_BV",
+                "vfModuleLabel": "PASQUALE_vRE_BV",
                 "paramName": "bandwidth_units"
               },
-              "fromInputName": "adiodvpe0_bandwidth_units",
+              "fromInputName": "pasqualevpe0_bandwidth_units",
               "constraints": null,
               "required": true,
               "default": "Gbps"
@@ -1022,10 +1022,10 @@ describe('Related Vnf member Model Info', () => {
               "entry_schema": null,
               "inputProperties": {
                 "sourceType": "HEAT",
-                "vfModuleLabel": "ADIOD_vRE_BV",
+                "vfModuleLabel": "PASQUALE_vRE_BV",
                 "paramName": "bandwidth"
               },
-              "fromInputName": "adiodvpe0_bandwidth",
+              "fromInputName": "pasqualevpe0_bandwidth",
               "constraints": null,
               "required": true,
               "default": "10"
@@ -1036,10 +1036,10 @@ describe('Related Vnf member Model Info', () => {
               "entry_schema": null,
               "inputProperties": {
                 "sourceType": "HEAT",
-                "vfModuleLabel": "ADIOD_vRE_BV",
+                "vfModuleLabel": "PASQUALE_vRE_BV",
                 "paramName": "AIC_CLLI"
               },
-              "fromInputName": "2017488_adiodvpe0_AIC_CLLI",
+              "fromInputName": "2017488_pasqualevpe0_AIC_CLLI",
               "constraints": null,
               "required": true,
               "default": "ATLMY8GA"
@@ -1050,10 +1050,10 @@ describe('Related Vnf member Model Info', () => {
               "entry_schema": null,
               "inputProperties": {
                 "sourceType": "HEAT",
-                "vfModuleLabel": "ADIOD_vRE_BV",
+                "vfModuleLabel": "PASQUALE_vRE_BV",
                 "paramName": "vnf_instance_name"
               },
-              "fromInputName": "2017488_adiodvpe0_vnf_instance_name",
+              "fromInputName": "2017488_pasqualevpe0_vnf_instance_name",
               "constraints": null,
               "required": true,
               "default": "mtnj309me6"
@@ -1061,37 +1061,37 @@ describe('Related Vnf member Model Info', () => {
           },
           "volumeGroupAllowed": true
         },
-        "2017488_adiodvpe0..2017488AdiodVpe..ADIOD_base_vPE_BV..module-0": {
+        "2017488_pasqualevpe0..2017488PasqualeVpe..PASQUALE_base_vPE_BV..module-0": {
           "uuid": "f8360508-3f17-4414-a2ed-6bc71161e8db",
           "invariantUuid": "b34833bb-6aa9-4ad6-a831-70b06367a091",
           "customizationUuid": "a55961b2-2065-4ab0-a5b7-2fcee1c227e3",
           "description": null,
-          "name": "2017488AdiodVpe..ADIOD_base_vPE_BV..module-0",
+          "name": "2017488PasqualeVpe..PASQUALE_base_vPE_BV..module-0",
           "version": "5",
-          "modelCustomizationName": "2017488AdiodVpe..ADIOD_base_vPE_BV..module-0",
+          "modelCustomizationName": "2017488PasqualeVpe..PASQUALE_base_vPE_BV..module-0",
           "properties": {
             "minCountInstances": 1,
             "maxCountInstances": 1,
             "initialCount": 1,
-            "vfModuleLabel": "ADIOD_base_vPE_BV",
+            "vfModuleLabel": "PASQUALE_base_vPE_BV",
             "baseModule": true
           },
           "inputs": {},
           "volumeGroupAllowed": false
         },
-        "2017488_adiodvpe0..2017488AdiodVpe..ADIOD_vPFE_BV..module-2": {
+        "2017488_pasqualevpe0..2017488PasqualeVpe..PASQUALE_vPFE_BV..module-2": {
           "uuid": "0a0dd9d4-31d3-4c3a-ae89-a02f383e6a9a",
           "invariantUuid": "eff8cc59-53a1-4101-aed7-8cf24ecf8339",
           "customizationUuid": "3cd946bb-50e0-40d8-96d3-c9023520b557",
           "description": null,
-          "name": "2017488AdiodVpe..ADIOD_vPFE_BV..module-2",
+          "name": "2017488PasqualeVpe..PASQUALE_vPFE_BV..module-2",
           "version": "6",
-          "modelCustomizationName": "2017488AdiodVpe..ADIOD_vPFE_BV..module-2",
+          "modelCustomizationName": "2017488PasqualeVpe..PASQUALE_vPFE_BV..module-2",
           "properties": {
             "minCountInstances": 0,
             "maxCountInstances": null,
             "initialCount": 0,
-            "vfModuleLabel": "ADIOD_vPFE_BV",
+            "vfModuleLabel": "PASQUALE_vPFE_BV",
             "baseModule": false
           },
           "inputs": {},
@@ -1099,19 +1099,19 @@ describe('Related Vnf member Model Info', () => {
         }
       },
       "volumeGroups": {
-        "2017488_adiodvpe0..2017488AdiodVpe..ADIOD_vRE_BV..module-1": {
+        "2017488_pasqualevpe0..2017488PasqualeVpe..PASQUALE_vRE_BV..module-1": {
           "uuid": "25284168-24bb-4698-8cb4-3f509146eca5",
           "invariantUuid": "7253ff5c-97f0-4b8b-937c-77aeb4d79aa1",
           "customizationUuid": "f7e7c365-60cf-49a9-9ebf-a1aa11b9d401",
           "description": null,
-          "name": "2017488AdiodVpe..ADIOD_vRE_BV..module-1",
+          "name": "2017488PasqualeVpe..PASQUALE_vRE_BV..module-1",
           "version": "6",
-          "modelCustomizationName": "2017488AdiodVpe..ADIOD_vRE_BV..module-1",
+          "modelCustomizationName": "2017488PasqualeVpe..PASQUALE_vRE_BV..module-1",
           "properties": {
             "minCountInstances": 0,
             "maxCountInstances": null,
             "initialCount": 0,
-            "vfModuleLabel": "ADIOD_vRE_BV",
+            "vfModuleLabel": "PASQUALE_vRE_BV",
             "baseModule": false
           },
           "inputs": {
@@ -1121,10 +1121,10 @@ describe('Related Vnf member Model Info', () => {
               "entry_schema": null,
               "inputProperties": {
                 "sourceType": "HEAT",
-                "vfModuleLabel": "ADIOD_vRE_BV",
+                "vfModuleLabel": "PASQUALE_vRE_BV",
                 "paramName": "vnf_config_template_version"
               },
-              "fromInputName": "2017488_adiodvpe0_vnf_config_template_version",
+              "fromInputName": "2017488_pasqualevpe0_vnf_config_template_version",
               "constraints": null,
               "required": true,
               "default": "17.2"
@@ -1135,10 +1135,10 @@ describe('Related Vnf member Model Info', () => {
               "entry_schema": null,
               "inputProperties": {
                 "sourceType": "HEAT",
-                "vfModuleLabel": "ADIOD_vRE_BV",
+                "vfModuleLabel": "PASQUALE_vRE_BV",
                 "paramName": "bandwidth_units"
               },
-              "fromInputName": "adiodvpe0_bandwidth_units",
+              "fromInputName": "pasqualevpe0_bandwidth_units",
               "constraints": null,
               "required": true,
               "default": "Gbps"
@@ -1149,10 +1149,10 @@ describe('Related Vnf member Model Info', () => {
               "entry_schema": null,
               "inputProperties": {
                 "sourceType": "HEAT",
-                "vfModuleLabel": "ADIOD_vRE_BV",
+                "vfModuleLabel": "PASQUALE_vRE_BV",
                 "paramName": "bandwidth"
               },
-              "fromInputName": "adiodvpe0_bandwidth",
+              "fromInputName": "pasqualevpe0_bandwidth",
               "constraints": null,
               "required": true,
               "default": "10"
@@ -1163,10 +1163,10 @@ describe('Related Vnf member Model Info', () => {
               "entry_schema": null,
               "inputProperties": {
                 "sourceType": "HEAT",
-                "vfModuleLabel": "ADIOD_vRE_BV",
+                "vfModuleLabel": "PASQUALE_vRE_BV",
                 "paramName": "AIC_CLLI"
               },
-              "fromInputName": "2017488_adiodvpe0_AIC_CLLI",
+              "fromInputName": "2017488_pasqualevpe0_AIC_CLLI",
               "constraints": null,
               "required": true,
               "default": "ATLMY8GA"
@@ -1177,29 +1177,29 @@ describe('Related Vnf member Model Info', () => {
               "entry_schema": null,
               "inputProperties": {
                 "sourceType": "HEAT",
-                "vfModuleLabel": "ADIOD_vRE_BV",
+                "vfModuleLabel": "PASQUALE_vRE_BV",
                 "paramName": "vnf_instance_name"
               },
-              "fromInputName": "2017488_adiodvpe0_vnf_instance_name",
+              "fromInputName": "2017488_pasqualevpe0_vnf_instance_name",
               "constraints": null,
               "required": true,
               "default": "mtnj309me6"
             }
           }
         },
-        "2017488_adiodvpe0..2017488AdiodVpe..ADIOD_vPFE_BV..module-2": {
+        "2017488_pasqualevpe0..2017488PasqualeVpe..PASQUALE_vPFE_BV..module-2": {
           "uuid": "0a0dd9d4-31d3-4c3a-ae89-a02f383e6a9a",
           "invariantUuid": "eff8cc59-53a1-4101-aed7-8cf24ecf8339",
           "customizationUuid": "3cd946bb-50e0-40d8-96d3-c9023520b557",
           "description": null,
-          "name": "2017488AdiodVpe..ADIOD_vPFE_BV..module-2",
+          "name": "2017488PasqualeVpe..PASQUALE_vPFE_BV..module-2",
           "version": "6",
-          "modelCustomizationName": "2017488AdiodVpe..ADIOD_vPFE_BV..module-2",
+          "modelCustomizationName": "2017488PasqualeVpe..PASQUALE_vPFE_BV..module-2",
           "properties": {
             "minCountInstances": 0,
             "maxCountInstances": null,
             "initialCount": 0,
-            "vfModuleLabel": "ADIOD_vPFE_BV",
+            "vfModuleLabel": "PASQUALE_vPFE_BV",
             "baseModule": false
           },
           "inputs": {}
index b1eb109..c8807e8 100644 (file)
@@ -15,6 +15,8 @@ import {VnfInstance} from "../../../../../shared/models/vnfInstance";
 import {VNFModel} from "../../../../../shared/models/vnfModel";
 import {VnfTreeNode} from "../../../../../shared/models/vnfTreeNode";
 import {InputType} from "../../../../../shared/models/inputTypes";
+import {ComponentInfoType} from "../../../component-info/component-info-model";
+import {ModelInformationItem} from "../../../../../shared/components/model-information/model-information.component";
 
 export class RelatedVnfMemberInfoModel implements ILevelNodeInfo {
   constructor(private _sharedTreeService: SharedTreeService,
@@ -25,6 +27,7 @@ export class RelatedVnfMemberInfoModel implements ILevelNodeInfo {
   name: string = 'vnfs';
   type: string = 'relatedVnfMember';
   typeName: string = 'VNF';
+  componentInfoType = ComponentInfoType.VNFMEMBER;
 
   /***********************************************************
    * return if user should provide instance name or not.
@@ -153,6 +156,8 @@ export class RelatedVnfMemberInfoModel implements ILevelNodeInfo {
     return null;
   }
 
-  onSelectedNode(node: ITreeNode): void {
+  getInfo(model, instance): ModelInformationItem[] {
+    return [];
   }
+
 }
index dc74525..b596d0b 100644 (file)
@@ -1,5 +1,4 @@
-
-import {HttpClientTestingModule, HttpTestingController} from "@angular/common/http/testing";
+import {HttpClientTestingModule} from "@angular/common/http/testing";
 import {getTestBed, TestBed} from "@angular/core/testing";
 import {MockNgRedux, NgReduxTestingModule} from "@angular-redux/store/testing";
 import {VFModuleModelInfo} from "./vfModule.model.info";
@@ -8,17 +7,16 @@ import {SharedTreeService} from "../../shared.tree.service";
 import {VfModulePopuopService} from "../../../../../shared/components/genericFormPopup/genericFormServices/vfModule/vfModule.popuop.service";
 import {DialogService} from "ng2-bootstrap-modal";
 import {NgRedux} from "@angular-redux/store";
-import {AppState} from "../../../../../shared/store/reducers";
 import {AvailableNodeIcons} from "../../../available-models-tree/available-models-tree.service";
 import {MessageBoxService} from "../../../../../shared/components/messageBox/messageBox.service";
 import {DrawingBoardModes} from "../../../drawing-board.modes";
 import {IframeService} from "../../../../../shared/utils/iframe.service";
 import {ComponentInfoService} from "../../../component-info/component-info.service";
 import {ModelInformationItem} from "../../../../../shared/components/model-information/model-information.component";
-import {ComponentInfoModel, ComponentInfoType} from "../../../component-info/component-info-model";
 import {AaiService} from "../../../../../shared/services/aaiService/aai.service";
 import {HttpClient, HttpHandler} from "@angular/common/http";
 import {FeatureFlagsService} from "../../../../../shared/services/featureFlag/feature-flags.service";
+
 class MockAppStore<T> {
   getState() {
     return {
@@ -120,7 +118,7 @@ describe('VFModule Model Info', () => {
   });
 
   test('getModel should return Module model', () => {
-    let model = vfModuleModel.getModel('2017488_adiodvpe0..2017488AdiodVpe..ADIOD_vRE_BV..module-1',{}, getServiceHierarchy());
+    let model = vfModuleModel.getModel('2017488_pasqualevpe0..2017488PasqualeVpe..PASQUALE_vRE_BV..module-1',{}, getServiceHierarchy());
     expect(model.uuid).toEqual('25284168-24bb-4698-8cb4-3f509146eca5');
   });
 
@@ -460,18 +458,14 @@ describe('VFModule Model Info', () => {
   test('Info for vfModule should be correct', () => {
     const model = getVFModule();
     const instance = getVFModuleInstance();
-    let actualVNFInfo = vfModuleModel.getInfoForVFModule(model,instance);
+    let actualVNFInfo = vfModuleModel.getInfo(model,instance);
     let expectedVNFInfo = [
-      ModelInformationItem.createInstance('Type', 'vfModule'),
-      ModelInformationItem.createInstance('Model Version', '2'),
-      ModelInformationItem.createInstance('Model Customization ID','55b1be94-671a-403e-a26c-667e9c47d091'),
-      ModelInformationItem.createInstance('Instance ID', '2c1ca484-cbc2-408b-ab86-25a2c15ce280'),
-      ModelInformationItem.createInstance('In Maintenance', true),
-      ModelInformationItem.createInstance('Base Module', false),
-      ModelInformationItem.createInstance('Min Instances', 0),
-      ModelInformationItem.createInstance('Initial Instances Count',0)
+      ModelInformationItem.createInstance('Base module', false),
+      ModelInformationItem.createInstance('Min instances', "0"),
+      ModelInformationItem.createInstance("Max instances", null),
+      ModelInformationItem.createInstance('Initial instances count',"0")
     ];
-    expect(actualVNFInfo).toEqual(new ComponentInfoModel(ComponentInfoType.VFMODULE, expectedVNFInfo, []));
+    expect(actualVNFInfo).toEqual(expectedVNFInfo);
   });
 
   function getVFModule(){
@@ -480,14 +474,14 @@ describe('VFModule Model Info', () => {
       "invariantUuid":"98a7c88b-b577-476a-90e4-e25a5871e02b",
       "customizationUuid":"55b1be94-671a-403e-a26c-667e9c47d091",
       "description":null,
-      "name":"VfVmee..vmme_vlc..module-1",
+      "name":"VfVgeraldine..vflorence_vlc..module-1",
       "version":"2",
-      "modelCustomizationName":"VfVmee..vmme_vlc..module-1",
+      "modelCustomizationName":"VfVgeraldine..vflorence_vlc..module-1",
       "properties":{
         "minCountInstances":0,
         "maxCountInstances":null,
         "initialCount":0,
-        "vfModuleLabel":"vmme_vlc",
+        "vfModuleLabel":"vflorence_vlc",
         "baseModule":false
       },
       "inputs":{},
@@ -505,7 +499,7 @@ describe('VFModule Model Info', () => {
       "lcpCloudRegionId":null,
       "tenantId":null,
       "modelInfo":{
-        "modelCustomizationName":"VfVmee..vmme_vlc..module-1",
+        "modelCustomizationName":"VfVgeraldine..vflorence_vlc..module-1",
         "modelCustomizationId":"b200727a-1bf9-4e7c-bd06-b5f4c9d920b9",
         "modelInvariantId":"09edc9ef-85d0-4b26-80de-1f569d49e750",
         "modelVersionId":"522159d5-d6e0-4c2a-aa44-5a542a12a830",
@@ -515,11 +509,11 @@ describe('VFModule Model Info', () => {
       "provStatus":null,
       "inMaint":true,
       "uuid":"522159d5-d6e0-4c2a-aa44-5a542a12a830",
-      "originalName":"VfVmee..vmme_vlc..module-1",
+      "originalName":"VfVgeraldine..vflorence_vlc..module-1",
       "legacyRegion":null,
       "lineOfBusiness":null,
       "platformName":null,
-      "trackById":"vf_vmee0..VfVmee..vmme_vlc..module-1:008",
+      "trackById":"vf_vgeraldine0..VfVgeraldine..vflorence_vlc..module-1:008",
       "isBase":false,
       "volumeGroupName":null
     };
@@ -541,7 +535,7 @@ describe('VFModule Model Info', () => {
         "serviceEcompNaming": "false",
         "instantiationType": "Macro",
         "inputs": {
-          "2017488_adiodvpe0_ASN": {
+          "2017488_pasqualevpe0_ASN": {
             "type": "string",
             "description": "AV/PE",
             "entry_schema": null,
@@ -557,11 +551,11 @@ describe('VFModule Model Info', () => {
         }
       },
       "vnfs": {
-        "2017-388_ADIOD-vPE 1": {
+        "2017-388_PASQUALE-vPE 1": {
           "uuid": "0903e1c0-8e03-4936-b5c2-260653b96413",
           "invariantUuid": "00beb8f9-6d39-452f-816d-c709b9cbb87d",
-          "description": "Name ADIOD vPE Description The provider edge function for the ADIOD service supported by the Junipers VMX product Category Router Vendor Juniper Vendor Release Code 17.2 Owners Mary Fragale. Updated 9-25 to use v8.0 of the Juniper Valid 2 VLM",
-          "name": "2017-388_ADIOD-vPE",
+          "description": "Name PASQUALE vPE Description The provider edge function for the PASQUALE service supported by the Junipers VMX product Category Router Vendor Juniper Vendor Release Code 17.2 Owners Mary Fragale. Updated 9-25 to use v8.0 of the Juniper Valid 2 VLM",
+          "name": "2017-388_PASQUALE-vPE",
           "version": "1.0",
           "customizationUuid": "280dec31-f16d-488b-9668-4aae55d6648a",
           "inputs": {
@@ -624,37 +618,37 @@ describe('VFModule Model Info', () => {
             "vnf_config_template_version": {
               "displayName": "vnf_config_template_version",
               "command": "get_input",
-              "inputName": "2017488_adiodvpe0_vnf_config_template_version"
+              "inputName": "2017488_pasqualevpe0_vnf_config_template_version"
             },
             "bandwidth_units": {
               "displayName": "bandwidth_units",
               "command": "get_input",
-              "inputName": "adiodvpe0_bandwidth_units"
+              "inputName": "pasqualevpe0_bandwidth_units"
             },
             "bandwidth": {
               "displayName": "bandwidth",
               "command": "get_input",
-              "inputName": "adiodvpe0_bandwidth"
+              "inputName": "pasqualevpe0_bandwidth"
             },
             "AIC_CLLI": {
               "displayName": "AIC_CLLI",
               "command": "get_input",
-              "inputName": "2017488_adiodvpe0_AIC_CLLI"
+              "inputName": "2017488_pasqualevpe0_AIC_CLLI"
             },
             "ASN": {
               "displayName": "ASN",
               "command": "get_input",
-              "inputName": "2017488_adiodvpe0_ASN"
+              "inputName": "2017488_pasqualevpe0_ASN"
             },
             "vnf_instance_name": {
               "displayName": "vnf_instance_name",
               "command": "get_input",
-              "inputName": "2017488_adiodvpe0_vnf_instance_name"
+              "inputName": "2017488_pasqualevpe0_vnf_instance_name"
             }
           },
           "properties": {
             "vmxvre_retype": "RE-VMX",
-            "vnf_config_template_version": "get_input:2017488_adiodvpe0_vnf_config_template_version",
+            "vnf_config_template_version": "get_input:2017488_pasqualevpe0_vnf_config_template_version",
             "sriov44_net_id": "48d399b3-11ee-48a8-94d2-f0ea94d6be8d",
             "int_ctl_net_id": "2f323477-6936-4d01-ac53-d849430281d9",
             "vmxvpfe_sriov41_0_port_mac": "00:11:22:EF:AC:DF",
@@ -699,7 +693,7 @@ describe('VFModule Model Info', () => {
             "vmxvpfe_sriov43_0_port_unknownmulticastallow": "true",
             "vmxvre_int_ctl_ip_0": "10.0.0.10",
             "ecomp_generated_naming": "false",
-            "AIC_CLLI": "get_input:2017488_adiodvpe0_AIC_CLLI",
+            "AIC_CLLI": "get_input:2017488_pasqualevpe0_AIC_CLLI",
             "vnf_name": "mtnj309me6vre",
             "vmxvpfe_sriov41_0_port_unknownunicastallow": "true",
             "vmxvre_volume_type_1": "HITACHI",
@@ -707,14 +701,14 @@ describe('VFModule Model Info', () => {
             "vmxvre_volume_type_0": "HITACHI",
             "vmxvpfe_volume_type_0": "HITACHI",
             "vmxvpfe_sriov43_0_port_broadcastallow": "true",
-            "bandwidth_units": "get_input:adiodvpe0_bandwidth_units",
+            "bandwidth_units": "get_input:pasqualevpe0_bandwidth_units",
             "vnf_id": "123",
             "vmxvre_oam_prefix": "24",
             "availability_zone_0": "mtpocfo-kvm-az01",
-            "ASN": "get_input:2017488_adiodvpe0_ASN",
+            "ASN": "get_input:2017488_pasqualevpe0_ASN",
             "vmxvre_chassis_i2cid": "161",
             "vmxvpfe_name_0": "vPFEXI",
-            "bandwidth": "get_input:adiodvpe0_bandwidth",
+            "bandwidth": "get_input:pasqualevpe0_bandwidth",
             "availability_zone_max_count": "1",
             "vmxvre_volume_size_0": "45.0",
             "vmxvre_volume_size_1": "50.0",
@@ -724,7 +718,7 @@ describe('VFModule Model Info', () => {
             "vmxvre_ore_present": "0",
             "vmxvre_volume_name_0": "vREXI_FBVolume",
             "vmxvre_type": "0",
-            "vnf_instance_name": "get_input:2017488_adiodvpe0_vnf_instance_name",
+            "vnf_instance_name": "get_input:2017488_pasqualevpe0_vnf_instance_name",
             "vmxvpfe_sriov41_0_port_unknownmulticastallow": "true",
             "oam_net_id": "b95eeb1d-d55d-4827-abb4-8ebb94941429",
             "vmx_int_ctl_len": "24",
@@ -738,16 +732,16 @@ describe('VFModule Model Info', () => {
             "vmxvpfe_flavor_name": "ns.c20r16d25.v5"
           },
           "type": "VF",
-          "modelCustomizationName": "2017-388_ADIOD-vPE 1",
+          "modelCustomizationName": "2017-388_PASQUALE-vPE 1",
           "vfModules": {},
           "volumeGroups": {},
           "vfcInstanceGroups": {}
         },
-        "2017-388_ADIOD-vPE 0": {
+        "2017-388_PASQUALE-vPE 0": {
           "uuid": "afacccf6-397d-45d6-b5ae-94c39734b168",
           "invariantUuid": "72e465fe-71b1-4e7b-b5ed-9496118ff7a8",
-          "description": "Name ADIOD vPE Description The provider edge function for the ADIOD service supported by the Junipers VMX product Category Router Vendor Juniper Vendor Release Code 17.2 Owners Mary Fragale. Updated 9-25 to use v8.0 of the Juniper Valid 2 VLM",
-          "name": "2017-388_ADIOD-vPE",
+          "description": "Name PASQUALE vPE Description The provider edge function for the PASQUALE service supported by the Junipers VMX product Category Router Vendor Juniper Vendor Release Code 17.2 Owners Mary Fragale. Updated 9-25 to use v8.0 of the Juniper Valid 2 VLM",
+          "name": "2017-388_PASQUALE-vPE",
           "version": "4.0",
           "customizationUuid": "b3c76f73-eeb5-4fb6-9d31-72a889f1811c",
           "inputs": {
@@ -810,37 +804,37 @@ describe('VFModule Model Info', () => {
             "vnf_config_template_version": {
               "displayName": "vnf_config_template_version",
               "command": "get_input",
-              "inputName": "2017488_adiodvpe0_vnf_config_template_version"
+              "inputName": "2017488_pasqualevpe0_vnf_config_template_version"
             },
             "bandwidth_units": {
               "displayName": "bandwidth_units",
               "command": "get_input",
-              "inputName": "adiodvpe0_bandwidth_units"
+              "inputName": "pasqualevpe0_bandwidth_units"
             },
             "bandwidth": {
               "displayName": "bandwidth",
               "command": "get_input",
-              "inputName": "adiodvpe0_bandwidth"
+              "inputName": "pasqualevpe0_bandwidth"
             },
             "AIC_CLLI": {
               "displayName": "AIC_CLLI",
               "command": "get_input",
-              "inputName": "2017488_adiodvpe0_AIC_CLLI"
+              "inputName": "2017488_pasqualevpe0_AIC_CLLI"
             },
             "ASN": {
               "displayName": "ASN",
               "command": "get_input",
-              "inputName": "2017488_adiodvpe0_ASN"
+              "inputName": "2017488_pasqualevpe0_ASN"
             },
             "vnf_instance_name": {
               "displayName": "vnf_instance_name",
               "command": "get_input",
-              "inputName": "2017488_adiodvpe0_vnf_instance_name"
+              "inputName": "2017488_pasqualevpe0_vnf_instance_name"
             }
           },
           "properties": {
             "vmxvre_retype": "RE-VMX",
-            "vnf_config_template_version": "get_input:2017488_adiodvpe0_vnf_config_template_version",
+            "vnf_config_template_version": "get_input:2017488_pasqualevpe0_vnf_config_template_version",
             "sriov44_net_id": "48d399b3-11ee-48a8-94d2-f0ea94d6be8d",
             "int_ctl_net_id": "2f323477-6936-4d01-ac53-d849430281d9",
             "vmxvpfe_sriov41_0_port_mac": "00:11:22:EF:AC:DF",
@@ -886,7 +880,7 @@ describe('VFModule Model Info', () => {
             "vmxvpfe_sriov43_0_port_unknownmulticastallow": "true",
             "vmxvre_int_ctl_ip_0": "10.0.0.10",
             "ecomp_generated_naming": "false",
-            "AIC_CLLI": "get_input:2017488_adiodvpe0_AIC_CLLI",
+            "AIC_CLLI": "get_input:2017488_pasqualevpe0_AIC_CLLI",
             "vnf_name": "mtnj309me6vre",
             "vmxvpfe_sriov41_0_port_unknownunicastallow": "true",
             "vmxvre_volume_type_1": "HITACHI",
@@ -894,14 +888,14 @@ describe('VFModule Model Info', () => {
             "vmxvre_volume_type_0": "HITACHI",
             "vmxvpfe_volume_type_0": "HITACHI",
             "vmxvpfe_sriov43_0_port_broadcastallow": "true",
-            "bandwidth_units": "get_input:adiodvpe0_bandwidth_units",
+            "bandwidth_units": "get_input:pasqualevpe0_bandwidth_units",
             "vnf_id": "123",
             "vmxvre_oam_prefix": "24",
             "availability_zone_0": "mtpocfo-kvm-az01",
-            "ASN": "get_input:2017488_adiodvpe0_ASN",
+            "ASN": "get_input:2017488_pasqualevpe0_ASN",
             "vmxvre_chassis_i2cid": "161",
             "vmxvpfe_name_0": "vPFEXI",
-            "bandwidth": "get_input:adiodvpe0_bandwidth",
+            "bandwidth": "get_input:pasqualevpe0_bandwidth",
             "availability_zone_max_count": "1",
             "vmxvre_volume_size_0": "45.0",
             "vmxvre_volume_size_1": "50.0",
@@ -911,7 +905,7 @@ describe('VFModule Model Info', () => {
             "vmxvre_ore_present": "0",
             "vmxvre_volume_name_0": "vREXI_FBVolume",
             "vmxvre_type": "0",
-            "vnf_instance_name": "get_input:2017488_adiodvpe0_vnf_instance_name",
+            "vnf_instance_name": "get_input:2017488_pasqualevpe0_vnf_instance_name",
             "vmxvpfe_sriov41_0_port_unknownmulticastallow": "true",
             "oam_net_id": "b95eeb1d-d55d-4827-abb4-8ebb94941429",
             "vmx_int_ctl_len": "24",
@@ -925,16 +919,16 @@ describe('VFModule Model Info', () => {
             "vmxvpfe_flavor_name": "ns.c20r16d25.v5"
           },
           "type": "VF",
-          "modelCustomizationName": "2017-388_ADIOD-vPE 0",
+          "modelCustomizationName": "2017-388_PASQUALE-vPE 0",
           "vfModules": {},
           "volumeGroups": {},
           "vfcInstanceGroups": {}
         },
-        "2017-488_ADIOD-vPE 0": {
+        "2017-488_PASQUALE-vPE 0": {
           "uuid": "69e09f68-8b63-4cc9-b9ff-860960b5db09",
           "invariantUuid": "72e465fe-71b1-4e7b-b5ed-9496118ff7a8",
-          "description": "Name ADIOD vPE Description The provider edge function for the ADIOD service supported by the Junipers VMX product Category Router Vendor Juniper Vendor Release Code 17.2 Owners Mary Fragale. Updated 9-25 to use v8.0 of the Juniper Valid 2 VLM",
-          "name": "2017-488_ADIOD-vPE",
+          "description": "Name PASQUALE vPE Description The provider edge function for the PASQUALE service supported by the Junipers VMX product Category Router Vendor Juniper Vendor Release Code 17.2 Owners Mary Fragale. Updated 9-25 to use v8.0 of the Juniper Valid 2 VLM",
+          "name": "2017-488_PASQUALE-vPE",
           "version": "5.0",
           "customizationUuid": "1da7b585-5e61-4993-b95e-8e6606c81e45",
           "inputs": {
@@ -997,37 +991,37 @@ describe('VFModule Model Info', () => {
             "vnf_config_template_version": {
               "displayName": "vnf_config_template_version",
               "command": "get_input",
-              "inputName": "2017488_adiodvpe0_vnf_config_template_version"
+              "inputName": "2017488_pasqualevpe0_vnf_config_template_version"
             },
             "bandwidth_units": {
               "displayName": "bandwidth_units",
               "command": "get_input",
-              "inputName": "adiodvpe0_bandwidth_units"
+              "inputName": "pasqualevpe0_bandwidth_units"
             },
             "bandwidth": {
               "displayName": "bandwidth",
               "command": "get_input",
-              "inputName": "adiodvpe0_bandwidth"
+              "inputName": "pasqualevpe0_bandwidth"
             },
             "AIC_CLLI": {
               "displayName": "AIC_CLLI",
               "command": "get_input",
-              "inputName": "2017488_adiodvpe0_AIC_CLLI"
+              "inputName": "2017488_pasqualevpe0_AIC_CLLI"
             },
             "ASN": {
               "displayName": "ASN",
               "command": "get_input",
-              "inputName": "2017488_adiodvpe0_ASN"
+              "inputName": "2017488_pasqualevpe0_ASN"
             },
             "vnf_instance_name": {
               "displayName": "vnf_instance_name",
               "command": "get_input",
-              "inputName": "2017488_adiodvpe0_vnf_instance_name"
+              "inputName": "2017488_pasqualevpe0_vnf_instance_name"
             }
           },
           "properties": {
             "vmxvre_retype": "RE-VMX",
-            "vnf_config_template_version": "get_input:2017488_adiodvpe0_vnf_config_template_version",
+            "vnf_config_template_version": "get_input:2017488_pasqualevpe0_vnf_config_template_version",
             "sriov44_net_id": "48d399b3-11ee-48a8-94d2-f0ea94d6be8d",
             "int_ctl_net_id": "2f323477-6936-4d01-ac53-d849430281d9",
             "vmxvpfe_sriov41_0_port_mac": "00:11:22:EF:AC:DF",
@@ -1074,7 +1068,7 @@ describe('VFModule Model Info', () => {
             "vmxvpfe_sriov43_0_port_unknownmulticastallow": "true",
             "vmxvre_int_ctl_ip_0": "10.0.0.10",
             "ecomp_generated_naming": "false",
-            "AIC_CLLI": "get_input:2017488_adiodvpe0_AIC_CLLI",
+            "AIC_CLLI": "get_input:2017488_pasqualevpe0_AIC_CLLI",
             "vnf_name": "mtnj309me6vre",
             "vmxvpfe_sriov41_0_port_unknownunicastallow": "true",
             "vmxvre_volume_type_1": "HITACHI",
@@ -1082,14 +1076,14 @@ describe('VFModule Model Info', () => {
             "vmxvre_volume_type_0": "HITACHI",
             "vmxvpfe_volume_type_0": "HITACHI",
             "vmxvpfe_sriov43_0_port_broadcastallow": "true",
-            "bandwidth_units": "get_input:adiodvpe0_bandwidth_units",
+            "bandwidth_units": "get_input:pasqualevpe0_bandwidth_units",
             "vnf_id": "123",
             "vmxvre_oam_prefix": "24",
             "availability_zone_0": "mtpocfo-kvm-az01",
-            "ASN": "get_input:2017488_adiodvpe0_ASN",
+            "ASN": "get_input:2017488_pasqualevpe0_ASN",
             "vmxvre_chassis_i2cid": "161",
             "vmxvpfe_name_0": "vPFEXI",
-            "bandwidth": "get_input:adiodvpe0_bandwidth",
+            "bandwidth": "get_input:pasqualevpe0_bandwidth",
             "availability_zone_max_count": "1",
             "vmxvre_volume_size_0": "45.0",
             "vmxvre_volume_size_1": "50.0",
@@ -1099,7 +1093,7 @@ describe('VFModule Model Info', () => {
             "vmxvre_ore_present": "0",
             "vmxvre_volume_name_0": "vREXI_FBVolume",
             "vmxvre_type": "0",
-            "vnf_instance_name": "get_input:2017488_adiodvpe0_vnf_instance_name",
+            "vnf_instance_name": "get_input:2017488_pasqualevpe0_vnf_instance_name",
             "vmxvpfe_sriov41_0_port_unknownmulticastallow": "true",
             "oam_net_id": "b95eeb1d-d55d-4827-abb4-8ebb94941429",
             "vmx_int_ctl_len": "24",
@@ -1113,21 +1107,21 @@ describe('VFModule Model Info', () => {
             "vmxvpfe_flavor_name": "ns.c20r16d25.v5"
           },
           "type": "VF",
-          "modelCustomizationName": "2017-488_ADIOD-vPE 0",
+          "modelCustomizationName": "2017-488_PASQUALE-vPE 0",
           "vfModules": {
-            "2017488_adiodvpe0..2017488AdiodVpe..ADIOD_vRE_BV..module-1": {
+            "2017488_pasqualevpe0..2017488PasqualeVpe..PASQUALE_vRE_BV..module-1": {
               "uuid": "25284168-24bb-4698-8cb4-3f509146eca5",
               "invariantUuid": "7253ff5c-97f0-4b8b-937c-77aeb4d79aa1",
               "customizationUuid": "f7e7c365-60cf-49a9-9ebf-a1aa11b9d401",
               "description": null,
-              "name": "2017488AdiodVpe..ADIOD_vRE_BV..module-1",
+              "name": "2017488PasqualeVpe..PASQUALE_vRE_BV..module-1",
               "version": "6",
-              "modelCustomizationName": "2017488AdiodVpe..ADIOD_vRE_BV..module-1",
+              "modelCustomizationName": "2017488PasqualeVpe..PASQUALE_vRE_BV..module-1",
               "properties": {
                 "minCountInstances": 0,
                 "maxCountInstances": null,
                 "initialCount": 0,
-                "vfModuleLabel": "ADIOD_vRE_BV",
+                "vfModuleLabel": "PASQUALE_vRE_BV",
                 "baseModule": false
               },
               "inputs": {
@@ -1137,10 +1131,10 @@ describe('VFModule Model Info', () => {
                   "entry_schema": null,
                   "inputProperties": {
                     "sourceType": "HEAT",
-                    "vfModuleLabel": "ADIOD_vRE_BV",
+                    "vfModuleLabel": "PASQUALE_vRE_BV",
                     "paramName": "vnf_config_template_version"
                   },
-                  "fromInputName": "2017488_adiodvpe0_vnf_config_template_version",
+                  "fromInputName": "2017488_pasqualevpe0_vnf_config_template_version",
                   "constraints": null,
                   "required": true,
                   "default": "17.2"
@@ -1151,10 +1145,10 @@ describe('VFModule Model Info', () => {
                   "entry_schema": null,
                   "inputProperties": {
                     "sourceType": "HEAT",
-                    "vfModuleLabel": "ADIOD_vRE_BV",
+                    "vfModuleLabel": "PASQUALE_vRE_BV",
                     "paramName": "bandwidth_units"
                   },
-                  "fromInputName": "adiodvpe0_bandwidth_units",
+                  "fromInputName": "pasqualevpe0_bandwidth_units",
                   "constraints": null,
                   "required": true,
                   "default": "Gbps"
@@ -1165,10 +1159,10 @@ describe('VFModule Model Info', () => {
                   "entry_schema": null,
                   "inputProperties": {
                     "sourceType": "HEAT",
-                    "vfModuleLabel": "ADIOD_vRE_BV",
+                    "vfModuleLabel": "PASQUALE_vRE_BV",
                     "paramName": "bandwidth"
                   },
-                  "fromInputName": "adiodvpe0_bandwidth",
+                  "fromInputName": "pasqualevpe0_bandwidth",
                   "constraints": null,
                   "required": true,
                   "default": "10"
@@ -1179,10 +1173,10 @@ describe('VFModule Model Info', () => {
                   "entry_schema": null,
                   "inputProperties": {
                     "sourceType": "HEAT",
-                    "vfModuleLabel": "ADIOD_vRE_BV",
+                    "vfModuleLabel": "PASQUALE_vRE_BV",
                     "paramName": "AIC_CLLI"
                   },
-                  "fromInputName": "2017488_adiodvpe0_AIC_CLLI",
+                  "fromInputName": "2017488_pasqualevpe0_AIC_CLLI",
                   "constraints": null,
                   "required": true,
                   "default": "ATLMY8GA"
@@ -1193,10 +1187,10 @@ describe('VFModule Model Info', () => {
                   "entry_schema": null,
                   "inputProperties": {
                     "sourceType": "HEAT",
-                    "vfModuleLabel": "ADIOD_vRE_BV",
+                    "vfModuleLabel": "PASQUALE_vRE_BV",
                     "paramName": "vnf_instance_name"
                   },
-                  "fromInputName": "2017488_adiodvpe0_vnf_instance_name",
+                  "fromInputName": "2017488_pasqualevpe0_vnf_instance_name",
                   "constraints": null,
                   "required": true,
                   "default": "mtnj309me6"
@@ -1204,37 +1198,37 @@ describe('VFModule Model Info', () => {
               },
               "volumeGroupAllowed": true
             },
-            "2017488_adiodvpe0..2017488AdiodVpe..ADIOD_base_vPE_BV..module-0": {
+            "2017488_pasqualevpe0..2017488PasqualeVpe..PASQUALE_base_vPE_BV..module-0": {
               "uuid": "f8360508-3f17-4414-a2ed-6bc71161e8db",
               "invariantUuid": "b34833bb-6aa9-4ad6-a831-70b06367a091",
               "customizationUuid": "a55961b2-2065-4ab0-a5b7-2fcee1c227e3",
               "description": null,
-              "name": "2017488AdiodVpe..ADIOD_base_vPE_BV..module-0",
+              "name": "2017488PasqualeVpe..PASQUALE_base_vPE_BV..module-0",
               "version": "5",
-              "modelCustomizationName": "2017488AdiodVpe..ADIOD_base_vPE_BV..module-0",
+              "modelCustomizationName": "2017488PasqualeVpe..PASQUALE_base_vPE_BV..module-0",
               "properties": {
                 "minCountInstances": 1,
                 "maxCountInstances": 1,
                 "initialCount": 1,
-                "vfModuleLabel": "ADIOD_base_vPE_BV",
+                "vfModuleLabel": "PASQUALE_base_vPE_BV",
                 "baseModule": true
               },
               "inputs": {},
               "volumeGroupAllowed": false
             },
-            "2017488_adiodvpe0..2017488AdiodVpe..ADIOD_vPFE_BV..module-2": {
+            "2017488_pasqualevpe0..2017488PasqualeVpe..PASQUALE_vPFE_BV..module-2": {
               "uuid": "0a0dd9d4-31d3-4c3a-ae89-a02f383e6a9a",
               "invariantUuid": "eff8cc59-53a1-4101-aed7-8cf24ecf8339",
               "customizationUuid": "3cd946bb-50e0-40d8-96d3-c9023520b557",
               "description": null,
-              "name": "2017488AdiodVpe..ADIOD_vPFE_BV..module-2",
+              "name": "2017488PasqualeVpe..PASQUALE_vPFE_BV..module-2",
               "version": "6",
-              "modelCustomizationName": "2017488AdiodVpe..ADIOD_vPFE_BV..module-2",
+              "modelCustomizationName": "2017488PasqualeVpe..PASQUALE_vPFE_BV..module-2",
               "properties": {
                 "minCountInstances": 0,
                 "maxCountInstances": null,
                 "initialCount": 0,
-                "vfModuleLabel": "ADIOD_vPFE_BV",
+                "vfModuleLabel": "PASQUALE_vPFE_BV",
                 "baseModule": false
               },
               "inputs": {},
@@ -1242,19 +1236,19 @@ describe('VFModule Model Info', () => {
             }
           },
           "volumeGroups": {
-            "2017488_adiodvpe0..2017488AdiodVpe..ADIOD_vRE_BV..module-1": {
+            "2017488_pasqualevpe0..2017488PasqualeVpe..PASQUALE_vRE_BV..module-1": {
               "uuid": "25284168-24bb-4698-8cb4-3f509146eca5",
               "invariantUuid": "7253ff5c-97f0-4b8b-937c-77aeb4d79aa1",
               "customizationUuid": "f7e7c365-60cf-49a9-9ebf-a1aa11b9d401",
               "description": null,
-              "name": "2017488AdiodVpe..ADIOD_vRE_BV..module-1",
+              "name": "2017488PasqualeVpe..PASQUALE_vRE_BV..module-1",
               "version": "6",
-              "modelCustomizationName": "2017488AdiodVpe..ADIOD_vRE_BV..module-1",
+              "modelCustomizationName": "2017488PasqualeVpe..PASQUALE_vRE_BV..module-1",
               "properties": {
                 "minCountInstances": 0,
                 "maxCountInstances": null,
                 "initialCount": 0,
-                "vfModuleLabel": "ADIOD_vRE_BV",
+                "vfModuleLabel": "PASQUALE_vRE_BV",
                 "baseModule": false
               },
               "inputs": {
@@ -1264,10 +1258,10 @@ describe('VFModule Model Info', () => {
                   "entry_schema": null,
                   "inputProperties": {
                     "sourceType": "HEAT",
-                    "vfModuleLabel": "ADIOD_vRE_BV",
+                    "vfModuleLabel": "PASQUALE_vRE_BV",
                     "paramName": "vnf_config_template_version"
                   },
-                  "fromInputName": "2017488_adiodvpe0_vnf_config_template_version",
+                  "fromInputName": "2017488_pasqualevpe0_vnf_config_template_version",
                   "constraints": null,
                   "required": true,
                   "default": "17.2"
@@ -1278,10 +1272,10 @@ describe('VFModule Model Info', () => {
                   "entry_schema": null,
                   "inputProperties": {
                     "sourceType": "HEAT",
-                    "vfModuleLabel": "ADIOD_vRE_BV",
+                    "vfModuleLabel": "PASQUALE_vRE_BV",
                     "paramName": "bandwidth_units"
                   },
-                  "fromInputName": "adiodvpe0_bandwidth_units",
+                  "fromInputName": "pasqualevpe0_bandwidth_units",
                   "constraints": null,
                   "required": true,
                   "default": "Gbps"
@@ -1292,10 +1286,10 @@ describe('VFModule Model Info', () => {
                   "entry_schema": null,
                   "inputProperties": {
                     "sourceType": "HEAT",
-                    "vfModuleLabel": "ADIOD_vRE_BV",
+                    "vfModuleLabel": "PASQUALE_vRE_BV",
                     "paramName": "bandwidth"
                   },
-                  "fromInputName": "adiodvpe0_bandwidth",
+                  "fromInputName": "pasqualevpe0_bandwidth",
                   "constraints": null,
                   "required": true,
                   "default": "10"
@@ -1306,10 +1300,10 @@ describe('VFModule Model Info', () => {
                   "entry_schema": null,
                   "inputProperties": {
                     "sourceType": "HEAT",
-                    "vfModuleLabel": "ADIOD_vRE_BV",
+                    "vfModuleLabel": "PASQUALE_vRE_BV",
                     "paramName": "AIC_CLLI"
                   },
-                  "fromInputName": "2017488_adiodvpe0_AIC_CLLI",
+                  "fromInputName": "2017488_pasqualevpe0_AIC_CLLI",
                   "constraints": null,
                   "required": true,
                   "default": "ATLMY8GA"
@@ -1320,29 +1314,29 @@ describe('VFModule Model Info', () => {
                   "entry_schema": null,
                   "inputProperties": {
                     "sourceType": "HEAT",
-                    "vfModuleLabel": "ADIOD_vRE_BV",
+                    "vfModuleLabel": "PASQUALE_vRE_BV",
                     "paramName": "vnf_instance_name"
                   },
-                  "fromInputName": "2017488_adiodvpe0_vnf_instance_name",
+                  "fromInputName": "2017488_pasqualevpe0_vnf_instance_name",
                   "constraints": null,
                   "required": true,
                   "default": "mtnj309me6"
                 }
               }
             },
-            "2017488_adiodvpe0..2017488AdiodVpe..ADIOD_vPFE_BV..module-2": {
+            "2017488_pasqualevpe0..2017488PasqualeVpe..PASQUALE_vPFE_BV..module-2": {
               "uuid": "0a0dd9d4-31d3-4c3a-ae89-a02f383e6a9a",
               "invariantUuid": "eff8cc59-53a1-4101-aed7-8cf24ecf8339",
               "customizationUuid": "3cd946bb-50e0-40d8-96d3-c9023520b557",
               "description": null,
-              "name": "2017488AdiodVpe..ADIOD_vPFE_BV..module-2",
+              "name": "2017488PasqualeVpe..PASQUALE_vPFE_BV..module-2",
               "version": "6",
-              "modelCustomizationName": "2017488AdiodVpe..ADIOD_vPFE_BV..module-2",
+              "modelCustomizationName": "2017488PasqualeVpe..PASQUALE_vPFE_BV..module-2",
               "properties": {
                 "minCountInstances": 0,
                 "maxCountInstances": null,
                 "initialCount": 0,
-                "vfModuleLabel": "ADIOD_vPFE_BV",
+                "vfModuleLabel": "PASQUALE_vPFE_BV",
                 "baseModule": false
               },
               "inputs": {}
@@ -1352,24 +1346,24 @@ describe('VFModule Model Info', () => {
         }
       },
       "networks": {},
-      "collectionResource": {},
+      "collectionResources": {},
       "configurations": {},
       "fabricConfigurations": {},
       "serviceProxies": {},
       "vfModules": {
-        "2017488_adiodvpe0..2017488AdiodVpe..ADIOD_vRE_BV..module-1": {
+        "2017488_pasqualevpe0..2017488PasqualeVpe..PASQUALE_vRE_BV..module-1": {
           "uuid": "25284168-24bb-4698-8cb4-3f509146eca5",
           "invariantUuid": "7253ff5c-97f0-4b8b-937c-77aeb4d79aa1",
           "customizationUuid": "f7e7c365-60cf-49a9-9ebf-a1aa11b9d401",
           "description": null,
-          "name": "2017488AdiodVpe..ADIOD_vRE_BV..module-1",
+          "name": "2017488PasqualeVpe..PASQUALE_vRE_BV..module-1",
           "version": "6",
-          "modelCustomizationName": "2017488AdiodVpe..ADIOD_vRE_BV..module-1",
+          "modelCustomizationName": "2017488PasqualeVpe..PASQUALE_vRE_BV..module-1",
           "properties": {
             "minCountInstances": 0,
             "maxCountInstances": null,
             "initialCount": 0,
-            "vfModuleLabel": "ADIOD_vRE_BV",
+            "vfModuleLabel": "PASQUALE_vRE_BV",
             "baseModule": false
           },
           "inputs": {
@@ -1379,10 +1373,10 @@ describe('VFModule Model Info', () => {
               "entry_schema": null,
               "inputProperties": {
                 "sourceType": "HEAT",
-                "vfModuleLabel": "ADIOD_vRE_BV",
+                "vfModuleLabel": "PASQUALE_vRE_BV",
                 "paramName": "vnf_config_template_version"
               },
-              "fromInputName": "2017488_adiodvpe0_vnf_config_template_version",
+              "fromInputName": "2017488_pasqualevpe0_vnf_config_template_version",
               "constraints": null,
               "required": true,
               "default": "17.2"
@@ -1393,10 +1387,10 @@ describe('VFModule Model Info', () => {
               "entry_schema": null,
               "inputProperties": {
                 "sourceType": "HEAT",
-                "vfModuleLabel": "ADIOD_vRE_BV",
+                "vfModuleLabel": "PASQUALE_vRE_BV",
                 "paramName": "bandwidth_units"
               },
-              "fromInputName": "adiodvpe0_bandwidth_units",
+              "fromInputName": "pasqualevpe0_bandwidth_units",
               "constraints": null,
               "required": true,
               "default": "Gbps"
@@ -1407,10 +1401,10 @@ describe('VFModule Model Info', () => {
               "entry_schema": null,
               "inputProperties": {
                 "sourceType": "HEAT",
-                "vfModuleLabel": "ADIOD_vRE_BV",
+                "vfModuleLabel": "PASQUALE_vRE_BV",
                 "paramName": "bandwidth"
               },
-              "fromInputName": "adiodvpe0_bandwidth",
+              "fromInputName": "pasqualevpe0_bandwidth",
               "constraints": null,
               "required": true,
               "default": "10"
@@ -1421,10 +1415,10 @@ describe('VFModule Model Info', () => {
               "entry_schema": null,
               "inputProperties": {
                 "sourceType": "HEAT",
-                "vfModuleLabel": "ADIOD_vRE_BV",
+                "vfModuleLabel": "PASQUALE_vRE_BV",
                 "paramName": "AIC_CLLI"
               },
-              "fromInputName": "2017488_adiodvpe0_AIC_CLLI",
+              "fromInputName": "2017488_pasqualevpe0_AIC_CLLI",
               "constraints": null,
               "required": true,
               "default": "ATLMY8GA"
@@ -1435,10 +1429,10 @@ describe('VFModule Model Info', () => {
               "entry_schema": null,
               "inputProperties": {
                 "sourceType": "HEAT",
-                "vfModuleLabel": "ADIOD_vRE_BV",
+                "vfModuleLabel": "PASQUALE_vRE_BV",
                 "paramName": "vnf_instance_name"
               },
-              "fromInputName": "2017488_adiodvpe0_vnf_instance_name",
+              "fromInputName": "2017488_pasqualevpe0_vnf_instance_name",
               "constraints": null,
               "required": true,
               "default": "mtnj309me6"
@@ -1446,37 +1440,37 @@ describe('VFModule Model Info', () => {
           },
           "volumeGroupAllowed": true
         },
-        "2017488_adiodvpe0..2017488AdiodVpe..ADIOD_base_vPE_BV..module-0": {
+        "2017488_pasqualevpe0..2017488PasqualeVpe..PASQUALE_base_vPE_BV..module-0": {
           "uuid": "f8360508-3f17-4414-a2ed-6bc71161e8db",
           "invariantUuid": "b34833bb-6aa9-4ad6-a831-70b06367a091",
           "customizationUuid": "a55961b2-2065-4ab0-a5b7-2fcee1c227e3",
           "description": null,
-          "name": "2017488AdiodVpe..ADIOD_base_vPE_BV..module-0",
+          "name": "2017488PasqualeVpe..PASQUALE_base_vPE_BV..module-0",
           "version": "5",
-          "modelCustomizationName": "2017488AdiodVpe..ADIOD_base_vPE_BV..module-0",
+          "modelCustomizationName": "2017488PasqualeVpe..PASQUALE_base_vPE_BV..module-0",
           "properties": {
             "minCountInstances": 1,
             "maxCountInstances": 1,
             "initialCount": 1,
-            "vfModuleLabel": "ADIOD_base_vPE_BV",
+            "vfModuleLabel": "PASQUALE_base_vPE_BV",
             "baseModule": true
           },
           "inputs": {},
           "volumeGroupAllowed": false
         },
-        "2017488_adiodvpe0..2017488AdiodVpe..ADIOD_vPFE_BV..module-2": {
+        "2017488_pasqualevpe0..2017488PasqualeVpe..PASQUALE_vPFE_BV..module-2": {
           "uuid": "0a0dd9d4-31d3-4c3a-ae89-a02f383e6a9a",
           "invariantUuid": "eff8cc59-53a1-4101-aed7-8cf24ecf8339",
           "customizationUuid": "3cd946bb-50e0-40d8-96d3-c9023520b557",
           "description": null,
-          "name": "2017488AdiodVpe..ADIOD_vPFE_BV..module-2",
+          "name": "2017488PasqualeVpe..PASQUALE_vPFE_BV..module-2",
           "version": "6",
-          "modelCustomizationName": "2017488AdiodVpe..ADIOD_vPFE_BV..module-2",
+          "modelCustomizationName": "2017488PasqualeVpe..PASQUALE_vPFE_BV..module-2",
           "properties": {
             "minCountInstances": 0,
             "maxCountInstances": null,
             "initialCount": 0,
-            "vfModuleLabel": "ADIOD_vPFE_BV",
+            "vfModuleLabel": "PASQUALE_vPFE_BV",
             "baseModule": false
           },
           "inputs": {},
@@ -1484,19 +1478,19 @@ describe('VFModule Model Info', () => {
         }
       },
       "volumeGroups": {
-        "2017488_adiodvpe0..2017488AdiodVpe..ADIOD_vRE_BV..module-1": {
+        "2017488_pasqualevpe0..2017488PasqualeVpe..PASQUALE_vRE_BV..module-1": {
           "uuid": "25284168-24bb-4698-8cb4-3f509146eca5",
           "invariantUuid": "7253ff5c-97f0-4b8b-937c-77aeb4d79aa1",
           "customizationUuid": "f7e7c365-60cf-49a9-9ebf-a1aa11b9d401",
           "description": null,
-          "name": "2017488AdiodVpe..ADIOD_vRE_BV..module-1",
+          "name": "2017488PasqualeVpe..PASQUALE_vRE_BV..module-1",
           "version": "6",
-          "modelCustomizationName": "2017488AdiodVpe..ADIOD_vRE_BV..module-1",
+          "modelCustomizationName": "2017488PasqualeVpe..PASQUALE_vRE_BV..module-1",
           "properties": {
             "minCountInstances": 0,
             "maxCountInstances": null,
             "initialCount": 0,
-            "vfModuleLabel": "ADIOD_vRE_BV",
+            "vfModuleLabel": "PASQUALE_vRE_BV",
             "baseModule": false
           },
           "inputs": {
@@ -1506,10 +1500,10 @@ describe('VFModule Model Info', () => {
               "entry_schema": null,
               "inputProperties": {
                 "sourceType": "HEAT",
-                "vfModuleLabel": "ADIOD_vRE_BV",
+                "vfModuleLabel": "PASQUALE_vRE_BV",
                 "paramName": "vnf_config_template_version"
               },
-              "fromInputName": "2017488_adiodvpe0_vnf_config_template_version",
+              "fromInputName": "2017488_pasqualevpe0_vnf_config_template_version",
               "constraints": null,
               "required": true,
               "default": "17.2"
@@ -1520,10 +1514,10 @@ describe('VFModule Model Info', () => {
               "entry_schema": null,
               "inputProperties": {
                 "sourceType": "HEAT",
-                "vfModuleLabel": "ADIOD_vRE_BV",
+                "vfModuleLabel": "PASQUALE_vRE_BV",
                 "paramName": "bandwidth_units"
               },
-              "fromInputName": "adiodvpe0_bandwidth_units",
+              "fromInputName": "pasqualevpe0_bandwidth_units",
               "constraints": null,
               "required": true,
               "default": "Gbps"
@@ -1534,10 +1528,10 @@ describe('VFModule Model Info', () => {
               "entry_schema": null,
               "inputProperties": {
                 "sourceType": "HEAT",
-                "vfModuleLabel": "ADIOD_vRE_BV",
+                "vfModuleLabel": "PASQUALE_vRE_BV",
                 "paramName": "bandwidth"
               },
-              "fromInputName": "adiodvpe0_bandwidth",
+              "fromInputName": "pasqualevpe0_bandwidth",
               "constraints": null,
               "required": true,
               "default": "10"
@@ -1548,10 +1542,10 @@ describe('VFModule Model Info', () => {
               "entry_schema": null,
               "inputProperties": {
                 "sourceType": "HEAT",
-                "vfModuleLabel": "ADIOD_vRE_BV",
+                "vfModuleLabel": "PASQUALE_vRE_BV",
                 "paramName": "AIC_CLLI"
               },
-              "fromInputName": "2017488_adiodvpe0_AIC_CLLI",
+              "fromInputName": "2017488_pasqualevpe0_AIC_CLLI",
               "constraints": null,
               "required": true,
               "default": "ATLMY8GA"
@@ -1562,29 +1556,29 @@ describe('VFModule Model Info', () => {
               "entry_schema": null,
               "inputProperties": {
                 "sourceType": "HEAT",
-                "vfModuleLabel": "ADIOD_vRE_BV",
+                "vfModuleLabel": "PASQUALE_vRE_BV",
                 "paramName": "vnf_instance_name"
               },
-              "fromInputName": "2017488_adiodvpe0_vnf_instance_name",
+              "fromInputName": "2017488_pasqualevpe0_vnf_instance_name",
               "constraints": null,
               "required": true,
               "default": "mtnj309me6"
             }
           }
         },
-        "2017488_adiodvpe0..2017488AdiodVpe..ADIOD_vPFE_BV..module-2": {
+        "2017488_pasqualevpe0..2017488PasqualeVpe..PASQUALE_vPFE_BV..module-2": {
           "uuid": "0a0dd9d4-31d3-4c3a-ae89-a02f383e6a9a",
           "invariantUuid": "eff8cc59-53a1-4101-aed7-8cf24ecf8339",
           "customizationUuid": "3cd946bb-50e0-40d8-96d3-c9023520b557",
           "description": null,
-          "name": "2017488AdiodVpe..ADIOD_vPFE_BV..module-2",
+          "name": "2017488PasqualeVpe..PASQUALE_vPFE_BV..module-2",
           "version": "6",
-          "modelCustomizationName": "2017488AdiodVpe..ADIOD_vPFE_BV..module-2",
+          "modelCustomizationName": "2017488PasqualeVpe..PASQUALE_vPFE_BV..module-2",
           "properties": {
             "minCountInstances": 0,
             "maxCountInstances": null,
             "initialCount": 0,
-            "vfModuleLabel": "ADIOD_vPFE_BV",
+            "vfModuleLabel": "PASQUALE_vPFE_BV",
             "baseModule": false
           },
           "inputs": {}
index 7db3d90..bfe1d00 100644 (file)
@@ -42,6 +42,7 @@ export class VFModuleModelInfo implements ILevelNodeInfo {
   name: string = 'vfModules';
   type: string = 'Module';
   typeName: string = 'M';
+  componentInfoType = ComponentInfoType.VFMODULE;
 
   /***********************************************************
    * return if user should provide instance name or not.
@@ -367,22 +368,16 @@ export class VFModuleModelInfo implements ILevelNodeInfo {
     return (!_.isNil(instance) && !_.isNil(instance[deepDynamicName])) ? instance[deepDynamicName].position : null;
   }
 
-  onSelectedNode(node: ITreeNode): void {
+  getInfo(model, instance): ModelInformationItem[] {
+    const modelInformation = !_.isEmpty(model) && !_.isEmpty(model.properties) ? [
+      ModelInformationItem.createInstance("Base module", model.properties.baseModule),
+      ModelInformationItem.createInstance("Min instances", !_.isNull(model.properties.minCountInstances)? String(model.properties.minCountInstances): null),
+      ModelInformationItem.createInstance("Max instances", !_.isNull(model.properties.maxCountInstances)? String(model.properties.maxCountInstances): null),
+      ModelInformationItem.createInstance("Initial instances count", !_.isNull(model.properties.initialCount)? String(model.properties.initialCount): null)
+    ] : [];
+
+    const instanceInfo =  [];
+    const result = [modelInformation, instanceInfo];
+    return _.uniq(_.flatten(result));
   }
-
-  getInfoForVFModule(model, instance): ComponentInfoModel {
-    let modelInfoItems: ModelInformationItem[] = [];
-    if (model && !_.isNil(model.properties))
-    {
-      modelInfoItems = [
-        ModelInformationItem.createInstance("Base Module", model.properties.baseModule),
-        ModelInformationItem.createInstance("Min Instances", model.properties.minCountInstances),
-        ModelInformationItem.createInstance("Max Instances", model.properties.maxCountInstances),
-        ModelInformationItem.createInstance("Initial Instances Count", model.properties.initialCount)
-      ];
-    }
-    return this._componentInfoService.addGeneralInfoItems(modelInfoItems, ComponentInfoType.VFMODULE, model, instance);
-  }
-
-
 }
index 10c8e39..de89627 100644 (file)
@@ -18,7 +18,6 @@ import {IframeService} from "../../../../../shared/utils/iframe.service";
 import {ServiceInfoService} from "../../../../../shared/server/serviceInfo/serviceInfo.service";
 import {AuditInfoModalComponent} from "../../../../../shared/components/auditInfoModal/auditInfoModal.component";
 import {ModelInformationItem} from "../../../../../shared/components/model-information/model-information.component";
-import {ComponentInfoModel, ComponentInfoType} from "../../../component-info/component-info-model";
 import {ComponentInfoService} from "../../../component-info/component-info.service";
 import {AaiService} from "../../../../../shared/services/aaiService/aai.service";
 import {HttpClient, HttpHandler} from "@angular/common/http";
@@ -88,8 +87,7 @@ describe('Vnf Model Info', () => {
   test('VnfModelInfo should defined extra details', () => {
     expect(vnfModel.name).toEqual('vnfs');
     expect(vnfModel.type).toEqual('VNF');
-    expect(vnfModel.childName).toEqual('vfModules');
-    expect(vnfModel.childType).toEqual('VFModuleModelInfo');
+    expect(vnfModel.childNames).toEqual(['vfModules']);
   });
 
   test('isEcompGeneratedNaming should return true if isEcompGeneratedNaming is "true" ', () => {
@@ -135,8 +133,8 @@ describe('Vnf Model Info', () => {
   });
 
   test('getModel should return VNF model', () => {
-    let model: VNFModel = vnfModel.getModel('2017-388_ADIOD-vPE 1', <any>{
-      originalName : '2017-388_ADIOD-vPE 1'
+    let model: VNFModel = vnfModel.getModel('2017-388_PASQUALE-vPE 1', <any>{
+      originalName : '2017-388_PASQUALE-vPE 1'
     }, getServiceHierarchy());
     expect(model.type).toEqual('VF');
   });
@@ -283,7 +281,7 @@ describe('Vnf Model Info', () => {
   });
 
   test('getMenuAction: edit', ()=>{
-    let node = {"modelId":"d6557200-ecf2-4641-8094-5393ae3aae60","missingData":true,"action":"None","inMaint":true,"name":"jlfBwIks283yKlCD8","modelName":"VF_vMee 0","type":"VF","isEcompGeneratedNaming":true,"networkStoreKey":"VF_vMee 0:004","vnfStoreKey":"VF_vMee 0:004","typeName":"VNF"};
+    let node = {"modelId":"d6557200-ecf2-4641-8094-5393ae3aae60","missingData":true,"action":"None","inMaint":true,"name":"jlfBwIks283yKlCD8","modelName":"VF_vGeraldine 0","type":"VF","isEcompGeneratedNaming":true,"networkStoreKey":"VF_vGeraldine 0:004","vnfStoreKey":"VF_vGeraldine 0:004","typeName":"VNF"};
     let serviceModelId = "d6557200-ecf2-4641-8094-5393ae3aae60";
     let result = vnfModel.getMenuAction(<any>node, serviceModelId);
     spyOn(result['edit'], 'method');
@@ -302,11 +300,11 @@ describe('Vnf Model Info', () => {
         "action": "None",
         "inMaint": true,
         "name": "jlfBwIks283yKlCD8",
-        "modelName": "VF_vMee 0",
+        "modelName": "VF_vGeraldine 0",
         "type": "VF",
         "userProvidedNaming": false,
-        "networkStoreKey": "VF_vMee 0:004",
-        "vnfStoreKey": "VF_vMee 0:004",
+        "networkStoreKey": "VF_vGeraldine 0:004",
+        "vnfStoreKey": "VF_vGeraldine 0:004",
         "typeName": "VNF"
       },
       type : 'VNF'
@@ -337,11 +335,11 @@ describe('Vnf Model Info', () => {
         "action": "None",
         "inMaint": true,
         "name": "jlfBwIks283yKlCD8",
-        "modelName": "VF_vMee 0",
+        "modelName": "VF_vGeraldine 0",
         "type": "VF",
         "isEcompGeneratedNaming":true,
-        "networkStoreKey": "VF_vMee 0:004",
-        "vnfStoreKey": "VF_vMee 0:004",
+        "networkStoreKey": "VF_vGeraldine 0:004",
+        "vnfStoreKey": "VF_vGeraldine 0:004",
         "typeName": "VNF"
       },
       type : 'VNF'
@@ -364,11 +362,11 @@ describe('Vnf Model Info', () => {
         "action": "None",
         "inMaint": true,
         "name": "jlfBwIks283yKlCD8",
-        "modelName": "VF_vMee 0",
+        "modelName": "VF_vGeraldine 0",
         "type": "VF",
         "isEcompGeneratedNaming":true,
-        "networkStoreKey": "VF_vMee 0:004",
-        "vnfStoreKey": "VF_vMee 0:004",
+        "networkStoreKey": "VF_vGeraldine 0:004",
+        "vnfStoreKey": "VF_vGeraldine 0:004",
         "typeName": "VNF"
       },
       type : 'VNF'
@@ -385,7 +383,7 @@ describe('Vnf Model Info', () => {
   });
 
   test('getMenuAction: delete', ()=>{
-    let node = {"modelId":"d6557200-ecf2-4641-8094-5393ae3aae60","missingData":true,"action":"None","inMaint":true,"name":"jlfBwIks283yKlCD8","modelName":"VF_vMee 0","type":"VF","isEcompGeneratedNaming":true,"networkStoreKey":"VF_vMee 0:004","vnfStoreKey":"VF_vMee 0:004","typeName":"VNF"};
+    let node = {"modelId":"d6557200-ecf2-4641-8094-5393ae3aae60","missingData":true,"action":"None","inMaint":true,"name":"jlfBwIks283yKlCD8","modelName":"VF_vGeraldine 0","type":"VF","isEcompGeneratedNaming":true,"networkStoreKey":"VF_vGeraldine 0:004","vnfStoreKey":"VF_vGeraldine 0:004","typeName":"VNF"};
     let serviceModelId = "d6557200-ecf2-4641-8094-5393ae3aae60";
     let result = vnfModel.getMenuAction(<any>node, serviceModelId);
     spyOn(result['delete'], 'method');
@@ -398,7 +396,7 @@ describe('Vnf Model Info', () => {
 
 
   test('getMenuAction: undoDelete', ()=>{
-    let node = {"modelId":"d6557200-ecf2-4641-8094-5393ae3aae60","missingData":true,"action":"None","inMaint":true,"name":"jlfBwIks283yKlCD8","modelName":"VF_vMee 0","type":"VF","isEcompGeneratedNaming":true,"networkStoreKey":"VF_vMee 0:004","vnfStoreKey":"VF_vMee 0:004","typeName":"VNF"};
+    let node = {"modelId":"d6557200-ecf2-4641-8094-5393ae3aae60","missingData":true,"action":"None","inMaint":true,"name":"jlfBwIks283yKlCD8","modelName":"VF_vGeraldine 0","type":"VF","isEcompGeneratedNaming":true,"networkStoreKey":"VF_vGeraldine 0:004","vnfStoreKey":"VF_vGeraldine 0:004","typeName":"VNF"};
     let serviceModelId = "d6557200-ecf2-4641-8094-5393ae3aae60";
     let result = vnfModel.getMenuAction(<any>node, serviceModelId);
     spyOn(result['undoDelete'], 'method');
@@ -433,45 +431,36 @@ describe('Vnf Model Info', () => {
     expect(result['showAuditInfo'].enable(node)).toBeTruthy();
     result['showAuditInfo']['method'](node, serviceModelId);
 
-    // expect(AuditInfoModalComponent.openInstanceAuditInfoModal.next).toBeCalled();
-    // expect(result['showAuditInfo'].method)
-
   });
 
   test('Info for vnf should be correct', () => {
     const model = getVNFModel();
     const instance = getVNFInstance();
-    let actualVNFInfo = vnfModel.getInfoForVnf(model,instance);
+    let actualVNFInfo = vnfModel.getInfo(model,instance);
     let expectedVNFInfo = [
-      ModelInformationItem.createInstance('Type', 'VF'),
-      ModelInformationItem.createInstance('Model Version', '2.0'),
-      ModelInformationItem.createInstance('Model Customization ID','91415b44-753d-494c-926a-456a9172bbb9'),
-      ModelInformationItem.createInstance('Instance ID', '66cbb3b5-c823-470c-9520-4e0b85112250'),
-      ModelInformationItem.createInstance('In Maintenance', true),
-      ModelInformationItem.createInstance('Min Instances', 0),
-      ModelInformationItem.createInstance('Max Instances',1)
+      ModelInformationItem.createInstance('Min instances', "0"),
+      ModelInformationItem.createInstance('Max instances',"1"),
+      ModelInformationItem.createInstance('NF type',undefined),
+      ModelInformationItem.createInstance('NF role',undefined)
     ];
-    expect(actualVNFInfo).toEqual(new ComponentInfoModel(ComponentInfoType.VNF, expectedVNFInfo, []));
+    expect(actualVNFInfo).toEqual(expectedVNFInfo);
   });
 
   test('Info for vnf in left side - model only - should be correct', () => {
     const model = getVNFModel();
-    let actualVNFInfo = vnfModel.getInfoForVnf(model,null);
+    let actualVNFInfo = vnfModel.getInfo(model,null);
     let expectedVNFInfo = [
-      ModelInformationItem.createInstance('Type', 'VF'),
-      ModelInformationItem.createInstance('Model Version', '2.0'),
-      ModelInformationItem.createInstance('Model Customization ID','91415b44-753d-494c-926a-456a9172bbb9'),
-      ModelInformationItem.createInstance('Min Instances', 0),
-      ModelInformationItem.createInstance('Max Instances',1)
+      ModelInformationItem.createInstance('Min instances', "0"),
+      ModelInformationItem.createInstance('Max instances',"1")
     ];
-    expect(actualVNFInfo).toEqual(new ComponentInfoModel(ComponentInfoType.VNF, expectedVNFInfo, []));
+    expect(actualVNFInfo).toEqual(expectedVNFInfo);
   });
 
   function getVNFModel(){
     return {
-      "name":"VF_vMee",
+      "name":"VF_vGeraldine",
       "version":"2.0",
-      "description":"VSP_vMee",
+      "description":"VSP_vGeraldine",
       "uuid":"d6557200-ecf2-4641-8094-5393ae3aae60",
       "invariantUuid":"4160458e-f648-4b30-a176-43881ffffe9e",
       "max":1,
@@ -479,7 +468,7 @@ describe('Vnf Model Info', () => {
       "customizationUuid":"91415b44-753d-494c-926a-456a9172bbb9",
       "isEcompGeneratedNaming":true,
       "type":"VF",
-      "modelCustomizationName":"VF_vMee 0",
+      "modelCustomizationName":"VF_vGeraldine 0",
       "vfcInstanceGroups":{},
       "properties":{
         "gpb2_Internal2_mac":"00:11:22:EF:AC:DF",
@@ -521,7 +510,7 @@ describe('Vnf Model Info', () => {
       "lcpCloudRegionId":null,
       "tenantId":null,
       "modelInfo":{
-        "modelCustomizationName":"VF_vMee 0",
+        "modelCustomizationName":"VF_vGeraldine 0",
         "modelInvariantId":"vnf-instance-model-invariant-id",
         "modelVersionId":"d6557200-ecf2-4641-8094-5393ae3aae60",
         "modelType":"vnf"
@@ -530,14 +519,14 @@ describe('Vnf Model Info', () => {
       "provStatus":null,
       "inMaint":true,
       "uuid":"d6557200-ecf2-4641-8094-5393ae3aae60",
-      "originalName":"VF_vMee 0",
+      "originalName":"VF_vGeraldine 0",
       "legacyRegion":null,
       "lineOfBusiness":null,
       "platformName":null,
-      "trackById":"VF_vMee 0:004",
+      "trackById":"VF_vGeraldine 0:004",
       "vfModules":{
-        "vf_vmee0..VfVmee..vmme_vlc..module-1":{
-          "vf_vmee0..VfVmee..vmme_vlc..module-1:008":{
+        "vf_vgeraldine0..VfVgeraldine..vflorence_vlc..module-1":{
+          "vf_vgeraldine0..VfVgeraldine..vflorence_vlc..module-1:008":{
             "action":"None",
             "instanceName":"ss820f_0918_db",
             "instanceId":"2c1ca484-cbc2-408b-ab86-25a2c15ce280",
@@ -546,7 +535,7 @@ describe('Vnf Model Info', () => {
             "lcpCloudRegionId":null,
             "tenantId":null,
             "modelInfo":{
-              "modelCustomizationName":"VfVmee..vmme_vlc..module-1",
+              "modelCustomizationName":"VfVgeraldine..vflorence_vlc..module-1",
               "modelCustomizationId":"b200727a-1bf9-4e7c-bd06-b5f4c9d920b9",
               "modelInvariantId":"09edc9ef-85d0-4b26-80de-1f569d49e750",
               "modelVersionId":"522159d5-d6e0-4c2a-aa44-5a542a12a830",
@@ -556,11 +545,11 @@ describe('Vnf Model Info', () => {
             "provStatus":null,
             "inMaint":true,
             "uuid":"522159d5-d6e0-4c2a-aa44-5a542a12a830",
-            "originalName":"VfVmee..vmme_vlc..module-1",
+            "originalName":"VfVgeraldine..vflorence_vlc..module-1",
             "legacyRegion":null,
             "lineOfBusiness":null,
             "platformName":null,
-            "trackById":"vf_vmee0..VfVmee..vmme_vlc..module-1:008",
+            "trackById":"vf_vgeraldine0..VfVgeraldine..vflorence_vlc..module-1:008",
             "isBase":false,
             "volumeGroupName":null
           }
@@ -615,7 +604,7 @@ describe('Vnf Model Info', () => {
         "serviceEcompNaming": "false",
         "instantiationType": "Macro",
         "inputs": {
-          "2017488_adiodvpe0_ASN": {
+          "2017488_pasqualevpe0_ASN": {
             "type": "string",
             "description": "AV/PE",
             "entry_schema": null,
@@ -631,11 +620,11 @@ describe('Vnf Model Info', () => {
         }
       },
       "vnfs": {
-        "2017-388_ADIOD-vPE 1": {
+        "2017-388_PASQUALE-vPE 1": {
           "uuid": "0903e1c0-8e03-4936-b5c2-260653b96413",
           "invariantUuid": "00beb8f9-6d39-452f-816d-c709b9cbb87d",
-          "description": "Name ADIOD vPE Description The provider edge function for the ADIOD service supported by the Junipers VMX product Category Router Vendor Juniper Vendor Release Code 17.2 Owners Mary Fragale. Updated 9-25 to use v8.0 of the Juniper Valid 2 VLM",
-          "name": "2017-388_ADIOD-vPE",
+          "description": "Name PASQUALE vPE Description The provider edge function for the PASQUALE service supported by the Junipers VMX product Category Router Vendor Juniper Vendor Release Code 17.2 Owners Mary Fragale. Updated 9-25 to use v8.0 of the Juniper Valid 2 VLM",
+          "name": "2017-388_PASQUALE-vPE",
           "version": "1.0",
           "customizationUuid": "280dec31-f16d-488b-9668-4aae55d6648a",
           "inputs": {
@@ -698,37 +687,37 @@ describe('Vnf Model Info', () => {
             "vnf_config_template_version": {
               "displayName": "vnf_config_template_version",
               "command": "get_input",
-              "inputName": "2017488_adiodvpe0_vnf_config_template_version"
+              "inputName": "2017488_pasqualevpe0_vnf_config_template_version"
             },
             "bandwidth_units": {
               "displayName": "bandwidth_units",
               "command": "get_input",
-              "inputName": "adiodvpe0_bandwidth_units"
+              "inputName": "pasqualevpe0_bandwidth_units"
             },
             "bandwidth": {
               "displayName": "bandwidth",
               "command": "get_input",
-              "inputName": "adiodvpe0_bandwidth"
+              "inputName": "pasqualevpe0_bandwidth"
             },
             "AIC_CLLI": {
               "displayName": "AIC_CLLI",
               "command": "get_input",
-              "inputName": "2017488_adiodvpe0_AIC_CLLI"
+              "inputName": "2017488_pasqualevpe0_AIC_CLLI"
             },
             "ASN": {
               "displayName": "ASN",
               "command": "get_input",
-              "inputName": "2017488_adiodvpe0_ASN"
+              "inputName": "2017488_pasqualevpe0_ASN"
             },
             "vnf_instance_name": {
               "displayName": "vnf_instance_name",
               "command": "get_input",
-              "inputName": "2017488_adiodvpe0_vnf_instance_name"
+              "inputName": "2017488_pasqualevpe0_vnf_instance_name"
             }
           },
           "properties": {
             "vmxvre_retype": "RE-VMX",
-            "vnf_config_template_version": "get_input:2017488_adiodvpe0_vnf_config_template_version",
+            "vnf_config_template_version": "get_input:2017488_pasqualevpe0_vnf_config_template_version",
             "sriov44_net_id": "48d399b3-11ee-48a8-94d2-f0ea94d6be8d",
             "int_ctl_net_id": "2f323477-6936-4d01-ac53-d849430281d9",
             "vmxvpfe_sriov41_0_port_mac": "00:11:22:EF:AC:DF",
@@ -773,7 +762,7 @@ describe('Vnf Model Info', () => {
             "vmxvpfe_sriov43_0_port_unknownmulticastallow": "true",
             "vmxvre_int_ctl_ip_0": "10.0.0.10",
             "ecomp_generated_naming": "false",
-            "AIC_CLLI": "get_input:2017488_adiodvpe0_AIC_CLLI",
+            "AIC_CLLI": "get_input:2017488_pasqualevpe0_AIC_CLLI",
             "vnf_name": "mtnj309me6vre",
             "vmxvpfe_sriov41_0_port_unknownunicastallow": "true",
             "vmxvre_volume_type_1": "HITACHI",
@@ -781,14 +770,14 @@ describe('Vnf Model Info', () => {
             "vmxvre_volume_type_0": "HITACHI",
             "vmxvpfe_volume_type_0": "HITACHI",
             "vmxvpfe_sriov43_0_port_broadcastallow": "true",
-            "bandwidth_units": "get_input:adiodvpe0_bandwidth_units",
+            "bandwidth_units": "get_input:pasqualevpe0_bandwidth_units",
             "vnf_id": "123",
             "vmxvre_oam_prefix": "24",
             "availability_zone_0": "mtpocfo-kvm-az01",
-            "ASN": "get_input:2017488_adiodvpe0_ASN",
+            "ASN": "get_input:2017488_pasqualevpe0_ASN",
             "vmxvre_chassis_i2cid": "161",
             "vmxvpfe_name_0": "vPFEXI",
-            "bandwidth": "get_input:adiodvpe0_bandwidth",
+            "bandwidth": "get_input:pasqualevpe0_bandwidth",
             "availability_zone_max_count": "1",
             "vmxvre_volume_size_0": "45.0",
             "vmxvre_volume_size_1": "50.0",
@@ -798,7 +787,7 @@ describe('Vnf Model Info', () => {
             "vmxvre_ore_present": "0",
             "vmxvre_volume_name_0": "vREXI_FBVolume",
             "vmxvre_type": "0",
-            "vnf_instance_name": "get_input:2017488_adiodvpe0_vnf_instance_name",
+            "vnf_instance_name": "get_input:2017488_pasqualevpe0_vnf_instance_name",
             "vmxvpfe_sriov41_0_port_unknownmulticastallow": "true",
             "oam_net_id": "b95eeb1d-d55d-4827-abb4-8ebb94941429",
             "vmx_int_ctl_len": "24",
@@ -812,16 +801,16 @@ describe('Vnf Model Info', () => {
             "vmxvpfe_flavor_name": "ns.c20r16d25.v5"
           },
           "type": "VF",
-          "modelCustomizationName": "2017-388_ADIOD-vPE 1",
+          "modelCustomizationName": "2017-388_PASQUALE-vPE 1",
           "vfModules": {},
           "volumeGroups": {},
           "vfcInstanceGroups": {}
         },
-        "2017-388_ADIOD-vPE 0": {
+        "2017-388_PASQUALE-vPE 0": {
           "uuid": "afacccf6-397d-45d6-b5ae-94c39734b168",
           "invariantUuid": "72e465fe-71b1-4e7b-b5ed-9496118ff7a8",
-          "description": "Name ADIOD vPE Description The provider edge function for the ADIOD service supported by the Junipers VMX product Category Router Vendor Juniper Vendor Release Code 17.2 Owners Mary Fragale. Updated 9-25 to use v8.0 of the Juniper Valid 2 VLM",
-          "name": "2017-388_ADIOD-vPE",
+          "description": "Name PASQUALE vPE Description The provider edge function for the PASQUALE service supported by the Junipers VMX product Category Router Vendor Juniper Vendor Release Code 17.2 Owners Mary Fragale. Updated 9-25 to use v8.0 of the Juniper Valid 2 VLM",
+          "name": "2017-388_PASQUALE-vPE",
           "version": "4.0",
           "customizationUuid": "b3c76f73-eeb5-4fb6-9d31-72a889f1811c",
           "inputs": {
@@ -884,37 +873,37 @@ describe('Vnf Model Info', () => {
             "vnf_config_template_version": {
               "displayName": "vnf_config_template_version",
               "command": "get_input",
-              "inputName": "2017488_adiodvpe0_vnf_config_template_version"
+              "inputName": "2017488_pasqualevpe0_vnf_config_template_version"
             },
             "bandwidth_units": {
               "displayName": "bandwidth_units",
               "command": "get_input",
-              "inputName": "adiodvpe0_bandwidth_units"
+              "inputName": "pasqualevpe0_bandwidth_units"
             },
             "bandwidth": {
               "displayName": "bandwidth",
               "command": "get_input",
-              "inputName": "adiodvpe0_bandwidth"
+              "inputName": "pasqualevpe0_bandwidth"
             },
             "AIC_CLLI": {
               "displayName": "AIC_CLLI",
               "command": "get_input",
-              "inputName": "2017488_adiodvpe0_AIC_CLLI"
+              "inputName": "2017488_pasqualevpe0_AIC_CLLI"
             },
             "ASN": {
               "displayName": "ASN",
               "command": "get_input",
-              "inputName": "2017488_adiodvpe0_ASN"
+              "inputName": "2017488_pasqualevpe0_ASN"
             },
             "vnf_instance_name": {
               "displayName": "vnf_instance_name",
               "command": "get_input",
-              "inputName": "2017488_adiodvpe0_vnf_instance_name"
+              "inputName": "2017488_pasqualevpe0_vnf_instance_name"
             }
           },
           "properties": {
             "vmxvre_retype": "RE-VMX",
-            "vnf_config_template_version": "get_input:2017488_adiodvpe0_vnf_config_template_version",
+            "vnf_config_template_version": "get_input:2017488_pasqualevpe0_vnf_config_template_version",
             "sriov44_net_id": "48d399b3-11ee-48a8-94d2-f0ea94d6be8d",
             "int_ctl_net_id": "2f323477-6936-4d01-ac53-d849430281d9",
             "vmxvpfe_sriov41_0_port_mac": "00:11:22:EF:AC:DF",
@@ -960,7 +949,7 @@ describe('Vnf Model Info', () => {
             "vmxvpfe_sriov43_0_port_unknownmulticastallow": "true",
             "vmxvre_int_ctl_ip_0": "10.0.0.10",
             "ecomp_generated_naming": "false",
-            "AIC_CLLI": "get_input:2017488_adiodvpe0_AIC_CLLI",
+            "AIC_CLLI": "get_input:2017488_pasqualevpe0_AIC_CLLI",
             "vnf_name": "mtnj309me6vre",
             "vmxvpfe_sriov41_0_port_unknownunicastallow": "true",
             "vmxvre_volume_type_1": "HITACHI",
@@ -968,14 +957,14 @@ describe('Vnf Model Info', () => {
             "vmxvre_volume_type_0": "HITACHI",
             "vmxvpfe_volume_type_0": "HITACHI",
             "vmxvpfe_sriov43_0_port_broadcastallow": "true",
-            "bandwidth_units": "get_input:adiodvpe0_bandwidth_units",
+            "bandwidth_units": "get_input:pasqualevpe0_bandwidth_units",
             "vnf_id": "123",
             "vmxvre_oam_prefix": "24",
             "availability_zone_0": "mtpocfo-kvm-az01",
-            "ASN": "get_input:2017488_adiodvpe0_ASN",
+            "ASN": "get_input:2017488_pasqualevpe0_ASN",
             "vmxvre_chassis_i2cid": "161",
             "vmxvpfe_name_0": "vPFEXI",
-            "bandwidth": "get_input:adiodvpe0_bandwidth",
+            "bandwidth": "get_input:pasqualevpe0_bandwidth",
             "availability_zone_max_count": "1",
             "vmxvre_volume_size_0": "45.0",
             "vmxvre_volume_size_1": "50.0",
@@ -985,7 +974,7 @@ describe('Vnf Model Info', () => {
             "vmxvre_ore_present": "0",
             "vmxvre_volume_name_0": "vREXI_FBVolume",
             "vmxvre_type": "0",
-            "vnf_instance_name": "get_input:2017488_adiodvpe0_vnf_instance_name",
+            "vnf_instance_name": "get_input:2017488_pasqualevpe0_vnf_instance_name",
             "vmxvpfe_sriov41_0_port_unknownmulticastallow": "true",
             "oam_net_id": "b95eeb1d-d55d-4827-abb4-8ebb94941429",
             "vmx_int_ctl_len": "24",
@@ -999,16 +988,16 @@ describe('Vnf Model Info', () => {
             "vmxvpfe_flavor_name": "ns.c20r16d25.v5"
           },
           "type": "VF",
-          "modelCustomizationName": "2017-388_ADIOD-vPE 0",
+          "modelCustomizationName": "2017-388_PASQUALE-vPE 0",
           "vfModules": {},
           "volumeGroups": {},
           "vfcInstanceGroups": {}
         },
-        "2017-488_ADIOD-vPE 0": {
+        "2017-488_PASQUALE-vPE 0": {
           "uuid": "69e09f68-8b63-4cc9-b9ff-860960b5db09",
           "invariantUuid": "72e465fe-71b1-4e7b-b5ed-9496118ff7a8",
-          "description": "Name ADIOD vPE Description The provider edge function for the ADIOD service supported by the Junipers VMX product Category Router Vendor Juniper Vendor Release Code 17.2 Owners Mary Fragale. Updated 9-25 to use v8.0 of the Juniper Valid 2 VLM",
-          "name": "2017-488_ADIOD-vPE",
+          "description": "Name PASQUALE vPE Description The provider edge function for the PASQUALE service supported by the Junipers VMX product Category Router Vendor Juniper Vendor Release Code 17.2 Owners Mary Fragale. Updated 9-25 to use v8.0 of the Juniper Valid 2 VLM",
+          "name": "2017-488_PASQUALE-vPE",
           "version": "5.0",
           "customizationUuid": "1da7b585-5e61-4993-b95e-8e6606c81e45",
           "inputs": {
@@ -1071,37 +1060,37 @@ describe('Vnf Model Info', () => {
             "vnf_config_template_version": {
               "displayName": "vnf_config_template_version",
               "command": "get_input",
-              "inputName": "2017488_adiodvpe0_vnf_config_template_version"
+              "inputName": "2017488_pasqualevpe0_vnf_config_template_version"
             },
             "bandwidth_units": {
               "displayName": "bandwidth_units",
               "command": "get_input",
-              "inputName": "adiodvpe0_bandwidth_units"
+              "inputName": "pasqualevpe0_bandwidth_units"
             },
             "bandwidth": {
               "displayName": "bandwidth",
               "command": "get_input",
-              "inputName": "adiodvpe0_bandwidth"
+              "inputName": "pasqualevpe0_bandwidth"
             },
             "AIC_CLLI": {
               "displayName": "AIC_CLLI",
               "command": "get_input",
-              "inputName": "2017488_adiodvpe0_AIC_CLLI"
+              "inputName": "2017488_pasqualevpe0_AIC_CLLI"
             },
             "ASN": {
               "displayName": "ASN",
               "command": "get_input",
-              "inputName": "2017488_adiodvpe0_ASN"
+              "inputName": "2017488_pasqualevpe0_ASN"
             },
             "vnf_instance_name": {
               "displayName": "vnf_instance_name",
               "command": "get_input",
-              "inputName": "2017488_adiodvpe0_vnf_instance_name"
+              "inputName": "2017488_pasqualevpe0_vnf_instance_name"
             }
           },
           "properties": {
             "vmxvre_retype": "RE-VMX",
-            "vnf_config_template_version": "get_input:2017488_adiodvpe0_vnf_config_template_version",
+            "vnf_config_template_version": "get_input:2017488_pasqualevpe0_vnf_config_template_version",
             "sriov44_net_id": "48d399b3-11ee-48a8-94d2-f0ea94d6be8d",
             "int_ctl_net_id": "2f323477-6936-4d01-ac53-d849430281d9",
             "vmxvpfe_sriov41_0_port_mac": "00:11:22:EF:AC:DF",
@@ -1148,7 +1137,7 @@ describe('Vnf Model Info', () => {
             "vmxvpfe_sriov43_0_port_unknownmulticastallow": "true",
             "vmxvre_int_ctl_ip_0": "10.0.0.10",
             "ecomp_generated_naming": "false",
-            "AIC_CLLI": "get_input:2017488_adiodvpe0_AIC_CLLI",
+            "AIC_CLLI": "get_input:2017488_pasqualevpe0_AIC_CLLI",
             "vnf_name": "mtnj309me6vre",
             "vmxvpfe_sriov41_0_port_unknownunicastallow": "true",
             "vmxvre_volume_type_1": "HITACHI",
@@ -1156,14 +1145,14 @@ describe('Vnf Model Info', () => {
             "vmxvre_volume_type_0": "HITACHI",
             "vmxvpfe_volume_type_0": "HITACHI",
             "vmxvpfe_sriov43_0_port_broadcastallow": "true",
-            "bandwidth_units": "get_input:adiodvpe0_bandwidth_units",
+            "bandwidth_units": "get_input:pasqualevpe0_bandwidth_units",
             "vnf_id": "123",
             "vmxvre_oam_prefix": "24",
             "availability_zone_0": "mtpocfo-kvm-az01",
-            "ASN": "get_input:2017488_adiodvpe0_ASN",
+            "ASN": "get_input:2017488_pasqualevpe0_ASN",
             "vmxvre_chassis_i2cid": "161",
             "vmxvpfe_name_0": "vPFEXI",
-            "bandwidth": "get_input:adiodvpe0_bandwidth",
+            "bandwidth": "get_input:pasqualevpe0_bandwidth",
             "availability_zone_max_count": "1",
             "vmxvre_volume_size_0": "45.0",
             "vmxvre_volume_size_1": "50.0",
@@ -1173,7 +1162,7 @@ describe('Vnf Model Info', () => {
             "vmxvre_ore_present": "0",
             "vmxvre_volume_name_0": "vREXI_FBVolume",
             "vmxvre_type": "0",
-            "vnf_instance_name": "get_input:2017488_adiodvpe0_vnf_instance_name",
+            "vnf_instance_name": "get_input:2017488_pasqualevpe0_vnf_instance_name",
             "vmxvpfe_sriov41_0_port_unknownmulticastallow": "true",
             "oam_net_id": "b95eeb1d-d55d-4827-abb4-8ebb94941429",
             "vmx_int_ctl_len": "24",
@@ -1187,21 +1176,21 @@ describe('Vnf Model Info', () => {
             "vmxvpfe_flavor_name": "ns.c20r16d25.v5"
           },
           "type": "VF",
-          "modelCustomizationName": "2017-488_ADIOD-vPE 0",
+          "modelCustomizationName": "2017-488_PASQUALE-vPE 0",
           "vfModules": {
-            "2017488_adiodvpe0..2017488AdiodVpe..ADIOD_vRE_BV..module-1": {
+            "2017488_pasqualevpe0..2017488PasqualeVpe..PASQUALE_vRE_BV..module-1": {
               "uuid": "25284168-24bb-4698-8cb4-3f509146eca5",
               "invariantUuid": "7253ff5c-97f0-4b8b-937c-77aeb4d79aa1",
               "customizationUuid": "f7e7c365-60cf-49a9-9ebf-a1aa11b9d401",
               "description": null,
-              "name": "2017488AdiodVpe..ADIOD_vRE_BV..module-1",
+              "name": "2017488PasqualeVpe..PASQUALE_vRE_BV..module-1",
               "version": "6",
-              "modelCustomizationName": "2017488AdiodVpe..ADIOD_vRE_BV..module-1",
+              "modelCustomizationName": "2017488PasqualeVpe..PASQUALE_vRE_BV..module-1",
               "properties": {
                 "minCountInstances": 0,
                 "maxCountInstances": null,
                 "initialCount": 0,
-                "vfModuleLabel": "ADIOD_vRE_BV",
+                "vfModuleLabel": "PASQUALE_vRE_BV",
                 "baseModule": false
               },
               "inputs": {
@@ -1211,10 +1200,10 @@ describe('Vnf Model Info', () => {
                   "entry_schema": null,
                   "inputProperties": {
                     "sourceType": "HEAT",
-                    "vfModuleLabel": "ADIOD_vRE_BV",
+                    "vfModuleLabel": "PASQUALE_vRE_BV",
                     "paramName": "vnf_config_template_version"
                   },
-                  "fromInputName": "2017488_adiodvpe0_vnf_config_template_version",
+                  "fromInputName": "2017488_pasqualevpe0_vnf_config_template_version",
                   "constraints": null,
                   "required": true,
                   "default": "17.2"
@@ -1225,10 +1214,10 @@ describe('Vnf Model Info', () => {
                   "entry_schema": null,
                   "inputProperties": {
                     "sourceType": "HEAT",
-                    "vfModuleLabel": "ADIOD_vRE_BV",
+                    "vfModuleLabel": "PASQUALE_vRE_BV",
                     "paramName": "bandwidth_units"
                   },
-                  "fromInputName": "adiodvpe0_bandwidth_units",
+                  "fromInputName": "pasqualevpe0_bandwidth_units",
                   "constraints": null,
                   "required": true,
                   "default": "Gbps"
@@ -1239,10 +1228,10 @@ describe('Vnf Model Info', () => {
                   "entry_schema": null,
                   "inputProperties": {
                     "sourceType": "HEAT",
-                    "vfModuleLabel": "ADIOD_vRE_BV",
+                    "vfModuleLabel": "PASQUALE_vRE_BV",
                     "paramName": "bandwidth"
                   },
-                  "fromInputName": "adiodvpe0_bandwidth",
+                  "fromInputName": "pasqualevpe0_bandwidth",
                   "constraints": null,
                   "required": true,
                   "default": "10"
@@ -1253,10 +1242,10 @@ describe('Vnf Model Info', () => {
                   "entry_schema": null,
                   "inputProperties": {
                     "sourceType": "HEAT",
-                    "vfModuleLabel": "ADIOD_vRE_BV",
+                    "vfModuleLabel": "PASQUALE_vRE_BV",
                     "paramName": "AIC_CLLI"
                   },
-                  "fromInputName": "2017488_adiodvpe0_AIC_CLLI",
+                  "fromInputName": "2017488_pasqualevpe0_AIC_CLLI",
                   "constraints": null,
                   "required": true,
                   "default": "ATLMY8GA"
@@ -1267,10 +1256,10 @@ describe('Vnf Model Info', () => {
                   "entry_schema": null,
                   "inputProperties": {
                     "sourceType": "HEAT",
-                    "vfModuleLabel": "ADIOD_vRE_BV",
+                    "vfModuleLabel": "PASQUALE_vRE_BV",
                     "paramName": "vnf_instance_name"
                   },
-                  "fromInputName": "2017488_adiodvpe0_vnf_instance_name",
+                  "fromInputName": "2017488_pasqualevpe0_vnf_instance_name",
                   "constraints": null,
                   "required": true,
                   "default": "mtnj309me6"
@@ -1278,37 +1267,37 @@ describe('Vnf Model Info', () => {
               },
               "volumeGroupAllowed": true
             },
-            "2017488_adiodvpe0..2017488AdiodVpe..ADIOD_base_vPE_BV..module-0": {
+            "2017488_pasqualevpe0..2017488PasqualeVpe..PASQUALE_base_vPE_BV..module-0": {
               "uuid": "f8360508-3f17-4414-a2ed-6bc71161e8db",
               "invariantUuid": "b34833bb-6aa9-4ad6-a831-70b06367a091",
               "customizationUuid": "a55961b2-2065-4ab0-a5b7-2fcee1c227e3",
               "description": null,
-              "name": "2017488AdiodVpe..ADIOD_base_vPE_BV..module-0",
+              "name": "2017488PasqualeVpe..PASQUALE_base_vPE_BV..module-0",
               "version": "5",
-              "modelCustomizationName": "2017488AdiodVpe..ADIOD_base_vPE_BV..module-0",
+              "modelCustomizationName": "2017488PasqualeVpe..PASQUALE_base_vPE_BV..module-0",
               "properties": {
                 "minCountInstances": 1,
                 "maxCountInstances": 1,
                 "initialCount": 1,
-                "vfModuleLabel": "ADIOD_base_vPE_BV",
+                "vfModuleLabel": "PASQUALE_base_vPE_BV",
                 "baseModule": true
               },
               "inputs": {},
               "volumeGroupAllowed": false
             },
-            "2017488_adiodvpe0..2017488AdiodVpe..ADIOD_vPFE_BV..module-2": {
+            "2017488_pasqualevpe0..2017488PasqualeVpe..PASQUALE_vPFE_BV..module-2": {
               "uuid": "0a0dd9d4-31d3-4c3a-ae89-a02f383e6a9a",
               "invariantUuid": "eff8cc59-53a1-4101-aed7-8cf24ecf8339",
               "customizationUuid": "3cd946bb-50e0-40d8-96d3-c9023520b557",
               "description": null,
-              "name": "2017488AdiodVpe..ADIOD_vPFE_BV..module-2",
+              "name": "2017488PasqualeVpe..PASQUALE_vPFE_BV..module-2",
               "version": "6",
-              "modelCustomizationName": "2017488AdiodVpe..ADIOD_vPFE_BV..module-2",
+              "modelCustomizationName": "2017488PasqualeVpe..PASQUALE_vPFE_BV..module-2",
               "properties": {
                 "minCountInstances": 0,
                 "maxCountInstances": null,
                 "initialCount": 0,
-                "vfModuleLabel": "ADIOD_vPFE_BV",
+                "vfModuleLabel": "PASQUALE_vPFE_BV",
                 "baseModule": false
               },
               "inputs": {},
@@ -1316,19 +1305,19 @@ describe('Vnf Model Info', () => {
             }
           },
           "volumeGroups": {
-            "2017488_adiodvpe0..2017488AdiodVpe..ADIOD_vRE_BV..module-1": {
+            "2017488_pasqualevpe0..2017488PasqualeVpe..PASQUALE_vRE_BV..module-1": {
               "uuid": "25284168-24bb-4698-8cb4-3f509146eca5",
               "invariantUuid": "7253ff5c-97f0-4b8b-937c-77aeb4d79aa1",
               "customizationUuid": "f7e7c365-60cf-49a9-9ebf-a1aa11b9d401",
               "description": null,
-              "name": "2017488AdiodVpe..ADIOD_vRE_BV..module-1",
+              "name": "2017488PasqualeVpe..PASQUALE_vRE_BV..module-1",
               "version": "6",
-              "modelCustomizationName": "2017488AdiodVpe..ADIOD_vRE_BV..module-1",
+              "modelCustomizationName": "2017488PasqualeVpe..PASQUALE_vRE_BV..module-1",
               "properties": {
                 "minCountInstances": 0,
                 "maxCountInstances": null,
                 "initialCount": 0,
-                "vfModuleLabel": "ADIOD_vRE_BV",
+                "vfModuleLabel": "PASQUALE_vRE_BV",
                 "baseModule": false
               },
               "inputs": {
@@ -1338,10 +1327,10 @@ describe('Vnf Model Info', () => {
                   "entry_schema": null,
                   "inputProperties": {
                     "sourceType": "HEAT",
-                    "vfModuleLabel": "ADIOD_vRE_BV",
+                    "vfModuleLabel": "PASQUALE_vRE_BV",
                     "paramName": "vnf_config_template_version"
                   },
-                  "fromInputName": "2017488_adiodvpe0_vnf_config_template_version",
+                  "fromInputName": "2017488_pasqualevpe0_vnf_config_template_version",
                   "constraints": null,
                   "required": true,
                   "default": "17.2"
@@ -1352,10 +1341,10 @@ describe('Vnf Model Info', () => {
                   "entry_schema": null,
                   "inputProperties": {
                     "sourceType": "HEAT",
-                    "vfModuleLabel": "ADIOD_vRE_BV",
+                    "vfModuleLabel": "PASQUALE_vRE_BV",
                     "paramName": "bandwidth_units"
                   },
-                  "fromInputName": "adiodvpe0_bandwidth_units",
+                  "fromInputName": "pasqualevpe0_bandwidth_units",
                   "constraints": null,
                   "required": true,
                   "default": "Gbps"
@@ -1366,10 +1355,10 @@ describe('Vnf Model Info', () => {
                   "entry_schema": null,
                   "inputProperties": {
                     "sourceType": "HEAT",
-                    "vfModuleLabel": "ADIOD_vRE_BV",
+                    "vfModuleLabel": "PASQUALE_vRE_BV",
                     "paramName": "bandwidth"
                   },
-                  "fromInputName": "adiodvpe0_bandwidth",
+                  "fromInputName": "pasqualevpe0_bandwidth",
                   "constraints": null,
                   "required": true,
                   "default": "10"
@@ -1380,10 +1369,10 @@ describe('Vnf Model Info', () => {
                   "entry_schema": null,
                   "inputProperties": {
                     "sourceType": "HEAT",
-                    "vfModuleLabel": "ADIOD_vRE_BV",
+                    "vfModuleLabel": "PASQUALE_vRE_BV",
                     "paramName": "AIC_CLLI"
                   },
-                  "fromInputName": "2017488_adiodvpe0_AIC_CLLI",
+                  "fromInputName": "2017488_pasqualevpe0_AIC_CLLI",
                   "constraints": null,
                   "required": true,
                   "default": "ATLMY8GA"
@@ -1394,29 +1383,29 @@ describe('Vnf Model Info', () => {
                   "entry_schema": null,
                   "inputProperties": {
                     "sourceType": "HEAT",
-                    "vfModuleLabel": "ADIOD_vRE_BV",
+                    "vfModuleLabel": "PASQUALE_vRE_BV",
                     "paramName": "vnf_instance_name"
                   },
-                  "fromInputName": "2017488_adiodvpe0_vnf_instance_name",
+                  "fromInputName": "2017488_pasqualevpe0_vnf_instance_name",
                   "constraints": null,
                   "required": true,
                   "default": "mtnj309me6"
                 }
               }
             },
-            "2017488_adiodvpe0..2017488AdiodVpe..ADIOD_vPFE_BV..module-2": {
+            "2017488_pasqualevpe0..2017488PasqualeVpe..PASQUALE_vPFE_BV..module-2": {
               "uuid": "0a0dd9d4-31d3-4c3a-ae89-a02f383e6a9a",
               "invariantUuid": "eff8cc59-53a1-4101-aed7-8cf24ecf8339",
               "customizationUuid": "3cd946bb-50e0-40d8-96d3-c9023520b557",
               "description": null,
-              "name": "2017488AdiodVpe..ADIOD_vPFE_BV..module-2",
+              "name": "2017488PasqualeVpe..PASQUALE_vPFE_BV..module-2",
               "version": "6",
-              "modelCustomizationName": "2017488AdiodVpe..ADIOD_vPFE_BV..module-2",
+              "modelCustomizationName": "2017488PasqualeVpe..PASQUALE_vPFE_BV..module-2",
               "properties": {
                 "minCountInstances": 0,
                 "maxCountInstances": null,
                 "initialCount": 0,
-                "vfModuleLabel": "ADIOD_vPFE_BV",
+                "vfModuleLabel": "PASQUALE_vPFE_BV",
                 "baseModule": false
               },
               "inputs": {}
@@ -1426,24 +1415,24 @@ describe('Vnf Model Info', () => {
         }
       },
       "networks": {},
-      "collectionResource": {},
+      "collectionResources": {},
       "configurations": {},
       "fabricConfigurations": {},
       "serviceProxies": {},
       "vfModules": {
-        "2017488_adiodvpe0..2017488AdiodVpe..ADIOD_vRE_BV..module-1": {
+        "2017488_pasqualevpe0..2017488PasqualeVpe..PASQUALE_vRE_BV..module-1": {
           "uuid": "25284168-24bb-4698-8cb4-3f509146eca5",
           "invariantUuid": "7253ff5c-97f0-4b8b-937c-77aeb4d79aa1",
           "customizationUuid": "f7e7c365-60cf-49a9-9ebf-a1aa11b9d401",
           "description": null,
-          "name": "2017488AdiodVpe..ADIOD_vRE_BV..module-1",
+          "name": "2017488PasqualeVpe..PASQUALE_vRE_BV..module-1",
           "version": "6",
-          "modelCustomizationName": "2017488AdiodVpe..ADIOD_vRE_BV..module-1",
+          "modelCustomizationName": "2017488PasqualeVpe..PASQUALE_vRE_BV..module-1",
           "properties": {
             "minCountInstances": 0,
             "maxCountInstances": null,
             "initialCount": 0,
-            "vfModuleLabel": "ADIOD_vRE_BV",
+            "vfModuleLabel": "PASQUALE_vRE_BV",
             "baseModule": false
           },
           "inputs": {
@@ -1453,10 +1442,10 @@ describe('Vnf Model Info', () => {
               "entry_schema": null,
               "inputProperties": {
                 "sourceType": "HEAT",
-                "vfModuleLabel": "ADIOD_vRE_BV",
+                "vfModuleLabel": "PASQUALE_vRE_BV",
                 "paramName": "vnf_config_template_version"
               },
-              "fromInputName": "2017488_adiodvpe0_vnf_config_template_version",
+              "fromInputName": "2017488_pasqualevpe0_vnf_config_template_version",
               "constraints": null,
               "required": true,
               "default": "17.2"
@@ -1467,10 +1456,10 @@ describe('Vnf Model Info', () => {
               "entry_schema": null,
               "inputProperties": {
                 "sourceType": "HEAT",
-                "vfModuleLabel": "ADIOD_vRE_BV",
+                "vfModuleLabel": "PASQUALE_vRE_BV",
                 "paramName": "bandwidth_units"
               },
-              "fromInputName": "adiodvpe0_bandwidth_units",
+              "fromInputName": "pasqualevpe0_bandwidth_units",
               "constraints": null,
               "required": true,
               "default": "Gbps"
@@ -1481,10 +1470,10 @@ describe('Vnf Model Info', () => {
               "entry_schema": null,
               "inputProperties": {
                 "sourceType": "HEAT",
-                "vfModuleLabel": "ADIOD_vRE_BV",
+                "vfModuleLabel": "PASQUALE_vRE_BV",
                 "paramName": "bandwidth"
               },
-              "fromInputName": "adiodvpe0_bandwidth",
+              "fromInputName": "pasqualevpe0_bandwidth",
               "constraints": null,
               "required": true,
               "default": "10"
@@ -1495,10 +1484,10 @@ describe('Vnf Model Info', () => {
               "entry_schema": null,
               "inputProperties": {
                 "sourceType": "HEAT",
-                "vfModuleLabel": "ADIOD_vRE_BV",
+                "vfModuleLabel": "PASQUALE_vRE_BV",
                 "paramName": "AIC_CLLI"
               },
-              "fromInputName": "2017488_adiodvpe0_AIC_CLLI",
+              "fromInputName": "2017488_pasqualevpe0_AIC_CLLI",
               "constraints": null,
               "required": true,
               "default": "ATLMY8GA"
@@ -1509,10 +1498,10 @@ describe('Vnf Model Info', () => {
               "entry_schema": null,
               "inputProperties": {
                 "sourceType": "HEAT",
-                "vfModuleLabel": "ADIOD_vRE_BV",
+                "vfModuleLabel": "PASQUALE_vRE_BV",
                 "paramName": "vnf_instance_name"
               },
-              "fromInputName": "2017488_adiodvpe0_vnf_instance_name",
+              "fromInputName": "2017488_pasqualevpe0_vnf_instance_name",
               "constraints": null,
               "required": true,
               "default": "mtnj309me6"
@@ -1520,37 +1509,37 @@ describe('Vnf Model Info', () => {
           },
           "volumeGroupAllowed": true
         },
-        "2017488_adiodvpe0..2017488AdiodVpe..ADIOD_base_vPE_BV..module-0": {
+        "2017488_pasqualevpe0..2017488PasqualeVpe..PASQUALE_base_vPE_BV..module-0": {
           "uuid": "f8360508-3f17-4414-a2ed-6bc71161e8db",
           "invariantUuid": "b34833bb-6aa9-4ad6-a831-70b06367a091",
           "customizationUuid": "a55961b2-2065-4ab0-a5b7-2fcee1c227e3",
           "description": null,
-          "name": "2017488AdiodVpe..ADIOD_base_vPE_BV..module-0",
+          "name": "2017488PasqualeVpe..PASQUALE_base_vPE_BV..module-0",
           "version": "5",
-          "modelCustomizationName": "2017488AdiodVpe..ADIOD_base_vPE_BV..module-0",
+          "modelCustomizationName": "2017488PasqualeVpe..PASQUALE_base_vPE_BV..module-0",
           "properties": {
             "minCountInstances": 1,
             "maxCountInstances": 1,
             "initialCount": 1,
-            "vfModuleLabel": "ADIOD_base_vPE_BV",
+            "vfModuleLabel": "PASQUALE_base_vPE_BV",
             "baseModule": true
           },
           "inputs": {},
           "volumeGroupAllowed": false
         },
-        "2017488_adiodvpe0..2017488AdiodVpe..ADIOD_vPFE_BV..module-2": {
+        "2017488_pasqualevpe0..2017488PasqualeVpe..PASQUALE_vPFE_BV..module-2": {
           "uuid": "0a0dd9d4-31d3-4c3a-ae89-a02f383e6a9a",
           "invariantUuid": "eff8cc59-53a1-4101-aed7-8cf24ecf8339",
           "customizationUuid": "3cd946bb-50e0-40d8-96d3-c9023520b557",
           "description": null,
-          "name": "2017488AdiodVpe..ADIOD_vPFE_BV..module-2",
+          "name": "2017488PasqualeVpe..PASQUALE_vPFE_BV..module-2",
           "version": "6",
-          "modelCustomizationName": "2017488AdiodVpe..ADIOD_vPFE_BV..module-2",
+          "modelCustomizationName": "2017488PasqualeVpe..PASQUALE_vPFE_BV..module-2",
           "properties": {
             "minCountInstances": 0,
             "maxCountInstances": null,
             "initialCount": 0,
-            "vfModuleLabel": "ADIOD_vPFE_BV",
+            "vfModuleLabel": "PASQUALE_vPFE_BV",
             "baseModule": false
           },
           "inputs": {},
@@ -1558,19 +1547,19 @@ describe('Vnf Model Info', () => {
         }
       },
       "volumeGroups": {
-        "2017488_adiodvpe0..2017488AdiodVpe..ADIOD_vRE_BV..module-1": {
+        "2017488_pasqualevpe0..2017488PasqualeVpe..PASQUALE_vRE_BV..module-1": {
           "uuid": "25284168-24bb-4698-8cb4-3f509146eca5",
           "invariantUuid": "7253ff5c-97f0-4b8b-937c-77aeb4d79aa1",
           "customizationUuid": "f7e7c365-60cf-49a9-9ebf-a1aa11b9d401",
           "description": null,
-          "name": "2017488AdiodVpe..ADIOD_vRE_BV..module-1",
+          "name": "2017488PasqualeVpe..PASQUALE_vRE_BV..module-1",
           "version": "6",
-          "modelCustomizationName": "2017488AdiodVpe..ADIOD_vRE_BV..module-1",
+          "modelCustomizationName": "2017488PasqualeVpe..PASQUALE_vRE_BV..module-1",
           "properties": {
             "minCountInstances": 0,
             "maxCountInstances": null,
             "initialCount": 0,
-            "vfModuleLabel": "ADIOD_vRE_BV",
+            "vfModuleLabel": "PASQUALE_vRE_BV",
             "baseModule": false
           },
           "inputs": {
@@ -1580,10 +1569,10 @@ describe('Vnf Model Info', () => {
               "entry_schema": null,
               "inputProperties": {
                 "sourceType": "HEAT",
-                "vfModuleLabel": "ADIOD_vRE_BV",
+                "vfModuleLabel": "PASQUALE_vRE_BV",
                 "paramName": "vnf_config_template_version"
               },
-              "fromInputName": "2017488_adiodvpe0_vnf_config_template_version",
+              "fromInputName": "2017488_pasqualevpe0_vnf_config_template_version",
               "constraints": null,
               "required": true,
               "default": "17.2"
@@ -1594,10 +1583,10 @@ describe('Vnf Model Info', () => {
               "entry_schema": null,
               "inputProperties": {
                 "sourceType": "HEAT",
-                "vfModuleLabel": "ADIOD_vRE_BV",
+                "vfModuleLabel": "PASQUALE_vRE_BV",
                 "paramName": "bandwidth_units"
               },
-              "fromInputName": "adiodvpe0_bandwidth_units",
+              "fromInputName": "pasqualevpe0_bandwidth_units",
               "constraints": null,
               "required": true,
               "default": "Gbps"
@@ -1608,10 +1597,10 @@ describe('Vnf Model Info', () => {
               "entry_schema": null,
               "inputProperties": {
                 "sourceType": "HEAT",
-                "vfModuleLabel": "ADIOD_vRE_BV",
+                "vfModuleLabel": "PASQUALE_vRE_BV",
                 "paramName": "bandwidth"
               },
-              "fromInputName": "adiodvpe0_bandwidth",
+              "fromInputName": "pasqualevpe0_bandwidth",
               "constraints": null,
               "required": true,
               "default": "10"
@@ -1622,10 +1611,10 @@ describe('Vnf Model Info', () => {
               "entry_schema": null,
               "inputProperties": {
                 "sourceType": "HEAT",
-                "vfModuleLabel": "ADIOD_vRE_BV",
+                "vfModuleLabel": "PASQUALE_vRE_BV",
                 "paramName": "AIC_CLLI"
               },
-              "fromInputName": "2017488_adiodvpe0_AIC_CLLI",
+              "fromInputName": "2017488_pasqualevpe0_AIC_CLLI",
               "constraints": null,
               "required": true,
               "default": "ATLMY8GA"
@@ -1636,29 +1625,29 @@ describe('Vnf Model Info', () => {
               "entry_schema": null,
               "inputProperties": {
                 "sourceType": "HEAT",
-                "vfModuleLabel": "ADIOD_vRE_BV",
+                "vfModuleLabel": "PASQUALE_vRE_BV",
                 "paramName": "vnf_instance_name"
               },
-              "fromInputName": "2017488_adiodvpe0_vnf_instance_name",
+              "fromInputName": "2017488_pasqualevpe0_vnf_instance_name",
               "constraints": null,
               "required": true,
               "default": "mtnj309me6"
             }
           }
         },
-        "2017488_adiodvpe0..2017488AdiodVpe..ADIOD_vPFE_BV..module-2": {
+        "2017488_pasqualevpe0..2017488PasqualeVpe..PASQUALE_vPFE_BV..module-2": {
           "uuid": "0a0dd9d4-31d3-4c3a-ae89-a02f383e6a9a",
           "invariantUuid": "eff8cc59-53a1-4101-aed7-8cf24ecf8339",
           "customizationUuid": "3cd946bb-50e0-40d8-96d3-c9023520b557",
           "description": null,
-          "name": "2017488AdiodVpe..ADIOD_vPFE_BV..module-2",
+          "name": "2017488PasqualeVpe..PASQUALE_vPFE_BV..module-2",
           "version": "6",
-          "modelCustomizationName": "2017488AdiodVpe..ADIOD_vPFE_BV..module-2",
+          "modelCustomizationName": "2017488PasqualeVpe..PASQUALE_vPFE_BV..module-2",
           "properties": {
             "minCountInstances": 0,
             "maxCountInstances": null,
             "initialCount": 0,
-            "vfModuleLabel": "ADIOD_vPFE_BV",
+            "vfModuleLabel": "PASQUALE_vPFE_BV",
             "baseModule": false
           },
           "inputs": {}
index cec3fad..2bdeda0 100644 (file)
@@ -33,7 +33,7 @@ import {
 } from "../../../../../shared/storeUtil/utils/vnf/vnf.actions";
 import * as _ from 'lodash';
 import {IModalConfig} from "onap-ui-angular/dist/modals/models/modal-config";
-import {ComponentInfoModel, ComponentInfoType} from "../../../component-info/component-info-model";
+import {ComponentInfoType} from "../../../component-info/component-info-model";
 import {ComponentInfoService} from "../../../component-info/component-info.service";
 import {ModelInformationItem} from "../../../../../shared/components/model-information/model-information.component";
 
@@ -53,9 +53,9 @@ export class VnfModelInfo implements ILevelNodeInfo {
 
   name: string = 'vnfs';
   type: string = 'VNF';
-  childName: string = 'vfModules';
-  childType: string = 'VFModuleModelInfo';
+  childNames: string[] = ['vfModules'];
   typeName: string = 'VNF';
+  componentInfoType = ComponentInfoType.VNF;
 
   /***********************************************************
    * return if user should provide instance name or not.
@@ -215,11 +215,9 @@ export class VnfModelInfo implements ILevelNodeInfo {
       },
       duplicate: {
         method: (node, serviceModelId) => {
-          if (this._store.getState().global.flags['FLAG_DUPLICATE_VNF']) {
-            const storeKey = node.data.vnfStoreKey;
-            let modalConfig: IModalConfig = this._duplicateService.openDuplicateModal(serviceModelId, node.data.modelUniqueId, node.data.modelName, storeKey, 1, this._store, node);
-            this.modalService.openCustomModal(modalConfig, DuplicateVnfComponent);
-          }
+          const storeKey = node.data.vnfStoreKey;
+          let modalConfig: IModalConfig = this._duplicateService.openDuplicateModal(serviceModelId, node.data.modelUniqueId, node.data.modelName, storeKey, 1, this._store, node);
+          this.modalService.openCustomModal(modalConfig, DuplicateVnfComponent);
         },
         visible: (node) => this._sharedTreeService.shouldShowDuplicate(node) && !_.isNil(node.data) && !_.isNil(node.data.action) && node.data.action === ServiceInstanceActions.Create && this._duplicateService.canDuplicate(node),
         enable: (node, serviceModelId) => this._duplicateService.isEnabled(node, this._store, serviceModelId)
@@ -306,27 +304,18 @@ export class VnfModelInfo implements ILevelNodeInfo {
     return !_.isNil(instance) ? instance.position : null;
   }
 
-  /***********************************************************
-   * When user is click on some nod element
-   * @param node - current ITrees node
-   ************************************************************/
-  onSelectedNode(node: ITreeNode): void {
-    ComponentInfoService.triggerComponentInfoChange.next(new ComponentInfoModel(ComponentInfoType.VNF,[], []));
-  }
+  getInfo(model, instance): ModelInformationItem[] {
+    const modelInformation = !_.isEmpty(model) ? [
+      ModelInformationItem.createInstance("Min instances",  !_.isNull(model.min)? String(model.min): null),
+      ModelInformationItem.createInstance("Max instances",  !_.isNull(model.max)? String(model.max): null)
+    ] : [];
 
-  getInfoForVnf(model, instance): ComponentInfoModel {
-    let modelInfoItems: ModelInformationItem[] = [];
-    if (model) {
-      modelInfoItems.push(ModelInformationItem.createInstance("Min Instances",  model.min));
-      modelInfoItems.push(ModelInformationItem.createInstance("Max Instances",  model.max));
-    }
-    if (instance) {
-      modelInfoItems.push(ModelInformationItem.createInstance("NF Type", instance.nfType));
-      modelInfoItems.push(ModelInformationItem.createInstance("NF Role",  instance.nfRole));
-    }
-    return this._componentInfoService.addGeneralInfoItems(modelInfoItems, ComponentInfoType.VNF, model, instance);
+    const instanceInfo = !_.isEmpty(instance) ? [
+      ModelInformationItem.createInstance("NF type", instance.nfType),
+      ModelInformationItem.createInstance("NF role", instance.nfRole)
+    ] : [];
 
+    const result = [modelInformation, instanceInfo];
+    return _.uniq(_.flatten(result));
   }
-
-
 }
index 532a8fe..802047c 100644 (file)
@@ -1,5 +1,4 @@
-
-import {HttpClientTestingModule, HttpTestingController} from "@angular/common/http/testing";
+import {HttpClientTestingModule} from "@angular/common/http/testing";
 import {getTestBed, TestBed} from "@angular/core/testing";
 import {MockNgRedux, NgReduxTestingModule} from "@angular-redux/store/testing";
 import {VnfGroupingModelInfo} from "./vnfGrouping.model.info";
@@ -10,9 +9,11 @@ import {DialogService} from "ng2-bootstrap-modal";
 import {AvailableNodeIcons} from "../../../available-models-tree/available-models-tree.service";
 import {VnfGroupModel} from "../../../../../shared/models/vnfGroupModel";
 import {IframeService} from "../../../../../shared/utils/iframe.service";
-import {ActivatedRoute} from "@angular/router";
 import {RouterTestingModule} from "@angular/router/testing";
 import {DrawingBoardModes} from "../../../drawing-board.modes";
+import {AaiService} from "../../../../../shared/services/aaiService/aai.service";
+import {FeatureFlagsService} from "../../../../../shared/services/featureFlag/feature-flags.service";
+import {ITableContent} from "../../../../../shared/components/searchMembersModal/members-table/element-table-row.model";
 
 describe('VnfGroupingModelInfo Model Info', () => {
   let injector;
@@ -22,6 +23,7 @@ describe('VnfGroupingModelInfo Model Info', () => {
   let _sharedTreeService : SharedTreeService;
   let _iframeService : IframeService;
   let vnfGroupModel: VnfGroupingModelInfo;
+  let _aaiService : AaiService;
   beforeAll(done => (async () => {
     TestBed.configureTestingModule({
       imports: [HttpClientTestingModule, NgReduxTestingModule, RouterTestingModule],
@@ -31,13 +33,16 @@ describe('VnfGroupingModelInfo Model Info', () => {
         DynamicInputsService,
         SharedTreeService,
         IframeService,
+        AaiService,
+        FeatureFlagsService,
         MockNgRedux]
     });
     await TestBed.compileComponents();
     injector = getTestBed();
     _sharedTreeService = injector.get(SharedTreeService);
+    _aaiService = injector.get(AaiService);
 
-    vnfGroupModel =  new VnfGroupingModelInfo(_dynamicInputsService, _sharedTreeService, _dialogService, _vnfGroupPopupService, _iframeService,  MockNgRedux.getInstance());
+    vnfGroupModel =  new VnfGroupingModelInfo(_dynamicInputsService, _sharedTreeService, _dialogService, _vnfGroupPopupService, _iframeService,  _aaiService, MockNgRedux.getInstance());
   })().then(done).catch(done.fail));
 
 
@@ -59,7 +64,6 @@ describe('VnfGroupingModelInfo Model Info', () => {
     expect(isEcompGeneratedNaming).toBeTruthy();
   });
 
-
   test('getTooltip should return "vnfGrouping"', () => {
     let tooltip: string = vnfGroupModel.getTooltip();
     expect(tooltip).toEqual('VnfGroup');
@@ -75,7 +79,6 @@ describe('VnfGroupingModelInfo Model Info', () => {
     expect(nextLevel).not.toBeNull();
   });
 
-
   test('showNodeIcons should return true if not reachLimit of max', ()=>{
     let serviceId : string = 'servicedId';
     let node = {
@@ -199,6 +202,70 @@ describe('VnfGroupingModelInfo Model Info', () => {
     expect(result['showAuditInfo']['method']).toHaveBeenCalledWith(node, serviceModelId);
   });
 
+
+  test('generateRelatedMemberTableContent', ()=> {
+    const tableContents: ITableContent[] = vnfGroupModel.generateRelatedMemberTableContent();
+    expect(tableContents).toEqual([
+      {
+        id: 'vnfName',
+        contents: [{
+          id: ['instanceName'],
+          value: ['instanceName']
+        }, {
+          id: ['instanceId'],
+          value: ["instanceId"],
+          prefix: 'UUID: '
+        }]
+      },
+      {
+        id: 'version',
+        contents: [{
+          id: ['modelInfo', 'modelVersion'],
+          value: ['modelInfo', 'modelVersion']
+        }]
+      },
+      {
+        id: 'modelName',
+        contents: [{
+          id: ['modelInfo', 'modelName'],
+          value: ['modelInfo', 'modelName']
+        }]
+      },
+      {
+        id: 'provStatus',
+        contents: [{
+          id: ['provStatus'],
+          value: ['provStatus']
+        }]
+      },
+      {
+        id: 'serviceInstance',
+        contents: [{
+          id: ['serviceInstanceName'],
+          value: ['serviceInstanceName']
+        }, {
+          id: ['serviceInstanceId'],
+          value: ["serviceInstanceId"],
+          prefix: 'UUID: '
+        }]
+      },
+      {
+        id: 'cloudRegion',
+        contents: [{
+          id: ['lcpCloudRegionId'],
+          value: ['lcpCloudRegionId']
+        }]
+      },
+      {
+        id: 'tenantName',
+        contents: [{
+          id: ['tenantName'],
+          value: ['tenantName']
+        }]
+      }
+    ]);
+  });
+
   function getServiceHierarchy(){
     return {
       "service": {
@@ -214,7 +281,7 @@ describe('VnfGroupingModelInfo Model Info', () => {
         "serviceEcompNaming": "false",
         "instantiationType": "Macro",
         "inputs": {
-          "2017488_adiodvpe0_ASN": {
+          "2017488_pasqualevpe0_ASN": {
             "type": "string",
             "description": "AV/PE",
             "entry_schema": null,
@@ -245,11 +312,11 @@ describe('VnfGroupingModelInfo Model Info', () => {
             "type": "LOAD-GROUP"
           },
           "members": {
-            "vdbe_svc_vprs_proxy 0": {
+            "vdorothea_svc_vprs_proxy 0": {
               "uuid": "65fadfa8-a0d9-443f-95ad-836cd044e26c",
               "invariantUuid": "f4baae0c-b3a5-4ca1-a777-afbffe7010bc",
-              "description": "A Proxy for Service vDBE_Svc_vPRS",
-              "name": "vDBE_Svc_vPRS Service Proxy",
+              "description": "A Proxy for Service vDOROTHEA_Svc_vPRS",
+              "name": "vDOROTHEA_Svc_vPRS Service Proxy",
               "version": "1.0",
               "customizationUuid": "bdb63d23-e132-4ce7-af2c-a493b4cafac9",
               "inputs": {},
@@ -258,12 +325,12 @@ describe('VnfGroupingModelInfo Model Info', () => {
               "type": "Service Proxy",
               "sourceModelUuid": "da7827a2-366d-4be6-8c68-a69153c61274",
               "sourceModelInvariant": "24632e6b-584b-4f45-80d4-fefd75fd9f14",
-              "sourceModelName": "vDBE_Svc_vPRS"
+              "sourceModelName": "vDOROTHEA_Svc_vPRS"
             },
-            "vdbe_svc_vprs_proxy 1": {
+            "vdorothea_svc_vprs_proxy 1": {
               "uuid": "111dfa8-a0d9-443f-95ad-836cd044e26c",
               "invariantUuid": "111ae0c-b3a5-4ca1-a777-afbffe7010bc",
-              "description": "A Proxy for Service vDBE_Svc_vPRS",
+              "description": "A Proxy for Service vDOROTHEA_Svc_vPRS",
               "name": "111_Svc_vPRS Service Proxy",
               "version": "1.0",
               "customizationUuid": "1113d23-e132-4ce7-af2c-a493b4cafac9",
@@ -279,7 +346,7 @@ describe('VnfGroupingModelInfo Model Info', () => {
         }
       },
       "networks": {},
-      "collectionResource": {},
+      "collectionResources": {},
       "configurations": {},
       "fabricConfigurations": {},
       "serviceProxies": {},
@@ -288,4 +355,67 @@ describe('VnfGroupingModelInfo Model Info', () => {
       "pnfs": {}
     }
   }
+
+  function loadMockMembers(): any[] {
+    return [
+      {
+        "action": "None",
+        "instanceName": "VNF1_INSTANCE_NAME",
+        "instanceId": "VNF1_INSTANCE_ID",
+        "orchStatus": null,
+        "productFamilyId": null,
+        "lcpCloudRegionId": "hvf23b",
+        "tenantId": "3e9a20a3e89e45f884e09df0cc2d2d2a",
+        "tenantName": "APPC-24595-T-IST-02C",
+        "modelInfo": {
+          "modelInvariantId": "vnf-instance-model-invariant-id",
+          "modelVersionId": "7a6ee536-f052-46fa-aa7e-2fca9d674c44",
+          "modelVersion": "2.0",
+          "modelName": "vf_vEPDG",
+          "modelType": "vnf"
+        },
+        "instanceType": "VNF1_INSTANCE_TYPE",
+        "provStatus": null,
+        "inMaint": false,
+        "uuid": "7a6ee536-f052-46fa-aa7e-2fca9d674c44",
+        "originalName": null,
+        "legacyRegion": null,
+        "lineOfBusiness": null,
+        "platformName": null,
+        "trackById": "7a6ee536-f052-46fa-aa7e-2fca9d674c44:002",
+        "serviceInstanceId": "service-instance-id1",
+        "serviceInstanceName": "service-instance-name"
+      },
+      {
+        "action": "None",
+        "instanceName": "VNF2_INSTANCE_NAME",
+        "instanceId": "VNF2_INSTANCE_ID",
+        "orchStatus": null,
+        "productFamilyId": null,
+        "lcpCloudRegionId": "hvf23b",
+        "tenantId": "3e9a20a3e89e45f884e09df0cc2d2d2a",
+        "tenantName": "APPC-24595-T-IST-02C",
+        "modelInfo": {
+          "modelInvariantId": "vnf-instance-model-invariant-id",
+          "modelVersionId": "eb5f56bf-5855-4e61-bd00-3e19a953bf02",
+          "modelVersion": "1.0",
+          "modelName": "vf_vEPDG",
+          "modelType": "vnf"
+        },
+        "instanceType": "VNF2_INSTANCE_TYPE",
+        "provStatus": null,
+        "inMaint": true,
+        "uuid": "eb5f56bf-5855-4e61-bd00-3e19a953bf02",
+        "originalName": null,
+        "legacyRegion": null,
+        "lineOfBusiness": null,
+        "platformName": null,
+        "trackById": "eb5f56bf-5855-4e61-bd00-3e19a953bf02:003",
+        "serviceInstanceId": "service-instance-id2",
+        "serviceInstanceName": "service-instance-name"
+      }
+    ];
+  }
+
+
 });
index 7f2052a..148ce22 100644 (file)
@@ -20,10 +20,21 @@ import {
   undoDeleteActionVnfGroupInstance
 } from "../../../../../shared/storeUtil/utils/vnfGroup/vnfGroup.actions";
 import {RelatedVnfMemberInfoModel} from "../relatedVnfMember/relatedVnfMember.info.model";
-import {SearchMembersModalComponent} from "../../../../../shared/components/searchMembersModal/search-members-modal.component";
+import {SearchElementsModalComponent} from "../../../../../shared/components/searchMembersModal/search-elements-modal.component";
 import * as _ from "lodash";
 import {MessageBoxData} from "../../../../../shared/components/messageBox/messageBox.data";
 import {MessageBoxService} from "../../../../../shared/components/messageBox/messageBox.service";
+import {ComponentInfoType} from "../../../component-info/component-info-model";
+import {ModelInformationItem} from "../../../../../shared/components/model-information/model-information.component";
+import {Level1Instance} from "../../../../../shared/models/level1Instance";
+import {AaiService} from "../../../../../shared/services/aaiService/aai.service";
+import {Observable} from "rxjs";
+import {createRelatedVnfMemberInstance} from "../../../../../shared/storeUtil/utils/relatedVnfMember/relatedVnfMember.actions";
+import {
+  ITableContent,
+  SearchFieldItemType
+} from "../../../../../shared/components/searchMembersModal/members-table/element-table-row.model";
+import {CustomTableColumnDefinition} from "../../../../../shared/components/searchMembersModal/members-table/elements-table.component";
 
 export class VnfGroupingModelInfo implements ILevelNodeInfo {
   constructor(private _dynamicInputsService: DynamicInputsService,
@@ -31,15 +42,16 @@ export class VnfGroupingModelInfo implements ILevelNodeInfo {
               private _dialogService: DialogService,
               private _vnfGroupPopupService: VnfGroupPopupService,
               private _iframeService: IframeService,
+              private _aaiService: AaiService,
               private _store: NgRedux<AppState>) {
   }
 
   name: string = 'vnfGroups';
   type: string = 'VnfGroup';
   typeName: string = 'G';
-  childType: string = 'RelatedVnfMemberInfoModel';
-  childName: string = 'vnfs';
-  limitMembers : number;
+  childNames: string[] = ['vnfs'];
+  componentInfoType = ComponentInfoType.VNFGROUP;
+  limitMembers: number;
 
   /***********************************************************
    * return if user should provide instance name or not.
@@ -78,7 +90,7 @@ export class VnfGroupingModelInfo implements ILevelNodeInfo {
     node.typeName = this.typeName;
     node.menuActions = this.getMenuAction(<any>node, model.uuid);
     node.isFailed = _.isNil(instance.isFailed) ? false : instance.isFailed;
-    node.statusMessage = !_.isNil(instance.statusMessage) ? instance.statusMessage: "";
+    node.statusMessage = !_.isNil(instance.statusMessage) ? instance.statusMessage : "";
     node.limitMembers = (!_.isNil(model.properties.quantity)) ? model.properties.quantity : null;
     return node;
   }
@@ -182,29 +194,61 @@ export class VnfGroupingModelInfo implements ILevelNodeInfo {
         visible: (node) => this._sharedTreeService.shouldShowRemoveAndEdit(node),
         enable: (node) => this._sharedTreeService.shouldShowRemoveAndEdit(node)
       },
+
       addGroupMember: {
         method: (node, serviceModelId) => {
           let serviceHierarchy = this._store.getState().service.serviceHierarchy[serviceModelId];
           let serviceInstance = this._store.getState().service.serviceInstance[serviceModelId];
           let vnfGroupModel = new VnfGroupModel(serviceHierarchy['vnfGroups'][node.data.modelName]);
-          this._dialogService.addDialog(SearchMembersModalComponent, {
-              title: 'Add members to group',
-              description: 'Select VNF instances to associate',
-              subscriberId: serviceInstance.globalSubscriberId,
-              serviceType: serviceInstance.subscriptionServiceType,
-              vnfGroupModel: vnfGroupModel,
-              serviceModelId: serviceModelId,
-              node: node.data,
-              searchFields: [{
-                title: 'Service model name',
-                dataTestId: 'sourceModelName',
-                value: (Object.values(vnfGroupModel.members))[0].sourceModelName
-              },
-                {
-                  title: 'Service invariant UUID',
-                  dataTestId: 'sourceModelInvariant',
-                  value: (Object.values(vnfGroupModel.members))[0].sourceModelInvariant
-                }]
+          this._dialogService.addDialog(SearchElementsModalComponent, {
+              modalInformation: {
+                type: 'VNF',
+                serviceModelId : serviceModelId,
+                title: 'Add members to group',
+                description: 'Select VNF instances to associate',
+                noElementsMsg: 'No VNFs were found that can belong to this group.',
+                uniqObjectField: 'instanceId',
+                topButton: {
+                  text: 'SET MEMBERS',
+                  /********************************************************************************************************************************
+                   iterate over all current elements:
+
+                   1) if element is selected then update REDUX store
+                   2) if element is not selected then delete member
+
+                   @searchElementsModalComponent - all modal information (allElementsStatusMap, vnfGroupStoreKey, serviceId)
+                   ********************************************************************************************************************************/
+
+                  action: (searchElementsModalComponent) => {
+                    let tmpMembers = searchElementsModalComponent._membersTableService.allElementsStatusMap;
+                    for (let key in tmpMembers) {
+                      if (tmpMembers[key].isSelected) {
+                        this._store.dispatch(createRelatedVnfMemberInstance(node.data.vnfGroupStoreKey, serviceModelId, tmpMembers[key]));
+                      }
+                    }
+                    searchElementsModalComponent.closeDialog();
+                  }
+                },
+                getElements: (): Observable<Level1Instance[]> => {
+                  return this._aaiService.getOptionalGroupMembers(serviceModelId, serviceInstance.globalSubscriberId, serviceInstance.subscriptionServiceType, (Object.values(vnfGroupModel.members))[0].sourceModelInvariant, vnfGroupModel.properties.type, vnfGroupModel.properties.role).map((result) => {
+                    return this.filterUsedVnfMembers(serviceModelId, result);
+                  });
+                },
+                tableHeaders : this.getTableHeaders(),
+                tableContent: this.generateRelatedMemberTableContent(),
+                searchFields: [{
+                  title: 'Service model name',
+                  dataTestId: 'sourceModelName',
+                  value: (Object.values(vnfGroupModel.members))[0].sourceModelName,
+                  type: SearchFieldItemType.LABEL
+                },
+                  {
+                    title: 'Service invariant UUID',
+                    dataTestId: 'sourceModelInvariant',
+                    value: (Object.values(vnfGroupModel.members))[0].sourceModelInvariant,
+                    type: SearchFieldItemType.LABEL
+                  }]
+              }
             }
           );
         },
@@ -223,9 +267,9 @@ export class VnfGroupingModelInfo implements ILevelNodeInfo {
         method: (node, serviceModelId) => {
           if ((!_.isNil(node.data.children) && node.data.children.length === 0) || _.isNil(node.data.children)) {
             this._store.dispatch(deleteActionVnfGroupInstance(node.data.vnfGroupStoreKey, serviceModelId));
-          }else {
-            this._sharedTreeService.shouldShowDeleteInstanceWithChildrenModal(node, serviceModelId, (node, serviceModelId)=>{
-              this._sharedTreeService.removeDeleteAllChild(node, serviceModelId, (node, serviceModelId)=>{
+          } else {
+            this._sharedTreeService.shouldShowDeleteInstanceWithChildrenModal(node, serviceModelId, (node, serviceModelId) => {
+              this._sharedTreeService.removeDeleteAllChild(node, serviceModelId, (node, serviceModelId) => {
                 this._store.dispatch(deleteActionVnfGroupInstance(node.data.vnfGroupStoreKey, serviceModelId));
               });
             });
@@ -252,13 +296,101 @@ export class VnfGroupingModelInfo implements ILevelNodeInfo {
 
   }
 
+
+  generateRelatedMemberTableContent(): ITableContent[] {
+    return [
+      {
+        id: 'vnfName',
+        contents: [{
+          id: ['instanceName'],
+          value: ['instanceName']
+        }, {
+          id: ['instanceId'],
+          value: ["instanceId"],
+          prefix: 'UUID: '
+        }]
+      },
+      {
+        id: 'version',
+        contents: [{
+          id: ['modelInfo', 'modelVersion'],
+          value: ['modelInfo', 'modelVersion']
+        }]
+      },
+      {
+        id: 'modelName',
+        contents: [{
+          id: ['modelInfo', 'modelName'],
+          value: ['modelInfo', 'modelName']
+        }]
+      },
+      {
+        id: 'provStatus',
+        contents: [{
+          id: ['provStatus'],
+          value: ['provStatus']
+        }]
+      },
+      {
+        id: 'serviceInstance',
+        contents: [{
+          id: ['serviceInstanceName'],
+          value: ['serviceInstanceName']
+        }, {
+          id: ['serviceInstanceId'],
+          value: ["serviceInstanceId"],
+          prefix: 'UUID: '
+        }]
+      },
+      {
+        id: 'cloudRegion',
+        contents: [{
+          id: ['lcpCloudRegionId'],
+          value: ['lcpCloudRegionId']
+        }]
+      },
+      {
+        id: 'tenantName',
+        contents: [{
+          id: ['tenantName'],
+          value: ['tenantName']
+        }]
+      }
+    ];
+  }
+
+  getTableHeaders() : CustomTableColumnDefinition[]{
+    const type : string = 'VNF';
+    return  [
+      {displayName: `${type} instance name`, key: ['instanceName']},
+      {displayName: `${type} version`, key: ['modelInfo', 'modelVersion']},
+      {displayName: `${type} model name`, key: ['modelInfo', 'modelName']},
+      {displayName: 'Prov Status', key: ['provStatus']},
+      {displayName: 'Service instance name', key: ['serviceInstanceName']},
+      {displayName: 'Cloud Region', key: ['lcpCloudRegionId']},
+      {displayName: 'Tenant Name', key: ['tenantName']}
+    ];
+  }
+
+  filterUsedVnfMembers = (serviceModelId: string, result: Level1Instance[]): Level1Instance[] => {
+    const allMembersMap = _.keyBy(result as Level1Instance[], 'instanceId');
+    const vnfGroupsData = this._store.getState().service.serviceInstance[serviceModelId].vnfGroups;
+    const vnfMembersArr = _.flatMap(vnfGroupsData).map((vnfGroup) => vnfGroup.vnfs);
+    for (let vnf of vnfMembersArr) {
+      for (let member in vnf) {
+        delete allMembersMap[member];
+      }
+    }
+    return _.flatMap(allMembersMap);
+  };
+
   removeGroup(this, node, serviceModelId) {
     this._store.dispatch(removeInstance(node.data.modelName, serviceModelId, node.data.vnfGroupStoreKey, node));
     this._store.dispatch(changeInstanceCounter(node.data.modelUniqueId, serviceModelId, -1, node));
     this._sharedTreeService.selectedVNF = null;
   }
 
-  updatePosition(that , node, instanceId): void {
+  updatePosition(that, node, instanceId): void {
     // TODO
   }
 
@@ -266,7 +398,8 @@ export class VnfGroupingModelInfo implements ILevelNodeInfo {
     return !_.isNil(instance) ? instance.position : null;
   }
 
-  onSelectedNode(node: ITreeNode): void {
+  getInfo(model, instance): ModelInformationItem[] {
+    return [];
   }
 
 }
diff --git a/vid-webpack-master/src/app/drawingBoard/service-planning/objectsToTree/models/vpn/vpn.model.info.spec.ts b/vid-webpack-master/src/app/drawingBoard/service-planning/objectsToTree/models/vpn/vpn.model.info.spec.ts
new file mode 100644 (file)
index 0000000..9ccfaf7
--- /dev/null
@@ -0,0 +1,66 @@
+import {ComponentInfoService} from "../../../component-info/component-info.service";
+import {NgRedux} from "@angular-redux/store";
+import {AppState} from "../../../../../shared/store/reducers";
+import {getTestBed, TestBed} from "@angular/core/testing";
+import {HttpClientTestingModule} from "@angular/common/http/testing";
+import {MockNgRedux, NgReduxTestingModule} from "@angular-redux/store/testing";
+import {SharedTreeService} from "../../shared.tree.service";
+import {ComponentInfoType} from "../../../component-info/component-info-model";
+import {VpnModelInfo} from "./vpn.model.info";
+import {VrfModel} from "../../../../../shared/models/vrfModel";
+import {ModelInformationItem} from "../../../../../shared/components/model-information/model-information.component";
+import {Level1Instance} from "../../../../../shared/models/level1Instance";
+import * as _ from "lodash";
+import {VpnTreeNode} from "../../../../../shared/models/vpnTreeNode";
+import {Level1Model} from "../../../../../shared/models/nodeModel";
+
+describe('VPN Model Info', () => {
+
+  let injector;
+  let _store : NgRedux<AppState>;
+  let _sharedTreeService: SharedTreeService;
+  let vpnModel: VpnModelInfo;
+
+  beforeEach(() => {
+    TestBed.configureTestingModule({
+      imports: [HttpClientTestingModule, NgReduxTestingModule],
+      providers: [
+        SharedTreeService,
+        MockNgRedux
+       ]
+    }).compileComponents();
+    injector = getTestBed();
+    _sharedTreeService = injector.get(SharedTreeService);
+    _store = injector.get(NgRedux);
+    vpnModel = new VpnModelInfo(_store,_sharedTreeService);
+  });
+
+
+  test('vpnModel should be defined', () => {
+    expect(vpnModel).toBeDefined();
+  });
+
+  test('vpnModel should defined extra details', () => {
+    expect(vpnModel.name).toEqual('vpns');
+    expect(vpnModel.type).toEqual('VPN');
+    expect(vpnModel.childNames).toBeUndefined;
+    expect(vpnModel.componentInfoType).toEqual(ComponentInfoType.VPN);
+  });
+
+  test('Info for vpn should be correct', () => {
+    const model = null;
+    const instance = new VpnTreeNode(new Level1Instance(), new Level1Model(), "");
+    instance.region = "USA,EMEA";
+    instance.routeTargetId = "globalRouteTarget_1";
+    instance.routeTargetRole = "routeTargetRole_1";
+    instance.customerVPNId =  "VPN1260";
+    let actualVpnInfo = vpnModel.getInfo(model,instance);
+    const instanceInfo = [
+      ModelInformationItem.createInstance("Region", "USA,EMEA"),
+      ModelInformationItem.createInstance("Route target id", "globalRouteTarget_1"),
+      ModelInformationItem.createInstance("Route target role", "routeTargetRole_1"),
+      ModelInformationItem.createInstance("Customet VPN ID", "VPN1260")];
+    expect(actualVpnInfo).toEqual(instanceInfo);
+  });
+
+})
diff --git a/vid-webpack-master/src/app/drawingBoard/service-planning/objectsToTree/models/vpn/vpn.model.info.ts b/vid-webpack-master/src/app/drawingBoard/service-planning/objectsToTree/models/vpn/vpn.model.info.ts
new file mode 100644 (file)
index 0000000..b951162
--- /dev/null
@@ -0,0 +1,96 @@
+import {ILevelNodeInfo} from "../basic.model.info";
+import {ComponentInfoType} from "../../../component-info/component-info-model";
+import {ITreeNode} from "angular-tree-component/dist/defs/api";
+import {AvailableNodeIcons} from "../../../available-models-tree/available-models-tree.service";
+import {ModelInformationItem} from "../../../../../shared/components/model-information/model-information.component";
+import * as _ from "lodash";
+import {NgRedux} from "@angular-redux/store";
+import {AppState} from "../../../../../shared/store/reducers";
+import {SharedTreeService} from "../../shared.tree.service";
+import {NetworkInstance} from "../../../../../shared/models/networkInstance";
+import {Level1Model} from "../../../../../shared/models/nodeModel";
+import {VpnTreeNode} from "../../../../../shared/models/vpnTreeNode";
+
+export class VpnModelInfo implements ILevelNodeInfo {
+  constructor(private _store: NgRedux<AppState>,
+              private _sharedTreeService: SharedTreeService) {
+  }
+
+  name: string = 'vpns';
+  type: string = 'VPN';
+  typeName: string = 'VPN';
+
+  childNames: string[] = [];
+  componentInfoType = ComponentInfoType.VPN;
+
+  isEcompGeneratedNaming(currentModel): boolean {
+    return false;
+  }
+
+  updateDynamicInputsDataFromModel = (currentModel): any => [];
+
+  getModel = (modelId: string, instance: any, serviceHierarchy): any => {
+    return new Level1Model();
+  };
+
+
+  createInstanceTreeNode = (instance: NetworkInstance, model: any, parentModel, storeKey: string): VpnTreeNode => {
+    let node = new VpnTreeNode(instance, model, storeKey);
+    node.missingData = this.hasMissingData(instance, node, model.isEcompGeneratedNaming);
+    node = this._sharedTreeService.addingStatusProperty(node);
+    node.typeName = this.typeName;
+    node.menuActions = this.getMenuAction(<any>node, model.uuid);
+    node.isFailed = _.isNil(instance.isFailed) ? false : instance.isFailed;
+    node.statusMessage = !_.isNil(instance.statusMessage) ? instance.statusMessage : "";
+    node = this._sharedTreeService.addingStatusProperty(node);
+    return node;
+  };
+
+
+  getNextLevelObject = (): any => {
+    return null;
+  };
+
+  getTooltip = (): string => 'VPN';
+
+  getType = (): string => 'VPN';
+
+  hasMissingData(instance, dynamicInputs: any, isEcompGeneratedNaming: boolean): boolean {
+    return false;
+  }
+
+  onClickAdd(node, serviceModelId: string): void {
+
+  }
+
+  getNodeCount(node: ITreeNode, serviceModelId: string): number {
+    return 0;
+  }
+
+  showNodeIcons(node: ITreeNode, serviceModelId: string): AvailableNodeIcons {
+    return null;
+  }
+
+  getMenuAction(node: ITreeNode, serviceModelId: string): { [methodName: string]: { method: Function, visible: Function, enable: Function } } {
+    return {};
+  }
+
+  updatePosition(that, node, instanceId): void {
+  }
+
+  getNodePosition(instance): number {
+    return 0;
+  }
+
+  getInfo(model, instance): ModelInformationItem[] {
+    const modelInformation = [];
+    const instanceInfo = !_.isEmpty(instance) ? [
+      ModelInformationItem.createInstance("Region", instance.region),
+      ModelInformationItem.createInstance("Route target id", !_.isNull(instance.routeTargetId) ? instance.routeTargetId : null),
+      ModelInformationItem.createInstance("Route target role", !_.isNull(instance.routeTargetRole) ? instance.routeTargetRole : null),
+      ModelInformationItem.createInstance("Customet VPN ID", !_.isNull(instance.customerVPNId) ? instance.customerVPNId : null)] : [];
+    const result = [modelInformation, instanceInfo];
+    return _.uniq(_.flatten(result));
+  }
+}
+
diff --git a/vid-webpack-master/src/app/drawingBoard/service-planning/objectsToTree/models/vrf/vrf.model.info.spec.ts b/vid-webpack-master/src/app/drawingBoard/service-planning/objectsToTree/models/vrf/vrf.model.info.spec.ts
new file mode 100644 (file)
index 0000000..07d4cee
--- /dev/null
@@ -0,0 +1,238 @@
+import {ComponentInfoService} from "../../../component-info/component-info.service";
+import {NgRedux} from "@angular-redux/store";
+import {AppState} from "../../../../../shared/store/reducers";
+import {getTestBed, TestBed} from "@angular/core/testing";
+import {HttpClientTestingModule} from "@angular/common/http/testing";
+import {MockNgRedux, NgReduxTestingModule} from "@angular-redux/store/testing";
+import {DynamicInputsService} from "../../dynamicInputs.service";
+import {SharedTreeService} from "../../shared.tree.service";
+import {DuplicateService} from "../../../duplicate/duplicate.service";
+import {AaiService} from "../../../../../shared/services/aaiService/aai.service";
+import {HttpClient, HttpHandler} from "@angular/common/http";
+import {FeatureFlagsService} from "../../../../../shared/services/featureFlag/feature-flags.service";
+import {IframeService} from "../../../../../shared/utils/iframe.service";
+import {VrfModelInfo} from "./vrf.model.info";
+import {ComponentInfoType} from "../../../component-info/component-info-model";
+import {ModelInformationItem} from "../../../../../shared/components/model-information/model-information.component";
+import {VrfModel} from "../../../../../shared/models/vrfModel";
+import {AvailableNodeIcons} from "../../../available-models-tree/available-models-tree.service";
+import each from 'jest-each';
+import {DialogService} from "ng2-bootstrap-modal";
+import {NetworkStepService} from "./vrfModal/networkStep/network.step.service";
+import {VpnStepService} from "./vrfModal/vpnStep/vpn.step.service";
+
+describe('Vrf Model Info', () => {
+
+  let injector;
+  let _componentInfoService : ComponentInfoService;
+
+  let _store : NgRedux<AppState>;
+  let _sharedTreeService: SharedTreeService;
+  let _dialogService : DialogService;
+  let _iframeService : IframeService;
+  let _networkStepService : NetworkStepService;
+  let _vpnStepService : VpnStepService;
+  let vrfModel: VrfModelInfo;
+
+  beforeEach(() => {
+    TestBed.configureTestingModule({
+      imports: [HttpClientTestingModule, NgReduxTestingModule],
+      providers: [
+        MockNgRedux,
+        DynamicInputsService,
+        SharedTreeService,
+        DuplicateService,
+        AaiService,
+        HttpClient,
+        HttpHandler,
+        FeatureFlagsService,
+        ComponentInfoService,
+        DialogService,
+        IframeService,
+        IframeService,
+        NetworkStepService,
+       VpnStepService]
+    }).compileComponents();
+
+    injector = getTestBed();
+    _sharedTreeService = injector.get(SharedTreeService);
+    _dialogService = injector.get(DialogService);
+    _iframeService = injector.get(IframeService);
+    _networkStepService = injector.get(NetworkStepService);
+    _vpnStepService = injector.get(VpnStepService);
+    _store = injector.get(NgRedux);
+    _componentInfoService = injector.get(ComponentInfoService);
+
+    vrfModel = new VrfModelInfo(_store,_sharedTreeService, _dialogService, _iframeService, _networkStepService, _vpnStepService);
+
+  });
+
+
+  test('vrfModel should be defined', () => {
+    expect(vrfModel).toBeDefined();
+  });
+
+  test('vrfModel should defined extra details', () => {
+    expect(vrfModel.name).toEqual('vrfs');
+    expect(vrfModel.type).toEqual('VRF');
+    expect(vrfModel.childNames).toEqual(['networks','vpns']);
+    expect(vrfModel.componentInfoType).toEqual(ComponentInfoType.VRF);
+  });
+
+  test('Info for vrf should be correct', () => {
+    const model = new VrfModel();
+    const instance = null;
+    let actualNetworkInfo = vrfModel.getInfo(model,instance);
+    let expectedNetworkInfo = [
+      ModelInformationItem.createInstance('Min instances', "1"),
+      ModelInformationItem.createInstance('Max instances', "1"),
+      ModelInformationItem.createInstance("Association", "L3-Network - VPN")
+    ];
+    expect(actualNetworkInfo).toEqual(expectedNetworkInfo);
+  });
+
+
+
+  test('getModel should return VRF model with min and max are equal to 1 (hard coded)', () => {
+    let model: VrfModel = vrfModel.getModel('VRF Entry Configuration 0', <any>{
+      originalName : 'VRF Entry Configuration 0'
+    }, getServiceHierarchy());
+    expect(model.properties['type']).toEqual('VRF-ENTRY');
+    expect(model.min).toEqual(1);
+    expect(model.max).toEqual(1);
+  });
+
+  const showNodeIconsDataProvider = [
+    [false, new AvailableNodeIcons(true , false)],
+    [true, new AvailableNodeIcons(false , true)]
+  ];
+
+  each(showNodeIconsDataProvider).test('showNodeIcons should return value according reach limit of max',(existVRFs,expectedResult)=>{
+    const serviceId : string = 'servicedId';
+    const node = getNode();
+    let state = getMockState();
+    if(existVRFs) {
+      state.service.serviceInstance.servicedId.existingVRFCounterMap = {
+        'modelCustomizationId': 1
+      };
+    }
+    jest.spyOn(MockNgRedux.getInstance(), 'getState').mockReturnValue(state);
+    const result = vrfModel.showNodeIcons(<any>node, serviceId);
+    expect(result).toEqual(expectedResult);
+  });
+
+  function getNode() {
+    return {
+      data: {
+        id: 'vrfId',
+        name: 'VRF Entry Configuration 0',
+        modelCustomizationId: 'modelCustomizationId',
+        modelUniqueId: 'modelCustomizationId',
+        getModel: function () {
+          return {max: 1}
+        }
+      }
+    };
+  }
+
+  function getMockState(){
+    return {
+      global:{
+        "drawingBoardStatus": "CREATE"
+      },
+      service : {
+        serviceHierarchy : {
+          'servicedId' : {
+          }
+        },
+        serviceInstance : {
+          'servicedId' : {
+            'existingVRFCounterMap' : {},
+            'vrfs' : {
+              'vrfName' :{
+
+              }
+            }
+          }
+        }
+      }
+    };
+  }
+
+  function getServiceHierarchy() {
+    return {
+      "service": {
+        "uuid": "f028b2e2-7080-4b13-91b2-94944d4c42d8",
+        "invariantUuid": "dfc2c44c-2429-44ca-ae26-1e6dc1f207fb",
+        "name": "infraVPN",
+        "version": "1.0",
+        "toscaModelURL": null,
+        "category": "Network Service",
+        "serviceType": "BONDING",
+        "serviceRole": "INFRASTRUCTURE-VPN",
+        "description": "ddd",
+        "serviceEcompNaming": "true",
+        "instantiationType": "A-La-Carte",
+        "inputs": {},
+        "vidNotions": {
+          "instantiationUI": "macroService",
+          "modelCategory": "other",
+          "viewEditUI": "legacy"
+        }
+      },
+      "vnfs": {},
+      "networks": {},
+      "collectionResources": {},
+      "configurations": {},
+      "fabricConfigurations": {},
+      "serviceProxies": {
+        "misvpn_service_proxy 0": {
+          "uuid": "35186eb0-e6b6-4fa5-86bb-1501b342a7b1",
+          "invariantUuid": "73f89e21-b96c-473f-8884-8b93bcbd2f76",
+          "description": "A Proxy for Service MISVPN_SERVICE",
+          "name": "MISVPN_SERVICE Service Proxy",
+          "version": "3.0",
+          "customizationUuid": "4c2fb7e0-a0a5-4b32-b6ed-6a974e55d923",
+          "inputs": {},
+          "commands": {},
+          "properties": {
+            "ecomp_generated_naming": "false"
+          },
+          "type": "Service Proxy",
+          "sourceModelUuid": "d5cc7d15-c842-450e-95ae-2a69e66dd23b",
+          "sourceModelInvariant": "c126ec86-59fe-48c0-9532-e39a9b3e5272",
+          "sourceModelName": "MISVPN_SERVICE"
+        }
+      },
+      "vfModules": {},
+      "volumeGroups": {},
+      "pnfs": {},
+      "vnfGroups": {},
+      "vrfs": {
+        "VRF Entry Configuration 0": {
+          "uuid": "9cac02be-2489-4374-888d-2863b4511a59",
+          "invariantUuid": "b67a289b-1688-496d-86e8-1583c828be0a",
+          "description": "VRF Entry configuration object",
+          "name": "VRF Entry Configuration",
+          "version": "30.0",
+          "customizationUuid": "dd024d73-9bd1-425d-9db5-476338d53433",
+          "inputs": {},
+          "commands": {},
+          "properties": {
+            "ecomp_generated_naming": "false",
+            "type": "VRF-ENTRY",
+            "role": "INFRASTRUCTURE-CLOUD-VPN"
+          },
+          "type": "Configuration",
+          "modelCustomizationName": "VRF Entry Configuration 0",
+          "sourceNodes": [],
+          "collectorNodes": null,
+          "configurationByPolicy": false
+        }
+      }
+    }
+  }
+
+
+
+})
diff --git a/vid-webpack-master/src/app/drawingBoard/service-planning/objectsToTree/models/vrf/vrf.model.info.ts b/vid-webpack-master/src/app/drawingBoard/service-planning/objectsToTree/models/vrf/vrf.model.info.ts
new file mode 100644 (file)
index 0000000..4c779a3
--- /dev/null
@@ -0,0 +1,188 @@
+import {ILevelNodeInfo} from "../basic.model.info";
+import {ComponentInfoType} from "../../../component-info/component-info-model";
+import {ITreeNode} from "angular-tree-component/dist/defs/api";
+import {AvailableNodeIcons} from "../../../available-models-tree/available-models-tree.service";
+import {ModelInformationItem} from "../../../../../shared/components/model-information/model-information.component";
+import {VrfInstance} from "../../../../../shared/models/vrfInstance";
+import {VrfTreeNode} from "../../../../../shared/models/vrfTreeNode";
+import {VrfModel} from "../../../../../shared/models/vrfModel";
+import {NgRedux} from "@angular-redux/store";
+import {AppState} from "../../../../../shared/store/reducers";
+import {SharedTreeService} from "../../shared.tree.service";
+import {DialogService} from 'ng2-bootstrap-modal';
+import {SearchElementsModalComponent} from "../../../../../shared/components/searchMembersModal/search-elements-modal.component";
+import {IframeService} from "../../../../../shared/utils/iframe.service";
+import {NetworkStepService} from "./vrfModal/networkStep/network.step.service";
+import {VpnStepService} from "./vrfModal/vpnStep/vpn.step.service";
+import {NetworkModelInfo} from "../network/network.model.info";
+import {VpnModelInfo} from "../vpn/vpn.model.info";
+import {
+  clearAllGenericModalhelper,
+  updateGenericModalhelper,
+  updateGenericModalTableDataHelper
+} from "../../../../../shared/storeUtil/utils/global/global.actions";
+import {
+  deleteActionVrfInstance,
+  undoDeleteActionVrfInstance
+} from "../../../../../shared/storeUtil/utils/vrf/vrf.actions";
+import * as _ from "lodash";
+
+export class VrfModelInfo implements ILevelNodeInfo {
+  constructor(private _store: NgRedux<AppState>,
+              private _sharedTreeService: SharedTreeService,
+              private _dialogService: DialogService,
+              private _iframeService: IframeService,
+              private _networkStepService: NetworkStepService,
+              private _vpnStepService: VpnStepService) {
+  }
+
+  name: string = 'vrfs';
+  type: string = 'VRF';
+  typeName: string = 'VRF';
+  childNames: string [] = ["networks", "vpns"];
+  componentInfoType = ComponentInfoType.VRF;
+
+  isEcompGeneratedNaming(currentModel): boolean {
+    return false;
+  }
+
+  updateDynamicInputsDataFromModel = (currentModel): any => [];
+
+  getModel = (vrfModelId: string, instance: VrfInstance, serviceHierarchy): VrfModel => {
+    const originalModelName = instance.originalName ? instance.originalName : vrfModelId;
+    return new VrfModel(serviceHierarchy[this.name][originalModelName]);
+  };
+
+
+  createInstanceTreeNode = (instance: VrfInstance, model: VrfModel, parentModel, storeKey: string): VrfTreeNode => {
+    let node = new VrfTreeNode(instance, model, storeKey);
+    node.missingData = this.hasMissingData(instance, node, model.isEcompGeneratedNaming);
+    node.typeName = this.typeName;
+    node.menuActions = this.getMenuAction(<any>node, model.uuid);
+    node.isFailed = _.isNil(instance.isFailed) ? false : instance.isFailed;
+    node.statusMessage = !_.isNil(instance.statusMessage) ? instance.statusMessage : "";
+    return node;
+  };
+
+
+  getNextLevelObject = (nextLevelType: string): any => {
+    if (nextLevelType === 'vpns') {
+      return new VpnModelInfo(this._store, this._sharedTreeService);
+    } else {
+      if (nextLevelType === 'networks') {
+        return new NetworkModelInfo(null, this._sharedTreeService, null, null, null, null, null, this._store);
+      }
+    }
+  };
+
+  getTooltip = (): string => 'VRF';
+
+  getType = (): string => 'VRF';
+
+  hasMissingData(instance, dynamicInputs: any, isEcompGeneratedNaming: boolean): boolean {
+    return false;
+  }
+
+  onClickAdd(node, serviceModelId: string): void {
+    this._store.dispatch(clearAllGenericModalhelper());
+    this._store.dispatch(updateGenericModalTableDataHelper('currentVRF', {
+      model: this._store.getState().service.serviceHierarchy[serviceModelId].vrfs[node.data.name],
+      instance: null
+    }));
+    this._iframeService.addFullScreen();
+    let modalSteps = [this._vpnStepService, this._networkStepService];
+    const serviceInstance = this._store.getState().service.serviceInstance[serviceModelId];
+    this._dialogService.addDialog(SearchElementsModalComponent, {
+        modalInformation: this._networkStepService.getNetworkStep(serviceInstance, serviceModelId, ...modalSteps)
+      }
+    )
+  }
+
+  getNodeCount(node: ITreeNode, serviceModelId: string): number {
+    //TODO
+    return 0;
+  }
+
+  showNodeIcons(node: ITreeNode, serviceModelId: string): AvailableNodeIcons {
+    const serviceHierarchy = this._store.getState().service.serviceHierarchy[serviceModelId];
+
+    let counter: number = !_.isNil(this._store.getState().service.serviceInstance[serviceModelId]) ?
+      (this._store.getState().service.serviceInstance[serviceModelId].existingVRFCounterMap[node.data.modelUniqueId] || 0) : 0;
+    counter -= this._sharedTreeService.getExistingInstancesWithDeleteMode(node, serviceModelId, 'vrfs');
+    const model = node.data.getModel(node.data.name, node.data, serviceHierarchy);
+    const maxInstances: number = model.max;
+    const isReachedLimit = !(maxInstances > counter);
+    const showAddIcon = this._sharedTreeService.shouldShowAddIcon() && !isReachedLimit;
+
+    return new AvailableNodeIcons(showAddIcon, isReachedLimit)
+  }
+
+  getMenuAction(node: ITreeNode, serviceModelId: string): { [methodName: string]: { method: Function, visible: Function, enable: Function } } {
+    return <any>{
+      changeAssociations: {
+        method: (node, serviceModelId) => {
+          let modalSteps = [this._vpnStepService, this._networkStepService];
+          this._store.dispatch(clearAllGenericModalhelper());
+          const vrfInstance = this._store.getState().service.serviceInstance[serviceModelId].vrfs[node.data.vrfStoreKey];
+          const vrfModel = this._store.getState().service.serviceHierarchy[serviceModelId].vrfs[node.data.name];
+          this._store.dispatch(updateGenericModalTableDataHelper('currentVRF', {
+            model: vrfModel,
+            instance: vrfInstance,
+            vrfStoreKey: node.data.vrfStoreKey
+          }));
+
+
+          for (let networkKey in vrfInstance.networks) {
+            this._store.dispatch(updateGenericModalhelper(`selectedNetwork`, vrfInstance.networks[networkKey], modalSteps[1].uniqObjectField));
+          }
+
+          for (let networkKey in vrfInstance.vpns) {
+            this._store.dispatch(updateGenericModalhelper(`selectedVPN`, vrfInstance.vpns[networkKey], modalSteps[0].uniqObjectField));
+          }
+
+          this._iframeService.addFullScreen();
+
+          const serviceInstance = this._store.getState().service.serviceInstance[serviceModelId];
+          this._dialogService.addDialog(SearchElementsModalComponent, {
+              modalInformation: this._networkStepService.getNetworkStep(serviceInstance, serviceModelId, ...modalSteps)
+            }
+          )
+        },
+        visible: (node) => this._sharedTreeService.shouldShowRemoveAndEdit(node),
+        enable: (node) => this._sharedTreeService.shouldShowRemoveAndEdit(node),
+      },
+      delete: {
+        method: (node, serviceModelId) => {
+          this._store.dispatch(deleteActionVrfInstance(node.data.vrfStoreKey, serviceModelId));
+        },
+        visible: (node) => this._sharedTreeService.shouldShowDelete(node),
+        enable: (node) => this._sharedTreeService.shouldShowDelete(node)
+      },
+      undoDelete: {
+        method: (node, serviceModelId) => {
+          this._store.dispatch(undoDeleteActionVrfInstance(node.data.vrfStoreKey, serviceModelId));
+        },
+        visible: (node) => this._sharedTreeService.shouldShowUndoDelete(node),
+        enable: (node, serviceModelId) => this._sharedTreeService.shouldShowUndoDelete(node) && !this._sharedTreeService.isServiceOnDeleteMode(serviceModelId)
+      }
+    }
+  }
+
+  updatePosition(that, node, instanceId): void {
+    //TODO
+  }
+
+  getNodePosition(instance): number {
+    //TODO
+    return 0;
+  }
+
+  getInfo(model, instance): ModelInformationItem[] {
+    const modelInformation = !_.isEmpty(model) ? [
+      ModelInformationItem.createInstance("Min instances", "1"),
+      ModelInformationItem.createInstance("Max instances", "1"),
+      ModelInformationItem.createInstance("Association", "L3-Network - VPN")] : [];
+    return modelInformation;
+  }
+}
+
diff --git a/vid-webpack-master/src/app/drawingBoard/service-planning/objectsToTree/models/vrf/vrfModal/networkStep/network.step.model.ts b/vid-webpack-master/src/app/drawingBoard/service-planning/objectsToTree/models/vrf/vrfModal/networkStep/network.step.model.ts
new file mode 100644 (file)
index 0000000..8a2d18a
--- /dev/null
@@ -0,0 +1,18 @@
+export class NetworkModalRow {
+  instanceName : string;
+  instanceType: string;
+  role: string;
+  orchStatus: string;
+  physicalName: string;
+  instanceId: string;
+  serviceName : string;
+  serviceUUID : string;
+  tenantName  : string;
+  lcpCloudRegionId : string;
+  modelInfo : {
+    modelCustomizationId: string;
+    modelInvariantId: string;
+    modelVersionId: string;
+    modelType: string;
+  }
+}
diff --git a/vid-webpack-master/src/app/drawingBoard/service-planning/objectsToTree/models/vrf/vrfModal/networkStep/network.step.service.spec.ts b/vid-webpack-master/src/app/drawingBoard/service-planning/objectsToTree/models/vrf/vrfModal/networkStep/network.step.service.spec.ts
new file mode 100644 (file)
index 0000000..e06e4c9
--- /dev/null
@@ -0,0 +1,458 @@
+import {NgRedux} from "@angular-redux/store";
+import {AppState} from "../../../../../../../shared/store/reducers";
+import {getTestBed, TestBed} from "@angular/core/testing";
+import {NgReduxTestingModule} from "@angular-redux/store/testing";
+import {HttpClientTestingModule} from "@angular/common/http/testing";
+import {FeatureFlagsService} from "../../../../../../../shared/services/featureFlag/feature-flags.service";
+import {AaiService} from "../../../../../../../shared/services/aaiService/aai.service";
+import {NetworkStepService} from "./network.step.service";
+import {updateGenericModalCriteria} from "../../../../../../../shared/storeUtil/utils/global/global.actions";
+import {ITableContent} from "../../../../../../../shared/components/searchMembersModal/members-table/element-table-row.model";
+
+describe('Network step service', () => {
+  let injector;
+  let service: NetworkStepService;
+  let store: NgRedux<AppState>;
+  beforeAll(done => (async () => {
+    TestBed.configureTestingModule({
+      imports: [NgReduxTestingModule, HttpClientTestingModule],
+      providers: [
+        NetworkStepService,
+        FeatureFlagsService,
+        AaiService
+      ]
+    });
+    await TestBed.compileComponents();
+    injector = getTestBed();
+    service = injector.get(NetworkStepService);
+    store = injector.get(NgRedux);
+  })().then(done).catch(done.fail));
+
+  test('service should be defined', () => {
+    expect(service).toBeDefined();
+  });
+
+
+  test('networkStep', () => {
+    spyOn(store, 'getState').and.returnValue({
+      "global": {
+        "genericModalHelper": {
+          "selectedNetwork": {
+            "action": "None",
+            "instanceName": "NETWORK_1_INSTANCE_NAME",
+            "instanceId": "NETWORK_1_INSTANCE_ID",
+            "orchStatus": null,
+            "productFamilyId": null,
+            "lcpCloudRegionId": "hvf23b",
+            "tenantId": "3e9a20a3e89e45f884e09df0cc2d2d2a",
+            "tenantName": "APPC-24595-T-IST-02C",
+            "modelInfo": {
+              "modelInvariantId": "network-instance-model-invariant-id",
+              "modelVersionId": "7a6ee536-f052-46fa-aa7e-2fca9d674c44",
+              "modelVersion": "2.0",
+              "modelName": "vf_vEPDG",
+              "modelType": "vnf"
+            },
+            "roles": ["network role 1", "network role 2"],
+            "instanceType": "NETWORK_1_INSTANCE_TYPE",
+            "provStatus": null,
+            "inMaint": false,
+            "uuid": "7a6ee536-f052-46fa-aa7e-2fca9d674c44",
+            "originalName": null,
+            "legacyRegion": null,
+            "lineOfBusiness": null,
+            "platformName": null,
+            "trackById": "VNF1_INSTANCE_ID",
+            "serviceInstanceId": "service-instance-id1",
+            "serviceInstanceName": "service-instance-name",
+            "isSelected": true
+          },
+          "selectedVpn": {
+            "vpn-id": "120d39fb-3627-473d-913c-d228dd0f8e5b",
+            "vpn-name": "LPPVPN",
+            "vpn-platform": "AVPN",
+            "vpn-type": "SERVICE-INFRASTRUCTURE",
+            "vpn-region": "USA,EMEA",
+            "customer-vpn-id": "VPN1260",
+            "model-customization-id": null,
+            "model-invariant-id": null,
+            "model-version-id": null,
+            "route-targets": null,
+            "isSelected": true
+          }
+        },
+        "genericModalCriteria": {"roles": ["-- select an option --", "network role 1", "network role 2", "network role 3", "network role 4", "network role 5"]},
+        "name": null,
+        "flags": {
+          "CREATE_INSTANCE_TEST": false,
+          "EMPTY_DRAWING_BOARD_TEST": false,
+          "FLAG_NETWORK_TO_ASYNC_INSTANTIATION": false,
+          "FLAG_ASYNC_INSTANTIATION": true,
+          "FLAG_ASYNC_JOBS": true,
+          "FLAG_ADD_MSO_TESTAPI_FIELD": true,
+          "FLAG_UNASSIGN_SERVICE": false,
+          "FLAG_SERVICE_MODEL_CACHE": false,
+          "FLAG_SHOW_ASSIGNMENTS": true,
+          "FLAG_FABRIC_CONFIGURATION_ASSIGNMENTS": true,
+          "FLAG_DUPLICATE_VNF": true,
+          "FLAG_DEFAULT_VNF": true,
+          "FLAG_SETTING_DEFAULTS_IN_DRAWING_BOARD": true,
+          "FLAG_A_LA_CARTE_AUDIT_INFO": true,
+          "FLAG_1810_CR_ADD_CLOUD_OWNER_TO_MSO_REQUEST": true,
+          "FLAG_PRESENT_PROVIDER_NETWORKS_ASSOCIATIONS": true,
+          "FLAG_1810_CR_SOFT_DELETE_ALACARTE_VF_MODULE": true,
+          "FLAG_1902_NEW_VIEW_EDIT": true,
+          "FLAG_VF_MODULE_RESUME_STATUS_CREATE": true,
+          "FLAG_1906_COMPONENT_INFO": true
+        },
+        "drawingBoardStatus": "CREATE",
+        "type": "UPDATE_DRAWING_BOARD_STATUS"
+      }, "service": {
+        "serviceHierarchy": {
+          "f028b2e2-7080-4b13-91b2-94944d4c42d8": {
+            "service": {
+              "uuid": "f028b2e2-7080-4b13-91b2-94944d4c42d8",
+              "invariantUuid": "dfc2c44c-2429-44ca-ae26-1e6dc1f207fb",
+              "name": "infraVPN",
+              "version": "1.0",
+              "toscaModelURL": null,
+              "category": "Network Service",
+              "serviceType": "BONDING",
+              "serviceRole": "INFRASTRUCTURE-VPN",
+              "description": "ddd",
+              "serviceEcompNaming": "true",
+              "instantiationType": "A-La-Carte",
+              "inputs": {},
+              "vidNotions": {"instantiationUI": "macroService", "modelCategory": "other", "viewEditUI": "legacy"}
+            },
+            "vnfs": {},
+            "networks": {},
+            "collectionResources": {},
+            "configurations": {},
+            "fabricConfigurations": {},
+            "serviceProxies": {
+              "misvpn_service_proxy 0": {
+                "uuid": "35186eb0-e6b6-4fa5-86bb-1501b342a7b1",
+                "invariantUuid": "73f89e21-b96c-473f-8884-8b93bcbd2f76",
+                "description": "A Proxy for Service MISVPN_SERVICE",
+                "name": "MISVPN_SERVICE Service Proxy",
+                "version": "3.0",
+                "customizationUuid": "4c2fb7e0-a0a5-4b32-b6ed-6a974e55d923",
+                "inputs": {},
+                "commands": {},
+                "properties": {"ecomp_generated_naming": "false"},
+                "type": "Service Proxy",
+                "sourceModelUuid": "d5cc7d15-c842-450e-95ae-2a69e66dd23b",
+                "sourceModelInvariant": "c126ec86-59fe-48c0-9532-e39a9b3e5272",
+                "sourceModelName": "MISVPN_SERVICE"
+              }
+            },
+            "vfModules": {},
+            "volumeGroups": {},
+            "pnfs": {},
+            "vnfGroups": {},
+            "vrfs": {
+              "VRF Entry Configuration 0": {
+                "uuid": "9cac02be-2489-4374-888d-2863b4511a59",
+                "invariantUuid": "b67a289b-1688-496d-86e8-1583c828be0a",
+                "description": "VRF Entry configuration object",
+                "name": "VRF Entry Configuration",
+                "version": "30.0",
+                "customizationUuid": "dd024d73-9bd1-425d-9db5-476338d53433",
+                "inputs": {},
+                "commands": {},
+                "properties": {"ecomp_generated_naming": "false"},
+                "type": "Configuration",
+                "modelCustomizationName": "VRF Entry Configuration 0",
+                "sourceNodes": [],
+                "collectorNodes": null,
+                "configurationByPolicy": false
+              }
+            }
+          }
+        },
+        "serviceInstance": {
+          "f028b2e2-7080-4b13-91b2-94944d4c42d8": {
+            "action": "Create",
+            "isDirty": false,
+            "vnfs": {},
+            "vrfs": {},
+            "instanceParams": [{}],
+            "validationCounter": 0,
+            "existingNames": {"dfd": ""},
+            "existingVNFCounterMap": {},
+            "existingVRFCounterMap": {},
+            "existingVnfGroupCounterMap": {},
+            "existingNetworksCounterMap": {},
+            "optionalGroupMembersMap": {},
+            "networks": {},
+            "vnfGroups": {},
+            "bulkSize": 1,
+            "instanceName": "dfd",
+            "globalSubscriberId": "e433710f-9217-458d-a79d-1c7aff376d89",
+            "subscriptionServiceType": "TYLER SILVIA",
+            "owningEntityId": "d61e6f2d-12fa-4cc2-91df-7c244011d6fc",
+            "projectName": "WATKINS",
+            "rollbackOnFailure": "true",
+            "aicZoneName": null,
+            "owningEntityName": "WayneHolland",
+            "testApi": "VNF_API",
+            "tenantName": null,
+            "modelInfo": {
+              "modelInvariantId": "dfc2c44c-2429-44ca-ae26-1e6dc1f207fb",
+              "modelVersionId": "f028b2e2-7080-4b13-91b2-94944d4c42d8",
+              "modelName": "infraVPN",
+              "modelVersion": "1.0",
+              "uuid": "f028b2e2-7080-4b13-91b2-94944d4c42d8",
+              "modelUniqueId": "f028b2e2-7080-4b13-91b2-94944d4c42d8"
+            },
+            "isALaCarte": true,
+            "name": "infraVPN",
+            "version": "1.0",
+            "description": "ddd",
+            "category": "Network Service",
+            "uuid": "f028b2e2-7080-4b13-91b2-94944d4c42d8",
+            "invariantUuid": "dfc2c44c-2429-44ca-ae26-1e6dc1f207fb",
+            "serviceType": "BONDING",
+            "serviceRole": "INFRASTRUCTURE-VPN",
+            "vidNotions": {"instantiationUI": "macroService", "modelCategory": "other", "viewEditUI": "legacy"},
+            "isEcompGeneratedNaming": true,
+            "isMultiStepDesign": false
+          }
+        },
+        "type": "UPDATE_CATEGORY_PARAMETERS",
+        "categoryParameters": {
+          "owningEntityList": [{
+            "id": "d61e6f2d-12fa-4cc2-91df-7c244011d6fc",
+            "name": "WayneHolland"
+          }, {"id": "Melissa", "name": "Melissa"}, {"id": "aaa1", "name": "aaa1"}],
+          "projectList": [{"id": "WATKINS", "name": "WATKINS"}, {"id": "x1", "name": "x1"}, {"id": "yyy1", "name": "yyy1"}],
+          "lineOfBusinessList": [{"id": "ONAP", "name": "ONAP"}, {"id": "zzz1", "name": "zzz1"}],
+          "platformList": [{"id": "platform", "name": "platform"}, {"id": "xxx1", "name": "xxx1"}]
+        }
+      }
+    });
+    const networkStep = service.getNetworkStep(
+      "f028b2e2-7080-4b13-91b2-94944d4c42d8",
+      <any>{
+        data: {
+          children: [],
+          componentInfoType: "VRF",
+          count: 0,
+          disabled: false,
+          id: "dd024d73-9bd1-425d-9db5-476338d53433",
+          isEcompGeneratedNaming: false,
+          max: 1,
+          modelCustomizationId: "dd024d73-9bd1-425d-9db5-476338d53433",
+          modelUniqueId: "dd024d73-9bd1-425d-9db5-476338d53433",
+          modelVersionId: "9cac02be-2489-4374-888d-2863b4511a59",
+          name: "VRF Entry Configuration 0",
+          tooltip: "VRF",
+          type: "VRF",
+          typeName: "VRF"
+        }
+      });
+
+
+    expect(networkStep.type).toEqual('Network');
+    expect(networkStep.title).toEqual('Associate network to VRF Entry');
+    expect(networkStep.description).toEqual('Select a network to associate to the VRF Entry');
+    expect(networkStep.noElementsMsg).toEqual('No network were found.');
+    expect(networkStep.maxSelectRow).toEqual(1);
+    expect(networkStep.uniqObjectField).toEqual('instanceId');
+    expect(networkStep.topButton.text).toEqual('Next');
+    expect(networkStep.criteria).toHaveLength(1);
+
+  });
+
+  test('getsNetworkStepSearchFields', () => {
+    const networkStepSearchFields = service.getsNetworkStepSearchFields({
+      "lcpCloudRegionId": "lcpCloudRegionId",
+      "tenantName": "tenantName"
+    });
+
+    expect(networkStepSearchFields[0].value).toEqual("lcpCloudRegionId");
+    expect(networkStepSearchFields[1].value).toEqual("tenantName");
+    expect(networkStepSearchFields[2].value).toEqual("Active");
+    expect(networkStepSearchFields[3].value).toEqual("VPN binding");
+  });
+
+  test('generateRolesOptions should sort networks roles, check if should add "Not assigned" option', () => {
+    const networks = [
+      {"role": "2"},
+      {"role": "3"},
+      {"role": "4"},
+      {"role": "1"},
+      {"role": "6"}
+    ];
+
+    spyOn(store, 'dispatch');
+
+    service.generateRolesOptions(networks);
+    expect(store.dispatch).toHaveBeenCalledWith(updateGenericModalCriteria("roles", ["-- select an option --", "1", "2", "3", "4", "6"]))
+
+    networks.push({"role": null});
+    service.generateRolesOptions(networks);
+    expect(store.dispatch).toHaveBeenCalledWith(updateGenericModalCriteria("roles", ["-- select an option --", "Not assigned", "1", "2", "3", "4", "6"]))
+  });
+
+  test('shouldAddNotAssigned- check if "Not Assigned" option to roles', () => {
+    const networks = [
+      {"role": "5"},
+      {"role": "3"},
+      {"role": "4"},
+      {"role": "1"},
+      {"role": "6"}
+    ];
+
+    let result: boolean = service.shouldAddNotAssigned(networks);
+    expect(result).toBeFalsy();
+
+    networks.push({"role": null});
+
+    result = service.shouldAddNotAssigned(networks);
+    expect(result).toBeTruthy();
+  });
+
+
+  test('getNetworkStepHeaders should return the correct headers for network popup', () => {
+    let headers = service.getNetworkStepHeaders();
+
+    expect(headers[0].displayName).toEqual('Name');
+    expect(headers[0].key).toEqual(['instanceName']);
+
+    expect(headers[1].displayName).toEqual('Type');
+    expect(headers[1].key).toEqual(['instanceType']);
+
+    expect(headers[2].displayName).toEqual('Role');
+    expect(headers[2].key).toEqual(['role']);
+
+    expect(headers[3].displayName).toEqual('Orch. Status');
+    expect(headers[3].key).toEqual(['orchStatus']);
+
+    expect(headers[4].displayName).toEqual('Physical name');
+    expect(headers[4].key).toEqual(['physicalName']);
+
+    expect(headers[5].displayName).toEqual('Instance ID');
+    expect(headers[5].key).toEqual(['instanceId']);
+
+    expect(headers[6].displayName).toEqual('Model UUID');
+    expect(headers[6].key).toEqual(['modelInfo', 'modelVersionId']);
+
+    expect(headers[7].displayName).toEqual('Service name');
+    expect(headers[7].key).toEqual(['serviceName']);
+
+    expect(headers[8].displayName).toEqual('Service UUID');
+    expect(headers[8].key).toEqual(['serviceUUID']);
+
+    expect(headers[9].displayName).toEqual('Tenant');
+    expect(headers[9].key).toEqual(['tenantName']);
+
+    expect(headers[10].displayName).toEqual('Region');
+    expect(headers[10].key).toEqual(['lcpCloudRegionId']);
+  });
+
+  test('getElementsFirstStep should return sort networks by instance name', () => {
+    let networks = [
+      {"instanceUUID": "B"},
+      {"instanceUUID": "A"},
+      {"instanceUUID": "D"},
+      {"instanceUUID": "C"},
+      {"instanceUUID": "E"}
+    ];
+
+    let sortedNetworkByInstanceName = service.sortElementsResultByField(networks, "instanceUUID");
+    expect(sortedNetworkByInstanceName).toEqual([
+      {"instanceUUID": "A"},
+      {"instanceUUID": "B"},
+      {"instanceUUID": "C"},
+      {"instanceUUID": "D"},
+      {"instanceUUID": "E"}
+    ])
+  });
+
+
+  test('getNetworkTableContent', () => {
+    let tableContent: ITableContent[] = service.getNetworkTableContent();
+    expect(tableContent).toEqual(
+    [
+      {
+        id: 'instanceName',
+        contents: [{
+          id: ['name'],
+          value: ["instanceName"]
+        }]
+      },
+      {
+        id: 'instanceType',
+        contents: [{
+          id: ['type'],
+          value: ['instanceType']
+        }]
+      },
+      {
+        id: 'role',
+        contents: [{
+          id: ['role'],
+          value: ['role']
+        }]
+      },
+      {
+        id: 'network-orch-status',
+        contents: [{
+          id: ['orchStatus'],
+          value: ['orchStatus']
+        }]
+      },
+      {
+        id: 'network-physical-name',
+        contents: [{
+          id: ['physicalName'],
+          value: ['physicalName']
+        }]
+      },
+      {
+        id: 'network-instance-id',
+        contents: [{
+          id: ['instanceID'],
+          value: ['instanceId']
+        }]
+      },
+      {
+        id: 'network-model-uuid',
+        contents: [{
+          id: ['modelUUID'],
+          value: ['modelInfo', 'modelVersionId']
+        }]
+      },
+      {
+        id: 'network-serviceName',
+        contents: [{
+          id: ['serviceName'],
+          value: ['serviceName']
+        }]
+      },
+      {
+        id: 'network-service-id',
+        contents: [{
+          id: ['serviceUUID'],
+          value: ['serviceUUID']
+        }]
+      },
+      {
+        id: 'network-tenantName',
+        contents: [{
+          id: ['tenant'],
+          value: ['tenantName']
+        }]
+      },
+      {
+        id: 'network-region',
+        contents: [{
+          id: ['region'],
+          value: ['lcpCloudRegionId']
+        }]
+      }
+    ]);
+  });
+});
diff --git a/vid-webpack-master/src/app/drawingBoard/service-planning/objectsToTree/models/vrf/vrfModal/networkStep/network.step.service.ts b/vid-webpack-master/src/app/drawingBoard/service-planning/objectsToTree/models/vrf/vrfModal/networkStep/network.step.service.ts
new file mode 100644 (file)
index 0000000..9cd928e
--- /dev/null
@@ -0,0 +1,242 @@
+import {Injectable} from "@angular/core";
+import {NgRedux} from "@angular-redux/store";
+import {AppState} from "../../../../../../../shared/store/reducers";
+import {AaiService} from "../../../../../../../shared/services/aaiService/aai.service";
+import {
+  updateGenericModalCriteria,
+  updateGenericModalhelper
+} from "../../../../../../../shared/storeUtil/utils/global/global.actions";
+import {ElementsTableService} from "../../../../../../../shared/components/searchMembersModal/members-table/elements-table.service";
+import {
+  ICriteria, ISearchField, ITableContent,
+  ModalInformation
+} from "../../../../../../../shared/components/searchMembersModal/members-table/element-table-row.model";
+import {Observable, of} from "rxjs";
+import * as _ from "lodash";
+import {CustomTableColumnDefinition} from "../../../../../../../shared/components/searchMembersModal/members-table/elements-table.component";
+import {NetworkModalRow} from "./network.step.model";
+
+@Injectable()
+export class NetworkStepService {
+  constructor(private _store: NgRedux<AppState>, private _aaiService: AaiService) {}
+
+  uniqObjectField: string = "instanceId";
+  type: string = "Network";
+
+  getNetworkStep = (serviceInstance, serviceModelId, ...otherSteps): ModalInformation => {
+    return {
+      type: this.type,
+      serviceModelId: serviceModelId,
+      title: 'Associate network to VRF Entry',
+      description: 'Select a network to associate to the VRF Entry',
+      noElementsMsg: 'No network were found.',
+      maxSelectRow: 1,
+      uniqObjectField: this.uniqObjectField,
+      backAction: (searchElementsModalComponent) => {
+        searchElementsModalComponent.closeDialog();
+      },
+      topButton: {
+        text: 'Next',
+        action: (searchElementsModalComponent) => {
+          let tmpMembers = searchElementsModalComponent._membersTableService.allElementsStatusMap;
+          let vpnStep = otherSteps[0];
+          for (let key in tmpMembers) {
+            if (tmpMembers[key].isSelected) {
+              this._store.dispatch(updateGenericModalhelper(`selected${this.type}`, tmpMembers[key], this.uniqObjectField));
+            }
+          }
+          ElementsTableService.changeModalInformationDataTrigger.next({
+            modalInformation: vpnStep.getVpnStep(serviceInstance, searchElementsModalComponent.modalInformation.serviceModelId, ...otherSteps),
+            selectedRowsIds: []
+          })
+        }
+      },
+      searchButton: {
+        text: 'Search',
+        action: (searchElementsModalComponent) => {
+          this.getNetworks(serviceInstance).subscribe((networks) => {
+            const currentRole = searchElementsModalComponent.modalInformation.criteria.find((criteria: ICriteria) => {
+              criteria.label === 'Roles';
+            });
+            ElementsTableService.changeFnTableDataTrigger.next(
+              networks.filter((network) => {
+                if (_.isNil(currentRole)) return network;
+                return network.role === currentRole.currentValue;
+              }));
+          });
+        }
+      },
+      getElements: (...args) => this.getNetworks(serviceInstance),
+      criteria: this.getNetworkStepCriteria(serviceInstance),
+      searchFields: this.getsNetworkStepSearchFields(serviceInstance),
+      tableHeaders: this.getNetworkStepHeaders(),
+      tableContent: this.getNetworkTableContent()
+    };
+  };
+
+  getNetworks = (serviceInstance): Observable<any[]> => {
+    let cloudRegion = serviceInstance.lcpCloudRegionId;
+    let tenantId = serviceInstance.tenantName;
+    return this._aaiService.retrieveActiveNetwork(cloudRegion, tenantId).map((networks: NetworkModalRow[]) => {
+      this.generateRolesOptions(networks);
+      return this.sortElementsResultByField(networks, this.uniqObjectField);
+    });
+  };
+
+  getNetworkStepCriteria(serviceInstance): ICriteria[] {
+    return [{
+      label: "Roles",
+      defaultValue: "",
+      type: 'DROPDOWN',
+      onInit: (): Observable<any> => of(this._store.getState().global.genericModalCriteria.roles),
+      onChange: (that, selectedOption): void => {
+        that.currentValue = selectedOption;
+      },
+      dataTestId: 'roles-criteria',
+      isRequired: false
+    }]
+  }
+
+  getsNetworkStepSearchFields = (serviceInstance): ISearchField[] => {
+    return [
+      {
+        title: 'Region',
+        dataTestId: 'Region',
+        value: serviceInstance["lcpCloudRegionId"],
+        type: "LABEL"
+      }, {
+        title: 'Tenant',
+        dataTestId: 'Tenant',
+        value: serviceInstance["tenantName"],
+        type: "LABEL"
+      },
+      {
+        title: 'Orch. status',
+        dataTestId: 'Orch_status',
+        value: "Active",
+        type: "LABEL"
+      },
+      {
+        title: 'Related to',
+        dataTestId: 'Related_to',
+        value: "VPN binding",
+        type: "LABEL"
+      }
+    ]
+  };
+
+  generateRolesOptions = (networks): void => {
+    let roles: string[] = (_.uniq(_.flatten(_.map(networks, 'role').filter((role) => !_.isNil(role))))).sort();
+    const SELECTED_AN_OPTION: string = "-- select an option --";
+    const NOT_ASSIGNED: string = "Not assigned";
+
+    roles = _.remove([SELECTED_AN_OPTION, this.shouldAddNotAssigned(networks) ? NOT_ASSIGNED : null, ...roles], null);
+    this._store.dispatch(updateGenericModalCriteria("roles", roles));
+  };
+
+  getNetworkStepHeaders = (): CustomTableColumnDefinition[] => {
+    return [
+      {displayName: `Name`, key: ['instanceName']},
+      {displayName: `Type`, key: ['instanceType']},
+      {displayName: `Role`, key: ['role']},
+      {displayName: 'Orch. Status', key: ['orchStatus']},
+      {displayName: 'Physical name', key: ['physicalName']},
+      {displayName: 'Instance ID', key: ['instanceId']},
+      {displayName: 'Model UUID', key: ['modelInfo', 'modelVersionId']},
+      {displayName: 'Service name', key: ['serviceName']},
+      {displayName: 'Service UUID', key: ['serviceUUID']},
+      {displayName: 'Tenant', key: ['tenantName']},
+      {displayName: 'Region', key: ['lcpCloudRegionId']}
+    ];
+  };
+
+  getNetworkTableContent = (): ITableContent[] => {
+    return [
+      {
+        id: 'instanceName',
+        contents: [{
+          id: ['name'],
+          value: ["instanceName"]
+        }]
+      },
+      {
+        id: 'instanceType',
+        contents: [{
+          id: ['type'],
+          value: ['instanceType']
+        }]
+      },
+      {
+        id: 'role',
+        contents: [{
+          id: ['role'],
+          value: ['role']
+        }]
+      },
+      {
+        id: 'network-orch-status',
+        contents: [{
+          id: ['orchStatus'],
+          value: ['orchStatus']
+        }]
+      },
+      {
+        id: 'network-physical-name',
+        contents: [{
+          id: ['physicalName'],
+          value: ['physicalName']
+        }]
+      },
+      {
+        id: 'network-instance-id',
+        contents: [{
+          id: ['instanceID'],
+          value: ['instanceId']
+        }]
+      },
+      {
+        id: 'network-model-uuid',
+        contents: [{
+          id: ['modelUUID'],
+          value: ['modelInfo', 'modelVersionId']
+        }]
+      },
+      {
+        id: 'network-serviceName',
+        contents: [{
+          id: ['serviceName'],
+          value: ['serviceName']
+        }]
+      },
+      {
+        id: 'network-service-id',
+        contents: [{
+          id: ['serviceUUID'],
+          value: ['serviceUUID']
+        }]
+      },
+      {
+        id: 'network-tenantName',
+        contents: [{
+          id: ['tenant'],
+          value: ['tenantName']
+        }]
+      },
+      {
+        id: 'network-region',
+        contents: [{
+          id: ['region'],
+          value: ['lcpCloudRegionId']
+        }]
+      }
+    ];
+  };
+
+  sortElementsResultByField = (elements, fieldName): any[] => {
+    return _.sortBy(elements, o => o[fieldName]);
+  };
+
+  shouldAddNotAssigned = (networks): boolean => {
+    return _.values(networks).some(network => _.isNil(network.role) || network.role === "");
+  };
+}
diff --git a/vid-webpack-master/src/app/drawingBoard/service-planning/objectsToTree/models/vrf/vrfModal/vpnStep/vpn.step.model.ts b/vid-webpack-master/src/app/drawingBoard/service-planning/objectsToTree/models/vrf/vrfModal/vpnStep/vpn.step.model.ts
new file mode 100644 (file)
index 0000000..ea3c696
--- /dev/null
@@ -0,0 +1,17 @@
+export class VPNModalRow {
+  instanceId: string;
+  instanceName: string;
+  platformName: string;
+  instanceType: string;
+  region: string;
+  customerId: string;
+  modelInfo : {
+    modelCustomizationId: string;
+    modelInvariantId: string;
+    modelVersionId:  string;
+  };
+  routeTargets: {
+    "globalRouteTarget" : string,
+    "routeTargetRole" : string
+  }[];
+}
diff --git a/vid-webpack-master/src/app/drawingBoard/service-planning/objectsToTree/models/vrf/vrfModal/vpnStep/vpn.step.service.spec.ts b/vid-webpack-master/src/app/drawingBoard/service-planning/objectsToTree/models/vrf/vrfModal/vpnStep/vpn.step.service.spec.ts
new file mode 100644 (file)
index 0000000..b64b2f1
--- /dev/null
@@ -0,0 +1,463 @@
+import {NgRedux} from "@angular-redux/store";
+import {AppState} from "../../../../../../../shared/store/reducers";
+import {getTestBed, TestBed} from "@angular/core/testing";
+import {NgReduxTestingModule} from "@angular-redux/store/testing";
+import {HttpClientTestingModule} from "@angular/common/http/testing";
+import {FeatureFlagsService} from "../../../../../../../shared/services/featureFlag/feature-flags.service";
+import {AaiService} from "../../../../../../../shared/services/aaiService/aai.service";
+import {VpnStepService} from "./vpn.step.service";
+import {NetworkStepService} from "../networkStep/network.step.service";
+import {ITableContent} from "../../../../../../../shared/components/searchMembersModal/members-table/element-table-row.model";
+import {SearchElementsModalComponent} from "../../../../../../../shared/components/searchMembersModal/search-elements-modal.component";
+import {ElementsTableService} from "../../../../../../../shared/components/searchMembersModal/members-table/elements-table.service";
+import {DataFilterPipe} from "../../../../../../../shared/pipes/dataFilter/data-filter.pipe";
+import * as _ from "lodash";
+
+describe('VPN step service', () => {
+  let injector;
+  let service: VpnStepService;
+  let memberTableService: ElementsTableService;
+  let store: NgRedux<AppState>;
+  beforeAll(done => (async () => {
+    TestBed.configureTestingModule({
+      imports: [NgReduxTestingModule, HttpClientTestingModule],
+      providers: [
+        VpnStepService,
+        NetworkStepService,
+        FeatureFlagsService,
+        AaiService,
+        ElementsTableService,
+        DataFilterPipe
+      ]
+    });
+    await TestBed.compileComponents();
+    injector = getTestBed();
+    service = injector.get(VpnStepService);
+    store = injector.get(NgRedux);
+    memberTableService = injector.get(ElementsTableService);
+  })().then(done).catch(done.fail));
+
+  test('service should be defined', () => {
+    expect(service).toBeDefined();
+  });
+
+  test('getVPNStepHeaders', () => {
+    let vpnHeaders = service.getVPNStepHeaders();
+    expect(vpnHeaders).toEqual([
+      {displayName: `VPN instance name`, key: ['instanceName']},
+      {displayName: `Version`, key: ['modelInfo', 'modelVersionId']},
+      {displayName: `Instance ID`, key: ['instanceId']},
+      {displayName: `Platform`, key: ['platformName']},
+      {displayName: 'Region', key: ['region']},
+      {displayName: 'Route target', key: ['routeTargets', 'globalRouteTarget'], type: "LIST"},
+      {displayName: 'Route target role', key: ['routeTargets', 'routeTargetRole'], type: "LIST"},
+      {displayName: 'Customer VPN ID', key: ['customerId']},
+    ]);
+  });
+
+
+  test('vpnStep', () => {
+    spyOn(store, 'getState').and.returnValue({
+      "global": {
+        "genericModalHelper": {
+          "selectedNetwork": {
+            "action": "None",
+            "instanceName": "NETWORK_1_INSTANCE_NAME",
+            "instanceId": "NETWORK_1_INSTANCE_ID",
+            "orchStatus": null,
+            "productFamilyId": null,
+            "lcpCloudRegionId": "hvf23b",
+            "tenantId": "3e9a20a3e89e45f884e09df0cc2d2d2a",
+            "tenantName": "APPC-24595-T-IST-02C",
+            "modelInfo": {
+              "modelInvariantId": "network-instance-model-invariant-id",
+              "modelVersionId": "7a6ee536-f052-46fa-aa7e-2fca9d674c44",
+              "modelVersion": "2.0",
+              "modelName": "vf_vEPDG",
+              "modelType": "vnf"
+            },
+            "roles": ["network role 1", "network role 2"],
+            "instanceType": "NETWORK_1_INSTANCE_TYPE",
+            "provStatus": null,
+            "inMaint": false,
+            "uuid": "7a6ee536-f052-46fa-aa7e-2fca9d674c44",
+            "originalName": null,
+            "legacyRegion": null,
+            "lineOfBusiness": null,
+            "platformName": null,
+            "trackById": "VNF1_INSTANCE_ID",
+            "serviceInstanceId": "service-instance-id1",
+            "serviceInstanceName": "service-instance-name",
+            "isSelected": true
+          },
+          "selectedVpn": {
+            "vpn-id": "120d39fb-3627-473d-913c-d228dd0f8e5b",
+            "vpn-name": "LPPVPN",
+            "vpn-platform": "AVPN",
+            "vpn-type": "SERVICE-INFRASTRUCTURE",
+            "vpn-region": "USA,EMEA",
+            "customer-vpn-id": "VPN1260",
+            "model-customization-id": null,
+            "model-invariant-id": null,
+            "model-version-id": null,
+            "route-targets": null,
+            "isSelected": true
+          }
+        },
+      }, "service": {}
+    });
+    const networkStep = service.getVpnStep(
+      "f028b2e2-7080-4b13-91b2-94944d4c42d8",
+      <any>{
+        data: {
+          children: [],
+          componentInfoType: "VRF",
+          count: 0,
+          disabled: false,
+          id: "dd024d73-9bd1-425d-9db5-476338d53433",
+          isEcompGeneratedNaming: false,
+          max: 1,
+          modelCustomizationId: "dd024d73-9bd1-425d-9db5-476338d53433",
+          modelUniqueId: "dd024d73-9bd1-425d-9db5-476338d53433",
+          modelVersionId: "9cac02be-2489-4374-888d-2863b4511a59",
+          name: "VRF Entry Configuration 0",
+          tooltip: "VRF",
+          type: "VRF",
+          typeName: "VRF"
+        }
+      });
+
+    expect(networkStep.type).toEqual('VPN');
+    expect(networkStep.title).toEqual('Associate VPN');
+    expect(networkStep.description).toEqual('Select a VPN to associate to the VRF Entry');
+    expect(networkStep.noElementsMsg).toEqual('No VPN instances were found.');
+    expect(networkStep.maxSelectRow).toEqual(1);
+    expect(networkStep.uniqObjectField).toEqual('instanceId');
+    expect(networkStep.topButton.text).toEqual('SET VPN');
+    expect(networkStep.criteria).toHaveLength(0);
+
+  });
+
+  test('getsVPNStepSearchFields', () => {
+    const networkStepSearchFields = service.getsVPNStepSearchFields();
+    expect(networkStepSearchFields[0].value).toEqual("SERVICE-INFRASTRUCTURE");
+  });
+
+  test('getVpnStepHeaders should return the correct headers for vpn popup', () => {
+    let headers = service.getVPNStepHeaders();
+    expect(headers[0].displayName).toEqual('VPN instance name');
+    expect(headers[0].key).toEqual(['instanceName']);
+
+    expect(headers[1].displayName).toEqual('Version');
+    expect(headers[1].key).toEqual(['modelInfo', 'modelVersionId']);
+
+    expect(headers[2].displayName).toEqual('Instance ID');
+    expect(headers[2].key).toEqual(['instanceId']);
+
+    expect(headers[3].displayName).toEqual('Platform');
+    expect(headers[3].key).toEqual(['platformName']);
+
+    expect(headers[4].displayName).toEqual('Region');
+    expect(headers[4].key).toEqual(['region']);
+
+    expect(headers[5].displayName).toEqual('Route target');
+    expect(headers[5].key).toEqual(['routeTargets', 'globalRouteTarget']);
+
+    expect(headers[6].displayName).toEqual('Route target role');
+    expect(headers[6].key).toEqual(['routeTargets', 'routeTargetRole']);
+
+    expect(headers[7].displayName).toEqual('Customer VPN ID');
+    expect(headers[7].key).toEqual(['customerId']);
+
+  });
+
+  test('getElementsFirstStep should return sort vpns by name', () => {
+    let vpns = [
+      {"name": "B"},
+      {"name": "A"},
+      {"name": "D"},
+      {"name": "C"},
+      {"name": "E"}
+    ];
+
+    let sortedNetworkByInstanceName = service.sortElementsResultByField(vpns, "name");
+    expect(sortedNetworkByInstanceName).toEqual([
+      {"name": "A"},
+      {"name": "B"},
+      {"name": "C"},
+      {"name": "D"},
+      {"name": "E"}
+    ])
+  });
+
+  test('getVpnTableContent', () => {
+    let tableContent: ITableContent[] = service.getVPNTableContent();
+    expect(tableContent).toEqual(
+      [
+        {
+          id: 'vpn-name',
+          contents: [{
+            id: ['vpn-name'],
+            value: ['instanceName']
+          }]
+        },
+        {
+          id: 'model-version-id',
+          contents: [{
+            id: ['model-version-id'],
+            value: ['modelInfo', 'modelVersionId']
+          }]
+        },
+        {
+          id: 'vpn-id',
+          contents: [{
+            id: ['vpn-id'],
+            value: ['instanceId']
+          }]
+        },
+        {
+          id: 'vpn-platform',
+          contents: [{
+            id: ['vpn-platform'],
+            value: ['platformName']
+          }]
+        },
+        {
+          id: 'vpn-region',
+          contents: [{
+            id: ['vpn-region'],
+            value: ['region']
+          }]
+        },
+        {
+          id: 'global-route-target',
+          contents: [{
+            id: ['global-route-target'],
+            value: ['routeTargets', 'globalRouteTarget'],
+            type: 'LIST'
+          }]
+        },
+        {
+          id: 'route-target-role',
+          contents: [{
+            id: ['route-target-role'],
+            value: ['routeTargets', 'routeTargetRole'],
+            type: 'LIST'
+          }]
+        },
+        {
+          id: 'customer-vpn-id',
+          contents: [{
+            id: ['customer-vpn-id'],
+            value: ['customerId']
+          }]
+        }
+      ]
+    )
+  });
+
+  test('associateVrfNetworkMember', () => {
+    const vrfStoreKey: string = 'vrfStoreKey';
+    const serviceModelId: string = 'serviceModelId';
+    const reduxState = {
+      "global": {
+        "genericModalHelper": {
+          "selectedNetwork": {
+            "10a74149-c9d7-4918-bbcf-d5fb9b1799ce": true
+          }
+        }
+      }
+    };
+    spyOn(store, 'dispatch');
+    spyOn(store, 'getState').and.returnValue(reduxState);
+    let searchElementsModalComponent = new SearchElementsModalComponent(null, null, null, null, null);
+
+    searchElementsModalComponent.modalInformation = <any>{
+      serviceModelId: serviceModelId
+    };
+    service.associateVrfNetworkMember(searchElementsModalComponent, vrfStoreKey);
+    expect(store.dispatch).toHaveBeenCalledTimes(Object.keys(reduxState.global.genericModalHelper.selectedNetwork).length);
+  });
+
+  test('associateVrfVPNMember', () => {
+    const vrfStoreKey: string = 'vrfStoreKey';
+    const serviceModelId: string = 'serviceModelId';
+    const members = {
+      "120d39fb-3627-473d-913c-d228dd0f8e5b": {
+        "instanceId": "120d39fb-3627-473d-913c-d228dd0f8e5b",
+        "instanceName": "LPPVPN",
+        "platformName": "AVPN",
+        "instanceType": "SERVICE-INFRASTRUCTURE",
+        "region": "USA,EMEA",
+        "customerId": "VPN1260",
+        "modelInfo": {
+          "modelCustomizationId": null,
+          "modelInvariantId": null,
+          "modelVersionId": null,
+        },
+        "routeTargets": [
+          {
+            "globalRouteTarget": "globalRouteTarget_1",
+            "routeTargetRole": "routeTargetRole_1"
+          },
+          {
+            "globalRouteTarget": "globalRouteTarget_2",
+            "routeTargetRole": "routeTargetRole_2"
+          },
+          {
+            "globalRouteTarget": "globalRouteTarget_3",
+            "routeTargetRole": "routeTargetRole_3"
+          }
+        ],
+        "isSelected": true
+      },
+      "c70391f3-a6e3-4874-9834-cbe12d7bf8b6": {
+        "instanceId": "c70391f3-a6e3-4874-9834-cbe12d7bf8b6",
+        "instanceName": "LPPVPN",
+        "platformName": "AVPN",
+        "instanceType": "SERVICE-INFRASTRUCTURE",
+        "region": "USA,EMEA",
+        "customerId": "VPN1274",
+        "modelInfo": {
+          "modelCustomizationId": null,
+          "modelInvariantId": null,
+          "modelVersionId": null
+        },
+        "routeTargets": null,
+        "isSelected": false
+      },
+      "4776516b-7da2-446c-9ba7-47ca8c30c571": {
+        "instanceId": "4776516b-7da2-446c-9ba7-47ca8c30c571",
+        "instanceName": "LPPVPN",
+        "platformName": "AVPN",
+        "instanceType": "SERVICE-INFRASTRUCTURE",
+        "region": "USA,EMEA",
+        "customerId": "VPN1275",
+        "modelInfo": {
+          "modelCustomizationId": null,
+          "modelInvariantId": null,
+          "modelVersionId": null
+        },
+
+        "routeTargets": null,
+        "isSelected": false
+      },
+      "46fcb25a-e7ba-4d96-99ba-3bb6eae6aba7": {
+        "instanceId": "46fcb25a-e7ba-4d96-99ba-3bb6eae6aba7",
+        "instanceName": "LPPVPN",
+        "platformName": "AVPN",
+        "instanceType": "SERVICE-INFRASTRUCTURE",
+        "region": "USA,EMEA",
+        "customerId": "VPN1271",
+        "modelInfo": {
+          "modelCustomizationId": null,
+          "modelInvariantId": null,
+          "modelVersionId": null,
+        },
+        "routeTargets": null,
+        "isSelected": false
+      },
+      "ffefbe38-3087-418a-87ae-f6582a15be78": {
+        "instanceId": "ffefbe38-3087-418a-87ae-f6582a15be78",
+        "instanceName": "LPPVPN",
+        "platformName": "AVPN",
+        "instanceType": "SERVICE-INFRASTRUCTURE",
+        "region": "USA,EMEA",
+        "customerId": "VPN1272",
+        "modelInfo": {
+          "modelCustomizationId": null,
+          "modelInvariantId": null,
+          "modelVersionId": null,
+        },
+        "routeTargets": null,
+        "isSelected": false
+      },
+      "961d05be-ee41-40a2-8653-f603fc495175": {
+        "id": "961d05be-ee41-40a2-8653-f603fc495175",
+        "name": "LPPVPN",
+        "platform": "AVPN",
+        "type": "SERVICE-INFRASTRUCTURE",
+        "region": "USA,EMEA",
+        "customerId": "VPN1273",
+        "modelCustomizationId": null,
+        "modelInvariantId": null,
+        "modelVersionId": null,
+        "routeTargets": null,
+        "isSelected": false
+      },
+      "14bcfc2f-bbee-4fd9-89a5-42eb5dbb08d5": {
+        "instanceId": "14bcfc2f-bbee-4fd9-89a5-42eb5dbb08d5",
+        "instanceName": "LPPVPN",
+        "platformName": "AVPN",
+        "instanceType": "SERVICE-INFRASTRUCTURE",
+        "region": "USA,EMEA",
+        "customerId": "913443",
+        "modelInfo": {
+          "modelCustomizationId": null,
+          "modelInvariantId": null,
+          "modelVersionId": null,
+        },
+        "routeTargets": null,
+        "isSelected": false
+      },
+      "89d4c968-158c-4722-a22c-c5c2ccc17fd5": {
+        "instanceId": "89d4c968-158c-4722-a22c-c5c2ccc17fd5",
+        "instanceName": "LPPVPN",
+        "platformName": "AVPN",
+        "instanceType": "SERVICE-INFRASTRUCTURE",
+        "region": "USA,EMEA",
+        "customerId": "VPN1276",
+        "modelInfo": {
+          "modelCustomizationId": null,
+          "modelInvariantId": null,
+          "modelVersionId": null,
+        },
+        "routeTargets": null,
+        "isSelected": false
+      },
+      "3e7834fb-a8e0-4243-a837-5352ccab4602": {
+        "instanceId": "3e7834fb-a8e0-4243-a837-5352ccab4602",
+        "instanceName": "LPPVPN",
+        "platformName": "AVPN",
+        "instanceType": "SERVICE-INFRASTRUCTURE",
+        "region": "USA,EMEA",
+        "customerId": "VPN1259",
+        "modelInfo": {
+          "modelCustomizationId": null,
+          "modelInvariantId": null,
+          "modelVersionId": null,
+        },
+        "routeTargets": null,
+        "isSelected": false
+      },
+      "844a1ea7-556a-4e49-8aa3-171f1db4ea02": {
+        "instanceId": "844a1ea7-556a-4e49-8aa3-171f1db4ea02",
+        "instanceName": "LPPVPN",
+        "platformName": "AVPN",
+        "instanceType": "SERVICE-INFRASTRUCTURE",
+        "region": "USA,EMEA",
+        "customerId": "VPN1277",
+        "modelInfo": {
+          "modelCustomizationId": null,
+          "modelInvariantId": null,
+          "modelVersionId": null,
+        },
+        "routeTargets": null,
+        "isSelected": false
+      }
+    };
+    spyOn(store, 'dispatch');
+    memberTableService.allElementsStatusMap = <any>members;
+    let searchElementsModalComponent = new SearchElementsModalComponent(null, null, null, memberTableService, null);
+
+    searchElementsModalComponent.modalInformation = <any>{
+      modalInformation: {
+        serviceModelId: serviceModelId
+      }
+    };
+
+    let memberArr = _.values(members);
+    service.associateVrfVPNMember(searchElementsModalComponent, vrfStoreKey);
+    expect(store.dispatch).toHaveBeenCalledTimes(memberArr.filter((item) => item.isSelected).length * 2);
+  });
+});
diff --git a/vid-webpack-master/src/app/drawingBoard/service-planning/objectsToTree/models/vrf/vrfModal/vpnStep/vpn.step.service.ts b/vid-webpack-master/src/app/drawingBoard/service-planning/objectsToTree/models/vrf/vrfModal/vpnStep/vpn.step.service.ts
new file mode 100644 (file)
index 0000000..5523cf1
--- /dev/null
@@ -0,0 +1,195 @@
+import {Injectable} from "@angular/core";
+import {NgRedux} from "@angular-redux/store";
+import {AppState} from "../../../../../../../shared/store/reducers";
+import {AaiService} from "../../../../../../../shared/services/aaiService/aai.service";
+import {
+  ISearchField,
+  ITableContent,
+  ModalInformation
+} from "../../../../../../../shared/components/searchMembersModal/members-table/element-table-row.model";
+import {ElementsTableService} from "../../../../../../../shared/components/searchMembersModal/members-table/elements-table.service";
+import {
+  clearAllGenericModalhelper,
+  updateGenericModalhelper
+} from "../../../../../../../shared/storeUtil/utils/global/global.actions";
+import {Observable} from "rxjs";
+import {CustomTableColumnDefinition} from "../../../../../../../shared/components/searchMembersModal/members-table/elements-table.component";
+import {VPNModalRow} from "./vpn.step.model";
+import {NetworkStepService} from "../networkStep/network.step.service";
+import * as _ from "lodash";
+import {
+  associateVRFMember,
+  clearAssociateVRFMemberInstance,
+  createVrfInstance
+} from "../../../../../../../shared/storeUtil/utils/vrf/vrf.actions";
+import {calculateNextUniqueModelName} from "../../../../../../../shared/storeUtil/utils/vnf/vnf.reducers";
+
+@Injectable()
+export class VpnStepService {
+  constructor(private _store: NgRedux<AppState>, private _aaiService: AaiService, private _networkStepService: NetworkStepService) {
+  }
+
+  uniqObjectField: string = "instanceId";
+  type: string = "VPN";
+
+  getVpnStep = (serviceInstance, serviceModelId, ...otherSteps): ModalInformation => {
+    return {
+      type: this.type,
+      serviceModelId: serviceModelId,
+      title: 'Associate VPN',
+      description: 'Select a VPN to associate to the VRF Entry',
+      noElementsMsg: 'No VPN instances were found.',
+      maxSelectRow: 1,
+      uniqObjectField: this.uniqObjectField,
+      backAction: (searchElementsModalComponent) => {
+        ElementsTableService.changeModalInformationDataTrigger.next({
+          modalInformation: otherSteps[1].getNetworkStep(serviceInstance, searchElementsModalComponent.modalInformation.serviceModelId, ...otherSteps),
+          selectedRowsIds: [this._store.getState().global.genericModalHelper.selectedNetwork.instanceUUID]
+        });
+      },
+      topButton: {
+        text: 'SET VPN',
+        action: (searchElementsModalComponent) => {
+          let currentVRF = this._store.getState().global.genericModalHelper['currentVRF'];
+          const vrfStoreKey: string = _.isNil(currentVRF['vrfStoreKey'])
+            ? calculateNextUniqueModelName(currentVRF['model']['name'], searchElementsModalComponent.modalInformation.serviceModelId, this._store.getState().service, 'vrfs')
+            : currentVRF['vrfStoreKey'];
+
+
+          if (_.isNil(currentVRF['vrfStoreKey'])) {
+            this._store.dispatch(createVrfInstance(currentVRF['model'], serviceModelId, vrfStoreKey));
+          } else {
+            this._store.dispatch(clearAssociateVRFMemberInstance(vrfStoreKey, serviceModelId, 'networks'));
+            this._store.dispatch(clearAssociateVRFMemberInstance(vrfStoreKey, serviceModelId, 'vpns'));
+          }
+
+          this.associateVrfVPNMember(searchElementsModalComponent, vrfStoreKey);
+          this.associateVrfNetworkMember(searchElementsModalComponent, vrfStoreKey);
+
+          this._store.dispatch(clearAllGenericModalhelper());
+          searchElementsModalComponent.closeDialog();
+        }
+      },
+      getElements: () => this.getVPNs(),
+      criteria: [],
+      searchFields: this.getsVPNStepSearchFields(),
+      tableHeaders: this.getVPNStepHeaders(),
+      tableContent: this.getVPNTableContent()
+    };
+  };
+
+  getVPNs = (): Observable<any[]> => {
+    return this._aaiService.retrieveActiveVPNs().map((vpns: VPNModalRow[]) => {
+      return this.sortElementsResultByField(vpns, "instanceName");
+    });
+  };
+
+  sortElementsResultByField = (elements, fieldName): any[] => {
+    return _.sortBy(elements, o => o[fieldName]);
+  };
+
+  associateVrfVPNMember = (searchElementsModalComponent, vrfStoreKey): void => {
+    let tmpMembers = searchElementsModalComponent._membersTableService.allElementsStatusMap;
+    for (let key in tmpMembers) {
+      if (tmpMembers[key].isSelected) {
+        this._store.dispatch(updateGenericModalhelper(`selected${this.type}`, tmpMembers[key], this.uniqObjectField));
+        this._store.dispatch(associateVRFMember(vrfStoreKey, searchElementsModalComponent.modalInformation.serviceModelId, tmpMembers[key], 'vpns'));
+      }
+    }
+  };
+
+  associateVrfNetworkMember = (searchElementsModalComponent, vrfStoreKey): void => {
+    let selectedNetworks = this._store.getState().global.genericModalHelper['selectedNetwork'];
+    for (let key in selectedNetworks) {
+      this._store.dispatch(associateVRFMember(vrfStoreKey, searchElementsModalComponent.modalInformation.serviceModelId, selectedNetworks[key], 'networks'));
+    }
+  };
+
+  getsVPNStepSearchFields = (): ISearchField[] => {
+    return [
+      {
+        title: 'Type ',
+        dataTestId: 'Type',
+        value: "SERVICE-INFRASTRUCTURE",
+        type: "LABEL"
+      }
+    ]
+  };
+
+  getVPNStepHeaders = (): CustomTableColumnDefinition[] => {
+    return [
+      {displayName: `VPN instance name`, key: ['instanceName']},
+      {displayName: `Version`, key: ['modelInfo', 'modelVersionId']},
+      {displayName: `Instance ID`, key: ['instanceId']},
+      {displayName: `Platform`, key: ['platformName']},
+      {displayName: 'Region', key: ['region']},
+      {displayName: 'Route target', key: ['routeTargets', 'globalRouteTarget'], type: 'LIST'},
+      {displayName: 'Route target role', key: ['routeTargets', 'routeTargetRole'], type: 'LIST'},
+      {displayName: 'Customer VPN ID', key: ['customerId']},
+    ];
+  };
+
+  getVPNTableContent = (): ITableContent[] => {
+    return [
+      {
+        id: 'vpn-name',
+        contents: [{
+          id: ['vpn-name'],
+          value: ['instanceName']
+        }]
+      },
+      {
+        id: 'model-version-id',
+        contents: [{
+          id: ['model-version-id'],
+          value: ['modelInfo', 'modelVersionId']
+        }]
+      },
+      {
+        id: 'vpn-id',
+        contents: [{
+          id: ['vpn-id'],
+          value: ['instanceId']
+        }]
+      },
+      {
+        id: 'vpn-platform',
+        contents: [{
+          id: ['vpn-platform'],
+          value: ['platformName']
+        }]
+      },
+      {
+        id: 'vpn-region',
+        contents: [{
+          id: ['vpn-region'],
+          value: ['region']
+        }]
+      },
+      {
+        id: 'global-route-target',
+        contents: [{
+          id: ['global-route-target'],
+          value: ['routeTargets', 'globalRouteTarget'],
+          type: 'LIST'
+        }]
+      },
+      {
+        id: 'route-target-role',
+        contents: [{
+          id: ['route-target-role'],
+          value: ['routeTargets', 'routeTargetRole'],
+          type: 'LIST'
+        }]
+      },
+      {
+        id: 'customer-vpn-id',
+        contents: [{
+          id: ['customer-vpn-id'],
+          value: ['customerId']
+        }]
+      }
+    ];
+  };
+
+}
index fd39ed9..d3f04fe 100644 (file)
@@ -30,6 +30,8 @@ import {DuplicateService} from "../../duplicate/duplicate.service";
 import {SdcUiComponentsModule, SdcUiServices} from "onap-ui-angular";
 import {ErrorMsgService} from "../../../../shared/components/error-msg/error-msg.service";
 import {ComponentInfoService} from "../../component-info/component-info.service";
+import {NetworkStepService} from "../models/vrf/vrfModal/networkStep/network.step.service";
+import {VpnStepService} from "../models/vrf/vrfModal/vpnStep/vpn.step.service";
 
 class MockAppStore<T> {
   getState() {
@@ -81,6 +83,8 @@ describe('Model Tree Generator service', () => {
         ErrorMsgService,
         ComponentInfoService,
         SdcUiServices.ModalService,
+        NetworkStepService,
+        VpnStepService,
         { provide: NgRedux, useClass: MockAppStore },
         MockNgRedux]
     });
@@ -106,14 +110,18 @@ describe('Model Tree Generator service', () => {
     delete convertToNodes[0].trackById;
     delete convertToNodes[0].updatePoistionFunction;
     delete convertToNodes[0].position;
-    delete convertToNodes[0].onSelectedNode;
+    delete convertToNodes[0].getInfo;
+    delete convertToNodes[0].componentInfoType;
+    delete convertToNodes[0].getModel;
     delete convertToNodes[1].children[0].isFailed;
     delete convertToNodes[1].children[0].menuActions;
     delete convertToNodes[1].children[0].trackById;
     delete convertToNodes[1].children[0].errors;
     delete convertToNodes[1].children[0].updatePoistionFunction;
     delete convertToNodes[1].children[0].position;
-    delete convertToNodes[1].children[0].onSelectedNode;
+    delete convertToNodes[1].children[0].getInfo;
+    delete convertToNodes[1].children[0].getModel;
+    delete convertToNodes[1].children[0].componentInfoType;
     expect(Object.assign({}, convertToNodes[0])).toEqual(Object.assign({}, expectInstanceNodesResultVNF()[0]));
     expect(Object.assign({}, convertToNodes[1].children[0])).toEqual(Object.assign({}, expectInstanceNodesResultVNF()[1].children[0]));
     expect(convertToNodes[1].inMaint).toBeFalsy();
@@ -131,7 +139,9 @@ describe('Model Tree Generator service', () => {
     delete convertToNodes[1].isFailed;
     delete convertToNodes[1].updatePoistionFunction;
     delete convertToNodes[1].position;
-    delete convertToNodes[1].onSelectedNode;
+    delete convertToNodes[1].getModel;
+    delete convertToNodes[1].getInfo;
+    delete convertToNodes[1].componentInfoType;
     expect(Object.assign({}, convertToNodes[0].children[0].dynamicInputs)).toEqual(Object.assign({}, expectInstanceNodesResultVNF_Network()[0]['children'][0].dynamicInputs));
     expect(Object.assign({}, convertToNodes[0].children[0].missingData)).toEqual(Object.assign({}, expectInstanceNodesResultVNF_Network()[0]['children'][0].missingData));
     expect(Object.assign({}, convertToNodes[1])).toEqual(Object.assign({}, expectInstanceNodesResultVNF_Network()[1]));
@@ -154,7 +164,7 @@ describe('Model Tree Generator service', () => {
         "serviceEcompNaming": "false",
         "instantiationType": "Macro",
         "inputs": {
-          "2017488_adiodvpe0_ASN": {
+          "2017488_pasqualevpe0_ASN": {
             "type": "string",
             "description": "AV/PE",
             "entry_schema": null,
@@ -170,11 +180,11 @@ describe('Model Tree Generator service', () => {
         }
       },
       "vnfs": {
-        "2017-388_ADIOD-vPE 1": {
+        "2017-388_PASQUALE-vPE 1": {
           "uuid": "0903e1c0-8e03-4936-b5c2-260653b96413",
           "invariantUuid": "00beb8f9-6d39-452f-816d-c709b9cbb87d",
-          "description": "Name ADIOD vPE Description The provider edge function for the ADIOD service supported by the Junipers VMX product Category Router Vendor Juniper Vendor Release Code 17.2 Owners Mary Fragale. Updated 9-25 to use v8.0 of the Juniper Valid 2 VLM",
-          "name": "2017-388_ADIOD-vPE",
+          "description": "Name PASQUALE vPE Description The provider edge function for the PASQUALE service supported by the Junipers VMX product Category Router Vendor Juniper Vendor Release Code 17.2 Owners Mary Fragale. Updated 9-25 to use v8.0 of the Juniper Valid 2 VLM",
+          "name": "2017-388_PASQUALE-vPE",
           "version": "1.0",
           "customizationUuid": "280dec31-f16d-488b-9668-4aae55d6648a",
           "inputs": {
@@ -237,37 +247,37 @@ describe('Model Tree Generator service', () => {
             "vnf_config_template_version": {
               "displayName": "vnf_config_template_version",
               "command": "get_input",
-              "inputName": "2017488_adiodvpe0_vnf_config_template_version"
+              "inputName": "2017488_pasqualevpe0_vnf_config_template_version"
             },
             "bandwidth_units": {
               "displayName": "bandwidth_units",
               "command": "get_input",
-              "inputName": "adiodvpe0_bandwidth_units"
+              "inputName": "pasqualevpe0_bandwidth_units"
             },
             "bandwidth": {
               "displayName": "bandwidth",
               "command": "get_input",
-              "inputName": "adiodvpe0_bandwidth"
+              "inputName": "pasqualevpe0_bandwidth"
             },
             "AIC_CLLI": {
               "displayName": "AIC_CLLI",
               "command": "get_input",
-              "inputName": "2017488_adiodvpe0_AIC_CLLI"
+              "inputName": "2017488_pasqualevpe0_AIC_CLLI"
             },
             "ASN": {
               "displayName": "ASN",
               "command": "get_input",
-              "inputName": "2017488_adiodvpe0_ASN"
+              "inputName": "2017488_pasqualevpe0_ASN"
             },
             "vnf_instance_name": {
               "displayName": "vnf_instance_name",
               "command": "get_input",
-              "inputName": "2017488_adiodvpe0_vnf_instance_name"
+              "inputName": "2017488_pasqualevpe0_vnf_instance_name"
             }
           },
           "properties": {
             "vmxvre_retype": "RE-VMX",
-            "vnf_config_template_version": "get_input:2017488_adiodvpe0_vnf_config_template_version",
+            "vnf_config_template_version": "get_input:2017488_pasqualevpe0_vnf_config_template_version",
             "sriov44_net_id": "48d399b3-11ee-48a8-94d2-f0ea94d6be8d",
             "int_ctl_net_id": "2f323477-6936-4d01-ac53-d849430281d9",
             "vmxvpfe_sriov41_0_port_mac": "00:11:22:EF:AC:DF",
@@ -312,7 +322,7 @@ describe('Model Tree Generator service', () => {
             "vmxvpfe_sriov43_0_port_unknownmulticastallow": "true",
             "vmxvre_int_ctl_ip_0": "10.0.0.10",
             "ecomp_generated_naming": "false",
-            "AIC_CLLI": "get_input:2017488_adiodvpe0_AIC_CLLI",
+            "AIC_CLLI": "get_input:2017488_pasqualevpe0_AIC_CLLI",
             "vnf_name": "mtnj309me6vre",
             "vmxvpfe_sriov41_0_port_unknownunicastallow": "true",
             "vmxvre_volume_type_1": "HITACHI",
@@ -320,14 +330,14 @@ describe('Model Tree Generator service', () => {
             "vmxvre_volume_type_0": "HITACHI",
             "vmxvpfe_volume_type_0": "HITACHI",
             "vmxvpfe_sriov43_0_port_broadcastallow": "true",
-            "bandwidth_units": "get_input:adiodvpe0_bandwidth_units",
+            "bandwidth_units": "get_input:pasqualevpe0_bandwidth_units",
             "vnf_id": "123",
             "vmxvre_oam_prefix": "24",
             "availability_zone_0": "mtpocfo-kvm-az01",
-            "ASN": "get_input:2017488_adiodvpe0_ASN",
+            "ASN": "get_input:2017488_pasqualevpe0_ASN",
             "vmxvre_chassis_i2cid": "161",
             "vmxvpfe_name_0": "vPFEXI",
-            "bandwidth": "get_input:adiodvpe0_bandwidth",
+            "bandwidth": "get_input:pasqualevpe0_bandwidth",
             "availability_zone_max_count": "1",
             "vmxvre_volume_size_0": "45.0",
             "vmxvre_volume_size_1": "50.0",
@@ -337,7 +347,7 @@ describe('Model Tree Generator service', () => {
             "vmxvre_ore_present": "0",
             "vmxvre_volume_name_0": "vREXI_FBVolume",
             "vmxvre_type": "0",
-            "vnf_instance_name": "get_input:2017488_adiodvpe0_vnf_instance_name",
+            "vnf_instance_name": "get_input:2017488_pasqualevpe0_vnf_instance_name",
             "vmxvpfe_sriov41_0_port_unknownmulticastallow": "true",
             "oam_net_id": "b95eeb1d-d55d-4827-abb4-8ebb94941429",
             "vmx_int_ctl_len": "24",
@@ -351,16 +361,16 @@ describe('Model Tree Generator service', () => {
             "vmxvpfe_flavor_name": "ns.c20r16d25.v5"
           },
           "type": "VF",
-          "modelCustomizationName": "2017-388_ADIOD-vPE 1",
+          "modelCustomizationName": "2017-388_PASQUALE-vPE 1",
           "vfModules": {},
           "volumeGroups": {},
           "vfcInstanceGroups": {}
         },
-        "2017-388_ADIOD-vPE 0": {
+        "2017-388_PASQUALE-vPE 0": {
           "uuid": "afacccf6-397d-45d6-b5ae-94c39734b168",
           "invariantUuid": "72e465fe-71b1-4e7b-b5ed-9496118ff7a8",
-          "description": "Name ADIOD vPE Description The provider edge function for the ADIOD service supported by the Junipers VMX product Category Router Vendor Juniper Vendor Release Code 17.2 Owners Mary Fragale. Updated 9-25 to use v8.0 of the Juniper Valid 2 VLM",
-          "name": "2017-388_ADIOD-vPE",
+          "description": "Name PASQUALE vPE Description The provider edge function for the PASQUALE service supported by the Junipers VMX product Category Router Vendor Juniper Vendor Release Code 17.2 Owners Mary Fragale. Updated 9-25 to use v8.0 of the Juniper Valid 2 VLM",
+          "name": "2017-388_PASQUALE-vPE",
           "version": "4.0",
           "customizationUuid": "b3c76f73-eeb5-4fb6-9d31-72a889f1811c",
           "inputs": {
@@ -423,37 +433,37 @@ describe('Model Tree Generator service', () => {
             "vnf_config_template_version": {
               "displayName": "vnf_config_template_version",
               "command": "get_input",
-              "inputName": "2017488_adiodvpe0_vnf_config_template_version"
+              "inputName": "2017488_pasqualevpe0_vnf_config_template_version"
             },
             "bandwidth_units": {
               "displayName": "bandwidth_units",
               "command": "get_input",
-              "inputName": "adiodvpe0_bandwidth_units"
+              "inputName": "pasqualevpe0_bandwidth_units"
             },
             "bandwidth": {
               "displayName": "bandwidth",
               "command": "get_input",
-              "inputName": "adiodvpe0_bandwidth"
+              "inputName": "pasqualevpe0_bandwidth"
             },
             "AIC_CLLI": {
               "displayName": "AIC_CLLI",
               "command": "get_input",
-              "inputName": "2017488_adiodvpe0_AIC_CLLI"
+              "inputName": "2017488_pasqualevpe0_AIC_CLLI"
             },
             "ASN": {
               "displayName": "ASN",
               "command": "get_input",
-              "inputName": "2017488_adiodvpe0_ASN"
+              "inputName": "2017488_pasqualevpe0_ASN"
             },
             "vnf_instance_name": {
               "displayName": "vnf_instance_name",
               "command": "get_input",
-              "inputName": "2017488_adiodvpe0_vnf_instance_name"
+              "inputName": "2017488_pasqualevpe0_vnf_instance_name"
             }
           },
           "properties": {
             "vmxvre_retype": "RE-VMX",
-            "vnf_config_template_version": "get_input:2017488_adiodvpe0_vnf_config_template_version",
+            "vnf_config_template_version": "get_input:2017488_pasqualevpe0_vnf_config_template_version",
             "sriov44_net_id": "48d399b3-11ee-48a8-94d2-f0ea94d6be8d",
             "int_ctl_net_id": "2f323477-6936-4d01-ac53-d849430281d9",
             "vmxvpfe_sriov41_0_port_mac": "00:11:22:EF:AC:DF",
@@ -499,7 +509,7 @@ describe('Model Tree Generator service', () => {
             "vmxvpfe_sriov43_0_port_unknownmulticastallow": "true",
             "vmxvre_int_ctl_ip_0": "10.0.0.10",
             "ecomp_generated_naming": "false",
-            "AIC_CLLI": "get_input:2017488_adiodvpe0_AIC_CLLI",
+            "AIC_CLLI": "get_input:2017488_pasqualevpe0_AIC_CLLI",
             "vnf_name": "mtnj309me6vre",
             "vmxvpfe_sriov41_0_port_unknownunicastallow": "true",
             "vmxvre_volume_type_1": "HITACHI",
@@ -507,14 +517,14 @@ describe('Model Tree Generator service', () => {
             "vmxvre_volume_type_0": "HITACHI",
             "vmxvpfe_volume_type_0": "HITACHI",
             "vmxvpfe_sriov43_0_port_broadcastallow": "true",
-            "bandwidth_units": "get_input:adiodvpe0_bandwidth_units",
+            "bandwidth_units": "get_input:pasqualevpe0_bandwidth_units",
             "vnf_id": "123",
             "vmxvre_oam_prefix": "24",
             "availability_zone_0": "mtpocfo-kvm-az01",
-            "ASN": "get_input:2017488_adiodvpe0_ASN",
+            "ASN": "get_input:2017488_pasqualevpe0_ASN",
             "vmxvre_chassis_i2cid": "161",
             "vmxvpfe_name_0": "vPFEXI",
-            "bandwidth": "get_input:adiodvpe0_bandwidth",
+            "bandwidth": "get_input:pasqualevpe0_bandwidth",
             "availability_zone_max_count": "1",
             "vmxvre_volume_size_0": "45.0",
             "vmxvre_volume_size_1": "50.0",
@@ -524,7 +534,7 @@ describe('Model Tree Generator service', () => {
             "vmxvre_ore_present": "0",
             "vmxvre_volume_name_0": "vREXI_FBVolume",
             "vmxvre_type": "0",
-            "vnf_instance_name": "get_input:2017488_adiodvpe0_vnf_instance_name",
+            "vnf_instance_name": "get_input:2017488_pasqualevpe0_vnf_instance_name",
             "vmxvpfe_sriov41_0_port_unknownmulticastallow": "true",
             "oam_net_id": "b95eeb1d-d55d-4827-abb4-8ebb94941429",
             "vmx_int_ctl_len": "24",
@@ -538,16 +548,16 @@ describe('Model Tree Generator service', () => {
             "vmxvpfe_flavor_name": "ns.c20r16d25.v5"
           },
           "type": "VF",
-          "modelCustomizationName": "2017-388_ADIOD-vPE 0",
+          "modelCustomizationName": "2017-388_PASQUALE-vPE 0",
           "vfModules": {},
           "volumeGroups": {},
           "vfcInstanceGroups": {}
         },
-        "2017-488_ADIOD-vPE 0": {
+        "2017-488_PASQUALE-vPE 0": {
           "uuid": "69e09f68-8b63-4cc9-b9ff-860960b5db09",
           "invariantUuid": "72e465fe-71b1-4e7b-b5ed-9496118ff7a8",
-          "description": "Name ADIOD vPE Description The provider edge function for the ADIOD service supported by the Junipers VMX product Category Router Vendor Juniper Vendor Release Code 17.2 Owners Mary Fragale. Updated 9-25 to use v8.0 of the Juniper Valid 2 VLM",
-          "name": "2017-488_ADIOD-vPE",
+          "description": "Name PASQUALE vPE Description The provider edge function for the PASQUALE service supported by the Junipers VMX product Category Router Vendor Juniper Vendor Release Code 17.2 Owners Mary Fragale. Updated 9-25 to use v8.0 of the Juniper Valid 2 VLM",
+          "name": "2017-488_PASQUALE-vPE",
           "version": "5.0",
           "customizationUuid": "1da7b585-5e61-4993-b95e-8e6606c81e45",
           "inputs": {
@@ -610,37 +620,37 @@ describe('Model Tree Generator service', () => {
             "vnf_config_template_version": {
               "displayName": "vnf_config_template_version",
               "command": "get_input",
-              "inputName": "2017488_adiodvpe0_vnf_config_template_version"
+              "inputName": "2017488_pasqualevpe0_vnf_config_template_version"
             },
             "bandwidth_units": {
               "displayName": "bandwidth_units",
               "command": "get_input",
-              "inputName": "adiodvpe0_bandwidth_units"
+              "inputName": "pasqualevpe0_bandwidth_units"
             },
             "bandwidth": {
               "displayName": "bandwidth",
               "command": "get_input",
-              "inputName": "adiodvpe0_bandwidth"
+              "inputName": "pasqualevpe0_bandwidth"
             },
             "AIC_CLLI": {
               "displayName": "AIC_CLLI",
               "command": "get_input",
-              "inputName": "2017488_adiodvpe0_AIC_CLLI"
+              "inputName": "2017488_pasqualevpe0_AIC_CLLI"
             },
             "ASN": {
               "displayName": "ASN",
               "command": "get_input",
-              "inputName": "2017488_adiodvpe0_ASN"
+              "inputName": "2017488_pasqualevpe0_ASN"
             },
             "vnf_instance_name": {
               "displayName": "vnf_instance_name",
               "command": "get_input",
-              "inputName": "2017488_adiodvpe0_vnf_instance_name"
+              "inputName": "2017488_pasqualevpe0_vnf_instance_name"
             }
           },
           "properties": {
             "vmxvre_retype": "RE-VMX",
-            "vnf_config_template_version": "get_input:2017488_adiodvpe0_vnf_config_template_version",
+            "vnf_config_template_version": "get_input:2017488_pasqualevpe0_vnf_config_template_version",
             "sriov44_net_id": "48d399b3-11ee-48a8-94d2-f0ea94d6be8d",
             "int_ctl_net_id": "2f323477-6936-4d01-ac53-d849430281d9",
             "vmxvpfe_sriov41_0_port_mac": "00:11:22:EF:AC:DF",
@@ -687,7 +697,7 @@ describe('Model Tree Generator service', () => {
             "vmxvpfe_sriov43_0_port_unknownmulticastallow": "true",
             "vmxvre_int_ctl_ip_0": "10.0.0.10",
             "ecomp_generated_naming": "false",
-            "AIC_CLLI": "get_input:2017488_adiodvpe0_AIC_CLLI",
+            "AIC_CLLI": "get_input:2017488_pasqualevpe0_AIC_CLLI",
             "vnf_name": "mtnj309me6vre",
             "vmxvpfe_sriov41_0_port_unknownunicastallow": "true",
             "vmxvre_volume_type_1": "HITACHI",
@@ -695,14 +705,14 @@ describe('Model Tree Generator service', () => {
             "vmxvre_volume_type_0": "HITACHI",
             "vmxvpfe_volume_type_0": "HITACHI",
             "vmxvpfe_sriov43_0_port_broadcastallow": "true",
-            "bandwidth_units": "get_input:adiodvpe0_bandwidth_units",
+            "bandwidth_units": "get_input:pasqualevpe0_bandwidth_units",
             "vnf_id": "123",
             "vmxvre_oam_prefix": "24",
             "availability_zone_0": "mtpocfo-kvm-az01",
-            "ASN": "get_input:2017488_adiodvpe0_ASN",
+            "ASN": "get_input:2017488_pasqualevpe0_ASN",
             "vmxvre_chassis_i2cid": "161",
             "vmxvpfe_name_0": "vPFEXI",
-            "bandwidth": "get_input:adiodvpe0_bandwidth",
+            "bandwidth": "get_input:pasqualevpe0_bandwidth",
             "availability_zone_max_count": "1",
             "vmxvre_volume_size_0": "45.0",
             "vmxvre_volume_size_1": "50.0",
@@ -712,7 +722,7 @@ describe('Model Tree Generator service', () => {
             "vmxvre_ore_present": "0",
             "vmxvre_volume_name_0": "vREXI_FBVolume",
             "vmxvre_type": "0",
-            "vnf_instance_name": "get_input:2017488_adiodvpe0_vnf_instance_name",
+            "vnf_instance_name": "get_input:2017488_pasqualevpe0_vnf_instance_name",
             "vmxvpfe_sriov41_0_port_unknownmulticastallow": "true",
             "oam_net_id": "b95eeb1d-d55d-4827-abb4-8ebb94941429",
             "vmx_int_ctl_len": "24",
@@ -726,21 +736,21 @@ describe('Model Tree Generator service', () => {
             "vmxvpfe_flavor_name": "ns.c20r16d25.v5"
           },
           "type": "VF",
-          "modelCustomizationName": "2017-488_ADIOD-vPE 0",
+          "modelCustomizationName": "2017-488_PASQUALE-vPE 0",
           "vfModules": {
-            "2017488_adiodvpe0..2017488AdiodVpe..ADIOD_vRE_BV..module-1": {
+            "2017488_pasqualevpe0..2017488PasqualeVpe..PASQUALE_vRE_BV..module-1": {
               "uuid": "25284168-24bb-4698-8cb4-3f509146eca5",
               "invariantUuid": "7253ff5c-97f0-4b8b-937c-77aeb4d79aa1",
               "customizationUuid": "f7e7c365-60cf-49a9-9ebf-a1aa11b9d401",
               "description": null,
-              "name": "2017488AdiodVpe..ADIOD_vRE_BV..module-1",
+              "name": "2017488PasqualeVpe..PASQUALE_vRE_BV..module-1",
               "version": "6",
-              "modelCustomizationName": "2017488AdiodVpe..ADIOD_vRE_BV..module-1",
+              "modelCustomizationName": "2017488PasqualeVpe..PASQUALE_vRE_BV..module-1",
               "properties": {
                 "minCountInstances": 0,
                 "maxCountInstances": null,
                 "initialCount": 0,
-                "vfModuleLabel": "ADIOD_vRE_BV",
+                "vfModuleLabel": "PASQUALE_vRE_BV",
                 "baseModule": false
               },
               "inputs": {
@@ -750,10 +760,10 @@ describe('Model Tree Generator service', () => {
                   "entry_schema": null,
                   "inputProperties": {
                     "sourceType": "HEAT",
-                    "vfModuleLabel": "ADIOD_vRE_BV",
+                    "vfModuleLabel": "PASQUALE_vRE_BV",
                     "paramName": "vnf_config_template_version"
                   },
-                  "fromInputName": "2017488_adiodvpe0_vnf_config_template_version",
+                  "fromInputName": "2017488_pasqualevpe0_vnf_config_template_version",
                   "constraints": null,
                   "required": true,
                   "default": "17.2"
@@ -764,10 +774,10 @@ describe('Model Tree Generator service', () => {
                   "entry_schema": null,
                   "inputProperties": {
                     "sourceType": "HEAT",
-                    "vfModuleLabel": "ADIOD_vRE_BV",
+                    "vfModuleLabel": "PASQUALE_vRE_BV",
                     "paramName": "bandwidth_units"
                   },
-                  "fromInputName": "adiodvpe0_bandwidth_units",
+                  "fromInputName": "pasqualevpe0_bandwidth_units",
                   "constraints": null,
                   "required": true,
                   "default": "Gbps"
@@ -778,10 +788,10 @@ describe('Model Tree Generator service', () => {
                   "entry_schema": null,
                   "inputProperties": {
                     "sourceType": "HEAT",
-                    "vfModuleLabel": "ADIOD_vRE_BV",
+                    "vfModuleLabel": "PASQUALE_vRE_BV",
                     "paramName": "bandwidth"
                   },
-                  "fromInputName": "adiodvpe0_bandwidth",
+                  "fromInputName": "pasqualevpe0_bandwidth",
                   "constraints": null,
                   "required": true,
                   "default": "10"
@@ -792,10 +802,10 @@ describe('Model Tree Generator service', () => {
                   "entry_schema": null,
                   "inputProperties": {
                     "sourceType": "HEAT",
-                    "vfModuleLabel": "ADIOD_vRE_BV",
+                    "vfModuleLabel": "PASQUALE_vRE_BV",
                     "paramName": "AIC_CLLI"
                   },
-                  "fromInputName": "2017488_adiodvpe0_AIC_CLLI",
+                  "fromInputName": "2017488_pasqualevpe0_AIC_CLLI",
                   "constraints": null,
                   "required": true,
                   "default": "ATLMY8GA"
@@ -806,10 +816,10 @@ describe('Model Tree Generator service', () => {
                   "entry_schema": null,
                   "inputProperties": {
                     "sourceType": "HEAT",
-                    "vfModuleLabel": "ADIOD_vRE_BV",
+                    "vfModuleLabel": "PASQUALE_vRE_BV",
                     "paramName": "vnf_instance_name"
                   },
-                  "fromInputName": "2017488_adiodvpe0_vnf_instance_name",
+                  "fromInputName": "2017488_pasqualevpe0_vnf_instance_name",
                   "constraints": null,
                   "required": true,
                   "default": "mtnj309me6"
@@ -817,37 +827,37 @@ describe('Model Tree Generator service', () => {
               },
               "volumeGroupAllowed": true
             },
-            "2017488_adiodvpe0..2017488AdiodVpe..ADIOD_base_vPE_BV..module-0": {
+            "2017488_pasqualevpe0..2017488PasqualeVpe..PASQUALE_base_vPE_BV..module-0": {
               "uuid": "f8360508-3f17-4414-a2ed-6bc71161e8db",
               "invariantUuid": "b34833bb-6aa9-4ad6-a831-70b06367a091",
               "customizationUuid": "a55961b2-2065-4ab0-a5b7-2fcee1c227e3",
               "description": null,
-              "name": "2017488AdiodVpe..ADIOD_base_vPE_BV..module-0",
+              "name": "2017488PasqualeVpe..PASQUALE_base_vPE_BV..module-0",
               "version": "5",
-              "modelCustomizationName": "2017488AdiodVpe..ADIOD_base_vPE_BV..module-0",
+              "modelCustomizationName": "2017488PasqualeVpe..PASQUALE_base_vPE_BV..module-0",
               "properties": {
                 "minCountInstances": 1,
                 "maxCountInstances": 1,
                 "initialCount": 1,
-                "vfModuleLabel": "ADIOD_base_vPE_BV",
+                "vfModuleLabel": "PASQUALE_base_vPE_BV",
                 "baseModule": true
               },
               "inputs": {},
               "volumeGroupAllowed": false
             },
-            "2017488_adiodvpe0..2017488AdiodVpe..ADIOD_vPFE_BV..module-2": {
+            "2017488_pasqualevpe0..2017488PasqualeVpe..PASQUALE_vPFE_BV..module-2": {
               "uuid": "0a0dd9d4-31d3-4c3a-ae89-a02f383e6a9a",
               "invariantUuid": "eff8cc59-53a1-4101-aed7-8cf24ecf8339",
               "customizationUuid": "3cd946bb-50e0-40d8-96d3-c9023520b557",
               "description": null,
-              "name": "2017488AdiodVpe..ADIOD_vPFE_BV..module-2",
+              "name": "2017488PasqualeVpe..PASQUALE_vPFE_BV..module-2",
               "version": "6",
-              "modelCustomizationName": "2017488AdiodVpe..ADIOD_vPFE_BV..module-2",
+              "modelCustomizationName": "2017488PasqualeVpe..PASQUALE_vPFE_BV..module-2",
               "properties": {
                 "minCountInstances": 0,
                 "maxCountInstances": null,
                 "initialCount": 0,
-                "vfModuleLabel": "ADIOD_vPFE_BV",
+                "vfModuleLabel": "PASQUALE_vPFE_BV",
                 "baseModule": false
               },
               "inputs": {},
@@ -855,19 +865,19 @@ describe('Model Tree Generator service', () => {
             }
           },
           "volumeGroups": {
-            "2017488_adiodvpe0..2017488AdiodVpe..ADIOD_vRE_BV..module-1": {
+            "2017488_pasqualevpe0..2017488PasqualeVpe..PASQUALE_vRE_BV..module-1": {
               "uuid": "25284168-24bb-4698-8cb4-3f509146eca5",
               "invariantUuid": "7253ff5c-97f0-4b8b-937c-77aeb4d79aa1",
               "customizationUuid": "f7e7c365-60cf-49a9-9ebf-a1aa11b9d401",
               "description": null,
-              "name": "2017488AdiodVpe..ADIOD_vRE_BV..module-1",
+              "name": "2017488PasqualeVpe..PASQUALE_vRE_BV..module-1",
               "version": "6",
-              "modelCustomizationName": "2017488AdiodVpe..ADIOD_vRE_BV..module-1",
+              "modelCustomizationName": "2017488PasqualeVpe..PASQUALE_vRE_BV..module-1",
               "properties": {
                 "minCountInstances": 0,
                 "maxCountInstances": null,
                 "initialCount": 0,
-                "vfModuleLabel": "ADIOD_vRE_BV",
+                "vfModuleLabel": "PASQUALE_vRE_BV",
                 "baseModule": false
               },
               "inputs": {
@@ -877,10 +887,10 @@ describe('Model Tree Generator service', () => {
                   "entry_schema": null,
                   "inputProperties": {
                     "sourceType": "HEAT",
-                    "vfModuleLabel": "ADIOD_vRE_BV",
+                    "vfModuleLabel": "PASQUALE_vRE_BV",
                     "paramName": "vnf_config_template_version"
                   },
-                  "fromInputName": "2017488_adiodvpe0_vnf_config_template_version",
+                  "fromInputName": "2017488_pasqualevpe0_vnf_config_template_version",
                   "constraints": null,
                   "required": true,
                   "default": "17.2"
@@ -891,10 +901,10 @@ describe('Model Tree Generator service', () => {
                   "entry_schema": null,
                   "inputProperties": {
                     "sourceType": "HEAT",
-                    "vfModuleLabel": "ADIOD_vRE_BV",
+                    "vfModuleLabel": "PASQUALE_vRE_BV",
                     "paramName": "bandwidth_units"
                   },
-                  "fromInputName": "adiodvpe0_bandwidth_units",
+                  "fromInputName": "pasqualevpe0_bandwidth_units",
                   "constraints": null,
                   "required": true,
                   "default": "Gbps"
@@ -905,10 +915,10 @@ describe('Model Tree Generator service', () => {
                   "entry_schema": null,
                   "inputProperties": {
                     "sourceType": "HEAT",
-                    "vfModuleLabel": "ADIOD_vRE_BV",
+                    "vfModuleLabel": "PASQUALE_vRE_BV",
                     "paramName": "bandwidth"
                   },
-                  "fromInputName": "adiodvpe0_bandwidth",
+                  "fromInputName": "pasqualevpe0_bandwidth",
                   "constraints": null,
                   "required": true,
                   "default": "10"
@@ -919,10 +929,10 @@ describe('Model Tree Generator service', () => {
                   "entry_schema": null,
                   "inputProperties": {
                     "sourceType": "HEAT",
-                    "vfModuleLabel": "ADIOD_vRE_BV",
+                    "vfModuleLabel": "PASQUALE_vRE_BV",
                     "paramName": "AIC_CLLI"
                   },
-                  "fromInputName": "2017488_adiodvpe0_AIC_CLLI",
+                  "fromInputName": "2017488_pasqualevpe0_AIC_CLLI",
                   "constraints": null,
                   "required": true,
                   "default": "ATLMY8GA"
@@ -933,29 +943,29 @@ describe('Model Tree Generator service', () => {
                   "entry_schema": null,
                   "inputProperties": {
                     "sourceType": "HEAT",
-                    "vfModuleLabel": "ADIOD_vRE_BV",
+                    "vfModuleLabel": "PASQUALE_vRE_BV",
                     "paramName": "vnf_instance_name"
                   },
-                  "fromInputName": "2017488_adiodvpe0_vnf_instance_name",
+                  "fromInputName": "2017488_pasqualevpe0_vnf_instance_name",
                   "constraints": null,
                   "required": true,
                   "default": "mtnj309me6"
                 }
               }
             },
-            "2017488_adiodvpe0..2017488AdiodVpe..ADIOD_vPFE_BV..module-2": {
+            "2017488_pasqualevpe0..2017488PasqualeVpe..PASQUALE_vPFE_BV..module-2": {
               "uuid": "0a0dd9d4-31d3-4c3a-ae89-a02f383e6a9a",
               "invariantUuid": "eff8cc59-53a1-4101-aed7-8cf24ecf8339",
               "customizationUuid": "3cd946bb-50e0-40d8-96d3-c9023520b557",
               "description": null,
-              "name": "2017488AdiodVpe..ADIOD_vPFE_BV..module-2",
+              "name": "2017488PasqualeVpe..PASQUALE_vPFE_BV..module-2",
               "version": "6",
-              "modelCustomizationName": "2017488AdiodVpe..ADIOD_vPFE_BV..module-2",
+              "modelCustomizationName": "2017488PasqualeVpe..PASQUALE_vPFE_BV..module-2",
               "properties": {
                 "minCountInstances": 0,
                 "maxCountInstances": null,
                 "initialCount": 0,
-                "vfModuleLabel": "ADIOD_vPFE_BV",
+                "vfModuleLabel": "PASQUALE_vPFE_BV",
                 "baseModule": false
               },
               "inputs": {}
@@ -965,24 +975,24 @@ describe('Model Tree Generator service', () => {
         }
       },
       "networks": {},
-      "collectionResource": {},
+      "collectionResources": {},
       "configurations": {},
       "fabricConfigurations": {},
       "serviceProxies": {},
       "vfModules": {
-        "2017488_adiodvpe0..2017488AdiodVpe..ADIOD_vRE_BV..module-1": {
+        "2017488_pasqualevpe0..2017488PasqualeVpe..PASQUALE_vRE_BV..module-1": {
           "uuid": "25284168-24bb-4698-8cb4-3f509146eca5",
           "invariantUuid": "7253ff5c-97f0-4b8b-937c-77aeb4d79aa1",
           "customizationUuid": "f7e7c365-60cf-49a9-9ebf-a1aa11b9d401",
           "description": null,
-          "name": "2017488AdiodVpe..ADIOD_vRE_BV..module-1",
+          "name": "2017488PasqualeVpe..PASQUALE_vRE_BV..module-1",
           "version": "6",
-          "modelCustomizationName": "2017488AdiodVpe..ADIOD_vRE_BV..module-1",
+          "modelCustomizationName": "2017488PasqualeVpe..PASQUALE_vRE_BV..module-1",
           "properties": {
             "minCountInstances": 0,
             "maxCountInstances": null,
             "initialCount": 0,
-            "vfModuleLabel": "ADIOD_vRE_BV",
+            "vfModuleLabel": "PASQUALE_vRE_BV",
             "baseModule": false
           },
           "inputs": {
@@ -992,10 +1002,10 @@ describe('Model Tree Generator service', () => {
               "entry_schema": null,
               "inputProperties": {
                 "sourceType": "HEAT",
-                "vfModuleLabel": "ADIOD_vRE_BV",
+                "vfModuleLabel": "PASQUALE_vRE_BV",
                 "paramName": "vnf_config_template_version"
               },
-              "fromInputName": "2017488_adiodvpe0_vnf_config_template_version",
+              "fromInputName": "2017488_pasqualevpe0_vnf_config_template_version",
               "constraints": null,
               "required": true,
               "default": "17.2"
@@ -1006,10 +1016,10 @@ describe('Model Tree Generator service', () => {
               "entry_schema": null,
               "inputProperties": {
                 "sourceType": "HEAT",
-                "vfModuleLabel": "ADIOD_vRE_BV",
+                "vfModuleLabel": "PASQUALE_vRE_BV",
                 "paramName": "bandwidth_units"
               },
-              "fromInputName": "adiodvpe0_bandwidth_units",
+              "fromInputName": "pasqualevpe0_bandwidth_units",
               "constraints": null,
               "required": true,
               "default": "Gbps"
@@ -1020,10 +1030,10 @@ describe('Model Tree Generator service', () => {
               "entry_schema": null,
               "inputProperties": {
                 "sourceType": "HEAT",
-                "vfModuleLabel": "ADIOD_vRE_BV",
+                "vfModuleLabel": "PASQUALE_vRE_BV",
                 "paramName": "bandwidth"
               },
-              "fromInputName": "adiodvpe0_bandwidth",
+              "fromInputName": "pasqualevpe0_bandwidth",
               "constraints": null,
               "required": true,
               "default": "10"
@@ -1034,10 +1044,10 @@ describe('Model Tree Generator service', () => {
               "entry_schema": null,
               "inputProperties": {
                 "sourceType": "HEAT",
-                "vfModuleLabel": "ADIOD_vRE_BV",
+                "vfModuleLabel": "PASQUALE_vRE_BV",
                 "paramName": "AIC_CLLI"
               },
-              "fromInputName": "2017488_adiodvpe0_AIC_CLLI",
+              "fromInputName": "2017488_pasqualevpe0_AIC_CLLI",
               "constraints": null,
               "required": true,
               "default": "ATLMY8GA"
@@ -1048,10 +1058,10 @@ describe('Model Tree Generator service', () => {
               "entry_schema": null,
               "inputProperties": {
                 "sourceType": "HEAT",
-                "vfModuleLabel": "ADIOD_vRE_BV",
+                "vfModuleLabel": "PASQUALE_vRE_BV",
                 "paramName": "vnf_instance_name"
               },
-              "fromInputName": "2017488_adiodvpe0_vnf_instance_name",
+              "fromInputName": "2017488_pasqualevpe0_vnf_instance_name",
               "constraints": null,
               "required": true,
               "default": "mtnj309me6"
@@ -1059,37 +1069,37 @@ describe('Model Tree Generator service', () => {
           },
           "volumeGroupAllowed": true
         },
-        "2017488_adiodvpe0..2017488AdiodVpe..ADIOD_base_vPE_BV..module-0": {
+        "2017488_pasqualevpe0..2017488PasqualeVpe..PASQUALE_base_vPE_BV..module-0": {
           "uuid": "f8360508-3f17-4414-a2ed-6bc71161e8db",
           "invariantUuid": "b34833bb-6aa9-4ad6-a831-70b06367a091",
           "customizationUuid": "a55961b2-2065-4ab0-a5b7-2fcee1c227e3",
           "description": null,
-          "name": "2017488AdiodVpe..ADIOD_base_vPE_BV..module-0",
+          "name": "2017488PasqualeVpe..PASQUALE_base_vPE_BV..module-0",
           "version": "5",
-          "modelCustomizationName": "2017488AdiodVpe..ADIOD_base_vPE_BV..module-0",
+          "modelCustomizationName": "2017488PasqualeVpe..PASQUALE_base_vPE_BV..module-0",
           "properties": {
             "minCountInstances": 1,
             "maxCountInstances": 1,
             "initialCount": 1,
-            "vfModuleLabel": "ADIOD_base_vPE_BV",
+            "vfModuleLabel": "PASQUALE_base_vPE_BV",
             "baseModule": true
           },
           "inputs": {},
           "volumeGroupAllowed": false
         },
-        "2017488_adiodvpe0..2017488AdiodVpe..ADIOD_vPFE_BV..module-2": {
+        "2017488_pasqualevpe0..2017488PasqualeVpe..PASQUALE_vPFE_BV..module-2": {
           "uuid": "0a0dd9d4-31d3-4c3a-ae89-a02f383e6a9a",
           "invariantUuid": "eff8cc59-53a1-4101-aed7-8cf24ecf8339",
           "customizationUuid": "3cd946bb-50e0-40d8-96d3-c9023520b557",
           "description": null,
-          "name": "2017488AdiodVpe..ADIOD_vPFE_BV..module-2",
+          "name": "2017488PasqualeVpe..PASQUALE_vPFE_BV..module-2",
           "version": "6",
-          "modelCustomizationName": "2017488AdiodVpe..ADIOD_vPFE_BV..module-2",
+          "modelCustomizationName": "2017488PasqualeVpe..PASQUALE_vPFE_BV..module-2",
           "properties": {
             "minCountInstances": 0,
             "maxCountInstances": null,
             "initialCount": 0,
-            "vfModuleLabel": "ADIOD_vPFE_BV",
+            "vfModuleLabel": "PASQUALE_vPFE_BV",
             "baseModule": false
           },
           "inputs": {},
@@ -1097,19 +1107,19 @@ describe('Model Tree Generator service', () => {
         }
       },
       "volumeGroups": {
-        "2017488_adiodvpe0..2017488AdiodVpe..ADIOD_vRE_BV..module-1": {
+        "2017488_pasqualevpe0..2017488PasqualeVpe..PASQUALE_vRE_BV..module-1": {
           "uuid": "25284168-24bb-4698-8cb4-3f509146eca5",
           "invariantUuid": "7253ff5c-97f0-4b8b-937c-77aeb4d79aa1",
           "customizationUuid": "f7e7c365-60cf-49a9-9ebf-a1aa11b9d401",
           "description": null,
-          "name": "2017488AdiodVpe..ADIOD_vRE_BV..module-1",
+          "name": "2017488PasqualeVpe..PASQUALE_vRE_BV..module-1",
           "version": "6",
-          "modelCustomizationName": "2017488AdiodVpe..ADIOD_vRE_BV..module-1",
+          "modelCustomizationName": "2017488PasqualeVpe..PASQUALE_vRE_BV..module-1",
           "properties": {
             "minCountInstances": 0,
             "maxCountInstances": null,
             "initialCount": 0,
-            "vfModuleLabel": "ADIOD_vRE_BV",
+            "vfModuleLabel": "PASQUALE_vRE_BV",
             "baseModule": false
           },
           "inputs": {
@@ -1119,10 +1129,10 @@ describe('Model Tree Generator service', () => {
               "entry_schema": null,
               "inputProperties": {
                 "sourceType": "HEAT",
-                "vfModuleLabel": "ADIOD_vRE_BV",
+                "vfModuleLabel": "PASQUALE_vRE_BV",
                 "paramName": "vnf_config_template_version"
               },
-              "fromInputName": "2017488_adiodvpe0_vnf_config_template_version",
+              "fromInputName": "2017488_pasqualevpe0_vnf_config_template_version",
               "constraints": null,
               "required": true,
               "default": "17.2"
@@ -1133,10 +1143,10 @@ describe('Model Tree Generator service', () => {
               "entry_schema": null,
               "inputProperties": {
                 "sourceType": "HEAT",
-                "vfModuleLabel": "ADIOD_vRE_BV",
+                "vfModuleLabel": "PASQUALE_vRE_BV",
                 "paramName": "bandwidth_units"
               },
-              "fromInputName": "adiodvpe0_bandwidth_units",
+              "fromInputName": "pasqualevpe0_bandwidth_units",
               "constraints": null,
               "required": true,
               "default": "Gbps"
@@ -1147,10 +1157,10 @@ describe('Model Tree Generator service', () => {
               "entry_schema": null,
               "inputProperties": {
                 "sourceType": "HEAT",
-                "vfModuleLabel": "ADIOD_vRE_BV",
+                "vfModuleLabel": "PASQUALE_vRE_BV",
                 "paramName": "bandwidth"
               },
-              "fromInputName": "adiodvpe0_bandwidth",
+              "fromInputName": "pasqualevpe0_bandwidth",
               "constraints": null,
               "required": true,
               "default": "10"
@@ -1161,10 +1171,10 @@ describe('Model Tree Generator service', () => {
               "entry_schema": null,
               "inputProperties": {
                 "sourceType": "HEAT",
-                "vfModuleLabel": "ADIOD_vRE_BV",
+                "vfModuleLabel": "PASQUALE_vRE_BV",
                 "paramName": "AIC_CLLI"
               },
-              "fromInputName": "2017488_adiodvpe0_AIC_CLLI",
+              "fromInputName": "2017488_pasqualevpe0_AIC_CLLI",
               "constraints": null,
               "required": true,
               "default": "ATLMY8GA"
@@ -1175,29 +1185,29 @@ describe('Model Tree Generator service', () => {
               "entry_schema": null,
               "inputProperties": {
                 "sourceType": "HEAT",
-                "vfModuleLabel": "ADIOD_vRE_BV",
+                "vfModuleLabel": "PASQUALE_vRE_BV",
                 "paramName": "vnf_instance_name"
               },
-              "fromInputName": "2017488_adiodvpe0_vnf_instance_name",
+              "fromInputName": "2017488_pasqualevpe0_vnf_instance_name",
               "constraints": null,
               "required": true,
               "default": "mtnj309me6"
             }
           }
         },
-        "2017488_adiodvpe0..2017488AdiodVpe..ADIOD_vPFE_BV..module-2": {
+        "2017488_pasqualevpe0..2017488PasqualeVpe..PASQUALE_vPFE_BV..module-2": {
           "uuid": "0a0dd9d4-31d3-4c3a-ae89-a02f383e6a9a",
           "invariantUuid": "eff8cc59-53a1-4101-aed7-8cf24ecf8339",
           "customizationUuid": "3cd946bb-50e0-40d8-96d3-c9023520b557",
           "description": null,
-          "name": "2017488AdiodVpe..ADIOD_vPFE_BV..module-2",
+          "name": "2017488PasqualeVpe..PASQUALE_vPFE_BV..module-2",
           "version": "6",
-          "modelCustomizationName": "2017488AdiodVpe..ADIOD_vPFE_BV..module-2",
+          "modelCustomizationName": "2017488PasqualeVpe..PASQUALE_vPFE_BV..module-2",
           "properties": {
             "minCountInstances": 0,
             "maxCountInstances": null,
             "initialCount": 0,
-            "vfModuleLabel": "ADIOD_vPFE_BV",
+            "vfModuleLabel": "PASQUALE_vPFE_BV",
             "baseModule": false
           },
           "inputs": {}
@@ -1222,7 +1232,7 @@ describe('Model Tree Generator service', () => {
         "serviceEcompNaming": "false",
         "instantiationType": "A-La-Carte",
         "inputs": {
-          "2017488_adiodvpe0_ASN": {
+          "2017488_pasqualevpe0_ASN": {
             "type": "string",
             "description": "AV/PE",
             "entry_schema": null,
@@ -1234,11 +1244,11 @@ describe('Model Tree Generator service', () => {
         }
       },
       "vnfs": {
-        "2017-388_ADIOD-vPE 1": {
+        "2017-388_PASQUALE-vPE 1": {
           "uuid": "0903e1c0-8e03-4936-b5c2-260653b96413",
           "invariantUuid": "00beb8f9-6d39-452f-816d-c709b9cbb87d",
-          "description": "Name ADIOD vPE Description The provider edge function for the ADIOD service supported by the Junipers VMX product Category Router Vendor Juniper Vendor Release Code 17.2 Owners Mary Fragale. Updated 9-25 to use v8.0 of the Juniper Valid 2 VLM",
-          "name": "2017-388_ADIOD-vPE",
+          "description": "Name PASQUALE vPE Description The provider edge function for the PASQUALE service supported by the Junipers VMX product Category Router Vendor Juniper Vendor Release Code 17.2 Owners Mary Fragale. Updated 9-25 to use v8.0 of the Juniper Valid 2 VLM",
+          "name": "2017-388_PASQUALE-vPE",
           "version": "1.0",
           "customizationUuid": "280dec31-f16d-488b-9668-4aae55d6648a",
           "inputs": {
@@ -1301,37 +1311,37 @@ describe('Model Tree Generator service', () => {
             "vnf_config_template_version": {
               "displayName": "vnf_config_template_version",
               "command": "get_input",
-              "inputName": "2017488_adiodvpe0_vnf_config_template_version"
+              "inputName": "2017488_pasqualevpe0_vnf_config_template_version"
             },
             "bandwidth_units": {
               "displayName": "bandwidth_units",
               "command": "get_input",
-              "inputName": "adiodvpe0_bandwidth_units"
+              "inputName": "pasqualevpe0_bandwidth_units"
             },
             "bandwidth": {
               "displayName": "bandwidth",
               "command": "get_input",
-              "inputName": "adiodvpe0_bandwidth"
+              "inputName": "pasqualevpe0_bandwidth"
             },
             "AIC_CLLI": {
               "displayName": "AIC_CLLI",
               "command": "get_input",
-              "inputName": "2017488_adiodvpe0_AIC_CLLI"
+              "inputName": "2017488_pasqualevpe0_AIC_CLLI"
             },
             "ASN": {
               "displayName": "ASN",
               "command": "get_input",
-              "inputName": "2017488_adiodvpe0_ASN"
+              "inputName": "2017488_pasqualevpe0_ASN"
             },
             "vnf_instance_name": {
               "displayName": "vnf_instance_name",
               "command": "get_input",
-              "inputName": "2017488_adiodvpe0_vnf_instance_name"
+              "inputName": "2017488_pasqualevpe0_vnf_instance_name"
             }
           },
           "properties": {
             "vmxvre_retype": "RE-VMX",
-            "vnf_config_template_version": "get_input:2017488_adiodvpe0_vnf_config_template_version",
+            "vnf_config_template_version": "get_input:2017488_pasqualevpe0_vnf_config_template_version",
             "sriov44_net_id": "48d399b3-11ee-48a8-94d2-f0ea94d6be8d",
             "int_ctl_net_id": "2f323477-6936-4d01-ac53-d849430281d9",
             "vmxvpfe_sriov41_0_port_mac": "00:11:22:EF:AC:DF",
@@ -1376,7 +1386,7 @@ describe('Model Tree Generator service', () => {
             "vmxvpfe_sriov43_0_port_unknownmulticastallow": "true",
             "vmxvre_int_ctl_ip_0": "10.0.0.10",
             "ecomp_generated_naming": "false",
-            "AIC_CLLI": "get_input:2017488_adiodvpe0_AIC_CLLI",
+            "AIC_CLLI": "get_input:2017488_pasqualevpe0_AIC_CLLI",
             "vnf_name": "mtnj309me6vre",
             "vmxvpfe_sriov41_0_port_unknownunicastallow": "true",
             "vmxvre_volume_type_1": "HITACHI",
@@ -1384,14 +1394,14 @@ describe('Model Tree Generator service', () => {
             "vmxvre_volume_type_0": "HITACHI",
             "vmxvpfe_volume_type_0": "HITACHI",
             "vmxvpfe_sriov43_0_port_broadcastallow": "true",
-            "bandwidth_units": "get_input:adiodvpe0_bandwidth_units",
+            "bandwidth_units": "get_input:pasqualevpe0_bandwidth_units",
             "vnf_id": "123",
             "vmxvre_oam_prefix": "24",
             "availability_zone_0": "mtpocfo-kvm-az01",
-            "ASN": "get_input:2017488_adiodvpe0_ASN",
+            "ASN": "get_input:2017488_pasqualevpe0_ASN",
             "vmxvre_chassis_i2cid": "161",
             "vmxvpfe_name_0": "vPFEXI",
-            "bandwidth": "get_input:adiodvpe0_bandwidth",
+            "bandwidth": "get_input:pasqualevpe0_bandwidth",
             "availability_zone_max_count": "1",
             "vmxvre_volume_size_0": "45.0",
             "vmxvre_volume_size_1": "50.0",
@@ -1401,7 +1411,7 @@ describe('Model Tree Generator service', () => {
             "vmxvre_ore_present": "0",
             "vmxvre_volume_name_0": "vREXI_FBVolume",
             "vmxvre_type": "0",
-            "vnf_instance_name": "get_input:2017488_adiodvpe0_vnf_instance_name",
+            "vnf_instance_name": "get_input:2017488_pasqualevpe0_vnf_instance_name",
             "vmxvpfe_sriov41_0_port_unknownmulticastallow": "true",
             "oam_net_id": "b95eeb1d-d55d-4827-abb4-8ebb94941429",
             "vmx_int_ctl_len": "24",
@@ -1416,16 +1426,16 @@ describe('Model Tree Generator service', () => {
             "max_instances": 5
           },
           "type": "VF",
-          "modelCustomizationName": "2017-388_ADIOD-vPE 1",
+          "modelCustomizationName": "2017-388_PASQUALE-vPE 1",
           "vfModules": {},
           "volumeGroups": {},
           "vfcInstanceGroups": {}
         },
-        "2017-388_ADIOD-vPE 0": {
+        "2017-388_PASQUALE-vPE 0": {
           "uuid": "afacccf6-397d-45d6-b5ae-94c39734b168",
           "invariantUuid": "72e465fe-71b1-4e7b-b5ed-9496118ff7a8",
-          "description": "Name ADIOD vPE Description The provider edge function for the ADIOD service supported by the Junipers VMX product Category Router Vendor Juniper Vendor Release Code 17.2 Owners Mary Fragale. Updated 9-25 to use v8.0 of the Juniper Valid 2 VLM",
-          "name": "2017-388_ADIOD-vPE",
+          "description": "Name PASQUALE vPE Description The provider edge function for the PASQUALE service supported by the Junipers VMX product Category Router Vendor Juniper Vendor Release Code 17.2 Owners Mary Fragale. Updated 9-25 to use v8.0 of the Juniper Valid 2 VLM",
+          "name": "2017-388_PASQUALE-vPE",
           "version": "4.0",
           "customizationUuid": "b3c76f73-eeb5-4fb6-9d31-72a889f1811c",
           "inputs": {
@@ -1488,37 +1498,37 @@ describe('Model Tree Generator service', () => {
             "vnf_config_template_version": {
               "displayName": "vnf_config_template_version",
               "command": "get_input",
-              "inputName": "2017488_adiodvpe0_vnf_config_template_version"
+              "inputName": "2017488_pasqualevpe0_vnf_config_template_version"
             },
             "bandwidth_units": {
               "displayName": "bandwidth_units",
               "command": "get_input",
-              "inputName": "adiodvpe0_bandwidth_units"
+              "inputName": "pasqualevpe0_bandwidth_units"
             },
             "bandwidth": {
               "displayName": "bandwidth",
               "command": "get_input",
-              "inputName": "adiodvpe0_bandwidth"
+              "inputName": "pasqualevpe0_bandwidth"
             },
             "AIC_CLLI": {
               "displayName": "AIC_CLLI",
               "command": "get_input",
-              "inputName": "2017488_adiodvpe0_AIC_CLLI"
+              "inputName": "2017488_pasqualevpe0_AIC_CLLI"
             },
             "ASN": {
               "displayName": "ASN",
               "command": "get_input",
-              "inputName": "2017488_adiodvpe0_ASN"
+              "inputName": "2017488_pasqualevpe0_ASN"
             },
             "vnf_instance_name": {
               "displayName": "vnf_instance_name",
               "command": "get_input",
-              "inputName": "2017488_adiodvpe0_vnf_instance_name"
+              "inputName": "2017488_pasqualevpe0_vnf_instance_name"
             }
           },
           "properties": {
             "vmxvre_retype": "RE-VMX",
-            "vnf_config_template_version": "get_input:2017488_adiodvpe0_vnf_config_template_version",
+            "vnf_config_template_version": "get_input:2017488_pasqualevpe0_vnf_config_template_version",
             "sriov44_net_id": "48d399b3-11ee-48a8-94d2-f0ea94d6be8d",
             "int_ctl_net_id": "2f323477-6936-4d01-ac53-d849430281d9",
             "vmxvpfe_sriov41_0_port_mac": "00:11:22:EF:AC:DF",
@@ -1564,7 +1574,7 @@ describe('Model Tree Generator service', () => {
             "vmxvpfe_sriov43_0_port_unknownmulticastallow": "true",
             "vmxvre_int_ctl_ip_0": "10.0.0.10",
             "ecomp_generated_naming": "false",
-            "AIC_CLLI": "get_input:2017488_adiodvpe0_AIC_CLLI",
+            "AIC_CLLI": "get_input:2017488_pasqualevpe0_AIC_CLLI",
             "vnf_name": "mtnj309me6vre",
             "vmxvpfe_sriov41_0_port_unknownunicastallow": "true",
             "vmxvre_volume_type_1": "HITACHI",
@@ -1572,14 +1582,14 @@ describe('Model Tree Generator service', () => {
             "vmxvre_volume_type_0": "HITACHI",
             "vmxvpfe_volume_type_0": "HITACHI",
             "vmxvpfe_sriov43_0_port_broadcastallow": "true",
-            "bandwidth_units": "get_input:adiodvpe0_bandwidth_units",
+            "bandwidth_units": "get_input:pasqualevpe0_bandwidth_units",
             "vnf_id": "123",
             "vmxvre_oam_prefix": "24",
             "availability_zone_0": "mtpocfo-kvm-az01",
-            "ASN": "get_input:2017488_adiodvpe0_ASN",
+            "ASN": "get_input:2017488_pasqualevpe0_ASN",
             "vmxvre_chassis_i2cid": "161",
             "vmxvpfe_name_0": "vPFEXI",
-            "bandwidth": "get_input:adiodvpe0_bandwidth",
+            "bandwidth": "get_input:pasqualevpe0_bandwidth",
             "availability_zone_max_count": "1",
             "vmxvre_volume_size_0": "45.0",
             "vmxvre_volume_size_1": "50.0",
@@ -1589,7 +1599,7 @@ describe('Model Tree Generator service', () => {
             "vmxvre_ore_present": "0",
             "vmxvre_volume_name_0": "vREXI_FBVolume",
             "vmxvre_type": "0",
-            "vnf_instance_name": "get_input:2017488_adiodvpe0_vnf_instance_name",
+            "vnf_instance_name": "get_input:2017488_pasqualevpe0_vnf_instance_name",
             "vmxvpfe_sriov41_0_port_unknownmulticastallow": "true",
             "oam_net_id": "b95eeb1d-d55d-4827-abb4-8ebb94941429",
             "vmx_int_ctl_len": "24",
@@ -1603,16 +1613,16 @@ describe('Model Tree Generator service', () => {
             "vmxvpfe_flavor_name": "ns.c20r16d25.v5"
           },
           "type": "VF",
-          "modelCustomizationName": "2017-388_ADIOD-vPE 0",
+          "modelCustomizationName": "2017-388_PASQUALE-vPE 0",
           "vfModules": {},
           "volumeGroups": {},
           "vfcInstanceGroups": {}
         },
-        "2017-488_ADIOD-vPE 0": {
+        "2017-488_PASQUALE-vPE 0": {
           "uuid": "69e09f68-8b63-4cc9-b9ff-860960b5db09",
           "invariantUuid": "72e465fe-71b1-4e7b-b5ed-9496118ff7a8",
-          "description": "Name ADIOD vPE Description The provider edge function for the ADIOD service supported by the Junipers VMX product Category Router Vendor Juniper Vendor Release Code 17.2 Owners Mary Fragale. Updated 9-25 to use v8.0 of the Juniper Valid 2 VLM",
-          "name": "2017-488_ADIOD-vPE",
+          "description": "Name PASQUALE vPE Description The provider edge function for the PASQUALE service supported by the Junipers VMX product Category Router Vendor Juniper Vendor Release Code 17.2 Owners Mary Fragale. Updated 9-25 to use v8.0 of the Juniper Valid 2 VLM",
+          "name": "2017-488_PASQUALE-vPE",
           "version": "5.0",
           "customizationUuid": "1da7b585-5e61-4993-b95e-8e6606c81e45",
           "inputs": {
@@ -1675,37 +1685,37 @@ describe('Model Tree Generator service', () => {
             "vnf_config_template_version": {
               "displayName": "vnf_config_template_version",
               "command": "get_input",
-              "inputName": "2017488_adiodvpe0_vnf_config_template_version"
+              "inputName": "2017488_pasqualevpe0_vnf_config_template_version"
             },
             "bandwidth_units": {
               "displayName": "bandwidth_units",
               "command": "get_input",
-              "inputName": "adiodvpe0_bandwidth_units"
+              "inputName": "pasqualevpe0_bandwidth_units"
             },
             "bandwidth": {
               "displayName": "bandwidth",
               "command": "get_input",
-              "inputName": "adiodvpe0_bandwidth"
+              "inputName": "pasqualevpe0_bandwidth"
             },
             "AIC_CLLI": {
               "displayName": "AIC_CLLI",
               "command": "get_input",
-              "inputName": "2017488_adiodvpe0_AIC_CLLI"
+              "inputName": "2017488_pasqualevpe0_AIC_CLLI"
             },
             "ASN": {
               "displayName": "ASN",
               "command": "get_input",
-              "inputName": "2017488_adiodvpe0_ASN"
+              "inputName": "2017488_pasqualevpe0_ASN"
             },
             "vnf_instance_name": {
               "displayName": "vnf_instance_name",
               "command": "get_input",
-              "inputName": "2017488_adiodvpe0_vnf_instance_name"
+              "inputName": "2017488_pasqualevpe0_vnf_instance_name"
             }
           },
           "properties": {
             "vmxvre_retype": "RE-VMX",
-            "vnf_config_template_version": "get_input:2017488_adiodvpe0_vnf_config_template_version",
+            "vnf_config_template_version": "get_input:2017488_pasqualevpe0_vnf_config_template_version",
             "sriov44_net_id": "48d399b3-11ee-48a8-94d2-f0ea94d6be8d",
             "int_ctl_net_id": "2f323477-6936-4d01-ac53-d849430281d9",
             "vmxvpfe_sriov41_0_port_mac": "00:11:22:EF:AC:DF",
@@ -1752,7 +1762,7 @@ describe('Model Tree Generator service', () => {
             "vmxvpfe_sriov43_0_port_unknownmulticastallow": "true",
             "vmxvre_int_ctl_ip_0": "10.0.0.10",
             "ecomp_generated_naming": "false",
-            "AIC_CLLI": "get_input:2017488_adiodvpe0_AIC_CLLI",
+            "AIC_CLLI": "get_input:2017488_pasqualevpe0_AIC_CLLI",
             "vnf_name": "mtnj309me6vre",
             "vmxvpfe_sriov41_0_port_unknownunicastallow": "true",
             "vmxvre_volume_type_1": "HITACHI",
@@ -1760,14 +1770,14 @@ describe('Model Tree Generator service', () => {
             "vmxvre_volume_type_0": "HITACHI",
             "vmxvpfe_volume_type_0": "HITACHI",
             "vmxvpfe_sriov43_0_port_broadcastallow": "true",
-            "bandwidth_units": "get_input:adiodvpe0_bandwidth_units",
+            "bandwidth_units": "get_input:pasqualevpe0_bandwidth_units",
             "vnf_id": "123",
             "vmxvre_oam_prefix": "24",
             "availability_zone_0": "mtpocfo-kvm-az01",
-            "ASN": "get_input:2017488_adiodvpe0_ASN",
+            "ASN": "get_input:2017488_pasqualevpe0_ASN",
             "vmxvre_chassis_i2cid": "161",
             "vmxvpfe_name_0": "vPFEXI",
-            "bandwidth": "get_input:adiodvpe0_bandwidth",
+            "bandwidth": "get_input:pasqualevpe0_bandwidth",
             "availability_zone_max_count": "1",
             "vmxvre_volume_size_0": "45.0",
             "vmxvre_volume_size_1": "50.0",
@@ -1777,7 +1787,7 @@ describe('Model Tree Generator service', () => {
             "vmxvre_ore_present": "0",
             "vmxvre_volume_name_0": "vREXI_FBVolume",
             "vmxvre_type": "0",
-            "vnf_instance_name": "get_input:2017488_adiodvpe0_vnf_instance_name",
+            "vnf_instance_name": "get_input:2017488_pasqualevpe0_vnf_instance_name",
             "vmxvpfe_sriov41_0_port_unknownmulticastallow": "true",
             "oam_net_id": "b95eeb1d-d55d-4827-abb4-8ebb94941429",
             "vmx_int_ctl_len": "24",
@@ -1791,82 +1801,82 @@ describe('Model Tree Generator service', () => {
             "vmxvpfe_flavor_name": "ns.c20r16d25.v5"
           },
           "type": "VF",
-          "modelCustomizationName": "2017-488_ADIOD-vPE 0",
+          "modelCustomizationName": "2017-488_PASQUALE-vPE 0",
           "vfModules": {
-            "2017488_adiodvpe0..2017488AdiodVpe..ADIOD_vRE_BV..module-1": {
+            "2017488_pasqualevpe0..2017488PasqualeVpe..PASQUALE_vRE_BV..module-1": {
               "uuid": "25284168-24bb-4698-8cb4-3f509146eca5",
               "invariantUuid": "7253ff5c-97f0-4b8b-937c-77aeb4d79aa1",
               "customizationUuid": "f7e7c365-60cf-49a9-9ebf-a1aa11b9d401",
               "description": null,
-              "name": "2017488AdiodVpe..ADIOD_vRE_BV..module-1",
+              "name": "2017488PasqualeVpe..PASQUALE_vRE_BV..module-1",
               "version": "6",
-              "modelCustomizationName": "2017488AdiodVpe..ADIOD_vRE_BV..module-1",
+              "modelCustomizationName": "2017488PasqualeVpe..PASQUALE_vRE_BV..module-1",
               "properties": {
                 "minCountInstances": 0,
                 "maxCountInstances": null,
                 "initialCount": 0,
-                "vfModuleLabel": "ADIOD_vRE_BV"
+                "vfModuleLabel": "PASQUALE_vRE_BV"
               },
               "inputs": {
-                "adiodvpe0_bandwidth": {
+                "pasqualevpe0_bandwidth": {
                   "type": "string",
                   "description": "Requested VPE bandwidth",
                   "entry_schema": null,
                   "inputProperties": {
                     "sourceType": "HEAT",
-                    "vfModuleLabel": "ADIOD_vRE_BV",
+                    "vfModuleLabel": "PASQUALE_vRE_BV",
                     "paramName": "bandwidth"
                   },
                   "constraints": null,
                   "required": true,
                   "default": "10"
                 },
-                "2017488_adiodvpe0_vnf_instance_name": {
+                "2017488_pasqualevpe0_vnf_instance_name": {
                   "type": "string",
                   "description": "The hostname assigned to the vpe.",
                   "entry_schema": null,
                   "inputProperties": {
                     "sourceType": "HEAT",
-                    "vfModuleLabel": "ADIOD_vRE_BV",
+                    "vfModuleLabel": "PASQUALE_vRE_BV",
                     "paramName": "vnf_instance_name"
                   },
                   "constraints": null,
                   "required": true,
                   "default": "mtnj309me6"
                 },
-                "2017488_adiodvpe0_vnf_config_template_version": {
+                "2017488_pasqualevpe0_vnf_config_template_version": {
                   "type": "string",
                   "description": "VPE Software Version",
                   "entry_schema": null,
                   "inputProperties": {
                     "sourceType": "HEAT",
-                    "vfModuleLabel": "ADIOD_vRE_BV",
+                    "vfModuleLabel": "PASQUALE_vRE_BV",
                     "paramName": "vnf_config_template_version"
                   },
                   "constraints": null,
                   "required": true,
                   "default": "17.2"
                 },
-                "2017488_adiodvpe0_AIC_CLLI": {
+                "2017488_pasqualevpe0_AIC_CLLI": {
                   "type": "string",
                   "description": "AIC Site CLLI",
                   "entry_schema": null,
                   "inputProperties": {
                     "sourceType": "HEAT",
-                    "vfModuleLabel": "ADIOD_vRE_BV",
+                    "vfModuleLabel": "PASQUALE_vRE_BV",
                     "paramName": "AIC_CLLI"
                   },
                   "constraints": null,
                   "required": true,
                   "default": "ATLMY8GA"
                 },
-                "adiodvpe0_bandwidth_units": {
+                "pasqualevpe0_bandwidth_units": {
                   "type": "string",
                   "description": "Units of bandwidth",
                   "entry_schema": null,
                   "inputProperties": {
                     "sourceType": "HEAT",
-                    "vfModuleLabel": "ADIOD_vRE_BV",
+                    "vfModuleLabel": "PASQUALE_vRE_BV",
                     "paramName": "bandwidth_units"
                   },
                   "constraints": null,
@@ -1876,116 +1886,116 @@ describe('Model Tree Generator service', () => {
               },
               "volumeGroupAllowed": true
             },
-            "2017488_adiodvpe0..2017488AdiodVpe..ADIOD_base_vPE_BV..module-0": {
+            "2017488_pasqualevpe0..2017488PasqualeVpe..PASQUALE_base_vPE_BV..module-0": {
               "uuid": "f8360508-3f17-4414-a2ed-6bc71161e8db",
               "invariantUuid": "b34833bb-6aa9-4ad6-a831-70b06367a091",
               "customizationUuid": "a55961b2-2065-4ab0-a5b7-2fcee1c227e3",
               "description": null,
-              "name": "2017488AdiodVpe..ADIOD_base_vPE_BV..module-0",
+              "name": "2017488PasqualeVpe..PASQUALE_base_vPE_BV..module-0",
               "version": "5",
-              "modelCustomizationName": "2017488AdiodVpe..ADIOD_base_vPE_BV..module-0",
+              "modelCustomizationName": "2017488PasqualeVpe..PASQUALE_base_vPE_BV..module-0",
               "properties": {
                 "minCountInstances": 1,
                 "maxCountInstances": 1,
                 "initialCount": 1,
-                "vfModuleLabel": "ADIOD_base_vPE_BV"
+                "vfModuleLabel": "PASQUALE_base_vPE_BV"
               },
               "inputs": {},
               "volumeGroupAllowed": false
             },
-            "2017488_adiodvpe0..2017488AdiodVpe..ADIOD_vPFE_BV..module-2": {
+            "2017488_pasqualevpe0..2017488PasqualeVpe..PASQUALE_vPFE_BV..module-2": {
               "uuid": "0a0dd9d4-31d3-4c3a-ae89-a02f383e6a9a",
               "invariantUuid": "eff8cc59-53a1-4101-aed7-8cf24ecf8339",
               "customizationUuid": "3cd946bb-50e0-40d8-96d3-c9023520b557",
               "description": null,
-              "name": "2017488AdiodVpe..ADIOD_vPFE_BV..module-2",
+              "name": "2017488PasqualeVpe..PASQUALE_vPFE_BV..module-2",
               "version": "6",
-              "modelCustomizationName": "2017488AdiodVpe..ADIOD_vPFE_BV..module-2",
+              "modelCustomizationName": "2017488PasqualeVpe..PASQUALE_vPFE_BV..module-2",
               "properties": {
                 "minCountInstances": 0,
                 "maxCountInstances": null,
                 "initialCount": 0,
-                "vfModuleLabel": "ADIOD_vPFE_BV"
+                "vfModuleLabel": "PASQUALE_vPFE_BV"
               },
               "inputs": {},
               "volumeGroupAllowed": true
             }
           },
           "volumeGroups": {
-            "2017488_adiodvpe0..2017488AdiodVpe..ADIOD_vRE_BV..module-1": {
+            "2017488_pasqualevpe0..2017488PasqualeVpe..PASQUALE_vRE_BV..module-1": {
               "uuid": "25284168-24bb-4698-8cb4-3f509146eca5",
               "invariantUuid": "7253ff5c-97f0-4b8b-937c-77aeb4d79aa1",
               "customizationUuid": "f7e7c365-60cf-49a9-9ebf-a1aa11b9d401",
               "description": null,
-              "name": "2017488AdiodVpe..ADIOD_vRE_BV..module-1",
+              "name": "2017488PasqualeVpe..PASQUALE_vRE_BV..module-1",
               "version": "6",
-              "modelCustomizationName": "2017488AdiodVpe..ADIOD_vRE_BV..module-1",
+              "modelCustomizationName": "2017488PasqualeVpe..PASQUALE_vRE_BV..module-1",
               "properties": {
                 "minCountInstances": 0,
                 "maxCountInstances": null,
                 "initialCount": 0,
-                "vfModuleLabel": "ADIOD_vRE_BV"
+                "vfModuleLabel": "PASQUALE_vRE_BV"
               },
               "inputs": {
-                "adiodvpe0_bandwidth": {
+                "pasqualevpe0_bandwidth": {
                   "type": "string",
                   "description": "Requested VPE bandwidth",
                   "entry_schema": null,
                   "inputProperties": {
                     "sourceType": "HEAT",
-                    "vfModuleLabel": "ADIOD_vRE_BV",
+                    "vfModuleLabel": "PASQUALE_vRE_BV",
                     "paramName": "bandwidth"
                   },
                   "constraints": null,
                   "required": true,
                   "default": "10"
                 },
-                "2017488_adiodvpe0_vnf_instance_name": {
+                "2017488_pasqualevpe0_vnf_instance_name": {
                   "type": "string",
                   "description": "The hostname assigned to the vpe.",
                   "entry_schema": null,
                   "inputProperties": {
                     "sourceType": "HEAT",
-                    "vfModuleLabel": "ADIOD_vRE_BV",
+                    "vfModuleLabel": "PASQUALE_vRE_BV",
                     "paramName": "vnf_instance_name"
                   },
                   "constraints": null,
                   "required": true,
                   "default": "mtnj309me6"
                 },
-                "2017488_adiodvpe0_vnf_config_template_version": {
+                "2017488_pasqualevpe0_vnf_config_template_version": {
                   "type": "string",
                   "description": "VPE Software Version",
                   "entry_schema": null,
                   "inputProperties": {
                     "sourceType": "HEAT",
-                    "vfModuleLabel": "ADIOD_vRE_BV",
+                    "vfModuleLabel": "PASQUALE_vRE_BV",
                     "paramName": "vnf_config_template_version"
                   },
                   "constraints": null,
                   "required": true,
                   "default": "17.2"
                 },
-                "2017488_adiodvpe0_AIC_CLLI": {
+                "2017488_pasqualevpe0_AIC_CLLI": {
                   "type": "string",
                   "description": "AIC Site CLLI",
                   "entry_schema": null,
                   "inputProperties": {
                     "sourceType": "HEAT",
-                    "vfModuleLabel": "ADIOD_vRE_BV",
+                    "vfModuleLabel": "PASQUALE_vRE_BV",
                     "paramName": "AIC_CLLI"
                   },
                   "constraints": null,
                   "required": true,
                   "default": "ATLMY8GA"
                 },
-                "adiodvpe0_bandwidth_units": {
+                "pasqualevpe0_bandwidth_units": {
                   "type": "string",
                   "description": "Units of bandwidth",
                   "entry_schema": null,
                   "inputProperties": {
                     "sourceType": "HEAT",
-                    "vfModuleLabel": "ADIOD_vRE_BV",
+                    "vfModuleLabel": "PASQUALE_vRE_BV",
                     "paramName": "bandwidth_units"
                   },
                   "constraints": null,
@@ -1994,19 +2004,19 @@ describe('Model Tree Generator service', () => {
                 }
               }
             },
-            "2017488_adiodvpe0..2017488AdiodVpe..ADIOD_vPFE_BV..module-2": {
+            "2017488_pasqualevpe0..2017488PasqualeVpe..PASQUALE_vPFE_BV..module-2": {
               "uuid": "0a0dd9d4-31d3-4c3a-ae89-a02f383e6a9a",
               "invariantUuid": "eff8cc59-53a1-4101-aed7-8cf24ecf8339",
               "customizationUuid": "3cd946bb-50e0-40d8-96d3-c9023520b557",
               "description": null,
-              "name": "2017488AdiodVpe..ADIOD_vPFE_BV..module-2",
+              "name": "2017488PasqualeVpe..PASQUALE_vPFE_BV..module-2",
               "version": "6",
-              "modelCustomizationName": "2017488AdiodVpe..ADIOD_vPFE_BV..module-2",
+              "modelCustomizationName": "2017488PasqualeVpe..PASQUALE_vPFE_BV..module-2",
               "properties": {
                 "minCountInstances": 0,
                 "maxCountInstances": null,
                 "initialCount": 0,
-                "vfModuleLabel": "ADIOD_vPFE_BV"
+                "vfModuleLabel": "PASQUALE_vPFE_BV"
               },
               "inputs": {}
             }
@@ -2093,85 +2103,85 @@ describe('Model Tree Generator service', () => {
           "modelCustomizationName": "ExtVL 0"
         }
       },
-      "collectionResource": {},
+      "collectionResources": {},
       "configurations": {},
       "fabricConfigurations": {},
       "serviceProxies": {},
       "vfModules": {
-        "2017488_adiodvpe0..2017488AdiodVpe..ADIOD_vRE_BV..module-1": {
+        "2017488_pasqualevpe0..2017488PasqualeVpe..PASQUALE_vRE_BV..module-1": {
           "uuid": "25284168-24bb-4698-8cb4-3f509146eca5",
           "invariantUuid": "7253ff5c-97f0-4b8b-937c-77aeb4d79aa1",
           "customizationUuid": "f7e7c365-60cf-49a9-9ebf-a1aa11b9d401",
           "description": null,
-          "name": "2017488AdiodVpe..ADIOD_vRE_BV..module-1",
+          "name": "2017488PasqualeVpe..PASQUALE_vRE_BV..module-1",
           "version": "6",
-          "modelCustomizationName": "2017488AdiodVpe..ADIOD_vRE_BV..module-1",
+          "modelCustomizationName": "2017488PasqualeVpe..PASQUALE_vRE_BV..module-1",
           "properties": {
             "minCountInstances": 0,
             "maxCountInstances": null,
             "initialCount": 0,
-            "vfModuleLabel": "ADIOD_vRE_BV"
+            "vfModuleLabel": "PASQUALE_vRE_BV"
           },
           "inputs": {
-            "adiodvpe0_bandwidth": {
+            "pasqualevpe0_bandwidth": {
               "type": "string",
               "description": "Requested VPE bandwidth",
               "entry_schema": null,
               "inputProperties": {
                 "sourceType": "HEAT",
-                "vfModuleLabel": "ADIOD_vRE_BV",
+                "vfModuleLabel": "PASQUALE_vRE_BV",
                 "paramName": "bandwidth"
               },
               "constraints": null,
               "required": true,
               "default": "10"
             },
-            "2017488_adiodvpe0_vnf_instance_name": {
+            "2017488_pasqualevpe0_vnf_instance_name": {
               "type": "string",
               "description": "The hostname assigned to the vpe.",
               "entry_schema": null,
               "inputProperties": {
                 "sourceType": "HEAT",
-                "vfModuleLabel": "ADIOD_vRE_BV",
+                "vfModuleLabel": "PASQUALE_vRE_BV",
                 "paramName": "vnf_instance_name"
               },
               "constraints": null,
               "required": true,
               "default": "mtnj309me6"
             },
-            "2017488_adiodvpe0_vnf_config_template_version": {
+            "2017488_pasqualevpe0_vnf_config_template_version": {
               "type": "string",
               "description": "VPE Software Version",
               "entry_schema": null,
               "inputProperties": {
                 "sourceType": "HEAT",
-                "vfModuleLabel": "ADIOD_vRE_BV",
+                "vfModuleLabel": "PASQUALE_vRE_BV",
                 "paramName": "vnf_config_template_version"
               },
               "constraints": null,
               "required": true,
               "default": "17.2"
             },
-            "2017488_adiodvpe0_AIC_CLLI": {
+            "2017488_pasqualevpe0_AIC_CLLI": {
               "type": "string",
               "description": "AIC Site CLLI",
               "entry_schema": null,
               "inputProperties": {
                 "sourceType": "HEAT",
-                "vfModuleLabel": "ADIOD_vRE_BV",
+                "vfModuleLabel": "PASQUALE_vRE_BV",
                 "paramName": "AIC_CLLI"
               },
               "constraints": null,
               "required": true,
               "default": "ATLMY8GA"
             },
-            "adiodvpe0_bandwidth_units": {
+            "pasqualevpe0_bandwidth_units": {
               "type": "string",
               "description": "Units of bandwidth",
               "entry_schema": null,
               "inputProperties": {
                 "sourceType": "HEAT",
-                "vfModuleLabel": "ADIOD_vRE_BV",
+                "vfModuleLabel": "PASQUALE_vRE_BV",
                 "paramName": "bandwidth_units"
               },
               "constraints": null,
@@ -2181,36 +2191,36 @@ describe('Model Tree Generator service', () => {
           },
           "volumeGroupAllowed": true
         },
-        "2017488_adiodvpe0..2017488AdiodVpe..ADIOD_base_vPE_BV..module-0": {
+        "2017488_pasqualevpe0..2017488PasqualeVpe..PASQUALE_base_vPE_BV..module-0": {
           "uuid": "f8360508-3f17-4414-a2ed-6bc71161e8db",
           "invariantUuid": "b34833bb-6aa9-4ad6-a831-70b06367a091",
           "customizationUuid": "a55961b2-2065-4ab0-a5b7-2fcee1c227e3",
           "description": null,
-          "name": "2017488AdiodVpe..ADIOD_base_vPE_BV..module-0",
+          "name": "2017488PasqualeVpe..PASQUALE_base_vPE_BV..module-0",
           "version": "5",
-          "modelCustomizationName": "2017488AdiodVpe..ADIOD_base_vPE_BV..module-0",
+          "modelCustomizationName": "2017488PasqualeVpe..PASQUALE_base_vPE_BV..module-0",
           "properties": {
             "minCountInstances": 1,
             "maxCountInstances": 1,
             "initialCount": 1,
-            "vfModuleLabel": "ADIOD_base_vPE_BV"
+            "vfModuleLabel": "PASQUALE_base_vPE_BV"
           },
           "inputs": {},
           "volumeGroupAllowed": false
         },
-        "2017488_adiodvpe0..2017488AdiodVpe..ADIOD_vPFE_BV..module-2": {
+        "2017488_pasqualevpe0..2017488PasqualeVpe..PASQUALE_vPFE_BV..module-2": {
           "uuid": "0a0dd9d4-31d3-4c3a-ae89-a02f383e6a9a",
           "invariantUuid": "eff8cc59-53a1-4101-aed7-8cf24ecf8339",
           "customizationUuid": "3cd946bb-50e0-40d8-96d3-c9023520b557",
           "description": null,
-          "name": "2017488AdiodVpe..ADIOD_vPFE_BV..module-2",
+          "name": "2017488PasqualeVpe..PASQUALE_vPFE_BV..module-2",
           "version": "6",
-          "modelCustomizationName": "2017488AdiodVpe..ADIOD_vPFE_BV..module-2",
+          "modelCustomizationName": "2017488PasqualeVpe..PASQUALE_vPFE_BV..module-2",
           "properties": {
             "minCountInstances": 0,
             "maxCountInstances": null,
             "initialCount": 0,
-            "vfModuleLabel": "ADIOD_vPFE_BV"
+            "vfModuleLabel": "PASQUALE_vPFE_BV"
           },
           "inputs": {},
           "volumeGroupAllowed": true
@@ -2222,17 +2232,17 @@ describe('Model Tree Generator service', () => {
   function getInstanceServiceVNF() {
     return {
       "vnfs": {
-        "2017-388_ADIOD-vPE 0": {
+        "2017-388_PASQUALE-vPE 0": {
           "action": 'None',
           "inMaint": true,
           "orchStatus": "Active",
           "provStatus": "prov",
           "rollbackOnFailure": "true",
-          "originalName": "2017-388_ADIOD-vPE 0",
+          "originalName": "2017-388_PASQUALE-vPE 0",
           "isMissingData": true,
           "trackById": "u5mtsvzmq6p",
           "vfModules": {},
-          "vnfStoreKey": "2017-388_ADIOD-vPE 0",
+          "vnfStoreKey": "2017-388_PASQUALE-vPE 0",
           "uuid": "afacccf6-397d-45d6-b5ae-94c39734b168",
           "productFamilyId": "d8a6ed93-251c-47ca-adc9-86671fd19f4c",
           "lcpCloudRegionId": null,
@@ -2244,21 +2254,21 @@ describe('Model Tree Generator service', () => {
             "modelType": "VF",
             "modelInvariantId": "72e465fe-71b1-4e7b-b5ed-9496118ff7a8",
             "modelVersionId": "6b528779-44a3-4472-bdff-9cd15ec93450",
-            "modelName": "2017-388_ADIOD-vPE",
+            "modelName": "2017-388_PASQUALE-vPE",
             "modelVersion": "4.0",
-            "modelCustomizationName": "2017-388_ADIOD-vPE 0"
+            "modelCustomizationName": "2017-388_PASQUALE-vPE 0"
           }
         },
-        "2017-488_ADIOD-vPE 0": {
+        "2017-488_PASQUALE-vPE 0": {
           "action": 'None',
           "inMaint": false,
           "rollbackOnFailure": "true",
-          "originalName": "2017-488_ADIOD-vPE 0",
+          "originalName": "2017-488_PASQUALE-vPE 0",
           "isMissingData": false,
           "trackById": "1d6dg4fsgbm",
           "vfModules": {
-            "2017488_adiodvpe0..2017488AdiodVpe..ADIOD_base_vPE_BV..module-0": {
-              "2017488_adiodvpe0..2017488AdiodVpe..ADIOD_base_vPE_BV..module-0zssmp": {
+            "2017488_pasqualevpe0..2017488PasqualeVpe..PASQUALE_base_vPE_BV..module-0": {
+              "2017488_pasqualevpe0..2017488PasqualeVpe..PASQUALE_base_vPE_BV..module-0zssmp": {
                 "action": 'None',
                 "isMissingData": true,
                 "sdncPreReload": null,
@@ -2266,11 +2276,11 @@ describe('Model Tree Generator service', () => {
                   "modelType": "VFmodule",
                   "modelInvariantId": "b34833bb-6aa9-4ad6-a831-70b06367a091",
                   "modelVersionId": "f8360508-3f17-4414-a2ed-6bc71161e8db",
-                  "modelName": "2017488AdiodVpe..ADIOD_base_vPE_BV..module-0",
+                  "modelName": "2017488PasqualeVpe..PASQUALE_base_vPE_BV..module-0",
                   "modelVersion": "5",
                   "modelCustomizationId": "a55961b2-2065-4ab0-a5b7-2fcee1c227e3",
                   "modelUniqueId": "a55961b2-2065-4ab0-a5b7-2fcee1c227e3",
-                  "modelCustomizationName": "2017488AdiodVpe..ADIOD_base_vPE_BV..module-0"
+                  "modelCustomizationName": "2017488PasqualeVpe..PASQUALE_base_vPE_BV..module-0"
                 },
                 "instanceParams": [
                   {}
@@ -2280,24 +2290,24 @@ describe('Model Tree Generator service', () => {
               }
             }
           },
-          "vnfStoreKey": "2017-488_ADIOD-vPE 0",
+          "vnfStoreKey": "2017-488_PASQUALE-vPE 0",
           "uuid": "69e09f68-8b63-4cc9-b9ff-860960b5db09",
           "productFamilyId": "d8a6ed93-251c-47ca-adc9-86671fd19f4c",
-          "lcpCloudRegionId": "JANET25",
+          "lcpCloudRegionId": "AAIAIC25",
           "tenantId": "092eb9e8e4b7412e8787dd091bc58e86",
           "lineOfBusiness": "ONAP",
           "platformName": "platform",
           "modelInfo": {
             "modelInvariantId": "72e465fe-71b1-4e7b-b5ed-9496118ff7a8",
             "modelVersionId": "69e09f68-8b63-4cc9-b9ff-860960b5db09",
-            "modelName": "2017-488_ADIOD-vPE",
+            "modelName": "2017-488_PASQUALE-vPE",
             "modelVersion": "5.0",
             "modelCustomizationId": "1da7b585-5e61-4993-b95e-8e6606c81e45",
             "modelUniqueId": "1da7b585-5e61-4993-b95e-8e6606c81e45",
-            "modelCustomizationName": "2017-488_ADIOD-vPE 0",
+            "modelCustomizationName": "2017-488_PASQUALE-vPE 0",
             "uuid": "69e09f68-8b63-4cc9-b9ff-860960b5db09"
           },
-          "instanceName": "2017488_ADIODvPE",
+          "instanceName": "2017488_PASQUALEvPE",
           "legacyRegion": "123",
           "instanceParams": [
             {}
@@ -2306,7 +2316,7 @@ describe('Model Tree Generator service', () => {
       },
       "instanceParams": [
         {
-          "2017488_adiodvpe0_ASN": "AV_vPE"
+          "2017488_pasqualevpe0_ASN": "AV_vPE"
         }
       ],
       "validationCounter": 3,
@@ -2324,7 +2334,7 @@ describe('Model Tree Generator service', () => {
       "subscriptionServiceType": "TYLER SILVIA",
       "owningEntityId": "d61e6f2d-12fa-4cc2-91df-7c244011d6fc",
       "productFamilyId": "d8a6ed93-251c-47ca-adc9-86671fd19f4c",
-      "lcpCloudRegionId": "JANET25",
+      "lcpCloudRegionId": "AAIAIC25",
       "tenantId": "092eb9e8e4b7412e8787dd091bc58e86",
       "aicZoneId": "ABC15",
       "projectName": "WATKINS",
@@ -2358,43 +2368,43 @@ describe('Model Tree Generator service', () => {
   function getInstanceServiceVNF_Network() {
     return {
       "vnfs": {
-        "2017-488_ADIOD-vPE 0": {
+        "2017-488_PASQUALE-vPE 0": {
           "action": 'None',
           "rollbackOnFailure": "true",
-          "originalName": "2017-488_ADIOD-vPE 0",
+          "originalName": "2017-488_PASQUALE-vPE 0",
           "isMissingData": false,
           "trackById": "o65b26t2thj",
           "vfModules": {
-            "2017488_adiodvpe0..2017488AdiodVpe..ADIOD_vRE_BV..module-1": {
-              "2017488_adiodvpe0..2017488AdiodVpe..ADIOD_vRE_BV..module-1sgoqi": {
+            "2017488_pasqualevpe0..2017488PasqualeVpe..PASQUALE_vRE_BV..module-1": {
+              "2017488_pasqualevpe0..2017488PasqualeVpe..PASQUALE_vRE_BV..module-1sgoqi": {
                 "action": 'None',
                 "instanceName": "yoav",
                 "volumeGroupName": "123",
                 "modelInfo": {
                   "modelInvariantId": "7253ff5c-97f0-4b8b-937c-77aeb4d79aa1",
                   "modelVersionId": "25284168-24bb-4698-8cb4-3f509146eca5",
-                  "modelName": "2017488AdiodVpe..ADIOD_vRE_BV..module-1",
+                  "modelName": "2017488PasqualeVpe..PASQUALE_vRE_BV..module-1",
                   "modelVersion": "6",
                   "modelCustomizationId": "f7e7c365-60cf-49a9-9ebf-a1aa11b9d401",
                   "modelUniqueId": "f7e7c365-60cf-49a9-9ebf-a1aa11b9d401",
-                  "modelCustomizationName": "2017488AdiodVpe..ADIOD_vRE_BV..module-1",
+                  "modelCustomizationName": "2017488PasqualeVpe..PASQUALE_vRE_BV..module-1",
                   "uuid": "25284168-24bb-4698-8cb4-3f509146eca5"
                 },
                 "uuid": "25284168-24bb-4698-8cb4-3f509146eca5",
                 "isMissingData": false,
                 "instanceParams": [
                   {
-                    "adiodvpe0_bandwidth": "10",
-                    "2017488_adiodvpe0_vnf_instance_name": "mtnj309me6",
-                    "2017488_adiodvpe0_vnf_config_template_version": "17.2",
-                    "2017488_adiodvpe0_AIC_CLLI": "ATLMY8GA",
-                    "adiodvpe0_bandwidth_units": "Gbps"
+                    "pasqualevpe0_bandwidth": "10",
+                    "2017488_pasqualevpe0_vnf_instance_name": "mtnj309me6",
+                    "2017488_pasqualevpe0_vnf_config_template_version": "17.2",
+                    "2017488_pasqualevpe0_AIC_CLLI": "ATLMY8GA",
+                    "pasqualevpe0_bandwidth_units": "Gbps"
                   }
                 ]
               }
             }
           },
-          "vnfStoreKey": "2017-488_ADIOD-vPE 0",
+          "vnfStoreKey": "2017-488_PASQUALE-vPE 0",
           "uuid": "69e09f68-8b63-4cc9-b9ff-860960b5db09",
           "productFamilyId": "ebc3bc3d-62fd-4a3f-a037-f619df4ff034",
           "lcpCloudRegionId": "hvf6",
@@ -2404,13 +2414,13 @@ describe('Model Tree Generator service', () => {
           "modelInfo": {
             "modelInvariantId": "72e465fe-71b1-4e7b-b5ed-9496118ff7a8",
             "modelVersionId": "69e09f68-8b63-4cc9-b9ff-860960b5db09",
-            "modelName": "2017-488_ADIOD-vPE",
+            "modelName": "2017-488_PASQUALE-vPE",
             "modelVersion": "5.0",
             "modelCustomizationId": "1da7b585-5e61-4993-b95e-8e6606c81e45",
-            "modelCustomizationName": "2017-488_ADIOD-vPE 0",
+            "modelCustomizationName": "2017-488_PASQUALE-vPE 0",
             "uuid": "69e09f68-8b63-4cc9-b9ff-860960b5db09"
           },
-          "instanceName": "2017488_ADIODvPE",
+          "instanceName": "2017488_PASQUALEvPE",
           "instanceParams": [
             {}
           ]
@@ -2418,7 +2428,7 @@ describe('Model Tree Generator service', () => {
       },
       "instanceParams": [
         {
-          "2017488_adiodvpe0_ASN": "AV_vPE"
+          "2017488_pasqualevpe0_ASN": "AV_vPE"
         }
       ],
       "validationCounter": 0,
@@ -2448,6 +2458,11 @@ describe('Model Tree Generator service', () => {
           "tenantId": "229bcdc6eaeb4ca59d55221141d01f8e",
           "platformName": "xxx1",
           "lineOfBusiness": "ONAP",
+          "uuid": "network-instance-model-version-id",
+          "routeTarget": {
+            "globalRouteTarget": "mock-global-1",
+            "routeTargetRole": "mock-role-x"
+          },
           "instanceParams": [
             {}
           ],
@@ -2528,7 +2543,7 @@ describe('Model Tree Generator service', () => {
       "subscriptionServiceType": "TYLER SILVIA",
       "owningEntityId": "d61e6f2d-12fa-4cc2-91df-7c244011d6fc",
       "productFamilyId": "17cc1042-527b-11e6-beb8-9e71128cae77",
-      "lcpCloudRegionId": "JANET25",
+      "lcpCloudRegionId": "AAIAIC25",
       "tenantId": "092eb9e8e4b7412e8787dd091bc58e86",
       "aicZoneId": "JAG1",
       "projectName": null,
@@ -2571,13 +2586,13 @@ describe('Model Tree Generator service', () => {
         "orchStatus": 'Active',
         "provStatus": 'prov',
         "inMaint": true,
-        "name": "2017-388_ADIOD-vPE 0",
-        "modelName": "2017-388_ADIOD-vPE 0",
+        "name": "2017-388_PASQUALE-vPE 0",
+        "modelName": "2017-388_PASQUALE-vPE 0",
         "type": "VF",
         "parentType": '',
         "isEcompGeneratedNaming": false,
-        "networkStoreKey": "2017-388_ADIOD-vPE 0",
-        "vnfStoreKey": "2017-388_ADIOD-vPE 0",
+        "networkStoreKey": "2017-388_PASQUALE-vPE 0",
+        "vnfStoreKey": "2017-388_PASQUALE-vPE 0",
         "typeName": "VNF",
         "children": [],
         "statusMessage": "Failed Vnf Message",
@@ -2598,12 +2613,12 @@ describe('Model Tree Generator service', () => {
         "id": "1d6dg4fsgbm",
         "inMaint": false,
         "parentType": '',
-        "name": "2017-488_ADIOD-vPE 0",
-        "modelName": "2017-488_ADIOD-vPE 0",
+        "name": "2017-488_PASQUALE-vPE 0",
+        "modelName": "2017-488_PASQUALE-vPE 0",
         "type": "VF",
         "isEcompGeneratedNaming": false,
-        "networkStoreKey": "2017-488_ADIOD-vPE 0",
-        "vnfStoreKey": "2017-488_ADIOD-vPE 0",
+        "networkStoreKey": "2017-488_PASQUALE-vPE 0",
+        "vnfStoreKey": "2017-488_PASQUALE-vPE 0",
         "typeName": "VNF",
         "statusProperties": [Object({
           key: 'Prov Status:',
@@ -2620,11 +2635,11 @@ describe('Model Tree Generator service', () => {
           "id": "v2egx1b8i1l",
           "statusMessage": "Failed vfModel message",
           "name": "&lt;Automatically Assigned&gt;",
-          "modelName": "2017488_adiodvpe0..2017488AdiodVpe..ADIOD_base_vPE_BV..module-0",
+          "modelName": "2017488_pasqualevpe0..2017488PasqualeVpe..PASQUALE_base_vPE_BV..module-0",
           "type": "VFmodule",
           "isEcompGeneratedNaming": false,
           "dynamicInputs": [],
-          "dynamicModelName": "2017488_adiodvpe0..2017488AdiodVpe..ADIOD_base_vPE_BV..module-0zssmp",
+          "dynamicModelName": "2017488_pasqualevpe0..2017488PasqualeVpe..PASQUALE_base_vPE_BV..module-0zssmp",
           "typeName": "M",
           "statusProperties": [Object({
             key: 'Prov Status:',
@@ -2643,11 +2658,11 @@ describe('Model Tree Generator service', () => {
         "modelId": "69e09f68-8b63-4cc9-b9ff-860960b5db09",
         "missingData": false,
         "id": "o65b26t2thj",
-        "name": "2017488_ADIODvPE",
-        "modelName": "2017-488_ADIOD-vPE 0",
+        "name": "2017488_PASQUALEvPE",
+        "modelName": "2017-488_PASQUALE-vPE 0",
         "type": "VF",
         "isEcompGeneratedNaming": false,
-        "vnfStoreKey": "2017-488_ADIOD-vPE 0",
+        "vnfStoreKey": "2017-488_PASQUALE-vPE 0",
         "typeName": "VNF",
         "statusProperties": [Object({
           key: 'Prov Status:',
@@ -2660,53 +2675,53 @@ describe('Model Tree Generator service', () => {
             "modelId": "25284168-24bb-4698-8cb4-3f509146eca5",
             "missingData": false,
             "name": "yoav",
-            "modelName": "2017488_adiodvpe0..2017488AdiodVpe..ADIOD_vRE_BV..module-1",
+            "modelName": "2017488_pasqualevpe0..2017488PasqualeVpe..PASQUALE_vRE_BV..module-1",
             "type": "VFmodule",
             "isEcompGeneratedNaming": false,
             "typeName": "M",
             "dynamicInputs": [
               {
-                "id": "adiodvpe0_bandwidth",
+                "id": "pasqualevpe0_bandwidth",
                 "type": "string",
-                "name": "adiodvpe0_bandwidth",
+                "name": "pasqualevpe0_bandwidth",
                 "value": "10",
                 "isRequired": true,
                 "description": "Requested VPE bandwidth"
               },
               {
-                "id": "2017488_adiodvpe0_vnf_instance_name",
+                "id": "2017488_pasqualevpe0_vnf_instance_name",
                 "type": "string",
-                "name": "2017488_adiodvpe0_vnf_instance_name",
+                "name": "2017488_pasqualevpe0_vnf_instance_name",
                 "value": "mtnj309me6",
                 "isRequired": true,
                 "description": "The hostname assigned to the vpe."
               },
               {
-                "id": "2017488_adiodvpe0_vnf_config_template_version",
+                "id": "2017488_pasqualevpe0_vnf_config_template_version",
                 "type": "string",
-                "name": "2017488_adiodvpe0_vnf_config_template_version",
+                "name": "2017488_pasqualevpe0_vnf_config_template_version",
                 "value": "17.2",
                 "isRequired": true,
                 "description": "VPE Software Version"
               },
               {
-                "id": "2017488_adiodvpe0_AIC_CLLI",
+                "id": "2017488_pasqualevpe0_AIC_CLLI",
                 "type": "string",
-                "name": "2017488_adiodvpe0_AIC_CLLI",
+                "name": "2017488_pasqualevpe0_AIC_CLLI",
                 "value": "ATLMY8GA",
                 "isRequired": true,
                 "description": "AIC Site CLLI"
               },
               {
-                "id": "adiodvpe0_bandwidth_units",
+                "id": "pasqualevpe0_bandwidth_units",
                 "type": "string",
-                "name": "adiodvpe0_bandwidth_units",
+                "name": "pasqualevpe0_bandwidth_units",
                 "value": "Gbps",
                 "isRequired": true,
                 "description": "Units of bandwidth"
               }
             ],
-            "dynamicModelName": "2017488_adiodvpe0..2017488AdiodVpe..ADIOD_vRE_BV..module-1sgoqi"
+            "dynamicModelName": "2017488_pasqualevpe0..2017488PasqualeVpe..PASQUALE_vRE_BV..module-1sgoqi"
           }
         ]
       },
@@ -2719,6 +2734,8 @@ describe('Model Tree Generator service', () => {
         "missingData": false,
         "id": "sf3zth68xjf",
         "name": "&lt;Automatically Assigned&gt;",
+        "routeTargetId": "mock-global-1",
+        "routeTargetRole": "mock-role-x",
         "statusMessage": "Network failed message",
         "modelName": "ExtVL 0",
         "type": "VL",
index 1fc439e..7a908b7 100644 (file)
@@ -48,7 +48,7 @@ export class ObjectToInstanceTreeService {
    * @param node - the current node
    ****************************************************************/
   increaseNumberOfFailed(node) {
-    if (node.isFailed) {
+    if (node && node.isFailed) {
       this.numberOfFailed++;
       node['errors'] = !_.isNil(node['errors']) ? node['errors'] : {};
       node['errors']["isFailed"] = true;
@@ -92,11 +92,16 @@ export class ObjectToInstanceTreeService {
   }
 
   addingExtraDataToNode(node, modelName: string, parentModel: any, instance: any, serviceHierarchy, option: ILevelNodeInfo, parentType ?: string) {
-    node.trackById = _.isNil(node.trackById) ? DefaultDataGeneratorService.createRandomTrackById() : node['trackById'];
-    node.parentType = !_.isNil(parentType) ? parentType : "";
-    node.updatePoistionFunction = option.updatePosition;
-    node.position = option.getNodePosition(instance, node.dynamicModelName);
-    node.onSelectedNode = option.onSelectedNode;
+    if(!_.isNil(node)){
+      node.trackById = _.isNil(node.trackById) ? DefaultDataGeneratorService.createRandomTrackById() : node['trackById'];
+      node.parentType = !_.isNil(parentType) ? parentType : "";
+      node.updatePoistionFunction = option.updatePosition;
+      node.position = option.getNodePosition(instance, node.dynamicModelName);
+      node.getModel = option.getModel.bind(option);
+      node.getInfo = !_.isNil(option.getInfo) ? option.getInfo.bind(option) : ()=>{};
+      node.componentInfoType = option.componentInfoType;
+    }
+
     return node;
   }
 
@@ -116,24 +121,27 @@ export class ObjectToInstanceTreeService {
    * @param serviceHierarchy - The service Hierarchy store
    ****************************************************************/
   addNextInstanceTreeNode(parentInstance, parentModel, levelNodeInfo: ILevelNodeInfo, parentNode, serviceHierarchy): any[] {
-    if (!_.isNil(levelNodeInfo.childName)) {
+    if (!_.isNil(levelNodeInfo.childNames)&& levelNodeInfo.childNames.length > 0) {
+      const that = this;
       parentNode.children = [];
-      if (!_.isNil(parentInstance[levelNodeInfo.childName])) {
-        let parentType = levelNodeInfo.type;
-        let nextLevelNodeInfo = levelNodeInfo.getNextLevelObject.apply(this);
-        Object.keys(parentInstance[levelNodeInfo.childName]).map((modelName) => {
-          let nextLevelInstance = parentInstance[levelNodeInfo.childName][modelName];
-          let nodes: any[] | any = this.getNodeInstance(modelName, parentModel, nextLevelInstance, serviceHierarchy, nextLevelNodeInfo, parentType);
-          if (_.isArray(nodes)) {
-            parentNode.children = parentNode.children.concat(nodes);
-          } else {
-            parentNode.children.push(nodes);
-          }
-        });
-        return this.sortElementsByPosition(parentNode.children);
-      }
+      levelNodeInfo.childNames.forEach(function (childName)  {
+        if (!_.isNil(parentInstance[childName])) {
+          let parentType = levelNodeInfo.type;
+          let nextLevelNodeInfo = levelNodeInfo.getNextLevelObject.apply(that, [childName]);
+          Object.keys(parentInstance[childName]).map((modelName) => {
+            let nextLevelInstance = parentInstance[childName][modelName];
+            let nodes: any[] | any = that.getNodeInstance(modelName, parentModel, nextLevelInstance, serviceHierarchy, nextLevelNodeInfo, parentType);
+            if (_.isArray(nodes)) {
+              parentNode.children = parentNode.children.concat(nodes);
+            } else {
+              parentNode.children.push(nodes);
+            }
+          });
+        }
+      });
+      return this.sortElementsByPosition(parentNode.children);
     }
-    return parentNode.children;
+    return !_.isNil(parentNode) ? parentNode.children : null;
   }
 
 
@@ -142,6 +150,7 @@ export class ObjectToInstanceTreeService {
    * @param node
    *********************************************************************************/
   updateScalingPolicy(node): void {
+    if(_.isNil(node)) return node;
     node['errors'] = !_.isNil(node['errors']) ? node['errors'] : {};
     if (!_.isNil(node['limitMembers']) && !_.isNil(node.children)) {
       let effectiveChildren = (node.children).filter(child => [
index 41ad23f..7246adc 100644 (file)
@@ -8,7 +8,10 @@ import {DefaultDataGeneratorService} from "../../../../shared/services/defaultDa
 import {DynamicInputsService} from "../dynamicInputs.service";
 import {SharedTreeService} from "../shared.tree.service";
 import {DrawingBoardModes} from "../../drawing-board.modes";
-import {AvailableModelsTreeService} from "../../available-models-tree/available-models-tree.service";
+import {
+  AvailableModelsTreeService,
+  AvailableNodeIcons
+} from "../../available-models-tree/available-models-tree.service";
 import {DialogService} from "ng2-bootstrap-modal";
 import {VnfPopupService} from "../../../../shared/components/genericFormPopup/genericFormServices/vnf/vnf.popup.service";
 import {BasicControlGenerator} from "../../../../shared/components/genericForm/formControlsServices/basic.control.generator";
@@ -29,12 +32,39 @@ import {VnfGroupControlGenerator} from "../../../../shared/components/genericFor
 import {DuplicateService} from "../../duplicate/duplicate.service";
 import {SdcUiComponentsModule} from "onap-ui-angular";
 import {ComponentInfoService} from "../../component-info/component-info.service";
+import {IModelTreeNodeModel} from "../../../objectsToTree/objectToModelTree/modelTreeNode.model";
+import {VpnStepService} from "../models/vrf/vrfModal/vpnStep/vpn.step.service";
+import {NetworkStepService} from "../models/vrf/vrfModal/networkStep/network.step.service";
 
 class MockAppStore<T> {
   getState() {
     return {
       global: {
         'drawingBoardStatus': DrawingBoardModes.CREATE
+      },
+      service: {
+        serviceInstance: {
+          "1a80c596-27e5-4ca9-b5bb-e03a7fd4c0fd": {
+            "existingVNFCounterMap": {
+              "280dec31-f16d-488b-9668-4aae55d6648a": 1
+            }
+          }
+        },
+        serviceHierarchy: {
+          "1a80c596-27e5-4ca9-b5bb-e03a7fd4c0fd": {
+            vnfs: {
+              "2017-388_PASQUALE-vPE 1": {
+                "properties": {}
+              },
+              "2017-388_PASQUALE-vPE 0": {
+                "properties": {}
+              },
+              "2017-488_PASQUALE-vPE 0": {
+                "properties": {}
+              }
+            }
+          }
+        }
       }
     }
   }
@@ -77,8 +107,10 @@ describe('Model Tree Generator service', () => {
         DialogService,
         DuplicateService,
         ComponentInfoService,
+        NetworkStepService,
+        VpnStepService,
         {provide: NgRedux, useClass: MockAppStore},
-        MockNgRedux]
+        MockNgRedux ]
     }).compileComponents();
 
     injector = getTestBed();
@@ -90,25 +122,72 @@ describe('Model Tree Generator service', () => {
     expect(service).toBeDefined();
   });
 
-  test('should return nodes correctly: VNF', () => {
 
+  test('calculateNumberOfNodesWithPlusIcon : should return 0 when there are no nodes', () => {
+    service.calculateNumberOfNodesWithPlusIcon("someServiceModelId", []);
+    expect(service.numberOfPlusButton).toEqual(0);
+  });
+
+  test('calculateNumberOfNodesWithPlusIcon : should return 1 there is one node with plus icon', () => {
+    const serviceModel = {
+      service: {
+        uuid: "uuid"
+      }
+    };
+    service.calculateNumberOfNodesWithPlusIcon(serviceModel, [{
+      showNodeIcons: () => {
+        return new AvailableNodeIcons(true, false)
+      }
+    }]);
+    expect(service.numberOfPlusButton).toEqual(1);
+  });
+
+  test('calculateNumberOfNodesWithPlusIcon : should return 1 there is one node with plus icon and one without', () => {
+    const serviceModel = {
+      service: {
+        uuid: "uuid"
+      }
+    };
+    service.calculateNumberOfNodesWithPlusIcon(serviceModel, [
+      {
+        showNodeIcons: () => {
+          return new AvailableNodeIcons(true, false)
+        }
+      },
+      {
+        showNodeIcons: () => {
+          return new AvailableNodeIcons(false, true)
+        }
+      }
+    ]);
+    expect(service.numberOfPlusButton).toEqual(1);
+  });
+
+  test('should return nodes correctly: VNF', () => {
     let convertToNodes = service.convertServiceHierarchyModelToTreeNodes(getServiceHeirarchyVNF());
-    convertToNodes.map((item) => {
-      delete item['onAddClick'];
-      delete item['getNodeCount'];
-      delete item['showNodeIcons'];
+    convertToNodes.map((item: IModelTreeNodeModel) => {
+      delete item.onAddClick;
+      delete item.getNodeCount;
+      delete item.showNodeIcons;
+      delete item.getModel;
+      delete item.componentInfoType;
+      delete item.getMenuAction;
       delete item['menuActions'];
-      delete item['getMenuAction'];
       delete item['trackById'];
+      delete item.getInfo;
+
 
       if (item.children) {
         item.children.map((child) => {
-          delete child['onAddClick'];
-          delete child['getNodeCount'];
-          delete child['showNodeIcons'];
+          delete child.onAddClick;
+          delete child.getNodeCount;
+          delete child.showNodeIcons;
+          delete child.getModel;
+          delete child.componentInfoType;
+          delete child.getMenuAction;
           delete child['menuActions'];
-          delete child['getMenuAction'];
           delete child['trackById'];
+          delete child.getInfo;
         });
       }
     });
@@ -121,7 +200,7 @@ describe('Model Tree Generator service', () => {
     return [{
       "id": "280dec31-f16d-488b-9668-4aae55d6648a",
       "modelVersionId": "0903e1c0-8e03-4936-b5c2-260653b96413",
-      "name": "2017-388_ADIOD-vPE 1",
+      "name": "2017-388_PASQUALE-vPE 1",
       "tooltip": "VF",
       "type": "VF",
       "count": 0,
@@ -138,7 +217,7 @@ describe('Model Tree Generator service', () => {
       "modelVersionId": "afacccf6-397d-45d6-b5ae-94c39734b168",
       "modelCustomizationId": "b3c76f73-eeb5-4fb6-9d31-72a889f1811c",
       "modelUniqueId": "b3c76f73-eeb5-4fb6-9d31-72a889f1811c",
-      "name": "2017-388_ADIOD-vPE 0",
+      "name": "2017-388_PASQUALE-vPE 0",
       "tooltip": "VF",
       "type": "VF",
       "count": 0,
@@ -153,7 +232,7 @@ describe('Model Tree Generator service', () => {
       "modelVersionId": "69e09f68-8b63-4cc9-b9ff-860960b5db09",
       "modelCustomizationId": "1da7b585-5e61-4993-b95e-8e6606c81e45",
       "modelUniqueId": "1da7b585-5e61-4993-b95e-8e6606c81e45",
-      "name": "2017-488_ADIOD-vPE 0",
+      "name": "2017-488_PASQUALE-vPE 0",
       "tooltip": "VF",
       "type": "VF",
       "count": 0,
@@ -163,7 +242,7 @@ describe('Model Tree Generator service', () => {
         "modelVersionId": "25284168-24bb-4698-8cb4-3f509146eca5",
         "modelCustomizationId": "f7e7c365-60cf-49a9-9ebf-a1aa11b9d401",
         "modelUniqueId": "f7e7c365-60cf-49a9-9ebf-a1aa11b9d401",
-        "name": "2017488_adiodvpe0..2017488AdiodVpe..ADIOD_vRE_BV..module-1",
+        "name": "2017488_pasqualevpe0..2017488PasqualeVpe..PASQUALE_vRE_BV..module-1",
         "tooltip": "VFmodule",
         "type": "VFmodule",
         "count": 0,
@@ -178,7 +257,7 @@ describe('Model Tree Generator service', () => {
         "modelVersionId": "f8360508-3f17-4414-a2ed-6bc71161e8db",
         "modelCustomizationId": "a55961b2-2065-4ab0-a5b7-2fcee1c227e3",
         "modelUniqueId": "a55961b2-2065-4ab0-a5b7-2fcee1c227e3",
-        "name": "2017488_adiodvpe0..2017488AdiodVpe..ADIOD_base_vPE_BV..module-0",
+        "name": "2017488_pasqualevpe0..2017488PasqualeVpe..PASQUALE_base_vPE_BV..module-0",
         "tooltip": "VFmodule",
         "type": "VFmodule",
         "count": 0,
@@ -193,7 +272,7 @@ describe('Model Tree Generator service', () => {
         "modelVersionId": "0a0dd9d4-31d3-4c3a-ae89-a02f383e6a9a",
         "modelCustomizationId": "3cd946bb-50e0-40d8-96d3-c9023520b557",
         "modelUniqueId": "3cd946bb-50e0-40d8-96d3-c9023520b557",
-        "name": "2017488_adiodvpe0..2017488AdiodVpe..ADIOD_vPFE_BV..module-2",
+        "name": "2017488_pasqualevpe0..2017488PasqualeVpe..PASQUALE_vPFE_BV..module-2",
         "tooltip": "VFmodule",
         "type": "VFmodule",
         "count": 0,
@@ -223,25 +302,25 @@ describe('Model Tree Generator service', () => {
         "category": "Network L1-3",
         "serviceType": "pnf",
         "serviceRole": "Testing",
-        "description": "ADIOD vMX vPE based on Juniper 17.2 release. Updated with updated VF for v8.0 of VLM",
+        "description": "PASQUALE vMX vPE based on Juniper 17.2 release. Updated with updated VF for v8.0 of VLM",
         "serviceEcompNaming": "false",
         "instantiationType": "Macro",
         "inputs": {},
         "vidNotions": {"instantiationUI": "legacy", "modelCategory": "other"}
       },
       "vnfs": {
-        "2017-388_ADIOD-vPE 1": {
+        "2017-388_PASQUALE-vPE 1": {
           "uuid": "0903e1c0-8e03-4936-b5c2-260653b96413",
           "invariantUuid": "00beb8f9-6d39-452f-816d-c709b9cbb87d",
-          "description": "Name ADIOD vPE Description The provider edge function for the ADIOD service supported by the Junipers VMX product Category Router Vendor Juniper Vendor Release Code 17.2 Owners Mary Fragale. Updated 9-25 to use v8.0 of the Juniper Valid 2 VLM",
-          "name": "2017-388_ADIOD-vPE",
+          "description": "Name PASQUALE vPE Description The provider edge function for the PASQUALE service supported by the Junipers VMX product Category Router Vendor Juniper Vendor Release Code 17.2 Owners Mary Fragale. Updated 9-25 to use v8.0 of the Juniper Valid 2 VLM",
+          "name": "2017-388_PASQUALE-vPE",
           "version": "1.0",
           "customizationUuid": "280dec31-f16d-488b-9668-4aae55d6648a",
           "inputs": {},
           "commands": {},
           "properties": {
             "vmxvre_retype": "RE-VMX",
-            "vnf_config_template_version": "get_input:2017488_adiodvpe0_vnf_config_template_version",
+            "vnf_config_template_version": "get_input:2017488_pasqualevpe0_vnf_config_template_version",
             "sriov44_net_id": "48d399b3-11ee-48a8-94d2-f0ea94d6be8d",
             "int_ctl_net_id": "2f323477-6936-4d01-ac53-d849430281d9",
             "vmxvpfe_sriov41_0_port_mac": "00:11:22:EF:AC:DF",
@@ -287,7 +366,7 @@ describe('Model Tree Generator service', () => {
             "vmxvpfe_sriov43_0_port_unknownmulticastallow": "true",
             "vmxvre_int_ctl_ip_0": "10.0.0.10",
             "ecomp_generated_naming": "true",
-            "AIC_CLLI": "get_input:2017488_adiodvpe0_AIC_CLLI",
+            "AIC_CLLI": "get_input:2017488_pasqualevpe0_AIC_CLLI",
             "vnf_name": "mtnj309me6vre",
             "vmxvpfe_sriov41_0_port_unknownunicastallow": "true",
             "vmxvre_volume_type_1": "HITACHI",
@@ -295,14 +374,14 @@ describe('Model Tree Generator service', () => {
             "vmxvre_volume_type_0": "HITACHI",
             "vmxvpfe_volume_type_0": "HITACHI",
             "vmxvpfe_sriov43_0_port_broadcastallow": "true",
-            "bandwidth_units": "get_input:2017488_adiodvpe0_bandwidth_units",
+            "bandwidth_units": "get_input:2017488_pasqualevpe0_bandwidth_units",
             "vnf_id": "123",
             "vmxvre_oam_prefix": "24",
             "availability_zone_0": "mtpocfo-kvm-az01",
-            "ASN": "get_input:2017488_adiodvpe0_ASN",
+            "ASN": "get_input:2017488_pasqualevpe0_ASN",
             "vmxvre_chassis_i2cid": "161",
             "vmxvpfe_name_0": "vPFEXI",
-            "bandwidth": "get_input:2017488_adiodvpe0_bandwidth",
+            "bandwidth": "get_input:2017488_pasqualevpe0_bandwidth",
             "availability_zone_max_count": "1",
             "vmxvre_volume_size_0": "45.0",
             "vmxvre_volume_size_1": "50.0",
@@ -312,7 +391,7 @@ describe('Model Tree Generator service', () => {
             "vmxvre_ore_present": "0",
             "vmxvre_volume_name_0": "vREXI_FBVolume",
             "vmxvre_type": "0",
-            "vnf_instance_name": "get_input:2017488_adiodvpe0_vnf_instance_name",
+            "vnf_instance_name": "get_input:2017488_pasqualevpe0_vnf_instance_name",
             "vmxvpfe_sriov41_0_port_unknownmulticastallow": "true",
             "oam_net_id": "b95eeb1d-d55d-4827-abb4-8ebb94941429",
             "vmx_int_ctl_len": "24",
@@ -326,23 +405,23 @@ describe('Model Tree Generator service', () => {
             "vmxvpfe_flavor_name": "ns.c20r16d25.v5"
           },
           "type": "VF",
-          "modelCustomizationName": "2017-388_ADIOD-vPE 1",
+          "modelCustomizationName": "2017-388_PASQUALE-vPE 1",
           "vfModules": {},
           "volumeGroups": {},
           "vfcInstanceGroups": {}
         },
-        "2017-388_ADIOD-vPE 0": {
+        "2017-388_PASQUALE-vPE 0": {
           "uuid": "afacccf6-397d-45d6-b5ae-94c39734b168",
           "invariantUuid": "72e465fe-71b1-4e7b-b5ed-9496118ff7a8",
-          "description": "Name ADIOD vPE Description The provider edge function for the ADIOD service supported by the Junipers VMX product Category Router Vendor Juniper Vendor Release Code 17.2 Owners Mary Fragale. Updated 9-25 to use v8.0 of the Juniper Valid 2 VLM",
-          "name": "2017-388_ADIOD-vPE",
+          "description": "Name PASQUALE vPE Description The provider edge function for the PASQUALE service supported by the Junipers VMX product Category Router Vendor Juniper Vendor Release Code 17.2 Owners Mary Fragale. Updated 9-25 to use v8.0 of the Juniper Valid 2 VLM",
+          "name": "2017-388_PASQUALE-vPE",
           "version": "4.0",
           "customizationUuid": "b3c76f73-eeb5-4fb6-9d31-72a889f1811c",
           "inputs": {},
           "commands": {},
           "properties": {
             "vmxvre_retype": "RE-VMX",
-            "vnf_config_template_version": "get_input:2017488_adiodvpe0_vnf_config_template_version",
+            "vnf_config_template_version": "get_input:2017488_pasqualevpe0_vnf_config_template_version",
             "sriov44_net_id": "48d399b3-11ee-48a8-94d2-f0ea94d6be8d",
             "int_ctl_net_id": "2f323477-6936-4d01-ac53-d849430281d9",
             "vmxvpfe_sriov41_0_port_mac": "00:11:22:EF:AC:DF",
@@ -388,7 +467,7 @@ describe('Model Tree Generator service', () => {
             "vmxvpfe_sriov43_0_port_unknownmulticastallow": "true",
             "vmxvre_int_ctl_ip_0": "10.0.0.10",
             "ecomp_generated_naming": "true",
-            "AIC_CLLI": "get_input:2017488_adiodvpe0_AIC_CLLI",
+            "AIC_CLLI": "get_input:2017488_pasqualevpe0_AIC_CLLI",
             "vnf_name": "mtnj309me6vre",
             "vmxvpfe_sriov41_0_port_unknownunicastallow": "true",
             "vmxvre_volume_type_1": "HITACHI",
@@ -396,14 +475,14 @@ describe('Model Tree Generator service', () => {
             "vmxvre_volume_type_0": "HITACHI",
             "vmxvpfe_volume_type_0": "HITACHI",
             "vmxvpfe_sriov43_0_port_broadcastallow": "true",
-            "bandwidth_units": "get_input:2017488_adiodvpe0_bandwidth_units",
+            "bandwidth_units": "get_input:2017488_pasqualevpe0_bandwidth_units",
             "vnf_id": "123",
             "vmxvre_oam_prefix": "24",
             "availability_zone_0": "mtpocfo-kvm-az01",
-            "ASN": "get_input:2017488_adiodvpe0_ASN",
+            "ASN": "get_input:2017488_pasqualevpe0_ASN",
             "vmxvre_chassis_i2cid": "161",
             "vmxvpfe_name_0": "vPFEXI",
-            "bandwidth": "get_input:2017488_adiodvpe0_bandwidth",
+            "bandwidth": "get_input:2017488_pasqualevpe0_bandwidth",
             "availability_zone_max_count": "1",
             "vmxvre_volume_size_0": "45.0",
             "vmxvre_volume_size_1": "50.0",
@@ -413,7 +492,7 @@ describe('Model Tree Generator service', () => {
             "vmxvre_ore_present": "0",
             "vmxvre_volume_name_0": "vREXI_FBVolume",
             "vmxvre_type": "0",
-            "vnf_instance_name": "get_input:2017488_adiodvpe0_vnf_instance_name",
+            "vnf_instance_name": "get_input:2017488_pasqualevpe0_vnf_instance_name",
             "vmxvpfe_sriov41_0_port_unknownmulticastallow": "true",
             "oam_net_id": "b95eeb1d-d55d-4827-abb4-8ebb94941429",
             "vmx_int_ctl_len": "24",
@@ -427,23 +506,23 @@ describe('Model Tree Generator service', () => {
             "vmxvpfe_flavor_name": "ns.c20r16d25.v5"
           },
           "type": "VF",
-          "modelCustomizationName": "2017-388_ADIOD-vPE 0",
+          "modelCustomizationName": "2017-388_PASQUALE-vPE 0",
           "vfModules": {},
           "volumeGroups": {},
           "vfcInstanceGroups": {}
         },
-        "2017-488_ADIOD-vPE 0": {
+        "2017-488_PASQUALE-vPE 0": {
           "uuid": "69e09f68-8b63-4cc9-b9ff-860960b5db09",
           "invariantUuid": "72e465fe-71b1-4e7b-b5ed-9496118ff7a8",
-          "description": "Name ADIOD vPE Description The provider edge function for the ADIOD service supported by the Junipers VMX product Category Router Vendor Juniper Vendor Release Code 17.2 Owners Mary Fragale. Updated 9-25 to use v8.0 of the Juniper Valid 2 VLM",
-          "name": "2017-488_ADIOD-vPE",
+          "description": "Name PASQUALE vPE Description The provider edge function for the PASQUALE service supported by the Junipers VMX product Category Router Vendor Juniper Vendor Release Code 17.2 Owners Mary Fragale. Updated 9-25 to use v8.0 of the Juniper Valid 2 VLM",
+          "name": "2017-488_PASQUALE-vPE",
           "version": "5.0",
           "customizationUuid": "1da7b585-5e61-4993-b95e-8e6606c81e45",
           "inputs": {},
           "commands": {},
           "properties": {
             "vmxvre_retype": "RE-VMX",
-            "vnf_config_template_version": "get_input:2017488_adiodvpe0_vnf_config_template_version",
+            "vnf_config_template_version": "get_input:2017488_pasqualevpe0_vnf_config_template_version",
             "sriov44_net_id": "48d399b3-11ee-48a8-94d2-f0ea94d6be8d",
             "int_ctl_net_id": "2f323477-6936-4d01-ac53-d849430281d9",
             "vmxvpfe_sriov41_0_port_mac": "00:11:22:EF:AC:DF",
@@ -489,7 +568,7 @@ describe('Model Tree Generator service', () => {
             "vmxvpfe_sriov43_0_port_unknownmulticastallow": "true",
             "vmxvre_int_ctl_ip_0": "10.0.0.10",
             "ecomp_generated_naming": "true",
-            "AIC_CLLI": "get_input:2017488_adiodvpe0_AIC_CLLI",
+            "AIC_CLLI": "get_input:2017488_pasqualevpe0_AIC_CLLI",
             "vnf_name": "mtnj309me6vre",
             "vmxvpfe_sriov41_0_port_unknownunicastallow": "true",
             "vmxvre_volume_type_1": "HITACHI",
@@ -497,14 +576,14 @@ describe('Model Tree Generator service', () => {
             "vmxvre_volume_type_0": "HITACHI",
             "vmxvpfe_volume_type_0": "HITACHI",
             "vmxvpfe_sriov43_0_port_broadcastallow": "true",
-            "bandwidth_units": "get_input:2017488_adiodvpe0_bandwidth_units",
+            "bandwidth_units": "get_input:2017488_pasqualevpe0_bandwidth_units",
             "vnf_id": "123",
             "vmxvre_oam_prefix": "24",
             "availability_zone_0": "mtpocfo-kvm-az01",
-            "ASN": "get_input:2017488_adiodvpe0_ASN",
+            "ASN": "get_input:2017488_pasqualevpe0_ASN",
             "vmxvre_chassis_i2cid": "161",
             "vmxvpfe_name_0": "vPFEXI",
-            "bandwidth": "get_input:2017488_adiodvpe0_bandwidth",
+            "bandwidth": "get_input:2017488_pasqualevpe0_bandwidth",
             "availability_zone_max_count": "1",
             "vmxvre_volume_size_0": "45.0",
             "vmxvre_volume_size_1": "50.0",
@@ -514,7 +593,7 @@ describe('Model Tree Generator service', () => {
             "vmxvre_ore_present": "0",
             "vmxvre_volume_name_0": "vREXI_FBVolume",
             "vmxvre_type": "0",
-            "vnf_instance_name": "get_input:2017488_adiodvpe0_vnf_instance_name",
+            "vnf_instance_name": "get_input:2017488_pasqualevpe0_vnf_instance_name",
             "vmxvpfe_sriov41_0_port_unknownmulticastallow": "true",
             "oam_net_id": "b95eeb1d-d55d-4827-abb4-8ebb94941429",
             "vmx_int_ctl_len": "24",
@@ -528,57 +607,57 @@ describe('Model Tree Generator service', () => {
             "vmxvpfe_flavor_name": "ns.c20r16d25.v5"
           },
           "type": "VF",
-          "modelCustomizationName": "2017-488_ADIOD-vPE 0",
+          "modelCustomizationName": "2017-488_PASQUALE-vPE 0",
           "vfModules": {
-            "2017488_adiodvpe0..2017488AdiodVpe..ADIOD_vRE_BV..module-1": {
+            "2017488_pasqualevpe0..2017488PasqualeVpe..PASQUALE_vRE_BV..module-1": {
               "uuid": "25284168-24bb-4698-8cb4-3f509146eca5",
               "invariantUuid": "7253ff5c-97f0-4b8b-937c-77aeb4d79aa1",
               "customizationUuid": "f7e7c365-60cf-49a9-9ebf-a1aa11b9d401",
               "description": null,
-              "name": "2017488AdiodVpe..ADIOD_vRE_BV..module-1",
+              "name": "2017488PasqualeVpe..PASQUALE_vRE_BV..module-1",
               "version": "6",
-              "modelCustomizationName": "2017488AdiodVpe..ADIOD_vRE_BV..module-1",
+              "modelCustomizationName": "2017488PasqualeVpe..PASQUALE_vRE_BV..module-1",
               "properties": {
                 "minCountInstances": 0,
                 "maxCountInstances": null,
                 "initialCount": 0,
-                "vfModuleLabel": "ADIOD_vRE_BV",
+                "vfModuleLabel": "PASQUALE_vRE_BV",
                 "baseModule": false
               },
               "inputs": {},
               "volumeGroupAllowed": true
             },
-            "2017488_adiodvpe0..2017488AdiodVpe..ADIOD_base_vPE_BV..module-0": {
+            "2017488_pasqualevpe0..2017488PasqualeVpe..PASQUALE_base_vPE_BV..module-0": {
               "uuid": "f8360508-3f17-4414-a2ed-6bc71161e8db",
               "invariantUuid": "b34833bb-6aa9-4ad6-a831-70b06367a091",
               "customizationUuid": "a55961b2-2065-4ab0-a5b7-2fcee1c227e3",
               "description": null,
-              "name": "2017488AdiodVpe..ADIOD_base_vPE_BV..module-0",
+              "name": "2017488PasqualeVpe..PASQUALE_base_vPE_BV..module-0",
               "version": "5",
-              "modelCustomizationName": "2017488AdiodVpe..ADIOD_base_vPE_BV..module-0",
+              "modelCustomizationName": "2017488PasqualeVpe..PASQUALE_base_vPE_BV..module-0",
               "properties": {
                 "minCountInstances": 1,
                 "maxCountInstances": 1,
                 "initialCount": 1,
-                "vfModuleLabel": "ADIOD_base_vPE_BV",
+                "vfModuleLabel": "PASQUALE_base_vPE_BV",
                 "baseModule": true
               },
               "inputs": {},
               "volumeGroupAllowed": false
             },
-            "2017488_adiodvpe0..2017488AdiodVpe..ADIOD_vPFE_BV..module-2": {
+            "2017488_pasqualevpe0..2017488PasqualeVpe..PASQUALE_vPFE_BV..module-2": {
               "uuid": "0a0dd9d4-31d3-4c3a-ae89-a02f383e6a9a",
               "invariantUuid": "eff8cc59-53a1-4101-aed7-8cf24ecf8339",
               "customizationUuid": "3cd946bb-50e0-40d8-96d3-c9023520b557",
               "description": null,
-              "name": "2017488AdiodVpe..ADIOD_vPFE_BV..module-2",
+              "name": "2017488PasqualeVpe..PASQUALE_vPFE_BV..module-2",
               "version": "6",
-              "modelCustomizationName": "2017488AdiodVpe..ADIOD_vPFE_BV..module-2",
+              "modelCustomizationName": "2017488PasqualeVpe..PASQUALE_vPFE_BV..module-2",
               "properties": {
                 "minCountInstances": 0,
                 "maxCountInstances": null,
                 "initialCount": 0,
-                "vfModuleLabel": "ADIOD_vPFE_BV",
+                "vfModuleLabel": "PASQUALE_vPFE_BV",
                 "baseModule": false
               },
               "inputs": {},
@@ -586,36 +665,36 @@ describe('Model Tree Generator service', () => {
             }
           },
           "volumeGroups": {
-            "2017488_adiodvpe0..2017488AdiodVpe..ADIOD_vRE_BV..module-1": {
+            "2017488_pasqualevpe0..2017488PasqualeVpe..PASQUALE_vRE_BV..module-1": {
               "uuid": "25284168-24bb-4698-8cb4-3f509146eca5",
               "invariantUuid": "7253ff5c-97f0-4b8b-937c-77aeb4d79aa1",
               "customizationUuid": "f7e7c365-60cf-49a9-9ebf-a1aa11b9d401",
               "description": null,
-              "name": "2017488AdiodVpe..ADIOD_vRE_BV..module-1",
+              "name": "2017488PasqualeVpe..PASQUALE_vRE_BV..module-1",
               "version": "6",
-              "modelCustomizationName": "2017488AdiodVpe..ADIOD_vRE_BV..module-1",
+              "modelCustomizationName": "2017488PasqualeVpe..PASQUALE_vRE_BV..module-1",
               "properties": {
                 "minCountInstances": 0,
                 "maxCountInstances": null,
                 "initialCount": 0,
-                "vfModuleLabel": "ADIOD_vRE_BV",
+                "vfModuleLabel": "PASQUALE_vRE_BV",
                 "baseModule": false
               },
               "inputs": {}
             },
-            "2017488_adiodvpe0..2017488AdiodVpe..ADIOD_vPFE_BV..module-2": {
+            "2017488_pasqualevpe0..2017488PasqualeVpe..PASQUALE_vPFE_BV..module-2": {
               "uuid": "0a0dd9d4-31d3-4c3a-ae89-a02f383e6a9a",
               "invariantUuid": "eff8cc59-53a1-4101-aed7-8cf24ecf8339",
               "customizationUuid": "3cd946bb-50e0-40d8-96d3-c9023520b557",
               "description": null,
-              "name": "2017488AdiodVpe..ADIOD_vPFE_BV..module-2",
+              "name": "2017488PasqualeVpe..PASQUALE_vPFE_BV..module-2",
               "version": "6",
-              "modelCustomizationName": "2017488AdiodVpe..ADIOD_vPFE_BV..module-2",
+              "modelCustomizationName": "2017488PasqualeVpe..PASQUALE_vPFE_BV..module-2",
               "properties": {
                 "minCountInstances": 0,
                 "maxCountInstances": null,
                 "initialCount": 0,
-                "vfModuleLabel": "ADIOD_vPFE_BV",
+                "vfModuleLabel": "PASQUALE_vPFE_BV",
                 "baseModule": false
               },
               "inputs": {}
@@ -625,60 +704,60 @@ describe('Model Tree Generator service', () => {
         }
       },
       "networks": {},
-      "collectionResource": {},
+      "collectionResources": {},
       "configurations": {},
       "fabricConfigurations": {},
       "serviceProxies": {},
       "vfModules": {
-        "2017488_adiodvpe0..2017488AdiodVpe..ADIOD_vRE_BV..module-1": {
+        "2017488_pasqualevpe0..2017488PasqualeVpe..PASQUALE_vRE_BV..module-1": {
           "uuid": "25284168-24bb-4698-8cb4-3f509146eca5",
           "invariantUuid": "7253ff5c-97f0-4b8b-937c-77aeb4d79aa1",
           "customizationUuid": "f7e7c365-60cf-49a9-9ebf-a1aa11b9d401",
           "description": null,
-          "name": "2017488AdiodVpe..ADIOD_vRE_BV..module-1",
+          "name": "2017488PasqualeVpe..PASQUALE_vRE_BV..module-1",
           "version": "6",
-          "modelCustomizationName": "2017488AdiodVpe..ADIOD_vRE_BV..module-1",
+          "modelCustomizationName": "2017488PasqualeVpe..PASQUALE_vRE_BV..module-1",
           "properties": {
             "minCountInstances": 0,
             "maxCountInstances": null,
             "initialCount": 0,
-            "vfModuleLabel": "ADIOD_vRE_BV",
+            "vfModuleLabel": "PASQUALE_vRE_BV",
             "baseModule": false
           },
           "inputs": {},
           "volumeGroupAllowed": true
         },
-        "2017488_adiodvpe0..2017488AdiodVpe..ADIOD_base_vPE_BV..module-0": {
+        "2017488_pasqualevpe0..2017488PasqualeVpe..PASQUALE_base_vPE_BV..module-0": {
           "uuid": "f8360508-3f17-4414-a2ed-6bc71161e8db",
           "invariantUuid": "b34833bb-6aa9-4ad6-a831-70b06367a091",
           "customizationUuid": "a55961b2-2065-4ab0-a5b7-2fcee1c227e3",
           "description": null,
-          "name": "2017488AdiodVpe..ADIOD_base_vPE_BV..module-0",
+          "name": "2017488PasqualeVpe..PASQUALE_base_vPE_BV..module-0",
           "version": "5",
-          "modelCustomizationName": "2017488AdiodVpe..ADIOD_base_vPE_BV..module-0",
+          "modelCustomizationName": "2017488PasqualeVpe..PASQUALE_base_vPE_BV..module-0",
           "properties": {
             "minCountInstances": 1,
             "maxCountInstances": 1,
             "initialCount": 1,
-            "vfModuleLabel": "ADIOD_base_vPE_BV",
+            "vfModuleLabel": "PASQUALE_base_vPE_BV",
             "baseModule": true
           },
           "inputs": {},
           "volumeGroupAllowed": false
         },
-        "2017488_adiodvpe0..2017488AdiodVpe..ADIOD_vPFE_BV..module-2": {
+        "2017488_pasqualevpe0..2017488PasqualeVpe..PASQUALE_vPFE_BV..module-2": {
           "uuid": "0a0dd9d4-31d3-4c3a-ae89-a02f383e6a9a",
           "invariantUuid": "eff8cc59-53a1-4101-aed7-8cf24ecf8339",
           "customizationUuid": "3cd946bb-50e0-40d8-96d3-c9023520b557",
           "description": null,
-          "name": "2017488AdiodVpe..ADIOD_vPFE_BV..module-2",
+          "name": "2017488PasqualeVpe..PASQUALE_vPFE_BV..module-2",
           "version": "6",
-          "modelCustomizationName": "2017488AdiodVpe..ADIOD_vPFE_BV..module-2",
+          "modelCustomizationName": "2017488PasqualeVpe..PASQUALE_vPFE_BV..module-2",
           "properties": {
             "minCountInstances": 0,
             "maxCountInstances": null,
             "initialCount": 0,
-            "vfModuleLabel": "ADIOD_vPFE_BV",
+            "vfModuleLabel": "PASQUALE_vPFE_BV",
             "baseModule": false
           },
           "inputs": {},
@@ -686,36 +765,36 @@ describe('Model Tree Generator service', () => {
         }
       },
       "volumeGroups": {
-        "2017488_adiodvpe0..2017488AdiodVpe..ADIOD_vRE_BV..module-1": {
+        "2017488_pasqualevpe0..2017488PasqualeVpe..PASQUALE_vRE_BV..module-1": {
           "uuid": "25284168-24bb-4698-8cb4-3f509146eca5",
           "invariantUuid": "7253ff5c-97f0-4b8b-937c-77aeb4d79aa1",
           "customizationUuid": "f7e7c365-60cf-49a9-9ebf-a1aa11b9d401",
           "description": null,
-          "name": "2017488AdiodVpe..ADIOD_vRE_BV..module-1",
+          "name": "2017488PasqualeVpe..PASQUALE_vRE_BV..module-1",
           "version": "6",
-          "modelCustomizationName": "2017488AdiodVpe..ADIOD_vRE_BV..module-1",
+          "modelCustomizationName": "2017488PasqualeVpe..PASQUALE_vRE_BV..module-1",
           "properties": {
             "minCountInstances": 0,
             "maxCountInstances": null,
             "initialCount": 0,
-            "vfModuleLabel": "ADIOD_vRE_BV",
+            "vfModuleLabel": "PASQUALE_vRE_BV",
             "baseModule": false
           },
           "inputs": {}
         },
-        "2017488_adiodvpe0..2017488AdiodVpe..ADIOD_vPFE_BV..module-2": {
+        "2017488_pasqualevpe0..2017488PasqualeVpe..PASQUALE_vPFE_BV..module-2": {
           "uuid": "0a0dd9d4-31d3-4c3a-ae89-a02f383e6a9a",
           "invariantUuid": "eff8cc59-53a1-4101-aed7-8cf24ecf8339",
           "customizationUuid": "3cd946bb-50e0-40d8-96d3-c9023520b557",
           "description": null,
-          "name": "2017488AdiodVpe..ADIOD_vPFE_BV..module-2",
+          "name": "2017488PasqualeVpe..PASQUALE_vPFE_BV..module-2",
           "version": "6",
-          "modelCustomizationName": "2017488AdiodVpe..ADIOD_vPFE_BV..module-2",
+          "modelCustomizationName": "2017488PasqualeVpe..PASQUALE_vPFE_BV..module-2",
           "properties": {
             "minCountInstances": 0,
             "maxCountInstances": null,
             "initialCount": 0,
-            "vfModuleLabel": "ADIOD_vPFE_BV",
+            "vfModuleLabel": "PASQUALE_vPFE_BV",
             "baseModule": false
           },
           "inputs": {}
index e941faa..c101f44 100644 (file)
@@ -2,9 +2,11 @@ import {Injectable} from "@angular/core";
 import {ILevelNodeInfo} from "../models/basic.model.info";
 import {ObjectToTreeService} from "../objectToTree.service";
 import * as _ from "lodash";
+import {IModelTreeNodeModel} from "../../../objectsToTree/objectToModelTree/modelTreeNode.model";
 
 @Injectable()
 export class ObjectToModelTreeService {
+  numberOfPlusButton: number;
   constructor(private _objectToTreeService: ObjectToTreeService) {
   }
 
@@ -21,10 +23,20 @@ export class ObjectToModelTreeService {
         nodes.push(_this.addFirstLevelModel(serviceModel.service.uuid, key, item, item.type, serviceModel, option));
       });
     }
+
+    this.calculateNumberOfNodesWithPlusIcon(serviceModel, nodes);
+
     console.log('nodes', nodes);
     return nodes;
   }
 
+  calculateNumberOfNodesWithPlusIcon(serviceModel, nodes) : void {
+    this.numberOfPlusButton = nodes.reduce((sum, node)=>{
+      let showNodeIconResult = node.showNodeIcons({data : node}, serviceModel.service.uuid);
+      return (!_.isNil(showNodeIconResult) && showNodeIconResult.addIcon && !showNodeIconResult.vIcon) ?  sum + 1 : sum;
+    }, 0);
+  }
+
 
   /***********************************************************
    * return node with all his child's
@@ -50,13 +62,14 @@ export class ObjectToModelTreeService {
    * @param parentNode - parent node.
    ************************************************************/
   addNextLevelNodes(serviceId: string, currentModel, parentModel, levelNodeInfo: ILevelNodeInfo, parentNode): any[] {
-    if (!_.isNil(levelNodeInfo.childName)) {
-      if (!_.isNil(currentModel[levelNodeInfo.childName])) {
-        let nextLevelNodeInfo = levelNodeInfo.getNextLevelObject.apply(this);
-        parentNode.children = Object.keys(currentModel[levelNodeInfo.childName]).map((key) =>
-          ObjectToModelTreeService.convertItemToTreeNode(serviceId, key, currentModel[levelNodeInfo.childName][key], levelNodeInfo.childName, currentModel, nextLevelNodeInfo));
-
-      }
+    if (!_.isNil(levelNodeInfo.childNames) && levelNodeInfo.childNames.length > 0) {
+      levelNodeInfo.childNames.forEach(function (childName) {
+        if (!_.isNil(currentModel[childName])) {
+          let nextLevelNodeInfo = levelNodeInfo.getNextLevelObject.apply(this, [childName]);
+          parentNode.children = Object.keys(currentModel[childName]).map((key) =>
+            ObjectToModelTreeService.convertItemToTreeNode(serviceId, key, currentModel[childName][key], childName, currentModel, nextLevelNodeInfo));
+        }
+      })
     }
     return parentNode.children;
   }
@@ -72,7 +85,7 @@ export class ObjectToModelTreeService {
    * @param levelNodeInfo - current levelNodeInfo object
    ************************************************************/
   static convertItemToTreeNode(serviceId: string, name: string, currentModel: any, valueType: string, parentModel: string, levelNodeInfo: ILevelNodeInfo) {
-    let node = {
+    let node : IModelTreeNodeModel = {
       id: currentModel.customizationUuid || currentModel.uuid,
       modelCustomizationId : currentModel.customizationUuid,
       modelVersionId:  currentModel.uuid,
@@ -88,11 +101,20 @@ export class ObjectToModelTreeService {
       isEcompGeneratedNaming: levelNodeInfo.isEcompGeneratedNaming(currentModel, parentModel)
     };
 
-    node['onAddClick'] = (node, serviceId) => levelNodeInfo.onClickAdd(node, serviceId);
-    node['getNodeCount'] = (node, serviceId) => levelNodeInfo.getNodeCount(node, serviceId);
-    node['getMenuAction'] = (node, serviceId) => levelNodeInfo.getMenuAction(node, serviceId);
-    node['showNodeIcons'] = (node, serviceId) => levelNodeInfo.showNodeIcons(node, serviceId);
-    node['typeName'] = levelNodeInfo['typeName'];
+    node = this.addExtraFunctionality(node, serviceId, name, currentModel, valueType, parentModel, levelNodeInfo);
+    return node;
+  }
+
+
+  static addExtraFunctionality(node, serviceId: string, name: string, currentModel: any, valueType: string, parentModel: string, levelNodeInfo: ILevelNodeInfo){
+    node.onAddClick = (node, serviceId) => levelNodeInfo.onClickAdd(node, serviceId);
+    node.getNodeCount = (node, serviceId) => levelNodeInfo.getNodeCount(node, serviceId);
+    node.getMenuAction = (node, serviceId) => levelNodeInfo.getMenuAction(node, serviceId);
+    node.showNodeIcons = (node, serviceId) => levelNodeInfo.showNodeIcons(node, serviceId);
+    node.typeName = levelNodeInfo.typeName;
+    node.getModel = levelNodeInfo.getModel.bind(levelNodeInfo);
+    node.getInfo = !_.isNil(levelNodeInfo.getInfo) ? levelNodeInfo.getInfo.bind(levelNodeInfo) : ()=>{};
+    node.componentInfoType = levelNodeInfo.componentInfoType;
     return node;
   }
 }
index 3389645..0072196 100644 (file)
@@ -18,6 +18,12 @@ import {DuplicateService} from "../duplicate/duplicate.service";
 import {SdcUiServices} from "onap-ui-angular";
 import {IframeService} from "../../../shared/utils/iframe.service";
 import {ComponentInfoService} from "../component-info/component-info.service";
+import {PnfModelInfo} from "./models/pnf/pnf.model.info";
+import {CollectionResourceModelInfo} from "./models/collectionResource/collectionResource.model.info";
+import {AaiService} from "../../../shared/services/aaiService/aai.service";
+import {VrfModelInfo} from "./models/vrf/vrf.model.info";
+import {NetworkStepService} from "./models/vrf/vrfModal/networkStep/network.step.service";
+import {VpnStepService} from "./models/vrf/vrfModal/vpnStep/vpn.step.service";
 
 @Injectable()
 export class ObjectToTreeService {
@@ -33,6 +39,9 @@ export class ObjectToTreeService {
               private _modalService: SdcUiServices.ModalService,
               private _iframeService : IframeService,
               private _componentInfoService : ComponentInfoService,
+              private _networkStepService : NetworkStepService,
+              private _vpnStepService : VpnStepService,
+              private _aaiService : AaiService,
               private _store : NgRedux<AppState>) {
   }
 
@@ -45,7 +54,10 @@ export class ObjectToTreeService {
   getFirstLevelOptions(): ILevelNodeInfo[] {
     return [new VnfModelInfo(this._dynamicInputsService, this._sharedTreeService, this._defaultDataGeneratorService, this._dialogService, this._vnfPopupService, this._vfModulePopupService, this._duplicateService, this._modalService, this._iframeService, this._componentInfoService, this._store)
       , new NetworkModelInfo(this._dynamicInputsService, this._sharedTreeService, this._dialogService, this._networkPopupService, this._duplicateService, this._modalService, this._iframeService,  this._store),
+      new PnfModelInfo(),
+      new VrfModelInfo(this._store, this._sharedTreeService, this._dialogService, this._iframeService, this._networkStepService, this._vpnStepService),
+      new CollectionResourceModelInfo(this._store, this._sharedTreeService),
       new ConfigurationModelInfo(this._dynamicInputsService, this._sharedTreeService),
-      new VnfGroupingModelInfo(this._dynamicInputsService, this._sharedTreeService, this._dialogService, this._vnfGroupPopupService, this._iframeService, this._store)];
+      new VnfGroupingModelInfo(this._dynamicInputsService, this._sharedTreeService, this._dialogService, this._vnfGroupPopupService, this._iframeService, this._aaiService, this._store)];
   };
 }
index 852c5d4..cad23ff 100644 (file)
@@ -36,6 +36,10 @@ import {ServiceInstanceActions} from "../../../shared/models/serviceInstanceActi
 import each from "jest-each";
 import {DrawingBoardModes} from "../drawing-board.modes";
 import {ComponentInfoService} from "../component-info/component-info.service";
+import {ComponentInfoModel, ComponentInfoType} from "../component-info/component-info-model";
+import {ModelInformationItem} from "../../../shared/components/model-information/model-information.component";
+import {VpnStepService} from "./models/vrf/vrfModal/vpnStep/vpn.step.service";
+import {NetworkStepService} from "./models/vrf/vrfModal/networkStep/network.step.service";
 
 class MockAppStore<T> {
   getState() {
@@ -90,6 +94,8 @@ describe('Shared Tree Service', () => {
         ErrorMsgService,
         ObjectToInstanceTreeService,
         ComponentInfoService,
+        NetworkStepService,
+        VpnStepService,
         {provide: NgRedux, useClass: MockAppStore}
       ]
     });
@@ -122,7 +128,7 @@ describe('Shared Tree Service', () => {
   test('openAuditInfoModal should open modal for failed instance', () => {
     jest.spyOn(AuditInfoModalComponent.openInstanceAuditInfoModal, 'next');
 
-    let modelInfoServiceMock: ILevelNodeInfo = new VnfModelInfo(null, null, null, null, null, null, null, null, null, null);
+    let modelInfoServiceMock: ILevelNodeInfo = new VnfModelInfo(null, null, null, null, null, null, null, null, null, null,null);
     const modelMock = {"a": "a"};
     const instanceMock = {"instance": "instance", "trackById": "123456789"};
     const instanceTypeMock = "instanceTypeMock";
@@ -139,9 +145,7 @@ describe('Shared Tree Service', () => {
       {
         "instance": instanceMock,
         "instanceId": "serviceModelId",
-        "isInstanceFailed": node.data.isFailed,
         "model": modelMock,
-        "trackById": instanceMock.trackById,
         "type": instanceTypeMock
       });
   });
@@ -161,6 +165,25 @@ describe('Shared Tree Service', () => {
     expect(MessageBoxService.openModal.next).not.toHaveBeenCalled();
   });
 
+  test ('addGeneralInfoItems should return correct info - ordered',()=>{
+    let specificNetworkInfo = [
+      ModelInformationItem.createInstance('Network role', "network role 1, network role 2")
+    ];
+    const actualInfoModel: ComponentInfoModel = service.addGeneralInfoItems(specificNetworkInfo,ComponentInfoType.NETWORK, getNetworkModel(),getNetworkInstance());
+
+    let expectedGeneralInfo = [
+      ModelInformationItem.createInstance('Model version', '37.0'),
+      ModelInformationItem.createInstance('Model customization ID', '94fdd893-4a36-4d70-b16a-ec29c54c184f'),
+      ModelInformationItem.createInstance('Instance ID', 'NETWORK4_INSTANCE_ID'),
+      ModelInformationItem.createInstance('Instance type', 'CONTRAIL30_HIMELGUARD'),
+      ModelInformationItem.createInstance('In maintenance', false),
+      ModelInformationItem.createInstance('Network role', 'network role 1, network role 2')
+    ];
+    expect(actualInfoModel.modelInfoItems).toEqual(expectedGeneralInfo);
+  });
+
+
+
   test('statusProperties should be prop on node according to node properties', () => {
     let node = service.addingStatusProperty({orchStatus: 'completed', provStatus: 'inProgress', inMaint: false});
     expect(node.statusProperties).toBeDefined();
@@ -189,7 +212,7 @@ describe('Shared Tree Service', () => {
     ['None action EDIT mode',DrawingBoardModes.EDIT,  ServiceInstanceActions.None, false],
     ['None action RETRY_EDIT mode', DrawingBoardModes.RETRY_EDIT, ServiceInstanceActions.None, false]];
   each(enableRemoveAndEditItemsDataProvider).test('shouldShowEditAndDelete if child exist with %s', (description, mode, action, enabled) => {
-    jest.spyOn(store, 'getState').mockReturnValue({
+    jest.spyOn(store, 'getState').mockReturnValue(<any>{
         global: {
           drawingBoardStatus: mode
         }
@@ -206,60 +229,60 @@ describe('Shared Tree Service', () => {
 function generateService() {
   return {
     "vnfs": {
-      "2017-488_ADIOD-vPE 0": {
+      "2017-488_PASQUALE-vPE 0": {
         "inMaint": false,
         "rollbackOnFailure": "true",
-        "originalName": "2017-488_ADIOD-vPE 0",
+        "originalName": "2017-488_PASQUALE-vPE 0",
         "isMissingData": false,
         "trackById": "stigekyxrqi",
         "vfModules": {
-          "2017488_adiodvpe0..2017488AdiodVpe..ADIOD_base_vPE_BV..module-0": {
-            "2017488_adiodvpe0..2017488AdiodVpe..ADIOD_base_vPE_BV..module-0gytfi": {
+          "2017488_pasqualevpe0..2017488PasqualeVpe..PASQUALE_base_vPE_BV..module-0": {
+            "2017488_pasqualevpe0..2017488PasqualeVpe..PASQUALE_base_vPE_BV..module-0gytfi": {
               "isMissingData": false,
               "sdncPreReload": null,
               "modelInfo": {
                 "modelType": "VFmodule",
                 "modelInvariantId": "b34833bb-6aa9-4ad6-a831-70b06367a091",
                 "modelVersionId": "f8360508-3f17-4414-a2ed-6bc71161e8db",
-                "modelName": "2017488AdiodVpe..ADIOD_base_vPE_BV..module-0",
+                "modelName": "2017488PasqualeVpe..PASQUALE_base_vPE_BV..module-0",
                 "modelVersion": "5",
                 "modelCustomizationId": "a55961b2-2065-4ab0-a5b7-2fcee1c227e3",
-                "modelCustomizationName": "2017488AdiodVpe..ADIOD_base_vPE_BV..module-0"
+                "modelCustomizationName": "2017488PasqualeVpe..PASQUALE_base_vPE_BV..module-0"
               },
               "instanceParams": [{}],
               "trackById": "3oj23o7nupo"
             }
           }
         },
-        "vnfStoreKey": "2017-488_ADIOD-vPE 0",
+        "vnfStoreKey": "2017-488_PASQUALE-vPE 0",
         "uuid": "69e09f68-8b63-4cc9-b9ff-860960b5db09",
         "productFamilyId": "d8a6ed93-251c-47ca-adc9-86671fd19f4c",
-        "lcpCloudRegionId": "JANET25",
+        "lcpCloudRegionId": "AAIAIC25",
         "tenantId": "092eb9e8e4b7412e8787dd091bc58e86",
         "lineOfBusiness": "ONAP",
         "platformName": "xxx1",
         "modelInfo": {
           "modelInvariantId": "72e465fe-71b1-4e7b-b5ed-9496118ff7a8",
           "modelVersionId": "69e09f68-8b63-4cc9-b9ff-860960b5db09",
-          "modelName": "2017-488_ADIOD-vPE",
+          "modelName": "2017-488_PASQUALE-vPE",
           "modelVersion": "5.0",
-          "modelCustomizationName": "2017-488_ADIOD-vPE 0",
+          "modelCustomizationName": "2017-488_PASQUALE-vPE 0",
           "modelCustomizationId": "1da7b585-5e61-4993-b95e-8e6606c81e45",
           "uuid": "69e09f68-8b63-4cc9-b9ff-860960b5db09"
         },
         "legacyRegion": "11111111",
         "instanceParams": [{}]
       },
-      "2017-388_ADIOD-vPE 0": {
+      "2017-388_PASQUALE-vPE 0": {
         "inMaint": false,
         "rollbackOnFailure": "true",
-        "originalName": "2017-388_ADIOD-vPE 0",
+        "originalName": "2017-388_PASQUALE-vPE 0",
         "isMissingData": false,
         "trackById": "nib719t5vca",
         "vfModules": {},
-        "vnfStoreKey": "2017-388_ADIOD-vPE 0",
+        "vnfStoreKey": "2017-388_PASQUALE-vPE 0",
         "productFamilyId": "d8a6ed93-251c-47ca-adc9-86671fd19f4c",
-        "lcpCloudRegionId": "JANET25",
+        "lcpCloudRegionId": "AAIAIC25",
         "legacyRegion": "11111",
         "tenantId": "092eb9e8e4b7412e8787dd091bc58e86",
         "platformName": "platform",
@@ -268,24 +291,24 @@ function generateService() {
         "modelInfo": {
           "modelInvariantId": "72e465fe-71b1-4e7b-b5ed-9496118ff7a8",
           "modelVersionId": "afacccf6-397d-45d6-b5ae-94c39734b168",
-          "modelName": "2017-388_ADIOD-vPE",
+          "modelName": "2017-388_PASQUALE-vPE",
           "modelVersion": "4.0",
           "modelCustomizationId": "b3c76f73-eeb5-4fb6-9d31-72a889f1811c",
-          "modelCustomizationName": "2017-388_ADIOD-vPE 0",
+          "modelCustomizationName": "2017-388_PASQUALE-vPE 0",
           "uuid": "afacccf6-397d-45d6-b5ae-94c39734b168"
         },
         "uuid": "afacccf6-397d-45d6-b5ae-94c39734b168"
       },
-      "2017-388_ADIOD-vPE 1": {
+      "2017-388_PASQUALE-vPE 1": {
         "inMaint": false,
         "rollbackOnFailure": "true",
-        "originalName": "2017-388_ADIOD-vPE 1",
+        "originalName": "2017-388_PASQUALE-vPE 1",
         "isMissingData": false,
         "trackById": "cv7l1ak8vpe",
         "vfModules": {},
-        "vnfStoreKey": "2017-388_ADIOD-vPE 1",
+        "vnfStoreKey": "2017-388_PASQUALE-vPE 1",
         "productFamilyId": "d8a6ed93-251c-47ca-adc9-86671fd19f4c",
-        "lcpCloudRegionId": "JANET25",
+        "lcpCloudRegionId": "AAIAIC25",
         "legacyRegion": "123",
         "tenantId": "092eb9e8e4b7412e8787dd091bc58e86",
         "platformName": "platform",
@@ -294,10 +317,10 @@ function generateService() {
         "modelInfo": {
           "modelInvariantId": "00beb8f9-6d39-452f-816d-c709b9cbb87d",
           "modelVersionId": "0903e1c0-8e03-4936-b5c2-260653b96413",
-          "modelName": "2017-388_ADIOD-vPE",
+          "modelName": "2017-388_PASQUALE-vPE",
           "modelVersion": "1.0",
           "modelCustomizationId": "280dec31-f16d-488b-9668-4aae55d6648a",
-          "modelCustomizationName": "2017-388_ADIOD-vPE 1",
+          "modelCustomizationName": "2017-388_PASQUALE-vPE 1",
           "uuid": "0903e1c0-8e03-4936-b5c2-260653b96413"
         },
         "uuid": "0903e1c0-8e03-4936-b5c2-260653b96413"
@@ -325,7 +348,7 @@ function generateService() {
         "trackById": "s6okajvv2n8",
         "networkStoreKey": "ExtVL 0",
         "productFamilyId": "d8a6ed93-251c-47ca-adc9-86671fd19f4c",
-        "lcpCloudRegionId": "JANET25",
+        "lcpCloudRegionId": "AAIAIC25",
         "legacyRegion": "12355555",
         "tenantId": "092eb9e8e4b7412e8787dd091bc58e86",
         "platformName": "platform",
@@ -369,7 +392,7 @@ function generateService() {
     "subscriptionServiceType": "TYLER SILVIA",
     "owningEntityId": "d61e6f2d-12fa-4cc2-91df-7c244011d6fc",
     "productFamilyId": "d8a6ed93-251c-47ca-adc9-86671fd19f4c",
-    "lcpCloudRegionId": "JANET25",
+    "lcpCloudRegionId": "AAIAIC25",
     "tenantId": "092eb9e8e4b7412e8787dd091bc58e86",
     "aicZoneId": "ATL53",
     "pause": null,
@@ -391,7 +414,7 @@ function generateService() {
     "isALaCarte": false,
     "name": "action-data",
     "version": "1.0",
-    "description": "ADIOD vMX vPE based on Juniper 17.2 release. Updated with updated VF for v8.0 of VLM",
+    "description": "PASQUALE vMX vPE based on Juniper 17.2 release. Updated with updated VF for v8.0 of VLM",
     "category": "Network L1-3",
     "uuid": "1a80c596-27e5-4ca9-b5bb-e03a7fd4c0fd",
     "invariantUuid": "cdb90b57-ed78-4d44-a5b4-7f43a02ec632",
@@ -410,15 +433,10 @@ function getStore() {
         "CREATE_INSTANCE_TEST": false,
         "EMPTY_DRAWING_BOARD_TEST": false,
         "FLAG_NETWORK_TO_ASYNC_INSTANTIATION": false,
-        "FLAG_ASYNC_INSTANTIATION": true,
-        "FLAG_ASYNC_JOBS": true,
         "FLAG_ADD_MSO_TESTAPI_FIELD": true,
-        "FLAG_UNASSIGN_SERVICE": true,
         "FLAG_SERVICE_MODEL_CACHE": true,
-        "FLAG_COLLECTION_RESOURCE_SUPPORT": true,
         "FLAG_SHOW_ASSIGNMENTS": true,
         "FLAG_FABRIC_CONFIGURATION_ASSIGNMENTS": true,
-        "FLAG_DUPLICATE_VNF": true,
         "FLAG_DEFAULT_VNF": true,
         "FLAG_SETTING_DEFAULTS_IN_DRAWING_BOARD": true,
         "FLAG_A_LA_CARTE_AUDIT_INFO": true,
@@ -431,7 +449,6 @@ function getStore() {
         "FLAG_SHOW_VERIFY_SERVICE": true,
         "FLAG_ASYNC_ALACARTE_VFMODULE": true,
         "FLAG_ASYNC_ALACARTE_VNF": true,
-        "FLAG_SHIFT_VFMODULE_PARAMS_TO_VNF": true,
         "FLAG_1810_AAI_LOCAL_CACHE": true,
         "FLAG_EXP_USE_DEFAULT_HOST_NAME_VERIFIER": false,
         "FLAG_EXP_ANY_ALACARTE_NEW_INSTANTIATION_UI": false,
@@ -455,25 +472,25 @@ function getStore() {
             "category": "Network L1-3",
             "serviceType": "pnf",
             "serviceRole": "Testing",
-            "description": "ADIOD vMX vPE based on Juniper 17.2 release. Updated with updated VF for v8.0 of VLM",
+            "description": "PASQUALE vMX vPE based on Juniper 17.2 release. Updated with updated VF for v8.0 of VLM",
             "serviceEcompNaming": "false",
             "instantiationType": "Macro",
             "inputs": {},
             "vidNotions": {"instantiationUI": "legacy", "modelCategory": "other", "viewEditUI": "legacy"}
           },
           "vnfs": {
-            "2017-388_ADIOD-vPE 1": {
+            "2017-388_PASQUALE-vPE 1": {
               "uuid": "0903e1c0-8e03-4936-b5c2-260653b96413",
               "invariantUuid": "00beb8f9-6d39-452f-816d-c709b9cbb87d",
-              "description": "Name ADIOD vPE Description The provider edge function for the ADIOD service supported by the Junipers VMX product Category Router Vendor Juniper Vendor Release Code 17.2 Owners Mary Fragale. Updated 9-25 to use v8.0 of the Juniper Valid 2 VLM",
-              "name": "2017-388_ADIOD-vPE",
+              "description": "Name PASQUALE vPE Description The provider edge function for the PASQUALE service supported by the Junipers VMX product Category Router Vendor Juniper Vendor Release Code 17.2 Owners Mary Fragale. Updated 9-25 to use v8.0 of the Juniper Valid 2 VLM",
+              "name": "2017-388_PASQUALE-vPE",
               "version": "1.0",
               "customizationUuid": "280dec31-f16d-488b-9668-4aae55d6648a",
               "inputs": {},
               "commands": {},
               "properties": {
                 "vmxvre_retype": "RE-VMX",
-                "vnf_config_template_version": "get_input:2017488_adiodvpe0_vnf_config_template_version",
+                "vnf_config_template_version": "get_input:2017488_pasqualevpe0_vnf_config_template_version",
                 "sriov44_net_id": "48d399b3-11ee-48a8-94d2-f0ea94d6be8d",
                 "int_ctl_net_id": "2f323477-6936-4d01-ac53-d849430281d9",
                 "vmxvpfe_sriov41_0_port_mac": "00:11:22:EF:AC:DF",
@@ -519,7 +536,7 @@ function getStore() {
                 "vmxvpfe_sriov43_0_port_unknownmulticastallow": "true",
                 "vmxvre_int_ctl_ip_0": "10.0.0.10",
                 "ecomp_generated_naming": "true",
-                "AIC_CLLI": "get_input:2017488_adiodvpe0_AIC_CLLI",
+                "AIC_CLLI": "get_input:2017488_pasqualevpe0_AIC_CLLI",
                 "vnf_name": "mtnj309me6vre",
                 "vmxvpfe_sriov41_0_port_unknownunicastallow": "true",
                 "vmxvre_volume_type_1": "HITACHI",
@@ -527,14 +544,14 @@ function getStore() {
                 "vmxvre_volume_type_0": "HITACHI",
                 "vmxvpfe_volume_type_0": "HITACHI",
                 "vmxvpfe_sriov43_0_port_broadcastallow": "true",
-                "bandwidth_units": "get_input:2017488_adiodvpe0_bandwidth_units",
+                "bandwidth_units": "get_input:2017488_pasqualevpe0_bandwidth_units",
                 "vnf_id": "123",
                 "vmxvre_oam_prefix": "24",
                 "availability_zone_0": "mtpocfo-kvm-az01",
-                "ASN": "get_input:2017488_adiodvpe0_ASN",
+                "ASN": "get_input:2017488_pasqualevpe0_ASN",
                 "vmxvre_chassis_i2cid": "161",
                 "vmxvpfe_name_0": "vPFEXI",
-                "bandwidth": "get_input:2017488_adiodvpe0_bandwidth",
+                "bandwidth": "get_input:2017488_pasqualevpe0_bandwidth",
                 "availability_zone_max_count": "1",
                 "vmxvre_volume_size_0": "45.0",
                 "vmxvre_volume_size_1": "50.0",
@@ -544,7 +561,7 @@ function getStore() {
                 "vmxvre_ore_present": "0",
                 "vmxvre_volume_name_0": "vREXI_FBVolume",
                 "vmxvre_type": "0",
-                "vnf_instance_name": "get_input:2017488_adiodvpe0_vnf_instance_name",
+                "vnf_instance_name": "get_input:2017488_pasqualevpe0_vnf_instance_name",
                 "vmxvpfe_sriov41_0_port_unknownmulticastallow": "true",
                 "oam_net_id": "b95eeb1d-d55d-4827-abb4-8ebb94941429",
                 "vmx_int_ctl_len": "24",
@@ -558,23 +575,23 @@ function getStore() {
                 "vmxvpfe_flavor_name": "ns.c20r16d25.v5"
               },
               "type": "VF",
-              "modelCustomizationName": "2017-388_ADIOD-vPE 1",
+              "modelCustomizationName": "2017-388_PASQUALE-vPE 1",
               "vfModules": {},
               "volumeGroups": {},
               "vfcInstanceGroups": {}
             },
-            "2017-388_ADIOD-vPE 0": {
+            "2017-388_PASQUALE-vPE 0": {
               "uuid": "afacccf6-397d-45d6-b5ae-94c39734b168",
               "invariantUuid": "72e465fe-71b1-4e7b-b5ed-9496118ff7a8",
-              "description": "Name ADIOD vPE Description The provider edge function for the ADIOD service supported by the Junipers VMX product Category Router Vendor Juniper Vendor Release Code 17.2 Owners Mary Fragale. Updated 9-25 to use v8.0 of the Juniper Valid 2 VLM",
-              "name": "2017-388_ADIOD-vPE",
+              "description": "Name PASQUALE vPE Description The provider edge function for the PASQUALE service supported by the Junipers VMX product Category Router Vendor Juniper Vendor Release Code 17.2 Owners Mary Fragale. Updated 9-25 to use v8.0 of the Juniper Valid 2 VLM",
+              "name": "2017-388_PASQUALE-vPE",
               "version": "4.0",
               "customizationUuid": "b3c76f73-eeb5-4fb6-9d31-72a889f1811c",
               "inputs": {},
               "commands": {},
               "properties": {
                 "vmxvre_retype": "RE-VMX",
-                "vnf_config_template_version": "get_input:2017488_adiodvpe0_vnf_config_template_version",
+                "vnf_config_template_version": "get_input:2017488_pasqualevpe0_vnf_config_template_version",
                 "sriov44_net_id": "48d399b3-11ee-48a8-94d2-f0ea94d6be8d",
                 "int_ctl_net_id": "2f323477-6936-4d01-ac53-d849430281d9",
                 "vmxvpfe_sriov41_0_port_mac": "00:11:22:EF:AC:DF",
@@ -620,7 +637,7 @@ function getStore() {
                 "vmxvpfe_sriov43_0_port_unknownmulticastallow": "true",
                 "vmxvre_int_ctl_ip_0": "10.0.0.10",
                 "ecomp_generated_naming": "true",
-                "AIC_CLLI": "get_input:2017488_adiodvpe0_AIC_CLLI",
+                "AIC_CLLI": "get_input:2017488_pasqualevpe0_AIC_CLLI",
                 "vnf_name": "mtnj309me6vre",
                 "vmxvpfe_sriov41_0_port_unknownunicastallow": "true",
                 "vmxvre_volume_type_1": "HITACHI",
@@ -628,14 +645,14 @@ function getStore() {
                 "vmxvre_volume_type_0": "HITACHI",
                 "vmxvpfe_volume_type_0": "HITACHI",
                 "vmxvpfe_sriov43_0_port_broadcastallow": "true",
-                "bandwidth_units": "get_input:2017488_adiodvpe0_bandwidth_units",
+                "bandwidth_units": "get_input:2017488_pasqualevpe0_bandwidth_units",
                 "vnf_id": "123",
                 "vmxvre_oam_prefix": "24",
                 "availability_zone_0": "mtpocfo-kvm-az01",
-                "ASN": "get_input:2017488_adiodvpe0_ASN",
+                "ASN": "get_input:2017488_pasqualevpe0_ASN",
                 "vmxvre_chassis_i2cid": "161",
                 "vmxvpfe_name_0": "vPFEXI",
-                "bandwidth": "get_input:2017488_adiodvpe0_bandwidth",
+                "bandwidth": "get_input:2017488_pasqualevpe0_bandwidth",
                 "availability_zone_max_count": "1",
                 "vmxvre_volume_size_0": "45.0",
                 "vmxvre_volume_size_1": "50.0",
@@ -645,7 +662,7 @@ function getStore() {
                 "vmxvre_ore_present": "0",
                 "vmxvre_volume_name_0": "vREXI_FBVolume",
                 "vmxvre_type": "0",
-                "vnf_instance_name": "get_input:2017488_adiodvpe0_vnf_instance_name",
+                "vnf_instance_name": "get_input:2017488_pasqualevpe0_vnf_instance_name",
                 "vmxvpfe_sriov41_0_port_unknownmulticastallow": "true",
                 "oam_net_id": "b95eeb1d-d55d-4827-abb4-8ebb94941429",
                 "vmx_int_ctl_len": "24",
@@ -659,16 +676,16 @@ function getStore() {
                 "vmxvpfe_flavor_name": "ns.c20r16d25.v5"
               },
               "type": "VF",
-              "modelCustomizationName": "2017-388_ADIOD-vPE 0",
+              "modelCustomizationName": "2017-388_PASQUALE-vPE 0",
               "vfModules": {},
               "volumeGroups": {},
               "vfcInstanceGroups": {}
             },
-            "2017-488_ADIOD-vPE 0": {
+            "2017-488_PASQUALE-vPE 0": {
               "uuid": "69e09f68-8b63-4cc9-b9ff-860960b5db09",
               "invariantUuid": "72e465fe-71b1-4e7b-b5ed-9496118ff7a8",
-              "description": "Name ADIOD vPE Description The provider edge function for the ADIOD service supported by the Junipers VMX product Category Router Vendor Juniper Vendor Release Code 17.2 Owners Mary Fragale. Updated 9-25 to use v8.0 of the Juniper Valid 2 VLM",
-              "name": "2017-488_ADIOD-vPE",
+              "description": "Name PASQUALE vPE Description The provider edge function for the PASQUALE service supported by the Junipers VMX product Category Router Vendor Juniper Vendor Release Code 17.2 Owners Mary Fragale. Updated 9-25 to use v8.0 of the Juniper Valid 2 VLM",
+              "name": "2017-488_PASQUALE-vPE",
               "version": "5.0",
               "customizationUuid": "1da7b585-5e61-4993-b95e-8e6606c81e45",
               "inputs": {},
@@ -676,7 +693,7 @@ function getStore() {
               "properties": {
                 "max_instances": 1,
                 "vmxvre_retype": "RE-VMX",
-                "vnf_config_template_version": "get_input:2017488_adiodvpe0_vnf_config_template_version",
+                "vnf_config_template_version": "get_input:2017488_pasqualevpe0_vnf_config_template_version",
                 "sriov44_net_id": "48d399b3-11ee-48a8-94d2-f0ea94d6be8d",
                 "int_ctl_net_id": "2f323477-6936-4d01-ac53-d849430281d9",
                 "vmxvpfe_sriov41_0_port_mac": "00:11:22:EF:AC:DF",
@@ -722,7 +739,7 @@ function getStore() {
                 "vmxvpfe_sriov43_0_port_unknownmulticastallow": "true",
                 "vmxvre_int_ctl_ip_0": "10.0.0.10",
                 "ecomp_generated_naming": "true",
-                "AIC_CLLI": "get_input:2017488_adiodvpe0_AIC_CLLI",
+                "AIC_CLLI": "get_input:2017488_pasqualevpe0_AIC_CLLI",
                 "vnf_name": "mtnj309me6vre",
                 "vmxvpfe_sriov41_0_port_unknownunicastallow": "true",
                 "vmxvre_volume_type_1": "HITACHI",
@@ -730,14 +747,14 @@ function getStore() {
                 "vmxvre_volume_type_0": "HITACHI",
                 "vmxvpfe_volume_type_0": "HITACHI",
                 "vmxvpfe_sriov43_0_port_broadcastallow": "true",
-                "bandwidth_units": "get_input:2017488_adiodvpe0_bandwidth_units",
+                "bandwidth_units": "get_input:2017488_pasqualevpe0_bandwidth_units",
                 "vnf_id": "123",
                 "vmxvre_oam_prefix": "24",
                 "availability_zone_0": "mtpocfo-kvm-az01",
-                "ASN": "get_input:2017488_adiodvpe0_ASN",
+                "ASN": "get_input:2017488_pasqualevpe0_ASN",
                 "vmxvre_chassis_i2cid": "161",
                 "vmxvpfe_name_0": "vPFEXI",
-                "bandwidth": "get_input:2017488_adiodvpe0_bandwidth",
+                "bandwidth": "get_input:2017488_pasqualevpe0_bandwidth",
                 "availability_zone_max_count": "1",
                 "vmxvre_volume_size_0": "45.0",
                 "vmxvre_volume_size_1": "50.0",
@@ -747,7 +764,7 @@ function getStore() {
                 "vmxvre_ore_present": "0",
                 "vmxvre_volume_name_0": "vREXI_FBVolume",
                 "vmxvre_type": "0",
-                "vnf_instance_name": "get_input:2017488_adiodvpe0_vnf_instance_name",
+                "vnf_instance_name": "get_input:2017488_pasqualevpe0_vnf_instance_name",
                 "vmxvpfe_sriov41_0_port_unknownmulticastallow": "true",
                 "oam_net_id": "b95eeb1d-d55d-4827-abb4-8ebb94941429",
                 "vmx_int_ctl_len": "24",
@@ -761,57 +778,57 @@ function getStore() {
                 "vmxvpfe_flavor_name": "ns.c20r16d25.v5"
               },
               "type": "VF",
-              "modelCustomizationName": "2017-488_ADIOD-vPE 0",
+              "modelCustomizationName": "2017-488_PASQUALE-vPE 0",
               "vfModules": {
-                "2017488_adiodvpe0..2017488AdiodVpe..ADIOD_vRE_BV..module-1": {
+                "2017488_pasqualevpe0..2017488PasqualeVpe..PASQUALE_vRE_BV..module-1": {
                   "uuid": "25284168-24bb-4698-8cb4-3f509146eca5",
                   "invariantUuid": "7253ff5c-97f0-4b8b-937c-77aeb4d79aa1",
                   "customizationUuid": "f7e7c365-60cf-49a9-9ebf-a1aa11b9d401",
                   "description": null,
-                  "name": "2017488AdiodVpe..ADIOD_vRE_BV..module-1",
+                  "name": "2017488PasqualeVpe..PASQUALE_vRE_BV..module-1",
                   "version": "6",
-                  "modelCustomizationName": "2017488AdiodVpe..ADIOD_vRE_BV..module-1",
+                  "modelCustomizationName": "2017488PasqualeVpe..PASQUALE_vRE_BV..module-1",
                   "properties": {
                     "minCountInstances": 0,
                     "maxCountInstances": null,
                     "initialCount": 0,
-                    "vfModuleLabel": "ADIOD_vRE_BV",
+                    "vfModuleLabel": "PASQUALE_vRE_BV",
                     "baseModule": false
                   },
                   "inputs": {},
                   "volumeGroupAllowed": true
                 },
-                "2017488_adiodvpe0..2017488AdiodVpe..ADIOD_base_vPE_BV..module-0": {
+                "2017488_pasqualevpe0..2017488PasqualeVpe..PASQUALE_base_vPE_BV..module-0": {
                   "uuid": "f8360508-3f17-4414-a2ed-6bc71161e8db",
                   "invariantUuid": "b34833bb-6aa9-4ad6-a831-70b06367a091",
                   "customizationUuid": "a55961b2-2065-4ab0-a5b7-2fcee1c227e3",
                   "description": null,
-                  "name": "2017488AdiodVpe..ADIOD_base_vPE_BV..module-0",
+                  "name": "2017488PasqualeVpe..PASQUALE_base_vPE_BV..module-0",
                   "version": "5",
-                  "modelCustomizationName": "2017488AdiodVpe..ADIOD_base_vPE_BV..module-0",
+                  "modelCustomizationName": "2017488PasqualeVpe..PASQUALE_base_vPE_BV..module-0",
                   "properties": {
                     "minCountInstances": 1,
                     "maxCountInstances": 1,
                     "initialCount": 1,
-                    "vfModuleLabel": "ADIOD_base_vPE_BV",
+                    "vfModuleLabel": "PASQUALE_base_vPE_BV",
                     "baseModule": true
                   },
                   "inputs": {},
                   "volumeGroupAllowed": false
                 },
-                "2017488_adiodvpe0..2017488AdiodVpe..ADIOD_vPFE_BV..module-2": {
+                "2017488_pasqualevpe0..2017488PasqualeVpe..PASQUALE_vPFE_BV..module-2": {
                   "uuid": "0a0dd9d4-31d3-4c3a-ae89-a02f383e6a9a",
                   "invariantUuid": "eff8cc59-53a1-4101-aed7-8cf24ecf8339",
                   "customizationUuid": "3cd946bb-50e0-40d8-96d3-c9023520b557",
                   "description": null,
-                  "name": "2017488AdiodVpe..ADIOD_vPFE_BV..module-2",
+                  "name": "2017488PasqualeVpe..PASQUALE_vPFE_BV..module-2",
                   "version": "6",
-                  "modelCustomizationName": "2017488AdiodVpe..ADIOD_vPFE_BV..module-2",
+                  "modelCustomizationName": "2017488PasqualeVpe..PASQUALE_vPFE_BV..module-2",
                   "properties": {
                     "minCountInstances": 0,
                     "maxCountInstances": null,
                     "initialCount": 0,
-                    "vfModuleLabel": "ADIOD_vPFE_BV",
+                    "vfModuleLabel": "PASQUALE_vPFE_BV",
                     "baseModule": false
                   },
                   "inputs": {},
@@ -819,36 +836,36 @@ function getStore() {
                 }
               },
               "volumeGroups": {
-                "2017488_adiodvpe0..2017488AdiodVpe..ADIOD_vRE_BV..module-1": {
+                "2017488_pasqualevpe0..2017488PasqualeVpe..PASQUALE_vRE_BV..module-1": {
                   "uuid": "25284168-24bb-4698-8cb4-3f509146eca5",
                   "invariantUuid": "7253ff5c-97f0-4b8b-937c-77aeb4d79aa1",
                   "customizationUuid": "f7e7c365-60cf-49a9-9ebf-a1aa11b9d401",
                   "description": null,
-                  "name": "2017488AdiodVpe..ADIOD_vRE_BV..module-1",
+                  "name": "2017488PasqualeVpe..PASQUALE_vRE_BV..module-1",
                   "version": "6",
-                  "modelCustomizationName": "2017488AdiodVpe..ADIOD_vRE_BV..module-1",
+                  "modelCustomizationName": "2017488PasqualeVpe..PASQUALE_vRE_BV..module-1",
                   "properties": {
                     "minCountInstances": 0,
                     "maxCountInstances": null,
                     "initialCount": 0,
-                    "vfModuleLabel": "ADIOD_vRE_BV",
+                    "vfModuleLabel": "PASQUALE_vRE_BV",
                     "baseModule": false
                   },
                   "inputs": {}
                 },
-                "2017488_adiodvpe0..2017488AdiodVpe..ADIOD_vPFE_BV..module-2": {
+                "2017488_pasqualevpe0..2017488PasqualeVpe..PASQUALE_vPFE_BV..module-2": {
                   "uuid": "0a0dd9d4-31d3-4c3a-ae89-a02f383e6a9a",
                   "invariantUuid": "eff8cc59-53a1-4101-aed7-8cf24ecf8339",
                   "customizationUuid": "3cd946bb-50e0-40d8-96d3-c9023520b557",
                   "description": null,
-                  "name": "2017488AdiodVpe..ADIOD_vPFE_BV..module-2",
+                  "name": "2017488PasqualeVpe..PASQUALE_vPFE_BV..module-2",
                   "version": "6",
-                  "modelCustomizationName": "2017488AdiodVpe..ADIOD_vPFE_BV..module-2",
+                  "modelCustomizationName": "2017488PasqualeVpe..PASQUALE_vPFE_BV..module-2",
                   "properties": {
                     "minCountInstances": 0,
                     "maxCountInstances": null,
                     "initialCount": 0,
-                    "vfModuleLabel": "ADIOD_vPFE_BV",
+                    "vfModuleLabel": "PASQUALE_vPFE_BV",
                     "baseModule": false
                   },
                   "inputs": {}
@@ -877,60 +894,60 @@ function getStore() {
               "modelCustomizationName": "ExtVL 0"
             }
           },
-          "collectionResource": {},
+          "collectionResources": {},
           "configurations": {},
           "fabricConfigurations": {},
           "serviceProxies": {},
           "vfModules": {
-            "2017488_adiodvpe0..2017488AdiodVpe..ADIOD_vRE_BV..module-1": {
+            "2017488_pasqualevpe0..2017488PasqualeVpe..PASQUALE_vRE_BV..module-1": {
               "uuid": "25284168-24bb-4698-8cb4-3f509146eca5",
               "invariantUuid": "7253ff5c-97f0-4b8b-937c-77aeb4d79aa1",
               "customizationUuid": "f7e7c365-60cf-49a9-9ebf-a1aa11b9d401",
               "description": null,
-              "name": "2017488AdiodVpe..ADIOD_vRE_BV..module-1",
+              "name": "2017488PasqualeVpe..PASQUALE_vRE_BV..module-1",
               "version": "6",
-              "modelCustomizationName": "2017488AdiodVpe..ADIOD_vRE_BV..module-1",
+              "modelCustomizationName": "2017488PasqualeVpe..PASQUALE_vRE_BV..module-1",
               "properties": {
                 "minCountInstances": 0,
                 "maxCountInstances": null,
                 "initialCount": 0,
-                "vfModuleLabel": "ADIOD_vRE_BV",
+                "vfModuleLabel": "PASQUALE_vRE_BV",
                 "baseModule": false
               },
               "inputs": {},
               "volumeGroupAllowed": true
             },
-            "2017488_adiodvpe0..2017488AdiodVpe..ADIOD_base_vPE_BV..module-0": {
+            "2017488_pasqualevpe0..2017488PasqualeVpe..PASQUALE_base_vPE_BV..module-0": {
               "uuid": "f8360508-3f17-4414-a2ed-6bc71161e8db",
               "invariantUuid": "b34833bb-6aa9-4ad6-a831-70b06367a091",
               "customizationUuid": "a55961b2-2065-4ab0-a5b7-2fcee1c227e3",
               "description": null,
-              "name": "2017488AdiodVpe..ADIOD_base_vPE_BV..module-0",
+              "name": "2017488PasqualeVpe..PASQUALE_base_vPE_BV..module-0",
               "version": "5",
-              "modelCustomizationName": "2017488AdiodVpe..ADIOD_base_vPE_BV..module-0",
+              "modelCustomizationName": "2017488PasqualeVpe..PASQUALE_base_vPE_BV..module-0",
               "properties": {
                 "minCountInstances": 1,
                 "maxCountInstances": 1,
                 "initialCount": 1,
-                "vfModuleLabel": "ADIOD_base_vPE_BV",
+                "vfModuleLabel": "PASQUALE_base_vPE_BV",
                 "baseModule": true
               },
               "inputs": {},
               "volumeGroupAllowed": false
             },
-            "2017488_adiodvpe0..2017488AdiodVpe..ADIOD_vPFE_BV..module-2": {
+            "2017488_pasqualevpe0..2017488PasqualeVpe..PASQUALE_vPFE_BV..module-2": {
               "uuid": "0a0dd9d4-31d3-4c3a-ae89-a02f383e6a9a",
               "invariantUuid": "eff8cc59-53a1-4101-aed7-8cf24ecf8339",
               "customizationUuid": "3cd946bb-50e0-40d8-96d3-c9023520b557",
               "description": null,
-              "name": "2017488AdiodVpe..ADIOD_vPFE_BV..module-2",
+              "name": "2017488PasqualeVpe..PASQUALE_vPFE_BV..module-2",
               "version": "6",
-              "modelCustomizationName": "2017488AdiodVpe..ADIOD_vPFE_BV..module-2",
+              "modelCustomizationName": "2017488PasqualeVpe..PASQUALE_vPFE_BV..module-2",
               "properties": {
                 "minCountInstances": 0,
                 "maxCountInstances": null,
                 "initialCount": 0,
-                "vfModuleLabel": "ADIOD_vPFE_BV",
+                "vfModuleLabel": "PASQUALE_vPFE_BV",
                 "baseModule": false
               },
               "inputs": {},
@@ -938,36 +955,36 @@ function getStore() {
             }
           },
           "volumeGroups": {
-            "2017488_adiodvpe0..2017488AdiodVpe..ADIOD_vRE_BV..module-1": {
+            "2017488_pasqualevpe0..2017488PasqualeVpe..PASQUALE_vRE_BV..module-1": {
               "uuid": "25284168-24bb-4698-8cb4-3f509146eca5",
               "invariantUuid": "7253ff5c-97f0-4b8b-937c-77aeb4d79aa1",
               "customizationUuid": "f7e7c365-60cf-49a9-9ebf-a1aa11b9d401",
               "description": null,
-              "name": "2017488AdiodVpe..ADIOD_vRE_BV..module-1",
+              "name": "2017488PasqualeVpe..PASQUALE_vRE_BV..module-1",
               "version": "6",
-              "modelCustomizationName": "2017488AdiodVpe..ADIOD_vRE_BV..module-1",
+              "modelCustomizationName": "2017488PasqualeVpe..PASQUALE_vRE_BV..module-1",
               "properties": {
                 "minCountInstances": 0,
                 "maxCountInstances": null,
                 "initialCount": 0,
-                "vfModuleLabel": "ADIOD_vRE_BV",
+                "vfModuleLabel": "PASQUALE_vRE_BV",
                 "baseModule": false
               },
               "inputs": {}
             },
-            "2017488_adiodvpe0..2017488AdiodVpe..ADIOD_vPFE_BV..module-2": {
+            "2017488_pasqualevpe0..2017488PasqualeVpe..PASQUALE_vPFE_BV..module-2": {
               "uuid": "0a0dd9d4-31d3-4c3a-ae89-a02f383e6a9a",
               "invariantUuid": "eff8cc59-53a1-4101-aed7-8cf24ecf8339",
               "customizationUuid": "3cd946bb-50e0-40d8-96d3-c9023520b557",
               "description": null,
-              "name": "2017488AdiodVpe..ADIOD_vPFE_BV..module-2",
+              "name": "2017488PasqualeVpe..PASQUALE_vPFE_BV..module-2",
               "version": "6",
-              "modelCustomizationName": "2017488AdiodVpe..ADIOD_vPFE_BV..module-2",
+              "modelCustomizationName": "2017488PasqualeVpe..PASQUALE_vPFE_BV..module-2",
               "properties": {
                 "minCountInstances": 0,
                 "maxCountInstances": null,
                 "initialCount": 0,
-                "vfModuleLabel": "ADIOD_vPFE_BV",
+                "vfModuleLabel": "PASQUALE_vPFE_BV",
                 "baseModule": false
               },
               "inputs": {}
@@ -991,11 +1008,11 @@ function getStore() {
                 "ecomp_generated_naming": "true"
               },
               "members": {
-                "vdbe_svc_vprs_proxy 0": {
+                "vdorothea_svc_vprs_proxy 0": {
                   "uuid": "65fadfa8-a0d9-443f-95ad-836cd044e26c",
                   "invariantUuid": "f4baae0c-b3a5-4ca1-a777-afbffe7010bc",
-                  "description": "A Proxy for Service vDBE_Svc_vPRS",
-                  "name": "vDBE_Svc_vPRS Service Proxy",
+                  "description": "A Proxy for Service vDOROTHEA_Svc_vPRS",
+                  "name": "vDOROTHEA_Svc_vPRS Service Proxy",
                   "version": "1.0",
                   "customizationUuid": "bdb63d23-e132-4ce7-af2c-a493b4cafac9",
                   "inputs": {},
@@ -1004,7 +1021,7 @@ function getStore() {
                   "type": "Service Proxy",
                   "sourceModelUuid": "da7827a2-366d-4be6-8c68-a69153c61274",
                   "sourceModelInvariant": "24632e6b-584b-4f45-80d4-fefd75fd9f14",
-                  "sourceModelName": "vDBE_Svc_vPRS"
+                  "sourceModelName": "vDOROTHEA_Svc_vPRS"
                 }
               }
             },
@@ -1083,7 +1100,7 @@ function getStore() {
               "modelCustomizationName": "AIC30_CONTRAIL_BASIC 0"
             }
           },
-          "collectionResource": {},
+          "collectionResources": {},
           "configurations": {},
           "fabricConfigurations": {},
           "serviceProxies": {},
@@ -1096,62 +1113,62 @@ function getStore() {
       "serviceInstance": {
         "1a80c596-27e5-4ca9-b5bb-e03a7fd4c0fd": {
           "vnfs": {
-            "2017-488_ADIOD-vPE 0": {
+            "2017-488_PASQUALE-vPE 0": {
               "action": "None",
               "inMaint": false,
               "rollbackOnFailure": "true",
-              "originalName": "2017-488_ADIOD-vPE 0",
+              "originalName": "2017-488_PASQUALE-vPE 0",
               "isMissingData": false,
               "trackById": "stigekyxrqi",
               "vfModules": {
-                "2017488_adiodvpe0..2017488AdiodVpe..ADIOD_base_vPE_BV..module-0": {
-                  "2017488_adiodvpe0..2017488AdiodVpe..ADIOD_base_vPE_BV..module-0gytfi": {
+                "2017488_pasqualevpe0..2017488PasqualeVpe..PASQUALE_base_vPE_BV..module-0": {
+                  "2017488_pasqualevpe0..2017488PasqualeVpe..PASQUALE_base_vPE_BV..module-0gytfi": {
                     "isMissingData": false,
                     "sdncPreReload": null,
                     "modelInfo": {
                       "modelType": "VFmodule",
                       "modelInvariantId": "b34833bb-6aa9-4ad6-a831-70b06367a091",
                       "modelVersionId": "f8360508-3f17-4414-a2ed-6bc71161e8db",
-                      "modelName": "2017488AdiodVpe..ADIOD_base_vPE_BV..module-0",
+                      "modelName": "2017488PasqualeVpe..PASQUALE_base_vPE_BV..module-0",
                       "modelVersion": "5",
                       "modelCustomizationId": "a55961b2-2065-4ab0-a5b7-2fcee1c227e3",
-                      "modelCustomizationName": "2017488AdiodVpe..ADIOD_base_vPE_BV..module-0"
+                      "modelCustomizationName": "2017488PasqualeVpe..PASQUALE_base_vPE_BV..module-0"
                     },
                     "instanceParams": [{}],
                     "trackById": "3oj23o7nupo"
                   }
                 }
               },
-              "vnfStoreKey": "2017-488_ADIOD-vPE 0",
+              "vnfStoreKey": "2017-488_PASQUALE-vPE 0",
               "uuid": "69e09f68-8b63-4cc9-b9ff-860960b5db09",
               "productFamilyId": "d8a6ed93-251c-47ca-adc9-86671fd19f4c",
-              "lcpCloudRegionId": "JANET25",
+              "lcpCloudRegionId": "AAIAIC25",
               "tenantId": "092eb9e8e4b7412e8787dd091bc58e86",
               "lineOfBusiness": "ONAP",
               "platformName": "xxx1",
               "modelInfo": {
                 "modelInvariantId": "72e465fe-71b1-4e7b-b5ed-9496118ff7a8",
                 "modelVersionId": "69e09f68-8b63-4cc9-b9ff-860960b5db09",
-                "modelName": "2017-488_ADIOD-vPE",
+                "modelName": "2017-488_PASQUALE-vPE",
                 "modelVersion": "5.0",
-                "modelCustomizationName": "2017-488_ADIOD-vPE 0",
+                "modelCustomizationName": "2017-488_PASQUALE-vPE 0",
                 "modelCustomizationId": "1da7b585-5e61-4993-b95e-8e6606c81e45",
                 "uuid": "69e09f68-8b63-4cc9-b9ff-860960b5db09"
               },
               "legacyRegion": "11111111",
               "instanceParams": [{}]
             },
-            "2017-388_ADIOD-vPE 0": {
+            "2017-388_PASQUALE-vPE 0": {
               "action": "Create",
               "inMaint": false,
               "rollbackOnFailure": "true",
-              "originalName": "2017-388_ADIOD-vPE 0",
+              "originalName": "2017-388_PASQUALE-vPE 0",
               "isMissingData": false,
               "trackById": "nib719t5vca",
               "vfModules": {},
-              "vnfStoreKey": "2017-388_ADIOD-vPE 0",
+              "vnfStoreKey": "2017-388_PASQUALE-vPE 0",
               "productFamilyId": "d8a6ed93-251c-47ca-adc9-86671fd19f4c",
-              "lcpCloudRegionId": "JANET25",
+              "lcpCloudRegionId": "AAIAIC25",
               "legacyRegion": "11111",
               "tenantId": "092eb9e8e4b7412e8787dd091bc58e86",
               "platformName": "platform",
@@ -1160,25 +1177,25 @@ function getStore() {
               "modelInfo": {
                 "modelInvariantId": "72e465fe-71b1-4e7b-b5ed-9496118ff7a8",
                 "modelVersionId": "afacccf6-397d-45d6-b5ae-94c39734b168",
-                "modelName": "2017-388_ADIOD-vPE",
+                "modelName": "2017-388_PASQUALE-vPE",
                 "modelVersion": "4.0",
                 "modelCustomizationId": "b3c76f73-eeb5-4fb6-9d31-72a889f1811c",
-                "modelCustomizationName": "2017-388_ADIOD-vPE 0",
+                "modelCustomizationName": "2017-388_PASQUALE-vPE 0",
                 "uuid": "afacccf6-397d-45d6-b5ae-94c39734b168"
               },
               "uuid": "afacccf6-397d-45d6-b5ae-94c39734b168"
             },
-            "2017-388_ADIOD-vPE 1": {
+            "2017-388_PASQUALE-vPE 1": {
               "action": "None",
               "inMaint": false,
               "rollbackOnFailure": "true",
-              "originalName": "2017-388_ADIOD-vPE 1",
+              "originalName": "2017-388_PASQUALE-vPE 1",
               "isMissingData": false,
               "trackById": "cv7l1ak8vpe",
               "vfModules": {},
-              "vnfStoreKey": "2017-388_ADIOD-vPE 1",
+              "vnfStoreKey": "2017-388_PASQUALE-vPE 1",
               "productFamilyId": "d8a6ed93-251c-47ca-adc9-86671fd19f4c",
-              "lcpCloudRegionId": "JANET25",
+              "lcpCloudRegionId": "AAIAIC25",
               "legacyRegion": "123",
               "tenantId": "092eb9e8e4b7412e8787dd091bc58e86",
               "platformName": "platform",
@@ -1187,10 +1204,10 @@ function getStore() {
               "modelInfo": {
                 "modelInvariantId": "00beb8f9-6d39-452f-816d-c709b9cbb87d",
                 "modelVersionId": "0903e1c0-8e03-4936-b5c2-260653b96413",
-                "modelName": "2017-388_ADIOD-vPE",
+                "modelName": "2017-388_PASQUALE-vPE",
                 "modelVersion": "1.0",
                 "modelCustomizationId": "280dec31-f16d-488b-9668-4aae55d6648a",
-                "modelCustomizationName": "2017-388_ADIOD-vPE 1",
+                "modelCustomizationName": "2017-388_PASQUALE-vPE 1",
                 "uuid": "0903e1c0-8e03-4936-b5c2-260653b96413"
               },
               "uuid": "0903e1c0-8e03-4936-b5c2-260653b96413"
@@ -1218,7 +1235,7 @@ function getStore() {
               "trackById": "s6okajvv2n8",
               "networkStoreKey": "ExtVL 0",
               "productFamilyId": "d8a6ed93-251c-47ca-adc9-86671fd19f4c",
-              "lcpCloudRegionId": "JANET25",
+              "lcpCloudRegionId": "AAIAIC25",
               "legacyRegion": "12355555",
               "tenantId": "092eb9e8e4b7412e8787dd091bc58e86",
               "platformName": "platform",
@@ -1262,7 +1279,7 @@ function getStore() {
           "subscriptionServiceType": "TYLER SILVIA",
           "owningEntityId": "d61e6f2d-12fa-4cc2-91df-7c244011d6fc",
           "productFamilyId": "d8a6ed93-251c-47ca-adc9-86671fd19f4c",
-          "lcpCloudRegionId": "JANET25",
+          "lcpCloudRegionId": "AAIAIC25",
           "tenantId": "092eb9e8e4b7412e8787dd091bc58e86",
           "aicZoneId": "ATL53",
           "pause": null,
@@ -1284,7 +1301,7 @@ function getStore() {
           "isALaCarte": false,
           "name": "action-data",
           "version": "1.0",
-          "description": "ADIOD vMX vPE based on Juniper 17.2 release. Updated with updated VF for v8.0 of VLM",
+          "description": "PASQUALE vMX vPE based on Juniper 17.2 release. Updated with updated VF for v8.0 of VLM",
           "category": "Network L1-3",
           "uuid": "1a80c596-27e5-4ca9-b5bb-e03a7fd4c0fd",
           "invariantUuid": "cdb90b57-ed78-4d44-a5b4-7f43a02ec632",
@@ -1296,13 +1313,13 @@ function getStore() {
       },
       "lcpRegionsAndTenants": {
         "lcpRegionList": [{
-          "id": "JANET25",
-          "name": "JANET25 (AIC)",
+          "id": "AAIAIC25",
+          "name": "AAIAIC25 (AIC)",
           "isPermitted": true,
           "cloudOwner": "irma-aic"
         }, {"id": "hvf6", "name": "hvf6 (AIC)", "isPermitted": true, "cloudOwner": "irma-aic"}],
         "lcpRegionsTenantsMap": {
-          "JANET25": [{
+          "AAIAIC25": [{
             "id": "092eb9e8e4b7412e8787dd091bc58e86",
             "name": "USP-SIP-IC-24335-T-01",
             "isPermitted": true,
@@ -1314,8 +1331,128 @@ function getStore() {
             "isPermitted": true,
             "cloudOwner": "irma-aic"
           }, {
-            "id": "d0a3e3f2964542259d155a81c41aadc3",
-            "name": "test-hvf6-09",
+            "id": "229bcdc6eaeb4ca59d55221141d01f8e",
+            "name": "AIN Web Tool-15-D-STTest2",
+            "isPermitted": true,
+            "cloudOwner": "irma-aic"
+          }, {
+            "id": "1178612d2b394be4834ad77f567c0af2",
+            "name": "AIN Web Tool-15-D-SSPtestcustome",
+            "isPermitted": true,
+            "cloudOwner": "irma-aic"
+          }, {
+            "id": "19c5ade915eb461e8af52fb2fd8cd1f2",
+            "name": "AIN Web Tool-15-D-UncheckedEcopm",
+            "isPermitted": true,
+            "cloudOwner": "irma-aic"
+          }, {
+            "id": "de007636e25249238447264a988a927b",
+            "name": "AIN Web Tool-15-D-dfsdf",
+            "isPermitted": true,
+            "cloudOwner": "irma-aic"
+          }, {
+            "id": "62f29b3613634ca6a3065cbe0e020c44",
+            "name": "AIN/SMS-16-D-Multiservices1",
+            "isPermitted": true,
+            "cloudOwner": "irma-aic"
+          }, {
+            "id": "649289e30d3244e0b48098114d63c2aa",
+            "name": "AIN Web Tool-15-D-SSPST66",
+            "isPermitted": true,
+            "cloudOwner": "irma-aic"
+          }, {
+            "id": "3f21eeea6c2c486bba31dab816c05a32",
+            "name": "AIN Web Tool-15-D-ASSPST47",
+            "isPermitted": true,
+            "cloudOwner": "irma-aic"
+          }, {
+            "id": "f60ce21d3ee6427586cff0d22b03b773",
+            "name": "CESAR-100-D-sspjg67246",
+            "isPermitted": true,
+            "cloudOwner": "irma-aic"
+          }, {
+            "id": "8774659e425f479895ae091bb5d46560",
+            "name": "CESAR-100-D-sspjg68359",
+            "isPermitted": true,
+            "cloudOwner": "irma-aic"
+          }, {
+            "id": "624eb554b0d147c19ff8885341760481",
+            "name": "AINWebTool-15-D-iftach",
+            "isPermitted": true,
+            "cloudOwner": "irma-aic"
+          }, {
+            "id": "214f55f5fc414c678059c383b03e4962",
+            "name": "CESAR-100-D-sspjg612401",
+            "isPermitted": true,
+            "cloudOwner": "irma-aic"
+          }, {
+            "id": "c90666c291664841bb98e4d981ff1db5",
+            "name": "CESAR-100-D-sspjg621340",
+            "isPermitted": true,
+            "cloudOwner": "irma-aic"
+          }, {
+            "id": "ce5b6bc5c7b348e1bf4b91ac9a174278",
+            "name": "sspjg621351cloned",
+            "isPermitted": true,
+            "cloudOwner": "irma-aic"
+          }, {
+            "id": "b386b768a3f24c8e953abbe0b3488c02",
+            "name": "AINWebTool-15-D-eteancomp",
+            "isPermitted": true,
+            "cloudOwner": "irma-aic"
+          }, {
+            "id": "dc6c4dbfd225474e9deaadd34968646c",
+            "name": "AINWebTool-15-T-SPFET",
+            "isPermitted": true,
+            "cloudOwner": "irma-aic"
+          }, {
+            "id": "02cb5030e9914aa4be120bd9ed1e19eb",
+            "name": "AINWebTool-15-X-eeweww",
+            "isPermitted": true,
+            "cloudOwner": "irma-aic"
+          }, {
+            "id": "f2f3830e4c984d45bcd00e1a04158a79",
+            "name": "CESAR-100-D-spjg61909",
+            "isPermitted": true,
+            "cloudOwner": "irma-aic"
+          }, {
+            "id": "05b91bd5137f4929878edd965755c06d",
+            "name": "CESAR-100-D-sspjg621512cloned",
+            "isPermitted": true,
+            "cloudOwner": "irma-aic"
+          }, {
+            "id": "7002fbe8482d4a989ddf445b1ce336e0",
+            "name": "AINWebTool-15-X-vdr",
+            "isPermitted": true,
+            "cloudOwner": "irma-aic"
+          }, {
+            "id": "4008522be43741dcb1f5422022a2aa0b",
+            "name": "AINWebTool-15-D-ssasa",
+            "isPermitted": true,
+            "cloudOwner": "irma-aic"
+          }, {
+            "id": "f44e2e96a1b6476abfda2fa407b00169",
+            "name": "AINWebTool-15-D-PFNPT",
+            "isPermitted": true,
+            "cloudOwner": "irma-aic"
+          }, {
+            "id": "b69a52bec8a84669a37a1e8b72708be7",
+            "name": "AINWebTool-15-X-vdre",
+            "isPermitted": true,
+            "cloudOwner": "irma-aic"
+          }, {
+            "id": "fac7d9fd56154caeb9332202dcf2969f",
+            "name": "AINWebTool-15-X-NONPODECOMP",
+            "isPermitted": true,
+            "cloudOwner": "irma-aic"
+          }, {
+            "id": "2d34d8396e194eb49969fd61ffbff961",
+            "name": "DN5242-Nov16-T5",
+            "isPermitted": true,
+            "cloudOwner": "irma-aic"
+          }, {
+            "id": "cb42a77ff45b48a8b8deb83bb64acc74",
+            "name": "ro-T11",
             "isPermitted": true,
             "cloudOwner": "irma-aic"
           }, {
@@ -1323,6 +1460,16 @@ function getStore() {
             "name": "ro-T112",
             "isPermitted": true,
             "cloudOwner": "irma-aic"
+          }, {
+            "id": "4914ab0ab3a743e58f0eefdacc1dde77",
+            "name": "DN5242-Nov21-T1",
+            "isPermitted": true,
+            "cloudOwner": "irma-aic"
+          }, {
+            "id": "d0a3e3f2964542259d155a81c41aadc3",
+            "name": "test-hvf6-09",
+            "isPermitted": true,
+            "cloudOwner": "irma-aic"
           }, {
             "id": "cbb99fe4ada84631b7baf046b6fd2044",
             "name": "DN5242-Nov16-T3",
@@ -1404,9 +1551,9 @@ function getStore() {
           "isPermitted": false
         }, {"id": "18", "name": "vCarroll", "isPermitted": false}, {
           "id": "9",
-          "name": "vMME",
+          "name": "vFLORENCE",
           "isPermitted": false
-        }, {"id": "13", "name": "vMMSC", "isPermitted": false}, {
+        }, {"id": "13", "name": "vWINIFRED", "isPermitted": false}, {
           "id": "10",
           "name": "vMNS",
           "isPermitted": false
@@ -1414,34 +1561,205 @@ function getStore() {
           "id": "8",
           "name": "vOTA",
           "isPermitted": false
-        }, {"id": "11", "name": "vSCP", "isPermitted": false}, {
+        }, {"id": "11", "name": "vEsmeralda", "isPermitted": false}, {
           "id": "6",
-          "name": "vSEGW",
+          "name": "vPorfirio",
           "isPermitted": false
         }, {"id": "7", "name": "vVM", "isPermitted": false}, {"id": "4", "name": "vVoiceMail", "isPermitted": false}]
       },
-      "aicZones": [
-        {
-          "id": "NFT1",
-          "name": "NFTJSSSS-NFT1"
-        },
-        {
-          "id": "JAG1",
-          "name": "YUDFJULP-JAG1"
-        },
-        {
-          "id": "YYY1",
-          "name": "UUUAIAAI-YYY1"
-        },
-        {
-          "id": "AVT1",
-          "name": "AVTRFLHD-AVT1"
-        },
-        {
-          "id": "ATL34",
-          "name": "ATLSANAI-ATL34"
-        }
-      ],
+      "aicZones": [{"id": "ATL53", "name": "AAIATLTE-ATL53"}, {"id": "ABC15", "name": "AAITESAN-ABC15"}, {
+        "id": "TES36",
+        "name": "ABCEETES-TES36"
+      }, {"id": "ATL54", "name": "AICFTAAI-ATL54"}, {"id": "ATL43", "name": "AICLOCID-ATL43"}, {
+        "id": "AMD15",
+        "name": "AMDFAA01-AMD15"
+      }, {"id": "AMF11", "name": "AMDOCS01-AMF11"}, {"id": "RCT1", "name": "AMSTERNL-RCT1"}, {
+        "id": "AMS1",
+        "name": "AMSTNLBW-AMS1"
+      }, {"id": "HJH1", "name": "AOEEQQQD-HJH1"}, {"id": "HJE1", "name": "AOEEWWWD-HJE1"}, {
+        "id": "MCS1",
+        "name": "ASACMAMS-MCS1"
+      }, {"id": "AUG1", "name": "ASDFGHJK-AUG1"}, {"id": "LUC1", "name": "ATLDFGYC-LUC1"}, {
+        "id": "ATL1",
+        "name": "ATLNGAMA-ATL1"
+      }, {"id": "ATL2", "name": "ATLNGANW-ATL2"}, {"id": "HPO1", "name": "ATLNGAUP-HPO1"}, {
+        "id": "ANI1",
+        "name": "ATLNGTRE-ANI1"
+      }, {"id": "ATL44", "name": "ATLSANAB-ATL44"}, {"id": "ATL56", "name": "ATLSANAC-ATL56"}, {
+        "id": "ABC11",
+        "name": "ATLSANAI-ABC11"
+      }, {"id": "ATL34", "name": "ATLSANAI-ATL34"}, {"id": "ATL63", "name": "ATLSANEW-ATL63"}, {
+        "id": "ABC12",
+        "name": "ATLSECIA-ABC12"
+      }, {"id": "AMD18", "name": "AUDIMA01-AMD18"}, {"id": "AVT1", "name": "AVTRFLHD-AVT1"}, {
+        "id": "KIT1",
+        "name": "BHYJFGLN-KIT1"
+      }, {"id": "BHY17", "name": "BHYTFRF3-BHY17"}, {"id": "RTW5", "name": "BHYTFRY4-RTW5"}, {
+        "id": "RTZ4",
+        "name": "BHYTFRZ6-RTZ4"
+      }, {"id": "RTD2", "name": "BHYTFRk4-RTD2"}, {"id": "BNA1", "name": "BNARAGBK-BNA1"}, {
+        "id": "VEL1",
+        "name": "BNMLKUIK-VEL1"
+      }, {"id": "BOT1", "name": "BOTHWAKY-BOT1"}, {"id": "CAL33", "name": "CALIFORN-CAL33"}, {
+        "id": "ATL84",
+        "name": "CANTTCOC-ATL84"
+      }, {"id": "HSD1", "name": "CHASKCDS-HSD1"}, {"id": "CHI1", "name": "CHILLIWE-CHI1"}, {
+        "id": "XCP12",
+        "name": "CHKGH123-XCP12"
+      }, {"id": "JNL1", "name": "CJALSDAC-JNL1"}, {"id": "KJN1", "name": "CKALDKSA-KJN1"}, {
+        "id": "CLG1",
+        "name": "CLGRABAD-CLG1"
+      }, {"id": "CKL1", "name": "CLKSKCKK-CKL1"}, {"id": "ATL66", "name": "CLLIAAII-ATL66"}, {
+        "id": "CQK1",
+        "name": "CQKSCAKK-CQK1"
+      }, {"id": "CWY1", "name": "CWYMOWBS-CWY1"}, {"id": "DKJ1", "name": "DKJSJDKA-DKJ1"}, {
+        "id": "DSF45",
+        "name": "DSFBG123-DSF45"
+      }, {"id": "DSL12", "name": "DSLFK242-DSL12"}, {"id": "FDE55", "name": "FDERT555-FDE55"}, {
+        "id": "VEN2",
+        "name": "FGHJUHIL-VEN2"
+      }, {"id": "ATL64", "name": "FORLOAAJ-ATL64"}, {"id": "GNV1", "name": "GNVLSCTL-GNV1"}, {
+        "id": "SAN22",
+        "name": "GNVLSCTL-SAN22"
+      }, {"id": "KAP1", "name": "HIOUYTRQ-KAP1"}, {"id": "LIS1", "name": "HOSTPROF-LIS1"}, {
+        "id": "HRG1",
+        "name": "HRGHRGGS-HRG1"
+      }, {"id": "HST25", "name": "HSTNTX01-HST25"}, {"id": "STN27", "name": "HSTNTX01-STN27"}, {
+        "id": "HST70",
+        "name": "HSTNTX70-HST70"
+      }, {"id": "KOR1", "name": "HYFLNBVT-KOR1"}, {"id": "RAD10", "name": "INDIPUNE-RAD10"}, {
+        "id": "REL1",
+        "name": "INGERFGT-REL1"
+      }, {"id": "JAD1", "name": "JADECLLI-JAD1"}, {"id": "HKA1", "name": "JAKHLASS-HKA1"}, {
+        "id": "JCS1",
+        "name": "JCSJSCJS-JCS1"
+      }, {"id": "JCV1", "name": "JCVLFLBW-JCV1"}, {"id": "KGM2", "name": "KGMTNC20-KGM2"}, {
+        "id": "KJF12",
+        "name": "KJFDH123-KJF12"
+      }, {"id": "JGS1", "name": "KSJKKKKK-JGS1"}, {"id": "LAG1", "name": "LARGIZON-LAG1"}, {
+        "id": "LAG1a",
+        "name": "LARGIZON-LAG1a"
+      }, {"id": "LAG45", "name": "LARGIZON-LAG1a"}, {"id": "LAG1b", "name": "LARGIZON-LAG1b"}, {
+        "id": "WAN1",
+        "name": "LEIWANGW-WAN1"
+      }, {"id": "DSA1", "name": "LKJHGFDS-DSA1"}, {"id": "LON1", "name": "LONEENCO-LON1"}, {
+        "id": "SITE",
+        "name": "LONEENCO-SITE"
+      }, {"id": "ZXL1", "name": "LWLWCANN-ZXL1"}, {"id": "hvf20", "name": "MDTWNJ21-hvf20"}, {
+        "id": "hvf32",
+        "name": "MDTWNJ21-hvf32"
+      }, {"id": "AMD13", "name": "MEMATLAN-AMD13"}, {"id": "MIC54", "name": "MICHIGAN-MIC54"}, {
+        "id": "MAR1",
+        "name": "MNBVCXZM-MAR1"
+      }, {"id": "NCA1", "name": "NCANCANN-NCA1"}, {"id": "NFT1", "name": "NFTJSSSS-NFT1"}, {
+        "id": "GAR1",
+        "name": "NGFVSJKO-GAR1"
+      }, {"id": "NYC1", "name": "NYCMNY54-NYC1"}, {"id": "OKC1", "name": "OKCBOK55-OKC1"}, {
+        "id": "OLG1",
+        "name": "OLHOLHOL-OLG1"
+      }, {"id": "OLK1", "name": "OLKOLKLS-OLK1"}, {"id": "NIR1", "name": "ORFLMANA-NIR1"}, {
+        "id": "JAN1",
+        "name": "ORFLMATT-JAN1"
+      }, {"id": "ORL1", "name": "ORLDFLMA-ORL1"}, {"id": "PAR1", "name": "PARSFRCG-PAR1"}, {
+        "id": "PBL1",
+        "name": "PBLAPBAI-PBL1"
+      }, {"id": "mac10", "name": "PKGTESTF-mac10"}, {"id": "mac20", "name": "PKGTESTF-mac20"}, {
+        "id": "TIR2",
+        "name": "PLKINHYI-TIR2"
+      }, {"id": "IBB1", "name": "PLMKOIJU-IBB1"}, {"id": "COM1", "name": "PLMKOPIU-COM1"}, {
+        "id": "POI1",
+        "name": "PLMNJKIU-POI1"
+      }, {"id": "PLT1", "name": "PLTNCA60-PLT1"}, {"id": "POI22", "name": "POIUY123-POI22"}, {
+        "id": "DCC1",
+        "name": "POIUYTGH-DCC1"
+      }, {"id": "DCC1a", "name": "POIUYTGH-DCC1a"}, {"id": "DCC1b", "name": "POIUYTGH-DCC1b"}, {
+        "id": "DCC2",
+        "name": "POIUYTGH-DCC2"
+      }, {"id": "DCC3", "name": "POIUYTGH-DCC3"}, {"id": "IAA1", "name": "QAZXSWED-IAA1"}, {
+        "id": "QWE1",
+        "name": "QWECLLI1-QWE1"
+      }, {"id": "NUM1", "name": "QWERTYUI-NUM1"}, {"id": "RAD1", "name": "RADICAL1-RAD1"}, {
+        "id": "RJN1",
+        "name": "RJNRBZAW-RJN1"
+      }, {"id": "SAA13", "name": "SAIT1AA9-SAA13"}, {"id": "SAA14", "name": "SAIT1AA9-SAA14"}, {
+        "id": "SDD81",
+        "name": "SAIT1DD6-SDD81"
+      }, {"id": "SDD82", "name": "SAIT1DD9-SDD82"}, {"id": "SAA11", "name": "SAIT9AA2-SAA11"}, {
+        "id": "SAA80",
+        "name": "SAIT9AA3-SAA80"
+      }, {"id": "SAA12", "name": "SAIT9AF8-SAA12"}, {"id": "SCC80", "name": "SAIT9CC3-SCC80"}, {
+        "id": "ATL75",
+        "name": "SANAAIRE-ATL75"
+      }, {"id": "ICC1", "name": "SANJITAT-ICC1"}, {"id": "SCK1", "name": "SCKSCKSK-SCK1"}, {
+        "id": "EHH78",
+        "name": "SDCSHHH5-EHH78"
+      }, {"id": "SAA78", "name": "SDCTAAA1-SAA78"}, {"id": "SAX78", "name": "SDCTAXG1-SAX78"}, {
+        "id": "SBX78",
+        "name": "SDCTBXG1-SBX78"
+      }, {"id": "SEE78", "name": "SDCTEEE4-SEE78"}, {"id": "SGG78", "name": "SDCTGGG1-SGG78"}, {
+        "id": "SXB78",
+        "name": "SDCTGXB1-SXB78"
+      }, {"id": "SJJ78", "name": "SDCTJJJ1-SJJ78"}, {"id": "SKK78", "name": "SDCTKKK1-SKK78"}, {
+        "id": "SLF78",
+        "name": "SDCTLFN1-SLF78"
+      }, {"id": "SLL78", "name": "SDCTLLL1-SLL78"}, {"id": "MAD11", "name": "SDFQWGKL-MAD11"}, {
+        "id": "HGD1",
+        "name": "SDFQWHGD-HGD1"
+      }, {"id": "SBB78", "name": "SDIT1BBB-SBB78"}, {"id": "SDG78", "name": "SDIT1BDG-SDG78"}, {
+        "id": "SBU78",
+        "name": "SDIT1BUB-SBU78"
+      }, {"id": "SHH78", "name": "SDIT1HHH-SHH78"}, {"id": "SJU78", "name": "SDIT1JUB-SJU78"}, {
+        "id": "SNA1",
+        "name": "SNANTXCA-SNA1"
+      }, {"id": "SAM1", "name": "SNDGCA64-SAN1"}, {"id": "SNG1", "name": "SNGPSIAU-SNG1"}, {
+        "id": "SSA56",
+        "name": "SSIT2AA7-SSA56"
+      }, {"id": "STG1", "name": "STTGGE62-STG1"}, {"id": "STT1", "name": "STTLWA02-STT1"}, {
+        "id": "SYD1",
+        "name": "SYDNAUBV-SYD1"
+      }, {"id": "ATL99", "name": "TEESTAAI-ATL43"}, {"id": "ATL98", "name": "TEESTAAI-ATL43"}, {
+        "id": "ATL76",
+        "name": "TELEPAAI-ATL76"
+      }, {"id": "ABC14", "name": "TESAAISA-ABC14"}, {"id": "TAT33", "name": "TESAAISA-TAT33"}, {
+        "id": "TAT34",
+        "name": "TESAAISB-TAT34"
+      }, {"id": "TAT37", "name": "TESAAISD-TAT37"}, {"id": "ATL62", "name": "TESSASCH-ATL62"}, {
+        "id": "TLP1",
+        "name": "TLPNXM18-TLP1"
+      }, {"id": "SAN13", "name": "TOKYJPFA-SAN13"}, {"id": "TOK1", "name": "TOKYJPFA-TOK1"}, {
+        "id": "TOL1",
+        "name": "TOLDOH21-TOL1"
+      }, {"id": "TOR1", "name": "TOROONXN-TOR1"}, {"id": "TOY1", "name": "TORYONNZ-TOY1"}, {
+        "id": "ATL35",
+        "name": "TTESSAAI-ATL35"
+      }, {"id": "TUF1", "name": "TUFCLLI1-TUF1"}, {"id": "SAI1", "name": "UBEKQLPD-SAI1"}, {
+        "id": "UUU4",
+        "name": "UUUAAAUU-UUU4"
+      }, {"id": "YYY1", "name": "UUUAIAAI-YYY1"}, {"id": "BAN1", "name": "VSDKYUTP-BAN1"}, {
+        "id": "WAS1",
+        "name": "WASHDCSW-WAS1"
+      }, {"id": "APP1", "name": "WBHGTYUI-APP1"}, {"id": "SUL2", "name": "WERTYUJK-SUL2"}, {
+        "id": "DEF2",
+        "name": "WSBHGTYL-DEF2"
+      }, {"id": "DHA12", "name": "WSXEDECF-DHA12"}, {"id": "MNT11", "name": "WSXEFBTH-MNT11"}, {
+        "id": "RAJ1",
+        "name": "YGBIJNLQ-RAJ1"
+      }, {"id": "JAG1", "name": "YUDFJULP-JAG1"}, {"id": "ZEN1", "name": "ZENCLLI1-ZEN1"}, {
+        "id": "ZOG1",
+        "name": "ZOGASTRO-ZOG1"
+      }, {"id": "SDE1", "name": "ZXCVBNMA-SDE1"}, {"id": "SIP1", "name": "ZXCVBNMK-SIP1"}, {
+        "id": "JUL1",
+        "name": "ZXCVBNMM-JUL1"
+      }, {"id": "ERT1", "name": "ertclli1-ERT1"}, {"id": "IOP1", "name": "iopclli1-IOP1"}, {
+        "id": "OPA1",
+        "name": "opaclli1-OPA1"
+      }, {"id": "RAI1", "name": "poiuytre-RAI1"}, {"id": "PUR1", "name": "purelyde-PUR1"}, {
+        "id": "RTY1",
+        "name": "rtyclli1-RTY1"
+      }, {"id": "SDF1", "name": "sdfclli1-SDF1"}, {"id": "SSW56", "name": "ss8126GT-SSW56"}, {
+        "id": "UIO1",
+        "name": "uioclli1-UIO1"
+      }],
       "categoryParameters": {
         "owningEntityList": [{
           "id": "aaa1",
@@ -1458,3 +1776,63 @@ function getStore() {
     }
   }
 }
+
+function getNetworkModel(){
+  return {
+    "customizationUuid":"94fdd893-4a36-4d70-b16a-ec29c54c184f",
+    "name":"ExtVL",
+    "version":"37.0",
+    "description":"ECOMP generic virtual link (network) base type for all other service-level and global networks",
+    "uuid":"ddc3f20c-08b5-40fd-af72-c6d14636b986",
+    "invariantUuid":"379f816b-a7aa-422f-be30-17114ff50b7c",
+    "max":1,
+    "min":0,
+    "isEcompGeneratedNaming":false,
+    "type":"VL",
+    "modelCustomizationName":"ExtVL 0",
+    "roles":["network role 1"," network role 2"],
+    "properties":{
+      "network_role":"network role 1, network role 2",
+      "network_assignments":
+        "{is_external_network=false, ipv4_subnet_default_assignment={min_subnets_count=1}, ecomp_generated_network_assignment=false, ipv6_subnet_default_assignment={min_subnets_count=1}}",
+      "exVL_naming":"{ecomp_generated_naming=true}","network_flows":"{is_network_policy=false, is_bound_to_vpn=false}",
+      "network_homing":"{ecomp_selected_instance_node_target=false}"
+    }
+  };
+
+}
+
+function getNetworkInstance() {
+  return {
+    "modelCustomizationId": "94fdd893-4a36-4d70-b16a-ec29c54c184f",
+    "modelId": "ddc3f20c-08b5-40fd-af72-c6d14636b986",
+    "modelUniqueId": "94fdd893-4a36-4d70-b16a-ec29c54c184f",
+    "missingData": true,
+    "id": "NETWORK4_INSTANCE_ID",
+    "action": "None",
+    "orchStatus": "Created",
+    "provStatus": "preprov",
+    "inMaint": false,
+    "instanceId": "NETWORK4_INSTANCE_ID",
+    "instanceType": "CONTRAIL30_HIMELGUARD",
+    "instanceName": "NETWORK4_INSTANCE_NAME",
+    "name": "NETWORK4_INSTANCE_NAME",
+    "modelName": "ExtVL 0",
+    "type": "VL",
+    "isEcompGeneratedNaming": false,
+    "networkStoreKey": "NETWORK4_INSTANCE_ID",
+    "typeName": "N",
+    "menuActions": {"edit": {}, "showAuditInfo": {}, "duplicate": {}, "remove": {}, "delete": {}, "undoDelete": {}},
+    "isFailed": false,
+    "statusMessage": "",
+    "statusProperties": [{"key": "Prov Status:", "value": "preprov", "testId": "provStatus"}, {
+      "key": "Orch Status:",
+      "value": "Created",
+      "testId": "orchStatus"
+    }],
+    "trackById": "1wvr73xl999",
+    "parentType": "",
+    "componentInfoType": "Network",
+    "errors": {}
+  };
+}
index 5a023d5..7df03fd 100644 (file)
@@ -9,6 +9,8 @@ import {DrawingBoardModes} from "../drawing-board.modes";
 import {AuditInfoModalComponent} from "../../../shared/components/auditInfoModal/auditInfoModal.component";
 import {VnfModelInfo} from "./models/vnf/vnf.model.info";
 import {ILevelNodeInfo} from "./models/basic.model.info";
+import {ComponentInfoModel, ComponentInfoType} from "../component-info/component-info-model";
+import {ModelInformationItem} from "../../../shared/components/model-information/model-information.component";
 
 @Injectable()
 export class SharedTreeService {
@@ -265,14 +267,29 @@ export class SharedTreeService {
    @modelInfoService : the model (vnf, vfmodule, network, vnfgroup)object that call to the function (this)
    ************************************************/
   openAuditInfoModal(node, serviceModelId, instance, instanceType, modelInfoService : ILevelNodeInfo){
-    let isInstanceFailed  = this.isFailed(node);
-      AuditInfoModalComponent.openInstanceAuditInfoModal.next({
-        instanceId: serviceModelId,
-        type: instanceType,
-        model: modelInfoService.getModel(node.data.modelName, instance, this._store.getState().service.serviceHierarchy[serviceModelId]),
-        instance,
-        isInstanceFailed,
-        trackById: instance.trackById
-      });
-    }
+    AuditInfoModalComponent.openInstanceAuditInfoModal.next({
+      instanceId: serviceModelId,
+      type: instanceType,
+      model: modelInfoService.getModel(node.data.modelName, instance, this._store.getState().service.serviceHierarchy[serviceModelId]),
+      instance
+    });
+  }
+
+
+  addGeneralInfoItems(modelInfoSpecificItems: ModelInformationItem[], type: ComponentInfoType, model, instance):ComponentInfoModel {
+    let modelInfoItems: ModelInformationItem[] = [
+      ModelInformationItem.createInstance("Model version", model ? model.version : null),
+      ModelInformationItem.createInstance("Model customization ID", model ? model.customizationUuid : null),
+      ModelInformationItem.createInstance("Instance ID", instance ? instance.instanceId : null),
+      ModelInformationItem.createInstance("Instance type", instance ? instance.instanceType : null),
+      ModelInformationItem.createInstance("In maintenance", instance? instance.inMaint : null),
+    ];
+    modelInfoItems = modelInfoItems.concat(modelInfoSpecificItems);
+    return this.getComponentInfoModelByModelInformationItems(modelInfoItems, type, instance);
+  }
+
+  getComponentInfoModelByModelInformationItems(modelInfoItems: ModelInformationItem[], type: ComponentInfoType, instance){
+    const modelInfoItemsWithoutEmpty = _.filter(modelInfoItems, function(item){ return !item.values.every(_.isNil)});
+    return new ComponentInfoModel(type, modelInfoItemsWithoutEmpty, [], instance != null);
+  }
 }
index 059937f..3255f08 100644 (file)
@@ -3,9 +3,15 @@
     <drawing-board-header></drawing-board-header>
   </div>
   <div class="service-planning-content">
-    <available-models-tree class="left-side" [ngClass]="isShowComponentInfo() ?'col-md-5':'col-md-6'"
+    <available-models-tree class="left-side"
+                           [ngClass]="isShowComponentInfo() ?'col-md-5':'col-md-6'"
                            (highlightInstances)="highlightInstancesBySelectingNode($event)"></available-models-tree>
-    <drawing-board-tree *ngIf="isShowTree()" class="span-over" [ngClass]="isShowComponentInfo() ?'col-md-5':'col-md-6'" (highlightNode)="highlightNodeBySelectingInstance($event)"></drawing-board-tree>
+    <drawing-board-tree
+      *ngIf="isShowTree()"
+      class="span-over"
+      [ngClass]="isShowComponentInfo() ?'col-md-5':'col-md-6'"
+      [pageMode]="pageMode"
+      (highlightNode)="highlightNodeBySelectingInstance($event)"></drawing-board-tree>
     <component-info *ngIf="isShowComponentInfo()" class="col-md-2"></component-info>
   </div>
 
index 75f2058..69d9417 100644 (file)
@@ -6,7 +6,7 @@ describe('Vlantagging', () => {
     sessionStorage.setItem("msoRequestParametersTestApiValue","GR_API");
     let userInputs_withEcompGeneratedNaming = {
       "productFamily": "e433710f-9217-458d-a79d-1c7aff376d89",
-      "lcpRegion": "JANET25",
+      "lcpRegion": "AAIAIC25",
       "tenantId": "092eb9e8e4b7412e8787dd091bc58e86",
       "aicZone": "YYY1",
       "platformName": "plat1",
@@ -15,7 +15,7 @@ describe('Vlantagging', () => {
     let userInputs_withoutEcompGeneratedNaming = {
       "instanceName": "New Name",
       "productFamily": "e433710f-9217-458d-a79d-1c7aff376d89",
-      "lcpRegion": "JANET25",
+      "lcpRegion": "AAIAIC25",
       "tenantId": "092eb9e8e4b7412e8787dd091bc58e86",
       "aicZone": "YYY1",
       "platformName": "plat1",
@@ -25,23 +25,23 @@ describe('Vlantagging', () => {
       "service": {
         "uuid": "6bce7302-70bd-4057-b48e-8d5b99e686ca",
         "invariantUuid": "9aa04749-c02c-432d-a90c-18caa361c833",
-        "name": "vDBE_srv",
+        "name": "vDOROTHEA_srv",
         "version": "1.0",
         "toscaModelURL": null,
         "category": "Network L4+",
         "serviceType": "",
         "serviceRole": "",
-        "description": "vDBE_srv",
+        "description": "vDOROTHEA_srv",
         "serviceEcompNaming": "true",
         "instantiationType": "A-La-Carte",
         "inputs": {}
       },
       "vnfs": {
-        "vDBE 0": {
+        "vDOROTHEA 0": {
           "uuid": "61535073-2e50-4141-9000-f66fea69b433",
           "invariantUuid": "fcdf49ce-6f0b-4ca2-b676-a484e650e734",
-          "description": "vDBE",
-          "name": "vDBE",
+          "description": "vDOROTHEA",
+          "name": "vDOROTHEA",
           "version": "0.2",
           "customizationUuid": "1",
           "inputs": {},
@@ -57,16 +57,16 @@ describe('Vlantagging', () => {
             "untr_network_collection_function": "untraaa"
           },
           "type": "VF",
-          "modelCustomizationName": "vDBE 0",
+          "modelCustomizationName": "vDOROTHEA 0",
           "vfModules": {
-            "vdbe0..Vdbe..main..module-0": {
+            "vdorothea0..Vdorothea..main..module-0": {
               "uuid": "25a4d009-2f5a-44b4-b02a-62c584c15912",
               "invariantUuid": "614afb1a-3e7e-44e9-90ab-424d0070c781",
               "customizationUuid": "3443b341-7b0b-498c-a84a-a7ee736cba7e",
               "description": null,
-              "name": "Vdbe..main..module-0",
+              "name": "Vdorothea..main..module-0",
               "version": "1",
-              "modelCustomizationName": "Vdbe..main..module-0",
+              "modelCustomizationName": "Vdorothea..main..module-0",
               "properties": {
                 "minCountInstances": 1,
                 "maxCountInstances": 1,
@@ -107,18 +107,18 @@ describe('Vlantagging', () => {
         }
       },
       "networks": {},
-      "collectionResource": {},
+      "collectionResources": {},
       "configurations": {},
       "serviceProxies": {},
       "vfModules": {
-        "vdbe0..Vdbe..main..module-0": {
+        "vdorothea0..Vdorothea..main..module-0": {
           "uuid": "25a4d009-2f5a-44b4-b02a-62c584c15912",
           "invariantUuid": "614afb1a-3e7e-44e9-90ab-424d0070c781",
           "customizationUuid": "3443b341-7b0b-498c-a84a-a7ee736cba7e",
           "description": null,
-          "name": "Vdbe..main..module-0",
+          "name": "Vdorothea..main..module-0",
           "version": "1",
-          "modelCustomizationName": "Vdbe..main..module-0",
+          "modelCustomizationName": "Vdorothea..main..module-0",
           "properties": {
             "minCountInstances": 1,
             "maxCountInstances": 1,
@@ -252,15 +252,15 @@ describe('Vlantagging', () => {
       },
       "lineOfBusiness": Object({ lineOfBusinessName: "onap" }),
       "cloudConfiguration": {
-        "lcpCloudRegionId": "JANET25",
+        "lcpCloudRegionId": "AAIAIC25",
         "tenantId": "092eb9e8e4b7412e8787dd091bc58e86"
       },
       "platform": Object({ platformName: "plat1" }),
       "modelInfo": {
         modelCustomizationId :'1',
         "modelVersionId": "61535073-2e50-4141-9000-f66fea69b433",
-        "modelCustomizationName": "vDBE 0",
-        "modelName": "vDBE",
+        "modelCustomizationName": "vDOROTHEA 0",
+        "modelName": "vDOROTHEA",
         "modelInvariantId": "fcdf49ce-6f0b-4ca2-b676-a484e650e734",
         "modelType": "vnf",
         "modelVersion": "0.2"
@@ -275,7 +275,7 @@ describe('Vlantagging', () => {
             "instanceId": "6bce7302-70bd-4057-b48e-8d5b99e686ca",
             "modelInfo": {
               "modelVersionId": "6bce7302-70bd-4057-b48e-8d5b99e686ca",
-              "modelName": "vDBE_srv",
+              "modelName": "vDOROTHEA_srv",
               "modelInvariantId": "9aa04749-c02c-432d-a90c-18caa361c833",
               "modelType": "service",
               "modelVersion": "1.0"
@@ -302,10 +302,10 @@ describe('Vlantagging', () => {
     };
 
 
-    let actualResult_withEcompGeneratedNaming = <any>createRequest("az2016",userInputs_withEcompGeneratedNaming, service, serviceInstanceId, networkInstanceGroups,'vDBE 0','1');
+    let actualResult_withEcompGeneratedNaming = <any>createRequest("az2016",userInputs_withEcompGeneratedNaming, service, serviceInstanceId, networkInstanceGroups,'vDOROTHEA 0','1');
     expect(actualResult_withEcompGeneratedNaming).toEqual(expectedResult);
     expectedResult["requestInfo"]["instanceName"] = "New Name";
-    let actualResult_withoutEcompGeneratedNaming = <any>createRequest("az2016",userInputs_withoutEcompGeneratedNaming, service, serviceInstanceId, networkInstanceGroups,'vDBE 0','1');
+    let actualResult_withoutEcompGeneratedNaming = <any>createRequest("az2016",userInputs_withoutEcompGeneratedNaming, service, serviceInstanceId, networkInstanceGroups,'vDOROTHEA 0','1');
     expect(actualResult_withoutEcompGeneratedNaming).toEqual(expectedResult);
     sessionStorage.removeItem("msoRequestParametersTestApiValue");
   });
index 4848d8e..aeaa057 100644 (file)
@@ -107,7 +107,7 @@ describe('Instantiation Status Service', () => {
       serviceType : 'serviceType',
       subscriberId : 'subscriberId'
     };
-    let params:UrlTree = service.getNewViewEditUrlTree(item, DrawingBoardModes.VIEW);
+    let params:UrlTree = service.getNewViewEditUrlTree(<any>item, DrawingBoardModes.VIEW);
     expect(params.toString().startsWith('/servicePlanning/VIEW')).toBeTruthy();
     expect(params.queryParams).toEqual(
       {
@@ -124,7 +124,7 @@ describe('Instantiation Status Service', () => {
     };
     let serviceModelUrl: string = '/servicePlanning/EDIT?serviceModelId=28aeb8f6-5620-4148-8bfb-a5fb406f0309';
     let suffix:string = '../../serviceModels.htm#';
-    let tree:UrlTree = service.getNewViewEditUrlTree(item, DrawingBoardModes.EDIT);
+    let tree:UrlTree = service.getNewViewEditUrlTree(<any>item, DrawingBoardModes.EDIT);
     let result = service.getViewEditUrl(tree);
     expect (suffix + serviceModelUrl).toEqual(result);
   });
index 1dad323..5145784 100644 (file)
           </div>
         </div>
         <div class="col-md-8 right-panel">
-            <div class="row" *ngIf="showVidStatus"><span class="table-title">VID status</span></div>
-            <div class="row" *ngIf="showVidStatus">
-              <table id="service-instantiation-audit-info-vid"  class="table table-bordered">
-                <thead class="thead-dark">
-                <tr class="row">
-                  <th class="col-md-4" scope="col">Status</th>
-                  <th class="col-md-4" scope="col">Status time</th>
-                  <th class="col-md-4" scope="col">Final</th>
-                </tr>
-                </thead>
-                <tbody>
-                <tr class="row" *ngFor="let data of vidInfoData">
-                  <td class="col-md-4" id="vidJobStatus" [attr.data-tests-id]="'vidJobStatus'">
-                    <custom-ellipsis [id]="data?.jobStatus" [value]="data?.jobStatus | capitalizeAndFormat"></custom-ellipsis>
-                  </td>
-                  <td class="col-md-4" id="vidStatusTime">
-                    <custom-ellipsis [id]="data?.vidCreated"
-                                     [value]="data?.createdDate | date:'MMM dd, yyyy HH:mm'"></custom-ellipsis>
-                  </td>
-                  <td class="col-md-4" id="vidFinalStatus">
-                    <custom-ellipsis [id]="data?.final"
-                                     [value]="data?.final ? 'Yes' : 'No'"></custom-ellipsis>
-                  </td>
-                </tr>
-                </tbody>
-              </table>
-              <div class="no-result" *ngIf="!isLoading && vidInfoData?.length == 0">There is no data.</div>
-            </div>
-
-            <div class="row">
-              <div class="col-md-6 leftColumn"><span class="table-title">MSO status</span></div>
-              <div class="col-md-6 rightColumn"><span><a id="glossary_link" target="_blank" href="#" (click)="onNavigate()">Building Block (BB) glossary</a></span></div>
-            </div>
-            <table id="service-instantiation-audit-info-mso" class="table table-bordered">
-              <thead class="thead-dark row">
+          <div class="row" *ngIf="showVidStatus"><span class="table-title">VID status</span></div>
+          <div class="row" *ngIf="showVidStatus">
+            <table id="service-instantiation-audit-info-vid"  class="table table-bordered">
+              <thead class="thead-dark">
               <tr class="row">
-                <th scope="col" class="request-id">Request ID</th>
-                <th *ngIf="isAlaCarte&&isALaCarteFlagOn" id="instanceName" class="col-md-2" scope="col">Instance Name</th>
-                <th class="col-md-2" scope="col">Status</th>
-                <th class="col-md-2" scope="col">Status time</th>
-                <th class="col-md-2" scope="col">Additional info</th>
+                <th class="col-md-4" scope="col">Status</th>
+                <th class="col-md-4" scope="col">Status time</th>
+                <th class="col-md-4" scope="col">Final</th>
               </tr>
               </thead>
               <tbody>
-              <tr class="row" *ngFor="let data of msoInfoData">
-                <td id="msoRequestId" class="request-id">
-                  <custom-ellipsis [id]="data?.requestId" [value]="data?.requestId"></custom-ellipsis>
-                </td>
-                <td *ngIf="isAlaCarte && isALaCarteFlagOn" class="msoInstanceName col-md-2">
-                  <custom-ellipsis [id]="data?.instanceName" [value]="data?.instanceType + ': ' + data?.instanceName"></custom-ellipsis>
-                </td>
-                <td class="col-md-2" id="msoJobStatus">
+              <tr class="row" *ngFor="let data of vidInfoData">
+                <td class="col-md-4" id="vidJobStatus" [attr.data-tests-id]="'vidJobStatus'">
                   <custom-ellipsis [id]="data?.jobStatus" [value]="data?.jobStatus | capitalizeAndFormat"></custom-ellipsis>
                 </td>
-                <td class="col-md-2" id="msoStatusTime">
+                <td class="col-md-4" id="vidStatusTime">
                   <custom-ellipsis [id]="data?.vidCreated"
-                                   [value]="data?.createdDate  | date:'MMM dd, yyyy HH:mm'"></custom-ellipsis>
+                                   [value]="data?.createdDate | date:'MMM dd, yyyy HH:mm'"></custom-ellipsis>
                 </td>
-                <td class="col-md-2" id="msoAdditionalInfo">
-                  <custom-ellipsis [id]="data?.additionalInfo" [value]="data?.additionalInfo"></custom-ellipsis>
+                <td class="col-md-4" id="vidFinalStatus">
+                  <custom-ellipsis [id]="data?.final"
+                                   [value]="data?.final ? 'Yes' : 'No'"></custom-ellipsis>
                 </td>
               </tr>
               </tbody>
             </table>
-          <div class="no-result" *ngIf="!isLoading && msoInfoData?.length == 0">There is no data.</div>
+            <div class="no-result" *ngIf="!isLoading && vidInfoData?.length == 0">There is no data.</div>
+          </div>
+
+          <div class="row">
+            <div class="col-md-6 leftColumn"><span class="table-title">MSO status</span></div>
+            <div class="col-md-6 rightColumn"><span><a id="glossary_link" target="_blank" href="#" (click)="onNavigate()">Building Block (BB) glossary</a></span></div>
           </div>
+          <table id="service-instantiation-audit-info-mso" class="table table-bordered">
+            <thead class="thead-dark row">
+            <tr class="row">
+              <th scope="col" class="request-id" style="min-width: 275px;max-width: 275px;">Request ID</th>
+              <th scope="col" style="min-width: 100px;max-width: 100px;">Status</th>
+              <th *ngIf="isAlaCarte&&isALaCarteFlagOn" id="instanceName" class="col-md-2" scope="col" style="max-width: 350px;">Instance Name</th>
+
+              <th class="col-md-2" scope="col" style="min-width: 300px;max-width: 300px;">Additional info</th>
+            </tr>
+            </thead>
+            <tbody>
+            <tr class="row" *ngFor="let data of msoInfoData">
+              <td id="msoRequestId" class="request-id" style="min-width: 275px;max-width: 275px;">
+                <custom-ellipsis [id]="data?.requestId" [value]="data?.requestId" [attr.data-tests-id]="'requestId'"></custom-ellipsis>
+              </td>
+              <td id="msoJobStatus" style="min-width: 100px;max-width: 100px;">
+                <custom-ellipsis [id]="data?.jobStatus" [value]="data?.jobStatus | capitalizeAndFormat" [attr.data-tests-id]="'jobStatus'"></custom-ellipsis>
+              </td>
+              <td *ngIf="isAlaCarte && isALaCarteFlagOn" class="msoInstanceName col-md-2" style="max-width: 350px;">
+                <custom-ellipsis [id]="data?.instanceName" [value]="data?.instanceType + ': ' + data?.instanceName"></custom-ellipsis>
+              </td>
+
+              <td class="col-md-2" id="msoAdditionalInfo" style="min-width: 300px;max-width: 300px;">
+                <custom-ellipsis [id]="data?.additionalInfo" [value]="data?.additionalInfo" [attr.data-tests-id]="'additionalInfo'"></custom-ellipsis>
+              </td>
+            </tr>
+            </tbody>
+          </table>
+          <div class="no-result" *ngIf="!isLoading && msoInfoData?.length == 0">There is no data.</div>
+        </div>
 
       </div>
       <div class="modal-footer row">
-        <button style= "font-size: 12px" id="cancelButton" type="button" class="btn btn-default cancel" (click)="onCancelClick()">
+        <button style= "font-size: 12px" id="cancelButton" type="button" class="btn btn-default cancel" (click)="onCancelClick()" [attr.data-tests-id]="'close-button'">
           Close
         </button>
       </div>
index 35b5fbf..e08477d 100644 (file)
@@ -154,7 +154,7 @@ describe("Audit info modal component service", () => {
     const results: ModelInformationItem[] = auditInfoModalComponentService.getModelInfo(model, instance, "6e59c5de-f052-46fa-aa7e-2fca9d674c44");
     expect(results.find((item) => item.label === 'Model customization ID').values[0]).toEqual("91415b44-753d-494c-926a-456a9172bbb9");
     expect(results.find((item) => item.label === 'Model version').values[0]).toEqual("2.0");
-    expect(results.find((item) => item.label === 'Model name').values[0]).toEqual("VF_vMee");
+    expect(results.find((item) => item.label === 'Model name').values[0]).toEqual("VF_vGeraldine");
     expect(results.find((item) => item.label === 'Instance name').values[0]).toEqual("4O61SmpFAdCm1oVEs");
     expect(results.find((item) => item.label === 'Instance ID').values[0]).toEqual("66cbb3b5-c823-470c-9520-4e0b85112250");
     expect(results.find((item) => item.label === 'Subscriber name').values[0]).toEqual("DALE BRIDGES"); // TODO should call subscriber
@@ -177,7 +177,7 @@ describe("Audit info modal component service", () => {
     const results: ModelInformationItem[] = auditInfoModalComponentService.getModelInfo(model, instance, "6e59c5de-f052-46fa-aa7e-2fca9d674c44");
     expect(results.find((item) => item.label === 'Model customization ID').values[0]).toEqual("55b1be94-671a-403e-a26c-667e9c47d091");
     expect(results.find((item) => item.label === 'Model version').values[0]).toEqual("2");
-    expect(results.find((item) => item.label === 'Model name').values[0]).toEqual("VfVmee..vmme_vlc..module-1");
+    expect(results.find((item) => item.label === 'Model name').values[0]).toEqual("VfVgeraldine..vflorence_vlc..module-1");
     expect(results.find((item) => item.label === 'Instance name').values[0]).toEqual("ss820f_0918_db");
     expect(results.find((item) => item.label === 'Instance ID').values[0]).toEqual("2c1ca484-cbc2-408b-ab86-25a2c15ce280");
     expect(results.find((item) => item.label === 'Subscriber name').values[0]).toEqual("DALE BRIDGES"); // TODO should call subscriber
@@ -241,19 +241,19 @@ describe("Audit info modal component service", () => {
 
 
   function getVNFModel(){
-    return {"name":"VF_vMee","version":"2.0","description":"VSP_vMee","uuid":"d6557200-ecf2-4641-8094-5393ae3aae60","invariantUuid":"4160458e-f648-4b30-a176-43881ffffe9e","max":1,"min":0,"customizationUuid":"91415b44-753d-494c-926a-456a9172bbb9","isEcompGeneratedNaming":true,"type":"VF","modelCustomizationName":"VF_vMee 0","vfcInstanceGroups":{},"properties":{"gpb2_Internal2_mac":"00:11:22:EF:AC:DF","sctp-a-ipv6-egress_rule_application":"any","sctp-b-ipv6-egress_src_start_port":"0","Internal2_allow_transit":"true","sctp-b-IPv6_ethertype":"IPv6","ncb2_Internal1_mac":"00:11:22:EF:AC:DF","sctp-b-ingress_rule_protocol":"icmp","sctp-b-ingress_action":"pass","sctp-a-egress_rule_application":"any","sctp-b-ipv6-ingress-src_start_port":"0.0","ncb1_Internal2_mac":"00:11:22:EF:AC:DF","sctp-b-egress_src_addresses":"local","fsb_volume_size_0":"320.0","sctp-a-ipv6-ingress-dst_start_port":"0","sctp-a-ipv6-ingress_ethertype":"IPv4","sctp-b-ipv6-ingress_rule_application":"any","domain_name":"default-domain","sctp-a-egress_src_addresses":"local","sctp-b-egress-src_start_port":"0.0","sctp-a-ingress_rule_protocol":"icmp","sctp-b-display_name":"epc-sctp-b-ipv4v6-sec-group","sctp-b-ipv6-ingress-dst_end_port":"65535","sctp-a-ingress_ethertype":"IPv4","sctp-a-egress-src_start_port":"0.0","sctp-b-dst_subnet_prefix_v6":"::","nf_naming":"{ecomp_generated_naming=true}","sctp-a-ipv6-ingress_src_subnet_prefix":"0.0.0.0","sctp-b-egress-dst_start_port":"0.0","ncb_flavor_name":"nv.c20r64d1","sctp-b-egress_dst_subnet_prefix_len":"0.0","gpb1_Internal1_mac":"00:11:22:EF:AC:DF","Internal2_net_cidr":"10.0.0.10","sctp-a-ingress-dst_start_port":"0.0","fsb1_Internal2_mac":"00:11:22:EF:AC:DF","sctp-a-egress-dst_start_port":"0.0","sctp-a-egress_ethertype":"IPv4","vlc_st_service_mode":"in-network-nat","sctp-a-ipv6-egress_ethertype":"IPv4","sctp-a-egress-src_end_port":"65535.0","sctp-b-egress_action":"pass","sctp-b-ipv6-egress_rule_application":"any","sctp-a-ingress-src_subnet_prefix_len":"0.0","sctp-b-ipv6-ingress-src_end_port":"65535.0","sctp-a-ipv6-ingress-src_start_port":"0.0","fsb2_Internal1_mac":"00:11:22:EF:AC:DF","sctp-b-name":"epc-sctp-b-ipv4v6-sec-group","sctp-b-ipv6-egress_ethertype":"IPv4","Internal1_net_cidr":"10.0.0.10","sctp-a-egress_dst_subnet_prefix":"0.0.0.0","fsb_flavor_name":"nv.c20r64d1","sctp_rule_protocol":"132","sctp-a-ipv6-ingress_rule_application":"any","sctp-b-ipv6-ingress_src_subnet_prefix_len":"0","ecomp_generated_naming":"true","sctp-a-IPv6_ethertype":"IPv6","vlc_st_virtualization_type":"virtual-machine","vlc2_Internal1_mac":"00:11:22:EF:AC:DF","sctp-b-ingress-dst_end_port":"65535.0","sctp-b-ingress-dst_start_port":"0.0","sctp-a-ipv6-ingress-src_end_port":"65535.0","sctp-a-display_name":"epc-sctp-a-ipv4v6-sec-group","sctp-b-ingress_rule_application":"any","vlc_flavor_name":"nd.c16r64d1","int2_sec_group_name":"int2-sec-group","sctp-b-ipv6-egress_src_addresses":"local","vlc_st_interface_type_int1":"other1","vlc_st_interface_type_int2":"other2","sctp-a-ipv6-egress-dst_start_port":"0","sctp-b-egress-src_end_port":"65535.0","sctp-a-ipv6-egress_dst_subnet_prefix_len":"0","Internal2_shared":"false","sctp-a-ipv6-egress_rule_protocol":"any","Internal2_rpf":"disable","vlc1_Internal1_mac":"00:11:22:EF:AC:DF","sctp-b-ipv6-egress_src_end_port":"65535","sctp-a-ipv6-egress_src_addresses":"local","sctp-a-ingress-dst_end_port":"65535.0","sctp-a-ipv6-egress_src_end_port":"65535","Internal1_forwarding_mode":"l2","Internal2_dhcp":"false","sctp-a-dst_subnet_prefix_v6":"::","pxe_image_name":"MME_PXE-Boot_16ACP04_GA.qcow2","vlc_st_interface_type_gtp":"other0","ncb1_Internal1_mac":"00:11:22:EF:AC:DF","sctp-b-src_subnet_prefix_v6":"::","sctp-a-egress_dst_subnet_prefix_len":"0.0","int1_sec_group_name":"int1-sec-group","Internal1_dhcp":"false","fsb2_Internal2_mac":"00:11:22:EF:AC:DF","Internal2_forwarding_mode":"l2","sctp-a-ipv6-egress_dst_end_port":"65535","sctp-b-egress_dst_subnet_prefix":"0.0.0.0","Internal1_net_cidr_len":"17","gpb2_Internal1_mac":"00:11:22:EF:AC:DF","sctp-a-ingress_dst_addresses":"local","sctp-b-ingress-src_subnet_prefix_len":"0.0","sctp-a-egress_action":"pass","fsb_volume_type_0":"SF-Default-SSD","ncb2_Internal2_mac":"00:11:22:EF:AC:DF","vlc_st_interface_type_sctp_a":"left","vlc_st_version":"2","sctp-a-src_subnet_prefix_v6":"::","vlc_st_interface_type_sctp_b":"right","sctp-a-ingress_rule_application":"any","sctp-b-egress_ethertype":"IPv4","sctp-a-ipv6-egress_src_start_port":"0","instance_ip_family_v6":"v6","gpb1_Internal2_mac":"00:11:22:EF:AC:DF","sctp-b-ingress-src_start_port":"0.0","fsb1_Internal1_mac":"00:11:22:EF:AC:DF","sctp-b-ingress_dst_addresses":"local","vlc_st_interface_type_oam":"management","multi_stage_design":"false","oam_sec_group_name":"oam-sec-group","Internal2_net_gateway":"10.0.0.10","sctp-a-ipv6-ingress-dst_end_port":"65535","Internal1_net_gateway":"10.0.0.10","sctp-b-ipv6-egress-dst_start_port":"0","sctp-b-ipv6-egress_rule_protocol":"any","gtp_sec_group_name":"gtp-sec-group","sctp-a-ipv6-egress_dst_subnet_prefix":"0.0.0.0","sctp-a-ipv6-ingress_dst_addresses":"local","sctp-b-ipv6-egress_dst_subnet_prefix_len":"0","sctp-b-ipv6-egress_action":"pass","sctp-a-egress_rule_protocol":"icmp","sctp-a-ipv6-egress_action":"pass","Internal1_shared":"false","sctp-b-ipv6-ingress_rule_protocol":"any","Internal2_net_cidr_len":"17","sctp-a-name":"epc-sctp-a-ipv4v6-sec-group","sctp-a-ingress-src_end_port":"65535.0","sctp-b-ipv6-ingress_src_subnet_prefix":"0.0.0.0","sctp-a-egress-dst_end_port":"65535.0","sctp-b-egress_rule_protocol":"icmp","sctp-a-ingress_action":"pass","sctp-b-ipv6-ingress_action":"pass","vlc_st_service_type":"firewall","sctp-b-ipv6-egress_dst_end_port":"65535","vlc2_Internal2_mac":"00:11:22:EF:AC:DF","sctp-b-ipv6-ingress-dst_start_port":"0","vlc_st_availability_zone":"true","sctp-b-ingress-src_subnet_prefix":"0.0.0.0","fsb_volume_image_name_1":"MME_FSB2_16ACP04_GA.qcow2","sctp-a-ipv6-ingress_src_subnet_prefix_len":"0","gpb_flavor_name":"nv.c20r64d1","Internal1_allow_transit":"true","availability_zone_max_count":"1","fsb_volume_image_name_0":"MME_FSB1_16ACP04_GA.qcow2","sctp-b-ipv6-ingress_dst_addresses":"local","sctp-b-ipv6-ingress_ethertype":"IPv4","sctp-b-ipv6-egress_dst_subnet_prefix":"0.0.0.0","sctp-a-ingress-src_subnet_prefix":"0.0.0.0","vlc1_Internal2_mac":"00:11:22:EF:AC:DF","sctp-a-ipv6-ingress_action":"pass","Internal1_rpf":"disable","sctp-b-ingress_ethertype":"IPv4","sctp-b-ingress-src_end_port":"65535.0","sctp-b-egress_rule_application":"any","sctp-a-ipv6-ingress_rule_protocol":"any","sctp-a-ingress-src_start_port":"0.0","sctp-b-egress-dst_end_port":"65535.0"}};
+    return {"name":"VF_vGeraldine","version":"2.0","description":"VSP_vGeraldine","uuid":"d6557200-ecf2-4641-8094-5393ae3aae60","invariantUuid":"4160458e-f648-4b30-a176-43881ffffe9e","max":1,"min":0,"customizationUuid":"91415b44-753d-494c-926a-456a9172bbb9","isEcompGeneratedNaming":true,"type":"VF","modelCustomizationName":"VF_vGeraldine 0","vfcInstanceGroups":{},"properties":{"gpb2_Internal2_mac":"00:11:22:EF:AC:DF","sctp-a-ipv6-egress_rule_application":"any","sctp-b-ipv6-egress_src_start_port":"0","Internal2_allow_transit":"true","sctp-b-IPv6_ethertype":"IPv6","ncb2_Internal1_mac":"00:11:22:EF:AC:DF","sctp-b-ingress_rule_protocol":"icmp","sctp-b-ingress_action":"pass","sctp-a-egress_rule_application":"any","sctp-b-ipv6-ingress-src_start_port":"0.0","ncb1_Internal2_mac":"00:11:22:EF:AC:DF","sctp-b-egress_src_addresses":"local","fsb_volume_size_0":"320.0","sctp-a-ipv6-ingress-dst_start_port":"0","sctp-a-ipv6-ingress_ethertype":"IPv4","sctp-b-ipv6-ingress_rule_application":"any","domain_name":"default-domain","sctp-a-egress_src_addresses":"local","sctp-b-egress-src_start_port":"0.0","sctp-a-ingress_rule_protocol":"icmp","sctp-b-display_name":"epc-sctp-b-ipv4v6-sec-group","sctp-b-ipv6-ingress-dst_end_port":"65535","sctp-a-ingress_ethertype":"IPv4","sctp-a-egress-src_start_port":"0.0","sctp-b-dst_subnet_prefix_v6":"::","nf_naming":"{ecomp_generated_naming=true}","sctp-a-ipv6-ingress_src_subnet_prefix":"0.0.0.0","sctp-b-egress-dst_start_port":"0.0","ncb_flavor_name":"nv.c20r64d1","sctp-b-egress_dst_subnet_prefix_len":"0.0","gpb1_Internal1_mac":"00:11:22:EF:AC:DF","Internal2_net_cidr":"10.0.0.10","sctp-a-ingress-dst_start_port":"0.0","fsb1_Internal2_mac":"00:11:22:EF:AC:DF","sctp-a-egress-dst_start_port":"0.0","sctp-a-egress_ethertype":"IPv4","vlc_st_service_mode":"in-network-nat","sctp-a-ipv6-egress_ethertype":"IPv4","sctp-a-egress-src_end_port":"65535.0","sctp-b-egress_action":"pass","sctp-b-ipv6-egress_rule_application":"any","sctp-a-ingress-src_subnet_prefix_len":"0.0","sctp-b-ipv6-ingress-src_end_port":"65535.0","sctp-a-ipv6-ingress-src_start_port":"0.0","fsb2_Internal1_mac":"00:11:22:EF:AC:DF","sctp-b-name":"epc-sctp-b-ipv4v6-sec-group","sctp-b-ipv6-egress_ethertype":"IPv4","Internal1_net_cidr":"10.0.0.10","sctp-a-egress_dst_subnet_prefix":"0.0.0.0","fsb_flavor_name":"nv.c20r64d1","sctp_rule_protocol":"132","sctp-a-ipv6-ingress_rule_application":"any","sctp-b-ipv6-ingress_src_subnet_prefix_len":"0","ecomp_generated_naming":"true","sctp-a-IPv6_ethertype":"IPv6","vlc_st_virtualization_type":"virtual-machine","vlc2_Internal1_mac":"00:11:22:EF:AC:DF","sctp-b-ingress-dst_end_port":"65535.0","sctp-b-ingress-dst_start_port":"0.0","sctp-a-ipv6-ingress-src_end_port":"65535.0","sctp-a-display_name":"epc-sctp-a-ipv4v6-sec-group","sctp-b-ingress_rule_application":"any","vlc_flavor_name":"nd.c16r64d1","int2_sec_group_name":"int2-sec-group","sctp-b-ipv6-egress_src_addresses":"local","vlc_st_interface_type_int1":"other1","vlc_st_interface_type_int2":"other2","sctp-a-ipv6-egress-dst_start_port":"0","sctp-b-egress-src_end_port":"65535.0","sctp-a-ipv6-egress_dst_subnet_prefix_len":"0","Internal2_shared":"false","sctp-a-ipv6-egress_rule_protocol":"any","Internal2_rpf":"disable","vlc1_Internal1_mac":"00:11:22:EF:AC:DF","sctp-b-ipv6-egress_src_end_port":"65535","sctp-a-ipv6-egress_src_addresses":"local","sctp-a-ingress-dst_end_port":"65535.0","sctp-a-ipv6-egress_src_end_port":"65535","Internal1_forwarding_mode":"l2","Internal2_dhcp":"false","sctp-a-dst_subnet_prefix_v6":"::","pxe_image_name":"MME_PXE-Boot_16ACP04_GA.qcow2","vlc_st_interface_type_gtp":"other0","ncb1_Internal1_mac":"00:11:22:EF:AC:DF","sctp-b-src_subnet_prefix_v6":"::","sctp-a-egress_dst_subnet_prefix_len":"0.0","int1_sec_group_name":"int1-sec-group","Internal1_dhcp":"false","fsb2_Internal2_mac":"00:11:22:EF:AC:DF","Internal2_forwarding_mode":"l2","sctp-a-ipv6-egress_dst_end_port":"65535","sctp-b-egress_dst_subnet_prefix":"0.0.0.0","Internal1_net_cidr_len":"17","gpb2_Internal1_mac":"00:11:22:EF:AC:DF","sctp-a-ingress_dst_addresses":"local","sctp-b-ingress-src_subnet_prefix_len":"0.0","sctp-a-egress_action":"pass","fsb_volume_type_0":"SF-Default-SSD","ncb2_Internal2_mac":"00:11:22:EF:AC:DF","vlc_st_interface_type_sctp_a":"left","vlc_st_version":"2","sctp-a-src_subnet_prefix_v6":"::","vlc_st_interface_type_sctp_b":"right","sctp-a-ingress_rule_application":"any","sctp-b-egress_ethertype":"IPv4","sctp-a-ipv6-egress_src_start_port":"0","instance_ip_family_v6":"v6","gpb1_Internal2_mac":"00:11:22:EF:AC:DF","sctp-b-ingress-src_start_port":"0.0","fsb1_Internal1_mac":"00:11:22:EF:AC:DF","sctp-b-ingress_dst_addresses":"local","vlc_st_interface_type_oam":"management","multi_stage_design":"false","oam_sec_group_name":"oam-sec-group","Internal2_net_gateway":"10.0.0.10","sctp-a-ipv6-ingress-dst_end_port":"65535","Internal1_net_gateway":"10.0.0.10","sctp-b-ipv6-egress-dst_start_port":"0","sctp-b-ipv6-egress_rule_protocol":"any","gtp_sec_group_name":"gtp-sec-group","sctp-a-ipv6-egress_dst_subnet_prefix":"0.0.0.0","sctp-a-ipv6-ingress_dst_addresses":"local","sctp-b-ipv6-egress_dst_subnet_prefix_len":"0","sctp-b-ipv6-egress_action":"pass","sctp-a-egress_rule_protocol":"icmp","sctp-a-ipv6-egress_action":"pass","Internal1_shared":"false","sctp-b-ipv6-ingress_rule_protocol":"any","Internal2_net_cidr_len":"17","sctp-a-name":"epc-sctp-a-ipv4v6-sec-group","sctp-a-ingress-src_end_port":"65535.0","sctp-b-ipv6-ingress_src_subnet_prefix":"0.0.0.0","sctp-a-egress-dst_end_port":"65535.0","sctp-b-egress_rule_protocol":"icmp","sctp-a-ingress_action":"pass","sctp-b-ipv6-ingress_action":"pass","vlc_st_service_type":"firewall","sctp-b-ipv6-egress_dst_end_port":"65535","vlc2_Internal2_mac":"00:11:22:EF:AC:DF","sctp-b-ipv6-ingress-dst_start_port":"0","vlc_st_availability_zone":"true","sctp-b-ingress-src_subnet_prefix":"0.0.0.0","fsb_volume_image_name_1":"MME_FSB2_16ACP04_GA.qcow2","sctp-a-ipv6-ingress_src_subnet_prefix_len":"0","gpb_flavor_name":"nv.c20r64d1","Internal1_allow_transit":"true","availability_zone_max_count":"1","fsb_volume_image_name_0":"MME_FSB1_16ACP04_GA.qcow2","sctp-b-ipv6-ingress_dst_addresses":"local","sctp-b-ipv6-ingress_ethertype":"IPv4","sctp-b-ipv6-egress_dst_subnet_prefix":"0.0.0.0","sctp-a-ingress-src_subnet_prefix":"0.0.0.0","vlc1_Internal2_mac":"00:11:22:EF:AC:DF","sctp-a-ipv6-ingress_action":"pass","Internal1_rpf":"disable","sctp-b-ingress_ethertype":"IPv4","sctp-b-ingress-src_end_port":"65535.0","sctp-b-egress_rule_application":"any","sctp-a-ipv6-ingress_rule_protocol":"any","sctp-a-ingress-src_start_port":"0.0","sctp-b-egress-dst_end_port":"65535.0"}};
   }
 
   function getVNFInstance(){
-    return {"action":"None","instanceName":"4O61SmpFAdCm1oVEs","instanceId":"66cbb3b5-c823-470c-9520-4e0b85112250","orchStatus":null,"productFamilyId":null,"lcpCloudRegionId":null,"tenantId":null,"modelInfo":{"modelCustomizationName":"VF_vMee 0","modelInvariantId":"vnf-instance-model-invariant-id","modelVersionId":"d6557200-ecf2-4641-8094-5393ae3aae60","modelType":"vnf"},"instanceType":"7538ifdSoTccmbEkr","provStatus":null,"inMaint":true,"uuid":"d6557200-ecf2-4641-8094-5393ae3aae60","originalName":"VF_vMee 0","legacyRegion":null,"lineOfBusiness":null,"platformName":null,"trackById":"VF_vMee 0:004","vfModules":{"vf_vmee0..VfVmee..vmme_vlc..module-1":{"vf_vmee0..VfVmee..vmme_vlc..module-1:008":{"action":"None","instanceName":"ss820f_0918_db","instanceId":"2c1ca484-cbc2-408b-ab86-25a2c15ce280","orchStatus":"deleted","productFamilyId":null,"lcpCloudRegionId":null,"tenantId":null,"modelInfo":{"modelCustomizationName":"VfVmee..vmme_vlc..module-1","modelCustomizationId":"b200727a-1bf9-4e7c-bd06-b5f4c9d920b9","modelInvariantId":"09edc9ef-85d0-4b26-80de-1f569d49e750","modelVersionId":"522159d5-d6e0-4c2a-aa44-5a542a12a830","modelType":"vfModule"},"instanceType":null,"provStatus":null,"inMaint":true,"uuid":"522159d5-d6e0-4c2a-aa44-5a542a12a830","originalName":"VfVmee..vmme_vlc..module-1","legacyRegion":null,"lineOfBusiness":null,"platformName":null,"trackById":"vf_vmee0..VfVmee..vmme_vlc..module-1:008","isBase":false,"volumeGroupName":null}},"dc229cd8-c132-4455-8517-5c1787c18b14":{"dc229cd8-c132-4455-8517-5c1787c18b14:009":{"action":"None","instanceName":"ss820f_0918_base","instanceId":"3ef042c4-259f-45e0-9aba-0989bd8d1cc5","orchStatus":"Assigned","productFamilyId":null,"lcpCloudRegionId":null,"tenantId":null,"modelInfo":{"modelCustomizationId":"8ad8670b-0541-4499-8101-275bbd0e8b6a","modelInvariantId":"1e463c9c-404d-4056-ba56-28fd102608de","modelVersionId":"dc229cd8-c132-4455-8517-5c1787c18b14","modelType":"vfModule"},"instanceType":null,"provStatus":null,"inMaint":false,"uuid":"dc229cd8-c132-4455-8517-5c1787c18b14","originalName":null,"legacyRegion":null,"lineOfBusiness":null,"platformName":null,"trackById":"dc229cd8-c132-4455-8517-5c1787c18b14:009","isBase":true,"volumeGroupName":null}}},"networks":{}};
+    return {"action":"None","instanceName":"4O61SmpFAdCm1oVEs","instanceId":"66cbb3b5-c823-470c-9520-4e0b85112250","orchStatus":null,"productFamilyId":null,"lcpCloudRegionId":null,"tenantId":null,"modelInfo":{"modelCustomizationName":"VF_vGeraldine 0","modelInvariantId":"vnf-instance-model-invariant-id","modelVersionId":"d6557200-ecf2-4641-8094-5393ae3aae60","modelType":"vnf"},"instanceType":"7538ifdSoTccmbEkr","provStatus":null,"inMaint":true,"uuid":"d6557200-ecf2-4641-8094-5393ae3aae60","originalName":"VF_vGeraldine 0","legacyRegion":null,"lineOfBusiness":null,"platformName":null,"trackById":"VF_vGeraldine 0:004","vfModules":{"vf_vgeraldine0..VfVgeraldine..vflorence_vlc..module-1":{"vf_vgeraldine0..VfVgeraldine..vflorence_vlc..module-1:008":{"action":"None","instanceName":"ss820f_0918_db","instanceId":"2c1ca484-cbc2-408b-ab86-25a2c15ce280","orchStatus":"deleted","productFamilyId":null,"lcpCloudRegionId":null,"tenantId":null,"modelInfo":{"modelCustomizationName":"VfVgeraldine..vflorence_vlc..module-1","modelCustomizationId":"b200727a-1bf9-4e7c-bd06-b5f4c9d920b9","modelInvariantId":"09edc9ef-85d0-4b26-80de-1f569d49e750","modelVersionId":"522159d5-d6e0-4c2a-aa44-5a542a12a830","modelType":"vfModule"},"instanceType":null,"provStatus":null,"inMaint":true,"uuid":"522159d5-d6e0-4c2a-aa44-5a542a12a830","originalName":"VfVgeraldine..vflorence_vlc..module-1","legacyRegion":null,"lineOfBusiness":null,"platformName":null,"trackById":"vf_vgeraldine0..VfVgeraldine..vflorence_vlc..module-1:008","isBase":false,"volumeGroupName":null}},"dc229cd8-c132-4455-8517-5c1787c18b14":{"dc229cd8-c132-4455-8517-5c1787c18b14:009":{"action":"None","instanceName":"ss820f_0918_base","instanceId":"3ef042c4-259f-45e0-9aba-0989bd8d1cc5","orchStatus":"Assigned","productFamilyId":null,"lcpCloudRegionId":null,"tenantId":null,"modelInfo":{"modelCustomizationId":"8ad8670b-0541-4499-8101-275bbd0e8b6a","modelInvariantId":"1e463c9c-404d-4056-ba56-28fd102608de","modelVersionId":"dc229cd8-c132-4455-8517-5c1787c18b14","modelType":"vfModule"},"instanceType":null,"provStatus":null,"inMaint":false,"uuid":"dc229cd8-c132-4455-8517-5c1787c18b14","originalName":null,"legacyRegion":null,"lineOfBusiness":null,"platformName":null,"trackById":"dc229cd8-c132-4455-8517-5c1787c18b14:009","isBase":true,"volumeGroupName":null}}},"networks":{}};
   }
 
   function getVFModule(){
-    return {"uuid":"522159d5-d6e0-4c2a-aa44-5a542a12a830","invariantUuid":"98a7c88b-b577-476a-90e4-e25a5871e02b","customizationUuid":"55b1be94-671a-403e-a26c-667e9c47d091","description":null,"name":"VfVmee..vmme_vlc..module-1","version":"2","modelCustomizationName":"VfVmee..vmme_vlc..module-1","properties":{"minCountInstances":0,"maxCountInstances":null,"initialCount":0,"vfModuleLabel":"vmme_vlc","baseModule":false},"inputs":{},"volumeGroupAllowed":false};
+    return {"uuid":"522159d5-d6e0-4c2a-aa44-5a542a12a830","invariantUuid":"98a7c88b-b577-476a-90e4-e25a5871e02b","customizationUuid":"55b1be94-671a-403e-a26c-667e9c47d091","description":null,"name":"VfVgeraldine..vflorence_vlc..module-1","version":"2","modelCustomizationName":"VfVgeraldine..vflorence_vlc..module-1","properties":{"minCountInstances":0,"maxCountInstances":null,"initialCount":0,"vfModuleLabel":"vflorence_vlc","baseModule":false},"inputs":{},"volumeGroupAllowed":false};
   }
 
   function getVFModuleInstance() {
-    return{"action":"None","instanceName":"ss820f_0918_db","instanceId":"2c1ca484-cbc2-408b-ab86-25a2c15ce280","orchStatus":"deleted","productFamilyId":null,"lcpCloudRegionId":null,"tenantId":null,"modelInfo":{"modelCustomizationName":"VfVmee..vmme_vlc..module-1","modelCustomizationId":"b200727a-1bf9-4e7c-bd06-b5f4c9d920b9","modelInvariantId":"09edc9ef-85d0-4b26-80de-1f569d49e750","modelVersionId":"522159d5-d6e0-4c2a-aa44-5a542a12a830","modelType":"vfModule"},"instanceType":null,"provStatus":null,"inMaint":true,"uuid":"522159d5-d6e0-4c2a-aa44-5a542a12a830","originalName":"VfVmee..vmme_vlc..module-1","legacyRegion":null,"lineOfBusiness":null,"platformName":null,"trackById":"vf_vmee0..VfVmee..vmme_vlc..module-1:008","isBase":false,"volumeGroupName":null};
+    return{"action":"None","instanceName":"ss820f_0918_db","instanceId":"2c1ca484-cbc2-408b-ab86-25a2c15ce280","orchStatus":"deleted","productFamilyId":null,"lcpCloudRegionId":null,"tenantId":null,"modelInfo":{"modelCustomizationName":"VfVgeraldine..vflorence_vlc..module-1","modelCustomizationId":"b200727a-1bf9-4e7c-bd06-b5f4c9d920b9","modelInvariantId":"09edc9ef-85d0-4b26-80de-1f569d49e750","modelVersionId":"522159d5-d6e0-4c2a-aa44-5a542a12a830","modelType":"vfModule"},"instanceType":null,"provStatus":null,"inMaint":true,"uuid":"522159d5-d6e0-4c2a-aa44-5a542a12a830","originalName":"VfVgeraldine..vflorence_vlc..module-1","legacyRegion":null,"lineOfBusiness":null,"platformName":null,"trackById":"vf_vgeraldine0..VfVgeraldine..vflorence_vlc..module-1:008","isBase":false,"volumeGroupName":null};
   }
 
   function getNetworkModel(){
@@ -265,7 +265,7 @@ describe("Audit info modal component service", () => {
   }
 
   function getVNFGroupModel(){
-    return {"name":"groupingservicefortest..ResourceInstanceGroup..0","version":"1","uuid":"daeb6568-cef8-417f-9075-ed259ce59f48","invariantUuid":"4bb2e27e-ddab-4790-9c6d-1f731bc14a45","max":1,"min":0,"isEcompGeneratedNaming":true,"type":"VnfGroup","modelCustomizationName":"groupingservicefortest..ResourceInstanceGroup..0","properties":{"contained_resource_type":"VF","role":"SERVICE-ACCESS","function":"DATA","description":"DDD0","type":"LOAD-GROUP","ecomp_generated_naming":"true"},"members":{"vdbe_svc_vprs_proxy 0":{"uuid":"65fadfa8-a0d9-443f-95ad-836cd044e26c","invariantUuid":"f4baae0c-b3a5-4ca1-a777-afbffe7010bc","description":"A Proxy for Service vDBE_Svc_vPRS","name":"vDBE_Svc_vPRS Service Proxy","version":"1.0","customizationUuid":"bdb63d23-e132-4ce7-af2c-a493b4cafac9","inputs":{},"commands":{},"properties":{"ecomp_generated_naming":"false"},"type":"Service Proxy","sourceModelUuid":"da7827a2-366d-4be6-8c68-a69153c61274","sourceModelInvariant":"24632e6b-584b-4f45-80d4-fefd75fd9f14","sourceModelName":"vDBE_Svc_vPRS"}}};
+    return {"name":"groupingservicefortest..ResourceInstanceGroup..0","version":"1","uuid":"daeb6568-cef8-417f-9075-ed259ce59f48","invariantUuid":"4bb2e27e-ddab-4790-9c6d-1f731bc14a45","max":1,"min":0,"isEcompGeneratedNaming":true,"type":"VnfGroup","modelCustomizationName":"groupingservicefortest..ResourceInstanceGroup..0","properties":{"contained_resource_type":"VF","role":"SERVICE-ACCESS","function":"DATA","description":"DDD0","type":"LOAD-GROUP","ecomp_generated_naming":"true"},"members":{"vdorothea_svc_vprs_proxy 0":{"uuid":"65fadfa8-a0d9-443f-95ad-836cd044e26c","invariantUuid":"f4baae0c-b3a5-4ca1-a777-afbffe7010bc","description":"A Proxy for Service vDOROTHEA_Svc_vPRS","name":"vDOROTHEA_Svc_vPRS Service Proxy","version":"1.0","customizationUuid":"bdb63d23-e132-4ce7-af2c-a493b4cafac9","inputs":{},"commands":{},"properties":{"ecomp_generated_naming":"false"},"type":"Service Proxy","sourceModelUuid":"da7827a2-366d-4be6-8c68-a69153c61274","sourceModelInvariant":"24632e6b-584b-4f45-80d4-fefd75fd9f14","sourceModelName":"vDOROTHEA_Svc_vPRS"}}};
   }
 
   function getVNFGroupInstance(){
index ecce68d..5e39ee3 100644 (file)
@@ -17,6 +17,7 @@ import {ServiceInfoModel} from "../../server/serviceInfo/serviceInfo.model";
 import {HttpClient} from '@angular/common/http';
 import {getTestBed} from "@angular/core/testing";
 import {of} from 'rxjs';
+import {NodeInstance} from "../../models/nodeInstance";
 
 class MockAppStore<T> {
   getState() {
@@ -126,23 +127,21 @@ describe('Audit Info Modal Component_serviceInfoService', () => {
     const instanceId: string = "instanceID";
     const type: string = 'VNF';
     const model = {};
-    const instance = {};
-    const isInstanceFailed: boolean = true;
-    const trackById = "trackById";
+    const instance: NodeInstance = new NodeInstance();
+    instance.trackById = 'trackById';
+    instance.isFailed= true;
 
     AuditInfoModalComponent.openInstanceAuditInfoModal.next({
       instanceId: instanceId,
       type: type,
       model: model,
-      instance: instance,
-      isInstanceFailed: isInstanceFailed,
-      trackById: trackById
+      instance: instance
     });
 
     expect(component.showVidStatus).toEqual(false);
     expect(component.initializeProperties).toHaveBeenCalled();
     expect(component.setModalTitles).toHaveBeenCalled();
-    expect(_serviceInfoService.getAuditStatusForRetry).toHaveBeenCalledWith(trackById);
+    expect(_serviceInfoService.getAuditStatusForRetry).toHaveBeenCalledWith(instance.trackById);
     expect(component.auditInfoModal.show).toHaveBeenCalled();
     expect(AuditInfoModalComponentService.getInstanceModelName).toHaveBeenCalledWith(model);
   });
@@ -160,16 +159,12 @@ describe('Audit Info Modal Component_serviceInfoService', () => {
     const type: string = 'VNF';
     const model = {};
     const instance = {};
-    const isInstanceFailed: boolean = false;
-    const trackById = "trackById";
 
     AuditInfoModalComponent.openInstanceAuditInfoModal.next({
       instanceId: instanceId,
       type: type,
       model: model,
-      instance: instance,
-      isInstanceFailed: isInstanceFailed,
-      trackById: trackById
+      instance: instance
     });
 
     expect(component.showVidStatus).toEqual(false);
index cf385d7..95e9825 100644 (file)
@@ -18,7 +18,7 @@ import {AuditInfoModalComponentService} from "./auditInfoModal.component.service
 })
 export class AuditInfoModalComponent {
   static openModal: Subject<ServiceInfoModel> = new Subject<ServiceInfoModel>();
-  static openInstanceAuditInfoModal: Subject<{instanceId , type, model, instance, isInstanceFailed?, trackById?}> = new Subject<{instanceId , type, model, instance, isInstanceFailed, trackById}>();
+  static openInstanceAuditInfoModal: Subject<{instanceId , type, model, instance}> = new Subject<{instanceId , type, model, instance}>();
   @ViewChild('auditInfoModal') public auditInfoModal: ModalDirective;
   title: string = 'Service Instantiation Information';
   modelInfoItems: ModelInformationItem[] = [];
@@ -55,14 +55,14 @@ export class AuditInfoModalComponent {
       }
     });
 
-    AuditInfoModalComponent.openInstanceAuditInfoModal.subscribe(({instanceId  , type ,  model, instance, isInstanceFailed, trackById}) => {
+    AuditInfoModalComponent.openInstanceAuditInfoModal.subscribe(({instanceId  , type ,  model, instance}) => {
       this.showVidStatus = false;
       this.initializeProperties();
       this.setModalTitles(type);
       this.serviceModelName = AuditInfoModalComponentService.getInstanceModelName(model);
 
-      if (isInstanceFailed) {
-        this._serviceInfoService.getAuditStatusForRetry(trackById).subscribe((res: AuditStatus) => {
+      if (instance.isFailed) {
+        this._serviceInfoService.getAuditStatusForRetry(instance.trackById).subscribe((res: AuditStatus) => {
           this.msoInfoData = [res];
         });
       }else{
@@ -116,7 +116,7 @@ export class AuditInfoModalComponent {
 
 
   onNavigate(){
-    window.open("https://wiki.onap.org/display/DW/SO+Building+blocks", "_blank");
+    window.open("http://ecompguide.web.att.com:8000/#ecomp_ug/c_ecomp_ops_vid.htmll#r_ecomp_ops_vid_bbglossary", "_blank");
   }
 }
 
index bce0695..07f4d48 100644 (file)
@@ -10,6 +10,7 @@ import * as _ from 'lodash';
           class="ellipsis"
           id="{{id}}"
           [innerHtml]="displayValue | safe : 'html'"
+          [ngClass]="{'breakWord' : breakWord == true}"
           [tooltip-text]="value">
       </span>`,
   styles : [
@@ -22,6 +23,11 @@ import * as _ from 'lodash';
         width: 99%;
         text-align: left;
       }
+      
+      .breakWord {
+        word-wrap: break-word;
+        white-space: normal;
+      }
     `
   ],
   providers : [HighlightPipe]
@@ -30,6 +36,7 @@ export class EllipsisComponent implements OnChanges{
   @Input() value : string;
   @Input() id : string;
   @Input() hightlight : string;
+  @Input() breakWord : boolean = false;
 
   displayValue : string;
   constructor(private _highlightPipe : HighlightPipe){
index daa35e6..a81e8c8 100644 (file)
@@ -1,4 +1,4 @@
 <div  *ngIf="message">
     <span class="icon-alert"></span>
-    <span class="message">{{message}}</span>
+    <span class="message" data-tests-id="no-results-error">{{message}}</span>
 </div>
index 6d13e52..12f62a9 100644 (file)
@@ -6,7 +6,7 @@
           [attr.data-tests-id]="data?.dataTestId"
           name="{{data?.name}}"
           [formControl]="form.controls[data.controlName]"
-          [ngClass]="{'error-style' : (form?.controls[data?.controlName]?.touched && form?.controls[data?.controlName]?.errors) || data?.hasEmptyOptions ,
+          [ngClass]="{'error-style' : ((form?.controls[data?.controlName]?.touched && form?.controls[data?.controlName]?.errors) || data?.hasEmptyOptions) &&  data?.isRequired(),
                       'grayColor': form?.controls[data?.controlName]?.value == null || form?.controls[data?.controlName]?.value == undefined,
                       'blackColor' : form?.controls[data?.controlName]?.value != null}"
           (blur)="data.onBlur()">
@@ -16,6 +16,5 @@
             [value]="option[data.ngValue]" [disabled]="!option?.isPermitted && option?.isPermitted != undefined">{{option.name}}
     </option>
   </select>
-  <form-control-error *ngIf="data?.hasEmptyOptions" [message]="'No results for this request. Please change criteria.'"></form-control-error>
+  <form-control-error *ngIf="data?.hasEmptyOptions && data?.isRequired()" [message]="'No results for this request. Please change criteria.'"></form-control-error>
 </div>
-
index 550feca..8148368 100644 (file)
@@ -11,11 +11,13 @@ export class DropdownFormControlComponent implements OnChanges{
   @Input() data: DropdownFormControl = null;
   @Input() form: FormGroup = null;
 
+
   ngOnChanges(changes: SimpleChanges): void {
     if (changes["data"] !== undefined && changes["data"].currentValue !== changes["data"].previousValue && changes["data"].firstChange) {
       if(this.data.onInit){
         this.data.onInit(this.data, this.form);
       }
+      let isRequired: boolean =this.data.isRequired();
     }
 
     if (changes["data"] !== undefined) {
index 4189fba..fc2eed4 100644 (file)
@@ -33,13 +33,13 @@ describe('Basic Control Generator', () => {
   })().then(done).catch(done.fail));
 
 
-  test('getlegacyRegion with JANET25 - isVisible true', () => {
-    const instance = {lcpCloudRegionId : 'JANET25'};
+  test('getlegacyRegion with AAIAIC25 - isVisible true', () => {
+    const instance = {lcpCloudRegionId : 'AAIAIC25'};
     const legacyRegionControl: FormControlModel = service.getLegacyRegion(instance);
     expect(legacyRegionControl.isVisible).toBeTruthy();
   });
 
-  test('getlegacyRegion without JANET25 - isVisible false', () => {
+  test('getlegacyRegion without AAIAIC25 - isVisible false', () => {
     const instance = {lcpCloudRegionId : 'olson3'};
     const legacyRegionControl: FormControlModel = service.getLegacyRegion(instance);
     expect(legacyRegionControl.isVisible).toBeFalsy();
index 783f54b..5b64aea 100644 (file)
@@ -23,15 +23,10 @@ class MockAppStore<T> {
       "FLAG_NETWORK_TO_ASYNC_INSTANTIATION": false,
       "FLAG_SHOW_ASSIGNMENTS": true,
       "FLAG_FABRIC_CONFIGURATION_ASSIGNMENTS": true,
-      "FLAG_UNASSIGN_SERVICE": true,
       "FLAG_SHOW_VERIFY_SERVICE": false,
-      "FLAG_COLLECTION_RESOURCE_SUPPORT": true,
-      "FLAG_DUPLICATE_VNF": true,
       "FLAG_SERVICE_MODEL_CACHE": true,
       "CREATE_INSTANCE_TEST": false,
       "FLAG_SETTING_DEFAULTS_IN_DRAWING_BOARD": false,
-      "FLAG_ASYNC_INSTANTIATION": true,
-      "FLAG_ASYNC_JOBS": true,
       "EMPTY_DRAWING_BOARD_TEST": false,
       "FLAG_ADD_MSO_TESTAPI_FIELD": true
     },
@@ -55,11 +50,11 @@ class MockAppStore<T> {
           "inputs": {}
         },
         "vnfs": {
-          "VF_vMee 0": {
+          "VF_vGeraldine 0": {
             "uuid": "d6557200-ecf2-4641-8094-5393ae3aae60",
             "invariantUuid": "4160458e-f648-4b30-a176-43881ffffe9e",
-            "description": "VSP_vMee",
-            "name": "VF_vMee",
+            "description": "VSP_vGeraldine",
+            "name": "VF_vGeraldine",
             "version": "2.0",
             "customizationUuid": "91415b44-753d-494c-926a-456a9172bbb9",
             "inputs": {},
@@ -230,74 +225,74 @@ class MockAppStore<T> {
               "sctp-b-egress-dst_end_port": "65535.0"
             },
             "type": "VF",
-            "modelCustomizationName": "VF_vMee 0",
+            "modelCustomizationName": "VF_vGeraldine 0",
             "vfModules": {
-              "vf_vmee0..VfVmee..vmme_vlc..module-1": {
+              "vf_vgeraldine0..VfVgeraldine..vflorence_vlc..module-1": {
                 "uuid": "522159d5-d6e0-4c2a-aa44-5a542a12a830",
                 "invariantUuid": "98a7c88b-b577-476a-90e4-e25a5871e02b",
                 "customizationUuid": "55b1be94-671a-403e-a26c-667e9c47d091",
                 "description": null,
-                "name": "VfVmee..vmme_vlc..module-1",
+                "name": "VfVgeraldine..vflorence_vlc..module-1",
                 "version": "2",
-                "modelCustomizationName": "VfVmee..vmme_vlc..module-1",
+                "modelCustomizationName": "VfVgeraldine..vflorence_vlc..module-1",
                 "properties": {
                   "minCountInstances": 0,
                   "maxCountInstances": null,
                   "initialCount": 0,
-                  "vfModuleLabel": "vmme_vlc"
+                  "vfModuleLabel": "vflorence_vlc"
                 },
                 "inputs": {},
                 "volumeGroupAllowed": true
               },
-              "vf_vmee0..VfVmee..vmme_gpb..module-2": {
+              "vf_vgeraldine0..VfVgeraldine..vflorence_gpb..module-2": {
                 "uuid": "41708296-e443-4c71-953f-d9a010f059e1",
                 "invariantUuid": "1cca90b8-3490-495e-87da-3f3e4c57d5b9",
                 "customizationUuid": "6add59e0-7fe1-4bc4-af48-f8812422ae7c",
                 "description": null,
-                "name": "VfVmee..vmme_gpb..module-2",
+                "name": "VfVgeraldine..vflorence_gpb..module-2",
                 "version": "2",
-                "modelCustomizationName": "VfVmee..vmme_gpb..module-2",
+                "modelCustomizationName": "VfVgeraldine..vflorence_gpb..module-2",
                 "properties": {
                   "minCountInstances": 0,
                   "maxCountInstances": null,
                   "initialCount": 0,
-                  "vfModuleLabel": "vmme_gpb"
+                  "vfModuleLabel": "vflorence_gpb"
                 },
                 "inputs": {},
                 "volumeGroupAllowed": false
               },
-              "vf_vmee0..VfVmee..base_vmme..module-0": {
+              "vf_vgeraldine0..VfVgeraldine..base_vflorence..module-0": {
                 "uuid": "a27f5cfc-7f12-4f99-af08-0af9c3885c87",
                 "invariantUuid": "a6f9e51a-2b35-416a-ae15-15e58d61f36d",
                 "customizationUuid": "f8c040f1-7e51-4a11-aca8-acf256cfd861",
                 "description": null,
-                "name": "VfVmee..base_vmme..module-0",
+                "name": "VfVgeraldine..base_vflorence..module-0",
                 "version": "2",
-                "modelCustomizationName": "VfVmee..base_vmme..module-0",
+                "modelCustomizationName": "VfVgeraldine..base_vflorence..module-0",
                 "properties": {
                   "minCountInstances": 1,
                   "maxCountInstances": 1,
                   "initialCount": 1,
-                  "vfModuleLabel": "base_vmme"
+                  "vfModuleLabel": "base_vflorence"
                 },
                 "inputs": {},
                 "volumeGroupAllowed": true
               }
             },
             "volumeGroups": {
-              "vf_vmee0..VfVmee..base_vmme..module-0": {
+              "vf_vgeraldine0..VfVgeraldine..base_vflorence..module-0": {
                 "uuid": "a27f5cfc-7f12-4f99-af08-0af9c3885c87",
                 "invariantUuid": "a6f9e51a-2b35-416a-ae15-15e58d61f36d",
                 "customizationUuid": "f8c040f1-7e51-4a11-aca8-acf256cfd861",
                 "description": null,
-                "name": "VfVmee..base_vmme..module-0",
+                "name": "VfVgeraldine..base_vflorence..module-0",
                 "version": "2",
-                "modelCustomizationName": "VfVmee..base_vmme..module-0",
+                "modelCustomizationName": "VfVgeraldine..base_vflorence..module-0",
                 "properties": {
                   "minCountInstances": 1,
                   "maxCountInstances": 1,
                   "initialCount": 1,
-                  "vfModuleLabel": "base_vmme"
+                  "vfModuleLabel": "base_vflorence"
                 },
                 "inputs": {}
               }
@@ -345,7 +340,7 @@ class MockAppStore<T> {
             "modelCustomizationName": "ExtVL 0"
           }
         },
-        "collectionResource": {},
+        "collectionResources": {},
         "configurations": {
           "Port Mirroring Configuration By Policy 0": {
             "uuid": "b4398538-e89d-4f13-b33d-ca323434ba50",
@@ -366,72 +361,72 @@ class MockAppStore<T> {
         },
         "serviceProxies": {},
         "vfModules": {
-          "vf_vmee0..VfVmee..vmme_vlc..module-1": {
+          "vf_vgeraldine0..VfVgeraldine..vflorence_vlc..module-1": {
             "uuid": "522159d5-d6e0-4c2a-aa44-5a542a12a830",
             "invariantUuid": "98a7c88b-b577-476a-90e4-e25a5871e02b",
             "customizationUuid": "55b1be94-671a-403e-a26c-667e9c47d091",
             "description": null,
-            "name": "VfVmee..vmme_vlc..module-1",
+            "name": "VfVgeraldine..vflorence_vlc..module-1",
             "version": "2",
-            "modelCustomizationName": "VfVmee..vmme_vlc..module-1",
+            "modelCustomizationName": "VfVgeraldine..vflorence_vlc..module-1",
             "properties": {
               "minCountInstances": 0,
               "maxCountInstances": null,
               "initialCount": 0,
-              "vfModuleLabel": "vmme_vlc"
+              "vfModuleLabel": "vflorence_vlc"
             },
             "inputs": {},
             "volumeGroupAllowed": true
           },
-          "vf_vmee0..VfVmee..vmme_gpb..module-2": {
+          "vf_vgeraldine0..VfVgeraldine..vflorence_gpb..module-2": {
             "uuid": "41708296-e443-4c71-953f-d9a010f059e1",
             "invariantUuid": "1cca90b8-3490-495e-87da-3f3e4c57d5b9",
             "customizationUuid": "6add59e0-7fe1-4bc4-af48-f8812422ae7c",
             "description": null,
-            "name": "VfVmee..vmme_gpb..module-2",
+            "name": "VfVgeraldine..vflorence_gpb..module-2",
             "version": "2",
-            "modelCustomizationName": "VfVmee..vmme_gpb..module-2",
+            "modelCustomizationName": "VfVgeraldine..vflorence_gpb..module-2",
             "properties": {
               "minCountInstances": 0,
               "maxCountInstances": null,
               "initialCount": 0,
-              "vfModuleLabel": "vmme_gpb"
+              "vfModuleLabel": "vflorence_gpb"
             },
             "inputs": {},
             "volumeGroupAllowed": false
           },
-          "vf_vmee0..VfVmee..base_vmme..module-0": {
+          "vf_vgeraldine0..VfVgeraldine..base_vflorence..module-0": {
             "uuid": "a27f5cfc-7f12-4f99-af08-0af9c3885c87",
             "invariantUuid": "a6f9e51a-2b35-416a-ae15-15e58d61f36d",
             "customizationUuid": "f8c040f1-7e51-4a11-aca8-acf256cfd861",
             "description": null,
-            "name": "VfVmee..base_vmme..module-0",
+            "name": "VfVgeraldine..base_vflorence..module-0",
             "version": "2",
-            "modelCustomizationName": "VfVmee..base_vmme..module-0",
+            "modelCustomizationName": "VfVgeraldine..base_vflorence..module-0",
             "properties": {
               "minCountInstances": 1,
               "maxCountInstances": 1,
               "initialCount": 1,
-              "vfModuleLabel": "base_vmme"
+              "vfModuleLabel": "base_vflorence"
             },
             "inputs": {},
             "volumeGroupAllowed": true
           }
         },
         "volumeGroups": {
-          "vf_vmee0..VfVmee..base_vmme..module-0": {
+          "vf_vgeraldine0..VfVgeraldine..base_vflorence..module-0": {
             "uuid": "a27f5cfc-7f12-4f99-af08-0af9c3885c87",
             "invariantUuid": "a6f9e51a-2b35-416a-ae15-15e58d61f36d",
             "customizationUuid": "f8c040f1-7e51-4a11-aca8-acf256cfd861",
             "description": null,
-            "name": "VfVmee..base_vmme..module-0",
+            "name": "VfVgeraldine..base_vflorence..module-0",
             "version": "2",
-            "modelCustomizationName": "VfVmee..base_vmme..module-0",
+            "modelCustomizationName": "VfVgeraldine..base_vflorence..module-0",
             "properties": {
               "minCountInstances": 1,
               "maxCountInstances": 1,
               "initialCount": 1,
-              "vfModuleLabel": "base_vmme"
+              "vfModuleLabel": "base_vflorence"
             },
             "inputs": {}
           }
@@ -443,21 +438,21 @@ class MockAppStore<T> {
       "6e59c5de-f052-46fa-aa7e-2fca9d674c44": {
         "networks" : {},
         "vnfs": {
-          "VF_vMee 0": {
+          "VF_vGeraldine 0": {
             "rollbackOnFailure": "true",
             "vfModules": {
-              "vf_vmee0..VfVmee..base_vmme..module-0": {
-                "vf_vmee0..VfVmee..base_vmme..module-0vmvzo": {
+              "vf_vgeraldine0..VfVgeraldine..base_vflorence..module-0": {
+                "vf_vgeraldine0..VfVgeraldine..base_vflorence..module-0vmvzo": {
                   "isMissingData": false,
                   "sdncPreReload": null,
                   "modelInfo": {
                     "modelType": "VFmodule",
                     "modelInvariantId": "a6f9e51a-2b35-416a-ae15-15e58d61f36d",
                     "modelVersionId": "a27f5cfc-7f12-4f99-af08-0af9c3885c87",
-                    "modelName": "VfVmee..base_vmme..module-0",
+                    "modelName": "VfVgeraldine..base_vflorence..module-0",
                     "modelVersion": "2",
                     "modelCustomizationId": "f8c040f1-7e51-4a11-aca8-acf256cfd861",
-                    "modelCustomizationName": "VfVmee..base_vmme..module-0"
+                    "modelCustomizationName": "VfVgeraldine..base_vflorence..module-0"
                   },
                   "instanceParams": [
                     {}
@@ -467,8 +462,8 @@ class MockAppStore<T> {
               }
             },
             "isMissingData": true,
-            "originalName": "VF_vMee 0",
-            "vnfStoreKey": "VF_vMee 0",
+            "originalName": "VF_vGeraldine 0",
+            "vnfStoreKey": "VF_vGeraldine 0",
             "trackById": "p3wk448m5do",
             "uuid": "d6557200-ecf2-4641-8094-5393ae3aae60",
             "productFamilyId": "36b4733a-53f4-4cc8-8ff0-9172e5fc4b8e",
@@ -480,9 +475,9 @@ class MockAppStore<T> {
               "modelType": "VF",
               "modelInvariantId": "4160458e-f648-4b30-a176-43881ffffe9e",
               "modelVersionId": "6e59c5de-f052-46fa-aa7e-2fca9d674c44",
-              "modelName": "VF_vMee",
+              "modelName": "VF_vGeraldine",
               "modelVersion": "2.0",
-              "modelCustomizationName": "VF_vMee 0"
+              "modelCustomizationName": "VF_vGeraldine 0"
             }
           }
         },
@@ -526,8 +521,8 @@ class MockAppStore<T> {
     "lcpRegionsAndTenants": {
       "lcpRegionList": [
         {
-          "id": "JANET25",
-          "name": "JANET25",
+          "id": "AAIAIC25",
+          "name": "AAIAIC25",
           "isPermitted": true
         },
         {
@@ -537,7 +532,7 @@ class MockAppStore<T> {
         }
         ],
       "lcpRegionsTenantsMap": {
-        "JANET25": [
+        "AAIAIC25": [
           {
             "id": "092eb9e8e4b7412e8787dd091bc58e86",
             "name": "USP-SIP-IC-24335-T-01",
@@ -551,8 +546,128 @@ class MockAppStore<T> {
             "isPermitted": true
           },
           {
-            "id": "d0a3e3f2964542259d155a81c41aadc3",
-            "name": "test-hvf6-09",
+            "id": "229bcdc6eaeb4ca59d55221141d01f8e",
+            "name": "AIN Web Tool-15-D-STTest2",
+            "isPermitted": true
+          },
+          {
+            "id": "1178612d2b394be4834ad77f567c0af2",
+            "name": "AIN Web Tool-15-D-SSPtestcustome",
+            "isPermitted": true
+          },
+          {
+            "id": "19c5ade915eb461e8af52fb2fd8cd1f2",
+            "name": "AIN Web Tool-15-D-UncheckedEcopm",
+            "isPermitted": true
+          },
+          {
+            "id": "de007636e25249238447264a988a927b",
+            "name": "AIN Web Tool-15-D-dfsdf",
+            "isPermitted": true
+          },
+          {
+            "id": "62f29b3613634ca6a3065cbe0e020c44",
+            "name": "AIN/SMS-16-D-Multiservices1",
+            "isPermitted": true
+          },
+          {
+            "id": "649289e30d3244e0b48098114d63c2aa",
+            "name": "AIN Web Tool-15-D-SSPST66",
+            "isPermitted": true
+          },
+          {
+            "id": "3f21eeea6c2c486bba31dab816c05a32",
+            "name": "AIN Web Tool-15-D-ASSPST47",
+            "isPermitted": true
+          },
+          {
+            "id": "f60ce21d3ee6427586cff0d22b03b773",
+            "name": "CESAR-100-D-sspjg67246",
+            "isPermitted": true
+          },
+          {
+            "id": "8774659e425f479895ae091bb5d46560",
+            "name": "CESAR-100-D-sspjg68359",
+            "isPermitted": true
+          },
+          {
+            "id": "624eb554b0d147c19ff8885341760481",
+            "name": "AINWebTool-15-D-iftach",
+            "isPermitted": true
+          },
+          {
+            "id": "214f55f5fc414c678059c383b03e4962",
+            "name": "CESAR-100-D-sspjg612401",
+            "isPermitted": true
+          },
+          {
+            "id": "c90666c291664841bb98e4d981ff1db5",
+            "name": "CESAR-100-D-sspjg621340",
+            "isPermitted": true
+          },
+          {
+            "id": "ce5b6bc5c7b348e1bf4b91ac9a174278",
+            "name": "sspjg621351cloned",
+            "isPermitted": true
+          },
+          {
+            "id": "b386b768a3f24c8e953abbe0b3488c02",
+            "name": "AINWebTool-15-D-eteancomp",
+            "isPermitted": true
+          },
+          {
+            "id": "dc6c4dbfd225474e9deaadd34968646c",
+            "name": "AINWebTool-15-T-SPFET",
+            "isPermitted": true
+          },
+          {
+            "id": "02cb5030e9914aa4be120bd9ed1e19eb",
+            "name": "AINWebTool-15-X-eeweww",
+            "isPermitted": true
+          },
+          {
+            "id": "f2f3830e4c984d45bcd00e1a04158a79",
+            "name": "CESAR-100-D-spjg61909",
+            "isPermitted": true
+          },
+          {
+            "id": "05b91bd5137f4929878edd965755c06d",
+            "name": "CESAR-100-D-sspjg621512cloned",
+            "isPermitted": true
+          },
+          {
+            "id": "7002fbe8482d4a989ddf445b1ce336e0",
+            "name": "AINWebTool-15-X-vdr",
+            "isPermitted": true
+          },
+          {
+            "id": "4008522be43741dcb1f5422022a2aa0b",
+            "name": "AINWebTool-15-D-ssasa",
+            "isPermitted": true
+          },
+          {
+            "id": "f44e2e96a1b6476abfda2fa407b00169",
+            "name": "AINWebTool-15-D-PFNPT",
+            "isPermitted": true
+          },
+          {
+            "id": "b69a52bec8a84669a37a1e8b72708be7",
+            "name": "AINWebTool-15-X-vdre",
+            "isPermitted": true
+          },
+          {
+            "id": "fac7d9fd56154caeb9332202dcf2969f",
+            "name": "AINWebTool-15-X-NONPODECOMP",
+            "isPermitted": true
+          },
+          {
+            "id": "2d34d8396e194eb49969fd61ffbff961",
+            "name": "DN5242-Nov16-T5",
+            "isPermitted": true
+          },
+          {
+            "id": "cb42a77ff45b48a8b8deb83bb64acc74",
+            "name": "ro-T11",
             "isPermitted": true
           },
           {
@@ -560,18 +675,28 @@ class MockAppStore<T> {
             "name": "ro-T112",
             "isPermitted": true
           },
+          {
+            "id": "4914ab0ab3a743e58f0eefdacc1dde77",
+            "name": "DN5242-Nov21-T1",
+            "isPermitted": true
+          },
+          {
+            "id": "d0a3e3f2964542259d155a81c41aadc3",
+            "name": "test-hvf6-09",
+            "isPermitted": true
+          },
           {
             "id": "cbb99fe4ada84631b7baf046b6fd2044",
             "name": "DN5242-Nov16-T3",
             "isPermitted": true
           }
-        ]
+          ]
       }
     },
     "productFamilies": [
       {
         "id": "ebc3bc3d-62fd-4a3f-a037-f619df4ff034",
-        "name": "SCOTTIE",
+        "name": "ERICA",
         "isPermitted": true
       },
       {
@@ -596,7 +721,7 @@ class MockAppStore<T> {
       },
       {
         "id": "323d69d9-2efe-4r45-ay0a-89ea7ard4e6f",
-        "name": "vSCP",
+        "name": "vEsmeralda",
         "isPermitted": true
       },
       {
@@ -640,7 +765,7 @@ class MockAppStore<T> {
         "isPermitted": true
       },
       {
-        "id": "Cisneros",
+        "id": "vMuriel",
         "name": "vMuriel",
         "isPermitted": true
       },
@@ -666,7 +791,7 @@ class MockAppStore<T> {
       },
       {
         "id": "d7bb0a21-66f2-4e6d-87d9-9ef3ced63ae4",
-        "name": "Josefina",
+        "name": "JOSEFINA",
         "isPermitted": true
       },
       {
@@ -714,7 +839,7 @@ class MockAppStore<T> {
         },
         {
           "id": "6",
-          "name": "vSEGW",
+          "name": "vPorfirio",
           "isPermitted": false
         },
         {
@@ -729,7 +854,7 @@ class MockAppStore<T> {
         },
         {
           "id": "9",
-          "name": "vMME",
+          "name": "vFLORENCE",
           "isPermitted": false
         },
         {
@@ -739,7 +864,7 @@ class MockAppStore<T> {
         },
         {
           "id": "11",
-          "name": "vSCP",
+          "name": "vEsmeralda",
           "isPermitted": false
         },
         {
@@ -749,7 +874,7 @@ class MockAppStore<T> {
         },
         {
           "id": "13",
-          "name": "vMMSC",
+          "name": "vWINIFRED",
           "isPermitted": false
         },
         {
@@ -792,6 +917,754 @@ class MockAppStore<T> {
         "id": "YYY1",
         "name": "UUUAIAAI-YYY1"
       },
+      {
+        "id": "BAN1",
+        "name": "VSDKYUTP-BAN1"
+      },
+      {
+        "id": "DKJ1",
+        "name": "DKJSJDKA-DKJ1"
+      },
+      {
+        "id": "MCS1",
+        "name": "ASACMAMS-MCS1"
+      },
+      {
+        "id": "UIO1",
+        "name": "uioclli1-UIO1"
+      },
+      {
+        "id": "RAJ1",
+        "name": "YGBIJNLQ-RAJ1"
+      },
+      {
+        "id": "OPA1",
+        "name": "opaclli1-OPA1"
+      },
+      {
+        "id": "SDE1",
+        "name": "ZXCVBNMA-SDE1"
+      },
+      {
+        "id": "VEN2",
+        "name": "FGHJUHIL-VEN2"
+      },
+      {
+        "id": "ORL1",
+        "name": "ORLDFLMA-ORL1"
+      },
+      {
+        "id": "JAD1",
+        "name": "JADECLLI-JAD1"
+      },
+      {
+        "id": "ZXL1",
+        "name": "LWLWCANN-ZXL1"
+      },
+      {
+        "id": "CKL1",
+        "name": "CLKSKCKK-CKL1"
+      },
+      {
+        "id": "SDF1",
+        "name": "sdfclli1-SDF1"
+      },
+      {
+        "id": "RAD1",
+        "name": "RADICAL1-RAD1"
+      },
+      {
+        "id": "KIT1",
+        "name": "BHYJFGLN-KIT1"
+      },
+      {
+        "id": "REL1",
+        "name": "INGERFGT-REL1"
+      },
+      {
+        "id": "JNL1",
+        "name": "CJALSDAC-JNL1"
+      },
+      {
+        "id": "OLK1",
+        "name": "OLKOLKLS-OLK1"
+      },
+      {
+        "id": "CHI1",
+        "name": "CHILLIWE-CHI1"
+      },
+      {
+        "id": "UUU4",
+        "name": "UUUAAAUU-UUU4"
+      },
+      {
+        "id": "TUF1",
+        "name": "TUFCLLI1-TUF1"
+      },
+      {
+        "id": "KJN1",
+        "name": "CKALDKSA-KJN1"
+      },
+      {
+        "id": "SAM1",
+        "name": "SNDGCA64-SAN1"
+      },
+      {
+        "id": "SCK1",
+        "name": "SCKSCKSK-SCK1"
+      },
+      {
+        "id": "HJH1",
+        "name": "AOEEQQQD-HJH1"
+      },
+      {
+        "id": "HGD1",
+        "name": "SDFQWHGD-HGD1"
+      },
+      {
+        "id": "KOR1",
+        "name": "HYFLNBVT-KOR1"
+      },
+      {
+        "id": "ATL43",
+        "name": "AICLOCID-ATL43"
+      },
+      {
+        "id": "ATL54",
+        "name": "AICFTAAI-ATL54"
+      },
+      {
+        "id": "ATL66",
+        "name": "CLLIAAII-ATL66"
+      },
+      {
+        "id": "VEL1",
+        "name": "BNMLKUIK-VEL1"
+      },
+      {
+        "id": "ICC1",
+        "name": "SANJITAT-ICC1"
+      },
+      {
+        "id": "MNT11",
+        "name": "WSXEFBTH-MNT11"
+      },
+      {
+        "id": "DEF2",
+        "name": "WSBHGTYL-DEF2"
+      },
+      {
+        "id": "MAD11",
+        "name": "SDFQWGKL-MAD11"
+      },
+      {
+        "id": "OLG1",
+        "name": "OLHOLHOL-OLG1"
+      },
+      {
+        "id": "GAR1",
+        "name": "NGFVSJKO-GAR1"
+      },
+      {
+        "id": "SAN22",
+        "name": "GNVLSCTL-SAN22"
+      },
+      {
+        "id": "HRG1",
+        "name": "HRGHRGGS-HRG1"
+      },
+      {
+        "id": "JCS1",
+        "name": "JCSJSCJS-JCS1"
+      },
+      {
+        "id": "DHA12",
+        "name": "WSXEDECF-DHA12"
+      },
+      {
+        "id": "HJE1",
+        "name": "AOEEWWWD-HJE1"
+      },
+      {
+        "id": "NCA1",
+        "name": "NCANCANN-NCA1"
+      },
+      {
+        "id": "IOP1",
+        "name": "iopclli1-IOP1"
+      },
+      {
+        "id": "RTY1",
+        "name": "rtyclli1-RTY1"
+      },
+      {
+        "id": "KAP1",
+        "name": "HIOUYTRQ-KAP1"
+      },
+      {
+        "id": "ZEN1",
+        "name": "ZENCLLI1-ZEN1"
+      },
+      {
+        "id": "HKA1",
+        "name": "JAKHLASS-HKA1"
+      },
+      {
+        "id": "CQK1",
+        "name": "CQKSCAKK-CQK1"
+      },
+      {
+        "id": "SAI1",
+        "name": "UBEKQLPD-SAI1"
+      },
+      {
+        "id": "ERT1",
+        "name": "ertclli1-ERT1"
+      },
+      {
+        "id": "IBB1",
+        "name": "PLMKOIJU-IBB1"
+      },
+      {
+        "id": "TIR2",
+        "name": "PLKINHYI-TIR2"
+      },
+      {
+        "id": "HSD1",
+        "name": "CHASKCDS-HSD1"
+      },
+      {
+        "id": "SLF78",
+        "name": "SDCTLFN1-SLF78"
+      },
+      {
+        "id": "SEE78",
+        "name": "SDCTEEE4-SEE78"
+      },
+      {
+        "id": "SAN13",
+        "name": "TOKYJPFA-SAN13"
+      },
+      {
+        "id": "SAA78",
+        "name": "SDCTAAA1-SAA78"
+      },
+      {
+        "id": "LUC1",
+        "name": "ATLDFGYC-LUC1"
+      },
+      {
+        "id": "AMD13",
+        "name": "MEMATLAN-AMD13"
+      },
+      {
+        "id": "TOR1",
+        "name": "TOROONXN-TOR1"
+      },
+      {
+        "id": "QWE1",
+        "name": "QWECLLI1-QWE1"
+      },
+      {
+        "id": "ZOG1",
+        "name": "ZOGASTRO-ZOG1"
+      },
+      {
+        "id": "CAL33",
+        "name": "CALIFORN-CAL33"
+      },
+      {
+        "id": "SHH78",
+        "name": "SDIT1HHH-SHH78"
+      },
+      {
+        "id": "DSA1",
+        "name": "LKJHGFDS-DSA1"
+      },
+      {
+        "id": "CLG1",
+        "name": "CLGRABAD-CLG1"
+      },
+      {
+        "id": "BNA1",
+        "name": "BNARAGBK-BNA1"
+      },
+      {
+        "id": "ATL84",
+        "name": "CANTTCOC-ATL84"
+      },
+      {
+        "id": "APP1",
+        "name": "WBHGTYUI-APP1"
+      },
+      {
+        "id": "RJN1",
+        "name": "RJNRBZAW-RJN1"
+      },
+      {
+        "id": "EHH78",
+        "name": "SDCSHHH5-EHH78"
+      },
+      {
+        "id": "mac10",
+        "name": "PKGTESTF-mac10"
+      },
+      {
+        "id": "SXB78",
+        "name": "SDCTGXB1-SXB78"
+      },
+      {
+        "id": "SAX78",
+        "name": "SDCTAXG1-SAX78"
+      },
+      {
+        "id": "SYD1",
+        "name": "SYDNAUBV-SYD1"
+      },
+      {
+        "id": "TOK1",
+        "name": "TOKYJPFA-TOK1"
+      },
+      {
+        "id": "KGM2",
+        "name": "KGMTNC20-KGM2"
+      },
+      {
+        "id": "DCC1b",
+        "name": "POIUYTGH-DCC1b"
+      },
+      {
+        "id": "SKK78",
+        "name": "SDCTKKK1-SKK78"
+      },
+      {
+        "id": "SGG78",
+        "name": "SDCTGGG1-SGG78"
+      },
+      {
+        "id": "SJJ78",
+        "name": "SDCTJJJ1-SJJ78"
+      },
+      {
+        "id": "SBX78",
+        "name": "SDCTBXG1-SBX78"
+      },
+      {
+        "id": "LAG1",
+        "name": "LARGIZON-LAG1"
+      },
+      {
+        "id": "IAA1",
+        "name": "QAZXSWED-IAA1"
+      },
+      {
+        "id": "POI1",
+        "name": "PLMNJKIU-POI1"
+      },
+      {
+        "id": "LAG1a",
+        "name": "LARGIZON-LAG1a"
+      },
+      {
+        "id": "PBL1",
+        "name": "PBLAPBAI-PBL1"
+      },
+      {
+        "id": "LAG45",
+        "name": "LARGIZON-LAG1a"
+      },
+      {
+        "id": "MAR1",
+        "name": "MNBVCXZM-MAR1"
+      },
+      {
+        "id": "HST70",
+        "name": "HSTNTX70-HST70"
+      },
+      {
+        "id": "DCC1a",
+        "name": "POIUYTGH-DCC1a"
+      },
+      {
+        "id": "TOL1",
+        "name": "TOLDOH21-TOL1"
+      },
+      {
+        "id": "LON1",
+        "name": "LONEENCO-LON1"
+      },
+      {
+        "id": "SJU78",
+        "name": "SDIT1JUB-SJU78"
+      },
+      {
+        "id": "STN27",
+        "name": "HSTNTX01-STN27"
+      },
+      {
+        "id": "SSW56",
+        "name": "ss8126GT-SSW56"
+      },
+      {
+        "id": "SBB78",
+        "name": "SDIT1BBB-SBB78"
+      },
+      {
+        "id": "DCC3",
+        "name": "POIUYTGH-DCC3"
+      },
+      {
+        "id": "GNV1",
+        "name": "GNVLSCTL-GNV1"
+      },
+      {
+        "id": "WAS1",
+        "name": "WASHDCSW-WAS1"
+      },
+      {
+        "id": "TOY1",
+        "name": "TORYONNZ-TOY1"
+      },
+      {
+        "id": "STT1",
+        "name": "STTLWA02-STT1"
+      },
+      {
+        "id": "STG1",
+        "name": "STTGGE62-STG1"
+      },
+      {
+        "id": "SLL78",
+        "name": "SDCTLLL1-SLL78"
+      },
+      {
+        "id": "SBU78",
+        "name": "SDIT1BUB-SBU78"
+      },
+      {
+        "id": "ATL2",
+        "name": "ATLNGANW-ATL2"
+      },
+      {
+        "id": "BOT1",
+        "name": "BOTHWAKY-BOT1"
+      },
+      {
+        "id": "SNG1",
+        "name": "SNGPSIAU-SNG1"
+      },
+      {
+        "id": "NYC1",
+        "name": "NYCMNY54-NYC1"
+      },
+      {
+        "id": "LAG1b",
+        "name": "LARGIZON-LAG1b"
+      },
+      {
+        "id": "AMD15",
+        "name": "AMDFAA01-AMD15"
+      },
+      {
+        "id": "SNA1",
+        "name": "SNANTXCA-SNA1"
+      },
+      {
+        "id": "PLT1",
+        "name": "PLTNCA60-PLT1"
+      },
+      {
+        "id": "TLP1",
+        "name": "TLPNXM18-TLP1"
+      },
+      {
+        "id": "SDD81",
+        "name": "SAIT1DD6-SDD81"
+      },
+      {
+        "id": "DCC1",
+        "name": "POIUYTGH-DCC1"
+      },
+      {
+        "id": "DCC2",
+        "name": "POIUYTGH-DCC2"
+      },
+      {
+        "id": "OKC1",
+        "name": "OKCBOK55-OKC1"
+      },
+      {
+        "id": "PAR1",
+        "name": "PARSFRCG-PAR1"
+      },
+      {
+        "id": "TES36",
+        "name": "ABCEETES-TES36"
+      },
+      {
+        "id": "COM1",
+        "name": "PLMKOPIU-COM1"
+      },
+      {
+        "id": "ANI1",
+        "name": "ATLNGTRE-ANI1"
+      },
+      {
+        "id": "SDG78",
+        "name": "SDIT1BDG-SDG78"
+      },
+      {
+        "id": "mac20",
+        "name": "PKGTESTF-mac20"
+      },
+      {
+        "id": "DSF45",
+        "name": "DSFBG123-DSF45"
+      },
+      {
+        "id": "HST25",
+        "name": "HSTNTX01-HST25"
+      },
+      {
+        "id": "AMD18",
+        "name": "AUDIMA01-AMD18"
+      },
+      {
+        "id": "SAA80",
+        "name": "SAIT9AA3-SAA80"
+      },
+      {
+        "id": "SSA56",
+        "name": "SSIT2AA7-SSA56"
+      },
+      {
+        "id": "SDD82",
+        "name": "SAIT1DD9-SDD82"
+      },
+      {
+        "id": "JCV1",
+        "name": "JCVLFLBW-JCV1"
+      },
+      {
+        "id": "SUL2",
+        "name": "WERTYUJK-SUL2"
+      },
+      {
+        "id": "PUR1",
+        "name": "purelyde-PUR1"
+      },
+      {
+        "id": "FDE55",
+        "name": "FDERT555-FDE55"
+      },
+      {
+        "id": "SITE",
+        "name": "LONEENCO-SITE"
+      },
+      {
+        "id": "ATL1",
+        "name": "ATLNGAMA-ATL1"
+      },
+      {
+        "id": "JUL1",
+        "name": "ZXCVBNMM-JUL1"
+      },
+      {
+        "id": "TAT34",
+        "name": "TESAAISB-TAT34"
+      },
+      {
+        "id": "XCP12",
+        "name": "CHKGH123-XCP12"
+      },
+      {
+        "id": "RAI1",
+        "name": "poiuytre-RAI1"
+      },
+      {
+        "id": "HPO1",
+        "name": "ATLNGAUP-HPO1"
+      },
+      {
+        "id": "KJF12",
+        "name": "KJFDH123-KJF12"
+      },
+      {
+        "id": "SCC80",
+        "name": "SAIT9CC3-SCC80"
+      },
+      {
+        "id": "SAA12",
+        "name": "SAIT9AF8-SAA12"
+      },
+      {
+        "id": "SAA14",
+        "name": "SAIT1AA9-SAA14"
+      },
+      {
+        "id": "ATL35",
+        "name": "TTESSAAI-ATL35"
+      },
+      {
+        "id": "CWY1",
+        "name": "CWYMOWBS-CWY1"
+      },
+      {
+        "id": "ATL76",
+        "name": "TELEPAAI-ATL76"
+      },
+      {
+        "id": "DSL12",
+        "name": "DSLFK242-DSL12"
+      },
+      {
+        "id": "ATL53",
+        "name": "AAIATLTE-ATL53"
+      },
+      {
+        "id": "SAA11",
+        "name": "SAIT9AA2-SAA11"
+      },
+      {
+        "id": "ATL62",
+        "name": "TESSASCH-ATL62"
+      },
+      {
+        "id": "AUG1",
+        "name": "ASDFGHJK-AUG1"
+      },
+      {
+        "id": "POI22",
+        "name": "POIUY123-POI22"
+      },
+      {
+        "id": "SAA13",
+        "name": "SAIT1AA9-SAA13"
+      },
+      {
+        "id": "BHY17",
+        "name": "BHYTFRF3-BHY17"
+      },
+      {
+        "id": "LIS1",
+        "name": "HOSTPROF-LIS1"
+      },
+      {
+        "id": "SIP1",
+        "name": "ZXCVBNMK-SIP1"
+      },
+      {
+        "id": "ATL99",
+        "name": "TEESTAAI-ATL43"
+      },
+      {
+        "id": "ATL64",
+        "name": "FORLOAAJ-ATL64"
+      },
+      {
+        "id": "TAT33",
+        "name": "TESAAISA-TAT33"
+      },
+      {
+        "id": "RAD10",
+        "name": "INDIPUNE-RAD10"
+      },
+      {
+        "id": "RTW5",
+        "name": "BHYTFRY4-RTW5"
+      },
+      {
+        "id": "JGS1",
+        "name": "KSJKKKKK-JGS1"
+      },
+      {
+        "id": "ATL98",
+        "name": "TEESTAAI-ATL43"
+      },
+      {
+        "id": "WAN1",
+        "name": "LEIWANGW-WAN1"
+      },
+      {
+        "id": "ATL44",
+        "name": "ATLSANAB-ATL44"
+      },
+      {
+        "id": "RTD2",
+        "name": "BHYTFRk4-RTD2"
+      },
+      {
+        "id": "NIR1",
+        "name": "ORFLMANA-NIR1"
+      },
+      {
+        "id": "ATL75",
+        "name": "SANAAIRE-ATL75"
+      },
+      {
+        "id": "NUM1",
+        "name": "QWERTYUI-NUM1"
+      },
+      {
+        "id": "hvf32",
+        "name": "MDTWNJ21-hvf32"
+      },
+      {
+        "id": "RTZ4",
+        "name": "BHYTFRZ6-RTZ4"
+      },
+      {
+        "id": "ATL56",
+        "name": "ATLSANAC-ATL56"
+      },
+      {
+        "id": "AMS1",
+        "name": "AMSTNLBW-AMS1"
+      },
+      {
+        "id": "RCT1",
+        "name": "AMSTERNL-RCT1"
+      },
+      {
+        "id": "JAN1",
+        "name": "ORFLMATT-JAN1"
+      },
+      {
+        "id": "ABC14",
+        "name": "TESAAISA-ABC14"
+      },
+      {
+        "id": "TAT37",
+        "name": "TESAAISD-TAT37"
+      },
+      {
+        "id": "MIC54",
+        "name": "MICHIGAN-MIC54"
+      },
+      {
+        "id": "ABC11",
+        "name": "ATLSANAI-ABC11"
+      },
+      {
+        "id": "AMF11",
+        "name": "AMDOCS01-AMF11"
+      },
+      {
+        "id": "ATL63",
+        "name": "ATLSANEW-ATL63"
+      },
+      {
+        "id": "ABC12",
+        "name": "ATLSECIA-ABC12"
+      },
+      {
+        "id": "hvf20",
+        "name": "MDTWNJ21-hvf20"
+      },
+      {
+        "id": "ABC15",
+        "name": "AAITESAN-ABC15"
+      },
       {
         "id": "AVT1",
         "name": "AVTRFLHD-AVT1"
@@ -800,7 +1673,7 @@ class MockAppStore<T> {
         "id": "ATL34",
         "name": "ATLSANAI-ATL34"
       }
-    ],
+      ],
     "categoryParameters": {
       "owningEntityList": [
         {
@@ -968,7 +1841,7 @@ describe('Network Control Generator', () => {
     const mandatoryControls : string[] = [
       FormControlNames.LCPCLOUD_REGION_ID,
       'tenantId',
-      'platformName'
+      'lineOfBusiness'
     ];
     for(let i = 0 ; i < mandatoryControls.length ; i++){
       let requiredExist = controls.find(ctrl => ctrl.controlName === mandatoryControls[i]).validations.find(item => item.validatorName === 'required');
@@ -1089,7 +1962,6 @@ describe('Network Control Generator', () => {
       FormControlNames.INSTANCE_NAME,
       FormControlNames.LCPCLOUD_REGION_ID,
       'tenantId',
-      'platformName',
       'rollbackOnFailure'
     ];
     for(let i = 0 ; i < mandatoryControls.length ; i++){
index c3a6223..11c4561 100644 (file)
@@ -17,7 +17,6 @@ import {AppState} from "../../../../store/reducers";
 import {FormGroup} from "@angular/forms";
 import {DropdownFormControl} from "../../../../models/formControlModels/dropdownFormControl.model";
 import {FormControlType} from "../../../../models/formControlModels/formControlTypes.enum";
-import {InputFormControl} from "../../../../models/formControlModels/inputFormControl.model";
 import {SelectOption} from "../../../../models/selectOption";
 import {NetworkInstance} from "../../../../models/networkInstance";
 import {NetworkModel} from "../../../../models/networkModel";
@@ -137,7 +136,7 @@ export class NetworkControlGenerator {
       isDisabled: false,
       name: "lineOfBusiness",
       value: instance ? instance.lineOfBusiness : null,
-      validations: [],
+      validations: [new ValidatorModel(ValidatorOptions.required, 'is required')],
       onInitSelectedField: ['lineOfBusinessList'],
       onInit: this._basicControlGenerator.getSubscribeInitResult.bind(null, this._aaiService.getCategoryParameters)
     })
@@ -153,7 +152,7 @@ export class NetworkControlGenerator {
       isDisabled: false,
       name: "platform",
       value: instance ? instance.platformName : null,
-      validations: [new ValidatorModel(ValidatorOptions.required, 'is required')],
+      validations: [],
       onInitSelectedField: ['platformList'],
       onInit: this._basicControlGenerator.getSubscribeInitResult.bind(null, this._aaiService.getCategoryParameters)
     })
index c89d3f0..d90c65e 100644 (file)
@@ -11,9 +11,11 @@ import {LogService} from "../../../utils/log/log.service";
 import {FormControlType} from "../../../models/formControlModels/formControlTypes.enum";
 import {DropdownFormControl} from "../../../models/formControlModels/dropdownFormControl.model";
 import {FeatureFlagsService} from "../../../services/featureFlag/feature-flags.service";
+import each from 'jest-each';
+import {VidNotions} from "../../../models/vidNotions";
 
 class MockAppStore<T> {
-  getState(){
+  getState() {
     return {
       "global": {
         "name": null,
@@ -21,15 +23,10 @@ class MockAppStore<T> {
           "FLAG_NETWORK_TO_ASYNC_INSTANTIATION": false,
           "FLAG_SHOW_ASSIGNMENTS": true,
           "FLAG_FABRIC_CONFIGURATION_ASSIGNMENTS": true,
-          "FLAG_UNASSIGN_SERVICE": true,
           "FLAG_SHOW_VERIFY_SERVICE": false,
-          "FLAG_COLLECTION_RESOURCE_SUPPORT": true,
-          "FLAG_DUPLICATE_VNF": true,
           "FLAG_SERVICE_MODEL_CACHE": true,
           "CREATE_INSTANCE_TEST": false,
           "FLAG_SETTING_DEFAULTS_IN_DRAWING_BOARD": false,
-          "FLAG_ASYNC_INSTANTIATION": true,
-          "FLAG_ASYNC_JOBS": true,
           "EMPTY_DRAWING_BOARD_TEST": false,
           "FLAG_ADD_MSO_TESTAPI_FIELD": true
         },
@@ -53,11 +50,11 @@ class MockAppStore<T> {
               "inputs": {}
             },
             "vnfs": {
-              "VF_vMee 0": {
+              "VF_vGeraldine 0": {
                 "uuid": "d6557200-ecf2-4641-8094-5393ae3aae60",
                 "invariantUuid": "4160458e-f648-4b30-a176-43881ffffe9e",
-                "description": "VSP_vMee",
-                "name": "VF_vMee",
+                "description": "VSP_vGeraldine",
+                "name": "VF_vGeraldine",
                 "version": "2.0",
                 "customizationUuid": "91415b44-753d-494c-926a-456a9172bbb9",
                 "inputs": {},
@@ -228,74 +225,74 @@ class MockAppStore<T> {
                   "sctp-b-egress-dst_end_port": "65535.0"
                 },
                 "type": "VF",
-                "modelCustomizationName": "VF_vMee 0",
+                "modelCustomizationName": "VF_vGeraldine 0",
                 "vfModules": {
-                  "vf_vmee0..VfVmee..vmme_vlc..module-1": {
+                  "vf_vgeraldine0..VfVgeraldine..vflorence_vlc..module-1": {
                     "uuid": "522159d5-d6e0-4c2a-aa44-5a542a12a830",
                     "invariantUuid": "98a7c88b-b577-476a-90e4-e25a5871e02b",
                     "customizationUuid": "55b1be94-671a-403e-a26c-667e9c47d091",
                     "description": null,
-                    "name": "VfVmee..vmme_vlc..module-1",
+                    "name": "VfVgeraldine..vflorence_vlc..module-1",
                     "version": "2",
-                    "modelCustomizationName": "VfVmee..vmme_vlc..module-1",
+                    "modelCustomizationName": "VfVgeraldine..vflorence_vlc..module-1",
                     "properties": {
                       "minCountInstances": 0,
                       "maxCountInstances": null,
                       "initialCount": 0,
-                      "vfModuleLabel": "vmme_vlc"
+                      "vfModuleLabel": "vflorence_vlc"
                     },
                     "inputs": {},
                     "volumeGroupAllowed": true
                   },
-                  "vf_vmee0..VfVmee..vmme_gpb..module-2": {
+                  "vf_vgeraldine0..VfVgeraldine..vflorence_gpb..module-2": {
                     "uuid": "41708296-e443-4c71-953f-d9a010f059e1",
                     "invariantUuid": "1cca90b8-3490-495e-87da-3f3e4c57d5b9",
                     "customizationUuid": "6add59e0-7fe1-4bc4-af48-f8812422ae7c",
                     "description": null,
-                    "name": "VfVmee..vmme_gpb..module-2",
+                    "name": "VfVgeraldine..vflorence_gpb..module-2",
                     "version": "2",
-                    "modelCustomizationName": "VfVmee..vmme_gpb..module-2",
+                    "modelCustomizationName": "VfVgeraldine..vflorence_gpb..module-2",
                     "properties": {
                       "minCountInstances": 0,
                       "maxCountInstances": null,
                       "initialCount": 0,
-                      "vfModuleLabel": "vmme_gpb"
+                      "vfModuleLabel": "vflorence_gpb"
                     },
                     "inputs": {},
                     "volumeGroupAllowed": false
                   },
-                  "vf_vmee0..VfVmee..base_vmme..module-0": {
+                  "vf_vgeraldine0..VfVgeraldine..base_vflorence..module-0": {
                     "uuid": "a27f5cfc-7f12-4f99-af08-0af9c3885c87",
                     "invariantUuid": "a6f9e51a-2b35-416a-ae15-15e58d61f36d",
                     "customizationUuid": "f8c040f1-7e51-4a11-aca8-acf256cfd861",
                     "description": null,
-                    "name": "VfVmee..base_vmme..module-0",
+                    "name": "VfVgeraldine..base_vflorence..module-0",
                     "version": "2",
-                    "modelCustomizationName": "VfVmee..base_vmme..module-0",
+                    "modelCustomizationName": "VfVgeraldine..base_vflorence..module-0",
                     "properties": {
                       "minCountInstances": 1,
                       "maxCountInstances": 1,
                       "initialCount": 1,
-                      "vfModuleLabel": "base_vmme"
+                      "vfModuleLabel": "base_vflorence"
                     },
                     "inputs": {},
                     "volumeGroupAllowed": true
                   }
                 },
                 "volumeGroups": {
-                  "vf_vmee0..VfVmee..base_vmme..module-0": {
+                  "vf_vgeraldine0..VfVgeraldine..base_vflorence..module-0": {
                     "uuid": "a27f5cfc-7f12-4f99-af08-0af9c3885c87",
                     "invariantUuid": "a6f9e51a-2b35-416a-ae15-15e58d61f36d",
                     "customizationUuid": "f8c040f1-7e51-4a11-aca8-acf256cfd861",
                     "description": null,
-                    "name": "VfVmee..base_vmme..module-0",
+                    "name": "VfVgeraldine..base_vflorence..module-0",
                     "version": "2",
-                    "modelCustomizationName": "VfVmee..base_vmme..module-0",
+                    "modelCustomizationName": "VfVgeraldine..base_vflorence..module-0",
                     "properties": {
                       "minCountInstances": 1,
                       "maxCountInstances": 1,
                       "initialCount": 1,
-                      "vfModuleLabel": "base_vmme"
+                      "vfModuleLabel": "base_vflorence"
                     },
                     "inputs": {}
                   }
@@ -323,7 +320,7 @@ class MockAppStore<T> {
                 "modelCustomizationName": "ExtVL 0"
               }
             },
-            "collectionResource": {},
+            "collectionResources": {},
             "configurations": {
               "Port Mirroring Configuration By Policy 0": {
                 "uuid": "b4398538-e89d-4f13-b33d-ca323434ba50",
@@ -344,85 +341,150 @@ class MockAppStore<T> {
             },
             "serviceProxies": {},
             "vfModules": {
-              "vf_vmee0..VfVmee..vmme_vlc..module-1": {
+              "vf_vgeraldine0..VfVgeraldine..vflorence_vlc..module-1": {
                 "uuid": "522159d5-d6e0-4c2a-aa44-5a542a12a830",
                 "invariantUuid": "98a7c88b-b577-476a-90e4-e25a5871e02b",
                 "customizationUuid": "55b1be94-671a-403e-a26c-667e9c47d091",
                 "description": null,
-                "name": "VfVmee..vmme_vlc..module-1",
+                "name": "VfVgeraldine..vflorence_vlc..module-1",
                 "version": "2",
-                "modelCustomizationName": "VfVmee..vmme_vlc..module-1",
+                "modelCustomizationName": "VfVgeraldine..vflorence_vlc..module-1",
                 "properties": {
                   "minCountInstances": 0,
                   "maxCountInstances": null,
                   "initialCount": 0,
-                  "vfModuleLabel": "vmme_vlc"
+                  "vfModuleLabel": "vflorence_vlc"
                 },
                 "inputs": {},
                 "volumeGroupAllowed": true
               },
-              "vf_vmee0..VfVmee..vmme_gpb..module-2": {
+              "vf_vgeraldine0..VfVgeraldine..vflorence_gpb..module-2": {
                 "uuid": "41708296-e443-4c71-953f-d9a010f059e1",
                 "invariantUuid": "1cca90b8-3490-495e-87da-3f3e4c57d5b9",
                 "customizationUuid": "6add59e0-7fe1-4bc4-af48-f8812422ae7c",
                 "description": null,
-                "name": "VfVmee..vmme_gpb..module-2",
+                "name": "VfVgeraldine..vflorence_gpb..module-2",
                 "version": "2",
-                "modelCustomizationName": "VfVmee..vmme_gpb..module-2",
+                "modelCustomizationName": "VfVgeraldine..vflorence_gpb..module-2",
                 "properties": {
                   "minCountInstances": 0,
                   "maxCountInstances": null,
                   "initialCount": 0,
-                  "vfModuleLabel": "vmme_gpb"
+                  "vfModuleLabel": "vflorence_gpb"
                 },
                 "inputs": {},
                 "volumeGroupAllowed": false
               },
-              "vf_vmee0..VfVmee..base_vmme..module-0": {
+              "vf_vgeraldine0..VfVgeraldine..base_vflorence..module-0": {
                 "uuid": "a27f5cfc-7f12-4f99-af08-0af9c3885c87",
                 "invariantUuid": "a6f9e51a-2b35-416a-ae15-15e58d61f36d",
                 "customizationUuid": "f8c040f1-7e51-4a11-aca8-acf256cfd861",
                 "description": null,
-                "name": "VfVmee..base_vmme..module-0",
+                "name": "VfVgeraldine..base_vflorence..module-0",
                 "version": "2",
-                "modelCustomizationName": "VfVmee..base_vmme..module-0",
+                "modelCustomizationName": "VfVgeraldine..base_vflorence..module-0",
                 "properties": {
                   "minCountInstances": 1,
                   "maxCountInstances": 1,
                   "initialCount": 1,
-                  "vfModuleLabel": "base_vmme"
+                  "vfModuleLabel": "base_vflorence"
                 },
                 "inputs": {},
                 "volumeGroupAllowed": true
               }
             },
             "volumeGroups": {
-              "vf_vmee0..VfVmee..base_vmme..module-0": {
+              "vf_vgeraldine0..VfVgeraldine..base_vflorence..module-0": {
                 "uuid": "a27f5cfc-7f12-4f99-af08-0af9c3885c87",
                 "invariantUuid": "a6f9e51a-2b35-416a-ae15-15e58d61f36d",
                 "customizationUuid": "f8c040f1-7e51-4a11-aca8-acf256cfd861",
                 "description": null,
-                "name": "VfVmee..base_vmme..module-0",
+                "name": "VfVgeraldine..base_vflorence..module-0",
                 "version": "2",
-                "modelCustomizationName": "VfVmee..base_vmme..module-0",
+                "modelCustomizationName": "VfVgeraldine..base_vflorence..module-0",
                 "properties": {
                   "minCountInstances": 1,
                   "maxCountInstances": 1,
                   "initialCount": 1,
-                  "vfModuleLabel": "base_vmme"
+                  "vfModuleLabel": "base_vflorence"
                 },
                 "inputs": {}
               }
             },
             "pnfs": {}
+          },
+          "7e59c5de-f052-46fa-aa7e-2fca9d674c43": {
+            "service": {
+              "uuid": "6e59c5de-f052-46fa-aa7e-2fca9d674c44",
+              "invariantUuid": "e49fbd11-e60c-4a8e-b4bf-30fbe8f4fcc0",
+              "name": "ComplexService",
+              "version": "1.0",
+              "toscaModelURL": null,
+              "category": "Emanuel",
+              "serviceType": "Transport",
+              "serviceRole": "",
+              "description": "ComplexService",
+              "serviceEcompNaming": "false",
+              "instantiationType": "Macro",
+              "vidNotions": {
+                "instantiationUI": "TRANSPORT_SERVICE",
+                "modelCategory": "Transport",
+                "viewEditUI": "TRANSPORT_SERVICE",
+                "instantiationType": "Macro"
+              },
+              "inputs": {}
+            },
+            "vnfs": {},
+            "networks": {},
+            "collectionResources": {},
+            "configurations": {},
+            "serviceProxies": {},
+            "vfModules": {},
+            "volumeGroups": {},
+            "pnfs": {
+              "PNF4": {
+                "uuid": "1c831fa9-28a6-4778-8c1d-80b9e769f2ed",
+                "invariantUuid": "74e13a12-dac9-4fba-b102-cd242d9e7f02",
+                "description": "AIM Transport service",
+                "name": "AIM PNF Model",
+                "version": "1.0",
+                "customizationUuid": "ce2453ef-4e8e-4108-944c-57bef89cfab0",
+                "inputs": {},
+                "commands": {},
+                "properties": {
+                  "nf_function": "AIM CE",
+                  "nf_role": "pCE",
+                  "ecomp_generated_naming": "false",
+                  "nf_type": "ROUTER"
+                },
+                "type": "PNF"
+              },
+              "PNF1": {
+                "uuid": "1c831fa9-28a6-4778-8c1d-80b9e769f2ed",
+                "invariantUuid": "74e13a12-dac9-4fba-b102-cd242d9e7f02",
+                "description": "AIM Transport service",
+                "name": "AIM PNF Model",
+                "version": "1.0",
+                "customizationUuid": "dce78da7-c842-47a1-aba2-2de1cd03ab7a",
+                "inputs": {},
+                "commands": {},
+                "properties": {
+                  "nf_function": "SDNGW",
+                  "nf_role": "pD2IPE",
+                  "ecomp_generated_naming": "false",
+                  "nf_type": "ROUTER"
+                },
+                "type": "PNF"
+              }
+            }
           }
         },
         "serviceInstance": {},
         "lcpRegionsAndTenants": {
           "lcpRegionList": [
             {
-              "id": "JANET25",
-              "name": "JANET25",
+              "id": "AAIAIC25",
+              "name": "AAIAIC25",
               "isPermitted": true
             },
             {
@@ -432,7 +494,7 @@ class MockAppStore<T> {
             }
           ],
           "lcpRegionsTenantsMap": {
-            "JANET25": [
+            "AAIAIC25": [
               {
                 "id": "092eb9e8e4b7412e8787dd091bc58e86",
                 "name": "USP-SIP-IC-24335-T-01",
@@ -446,8 +508,128 @@ class MockAppStore<T> {
                 "isPermitted": true
               },
               {
-                "id": "d0a3e3f2964542259d155a81c41aadc3",
-                "name": "test-hvf6-09",
+                "id": "229bcdc6eaeb4ca59d55221141d01f8e",
+                "name": "AIN Web Tool-15-D-STTest2",
+                "isPermitted": true
+              },
+              {
+                "id": "1178612d2b394be4834ad77f567c0af2",
+                "name": "AIN Web Tool-15-D-SSPtestcustome",
+                "isPermitted": true
+              },
+              {
+                "id": "19c5ade915eb461e8af52fb2fd8cd1f2",
+                "name": "AIN Web Tool-15-D-UncheckedEcopm",
+                "isPermitted": true
+              },
+              {
+                "id": "de007636e25249238447264a988a927b",
+                "name": "AIN Web Tool-15-D-dfsdf",
+                "isPermitted": true
+              },
+              {
+                "id": "62f29b3613634ca6a3065cbe0e020c44",
+                "name": "AIN/SMS-16-D-Multiservices1",
+                "isPermitted": true
+              },
+              {
+                "id": "649289e30d3244e0b48098114d63c2aa",
+                "name": "AIN Web Tool-15-D-SSPST66",
+                "isPermitted": true
+              },
+              {
+                "id": "3f21eeea6c2c486bba31dab816c05a32",
+                "name": "AIN Web Tool-15-D-ASSPST47",
+                "isPermitted": true
+              },
+              {
+                "id": "f60ce21d3ee6427586cff0d22b03b773",
+                "name": "CESAR-100-D-sspjg67246",
+                "isPermitted": true
+              },
+              {
+                "id": "8774659e425f479895ae091bb5d46560",
+                "name": "CESAR-100-D-sspjg68359",
+                "isPermitted": true
+              },
+              {
+                "id": "624eb554b0d147c19ff8885341760481",
+                "name": "AINWebTool-15-D-iftach",
+                "isPermitted": true
+              },
+              {
+                "id": "214f55f5fc414c678059c383b03e4962",
+                "name": "CESAR-100-D-sspjg612401",
+                "isPermitted": true
+              },
+              {
+                "id": "c90666c291664841bb98e4d981ff1db5",
+                "name": "CESAR-100-D-sspjg621340",
+                "isPermitted": true
+              },
+              {
+                "id": "ce5b6bc5c7b348e1bf4b91ac9a174278",
+                "name": "sspjg621351cloned",
+                "isPermitted": true
+              },
+              {
+                "id": "b386b768a3f24c8e953abbe0b3488c02",
+                "name": "AINWebTool-15-D-eteancomp",
+                "isPermitted": true
+              },
+              {
+                "id": "dc6c4dbfd225474e9deaadd34968646c",
+                "name": "AINWebTool-15-T-SPFET",
+                "isPermitted": true
+              },
+              {
+                "id": "02cb5030e9914aa4be120bd9ed1e19eb",
+                "name": "AINWebTool-15-X-eeweww",
+                "isPermitted": true
+              },
+              {
+                "id": "f2f3830e4c984d45bcd00e1a04158a79",
+                "name": "CESAR-100-D-spjg61909",
+                "isPermitted": true
+              },
+              {
+                "id": "05b91bd5137f4929878edd965755c06d",
+                "name": "CESAR-100-D-sspjg621512cloned",
+                "isPermitted": true
+              },
+              {
+                "id": "7002fbe8482d4a989ddf445b1ce336e0",
+                "name": "AINWebTool-15-X-vdr",
+                "isPermitted": true
+              },
+              {
+                "id": "4008522be43741dcb1f5422022a2aa0b",
+                "name": "AINWebTool-15-D-ssasa",
+                "isPermitted": true
+              },
+              {
+                "id": "f44e2e96a1b6476abfda2fa407b00169",
+                "name": "AINWebTool-15-D-PFNPT",
+                "isPermitted": true
+              },
+              {
+                "id": "b69a52bec8a84669a37a1e8b72708be7",
+                "name": "AINWebTool-15-X-vdre",
+                "isPermitted": true
+              },
+              {
+                "id": "fac7d9fd56154caeb9332202dcf2969f",
+                "name": "AINWebTool-15-X-NONPODECOMP",
+                "isPermitted": true
+              },
+              {
+                "id": "2d34d8396e194eb49969fd61ffbff961",
+                "name": "DN5242-Nov16-T5",
+                "isPermitted": true
+              },
+              {
+                "id": "cb42a77ff45b48a8b8deb83bb64acc74",
+                "name": "ro-T11",
                 "isPermitted": true
               },
               {
@@ -455,6 +637,16 @@ class MockAppStore<T> {
                 "name": "ro-T112",
                 "isPermitted": true
               },
+              {
+                "id": "4914ab0ab3a743e58f0eefdacc1dde77",
+                "name": "DN5242-Nov21-T1",
+                "isPermitted": true
+              },
+              {
+                "id": "d0a3e3f2964542259d155a81c41aadc3",
+                "name": "test-hvf6-09",
+                "isPermitted": true
+              },
               {
                 "id": "cbb99fe4ada84631b7baf046b6fd2044",
                 "name": "DN5242-Nov16-T3",
@@ -466,7 +658,7 @@ class MockAppStore<T> {
         "productFamilies": [
           {
             "id": "ebc3bc3d-62fd-4a3f-a037-f619df4ff034",
-            "name": "SCOTTIE",
+            "name": "ERICA",
             "isPermitted": true
           },
           {
@@ -491,7 +683,7 @@ class MockAppStore<T> {
           },
           {
             "id": "323d69d9-2efe-4r45-ay0a-89ea7ard4e6f",
-            "name": "vSCP",
+            "name": "vEsmeralda",
             "isPermitted": true
           },
           {
@@ -535,7 +727,7 @@ class MockAppStore<T> {
             "isPermitted": true
           },
           {
-            "id": "Cisneros",
+            "id": "vMuriel",
             "name": "vMuriel",
             "isPermitted": true
           },
@@ -561,7 +753,7 @@ class MockAppStore<T> {
           },
           {
             "id": "d7bb0a21-66f2-4e6d-87d9-9ef3ced63ae4",
-            "name": "Josefina",
+            "name": "JOSEFINA",
             "isPermitted": true
           },
           {
@@ -609,7 +801,7 @@ class MockAppStore<T> {
             },
             {
               "id": "6",
-              "name": "vSEGW",
+              "name": "vPorfirio",
               "isPermitted": false
             },
             {
@@ -624,7 +816,7 @@ class MockAppStore<T> {
             },
             {
               "id": "9",
-              "name": "vMME",
+              "name": "vFLORENCE",
               "isPermitted": false
             },
             {
@@ -634,7 +826,7 @@ class MockAppStore<T> {
             },
             {
               "id": "11",
-              "name": "vSCP",
+              "name": "vEsmeralda",
               "isPermitted": false
             },
             {
@@ -644,7 +836,7 @@ class MockAppStore<T> {
             },
             {
               "id": "13",
-              "name": "vMMSC",
+              "name": "vWINIFRED",
               "isPermitted": false
             },
             {
@@ -687,6 +879,754 @@ class MockAppStore<T> {
             "id": "YYY1",
             "name": "UUUAIAAI-YYY1"
           },
+          {
+            "id": "BAN1",
+            "name": "VSDKYUTP-BAN1"
+          },
+          {
+            "id": "DKJ1",
+            "name": "DKJSJDKA-DKJ1"
+          },
+          {
+            "id": "MCS1",
+            "name": "ASACMAMS-MCS1"
+          },
+          {
+            "id": "UIO1",
+            "name": "uioclli1-UIO1"
+          },
+          {
+            "id": "RAJ1",
+            "name": "YGBIJNLQ-RAJ1"
+          },
+          {
+            "id": "OPA1",
+            "name": "opaclli1-OPA1"
+          },
+          {
+            "id": "SDE1",
+            "name": "ZXCVBNMA-SDE1"
+          },
+          {
+            "id": "VEN2",
+            "name": "FGHJUHIL-VEN2"
+          },
+          {
+            "id": "ORL1",
+            "name": "ORLDFLMA-ORL1"
+          },
+          {
+            "id": "JAD1",
+            "name": "JADECLLI-JAD1"
+          },
+          {
+            "id": "ZXL1",
+            "name": "LWLWCANN-ZXL1"
+          },
+          {
+            "id": "CKL1",
+            "name": "CLKSKCKK-CKL1"
+          },
+          {
+            "id": "SDF1",
+            "name": "sdfclli1-SDF1"
+          },
+          {
+            "id": "RAD1",
+            "name": "RADICAL1-RAD1"
+          },
+          {
+            "id": "KIT1",
+            "name": "BHYJFGLN-KIT1"
+          },
+          {
+            "id": "REL1",
+            "name": "INGERFGT-REL1"
+          },
+          {
+            "id": "JNL1",
+            "name": "CJALSDAC-JNL1"
+          },
+          {
+            "id": "OLK1",
+            "name": "OLKOLKLS-OLK1"
+          },
+          {
+            "id": "CHI1",
+            "name": "CHILLIWE-CHI1"
+          },
+          {
+            "id": "UUU4",
+            "name": "UUUAAAUU-UUU4"
+          },
+          {
+            "id": "TUF1",
+            "name": "TUFCLLI1-TUF1"
+          },
+          {
+            "id": "KJN1",
+            "name": "CKALDKSA-KJN1"
+          },
+          {
+            "id": "SAM1",
+            "name": "SNDGCA64-SAN1"
+          },
+          {
+            "id": "SCK1",
+            "name": "SCKSCKSK-SCK1"
+          },
+          {
+            "id": "HJH1",
+            "name": "AOEEQQQD-HJH1"
+          },
+          {
+            "id": "HGD1",
+            "name": "SDFQWHGD-HGD1"
+          },
+          {
+            "id": "KOR1",
+            "name": "HYFLNBVT-KOR1"
+          },
+          {
+            "id": "ATL43",
+            "name": "AICLOCID-ATL43"
+          },
+          {
+            "id": "ATL54",
+            "name": "AICFTAAI-ATL54"
+          },
+          {
+            "id": "ATL66",
+            "name": "CLLIAAII-ATL66"
+          },
+          {
+            "id": "VEL1",
+            "name": "BNMLKUIK-VEL1"
+          },
+          {
+            "id": "ICC1",
+            "name": "SANJITAT-ICC1"
+          },
+          {
+            "id": "MNT11",
+            "name": "WSXEFBTH-MNT11"
+          },
+          {
+            "id": "DEF2",
+            "name": "WSBHGTYL-DEF2"
+          },
+          {
+            "id": "MAD11",
+            "name": "SDFQWGKL-MAD11"
+          },
+          {
+            "id": "OLG1",
+            "name": "OLHOLHOL-OLG1"
+          },
+          {
+            "id": "GAR1",
+            "name": "NGFVSJKO-GAR1"
+          },
+          {
+            "id": "SAN22",
+            "name": "GNVLSCTL-SAN22"
+          },
+          {
+            "id": "HRG1",
+            "name": "HRGHRGGS-HRG1"
+          },
+          {
+            "id": "JCS1",
+            "name": "JCSJSCJS-JCS1"
+          },
+          {
+            "id": "DHA12",
+            "name": "WSXEDECF-DHA12"
+          },
+          {
+            "id": "HJE1",
+            "name": "AOEEWWWD-HJE1"
+          },
+          {
+            "id": "NCA1",
+            "name": "NCANCANN-NCA1"
+          },
+          {
+            "id": "IOP1",
+            "name": "iopclli1-IOP1"
+          },
+          {
+            "id": "RTY1",
+            "name": "rtyclli1-RTY1"
+          },
+          {
+            "id": "KAP1",
+            "name": "HIOUYTRQ-KAP1"
+          },
+          {
+            "id": "ZEN1",
+            "name": "ZENCLLI1-ZEN1"
+          },
+          {
+            "id": "HKA1",
+            "name": "JAKHLASS-HKA1"
+          },
+          {
+            "id": "CQK1",
+            "name": "CQKSCAKK-CQK1"
+          },
+          {
+            "id": "SAI1",
+            "name": "UBEKQLPD-SAI1"
+          },
+          {
+            "id": "ERT1",
+            "name": "ertclli1-ERT1"
+          },
+          {
+            "id": "IBB1",
+            "name": "PLMKOIJU-IBB1"
+          },
+          {
+            "id": "TIR2",
+            "name": "PLKINHYI-TIR2"
+          },
+          {
+            "id": "HSD1",
+            "name": "CHASKCDS-HSD1"
+          },
+          {
+            "id": "SLF78",
+            "name": "SDCTLFN1-SLF78"
+          },
+          {
+            "id": "SEE78",
+            "name": "SDCTEEE4-SEE78"
+          },
+          {
+            "id": "SAN13",
+            "name": "TOKYJPFA-SAN13"
+          },
+          {
+            "id": "SAA78",
+            "name": "SDCTAAA1-SAA78"
+          },
+          {
+            "id": "LUC1",
+            "name": "ATLDFGYC-LUC1"
+          },
+          {
+            "id": "AMD13",
+            "name": "MEMATLAN-AMD13"
+          },
+          {
+            "id": "TOR1",
+            "name": "TOROONXN-TOR1"
+          },
+          {
+            "id": "QWE1",
+            "name": "QWECLLI1-QWE1"
+          },
+          {
+            "id": "ZOG1",
+            "name": "ZOGASTRO-ZOG1"
+          },
+          {
+            "id": "CAL33",
+            "name": "CALIFORN-CAL33"
+          },
+          {
+            "id": "SHH78",
+            "name": "SDIT1HHH-SHH78"
+          },
+          {
+            "id": "DSA1",
+            "name": "LKJHGFDS-DSA1"
+          },
+          {
+            "id": "CLG1",
+            "name": "CLGRABAD-CLG1"
+          },
+          {
+            "id": "BNA1",
+            "name": "BNARAGBK-BNA1"
+          },
+          {
+            "id": "ATL84",
+            "name": "CANTTCOC-ATL84"
+          },
+          {
+            "id": "APP1",
+            "name": "WBHGTYUI-APP1"
+          },
+          {
+            "id": "RJN1",
+            "name": "RJNRBZAW-RJN1"
+          },
+          {
+            "id": "EHH78",
+            "name": "SDCSHHH5-EHH78"
+          },
+          {
+            "id": "mac10",
+            "name": "PKGTESTF-mac10"
+          },
+          {
+            "id": "SXB78",
+            "name": "SDCTGXB1-SXB78"
+          },
+          {
+            "id": "SAX78",
+            "name": "SDCTAXG1-SAX78"
+          },
+          {
+            "id": "SYD1",
+            "name": "SYDNAUBV-SYD1"
+          },
+          {
+            "id": "TOK1",
+            "name": "TOKYJPFA-TOK1"
+          },
+          {
+            "id": "KGM2",
+            "name": "KGMTNC20-KGM2"
+          },
+          {
+            "id": "DCC1b",
+            "name": "POIUYTGH-DCC1b"
+          },
+          {
+            "id": "SKK78",
+            "name": "SDCTKKK1-SKK78"
+          },
+          {
+            "id": "SGG78",
+            "name": "SDCTGGG1-SGG78"
+          },
+          {
+            "id": "SJJ78",
+            "name": "SDCTJJJ1-SJJ78"
+          },
+          {
+            "id": "SBX78",
+            "name": "SDCTBXG1-SBX78"
+          },
+          {
+            "id": "LAG1",
+            "name": "LARGIZON-LAG1"
+          },
+          {
+            "id": "IAA1",
+            "name": "QAZXSWED-IAA1"
+          },
+          {
+            "id": "POI1",
+            "name": "PLMNJKIU-POI1"
+          },
+          {
+            "id": "LAG1a",
+            "name": "LARGIZON-LAG1a"
+          },
+          {
+            "id": "PBL1",
+            "name": "PBLAPBAI-PBL1"
+          },
+          {
+            "id": "LAG45",
+            "name": "LARGIZON-LAG1a"
+          },
+          {
+            "id": "MAR1",
+            "name": "MNBVCXZM-MAR1"
+          },
+          {
+            "id": "HST70",
+            "name": "HSTNTX70-HST70"
+          },
+          {
+            "id": "DCC1a",
+            "name": "POIUYTGH-DCC1a"
+          },
+          {
+            "id": "TOL1",
+            "name": "TOLDOH21-TOL1"
+          },
+          {
+            "id": "LON1",
+            "name": "LONEENCO-LON1"
+          },
+          {
+            "id": "SJU78",
+            "name": "SDIT1JUB-SJU78"
+          },
+          {
+            "id": "STN27",
+            "name": "HSTNTX01-STN27"
+          },
+          {
+            "id": "SSW56",
+            "name": "ss8126GT-SSW56"
+          },
+          {
+            "id": "SBB78",
+            "name": "SDIT1BBB-SBB78"
+          },
+          {
+            "id": "DCC3",
+            "name": "POIUYTGH-DCC3"
+          },
+          {
+            "id": "GNV1",
+            "name": "GNVLSCTL-GNV1"
+          },
+          {
+            "id": "WAS1",
+            "name": "WASHDCSW-WAS1"
+          },
+          {
+            "id": "TOY1",
+            "name": "TORYONNZ-TOY1"
+          },
+          {
+            "id": "STT1",
+            "name": "STTLWA02-STT1"
+          },
+          {
+            "id": "STG1",
+            "name": "STTGGE62-STG1"
+          },
+          {
+            "id": "SLL78",
+            "name": "SDCTLLL1-SLL78"
+          },
+          {
+            "id": "SBU78",
+            "name": "SDIT1BUB-SBU78"
+          },
+          {
+            "id": "ATL2",
+            "name": "ATLNGANW-ATL2"
+          },
+          {
+            "id": "BOT1",
+            "name": "BOTHWAKY-BOT1"
+          },
+          {
+            "id": "SNG1",
+            "name": "SNGPSIAU-SNG1"
+          },
+          {
+            "id": "NYC1",
+            "name": "NYCMNY54-NYC1"
+          },
+          {
+            "id": "LAG1b",
+            "name": "LARGIZON-LAG1b"
+          },
+          {
+            "id": "AMD15",
+            "name": "AMDFAA01-AMD15"
+          },
+          {
+            "id": "SNA1",
+            "name": "SNANTXCA-SNA1"
+          },
+          {
+            "id": "PLT1",
+            "name": "PLTNCA60-PLT1"
+          },
+          {
+            "id": "TLP1",
+            "name": "TLPNXM18-TLP1"
+          },
+          {
+            "id": "SDD81",
+            "name": "SAIT1DD6-SDD81"
+          },
+          {
+            "id": "DCC1",
+            "name": "POIUYTGH-DCC1"
+          },
+          {
+            "id": "DCC2",
+            "name": "POIUYTGH-DCC2"
+          },
+          {
+            "id": "OKC1",
+            "name": "OKCBOK55-OKC1"
+          },
+          {
+            "id": "PAR1",
+            "name": "PARSFRCG-PAR1"
+          },
+          {
+            "id": "TES36",
+            "name": "ABCEETES-TES36"
+          },
+          {
+            "id": "COM1",
+            "name": "PLMKOPIU-COM1"
+          },
+          {
+            "id": "ANI1",
+            "name": "ATLNGTRE-ANI1"
+          },
+          {
+            "id": "SDG78",
+            "name": "SDIT1BDG-SDG78"
+          },
+          {
+            "id": "mac20",
+            "name": "PKGTESTF-mac20"
+          },
+          {
+            "id": "DSF45",
+            "name": "DSFBG123-DSF45"
+          },
+          {
+            "id": "HST25",
+            "name": "HSTNTX01-HST25"
+          },
+          {
+            "id": "AMD18",
+            "name": "AUDIMA01-AMD18"
+          },
+          {
+            "id": "SAA80",
+            "name": "SAIT9AA3-SAA80"
+          },
+          {
+            "id": "SSA56",
+            "name": "SSIT2AA7-SSA56"
+          },
+          {
+            "id": "SDD82",
+            "name": "SAIT1DD9-SDD82"
+          },
+          {
+            "id": "JCV1",
+            "name": "JCVLFLBW-JCV1"
+          },
+          {
+            "id": "SUL2",
+            "name": "WERTYUJK-SUL2"
+          },
+          {
+            "id": "PUR1",
+            "name": "purelyde-PUR1"
+          },
+          {
+            "id": "FDE55",
+            "name": "FDERT555-FDE55"
+          },
+          {
+            "id": "SITE",
+            "name": "LONEENCO-SITE"
+          },
+          {
+            "id": "ATL1",
+            "name": "ATLNGAMA-ATL1"
+          },
+          {
+            "id": "JUL1",
+            "name": "ZXCVBNMM-JUL1"
+          },
+          {
+            "id": "TAT34",
+            "name": "TESAAISB-TAT34"
+          },
+          {
+            "id": "XCP12",
+            "name": "CHKGH123-XCP12"
+          },
+          {
+            "id": "RAI1",
+            "name": "poiuytre-RAI1"
+          },
+          {
+            "id": "HPO1",
+            "name": "ATLNGAUP-HPO1"
+          },
+          {
+            "id": "KJF12",
+            "name": "KJFDH123-KJF12"
+          },
+          {
+            "id": "SCC80",
+            "name": "SAIT9CC3-SCC80"
+          },
+          {
+            "id": "SAA12",
+            "name": "SAIT9AF8-SAA12"
+          },
+          {
+            "id": "SAA14",
+            "name": "SAIT1AA9-SAA14"
+          },
+          {
+            "id": "ATL35",
+            "name": "TTESSAAI-ATL35"
+          },
+          {
+            "id": "CWY1",
+            "name": "CWYMOWBS-CWY1"
+          },
+          {
+            "id": "ATL76",
+            "name": "TELEPAAI-ATL76"
+          },
+          {
+            "id": "DSL12",
+            "name": "DSLFK242-DSL12"
+          },
+          {
+            "id": "ATL53",
+            "name": "AAIATLTE-ATL53"
+          },
+          {
+            "id": "SAA11",
+            "name": "SAIT9AA2-SAA11"
+          },
+          {
+            "id": "ATL62",
+            "name": "TESSASCH-ATL62"
+          },
+          {
+            "id": "AUG1",
+            "name": "ASDFGHJK-AUG1"
+          },
+          {
+            "id": "POI22",
+            "name": "POIUY123-POI22"
+          },
+          {
+            "id": "SAA13",
+            "name": "SAIT1AA9-SAA13"
+          },
+          {
+            "id": "BHY17",
+            "name": "BHYTFRF3-BHY17"
+          },
+          {
+            "id": "LIS1",
+            "name": "HOSTPROF-LIS1"
+          },
+          {
+            "id": "SIP1",
+            "name": "ZXCVBNMK-SIP1"
+          },
+          {
+            "id": "ATL99",
+            "name": "TEESTAAI-ATL43"
+          },
+          {
+            "id": "ATL64",
+            "name": "FORLOAAJ-ATL64"
+          },
+          {
+            "id": "TAT33",
+            "name": "TESAAISA-TAT33"
+          },
+          {
+            "id": "RAD10",
+            "name": "INDIPUNE-RAD10"
+          },
+          {
+            "id": "RTW5",
+            "name": "BHYTFRY4-RTW5"
+          },
+          {
+            "id": "JGS1",
+            "name": "KSJKKKKK-JGS1"
+          },
+          {
+            "id": "ATL98",
+            "name": "TEESTAAI-ATL43"
+          },
+          {
+            "id": "WAN1",
+            "name": "LEIWANGW-WAN1"
+          },
+          {
+            "id": "ATL44",
+            "name": "ATLSANAB-ATL44"
+          },
+          {
+            "id": "RTD2",
+            "name": "BHYTFRk4-RTD2"
+          },
+          {
+            "id": "NIR1",
+            "name": "ORFLMANA-NIR1"
+          },
+          {
+            "id": "ATL75",
+            "name": "SANAAIRE-ATL75"
+          },
+          {
+            "id": "NUM1",
+            "name": "QWERTYUI-NUM1"
+          },
+          {
+            "id": "hvf32",
+            "name": "MDTWNJ21-hvf32"
+          },
+          {
+            "id": "RTZ4",
+            "name": "BHYTFRZ6-RTZ4"
+          },
+          {
+            "id": "ATL56",
+            "name": "ATLSANAC-ATL56"
+          },
+          {
+            "id": "AMS1",
+            "name": "AMSTNLBW-AMS1"
+          },
+          {
+            "id": "RCT1",
+            "name": "AMSTERNL-RCT1"
+          },
+          {
+            "id": "JAN1",
+            "name": "ORFLMATT-JAN1"
+          },
+          {
+            "id": "ABC14",
+            "name": "TESAAISA-ABC14"
+          },
+          {
+            "id": "TAT37",
+            "name": "TESAAISD-TAT37"
+          },
+          {
+            "id": "MIC54",
+            "name": "MICHIGAN-MIC54"
+          },
+          {
+            "id": "ABC11",
+            "name": "ATLSANAI-ABC11"
+          },
+          {
+            "id": "AMF11",
+            "name": "AMDOCS01-AMF11"
+          },
+          {
+            "id": "ATL63",
+            "name": "ATLSANEW-ATL63"
+          },
+          {
+            "id": "ABC12",
+            "name": "ATLSECIA-ABC12"
+          },
+          {
+            "id": "hvf20",
+            "name": "MDTWNJ21-hvf20"
+          },
+          {
+            "id": "ABC15",
+            "name": "AAITESAN-ABC15"
+          },
           {
             "id": "AVT1",
             "name": "AVTRFLHD-AVT1"
@@ -829,7 +1769,8 @@ class MockAppStore<T> {
   }
 }
 
-class MockFeatureFlagsService {}
+class MockFeatureFlagsService {
+}
 
 describe('Service Control Generator', () => {
   let injector;
@@ -846,7 +1787,7 @@ describe('Service Control Generator', () => {
         AaiService,
         FormBuilder,
         LogService,
-        {provide:FeatureFlagsService, useClass: MockFeatureFlagsService},
+        {provide: FeatureFlagsService, useClass: MockFeatureFlagsService},
         {provide: NgRedux, useClass: MockAppStore}]
     });
     await TestBed.compileComponents();
@@ -859,9 +1800,9 @@ describe('Service Control Generator', () => {
 
 
   test('ServiceControlGenerator should return the correct controls with correct order', () => {
-    const serviceId : string = "6e59c5de-f052-46fa-aa7e-2fca9d674c44";
-    const controls :FormControlModel[] = service.getMacroFormControls(serviceId);
-    const globalSubscriberIdControl : DropdownFormControl = <DropdownFormControl>controls.find(item => item.controlName === FormControlNames.GLOBAL_SUBSCRIBER_ID);
+    const serviceId: string = "6e59c5de-f052-46fa-aa7e-2fca9d674c44";
+    const controlsFormControlModel[] = service.getMacroFormControls(serviceId);
+    const globalSubscriberIdControl: DropdownFormControl = <DropdownFormControl>controls.find(item => item.controlName === FormControlNames.GLOBAL_SUBSCRIBER_ID);
 
     expect(globalSubscriberIdControl.validations.find(val => val.validatorName === ValidatorOptions.required)).toBeDefined();
     expect(globalSubscriberIdControl.dataTestId).toEqual('subscriberName');
@@ -872,7 +1813,7 @@ describe('Service Control Generator', () => {
     expect(globalSubscriberIdControl.onInit).toBeDefined();
     expect(globalSubscriberIdControl.onChange).toBeDefined();
 
-    const serviceTypeControl : DropdownFormControl = <DropdownFormControl>controls.find(item => item.controlName === FormControlNames.SUBSCRIPTION_SERVICE_TYPE);
+    const serviceTypeControl: DropdownFormControl = <DropdownFormControl>controls.find(item => item.controlName === FormControlNames.SUBSCRIPTION_SERVICE_TYPE);
     expect(serviceTypeControl.validations.find(val => val.validatorName === ValidatorOptions.required)).toBeDefined();
     expect(serviceTypeControl.dataTestId).toEqual('serviceType');
     expect(serviceTypeControl.type).toEqual(FormControlType.DROPDOWN);
@@ -882,7 +1823,7 @@ describe('Service Control Generator', () => {
     expect(serviceTypeControl.onInit).toBeDefined();
     expect(serviceTypeControl.onChange).toBeDefined();
 
-    const productFamilyControl : DropdownFormControl = <DropdownFormControl>controls.find(item => item.controlName === FormControlNames.PRODUCT_FAMILY_ID);
+    const productFamilyControl: DropdownFormControl = <DropdownFormControl>controls.find(item => item.controlName === FormControlNames.PRODUCT_FAMILY_ID);
     expect(productFamilyControl.validations.find(val => val.validatorName === ValidatorOptions.required)).toBeDefined();
     expect(productFamilyControl.dataTestId).toEqual('productFamily');
     expect(productFamilyControl.type).toEqual(FormControlType.DROPDOWN);
@@ -891,7 +1832,7 @@ describe('Service Control Generator', () => {
     expect(productFamilyControl.displayName).toEqual('Product family');
     expect(productFamilyControl.onInit).toBeDefined();
 
-    const lcpRegionControl : DropdownFormControl = <DropdownFormControl>controls.find(item => item.controlName === FormControlNames.LCPCLOUD_REGION_ID);
+    const lcpRegionControl: DropdownFormControl = <DropdownFormControl>controls.find(item => item.controlName === FormControlNames.LCPCLOUD_REGION_ID);
     expect(lcpRegionControl.validations.find(val => val.validatorName === ValidatorOptions.required)).toBeDefined();
     expect(lcpRegionControl.dataTestId).toEqual('lcpRegion');
     expect(lcpRegionControl.type).toEqual(FormControlType.DROPDOWN);
@@ -901,7 +1842,7 @@ describe('Service Control Generator', () => {
     expect(lcpRegionControl.onInit).toBeDefined();
     expect(lcpRegionControl.onChange).toBeDefined();
 
-    const tenantControl : DropdownFormControl = <DropdownFormControl>controls.find(item => item.controlName === FormControlNames.TENANT_ID);
+    const tenantControl: DropdownFormControl = <DropdownFormControl>controls.find(item => item.controlName === FormControlNames.TENANT_ID);
     expect(tenantControl.validations.find(val => val.validatorName === ValidatorOptions.required)).toBeDefined();
     expect(tenantControl.dataTestId).toEqual('tenant');
     expect(tenantControl.type).toEqual(FormControlType.DROPDOWN);
@@ -930,25 +1871,24 @@ describe('Service Control Generator', () => {
     // 9.      Pause on pause points
     // 10.     Project
     // 11.     Rollback on failure
-    const serviceId : string = "6e59c5de-f052-46fa-aa7e-2fca9d674c44";
-    const controls :FormControlModel[] = service.getMacroFormControls(serviceId);
-
+    const serviceId: string = "6e59c5de-f052-46fa-aa7e-2fca9d674c44";
+    const controls: FormControlModel[] = service.getMacroFormControls(serviceId);
 
 
     const controlsOrderNames = [
       FormControlNames.INSTANCE_NAME,
       FormControlNames.GLOBAL_SUBSCRIBER_ID,
-      FormControlNames.SUBSCRIPTION_SERVICE_TYPE ,
-      FormControlNames.OWNING_ENTITY_ID ,
-      FormControlNames.PRODUCT_FAMILY_ID ,
-      FormControlNames.LCPCLOUD_REGION_ID ,
-      FormControlNames.TENANT_ID ,
-      FormControlNames.AICZONE_ID ,
+      FormControlNames.SUBSCRIPTION_SERVICE_TYPE,
+      FormControlNames.OWNING_ENTITY_ID,
+      FormControlNames.PRODUCT_FAMILY_ID,
+      FormControlNames.LCPCLOUD_REGION_ID,
+      FormControlNames.TENANT_ID,
+      FormControlNames.AICZONE_ID,
       FormControlNames.PAUSE,
-      FormControlNames.PROJECT_NAME ,
+      FormControlNames.PROJECT_NAME,
       FormControlNames.ROLLBACK_ON_FAILURE];
     expect(controls.length).toEqual(11);
-    for(let i = 0 ; i < controls.length ; i++){
+    for (let i = 0; i < controls.length; i++) {
       expect(controls[i].controlName).toEqual(controlsOrderNames[i]);
     }
   });
@@ -961,21 +1901,57 @@ describe('Service Control Generator', () => {
     // 4.      Owning entity (fix Entity to entity)
     // 5.      Project
     // 6.      Rollback on failure
-    const serviceId : string = "6e59c5de-f052-46fa-aa7e-2fca9d674c44";
-    const controls :FormControlModel[] = service.getAlaCartControls(serviceId);
+    const serviceId: string = "6e59c5de-f052-46fa-aa7e-2fca9d674c44";
+    const controlsFormControlModel[] = service.getAlaCartControls(serviceId);
     const controlsOrderNames = [
       FormControlNames.INSTANCE_NAME,
       FormControlNames.GLOBAL_SUBSCRIBER_ID,
-      FormControlNames.SUBSCRIPTION_SERVICE_TYPE ,
-      FormControlNames.OWNING_ENTITY_ID ,
-      FormControlNames.PROJECT_NAME ,
+      FormControlNames.SUBSCRIPTION_SERVICE_TYPE,
+      FormControlNames.OWNING_ENTITY_ID,
+      FormControlNames.PROJECT_NAME,
       FormControlNames.ROLLBACK_ON_FAILURE];
 
     expect(controls.length).toEqual(6);
-    for(let i = 0 ; i < controls.length ; i++){
+    for (let i = 0; i < controls.length; i++) {
       expect(controls[i].controlName).toEqual(controlsOrderNames[i]);
     }
   });
 
+  test('getMacroFormControls for Transport service type should return optional for lcp region and tenant', () => {
+    const serviceId: string = "7e59c5de-f052-46fa-aa7e-2fca9d674c43";
+    const controls: FormControlModel[] = service.getMacroFormControls(serviceId);
+
+    const lcpRegionControl: DropdownFormControl = <DropdownFormControl>controls.find(item => item.controlName === FormControlNames.LCPCLOUD_REGION_ID);
+    expect(lcpRegionControl.validations.length).toEqual(0);
+    expect(lcpRegionControl.dataTestId).toEqual('lcpRegion');
+    expect(lcpRegionControl.type).toEqual(FormControlType.DROPDOWN);
+    expect(lcpRegionControl.isDisabled).toBeTruthy();
+    expect(lcpRegionControl.placeHolder).toEqual('Select LCP Region');
+    expect(lcpRegionControl.displayName).toEqual('LCP region');
+    expect(lcpRegionControl.onInit).toBeDefined();
+    expect(lcpRegionControl.onChange).toBeDefined();
+
+    const tenantControl: DropdownFormControl = <DropdownFormControl>controls.find(item => item.controlName === FormControlNames.TENANT_ID);
+    expect(tenantControl.validations.length).toEqual(0);
+    expect(tenantControl.dataTestId).toEqual('tenant');
+    expect(tenantControl.type).toEqual(FormControlType.DROPDOWN);
+    expect(tenantControl.isDisabled).toBeTruthy();
+    expect(tenantControl.placeHolder).toEqual('Select Tenant');
+    expect(tenantControl.displayName).toEqual('Tenant');
+    expect(tenantControl.onInit).toBeDefined();
+    expect(tenantControl.onChange).toBeDefined();
+  });
+
+  const isRegionAndTenantOptionalProvider = [
+    [{modelCategory:"Transport"}, true],
+    [{modelCategory:"dontKnow"}, false],
+    [undefined, false],
+    [{}, false]
+  ];
+
+  each(isRegionAndTenantOptionalProvider).test(`isRegionAndTenantOptional shall be as expected`, (vidNotions:VidNotions, expectedResult:boolean)=>{
+    expect(service.isRegionAndTenantOptional(vidNotions)).toEqual(expectedResult);
+  });
+
 });
 
index 539f848..12054a8 100644 (file)
@@ -2,11 +2,7 @@ import {Injectable} from "@angular/core";
 import {GenericFormService} from "../generic-form.service";
 import {NgRedux} from "@angular-redux/store";
 import {AppState} from "../../../store/reducers";
-import {
-  FormControlModel,
-  ValidatorModel,
-  ValidatorOptions
-} from "../../../models/formControlModels/formControl.model";
+import {FormControlModel, ValidatorModel, ValidatorOptions} from "../../../models/formControlModels/formControl.model";
 import {DropdownFormControl} from "../../../models/formControlModels/dropdownFormControl.model";
 import * as _ from 'lodash';
 import {BasicControlGenerator} from "./basic.control.generator";
@@ -15,12 +11,12 @@ import {FormGroup} from "@angular/forms";
 import {FormControlType} from "../../../models/formControlModels/formControlTypes.enum";
 import {HttpClient} from "@angular/common/http";
 import {SelectOption} from "../../../models/selectOption";
-import {Observable} from "rxjs";
+import {Observable, of} from "rxjs";
 import {LogService} from "../../../utils/log/log.service";
 import {ServiceModel} from "../../../models/serviceModel";
-import {of} from "rxjs";
 
 import {CheckboxFormControl} from "../../../models/formControlModels/checkboxFormControl.model";
+import {VidNotions} from "../../../models/vidNotions";
 
 export enum FormControlNames {
   INSTANCE_NAME = 'instanceName',
@@ -96,10 +92,12 @@ export class  ServiceControlGenerator {
       result.push(this.getServiceTypeControl(serviceInstance, result, true));
       result.push(this.getOwningEntityControl(serviceInstance, result));
       result.push(this.getProductFamilyControl(serviceInstance, result));
-      result.push(this.getLcpRegionControl(serviceInstance, result));
-      result.push(this.getTenantControl(serviceInstance, result),);
+      result.push(this.getLcpRegionControl(serviceInstance, result, serviceModel.vidNotions));
+      result.push(this.getTenantControl(serviceInstance, result, serviceModel.vidNotions),);
       result.push(this.getAICZoneControl(serviceInstance, result));
 
+
+
       if(serviceModel.isMultiStepDesign){
         result.push(new CheckboxFormControl({
           controlName : FormControlNames.PAUSE,
@@ -221,7 +219,11 @@ export class  ServiceControlGenerator {
     })
   };
 
-  getLcpRegionControl = (serviceInstance : any, controls : FormControlModel[]) : DropdownFormControl => {
+  isRegionAndTenantOptional = (vidNotions?: VidNotions) : boolean => {
+    return !_.isNil(vidNotions) && vidNotions.modelCategory === "Transport"
+  };
+
+  getLcpRegionControl = (serviceInstance: any, controls: FormControlModel[], vidNotions?: VidNotions) : DropdownFormControl => {
     return new DropdownFormControl({
       type : FormControlType.DROPDOWN,
       controlName : FormControlNames.LCPCLOUD_REGION_ID,
@@ -231,7 +233,8 @@ export class  ServiceControlGenerator {
       name : "lcpRegion",
       isDisabled : _.isNil(serviceInstance),
       value : serviceInstance ? serviceInstance.lcpCloudRegionId : null,
-      validations : [new ValidatorModel(ValidatorOptions.required, 'is required')],
+      validations : this.isRegionAndTenantOptional(vidNotions) ? [] :
+          [new ValidatorModel(ValidatorOptions.required, 'is required')],
       onInitSelectedField : ['lcpRegionList'],
       onInit : serviceInstance ? this._basicControlGenerator.getSubscribeInitResult.bind(
         this._aaiService,
@@ -255,7 +258,7 @@ export class  ServiceControlGenerator {
     })
   };
 
-  getTenantControl = (serviceInstance : any, controls : FormControlModel[]) : DropdownFormControl => {
+  getTenantControl = (serviceInstance: any, controls: FormControlModel[], vidNotions?: VidNotions) : DropdownFormControl => {
     return  new DropdownFormControl({
       type : FormControlType.DROPDOWN,
       controlName : FormControlNames.TENANT_ID,
@@ -264,12 +267,12 @@ export class  ServiceControlGenerator {
       placeHolder : 'Select Tenant',
       name : "tenant",
       isDisabled : _.isNil(serviceInstance),
-      onInitSelectedField :serviceInstance ?  ['lcpRegionsTenantsMap', serviceInstance.lcpCloudRegionId] : null,
+      onInitSelectedField : serviceInstance ? ['lcpRegionsTenantsMap', serviceInstance.lcpCloudRegionId] : null,
       onInit : serviceInstance ? this._basicControlGenerator.getSubscribeInitResult.bind(
         this._aaiService,
         this.aaiService.getLcpRegionsAndTenants.bind(this, serviceInstance.globalSubscriberId, serviceInstance.subscriptionServiceType)) : ()=>{},
       value : serviceInstance ? serviceInstance.tenantId : null,
-      validations : [new ValidatorModel(ValidatorOptions.required, 'is required')],
+      validations :  this.isRegionAndTenantOptional(vidNotions) ? [] : [new ValidatorModel(ValidatorOptions.required, 'is required')],
     })
   };
 
index 17689be..fbcca06 100644 (file)
@@ -23,15 +23,10 @@ class MockAppStore<T> {
           "FLAG_NETWORK_TO_ASYNC_INSTANTIATION": false,
           "FLAG_SHOW_ASSIGNMENTS": true,
           "FLAG_FABRIC_CONFIGURATION_ASSIGNMENTS": true,
-          "FLAG_UNASSIGN_SERVICE": true,
           "FLAG_SHOW_VERIFY_SERVICE": false,
-          "FLAG_COLLECTION_RESOURCE_SUPPORT": true,
-          "FLAG_DUPLICATE_VNF": true,
           "FLAG_SERVICE_MODEL_CACHE": true,
           "CREATE_INSTANCE_TEST": false,
           "FLAG_SETTING_DEFAULTS_IN_DRAWING_BOARD": false,
-          "FLAG_ASYNC_INSTANTIATION": true,
-          "FLAG_ASYNC_JOBS": true,
           "EMPTY_DRAWING_BOARD_TEST": false,
           "FLAG_ADD_MSO_TESTAPI_FIELD": true
         },
@@ -55,11 +50,11 @@ class MockAppStore<T> {
               "inputs": {}
             },
             "vnfs": {
-              "VF_vMee 0": {
+              "VF_vGeraldine 0": {
                 "uuid": "d6557200-ecf2-4641-8094-5393ae3aae60",
                 "invariantUuid": "4160458e-f648-4b30-a176-43881ffffe9e",
-                "description": "VSP_vMee",
-                "name": "VF_vMee",
+                "description": "VSP_vGeraldine",
+                "name": "VF_vGeraldine",
                 "version": "2.0",
                 "customizationUuid": "91415b44-753d-494c-926a-456a9172bbb9",
                 "inputs": {},
@@ -231,74 +226,74 @@ class MockAppStore<T> {
                   "sctp-b-egress-dst_end_port": "65535.0"
                 },
                 "type": "VF",
-                "modelCustomizationName": "VF_vMee 0",
+                "modelCustomizationName": "VF_vGeraldine 0",
                 "vfModules": {
-                  "vf_vmee0..VfVmee..vmme_vlc..module-1": {
+                  "vf_vgeraldine0..VfVgeraldine..vflorence_vlc..module-1": {
                     "uuid": "522159d5-d6e0-4c2a-aa44-5a542a12a830",
                     "invariantUuid": "98a7c88b-b577-476a-90e4-e25a5871e02b",
                     "customizationUuid": "55b1be94-671a-403e-a26c-667e9c47d091",
                     "description": null,
-                    "name": "VfVmee..vmme_vlc..module-1",
+                    "name": "VfVgeraldine..vflorence_vlc..module-1",
                     "version": "2",
-                    "modelCustomizationName": "VfVmee..vmme_vlc..module-1",
+                    "modelCustomizationName": "VfVgeraldine..vflorence_vlc..module-1",
                     "properties": {
                       "minCountInstances": 0,
                       "maxCountInstances": null,
                       "initialCount": 0,
-                      "vfModuleLabel": "vmme_vlc"
+                      "vfModuleLabel": "vflorence_vlc"
                     },
                     "inputs": {},
                     "volumeGroupAllowed": true
                   },
-                  "vf_vmee0..VfVmee..vmme_gpb..module-2": {
+                  "vf_vgeraldine0..VfVgeraldine..vflorence_gpb..module-2": {
                     "uuid": "41708296-e443-4c71-953f-d9a010f059e1",
                     "invariantUuid": "1cca90b8-3490-495e-87da-3f3e4c57d5b9",
                     "customizationUuid": "6add59e0-7fe1-4bc4-af48-f8812422ae7c",
                     "description": null,
-                    "name": "VfVmee..vmme_gpb..module-2",
+                    "name": "VfVgeraldine..vflorence_gpb..module-2",
                     "version": "2",
-                    "modelCustomizationName": "VfVmee..vmme_gpb..module-2",
+                    "modelCustomizationName": "VfVgeraldine..vflorence_gpb..module-2",
                     "properties": {
                       "minCountInstances": 0,
                       "maxCountInstances": null,
                       "initialCount": 0,
-                      "vfModuleLabel": "vmme_gpb"
+                      "vfModuleLabel": "vflorence_gpb"
                     },
                     "inputs": {},
                     "volumeGroupAllowed": false
                   },
-                  "vf_vmee0..VfVmee..base_vmme..module-0": {
+                  "vf_vgeraldine0..VfVgeraldine..base_vflorence..module-0": {
                     "uuid": "a27f5cfc-7f12-4f99-af08-0af9c3885c87",
                     "invariantUuid": "a6f9e51a-2b35-416a-ae15-15e58d61f36d",
                     "customizationUuid": "f8c040f1-7e51-4a11-aca8-acf256cfd861",
                     "description": null,
-                    "name": "VfVmee..base_vmme..module-0",
+                    "name": "VfVgeraldine..base_vflorence..module-0",
                     "version": "2",
-                    "modelCustomizationName": "VfVmee..base_vmme..module-0",
+                    "modelCustomizationName": "VfVgeraldine..base_vflorence..module-0",
                     "properties": {
                       "minCountInstances": 1,
                       "maxCountInstances": 1,
                       "initialCount": 1,
-                      "vfModuleLabel": "base_vmme"
+                      "vfModuleLabel": "base_vflorence"
                     },
                     "inputs": {},
                     "volumeGroupAllowed": true
                   }
                 },
                 "volumeGroups": {
-                  "vf_vmee0..VfVmee..base_vmme..module-0": {
+                  "vf_vgeraldine0..VfVgeraldine..base_vflorence..module-0": {
                     "uuid": "a27f5cfc-7f12-4f99-af08-0af9c3885c87",
                     "invariantUuid": "a6f9e51a-2b35-416a-ae15-15e58d61f36d",
                     "customizationUuid": "f8c040f1-7e51-4a11-aca8-acf256cfd861",
                     "description": null,
-                    "name": "VfVmee..base_vmme..module-0",
+                    "name": "VfVgeraldine..base_vflorence..module-0",
                     "version": "2",
-                    "modelCustomizationName": "VfVmee..base_vmme..module-0",
+                    "modelCustomizationName": "VfVgeraldine..base_vflorence..module-0",
                     "properties": {
                       "minCountInstances": 1,
                       "maxCountInstances": 1,
                       "initialCount": 1,
-                      "vfModuleLabel": "base_vmme"
+                      "vfModuleLabel": "base_vflorence"
                     },
                     "inputs": {}
                   }
@@ -327,7 +322,7 @@ class MockAppStore<T> {
                 "modelCustomizationName": "ExtVL 0"
               }
             },
-            "collectionResource": {},
+            "collectionResources": {},
             "configurations": {
               "Port Mirroring Configuration By Policy 0": {
                 "uuid": "b4398538-e89d-4f13-b33d-ca323434ba50",
@@ -348,72 +343,72 @@ class MockAppStore<T> {
             },
             "serviceProxies": {},
             "vfModules": {
-              "vf_vmee0..VfVmee..vmme_vlc..module-1": {
+              "vf_vgeraldine0..VfVgeraldine..vflorence_vlc..module-1": {
                 "uuid": "522159d5-d6e0-4c2a-aa44-5a542a12a830",
                 "invariantUuid": "98a7c88b-b577-476a-90e4-e25a5871e02b",
                 "customizationUuid": "55b1be94-671a-403e-a26c-667e9c47d091",
                 "description": null,
-                "name": "VfVmee..vmme_vlc..module-1",
+                "name": "VfVgeraldine..vflorence_vlc..module-1",
                 "version": "2",
-                "modelCustomizationName": "VfVmee..vmme_vlc..module-1",
+                "modelCustomizationName": "VfVgeraldine..vflorence_vlc..module-1",
                 "properties": {
                   "minCountInstances": 0,
                   "maxCountInstances": null,
                   "initialCount": 0,
-                  "vfModuleLabel": "vmme_vlc"
+                  "vfModuleLabel": "vflorence_vlc"
                 },
                 "inputs": {},
                 "volumeGroupAllowed": true
               },
-              "vf_vmee0..VfVmee..vmme_gpb..module-2": {
+              "vf_vgeraldine0..VfVgeraldine..vflorence_gpb..module-2": {
                 "uuid": "41708296-e443-4c71-953f-d9a010f059e1",
                 "invariantUuid": "1cca90b8-3490-495e-87da-3f3e4c57d5b9",
                 "customizationUuid": "6add59e0-7fe1-4bc4-af48-f8812422ae7c",
                 "description": null,
-                "name": "VfVmee..vmme_gpb..module-2",
+                "name": "VfVgeraldine..vflorence_gpb..module-2",
                 "version": "2",
-                "modelCustomizationName": "VfVmee..vmme_gpb..module-2",
+                "modelCustomizationName": "VfVgeraldine..vflorence_gpb..module-2",
                 "properties": {
                   "minCountInstances": 0,
                   "maxCountInstances": null,
                   "initialCount": 0,
-                  "vfModuleLabel": "vmme_gpb"
+                  "vfModuleLabel": "vflorence_gpb"
                 },
                 "inputs": {},
                 "volumeGroupAllowed": false
               },
-              "vf_vmee0..VfVmee..base_vmme..module-0": {
+              "vf_vgeraldine0..VfVgeraldine..base_vflorence..module-0": {
                 "uuid": "a27f5cfc-7f12-4f99-af08-0af9c3885c87",
                 "invariantUuid": "a6f9e51a-2b35-416a-ae15-15e58d61f36d",
                 "customizationUuid": "f8c040f1-7e51-4a11-aca8-acf256cfd861",
                 "description": null,
-                "name": "VfVmee..base_vmme..module-0",
+                "name": "VfVgeraldine..base_vflorence..module-0",
                 "version": "2",
-                "modelCustomizationName": "VfVmee..base_vmme..module-0",
+                "modelCustomizationName": "VfVgeraldine..base_vflorence..module-0",
                 "properties": {
                   "minCountInstances": 1,
                   "maxCountInstances": 1,
                   "initialCount": 1,
-                  "vfModuleLabel": "base_vmme"
+                  "vfModuleLabel": "base_vflorence"
                 },
                 "inputs": {},
                 "volumeGroupAllowed": true
               }
             },
             "volumeGroups": {
-              "vf_vmee0..VfVmee..base_vmme..module-0": {
+              "vf_vgeraldine0..VfVgeraldine..base_vflorence..module-0": {
                 "uuid": "a27f5cfc-7f12-4f99-af08-0af9c3885c87",
                 "invariantUuid": "a6f9e51a-2b35-416a-ae15-15e58d61f36d",
                 "customizationUuid": "f8c040f1-7e51-4a11-aca8-acf256cfd861",
                 "description": null,
-                "name": "VfVmee..base_vmme..module-0",
+                "name": "VfVgeraldine..base_vflorence..module-0",
                 "version": "2",
-                "modelCustomizationName": "VfVmee..base_vmme..module-0",
+                "modelCustomizationName": "VfVgeraldine..base_vflorence..module-0",
                 "properties": {
                   "minCountInstances": 1,
                   "maxCountInstances": 1,
                   "initialCount": 1,
-                  "vfModuleLabel": "base_vmme"
+                  "vfModuleLabel": "base_vflorence"
                 },
                 "inputs": {}
               }
@@ -425,21 +420,21 @@ class MockAppStore<T> {
           "6e59c5de-f052-46fa-aa7e-2fca9d674c44": {
             "networks": {},
             "vnfs": {
-              "VF_vMee 0": {
+              "VF_vGeraldine 0": {
                 "rollbackOnFailure": "true",
                 "vfModules": {
-                  "vf_vmee0..VfVmee..base_vmme..module-0": {
-                    "vf_vmee0..VfVmee..base_vmme..module-0vmvzo": {
+                  "vf_vgeraldine0..VfVgeraldine..base_vflorence..module-0": {
+                    "vf_vgeraldine0..VfVgeraldine..base_vflorence..module-0vmvzo": {
                       "isMissingData": false,
                       "sdncPreReload": null,
                       "modelInfo": {
                         "modelType": "VFmodule",
                         "modelInvariantId": "a6f9e51a-2b35-416a-ae15-15e58d61f36d",
                         "modelVersionId": "a27f5cfc-7f12-4f99-af08-0af9c3885c87",
-                        "modelName": "VfVmee..base_vmme..module-0",
+                        "modelName": "VfVgeraldine..base_vflorence..module-0",
                         "modelVersion": "2",
                         "modelCustomizationId": "f8c040f1-7e51-4a11-aca8-acf256cfd861",
-                        "modelCustomizationName": "VfVmee..base_vmme..module-0"
+                        "modelCustomizationName": "VfVgeraldine..base_vflorence..module-0"
                       },
                       "instanceParams": [
                         {}
@@ -449,8 +444,8 @@ class MockAppStore<T> {
                   }
                 },
                 "isMissingData": true,
-                "originalName": "VF_vMee 0",
-                "vnfStoreKey": "VF_vMee 0",
+                "originalName": "VF_vGeraldine 0",
+                "vnfStoreKey": "VF_vGeraldine 0",
                 "trackById": "p3wk448m5do",
                 "uuid": "d6557200-ecf2-4641-8094-5393ae3aae60",
                 "productFamilyId": "36b4733a-53f4-4cc8-8ff0-9172e5fc4b8e",
@@ -462,9 +457,9 @@ class MockAppStore<T> {
                   "modelType": "VF",
                   "modelInvariantId": "4160458e-f648-4b30-a176-43881ffffe9e",
                   "modelVersionId": "6e59c5de-f052-46fa-aa7e-2fca9d674c44",
-                  "modelName": "VF_vMee",
+                  "modelName": "VF_vGeraldine",
                   "modelVersion": "2.0",
-                  "modelCustomizationName": "VF_vMee 0"
+                  "modelCustomizationName": "VF_vGeraldine 0"
                 }
               }
             },
@@ -509,8 +504,8 @@ class MockAppStore<T> {
         "lcpRegionsAndTenants": {
           "lcpRegionList": [
             {
-              "id": "JANET25",
-              "name": "JANET25",
+              "id": "AAIAIC25",
+              "name": "AAIAIC25",
               "isPermitted": true
             },
             {
@@ -520,7 +515,7 @@ class MockAppStore<T> {
             }
           ],
           "lcpRegionsTenantsMap": {
-            "JANET25": [
+            "AAIAIC25": [
               {
                 "id": "092eb9e8e4b7412e8787dd091bc58e86",
                 "name": "USP-SIP-IC-24335-T-01",
@@ -534,8 +529,128 @@ class MockAppStore<T> {
                 "isPermitted": true
               },
               {
-                "id": "d0a3e3f2964542259d155a81c41aadc3",
-                "name": "test-hvf6-09",
+                "id": "229bcdc6eaeb4ca59d55221141d01f8e",
+                "name": "AIN Web Tool-15-D-STTest2",
+                "isPermitted": true
+              },
+              {
+                "id": "1178612d2b394be4834ad77f567c0af2",
+                "name": "AIN Web Tool-15-D-SSPtestcustome",
+                "isPermitted": true
+              },
+              {
+                "id": "19c5ade915eb461e8af52fb2fd8cd1f2",
+                "name": "AIN Web Tool-15-D-UncheckedEcopm",
+                "isPermitted": true
+              },
+              {
+                "id": "de007636e25249238447264a988a927b",
+                "name": "AIN Web Tool-15-D-dfsdf",
+                "isPermitted": true
+              },
+              {
+                "id": "62f29b3613634ca6a3065cbe0e020c44",
+                "name": "AIN/SMS-16-D-Multiservices1",
+                "isPermitted": true
+              },
+              {
+                "id": "649289e30d3244e0b48098114d63c2aa",
+                "name": "AIN Web Tool-15-D-SSPST66",
+                "isPermitted": true
+              },
+              {
+                "id": "3f21eeea6c2c486bba31dab816c05a32",
+                "name": "AIN Web Tool-15-D-ASSPST47",
+                "isPermitted": true
+              },
+              {
+                "id": "f60ce21d3ee6427586cff0d22b03b773",
+                "name": "CESAR-100-D-sspjg67246",
+                "isPermitted": true
+              },
+              {
+                "id": "8774659e425f479895ae091bb5d46560",
+                "name": "CESAR-100-D-sspjg68359",
+                "isPermitted": true
+              },
+              {
+                "id": "624eb554b0d147c19ff8885341760481",
+                "name": "AINWebTool-15-D-iftach",
+                "isPermitted": true
+              },
+              {
+                "id": "214f55f5fc414c678059c383b03e4962",
+                "name": "CESAR-100-D-sspjg612401",
+                "isPermitted": true
+              },
+              {
+                "id": "c90666c291664841bb98e4d981ff1db5",
+                "name": "CESAR-100-D-sspjg621340",
+                "isPermitted": true
+              },
+              {
+                "id": "ce5b6bc5c7b348e1bf4b91ac9a174278",
+                "name": "sspjg621351cloned",
+                "isPermitted": true
+              },
+              {
+                "id": "b386b768a3f24c8e953abbe0b3488c02",
+                "name": "AINWebTool-15-D-eteancomp",
+                "isPermitted": true
+              },
+              {
+                "id": "dc6c4dbfd225474e9deaadd34968646c",
+                "name": "AINWebTool-15-T-SPFET",
+                "isPermitted": true
+              },
+              {
+                "id": "02cb5030e9914aa4be120bd9ed1e19eb",
+                "name": "AINWebTool-15-X-eeweww",
+                "isPermitted": true
+              },
+              {
+                "id": "f2f3830e4c984d45bcd00e1a04158a79",
+                "name": "CESAR-100-D-spjg61909",
+                "isPermitted": true
+              },
+              {
+                "id": "05b91bd5137f4929878edd965755c06d",
+                "name": "CESAR-100-D-sspjg621512cloned",
+                "isPermitted": true
+              },
+              {
+                "id": "7002fbe8482d4a989ddf445b1ce336e0",
+                "name": "AINWebTool-15-X-vdr",
+                "isPermitted": true
+              },
+              {
+                "id": "4008522be43741dcb1f5422022a2aa0b",
+                "name": "AINWebTool-15-D-ssasa",
+                "isPermitted": true
+              },
+              {
+                "id": "f44e2e96a1b6476abfda2fa407b00169",
+                "name": "AINWebTool-15-D-PFNPT",
+                "isPermitted": true
+              },
+              {
+                "id": "b69a52bec8a84669a37a1e8b72708be7",
+                "name": "AINWebTool-15-X-vdre",
+                "isPermitted": true
+              },
+              {
+                "id": "fac7d9fd56154caeb9332202dcf2969f",
+                "name": "AINWebTool-15-X-NONPODECOMP",
+                "isPermitted": true
+              },
+              {
+                "id": "2d34d8396e194eb49969fd61ffbff961",
+                "name": "DN5242-Nov16-T5",
+                "isPermitted": true
+              },
+              {
+                "id": "cb42a77ff45b48a8b8deb83bb64acc74",
+                "name": "ro-T11",
                 "isPermitted": true
               },
               {
@@ -543,6 +658,16 @@ class MockAppStore<T> {
                 "name": "ro-T112",
                 "isPermitted": true
               },
+              {
+                "id": "4914ab0ab3a743e58f0eefdacc1dde77",
+                "name": "DN5242-Nov21-T1",
+                "isPermitted": true
+              },
+              {
+                "id": "d0a3e3f2964542259d155a81c41aadc3",
+                "name": "test-hvf6-09",
+                "isPermitted": true
+              },
               {
                 "id": "cbb99fe4ada84631b7baf046b6fd2044",
                 "name": "DN5242-Nov16-T3",
@@ -554,7 +679,7 @@ class MockAppStore<T> {
         "productFamilies": [
           {
             "id": "ebc3bc3d-62fd-4a3f-a037-f619df4ff034",
-            "name": "SCOTTIE",
+            "name": "ERICA",
             "isPermitted": true
           },
           {
@@ -579,7 +704,7 @@ class MockAppStore<T> {
           },
           {
             "id": "323d69d9-2efe-4r45-ay0a-89ea7ard4e6f",
-            "name": "vSCP",
+            "name": "vEsmeralda",
             "isPermitted": true
           },
           {
@@ -623,7 +748,7 @@ class MockAppStore<T> {
             "isPermitted": true
           },
           {
-            "id": "Cisneros",
+            "id": "vMuriel",
             "name": "vMuriel",
             "isPermitted": true
           },
@@ -649,7 +774,7 @@ class MockAppStore<T> {
           },
           {
             "id": "d7bb0a21-66f2-4e6d-87d9-9ef3ced63ae4",
-            "name": "Josefina",
+            "name": "JOSEFINA",
             "isPermitted": true
           },
           {
@@ -697,7 +822,7 @@ class MockAppStore<T> {
             },
             {
               "id": "6",
-              "name": "vSEGW",
+              "name": "vPorfirio",
               "isPermitted": false
             },
             {
@@ -712,7 +837,7 @@ class MockAppStore<T> {
             },
             {
               "id": "9",
-              "name": "vMME",
+              "name": "vFLORENCE",
               "isPermitted": false
             },
             {
@@ -722,7 +847,7 @@ class MockAppStore<T> {
             },
             {
               "id": "11",
-              "name": "vSCP",
+              "name": "vEsmeralda",
               "isPermitted": false
             },
             {
@@ -732,7 +857,7 @@ class MockAppStore<T> {
             },
             {
               "id": "13",
-              "name": "vMMSC",
+              "name": "vWINIFRED",
               "isPermitted": false
             },
             {
@@ -775,6 +900,754 @@ class MockAppStore<T> {
             "id": "YYY1",
             "name": "UUUAIAAI-YYY1"
           },
+          {
+            "id": "BAN1",
+            "name": "VSDKYUTP-BAN1"
+          },
+          {
+            "id": "DKJ1",
+            "name": "DKJSJDKA-DKJ1"
+          },
+          {
+            "id": "MCS1",
+            "name": "ASACMAMS-MCS1"
+          },
+          {
+            "id": "UIO1",
+            "name": "uioclli1-UIO1"
+          },
+          {
+            "id": "RAJ1",
+            "name": "YGBIJNLQ-RAJ1"
+          },
+          {
+            "id": "OPA1",
+            "name": "opaclli1-OPA1"
+          },
+          {
+            "id": "SDE1",
+            "name": "ZXCVBNMA-SDE1"
+          },
+          {
+            "id": "VEN2",
+            "name": "FGHJUHIL-VEN2"
+          },
+          {
+            "id": "ORL1",
+            "name": "ORLDFLMA-ORL1"
+          },
+          {
+            "id": "JAD1",
+            "name": "JADECLLI-JAD1"
+          },
+          {
+            "id": "ZXL1",
+            "name": "LWLWCANN-ZXL1"
+          },
+          {
+            "id": "CKL1",
+            "name": "CLKSKCKK-CKL1"
+          },
+          {
+            "id": "SDF1",
+            "name": "sdfclli1-SDF1"
+          },
+          {
+            "id": "RAD1",
+            "name": "RADICAL1-RAD1"
+          },
+          {
+            "id": "KIT1",
+            "name": "BHYJFGLN-KIT1"
+          },
+          {
+            "id": "REL1",
+            "name": "INGERFGT-REL1"
+          },
+          {
+            "id": "JNL1",
+            "name": "CJALSDAC-JNL1"
+          },
+          {
+            "id": "OLK1",
+            "name": "OLKOLKLS-OLK1"
+          },
+          {
+            "id": "CHI1",
+            "name": "CHILLIWE-CHI1"
+          },
+          {
+            "id": "UUU4",
+            "name": "UUUAAAUU-UUU4"
+          },
+          {
+            "id": "TUF1",
+            "name": "TUFCLLI1-TUF1"
+          },
+          {
+            "id": "KJN1",
+            "name": "CKALDKSA-KJN1"
+          },
+          {
+            "id": "SAM1",
+            "name": "SNDGCA64-SAN1"
+          },
+          {
+            "id": "SCK1",
+            "name": "SCKSCKSK-SCK1"
+          },
+          {
+            "id": "HJH1",
+            "name": "AOEEQQQD-HJH1"
+          },
+          {
+            "id": "HGD1",
+            "name": "SDFQWHGD-HGD1"
+          },
+          {
+            "id": "KOR1",
+            "name": "HYFLNBVT-KOR1"
+          },
+          {
+            "id": "ATL43",
+            "name": "AICLOCID-ATL43"
+          },
+          {
+            "id": "ATL54",
+            "name": "AICFTAAI-ATL54"
+          },
+          {
+            "id": "ATL66",
+            "name": "CLLIAAII-ATL66"
+          },
+          {
+            "id": "VEL1",
+            "name": "BNMLKUIK-VEL1"
+          },
+          {
+            "id": "ICC1",
+            "name": "SANJITAT-ICC1"
+          },
+          {
+            "id": "MNT11",
+            "name": "WSXEFBTH-MNT11"
+          },
+          {
+            "id": "DEF2",
+            "name": "WSBHGTYL-DEF2"
+          },
+          {
+            "id": "MAD11",
+            "name": "SDFQWGKL-MAD11"
+          },
+          {
+            "id": "OLG1",
+            "name": "OLHOLHOL-OLG1"
+          },
+          {
+            "id": "GAR1",
+            "name": "NGFVSJKO-GAR1"
+          },
+          {
+            "id": "SAN22",
+            "name": "GNVLSCTL-SAN22"
+          },
+          {
+            "id": "HRG1",
+            "name": "HRGHRGGS-HRG1"
+          },
+          {
+            "id": "JCS1",
+            "name": "JCSJSCJS-JCS1"
+          },
+          {
+            "id": "DHA12",
+            "name": "WSXEDECF-DHA12"
+          },
+          {
+            "id": "HJE1",
+            "name": "AOEEWWWD-HJE1"
+          },
+          {
+            "id": "NCA1",
+            "name": "NCANCANN-NCA1"
+          },
+          {
+            "id": "IOP1",
+            "name": "iopclli1-IOP1"
+          },
+          {
+            "id": "RTY1",
+            "name": "rtyclli1-RTY1"
+          },
+          {
+            "id": "KAP1",
+            "name": "HIOUYTRQ-KAP1"
+          },
+          {
+            "id": "ZEN1",
+            "name": "ZENCLLI1-ZEN1"
+          },
+          {
+            "id": "HKA1",
+            "name": "JAKHLASS-HKA1"
+          },
+          {
+            "id": "CQK1",
+            "name": "CQKSCAKK-CQK1"
+          },
+          {
+            "id": "SAI1",
+            "name": "UBEKQLPD-SAI1"
+          },
+          {
+            "id": "ERT1",
+            "name": "ertclli1-ERT1"
+          },
+          {
+            "id": "IBB1",
+            "name": "PLMKOIJU-IBB1"
+          },
+          {
+            "id": "TIR2",
+            "name": "PLKINHYI-TIR2"
+          },
+          {
+            "id": "HSD1",
+            "name": "CHASKCDS-HSD1"
+          },
+          {
+            "id": "SLF78",
+            "name": "SDCTLFN1-SLF78"
+          },
+          {
+            "id": "SEE78",
+            "name": "SDCTEEE4-SEE78"
+          },
+          {
+            "id": "SAN13",
+            "name": "TOKYJPFA-SAN13"
+          },
+          {
+            "id": "SAA78",
+            "name": "SDCTAAA1-SAA78"
+          },
+          {
+            "id": "LUC1",
+            "name": "ATLDFGYC-LUC1"
+          },
+          {
+            "id": "AMD13",
+            "name": "MEMATLAN-AMD13"
+          },
+          {
+            "id": "TOR1",
+            "name": "TOROONXN-TOR1"
+          },
+          {
+            "id": "QWE1",
+            "name": "QWECLLI1-QWE1"
+          },
+          {
+            "id": "ZOG1",
+            "name": "ZOGASTRO-ZOG1"
+          },
+          {
+            "id": "CAL33",
+            "name": "CALIFORN-CAL33"
+          },
+          {
+            "id": "SHH78",
+            "name": "SDIT1HHH-SHH78"
+          },
+          {
+            "id": "DSA1",
+            "name": "LKJHGFDS-DSA1"
+          },
+          {
+            "id": "CLG1",
+            "name": "CLGRABAD-CLG1"
+          },
+          {
+            "id": "BNA1",
+            "name": "BNARAGBK-BNA1"
+          },
+          {
+            "id": "ATL84",
+            "name": "CANTTCOC-ATL84"
+          },
+          {
+            "id": "APP1",
+            "name": "WBHGTYUI-APP1"
+          },
+          {
+            "id": "RJN1",
+            "name": "RJNRBZAW-RJN1"
+          },
+          {
+            "id": "EHH78",
+            "name": "SDCSHHH5-EHH78"
+          },
+          {
+            "id": "mac10",
+            "name": "PKGTESTF-mac10"
+          },
+          {
+            "id": "SXB78",
+            "name": "SDCTGXB1-SXB78"
+          },
+          {
+            "id": "SAX78",
+            "name": "SDCTAXG1-SAX78"
+          },
+          {
+            "id": "SYD1",
+            "name": "SYDNAUBV-SYD1"
+          },
+          {
+            "id": "TOK1",
+            "name": "TOKYJPFA-TOK1"
+          },
+          {
+            "id": "KGM2",
+            "name": "KGMTNC20-KGM2"
+          },
+          {
+            "id": "DCC1b",
+            "name": "POIUYTGH-DCC1b"
+          },
+          {
+            "id": "SKK78",
+            "name": "SDCTKKK1-SKK78"
+          },
+          {
+            "id": "SGG78",
+            "name": "SDCTGGG1-SGG78"
+          },
+          {
+            "id": "SJJ78",
+            "name": "SDCTJJJ1-SJJ78"
+          },
+          {
+            "id": "SBX78",
+            "name": "SDCTBXG1-SBX78"
+          },
+          {
+            "id": "LAG1",
+            "name": "LARGIZON-LAG1"
+          },
+          {
+            "id": "IAA1",
+            "name": "QAZXSWED-IAA1"
+          },
+          {
+            "id": "POI1",
+            "name": "PLMNJKIU-POI1"
+          },
+          {
+            "id": "LAG1a",
+            "name": "LARGIZON-LAG1a"
+          },
+          {
+            "id": "PBL1",
+            "name": "PBLAPBAI-PBL1"
+          },
+          {
+            "id": "LAG45",
+            "name": "LARGIZON-LAG1a"
+          },
+          {
+            "id": "MAR1",
+            "name": "MNBVCXZM-MAR1"
+          },
+          {
+            "id": "HST70",
+            "name": "HSTNTX70-HST70"
+          },
+          {
+            "id": "DCC1a",
+            "name": "POIUYTGH-DCC1a"
+          },
+          {
+            "id": "TOL1",
+            "name": "TOLDOH21-TOL1"
+          },
+          {
+            "id": "LON1",
+            "name": "LONEENCO-LON1"
+          },
+          {
+            "id": "SJU78",
+            "name": "SDIT1JUB-SJU78"
+          },
+          {
+            "id": "STN27",
+            "name": "HSTNTX01-STN27"
+          },
+          {
+            "id": "SSW56",
+            "name": "ss8126GT-SSW56"
+          },
+          {
+            "id": "SBB78",
+            "name": "SDIT1BBB-SBB78"
+          },
+          {
+            "id": "DCC3",
+            "name": "POIUYTGH-DCC3"
+          },
+          {
+            "id": "GNV1",
+            "name": "GNVLSCTL-GNV1"
+          },
+          {
+            "id": "WAS1",
+            "name": "WASHDCSW-WAS1"
+          },
+          {
+            "id": "TOY1",
+            "name": "TORYONNZ-TOY1"
+          },
+          {
+            "id": "STT1",
+            "name": "STTLWA02-STT1"
+          },
+          {
+            "id": "STG1",
+            "name": "STTGGE62-STG1"
+          },
+          {
+            "id": "SLL78",
+            "name": "SDCTLLL1-SLL78"
+          },
+          {
+            "id": "SBU78",
+            "name": "SDIT1BUB-SBU78"
+          },
+          {
+            "id": "ATL2",
+            "name": "ATLNGANW-ATL2"
+          },
+          {
+            "id": "BOT1",
+            "name": "BOTHWAKY-BOT1"
+          },
+          {
+            "id": "SNG1",
+            "name": "SNGPSIAU-SNG1"
+          },
+          {
+            "id": "NYC1",
+            "name": "NYCMNY54-NYC1"
+          },
+          {
+            "id": "LAG1b",
+            "name": "LARGIZON-LAG1b"
+          },
+          {
+            "id": "AMD15",
+            "name": "AMDFAA01-AMD15"
+          },
+          {
+            "id": "SNA1",
+            "name": "SNANTXCA-SNA1"
+          },
+          {
+            "id": "PLT1",
+            "name": "PLTNCA60-PLT1"
+          },
+          {
+            "id": "TLP1",
+            "name": "TLPNXM18-TLP1"
+          },
+          {
+            "id": "SDD81",
+            "name": "SAIT1DD6-SDD81"
+          },
+          {
+            "id": "DCC1",
+            "name": "POIUYTGH-DCC1"
+          },
+          {
+            "id": "DCC2",
+            "name": "POIUYTGH-DCC2"
+          },
+          {
+            "id": "OKC1",
+            "name": "OKCBOK55-OKC1"
+          },
+          {
+            "id": "PAR1",
+            "name": "PARSFRCG-PAR1"
+          },
+          {
+            "id": "TES36",
+            "name": "ABCEETES-TES36"
+          },
+          {
+            "id": "COM1",
+            "name": "PLMKOPIU-COM1"
+          },
+          {
+            "id": "ANI1",
+            "name": "ATLNGTRE-ANI1"
+          },
+          {
+            "id": "SDG78",
+            "name": "SDIT1BDG-SDG78"
+          },
+          {
+            "id": "mac20",
+            "name": "PKGTESTF-mac20"
+          },
+          {
+            "id": "DSF45",
+            "name": "DSFBG123-DSF45"
+          },
+          {
+            "id": "HST25",
+            "name": "HSTNTX01-HST25"
+          },
+          {
+            "id": "AMD18",
+            "name": "AUDIMA01-AMD18"
+          },
+          {
+            "id": "SAA80",
+            "name": "SAIT9AA3-SAA80"
+          },
+          {
+            "id": "SSA56",
+            "name": "SSIT2AA7-SSA56"
+          },
+          {
+            "id": "SDD82",
+            "name": "SAIT1DD9-SDD82"
+          },
+          {
+            "id": "JCV1",
+            "name": "JCVLFLBW-JCV1"
+          },
+          {
+            "id": "SUL2",
+            "name": "WERTYUJK-SUL2"
+          },
+          {
+            "id": "PUR1",
+            "name": "purelyde-PUR1"
+          },
+          {
+            "id": "FDE55",
+            "name": "FDERT555-FDE55"
+          },
+          {
+            "id": "SITE",
+            "name": "LONEENCO-SITE"
+          },
+          {
+            "id": "ATL1",
+            "name": "ATLNGAMA-ATL1"
+          },
+          {
+            "id": "JUL1",
+            "name": "ZXCVBNMM-JUL1"
+          },
+          {
+            "id": "TAT34",
+            "name": "TESAAISB-TAT34"
+          },
+          {
+            "id": "XCP12",
+            "name": "CHKGH123-XCP12"
+          },
+          {
+            "id": "RAI1",
+            "name": "poiuytre-RAI1"
+          },
+          {
+            "id": "HPO1",
+            "name": "ATLNGAUP-HPO1"
+          },
+          {
+            "id": "KJF12",
+            "name": "KJFDH123-KJF12"
+          },
+          {
+            "id": "SCC80",
+            "name": "SAIT9CC3-SCC80"
+          },
+          {
+            "id": "SAA12",
+            "name": "SAIT9AF8-SAA12"
+          },
+          {
+            "id": "SAA14",
+            "name": "SAIT1AA9-SAA14"
+          },
+          {
+            "id": "ATL35",
+            "name": "TTESSAAI-ATL35"
+          },
+          {
+            "id": "CWY1",
+            "name": "CWYMOWBS-CWY1"
+          },
+          {
+            "id": "ATL76",
+            "name": "TELEPAAI-ATL76"
+          },
+          {
+            "id": "DSL12",
+            "name": "DSLFK242-DSL12"
+          },
+          {
+            "id": "ATL53",
+            "name": "AAIATLTE-ATL53"
+          },
+          {
+            "id": "SAA11",
+            "name": "SAIT9AA2-SAA11"
+          },
+          {
+            "id": "ATL62",
+            "name": "TESSASCH-ATL62"
+          },
+          {
+            "id": "AUG1",
+            "name": "ASDFGHJK-AUG1"
+          },
+          {
+            "id": "POI22",
+            "name": "POIUY123-POI22"
+          },
+          {
+            "id": "SAA13",
+            "name": "SAIT1AA9-SAA13"
+          },
+          {
+            "id": "BHY17",
+            "name": "BHYTFRF3-BHY17"
+          },
+          {
+            "id": "LIS1",
+            "name": "HOSTPROF-LIS1"
+          },
+          {
+            "id": "SIP1",
+            "name": "ZXCVBNMK-SIP1"
+          },
+          {
+            "id": "ATL99",
+            "name": "TEESTAAI-ATL43"
+          },
+          {
+            "id": "ATL64",
+            "name": "FORLOAAJ-ATL64"
+          },
+          {
+            "id": "TAT33",
+            "name": "TESAAISA-TAT33"
+          },
+          {
+            "id": "RAD10",
+            "name": "INDIPUNE-RAD10"
+          },
+          {
+            "id": "RTW5",
+            "name": "BHYTFRY4-RTW5"
+          },
+          {
+            "id": "JGS1",
+            "name": "KSJKKKKK-JGS1"
+          },
+          {
+            "id": "ATL98",
+            "name": "TEESTAAI-ATL43"
+          },
+          {
+            "id": "WAN1",
+            "name": "LEIWANGW-WAN1"
+          },
+          {
+            "id": "ATL44",
+            "name": "ATLSANAB-ATL44"
+          },
+          {
+            "id": "RTD2",
+            "name": "BHYTFRk4-RTD2"
+          },
+          {
+            "id": "NIR1",
+            "name": "ORFLMANA-NIR1"
+          },
+          {
+            "id": "ATL75",
+            "name": "SANAAIRE-ATL75"
+          },
+          {
+            "id": "NUM1",
+            "name": "QWERTYUI-NUM1"
+          },
+          {
+            "id": "hvf32",
+            "name": "MDTWNJ21-hvf32"
+          },
+          {
+            "id": "RTZ4",
+            "name": "BHYTFRZ6-RTZ4"
+          },
+          {
+            "id": "ATL56",
+            "name": "ATLSANAC-ATL56"
+          },
+          {
+            "id": "AMS1",
+            "name": "AMSTNLBW-AMS1"
+          },
+          {
+            "id": "RCT1",
+            "name": "AMSTERNL-RCT1"
+          },
+          {
+            "id": "JAN1",
+            "name": "ORFLMATT-JAN1"
+          },
+          {
+            "id": "ABC14",
+            "name": "TESAAISA-ABC14"
+          },
+          {
+            "id": "TAT37",
+            "name": "TESAAISD-TAT37"
+          },
+          {
+            "id": "MIC54",
+            "name": "MICHIGAN-MIC54"
+          },
+          {
+            "id": "ABC11",
+            "name": "ATLSANAI-ABC11"
+          },
+          {
+            "id": "AMF11",
+            "name": "AMDOCS01-AMF11"
+          },
+          {
+            "id": "ATL63",
+            "name": "ATLSANEW-ATL63"
+          },
+          {
+            "id": "ABC12",
+            "name": "ATLSECIA-ABC12"
+          },
+          {
+            "id": "hvf20",
+            "name": "MDTWNJ21-hvf20"
+          },
+          {
+            "id": "ABC15",
+            "name": "AAITESAN-ABC15"
+          },
           {
             "id": "AVT1",
             "name": "AVTRFLHD-AVT1"
@@ -948,7 +1821,7 @@ describe('VFModule Control Generator', () => {
   test(' getMacroFormControls gets vnfStoreKey === null', () => {
     const serviceId: string = "6e59c5de-f052-46fa-aa7e-2fca9d674c44";
     const vnfStoreKey: string = null;
-    const vfModuleStoreKey: string = 'vf_vmee0..VfVmee..base_vmme..module-0';
+    const vfModuleStoreKey: string = 'vf_vgeraldine0..VfVgeraldine..base_vflorence..module-0';
     const vfModuleUUID: string = "522159d5-d6e0-4c2a-aa44-5a542a12a830";
     const controls: FormControlModel[] = service.getMacroFormControls(serviceId, vnfStoreKey, vfModuleStoreKey, vfModuleUUID, true);
 
@@ -958,15 +1831,15 @@ describe('VFModule Control Generator', () => {
 
   test('getAlaCarteFormControls check for mandatory controls', () => {
     const serviceId: string = "6e59c5de-f052-46fa-aa7e-2fca9d674c44";
-    const vnfStoreKey: string = 'VF_vMee 0';
-    const vfModuleStoreKey: string = 'vf_vmee0..VfVmee..base_vmme..module-0';
+    const vnfStoreKey: string = 'VF_vGeraldine 0';
+    const vfModuleStoreKey: string = 'vf_vgeraldine0..VfVgeraldine..base_vflorence..module-0';
     const uuidData: Object = {
       modelId : "522159d5-d6e0-4c2a-aa44-5a542a12a830",
-      modelName :  "vf_vmee0..VfVmee..base_vmme..module-0",
+      modelName :  "vf_vgeraldine0..VfVgeraldine..base_vflorence..module-0",
       serviceId : "6e59c5de-f052-46fa-aa7e-2fca9d674c44",
       type : "VFmodule",
-      vFModuleStoreKey : "vf_vmee0..VfVmee..base_vmme..module-0vmvzo",
-      vnfStoreKey : "VF_vMee 0"
+      vFModuleStoreKey : "vf_vgeraldine0..VfVgeraldine..base_vflorence..module-0vmvzo",
+      vnfStoreKey : "VF_vGeraldine 0"
     };
     const controls: FormControlModel[] = service.getAlaCarteFormControls(serviceId, vnfStoreKey, vfModuleStoreKey, uuidData, true);
 
@@ -985,14 +1858,14 @@ describe('VFModule Control Generator', () => {
 
   test('getMacroFormControls check for mandatory controls', () => {
     const serviceId: string = "6e59c5de-f052-46fa-aa7e-2fca9d674c44";
-    const vnfStoreKey: string = 'VF_vMee 0';
+    const vnfStoreKey: string = 'VF_vGeraldine 0';
     const uuidData: Object = {
       modelId : "a27f5cfc-7f12-4f99-af08-0af9c3885c87",
-      modelName :  "vf_vmee0..VfVmee..base_vmme..module-0",
+      modelName :  "vf_vgeraldine0..VfVgeraldine..base_vflorence..module-0",
       serviceId : "6e59c5de-f052-46fa-aa7e-2fca9d674c44",
       type : "VFmodule",
-      vFModuleStoreKey : "vf_vmee0..VfVmee..base_vmme..module-0vmvzo",
-      vnfStoreKey : "VF_vMee 0"
+      vFModuleStoreKey : "vf_vgeraldine0..VfVgeraldine..base_vflorence..module-0vmvzo",
+      vnfStoreKey : "VF_vGeraldine 0"
     };
     const controls: FormControlModel[] = service.getMacroFormControls(serviceId, vnfStoreKey, vnfStoreKey, uuidData, true);
 
@@ -1038,15 +1911,15 @@ describe('VFModule Control Generator', () => {
 
   function getAlaCarteFormControls():FormControlModel[] {
     const serviceId: string = "6e59c5de-f052-46fa-aa7e-2fca9d674c44";
-    const vnfStoreKey: string = 'VF_vMee 0';
+    const vnfStoreKey: string = 'VF_vGeraldine 0';
     const vfModuleUUID: string = "522159d5-d6e0-4c2a-aa44-5a542a12a830";
     const uuidData: Object = {
       modelId: "a27f5cfc-7f12-4f99-af08-0af9c3885c87",
-      modelName: "vf_vmee0..VfVmee..base_vmme..module-0",
+      modelName: "vf_vgeraldine0..VfVgeraldine..base_vflorence..module-0",
       serviceId: "6e59c5de-f052-46fa-aa7e-2fca9d674c44",
       type: "VFmodule",
-      vFModuleStoreKey: "vf_vmee0..VfVmee..base_vmme..module-0vmvzo",
-      vnfStoreKey: "VF_vMee 0"
+      vFModuleStoreKey: "vf_vgeraldine0..VfVgeraldine..base_vflorence..module-0vmvzo",
+      vnfStoreKey: "VF_vGeraldine 0"
     };
     const controls: FormControlModel[] = service.getAlaCarteFormControls(serviceId, vnfStoreKey, vfModuleUUID, uuidData, true);
     return controls;
@@ -1074,15 +1947,15 @@ describe('VFModule Control Generator', () => {
 
   test('getMacroFormControls should return the correct order of controls', () => {
     const serviceId: string = "6e59c5de-f052-46fa-aa7e-2fca9d674c44";
-    const vnfStoreKey: string = 'VF_vMee 0';
+    const vnfStoreKey: string = 'VF_vGeraldine 0';
     const vfModuleUUID: string = "522159d5-d6e0-4c2a-aa44-5a542a12a830";
     const uuidData: Object = {
       modelId : "a27f5cfc-7f12-4f99-af08-0af9c3885c87",
-      modelName :  "vf_vmee0..VfVmee..base_vmme..module-0",
+      modelName :  "vf_vgeraldine0..VfVgeraldine..base_vflorence..module-0",
       serviceId : "6e59c5de-f052-46fa-aa7e-2fca9d674c44",
       type : "VFmodule",
-      vFModuleStoreKey : "vf_vmee0..VfVmee..base_vmme..module-0vmvzo",
-      vnfStoreKey : "VF_vMee 0"
+      vFModuleStoreKey : "vf_vgeraldine0..VfVgeraldine..base_vflorence..module-0vmvzo",
+      vnfStoreKey : "VF_vGeraldine 0"
     };
     const controls: FormControlModel[] = service.getMacroFormControls(serviceId, vnfStoreKey, vfModuleUUID, uuidData, true);
 
index d80ccde..a99856c 100644 (file)
@@ -26,15 +26,10 @@ class MockAppStore<T> {
           "FLAG_NETWORK_TO_ASYNC_INSTANTIATION": false,
           "FLAG_SHOW_ASSIGNMENTS": true,
           "FLAG_FABRIC_CONFIGURATION_ASSIGNMENTS": true,
-          "FLAG_UNASSIGN_SERVICE": true,
           "FLAG_SHOW_VERIFY_SERVICE": false,
-          "FLAG_COLLECTION_RESOURCE_SUPPORT": true,
-          "FLAG_DUPLICATE_VNF": true,
           "FLAG_SERVICE_MODEL_CACHE": true,
           "CREATE_INSTANCE_TEST": false,
           "FLAG_SETTING_DEFAULTS_IN_DRAWING_BOARD": false,
-          "FLAG_ASYNC_INSTANTIATION": true,
-          "FLAG_ASYNC_JOBS": true,
           "EMPTY_DRAWING_BOARD_TEST": false,
           "FLAG_ADD_MSO_TESTAPI_FIELD": true
         },
@@ -58,11 +53,11 @@ class MockAppStore<T> {
               "inputs": {}
             },
             "vnfs": {
-              "VF_vMee 0": {
+              "VF_vGeraldine 0": {
                 "uuid": "d6557200-ecf2-4641-8094-5393ae3aae60",
                 "invariantUuid": "4160458e-f648-4b30-a176-43881ffffe9e",
-                "description": "VSP_vMee",
-                "name": "VF_vMee",
+                "description": "VSP_vGeraldine",
+                "name": "VF_vGeraldine",
                 "version": "2.0",
                 "customizationUuid": "91415b44-753d-494c-926a-456a9172bbb9",
                 "inputs": {},
@@ -233,74 +228,74 @@ class MockAppStore<T> {
                   "sctp-b-egress-dst_end_port": "65535.0"
                 },
                 "type": "VF",
-                "modelCustomizationName": "VF_vMee 0",
+                "modelCustomizationName": "VF_vGeraldine 0",
                 "vfModules": {
-                  "vf_vmee0..VfVmee..vmme_vlc..module-1": {
+                  "vf_vgeraldine0..VfVgeraldine..vflorence_vlc..module-1": {
                     "uuid": "522159d5-d6e0-4c2a-aa44-5a542a12a830",
                     "invariantUuid": "98a7c88b-b577-476a-90e4-e25a5871e02b",
                     "customizationUuid": "55b1be94-671a-403e-a26c-667e9c47d091",
                     "description": null,
-                    "name": "VfVmee..vmme_vlc..module-1",
+                    "name": "VfVgeraldine..vflorence_vlc..module-1",
                     "version": "2",
-                    "modelCustomizationName": "VfVmee..vmme_vlc..module-1",
+                    "modelCustomizationName": "VfVgeraldine..vflorence_vlc..module-1",
                     "properties": {
                       "minCountInstances": 0,
                       "maxCountInstances": null,
                       "initialCount": 0,
-                      "vfModuleLabel": "vmme_vlc"
+                      "vfModuleLabel": "vflorence_vlc"
                     },
                     "inputs": {},
                     "volumeGroupAllowed": true
                   },
-                  "vf_vmee0..VfVmee..vmme_gpb..module-2": {
+                  "vf_vgeraldine0..VfVgeraldine..vflorence_gpb..module-2": {
                     "uuid": "41708296-e443-4c71-953f-d9a010f059e1",
                     "invariantUuid": "1cca90b8-3490-495e-87da-3f3e4c57d5b9",
                     "customizationUuid": "6add59e0-7fe1-4bc4-af48-f8812422ae7c",
                     "description": null,
-                    "name": "VfVmee..vmme_gpb..module-2",
+                    "name": "VfVgeraldine..vflorence_gpb..module-2",
                     "version": "2",
-                    "modelCustomizationName": "VfVmee..vmme_gpb..module-2",
+                    "modelCustomizationName": "VfVgeraldine..vflorence_gpb..module-2",
                     "properties": {
                       "minCountInstances": 0,
                       "maxCountInstances": null,
                       "initialCount": 0,
-                      "vfModuleLabel": "vmme_gpb"
+                      "vfModuleLabel": "vflorence_gpb"
                     },
                     "inputs": {},
                     "volumeGroupAllowed": false
                   },
-                  "vf_vmee0..VfVmee..base_vmme..module-0": {
+                  "vf_vgeraldine0..VfVgeraldine..base_vflorence..module-0": {
                     "uuid": "a27f5cfc-7f12-4f99-af08-0af9c3885c87",
                     "invariantUuid": "a6f9e51a-2b35-416a-ae15-15e58d61f36d",
                     "customizationUuid": "f8c040f1-7e51-4a11-aca8-acf256cfd861",
                     "description": null,
-                    "name": "VfVmee..base_vmme..module-0",
+                    "name": "VfVgeraldine..base_vflorence..module-0",
                     "version": "2",
-                    "modelCustomizationName": "VfVmee..base_vmme..module-0",
+                    "modelCustomizationName": "VfVgeraldine..base_vflorence..module-0",
                     "properties": {
                       "minCountInstances": 1,
                       "maxCountInstances": 1,
                       "initialCount": 1,
-                      "vfModuleLabel": "base_vmme"
+                      "vfModuleLabel": "base_vflorence"
                     },
                     "inputs": {},
                     "volumeGroupAllowed": true
                   }
                 },
                 "volumeGroups": {
-                  "vf_vmee0..VfVmee..base_vmme..module-0": {
+                  "vf_vgeraldine0..VfVgeraldine..base_vflorence..module-0": {
                     "uuid": "a27f5cfc-7f12-4f99-af08-0af9c3885c87",
                     "invariantUuid": "a6f9e51a-2b35-416a-ae15-15e58d61f36d",
                     "customizationUuid": "f8c040f1-7e51-4a11-aca8-acf256cfd861",
                     "description": null,
-                    "name": "VfVmee..base_vmme..module-0",
+                    "name": "VfVgeraldine..base_vflorence..module-0",
                     "version": "2",
-                    "modelCustomizationName": "VfVmee..base_vmme..module-0",
+                    "modelCustomizationName": "VfVgeraldine..base_vflorence..module-0",
                     "properties": {
                       "minCountInstances": 1,
                       "maxCountInstances": 1,
                       "initialCount": 1,
-                      "vfModuleLabel": "base_vmme"
+                      "vfModuleLabel": "base_vflorence"
                     },
                     "inputs": {}
                   }
@@ -328,7 +323,7 @@ class MockAppStore<T> {
                 "modelCustomizationName": "ExtVL 0"
               }
             },
-            "collectionResource": {},
+            "collectionResources": {},
             "configurations": {
               "Port Mirroring Configuration By Policy 0": {
                 "uuid": "b4398538-e89d-4f13-b33d-ca323434ba50",
@@ -349,72 +344,72 @@ class MockAppStore<T> {
             },
             "serviceProxies": {},
             "vfModules": {
-              "vf_vmee0..VfVmee..vmme_vlc..module-1": {
+              "vf_vgeraldine0..VfVgeraldine..vflorence_vlc..module-1": {
                 "uuid": "522159d5-d6e0-4c2a-aa44-5a542a12a830",
                 "invariantUuid": "98a7c88b-b577-476a-90e4-e25a5871e02b",
                 "customizationUuid": "55b1be94-671a-403e-a26c-667e9c47d091",
                 "description": null,
-                "name": "VfVmee..vmme_vlc..module-1",
+                "name": "VfVgeraldine..vflorence_vlc..module-1",
                 "version": "2",
-                "modelCustomizationName": "VfVmee..vmme_vlc..module-1",
+                "modelCustomizationName": "VfVgeraldine..vflorence_vlc..module-1",
                 "properties": {
                   "minCountInstances": 0,
                   "maxCountInstances": null,
                   "initialCount": 0,
-                  "vfModuleLabel": "vmme_vlc"
+                  "vfModuleLabel": "vflorence_vlc"
                 },
                 "inputs": {},
                 "volumeGroupAllowed": true
               },
-              "vf_vmee0..VfVmee..vmme_gpb..module-2": {
+              "vf_vgeraldine0..VfVgeraldine..vflorence_gpb..module-2": {
                 "uuid": "41708296-e443-4c71-953f-d9a010f059e1",
                 "invariantUuid": "1cca90b8-3490-495e-87da-3f3e4c57d5b9",
                 "customizationUuid": "6add59e0-7fe1-4bc4-af48-f8812422ae7c",
                 "description": null,
-                "name": "VfVmee..vmme_gpb..module-2",
+                "name": "VfVgeraldine..vflorence_gpb..module-2",
                 "version": "2",
-                "modelCustomizationName": "VfVmee..vmme_gpb..module-2",
+                "modelCustomizationName": "VfVgeraldine..vflorence_gpb..module-2",
                 "properties": {
                   "minCountInstances": 0,
                   "maxCountInstances": null,
                   "initialCount": 0,
-                  "vfModuleLabel": "vmme_gpb"
+                  "vfModuleLabel": "vflorence_gpb"
                 },
                 "inputs": {},
                 "volumeGroupAllowed": false
               },
-              "vf_vmee0..VfVmee..base_vmme..module-0": {
+              "vf_vgeraldine0..VfVgeraldine..base_vflorence..module-0": {
                 "uuid": "a27f5cfc-7f12-4f99-af08-0af9c3885c87",
                 "invariantUuid": "a6f9e51a-2b35-416a-ae15-15e58d61f36d",
                 "customizationUuid": "f8c040f1-7e51-4a11-aca8-acf256cfd861",
                 "description": null,
-                "name": "VfVmee..base_vmme..module-0",
+                "name": "VfVgeraldine..base_vflorence..module-0",
                 "version": "2",
-                "modelCustomizationName": "VfVmee..base_vmme..module-0",
+                "modelCustomizationName": "VfVgeraldine..base_vflorence..module-0",
                 "properties": {
                   "minCountInstances": 1,
                   "maxCountInstances": 1,
                   "initialCount": 1,
-                  "vfModuleLabel": "base_vmme"
+                  "vfModuleLabel": "base_vflorence"
                 },
                 "inputs": {},
                 "volumeGroupAllowed": true
               }
             },
             "volumeGroups": {
-              "vf_vmee0..VfVmee..base_vmme..module-0": {
+              "vf_vgeraldine0..VfVgeraldine..base_vflorence..module-0": {
                 "uuid": "a27f5cfc-7f12-4f99-af08-0af9c3885c87",
                 "invariantUuid": "a6f9e51a-2b35-416a-ae15-15e58d61f36d",
                 "customizationUuid": "f8c040f1-7e51-4a11-aca8-acf256cfd861",
                 "description": null,
-                "name": "VfVmee..base_vmme..module-0",
+                "name": "VfVgeraldine..base_vflorence..module-0",
                 "version": "2",
-                "modelCustomizationName": "VfVmee..base_vmme..module-0",
+                "modelCustomizationName": "VfVgeraldine..base_vflorence..module-0",
                 "properties": {
                   "minCountInstances": 1,
                   "maxCountInstances": 1,
                   "initialCount": 1,
-                  "vfModuleLabel": "base_vmme"
+                  "vfModuleLabel": "base_vflorence"
                 },
                 "inputs": {}
               }
@@ -425,21 +420,21 @@ class MockAppStore<T> {
         "serviceInstance": {
           "6e59c5de-f052-46fa-aa7e-2fca9d674c44": {
             "vnfs": {
-              "VF_vMee 0": {
+              "VF_vGeraldine 0": {
                 "rollbackOnFailure": "true",
                 "vfModules": {
-                  "vf_vmee0..VfVmee..base_vmme..module-0": {
-                    "vf_vmee0..VfVmee..base_vmme..module-0vmvzo": {
+                  "vf_vgeraldine0..VfVgeraldine..base_vflorence..module-0": {
+                    "vf_vgeraldine0..VfVgeraldine..base_vflorence..module-0vmvzo": {
                       "isMissingData": false,
                       "sdncPreReload": null,
                       "modelInfo": {
                         "modelType": "VFmodule",
                         "modelInvariantId": "a6f9e51a-2b35-416a-ae15-15e58d61f36d",
                         "modelVersionId": "a27f5cfc-7f12-4f99-af08-0af9c3885c87",
-                        "modelName": "VfVmee..base_vmme..module-0",
+                        "modelName": "VfVgeraldine..base_vflorence..module-0",
                         "modelVersion": "2",
                         "modelCustomizationId": "f8c040f1-7e51-4a11-aca8-acf256cfd861",
-                        "modelCustomizationName": "VfVmee..base_vmme..module-0"
+                        "modelCustomizationName": "VfVgeraldine..base_vflorence..module-0"
                       },
                       "instanceParams": [
                         {}
@@ -449,8 +444,8 @@ class MockAppStore<T> {
                   }
                 },
                 "isMissingData": true,
-                "originalName": "VF_vMee 0",
-                "vnfStoreKey": "VF_vMee 0",
+                "originalName": "VF_vGeraldine 0",
+                "vnfStoreKey": "VF_vGeraldine 0",
                 "trackById": "p3wk448m5do",
                 "uuid": "d6557200-ecf2-4641-8094-5393ae3aae60",
                 "productFamilyId": "36b4733a-53f4-4cc8-8ff0-9172e5fc4b8e",
@@ -462,9 +457,9 @@ class MockAppStore<T> {
                   "modelType": "VF",
                   "modelInvariantId": "4160458e-f648-4b30-a176-43881ffffe9e",
                   "modelVersionId": "6e59c5de-f052-46fa-aa7e-2fca9d674c44",
-                  "modelName": "VF_vMee",
+                  "modelName": "VF_vGeraldine",
                   "modelVersion": "2.0",
-                  "modelCustomizationName": "VF_vMee 0"
+                  "modelCustomizationName": "VF_vGeraldine 0"
                 }
               }
             },
@@ -508,8 +503,8 @@ class MockAppStore<T> {
         "lcpRegionsAndTenants": {
           "lcpRegionList": [
             {
-              "id": "JANET25",
-              "name": "JANET25",
+              "id": "AAIAIC25",
+              "name": "AAIAIC25",
               "isPermitted": true
             },
             {
@@ -519,7 +514,7 @@ class MockAppStore<T> {
             }
           ],
           "lcpRegionsTenantsMap": {
-            "JANET25": [
+            "AAIAIC25": [
               {
                 "id": "092eb9e8e4b7412e8787dd091bc58e86",
                 "name": "USP-SIP-IC-24335-T-01",
@@ -533,8 +528,128 @@ class MockAppStore<T> {
                 "isPermitted": true
               },
               {
-                "id": "d0a3e3f2964542259d155a81c41aadc3",
-                "name": "test-hvf6-09",
+                "id": "229bcdc6eaeb4ca59d55221141d01f8e",
+                "name": "AIN Web Tool-15-D-STTest2",
+                "isPermitted": true
+              },
+              {
+                "id": "1178612d2b394be4834ad77f567c0af2",
+                "name": "AIN Web Tool-15-D-SSPtestcustome",
+                "isPermitted": true
+              },
+              {
+                "id": "19c5ade915eb461e8af52fb2fd8cd1f2",
+                "name": "AIN Web Tool-15-D-UncheckedEcopm",
+                "isPermitted": true
+              },
+              {
+                "id": "de007636e25249238447264a988a927b",
+                "name": "AIN Web Tool-15-D-dfsdf",
+                "isPermitted": true
+              },
+              {
+                "id": "62f29b3613634ca6a3065cbe0e020c44",
+                "name": "AIN/SMS-16-D-Multiservices1",
+                "isPermitted": true
+              },
+              {
+                "id": "649289e30d3244e0b48098114d63c2aa",
+                "name": "AIN Web Tool-15-D-SSPST66",
+                "isPermitted": true
+              },
+              {
+                "id": "3f21eeea6c2c486bba31dab816c05a32",
+                "name": "AIN Web Tool-15-D-ASSPST47",
+                "isPermitted": true
+              },
+              {
+                "id": "f60ce21d3ee6427586cff0d22b03b773",
+                "name": "CESAR-100-D-sspjg67246",
+                "isPermitted": true
+              },
+              {
+                "id": "8774659e425f479895ae091bb5d46560",
+                "name": "CESAR-100-D-sspjg68359",
+                "isPermitted": true
+              },
+              {
+                "id": "624eb554b0d147c19ff8885341760481",
+                "name": "AINWebTool-15-D-iftach",
+                "isPermitted": true
+              },
+              {
+                "id": "214f55f5fc414c678059c383b03e4962",
+                "name": "CESAR-100-D-sspjg612401",
+                "isPermitted": true
+              },
+              {
+                "id": "c90666c291664841bb98e4d981ff1db5",
+                "name": "CESAR-100-D-sspjg621340",
+                "isPermitted": true
+              },
+              {
+                "id": "ce5b6bc5c7b348e1bf4b91ac9a174278",
+                "name": "sspjg621351cloned",
+                "isPermitted": true
+              },
+              {
+                "id": "b386b768a3f24c8e953abbe0b3488c02",
+                "name": "AINWebTool-15-D-eteancomp",
+                "isPermitted": true
+              },
+              {
+                "id": "dc6c4dbfd225474e9deaadd34968646c",
+                "name": "AINWebTool-15-T-SPFET",
+                "isPermitted": true
+              },
+              {
+                "id": "02cb5030e9914aa4be120bd9ed1e19eb",
+                "name": "AINWebTool-15-X-eeweww",
+                "isPermitted": true
+              },
+              {
+                "id": "f2f3830e4c984d45bcd00e1a04158a79",
+                "name": "CESAR-100-D-spjg61909",
+                "isPermitted": true
+              },
+              {
+                "id": "05b91bd5137f4929878edd965755c06d",
+                "name": "CESAR-100-D-sspjg621512cloned",
+                "isPermitted": true
+              },
+              {
+                "id": "7002fbe8482d4a989ddf445b1ce336e0",
+                "name": "AINWebTool-15-X-vdr",
+                "isPermitted": true
+              },
+              {
+                "id": "4008522be43741dcb1f5422022a2aa0b",
+                "name": "AINWebTool-15-D-ssasa",
+                "isPermitted": true
+              },
+              {
+                "id": "f44e2e96a1b6476abfda2fa407b00169",
+                "name": "AINWebTool-15-D-PFNPT",
+                "isPermitted": true
+              },
+              {
+                "id": "b69a52bec8a84669a37a1e8b72708be7",
+                "name": "AINWebTool-15-X-vdre",
+                "isPermitted": true
+              },
+              {
+                "id": "fac7d9fd56154caeb9332202dcf2969f",
+                "name": "AINWebTool-15-X-NONPODECOMP",
+                "isPermitted": true
+              },
+              {
+                "id": "2d34d8396e194eb49969fd61ffbff961",
+                "name": "DN5242-Nov16-T5",
+                "isPermitted": true
+              },
+              {
+                "id": "cb42a77ff45b48a8b8deb83bb64acc74",
+                "name": "ro-T11",
                 "isPermitted": true
               },
               {
@@ -542,6 +657,16 @@ class MockAppStore<T> {
                 "name": "ro-T112",
                 "isPermitted": true
               },
+              {
+                "id": "4914ab0ab3a743e58f0eefdacc1dde77",
+                "name": "DN5242-Nov21-T1",
+                "isPermitted": true
+              },
+              {
+                "id": "d0a3e3f2964542259d155a81c41aadc3",
+                "name": "test-hvf6-09",
+                "isPermitted": true
+              },
               {
                 "id": "cbb99fe4ada84631b7baf046b6fd2044",
                 "name": "DN5242-Nov16-T3",
@@ -553,7 +678,7 @@ class MockAppStore<T> {
         "productFamilies": [
           {
             "id": "ebc3bc3d-62fd-4a3f-a037-f619df4ff034",
-            "name": "SCOTTIE",
+            "name": "ERICA",
             "isPermitted": true
           },
           {
@@ -578,7 +703,7 @@ class MockAppStore<T> {
           },
           {
             "id": "323d69d9-2efe-4r45-ay0a-89ea7ard4e6f",
-            "name": "vSCP",
+            "name": "vEsmeralda",
             "isPermitted": true
           },
           {
@@ -622,7 +747,7 @@ class MockAppStore<T> {
             "isPermitted": true
           },
           {
-            "id": "Cisneros",
+            "id": "vMuriel",
             "name": "vMuriel",
             "isPermitted": true
           },
@@ -648,7 +773,7 @@ class MockAppStore<T> {
           },
           {
             "id": "d7bb0a21-66f2-4e6d-87d9-9ef3ced63ae4",
-            "name": "Josefina",
+            "name": "JOSEFINA",
             "isPermitted": true
           },
           {
@@ -696,7 +821,7 @@ class MockAppStore<T> {
             },
             {
               "id": "6",
-              "name": "vSEGW",
+              "name": "vPorfirio",
               "isPermitted": false
             },
             {
@@ -711,7 +836,7 @@ class MockAppStore<T> {
             },
             {
               "id": "9",
-              "name": "vMME",
+              "name": "vFLORENCE",
               "isPermitted": false
             },
             {
@@ -721,7 +846,7 @@ class MockAppStore<T> {
             },
             {
               "id": "11",
-              "name": "vSCP",
+              "name": "vEsmeralda",
               "isPermitted": false
             },
             {
@@ -731,7 +856,7 @@ class MockAppStore<T> {
             },
             {
               "id": "13",
-              "name": "vMMSC",
+              "name": "vWINIFRED",
               "isPermitted": false
             },
             {
@@ -774,6 +899,754 @@ class MockAppStore<T> {
             "id": "YYY1",
             "name": "UUUAIAAI-YYY1"
           },
+          {
+            "id": "BAN1",
+            "name": "VSDKYUTP-BAN1"
+          },
+          {
+            "id": "DKJ1",
+            "name": "DKJSJDKA-DKJ1"
+          },
+          {
+            "id": "MCS1",
+            "name": "ASACMAMS-MCS1"
+          },
+          {
+            "id": "UIO1",
+            "name": "uioclli1-UIO1"
+          },
+          {
+            "id": "RAJ1",
+            "name": "YGBIJNLQ-RAJ1"
+          },
+          {
+            "id": "OPA1",
+            "name": "opaclli1-OPA1"
+          },
+          {
+            "id": "SDE1",
+            "name": "ZXCVBNMA-SDE1"
+          },
+          {
+            "id": "VEN2",
+            "name": "FGHJUHIL-VEN2"
+          },
+          {
+            "id": "ORL1",
+            "name": "ORLDFLMA-ORL1"
+          },
+          {
+            "id": "JAD1",
+            "name": "JADECLLI-JAD1"
+          },
+          {
+            "id": "ZXL1",
+            "name": "LWLWCANN-ZXL1"
+          },
+          {
+            "id": "CKL1",
+            "name": "CLKSKCKK-CKL1"
+          },
+          {
+            "id": "SDF1",
+            "name": "sdfclli1-SDF1"
+          },
+          {
+            "id": "RAD1",
+            "name": "RADICAL1-RAD1"
+          },
+          {
+            "id": "KIT1",
+            "name": "BHYJFGLN-KIT1"
+          },
+          {
+            "id": "REL1",
+            "name": "INGERFGT-REL1"
+          },
+          {
+            "id": "JNL1",
+            "name": "CJALSDAC-JNL1"
+          },
+          {
+            "id": "OLK1",
+            "name": "OLKOLKLS-OLK1"
+          },
+          {
+            "id": "CHI1",
+            "name": "CHILLIWE-CHI1"
+          },
+          {
+            "id": "UUU4",
+            "name": "UUUAAAUU-UUU4"
+          },
+          {
+            "id": "TUF1",
+            "name": "TUFCLLI1-TUF1"
+          },
+          {
+            "id": "KJN1",
+            "name": "CKALDKSA-KJN1"
+          },
+          {
+            "id": "SAM1",
+            "name": "SNDGCA64-SAN1"
+          },
+          {
+            "id": "SCK1",
+            "name": "SCKSCKSK-SCK1"
+          },
+          {
+            "id": "HJH1",
+            "name": "AOEEQQQD-HJH1"
+          },
+          {
+            "id": "HGD1",
+            "name": "SDFQWHGD-HGD1"
+          },
+          {
+            "id": "KOR1",
+            "name": "HYFLNBVT-KOR1"
+          },
+          {
+            "id": "ATL43",
+            "name": "AICLOCID-ATL43"
+          },
+          {
+            "id": "ATL54",
+            "name": "AICFTAAI-ATL54"
+          },
+          {
+            "id": "ATL66",
+            "name": "CLLIAAII-ATL66"
+          },
+          {
+            "id": "VEL1",
+            "name": "BNMLKUIK-VEL1"
+          },
+          {
+            "id": "ICC1",
+            "name": "SANJITAT-ICC1"
+          },
+          {
+            "id": "MNT11",
+            "name": "WSXEFBTH-MNT11"
+          },
+          {
+            "id": "DEF2",
+            "name": "WSBHGTYL-DEF2"
+          },
+          {
+            "id": "MAD11",
+            "name": "SDFQWGKL-MAD11"
+          },
+          {
+            "id": "OLG1",
+            "name": "OLHOLHOL-OLG1"
+          },
+          {
+            "id": "GAR1",
+            "name": "NGFVSJKO-GAR1"
+          },
+          {
+            "id": "SAN22",
+            "name": "GNVLSCTL-SAN22"
+          },
+          {
+            "id": "HRG1",
+            "name": "HRGHRGGS-HRG1"
+          },
+          {
+            "id": "JCS1",
+            "name": "JCSJSCJS-JCS1"
+          },
+          {
+            "id": "DHA12",
+            "name": "WSXEDECF-DHA12"
+          },
+          {
+            "id": "HJE1",
+            "name": "AOEEWWWD-HJE1"
+          },
+          {
+            "id": "NCA1",
+            "name": "NCANCANN-NCA1"
+          },
+          {
+            "id": "IOP1",
+            "name": "iopclli1-IOP1"
+          },
+          {
+            "id": "RTY1",
+            "name": "rtyclli1-RTY1"
+          },
+          {
+            "id": "KAP1",
+            "name": "HIOUYTRQ-KAP1"
+          },
+          {
+            "id": "ZEN1",
+            "name": "ZENCLLI1-ZEN1"
+          },
+          {
+            "id": "HKA1",
+            "name": "JAKHLASS-HKA1"
+          },
+          {
+            "id": "CQK1",
+            "name": "CQKSCAKK-CQK1"
+          },
+          {
+            "id": "SAI1",
+            "name": "UBEKQLPD-SAI1"
+          },
+          {
+            "id": "ERT1",
+            "name": "ertclli1-ERT1"
+          },
+          {
+            "id": "IBB1",
+            "name": "PLMKOIJU-IBB1"
+          },
+          {
+            "id": "TIR2",
+            "name": "PLKINHYI-TIR2"
+          },
+          {
+            "id": "HSD1",
+            "name": "CHASKCDS-HSD1"
+          },
+          {
+            "id": "SLF78",
+            "name": "SDCTLFN1-SLF78"
+          },
+          {
+            "id": "SEE78",
+            "name": "SDCTEEE4-SEE78"
+          },
+          {
+            "id": "SAN13",
+            "name": "TOKYJPFA-SAN13"
+          },
+          {
+            "id": "SAA78",
+            "name": "SDCTAAA1-SAA78"
+          },
+          {
+            "id": "LUC1",
+            "name": "ATLDFGYC-LUC1"
+          },
+          {
+            "id": "AMD13",
+            "name": "MEMATLAN-AMD13"
+          },
+          {
+            "id": "TOR1",
+            "name": "TOROONXN-TOR1"
+          },
+          {
+            "id": "QWE1",
+            "name": "QWECLLI1-QWE1"
+          },
+          {
+            "id": "ZOG1",
+            "name": "ZOGASTRO-ZOG1"
+          },
+          {
+            "id": "CAL33",
+            "name": "CALIFORN-CAL33"
+          },
+          {
+            "id": "SHH78",
+            "name": "SDIT1HHH-SHH78"
+          },
+          {
+            "id": "DSA1",
+            "name": "LKJHGFDS-DSA1"
+          },
+          {
+            "id": "CLG1",
+            "name": "CLGRABAD-CLG1"
+          },
+          {
+            "id": "BNA1",
+            "name": "BNARAGBK-BNA1"
+          },
+          {
+            "id": "ATL84",
+            "name": "CANTTCOC-ATL84"
+          },
+          {
+            "id": "APP1",
+            "name": "WBHGTYUI-APP1"
+          },
+          {
+            "id": "RJN1",
+            "name": "RJNRBZAW-RJN1"
+          },
+          {
+            "id": "EHH78",
+            "name": "SDCSHHH5-EHH78"
+          },
+          {
+            "id": "mac10",
+            "name": "PKGTESTF-mac10"
+          },
+          {
+            "id": "SXB78",
+            "name": "SDCTGXB1-SXB78"
+          },
+          {
+            "id": "SAX78",
+            "name": "SDCTAXG1-SAX78"
+          },
+          {
+            "id": "SYD1",
+            "name": "SYDNAUBV-SYD1"
+          },
+          {
+            "id": "TOK1",
+            "name": "TOKYJPFA-TOK1"
+          },
+          {
+            "id": "KGM2",
+            "name": "KGMTNC20-KGM2"
+          },
+          {
+            "id": "DCC1b",
+            "name": "POIUYTGH-DCC1b"
+          },
+          {
+            "id": "SKK78",
+            "name": "SDCTKKK1-SKK78"
+          },
+          {
+            "id": "SGG78",
+            "name": "SDCTGGG1-SGG78"
+          },
+          {
+            "id": "SJJ78",
+            "name": "SDCTJJJ1-SJJ78"
+          },
+          {
+            "id": "SBX78",
+            "name": "SDCTBXG1-SBX78"
+          },
+          {
+            "id": "LAG1",
+            "name": "LARGIZON-LAG1"
+          },
+          {
+            "id": "IAA1",
+            "name": "QAZXSWED-IAA1"
+          },
+          {
+            "id": "POI1",
+            "name": "PLMNJKIU-POI1"
+          },
+          {
+            "id": "LAG1a",
+            "name": "LARGIZON-LAG1a"
+          },
+          {
+            "id": "PBL1",
+            "name": "PBLAPBAI-PBL1"
+          },
+          {
+            "id": "LAG45",
+            "name": "LARGIZON-LAG1a"
+          },
+          {
+            "id": "MAR1",
+            "name": "MNBVCXZM-MAR1"
+          },
+          {
+            "id": "HST70",
+            "name": "HSTNTX70-HST70"
+          },
+          {
+            "id": "DCC1a",
+            "name": "POIUYTGH-DCC1a"
+          },
+          {
+            "id": "TOL1",
+            "name": "TOLDOH21-TOL1"
+          },
+          {
+            "id": "LON1",
+            "name": "LONEENCO-LON1"
+          },
+          {
+            "id": "SJU78",
+            "name": "SDIT1JUB-SJU78"
+          },
+          {
+            "id": "STN27",
+            "name": "HSTNTX01-STN27"
+          },
+          {
+            "id": "SSW56",
+            "name": "ss8126GT-SSW56"
+          },
+          {
+            "id": "SBB78",
+            "name": "SDIT1BBB-SBB78"
+          },
+          {
+            "id": "DCC3",
+            "name": "POIUYTGH-DCC3"
+          },
+          {
+            "id": "GNV1",
+            "name": "GNVLSCTL-GNV1"
+          },
+          {
+            "id": "WAS1",
+            "name": "WASHDCSW-WAS1"
+          },
+          {
+            "id": "TOY1",
+            "name": "TORYONNZ-TOY1"
+          },
+          {
+            "id": "STT1",
+            "name": "STTLWA02-STT1"
+          },
+          {
+            "id": "STG1",
+            "name": "STTGGE62-STG1"
+          },
+          {
+            "id": "SLL78",
+            "name": "SDCTLLL1-SLL78"
+          },
+          {
+            "id": "SBU78",
+            "name": "SDIT1BUB-SBU78"
+          },
+          {
+            "id": "ATL2",
+            "name": "ATLNGANW-ATL2"
+          },
+          {
+            "id": "BOT1",
+            "name": "BOTHWAKY-BOT1"
+          },
+          {
+            "id": "SNG1",
+            "name": "SNGPSIAU-SNG1"
+          },
+          {
+            "id": "NYC1",
+            "name": "NYCMNY54-NYC1"
+          },
+          {
+            "id": "LAG1b",
+            "name": "LARGIZON-LAG1b"
+          },
+          {
+            "id": "AMD15",
+            "name": "AMDFAA01-AMD15"
+          },
+          {
+            "id": "SNA1",
+            "name": "SNANTXCA-SNA1"
+          },
+          {
+            "id": "PLT1",
+            "name": "PLTNCA60-PLT1"
+          },
+          {
+            "id": "TLP1",
+            "name": "TLPNXM18-TLP1"
+          },
+          {
+            "id": "SDD81",
+            "name": "SAIT1DD6-SDD81"
+          },
+          {
+            "id": "DCC1",
+            "name": "POIUYTGH-DCC1"
+          },
+          {
+            "id": "DCC2",
+            "name": "POIUYTGH-DCC2"
+          },
+          {
+            "id": "OKC1",
+            "name": "OKCBOK55-OKC1"
+          },
+          {
+            "id": "PAR1",
+            "name": "PARSFRCG-PAR1"
+          },
+          {
+            "id": "TES36",
+            "name": "ABCEETES-TES36"
+          },
+          {
+            "id": "COM1",
+            "name": "PLMKOPIU-COM1"
+          },
+          {
+            "id": "ANI1",
+            "name": "ATLNGTRE-ANI1"
+          },
+          {
+            "id": "SDG78",
+            "name": "SDIT1BDG-SDG78"
+          },
+          {
+            "id": "mac20",
+            "name": "PKGTESTF-mac20"
+          },
+          {
+            "id": "DSF45",
+            "name": "DSFBG123-DSF45"
+          },
+          {
+            "id": "HST25",
+            "name": "HSTNTX01-HST25"
+          },
+          {
+            "id": "AMD18",
+            "name": "AUDIMA01-AMD18"
+          },
+          {
+            "id": "SAA80",
+            "name": "SAIT9AA3-SAA80"
+          },
+          {
+            "id": "SSA56",
+            "name": "SSIT2AA7-SSA56"
+          },
+          {
+            "id": "SDD82",
+            "name": "SAIT1DD9-SDD82"
+          },
+          {
+            "id": "JCV1",
+            "name": "JCVLFLBW-JCV1"
+          },
+          {
+            "id": "SUL2",
+            "name": "WERTYUJK-SUL2"
+          },
+          {
+            "id": "PUR1",
+            "name": "purelyde-PUR1"
+          },
+          {
+            "id": "FDE55",
+            "name": "FDERT555-FDE55"
+          },
+          {
+            "id": "SITE",
+            "name": "LONEENCO-SITE"
+          },
+          {
+            "id": "ATL1",
+            "name": "ATLNGAMA-ATL1"
+          },
+          {
+            "id": "JUL1",
+            "name": "ZXCVBNMM-JUL1"
+          },
+          {
+            "id": "TAT34",
+            "name": "TESAAISB-TAT34"
+          },
+          {
+            "id": "XCP12",
+            "name": "CHKGH123-XCP12"
+          },
+          {
+            "id": "RAI1",
+            "name": "poiuytre-RAI1"
+          },
+          {
+            "id": "HPO1",
+            "name": "ATLNGAUP-HPO1"
+          },
+          {
+            "id": "KJF12",
+            "name": "KJFDH123-KJF12"
+          },
+          {
+            "id": "SCC80",
+            "name": "SAIT9CC3-SCC80"
+          },
+          {
+            "id": "SAA12",
+            "name": "SAIT9AF8-SAA12"
+          },
+          {
+            "id": "SAA14",
+            "name": "SAIT1AA9-SAA14"
+          },
+          {
+            "id": "ATL35",
+            "name": "TTESSAAI-ATL35"
+          },
+          {
+            "id": "CWY1",
+            "name": "CWYMOWBS-CWY1"
+          },
+          {
+            "id": "ATL76",
+            "name": "TELEPAAI-ATL76"
+          },
+          {
+            "id": "DSL12",
+            "name": "DSLFK242-DSL12"
+          },
+          {
+            "id": "ATL53",
+            "name": "AAIATLTE-ATL53"
+          },
+          {
+            "id": "SAA11",
+            "name": "SAIT9AA2-SAA11"
+          },
+          {
+            "id": "ATL62",
+            "name": "TESSASCH-ATL62"
+          },
+          {
+            "id": "AUG1",
+            "name": "ASDFGHJK-AUG1"
+          },
+          {
+            "id": "POI22",
+            "name": "POIUY123-POI22"
+          },
+          {
+            "id": "SAA13",
+            "name": "SAIT1AA9-SAA13"
+          },
+          {
+            "id": "BHY17",
+            "name": "BHYTFRF3-BHY17"
+          },
+          {
+            "id": "LIS1",
+            "name": "HOSTPROF-LIS1"
+          },
+          {
+            "id": "SIP1",
+            "name": "ZXCVBNMK-SIP1"
+          },
+          {
+            "id": "ATL99",
+            "name": "TEESTAAI-ATL43"
+          },
+          {
+            "id": "ATL64",
+            "name": "FORLOAAJ-ATL64"
+          },
+          {
+            "id": "TAT33",
+            "name": "TESAAISA-TAT33"
+          },
+          {
+            "id": "RAD10",
+            "name": "INDIPUNE-RAD10"
+          },
+          {
+            "id": "RTW5",
+            "name": "BHYTFRY4-RTW5"
+          },
+          {
+            "id": "JGS1",
+            "name": "KSJKKKKK-JGS1"
+          },
+          {
+            "id": "ATL98",
+            "name": "TEESTAAI-ATL43"
+          },
+          {
+            "id": "WAN1",
+            "name": "LEIWANGW-WAN1"
+          },
+          {
+            "id": "ATL44",
+            "name": "ATLSANAB-ATL44"
+          },
+          {
+            "id": "RTD2",
+            "name": "BHYTFRk4-RTD2"
+          },
+          {
+            "id": "NIR1",
+            "name": "ORFLMANA-NIR1"
+          },
+          {
+            "id": "ATL75",
+            "name": "SANAAIRE-ATL75"
+          },
+          {
+            "id": "NUM1",
+            "name": "QWERTYUI-NUM1"
+          },
+          {
+            "id": "hvf32",
+            "name": "MDTWNJ21-hvf32"
+          },
+          {
+            "id": "RTZ4",
+            "name": "BHYTFRZ6-RTZ4"
+          },
+          {
+            "id": "ATL56",
+            "name": "ATLSANAC-ATL56"
+          },
+          {
+            "id": "AMS1",
+            "name": "AMSTNLBW-AMS1"
+          },
+          {
+            "id": "RCT1",
+            "name": "AMSTERNL-RCT1"
+          },
+          {
+            "id": "JAN1",
+            "name": "ORFLMATT-JAN1"
+          },
+          {
+            "id": "ABC14",
+            "name": "TESAAISA-ABC14"
+          },
+          {
+            "id": "TAT37",
+            "name": "TESAAISD-TAT37"
+          },
+          {
+            "id": "MIC54",
+            "name": "MICHIGAN-MIC54"
+          },
+          {
+            "id": "ABC11",
+            "name": "ATLSANAI-ABC11"
+          },
+          {
+            "id": "AMF11",
+            "name": "AMDOCS01-AMF11"
+          },
+          {
+            "id": "ATL63",
+            "name": "ATLSANEW-ATL63"
+          },
+          {
+            "id": "ABC12",
+            "name": "ATLSECIA-ABC12"
+          },
+          {
+            "id": "hvf20",
+            "name": "MDTWNJ21-hvf20"
+          },
+          {
+            "id": "ABC15",
+            "name": "AAITESAN-ABC15"
+          },
           {
             "id": "AVT1",
             "name": "AVTRFLHD-AVT1"
@@ -948,8 +1821,8 @@ describe('VNF Control Generator', () => {
 
   test('getMacroFormControls check for mandatory controls', () => {
     const serviceId : string = "6e59c5de-f052-46fa-aa7e-2fca9d674c44";
-    const vnfName : string = "VF_vMee 0";
-    const vnfStoreKey : string = "VF_vMee 0";
+    const vnfName : string = "VF_vGeraldine 0";
+    const vnfStoreKey : string = "VF_vGeraldine 0";
     const controls :FormControlModel[] = service.getMacroFormControls(serviceId, vnfStoreKey, vnfName, []);
 
     const mandatoryControls : string[] = [
@@ -984,14 +1857,14 @@ describe('VNF Control Generator', () => {
 
   function getALaCarteFormControls(vnfStoreKey: string): FormControlModel[] {
     const serviceId: string = "6e59c5de-f052-46fa-aa7e-2fca9d674c44";
-    const vnfName: string = "VF_vMee 0";
+    const vnfName: string = "VF_vGeraldine 0";
     const controls: FormControlModel[] = service.getAlaCarteFormControls(serviceId, vnfStoreKey, vnfName, []);
     return controls;
   }
 
   test('getMacroFormControls should return the correct order of controls', () => {
     const serviceId : string = "6e59c5de-f052-46fa-aa7e-2fca9d674c44";
-    const vnfName : string = "VF_vMee 0";
+    const vnfName : string = "VF_vGeraldine 0";
     const vnfStoreKey : string = null;
     const controls :FormControlModel[] = service.getMacroFormControls(serviceId, vnfStoreKey, vnfName, []);
 
@@ -1030,12 +1903,13 @@ describe('VNF Control Generator', () => {
 
 
   test('getAlacartFormControls check for mandatory controls', () => {
-    const controls = getALaCarteFormControls("VF_vMee 0");
+    const controls = getALaCarteFormControls("VF_vGeraldine 0");
     const mandatoryControls : string[] = [
       FormControlNames.INSTANCE_NAME,
       FormControlNames.LCPCLOUD_REGION_ID,
       'tenantId',
       'platformName',
+      'lineOfBusiness',
       'rollbackOnFailure'
     ];
     for(let i = 0 ; i < mandatoryControls.length ; i++){
@@ -1045,7 +1919,7 @@ describe('VNF Control Generator', () => {
   });
 
   test('getAlacartFormControls instance name control validator shall have the expected regex', () => {
-    const controls:FormControlModel[] = getALaCarteFormControls("VF_vMee 0");
+    const controls:FormControlModel[] = getALaCarteFormControls("VF_vGeraldine 0");
 
     const instanceNameControl: FormControlModel = <FormControlModel>controls.find(item => item.controlName === FormControlNames.INSTANCE_NAME);
     const instanceNameValidator: ValidatorModel = instanceNameControl.validations.find(val => val.validatorName === ValidatorOptions.pattern);
index 3484038..7760ba8 100644 (file)
@@ -133,7 +133,7 @@ export class VnfControlGenerator {
       isDisabled: false,
       name: "lineOfBusiness",
       value: instance ? instance.lineOfBusiness : null,
-      validations: [],
+      validations: [new ValidatorModel(ValidatorOptions.required, 'is required')],
       onInitSelectedField: ['lineOfBusinessList'],
       onInit: this._basicControlGenerator.getSubscribeInitResult.bind(null, this._aaiService.getCategoryParameters)
     })
index 6dcaa82..71d6611 100644 (file)
@@ -28,15 +28,10 @@ class MockAppStore<T> {
           "CREATE_INSTANCE_TEST": false,
           "EMPTY_DRAWING_BOARD_TEST": false,
           "FLAG_NETWORK_TO_ASYNC_INSTANTIATION": false,
-          "FLAG_ASYNC_INSTANTIATION": true,
-          "FLAG_ASYNC_JOBS": true,
           "FLAG_ADD_MSO_TESTAPI_FIELD": true,
-          "FLAG_UNASSIGN_SERVICE": false,
           "FLAG_SERVICE_MODEL_CACHE": false,
-          "FLAG_COLLECTION_RESOURCE_SUPPORT": true,
           "FLAG_SHOW_ASSIGNMENTS": true,
           "FLAG_FABRIC_CONFIGURATION_ASSIGNMENTS": true,
-          "FLAG_DUPLICATE_VNF": true,
           "FLAG_DEFAULT_VNF": true,
           "FLAG_SETTING_DEFAULTS_IN_DRAWING_BOARD": true,
           "FLAG_A_LA_CARTE_AUDIT_INFO": true,
@@ -70,15 +65,15 @@ class MockAppStore<T> {
             },
             "vnfs": {},
             "networks": {},
-            "collectionResource": {},
+            "collectionResources": {},
             "configurations": {},
             "fabricConfigurations": {},
             "serviceProxies": {
-              "vdbe_svc_vprs_proxy 0": {
+              "vdorothea_svc_vprs_proxy 0": {
                 "uuid": "65fadfa8-a0d9-443f-95ad-836cd044e26c",
                 "invariantUuid": "f4baae0c-b3a5-4ca1-a777-afbffe7010bc",
-                "description": "A Proxy for Service vDBE_Svc_vPRS",
-                "name": "vDBE_Svc_vPRS Service Proxy",
+                "description": "A Proxy for Service vDOROTHEA_Svc_vPRS",
+                "name": "vDOROTHEA_Svc_vPRS Service Proxy",
                 "version": "1.0",
                 "customizationUuid": "bdb63d23-e132-4ce7-af2c-a493b4cafac9",
                 "inputs": {},
@@ -87,7 +82,7 @@ class MockAppStore<T> {
                 "type": "Service Proxy",
                 "sourceModelUuid": "da7827a2-366d-4be6-8c68-a69153c61274",
                 "sourceModelInvariant": "24632e6b-584b-4f45-80d4-fefd75fd9f14",
-                "sourceModelName": "vDBE_Svc_vPRS"
+                "sourceModelName": "vDOROTHEA_Svc_vPRS"
               },
               "tsbc0001vm001_svc_proxy 0": {
                 "uuid": "65fadfa8-a0d9-443f-95ad-836cd044e26c",
@@ -125,11 +120,11 @@ class MockAppStore<T> {
                   "type": "LOAD-GROUP"
                 },
                 "members": {
-                  "vdbe_svc_vprs_proxy 0": {
+                  "vdorothea_svc_vprs_proxy 0": {
                     "uuid": "65fadfa8-a0d9-443f-95ad-836cd044e26c",
                     "invariantUuid": "f4baae0c-b3a5-4ca1-a777-afbffe7010bc",
-                    "description": "A Proxy for Service vDBE_Svc_vPRS",
-                    "name": "vDBE_Svc_vPRS Service Proxy",
+                    "description": "A Proxy for Service vDOROTHEA_Svc_vPRS",
+                    "name": "vDOROTHEA_Svc_vPRS Service Proxy",
                     "version": "1.0",
                     "customizationUuid": "bdb63d23-e132-4ce7-af2c-a493b4cafac9",
                     "inputs": {},
@@ -138,7 +133,7 @@ class MockAppStore<T> {
                     "type": "Service Proxy",
                     "sourceModelUuid": "da7827a2-366d-4be6-8c68-a69153c61274",
                     "sourceModelInvariant": "24632e6b-584b-4f45-80d4-fefd75fd9f14",
-                    "sourceModelName": "vDBE_Svc_vPRS"
+                    "sourceModelName": "vDOROTHEA_Svc_vPRS"
                   }
                 }
               },
index 2b6417e..8a95d10 100644 (file)
@@ -1,4 +1,4 @@
-import {Component, OnChanges, OnDestroy, OnInit} from '@angular/core';
+import {Component, OnDestroy, OnInit} from '@angular/core';
 import {FormPopupDetails} from "../../models/formControlModels/formPopupDetails.model";
 import {DialogComponent, DialogService} from "ng2-bootstrap-modal";
 import {FormGroup} from "@angular/forms";
@@ -82,7 +82,7 @@ export class GenericFormPopupComponent extends DialogComponent<PopupModel, boole
           this._genericFormPopupService.initReduxOnCreateNewService().then((serviceModelId : string)=>{
             this.uuidData = <any>{
               bulkSize : 1,
-              isMacro : this._store.getState().service.serviceHierarchy[serviceModelId].service.instantiationType === 'Macro',
+              isMacro : this._store.getState().service.serviceHierarchy[serviceModelId].service.vidNotions.instantiationType === 'Macro',
               type : PopupType.SERVICE,
               serviceId: serviceModelId,
               popupService: this._servicePopupService,
@@ -113,7 +113,7 @@ export class GenericFormPopupComponent extends DialogComponent<PopupModel, boole
         this.closeDialog(that);
       });
 
-      this.uuidData['isMacro'] = this._store.getState().service.serviceHierarchy[this.uuidData['serviceId']].service.instantiationType === 'Macro';
+      this.uuidData['isMacro'] = this._store.getState().service.serviceHierarchy[this.uuidData['serviceId']].service.vidNotions.instantiationType === 'Macro';
       this.formPopupDetails = this._genericFormPopupService.getGenericFormDetails(this.uuidData, this.node, this.isUpdateMode);
     }
   }
@@ -133,7 +133,7 @@ export class GenericFormPopupComponent extends DialogComponent<PopupModel, boole
       }
     }
 
-    return formPopupDetails.formControlList.filter((item : FormControlModel) =>item.type === 'DROPDOWN' && item['hasEmptyOptions']).length > 0
+    return formPopupDetails.formControlList.filter((item : FormControlModel) => item.type === 'DROPDOWN' && item['hasEmptyOptions'] && item.isRequired()).length > 0
   }
 }
 
index 8453a8d..e854f8e 100644 (file)
@@ -30,15 +30,10 @@ class MockAppStore<T>{
           "FLAG_NETWORK_TO_ASYNC_INSTANTIATION": false,
           "FLAG_SHOW_ASSIGNMENTS": true,
           "FLAG_FABRIC_CONFIGURATION_ASSIGNMENTS": true,
-          "FLAG_UNASSIGN_SERVICE": true,
           "FLAG_SHOW_VERIFY_SERVICE": false,
-          "FLAG_COLLECTION_RESOURCE_SUPPORT": true,
-          "FLAG_DUPLICATE_VNF": true,
           "FLAG_SERVICE_MODEL_CACHE": true,
           "CREATE_INSTANCE_TEST": false,
           "FLAG_SETTING_DEFAULTS_IN_DRAWING_BOARD": false,
-          "FLAG_ASYNC_INSTANTIATION": true,
-          "FLAG_ASYNC_JOBS": true,
           "EMPTY_DRAWING_BOARD_TEST": false,
           "FLAG_ADD_MSO_TESTAPI_FIELD": true
         },
@@ -59,14 +54,17 @@ class MockAppStore<T>{
               "description": "ComplexService",
               "serviceEcompNaming": "false",
               "instantiationType": "Macro",
+              "vidNotions": {
+                "instantiationType": "Macro"
+              },
               "inputs": {}
             },
             "vnfs": {
-              "VF_vMee 0": {
+              "VF_vGeraldine 0": {
                 "uuid": "d6557200-ecf2-4641-8094-5393ae3aae60",
                 "invariantUuid": "4160458e-f648-4b30-a176-43881ffffe9e",
-                "description": "VSP_vMee",
-                "name": "VF_vMee",
+                "description": "VSP_vGeraldine",
+                "name": "VF_vGeraldine",
                 "version": "2.0",
                 "customizationUuid": "91415b44-753d-494c-926a-456a9172bbb9",
                 "inputs": {},
@@ -238,74 +236,74 @@ class MockAppStore<T>{
                   "sctp-b-egress-dst_end_port": "65535.0"
                 },
                 "type": "VF",
-                "modelCustomizationName": "VF_vMee 0",
+                "modelCustomizationName": "VF_vGeraldine 0",
                 "vfModules": {
-                  "vf_vmee0..VfVmee..vmme_vlc..module-1": {
+                  "vf_vgeraldine0..VfVgeraldine..vflorence_vlc..module-1": {
                     "uuid": "522159d5-d6e0-4c2a-aa44-5a542a12a830",
                     "invariantUuid": "98a7c88b-b577-476a-90e4-e25a5871e02b",
                     "customizationUuid": "55b1be94-671a-403e-a26c-667e9c47d091",
                     "description": null,
-                    "name": "VfVmee..vmme_vlc..module-1",
+                    "name": "VfVgeraldine..vflorence_vlc..module-1",
                     "version": "2",
-                    "modelCustomizationName": "VfVmee..vmme_vlc..module-1",
+                    "modelCustomizationName": "VfVgeraldine..vflorence_vlc..module-1",
                     "properties": {
                       "minCountInstances": 0,
                       "maxCountInstances": null,
                       "initialCount": 0,
-                      "vfModuleLabel": "vmme_vlc"
+                      "vfModuleLabel": "vflorence_vlc"
                     },
                     "inputs": {},
                     "volumeGroupAllowed": true
                   },
-                  "vf_vmee0..VfVmee..vmme_gpb..module-2": {
+                  "vf_vgeraldine0..VfVgeraldine..vflorence_gpb..module-2": {
                     "uuid": "41708296-e443-4c71-953f-d9a010f059e1",
                     "invariantUuid": "1cca90b8-3490-495e-87da-3f3e4c57d5b9",
                     "customizationUuid": "6add59e0-7fe1-4bc4-af48-f8812422ae7c",
                     "description": null,
-                    "name": "VfVmee..vmme_gpb..module-2",
+                    "name": "VfVgeraldine..vflorence_gpb..module-2",
                     "version": "2",
-                    "modelCustomizationName": "VfVmee..vmme_gpb..module-2",
+                    "modelCustomizationName": "VfVgeraldine..vflorence_gpb..module-2",
                     "properties": {
                       "minCountInstances": 0,
                       "maxCountInstances": null,
                       "initialCount": 0,
-                      "vfModuleLabel": "vmme_gpb"
+                      "vfModuleLabel": "vflorence_gpb"
                     },
                     "inputs": {},
                     "volumeGroupAllowed": false
                   },
-                  "vf_vmee0..VfVmee..base_vmme..module-0": {
+                  "vf_vgeraldine0..VfVgeraldine..base_vflorence..module-0": {
                     "uuid": "a27f5cfc-7f12-4f99-af08-0af9c3885c87",
                     "invariantUuid": "a6f9e51a-2b35-416a-ae15-15e58d61f36d",
                     "customizationUuid": "f8c040f1-7e51-4a11-aca8-acf256cfd861",
                     "description": null,
-                    "name": "VfVmee..base_vmme..module-0",
+                    "name": "VfVgeraldine..base_vflorence..module-0",
                     "version": "2",
-                    "modelCustomizationName": "VfVmee..base_vmme..module-0",
+                    "modelCustomizationName": "VfVgeraldine..base_vflorence..module-0",
                     "properties": {
                       "minCountInstances": 1,
                       "maxCountInstances": 1,
                       "initialCount": 1,
-                      "vfModuleLabel": "base_vmme"
+                      "vfModuleLabel": "base_vflorence"
                     },
                     "inputs": {},
                     "volumeGroupAllowed": true
                   }
                 },
                 "volumeGroups": {
-                  "vf_vmee0..VfVmee..base_vmme..module-0": {
+                  "vf_vgeraldine0..VfVgeraldine..base_vflorence..module-0": {
                     "uuid": "a27f5cfc-7f12-4f99-af08-0af9c3885c87",
                     "invariantUuid": "a6f9e51a-2b35-416a-ae15-15e58d61f36d",
                     "customizationUuid": "f8c040f1-7e51-4a11-aca8-acf256cfd861",
                     "description": null,
-                    "name": "VfVmee..base_vmme..module-0",
+                    "name": "VfVgeraldine..base_vflorence..module-0",
                     "version": "2",
-                    "modelCustomizationName": "VfVmee..base_vmme..module-0",
+                    "modelCustomizationName": "VfVgeraldine..base_vflorence..module-0",
                     "properties": {
                       "minCountInstances": 1,
                       "maxCountInstances": 1,
                       "initialCount": 1,
-                      "vfModuleLabel": "base_vmme"
+                      "vfModuleLabel": "base_vflorence"
                     },
                     "inputs": {}
                   }
@@ -334,7 +332,7 @@ class MockAppStore<T>{
                 "modelCustomizationName": "ExtVL 0"
               }
             },
-            "collectionResource": {},
+            "collectionResources": {},
             "configurations": {
               "Port Mirroring Configuration By Policy 0": {
                 "uuid": "b4398538-e89d-4f13-b33d-ca323434ba50",
@@ -355,72 +353,72 @@ class MockAppStore<T>{
             },
             "serviceProxies": {},
             "vfModules": {
-              "vf_vmee0..VfVmee..vmme_vlc..module-1": {
+              "vf_vgeraldine0..VfVgeraldine..vflorence_vlc..module-1": {
                 "uuid": "522159d5-d6e0-4c2a-aa44-5a542a12a830",
                 "invariantUuid": "98a7c88b-b577-476a-90e4-e25a5871e02b",
                 "customizationUuid": "55b1be94-671a-403e-a26c-667e9c47d091",
                 "description": null,
-                "name": "VfVmee..vmme_vlc..module-1",
+                "name": "VfVgeraldine..vflorence_vlc..module-1",
                 "version": "2",
-                "modelCustomizationName": "VfVmee..vmme_vlc..module-1",
+                "modelCustomizationName": "VfVgeraldine..vflorence_vlc..module-1",
                 "properties": {
                   "minCountInstances": 0,
                   "maxCountInstances": null,
                   "initialCount": 0,
-                  "vfModuleLabel": "vmme_vlc"
+                  "vfModuleLabel": "vflorence_vlc"
                 },
                 "inputs": {},
                 "volumeGroupAllowed": true
               },
-              "vf_vmee0..VfVmee..vmme_gpb..module-2": {
+              "vf_vgeraldine0..VfVgeraldine..vflorence_gpb..module-2": {
                 "uuid": "41708296-e443-4c71-953f-d9a010f059e1",
                 "invariantUuid": "1cca90b8-3490-495e-87da-3f3e4c57d5b9",
                 "customizationUuid": "6add59e0-7fe1-4bc4-af48-f8812422ae7c",
                 "description": null,
-                "name": "VfVmee..vmme_gpb..module-2",
+                "name": "VfVgeraldine..vflorence_gpb..module-2",
                 "version": "2",
-                "modelCustomizationName": "VfVmee..vmme_gpb..module-2",
+                "modelCustomizationName": "VfVgeraldine..vflorence_gpb..module-2",
                 "properties": {
                   "minCountInstances": 0,
                   "maxCountInstances": null,
                   "initialCount": 0,
-                  "vfModuleLabel": "vmme_gpb"
+                  "vfModuleLabel": "vflorence_gpb"
                 },
                 "inputs": {},
                 "volumeGroupAllowed": false
               },
-              "vf_vmee0..VfVmee..base_vmme..module-0": {
+              "vf_vgeraldine0..VfVgeraldine..base_vflorence..module-0": {
                 "uuid": "a27f5cfc-7f12-4f99-af08-0af9c3885c87",
                 "invariantUuid": "a6f9e51a-2b35-416a-ae15-15e58d61f36d",
                 "customizationUuid": "f8c040f1-7e51-4a11-aca8-acf256cfd861",
                 "description": null,
-                "name": "VfVmee..base_vmme..module-0",
+                "name": "VfVgeraldine..base_vflorence..module-0",
                 "version": "2",
-                "modelCustomizationName": "VfVmee..base_vmme..module-0",
+                "modelCustomizationName": "VfVgeraldine..base_vflorence..module-0",
                 "properties": {
                   "minCountInstances": 1,
                   "maxCountInstances": 1,
                   "initialCount": 1,
-                  "vfModuleLabel": "base_vmme"
+                  "vfModuleLabel": "base_vflorence"
                 },
                 "inputs": {},
                 "volumeGroupAllowed": true
               }
             },
             "volumeGroups": {
-              "vf_vmee0..VfVmee..base_vmme..module-0": {
+              "vf_vgeraldine0..VfVgeraldine..base_vflorence..module-0": {
                 "uuid": "a27f5cfc-7f12-4f99-af08-0af9c3885c87",
                 "invariantUuid": "a6f9e51a-2b35-416a-ae15-15e58d61f36d",
                 "customizationUuid": "f8c040f1-7e51-4a11-aca8-acf256cfd861",
                 "description": null,
-                "name": "VfVmee..base_vmme..module-0",
+                "name": "VfVgeraldine..base_vflorence..module-0",
                 "version": "2",
-                "modelCustomizationName": "VfVmee..base_vmme..module-0",
+                "modelCustomizationName": "VfVgeraldine..base_vflorence..module-0",
                 "properties": {
                   "minCountInstances": 1,
                   "maxCountInstances": 1,
                   "initialCount": 1,
-                  "vfModuleLabel": "base_vmme"
+                  "vfModuleLabel": "base_vflorence"
                 },
                 "inputs": {}
               }
@@ -432,21 +430,21 @@ class MockAppStore<T>{
           "6e59c5de-f052-46fa-aa7e-2fca9d674c44": {
             "networks": {},
             "vnfs": {
-              "VF_vMee 0": {
+              "VF_vGeraldine 0": {
                 "rollbackOnFailure": "true",
                 "vfModules": {
-                  "vf_vmee0..VfVmee..base_vmme..module-0": {
-                    "vf_vmee0..VfVmee..base_vmme..module-0vmvzo": {
+                  "vf_vgeraldine0..VfVgeraldine..base_vflorence..module-0": {
+                    "vf_vgeraldine0..VfVgeraldine..base_vflorence..module-0vmvzo": {
                       "isMissingData": false,
                       "sdncPreReload": null,
                       "modelInfo": {
                         "modelType": "VFmodule",
                         "modelInvariantId": "a6f9e51a-2b35-416a-ae15-15e58d61f36d",
                         "modelVersionId": "a27f5cfc-7f12-4f99-af08-0af9c3885c87",
-                        "modelName": "VfVmee..base_vmme..module-0",
+                        "modelName": "VfVgeraldine..base_vflorence..module-0",
                         "modelVersion": "2",
                         "modelCustomizationId": "f8c040f1-7e51-4a11-aca8-acf256cfd861",
-                        "modelCustomizationName": "VfVmee..base_vmme..module-0"
+                        "modelCustomizationName": "VfVgeraldine..base_vflorence..module-0"
                       },
                       "instanceParams": [
                         {}
@@ -456,8 +454,8 @@ class MockAppStore<T>{
                   }
                 },
                 "isMissingData": true,
-                "originalName": "VF_vMee 0",
-                "vnfStoreKey": "VF_vMee 0",
+                "originalName": "VF_vGeraldine 0",
+                "vnfStoreKey": "VF_vGeraldine 0",
                 "trackById": "p3wk448m5do",
                 "uuid": "d6557200-ecf2-4641-8094-5393ae3aae60",
                 "productFamilyId": "36b4733a-53f4-4cc8-8ff0-9172e5fc4b8e",
@@ -469,9 +467,9 @@ class MockAppStore<T>{
                   "modelType": "VF",
                   "modelInvariantId": "4160458e-f648-4b30-a176-43881ffffe9e",
                   "modelVersionId": "6e59c5de-f052-46fa-aa7e-2fca9d674c44",
-                  "modelName": "VF_vMee",
+                  "modelName": "VF_vGeraldine",
                   "modelVersion": "2.0",
-                  "modelCustomizationName": "VF_vMee 0"
+                  "modelCustomizationName": "VF_vGeraldine 0"
                 }
               }
             },
@@ -516,8 +514,8 @@ class MockAppStore<T>{
         "lcpRegionsAndTenants": {
           "lcpRegionList": [
             {
-              "id": "JANET25",
-              "name": "JANET25",
+              "id": "AAIAIC25",
+              "name": "AAIAIC25",
               "isPermitted": true
             },
             {
@@ -527,7 +525,7 @@ class MockAppStore<T>{
             }
           ],
           "lcpRegionsTenantsMap": {
-            "JANET25": [
+            "AAIAIC25": [
               {
                 "id": "092eb9e8e4b7412e8787dd091bc58e86",
                 "name": "USP-SIP-IC-24335-T-01",
@@ -541,8 +539,128 @@ class MockAppStore<T>{
                 "isPermitted": true
               },
               {
-                "id": "d0a3e3f2964542259d155a81c41aadc3",
-                "name": "test-hvf6-09",
+                "id": "229bcdc6eaeb4ca59d55221141d01f8e",
+                "name": "AIN Web Tool-15-D-STTest2",
+                "isPermitted": true
+              },
+              {
+                "id": "1178612d2b394be4834ad77f567c0af2",
+                "name": "AIN Web Tool-15-D-SSPtestcustome",
+                "isPermitted": true
+              },
+              {
+                "id": "19c5ade915eb461e8af52fb2fd8cd1f2",
+                "name": "AIN Web Tool-15-D-UncheckedEcopm",
+                "isPermitted": true
+              },
+              {
+                "id": "de007636e25249238447264a988a927b",
+                "name": "AIN Web Tool-15-D-dfsdf",
+                "isPermitted": true
+              },
+              {
+                "id": "62f29b3613634ca6a3065cbe0e020c44",
+                "name": "AIN/SMS-16-D-Multiservices1",
+                "isPermitted": true
+              },
+              {
+                "id": "649289e30d3244e0b48098114d63c2aa",
+                "name": "AIN Web Tool-15-D-SSPST66",
+                "isPermitted": true
+              },
+              {
+                "id": "3f21eeea6c2c486bba31dab816c05a32",
+                "name": "AIN Web Tool-15-D-ASSPST47",
+                "isPermitted": true
+              },
+              {
+                "id": "f60ce21d3ee6427586cff0d22b03b773",
+                "name": "CESAR-100-D-sspjg67246",
+                "isPermitted": true
+              },
+              {
+                "id": "8774659e425f479895ae091bb5d46560",
+                "name": "CESAR-100-D-sspjg68359",
+                "isPermitted": true
+              },
+              {
+                "id": "624eb554b0d147c19ff8885341760481",
+                "name": "AINWebTool-15-D-iftach",
+                "isPermitted": true
+              },
+              {
+                "id": "214f55f5fc414c678059c383b03e4962",
+                "name": "CESAR-100-D-sspjg612401",
+                "isPermitted": true
+              },
+              {
+                "id": "c90666c291664841bb98e4d981ff1db5",
+                "name": "CESAR-100-D-sspjg621340",
+                "isPermitted": true
+              },
+              {
+                "id": "ce5b6bc5c7b348e1bf4b91ac9a174278",
+                "name": "sspjg621351cloned",
+                "isPermitted": true
+              },
+              {
+                "id": "b386b768a3f24c8e953abbe0b3488c02",
+                "name": "AINWebTool-15-D-eteancomp",
+                "isPermitted": true
+              },
+              {
+                "id": "dc6c4dbfd225474e9deaadd34968646c",
+                "name": "AINWebTool-15-T-SPFET",
+                "isPermitted": true
+              },
+              {
+                "id": "02cb5030e9914aa4be120bd9ed1e19eb",
+                "name": "AINWebTool-15-X-eeweww",
+                "isPermitted": true
+              },
+              {
+                "id": "f2f3830e4c984d45bcd00e1a04158a79",
+                "name": "CESAR-100-D-spjg61909",
+                "isPermitted": true
+              },
+              {
+                "id": "05b91bd5137f4929878edd965755c06d",
+                "name": "CESAR-100-D-sspjg621512cloned",
+                "isPermitted": true
+              },
+              {
+                "id": "7002fbe8482d4a989ddf445b1ce336e0",
+                "name": "AINWebTool-15-X-vdr",
+                "isPermitted": true
+              },
+              {
+                "id": "4008522be43741dcb1f5422022a2aa0b",
+                "name": "AINWebTool-15-D-ssasa",
+                "isPermitted": true
+              },
+              {
+                "id": "f44e2e96a1b6476abfda2fa407b00169",
+                "name": "AINWebTool-15-D-PFNPT",
+                "isPermitted": true
+              },
+              {
+                "id": "b69a52bec8a84669a37a1e8b72708be7",
+                "name": "AINWebTool-15-X-vdre",
+                "isPermitted": true
+              },
+              {
+                "id": "fac7d9fd56154caeb9332202dcf2969f",
+                "name": "AINWebTool-15-X-NONPODECOMP",
+                "isPermitted": true
+              },
+              {
+                "id": "2d34d8396e194eb49969fd61ffbff961",
+                "name": "DN5242-Nov16-T5",
+                "isPermitted": true
+              },
+              {
+                "id": "cb42a77ff45b48a8b8deb83bb64acc74",
+                "name": "ro-T11",
                 "isPermitted": true
               },
               {
@@ -550,6 +668,16 @@ class MockAppStore<T>{
                 "name": "ro-T112",
                 "isPermitted": true
               },
+              {
+                "id": "4914ab0ab3a743e58f0eefdacc1dde77",
+                "name": "DN5242-Nov21-T1",
+                "isPermitted": true
+              },
+              {
+                "id": "d0a3e3f2964542259d155a81c41aadc3",
+                "name": "test-hvf6-09",
+                "isPermitted": true
+              },
               {
                 "id": "cbb99fe4ada84631b7baf046b6fd2044",
                 "name": "DN5242-Nov16-T3",
@@ -561,7 +689,7 @@ class MockAppStore<T>{
         "productFamilies": [
           {
             "id": "ebc3bc3d-62fd-4a3f-a037-f619df4ff034",
-            "name": "SCOTTIE",
+            "name": "ERICA",
             "isPermitted": true
           },
           {
@@ -586,7 +714,7 @@ class MockAppStore<T>{
           },
           {
             "id": "323d69d9-2efe-4r45-ay0a-89ea7ard4e6f",
-            "name": "vSCP",
+            "name": "vEsmeralda",
             "isPermitted": true
           },
           {
@@ -630,7 +758,7 @@ class MockAppStore<T>{
             "isPermitted": true
           },
           {
-            "id": "Cisneros",
+            "id": "vMuriel",
             "name": "vMuriel",
             "isPermitted": true
           },
@@ -656,7 +784,7 @@ class MockAppStore<T>{
           },
           {
             "id": "d7bb0a21-66f2-4e6d-87d9-9ef3ced63ae4",
-            "name": "Josefina",
+            "name": "JOSEFINA",
             "isPermitted": true
           },
           {
@@ -704,7 +832,7 @@ class MockAppStore<T>{
             },
             {
               "id": "6",
-              "name": "vSEGW",
+              "name": "vPorfirio",
               "isPermitted": false
             },
             {
@@ -719,7 +847,7 @@ class MockAppStore<T>{
             },
             {
               "id": "9",
-              "name": "vMME",
+              "name": "vFLORENCE",
               "isPermitted": false
             },
             {
@@ -729,7 +857,7 @@ class MockAppStore<T>{
             },
             {
               "id": "11",
-              "name": "vSCP",
+              "name": "vEsmeralda",
               "isPermitted": false
             },
             {
@@ -739,7 +867,7 @@ class MockAppStore<T>{
             },
             {
               "id": "13",
-              "name": "vMMSC",
+              "name": "vWINIFRED",
               "isPermitted": false
             },
             {
@@ -782,6 +910,754 @@ class MockAppStore<T>{
             "id": "YYY1",
             "name": "UUUAIAAI-YYY1"
           },
+          {
+            "id": "BAN1",
+            "name": "VSDKYUTP-BAN1"
+          },
+          {
+            "id": "DKJ1",
+            "name": "DKJSJDKA-DKJ1"
+          },
+          {
+            "id": "MCS1",
+            "name": "ASACMAMS-MCS1"
+          },
+          {
+            "id": "UIO1",
+            "name": "uioclli1-UIO1"
+          },
+          {
+            "id": "RAJ1",
+            "name": "YGBIJNLQ-RAJ1"
+          },
+          {
+            "id": "OPA1",
+            "name": "opaclli1-OPA1"
+          },
+          {
+            "id": "SDE1",
+            "name": "ZXCVBNMA-SDE1"
+          },
+          {
+            "id": "VEN2",
+            "name": "FGHJUHIL-VEN2"
+          },
+          {
+            "id": "ORL1",
+            "name": "ORLDFLMA-ORL1"
+          },
+          {
+            "id": "JAD1",
+            "name": "JADECLLI-JAD1"
+          },
+          {
+            "id": "ZXL1",
+            "name": "LWLWCANN-ZXL1"
+          },
+          {
+            "id": "CKL1",
+            "name": "CLKSKCKK-CKL1"
+          },
+          {
+            "id": "SDF1",
+            "name": "sdfclli1-SDF1"
+          },
+          {
+            "id": "RAD1",
+            "name": "RADICAL1-RAD1"
+          },
+          {
+            "id": "KIT1",
+            "name": "BHYJFGLN-KIT1"
+          },
+          {
+            "id": "REL1",
+            "name": "INGERFGT-REL1"
+          },
+          {
+            "id": "JNL1",
+            "name": "CJALSDAC-JNL1"
+          },
+          {
+            "id": "OLK1",
+            "name": "OLKOLKLS-OLK1"
+          },
+          {
+            "id": "CHI1",
+            "name": "CHILLIWE-CHI1"
+          },
+          {
+            "id": "UUU4",
+            "name": "UUUAAAUU-UUU4"
+          },
+          {
+            "id": "TUF1",
+            "name": "TUFCLLI1-TUF1"
+          },
+          {
+            "id": "KJN1",
+            "name": "CKALDKSA-KJN1"
+          },
+          {
+            "id": "SAM1",
+            "name": "SNDGCA64-SAN1"
+          },
+          {
+            "id": "SCK1",
+            "name": "SCKSCKSK-SCK1"
+          },
+          {
+            "id": "HJH1",
+            "name": "AOEEQQQD-HJH1"
+          },
+          {
+            "id": "HGD1",
+            "name": "SDFQWHGD-HGD1"
+          },
+          {
+            "id": "KOR1",
+            "name": "HYFLNBVT-KOR1"
+          },
+          {
+            "id": "ATL43",
+            "name": "AICLOCID-ATL43"
+          },
+          {
+            "id": "ATL54",
+            "name": "AICFTAAI-ATL54"
+          },
+          {
+            "id": "ATL66",
+            "name": "CLLIAAII-ATL66"
+          },
+          {
+            "id": "VEL1",
+            "name": "BNMLKUIK-VEL1"
+          },
+          {
+            "id": "ICC1",
+            "name": "SANJITAT-ICC1"
+          },
+          {
+            "id": "MNT11",
+            "name": "WSXEFBTH-MNT11"
+          },
+          {
+            "id": "DEF2",
+            "name": "WSBHGTYL-DEF2"
+          },
+          {
+            "id": "MAD11",
+            "name": "SDFQWGKL-MAD11"
+          },
+          {
+            "id": "OLG1",
+            "name": "OLHOLHOL-OLG1"
+          },
+          {
+            "id": "GAR1",
+            "name": "NGFVSJKO-GAR1"
+          },
+          {
+            "id": "SAN22",
+            "name": "GNVLSCTL-SAN22"
+          },
+          {
+            "id": "HRG1",
+            "name": "HRGHRGGS-HRG1"
+          },
+          {
+            "id": "JCS1",
+            "name": "JCSJSCJS-JCS1"
+          },
+          {
+            "id": "DHA12",
+            "name": "WSXEDECF-DHA12"
+          },
+          {
+            "id": "HJE1",
+            "name": "AOEEWWWD-HJE1"
+          },
+          {
+            "id": "NCA1",
+            "name": "NCANCANN-NCA1"
+          },
+          {
+            "id": "IOP1",
+            "name": "iopclli1-IOP1"
+          },
+          {
+            "id": "RTY1",
+            "name": "rtyclli1-RTY1"
+          },
+          {
+            "id": "KAP1",
+            "name": "HIOUYTRQ-KAP1"
+          },
+          {
+            "id": "ZEN1",
+            "name": "ZENCLLI1-ZEN1"
+          },
+          {
+            "id": "HKA1",
+            "name": "JAKHLASS-HKA1"
+          },
+          {
+            "id": "CQK1",
+            "name": "CQKSCAKK-CQK1"
+          },
+          {
+            "id": "SAI1",
+            "name": "UBEKQLPD-SAI1"
+          },
+          {
+            "id": "ERT1",
+            "name": "ertclli1-ERT1"
+          },
+          {
+            "id": "IBB1",
+            "name": "PLMKOIJU-IBB1"
+          },
+          {
+            "id": "TIR2",
+            "name": "PLKINHYI-TIR2"
+          },
+          {
+            "id": "HSD1",
+            "name": "CHASKCDS-HSD1"
+          },
+          {
+            "id": "SLF78",
+            "name": "SDCTLFN1-SLF78"
+          },
+          {
+            "id": "SEE78",
+            "name": "SDCTEEE4-SEE78"
+          },
+          {
+            "id": "SAN13",
+            "name": "TOKYJPFA-SAN13"
+          },
+          {
+            "id": "SAA78",
+            "name": "SDCTAAA1-SAA78"
+          },
+          {
+            "id": "LUC1",
+            "name": "ATLDFGYC-LUC1"
+          },
+          {
+            "id": "AMD13",
+            "name": "MEMATLAN-AMD13"
+          },
+          {
+            "id": "TOR1",
+            "name": "TOROONXN-TOR1"
+          },
+          {
+            "id": "QWE1",
+            "name": "QWECLLI1-QWE1"
+          },
+          {
+            "id": "ZOG1",
+            "name": "ZOGASTRO-ZOG1"
+          },
+          {
+            "id": "CAL33",
+            "name": "CALIFORN-CAL33"
+          },
+          {
+            "id": "SHH78",
+            "name": "SDIT1HHH-SHH78"
+          },
+          {
+            "id": "DSA1",
+            "name": "LKJHGFDS-DSA1"
+          },
+          {
+            "id": "CLG1",
+            "name": "CLGRABAD-CLG1"
+          },
+          {
+            "id": "BNA1",
+            "name": "BNARAGBK-BNA1"
+          },
+          {
+            "id": "ATL84",
+            "name": "CANTTCOC-ATL84"
+          },
+          {
+            "id": "APP1",
+            "name": "WBHGTYUI-APP1"
+          },
+          {
+            "id": "RJN1",
+            "name": "RJNRBZAW-RJN1"
+          },
+          {
+            "id": "EHH78",
+            "name": "SDCSHHH5-EHH78"
+          },
+          {
+            "id": "mac10",
+            "name": "PKGTESTF-mac10"
+          },
+          {
+            "id": "SXB78",
+            "name": "SDCTGXB1-SXB78"
+          },
+          {
+            "id": "SAX78",
+            "name": "SDCTAXG1-SAX78"
+          },
+          {
+            "id": "SYD1",
+            "name": "SYDNAUBV-SYD1"
+          },
+          {
+            "id": "TOK1",
+            "name": "TOKYJPFA-TOK1"
+          },
+          {
+            "id": "KGM2",
+            "name": "KGMTNC20-KGM2"
+          },
+          {
+            "id": "DCC1b",
+            "name": "POIUYTGH-DCC1b"
+          },
+          {
+            "id": "SKK78",
+            "name": "SDCTKKK1-SKK78"
+          },
+          {
+            "id": "SGG78",
+            "name": "SDCTGGG1-SGG78"
+          },
+          {
+            "id": "SJJ78",
+            "name": "SDCTJJJ1-SJJ78"
+          },
+          {
+            "id": "SBX78",
+            "name": "SDCTBXG1-SBX78"
+          },
+          {
+            "id": "LAG1",
+            "name": "LARGIZON-LAG1"
+          },
+          {
+            "id": "IAA1",
+            "name": "QAZXSWED-IAA1"
+          },
+          {
+            "id": "POI1",
+            "name": "PLMNJKIU-POI1"
+          },
+          {
+            "id": "LAG1a",
+            "name": "LARGIZON-LAG1a"
+          },
+          {
+            "id": "PBL1",
+            "name": "PBLAPBAI-PBL1"
+          },
+          {
+            "id": "LAG45",
+            "name": "LARGIZON-LAG1a"
+          },
+          {
+            "id": "MAR1",
+            "name": "MNBVCXZM-MAR1"
+          },
+          {
+            "id": "HST70",
+            "name": "HSTNTX70-HST70"
+          },
+          {
+            "id": "DCC1a",
+            "name": "POIUYTGH-DCC1a"
+          },
+          {
+            "id": "TOL1",
+            "name": "TOLDOH21-TOL1"
+          },
+          {
+            "id": "LON1",
+            "name": "LONEENCO-LON1"
+          },
+          {
+            "id": "SJU78",
+            "name": "SDIT1JUB-SJU78"
+          },
+          {
+            "id": "STN27",
+            "name": "HSTNTX01-STN27"
+          },
+          {
+            "id": "SSW56",
+            "name": "ss8126GT-SSW56"
+          },
+          {
+            "id": "SBB78",
+            "name": "SDIT1BBB-SBB78"
+          },
+          {
+            "id": "DCC3",
+            "name": "POIUYTGH-DCC3"
+          },
+          {
+            "id": "GNV1",
+            "name": "GNVLSCTL-GNV1"
+          },
+          {
+            "id": "WAS1",
+            "name": "WASHDCSW-WAS1"
+          },
+          {
+            "id": "TOY1",
+            "name": "TORYONNZ-TOY1"
+          },
+          {
+            "id": "STT1",
+            "name": "STTLWA02-STT1"
+          },
+          {
+            "id": "STG1",
+            "name": "STTGGE62-STG1"
+          },
+          {
+            "id": "SLL78",
+            "name": "SDCTLLL1-SLL78"
+          },
+          {
+            "id": "SBU78",
+            "name": "SDIT1BUB-SBU78"
+          },
+          {
+            "id": "ATL2",
+            "name": "ATLNGANW-ATL2"
+          },
+          {
+            "id": "BOT1",
+            "name": "BOTHWAKY-BOT1"
+          },
+          {
+            "id": "SNG1",
+            "name": "SNGPSIAU-SNG1"
+          },
+          {
+            "id": "NYC1",
+            "name": "NYCMNY54-NYC1"
+          },
+          {
+            "id": "LAG1b",
+            "name": "LARGIZON-LAG1b"
+          },
+          {
+            "id": "AMD15",
+            "name": "AMDFAA01-AMD15"
+          },
+          {
+            "id": "SNA1",
+            "name": "SNANTXCA-SNA1"
+          },
+          {
+            "id": "PLT1",
+            "name": "PLTNCA60-PLT1"
+          },
+          {
+            "id": "TLP1",
+            "name": "TLPNXM18-TLP1"
+          },
+          {
+            "id": "SDD81",
+            "name": "SAIT1DD6-SDD81"
+          },
+          {
+            "id": "DCC1",
+            "name": "POIUYTGH-DCC1"
+          },
+          {
+            "id": "DCC2",
+            "name": "POIUYTGH-DCC2"
+          },
+          {
+            "id": "OKC1",
+            "name": "OKCBOK55-OKC1"
+          },
+          {
+            "id": "PAR1",
+            "name": "PARSFRCG-PAR1"
+          },
+          {
+            "id": "TES36",
+            "name": "ABCEETES-TES36"
+          },
+          {
+            "id": "COM1",
+            "name": "PLMKOPIU-COM1"
+          },
+          {
+            "id": "ANI1",
+            "name": "ATLNGTRE-ANI1"
+          },
+          {
+            "id": "SDG78",
+            "name": "SDIT1BDG-SDG78"
+          },
+          {
+            "id": "mac20",
+            "name": "PKGTESTF-mac20"
+          },
+          {
+            "id": "DSF45",
+            "name": "DSFBG123-DSF45"
+          },
+          {
+            "id": "HST25",
+            "name": "HSTNTX01-HST25"
+          },
+          {
+            "id": "AMD18",
+            "name": "AUDIMA01-AMD18"
+          },
+          {
+            "id": "SAA80",
+            "name": "SAIT9AA3-SAA80"
+          },
+          {
+            "id": "SSA56",
+            "name": "SSIT2AA7-SSA56"
+          },
+          {
+            "id": "SDD82",
+            "name": "SAIT1DD9-SDD82"
+          },
+          {
+            "id": "JCV1",
+            "name": "JCVLFLBW-JCV1"
+          },
+          {
+            "id": "SUL2",
+            "name": "WERTYUJK-SUL2"
+          },
+          {
+            "id": "PUR1",
+            "name": "purelyde-PUR1"
+          },
+          {
+            "id": "FDE55",
+            "name": "FDERT555-FDE55"
+          },
+          {
+            "id": "SITE",
+            "name": "LONEENCO-SITE"
+          },
+          {
+            "id": "ATL1",
+            "name": "ATLNGAMA-ATL1"
+          },
+          {
+            "id": "JUL1",
+            "name": "ZXCVBNMM-JUL1"
+          },
+          {
+            "id": "TAT34",
+            "name": "TESAAISB-TAT34"
+          },
+          {
+            "id": "XCP12",
+            "name": "CHKGH123-XCP12"
+          },
+          {
+            "id": "RAI1",
+            "name": "poiuytre-RAI1"
+          },
+          {
+            "id": "HPO1",
+            "name": "ATLNGAUP-HPO1"
+          },
+          {
+            "id": "KJF12",
+            "name": "KJFDH123-KJF12"
+          },
+          {
+            "id": "SCC80",
+            "name": "SAIT9CC3-SCC80"
+          },
+          {
+            "id": "SAA12",
+            "name": "SAIT9AF8-SAA12"
+          },
+          {
+            "id": "SAA14",
+            "name": "SAIT1AA9-SAA14"
+          },
+          {
+            "id": "ATL35",
+            "name": "TTESSAAI-ATL35"
+          },
+          {
+            "id": "CWY1",
+            "name": "CWYMOWBS-CWY1"
+          },
+          {
+            "id": "ATL76",
+            "name": "TELEPAAI-ATL76"
+          },
+          {
+            "id": "DSL12",
+            "name": "DSLFK242-DSL12"
+          },
+          {
+            "id": "ATL53",
+            "name": "AAIATLTE-ATL53"
+          },
+          {
+            "id": "SAA11",
+            "name": "SAIT9AA2-SAA11"
+          },
+          {
+            "id": "ATL62",
+            "name": "TESSASCH-ATL62"
+          },
+          {
+            "id": "AUG1",
+            "name": "ASDFGHJK-AUG1"
+          },
+          {
+            "id": "POI22",
+            "name": "POIUY123-POI22"
+          },
+          {
+            "id": "SAA13",
+            "name": "SAIT1AA9-SAA13"
+          },
+          {
+            "id": "BHY17",
+            "name": "BHYTFRF3-BHY17"
+          },
+          {
+            "id": "LIS1",
+            "name": "HOSTPROF-LIS1"
+          },
+          {
+            "id": "SIP1",
+            "name": "ZXCVBNMK-SIP1"
+          },
+          {
+            "id": "ATL99",
+            "name": "TEESTAAI-ATL43"
+          },
+          {
+            "id": "ATL64",
+            "name": "FORLOAAJ-ATL64"
+          },
+          {
+            "id": "TAT33",
+            "name": "TESAAISA-TAT33"
+          },
+          {
+            "id": "RAD10",
+            "name": "INDIPUNE-RAD10"
+          },
+          {
+            "id": "RTW5",
+            "name": "BHYTFRY4-RTW5"
+          },
+          {
+            "id": "JGS1",
+            "name": "KSJKKKKK-JGS1"
+          },
+          {
+            "id": "ATL98",
+            "name": "TEESTAAI-ATL43"
+          },
+          {
+            "id": "WAN1",
+            "name": "LEIWANGW-WAN1"
+          },
+          {
+            "id": "ATL44",
+            "name": "ATLSANAB-ATL44"
+          },
+          {
+            "id": "RTD2",
+            "name": "BHYTFRk4-RTD2"
+          },
+          {
+            "id": "NIR1",
+            "name": "ORFLMANA-NIR1"
+          },
+          {
+            "id": "ATL75",
+            "name": "SANAAIRE-ATL75"
+          },
+          {
+            "id": "NUM1",
+            "name": "QWERTYUI-NUM1"
+          },
+          {
+            "id": "hvf32",
+            "name": "MDTWNJ21-hvf32"
+          },
+          {
+            "id": "RTZ4",
+            "name": "BHYTFRZ6-RTZ4"
+          },
+          {
+            "id": "ATL56",
+            "name": "ATLSANAC-ATL56"
+          },
+          {
+            "id": "AMS1",
+            "name": "AMSTNLBW-AMS1"
+          },
+          {
+            "id": "RCT1",
+            "name": "AMSTERNL-RCT1"
+          },
+          {
+            "id": "JAN1",
+            "name": "ORFLMATT-JAN1"
+          },
+          {
+            "id": "ABC14",
+            "name": "TESAAISA-ABC14"
+          },
+          {
+            "id": "TAT37",
+            "name": "TESAAISD-TAT37"
+          },
+          {
+            "id": "MIC54",
+            "name": "MICHIGAN-MIC54"
+          },
+          {
+            "id": "ABC11",
+            "name": "ATLSANAI-ABC11"
+          },
+          {
+            "id": "AMF11",
+            "name": "AMDOCS01-AMF11"
+          },
+          {
+            "id": "ATL63",
+            "name": "ATLSANEW-ATL63"
+          },
+          {
+            "id": "ABC12",
+            "name": "ATLSECIA-ABC12"
+          },
+          {
+            "id": "hvf20",
+            "name": "MDTWNJ21-hvf20"
+          },
+          {
+            "id": "ABC15",
+            "name": "AAITESAN-ABC15"
+          },
           {
             "id": "AVT1",
             "name": "AVTRFLHD-AVT1"
@@ -1009,8 +1885,8 @@ describe('Generic Form popup Service', () => {
     let uuidData : UUIDData = <any>{
       type : 'VFmodule',
       serviceId : '6e59c5de-f052-46fa-aa7e-2fca9d674c44',
-      vnfStoreKey : 'VF_vMee 0',
-      vFModuleStoreKey : 'vf_vmee0..VfVmee..vmme_vlc..module-1',
+      vnfStoreKey : 'VF_vGeraldine 0',
+      vFModuleStoreKey : 'vf_vgeraldine0..VfVgeraldine..vflorence_vlc..module-1',
       popupService : vfModulePopupService
     };
     let node : ITreeNode = <any>{data : {}};
index 44d4056..69cb7dc 100644 (file)
@@ -30,17 +30,12 @@ class MockReduxStore<T> {
           "FLAG_NETWORK_TO_ASYNC_INSTANTIATION": false,
           "FLAG_SHOW_ASSIGNMENTS": true,
           "FLAG_FABRIC_CONFIGURATION_ASSIGNMENTS": true,
-          "FLAG_UNASSIGN_SERVICE": true,
           "FLAG_SHOW_VERIFY_SERVICE": false,
-          "FLAG_COLLECTION_RESOURCE_SUPPORT": true,
-          "FLAG_DUPLICATE_VNF": true,
           "FLAG_SERVICE_MODEL_CACHE": true,
           "FLAG_ADVANCED_PORTS_FILTER": true,
           "CREATE_INSTANCE_TEST": false,
           "FLAG_SETTING_DEFAULTS_IN_DRAWING_BOARD": false,
           "FLAG_REGION_ID_FROM_REMOTE": true,
-          "FLAG_ASYNC_INSTANTIATION": true,
-          "FLAG_ASYNC_JOBS": true,
           "EMPTY_DRAWING_BOARD_TEST": false,
           "FLAG_ADD_MSO_TESTAPI_FIELD": true
         },
@@ -63,11 +58,11 @@ class MockReduxStore<T> {
               "inputs": {}
             },
             "vnfs": {
-              "VF_vMee 0": {
+              "VF_vGeraldine 0": {
                 "uuid": "d6557200-ecf2-4641-8094-5393ae3aae60",
                 "invariantUuid": "4160458e-f648-4b30-a176-43881ffffe9e",
-                "description": "VSP_vMee",
-                "name": "VF_vMee",
+                "description": "VSP_vGeraldine",
+                "name": "VF_vGeraldine",
                 "version": "2.0",
                 "customizationUuid": "91415b44-753d-494c-926a-456a9172bbb9",
                 "inputs": {},
@@ -238,74 +233,74 @@ class MockReduxStore<T> {
                   "sctp-b-egress-dst_end_port": "65535.0"
                 },
                 "type": "VF",
-                "modelCustomizationName": "VF_vMee 0",
+                "modelCustomizationName": "VF_vGeraldine 0",
                 "vfModules": {
-                  "vf_vmee0..VfVmee..vmme_vlc..module-1": {
+                  "vf_vgeraldine0..VfVgeraldine..vflorence_vlc..module-1": {
                     "uuid": "522159d5-d6e0-4c2a-aa44-5a542a12a830",
                     "invariantUuid": "98a7c88b-b577-476a-90e4-e25a5871e02b",
                     "customizationUuid": "55b1be94-671a-403e-a26c-667e9c47d091",
                     "description": null,
-                    "name": "VfVmee..vmme_vlc..module-1",
+                    "name": "VfVgeraldine..vflorence_vlc..module-1",
                     "version": "2",
-                    "modelCustomizationName": "VfVmee..vmme_vlc..module-1",
+                    "modelCustomizationName": "VfVgeraldine..vflorence_vlc..module-1",
                     "properties": {
                       "minCountInstances": 0,
                       "maxCountInstances": null,
                       "initialCount": 0,
-                      "vfModuleLabel": "vmme_vlc"
+                      "vfModuleLabel": "vflorence_vlc"
                     },
                     "inputs": {},
                     "volumeGroupAllowed": true
                   },
-                  "vf_vmee0..VfVmee..vmme_gpb..module-2": {
+                  "vf_vgeraldine0..VfVgeraldine..vflorence_gpb..module-2": {
                     "uuid": "41708296-e443-4c71-953f-d9a010f059e1",
                     "invariantUuid": "1cca90b8-3490-495e-87da-3f3e4c57d5b9",
                     "customizationUuid": "6add59e0-7fe1-4bc4-af48-f8812422ae7c",
                     "description": null,
-                    "name": "VfVmee..vmme_gpb..module-2",
+                    "name": "VfVgeraldine..vflorence_gpb..module-2",
                     "version": "2",
-                    "modelCustomizationName": "VfVmee..vmme_gpb..module-2",
+                    "modelCustomizationName": "VfVgeraldine..vflorence_gpb..module-2",
                     "properties": {
                       "minCountInstances": 0,
                       "maxCountInstances": null,
                       "initialCount": 0,
-                      "vfModuleLabel": "vmme_gpb"
+                      "vfModuleLabel": "vflorence_gpb"
                     },
                     "inputs": {},
                     "volumeGroupAllowed": false
                   },
-                  "vf_vmee0..VfVmee..base_vmme..module-0": {
+                  "vf_vgeraldine0..VfVgeraldine..base_vflorence..module-0": {
                     "uuid": "a27f5cfc-7f12-4f99-af08-0af9c3885c87",
                     "invariantUuid": "a6f9e51a-2b35-416a-ae15-15e58d61f36d",
                     "customizationUuid": "f8c040f1-7e51-4a11-aca8-acf256cfd861",
                     "description": null,
-                    "name": "VfVmee..base_vmme..module-0",
+                    "name": "VfVgeraldine..base_vflorence..module-0",
                     "version": "2",
-                    "modelCustomizationName": "VfVmee..base_vmme..module-0",
+                    "modelCustomizationName": "VfVgeraldine..base_vflorence..module-0",
                     "properties": {
                       "minCountInstances": 1,
                       "maxCountInstances": 1,
                       "initialCount": 1,
-                      "vfModuleLabel": "base_vmme"
+                      "vfModuleLabel": "base_vflorence"
                     },
                     "inputs": {},
                     "volumeGroupAllowed": true
                   }
                 },
                 "volumeGroups": {
-                  "vf_vmee0..VfVmee..base_vmme..module-0": {
+                  "vf_vgeraldine0..VfVgeraldine..base_vflorence..module-0": {
                     "uuid": "a27f5cfc-7f12-4f99-af08-0af9c3885c87",
                     "invariantUuid": "a6f9e51a-2b35-416a-ae15-15e58d61f36d",
                     "customizationUuid": "f8c040f1-7e51-4a11-aca8-acf256cfd861",
                     "description": null,
-                    "name": "VfVmee..base_vmme..module-0",
+                    "name": "VfVgeraldine..base_vflorence..module-0",
                     "version": "2",
-                    "modelCustomizationName": "VfVmee..base_vmme..module-0",
+                    "modelCustomizationName": "VfVgeraldine..base_vflorence..module-0",
                     "properties": {
                       "minCountInstances": 1,
                       "maxCountInstances": 1,
                       "initialCount": 1,
-                      "vfModuleLabel": "base_vmme"
+                      "vfModuleLabel": "base_vflorence"
                     },
                     "inputs": {}
                   }
@@ -333,7 +328,7 @@ class MockReduxStore<T> {
                 "modelCustomizationName": "ExtVL 0"
               }
             },
-            "collectionResource": {},
+            "collectionResources": {},
             "configurations": {
               "Port Mirroring Configuration By Policy 0": {
                 "uuid": "b4398538-e89d-4f13-b33d-ca323434ba50",
@@ -354,72 +349,72 @@ class MockReduxStore<T> {
             },
             "serviceProxies": {},
             "vfModules": {
-              "vf_vmee0..VfVmee..vmme_vlc..module-1": {
+              "vf_vgeraldine0..VfVgeraldine..vflorence_vlc..module-1": {
                 "uuid": "522159d5-d6e0-4c2a-aa44-5a542a12a830",
                 "invariantUuid": "98a7c88b-b577-476a-90e4-e25a5871e02b",
                 "customizationUuid": "55b1be94-671a-403e-a26c-667e9c47d091",
                 "description": null,
-                "name": "VfVmee..vmme_vlc..module-1",
+                "name": "VfVgeraldine..vflorence_vlc..module-1",
                 "version": "2",
-                "modelCustomizationName": "VfVmee..vmme_vlc..module-1",
+                "modelCustomizationName": "VfVgeraldine..vflorence_vlc..module-1",
                 "properties": {
                   "minCountInstances": 0,
                   "maxCountInstances": null,
                   "initialCount": 0,
-                  "vfModuleLabel": "vmme_vlc"
+                  "vfModuleLabel": "vflorence_vlc"
                 },
                 "inputs": {},
                 "volumeGroupAllowed": true
               },
-              "vf_vmee0..VfVmee..vmme_gpb..module-2": {
+              "vf_vgeraldine0..VfVgeraldine..vflorence_gpb..module-2": {
                 "uuid": "41708296-e443-4c71-953f-d9a010f059e1",
                 "invariantUuid": "1cca90b8-3490-495e-87da-3f3e4c57d5b9",
                 "customizationUuid": "6add59e0-7fe1-4bc4-af48-f8812422ae7c",
                 "description": null,
-                "name": "VfVmee..vmme_gpb..module-2",
+                "name": "VfVgeraldine..vflorence_gpb..module-2",
                 "version": "2",
-                "modelCustomizationName": "VfVmee..vmme_gpb..module-2",
+                "modelCustomizationName": "VfVgeraldine..vflorence_gpb..module-2",
                 "properties": {
                   "minCountInstances": 0,
                   "maxCountInstances": null,
                   "initialCount": 0,
-                  "vfModuleLabel": "vmme_gpb"
+                  "vfModuleLabel": "vflorence_gpb"
                 },
                 "inputs": {},
                 "volumeGroupAllowed": false
               },
-              "vf_vmee0..VfVmee..base_vmme..module-0": {
+              "vf_vgeraldine0..VfVgeraldine..base_vflorence..module-0": {
                 "uuid": "a27f5cfc-7f12-4f99-af08-0af9c3885c87",
                 "invariantUuid": "a6f9e51a-2b35-416a-ae15-15e58d61f36d",
                 "customizationUuid": "f8c040f1-7e51-4a11-aca8-acf256cfd861",
                 "description": null,
-                "name": "VfVmee..base_vmme..module-0",
+                "name": "VfVgeraldine..base_vflorence..module-0",
                 "version": "2",
-                "modelCustomizationName": "VfVmee..base_vmme..module-0",
+                "modelCustomizationName": "VfVgeraldine..base_vflorence..module-0",
                 "properties": {
                   "minCountInstances": 1,
                   "maxCountInstances": 1,
                   "initialCount": 1,
-                  "vfModuleLabel": "base_vmme"
+                  "vfModuleLabel": "base_vflorence"
                 },
                 "inputs": {},
                 "volumeGroupAllowed": true
               }
             },
             "volumeGroups": {
-              "vf_vmee0..VfVmee..base_vmme..module-0": {
+              "vf_vgeraldine0..VfVgeraldine..base_vflorence..module-0": {
                 "uuid": "a27f5cfc-7f12-4f99-af08-0af9c3885c87",
                 "invariantUuid": "a6f9e51a-2b35-416a-ae15-15e58d61f36d",
                 "customizationUuid": "f8c040f1-7e51-4a11-aca8-acf256cfd861",
                 "description": null,
-                "name": "VfVmee..base_vmme..module-0",
+                "name": "VfVgeraldine..base_vflorence..module-0",
                 "version": "2",
-                "modelCustomizationName": "VfVmee..base_vmme..module-0",
+                "modelCustomizationName": "VfVgeraldine..base_vflorence..module-0",
                 "properties": {
                   "minCountInstances": 1,
                   "maxCountInstances": 1,
                   "initialCount": 1,
-                  "vfModuleLabel": "base_vmme"
+                  "vfModuleLabel": "base_vflorence"
                 },
                 "inputs": {}
               }
@@ -439,7 +434,7 @@ class MockReduxStore<T> {
               "serviceEcompNaming": "false",
               "instantiationType": "A-La-Carte",
               "inputs": {
-                "2017488_adiodvpe0_ASN": {
+                "2017488_pasqualevpe0_ASN": {
                   "type": "string",
                   "description": "AV/PE",
                   "entry_schema": null,
@@ -451,11 +446,11 @@ class MockReduxStore<T> {
               }
             },
             "vnfs": {
-              "2017-388_ADIOD-vPE 1": {
+              "2017-388_PASQUALE-vPE 1": {
                 "uuid": "0903e1c0-8e03-4936-b5c2-260653b96413",
                 "invariantUuid": "00beb8f9-6d39-452f-816d-c709b9cbb87d",
-                "description": "Name ADIOD vPE Description The provider edge function for the ADIOD service supported by the Junipers VMX product Category Router Vendor Juniper Vendor Release Code 17.2 Owners Mary Fragale. Updated 9-25 to use v8.0 of the Juniper Valid 2 VLM",
-                "name": "2017-388_ADIOD-vPE",
+                "description": "Name PASQUALE vPE Description The provider edge function for the PASQUALE service supported by the Junipers VMX product Category Router Vendor Juniper Vendor Release Code 17.2 Owners Mary Fragale. Updated 9-25 to use v8.0 of the Juniper Valid 2 VLM",
+                "name": "2017-388_PASQUALE-vPE",
                 "version": "1.0",
                 "customizationUuid": "280dec31-f16d-488b-9668-4aae55d6648a",
                 "inputs": {
@@ -518,29 +513,29 @@ class MockReduxStore<T> {
                   "vnf_config_template_version": {
                     "displayName": "vnf_config_template_version",
                     "command": "get_input",
-                    "inputName": "2017488_adiodvpe0_vnf_config_template_version"
+                    "inputName": "2017488_pasqualevpe0_vnf_config_template_version"
                   },
                   "bandwidth_units": {
                     "displayName": "bandwidth_units",
                     "command": "get_input",
-                    "inputName": "adiodvpe0_bandwidth_units"
+                    "inputName": "pasqualevpe0_bandwidth_units"
                   },
-                  "bandwidth": {"displayName": "bandwidth", "command": "get_input", "inputName": "adiodvpe0_bandwidth"},
+                  "bandwidth": {"displayName": "bandwidth", "command": "get_input", "inputName": "pasqualevpe0_bandwidth"},
                   "AIC_CLLI": {
                     "displayName": "AIC_CLLI",
                     "command": "get_input",
-                    "inputName": "2017488_adiodvpe0_AIC_CLLI"
+                    "inputName": "2017488_pasqualevpe0_AIC_CLLI"
                   },
-                  "ASN": {"displayName": "ASN", "command": "get_input", "inputName": "2017488_adiodvpe0_ASN"},
+                  "ASN": {"displayName": "ASN", "command": "get_input", "inputName": "2017488_pasqualevpe0_ASN"},
                   "vnf_instance_name": {
                     "displayName": "vnf_instance_name",
                     "command": "get_input",
-                    "inputName": "2017488_adiodvpe0_vnf_instance_name"
+                    "inputName": "2017488_pasqualevpe0_vnf_instance_name"
                   }
                 },
                 "properties": {
                   "vmxvre_retype": "RE-VMX",
-                  "vnf_config_template_version": "get_input:2017488_adiodvpe0_vnf_config_template_version",
+                  "vnf_config_template_version": "get_input:2017488_pasqualevpe0_vnf_config_template_version",
                   "sriov44_net_id": "48d399b3-11ee-48a8-94d2-f0ea94d6be8d",
                   "int_ctl_net_id": "2f323477-6936-4d01-ac53-d849430281d9",
                   "vmxvpfe_sriov41_0_port_mac": "00:11:22:EF:AC:DF",
@@ -585,7 +580,7 @@ class MockReduxStore<T> {
                   "vmxvpfe_sriov43_0_port_unknownmulticastallow": "true",
                   "vmxvre_int_ctl_ip_0": "10.0.0.10",
                   "ecomp_generated_naming": "false",
-                  "AIC_CLLI": "get_input:2017488_adiodvpe0_AIC_CLLI",
+                  "AIC_CLLI": "get_input:2017488_pasqualevpe0_AIC_CLLI",
                   "vnf_name": "mtnj309me6vre",
                   "vmxvpfe_sriov41_0_port_unknownunicastallow": "true",
                   "vmxvre_volume_type_1": "HITACHI",
@@ -593,14 +588,14 @@ class MockReduxStore<T> {
                   "vmxvre_volume_type_0": "HITACHI",
                   "vmxvpfe_volume_type_0": "HITACHI",
                   "vmxvpfe_sriov43_0_port_broadcastallow": "true",
-                  "bandwidth_units": "get_input:adiodvpe0_bandwidth_units",
+                  "bandwidth_units": "get_input:pasqualevpe0_bandwidth_units",
                   "vnf_id": "123",
                   "vmxvre_oam_prefix": "24",
                   "availability_zone_0": "mtpocfo-kvm-az01",
-                  "ASN": "get_input:2017488_adiodvpe0_ASN",
+                  "ASN": "get_input:2017488_pasqualevpe0_ASN",
                   "vmxvre_chassis_i2cid": "161",
                   "vmxvpfe_name_0": "vPFEXI",
-                  "bandwidth": "get_input:adiodvpe0_bandwidth",
+                  "bandwidth": "get_input:pasqualevpe0_bandwidth",
                   "availability_zone_max_count": "1",
                   "vmxvre_volume_size_0": "45.0",
                   "vmxvre_volume_size_1": "50.0",
@@ -610,7 +605,7 @@ class MockReduxStore<T> {
                   "vmxvre_ore_present": "0",
                   "vmxvre_volume_name_0": "vREXI_FBVolume",
                   "vmxvre_type": "0",
-                  "vnf_instance_name": "get_input:2017488_adiodvpe0_vnf_instance_name",
+                  "vnf_instance_name": "get_input:2017488_pasqualevpe0_vnf_instance_name",
                   "vmxvpfe_sriov41_0_port_unknownmulticastallow": "true",
                   "oam_net_id": "b95eeb1d-d55d-4827-abb4-8ebb94941429",
                   "vmx_int_ctl_len": "24",
@@ -624,15 +619,15 @@ class MockReduxStore<T> {
                   "vmxvpfe_flavor_name": "ns.c20r16d25.v5"
                 },
                 "type": "VF",
-                "modelCustomizationName": "2017-388_ADIOD-vPE 1",
+                "modelCustomizationName": "2017-388_PASQUALE-vPE 1",
                 "vfModules": {},
                 "volumeGroups": {},
                 "vfcInstanceGroups": {}
-              }, "2017-388_ADIOD-vPE 0": {
+              }, "2017-388_PASQUALE-vPE 0": {
                 "uuid": "afacccf6-397d-45d6-b5ae-94c39734b168",
                 "invariantUuid": "72e465fe-71b1-4e7b-b5ed-9496118ff7a8",
-                "description": "Name ADIOD vPE Description The provider edge function for the ADIOD service supported by the Junipers VMX product Category Router Vendor Juniper Vendor Release Code 17.2 Owners Mary Fragale. Updated 9-25 to use v8.0 of the Juniper Valid 2 VLM",
-                "name": "2017-388_ADIOD-vPE",
+                "description": "Name PASQUALE vPE Description The provider edge function for the PASQUALE service supported by the Junipers VMX product Category Router Vendor Juniper Vendor Release Code 17.2 Owners Mary Fragale. Updated 9-25 to use v8.0 of the Juniper Valid 2 VLM",
+                "name": "2017-388_PASQUALE-vPE",
                 "version": "4.0",
                 "customizationUuid": "b3c76f73-eeb5-4fb6-9d31-72a889f1811c",
                 "inputs": {
@@ -695,29 +690,29 @@ class MockReduxStore<T> {
                   "vnf_config_template_version": {
                     "displayName": "vnf_config_template_version",
                     "command": "get_input",
-                    "inputName": "2017488_adiodvpe0_vnf_config_template_version"
+                    "inputName": "2017488_pasqualevpe0_vnf_config_template_version"
                   },
                   "bandwidth_units": {
                     "displayName": "bandwidth_units",
                     "command": "get_input",
-                    "inputName": "adiodvpe0_bandwidth_units"
+                    "inputName": "pasqualevpe0_bandwidth_units"
                   },
-                  "bandwidth": {"displayName": "bandwidth", "command": "get_input", "inputName": "adiodvpe0_bandwidth"},
+                  "bandwidth": {"displayName": "bandwidth", "command": "get_input", "inputName": "pasqualevpe0_bandwidth"},
                   "AIC_CLLI": {
                     "displayName": "AIC_CLLI",
                     "command": "get_input",
-                    "inputName": "2017488_adiodvpe0_AIC_CLLI"
+                    "inputName": "2017488_pasqualevpe0_AIC_CLLI"
                   },
-                  "ASN": {"displayName": "ASN", "command": "get_input", "inputName": "2017488_adiodvpe0_ASN"},
+                  "ASN": {"displayName": "ASN", "command": "get_input", "inputName": "2017488_pasqualevpe0_ASN"},
                   "vnf_instance_name": {
                     "displayName": "vnf_instance_name",
                     "command": "get_input",
-                    "inputName": "2017488_adiodvpe0_vnf_instance_name"
+                    "inputName": "2017488_pasqualevpe0_vnf_instance_name"
                   }
                 },
                 "properties": {
                   "vmxvre_retype": "RE-VMX",
-                  "vnf_config_template_version": "get_input:2017488_adiodvpe0_vnf_config_template_version",
+                  "vnf_config_template_version": "get_input:2017488_pasqualevpe0_vnf_config_template_version",
                   "sriov44_net_id": "48d399b3-11ee-48a8-94d2-f0ea94d6be8d",
                   "int_ctl_net_id": "2f323477-6936-4d01-ac53-d849430281d9",
                   "vmxvpfe_sriov41_0_port_mac": "00:11:22:EF:AC:DF",
@@ -763,7 +758,7 @@ class MockReduxStore<T> {
                   "vmxvpfe_sriov43_0_port_unknownmulticastallow": "true",
                   "vmxvre_int_ctl_ip_0": "10.0.0.10",
                   "ecomp_generated_naming": "false",
-                  "AIC_CLLI": "get_input:2017488_adiodvpe0_AIC_CLLI",
+                  "AIC_CLLI": "get_input:2017488_pasqualevpe0_AIC_CLLI",
                   "vnf_name": "mtnj309me6vre",
                   "vmxvpfe_sriov41_0_port_unknownunicastallow": "true",
                   "vmxvre_volume_type_1": "HITACHI",
@@ -771,14 +766,14 @@ class MockReduxStore<T> {
                   "vmxvre_volume_type_0": "HITACHI",
                   "vmxvpfe_volume_type_0": "HITACHI",
                   "vmxvpfe_sriov43_0_port_broadcastallow": "true",
-                  "bandwidth_units": "get_input:adiodvpe0_bandwidth_units",
+                  "bandwidth_units": "get_input:pasqualevpe0_bandwidth_units",
                   "vnf_id": "123",
                   "vmxvre_oam_prefix": "24",
                   "availability_zone_0": "mtpocfo-kvm-az01",
-                  "ASN": "get_input:2017488_adiodvpe0_ASN",
+                  "ASN": "get_input:2017488_pasqualevpe0_ASN",
                   "vmxvre_chassis_i2cid": "161",
                   "vmxvpfe_name_0": "vPFEXI",
-                  "bandwidth": "get_input:adiodvpe0_bandwidth",
+                  "bandwidth": "get_input:pasqualevpe0_bandwidth",
                   "availability_zone_max_count": "1",
                   "vmxvre_volume_size_0": "45.0",
                   "vmxvre_volume_size_1": "50.0",
@@ -788,7 +783,7 @@ class MockReduxStore<T> {
                   "vmxvre_ore_present": "0",
                   "vmxvre_volume_name_0": "vREXI_FBVolume",
                   "vmxvre_type": "0",
-                  "vnf_instance_name": "get_input:2017488_adiodvpe0_vnf_instance_name",
+                  "vnf_instance_name": "get_input:2017488_pasqualevpe0_vnf_instance_name",
                   "vmxvpfe_sriov41_0_port_unknownmulticastallow": "true",
                   "oam_net_id": "b95eeb1d-d55d-4827-abb4-8ebb94941429",
                   "vmx_int_ctl_len": "24",
@@ -802,15 +797,15 @@ class MockReduxStore<T> {
                   "vmxvpfe_flavor_name": "ns.c20r16d25.v5"
                 },
                 "type": "VF",
-                "modelCustomizationName": "2017-388_ADIOD-vPE 0",
+                "modelCustomizationName": "2017-388_PASQUALE-vPE 0",
                 "vfModules": {},
                 "volumeGroups": {},
                 "vfcInstanceGroups": {}
-              }, "2017-488_ADIOD-vPE 0": {
+              }, "2017-488_PASQUALE-vPE 0": {
                 "uuid": "69e09f68-8b63-4cc9-b9ff-860960b5db09",
                 "invariantUuid": "72e465fe-71b1-4e7b-b5ed-9496118ff7a8",
-                "description": "Name ADIOD vPE Description The provider edge function for the ADIOD service supported by the Junipers VMX product Category Router Vendor Juniper Vendor Release Code 17.2 Owners Mary Fragale. Updated 9-25 to use v8.0 of the Juniper Valid 2 VLM",
-                "name": "2017-488_ADIOD-vPE",
+                "description": "Name PASQUALE vPE Description The provider edge function for the PASQUALE service supported by the Junipers VMX product Category Router Vendor Juniper Vendor Release Code 17.2 Owners Mary Fragale. Updated 9-25 to use v8.0 of the Juniper Valid 2 VLM",
+                "name": "2017-488_PASQUALE-vPE",
                 "version": "5.0",
                 "customizationUuid": "1da7b585-5e61-4993-b95e-8e6606c81e45",
                 "inputs": {
@@ -873,29 +868,29 @@ class MockReduxStore<T> {
                   "vnf_config_template_version": {
                     "displayName": "vnf_config_template_version",
                     "command": "get_input",
-                    "inputName": "2017488_adiodvpe0_vnf_config_template_version"
+                    "inputName": "2017488_pasqualevpe0_vnf_config_template_version"
                   },
                   "bandwidth_units": {
                     "displayName": "bandwidth_units",
                     "command": "get_input",
-                    "inputName": "adiodvpe0_bandwidth_units"
+                    "inputName": "pasqualevpe0_bandwidth_units"
                   },
-                  "bandwidth": {"displayName": "bandwidth", "command": "get_input", "inputName": "adiodvpe0_bandwidth"},
+                  "bandwidth": {"displayName": "bandwidth", "command": "get_input", "inputName": "pasqualevpe0_bandwidth"},
                   "AIC_CLLI": {
                     "displayName": "AIC_CLLI",
                     "command": "get_input",
-                    "inputName": "2017488_adiodvpe0_AIC_CLLI"
+                    "inputName": "2017488_pasqualevpe0_AIC_CLLI"
                   },
-                  "ASN": {"displayName": "ASN", "command": "get_input", "inputName": "2017488_adiodvpe0_ASN"},
+                  "ASN": {"displayName": "ASN", "command": "get_input", "inputName": "2017488_pasqualevpe0_ASN"},
                   "vnf_instance_name": {
                     "displayName": "vnf_instance_name",
                     "command": "get_input",
-                    "inputName": "2017488_adiodvpe0_vnf_instance_name"
+                    "inputName": "2017488_pasqualevpe0_vnf_instance_name"
                   }
                 },
                 "properties": {
                   "vmxvre_retype": "RE-VMX",
-                  "vnf_config_template_version": "get_input:2017488_adiodvpe0_vnf_config_template_version",
+                  "vnf_config_template_version": "get_input:2017488_pasqualevpe0_vnf_config_template_version",
                   "sriov44_net_id": "48d399b3-11ee-48a8-94d2-f0ea94d6be8d",
                   "int_ctl_net_id": "2f323477-6936-4d01-ac53-d849430281d9",
                   "vmxvpfe_sriov41_0_port_mac": "00:11:22:EF:AC:DF",
@@ -942,7 +937,7 @@ class MockReduxStore<T> {
                   "vmxvpfe_sriov43_0_port_unknownmulticastallow": "true",
                   "vmxvre_int_ctl_ip_0": "10.0.0.10",
                   "ecomp_generated_naming": "false",
-                  "AIC_CLLI": "get_input:2017488_adiodvpe0_AIC_CLLI",
+                  "AIC_CLLI": "get_input:2017488_pasqualevpe0_AIC_CLLI",
                   "vnf_name": "mtnj309me6vre",
                   "vmxvpfe_sriov41_0_port_unknownunicastallow": "true",
                   "vmxvre_volume_type_1": "HITACHI",
@@ -950,14 +945,14 @@ class MockReduxStore<T> {
                   "vmxvre_volume_type_0": "HITACHI",
                   "vmxvpfe_volume_type_0": "HITACHI",
                   "vmxvpfe_sriov43_0_port_broadcastallow": "true",
-                  "bandwidth_units": "get_input:adiodvpe0_bandwidth_units",
+                  "bandwidth_units": "get_input:pasqualevpe0_bandwidth_units",
                   "vnf_id": "123",
                   "vmxvre_oam_prefix": "24",
                   "availability_zone_0": "mtpocfo-kvm-az01",
-                  "ASN": "get_input:2017488_adiodvpe0_ASN",
+                  "ASN": "get_input:2017488_pasqualevpe0_ASN",
                   "vmxvre_chassis_i2cid": "161",
                   "vmxvpfe_name_0": "vPFEXI",
-                  "bandwidth": "get_input:adiodvpe0_bandwidth",
+                  "bandwidth": "get_input:pasqualevpe0_bandwidth",
                   "availability_zone_max_count": "1",
                   "vmxvre_volume_size_0": "45.0",
                   "vmxvre_volume_size_1": "50.0",
@@ -967,7 +962,7 @@ class MockReduxStore<T> {
                   "vmxvre_ore_present": "0",
                   "vmxvre_volume_name_0": "vREXI_FBVolume",
                   "vmxvre_type": "0",
-                  "vnf_instance_name": "get_input:2017488_adiodvpe0_vnf_instance_name",
+                  "vnf_instance_name": "get_input:2017488_pasqualevpe0_vnf_instance_name",
                   "vmxvpfe_sriov41_0_port_unknownmulticastallow": "true",
                   "oam_net_id": "b95eeb1d-d55d-4827-abb4-8ebb94941429",
                   "vmx_int_ctl_len": "24",
@@ -981,82 +976,82 @@ class MockReduxStore<T> {
                   "vmxvpfe_flavor_name": "ns.c20r16d25.v5"
                 },
                 "type": "VF",
-                "modelCustomizationName": "2017-488_ADIOD-vPE 0",
+                "modelCustomizationName": "2017-488_PASQUALE-vPE 0",
                 "vfModules": {
-                  "2017488_adiodvpe0..2017488AdiodVpe..ADIOD_vRE_BV..module-1": {
+                  "2017488_pasqualevpe0..2017488PasqualeVpe..PASQUALE_vRE_BV..module-1": {
                     "uuid": "25284168-24bb-4698-8cb4-3f509146eca5",
                     "invariantUuid": "7253ff5c-97f0-4b8b-937c-77aeb4d79aa1",
                     "customizationUuid": "f7e7c365-60cf-49a9-9ebf-a1aa11b9d401",
                     "description": null,
-                    "name": "2017488AdiodVpe..ADIOD_vRE_BV..module-1",
+                    "name": "2017488PasqualeVpe..PASQUALE_vRE_BV..module-1",
                     "version": "6",
-                    "modelCustomizationName": "2017488AdiodVpe..ADIOD_vRE_BV..module-1",
+                    "modelCustomizationName": "2017488PasqualeVpe..PASQUALE_vRE_BV..module-1",
                     "properties": {
                       "minCountInstances": 0,
                       "maxCountInstances": null,
                       "initialCount": 0,
-                      "vfModuleLabel": "ADIOD_vRE_BV"
+                      "vfModuleLabel": "PASQUALE_vRE_BV"
                     },
                     "inputs": {
-                      "adiodvpe0_bandwidth": {
+                      "pasqualevpe0_bandwidth": {
                         "type": "string",
                         "description": "Requested VPE bandwidth",
                         "entry_schema": null,
                         "inputProperties": {
                           "sourceType": "HEAT",
-                          "vfModuleLabel": "ADIOD_vRE_BV",
+                          "vfModuleLabel": "PASQUALE_vRE_BV",
                           "paramName": "bandwidth"
                         },
                         "constraints": null,
                         "required": true,
                         "default": "10"
                       },
-                      "2017488_adiodvpe0_vnf_instance_name": {
+                      "2017488_pasqualevpe0_vnf_instance_name": {
                         "type": "string",
                         "description": "The hostname assigned to the vpe.",
                         "entry_schema": null,
                         "inputProperties": {
                           "sourceType": "HEAT",
-                          "vfModuleLabel": "ADIOD_vRE_BV",
+                          "vfModuleLabel": "PASQUALE_vRE_BV",
                           "paramName": "vnf_instance_name"
                         },
                         "constraints": null,
                         "required": true,
                         "default": "mtnj309me6"
                       },
-                      "2017488_adiodvpe0_vnf_config_template_version": {
+                      "2017488_pasqualevpe0_vnf_config_template_version": {
                         "type": "string",
                         "description": "VPE Software Version",
                         "entry_schema": null,
                         "inputProperties": {
                           "sourceType": "HEAT",
-                          "vfModuleLabel": "ADIOD_vRE_BV",
+                          "vfModuleLabel": "PASQUALE_vRE_BV",
                           "paramName": "vnf_config_template_version"
                         },
                         "constraints": null,
                         "required": true,
                         "default": "17.2"
                       },
-                      "2017488_adiodvpe0_AIC_CLLI": {
+                      "2017488_pasqualevpe0_AIC_CLLI": {
                         "type": "string",
                         "description": "AIC Site CLLI",
                         "entry_schema": null,
                         "inputProperties": {
                           "sourceType": "HEAT",
-                          "vfModuleLabel": "ADIOD_vRE_BV",
+                          "vfModuleLabel": "PASQUALE_vRE_BV",
                           "paramName": "AIC_CLLI"
                         },
                         "constraints": null,
                         "required": true,
                         "default": "ATLMY8GA"
                       },
-                      "adiodvpe0_bandwidth_units": {
+                      "pasqualevpe0_bandwidth_units": {
                         "type": "string",
                         "description": "Units of bandwidth",
                         "entry_schema": null,
                         "inputProperties": {
                           "sourceType": "HEAT",
-                          "vfModuleLabel": "ADIOD_vRE_BV",
+                          "vfModuleLabel": "PASQUALE_vRE_BV",
                           "paramName": "bandwidth_units"
                         },
                         "constraints": null,
@@ -1066,116 +1061,116 @@ class MockReduxStore<T> {
                     },
                     "volumeGroupAllowed": true
                   },
-                  "2017488_adiodvpe0..2017488AdiodVpe..ADIOD_base_vPE_BV..module-0": {
+                  "2017488_pasqualevpe0..2017488PasqualeVpe..PASQUALE_base_vPE_BV..module-0": {
                     "uuid": "f8360508-3f17-4414-a2ed-6bc71161e8db",
                     "invariantUuid": "b34833bb-6aa9-4ad6-a831-70b06367a091",
                     "customizationUuid": "a55961b2-2065-4ab0-a5b7-2fcee1c227e3",
                     "description": null,
-                    "name": "2017488AdiodVpe..ADIOD_base_vPE_BV..module-0",
+                    "name": "2017488PasqualeVpe..PASQUALE_base_vPE_BV..module-0",
                     "version": "5",
-                    "modelCustomizationName": "2017488AdiodVpe..ADIOD_base_vPE_BV..module-0",
+                    "modelCustomizationName": "2017488PasqualeVpe..PASQUALE_base_vPE_BV..module-0",
                     "properties": {
                       "minCountInstances": 1,
                       "maxCountInstances": 1,
                       "initialCount": 1,
-                      "vfModuleLabel": "ADIOD_base_vPE_BV"
+                      "vfModuleLabel": "PASQUALE_base_vPE_BV"
                     },
                     "inputs": {},
                     "volumeGroupAllowed": false
                   },
-                  "2017488_adiodvpe0..2017488AdiodVpe..ADIOD_vPFE_BV..module-2": {
+                  "2017488_pasqualevpe0..2017488PasqualeVpe..PASQUALE_vPFE_BV..module-2": {
                     "uuid": "0a0dd9d4-31d3-4c3a-ae89-a02f383e6a9a",
                     "invariantUuid": "eff8cc59-53a1-4101-aed7-8cf24ecf8339",
                     "customizationUuid": "3cd946bb-50e0-40d8-96d3-c9023520b557",
                     "description": null,
-                    "name": "2017488AdiodVpe..ADIOD_vPFE_BV..module-2",
+                    "name": "2017488PasqualeVpe..PASQUALE_vPFE_BV..module-2",
                     "version": "6",
-                    "modelCustomizationName": "2017488AdiodVpe..ADIOD_vPFE_BV..module-2",
+                    "modelCustomizationName": "2017488PasqualeVpe..PASQUALE_vPFE_BV..module-2",
                     "properties": {
                       "minCountInstances": 0,
                       "maxCountInstances": null,
                       "initialCount": 0,
-                      "vfModuleLabel": "ADIOD_vPFE_BV"
+                      "vfModuleLabel": "PASQUALE_vPFE_BV"
                     },
                     "inputs": {},
                     "volumeGroupAllowed": true
                   }
                 },
                 "volumeGroups": {
-                  "2017488_adiodvpe0..2017488AdiodVpe..ADIOD_vRE_BV..module-1": {
+                  "2017488_pasqualevpe0..2017488PasqualeVpe..PASQUALE_vRE_BV..module-1": {
                     "uuid": "25284168-24bb-4698-8cb4-3f509146eca5",
                     "invariantUuid": "7253ff5c-97f0-4b8b-937c-77aeb4d79aa1",
                     "customizationUuid": "f7e7c365-60cf-49a9-9ebf-a1aa11b9d401",
                     "description": null,
-                    "name": "2017488AdiodVpe..ADIOD_vRE_BV..module-1",
+                    "name": "2017488PasqualeVpe..PASQUALE_vRE_BV..module-1",
                     "version": "6",
-                    "modelCustomizationName": "2017488AdiodVpe..ADIOD_vRE_BV..module-1",
+                    "modelCustomizationName": "2017488PasqualeVpe..PASQUALE_vRE_BV..module-1",
                     "properties": {
                       "minCountInstances": 0,
                       "maxCountInstances": null,
                       "initialCount": 0,
-                      "vfModuleLabel": "ADIOD_vRE_BV"
+                      "vfModuleLabel": "PASQUALE_vRE_BV"
                     },
                     "inputs": {
-                      "adiodvpe0_bandwidth": {
+                      "pasqualevpe0_bandwidth": {
                         "type": "string",
                         "description": "Requested VPE bandwidth",
                         "entry_schema": null,
                         "inputProperties": {
                           "sourceType": "HEAT",
-                          "vfModuleLabel": "ADIOD_vRE_BV",
+                          "vfModuleLabel": "PASQUALE_vRE_BV",
                           "paramName": "bandwidth"
                         },
                         "constraints": null,
                         "required": true,
                         "default": "10"
                       },
-                      "2017488_adiodvpe0_vnf_instance_name": {
+                      "2017488_pasqualevpe0_vnf_instance_name": {
                         "type": "string",
                         "description": "The hostname assigned to the vpe.",
                         "entry_schema": null,
                         "inputProperties": {
                           "sourceType": "HEAT",
-                          "vfModuleLabel": "ADIOD_vRE_BV",
+                          "vfModuleLabel": "PASQUALE_vRE_BV",
                           "paramName": "vnf_instance_name"
                         },
                         "constraints": null,
                         "required": true,
                         "default": "mtnj309me6"
                       },
-                      "2017488_adiodvpe0_vnf_config_template_version": {
+                      "2017488_pasqualevpe0_vnf_config_template_version": {
                         "type": "string",
                         "description": "VPE Software Version",
                         "entry_schema": null,
                         "inputProperties": {
                           "sourceType": "HEAT",
-                          "vfModuleLabel": "ADIOD_vRE_BV",
+                          "vfModuleLabel": "PASQUALE_vRE_BV",
                           "paramName": "vnf_config_template_version"
                         },
                         "constraints": null,
                         "required": true,
                         "default": "17.2"
                       },
-                      "2017488_adiodvpe0_AIC_CLLI": {
+                      "2017488_pasqualevpe0_AIC_CLLI": {
                         "type": "string",
                         "description": "AIC Site CLLI",
                         "entry_schema": null,
                         "inputProperties": {
                           "sourceType": "HEAT",
-                          "vfModuleLabel": "ADIOD_vRE_BV",
+                          "vfModuleLabel": "PASQUALE_vRE_BV",
                           "paramName": "AIC_CLLI"
                         },
                         "constraints": null,
                         "required": true,
                         "default": "ATLMY8GA"
                       },
-                      "adiodvpe0_bandwidth_units": {
+                      "pasqualevpe0_bandwidth_units": {
                         "type": "string",
                         "description": "Units of bandwidth",
                         "entry_schema": null,
                         "inputProperties": {
                           "sourceType": "HEAT",
-                          "vfModuleLabel": "ADIOD_vRE_BV",
+                          "vfModuleLabel": "PASQUALE_vRE_BV",
                           "paramName": "bandwidth_units"
                         },
                         "constraints": null,
@@ -1184,19 +1179,19 @@ class MockReduxStore<T> {
                       }
                     }
                   },
-                  "2017488_adiodvpe0..2017488AdiodVpe..ADIOD_vPFE_BV..module-2": {
+                  "2017488_pasqualevpe0..2017488PasqualeVpe..PASQUALE_vPFE_BV..module-2": {
                     "uuid": "0a0dd9d4-31d3-4c3a-ae89-a02f383e6a9a",
                     "invariantUuid": "eff8cc59-53a1-4101-aed7-8cf24ecf8339",
                     "customizationUuid": "3cd946bb-50e0-40d8-96d3-c9023520b557",
                     "description": null,
-                    "name": "2017488AdiodVpe..ADIOD_vPFE_BV..module-2",
+                    "name": "2017488PasqualeVpe..PASQUALE_vPFE_BV..module-2",
                     "version": "6",
-                    "modelCustomizationName": "2017488AdiodVpe..ADIOD_vPFE_BV..module-2",
+                    "modelCustomizationName": "2017488PasqualeVpe..PASQUALE_vPFE_BV..module-2",
                     "properties": {
                       "minCountInstances": 0,
                       "maxCountInstances": null,
                       "initialCount": 0,
-                      "vfModuleLabel": "ADIOD_vPFE_BV"
+                      "vfModuleLabel": "PASQUALE_vPFE_BV"
                     },
                     "inputs": {}
                   }
@@ -1281,81 +1276,81 @@ class MockReduxStore<T> {
                 "modelCustomizationName": "ExtVL 0"
               }
             },
-            "collectionResource": {},
+            "collectionResources": {},
             "configurations": {},
             "fabricConfigurations": {},
             "serviceProxies": {},
             "vfModules": {
-              "2017488_adiodvpe0..2017488AdiodVpe..ADIOD_vRE_BV..module-1": {
+              "2017488_pasqualevpe0..2017488PasqualeVpe..PASQUALE_vRE_BV..module-1": {
                 "uuid": "25284168-24bb-4698-8cb4-3f509146eca5",
                 "invariantUuid": "7253ff5c-97f0-4b8b-937c-77aeb4d79aa1",
                 "customizationUuid": "f7e7c365-60cf-49a9-9ebf-a1aa11b9d401",
                 "description": null,
-                "name": "2017488AdiodVpe..ADIOD_vRE_BV..module-1",
+                "name": "2017488PasqualeVpe..PASQUALE_vRE_BV..module-1",
                 "version": "6",
-                "modelCustomizationName": "2017488AdiodVpe..ADIOD_vRE_BV..module-1",
+                "modelCustomizationName": "2017488PasqualeVpe..PASQUALE_vRE_BV..module-1",
                 "properties": {
                   "minCountInstances": 0,
                   "maxCountInstances": null,
                   "initialCount": 0,
-                  "vfModuleLabel": "ADIOD_vRE_BV"
+                  "vfModuleLabel": "PASQUALE_vRE_BV"
                 },
                 "inputs": {
-                  "adiodvpe0_bandwidth": {
+                  "pasqualevpe0_bandwidth": {
                     "type": "string",
                     "description": "Requested VPE bandwidth",
                     "entry_schema": null,
                     "inputProperties": {
                       "sourceType": "HEAT",
-                      "vfModuleLabel": "ADIOD_vRE_BV",
+                      "vfModuleLabel": "PASQUALE_vRE_BV",
                       "paramName": "bandwidth"
                     },
                     "constraints": null,
                     "required": true,
                     "default": "10"
                   },
-                  "2017488_adiodvpe0_vnf_instance_name": {
+                  "2017488_pasqualevpe0_vnf_instance_name": {
                     "type": "string",
                     "description": "The hostname assigned to the vpe.",
                     "entry_schema": null,
                     "inputProperties": {
                       "sourceType": "HEAT",
-                      "vfModuleLabel": "ADIOD_vRE_BV",
+                      "vfModuleLabel": "PASQUALE_vRE_BV",
                       "paramName": "vnf_instance_name"
                     },
                     "constraints": null,
                     "required": true,
                     "default": "mtnj309me6"
                   },
-                  "2017488_adiodvpe0_vnf_config_template_version": {
+                  "2017488_pasqualevpe0_vnf_config_template_version": {
                     "type": "string",
                     "description": "VPE Software Version",
                     "entry_schema": null,
                     "inputProperties": {
                       "sourceType": "HEAT",
-                      "vfModuleLabel": "ADIOD_vRE_BV",
+                      "vfModuleLabel": "PASQUALE_vRE_BV",
                       "paramName": "vnf_config_template_version"
                     },
                     "constraints": null,
                     "required": true,
                     "default": "17.2"
                   },
-                  "2017488_adiodvpe0_AIC_CLLI": {
+                  "2017488_pasqualevpe0_AIC_CLLI": {
                     "type": "string",
                     "description": "AIC Site CLLI",
                     "entry_schema": null,
-                    "inputProperties": {"sourceType": "HEAT", "vfModuleLabel": "ADIOD_vRE_BV", "paramName": "AIC_CLLI"},
+                    "inputProperties": {"sourceType": "HEAT", "vfModuleLabel": "PASQUALE_vRE_BV", "paramName": "AIC_CLLI"},
                     "constraints": null,
                     "required": true,
                     "default": "ATLMY8GA"
                   },
-                  "adiodvpe0_bandwidth_units": {
+                  "pasqualevpe0_bandwidth_units": {
                     "type": "string",
                     "description": "Units of bandwidth",
                     "entry_schema": null,
                     "inputProperties": {
                       "sourceType": "HEAT",
-                      "vfModuleLabel": "ADIOD_vRE_BV",
+                      "vfModuleLabel": "PASQUALE_vRE_BV",
                       "paramName": "bandwidth_units"
                     },
                     "constraints": null,
@@ -1365,112 +1360,112 @@ class MockReduxStore<T> {
                 },
                 "volumeGroupAllowed": true
               },
-              "2017488_adiodvpe0..2017488AdiodVpe..ADIOD_base_vPE_BV..module-0": {
+              "2017488_pasqualevpe0..2017488PasqualeVpe..PASQUALE_base_vPE_BV..module-0": {
                 "uuid": "f8360508-3f17-4414-a2ed-6bc71161e8db",
                 "invariantUuid": "b34833bb-6aa9-4ad6-a831-70b06367a091",
                 "customizationUuid": "a55961b2-2065-4ab0-a5b7-2fcee1c227e3",
                 "description": null,
-                "name": "2017488AdiodVpe..ADIOD_base_vPE_BV..module-0",
+                "name": "2017488PasqualeVpe..PASQUALE_base_vPE_BV..module-0",
                 "version": "5",
-                "modelCustomizationName": "2017488AdiodVpe..ADIOD_base_vPE_BV..module-0",
+                "modelCustomizationName": "2017488PasqualeVpe..PASQUALE_base_vPE_BV..module-0",
                 "properties": {
                   "minCountInstances": 1,
                   "maxCountInstances": 1,
                   "initialCount": 1,
-                  "vfModuleLabel": "ADIOD_base_vPE_BV"
+                  "vfModuleLabel": "PASQUALE_base_vPE_BV"
                 },
                 "inputs": {},
                 "volumeGroupAllowed": false
               },
-              "2017488_adiodvpe0..2017488AdiodVpe..ADIOD_vPFE_BV..module-2": {
+              "2017488_pasqualevpe0..2017488PasqualeVpe..PASQUALE_vPFE_BV..module-2": {
                 "uuid": "0a0dd9d4-31d3-4c3a-ae89-a02f383e6a9a",
                 "invariantUuid": "eff8cc59-53a1-4101-aed7-8cf24ecf8339",
                 "customizationUuid": "3cd946bb-50e0-40d8-96d3-c9023520b557",
                 "description": null,
-                "name": "2017488AdiodVpe..ADIOD_vPFE_BV..module-2",
+                "name": "2017488PasqualeVpe..PASQUALE_vPFE_BV..module-2",
                 "version": "6",
-                "modelCustomizationName": "2017488AdiodVpe..ADIOD_vPFE_BV..module-2",
+                "modelCustomizationName": "2017488PasqualeVpe..PASQUALE_vPFE_BV..module-2",
                 "properties": {
                   "minCountInstances": 0,
                   "maxCountInstances": null,
                   "initialCount": 0,
-                  "vfModuleLabel": "ADIOD_vPFE_BV"
+                  "vfModuleLabel": "PASQUALE_vPFE_BV"
                 },
                 "inputs": {},
                 "volumeGroupAllowed": true
               }
             },
             "volumeGroups": {
-              "2017488_adiodvpe0..2017488AdiodVpe..ADIOD_vRE_BV..module-1": {
+              "2017488_pasqualevpe0..2017488PasqualeVpe..PASQUALE_vRE_BV..module-1": {
                 "uuid": "25284168-24bb-4698-8cb4-3f509146eca5",
                 "invariantUuid": "7253ff5c-97f0-4b8b-937c-77aeb4d79aa1",
                 "customizationUuid": "f7e7c365-60cf-49a9-9ebf-a1aa11b9d401",
                 "description": null,
-                "name": "2017488AdiodVpe..ADIOD_vRE_BV..module-1",
+                "name": "2017488PasqualeVpe..PASQUALE_vRE_BV..module-1",
                 "version": "6",
-                "modelCustomizationName": "2017488AdiodVpe..ADIOD_vRE_BV..module-1",
+                "modelCustomizationName": "2017488PasqualeVpe..PASQUALE_vRE_BV..module-1",
                 "properties": {
                   "minCountInstances": 0,
                   "maxCountInstances": null,
                   "initialCount": 0,
-                  "vfModuleLabel": "ADIOD_vRE_BV"
+                  "vfModuleLabel": "PASQUALE_vRE_BV"
                 },
                 "inputs": {
-                  "adiodvpe0_bandwidth": {
+                  "pasqualevpe0_bandwidth": {
                     "type": "string",
                     "description": "Requested VPE bandwidth",
                     "entry_schema": null,
                     "inputProperties": {
                       "sourceType": "HEAT",
-                      "vfModuleLabel": "ADIOD_vRE_BV",
+                      "vfModuleLabel": "PASQUALE_vRE_BV",
                       "paramName": "bandwidth"
                     },
                     "constraints": null,
                     "required": true,
                     "default": "10"
                   },
-                  "2017488_adiodvpe0_vnf_instance_name": {
+                  "2017488_pasqualevpe0_vnf_instance_name": {
                     "type": "string",
                     "description": "The hostname assigned to the vpe.",
                     "entry_schema": null,
                     "inputProperties": {
                       "sourceType": "HEAT",
-                      "vfModuleLabel": "ADIOD_vRE_BV",
+                      "vfModuleLabel": "PASQUALE_vRE_BV",
                       "paramName": "vnf_instance_name"
                     },
                     "constraints": null,
                     "required": true,
                     "default": "mtnj309me6"
                   },
-                  "2017488_adiodvpe0_vnf_config_template_version": {
+                  "2017488_pasqualevpe0_vnf_config_template_version": {
                     "type": "string",
                     "description": "VPE Software Version",
                     "entry_schema": null,
                     "inputProperties": {
                       "sourceType": "HEAT",
-                      "vfModuleLabel": "ADIOD_vRE_BV",
+                      "vfModuleLabel": "PASQUALE_vRE_BV",
                       "paramName": "vnf_config_template_version"
                     },
                     "constraints": null,
                     "required": true,
                     "default": "17.2"
                   },
-                  "2017488_adiodvpe0_AIC_CLLI": {
+                  "2017488_pasqualevpe0_AIC_CLLI": {
                     "type": "string",
                     "description": "AIC Site CLLI",
                     "entry_schema": null,
-                    "inputProperties": {"sourceType": "HEAT", "vfModuleLabel": "ADIOD_vRE_BV", "paramName": "AIC_CLLI"},
+                    "inputProperties": {"sourceType": "HEAT", "vfModuleLabel": "PASQUALE_vRE_BV", "paramName": "AIC_CLLI"},
                     "constraints": null,
                     "required": true,
                     "default": "ATLMY8GA"
                   },
-                  "adiodvpe0_bandwidth_units": {
+                  "pasqualevpe0_bandwidth_units": {
                     "type": "string",
                     "description": "Units of bandwidth",
                     "entry_schema": null,
                     "inputProperties": {
                       "sourceType": "HEAT",
-                      "vfModuleLabel": "ADIOD_vRE_BV",
+                      "vfModuleLabel": "PASQUALE_vRE_BV",
                       "paramName": "bandwidth_units"
                     },
                     "constraints": null,
@@ -1479,19 +1474,19 @@ class MockReduxStore<T> {
                   }
                 }
               },
-              "2017488_adiodvpe0..2017488AdiodVpe..ADIOD_vPFE_BV..module-2": {
+              "2017488_pasqualevpe0..2017488PasqualeVpe..PASQUALE_vPFE_BV..module-2": {
                 "uuid": "0a0dd9d4-31d3-4c3a-ae89-a02f383e6a9a",
                 "invariantUuid": "eff8cc59-53a1-4101-aed7-8cf24ecf8339",
                 "customizationUuid": "3cd946bb-50e0-40d8-96d3-c9023520b557",
                 "description": null,
-                "name": "2017488AdiodVpe..ADIOD_vPFE_BV..module-2",
+                "name": "2017488PasqualeVpe..PASQUALE_vPFE_BV..module-2",
                 "version": "6",
-                "modelCustomizationName": "2017488AdiodVpe..ADIOD_vPFE_BV..module-2",
+                "modelCustomizationName": "2017488PasqualeVpe..PASQUALE_vPFE_BV..module-2",
                 "properties": {
                   "minCountInstances": 0,
                   "maxCountInstances": null,
                   "initialCount": 0,
-                  "vfModuleLabel": "ADIOD_vPFE_BV"
+                  "vfModuleLabel": "PASQUALE_vPFE_BV"
                 },
                 "inputs": {}
               }
@@ -1502,21 +1497,21 @@ class MockReduxStore<T> {
         "serviceInstance": {
           "6e59c5de-f052-46fa-aa7e-2fca9d674c44": {
             "vnfs": {
-              "VF_vMee 0": {
+              "VF_vGeraldine 0": {
                 "rollbackOnFailure": "true",
                 "vfModules": {
-                  "vf_vmee0..VfVmee..base_vmme..module-0": {
-                    "vf_vmee0..VfVmee..base_vmme..module-0vmvzo": {
+                  "vf_vgeraldine0..VfVgeraldine..base_vflorence..module-0": {
+                    "vf_vgeraldine0..VfVgeraldine..base_vflorence..module-0vmvzo": {
                       "isMissingData": false,
                       "sdncPreReload": null,
                       "modelInfo": {
                         "modelType": "VFmodule",
                         "modelInvariantId": "a6f9e51a-2b35-416a-ae15-15e58d61f36d",
                         "modelVersionId": "a27f5cfc-7f12-4f99-af08-0af9c3885c87",
-                        "modelName": "VfVmee..base_vmme..module-0",
+                        "modelName": "VfVgeraldine..base_vflorence..module-0",
                         "modelVersion": "2",
                         "modelCustomizationId": "f8c040f1-7e51-4a11-aca8-acf256cfd861",
-                        "modelCustomizationName": "VfVmee..base_vmme..module-0"
+                        "modelCustomizationName": "VfVgeraldine..base_vflorence..module-0"
                       },
                       "instanceParams": [{}],
                       "trackById": "wmtm6sy2uj"
@@ -1524,8 +1519,8 @@ class MockReduxStore<T> {
                   }
                 },
                 "isMissingData": true,
-                "originalName": "VF_vMee 0",
-                "vnfStoreKey": "VF_vMee 0",
+                "originalName": "VF_vGeraldine 0",
+                "vnfStoreKey": "VF_vGeraldine 0",
                 "trackById": "p3wk448m5do",
                 "uuid": "d6557200-ecf2-4641-8094-5393ae3aae60",
                 "productFamilyId": "36b4733a-53f4-4cc8-8ff0-9172e5fc4b8e",
@@ -1537,9 +1532,9 @@ class MockReduxStore<T> {
                   "modelType": "VF",
                   "modelInvariantId": "4160458e-f648-4b30-a176-43881ffffe9e",
                   "modelVersionId": "6e59c5de-f052-46fa-aa7e-2fca9d674c44",
-                  "modelName": "VF_vMee",
+                  "modelName": "VF_vGeraldine",
                   "modelVersion": "2.0",
-                  "modelCustomizationName": "VF_vMee 0"
+                  "modelCustomizationName": "VF_vGeraldine 0"
                 }
               }
             },
@@ -1657,39 +1652,39 @@ class MockReduxStore<T> {
               }
             },
             "vnfs": {
-              "2017-488_ADIOD-vPE 0": {
+              "2017-488_PASQUALE-vPE 0": {
                 "rollbackOnFailure": "true",
                 "vfModules": {
-                  "2017488_adiodvpe0..2017488AdiodVpe..ADIOD_vRE_BV..module-1": {
-                    "2017488_adiodvpe0..2017488AdiodVpe..ADIOD_vRE_BV..module-1sgoqi": {
+                  "2017488_pasqualevpe0..2017488PasqualeVpe..PASQUALE_vRE_BV..module-1": {
+                    "2017488_pasqualevpe0..2017488PasqualeVpe..PASQUALE_vRE_BV..module-1sgoqi": {
                       "instanceName": "yoav",
                       "volumeGroupName": "123",
                       "modelInfo": {
                         "modelInvariantId": "7253ff5c-97f0-4b8b-937c-77aeb4d79aa1",
                         "modelVersionId": "25284168-24bb-4698-8cb4-3f509146eca5",
-                        "modelName": "2017488AdiodVpe..ADIOD_vRE_BV..module-1",
+                        "modelName": "2017488PasqualeVpe..PASQUALE_vRE_BV..module-1",
                         "modelVersion": "6",
                         "modelCustomizationId": "f7e7c365-60cf-49a9-9ebf-a1aa11b9d401",
-                        "modelCustomizationName": "2017488AdiodVpe..ADIOD_vRE_BV..module-1",
+                        "modelCustomizationName": "2017488PasqualeVpe..PASQUALE_vRE_BV..module-1",
                         "uuid": "25284168-24bb-4698-8cb4-3f509146eca5"
                       },
                       "uuid": "25284168-24bb-4698-8cb4-3f509146eca5",
                       "isMissingData": false,
                       "instanceParams": [{
-                        "adiodvpe0_bandwidth": "10",
-                        "2017488_adiodvpe0_vnf_instance_name": "mtnj309me6",
-                        "2017488_adiodvpe0_vnf_config_template_version": "17.2",
-                        "2017488_adiodvpe0_AIC_CLLI": "ATLMY8GA",
-                        "adiodvpe0_bandwidth_units": "Gbps"
+                        "pasqualevpe0_bandwidth": "10",
+                        "2017488_pasqualevpe0_vnf_instance_name": "mtnj309me6",
+                        "2017488_pasqualevpe0_vnf_config_template_version": "17.2",
+                        "2017488_pasqualevpe0_AIC_CLLI": "ATLMY8GA",
+                        "pasqualevpe0_bandwidth_units": "Gbps"
                       }]
                     }
                   }
                 },
                 "isMissingData": false,
-                "originalName": "2017-488_ADIOD-vPE 0",
-                "vnfStoreKey": "2017-488_ADIOD-vPE 0",
+                "originalName": "2017-488_PASQUALE-vPE 0",
+                "vnfStoreKey": "2017-488_PASQUALE-vPE 0",
                 "trackById": "o65b26t2thj",
-                "instanceName": "2017488_ADIODvPE",
+                "instanceName": "2017488_PASQUALEvPE",
                 "productFamilyId": "ebc3bc3d-62fd-4a3f-a037-f619df4ff034",
                 "lcpCloudRegionId": "hvf6",
                 "tenantId": "bae71557c5bb4d5aac6743a4e5f1d054",
@@ -1699,16 +1694,16 @@ class MockReduxStore<T> {
                 "modelInfo": {
                   "modelInvariantId": "72e465fe-71b1-4e7b-b5ed-9496118ff7a8",
                   "modelVersionId": "69e09f68-8b63-4cc9-b9ff-860960b5db09",
-                  "modelName": "2017-488_ADIOD-vPE",
+                  "modelName": "2017-488_PASQUALE-vPE",
                   "modelVersion": "5.0",
                   "modelCustomizationId": "1da7b585-5e61-4993-b95e-8e6606c81e45",
-                  "modelCustomizationName": "2017-488_ADIOD-vPE 0",
+                  "modelCustomizationName": "2017-488_PASQUALE-vPE 0",
                   "uuid": "69e09f68-8b63-4cc9-b9ff-860960b5db09"
                 },
                 "uuid": "69e09f68-8b63-4cc9-b9ff-860960b5db09"
               }
             },
-            "instanceParams": [{"2017488_adiodvpe0_ASN": "AV_vPE"}],
+            "instanceParams": [{"2017488_pasqualevpe0_ASN": "AV_vPE"}],
             "validationCounter": 0,
             "existingNames": {"123": "", "instancename": "", "yoav": "", "extvl": ""},
             "existingVNFCounterMap": {"69e09f68-8b63-4cc9-b9ff-860960b5db09": 1},
@@ -1718,7 +1713,7 @@ class MockReduxStore<T> {
             "subscriptionServiceType": "TYLER SILVIA",
             "owningEntityId": "d61e6f2d-12fa-4cc2-91df-7c244011d6fc",
             "productFamilyId": "17cc1042-527b-11e6-beb8-9e71128cae77",
-            "lcpCloudRegionId": "JANET25",
+            "lcpCloudRegionId": "AAIAIC25",
             "tenantId": "092eb9e8e4b7412e8787dd091bc58e86",
             "aicZoneId": "JAG1",
             "projectName": null,
@@ -1749,42 +1744,138 @@ class MockReduxStore<T> {
           }
         },
         "lcpRegionsAndTenants": {
-          "lcpRegionList": [{"id": "JANET25", "name": "JANET25", "isPermitted": true}, {
+          "lcpRegionList": [{"id": "AAIAIC25", "name": "AAIAIC25", "isPermitted": true}, {
             "id": "hvf6",
             "name": "hvf6",
             "isPermitted": true
           }], "lcpRegionsTenantsMap": {
-            "JANET25": [{
+            "AAIAIC25": [{
               "id": "092eb9e8e4b7412e8787dd091bc58e86",
               "name": "USP-SIP-IC-24335-T-01",
               "isPermitted": true
-            }], "hvf6": [
-              {
-                "id": "bae71557c5bb4d5aac6743a4e5f1d054",
-                "name": "AIN Web Tool-15-D-testalexandria",
-                "isPermitted": true
-              },
-              {
-                "id": "d0a3e3f2964542259d155a81c41aadc3",
-                "name": "test-hvf6-09",
-                "isPermitted": true
-              },
-              {
-                "id": "fa45ca53c80b492fa8be5477cd84fc2b",
-                "name": "ro-T112",
-                "isPermitted": true
-              },
-              {
-                "id": "cbb99fe4ada84631b7baf046b6fd2044",
-                "name": "DN5242-Nov16-T3",
-                "isPermitted": true
-              }
-            ]
+            }],
+            "hvf6": [{
+              "id": "bae71557c5bb4d5aac6743a4e5f1d054",
+              "name": "AIN Web Tool-15-D-testalexandria",
+              "isPermitted": true
+            }, {
+              "id": "229bcdc6eaeb4ca59d55221141d01f8e",
+              "name": "AIN Web Tool-15-D-STTest2",
+              "isPermitted": true
+            }, {
+              "id": "1178612d2b394be4834ad77f567c0af2",
+              "name": "AIN Web Tool-15-D-SSPtestcustome",
+              "isPermitted": true
+            }, {
+              "id": "19c5ade915eb461e8af52fb2fd8cd1f2",
+              "name": "AIN Web Tool-15-D-UncheckedEcopm",
+              "isPermitted": true
+            }, {
+              "id": "de007636e25249238447264a988a927b",
+              "name": "AIN Web Tool-15-D-dfsdf",
+              "isPermitted": true
+            }, {
+              "id": "62f29b3613634ca6a3065cbe0e020c44",
+              "name": "AIN/SMS-16-D-Multiservices1",
+              "isPermitted": true
+            }, {
+              "id": "649289e30d3244e0b48098114d63c2aa",
+              "name": "AIN Web Tool-15-D-SSPST66",
+              "isPermitted": true
+            }, {
+              "id": "3f21eeea6c2c486bba31dab816c05a32",
+              "name": "AIN Web Tool-15-D-ASSPST47",
+              "isPermitted": true
+            }, {
+              "id": "f60ce21d3ee6427586cff0d22b03b773",
+              "name": "CESAR-100-D-sspjg67246",
+              "isPermitted": true
+            }, {
+              "id": "8774659e425f479895ae091bb5d46560",
+              "name": "CESAR-100-D-sspjg68359",
+              "isPermitted": true
+            }, {
+              "id": "624eb554b0d147c19ff8885341760481",
+              "name": "AINWebTool-15-D-iftach",
+              "isPermitted": true
+            }, {
+              "id": "214f55f5fc414c678059c383b03e4962",
+              "name": "CESAR-100-D-sspjg612401",
+              "isPermitted": true
+            }, {
+              "id": "c90666c291664841bb98e4d981ff1db5",
+              "name": "CESAR-100-D-sspjg621340",
+              "isPermitted": true
+            }, {
+              "id": "ce5b6bc5c7b348e1bf4b91ac9a174278",
+              "name": "sspjg621351cloned",
+              "isPermitted": true
+            }, {
+              "id": "b386b768a3f24c8e953abbe0b3488c02",
+              "name": "AINWebTool-15-D-eteancomp",
+              "isPermitted": true
+            }, {
+              "id": "dc6c4dbfd225474e9deaadd34968646c",
+              "name": "AINWebTool-15-T-SPFET",
+              "isPermitted": true
+            }, {
+              "id": "02cb5030e9914aa4be120bd9ed1e19eb",
+              "name": "AINWebTool-15-X-eeweww",
+              "isPermitted": true
+            }, {
+              "id": "f2f3830e4c984d45bcd00e1a04158a79",
+              "name": "CESAR-100-D-spjg61909",
+              "isPermitted": true
+            }, {
+              "id": "05b91bd5137f4929878edd965755c06d",
+              "name": "CESAR-100-D-sspjg621512cloned",
+              "isPermitted": true
+            }, {
+              "id": "7002fbe8482d4a989ddf445b1ce336e0",
+              "name": "AINWebTool-15-X-vdr",
+              "isPermitted": true
+            }, {
+              "id": "4008522be43741dcb1f5422022a2aa0b",
+              "name": "AINWebTool-15-D-ssasa",
+              "isPermitted": true
+            }, {
+              "id": "f44e2e96a1b6476abfda2fa407b00169",
+              "name": "AINWebTool-15-D-PFNPT",
+              "isPermitted": true
+            }, {
+              "id": "b69a52bec8a84669a37a1e8b72708be7",
+              "name": "AINWebTool-15-X-vdre",
+              "isPermitted": true
+            }, {
+              "id": "fac7d9fd56154caeb9332202dcf2969f",
+              "name": "AINWebTool-15-X-NONPODECOMP",
+              "isPermitted": true
+            }, {
+              "id": "2d34d8396e194eb49969fd61ffbff961",
+              "name": "DN5242-Nov16-T5",
+              "isPermitted": true
+            }, {
+              "id": "cb42a77ff45b48a8b8deb83bb64acc74",
+              "name": "ro-T11",
+              "isPermitted": true
+            }, {
+              "id": "fa45ca53c80b492fa8be5477cd84fc2b",
+              "name": "ro-T112",
+              "isPermitted": true
+            }, {
+              "id": "4914ab0ab3a743e58f0eefdacc1dde77",
+              "name": "DN5242-Nov21-T1",
+              "isPermitted": true
+            }, {
+              "id": "d0a3e3f2964542259d155a81c41aadc3",
+              "name": "test-hvf6-09",
+              "isPermitted": true
+            }, {"id": "cbb99fe4ada84631b7baf046b6fd2044", "name": "DN5242-Nov16-T3", "isPermitted": true}]
           }
         },
         "productFamilies": [{
           "id": "ebc3bc3d-62fd-4a3f-a037-f619df4ff034",
-          "name": "SCOTTIE",
+          "name": "ERICA",
           "isPermitted": true
         }, {
           "id": "17cc1042-527b-11e6-beb8-9e71128cae77",
@@ -1800,7 +1891,7 @@ class MockReduxStore<T> {
           "isPermitted": true
         }, {"id": "vTerrance", "name": "vTerrance", "isPermitted": true}, {
           "id": "323d69d9-2efe-4r45-ay0a-89ea7ard4e6f",
-          "name": "vSCP",
+          "name": "vEsmeralda",
           "isPermitted": true
         }, {
           "id": "a9a77d5a-123e-4ca2-9eb9-0b015d2ee0fb",
@@ -1823,7 +1914,7 @@ class MockReduxStore<T> {
           "name": "TYLER SILVIA",
           "isPermitted": true
         }, {"id": "b6a3f28c-eebf-494c-a900-055cc7c874ce", "name": "VROUTER", "isPermitted": true}, {
-          "id": "Cisneros",
+          "id": "vMuriel",
           "name": "vMuriel",
           "isPermitted": true
         }, {
@@ -1834,15 +1925,11 @@ class MockReduxStore<T> {
           "id": "c7611ebe-c324-48f1-8085-94aef0c6ef3d",
           "name": "DARREN MCGEE",
           "isPermitted": true
-        }, {
-          "id": "e30755dc-5673-4b6b-9dcf-9abdd96b93d1",
-          "name": "Transport",
-          "isPermitted": true
-        }, {
+        }, {"id": "e30755dc-5673-4b6b-9dcf-9abdd96b93d1", "name": "Transport", "isPermitted": true}, {
           "id": "vSalvatore",
           "name": "vSalvatore",
           "isPermitted": true
-        }, {"id": "d7bb0a21-66f2-4e6d-87d9-9ef3ced63ae4", "name": "Josefina", "isPermitted": true}, {
+        }, {"id": "d7bb0a21-66f2-4e6d-87d9-9ef3ced63ae4", "name": "JOSEFINA", "isPermitted": true}, {
           "id": "vHubbard",
           "name": "vHubbard",
           "isPermitted": true
@@ -1862,21 +1949,21 @@ class MockReduxStore<T> {
             "isPermitted": false
           }, {"id": "5", "name": "Kennedy", "isPermitted": false}, {
             "id": "6",
-            "name": "vSEGW",
+            "name": "vPorfirio",
             "isPermitted": false
           }, {"id": "7", "name": "vVM", "isPermitted": false}, {
             "id": "8",
             "name": "vOTA",
             "isPermitted": false
-          }, {"id": "9", "name": "vMME", "isPermitted": false}, {
+          }, {"id": "9", "name": "vFLORENCE", "isPermitted": false}, {
             "id": "10",
             "name": "vMNS",
             "isPermitted": false
-          }, {"id": "11", "name": "vSCP", "isPermitted": false}, {
+          }, {"id": "11", "name": "vEsmeralda", "isPermitted": false}, {
             "id": "12",
             "name": "VPMS",
             "isPermitted": false
-          }, {"id": "13", "name": "vMMSC", "isPermitted": false}, {
+          }, {"id": "13", "name": "vWINIFRED", "isPermitted": false}, {
             "id": "14",
             "name": "SSD",
             "isPermitted": false
@@ -1890,28 +1977,199 @@ class MockReduxStore<T> {
             "isPermitted": false
           }]
         },
-        "aicZones": [
-          {
-            "id": "NFT1",
-            "name": "NFTJSSSS-NFT1"
-          },
-          {
-            "id": "JAG1",
-            "name": "YUDFJULP-JAG1"
-          },
-          {
-            "id": "YYY1",
-            "name": "UUUAIAAI-YYY1"
-          },
-          {
-            "id": "AVT1",
-            "name": "AVTRFLHD-AVT1"
-          },
-          {
-            "id": "ATL34",
-            "name": "ATLSANAI-ATL34"
-          }
-        ],
+        "aicZones": [{"id": "NFT1", "name": "NFTJSSSS-NFT1"}, {"id": "JAG1", "name": "YUDFJULP-JAG1"}, {
+          "id": "YYY1",
+          "name": "UUUAIAAI-YYY1"
+        }, {"id": "BAN1", "name": "VSDKYUTP-BAN1"}, {"id": "DKJ1", "name": "DKJSJDKA-DKJ1"}, {
+          "id": "MCS1",
+          "name": "ASACMAMS-MCS1"
+        }, {"id": "UIO1", "name": "uioclli1-UIO1"}, {"id": "RAJ1", "name": "YGBIJNLQ-RAJ1"}, {
+          "id": "OPA1",
+          "name": "opaclli1-OPA1"
+        }, {"id": "SDE1", "name": "ZXCVBNMA-SDE1"}, {"id": "VEN2", "name": "FGHJUHIL-VEN2"}, {
+          "id": "ORL1",
+          "name": "ORLDFLMA-ORL1"
+        }, {"id": "JAD1", "name": "JADECLLI-JAD1"}, {"id": "ZXL1", "name": "LWLWCANN-ZXL1"}, {
+          "id": "CKL1",
+          "name": "CLKSKCKK-CKL1"
+        }, {"id": "SDF1", "name": "sdfclli1-SDF1"}, {"id": "RAD1", "name": "RADICAL1-RAD1"}, {
+          "id": "KIT1",
+          "name": "BHYJFGLN-KIT1"
+        }, {"id": "REL1", "name": "INGERFGT-REL1"}, {"id": "JNL1", "name": "CJALSDAC-JNL1"}, {
+          "id": "OLK1",
+          "name": "OLKOLKLS-OLK1"
+        }, {"id": "CHI1", "name": "CHILLIWE-CHI1"}, {"id": "UUU4", "name": "UUUAAAUU-UUU4"}, {
+          "id": "TUF1",
+          "name": "TUFCLLI1-TUF1"
+        }, {"id": "KJN1", "name": "CKALDKSA-KJN1"}, {"id": "SAM1", "name": "SNDGCA64-SAN1"}, {
+          "id": "SCK1",
+          "name": "SCKSCKSK-SCK1"
+        }, {"id": "HJH1", "name": "AOEEQQQD-HJH1"}, {"id": "HGD1", "name": "SDFQWHGD-HGD1"}, {
+          "id": "KOR1",
+          "name": "HYFLNBVT-KOR1"
+        }, {"id": "ATL43", "name": "AICLOCID-ATL43"}, {"id": "ATL54", "name": "AICFTAAI-ATL54"}, {
+          "id": "ATL66",
+          "name": "CLLIAAII-ATL66"
+        }, {"id": "VEL1", "name": "BNMLKUIK-VEL1"}, {"id": "ICC1", "name": "SANJITAT-ICC1"}, {
+          "id": "MNT11",
+          "name": "WSXEFBTH-MNT11"
+        }, {"id": "DEF2", "name": "WSBHGTYL-DEF2"}, {"id": "MAD11", "name": "SDFQWGKL-MAD11"}, {
+          "id": "OLG1",
+          "name": "OLHOLHOL-OLG1"
+        }, {"id": "GAR1", "name": "NGFVSJKO-GAR1"}, {"id": "SAN22", "name": "GNVLSCTL-SAN22"}, {
+          "id": "HRG1",
+          "name": "HRGHRGGS-HRG1"
+        }, {"id": "JCS1", "name": "JCSJSCJS-JCS1"}, {"id": "DHA12", "name": "WSXEDECF-DHA12"}, {
+          "id": "HJE1",
+          "name": "AOEEWWWD-HJE1"
+        }, {"id": "NCA1", "name": "NCANCANN-NCA1"}, {"id": "IOP1", "name": "iopclli1-IOP1"}, {
+          "id": "RTY1",
+          "name": "rtyclli1-RTY1"
+        }, {"id": "KAP1", "name": "HIOUYTRQ-KAP1"}, {"id": "ZEN1", "name": "ZENCLLI1-ZEN1"}, {
+          "id": "HKA1",
+          "name": "JAKHLASS-HKA1"
+        }, {"id": "CQK1", "name": "CQKSCAKK-CQK1"}, {"id": "SAI1", "name": "UBEKQLPD-SAI1"}, {
+          "id": "ERT1",
+          "name": "ertclli1-ERT1"
+        }, {"id": "IBB1", "name": "PLMKOIJU-IBB1"}, {"id": "TIR2", "name": "PLKINHYI-TIR2"}, {
+          "id": "HSD1",
+          "name": "CHASKCDS-HSD1"
+        }, {"id": "SLF78", "name": "SDCTLFN1-SLF78"}, {"id": "SEE78", "name": "SDCTEEE4-SEE78"}, {
+          "id": "SAN13",
+          "name": "TOKYJPFA-SAN13"
+        }, {"id": "SAA78", "name": "SDCTAAA1-SAA78"}, {"id": "LUC1", "name": "ATLDFGYC-LUC1"}, {
+          "id": "AMD13",
+          "name": "MEMATLAN-AMD13"
+        }, {"id": "TOR1", "name": "TOROONXN-TOR1"}, {"id": "QWE1", "name": "QWECLLI1-QWE1"}, {
+          "id": "ZOG1",
+          "name": "ZOGASTRO-ZOG1"
+        }, {"id": "CAL33", "name": "CALIFORN-CAL33"}, {"id": "SHH78", "name": "SDIT1HHH-SHH78"}, {
+          "id": "DSA1",
+          "name": "LKJHGFDS-DSA1"
+        }, {"id": "CLG1", "name": "CLGRABAD-CLG1"}, {"id": "BNA1", "name": "BNARAGBK-BNA1"}, {
+          "id": "ATL84",
+          "name": "CANTTCOC-ATL84"
+        }, {"id": "APP1", "name": "WBHGTYUI-APP1"}, {"id": "RJN1", "name": "RJNRBZAW-RJN1"}, {
+          "id": "EHH78",
+          "name": "SDCSHHH5-EHH78"
+        }, {"id": "mac10", "name": "PKGTESTF-mac10"}, {"id": "SXB78", "name": "SDCTGXB1-SXB78"}, {
+          "id": "SAX78",
+          "name": "SDCTAXG1-SAX78"
+        }, {"id": "SYD1", "name": "SYDNAUBV-SYD1"}, {"id": "TOK1", "name": "TOKYJPFA-TOK1"}, {
+          "id": "KGM2",
+          "name": "KGMTNC20-KGM2"
+        }, {"id": "DCC1b", "name": "POIUYTGH-DCC1b"}, {"id": "SKK78", "name": "SDCTKKK1-SKK78"}, {
+          "id": "SGG78",
+          "name": "SDCTGGG1-SGG78"
+        }, {"id": "SJJ78", "name": "SDCTJJJ1-SJJ78"}, {"id": "SBX78", "name": "SDCTBXG1-SBX78"}, {
+          "id": "LAG1",
+          "name": "LARGIZON-LAG1"
+        }, {"id": "IAA1", "name": "QAZXSWED-IAA1"}, {"id": "POI1", "name": "PLMNJKIU-POI1"}, {
+          "id": "LAG1a",
+          "name": "LARGIZON-LAG1a"
+        }, {"id": "PBL1", "name": "PBLAPBAI-PBL1"}, {"id": "LAG45", "name": "LARGIZON-LAG1a"}, {
+          "id": "MAR1",
+          "name": "MNBVCXZM-MAR1"
+        }, {"id": "HST70", "name": "HSTNTX70-HST70"}, {"id": "DCC1a", "name": "POIUYTGH-DCC1a"}, {
+          "id": "TOL1",
+          "name": "TOLDOH21-TOL1"
+        }, {"id": "LON1", "name": "LONEENCO-LON1"}, {"id": "SJU78", "name": "SDIT1JUB-SJU78"}, {
+          "id": "STN27",
+          "name": "HSTNTX01-STN27"
+        }, {"id": "SSW56", "name": "ss8126GT-SSW56"}, {"id": "SBB78", "name": "SDIT1BBB-SBB78"}, {
+          "id": "DCC3",
+          "name": "POIUYTGH-DCC3"
+        }, {"id": "GNV1", "name": "GNVLSCTL-GNV1"}, {"id": "WAS1", "name": "WASHDCSW-WAS1"}, {
+          "id": "TOY1",
+          "name": "TORYONNZ-TOY1"
+        }, {"id": "STT1", "name": "STTLWA02-STT1"}, {"id": "STG1", "name": "STTGGE62-STG1"}, {
+          "id": "SLL78",
+          "name": "SDCTLLL1-SLL78"
+        }, {"id": "SBU78", "name": "SDIT1BUB-SBU78"}, {"id": "ATL2", "name": "ATLNGANW-ATL2"}, {
+          "id": "BOT1",
+          "name": "BOTHWAKY-BOT1"
+        }, {"id": "SNG1", "name": "SNGPSIAU-SNG1"}, {"id": "NYC1", "name": "NYCMNY54-NYC1"}, {
+          "id": "LAG1b",
+          "name": "LARGIZON-LAG1b"
+        }, {"id": "AMD15", "name": "AMDFAA01-AMD15"}, {"id": "SNA1", "name": "SNANTXCA-SNA1"}, {
+          "id": "PLT1",
+          "name": "PLTNCA60-PLT1"
+        }, {"id": "TLP1", "name": "TLPNXM18-TLP1"}, {"id": "SDD81", "name": "SAIT1DD6-SDD81"}, {
+          "id": "DCC1",
+          "name": "POIUYTGH-DCC1"
+        }, {"id": "DCC2", "name": "POIUYTGH-DCC2"}, {"id": "OKC1", "name": "OKCBOK55-OKC1"}, {
+          "id": "PAR1",
+          "name": "PARSFRCG-PAR1"
+        }, {"id": "TES36", "name": "ABCEETES-TES36"}, {"id": "COM1", "name": "PLMKOPIU-COM1"}, {
+          "id": "ANI1",
+          "name": "ATLNGTRE-ANI1"
+        }, {"id": "SDG78", "name": "SDIT1BDG-SDG78"}, {"id": "mac20", "name": "PKGTESTF-mac20"}, {
+          "id": "DSF45",
+          "name": "DSFBG123-DSF45"
+        }, {"id": "HST25", "name": "HSTNTX01-HST25"}, {"id": "AMD18", "name": "AUDIMA01-AMD18"}, {
+          "id": "SAA80",
+          "name": "SAIT9AA3-SAA80"
+        }, {"id": "SSA56", "name": "SSIT2AA7-SSA56"}, {"id": "SDD82", "name": "SAIT1DD9-SDD82"}, {
+          "id": "JCV1",
+          "name": "JCVLFLBW-JCV1"
+        }, {"id": "SUL2", "name": "WERTYUJK-SUL2"}, {"id": "PUR1", "name": "purelyde-PUR1"}, {
+          "id": "FDE55",
+          "name": "FDERT555-FDE55"
+        }, {"id": "SITE", "name": "LONEENCO-SITE"}, {"id": "ATL1", "name": "ATLNGAMA-ATL1"}, {
+          "id": "JUL1",
+          "name": "ZXCVBNMM-JUL1"
+        }, {"id": "TAT34", "name": "TESAAISB-TAT34"}, {"id": "XCP12", "name": "CHKGH123-XCP12"}, {
+          "id": "RAI1",
+          "name": "poiuytre-RAI1"
+        }, {"id": "HPO1", "name": "ATLNGAUP-HPO1"}, {"id": "KJF12", "name": "KJFDH123-KJF12"}, {
+          "id": "SCC80",
+          "name": "SAIT9CC3-SCC80"
+        }, {"id": "SAA12", "name": "SAIT9AF8-SAA12"}, {"id": "SAA14", "name": "SAIT1AA9-SAA14"}, {
+          "id": "ATL35",
+          "name": "TTESSAAI-ATL35"
+        }, {"id": "CWY1", "name": "CWYMOWBS-CWY1"}, {"id": "ATL76", "name": "TELEPAAI-ATL76"}, {
+          "id": "DSL12",
+          "name": "DSLFK242-DSL12"
+        }, {"id": "ATL53", "name": "AAIATLTE-ATL53"}, {"id": "SAA11", "name": "SAIT9AA2-SAA11"}, {
+          "id": "ATL62",
+          "name": "TESSASCH-ATL62"
+        }, {"id": "AUG1", "name": "ASDFGHJK-AUG1"}, {"id": "POI22", "name": "POIUY123-POI22"}, {
+          "id": "SAA13",
+          "name": "SAIT1AA9-SAA13"
+        }, {"id": "BHY17", "name": "BHYTFRF3-BHY17"}, {"id": "LIS1", "name": "HOSTPROF-LIS1"}, {
+          "id": "SIP1",
+          "name": "ZXCVBNMK-SIP1"
+        }, {"id": "ATL99", "name": "TEESTAAI-ATL43"}, {"id": "ATL64", "name": "FORLOAAJ-ATL64"}, {
+          "id": "TAT33",
+          "name": "TESAAISA-TAT33"
+        }, {"id": "RAD10", "name": "INDIPUNE-RAD10"}, {"id": "RTW5", "name": "BHYTFRY4-RTW5"}, {
+          "id": "JGS1",
+          "name": "KSJKKKKK-JGS1"
+        }, {"id": "ATL98", "name": "TEESTAAI-ATL43"}, {"id": "WAN1", "name": "LEIWANGW-WAN1"}, {
+          "id": "ATL44",
+          "name": "ATLSANAB-ATL44"
+        }, {"id": "RTD2", "name": "BHYTFRk4-RTD2"}, {"id": "NIR1", "name": "ORFLMANA-NIR1"}, {
+          "id": "ATL75",
+          "name": "SANAAIRE-ATL75"
+        }, {"id": "NUM1", "name": "QWERTYUI-NUM1"}, {"id": "hvf32", "name": "MDTWNJ21-hvf32"}, {
+          "id": "RTZ4",
+          "name": "BHYTFRZ6-RTZ4"
+        }, {"id": "ATL56", "name": "ATLSANAC-ATL56"}, {"id": "AMS1", "name": "AMSTNLBW-AMS1"}, {
+          "id": "RCT1",
+          "name": "AMSTERNL-RCT1"
+        }, {"id": "JAN1", "name": "ORFLMATT-JAN1"}, {"id": "ABC14", "name": "TESAAISA-ABC14"}, {
+          "id": "TAT37",
+          "name": "TESAAISD-TAT37"
+        }, {"id": "MIC54", "name": "MICHIGAN-MIC54"}, {"id": "ABC11", "name": "ATLSANAI-ABC11"}, {
+          "id": "AMF11",
+          "name": "AMDOCS01-AMF11"
+        }, {"id": "ATL63", "name": "ATLSANEW-ATL63"}, {"id": "ABC12", "name": "ATLSECIA-ABC12"}, {
+          "id": "hvf20",
+          "name": "MDTWNJ21-hvf20"
+        }, {"id": "ABC15", "name": "AAITESAN-ABC15"}, {"id": "AVT1", "name": "AVTRFLHD-AVT1"}, {
+          "id": "ATL34",
+          "name": "ATLSANAI-ATL34"
+        }],
         "categoryParameters": {
           "owningEntityList": [{
             "id": "aaa1",
@@ -1920,10 +2178,7 @@ class MockReduxStore<T> {
             "id": "Melissa",
             "name": "Melissa"
           }],
-          "projectList": [{"id": "WATKINS", "name": "WATKINS"}, {"id": "x1", "name": "x1"}, {
-            "id": "yyy1",
-            "name": "yyy1"
-          }],
+          "projectList": [{"id": "WATKINS", "name": "WATKINS"}, {"id": "x1", "name": "x1"}, {"id": "yyy1", "name": "yyy1"}],
           "lineOfBusinessList": [{"id": "ONAP", "name": "ONAP"}, {"id": "zzz1", "name": "zzz1"}],
           "platformList": [{"id": "platform", "name": "platform"}, {"id": "xxx1", "name": "xxx1"}]
         },
index f354091..97d562b 100644 (file)
@@ -27,17 +27,12 @@ class MockReduxStore<T> {
           "FLAG_NETWORK_TO_ASYNC_INSTANTIATION": false,
           "FLAG_SHOW_ASSIGNMENTS": true,
           "FLAG_FABRIC_CONFIGURATION_ASSIGNMENTS": true,
-          "FLAG_UNASSIGN_SERVICE": true,
           "FLAG_SHOW_VERIFY_SERVICE": false,
-          "FLAG_COLLECTION_RESOURCE_SUPPORT": true,
-          "FLAG_DUPLICATE_VNF": true,
           "FLAG_SERVICE_MODEL_CACHE": true,
           "FLAG_ADVANCED_PORTS_FILTER": true,
           "CREATE_INSTANCE_TEST": false,
           "FLAG_SETTING_DEFAULTS_IN_DRAWING_BOARD": false,
           "FLAG_REGION_ID_FROM_REMOTE": true,
-          "FLAG_ASYNC_INSTANTIATION": true,
-          "FLAG_ASYNC_JOBS": true,
           "EMPTY_DRAWING_BOARD_TEST": false,
           "FLAG_ADD_MSO_TESTAPI_FIELD": true
         },
@@ -61,11 +56,11 @@ class MockReduxStore<T> {
               "inputs": {}
             },
             "vnfs": {
-              "VF_vMee 0": {
+              "VF_vGeraldine 0": {
                 "uuid": "d6557200-ecf2-4641-8094-5393ae3aae60",
                 "invariantUuid": "4160458e-f648-4b30-a176-43881ffffe9e",
-                "description": "VSP_vMee",
-                "name": "VF_vMee",
+                "description": "VSP_vGeraldine",
+                "name": "VF_vGeraldine",
                 "version": "2.0",
                 "customizationUuid": "91415b44-753d-494c-926a-456a9172bbb9",
                 "inputs": {},
@@ -236,74 +231,74 @@ class MockReduxStore<T> {
                   "sctp-b-egress-dst_end_port": "65535.0"
                 },
                 "type": "VF",
-                "modelCustomizationName": "VF_vMee 0",
+                "modelCustomizationName": "VF_vGeraldine 0",
                 "vfModules": {
-                  "vf_vmee0..VfVmee..vmme_vlc..module-1": {
+                  "vf_vgeraldine0..VfVgeraldine..vflorence_vlc..module-1": {
                     "uuid": "522159d5-d6e0-4c2a-aa44-5a542a12a830",
                     "invariantUuid": "98a7c88b-b577-476a-90e4-e25a5871e02b",
                     "customizationUuid": "55b1be94-671a-403e-a26c-667e9c47d091",
                     "description": null,
-                    "name": "VfVmee..vmme_vlc..module-1",
+                    "name": "VfVgeraldine..vflorence_vlc..module-1",
                     "version": "2",
-                    "modelCustomizationName": "VfVmee..vmme_vlc..module-1",
+                    "modelCustomizationName": "VfVgeraldine..vflorence_vlc..module-1",
                     "properties": {
                       "minCountInstances": 0,
                       "maxCountInstances": null,
                       "initialCount": 0,
-                      "vfModuleLabel": "vmme_vlc"
+                      "vfModuleLabel": "vflorence_vlc"
                     },
                     "inputs": {},
                     "volumeGroupAllowed": true
                   },
-                  "vf_vmee0..VfVmee..vmme_gpb..module-2": {
+                  "vf_vgeraldine0..VfVgeraldine..vflorence_gpb..module-2": {
                     "uuid": "41708296-e443-4c71-953f-d9a010f059e1",
                     "invariantUuid": "1cca90b8-3490-495e-87da-3f3e4c57d5b9",
                     "customizationUuid": "6add59e0-7fe1-4bc4-af48-f8812422ae7c",
                     "description": null,
-                    "name": "VfVmee..vmme_gpb..module-2",
+                    "name": "VfVgeraldine..vflorence_gpb..module-2",
                     "version": "2",
-                    "modelCustomizationName": "VfVmee..vmme_gpb..module-2",
+                    "modelCustomizationName": "VfVgeraldine..vflorence_gpb..module-2",
                     "properties": {
                       "minCountInstances": 0,
                       "maxCountInstances": null,
                       "initialCount": 0,
-                      "vfModuleLabel": "vmme_gpb"
+                      "vfModuleLabel": "vflorence_gpb"
                     },
                     "inputs": {},
                     "volumeGroupAllowed": false
                   },
-                  "vf_vmee0..VfVmee..base_vmme..module-0": {
+                  "vf_vgeraldine0..VfVgeraldine..base_vflorence..module-0": {
                     "uuid": "a27f5cfc-7f12-4f99-af08-0af9c3885c87",
                     "invariantUuid": "a6f9e51a-2b35-416a-ae15-15e58d61f36d",
                     "customizationUuid": "f8c040f1-7e51-4a11-aca8-acf256cfd861",
                     "description": null,
-                    "name": "VfVmee..base_vmme..module-0",
+                    "name": "VfVgeraldine..base_vflorence..module-0",
                     "version": "2",
-                    "modelCustomizationName": "VfVmee..base_vmme..module-0",
+                    "modelCustomizationName": "VfVgeraldine..base_vflorence..module-0",
                     "properties": {
                       "minCountInstances": 1,
                       "maxCountInstances": 1,
                       "initialCount": 1,
-                      "vfModuleLabel": "base_vmme"
+                      "vfModuleLabel": "base_vflorence"
                     },
                     "inputs": {},
                     "volumeGroupAllowed": true
                   }
                 },
                 "volumeGroups": {
-                  "vf_vmee0..VfVmee..base_vmme..module-0": {
+                  "vf_vgeraldine0..VfVgeraldine..base_vflorence..module-0": {
                     "uuid": "a27f5cfc-7f12-4f99-af08-0af9c3885c87",
                     "invariantUuid": "a6f9e51a-2b35-416a-ae15-15e58d61f36d",
                     "customizationUuid": "f8c040f1-7e51-4a11-aca8-acf256cfd861",
                     "description": null,
-                    "name": "VfVmee..base_vmme..module-0",
+                    "name": "VfVgeraldine..base_vflorence..module-0",
                     "version": "2",
-                    "modelCustomizationName": "VfVmee..base_vmme..module-0",
+                    "modelCustomizationName": "VfVgeraldine..base_vflorence..module-0",
                     "properties": {
                       "minCountInstances": 1,
                       "maxCountInstances": 1,
                       "initialCount": 1,
-                      "vfModuleLabel": "base_vmme"
+                      "vfModuleLabel": "base_vflorence"
                     },
                     "inputs": {}
                   }
@@ -332,7 +327,7 @@ class MockReduxStore<T> {
                 "modelCustomizationName": "ExtVL 0"
               }
             },
-            "collectionResource": {},
+            "collectionResources": {},
             "configurations": {
               "Port Mirroring Configuration By Policy 0": {
                 "uuid": "b4398538-e89d-4f13-b33d-ca323434ba50",
@@ -353,72 +348,72 @@ class MockReduxStore<T> {
             },
             "serviceProxies": {},
             "vfModules": {
-              "vf_vmee0..VfVmee..vmme_vlc..module-1": {
+              "vf_vgeraldine0..VfVgeraldine..vflorence_vlc..module-1": {
                 "uuid": "522159d5-d6e0-4c2a-aa44-5a542a12a830",
                 "invariantUuid": "98a7c88b-b577-476a-90e4-e25a5871e02b",
                 "customizationUuid": "55b1be94-671a-403e-a26c-667e9c47d091",
                 "description": null,
-                "name": "VfVmee..vmme_vlc..module-1",
+                "name": "VfVgeraldine..vflorence_vlc..module-1",
                 "version": "2",
-                "modelCustomizationName": "VfVmee..vmme_vlc..module-1",
+                "modelCustomizationName": "VfVgeraldine..vflorence_vlc..module-1",
                 "properties": {
                   "minCountInstances": 0,
                   "maxCountInstances": null,
                   "initialCount": 0,
-                  "vfModuleLabel": "vmme_vlc"
+                  "vfModuleLabel": "vflorence_vlc"
                 },
                 "inputs": {},
                 "volumeGroupAllowed": true
               },
-              "vf_vmee0..VfVmee..vmme_gpb..module-2": {
+              "vf_vgeraldine0..VfVgeraldine..vflorence_gpb..module-2": {
                 "uuid": "41708296-e443-4c71-953f-d9a010f059e1",
                 "invariantUuid": "1cca90b8-3490-495e-87da-3f3e4c57d5b9",
                 "customizationUuid": "6add59e0-7fe1-4bc4-af48-f8812422ae7c",
                 "description": null,
-                "name": "VfVmee..vmme_gpb..module-2",
+                "name": "VfVgeraldine..vflorence_gpb..module-2",
                 "version": "2",
-                "modelCustomizationName": "VfVmee..vmme_gpb..module-2",
+                "modelCustomizationName": "VfVgeraldine..vflorence_gpb..module-2",
                 "properties": {
                   "minCountInstances": 0,
                   "maxCountInstances": null,
                   "initialCount": 0,
-                  "vfModuleLabel": "vmme_gpb"
+                  "vfModuleLabel": "vflorence_gpb"
                 },
                 "inputs": {},
                 "volumeGroupAllowed": false
               },
-              "vf_vmee0..VfVmee..base_vmme..module-0": {
+              "vf_vgeraldine0..VfVgeraldine..base_vflorence..module-0": {
                 "uuid": "a27f5cfc-7f12-4f99-af08-0af9c3885c87",
                 "invariantUuid": "a6f9e51a-2b35-416a-ae15-15e58d61f36d",
                 "customizationUuid": "f8c040f1-7e51-4a11-aca8-acf256cfd861",
                 "description": null,
-                "name": "VfVmee..base_vmme..module-0",
+                "name": "VfVgeraldine..base_vflorence..module-0",
                 "version": "2",
-                "modelCustomizationName": "VfVmee..base_vmme..module-0",
+                "modelCustomizationName": "VfVgeraldine..base_vflorence..module-0",
                 "properties": {
                   "minCountInstances": 1,
                   "maxCountInstances": 1,
                   "initialCount": 1,
-                  "vfModuleLabel": "base_vmme"
+                  "vfModuleLabel": "base_vflorence"
                 },
                 "inputs": {},
                 "volumeGroupAllowed": true
               }
             },
             "volumeGroups": {
-              "vf_vmee0..VfVmee..base_vmme..module-0": {
+              "vf_vgeraldine0..VfVgeraldine..base_vflorence..module-0": {
                 "uuid": "a27f5cfc-7f12-4f99-af08-0af9c3885c87",
                 "invariantUuid": "a6f9e51a-2b35-416a-ae15-15e58d61f36d",
                 "customizationUuid": "f8c040f1-7e51-4a11-aca8-acf256cfd861",
                 "description": null,
-                "name": "VfVmee..base_vmme..module-0",
+                "name": "VfVgeraldine..base_vflorence..module-0",
                 "version": "2",
-                "modelCustomizationName": "VfVmee..base_vmme..module-0",
+                "modelCustomizationName": "VfVgeraldine..base_vflorence..module-0",
                 "properties": {
                   "minCountInstances": 1,
                   "maxCountInstances": 1,
                   "initialCount": 1,
-                  "vfModuleLabel": "base_vmme"
+                  "vfModuleLabel": "base_vflorence"
                 },
                 "inputs": {}
               }
@@ -439,7 +434,7 @@ class MockReduxStore<T> {
               "serviceEcompNaming": "false",
               "instantiationType": "A-La-Carte",
               "inputs": {
-                "2017488_adiodvpe0_ASN": {
+                "2017488_pasqualevpe0_ASN": {
                   "type": "string",
                   "description": "AV/PE",
                   "entry_schema": null,
@@ -451,11 +446,11 @@ class MockReduxStore<T> {
               }
             },
             "vnfs": {
-              "2017-388_ADIOD-vPE 1": {
+              "2017-388_PASQUALE-vPE 1": {
                 "uuid": "0903e1c0-8e03-4936-b5c2-260653b96413",
                 "invariantUuid": "00beb8f9-6d39-452f-816d-c709b9cbb87d",
-                "description": "Name ADIOD vPE Description The provider edge function for the ADIOD service supported by the Junipers VMX product Category Router Vendor Juniper Vendor Release Code 17.2 Owners Mary Fragale. Updated 9-25 to use v8.0 of the Juniper Valid 2 VLM",
-                "name": "2017-388_ADIOD-vPE",
+                "description": "Name PASQUALE vPE Description The provider edge function for the PASQUALE service supported by the Junipers VMX product Category Router Vendor Juniper Vendor Release Code 17.2 Owners Mary Fragale. Updated 9-25 to use v8.0 of the Juniper Valid 2 VLM",
+                "name": "2017-388_PASQUALE-vPE",
                 "version": "1.0",
                 "customizationUuid": "280dec31-f16d-488b-9668-4aae55d6648a",
                 "inputs": {
@@ -518,29 +513,29 @@ class MockReduxStore<T> {
                   "vnf_config_template_version": {
                     "displayName": "vnf_config_template_version",
                     "command": "get_input",
-                    "inputName": "2017488_adiodvpe0_vnf_config_template_version"
+                    "inputName": "2017488_pasqualevpe0_vnf_config_template_version"
                   },
                   "bandwidth_units": {
                     "displayName": "bandwidth_units",
                     "command": "get_input",
-                    "inputName": "adiodvpe0_bandwidth_units"
+                    "inputName": "pasqualevpe0_bandwidth_units"
                   },
-                  "bandwidth": {"displayName": "bandwidth", "command": "get_input", "inputName": "adiodvpe0_bandwidth"},
+                  "bandwidth": {"displayName": "bandwidth", "command": "get_input", "inputName": "pasqualevpe0_bandwidth"},
                   "AIC_CLLI": {
                     "displayName": "AIC_CLLI",
                     "command": "get_input",
-                    "inputName": "2017488_adiodvpe0_AIC_CLLI"
+                    "inputName": "2017488_pasqualevpe0_AIC_CLLI"
                   },
-                  "ASN": {"displayName": "ASN", "command": "get_input", "inputName": "2017488_adiodvpe0_ASN"},
+                  "ASN": {"displayName": "ASN", "command": "get_input", "inputName": "2017488_pasqualevpe0_ASN"},
                   "vnf_instance_name": {
                     "displayName": "vnf_instance_name",
                     "command": "get_input",
-                    "inputName": "2017488_adiodvpe0_vnf_instance_name"
+                    "inputName": "2017488_pasqualevpe0_vnf_instance_name"
                   }
                 },
                 "properties": {
                   "vmxvre_retype": "RE-VMX",
-                  "vnf_config_template_version": "get_input:2017488_adiodvpe0_vnf_config_template_version",
+                  "vnf_config_template_version": "get_input:2017488_pasqualevpe0_vnf_config_template_version",
                   "sriov44_net_id": "48d399b3-11ee-48a8-94d2-f0ea94d6be8d",
                   "int_ctl_net_id": "2f323477-6936-4d01-ac53-d849430281d9",
                   "vmxvpfe_sriov41_0_port_mac": "00:11:22:EF:AC:DF",
@@ -585,7 +580,7 @@ class MockReduxStore<T> {
                   "vmxvpfe_sriov43_0_port_unknownmulticastallow": "true",
                   "vmxvre_int_ctl_ip_0": "10.0.0.10",
                   "ecomp_generated_naming": "false",
-                  "AIC_CLLI": "get_input:2017488_adiodvpe0_AIC_CLLI",
+                  "AIC_CLLI": "get_input:2017488_pasqualevpe0_AIC_CLLI",
                   "vnf_name": "mtnj309me6vre",
                   "vmxvpfe_sriov41_0_port_unknownunicastallow": "true",
                   "vmxvre_volume_type_1": "HITACHI",
@@ -593,14 +588,14 @@ class MockReduxStore<T> {
                   "vmxvre_volume_type_0": "HITACHI",
                   "vmxvpfe_volume_type_0": "HITACHI",
                   "vmxvpfe_sriov43_0_port_broadcastallow": "true",
-                  "bandwidth_units": "get_input:adiodvpe0_bandwidth_units",
+                  "bandwidth_units": "get_input:pasqualevpe0_bandwidth_units",
                   "vnf_id": "123",
                   "vmxvre_oam_prefix": "24",
                   "availability_zone_0": "mtpocfo-kvm-az01",
-                  "ASN": "get_input:2017488_adiodvpe0_ASN",
+                  "ASN": "get_input:2017488_pasqualevpe0_ASN",
                   "vmxvre_chassis_i2cid": "161",
                   "vmxvpfe_name_0": "vPFEXI",
-                  "bandwidth": "get_input:adiodvpe0_bandwidth",
+                  "bandwidth": "get_input:pasqualevpe0_bandwidth",
                   "availability_zone_max_count": "1",
                   "vmxvre_volume_size_0": "45.0",
                   "vmxvre_volume_size_1": "50.0",
@@ -610,7 +605,7 @@ class MockReduxStore<T> {
                   "vmxvre_ore_present": "0",
                   "vmxvre_volume_name_0": "vREXI_FBVolume",
                   "vmxvre_type": "0",
-                  "vnf_instance_name": "get_input:2017488_adiodvpe0_vnf_instance_name",
+                  "vnf_instance_name": "get_input:2017488_pasqualevpe0_vnf_instance_name",
                   "vmxvpfe_sriov41_0_port_unknownmulticastallow": "true",
                   "oam_net_id": "b95eeb1d-d55d-4827-abb4-8ebb94941429",
                   "vmx_int_ctl_len": "24",
@@ -624,16 +619,16 @@ class MockReduxStore<T> {
                   "vmxvpfe_flavor_name": "ns.c20r16d25.v5"
                 },
                 "type": "VF",
-                "modelCustomizationName": "2017-388_ADIOD-vPE 1",
+                "modelCustomizationName": "2017-388_PASQUALE-vPE 1",
                 "vfModules": {},
                 "volumeGroups": {},
                 "vfcInstanceGroups": {}
               },
-              "2017-388_ADIOD-vPE 0": {
+              "2017-388_PASQUALE-vPE 0": {
                 "uuid": "afacccf6-397d-45d6-b5ae-94c39734b168",
                 "invariantUuid": "72e465fe-71b1-4e7b-b5ed-9496118ff7a8",
-                "description": "Name ADIOD vPE Description The provider edge function for the ADIOD service supported by the Junipers VMX product Category Router Vendor Juniper Vendor Release Code 17.2 Owners Mary Fragale. Updated 9-25 to use v8.0 of the Juniper Valid 2 VLM",
-                "name": "2017-388_ADIOD-vPE",
+                "description": "Name PASQUALE vPE Description The provider edge function for the PASQUALE service supported by the Junipers VMX product Category Router Vendor Juniper Vendor Release Code 17.2 Owners Mary Fragale. Updated 9-25 to use v8.0 of the Juniper Valid 2 VLM",
+                "name": "2017-388_PASQUALE-vPE",
                 "version": "4.0",
                 "customizationUuid": "b3c76f73-eeb5-4fb6-9d31-72a889f1811c",
                 "inputs": {
@@ -696,29 +691,29 @@ class MockReduxStore<T> {
                   "vnf_config_template_version": {
                     "displayName": "vnf_config_template_version",
                     "command": "get_input",
-                    "inputName": "2017488_adiodvpe0_vnf_config_template_version"
+                    "inputName": "2017488_pasqualevpe0_vnf_config_template_version"
                   },
                   "bandwidth_units": {
                     "displayName": "bandwidth_units",
                     "command": "get_input",
-                    "inputName": "adiodvpe0_bandwidth_units"
+                    "inputName": "pasqualevpe0_bandwidth_units"
                   },
-                  "bandwidth": {"displayName": "bandwidth", "command": "get_input", "inputName": "adiodvpe0_bandwidth"},
+                  "bandwidth": {"displayName": "bandwidth", "command": "get_input", "inputName": "pasqualevpe0_bandwidth"},
                   "AIC_CLLI": {
                     "displayName": "AIC_CLLI",
                     "command": "get_input",
-                    "inputName": "2017488_adiodvpe0_AIC_CLLI"
+                    "inputName": "2017488_pasqualevpe0_AIC_CLLI"
                   },
-                  "ASN": {"displayName": "ASN", "command": "get_input", "inputName": "2017488_adiodvpe0_ASN"},
+                  "ASN": {"displayName": "ASN", "command": "get_input", "inputName": "2017488_pasqualevpe0_ASN"},
                   "vnf_instance_name": {
                     "displayName": "vnf_instance_name",
                     "command": "get_input",
-                    "inputName": "2017488_adiodvpe0_vnf_instance_name"
+                    "inputName": "2017488_pasqualevpe0_vnf_instance_name"
                   }
                 },
                 "properties": {
                   "vmxvre_retype": "RE-VMX",
-                  "vnf_config_template_version": "get_input:2017488_adiodvpe0_vnf_config_template_version",
+                  "vnf_config_template_version": "get_input:2017488_pasqualevpe0_vnf_config_template_version",
                   "sriov44_net_id": "48d399b3-11ee-48a8-94d2-f0ea94d6be8d",
                   "int_ctl_net_id": "2f323477-6936-4d01-ac53-d849430281d9",
                   "vmxvpfe_sriov41_0_port_mac": "00:11:22:EF:AC:DF",
@@ -764,7 +759,7 @@ class MockReduxStore<T> {
                   "vmxvpfe_sriov43_0_port_unknownmulticastallow": "true",
                   "vmxvre_int_ctl_ip_0": "10.0.0.10",
                   "ecomp_generated_naming": "false",
-                  "AIC_CLLI": "get_input:2017488_adiodvpe0_AIC_CLLI",
+                  "AIC_CLLI": "get_input:2017488_pasqualevpe0_AIC_CLLI",
                   "vnf_name": "mtnj309me6vre",
                   "vmxvpfe_sriov41_0_port_unknownunicastallow": "true",
                   "vmxvre_volume_type_1": "HITACHI",
@@ -772,14 +767,14 @@ class MockReduxStore<T> {
                   "vmxvre_volume_type_0": "HITACHI",
                   "vmxvpfe_volume_type_0": "HITACHI",
                   "vmxvpfe_sriov43_0_port_broadcastallow": "true",
-                  "bandwidth_units": "get_input:adiodvpe0_bandwidth_units",
+                  "bandwidth_units": "get_input:pasqualevpe0_bandwidth_units",
                   "vnf_id": "123",
                   "vmxvre_oam_prefix": "24",
                   "availability_zone_0": "mtpocfo-kvm-az01",
-                  "ASN": "get_input:2017488_adiodvpe0_ASN",
+                  "ASN": "get_input:2017488_pasqualevpe0_ASN",
                   "vmxvre_chassis_i2cid": "161",
                   "vmxvpfe_name_0": "vPFEXI",
-                  "bandwidth": "get_input:adiodvpe0_bandwidth",
+                  "bandwidth": "get_input:pasqualevpe0_bandwidth",
                   "availability_zone_max_count": "1",
                   "vmxvre_volume_size_0": "45.0",
                   "vmxvre_volume_size_1": "50.0",
@@ -789,7 +784,7 @@ class MockReduxStore<T> {
                   "vmxvre_ore_present": "0",
                   "vmxvre_volume_name_0": "vREXI_FBVolume",
                   "vmxvre_type": "0",
-                  "vnf_instance_name": "get_input:2017488_adiodvpe0_vnf_instance_name",
+                  "vnf_instance_name": "get_input:2017488_pasqualevpe0_vnf_instance_name",
                   "vmxvpfe_sriov41_0_port_unknownmulticastallow": "true",
                   "oam_net_id": "b95eeb1d-d55d-4827-abb4-8ebb94941429",
                   "vmx_int_ctl_len": "24",
@@ -803,16 +798,16 @@ class MockReduxStore<T> {
                   "vmxvpfe_flavor_name": "ns.c20r16d25.v5"
                 },
                 "type": "VF",
-                "modelCustomizationName": "2017-388_ADIOD-vPE 0",
+                "modelCustomizationName": "2017-388_PASQUALE-vPE 0",
                 "vfModules": {},
                 "volumeGroups": {},
                 "vfcInstanceGroups": {}
               },
-              "2017-488_ADIOD-vPE 0": {
+              "2017-488_PASQUALE-vPE 0": {
                 "uuid": "69e09f68-8b63-4cc9-b9ff-860960b5db09",
                 "invariantUuid": "72e465fe-71b1-4e7b-b5ed-9496118ff7a8",
-                "description": "Name ADIOD vPE Description The provider edge function for the ADIOD service supported by the Junipers VMX product Category Router Vendor Juniper Vendor Release Code 17.2 Owners Mary Fragale. Updated 9-25 to use v8.0 of the Juniper Valid 2 VLM",
-                "name": "2017-488_ADIOD-vPE",
+                "description": "Name PASQUALE vPE Description The provider edge function for the PASQUALE service supported by the Junipers VMX product Category Router Vendor Juniper Vendor Release Code 17.2 Owners Mary Fragale. Updated 9-25 to use v8.0 of the Juniper Valid 2 VLM",
+                "name": "2017-488_PASQUALE-vPE",
                 "version": "5.0",
                 "customizationUuid": "1da7b585-5e61-4993-b95e-8e6606c81e45",
                 "inputs": {
@@ -875,29 +870,29 @@ class MockReduxStore<T> {
                   "vnf_config_template_version": {
                     "displayName": "vnf_config_template_version",
                     "command": "get_input",
-                    "inputName": "2017488_adiodvpe0_vnf_config_template_version"
+                    "inputName": "2017488_pasqualevpe0_vnf_config_template_version"
                   },
                   "bandwidth_units": {
                     "displayName": "bandwidth_units",
                     "command": "get_input",
-                    "inputName": "adiodvpe0_bandwidth_units"
+                    "inputName": "pasqualevpe0_bandwidth_units"
                   },
-                  "bandwidth": {"displayName": "bandwidth", "command": "get_input", "inputName": "adiodvpe0_bandwidth"},
+                  "bandwidth": {"displayName": "bandwidth", "command": "get_input", "inputName": "pasqualevpe0_bandwidth"},
                   "AIC_CLLI": {
                     "displayName": "AIC_CLLI",
                     "command": "get_input",
-                    "inputName": "2017488_adiodvpe0_AIC_CLLI"
+                    "inputName": "2017488_pasqualevpe0_AIC_CLLI"
                   },
-                  "ASN": {"displayName": "ASN", "command": "get_input", "inputName": "2017488_adiodvpe0_ASN"},
+                  "ASN": {"displayName": "ASN", "command": "get_input", "inputName": "2017488_pasqualevpe0_ASN"},
                   "vnf_instance_name": {
                     "displayName": "vnf_instance_name",
                     "command": "get_input",
-                    "inputName": "2017488_adiodvpe0_vnf_instance_name"
+                    "inputName": "2017488_pasqualevpe0_vnf_instance_name"
                   }
                 },
                 "properties": {
                   "vmxvre_retype": "RE-VMX",
-                  "vnf_config_template_version": "get_input:2017488_adiodvpe0_vnf_config_template_version",
+                  "vnf_config_template_version": "get_input:2017488_pasqualevpe0_vnf_config_template_version",
                   "sriov44_net_id": "48d399b3-11ee-48a8-94d2-f0ea94d6be8d",
                   "int_ctl_net_id": "2f323477-6936-4d01-ac53-d849430281d9",
                   "vmxvpfe_sriov41_0_port_mac": "00:11:22:EF:AC:DF",
@@ -944,7 +939,7 @@ class MockReduxStore<T> {
                   "vmxvpfe_sriov43_0_port_unknownmulticastallow": "true",
                   "vmxvre_int_ctl_ip_0": "10.0.0.10",
                   "ecomp_generated_naming": "false",
-                  "AIC_CLLI": "get_input:2017488_adiodvpe0_AIC_CLLI",
+                  "AIC_CLLI": "get_input:2017488_pasqualevpe0_AIC_CLLI",
                   "vnf_name": "mtnj309me6vre",
                   "vmxvpfe_sriov41_0_port_unknownunicastallow": "true",
                   "vmxvre_volume_type_1": "HITACHI",
@@ -952,14 +947,14 @@ class MockReduxStore<T> {
                   "vmxvre_volume_type_0": "HITACHI",
                   "vmxvpfe_volume_type_0": "HITACHI",
                   "vmxvpfe_sriov43_0_port_broadcastallow": "true",
-                  "bandwidth_units": "get_input:adiodvpe0_bandwidth_units",
+                  "bandwidth_units": "get_input:pasqualevpe0_bandwidth_units",
                   "vnf_id": "123",
                   "vmxvre_oam_prefix": "24",
                   "availability_zone_0": "mtpocfo-kvm-az01",
-                  "ASN": "get_input:2017488_adiodvpe0_ASN",
+                  "ASN": "get_input:2017488_pasqualevpe0_ASN",
                   "vmxvre_chassis_i2cid": "161",
                   "vmxvpfe_name_0": "vPFEXI",
-                  "bandwidth": "get_input:adiodvpe0_bandwidth",
+                  "bandwidth": "get_input:pasqualevpe0_bandwidth",
                   "availability_zone_max_count": "1",
                   "vmxvre_volume_size_0": "45.0",
                   "vmxvre_volume_size_1": "50.0",
@@ -969,7 +964,7 @@ class MockReduxStore<T> {
                   "vmxvre_ore_present": "0",
                   "vmxvre_volume_name_0": "vREXI_FBVolume",
                   "vmxvre_type": "0",
-                  "vnf_instance_name": "get_input:2017488_adiodvpe0_vnf_instance_name",
+                  "vnf_instance_name": "get_input:2017488_pasqualevpe0_vnf_instance_name",
                   "vmxvpfe_sriov41_0_port_unknownmulticastallow": "true",
                   "oam_net_id": "b95eeb1d-d55d-4827-abb4-8ebb94941429",
                   "vmx_int_ctl_len": "24",
@@ -983,82 +978,82 @@ class MockReduxStore<T> {
                   "vmxvpfe_flavor_name": "ns.c20r16d25.v5"
                 },
                 "type": "VF",
-                "modelCustomizationName": "2017-488_ADIOD-vPE 0",
+                "modelCustomizationName": "2017-488_PASQUALE-vPE 0",
                 "vfModules": {
-                  "2017488_adiodvpe0..2017488AdiodVpe..ADIOD_vRE_BV..module-1": {
+                  "2017488_pasqualevpe0..2017488PasqualeVpe..PASQUALE_vRE_BV..module-1": {
                     "uuid": "25284168-24bb-4698-8cb4-3f509146eca5",
                     "invariantUuid": "7253ff5c-97f0-4b8b-937c-77aeb4d79aa1",
                     "customizationUuid": "f7e7c365-60cf-49a9-9ebf-a1aa11b9d401",
                     "description": null,
-                    "name": "2017488AdiodVpe..ADIOD_vRE_BV..module-1",
+                    "name": "2017488PasqualeVpe..PASQUALE_vRE_BV..module-1",
                     "version": "6",
-                    "modelCustomizationName": "2017488AdiodVpe..ADIOD_vRE_BV..module-1",
+                    "modelCustomizationName": "2017488PasqualeVpe..PASQUALE_vRE_BV..module-1",
                     "properties": {
                       "minCountInstances": 0,
                       "maxCountInstances": null,
                       "initialCount": 0,
-                      "vfModuleLabel": "ADIOD_vRE_BV"
+                      "vfModuleLabel": "PASQUALE_vRE_BV"
                     },
                     "inputs": {
-                      "adiodvpe0_bandwidth": {
+                      "pasqualevpe0_bandwidth": {
                         "type": "string",
                         "description": "Requested VPE bandwidth",
                         "entry_schema": null,
                         "inputProperties": {
                           "sourceType": "HEAT",
-                          "vfModuleLabel": "ADIOD_vRE_BV",
+                          "vfModuleLabel": "PASQUALE_vRE_BV",
                           "paramName": "bandwidth"
                         },
                         "constraints": null,
                         "required": true,
                         "default": "10"
                       },
-                      "2017488_adiodvpe0_vnf_instance_name": {
+                      "2017488_pasqualevpe0_vnf_instance_name": {
                         "type": "string",
                         "description": "The hostname assigned to the vpe.",
                         "entry_schema": null,
                         "inputProperties": {
                           "sourceType": "HEAT",
-                          "vfModuleLabel": "ADIOD_vRE_BV",
+                          "vfModuleLabel": "PASQUALE_vRE_BV",
                           "paramName": "vnf_instance_name"
                         },
                         "constraints": null,
                         "required": true,
                         "default": "mtnj309me6"
                       },
-                      "2017488_adiodvpe0_vnf_config_template_version": {
+                      "2017488_pasqualevpe0_vnf_config_template_version": {
                         "type": "string",
                         "description": "VPE Software Version",
                         "entry_schema": null,
                         "inputProperties": {
                           "sourceType": "HEAT",
-                          "vfModuleLabel": "ADIOD_vRE_BV",
+                          "vfModuleLabel": "PASQUALE_vRE_BV",
                           "paramName": "vnf_config_template_version"
                         },
                         "constraints": null,
                         "required": true,
                         "default": "17.2"
                       },
-                      "2017488_adiodvpe0_AIC_CLLI": {
+                      "2017488_pasqualevpe0_AIC_CLLI": {
                         "type": "string",
                         "description": "AIC Site CLLI",
                         "entry_schema": null,
                         "inputProperties": {
                           "sourceType": "HEAT",
-                          "vfModuleLabel": "ADIOD_vRE_BV",
+                          "vfModuleLabel": "PASQUALE_vRE_BV",
                           "paramName": "AIC_CLLI"
                         },
                         "constraints": null,
                         "required": true,
                         "default": "ATLMY8GA"
                       },
-                      "adiodvpe0_bandwidth_units": {
+                      "pasqualevpe0_bandwidth_units": {
                         "type": "string",
                         "description": "Units of bandwidth",
                         "entry_schema": null,
                         "inputProperties": {
                           "sourceType": "HEAT",
-                          "vfModuleLabel": "ADIOD_vRE_BV",
+                          "vfModuleLabel": "PASQUALE_vRE_BV",
                           "paramName": "bandwidth_units"
                         },
                         "constraints": null,
@@ -1068,116 +1063,116 @@ class MockReduxStore<T> {
                     },
                     "volumeGroupAllowed": true
                   },
-                  "2017488_adiodvpe0..2017488AdiodVpe..ADIOD_base_vPE_BV..module-0": {
+                  "2017488_pasqualevpe0..2017488PasqualeVpe..PASQUALE_base_vPE_BV..module-0": {
                     "uuid": "f8360508-3f17-4414-a2ed-6bc71161e8db",
                     "invariantUuid": "b34833bb-6aa9-4ad6-a831-70b06367a091",
                     "customizationUuid": "a55961b2-2065-4ab0-a5b7-2fcee1c227e3",
                     "description": null,
-                    "name": "2017488AdiodVpe..ADIOD_base_vPE_BV..module-0",
+                    "name": "2017488PasqualeVpe..PASQUALE_base_vPE_BV..module-0",
                     "version": "5",
-                    "modelCustomizationName": "2017488AdiodVpe..ADIOD_base_vPE_BV..module-0",
+                    "modelCustomizationName": "2017488PasqualeVpe..PASQUALE_base_vPE_BV..module-0",
                     "properties": {
                       "minCountInstances": 1,
                       "maxCountInstances": 1,
                       "initialCount": 1,
-                      "vfModuleLabel": "ADIOD_base_vPE_BV"
+                      "vfModuleLabel": "PASQUALE_base_vPE_BV"
                     },
                     "inputs": {},
                     "volumeGroupAllowed": false
                   },
-                  "2017488_adiodvpe0..2017488AdiodVpe..ADIOD_vPFE_BV..module-2": {
+                  "2017488_pasqualevpe0..2017488PasqualeVpe..PASQUALE_vPFE_BV..module-2": {
                     "uuid": "0a0dd9d4-31d3-4c3a-ae89-a02f383e6a9a",
                     "invariantUuid": "eff8cc59-53a1-4101-aed7-8cf24ecf8339",
                     "customizationUuid": "3cd946bb-50e0-40d8-96d3-c9023520b557",
                     "description": null,
-                    "name": "2017488AdiodVpe..ADIOD_vPFE_BV..module-2",
+                    "name": "2017488PasqualeVpe..PASQUALE_vPFE_BV..module-2",
                     "version": "6",
-                    "modelCustomizationName": "2017488AdiodVpe..ADIOD_vPFE_BV..module-2",
+                    "modelCustomizationName": "2017488PasqualeVpe..PASQUALE_vPFE_BV..module-2",
                     "properties": {
                       "minCountInstances": 0,
                       "maxCountInstances": null,
                       "initialCount": 0,
-                      "vfModuleLabel": "ADIOD_vPFE_BV"
+                      "vfModuleLabel": "PASQUALE_vPFE_BV"
                     },
                     "inputs": {},
                     "volumeGroupAllowed": true
                   }
                 },
                 "volumeGroups": {
-                  "2017488_adiodvpe0..2017488AdiodVpe..ADIOD_vRE_BV..module-1": {
+                  "2017488_pasqualevpe0..2017488PasqualeVpe..PASQUALE_vRE_BV..module-1": {
                     "uuid": "25284168-24bb-4698-8cb4-3f509146eca5",
                     "invariantUuid": "7253ff5c-97f0-4b8b-937c-77aeb4d79aa1",
                     "customizationUuid": "f7e7c365-60cf-49a9-9ebf-a1aa11b9d401",
                     "description": null,
-                    "name": "2017488AdiodVpe..ADIOD_vRE_BV..module-1",
+                    "name": "2017488PasqualeVpe..PASQUALE_vRE_BV..module-1",
                     "version": "6",
-                    "modelCustomizationName": "2017488AdiodVpe..ADIOD_vRE_BV..module-1",
+                    "modelCustomizationName": "2017488PasqualeVpe..PASQUALE_vRE_BV..module-1",
                     "properties": {
                       "minCountInstances": 0,
                       "maxCountInstances": null,
                       "initialCount": 0,
-                      "vfModuleLabel": "ADIOD_vRE_BV"
+                      "vfModuleLabel": "PASQUALE_vRE_BV"
                     },
                     "inputs": {
-                      "adiodvpe0_bandwidth": {
+                      "pasqualevpe0_bandwidth": {
                         "type": "string",
                         "description": "Requested VPE bandwidth",
                         "entry_schema": null,
                         "inputProperties": {
                           "sourceType": "HEAT",
-                          "vfModuleLabel": "ADIOD_vRE_BV",
+                          "vfModuleLabel": "PASQUALE_vRE_BV",
                           "paramName": "bandwidth"
                         },
                         "constraints": null,
                         "required": true,
                         "default": "10"
                       },
-                      "2017488_adiodvpe0_vnf_instance_name": {
+                      "2017488_pasqualevpe0_vnf_instance_name": {
                         "type": "string",
                         "description": "The hostname assigned to the vpe.",
                         "entry_schema": null,
                         "inputProperties": {
                           "sourceType": "HEAT",
-                          "vfModuleLabel": "ADIOD_vRE_BV",
+                          "vfModuleLabel": "PASQUALE_vRE_BV",
                           "paramName": "vnf_instance_name"
                         },
                         "constraints": null,
                         "required": true,
                         "default": "mtnj309me6"
                       },
-                      "2017488_adiodvpe0_vnf_config_template_version": {
+                      "2017488_pasqualevpe0_vnf_config_template_version": {
                         "type": "string",
                         "description": "VPE Software Version",
                         "entry_schema": null,
                         "inputProperties": {
                           "sourceType": "HEAT",
-                          "vfModuleLabel": "ADIOD_vRE_BV",
+                          "vfModuleLabel": "PASQUALE_vRE_BV",
                           "paramName": "vnf_config_template_version"
                         },
                         "constraints": null,
                         "required": true,
                         "default": "17.2"
                       },
-                      "2017488_adiodvpe0_AIC_CLLI": {
+                      "2017488_pasqualevpe0_AIC_CLLI": {
                         "type": "string",
                         "description": "AIC Site CLLI",
                         "entry_schema": null,
                         "inputProperties": {
                           "sourceType": "HEAT",
-                          "vfModuleLabel": "ADIOD_vRE_BV",
+                          "vfModuleLabel": "PASQUALE_vRE_BV",
                           "paramName": "AIC_CLLI"
                         },
                         "constraints": null,
                         "required": true,
                         "default": "ATLMY8GA"
                       },
-                      "adiodvpe0_bandwidth_units": {
+                      "pasqualevpe0_bandwidth_units": {
                         "type": "string",
                         "description": "Units of bandwidth",
                         "entry_schema": null,
                         "inputProperties": {
                           "sourceType": "HEAT",
-                          "vfModuleLabel": "ADIOD_vRE_BV",
+                          "vfModuleLabel": "PASQUALE_vRE_BV",
                           "paramName": "bandwidth_units"
                         },
                         "constraints": null,
@@ -1186,19 +1181,19 @@ class MockReduxStore<T> {
                       }
                     }
                   },
-                  "2017488_adiodvpe0..2017488AdiodVpe..ADIOD_vPFE_BV..module-2": {
+                  "2017488_pasqualevpe0..2017488PasqualeVpe..PASQUALE_vPFE_BV..module-2": {
                     "uuid": "0a0dd9d4-31d3-4c3a-ae89-a02f383e6a9a",
                     "invariantUuid": "eff8cc59-53a1-4101-aed7-8cf24ecf8339",
                     "customizationUuid": "3cd946bb-50e0-40d8-96d3-c9023520b557",
                     "description": null,
-                    "name": "2017488AdiodVpe..ADIOD_vPFE_BV..module-2",
+                    "name": "2017488PasqualeVpe..PASQUALE_vPFE_BV..module-2",
                     "version": "6",
-                    "modelCustomizationName": "2017488AdiodVpe..ADIOD_vPFE_BV..module-2",
+                    "modelCustomizationName": "2017488PasqualeVpe..PASQUALE_vPFE_BV..module-2",
                     "properties": {
                       "minCountInstances": 0,
                       "maxCountInstances": null,
                       "initialCount": 0,
-                      "vfModuleLabel": "ADIOD_vPFE_BV"
+                      "vfModuleLabel": "PASQUALE_vPFE_BV"
                     },
                     "inputs": {}
                   }
@@ -1282,81 +1277,81 @@ class MockReduxStore<T> {
                 "modelCustomizationName": "ExtVL 0"
               }
             },
-            "collectionResource": {},
+            "collectionResources": {},
             "configurations": {},
             "fabricConfigurations": {},
             "serviceProxies": {},
             "vfModules": {
-              "2017488_adiodvpe0..2017488AdiodVpe..ADIOD_vRE_BV..module-1": {
+              "2017488_pasqualevpe0..2017488PasqualeVpe..PASQUALE_vRE_BV..module-1": {
                 "uuid": "25284168-24bb-4698-8cb4-3f509146eca5",
                 "invariantUuid": "7253ff5c-97f0-4b8b-937c-77aeb4d79aa1",
                 "customizationUuid": "f7e7c365-60cf-49a9-9ebf-a1aa11b9d401",
                 "description": null,
-                "name": "2017488AdiodVpe..ADIOD_vRE_BV..module-1",
+                "name": "2017488PasqualeVpe..PASQUALE_vRE_BV..module-1",
                 "version": "6",
-                "modelCustomizationName": "2017488AdiodVpe..ADIOD_vRE_BV..module-1",
+                "modelCustomizationName": "2017488PasqualeVpe..PASQUALE_vRE_BV..module-1",
                 "properties": {
                   "minCountInstances": 0,
                   "maxCountInstances": null,
                   "initialCount": 0,
-                  "vfModuleLabel": "ADIOD_vRE_BV"
+                  "vfModuleLabel": "PASQUALE_vRE_BV"
                 },
                 "inputs": {
-                  "adiodvpe0_bandwidth": {
+                  "pasqualevpe0_bandwidth": {
                     "type": "string",
                     "description": "Requested VPE bandwidth",
                     "entry_schema": null,
                     "inputProperties": {
                       "sourceType": "HEAT",
-                      "vfModuleLabel": "ADIOD_vRE_BV",
+                      "vfModuleLabel": "PASQUALE_vRE_BV",
                       "paramName": "bandwidth"
                     },
                     "constraints": null,
                     "required": true,
                     "default": "10"
                   },
-                  "2017488_adiodvpe0_vnf_instance_name": {
+                  "2017488_pasqualevpe0_vnf_instance_name": {
                     "type": "string",
                     "description": "The hostname assigned to the vpe.",
                     "entry_schema": null,
                     "inputProperties": {
                       "sourceType": "HEAT",
-                      "vfModuleLabel": "ADIOD_vRE_BV",
+                      "vfModuleLabel": "PASQUALE_vRE_BV",
                       "paramName": "vnf_instance_name"
                     },
                     "constraints": null,
                     "required": true,
                     "default": "mtnj309me6"
                   },
-                  "2017488_adiodvpe0_vnf_config_template_version": {
+                  "2017488_pasqualevpe0_vnf_config_template_version": {
                     "type": "string",
                     "description": "VPE Software Version",
                     "entry_schema": null,
                     "inputProperties": {
                       "sourceType": "HEAT",
-                      "vfModuleLabel": "ADIOD_vRE_BV",
+                      "vfModuleLabel": "PASQUALE_vRE_BV",
                       "paramName": "vnf_config_template_version"
                     },
                     "constraints": null,
                     "required": true,
                     "default": "17.2"
                   },
-                  "2017488_adiodvpe0_AIC_CLLI": {
+                  "2017488_pasqualevpe0_AIC_CLLI": {
                     "type": "string",
                     "description": "AIC Site CLLI",
                     "entry_schema": null,
-                    "inputProperties": {"sourceType": "HEAT", "vfModuleLabel": "ADIOD_vRE_BV", "paramName": "AIC_CLLI"},
+                    "inputProperties": {"sourceType": "HEAT", "vfModuleLabel": "PASQUALE_vRE_BV", "paramName": "AIC_CLLI"},
                     "constraints": null,
                     "required": true,
                     "default": "ATLMY8GA"
                   },
-                  "adiodvpe0_bandwidth_units": {
+                  "pasqualevpe0_bandwidth_units": {
                     "type": "string",
                     "description": "Units of bandwidth",
                     "entry_schema": null,
                     "inputProperties": {
                       "sourceType": "HEAT",
-                      "vfModuleLabel": "ADIOD_vRE_BV",
+                      "vfModuleLabel": "PASQUALE_vRE_BV",
                       "paramName": "bandwidth_units"
                     },
                     "constraints": null,
@@ -1366,112 +1361,112 @@ class MockReduxStore<T> {
                 },
                 "volumeGroupAllowed": true
               },
-              "2017488_adiodvpe0..2017488AdiodVpe..ADIOD_base_vPE_BV..module-0": {
+              "2017488_pasqualevpe0..2017488PasqualeVpe..PASQUALE_base_vPE_BV..module-0": {
                 "uuid": "f8360508-3f17-4414-a2ed-6bc71161e8db",
                 "invariantUuid": "b34833bb-6aa9-4ad6-a831-70b06367a091",
                 "customizationUuid": "a55961b2-2065-4ab0-a5b7-2fcee1c227e3",
                 "description": null,
-                "name": "2017488AdiodVpe..ADIOD_base_vPE_BV..module-0",
+                "name": "2017488PasqualeVpe..PASQUALE_base_vPE_BV..module-0",
                 "version": "5",
-                "modelCustomizationName": "2017488AdiodVpe..ADIOD_base_vPE_BV..module-0",
+                "modelCustomizationName": "2017488PasqualeVpe..PASQUALE_base_vPE_BV..module-0",
                 "properties": {
                   "minCountInstances": 1,
                   "maxCountInstances": 1,
                   "initialCount": 1,
-                  "vfModuleLabel": "ADIOD_base_vPE_BV"
+                  "vfModuleLabel": "PASQUALE_base_vPE_BV"
                 },
                 "inputs": {},
                 "volumeGroupAllowed": false
               },
-              "2017488_adiodvpe0..2017488AdiodVpe..ADIOD_vPFE_BV..module-2": {
+              "2017488_pasqualevpe0..2017488PasqualeVpe..PASQUALE_vPFE_BV..module-2": {
                 "uuid": "0a0dd9d4-31d3-4c3a-ae89-a02f383e6a9a",
                 "invariantUuid": "eff8cc59-53a1-4101-aed7-8cf24ecf8339",
                 "customizationUuid": "3cd946bb-50e0-40d8-96d3-c9023520b557",
                 "description": null,
-                "name": "2017488AdiodVpe..ADIOD_vPFE_BV..module-2",
+                "name": "2017488PasqualeVpe..PASQUALE_vPFE_BV..module-2",
                 "version": "6",
-                "modelCustomizationName": "2017488AdiodVpe..ADIOD_vPFE_BV..module-2",
+                "modelCustomizationName": "2017488PasqualeVpe..PASQUALE_vPFE_BV..module-2",
                 "properties": {
                   "minCountInstances": 0,
                   "maxCountInstances": null,
                   "initialCount": 0,
-                  "vfModuleLabel": "ADIOD_vPFE_BV"
+                  "vfModuleLabel": "PASQUALE_vPFE_BV"
                 },
                 "inputs": {},
                 "volumeGroupAllowed": true
               }
             },
             "volumeGroups": {
-              "2017488_adiodvpe0..2017488AdiodVpe..ADIOD_vRE_BV..module-1": {
+              "2017488_pasqualevpe0..2017488PasqualeVpe..PASQUALE_vRE_BV..module-1": {
                 "uuid": "25284168-24bb-4698-8cb4-3f509146eca5",
                 "invariantUuid": "7253ff5c-97f0-4b8b-937c-77aeb4d79aa1",
                 "customizationUuid": "f7e7c365-60cf-49a9-9ebf-a1aa11b9d401",
                 "description": null,
-                "name": "2017488AdiodVpe..ADIOD_vRE_BV..module-1",
+                "name": "2017488PasqualeVpe..PASQUALE_vRE_BV..module-1",
                 "version": "6",
-                "modelCustomizationName": "2017488AdiodVpe..ADIOD_vRE_BV..module-1",
+                "modelCustomizationName": "2017488PasqualeVpe..PASQUALE_vRE_BV..module-1",
                 "properties": {
                   "minCountInstances": 0,
                   "maxCountInstances": null,
                   "initialCount": 0,
-                  "vfModuleLabel": "ADIOD_vRE_BV"
+                  "vfModuleLabel": "PASQUALE_vRE_BV"
                 },
                 "inputs": {
-                  "adiodvpe0_bandwidth": {
+                  "pasqualevpe0_bandwidth": {
                     "type": "string",
                     "description": "Requested VPE bandwidth",
                     "entry_schema": null,
                     "inputProperties": {
                       "sourceType": "HEAT",
-                      "vfModuleLabel": "ADIOD_vRE_BV",
+                      "vfModuleLabel": "PASQUALE_vRE_BV",
                       "paramName": "bandwidth"
                     },
                     "constraints": null,
                     "required": true,
                     "default": "10"
                   },
-                  "2017488_adiodvpe0_vnf_instance_name": {
+                  "2017488_pasqualevpe0_vnf_instance_name": {
                     "type": "string",
                     "description": "The hostname assigned to the vpe.",
                     "entry_schema": null,
                     "inputProperties": {
                       "sourceType": "HEAT",
-                      "vfModuleLabel": "ADIOD_vRE_BV",
+                      "vfModuleLabel": "PASQUALE_vRE_BV",
                       "paramName": "vnf_instance_name"
                     },
                     "constraints": null,
                     "required": true,
                     "default": "mtnj309me6"
                   },
-                  "2017488_adiodvpe0_vnf_config_template_version": {
+                  "2017488_pasqualevpe0_vnf_config_template_version": {
                     "type": "string",
                     "description": "VPE Software Version",
                     "entry_schema": null,
                     "inputProperties": {
                       "sourceType": "HEAT",
-                      "vfModuleLabel": "ADIOD_vRE_BV",
+                      "vfModuleLabel": "PASQUALE_vRE_BV",
                       "paramName": "vnf_config_template_version"
                     },
                     "constraints": null,
                     "required": true,
                     "default": "17.2"
                   },
-                  "2017488_adiodvpe0_AIC_CLLI": {
+                  "2017488_pasqualevpe0_AIC_CLLI": {
                     "type": "string",
                     "description": "AIC Site CLLI",
                     "entry_schema": null,
-                    "inputProperties": {"sourceType": "HEAT", "vfModuleLabel": "ADIOD_vRE_BV", "paramName": "AIC_CLLI"},
+                    "inputProperties": {"sourceType": "HEAT", "vfModuleLabel": "PASQUALE_vRE_BV", "paramName": "AIC_CLLI"},
                     "constraints": null,
                     "required": true,
                     "default": "ATLMY8GA"
                   },
-                  "adiodvpe0_bandwidth_units": {
+                  "pasqualevpe0_bandwidth_units": {
                     "type": "string",
                     "description": "Units of bandwidth",
                     "entry_schema": null,
                     "inputProperties": {
                       "sourceType": "HEAT",
-                      "vfModuleLabel": "ADIOD_vRE_BV",
+                      "vfModuleLabel": "PASQUALE_vRE_BV",
                       "paramName": "bandwidth_units"
                     },
                     "constraints": null,
@@ -1480,19 +1475,19 @@ class MockReduxStore<T> {
                   }
                 }
               },
-              "2017488_adiodvpe0..2017488AdiodVpe..ADIOD_vPFE_BV..module-2": {
+              "2017488_pasqualevpe0..2017488PasqualeVpe..PASQUALE_vPFE_BV..module-2": {
                 "uuid": "0a0dd9d4-31d3-4c3a-ae89-a02f383e6a9a",
                 "invariantUuid": "eff8cc59-53a1-4101-aed7-8cf24ecf8339",
                 "customizationUuid": "3cd946bb-50e0-40d8-96d3-c9023520b557",
                 "description": null,
-                "name": "2017488AdiodVpe..ADIOD_vPFE_BV..module-2",
+                "name": "2017488PasqualeVpe..PASQUALE_vPFE_BV..module-2",
                 "version": "6",
-                "modelCustomizationName": "2017488AdiodVpe..ADIOD_vPFE_BV..module-2",
+                "modelCustomizationName": "2017488PasqualeVpe..PASQUALE_vPFE_BV..module-2",
                 "properties": {
                   "minCountInstances": 0,
                   "maxCountInstances": null,
                   "initialCount": 0,
-                  "vfModuleLabel": "ADIOD_vPFE_BV"
+                  "vfModuleLabel": "PASQUALE_vPFE_BV"
                 },
                 "inputs": {}
               }
@@ -1503,21 +1498,21 @@ class MockReduxStore<T> {
         "serviceInstance": {
           "6e59c5de-f052-46fa-aa7e-2fca9d674c44": {
             "vnfs": {
-              "VF_vMee 0": {
+              "VF_vGeraldine 0": {
                 "rollbackOnFailure": "true",
                 "vfModules": {
-                  "vf_vmee0..VfVmee..base_vmme..module-0": {
-                    "vf_vmee0..VfVmee..base_vmme..module-0vmvzo": {
+                  "vf_vgeraldine0..VfVgeraldine..base_vflorence..module-0": {
+                    "vf_vgeraldine0..VfVgeraldine..base_vflorence..module-0vmvzo": {
                       "isMissingData": false,
                       "sdncPreReload": null,
                       "modelInfo": {
                         "modelType": "VFmodule",
                         "modelInvariantId": "a6f9e51a-2b35-416a-ae15-15e58d61f36d",
                         "modelVersionId": "a27f5cfc-7f12-4f99-af08-0af9c3885c87",
-                        "modelName": "VfVmee..base_vmme..module-0",
+                        "modelName": "VfVgeraldine..base_vflorence..module-0",
                         "modelVersion": "2",
                         "modelCustomizationId": "f8c040f1-7e51-4a11-aca8-acf256cfd861",
-                        "modelCustomizationName": "VfVmee..base_vmme..module-0"
+                        "modelCustomizationName": "VfVgeraldine..base_vflorence..module-0"
                       },
                       "instanceParams": [{}],
                       "trackById": "wmtm6sy2uj"
@@ -1525,8 +1520,8 @@ class MockReduxStore<T> {
                   }
                 },
                 "isMissingData": true,
-                "originalName": "VF_vMee 0",
-                "vnfStoreKey": "VF_vMee 0",
+                "originalName": "VF_vGeraldine 0",
+                "vnfStoreKey": "VF_vGeraldine 0",
                 "trackById": "p3wk448m5do",
                 "uuid": "d6557200-ecf2-4641-8094-5393ae3aae60",
                 "productFamilyId": "36b4733a-53f4-4cc8-8ff0-9172e5fc4b8e",
@@ -1538,9 +1533,9 @@ class MockReduxStore<T> {
                   "modelType": "VF",
                   "modelInvariantId": "4160458e-f648-4b30-a176-43881ffffe9e",
                   "modelVersionId": "6e59c5de-f052-46fa-aa7e-2fca9d674c44",
-                  "modelName": "VF_vMee",
+                  "modelName": "VF_vGeraldine",
                   "modelVersion": "2.0",
-                  "modelCustomizationName": "VF_vMee 0"
+                  "modelCustomizationName": "VF_vGeraldine 0"
                 }
               }
             },
@@ -1658,39 +1653,39 @@ class MockReduxStore<T> {
               }
             },
             "vnfs": {
-              "2017-488_ADIOD-vPE 0": {
+              "2017-488_PASQUALE-vPE 0": {
                 "rollbackOnFailure": "true",
                 "vfModules": {
-                  "2017488_adiodvpe0..2017488AdiodVpe..ADIOD_vRE_BV..module-1": {
-                    "2017488_adiodvpe0..2017488AdiodVpe..ADIOD_vRE_BV..module-1sgoqi": {
+                  "2017488_pasqualevpe0..2017488PasqualeVpe..PASQUALE_vRE_BV..module-1": {
+                    "2017488_pasqualevpe0..2017488PasqualeVpe..PASQUALE_vRE_BV..module-1sgoqi": {
                       "instanceName": "yoav",
                       "volumeGroupName": "123",
                       "modelInfo": {
                         "modelInvariantId": "7253ff5c-97f0-4b8b-937c-77aeb4d79aa1",
                         "modelVersionId": "25284168-24bb-4698-8cb4-3f509146eca5",
-                        "modelName": "2017488AdiodVpe..ADIOD_vRE_BV..module-1",
+                        "modelName": "2017488PasqualeVpe..PASQUALE_vRE_BV..module-1",
                         "modelVersion": "6",
                         "modelCustomizationId": "f7e7c365-60cf-49a9-9ebf-a1aa11b9d401",
-                        "modelCustomizationName": "2017488AdiodVpe..ADIOD_vRE_BV..module-1",
+                        "modelCustomizationName": "2017488PasqualeVpe..PASQUALE_vRE_BV..module-1",
                         "uuid": "25284168-24bb-4698-8cb4-3f509146eca5"
                       },
                       "uuid": "25284168-24bb-4698-8cb4-3f509146eca5",
                       "isMissingData": false,
                       "instanceParams": [{
-                        "adiodvpe0_bandwidth": "10",
-                        "2017488_adiodvpe0_vnf_instance_name": "mtnj309me6",
-                        "2017488_adiodvpe0_vnf_config_template_version": "17.2",
-                        "2017488_adiodvpe0_AIC_CLLI": "ATLMY8GA",
-                        "adiodvpe0_bandwidth_units": "Gbps"
+                        "pasqualevpe0_bandwidth": "10",
+                        "2017488_pasqualevpe0_vnf_instance_name": "mtnj309me6",
+                        "2017488_pasqualevpe0_vnf_config_template_version": "17.2",
+                        "2017488_pasqualevpe0_AIC_CLLI": "ATLMY8GA",
+                        "pasqualevpe0_bandwidth_units": "Gbps"
                       }]
                     }
                   }
                 },
                 "isMissingData": false,
-                "originalName": "2017-488_ADIOD-vPE 0",
-                "vnfStoreKey": "2017-488_ADIOD-vPE 0",
+                "originalName": "2017-488_PASQUALE-vPE 0",
+                "vnfStoreKey": "2017-488_PASQUALE-vPE 0",
                 "trackById": "o65b26t2thj",
-                "instanceName": "2017488_ADIODvPE",
+                "instanceName": "2017488_PASQUALEvPE",
                 "productFamilyId": "ebc3bc3d-62fd-4a3f-a037-f619df4ff034",
                 "lcpCloudRegionId": "hvf6",
                 "tenantId": "bae71557c5bb4d5aac6743a4e5f1d054",
@@ -1700,16 +1695,16 @@ class MockReduxStore<T> {
                 "modelInfo": {
                   "modelInvariantId": "72e465fe-71b1-4e7b-b5ed-9496118ff7a8",
                   "modelVersionId": "69e09f68-8b63-4cc9-b9ff-860960b5db09",
-                  "modelName": "2017-488_ADIOD-vPE",
+                  "modelName": "2017-488_PASQUALE-vPE",
                   "modelVersion": "5.0",
                   "modelCustomizationId": "1da7b585-5e61-4993-b95e-8e6606c81e45",
-                  "modelCustomizationName": "2017-488_ADIOD-vPE 0",
+                  "modelCustomizationName": "2017-488_PASQUALE-vPE 0",
                   "uuid": "69e09f68-8b63-4cc9-b9ff-860960b5db09"
                 },
                 "uuid": "69e09f68-8b63-4cc9-b9ff-860960b5db09"
               }
             },
-            "instanceParams": [{"2017488_adiodvpe0_ASN": "AV_vPE"}],
+            "instanceParams": [{"2017488_pasqualevpe0_ASN": "AV_vPE"}],
             "validationCounter": 0,
             "existingNames": {"123": "", "instancename": "", "yoav": "", "extvl": ""},
             "existingVNFCounterMap": {"69e09f68-8b63-4cc9-b9ff-860960b5db09": 1},
@@ -1719,7 +1714,7 @@ class MockReduxStore<T> {
             "subscriptionServiceType": "TYLER SILVIA",
             "owningEntityId": "d61e6f2d-12fa-4cc2-91df-7c244011d6fc",
             "productFamilyId": "17cc1042-527b-11e6-beb8-9e71128cae77",
-            "lcpCloudRegionId": "JANET25",
+            "lcpCloudRegionId": "AAIAIC25",
             "tenantId": "092eb9e8e4b7412e8787dd091bc58e86",
             "aicZoneId": "JAG1",
             "projectName": null,
@@ -1750,12 +1745,12 @@ class MockReduxStore<T> {
         },
         "lcpRegionsAndTenants": {
           "lcpRegionList": [{
-            "id": "JANET25",
-            "name": "JANET25",
+            "id": "AAIAIC25",
+            "name": "AAIAIC25",
             "isPermitted": true
           }, {"id": "hvf6", "name": "hvf6", "isPermitted": true}],
           "lcpRegionsTenantsMap": {
-            "JANET25": [{
+            "AAIAIC25": [{
               "id": "092eb9e8e4b7412e8787dd091bc58e86",
               "name": "USP-SIP-IC-24335-T-01",
               "isPermitted": true
@@ -1765,23 +1760,123 @@ class MockReduxStore<T> {
               "name": "AIN Web Tool-15-D-testalexandria",
               "isPermitted": true
             }, {
-              "id": "d0a3e3f2964542259d155a81c41aadc3",
-              "name": "test-hvf6-09",
+              "id": "229bcdc6eaeb4ca59d55221141d01f8e",
+              "name": "AIN Web Tool-15-D-STTest2",
+              "isPermitted": true
+            }, {
+              "id": "1178612d2b394be4834ad77f567c0af2",
+              "name": "AIN Web Tool-15-D-SSPtestcustome",
+              "isPermitted": true
+            }, {
+              "id": "19c5ade915eb461e8af52fb2fd8cd1f2",
+              "name": "AIN Web Tool-15-D-UncheckedEcopm",
+              "isPermitted": true
+            }, {
+              "id": "de007636e25249238447264a988a927b",
+              "name": "AIN Web Tool-15-D-dfsdf",
+              "isPermitted": true
+            }, {
+              "id": "62f29b3613634ca6a3065cbe0e020c44",
+              "name": "AIN/SMS-16-D-Multiservices1",
+              "isPermitted": true
+            }, {
+              "id": "649289e30d3244e0b48098114d63c2aa",
+              "name": "AIN Web Tool-15-D-SSPST66",
+              "isPermitted": true
+            }, {
+              "id": "3f21eeea6c2c486bba31dab816c05a32",
+              "name": "AIN Web Tool-15-D-ASSPST47",
+              "isPermitted": true
+            }, {
+              "id": "f60ce21d3ee6427586cff0d22b03b773",
+              "name": "CESAR-100-D-sspjg67246",
+              "isPermitted": true
+            }, {
+              "id": "8774659e425f479895ae091bb5d46560",
+              "name": "CESAR-100-D-sspjg68359",
+              "isPermitted": true
+            }, {
+              "id": "624eb554b0d147c19ff8885341760481",
+              "name": "AINWebTool-15-D-iftach",
+              "isPermitted": true
+            }, {
+              "id": "214f55f5fc414c678059c383b03e4962",
+              "name": "CESAR-100-D-sspjg612401",
+              "isPermitted": true
+            }, {
+              "id": "c90666c291664841bb98e4d981ff1db5",
+              "name": "CESAR-100-D-sspjg621340",
+              "isPermitted": true
+            }, {
+              "id": "ce5b6bc5c7b348e1bf4b91ac9a174278",
+              "name": "sspjg621351cloned",
+              "isPermitted": true
+            }, {
+              "id": "b386b768a3f24c8e953abbe0b3488c02",
+              "name": "AINWebTool-15-D-eteancomp",
+              "isPermitted": true
+            }, {
+              "id": "dc6c4dbfd225474e9deaadd34968646c",
+              "name": "AINWebTool-15-T-SPFET",
+              "isPermitted": true
+            }, {
+              "id": "02cb5030e9914aa4be120bd9ed1e19eb",
+              "name": "AINWebTool-15-X-eeweww",
+              "isPermitted": true
+            }, {
+              "id": "f2f3830e4c984d45bcd00e1a04158a79",
+              "name": "CESAR-100-D-spjg61909",
+              "isPermitted": true
+            }, {
+              "id": "05b91bd5137f4929878edd965755c06d",
+              "name": "CESAR-100-D-sspjg621512cloned",
+              "isPermitted": true
+            }, {
+              "id": "7002fbe8482d4a989ddf445b1ce336e0",
+              "name": "AINWebTool-15-X-vdr",
+              "isPermitted": true
+            }, {
+              "id": "4008522be43741dcb1f5422022a2aa0b",
+              "name": "AINWebTool-15-D-ssasa",
+              "isPermitted": true
+            }, {
+              "id": "f44e2e96a1b6476abfda2fa407b00169",
+              "name": "AINWebTool-15-D-PFNPT",
+              "isPermitted": true
+            }, {
+              "id": "b69a52bec8a84669a37a1e8b72708be7",
+              "name": "AINWebTool-15-X-vdre",
+              "isPermitted": true
+            }, {
+              "id": "fac7d9fd56154caeb9332202dcf2969f",
+              "name": "AINWebTool-15-X-NONPODECOMP",
+              "isPermitted": true
+            }, {
+              "id": "2d34d8396e194eb49969fd61ffbff961",
+              "name": "DN5242-Nov16-T5",
+              "isPermitted": true
+            }, {
+              "id": "cb42a77ff45b48a8b8deb83bb64acc74",
+              "name": "ro-T11",
               "isPermitted": true
             }, {
               "id": "fa45ca53c80b492fa8be5477cd84fc2b",
               "name": "ro-T112",
               "isPermitted": true
             }, {
-              "id": "cbb99fe4ada84631b7baf046b6fd2044",
-              "name": "DN5242-Nov16-T3",
+              "id": "4914ab0ab3a743e58f0eefdacc1dde77",
+              "name": "DN5242-Nov21-T1",
+              "isPermitted": true
+            }, {
+              "id": "d0a3e3f2964542259d155a81c41aadc3",
+              "name": "test-hvf6-09",
               "isPermitted": true
-            }]
+            }, {"id": "cbb99fe4ada84631b7baf046b6fd2044", "name": "DN5242-Nov16-T3", "isPermitted": true}]
           }
         },
         "productFamilies": [{
           "id": "ebc3bc3d-62fd-4a3f-a037-f619df4ff034",
-          "name": "SCOTTIE",
+          "name": "ERICA",
           "isPermitted": true
         }, {
           "id": "17cc1042-527b-11e6-beb8-9e71128cae77",
@@ -1797,7 +1892,7 @@ class MockReduxStore<T> {
           "isPermitted": true
         }, {"id": "vTerrance", "name": "vTerrance", "isPermitted": true}, {
           "id": "323d69d9-2efe-4r45-ay0a-89ea7ard4e6f",
-          "name": "vSCP",
+          "name": "vEsmeralda",
           "isPermitted": true
         }, {
           "id": "a9a77d5a-123e-4ca2-9eb9-0b015d2ee0fb",
@@ -1820,7 +1915,7 @@ class MockReduxStore<T> {
           "name": "TYLER SILVIA",
           "isPermitted": true
         }, {"id": "b6a3f28c-eebf-494c-a900-055cc7c874ce", "name": "VROUTER", "isPermitted": true}, {
-          "id": "Cisneros",
+          "id": "vMuriel",
           "name": "vMuriel",
           "isPermitted": true
         }, {
@@ -1835,7 +1930,7 @@ class MockReduxStore<T> {
           "id": "vSalvatore",
           "name": "vSalvatore",
           "isPermitted": true
-        }, {"id": "d7bb0a21-66f2-4e6d-87d9-9ef3ced63ae4", "name": "Josefina", "isPermitted": true}, {
+        }, {"id": "d7bb0a21-66f2-4e6d-87d9-9ef3ced63ae4", "name": "JOSEFINA", "isPermitted": true}, {
           "id": "vHubbard",
           "name": "vHubbard",
           "isPermitted": true
@@ -1855,21 +1950,21 @@ class MockReduxStore<T> {
             "isPermitted": false
           }, {"id": "5", "name": "Kennedy", "isPermitted": false}, {
             "id": "6",
-            "name": "vSEGW",
+            "name": "vPorfirio",
             "isPermitted": false
           }, {"id": "7", "name": "vVM", "isPermitted": false}, {
             "id": "8",
             "name": "vOTA",
             "isPermitted": false
-          }, {"id": "9", "name": "vMME", "isPermitted": false}, {
+          }, {"id": "9", "name": "vFLORENCE", "isPermitted": false}, {
             "id": "10",
             "name": "vMNS",
             "isPermitted": false
-          }, {"id": "11", "name": "vSCP", "isPermitted": false}, {
+          }, {"id": "11", "name": "vEsmeralda", "isPermitted": false}, {
             "id": "12",
             "name": "VPMS",
             "isPermitted": false
-          }, {"id": "13", "name": "vMMSC", "isPermitted": false}, {
+          }, {"id": "13", "name": "vWINIFRED", "isPermitted": false}, {
             "id": "14",
             "name": "SSD",
             "isPermitted": false
@@ -1883,28 +1978,199 @@ class MockReduxStore<T> {
             "isPermitted": false
           }]
         },
-        "aicZones": [
-          {
-            "id": "NFT1",
-            "name": "NFTJSSSS-NFT1"
-          },
-          {
-            "id": "JAG1",
-            "name": "YUDFJULP-JAG1"
-          },
-          {
-            "id": "YYY1",
-            "name": "UUUAIAAI-YYY1"
-          },
-          {
-            "id": "AVT1",
-            "name": "AVTRFLHD-AVT1"
-          },
-          {
-            "id": "ATL34",
-            "name": "ATLSANAI-ATL34"
-          }
-        ],
+        "aicZones": [{"id": "NFT1", "name": "NFTJSSSS-NFT1"}, {"id": "JAG1", "name": "YUDFJULP-JAG1"}, {
+          "id": "YYY1",
+          "name": "UUUAIAAI-YYY1"
+        }, {"id": "BAN1", "name": "VSDKYUTP-BAN1"}, {"id": "DKJ1", "name": "DKJSJDKA-DKJ1"}, {
+          "id": "MCS1",
+          "name": "ASACMAMS-MCS1"
+        }, {"id": "UIO1", "name": "uioclli1-UIO1"}, {"id": "RAJ1", "name": "YGBIJNLQ-RAJ1"}, {
+          "id": "OPA1",
+          "name": "opaclli1-OPA1"
+        }, {"id": "SDE1", "name": "ZXCVBNMA-SDE1"}, {"id": "VEN2", "name": "FGHJUHIL-VEN2"}, {
+          "id": "ORL1",
+          "name": "ORLDFLMA-ORL1"
+        }, {"id": "JAD1", "name": "JADECLLI-JAD1"}, {"id": "ZXL1", "name": "LWLWCANN-ZXL1"}, {
+          "id": "CKL1",
+          "name": "CLKSKCKK-CKL1"
+        }, {"id": "SDF1", "name": "sdfclli1-SDF1"}, {"id": "RAD1", "name": "RADICAL1-RAD1"}, {
+          "id": "KIT1",
+          "name": "BHYJFGLN-KIT1"
+        }, {"id": "REL1", "name": "INGERFGT-REL1"}, {"id": "JNL1", "name": "CJALSDAC-JNL1"}, {
+          "id": "OLK1",
+          "name": "OLKOLKLS-OLK1"
+        }, {"id": "CHI1", "name": "CHILLIWE-CHI1"}, {"id": "UUU4", "name": "UUUAAAUU-UUU4"}, {
+          "id": "TUF1",
+          "name": "TUFCLLI1-TUF1"
+        }, {"id": "KJN1", "name": "CKALDKSA-KJN1"}, {"id": "SAM1", "name": "SNDGCA64-SAN1"}, {
+          "id": "SCK1",
+          "name": "SCKSCKSK-SCK1"
+        }, {"id": "HJH1", "name": "AOEEQQQD-HJH1"}, {"id": "HGD1", "name": "SDFQWHGD-HGD1"}, {
+          "id": "KOR1",
+          "name": "HYFLNBVT-KOR1"
+        }, {"id": "ATL43", "name": "AICLOCID-ATL43"}, {"id": "ATL54", "name": "AICFTAAI-ATL54"}, {
+          "id": "ATL66",
+          "name": "CLLIAAII-ATL66"
+        }, {"id": "VEL1", "name": "BNMLKUIK-VEL1"}, {"id": "ICC1", "name": "SANJITAT-ICC1"}, {
+          "id": "MNT11",
+          "name": "WSXEFBTH-MNT11"
+        }, {"id": "DEF2", "name": "WSBHGTYL-DEF2"}, {"id": "MAD11", "name": "SDFQWGKL-MAD11"}, {
+          "id": "OLG1",
+          "name": "OLHOLHOL-OLG1"
+        }, {"id": "GAR1", "name": "NGFVSJKO-GAR1"}, {"id": "SAN22", "name": "GNVLSCTL-SAN22"}, {
+          "id": "HRG1",
+          "name": "HRGHRGGS-HRG1"
+        }, {"id": "JCS1", "name": "JCSJSCJS-JCS1"}, {"id": "DHA12", "name": "WSXEDECF-DHA12"}, {
+          "id": "HJE1",
+          "name": "AOEEWWWD-HJE1"
+        }, {"id": "NCA1", "name": "NCANCANN-NCA1"}, {"id": "IOP1", "name": "iopclli1-IOP1"}, {
+          "id": "RTY1",
+          "name": "rtyclli1-RTY1"
+        }, {"id": "KAP1", "name": "HIOUYTRQ-KAP1"}, {"id": "ZEN1", "name": "ZENCLLI1-ZEN1"}, {
+          "id": "HKA1",
+          "name": "JAKHLASS-HKA1"
+        }, {"id": "CQK1", "name": "CQKSCAKK-CQK1"}, {"id": "SAI1", "name": "UBEKQLPD-SAI1"}, {
+          "id": "ERT1",
+          "name": "ertclli1-ERT1"
+        }, {"id": "IBB1", "name": "PLMKOIJU-IBB1"}, {"id": "TIR2", "name": "PLKINHYI-TIR2"}, {
+          "id": "HSD1",
+          "name": "CHASKCDS-HSD1"
+        }, {"id": "SLF78", "name": "SDCTLFN1-SLF78"}, {"id": "SEE78", "name": "SDCTEEE4-SEE78"}, {
+          "id": "SAN13",
+          "name": "TOKYJPFA-SAN13"
+        }, {"id": "SAA78", "name": "SDCTAAA1-SAA78"}, {"id": "LUC1", "name": "ATLDFGYC-LUC1"}, {
+          "id": "AMD13",
+          "name": "MEMATLAN-AMD13"
+        }, {"id": "TOR1", "name": "TOROONXN-TOR1"}, {"id": "QWE1", "name": "QWECLLI1-QWE1"}, {
+          "id": "ZOG1",
+          "name": "ZOGASTRO-ZOG1"
+        }, {"id": "CAL33", "name": "CALIFORN-CAL33"}, {"id": "SHH78", "name": "SDIT1HHH-SHH78"}, {
+          "id": "DSA1",
+          "name": "LKJHGFDS-DSA1"
+        }, {"id": "CLG1", "name": "CLGRABAD-CLG1"}, {"id": "BNA1", "name": "BNARAGBK-BNA1"}, {
+          "id": "ATL84",
+          "name": "CANTTCOC-ATL84"
+        }, {"id": "APP1", "name": "WBHGTYUI-APP1"}, {"id": "RJN1", "name": "RJNRBZAW-RJN1"}, {
+          "id": "EHH78",
+          "name": "SDCSHHH5-EHH78"
+        }, {"id": "mac10", "name": "PKGTESTF-mac10"}, {"id": "SXB78", "name": "SDCTGXB1-SXB78"}, {
+          "id": "SAX78",
+          "name": "SDCTAXG1-SAX78"
+        }, {"id": "SYD1", "name": "SYDNAUBV-SYD1"}, {"id": "TOK1", "name": "TOKYJPFA-TOK1"}, {
+          "id": "KGM2",
+          "name": "KGMTNC20-KGM2"
+        }, {"id": "DCC1b", "name": "POIUYTGH-DCC1b"}, {"id": "SKK78", "name": "SDCTKKK1-SKK78"}, {
+          "id": "SGG78",
+          "name": "SDCTGGG1-SGG78"
+        }, {"id": "SJJ78", "name": "SDCTJJJ1-SJJ78"}, {"id": "SBX78", "name": "SDCTBXG1-SBX78"}, {
+          "id": "LAG1",
+          "name": "LARGIZON-LAG1"
+        }, {"id": "IAA1", "name": "QAZXSWED-IAA1"}, {"id": "POI1", "name": "PLMNJKIU-POI1"}, {
+          "id": "LAG1a",
+          "name": "LARGIZON-LAG1a"
+        }, {"id": "PBL1", "name": "PBLAPBAI-PBL1"}, {"id": "LAG45", "name": "LARGIZON-LAG1a"}, {
+          "id": "MAR1",
+          "name": "MNBVCXZM-MAR1"
+        }, {"id": "HST70", "name": "HSTNTX70-HST70"}, {"id": "DCC1a", "name": "POIUYTGH-DCC1a"}, {
+          "id": "TOL1",
+          "name": "TOLDOH21-TOL1"
+        }, {"id": "LON1", "name": "LONEENCO-LON1"}, {"id": "SJU78", "name": "SDIT1JUB-SJU78"}, {
+          "id": "STN27",
+          "name": "HSTNTX01-STN27"
+        }, {"id": "SSW56", "name": "ss8126GT-SSW56"}, {"id": "SBB78", "name": "SDIT1BBB-SBB78"}, {
+          "id": "DCC3",
+          "name": "POIUYTGH-DCC3"
+        }, {"id": "GNV1", "name": "GNVLSCTL-GNV1"}, {"id": "WAS1", "name": "WASHDCSW-WAS1"}, {
+          "id": "TOY1",
+          "name": "TORYONNZ-TOY1"
+        }, {"id": "STT1", "name": "STTLWA02-STT1"}, {"id": "STG1", "name": "STTGGE62-STG1"}, {
+          "id": "SLL78",
+          "name": "SDCTLLL1-SLL78"
+        }, {"id": "SBU78", "name": "SDIT1BUB-SBU78"}, {"id": "ATL2", "name": "ATLNGANW-ATL2"}, {
+          "id": "BOT1",
+          "name": "BOTHWAKY-BOT1"
+        }, {"id": "SNG1", "name": "SNGPSIAU-SNG1"}, {"id": "NYC1", "name": "NYCMNY54-NYC1"}, {
+          "id": "LAG1b",
+          "name": "LARGIZON-LAG1b"
+        }, {"id": "AMD15", "name": "AMDFAA01-AMD15"}, {"id": "SNA1", "name": "SNANTXCA-SNA1"}, {
+          "id": "PLT1",
+          "name": "PLTNCA60-PLT1"
+        }, {"id": "TLP1", "name": "TLPNXM18-TLP1"}, {"id": "SDD81", "name": "SAIT1DD6-SDD81"}, {
+          "id": "DCC1",
+          "name": "POIUYTGH-DCC1"
+        }, {"id": "DCC2", "name": "POIUYTGH-DCC2"}, {"id": "OKC1", "name": "OKCBOK55-OKC1"}, {
+          "id": "PAR1",
+          "name": "PARSFRCG-PAR1"
+        }, {"id": "TES36", "name": "ABCEETES-TES36"}, {"id": "COM1", "name": "PLMKOPIU-COM1"}, {
+          "id": "ANI1",
+          "name": "ATLNGTRE-ANI1"
+        }, {"id": "SDG78", "name": "SDIT1BDG-SDG78"}, {"id": "mac20", "name": "PKGTESTF-mac20"}, {
+          "id": "DSF45",
+          "name": "DSFBG123-DSF45"
+        }, {"id": "HST25", "name": "HSTNTX01-HST25"}, {"id": "AMD18", "name": "AUDIMA01-AMD18"}, {
+          "id": "SAA80",
+          "name": "SAIT9AA3-SAA80"
+        }, {"id": "SSA56", "name": "SSIT2AA7-SSA56"}, {"id": "SDD82", "name": "SAIT1DD9-SDD82"}, {
+          "id": "JCV1",
+          "name": "JCVLFLBW-JCV1"
+        }, {"id": "SUL2", "name": "WERTYUJK-SUL2"}, {"id": "PUR1", "name": "purelyde-PUR1"}, {
+          "id": "FDE55",
+          "name": "FDERT555-FDE55"
+        }, {"id": "SITE", "name": "LONEENCO-SITE"}, {"id": "ATL1", "name": "ATLNGAMA-ATL1"}, {
+          "id": "JUL1",
+          "name": "ZXCVBNMM-JUL1"
+        }, {"id": "TAT34", "name": "TESAAISB-TAT34"}, {"id": "XCP12", "name": "CHKGH123-XCP12"}, {
+          "id": "RAI1",
+          "name": "poiuytre-RAI1"
+        }, {"id": "HPO1", "name": "ATLNGAUP-HPO1"}, {"id": "KJF12", "name": "KJFDH123-KJF12"}, {
+          "id": "SCC80",
+          "name": "SAIT9CC3-SCC80"
+        }, {"id": "SAA12", "name": "SAIT9AF8-SAA12"}, {"id": "SAA14", "name": "SAIT1AA9-SAA14"}, {
+          "id": "ATL35",
+          "name": "TTESSAAI-ATL35"
+        }, {"id": "CWY1", "name": "CWYMOWBS-CWY1"}, {"id": "ATL76", "name": "TELEPAAI-ATL76"}, {
+          "id": "DSL12",
+          "name": "DSLFK242-DSL12"
+        }, {"id": "ATL53", "name": "AAIATLTE-ATL53"}, {"id": "SAA11", "name": "SAIT9AA2-SAA11"}, {
+          "id": "ATL62",
+          "name": "TESSASCH-ATL62"
+        }, {"id": "AUG1", "name": "ASDFGHJK-AUG1"}, {"id": "POI22", "name": "POIUY123-POI22"}, {
+          "id": "SAA13",
+          "name": "SAIT1AA9-SAA13"
+        }, {"id": "BHY17", "name": "BHYTFRF3-BHY17"}, {"id": "LIS1", "name": "HOSTPROF-LIS1"}, {
+          "id": "SIP1",
+          "name": "ZXCVBNMK-SIP1"
+        }, {"id": "ATL99", "name": "TEESTAAI-ATL43"}, {"id": "ATL64", "name": "FORLOAAJ-ATL64"}, {
+          "id": "TAT33",
+          "name": "TESAAISA-TAT33"
+        }, {"id": "RAD10", "name": "INDIPUNE-RAD10"}, {"id": "RTW5", "name": "BHYTFRY4-RTW5"}, {
+          "id": "JGS1",
+          "name": "KSJKKKKK-JGS1"
+        }, {"id": "ATL98", "name": "TEESTAAI-ATL43"}, {"id": "WAN1", "name": "LEIWANGW-WAN1"}, {
+          "id": "ATL44",
+          "name": "ATLSANAB-ATL44"
+        }, {"id": "RTD2", "name": "BHYTFRk4-RTD2"}, {"id": "NIR1", "name": "ORFLMANA-NIR1"}, {
+          "id": "ATL75",
+          "name": "SANAAIRE-ATL75"
+        }, {"id": "NUM1", "name": "QWERTYUI-NUM1"}, {"id": "hvf32", "name": "MDTWNJ21-hvf32"}, {
+          "id": "RTZ4",
+          "name": "BHYTFRZ6-RTZ4"
+        }, {"id": "ATL56", "name": "ATLSANAC-ATL56"}, {"id": "AMS1", "name": "AMSTNLBW-AMS1"}, {
+          "id": "RCT1",
+          "name": "AMSTERNL-RCT1"
+        }, {"id": "JAN1", "name": "ORFLMATT-JAN1"}, {"id": "ABC14", "name": "TESAAISA-ABC14"}, {
+          "id": "TAT37",
+          "name": "TESAAISD-TAT37"
+        }, {"id": "MIC54", "name": "MICHIGAN-MIC54"}, {"id": "ABC11", "name": "ATLSANAI-ABC11"}, {
+          "id": "AMF11",
+          "name": "AMDOCS01-AMF11"
+        }, {"id": "ATL63", "name": "ATLSANEW-ATL63"}, {"id": "ABC12", "name": "ATLSECIA-ABC12"}, {
+          "id": "hvf20",
+          "name": "MDTWNJ21-hvf20"
+        }, {"id": "ABC15", "name": "AAITESAN-ABC15"}, {"id": "AVT1", "name": "AVTRFLHD-AVT1"}, {
+          "id": "ATL34",
+          "name": "ATLSANAI-ATL34"
+        }],
         "categoryParameters": {
           "owningEntityList": [{
             "id": "aaa1",
index 7f32360..a352e77 100644 (file)
@@ -89,13 +89,13 @@ export class NetworkPopupService implements GenericPopupInterface {
         new ModelInformationItem("Invariant UUID", "invariantUuid", [this.model.invariantUuid], Constants.ServicePopup.TOOLTIP_INVARIANT_UUID, true),
         new ModelInformationItem("Service type", "serviceType", [this.serviceModel.serviceType]),
         new ModelInformationItem("Service role", "serviceRole", [this.serviceModel.serviceRole]),
-        new ModelInformationItem("Network roles", "network-role", this.model.roles, "", false)
+        new ModelInformationItem("Network roles", "role", this.model.roles, "", false)
       ];
     });
   }
 
   getControls(serviceId: string, networkName: string, networkStoreKey: string, isUpdateMode: boolean) {
-    if (this._store.getState().service.serviceHierarchy[serviceId].service.instantiationType === 'Macro') {
+    if (this._store.getState().service.serviceHierarchy[serviceId].service.vidNotions.instantiationType === 'Macro') {
       return this._networkControlGenerator.getMacroFormControls(serviceId, networkStoreKey, networkName, isUpdateMode);
     } else {
       return this._networkControlGenerator.getAlaCarteFormControls(serviceId, networkStoreKey, networkName, isUpdateMode);
index 5e9492b..3ca3c05 100644 (file)
@@ -28,17 +28,12 @@ class MockReduxStore<T> {
           "FLAG_NETWORK_TO_ASYNC_INSTANTIATION": false,
           "FLAG_SHOW_ASSIGNMENTS": true,
           "FLAG_FABRIC_CONFIGURATION_ASSIGNMENTS": true,
-          "FLAG_UNASSIGN_SERVICE": true,
           "FLAG_SHOW_VERIFY_SERVICE": false,
-          "FLAG_COLLECTION_RESOURCE_SUPPORT": true,
-          "FLAG_DUPLICATE_VNF": true,
           "FLAG_SERVICE_MODEL_CACHE": true,
           "FLAG_ADVANCED_PORTS_FILTER": true,
           "CREATE_INSTANCE_TEST": false,
           "FLAG_SETTING_DEFAULTS_IN_DRAWING_BOARD": false,
           "FLAG_REGION_ID_FROM_REMOTE": true,
-          "FLAG_ASYNC_INSTANTIATION": true,
-          "FLAG_ASYNC_JOBS": true,
           "EMPTY_DRAWING_BOARD_TEST": false,
           "FLAG_ADD_MSO_TESTAPI_FIELD": true
         },
@@ -60,7 +55,7 @@ class MockReduxStore<T> {
               "serviceEcompNaming": "false",
               "instantiationType": "Macro",
               "inputs": {
-                "2017488_adiodvpe0_ASN_1": {
+                "2017488_pasqualevpe0_ASN_1": {
                   "type": "string",
                   "description": "AV/PE",
                   "entry_schema": null,
@@ -69,7 +64,7 @@ class MockReduxStore<T> {
                   "required": true,
                   "default": "AV_vPE"
                 },
-                "2017488_adiodvpe0_ASN_2": {
+                "2017488_pasqualevpe0_ASN_2": {
                   "type": "number",
                   "description": "AV/PE",
                   "entry_schema": null,
@@ -78,7 +73,7 @@ class MockReduxStore<T> {
                   "required": true,
                   "default": 2
                 },
-                "2017488_adiodvpe0_ASN_3": {
+                "2017488_pasqualevpe0_ASN_3": {
                   "type": "string",
                   "description": "AV/PE",
                   "entry_schema": null,
@@ -87,7 +82,7 @@ class MockReduxStore<T> {
                   "required": false,
                   "default": "AV_vPE"
                 },
-                "2017488_adiodvpe0_ASN_4": {
+                "2017488_pasqualevpe0_ASN_4": {
                   "type": "string",
                   "description": "AV/PE",
                   "entry_schema": null,
@@ -99,11 +94,11 @@ class MockReduxStore<T> {
               }
             },
             "vnfs": {
-              "VF_vMee 0": {
+              "VF_vGeraldine 0": {
                 "uuid": "d6557200-ecf2-4641-8094-5393ae3aae60",
                 "invariantUuid": "4160458e-f648-4b30-a176-43881ffffe9e",
-                "description": "VSP_vMee",
-                "name": "VF_vMee",
+                "description": "VSP_vGeraldine",
+                "name": "VF_vGeraldine",
                 "version": "2.0",
                 "customizationUuid": "91415b44-753d-494c-926a-456a9172bbb9",
                 "inputs": {},
@@ -274,74 +269,74 @@ class MockReduxStore<T> {
                   "sctp-b-egress-dst_end_port": "65535.0"
                 },
                 "type": "VF",
-                "modelCustomizationName": "VF_vMee 0",
+                "modelCustomizationName": "VF_vGeraldine 0",
                 "vfModules": {
-                  "vf_vmee0..VfVmee..vmme_vlc..module-1": {
+                  "vf_vgeraldine0..VfVgeraldine..vflorence_vlc..module-1": {
                     "uuid": "522159d5-d6e0-4c2a-aa44-5a542a12a830",
                     "invariantUuid": "98a7c88b-b577-476a-90e4-e25a5871e02b",
                     "customizationUuid": "55b1be94-671a-403e-a26c-667e9c47d091",
                     "description": null,
-                    "name": "VfVmee..vmme_vlc..module-1",
+                    "name": "VfVgeraldine..vflorence_vlc..module-1",
                     "version": "2",
-                    "modelCustomizationName": "VfVmee..vmme_vlc..module-1",
+                    "modelCustomizationName": "VfVgeraldine..vflorence_vlc..module-1",
                     "properties": {
                       "minCountInstances": 0,
                       "maxCountInstances": null,
                       "initialCount": 0,
-                      "vfModuleLabel": "vmme_vlc"
+                      "vfModuleLabel": "vflorence_vlc"
                     },
                     "inputs": {},
                     "volumeGroupAllowed": true
                   },
-                  "vf_vmee0..VfVmee..vmme_gpb..module-2": {
+                  "vf_vgeraldine0..VfVgeraldine..vflorence_gpb..module-2": {
                     "uuid": "41708296-e443-4c71-953f-d9a010f059e1",
                     "invariantUuid": "1cca90b8-3490-495e-87da-3f3e4c57d5b9",
                     "customizationUuid": "6add59e0-7fe1-4bc4-af48-f8812422ae7c",
                     "description": null,
-                    "name": "VfVmee..vmme_gpb..module-2",
+                    "name": "VfVgeraldine..vflorence_gpb..module-2",
                     "version": "2",
-                    "modelCustomizationName": "VfVmee..vmme_gpb..module-2",
+                    "modelCustomizationName": "VfVgeraldine..vflorence_gpb..module-2",
                     "properties": {
                       "minCountInstances": 0,
                       "maxCountInstances": null,
                       "initialCount": 0,
-                      "vfModuleLabel": "vmme_gpb"
+                      "vfModuleLabel": "vflorence_gpb"
                     },
                     "inputs": {},
                     "volumeGroupAllowed": false
                   },
-                  "vf_vmee0..VfVmee..base_vmme..module-0": {
+                  "vf_vgeraldine0..VfVgeraldine..base_vflorence..module-0": {
                     "uuid": "a27f5cfc-7f12-4f99-af08-0af9c3885c87",
                     "invariantUuid": "a6f9e51a-2b35-416a-ae15-15e58d61f36d",
                     "customizationUuid": "f8c040f1-7e51-4a11-aca8-acf256cfd861",
                     "description": null,
-                    "name": "VfVmee..base_vmme..module-0",
+                    "name": "VfVgeraldine..base_vflorence..module-0",
                     "version": "2",
-                    "modelCustomizationName": "VfVmee..base_vmme..module-0",
+                    "modelCustomizationName": "VfVgeraldine..base_vflorence..module-0",
                     "properties": {
                       "minCountInstances": 1,
                       "maxCountInstances": 1,
                       "initialCount": 1,
-                      "vfModuleLabel": "base_vmme"
+                      "vfModuleLabel": "base_vflorence"
                     },
                     "inputs": {},
                     "volumeGroupAllowed": true
                   }
                 },
                 "volumeGroups": {
-                  "vf_vmee0..VfVmee..base_vmme..module-0": {
+                  "vf_vgeraldine0..VfVgeraldine..base_vflorence..module-0": {
                     "uuid": "a27f5cfc-7f12-4f99-af08-0af9c3885c87",
                     "invariantUuid": "a6f9e51a-2b35-416a-ae15-15e58d61f36d",
                     "customizationUuid": "f8c040f1-7e51-4a11-aca8-acf256cfd861",
                     "description": null,
-                    "name": "VfVmee..base_vmme..module-0",
+                    "name": "VfVgeraldine..base_vflorence..module-0",
                     "version": "2",
-                    "modelCustomizationName": "VfVmee..base_vmme..module-0",
+                    "modelCustomizationName": "VfVgeraldine..base_vflorence..module-0",
                     "properties": {
                       "minCountInstances": 1,
                       "maxCountInstances": 1,
                       "initialCount": 1,
-                      "vfModuleLabel": "base_vmme"
+                      "vfModuleLabel": "base_vflorence"
                     },
                     "inputs": {}
                   }
@@ -370,7 +365,7 @@ class MockReduxStore<T> {
                 "modelCustomizationName": "ExtVL 0"
               }
             },
-            "collectionResource": {},
+            "collectionResources": {},
             "configurations": {
               "Port Mirroring Configuration By Policy 0": {
                 "uuid": "b4398538-e89d-4f13-b33d-ca323434ba50",
@@ -391,72 +386,72 @@ class MockReduxStore<T> {
             },
             "serviceProxies": {},
             "vfModules": {
-              "vf_vmee0..VfVmee..vmme_vlc..module-1": {
+              "vf_vgeraldine0..VfVgeraldine..vflorence_vlc..module-1": {
                 "uuid": "522159d5-d6e0-4c2a-aa44-5a542a12a830",
                 "invariantUuid": "98a7c88b-b577-476a-90e4-e25a5871e02b",
                 "customizationUuid": "55b1be94-671a-403e-a26c-667e9c47d091",
                 "description": null,
-                "name": "VfVmee..vmme_vlc..module-1",
+                "name": "VfVgeraldine..vflorence_vlc..module-1",
                 "version": "2",
-                "modelCustomizationName": "VfVmee..vmme_vlc..module-1",
+                "modelCustomizationName": "VfVgeraldine..vflorence_vlc..module-1",
                 "properties": {
                   "minCountInstances": 0,
                   "maxCountInstances": null,
                   "initialCount": 0,
-                  "vfModuleLabel": "vmme_vlc"
+                  "vfModuleLabel": "vflorence_vlc"
                 },
                 "inputs": {},
                 "volumeGroupAllowed": true
               },
-              "vf_vmee0..VfVmee..vmme_gpb..module-2": {
+              "vf_vgeraldine0..VfVgeraldine..vflorence_gpb..module-2": {
                 "uuid": "41708296-e443-4c71-953f-d9a010f059e1",
                 "invariantUuid": "1cca90b8-3490-495e-87da-3f3e4c57d5b9",
                 "customizationUuid": "6add59e0-7fe1-4bc4-af48-f8812422ae7c",
                 "description": null,
-                "name": "VfVmee..vmme_gpb..module-2",
+                "name": "VfVgeraldine..vflorence_gpb..module-2",
                 "version": "2",
-                "modelCustomizationName": "VfVmee..vmme_gpb..module-2",
+                "modelCustomizationName": "VfVgeraldine..vflorence_gpb..module-2",
                 "properties": {
                   "minCountInstances": 0,
                   "maxCountInstances": null,
                   "initialCount": 0,
-                  "vfModuleLabel": "vmme_gpb"
+                  "vfModuleLabel": "vflorence_gpb"
                 },
                 "inputs": {},
                 "volumeGroupAllowed": false
               },
-              "vf_vmee0..VfVmee..base_vmme..module-0": {
+              "vf_vgeraldine0..VfVgeraldine..base_vflorence..module-0": {
                 "uuid": "a27f5cfc-7f12-4f99-af08-0af9c3885c87",
                 "invariantUuid": "a6f9e51a-2b35-416a-ae15-15e58d61f36d",
                 "customizationUuid": "f8c040f1-7e51-4a11-aca8-acf256cfd861",
                 "description": null,
-                "name": "VfVmee..base_vmme..module-0",
+                "name": "VfVgeraldine..base_vflorence..module-0",
                 "version": "2",
-                "modelCustomizationName": "VfVmee..base_vmme..module-0",
+                "modelCustomizationName": "VfVgeraldine..base_vflorence..module-0",
                 "properties": {
                   "minCountInstances": 1,
                   "maxCountInstances": 1,
                   "initialCount": 1,
-                  "vfModuleLabel": "base_vmme"
+                  "vfModuleLabel": "base_vflorence"
                 },
                 "inputs": {},
                 "volumeGroupAllowed": true
               }
             },
             "volumeGroups": {
-              "vf_vmee0..VfVmee..base_vmme..module-0": {
+              "vf_vgeraldine0..VfVgeraldine..base_vflorence..module-0": {
                 "uuid": "a27f5cfc-7f12-4f99-af08-0af9c3885c87",
                 "invariantUuid": "a6f9e51a-2b35-416a-ae15-15e58d61f36d",
                 "customizationUuid": "f8c040f1-7e51-4a11-aca8-acf256cfd861",
                 "description": null,
-                "name": "VfVmee..base_vmme..module-0",
+                "name": "VfVgeraldine..base_vflorence..module-0",
                 "version": "2",
-                "modelCustomizationName": "VfVmee..base_vmme..module-0",
+                "modelCustomizationName": "VfVgeraldine..base_vflorence..module-0",
                 "properties": {
                   "minCountInstances": 1,
                   "maxCountInstances": 1,
                   "initialCount": 1,
-                  "vfModuleLabel": "base_vmme"
+                  "vfModuleLabel": "base_vflorence"
                 },
                 "inputs": {}
               }
@@ -477,7 +472,7 @@ class MockReduxStore<T> {
               "serviceEcompNaming": "false",
               "instantiationType": "A-La-Carte",
               "inputs": {
-                "2017488_adiodvpe0_ASN_1": {
+                "2017488_pasqualevpe0_ASN_1": {
                   "type": "string",
                   "description": "AV/PE",
                   "entry_schema": null,
@@ -486,7 +481,7 @@ class MockReduxStore<T> {
                   "required": true,
                   "default": "AV_vPE"
                 },
-                "2017488_adiodvpe0_ASN_2": {
+                "2017488_pasqualevpe0_ASN_2": {
                   "type": "number",
                   "description": "AV/PE",
                   "entry_schema": null,
@@ -495,7 +490,7 @@ class MockReduxStore<T> {
                   "required": true,
                   "default": 2
                 },
-                "2017488_adiodvpe0_ASN_3": {
+                "2017488_pasqualevpe0_ASN_3": {
                   "type": "string",
                   "description": "AV/PE",
                   "entry_schema": null,
@@ -504,7 +499,7 @@ class MockReduxStore<T> {
                   "required": false,
                   "default": "AV_vPE"
                 },
-                "2017488_adiodvpe0_ASN_4": {
+                "2017488_pasqualevpe0_ASN_4": {
                   "type": "string",
                   "description": "AV/PE",
                   "entry_schema": null,
@@ -516,11 +511,11 @@ class MockReduxStore<T> {
               }
             },
             "vnfs": {
-              "2017-388_ADIOD-vPE 1": {
+              "2017-388_PASQUALE-vPE 1": {
                 "uuid": "0903e1c0-8e03-4936-b5c2-260653b96413",
                 "invariantUuid": "00beb8f9-6d39-452f-816d-c709b9cbb87d",
-                "description": "Name ADIOD vPE Description The provider edge function for the ADIOD service supported by the Junipers VMX product Category Router Vendor Juniper Vendor Release Code 17.2 Owners Mary Fragale. Updated 9-25 to use v8.0 of the Juniper Valid 2 VLM",
-                "name": "2017-388_ADIOD-vPE",
+                "description": "Name PASQUALE vPE Description The provider edge function for the PASQUALE service supported by the Junipers VMX product Category Router Vendor Juniper Vendor Release Code 17.2 Owners Mary Fragale. Updated 9-25 to use v8.0 of the Juniper Valid 2 VLM",
+                "name": "2017-388_PASQUALE-vPE",
                 "version": "1.0",
                 "customizationUuid": "280dec31-f16d-488b-9668-4aae55d6648a",
                 "inputs": {
@@ -583,29 +578,29 @@ class MockReduxStore<T> {
                   "vnf_config_template_version": {
                     "displayName": "vnf_config_template_version",
                     "command": "get_input",
-                    "inputName": "2017488_adiodvpe0_vnf_config_template_version"
+                    "inputName": "2017488_pasqualevpe0_vnf_config_template_version"
                   },
                   "bandwidth_units": {
                     "displayName": "bandwidth_units",
                     "command": "get_input",
-                    "inputName": "adiodvpe0_bandwidth_units"
+                    "inputName": "pasqualevpe0_bandwidth_units"
                   },
-                  "bandwidth": {"displayName": "bandwidth", "command": "get_input", "inputName": "adiodvpe0_bandwidth"},
+                  "bandwidth": {"displayName": "bandwidth", "command": "get_input", "inputName": "pasqualevpe0_bandwidth"},
                   "AIC_CLLI": {
                     "displayName": "AIC_CLLI",
                     "command": "get_input",
-                    "inputName": "2017488_adiodvpe0_AIC_CLLI"
+                    "inputName": "2017488_pasqualevpe0_AIC_CLLI"
                   },
-                  "ASN": {"displayName": "ASN", "command": "get_input", "inputName": "2017488_adiodvpe0_ASN"},
+                  "ASN": {"displayName": "ASN", "command": "get_input", "inputName": "2017488_pasqualevpe0_ASN"},
                   "vnf_instance_name": {
                     "displayName": "vnf_instance_name",
                     "command": "get_input",
-                    "inputName": "2017488_adiodvpe0_vnf_instance_name"
+                    "inputName": "2017488_pasqualevpe0_vnf_instance_name"
                   }
                 },
                 "properties": {
                   "vmxvre_retype": "RE-VMX",
-                  "vnf_config_template_version": "get_input:2017488_adiodvpe0_vnf_config_template_version",
+                  "vnf_config_template_version": "get_input:2017488_pasqualevpe0_vnf_config_template_version",
                   "sriov44_net_id": "48d399b3-11ee-48a8-94d2-f0ea94d6be8d",
                   "int_ctl_net_id": "2f323477-6936-4d01-ac53-d849430281d9",
                   "vmxvpfe_sriov41_0_port_mac": "00:11:22:EF:AC:DF",
@@ -650,7 +645,7 @@ class MockReduxStore<T> {
                   "vmxvpfe_sriov43_0_port_unknownmulticastallow": "true",
                   "vmxvre_int_ctl_ip_0": "10.0.0.10",
                   "ecomp_generated_naming": "false",
-                  "AIC_CLLI": "get_input:2017488_adiodvpe0_AIC_CLLI",
+                  "AIC_CLLI": "get_input:2017488_pasqualevpe0_AIC_CLLI",
                   "vnf_name": "mtnj309me6vre",
                   "vmxvpfe_sriov41_0_port_unknownunicastallow": "true",
                   "vmxvre_volume_type_1": "HITACHI",
@@ -658,14 +653,14 @@ class MockReduxStore<T> {
                   "vmxvre_volume_type_0": "HITACHI",
                   "vmxvpfe_volume_type_0": "HITACHI",
                   "vmxvpfe_sriov43_0_port_broadcastallow": "true",
-                  "bandwidth_units": "get_input:adiodvpe0_bandwidth_units",
+                  "bandwidth_units": "get_input:pasqualevpe0_bandwidth_units",
                   "vnf_id": "123",
                   "vmxvre_oam_prefix": "24",
                   "availability_zone_0": "mtpocfo-kvm-az01",
-                  "ASN": "get_input:2017488_adiodvpe0_ASN",
+                  "ASN": "get_input:2017488_pasqualevpe0_ASN",
                   "vmxvre_chassis_i2cid": "161",
                   "vmxvpfe_name_0": "vPFEXI",
-                  "bandwidth": "get_input:adiodvpe0_bandwidth",
+                  "bandwidth": "get_input:pasqualevpe0_bandwidth",
                   "availability_zone_max_count": "1",
                   "vmxvre_volume_size_0": "45.0",
                   "vmxvre_volume_size_1": "50.0",
@@ -675,7 +670,7 @@ class MockReduxStore<T> {
                   "vmxvre_ore_present": "0",
                   "vmxvre_volume_name_0": "vREXI_FBVolume",
                   "vmxvre_type": "0",
-                  "vnf_instance_name": "get_input:2017488_adiodvpe0_vnf_instance_name",
+                  "vnf_instance_name": "get_input:2017488_pasqualevpe0_vnf_instance_name",
                   "vmxvpfe_sriov41_0_port_unknownmulticastallow": "true",
                   "oam_net_id": "b95eeb1d-d55d-4827-abb4-8ebb94941429",
                   "vmx_int_ctl_len": "24",
@@ -689,16 +684,16 @@ class MockReduxStore<T> {
                   "vmxvpfe_flavor_name": "ns.c20r16d25.v5"
                 },
                 "type": "VF",
-                "modelCustomizationName": "2017-388_ADIOD-vPE 1",
+                "modelCustomizationName": "2017-388_PASQUALE-vPE 1",
                 "vfModules": {},
                 "volumeGroups": {},
                 "vfcInstanceGroups": {}
               },
-              "2017-388_ADIOD-vPE 0": {
+              "2017-388_PASQUALE-vPE 0": {
                 "uuid": "afacccf6-397d-45d6-b5ae-94c39734b168",
                 "invariantUuid": "72e465fe-71b1-4e7b-b5ed-9496118ff7a8",
-                "description": "Name ADIOD vPE Description The provider edge function for the ADIOD service supported by the Junipers VMX product Category Router Vendor Juniper Vendor Release Code 17.2 Owners Mary Fragale. Updated 9-25 to use v8.0 of the Juniper Valid 2 VLM",
-                "name": "2017-388_ADIOD-vPE",
+                "description": "Name PASQUALE vPE Description The provider edge function for the PASQUALE service supported by the Junipers VMX product Category Router Vendor Juniper Vendor Release Code 17.2 Owners Mary Fragale. Updated 9-25 to use v8.0 of the Juniper Valid 2 VLM",
+                "name": "2017-388_PASQUALE-vPE",
                 "version": "4.0",
                 "customizationUuid": "b3c76f73-eeb5-4fb6-9d31-72a889f1811c",
                 "inputs": {
@@ -761,29 +756,29 @@ class MockReduxStore<T> {
                   "vnf_config_template_version": {
                     "displayName": "vnf_config_template_version",
                     "command": "get_input",
-                    "inputName": "2017488_adiodvpe0_vnf_config_template_version"
+                    "inputName": "2017488_pasqualevpe0_vnf_config_template_version"
                   },
                   "bandwidth_units": {
                     "displayName": "bandwidth_units",
                     "command": "get_input",
-                    "inputName": "adiodvpe0_bandwidth_units"
+                    "inputName": "pasqualevpe0_bandwidth_units"
                   },
-                  "bandwidth": {"displayName": "bandwidth", "command": "get_input", "inputName": "adiodvpe0_bandwidth"},
+                  "bandwidth": {"displayName": "bandwidth", "command": "get_input", "inputName": "pasqualevpe0_bandwidth"},
                   "AIC_CLLI": {
                     "displayName": "AIC_CLLI",
                     "command": "get_input",
-                    "inputName": "2017488_adiodvpe0_AIC_CLLI"
+                    "inputName": "2017488_pasqualevpe0_AIC_CLLI"
                   },
-                  "ASN": {"displayName": "ASN", "command": "get_input", "inputName": "2017488_adiodvpe0_ASN"},
+                  "ASN": {"displayName": "ASN", "command": "get_input", "inputName": "2017488_pasqualevpe0_ASN"},
                   "vnf_instance_name": {
                     "displayName": "vnf_instance_name",
                     "command": "get_input",
-                    "inputName": "2017488_adiodvpe0_vnf_instance_name"
+                    "inputName": "2017488_pasqualevpe0_vnf_instance_name"
                   }
                 },
                 "properties": {
                   "vmxvre_retype": "RE-VMX",
-                  "vnf_config_template_version": "get_input:2017488_adiodvpe0_vnf_config_template_version",
+                  "vnf_config_template_version": "get_input:2017488_pasqualevpe0_vnf_config_template_version",
                   "sriov44_net_id": "48d399b3-11ee-48a8-94d2-f0ea94d6be8d",
                   "int_ctl_net_id": "2f323477-6936-4d01-ac53-d849430281d9",
                   "vmxvpfe_sriov41_0_port_mac": "00:11:22:EF:AC:DF",
@@ -829,7 +824,7 @@ class MockReduxStore<T> {
                   "vmxvpfe_sriov43_0_port_unknownmulticastallow": "true",
                   "vmxvre_int_ctl_ip_0": "10.0.0.10",
                   "ecomp_generated_naming": "false",
-                  "AIC_CLLI": "get_input:2017488_adiodvpe0_AIC_CLLI",
+                  "AIC_CLLI": "get_input:2017488_pasqualevpe0_AIC_CLLI",
                   "vnf_name": "mtnj309me6vre",
                   "vmxvpfe_sriov41_0_port_unknownunicastallow": "true",
                   "vmxvre_volume_type_1": "HITACHI",
@@ -837,14 +832,14 @@ class MockReduxStore<T> {
                   "vmxvre_volume_type_0": "HITACHI",
                   "vmxvpfe_volume_type_0": "HITACHI",
                   "vmxvpfe_sriov43_0_port_broadcastallow": "true",
-                  "bandwidth_units": "get_input:adiodvpe0_bandwidth_units",
+                  "bandwidth_units": "get_input:pasqualevpe0_bandwidth_units",
                   "vnf_id": "123",
                   "vmxvre_oam_prefix": "24",
                   "availability_zone_0": "mtpocfo-kvm-az01",
-                  "ASN": "get_input:2017488_adiodvpe0_ASN",
+                  "ASN": "get_input:2017488_pasqualevpe0_ASN",
                   "vmxvre_chassis_i2cid": "161",
                   "vmxvpfe_name_0": "vPFEXI",
-                  "bandwidth": "get_input:adiodvpe0_bandwidth",
+                  "bandwidth": "get_input:pasqualevpe0_bandwidth",
                   "availability_zone_max_count": "1",
                   "vmxvre_volume_size_0": "45.0",
                   "vmxvre_volume_size_1": "50.0",
@@ -854,7 +849,7 @@ class MockReduxStore<T> {
                   "vmxvre_ore_present": "0",
                   "vmxvre_volume_name_0": "vREXI_FBVolume",
                   "vmxvre_type": "0",
-                  "vnf_instance_name": "get_input:2017488_adiodvpe0_vnf_instance_name",
+                  "vnf_instance_name": "get_input:2017488_pasqualevpe0_vnf_instance_name",
                   "vmxvpfe_sriov41_0_port_unknownmulticastallow": "true",
                   "oam_net_id": "b95eeb1d-d55d-4827-abb4-8ebb94941429",
                   "vmx_int_ctl_len": "24",
@@ -868,16 +863,16 @@ class MockReduxStore<T> {
                   "vmxvpfe_flavor_name": "ns.c20r16d25.v5"
                 },
                 "type": "VF",
-                "modelCustomizationName": "2017-388_ADIOD-vPE 0",
+                "modelCustomizationName": "2017-388_PASQUALE-vPE 0",
                 "vfModules": {},
                 "volumeGroups": {},
                 "vfcInstanceGroups": {}
               },
-              "2017-488_ADIOD-vPE 0": {
+              "2017-488_PASQUALE-vPE 0": {
                 "uuid": "69e09f68-8b63-4cc9-b9ff-860960b5db09",
                 "invariantUuid": "72e465fe-71b1-4e7b-b5ed-9496118ff7a8",
-                "description": "Name ADIOD vPE Description The provider edge function for the ADIOD service supported by the Junipers VMX product Category Router Vendor Juniper Vendor Release Code 17.2 Owners Mary Fragale. Updated 9-25 to use v8.0 of the Juniper Valid 2 VLM",
-                "name": "2017-488_ADIOD-vPE",
+                "description": "Name PASQUALE vPE Description The provider edge function for the PASQUALE service supported by the Junipers VMX product Category Router Vendor Juniper Vendor Release Code 17.2 Owners Mary Fragale. Updated 9-25 to use v8.0 of the Juniper Valid 2 VLM",
+                "name": "2017-488_PASQUALE-vPE",
                 "version": "5.0",
                 "customizationUuid": "1da7b585-5e61-4993-b95e-8e6606c81e45",
                 "inputs": {
@@ -940,29 +935,29 @@ class MockReduxStore<T> {
                   "vnf_config_template_version": {
                     "displayName": "vnf_config_template_version",
                     "command": "get_input",
-                    "inputName": "2017488_adiodvpe0_vnf_config_template_version"
+                    "inputName": "2017488_pasqualevpe0_vnf_config_template_version"
                   },
                   "bandwidth_units": {
                     "displayName": "bandwidth_units",
                     "command": "get_input",
-                    "inputName": "adiodvpe0_bandwidth_units"
+                    "inputName": "pasqualevpe0_bandwidth_units"
                   },
-                  "bandwidth": {"displayName": "bandwidth", "command": "get_input", "inputName": "adiodvpe0_bandwidth"},
+                  "bandwidth": {"displayName": "bandwidth", "command": "get_input", "inputName": "pasqualevpe0_bandwidth"},
                   "AIC_CLLI": {
                     "displayName": "AIC_CLLI",
                     "command": "get_input",
-                    "inputName": "2017488_adiodvpe0_AIC_CLLI"
+                    "inputName": "2017488_pasqualevpe0_AIC_CLLI"
                   },
-                  "ASN": {"displayName": "ASN", "command": "get_input", "inputName": "2017488_adiodvpe0_ASN"},
+                  "ASN": {"displayName": "ASN", "command": "get_input", "inputName": "2017488_pasqualevpe0_ASN"},
                   "vnf_instance_name": {
                     "displayName": "vnf_instance_name",
                     "command": "get_input",
-                    "inputName": "2017488_adiodvpe0_vnf_instance_name"
+                    "inputName": "2017488_pasqualevpe0_vnf_instance_name"
                   }
                 },
                 "properties": {
                   "vmxvre_retype": "RE-VMX",
-                  "vnf_config_template_version": "get_input:2017488_adiodvpe0_vnf_config_template_version",
+                  "vnf_config_template_version": "get_input:2017488_pasqualevpe0_vnf_config_template_version",
                   "sriov44_net_id": "48d399b3-11ee-48a8-94d2-f0ea94d6be8d",
                   "int_ctl_net_id": "2f323477-6936-4d01-ac53-d849430281d9",
                   "vmxvpfe_sriov41_0_port_mac": "00:11:22:EF:AC:DF",
@@ -1009,7 +1004,7 @@ class MockReduxStore<T> {
                   "vmxvpfe_sriov43_0_port_unknownmulticastallow": "true",
                   "vmxvre_int_ctl_ip_0": "10.0.0.10",
                   "ecomp_generated_naming": "false",
-                  "AIC_CLLI": "get_input:2017488_adiodvpe0_AIC_CLLI",
+                  "AIC_CLLI": "get_input:2017488_pasqualevpe0_AIC_CLLI",
                   "vnf_name": "mtnj309me6vre",
                   "vmxvpfe_sriov41_0_port_unknownunicastallow": "true",
                   "vmxvre_volume_type_1": "HITACHI",
@@ -1017,14 +1012,14 @@ class MockReduxStore<T> {
                   "vmxvre_volume_type_0": "HITACHI",
                   "vmxvpfe_volume_type_0": "HITACHI",
                   "vmxvpfe_sriov43_0_port_broadcastallow": "true",
-                  "bandwidth_units": "get_input:adiodvpe0_bandwidth_units",
+                  "bandwidth_units": "get_input:pasqualevpe0_bandwidth_units",
                   "vnf_id": "123",
                   "vmxvre_oam_prefix": "24",
                   "availability_zone_0": "mtpocfo-kvm-az01",
-                  "ASN": "get_input:2017488_adiodvpe0_ASN",
+                  "ASN": "get_input:2017488_pasqualevpe0_ASN",
                   "vmxvre_chassis_i2cid": "161",
                   "vmxvpfe_name_0": "vPFEXI",
-                  "bandwidth": "get_input:adiodvpe0_bandwidth",
+                  "bandwidth": "get_input:pasqualevpe0_bandwidth",
                   "availability_zone_max_count": "1",
                   "vmxvre_volume_size_0": "45.0",
                   "vmxvre_volume_size_1": "50.0",
@@ -1034,7 +1029,7 @@ class MockReduxStore<T> {
                   "vmxvre_ore_present": "0",
                   "vmxvre_volume_name_0": "vREXI_FBVolume",
                   "vmxvre_type": "0",
-                  "vnf_instance_name": "get_input:2017488_adiodvpe0_vnf_instance_name",
+                  "vnf_instance_name": "get_input:2017488_pasqualevpe0_vnf_instance_name",
                   "vmxvpfe_sriov41_0_port_unknownmulticastallow": "true",
                   "oam_net_id": "b95eeb1d-d55d-4827-abb4-8ebb94941429",
                   "vmx_int_ctl_len": "24",
@@ -1048,82 +1043,82 @@ class MockReduxStore<T> {
                   "vmxvpfe_flavor_name": "ns.c20r16d25.v5"
                 },
                 "type": "VF",
-                "modelCustomizationName": "2017-488_ADIOD-vPE 0",
+                "modelCustomizationName": "2017-488_PASQUALE-vPE 0",
                 "vfModules": {
-                  "2017488_adiodvpe0..2017488AdiodVpe..ADIOD_vRE_BV..module-1": {
+                  "2017488_pasqualevpe0..2017488PasqualeVpe..PASQUALE_vRE_BV..module-1": {
                     "uuid": "25284168-24bb-4698-8cb4-3f509146eca5",
                     "invariantUuid": "7253ff5c-97f0-4b8b-937c-77aeb4d79aa1",
                     "customizationUuid": "f7e7c365-60cf-49a9-9ebf-a1aa11b9d401",
                     "description": null,
-                    "name": "2017488AdiodVpe..ADIOD_vRE_BV..module-1",
+                    "name": "2017488PasqualeVpe..PASQUALE_vRE_BV..module-1",
                     "version": "6",
-                    "modelCustomizationName": "2017488AdiodVpe..ADIOD_vRE_BV..module-1",
+                    "modelCustomizationName": "2017488PasqualeVpe..PASQUALE_vRE_BV..module-1",
                     "properties": {
                       "minCountInstances": 0,
                       "maxCountInstances": null,
                       "initialCount": 0,
-                      "vfModuleLabel": "ADIOD_vRE_BV"
+                      "vfModuleLabel": "PASQUALE_vRE_BV"
                     },
                     "inputs": {
-                      "adiodvpe0_bandwidth": {
+                      "pasqualevpe0_bandwidth": {
                         "type": "string",
                         "description": "Requested VPE bandwidth",
                         "entry_schema": null,
                         "inputProperties": {
                           "sourceType": "HEAT",
-                          "vfModuleLabel": "ADIOD_vRE_BV",
+                          "vfModuleLabel": "PASQUALE_vRE_BV",
                           "paramName": "bandwidth"
                         },
                         "constraints": null,
                         "required": true,
                         "default": "10"
                       },
-                      "2017488_adiodvpe0_vnf_instance_name": {
+                      "2017488_pasqualevpe0_vnf_instance_name": {
                         "type": "string",
                         "description": "The hostname assigned to the vpe.",
                         "entry_schema": null,
                         "inputProperties": {
                           "sourceType": "HEAT",
-                          "vfModuleLabel": "ADIOD_vRE_BV",
+                          "vfModuleLabel": "PASQUALE_vRE_BV",
                           "paramName": "vnf_instance_name"
                         },
                         "constraints": null,
                         "required": true,
                         "default": "mtnj309me6"
                       },
-                      "2017488_adiodvpe0_vnf_config_template_version": {
+                      "2017488_pasqualevpe0_vnf_config_template_version": {
                         "type": "string",
                         "description": "VPE Software Version",
                         "entry_schema": null,
                         "inputProperties": {
                           "sourceType": "HEAT",
-                          "vfModuleLabel": "ADIOD_vRE_BV",
+                          "vfModuleLabel": "PASQUALE_vRE_BV",
                           "paramName": "vnf_config_template_version"
                         },
                         "constraints": null,
                         "required": true,
                         "default": "17.2"
                       },
-                      "2017488_adiodvpe0_AIC_CLLI": {
+                      "2017488_pasqualevpe0_AIC_CLLI": {
                         "type": "string",
                         "description": "AIC Site CLLI",
                         "entry_schema": null,
                         "inputProperties": {
                           "sourceType": "HEAT",
-                          "vfModuleLabel": "ADIOD_vRE_BV",
+                          "vfModuleLabel": "PASQUALE_vRE_BV",
                           "paramName": "AIC_CLLI"
                         },
                         "constraints": null,
                         "required": true,
                         "default": "ATLMY8GA"
                       },
-                      "adiodvpe0_bandwidth_units": {
+                      "pasqualevpe0_bandwidth_units": {
                         "type": "string",
                         "description": "Units of bandwidth",
                         "entry_schema": null,
                         "inputProperties": {
                           "sourceType": "HEAT",
-                          "vfModuleLabel": "ADIOD_vRE_BV",
+                          "vfModuleLabel": "PASQUALE_vRE_BV",
                           "paramName": "bandwidth_units"
                         },
                         "constraints": null,
@@ -1133,116 +1128,116 @@ class MockReduxStore<T> {
                     },
                     "volumeGroupAllowed": true
                   },
-                  "2017488_adiodvpe0..2017488AdiodVpe..ADIOD_base_vPE_BV..module-0": {
+                  "2017488_pasqualevpe0..2017488PasqualeVpe..PASQUALE_base_vPE_BV..module-0": {
                     "uuid": "f8360508-3f17-4414-a2ed-6bc71161e8db",
                     "invariantUuid": "b34833bb-6aa9-4ad6-a831-70b06367a091",
                     "customizationUuid": "a55961b2-2065-4ab0-a5b7-2fcee1c227e3",
                     "description": null,
-                    "name": "2017488AdiodVpe..ADIOD_base_vPE_BV..module-0",
+                    "name": "2017488PasqualeVpe..PASQUALE_base_vPE_BV..module-0",
                     "version": "5",
-                    "modelCustomizationName": "2017488AdiodVpe..ADIOD_base_vPE_BV..module-0",
+                    "modelCustomizationName": "2017488PasqualeVpe..PASQUALE_base_vPE_BV..module-0",
                     "properties": {
                       "minCountInstances": 1,
                       "maxCountInstances": 1,
                       "initialCount": 1,
-                      "vfModuleLabel": "ADIOD_base_vPE_BV"
+                      "vfModuleLabel": "PASQUALE_base_vPE_BV"
                     },
                     "inputs": {},
                     "volumeGroupAllowed": false
                   },
-                  "2017488_adiodvpe0..2017488AdiodVpe..ADIOD_vPFE_BV..module-2": {
+                  "2017488_pasqualevpe0..2017488PasqualeVpe..PASQUALE_vPFE_BV..module-2": {
                     "uuid": "0a0dd9d4-31d3-4c3a-ae89-a02f383e6a9a",
                     "invariantUuid": "eff8cc59-53a1-4101-aed7-8cf24ecf8339",
                     "customizationUuid": "3cd946bb-50e0-40d8-96d3-c9023520b557",
                     "description": null,
-                    "name": "2017488AdiodVpe..ADIOD_vPFE_BV..module-2",
+                    "name": "2017488PasqualeVpe..PASQUALE_vPFE_BV..module-2",
                     "version": "6",
-                    "modelCustomizationName": "2017488AdiodVpe..ADIOD_vPFE_BV..module-2",
+                    "modelCustomizationName": "2017488PasqualeVpe..PASQUALE_vPFE_BV..module-2",
                     "properties": {
                       "minCountInstances": 0,
                       "maxCountInstances": null,
                       "initialCount": 0,
-                      "vfModuleLabel": "ADIOD_vPFE_BV"
+                      "vfModuleLabel": "PASQUALE_vPFE_BV"
                     },
                     "inputs": {},
                     "volumeGroupAllowed": true
                   }
                 },
                 "volumeGroups": {
-                  "2017488_adiodvpe0..2017488AdiodVpe..ADIOD_vRE_BV..module-1": {
+                  "2017488_pasqualevpe0..2017488PasqualeVpe..PASQUALE_vRE_BV..module-1": {
                     "uuid": "25284168-24bb-4698-8cb4-3f509146eca5",
                     "invariantUuid": "7253ff5c-97f0-4b8b-937c-77aeb4d79aa1",
                     "customizationUuid": "f7e7c365-60cf-49a9-9ebf-a1aa11b9d401",
                     "description": null,
-                    "name": "2017488AdiodVpe..ADIOD_vRE_BV..module-1",
+                    "name": "2017488PasqualeVpe..PASQUALE_vRE_BV..module-1",
                     "version": "6",
-                    "modelCustomizationName": "2017488AdiodVpe..ADIOD_vRE_BV..module-1",
+                    "modelCustomizationName": "2017488PasqualeVpe..PASQUALE_vRE_BV..module-1",
                     "properties": {
                       "minCountInstances": 0,
                       "maxCountInstances": null,
                       "initialCount": 0,
-                      "vfModuleLabel": "ADIOD_vRE_BV"
+                      "vfModuleLabel": "PASQUALE_vRE_BV"
                     },
                     "inputs": {
-                      "adiodvpe0_bandwidth": {
+                      "pasqualevpe0_bandwidth": {
                         "type": "string",
                         "description": "Requested VPE bandwidth",
                         "entry_schema": null,
                         "inputProperties": {
                           "sourceType": "HEAT",
-                          "vfModuleLabel": "ADIOD_vRE_BV",
+                          "vfModuleLabel": "PASQUALE_vRE_BV",
                           "paramName": "bandwidth"
                         },
                         "constraints": null,
                         "required": true,
                         "default": "10"
                       },
-                      "2017488_adiodvpe0_vnf_instance_name": {
+                      "2017488_pasqualevpe0_vnf_instance_name": {
                         "type": "string",
                         "description": "The hostname assigned to the vpe.",
                         "entry_schema": null,
                         "inputProperties": {
                           "sourceType": "HEAT",
-                          "vfModuleLabel": "ADIOD_vRE_BV",
+                          "vfModuleLabel": "PASQUALE_vRE_BV",
                           "paramName": "vnf_instance_name"
                         },
                         "constraints": null,
                         "required": true,
                         "default": "mtnj309me6"
                       },
-                      "2017488_adiodvpe0_vnf_config_template_version": {
+                      "2017488_pasqualevpe0_vnf_config_template_version": {
                         "type": "string",
                         "description": "VPE Software Version",
                         "entry_schema": null,
                         "inputProperties": {
                           "sourceType": "HEAT",
-                          "vfModuleLabel": "ADIOD_vRE_BV",
+                          "vfModuleLabel": "PASQUALE_vRE_BV",
                           "paramName": "vnf_config_template_version"
                         },
                         "constraints": null,
                         "required": true,
                         "default": "17.2"
                       },
-                      "2017488_adiodvpe0_AIC_CLLI": {
+                      "2017488_pasqualevpe0_AIC_CLLI": {
                         "type": "string",
                         "description": "AIC Site CLLI",
                         "entry_schema": null,
                         "inputProperties": {
                           "sourceType": "HEAT",
-                          "vfModuleLabel": "ADIOD_vRE_BV",
+                          "vfModuleLabel": "PASQUALE_vRE_BV",
                           "paramName": "AIC_CLLI"
                         },
                         "constraints": null,
                         "required": true,
                         "default": "ATLMY8GA"
                       },
-                      "adiodvpe0_bandwidth_units": {
+                      "pasqualevpe0_bandwidth_units": {
                         "type": "string",
                         "description": "Units of bandwidth",
                         "entry_schema": null,
                         "inputProperties": {
                           "sourceType": "HEAT",
-                          "vfModuleLabel": "ADIOD_vRE_BV",
+                          "vfModuleLabel": "PASQUALE_vRE_BV",
                           "paramName": "bandwidth_units"
                         },
                         "constraints": null,
@@ -1251,19 +1246,19 @@ class MockReduxStore<T> {
                       }
                     }
                   },
-                  "2017488_adiodvpe0..2017488AdiodVpe..ADIOD_vPFE_BV..module-2": {
+                  "2017488_pasqualevpe0..2017488PasqualeVpe..PASQUALE_vPFE_BV..module-2": {
                     "uuid": "0a0dd9d4-31d3-4c3a-ae89-a02f383e6a9a",
                     "invariantUuid": "eff8cc59-53a1-4101-aed7-8cf24ecf8339",
                     "customizationUuid": "3cd946bb-50e0-40d8-96d3-c9023520b557",
                     "description": null,
-                    "name": "2017488AdiodVpe..ADIOD_vPFE_BV..module-2",
+                    "name": "2017488PasqualeVpe..PASQUALE_vPFE_BV..module-2",
                     "version": "6",
-                    "modelCustomizationName": "2017488AdiodVpe..ADIOD_vPFE_BV..module-2",
+                    "modelCustomizationName": "2017488PasqualeVpe..PASQUALE_vPFE_BV..module-2",
                     "properties": {
                       "minCountInstances": 0,
                       "maxCountInstances": null,
                       "initialCount": 0,
-                      "vfModuleLabel": "ADIOD_vPFE_BV"
+                      "vfModuleLabel": "PASQUALE_vPFE_BV"
                     },
                     "inputs": {}
                   }
@@ -1349,81 +1344,81 @@ class MockReduxStore<T> {
                 "modelCustomizationName": "ExtVL 0"
               }
             },
-            "collectionResource": {},
+            "collectionResources": {},
             "configurations": {},
             "fabricConfigurations": {},
             "serviceProxies": {},
             "vfModules": {
-              "2017488_adiodvpe0..2017488AdiodVpe..ADIOD_vRE_BV..module-1": {
+              "2017488_pasqualevpe0..2017488PasqualeVpe..PASQUALE_vRE_BV..module-1": {
                 "uuid": "25284168-24bb-4698-8cb4-3f509146eca5",
                 "invariantUuid": "7253ff5c-97f0-4b8b-937c-77aeb4d79aa1",
                 "customizationUuid": "f7e7c365-60cf-49a9-9ebf-a1aa11b9d401",
                 "description": null,
-                "name": "2017488AdiodVpe..ADIOD_vRE_BV..module-1",
+                "name": "2017488PasqualeVpe..PASQUALE_vRE_BV..module-1",
                 "version": "6",
-                "modelCustomizationName": "2017488AdiodVpe..ADIOD_vRE_BV..module-1",
+                "modelCustomizationName": "2017488PasqualeVpe..PASQUALE_vRE_BV..module-1",
                 "properties": {
                   "minCountInstances": 0,
                   "maxCountInstances": null,
                   "initialCount": 0,
-                  "vfModuleLabel": "ADIOD_vRE_BV"
+                  "vfModuleLabel": "PASQUALE_vRE_BV"
                 },
                 "inputs": {
-                  "adiodvpe0_bandwidth": {
+                  "pasqualevpe0_bandwidth": {
                     "type": "string",
                     "description": "Requested VPE bandwidth",
                     "entry_schema": null,
                     "inputProperties": {
                       "sourceType": "HEAT",
-                      "vfModuleLabel": "ADIOD_vRE_BV",
+                      "vfModuleLabel": "PASQUALE_vRE_BV",
                       "paramName": "bandwidth"
                     },
                     "constraints": null,
                     "required": true,
                     "default": "10"
                   },
-                  "2017488_adiodvpe0_vnf_instance_name": {
+                  "2017488_pasqualevpe0_vnf_instance_name": {
                     "type": "string",
                     "description": "The hostname assigned to the vpe.",
                     "entry_schema": null,
                     "inputProperties": {
                       "sourceType": "HEAT",
-                      "vfModuleLabel": "ADIOD_vRE_BV",
+                      "vfModuleLabel": "PASQUALE_vRE_BV",
                       "paramName": "vnf_instance_name"
                     },
                     "constraints": null,
                     "required": true,
                     "default": "mtnj309me6"
                   },
-                  "2017488_adiodvpe0_vnf_config_template_version": {
+                  "2017488_pasqualevpe0_vnf_config_template_version": {
                     "type": "string",
                     "description": "VPE Software Version",
                     "entry_schema": null,
                     "inputProperties": {
                       "sourceType": "HEAT",
-                      "vfModuleLabel": "ADIOD_vRE_BV",
+                      "vfModuleLabel": "PASQUALE_vRE_BV",
                       "paramName": "vnf_config_template_version"
                     },
                     "constraints": null,
                     "required": true,
                     "default": "17.2"
                   },
-                  "2017488_adiodvpe0_AIC_CLLI": {
+                  "2017488_pasqualevpe0_AIC_CLLI": {
                     "type": "string",
                     "description": "AIC Site CLLI",
                     "entry_schema": null,
-                    "inputProperties": {"sourceType": "HEAT", "vfModuleLabel": "ADIOD_vRE_BV", "paramName": "AIC_CLLI"},
+                    "inputProperties": {"sourceType": "HEAT", "vfModuleLabel": "PASQUALE_vRE_BV", "paramName": "AIC_CLLI"},
                     "constraints": null,
                     "required": true,
                     "default": "ATLMY8GA"
                   },
-                  "adiodvpe0_bandwidth_units": {
+                  "pasqualevpe0_bandwidth_units": {
                     "type": "string",
                     "description": "Units of bandwidth",
                     "entry_schema": null,
                     "inputProperties": {
                       "sourceType": "HEAT",
-                      "vfModuleLabel": "ADIOD_vRE_BV",
+                      "vfModuleLabel": "PASQUALE_vRE_BV",
                       "paramName": "bandwidth_units"
                     },
                     "constraints": null,
@@ -1433,112 +1428,112 @@ class MockReduxStore<T> {
                 },
                 "volumeGroupAllowed": true
               },
-              "2017488_adiodvpe0..2017488AdiodVpe..ADIOD_base_vPE_BV..module-0": {
+              "2017488_pasqualevpe0..2017488PasqualeVpe..PASQUALE_base_vPE_BV..module-0": {
                 "uuid": "f8360508-3f17-4414-a2ed-6bc71161e8db",
                 "invariantUuid": "b34833bb-6aa9-4ad6-a831-70b06367a091",
                 "customizationUuid": "a55961b2-2065-4ab0-a5b7-2fcee1c227e3",
                 "description": null,
-                "name": "2017488AdiodVpe..ADIOD_base_vPE_BV..module-0",
+                "name": "2017488PasqualeVpe..PASQUALE_base_vPE_BV..module-0",
                 "version": "5",
-                "modelCustomizationName": "2017488AdiodVpe..ADIOD_base_vPE_BV..module-0",
+                "modelCustomizationName": "2017488PasqualeVpe..PASQUALE_base_vPE_BV..module-0",
                 "properties": {
                   "minCountInstances": 1,
                   "maxCountInstances": 1,
                   "initialCount": 1,
-                  "vfModuleLabel": "ADIOD_base_vPE_BV"
+                  "vfModuleLabel": "PASQUALE_base_vPE_BV"
                 },
                 "inputs": {},
                 "volumeGroupAllowed": false
               },
-              "2017488_adiodvpe0..2017488AdiodVpe..ADIOD_vPFE_BV..module-2": {
+              "2017488_pasqualevpe0..2017488PasqualeVpe..PASQUALE_vPFE_BV..module-2": {
                 "uuid": "0a0dd9d4-31d3-4c3a-ae89-a02f383e6a9a",
                 "invariantUuid": "eff8cc59-53a1-4101-aed7-8cf24ecf8339",
                 "customizationUuid": "3cd946bb-50e0-40d8-96d3-c9023520b557",
                 "description": null,
-                "name": "2017488AdiodVpe..ADIOD_vPFE_BV..module-2",
+                "name": "2017488PasqualeVpe..PASQUALE_vPFE_BV..module-2",
                 "version": "6",
-                "modelCustomizationName": "2017488AdiodVpe..ADIOD_vPFE_BV..module-2",
+                "modelCustomizationName": "2017488PasqualeVpe..PASQUALE_vPFE_BV..module-2",
                 "properties": {
                   "minCountInstances": 0,
                   "maxCountInstances": null,
                   "initialCount": 0,
-                  "vfModuleLabel": "ADIOD_vPFE_BV"
+                  "vfModuleLabel": "PASQUALE_vPFE_BV"
                 },
                 "inputs": {},
                 "volumeGroupAllowed": true
               }
             },
             "volumeGroups": {
-              "2017488_adiodvpe0..2017488AdiodVpe..ADIOD_vRE_BV..module-1": {
+              "2017488_pasqualevpe0..2017488PasqualeVpe..PASQUALE_vRE_BV..module-1": {
                 "uuid": "25284168-24bb-4698-8cb4-3f509146eca5",
                 "invariantUuid": "7253ff5c-97f0-4b8b-937c-77aeb4d79aa1",
                 "customizationUuid": "f7e7c365-60cf-49a9-9ebf-a1aa11b9d401",
                 "description": null,
-                "name": "2017488AdiodVpe..ADIOD_vRE_BV..module-1",
+                "name": "2017488PasqualeVpe..PASQUALE_vRE_BV..module-1",
                 "version": "6",
-                "modelCustomizationName": "2017488AdiodVpe..ADIOD_vRE_BV..module-1",
+                "modelCustomizationName": "2017488PasqualeVpe..PASQUALE_vRE_BV..module-1",
                 "properties": {
                   "minCountInstances": 0,
                   "maxCountInstances": null,
                   "initialCount": 0,
-                  "vfModuleLabel": "ADIOD_vRE_BV"
+                  "vfModuleLabel": "PASQUALE_vRE_BV"
                 },
                 "inputs": {
-                  "adiodvpe0_bandwidth": {
+                  "pasqualevpe0_bandwidth": {
                     "type": "string",
                     "description": "Requested VPE bandwidth",
                     "entry_schema": null,
                     "inputProperties": {
                       "sourceType": "HEAT",
-                      "vfModuleLabel": "ADIOD_vRE_BV",
+                      "vfModuleLabel": "PASQUALE_vRE_BV",
                       "paramName": "bandwidth"
                     },
                     "constraints": null,
                     "required": true,
                     "default": "10"
                   },
-                  "2017488_adiodvpe0_vnf_instance_name": {
+                  "2017488_pasqualevpe0_vnf_instance_name": {
                     "type": "string",
                     "description": "The hostname assigned to the vpe.",
                     "entry_schema": null,
                     "inputProperties": {
                       "sourceType": "HEAT",
-                      "vfModuleLabel": "ADIOD_vRE_BV",
+                      "vfModuleLabel": "PASQUALE_vRE_BV",
                       "paramName": "vnf_instance_name"
                     },
                     "constraints": null,
                     "required": true,
                     "default": "mtnj309me6"
                   },
-                  "2017488_adiodvpe0_vnf_config_template_version": {
+                  "2017488_pasqualevpe0_vnf_config_template_version": {
                     "type": "string",
                     "description": "VPE Software Version",
                     "entry_schema": null,
                     "inputProperties": {
                       "sourceType": "HEAT",
-                      "vfModuleLabel": "ADIOD_vRE_BV",
+                      "vfModuleLabel": "PASQUALE_vRE_BV",
                       "paramName": "vnf_config_template_version"
                     },
                     "constraints": null,
                     "required": true,
                     "default": "17.2"
                   },
-                  "2017488_adiodvpe0_AIC_CLLI": {
+                  "2017488_pasqualevpe0_AIC_CLLI": {
                     "type": "string",
                     "description": "AIC Site CLLI",
                     "entry_schema": null,
-                    "inputProperties": {"sourceType": "HEAT", "vfModuleLabel": "ADIOD_vRE_BV", "paramName": "AIC_CLLI"},
+                    "inputProperties": {"sourceType": "HEAT", "vfModuleLabel": "PASQUALE_vRE_BV", "paramName": "AIC_CLLI"},
                     "constraints": null,
                     "required": true,
                     "default": "ATLMY8GA"
                   },
-                  "adiodvpe0_bandwidth_units": {
+                  "pasqualevpe0_bandwidth_units": {
                     "type": "string",
                     "description": "Units of bandwidth",
                     "entry_schema": null,
                     "inputProperties": {
                       "sourceType": "HEAT",
-                      "vfModuleLabel": "ADIOD_vRE_BV",
+                      "vfModuleLabel": "PASQUALE_vRE_BV",
                       "paramName": "bandwidth_units"
                     },
                     "constraints": null,
@@ -1547,19 +1542,19 @@ class MockReduxStore<T> {
                   }
                 }
               },
-              "2017488_adiodvpe0..2017488AdiodVpe..ADIOD_vPFE_BV..module-2": {
+              "2017488_pasqualevpe0..2017488PasqualeVpe..PASQUALE_vPFE_BV..module-2": {
                 "uuid": "0a0dd9d4-31d3-4c3a-ae89-a02f383e6a9a",
                 "invariantUuid": "eff8cc59-53a1-4101-aed7-8cf24ecf8339",
                 "customizationUuid": "3cd946bb-50e0-40d8-96d3-c9023520b557",
                 "description": null,
-                "name": "2017488AdiodVpe..ADIOD_vPFE_BV..module-2",
+                "name": "2017488PasqualeVpe..PASQUALE_vPFE_BV..module-2",
                 "version": "6",
-                "modelCustomizationName": "2017488AdiodVpe..ADIOD_vPFE_BV..module-2",
+                "modelCustomizationName": "2017488PasqualeVpe..PASQUALE_vPFE_BV..module-2",
                 "properties": {
                   "minCountInstances": 0,
                   "maxCountInstances": null,
                   "initialCount": 0,
-                  "vfModuleLabel": "ADIOD_vPFE_BV"
+                  "vfModuleLabel": "PASQUALE_vPFE_BV"
                 },
                 "inputs": {}
               }
@@ -1570,21 +1565,21 @@ class MockReduxStore<T> {
         "serviceInstance": {
           "6e59c5de-f052-46fa-aa7e-2fca9d674c44": {
             "vnfs": {
-              "VF_vMee 0": {
+              "VF_vGeraldine 0": {
                 "rollbackOnFailure": "true",
                 "vfModules": {
-                  "vf_vmee0..VfVmee..base_vmme..module-0": {
-                    "vf_vmee0..VfVmee..base_vmme..module-0vmvzo": {
+                  "vf_vgeraldine0..VfVgeraldine..base_vflorence..module-0": {
+                    "vf_vgeraldine0..VfVgeraldine..base_vflorence..module-0vmvzo": {
                       "isMissingData": false,
                       "sdncPreReload": null,
                       "modelInfo": {
                         "modelType": "VFmodule",
                         "modelInvariantId": "a6f9e51a-2b35-416a-ae15-15e58d61f36d",
                         "modelVersionId": "a27f5cfc-7f12-4f99-af08-0af9c3885c87",
-                        "modelName": "VfVmee..base_vmme..module-0",
+                        "modelName": "VfVgeraldine..base_vflorence..module-0",
                         "modelVersion": "2",
                         "modelCustomizationId": "f8c040f1-7e51-4a11-aca8-acf256cfd861",
-                        "modelCustomizationName": "VfVmee..base_vmme..module-0"
+                        "modelCustomizationName": "VfVgeraldine..base_vflorence..module-0"
                       },
                       "instanceParams": [{}],
                       "trackById": "wmtm6sy2uj"
@@ -1592,8 +1587,8 @@ class MockReduxStore<T> {
                   }
                 },
                 "isMissingData": true,
-                "originalName": "VF_vMee 0",
-                "vnfStoreKey": "VF_vMee 0",
+                "originalName": "VF_vGeraldine 0",
+                "vnfStoreKey": "VF_vGeraldine 0",
                 "trackById": "p3wk448m5do",
                 "uuid": "d6557200-ecf2-4641-8094-5393ae3aae60",
                 "productFamilyId": "36b4733a-53f4-4cc8-8ff0-9172e5fc4b8e",
@@ -1605,9 +1600,9 @@ class MockReduxStore<T> {
                   "modelType": "VF",
                   "modelInvariantId": "4160458e-f648-4b30-a176-43881ffffe9e",
                   "modelVersionId": "6e59c5de-f052-46fa-aa7e-2fca9d674c44",
-                  "modelName": "VF_vMee",
+                  "modelName": "VF_vGeraldine",
                   "modelVersion": "2.0",
-                  "modelCustomizationName": "VF_vMee 0"
+                  "modelCustomizationName": "VF_vGeraldine 0"
                 }
               }
             },
@@ -1725,39 +1720,39 @@ class MockReduxStore<T> {
               }
             },
             "vnfs": {
-              "2017-488_ADIOD-vPE 0": {
+              "2017-488_PASQUALE-vPE 0": {
                 "rollbackOnFailure": "true",
                 "vfModules": {
-                  "2017488_adiodvpe0..2017488AdiodVpe..ADIOD_vRE_BV..module-1": {
-                    "2017488_adiodvpe0..2017488AdiodVpe..ADIOD_vRE_BV..module-1sgoqi": {
+                  "2017488_pasqualevpe0..2017488PasqualeVpe..PASQUALE_vRE_BV..module-1": {
+                    "2017488_pasqualevpe0..2017488PasqualeVpe..PASQUALE_vRE_BV..module-1sgoqi": {
                       "instanceName": "yoav",
                       "volumeGroupName": "123",
                       "modelInfo": {
                         "modelInvariantId": "7253ff5c-97f0-4b8b-937c-77aeb4d79aa1",
                         "modelVersionId": "25284168-24bb-4698-8cb4-3f509146eca5",
-                        "modelName": "2017488AdiodVpe..ADIOD_vRE_BV..module-1",
+                        "modelName": "2017488PasqualeVpe..PASQUALE_vRE_BV..module-1",
                         "modelVersion": "6",
                         "modelCustomizationId": "f7e7c365-60cf-49a9-9ebf-a1aa11b9d401",
-                        "modelCustomizationName": "2017488AdiodVpe..ADIOD_vRE_BV..module-1",
+                        "modelCustomizationName": "2017488PasqualeVpe..PASQUALE_vRE_BV..module-1",
                         "uuid": "25284168-24bb-4698-8cb4-3f509146eca5"
                       },
                       "uuid": "25284168-24bb-4698-8cb4-3f509146eca5",
                       "isMissingData": false,
                       "instanceParams": [{
-                        "adiodvpe0_bandwidth": "10",
-                        "2017488_adiodvpe0_vnf_instance_name": "mtnj309me6",
-                        "2017488_adiodvpe0_vnf_config_template_version": "17.2",
-                        "2017488_adiodvpe0_AIC_CLLI": "ATLMY8GA",
-                        "adiodvpe0_bandwidth_units": "Gbps"
+                        "pasqualevpe0_bandwidth": "10",
+                        "2017488_pasqualevpe0_vnf_instance_name": "mtnj309me6",
+                        "2017488_pasqualevpe0_vnf_config_template_version": "17.2",
+                        "2017488_pasqualevpe0_AIC_CLLI": "ATLMY8GA",
+                        "pasqualevpe0_bandwidth_units": "Gbps"
                       }]
                     }
                   }
                 },
                 "isMissingData": false,
-                "originalName": "2017-488_ADIOD-vPE 0",
-                "vnfStoreKey": "2017-488_ADIOD-vPE 0",
+                "originalName": "2017-488_PASQUALE-vPE 0",
+                "vnfStoreKey": "2017-488_PASQUALE-vPE 0",
                 "trackById": "o65b26t2thj",
-                "instanceName": "2017488_ADIODvPE",
+                "instanceName": "2017488_PASQUALEvPE",
                 "productFamilyId": "ebc3bc3d-62fd-4a3f-a037-f619df4ff034",
                 "lcpCloudRegionId": "hvf6",
                 "tenantId": "bae71557c5bb4d5aac6743a4e5f1d054",
@@ -1767,16 +1762,16 @@ class MockReduxStore<T> {
                 "modelInfo": {
                   "modelInvariantId": "72e465fe-71b1-4e7b-b5ed-9496118ff7a8",
                   "modelVersionId": "69e09f68-8b63-4cc9-b9ff-860960b5db09",
-                  "modelName": "2017-488_ADIOD-vPE",
+                  "modelName": "2017-488_PASQUALE-vPE",
                   "modelVersion": "5.0",
                   "modelCustomizationId": "1da7b585-5e61-4993-b95e-8e6606c81e45",
-                  "modelCustomizationName": "2017-488_ADIOD-vPE 0",
+                  "modelCustomizationName": "2017-488_PASQUALE-vPE 0",
                   "uuid": "69e09f68-8b63-4cc9-b9ff-860960b5db09"
                 },
                 "uuid": "69e09f68-8b63-4cc9-b9ff-860960b5db09"
               }
             },
-            "instanceParams": [{"2017488_adiodvpe0_ASN": "AV_vPE"}],
+            "instanceParams": [{"2017488_pasqualevpe0_ASN": "AV_vPE"}],
             "validationCounter": 0,
             "existingNames": {"123": "", "instancename": "", "yoav": "", "extvl": ""},
             "existingVNFCounterMap": {"69e09f68-8b63-4cc9-b9ff-860960b5db09": 1},
@@ -1786,7 +1781,7 @@ class MockReduxStore<T> {
             "subscriptionServiceType": "TYLER SILVIA",
             "owningEntityId": "d61e6f2d-12fa-4cc2-91df-7c244011d6fc",
             "productFamilyId": "17cc1042-527b-11e6-beb8-9e71128cae77",
-            "lcpCloudRegionId": "JANET25",
+            "lcpCloudRegionId": "AAIAIC25",
             "tenantId": "092eb9e8e4b7412e8787dd091bc58e86",
             "aicZoneId": "JAG1",
             "projectName": null,
@@ -1817,12 +1812,12 @@ class MockReduxStore<T> {
         },
         "lcpRegionsAndTenants": {
           "lcpRegionList": [{
-            "id": "JANET25",
-            "name": "JANET25",
+            "id": "AAIAIC25",
+            "name": "AAIAIC25",
             "isPermitted": true
           }, {"id": "hvf6", "name": "hvf6", "isPermitted": true}],
           "lcpRegionsTenantsMap": {
-            "JANET25": [{
+            "AAIAIC25": [{
               "id": "092eb9e8e4b7412e8787dd091bc58e86",
               "name": "USP-SIP-IC-24335-T-01",
               "isPermitted": true
@@ -1832,23 +1827,123 @@ class MockReduxStore<T> {
               "name": "AIN Web Tool-15-D-testalexandria",
               "isPermitted": true
             }, {
-              "id": "d0a3e3f2964542259d155a81c41aadc3",
-              "name": "test-hvf6-09",
+              "id": "229bcdc6eaeb4ca59d55221141d01f8e",
+              "name": "AIN Web Tool-15-D-STTest2",
+              "isPermitted": true
+            }, {
+              "id": "1178612d2b394be4834ad77f567c0af2",
+              "name": "AIN Web Tool-15-D-SSPtestcustome",
+              "isPermitted": true
+            }, {
+              "id": "19c5ade915eb461e8af52fb2fd8cd1f2",
+              "name": "AIN Web Tool-15-D-UncheckedEcopm",
+              "isPermitted": true
+            }, {
+              "id": "de007636e25249238447264a988a927b",
+              "name": "AIN Web Tool-15-D-dfsdf",
+              "isPermitted": true
+            }, {
+              "id": "62f29b3613634ca6a3065cbe0e020c44",
+              "name": "AIN/SMS-16-D-Multiservices1",
+              "isPermitted": true
+            }, {
+              "id": "649289e30d3244e0b48098114d63c2aa",
+              "name": "AIN Web Tool-15-D-SSPST66",
+              "isPermitted": true
+            }, {
+              "id": "3f21eeea6c2c486bba31dab816c05a32",
+              "name": "AIN Web Tool-15-D-ASSPST47",
+              "isPermitted": true
+            }, {
+              "id": "f60ce21d3ee6427586cff0d22b03b773",
+              "name": "CESAR-100-D-sspjg67246",
+              "isPermitted": true
+            }, {
+              "id": "8774659e425f479895ae091bb5d46560",
+              "name": "CESAR-100-D-sspjg68359",
+              "isPermitted": true
+            }, {
+              "id": "624eb554b0d147c19ff8885341760481",
+              "name": "AINWebTool-15-D-iftach",
+              "isPermitted": true
+            }, {
+              "id": "214f55f5fc414c678059c383b03e4962",
+              "name": "CESAR-100-D-sspjg612401",
+              "isPermitted": true
+            }, {
+              "id": "c90666c291664841bb98e4d981ff1db5",
+              "name": "CESAR-100-D-sspjg621340",
+              "isPermitted": true
+            }, {
+              "id": "ce5b6bc5c7b348e1bf4b91ac9a174278",
+              "name": "sspjg621351cloned",
+              "isPermitted": true
+            }, {
+              "id": "b386b768a3f24c8e953abbe0b3488c02",
+              "name": "AINWebTool-15-D-eteancomp",
+              "isPermitted": true
+            }, {
+              "id": "dc6c4dbfd225474e9deaadd34968646c",
+              "name": "AINWebTool-15-T-SPFET",
+              "isPermitted": true
+            }, {
+              "id": "02cb5030e9914aa4be120bd9ed1e19eb",
+              "name": "AINWebTool-15-X-eeweww",
+              "isPermitted": true
+            }, {
+              "id": "f2f3830e4c984d45bcd00e1a04158a79",
+              "name": "CESAR-100-D-spjg61909",
+              "isPermitted": true
+            }, {
+              "id": "05b91bd5137f4929878edd965755c06d",
+              "name": "CESAR-100-D-sspjg621512cloned",
+              "isPermitted": true
+            }, {
+              "id": "7002fbe8482d4a989ddf445b1ce336e0",
+              "name": "AINWebTool-15-X-vdr",
+              "isPermitted": true
+            }, {
+              "id": "4008522be43741dcb1f5422022a2aa0b",
+              "name": "AINWebTool-15-D-ssasa",
+              "isPermitted": true
+            }, {
+              "id": "f44e2e96a1b6476abfda2fa407b00169",
+              "name": "AINWebTool-15-D-PFNPT",
+              "isPermitted": true
+            }, {
+              "id": "b69a52bec8a84669a37a1e8b72708be7",
+              "name": "AINWebTool-15-X-vdre",
+              "isPermitted": true
+            }, {
+              "id": "fac7d9fd56154caeb9332202dcf2969f",
+              "name": "AINWebTool-15-X-NONPODECOMP",
+              "isPermitted": true
+            }, {
+              "id": "2d34d8396e194eb49969fd61ffbff961",
+              "name": "DN5242-Nov16-T5",
+              "isPermitted": true
+            }, {
+              "id": "cb42a77ff45b48a8b8deb83bb64acc74",
+              "name": "ro-T11",
               "isPermitted": true
             }, {
               "id": "fa45ca53c80b492fa8be5477cd84fc2b",
               "name": "ro-T112",
               "isPermitted": true
             }, {
-              "id": "cbb99fe4ada84631b7baf046b6fd2044",
-              "name": "DN5242-Nov16-T3",
+              "id": "4914ab0ab3a743e58f0eefdacc1dde77",
+              "name": "DN5242-Nov21-T1",
+              "isPermitted": true
+            }, {
+              "id": "d0a3e3f2964542259d155a81c41aadc3",
+              "name": "test-hvf6-09",
               "isPermitted": true
-            }]
+            }, {"id": "cbb99fe4ada84631b7baf046b6fd2044", "name": "DN5242-Nov16-T3", "isPermitted": true}]
           }
         },
         "productFamilies": [{
           "id": "ebc3bc3d-62fd-4a3f-a037-f619df4ff034",
-          "name": "SCOTTIE",
+          "name": "ERICA",
           "isPermitted": true
         }, {
           "id": "17cc1042-527b-11e6-beb8-9e71128cae77",
@@ -1864,7 +1959,7 @@ class MockReduxStore<T> {
           "isPermitted": true
         }, {"id": "vTerrance", "name": "vTerrance", "isPermitted": true}, {
           "id": "323d69d9-2efe-4r45-ay0a-89ea7ard4e6f",
-          "name": "vSCP",
+          "name": "vEsmeralda",
           "isPermitted": true
         }, {
           "id": "a9a77d5a-123e-4ca2-9eb9-0b015d2ee0fb",
@@ -1887,7 +1982,7 @@ class MockReduxStore<T> {
           "name": "TYLER SILVIA",
           "isPermitted": true
         }, {"id": "b6a3f28c-eebf-494c-a900-055cc7c874ce", "name": "VROUTER", "isPermitted": true}, {
-          "id": "Cisneros",
+          "id": "vMuriel",
           "name": "vMuriel",
           "isPermitted": true
         }, {
@@ -1902,7 +1997,7 @@ class MockReduxStore<T> {
           "id": "vSalvatore",
           "name": "vSalvatore",
           "isPermitted": true
-        }, {"id": "d7bb0a21-66f2-4e6d-87d9-9ef3ced63ae4", "name": "Josefina", "isPermitted": true}, {
+        }, {"id": "d7bb0a21-66f2-4e6d-87d9-9ef3ced63ae4", "name": "JOSEFINA", "isPermitted": true}, {
           "id": "vHubbard",
           "name": "vHubbard",
           "isPermitted": true
@@ -1922,21 +2017,21 @@ class MockReduxStore<T> {
             "isPermitted": false
           }, {"id": "5", "name": "Kennedy", "isPermitted": false}, {
             "id": "6",
-            "name": "vSEGW",
+            "name": "vPorfirio",
             "isPermitted": false
           }, {"id": "7", "name": "vVM", "isPermitted": false}, {
             "id": "8",
             "name": "vOTA",
             "isPermitted": false
-          }, {"id": "9", "name": "vMME", "isPermitted": false}, {
+          }, {"id": "9", "name": "vFLORENCE", "isPermitted": false}, {
             "id": "10",
             "name": "vMNS",
             "isPermitted": false
-          }, {"id": "11", "name": "vSCP", "isPermitted": false}, {
+          }, {"id": "11", "name": "vEsmeralda", "isPermitted": false}, {
             "id": "12",
             "name": "VPMS",
             "isPermitted": false
-          }, {"id": "13", "name": "vMMSC", "isPermitted": false}, {
+          }, {"id": "13", "name": "vWINIFRED", "isPermitted": false}, {
             "id": "14",
             "name": "SSD",
             "isPermitted": false
@@ -1950,28 +2045,199 @@ class MockReduxStore<T> {
             "isPermitted": false
           }]
         },
-        "aicZones": [
-          {
-            "id": "NFT1",
-            "name": "NFTJSSSS-NFT1"
-          },
-          {
-            "id": "JAG1",
-            "name": "YUDFJULP-JAG1"
-          },
-          {
-            "id": "YYY1",
-            "name": "UUUAIAAI-YYY1"
-          },
-          {
-            "id": "AVT1",
-            "name": "AVTRFLHD-AVT1"
-          },
-          {
-            "id": "ATL34",
-            "name": "ATLSANAI-ATL34"
-          }
-        ],
+        "aicZones": [{"id": "NFT1", "name": "NFTJSSSS-NFT1"}, {"id": "JAG1", "name": "YUDFJULP-JAG1"}, {
+          "id": "YYY1",
+          "name": "UUUAIAAI-YYY1"
+        }, {"id": "BAN1", "name": "VSDKYUTP-BAN1"}, {"id": "DKJ1", "name": "DKJSJDKA-DKJ1"}, {
+          "id": "MCS1",
+          "name": "ASACMAMS-MCS1"
+        }, {"id": "UIO1", "name": "uioclli1-UIO1"}, {"id": "RAJ1", "name": "YGBIJNLQ-RAJ1"}, {
+          "id": "OPA1",
+          "name": "opaclli1-OPA1"
+        }, {"id": "SDE1", "name": "ZXCVBNMA-SDE1"}, {"id": "VEN2", "name": "FGHJUHIL-VEN2"}, {
+          "id": "ORL1",
+          "name": "ORLDFLMA-ORL1"
+        }, {"id": "JAD1", "name": "JADECLLI-JAD1"}, {"id": "ZXL1", "name": "LWLWCANN-ZXL1"}, {
+          "id": "CKL1",
+          "name": "CLKSKCKK-CKL1"
+        }, {"id": "SDF1", "name": "sdfclli1-SDF1"}, {"id": "RAD1", "name": "RADICAL1-RAD1"}, {
+          "id": "KIT1",
+          "name": "BHYJFGLN-KIT1"
+        }, {"id": "REL1", "name": "INGERFGT-REL1"}, {"id": "JNL1", "name": "CJALSDAC-JNL1"}, {
+          "id": "OLK1",
+          "name": "OLKOLKLS-OLK1"
+        }, {"id": "CHI1", "name": "CHILLIWE-CHI1"}, {"id": "UUU4", "name": "UUUAAAUU-UUU4"}, {
+          "id": "TUF1",
+          "name": "TUFCLLI1-TUF1"
+        }, {"id": "KJN1", "name": "CKALDKSA-KJN1"}, {"id": "SAM1", "name": "SNDGCA64-SAN1"}, {
+          "id": "SCK1",
+          "name": "SCKSCKSK-SCK1"
+        }, {"id": "HJH1", "name": "AOEEQQQD-HJH1"}, {"id": "HGD1", "name": "SDFQWHGD-HGD1"}, {
+          "id": "KOR1",
+          "name": "HYFLNBVT-KOR1"
+        }, {"id": "ATL43", "name": "AICLOCID-ATL43"}, {"id": "ATL54", "name": "AICFTAAI-ATL54"}, {
+          "id": "ATL66",
+          "name": "CLLIAAII-ATL66"
+        }, {"id": "VEL1", "name": "BNMLKUIK-VEL1"}, {"id": "ICC1", "name": "SANJITAT-ICC1"}, {
+          "id": "MNT11",
+          "name": "WSXEFBTH-MNT11"
+        }, {"id": "DEF2", "name": "WSBHGTYL-DEF2"}, {"id": "MAD11", "name": "SDFQWGKL-MAD11"}, {
+          "id": "OLG1",
+          "name": "OLHOLHOL-OLG1"
+        }, {"id": "GAR1", "name": "NGFVSJKO-GAR1"}, {"id": "SAN22", "name": "GNVLSCTL-SAN22"}, {
+          "id": "HRG1",
+          "name": "HRGHRGGS-HRG1"
+        }, {"id": "JCS1", "name": "JCSJSCJS-JCS1"}, {"id": "DHA12", "name": "WSXEDECF-DHA12"}, {
+          "id": "HJE1",
+          "name": "AOEEWWWD-HJE1"
+        }, {"id": "NCA1", "name": "NCANCANN-NCA1"}, {"id": "IOP1", "name": "iopclli1-IOP1"}, {
+          "id": "RTY1",
+          "name": "rtyclli1-RTY1"
+        }, {"id": "KAP1", "name": "HIOUYTRQ-KAP1"}, {"id": "ZEN1", "name": "ZENCLLI1-ZEN1"}, {
+          "id": "HKA1",
+          "name": "JAKHLASS-HKA1"
+        }, {"id": "CQK1", "name": "CQKSCAKK-CQK1"}, {"id": "SAI1", "name": "UBEKQLPD-SAI1"}, {
+          "id": "ERT1",
+          "name": "ertclli1-ERT1"
+        }, {"id": "IBB1", "name": "PLMKOIJU-IBB1"}, {"id": "TIR2", "name": "PLKINHYI-TIR2"}, {
+          "id": "HSD1",
+          "name": "CHASKCDS-HSD1"
+        }, {"id": "SLF78", "name": "SDCTLFN1-SLF78"}, {"id": "SEE78", "name": "SDCTEEE4-SEE78"}, {
+          "id": "SAN13",
+          "name": "TOKYJPFA-SAN13"
+        }, {"id": "SAA78", "name": "SDCTAAA1-SAA78"}, {"id": "LUC1", "name": "ATLDFGYC-LUC1"}, {
+          "id": "AMD13",
+          "name": "MEMATLAN-AMD13"
+        }, {"id": "TOR1", "name": "TOROONXN-TOR1"}, {"id": "QWE1", "name": "QWECLLI1-QWE1"}, {
+          "id": "ZOG1",
+          "name": "ZOGASTRO-ZOG1"
+        }, {"id": "CAL33", "name": "CALIFORN-CAL33"}, {"id": "SHH78", "name": "SDIT1HHH-SHH78"}, {
+          "id": "DSA1",
+          "name": "LKJHGFDS-DSA1"
+        }, {"id": "CLG1", "name": "CLGRABAD-CLG1"}, {"id": "BNA1", "name": "BNARAGBK-BNA1"}, {
+          "id": "ATL84",
+          "name": "CANTTCOC-ATL84"
+        }, {"id": "APP1", "name": "WBHGTYUI-APP1"}, {"id": "RJN1", "name": "RJNRBZAW-RJN1"}, {
+          "id": "EHH78",
+          "name": "SDCSHHH5-EHH78"
+        }, {"id": "mac10", "name": "PKGTESTF-mac10"}, {"id": "SXB78", "name": "SDCTGXB1-SXB78"}, {
+          "id": "SAX78",
+          "name": "SDCTAXG1-SAX78"
+        }, {"id": "SYD1", "name": "SYDNAUBV-SYD1"}, {"id": "TOK1", "name": "TOKYJPFA-TOK1"}, {
+          "id": "KGM2",
+          "name": "KGMTNC20-KGM2"
+        }, {"id": "DCC1b", "name": "POIUYTGH-DCC1b"}, {"id": "SKK78", "name": "SDCTKKK1-SKK78"}, {
+          "id": "SGG78",
+          "name": "SDCTGGG1-SGG78"
+        }, {"id": "SJJ78", "name": "SDCTJJJ1-SJJ78"}, {"id": "SBX78", "name": "SDCTBXG1-SBX78"}, {
+          "id": "LAG1",
+          "name": "LARGIZON-LAG1"
+        }, {"id": "IAA1", "name": "QAZXSWED-IAA1"}, {"id": "POI1", "name": "PLMNJKIU-POI1"}, {
+          "id": "LAG1a",
+          "name": "LARGIZON-LAG1a"
+        }, {"id": "PBL1", "name": "PBLAPBAI-PBL1"}, {"id": "LAG45", "name": "LARGIZON-LAG1a"}, {
+          "id": "MAR1",
+          "name": "MNBVCXZM-MAR1"
+        }, {"id": "HST70", "name": "HSTNTX70-HST70"}, {"id": "DCC1a", "name": "POIUYTGH-DCC1a"}, {
+          "id": "TOL1",
+          "name": "TOLDOH21-TOL1"
+        }, {"id": "LON1", "name": "LONEENCO-LON1"}, {"id": "SJU78", "name": "SDIT1JUB-SJU78"}, {
+          "id": "STN27",
+          "name": "HSTNTX01-STN27"
+        }, {"id": "SSW56", "name": "ss8126GT-SSW56"}, {"id": "SBB78", "name": "SDIT1BBB-SBB78"}, {
+          "id": "DCC3",
+          "name": "POIUYTGH-DCC3"
+        }, {"id": "GNV1", "name": "GNVLSCTL-GNV1"}, {"id": "WAS1", "name": "WASHDCSW-WAS1"}, {
+          "id": "TOY1",
+          "name": "TORYONNZ-TOY1"
+        }, {"id": "STT1", "name": "STTLWA02-STT1"}, {"id": "STG1", "name": "STTGGE62-STG1"}, {
+          "id": "SLL78",
+          "name": "SDCTLLL1-SLL78"
+        }, {"id": "SBU78", "name": "SDIT1BUB-SBU78"}, {"id": "ATL2", "name": "ATLNGANW-ATL2"}, {
+          "id": "BOT1",
+          "name": "BOTHWAKY-BOT1"
+        }, {"id": "SNG1", "name": "SNGPSIAU-SNG1"}, {"id": "NYC1", "name": "NYCMNY54-NYC1"}, {
+          "id": "LAG1b",
+          "name": "LARGIZON-LAG1b"
+        }, {"id": "AMD15", "name": "AMDFAA01-AMD15"}, {"id": "SNA1", "name": "SNANTXCA-SNA1"}, {
+          "id": "PLT1",
+          "name": "PLTNCA60-PLT1"
+        }, {"id": "TLP1", "name": "TLPNXM18-TLP1"}, {"id": "SDD81", "name": "SAIT1DD6-SDD81"}, {
+          "id": "DCC1",
+          "name": "POIUYTGH-DCC1"
+        }, {"id": "DCC2", "name": "POIUYTGH-DCC2"}, {"id": "OKC1", "name": "OKCBOK55-OKC1"}, {
+          "id": "PAR1",
+          "name": "PARSFRCG-PAR1"
+        }, {"id": "TES36", "name": "ABCEETES-TES36"}, {"id": "COM1", "name": "PLMKOPIU-COM1"}, {
+          "id": "ANI1",
+          "name": "ATLNGTRE-ANI1"
+        }, {"id": "SDG78", "name": "SDIT1BDG-SDG78"}, {"id": "mac20", "name": "PKGTESTF-mac20"}, {
+          "id": "DSF45",
+          "name": "DSFBG123-DSF45"
+        }, {"id": "HST25", "name": "HSTNTX01-HST25"}, {"id": "AMD18", "name": "AUDIMA01-AMD18"}, {
+          "id": "SAA80",
+          "name": "SAIT9AA3-SAA80"
+        }, {"id": "SSA56", "name": "SSIT2AA7-SSA56"}, {"id": "SDD82", "name": "SAIT1DD9-SDD82"}, {
+          "id": "JCV1",
+          "name": "JCVLFLBW-JCV1"
+        }, {"id": "SUL2", "name": "WERTYUJK-SUL2"}, {"id": "PUR1", "name": "purelyde-PUR1"}, {
+          "id": "FDE55",
+          "name": "FDERT555-FDE55"
+        }, {"id": "SITE", "name": "LONEENCO-SITE"}, {"id": "ATL1", "name": "ATLNGAMA-ATL1"}, {
+          "id": "JUL1",
+          "name": "ZXCVBNMM-JUL1"
+        }, {"id": "TAT34", "name": "TESAAISB-TAT34"}, {"id": "XCP12", "name": "CHKGH123-XCP12"}, {
+          "id": "RAI1",
+          "name": "poiuytre-RAI1"
+        }, {"id": "HPO1", "name": "ATLNGAUP-HPO1"}, {"id": "KJF12", "name": "KJFDH123-KJF12"}, {
+          "id": "SCC80",
+          "name": "SAIT9CC3-SCC80"
+        }, {"id": "SAA12", "name": "SAIT9AF8-SAA12"}, {"id": "SAA14", "name": "SAIT1AA9-SAA14"}, {
+          "id": "ATL35",
+          "name": "TTESSAAI-ATL35"
+        }, {"id": "CWY1", "name": "CWYMOWBS-CWY1"}, {"id": "ATL76", "name": "TELEPAAI-ATL76"}, {
+          "id": "DSL12",
+          "name": "DSLFK242-DSL12"
+        }, {"id": "ATL53", "name": "AAIATLTE-ATL53"}, {"id": "SAA11", "name": "SAIT9AA2-SAA11"}, {
+          "id": "ATL62",
+          "name": "TESSASCH-ATL62"
+        }, {"id": "AUG1", "name": "ASDFGHJK-AUG1"}, {"id": "POI22", "name": "POIUY123-POI22"}, {
+          "id": "SAA13",
+          "name": "SAIT1AA9-SAA13"
+        }, {"id": "BHY17", "name": "BHYTFRF3-BHY17"}, {"id": "LIS1", "name": "HOSTPROF-LIS1"}, {
+          "id": "SIP1",
+          "name": "ZXCVBNMK-SIP1"
+        }, {"id": "ATL99", "name": "TEESTAAI-ATL43"}, {"id": "ATL64", "name": "FORLOAAJ-ATL64"}, {
+          "id": "TAT33",
+          "name": "TESAAISA-TAT33"
+        }, {"id": "RAD10", "name": "INDIPUNE-RAD10"}, {"id": "RTW5", "name": "BHYTFRY4-RTW5"}, {
+          "id": "JGS1",
+          "name": "KSJKKKKK-JGS1"
+        }, {"id": "ATL98", "name": "TEESTAAI-ATL43"}, {"id": "WAN1", "name": "LEIWANGW-WAN1"}, {
+          "id": "ATL44",
+          "name": "ATLSANAB-ATL44"
+        }, {"id": "RTD2", "name": "BHYTFRk4-RTD2"}, {"id": "NIR1", "name": "ORFLMANA-NIR1"}, {
+          "id": "ATL75",
+          "name": "SANAAIRE-ATL75"
+        }, {"id": "NUM1", "name": "QWERTYUI-NUM1"}, {"id": "hvf32", "name": "MDTWNJ21-hvf32"}, {
+          "id": "RTZ4",
+          "name": "BHYTFRZ6-RTZ4"
+        }, {"id": "ATL56", "name": "ATLSANAC-ATL56"}, {"id": "AMS1", "name": "AMSTNLBW-AMS1"}, {
+          "id": "RCT1",
+          "name": "AMSTERNL-RCT1"
+        }, {"id": "JAN1", "name": "ORFLMATT-JAN1"}, {"id": "ABC14", "name": "TESAAISA-ABC14"}, {
+          "id": "TAT37",
+          "name": "TESAAISD-TAT37"
+        }, {"id": "MIC54", "name": "MICHIGAN-MIC54"}, {"id": "ABC11", "name": "ATLSANAI-ABC11"}, {
+          "id": "AMF11",
+          "name": "AMDOCS01-AMF11"
+        }, {"id": "ATL63", "name": "ATLSANEW-ATL63"}, {"id": "ABC12", "name": "ATLSECIA-ABC12"}, {
+          "id": "hvf20",
+          "name": "MDTWNJ21-hvf20"
+        }, {"id": "ABC15", "name": "AAITESAN-ABC15"}, {"id": "AVT1", "name": "AVTRFLHD-AVT1"}, {
+          "id": "ATL34",
+          "name": "ATLSANAI-ATL34"
+        }],
         "categoryParameters": {
           "owningEntityList": [{
             "id": "aaa1",
@@ -2149,15 +2415,15 @@ describe('Service popup service', () => {
     const result:  FormControlModel[] = service.getDynamicInputs('6b528779-44a3-4472-bdff-9cd15ec93450');
     console.log(result);
     expect(result.length).toEqual(4);
-    expect(result[0].controlName).toEqual('2017488_adiodvpe0_ASN_1');
-    expect(result[1].controlName).toEqual('2017488_adiodvpe0_ASN_2');
-    expect(result[2].controlName).toEqual('2017488_adiodvpe0_ASN_3');
-    expect(result[3].controlName).toEqual('2017488_adiodvpe0_ASN_4');
+    expect(result[0].controlName).toEqual('2017488_pasqualevpe0_ASN_1');
+    expect(result[1].controlName).toEqual('2017488_pasqualevpe0_ASN_2');
+    expect(result[2].controlName).toEqual('2017488_pasqualevpe0_ASN_3');
+    expect(result[3].controlName).toEqual('2017488_pasqualevpe0_ASN_4');
 
-    expect(result[0].dataTestId).toEqual('2017488_adiodvpe0_ASN_1');
-    expect(result[1].dataTestId).toEqual('2017488_adiodvpe0_ASN_2');
-    expect(result[2].dataTestId).toEqual('2017488_adiodvpe0_ASN_3');
-    expect(result[3].dataTestId).toEqual('2017488_adiodvpe0_ASN_4');
+    expect(result[0].dataTestId).toEqual('2017488_pasqualevpe0_ASN_1');
+    expect(result[1].dataTestId).toEqual('2017488_pasqualevpe0_ASN_2');
+    expect(result[2].dataTestId).toEqual('2017488_pasqualevpe0_ASN_3');
+    expect(result[3].dataTestId).toEqual('2017488_pasqualevpe0_ASN_4');
 
     expect(result[0].validations.length).toEqual(1);
     expect(result[1].validations.length).toEqual(1);
index dc83083..7694e63 100644 (file)
@@ -18,13 +18,9 @@ import {Constants} from "../../../../utils/constants";
 import {ServiceInstance} from "../../../../models/serviceInstance";
 import {ModelInfo} from "../../../../models/modelInfo";
 import {FormControlModel} from "../../../../models/formControlModels/formControl.model";
-import {
-  ServiceActions,
-  createServiceInstance,
-  updateServiceInstance
-} from "../../../../storeUtil/utils/service/service.actions";
-import {ServiceInstanceActions} from "../../../../models/serviceInstanceActions";
+import {createServiceInstance, updateServiceInstance} from "../../../../storeUtil/utils/service/service.actions";
 import * as _ from 'lodash';
+
 @Injectable()
 export class ServicePopupService implements GenericPopupInterface {
   dynamicInputs: any;
@@ -73,7 +69,7 @@ export class ServicePopupService implements GenericPopupInterface {
 
 
   getControls(serviceId: string) {
-    if(this._store.getState().service.serviceHierarchy[serviceId].service.instantiationType === 'Macro') {
+    if(this._store.getState().service.serviceHierarchy[serviceId].service.vidNotions.instantiationType === 'Macro') {
       return this._serviceControlGenerator.getMacroFormControls(serviceId, this.dynamicInputs);
     }else {
       return this._serviceControlGenerator.getAlaCartControls(serviceId, this.dynamicInputs);
@@ -156,7 +152,7 @@ export class ServicePopupService implements GenericPopupInterface {
   storeServiceInstance = (formValues:any, servicesQty:number, dynamicInputs:any, serviceModel:ModelInfo, serviceDetails: any ) => {
     formValues.bulkSize = this.uuidData['bulkSize'];
     formValues.modelInfo = serviceModel;
-    let instantiationType = this._store.getState().service.serviceHierarchy[serviceModel.modelVersionId].service.instantiationType;
+    let instantiationType = this._store.getState().service.serviceHierarchy[serviceModel.modelVersionId].service.vidNotions.instantiationType;
     this.setIsALaCarte(formValues, instantiationType);
     this.setTestApi(formValues);
     Object.assign(formValues, serviceDetails);
@@ -173,7 +169,7 @@ export class ServicePopupService implements GenericPopupInterface {
   };
 
   setIsALaCarte = (formValues: any, instantiationType) => {
-    formValues.isALaCarte = instantiationType === 'A-La-Carte';
+    formValues.isALaCarte = instantiationType === 'ALaCarte';
   };
 
   setTestApi = (formValues: any) =>{
index 66e12d4..24bbac5 100644 (file)
@@ -27,17 +27,12 @@ class MockReduxStore<T> {
           "FLAG_NETWORK_TO_ASYNC_INSTANTIATION": false,
           "FLAG_SHOW_ASSIGNMENTS": true,
           "FLAG_FABRIC_CONFIGURATION_ASSIGNMENTS": true,
-          "FLAG_UNASSIGN_SERVICE": true,
           "FLAG_SHOW_VERIFY_SERVICE": false,
-          "FLAG_COLLECTION_RESOURCE_SUPPORT": true,
-          "FLAG_DUPLICATE_VNF": true,
           "FLAG_SERVICE_MODEL_CACHE": true,
           "FLAG_ADVANCED_PORTS_FILTER": true,
           "CREATE_INSTANCE_TEST": false,
           "FLAG_SETTING_DEFAULTS_IN_DRAWING_BOARD": false,
           "FLAG_REGION_ID_FROM_REMOTE": true,
-          "FLAG_ASYNC_INSTANTIATION": true,
-          "FLAG_ASYNC_JOBS": true,
           "EMPTY_DRAWING_BOARD_TEST": false,
           "FLAG_ADD_MSO_TESTAPI_FIELD": true
         },
@@ -61,11 +56,11 @@ class MockReduxStore<T> {
               "inputs": {}
             },
             "vnfs": {
-              "VF_vMee 0": {
+              "VF_vGeraldine 0": {
                 "uuid": "d6557200-ecf2-4641-8094-5393ae3aae60",
                 "invariantUuid": "4160458e-f648-4b30-a176-43881ffffe9e",
-                "description": "VSP_vMee",
-                "name": "VF_vMee",
+                "description": "VSP_vGeraldine",
+                "name": "VF_vGeraldine",
                 "version": "2.0",
                 "customizationUuid": "91415b44-753d-494c-926a-456a9172bbb9",
                 "inputs": {},
@@ -236,74 +231,74 @@ class MockReduxStore<T> {
                   "sctp-b-egress-dst_end_port": "65535.0"
                 },
                 "type": "VF",
-                "modelCustomizationName": "VF_vMee 0",
+                "modelCustomizationName": "VF_vGeraldine 0",
                 "vfModules": {
-                  "vf_vmee0..VfVmee..vmme_vlc..module-1": {
+                  "vf_vgeraldine0..VfVgeraldine..vflorence_vlc..module-1": {
                     "uuid": "522159d5-d6e0-4c2a-aa44-5a542a12a830",
                     "invariantUuid": "98a7c88b-b577-476a-90e4-e25a5871e02b",
                     "customizationUuid": "55b1be94-671a-403e-a26c-667e9c47d091",
                     "description": null,
-                    "name": "VfVmee..vmme_vlc..module-1",
+                    "name": "VfVgeraldine..vflorence_vlc..module-1",
                     "version": "2",
-                    "modelCustomizationName": "VfVmee..vmme_vlc..module-1",
+                    "modelCustomizationName": "VfVgeraldine..vflorence_vlc..module-1",
                     "properties": {
                       "minCountInstances": 0,
                       "maxCountInstances": null,
                       "initialCount": 0,
-                      "vfModuleLabel": "vmme_vlc"
+                      "vfModuleLabel": "vflorence_vlc"
                     },
                     "inputs": {},
                     "volumeGroupAllowed": true
                   },
-                  "vf_vmee0..VfVmee..vmme_gpb..module-2": {
+                  "vf_vgeraldine0..VfVgeraldine..vflorence_gpb..module-2": {
                     "uuid": "41708296-e443-4c71-953f-d9a010f059e1",
                     "invariantUuid": "1cca90b8-3490-495e-87da-3f3e4c57d5b9",
                     "customizationUuid": "6add59e0-7fe1-4bc4-af48-f8812422ae7c",
                     "description": null,
-                    "name": "VfVmee..vmme_gpb..module-2",
+                    "name": "VfVgeraldine..vflorence_gpb..module-2",
                     "version": "2",
-                    "modelCustomizationName": "VfVmee..vmme_gpb..module-2",
+                    "modelCustomizationName": "VfVgeraldine..vflorence_gpb..module-2",
                     "properties": {
                       "minCountInstances": 0,
                       "maxCountInstances": null,
                       "initialCount": 0,
-                      "vfModuleLabel": "vmme_gpb"
+                      "vfModuleLabel": "vflorence_gpb"
                     },
                     "inputs": {},
                     "volumeGroupAllowed": false
                   },
-                  "vf_vmee0..VfVmee..base_vmme..module-0": {
+                  "vf_vgeraldine0..VfVgeraldine..base_vflorence..module-0": {
                     "uuid": "a27f5cfc-7f12-4f99-af08-0af9c3885c87",
                     "invariantUuid": "a6f9e51a-2b35-416a-ae15-15e58d61f36d",
                     "customizationUuid": "f8c040f1-7e51-4a11-aca8-acf256cfd861",
                     "description": null,
-                    "name": "VfVmee..base_vmme..module-0",
+                    "name": "VfVgeraldine..base_vflorence..module-0",
                     "version": "2",
-                    "modelCustomizationName": "VfVmee..base_vmme..module-0",
+                    "modelCustomizationName": "VfVgeraldine..base_vflorence..module-0",
                     "properties": {
                       "minCountInstances": 1,
                       "maxCountInstances": 1,
                       "initialCount": 1,
-                      "vfModuleLabel": "base_vmme"
+                      "vfModuleLabel": "base_vflorence"
                     },
                     "inputs": {},
                     "volumeGroupAllowed": true
                   }
                 },
                 "volumeGroups": {
-                  "vf_vmee0..VfVmee..base_vmme..module-0": {
+                  "vf_vgeraldine0..VfVgeraldine..base_vflorence..module-0": {
                     "uuid": "a27f5cfc-7f12-4f99-af08-0af9c3885c87",
                     "invariantUuid": "a6f9e51a-2b35-416a-ae15-15e58d61f36d",
                     "customizationUuid": "f8c040f1-7e51-4a11-aca8-acf256cfd861",
                     "description": null,
-                    "name": "VfVmee..base_vmme..module-0",
+                    "name": "VfVgeraldine..base_vflorence..module-0",
                     "version": "2",
-                    "modelCustomizationName": "VfVmee..base_vmme..module-0",
+                    "modelCustomizationName": "VfVgeraldine..base_vflorence..module-0",
                     "properties": {
                       "minCountInstances": 1,
                       "maxCountInstances": 1,
                       "initialCount": 1,
-                      "vfModuleLabel": "base_vmme"
+                      "vfModuleLabel": "base_vflorence"
                     },
                     "inputs": {}
                   }
@@ -332,7 +327,7 @@ class MockReduxStore<T> {
                 "modelCustomizationName": "ExtVL 0"
               }
             },
-            "collectionResource": {},
+            "collectionResources": {},
             "configurations": {
               "Port Mirroring Configuration By Policy 0": {
                 "uuid": "b4398538-e89d-4f13-b33d-ca323434ba50",
@@ -353,72 +348,72 @@ class MockReduxStore<T> {
             },
             "serviceProxies": {},
             "vfModules": {
-              "vf_vmee0..VfVmee..vmme_vlc..module-1": {
+              "vf_vgeraldine0..VfVgeraldine..vflorence_vlc..module-1": {
                 "uuid": "522159d5-d6e0-4c2a-aa44-5a542a12a830",
                 "invariantUuid": "98a7c88b-b577-476a-90e4-e25a5871e02b",
                 "customizationUuid": "55b1be94-671a-403e-a26c-667e9c47d091",
                 "description": null,
-                "name": "VfVmee..vmme_vlc..module-1",
+                "name": "VfVgeraldine..vflorence_vlc..module-1",
                 "version": "2",
-                "modelCustomizationName": "VfVmee..vmme_vlc..module-1",
+                "modelCustomizationName": "VfVgeraldine..vflorence_vlc..module-1",
                 "properties": {
                   "minCountInstances": 0,
                   "maxCountInstances": null,
                   "initialCount": 0,
-                  "vfModuleLabel": "vmme_vlc"
+                  "vfModuleLabel": "vflorence_vlc"
                 },
                 "inputs": {},
                 "volumeGroupAllowed": true
               },
-              "vf_vmee0..VfVmee..vmme_gpb..module-2": {
+              "vf_vgeraldine0..VfVgeraldine..vflorence_gpb..module-2": {
                 "uuid": "41708296-e443-4c71-953f-d9a010f059e1",
                 "invariantUuid": "1cca90b8-3490-495e-87da-3f3e4c57d5b9",
                 "customizationUuid": "6add59e0-7fe1-4bc4-af48-f8812422ae7c",
                 "description": null,
-                "name": "VfVmee..vmme_gpb..module-2",
+                "name": "VfVgeraldine..vflorence_gpb..module-2",
                 "version": "2",
-                "modelCustomizationName": "VfVmee..vmme_gpb..module-2",
+                "modelCustomizationName": "VfVgeraldine..vflorence_gpb..module-2",
                 "properties": {
                   "minCountInstances": 0,
                   "maxCountInstances": null,
                   "initialCount": 0,
-                  "vfModuleLabel": "vmme_gpb"
+                  "vfModuleLabel": "vflorence_gpb"
                 },
                 "inputs": {},
                 "volumeGroupAllowed": false
               },
-              "vf_vmee0..VfVmee..base_vmme..module-0": {
+              "vf_vgeraldine0..VfVgeraldine..base_vflorence..module-0": {
                 "uuid": "a27f5cfc-7f12-4f99-af08-0af9c3885c87",
                 "invariantUuid": "a6f9e51a-2b35-416a-ae15-15e58d61f36d",
                 "customizationUuid": "f8c040f1-7e51-4a11-aca8-acf256cfd861",
                 "description": null,
-                "name": "VfVmee..base_vmme..module-0",
+                "name": "VfVgeraldine..base_vflorence..module-0",
                 "version": "2",
-                "modelCustomizationName": "VfVmee..base_vmme..module-0",
+                "modelCustomizationName": "VfVgeraldine..base_vflorence..module-0",
                 "properties": {
                   "minCountInstances": 1,
                   "maxCountInstances": 1,
                   "initialCount": 1,
-                  "vfModuleLabel": "base_vmme"
+                  "vfModuleLabel": "base_vflorence"
                 },
                 "inputs": {},
                 "volumeGroupAllowed": true
               }
             },
             "volumeGroups": {
-              "vf_vmee0..VfVmee..base_vmme..module-0": {
+              "vf_vgeraldine0..VfVgeraldine..base_vflorence..module-0": {
                 "uuid": "a27f5cfc-7f12-4f99-af08-0af9c3885c87",
                 "invariantUuid": "a6f9e51a-2b35-416a-ae15-15e58d61f36d",
                 "customizationUuid": "f8c040f1-7e51-4a11-aca8-acf256cfd861",
                 "description": null,
-                "name": "VfVmee..base_vmme..module-0",
+                "name": "VfVgeraldine..base_vflorence..module-0",
                 "version": "2",
-                "modelCustomizationName": "VfVmee..base_vmme..module-0",
+                "modelCustomizationName": "VfVgeraldine..base_vflorence..module-0",
                 "properties": {
                   "minCountInstances": 1,
                   "maxCountInstances": 1,
                   "initialCount": 1,
-                  "vfModuleLabel": "base_vmme"
+                  "vfModuleLabel": "base_vflorence"
                 },
                 "inputs": {}
               }
@@ -439,7 +434,7 @@ class MockReduxStore<T> {
               "serviceEcompNaming": "false",
               "instantiationType": "A-La-Carte",
               "inputs": {
-                "2017488_adiodvpe0_ASN": {
+                "2017488_pasqualevpe0_ASN": {
                   "type": "string",
                   "description": "AV/PE",
                   "entry_schema": null,
@@ -451,11 +446,11 @@ class MockReduxStore<T> {
               }
             },
             "vnfs": {
-              "2017-388_ADIOD-vPE 1": {
+              "2017-388_PASQUALE-vPE 1": {
                 "uuid": "0903e1c0-8e03-4936-b5c2-260653b96413",
                 "invariantUuid": "00beb8f9-6d39-452f-816d-c709b9cbb87d",
-                "description": "Name ADIOD vPE Description The provider edge function for the ADIOD service supported by the Junipers VMX product Category Router Vendor Juniper Vendor Release Code 17.2 Owners Mary Fragale. Updated 9-25 to use v8.0 of the Juniper Valid 2 VLM",
-                "name": "2017-388_ADIOD-vPE",
+                "description": "Name PASQUALE vPE Description The provider edge function for the PASQUALE service supported by the Junipers VMX product Category Router Vendor Juniper Vendor Release Code 17.2 Owners Mary Fragale. Updated 9-25 to use v8.0 of the Juniper Valid 2 VLM",
+                "name": "2017-388_PASQUALE-vPE",
                 "version": "1.0",
                 "customizationUuid": "280dec31-f16d-488b-9668-4aae55d6648a",
                 "inputs": {
@@ -518,29 +513,29 @@ class MockReduxStore<T> {
                   "vnf_config_template_version": {
                     "displayName": "vnf_config_template_version",
                     "command": "get_input",
-                    "inputName": "2017488_adiodvpe0_vnf_config_template_version"
+                    "inputName": "2017488_pasqualevpe0_vnf_config_template_version"
                   },
                   "bandwidth_units": {
                     "displayName": "bandwidth_units",
                     "command": "get_input",
-                    "inputName": "adiodvpe0_bandwidth_units"
+                    "inputName": "pasqualevpe0_bandwidth_units"
                   },
-                  "bandwidth": {"displayName": "bandwidth", "command": "get_input", "inputName": "adiodvpe0_bandwidth"},
+                  "bandwidth": {"displayName": "bandwidth", "command": "get_input", "inputName": "pasqualevpe0_bandwidth"},
                   "AIC_CLLI": {
                     "displayName": "AIC_CLLI",
                     "command": "get_input",
-                    "inputName": "2017488_adiodvpe0_AIC_CLLI"
+                    "inputName": "2017488_pasqualevpe0_AIC_CLLI"
                   },
-                  "ASN": {"displayName": "ASN", "command": "get_input", "inputName": "2017488_adiodvpe0_ASN"},
+                  "ASN": {"displayName": "ASN", "command": "get_input", "inputName": "2017488_pasqualevpe0_ASN"},
                   "vnf_instance_name": {
                     "displayName": "vnf_instance_name",
                     "command": "get_input",
-                    "inputName": "2017488_adiodvpe0_vnf_instance_name"
+                    "inputName": "2017488_pasqualevpe0_vnf_instance_name"
                   }
                 },
                 "properties": {
                   "vmxvre_retype": "RE-VMX",
-                  "vnf_config_template_version": "get_input:2017488_adiodvpe0_vnf_config_template_version",
+                  "vnf_config_template_version": "get_input:2017488_pasqualevpe0_vnf_config_template_version",
                   "sriov44_net_id": "48d399b3-11ee-48a8-94d2-f0ea94d6be8d",
                   "int_ctl_net_id": "2f323477-6936-4d01-ac53-d849430281d9",
                   "vmxvpfe_sriov41_0_port_mac": "00:11:22:EF:AC:DF",
@@ -585,7 +580,7 @@ class MockReduxStore<T> {
                   "vmxvpfe_sriov43_0_port_unknownmulticastallow": "true",
                   "vmxvre_int_ctl_ip_0": "10.0.0.10",
                   "ecomp_generated_naming": "false",
-                  "AIC_CLLI": "get_input:2017488_adiodvpe0_AIC_CLLI",
+                  "AIC_CLLI": "get_input:2017488_pasqualevpe0_AIC_CLLI",
                   "vnf_name": "mtnj309me6vre",
                   "vmxvpfe_sriov41_0_port_unknownunicastallow": "true",
                   "vmxvre_volume_type_1": "HITACHI",
@@ -593,14 +588,14 @@ class MockReduxStore<T> {
                   "vmxvre_volume_type_0": "HITACHI",
                   "vmxvpfe_volume_type_0": "HITACHI",
                   "vmxvpfe_sriov43_0_port_broadcastallow": "true",
-                  "bandwidth_units": "get_input:adiodvpe0_bandwidth_units",
+                  "bandwidth_units": "get_input:pasqualevpe0_bandwidth_units",
                   "vnf_id": "123",
                   "vmxvre_oam_prefix": "24",
                   "availability_zone_0": "mtpocfo-kvm-az01",
-                  "ASN": "get_input:2017488_adiodvpe0_ASN",
+                  "ASN": "get_input:2017488_pasqualevpe0_ASN",
                   "vmxvre_chassis_i2cid": "161",
                   "vmxvpfe_name_0": "vPFEXI",
-                  "bandwidth": "get_input:adiodvpe0_bandwidth",
+                  "bandwidth": "get_input:pasqualevpe0_bandwidth",
                   "availability_zone_max_count": "1",
                   "vmxvre_volume_size_0": "45.0",
                   "vmxvre_volume_size_1": "50.0",
@@ -610,7 +605,7 @@ class MockReduxStore<T> {
                   "vmxvre_ore_present": "0",
                   "vmxvre_volume_name_0": "vREXI_FBVolume",
                   "vmxvre_type": "0",
-                  "vnf_instance_name": "get_input:2017488_adiodvpe0_vnf_instance_name",
+                  "vnf_instance_name": "get_input:2017488_pasqualevpe0_vnf_instance_name",
                   "vmxvpfe_sriov41_0_port_unknownmulticastallow": "true",
                   "oam_net_id": "b95eeb1d-d55d-4827-abb4-8ebb94941429",
                   "vmx_int_ctl_len": "24",
@@ -624,16 +619,16 @@ class MockReduxStore<T> {
                   "vmxvpfe_flavor_name": "ns.c20r16d25.v5"
                 },
                 "type": "VF",
-                "modelCustomizationName": "2017-388_ADIOD-vPE 1",
+                "modelCustomizationName": "2017-388_PASQUALE-vPE 1",
                 "vfModules": {},
                 "volumeGroups": {},
                 "vfcInstanceGroups": {}
               },
-              "2017-388_ADIOD-vPE 0": {
+              "2017-388_PASQUALE-vPE 0": {
                 "uuid": "afacccf6-397d-45d6-b5ae-94c39734b168",
                 "invariantUuid": "72e465fe-71b1-4e7b-b5ed-9496118ff7a8",
-                "description": "Name ADIOD vPE Description The provider edge function for the ADIOD service supported by the Junipers VMX product Category Router Vendor Juniper Vendor Release Code 17.2 Owners Mary Fragale. Updated 9-25 to use v8.0 of the Juniper Valid 2 VLM",
-                "name": "2017-388_ADIOD-vPE",
+                "description": "Name PASQUALE vPE Description The provider edge function for the PASQUALE service supported by the Junipers VMX product Category Router Vendor Juniper Vendor Release Code 17.2 Owners Mary Fragale. Updated 9-25 to use v8.0 of the Juniper Valid 2 VLM",
+                "name": "2017-388_PASQUALE-vPE",
                 "version": "4.0",
                 "customizationUuid": "b3c76f73-eeb5-4fb6-9d31-72a889f1811c",
                 "inputs": {
@@ -696,29 +691,29 @@ class MockReduxStore<T> {
                   "vnf_config_template_version": {
                     "displayName": "vnf_config_template_version",
                     "command": "get_input",
-                    "inputName": "2017488_adiodvpe0_vnf_config_template_version"
+                    "inputName": "2017488_pasqualevpe0_vnf_config_template_version"
                   },
                   "bandwidth_units": {
                     "displayName": "bandwidth_units",
                     "command": "get_input",
-                    "inputName": "adiodvpe0_bandwidth_units"
+                    "inputName": "pasqualevpe0_bandwidth_units"
                   },
-                  "bandwidth": {"displayName": "bandwidth", "command": "get_input", "inputName": "adiodvpe0_bandwidth"},
+                  "bandwidth": {"displayName": "bandwidth", "command": "get_input", "inputName": "pasqualevpe0_bandwidth"},
                   "AIC_CLLI": {
                     "displayName": "AIC_CLLI",
                     "command": "get_input",
-                    "inputName": "2017488_adiodvpe0_AIC_CLLI"
+                    "inputName": "2017488_pasqualevpe0_AIC_CLLI"
                   },
-                  "ASN": {"displayName": "ASN", "command": "get_input", "inputName": "2017488_adiodvpe0_ASN"},
+                  "ASN": {"displayName": "ASN", "command": "get_input", "inputName": "2017488_pasqualevpe0_ASN"},
                   "vnf_instance_name": {
                     "displayName": "vnf_instance_name",
                     "command": "get_input",
-                    "inputName": "2017488_adiodvpe0_vnf_instance_name"
+                    "inputName": "2017488_pasqualevpe0_vnf_instance_name"
                   }
                 },
                 "properties": {
                   "vmxvre_retype": "RE-VMX",
-                  "vnf_config_template_version": "get_input:2017488_adiodvpe0_vnf_config_template_version",
+                  "vnf_config_template_version": "get_input:2017488_pasqualevpe0_vnf_config_template_version",
                   "sriov44_net_id": "48d399b3-11ee-48a8-94d2-f0ea94d6be8d",
                   "int_ctl_net_id": "2f323477-6936-4d01-ac53-d849430281d9",
                   "vmxvpfe_sriov41_0_port_mac": "00:11:22:EF:AC:DF",
@@ -764,7 +759,7 @@ class MockReduxStore<T> {
                   "vmxvpfe_sriov43_0_port_unknownmulticastallow": "true",
                   "vmxvre_int_ctl_ip_0": "10.0.0.10",
                   "ecomp_generated_naming": "false",
-                  "AIC_CLLI": "get_input:2017488_adiodvpe0_AIC_CLLI",
+                  "AIC_CLLI": "get_input:2017488_pasqualevpe0_AIC_CLLI",
                   "vnf_name": "mtnj309me6vre",
                   "vmxvpfe_sriov41_0_port_unknownunicastallow": "true",
                   "vmxvre_volume_type_1": "HITACHI",
@@ -772,14 +767,14 @@ class MockReduxStore<T> {
                   "vmxvre_volume_type_0": "HITACHI",
                   "vmxvpfe_volume_type_0": "HITACHI",
                   "vmxvpfe_sriov43_0_port_broadcastallow": "true",
-                  "bandwidth_units": "get_input:adiodvpe0_bandwidth_units",
+                  "bandwidth_units": "get_input:pasqualevpe0_bandwidth_units",
                   "vnf_id": "123",
                   "vmxvre_oam_prefix": "24",
                   "availability_zone_0": "mtpocfo-kvm-az01",
-                  "ASN": "get_input:2017488_adiodvpe0_ASN",
+                  "ASN": "get_input:2017488_pasqualevpe0_ASN",
                   "vmxvre_chassis_i2cid": "161",
                   "vmxvpfe_name_0": "vPFEXI",
-                  "bandwidth": "get_input:adiodvpe0_bandwidth",
+                  "bandwidth": "get_input:pasqualevpe0_bandwidth",
                   "availability_zone_max_count": "1",
                   "vmxvre_volume_size_0": "45.0",
                   "vmxvre_volume_size_1": "50.0",
@@ -789,7 +784,7 @@ class MockReduxStore<T> {
                   "vmxvre_ore_present": "0",
                   "vmxvre_volume_name_0": "vREXI_FBVolume",
                   "vmxvre_type": "0",
-                  "vnf_instance_name": "get_input:2017488_adiodvpe0_vnf_instance_name",
+                  "vnf_instance_name": "get_input:2017488_pasqualevpe0_vnf_instance_name",
                   "vmxvpfe_sriov41_0_port_unknownmulticastallow": "true",
                   "oam_net_id": "b95eeb1d-d55d-4827-abb4-8ebb94941429",
                   "vmx_int_ctl_len": "24",
@@ -803,16 +798,16 @@ class MockReduxStore<T> {
                   "vmxvpfe_flavor_name": "ns.c20r16d25.v5"
                 },
                 "type": "VF",
-                "modelCustomizationName": "2017-388_ADIOD-vPE 0",
+                "modelCustomizationName": "2017-388_PASQUALE-vPE 0",
                 "vfModules": {},
                 "volumeGroups": {},
                 "vfcInstanceGroups": {}
               },
-              "2017-488_ADIOD-vPE 0": {
+              "2017-488_PASQUALE-vPE 0": {
                 "uuid": "69e09f68-8b63-4cc9-b9ff-860960b5db09",
                 "invariantUuid": "72e465fe-71b1-4e7b-b5ed-9496118ff7a8",
-                "description": "Name ADIOD vPE Description The provider edge function for the ADIOD service supported by the Junipers VMX product Category Router Vendor Juniper Vendor Release Code 17.2 Owners Mary Fragale. Updated 9-25 to use v8.0 of the Juniper Valid 2 VLM",
-                "name": "2017-488_ADIOD-vPE",
+                "description": "Name PASQUALE vPE Description The provider edge function for the PASQUALE service supported by the Junipers VMX product Category Router Vendor Juniper Vendor Release Code 17.2 Owners Mary Fragale. Updated 9-25 to use v8.0 of the Juniper Valid 2 VLM",
+                "name": "2017-488_PASQUALE-vPE",
                 "version": "5.0",
                 "customizationUuid": "1da7b585-5e61-4993-b95e-8e6606c81e45",
                 "inputs": {
@@ -875,29 +870,29 @@ class MockReduxStore<T> {
                   "vnf_config_template_version": {
                     "displayName": "vnf_config_template_version",
                     "command": "get_input",
-                    "inputName": "2017488_adiodvpe0_vnf_config_template_version"
+                    "inputName": "2017488_pasqualevpe0_vnf_config_template_version"
                   },
                   "bandwidth_units": {
                     "displayName": "bandwidth_units",
                     "command": "get_input",
-                    "inputName": "adiodvpe0_bandwidth_units"
+                    "inputName": "pasqualevpe0_bandwidth_units"
                   },
-                  "bandwidth": {"displayName": "bandwidth", "command": "get_input", "inputName": "adiodvpe0_bandwidth"},
+                  "bandwidth": {"displayName": "bandwidth", "command": "get_input", "inputName": "pasqualevpe0_bandwidth"},
                   "AIC_CLLI": {
                     "displayName": "AIC_CLLI",
                     "command": "get_input",
-                    "inputName": "2017488_adiodvpe0_AIC_CLLI"
+                    "inputName": "2017488_pasqualevpe0_AIC_CLLI"
                   },
-                  "ASN": {"displayName": "ASN", "command": "get_input", "inputName": "2017488_adiodvpe0_ASN"},
+                  "ASN": {"displayName": "ASN", "command": "get_input", "inputName": "2017488_pasqualevpe0_ASN"},
                   "vnf_instance_name": {
                     "displayName": "vnf_instance_name",
                     "command": "get_input",
-                    "inputName": "2017488_adiodvpe0_vnf_instance_name"
+                    "inputName": "2017488_pasqualevpe0_vnf_instance_name"
                   }
                 },
                 "properties": {
                   "vmxvre_retype": "RE-VMX",
-                  "vnf_config_template_version": "get_input:2017488_adiodvpe0_vnf_config_template_version",
+                  "vnf_config_template_version": "get_input:2017488_pasqualevpe0_vnf_config_template_version",
                   "sriov44_net_id": "48d399b3-11ee-48a8-94d2-f0ea94d6be8d",
                   "int_ctl_net_id": "2f323477-6936-4d01-ac53-d849430281d9",
                   "vmxvpfe_sriov41_0_port_mac": "00:11:22:EF:AC:DF",
@@ -944,7 +939,7 @@ class MockReduxStore<T> {
                   "vmxvpfe_sriov43_0_port_unknownmulticastallow": "true",
                   "vmxvre_int_ctl_ip_0": "10.0.0.10",
                   "ecomp_generated_naming": "false",
-                  "AIC_CLLI": "get_input:2017488_adiodvpe0_AIC_CLLI",
+                  "AIC_CLLI": "get_input:2017488_pasqualevpe0_AIC_CLLI",
                   "vnf_name": "mtnj309me6vre",
                   "vmxvpfe_sriov41_0_port_unknownunicastallow": "true",
                   "vmxvre_volume_type_1": "HITACHI",
@@ -952,14 +947,14 @@ class MockReduxStore<T> {
                   "vmxvre_volume_type_0": "HITACHI",
                   "vmxvpfe_volume_type_0": "HITACHI",
                   "vmxvpfe_sriov43_0_port_broadcastallow": "true",
-                  "bandwidth_units": "get_input:adiodvpe0_bandwidth_units",
+                  "bandwidth_units": "get_input:pasqualevpe0_bandwidth_units",
                   "vnf_id": "123",
                   "vmxvre_oam_prefix": "24",
                   "availability_zone_0": "mtpocfo-kvm-az01",
-                  "ASN": "get_input:2017488_adiodvpe0_ASN",
+                  "ASN": "get_input:2017488_pasqualevpe0_ASN",
                   "vmxvre_chassis_i2cid": "161",
                   "vmxvpfe_name_0": "vPFEXI",
-                  "bandwidth": "get_input:adiodvpe0_bandwidth",
+                  "bandwidth": "get_input:pasqualevpe0_bandwidth",
                   "availability_zone_max_count": "1",
                   "vmxvre_volume_size_0": "45.0",
                   "vmxvre_volume_size_1": "50.0",
@@ -969,7 +964,7 @@ class MockReduxStore<T> {
                   "vmxvre_ore_present": "0",
                   "vmxvre_volume_name_0": "vREXI_FBVolume",
                   "vmxvre_type": "0",
-                  "vnf_instance_name": "get_input:2017488_adiodvpe0_vnf_instance_name",
+                  "vnf_instance_name": "get_input:2017488_pasqualevpe0_vnf_instance_name",
                   "vmxvpfe_sriov41_0_port_unknownmulticastallow": "true",
                   "oam_net_id": "b95eeb1d-d55d-4827-abb4-8ebb94941429",
                   "vmx_int_ctl_len": "24",
@@ -983,82 +978,82 @@ class MockReduxStore<T> {
                   "vmxvpfe_flavor_name": "ns.c20r16d25.v5"
                 },
                 "type": "VF",
-                "modelCustomizationName": "2017-488_ADIOD-vPE 0",
+                "modelCustomizationName": "2017-488_PASQUALE-vPE 0",
                 "vfModules": {
-                  "2017488_adiodvpe0..2017488AdiodVpe..ADIOD_vRE_BV..module-1": {
+                  "2017488_pasqualevpe0..2017488PasqualeVpe..PASQUALE_vRE_BV..module-1": {
                     "uuid": "25284168-24bb-4698-8cb4-3f509146eca5",
                     "invariantUuid": "7253ff5c-97f0-4b8b-937c-77aeb4d79aa1",
                     "customizationUuid": "f7e7c365-60cf-49a9-9ebf-a1aa11b9d401",
                     "description": null,
-                    "name": "2017488AdiodVpe..ADIOD_vRE_BV..module-1",
+                    "name": "2017488PasqualeVpe..PASQUALE_vRE_BV..module-1",
                     "version": "6",
-                    "modelCustomizationName": "2017488AdiodVpe..ADIOD_vRE_BV..module-1",
+                    "modelCustomizationName": "2017488PasqualeVpe..PASQUALE_vRE_BV..module-1",
                     "properties": {
                       "minCountInstances": 0,
                       "maxCountInstances": null,
                       "initialCount": 0,
-                      "vfModuleLabel": "ADIOD_vRE_BV"
+                      "vfModuleLabel": "PASQUALE_vRE_BV"
                     },
                     "inputs": {
-                      "adiodvpe0_bandwidth": {
+                      "pasqualevpe0_bandwidth": {
                         "type": "string",
                         "description": "Requested VPE bandwidth",
                         "entry_schema": null,
                         "inputProperties": {
                           "sourceType": "HEAT",
-                          "vfModuleLabel": "ADIOD_vRE_BV",
+                          "vfModuleLabel": "PASQUALE_vRE_BV",
                           "paramName": "bandwidth"
                         },
                         "constraints": null,
                         "required": true,
                         "default": "10"
                       },
-                      "2017488_adiodvpe0_vnf_instance_name": {
+                      "2017488_pasqualevpe0_vnf_instance_name": {
                         "type": "string",
                         "description": "The hostname assigned to the vpe.",
                         "entry_schema": null,
                         "inputProperties": {
                           "sourceType": "HEAT",
-                          "vfModuleLabel": "ADIOD_vRE_BV",
+                          "vfModuleLabel": "PASQUALE_vRE_BV",
                           "paramName": "vnf_instance_name"
                         },
                         "constraints": null,
                         "required": true,
                         "default": "mtnj309me6"
                       },
-                      "2017488_adiodvpe0_vnf_config_template_version": {
+                      "2017488_pasqualevpe0_vnf_config_template_version": {
                         "type": "string",
                         "description": "VPE Software Version",
                         "entry_schema": null,
                         "inputProperties": {
                           "sourceType": "HEAT",
-                          "vfModuleLabel": "ADIOD_vRE_BV",
+                          "vfModuleLabel": "PASQUALE_vRE_BV",
                           "paramName": "vnf_config_template_version"
                         },
                         "constraints": null,
                         "required": true,
                         "default": "17.2"
                       },
-                      "2017488_adiodvpe0_AIC_CLLI": {
+                      "2017488_pasqualevpe0_AIC_CLLI": {
                         "type": "string",
                         "description": "AIC Site CLLI",
                         "entry_schema": null,
                         "inputProperties": {
                           "sourceType": "HEAT",
-                          "vfModuleLabel": "ADIOD_vRE_BV",
+                          "vfModuleLabel": "PASQUALE_vRE_BV",
                           "paramName": "AIC_CLLI"
                         },
                         "constraints": null,
                         "required": true,
                         "default": "ATLMY8GA"
                       },
-                      "adiodvpe0_bandwidth_units": {
+                      "pasqualevpe0_bandwidth_units": {
                         "type": "string",
                         "description": "Units of bandwidth",
                         "entry_schema": null,
                         "inputProperties": {
                           "sourceType": "HEAT",
-                          "vfModuleLabel": "ADIOD_vRE_BV",
+                          "vfModuleLabel": "PASQUALE_vRE_BV",
                           "paramName": "bandwidth_units"
                         },
                         "constraints": null,
@@ -1068,116 +1063,116 @@ class MockReduxStore<T> {
                     },
                     "volumeGroupAllowed": true
                   },
-                  "2017488_adiodvpe0..2017488AdiodVpe..ADIOD_base_vPE_BV..module-0": {
+                  "2017488_pasqualevpe0..2017488PasqualeVpe..PASQUALE_base_vPE_BV..module-0": {
                     "uuid": "f8360508-3f17-4414-a2ed-6bc71161e8db",
                     "invariantUuid": "b34833bb-6aa9-4ad6-a831-70b06367a091",
                     "customizationUuid": "a55961b2-2065-4ab0-a5b7-2fcee1c227e3",
                     "description": null,
-                    "name": "2017488AdiodVpe..ADIOD_base_vPE_BV..module-0",
+                    "name": "2017488PasqualeVpe..PASQUALE_base_vPE_BV..module-0",
                     "version": "5",
-                    "modelCustomizationName": "2017488AdiodVpe..ADIOD_base_vPE_BV..module-0",
+                    "modelCustomizationName": "2017488PasqualeVpe..PASQUALE_base_vPE_BV..module-0",
                     "properties": {
                       "minCountInstances": 1,
                       "maxCountInstances": 1,
                       "initialCount": 1,
-                      "vfModuleLabel": "ADIOD_base_vPE_BV"
+                      "vfModuleLabel": "PASQUALE_base_vPE_BV"
                     },
                     "inputs": {},
                     "volumeGroupAllowed": false
                   },
-                  "2017488_adiodvpe0..2017488AdiodVpe..ADIOD_vPFE_BV..module-2": {
+                  "2017488_pasqualevpe0..2017488PasqualeVpe..PASQUALE_vPFE_BV..module-2": {
                     "uuid": "0a0dd9d4-31d3-4c3a-ae89-a02f383e6a9a",
                     "invariantUuid": "eff8cc59-53a1-4101-aed7-8cf24ecf8339",
                     "customizationUuid": "3cd946bb-50e0-40d8-96d3-c9023520b557",
                     "description": null,
-                    "name": "2017488AdiodVpe..ADIOD_vPFE_BV..module-2",
+                    "name": "2017488PasqualeVpe..PASQUALE_vPFE_BV..module-2",
                     "version": "6",
-                    "modelCustomizationName": "2017488AdiodVpe..ADIOD_vPFE_BV..module-2",
+                    "modelCustomizationName": "2017488PasqualeVpe..PASQUALE_vPFE_BV..module-2",
                     "properties": {
                       "minCountInstances": 0,
                       "maxCountInstances": null,
                       "initialCount": 0,
-                      "vfModuleLabel": "ADIOD_vPFE_BV"
+                      "vfModuleLabel": "PASQUALE_vPFE_BV"
                     },
                     "inputs": {},
                     "volumeGroupAllowed": true
                   }
                 },
                 "volumeGroups": {
-                  "2017488_adiodvpe0..2017488AdiodVpe..ADIOD_vRE_BV..module-1": {
+                  "2017488_pasqualevpe0..2017488PasqualeVpe..PASQUALE_vRE_BV..module-1": {
                     "uuid": "25284168-24bb-4698-8cb4-3f509146eca5",
                     "invariantUuid": "7253ff5c-97f0-4b8b-937c-77aeb4d79aa1",
                     "customizationUuid": "f7e7c365-60cf-49a9-9ebf-a1aa11b9d401",
                     "description": null,
-                    "name": "2017488AdiodVpe..ADIOD_vRE_BV..module-1",
+                    "name": "2017488PasqualeVpe..PASQUALE_vRE_BV..module-1",
                     "version": "6",
-                    "modelCustomizationName": "2017488AdiodVpe..ADIOD_vRE_BV..module-1",
+                    "modelCustomizationName": "2017488PasqualeVpe..PASQUALE_vRE_BV..module-1",
                     "properties": {
                       "minCountInstances": 0,
                       "maxCountInstances": null,
                       "initialCount": 0,
-                      "vfModuleLabel": "ADIOD_vRE_BV"
+                      "vfModuleLabel": "PASQUALE_vRE_BV"
                     },
                     "inputs": {
-                      "adiodvpe0_bandwidth": {
+                      "pasqualevpe0_bandwidth": {
                         "type": "string",
                         "description": "Requested VPE bandwidth",
                         "entry_schema": null,
                         "inputProperties": {
                           "sourceType": "HEAT",
-                          "vfModuleLabel": "ADIOD_vRE_BV",
+                          "vfModuleLabel": "PASQUALE_vRE_BV",
                           "paramName": "bandwidth"
                         },
                         "constraints": null,
                         "required": true,
                         "default": "10"
                       },
-                      "2017488_adiodvpe0_vnf_instance_name": {
+                      "2017488_pasqualevpe0_vnf_instance_name": {
                         "type": "string",
                         "description": "The hostname assigned to the vpe.",
                         "entry_schema": null,
                         "inputProperties": {
                           "sourceType": "HEAT",
-                          "vfModuleLabel": "ADIOD_vRE_BV",
+                          "vfModuleLabel": "PASQUALE_vRE_BV",
                           "paramName": "vnf_instance_name"
                         },
                         "constraints": null,
                         "required": true,
                         "default": "mtnj309me6"
                       },
-                      "2017488_adiodvpe0_vnf_config_template_version": {
+                      "2017488_pasqualevpe0_vnf_config_template_version": {
                         "type": "string",
                         "description": "VPE Software Version",
                         "entry_schema": null,
                         "inputProperties": {
                           "sourceType": "HEAT",
-                          "vfModuleLabel": "ADIOD_vRE_BV",
+                          "vfModuleLabel": "PASQUALE_vRE_BV",
                           "paramName": "vnf_config_template_version"
                         },
                         "constraints": null,
                         "required": true,
                         "default": "17.2"
                       },
-                      "2017488_adiodvpe0_AIC_CLLI": {
+                      "2017488_pasqualevpe0_AIC_CLLI": {
                         "type": "string",
                         "description": "AIC Site CLLI",
                         "entry_schema": null,
                         "inputProperties": {
                           "sourceType": "HEAT",
-                          "vfModuleLabel": "ADIOD_vRE_BV",
+                          "vfModuleLabel": "PASQUALE_vRE_BV",
                           "paramName": "AIC_CLLI"
                         },
                         "constraints": null,
                         "required": true,
                         "default": "ATLMY8GA"
                       },
-                      "adiodvpe0_bandwidth_units": {
+                      "pasqualevpe0_bandwidth_units": {
                         "type": "string",
                         "description": "Units of bandwidth",
                         "entry_schema": null,
                         "inputProperties": {
                           "sourceType": "HEAT",
-                          "vfModuleLabel": "ADIOD_vRE_BV",
+                          "vfModuleLabel": "PASQUALE_vRE_BV",
                           "paramName": "bandwidth_units"
                         },
                         "constraints": null,
@@ -1186,19 +1181,19 @@ class MockReduxStore<T> {
                       }
                     }
                   },
-                  "2017488_adiodvpe0..2017488AdiodVpe..ADIOD_vPFE_BV..module-2": {
+                  "2017488_pasqualevpe0..2017488PasqualeVpe..PASQUALE_vPFE_BV..module-2": {
                     "uuid": "0a0dd9d4-31d3-4c3a-ae89-a02f383e6a9a",
                     "invariantUuid": "eff8cc59-53a1-4101-aed7-8cf24ecf8339",
                     "customizationUuid": "3cd946bb-50e0-40d8-96d3-c9023520b557",
                     "description": null,
-                    "name": "2017488AdiodVpe..ADIOD_vPFE_BV..module-2",
+                    "name": "2017488PasqualeVpe..PASQUALE_vPFE_BV..module-2",
                     "version": "6",
-                    "modelCustomizationName": "2017488AdiodVpe..ADIOD_vPFE_BV..module-2",
+                    "modelCustomizationName": "2017488PasqualeVpe..PASQUALE_vPFE_BV..module-2",
                     "properties": {
                       "minCountInstances": 0,
                       "maxCountInstances": null,
                       "initialCount": 0,
-                      "vfModuleLabel": "ADIOD_vPFE_BV"
+                      "vfModuleLabel": "PASQUALE_vPFE_BV"
                     },
                     "inputs": {}
                   }
@@ -1284,81 +1279,81 @@ class MockReduxStore<T> {
                 "modelCustomizationName": "ExtVL 0"
               }
             },
-            "collectionResource": {},
+            "collectionResources": {},
             "configurations": {},
             "fabricConfigurations": {},
             "serviceProxies": {},
             "vfModules": {
-              "2017488_adiodvpe0..2017488AdiodVpe..ADIOD_vRE_BV..module-1": {
+              "2017488_pasqualevpe0..2017488PasqualeVpe..PASQUALE_vRE_BV..module-1": {
                 "uuid": "25284168-24bb-4698-8cb4-3f509146eca5",
                 "invariantUuid": "7253ff5c-97f0-4b8b-937c-77aeb4d79aa1",
                 "customizationUuid": "f7e7c365-60cf-49a9-9ebf-a1aa11b9d401",
                 "description": null,
-                "name": "2017488AdiodVpe..ADIOD_vRE_BV..module-1",
+                "name": "2017488PasqualeVpe..PASQUALE_vRE_BV..module-1",
                 "version": "6",
-                "modelCustomizationName": "2017488AdiodVpe..ADIOD_vRE_BV..module-1",
+                "modelCustomizationName": "2017488PasqualeVpe..PASQUALE_vRE_BV..module-1",
                 "properties": {
                   "minCountInstances": 0,
                   "maxCountInstances": null,
                   "initialCount": 0,
-                  "vfModuleLabel": "ADIOD_vRE_BV"
+                  "vfModuleLabel": "PASQUALE_vRE_BV"
                 },
                 "inputs": {
-                  "adiodvpe0_bandwidth": {
+                  "pasqualevpe0_bandwidth": {
                     "type": "string",
                     "description": "Requested VPE bandwidth",
                     "entry_schema": null,
                     "inputProperties": {
                       "sourceType": "HEAT",
-                      "vfModuleLabel": "ADIOD_vRE_BV",
+                      "vfModuleLabel": "PASQUALE_vRE_BV",
                       "paramName": "bandwidth"
                     },
                     "constraints": null,
                     "required": true,
                     "default": "10"
                   },
-                  "2017488_adiodvpe0_vnf_instance_name": {
+                  "2017488_pasqualevpe0_vnf_instance_name": {
                     "type": "string",
                     "description": "The hostname assigned to the vpe.",
                     "entry_schema": null,
                     "inputProperties": {
                       "sourceType": "HEAT",
-                      "vfModuleLabel": "ADIOD_vRE_BV",
+                      "vfModuleLabel": "PASQUALE_vRE_BV",
                       "paramName": "vnf_instance_name"
                     },
                     "constraints": null,
                     "required": true,
                     "default": "mtnj309me6"
                   },
-                  "2017488_adiodvpe0_vnf_config_template_version": {
+                  "2017488_pasqualevpe0_vnf_config_template_version": {
                     "type": "string",
                     "description": "VPE Software Version",
                     "entry_schema": null,
                     "inputProperties": {
                       "sourceType": "HEAT",
-                      "vfModuleLabel": "ADIOD_vRE_BV",
+                      "vfModuleLabel": "PASQUALE_vRE_BV",
                       "paramName": "vnf_config_template_version"
                     },
                     "constraints": null,
                     "required": true,
                     "default": "17.2"
                   },
-                  "2017488_adiodvpe0_AIC_CLLI": {
+                  "2017488_pasqualevpe0_AIC_CLLI": {
                     "type": "string",
                     "description": "AIC Site CLLI",
                     "entry_schema": null,
-                    "inputProperties": {"sourceType": "HEAT", "vfModuleLabel": "ADIOD_vRE_BV", "paramName": "AIC_CLLI"},
+                    "inputProperties": {"sourceType": "HEAT", "vfModuleLabel": "PASQUALE_vRE_BV", "paramName": "AIC_CLLI"},
                     "constraints": null,
                     "required": true,
                     "default": "ATLMY8GA"
                   },
-                  "adiodvpe0_bandwidth_units": {
+                  "pasqualevpe0_bandwidth_units": {
                     "type": "string",
                     "description": "Units of bandwidth",
                     "entry_schema": null,
                     "inputProperties": {
                       "sourceType": "HEAT",
-                      "vfModuleLabel": "ADIOD_vRE_BV",
+                      "vfModuleLabel": "PASQUALE_vRE_BV",
                       "paramName": "bandwidth_units"
                     },
                     "constraints": null,
@@ -1368,112 +1363,112 @@ class MockReduxStore<T> {
                 },
                 "volumeGroupAllowed": true
               },
-              "2017488_adiodvpe0..2017488AdiodVpe..ADIOD_base_vPE_BV..module-0": {
+              "2017488_pasqualevpe0..2017488PasqualeVpe..PASQUALE_base_vPE_BV..module-0": {
                 "uuid": "f8360508-3f17-4414-a2ed-6bc71161e8db",
                 "invariantUuid": "b34833bb-6aa9-4ad6-a831-70b06367a091",
                 "customizationUuid": "a55961b2-2065-4ab0-a5b7-2fcee1c227e3",
                 "description": null,
-                "name": "2017488AdiodVpe..ADIOD_base_vPE_BV..module-0",
+                "name": "2017488PasqualeVpe..PASQUALE_base_vPE_BV..module-0",
                 "version": "5",
-                "modelCustomizationName": "2017488AdiodVpe..ADIOD_base_vPE_BV..module-0",
+                "modelCustomizationName": "2017488PasqualeVpe..PASQUALE_base_vPE_BV..module-0",
                 "properties": {
                   "minCountInstances": 1,
                   "maxCountInstances": 1,
                   "initialCount": 1,
-                  "vfModuleLabel": "ADIOD_base_vPE_BV"
+                  "vfModuleLabel": "PASQUALE_base_vPE_BV"
                 },
                 "inputs": {},
                 "volumeGroupAllowed": false
               },
-              "2017488_adiodvpe0..2017488AdiodVpe..ADIOD_vPFE_BV..module-2": {
+              "2017488_pasqualevpe0..2017488PasqualeVpe..PASQUALE_vPFE_BV..module-2": {
                 "uuid": "0a0dd9d4-31d3-4c3a-ae89-a02f383e6a9a",
                 "invariantUuid": "eff8cc59-53a1-4101-aed7-8cf24ecf8339",
                 "customizationUuid": "3cd946bb-50e0-40d8-96d3-c9023520b557",
                 "description": null,
-                "name": "2017488AdiodVpe..ADIOD_vPFE_BV..module-2",
+                "name": "2017488PasqualeVpe..PASQUALE_vPFE_BV..module-2",
                 "version": "6",
-                "modelCustomizationName": "2017488AdiodVpe..ADIOD_vPFE_BV..module-2",
+                "modelCustomizationName": "2017488PasqualeVpe..PASQUALE_vPFE_BV..module-2",
                 "properties": {
                   "minCountInstances": 0,
                   "maxCountInstances": null,
                   "initialCount": 0,
-                  "vfModuleLabel": "ADIOD_vPFE_BV"
+                  "vfModuleLabel": "PASQUALE_vPFE_BV"
                 },
                 "inputs": {},
                 "volumeGroupAllowed": true
               }
             },
             "volumeGroups": {
-              "2017488_adiodvpe0..2017488AdiodVpe..ADIOD_vRE_BV..module-1": {
+              "2017488_pasqualevpe0..2017488PasqualeVpe..PASQUALE_vRE_BV..module-1": {
                 "uuid": "25284168-24bb-4698-8cb4-3f509146eca5",
                 "invariantUuid": "7253ff5c-97f0-4b8b-937c-77aeb4d79aa1",
                 "customizationUuid": "f7e7c365-60cf-49a9-9ebf-a1aa11b9d401",
                 "description": null,
-                "name": "2017488AdiodVpe..ADIOD_vRE_BV..module-1",
+                "name": "2017488PasqualeVpe..PASQUALE_vRE_BV..module-1",
                 "version": "6",
-                "modelCustomizationName": "2017488AdiodVpe..ADIOD_vRE_BV..module-1",
+                "modelCustomizationName": "2017488PasqualeVpe..PASQUALE_vRE_BV..module-1",
                 "properties": {
                   "minCountInstances": 0,
                   "maxCountInstances": null,
                   "initialCount": 0,
-                  "vfModuleLabel": "ADIOD_vRE_BV"
+                  "vfModuleLabel": "PASQUALE_vRE_BV"
                 },
                 "inputs": {
-                  "adiodvpe0_bandwidth": {
+                  "pasqualevpe0_bandwidth": {
                     "type": "string",
                     "description": "Requested VPE bandwidth",
                     "entry_schema": null,
                     "inputProperties": {
                       "sourceType": "HEAT",
-                      "vfModuleLabel": "ADIOD_vRE_BV",
+                      "vfModuleLabel": "PASQUALE_vRE_BV",
                       "paramName": "bandwidth"
                     },
                     "constraints": null,
                     "required": true,
                     "default": "10"
                   },
-                  "2017488_adiodvpe0_vnf_instance_name": {
+                  "2017488_pasqualevpe0_vnf_instance_name": {
                     "type": "string",
                     "description": "The hostname assigned to the vpe.",
                     "entry_schema": null,
                     "inputProperties": {
                       "sourceType": "HEAT",
-                      "vfModuleLabel": "ADIOD_vRE_BV",
+                      "vfModuleLabel": "PASQUALE_vRE_BV",
                       "paramName": "vnf_instance_name"
                     },
                     "constraints": null,
                     "required": true,
                     "default": "mtnj309me6"
                   },
-                  "2017488_adiodvpe0_vnf_config_template_version": {
+                  "2017488_pasqualevpe0_vnf_config_template_version": {
                     "type": "string",
                     "description": "VPE Software Version",
                     "entry_schema": null,
                     "inputProperties": {
                       "sourceType": "HEAT",
-                      "vfModuleLabel": "ADIOD_vRE_BV",
+                      "vfModuleLabel": "PASQUALE_vRE_BV",
                       "paramName": "vnf_config_template_version"
                     },
                     "constraints": null,
                     "required": true,
                     "default": "17.2"
                   },
-                  "2017488_adiodvpe0_AIC_CLLI": {
+                  "2017488_pasqualevpe0_AIC_CLLI": {
                     "type": "string",
                     "description": "AIC Site CLLI",
                     "entry_schema": null,
-                    "inputProperties": {"sourceType": "HEAT", "vfModuleLabel": "ADIOD_vRE_BV", "paramName": "AIC_CLLI"},
+                    "inputProperties": {"sourceType": "HEAT", "vfModuleLabel": "PASQUALE_vRE_BV", "paramName": "AIC_CLLI"},
                     "constraints": null,
                     "required": true,
                     "default": "ATLMY8GA"
                   },
-                  "adiodvpe0_bandwidth_units": {
+                  "pasqualevpe0_bandwidth_units": {
                     "type": "string",
                     "description": "Units of bandwidth",
                     "entry_schema": null,
                     "inputProperties": {
                       "sourceType": "HEAT",
-                      "vfModuleLabel": "ADIOD_vRE_BV",
+                      "vfModuleLabel": "PASQUALE_vRE_BV",
                       "paramName": "bandwidth_units"
                     },
                     "constraints": null,
@@ -1482,19 +1477,19 @@ class MockReduxStore<T> {
                   }
                 }
               },
-              "2017488_adiodvpe0..2017488AdiodVpe..ADIOD_vPFE_BV..module-2": {
+              "2017488_pasqualevpe0..2017488PasqualeVpe..PASQUALE_vPFE_BV..module-2": {
                 "uuid": "0a0dd9d4-31d3-4c3a-ae89-a02f383e6a9a",
                 "invariantUuid": "eff8cc59-53a1-4101-aed7-8cf24ecf8339",
                 "customizationUuid": "3cd946bb-50e0-40d8-96d3-c9023520b557",
                 "description": null,
-                "name": "2017488AdiodVpe..ADIOD_vPFE_BV..module-2",
+                "name": "2017488PasqualeVpe..PASQUALE_vPFE_BV..module-2",
                 "version": "6",
-                "modelCustomizationName": "2017488AdiodVpe..ADIOD_vPFE_BV..module-2",
+                "modelCustomizationName": "2017488PasqualeVpe..PASQUALE_vPFE_BV..module-2",
                 "properties": {
                   "minCountInstances": 0,
                   "maxCountInstances": null,
                   "initialCount": 0,
-                  "vfModuleLabel": "ADIOD_vPFE_BV"
+                  "vfModuleLabel": "PASQUALE_vPFE_BV"
                 },
                 "inputs": {}
               }
@@ -1505,21 +1500,21 @@ class MockReduxStore<T> {
         "serviceInstance": {
           "6e59c5de-f052-46fa-aa7e-2fca9d674c44": {
             "vnfs": {
-              "VF_vMee 0": {
+              "VF_vGeraldine 0": {
                 "rollbackOnFailure": "true",
                 "vfModules": {
-                  "vf_vmee0..VfVmee..base_vmme..module-0": {
-                    "vf_vmee0..VfVmee..base_vmme..module-0vmvzo": {
+                  "vf_vgeraldine0..VfVgeraldine..base_vflorence..module-0": {
+                    "vf_vgeraldine0..VfVgeraldine..base_vflorence..module-0vmvzo": {
                       "isMissingData": false,
                       "sdncPreReload": null,
                       "modelInfo": {
                         "modelType": "VFmodule",
                         "modelInvariantId": "a6f9e51a-2b35-416a-ae15-15e58d61f36d",
                         "modelVersionId": "a27f5cfc-7f12-4f99-af08-0af9c3885c87",
-                        "modelName": "VfVmee..base_vmme..module-0",
+                        "modelName": "VfVgeraldine..base_vflorence..module-0",
                         "modelVersion": "2",
                         "modelCustomizationId": "f8c040f1-7e51-4a11-aca8-acf256cfd861",
-                        "modelCustomizationName": "VfVmee..base_vmme..module-0"
+                        "modelCustomizationName": "VfVgeraldine..base_vflorence..module-0"
                       },
                       "instanceParams": [{}],
                       "trackById": "wmtm6sy2uj"
@@ -1527,8 +1522,8 @@ class MockReduxStore<T> {
                   }
                 },
                 "isMissingData": true,
-                "originalName": "VF_vMee 0",
-                "vnfStoreKey": "VF_vMee 0",
+                "originalName": "VF_vGeraldine 0",
+                "vnfStoreKey": "VF_vGeraldine 0",
                 "trackById": "p3wk448m5do",
                 "uuid": "d6557200-ecf2-4641-8094-5393ae3aae60",
                 "productFamilyId": "36b4733a-53f4-4cc8-8ff0-9172e5fc4b8e",
@@ -1540,9 +1535,9 @@ class MockReduxStore<T> {
                   "modelType": "VF",
                   "modelInvariantId": "4160458e-f648-4b30-a176-43881ffffe9e",
                   "modelVersionId": "6e59c5de-f052-46fa-aa7e-2fca9d674c44",
-                  "modelName": "VF_vMee",
+                  "modelName": "VF_vGeraldine",
                   "modelVersion": "2.0",
-                  "modelCustomizationName": "VF_vMee 0"
+                  "modelCustomizationName": "VF_vGeraldine 0"
                 }
               }
             },
@@ -1660,39 +1655,39 @@ class MockReduxStore<T> {
               }
             },
             "vnfs": {
-              "2017-488_ADIOD-vPE 0": {
+              "2017-488_PASQUALE-vPE 0": {
                 "rollbackOnFailure": "true",
                 "vfModules": {
-                  "2017488_adiodvpe0..2017488AdiodVpe..ADIOD_vRE_BV..module-1": {
-                    "2017488_adiodvpe0..2017488AdiodVpe..ADIOD_vRE_BV..module-1sgoqi": {
+                  "2017488_pasqualevpe0..2017488PasqualeVpe..PASQUALE_vRE_BV..module-1": {
+                    "2017488_pasqualevpe0..2017488PasqualeVpe..PASQUALE_vRE_BV..module-1sgoqi": {
                       "instanceName": "yoav",
                       "volumeGroupName": "123",
                       "modelInfo": {
                         "modelInvariantId": "7253ff5c-97f0-4b8b-937c-77aeb4d79aa1",
                         "modelVersionId": "25284168-24bb-4698-8cb4-3f509146eca5",
-                        "modelName": "2017488AdiodVpe..ADIOD_vRE_BV..module-1",
+                        "modelName": "2017488PasqualeVpe..PASQUALE_vRE_BV..module-1",
                         "modelVersion": "6",
                         "modelCustomizationId": "f7e7c365-60cf-49a9-9ebf-a1aa11b9d401",
-                        "modelCustomizationName": "2017488AdiodVpe..ADIOD_vRE_BV..module-1",
+                        "modelCustomizationName": "2017488PasqualeVpe..PASQUALE_vRE_BV..module-1",
                         "uuid": "25284168-24bb-4698-8cb4-3f509146eca5"
                       },
                       "uuid": "25284168-24bb-4698-8cb4-3f509146eca5",
                       "isMissingData": false,
                       "instanceParams": [{
-                        "adiodvpe0_bandwidth": "10",
-                        "2017488_adiodvpe0_vnf_instance_name": "mtnj309me6",
-                        "2017488_adiodvpe0_vnf_config_template_version": "17.2",
-                        "2017488_adiodvpe0_AIC_CLLI": "ATLMY8GA",
-                        "adiodvpe0_bandwidth_units": "Gbps"
+                        "pasqualevpe0_bandwidth": "10",
+                        "2017488_pasqualevpe0_vnf_instance_name": "mtnj309me6",
+                        "2017488_pasqualevpe0_vnf_config_template_version": "17.2",
+                        "2017488_pasqualevpe0_AIC_CLLI": "ATLMY8GA",
+                        "pasqualevpe0_bandwidth_units": "Gbps"
                       }]
                     }
                   }
                 },
                 "isMissingData": false,
-                "originalName": "2017-488_ADIOD-vPE 0",
-                "vnfStoreKey": "2017-488_ADIOD-vPE 0",
+                "originalName": "2017-488_PASQUALE-vPE 0",
+                "vnfStoreKey": "2017-488_PASQUALE-vPE 0",
                 "trackById": "o65b26t2thj",
-                "instanceName": "2017488_ADIODvPE",
+                "instanceName": "2017488_PASQUALEvPE",
                 "productFamilyId": "ebc3bc3d-62fd-4a3f-a037-f619df4ff034",
                 "lcpCloudRegionId": "hvf6",
                 "tenantId": "bae71557c5bb4d5aac6743a4e5f1d054",
@@ -1702,16 +1697,16 @@ class MockReduxStore<T> {
                 "modelInfo": {
                   "modelInvariantId": "72e465fe-71b1-4e7b-b5ed-9496118ff7a8",
                   "modelVersionId": "69e09f68-8b63-4cc9-b9ff-860960b5db09",
-                  "modelName": "2017-488_ADIOD-vPE",
+                  "modelName": "2017-488_PASQUALE-vPE",
                   "modelVersion": "5.0",
                   "modelCustomizationId": "1da7b585-5e61-4993-b95e-8e6606c81e45",
-                  "modelCustomizationName": "2017-488_ADIOD-vPE 0",
+                  "modelCustomizationName": "2017-488_PASQUALE-vPE 0",
                   "uuid": "69e09f68-8b63-4cc9-b9ff-860960b5db09"
                 },
                 "uuid": "69e09f68-8b63-4cc9-b9ff-860960b5db09"
               }
             },
-            "instanceParams": [{"2017488_adiodvpe0_ASN": "AV_vPE"}],
+            "instanceParams": [{"2017488_pasqualevpe0_ASN": "AV_vPE"}],
             "validationCounter": 0,
             "existingNames": {"123": "", "instancename": "", "yoav": "", "extvl": ""},
             "existingVNFCounterMap": {"69e09f68-8b63-4cc9-b9ff-860960b5db09": 1},
@@ -1721,7 +1716,7 @@ class MockReduxStore<T> {
             "subscriptionServiceType": "TYLER SILVIA",
             "owningEntityId": "d61e6f2d-12fa-4cc2-91df-7c244011d6fc",
             "productFamilyId": "17cc1042-527b-11e6-beb8-9e71128cae77",
-            "lcpCloudRegionId": "JANET25",
+            "lcpCloudRegionId": "AAIAIC25",
             "tenantId": "092eb9e8e4b7412e8787dd091bc58e86",
             "aicZoneId": "JAG1",
             "projectName": null,
@@ -1752,12 +1747,12 @@ class MockReduxStore<T> {
         },
         "lcpRegionsAndTenants": {
           "lcpRegionList": [{
-            "id": "JANET25",
-            "name": "JANET25",
+            "id": "AAIAIC25",
+            "name": "AAIAIC25",
             "isPermitted": true
           }, {"id": "hvf6", "name": "hvf6", "isPermitted": true}],
           "lcpRegionsTenantsMap": {
-            "JANET25": [{
+            "AAIAIC25": [{
               "id": "092eb9e8e4b7412e8787dd091bc58e86",
               "name": "USP-SIP-IC-24335-T-01",
               "isPermitted": true
@@ -1767,23 +1762,123 @@ class MockReduxStore<T> {
               "name": "AIN Web Tool-15-D-testalexandria",
               "isPermitted": true
             }, {
-              "id": "d0a3e3f2964542259d155a81c41aadc3",
-              "name": "test-hvf6-09",
+              "id": "229bcdc6eaeb4ca59d55221141d01f8e",
+              "name": "AIN Web Tool-15-D-STTest2",
+              "isPermitted": true
+            }, {
+              "id": "1178612d2b394be4834ad77f567c0af2",
+              "name": "AIN Web Tool-15-D-SSPtestcustome",
+              "isPermitted": true
+            }, {
+              "id": "19c5ade915eb461e8af52fb2fd8cd1f2",
+              "name": "AIN Web Tool-15-D-UncheckedEcopm",
+              "isPermitted": true
+            }, {
+              "id": "de007636e25249238447264a988a927b",
+              "name": "AIN Web Tool-15-D-dfsdf",
+              "isPermitted": true
+            }, {
+              "id": "62f29b3613634ca6a3065cbe0e020c44",
+              "name": "AIN/SMS-16-D-Multiservices1",
+              "isPermitted": true
+            }, {
+              "id": "649289e30d3244e0b48098114d63c2aa",
+              "name": "AIN Web Tool-15-D-SSPST66",
+              "isPermitted": true
+            }, {
+              "id": "3f21eeea6c2c486bba31dab816c05a32",
+              "name": "AIN Web Tool-15-D-ASSPST47",
+              "isPermitted": true
+            }, {
+              "id": "f60ce21d3ee6427586cff0d22b03b773",
+              "name": "CESAR-100-D-sspjg67246",
+              "isPermitted": true
+            }, {
+              "id": "8774659e425f479895ae091bb5d46560",
+              "name": "CESAR-100-D-sspjg68359",
+              "isPermitted": true
+            }, {
+              "id": "624eb554b0d147c19ff8885341760481",
+              "name": "AINWebTool-15-D-iftach",
+              "isPermitted": true
+            }, {
+              "id": "214f55f5fc414c678059c383b03e4962",
+              "name": "CESAR-100-D-sspjg612401",
+              "isPermitted": true
+            }, {
+              "id": "c90666c291664841bb98e4d981ff1db5",
+              "name": "CESAR-100-D-sspjg621340",
+              "isPermitted": true
+            }, {
+              "id": "ce5b6bc5c7b348e1bf4b91ac9a174278",
+              "name": "sspjg621351cloned",
+              "isPermitted": true
+            }, {
+              "id": "b386b768a3f24c8e953abbe0b3488c02",
+              "name": "AINWebTool-15-D-eteancomp",
+              "isPermitted": true
+            }, {
+              "id": "dc6c4dbfd225474e9deaadd34968646c",
+              "name": "AINWebTool-15-T-SPFET",
+              "isPermitted": true
+            }, {
+              "id": "02cb5030e9914aa4be120bd9ed1e19eb",
+              "name": "AINWebTool-15-X-eeweww",
+              "isPermitted": true
+            }, {
+              "id": "f2f3830e4c984d45bcd00e1a04158a79",
+              "name": "CESAR-100-D-spjg61909",
+              "isPermitted": true
+            }, {
+              "id": "05b91bd5137f4929878edd965755c06d",
+              "name": "CESAR-100-D-sspjg621512cloned",
+              "isPermitted": true
+            }, {
+              "id": "7002fbe8482d4a989ddf445b1ce336e0",
+              "name": "AINWebTool-15-X-vdr",
+              "isPermitted": true
+            }, {
+              "id": "4008522be43741dcb1f5422022a2aa0b",
+              "name": "AINWebTool-15-D-ssasa",
+              "isPermitted": true
+            }, {
+              "id": "f44e2e96a1b6476abfda2fa407b00169",
+              "name": "AINWebTool-15-D-PFNPT",
+              "isPermitted": true
+            }, {
+              "id": "b69a52bec8a84669a37a1e8b72708be7",
+              "name": "AINWebTool-15-X-vdre",
+              "isPermitted": true
+            }, {
+              "id": "fac7d9fd56154caeb9332202dcf2969f",
+              "name": "AINWebTool-15-X-NONPODECOMP",
+              "isPermitted": true
+            }, {
+              "id": "2d34d8396e194eb49969fd61ffbff961",
+              "name": "DN5242-Nov16-T5",
+              "isPermitted": true
+            }, {
+              "id": "cb42a77ff45b48a8b8deb83bb64acc74",
+              "name": "ro-T11",
               "isPermitted": true
             }, {
               "id": "fa45ca53c80b492fa8be5477cd84fc2b",
               "name": "ro-T112",
               "isPermitted": true
             }, {
-              "id": "cbb99fe4ada84631b7baf046b6fd2044",
-              "name": "DN5242-Nov16-T3",
+              "id": "4914ab0ab3a743e58f0eefdacc1dde77",
+              "name": "DN5242-Nov21-T1",
+              "isPermitted": true
+            }, {
+              "id": "d0a3e3f2964542259d155a81c41aadc3",
+              "name": "test-hvf6-09",
               "isPermitted": true
-            }]
+            }, {"id": "cbb99fe4ada84631b7baf046b6fd2044", "name": "DN5242-Nov16-T3", "isPermitted": true}]
           }
         },
         "productFamilies": [{
           "id": "ebc3bc3d-62fd-4a3f-a037-f619df4ff034",
-          "name": "SCOTTIE",
+          "name": "ERICA",
           "isPermitted": true
         }, {
           "id": "17cc1042-527b-11e6-beb8-9e71128cae77",
@@ -1799,7 +1894,7 @@ class MockReduxStore<T> {
           "isPermitted": true
         }, {"id": "vTerrance", "name": "vTerrance", "isPermitted": true}, {
           "id": "323d69d9-2efe-4r45-ay0a-89ea7ard4e6f",
-          "name": "vSCP",
+          "name": "vEsmeralda",
           "isPermitted": true
         }, {
           "id": "a9a77d5a-123e-4ca2-9eb9-0b015d2ee0fb",
@@ -1822,7 +1917,7 @@ class MockReduxStore<T> {
           "name": "TYLER SILVIA",
           "isPermitted": true
         }, {"id": "b6a3f28c-eebf-494c-a900-055cc7c874ce", "name": "VROUTER", "isPermitted": true}, {
-          "id": "Cisneros",
+          "id": "vMuriel",
           "name": "vMuriel",
           "isPermitted": true
         }, {
@@ -1837,7 +1932,7 @@ class MockReduxStore<T> {
           "id": "vSalvatore",
           "name": "vSalvatore",
           "isPermitted": true
-        }, {"id": "d7bb0a21-66f2-4e6d-87d9-9ef3ced63ae4", "name": "Josefina", "isPermitted": true}, {
+        }, {"id": "d7bb0a21-66f2-4e6d-87d9-9ef3ced63ae4", "name": "JOSEFINA", "isPermitted": true}, {
           "id": "vHubbard",
           "name": "vHubbard",
           "isPermitted": true
@@ -1857,21 +1952,21 @@ class MockReduxStore<T> {
             "isPermitted": false
           }, {"id": "5", "name": "Kennedy", "isPermitted": false}, {
             "id": "6",
-            "name": "vSEGW",
+            "name": "vPorfirio",
             "isPermitted": false
           }, {"id": "7", "name": "vVM", "isPermitted": false}, {
             "id": "8",
             "name": "vOTA",
             "isPermitted": false
-          }, {"id": "9", "name": "vMME", "isPermitted": false}, {
+          }, {"id": "9", "name": "vFLORENCE", "isPermitted": false}, {
             "id": "10",
             "name": "vMNS",
             "isPermitted": false
-          }, {"id": "11", "name": "vSCP", "isPermitted": false}, {
+          }, {"id": "11", "name": "vEsmeralda", "isPermitted": false}, {
             "id": "12",
             "name": "VPMS",
             "isPermitted": false
-          }, {"id": "13", "name": "vMMSC", "isPermitted": false}, {
+          }, {"id": "13", "name": "vWINIFRED", "isPermitted": false}, {
             "id": "14",
             "name": "SSD",
             "isPermitted": false
@@ -1885,19 +1980,196 @@ class MockReduxStore<T> {
             "isPermitted": false
           }]
         },
-        "aicZones": [{
-          "id": "NFT1",
-          "name": "NFTJSSSS-NFT1"
-        }, {
-          "id": "JAG1",
-          "name": "YUDFJULP-JAG1"
-        }, {
+        "aicZones": [{"id": "NFT1", "name": "NFTJSSSS-NFT1"}, {"id": "JAG1", "name": "YUDFJULP-JAG1"}, {
           "id": "YYY1",
           "name": "UUUAIAAI-YYY1"
-        }, {
-          "id": "AVT1",
-          "name": "AVTRFLHD-AVT1"
-        }, {
+        }, {"id": "BAN1", "name": "VSDKYUTP-BAN1"}, {"id": "DKJ1", "name": "DKJSJDKA-DKJ1"}, {
+          "id": "MCS1",
+          "name": "ASACMAMS-MCS1"
+        }, {"id": "UIO1", "name": "uioclli1-UIO1"}, {"id": "RAJ1", "name": "YGBIJNLQ-RAJ1"}, {
+          "id": "OPA1",
+          "name": "opaclli1-OPA1"
+        }, {"id": "SDE1", "name": "ZXCVBNMA-SDE1"}, {"id": "VEN2", "name": "FGHJUHIL-VEN2"}, {
+          "id": "ORL1",
+          "name": "ORLDFLMA-ORL1"
+        }, {"id": "JAD1", "name": "JADECLLI-JAD1"}, {"id": "ZXL1", "name": "LWLWCANN-ZXL1"}, {
+          "id": "CKL1",
+          "name": "CLKSKCKK-CKL1"
+        }, {"id": "SDF1", "name": "sdfclli1-SDF1"}, {"id": "RAD1", "name": "RADICAL1-RAD1"}, {
+          "id": "KIT1",
+          "name": "BHYJFGLN-KIT1"
+        }, {"id": "REL1", "name": "INGERFGT-REL1"}, {"id": "JNL1", "name": "CJALSDAC-JNL1"}, {
+          "id": "OLK1",
+          "name": "OLKOLKLS-OLK1"
+        }, {"id": "CHI1", "name": "CHILLIWE-CHI1"}, {"id": "UUU4", "name": "UUUAAAUU-UUU4"}, {
+          "id": "TUF1",
+          "name": "TUFCLLI1-TUF1"
+        }, {"id": "KJN1", "name": "CKALDKSA-KJN1"}, {"id": "SAM1", "name": "SNDGCA64-SAN1"}, {
+          "id": "SCK1",
+          "name": "SCKSCKSK-SCK1"
+        }, {"id": "HJH1", "name": "AOEEQQQD-HJH1"}, {"id": "HGD1", "name": "SDFQWHGD-HGD1"}, {
+          "id": "KOR1",
+          "name": "HYFLNBVT-KOR1"
+        }, {"id": "ATL43", "name": "AICLOCID-ATL43"}, {"id": "ATL54", "name": "AICFTAAI-ATL54"}, {
+          "id": "ATL66",
+          "name": "CLLIAAII-ATL66"
+        }, {"id": "VEL1", "name": "BNMLKUIK-VEL1"}, {"id": "ICC1", "name": "SANJITAT-ICC1"}, {
+          "id": "MNT11",
+          "name": "WSXEFBTH-MNT11"
+        }, {"id": "DEF2", "name": "WSBHGTYL-DEF2"}, {"id": "MAD11", "name": "SDFQWGKL-MAD11"}, {
+          "id": "OLG1",
+          "name": "OLHOLHOL-OLG1"
+        }, {"id": "GAR1", "name": "NGFVSJKO-GAR1"}, {"id": "SAN22", "name": "GNVLSCTL-SAN22"}, {
+          "id": "HRG1",
+          "name": "HRGHRGGS-HRG1"
+        }, {"id": "JCS1", "name": "JCSJSCJS-JCS1"}, {"id": "DHA12", "name": "WSXEDECF-DHA12"}, {
+          "id": "HJE1",
+          "name": "AOEEWWWD-HJE1"
+        }, {"id": "NCA1", "name": "NCANCANN-NCA1"}, {"id": "IOP1", "name": "iopclli1-IOP1"}, {
+          "id": "RTY1",
+          "name": "rtyclli1-RTY1"
+        }, {"id": "KAP1", "name": "HIOUYTRQ-KAP1"}, {"id": "ZEN1", "name": "ZENCLLI1-ZEN1"}, {
+          "id": "HKA1",
+          "name": "JAKHLASS-HKA1"
+        }, {"id": "CQK1", "name": "CQKSCAKK-CQK1"}, {"id": "SAI1", "name": "UBEKQLPD-SAI1"}, {
+          "id": "ERT1",
+          "name": "ertclli1-ERT1"
+        }, {"id": "IBB1", "name": "PLMKOIJU-IBB1"}, {"id": "TIR2", "name": "PLKINHYI-TIR2"}, {
+          "id": "HSD1",
+          "name": "CHASKCDS-HSD1"
+        }, {"id": "SLF78", "name": "SDCTLFN1-SLF78"}, {"id": "SEE78", "name": "SDCTEEE4-SEE78"}, {
+          "id": "SAN13",
+          "name": "TOKYJPFA-SAN13"
+        }, {"id": "SAA78", "name": "SDCTAAA1-SAA78"}, {"id": "LUC1", "name": "ATLDFGYC-LUC1"}, {
+          "id": "AMD13",
+          "name": "MEMATLAN-AMD13"
+        }, {"id": "TOR1", "name": "TOROONXN-TOR1"}, {"id": "QWE1", "name": "QWECLLI1-QWE1"}, {
+          "id": "ZOG1",
+          "name": "ZOGASTRO-ZOG1"
+        }, {"id": "CAL33", "name": "CALIFORN-CAL33"}, {"id": "SHH78", "name": "SDIT1HHH-SHH78"}, {
+          "id": "DSA1",
+          "name": "LKJHGFDS-DSA1"
+        }, {"id": "CLG1", "name": "CLGRABAD-CLG1"}, {"id": "BNA1", "name": "BNARAGBK-BNA1"}, {
+          "id": "ATL84",
+          "name": "CANTTCOC-ATL84"
+        }, {"id": "APP1", "name": "WBHGTYUI-APP1"}, {"id": "RJN1", "name": "RJNRBZAW-RJN1"}, {
+          "id": "EHH78",
+          "name": "SDCSHHH5-EHH78"
+        }, {"id": "mac10", "name": "PKGTESTF-mac10"}, {"id": "SXB78", "name": "SDCTGXB1-SXB78"}, {
+          "id": "SAX78",
+          "name": "SDCTAXG1-SAX78"
+        }, {"id": "SYD1", "name": "SYDNAUBV-SYD1"}, {"id": "TOK1", "name": "TOKYJPFA-TOK1"}, {
+          "id": "KGM2",
+          "name": "KGMTNC20-KGM2"
+        }, {"id": "DCC1b", "name": "POIUYTGH-DCC1b"}, {"id": "SKK78", "name": "SDCTKKK1-SKK78"}, {
+          "id": "SGG78",
+          "name": "SDCTGGG1-SGG78"
+        }, {"id": "SJJ78", "name": "SDCTJJJ1-SJJ78"}, {"id": "SBX78", "name": "SDCTBXG1-SBX78"}, {
+          "id": "LAG1",
+          "name": "LARGIZON-LAG1"
+        }, {"id": "IAA1", "name": "QAZXSWED-IAA1"}, {"id": "POI1", "name": "PLMNJKIU-POI1"}, {
+          "id": "LAG1a",
+          "name": "LARGIZON-LAG1a"
+        }, {"id": "PBL1", "name": "PBLAPBAI-PBL1"}, {"id": "LAG45", "name": "LARGIZON-LAG1a"}, {
+          "id": "MAR1",
+          "name": "MNBVCXZM-MAR1"
+        }, {"id": "HST70", "name": "HSTNTX70-HST70"}, {"id": "DCC1a", "name": "POIUYTGH-DCC1a"}, {
+          "id": "TOL1",
+          "name": "TOLDOH21-TOL1"
+        }, {"id": "LON1", "name": "LONEENCO-LON1"}, {"id": "SJU78", "name": "SDIT1JUB-SJU78"}, {
+          "id": "STN27",
+          "name": "HSTNTX01-STN27"
+        }, {"id": "SSW56", "name": "ss8126GT-SSW56"}, {"id": "SBB78", "name": "SDIT1BBB-SBB78"}, {
+          "id": "DCC3",
+          "name": "POIUYTGH-DCC3"
+        }, {"id": "GNV1", "name": "GNVLSCTL-GNV1"}, {"id": "WAS1", "name": "WASHDCSW-WAS1"}, {
+          "id": "TOY1",
+          "name": "TORYONNZ-TOY1"
+        }, {"id": "STT1", "name": "STTLWA02-STT1"}, {"id": "STG1", "name": "STTGGE62-STG1"}, {
+          "id": "SLL78",
+          "name": "SDCTLLL1-SLL78"
+        }, {"id": "SBU78", "name": "SDIT1BUB-SBU78"}, {"id": "ATL2", "name": "ATLNGANW-ATL2"}, {
+          "id": "BOT1",
+          "name": "BOTHWAKY-BOT1"
+        }, {"id": "SNG1", "name": "SNGPSIAU-SNG1"}, {"id": "NYC1", "name": "NYCMNY54-NYC1"}, {
+          "id": "LAG1b",
+          "name": "LARGIZON-LAG1b"
+        }, {"id": "AMD15", "name": "AMDFAA01-AMD15"}, {"id": "SNA1", "name": "SNANTXCA-SNA1"}, {
+          "id": "PLT1",
+          "name": "PLTNCA60-PLT1"
+        }, {"id": "TLP1", "name": "TLPNXM18-TLP1"}, {"id": "SDD81", "name": "SAIT1DD6-SDD81"}, {
+          "id": "DCC1",
+          "name": "POIUYTGH-DCC1"
+        }, {"id": "DCC2", "name": "POIUYTGH-DCC2"}, {"id": "OKC1", "name": "OKCBOK55-OKC1"}, {
+          "id": "PAR1",
+          "name": "PARSFRCG-PAR1"
+        }, {"id": "TES36", "name": "ABCEETES-TES36"}, {"id": "COM1", "name": "PLMKOPIU-COM1"}, {
+          "id": "ANI1",
+          "name": "ATLNGTRE-ANI1"
+        }, {"id": "SDG78", "name": "SDIT1BDG-SDG78"}, {"id": "mac20", "name": "PKGTESTF-mac20"}, {
+          "id": "DSF45",
+          "name": "DSFBG123-DSF45"
+        }, {"id": "HST25", "name": "HSTNTX01-HST25"}, {"id": "AMD18", "name": "AUDIMA01-AMD18"}, {
+          "id": "SAA80",
+          "name": "SAIT9AA3-SAA80"
+        }, {"id": "SSA56", "name": "SSIT2AA7-SSA56"}, {"id": "SDD82", "name": "SAIT1DD9-SDD82"}, {
+          "id": "JCV1",
+          "name": "JCVLFLBW-JCV1"
+        }, {"id": "SUL2", "name": "WERTYUJK-SUL2"}, {"id": "PUR1", "name": "purelyde-PUR1"}, {
+          "id": "FDE55",
+          "name": "FDERT555-FDE55"
+        }, {"id": "SITE", "name": "LONEENCO-SITE"}, {"id": "ATL1", "name": "ATLNGAMA-ATL1"}, {
+          "id": "JUL1",
+          "name": "ZXCVBNMM-JUL1"
+        }, {"id": "TAT34", "name": "TESAAISB-TAT34"}, {"id": "XCP12", "name": "CHKGH123-XCP12"}, {
+          "id": "RAI1",
+          "name": "poiuytre-RAI1"
+        }, {"id": "HPO1", "name": "ATLNGAUP-HPO1"}, {"id": "KJF12", "name": "KJFDH123-KJF12"}, {
+          "id": "SCC80",
+          "name": "SAIT9CC3-SCC80"
+        }, {"id": "SAA12", "name": "SAIT9AF8-SAA12"}, {"id": "SAA14", "name": "SAIT1AA9-SAA14"}, {
+          "id": "ATL35",
+          "name": "TTESSAAI-ATL35"
+        }, {"id": "CWY1", "name": "CWYMOWBS-CWY1"}, {"id": "ATL76", "name": "TELEPAAI-ATL76"}, {
+          "id": "DSL12",
+          "name": "DSLFK242-DSL12"
+        }, {"id": "ATL53", "name": "AAIATLTE-ATL53"}, {"id": "SAA11", "name": "SAIT9AA2-SAA11"}, {
+          "id": "ATL62",
+          "name": "TESSASCH-ATL62"
+        }, {"id": "AUG1", "name": "ASDFGHJK-AUG1"}, {"id": "POI22", "name": "POIUY123-POI22"}, {
+          "id": "SAA13",
+          "name": "SAIT1AA9-SAA13"
+        }, {"id": "BHY17", "name": "BHYTFRF3-BHY17"}, {"id": "LIS1", "name": "HOSTPROF-LIS1"}, {
+          "id": "SIP1",
+          "name": "ZXCVBNMK-SIP1"
+        }, {"id": "ATL99", "name": "TEESTAAI-ATL43"}, {"id": "ATL64", "name": "FORLOAAJ-ATL64"}, {
+          "id": "TAT33",
+          "name": "TESAAISA-TAT33"
+        }, {"id": "RAD10", "name": "INDIPUNE-RAD10"}, {"id": "RTW5", "name": "BHYTFRY4-RTW5"}, {
+          "id": "JGS1",
+          "name": "KSJKKKKK-JGS1"
+        }, {"id": "ATL98", "name": "TEESTAAI-ATL43"}, {"id": "WAN1", "name": "LEIWANGW-WAN1"}, {
+          "id": "ATL44",
+          "name": "ATLSANAB-ATL44"
+        }, {"id": "RTD2", "name": "BHYTFRk4-RTD2"}, {"id": "NIR1", "name": "ORFLMANA-NIR1"}, {
+          "id": "ATL75",
+          "name": "SANAAIRE-ATL75"
+        }, {"id": "NUM1", "name": "QWERTYUI-NUM1"}, {"id": "hvf32", "name": "MDTWNJ21-hvf32"}, {
+          "id": "RTZ4",
+          "name": "BHYTFRZ6-RTZ4"
+        }, {"id": "ATL56", "name": "ATLSANAC-ATL56"}, {"id": "AMS1", "name": "AMSTNLBW-AMS1"}, {
+          "id": "RCT1",
+          "name": "AMSTERNL-RCT1"
+        }, {"id": "JAN1", "name": "ORFLMATT-JAN1"}, {"id": "ABC14", "name": "TESAAISA-ABC14"}, {
+          "id": "TAT37",
+          "name": "TESAAISD-TAT37"
+        }, {"id": "MIC54", "name": "MICHIGAN-MIC54"}, {"id": "ABC11", "name": "ATLSANAI-ABC11"}, {
+          "id": "AMF11",
+          "name": "AMDOCS01-AMF11"
+        }, {"id": "ATL63", "name": "ATLSANEW-ATL63"}, {"id": "ABC12", "name": "ATLSECIA-ABC12"}, {
+          "id": "hvf20",
+          "name": "MDTWNJ21-hvf20"
+        }, {"id": "ABC15", "name": "AAITESAN-ABC15"}, {"id": "AVT1", "name": "AVTRFLHD-AVT1"}, {
           "id": "ATL34",
           "name": "ATLSANAI-ATL34"
         }],
@@ -2020,7 +2292,7 @@ describe('VFModule popup service', () => {
   test('getInstance should return new VfModuleInstance', () => {
     const serviceId : string = '6b528779-44a3-4472-bdff-9cd15ec93450';
     const vnfStoreKey = null;
-    const vfModuleStoreKey = "VF_vMee 0";
+    const vfModuleStoreKey = "VF_vGeraldine 0";
     let  VfModuleInstance ;
     VfModuleInstance = service.getInstance(serviceId, vnfStoreKey, vfModuleStoreKey);
     expect (VfModuleInstance).toBeDefined();
@@ -2039,7 +2311,7 @@ describe('VFModule popup service', () => {
 
   test('getModelInformation should update modelInformations', () => {
     const serviceId: string = '6b528779-44a3-4472-bdff-9cd15ec93450';
-    const vfModuleModelName: string = '2017488_adiodvpe0..2017488AdiodVpe..ADIOD_vRE_BV..module-1';
+    const vfModuleModelName: string = '2017488_pasqualevpe0..2017488PasqualeVpe..PASQUALE_vRE_BV..module-1';
 
     service.getModelInformation(serviceId, vfModuleModelName);
     expect(service.modelInformations.length).toEqual(15);
@@ -2053,7 +2325,7 @@ describe('VFModule popup service', () => {
     expect(service.modelInformations[2].values).toEqual(['InstanceName']);
 
     expect(service.modelInformations[3].label).toEqual("Model Name");
-    expect(service.modelInformations[3].values).toEqual(['2017488AdiodVpe..ADIOD_vRE_BV..module-1']);
+    expect(service.modelInformations[3].values).toEqual(['2017488PasqualeVpe..PASQUALE_vRE_BV..module-1']);
 
     expect(service.modelInformations[4].label).toEqual("Model version");
     expect(service.modelInformations[4].values).toEqual(['6']);
index 7563f1d..c7a71ef 100644 (file)
@@ -117,7 +117,7 @@ export class VfModulePopuopService implements GenericPopupInterface {
   }
 
   getControls(serviceId: string, vnfStoreKey: string, vfModuleStoreKey: string, isUpdateMode: boolean) {
-    if (this._store.getState().service.serviceHierarchy[serviceId].service.instantiationType === 'Macro') {
+    if (this._store.getState().service.serviceHierarchy[serviceId].service.vidNotions.instantiationType === 'Macro') {
       return this._vfModuleControlGenerator.getMacroFormControls(serviceId, vnfStoreKey, vfModuleStoreKey, this.uuidData, isUpdateMode);
     } else {
       return this._vfModuleControlGenerator.getAlaCarteFormControls(serviceId, vnfStoreKey, vfModuleStoreKey,  this.uuidData, isUpdateMode);
index 9a3e597..de7aa4e 100644 (file)
@@ -26,17 +26,12 @@ class MockReduxStore<T> {
           "FLAG_NETWORK_TO_ASYNC_INSTANTIATION": false,
           "FLAG_SHOW_ASSIGNMENTS": true,
           "FLAG_FABRIC_CONFIGURATION_ASSIGNMENTS": true,
-          "FLAG_UNASSIGN_SERVICE": true,
           "FLAG_SHOW_VERIFY_SERVICE": false,
-          "FLAG_COLLECTION_RESOURCE_SUPPORT": true,
-          "FLAG_DUPLICATE_VNF": true,
           "FLAG_SERVICE_MODEL_CACHE": true,
           "FLAG_ADVANCED_PORTS_FILTER": true,
           "CREATE_INSTANCE_TEST": false,
           "FLAG_SETTING_DEFAULTS_IN_DRAWING_BOARD": false,
           "FLAG_REGION_ID_FROM_REMOTE": true,
-          "FLAG_ASYNC_INSTANTIATION": true,
-          "FLAG_ASYNC_JOBS": true,
           "EMPTY_DRAWING_BOARD_TEST": false,
           "FLAG_ADD_MSO_TESTAPI_FIELD": true
         },
@@ -57,15 +52,18 @@ class MockReduxStore<T> {
               "description": "ComplexService",
               "serviceEcompNaming": "false",
               "instantiationType": "Macro",
+              "vidNotions": {
+                "instantiationType": "Macro"
+              },
               "inputs": {}
             },
             "vnfGroups" : {},
             "vnfs": {
-              "VF_vMee 0": {
+              "VF_vGeraldine 0": {
                 "uuid": "d6557200-ecf2-4641-8094-5393ae3aae60",
                 "invariantUuid": "4160458e-f648-4b30-a176-43881ffffe9e",
-                "description": "VSP_vMee",
-                "name": "VF_vMee",
+                "description": "VSP_vGeraldine",
+                "name": "VF_vGeraldine",
                 "version": "2.0",
                 "customizationUuid": "91415b44-753d-494c-926a-456a9172bbb9",
                 "inputs": {},
@@ -236,74 +234,74 @@ class MockReduxStore<T> {
                   "sctp-b-egress-dst_end_port": "65535.0"
                 },
                 "type": "VF",
-                "modelCustomizationName": "VF_vMee 0",
+                "modelCustomizationName": "VF_vGeraldine 0",
                 "vfModules": {
-                  "vf_vmee0..VfVmee..vmme_vlc..module-1": {
+                  "vf_vgeraldine0..VfVgeraldine..vflorence_vlc..module-1": {
                     "uuid": "522159d5-d6e0-4c2a-aa44-5a542a12a830",
                     "invariantUuid": "98a7c88b-b577-476a-90e4-e25a5871e02b",
                     "customizationUuid": "55b1be94-671a-403e-a26c-667e9c47d091",
                     "description": null,
-                    "name": "VfVmee..vmme_vlc..module-1",
+                    "name": "VfVgeraldine..vflorence_vlc..module-1",
                     "version": "2",
-                    "modelCustomizationName": "VfVmee..vmme_vlc..module-1",
+                    "modelCustomizationName": "VfVgeraldine..vflorence_vlc..module-1",
                     "properties": {
                       "minCountInstances": 0,
                       "maxCountInstances": null,
                       "initialCount": 0,
-                      "vfModuleLabel": "vmme_vlc"
+                      "vfModuleLabel": "vflorence_vlc"
                     },
                     "inputs": {},
                     "volumeGroupAllowed": true
                   },
-                  "vf_vmee0..VfVmee..vmme_gpb..module-2": {
+                  "vf_vgeraldine0..VfVgeraldine..vflorence_gpb..module-2": {
                     "uuid": "41708296-e443-4c71-953f-d9a010f059e1",
                     "invariantUuid": "1cca90b8-3490-495e-87da-3f3e4c57d5b9",
                     "customizationUuid": "6add59e0-7fe1-4bc4-af48-f8812422ae7c",
                     "description": null,
-                    "name": "VfVmee..vmme_gpb..module-2",
+                    "name": "VfVgeraldine..vflorence_gpb..module-2",
                     "version": "2",
-                    "modelCustomizationName": "VfVmee..vmme_gpb..module-2",
+                    "modelCustomizationName": "VfVgeraldine..vflorence_gpb..module-2",
                     "properties": {
                       "minCountInstances": 0,
                       "maxCountInstances": null,
                       "initialCount": 0,
-                      "vfModuleLabel": "vmme_gpb"
+                      "vfModuleLabel": "vflorence_gpb"
                     },
                     "inputs": {},
                     "volumeGroupAllowed": false
                   },
-                  "vf_vmee0..VfVmee..base_vmme..module-0": {
+                  "vf_vgeraldine0..VfVgeraldine..base_vflorence..module-0": {
                     "uuid": "a27f5cfc-7f12-4f99-af08-0af9c3885c87",
                     "invariantUuid": "a6f9e51a-2b35-416a-ae15-15e58d61f36d",
                     "customizationUuid": "f8c040f1-7e51-4a11-aca8-acf256cfd861",
                     "description": null,
-                    "name": "VfVmee..base_vmme..module-0",
+                    "name": "VfVgeraldine..base_vflorence..module-0",
                     "version": "2",
-                    "modelCustomizationName": "VfVmee..base_vmme..module-0",
+                    "modelCustomizationName": "VfVgeraldine..base_vflorence..module-0",
                     "properties": {
                       "minCountInstances": 1,
                       "maxCountInstances": 1,
                       "initialCount": 1,
-                      "vfModuleLabel": "base_vmme"
+                      "vfModuleLabel": "base_vflorence"
                     },
                     "inputs": {},
                     "volumeGroupAllowed": true
                   }
                 },
                 "volumeGroups": {
-                  "vf_vmee0..VfVmee..base_vmme..module-0": {
+                  "vf_vgeraldine0..VfVgeraldine..base_vflorence..module-0": {
                     "uuid": "a27f5cfc-7f12-4f99-af08-0af9c3885c87",
                     "invariantUuid": "a6f9e51a-2b35-416a-ae15-15e58d61f36d",
                     "customizationUuid": "f8c040f1-7e51-4a11-aca8-acf256cfd861",
                     "description": null,
-                    "name": "VfVmee..base_vmme..module-0",
+                    "name": "VfVgeraldine..base_vflorence..module-0",
                     "version": "2",
-                    "modelCustomizationName": "VfVmee..base_vmme..module-0",
+                    "modelCustomizationName": "VfVgeraldine..base_vflorence..module-0",
                     "properties": {
                       "minCountInstances": 1,
                       "maxCountInstances": 1,
                       "initialCount": 1,
-                      "vfModuleLabel": "base_vmme"
+                      "vfModuleLabel": "base_vflorence"
                     },
                     "inputs": {}
                   }
@@ -332,7 +330,7 @@ class MockReduxStore<T> {
                 "modelCustomizationName": "ExtVL 0"
               }
             },
-            "collectionResource": {},
+            "collectionResources": {},
             "configurations": {
               "Port Mirroring Configuration By Policy 0": {
                 "uuid": "b4398538-e89d-4f13-b33d-ca323434ba50",
@@ -353,72 +351,72 @@ class MockReduxStore<T> {
             },
             "serviceProxies": {},
             "vfModules": {
-              "vf_vmee0..VfVmee..vmme_vlc..module-1": {
+              "vf_vgeraldine0..VfVgeraldine..vflorence_vlc..module-1": {
                 "uuid": "522159d5-d6e0-4c2a-aa44-5a542a12a830",
                 "invariantUuid": "98a7c88b-b577-476a-90e4-e25a5871e02b",
                 "customizationUuid": "55b1be94-671a-403e-a26c-667e9c47d091",
                 "description": null,
-                "name": "VfVmee..vmme_vlc..module-1",
+                "name": "VfVgeraldine..vflorence_vlc..module-1",
                 "version": "2",
-                "modelCustomizationName": "VfVmee..vmme_vlc..module-1",
+                "modelCustomizationName": "VfVgeraldine..vflorence_vlc..module-1",
                 "properties": {
                   "minCountInstances": 0,
                   "maxCountInstances": null,
                   "initialCount": 0,
-                  "vfModuleLabel": "vmme_vlc"
+                  "vfModuleLabel": "vflorence_vlc"
                 },
                 "inputs": {},
                 "volumeGroupAllowed": true
               },
-              "vf_vmee0..VfVmee..vmme_gpb..module-2": {
+              "vf_vgeraldine0..VfVgeraldine..vflorence_gpb..module-2": {
                 "uuid": "41708296-e443-4c71-953f-d9a010f059e1",
                 "invariantUuid": "1cca90b8-3490-495e-87da-3f3e4c57d5b9",
                 "customizationUuid": "6add59e0-7fe1-4bc4-af48-f8812422ae7c",
                 "description": null,
-                "name": "VfVmee..vmme_gpb..module-2",
+                "name": "VfVgeraldine..vflorence_gpb..module-2",
                 "version": "2",
-                "modelCustomizationName": "VfVmee..vmme_gpb..module-2",
+                "modelCustomizationName": "VfVgeraldine..vflorence_gpb..module-2",
                 "properties": {
                   "minCountInstances": 0,
                   "maxCountInstances": null,
                   "initialCount": 0,
-                  "vfModuleLabel": "vmme_gpb"
+                  "vfModuleLabel": "vflorence_gpb"
                 },
                 "inputs": {},
                 "volumeGroupAllowed": false
               },
-              "vf_vmee0..VfVmee..base_vmme..module-0": {
+              "vf_vgeraldine0..VfVgeraldine..base_vflorence..module-0": {
                 "uuid": "a27f5cfc-7f12-4f99-af08-0af9c3885c87",
                 "invariantUuid": "a6f9e51a-2b35-416a-ae15-15e58d61f36d",
                 "customizationUuid": "f8c040f1-7e51-4a11-aca8-acf256cfd861",
                 "description": null,
-                "name": "VfVmee..base_vmme..module-0",
+                "name": "VfVgeraldine..base_vflorence..module-0",
                 "version": "2",
-                "modelCustomizationName": "VfVmee..base_vmme..module-0",
+                "modelCustomizationName": "VfVgeraldine..base_vflorence..module-0",
                 "properties": {
                   "minCountInstances": 1,
                   "maxCountInstances": 1,
                   "initialCount": 1,
-                  "vfModuleLabel": "base_vmme"
+                  "vfModuleLabel": "base_vflorence"
                 },
                 "inputs": {},
                 "volumeGroupAllowed": true
               }
             },
             "volumeGroups": {
-              "vf_vmee0..VfVmee..base_vmme..module-0": {
+              "vf_vgeraldine0..VfVgeraldine..base_vflorence..module-0": {
                 "uuid": "a27f5cfc-7f12-4f99-af08-0af9c3885c87",
                 "invariantUuid": "a6f9e51a-2b35-416a-ae15-15e58d61f36d",
                 "customizationUuid": "f8c040f1-7e51-4a11-aca8-acf256cfd861",
                 "description": null,
-                "name": "VfVmee..base_vmme..module-0",
+                "name": "VfVgeraldine..base_vflorence..module-0",
                 "version": "2",
-                "modelCustomizationName": "VfVmee..base_vmme..module-0",
+                "modelCustomizationName": "VfVgeraldine..base_vflorence..module-0",
                 "properties": {
                   "minCountInstances": 1,
                   "maxCountInstances": 1,
                   "initialCount": 1,
-                  "vfModuleLabel": "base_vmme"
+                  "vfModuleLabel": "base_vflorence"
                 },
                 "inputs": {}
               }
@@ -438,8 +436,11 @@ class MockReduxStore<T> {
               "description": "",
               "serviceEcompNaming": "false",
               "instantiationType": "A-La-Carte",
+              "vidNotions": {
+                "instantiationType": "ALaCarte"
+              },
               "inputs": {
-                "2017488_adiodvpe0_ASN": {
+                "2017488_pasqualevpe0_ASN": {
                   "type": "string",
                   "description": "AV/PE",
                   "entry_schema": null,
@@ -451,11 +452,11 @@ class MockReduxStore<T> {
               }
             },
             "vnfs": {
-              "2017-388_ADIOD-vPE 1": {
+              "2017-388_PASQUALE-vPE 1": {
                 "uuid": "0903e1c0-8e03-4936-b5c2-260653b96413",
                 "invariantUuid": "00beb8f9-6d39-452f-816d-c709b9cbb87d",
-                "description": "Name ADIOD vPE Description The provider edge function for the ADIOD service supported by the Junipers VMX product Category Router Vendor Juniper Vendor Release Code 17.2 Owners Mary Fragale. Updated 9-25 to use v8.0 of the Juniper Valid 2 VLM",
-                "name": "2017-388_ADIOD-vPE",
+                "description": "Name PASQUALE vPE Description The provider edge function for the PASQUALE service supported by the Junipers VMX product Category Router Vendor Juniper Vendor Release Code 17.2 Owners Mary Fragale. Updated 9-25 to use v8.0 of the Juniper Valid 2 VLM",
+                "name": "2017-388_PASQUALE-vPE",
                 "version": "1.0",
                 "customizationUuid": "280dec31-f16d-488b-9668-4aae55d6648a",
                 "inputs": {
@@ -518,38 +519,38 @@ class MockReduxStore<T> {
                   "vnf_config_template_version": {
                     "displayName": "vnf_config_template_version",
                     "command": "get_input",
-                    "inputName": "2017488_adiodvpe0_vnf_config_template_version"
+                    "inputName": "2017488_pasqualevpe0_vnf_config_template_version"
                   },
                   "bandwidth_units": {
                     "displayName": "bandwidth_units",
                     "command": "get_input",
-                    "inputName": "adiodvpe0_bandwidth_units"
+                    "inputName": "pasqualevpe0_bandwidth_units"
                   },
                   "bandwidth": {
                     "displayName": "bandwidth",
                     "command": "get_input",
-                    "inputName": "adiodvpe0_bandwidth"
+                    "inputName": "pasqualevpe0_bandwidth"
                   },
                   "AIC_CLLI": {
                     "displayName": "AIC_CLLI",
                     "command": "get_input",
-                    "inputName": "2017488_adiodvpe0_AIC_CLLI"
+                    "inputName": "2017488_pasqualevpe0_AIC_CLLI"
                   },
                   "ASN": {
                     "displayName": "ASN",
                     "command": "get_input",
-                    "inputName": "2017488_adiodvpe0_ASN"
+                    "inputName": "2017488_pasqualevpe0_ASN"
                   },
                   "vnf_instance_name": {
                     "displayName": "vnf_instance_name",
                     "command": "get_input",
-                    "inputName": "2017488_adiodvpe0_vnf_instance_name"
+                    "inputName": "2017488_pasqualevpe0_vnf_instance_name"
                   }
                 },
                 "properties": {
                   "max_instances": 5,
                   "vmxvre_retype": "RE-VMX",
-                  "vnf_config_template_version": "get_input:2017488_adiodvpe0_vnf_config_template_version",
+                  "vnf_config_template_version": "get_input:2017488_pasqualevpe0_vnf_config_template_version",
                   "sriov44_net_id": "48d399b3-11ee-48a8-94d2-f0ea94d6be8d",
                   "int_ctl_net_id": "2f323477-6936-4d01-ac53-d849430281d9",
                   "vmxvpfe_sriov41_0_port_mac": "00:11:22:EF:AC:DF",
@@ -594,7 +595,7 @@ class MockReduxStore<T> {
                   "vmxvpfe_sriov43_0_port_unknownmulticastallow": "true",
                   "vmxvre_int_ctl_ip_0": "10.0.0.10",
                   "ecomp_generated_naming": "false",
-                  "AIC_CLLI": "get_input:2017488_adiodvpe0_AIC_CLLI",
+                  "AIC_CLLI": "get_input:2017488_pasqualevpe0_AIC_CLLI",
                   "vnf_name": "mtnj309me6vre",
                   "vmxvpfe_sriov41_0_port_unknownunicastallow": "true",
                   "vmxvre_volume_type_1": "HITACHI",
@@ -602,14 +603,14 @@ class MockReduxStore<T> {
                   "vmxvre_volume_type_0": "HITACHI",
                   "vmxvpfe_volume_type_0": "HITACHI",
                   "vmxvpfe_sriov43_0_port_broadcastallow": "true",
-                  "bandwidth_units": "get_input:adiodvpe0_bandwidth_units",
+                  "bandwidth_units": "get_input:pasqualevpe0_bandwidth_units",
                   "vnf_id": "123",
                   "vmxvre_oam_prefix": "24",
                   "availability_zone_0": "mtpocfo-kvm-az01",
-                  "ASN": "get_input:2017488_adiodvpe0_ASN",
+                  "ASN": "get_input:2017488_pasqualevpe0_ASN",
                   "vmxvre_chassis_i2cid": "161",
                   "vmxvpfe_name_0": "vPFEXI",
-                  "bandwidth": "get_input:adiodvpe0_bandwidth",
+                  "bandwidth": "get_input:pasqualevpe0_bandwidth",
                   "availability_zone_max_count": "1",
                   "vmxvre_volume_size_0": "45.0",
                   "vmxvre_volume_size_1": "50.0",
@@ -619,7 +620,7 @@ class MockReduxStore<T> {
                   "vmxvre_ore_present": "0",
                   "vmxvre_volume_name_0": "vREXI_FBVolume",
                   "vmxvre_type": "0",
-                  "vnf_instance_name": "get_input:2017488_adiodvpe0_vnf_instance_name",
+                  "vnf_instance_name": "get_input:2017488_pasqualevpe0_vnf_instance_name",
                   "vmxvpfe_sriov41_0_port_unknownmulticastallow": "true",
                   "oam_net_id": "b95eeb1d-d55d-4827-abb4-8ebb94941429",
                   "vmx_int_ctl_len": "24",
@@ -633,16 +634,16 @@ class MockReduxStore<T> {
                   "vmxvpfe_flavor_name": "ns.c20r16d25.v5"
                 },
                 "type": "VF",
-                "modelCustomizationName": "2017-388_ADIOD-vPE 1",
+                "modelCustomizationName": "2017-388_PASQUALE-vPE 1",
                 "vfModules": {},
                 "volumeGroups": {},
                 "vfcInstanceGroups": {}
               },
-              "2017-388_ADIOD-vPE 0": {
+              "2017-388_PASQUALE-vPE 0": {
                 "uuid": "afacccf6-397d-45d6-b5ae-94c39734b168",
                 "invariantUuid": "72e465fe-71b1-4e7b-b5ed-9496118ff7a8",
-                "description": "Name ADIOD vPE Description The provider edge function for the ADIOD service supported by the Junipers VMX product Category Router Vendor Juniper Vendor Release Code 17.2 Owners Mary Fragale. Updated 9-25 to use v8.0 of the Juniper Valid 2 VLM",
-                "name": "2017-388_ADIOD-vPE",
+                "description": "Name PASQUALE vPE Description The provider edge function for the PASQUALE service supported by the Junipers VMX product Category Router Vendor Juniper Vendor Release Code 17.2 Owners Mary Fragale. Updated 9-25 to use v8.0 of the Juniper Valid 2 VLM",
+                "name": "2017-388_PASQUALE-vPE",
                 "version": "4.0",
                 "customizationUuid": "b3c76f73-eeb5-4fb6-9d31-72a889f1811c",
                 "inputs": {
@@ -705,37 +706,37 @@ class MockReduxStore<T> {
                   "vnf_config_template_version": {
                     "displayName": "vnf_config_template_version",
                     "command": "get_input",
-                    "inputName": "2017488_adiodvpe0_vnf_config_template_version"
+                    "inputName": "2017488_pasqualevpe0_vnf_config_template_version"
                   },
                   "bandwidth_units": {
                     "displayName": "bandwidth_units",
                     "command": "get_input",
-                    "inputName": "adiodvpe0_bandwidth_units"
+                    "inputName": "pasqualevpe0_bandwidth_units"
                   },
                   "bandwidth": {
                     "displayName": "bandwidth",
                     "command": "get_input",
-                    "inputName": "adiodvpe0_bandwidth"
+                    "inputName": "pasqualevpe0_bandwidth"
                   },
                   "AIC_CLLI": {
                     "displayName": "AIC_CLLI",
                     "command": "get_input",
-                    "inputName": "2017488_adiodvpe0_AIC_CLLI"
+                    "inputName": "2017488_pasqualevpe0_AIC_CLLI"
                   },
                   "ASN": {
                     "displayName": "ASN",
                     "command": "get_input",
-                    "inputName": "2017488_adiodvpe0_ASN"
+                    "inputName": "2017488_pasqualevpe0_ASN"
                   },
                   "vnf_instance_name": {
                     "displayName": "vnf_instance_name",
                     "command": "get_input",
-                    "inputName": "2017488_adiodvpe0_vnf_instance_name"
+                    "inputName": "2017488_pasqualevpe0_vnf_instance_name"
                   }
                 },
                 "properties": {
                   "vmxvre_retype": "RE-VMX",
-                  "vnf_config_template_version": "get_input:2017488_adiodvpe0_vnf_config_template_version",
+                  "vnf_config_template_version": "get_input:2017488_pasqualevpe0_vnf_config_template_version",
                   "sriov44_net_id": "48d399b3-11ee-48a8-94d2-f0ea94d6be8d",
                   "int_ctl_net_id": "2f323477-6936-4d01-ac53-d849430281d9",
                   "vmxvpfe_sriov41_0_port_mac": "00:11:22:EF:AC:DF",
@@ -781,7 +782,7 @@ class MockReduxStore<T> {
                   "vmxvpfe_sriov43_0_port_unknownmulticastallow": "true",
                   "vmxvre_int_ctl_ip_0": "10.0.0.10",
                   "ecomp_generated_naming": "false",
-                  "AIC_CLLI": "get_input:2017488_adiodvpe0_AIC_CLLI",
+                  "AIC_CLLI": "get_input:2017488_pasqualevpe0_AIC_CLLI",
                   "vnf_name": "mtnj309me6vre",
                   "vmxvpfe_sriov41_0_port_unknownunicastallow": "true",
                   "vmxvre_volume_type_1": "HITACHI",
@@ -789,14 +790,14 @@ class MockReduxStore<T> {
                   "vmxvre_volume_type_0": "HITACHI",
                   "vmxvpfe_volume_type_0": "HITACHI",
                   "vmxvpfe_sriov43_0_port_broadcastallow": "true",
-                  "bandwidth_units": "get_input:adiodvpe0_bandwidth_units",
+                  "bandwidth_units": "get_input:pasqualevpe0_bandwidth_units",
                   "vnf_id": "123",
                   "vmxvre_oam_prefix": "24",
                   "availability_zone_0": "mtpocfo-kvm-az01",
-                  "ASN": "get_input:2017488_adiodvpe0_ASN",
+                  "ASN": "get_input:2017488_pasqualevpe0_ASN",
                   "vmxvre_chassis_i2cid": "161",
                   "vmxvpfe_name_0": "vPFEXI",
-                  "bandwidth": "get_input:adiodvpe0_bandwidth",
+                  "bandwidth": "get_input:pasqualevpe0_bandwidth",
                   "availability_zone_max_count": "1",
                   "vmxvre_volume_size_0": "45.0",
                   "vmxvre_volume_size_1": "50.0",
@@ -806,7 +807,7 @@ class MockReduxStore<T> {
                   "vmxvre_ore_present": "0",
                   "vmxvre_volume_name_0": "vREXI_FBVolume",
                   "vmxvre_type": "0",
-                  "vnf_instance_name": "get_input:2017488_adiodvpe0_vnf_instance_name",
+                  "vnf_instance_name": "get_input:2017488_pasqualevpe0_vnf_instance_name",
                   "vmxvpfe_sriov41_0_port_unknownmulticastallow": "true",
                   "oam_net_id": "b95eeb1d-d55d-4827-abb4-8ebb94941429",
                   "vmx_int_ctl_len": "24",
@@ -820,16 +821,16 @@ class MockReduxStore<T> {
                   "vmxvpfe_flavor_name": "ns.c20r16d25.v5"
                 },
                 "type": "VF",
-                "modelCustomizationName": "2017-388_ADIOD-vPE 0",
+                "modelCustomizationName": "2017-388_PASQUALE-vPE 0",
                 "vfModules": {},
                 "volumeGroups": {},
                 "vfcInstanceGroups": {}
               },
-              "2017-488_ADIOD-vPE 0": {
+              "2017-488_PASQUALE-vPE 0": {
                 "uuid": "69e09f68-8b63-4cc9-b9ff-860960b5db09",
                 "invariantUuid": "72e465fe-71b1-4e7b-b5ed-9496118ff7a8",
-                "description": "Name ADIOD vPE Description The provider edge function for the ADIOD service supported by the Junipers VMX product Category Router Vendor Juniper Vendor Release Code 17.2 Owners Mary Fragale. Updated 9-25 to use v8.0 of the Juniper Valid 2 VLM",
-                "name": "2017-488_ADIOD-vPE",
+                "description": "Name PASQUALE vPE Description The provider edge function for the PASQUALE service supported by the Junipers VMX product Category Router Vendor Juniper Vendor Release Code 17.2 Owners Mary Fragale. Updated 9-25 to use v8.0 of the Juniper Valid 2 VLM",
+                "name": "2017-488_PASQUALE-vPE",
                 "version": "5.0",
                 "customizationUuid": "1da7b585-5e61-4993-b95e-8e6606c81e45",
                 "inputs": {
@@ -892,37 +893,37 @@ class MockReduxStore<T> {
                   "vnf_config_template_version": {
                     "displayName": "vnf_config_template_version",
                     "command": "get_input",
-                    "inputName": "2017488_adiodvpe0_vnf_config_template_version"
+                    "inputName": "2017488_pasqualevpe0_vnf_config_template_version"
                   },
                   "bandwidth_units": {
                     "displayName": "bandwidth_units",
                     "command": "get_input",
-                    "inputName": "adiodvpe0_bandwidth_units"
+                    "inputName": "pasqualevpe0_bandwidth_units"
                   },
                   "bandwidth": {
                     "displayName": "bandwidth",
                     "command": "get_input",
-                    "inputName": "adiodvpe0_bandwidth"
+                    "inputName": "pasqualevpe0_bandwidth"
                   },
                   "AIC_CLLI": {
                     "displayName": "AIC_CLLI",
                     "command": "get_input",
-                    "inputName": "2017488_adiodvpe0_AIC_CLLI"
+                    "inputName": "2017488_pasqualevpe0_AIC_CLLI"
                   },
                   "ASN": {
                     "displayName": "ASN",
                     "command": "get_input",
-                    "inputName": "2017488_adiodvpe0_ASN"
+                    "inputName": "2017488_pasqualevpe0_ASN"
                   },
                   "vnf_instance_name": {
                     "displayName": "vnf_instance_name",
                     "command": "get_input",
-                    "inputName": "2017488_adiodvpe0_vnf_instance_name"
+                    "inputName": "2017488_pasqualevpe0_vnf_instance_name"
                   }
                 },
                 "properties": {
                   "vmxvre_retype": "RE-VMX",
-                  "vnf_config_template_version": "get_input:2017488_adiodvpe0_vnf_config_template_version",
+                  "vnf_config_template_version": "get_input:2017488_pasqualevpe0_vnf_config_template_version",
                   "sriov44_net_id": "48d399b3-11ee-48a8-94d2-f0ea94d6be8d",
                   "int_ctl_net_id": "2f323477-6936-4d01-ac53-d849430281d9",
                   "vmxvpfe_sriov41_0_port_mac": "00:11:22:EF:AC:DF",
@@ -969,7 +970,7 @@ class MockReduxStore<T> {
                   "vmxvpfe_sriov43_0_port_unknownmulticastallow": "true",
                   "vmxvre_int_ctl_ip_0": "10.0.0.10",
                   "ecomp_generated_naming": "false",
-                  "AIC_CLLI": "get_input:2017488_adiodvpe0_AIC_CLLI",
+                  "AIC_CLLI": "get_input:2017488_pasqualevpe0_AIC_CLLI",
                   "vnf_name": "mtnj309me6vre",
                   "vmxvpfe_sriov41_0_port_unknownunicastallow": "true",
                   "vmxvre_volume_type_1": "HITACHI",
@@ -977,14 +978,14 @@ class MockReduxStore<T> {
                   "vmxvre_volume_type_0": "HITACHI",
                   "vmxvpfe_volume_type_0": "HITACHI",
                   "vmxvpfe_sriov43_0_port_broadcastallow": "true",
-                  "bandwidth_units": "get_input:adiodvpe0_bandwidth_units",
+                  "bandwidth_units": "get_input:pasqualevpe0_bandwidth_units",
                   "vnf_id": "123",
                   "vmxvre_oam_prefix": "24",
                   "availability_zone_0": "mtpocfo-kvm-az01",
-                  "ASN": "get_input:2017488_adiodvpe0_ASN",
+                  "ASN": "get_input:2017488_pasqualevpe0_ASN",
                   "vmxvre_chassis_i2cid": "161",
                   "vmxvpfe_name_0": "vPFEXI",
-                  "bandwidth": "get_input:adiodvpe0_bandwidth",
+                  "bandwidth": "get_input:pasqualevpe0_bandwidth",
                   "availability_zone_max_count": "1",
                   "vmxvre_volume_size_0": "45.0",
                   "vmxvre_volume_size_1": "50.0",
@@ -994,7 +995,7 @@ class MockReduxStore<T> {
                   "vmxvre_ore_present": "0",
                   "vmxvre_volume_name_0": "vREXI_FBVolume",
                   "vmxvre_type": "0",
-                  "vnf_instance_name": "get_input:2017488_adiodvpe0_vnf_instance_name",
+                  "vnf_instance_name": "get_input:2017488_pasqualevpe0_vnf_instance_name",
                   "vmxvpfe_sriov41_0_port_unknownmulticastallow": "true",
                   "oam_net_id": "b95eeb1d-d55d-4827-abb4-8ebb94941429",
                   "vmx_int_ctl_len": "24",
@@ -1008,82 +1009,82 @@ class MockReduxStore<T> {
                   "vmxvpfe_flavor_name": "ns.c20r16d25.v5"
                 },
                 "type": "VF",
-                "modelCustomizationName": "2017-488_ADIOD-vPE 0",
+                "modelCustomizationName": "2017-488_PASQUALE-vPE 0",
                 "vfModules": {
-                  "2017488_adiodvpe0..2017488AdiodVpe..ADIOD_vRE_BV..module-1": {
+                  "2017488_pasqualevpe0..2017488PasqualeVpe..PASQUALE_vRE_BV..module-1": {
                     "uuid": "25284168-24bb-4698-8cb4-3f509146eca5",
                     "invariantUuid": "7253ff5c-97f0-4b8b-937c-77aeb4d79aa1",
                     "customizationUuid": "f7e7c365-60cf-49a9-9ebf-a1aa11b9d401",
                     "description": null,
-                    "name": "2017488AdiodVpe..ADIOD_vRE_BV..module-1",
+                    "name": "2017488PasqualeVpe..PASQUALE_vRE_BV..module-1",
                     "version": "6",
-                    "modelCustomizationName": "2017488AdiodVpe..ADIOD_vRE_BV..module-1",
+                    "modelCustomizationName": "2017488PasqualeVpe..PASQUALE_vRE_BV..module-1",
                     "properties": {
                       "minCountInstances": 0,
                       "maxCountInstances": null,
                       "initialCount": 0,
-                      "vfModuleLabel": "ADIOD_vRE_BV"
+                      "vfModuleLabel": "PASQUALE_vRE_BV"
                     },
                     "inputs": {
-                      "adiodvpe0_bandwidth": {
+                      "pasqualevpe0_bandwidth": {
                         "type": "string",
                         "description": "Requested VPE bandwidth",
                         "entry_schema": null,
                         "inputProperties": {
                           "sourceType": "HEAT",
-                          "vfModuleLabel": "ADIOD_vRE_BV",
+                          "vfModuleLabel": "PASQUALE_vRE_BV",
                           "paramName": "bandwidth"
                         },
                         "constraints": null,
                         "required": true,
                         "default": "10"
                       },
-                      "2017488_adiodvpe0_vnf_instance_name": {
+                      "2017488_pasqualevpe0_vnf_instance_name": {
                         "type": "string",
                         "description": "The hostname assigned to the vpe.",
                         "entry_schema": null,
                         "inputProperties": {
                           "sourceType": "HEAT",
-                          "vfModuleLabel": "ADIOD_vRE_BV",
+                          "vfModuleLabel": "PASQUALE_vRE_BV",
                           "paramName": "vnf_instance_name"
                         },
                         "constraints": null,
                         "required": true,
                         "default": "mtnj309me6"
                       },
-                      "2017488_adiodvpe0_vnf_config_template_version": {
+                      "2017488_pasqualevpe0_vnf_config_template_version": {
                         "type": "string",
                         "description": "VPE Software Version",
                         "entry_schema": null,
                         "inputProperties": {
                           "sourceType": "HEAT",
-                          "vfModuleLabel": "ADIOD_vRE_BV",
+                          "vfModuleLabel": "PASQUALE_vRE_BV",
                           "paramName": "vnf_config_template_version"
                         },
                         "constraints": null,
                         "required": true,
                         "default": "17.2"
                       },
-                      "2017488_adiodvpe0_AIC_CLLI": {
+                      "2017488_pasqualevpe0_AIC_CLLI": {
                         "type": "string",
                         "description": "AIC Site CLLI",
                         "entry_schema": null,
                         "inputProperties": {
                           "sourceType": "HEAT",
-                          "vfModuleLabel": "ADIOD_vRE_BV",
+                          "vfModuleLabel": "PASQUALE_vRE_BV",
                           "paramName": "AIC_CLLI"
                         },
                         "constraints": null,
                         "required": true,
                         "default": "ATLMY8GA"
                       },
-                      "adiodvpe0_bandwidth_units": {
+                      "pasqualevpe0_bandwidth_units": {
                         "type": "string",
                         "description": "Units of bandwidth",
                         "entry_schema": null,
                         "inputProperties": {
                           "sourceType": "HEAT",
-                          "vfModuleLabel": "ADIOD_vRE_BV",
+                          "vfModuleLabel": "PASQUALE_vRE_BV",
                           "paramName": "bandwidth_units"
                         },
                         "constraints": null,
@@ -1093,116 +1094,116 @@ class MockReduxStore<T> {
                     },
                     "volumeGroupAllowed": true
                   },
-                  "2017488_adiodvpe0..2017488AdiodVpe..ADIOD_base_vPE_BV..module-0": {
+                  "2017488_pasqualevpe0..2017488PasqualeVpe..PASQUALE_base_vPE_BV..module-0": {
                     "uuid": "f8360508-3f17-4414-a2ed-6bc71161e8db",
                     "invariantUuid": "b34833bb-6aa9-4ad6-a831-70b06367a091",
                     "customizationUuid": "a55961b2-2065-4ab0-a5b7-2fcee1c227e3",
                     "description": null,
-                    "name": "2017488AdiodVpe..ADIOD_base_vPE_BV..module-0",
+                    "name": "2017488PasqualeVpe..PASQUALE_base_vPE_BV..module-0",
                     "version": "5",
-                    "modelCustomizationName": "2017488AdiodVpe..ADIOD_base_vPE_BV..module-0",
+                    "modelCustomizationName": "2017488PasqualeVpe..PASQUALE_base_vPE_BV..module-0",
                     "properties": {
                       "minCountInstances": 1,
                       "maxCountInstances": 1,
                       "initialCount": 1,
-                      "vfModuleLabel": "ADIOD_base_vPE_BV"
+                      "vfModuleLabel": "PASQUALE_base_vPE_BV"
                     },
                     "inputs": {},
                     "volumeGroupAllowed": false
                   },
-                  "2017488_adiodvpe0..2017488AdiodVpe..ADIOD_vPFE_BV..module-2": {
+                  "2017488_pasqualevpe0..2017488PasqualeVpe..PASQUALE_vPFE_BV..module-2": {
                     "uuid": "0a0dd9d4-31d3-4c3a-ae89-a02f383e6a9a",
                     "invariantUuid": "eff8cc59-53a1-4101-aed7-8cf24ecf8339",
                     "customizationUuid": "3cd946bb-50e0-40d8-96d3-c9023520b557",
                     "description": null,
-                    "name": "2017488AdiodVpe..ADIOD_vPFE_BV..module-2",
+                    "name": "2017488PasqualeVpe..PASQUALE_vPFE_BV..module-2",
                     "version": "6",
-                    "modelCustomizationName": "2017488AdiodVpe..ADIOD_vPFE_BV..module-2",
+                    "modelCustomizationName": "2017488PasqualeVpe..PASQUALE_vPFE_BV..module-2",
                     "properties": {
                       "minCountInstances": 0,
                       "maxCountInstances": null,
                       "initialCount": 0,
-                      "vfModuleLabel": "ADIOD_vPFE_BV"
+                      "vfModuleLabel": "PASQUALE_vPFE_BV"
                     },
                     "inputs": {},
                     "volumeGroupAllowed": true
                   }
                 },
                 "volumeGroups": {
-                  "2017488_adiodvpe0..2017488AdiodVpe..ADIOD_vRE_BV..module-1": {
+                  "2017488_pasqualevpe0..2017488PasqualeVpe..PASQUALE_vRE_BV..module-1": {
                     "uuid": "25284168-24bb-4698-8cb4-3f509146eca5",
                     "invariantUuid": "7253ff5c-97f0-4b8b-937c-77aeb4d79aa1",
                     "customizationUuid": "f7e7c365-60cf-49a9-9ebf-a1aa11b9d401",
                     "description": null,
-                    "name": "2017488AdiodVpe..ADIOD_vRE_BV..module-1",
+                    "name": "2017488PasqualeVpe..PASQUALE_vRE_BV..module-1",
                     "version": "6",
-                    "modelCustomizationName": "2017488AdiodVpe..ADIOD_vRE_BV..module-1",
+                    "modelCustomizationName": "2017488PasqualeVpe..PASQUALE_vRE_BV..module-1",
                     "properties": {
                       "minCountInstances": 0,
                       "maxCountInstances": null,
                       "initialCount": 0,
-                      "vfModuleLabel": "ADIOD_vRE_BV"
+                      "vfModuleLabel": "PASQUALE_vRE_BV"
                     },
                     "inputs": {
-                      "adiodvpe0_bandwidth": {
+                      "pasqualevpe0_bandwidth": {
                         "type": "string",
                         "description": "Requested VPE bandwidth",
                         "entry_schema": null,
                         "inputProperties": {
                           "sourceType": "HEAT",
-                          "vfModuleLabel": "ADIOD_vRE_BV",
+                          "vfModuleLabel": "PASQUALE_vRE_BV",
                           "paramName": "bandwidth"
                         },
                         "constraints": null,
                         "required": true,
                         "default": "10"
                       },
-                      "2017488_adiodvpe0_vnf_instance_name": {
+                      "2017488_pasqualevpe0_vnf_instance_name": {
                         "type": "string",
                         "description": "The hostname assigned to the vpe.",
                         "entry_schema": null,
                         "inputProperties": {
                           "sourceType": "HEAT",
-                          "vfModuleLabel": "ADIOD_vRE_BV",
+                          "vfModuleLabel": "PASQUALE_vRE_BV",
                           "paramName": "vnf_instance_name"
                         },
                         "constraints": null,
                         "required": true,
                         "default": "mtnj309me6"
                       },
-                      "2017488_adiodvpe0_vnf_config_template_version": {
+                      "2017488_pasqualevpe0_vnf_config_template_version": {
                         "type": "string",
                         "description": "VPE Software Version",
                         "entry_schema": null,
                         "inputProperties": {
                           "sourceType": "HEAT",
-                          "vfModuleLabel": "ADIOD_vRE_BV",
+                          "vfModuleLabel": "PASQUALE_vRE_BV",
                           "paramName": "vnf_config_template_version"
                         },
                         "constraints": null,
                         "required": true,
                         "default": "17.2"
                       },
-                      "2017488_adiodvpe0_AIC_CLLI": {
+                      "2017488_pasqualevpe0_AIC_CLLI": {
                         "type": "string",
                         "description": "AIC Site CLLI",
                         "entry_schema": null,
                         "inputProperties": {
                           "sourceType": "HEAT",
-                          "vfModuleLabel": "ADIOD_vRE_BV",
+                          "vfModuleLabel": "PASQUALE_vRE_BV",
                           "paramName": "AIC_CLLI"
                         },
                         "constraints": null,
                         "required": true,
                         "default": "ATLMY8GA"
                       },
-                      "adiodvpe0_bandwidth_units": {
+                      "pasqualevpe0_bandwidth_units": {
                         "type": "string",
                         "description": "Units of bandwidth",
                         "entry_schema": null,
                         "inputProperties": {
                           "sourceType": "HEAT",
-                          "vfModuleLabel": "ADIOD_vRE_BV",
+                          "vfModuleLabel": "PASQUALE_vRE_BV",
                           "paramName": "bandwidth_units"
                         },
                         "constraints": null,
@@ -1211,19 +1212,19 @@ class MockReduxStore<T> {
                       }
                     }
                   },
-                  "2017488_adiodvpe0..2017488AdiodVpe..ADIOD_vPFE_BV..module-2": {
+                  "2017488_pasqualevpe0..2017488PasqualeVpe..PASQUALE_vPFE_BV..module-2": {
                     "uuid": "0a0dd9d4-31d3-4c3a-ae89-a02f383e6a9a",
                     "invariantUuid": "eff8cc59-53a1-4101-aed7-8cf24ecf8339",
                     "customizationUuid": "3cd946bb-50e0-40d8-96d3-c9023520b557",
                     "description": null,
-                    "name": "2017488AdiodVpe..ADIOD_vPFE_BV..module-2",
+                    "name": "2017488PasqualeVpe..PASQUALE_vPFE_BV..module-2",
                     "version": "6",
-                    "modelCustomizationName": "2017488AdiodVpe..ADIOD_vPFE_BV..module-2",
+                    "modelCustomizationName": "2017488PasqualeVpe..PASQUALE_vPFE_BV..module-2",
                     "properties": {
                       "minCountInstances": 0,
                       "maxCountInstances": null,
                       "initialCount": 0,
-                      "vfModuleLabel": "ADIOD_vPFE_BV"
+                      "vfModuleLabel": "PASQUALE_vPFE_BV"
                     },
                     "inputs": {}
                   }
@@ -1310,85 +1311,85 @@ class MockReduxStore<T> {
                 "modelCustomizationName": "ExtVL 0"
               }
             },
-            "collectionResource": {},
+            "collectionResources": {},
             "configurations": {},
             "fabricConfigurations": {},
             "serviceProxies": {},
             "vfModules": {
-              "2017488_adiodvpe0..2017488AdiodVpe..ADIOD_vRE_BV..module-1": {
+              "2017488_pasqualevpe0..2017488PasqualeVpe..PASQUALE_vRE_BV..module-1": {
                 "uuid": "25284168-24bb-4698-8cb4-3f509146eca5",
                 "invariantUuid": "7253ff5c-97f0-4b8b-937c-77aeb4d79aa1",
                 "customizationUuid": "f7e7c365-60cf-49a9-9ebf-a1aa11b9d401",
                 "description": null,
-                "name": "2017488AdiodVpe..ADIOD_vRE_BV..module-1",
+                "name": "2017488PasqualeVpe..PASQUALE_vRE_BV..module-1",
                 "version": "6",
-                "modelCustomizationName": "2017488AdiodVpe..ADIOD_vRE_BV..module-1",
+                "modelCustomizationName": "2017488PasqualeVpe..PASQUALE_vRE_BV..module-1",
                 "properties": {
                   "minCountInstances": 0,
                   "maxCountInstances": null,
                   "initialCount": 0,
-                  "vfModuleLabel": "ADIOD_vRE_BV"
+                  "vfModuleLabel": "PASQUALE_vRE_BV"
                 },
                 "inputs": {
-                  "adiodvpe0_bandwidth": {
+                  "pasqualevpe0_bandwidth": {
                     "type": "string",
                     "description": "Requested VPE bandwidth",
                     "entry_schema": null,
                     "inputProperties": {
                       "sourceType": "HEAT",
-                      "vfModuleLabel": "ADIOD_vRE_BV",
+                      "vfModuleLabel": "PASQUALE_vRE_BV",
                       "paramName": "bandwidth"
                     },
                     "constraints": null,
                     "required": true,
                     "default": "10"
                   },
-                  "2017488_adiodvpe0_vnf_instance_name": {
+                  "2017488_pasqualevpe0_vnf_instance_name": {
                     "type": "string",
                     "description": "The hostname assigned to the vpe.",
                     "entry_schema": null,
                     "inputProperties": {
                       "sourceType": "HEAT",
-                      "vfModuleLabel": "ADIOD_vRE_BV",
+                      "vfModuleLabel": "PASQUALE_vRE_BV",
                       "paramName": "vnf_instance_name"
                     },
                     "constraints": null,
                     "required": true,
                     "default": "mtnj309me6"
                   },
-                  "2017488_adiodvpe0_vnf_config_template_version": {
+                  "2017488_pasqualevpe0_vnf_config_template_version": {
                     "type": "string",
                     "description": "VPE Software Version",
                     "entry_schema": null,
                     "inputProperties": {
                       "sourceType": "HEAT",
-                      "vfModuleLabel": "ADIOD_vRE_BV",
+                      "vfModuleLabel": "PASQUALE_vRE_BV",
                       "paramName": "vnf_config_template_version"
                     },
                     "constraints": null,
                     "required": true,
                     "default": "17.2"
                   },
-                  "2017488_adiodvpe0_AIC_CLLI": {
+                  "2017488_pasqualevpe0_AIC_CLLI": {
                     "type": "string",
                     "description": "AIC Site CLLI",
                     "entry_schema": null,
                     "inputProperties": {
                       "sourceType": "HEAT",
-                      "vfModuleLabel": "ADIOD_vRE_BV",
+                      "vfModuleLabel": "PASQUALE_vRE_BV",
                       "paramName": "AIC_CLLI"
                     },
                     "constraints": null,
                     "required": true,
                     "default": "ATLMY8GA"
                   },
-                  "adiodvpe0_bandwidth_units": {
+                  "pasqualevpe0_bandwidth_units": {
                     "type": "string",
                     "description": "Units of bandwidth",
                     "entry_schema": null,
                     "inputProperties": {
                       "sourceType": "HEAT",
-                      "vfModuleLabel": "ADIOD_vRE_BV",
+                      "vfModuleLabel": "PASQUALE_vRE_BV",
                       "paramName": "bandwidth_units"
                     },
                     "constraints": null,
@@ -1398,116 +1399,116 @@ class MockReduxStore<T> {
                 },
                 "volumeGroupAllowed": true
               },
-              "2017488_adiodvpe0..2017488AdiodVpe..ADIOD_base_vPE_BV..module-0": {
+              "2017488_pasqualevpe0..2017488PasqualeVpe..PASQUALE_base_vPE_BV..module-0": {
                 "uuid": "f8360508-3f17-4414-a2ed-6bc71161e8db",
                 "invariantUuid": "b34833bb-6aa9-4ad6-a831-70b06367a091",
                 "customizationUuid": "a55961b2-2065-4ab0-a5b7-2fcee1c227e3",
                 "description": null,
-                "name": "2017488AdiodVpe..ADIOD_base_vPE_BV..module-0",
+                "name": "2017488PasqualeVpe..PASQUALE_base_vPE_BV..module-0",
                 "version": "5",
-                "modelCustomizationName": "2017488AdiodVpe..ADIOD_base_vPE_BV..module-0",
+                "modelCustomizationName": "2017488PasqualeVpe..PASQUALE_base_vPE_BV..module-0",
                 "properties": {
                   "minCountInstances": 1,
                   "maxCountInstances": 1,
                   "initialCount": 1,
-                  "vfModuleLabel": "ADIOD_base_vPE_BV"
+                  "vfModuleLabel": "PASQUALE_base_vPE_BV"
                 },
                 "inputs": {},
                 "volumeGroupAllowed": false
               },
-              "2017488_adiodvpe0..2017488AdiodVpe..ADIOD_vPFE_BV..module-2": {
+              "2017488_pasqualevpe0..2017488PasqualeVpe..PASQUALE_vPFE_BV..module-2": {
                 "uuid": "0a0dd9d4-31d3-4c3a-ae89-a02f383e6a9a",
                 "invariantUuid": "eff8cc59-53a1-4101-aed7-8cf24ecf8339",
                 "customizationUuid": "3cd946bb-50e0-40d8-96d3-c9023520b557",
                 "description": null,
-                "name": "2017488AdiodVpe..ADIOD_vPFE_BV..module-2",
+                "name": "2017488PasqualeVpe..PASQUALE_vPFE_BV..module-2",
                 "version": "6",
-                "modelCustomizationName": "2017488AdiodVpe..ADIOD_vPFE_BV..module-2",
+                "modelCustomizationName": "2017488PasqualeVpe..PASQUALE_vPFE_BV..module-2",
                 "properties": {
                   "minCountInstances": 0,
                   "maxCountInstances": null,
                   "initialCount": 0,
-                  "vfModuleLabel": "ADIOD_vPFE_BV"
+                  "vfModuleLabel": "PASQUALE_vPFE_BV"
                 },
                 "inputs": {},
                 "volumeGroupAllowed": true
               }
             },
             "volumeGroups": {
-              "2017488_adiodvpe0..2017488AdiodVpe..ADIOD_vRE_BV..module-1": {
+              "2017488_pasqualevpe0..2017488PasqualeVpe..PASQUALE_vRE_BV..module-1": {
                 "uuid": "25284168-24bb-4698-8cb4-3f509146eca5",
                 "invariantUuid": "7253ff5c-97f0-4b8b-937c-77aeb4d79aa1",
                 "customizationUuid": "f7e7c365-60cf-49a9-9ebf-a1aa11b9d401",
                 "description": null,
-                "name": "2017488AdiodVpe..ADIOD_vRE_BV..module-1",
+                "name": "2017488PasqualeVpe..PASQUALE_vRE_BV..module-1",
                 "version": "6",
-                "modelCustomizationName": "2017488AdiodVpe..ADIOD_vRE_BV..module-1",
+                "modelCustomizationName": "2017488PasqualeVpe..PASQUALE_vRE_BV..module-1",
                 "properties": {
                   "minCountInstances": 0,
                   "maxCountInstances": null,
                   "initialCount": 0,
-                  "vfModuleLabel": "ADIOD_vRE_BV"
+                  "vfModuleLabel": "PASQUALE_vRE_BV"
                 },
                 "inputs": {
-                  "adiodvpe0_bandwidth": {
+                  "pasqualevpe0_bandwidth": {
                     "type": "string",
                     "description": "Requested VPE bandwidth",
                     "entry_schema": null,
                     "inputProperties": {
                       "sourceType": "HEAT",
-                      "vfModuleLabel": "ADIOD_vRE_BV",
+                      "vfModuleLabel": "PASQUALE_vRE_BV",
                       "paramName": "bandwidth"
                     },
                     "constraints": null,
                     "required": true,
                     "default": "10"
                   },
-                  "2017488_adiodvpe0_vnf_instance_name": {
+                  "2017488_pasqualevpe0_vnf_instance_name": {
                     "type": "string",
                     "description": "The hostname assigned to the vpe.",
                     "entry_schema": null,
                     "inputProperties": {
                       "sourceType": "HEAT",
-                      "vfModuleLabel": "ADIOD_vRE_BV",
+                      "vfModuleLabel": "PASQUALE_vRE_BV",
                       "paramName": "vnf_instance_name"
                     },
                     "constraints": null,
                     "required": true,
                     "default": "mtnj309me6"
                   },
-                  "2017488_adiodvpe0_vnf_config_template_version": {
+                  "2017488_pasqualevpe0_vnf_config_template_version": {
                     "type": "string",
                     "description": "VPE Software Version",
                     "entry_schema": null,
                     "inputProperties": {
                       "sourceType": "HEAT",
-                      "vfModuleLabel": "ADIOD_vRE_BV",
+                      "vfModuleLabel": "PASQUALE_vRE_BV",
                       "paramName": "vnf_config_template_version"
                     },
                     "constraints": null,
                     "required": true,
                     "default": "17.2"
                   },
-                  "2017488_adiodvpe0_AIC_CLLI": {
+                  "2017488_pasqualevpe0_AIC_CLLI": {
                     "type": "string",
                     "description": "AIC Site CLLI",
                     "entry_schema": null,
                     "inputProperties": {
                       "sourceType": "HEAT",
-                      "vfModuleLabel": "ADIOD_vRE_BV",
+                      "vfModuleLabel": "PASQUALE_vRE_BV",
                       "paramName": "AIC_CLLI"
                     },
                     "constraints": null,
                     "required": true,
                     "default": "ATLMY8GA"
                   },
-                  "adiodvpe0_bandwidth_units": {
+                  "pasqualevpe0_bandwidth_units": {
                     "type": "string",
                     "description": "Units of bandwidth",
                     "entry_schema": null,
                     "inputProperties": {
                       "sourceType": "HEAT",
-                      "vfModuleLabel": "ADIOD_vRE_BV",
+                      "vfModuleLabel": "PASQUALE_vRE_BV",
                       "paramName": "bandwidth_units"
                     },
                     "constraints": null,
@@ -1516,19 +1517,19 @@ class MockReduxStore<T> {
                   }
                 }
               },
-              "2017488_adiodvpe0..2017488AdiodVpe..ADIOD_vPFE_BV..module-2": {
+              "2017488_pasqualevpe0..2017488PasqualeVpe..PASQUALE_vPFE_BV..module-2": {
                 "uuid": "0a0dd9d4-31d3-4c3a-ae89-a02f383e6a9a",
                 "invariantUuid": "eff8cc59-53a1-4101-aed7-8cf24ecf8339",
                 "customizationUuid": "3cd946bb-50e0-40d8-96d3-c9023520b557",
                 "description": null,
-                "name": "2017488AdiodVpe..ADIOD_vPFE_BV..module-2",
+                "name": "2017488PasqualeVpe..PASQUALE_vPFE_BV..module-2",
                 "version": "6",
-                "modelCustomizationName": "2017488AdiodVpe..ADIOD_vPFE_BV..module-2",
+                "modelCustomizationName": "2017488PasqualeVpe..PASQUALE_vPFE_BV..module-2",
                 "properties": {
                   "minCountInstances": 0,
                   "maxCountInstances": null,
                   "initialCount": 0,
-                  "vfModuleLabel": "ADIOD_vPFE_BV"
+                  "vfModuleLabel": "PASQUALE_vPFE_BV"
                 },
                 "inputs": {}
               }
@@ -1539,21 +1540,21 @@ class MockReduxStore<T> {
         "serviceInstance": {
           "6e59c5de-f052-46fa-aa7e-2fca9d674c44": {
             "vnfs": {
-              "VF_vMee 0": {
+              "VF_vGeraldine 0": {
                 "rollbackOnFailure": "true",
                 "vfModules": {
-                  "vf_vmee0..VfVmee..base_vmme..module-0": {
-                    "vf_vmee0..VfVmee..base_vmme..module-0vmvzo": {
+                  "vf_vgeraldine0..VfVgeraldine..base_vflorence..module-0": {
+                    "vf_vgeraldine0..VfVgeraldine..base_vflorence..module-0vmvzo": {
                       "isMissingData": false,
                       "sdncPreReload": null,
                       "modelInfo": {
                         "modelType": "VFmodule",
                         "modelInvariantId": "a6f9e51a-2b35-416a-ae15-15e58d61f36d",
                         "modelVersionId": "a27f5cfc-7f12-4f99-af08-0af9c3885c87",
-                        "modelName": "VfVmee..base_vmme..module-0",
+                        "modelName": "VfVgeraldine..base_vflorence..module-0",
                         "modelVersion": "2",
                         "modelCustomizationId": "f8c040f1-7e51-4a11-aca8-acf256cfd861",
-                        "modelCustomizationName": "VfVmee..base_vmme..module-0"
+                        "modelCustomizationName": "VfVgeraldine..base_vflorence..module-0"
                       },
                       "instanceParams": [
                         {}
@@ -1563,8 +1564,8 @@ class MockReduxStore<T> {
                   }
                 },
                 "isMissingData": true,
-                "originalName": "VF_vMee 0",
-                "vnfStoreKey": "VF_vMee 0",
+                "originalName": "VF_vGeraldine 0",
+                "vnfStoreKey": "VF_vGeraldine 0",
                 "trackById": "p3wk448m5do",
                 "uuid": "d6557200-ecf2-4641-8094-5393ae3aae60",
                 "productFamilyId": "36b4733a-53f4-4cc8-8ff0-9172e5fc4b8e",
@@ -1576,9 +1577,9 @@ class MockReduxStore<T> {
                   "modelType": "VF",
                   "modelInvariantId": "4160458e-f648-4b30-a176-43881ffffe9e",
                   "modelVersionId": "6e59c5de-f052-46fa-aa7e-2fca9d674c44",
-                  "modelName": "VF_vMee",
+                  "modelName": "VF_vGeraldine",
                   "modelVersion": "2.0",
-                  "modelCustomizationName": "VF_vMee 0"
+                  "modelCustomizationName": "VF_vGeraldine 0"
                 }
               }
             },
@@ -1708,41 +1709,41 @@ class MockReduxStore<T> {
               }
             },
             "vnfs": {
-              "2017-488_ADIOD-vPE 0": {
+              "2017-488_PASQUALE-vPE 0": {
                 "rollbackOnFailure": "true",
                 "vfModules": {
-                  "2017488_adiodvpe0..2017488AdiodVpe..ADIOD_vRE_BV..module-1": {
-                    "2017488_adiodvpe0..2017488AdiodVpe..ADIOD_vRE_BV..module-1sgoqi": {
+                  "2017488_pasqualevpe0..2017488PasqualeVpe..PASQUALE_vRE_BV..module-1": {
+                    "2017488_pasqualevpe0..2017488PasqualeVpe..PASQUALE_vRE_BV..module-1sgoqi": {
                       "instanceName": "yoav",
                       "volumeGroupName": "123",
                       "modelInfo": {
                         "modelInvariantId": "7253ff5c-97f0-4b8b-937c-77aeb4d79aa1",
                         "modelVersionId": "25284168-24bb-4698-8cb4-3f509146eca5",
-                        "modelName": "2017488AdiodVpe..ADIOD_vRE_BV..module-1",
+                        "modelName": "2017488PasqualeVpe..PASQUALE_vRE_BV..module-1",
                         "modelVersion": "6",
                         "modelCustomizationId": "f7e7c365-60cf-49a9-9ebf-a1aa11b9d401",
-                        "modelCustomizationName": "2017488AdiodVpe..ADIOD_vRE_BV..module-1",
+                        "modelCustomizationName": "2017488PasqualeVpe..PASQUALE_vRE_BV..module-1",
                         "uuid": "25284168-24bb-4698-8cb4-3f509146eca5"
                       },
                       "uuid": "25284168-24bb-4698-8cb4-3f509146eca5",
                       "isMissingData": false,
                       "instanceParams": [
                         {
-                          "adiodvpe0_bandwidth": "10",
-                          "2017488_adiodvpe0_vnf_instance_name": "mtnj309me6",
-                          "2017488_adiodvpe0_vnf_config_template_version": "17.2",
-                          "2017488_adiodvpe0_AIC_CLLI": "ATLMY8GA",
-                          "adiodvpe0_bandwidth_units": "Gbps"
+                          "pasqualevpe0_bandwidth": "10",
+                          "2017488_pasqualevpe0_vnf_instance_name": "mtnj309me6",
+                          "2017488_pasqualevpe0_vnf_config_template_version": "17.2",
+                          "2017488_pasqualevpe0_AIC_CLLI": "ATLMY8GA",
+                          "pasqualevpe0_bandwidth_units": "Gbps"
                         }
                       ]
                     }
                   }
                 },
                 "isMissingData": false,
-                "originalName": "2017-488_ADIOD-vPE 0",
-                "vnfStoreKey": "2017-488_ADIOD-vPE 0",
+                "originalName": "2017-488_PASQUALE-vPE 0",
+                "vnfStoreKey": "2017-488_PASQUALE-vPE 0",
                 "trackById": "o65b26t2thj",
-                "instanceName": "2017488_ADIODvPE",
+                "instanceName": "2017488_PASQUALEvPE",
                 "productFamilyId": "ebc3bc3d-62fd-4a3f-a037-f619df4ff034",
                 "lcpCloudRegionId": "hvf6",
                 "tenantId": "bae71557c5bb4d5aac6743a4e5f1d054",
@@ -1754,10 +1755,10 @@ class MockReduxStore<T> {
                 "modelInfo": {
                   "modelInvariantId": "72e465fe-71b1-4e7b-b5ed-9496118ff7a8",
                   "modelVersionId": "69e09f68-8b63-4cc9-b9ff-860960b5db09",
-                  "modelName": "2017-488_ADIOD-vPE",
+                  "modelName": "2017-488_PASQUALE-vPE",
                   "modelVersion": "5.0",
                   "modelCustomizationId": "1da7b585-5e61-4993-b95e-8e6606c81e45",
-                  "modelCustomizationName": "2017-488_ADIOD-vPE 0",
+                  "modelCustomizationName": "2017-488_PASQUALE-vPE 0",
                   "uuid": "69e09f68-8b63-4cc9-b9ff-860960b5db09"
                 },
                 "uuid": "69e09f68-8b63-4cc9-b9ff-860960b5db09"
@@ -1765,7 +1766,7 @@ class MockReduxStore<T> {
             },
             "instanceParams": [
               {
-                "2017488_adiodvpe0_ASN": "AV_vPE"
+                "2017488_pasqualevpe0_ASN": "AV_vPE"
               }
             ],
             "validationCounter": 0,
@@ -1786,7 +1787,7 @@ class MockReduxStore<T> {
             "subscriptionServiceType": "TYLER SILVIA",
             "owningEntityId": "d61e6f2d-12fa-4cc2-91df-7c244011d6fc",
             "productFamilyId": "17cc1042-527b-11e6-beb8-9e71128cae77",
-            "lcpCloudRegionId": "JANET25",
+            "lcpCloudRegionId": "AAIAIC25",
             "tenantId": "092eb9e8e4b7412e8787dd091bc58e86",
             "aicZoneId": "JAG1",
             "projectName": null,
@@ -1818,8 +1819,8 @@ class MockReduxStore<T> {
         "lcpRegionsAndTenants": {
           "lcpRegionList": [
             {
-              "id": "JANET25",
-              "name": "JANET25",
+              "id": "AAIAIC25",
+              "name": "AAIAIC25",
               "isPermitted": true
             },
             {
@@ -1829,7 +1830,7 @@ class MockReduxStore<T> {
             }
           ],
           "lcpRegionsTenantsMap": {
-            "JANET25": [
+            "AAIAIC25": [
               {
                 "id": "092eb9e8e4b7412e8787dd091bc58e86",
                 "name": "USP-SIP-IC-24335-T-01",
@@ -1843,8 +1844,128 @@ class MockReduxStore<T> {
                 "isPermitted": true
               },
               {
-                "id": "d0a3e3f2964542259d155a81c41aadc3",
-                "name": "test-hvf6-09",
+                "id": "229bcdc6eaeb4ca59d55221141d01f8e",
+                "name": "AIN Web Tool-15-D-STTest2",
+                "isPermitted": true
+              },
+              {
+                "id": "1178612d2b394be4834ad77f567c0af2",
+                "name": "AIN Web Tool-15-D-SSPtestcustome",
+                "isPermitted": true
+              },
+              {
+                "id": "19c5ade915eb461e8af52fb2fd8cd1f2",
+                "name": "AIN Web Tool-15-D-UncheckedEcopm",
+                "isPermitted": true
+              },
+              {
+                "id": "de007636e25249238447264a988a927b",
+                "name": "AIN Web Tool-15-D-dfsdf",
+                "isPermitted": true
+              },
+              {
+                "id": "62f29b3613634ca6a3065cbe0e020c44",
+                "name": "AIN/SMS-16-D-Multiservices1",
+                "isPermitted": true
+              },
+              {
+                "id": "649289e30d3244e0b48098114d63c2aa",
+                "name": "AIN Web Tool-15-D-SSPST66",
+                "isPermitted": true
+              },
+              {
+                "id": "3f21eeea6c2c486bba31dab816c05a32",
+                "name": "AIN Web Tool-15-D-ASSPST47",
+                "isPermitted": true
+              },
+              {
+                "id": "f60ce21d3ee6427586cff0d22b03b773",
+                "name": "CESAR-100-D-sspjg67246",
+                "isPermitted": true
+              },
+              {
+                "id": "8774659e425f479895ae091bb5d46560",
+                "name": "CESAR-100-D-sspjg68359",
+                "isPermitted": true
+              },
+              {
+                "id": "624eb554b0d147c19ff8885341760481",
+                "name": "AINWebTool-15-D-iftach",
+                "isPermitted": true
+              },
+              {
+                "id": "214f55f5fc414c678059c383b03e4962",
+                "name": "CESAR-100-D-sspjg612401",
+                "isPermitted": true
+              },
+              {
+                "id": "c90666c291664841bb98e4d981ff1db5",
+                "name": "CESAR-100-D-sspjg621340",
+                "isPermitted": true
+              },
+              {
+                "id": "ce5b6bc5c7b348e1bf4b91ac9a174278",
+                "name": "sspjg621351cloned",
+                "isPermitted": true
+              },
+              {
+                "id": "b386b768a3f24c8e953abbe0b3488c02",
+                "name": "AINWebTool-15-D-eteancomp",
+                "isPermitted": true
+              },
+              {
+                "id": "dc6c4dbfd225474e9deaadd34968646c",
+                "name": "AINWebTool-15-T-SPFET",
+                "isPermitted": true
+              },
+              {
+                "id": "02cb5030e9914aa4be120bd9ed1e19eb",
+                "name": "AINWebTool-15-X-eeweww",
+                "isPermitted": true
+              },
+              {
+                "id": "f2f3830e4c984d45bcd00e1a04158a79",
+                "name": "CESAR-100-D-spjg61909",
+                "isPermitted": true
+              },
+              {
+                "id": "05b91bd5137f4929878edd965755c06d",
+                "name": "CESAR-100-D-sspjg621512cloned",
+                "isPermitted": true
+              },
+              {
+                "id": "7002fbe8482d4a989ddf445b1ce336e0",
+                "name": "AINWebTool-15-X-vdr",
+                "isPermitted": true
+              },
+              {
+                "id": "4008522be43741dcb1f5422022a2aa0b",
+                "name": "AINWebTool-15-D-ssasa",
+                "isPermitted": true
+              },
+              {
+                "id": "f44e2e96a1b6476abfda2fa407b00169",
+                "name": "AINWebTool-15-D-PFNPT",
+                "isPermitted": true
+              },
+              {
+                "id": "b69a52bec8a84669a37a1e8b72708be7",
+                "name": "AINWebTool-15-X-vdre",
+                "isPermitted": true
+              },
+              {
+                "id": "fac7d9fd56154caeb9332202dcf2969f",
+                "name": "AINWebTool-15-X-NONPODECOMP",
+                "isPermitted": true
+              },
+              {
+                "id": "2d34d8396e194eb49969fd61ffbff961",
+                "name": "DN5242-Nov16-T5",
+                "isPermitted": true
+              },
+              {
+                "id": "cb42a77ff45b48a8b8deb83bb64acc74",
+                "name": "ro-T11",
                 "isPermitted": true
               },
               {
@@ -1852,6 +1973,16 @@ class MockReduxStore<T> {
                 "name": "ro-T112",
                 "isPermitted": true
               },
+              {
+                "id": "4914ab0ab3a743e58f0eefdacc1dde77",
+                "name": "DN5242-Nov21-T1",
+                "isPermitted": true
+              },
+              {
+                "id": "d0a3e3f2964542259d155a81c41aadc3",
+                "name": "test-hvf6-09",
+                "isPermitted": true
+              },
               {
                 "id": "cbb99fe4ada84631b7baf046b6fd2044",
                 "name": "DN5242-Nov16-T3",
@@ -1863,7 +1994,7 @@ class MockReduxStore<T> {
         "productFamilies": [
           {
             "id": "ebc3bc3d-62fd-4a3f-a037-f619df4ff034",
-            "name": "SCOTTIE",
+            "name": "ERICA",
             "isPermitted": true
           },
           {
@@ -1888,7 +2019,7 @@ class MockReduxStore<T> {
           },
           {
             "id": "323d69d9-2efe-4r45-ay0a-89ea7ard4e6f",
-            "name": "vSCP",
+            "name": "vEsmeralda",
             "isPermitted": true
           },
           {
@@ -1932,7 +2063,7 @@ class MockReduxStore<T> {
             "isPermitted": true
           },
           {
-            "id": "Cisneros",
+            "id": "vMuriel",
             "name": "vMuriel",
             "isPermitted": true
           },
@@ -1958,7 +2089,7 @@ class MockReduxStore<T> {
           },
           {
             "id": "d7bb0a21-66f2-4e6d-87d9-9ef3ced63ae4",
-            "name": "Josefina",
+            "name": "JOSEFINA",
             "isPermitted": true
           },
           {
@@ -2006,7 +2137,7 @@ class MockReduxStore<T> {
             },
             {
               "id": "6",
-              "name": "vSEGW",
+              "name": "vPorfirio",
               "isPermitted": false
             },
             {
@@ -2021,7 +2152,7 @@ class MockReduxStore<T> {
             },
             {
               "id": "9",
-              "name": "vMME",
+              "name": "vFLORENCE",
               "isPermitted": false
             },
             {
@@ -2031,7 +2162,7 @@ class MockReduxStore<T> {
             },
             {
               "id": "11",
-              "name": "vSCP",
+              "name": "vEsmeralda",
               "isPermitted": false
             },
             {
@@ -2041,7 +2172,7 @@ class MockReduxStore<T> {
             },
             {
               "id": "13",
-              "name": "vMMSC",
+              "name": "vWINIFRED",
               "isPermitted": false
             },
             {
@@ -2084,6 +2215,754 @@ class MockReduxStore<T> {
             "id": "YYY1",
             "name": "UUUAIAAI-YYY1"
           },
+          {
+            "id": "BAN1",
+            "name": "VSDKYUTP-BAN1"
+          },
+          {
+            "id": "DKJ1",
+            "name": "DKJSJDKA-DKJ1"
+          },
+          {
+            "id": "MCS1",
+            "name": "ASACMAMS-MCS1"
+          },
+          {
+            "id": "UIO1",
+            "name": "uioclli1-UIO1"
+          },
+          {
+            "id": "RAJ1",
+            "name": "YGBIJNLQ-RAJ1"
+          },
+          {
+            "id": "OPA1",
+            "name": "opaclli1-OPA1"
+          },
+          {
+            "id": "SDE1",
+            "name": "ZXCVBNMA-SDE1"
+          },
+          {
+            "id": "VEN2",
+            "name": "FGHJUHIL-VEN2"
+          },
+          {
+            "id": "ORL1",
+            "name": "ORLDFLMA-ORL1"
+          },
+          {
+            "id": "JAD1",
+            "name": "JADECLLI-JAD1"
+          },
+          {
+            "id": "ZXL1",
+            "name": "LWLWCANN-ZXL1"
+          },
+          {
+            "id": "CKL1",
+            "name": "CLKSKCKK-CKL1"
+          },
+          {
+            "id": "SDF1",
+            "name": "sdfclli1-SDF1"
+          },
+          {
+            "id": "RAD1",
+            "name": "RADICAL1-RAD1"
+          },
+          {
+            "id": "KIT1",
+            "name": "BHYJFGLN-KIT1"
+          },
+          {
+            "id": "REL1",
+            "name": "INGERFGT-REL1"
+          },
+          {
+            "id": "JNL1",
+            "name": "CJALSDAC-JNL1"
+          },
+          {
+            "id": "OLK1",
+            "name": "OLKOLKLS-OLK1"
+          },
+          {
+            "id": "CHI1",
+            "name": "CHILLIWE-CHI1"
+          },
+          {
+            "id": "UUU4",
+            "name": "UUUAAAUU-UUU4"
+          },
+          {
+            "id": "TUF1",
+            "name": "TUFCLLI1-TUF1"
+          },
+          {
+            "id": "KJN1",
+            "name": "CKALDKSA-KJN1"
+          },
+          {
+            "id": "SAM1",
+            "name": "SNDGCA64-SAN1"
+          },
+          {
+            "id": "SCK1",
+            "name": "SCKSCKSK-SCK1"
+          },
+          {
+            "id": "HJH1",
+            "name": "AOEEQQQD-HJH1"
+          },
+          {
+            "id": "HGD1",
+            "name": "SDFQWHGD-HGD1"
+          },
+          {
+            "id": "KOR1",
+            "name": "HYFLNBVT-KOR1"
+          },
+          {
+            "id": "ATL43",
+            "name": "AICLOCID-ATL43"
+          },
+          {
+            "id": "ATL54",
+            "name": "AICFTAAI-ATL54"
+          },
+          {
+            "id": "ATL66",
+            "name": "CLLIAAII-ATL66"
+          },
+          {
+            "id": "VEL1",
+            "name": "BNMLKUIK-VEL1"
+          },
+          {
+            "id": "ICC1",
+            "name": "SANJITAT-ICC1"
+          },
+          {
+            "id": "MNT11",
+            "name": "WSXEFBTH-MNT11"
+          },
+          {
+            "id": "DEF2",
+            "name": "WSBHGTYL-DEF2"
+          },
+          {
+            "id": "MAD11",
+            "name": "SDFQWGKL-MAD11"
+          },
+          {
+            "id": "OLG1",
+            "name": "OLHOLHOL-OLG1"
+          },
+          {
+            "id": "GAR1",
+            "name": "NGFVSJKO-GAR1"
+          },
+          {
+            "id": "SAN22",
+            "name": "GNVLSCTL-SAN22"
+          },
+          {
+            "id": "HRG1",
+            "name": "HRGHRGGS-HRG1"
+          },
+          {
+            "id": "JCS1",
+            "name": "JCSJSCJS-JCS1"
+          },
+          {
+            "id": "DHA12",
+            "name": "WSXEDECF-DHA12"
+          },
+          {
+            "id": "HJE1",
+            "name": "AOEEWWWD-HJE1"
+          },
+          {
+            "id": "NCA1",
+            "name": "NCANCANN-NCA1"
+          },
+          {
+            "id": "IOP1",
+            "name": "iopclli1-IOP1"
+          },
+          {
+            "id": "RTY1",
+            "name": "rtyclli1-RTY1"
+          },
+          {
+            "id": "KAP1",
+            "name": "HIOUYTRQ-KAP1"
+          },
+          {
+            "id": "ZEN1",
+            "name": "ZENCLLI1-ZEN1"
+          },
+          {
+            "id": "HKA1",
+            "name": "JAKHLASS-HKA1"
+          },
+          {
+            "id": "CQK1",
+            "name": "CQKSCAKK-CQK1"
+          },
+          {
+            "id": "SAI1",
+            "name": "UBEKQLPD-SAI1"
+          },
+          {
+            "id": "ERT1",
+            "name": "ertclli1-ERT1"
+          },
+          {
+            "id": "IBB1",
+            "name": "PLMKOIJU-IBB1"
+          },
+          {
+            "id": "TIR2",
+            "name": "PLKINHYI-TIR2"
+          },
+          {
+            "id": "HSD1",
+            "name": "CHASKCDS-HSD1"
+          },
+          {
+            "id": "SLF78",
+            "name": "SDCTLFN1-SLF78"
+          },
+          {
+            "id": "SEE78",
+            "name": "SDCTEEE4-SEE78"
+          },
+          {
+            "id": "SAN13",
+            "name": "TOKYJPFA-SAN13"
+          },
+          {
+            "id": "SAA78",
+            "name": "SDCTAAA1-SAA78"
+          },
+          {
+            "id": "LUC1",
+            "name": "ATLDFGYC-LUC1"
+          },
+          {
+            "id": "AMD13",
+            "name": "MEMATLAN-AMD13"
+          },
+          {
+            "id": "TOR1",
+            "name": "TOROONXN-TOR1"
+          },
+          {
+            "id": "QWE1",
+            "name": "QWECLLI1-QWE1"
+          },
+          {
+            "id": "ZOG1",
+            "name": "ZOGASTRO-ZOG1"
+          },
+          {
+            "id": "CAL33",
+            "name": "CALIFORN-CAL33"
+          },
+          {
+            "id": "SHH78",
+            "name": "SDIT1HHH-SHH78"
+          },
+          {
+            "id": "DSA1",
+            "name": "LKJHGFDS-DSA1"
+          },
+          {
+            "id": "CLG1",
+            "name": "CLGRABAD-CLG1"
+          },
+          {
+            "id": "BNA1",
+            "name": "BNARAGBK-BNA1"
+          },
+          {
+            "id": "ATL84",
+            "name": "CANTTCOC-ATL84"
+          },
+          {
+            "id": "APP1",
+            "name": "WBHGTYUI-APP1"
+          },
+          {
+            "id": "RJN1",
+            "name": "RJNRBZAW-RJN1"
+          },
+          {
+            "id": "EHH78",
+            "name": "SDCSHHH5-EHH78"
+          },
+          {
+            "id": "mac10",
+            "name": "PKGTESTF-mac10"
+          },
+          {
+            "id": "SXB78",
+            "name": "SDCTGXB1-SXB78"
+          },
+          {
+            "id": "SAX78",
+            "name": "SDCTAXG1-SAX78"
+          },
+          {
+            "id": "SYD1",
+            "name": "SYDNAUBV-SYD1"
+          },
+          {
+            "id": "TOK1",
+            "name": "TOKYJPFA-TOK1"
+          },
+          {
+            "id": "KGM2",
+            "name": "KGMTNC20-KGM2"
+          },
+          {
+            "id": "DCC1b",
+            "name": "POIUYTGH-DCC1b"
+          },
+          {
+            "id": "SKK78",
+            "name": "SDCTKKK1-SKK78"
+          },
+          {
+            "id": "SGG78",
+            "name": "SDCTGGG1-SGG78"
+          },
+          {
+            "id": "SJJ78",
+            "name": "SDCTJJJ1-SJJ78"
+          },
+          {
+            "id": "SBX78",
+            "name": "SDCTBXG1-SBX78"
+          },
+          {
+            "id": "LAG1",
+            "name": "LARGIZON-LAG1"
+          },
+          {
+            "id": "IAA1",
+            "name": "QAZXSWED-IAA1"
+          },
+          {
+            "id": "POI1",
+            "name": "PLMNJKIU-POI1"
+          },
+          {
+            "id": "LAG1a",
+            "name": "LARGIZON-LAG1a"
+          },
+          {
+            "id": "PBL1",
+            "name": "PBLAPBAI-PBL1"
+          },
+          {
+            "id": "LAG45",
+            "name": "LARGIZON-LAG1a"
+          },
+          {
+            "id": "MAR1",
+            "name": "MNBVCXZM-MAR1"
+          },
+          {
+            "id": "HST70",
+            "name": "HSTNTX70-HST70"
+          },
+          {
+            "id": "DCC1a",
+            "name": "POIUYTGH-DCC1a"
+          },
+          {
+            "id": "TOL1",
+            "name": "TOLDOH21-TOL1"
+          },
+          {
+            "id": "LON1",
+            "name": "LONEENCO-LON1"
+          },
+          {
+            "id": "SJU78",
+            "name": "SDIT1JUB-SJU78"
+          },
+          {
+            "id": "STN27",
+            "name": "HSTNTX01-STN27"
+          },
+          {
+            "id": "SSW56",
+            "name": "ss8126GT-SSW56"
+          },
+          {
+            "id": "SBB78",
+            "name": "SDIT1BBB-SBB78"
+          },
+          {
+            "id": "DCC3",
+            "name": "POIUYTGH-DCC3"
+          },
+          {
+            "id": "GNV1",
+            "name": "GNVLSCTL-GNV1"
+          },
+          {
+            "id": "WAS1",
+            "name": "WASHDCSW-WAS1"
+          },
+          {
+            "id": "TOY1",
+            "name": "TORYONNZ-TOY1"
+          },
+          {
+            "id": "STT1",
+            "name": "STTLWA02-STT1"
+          },
+          {
+            "id": "STG1",
+            "name": "STTGGE62-STG1"
+          },
+          {
+            "id": "SLL78",
+            "name": "SDCTLLL1-SLL78"
+          },
+          {
+            "id": "SBU78",
+            "name": "SDIT1BUB-SBU78"
+          },
+          {
+            "id": "ATL2",
+            "name": "ATLNGANW-ATL2"
+          },
+          {
+            "id": "BOT1",
+            "name": "BOTHWAKY-BOT1"
+          },
+          {
+            "id": "SNG1",
+            "name": "SNGPSIAU-SNG1"
+          },
+          {
+            "id": "NYC1",
+            "name": "NYCMNY54-NYC1"
+          },
+          {
+            "id": "LAG1b",
+            "name": "LARGIZON-LAG1b"
+          },
+          {
+            "id": "AMD15",
+            "name": "AMDFAA01-AMD15"
+          },
+          {
+            "id": "SNA1",
+            "name": "SNANTXCA-SNA1"
+          },
+          {
+            "id": "PLT1",
+            "name": "PLTNCA60-PLT1"
+          },
+          {
+            "id": "TLP1",
+            "name": "TLPNXM18-TLP1"
+          },
+          {
+            "id": "SDD81",
+            "name": "SAIT1DD6-SDD81"
+          },
+          {
+            "id": "DCC1",
+            "name": "POIUYTGH-DCC1"
+          },
+          {
+            "id": "DCC2",
+            "name": "POIUYTGH-DCC2"
+          },
+          {
+            "id": "OKC1",
+            "name": "OKCBOK55-OKC1"
+          },
+          {
+            "id": "PAR1",
+            "name": "PARSFRCG-PAR1"
+          },
+          {
+            "id": "TES36",
+            "name": "ABCEETES-TES36"
+          },
+          {
+            "id": "COM1",
+            "name": "PLMKOPIU-COM1"
+          },
+          {
+            "id": "ANI1",
+            "name": "ATLNGTRE-ANI1"
+          },
+          {
+            "id": "SDG78",
+            "name": "SDIT1BDG-SDG78"
+          },
+          {
+            "id": "mac20",
+            "name": "PKGTESTF-mac20"
+          },
+          {
+            "id": "DSF45",
+            "name": "DSFBG123-DSF45"
+          },
+          {
+            "id": "HST25",
+            "name": "HSTNTX01-HST25"
+          },
+          {
+            "id": "AMD18",
+            "name": "AUDIMA01-AMD18"
+          },
+          {
+            "id": "SAA80",
+            "name": "SAIT9AA3-SAA80"
+          },
+          {
+            "id": "SSA56",
+            "name": "SSIT2AA7-SSA56"
+          },
+          {
+            "id": "SDD82",
+            "name": "SAIT1DD9-SDD82"
+          },
+          {
+            "id": "JCV1",
+            "name": "JCVLFLBW-JCV1"
+          },
+          {
+            "id": "SUL2",
+            "name": "WERTYUJK-SUL2"
+          },
+          {
+            "id": "PUR1",
+            "name": "purelyde-PUR1"
+          },
+          {
+            "id": "FDE55",
+            "name": "FDERT555-FDE55"
+          },
+          {
+            "id": "SITE",
+            "name": "LONEENCO-SITE"
+          },
+          {
+            "id": "ATL1",
+            "name": "ATLNGAMA-ATL1"
+          },
+          {
+            "id": "JUL1",
+            "name": "ZXCVBNMM-JUL1"
+          },
+          {
+            "id": "TAT34",
+            "name": "TESAAISB-TAT34"
+          },
+          {
+            "id": "XCP12",
+            "name": "CHKGH123-XCP12"
+          },
+          {
+            "id": "RAI1",
+            "name": "poiuytre-RAI1"
+          },
+          {
+            "id": "HPO1",
+            "name": "ATLNGAUP-HPO1"
+          },
+          {
+            "id": "KJF12",
+            "name": "KJFDH123-KJF12"
+          },
+          {
+            "id": "SCC80",
+            "name": "SAIT9CC3-SCC80"
+          },
+          {
+            "id": "SAA12",
+            "name": "SAIT9AF8-SAA12"
+          },
+          {
+            "id": "SAA14",
+            "name": "SAIT1AA9-SAA14"
+          },
+          {
+            "id": "ATL35",
+            "name": "TTESSAAI-ATL35"
+          },
+          {
+            "id": "CWY1",
+            "name": "CWYMOWBS-CWY1"
+          },
+          {
+            "id": "ATL76",
+            "name": "TELEPAAI-ATL76"
+          },
+          {
+            "id": "DSL12",
+            "name": "DSLFK242-DSL12"
+          },
+          {
+            "id": "ATL53",
+            "name": "AAIATLTE-ATL53"
+          },
+          {
+            "id": "SAA11",
+            "name": "SAIT9AA2-SAA11"
+          },
+          {
+            "id": "ATL62",
+            "name": "TESSASCH-ATL62"
+          },
+          {
+            "id": "AUG1",
+            "name": "ASDFGHJK-AUG1"
+          },
+          {
+            "id": "POI22",
+            "name": "POIUY123-POI22"
+          },
+          {
+            "id": "SAA13",
+            "name": "SAIT1AA9-SAA13"
+          },
+          {
+            "id": "BHY17",
+            "name": "BHYTFRF3-BHY17"
+          },
+          {
+            "id": "LIS1",
+            "name": "HOSTPROF-LIS1"
+          },
+          {
+            "id": "SIP1",
+            "name": "ZXCVBNMK-SIP1"
+          },
+          {
+            "id": "ATL99",
+            "name": "TEESTAAI-ATL43"
+          },
+          {
+            "id": "ATL64",
+            "name": "FORLOAAJ-ATL64"
+          },
+          {
+            "id": "TAT33",
+            "name": "TESAAISA-TAT33"
+          },
+          {
+            "id": "RAD10",
+            "name": "INDIPUNE-RAD10"
+          },
+          {
+            "id": "RTW5",
+            "name": "BHYTFRY4-RTW5"
+          },
+          {
+            "id": "JGS1",
+            "name": "KSJKKKKK-JGS1"
+          },
+          {
+            "id": "ATL98",
+            "name": "TEESTAAI-ATL43"
+          },
+          {
+            "id": "WAN1",
+            "name": "LEIWANGW-WAN1"
+          },
+          {
+            "id": "ATL44",
+            "name": "ATLSANAB-ATL44"
+          },
+          {
+            "id": "RTD2",
+            "name": "BHYTFRk4-RTD2"
+          },
+          {
+            "id": "NIR1",
+            "name": "ORFLMANA-NIR1"
+          },
+          {
+            "id": "ATL75",
+            "name": "SANAAIRE-ATL75"
+          },
+          {
+            "id": "NUM1",
+            "name": "QWERTYUI-NUM1"
+          },
+          {
+            "id": "hvf32",
+            "name": "MDTWNJ21-hvf32"
+          },
+          {
+            "id": "RTZ4",
+            "name": "BHYTFRZ6-RTZ4"
+          },
+          {
+            "id": "ATL56",
+            "name": "ATLSANAC-ATL56"
+          },
+          {
+            "id": "AMS1",
+            "name": "AMSTNLBW-AMS1"
+          },
+          {
+            "id": "RCT1",
+            "name": "AMSTERNL-RCT1"
+          },
+          {
+            "id": "JAN1",
+            "name": "ORFLMATT-JAN1"
+          },
+          {
+            "id": "ABC14",
+            "name": "TESAAISA-ABC14"
+          },
+          {
+            "id": "TAT37",
+            "name": "TESAAISD-TAT37"
+          },
+          {
+            "id": "MIC54",
+            "name": "MICHIGAN-MIC54"
+          },
+          {
+            "id": "ABC11",
+            "name": "ATLSANAI-ABC11"
+          },
+          {
+            "id": "AMF11",
+            "name": "AMDOCS01-AMF11"
+          },
+          {
+            "id": "ATL63",
+            "name": "ATLSANEW-ATL63"
+          },
+          {
+            "id": "ABC12",
+            "name": "ATLSECIA-ABC12"
+          },
+          {
+            "id": "hvf20",
+            "name": "MDTWNJ21-hvf20"
+          },
+          {
+            "id": "ABC15",
+            "name": "AAITESAN-ABC15"
+          },
           {
             "id": "AVT1",
             "name": "AVTRFLHD-AVT1"
@@ -2278,7 +3157,7 @@ describe('vnf new popup service', () => {
 
   test('getModelInformation  vnf should update modelInformations', () => {
     const serviceId: string = '6b528779-44a3-4472-bdff-9cd15ec93450';
-    const vnfModelName: string = '2017-388_ADIOD-vPE 1';
+    const vnfModelName: string = '2017-388_PASQUALE-vPE 1';
     service.getModelInformation(serviceId, vnfModelName);
     expect(service.modelInformations.length).toEqual(14);
     expect(service.modelInformations[0].label).toEqual("Subscriber Name");
@@ -2291,13 +3170,13 @@ describe('vnf new popup service', () => {
     expect(service.modelInformations[2].values).toEqual(['InstanceName']);
 
     expect(service.modelInformations[3].label).toEqual("Model Name");
-    expect(service.modelInformations[3].values).toEqual(['2017-388_ADIOD-vPE']);
+    expect(service.modelInformations[3].values).toEqual(['2017-388_PASQUALE-vPE']);
 
     expect(service.modelInformations[4].label).toEqual("Model version");
     expect(service.modelInformations[4].values).toEqual(['1.0']);
 
     expect(service.modelInformations[5].label).toEqual("Description");
-    expect(service.modelInformations[5].values).toEqual(['Name ADIOD vPE Description The provider edge function for the ADIOD service supported by the Junipers VMX product Category Router Vendor Juniper Vendor Release Code 17.2 Owners Mary Fragale. Updated 9-25 to use v8.0 of the Juniper Valid 2 VLM']);
+    expect(service.modelInformations[5].values).toEqual(['Name PASQUALE vPE Description The provider edge function for the PASQUALE service supported by the Junipers VMX product Category Router Vendor Juniper Vendor Release Code 17.2 Owners Mary Fragale. Updated 9-25 to use v8.0 of the Juniper Valid 2 VLM']);
 
     expect(service.modelInformations[6].label).toEqual("Category");
     expect(service.modelInformations[6].values).toEqual([undefined]);
@@ -2327,34 +3206,34 @@ describe('vnf new popup service', () => {
   test('getSubLeftTitle new vnf popup should return service model name', () => {
     service.uuidData = {
       serviceId: '6e59c5de-f052-46fa-aa7e-2fca9d674c44',
-      modelName: 'VF_vMee 0'
+      modelName: 'VF_vGeraldine 0'
     };
-    expect(service.getSubLeftTitle()).toBe('VNF MODEL: VF_vMee');
+    expect(service.getSubLeftTitle()).toBe('VNF MODEL: VF_vGeraldine');
   });
 
   test('getInstance with empty storekey should be created', () => {
     const serviceId: string = '6e59c5de-f052-46fa-aa7e-2fca9d674c44';
-    const vnfModelName: string = '2017-388_ADIOD-vPE 1';
+    const vnfModelName: string = '2017-388_PASQUALE-vPE 1';
     const newInstance = service.getInstance(serviceId, vnfModelName, null);
     expect(newInstance).toBeDefined();
   });
 
   test('getInstance with not empty storekey should return vnfStoreKey', () => {
     const serviceId: string = '6b528779-44a3-4472-bdff-9cd15ec93450';
-    const vnfModelName: string = '2017-388_ADIOD-vPE 1';
-    const vnfStoreKey: string = '2017-488_ADIOD-vPE 0';
+    const vnfModelName: string = '2017-388_PASQUALE-vPE 1';
+    const vnfStoreKey: string = '2017-488_PASQUALE-vPE 0';
     const newInstance = service.getInstance(serviceId, vnfModelName, vnfStoreKey);
-    expect(newInstance.vnfStoreKey).toEqual('2017-488_ADIOD-vPE 0');
+    expect(newInstance.vnfStoreKey).toEqual('2017-488_PASQUALE-vPE 0');
   });
 
   test('getGenericFormPopupDetails returns the FormPopupDetails object', () => {
       const serviceId: string = '6e59c5de-f052-46fa-aa7e-2fca9d674c44';
-      const vnfModelName: string = 'VF_vMee 0';
-      const vnfStoreKey: string = 'VF_vMee 0';
+      const vnfModelName: string = 'VF_vGeraldine 0';
+      const vnfStoreKey: string = 'VF_vGeraldine 0';
       let uuidData: UUIDData = <any>{
         serviceId: "6e59c5de-f052-46fa-aa7e-2fca9d674c44",
-        modelName: "VF_vMee 0",
-        vnfStoreKey: "VF_vMee 0"
+        modelName: "VF_vGeraldine 0",
+        vnfStoreKey: "VF_vGeraldine 0"
       };
       const formPopupDetailsObject = service.getGenericFormPopupDetails(serviceId, vnfModelName, vnfStoreKey, null, uuidData, true);
       expect(formPopupDetailsObject).toBeDefined();
index 8969e3c..b23f745 100644 (file)
@@ -64,7 +64,7 @@ export class VnfPopupService implements GenericPopupInterface{
   }
 
   getControls(serviceId: string, modelName: string, vnfStoreKey: string){
-    if(this._store.getState().service.serviceHierarchy[serviceId].service.instantiationType === 'Macro') {
+    if(this._store.getState().service.serviceHierarchy[serviceId].service.vidNotions.instantiationType === 'Macro') {
       return this._vnfControlGenerator.getMacroFormControls(serviceId, vnfStoreKey, modelName);
     } else {
       return this._vnfControlGenerator.getAlaCarteFormControls(serviceId, vnfStoreKey, modelName);
index 5e2d121..00f9790 100644 (file)
@@ -26,17 +26,12 @@ class MockReduxStore<T> {
           "FLAG_NETWORK_TO_ASYNC_INSTANTIATION": false,
           "FLAG_SHOW_ASSIGNMENTS": true,
           "FLAG_FABRIC_CONFIGURATION_ASSIGNMENTS": true,
-          "FLAG_UNASSIGN_SERVICE": true,
           "FLAG_SHOW_VERIFY_SERVICE": false,
-          "FLAG_COLLECTION_RESOURCE_SUPPORT": true,
-          "FLAG_DUPLICATE_VNF": true,
           "FLAG_SERVICE_MODEL_CACHE": true,
           "FLAG_ADVANCED_PORTS_FILTER": true,
           "CREATE_INSTANCE_TEST": false,
           "FLAG_SETTING_DEFAULTS_IN_DRAWING_BOARD": false,
           "FLAG_REGION_ID_FROM_REMOTE": true,
-          "FLAG_ASYNC_INSTANTIATION": true,
-          "FLAG_ASYNC_JOBS": true,
           "EMPTY_DRAWING_BOARD_TEST": false,
           "FLAG_ADD_MSO_TESTAPI_FIELD": true
         },
@@ -57,14 +52,17 @@ class MockReduxStore<T> {
               "description": "ComplexService",
               "serviceEcompNaming": "false",
               "instantiationType": "Macro",
+              "vidNotions": {
+                "instantiationType": "Macro"
+              },
               "inputs": {}
             },
             "vnfGroups": {
-              "VF_vMee 0": {
+              "VF_vGeraldine 0": {
                 "uuid": "d6557200-ecf2-4641-8094-5393ae3aae60",
                 "invariantUuid": "4160458e-f648-4b30-a176-43881ffffe9e",
-                "description": "VSP_vMee",
-                "name": "VF_vMee",
+                "description": "VSP_vGeraldine",
+                "name": "VF_vGeraldine",
                 "version": "2.0",
                 "customizationUuid": "91415b44-753d-494c-926a-456a9172bbb9",
                 "inputs": {},
@@ -235,74 +233,74 @@ class MockReduxStore<T> {
                   "sctp-b-egress-dst_end_port": "65535.0"
                 },
                 "type": "VnfGroup",
-                "modelCustomizationName": "VF_vMee 0",
+                "modelCustomizationName": "VF_vGeraldine 0",
                 "vfModules": {
-                  "vf_vmee0..VfVmee..vmme_vlc..module-1": {
+                  "vf_vgeraldine0..VfVgeraldine..vflorence_vlc..module-1": {
                     "uuid": "522159d5-d6e0-4c2a-aa44-5a542a12a830",
                     "invariantUuid": "98a7c88b-b577-476a-90e4-e25a5871e02b",
                     "customizationUuid": "55b1be94-671a-403e-a26c-667e9c47d091",
                     "description": null,
-                    "name": "VfVmee..vmme_vlc..module-1",
+                    "name": "VfVgeraldine..vflorence_vlc..module-1",
                     "version": "2",
-                    "modelCustomizationName": "VfVmee..vmme_vlc..module-1",
+                    "modelCustomizationName": "VfVgeraldine..vflorence_vlc..module-1",
                     "properties": {
                       "minCountInstances": 0,
                       "maxCountInstances": null,
                       "initialCount": 0,
-                      "vfModuleLabel": "vmme_vlc"
+                      "vfModuleLabel": "vflorence_vlc"
                     },
                     "inputs": {},
                     "volumeGroupAllowed": true
                   },
-                  "vf_vmee0..VfVmee..vmme_gpb..module-2": {
+                  "vf_vgeraldine0..VfVgeraldine..vflorence_gpb..module-2": {
                     "uuid": "41708296-e443-4c71-953f-d9a010f059e1",
                     "invariantUuid": "1cca90b8-3490-495e-87da-3f3e4c57d5b9",
                     "customizationUuid": "6add59e0-7fe1-4bc4-af48-f8812422ae7c",
                     "description": null,
-                    "name": "VfVmee..vmme_gpb..module-2",
+                    "name": "VfVgeraldine..vflorence_gpb..module-2",
                     "version": "2",
-                    "modelCustomizationName": "VfVmee..vmme_gpb..module-2",
+                    "modelCustomizationName": "VfVgeraldine..vflorence_gpb..module-2",
                     "properties": {
                       "minCountInstances": 0,
                       "maxCountInstances": null,
                       "initialCount": 0,
-                      "vfModuleLabel": "vmme_gpb"
+                      "vfModuleLabel": "vflorence_gpb"
                     },
                     "inputs": {},
                     "volumeGroupAllowed": false
                   },
-                  "vf_vmee0..VfVmee..base_vmme..module-0": {
+                  "vf_vgeraldine0..VfVgeraldine..base_vflorence..module-0": {
                     "uuid": "a27f5cfc-7f12-4f99-af08-0af9c3885c87",
                     "invariantUuid": "a6f9e51a-2b35-416a-ae15-15e58d61f36d",
                     "customizationUuid": "f8c040f1-7e51-4a11-aca8-acf256cfd861",
                     "description": null,
-                    "name": "VfVmee..base_vmme..module-0",
+                    "name": "VfVgeraldine..base_vflorence..module-0",
                     "version": "2",
-                    "modelCustomizationName": "VfVmee..base_vmme..module-0",
+                    "modelCustomizationName": "VfVgeraldine..base_vflorence..module-0",
                     "properties": {
                       "minCountInstances": 1,
                       "maxCountInstances": 1,
                       "initialCount": 1,
-                      "vfModuleLabel": "base_vmme"
+                      "vfModuleLabel": "base_vflorence"
                     },
                     "inputs": {},
                     "volumeGroupAllowed": true
                   }
                 },
                 "volumeGroups": {
-                  "vf_vmee0..VfVmee..base_vmme..module-0": {
+                  "vf_vgeraldine0..VfVgeraldine..base_vflorence..module-0": {
                     "uuid": "a27f5cfc-7f12-4f99-af08-0af9c3885c87",
                     "invariantUuid": "a6f9e51a-2b35-416a-ae15-15e58d61f36d",
                     "customizationUuid": "f8c040f1-7e51-4a11-aca8-acf256cfd861",
                     "description": null,
-                    "name": "VfVmee..base_vmme..module-0",
+                    "name": "VfVgeraldine..base_vflorence..module-0",
                     "version": "2",
-                    "modelCustomizationName": "VfVmee..base_vmme..module-0",
+                    "modelCustomizationName": "VfVgeraldine..base_vflorence..module-0",
                     "properties": {
                       "minCountInstances": 1,
                       "maxCountInstances": 1,
                       "initialCount": 1,
-                      "vfModuleLabel": "base_vmme"
+                      "vfModuleLabel": "base_vflorence"
                     },
                     "inputs": {}
                   }
@@ -331,7 +329,7 @@ class MockReduxStore<T> {
                 "modelCustomizationName": "ExtVL 0"
               }
             },
-            "collectionResource": {},
+            "collectionResources": {},
             "configurations": {
               "Port Mirroring Configuration By Policy 0": {
                 "uuid": "b4398538-e89d-4f13-b33d-ca323434ba50",
@@ -352,72 +350,72 @@ class MockReduxStore<T> {
             },
             "serviceProxies": {},
             "vfModules": {
-              "vf_vmee0..VfVmee..vmme_vlc..module-1": {
+              "vf_vgeraldine0..VfVgeraldine..vflorence_vlc..module-1": {
                 "uuid": "522159d5-d6e0-4c2a-aa44-5a542a12a830",
                 "invariantUuid": "98a7c88b-b577-476a-90e4-e25a5871e02b",
                 "customizationUuid": "55b1be94-671a-403e-a26c-667e9c47d091",
                 "description": null,
-                "name": "VfVmee..vmme_vlc..module-1",
+                "name": "VfVgeraldine..vflorence_vlc..module-1",
                 "version": "2",
-                "modelCustomizationName": "VfVmee..vmme_vlc..module-1",
+                "modelCustomizationName": "VfVgeraldine..vflorence_vlc..module-1",
                 "properties": {
                   "minCountInstances": 0,
                   "maxCountInstances": null,
                   "initialCount": 0,
-                  "vfModuleLabel": "vmme_vlc"
+                  "vfModuleLabel": "vflorence_vlc"
                 },
                 "inputs": {},
                 "volumeGroupAllowed": true
               },
-              "vf_vmee0..VfVmee..vmme_gpb..module-2": {
+              "vf_vgeraldine0..VfVgeraldine..vflorence_gpb..module-2": {
                 "uuid": "41708296-e443-4c71-953f-d9a010f059e1",
                 "invariantUuid": "1cca90b8-3490-495e-87da-3f3e4c57d5b9",
                 "customizationUuid": "6add59e0-7fe1-4bc4-af48-f8812422ae7c",
                 "description": null,
-                "name": "VfVmee..vmme_gpb..module-2",
+                "name": "VfVgeraldine..vflorence_gpb..module-2",
                 "version": "2",
-                "modelCustomizationName": "VfVmee..vmme_gpb..module-2",
+                "modelCustomizationName": "VfVgeraldine..vflorence_gpb..module-2",
                 "properties": {
                   "minCountInstances": 0,
                   "maxCountInstances": null,
                   "initialCount": 0,
-                  "vfModuleLabel": "vmme_gpb"
+                  "vfModuleLabel": "vflorence_gpb"
                 },
                 "inputs": {},
                 "volumeGroupAllowed": false
               },
-              "vf_vmee0..VfVmee..base_vmme..module-0": {
+              "vf_vgeraldine0..VfVgeraldine..base_vflorence..module-0": {
                 "uuid": "a27f5cfc-7f12-4f99-af08-0af9c3885c87",
                 "invariantUuid": "a6f9e51a-2b35-416a-ae15-15e58d61f36d",
                 "customizationUuid": "f8c040f1-7e51-4a11-aca8-acf256cfd861",
                 "description": null,
-                "name": "VfVmee..base_vmme..module-0",
+                "name": "VfVgeraldine..base_vflorence..module-0",
                 "version": "2",
-                "modelCustomizationName": "VfVmee..base_vmme..module-0",
+                "modelCustomizationName": "VfVgeraldine..base_vflorence..module-0",
                 "properties": {
                   "minCountInstances": 1,
                   "maxCountInstances": 1,
                   "initialCount": 1,
-                  "vfModuleLabel": "base_vmme"
+                  "vfModuleLabel": "base_vflorence"
                 },
                 "inputs": {},
                 "volumeGroupAllowed": true
               }
             },
             "volumeGroups": {
-              "vf_vmee0..VfVmee..base_vmme..module-0": {
+              "vf_vgeraldine0..VfVgeraldine..base_vflorence..module-0": {
                 "uuid": "a27f5cfc-7f12-4f99-af08-0af9c3885c87",
                 "invariantUuid": "a6f9e51a-2b35-416a-ae15-15e58d61f36d",
                 "customizationUuid": "f8c040f1-7e51-4a11-aca8-acf256cfd861",
                 "description": null,
-                "name": "VfVmee..base_vmme..module-0",
+                "name": "VfVgeraldine..base_vflorence..module-0",
                 "version": "2",
-                "modelCustomizationName": "VfVmee..base_vmme..module-0",
+                "modelCustomizationName": "VfVgeraldine..base_vflorence..module-0",
                 "properties": {
                   "minCountInstances": 1,
                   "maxCountInstances": 1,
                   "initialCount": 1,
-                  "vfModuleLabel": "base_vmme"
+                  "vfModuleLabel": "base_vflorence"
                 },
                 "inputs": {}
               }
@@ -437,8 +435,11 @@ class MockReduxStore<T> {
               "description": "",
               "serviceEcompNaming": "false",
               "instantiationType": "A-La-Carte",
+              "vidNotions": {
+                "instantiationType": "ALaCarte"
+              },
               "inputs": {
-                "2017488_adiodvpe0_ASN": {
+                "2017488_pasqualevpe0_ASN": {
                   "type": "string",
                   "description": "AV/PE",
                   "entry_schema": null,
@@ -450,11 +451,11 @@ class MockReduxStore<T> {
               }
             },
             "vnfGroups": {
-              "2017-388_ADIOD-vPE 1": {
+              "2017-388_PASQUALE-vPE 1": {
                 "uuid": "0903e1c0-8e03-4936-b5c2-260653b96413",
                 "invariantUuid": "00beb8f9-6d39-452f-816d-c709b9cbb87d",
-                "description": "Name ADIOD vPE Description The provider edge function for the ADIOD service supported by the Junipers VMX product Category Router Vendor Juniper Vendor Release Code 17.2 Owners Mary Fragale. Updated 9-25 to use v8.0 of the Juniper Valid 2 VLM",
-                "name": "2017-388_ADIOD-vPE",
+                "description": "Name PASQUALE vPE Description The provider edge function for the PASQUALE service supported by the Junipers VMX product Category Router Vendor Juniper Vendor Release Code 17.2 Owners Mary Fragale. Updated 9-25 to use v8.0 of the Juniper Valid 2 VLM",
+                "name": "2017-388_PASQUALE-vPE",
                 "version": "1.0",
                 "customizationUuid": "280dec31-f16d-488b-9668-4aae55d6648a",
                 "inputs": {
@@ -517,38 +518,38 @@ class MockReduxStore<T> {
                   "vnf_config_template_version": {
                     "displayName": "vnf_config_template_version",
                     "command": "get_input",
-                    "inputName": "2017488_adiodvpe0_vnf_config_template_version"
+                    "inputName": "2017488_pasqualevpe0_vnf_config_template_version"
                   },
                   "bandwidth_units": {
                     "displayName": "bandwidth_units",
                     "command": "get_input",
-                    "inputName": "adiodvpe0_bandwidth_units"
+                    "inputName": "pasqualevpe0_bandwidth_units"
                   },
                   "bandwidth": {
                     "displayName": "bandwidth",
                     "command": "get_input",
-                    "inputName": "adiodvpe0_bandwidth"
+                    "inputName": "pasqualevpe0_bandwidth"
                   },
                   "AIC_CLLI": {
                     "displayName": "AIC_CLLI",
                     "command": "get_input",
-                    "inputName": "2017488_adiodvpe0_AIC_CLLI"
+                    "inputName": "2017488_pasqualevpe0_AIC_CLLI"
                   },
                   "ASN": {
                     "displayName": "ASN",
                     "command": "get_input",
-                    "inputName": "2017488_adiodvpe0_ASN"
+                    "inputName": "2017488_pasqualevpe0_ASN"
                   },
                   "vnf_instance_name": {
                     "displayName": "vnf_instance_name",
                     "command": "get_input",
-                    "inputName": "2017488_adiodvpe0_vnf_instance_name"
+                    "inputName": "2017488_pasqualevpe0_vnf_instance_name"
                   }
                 },
                 "properties": {
                   "max_instances": 5,
                   "vmxvre_retype": "RE-VMX",
-                  "vnf_config_template_version": "get_input:2017488_adiodvpe0_vnf_config_template_version",
+                  "vnf_config_template_version": "get_input:2017488_pasqualevpe0_vnf_config_template_version",
                   "sriov44_net_id": "48d399b3-11ee-48a8-94d2-f0ea94d6be8d",
                   "int_ctl_net_id": "2f323477-6936-4d01-ac53-d849430281d9",
                   "vmxvpfe_sriov41_0_port_mac": "00:11:22:EF:AC:DF",
@@ -593,7 +594,7 @@ class MockReduxStore<T> {
                   "vmxvpfe_sriov43_0_port_unknownmulticastallow": "true",
                   "vmxvre_int_ctl_ip_0": "10.0.0.10",
                   "ecomp_generated_naming": "false",
-                  "AIC_CLLI": "get_input:2017488_adiodvpe0_AIC_CLLI",
+                  "AIC_CLLI": "get_input:2017488_pasqualevpe0_AIC_CLLI",
                   "vnf_name": "mtnj309me6vre",
                   "vmxvpfe_sriov41_0_port_unknownunicastallow": "true",
                   "vmxvre_volume_type_1": "HITACHI",
@@ -601,14 +602,14 @@ class MockReduxStore<T> {
                   "vmxvre_volume_type_0": "HITACHI",
                   "vmxvpfe_volume_type_0": "HITACHI",
                   "vmxvpfe_sriov43_0_port_broadcastallow": "true",
-                  "bandwidth_units": "get_input:adiodvpe0_bandwidth_units",
+                  "bandwidth_units": "get_input:pasqualevpe0_bandwidth_units",
                   "vnf_id": "123",
                   "vmxvre_oam_prefix": "24",
                   "availability_zone_0": "mtpocfo-kvm-az01",
-                  "ASN": "get_input:2017488_adiodvpe0_ASN",
+                  "ASN": "get_input:2017488_pasqualevpe0_ASN",
                   "vmxvre_chassis_i2cid": "161",
                   "vmxvpfe_name_0": "vPFEXI",
-                  "bandwidth": "get_input:adiodvpe0_bandwidth",
+                  "bandwidth": "get_input:pasqualevpe0_bandwidth",
                   "availability_zone_max_count": "1",
                   "vmxvre_volume_size_0": "45.0",
                   "vmxvre_volume_size_1": "50.0",
@@ -618,7 +619,7 @@ class MockReduxStore<T> {
                   "vmxvre_ore_present": "0",
                   "vmxvre_volume_name_0": "vREXI_FBVolume",
                   "vmxvre_type": "0",
-                  "vnf_instance_name": "get_input:2017488_adiodvpe0_vnf_instance_name",
+                  "vnf_instance_name": "get_input:2017488_pasqualevpe0_vnf_instance_name",
                   "vmxvpfe_sriov41_0_port_unknownmulticastallow": "true",
                   "oam_net_id": "b95eeb1d-d55d-4827-abb4-8ebb94941429",
                   "vmx_int_ctl_len": "24",
@@ -632,16 +633,16 @@ class MockReduxStore<T> {
                   "vmxvpfe_flavor_name": "ns.c20r16d25.v5"
                 },
                 "type": "VnfGroup",
-                "modelCustomizationName": "2017-388_ADIOD-vPE 1",
+                "modelCustomizationName": "2017-388_PASQUALE-vPE 1",
                 "vfModules": {},
                 "volumeGroups": {},
                 "vfcInstanceGroups": {}
               },
-              "2017-388_ADIOD-vPE 0": {
+              "2017-388_PASQUALE-vPE 0": {
                 "uuid": "afacccf6-397d-45d6-b5ae-94c39734b168",
                 "invariantUuid": "72e465fe-71b1-4e7b-b5ed-9496118ff7a8",
-                "description": "Name ADIOD vPE Description The provider edge function for the ADIOD service supported by the Junipers VMX product Category Router Vendor Juniper Vendor Release Code 17.2 Owners Mary Fragale. Updated 9-25 to use v8.0 of the Juniper Valid 2 VLM",
-                "name": "2017-388_ADIOD-vPE",
+                "description": "Name PASQUALE vPE Description The provider edge function for the PASQUALE service supported by the Junipers VMX product Category Router Vendor Juniper Vendor Release Code 17.2 Owners Mary Fragale. Updated 9-25 to use v8.0 of the Juniper Valid 2 VLM",
+                "name": "2017-388_PASQUALE-vPE",
                 "version": "4.0",
                 "customizationUuid": "b3c76f73-eeb5-4fb6-9d31-72a889f1811c",
                 "inputs": {
@@ -704,37 +705,37 @@ class MockReduxStore<T> {
                   "vnf_config_template_version": {
                     "displayName": "vnf_config_template_version",
                     "command": "get_input",
-                    "inputName": "2017488_adiodvpe0_vnf_config_template_version"
+                    "inputName": "2017488_pasqualevpe0_vnf_config_template_version"
                   },
                   "bandwidth_units": {
                     "displayName": "bandwidth_units",
                     "command": "get_input",
-                    "inputName": "adiodvpe0_bandwidth_units"
+                    "inputName": "pasqualevpe0_bandwidth_units"
                   },
                   "bandwidth": {
                     "displayName": "bandwidth",
                     "command": "get_input",
-                    "inputName": "adiodvpe0_bandwidth"
+                    "inputName": "pasqualevpe0_bandwidth"
                   },
                   "AIC_CLLI": {
                     "displayName": "AIC_CLLI",
                     "command": "get_input",
-                    "inputName": "2017488_adiodvpe0_AIC_CLLI"
+                    "inputName": "2017488_pasqualevpe0_AIC_CLLI"
                   },
                   "ASN": {
                     "displayName": "ASN",
                     "command": "get_input",
-                    "inputName": "2017488_adiodvpe0_ASN"
+                    "inputName": "2017488_pasqualevpe0_ASN"
                   },
                   "vnf_instance_name": {
                     "displayName": "vnf_instance_name",
                     "command": "get_input",
-                    "inputName": "2017488_adiodvpe0_vnf_instance_name"
+                    "inputName": "2017488_pasqualevpe0_vnf_instance_name"
                   }
                 },
                 "properties": {
                   "vmxvre_retype": "RE-VMX",
-                  "vnf_config_template_version": "get_input:2017488_adiodvpe0_vnf_config_template_version",
+                  "vnf_config_template_version": "get_input:2017488_pasqualevpe0_vnf_config_template_version",
                   "sriov44_net_id": "48d399b3-11ee-48a8-94d2-f0ea94d6be8d",
                   "int_ctl_net_id": "2f323477-6936-4d01-ac53-d849430281d9",
                   "vmxvpfe_sriov41_0_port_mac": "00:11:22:EF:AC:DF",
@@ -780,7 +781,7 @@ class MockReduxStore<T> {
                   "vmxvpfe_sriov43_0_port_unknownmulticastallow": "true",
                   "vmxvre_int_ctl_ip_0": "10.0.0.10",
                   "ecomp_generated_naming": "false",
-                  "AIC_CLLI": "get_input:2017488_adiodvpe0_AIC_CLLI",
+                  "AIC_CLLI": "get_input:2017488_pasqualevpe0_AIC_CLLI",
                   "vnf_name": "mtnj309me6vre",
                   "vmxvpfe_sriov41_0_port_unknownunicastallow": "true",
                   "vmxvre_volume_type_1": "HITACHI",
@@ -788,14 +789,14 @@ class MockReduxStore<T> {
                   "vmxvre_volume_type_0": "HITACHI",
                   "vmxvpfe_volume_type_0": "HITACHI",
                   "vmxvpfe_sriov43_0_port_broadcastallow": "true",
-                  "bandwidth_units": "get_input:adiodvpe0_bandwidth_units",
+                  "bandwidth_units": "get_input:pasqualevpe0_bandwidth_units",
                   "vnf_id": "123",
                   "vmxvre_oam_prefix": "24",
                   "availability_zone_0": "mtpocfo-kvm-az01",
-                  "ASN": "get_input:2017488_adiodvpe0_ASN",
+                  "ASN": "get_input:2017488_pasqualevpe0_ASN",
                   "vmxvre_chassis_i2cid": "161",
                   "vmxvpfe_name_0": "vPFEXI",
-                  "bandwidth": "get_input:adiodvpe0_bandwidth",
+                  "bandwidth": "get_input:pasqualevpe0_bandwidth",
                   "availability_zone_max_count": "1",
                   "vmxvre_volume_size_0": "45.0",
                   "vmxvre_volume_size_1": "50.0",
@@ -805,7 +806,7 @@ class MockReduxStore<T> {
                   "vmxvre_ore_present": "0",
                   "vmxvre_volume_name_0": "vREXI_FBVolume",
                   "vmxvre_type": "0",
-                  "vnf_instance_name": "get_input:2017488_adiodvpe0_vnf_instance_name",
+                  "vnf_instance_name": "get_input:2017488_pasqualevpe0_vnf_instance_name",
                   "vmxvpfe_sriov41_0_port_unknownmulticastallow": "true",
                   "oam_net_id": "b95eeb1d-d55d-4827-abb4-8ebb94941429",
                   "vmx_int_ctl_len": "24",
@@ -819,16 +820,16 @@ class MockReduxStore<T> {
                   "vmxvpfe_flavor_name": "ns.c20r16d25.v5"
                 },
                 "type": "VnfGroup",
-                "modelCustomizationName": "2017-388_ADIOD-vPE 0",
+                "modelCustomizationName": "2017-388_PASQUALE-vPE 0",
                 "vfModules": {},
                 "volumeGroups": {},
                 "vfcInstanceGroups": {}
               },
-              "2017-488_ADIOD-vPE 0": {
+              "2017-488_PASQUALE-vPE 0": {
                 "uuid": "69e09f68-8b63-4cc9-b9ff-860960b5db09",
                 "invariantUuid": "72e465fe-71b1-4e7b-b5ed-9496118ff7a8",
-                "description": "Name ADIOD vPE Description The provider edge function for the ADIOD service supported by the Junipers VMX product Category Router Vendor Juniper Vendor Release Code 17.2 Owners Mary Fragale. Updated 9-25 to use v8.0 of the Juniper Valid 2 VLM",
-                "name": "2017-488_ADIOD-vPE",
+                "description": "Name PASQUALE vPE Description The provider edge function for the PASQUALE service supported by the Junipers VMX product Category Router Vendor Juniper Vendor Release Code 17.2 Owners Mary Fragale. Updated 9-25 to use v8.0 of the Juniper Valid 2 VLM",
+                "name": "2017-488_PASQUALE-vPE",
                 "version": "5.0",
                 "customizationUuid": "1da7b585-5e61-4993-b95e-8e6606c81e45",
                 "inputs": {
@@ -891,37 +892,37 @@ class MockReduxStore<T> {
                   "vnf_config_template_version": {
                     "displayName": "vnf_config_template_version",
                     "command": "get_input",
-                    "inputName": "2017488_adiodvpe0_vnf_config_template_version"
+                    "inputName": "2017488_pasqualevpe0_vnf_config_template_version"
                   },
                   "bandwidth_units": {
                     "displayName": "bandwidth_units",
                     "command": "get_input",
-                    "inputName": "adiodvpe0_bandwidth_units"
+                    "inputName": "pasqualevpe0_bandwidth_units"
                   },
                   "bandwidth": {
                     "displayName": "bandwidth",
                     "command": "get_input",
-                    "inputName": "adiodvpe0_bandwidth"
+                    "inputName": "pasqualevpe0_bandwidth"
                   },
                   "AIC_CLLI": {
                     "displayName": "AIC_CLLI",
                     "command": "get_input",
-                    "inputName": "2017488_adiodvpe0_AIC_CLLI"
+                    "inputName": "2017488_pasqualevpe0_AIC_CLLI"
                   },
                   "ASN": {
                     "displayName": "ASN",
                     "command": "get_input",
-                    "inputName": "2017488_adiodvpe0_ASN"
+                    "inputName": "2017488_pasqualevpe0_ASN"
                   },
                   "vnf_instance_name": {
                     "displayName": "vnf_instance_name",
                     "command": "get_input",
-                    "inputName": "2017488_adiodvpe0_vnf_instance_name"
+                    "inputName": "2017488_pasqualevpe0_vnf_instance_name"
                   }
                 },
                 "properties": {
                   "vmxvre_retype": "RE-VMX",
-                  "vnf_config_template_version": "get_input:2017488_adiodvpe0_vnf_config_template_version",
+                  "vnf_config_template_version": "get_input:2017488_pasqualevpe0_vnf_config_template_version",
                   "sriov44_net_id": "48d399b3-11ee-48a8-94d2-f0ea94d6be8d",
                   "int_ctl_net_id": "2f323477-6936-4d01-ac53-d849430281d9",
                   "vmxvpfe_sriov41_0_port_mac": "00:11:22:EF:AC:DF",
@@ -968,7 +969,7 @@ class MockReduxStore<T> {
                   "vmxvpfe_sriov43_0_port_unknownmulticastallow": "true",
                   "vmxvre_int_ctl_ip_0": "10.0.0.10",
                   "ecomp_generated_naming": "false",
-                  "AIC_CLLI": "get_input:2017488_adiodvpe0_AIC_CLLI",
+                  "AIC_CLLI": "get_input:2017488_pasqualevpe0_AIC_CLLI",
                   "vnf_name": "mtnj309me6vre",
                   "vmxvpfe_sriov41_0_port_unknownunicastallow": "true",
                   "vmxvre_volume_type_1": "HITACHI",
@@ -976,14 +977,14 @@ class MockReduxStore<T> {
                   "vmxvre_volume_type_0": "HITACHI",
                   "vmxvpfe_volume_type_0": "HITACHI",
                   "vmxvpfe_sriov43_0_port_broadcastallow": "true",
-                  "bandwidth_units": "get_input:adiodvpe0_bandwidth_units",
+                  "bandwidth_units": "get_input:pasqualevpe0_bandwidth_units",
                   "vnf_id": "123",
                   "vmxvre_oam_prefix": "24",
                   "availability_zone_0": "mtpocfo-kvm-az01",
-                  "ASN": "get_input:2017488_adiodvpe0_ASN",
+                  "ASN": "get_input:2017488_pasqualevpe0_ASN",
                   "vmxvre_chassis_i2cid": "161",
                   "vmxvpfe_name_0": "vPFEXI",
-                  "bandwidth": "get_input:adiodvpe0_bandwidth",
+                  "bandwidth": "get_input:pasqualevpe0_bandwidth",
                   "availability_zone_max_count": "1",
                   "vmxvre_volume_size_0": "45.0",
                   "vmxvre_volume_size_1": "50.0",
@@ -993,7 +994,7 @@ class MockReduxStore<T> {
                   "vmxvre_ore_present": "0",
                   "vmxvre_volume_name_0": "vREXI_FBVolume",
                   "vmxvre_type": "0",
-                  "vnf_instance_name": "get_input:2017488_adiodvpe0_vnf_instance_name",
+                  "vnf_instance_name": "get_input:2017488_pasqualevpe0_vnf_instance_name",
                   "vmxvpfe_sriov41_0_port_unknownmulticastallow": "true",
                   "oam_net_id": "b95eeb1d-d55d-4827-abb4-8ebb94941429",
                   "vmx_int_ctl_len": "24",
@@ -1007,82 +1008,82 @@ class MockReduxStore<T> {
                   "vmxvpfe_flavor_name": "ns.c20r16d25.v5"
                 },
                 "type": "VnfGroup",
-                "modelCustomizationName": "2017-488_ADIOD-vPE 0",
+                "modelCustomizationName": "2017-488_PASQUALE-vPE 0",
                 "vfModules": {
-                  "2017488_adiodvpe0..2017488AdiodVpe..ADIOD_vRE_BV..module-1": {
+                  "2017488_pasqualevpe0..2017488PasqualeVpe..PASQUALE_vRE_BV..module-1": {
                     "uuid": "25284168-24bb-4698-8cb4-3f509146eca5",
                     "invariantUuid": "7253ff5c-97f0-4b8b-937c-77aeb4d79aa1",
                     "customizationUuid": "f7e7c365-60cf-49a9-9ebf-a1aa11b9d401",
                     "description": null,
-                    "name": "2017488AdiodVpe..ADIOD_vRE_BV..module-1",
+                    "name": "2017488PasqualeVpe..PASQUALE_vRE_BV..module-1",
                     "version": "6",
-                    "modelCustomizationName": "2017488AdiodVpe..ADIOD_vRE_BV..module-1",
+                    "modelCustomizationName": "2017488PasqualeVpe..PASQUALE_vRE_BV..module-1",
                     "properties": {
                       "minCountInstances": 0,
                       "maxCountInstances": null,
                       "initialCount": 0,
-                      "vfModuleLabel": "ADIOD_vRE_BV"
+                      "vfModuleLabel": "PASQUALE_vRE_BV"
                     },
                     "inputs": {
-                      "adiodvpe0_bandwidth": {
+                      "pasqualevpe0_bandwidth": {
                         "type": "string",
                         "description": "Requested VPE bandwidth",
                         "entry_schema": null,
                         "inputProperties": {
                           "sourceType": "HEAT",
-                          "vfModuleLabel": "ADIOD_vRE_BV",
+                          "vfModuleLabel": "PASQUALE_vRE_BV",
                           "paramName": "bandwidth"
                         },
                         "constraints": null,
                         "required": true,
                         "default": "10"
                       },
-                      "2017488_adiodvpe0_vnf_instance_name": {
+                      "2017488_pasqualevpe0_vnf_instance_name": {
                         "type": "string",
                         "description": "The hostname assigned to the vpe.",
                         "entry_schema": null,
                         "inputProperties": {
                           "sourceType": "HEAT",
-                          "vfModuleLabel": "ADIOD_vRE_BV",
+                          "vfModuleLabel": "PASQUALE_vRE_BV",
                           "paramName": "vnf_instance_name"
                         },
                         "constraints": null,
                         "required": true,
                         "default": "mtnj309me6"
                       },
-                      "2017488_adiodvpe0_vnf_config_template_version": {
+                      "2017488_pasqualevpe0_vnf_config_template_version": {
                         "type": "string",
                         "description": "VPE Software Version",
                         "entry_schema": null,
                         "inputProperties": {
                           "sourceType": "HEAT",
-                          "vfModuleLabel": "ADIOD_vRE_BV",
+                          "vfModuleLabel": "PASQUALE_vRE_BV",
                           "paramName": "vnf_config_template_version"
                         },
                         "constraints": null,
                         "required": true,
                         "default": "17.2"
                       },
-                      "2017488_adiodvpe0_AIC_CLLI": {
+                      "2017488_pasqualevpe0_AIC_CLLI": {
                         "type": "string",
                         "description": "AIC Site CLLI",
                         "entry_schema": null,
                         "inputProperties": {
                           "sourceType": "HEAT",
-                          "vfModuleLabel": "ADIOD_vRE_BV",
+                          "vfModuleLabel": "PASQUALE_vRE_BV",
                           "paramName": "AIC_CLLI"
                         },
                         "constraints": null,
                         "required": true,
                         "default": "ATLMY8GA"
                       },
-                      "adiodvpe0_bandwidth_units": {
+                      "pasqualevpe0_bandwidth_units": {
                         "type": "string",
                         "description": "Units of bandwidth",
                         "entry_schema": null,
                         "inputProperties": {
                           "sourceType": "HEAT",
-                          "vfModuleLabel": "ADIOD_vRE_BV",
+                          "vfModuleLabel": "PASQUALE_vRE_BV",
                           "paramName": "bandwidth_units"
                         },
                         "constraints": null,
@@ -1092,116 +1093,116 @@ class MockReduxStore<T> {
                     },
                     "volumeGroupAllowed": true
                   },
-                  "2017488_adiodvpe0..2017488AdiodVpe..ADIOD_base_vPE_BV..module-0": {
+                  "2017488_pasqualevpe0..2017488PasqualeVpe..PASQUALE_base_vPE_BV..module-0": {
                     "uuid": "f8360508-3f17-4414-a2ed-6bc71161e8db",
                     "invariantUuid": "b34833bb-6aa9-4ad6-a831-70b06367a091",
                     "customizationUuid": "a55961b2-2065-4ab0-a5b7-2fcee1c227e3",
                     "description": null,
-                    "name": "2017488AdiodVpe..ADIOD_base_vPE_BV..module-0",
+                    "name": "2017488PasqualeVpe..PASQUALE_base_vPE_BV..module-0",
                     "version": "5",
-                    "modelCustomizationName": "2017488AdiodVpe..ADIOD_base_vPE_BV..module-0",
+                    "modelCustomizationName": "2017488PasqualeVpe..PASQUALE_base_vPE_BV..module-0",
                     "properties": {
                       "minCountInstances": 1,
                       "maxCountInstances": 1,
                       "initialCount": 1,
-                      "vfModuleLabel": "ADIOD_base_vPE_BV"
+                      "vfModuleLabel": "PASQUALE_base_vPE_BV"
                     },
                     "inputs": {},
                     "volumeGroupAllowed": false
                   },
-                  "2017488_adiodvpe0..2017488AdiodVpe..ADIOD_vPFE_BV..module-2": {
+                  "2017488_pasqualevpe0..2017488PasqualeVpe..PASQUALE_vPFE_BV..module-2": {
                     "uuid": "0a0dd9d4-31d3-4c3a-ae89-a02f383e6a9a",
                     "invariantUuid": "eff8cc59-53a1-4101-aed7-8cf24ecf8339",
                     "customizationUuid": "3cd946bb-50e0-40d8-96d3-c9023520b557",
                     "description": null,
-                    "name": "2017488AdiodVpe..ADIOD_vPFE_BV..module-2",
+                    "name": "2017488PasqualeVpe..PASQUALE_vPFE_BV..module-2",
                     "version": "6",
-                    "modelCustomizationName": "2017488AdiodVpe..ADIOD_vPFE_BV..module-2",
+                    "modelCustomizationName": "2017488PasqualeVpe..PASQUALE_vPFE_BV..module-2",
                     "properties": {
                       "minCountInstances": 0,
                       "maxCountInstances": null,
                       "initialCount": 0,
-                      "vfModuleLabel": "ADIOD_vPFE_BV"
+                      "vfModuleLabel": "PASQUALE_vPFE_BV"
                     },
                     "inputs": {},
                     "volumeGroupAllowed": true
                   }
                 },
                 "volumeGroups": {
-                  "2017488_adiodvpe0..2017488AdiodVpe..ADIOD_vRE_BV..module-1": {
+                  "2017488_pasqualevpe0..2017488PasqualeVpe..PASQUALE_vRE_BV..module-1": {
                     "uuid": "25284168-24bb-4698-8cb4-3f509146eca5",
                     "invariantUuid": "7253ff5c-97f0-4b8b-937c-77aeb4d79aa1",
                     "customizationUuid": "f7e7c365-60cf-49a9-9ebf-a1aa11b9d401",
                     "description": null,
-                    "name": "2017488AdiodVpe..ADIOD_vRE_BV..module-1",
+                    "name": "2017488PasqualeVpe..PASQUALE_vRE_BV..module-1",
                     "version": "6",
-                    "modelCustomizationName": "2017488AdiodVpe..ADIOD_vRE_BV..module-1",
+                    "modelCustomizationName": "2017488PasqualeVpe..PASQUALE_vRE_BV..module-1",
                     "properties": {
                       "minCountInstances": 0,
                       "maxCountInstances": null,
                       "initialCount": 0,
-                      "vfModuleLabel": "ADIOD_vRE_BV"
+                      "vfModuleLabel": "PASQUALE_vRE_BV"
                     },
                     "inputs": {
-                      "adiodvpe0_bandwidth": {
+                      "pasqualevpe0_bandwidth": {
                         "type": "string",
                         "description": "Requested VPE bandwidth",
                         "entry_schema": null,
                         "inputProperties": {
                           "sourceType": "HEAT",
-                          "vfModuleLabel": "ADIOD_vRE_BV",
+                          "vfModuleLabel": "PASQUALE_vRE_BV",
                           "paramName": "bandwidth"
                         },
                         "constraints": null,
                         "required": true,
                         "default": "10"
                       },
-                      "2017488_adiodvpe0_vnf_instance_name": {
+                      "2017488_pasqualevpe0_vnf_instance_name": {
                         "type": "string",
                         "description": "The hostname assigned to the vpe.",
                         "entry_schema": null,
                         "inputProperties": {
                           "sourceType": "HEAT",
-                          "vfModuleLabel": "ADIOD_vRE_BV",
+                          "vfModuleLabel": "PASQUALE_vRE_BV",
                           "paramName": "vnf_instance_name"
                         },
                         "constraints": null,
                         "required": true,
                         "default": "mtnj309me6"
                       },
-                      "2017488_adiodvpe0_vnf_config_template_version": {
+                      "2017488_pasqualevpe0_vnf_config_template_version": {
                         "type": "string",
                         "description": "VPE Software Version",
                         "entry_schema": null,
                         "inputProperties": {
                           "sourceType": "HEAT",
-                          "vfModuleLabel": "ADIOD_vRE_BV",
+                          "vfModuleLabel": "PASQUALE_vRE_BV",
                           "paramName": "vnf_config_template_version"
                         },
                         "constraints": null,
                         "required": true,
                         "default": "17.2"
                       },
-                      "2017488_adiodvpe0_AIC_CLLI": {
+                      "2017488_pasqualevpe0_AIC_CLLI": {
                         "type": "string",
                         "description": "AIC Site CLLI",
                         "entry_schema": null,
                         "inputProperties": {
                           "sourceType": "HEAT",
-                          "vfModuleLabel": "ADIOD_vRE_BV",
+                          "vfModuleLabel": "PASQUALE_vRE_BV",
                           "paramName": "AIC_CLLI"
                         },
                         "constraints": null,
                         "required": true,
                         "default": "ATLMY8GA"
                       },
-                      "adiodvpe0_bandwidth_units": {
+                      "pasqualevpe0_bandwidth_units": {
                         "type": "string",
                         "description": "Units of bandwidth",
                         "entry_schema": null,
                         "inputProperties": {
                           "sourceType": "HEAT",
-                          "vfModuleLabel": "ADIOD_vRE_BV",
+                          "vfModuleLabel": "PASQUALE_vRE_BV",
                           "paramName": "bandwidth_units"
                         },
                         "constraints": null,
@@ -1210,19 +1211,19 @@ class MockReduxStore<T> {
                       }
                     }
                   },
-                  "2017488_adiodvpe0..2017488AdiodVpe..ADIOD_vPFE_BV..module-2": {
+                  "2017488_pasqualevpe0..2017488PasqualeVpe..PASQUALE_vPFE_BV..module-2": {
                     "uuid": "0a0dd9d4-31d3-4c3a-ae89-a02f383e6a9a",
                     "invariantUuid": "eff8cc59-53a1-4101-aed7-8cf24ecf8339",
                     "customizationUuid": "3cd946bb-50e0-40d8-96d3-c9023520b557",
                     "description": null,
-                    "name": "2017488AdiodVpe..ADIOD_vPFE_BV..module-2",
+                    "name": "2017488PasqualeVpe..PASQUALE_vPFE_BV..module-2",
                     "version": "6",
-                    "modelCustomizationName": "2017488AdiodVpe..ADIOD_vPFE_BV..module-2",
+                    "modelCustomizationName": "2017488PasqualeVpe..PASQUALE_vPFE_BV..module-2",
                     "properties": {
                       "minCountInstances": 0,
                       "maxCountInstances": null,
                       "initialCount": 0,
-                      "vfModuleLabel": "ADIOD_vPFE_BV"
+                      "vfModuleLabel": "PASQUALE_vPFE_BV"
                     },
                     "inputs": {}
                   }
@@ -1308,85 +1309,85 @@ class MockReduxStore<T> {
                 "modelCustomizationName": "ExtVL 0"
               }
             },
-            "collectionResource": {},
+            "collectionResources": {},
             "configurations": {},
             "fabricConfigurations": {},
             "serviceProxies": {},
             "vfModules": {
-              "2017488_adiodvpe0..2017488AdiodVpe..ADIOD_vRE_BV..module-1": {
+              "2017488_pasqualevpe0..2017488PasqualeVpe..PASQUALE_vRE_BV..module-1": {
                 "uuid": "25284168-24bb-4698-8cb4-3f509146eca5",
                 "invariantUuid": "7253ff5c-97f0-4b8b-937c-77aeb4d79aa1",
                 "customizationUuid": "f7e7c365-60cf-49a9-9ebf-a1aa11b9d401",
                 "description": null,
-                "name": "2017488AdiodVpe..ADIOD_vRE_BV..module-1",
+                "name": "2017488PasqualeVpe..PASQUALE_vRE_BV..module-1",
                 "version": "6",
-                "modelCustomizationName": "2017488AdiodVpe..ADIOD_vRE_BV..module-1",
+                "modelCustomizationName": "2017488PasqualeVpe..PASQUALE_vRE_BV..module-1",
                 "properties": {
                   "minCountInstances": 0,
                   "maxCountInstances": null,
                   "initialCount": 0,
-                  "vfModuleLabel": "ADIOD_vRE_BV"
+                  "vfModuleLabel": "PASQUALE_vRE_BV"
                 },
                 "inputs": {
-                  "adiodvpe0_bandwidth": {
+                  "pasqualevpe0_bandwidth": {
                     "type": "string",
                     "description": "Requested VPE bandwidth",
                     "entry_schema": null,
                     "inputProperties": {
                       "sourceType": "HEAT",
-                      "vfModuleLabel": "ADIOD_vRE_BV",
+                      "vfModuleLabel": "PASQUALE_vRE_BV",
                       "paramName": "bandwidth"
                     },
                     "constraints": null,
                     "required": true,
                     "default": "10"
                   },
-                  "2017488_adiodvpe0_vnf_instance_name": {
+                  "2017488_pasqualevpe0_vnf_instance_name": {
                     "type": "string",
                     "description": "The hostname assigned to the vpe.",
                     "entry_schema": null,
                     "inputProperties": {
                       "sourceType": "HEAT",
-                      "vfModuleLabel": "ADIOD_vRE_BV",
+                      "vfModuleLabel": "PASQUALE_vRE_BV",
                       "paramName": "vnf_instance_name"
                     },
                     "constraints": null,
                     "required": true,
                     "default": "mtnj309me6"
                   },
-                  "2017488_adiodvpe0_vnf_config_template_version": {
+                  "2017488_pasqualevpe0_vnf_config_template_version": {
                     "type": "string",
                     "description": "VPE Software Version",
                     "entry_schema": null,
                     "inputProperties": {
                       "sourceType": "HEAT",
-                      "vfModuleLabel": "ADIOD_vRE_BV",
+                      "vfModuleLabel": "PASQUALE_vRE_BV",
                       "paramName": "vnf_config_template_version"
                     },
                     "constraints": null,
                     "required": true,
                     "default": "17.2"
                   },
-                  "2017488_adiodvpe0_AIC_CLLI": {
+                  "2017488_pasqualevpe0_AIC_CLLI": {
                     "type": "string",
                     "description": "AIC Site CLLI",
                     "entry_schema": null,
                     "inputProperties": {
                       "sourceType": "HEAT",
-                      "vfModuleLabel": "ADIOD_vRE_BV",
+                      "vfModuleLabel": "PASQUALE_vRE_BV",
                       "paramName": "AIC_CLLI"
                     },
                     "constraints": null,
                     "required": true,
                     "default": "ATLMY8GA"
                   },
-                  "adiodvpe0_bandwidth_units": {
+                  "pasqualevpe0_bandwidth_units": {
                     "type": "string",
                     "description": "Units of bandwidth",
                     "entry_schema": null,
                     "inputProperties": {
                       "sourceType": "HEAT",
-                      "vfModuleLabel": "ADIOD_vRE_BV",
+                      "vfModuleLabel": "PASQUALE_vRE_BV",
                       "paramName": "bandwidth_units"
                     },
                     "constraints": null,
@@ -1396,116 +1397,116 @@ class MockReduxStore<T> {
                 },
                 "volumeGroupAllowed": true
               },
-              "2017488_adiodvpe0..2017488AdiodVpe..ADIOD_base_vPE_BV..module-0": {
+              "2017488_pasqualevpe0..2017488PasqualeVpe..PASQUALE_base_vPE_BV..module-0": {
                 "uuid": "f8360508-3f17-4414-a2ed-6bc71161e8db",
                 "invariantUuid": "b34833bb-6aa9-4ad6-a831-70b06367a091",
                 "customizationUuid": "a55961b2-2065-4ab0-a5b7-2fcee1c227e3",
                 "description": null,
-                "name": "2017488AdiodVpe..ADIOD_base_vPE_BV..module-0",
+                "name": "2017488PasqualeVpe..PASQUALE_base_vPE_BV..module-0",
                 "version": "5",
-                "modelCustomizationName": "2017488AdiodVpe..ADIOD_base_vPE_BV..module-0",
+                "modelCustomizationName": "2017488PasqualeVpe..PASQUALE_base_vPE_BV..module-0",
                 "properties": {
                   "minCountInstances": 1,
                   "maxCountInstances": 1,
                   "initialCount": 1,
-                  "vfModuleLabel": "ADIOD_base_vPE_BV"
+                  "vfModuleLabel": "PASQUALE_base_vPE_BV"
                 },
                 "inputs": {},
                 "volumeGroupAllowed": false
               },
-              "2017488_adiodvpe0..2017488AdiodVpe..ADIOD_vPFE_BV..module-2": {
+              "2017488_pasqualevpe0..2017488PasqualeVpe..PASQUALE_vPFE_BV..module-2": {
                 "uuid": "0a0dd9d4-31d3-4c3a-ae89-a02f383e6a9a",
                 "invariantUuid": "eff8cc59-53a1-4101-aed7-8cf24ecf8339",
                 "customizationUuid": "3cd946bb-50e0-40d8-96d3-c9023520b557",
                 "description": null,
-                "name": "2017488AdiodVpe..ADIOD_vPFE_BV..module-2",
+                "name": "2017488PasqualeVpe..PASQUALE_vPFE_BV..module-2",
                 "version": "6",
-                "modelCustomizationName": "2017488AdiodVpe..ADIOD_vPFE_BV..module-2",
+                "modelCustomizationName": "2017488PasqualeVpe..PASQUALE_vPFE_BV..module-2",
                 "properties": {
                   "minCountInstances": 0,
                   "maxCountInstances": null,
                   "initialCount": 0,
-                  "vfModuleLabel": "ADIOD_vPFE_BV"
+                  "vfModuleLabel": "PASQUALE_vPFE_BV"
                 },
                 "inputs": {},
                 "volumeGroupAllowed": true
               }
             },
             "volumeGroups": {
-              "2017488_adiodvpe0..2017488AdiodVpe..ADIOD_vRE_BV..module-1": {
+              "2017488_pasqualevpe0..2017488PasqualeVpe..PASQUALE_vRE_BV..module-1": {
                 "uuid": "25284168-24bb-4698-8cb4-3f509146eca5",
                 "invariantUuid": "7253ff5c-97f0-4b8b-937c-77aeb4d79aa1",
                 "customizationUuid": "f7e7c365-60cf-49a9-9ebf-a1aa11b9d401",
                 "description": null,
-                "name": "2017488AdiodVpe..ADIOD_vRE_BV..module-1",
+                "name": "2017488PasqualeVpe..PASQUALE_vRE_BV..module-1",
                 "version": "6",
-                "modelCustomizationName": "2017488AdiodVpe..ADIOD_vRE_BV..module-1",
+                "modelCustomizationName": "2017488PasqualeVpe..PASQUALE_vRE_BV..module-1",
                 "properties": {
                   "minCountInstances": 0,
                   "maxCountInstances": null,
                   "initialCount": 0,
-                  "vfModuleLabel": "ADIOD_vRE_BV"
+                  "vfModuleLabel": "PASQUALE_vRE_BV"
                 },
                 "inputs": {
-                  "adiodvpe0_bandwidth": {
+                  "pasqualevpe0_bandwidth": {
                     "type": "string",
                     "description": "Requested VPE bandwidth",
                     "entry_schema": null,
                     "inputProperties": {
                       "sourceType": "HEAT",
-                      "vfModuleLabel": "ADIOD_vRE_BV",
+                      "vfModuleLabel": "PASQUALE_vRE_BV",
                       "paramName": "bandwidth"
                     },
                     "constraints": null,
                     "required": true,
                     "default": "10"
                   },
-                  "2017488_adiodvpe0_vnf_instance_name": {
+                  "2017488_pasqualevpe0_vnf_instance_name": {
                     "type": "string",
                     "description": "The hostname assigned to the vpe.",
                     "entry_schema": null,
                     "inputProperties": {
                       "sourceType": "HEAT",
-                      "vfModuleLabel": "ADIOD_vRE_BV",
+                      "vfModuleLabel": "PASQUALE_vRE_BV",
                       "paramName": "vnf_instance_name"
                     },
                     "constraints": null,
                     "required": true,
                     "default": "mtnj309me6"
                   },
-                  "2017488_adiodvpe0_vnf_config_template_version": {
+                  "2017488_pasqualevpe0_vnf_config_template_version": {
                     "type": "string",
                     "description": "VPE Software Version",
                     "entry_schema": null,
                     "inputProperties": {
                       "sourceType": "HEAT",
-                      "vfModuleLabel": "ADIOD_vRE_BV",
+                      "vfModuleLabel": "PASQUALE_vRE_BV",
                       "paramName": "vnf_config_template_version"
                     },
                     "constraints": null,
                     "required": true,
                     "default": "17.2"
                   },
-                  "2017488_adiodvpe0_AIC_CLLI": {
+                  "2017488_pasqualevpe0_AIC_CLLI": {
                     "type": "string",
                     "description": "AIC Site CLLI",
                     "entry_schema": null,
                     "inputProperties": {
                       "sourceType": "HEAT",
-                      "vfModuleLabel": "ADIOD_vRE_BV",
+                      "vfModuleLabel": "PASQUALE_vRE_BV",
                       "paramName": "AIC_CLLI"
                     },
                     "constraints": null,
                     "required": true,
                     "default": "ATLMY8GA"
                   },
-                  "adiodvpe0_bandwidth_units": {
+                  "pasqualevpe0_bandwidth_units": {
                     "type": "string",
                     "description": "Units of bandwidth",
                     "entry_schema": null,
                     "inputProperties": {
                       "sourceType": "HEAT",
-                      "vfModuleLabel": "ADIOD_vRE_BV",
+                      "vfModuleLabel": "PASQUALE_vRE_BV",
                       "paramName": "bandwidth_units"
                     },
                     "constraints": null,
@@ -1514,19 +1515,19 @@ class MockReduxStore<T> {
                   }
                 }
               },
-              "2017488_adiodvpe0..2017488AdiodVpe..ADIOD_vPFE_BV..module-2": {
+              "2017488_pasqualevpe0..2017488PasqualeVpe..PASQUALE_vPFE_BV..module-2": {
                 "uuid": "0a0dd9d4-31d3-4c3a-ae89-a02f383e6a9a",
                 "invariantUuid": "eff8cc59-53a1-4101-aed7-8cf24ecf8339",
                 "customizationUuid": "3cd946bb-50e0-40d8-96d3-c9023520b557",
                 "description": null,
-                "name": "2017488AdiodVpe..ADIOD_vPFE_BV..module-2",
+                "name": "2017488PasqualeVpe..PASQUALE_vPFE_BV..module-2",
                 "version": "6",
-                "modelCustomizationName": "2017488AdiodVpe..ADIOD_vPFE_BV..module-2",
+                "modelCustomizationName": "2017488PasqualeVpe..PASQUALE_vPFE_BV..module-2",
                 "properties": {
                   "minCountInstances": 0,
                   "maxCountInstances": null,
                   "initialCount": 0,
-                  "vfModuleLabel": "ADIOD_vPFE_BV"
+                  "vfModuleLabel": "PASQUALE_vPFE_BV"
                 },
                 "inputs": {}
               }
@@ -1537,21 +1538,21 @@ class MockReduxStore<T> {
         "serviceInstance": {
           "6e59c5de-f052-46fa-aa7e-2fca9d674c44": {
             "vnfGroups": {
-              "VF_vMee 0": {
+              "VF_vGeraldine 0": {
                 "rollbackOnFailure": "true",
                 "vfModules": {
-                  "vf_vmee0..VfVmee..base_vmme..module-0": {
-                    "vf_vmee0..VfVmee..base_vmme..module-0vmvzo": {
+                  "vf_vgeraldine0..VfVgeraldine..base_vflorence..module-0": {
+                    "vf_vgeraldine0..VfVgeraldine..base_vflorence..module-0vmvzo": {
                       "isMissingData": false,
                       "sdncPreReload": null,
                       "modelInfo": {
                         "modelType": "VFmodule",
                         "modelInvariantId": "a6f9e51a-2b35-416a-ae15-15e58d61f36d",
                         "modelVersionId": "a27f5cfc-7f12-4f99-af08-0af9c3885c87",
-                        "modelName": "VfVmee..base_vmme..module-0",
+                        "modelName": "VfVgeraldine..base_vflorence..module-0",
                         "modelVersion": "2",
                         "modelCustomizationId": "f8c040f1-7e51-4a11-aca8-acf256cfd861",
-                        "modelCustomizationName": "VfVmee..base_vmme..module-0"
+                        "modelCustomizationName": "VfVgeraldine..base_vflorence..module-0"
                       },
                       "instanceParams": [
                         {}
@@ -1561,8 +1562,8 @@ class MockReduxStore<T> {
                   }
                 },
                 "isMissingData": true,
-                "originalName": "VF_vMee 0",
-                "vnfGroupStoreKey": "VF_vMee 0",
+                "originalName": "VF_vGeraldine 0",
+                "vnfGroupStoreKey": "VF_vGeraldine 0",
                 "trackById": "p3wk448m5do",
                 "uuid": "d6557200-ecf2-4641-8094-5393ae3aae60",
                 "productFamilyId": "36b4733a-53f4-4cc8-8ff0-9172e5fc4b8e",
@@ -1574,9 +1575,9 @@ class MockReduxStore<T> {
                   "modelType": "VnfGroup",
                   "modelInvariantId": "4160458e-f648-4b30-a176-43881ffffe9e",
                   "modelVersionId": "6e59c5de-f052-46fa-aa7e-2fca9d674c44",
-                  "modelName": "VF_vMee",
+                  "modelName": "VF_vGeraldine",
                   "modelVersion": "2.0",
-                  "modelCustomizationName": "VF_vMee 0"
+                  "modelCustomizationName": "VF_vGeraldine 0"
                 }
               }
             },
@@ -1705,41 +1706,41 @@ class MockReduxStore<T> {
               }
             },
             "vnfGroups": {
-              "2017-488_ADIOD-vPE 0": {
+              "2017-488_PASQUALE-vPE 0": {
                 "rollbackOnFailure": "true",
                 "vfModules": {
-                  "2017488_adiodvpe0..2017488AdiodVpe..ADIOD_vRE_BV..module-1": {
-                    "2017488_adiodvpe0..2017488AdiodVpe..ADIOD_vRE_BV..module-1sgoqi": {
+                  "2017488_pasqualevpe0..2017488PasqualeVpe..PASQUALE_vRE_BV..module-1": {
+                    "2017488_pasqualevpe0..2017488PasqualeVpe..PASQUALE_vRE_BV..module-1sgoqi": {
                       "instanceName": "yoav",
                       "volumeGroupName": "123",
                       "modelInfo": {
                         "modelInvariantId": "7253ff5c-97f0-4b8b-937c-77aeb4d79aa1",
                         "modelVersionId": "25284168-24bb-4698-8cb4-3f509146eca5",
-                        "modelName": "2017488AdiodVpe..ADIOD_vRE_BV..module-1",
+                        "modelName": "2017488PasqualeVpe..PASQUALE_vRE_BV..module-1",
                         "modelVersion": "6",
                         "modelCustomizationId": "f7e7c365-60cf-49a9-9ebf-a1aa11b9d401",
-                        "modelCustomizationName": "2017488AdiodVpe..ADIOD_vRE_BV..module-1",
+                        "modelCustomizationName": "2017488PasqualeVpe..PASQUALE_vRE_BV..module-1",
                         "uuid": "25284168-24bb-4698-8cb4-3f509146eca5"
                       },
                       "uuid": "25284168-24bb-4698-8cb4-3f509146eca5",
                       "isMissingData": false,
                       "instanceParams": [
                         {
-                          "adiodvpe0_bandwidth": "10",
-                          "2017488_adiodvpe0_vnf_instance_name": "mtnj309me6",
-                          "2017488_adiodvpe0_vnf_config_template_version": "17.2",
-                          "2017488_adiodvpe0_AIC_CLLI": "ATLMY8GA",
-                          "adiodvpe0_bandwidth_units": "Gbps"
+                          "pasqualevpe0_bandwidth": "10",
+                          "2017488_pasqualevpe0_vnf_instance_name": "mtnj309me6",
+                          "2017488_pasqualevpe0_vnf_config_template_version": "17.2",
+                          "2017488_pasqualevpe0_AIC_CLLI": "ATLMY8GA",
+                          "pasqualevpe0_bandwidth_units": "Gbps"
                         }
                       ]
                     }
                   }
                 },
                 "isMissingData": false,
-                "originalName": "2017-488_ADIOD-vPE 0",
-                "vnfGroupStoreKey": "2017-488_ADIOD-vPE 0",
+                "originalName": "2017-488_PASQUALE-vPE 0",
+                "vnfGroupStoreKey": "2017-488_PASQUALE-vPE 0",
                 "trackById": "o65b26t2thj",
-                "instanceName": "2017488_ADIODvPE",
+                "instanceName": "2017488_PASQUALEvPE",
                 "productFamilyId": "ebc3bc3d-62fd-4a3f-a037-f619df4ff034",
                 "lcpCloudRegionId": "hvf6",
                 "tenantId": "bae71557c5bb4d5aac6743a4e5f1d054",
@@ -1751,10 +1752,10 @@ class MockReduxStore<T> {
                 "modelInfo": {
                   "modelInvariantId": "72e465fe-71b1-4e7b-b5ed-9496118ff7a8",
                   "modelVersionId": "69e09f68-8b63-4cc9-b9ff-860960b5db09",
-                  "modelName": "2017-488_ADIOD-vPE",
+                  "modelName": "2017-488_PASQUALE-vPE",
                   "modelVersion": "5.0",
                   "modelCustomizationId": "1da7b585-5e61-4993-b95e-8e6606c81e45",
-                  "modelCustomizationName": "2017-488_ADIOD-vPE 0",
+                  "modelCustomizationName": "2017-488_PASQUALE-vPE 0",
                   "uuid": "69e09f68-8b63-4cc9-b9ff-860960b5db09"
                 },
                 "uuid": "69e09f68-8b63-4cc9-b9ff-860960b5db09"
@@ -1762,7 +1763,7 @@ class MockReduxStore<T> {
             },
             "instanceParams": [
               {
-                "2017488_adiodvpe0_ASN": "AV_vPE"
+                "2017488_pasqualevpe0_ASN": "AV_vPE"
               }
             ],
             "validationCounter": 0,
@@ -1783,7 +1784,7 @@ class MockReduxStore<T> {
             "subscriptionServiceType": "TYLER SILVIA",
             "owningEntityId": "d61e6f2d-12fa-4cc2-91df-7c244011d6fc",
             "productFamilyId": "17cc1042-527b-11e6-beb8-9e71128cae77",
-            "lcpCloudRegionId": "JANET25",
+            "lcpCloudRegionId": "AAIAIC25",
             "tenantId": "092eb9e8e4b7412e8787dd091bc58e86",
             "aicZoneId": "JAG1",
             "projectName": null,
@@ -1816,8 +1817,8 @@ class MockReduxStore<T> {
         "lcpRegionsAndTenants": {
           "lcpRegionList": [
             {
-              "id": "JANET25",
-              "name": "JANET25",
+              "id": "AAIAIC25",
+              "name": "AAIAIC25",
               "isPermitted": true
             },
             {
@@ -1827,7 +1828,7 @@ class MockReduxStore<T> {
             }
           ],
           "lcpRegionsTenantsMap": {
-            "JANET25": [
+            "AAIAIC25": [
               {
                 "id": "092eb9e8e4b7412e8787dd091bc58e86",
                 "name": "USP-SIP-IC-24335-T-01",
@@ -1841,8 +1842,128 @@ class MockReduxStore<T> {
                 "isPermitted": true
               },
               {
-                "id": "d0a3e3f2964542259d155a81c41aadc3",
-                "name": "test-hvf6-09",
+                "id": "229bcdc6eaeb4ca59d55221141d01f8e",
+                "name": "AIN Web Tool-15-D-STTest2",
+                "isPermitted": true
+              },
+              {
+                "id": "1178612d2b394be4834ad77f567c0af2",
+                "name": "AIN Web Tool-15-D-SSPtestcustome",
+                "isPermitted": true
+              },
+              {
+                "id": "19c5ade915eb461e8af52fb2fd8cd1f2",
+                "name": "AIN Web Tool-15-D-UncheckedEcopm",
+                "isPermitted": true
+              },
+              {
+                "id": "de007636e25249238447264a988a927b",
+                "name": "AIN Web Tool-15-D-dfsdf",
+                "isPermitted": true
+              },
+              {
+                "id": "62f29b3613634ca6a3065cbe0e020c44",
+                "name": "AIN/SMS-16-D-Multiservices1",
+                "isPermitted": true
+              },
+              {
+                "id": "649289e30d3244e0b48098114d63c2aa",
+                "name": "AIN Web Tool-15-D-SSPST66",
+                "isPermitted": true
+              },
+              {
+                "id": "3f21eeea6c2c486bba31dab816c05a32",
+                "name": "AIN Web Tool-15-D-ASSPST47",
+                "isPermitted": true
+              },
+              {
+                "id": "f60ce21d3ee6427586cff0d22b03b773",
+                "name": "CESAR-100-D-sspjg67246",
+                "isPermitted": true
+              },
+              {
+                "id": "8774659e425f479895ae091bb5d46560",
+                "name": "CESAR-100-D-sspjg68359",
+                "isPermitted": true
+              },
+              {
+                "id": "624eb554b0d147c19ff8885341760481",
+                "name": "AINWebTool-15-D-iftach",
+                "isPermitted": true
+              },
+              {
+                "id": "214f55f5fc414c678059c383b03e4962",
+                "name": "CESAR-100-D-sspjg612401",
+                "isPermitted": true
+              },
+              {
+                "id": "c90666c291664841bb98e4d981ff1db5",
+                "name": "CESAR-100-D-sspjg621340",
+                "isPermitted": true
+              },
+              {
+                "id": "ce5b6bc5c7b348e1bf4b91ac9a174278",
+                "name": "sspjg621351cloned",
+                "isPermitted": true
+              },
+              {
+                "id": "b386b768a3f24c8e953abbe0b3488c02",
+                "name": "AINWebTool-15-D-eteancomp",
+                "isPermitted": true
+              },
+              {
+                "id": "dc6c4dbfd225474e9deaadd34968646c",
+                "name": "AINWebTool-15-T-SPFET",
+                "isPermitted": true
+              },
+              {
+                "id": "02cb5030e9914aa4be120bd9ed1e19eb",
+                "name": "AINWebTool-15-X-eeweww",
+                "isPermitted": true
+              },
+              {
+                "id": "f2f3830e4c984d45bcd00e1a04158a79",
+                "name": "CESAR-100-D-spjg61909",
+                "isPermitted": true
+              },
+              {
+                "id": "05b91bd5137f4929878edd965755c06d",
+                "name": "CESAR-100-D-sspjg621512cloned",
+                "isPermitted": true
+              },
+              {
+                "id": "7002fbe8482d4a989ddf445b1ce336e0",
+                "name": "AINWebTool-15-X-vdr",
+                "isPermitted": true
+              },
+              {
+                "id": "4008522be43741dcb1f5422022a2aa0b",
+                "name": "AINWebTool-15-D-ssasa",
+                "isPermitted": true
+              },
+              {
+                "id": "f44e2e96a1b6476abfda2fa407b00169",
+                "name": "AINWebTool-15-D-PFNPT",
+                "isPermitted": true
+              },
+              {
+                "id": "b69a52bec8a84669a37a1e8b72708be7",
+                "name": "AINWebTool-15-X-vdre",
+                "isPermitted": true
+              },
+              {
+                "id": "fac7d9fd56154caeb9332202dcf2969f",
+                "name": "AINWebTool-15-X-NONPODECOMP",
+                "isPermitted": true
+              },
+              {
+                "id": "2d34d8396e194eb49969fd61ffbff961",
+                "name": "DN5242-Nov16-T5",
+                "isPermitted": true
+              },
+              {
+                "id": "cb42a77ff45b48a8b8deb83bb64acc74",
+                "name": "ro-T11",
                 "isPermitted": true
               },
               {
@@ -1850,6 +1971,16 @@ class MockReduxStore<T> {
                 "name": "ro-T112",
                 "isPermitted": true
               },
+              {
+                "id": "4914ab0ab3a743e58f0eefdacc1dde77",
+                "name": "DN5242-Nov21-T1",
+                "isPermitted": true
+              },
+              {
+                "id": "d0a3e3f2964542259d155a81c41aadc3",
+                "name": "test-hvf6-09",
+                "isPermitted": true
+              },
               {
                 "id": "cbb99fe4ada84631b7baf046b6fd2044",
                 "name": "DN5242-Nov16-T3",
@@ -1861,7 +1992,7 @@ class MockReduxStore<T> {
         "productFamilies": [
           {
             "id": "ebc3bc3d-62fd-4a3f-a037-f619df4ff034",
-            "name": "SCOTTIE",
+            "name": "ERICA",
             "isPermitted": true
           },
           {
@@ -1886,7 +2017,7 @@ class MockReduxStore<T> {
           },
           {
             "id": "323d69d9-2efe-4r45-ay0a-89ea7ard4e6f",
-            "name": "vSCP",
+            "name": "vEsmeralda",
             "isPermitted": true
           },
           {
@@ -1930,7 +2061,7 @@ class MockReduxStore<T> {
             "isPermitted": true
           },
           {
-            "id": "Cisneros",
+            "id": "vMuriel",
             "name": "vMuriel",
             "isPermitted": true
           },
@@ -1956,7 +2087,7 @@ class MockReduxStore<T> {
           },
           {
             "id": "d7bb0a21-66f2-4e6d-87d9-9ef3ced63ae4",
-            "name": "Josefina",
+            "name": "JOSEFINA",
             "isPermitted": true
           },
           {
@@ -2004,7 +2135,7 @@ class MockReduxStore<T> {
             },
             {
               "id": "6",
-              "name": "vSEGW",
+              "name": "vPorfirio",
               "isPermitted": false
             },
             {
@@ -2019,7 +2150,7 @@ class MockReduxStore<T> {
             },
             {
               "id": "9",
-              "name": "vMME",
+              "name": "vFLORENCE",
               "isPermitted": false
             },
             {
@@ -2029,7 +2160,7 @@ class MockReduxStore<T> {
             },
             {
               "id": "11",
-              "name": "vSCP",
+              "name": "vEsmeralda",
               "isPermitted": false
             },
             {
@@ -2039,7 +2170,7 @@ class MockReduxStore<T> {
             },
             {
               "id": "13",
-              "name": "vMMSC",
+              "name": "vWINIFRED",
               "isPermitted": false
             },
             {
@@ -2082,6 +2213,754 @@ class MockReduxStore<T> {
             "id": "YYY1",
             "name": "UUUAIAAI-YYY1"
           },
+          {
+            "id": "BAN1",
+            "name": "VSDKYUTP-BAN1"
+          },
+          {
+            "id": "DKJ1",
+            "name": "DKJSJDKA-DKJ1"
+          },
+          {
+            "id": "MCS1",
+            "name": "ASACMAMS-MCS1"
+          },
+          {
+            "id": "UIO1",
+            "name": "uioclli1-UIO1"
+          },
+          {
+            "id": "RAJ1",
+            "name": "YGBIJNLQ-RAJ1"
+          },
+          {
+            "id": "OPA1",
+            "name": "opaclli1-OPA1"
+          },
+          {
+            "id": "SDE1",
+            "name": "ZXCVBNMA-SDE1"
+          },
+          {
+            "id": "VEN2",
+            "name": "FGHJUHIL-VEN2"
+          },
+          {
+            "id": "ORL1",
+            "name": "ORLDFLMA-ORL1"
+          },
+          {
+            "id": "JAD1",
+            "name": "JADECLLI-JAD1"
+          },
+          {
+            "id": "ZXL1",
+            "name": "LWLWCANN-ZXL1"
+          },
+          {
+            "id": "CKL1",
+            "name": "CLKSKCKK-CKL1"
+          },
+          {
+            "id": "SDF1",
+            "name": "sdfclli1-SDF1"
+          },
+          {
+            "id": "RAD1",
+            "name": "RADICAL1-RAD1"
+          },
+          {
+            "id": "KIT1",
+            "name": "BHYJFGLN-KIT1"
+          },
+          {
+            "id": "REL1",
+            "name": "INGERFGT-REL1"
+          },
+          {
+            "id": "JNL1",
+            "name": "CJALSDAC-JNL1"
+          },
+          {
+            "id": "OLK1",
+            "name": "OLKOLKLS-OLK1"
+          },
+          {
+            "id": "CHI1",
+            "name": "CHILLIWE-CHI1"
+          },
+          {
+            "id": "UUU4",
+            "name": "UUUAAAUU-UUU4"
+          },
+          {
+            "id": "TUF1",
+            "name": "TUFCLLI1-TUF1"
+          },
+          {
+            "id": "KJN1",
+            "name": "CKALDKSA-KJN1"
+          },
+          {
+            "id": "SAM1",
+            "name": "SNDGCA64-SAN1"
+          },
+          {
+            "id": "SCK1",
+            "name": "SCKSCKSK-SCK1"
+          },
+          {
+            "id": "HJH1",
+            "name": "AOEEQQQD-HJH1"
+          },
+          {
+            "id": "HGD1",
+            "name": "SDFQWHGD-HGD1"
+          },
+          {
+            "id": "KOR1",
+            "name": "HYFLNBVT-KOR1"
+          },
+          {
+            "id": "ATL43",
+            "name": "AICLOCID-ATL43"
+          },
+          {
+            "id": "ATL54",
+            "name": "AICFTAAI-ATL54"
+          },
+          {
+            "id": "ATL66",
+            "name": "CLLIAAII-ATL66"
+          },
+          {
+            "id": "VEL1",
+            "name": "BNMLKUIK-VEL1"
+          },
+          {
+            "id": "ICC1",
+            "name": "SANJITAT-ICC1"
+          },
+          {
+            "id": "MNT11",
+            "name": "WSXEFBTH-MNT11"
+          },
+          {
+            "id": "DEF2",
+            "name": "WSBHGTYL-DEF2"
+          },
+          {
+            "id": "MAD11",
+            "name": "SDFQWGKL-MAD11"
+          },
+          {
+            "id": "OLG1",
+            "name": "OLHOLHOL-OLG1"
+          },
+          {
+            "id": "GAR1",
+            "name": "NGFVSJKO-GAR1"
+          },
+          {
+            "id": "SAN22",
+            "name": "GNVLSCTL-SAN22"
+          },
+          {
+            "id": "HRG1",
+            "name": "HRGHRGGS-HRG1"
+          },
+          {
+            "id": "JCS1",
+            "name": "JCSJSCJS-JCS1"
+          },
+          {
+            "id": "DHA12",
+            "name": "WSXEDECF-DHA12"
+          },
+          {
+            "id": "HJE1",
+            "name": "AOEEWWWD-HJE1"
+          },
+          {
+            "id": "NCA1",
+            "name": "NCANCANN-NCA1"
+          },
+          {
+            "id": "IOP1",
+            "name": "iopclli1-IOP1"
+          },
+          {
+            "id": "RTY1",
+            "name": "rtyclli1-RTY1"
+          },
+          {
+            "id": "KAP1",
+            "name": "HIOUYTRQ-KAP1"
+          },
+          {
+            "id": "ZEN1",
+            "name": "ZENCLLI1-ZEN1"
+          },
+          {
+            "id": "HKA1",
+            "name": "JAKHLASS-HKA1"
+          },
+          {
+            "id": "CQK1",
+            "name": "CQKSCAKK-CQK1"
+          },
+          {
+            "id": "SAI1",
+            "name": "UBEKQLPD-SAI1"
+          },
+          {
+            "id": "ERT1",
+            "name": "ertclli1-ERT1"
+          },
+          {
+            "id": "IBB1",
+            "name": "PLMKOIJU-IBB1"
+          },
+          {
+            "id": "TIR2",
+            "name": "PLKINHYI-TIR2"
+          },
+          {
+            "id": "HSD1",
+            "name": "CHASKCDS-HSD1"
+          },
+          {
+            "id": "SLF78",
+            "name": "SDCTLFN1-SLF78"
+          },
+          {
+            "id": "SEE78",
+            "name": "SDCTEEE4-SEE78"
+          },
+          {
+            "id": "SAN13",
+            "name": "TOKYJPFA-SAN13"
+          },
+          {
+            "id": "SAA78",
+            "name": "SDCTAAA1-SAA78"
+          },
+          {
+            "id": "LUC1",
+            "name": "ATLDFGYC-LUC1"
+          },
+          {
+            "id": "AMD13",
+            "name": "MEMATLAN-AMD13"
+          },
+          {
+            "id": "TOR1",
+            "name": "TOROONXN-TOR1"
+          },
+          {
+            "id": "QWE1",
+            "name": "QWECLLI1-QWE1"
+          },
+          {
+            "id": "ZOG1",
+            "name": "ZOGASTRO-ZOG1"
+          },
+          {
+            "id": "CAL33",
+            "name": "CALIFORN-CAL33"
+          },
+          {
+            "id": "SHH78",
+            "name": "SDIT1HHH-SHH78"
+          },
+          {
+            "id": "DSA1",
+            "name": "LKJHGFDS-DSA1"
+          },
+          {
+            "id": "CLG1",
+            "name": "CLGRABAD-CLG1"
+          },
+          {
+            "id": "BNA1",
+            "name": "BNARAGBK-BNA1"
+          },
+          {
+            "id": "ATL84",
+            "name": "CANTTCOC-ATL84"
+          },
+          {
+            "id": "APP1",
+            "name": "WBHGTYUI-APP1"
+          },
+          {
+            "id": "RJN1",
+            "name": "RJNRBZAW-RJN1"
+          },
+          {
+            "id": "EHH78",
+            "name": "SDCSHHH5-EHH78"
+          },
+          {
+            "id": "mac10",
+            "name": "PKGTESTF-mac10"
+          },
+          {
+            "id": "SXB78",
+            "name": "SDCTGXB1-SXB78"
+          },
+          {
+            "id": "SAX78",
+            "name": "SDCTAXG1-SAX78"
+          },
+          {
+            "id": "SYD1",
+            "name": "SYDNAUBV-SYD1"
+          },
+          {
+            "id": "TOK1",
+            "name": "TOKYJPFA-TOK1"
+          },
+          {
+            "id": "KGM2",
+            "name": "KGMTNC20-KGM2"
+          },
+          {
+            "id": "DCC1b",
+            "name": "POIUYTGH-DCC1b"
+          },
+          {
+            "id": "SKK78",
+            "name": "SDCTKKK1-SKK78"
+          },
+          {
+            "id": "SGG78",
+            "name": "SDCTGGG1-SGG78"
+          },
+          {
+            "id": "SJJ78",
+            "name": "SDCTJJJ1-SJJ78"
+          },
+          {
+            "id": "SBX78",
+            "name": "SDCTBXG1-SBX78"
+          },
+          {
+            "id": "LAG1",
+            "name": "LARGIZON-LAG1"
+          },
+          {
+            "id": "IAA1",
+            "name": "QAZXSWED-IAA1"
+          },
+          {
+            "id": "POI1",
+            "name": "PLMNJKIU-POI1"
+          },
+          {
+            "id": "LAG1a",
+            "name": "LARGIZON-LAG1a"
+          },
+          {
+            "id": "PBL1",
+            "name": "PBLAPBAI-PBL1"
+          },
+          {
+            "id": "LAG45",
+            "name": "LARGIZON-LAG1a"
+          },
+          {
+            "id": "MAR1",
+            "name": "MNBVCXZM-MAR1"
+          },
+          {
+            "id": "HST70",
+            "name": "HSTNTX70-HST70"
+          },
+          {
+            "id": "DCC1a",
+            "name": "POIUYTGH-DCC1a"
+          },
+          {
+            "id": "TOL1",
+            "name": "TOLDOH21-TOL1"
+          },
+          {
+            "id": "LON1",
+            "name": "LONEENCO-LON1"
+          },
+          {
+            "id": "SJU78",
+            "name": "SDIT1JUB-SJU78"
+          },
+          {
+            "id": "STN27",
+            "name": "HSTNTX01-STN27"
+          },
+          {
+            "id": "SSW56",
+            "name": "ss8126GT-SSW56"
+          },
+          {
+            "id": "SBB78",
+            "name": "SDIT1BBB-SBB78"
+          },
+          {
+            "id": "DCC3",
+            "name": "POIUYTGH-DCC3"
+          },
+          {
+            "id": "GNV1",
+            "name": "GNVLSCTL-GNV1"
+          },
+          {
+            "id": "WAS1",
+            "name": "WASHDCSW-WAS1"
+          },
+          {
+            "id": "TOY1",
+            "name": "TORYONNZ-TOY1"
+          },
+          {
+            "id": "STT1",
+            "name": "STTLWA02-STT1"
+          },
+          {
+            "id": "STG1",
+            "name": "STTGGE62-STG1"
+          },
+          {
+            "id": "SLL78",
+            "name": "SDCTLLL1-SLL78"
+          },
+          {
+            "id": "SBU78",
+            "name": "SDIT1BUB-SBU78"
+          },
+          {
+            "id": "ATL2",
+            "name": "ATLNGANW-ATL2"
+          },
+          {
+            "id": "BOT1",
+            "name": "BOTHWAKY-BOT1"
+          },
+          {
+            "id": "SNG1",
+            "name": "SNGPSIAU-SNG1"
+          },
+          {
+            "id": "NYC1",
+            "name": "NYCMNY54-NYC1"
+          },
+          {
+            "id": "LAG1b",
+            "name": "LARGIZON-LAG1b"
+          },
+          {
+            "id": "AMD15",
+            "name": "AMDFAA01-AMD15"
+          },
+          {
+            "id": "SNA1",
+            "name": "SNANTXCA-SNA1"
+          },
+          {
+            "id": "PLT1",
+            "name": "PLTNCA60-PLT1"
+          },
+          {
+            "id": "TLP1",
+            "name": "TLPNXM18-TLP1"
+          },
+          {
+            "id": "SDD81",
+            "name": "SAIT1DD6-SDD81"
+          },
+          {
+            "id": "DCC1",
+            "name": "POIUYTGH-DCC1"
+          },
+          {
+            "id": "DCC2",
+            "name": "POIUYTGH-DCC2"
+          },
+          {
+            "id": "OKC1",
+            "name": "OKCBOK55-OKC1"
+          },
+          {
+            "id": "PAR1",
+            "name": "PARSFRCG-PAR1"
+          },
+          {
+            "id": "TES36",
+            "name": "ABCEETES-TES36"
+          },
+          {
+            "id": "COM1",
+            "name": "PLMKOPIU-COM1"
+          },
+          {
+            "id": "ANI1",
+            "name": "ATLNGTRE-ANI1"
+          },
+          {
+            "id": "SDG78",
+            "name": "SDIT1BDG-SDG78"
+          },
+          {
+            "id": "mac20",
+            "name": "PKGTESTF-mac20"
+          },
+          {
+            "id": "DSF45",
+            "name": "DSFBG123-DSF45"
+          },
+          {
+            "id": "HST25",
+            "name": "HSTNTX01-HST25"
+          },
+          {
+            "id": "AMD18",
+            "name": "AUDIMA01-AMD18"
+          },
+          {
+            "id": "SAA80",
+            "name": "SAIT9AA3-SAA80"
+          },
+          {
+            "id": "SSA56",
+            "name": "SSIT2AA7-SSA56"
+          },
+          {
+            "id": "SDD82",
+            "name": "SAIT1DD9-SDD82"
+          },
+          {
+            "id": "JCV1",
+            "name": "JCVLFLBW-JCV1"
+          },
+          {
+            "id": "SUL2",
+            "name": "WERTYUJK-SUL2"
+          },
+          {
+            "id": "PUR1",
+            "name": "purelyde-PUR1"
+          },
+          {
+            "id": "FDE55",
+            "name": "FDERT555-FDE55"
+          },
+          {
+            "id": "SITE",
+            "name": "LONEENCO-SITE"
+          },
+          {
+            "id": "ATL1",
+            "name": "ATLNGAMA-ATL1"
+          },
+          {
+            "id": "JUL1",
+            "name": "ZXCVBNMM-JUL1"
+          },
+          {
+            "id": "TAT34",
+            "name": "TESAAISB-TAT34"
+          },
+          {
+            "id": "XCP12",
+            "name": "CHKGH123-XCP12"
+          },
+          {
+            "id": "RAI1",
+            "name": "poiuytre-RAI1"
+          },
+          {
+            "id": "HPO1",
+            "name": "ATLNGAUP-HPO1"
+          },
+          {
+            "id": "KJF12",
+            "name": "KJFDH123-KJF12"
+          },
+          {
+            "id": "SCC80",
+            "name": "SAIT9CC3-SCC80"
+          },
+          {
+            "id": "SAA12",
+            "name": "SAIT9AF8-SAA12"
+          },
+          {
+            "id": "SAA14",
+            "name": "SAIT1AA9-SAA14"
+          },
+          {
+            "id": "ATL35",
+            "name": "TTESSAAI-ATL35"
+          },
+          {
+            "id": "CWY1",
+            "name": "CWYMOWBS-CWY1"
+          },
+          {
+            "id": "ATL76",
+            "name": "TELEPAAI-ATL76"
+          },
+          {
+            "id": "DSL12",
+            "name": "DSLFK242-DSL12"
+          },
+          {
+            "id": "ATL53",
+            "name": "AAIATLTE-ATL53"
+          },
+          {
+            "id": "SAA11",
+            "name": "SAIT9AA2-SAA11"
+          },
+          {
+            "id": "ATL62",
+            "name": "TESSASCH-ATL62"
+          },
+          {
+            "id": "AUG1",
+            "name": "ASDFGHJK-AUG1"
+          },
+          {
+            "id": "POI22",
+            "name": "POIUY123-POI22"
+          },
+          {
+            "id": "SAA13",
+            "name": "SAIT1AA9-SAA13"
+          },
+          {
+            "id": "BHY17",
+            "name": "BHYTFRF3-BHY17"
+          },
+          {
+            "id": "LIS1",
+            "name": "HOSTPROF-LIS1"
+          },
+          {
+            "id": "SIP1",
+            "name": "ZXCVBNMK-SIP1"
+          },
+          {
+            "id": "ATL99",
+            "name": "TEESTAAI-ATL43"
+          },
+          {
+            "id": "ATL64",
+            "name": "FORLOAAJ-ATL64"
+          },
+          {
+            "id": "TAT33",
+            "name": "TESAAISA-TAT33"
+          },
+          {
+            "id": "RAD10",
+            "name": "INDIPUNE-RAD10"
+          },
+          {
+            "id": "RTW5",
+            "name": "BHYTFRY4-RTW5"
+          },
+          {
+            "id": "JGS1",
+            "name": "KSJKKKKK-JGS1"
+          },
+          {
+            "id": "ATL98",
+            "name": "TEESTAAI-ATL43"
+          },
+          {
+            "id": "WAN1",
+            "name": "LEIWANGW-WAN1"
+          },
+          {
+            "id": "ATL44",
+            "name": "ATLSANAB-ATL44"
+          },
+          {
+            "id": "RTD2",
+            "name": "BHYTFRk4-RTD2"
+          },
+          {
+            "id": "NIR1",
+            "name": "ORFLMANA-NIR1"
+          },
+          {
+            "id": "ATL75",
+            "name": "SANAAIRE-ATL75"
+          },
+          {
+            "id": "NUM1",
+            "name": "QWERTYUI-NUM1"
+          },
+          {
+            "id": "hvf32",
+            "name": "MDTWNJ21-hvf32"
+          },
+          {
+            "id": "RTZ4",
+            "name": "BHYTFRZ6-RTZ4"
+          },
+          {
+            "id": "ATL56",
+            "name": "ATLSANAC-ATL56"
+          },
+          {
+            "id": "AMS1",
+            "name": "AMSTNLBW-AMS1"
+          },
+          {
+            "id": "RCT1",
+            "name": "AMSTERNL-RCT1"
+          },
+          {
+            "id": "JAN1",
+            "name": "ORFLMATT-JAN1"
+          },
+          {
+            "id": "ABC14",
+            "name": "TESAAISA-ABC14"
+          },
+          {
+            "id": "TAT37",
+            "name": "TESAAISD-TAT37"
+          },
+          {
+            "id": "MIC54",
+            "name": "MICHIGAN-MIC54"
+          },
+          {
+            "id": "ABC11",
+            "name": "ATLSANAI-ABC11"
+          },
+          {
+            "id": "AMF11",
+            "name": "AMDOCS01-AMF11"
+          },
+          {
+            "id": "ATL63",
+            "name": "ATLSANEW-ATL63"
+          },
+          {
+            "id": "ABC12",
+            "name": "ATLSECIA-ABC12"
+          },
+          {
+            "id": "hvf20",
+            "name": "MDTWNJ21-hvf20"
+          },
+          {
+            "id": "ABC15",
+            "name": "AAITESAN-ABC15"
+          },
           {
             "id": "AVT1",
             "name": "AVTRFLHD-AVT1"
@@ -2274,7 +3153,7 @@ describe('vnf group new popup service', () => {
 
   test('getModelInformation vnfGroup should update modelInformations', () => {
     const serviceId: string = '6b528779-44a3-4472-bdff-9cd15ec93450';
-    const vnfGroupModelName: string = '2017-388_ADIOD-vPE 1';
+    const vnfGroupModelName: string = '2017-388_PASQUALE-vPE 1';
     service.getModelInformation(serviceId, vnfGroupModelName);
     expect(service.modelInformations.length).toEqual(14);
 
@@ -2282,7 +3161,7 @@ describe('vnf group new popup service', () => {
     expect(service.modelInformations[0].values).toEqual(['1.0']);
 
     expect(service.modelInformations[1].label).toEqual("Description");
-    expect(service.modelInformations[1].values).toEqual(['Name ADIOD vPE Description The provider edge function for the ADIOD service supported by the Junipers VMX product Category Router Vendor Juniper Vendor Release Code 17.2 Owners Mary Fragale. Updated 9-25 to use v8.0 of the Juniper Valid 2 VLM']);
+    expect(service.modelInformations[1].values).toEqual(['Name PASQUALE vPE Description The provider edge function for the PASQUALE service supported by the Junipers VMX product Category Router Vendor Juniper Vendor Release Code 17.2 Owners Mary Fragale. Updated 9-25 to use v8.0 of the Juniper Valid 2 VLM']);
 
     expect(service.modelInformations[2].label).toEqual("Category");
     expect(service.modelInformations[2].values).toEqual([undefined]);
@@ -2324,34 +3203,34 @@ describe('vnf group new popup service', () => {
   test('getSubLeftTitle new vnf group popup should return service model name', () => {
     service.uuidData = {
       serviceId: '6e59c5de-f052-46fa-aa7e-2fca9d674c44',
-      modelName: 'VF_vMee 0'
+      modelName: 'VF_vGeraldine 0'
     };
-    expect(service.getSubLeftTitle()).toBe('VNF Group : VF_vMee');
+    expect(service.getSubLeftTitle()).toBe('VNF Group : VF_vGeraldine');
   });
 
   test('getInstance with empty storekey should be created', () => {
     const serviceId: string = '6e59c5de-f052-46fa-aa7e-2fca9d674c44';
-    const vnfGroupModelName: string = '2017-388_ADIOD-vPE 1';
+    const vnfGroupModelName: string = '2017-388_PASQUALE-vPE 1';
     const newInstance = service.getInstance(serviceId, vnfGroupModelName, null);
     expect(newInstance).toBeDefined();
   });
 
   test('getInstance with not empty storekey should return vnfGroupStoreKey', () => {
     const serviceId: string = '6b528779-44a3-4472-bdff-9cd15ec93450';
-    const vnfGroupModelName: string = '2017-388_ADIOD-vPE 1';
-    const vnfGroupStoreKey: string = '2017-488_ADIOD-vPE 0';
+    const vnfGroupModelName: string = '2017-388_PASQUALE-vPE 1';
+    const vnfGroupStoreKey: string = '2017-488_PASQUALE-vPE 0';
     const newInstance = service.getInstance(serviceId, vnfGroupModelName, vnfGroupStoreKey);
-    expect(newInstance.vnfGroupStoreKey).toEqual('2017-488_ADIOD-vPE 0');
+    expect(newInstance.vnfGroupStoreKey).toEqual('2017-488_PASQUALE-vPE 0');
   });
 
   test('getGenericFormPopupDetails returns the FormPopupDetails object', () => {
       const serviceId: string = '6e59c5de-f052-46fa-aa7e-2fca9d674c44';
-      const vnfGroupModelName: string = 'VF_vMee 0';
-      const vnfGroupStoreKey: string = 'VF_vMee 0';
+      const vnfGroupModelName: string = 'VF_vGeraldine 0';
+      const vnfGroupStoreKey: string = 'VF_vGeraldine 0';
       let uuidData: UUIDData = <any>{
         serviceId: "6e59c5de-f052-46fa-aa7e-2fca9d674c44",
-        modelName: "VF_vMee 0",
-        vnfGroupStoreKey: "VF_vMee 0"
+        modelName: "VF_vGeraldine 0",
+        vnfGroupStoreKey: "VF_vGeraldine 0"
       };
       const formPopupDetailsObject = service.getGenericFormPopupDetails(serviceId, vnfGroupModelName, vnfGroupStoreKey, null, uuidData, true);
       expect(formPopupDetailsObject).toBeDefined();
index 748edd2..851d5d5 100644 (file)
@@ -64,7 +64,7 @@ export class VnfGroupPopupService implements GenericPopupInterface{
   }
 
   getControls(serviceId: string, modelName: string, vnfGroupStoreKey: string){
-    if(this._store.getState().service.serviceHierarchy[serviceId].service.instantiationType === 'Macro') {
+    if(this._store.getState().service.serviceHierarchy[serviceId].service.vidNotions.instantiationType === 'Macro') {
       return this._vnfGroupControlGenerator.getMacroFormControls(serviceId, vnfGroupStoreKey, modelName);
     } else {
       return this._vnfGroupControlGenerator.getAlaCarteFormControls(serviceId, vnfGroupStoreKey, modelName);
index 418493f..3d80cff 100644 (file)
@@ -1,15 +1,32 @@
 import {ModelInformationService} from "./model-information.service";
 import {ModelInformationItem} from "./model-information.component";
+import {HttpClientTestingModule, HttpTestingController} from "@angular/common/http/testing";
+import {getTestBed, TestBed} from "@angular/core/testing";
 
 describe('ModelInformationService', () => {
-  let underTest:ModelInformationService;
+  let injector;
+  let service: ModelInformationService;
+  let httpMock: HttpTestingController;
+
+
+  beforeAll(done => (async () => {
+    TestBed.configureTestingModule({
+      imports: [HttpClientTestingModule],
+      providers: [
+        ModelInformationService
+      ]
+    });
+    await TestBed.compileComponents();
+
+    injector = getTestBed();
+    service = injector.get(ModelInformationService);
+    httpMock = injector.get(HttpTestingController);
+
+  })().then(done).catch(done.fail));
 
-  beforeEach(() => {
-    underTest = new ModelInformationService();
-  });
 
   test('when call to filterModelItems then items with empty values are filtered', () =>{
-    expect(underTest.filterModelItems([
+    expect(service.filterModelItems([
       ModelInformationItem.createInstance("emptyValue", ""),
       ModelInformationItem.createInstance("nullValue", null),
       ModelInformationItem.createInstance("undefinedValue", undefined),
@@ -20,13 +37,14 @@ describe('ModelInformationService', () => {
 
   test('when call to filterModelItems then mandatory items with empty values are not filtered', () =>{
     const mandatoryItem:ModelInformationItem = new ModelInformationItem("a", "b", [""], "c", true);
-    expect(underTest.filterModelItems([mandatoryItem])).toEqual([mandatoryItem]);
+    expect(service.filterModelItems([mandatoryItem])).toEqual([mandatoryItem]);
   });
 
   test('when call to filterModelItems then items with values are not filtered', () =>{
-    expect(underTest.filterModelItems([
+    expect(service.filterModelItems([
       ModelInformationItem.createInstance("withString", "a"),
       ModelInformationItem.createInstance("withNumber", 1),
     ])).toHaveLength(2);
   });
+
 });
diff --git a/vid-webpack-master/src/app/shared/components/searchMembersModal/members-table/element-table-row.model.ts b/vid-webpack-master/src/app/shared/components/searchMembersModal/members-table/element-table-row.model.ts
new file mode 100644 (file)
index 0000000..250e2c1
--- /dev/null
@@ -0,0 +1,88 @@
+import {VnfMember} from "../../../models/VnfMember";
+import {Observable} from "rxjs";
+import {CustomTableColumnDefinition} from "./elements-table.component";
+
+export class ElementTableRowModel extends VnfMember {
+  isSelected: boolean = false;
+}
+
+
+/*******************************************************************************************************************************
+                ModalInformation
+ *  @type: popup type (VPN, NETWORK, VNFGROUP)
+ *  @title: popup title
+ *  @description: popup upper message
+ *  @topButtonText: (optional)
+ *    @text: button text
+ *    @action: button action
+ *  @backAction : arrow back button action (can close the modal/move to next step)
+ *  @uniqObjectField: uniq object field that we can find in O(1)
+ *  @maxSelectRow: max number of row that user can select (default = no limit)(optional)
+ *  @getElements: function that should return Observable<any[]> of collection of elements to show in the table
+ *  @noElementsMsg : when there are no element some message should shown
+ *  @searchFields : extra information in the left section
+ *  @criteria: extra criteria on table content (optional)
+ *  @tableHeaders : table headers
+ *  @tableContent: table td's information.
+
+ ******************************************************************************************************************************/
+
+export class  ModalInformation {
+  type : string;
+  currentCriteriaInfo? : Object;
+  title ?: string;
+  description ?: string;
+  topButton?: {
+    text ?: string,
+    action ?: (...args) => any
+  };
+  searchButton?: {
+    text ?: string,
+    action ?: (...args)=> any
+  };
+  backAction? : (...args) => any;
+  uniqObjectField : string;
+  maxSelectRow ?: number;
+  getElements : (...args) => Observable<any[]>;
+  noElementsMsg : string;
+  searchFields: ISearchField[];
+  criteria ?: ICriteria[];
+  tableHeaders : CustomTableColumnDefinition[];
+  tableContent : ITableContent[];
+  serviceModelId: string;
+}
+
+
+export interface ISearchField {
+  title: string;
+  value: any;
+  dataTestId: string;
+  type : string;
+}
+
+
+export interface ICriteria {
+  label: string;
+  defaultValue: any;
+  onInit?: (...args) => Observable<string>;
+  onChange? : (...arg) => void;
+  type : string;
+  dataTestId : string;
+  isRequired ?: boolean;
+  currentValue ?: any;
+}
+
+
+export interface ITableContent {
+  id : string;
+  contents : {id : string[], value : string[], prefix ?: string, type? : string}[];
+}
+
+export enum SearchFieldItemType {
+  LABEL = 'LABEL',
+  DROPDOWN = 'DROPDOWN'
+}
+
+
+
+
diff --git a/vid-webpack-master/src/app/shared/components/searchMembersModal/members-table/elements-table.component.html b/vid-webpack-master/src/app/shared/components/searchMembersModal/members-table/elements-table.component.html
new file mode 100644 (file)
index 0000000..036a124
--- /dev/null
@@ -0,0 +1,71 @@
+<div class="table-header">
+  <div class="left-header">
+    <span class="title-header">{{modalInformation.description}}</span>
+    <div class="sub-title-header">
+      <span class="vnf-match-your-criteria" class="total" [attr.data-tests-id]="'total-amount'" style="margin-right: 5px;"><span
+        [attr.data-tests-id]="'numberOfNotHideRows'">{{membersTableService.numberOfNotHideRows}}</span> {{modalInformation.type}}s match your criteria |</span>
+      <span class="vnf-selected" class="total" [attr.data-tests-id]="'total-selected'"><span
+        [attr.data-tests-id]="'numberOfSelectedRows'">{{membersTableService.numberOfSelectedRows}}</span> {{modalInformation.type}}{{membersTableService.numberOfSelectedRows>1?'s':'' }} selected</span>
+    </div>
+  </div>
+
+  <div class="search-container">
+    <sdc-filter-bar
+      [placeHolder]="'Filter'"
+      [debounceTime]="250"
+      [testId]="'vnf-members-search'"
+      (valueChange)="search($event)">
+    </sdc-filter-bar>
+  </div>
+</div>
+<table id="member-table" class="table table-bordered"  style="table-layout: fixed" *ngIf="data?.length > 0">
+  <thead class="thead-dark">
+  <tr>
+    <th class="allCheckboxAreSelected" style="position: relative;">
+      <sdc-checkbox
+        [disabled]="membersTableService.isCheckAllDisabled(modalInformation.maxSelectRow)"
+        [(checked)]="membersTableService.allCheckboxAreSelected"
+        [testId]="'all-checkbox-selected'"
+        (checkedChange)="changeAllCheckboxStatus($event)"
+      ></sdc-checkbox>
+    </th>
+    <th class="header-title" *ngFor="let header of headers">{{header.displayName}}</th>
+  </tr>
+  </thead>
+  <tbody>
+  <tr class="member-table-row" *ngFor="let item of membersTableService.filteredMembers">
+    <td class="sdcCheckboxMember" style="position: relative;" [attr.data-tests-id]="item[membersTableService.staticUniqObjectField]">
+      <sdc-checkbox
+        [disabled]="membersTableService.isRowDisabled( membersTableService.allElementsStatusMap[item[membersTableService.staticUniqObjectField]]?.isSelected, modalInformation.maxSelectRow)"
+        [checked]="membersTableService.allElementsStatusMap[item[membersTableService.staticUniqObjectField]]?.isSelected"
+        [testId]="item[membersTableService.staticUniqObjectField]"
+        (checkedChange)="changeCheckboxStatus(item[membersTableService.staticUniqObjectField])"
+      ></sdc-checkbox></td>
+
+    <td *ngFor="let tdInformation of modalInformation.tableContent" [id]="tdInformation.id">
+      <div *ngIf="tdInformation.contents[0].type === 'LIST'; else noList">
+        <custom-ellipsis
+          *ngFor="let tdInformationItem of getTdListInformationItemValue(tdInformation.contents[0], item) "
+          [id]="tdInformationItem"
+          [value]="tdInformationItem"
+          [breakWord]="true"
+          [hightlight]="filterValue"></custom-ellipsis>
+      </div>
+      <ng-template #noList>
+        <custom-ellipsis
+          *ngFor="let tdInformationItem of tdInformation.contents; index as i"
+          [id]="getTdInformationItemId(tdInformationItem, item)"
+          [value]="getTdInformationItemValue(tdInformationItem, item)"
+          [ngClass]="{'second-line' : i%2 === 1}"
+          [breakWord]="true"
+          [hightlight]="filterValue"></custom-ellipsis>
+      </ng-template>
+
+    </td>
+  </tr>
+
+  </tbody>
+</table>
+<div class="no-result" *ngIf="data?.length == 0">{{modalInformation?.noElementsMsg}}</div>
+
+
diff --git a/vid-webpack-master/src/app/shared/components/searchMembersModal/members-table/elements-table.component.ts b/vid-webpack-master/src/app/shared/components/searchMembersModal/members-table/elements-table.component.ts
new file mode 100644 (file)
index 0000000..485a63c
--- /dev/null
@@ -0,0 +1,144 @@
+import {Component, Input, OnChanges, Output, SimpleChanges, EventEmitter} from '@angular/core';
+import {ElementsTableService} from "./elements-table.service";
+import {ModalInformation} from "./element-table-row.model";
+import * as _ from 'lodash';
+import {Level1Instance} from "../../../models/level1Instance";
+import {NgRedux} from "@angular-redux/store";
+import {AppState} from "../../../store/reducers";
+import {
+  deleteGenericModalhelper,
+  deleteGenericModalTableDataHelper
+} from "../../../storeUtil/utils/global/global.actions";
+
+export class CustomTableColumnDefinition {
+  public displayName = '';
+  public key : any = '';
+  public type? = 'text';
+  public filter? = '';
+}
+
+@Component({
+  selector: 'app-members-table',
+  templateUrl: './elements-table.component.html',
+  styleUrls: ['./members-table.component.scss']
+})
+
+export class ElementsTableComponent implements OnChanges{
+  filterValue: string = null;
+  allMemberStatusMap = null;
+  membersTableService : ElementsTableService;
+  headers: CustomTableColumnDefinition[] = [];
+  searchQuery = null;
+
+  @Input() modalInformation : ModalInformation;
+  @Input() data: Level1Instance[];
+  @Output() selectedMembersAmountChange : EventEmitter<number> = new EventEmitter();
+  constructor(private _membersTableService : ElementsTableService, private _store : NgRedux<AppState>){
+    this.membersTableService = this._membersTableService;
+  }
+
+  ngOnChanges(changes: SimpleChanges): void {
+    if(_.isNil(this.data)){
+      this._membersTableService.resetAll(this.modalInformation.uniqObjectField, this.modalInformation.maxSelectRow);
+    }else {
+      ElementsTableService.uniqObjectField = this.modalInformation.uniqObjectField;
+      this.headers = this.modalInformation.tableHeaders;
+      const genericModalHelper = this._store.getState().global.genericModalHelper;
+      if(!_.isNil(genericModalHelper) && !_.isNil(genericModalHelper[`${this.modalInformation.type}_TABLE_DATA`]) && !_.isNil(genericModalHelper[`selected${this.modalInformation.type}`])){
+        this.updateTablWithDefaultData(this._store.getState().global.genericModalHelper[`${this.modalInformation.type}_TABLE_DATA`]);
+      }else {
+        this.modalInformation.getElements().subscribe((res)=>{
+          this.updateTablWithDefaultData(res);
+        });
+      }
+    }
+  }
+
+  updateTablWithDefaultData(tableData) : void{
+    this._membersTableService.allElementsStatusMap = this._membersTableService.generateAllMembersStatus(tableData);
+    this._membersTableService.filteredMembers = this._membersTableService.sortElementsByName(tableData, "instanceName");
+    this._membersTableService.updateAmountsAndCheckAll(this.modalInformation.uniqObjectField, this.modalInformation, this.modalInformation.maxSelectRow);
+    this.updateDefaultSelectedRows();
+  }
+  
+  search(searchStr: string): void {
+    this.filterValue = searchStr;
+    this._membersTableService.filterMembers(this.filterValue, this.modalInformation.type);
+  }
+
+  selectItem(item , maxNumberOfRows : number) : void {
+    if (maxNumberOfRows === 1) {
+      for (let currentItem in this.membersTableService.allElementsStatusMap) {
+        if (this.membersTableService.allElementsStatusMap[currentItem].isSelected) {
+          this.membersTableService.allElementsStatusMap[currentItem].isSelected = false;
+          this.membersTableService.allElementsStatusMap[item[this.membersTableService.staticUniqObjectField]].isSelected = !this.membersTableService.allElementsStatusMap[item[this.membersTableService.staticUniqObjectField]].isSelected;
+          return;
+        }
+      }
+      this.membersTableService.allElementsStatusMap[item[this.membersTableService.staticUniqObjectField]].isSelected = !this.membersTableService.allElementsStatusMap[item[this.membersTableService.staticUniqObjectField]].isSelected;
+    }
+  }
+
+  updateDefaultSelectedRows(): void {
+    if(this._store.getState().global.genericModalHelper && this._store.getState().global.genericModalHelper[`selected${this.modalInformation.type}`]){
+      const selectedIds = this._store.getState().global.genericModalHelper[`selected${this.modalInformation.type}`];
+      for(const id in selectedIds){
+        if(!_.isNil(this._membersTableService.allElementsStatusMap[id])){
+          this._membersTableService.allElementsStatusMap[id].isSelected = true;
+        }
+      }
+      this._membersTableService.updateAmountsAndCheckAll(this.modalInformation.uniqObjectField, this.modalInformation, this.modalInformation.maxSelectRow);
+      this.selectedMembersAmountChange.emit(this._membersTableService.numberOfSelectedRows);
+    }
+  }
+
+  changeAllCheckboxStatus(status: boolean) : void {
+    this._membersTableService.changeAllCheckboxStatus(status);
+    this.selectedMembersAmountChange.emit(this._membersTableService.numberOfSelectedRows);
+  }
+
+
+  changeCheckboxStatus(vnfInstanceId: string) : void {
+    if (this.modalInformation.maxSelectRow === 1) {
+      for (let currentItem in this.membersTableService.allElementsStatusMap) {
+        if (this.membersTableService.allElementsStatusMap[currentItem].isSelected) {
+          this.membersTableService.allElementsStatusMap[currentItem].isSelected = false;
+          this._store.dispatch(deleteGenericModalhelper(`selected${this.modalInformation.type}`, this.membersTableService.allElementsStatusMap[currentItem][this.modalInformation.uniqObjectField]));
+          this._store.dispatch(deleteGenericModalTableDataHelper(`${this.modalInformation.type}_TABLE_DATA`));
+        }
+      }
+    }
+    this._membersTableService.changeCheckboxStatus(vnfInstanceId, this.data);
+    this.selectedMembersAmountChange.emit(this._membersTableService.numberOfSelectedRows);
+  }
+
+
+  getTdInformationItemId(data : {id : string[], value : string[], prefix ?: string}, item) : string {
+    let result = item;
+    for(const idVal of data.id){
+      if(_.isNil(result)) return null;
+      result = result[idVal];
+    }
+    return result;
+  }
+
+  getTdInformationItemValue(data : {id : string[], value : string[], prefix ?: string}, item) : string {
+    let result = item;
+    for(const idVal of data.value){
+      if(_.isNil(result)) return null;
+      result = result[idVal];
+    }
+    return !_.isNil(data.prefix) ? data.prefix + result : result;
+  }
+
+
+  getTdListInformationItemValue(data : {id : string[], value : string[], prefix ?: string}, item) : string[] {
+    let result = item;
+
+    for(let i = 0 ; i < data.value.length -1 ; i++){
+      if(_.isNil(result)) return null;
+      result = result[data.value[i]];
+    }
+    return _.map(result, _.last(data.value));
+  }
+}
@@ -1,11 +1,9 @@
-import {MembersTableService} from "./members-table.service";
+import {ElementsTableService} from "./elements-table.service";
 import {TestBed, getTestBed} from "@angular/core/testing";
 import {NgRedux} from "@angular-redux/store";
-import {CustomTableColumnDefinition} from "./members-table.component";
+import {CustomTableColumnDefinition} from "./elements-table.component";
 import {AppState} from "../../../store/reducers";
-import {createRelatedVnfMemberInstance} from "../../../storeUtil/utils/relatedVnfMember/relatedVnfMember.actions";
 import {DataFilterPipe} from "../../../pipes/dataFilter/data-filter.pipe";
-import {VnfMember} from "../../../models/VnfMember";
 
 
 
@@ -27,7 +25,7 @@ class MockAppStore<T> {
                       "instanceName": "VNF1_INSTANCE_NAME",
                       "instanceId": "VNF1_INSTANCE_ID",
                       "orchStatus": null,
-                      "lcpCloudRegionId": "mtn23b",
+                      "lcpCloudRegionId": "hvf23b",
                       "tenantId": "3e9a20a3e89e45f884e09df0cc2d2d2a",
                       "tenantName": "APPC-24595-T-IST-02C",
                       "modelInfo": {
@@ -62,9 +60,9 @@ class MockAppStore<T> {
   }
 }
 
-describe('MembersTableService view member count', () => {
+describe('ElementsTableService view member count', () => {
   let injector;
-  let service: MembersTableService;
+  let service: ElementsTableService;
   let store: NgRedux<AppState>;
   let data = loadMockMembers();
 
@@ -73,7 +71,7 @@ describe('MembersTableService view member count', () => {
     TestBed.configureTestingModule(
       {
         providers: [
-          MembersTableService,
+          ElementsTableService,
           {provide: NgRedux, useClass: MockAppStore},
           DataFilterPipe
 
@@ -83,94 +81,80 @@ describe('MembersTableService view member count', () => {
     await TestBed.compileComponents();
 
     injector = getTestBed();
-    service = injector.get(MembersTableService);
+    service = injector.get(ElementsTableService);
     store = injector.get(NgRedux)
 
   })().then(done).catch(done.fail));
 
 
   test('should return number of displayed members', () => {
-    service.allMemberStatusMap = MembersTableService.generateAllMembersStatus(<any>data);
+    service.modalInformation = <any>{
+      uniqObjectField : "instanceId"
+    };
+    service.allElementsStatusMap = service.generateAllMembersStatus(<any>data);
     service.filteredMembers = <any>data;
-    expect(service.calculateNotHideVnfMembers()).toEqual(2);
+    expect(service.calculateNotHideRows()).toEqual(2);
   });
 
   test('should return number of selected members', () => {
-    service.allMemberStatusMap = MembersTableService.generateAllMembersStatus(<any>data);
-    service.allMemberStatusMap['VNF1_INSTANCE_ID'].isSelected = true;
-    service.allMemberStatusMap['VNF2_INSTANCE_ID'].isSelected = true;
-    expect(service.calculateSelectedVnfMembers()).toEqual(2);
+    ElementsTableService.uniqObjectField = "instanceId";
+    service.allElementsStatusMap = service.generateAllMembersStatus(<any>data);
+    service.allElementsStatusMap['VNF1_INSTANCE_ID'].isSelected = true;
+    service.allElementsStatusMap['VNF2_INSTANCE_ID'].isSelected = true;
+    expect(service.calculateSelectedRows()).toEqual(2);
   });
 
   test('should return number of selected members', () => {
-    service.allMemberStatusMap = MembersTableService.generateAllMembersStatus(<any>data);
+    service.allElementsStatusMap = service.generateAllMembersStatus(<any>data);
     service.filteredMembers = <any>data;
-    service.allMemberStatusMap['VNF1_INSTANCE_ID'].isSelected = true;
-    service.filterMembers('VNF2');
-    service.allMemberStatusMap['VNF2_INSTANCE_ID'].isSelected = true;
-    expect(service.calculateNotHideVnfMembers()).toEqual(1);
-  });
-
-  test('getHeader should return labels with array of keys', () => {
-    const headers: CustomTableColumnDefinition[] = MembersTableService.getHeaders();
-    expect(headers).toEqual([
-      {displayName: 'VNF instance name', key: ['instanceName']},
-      {displayName: 'VNF version', key: ['modelInfo', 'modelVersion']},
-      {displayName: 'VNF model name', key: ['modelInfo', 'modelName']},
-      {displayName: 'Prov Status', key: ['provStatus']},
-      {displayName: 'Service instance name', key: ['serviceInstanceName']},
-      {displayName: 'Cloud Region', key: ['lcpCloudRegionId']},
-      {displayName: 'Tenant Name', key: ['tenantName']}
-    ]);
-  });
-
-
-  test('setMembers should dispatch action only on selected members', () => {
-    const vnfGroupStoreKey: string = 'vnfGroupStoreKey';
-    const serviceId: string = 'serviceId';
-
-    jest.spyOn(store, 'dispatch');
-    service.allMemberStatusMap = MembersTableService.generateAllMembersStatus(<any>data);
-    service.allMemberStatusMap['VNF1_INSTANCE_ID'].isSelected = true;
-    service.setMembers({serviceId: serviceId, vnfGroupStoreKey: vnfGroupStoreKey});
-    expect(store.dispatch).toHaveBeenCalledTimes(1);
-    expect(store.dispatch).toHaveBeenCalledWith(createRelatedVnfMemberInstance(vnfGroupStoreKey, serviceId, service.allMemberStatusMap['VNF1_INSTANCE_ID']));
+    service.allElementsStatusMap['VNF1_INSTANCE_ID'].isSelected = true;
+    service.filterMembers('VNF2', "VNF");
+    service.allElementsStatusMap['VNF2_INSTANCE_ID'].isSelected = true;
+    expect(service.calculateNotHideRows()).toEqual(1);
   });
 
   test('generateAllMembersStatus should add to each instance isHide and isSelected and convert to map', () => {
 
-    let allMemberStatusMapMock = MembersTableService.generateAllMembersStatus(<any>data);
+    let allMemberStatusMapMock = service.generateAllMembersStatus(<any>data);
     for (const key in allMemberStatusMapMock) {
       expect(allMemberStatusMapMock[key].isSelected).toBeFalsy();
     }
   });
 
   test('changeAllCheckboxStatus', () => {
+    service.modalInformation = <any>{
+      type : 'SomeType',
+      uniqObjectField : 'instanceId'
+    };
     let data = loadMockMembers();
-    service.allMemberStatusMap = MembersTableService.generateAllMembersStatus(<any>data);
+    service.allElementsStatusMap = service.generateAllMembersStatus(<any>data);
     service.filteredMembers = <any>data;
     service.changeAllCheckboxStatus(true);
-    for (let key in service.allMemberStatusMap) {
-      expect(service.allMemberStatusMap[key].isSelected).toEqual(true);
+    for (let key in service.allElementsStatusMap) {
+      expect(service.allElementsStatusMap[key].isSelected).toEqual(true);
     }
   });
 
   test('should reset all numbers and lists', () => {
+    service.modalInformation = <any>{
+      type : 'SomeType',
+      uniqObjectField : 'instanceId'
+    };
     let data = loadMockMembers();
-    service.allMemberStatusMap = MembersTableService.generateAllMembersStatus(<any>data);
+    service.allElementsStatusMap = service.generateAllMembersStatus(<any>data);
     service.filteredMembers = <any>data;
     service.changeAllCheckboxStatus(true);
-    service.resetAll();
-    expect(service.numberOfNotHideVnfMembers).toEqual(0);
-    expect(service.numberOfSelectedAndNotHideVnfMembers).toEqual(0);
-    expect(service.numberOfSelectedVnfMembers).toEqual(0);
-    expect(service.allMemberStatusMap).toEqual({});
+    service.resetAll("instanceId");
+    expect(service.numberOfNotHideRows).toEqual(0);
+    expect(service.numberOfSelectedAndNotHideRows).toEqual(0);
+    expect(service.numberOfSelectedRows).toEqual(0);
+    expect(service.allElementsStatusMap).toEqual({});
     expect(service.filteredMembers.length).toEqual(0);
   });
 
   test('checkAllCheckboxStatus should be false if not all are selected', () => {
-    service.allMemberStatusMap = MembersTableService.generateAllMembersStatus(<any>loadMockMembers());
-    service.updateAmountsAndCheckAll();
+    service.allElementsStatusMap = service.generateAllMembersStatus(<any>loadMockMembers());
+    service.updateAmountsAndCheckAll("instanceId", <any>{});
 
     expect(service.allCheckboxAreSelected).toEqual(false);
   });
@@ -178,7 +162,7 @@ describe('MembersTableService view member count', () => {
 
   test('sortVnfMembersByName should sort list by vnf name', () => {
     let data = <any>loadMockMembers();
-    let sortedList = MembersTableService.sortVnfMembersByName(data, "instanceName");
+    let sortedList = service.sortElementsByName(data, "instanceName");
 
     expect(sortedList[0].instanceName).toEqual("VNF1_INSTANCE_NAME");
     expect(sortedList[1].instanceName).toEqual("VNF2_INSTANCE_NAME");
@@ -187,22 +171,63 @@ describe('MembersTableService view member count', () => {
     data[0] = data[1];
     data[1] = tmp;
 
-    sortedList = MembersTableService.sortVnfMembersByName(data, "instanceName");
+    sortedList = service.sortElementsByName(data, "instanceName");
 
     expect(sortedList[1].instanceName).toEqual("VNF1_INSTANCE_NAME");
     expect(sortedList[0].instanceName).toEqual("VNF2_INSTANCE_NAME");
-    sortedList = MembersTableService.sortVnfMembersByName(null, "instanceName");
+    sortedList = service.sortElementsByName(null, "instanceName");
     expect(sortedList).toEqual([]);
-    sortedList = MembersTableService.sortVnfMembersByName(data, undefined);
+    sortedList = service.sortElementsByName(data, undefined);
     expect(sortedList).toEqual([]);
   });
 
-  test('should return only vnf members not associated to any vnf group', ()=>{
-    const result: VnfMember[] = service.filterUsedVnfMembers("serviceModelId",loadMockMembers());
-    expect(result.length).toEqual(1);
-    expect(result[0].instanceId).toEqual("VNF2_INSTANCE_ID");
+  test('isRowDisabled should return false current row is selected', ()=> {
+    let isDisabled = service.isRowDisabled(true, null);
+    expect(isDisabled).toBeFalsy();
+  });
+
+
+  test('isRowDisabled should return false if there is no limit', ()=> {
+    let isDisabled = service.isRowDisabled(false, null);
+    expect(isDisabled).toBeFalsy();
+  });
+
+  test('isRowDisabled should return false if number of rows are less then limit ', ()=> {
+    service.modalInformation = <any>{
+      uniqObjectField : "instanceId"
+    };
+    service.allElementsStatusMap = service.generateAllMembersStatus(<any>data);
+    service.allElementsStatusMap['VNF1_INSTANCE_ID'].isSelected = true;
+    service.allElementsStatusMap['VNF2_INSTANCE_ID'].isSelected = true;
+
+    let isDisabled = service.isRowDisabled(false, 3);
+    expect(isDisabled).toBeFalsy();
+  });
+
+  test('isRowDisabled should return true if number of rows are equal or more then limit ', ()=> {
+    ElementsTableService.uniqObjectField = "instanceId";
+    service.allElementsStatusMap = service.generateAllMembersStatus(<any>data);
+    service.allElementsStatusMap['VNF1_INSTANCE_ID'].isSelected = true;
+    service.allElementsStatusMap['VNF2_INSTANCE_ID'].isSelected = true;
+
+    let isDisabled = service.isRowDisabled(false, 2);
+    expect(isDisabled).toBeTruthy();
+  });
+
+
+  test('isCheckAllDisabled should false true if number of rows are equal or more then limit ', ()=> {
+    service.modalInformation = <any>{
+      uniqObjectField : "instanceId"
+    };
+    service.allElementsStatusMap = service.generateAllMembersStatus(<any>data);
+    service.allElementsStatusMap['VNF1_INSTANCE_ID'].isSelected = true;
+    service.allElementsStatusMap['VNF2_INSTANCE_ID'].isSelected = true;
+
+    let isDisabled = service.isCheckAllDisabled( 2);
+    expect(isDisabled).toBeFalsy();
   });
 
+
 });
 
 
@@ -214,7 +239,7 @@ function loadMockMembers(): any[] {
       "instanceId": "VNF1_INSTANCE_ID",
       "orchStatus": null,
       "productFamilyId": null,
-      "lcpCloudRegionId": "mtn23b",
+      "lcpCloudRegionId": "hvf23b",
       "tenantId": "3e9a20a3e89e45f884e09df0cc2d2d2a",
       "tenantName": "APPC-24595-T-IST-02C",
       "modelInfo": {
@@ -242,7 +267,7 @@ function loadMockMembers(): any[] {
       "instanceId": "VNF2_INSTANCE_ID",
       "orchStatus": null,
       "productFamilyId": null,
-      "lcpCloudRegionId": "mtn23b",
+      "lcpCloudRegionId": "hvf23b",
       "tenantId": "3e9a20a3e89e45f884e09df0cc2d2d2a",
       "tenantName": "APPC-24595-T-IST-02C",
       "modelInfo": {
diff --git a/vid-webpack-master/src/app/shared/components/searchMembersModal/members-table/elements-table.service.ts b/vid-webpack-master/src/app/shared/components/searchMembersModal/members-table/elements-table.service.ts
new file mode 100644 (file)
index 0000000..bd7f397
--- /dev/null
@@ -0,0 +1,187 @@
+import {Injectable} from "@angular/core";;
+import {NgRedux} from "@angular-redux/store";
+import {AppState} from "../../../store/reducers";
+import {DataFilterPipe} from "../../../pipes/dataFilter/data-filter.pipe";
+import {ElementTableRowModel, ModalInformation} from "./element-table-row.model";
+import {Level1Instance} from "../../../models/level1Instance";
+import * as _ from 'lodash';
+import {Subject} from "rxjs";
+import {CustomTableColumnDefinition} from "./elements-table.component";
+import {
+  deleteGenericModalhelper,
+  deleteGenericModalTableDataHelper,
+  updateGenericModalhelper, updateGenericModalTableDataHelper
+} from "../../../storeUtil/utils/global/global.actions";
+
+@Injectable()
+export class ElementsTableService {
+  allElementsStatusMap : { [key:string]: ElementTableRowModel; };
+  filteredMembers :  any[];
+  allCheckboxAreSelected : boolean;
+  numberOfNotHideRows : number;
+  numberOfSelectedRows : number;
+  numberOfSelectedAndNotHideRows : number;
+  numberOfNotSelectedAndNotHideRows : number;
+  maxSelectedRow : number;
+  modalInformation : ModalInformation;
+
+  static uniqObjectField : string;
+  static changeFnTableDataTrigger : Subject<any> = new Subject();
+  static changeModalInformationDataTrigger : Subject<{modalInformation, selectedRowsIds}> = new Subject();
+  static selectRowsTrigger : Subject<string[]> = new Subject();
+
+  get staticUniqObjectField() { return ElementsTableService.uniqObjectField; }
+
+  constructor(private _store: NgRedux<AppState>, private dataFilter: DataFilterPipe){
+    this.resetAll(ElementsTableService.uniqObjectField, this.maxSelectedRow);
+  }
+
+  updateAmountsAndCheckAll = (uniqObjectField: string, modalInformation : ModalInformation, maxSelectedRow? : number) : void => {
+    this.maxSelectedRow = maxSelectedRow;
+    this.modalInformation = modalInformation;
+    ElementsTableService.uniqObjectField = uniqObjectField;
+    this.numberOfSelectedRows = this.calculateSelectedRows();
+    this.numberOfNotHideRows = this.calculateNotHideRows();
+    this.numberOfSelectedAndNotHideRows = this.calculateSelectedAndNotHide();
+    this.numberOfNotSelectedAndNotHideRows = this.calculateNotSelectedAndNotHide();
+    this.allCheckboxAreSelected = this.numberOfNotHideRows > 0 && ((this.numberOfNotHideRows === this.numberOfSelectedAndNotHideRows) ||  (this.numberOfSelectedAndNotHideRows  === this.maxSelectedRow));
+  };
+
+  resetAll = (uniqObjectField: string, maxSelectedRow? : number) : void => {
+    this.allElementsStatusMap = {};
+    this.filteredMembers = [];
+    this.numberOfSelectedRows = 0;
+    this.numberOfNotHideRows = 0;
+    this.numberOfSelectedAndNotHideRows = 0;
+    this.numberOfNotSelectedAndNotHideRows = 0;
+    this.allCheckboxAreSelected = false;
+    this.maxSelectedRow = maxSelectedRow;
+    ElementsTableService.uniqObjectField = uniqObjectField;
+  };
+
+  changeAllCheckboxStatus = (status : boolean) : void =>{
+    for(const member of this.filteredMembers){
+        this.allElementsStatusMap[member[this.modalInformation.uniqObjectField]].isSelected = status;
+        if(status){
+          this._store.dispatch(updateGenericModalhelper(`selected${this.modalInformation.type}`, this.allElementsStatusMap[member[this.modalInformation.uniqObjectField]], this.modalInformation.uniqObjectField));
+        }else {
+          this._store.dispatch(deleteGenericModalhelper(`selected${this.modalInformation.type}`,this.allElementsStatusMap[member[this.modalInformation.uniqObjectField]][this.modalInformation.uniqObjectField]));
+        }
+    }
+    this.updateAmountsAndCheckAll(ElementsTableService.uniqObjectField, this.modalInformation, this.maxSelectedRow);
+  };
+
+  changeCheckboxStatus = (vnfInstanceId : string, tableData) : void => {
+    if(_.isNil(this.allElementsStatusMap[vnfInstanceId].isSelected)){
+      this.allElementsStatusMap[vnfInstanceId].isSelected = true;
+      this._store.dispatch(updateGenericModalhelper(`selected${this.modalInformation.type}`, this.allElementsStatusMap[vnfInstanceId], this.modalInformation.uniqObjectField));
+      this._store.dispatch(updateGenericModalTableDataHelper(`${this.modalInformation.type}_TABLE_DATA`, tableData));
+    }else {
+      this.allElementsStatusMap[vnfInstanceId].isSelected = !this.allElementsStatusMap[vnfInstanceId].isSelected;
+      if(this.allElementsStatusMap[vnfInstanceId].isSelected){
+        this._store.dispatch(updateGenericModalhelper(`selected${this.modalInformation.type}`, this.allElementsStatusMap[vnfInstanceId], this.modalInformation.uniqObjectField));
+        this._store.dispatch(updateGenericModalTableDataHelper(`${this.modalInformation.type}_TABLE_DATA`, tableData));
+      }else {
+        this._store.dispatch(deleteGenericModalhelper(`selected${this.modalInformation.type}`, this.modalInformation.uniqObjectField));
+        this._store.dispatch(deleteGenericModalhelper(`selected${this.modalInformation.type}`, vnfInstanceId));
+
+        this._store.dispatch(deleteGenericModalTableDataHelper(`${this.modalInformation.type}_TABLE_DATA`));
+      }
+    }
+
+    this.updateAmountsAndCheckAll(ElementsTableService.uniqObjectField, this.modalInformation,  this.maxSelectedRow);
+  };
+
+  filterMembers(searchStr: string, type :string): void {
+    const keys: string[][] =  this.getDataKeys(type);
+    const types :string[] = this.getDataType(type);
+    this.filteredMembers = this.dataFilter.transform(_.values(this.allElementsStatusMap), searchStr || '', keys, types);
+    this.updateAmountsAndCheckAll(ElementsTableService.uniqObjectField, this.modalInformation, this.maxSelectedRow);
+  }
+
+  /**************************************************
+   generate elements data for select/ unselect rows
+   **************************************************/
+   generateAllMembersStatus(tableData : Level1Instance[]) : { [key:string]: ElementTableRowModel; }{
+    tableData.map((item) => {
+      item['isSelected'] = false
+    });
+    return _.keyBy(tableData as ElementTableRowModel[],this.staticUniqObjectField);
+  }
+
+   sortElementsByName(list : Level1Instance[], keyName : string) :Level1Instance[]{
+    if(!_.isNil(list) && !_.isNil(keyName)) {
+      return list.sort(function(itemA, itemB) { return itemA[keyName]- itemB[keyName];})
+    }
+    return [];
+  }
+
+  /********************************
+   table columns headers and key's
+   ********************************/
+  static getHeaders(type: string) : CustomTableColumnDefinition[] {
+    return  [
+      {displayName: `${type} instance name`, key: ['instanceName']},
+      {displayName: `${type} version`, key: ['modelInfo', 'modelVersion']},
+      {displayName: `${type} model name`, key: ['modelInfo', 'modelName']},
+      {displayName: 'Prov Status', key: ['provStatus']},
+      {displayName: 'Service instance name', key: ['serviceInstanceName']},
+      {displayName: 'Cloud Region', key: ['lcpCloudRegionId']},
+      {displayName: 'Tenant Name', key: ['tenantName']}
+    ];
+  }
+
+  getDataKeys(type: string): string[][]{
+    const headers = (!_.isNil(this.modalInformation) && !_.isNil(this.modalInformation.tableHeaders)) ? this.modalInformation.tableHeaders : ElementsTableService.getHeaders(type);
+    return headers.map((header)=> header.key).concat([[ElementsTableService.uniqObjectField]],[['serviceInstanceId']]);
+  }
+
+  getDataType(type: string): string[]{
+    const headers = (!_.isNil(this.modalInformation) && !_.isNil(this.modalInformation.tableHeaders)) ? this.modalInformation.tableHeaders : ElementsTableService.getHeaders(type);
+    return headers.map((header)=> header.type);
+
+  }
+
+  /*************************************************************************************
+   calculate the number of selected vnf members - include not visible and visible rows
+   @allElementsStatusMap: current vnf member status
+   *************************************************************************************/
+  calculateSelectedRows() : number {
+    const flatObject = _.values(this.allElementsStatusMap);
+    return  _.filter(flatObject, (item) => { if (item.isSelected) return item }).length;
+  }
+
+  /************************************************
+   calculate the number of display vnf members
+   @allElementsStatusMap: current vnf member status
+   ************************************************/
+  calculateNotHideRows() : number {
+    return  this.filteredMembers ? this.filteredMembers.length : 0;
+  }
+
+  /************************************************
+   calculate the number of display vnf members
+   @allElementsStatusMap: current vnf member status
+   ************************************************/
+  calculateSelectedAndNotHide() : number {
+    return  _.filter(this.filteredMembers, (item) => { if ( this.allElementsStatusMap[item[ElementsTableService.uniqObjectField]].isSelected) return item }).length;
+  }
+
+  calculateNotSelectedAndNotHide() : number {
+    return  _.filter(this.filteredMembers, (item) => { if ( !this.allElementsStatusMap[item[ElementsTableService.uniqObjectField]].isSelected) return item }).length;
+  }
+
+
+  isRowDisabled(currentRowIsSelected : boolean, maxSelectRow?: number) : boolean {
+    return _.isNil(maxSelectRow) || currentRowIsSelected || maxSelectRow === 1 ? false : maxSelectRow <= this.calculateSelectedRows();
+  }
+
+  isCheckAllDisabled(maxSelectRow?: number) : boolean{
+    if(_.isNil(maxSelectRow)) return false;
+    else {
+      return this.numberOfNotSelectedAndNotHideRows  > maxSelectRow;
+    }
+  }
+
+
+}
diff --git a/vid-webpack-master/src/app/shared/components/searchMembersModal/members-table/member-table-row.model.ts b/vid-webpack-master/src/app/shared/components/searchMembersModal/members-table/member-table-row.model.ts
deleted file mode 100644 (file)
index c5f1a7a..0000000
+++ /dev/null
@@ -1,6 +0,0 @@
-import {VnfMember} from "../../../models/VnfMember";
-
-export class MemberTableRowModel  extends VnfMember{
-  isSelected : boolean = false;
-}
-
diff --git a/vid-webpack-master/src/app/shared/components/searchMembersModal/members-table/members-table.component.html b/vid-webpack-master/src/app/shared/components/searchMembersModal/members-table/members-table.component.html
deleted file mode 100644 (file)
index 3a29ed8..0000000
+++ /dev/null
@@ -1,75 +0,0 @@
-<div class="table-header">
-  <div class="left-header">
-    <span class="title-header">{{description}}</span>
-    <div class="sub-title-header">
-      <span class="vnf-match-your-criteria" class="total" [attr.data-tests-id]="'total-amount'" style="margin-right: 5px;"><span
-        [attr.data-tests-id]="'numberOfNotHideVnfMembers'">{{membersTableService.numberOfNotHideVnfMembers}}</span> VNFs match your criteria</span>
-      <span class="vnf-selected" class="total" [attr.data-tests-id]="'total-selected'"><span
-        [attr.data-tests-id]="'numberOfSelectedVnfMembers'">{{membersTableService.numberOfSelectedVnfMembers}}</span> VNF{{membersTableService.numberOfSelectedVnfMembers>1?'s':'' }} selected</span>
-    </div>
-  </div>
-
-  <div class="search-container">
-    <sdc-filter-bar
-      [placeHolder]="'Search...'"
-      [debounceTime]="250"
-      [testId]="'vnf-members-search'"
-      (valueChange)="search($event)">
-    </sdc-filter-bar>
-  </div>
-</div>
-<table id="member-table" class="table table-bordered" *ngIf="data?.length > 0">
-  <thead class="thead-dark">
-  <tr>
-    <th class="allCheckboxAreSelected" style="position: relative;">
-      <sdc-checkbox
-        [(checked)]="membersTableService.allCheckboxAreSelected"
-        [testId]="'all-checkbox-selected'"
-        (checkedChange)="changeAllCheckboxStatus($event)"
-      ></sdc-checkbox>
-    </th>
-    <th class="header-title" *ngFor="let header of headers">{{header.displayName}}</th>
-  </tr>
-  </thead>
-  <tbody>
-  <tr class="member-table-row" *ngFor="let vnf of membersTableService.filteredMembers">
-    <td class="sdcCheckboxMember" style="position: relative;" [attr.data-tests-id]="vnf?.instanceId">
-      <sdc-checkbox
-        [checked]="membersTableService.allMemberStatusMap[vnf.instanceId]?.isSelected"
-        [testId]="vnf?.instanceId"
-        (checkedChange)="changeCheckboxStatus(vnf.instanceId)"
-      ></sdc-checkbox></td>
-    <td id="vnfName">
-      <custom-ellipsis [id]="vnf?.instanceName" [value]="vnf?.instanceName"
-                       [hightlight]="filterValue"></custom-ellipsis>
-      <custom-ellipsis class="second-line" [id]="vnf?.instanceId" [value]="'UUID: '+ vnf?.instanceId"
-                       [hightlight]="filterValue"></custom-ellipsis>
-    </td>
-    <td id="version">
-      <custom-ellipsis [id]="vnf?.modelInfo?.modelVersion" [value]="vnf?.modelInfo?.modelVersion" [hightlight]="filterValue"></custom-ellipsis>
-    </td>
-    <td id="modelName">
-      <custom-ellipsis [id]="vnf?.modelInfo?.modelName" [value]="vnf?.modelInfo?.modelName" [hightlight]="filterValue"></custom-ellipsis>
-    </td>
-    <td id="provStatus">
-      <custom-ellipsis [id]="vnf?.provStatus" [value]="vnf?.provStatus" [hightlight]="filterValue"></custom-ellipsis>
-    </td>
-    <td id="serviceInstance">
-      <custom-ellipsis [id]="vnf?.serviceInstanceName" [value]="vnf?.serviceInstanceName"
-                       [hightlight]="filterValue"></custom-ellipsis>
-      <custom-ellipsis class="second-line" [id]="vnf?.serviceInstanceId" [value]="'UUID: '+ vnf?.serviceInstanceId"
-                       [hightlight]="filterValue"></custom-ellipsis>
-    </td>
-    <td id="cloudRegion">
-      <custom-ellipsis [id]="vnf?.lcpCloudRegionId" [value]="vnf?.lcpCloudRegionId" [hightlight]="filterValue"></custom-ellipsis>
-    </td>
-    <td id="tenantName">
-      <custom-ellipsis [id]="vnf?.tenantName" [value]="vnf?.tenantName" [hightlight]="filterValue"></custom-ellipsis>
-    </td>
-  </tr>
-
-  </tbody>
-</table>
-<div class="no-result" *ngIf="data?.length == 0">No VNFs were found that can belong to this group.</div>
-
-
index 3be9752..2fa90b8 100644 (file)
 
 #member-table {
   border: 1px solid #D2D2D2;
+  display: flex;
+  flex-flow: column;
+  max-height: calc(100vh - 135px);
+  overflow-y: auto;
   thead {
     background: #F8F8F8;
-    th.allCheckboxAreSelected {
-      vertical-align: middle !important;
-      width: 48px;
-      max-width: 48px;
-      min-width: 48px;
-      height: 48px;
-    }
-    th.header-title {
-      font-family: OpenSans-SemiBold;
-      vertical-align: middle !important;
-      height: 48px;
-      font-size: 12px;
+    tr {
+      table-layout: fixed;
+      display: table;
+      width: 100%;
+      th.allCheckboxAreSelected {
+        vertical-align: middle !important;
+        width: 48px;
+        max-width: 48px;
+        min-width: 48px;
+        height: 48px;
+      }
+      th.header-title {
+        font-family: OpenSans-SemiBold;
+        vertical-align: middle !important;
+        height: 48px;
+        font-size: 12px;
+      }
     }
   }
   tbody {
-    td{
-      text-align: center;
-      height: 60px;
-      padding-top: 0;
-      padding-bottom: 0;
-      max-height: 60px;
-      vertical-align: middle;
-      .second-line {
-        font-size: 12px;
+    tr {
+      table-layout: fixed;
+      display: table;
+      width: 100%;
+      td{
+        text-align: center;
+        height: 60px;
+        padding-top: 0;
+        padding-bottom: 0;
+        max-height: 60px;
+        vertical-align: middle;
+        .second-line {
+          font-size: 12px;
+        }
       }
     }
   }
   align-items: center;
   justify-content: center;
 }
+
+td.sdcCheckboxMember {
+  vertical-align: middle !important;
+  width: 48px !important;
+  max-width: 48px !important;
+  min-width: 48px !important;
+  height: 48px !important;
+}
+
+
diff --git a/vid-webpack-master/src/app/shared/components/searchMembersModal/members-table/members-table.component.ts b/vid-webpack-master/src/app/shared/components/searchMembersModal/members-table/members-table.component.ts
deleted file mode 100644 (file)
index 9736563..0000000
+++ /dev/null
@@ -1,57 +0,0 @@
-import {Component, Input, OnChanges, Output, SimpleChanges, EventEmitter} from '@angular/core';
-import {VnfMember} from "../../../models/VnfMember";
-import {MembersTableService} from "./members-table.service";
-import * as _ from 'lodash';
-
-export class CustomTableColumnDefinition {
-  public displayName = '';
-  public key : any = '';
-  public type? = 'text';
-  public filter? = '';
-}
-
-@Component({
-  selector: 'app-members-table',
-  templateUrl: './members-table.component.html',
-  styleUrls: ['./members-table.component.scss']
-})
-
-export class MembersTableComponent implements OnChanges{
-  filterValue: string = null;
-  allMemberStatusMap = null;
-  membersTableService : MembersTableService;
-  headers: CustomTableColumnDefinition[] = MembersTableService.getHeaders();
-  @Input() data: VnfMember[];
-  @Input() description: string;
-  @Output() selectedMembersAmountChange : EventEmitter<number> = new EventEmitter();
-  constructor(private _membersTableService : MembersTableService){
-    this.membersTableService = this._membersTableService;
-  }
-
-  ngOnChanges(changes: SimpleChanges): void {
-    if(_.isNil(this.data)){
-      this._membersTableService.resetAll();
-    }else {
-      this._membersTableService.allMemberStatusMap = MembersTableService.generateAllMembersStatus(this.data);
-      this._membersTableService.filteredMembers = MembersTableService.sortVnfMembersByName(this.data, "instanceName");
-      this._membersTableService.updateAmountsAndCheckAll();
-    }
-  }
-  
-  search(searchStr: string): void {
-    this.filterValue = searchStr;
-    this._membersTableService.filterMembers(this.filterValue);
-  }
-
-  changeAllCheckboxStatus(status: boolean) : void {
-    this._membersTableService.changeAllCheckboxStatus(status);
-    this.selectedMembersAmountChange.emit(this._membersTableService.numberOfSelectedVnfMembers);
-  }
-
-
-  changeCheckboxStatus(vnfInstanceId: string) : void {
-    this._membersTableService.changeCheckboxStatus(vnfInstanceId);
-    this.selectedMembersAmountChange.emit(this._membersTableService.numberOfSelectedVnfMembers);
-  }
-
-}
diff --git a/vid-webpack-master/src/app/shared/components/searchMembersModal/members-table/members-table.service.ts b/vid-webpack-master/src/app/shared/components/searchMembersModal/members-table/members-table.service.ts
deleted file mode 100644 (file)
index 5b9cd39..0000000
+++ /dev/null
@@ -1,153 +0,0 @@
-import {Injectable} from "@angular/core";
-import {VnfMember} from "../../../models/VnfMember";
-import {CustomTableColumnDefinition} from "./members-table.component";
-import {NgRedux} from "@angular-redux/store";
-import {AppState} from "../../../store/reducers";
-import {createRelatedVnfMemberInstance} from "../../../storeUtil/utils/relatedVnfMember/relatedVnfMember.actions";
-import * as _ from 'lodash';
-import {DataFilterPipe} from "../../../pipes/dataFilter/data-filter.pipe";
-import {MemberTableRowModel} from "./member-table-row.model";
-
-@Injectable()
-export class MembersTableService {
-  allMemberStatusMap : { [key:string]: MemberTableRowModel; };
-  filteredMembers :  VnfMember[];
-  allCheckboxAreSelected : boolean;
-  numberOfNotHideVnfMembers : number;
-  numberOfSelectedVnfMembers : number;
-  numberOfSelectedAndNotHideVnfMembers : number;
-
-  constructor(private _store: NgRedux<AppState>, private dataFilter: DataFilterPipe){
-    this.resetAll();
-  }
-
-   filterUsedVnfMembers = (serviceModelId: string, result: VnfMember[]): VnfMember[] => {
-    const allMembersMap =  _.keyBy(result as VnfMember[], 'instanceId');
-    const vnfGroupsData = this._store.getState().service.serviceInstance[serviceModelId].vnfGroups;
-    const vnfMembersArr = _.flatMap(vnfGroupsData).map((vnfGroup) =>vnfGroup.vnfs );
-    for( let vnf of vnfMembersArr ){
-      for(let member in vnf){
-        delete allMembersMap[member];
-      }
-    }
-    return _.flatMap(allMembersMap);
-  };
-
-  updateAmountsAndCheckAll = () : void => {
-    this.numberOfSelectedVnfMembers = this.calculateSelectedVnfMembers();
-    this.numberOfNotHideVnfMembers = this.calculateNotHideVnfMembers();
-    this.numberOfSelectedAndNotHideVnfMembers = this.calculateSelectedAndNotHide();
-    this.allCheckboxAreSelected = this.numberOfNotHideVnfMembers > 0 && this.numberOfNotHideVnfMembers === this.numberOfSelectedAndNotHideVnfMembers;
-  };
-
-  resetAll = () : void => {
-    this.allMemberStatusMap = {};
-    this.filteredMembers = [];
-    this.numberOfSelectedVnfMembers = 0;
-    this.numberOfNotHideVnfMembers = 0;
-    this.numberOfSelectedAndNotHideVnfMembers = 0;
-    this.allCheckboxAreSelected = false;
-  };
-
-  changeAllCheckboxStatus = (status : boolean) : void =>{
-    for(const member of this.filteredMembers){
-        this.allMemberStatusMap[member.instanceId].isSelected = status;
-      }
-    this.updateAmountsAndCheckAll();
-  };
-
-  changeCheckboxStatus = (vnfInstanceId : string ) : void =>{
-    this.allMemberStatusMap[vnfInstanceId].isSelected = !this.allMemberStatusMap[vnfInstanceId].isSelected;
-    this.updateAmountsAndCheckAll();
-  };
-
-  /************************************************
-   iterate over all current vnf members:
-   1) if vnf member is selected then update REDUX store
-   2) if vnf member is not selected then delete member
-   @allMemberStatusMap: current vnf member status
-   @vnfGroupStoreKey: vnf group store key
-   @serviceId: service model id
-   ************************************************/
-  setMembers = (data : {serviceId : string, vnfGroupStoreKey : string}) : void =>{
-    let tmpMembers = this.allMemberStatusMap;
-    for(let key in tmpMembers){
-      if(tmpMembers[key].isSelected){
-        this._store.dispatch(createRelatedVnfMemberInstance( data.vnfGroupStoreKey, data.serviceId, tmpMembers[key]));
-      }
-    }
-  };
-
-  filterMembers(searchStr: string): void {
-    const keys: string[][] =  MembersTableService.getDataKeys();
-    this.filteredMembers = this.dataFilter.transform(_.values(this.allMemberStatusMap), searchStr || '', keys);
-    this.updateAmountsAndCheckAll();
-  }
-
-  /************************************
-   generate  vnf member data for select/ unselect rows
-   ************************************/
-  static generateAllMembersStatus(tableData : VnfMember[]) : { [key:string]: MemberTableRowModel; }{
-
-    tableData.map((vnf) => {
-      vnf['isSelected'] = false
-    });
-    return _.keyBy(tableData as MemberTableRowModel[], 'instanceId');
-  }
-
-
-  static sortVnfMembersByName(list : VnfMember[], keyName : string) :VnfMember[]{
-    if(!_.isNil(list) && !_.isNil(keyName)) {
-      return list.sort(function(itemA, itemB) { return itemA[keyName]- itemB[keyName];})
-    }
-    return [];
-
-  }
-
-  /********************************
-   table columns headers and key's
-   ********************************/
-  static getHeaders() : CustomTableColumnDefinition[] {
-    return  [
-      {displayName: 'VNF instance name', key: ['instanceName']},
-      {displayName: 'VNF version', key: ['modelInfo', 'modelVersion']},
-      {displayName: 'VNF model name', key: ['modelInfo', 'modelName']},
-      {displayName: 'Prov Status', key: ['provStatus']},
-      {displayName: 'Service instance name', key: ['serviceInstanceName']},
-      {displayName: 'Cloud Region', key: ['lcpCloudRegionId']},
-      {displayName: 'Tenant Name', key: ['tenantName']}
-    ];
-  }
-
-  static getDataKeys(): string[][]{
-    const headers = MembersTableService.getHeaders();
-    return headers.map((header)=> header.key).concat([['instanceId']],[['serviceInstanceId']]);
-  }
-
-  /*************************************************************************************
-   calculate the number of selected vnf members - include not visible and visible rows
-   @allMemberStatusMap: current vnf member status
-   *************************************************************************************/
-  calculateSelectedVnfMembers() : number {
-    const flatObject = _.values(this.allMemberStatusMap);
-    return  _.filter(flatObject, (item) => { if (item.isSelected) return item }).length;
-  }
-
-  /************************************************
-   calculate the number of display vnf members
-   @allMemberStatusMap: current vnf member status
-   ************************************************/
-  calculateNotHideVnfMembers() : number {
-    return this.filteredMembers.length;
-  }
-
-  /************************************************
-   calculate the number of display vnf members
-   @allMemberStatusMap: current vnf member status
-   ************************************************/
-  calculateSelectedAndNotHide() : number {
-    return  _.filter(this.filteredMembers, (item) => { if ( this.allMemberStatusMap[item.instanceId].isSelected) return item }).length;
-  }
-
-
-}
diff --git a/vid-webpack-master/src/app/shared/components/searchMembersModal/search-elements-modal.component.html b/vid-webpack-master/src/app/shared/components/searchMembersModal/search-elements-modal.component.html
new file mode 100644 (file)
index 0000000..7e79ca6
--- /dev/null
@@ -0,0 +1,64 @@
+<div class="modal-search-member-content">
+  <div class="header">
+    <vid-svg-icon
+      [attr.data-tests-id]="'cancelBtn'"
+      (click)="backAction()"
+      class="navigation-arrow-back"
+      [mode]="'primary'"
+      [size]="'large'"
+      [name]="'navigation-arrow-back'"
+      [clickable]="true"
+      [fill]="'#FFFFFF'"
+      [widthViewBox]="'24'"
+      [heightViewBox]="'24'">
+    </vid-svg-icon>
+
+    <span class="title">
+      {{modalInformation.title}}
+    </span>
+    <button type="submit" data-tests-id="setMembersBtn" [disabled]="disableSetElements" (click)="doneAction()" class="sdc-button sdc-button__primary">{{modalInformation?.topButton?.text}}</button>
+  </div>
+  <div class="content-wrapper">
+    <div class="sidebar-left">
+      <div class="search-criteria-wrapper">
+        <div class="search-criteria-title">SEARCH CRITERIA</div>
+         <div class="search-item" *ngFor="let searchFieldItem of modalInformation?.searchFields">
+           <div>
+             <div><span class="label-item" >{{searchFieldItem.title}}</span></div>
+             <div><span attr.data-tests-id="{{searchFieldItem.dataTestId}}" class="text-item">{{searchFieldItem.value}}</span></div>
+           </div>
+         </div>
+        <div class="search-item" *ngFor="let criteria of modalInformation?.criteria">
+          <div *ngIf="criteria.type === 'DROPDOWN'">
+            <div><span class="label-item"  [ngClass]="{'required': criteria.isRequired}">{{criteria.label}}</span></div>
+            <div>
+              <select class="form-control input-text select-criteria"
+                      id="{{criteria?.dataTestId}}-select"
+                      [attr.data-tests-id]="criteria?.dataTestId"
+                      (change)="criteria.onChange(criteria, $event.target.value)">
+
+                <option *ngFor="let option of criteria.onInit() | async"
+                        class="{{option}} {{option}}-Option"
+                        [value]="option">{{option}}
+                </option>
+              </select>
+            </div>
+          </div>
+        </div>
+        <div class="search-button" *ngIf="modalInformation.criteria && modalInformation.criteria.length > 0">
+          <button type="submit"
+                  data-tests-id="searchByNetworkRole"
+                  [disabled]="disableSearchByNetworkRole"
+                  (click)="searchByCriteriaAction()"
+                  class="sdc-button sdc-button__primary">Search...</button>
+        </div>
+      </div>
+    </div>
+    <div class="sidebar-right">
+      <app-members-table
+        [data]="elementsData"
+        [modalInformation]="modalInformation"
+        (selectedMembersAmountChange)="selectedMembersAmountChange($event)"></app-members-table>
+    </div>
+  </div>
+</div>
   }
 
   .content-wrapper {
-    display: flex;
 
     .sidebar-left {
-      flex-basis: 285px;
+      width: 20%;
       border-right: 1px solid #D2D2D2;
       height: calc(100vh - 60px);
+      float: left;
 
       .search-criteria-wrapper{
 
     }
 
     .sidebar-right {
-      flex: 1;
-      margin: 80px 50px;
+      padding: 15px 30px 0px 30px;
+      width: 80%;
+      float: right;
     }
   }
 }
+
+select.select-criteria {
+    webkit-appearance: none;
+    background: url('../../../../assets/img/chevron.svg') 0 0 no-repeat;
+    background-size: 24px;
+    background-position-x: right;
+    background-position-y: center;
+    font-family: OpenSans-Italic;
+    font-size: 14px;
+    height: 38px;
+    -webkit-appearance: none;
+    -moz-appearance: none;
+}
+
+.required:after {
+  content: " * ";
+  color: #cf2a2a;
+  margin-left: 3px;
+}
+
+.search-button {
+  display: flex;
+  justify-content: space-around;
+}
+
diff --git a/vid-webpack-master/src/app/shared/components/searchMembersModal/search-elements-modal.component.ts b/vid-webpack-master/src/app/shared/components/searchMembersModal/search-elements-modal.component.ts
new file mode 100644 (file)
index 0000000..211f593
--- /dev/null
@@ -0,0 +1,91 @@
+import {Component, Input, OnDestroy, OnInit, ViewChild} from '@angular/core';
+import {DialogComponent, DialogService} from "ng2-bootstrap-modal";
+import {IframeService} from "../../utils/iframe.service";
+import {AaiService} from "../../services/aaiService/aai.service";
+import {VnfGroupModel} from "../../models/vnfGroupModel";
+import {ElementsTableService} from "./members-table/elements-table.service";
+import {Level1Instance} from "../../models/level1Instance";
+import {ModalInformation} from "./members-table/element-table-row.model";
+import {NgRedux} from "@angular-redux/store";
+import {AppState} from "../../store/reducers";
+import {FormGroup} from "@angular/forms";
+import * as _ from "lodash";
+import {clearAllGenericModalhelper} from "../../storeUtil/utils/global/global.actions";
+@Component({
+  selector: 'search-members-modal',
+  templateUrl: 'search-elements-modal.component.html',
+  styleUrls: ['search-elements-modal.component.scss']
+})
+
+export class SearchElementsModalComponent extends DialogComponent<{ modalInformation: ModalInformation }, boolean> implements OnInit, OnDestroy {
+  modalInformation: ModalInformation;
+  parentElementClassName = 'content';
+  elementsData: Level1Instance[];
+  vnfGroupModel: VnfGroupModel;
+  disableSetElements: boolean = true;
+  disableSearchByNetworkRole: boolean = false;
+  dynamicFormGroup: FormGroup = null;
+
+  constructor(dialogService: DialogService,
+              private _iframeService: IframeService,
+              private _aaiService: AaiService,
+              private _membersTableService: ElementsTableService,
+              private _store: NgRedux<AppState>) {
+    super(dialogService);
+    ElementsTableService.changeFnTableDataTrigger.subscribe((triggerRes) => {
+      this._membersTableService.resetAll(this.modalInformation.uniqObjectField, this.modalInformation.maxSelectRow);
+      this.elementsData = triggerRes;
+    });
+
+    ElementsTableService.changeModalInformationDataTrigger.subscribe(({modalInformation, selectedRowsIds}) => {
+      this.disableSetElements = true;
+      this.modalInformation = modalInformation;
+      this.ngOnInit(selectedRowsIds);
+    })
+  }
+
+  @ViewChild('ElementsTableComponent') membersTable;
+
+  ngOnInit(selectedRowsIds?: string[]): void {
+    const genericModalHelper = this._store.getState().global.genericModalHelper;
+    if(!_.isNil(genericModalHelper) && !_.isNil(genericModalHelper[`${this.modalInformation.type}_TABLE_DATA`]) && !_.isNil(genericModalHelper[`selected${this.modalInformation.type}`])){
+      this.elementsData = this._store.getState().global.genericModalHelper[`${this.modalInformation.type}_TABLE_DATA`];
+    } else {
+      this.modalInformation.getElements()
+        .subscribe((result) => {
+          this.elementsData = result;
+        });
+    }
+  };
+
+  closeDialog(): void {
+    this._iframeService.removeFullScreen();
+    this._iframeService.removeClassCloseModal(this.parentElementClassName);
+    this.dialogService.removeDialog(this);
+    setTimeout(() => {
+      window.parent.postMessage("closeIframe", "*");
+    }, 15);
+  }
+
+  selectedMembersAmountChange(selectedMembersAmount: number): void {
+    this.disableSetElements = selectedMembersAmount == 0;
+  }
+
+  doneAction(): void {
+    this.modalInformation.topButton.action.call(this, this);
+  }
+
+  searchByCriteriaAction(): void {
+    this.modalInformation.searchButton.action.call(this, this);
+  }
+
+  backAction(): void {
+    if (this.modalInformation.backAction) {
+      this.modalInformation.backAction.call(this, this);
+    } else {
+      this.closeDialog();
+    }
+  }
+}
+
+
diff --git a/vid-webpack-master/src/app/shared/components/searchMembersModal/search-members-modal.component.html b/vid-webpack-master/src/app/shared/components/searchMembersModal/search-members-modal.component.html
deleted file mode 100644 (file)
index 899bc98..0000000
+++ /dev/null
@@ -1,35 +0,0 @@
-<div class="modal-search-member-content">
-  <div class="header">
-    <vid-svg-icon
-      [attr.data-tests-id]="'cancelBtn'"
-      (click)="closeDialog()"
-      class="navigation-arrow-back"
-      [mode]="'primary'"
-      [size]="'large'"
-      [name]="'navigation-arrow-back'"
-      [clickable]="true"
-      [fill]="'#FFFFFF'"
-      [widthViewBox]="'24'"
-      [heightViewBox]="'24'">
-    </vid-svg-icon>
-
-    <span class="title">
-      {{title}}
-    </span>
-    <button type="submit" data-tests-id="setMembersBtn" [disabled]="disableSetMembers" (click)="setMembers()" class="sdc-button sdc-button__primary">SET MEMBERS</button>
-  </div>
-  <div class="content-wrapper">
-    <div class="sidebar-left">
-      <div class="search-criteria-wrapper">
-        <div class="search-criteria-title">SEARCH CRITERIA</div>
-         <div class="search-item" *ngFor="let searchFieldItem of searchFields">
-           <span class="label-item">{{searchFieldItem.title}}</span>
-           <span attr.data-tests-id="{{searchFieldItem.dataTestId}}" class="text-item">{{searchFieldItem.value}}</span>
-         </div>
-      </div>
-    </div>
-    <div class="sidebar-right">
-      <app-members-table [data]="membersData" [description]="description" (selectedMembersAmountChange)="selectedMembersAmountChange($event)"></app-members-table>
-    </div>
-  </div>
-</div>
diff --git a/vid-webpack-master/src/app/shared/components/searchMembersModal/search-members-modal.component.ts b/vid-webpack-master/src/app/shared/components/searchMembersModal/search-members-modal.component.ts
deleted file mode 100644 (file)
index 9c65d22..0000000
+++ /dev/null
@@ -1,82 +0,0 @@
-import {Component, OnDestroy, OnInit, ViewChild} from '@angular/core';
-import {DialogComponent, DialogService} from "ng2-bootstrap-modal";
-import {IframeService} from "../../utils/iframe.service";
-import {AaiService} from "../../services/aaiService/aai.service";
-import {VnfMember} from "../../models/VnfMember";
-import {VnfGroupModel} from "../../models/vnfGroupModel";
-import {MembersTableService} from "./members-table/members-table.service";
-import {VnfGroupInstance} from "../../models/vnfGroupInstance";
-
-
-export interface PopupModel {
-  title: string;
-  serviceModelId : string;
-  searchFields: ISearchField[];
-  description : string;
-  subscriberId: string,
-  serviceType: string,
-  node: VnfGroupInstance,
-  vnfGroupModel: VnfGroupModel;
-
-}
-
-export interface ISearchField {
-  title: string;
-  value: any;
-  dataTestId: string;
-}
-
-@Component({
-  selector : 'search-members-modal',
-  templateUrl : 'search-members-modal.component.html',
-  styleUrls : ['search-members-modal.component.scss']
-})
-
-export class SearchMembersModalComponent extends DialogComponent<PopupModel, boolean> implements OnInit, OnDestroy {
-  title: string;
-  serviceModelId : string;
-  parentElementClassName = 'content';
-  membersData: VnfMember[];
-  description : string;
-  searchFields: ISearchField[];
-  vnfGroupModel: VnfGroupModel;
-  subscriberId: string;
-  serviceType: string;
-  node: VnfGroupInstance;
-  disableSetMembers: boolean = true;
-    constructor(dialogService:  DialogService ,
-              private _iframeService : IframeService,
-              private _aaiService : AaiService,
-              private _membersTableService: MembersTableService){
-    super(dialogService);
-
-  }
-  @ViewChild('MembersTableComponent') membersTable;
-
-   ngOnInit() : void{
-    this._aaiService.getOptionalGroupMembers(this.serviceModelId, this.subscriberId, this.serviceType, (Object.values(this.vnfGroupModel.members))[0].sourceModelInvariant, this.vnfGroupModel.properties.type, this.vnfGroupModel.properties.role)
-      .subscribe((result: VnfMember[])=>{
-        this.membersData = this._membersTableService.filterUsedVnfMembers(this.serviceModelId, result);
-      });
-    };
-
-
-  closeDialog() : void{
-    this._iframeService.removeClassCloseModal(this.parentElementClassName);
-    this.dialogService.removeDialog(this);
-    setTimeout(() => {
-      window.parent.postMessage("closeIframe", "*");
-    }, 15);
-  }
-  selectedMembersAmountChange(selectedMembersAmount: number) : void {
-    this.disableSetMembers = selectedMembersAmount==0;
-  }
-
-
-  setMembers() : void {
-    this._membersTableService.setMembers({serviceId : this.serviceModelId, vnfGroupStoreKey : this.node.vnfGroupStoreKey});
-    this.closeDialog();
-  }
-}
-
-
index 392f8dd..6eda403 100644 (file)
@@ -7,5 +7,4 @@ export class VnfMember extends Level1Instance{
   constructor(){
     super();
   }
-
 }
diff --git a/vid-webpack-master/src/app/shared/models/collectionResourceInstance.ts b/vid-webpack-master/src/app/shared/models/collectionResourceInstance.ts
new file mode 100644 (file)
index 0000000..28ebb5d
--- /dev/null
@@ -0,0 +1,11 @@
+import {Level1Instance} from "./level1Instance";
+
+export class CollectionResourceInstance extends Level1Instance{
+  collectionResourceStoreKey : string;
+  statusMessage?: string;
+
+  constructor() {
+    super();
+    this.collectionResourceStoreKey = null;
+  }
+}
diff --git a/vid-webpack-master/src/app/shared/models/collectionResourceModel.ts b/vid-webpack-master/src/app/shared/models/collectionResourceModel.ts
new file mode 100644 (file)
index 0000000..259e186
--- /dev/null
@@ -0,0 +1,28 @@
+import {Level1Model, Level1ModelProperties, Level1ModelResponseInterface} from "./nodeModel";
+import {NcfModelInterface} from "./ncfModel";
+
+export interface CollectionResourceProperties extends Level1ModelProperties{
+}
+
+export interface CollectionResourceModelResponseInterface extends Level1ModelResponseInterface{
+  properties: CollectionResourceProperties;
+  networksCollection: { [key: string]: NcfModelInterface };
+}
+
+export class CollectionResourceModel extends Level1Model{
+
+  roles: string[] = [];
+  properties: CollectionResourceProperties;
+  networksCollection: { [key: string]: NcfModelInterface };
+
+  constructor(collectionResourceJson?: CollectionResourceModelResponseInterface){
+    super(collectionResourceJson);
+    if(collectionResourceJson && collectionResourceJson.properties){
+      this.properties = collectionResourceJson.properties;
+    }
+    if (collectionResourceJson && collectionResourceJson.networksCollection) {
+      this.networksCollection = collectionResourceJson.networksCollection;
+    }
+  }
+
+}
diff --git a/vid-webpack-master/src/app/shared/models/collectionResourceTreeNode.ts b/vid-webpack-master/src/app/shared/models/collectionResourceTreeNode.ts
new file mode 100644 (file)
index 0000000..e63d630
--- /dev/null
@@ -0,0 +1,21 @@
+import {TreeNodeModel} from "./treeNodeModel";
+import {Level1Model} from "./nodeModel";
+import {CollectionResourceInstance} from "./collectionResourceInstance";
+
+export class CollectionResourceTreeNode extends TreeNodeModel {
+  collectionResourceStoreKey : string;
+  typeName: string;
+  menuActions: { [p: string]: { method: Function; visible: Function; enable: Function } };
+  isFailed: boolean;
+  statusMessage?: string;
+
+  constructor(instance: CollectionResourceInstance, collectionResourceModel: Level1Model, collectionResourceStoreKey : string){
+    super(instance, collectionResourceModel);
+    this.name = instance.instanceName? instance.instanceName: !collectionResourceModel.isEcompGeneratedNaming ? collectionResourceModel.modelCustomizationName : '&lt;Automatically Assigned&gt;';
+    this.modelName = collectionResourceModel.modelCustomizationName;
+    this.type = collectionResourceModel.type;
+    this.isEcompGeneratedNaming = collectionResourceModel.isEcompGeneratedNaming;
+    this.collectionResourceStoreKey = collectionResourceStoreKey;
+  }
+}
+
diff --git a/vid-webpack-master/src/app/shared/models/firstLevelTreeNode.ts b/vid-webpack-master/src/app/shared/models/firstLevelTreeNode.ts
new file mode 100644 (file)
index 0000000..5c0e46c
--- /dev/null
@@ -0,0 +1,20 @@
+import {TreeNodeModel} from "./treeNodeModel";
+import {NetworkInstance} from "./networkInstance";
+import {Level1Model} from "./nodeModel";
+
+export class FirstLevelTreeNode extends TreeNodeModel {
+  networkStoreKey: string;
+  typeName: string;
+  menuActions: { [p: string]: { method: Function; visible: Function; enable: Function } };
+  isFailed: boolean;
+  statusMessage?: string;
+
+  constructor(instance: NetworkInstance, networkModel: Level1Model, networkStoreKey: string) {
+    super(instance, networkModel);
+    this.name = instance.instanceName ? instance.instanceName : !networkModel.isEcompGeneratedNaming ? networkModel.modelCustomizationName : '&lt;Automatically Assigned&gt;';
+    this.modelName = networkModel.modelCustomizationName;
+    this.type = networkModel.type;
+    this.isEcompGeneratedNaming = networkModel.isEcompGeneratedNaming;
+    this.networkStoreKey = networkStoreKey;
+  }
+}
index b7925b8..6f73910 100644 (file)
@@ -12,6 +12,9 @@ export class Level1Instance extends ChildNodeInstance{
   lineOfBusiness: string;
   rollbackOnFailure: string;
   originalName: string;
+  region: string;
+  routeTargets: any[];
+  customerId: string;
 
   constructor() {
     super();
diff --git a/vid-webpack-master/src/app/shared/models/ncfInstance.ts b/vid-webpack-master/src/app/shared/models/ncfInstance.ts
new file mode 100644 (file)
index 0000000..b2a7c46
--- /dev/null
@@ -0,0 +1,11 @@
+import {Level1Instance} from "./level1Instance";
+
+export class NcfInstance extends Level1Instance{
+  storeKey : string;
+  statusMessage?: string;
+
+  constructor() {
+    super();
+    this.storeKey = null;
+  }
+}
diff --git a/vid-webpack-master/src/app/shared/models/ncfModel.ts b/vid-webpack-master/src/app/shared/models/ncfModel.ts
new file mode 100644 (file)
index 0000000..17d9cb4
--- /dev/null
@@ -0,0 +1,10 @@
+import {NodeModelResponseInterface} from "./nodeModel";
+
+export interface NcfProperties {
+  networkCollectionFunction: string;
+  networkCollectionDescription: string;
+}
+
+export interface NcfModelInterface extends NodeModelResponseInterface {
+  networkCollectionProperties: NcfProperties;
+}
diff --git a/vid-webpack-master/src/app/shared/models/ncfTreeNode.ts b/vid-webpack-master/src/app/shared/models/ncfTreeNode.ts
new file mode 100644 (file)
index 0000000..903fd2f
--- /dev/null
@@ -0,0 +1,29 @@
+import {TreeNodeModel} from "./treeNodeModel";
+import {Level1Model} from "./nodeModel";
+import {Level1Instance} from "./level1Instance";
+
+
+export class NcfTreeNode extends TreeNodeModel {
+  storeKey : string;
+  typeName: string;
+  menuActions: { [p: string]: { method: Function; visible: Function; enable: Function } };
+  isFailed: boolean;
+  statusMessage?: string;
+  instanceGroupRole: string;
+  instanceGroupFunction: string;
+  numberOfNetworks: number;
+  modelVersion: string;
+
+  constructor(instance: Level1Instance, ncfModel: Level1Model, storeKey: string, modelVersion: string) {
+    super(instance, ncfModel);
+    this.name = instance.instanceName? instance.instanceName: !ncfModel.isEcompGeneratedNaming ? ncfModel.modelCustomizationName : '&lt;Automatically Assigned&gt;';
+    this.modelName = ncfModel.modelCustomizationName;
+    this.type = ncfModel.type;
+    this.isEcompGeneratedNaming = ncfModel.isEcompGeneratedNaming;
+    this.storeKey = storeKey;
+    this.instanceGroupRole = instance['instanceGroupRole'];
+    this.instanceGroupFunction = instance['instanceGroupFunction'];
+    this.numberOfNetworks = instance['numberOfNetworks'];
+    this.modelVersion = modelVersion;
+  }
+}
index ded95a7..0dad0c0 100644 (file)
@@ -4,8 +4,8 @@ import {Level1Instance} from "./level1Instance";
 
 export class NetworkInstance extends Level1Instance{
   networkStoreKey : string;
-  isFailed: boolean;
   statusMessage?: string;
+  routeTarget: any;
 
   constructor() {
     super();
index d09d5e4..3b68a4c 100644 (file)
@@ -1,23 +1,15 @@
 import {NetworkInstance} from "./networkInstance";
-import {TreeNodeModel} from "./treeNodeModel";
 import {Level1Model} from "./nodeModel";
+import {FirstLevelTreeNode} from "./firstLevelTreeNode";
 
 
+export class NetworkTreeNode extends FirstLevelTreeNode {
+  routeTargetId: string;
+  routeTargetRole: string;
 
-export class NetworkTreeNode extends TreeNodeModel {
-  networkStoreKey : string;
-  typeName: string;
-  menuActions: { [p: string]: { method: Function; visible: Function; enable: Function } };
-  isFailed: boolean;
-  statusMessage?: string;
-
-  constructor(instance: NetworkInstance, networkModel: Level1Model, networkStoreKey : string){
-    super(instance, networkModel);
-    this.name = instance.instanceName? instance.instanceName: !networkModel.isEcompGeneratedNaming ? networkModel.modelCustomizationName : '&lt;Automatically Assigned&gt;';
-    this.modelName = networkModel.modelCustomizationName;
-    this.type = networkModel.type;
-    this.isEcompGeneratedNaming = networkModel.isEcompGeneratedNaming;
-    this.networkStoreKey = networkStoreKey;
+  constructor(instance: NetworkInstance, networkModel: Level1Model, networkStoreKey: string) {
+    super(instance, networkModel, networkStoreKey);
+    this.routeTargetId = instance &&  instance.routeTarget ? instance.routeTarget.globalRouteTarget : null;
+    this.routeTargetRole = instance &&  instance.routeTarget ? instance.routeTarget.routeTargetRole : null;
   }
 }
-
index 7656a0c..1967fd8 100644 (file)
@@ -3,12 +3,14 @@ import {ModelInfo} from "./modelInfo";
 
 export class NodeInstance {
   instanceName: string;
+  instanceType?: string;
   orchStatus?:string;
   action: ServiceInstanceActions = ServiceInstanceActions.Create;
   originalAction : ServiceInstanceActions;
   modelInfo?: ModelInfo;
   instanceId?: string;
   trackById?: string;
+  isFailed?: boolean;
 }
 export class ChildNodeInstance extends NodeInstance {
   isMissingData: boolean;
index ee57ec0..610522d 100644 (file)
@@ -87,7 +87,10 @@ export class Level1Model extends NodeModel{
     }
   }
   private getIsEcompGeneratedNaming(vnfJson) {
-    const ecompGeneratedNaming = vnfJson.properties.ecomp_generated_naming;
+    let ecompGeneratedNaming;
+    if (vnfJson.properties) {
+      ecompGeneratedNaming = vnfJson.properties.ecomp_generated_naming;
+    }
     return ecompGeneratedNaming === "true";
   };
 }
diff --git a/vid-webpack-master/src/app/shared/models/pnfInstance.ts b/vid-webpack-master/src/app/shared/models/pnfInstance.ts
new file mode 100644 (file)
index 0000000..ba36796
--- /dev/null
@@ -0,0 +1,13 @@
+import {Level1Instance} from "./level1Instance";
+
+
+export class PnfInstance extends Level1Instance {
+
+  pnfStoreKey : string;
+  statusMessage?: string;
+
+  constructor() {
+    super();
+    this.pnfStoreKey = null;
+  }
+}
diff --git a/vid-webpack-master/src/app/shared/models/pnfModel.ts b/vid-webpack-master/src/app/shared/models/pnfModel.ts
new file mode 100644 (file)
index 0000000..14e6588
--- /dev/null
@@ -0,0 +1,28 @@
+import {
+  Level1Model,
+  Level1ModelProperties,
+  Level1ModelResponseInterface
+} from "./nodeModel";
+
+
+
+export interface PnfProperties extends Level1ModelProperties{
+  ecomp_generated_naming: string;
+}
+
+export interface PNFModelResponseInterface extends Level1ModelResponseInterface{
+  properties: PnfProperties;
+}
+
+export class PNFModel extends Level1Model{
+  roles: string[] = [];
+  properties: PnfProperties;
+
+  constructor(pnfJson?: PNFModelResponseInterface) {
+    super(pnfJson);
+    if (pnfJson && pnfJson.properties) {
+      this.properties = pnfJson.properties;
+    }
+  }
+
+}
diff --git a/vid-webpack-master/src/app/shared/models/pnfTreeNode.ts b/vid-webpack-master/src/app/shared/models/pnfTreeNode.ts
new file mode 100644 (file)
index 0000000..26f441c
--- /dev/null
@@ -0,0 +1,21 @@
+import {Level1Model} from "./nodeModel";
+import {TreeNodeModel} from "./treeNodeModel";
+import {PnfInstance} from "./pnfInstance";
+
+export class PnfTreeNode extends TreeNodeModel{
+  pnfStoreKey : string;
+  typeName: string;
+  menuActions: { [p: string]: { method: Function; visible: Function; enable: Function } };
+  isFailed: boolean;
+  statusMessage?: string;
+
+  constructor(instance: PnfInstance, pnfModel: Level1Model, pnfStoreKey : string){
+    super(instance, pnfModel);
+    this.type = pnfModel.type;
+    this.pnfStoreKey = pnfStoreKey;
+
+  this.name = instance.instanceName? instance.instanceName: !pnfModel.isEcompGeneratedNaming ? pnfModel.modelCustomizationName : '&lt;Automatically Assigned&gt;';
+    this.modelName = pnfModel.modelCustomizationName;
+    this.isEcompGeneratedNaming = pnfModel.isEcompGeneratedNaming;
+  }
+}
index 38b4ac3..d9167be 100644 (file)
@@ -3,6 +3,8 @@ import {NetworkInstance} from "./networkInstance";
 import {NodeInstance} from "./nodeInstance";
 import {VnfGroupInstance} from "./vnfGroupInstance";
 import {VnfMember} from "./VnfMember";
+import {VrfInstance} from "./vrfInstance";
+import {VidNotions} from "./vidNotions";
 
 export class ServiceInstance extends NodeInstance{
   isEcompGeneratedNaming: boolean;
@@ -20,6 +22,7 @@ export class ServiceInstance extends NodeInstance{
   pause: boolean;
   bulkSize: number;
   vnfs: { [vnf_module_model_name: string]: VnfInstance; };
+  vrfs: { [vrf_model_name: string]: VrfInstance; };
   vnfGroups : {[vnf_module_model_name: string]: VnfGroupInstance; };
   networks: { [vnf_module_model_name: string]: NetworkInstance; };
   isDirty : boolean;
@@ -30,20 +33,23 @@ export class ServiceInstance extends NodeInstance{
   existingNames:  {[key: string] : any};
   modelInavariantId?: string;
   existingVNFCounterMap : { [vnf_module_model_name: string]: number; };
+  existingVRFCounterMap : { [vrf_module_model_name: string]: number; };
   existingVnfGroupCounterMap : { [vnf_group_module_model_name: string]: number; };
   existingNetworksCounterMap : { [network_module_model_name: string]: number; };
   optionalGroupMembersMap?: { [path: string]: VnfMember[]; };
-  isFailed: boolean;
   statusMessage: string;
+  vidNotions?: VidNotions;
 
   constructor() {
     super();
     this.isDirty = false;
     this.vnfs = {};
+    this.vrfs = {};
     this.instanceParams = [];
     this.validationCounter = 0;
     this.existingNames = {};
     this.existingVNFCounterMap = {};
+    this.existingVRFCounterMap = {};
     this.existingVnfGroupCounterMap = {};
     this.existingNetworksCounterMap = {};
     this.optionalGroupMembersMap = {};
index 783f133..cda2d0e 100644 (file)
@@ -3,6 +3,7 @@ export enum ServiceInstanceActions{
   Update="Update",
   Create="Create",
   None="None",
+  Resume = "Resume",
   Update_Delete = 'Update_Delete',
   None_Delete = 'None_Delete'
 }
index 21a34cc..15fb4fb 100644 (file)
@@ -1,5 +1,5 @@
 import {NodeModel, NodeModelResponseInterface} from "./nodeModel";
-import * as _ from "lodash";
+import {VidNotions} from "./vidNotions";
 
 
 export interface ServiceModelResponseInterface extends NodeModelResponseInterface{
@@ -17,7 +17,7 @@ export class ServiceModel extends NodeModel{
   servicesQty: number;
   isEcompGeneratedNaming: boolean;
   isMultiStepDesign: boolean;
-  vidNotions?: any;
+  vidNotions?: VidNotions;
 
   constructor(serviceModelJson?: any){
     super(serviceModelJson.service);
index 2be8b80..9242add 100644 (file)
@@ -27,6 +27,9 @@ export class TreeNodeModel {
   provStatus?:string;
   inMaint?:boolean;
   action : string ;
+  instanceId?: string;
+  instanceType?: string;
+  instanceName?: string;
 
   constructor(instance: ChildNodeInstance, nodeModel: NodeModel){
     this.modelCustomizationId = nodeModel.customizationUuid;
@@ -48,6 +51,18 @@ export class TreeNodeModel {
       this.inMaint= instance.inMaint;
     }
 
+    if(!_.isNil(instance.instanceId)){
+      this.instanceId= instance.instanceId;
+    }
+    if(!_.isNil(instance.instanceType)){
+      this.instanceType= instance.instanceType;
+    }
+    if(!_.isNil(instance.instanceName)){
+      this.instanceName= instance.instanceName;
+    }
+
+
+
 
   }
 }
index 71140d4..566c913 100644 (file)
@@ -3,7 +3,6 @@ import {ChildNodeInstance} from "./nodeInstance";
 export class VfModuleInstance extends ChildNodeInstance{
   volumeGroupName: string;
   instanceParams: { [key: string] : string; };
-  isFailed: boolean;
   position: any;
   statusMessage?: string;
 
diff --git a/vid-webpack-master/src/app/shared/models/vidNotions.ts b/vid-webpack-master/src/app/shared/models/vidNotions.ts
new file mode 100644 (file)
index 0000000..b2e54fa
--- /dev/null
@@ -0,0 +1,6 @@
+export interface VidNotions {
+  instantiationUI: string,
+  modelCategory: string,
+  viewEditUI: string,
+  instantiationType: string
+}
index 0e71f47..aa66a1a 100644 (file)
@@ -1,8 +1,8 @@
-import {NetworkTreeNode} from "./networkTreeNode";
 import {NetworkInstance} from "./networkInstance";
 import {Level1Model} from "./nodeModel";
+import {FirstLevelTreeNode} from "./firstLevelTreeNode";
 
-export class VnfGroupTreeNode extends NetworkTreeNode{
+export class VnfGroupTreeNode extends FirstLevelTreeNode {
   vnfGroupStoreKey : string;
   limitMembers: number;
   constructor(instance: NetworkInstance, vnfGroupModel: Level1Model, vnfGroupStoreKey : string){
index 8959cc5..6082de6 100644 (file)
@@ -6,7 +6,6 @@ export class VnfInstance extends Level1Instance {
 
   vfModules: { [vf_module_model_name: string] : VfModuleMap; };
   vnfStoreKey : string;
-  isFailed: boolean;
   position: number;
   statusMessage?: string;
 
index b878d01..f925eaf 100644 (file)
@@ -1,10 +1,10 @@
 import {VfModuleTreeNode} from "./vfModuleTreeNode";
-import {NetworkTreeNode} from "./networkTreeNode";
 import {Level1Model} from "./nodeModel";
 import {VnfInstance} from "./vnfInstance";
 import {ServiceNodeTypes} from "./ServiceNodeTypes";
+import {FirstLevelTreeNode} from "./firstLevelTreeNode";
 
-export class VnfTreeNode extends NetworkTreeNode{
+export class VnfTreeNode extends FirstLevelTreeNode {
 
   children: VfModuleTreeNode[];
   vnfStoreKey : string;
diff --git a/vid-webpack-master/src/app/shared/models/vpnTreeNode.ts b/vid-webpack-master/src/app/shared/models/vpnTreeNode.ts
new file mode 100644 (file)
index 0000000..b8c7f2b
--- /dev/null
@@ -0,0 +1,29 @@
+import {TreeNodeModel} from "./treeNodeModel";
+import {Level1Model} from "./nodeModel";
+import {Level1Instance} from "./level1Instance";
+
+
+export class VpnTreeNode extends TreeNodeModel {
+  storeKey: string;
+  typeName: string;
+  menuActions: { [p: string]: { method: Function; visible: Function; enable: Function } };
+  isFailed: boolean;
+  statusMessage?: string;
+  region: string;
+  routeTargetId: string;
+  routeTargetRole: string;
+  customerVPNId: string;
+
+  constructor(instance: Level1Instance, vpnModel: Level1Model, storeKey: string) {
+    super(instance, vpnModel);
+    this.name = instance.instanceName ? instance.instanceName : !vpnModel.isEcompGeneratedNaming ? vpnModel.modelCustomizationName : '&lt;Automatically Assigned&gt;';
+    this.modelName = vpnModel.modelCustomizationName;
+    this.type = vpnModel.type;
+    this.isEcompGeneratedNaming = vpnModel.isEcompGeneratedNaming;
+    this.storeKey = storeKey;
+    this.region = instance.region;
+    this.routeTargetId = instance.routeTargets && instance.routeTargets.length ? instance.routeTargets[0].globalRouteTarget : null;
+    this.routeTargetRole = instance.routeTargets && instance.routeTargets.length ? instance.routeTargets[0].routeTargetRole : null;
+    this.customerVPNId = instance.customerId;
+  }
+}
diff --git a/vid-webpack-master/src/app/shared/models/vrfInstance.ts b/vid-webpack-master/src/app/shared/models/vrfInstance.ts
new file mode 100644 (file)
index 0000000..4edc1e3
--- /dev/null
@@ -0,0 +1,15 @@
+import {Level1Instance} from "./level1Instance";
+
+export class VrfInstance extends Level1Instance{
+  vrfStoreKey : string;
+  statusMessage?: string;
+  vpns : any;
+  networks : any;
+
+  constructor() {
+    super();
+    this.vrfStoreKey = null;
+    this.vpns = {};
+    this.networks = {};
+  }
+}
diff --git a/vid-webpack-master/src/app/shared/models/vrfModel.ts b/vid-webpack-master/src/app/shared/models/vrfModel.ts
new file mode 100644 (file)
index 0000000..c9bac9c
--- /dev/null
@@ -0,0 +1,25 @@
+import {Level1Model, Level1ModelProperties, Level1ModelResponseInterface} from "./nodeModel";
+
+export interface VrfProperties extends Level1ModelProperties{
+}
+
+export interface VrfResponseInterface extends Level1ModelResponseInterface{
+  properties: VrfProperties;
+}
+
+export class VrfModel extends Level1Model{
+
+
+  properties: VrfProperties;
+
+  constructor(vrfJson?: VrfResponseInterface){
+    super(vrfJson);
+    if(vrfJson && vrfJson.properties){
+      this.properties = vrfJson.properties;
+    }
+    this.min = 1;
+    this.max = 1;
+  }
+
+
+}
diff --git a/vid-webpack-master/src/app/shared/models/vrfTreeNode.ts b/vid-webpack-master/src/app/shared/models/vrfTreeNode.ts
new file mode 100644 (file)
index 0000000..7dbe92e
--- /dev/null
@@ -0,0 +1,22 @@
+import {TreeNodeModel} from "./treeNodeModel";
+import {NetworkInstance} from "./networkInstance";
+import {Level1Model} from "./nodeModel";
+import {VrfInstance} from "./vrfInstance";
+
+export class VrfTreeNode extends TreeNodeModel {
+  vrfStoreKey : string;
+  typeName: string;
+  menuActions: { [p: string]: { method: Function; visible: Function; enable: Function } };
+  isFailed: boolean;
+  statusMessage?: string;
+
+  constructor(instance: VrfInstance, vrfModel: Level1Model, vrfStoreKey : string){
+    super(instance, vrfModel);
+    this.name = instance.instanceName? instance.instanceName: '&lt;Automatically Assigned&gt;';
+    this.modelName = vrfModel.modelCustomizationName;
+    this.type = vrfModel.type;
+    this.isEcompGeneratedNaming = vrfModel.isEcompGeneratedNaming;
+    this.vrfStoreKey = vrfStoreKey;
+  }
+}
+
index 4b4f1a5..7418d8f 100644 (file)
@@ -9,22 +9,33 @@ import * as _ from 'lodash';
 })
 export class DataFilterPipe implements PipeTransform {
 
-  transform(items: any, searchStr: string, keys?: string[][]): any {
+  transform(items: any, searchStr: string, keys?: string[][], types ?: string[]): any {
     if (items != null && items.length > 0 && !_.isNil(searchStr)) {
       let ans = [];
 
       if (_.isNil(keys) || keys.length === 0) {
         keys = Object.keys(items[0]).map((key)=> new Array(key) );
       }
+
       for (const item of items) {
+        let index = 0;
         for(const key of keys) {
-
-          let val: string = DataFilterPipe.getDeepObjectValueByKeys(item, key);
-          if (!_.isNil(val) && val.toLowerCase().includes(searchStr.toLowerCase())) {
-            ans.push(item);
-            break;
+          if(types && types[index] === 'LIST'){
+            let listVal: string[] = DataFilterPipe.getDeepObjectValueByKeysInList(item, key);
+            if (!_.isNil(listVal) && listVal.filter((val) => val.toLowerCase().includes(searchStr.toLowerCase())).length > 0) {
+              ans.push(item);
+              break;
+            }
+          }else {
+            let val: string = DataFilterPipe.getDeepObjectValueByKeys(item, key);
+            if (!_.isNil(val) && val.toLowerCase().includes(searchStr.toLowerCase())) {
+              ans.push(item);
+              break;
+            }
           }
+          index++;
         }
+
       }
       return ans;
     }
@@ -42,6 +53,23 @@ export class DataFilterPipe implements PipeTransform {
     for(let i = 1; i < keys.length ; i++){
       obj = obj[keys[i]];
     }
-    return obj.toString();
+    return _.isNil(obj) ? null : obj.toString();
+  }
+
+
+  /**********************************************************************
+   get values from obj data by array of keys.
+   @keys: all table column and keys
+   @rowData : row data
+   ************************************************************************/
+  static getDeepObjectValueByKeysInList(rowData: any , keys: string[]) : string[] {
+    let obj =  rowData[keys[0]];
+    if(_.isNil(obj)) {
+      return obj;
+    }
+    for(let i = 1; i < keys.length-1 ; i++){
+      obj = obj[keys[i]];
+    }
+    return _.isNil(obj) ? [] : _.map(obj, keys[keys.length -1 ]);
   }
 }
index 670f2f2..3ae4527 100644 (file)
@@ -62,6 +62,6 @@ describe('Service info Pipe', () => {
   });
 
   function generateserviceHierarchy(){
-    return JSON.parse('{"6e59c5de-f052-46fa-aa7e-2fca9d674c44":{"service":{"uuid":"6e59c5de-f052-46fa-aa7e-2fca9d674c44","invariantUuid":"e49fbd11-e60c-4a8e-b4bf-30fbe8f4fcc0","name":"ComplexService","version":"1.0","toscaModelURL":null,"category":"Emanuel","serviceType":"","serviceRole":"","description":"ComplexService","serviceEcompNaming":"true","instantiationType":"Macro","inputs":{}},"vnfs":{"VF_vMee 0":{"uuid":"d6557200-ecf2-4641-8094-5393ae3aae60","invariantUuid":"4160458e-f648-4b30-a176-43881ffffe9e","description":"VSP_vMee","name":"VF_vMee","version":"2.0","customizationUuid":"91415b44-753d-494c-926a-456a9172bbb9","inputs":{},"commands":{},"properties":{"gpb2_Internal2_mac":"00:11:22:EF:AC:DF","sctp-b-ipv6-egress_src_start_port":"0","sctp-a-ipv6-egress_rule_application":"any","Internal2_allow_transit":"true","sctp-b-IPv6_ethertype":"IPv6","sctp-a-egress_rule_application":"any","sctp-b-ingress_action":"pass","sctp-b-ingress_rule_protocol":"icmp","ncb2_Internal1_mac":"00:11:22:EF:AC:DF","sctp-b-ipv6-ingress-src_start_port":"0.0","ncb1_Internal2_mac":"00:11:22:EF:AC:DF","fsb_volume_size_0":"320.0","sctp-b-egress_src_addresses":"local","sctp-a-ipv6-ingress_ethertype":"IPv4","sctp-a-ipv6-ingress-dst_start_port":"0","sctp-b-ipv6-ingress_rule_application":"any","domain_name":"default-domain","sctp-a-ingress_rule_protocol":"icmp","sctp-b-egress-src_start_port":"0.0","sctp-a-egress_src_addresses":"local","sctp-b-display_name":"epc-sctp-b-ipv4v6-sec-group","sctp-a-egress-src_start_port":"0.0","sctp-a-ingress_ethertype":"IPv4","sctp-b-ipv6-ingress-dst_end_port":"65535","sctp-b-dst_subnet_prefix_v6":"::","nf_naming":"{ecomp_generated_naming=true}","sctp-a-ipv6-ingress_src_subnet_prefix":"0.0.0.0","sctp-b-egress-dst_start_port":"0.0","ncb_flavor_name":"nv.c20r64d1","gpb1_Internal1_mac":"00:11:22:EF:AC:DF","sctp-b-egress_dst_subnet_prefix_len":"0.0","Internal2_net_cidr":"10.0.0.10","sctp-a-ingress-dst_start_port":"0.0","sctp-a-egress-dst_start_port":"0.0","fsb1_Internal2_mac":"00:11:22:EF:AC:DF","sctp-a-egress_ethertype":"IPv4","vlc_st_service_mode":"in-network-nat","sctp-a-ipv6-egress_ethertype":"IPv4","sctp-a-egress-src_end_port":"65535.0","sctp-b-ipv6-egress_rule_application":"any","sctp-b-egress_action":"pass","sctp-a-ingress-src_subnet_prefix_len":"0.0","sctp-b-ipv6-ingress-src_end_port":"65535.0","sctp-b-name":"epc-sctp-b-ipv4v6-sec-group","fsb2_Internal1_mac":"00:11:22:EF:AC:DF","sctp-a-ipv6-ingress-src_start_port":"0.0","sctp-b-ipv6-egress_ethertype":"IPv4","Internal1_net_cidr":"10.0.0.10","sctp-a-egress_dst_subnet_prefix":"0.0.0.0","fsb_flavor_name":"nv.c20r64d1","sctp_rule_protocol":"132","sctp-b-ipv6-ingress_src_subnet_prefix_len":"0","sctp-a-ipv6-ingress_rule_application":"any","ecomp_generated_naming":"true","sctp-a-IPv6_ethertype":"IPv6","vlc2_Internal1_mac":"00:11:22:EF:AC:DF","vlc_st_virtualization_type":"virtual-machine","sctp-b-ingress-dst_start_port":"0.0","sctp-b-ingress-dst_end_port":"65535.0","sctp-a-ipv6-ingress-src_end_port":"65535.0","sctp-a-display_name":"epc-sctp-a-ipv4v6-sec-group","sctp-b-ingress_rule_application":"any","int2_sec_group_name":"int2-sec-group","vlc_flavor_name":"nd.c16r64d1","sctp-b-ipv6-egress_src_addresses":"local","vlc_st_interface_type_int1":"other1","sctp-b-egress-src_end_port":"65535.0","sctp-a-ipv6-egress-dst_start_port":"0","vlc_st_interface_type_int2":"other2","sctp-a-ipv6-egress_rule_protocol":"any","Internal2_shared":"false","sctp-a-ipv6-egress_dst_subnet_prefix_len":"0","Internal2_rpf":"disable","vlc1_Internal1_mac":"00:11:22:EF:AC:DF","sctp-b-ipv6-egress_src_end_port":"65535","sctp-a-ipv6-egress_src_addresses":"local","sctp-a-ingress-dst_end_port":"65535.0","sctp-a-ipv6-egress_src_end_port":"65535","Internal1_forwarding_mode":"l2","Internal2_dhcp":"false","sctp-a-dst_subnet_prefix_v6":"::","pxe_image_name":"MME_PXE-Boot_16ACP04_GA.qcow2","vlc_st_interface_type_gtp":"other0","ncb1_Internal1_mac":"00:11:22:EF:AC:DF","sctp-b-src_subnet_prefix_v6":"::","sctp-a-egress_dst_subnet_prefix_len":"0.0","int1_sec_group_name":"int1-sec-group","Internal1_dhcp":"false","sctp-a-ipv6-egress_dst_end_port":"65535","Internal2_forwarding_mode":"l2","fsb2_Internal2_mac":"00:11:22:EF:AC:DF","sctp-b-egress_dst_subnet_prefix":"0.0.0.0","Internal1_net_cidr_len":"17","gpb2_Internal1_mac":"00:11:22:EF:AC:DF","sctp-b-ingress-src_subnet_prefix_len":"0.0","sctp-a-ingress_dst_addresses":"local","sctp-a-egress_action":"pass","fsb_volume_type_0":"SF-Default-SSD","ncb2_Internal2_mac":"00:11:22:EF:AC:DF","vlc_st_interface_type_sctp_a":"left","vlc_st_interface_type_sctp_b":"right","sctp-a-src_subnet_prefix_v6":"::","vlc_st_version":"2","sctp-b-egress_ethertype":"IPv4","sctp-a-ingress_rule_application":"any","gpb1_Internal2_mac":"00:11:22:EF:AC:DF","instance_ip_family_v6":"v6","sctp-a-ipv6-egress_src_start_port":"0","sctp-b-ingress-src_start_port":"0.0","sctp-b-ingress_dst_addresses":"local","fsb1_Internal1_mac":"00:11:22:EF:AC:DF","vlc_st_interface_type_oam":"management","multi_stage_design":"false","oam_sec_group_name":"oam-sec-group","Internal2_net_gateway":"10.0.0.10","sctp-a-ipv6-ingress-dst_end_port":"65535","sctp-b-ipv6-egress-dst_start_port":"0","Internal1_net_gateway":"10.0.0.10","sctp-b-ipv6-egress_rule_protocol":"any","gtp_sec_group_name":"gtp-sec-group","sctp-a-ipv6-egress_dst_subnet_prefix":"0.0.0.0","sctp-b-ipv6-egress_dst_subnet_prefix_len":"0","sctp-a-ipv6-ingress_dst_addresses":"local","sctp-a-egress_rule_protocol":"icmp","sctp-b-ipv6-egress_action":"pass","sctp-a-ipv6-egress_action":"pass","Internal1_shared":"false","sctp-b-ipv6-ingress_rule_protocol":"any","Internal2_net_cidr_len":"17","sctp-a-name":"epc-sctp-a-ipv4v6-sec-group","sctp-a-ingress-src_end_port":"65535.0","sctp-b-ipv6-ingress_src_subnet_prefix":"0.0.0.0","sctp-a-egress-dst_end_port":"65535.0","sctp-a-ingress_action":"pass","sctp-b-egress_rule_protocol":"icmp","sctp-b-ipv6-ingress_action":"pass","vlc_st_service_type":"firewall","sctp-b-ipv6-egress_dst_end_port":"65535","sctp-b-ipv6-ingress-dst_start_port":"0","vlc2_Internal2_mac":"00:11:22:EF:AC:DF","vlc_st_availability_zone":"true","fsb_volume_image_name_1":"MME_FSB2_16ACP04_GA.qcow2","sctp-b-ingress-src_subnet_prefix":"0.0.0.0","sctp-a-ipv6-ingress_src_subnet_prefix_len":"0","Internal1_allow_transit":"true","gpb_flavor_name":"nv.c20r64d1","availability_zone_max_count":"1","fsb_volume_image_name_0":"MME_FSB1_16ACP04_GA.qcow2","sctp-b-ipv6-ingress_dst_addresses":"local","sctp-b-ipv6-egress_dst_subnet_prefix":"0.0.0.0","sctp-b-ipv6-ingress_ethertype":"IPv4","vlc1_Internal2_mac":"00:11:22:EF:AC:DF","sctp-a-ingress-src_subnet_prefix":"0.0.0.0","sctp-a-ipv6-ingress_action":"pass","Internal1_rpf":"disable","sctp-b-ingress_ethertype":"IPv4","sctp-b-egress_rule_application":"any","sctp-b-ingress-src_end_port":"65535.0","sctp-a-ipv6-ingress_rule_protocol":"any","sctp-a-ingress-src_start_port":"0.0","sctp-b-egress-dst_end_port":"65535.0"},"type":"VF","modelCustomizationName":"VF_vMee 0","vfModules":{"vf_vmee0..VfVmee..vmme_vlc..module-1":{"uuid":"522159d5-d6e0-4c2a-aa44-5a542a12a830","invariantUuid":"98a7c88b-b577-476a-90e4-e25a5871e02b","customizationUuid":"55b1be94-671a-403e-a26c-667e9c47d091","description":null,"name":"VfVmee..vmme_vlc..module-1","version":"2","modelCustomizationName":"VfVmee..vmme_vlc..module-1","properties":{"minCountInstances":0,"maxCountInstances":null,"initialCount":0,"vfModuleLabel":"vmme_vlc"},"inputs":{},"volumeGroupAllowed":false},"vf_vmee0..VfVmee..vmme_gpb..module-2":{"uuid":"41708296-e443-4c71-953f-d9a010f059e1","invariantUuid":"1cca90b8-3490-495e-87da-3f3e4c57d5b9","customizationUuid":"6add59e0-7fe1-4bc4-af48-f8812422ae7c","description":null,"name":"VfVmee..vmme_gpb..module-2","version":"2","modelCustomizationName":"VfVmee..vmme_gpb..module-2","properties":{"minCountInstances":0,"maxCountInstances":null,"initialCount":0,"vfModuleLabel":"vmme_gpb"},"inputs":{},"volumeGroupAllowed":false},"vf_vmee0..VfVmee..base_vmme..module-0":{"uuid":"a27f5cfc-7f12-4f99-af08-0af9c3885c87","invariantUuid":"a6f9e51a-2b35-416a-ae15-15e58d61f36d","customizationUuid":"f8c040f1-7e51-4a11-aca8-acf256cfd861","description":null,"name":"VfVmee..base_vmme..module-0","version":"2","modelCustomizationName":"VfVmee..base_vmme..module-0","properties":{"minCountInstances":1,"maxCountInstances":1,"initialCount":1,"vfModuleLabel":"base_vmme"},"inputs":{},"volumeGroupAllowed":true}},"volumeGroups":{"vf_vmee0..VfVmee..base_vmme..module-0":{"uuid":"a27f5cfc-7f12-4f99-af08-0af9c3885c87","invariantUuid":"a6f9e51a-2b35-416a-ae15-15e58d61f36d","customizationUuid":"f8c040f1-7e51-4a11-aca8-acf256cfd861","description":null,"name":"VfVmee..base_vmme..module-0","version":"2","modelCustomizationName":"VfVmee..base_vmme..module-0","properties":{"minCountInstances":1,"maxCountInstances":1,"initialCount":1,"vfModuleLabel":"base_vmme"},"inputs":{}}},"vfcInstanceGroups":{}}},"networks":{"ExtVL 0":{"uuid":"ddc3f20c-08b5-40fd-af72-c6d14636b986","invariantUuid":"379f816b-a7aa-422f-be30-17114ff50b7c","description":"ECOMP generic virtual link (network) base type for all other service-level and global networks","name":"ExtVL","version":"37.0","customizationUuid":"94fdd893-4a36-4d70-b16a-ec29c54c184f","inputs":{},"commands":{},"properties":{"network_assignments":"{is_external_network=false, ipv4_subnet_default_assignment={min_subnets_count=1}, ecomp_generated_network_assignment=false, ipv6_subnet_default_assignment={min_subnets_count=1}}","exVL_naming":"{ecomp_generated_naming=true}","network_flows":"{is_network_policy=false, is_bound_to_vpn=false}","network_homing":"{ecomp_selected_instance_node_target=false}"},"type":"VL","modelCustomizationName":"ExtVL 0"}},"collectionResource":{},"configurations":{"Port Mirroring Configuration By Policy 0":{"uuid":"b4398538-e89d-4f13-b33d-ca323434ba50","invariantUuid":"6ef0ca40-f366-4897-951f-abd65d25f6f7","description":"A port mirroring configuration by policy object","name":"Port Mirroring Configuration By Policy","version":"27.0","customizationUuid":"3c3b7b8d-8669-4b3b-8664-61970041fad2","inputs":{},"commands":{},"properties":{},"type":"Configuration","modelCustomizationName":"Port Mirroring Configuration By Policy 0","sourceNodes":[],"collectorNodes":null,"configurationByPolicy":false}},"serviceProxies":{},"vfModules":{"vf_vmee0..VfVmee..vmme_vlc..module-1":{"uuid":"522159d5-d6e0-4c2a-aa44-5a542a12a830","invariantUuid":"98a7c88b-b577-476a-90e4-e25a5871e02b","customizationUuid":"55b1be94-671a-403e-a26c-667e9c47d091","description":null,"name":"VfVmee..vmme_vlc..module-1","version":"2","modelCustomizationName":"VfVmee..vmme_vlc..module-1","properties":{"minCountInstances":0,"maxCountInstances":null,"initialCount":0,"vfModuleLabel":"vmme_vlc"},"inputs":{},"volumeGroupAllowed":false},"vf_vmee0..VfVmee..vmme_gpb..module-2":{"uuid":"41708296-e443-4c71-953f-d9a010f059e1","invariantUuid":"1cca90b8-3490-495e-87da-3f3e4c57d5b9","customizationUuid":"6add59e0-7fe1-4bc4-af48-f8812422ae7c","description":null,"name":"VfVmee..vmme_gpb..module-2","version":"2","modelCustomizationName":"VfVmee..vmme_gpb..module-2","properties":{"minCountInstances":0,"maxCountInstances":null,"initialCount":0,"vfModuleLabel":"vmme_gpb"},"inputs":{},"volumeGroupAllowed":false},"vf_vmee0..VfVmee..base_vmme..module-0":{"uuid":"a27f5cfc-7f12-4f99-af08-0af9c3885c87","invariantUuid":"a6f9e51a-2b35-416a-ae15-15e58d61f36d","customizationUuid":"f8c040f1-7e51-4a11-aca8-acf256cfd861","description":null,"name":"VfVmee..base_vmme..module-0","version":"2","modelCustomizationName":"VfVmee..base_vmme..module-0","properties":{"minCountInstances":1,"maxCountInstances":1,"initialCount":1,"vfModuleLabel":"base_vmme"},"inputs":{},"volumeGroupAllowed":true}},"volumeGroups":{"vf_vmee0..VfVmee..base_vmme..module-0":{"uuid":"a27f5cfc-7f12-4f99-af08-0af9c3885c87","invariantUuid":"a6f9e51a-2b35-416a-ae15-15e58d61f36d","customizationUuid":"f8c040f1-7e51-4a11-aca8-acf256cfd861","description":null,"name":"VfVmee..base_vmme..module-0","version":"2","modelCustomizationName":"VfVmee..base_vmme..module-0","properties":{"minCountInstances":1,"maxCountInstances":1,"initialCount":1,"vfModuleLabel":"base_vmme"},"inputs":{}}},"pnfs":{}}}');
+    return JSON.parse('{"6e59c5de-f052-46fa-aa7e-2fca9d674c44":{"service":{"uuid":"6e59c5de-f052-46fa-aa7e-2fca9d674c44","invariantUuid":"e49fbd11-e60c-4a8e-b4bf-30fbe8f4fcc0","name":"ComplexService","version":"1.0","toscaModelURL":null,"category":"Emanuel","serviceType":"","serviceRole":"","description":"ComplexService","serviceEcompNaming":"true","instantiationType":"Macro","inputs":{}},"vnfs":{"VF_vGeraldine 0":{"uuid":"d6557200-ecf2-4641-8094-5393ae3aae60","invariantUuid":"4160458e-f648-4b30-a176-43881ffffe9e","description":"VSP_vGeraldine","name":"VF_vGeraldine","version":"2.0","customizationUuid":"91415b44-753d-494c-926a-456a9172bbb9","inputs":{},"commands":{},"properties":{"gpb2_Internal2_mac":"00:11:22:EF:AC:DF","sctp-b-ipv6-egress_src_start_port":"0","sctp-a-ipv6-egress_rule_application":"any","Internal2_allow_transit":"true","sctp-b-IPv6_ethertype":"IPv6","sctp-a-egress_rule_application":"any","sctp-b-ingress_action":"pass","sctp-b-ingress_rule_protocol":"icmp","ncb2_Internal1_mac":"00:11:22:EF:AC:DF","sctp-b-ipv6-ingress-src_start_port":"0.0","ncb1_Internal2_mac":"00:11:22:EF:AC:DF","fsb_volume_size_0":"320.0","sctp-b-egress_src_addresses":"local","sctp-a-ipv6-ingress_ethertype":"IPv4","sctp-a-ipv6-ingress-dst_start_port":"0","sctp-b-ipv6-ingress_rule_application":"any","domain_name":"default-domain","sctp-a-ingress_rule_protocol":"icmp","sctp-b-egress-src_start_port":"0.0","sctp-a-egress_src_addresses":"local","sctp-b-display_name":"epc-sctp-b-ipv4v6-sec-group","sctp-a-egress-src_start_port":"0.0","sctp-a-ingress_ethertype":"IPv4","sctp-b-ipv6-ingress-dst_end_port":"65535","sctp-b-dst_subnet_prefix_v6":"::","nf_naming":"{ecomp_generated_naming=true}","sctp-a-ipv6-ingress_src_subnet_prefix":"0.0.0.0","sctp-b-egress-dst_start_port":"0.0","ncb_flavor_name":"nv.c20r64d1","gpb1_Internal1_mac":"00:11:22:EF:AC:DF","sctp-b-egress_dst_subnet_prefix_len":"0.0","Internal2_net_cidr":"10.0.0.10","sctp-a-ingress-dst_start_port":"0.0","sctp-a-egress-dst_start_port":"0.0","fsb1_Internal2_mac":"00:11:22:EF:AC:DF","sctp-a-egress_ethertype":"IPv4","vlc_st_service_mode":"in-network-nat","sctp-a-ipv6-egress_ethertype":"IPv4","sctp-a-egress-src_end_port":"65535.0","sctp-b-ipv6-egress_rule_application":"any","sctp-b-egress_action":"pass","sctp-a-ingress-src_subnet_prefix_len":"0.0","sctp-b-ipv6-ingress-src_end_port":"65535.0","sctp-b-name":"epc-sctp-b-ipv4v6-sec-group","fsb2_Internal1_mac":"00:11:22:EF:AC:DF","sctp-a-ipv6-ingress-src_start_port":"0.0","sctp-b-ipv6-egress_ethertype":"IPv4","Internal1_net_cidr":"10.0.0.10","sctp-a-egress_dst_subnet_prefix":"0.0.0.0","fsb_flavor_name":"nv.c20r64d1","sctp_rule_protocol":"132","sctp-b-ipv6-ingress_src_subnet_prefix_len":"0","sctp-a-ipv6-ingress_rule_application":"any","ecomp_generated_naming":"true","sctp-a-IPv6_ethertype":"IPv6","vlc2_Internal1_mac":"00:11:22:EF:AC:DF","vlc_st_virtualization_type":"virtual-machine","sctp-b-ingress-dst_start_port":"0.0","sctp-b-ingress-dst_end_port":"65535.0","sctp-a-ipv6-ingress-src_end_port":"65535.0","sctp-a-display_name":"epc-sctp-a-ipv4v6-sec-group","sctp-b-ingress_rule_application":"any","int2_sec_group_name":"int2-sec-group","vlc_flavor_name":"nd.c16r64d1","sctp-b-ipv6-egress_src_addresses":"local","vlc_st_interface_type_int1":"other1","sctp-b-egress-src_end_port":"65535.0","sctp-a-ipv6-egress-dst_start_port":"0","vlc_st_interface_type_int2":"other2","sctp-a-ipv6-egress_rule_protocol":"any","Internal2_shared":"false","sctp-a-ipv6-egress_dst_subnet_prefix_len":"0","Internal2_rpf":"disable","vlc1_Internal1_mac":"00:11:22:EF:AC:DF","sctp-b-ipv6-egress_src_end_port":"65535","sctp-a-ipv6-egress_src_addresses":"local","sctp-a-ingress-dst_end_port":"65535.0","sctp-a-ipv6-egress_src_end_port":"65535","Internal1_forwarding_mode":"l2","Internal2_dhcp":"false","sctp-a-dst_subnet_prefix_v6":"::","pxe_image_name":"MME_PXE-Boot_16ACP04_GA.qcow2","vlc_st_interface_type_gtp":"other0","ncb1_Internal1_mac":"00:11:22:EF:AC:DF","sctp-b-src_subnet_prefix_v6":"::","sctp-a-egress_dst_subnet_prefix_len":"0.0","int1_sec_group_name":"int1-sec-group","Internal1_dhcp":"false","sctp-a-ipv6-egress_dst_end_port":"65535","Internal2_forwarding_mode":"l2","fsb2_Internal2_mac":"00:11:22:EF:AC:DF","sctp-b-egress_dst_subnet_prefix":"0.0.0.0","Internal1_net_cidr_len":"17","gpb2_Internal1_mac":"00:11:22:EF:AC:DF","sctp-b-ingress-src_subnet_prefix_len":"0.0","sctp-a-ingress_dst_addresses":"local","sctp-a-egress_action":"pass","fsb_volume_type_0":"SF-Default-SSD","ncb2_Internal2_mac":"00:11:22:EF:AC:DF","vlc_st_interface_type_sctp_a":"left","vlc_st_interface_type_sctp_b":"right","sctp-a-src_subnet_prefix_v6":"::","vlc_st_version":"2","sctp-b-egress_ethertype":"IPv4","sctp-a-ingress_rule_application":"any","gpb1_Internal2_mac":"00:11:22:EF:AC:DF","instance_ip_family_v6":"v6","sctp-a-ipv6-egress_src_start_port":"0","sctp-b-ingress-src_start_port":"0.0","sctp-b-ingress_dst_addresses":"local","fsb1_Internal1_mac":"00:11:22:EF:AC:DF","vlc_st_interface_type_oam":"management","multi_stage_design":"false","oam_sec_group_name":"oam-sec-group","Internal2_net_gateway":"10.0.0.10","sctp-a-ipv6-ingress-dst_end_port":"65535","sctp-b-ipv6-egress-dst_start_port":"0","Internal1_net_gateway":"10.0.0.10","sctp-b-ipv6-egress_rule_protocol":"any","gtp_sec_group_name":"gtp-sec-group","sctp-a-ipv6-egress_dst_subnet_prefix":"0.0.0.0","sctp-b-ipv6-egress_dst_subnet_prefix_len":"0","sctp-a-ipv6-ingress_dst_addresses":"local","sctp-a-egress_rule_protocol":"icmp","sctp-b-ipv6-egress_action":"pass","sctp-a-ipv6-egress_action":"pass","Internal1_shared":"false","sctp-b-ipv6-ingress_rule_protocol":"any","Internal2_net_cidr_len":"17","sctp-a-name":"epc-sctp-a-ipv4v6-sec-group","sctp-a-ingress-src_end_port":"65535.0","sctp-b-ipv6-ingress_src_subnet_prefix":"0.0.0.0","sctp-a-egress-dst_end_port":"65535.0","sctp-a-ingress_action":"pass","sctp-b-egress_rule_protocol":"icmp","sctp-b-ipv6-ingress_action":"pass","vlc_st_service_type":"firewall","sctp-b-ipv6-egress_dst_end_port":"65535","sctp-b-ipv6-ingress-dst_start_port":"0","vlc2_Internal2_mac":"00:11:22:EF:AC:DF","vlc_st_availability_zone":"true","fsb_volume_image_name_1":"MME_FSB2_16ACP04_GA.qcow2","sctp-b-ingress-src_subnet_prefix":"0.0.0.0","sctp-a-ipv6-ingress_src_subnet_prefix_len":"0","Internal1_allow_transit":"true","gpb_flavor_name":"nv.c20r64d1","availability_zone_max_count":"1","fsb_volume_image_name_0":"MME_FSB1_16ACP04_GA.qcow2","sctp-b-ipv6-ingress_dst_addresses":"local","sctp-b-ipv6-egress_dst_subnet_prefix":"0.0.0.0","sctp-b-ipv6-ingress_ethertype":"IPv4","vlc1_Internal2_mac":"00:11:22:EF:AC:DF","sctp-a-ingress-src_subnet_prefix":"0.0.0.0","sctp-a-ipv6-ingress_action":"pass","Internal1_rpf":"disable","sctp-b-ingress_ethertype":"IPv4","sctp-b-egress_rule_application":"any","sctp-b-ingress-src_end_port":"65535.0","sctp-a-ipv6-ingress_rule_protocol":"any","sctp-a-ingress-src_start_port":"0.0","sctp-b-egress-dst_end_port":"65535.0"},"type":"VF","modelCustomizationName":"VF_vGeraldine 0","vfModules":{"vf_vgeraldine0..VfVgeraldine..vflorence_vlc..module-1":{"uuid":"522159d5-d6e0-4c2a-aa44-5a542a12a830","invariantUuid":"98a7c88b-b577-476a-90e4-e25a5871e02b","customizationUuid":"55b1be94-671a-403e-a26c-667e9c47d091","description":null,"name":"VfVgeraldine..vflorence_vlc..module-1","version":"2","modelCustomizationName":"VfVgeraldine..vflorence_vlc..module-1","properties":{"minCountInstances":0,"maxCountInstances":null,"initialCount":0,"vfModuleLabel":"vflorence_vlc"},"inputs":{},"volumeGroupAllowed":false},"vf_vgeraldine0..VfVgeraldine..vflorence_gpb..module-2":{"uuid":"41708296-e443-4c71-953f-d9a010f059e1","invariantUuid":"1cca90b8-3490-495e-87da-3f3e4c57d5b9","customizationUuid":"6add59e0-7fe1-4bc4-af48-f8812422ae7c","description":null,"name":"VfVgeraldine..vflorence_gpb..module-2","version":"2","modelCustomizationName":"VfVgeraldine..vflorence_gpb..module-2","properties":{"minCountInstances":0,"maxCountInstances":null,"initialCount":0,"vfModuleLabel":"vflorence_gpb"},"inputs":{},"volumeGroupAllowed":false},"vf_vgeraldine0..VfVgeraldine..base_vflorence..module-0":{"uuid":"a27f5cfc-7f12-4f99-af08-0af9c3885c87","invariantUuid":"a6f9e51a-2b35-416a-ae15-15e58d61f36d","customizationUuid":"f8c040f1-7e51-4a11-aca8-acf256cfd861","description":null,"name":"VfVgeraldine..base_vflorence..module-0","version":"2","modelCustomizationName":"VfVgeraldine..base_vflorence..module-0","properties":{"minCountInstances":1,"maxCountInstances":1,"initialCount":1,"vfModuleLabel":"base_vflorence"},"inputs":{},"volumeGroupAllowed":true}},"volumeGroups":{"vf_vgeraldine0..VfVgeraldine..base_vflorence..module-0":{"uuid":"a27f5cfc-7f12-4f99-af08-0af9c3885c87","invariantUuid":"a6f9e51a-2b35-416a-ae15-15e58d61f36d","customizationUuid":"f8c040f1-7e51-4a11-aca8-acf256cfd861","description":null,"name":"VfVgeraldine..base_vflorence..module-0","version":"2","modelCustomizationName":"VfVgeraldine..base_vflorence..module-0","properties":{"minCountInstances":1,"maxCountInstances":1,"initialCount":1,"vfModuleLabel":"base_vflorence"},"inputs":{}}},"vfcInstanceGroups":{}}},"networks":{"ExtVL 0":{"uuid":"ddc3f20c-08b5-40fd-af72-c6d14636b986","invariantUuid":"379f816b-a7aa-422f-be30-17114ff50b7c","description":"ECOMP generic virtual link (network) base type for all other service-level and global networks","name":"ExtVL","version":"37.0","customizationUuid":"94fdd893-4a36-4d70-b16a-ec29c54c184f","inputs":{},"commands":{},"properties":{"network_assignments":"{is_external_network=false, ipv4_subnet_default_assignment={min_subnets_count=1}, ecomp_generated_network_assignment=false, ipv6_subnet_default_assignment={min_subnets_count=1}}","exVL_naming":"{ecomp_generated_naming=true}","network_flows":"{is_network_policy=false, is_bound_to_vpn=false}","network_homing":"{ecomp_selected_instance_node_target=false}"},"type":"VL","modelCustomizationName":"ExtVL 0"}},"collectionResources":{},"configurations":{"Port Mirroring Configuration By Policy 0":{"uuid":"b4398538-e89d-4f13-b33d-ca323434ba50","invariantUuid":"6ef0ca40-f366-4897-951f-abd65d25f6f7","description":"A port mirroring configuration by policy object","name":"Port Mirroring Configuration By Policy","version":"27.0","customizationUuid":"3c3b7b8d-8669-4b3b-8664-61970041fad2","inputs":{},"commands":{},"properties":{},"type":"Configuration","modelCustomizationName":"Port Mirroring Configuration By Policy 0","sourceNodes":[],"collectorNodes":null,"configurationByPolicy":false}},"serviceProxies":{},"vfModules":{"vf_vgeraldine0..VfVgeraldine..vflorence_vlc..module-1":{"uuid":"522159d5-d6e0-4c2a-aa44-5a542a12a830","invariantUuid":"98a7c88b-b577-476a-90e4-e25a5871e02b","customizationUuid":"55b1be94-671a-403e-a26c-667e9c47d091","description":null,"name":"VfVgeraldine..vflorence_vlc..module-1","version":"2","modelCustomizationName":"VfVgeraldine..vflorence_vlc..module-1","properties":{"minCountInstances":0,"maxCountInstances":null,"initialCount":0,"vfModuleLabel":"vflorence_vlc"},"inputs":{},"volumeGroupAllowed":false},"vf_vgeraldine0..VfVgeraldine..vflorence_gpb..module-2":{"uuid":"41708296-e443-4c71-953f-d9a010f059e1","invariantUuid":"1cca90b8-3490-495e-87da-3f3e4c57d5b9","customizationUuid":"6add59e0-7fe1-4bc4-af48-f8812422ae7c","description":null,"name":"VfVgeraldine..vflorence_gpb..module-2","version":"2","modelCustomizationName":"VfVgeraldine..vflorence_gpb..module-2","properties":{"minCountInstances":0,"maxCountInstances":null,"initialCount":0,"vfModuleLabel":"vflorence_gpb"},"inputs":{},"volumeGroupAllowed":false},"vf_vgeraldine0..VfVgeraldine..base_vflorence..module-0":{"uuid":"a27f5cfc-7f12-4f99-af08-0af9c3885c87","invariantUuid":"a6f9e51a-2b35-416a-ae15-15e58d61f36d","customizationUuid":"f8c040f1-7e51-4a11-aca8-acf256cfd861","description":null,"name":"VfVgeraldine..base_vflorence..module-0","version":"2","modelCustomizationName":"VfVgeraldine..base_vflorence..module-0","properties":{"minCountInstances":1,"maxCountInstances":1,"initialCount":1,"vfModuleLabel":"base_vflorence"},"inputs":{},"volumeGroupAllowed":true}},"volumeGroups":{"vf_vgeraldine0..VfVgeraldine..base_vflorence..module-0":{"uuid":"a27f5cfc-7f12-4f99-af08-0af9c3885c87","invariantUuid":"a6f9e51a-2b35-416a-ae15-15e58d61f36d","customizationUuid":"f8c040f1-7e51-4a11-aca8-acf256cfd861","description":null,"name":"VfVgeraldine..base_vflorence..module-0","version":"2","modelCustomizationName":"VfVgeraldine..base_vflorence..module-0","properties":{"minCountInstances":1,"maxCountInstances":1,"initialCount":1,"vfModuleLabel":"base_vflorence"},"inputs":{}}},"pnfs":{}}}');
   }
 });
index 2578d7b..96e2b40 100644 (file)
@@ -81,38 +81,38 @@ describe('View Edit resolver', () => {
       jest.spyOn(aaiService, 'getServiceModelById').mockReturnValue(of({}));
       jest.spyOn(aaiService, 'retrieveAndStoreServiceInstanceTopology').mockReturnValue(of({
         "vnfs": {
-          "2017-388_ADIOD-vPE 0": {
+          "2017-388_PASQUALE-vPE 0": {
             "vfModules": {},
             "uuid": "afacccf6-397d-45d6-b5ae-94c39734b168",
             "productFamilyId": "e433710f-9217-458d-a79d-1c7aff376d89",
-            "lcpCloudRegionId": "JANET25",
+            "lcpCloudRegionId": "AAIAIC25",
             "tenantId": "092eb9e8e4b7412e8787dd091bc58e86",
             "lineOfBusiness": "ONAP",
             "platformName": "platform",
             "modelInfo": {
               "modelInvariantId": "72e465fe-71b1-4e7b-b5ed-9496118ff7a8",
               "modelVersionId": "afacccf6-397d-45d6-b5ae-94c39734b168",
-              "modelName": "2017-388_ADIOD-vPE",
+              "modelName": "2017-388_PASQUALE-vPE",
               "modelVersion": "4.0",
               "modelCustomizationId": "b3c76f73-eeb5-4fb6-9d31-72a889f1811c",
-              "modelCustomizationName": "2017-388_ADIOD-vPE 0",
+              "modelCustomizationName": "2017-388_PASQUALE-vPE 0",
               "uuid": "afacccf6-397d-45d6-b5ae-94c39734b168"
             },
-            "instanceName": "2017388_ADIODvPEmCaNkinstanceName",
+            "instanceName": "2017388_PASQUALEvPEmCaNkinstanceName",
             "legacyRegion": "some legacy region"
           },
-          "2017-488_ADIOD-vPE 0": {
+          "2017-488_PASQUALE-vPE 0": {
             "vfModules": {
-              "2017488_adiodvpe0..2017488AdiodVpe..ADIOD_base_vPE_BV..module-0": {
-                "2017488_adiodvpe0..2017488AdiodVpe..ADIOD_base_vPE_BV..module-0uvfot": {
+              "2017488_pasqualevpe0..2017488PasqualeVpe..PASQUALE_base_vPE_BV..module-0": {
+                "2017488_pasqualevpe0..2017488PasqualeVpe..PASQUALE_base_vPE_BV..module-0uvfot": {
                   "instanceName": "VFinstancenameZERO",
                   "modelInfo": {
                     "modelInvariantId": "b34833bb-6aa9-4ad6-a831-70b06367a091",
                     "modelVersionId": "f8360508-3f17-4414-a2ed-6bc71161e8db",
-                    "modelName": "2017488AdiodVpe..ADIOD_base_vPE_BV..module-0",
+                    "modelName": "2017488PasqualeVpe..PASQUALE_base_vPE_BV..module-0",
                     "modelVersion": "5",
                     "modelCustomizationId": "a55961b2-2065-4ab0-a5b7-2fcee1c227e3",
-                    "modelCustomizationName": "2017488AdiodVpe..ADIOD_base_vPE_BV..module-0",
+                    "modelCustomizationName": "2017488PasqualeVpe..PASQUALE_base_vPE_BV..module-0",
                     "uuid": "f8360508-3f17-4414-a2ed-6bc71161e8db"
                   },
                   "uuid": "f8360508-3f17-4414-a2ed-6bc71161e8db",
@@ -121,8 +121,8 @@ describe('View Edit resolver', () => {
                   "inMaint": true
                 }
               },
-              "2017488_adiodvpe0..2017488AdiodVpe..ADIOD_vRE_BV..module-1": {
-                "2017488_adiodvpe0..2017488AdiodVpe..ADIOD_vRE_BV..module-1fshmc": {
+              "2017488_pasqualevpe0..2017488PasqualeVpe..PASQUALE_vRE_BV..module-1": {
+                "2017488_pasqualevpe0..2017488PasqualeVpe..PASQUALE_vRE_BV..module-1fshmc": {
                   "instanceName": "VFinstancename",
                   "volumeGroupName": "VFinstancename_vol_abc",
                   "orchStatus": "Create",
@@ -131,10 +131,10 @@ describe('View Edit resolver', () => {
                   "modelInfo": {
                     "modelInvariantId": "7253ff5c-97f0-4b8b-937c-77aeb4d79aa1",
                     "modelVersionId": "25284168-24bb-4698-8cb4-3f509146eca5",
-                    "modelName": "2017488AdiodVpe..ADIOD_vRE_BV..module-1",
+                    "modelName": "2017488PasqualeVpe..PASQUALE_vRE_BV..module-1",
                     "modelVersion": "6",
                     "modelCustomizationId": "f7e7c365-60cf-49a9-9ebf-a1aa11b9d401",
-                    "modelCustomizationName": "2017488AdiodVpe..ADIOD_vRE_BV..module-1",
+                    "modelCustomizationName": "2017488PasqualeVpe..PASQUALE_vRE_BV..module-1",
                     "uuid": "25284168-24bb-4698-8cb4-3f509146eca5"
                   },
                   "uuid": "25284168-24bb-4698-8cb4-3f509146eca5"
@@ -143,54 +143,54 @@ describe('View Edit resolver', () => {
             },
             "uuid": "69e09f68-8b63-4cc9-b9ff-860960b5db09",
             "productFamilyId": "e433710f-9217-458d-a79d-1c7aff376d89",
-            "lcpCloudRegionId": "JANET25",
+            "lcpCloudRegionId": "AAIAIC25",
             "tenantId": "092eb9e8e4b7412e8787dd091bc58e86",
             "lineOfBusiness": "ONAP",
             "platformName": "platform",
             "modelInfo": {
               "modelInvariantId": "72e465fe-71b1-4e7b-b5ed-9496118ff7a8",
               "modelVersionId": "69e09f68-8b63-4cc9-b9ff-860960b5db09",
-              "modelName": "2017-488_ADIOD-vPE",
+              "modelName": "2017-488_PASQUALE-vPE",
               "modelVersion": "5.0",
               "modelCustomizationId": "1da7b585-5e61-4993-b95e-8e6606c81e45",
-              "modelCustomizationName": "2017-488_ADIOD-vPE 0",
+              "modelCustomizationName": "2017-488_PASQUALE-vPE 0",
               "uuid": "69e09f68-8b63-4cc9-b9ff-860960b5db09"
             },
             "orchStatus": "Created",
             "inMaint": false,
-            "instanceName": "2017488_ADIODvPEVNFinstancename",
+            "instanceName": "2017488_PASQUALEvPEVNFinstancename",
             "legacyRegion": "some legacy region"
           },
-          "2017-488_ADIOD-vPE 0:0001": {
+          "2017-488_PASQUALE-vPE 0:0001": {
             "vfModules": {
-              "2017488_adiodvpe0..2017488AdiodVpe..ADIOD_base_vPE_BV..module-0": {
-                "2017488_adiodvpe0..2017488AdiodVpe..ADIOD_base_vPE_BV..module-0uvfot": {
+              "2017488_pasqualevpe0..2017488PasqualeVpe..PASQUALE_base_vPE_BV..module-0": {
+                "2017488_pasqualevpe0..2017488PasqualeVpe..PASQUALE_base_vPE_BV..module-0uvfot": {
                   "instanceName": "VFinstancenameZERO_001",
                   "provStatus": "Prov Status",
                   "inMaint": true,
                   "modelInfo": {
                     "modelInvariantId": "b34833bb-6aa9-4ad6-a831-70b06367a091",
                     "modelVersionId": "f8360508-3f17-4414-a2ed-6bc71161e8db",
-                    "modelName": "2017488AdiodVpe..ADIOD_base_vPE_BV..module-0",
+                    "modelName": "2017488PasqualeVpe..PASQUALE_base_vPE_BV..module-0",
                     "modelVersion": "5",
                     "modelCustomizationId": "a55961b2-2065-4ab0-a5b7-2fcee1c227e3",
-                    "modelCustomizationName": "2017488AdiodVpe..ADIOD_base_vPE_BV..module-0",
+                    "modelCustomizationName": "2017488PasqualeVpe..PASQUALE_base_vPE_BV..module-0",
                     "uuid": "f8360508-3f17-4414-a2ed-6bc71161e8db"
                   },
                   "uuid": "f8360508-3f17-4414-a2ed-6bc71161e8db"
                 }
               },
-              "2017488_adiodvpe0..2017488AdiodVpe..ADIOD_vRE_BV..module-1": {
-                "2017488_adiodvpe0..2017488AdiodVpe..ADIOD_vRE_BV..module-1fshmc": {
+              "2017488_pasqualevpe0..2017488PasqualeVpe..PASQUALE_vRE_BV..module-1": {
+                "2017488_pasqualevpe0..2017488PasqualeVpe..PASQUALE_vRE_BV..module-1fshmc": {
                   "instanceName": "VFinstancename_001",
                   "volumeGroupName": "VFinstancename_vol_abc_001",
                   "modelInfo": {
                     "modelInvariantId": "7253ff5c-97f0-4b8b-937c-77aeb4d79aa1",
                     "modelVersionId": "25284168-24bb-4698-8cb4-3f509146eca5",
-                    "modelName": "2017488AdiodVpe..ADIOD_vRE_BV..module-1",
+                    "modelName": "2017488PasqualeVpe..PASQUALE_vRE_BV..module-1",
                     "modelVersion": "6",
                     "modelCustomizationId": "f7e7c365-60cf-49a9-9ebf-a1aa11b9d401",
-                    "modelCustomizationName": "2017488AdiodVpe..ADIOD_vRE_BV..module-1",
+                    "modelCustomizationName": "2017488PasqualeVpe..PASQUALE_vRE_BV..module-1",
                     "uuid": "25284168-24bb-4698-8cb4-3f509146eca5"
                   },
                   "uuid": "25284168-24bb-4698-8cb4-3f509146eca5"
@@ -200,50 +200,50 @@ describe('View Edit resolver', () => {
 
             "uuid": "69e09f68-8b63-4cc9-b9ff-860960b5db09",
             "productFamilyId": "e433710f-9217-458d-a79d-1c7aff376d89",
-            "lcpCloudRegionId": "JANET25",
+            "lcpCloudRegionId": "AAIAIC25",
             "tenantId": "092eb9e8e4b7412e8787dd091bc58e86",
             "lineOfBusiness": "ONAP",
             "platformName": "platform",
             "modelInfo": {
               "modelInvariantId": "72e465fe-71b1-4e7b-b5ed-9496118ff7a8",
               "modelVersionId": "69e09f68-8b63-4cc9-b9ff-860960b5db09",
-              "modelName": "2017-488_ADIOD-vPE",
+              "modelName": "2017-488_PASQUALE-vPE",
               "modelVersion": "5.0",
               "modelCustomizationId": "1da7b585-5e61-4993-b95e-8e6606c81e45",
-              "modelCustomizationName": "2017-488_ADIOD-vPE 0",
+              "modelCustomizationName": "2017-488_PASQUALE-vPE 0",
               "uuid": "69e09f68-8b63-4cc9-b9ff-860960b5db09"
             },
-            "instanceName": "2017488_ADIODvPEVNFinstancename_001",
+            "instanceName": "2017488_PASQUALEvPEVNFinstancename_001",
             "legacyRegion": "some legacy region"
           },
-          "2017-488_ADIOD-vPE 0:0002": {
+          "2017-488_PASQUALE-vPE 0:0002": {
             "vfModules": {
-              "2017488_adiodvpe0..2017488AdiodVpe..ADIOD_base_vPE_BV..module-0": {
-                "2017488_adiodvpe0..2017488AdiodVpe..ADIOD_base_vPE_BV..module-0uvfot": {
+              "2017488_pasqualevpe0..2017488PasqualeVpe..PASQUALE_base_vPE_BV..module-0": {
+                "2017488_pasqualevpe0..2017488PasqualeVpe..PASQUALE_base_vPE_BV..module-0uvfot": {
                   "instanceName": "VFinstancenameZERO_002",
                   "modelInfo": {
                     "modelInvariantId": "b34833bb-6aa9-4ad6-a831-70b06367a091",
                     "modelVersionId": "f8360508-3f17-4414-a2ed-6bc71161e8db",
-                    "modelName": "2017488AdiodVpe..ADIOD_base_vPE_BV..module-0",
+                    "modelName": "2017488PasqualeVpe..PASQUALE_base_vPE_BV..module-0",
                     "modelVersion": "5",
                     "modelCustomizationId": "a55961b2-2065-4ab0-a5b7-2fcee1c227e3",
-                    "modelCustomizationName": "2017488AdiodVpe..ADIOD_base_vPE_BV..module-0",
+                    "modelCustomizationName": "2017488PasqualeVpe..PASQUALE_base_vPE_BV..module-0",
                     "uuid": "f8360508-3f17-4414-a2ed-6bc71161e8db"
                   },
                   "uuid": "f8360508-3f17-4414-a2ed-6bc71161e8db"
                 }
               },
-              "2017488_adiodvpe0..2017488AdiodVpe..ADIOD_vRE_BV..module-1": {
-                "2017488_adiodvpe0..2017488AdiodVpe..ADIOD_vRE_BV..module-1fshmc": {
+              "2017488_pasqualevpe0..2017488PasqualeVpe..PASQUALE_vRE_BV..module-1": {
+                "2017488_pasqualevpe0..2017488PasqualeVpe..PASQUALE_vRE_BV..module-1fshmc": {
                   "instanceName": "VFinstancename_002",
                   "volumeGroupName": "VFinstancename_vol_abc_002",
                   "modelInfo": {
                     "modelInvariantId": "7253ff5c-97f0-4b8b-937c-77aeb4d79aa1",
                     "modelVersionId": "25284168-24bb-4698-8cb4-3f509146eca5",
-                    "modelName": "2017488AdiodVpe..ADIOD_vRE_BV..module-1",
+                    "modelName": "2017488PasqualeVpe..PASQUALE_vRE_BV..module-1",
                     "modelVersion": "6",
                     "modelCustomizationId": "f7e7c365-60cf-49a9-9ebf-a1aa11b9d401",
-                    "modelCustomizationName": "2017488AdiodVpe..ADIOD_vRE_BV..module-1",
+                    "modelCustomizationName": "2017488PasqualeVpe..PASQUALE_vRE_BV..module-1",
                     "uuid": "25284168-24bb-4698-8cb4-3f509146eca5"
                   },
                   "uuid": "25284168-24bb-4698-8cb4-3f509146eca5"
@@ -252,20 +252,20 @@ describe('View Edit resolver', () => {
             },
             "uuid": "69e09f68-8b63-4cc9-b9ff-860960b5db09",
             "productFamilyId": "e433710f-9217-458d-a79d-1c7aff376d89",
-            "lcpCloudRegionId": "JANET25",
+            "lcpCloudRegionId": "AAIAIC25",
             "tenantId": "092eb9e8e4b7412e8787dd091bc58e86",
             "lineOfBusiness": "ONAP",
             "platformName": "platform",
             "modelInfo": {
               "modelInvariantId": "72e465fe-71b1-4e7b-b5ed-9496118ff7a8",
               "modelVersionId": "69e09f68-8b63-4cc9-b9ff-860960b5db09",
-              "modelName": "2017-488_ADIOD-vPE",
+              "modelName": "2017-488_PASQUALE-vPE",
               "modelVersion": "5.0",
               "modelCustomizationId": "1da7b585-5e61-4993-b95e-8e6606c81e45",
-              "modelCustomizationName": "2017-488_ADIOD-vPE 0",
+              "modelCustomizationName": "2017-488_PASQUALE-vPE 0",
               "uuid": "69e09f68-8b63-4cc9-b9ff-860960b5db09"
             },
-            "instanceName": "2017488_ADIODvPEVNFinstancename_002",
+            "instanceName": "2017488_PASQUALEvPEVNFinstancename_002",
             "legacyRegion": "some legacy region"
           }
         },
index d4aef19..404f390 100644 (file)
@@ -21,7 +21,7 @@ export class ViewEditResolver implements Resolve<Observable<boolean>> {
       let serviceModelApi = this._aaiService.getServiceModelById(serviceModeId);
       let serviceInstanceApi = this._aaiService.retrieveAndStoreServiceInstanceTopology(serviceInstanceId, subscriberId, serviceType, serviceModeId);
       return forkJoin([serviceModelApi, serviceInstanceApi]).map(([serviceModel, serviceInstance ]) => {
-        this.setIsALaCarte(serviceInstance,serviceModel.service.instantiationType );
+        this.setIsALaCarte(serviceInstance,serviceModel.service.vidNotions.instantiationType );
         this.setTestApi(serviceInstance);
         this._store.dispatch(createServiceInstance( serviceInstance, serviceModeId));
           return true;
@@ -34,7 +34,7 @@ export class ViewEditResolver implements Resolve<Observable<boolean>> {
     }
   };
   setIsALaCarte = (service: any, instantiationType) => {
-    service.isALaCarte = instantiationType === 'A-La-Carte';
+    service.isALaCarte = instantiationType === 'ALaCarte';
   };
 
 }
index 9f19f62..5cff00b 100644 (file)
@@ -65,10 +65,10 @@ describe("AaiService", () => {
       aaiService.retrieveServiceInstanceTopology(serviceInstanceId, subscriberId, serviceType).subscribe((result: ServiceInstance) => {
         expect(result.instanceName).toEqual("mCaNkinstancename");
         expect(result.modelInavariantId).toEqual("6b528779-44a3-4472-bdff-9cd15ec93450");
-        expect(result.vnfs["2017-388_ADIOD-vPE 0"].instanceName).toEqual("2017388_ADIODvPEmCaNkinstanceName");
-        expect(result.vnfs["2017-488_ADIOD-vPE 0"].
-          vfModules["2017488_adiodvpe0..2017488AdiodVpe..ADIOD_base_vPE_BV..module-0"]
-          ["2017488_adiodvpe0..2017488AdiodVpe..ADIOD_base_vPE_BV..module-0uvfot"].instanceName
+        expect(result.vnfs["2017-388_PASQUALE-vPE 0"].instanceName).toEqual("2017388_PASQUALEvPEmCaNkinstanceName");
+        expect(result.vnfs["2017-488_PASQUALE-vPE 0"].
+          vfModules["2017488_pasqualevpe0..2017488PasqualeVpe..PASQUALE_base_vPE_BV..module-0"]
+          ["2017488_pasqualevpe0..2017488PasqualeVpe..PASQUALE_base_vPE_BV..module-0uvfot"].instanceName
         ).toEqual("VFinstancenameZERO");
       });
 
@@ -88,10 +88,10 @@ describe("AaiService", () => {
       aaiService.retrieveServiceInstanceRetryTopology(jobId).subscribe((result: ServiceInstance) => {
         expect(result.instanceName).toEqual("mCaNkinstancename");
         expect(result.modelInavariantId).toEqual("6b528779-44a3-4472-bdff-9cd15ec93450");
-        expect(result.vnfs["2017-388_ADIOD-vPE 0"].instanceName).toEqual("2017388_ADIODvPEmCaNkinstanceName");
-        expect(result.vnfs["2017-488_ADIOD-vPE 0"].
-          vfModules["2017488_adiodvpe0..2017488AdiodVpe..ADIOD_base_vPE_BV..module-0"]
-          ["2017488_adiodvpe0..2017488AdiodVpe..ADIOD_base_vPE_BV..module-0uvfot"].instanceName
+        expect(result.vnfs["2017-388_PASQUALE-vPE 0"].instanceName).toEqual("2017388_PASQUALEvPEmCaNkinstanceName");
+        expect(result.vnfs["2017-488_PASQUALE-vPE 0"].
+          vfModules["2017488_pasqualevpe0..2017488PasqualeVpe..PASQUALE_base_vPE_BV..module-0"]
+          ["2017488_pasqualevpe0..2017488PasqualeVpe..PASQUALE_base_vPE_BV..module-0uvfot"].instanceName
         ).toEqual("VFinstancenameZERO");
       });
 
@@ -104,9 +104,9 @@ describe("AaiService", () => {
   describe('# get optional group members tests', () =>{
     test('aai service get getOptionalGroupMembers and return list of VnfMember', () => {
       jest.spyOn(store, 'dispatch');
-      jest.spyOn(store, 'getState').mockReturnValue({
+      jest.spyOn(store, 'getState').mockReturnValue( <any>{
         service :{
-          serviceInstance : {
+          serviceInstance :{
             "serviceModelId" : {
               optionalGroupMembersMap : {}
             }
@@ -132,6 +132,24 @@ describe("AaiService", () => {
       req.flush(mockedResult);
     });
   });
+
+
+  describe('# get active networks', () =>{
+    test('aai service get active networks', () => {
+      const mockedResult = getMockActiveNetworks();
+      const cloudRegion: string = "cloudRegion";
+      const tenantId: string = "tenantId";
+      aaiService.retrieveActiveNetwork(cloudRegion, tenantId).subscribe((res)=>{
+        expect(res.length).toEqual(mockedResult.length);
+      });
+
+      const req = httpMock.expectOne(`${Constants.Path.AAI_GET_ACTIVE_NETWORKS_PATH}?cloudRegion=${cloudRegion}&tenantId=${tenantId}`);
+      expect(req.request.method).toEqual('GET');
+      req.flush(mockedResult);
+    });
+  });
+
+
   describe('#cloud owner tests', () => {
     let featureFlagToLcpRegionName = [
       ['aai service extract lcpRegion, flag is true=> lcp region include cloud owner', true, 'id (OWNER)' ],
@@ -158,38 +176,38 @@ describe("AaiService", () => {
   function getTopology() {
     return  {
       "vnfs": {
-        "2017-388_ADIOD-vPE 0": {
+        "2017-388_PASQUALE-vPE 0": {
           "vfModules": {},
           "uuid": "afacccf6-397d-45d6-b5ae-94c39734b168",
           "productFamilyId": "e433710f-9217-458d-a79d-1c7aff376d89",
-          "lcpCloudRegionId": "JANET25",
+          "lcpCloudRegionId": "AAIAIC25",
           "tenantId": "092eb9e8e4b7412e8787dd091bc58e86",
           "lineOfBusiness": "ONAP",
           "platformName": "platform",
           "modelInfo": {
             "modelInvariantId": "72e465fe-71b1-4e7b-b5ed-9496118ff7a8",
             "modelVersionId": "afacccf6-397d-45d6-b5ae-94c39734b168",
-            "modelName": "2017-388_ADIOD-vPE",
+            "modelName": "2017-388_PASQUALE-vPE",
             "modelVersion": "4.0",
             "modelCustomizationId": "b3c76f73-eeb5-4fb6-9d31-72a889f1811c",
-            "modelCustomizationName": "2017-388_ADIOD-vPE 0",
+            "modelCustomizationName": "2017-388_PASQUALE-vPE 0",
             "uuid": "afacccf6-397d-45d6-b5ae-94c39734b168"
           },
-          "instanceName": "2017388_ADIODvPEmCaNkinstanceName",
+          "instanceName": "2017388_PASQUALEvPEmCaNkinstanceName",
           "legacyRegion": "some legacy region"
         },
-        "2017-488_ADIOD-vPE 0": {
+        "2017-488_PASQUALE-vPE 0": {
           "vfModules": {
-            "2017488_adiodvpe0..2017488AdiodVpe..ADIOD_base_vPE_BV..module-0": {
-              "2017488_adiodvpe0..2017488AdiodVpe..ADIOD_base_vPE_BV..module-0uvfot": {
+            "2017488_pasqualevpe0..2017488PasqualeVpe..PASQUALE_base_vPE_BV..module-0": {
+              "2017488_pasqualevpe0..2017488PasqualeVpe..PASQUALE_base_vPE_BV..module-0uvfot": {
                 "instanceName": "VFinstancenameZERO",
                 "modelInfo": {
                   "modelInvariantId": "b34833bb-6aa9-4ad6-a831-70b06367a091",
                   "modelVersionId": "f8360508-3f17-4414-a2ed-6bc71161e8db",
-                  "modelName": "2017488AdiodVpe..ADIOD_base_vPE_BV..module-0",
+                  "modelName": "2017488PasqualeVpe..PASQUALE_base_vPE_BV..module-0",
                   "modelVersion": "5",
                   "modelCustomizationId": "a55961b2-2065-4ab0-a5b7-2fcee1c227e3",
-                  "modelCustomizationName": "2017488AdiodVpe..ADIOD_base_vPE_BV..module-0",
+                  "modelCustomizationName": "2017488PasqualeVpe..PASQUALE_base_vPE_BV..module-0",
                   "uuid": "f8360508-3f17-4414-a2ed-6bc71161e8db"
                 },
                 "uuid": "f8360508-3f17-4414-a2ed-6bc71161e8db",
@@ -198,8 +216,8 @@ describe("AaiService", () => {
                 "inMaint": true
               }
             },
-            "2017488_adiodvpe0..2017488AdiodVpe..ADIOD_vRE_BV..module-1": {
-              "2017488_adiodvpe0..2017488AdiodVpe..ADIOD_vRE_BV..module-1fshmc": {
+            "2017488_pasqualevpe0..2017488PasqualeVpe..PASQUALE_vRE_BV..module-1": {
+              "2017488_pasqualevpe0..2017488PasqualeVpe..PASQUALE_vRE_BV..module-1fshmc": {
                 "instanceName": "VFinstancename",
                 "volumeGroupName": "VFinstancename_vol_abc",
                 "orchStatus": "Create",
@@ -208,10 +226,10 @@ describe("AaiService", () => {
                 "modelInfo": {
                   "modelInvariantId": "7253ff5c-97f0-4b8b-937c-77aeb4d79aa1",
                   "modelVersionId": "25284168-24bb-4698-8cb4-3f509146eca5",
-                  "modelName": "2017488AdiodVpe..ADIOD_vRE_BV..module-1",
+                  "modelName": "2017488PasqualeVpe..PASQUALE_vRE_BV..module-1",
                   "modelVersion": "6",
                   "modelCustomizationId": "f7e7c365-60cf-49a9-9ebf-a1aa11b9d401",
-                  "modelCustomizationName": "2017488AdiodVpe..ADIOD_vRE_BV..module-1",
+                  "modelCustomizationName": "2017488PasqualeVpe..PASQUALE_vRE_BV..module-1",
                   "uuid": "25284168-24bb-4698-8cb4-3f509146eca5"
                 },
                 "uuid": "25284168-24bb-4698-8cb4-3f509146eca5"
@@ -220,54 +238,54 @@ describe("AaiService", () => {
           },
           "uuid": "69e09f68-8b63-4cc9-b9ff-860960b5db09",
           "productFamilyId": "e433710f-9217-458d-a79d-1c7aff376d89",
-          "lcpCloudRegionId": "JANET25",
+          "lcpCloudRegionId": "AAIAIC25",
           "tenantId": "092eb9e8e4b7412e8787dd091bc58e86",
           "lineOfBusiness": "ONAP",
           "platformName": "platform",
           "modelInfo": {
             "modelInvariantId": "72e465fe-71b1-4e7b-b5ed-9496118ff7a8",
             "modelVersionId": "69e09f68-8b63-4cc9-b9ff-860960b5db09",
-            "modelName": "2017-488_ADIOD-vPE",
+            "modelName": "2017-488_PASQUALE-vPE",
             "modelVersion": "5.0",
             "modelCustomizationId": "1da7b585-5e61-4993-b95e-8e6606c81e45",
-            "modelCustomizationName": "2017-488_ADIOD-vPE 0",
+            "modelCustomizationName": "2017-488_PASQUALE-vPE 0",
             "uuid": "69e09f68-8b63-4cc9-b9ff-860960b5db09"
           },
           "orchStatus": "Created",
           "inMaint": false,
-          "instanceName": "2017488_ADIODvPEVNFinstancename",
+          "instanceName": "2017488_PASQUALEvPEVNFinstancename",
           "legacyRegion": "some legacy region"
         },
-        "2017-488_ADIOD-vPE 0:0001": {
+        "2017-488_PASQUALE-vPE 0:0001": {
           "vfModules": {
-            "2017488_adiodvpe0..2017488AdiodVpe..ADIOD_base_vPE_BV..module-0": {
-              "2017488_adiodvpe0..2017488AdiodVpe..ADIOD_base_vPE_BV..module-0uvfot": {
+            "2017488_pasqualevpe0..2017488PasqualeVpe..PASQUALE_base_vPE_BV..module-0": {
+              "2017488_pasqualevpe0..2017488PasqualeVpe..PASQUALE_base_vPE_BV..module-0uvfot": {
                 "instanceName": "VFinstancenameZERO_001",
                 "provStatus": "Prov Status",
                 "inMaint": true,
                 "modelInfo": {
                   "modelInvariantId": "b34833bb-6aa9-4ad6-a831-70b06367a091",
                   "modelVersionId": "f8360508-3f17-4414-a2ed-6bc71161e8db",
-                  "modelName": "2017488AdiodVpe..ADIOD_base_vPE_BV..module-0",
+                  "modelName": "2017488PasqualeVpe..PASQUALE_base_vPE_BV..module-0",
                   "modelVersion": "5",
                   "modelCustomizationId": "a55961b2-2065-4ab0-a5b7-2fcee1c227e3",
-                  "modelCustomizationName": "2017488AdiodVpe..ADIOD_base_vPE_BV..module-0",
+                  "modelCustomizationName": "2017488PasqualeVpe..PASQUALE_base_vPE_BV..module-0",
                   "uuid": "f8360508-3f17-4414-a2ed-6bc71161e8db"
                 },
                 "uuid": "f8360508-3f17-4414-a2ed-6bc71161e8db"
               }
             },
-            "2017488_adiodvpe0..2017488AdiodVpe..ADIOD_vRE_BV..module-1": {
-              "2017488_adiodvpe0..2017488AdiodVpe..ADIOD_vRE_BV..module-1fshmc": {
+            "2017488_pasqualevpe0..2017488PasqualeVpe..PASQUALE_vRE_BV..module-1": {
+              "2017488_pasqualevpe0..2017488PasqualeVpe..PASQUALE_vRE_BV..module-1fshmc": {
                 "instanceName": "VFinstancename_001",
                 "volumeGroupName": "VFinstancename_vol_abc_001",
                 "modelInfo": {
                   "modelInvariantId": "7253ff5c-97f0-4b8b-937c-77aeb4d79aa1",
                   "modelVersionId": "25284168-24bb-4698-8cb4-3f509146eca5",
-                  "modelName": "2017488AdiodVpe..ADIOD_vRE_BV..module-1",
+                  "modelName": "2017488PasqualeVpe..PASQUALE_vRE_BV..module-1",
                   "modelVersion": "6",
                   "modelCustomizationId": "f7e7c365-60cf-49a9-9ebf-a1aa11b9d401",
-                  "modelCustomizationName": "2017488AdiodVpe..ADIOD_vRE_BV..module-1",
+                  "modelCustomizationName": "2017488PasqualeVpe..PASQUALE_vRE_BV..module-1",
                   "uuid": "25284168-24bb-4698-8cb4-3f509146eca5"
                 },
                 "uuid": "25284168-24bb-4698-8cb4-3f509146eca5"
@@ -277,50 +295,50 @@ describe("AaiService", () => {
 
           "uuid": "69e09f68-8b63-4cc9-b9ff-860960b5db09",
           "productFamilyId": "e433710f-9217-458d-a79d-1c7aff376d89",
-          "lcpCloudRegionId": "JANET25",
+          "lcpCloudRegionId": "AAIAIC25",
           "tenantId": "092eb9e8e4b7412e8787dd091bc58e86",
           "lineOfBusiness": "ONAP",
           "platformName": "platform",
           "modelInfo": {
             "modelInvariantId": "72e465fe-71b1-4e7b-b5ed-9496118ff7a8",
             "modelVersionId": "69e09f68-8b63-4cc9-b9ff-860960b5db09",
-            "modelName": "2017-488_ADIOD-vPE",
+            "modelName": "2017-488_PASQUALE-vPE",
             "modelVersion": "5.0",
             "modelCustomizationId": "1da7b585-5e61-4993-b95e-8e6606c81e45",
-            "modelCustomizationName": "2017-488_ADIOD-vPE 0",
+            "modelCustomizationName": "2017-488_PASQUALE-vPE 0",
             "uuid": "69e09f68-8b63-4cc9-b9ff-860960b5db09"
           },
-          "instanceName": "2017488_ADIODvPEVNFinstancename_001",
+          "instanceName": "2017488_PASQUALEvPEVNFinstancename_001",
           "legacyRegion": "some legacy region"
         },
-        "2017-488_ADIOD-vPE 0:0002": {
+        "2017-488_PASQUALE-vPE 0:0002": {
           "vfModules": {
-            "2017488_adiodvpe0..2017488AdiodVpe..ADIOD_base_vPE_BV..module-0": {
-              "2017488_adiodvpe0..2017488AdiodVpe..ADIOD_base_vPE_BV..module-0uvfot": {
+            "2017488_pasqualevpe0..2017488PasqualeVpe..PASQUALE_base_vPE_BV..module-0": {
+              "2017488_pasqualevpe0..2017488PasqualeVpe..PASQUALE_base_vPE_BV..module-0uvfot": {
                 "instanceName": "VFinstancenameZERO_002",
                 "modelInfo": {
                   "modelInvariantId": "b34833bb-6aa9-4ad6-a831-70b06367a091",
                   "modelVersionId": "f8360508-3f17-4414-a2ed-6bc71161e8db",
-                  "modelName": "2017488AdiodVpe..ADIOD_base_vPE_BV..module-0",
+                  "modelName": "2017488PasqualeVpe..PASQUALE_base_vPE_BV..module-0",
                   "modelVersion": "5",
                   "modelCustomizationId": "a55961b2-2065-4ab0-a5b7-2fcee1c227e3",
-                  "modelCustomizationName": "2017488AdiodVpe..ADIOD_base_vPE_BV..module-0",
+                  "modelCustomizationName": "2017488PasqualeVpe..PASQUALE_base_vPE_BV..module-0",
                   "uuid": "f8360508-3f17-4414-a2ed-6bc71161e8db"
                 },
                 "uuid": "f8360508-3f17-4414-a2ed-6bc71161e8db"
               }
             },
-            "2017488_adiodvpe0..2017488AdiodVpe..ADIOD_vRE_BV..module-1": {
-              "2017488_adiodvpe0..2017488AdiodVpe..ADIOD_vRE_BV..module-1fshmc": {
+            "2017488_pasqualevpe0..2017488PasqualeVpe..PASQUALE_vRE_BV..module-1": {
+              "2017488_pasqualevpe0..2017488PasqualeVpe..PASQUALE_vRE_BV..module-1fshmc": {
                 "instanceName": "VFinstancename_002",
                 "volumeGroupName": "VFinstancename_vol_abc_002",
                 "modelInfo": {
                   "modelInvariantId": "7253ff5c-97f0-4b8b-937c-77aeb4d79aa1",
                   "modelVersionId": "25284168-24bb-4698-8cb4-3f509146eca5",
-                  "modelName": "2017488AdiodVpe..ADIOD_vRE_BV..module-1",
+                  "modelName": "2017488PasqualeVpe..PASQUALE_vRE_BV..module-1",
                   "modelVersion": "6",
                   "modelCustomizationId": "f7e7c365-60cf-49a9-9ebf-a1aa11b9d401",
-                  "modelCustomizationName": "2017488AdiodVpe..ADIOD_vRE_BV..module-1",
+                  "modelCustomizationName": "2017488PasqualeVpe..PASQUALE_vRE_BV..module-1",
                   "uuid": "25284168-24bb-4698-8cb4-3f509146eca5"
                 },
                 "uuid": "25284168-24bb-4698-8cb4-3f509146eca5"
@@ -329,20 +347,20 @@ describe("AaiService", () => {
           },
           "uuid": "69e09f68-8b63-4cc9-b9ff-860960b5db09",
           "productFamilyId": "e433710f-9217-458d-a79d-1c7aff376d89",
-          "lcpCloudRegionId": "JANET25",
+          "lcpCloudRegionId": "AAIAIC25",
           "tenantId": "092eb9e8e4b7412e8787dd091bc58e86",
           "lineOfBusiness": "ONAP",
           "platformName": "platform",
           "modelInfo": {
             "modelInvariantId": "72e465fe-71b1-4e7b-b5ed-9496118ff7a8",
             "modelVersionId": "69e09f68-8b63-4cc9-b9ff-860960b5db09",
-            "modelName": "2017-488_ADIOD-vPE",
+            "modelName": "2017-488_PASQUALE-vPE",
             "modelVersion": "5.0",
             "modelCustomizationId": "1da7b585-5e61-4993-b95e-8e6606c81e45",
-            "modelCustomizationName": "2017-488_ADIOD-vPE 0",
+            "modelCustomizationName": "2017-488_PASQUALE-vPE 0",
             "uuid": "69e09f68-8b63-4cc9-b9ff-860960b5db09"
           },
-          "instanceName": "2017488_ADIODvPEVNFinstancename_002",
+          "instanceName": "2017488_PASQUALEvPEVNFinstancename_002",
           "legacyRegion": "some legacy region"
         }
       },
@@ -380,6 +398,110 @@ describe("AaiService", () => {
     }
   }
 
+  function getMockActiveNetworks(){
+    return [
+      {
+        networkInstanceName: "networkInstanceName",
+        instanceVersion: "instanceVersion",
+        networkModel: "networkModel",
+        instanceUUID: "instanceUUID_1",
+        provStatus: "provStatus",
+        orchStatus: "orchStatus",
+        serviceInstanceName: "serviceInstanceName",
+        serviceUUID: "serviceUUID",
+        roles: ["network role 1", "network role 2"],
+      },
+      {
+        networkInstanceName: "networkInstanceName",
+        instanceVersion: "instanceVersion",
+        networkModel: "networkModel",
+        instanceUUID: "instanceUUID_2",
+        provStatus: "provStatus",
+        orchStatus: "orchStatus",
+        serviceInstanceName: "serviceInstanceName",
+        serviceUUID: "serviceUUID",
+        roles: ["network role 1", "network role 3"],
+      },
+      {
+        networkInstanceName: "networkInstanceName",
+        instanceVersion: "instanceVersion",
+        networkModel: "networkModel",
+        instanceUUID: "instanceUUID_3",
+        provStatus: "provStatus",
+        orchStatus: "orchStatus",
+        serviceInstanceName: "serviceInstanceName",
+        serviceUUID: "serviceUUID",
+        roles: ["network role 4", "network role 8"],
+      },
+      {
+        networkInstanceName: "networkInstanceName",
+        instanceVersion: "instanceVersion",
+        networkModel: "networkModel",
+        instanceUUID: "instanceUUID_4",
+        provStatus: "provStatus",
+        orchStatus: "orchStatus",
+        serviceInstanceName: "serviceInstanceName",
+        serviceUUID: "serviceUUID",
+        roles: [],
+      },
+      {
+        networkInstanceName: "networkInstanceName",
+        instanceVersion: "instanceVersion",
+        networkModel: "networkModel",
+        instanceUUID: "instanceUUID_5",
+        provStatus: "provStatus",
+        orchStatus: "orchStatus",
+        serviceInstanceName: "serviceInstanceName",
+        serviceUUID: "serviceUUID",
+        roles: ["network role 6", "network role 1"],
+      },
+      {
+        networkInstanceName: "networkInstanceName",
+        instanceVersion: "instanceVersion",
+        networkModel: "networkModel",
+        instanceUUID: "instanceUUID_6",
+        provStatus: "provStatus",
+        orchStatus: "orchStatus",
+        serviceInstanceName: "serviceInstanceName",
+        serviceUUID: "serviceUUID",
+        roles: ["network role 5"],
+      },
+      {
+        networkInstanceName: "networkInstanceName",
+        instanceVersion: "instanceVersion",
+        networkModel: "networkModel",
+        instanceUUID: "instanceUUID_7",
+        provStatus: "provStatus",
+        orchStatus: "orchStatus",
+        serviceInstanceName: "serviceInstanceName",
+        serviceUUID: "serviceUUID",
+        roles: ["network role 3"],
+      },
+      {
+        networkInstanceName: "networkInstanceName",
+        instanceVersion: "instanceVersion",
+        networkModel: "networkModel",
+        instanceUUID: "instanceUUID_8",
+        provStatus: "provStatus",
+        orchStatus: "orchStatus",
+        serviceInstanceName: "serviceInstanceName",
+        serviceUUID: "serviceUUID",
+        roles: ["network role 4"],
+      },
+      {
+        networkInstanceName: "networkInstanceName",
+        instanceVersion: "instanceVersion",
+        networkModel: "networkModel",
+        instanceUUID: "instanceUUID_9",
+        provStatus: "provStatus",
+        orchStatus: "orchStatus",
+        serviceInstanceName: "serviceInstanceName",
+        serviceUUID: "serviceUUID",
+        roles: [],
+      }
+    ]
+  }
+
   const getMockMembers = (): any[] => {
     return [
       {
index 1b102e6..4e7e4da 100644 (file)
@@ -41,7 +41,8 @@ import {updateModel, createServiceInstance} from "../../storeUtil/utils/service/
 import {FeatureFlagsService, Features} from "../featureFlag/feature-flags.service";
 import {VnfMember} from "../../models/VnfMember";
 import {setOptionalMembersVnfGroupInstance} from "../../storeUtil/utils/vnfGroup/vnfGroup.actions";
-import {Observable} from "rxjs";
+import {Observable} from "rxjs";import {NetworkModalRow} from "../../../drawingBoard/service-planning/objectsToTree/models/vrf/vrfModal/networkStep/network.step.model";
+import {VPNModalRow} from "../../../drawingBoard/service-planning/objectsToTree/models/vrf/vrfModal/vpnStep/vpn.step.model";
 
 @Injectable()
 export class AaiService {
@@ -217,7 +218,7 @@ export class AaiService {
   };
 
   public static formatCloudOwnerTrailer(cloudOwner: string):string {
-    return " ("+ cloudOwner.trim().toLowerCase().replace(/^att-/, "").toUpperCase() + ")";
+    return " ("+ cloudOwner.trim().toLowerCase().replace(/^[^-]*-/, "").toUpperCase() + ")";
   }
 
   getServiceTypes = (subscriberId): Observable<ServiceType[]> => {
@@ -235,7 +236,7 @@ export class AaiService {
   };
 
   getSubscriberDetails = (subscriberId): Observable<GetSubDetailsResponse> => {
-    let pathQuery: string = Constants.Path.AAI_SUB_DETAILS_PATH + subscriberId + Constants.Path.ASSIGN + Math.random();
+    let pathQuery: string = Constants.Path.AAI_SUB_DETAILS_PATH + subscriberId + Constants.Path.ASSIGN + Math.random() + Constants.Path.AAI_OMIT_SERVICE_INSTANCES + true;
 
     if (subscriberId != null) {
       return this.http.get<GetSubDetailsResponse>(pathQuery);
@@ -257,6 +258,16 @@ export class AaiService {
     return this.http.get<ServiceInstance>(pathQuery);
   }
 
+  public retrieveActiveNetwork(cloudRegion : string, tenantId: string) : Observable<NetworkModalRow[]>{
+    let pathQuery: string = `${Constants.Path.AAI_GET_ACTIVE_NETWORKS_PATH}?cloudRegion=${cloudRegion}&tenantId=${tenantId}`;
+    return this.http.get<NetworkModalRow[]>(pathQuery);
+  }
+
+  public retrieveActiveVPNs() : Observable<VPNModalRow[]>{
+    let pathQuery: string = `${Constants.Path.AAI_GET_VPNS_PATH}`;
+    return this.http.get<VPNModalRow[]>(pathQuery);
+  }
+
   public retrieveAndStoreServiceInstanceTopology(serviceInstanceId: string, subscriberId: string, serviceType: string, serviceModeId: string):Observable<ServiceInstance> {
     return this.retrieveServiceInstanceTopology(serviceInstanceId, subscriberId, serviceType).do((service:ServiceInstance) => {
       this.store.dispatch(createServiceInstance(service, serviceModeId));
@@ -268,257 +279,6 @@ export class AaiService {
     let pathQuery: string = `${Constants.Path.SERVICES_RETRY_TOPOLOGY}/${jobId}`;
     return this.http.get<ServiceInstance>(pathQuery);
 
-    // return  of(
-    //   <any>{
-    //     "action": "None",
-    //     "instanceName": "LXzQMx9clZl7D6ckJ",
-    //     "instanceId": "service-instance-id",
-    //     "orchStatus": "GARBAGE DATA",
-    //     "productFamilyId": null,
-    //     "lcpCloudRegionId": null,
-    //     "tenantId": null,
-    //     "modelInfo": {
-    //       "modelInvariantId": "d27e42cf-087e-4d31-88ac-6c4b7585f800",
-    //       "modelVersionId": "6e59c5de-f052-46fa-aa7e-2fca9d674c44",
-    //       "modelName": "vf_vEPDG",
-    //       "modelType": "service",
-    //       "modelVersion": "5.0"
-    //     },
-    //     "globalSubscriberId": "global-customer-id",
-    //     "subscriptionServiceType": "service-instance-type",
-    //     "owningEntityId": null,
-    //     "owningEntityName": null,
-    //     "tenantName": null,
-    //     "aicZoneId": null,
-    //     "aicZoneName": null,
-    //     "projectName": null,
-    //     "rollbackOnFailure": null,
-    //     "isALaCarte": false,
-    //     "vnfs": {
-    //       "1e918ade-3dc6-4cec-b952-3ff94ed82d1c": {
-    //         "action": "None",
-    //         "instanceName": "DgZuxjJy5LMIc3755",
-    //         "instanceId": "1e918ade-3dc6-4cec-b952-3ff94ed82d1c",
-    //         "orchStatus": null,
-    //         "productFamilyId": null,
-    //         "lcpCloudRegionId": null,
-    //         "tenantId": null,
-    //         "modelInfo": {
-    //           "modelInvariantId": "vnf-instance-model-invariant-id",
-    //           "modelVersionId": "vnf-instance-model-version-id",
-    //           "modelType": "vnf"
-    //         },
-    //         "instanceType": "SXDBMhwdR9iO0g1Uv",
-    //         "provStatus": null,
-    //         "inMaint": false,
-    //         "uuid": "vnf-instance-model-version-id",
-    //         "originalName": null,
-    //         "legacyRegion": null,
-    //         "lineOfBusiness": null,
-    //         "platformName": null,
-    //         "trackById": "1e918ade-3dc6-4cec-b952-3ff94ed82d1c",
-    //         "vfModules": {},
-    //         "networks": {
-    //           "ff464c97-ea9c-4165-996a-fe400499af3e": {
-    //             "action": "None",
-    //             "instanceName": "ZI0quzIpu8TNXS7nl",
-    //             "instanceId": "ff464c97-ea9c-4165-996a-fe400499af3e",
-    //             "orchStatus": "Assigned",
-    //             "productFamilyId": null,
-    //             "lcpCloudRegionId": null,
-    //             "tenantId": null,
-    //             "modelInfo": {
-    //               "modelInvariantId": "network-instance-model-invariant-id",
-    //               "modelVersionId": "network-instance-model-version-id",
-    //               "modelType": "network"
-    //             },
-    //             "instanceType": "CONTRAIL30_BASIC",
-    //             "provStatus": "prov",
-    //             "inMaint": false,
-    //             "uuid": "network-instance-model-version-id",
-    //             "originalName": null,
-    //             "legacyRegion": null,
-    //             "lineOfBusiness": null,
-    //             "platformName": null,
-    //             "trackById": "ff464c97-ea9c-4165-996a-fe400499af3e",
-    //             "isFailed": true
-    //           },
-    //           "3e41d57c-8bb4-443e-af02-9f86487ba938": {
-    //             "action": "None",
-    //             "instanceName": "0i9asscqSLm7Poeb8",
-    //             "instanceId": "3e41d57c-8bb4-443e-af02-9f86487ba938",
-    //             "orchStatus": "Created",
-    //             "productFamilyId": null,
-    //             "lcpCloudRegionId": null,
-    //             "tenantId": null,
-    //             "modelInfo": {
-    //               "modelInvariantId": "network-instance-model-invariant-id",
-    //               "modelVersionId": "network-instance-model-version-id",
-    //               "modelType": "network"
-    //             },
-    //             "instanceType": "CONTRAIL30_BASIC",
-    //             "provStatus": "prov",
-    //             "inMaint": false,
-    //             "uuid": "network-instance-model-version-id",
-    //             "originalName": null,
-    //             "legacyRegion": null,
-    //             "lineOfBusiness": null,
-    //             "platformName": null,
-    //             "trackById": "3e41d57c-8bb4-443e-af02-9f86487ba938",
-    //             "isFailed": true
-    //           }
-    //         },
-    //         "isFailed": true
-    //       },
-    //       "9a9b2705-c569-4f1b-9a67-13e9f86e6c55": {
-    //         "isFailed": true,
-    //         "action": "None",
-    //         "instanceName": "TFn0SYhrCUs7L3qWS",
-    //         "instanceId": "9a9b2705-c569-4f1b-9a67-13e9f86e6c55",
-    //         "orchStatus": null,
-    //         "productFamilyId": null,
-    //         "lcpCloudRegionId": null,
-    //         "tenantId": null,
-    //         "modelInfo": {
-    //           "modelCustomizationName": "VF_vMee 0",
-    //           "modelInvariantId": "vnf-instance-model-invariant-id",
-    //           "modelVersionId": "d6557200-ecf2-4641-8094-5393ae3aae60",
-    //           "modelType": "vnf"
-    //         },
-    //         "instanceType": "WIT68GUnH34VaGZgp",
-    //         "provStatus": null,
-    //         "inMaint": true,
-    //         "uuid": "d6557200-ecf2-4641-8094-5393ae3aae60",
-    //         "originalName": "VF_vMee 0",
-    //         "legacyRegion": null,
-    //         "lineOfBusiness": null,
-    //         "platformName": null,
-    //         "trackById": "9a9b2705-c569-4f1b-9a67-13e9f86e6c55",
-    //         "vfModules": {
-    //           "vf_vmee0..VfVmee..vmme_vlc..module-1": {
-    //             "2c1ca484-cbc2-408b-ab86-25a2c15ce280": {
-    //               "action": "None",
-    //               "instanceName": "ss820f_0918_db",
-    //               "instanceId": "2c1ca484-cbc2-408b-ab86-25a2c15ce280",
-    //               "orchStatus": "deleted",
-    //               "productFamilyId": null,
-    //               "lcpCloudRegionId": null,
-    //               "tenantId": null,
-    //               "modelInfo": {
-    //                 "modelCustomizationName": "VfVmee..vmme_vlc..module-1",
-    //                 "modelCustomizationId": "b200727a-1bf9-4e7c-bd06-b5f4c9d920b9",
-    //                 "modelInvariantId": "09edc9ef-85d0-4b26-80de-1f569d49e750",
-    //                 "modelVersionId": "522159d5-d6e0-4c2a-aa44-5a542a12a830",
-    //                 "modelType": "vfModule"
-    //               },
-    //               "instanceType": null,
-    //               "provStatus": null,
-    //               "inMaint": true,
-    //               "uuid": "522159d5-d6e0-4c2a-aa44-5a542a12a830",
-    //               "originalName": "VfVmee..vmme_vlc..module-1",
-    //               "legacyRegion": null,
-    //               "lineOfBusiness": null,
-    //               "platformName": null,
-    //               "trackById": "2c1ca484-cbc2-408b-ab86-25a2c15ce280",
-    //               "isBase": false,
-    //               "volumeGroupName": null,
-    //               "isFailed": true
-    //             }
-    //           },
-    //           "dc229cd8-c132-4455-8517-5c1787c18b14": {
-    //             "3ef042c4-259f-45e0-9aba-0989bd8d1cc5": {
-    //               "action": "None",
-    //               "instanceName": "ss820f_0918_base",
-    //               "instanceId": "3ef042c4-259f-45e0-9aba-0989bd8d1cc5",
-    //               "orchStatus": "Assigned",
-    //               "productFamilyId": null,
-    //               "lcpCloudRegionId": null,
-    //               "tenantId": null,
-    //               "modelInfo": {
-    //                 "modelCustomizationId": "8ad8670b-0541-4499-8101-275bbd0e8b6a",
-    //                 "modelInvariantId": "1e463c9c-404d-4056-ba56-28fd102608de",
-    //                 "modelVersionId": "dc229cd8-c132-4455-8517-5c1787c18b14",
-    //                 "modelType": "vfModule"
-    //               },
-    //               "instanceType": null,
-    //               "provStatus": null,
-    //               "inMaint": false,
-    //               "uuid": "dc229cd8-c132-4455-8517-5c1787c18b14",
-    //               "originalName": null,
-    //               "legacyRegion": null,
-    //               "lineOfBusiness": null,
-    //               "platformName": null,
-    //               "trackById": "3ef042c4-259f-45e0-9aba-0989bd8d1cc5",
-    //               "isBase": true,
-    //               "volumeGroupName": null
-    //             }
-    //           }
-    //         },
-    //         "networks": {}
-    //       }
-    //     },
-    //     "networks": {
-    //       "e1edb09e-e68b-4ebf-adb8-e2587be56257": {
-    //         "action": "None",
-    //         "instanceName": "cNpGlYQDsmrUDK5iG",
-    //         "instanceId": "e1edb09e-e68b-4ebf-adb8-e2587be56257",
-    //         "orchStatus": "Created",
-    //         "productFamilyId": null,
-    //         "lcpCloudRegionId": null,
-    //         "tenantId": null,
-    //         "modelInfo": {
-    //           "modelInvariantId": "network-instance-model-invariant-id",
-    //           "modelVersionId": "ddc3f20c-08b5-40fd-af72-c6d14636b986",
-    //           "modelType": "network"
-    //         },
-    //         "instanceType": "CONTRAIL30_HIMELGUARD",
-    //         "provStatus": "preprov",
-    //         "inMaint": false,
-    //         "uuid": "ddc3f20c-08b5-40fd-af72-c6d14636b986",
-    //         "originalName": null,
-    //         "legacyRegion": null,
-    //         "lineOfBusiness": null,
-    //         "platformName": null,
-    //         "trackById": "e1edb09e-e68b-4ebf-adb8-e2587be56257"
-    //       },
-    //       "de4b5203-ad1c-4f2b-8843-5236fb8dc9ba": {
-    //         "action": "None",
-    //         "instanceName": "EI9QlSRVK0lon54Cb",
-    //         "instanceId": "de4b5203-ad1c-4f2b-8843-5236fb8dc9ba",
-    //         "orchStatus": "Assigned",
-    //         "productFamilyId": null,
-    //         "lcpCloudRegionId": null,
-    //         "tenantId": null,
-    //         "modelInfo": {
-    //           "modelInvariantId": "network-instance-model-invariant-id",
-    //           "modelVersionId": "ddc3f20c-08b5-40fd-af72-c6d14636b986",
-    //           "modelType": "network"
-    //         },
-    //         "instanceType": "CONTRAIL30_BASIC",
-    //         "provStatus": "nvtprov",
-    //         "inMaint": false,
-    //         "uuid": "ddc3f20c-08b5-40fd-af72-c6d14636b986",
-    //         "originalName": null,
-    //         "legacyRegion": null,
-    //         "lineOfBusiness": null,
-    //         "platformName": null,
-    //         "trackById": "de4b5203-ad1c-4f2b-8843-5236fb8dc9ba",
-    //         "isFailed": true
-    //       }
-    //     },
-    //     "vnfGroups": {},
-    //     "validationCounter": 0,
-    //     "existingVNFCounterMap": {
-    //       "vnf-instance-model-version-id": 1,
-    //       "d6557200-ecf2-4641-8094-5393ae3aae60": 1
-    //     },
-    //     "existingNetworksCounterMap": {
-    //       "ddc3f20c-08b5-40fd-af72-c6d14636b986": 2
-    //     },
-    //     "existingVnfGroupCounterMap": {}
-    //   }
-    // );
-
   }
 
   public retrieveAndStoreServiceInstanceRetryTopology(jobId: string, serviceModeId : string):Observable<ServiceInstance> {
@@ -561,7 +321,7 @@ export class AaiService {
         "instanceId":"VNF1_INSTANCE_ID",
         "orchStatus":null,
         "productFamilyId":null,
-        "lcpCloudRegionId":"mtn23b",
+        "lcpCloudRegionId":"hvf23b",
         "tenantId":"3e9a20a3e89e45f884e09df0cc2d2d2a",
         "tenantName":"APPC-24595-T-IST-02C",
         "modelInfo":{
@@ -589,7 +349,7 @@ export class AaiService {
         "instanceId":"VNF2_INSTANCE_ID",
         "orchStatus":null,
         "productFamilyId":null,
-        "lcpCloudRegionId":"mtn23b",
+        "lcpCloudRegionId":"hvf23b",
         "tenantId":"3e9a20a3e89e45f884e09df0cc2d2d2a",
         "tenantName":"APPC-24595-T-IST-02C",
         "modelInfo":{
index c4ef881..a34f2fe 100644 (file)
@@ -4,6 +4,7 @@ import {NgRedux} from '@angular-redux/store';
 import {DefaultDataGeneratorService} from './default.data.generator.service';
 import {ServiceNodeTypes} from "../../models/ServiceNodeTypes";
 import {VNFModel} from "../../models/vnfModel";
+
 class MockAppStore<T> {}
 
 describe('Default Data Generator Service', () => {
@@ -26,8 +27,8 @@ describe('Default Data Generator Service', () => {
 
   test('generateVFModule aLaCarte vf module object should missed data', () => {
     const serviceHierarchy = generateServiceHierarchy();
-    const vnfUUID: string = 'VF_vMee 0';
-    const vnfModuleUUID: string = 'vf_vmee0..VfVmee..base_vmme..module-0';
+    const vnfUUID: string = 'VF_vGeraldine 0';
+    const vnfModuleUUID: string = 'vf_vgeraldine0..VfVgeraldine..base_vflorence..module-0';
 
     let result = service.generateVFModule(serviceHierarchy.vnfs[vnfUUID].vfModules[vnfModuleUUID], [], false, true);
     expect(result.isMissingData).toBeTruthy();
@@ -35,8 +36,8 @@ describe('Default Data Generator Service', () => {
 
   test('generateVFModule should create vf module object', () => {
     const serviceHierarchy = generateServiceHierarchy();
-    const vnfUUID: string = 'VF_vMee 0';
-    const vnfModuleUUID: string = 'vf_vmee0..VfVmee..base_vmme..module-0';
+    const vnfUUID: string = 'VF_vGeraldine 0';
+    const vnfModuleUUID: string = 'vf_vgeraldine0..VfVgeraldine..base_vflorence..module-0';
 
     let result = service.generateVFModule(serviceHierarchy.vnfs[vnfUUID].vfModules[vnfModuleUUID], [], false, false);
 
@@ -54,7 +55,7 @@ describe('Default Data Generator Service', () => {
 
   test('generateVNFData should create vnf object', () => {
     const serviceHierarchy = generateServiceHierarchy();
-    const vnfName: string = 'VF_vMee 0';
+    const vnfName: string = 'VF_vGeraldine 0';
     const formValues = generateVNFFormValues();
 
     let result = service.generateVNFData(serviceHierarchy, vnfName, formValues, false);
@@ -79,16 +80,16 @@ describe('Default Data Generator Service', () => {
     test('get vfModule instance params', () => {
       let dynamicInputs = service.updateDynamicInputsVnfDataFromModel(ServiceNodeTypes.VFmodule, generateVFModule());
       expect(dynamicInputs).toEqual([{
-        id: '2017488_adiodvpe0_vnf_config_template_version',
+        id: '2017488_pasqualevpe0_vnf_config_template_version',
         type: 'string',
-        name: '2017488_adiodvpe0_vnf_config_template_version',
+        name: '2017488_pasqualevpe0_vnf_config_template_version',
         value: '17.2',
         isRequired: true,
         description: 'VPE Software Version'
       }, {
-        id: '2017488_adiodvpe0_AIC_CLLI',
+        id: '2017488_pasqualevpe0_AIC_CLLI',
         type: 'string',
-        name: '2017488_adiodvpe0_AIC_CLLI',
+        name: '2017488_pasqualevpe0_AIC_CLLI',
         value: 'ATLMY8GA',
         isRequired: true,
         description: 'AIC Site CLLI'
@@ -106,8 +107,8 @@ describe('Default Data Generator Service', () => {
 
   describe('#createNewVfModuleTreeNode', () => {
     test('createNewVfModuleTreeNode with isEcompGeneratedNaming instance name not fill - missing data true', () => {
-      const vnfModuleUUID: string = 'vf_vmee0..VfVmee..base_vmme..module-0';
-      const vfModuleModel = generateServiceHierarchy().vnfs['VF_vMee 0'].vfModules['vf_vmee0..VfVmee..base_vmme..module-0'];
+      const vnfModuleUUID: string = 'vf_vgeraldine0..VfVgeraldine..base_vflorence..module-0';
+      const vfModuleModel = generateServiceHierarchy().vnfs['VF_vGeraldine 0'].vfModules['vf_vgeraldine0..VfVgeraldine..base_vflorence..module-0'];
       const newVfModule = service.createNewVfModuleTreeNode(<any>{
         instanceName: "",
         instanceParams: {},
@@ -120,8 +121,8 @@ describe('Default Data Generator Service', () => {
     });
 
     test('createNewVfModuleTreeNode without isEcompGeneratedNaming missing data false', () => {
-      const vnfModuleUUID: string = 'vf_vmee0..VfVmee..base_vmme..module-0';
-      const vfModuleModel = generateServiceHierarchy().vnfs['VF_vMee 0'].vfModules['vf_vmee0..VfVmee..base_vmme..module-0'];
+      const vnfModuleUUID: string = 'vf_vgeraldine0..VfVgeraldine..base_vflorence..module-0';
+      const vfModuleModel = generateServiceHierarchy().vnfs['VF_vGeraldine 0'].vfModules['vf_vgeraldine0..VfVgeraldine..base_vflorence..module-0'];
       const newVfModule = service.createNewVfModuleTreeNode(<any>{
         instanceName: "",
         instanceParams: {},
@@ -136,7 +137,7 @@ describe('Default Data Generator Service', () => {
 
   describe('#createNewVnfTreeNode', () => {
     test('createNewVnfTreeNode with isEcompGeneratedNaming instance name not filled - missing data true', () => {
-      const vnfModel = generateServiceHierarchy().vnfs['VF_vMee 0'];
+      const vnfModel = generateServiceHierarchy().vnfs['VF_vGeraldine 0'];
       const newVnf = service.createNewTreeNode({
         uuid : '',
         instanceName: "",
@@ -152,13 +153,13 @@ describe('Default Data Generator Service', () => {
         isMissingData: false,
         trackById: Math.random().toString(),
         vnfStoreKey: "abc"
-      }, new VNFModel(vnfModel),'VF_vMee 0', 'vnfs');
-      expect(newVnf.name).toEqual('VF_vMee 0');
+      }, new VNFModel(vnfModel),'VF_vGeraldine 0', 'vnfs');
+      expect(newVnf.name).toEqual('VF_vGeraldine 0');
       expect(newVnf.missingData).toEqual(true);
     });
 
     test('createNewVnfTreeNode with isEcompGeneratedNaming instance name filled - missing data false', () => {
-      const vnfModel = generateServiceHierarchy().vnfs['VF_vMee 0'];
+      const vnfModel = generateServiceHierarchy().vnfs['VF_vGeraldine 0'];
       const newVnf = service.createNewTreeNode({
         uuid : '',
         instanceName: "instanceName",
@@ -174,7 +175,7 @@ describe('Default Data Generator Service', () => {
         isMissingData: false,
         trackById: Math.random().toString(),
         vnfStoreKey: "abc"
-      }, vnfModel,'VF_vMee 0', 'vnfs');
+      }, vnfModel,'VF_vGeraldine 0', 'vnfs');
       expect(newVnf.name).toEqual("instanceName");
       expect(newVnf.missingData).toEqual(false);
     });
@@ -184,7 +185,7 @@ describe('Default Data Generator Service', () => {
 
 
 function generateServiceHierarchy() {
-  return JSON.parse('{"service":{"uuid":"6e59c5de-f052-46fa-aa7e-2fca9d674c44","invariantUuid":"e49fbd11-e60c-4a8e-b4bf-30fbe8f4fcc0","name":"ComplexService","version":"1.0","toscaModelURL":null,"category":"Emanuel","serviceType":"","serviceRole":"","description":"ComplexService","serviceEcompNaming":"true","instantiationType":"Macro","inputs":{}},"vnfs":{"VF_vMee 0":{"uuid":"d6557200-ecf2-4641-8094-5393ae3aae60","invariantUuid":"4160458e-f648-4b30-a176-43881ffffe9e","description":"VSP_vMee","name":"VF_vMee","version":"2.0","customizationUuid":"91415b44-753d-494c-926a-456a9172bbb9","inputs":{},"commands":{},"properties":{"gpb2_Internal2_mac":"00:11:22:EF:AC:DF","sctp-b-ipv6-egress_src_start_port":"0","sctp-a-ipv6-egress_rule_application":"any","Internal2_allow_transit":"true","sctp-b-IPv6_ethertype":"IPv6","sctp-a-egress_rule_application":"any","sctp-b-ingress_action":"pass","sctp-b-ingress_rule_protocol":"icmp","ncb2_Internal1_mac":"00:11:22:EF:AC:DF","sctp-b-ipv6-ingress-src_start_port":"0.0","ncb1_Internal2_mac":"00:11:22:EF:AC:DF","fsb_volume_size_0":"320.0","sctp-b-egress_src_addresses":"local","sctp-a-ipv6-ingress_ethertype":"IPv4","sctp-a-ipv6-ingress-dst_start_port":"0","sctp-b-ipv6-ingress_rule_application":"any","domain_name":"default-domain","sctp-a-ingress_rule_protocol":"icmp","sctp-b-egress-src_start_port":"0.0","sctp-a-egress_src_addresses":"local","sctp-b-display_name":"epc-sctp-b-ipv4v6-sec-group","sctp-a-egress-src_start_port":"0.0","sctp-a-ingress_ethertype":"IPv4","sctp-b-ipv6-ingress-dst_end_port":"65535","sctp-b-dst_subnet_prefix_v6":"::","nf_naming":"{ecomp_generated_naming=true}","sctp-a-ipv6-ingress_src_subnet_prefix":"0.0.0.0","sctp-b-egress-dst_start_port":"0.0","ncb_flavor_name":"nv.c20r64d1","gpb1_Internal1_mac":"00:11:22:EF:AC:DF","sctp-b-egress_dst_subnet_prefix_len":"0.0","Internal2_net_cidr":"10.0.0.10","sctp-a-ingress-dst_start_port":"0.0","sctp-a-egress-dst_start_port":"0.0","fsb1_Internal2_mac":"00:11:22:EF:AC:DF","sctp-a-egress_ethertype":"IPv4","vlc_st_service_mode":"in-network-nat","sctp-a-ipv6-egress_ethertype":"IPv4","sctp-a-egress-src_end_port":"65535.0","sctp-b-ipv6-egress_rule_application":"any","sctp-b-egress_action":"pass","sctp-a-ingress-src_subnet_prefix_len":"0.0","sctp-b-ipv6-ingress-src_end_port":"65535.0","sctp-b-name":"epc-sctp-b-ipv4v6-sec-group","fsb2_Internal1_mac":"00:11:22:EF:AC:DF","sctp-a-ipv6-ingress-src_start_port":"0.0","sctp-b-ipv6-egress_ethertype":"IPv4","Internal1_net_cidr":"10.0.0.10","sctp-a-egress_dst_subnet_prefix":"0.0.0.0","fsb_flavor_name":"nv.c20r64d1","sctp_rule_protocol":"132","sctp-b-ipv6-ingress_src_subnet_prefix_len":"0","sctp-a-ipv6-ingress_rule_application":"any","ecomp_generated_naming":"false","sctp-a-IPv6_ethertype":"IPv6","vlc2_Internal1_mac":"00:11:22:EF:AC:DF","vlc_st_virtualization_type":"virtual-machine","sctp-b-ingress-dst_start_port":"0.0","sctp-b-ingress-dst_end_port":"65535.0","sctp-a-ipv6-ingress-src_end_port":"65535.0","sctp-a-display_name":"epc-sctp-a-ipv4v6-sec-group","sctp-b-ingress_rule_application":"any","int2_sec_group_name":"int2-sec-group","vlc_flavor_name":"nd.c16r64d1","sctp-b-ipv6-egress_src_addresses":"local","vlc_st_interface_type_int1":"other1","sctp-b-egress-src_end_port":"65535.0","sctp-a-ipv6-egress-dst_start_port":"0","vlc_st_interface_type_int2":"other2","sctp-a-ipv6-egress_rule_protocol":"any","Internal2_shared":"false","sctp-a-ipv6-egress_dst_subnet_prefix_len":"0","Internal2_rpf":"disable","vlc1_Internal1_mac":"00:11:22:EF:AC:DF","sctp-b-ipv6-egress_src_end_port":"65535","sctp-a-ipv6-egress_src_addresses":"local","sctp-a-ingress-dst_end_port":"65535.0","sctp-a-ipv6-egress_src_end_port":"65535","Internal1_forwarding_mode":"l2","Internal2_dhcp":"false","sctp-a-dst_subnet_prefix_v6":"::","pxe_image_name":"MME_PXE-Boot_16ACP04_GA.qcow2","vlc_st_interface_type_gtp":"other0","ncb1_Internal1_mac":"00:11:22:EF:AC:DF","sctp-b-src_subnet_prefix_v6":"::","sctp-a-egress_dst_subnet_prefix_len":"0.0","int1_sec_group_name":"int1-sec-group","Internal1_dhcp":"false","sctp-a-ipv6-egress_dst_end_port":"65535","Internal2_forwarding_mode":"l2","fsb2_Internal2_mac":"00:11:22:EF:AC:DF","sctp-b-egress_dst_subnet_prefix":"0.0.0.0","Internal1_net_cidr_len":"17","gpb2_Internal1_mac":"00:11:22:EF:AC:DF","sctp-b-ingress-src_subnet_prefix_len":"0.0","sctp-a-ingress_dst_addresses":"local","sctp-a-egress_action":"pass","fsb_volume_type_0":"SF-Default-SSD","ncb2_Internal2_mac":"00:11:22:EF:AC:DF","vlc_st_interface_type_sctp_a":"left","vlc_st_interface_type_sctp_b":"right","sctp-a-src_subnet_prefix_v6":"::","vlc_st_version":"2","sctp-b-egress_ethertype":"IPv4","sctp-a-ingress_rule_application":"any","gpb1_Internal2_mac":"00:11:22:EF:AC:DF","instance_ip_family_v6":"v6","sctp-a-ipv6-egress_src_start_port":"0","sctp-b-ingress-src_start_port":"0.0","sctp-b-ingress_dst_addresses":"local","fsb1_Internal1_mac":"00:11:22:EF:AC:DF","vlc_st_interface_type_oam":"management","multi_stage_design":"false","oam_sec_group_name":"oam-sec-group","Internal2_net_gateway":"10.0.0.10","sctp-a-ipv6-ingress-dst_end_port":"65535","sctp-b-ipv6-egress-dst_start_port":"0","Internal1_net_gateway":"10.0.0.10","sctp-b-ipv6-egress_rule_protocol":"any","gtp_sec_group_name":"gtp-sec-group","sctp-a-ipv6-egress_dst_subnet_prefix":"0.0.0.0","sctp-b-ipv6-egress_dst_subnet_prefix_len":"0","sctp-a-ipv6-ingress_dst_addresses":"local","sctp-a-egress_rule_protocol":"icmp","sctp-b-ipv6-egress_action":"pass","sctp-a-ipv6-egress_action":"pass","Internal1_shared":"false","sctp-b-ipv6-ingress_rule_protocol":"any","Internal2_net_cidr_len":"17","sctp-a-name":"epc-sctp-a-ipv4v6-sec-group","sctp-a-ingress-src_end_port":"65535.0","sctp-b-ipv6-ingress_src_subnet_prefix":"0.0.0.0","sctp-a-egress-dst_end_port":"65535.0","sctp-a-ingress_action":"pass","sctp-b-egress_rule_protocol":"icmp","sctp-b-ipv6-ingress_action":"pass","vlc_st_service_type":"firewall","sctp-b-ipv6-egress_dst_end_port":"65535","sctp-b-ipv6-ingress-dst_start_port":"0","vlc2_Internal2_mac":"00:11:22:EF:AC:DF","vlc_st_availability_zone":"true","fsb_volume_image_name_1":"MME_FSB2_16ACP04_GA.qcow2","sctp-b-ingress-src_subnet_prefix":"0.0.0.0","sctp-a-ipv6-ingress_src_subnet_prefix_len":"0","Internal1_allow_transit":"true","gpb_flavor_name":"nv.c20r64d1","availability_zone_max_count":"1","fsb_volume_image_name_0":"MME_FSB1_16ACP04_GA.qcow2","sctp-b-ipv6-ingress_dst_addresses":"local","sctp-b-ipv6-egress_dst_subnet_prefix":"0.0.0.0","sctp-b-ipv6-ingress_ethertype":"IPv4","vlc1_Internal2_mac":"00:11:22:EF:AC:DF","sctp-a-ingress-src_subnet_prefix":"0.0.0.0","sctp-a-ipv6-ingress_action":"pass","Internal1_rpf":"disable","sctp-b-ingress_ethertype":"IPv4","sctp-b-egress_rule_application":"any","sctp-b-ingress-src_end_port":"65535.0","sctp-a-ipv6-ingress_rule_protocol":"any","sctp-a-ingress-src_start_port":"0.0","sctp-b-egress-dst_end_port":"65535.0"},"type":"VF","modelCustomizationName":"VF_vMee 0","vfModules":{"vf_vmee0..VfVmee..vmme_vlc..module-1":{"uuid":"522159d5-d6e0-4c2a-aa44-5a542a12a830","invariantUuid":"98a7c88b-b577-476a-90e4-e25a5871e02b","customizationUuid":"55b1be94-671a-403e-a26c-667e9c47d091","description":null,"name":"VfVmee..vmme_vlc..module-1","version":"2","modelCustomizationName":"VfVmee..vmme_vlc..module-1","properties":{"minCountInstances":0,"maxCountInstances":null,"initialCount":0,"vfModuleLabel":"vmme_vlc"},"inputs":{},"volumeGroupAllowed":false},"vf_vmee0..VfVmee..vmme_gpb..module-2":{"uuid":"41708296-e443-4c71-953f-d9a010f059e1","invariantUuid":"1cca90b8-3490-495e-87da-3f3e4c57d5b9","customizationUuid":"6add59e0-7fe1-4bc4-af48-f8812422ae7c","description":null,"name":"VfVmee..vmme_gpb..module-2","version":"2","modelCustomizationName":"VfVmee..vmme_gpb..module-2","properties":{"minCountInstances":0,"maxCountInstances":null,"initialCount":0,"vfModuleLabel":"vmme_gpb"},"inputs":{},"volumeGroupAllowed":false},"vf_vmee0..VfVmee..base_vmme..module-0":{"uuid":"a27f5cfc-7f12-4f99-af08-0af9c3885c87","invariantUuid":"a6f9e51a-2b35-416a-ae15-15e58d61f36d","customizationUuid":"f8c040f1-7e51-4a11-aca8-acf256cfd861","description":null,"name":"VfVmee..base_vmme..module-0","version":"2","modelCustomizationName":"VfVmee..base_vmme..module-0","properties":{"minCountInstances":1,"maxCountInstances":1,"initialCount":1,"vfModuleLabel":"base_vmme"},"inputs":{},"volumeGroupAllowed":true}},"volumeGroups":{"vf_vmee0..VfVmee..base_vmme..module-0":{"uuid":"a27f5cfc-7f12-4f99-af08-0af9c3885c87","invariantUuid":"a6f9e51a-2b35-416a-ae15-15e58d61f36d","customizationUuid":"f8c040f1-7e51-4a11-aca8-acf256cfd861","description":null,"name":"VfVmee..base_vmme..module-0","version":"2","modelCustomizationName":"VfVmee..base_vmme..module-0","properties":{"minCountInstances":1,"maxCountInstances":1,"initialCount":1,"vfModuleLabel":"base_vmme"},"inputs":{}}},"vfcInstanceGroups":{}}},"networks":{"ExtVL 0":{"uuid":"ddc3f20c-08b5-40fd-af72-c6d14636b986","invariantUuid":"379f816b-a7aa-422f-be30-17114ff50b7c","description":"ECOMP generic virtual link (network) base type for all other service-level and global networks","name":"ExtVL","version":"37.0","customizationUuid":"94fdd893-4a36-4d70-b16a-ec29c54c184f","inputs":{},"commands":{},"properties":{"network_assignments":"{is_external_network=false, ipv4_subnet_default_assignment={min_subnets_count=1}, ecomp_generated_network_assignment=false, ipv6_subnet_default_assignment={min_subnets_count=1}}","exVL_naming":"{ecomp_generated_naming=true}","network_flows":"{is_network_policy=false, is_bound_to_vpn=false}","network_homing":"{ecomp_selected_instance_node_target=false}"},"type":"VL","modelCustomizationName":"ExtVL 0"}},"collectionResource":{},"configurations":{"Port Mirroring Configuration By Policy 0":{"uuid":"b4398538-e89d-4f13-b33d-ca323434ba50","invariantUuid":"6ef0ca40-f366-4897-951f-abd65d25f6f7","description":"A port mirroring configuration by policy object","name":"Port Mirroring Configuration By Policy","version":"27.0","customizationUuid":"3c3b7b8d-8669-4b3b-8664-61970041fad2","inputs":{},"commands":{},"properties":{},"type":"Configuration","modelCustomizationName":"Port Mirroring Configuration By Policy 0","sourceNodes":[],"collectorNodes":null,"configurationByPolicy":false}},"serviceProxies":{},"vfModules":{"vf_vmee0..VfVmee..vmme_vlc..module-1":{"uuid":"522159d5-d6e0-4c2a-aa44-5a542a12a830","invariantUuid":"98a7c88b-b577-476a-90e4-e25a5871e02b","customizationUuid":"55b1be94-671a-403e-a26c-667e9c47d091","description":null,"name":"VfVmee..vmme_vlc..module-1","version":"2","modelCustomizationName":"VfVmee..vmme_vlc..module-1","properties":{"minCountInstances":0,"maxCountInstances":null,"initialCount":0,"vfModuleLabel":"vmme_vlc"},"inputs":{},"volumeGroupAllowed":false},"vf_vmee0..VfVmee..vmme_gpb..module-2":{"uuid":"41708296-e443-4c71-953f-d9a010f059e1","invariantUuid":"1cca90b8-3490-495e-87da-3f3e4c57d5b9","customizationUuid":"6add59e0-7fe1-4bc4-af48-f8812422ae7c","description":null,"name":"VfVmee..vmme_gpb..module-2","version":"2","modelCustomizationName":"VfVmee..vmme_gpb..module-2","properties":{"minCountInstances":0,"maxCountInstances":null,"initialCount":0,"vfModuleLabel":"vmme_gpb"},"inputs":{},"volumeGroupAllowed":false},"vf_vmee0..VfVmee..base_vmme..module-0":{"uuid":"a27f5cfc-7f12-4f99-af08-0af9c3885c87","invariantUuid":"a6f9e51a-2b35-416a-ae15-15e58d61f36d","customizationUuid":"f8c040f1-7e51-4a11-aca8-acf256cfd861","description":null,"name":"VfVmee..base_vmme..module-0","version":"2","modelCustomizationName":"VfVmee..base_vmme..module-0","properties":{"minCountInstances":1,"maxCountInstances":1,"initialCount":1,"vfModuleLabel":"base_vmme"},"inputs":{},"volumeGroupAllowed":true}},"volumeGroups":{"vf_vmee0..VfVmee..base_vmme..module-0":{"uuid":"a27f5cfc-7f12-4f99-af08-0af9c3885c87","invariantUuid":"a6f9e51a-2b35-416a-ae15-15e58d61f36d","customizationUuid":"f8c040f1-7e51-4a11-aca8-acf256cfd861","description":null,"name":"VfVmee..base_vmme..module-0","version":"2","modelCustomizationName":"VfVmee..base_vmme..module-0","properties":{"minCountInstances":1,"maxCountInstances":1,"initialCount":1,"vfModuleLabel":"base_vmme"},"inputs":{}}},"pnfs":{}}');
+  return JSON.parse('{"service":{"uuid":"6e59c5de-f052-46fa-aa7e-2fca9d674c44","invariantUuid":"e49fbd11-e60c-4a8e-b4bf-30fbe8f4fcc0","name":"ComplexService","version":"1.0","toscaModelURL":null,"category":"Emanuel","serviceType":"","serviceRole":"","description":"ComplexService","serviceEcompNaming":"true","instantiationType":"Macro","inputs":{}},"vnfs":{"VF_vGeraldine 0":{"uuid":"d6557200-ecf2-4641-8094-5393ae3aae60","invariantUuid":"4160458e-f648-4b30-a176-43881ffffe9e","description":"VSP_vGeraldine","name":"VF_vGeraldine","version":"2.0","customizationUuid":"91415b44-753d-494c-926a-456a9172bbb9","inputs":{},"commands":{},"properties":{"gpb2_Internal2_mac":"00:11:22:EF:AC:DF","sctp-b-ipv6-egress_src_start_port":"0","sctp-a-ipv6-egress_rule_application":"any","Internal2_allow_transit":"true","sctp-b-IPv6_ethertype":"IPv6","sctp-a-egress_rule_application":"any","sctp-b-ingress_action":"pass","sctp-b-ingress_rule_protocol":"icmp","ncb2_Internal1_mac":"00:11:22:EF:AC:DF","sctp-b-ipv6-ingress-src_start_port":"0.0","ncb1_Internal2_mac":"00:11:22:EF:AC:DF","fsb_volume_size_0":"320.0","sctp-b-egress_src_addresses":"local","sctp-a-ipv6-ingress_ethertype":"IPv4","sctp-a-ipv6-ingress-dst_start_port":"0","sctp-b-ipv6-ingress_rule_application":"any","domain_name":"default-domain","sctp-a-ingress_rule_protocol":"icmp","sctp-b-egress-src_start_port":"0.0","sctp-a-egress_src_addresses":"local","sctp-b-display_name":"epc-sctp-b-ipv4v6-sec-group","sctp-a-egress-src_start_port":"0.0","sctp-a-ingress_ethertype":"IPv4","sctp-b-ipv6-ingress-dst_end_port":"65535","sctp-b-dst_subnet_prefix_v6":"::","nf_naming":"{ecomp_generated_naming=true}","sctp-a-ipv6-ingress_src_subnet_prefix":"0.0.0.0","sctp-b-egress-dst_start_port":"0.0","ncb_flavor_name":"nv.c20r64d1","gpb1_Internal1_mac":"00:11:22:EF:AC:DF","sctp-b-egress_dst_subnet_prefix_len":"0.0","Internal2_net_cidr":"10.0.0.10","sctp-a-ingress-dst_start_port":"0.0","sctp-a-egress-dst_start_port":"0.0","fsb1_Internal2_mac":"00:11:22:EF:AC:DF","sctp-a-egress_ethertype":"IPv4","vlc_st_service_mode":"in-network-nat","sctp-a-ipv6-egress_ethertype":"IPv4","sctp-a-egress-src_end_port":"65535.0","sctp-b-ipv6-egress_rule_application":"any","sctp-b-egress_action":"pass","sctp-a-ingress-src_subnet_prefix_len":"0.0","sctp-b-ipv6-ingress-src_end_port":"65535.0","sctp-b-name":"epc-sctp-b-ipv4v6-sec-group","fsb2_Internal1_mac":"00:11:22:EF:AC:DF","sctp-a-ipv6-ingress-src_start_port":"0.0","sctp-b-ipv6-egress_ethertype":"IPv4","Internal1_net_cidr":"10.0.0.10","sctp-a-egress_dst_subnet_prefix":"0.0.0.0","fsb_flavor_name":"nv.c20r64d1","sctp_rule_protocol":"132","sctp-b-ipv6-ingress_src_subnet_prefix_len":"0","sctp-a-ipv6-ingress_rule_application":"any","ecomp_generated_naming":"false","sctp-a-IPv6_ethertype":"IPv6","vlc2_Internal1_mac":"00:11:22:EF:AC:DF","vlc_st_virtualization_type":"virtual-machine","sctp-b-ingress-dst_start_port":"0.0","sctp-b-ingress-dst_end_port":"65535.0","sctp-a-ipv6-ingress-src_end_port":"65535.0","sctp-a-display_name":"epc-sctp-a-ipv4v6-sec-group","sctp-b-ingress_rule_application":"any","int2_sec_group_name":"int2-sec-group","vlc_flavor_name":"nd.c16r64d1","sctp-b-ipv6-egress_src_addresses":"local","vlc_st_interface_type_int1":"other1","sctp-b-egress-src_end_port":"65535.0","sctp-a-ipv6-egress-dst_start_port":"0","vlc_st_interface_type_int2":"other2","sctp-a-ipv6-egress_rule_protocol":"any","Internal2_shared":"false","sctp-a-ipv6-egress_dst_subnet_prefix_len":"0","Internal2_rpf":"disable","vlc1_Internal1_mac":"00:11:22:EF:AC:DF","sctp-b-ipv6-egress_src_end_port":"65535","sctp-a-ipv6-egress_src_addresses":"local","sctp-a-ingress-dst_end_port":"65535.0","sctp-a-ipv6-egress_src_end_port":"65535","Internal1_forwarding_mode":"l2","Internal2_dhcp":"false","sctp-a-dst_subnet_prefix_v6":"::","pxe_image_name":"MME_PXE-Boot_16ACP04_GA.qcow2","vlc_st_interface_type_gtp":"other0","ncb1_Internal1_mac":"00:11:22:EF:AC:DF","sctp-b-src_subnet_prefix_v6":"::","sctp-a-egress_dst_subnet_prefix_len":"0.0","int1_sec_group_name":"int1-sec-group","Internal1_dhcp":"false","sctp-a-ipv6-egress_dst_end_port":"65535","Internal2_forwarding_mode":"l2","fsb2_Internal2_mac":"00:11:22:EF:AC:DF","sctp-b-egress_dst_subnet_prefix":"0.0.0.0","Internal1_net_cidr_len":"17","gpb2_Internal1_mac":"00:11:22:EF:AC:DF","sctp-b-ingress-src_subnet_prefix_len":"0.0","sctp-a-ingress_dst_addresses":"local","sctp-a-egress_action":"pass","fsb_volume_type_0":"SF-Default-SSD","ncb2_Internal2_mac":"00:11:22:EF:AC:DF","vlc_st_interface_type_sctp_a":"left","vlc_st_interface_type_sctp_b":"right","sctp-a-src_subnet_prefix_v6":"::","vlc_st_version":"2","sctp-b-egress_ethertype":"IPv4","sctp-a-ingress_rule_application":"any","gpb1_Internal2_mac":"00:11:22:EF:AC:DF","instance_ip_family_v6":"v6","sctp-a-ipv6-egress_src_start_port":"0","sctp-b-ingress-src_start_port":"0.0","sctp-b-ingress_dst_addresses":"local","fsb1_Internal1_mac":"00:11:22:EF:AC:DF","vlc_st_interface_type_oam":"management","multi_stage_design":"false","oam_sec_group_name":"oam-sec-group","Internal2_net_gateway":"10.0.0.10","sctp-a-ipv6-ingress-dst_end_port":"65535","sctp-b-ipv6-egress-dst_start_port":"0","Internal1_net_gateway":"10.0.0.10","sctp-b-ipv6-egress_rule_protocol":"any","gtp_sec_group_name":"gtp-sec-group","sctp-a-ipv6-egress_dst_subnet_prefix":"0.0.0.0","sctp-b-ipv6-egress_dst_subnet_prefix_len":"0","sctp-a-ipv6-ingress_dst_addresses":"local","sctp-a-egress_rule_protocol":"icmp","sctp-b-ipv6-egress_action":"pass","sctp-a-ipv6-egress_action":"pass","Internal1_shared":"false","sctp-b-ipv6-ingress_rule_protocol":"any","Internal2_net_cidr_len":"17","sctp-a-name":"epc-sctp-a-ipv4v6-sec-group","sctp-a-ingress-src_end_port":"65535.0","sctp-b-ipv6-ingress_src_subnet_prefix":"0.0.0.0","sctp-a-egress-dst_end_port":"65535.0","sctp-a-ingress_action":"pass","sctp-b-egress_rule_protocol":"icmp","sctp-b-ipv6-ingress_action":"pass","vlc_st_service_type":"firewall","sctp-b-ipv6-egress_dst_end_port":"65535","sctp-b-ipv6-ingress-dst_start_port":"0","vlc2_Internal2_mac":"00:11:22:EF:AC:DF","vlc_st_availability_zone":"true","fsb_volume_image_name_1":"MME_FSB2_16ACP04_GA.qcow2","sctp-b-ingress-src_subnet_prefix":"0.0.0.0","sctp-a-ipv6-ingress_src_subnet_prefix_len":"0","Internal1_allow_transit":"true","gpb_flavor_name":"nv.c20r64d1","availability_zone_max_count":"1","fsb_volume_image_name_0":"MME_FSB1_16ACP04_GA.qcow2","sctp-b-ipv6-ingress_dst_addresses":"local","sctp-b-ipv6-egress_dst_subnet_prefix":"0.0.0.0","sctp-b-ipv6-ingress_ethertype":"IPv4","vlc1_Internal2_mac":"00:11:22:EF:AC:DF","sctp-a-ingress-src_subnet_prefix":"0.0.0.0","sctp-a-ipv6-ingress_action":"pass","Internal1_rpf":"disable","sctp-b-ingress_ethertype":"IPv4","sctp-b-egress_rule_application":"any","sctp-b-ingress-src_end_port":"65535.0","sctp-a-ipv6-ingress_rule_protocol":"any","sctp-a-ingress-src_start_port":"0.0","sctp-b-egress-dst_end_port":"65535.0"},"type":"VF","modelCustomizationName":"VF_vGeraldine 0","vfModules":{"vf_vgeraldine0..VfVgeraldine..vflorence_vlc..module-1":{"uuid":"522159d5-d6e0-4c2a-aa44-5a542a12a830","invariantUuid":"98a7c88b-b577-476a-90e4-e25a5871e02b","customizationUuid":"55b1be94-671a-403e-a26c-667e9c47d091","description":null,"name":"VfVgeraldine..vflorence_vlc..module-1","version":"2","modelCustomizationName":"VfVgeraldine..vflorence_vlc..module-1","properties":{"minCountInstances":0,"maxCountInstances":null,"initialCount":0,"vfModuleLabel":"vflorence_vlc"},"inputs":{},"volumeGroupAllowed":false},"vf_vgeraldine0..VfVgeraldine..vflorence_gpb..module-2":{"uuid":"41708296-e443-4c71-953f-d9a010f059e1","invariantUuid":"1cca90b8-3490-495e-87da-3f3e4c57d5b9","customizationUuid":"6add59e0-7fe1-4bc4-af48-f8812422ae7c","description":null,"name":"VfVgeraldine..vflorence_gpb..module-2","version":"2","modelCustomizationName":"VfVgeraldine..vflorence_gpb..module-2","properties":{"minCountInstances":0,"maxCountInstances":null,"initialCount":0,"vfModuleLabel":"vflorence_gpb"},"inputs":{},"volumeGroupAllowed":false},"vf_vgeraldine0..VfVgeraldine..base_vflorence..module-0":{"uuid":"a27f5cfc-7f12-4f99-af08-0af9c3885c87","invariantUuid":"a6f9e51a-2b35-416a-ae15-15e58d61f36d","customizationUuid":"f8c040f1-7e51-4a11-aca8-acf256cfd861","description":null,"name":"VfVgeraldine..base_vflorence..module-0","version":"2","modelCustomizationName":"VfVgeraldine..base_vflorence..module-0","properties":{"minCountInstances":1,"maxCountInstances":1,"initialCount":1,"vfModuleLabel":"base_vflorence"},"inputs":{},"volumeGroupAllowed":true}},"volumeGroups":{"vf_vgeraldine0..VfVgeraldine..base_vflorence..module-0":{"uuid":"a27f5cfc-7f12-4f99-af08-0af9c3885c87","invariantUuid":"a6f9e51a-2b35-416a-ae15-15e58d61f36d","customizationUuid":"f8c040f1-7e51-4a11-aca8-acf256cfd861","description":null,"name":"VfVgeraldine..base_vflorence..module-0","version":"2","modelCustomizationName":"VfVgeraldine..base_vflorence..module-0","properties":{"minCountInstances":1,"maxCountInstances":1,"initialCount":1,"vfModuleLabel":"base_vflorence"},"inputs":{}}},"vfcInstanceGroups":{}}},"networks":{"ExtVL 0":{"uuid":"ddc3f20c-08b5-40fd-af72-c6d14636b986","invariantUuid":"379f816b-a7aa-422f-be30-17114ff50b7c","description":"ECOMP generic virtual link (network) base type for all other service-level and global networks","name":"ExtVL","version":"37.0","customizationUuid":"94fdd893-4a36-4d70-b16a-ec29c54c184f","inputs":{},"commands":{},"properties":{"network_assignments":"{is_external_network=false, ipv4_subnet_default_assignment={min_subnets_count=1}, ecomp_generated_network_assignment=false, ipv6_subnet_default_assignment={min_subnets_count=1}}","exVL_naming":"{ecomp_generated_naming=true}","network_flows":"{is_network_policy=false, is_bound_to_vpn=false}","network_homing":"{ecomp_selected_instance_node_target=false}"},"type":"VL","modelCustomizationName":"ExtVL 0"}},"collectionResources":{},"configurations":{"Port Mirroring Configuration By Policy 0":{"uuid":"b4398538-e89d-4f13-b33d-ca323434ba50","invariantUuid":"6ef0ca40-f366-4897-951f-abd65d25f6f7","description":"A port mirroring configuration by policy object","name":"Port Mirroring Configuration By Policy","version":"27.0","customizationUuid":"3c3b7b8d-8669-4b3b-8664-61970041fad2","inputs":{},"commands":{},"properties":{},"type":"Configuration","modelCustomizationName":"Port Mirroring Configuration By Policy 0","sourceNodes":[],"collectorNodes":null,"configurationByPolicy":false}},"serviceProxies":{},"vfModules":{"vf_vgeraldine0..VfVgeraldine..vflorence_vlc..module-1":{"uuid":"522159d5-d6e0-4c2a-aa44-5a542a12a830","invariantUuid":"98a7c88b-b577-476a-90e4-e25a5871e02b","customizationUuid":"55b1be94-671a-403e-a26c-667e9c47d091","description":null,"name":"VfVgeraldine..vflorence_vlc..module-1","version":"2","modelCustomizationName":"VfVgeraldine..vflorence_vlc..module-1","properties":{"minCountInstances":0,"maxCountInstances":null,"initialCount":0,"vfModuleLabel":"vflorence_vlc"},"inputs":{},"volumeGroupAllowed":false},"vf_vgeraldine0..VfVgeraldine..vflorence_gpb..module-2":{"uuid":"41708296-e443-4c71-953f-d9a010f059e1","invariantUuid":"1cca90b8-3490-495e-87da-3f3e4c57d5b9","customizationUuid":"6add59e0-7fe1-4bc4-af48-f8812422ae7c","description":null,"name":"VfVgeraldine..vflorence_gpb..module-2","version":"2","modelCustomizationName":"VfVgeraldine..vflorence_gpb..module-2","properties":{"minCountInstances":0,"maxCountInstances":null,"initialCount":0,"vfModuleLabel":"vflorence_gpb"},"inputs":{},"volumeGroupAllowed":false},"vf_vgeraldine0..VfVgeraldine..base_vflorence..module-0":{"uuid":"a27f5cfc-7f12-4f99-af08-0af9c3885c87","invariantUuid":"a6f9e51a-2b35-416a-ae15-15e58d61f36d","customizationUuid":"f8c040f1-7e51-4a11-aca8-acf256cfd861","description":null,"name":"VfVgeraldine..base_vflorence..module-0","version":"2","modelCustomizationName":"VfVgeraldine..base_vflorence..module-0","properties":{"minCountInstances":1,"maxCountInstances":1,"initialCount":1,"vfModuleLabel":"base_vflorence"},"inputs":{},"volumeGroupAllowed":true}},"volumeGroups":{"vf_vgeraldine0..VfVgeraldine..base_vflorence..module-0":{"uuid":"a27f5cfc-7f12-4f99-af08-0af9c3885c87","invariantUuid":"a6f9e51a-2b35-416a-ae15-15e58d61f36d","customizationUuid":"f8c040f1-7e51-4a11-aca8-acf256cfd861","description":null,"name":"VfVgeraldine..base_vflorence..module-0","version":"2","modelCustomizationName":"VfVgeraldine..base_vflorence..module-0","properties":{"minCountInstances":1,"maxCountInstances":1,"initialCount":1,"vfModuleLabel":"base_vflorence"},"inputs":{}}},"pnfs":{}}');
 }
 
 
@@ -198,14 +199,14 @@ function generateVFModule() {
     'invariantUuid': '7253ff5c-97f0-4b8b-937c-77aeb4d79aa1',
     'customizationUuid': 'f7e7c365-60cf-49a9-9ebf-a1aa11b9d401',
     'description': null,
-    'name': '2017488AdiodVpe..ADIOD_vRE_BV..module-1',
+    'name': '2017488PasqualeVpe..PASQUALE_vRE_BV..module-1',
     'version': '6',
-    'modelCustomizationName': '2017488AdiodVpe..ADIOD_vRE_BV..module-1',
+    'modelCustomizationName': '2017488PasqualeVpe..PASQUALE_vRE_BV..module-1',
     'properties': {'minCountInstances': 0, 'maxCountInstances': null, 'initialCount': 0},
     'commands': {},
     'volumeGroupAllowed': true,
     'inputs': {
-      '2017488_adiodvpe0_vnf_config_template_version': {
+      '2017488_pasqualevpe0_vnf_config_template_version': {
         'type': 'string',
         'description': 'VPE Software Version',
         'entry_schema': null,
@@ -213,7 +214,7 @@ function generateVFModule() {
         'required': true,
         'default': '17.2'
       },
-      '2017488_adiodvpe0_AIC_CLLI': {
+      '2017488_pasqualevpe0_AIC_CLLI': {
         'type': 'string',
         'description': 'AIC Site CLLI',
         'entry_schema': null,
@@ -231,9 +232,9 @@ function generateVFModule2() {
     'invariantUuid': 'eff8cc59-53a1-4101-aed7-8cf24ecf8339',
     'customizationUuid': '3cd946bb-50e0-40d8-96d3-c9023520b557',
     'description': null,
-    'name': '2017488AdiodVpe..ADIOD_vPFE_BV..module-2',
+    'name': '2017488PasqualeVpe..PASQUALE_vPFE_BV..module-2',
     'version': '6',
-    'modelCustomizationName': '2017488AdiodVpe..ADIOD_vPFE_BV..module-2',
+    'modelCustomizationName': '2017488PasqualeVpe..PASQUALE_vPFE_BV..module-2',
     'properties': {'minCountInstances': 0, 'maxCountInstances': null, 'initialCount': 0},
     'commands': {},
     'volumeGroupAllowed': true,
@@ -245,8 +246,8 @@ function generateVNF() {
   return {
     'uuid': '0903e1c0-8e03-4936-b5c2-260653b96413',
     'invariantUuid': '00beb8f9-6d39-452f-816d-c709b9cbb87d',
-    'description': 'Name ADIOD vPE Description The provider edge function for the ADIOD service supported by the Junipers VMX product Category Router Vendor Juniper Vendor Release Code 17.2 Owners Mary Fragale. Updated 9-25 to use v8.0 of the Juniper Valid 2 VLM',
-    'name': '2017-388_ADIOD-vPE',
+    'description': 'Name PASQUALE vPE Description The provider edge function for the PASQUALE service supported by the Junipers VMX product Category Router Vendor Juniper Vendor Release Code 17.2 Owners Mary Fragale. Updated 9-25 to use v8.0 of the Juniper Valid 2 VLM',
+    'name': '2017-388_PASQUALE-vPE',
     'version': '1.0',
     'customizationUuid': '280dec31-f16d-488b-9668-4aae55d6648a',
     'inputs': {
@@ -303,25 +304,25 @@ function generateVNF() {
       'vnf_config_template_version': {
         'displayName': 'vnf_config_template_version',
         'command': 'get_input',
-        'inputName': '2017488_adiodvpe0_vnf_config_template_version'
+        'inputName': '2017488_pasqualevpe0_vnf_config_template_version'
       },
       'bandwidth_units': {
         'displayName': 'bandwidth_units',
         'command': 'get_input',
-        'inputName': 'adiodvpe0_bandwidth_units'
+        'inputName': 'pasqualevpe0_bandwidth_units'
       },
-      'bandwidth': {'displayName': 'bandwidth', 'command': 'get_input', 'inputName': 'adiodvpe0_bandwidth'},
-      'AIC_CLLI': {'displayName': 'AIC_CLLI', 'command': 'get_input', 'inputName': '2017488_adiodvpe0_AIC_CLLI'},
-      'ASN': {'displayName': 'ASN', 'command': 'get_input', 'inputName': '2017488_adiodvpe0_ASN'},
+      'bandwidth': {'displayName': 'bandwidth', 'command': 'get_input', 'inputName': 'pasqualevpe0_bandwidth'},
+      'AIC_CLLI': {'displayName': 'AIC_CLLI', 'command': 'get_input', 'inputName': '2017488_pasqualevpe0_AIC_CLLI'},
+      'ASN': {'displayName': 'ASN', 'command': 'get_input', 'inputName': '2017488_pasqualevpe0_ASN'},
       'vnf_instance_name': {
         'displayName': 'vnf_instance_name',
         'command': 'get_input',
-        'inputName': '2017488_adiodvpe0_vnf_instance_name'
+        'inputName': '2017488_pasqualevpe0_vnf_instance_name'
       }
     },
     'properties': {
       'vmxvre_retype': 'RE-VMX',
-      'vnf_config_template_version': 'get_input:2017488_adiodvpe0_vnf_config_template_version',
+      'vnf_config_template_version': 'get_input:2017488_pasqualevpe0_vnf_config_template_version',
       'sriov44_net_id': '48d399b3-11ee-48a8-94d2-f0ea94d6be8d',
       'int_ctl_net_id': '2f323477-6936-4d01-ac53-d849430281d9',
       'vmxvpfe_sriov41_0_port_mac': '00:11:22:EF:AC:DF',
@@ -365,7 +366,7 @@ function generateVNF() {
       'nf_function': 'JAI',
       'vmxvpfe_sriov43_0_port_unknownmulticastallow': 'true',
       'vmxvre_int_ctl_ip_0': '10.0.0.10',
-      'AIC_CLLI': 'get_input:2017488_adiodvpe0_AIC_CLLI',
+      'AIC_CLLI': 'get_input:2017488_pasqualevpe0_AIC_CLLI',
       'vnf_name': 'mtnj309me6vre',
       'vmxvpfe_sriov41_0_port_unknownunicastallow': 'true',
       'vmxvre_volume_type_1': 'HITACHI',
@@ -373,14 +374,14 @@ function generateVNF() {
       'vmxvre_volume_type_0': 'HITACHI',
       'vmxvpfe_volume_type_0': 'HITACHI',
       'vmxvpfe_sriov43_0_port_broadcastallow': 'true',
-      'bandwidth_units': 'get_input:adiodvpe0_bandwidth_units',
+      'bandwidth_units': 'get_input:pasqualevpe0_bandwidth_units',
       'vnf_id': '123',
       'vmxvre_oam_prefix': '24',
       'availability_zone_0': 'mtpocfo-kvm-az01',
-      'ASN': 'get_input:2017488_adiodvpe0_ASN',
+      'ASN': 'get_input:2017488_pasqualevpe0_ASN',
       'vmxvre_chassis_i2cid': '161',
       'vmxvpfe_name_0': 'vPFEXI',
-      'bandwidth': 'get_input:adiodvpe0_bandwidth',
+      'bandwidth': 'get_input:pasqualevpe0_bandwidth',
       'availability_zone_max_count': '1',
       'vmxvre_volume_size_0': '45.0',
       'vmxvre_volume_size_1': '50.0',
@@ -390,7 +391,7 @@ function generateVNF() {
       'vmxvre_ore_present': '0',
       'vmxvre_volume_name_0': 'vREXI_FBVolume',
       'vmxvre_type': '0',
-      'vnf_instance_name': 'get_input:2017488_adiodvpe0_vnf_instance_name',
+      'vnf_instance_name': 'get_input:2017488_pasqualevpe0_vnf_instance_name',
       'vmxvpfe_sriov41_0_port_unknownmulticastallow': 'true',
       'oam_net_id': 'b95eeb1d-d55d-4827-abb4-8ebb94941429',
       'vmx_int_ctl_len': '24',
@@ -404,7 +405,7 @@ function generateVNF() {
       'vmxvpfe_flavor_name': 'ns.c20r16d25.v5'
     },
     'type': 'VF',
-    'modelCustomizationName': '2017-388_ADIOD-vPE 1',
+    'modelCustomizationName': '2017-388_PASQUALE-vPE 1',
     'vfModules': {},
     'volumeGroups': {}
   };
index ec7bb02..01ecb2c 100644 (file)
@@ -9,6 +9,7 @@ export enum Features {
   FLAG_VF_MODULE_RESUME_STATUS_CREATE = 'FLAG_VF_MODULE_RESUME_STATUS_CREATE',
   DRAG_AND_DROP_OPERATION = 'DRAG_AND_DROP_OPERATION',
   FLAG_1906_COMPONENT_INFO = 'FLAG_1906_COMPONENT_INFO',
+  FLAG_1908_RESUME_MACRO_SERVICE = 'FLAG_1908_RESUME_MACRO_SERVICE'
 }
 
 @Injectable()
index 57af070..9345225 100644 (file)
@@ -59,9 +59,9 @@ import {AuditInfoModalComponent} from "./components/auditInfoModal/auditInfoModa
 import {BootstrapModalModule} from 'ng2-bootstrap-modal';
 import {DataTableModule} from "angular2-datatable";
 import {AuditInfoModalComponentService} from "./components/auditInfoModal/auditInfoModal.component.service";
-import {SearchMembersModalComponent} from "./components/searchMembersModal/search-members-modal.component";
-import {MembersTableComponent} from "./components/searchMembersModal/members-table/members-table.component";
-import {MembersTableService} from "./components/searchMembersModal/members-table/members-table.service";
+import {SearchElementsModalComponent} from "./components/searchMembersModal/search-elements-modal.component";
+import {ElementsTableComponent} from "./components/searchMembersModal/members-table/elements-table.component";
+import {ElementsTableService} from "./components/searchMembersModal/members-table/elements-table.service";
 import {ObjectToArrayPipe} from "./pipes/objectToArray/objectToArray.pipe";
 import {DataFilterPipe} from "./pipes/dataFilter/data-filter.pipe";
 import {SvgComponent} from "./components/svg/svg-component";
@@ -115,11 +115,11 @@ import {ModelInformationService} from "./components/model-information/model-info
     InputFormControlComponent,
     FormControlMessageErrorComponent,
     GenericFormPopupComponent,
-    SearchMembersModalComponent,
+    SearchElementsModalComponent,
     AuditInfoModalComponent,
     GenericFormComponent,
     CheckboxFormControlComponent,
-    MembersTableComponent,
+    ElementsTableComponent,
     SvgComponent,
     ErrorMsgComponent,
     DynamicInputsComponent,
@@ -146,11 +146,11 @@ import {ModelInformationService} from "./components/model-information/model-info
     InputFormControlComponent,
     FormControlMessageErrorComponent,
     GenericFormPopupComponent,
-    SearchMembersModalComponent,
+    SearchElementsModalComponent,
     AuditInfoModalComponent,
     GenericFormComponent,
     CheckboxFormControlComponent,
-    MembersTableComponent,
+    ElementsTableComponent,
     ErrorMsgComponent,
     SvgComponent,
     DynamicInputsComponent,
@@ -158,7 +158,7 @@ import {ModelInformationService} from "./components/model-information/model-info
   ],
   entryComponents : [
     GenericFormPopupComponent,
-    SearchMembersModalComponent
+    SearchElementsModalComponent
   ],
   providers: [
     ServiceInfoService,
@@ -190,7 +190,7 @@ import {ModelInformationService} from "./components/model-information/model-info
     VnfPopupService,
     AuditInfoModalComponentService,
     VnfPopupService,
-    MembersTableService,
+    ElementsTableService,
     ErrorMsgService,
     DataFilterPipe,
     ModelInformationService,
diff --git a/vid-webpack-master/src/app/shared/storeUtil/utils/cr/cr.actions.ts b/vid-webpack-master/src/app/shared/storeUtil/utils/cr/cr.actions.ts
new file mode 100644 (file)
index 0000000..428a309
--- /dev/null
@@ -0,0 +1,21 @@
+import {Action, ActionCreator} from "redux";
+import {ActionOnFirstLevel} from "../firstLevel/firstLevel.actions";
+
+export enum CrActions{
+  DELETE_ACTION_CR_INSTANCE = "DELETE_ACTION_CR_INSTANCE",
+  UNDO_DELETE_ACTION_CR_INSTANCE = "UNDO_DELETE_ACTION_CR_INSTANCE"
+}
+
+export const deleteActionCrInstance: ActionCreator<ActionOnFirstLevel> = (collectionResourceStoreKey, serviceId) => ({
+  type: CrActions.DELETE_ACTION_CR_INSTANCE,
+  firstLevelName: 'collectionResources',
+  storeKey: collectionResourceStoreKey,
+  serviceId: serviceId
+});
+
+export const undoDeleteActionCrInstance: ActionCreator<ActionOnFirstLevel> = (collectionResourceStoreKey, serviceId) => ({
+  type: CrActions.UNDO_DELETE_ACTION_CR_INSTANCE,
+  firstLevelName: 'collectionResources',
+  storeKey: collectionResourceStoreKey,
+  serviceId: serviceId
+});
diff --git a/vid-webpack-master/src/app/shared/storeUtil/utils/cr/cr.reducer.spec.ts b/vid-webpack-master/src/app/shared/storeUtil/utils/cr/cr.reducer.spec.ts
new file mode 100644 (file)
index 0000000..e457cf9
--- /dev/null
@@ -0,0 +1,56 @@
+
+import {ServiceInstanceActions} from "../../../models/serviceInstanceActions";
+import { crReducer} from "./cr.reducer";
+import {ActionOnFirstLevel} from "../firstLevel/firstLevel.actions";
+import {CrActions} from "./cr.actions";
+describe('crReducer', () => {
+
+  test('#DELETE_ACTION_CR_INSTANCE', () => {
+    let crState = crReducer(<any>{
+        serviceInstance: {
+          'serviceModelId': {
+            collectionResources: {
+              'crStoreKey': {
+                isMissingData: true,
+                action: 'None'
+              }
+            }
+          }
+        }
+      },
+      <ActionOnFirstLevel>{
+        type: CrActions.DELETE_ACTION_CR_INSTANCE,
+        storeKey: 'crStoreKey',
+        firstLevelName: 'collectionResources',
+        serviceId: 'serviceModelId'
+      }).serviceInstance['serviceModelId']['collectionResources']['crStoreKey'];
+
+    expect(crState).toBeDefined();
+    expect(crState.action).toEqual(ServiceInstanceActions.None_Delete);
+  });
+
+  test('#UNDO_DELETE_ACTION_CR_INSTANCE', () => {
+    let crState = crReducer(<any>{
+        serviceInstance: {
+          'serviceModelId': {
+            collectionResources: {
+              'crStoreKey': {
+                isMissingData: true,
+                action: 'Update_Delete'
+              }
+            }
+          }
+        }
+      },
+      <ActionOnFirstLevel>{
+        type: CrActions.UNDO_DELETE_ACTION_CR_INSTANCE,
+        storeKey: 'crStoreKey',
+        firstLevelName: 'collectionResources',
+        serviceId: 'serviceModelId'
+      }).serviceInstance['serviceModelId']['collectionResources']['crStoreKey'];
+
+    expect(crState).toBeDefined();
+    expect(crState.action).toEqual(ServiceInstanceActions.Update);
+  });
+
+});
diff --git a/vid-webpack-master/src/app/shared/storeUtil/utils/cr/cr.reducer.ts b/vid-webpack-master/src/app/shared/storeUtil/utils/cr/cr.reducer.ts
new file mode 100644 (file)
index 0000000..72894e6
--- /dev/null
@@ -0,0 +1,23 @@
+import {ServiceState} from "../main.reducer";
+import {Action} from "redux";
+import * as _ from "lodash";
+import {ServiceInstanceActions} from "../../../models/serviceInstanceActions";
+import {CrActions} from "./cr.actions";
+import {ActionOnFirstLevel} from "../firstLevel/firstLevel.actions";
+import {deleteFirstLevel} from "../reducersHelper";
+
+export function crReducer(state: ServiceState, action: Action): ServiceState {
+  switch (action.type) {
+    case CrActions.DELETE_ACTION_CR_INSTANCE : {
+      return deleteFirstLevel(state, <ActionOnFirstLevel>action, false);
+    }
+
+    case CrActions.UNDO_DELETE_ACTION_CR_INSTANCE : {
+      let newState = _.cloneDeep(state);
+      let vnf = newState.serviceInstance[(<ActionOnFirstLevel>action).serviceId]['collectionResources'][(<ActionOnFirstLevel>action).storeKey];
+      let oldState = vnf.action;
+      newState.serviceInstance[(<ActionOnFirstLevel>action).serviceId]['collectionResources'][(<ActionOnFirstLevel>action).storeKey].action = (oldState.split('_')[0]) as ServiceInstanceActions;
+      return newState;
+    }
+  }
+ }
diff --git a/vid-webpack-master/src/app/shared/storeUtil/utils/firstLevel/firstLevel.actions.ts b/vid-webpack-master/src/app/shared/storeUtil/utils/firstLevel/firstLevel.actions.ts
new file mode 100644 (file)
index 0000000..a4ca9ff
--- /dev/null
@@ -0,0 +1,8 @@
+import {Action} from "redux";
+
+export interface ActionOnFirstLevel extends Action {
+  type: string;
+  firstLevelName: string;
+  storeKey : string;
+  serviceId? : string;
+}
index 8ee4733..5b265db 100644 (file)
@@ -12,6 +12,7 @@ import * as _ from "lodash";
 import {ITreeNode} from "angular-tree-component/dist/defs/api";
 import {ServiceInstance} from "../../../models/serviceInstance";
 import {ServiceState} from "../main.reducer";
+import {updateServiceValidationCounter} from "../reducersHelper";
 
 export function generalReducer(state: ServiceState, action: Action) : ServiceState {
   switch (action.type) {
@@ -90,6 +91,8 @@ export function generalReducer(state: ServiceState, action: Action) : ServiceSta
       newState.serviceInstance[serviceId][typeNodeInformation.hierarchyName] = Object.assign({}, newState.serviceInstance[serviceId][typeNodeInformation.hierarchyName], objects);
       return newState;
     }
+
+
   }
 }
 
@@ -135,13 +138,6 @@ const updateIsMissingDataOnDeleteVFModule = (state: any, serviceModelId: string,
   });
 };
 
-const updateServiceValidationCounter = (newState: any, oldValidationState: boolean, newValidationState: boolean, serviceUuid: string) => {
-  if (oldValidationState && !newValidationState) {
-    newState.serviceInstance[serviceUuid].validationCounter--;
-  } else if (!oldValidationState && newValidationState) {
-    newState.serviceInstance[serviceUuid].validationCounter++;
-  }
-};
 
 
 
index 609ec69..4af0243 100644 (file)
@@ -3,7 +3,15 @@ import {Action, ActionCreator} from "redux";
 export enum GlobalActions {
   UPDATE_NAME = 'UPDATE_NAME',
   UPDATE_FLAGS = 'UPDATE_FLAGS',
-  UPDATE_DRAWING_BOARD_STATUS = 'UPDATE_DRAWING_BOARD_STATUS'
+  UPDATE_DRAWING_BOARD_STATUS = 'UPDATE_DRAWING_BOARD_STATUS',
+  UPDATE_GENERIC_MODAL_CRITERIA = 'UPDATE_GENERIC_MODAL_CRITERIA',
+  UPDATE_GENERIC_MODAL_HELPER = 'UPDATE_GENERIC_MODAL_HELPER',
+  DELETE_GENERIC_MODAL_HELPER = 'DELETE_GENERIC_MODAL_HELPER',
+  CLEAR_ALL_GENERIC_MODAL_HELPER = 'CLEAR_ALL_GENERIC_MODAL_HELPER',
+  UPDATE_GENERIC_MODAL_TABLE_DATA_HELPER = 'UPDATE_GENERIC_MODAL_TABLE_DATA_HELPER',
+  DELETE_GENERIC_MODAL_TABLE_DATA_HELPER = 'DELETE_GENERIC_MODAL_TABLE_DATA_HELPER',
+  UPDATE_GENERIC_CURRNT_VRF_HELPER = 'UPDATE_GENERIC_CURRNT_VRF_HELPER',
+  DELETE_GENERIC_CURRNT_VRF_HELPER = 'DELETE_GENERIC_CURRNT_VRF_HELPER'
 }
 
 export interface UpdateGlobalAction extends Action {
@@ -18,6 +26,33 @@ export interface UpdateDrawingBoardStatusAction extends Action{
   drawingBoardStatus?: any;
 }
 
+export interface UpdateGenericModalCriteria extends Action {
+  field: any;
+  values: any;
+}
+
+export interface UpdateGenericModalTableDataHelper extends Action {
+  field: any;
+  values: any;
+}
+export interface UpdateGenericModalHelper extends Action {
+  field: any;
+  values: any;
+  uniqObjectField : string;
+}
+
+export interface DeleteGenericModalHelper extends Action {
+  field: any;
+  uniqObjectField : string;
+}
+
+export interface DeleteGenericModalTabelDataHelper extends Action {
+  field: any;
+}
+
+
+export interface ClearGenericModalHelper extends Action {}
+
 export const updateName: ActionCreator<UpdateGlobalAction> =
   (name) => ({
     type: GlobalActions.UPDATE_NAME,
@@ -35,3 +70,39 @@ export const updateDrawingBoardStatus: ActionCreator<UpdateDrawingBoardStatusAct
     type: GlobalActions.UPDATE_DRAWING_BOARD_STATUS,
     drawingBoardStatus: drawingBoardStatus
   });
+
+
+export const updateGenericModalCriteria: ActionCreator<UpdateGenericModalCriteria> = (field, values) => ({
+  type : GlobalActions.UPDATE_GENERIC_MODAL_CRITERIA,
+  field: field,
+  values: values
+});
+
+export const updateGenericModalhelper: ActionCreator<UpdateGenericModalHelper> = (field, values, uniqObjectField) => ({
+  type : GlobalActions.UPDATE_GENERIC_MODAL_HELPER,
+  field: field,
+  values: values,
+  uniqObjectField : uniqObjectField
+});
+
+export const deleteGenericModalhelper: ActionCreator<DeleteGenericModalHelper> = (field, uniqObjectField) => ({
+  type : GlobalActions.DELETE_GENERIC_MODAL_HELPER,
+  field: field,
+  uniqObjectField : uniqObjectField
+});
+
+
+export const updateGenericModalTableDataHelper: ActionCreator<UpdateGenericModalTableDataHelper> = (field, values) => ({
+  type : GlobalActions.UPDATE_GENERIC_MODAL_TABLE_DATA_HELPER,
+  field: field,
+  values: values,
+});
+
+export const deleteGenericModalTableDataHelper: ActionCreator<DeleteGenericModalTabelDataHelper> = (field) => ({
+  type : GlobalActions.DELETE_GENERIC_MODAL_TABLE_DATA_HELPER,
+  field: field,
+});
+
+export const clearAllGenericModalhelper: ActionCreator<ClearGenericModalHelper> = (field, uniqObjectField) => ({
+  type : GlobalActions.CLEAR_ALL_GENERIC_MODAL_HELPER
+});
index 4fc8086..c8aecdd 100644 (file)
@@ -1,4 +1,14 @@
-import {GlobalActions, UpdateFlagsAction, UpdateGlobalAction, UpdateDrawingBoardStatusAction} from "./global.actions";
+import {
+  GlobalActions,
+  UpdateFlagsAction,
+  UpdateGlobalAction,
+  UpdateDrawingBoardStatusAction,
+  UpdateGenericModalCriteria,
+  UpdateGenericModalHelper,
+  DeleteGenericModalHelper,
+  ClearGenericModalHelper,
+  UpdateGenericModalTableDataHelper
+} from "./global.actions";
 import {globalReducer} from "./global.reducers";
 
 
@@ -42,6 +52,96 @@ describe('globalReducer', () => {
     expect(globalDrawingBoardState).toBeDefined();
     expect(globalDrawingBoardState.drawingBoardStatus).toEqual(drawingBoardStatus);
   });
+
+  test('#UPDATE_GENERIC_MODAL_CRITERIA : should update updateGenericModalCriteria object',  ()=> {
+    const values  = ["value1", "value2"];
+    const fieldName = "someFieldName";
+    let globalDrawingBoardState = globalReducer(<any>{global : {},genericModalCriteria : {}},
+      <UpdateGenericModalCriteria>{
+        type: GlobalActions.UPDATE_GENERIC_MODAL_CRITERIA,
+        field : fieldName,
+        values : values
+      });
+    expect(globalDrawingBoardState).toBeDefined();
+    expect(globalDrawingBoardState.genericModalCriteria[fieldName]).toEqual(values);
+  });
+
+  test('#UPDATE_GENERIC_MODAL_HELPER : should update updateGenericModalHelper object',  ()=> {
+    const uniqObjectField = "uniqObjectField";
+    const values  = {name : "value1", uniqObjectField: uniqObjectField};
+    const fieldName = "someFieldName";
+
+    let globalDrawingBoardState = globalReducer(<any>{global : {},genericModalHelper : {}},
+      <UpdateGenericModalHelper>{
+        type: GlobalActions.UPDATE_GENERIC_MODAL_HELPER,
+        field : fieldName,
+        values : values,
+        uniqObjectField : uniqObjectField
+      });
+    expect(globalDrawingBoardState).toBeDefined();
+    expect(globalDrawingBoardState.genericModalHelper[fieldName][uniqObjectField]).toEqual({"name": "value1", "uniqObjectField": "uniqObjectField"});
+  });
+
+  test('#DELETE_GENERIC_MODAL_HELPER : should delete exist ',  ()=> {
+    const uniqObjectField = "uniqObjectField";
+    const fieldName = "someFieldName";
+
+    let globalDrawingBoardState = globalReducer(<any>{global : {},genericModalHelper : {
+          "someFieldName" : {
+            "uniqObjectField" : true
+          }
+        }},
+      <DeleteGenericModalHelper>{
+        type: GlobalActions.DELETE_GENERIC_MODAL_HELPER,
+        field : fieldName,
+        uniqObjectField : uniqObjectField
+      });
+    expect(globalDrawingBoardState).toBeDefined();
+    expect(globalDrawingBoardState.genericModalHelper[fieldName][uniqObjectField]).toBeUndefined();
+  });
+
+  test('#CLEAR_ALL_GENERIC_MODAL_HELPER : should clear  generic modal object',  ()=> {
+
+    let globalDrawingBoardState = globalReducer(<any>{global : {},genericModalHelper : {
+          "someFieldName" : {
+            "uniqObjectField" : true
+          }
+        }},
+      <ClearGenericModalHelper>{
+        type: GlobalActions.CLEAR_ALL_GENERIC_MODAL_HELPER
+      });
+    expect(globalDrawingBoardState.genericModalHelper).toEqual({});
+  });
+
+  test('#UPDATE_GENERIC_MODAL_TABLE_DATA_HELPER : should update table data with some values',  ()=> {
+    const keyName: string = 'VPN_DATA';
+    const someValue: string = 'SOME_VALUE';
+
+    let globalDrawingBoardState = globalReducer(<any>{global : {},genericModalHelper : {
+
+        }},
+      <UpdateGenericModalTableDataHelper>{
+        type: GlobalActions.UPDATE_GENERIC_MODAL_TABLE_DATA_HELPER,
+        field : keyName,
+        values : someValue
+      });
+    expect(globalDrawingBoardState.genericModalHelper[keyName]).toEqual(someValue);
+  });
+
+  test('#DELETE_GENERIC_MODAL_TABLE_DATA_HELPER : should delete table data',  ()=> {
+    const keyName: string = 'VPN_DATA';
+    const someValue: string = 'SOME_VALUE';
+
+    let globalDrawingBoardState = globalReducer(<any>{global : {},genericModalHelper : {
+          [keyName] : someValue
+        }},
+      <UpdateGenericModalTableDataHelper>{
+        type: GlobalActions.DELETE_GENERIC_MODAL_TABLE_DATA_HELPER,
+        field : keyName
+      });
+    expect(globalDrawingBoardState.genericModalHelper[keyName]).toBeUndefined();
+  });
+
 });
 
 
index f9e0834..aedcce2 100644 (file)
@@ -1,16 +1,34 @@
 import {Action} from 'redux';
-import {GlobalActions, UpdateFlagsAction, UpdateGlobalAction, UpdateDrawingBoardStatusAction} from "./global.actions";
+import {
+  GlobalActions,
+  UpdateFlagsAction,
+  UpdateGlobalAction,
+  UpdateDrawingBoardStatusAction,
+  UpdateGenericModalCriteria,
+  UpdateGenericModalHelper,
+  DeleteGenericModalHelper,
+  DeleteGenericModalTabelDataHelper,
+  UpdateGenericModalTableDataHelper
+} from "./global.actions";
+import * as _ from "lodash";
 
 export interface GlobalState {
   name : string;
   flags : { [key: string]: boolean };
   drawingBoardStatus : string;
+  genericModalCriteria : { [key: string]: any };
+  genericModalHelper : { [key: string]: any };
+
 }
 
 const initialState: GlobalState = {
   name : null,
   flags : null,
-  drawingBoardStatus : null
+  drawingBoardStatus : null,
+  genericModalCriteria : {
+    roles : []
+  },
+  genericModalHelper : {}
 };
 
 export const globalReducer =
@@ -23,6 +41,46 @@ export const globalReducer =
         return Object.assign({}, state);
       case GlobalActions.UPDATE_DRAWING_BOARD_STATUS:
         return Object.assign(state, state, (<UpdateDrawingBoardStatusAction>action));
+      case GlobalActions.UPDATE_GENERIC_MODAL_CRITERIA : {
+        const updateGenericModalCriteria = <UpdateGenericModalCriteria>action;
+        let newState = _.cloneDeep(state);
+        if(_.isNil(newState.genericModalCriteria)){
+          newState.genericModalCriteria = {};
+        }
+        newState.genericModalCriteria[updateGenericModalCriteria.field] = updateGenericModalCriteria.values;
+        return newState;
+      }
+      case GlobalActions.UPDATE_GENERIC_MODAL_HELPER : {
+        const updateGenericModalHelper= <UpdateGenericModalHelper>action;
+        let newState = _.cloneDeep(state);
+        if(_.isNil(newState.genericModalHelper) ){newState.genericModalHelper = {}; }
+        if(_.isNil(newState.genericModalHelper[updateGenericModalHelper.field])){
+          newState.genericModalHelper[updateGenericModalHelper.field] = {};
+        }
+        newState.genericModalHelper[updateGenericModalHelper.field][updateGenericModalHelper.values[updateGenericModalHelper.uniqObjectField]] = updateGenericModalHelper.values;
+        return newState;
+      }
+      case GlobalActions.DELETE_GENERIC_MODAL_HELPER : {
+        const deleteGenericModalHelper= <DeleteGenericModalHelper>action;
+        let newState = _.cloneDeep(state);
+        delete newState.genericModalHelper[deleteGenericModalHelper.field][deleteGenericModalHelper.uniqObjectField];
+        return newState;
+      }
+      case GlobalActions.CLEAR_ALL_GENERIC_MODAL_HELPER : {
+        let newState = _.cloneDeep(state);
+        newState.genericModalHelper = {};
+        return newState;
+      }
+      case GlobalActions.DELETE_GENERIC_MODAL_TABLE_DATA_HELPER : {
+        let newState = _.cloneDeep(state);
+        delete newState.genericModalHelper[(<DeleteGenericModalTabelDataHelper>action).field];
+        return newState;
+      }
+      case GlobalActions.UPDATE_GENERIC_MODAL_TABLE_DATA_HELPER : {
+        let newState = _.cloneDeep(state);
+        newState.genericModalHelper[(<UpdateGenericModalTableDataHelper>action).field] = (<UpdateGenericModalTableDataHelper>action).values ;
+        return newState;
+      }
       default:
         return state;
     }
index 2166c81..c02049e 100644 (file)
@@ -18,6 +18,12 @@ import {VnfGroupActions} from "./vnfGroup/vnfGroup.actions";
 import {vnfGroupReducer} from "./vnfGroup/vnfGroup.reducers";
 import {RelatedVnfActions} from "./relatedVnfMember/relatedVnfMember.actions";
 import {relatedVnfMemeberReducer} from "./relatedVnfMember/relatedVnfMember.reducers";
+import {VrfActions} from "./vrf/vrf.actions";
+import {vrfReducer} from "./vrf/vrf.reducer";
+import {CrActions} from "./cr/cr.actions";
+import {crReducer} from "./cr/cr.reducer";
+import {NcfActions} from "./ncf/ncf.actions";
+import {ncfReducer} from "./ncf/ncf.reducer";
 
 export let initialState: ServiceState = {
   serviceHierarchy: {},
@@ -27,7 +33,8 @@ export let initialState: ServiceState = {
   productFamilies: null,
   serviceTypes: {},
   aicZones: null,
-  categoryParameters: new CategoryParams()
+  categoryParameters: new CategoryParams(),
+  genericModalCriteria : {}
 };
 
 
@@ -40,6 +47,7 @@ export interface ServiceState {
   serviceTypes: { [subscriberId: string]: ServiceType[]; };
   aicZones: SelectOptionInterface[];
   categoryParameters: CategoryParams;
+  genericModalCriteria : { [field: string]: any; }
 }
 
 export const MainReducer = function (state: ServiceState = initialState, action: Action): ServiceState {
@@ -58,6 +66,12 @@ export const MainReducer = function (state: ServiceState = initialState, action:
     return vnfGroupReducer(state, action);
   }else if(Object.values(RelatedVnfActions).includes(action.type)){
     return relatedVnfMemeberReducer(state, action);
+  }else if(Object.values(VrfActions).includes(action.type)) {
+    return vrfReducer(state, action);
+  }else if(Object.values(CrActions).includes(action.type)){
+      return crReducer(state, action);
+  }else if(Object.values(NcfActions).includes(action.type)){
+      return ncfReducer(state, action);
   } else {
     return Object.assign({}, state);
   }
diff --git a/vid-webpack-master/src/app/shared/storeUtil/utils/ncf/ncf.actions.ts b/vid-webpack-master/src/app/shared/storeUtil/utils/ncf/ncf.actions.ts
new file mode 100644 (file)
index 0000000..00b5d9f
--- /dev/null
@@ -0,0 +1,33 @@
+import {Action, ActionCreator} from "redux";
+
+export enum NcfActions{
+  DELETE_ACTION_NCF_INSTANCE = "DELETE_ACTION_NCF_INSTANCE",
+  UNDO_DELETE_ACTION_NCF_INSTANCE = "UNDO_DELETE_ACTION_NCF_INSTANCE"
+
+}
+export interface DeleteActionNcfInstanceAction extends Action {
+  collectionResourceStoreKey: string,
+  ncfStoreKey : string;
+  serviceId : string;
+}
+
+export interface UndoDeleteActionNcfInstanceAction extends Action {
+  collectionResourceStoreKey: string,
+  ncfStoreKey: string;
+  serviceId?: string;
+}
+
+
+export const deleteActionNcfInstance: ActionCreator<DeleteActionNcfInstanceAction> = (collectionResourceStoreKey, ncfStoreKey, serviceId) => ({
+  type: NcfActions.DELETE_ACTION_NCF_INSTANCE,
+  collectionResourceStoreKey: collectionResourceStoreKey,
+  ncfStoreKey: ncfStoreKey,
+  serviceId: serviceId
+});
+
+export const undoDeleteActionNcfInstance: ActionCreator<UndoDeleteActionNcfInstanceAction> = (collectionResourceStoreKey, ncfStoreKey, serviceId) => ({
+  type: NcfActions.UNDO_DELETE_ACTION_NCF_INSTANCE,
+  collectionResourceStoreKey: collectionResourceStoreKey,
+  ncfStoreKey: ncfStoreKey,
+  serviceId: serviceId
+});
diff --git a/vid-webpack-master/src/app/shared/storeUtil/utils/ncf/ncf.reducer.spec.ts b/vid-webpack-master/src/app/shared/storeUtil/utils/ncf/ncf.reducer.spec.ts
new file mode 100644 (file)
index 0000000..ac7ab74
--- /dev/null
@@ -0,0 +1,64 @@
+
+import {ServiceInstanceActions} from "../../../models/serviceInstanceActions";
+import {ncfReducer} from "./ncf.reducer";
+import {DeleteActionNcfInstanceAction, NcfActions, UndoDeleteActionNcfInstanceAction} from "./ncf.actions";
+describe('ncfReducer', () => {
+
+  test('#DELETE_ACTION_NCF_INSTANCE', () => {
+    let ncfState = ncfReducer(<any>{
+        serviceInstance: {
+          'serviceModelId': {
+            collectionResources: {
+              'collectionResourceStoreKey': {
+                ncfs: {
+                  'ncfStoreKey': {
+                    isMissingData: true,
+                    action: 'None'
+                  }
+                }
+              }
+            }
+          }
+        }
+      },
+      <DeleteActionNcfInstanceAction>{
+        type: NcfActions.DELETE_ACTION_NCF_INSTANCE,
+        collectionResourceStoreKey: 'collectionResourceStoreKey',
+        ncfStoreKey: 'ncfStoreKey',
+        serviceId: 'serviceModelId'
+      }).serviceInstance['serviceModelId']['collectionResources']['collectionResourceStoreKey']['ncfs']['ncfStoreKey'];
+
+    expect(ncfState).toBeDefined();
+    expect(ncfState.action).toEqual(ServiceInstanceActions.None_Delete);
+  });
+
+  test('#UNDO_DELETE_ACTION_NCF_INSTANCE', () => {
+    let ncfState = ncfReducer(<any>{
+      serviceInstance: {
+          'serviceModelId': {
+            collectionResources: {
+              'collectionResourceStoreKey': {
+                ncfs: {
+                  'ncfStoreKey': {
+                    isMissingData: true,
+                    action: 'Update_Delete'
+                  }
+                }
+              }
+
+            }
+          }
+        }
+      },
+      <UndoDeleteActionNcfInstanceAction>{
+        type: NcfActions.UNDO_DELETE_ACTION_NCF_INSTANCE,
+        collectionResourceStoreKey: 'collectionResourceStoreKey',
+        ncfStoreKey: 'ncfStoreKey',
+        serviceId: 'serviceModelId'
+      }).serviceInstance['serviceModelId']['collectionResources']['collectionResourceStoreKey']['ncfs']['ncfStoreKey'];
+
+    expect(ncfState).toBeDefined();
+    expect(ncfState.action).toEqual(ServiceInstanceActions.Update);
+  });
+
+});
diff --git a/vid-webpack-master/src/app/shared/storeUtil/utils/ncf/ncf.reducer.ts b/vid-webpack-master/src/app/shared/storeUtil/utils/ncf/ncf.reducer.ts
new file mode 100644 (file)
index 0000000..9bb069e
--- /dev/null
@@ -0,0 +1,26 @@
+import {ServiceState} from "../main.reducer";
+import {Action} from "redux";
+import * as _ from "lodash";
+import {ServiceInstanceActions} from "../../../models/serviceInstanceActions";
+import {NcfActions, DeleteActionNcfInstanceAction, UndoDeleteActionNcfInstanceAction} from "./ncf.actions";
+
+export function ncfReducer(state: ServiceState, action: Action): ServiceState {
+  switch (action.type) {
+    case NcfActions.DELETE_ACTION_NCF_INSTANCE : {
+      let newState = _.cloneDeep(state);
+      let ncf = newState.serviceInstance[(<DeleteActionNcfInstanceAction>action).serviceId]['collectionResources'][(<DeleteActionNcfInstanceAction>action).collectionResourceStoreKey]['ncfs'][(<DeleteActionNcfInstanceAction>action).ncfStoreKey];
+      let oldAction = ncf.action;
+      if(oldAction === ServiceInstanceActions.None_Delete || oldAction === ServiceInstanceActions.Update_Delete) return newState;
+      newState.serviceInstance[(<DeleteActionNcfInstanceAction>action).serviceId]['collectionResources'][(<DeleteActionNcfInstanceAction>action).collectionResourceStoreKey]['ncfs'][(<DeleteActionNcfInstanceAction>action).ncfStoreKey].action = (oldAction + '_Delete') as ServiceInstanceActions;
+      return newState;
+    }
+
+    case NcfActions.UNDO_DELETE_ACTION_NCF_INSTANCE : {
+      let newState = _.cloneDeep(state);
+      let ncf = newState.serviceInstance[(<UndoDeleteActionNcfInstanceAction>action).serviceId]['collectionResources'][(<DeleteActionNcfInstanceAction>action).collectionResourceStoreKey]['ncfs'][(<UndoDeleteActionNcfInstanceAction>action).ncfStoreKey];
+      let oldState = ncf.action;
+      newState.serviceInstance[(<UndoDeleteActionNcfInstanceAction>action).serviceId]['collectionResources'][(<DeleteActionNcfInstanceAction>action).collectionResourceStoreKey]['ncfs'][(<UndoDeleteActionNcfInstanceAction>action).ncfStoreKey].action = (oldState.split('_')[0]) as ServiceInstanceActions;
+      return newState;
+    }
+  }
+}
index c90d8eb..50bb98e 100644 (file)
@@ -1,5 +1,7 @@
 import {Action, ActionCreator} from "redux";
 import {NetworkInstance} from "../../../models/networkInstance";
+import {ActionOnFirstLevel} from "../firstLevel/firstLevel.actions";
+
 
 export enum NetworkActions {
   UPDATE_NETWORK_INSTANCE = "UPDATE_NETWORK_INSTANCE",
@@ -37,15 +39,7 @@ export interface CreateNetworkInstanceAction extends Action {
   networkStoreKey?:string;
 }
 
-export interface DeleteActionNetworkInstanceAction extends Action {
-  networkStoreKey: string;
-  serviceId?: string;
-}
 
-export interface UndoDeleteActionNetworkInstanceAction extends Action {
-  networkStoreKey: string;
-  serviceId?: string;
-}
 
 export const updateNetworkInstance: ActionCreator<UpdateNetworkInstanceAction> = (networkInstance, networkfModelName, serviceUuid, networkStoreKey) => ({
   type: NetworkActions.UPDATE_NETWORK_INSTANCE,
@@ -71,15 +65,17 @@ export const createNetworkInstance: ActionCreator<CreateNetworkInstanceAction> =
 });
 
 
-export const deleteActionNetworkInstance: ActionCreator<DeleteActionNetworkInstanceAction> = (networkStoreKey, serviceId) => ({
+export const deleteActionNetworkInstance: ActionCreator<ActionOnFirstLevel> = (networkStoreKey, serviceId) => ({
   type: NetworkActions.DELETE_ACTION_NETWORK_INSTANCE,
-  networkStoreKey: networkStoreKey,
+  firstLevelName: 'networks',
+  storeKey: networkStoreKey,
   serviceId: serviceId
 });
 
-export const undoDeleteActionNetworkInstance: ActionCreator<UndoDeleteActionNetworkInstanceAction> = (networkStoreKey, serviceId) => ({
+export const undoDeleteActionNetworkInstance: ActionCreator<ActionOnFirstLevel> = (networkStoreKey, serviceId) => ({
   type: NetworkActions.UNDO_DELETE_ACTION_NETWORK_INSTANCE,
-  networkStoreKey: networkStoreKey,
+  firstLevelName: 'networks',
+  storeKey: networkStoreKey,
   serviceId: serviceId
 });
 
index ba41ad6..7bf37fa 100644 (file)
@@ -1,12 +1,13 @@
 import {networkReducer} from "./network.reducers";
 import {
-  CreateNetworkInstanceAction, DeleteActionNetworkInstanceAction,
-  NetworkActions, UndoDeleteActionNetworkInstanceAction,
+  CreateNetworkInstanceAction,
+  NetworkActions,
   UpdateNetworkCollectionFunction,
   UpdateNetworkInstanceAction
 } from "./network.actions";
 import {NetworkInstance} from "../../../models/networkInstance";
 import {ServiceInstanceActions} from "../../../models/serviceInstanceActions";
+import {ActionOnFirstLevel} from "../firstLevel/firstLevel.actions";
 
 
 describe('networkReducer', () => {
@@ -78,9 +79,10 @@ describe('networkReducer', () => {
             }
           }
         }},
-      <DeleteActionNetworkInstanceAction>{
+      <ActionOnFirstLevel>{
         type: NetworkActions.DELETE_ACTION_NETWORK_INSTANCE,
-        networkStoreKey: 'networkStoreKey',
+        firstLevelName: 'networks',
+        storeKey: 'networkStoreKey',
         serviceId: 'serviceModelId'
       }).serviceInstance['serviceModelId'].networks['networkStoreKey'];
 
@@ -99,9 +101,9 @@ describe('networkReducer', () => {
             }
           }
         }},
-      <UndoDeleteActionNetworkInstanceAction>{
+      <ActionOnFirstLevel>{
         type: NetworkActions.UNDO_DELETE_ACTION_NETWORK_INSTANCE,
-        networkStoreKey: 'networkStoreKey',
+        storeKey: 'networkStoreKey',
         serviceId: 'serviceModelId'
       }).serviceInstance['serviceModelId'].networks['networkStoreKey'];
 
index bcbbea5..a8154e8 100644 (file)
@@ -2,8 +2,8 @@ import {Action} from "redux";
 import * as _ from "lodash";
 import {NetworkInstance} from "../../../models/networkInstance";
 import {
-  CreateNetworkInstanceAction, DeleteActionNetworkInstanceAction,
-  NetworkActions, UndoDeleteActionNetworkInstanceAction,
+  CreateNetworkInstanceAction,
+  NetworkActions,
   UpdateNetworkCollectionFunction,
   UpdateNetworkInstanceAction
 } from "./network.actions";
@@ -11,6 +11,8 @@ import {ServiceInstance} from "../../../models/serviceInstance";
 import {calculateNextUniqueModelName} from "../vnf/vnf.reducers";
 import {ServiceState} from "../main.reducer";
 import {ServiceInstanceActions} from "../../../models/serviceInstanceActions";
+import {deleteFirstLevel, updateServiceValidationCounter} from "../reducersHelper";
+import {ActionOnFirstLevel} from "../firstLevel/firstLevel.actions";
 
 
 export function networkReducer(state: ServiceState , action: Action) : ServiceState {
@@ -58,23 +60,18 @@ export function networkReducer(state: ServiceState , action: Action) : ServiceSt
       Object.assign(state, {'networkFunctions': networkFunctionReduxObj});
       return Object.assign({}, state);
     }
+
     case NetworkActions.DELETE_ACTION_NETWORK_INSTANCE : {
-      let newState = _.cloneDeep(state);
-      let network = newState.serviceInstance[(<DeleteActionNetworkInstanceAction>action).serviceId].networks[(<DeleteActionNetworkInstanceAction>action).networkStoreKey];
-      let oldAction = network.action;
-      if(oldAction === ServiceInstanceActions.None_Delete || oldAction === ServiceInstanceActions.Update_Delete) return newState;
-      newState.serviceInstance[(<DeleteActionNetworkInstanceAction>action).serviceId].networks[(<DeleteActionNetworkInstanceAction>action).networkStoreKey].action = (oldAction + '_Delete') as ServiceInstanceActions;
-      updateServiceValidationCounter(newState, network['isMissingData'], false , (<DeleteActionNetworkInstanceAction>action).serviceId);
+      return deleteFirstLevel(state, <ActionOnFirstLevel>action,true);
 
-      return newState;
     }
 
     case NetworkActions.UNDO_DELETE_ACTION_NETWORK_INSTANCE : {
       let newState = _.cloneDeep(state);
-      let network = newState.serviceInstance[(<UndoDeleteActionNetworkInstanceAction>action).serviceId].networks[(<UndoDeleteActionNetworkInstanceAction>action).networkStoreKey];
+      let network = newState.serviceInstance[(<ActionOnFirstLevel>action).serviceId].networks[(<ActionOnFirstLevel>action).storeKey];
       let oldState = network.action;
-      newState.serviceInstance[(<UndoDeleteActionNetworkInstanceAction>action).serviceId].networks[(<UndoDeleteActionNetworkInstanceAction>action).networkStoreKey].action = (oldState.split('_')[0]) as ServiceInstanceActions;
-      updateServiceValidationCounter(newState, network['isMissingData'], false , (<DeleteActionNetworkInstanceAction>action).serviceId);
+      newState.serviceInstance[(<ActionOnFirstLevel>action).serviceId].networks[(<ActionOnFirstLevel>action).storeKey].action = (oldState.split('_')[0]) as ServiceInstanceActions;
+      updateServiceValidationCounter(newState, network['isMissingData'], false , (<ActionOnFirstLevel>action).serviceId);
       return newState;
     }
   }
@@ -91,12 +88,5 @@ const updateUniqueNames = (oldName : string, newName : string, serviceInstance :
 };
 
 
-const updateServiceValidationCounter = (newState: any, oldValidationState: boolean, newValidationState: boolean, serviceUuid: string) => {
-  if (oldValidationState && !newValidationState) {
-    newState.serviceInstance[serviceUuid].validationCounter--;
-  } else if (!oldValidationState && newValidationState) {
-    newState.serviceInstance[serviceUuid].validationCounter++;
-  }
-};
 
 
diff --git a/vid-webpack-master/src/app/shared/storeUtil/utils/reducersHelper.ts b/vid-webpack-master/src/app/shared/storeUtil/utils/reducersHelper.ts
new file mode 100644 (file)
index 0000000..5722811
--- /dev/null
@@ -0,0 +1,25 @@
+import * as _ from "lodash";
+import {ActionOnFirstLevel} from "./firstLevel/firstLevel.actions";
+import {ServiceInstanceActions} from "../../models/serviceInstanceActions";
+import {ServiceState} from "./main.reducer";
+
+export function deleteFirstLevel(state: ServiceState, action: ActionOnFirstLevel,shouldUpdateServiceValidationCounter: boolean)
+{
+  let newState = _.cloneDeep(state);
+  let firstLevel = newState.serviceInstance[action.serviceId][action.firstLevelName][action.storeKey];
+  let oldAction = firstLevel.action;
+  if(oldAction === ServiceInstanceActions.None_Delete || oldAction === ServiceInstanceActions.Update_Delete) return newState;
+  if (shouldUpdateServiceValidationCounter){
+    updateServiceValidationCounter(newState, firstLevel['isMissingData'], false, action.serviceId);
+  }
+  newState.serviceInstance[action.serviceId][action.firstLevelName][action.storeKey].action = (oldAction + '_Delete') as ServiceInstanceActions;
+  return newState;
+}
+
+export function updateServiceValidationCounter(newState: any, oldValidationState: boolean, newValidationState: boolean, serviceUuid: string) {
+  if (oldValidationState && !newValidationState) {
+    newState.serviceInstance[serviceUuid].validationCounter--;
+  } else if (!oldValidationState && newValidationState) {
+    newState.serviceInstance[serviceUuid].validationCounter++;
+  }
+};
index 3479574..30ad016 100644 (file)
@@ -105,7 +105,7 @@ describe('relatedVnfMemberReducer', () => {
       "instanceId":"VNF1_INSTANCE_ID",
       "orchStatus":null,
       "productFamilyId":null,
-      "lcpCloudRegionId":"mtn23b",
+      "lcpCloudRegionId":"hvf23b",
       "tenantId":"3e9a20a3e89e45f884e09df0cc2d2d2a",
       "tenantName":"APPC-24595-T-IST-02C",
       "modelInfo":{
index 05fc008..cff9445 100644 (file)
@@ -1,13 +1,16 @@
 import {ServiceInstance} from "../../../models/serviceInstance";
 import {
-  AddServiceAction, ChangeServiceDirty,
+  AddServiceAction,
+  ChangeServiceDirty,
+  CreateServiceInstanceAction,
   DeleteServiceInstanceAction,
   ServiceActions,
-  CreateServiceInstanceAction,
-  UpdateServiceModelAction, UpdateServiceInstanceAction
+  UpdateServiceInstanceAction,
+  UpdateServiceModelAction
 } from "./service.actions";
 import {serviceReducer} from "./service.reducers";
 import {ServiceInstanceActions} from "../../../models/serviceInstanceActions";
+import {VidNotions} from "../../../models/vidNotions";
 
 describe('serviceReducer', () => {
 
@@ -17,32 +20,32 @@ describe('serviceReducer', () => {
 
     const elemntThatShouldNotOverideOnUpdateService = {
       vnfs: {
-        "2017-388_ADIOD-vPE 0": {
+        "2017-388_PASQUALE-vPE 0": {
           "action": "Create",
           "inMaint": false,
           "rollbackOnFailure": "true",
-          "originalName": "2017-388_ADIOD-vPE 0",
+          "originalName": "2017-388_PASQUALE-vPE 0",
           "isMissingData": false,
           "trackById": "eymgwlevh54",
           "vfModules": {},
-          "vnfStoreKey": "2017-388_ADIOD-vPE 0",
+          "vnfStoreKey": "2017-388_PASQUALE-vPE 0",
           "uuid": "afacccf6-397d-45d6-b5ae-94c39734b168",
           "productFamilyId": "e433710f-9217-458d-a79d-1c7aff376d89",
-          "lcpCloudRegionId": "JANET25",
+          "lcpCloudRegionId": "AAIAIC25",
           "tenantId": "092eb9e8e4b7412e8787dd091bc58e86",
           "lineOfBusiness": "ONAP",
           "platformName": "platform",
           "modelInfo": {
             "modelInvariantId": "72e465fe-71b1-4e7b-b5ed-9496118ff7a8",
             "modelVersionId": "afacccf6-397d-45d6-b5ae-94c39734b168",
-            "modelName": "2017-388_ADIOD-vPE",
+            "modelName": "2017-388_PASQUALE-vPE",
             "modelVersion": "4.0",
             "modelCustomizationId": "b3c76f73-eeb5-4fb6-9d31-72a889f1811c",
-            "modelCustomizationName": "2017-388_ADIOD-vPE 0",
+            "modelCustomizationName": "2017-388_PASQUALE-vPE 0",
             "uuid": "afacccf6-397d-45d6-b5ae-94c39734b168",
             "modelUniqueId": "b3c76f73-eeb5-4fb6-9d31-72a889f1811c"
           },
-          "instanceName": "2017-388_ADIOD-vPEAjXzainstanceName",
+          "instanceName": "2017-388_PASQUALE-vPEAjXzainstanceName",
           "legacyRegion": "some legacy region",
           "instanceParams": [
             {
@@ -55,26 +58,26 @@ describe('serviceReducer', () => {
             }
           ]
         },
-        "2017-488_ADIOD-vPE 0": {
+        "2017-488_PASQUALE-vPE 0": {
           "action": "Create",
           "inMaint": false,
           "rollbackOnFailure": "true",
-          "originalName": "2017-488_ADIOD-vPE 0",
+          "originalName": "2017-488_PASQUALE-vPE 0",
           "isMissingData": false,
           "trackById": "xr6o2782z7",
           "vfModules": {
-            "2017488_adiodvpe0..2017488AdiodVpe..ADIOD_base_vPE_BV..module-0": {
-              "2017488_adiodvpe0..2017488AdiodVpe..ADIOD_base_vPE_BV..module-0wmkjw": {
+            "2017488_pasqualevpe0..2017488PasqualeVpe..PASQUALE_base_vPE_BV..module-0": {
+              "2017488_pasqualevpe0..2017488PasqualeVpe..PASQUALE_base_vPE_BV..module-0wmkjw": {
                 "isMissingData": true,
                 "sdncPreReload": null,
                 "modelInfo": {
                   "modelType": "VFmodule",
                   "modelInvariantId": "b34833bb-6aa9-4ad6-a831-70b06367a091",
                   "modelVersionId": "f8360508-3f17-4414-a2ed-6bc71161e8db",
-                  "modelName": "2017488AdiodVpe..ADIOD_base_vPE_BV..module-0",
+                  "modelName": "2017488PasqualeVpe..PASQUALE_base_vPE_BV..module-0",
                   "modelVersion": "5",
                   "modelCustomizationId": "a55961b2-2065-4ab0-a5b7-2fcee1c227e3",
-                  "modelCustomizationName": "2017488AdiodVpe..ADIOD_base_vPE_BV..module-0",
+                  "modelCustomizationName": "2017488PasqualeVpe..PASQUALE_base_vPE_BV..module-0",
                   "modelUniqueId": "a55961b2-2065-4ab0-a5b7-2fcee1c227e3"
                 },
                 "instanceParams": [
@@ -84,24 +87,24 @@ describe('serviceReducer', () => {
               }
             }
           },
-          "vnfStoreKey": "2017-488_ADIOD-vPE 0",
+          "vnfStoreKey": "2017-488_PASQUALE-vPE 0",
           "uuid": "69e09f68-8b63-4cc9-b9ff-860960b5db09",
           "productFamilyId": "e433710f-9217-458d-a79d-1c7aff376d89",
-          "lcpCloudRegionId": "JANET25",
+          "lcpCloudRegionId": "AAIAIC25",
           "tenantId": "092eb9e8e4b7412e8787dd091bc58e86",
           "lineOfBusiness": "ONAP",
           "platformName": "platform",
           "modelInfo": {
             "modelInvariantId": "72e465fe-71b1-4e7b-b5ed-9496118ff7a8",
             "modelVersionId": "69e09f68-8b63-4cc9-b9ff-860960b5db09",
-            "modelName": "2017-488_ADIOD-vPE",
+            "modelName": "2017-488_PASQUALE-vPE",
             "modelVersion": "5.0",
             "modelCustomizationId": "1da7b585-5e61-4993-b95e-8e6606c81e45",
-            "modelCustomizationName": "2017-488_ADIOD-vPE 0",
+            "modelCustomizationName": "2017-488_PASQUALE-vPE 0",
             "uuid": "69e09f68-8b63-4cc9-b9ff-860960b5db09",
             "modelUniqueId": "1da7b585-5e61-4993-b95e-8e6606c81e45"
           },
-          "instanceName": "2017-488_ADIOD-vPEVNFinstancename",
+          "instanceName": "2017-488_PASQUALE-vPEVNFinstancename",
           "legacyRegion": "some legacy region",
           "instanceParams": [
             {
@@ -135,14 +138,14 @@ describe('serviceReducer', () => {
           "vnfs": elemntThatShouldNotOverideOnUpdateService.vnfs,
           "instanceParams": [
             {
-              "2017488_adiodvpe0_ASN": "AV_vPE"
+              "2017488_pasqualevpe0_ASN": "AV_vPE"
             }
           ],
           "validationCounter": 1,
           "existingNames": {
             "ajxzainstancename": "",
-            "2017-488_adiod-vpevnfinstancename": "",
-            "2017-388_adiod-vpeajxzainstancename": ""
+            "2017-488_pasquale-vpevnfinstancename": "",
+            "2017-388_pasquale-vpeajxzainstancename": ""
           },
           "existingVNFCounterMap": elemntThatShouldNotOverideOnUpdateService.existingVNFCounterMap,
           "existingVnfGroupCounterMap": elemntThatShouldNotOverideOnUpdateService.existingVnfGroupCounterMap,
@@ -207,7 +210,7 @@ describe('serviceReducer', () => {
         isALaCarte: false,
         isEcompGeneratedNaming: false,
         isMultiStepDesign: false,
-        lcpCloudRegionId: "JANET25",
+        lcpCloudRegionId: "AAIAIC25",
         modelInfo: {
           modelInvariantId: "e49fbd11-e60c-4a8e-b4bf-30fbe8f4fcc0",
           modelVersionId: "6b528779-44a3-4472-bdff-9cd15ec93450",
@@ -264,8 +267,14 @@ describe('serviceReducer', () => {
     expect(service.serviceInstance[serviceUuid]['action']).toEqual(actionName);
   });
 
-  test('#UPDATE_SERVICE_INSTANCE', () => {
+  test('#CREATE_SERVICE_INSTANCE shall put the instance on state with all its values ', () => {
     const serviceUuid: string = 'serviceUuid';
+    const vidNotions:VidNotions = {
+      instantiationUI: "some5G",
+      modelCategory: "5G Provider Network",
+      viewEditUI: "legacy",
+      instantiationType: "ALaCarte"
+    };
 
     let serviceInstanceObject: ServiceInstance = <any>{
       isDirty: false,
@@ -298,7 +307,17 @@ describe('serviceReducer', () => {
       action: ServiceInstanceActions.Create
     };
 
-    let serviceState = serviceReducer(<any>{serviceInstance: {}},
+    let serviceState = serviceReducer(
+      <any>{
+        serviceInstance: {},
+        serviceHierarchy: {
+          [serviceUuid]: {
+            service: {
+              vidNotions: vidNotions
+            }
+          }
+        }
+      },
       <CreateServiceInstanceAction>{
         type: ServiceActions.CREATE_SERVICE_INSTANCE,
         serviceUuid: serviceUuid,
@@ -324,6 +343,7 @@ describe('serviceReducer', () => {
     expect(serviceState.instanceParams).toEqual(serviceInstanceObject.instanceParams);
     expect(serviceState.rollbackOnFailure).toEqual(serviceInstanceObject.rollbackOnFailure);
     expect(serviceState.subscriberName).toEqual(serviceInstanceObject.subscriberName);
+    expect(serviceState.vidNotions).toEqual(vidNotions);
   });
 
 
index 9d21d35..c6d3da5 100644 (file)
@@ -2,9 +2,10 @@ import {Action} from "redux";
 import {
   AddServiceAction,
   ChangeServiceDirty,
-  ServiceActions,
   CreateServiceInstanceAction,
-  UpdateServiceModelAction, UpdateServiceInstanceAction
+  ServiceActions,
+  UpdateServiceInstanceAction,
+  UpdateServiceModelAction
 } from "./service.actions";
 import {ServiceInstance} from "../../../models/serviceInstance";
 import {ServiceState} from "../main.reducer";
@@ -34,6 +35,7 @@ export function serviceReducer(state: ServiceState, action: Action) : ServiceSta
         const currentInstaceName = state.serviceInstance[uuid] ? serviceInstance.instanceName : null;
 
         newState.serviceInstance[uuid] = Object.assign(serviceInstance, updateServiceInstanceAction.serviceInstance);
+        newState.serviceInstance[uuid].vidNotions = _.get(state,`serviceHierarchy[${uuid}].service.vidNotions`);
         if (!_.isNil(updateServiceInstanceAction.serviceInstance)) {
           updateUniqueNames(currentInstaceName, updateServiceInstanceAction.serviceInstance.instanceName, newState.serviceInstance[uuid]);
         }
index f3636ff..05319c0 100644 (file)
@@ -10,6 +10,7 @@ import {ServiceInstance} from "../../../models/serviceInstance";
 import {VfModuleMap} from "../../../models/vfModulesMap";
 import {ServiceState} from "../main.reducer";
 import {ServiceInstanceActions} from "../../../models/serviceInstanceActions";
+import {updateServiceValidationCounter} from "../reducersHelper";
 
 
 export function vfModuleReducer(state: ServiceState , action: Action) : ServiceState{
@@ -132,13 +133,6 @@ const updateUniqueNames = (oldName : string, newName : string, serviceInstance :
   }
 };
 
-const updateServiceValidationCounter = (newState: any, oldValidationState: boolean, newValidationState: boolean, serviceUuid: string) => {
-  if (oldValidationState && !newValidationState) {
-    newState.serviceInstance[serviceUuid].validationCounter--;
-  } else if (!oldValidationState && newValidationState) {
-    newState.serviceInstance[serviceUuid].validationCounter++;
-  }
-};
 
 const generateId = () => {
   return Math.random().toString(36).replace(/[^a-z]+/g, '').substr(0, 5);
index b842844..25179fe 100644 (file)
@@ -1,5 +1,6 @@
 import {Action, ActionCreator} from "redux";
 import {VnfInstance} from "../../../models/vnfInstance";
+import {ActionOnFirstLevel} from "../firstLevel/firstLevel.actions";
 
 export enum VNFActions {
   CREATE_VNF_INSTANCE = "CREATE_VNF_INSTANCE",
@@ -31,18 +32,6 @@ export interface UpdateVnfInstanceAction extends Action {
   vnfStoreKey?:string;
 }
 
-
-
-export interface DeleteActionVnfInstanceAction extends Action {
-  vnfStoreKey: string;
-  serviceId?: string;
-}
-
-export interface UndoDeleteActionVnfInstanceAction extends Action {
-  vnfStoreKey: string;
-  serviceId?: string;
-}
-
 export interface RemoveVnfInstanceAction extends Action {
   vnfStoreKey: string;
   serviceId?: string;
@@ -66,15 +55,17 @@ export const updateVNFInstance: ActionCreator<UpdateVnfInstanceAction> = (vnfIns
 });
 
 
-export const deleteActionVnfInstance: ActionCreator<DeleteActionVnfInstanceAction> = (vnfStoreKey, serviceId) => ({
+export const deleteActionVnfInstance: ActionCreator<ActionOnFirstLevel> = (vnfStoreKey, serviceId) => ({
   type: VNFActions.DELETE_ACTION_VNF_INSTANCE,
-  vnfStoreKey: vnfStoreKey,
+  firstLevelName: 'vnfs',
+  storeKey: vnfStoreKey,
   serviceId: serviceId
 });
 
-export const undoDeleteActionVnfInstance: ActionCreator<UndoDeleteActionVnfInstanceAction> = (vnfStoreKey, serviceId) => ({
+export const undoDeleteActionVnfInstance: ActionCreator<ActionOnFirstLevel> = (vnfStoreKey, serviceId) => ({
   type: VNFActions.UNDO_DELETE_ACTION_VNF_INSTANCE,
-  vnfStoreKey: vnfStoreKey,
+  firstLevelName: 'vnfs',
+  storeKey: vnfStoreKey,
   serviceId: serviceId
 });
 
index 3241f11..a5e37fc 100644 (file)
@@ -1,14 +1,15 @@
 import {VnfInstance} from "../../../models/vnfInstance";
 import {
   CreateVnfInstanceAction,
-  DeleteActionVnfInstanceAction, RemoveVnfInstanceAction,
-  UndoDeleteActionVnfInstanceAction, UpdateVnfPosition,
+  RemoveVnfInstanceAction,
+  UpdateVnfPosition,
   VNFActions
 } from "./vnf.actions";
 import {vnfReducer} from "./vnf.reducers";
 import {ServiceInstanceActions} from "../../../models/serviceInstanceActions";
+import {ActionOnFirstLevel} from "../firstLevel/firstLevel.actions";
 
-describe('networkReducer', () => {
+describe('vnfReducer', () => {
   test('#UPDATE_VNF_POSITION', () => {
     let vnfInstance: VnfInstance = new VnfInstance();
     vnfInstance.isMissingData = false;
@@ -70,9 +71,10 @@ describe('networkReducer', () => {
             }
           }
         }},
-      <DeleteActionVnfInstanceAction>{
+      <ActionOnFirstLevel>{
         type: VNFActions.DELETE_ACTION_VNF_INSTANCE,
-        vnfStoreKey: 'vnfStoreKey',
+        firstLevelName: 'vnfs',
+        storeKey: 'vnfStoreKey',
         serviceId: 'serviceModelId'
       }).serviceInstance['serviceModelId'].vnfs['vnfStoreKey'];
 
@@ -91,9 +93,10 @@ describe('networkReducer', () => {
             }
           }
         }},
-      <UndoDeleteActionVnfInstanceAction>{
+      <ActionOnFirstLevel>{
         type: VNFActions.UNDO_DELETE_ACTION_VNF_INSTANCE,
-        vnfStoreKey: 'vnfStoreKey',
+        storeKey: 'vnfStoreKey',
+        firstLevelName: 'vnfs',
         serviceId: 'serviceModelId'
       }).serviceInstance['serviceModelId'].vnfs['vnfStoreKey'];
 
index cc24d8d..072634f 100644 (file)
@@ -2,7 +2,7 @@ import {Action} from "redux";
 import {VnfInstance} from "../../../models/vnfInstance";
 import {
   CreateVnfInstanceAction,
-  DeleteActionVnfInstanceAction, RemoveVnfInstanceAction, UndoDeleteActionVnfInstanceAction,
+  RemoveVnfInstanceAction,
   UpdateVnfInstanceAction, UpdateVnfPosition,
   VNFActions
 } from "./vnf.actions";
@@ -10,6 +10,8 @@ import * as _ from "lodash";
 import {ServiceInstance} from "../../../models/serviceInstance";
 import {ServiceState} from "../main.reducer";
 import {ServiceInstanceActions} from "../../../models/serviceInstanceActions";
+import {deleteFirstLevel, updateServiceValidationCounter} from "../reducersHelper";
+import {ActionOnFirstLevel} from "../firstLevel/firstLevel.actions";
 
 export function vnfReducer(state: ServiceState, action: Action): ServiceState {
   switch (action.type) {
@@ -52,21 +54,16 @@ export function vnfReducer(state: ServiceState, action: Action): ServiceState {
     }
 
     case VNFActions.DELETE_ACTION_VNF_INSTANCE : {
-      let newState = _.cloneDeep(state);
-      let vnf = newState.serviceInstance[(<DeleteActionVnfInstanceAction>action).serviceId].vnfs[(<DeleteActionVnfInstanceAction>action).vnfStoreKey];
-      let oldAction = vnf.action;
-      if(oldAction === ServiceInstanceActions.None_Delete || oldAction === ServiceInstanceActions.Update_Delete) return newState;
-      newState.serviceInstance[(<DeleteActionVnfInstanceAction>action).serviceId].vnfs[(<DeleteActionVnfInstanceAction>action).vnfStoreKey].action = (oldAction + '_Delete') as ServiceInstanceActions;
-      updateServiceValidationCounter(newState, vnf['isMissingData'], false,  (<RemoveVnfInstanceAction>action).serviceId);
-      return newState;
+      return deleteFirstLevel(state, <ActionOnFirstLevel>action,true);
+
     }
 
     case VNFActions.UNDO_DELETE_ACTION_VNF_INSTANCE : {
       let newState = _.cloneDeep(state);
-      let vnf = newState.serviceInstance[(<UndoDeleteActionVnfInstanceAction>action).serviceId].vnfs[(<UndoDeleteActionVnfInstanceAction>action).vnfStoreKey];
+      let vnf = newState.serviceInstance[(<ActionOnFirstLevel>action).serviceId].vnfs[(<ActionOnFirstLevel>action).storeKey];
       let oldState = vnf.action;
-      newState.serviceInstance[(<UndoDeleteActionVnfInstanceAction>action).serviceId].vnfs[(<UndoDeleteActionVnfInstanceAction>action).vnfStoreKey].action = (oldState.split('_')[0]) as ServiceInstanceActions;
-      updateServiceValidationCounter(newState, vnf['isMissingData'], false,  (<UndoDeleteActionVnfInstanceAction>action).serviceId);
+      newState.serviceInstance[(<ActionOnFirstLevel>action).serviceId].vnfs[(<ActionOnFirstLevel>action).storeKey].action = (oldState.split('_')[0]) as ServiceInstanceActions;
+      updateServiceValidationCounter(newState, vnf['isMissingData'], false,  (<ActionOnFirstLevel>action).serviceId);
       return newState;
     }
 
@@ -86,13 +83,7 @@ export function vnfReducer(state: ServiceState, action: Action): ServiceState {
   }
 }
 
-const updateServiceValidationCounter = (newState: any, oldValidationState: boolean, newValidationState: boolean, serviceUuid: string) => {
-  if (oldValidationState && !newValidationState) {
-    newState.serviceInstance[serviceUuid].validationCounter--;
-  } else if (!oldValidationState && newValidationState) {
-    newState.serviceInstance[serviceUuid].validationCounter++;
-  }
-};
+
 
 
 const updateUniqueNames = (oldName: string, newName: string, serviceInstance: ServiceInstance): void => {
diff --git a/vid-webpack-master/src/app/shared/storeUtil/utils/vrf/vrf.actions.ts b/vid-webpack-master/src/app/shared/storeUtil/utils/vrf/vrf.actions.ts
new file mode 100644 (file)
index 0000000..a95a266
--- /dev/null
@@ -0,0 +1,84 @@
+import {Action, ActionCreator} from "redux";
+
+export enum VrfActions {
+  CREATE_VRF_INSTANCE = "CREATE_VRF_INSTANCE",
+  EDIT_VRF_INSTANCE = "EDIT_VRF_INSTANCE",
+  DELETE_VRF_INSTANCE = "DELETE_VRF_INSTANCE",
+  VRF_ASSOCIATE_MEMBER = "VRF_ASSOCIATE_MEMBER",
+  CLAER_ASSOCIATE__VRF_MEMBERS = "CLAER_ASSOCIATE__VRF_MEMBERS",
+  DELETE_ACTION_VRF_INSTANCE = "DELETE_ACTION_VRF_INSTANCE",
+  UNDO_DELETE_ACTION_VRF_INSTANCE = "UNDO_DELETE_ACTION_VRF_INSTANCE"
+}
+
+
+export interface CreateVRFInstanceAction extends Action {
+  vrfModel : any;
+  serviceModelId : string;
+  vrfStoreKey : string;
+}
+
+export interface AssociateVRFMemberInstanceAction extends Action {
+  vrfStoreKey : string;
+  serviceModelId : string;
+  memberType : string;
+  member : any;
+}
+
+export interface ClearAssociateVRFMemberInstanceAction extends Action {
+  vrfStoreKey : string;
+  serviceModelId : string;
+  memberType : string;
+}
+
+export interface DeleteActionVrfInstanceAction extends Action {
+  vrfStoreKey : string;
+  serviceId : string;
+}
+
+export interface UndoDeleteActionVrfInstanceAction extends Action {
+  vrfStoreKey: string;
+  serviceId?: string;
+}
+
+export const createVrfInstance: ActionCreator<CreateVRFInstanceAction> = (vrfModel, serviceModelId, vrfStoreKey) => ({
+  type: VrfActions.CREATE_VRF_INSTANCE,
+  vrfModel : vrfModel,
+  serviceModelId : serviceModelId,
+  vrfStoreKey : vrfStoreKey
+});
+
+
+export const associateVRFMember: ActionCreator<AssociateVRFMemberInstanceAction> = (vrfStoreKey, serviceModelId, member, memberType) => ({
+  type: VrfActions.VRF_ASSOCIATE_MEMBER,
+  vrfStoreKey : vrfStoreKey,
+  serviceModelId : serviceModelId,
+  member : member,
+  memberType : memberType
+});
+
+export const clearAssociateVRFMemberInstance: ActionCreator<ClearAssociateVRFMemberInstanceAction> = (vrfStoreKey, serviceModelId, memberType) => ({
+  type: VrfActions.CLAER_ASSOCIATE__VRF_MEMBERS,
+  vrfStoreKey : vrfStoreKey,
+  serviceModelId : serviceModelId,
+  memberType : memberType
+});
+
+export const deleteActionVrfInstance: ActionCreator<DeleteActionVrfInstanceAction> = (vrfStoreKey, serviceId) => ({
+  type: VrfActions.DELETE_ACTION_VRF_INSTANCE,
+  vrfStoreKey : vrfStoreKey,
+  serviceId : serviceId
+});
+
+export const undoDeleteActionVrfInstance: ActionCreator<UndoDeleteActionVrfInstanceAction> = (vrfStoreKey, serviceId) => ({
+  type: VrfActions.UNDO_DELETE_ACTION_VRF_INSTANCE,
+  vrfStoreKey: vrfStoreKey,
+  serviceId: serviceId
+});
+
+
+
+
+
+
+
+
diff --git a/vid-webpack-master/src/app/shared/storeUtil/utils/vrf/vrf.reducer.spec.ts b/vid-webpack-master/src/app/shared/storeUtil/utils/vrf/vrf.reducer.spec.ts
new file mode 100644 (file)
index 0000000..607fa05
--- /dev/null
@@ -0,0 +1,152 @@
+import {vrfReducer} from "./vrf.reducer";
+import {
+  AssociateVRFMemberInstanceAction,
+  ClearAssociateVRFMemberInstanceAction,
+  CreateVRFInstanceAction, DeleteActionVrfInstanceAction, UndoDeleteActionVrfInstanceAction,
+  VrfActions
+} from "./vrf.actions";
+import {vnfReducer} from "../vnf/vnf.reducers";
+import {DeleteActionVnfInstanceAction, UndoDeleteActionVnfInstanceAction, VNFActions} from "../vnf/vnf.actions";
+import {ServiceInstanceActions} from "../../../models/serviceInstanceActions";
+
+
+describe('vrfReducer', () => {
+  test('#VRF_ASSOCIATE_MEMBER ', () => {
+
+    const serviceModelId: string = 'serviceModelID';
+    const vrfStoreKey : string = 'vrfStoreKey';
+    const memberType : string = 'networks';
+    const member = {a : 1 , b : 2};
+    let vrfState = vrfReducer(<any>{
+         serviceInstance : {
+          [serviceModelId] : {
+            vrfs : {
+              [vrfStoreKey] : {
+                [memberType] : {
+
+                }
+              }
+
+            }
+          }
+        }},
+      <AssociateVRFMemberInstanceAction>{
+        type: VrfActions.VRF_ASSOCIATE_MEMBER,
+        vrfStoreKey : vrfStoreKey,
+        serviceModelId : serviceModelId,
+        memberType : memberType,
+        member : member
+      });
+
+    expect(vrfState).toBeDefined();
+    expect(vrfState.serviceInstance[serviceModelId].vrfs[vrfStoreKey][memberType][`${vrfStoreKey} ${memberType} 1`]).toBeDefined();
+    expect(vrfState.serviceInstance[serviceModelId].vrfs[vrfStoreKey][memberType][`${vrfStoreKey} ${memberType} 1`]).toEqual(member);
+  });
+
+  test('#CLAER_ASSOCIATE__VRF_MEMBERS ', () => {
+
+    const serviceModelId: string = 'serviceModelID';
+    const vrfStoreKey : string = 'vrfStoreKey';
+    const memberType : string = 'networks';
+    let vrfState = vrfReducer(<any>{
+        serviceInstance : {
+          [serviceModelId] : {
+            vrfs : {
+              [vrfStoreKey] : {
+                [memberType] : {
+                  a : 1,
+                  b : 2
+                }
+              }
+
+            }
+          }
+        }},
+      <ClearAssociateVRFMemberInstanceAction>{
+        type: VrfActions.CLAER_ASSOCIATE__VRF_MEMBERS,
+        vrfStoreKey : vrfStoreKey,
+        serviceModelId : serviceModelId,
+        memberType : memberType
+      }).serviceInstance[serviceModelId].vrfs[vrfStoreKey];
+
+    expect(vrfState).toBeDefined();
+    expect(vrfState[memberType]).toBeDefined();
+    expect(vrfState[memberType]).toEqual({});
+  });
+
+  test('#CREATE_VRF_INSTANCE ', () => {
+
+    const serviceModelId: string = 'serviceModelID';
+    const vrfStoreKey : string = 'vrfStoreKey';
+    const vrfModelName : string = 'vrfModelName';
+    const memberType : string = 'networks';
+    let vrfState = vrfReducer(<any>{
+         serviceInstance : {
+          [serviceModelId] : {
+            vrfs : {
+              [vrfStoreKey] : {
+                [memberType] : {
+
+                }
+              }
+
+            }
+          }
+        }},
+      <CreateVRFInstanceAction>{
+        type: VrfActions.CREATE_VRF_INSTANCE,
+        vrfModel : {
+          name : vrfModelName
+        },
+        serviceModelId : serviceModelId,
+        vrfStoreKey : vrfStoreKey
+      }).serviceInstance[serviceModelId].vrfs;
+
+    expect(vrfState).toBeDefined();
+    expect(vrfState[vrfModelName]).toBeDefined();
+  });
+
+  test('#DELETE_ACTION_VRF_INSTANCE', () => {
+    let vnfState = vrfReducer(<any>{serviceInstance : {
+          'serviceModelId' : {
+            vrfs : {
+              'vrfStoreKey' : {
+                isMissingData : true,
+                action : 'None'
+              }
+            }
+          }
+        }},
+      <DeleteActionVrfInstanceAction>{
+        type: VrfActions.DELETE_ACTION_VRF_INSTANCE,
+        vrfStoreKey: 'vrfStoreKey',
+        serviceId: 'serviceModelId'
+      }).serviceInstance['serviceModelId'].vrfs['vrfStoreKey'];
+
+    expect(vnfState).toBeDefined();
+    expect(vnfState.action).toEqual(ServiceInstanceActions.None_Delete);
+  });
+
+  test('#UNDO_DELETE_ACTION_VRF_INSTANCE', () => {
+    let vnfState = vrfReducer(<any>{serviceInstance : {
+          'serviceModelId' : {
+            vrfs : {
+              'vrfStoreKey' : {
+                isMissingData : true,
+                action : 'Update_Delete'
+              }
+            }
+          }
+        }},
+      <UndoDeleteActionVrfInstanceAction>{
+        type: VrfActions.UNDO_DELETE_ACTION_VRF_INSTANCE,
+        vrfStoreKey: 'vrfStoreKey',
+        serviceId: 'serviceModelId'
+      }).serviceInstance['serviceModelId'].vrfs['vrfStoreKey'];
+
+    expect(vnfState).toBeDefined();
+    expect(vnfState.action).toEqual(ServiceInstanceActions.Update);
+  });
+});
+
+
diff --git a/vid-webpack-master/src/app/shared/storeUtil/utils/vrf/vrf.reducer.ts b/vid-webpack-master/src/app/shared/storeUtil/utils/vrf/vrf.reducer.ts
new file mode 100644 (file)
index 0000000..f3d8120
--- /dev/null
@@ -0,0 +1,90 @@
+import {ServiceState} from "../main.reducer";
+import {Action} from "redux";
+import * as _ from "lodash";
+import {
+  AssociateVRFMemberInstanceAction,
+  ClearAssociateVRFMemberInstanceAction,
+  CreateVRFInstanceAction, DeleteActionVrfInstanceAction, UndoDeleteActionVrfInstanceAction,
+  VrfActions
+} from "./vrf.actions";
+import {calculateNextUniqueModelName} from "../vnf/vnf.reducers";
+import {ServiceInstanceActions} from "../../../models/serviceInstanceActions";
+
+export function vrfReducer(state: ServiceState, action: Action): ServiceState {
+  switch (action.type) {
+    case VrfActions.CREATE_VRF_INSTANCE: {
+      const createVRFInstanceAction = <CreateVRFInstanceAction>action;
+      const serviceUuid = createVRFInstanceAction.serviceModelId;
+
+      let newState = _.cloneDeep(state);
+
+      const vrfModelName = calculateNextUniqueModelName(createVRFInstanceAction.vrfModel['name'], serviceUuid, newState, 'vrfs');
+      newState.serviceInstance[serviceUuid].vrfs[vrfModelName] = <any>{
+        ...createVRFInstanceAction.vrfModel
+      };
+      return newState;
+    }
+    case VrfActions.VRF_ASSOCIATE_MEMBER: {
+      const associateVRFMemberInstanceAction = <AssociateVRFMemberInstanceAction>action;
+      const serviceUuid = associateVRFMemberInstanceAction.serviceModelId;
+      const member = associateVRFMemberInstanceAction.member;
+      const vrfStoreKey = associateVRFMemberInstanceAction.vrfStoreKey;
+      const memberType = associateVRFMemberInstanceAction.memberType;
+
+      let newState = _.cloneDeep(state);
+
+      if(_.isNil(newState.serviceInstance[serviceUuid].vrfs[vrfStoreKey][memberType])){
+        newState.serviceInstance[serviceUuid].vrfs[vrfStoreKey][memberType] = {};
+      }
+
+      const numberOfKeys = Object.keys(newState.serviceInstance[serviceUuid].vrfs[vrfStoreKey][memberType]).length;
+      newState.serviceInstance[serviceUuid].vrfs[vrfStoreKey][memberType][`${vrfStoreKey} ${memberType} ${numberOfKeys+1}`] = member;
+
+      return newState;
+    }
+    case VrfActions.VRF_ASSOCIATE_MEMBER: {
+      const associateVRFMemberInstanceAction = <AssociateVRFMemberInstanceAction>action;
+      const serviceUuid = associateVRFMemberInstanceAction.serviceModelId;
+      const member = associateVRFMemberInstanceAction.member;
+      const vrfStoreKey = associateVRFMemberInstanceAction.vrfStoreKey;
+      const memberType = associateVRFMemberInstanceAction.memberType;
+
+      let newState = _.cloneDeep(state);
+
+      if(_.isNil(newState.serviceInstance[serviceUuid].vrfs[vrfStoreKey][memberType])){
+        newState.serviceInstance[serviceUuid].vrfs[vrfStoreKey][memberType] = {};
+      }
+
+      const numberOfKeys = Object.keys(newState.serviceInstance[serviceUuid].vrfs[vrfStoreKey][memberType]).length;
+      newState.serviceInstance[serviceUuid].vrfs[vrfStoreKey][memberType][`${vrfStoreKey} ${memberType} ${numberOfKeys+1}`] = member;
+
+      return newState;
+    }
+    case VrfActions.CLAER_ASSOCIATE__VRF_MEMBERS: {
+      const clearAssociateVRFMemberInstanceAction = <ClearAssociateVRFMemberInstanceAction>action;
+      const serviceUuid = clearAssociateVRFMemberInstanceAction.serviceModelId;
+      const vrfStoreKey = clearAssociateVRFMemberInstanceAction.vrfStoreKey;
+      const memberType = clearAssociateVRFMemberInstanceAction.memberType;
+
+      let newState = _.cloneDeep(state);
+      newState.serviceInstance[serviceUuid].vrfs[vrfStoreKey][memberType] = {};
+      return newState;
+    }
+    case VrfActions.DELETE_ACTION_VRF_INSTANCE : {
+      let newState = _.cloneDeep(state);
+      let vrf = newState.serviceInstance[(<DeleteActionVrfInstanceAction>action).serviceId].vrfs[(<DeleteActionVrfInstanceAction>action).vrfStoreKey];
+      let oldAction = vrf.action;
+      if(oldAction === ServiceInstanceActions.None_Delete || oldAction === ServiceInstanceActions.Update_Delete) return newState;
+      newState.serviceInstance[(<DeleteActionVrfInstanceAction>action).serviceId].vrfs[(<DeleteActionVrfInstanceAction>action).vrfStoreKey].action = (oldAction + '_Delete') as ServiceInstanceActions;
+      return newState;
+    }
+
+    case VrfActions.UNDO_DELETE_ACTION_VRF_INSTANCE : {
+      let newState = _.cloneDeep(state);
+      let vnf = newState.serviceInstance[(<UndoDeleteActionVrfInstanceAction>action).serviceId].vrfs[(<UndoDeleteActionVrfInstanceAction>action).vrfStoreKey];
+      let oldState = vnf.action;
+      newState.serviceInstance[(<UndoDeleteActionVrfInstanceAction>action).serviceId].vrfs[(<UndoDeleteActionVrfInstanceAction>action).vrfStoreKey].action = (oldState.split('_')[0]) as ServiceInstanceActions;
+      return newState;
+    }
+  }
+}
index f69517c..ef289df 100644 (file)
@@ -27,6 +27,7 @@ export module Constants {
     public static GET_SCHEDULER_CHANGE_MANAGEMENTS = 'change-management/scheduler';
     public static CANCEL_SCHEDULE_REQUEST = 'change-management/scheduler/schedules';
     public static ASSIGN = '?r=';
+    public static AAI_OMIT_SERVICE_INSTANCES = '&omitServiceInstances=';
     public static AAI_GET_SERVICE_INSTANCE_PATH = 'aai_get_service_instance/';
     public static AAI_GET_SERVICES = '../../aai_get_services';
     public static AAI_GET_AIC_ZONES = '../../aai_get_aic_zones';
@@ -35,6 +36,8 @@ export module Constants {
     public static AAI_GET_TENANTS = '../../aai_get_tenants/';
     public static AAI_SUB_DETAILS_PATH = '../../aai_sub_details/';
     public static AAI_GET_SERVICE_INSTANCE_TOPOLOGY_PATH = '../../aai_get_service_instance_topology/';
+    public static AAI_GET_ACTIVE_NETWORKS_PATH = '../../aai_get_active_networks/';
+    public static AAI_GET_VPNS_PATH = '../../aai_get_vpn_list/';
     public static AAI_GET_SERVICE_GROUP_MEMBERS_PATH = '../../aai_search_group_members/';
     public static AAI_GET_VERSION_BY_INVARIANT_ID = 'aai_get_version_by_invariant_id/';
     public static SEARCH_SERVICE_INSTANCES = 'search_service_instances';
@@ -122,12 +125,12 @@ export module Constants {
     public static MODEL_CUSTOMIZATION_ID = 'model-customization-id';
     public static MODEL_INVAR_ID = 'model-invariant-id';
     public static MODEL_VERSION_ID = 'model-version-id';
-    public static NETWORK_NAME = 'network-name';
-    public static NETWORK_ID = 'network-id';
-    public static NETWORK_TYPE = 'network-type';
+    public static NETWORK_NAME = 'instanceName';
+    public static NETWORK_ID = 'instanceId';
+    public static NETWORK_TYPE = 'instanceType';
     public static NETWORKS = 'networks';
     public static OPERATIONAL_STATUS = 'operational-status';
-    public static ORCHESTRATION_STATUS = 'orchestration-status';
+    public static ORCHESTRATION_STATUS = 'orchStatus';
     public static PERCENT_PROGRESS = 'percent-progress';
     public static PERSONA_MODEL_ID = 'persona-model-id';
     public static PERSONA_MODEL_VERSION = 'persona-model-version';
@@ -289,6 +292,6 @@ export module Constants {
   }
 
   export class LegacyRegion {
-    public static MEGA_REGION = ['JANET25'];
+    public static MEGA_REGION = ['AAIAIC25'];
   }
 }
index 9a6636f..4c69982 100644 (file)
@@ -16,4 +16,19 @@ export class IframeService {
       parentBodyElement.classList.remove("modal-open");
     }
   }
+
+
+  addFullScreen(){
+    let parentBodyElement =  parent.document.getElementsByClassName('service-model-content')[0];
+    if (parentBodyElement)  {
+      parentBodyElement.classList.add("full-screen");
+    }
+  }
+
+  removeFullScreen(){
+    let parentBodyElement =  parent.document.getElementsByClassName('service-model-content')[0];
+    if (parentBodyElement)  {
+      parentBodyElement.classList.remove("full-screen");
+    }
+  }
 }
index 9b490cd..f170f35 100644 (file)
@@ -235,3 +235,8 @@ sdc-checkbox {
   box-shadow: 0 0px 10px 0 rgba(0, 0, 0, 0.5);
 }
 
+.popover-arrow.arrow {
+  display: none !important;
+}
+
+