From 45ac9b172a4f0cfa245d4b1f957b9d6142856ddf Mon Sep 17 00:00:00 2001 From: Mathias Brunkow Moser Date: Fri, 3 May 2024 18:14:54 +0200 Subject: [PATCH] fix: adjusted copyright headers --- .editorconfig | 3 +- .github/actions/setup-java/action.yaml | 3 +- .github/dependabot.yaml | 3 +- .github/workflows/codeql.yaml | 3 +- .github/workflows/eslint.yml | 3 +- .github/workflows/helm-test.yaml | 3 +- .github/workflows/helm-upgrade.yaml | 3 +- .github/workflows/kics.yml | 3 +- .../publish-dpp-backend-docker-image.yml | 3 +- .../publish-dpp-frontend-docker-image.yml | 3 +- .github/workflows/publish-swagger-hub.yaml | 3 +- .github/workflows/release-helm-charts.yml | 3 +- .github/workflows/trivy.yml | 3 +- .gitignore | 3 +- .pre-commit-config.yaml | 3 +- .trivyignore | 3 +- AUTHORS.md | 3 +- CHANGELOG.md | 3 +- CONTRIBUTING.md | 3 +- INSTALL.md | 3 +- LICENSE | 3 +- NOTICE.md | 3 +- README.md | 3 +- SECURITY.md | 3 +- charts/digital-product-pass/.helmignore | 3 +- charts/digital-product-pass/Chart.yaml | 3 +- charts/digital-product-pass/LICENSE | 3 +- .../templates/_helpers.tpl | 3 +- .../templates/configmap-backend.yaml | 3 +- .../templates/deployment-backend.yaml | 3 +- .../templates/deployment-frontend.yaml | 3 +- .../templates/ingress-backend.yaml | 3 +- .../templates/ingress-frontend.yaml | 3 +- .../templates/pvc-data.yaml | 3 +- .../templates/secret-backend.yaml | 3 +- .../templates/service-backend.yaml | 3 +- .../templates/service-frontend.yaml | 3 +- .../templates/tests/test-dpp-connection.yaml | 3 +- charts/digital-product-pass/values-beta.yaml | 3 +- charts/digital-product-pass/values-dev.yaml | 3 +- charts/digital-product-pass/values-int.yaml | 3 +- charts/digital-product-pass/values.yaml | 3 +- deployment/README.md | 3 +- .../data-consumer/edc-consumer/Chart.yaml | 3 +- .../data-consumer/edc-consumer/README.md | 3 +- .../edc-consumer/values-int.yaml | 3 +- .../data-consumer/edc-consumer/values.yaml | 3 +- .../data-provider/data-service/.helmignore | 3 +- .../data-provider/data-service/Chart.yaml | 3 +- .../data-provider/data-service/README.md | 3 +- .../data-service/templates/_helpers.tpl | 3 +- .../data-service/templates/deployment.yaml | 3 +- .../data-service/templates/ingress.yaml | 3 +- .../data-service/templates/service.yaml | 3 +- .../data-provider/data-service/values.yaml | 3 +- .../data-provider/edc-provider/Chart.yaml | 3 +- .../data-provider/edc-provider/README.md | 3 +- .../edc-provider/values-int.yaml | 3 +- .../data-provider/edc-provider/values.yaml | 3 +- .../data-provider/registry/Chart.yaml | 3 +- .../data-provider/registry/README.md | 3 +- .../data-provider/registry/values.yaml | 3 +- deployment/local/iam/README.md | 3 +- deployment/local/postman/README.md | 3 +- deployment/local/storage/pv-data.yaml | 3 +- deployment/local/storage/pvc-data.yaml | 3 +- deployment/local/testing/README.md | 3 +- deployment/local/testing/delete-testdata.sh | 3 +- deployment/local/testing/functions.sh | 3 +- deployment/local/testing/init-values.sh | 3 +- .../local/testing/transform-and-upload.sh | 3 +- deployment/local/testing/upload-testdata.sh | 3 +- docs/GETTING-STARTED.md | 6 +- docs/README.md | 6 +- docs/RELEASE.md | 6 +- docs/RELEASE_USER.md | 6 +- docs/admin guide/AdminGuide.md | 6 +- docs/arc42/Arc42.md | 6 +- docs/business statement/BusinessStatement.md | 9 +- .../DataRetrievalGuide.md | 6 +- docs/infrastructure as code/IaC.md | 6 +- docs/notice.md | 3 +- docs/secrets management/SECRETS_MANAGEMENT.md | 6 +- docs/user manual/UserManual.md | 5 +- .../digital-product-pass-backend/.helmignore | 3 +- .../digital-product-pass-backend/Chart.yaml | 3 +- .../digital-product-pass-backend/LICENSE | 3 +- .../templates/NOTES.txt | 3 +- .../templates/_helpers.tpl | 3 +- .../templates/configmap.yaml | 3 +- .../templates/deployment.yaml | 3 +- .../templates/ingress.yaml | 3 +- .../templates/pvc-data.yaml | 3 +- .../templates/secret.yaml | 3 +- .../templates/service.yaml | 3 +- .../templates/serviceaccount.yaml | 3 +- .../templates/tests/test-connection.yaml | 3 +- .../values-dev.yaml | 3 +- .../values-int.yaml | 3 +- .../digital-product-pass-backend/values.yaml | 3 +- dpp-backend/digitalproductpass/.gitattributes | 3 +- dpp-backend/digitalproductpass/.gitignore | 3 +- dpp-backend/digitalproductpass/Dockerfile | 3 +- dpp-backend/digitalproductpass/README.md | 3 +- .../digitalproductpass/bin/.gitattributes | 25 ++ dpp-backend/digitalproductpass/bin/.gitignore | 68 ++++ dpp-backend/digitalproductpass/bin/Dockerfile | 48 +++ dpp-backend/digitalproductpass/bin/README.md | 383 ++++++++++++++++++ .../digitalproductpass/bin/docs/media/img.png | Bin 0 -> 212791 bytes .../bin/docs/media/img2.png | Bin 0 -> 70085 bytes .../bin/docs/media/img3.png | Bin 0 -> 17522 bytes .../bin/docs/media/podname.png | Bin 0 -> 5749 bytes .../bin/docs/tests/UNIT_TESTS.md | 281 +++++++++++++ dpp-backend/digitalproductpass/bin/pom.xml | 269 ++++++++++++ .../digitalproductpass/Application.class | Bin 0 -> 4200 bytes .../digitalproductpass/config/AppConfig.class | Bin 0 -> 1701 bytes .../config/DiscoveryConfig$BPNConfig.class | Bin 0 -> 3638 bytes .../config/DiscoveryConfig$EDCConfig.class | Bin 0 -> 3233 bytes .../config/DiscoveryConfig.class | Bin 0 -> 4007 bytes .../config/DtrConfig$DecentralApis.class | Bin 0 -> 6059 bytes .../config/DtrConfig$TemporaryStorage.class | Bin 0 -> 5639 bytes .../config/DtrConfig$Timeouts.class | Bin 0 -> 6226 bytes .../digitalproductpass/config/DtrConfig.class | Bin 0 -> 8215 bytes .../config/IrsConfig$Paths.class | Bin 0 -> 4160 bytes .../config/IrsConfig$TreeConfig.class | Bin 0 -> 4634 bytes .../digitalproductpass/config/IrsConfig.class | Bin 0 -> 6514 bytes .../config/PassportConfig.class | Bin 0 -> 3342 bytes .../config/ProcessConfig.class | Bin 0 -> 2915 bytes .../SecurityConfig$AuthorizationConfig.class | Bin 0 -> 3351 bytes .../SecurityConfig$StartUpCheckConfig.class | Bin 0 -> 3351 bytes .../config/SecurityConfig.class | Bin 0 -> 4201 bytes .../config/ThreadConfig.class | Bin 0 -> 1814 bytes .../config/VaultConfig.class | Bin 0 -> 4725 bytes .../digitalproductpass/config/WebConfig.class | Bin 0 -> 3074 bytes .../exceptions/ConfigException.class | Bin 0 -> 1477 bytes .../exceptions/ControllerException.class | Bin 0 -> 1258 bytes .../exceptions/DataModelException.class | Bin 0 -> 1286 bytes .../exceptions/ManagerException.class | Bin 0 -> 1280 bytes .../exceptions/ServiceException.class | Bin 0 -> 1280 bytes .../ServiceInitializationException.class | Bin 0 -> 1397 bytes .../http/controllers/AppController.class | Bin 0 -> 8187 bytes .../http/controllers/api/ApiController.class | Bin 0 -> 8045 bytes .../controllers/api/ContractController.class | Bin 0 -> 7978 bytes .../http/controllers/api/IrsController.class | Bin 0 -> 8539 bytes .../controllers/auth/AuthController.class | Bin 0 -> 9280 bytes .../error/ErrorResponseController.class | Bin 0 -> 4575 bytes .../http/middleware/BaseInterceptor.class | Bin 0 -> 4289 bytes .../http/middleware/InterceptorConfig.class | Bin 0 -> 1964 bytes .../ServiceInitializationInterface.class | Bin 0 -> 1183 bytes .../listeners/AppListener.class | Bin 0 -> 8528 bytes .../DtrSearchManager$SearchDtrCatalog.class | Bin 0 -> 6024 bytes .../managers/DtrSearchManager$State.class | Bin 0 -> 5395 bytes .../managers/DtrSearchManager.class | Bin 0 -> 10852 bytes .../managers/ProcessDataModel.class | Bin 0 -> 7592 bytes .../managers/ProcessManager.class | Bin 0 -> 14370 bytes .../managers/TreeManager.class | Bin 0 -> 10393 bytes .../models/auth/Credential.class | Bin 0 -> 7469 bytes .../models/auth/JwtToken.class | Bin 0 -> 5961 bytes .../models/auth/UserCredential.class | Bin 0 -> 4702 bytes .../models/auth/UserInfo.class | Bin 0 -> 7575 bytes .../catenax/BpnDiscovery$BpnEndpoint.class | Bin 0 -> 5034 bytes .../models/catenax/BpnDiscovery.class | Bin 0 -> 4962 bytes .../models/catenax/Discovery$Endpoint.class | Bin 0 -> 5868 bytes .../models/catenax/Discovery.class | Bin 0 -> 4928 bytes .../models/catenax/Dtr.class | Bin 0 -> 9254 bytes .../models/catenax/EdcDiscoveryEndpoint.class | Bin 0 -> 3230 bytes .../DigitalTwin$SpecificAssetId.class | Bin 0 -> 6662 bytes .../models/dtregistry/DigitalTwin.class | Bin 0 -> 8935 bytes .../EndPoint$ProtocolInformation3.class | Bin 0 -> 8522 bytes .../models/dtregistry/EndPoint.class | Bin 0 -> 6698 bytes .../dtregistry/SubModel$SemanticId$Key.class | Bin 0 -> 5921 bytes .../dtregistry/SubModel$SemanticId.class | Bin 0 -> 6618 bytes .../models/dtregistry/SubModel.class | Bin 0 -> 9309 bytes .../models/edc/AssetSearch.class | Bin 0 -> 2480 bytes .../models/edc/CheckResult.class | Bin 0 -> 3118 bytes .../models/edc/ComponentResult.class | Bin 0 -> 3351 bytes .../EndpointDataReference$Properties.class | Bin 0 -> 4981 bytes .../models/edc/EndpointDataReference.class | Bin 0 -> 9080 bytes .../digitalproductpass/models/edc/Jwt.class | Bin 0 -> 3076 bytes .../models/http/Response.class | Bin 0 -> 6426 bytes .../http/requests/DiscoverySearch.class | Bin 0 -> 2738 bytes .../models/http/requests/Search.class | Bin 0 -> 5712 bytes .../models/http/requests/TokenRequest.class | Bin 0 -> 6102 bytes .../models/http/responses/IdResponse.class | Bin 0 -> 3214 bytes .../digitalproductpass/models/irs/Job.class | Bin 0 -> 7278 bytes .../models/irs/JobHistory.class | Bin 0 -> 4999 bytes .../models/irs/JobRequest$Key.class | Bin 0 -> 5624 bytes .../models/irs/JobRequest.class | Bin 0 -> 9225 bytes .../models/irs/JobResponse.class | Bin 0 -> 7326 bytes ...onship$Item$Quantity$MeasurementUnit.class | Bin 0 -> 6170 bytes .../irs/Relationship$Item$Quantity.class | Bin 0 -> 6655 bytes .../models/irs/Relationship$Item.class | Bin 0 -> 7090 bytes .../models/irs/Relationship.class | Bin 0 -> 6648 bytes .../models/manager/History.class | Bin 0 -> 7273 bytes .../models/manager/Node.class | Bin 0 -> 9715 bytes .../models/manager/NodeComponent.class | Bin 0 -> 5918 bytes .../models/manager/Process.class | Bin 0 -> 6418 bytes .../models/manager/SearchStatus.class | Bin 0 -> 6688 bytes .../models/manager/Status.class | Bin 0 -> 13166 bytes .../models/negotiation/CallbackAddress.class | Bin 0 -> 5069 bytes .../models/negotiation/Catalog.class | Bin 0 -> 5543 bytes ...ogRequest$QuerySpec$FilterExpression.class | Bin 0 -> 6168 bytes .../CatalogRequest$QuerySpec$Range.class | Bin 0 -> 5848 bytes .../CatalogRequest$QuerySpec.class | Bin 0 -> 8019 bytes .../models/negotiation/CatalogRequest.class | Bin 0 -> 6774 bytes .../negotiation/Constraint$Action.class | Bin 0 -> 4641 bytes .../Constraint$Operator$OrOperator.class | Bin 0 -> 5239 bytes .../negotiation/Constraint$Operator.class | Bin 0 -> 5180 bytes .../models/negotiation/Constraint.class | Bin 0 -> 6376 bytes .../models/negotiation/DataService.class | Bin 0 -> 2500 bytes .../models/negotiation/Dataset.class | Bin 0 -> 4803 bytes .../models/negotiation/DidDocument.class | Bin 0 -> 4026 bytes .../negotiation/Distribution$Format.class | Bin 0 -> 2704 bytes .../models/negotiation/Distribution.class | Bin 0 -> 3539 bytes .../models/negotiation/Negotiation.class | Bin 0 -> 7042 bytes .../negotiation/NegotiationRequest.class | Bin 0 -> 6059 bytes .../NegotiationTransferResponse.class | Bin 0 -> 6170 bytes .../models/negotiation/Offer.class | Bin 0 -> 3346 bytes .../models/negotiation/Properties.class | Bin 0 -> 1883 bytes .../models/negotiation/Set.class | Bin 0 -> 4623 bytes .../Transfer$DataDestination.class | Bin 0 -> 5235 bytes .../negotiation/Transfer$DataRequest.class | Bin 0 -> 5596 bytes .../models/negotiation/Transfer.class | Bin 0 -> 11633 bytes .../TransferRequest$DataDestination.class | Bin 0 -> 5345 bytes .../TransferRequest$PrivateProperties.class | Bin 0 -> 5399 bytes .../TransferRequest$TransferType.class | Bin 0 -> 5669 bytes .../models/negotiation/TransferRequest.class | Bin 0 -> 15954 bytes .../models/passports/PassportResponse.class | Bin 0 -> 2046 bytes .../models/service/BaseService.class | Bin 0 -> 3245 bytes ...ecentralDigitalTwinRegistryQueryById.class | Bin 0 -> 7204 bytes .../AasService$DigitalTwinTimeout.class | Bin 0 -> 5856 bytes .../services/AasService.class | Bin 0 -> 8834 bytes .../services/AuthenticationService.class | Bin 0 -> 9726 bytes .../services/CatenaXService.class | Bin 0 -> 11045 bytes .../services/DataPlaneService.class | Bin 0 -> 6915 bytes ...rService$DigitalTwinRegistryTransfer.class | Bin 0 -> 6132 bytes ...ataTransferService$NegotiateContract.class | Bin 0 -> 10127 bytes .../services/DataTransferService.class | Bin 0 -> 10844 bytes .../services/IrsService.class | Bin 0 -> 9331 bytes .../services/VaultService.class | Bin 0 -> 9439 bytes .../bin/src/main/java/utils/CatenaXUtil.class | Bin 0 -> 6726 bytes .../bin/src/main/java/utils/CrypUtil.class | Bin 0 -> 7746 bytes .../bin/src/main/java/utils/CsvUtil.class | Bin 0 -> 2395 bytes .../src/main/java/utils/DateTimeUtil.class | Bin 0 -> 4570 bytes .../bin/src/main/java/utils/EdcUtil.class | Bin 0 -> 5152 bytes .../bin/src/main/java/utils/FileUtil.class | Bin 0 -> 11251 bytes .../bin/src/main/java/utils/HttpUtil.class | Bin 0 -> 14075 bytes .../bin/src/main/java/utils/JsonUtil.class | Bin 0 -> 12189 bytes .../main/java/utils/LogUtil$LogPrinter.class | Bin 0 -> 4369 bytes .../bin/src/main/java/utils/LogUtil.class | Bin 0 -> 6740 bytes .../bin/src/main/java/utils/NumericUtil.class | Bin 0 -> 2082 bytes .../src/main/java/utils/PassportUtil.class | Bin 0 -> 4079 bytes .../src/main/java/utils/ReflectionUtil.class | Bin 0 -> 2316 bytes .../bin/src/main/java/utils/StringUtil.class | Bin 0 -> 1425 bytes .../bin/src/main/java/utils/SystemUtil.class | Bin 0 -> 4209 bytes .../bin/src/main/java/utils/ThreadUtil.class | Bin 0 -> 4881 bytes .../bin/src/main/java/utils/YamlUtil.class | Bin 0 -> 6935 bytes .../java/utils/exceptions/UtilException.class | Bin 0 -> 1053 bytes .../bin/src/main/resources/application.yml | 149 +++++++ .../bin/src/main/resources/logback-spring.xml | 81 ++++ .../java/managers/DtrSearchManagerTest.class | Bin 0 -> 8495 bytes .../java/managers/ProcessDataModelTest.class | Bin 0 -> 8014 bytes .../java/managers/ProcessManagerTest.class | Bin 0 -> 9604 bytes .../test/java/managers/TreeManagerTest.class | Bin 0 -> 8117 bytes .../test/java/mocks/MockedHttpSession.class | Bin 0 -> 6001 bytes .../test/java/services/AasServiceTest.class | Bin 0 -> 8299 bytes .../services/AuthenticationServiceTest.class | Bin 0 -> 8275 bytes .../java/services/CatenaXServiceTest.class | Bin 0 -> 8386 bytes .../java/services/DataPlaneServiceTest.class | Bin 0 -> 7570 bytes .../services/DataTransferServiceTest.class | Bin 0 -> 9222 bytes .../test/java/services/IrsServiceTest.class | Bin 0 -> 8235 bytes .../src/test/java/utils/CrypUtilTest.class | Bin 0 -> 4181 bytes .../utils/JsonUtilTest$TestJsonClass.class | Bin 0 -> 5233 bytes .../src/test/java/utils/JsonUtilTest.class | Bin 0 -> 8055 bytes .../bin/src/test/java/utils/LogUtilTest.class | Bin 0 -> 3009 bytes .../src/test/java/utils/SystemUtilTest.class | Bin 0 -> 3561 bytes .../src/test/java/utils/YamlUtilTest.class | Bin 0 -> 3463 bytes .../src/test/resources/application-test.yml | 144 +++++++ .../test/resources/dpp/assets/TestAsset.json | 21 + .../catalogs/TestContractOfferCatalog.json | 63 +++ .../dpp/catalogs/TestDigitalTwinCatalog.json | 51 +++ .../dpp/contractpolicies/TestPolicy.json | 8 + .../dpp/digitaltwins/TestDigitalTwin.json | 68 ++++ .../discovery/MockedDiscoveryEndpoints.json | 15 + .../resources/dpp/irs/TestJobHistory.json | 9 + .../resources/dpp/irs/TestJobResponse.json | 292 +++++++++++++ .../dpp/irs/TestStartJobResponse.json | 3 + .../resources/dpp/irs/TestTreeDataModel.json | 214 ++++++++++ .../TestResponseInitNegotiation.json | 13 + .../negotiation/TestResponseNegotiation.json | 18 + .../resources/dpp/payloads/TestPassport.json | 248 ++++++++++++ .../test/resources/dpp/token/MockedToken.json | 9 + .../resources/dpp/token/MockedUserInfo.json | 5 + .../transfer/TestResponseInitTransfer.json | 13 + .../dpp/transfer/TestResponseTransfer.json | 27 ++ .../docs/tests/UNIT_TESTS.md | 3 +- dpp-backend/digitalproductpass/pom.xml | 3 +- .../digitalproductpass/Application.java | 3 +- .../digitalproductpass/config/AppConfig.java | 3 +- .../config/DiscoveryConfig.java | 3 +- .../digitalproductpass/config/DtrConfig.java | 3 +- .../digitalproductpass/config/IrsConfig.java | 3 +- .../config/PassportConfig.java | 3 +- .../config/ProcessConfig.java | 3 +- .../config/SecurityConfig.java | 3 +- .../config/ThreadConfig.java | 3 +- .../config/VaultConfig.java | 3 +- .../digitalproductpass/config/WebConfig.java | 3 +- .../exceptions/ConfigException.java | 3 +- .../exceptions/ControllerException.java | 3 +- .../exceptions/DataModelException.java | 3 +- .../exceptions/ManagerException.java | 3 +- .../exceptions/ServiceException.java | 3 +- .../ServiceInitializationException.java | 3 +- .../http/controllers/AppController.java | 3 +- .../http/controllers/api/ApiController.java | 3 +- .../controllers/api/ContractController.java | 3 +- .../http/controllers/api/IrsController.java | 3 +- .../http/controllers/auth/AuthController.java | 3 +- .../error/ErrorResponseController.java | 3 +- .../http/middleware/BaseInterceptor.java | 3 +- .../http/middleware/InterceptorConfig.java | 3 +- .../ServiceInitializationInterface.java | 3 +- .../listeners/AppListener.java | 5 +- .../managers/DtrSearchManager.java | 3 +- .../managers/ProcessDataModel.java | 3 +- .../managers/ProcessManager.java | 3 +- .../managers/TreeManager.java | 3 +- .../models/auth/Credential.java | 6 +- .../models/auth/JwtToken.java | 6 +- .../models/auth/UserCredential.java | 3 +- .../models/auth/UserInfo.java | 3 +- .../models/catenax/BpnDiscovery.java | 3 +- .../models/catenax/Discovery.java | 3 +- .../models/catenax/Dtr.java | 3 +- .../models/catenax/EdcDiscoveryEndpoint.java | 3 +- .../models/dtregistry/DigitalTwin.java | 3 +- .../models/dtregistry/EndPoint.java | 3 +- .../models/dtregistry/SubModel.java | 3 +- .../models/edc/AssetSearch.java | 3 +- .../models/edc/CheckResult.java | 3 +- .../models/edc/ComponentResult.java | 3 +- .../models/edc/EndpointDataReference.java | 3 +- .../digitalproductpass/models/edc/Jwt.java | 3 +- .../models/http/Response.java | 3 +- .../models/http/requests/DiscoverySearch.java | 3 +- .../models/http/requests/Search.java | 3 +- .../models/http/requests/TokenRequest.java | 3 +- .../models/http/responses/IdResponse.java | 3 +- .../digitalproductpass/models/irs/Job.java | 3 +- .../models/irs/JobHistory.java | 3 +- .../models/irs/JobRequest.java | 3 +- .../models/irs/JobResponse.java | 3 +- .../models/irs/Relationship.java | 3 +- .../models/manager/History.java | 3 +- .../models/manager/Node.java | 3 +- .../models/manager/NodeComponent.java | 3 +- .../models/manager/Process.java | 3 +- .../models/manager/SearchStatus.java | 3 +- .../models/manager/Status.java | 3 +- .../models/negotiation/CallbackAddress.java | 3 +- .../models/negotiation/Catalog.java | 3 +- .../models/negotiation/CatalogRequest.java | 3 +- .../models/negotiation/Constraint.java | 3 +- .../models/negotiation/DataService.java | 3 +- .../models/negotiation/Dataset.java | 3 +- .../models/negotiation/DidDocument.java | 3 +- .../models/negotiation/Distribution.java | 3 +- .../models/negotiation/Negotiation.java | 3 +- .../negotiation/NegotiationRequest.java | 3 +- .../NegotiationTransferResponse.java | 3 +- .../models/negotiation/Offer.java | 3 +- .../models/negotiation/Properties.java | 3 +- .../models/negotiation/Set.java | 3 +- .../models/negotiation/Transfer.java | 3 +- .../models/negotiation/TransferRequest.java | 3 +- .../models/passports/PassportResponse.java | 3 +- .../models/service/BaseService.java | 3 +- .../services/AasService.java | 3 +- .../services/AuthenticationService.java | 3 +- .../services/CatenaXService.java | 3 +- .../services/DataPlaneService.java | 3 +- .../services/DataTransferService.java | 3 +- .../services/IrsService.java | 3 +- .../services/VaultService.java | 3 +- .../src/main/java/utils/CatenaXUtil.java | 3 +- .../src/main/java/utils/CrypUtil.java | 3 +- .../src/main/java/utils/CsvUtil.java | 3 +- .../src/main/java/utils/DateTimeUtil.java | 3 +- .../src/main/java/utils/EdcUtil.java | 3 +- .../src/main/java/utils/FileUtil.java | 3 +- .../src/main/java/utils/HttpUtil.java | 3 +- .../src/main/java/utils/JsonUtil.java | 3 +- .../src/main/java/utils/LogUtil.java | 3 +- .../src/main/java/utils/NumericUtil.java | 3 +- .../src/main/java/utils/PassportUtil.java | 3 +- .../src/main/java/utils/ReflectionUtil.java | 3 +- .../src/main/java/utils/StringUtil.java | 3 +- .../src/main/java/utils/SystemUtil.java | 3 +- .../src/main/java/utils/ThreadUtil.java | 3 +- .../src/main/java/utils/YamlUtil.java | 3 +- .../java/utils/exceptions/UtilException.java | 3 +- .../src/main/resources/application.yml | 3 +- .../src/main/resources/logback-spring.xml | 3 +- .../java/managers/DtrSearchManagerTest.java | 3 +- .../java/managers/ProcessDataModelTest.java | 3 +- .../java/managers/ProcessManagerTest.java | 3 +- .../test/java/managers/TreeManagerTest.java | 3 +- .../test/java/mocks/MockedHttpSession.java | 3 +- .../test/java/services/AasServiceTest.java | 3 +- .../services/AuthenticationServiceTest.java | 3 +- .../java/services/CatenaXServiceTest.java | 3 +- .../java/services/DataPlaneServiceTest.java | 3 +- .../services/DataTransferServiceTest.java | 3 +- .../test/java/services/IrsServiceTest.java | 3 +- .../src/test/java/utils/CrypUtilTest.java | 3 +- .../src/test/java/utils/JsonUtilTest.java | 3 +- .../src/test/java/utils/LogUtilTest.java | 3 +- .../src/test/java/utils/SystemUtilTest.java | 3 +- .../src/test/java/utils/YamlUtilTest.java | 3 +- .../src/test/resources/application-test.yml | 3 +- dpp-backend/scripts/README.md | 3 +- dpp-backend/scripts/get-data.sh | 3 +- dpp-backend/scripts/getPassport.py | 3 +- dpp-backend/scripts/logging.ini | 3 +- .../scripts/utilities/authentication.py | 3 +- dpp-backend/scripts/utilities/constants.py | 3 +- dpp-backend/scripts/utilities/httpUtils.py | 3 +- dpp-backend/scripts/utilities/operators.py | 3 +- dpp-frontend/.eslintrc.js | 3 +- dpp-frontend/.nginx/nginx.conf | 3 +- dpp-frontend/Dockerfile | 3 +- dpp-frontend/buildAndDeploy.sh | 3 +- dpp-frontend/entrypoint.sh | 3 +- dpp-frontend/index.html | 3 +- dpp-frontend/src/App.vue | 3 +- dpp-frontend/src/assets/plugins/vuetify.js | 3 +- .../src/assets/plugins/webfontloader.js | 3 +- .../components/general/contractModal.scss | 3 +- .../styles/components/general/dialog.scss | 3 +- .../styles/components/general/footer.scss | 3 +- .../styles/components/general/header.scss | 3 +- .../styles/components/general/loading.scss | 3 +- .../styles/components/general/notFound.scss | 3 +- .../components/general/recursiveTree.scss | 3 +- .../styles/components/general/search.scss | 3 +- .../styles/components/general/tooltip.scss | 3 +- .../styles/components/landing/searchView.scss | 3 +- .../components/passport/additionalData.scss | 3 +- .../components/passport/batteryGraph.scss | 3 +- .../styles/components/passport/cards.scss | 3 +- .../components/passport/documentField.scss | 3 +- .../components/passport/elementChart.scss | 3 +- .../styles/components/passport/field.scss | 3 +- .../components/passport/passportPage.scss | 3 +- .../styles/components/passport/sections.scss | 3 +- .../src/assets/styles/config/variables.scss | 3 +- dpp-frontend/src/assets/styles/main.scss | 3 +- dpp-frontend/src/assets/styles/style.css | 3 +- dpp-frontend/src/components/general/Alert.vue | 3 +- .../src/components/general/Dialog.vue | 3 +- .../src/components/general/ErrorComponent.vue | 3 +- .../src/components/general/FieldBox.vue | 3 +- .../src/components/general/Footer.vue | 3 +- .../src/components/general/Header.vue | 3 +- .../components/general/LoadingComponent.vue | 3 +- .../general/NotAuthorizedComponent.vue | 3 +- .../general/NotAvailableComponent.vue | 3 +- .../src/components/general/QrcodeStrem.vue | 3 +- .../general/RecursiveAdditionalData.vue | 3 +- .../components/general/RecursiveComponent.vue | 3 +- .../src/components/general/RecursiveTree.vue | 3 +- .../src/components/general/SearchInput.vue | 3 +- .../src/components/general/StepperItem.vue | 3 +- .../src/components/general/TabsComponent.vue | 3 +- .../src/components/general/Tooltip.vue | 3 +- .../components/passport/AttributeField.vue | 3 +- .../src/components/passport/BarChart.vue | 3 +- .../src/components/passport/BatteryCards.vue | 3 +- .../src/components/passport/DocumentField.vue | 3 +- .../src/components/passport/ElementChart.vue | 3 +- .../src/components/passport/Field.vue | 3 +- .../src/components/passport/GeneralCards.vue | 3 +- .../components/passport/InstructionsField.vue | 3 +- .../components/passport/PassportHeader.vue | 3 +- .../components/passport/TransmissionCards.vue | 3 +- .../passport/sections/AdditionalData.vue | 3 +- .../passport/sections/BatteryComposition.vue | 3 +- .../passport/sections/CellChemistry.vue | 3 +- .../passport/sections/Characteristics.vue | 3 +- .../passport/sections/Commercial.vue | 3 +- .../passport/sections/Components.vue | 3 +- .../passport/sections/Documents.vue | 3 +- .../sections/ElectrochemicalProperties.vue | 3 +- .../components/passport/sections/Exchange.vue | 3 +- .../passport/sections/GeneralInformation.vue | 3 +- .../components/passport/sections/Handling.vue | 3 +- .../passport/sections/Identification.vue | 3 +- .../passport/sections/Instructions.vue | 3 +- .../components/passport/sections/Metadata.vue | 3 +- .../passport/sections/Operation.vue | 3 +- .../sections/ProductSpecificParameters.vue | 3 +- .../passport/sections/Serialization.vue | 3 +- .../components/passport/sections/Sources.vue | 3 +- .../passport/sections/SparePartSupplier.vue | 3 +- .../passport/sections/StateOfBattery.vue | 3 +- .../passport/sections/StateOfHealth.vue | 3 +- .../passport/sections/Sustainability.vue | 3 +- .../components/passport/sections/Typology.vue | 3 +- dpp-frontend/src/main.js | 3 +- dpp-frontend/src/router/index.js | 3 +- dpp-frontend/src/services/Authentication.js | 3 +- dpp-frontend/src/services/BackendService.js | 3 +- dpp-frontend/src/services/service.const.js | 3 +- dpp-frontend/src/store/index.js | 3 +- dpp-frontend/src/utils/authUtil.js | 3 +- dpp-frontend/src/utils/configUtil.js | 3 +- dpp-frontend/src/utils/cryptUtil.js | 3 +- dpp-frontend/src/utils/edcUtil.js | 3 +- dpp-frontend/src/utils/jsonUtil.js | 3 +- dpp-frontend/src/utils/numberUtil.js | 3 +- dpp-frontend/src/utils/passportUtil.js | 3 +- dpp-frontend/src/utils/threadUtil.js | 3 +- dpp-frontend/src/views/HomeView.vue | 3 +- dpp-frontend/src/views/PageNotFound.vue | 3 +- dpp-frontend/src/views/PassportView.vue | 3 +- dpp-frontend/src/views/SearchView.vue | 3 +- dpp-frontend/vite.config.js | 3 +- pre-commit-config.yaml | 3 +- 529 files changed, 3228 insertions(+), 354 deletions(-) create mode 100644 dpp-backend/digitalproductpass/bin/.gitattributes create mode 100644 dpp-backend/digitalproductpass/bin/.gitignore create mode 100644 dpp-backend/digitalproductpass/bin/Dockerfile create mode 100644 dpp-backend/digitalproductpass/bin/README.md create mode 100644 dpp-backend/digitalproductpass/bin/docs/media/img.png create mode 100644 dpp-backend/digitalproductpass/bin/docs/media/img2.png create mode 100644 dpp-backend/digitalproductpass/bin/docs/media/img3.png create mode 100644 dpp-backend/digitalproductpass/bin/docs/media/podname.png create mode 100644 dpp-backend/digitalproductpass/bin/docs/tests/UNIT_TESTS.md create mode 100644 dpp-backend/digitalproductpass/bin/pom.xml create mode 100644 dpp-backend/digitalproductpass/bin/src/main/java/org/eclipse/tractusx/digitalproductpass/Application.class create mode 100644 dpp-backend/digitalproductpass/bin/src/main/java/org/eclipse/tractusx/digitalproductpass/config/AppConfig.class create mode 100644 dpp-backend/digitalproductpass/bin/src/main/java/org/eclipse/tractusx/digitalproductpass/config/DiscoveryConfig$BPNConfig.class create mode 100644 dpp-backend/digitalproductpass/bin/src/main/java/org/eclipse/tractusx/digitalproductpass/config/DiscoveryConfig$EDCConfig.class create mode 100644 dpp-backend/digitalproductpass/bin/src/main/java/org/eclipse/tractusx/digitalproductpass/config/DiscoveryConfig.class create mode 100644 dpp-backend/digitalproductpass/bin/src/main/java/org/eclipse/tractusx/digitalproductpass/config/DtrConfig$DecentralApis.class create mode 100644 dpp-backend/digitalproductpass/bin/src/main/java/org/eclipse/tractusx/digitalproductpass/config/DtrConfig$TemporaryStorage.class create mode 100644 dpp-backend/digitalproductpass/bin/src/main/java/org/eclipse/tractusx/digitalproductpass/config/DtrConfig$Timeouts.class create mode 100644 dpp-backend/digitalproductpass/bin/src/main/java/org/eclipse/tractusx/digitalproductpass/config/DtrConfig.class create mode 100644 dpp-backend/digitalproductpass/bin/src/main/java/org/eclipse/tractusx/digitalproductpass/config/IrsConfig$Paths.class create mode 100644 dpp-backend/digitalproductpass/bin/src/main/java/org/eclipse/tractusx/digitalproductpass/config/IrsConfig$TreeConfig.class create mode 100644 dpp-backend/digitalproductpass/bin/src/main/java/org/eclipse/tractusx/digitalproductpass/config/IrsConfig.class create mode 100644 dpp-backend/digitalproductpass/bin/src/main/java/org/eclipse/tractusx/digitalproductpass/config/PassportConfig.class create mode 100644 dpp-backend/digitalproductpass/bin/src/main/java/org/eclipse/tractusx/digitalproductpass/config/ProcessConfig.class create mode 100644 dpp-backend/digitalproductpass/bin/src/main/java/org/eclipse/tractusx/digitalproductpass/config/SecurityConfig$AuthorizationConfig.class create mode 100644 dpp-backend/digitalproductpass/bin/src/main/java/org/eclipse/tractusx/digitalproductpass/config/SecurityConfig$StartUpCheckConfig.class create mode 100644 dpp-backend/digitalproductpass/bin/src/main/java/org/eclipse/tractusx/digitalproductpass/config/SecurityConfig.class create mode 100644 dpp-backend/digitalproductpass/bin/src/main/java/org/eclipse/tractusx/digitalproductpass/config/ThreadConfig.class create mode 100644 dpp-backend/digitalproductpass/bin/src/main/java/org/eclipse/tractusx/digitalproductpass/config/VaultConfig.class create mode 100644 dpp-backend/digitalproductpass/bin/src/main/java/org/eclipse/tractusx/digitalproductpass/config/WebConfig.class create mode 100644 dpp-backend/digitalproductpass/bin/src/main/java/org/eclipse/tractusx/digitalproductpass/exceptions/ConfigException.class create mode 100644 dpp-backend/digitalproductpass/bin/src/main/java/org/eclipse/tractusx/digitalproductpass/exceptions/ControllerException.class create mode 100644 dpp-backend/digitalproductpass/bin/src/main/java/org/eclipse/tractusx/digitalproductpass/exceptions/DataModelException.class create mode 100644 dpp-backend/digitalproductpass/bin/src/main/java/org/eclipse/tractusx/digitalproductpass/exceptions/ManagerException.class create mode 100644 dpp-backend/digitalproductpass/bin/src/main/java/org/eclipse/tractusx/digitalproductpass/exceptions/ServiceException.class create mode 100644 dpp-backend/digitalproductpass/bin/src/main/java/org/eclipse/tractusx/digitalproductpass/exceptions/ServiceInitializationException.class create mode 100644 dpp-backend/digitalproductpass/bin/src/main/java/org/eclipse/tractusx/digitalproductpass/http/controllers/AppController.class create mode 100644 dpp-backend/digitalproductpass/bin/src/main/java/org/eclipse/tractusx/digitalproductpass/http/controllers/api/ApiController.class create mode 100644 dpp-backend/digitalproductpass/bin/src/main/java/org/eclipse/tractusx/digitalproductpass/http/controllers/api/ContractController.class create mode 100644 dpp-backend/digitalproductpass/bin/src/main/java/org/eclipse/tractusx/digitalproductpass/http/controllers/api/IrsController.class create mode 100644 dpp-backend/digitalproductpass/bin/src/main/java/org/eclipse/tractusx/digitalproductpass/http/controllers/auth/AuthController.class create mode 100644 dpp-backend/digitalproductpass/bin/src/main/java/org/eclipse/tractusx/digitalproductpass/http/controllers/error/ErrorResponseController.class create mode 100644 dpp-backend/digitalproductpass/bin/src/main/java/org/eclipse/tractusx/digitalproductpass/http/middleware/BaseInterceptor.class create mode 100644 dpp-backend/digitalproductpass/bin/src/main/java/org/eclipse/tractusx/digitalproductpass/http/middleware/InterceptorConfig.class create mode 100644 dpp-backend/digitalproductpass/bin/src/main/java/org/eclipse/tractusx/digitalproductpass/interfaces/ServiceInitializationInterface.class create mode 100644 dpp-backend/digitalproductpass/bin/src/main/java/org/eclipse/tractusx/digitalproductpass/listeners/AppListener.class create mode 100644 dpp-backend/digitalproductpass/bin/src/main/java/org/eclipse/tractusx/digitalproductpass/managers/DtrSearchManager$SearchDtrCatalog.class create mode 100644 dpp-backend/digitalproductpass/bin/src/main/java/org/eclipse/tractusx/digitalproductpass/managers/DtrSearchManager$State.class create mode 100644 dpp-backend/digitalproductpass/bin/src/main/java/org/eclipse/tractusx/digitalproductpass/managers/DtrSearchManager.class create mode 100644 dpp-backend/digitalproductpass/bin/src/main/java/org/eclipse/tractusx/digitalproductpass/managers/ProcessDataModel.class create mode 100644 dpp-backend/digitalproductpass/bin/src/main/java/org/eclipse/tractusx/digitalproductpass/managers/ProcessManager.class create mode 100644 dpp-backend/digitalproductpass/bin/src/main/java/org/eclipse/tractusx/digitalproductpass/managers/TreeManager.class create mode 100644 dpp-backend/digitalproductpass/bin/src/main/java/org/eclipse/tractusx/digitalproductpass/models/auth/Credential.class create mode 100644 dpp-backend/digitalproductpass/bin/src/main/java/org/eclipse/tractusx/digitalproductpass/models/auth/JwtToken.class create mode 100644 dpp-backend/digitalproductpass/bin/src/main/java/org/eclipse/tractusx/digitalproductpass/models/auth/UserCredential.class create mode 100644 dpp-backend/digitalproductpass/bin/src/main/java/org/eclipse/tractusx/digitalproductpass/models/auth/UserInfo.class create mode 100644 dpp-backend/digitalproductpass/bin/src/main/java/org/eclipse/tractusx/digitalproductpass/models/catenax/BpnDiscovery$BpnEndpoint.class create mode 100644 dpp-backend/digitalproductpass/bin/src/main/java/org/eclipse/tractusx/digitalproductpass/models/catenax/BpnDiscovery.class create mode 100644 dpp-backend/digitalproductpass/bin/src/main/java/org/eclipse/tractusx/digitalproductpass/models/catenax/Discovery$Endpoint.class create mode 100644 dpp-backend/digitalproductpass/bin/src/main/java/org/eclipse/tractusx/digitalproductpass/models/catenax/Discovery.class create mode 100644 dpp-backend/digitalproductpass/bin/src/main/java/org/eclipse/tractusx/digitalproductpass/models/catenax/Dtr.class create mode 100644 dpp-backend/digitalproductpass/bin/src/main/java/org/eclipse/tractusx/digitalproductpass/models/catenax/EdcDiscoveryEndpoint.class create mode 100644 dpp-backend/digitalproductpass/bin/src/main/java/org/eclipse/tractusx/digitalproductpass/models/dtregistry/DigitalTwin$SpecificAssetId.class create mode 100644 dpp-backend/digitalproductpass/bin/src/main/java/org/eclipse/tractusx/digitalproductpass/models/dtregistry/DigitalTwin.class create mode 100644 dpp-backend/digitalproductpass/bin/src/main/java/org/eclipse/tractusx/digitalproductpass/models/dtregistry/EndPoint$ProtocolInformation3.class create mode 100644 dpp-backend/digitalproductpass/bin/src/main/java/org/eclipse/tractusx/digitalproductpass/models/dtregistry/EndPoint.class create mode 100644 dpp-backend/digitalproductpass/bin/src/main/java/org/eclipse/tractusx/digitalproductpass/models/dtregistry/SubModel$SemanticId$Key.class create mode 100644 dpp-backend/digitalproductpass/bin/src/main/java/org/eclipse/tractusx/digitalproductpass/models/dtregistry/SubModel$SemanticId.class create mode 100644 dpp-backend/digitalproductpass/bin/src/main/java/org/eclipse/tractusx/digitalproductpass/models/dtregistry/SubModel.class create mode 100644 dpp-backend/digitalproductpass/bin/src/main/java/org/eclipse/tractusx/digitalproductpass/models/edc/AssetSearch.class create mode 100644 dpp-backend/digitalproductpass/bin/src/main/java/org/eclipse/tractusx/digitalproductpass/models/edc/CheckResult.class create mode 100644 dpp-backend/digitalproductpass/bin/src/main/java/org/eclipse/tractusx/digitalproductpass/models/edc/ComponentResult.class create mode 100644 dpp-backend/digitalproductpass/bin/src/main/java/org/eclipse/tractusx/digitalproductpass/models/edc/EndpointDataReference$Properties.class create mode 100644 dpp-backend/digitalproductpass/bin/src/main/java/org/eclipse/tractusx/digitalproductpass/models/edc/EndpointDataReference.class create mode 100644 dpp-backend/digitalproductpass/bin/src/main/java/org/eclipse/tractusx/digitalproductpass/models/edc/Jwt.class create mode 100644 dpp-backend/digitalproductpass/bin/src/main/java/org/eclipse/tractusx/digitalproductpass/models/http/Response.class create mode 100644 dpp-backend/digitalproductpass/bin/src/main/java/org/eclipse/tractusx/digitalproductpass/models/http/requests/DiscoverySearch.class create mode 100644 dpp-backend/digitalproductpass/bin/src/main/java/org/eclipse/tractusx/digitalproductpass/models/http/requests/Search.class create mode 100644 dpp-backend/digitalproductpass/bin/src/main/java/org/eclipse/tractusx/digitalproductpass/models/http/requests/TokenRequest.class create mode 100644 dpp-backend/digitalproductpass/bin/src/main/java/org/eclipse/tractusx/digitalproductpass/models/http/responses/IdResponse.class create mode 100644 dpp-backend/digitalproductpass/bin/src/main/java/org/eclipse/tractusx/digitalproductpass/models/irs/Job.class create mode 100644 dpp-backend/digitalproductpass/bin/src/main/java/org/eclipse/tractusx/digitalproductpass/models/irs/JobHistory.class create mode 100644 dpp-backend/digitalproductpass/bin/src/main/java/org/eclipse/tractusx/digitalproductpass/models/irs/JobRequest$Key.class create mode 100644 dpp-backend/digitalproductpass/bin/src/main/java/org/eclipse/tractusx/digitalproductpass/models/irs/JobRequest.class create mode 100644 dpp-backend/digitalproductpass/bin/src/main/java/org/eclipse/tractusx/digitalproductpass/models/irs/JobResponse.class create mode 100644 dpp-backend/digitalproductpass/bin/src/main/java/org/eclipse/tractusx/digitalproductpass/models/irs/Relationship$Item$Quantity$MeasurementUnit.class create mode 100644 dpp-backend/digitalproductpass/bin/src/main/java/org/eclipse/tractusx/digitalproductpass/models/irs/Relationship$Item$Quantity.class create mode 100644 dpp-backend/digitalproductpass/bin/src/main/java/org/eclipse/tractusx/digitalproductpass/models/irs/Relationship$Item.class create mode 100644 dpp-backend/digitalproductpass/bin/src/main/java/org/eclipse/tractusx/digitalproductpass/models/irs/Relationship.class create mode 100644 dpp-backend/digitalproductpass/bin/src/main/java/org/eclipse/tractusx/digitalproductpass/models/manager/History.class create mode 100644 dpp-backend/digitalproductpass/bin/src/main/java/org/eclipse/tractusx/digitalproductpass/models/manager/Node.class create mode 100644 dpp-backend/digitalproductpass/bin/src/main/java/org/eclipse/tractusx/digitalproductpass/models/manager/NodeComponent.class create mode 100644 dpp-backend/digitalproductpass/bin/src/main/java/org/eclipse/tractusx/digitalproductpass/models/manager/Process.class create mode 100644 dpp-backend/digitalproductpass/bin/src/main/java/org/eclipse/tractusx/digitalproductpass/models/manager/SearchStatus.class create mode 100644 dpp-backend/digitalproductpass/bin/src/main/java/org/eclipse/tractusx/digitalproductpass/models/manager/Status.class create mode 100644 dpp-backend/digitalproductpass/bin/src/main/java/org/eclipse/tractusx/digitalproductpass/models/negotiation/CallbackAddress.class create mode 100644 dpp-backend/digitalproductpass/bin/src/main/java/org/eclipse/tractusx/digitalproductpass/models/negotiation/Catalog.class create mode 100644 dpp-backend/digitalproductpass/bin/src/main/java/org/eclipse/tractusx/digitalproductpass/models/negotiation/CatalogRequest$QuerySpec$FilterExpression.class create mode 100644 dpp-backend/digitalproductpass/bin/src/main/java/org/eclipse/tractusx/digitalproductpass/models/negotiation/CatalogRequest$QuerySpec$Range.class create mode 100644 dpp-backend/digitalproductpass/bin/src/main/java/org/eclipse/tractusx/digitalproductpass/models/negotiation/CatalogRequest$QuerySpec.class create mode 100644 dpp-backend/digitalproductpass/bin/src/main/java/org/eclipse/tractusx/digitalproductpass/models/negotiation/CatalogRequest.class create mode 100644 dpp-backend/digitalproductpass/bin/src/main/java/org/eclipse/tractusx/digitalproductpass/models/negotiation/Constraint$Action.class create mode 100644 dpp-backend/digitalproductpass/bin/src/main/java/org/eclipse/tractusx/digitalproductpass/models/negotiation/Constraint$Operator$OrOperator.class create mode 100644 dpp-backend/digitalproductpass/bin/src/main/java/org/eclipse/tractusx/digitalproductpass/models/negotiation/Constraint$Operator.class create mode 100644 dpp-backend/digitalproductpass/bin/src/main/java/org/eclipse/tractusx/digitalproductpass/models/negotiation/Constraint.class create mode 100644 dpp-backend/digitalproductpass/bin/src/main/java/org/eclipse/tractusx/digitalproductpass/models/negotiation/DataService.class create mode 100644 dpp-backend/digitalproductpass/bin/src/main/java/org/eclipse/tractusx/digitalproductpass/models/negotiation/Dataset.class create mode 100644 dpp-backend/digitalproductpass/bin/src/main/java/org/eclipse/tractusx/digitalproductpass/models/negotiation/DidDocument.class create mode 100644 dpp-backend/digitalproductpass/bin/src/main/java/org/eclipse/tractusx/digitalproductpass/models/negotiation/Distribution$Format.class create mode 100644 dpp-backend/digitalproductpass/bin/src/main/java/org/eclipse/tractusx/digitalproductpass/models/negotiation/Distribution.class create mode 100644 dpp-backend/digitalproductpass/bin/src/main/java/org/eclipse/tractusx/digitalproductpass/models/negotiation/Negotiation.class create mode 100644 dpp-backend/digitalproductpass/bin/src/main/java/org/eclipse/tractusx/digitalproductpass/models/negotiation/NegotiationRequest.class create mode 100644 dpp-backend/digitalproductpass/bin/src/main/java/org/eclipse/tractusx/digitalproductpass/models/negotiation/NegotiationTransferResponse.class create mode 100644 dpp-backend/digitalproductpass/bin/src/main/java/org/eclipse/tractusx/digitalproductpass/models/negotiation/Offer.class create mode 100644 dpp-backend/digitalproductpass/bin/src/main/java/org/eclipse/tractusx/digitalproductpass/models/negotiation/Properties.class create mode 100644 dpp-backend/digitalproductpass/bin/src/main/java/org/eclipse/tractusx/digitalproductpass/models/negotiation/Set.class create mode 100644 dpp-backend/digitalproductpass/bin/src/main/java/org/eclipse/tractusx/digitalproductpass/models/negotiation/Transfer$DataDestination.class create mode 100644 dpp-backend/digitalproductpass/bin/src/main/java/org/eclipse/tractusx/digitalproductpass/models/negotiation/Transfer$DataRequest.class create mode 100644 dpp-backend/digitalproductpass/bin/src/main/java/org/eclipse/tractusx/digitalproductpass/models/negotiation/Transfer.class create mode 100644 dpp-backend/digitalproductpass/bin/src/main/java/org/eclipse/tractusx/digitalproductpass/models/negotiation/TransferRequest$DataDestination.class create mode 100644 dpp-backend/digitalproductpass/bin/src/main/java/org/eclipse/tractusx/digitalproductpass/models/negotiation/TransferRequest$PrivateProperties.class create mode 100644 dpp-backend/digitalproductpass/bin/src/main/java/org/eclipse/tractusx/digitalproductpass/models/negotiation/TransferRequest$TransferType.class create mode 100644 dpp-backend/digitalproductpass/bin/src/main/java/org/eclipse/tractusx/digitalproductpass/models/negotiation/TransferRequest.class create mode 100644 dpp-backend/digitalproductpass/bin/src/main/java/org/eclipse/tractusx/digitalproductpass/models/passports/PassportResponse.class create mode 100644 dpp-backend/digitalproductpass/bin/src/main/java/org/eclipse/tractusx/digitalproductpass/models/service/BaseService.class create mode 100644 dpp-backend/digitalproductpass/bin/src/main/java/org/eclipse/tractusx/digitalproductpass/services/AasService$DecentralDigitalTwinRegistryQueryById.class create mode 100644 dpp-backend/digitalproductpass/bin/src/main/java/org/eclipse/tractusx/digitalproductpass/services/AasService$DigitalTwinTimeout.class create mode 100644 dpp-backend/digitalproductpass/bin/src/main/java/org/eclipse/tractusx/digitalproductpass/services/AasService.class create mode 100644 dpp-backend/digitalproductpass/bin/src/main/java/org/eclipse/tractusx/digitalproductpass/services/AuthenticationService.class create mode 100644 dpp-backend/digitalproductpass/bin/src/main/java/org/eclipse/tractusx/digitalproductpass/services/CatenaXService.class create mode 100644 dpp-backend/digitalproductpass/bin/src/main/java/org/eclipse/tractusx/digitalproductpass/services/DataPlaneService.class create mode 100644 dpp-backend/digitalproductpass/bin/src/main/java/org/eclipse/tractusx/digitalproductpass/services/DataTransferService$DigitalTwinRegistryTransfer.class create mode 100644 dpp-backend/digitalproductpass/bin/src/main/java/org/eclipse/tractusx/digitalproductpass/services/DataTransferService$NegotiateContract.class create mode 100644 dpp-backend/digitalproductpass/bin/src/main/java/org/eclipse/tractusx/digitalproductpass/services/DataTransferService.class create mode 100644 dpp-backend/digitalproductpass/bin/src/main/java/org/eclipse/tractusx/digitalproductpass/services/IrsService.class create mode 100644 dpp-backend/digitalproductpass/bin/src/main/java/org/eclipse/tractusx/digitalproductpass/services/VaultService.class create mode 100644 dpp-backend/digitalproductpass/bin/src/main/java/utils/CatenaXUtil.class create mode 100644 dpp-backend/digitalproductpass/bin/src/main/java/utils/CrypUtil.class create mode 100644 dpp-backend/digitalproductpass/bin/src/main/java/utils/CsvUtil.class create mode 100644 dpp-backend/digitalproductpass/bin/src/main/java/utils/DateTimeUtil.class create mode 100644 dpp-backend/digitalproductpass/bin/src/main/java/utils/EdcUtil.class create mode 100644 dpp-backend/digitalproductpass/bin/src/main/java/utils/FileUtil.class create mode 100644 dpp-backend/digitalproductpass/bin/src/main/java/utils/HttpUtil.class create mode 100644 dpp-backend/digitalproductpass/bin/src/main/java/utils/JsonUtil.class create mode 100644 dpp-backend/digitalproductpass/bin/src/main/java/utils/LogUtil$LogPrinter.class create mode 100644 dpp-backend/digitalproductpass/bin/src/main/java/utils/LogUtil.class create mode 100644 dpp-backend/digitalproductpass/bin/src/main/java/utils/NumericUtil.class create mode 100644 dpp-backend/digitalproductpass/bin/src/main/java/utils/PassportUtil.class create mode 100644 dpp-backend/digitalproductpass/bin/src/main/java/utils/ReflectionUtil.class create mode 100644 dpp-backend/digitalproductpass/bin/src/main/java/utils/StringUtil.class create mode 100644 dpp-backend/digitalproductpass/bin/src/main/java/utils/SystemUtil.class create mode 100644 dpp-backend/digitalproductpass/bin/src/main/java/utils/ThreadUtil.class create mode 100644 dpp-backend/digitalproductpass/bin/src/main/java/utils/YamlUtil.class create mode 100644 dpp-backend/digitalproductpass/bin/src/main/java/utils/exceptions/UtilException.class create mode 100644 dpp-backend/digitalproductpass/bin/src/main/resources/application.yml create mode 100644 dpp-backend/digitalproductpass/bin/src/main/resources/logback-spring.xml create mode 100644 dpp-backend/digitalproductpass/bin/src/test/java/managers/DtrSearchManagerTest.class create mode 100644 dpp-backend/digitalproductpass/bin/src/test/java/managers/ProcessDataModelTest.class create mode 100644 dpp-backend/digitalproductpass/bin/src/test/java/managers/ProcessManagerTest.class create mode 100644 dpp-backend/digitalproductpass/bin/src/test/java/managers/TreeManagerTest.class create mode 100644 dpp-backend/digitalproductpass/bin/src/test/java/mocks/MockedHttpSession.class create mode 100644 dpp-backend/digitalproductpass/bin/src/test/java/services/AasServiceTest.class create mode 100644 dpp-backend/digitalproductpass/bin/src/test/java/services/AuthenticationServiceTest.class create mode 100644 dpp-backend/digitalproductpass/bin/src/test/java/services/CatenaXServiceTest.class create mode 100644 dpp-backend/digitalproductpass/bin/src/test/java/services/DataPlaneServiceTest.class create mode 100644 dpp-backend/digitalproductpass/bin/src/test/java/services/DataTransferServiceTest.class create mode 100644 dpp-backend/digitalproductpass/bin/src/test/java/services/IrsServiceTest.class create mode 100644 dpp-backend/digitalproductpass/bin/src/test/java/utils/CrypUtilTest.class create mode 100644 dpp-backend/digitalproductpass/bin/src/test/java/utils/JsonUtilTest$TestJsonClass.class create mode 100644 dpp-backend/digitalproductpass/bin/src/test/java/utils/JsonUtilTest.class create mode 100644 dpp-backend/digitalproductpass/bin/src/test/java/utils/LogUtilTest.class create mode 100644 dpp-backend/digitalproductpass/bin/src/test/java/utils/SystemUtilTest.class create mode 100644 dpp-backend/digitalproductpass/bin/src/test/java/utils/YamlUtilTest.class create mode 100644 dpp-backend/digitalproductpass/bin/src/test/resources/application-test.yml create mode 100644 dpp-backend/digitalproductpass/bin/src/test/resources/dpp/assets/TestAsset.json create mode 100644 dpp-backend/digitalproductpass/bin/src/test/resources/dpp/catalogs/TestContractOfferCatalog.json create mode 100644 dpp-backend/digitalproductpass/bin/src/test/resources/dpp/catalogs/TestDigitalTwinCatalog.json create mode 100644 dpp-backend/digitalproductpass/bin/src/test/resources/dpp/contractpolicies/TestPolicy.json create mode 100644 dpp-backend/digitalproductpass/bin/src/test/resources/dpp/digitaltwins/TestDigitalTwin.json create mode 100644 dpp-backend/digitalproductpass/bin/src/test/resources/dpp/discovery/MockedDiscoveryEndpoints.json create mode 100644 dpp-backend/digitalproductpass/bin/src/test/resources/dpp/irs/TestJobHistory.json create mode 100644 dpp-backend/digitalproductpass/bin/src/test/resources/dpp/irs/TestJobResponse.json create mode 100644 dpp-backend/digitalproductpass/bin/src/test/resources/dpp/irs/TestStartJobResponse.json create mode 100644 dpp-backend/digitalproductpass/bin/src/test/resources/dpp/irs/TestTreeDataModel.json create mode 100644 dpp-backend/digitalproductpass/bin/src/test/resources/dpp/negotiation/TestResponseInitNegotiation.json create mode 100644 dpp-backend/digitalproductpass/bin/src/test/resources/dpp/negotiation/TestResponseNegotiation.json create mode 100644 dpp-backend/digitalproductpass/bin/src/test/resources/dpp/payloads/TestPassport.json create mode 100644 dpp-backend/digitalproductpass/bin/src/test/resources/dpp/token/MockedToken.json create mode 100644 dpp-backend/digitalproductpass/bin/src/test/resources/dpp/token/MockedUserInfo.json create mode 100644 dpp-backend/digitalproductpass/bin/src/test/resources/dpp/transfer/TestResponseInitTransfer.json create mode 100644 dpp-backend/digitalproductpass/bin/src/test/resources/dpp/transfer/TestResponseTransfer.json diff --git a/.editorconfig b/.editorconfig index 795b44c7e..5d1b2892e 100644 --- a/.editorconfig +++ b/.editorconfig @@ -1,7 +1,8 @@ ################################################################################# # Tractus-X - Digital Product Passport Application # -# Copyright (c) 2022, 2024 BASF SE, BMW AG, Henkel AG & Co. KGaA +# Copyright (c) 2022, 2024 BMW AG, Henkel AG & Co. KGaA +# Copyright (c) 2023, 2024 CGI Deutschland B.V. & Co. KG # Copyright (c) 2022, 2024 Contributors to the Eclipse Foundation # # See the NOTICE file(s) distributed with this work for additional diff --git a/.github/actions/setup-java/action.yaml b/.github/actions/setup-java/action.yaml index a4f042e34..abab1a77a 100644 --- a/.github/actions/setup-java/action.yaml +++ b/.github/actions/setup-java/action.yaml @@ -1,7 +1,8 @@ ################################################################################# # Tractus-X - Digital Product Passport Application # -# Copyright (c) 2022, 2024 BASF SE, BMW AG, Henkel AG & Co. KGaA +# Copyright (c) 2022, 2024 BMW AG, Henkel AG & Co. KGaA +# Copyright (c) 2023, 2024 CGI Deutschland B.V. & Co. KG # Copyright (c) 2022, 2024 Contributors to the Eclipse Foundation # # See the NOTICE file(s) distributed with this work for additional diff --git a/.github/dependabot.yaml b/.github/dependabot.yaml index 592653553..357cd5533 100644 --- a/.github/dependabot.yaml +++ b/.github/dependabot.yaml @@ -1,7 +1,8 @@ ################################################################################# # Tractus-X - Digital Product Passport Application # -# Copyright (c) 2022, 2024 BASF SE, BMW AG, Henkel AG & Co. KGaA +# Copyright (c) 2022, 2024 BMW AG, Henkel AG & Co. KGaA +# Copyright (c) 2023, 2024 CGI Deutschland B.V. & Co. KG # Copyright (c) 2022, 2024 Contributors to the Eclipse Foundation # # See the NOTICE file(s) distributed with this work for additional diff --git a/.github/workflows/codeql.yaml b/.github/workflows/codeql.yaml index 0812e5512..93f67482b 100644 --- a/.github/workflows/codeql.yaml +++ b/.github/workflows/codeql.yaml @@ -1,7 +1,8 @@ ################################################################################# # Tractus-X - Digital Product Passport Application # -# Copyright (c) 2022, 2024 BASF SE, BMW AG, Henkel AG & Co. KGaA +# Copyright (c) 2022, 2024 BMW AG, Henkel AG & Co. KGaA +# Copyright (c) 2023, 2024 CGI Deutschland B.V. & Co. KG # Copyright (c) 2022, 2024 Contributors to the Eclipse Foundation # # See the NOTICE file(s) distributed with this work for additional diff --git a/.github/workflows/eslint.yml b/.github/workflows/eslint.yml index 2877d6980..953ac83e6 100644 --- a/.github/workflows/eslint.yml +++ b/.github/workflows/eslint.yml @@ -1,7 +1,8 @@ ################################################################################# # Tractus-X - Digital Product Passport Application # -# Copyright (c) 2022, 2024 BASF SE, BMW AG, Henkel AG & Co. KGaA +# Copyright (c) 2022, 2024 BMW AG, Henkel AG & Co. KGaA +# Copyright (c) 2023, 2024 CGI Deutschland B.V. & Co. KG # Copyright (c) 2022, 2024 Contributors to the Eclipse Foundation # # See the NOTICE file(s) distributed with this work for additional diff --git a/.github/workflows/helm-test.yaml b/.github/workflows/helm-test.yaml index 6c97a45a4..31ff6804b 100644 --- a/.github/workflows/helm-test.yaml +++ b/.github/workflows/helm-test.yaml @@ -1,7 +1,8 @@ ################################################################################# # Tractus-X - Digital Product Passport Application # -# Copyright (c) 2022, 2024 BASF SE, BMW AG, Henkel AG & Co. KGaA +# Copyright (c) 2022, 2024 BMW AG, Henkel AG & Co. KGaA +# Copyright (c) 2023, 2024 CGI Deutschland B.V. & Co. KG # Copyright (c) 2022, 2024 Contributors to the Eclipse Foundation # # See the NOTICE file(s) distributed with this work for additional diff --git a/.github/workflows/helm-upgrade.yaml b/.github/workflows/helm-upgrade.yaml index c6b512eb1..f93ef71e4 100644 --- a/.github/workflows/helm-upgrade.yaml +++ b/.github/workflows/helm-upgrade.yaml @@ -1,7 +1,8 @@ ################################################################################# # Tractus-X - Digital Product Passport Application # -# Copyright (c) 2022, 2024 BASF SE, BMW AG, Henkel AG & Co. KGaA +# Copyright (c) 2022, 2024 BMW AG, Henkel AG & Co. KGaA +# Copyright (c) 2023, 2024 CGI Deutschland B.V. & Co. KG # Copyright (c) 2022, 2024 Contributors to the Eclipse Foundation # # See the NOTICE file(s) distributed with this work for additional diff --git a/.github/workflows/kics.yml b/.github/workflows/kics.yml index 6dac87476..1dd32ac2c 100644 --- a/.github/workflows/kics.yml +++ b/.github/workflows/kics.yml @@ -1,7 +1,8 @@ ################################################################################# # Tractus-X - Digital Product Passport Application # -# Copyright (c) 2022, 2024 BASF SE, BMW AG, Henkel AG & Co. KGaA +# Copyright (c) 2022, 2024 BMW AG, Henkel AG & Co. KGaA +# Copyright (c) 2023, 2024 CGI Deutschland B.V. & Co. KG # Copyright (c) 2022, 2024 Contributors to the Eclipse Foundation # # See the NOTICE file(s) distributed with this work for additional diff --git a/.github/workflows/publish-dpp-backend-docker-image.yml b/.github/workflows/publish-dpp-backend-docker-image.yml index ff028238a..8bb18a950 100644 --- a/.github/workflows/publish-dpp-backend-docker-image.yml +++ b/.github/workflows/publish-dpp-backend-docker-image.yml @@ -1,7 +1,8 @@ ################################################################################# # Tractus-X - Digital Product Passport Application # -# Copyright (c) 2022, 2024 BASF SE, BMW AG, Henkel AG & Co. KGaA +# Copyright (c) 2022, 2024 BMW AG, Henkel AG & Co. KGaA +# Copyright (c) 2023, 2024 CGI Deutschland B.V. & Co. KG # Copyright (c) 2022, 2024 Contributors to the Eclipse Foundation # # See the NOTICE file(s) distributed with this work for additional diff --git a/.github/workflows/publish-dpp-frontend-docker-image.yml b/.github/workflows/publish-dpp-frontend-docker-image.yml index 962020569..b418a56e5 100644 --- a/.github/workflows/publish-dpp-frontend-docker-image.yml +++ b/.github/workflows/publish-dpp-frontend-docker-image.yml @@ -1,7 +1,8 @@ ################################################################################# # Tractus-X - Digital Product Passport Application # -# Copyright (c) 2022, 2024 BASF SE, BMW AG, Henkel AG & Co. KGaA +# Copyright (c) 2022, 2024 BMW AG, Henkel AG & Co. KGaA +# Copyright (c) 2023, 2024 CGI Deutschland B.V. & Co. KG # Copyright (c) 2022, 2024 Contributors to the Eclipse Foundation # # See the NOTICE file(s) distributed with this work for additional diff --git a/.github/workflows/publish-swagger-hub.yaml b/.github/workflows/publish-swagger-hub.yaml index 0e24ca04b..b9eacbb1d 100644 --- a/.github/workflows/publish-swagger-hub.yaml +++ b/.github/workflows/publish-swagger-hub.yaml @@ -1,7 +1,8 @@ ################################################################################# # Tractus-X - Digital Product Passport Application # -# Copyright (c) 2022, 2024 BASF SE, BMW AG, Henkel AG & Co. KGaA +# Copyright (c) 2022, 2024 BMW AG, Henkel AG & Co. KGaA +# Copyright (c) 2023, 2024 CGI Deutschland B.V. & Co. KG # Copyright (c) 2022, 2024 Contributors to the Eclipse Foundation # # See the NOTICE file(s) distributed with this work for additional diff --git a/.github/workflows/release-helm-charts.yml b/.github/workflows/release-helm-charts.yml index 80793a0c5..b497ea9a5 100644 --- a/.github/workflows/release-helm-charts.yml +++ b/.github/workflows/release-helm-charts.yml @@ -1,7 +1,8 @@ ################################################################################# # Tractus-X - Digital Product Passport Application # -# Copyright (c) 2022, 2024 BASF SE, BMW AG, Henkel AG & Co. KGaA +# Copyright (c) 2022, 2024 BMW AG, Henkel AG & Co. KGaA +# Copyright (c) 2023, 2024 CGI Deutschland B.V. & Co. KG # Copyright (c) 2022, 2024 Contributors to the Eclipse Foundation # # See the NOTICE file(s) distributed with this work for additional diff --git a/.github/workflows/trivy.yml b/.github/workflows/trivy.yml index 46ace24c9..d937e544c 100644 --- a/.github/workflows/trivy.yml +++ b/.github/workflows/trivy.yml @@ -1,7 +1,8 @@ ################################################################################# # Tractus-X - Digital Product Passport Application # -# Copyright (c) 2022, 2024 BASF SE, BMW AG, Henkel AG & Co. KGaA +# Copyright (c) 2022, 2024 BMW AG, Henkel AG & Co. KGaA +# Copyright (c) 2023, 2024 CGI Deutschland B.V. & Co. KG # Copyright (c) 2022, 2024 Contributors to the Eclipse Foundation # # See the NOTICE file(s) distributed with this work for additional diff --git a/.gitignore b/.gitignore index 3c7f878e0..2fb8bc7de 100644 --- a/.gitignore +++ b/.gitignore @@ -1,7 +1,8 @@ ################################################################################# # Tractus-X - Digital Product Passport Application # -# Copyright (c) 2022, 2024 BASF SE, BMW AG, Henkel AG & Co. KGaA +# Copyright (c) 2022, 2024 BMW AG, Henkel AG & Co. KGaA +# Copyright (c) 2023, 2024 CGI Deutschland B.V. & Co. KG # Copyright (c) 2022, 2024 Contributors to the Eclipse Foundation # # See the NOTICE file(s) distributed with this work for additional diff --git a/.pre-commit-config.yaml b/.pre-commit-config.yaml index 47bc807d0..74f7d6a2d 100644 --- a/.pre-commit-config.yaml +++ b/.pre-commit-config.yaml @@ -1,7 +1,8 @@ ################################################################################# # Tractus-X - Digital Product Passport Application # -# Copyright (c) 2022, 2024 BASF SE, BMW AG, Henkel AG & Co. KGaA +# Copyright (c) 2022, 2024 BMW AG, Henkel AG & Co. KGaA +# Copyright (c) 2023, 2024 CGI Deutschland B.V. & Co. KG # Copyright (c) 2022, 2024 Contributors to the Eclipse Foundation # # See the NOTICE file(s) distributed with this work for additional diff --git a/.trivyignore b/.trivyignore index c57df4f48..37279eb48 100644 --- a/.trivyignore +++ b/.trivyignore @@ -1,7 +1,8 @@ ################################################################################# # Tractus-X - Digital Product Passport Application # -# Copyright (c) 2022, 2024 BASF SE, BMW AG, Henkel AG & Co. KGaA +# Copyright (c) 2022, 2024 BMW AG, Henkel AG & Co. KGaA +# Copyright (c) 2023, 2024 CGI Deutschland B.V. & Co. KG # Copyright (c) 2022, 2024 Contributors to the Eclipse Foundation # # See the NOTICE file(s) distributed with this work for additional diff --git a/AUTHORS.md b/AUTHORS.md index 44e5c41bc..8f1d1ec20 100644 --- a/AUTHORS.md +++ b/AUTHORS.md @@ -1,7 +1,8 @@ + +

  Digital Product Pass Backend

+ + +
+ +# Table of contents + +- [Table of contents](#table-of-contents) +- [What is this backend app responsible for?](#what-is-this-backend-app-responsible-for) +- [Services Available](#services-available) + - [Authentication Services](#authentication-services) +- [Open API specification](#open-api-specification) + - [Digital Product Pass APIs](#digital-product-pass-apis) + - [Parameters](#parameters) + - [/api/contract/create](#apicontractcreate) + - [/api/contract/search](#apicontractsearch) + - [/api/contract/agree](#apicontractagree) + - [/api/contract/decline](#apicontractdecline) + - [/api/contract/cancel](#apicontractcancel) + - [/api/contract/status/{processId}](#apicontractstatusprocessid) + - [/api/data](#apidata) +- [Detailed API Services](#detailed-api-services) + - [/api/data](#apidata-1) + - [Request body](#request-body) + - [Contract API](#contract-api) + - [/api/contract/create](#apicontractcreate-1) + - [Request body](#request-body-1) + - [/api/contract/search](#apicontractsearch-1) + - [Request body](#request-body-2) + - [/api/contract/agree](#apicontractagree-1) + - [Request body](#request-body-3) + - [/api/contract/decline](#apicontractdecline-1) + - [Request body](#request-body-4) + - [/api/contract/cancel](#apicontractcancel-1) + - [Request body](#request-body-5) + - [/api/contract/status/](#apicontractstatus) + - [IRS API](#irs-api) + - [Request parameters](#request-parameters) + - [Public API](#public-api) + - [Response](#response) +- [OSS License Check](#oss-license-check) +- [Swagger Docs](#swagger-docs) +- [Run the application](#run-the-application) + - [Modify the configurations in the deployment files](#modify-the-configurations-in-the-deployment-files) +- [TL;DR](#tldr) + - [Install](#install) +- [License](#license) + + +# What is this backend app responsible for? + +This backend includes the services and *logics* to manage the *passports* of the `frontend app`. + +# Services Available + +## Authentication Services +All Authenticated APIs required a `AccessToken` JWT Token generated by the login in the frontend or in the Catena-X Keycloak instance. + +```yaml +{ + headers: { + Authorization: "Bearer <>" + } +} +``` + +For login and log out! +```bash +------ +/auth/check #With this api you can check you authentication status. +------ +/auth/token #Request token from the keycloak instance +------ +/auth/userInfo #With this api you can get your user information. +------ +``` + + +# Open API specification + +The Digital Product Pass Open API specification is available at the swagger hub from Tractus-X: + +[https://app.swaggerhub.com/apis/eclipse-tractusx-bot/digital-product-pass](https://app.swaggerhub.com/apis/eclipse-tractusx-bot/digital-product-pass) + +## Digital Product Pass APIs +The APIs below are the ones contain in the `Digital Product Pass Backend` reference implementation. Which can be reused for retrieving aspects from the Catena-X Network. + + | API | Method | Description | Parameters | + | ------------------------------------- | ------ | ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------ | --------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | + | **/api/contract/create** | POST | The `/api/contract/create` api is responsible for calling the `BPN Discovery` service searching for the BPN of a `manufacturerPartId` and validating if there is any `Decentral Digital Twin Registry` available for the BPN number found in the `EDC Discovery` service. | [Go to Params](#apicontractcreate) + | **/api/contract/search** | POST | At the **/api/contract/search** API the user can search for a serialized Id and get its contract. The `Backend` will search for the Digital Twin and will return the contract for the first one that is found. A `sign token` (a sha256 hash) is return also and acts like a "session token" allowing just the user that created the process to sign or decline the contract. |[Go to Params](#apicontractsearch) | + | **/api/contract/agree** | POST | Once the user has the contract he can call the `/api/contract/agree` API to start the negotiation process and the transfer of the passport. This means that the user accepted the policy and the frame-contracts contained in the contract policy. | [Go to Params](#apicontractagree) | + | **/api/contract/decline** | POST | The other option rather than `/agree` is the `/decline` API, that basically blocks the process and makes it invalid. This means that the user declined the specific contract that was found for this process. | [Go to Params](#apicontractdecline) + | **/api/contract/cancel** | POST | The user can use `/cancel` to interrupt the negotiation process once it is signed by mistake if is the case. It will be only valid until the negotiation is made. | [Go to Params](#apicontractcancel) + | **/api/contract/status/``** | GET | After the user signs the contract he can use the `/status` API to get the process status and see when it is ready to retrieve the passport using the API `/data`.. | [Go to Params](#apicontractstatusprocessid) + | **/api/data** | POST | The API `/data` will decrypt the passport file that is encrypted using the session token "sign token", and will delete the file so that it is returned just once to the user and can not be accessed anymore. So a new passport will be always need to be requested.. | [Go to Params](#apidata) | + + +### Parameters + +#### /api/contract/create + +| Parameter | Value Name | Mandatory or Optional Value | +|-----------|------------------|-----------------------------| +| id | searchIdValue | [REQUIRED] | +| type | searchIdTypeName | manufacturerPartId | + + +#### /api/contract/search + +| Parameter | Value Name | Mandatory or Optional Value | +|-----------|-----------------------|-----------------------------| +| id | serializedIdValue | [REQUIRED] | +| idType | serializedIdTypeName | partInstanceId | +| processId | processIdentification | [REQUIRED] | + + + #### /api/contract/agree + +| Parameter | Value Name | Mandatory or Optional Value | +|------------|------------------------|---------------------------------------------------------------------------------| +| processId | processIdentification | [REQUIRED] | +| contractId | contractIdentification | [REQUIRED] | +| policyId | policyIdentification | If no policyId is specified then the first policy of the contract will be taken | +| token | searchSessionToken | [REQUIRED] | + +#### /api/contract/decline + +| Parameter | Value Name | Mandatory or Optional Value | +|------------|------------------------|-----------------------------| +| processId | processIdentification | [REQUIRED] | +| token | searchSessionToken | [REQUIRED] | + + +#### /api/contract/cancel + +| Parameter | Value Name | Mandatory or Optional Value | +|------------|------------------------|-----------------------------| +| processId | processIdentification | [REQUIRED] | +| contractId | contractIdentification | [REQUIRED] | +| token | searchSessionToken | [REQUIRED] | + + +#### /api/contract/status/{processId} +| Parameter | Value Name | Mandatory or Optional Value | +|-----------|-----------------------|-----------------------------| +| processId | processIdentification | [REQUIRED] | + + +#### /api/data + +| Parameter | Value Name | Mandatory or Optional Value | +|------------|------------------------|-----------------------------| +| processId | processIdentification | [REQUIRED] | +| contractId | contractIdentification | [REQUIRED] | +| token | searchSessionToken | [REQUIRED] | + + +# Detailed API Services +> **_NOTE:_** You must be authenticated with the keycloak instance to access this APIs + + +### /api/data +Get data from a Catena-X Provider by using its processId, contractId and a token, this retrieves product passport after a successful negotiation. + +```bash +/api/data #Returns the data negotiated and transferred +``` +###### Request body +```json +{ + "processId": "string", + "contractId": "string", + "token": "string", + "policyId": "optional:string" +} +``` + +### Contract API + +#### /api/contract/create + +```bash +/api/contract/create #Creates a process and checks for the viability of the data retrieval +``` +###### Request body +```json +{ + "id": "string", + "type": "string" +} +``` + +#### /api/contract/search + +```bash +/api/contract/search #Searches for a passport with the following id +``` +###### Request body +```json +{ + "processId": "string", + "id": "string", + "children": true // Optional Boolean + "idType": "optional:string", + "dtIndex": 0, //Optional Integer + "idShort": "optional:string" +} +``` + +#### /api/contract/agree + +```bash +/api/contract/agree #Sign contract retrieved from provider and start negotiation +``` +###### Request body +```json +{ + "processId": "string", + "contractId": "string", + "token": "string", + "policyId": "optional:string" +} +``` + +#### /api/contract/decline + +```bash +/api/contract/decline #Decline passport negotiation +``` +###### Request body +```json +{ + "processId": "string", + "token": "string" +} +``` +#### /api/contract/cancel + +```bash +/api/contract/cancel #Cancel the negotiation +``` +###### Request body +```json +{ + "processId": "string", + "contractId": "string", + "token": "string", + "policyId": "optional:string" +} +``` + +#### /api/contract/status/ + +```bash +/api/contract/status/ #Get status from process +``` + +## IRS API + +```bash +/api/irs// #Endpoint called by the IRS to set status completed +``` +###### Request parameters +``` +- Id +- State +``` +```bash +/api/irs//tree #Api called by the frontend to obtain the tree of components +``` +```bash +/api/irs//state #Api called by the frontend to check if the process is finished +``` +```bash +/api/irs//components #Api called by the frontend to obtain the list of components of the tree +``` + +## Public API + +Public APIs don't require authentication +```bash +/health #Get the health status of the server +``` +###### Response +```json +{ + "message": "RUNNING", + "status": 200, + "data": "24/11/2022 17:48:18.487" +} +``` + +```bash +/endpoint/ #Receives the EDR from the EDC Consumer and get the passport json +``` + +```bash +/endpoint// #Receives the EDR for the EDC Consumer and queries for the dDTR +``` + + + +# OSS License Check + +The third party library dependecies, utilized in this app have to be approved from The Eclipse Foundation. + +The [Dash Licence Tool](https://github.com/eclipse/dash-licenses) is used to scan the dependencies + +[OSS License Checks with Dash & Compliance with Apache 2.0](https://confluence.catena-x.net/pages/viewpage.action?pageId=54989501) + +At the time of writing this manual, the dependencies have status approved and therefore no need to generate IP Team Review request further. + +[Maven plugin](https://github.com/eclipse/dash-licenses/blob/master/README.md#maven-plugin-options) used to check OSS license + +How to run: +```bash +mvn org.eclipse.dash:license-tool-plugin:license-check -Ddash.summary=DEPENDENCIES +``` + + +# Swagger Docs + +Swagger documentation is now automatically available at the following path: + +```https:///swagger-ui/index.html``` + +![img.png](docs/media/img2.png) + +For authorization, you will need to add a JWT Access token from the Catena-X IAM: + +![img3.png](docs/media/img3.png) + +# Run the application + +Use maven to run the spring boot application: +```bash +mvn spring-boot:run +``` + +If you want to run the application in a different way checkout the [frequently asked questions](#frequently-asked-questions) section below. + +## Modify the configurations in the deployment files + +You can use the default configuration to start the application: +```charts/digital-product-pass/values.yaml``` + +However if you need to change it just create a new environment with this naming convention: ```values-env`.yaml``` where ```env``` is the name of your environment. You can use as an example the following configuration file: ```charts/digital-product-pass/values-int.yaml```. + +The configuration for the consumer backend application is a yaml file that is configured in the following tag: ```backend.application```. Before the application starts all the configuration parameters must be specified, since they are required for initialization and will be checked at the test fase. + +Once you configured the application use the follow the [TL;DR](#tldr) below to ```build the image and start the application``` using helm charts. + +# TL;DR + +## Install +Find more documentation on how to install the backend in the [INSTALL.md](../../INSTALL.md) file. + +# License +[Apache-2.0](https://raw.githubusercontent.com/catenax-ng/product-battery-passport-consumer-app/main/LICENSE) diff --git a/dpp-backend/digitalproductpass/bin/docs/media/img.png b/dpp-backend/digitalproductpass/bin/docs/media/img.png new file mode 100644 index 0000000000000000000000000000000000000000..d32b9cabdcc2dc304afac43df4e69aaf57865f95 GIT binary patch literal 212791 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

E4M6OTYB~Kf@C0{#~F(4 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�m?tiA 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 NSp)dE<;pKGK>`1{9}u` zh-8enq-PO?>M>OT5*p)^%pU5s_*YGR- z0!3^A?b06{Qw|iUo7du3zIfor-oiMm4|3i>s!nN%M3xnnIwob~1TR+RS@xpQe)|UY zPnCBvzF&t(X)KkrSNfeOS|!oHB@*cKPwZg88EHnLUPsh%pp8Xw?m~uxXQ>oJlEz>nbQa)SS zhsqVJx;cT6iMA!4)=!RLo}pT?D1EW z=Tn5G=60{|894H}6XNjZ-3E5`t8QNNJth3!2CGU>hTD?z3Q+tPGP>svZFrsy-jp$ z_no`qOkm@}*O&8eiNop^LM+7~m;J-H`_=2C92)jC$&(VMd z*?<*>iwff+o&ehP&PR19hcKxuUOCnRerqwy*{&yg!Q1L{W{+d1QW1zk!s0j{#}~bW zgcD7hZ`uxaJ|({Ah)AuBIduH-^W6OY9pbtLB)v%;06zrORpuprm>jgpObayCcOXTb z)J2w;UsRsqnE?h9TlXb)__k-NyuWIw5pkM%^%9~J>vH2uR2L8-tU?Px9&@}tMBG(2 zMi_h4h%T;-ehh86JSRbjVCjb+EW(aDkeUX>gUPIJ=&u;UpuKqGpoSL@-(mS3L30Wt zqJS#*R#KX9z)ryz-2{*>u`sxy;BtQQ!&uw2m*PRRy>q;`izATal1yMUUsjPc9sf`# zH`g-y`5PTQh&vy*iUCo-?Xz;++}-P6WD-quPPdF5-k7}hSjC+9Hjum*V}}<$9no6k z?53TDb~4?UuNd_aq#NxAy?hV7sF{}kV>$sjYAYHmFBhx1ga)qAeSQ(3|Y<{kV$+6;zFk<7$m?9NVb{kRE_sWGf>5!5L3# z1He5*7fgDq4#HK1p>M0ffT4|-)wF9IHZVEAU;n0u?#8eOx0_Hs^ulb~eeJ6{U^D4t zQCBfuXF)|;$F+b` zxsK>ou9Rt?V5RqiMeG=1MKzM}J46gA*m%WRqQ1A)`jd(1b;1dZRDKg=YHJy5h?;!E z`IJ>$dQzl^1MWikJ1Tmuj&`rRba{qPwF#2cdbO_t>!m$2!J zH=|hRc;flRQB+^q_A-v9dF9>b&Q@4rvrC%Gkdu+s-x~=&KNqJpWstCrUPRUw^5NNm zcZD;vVbUVZM`nxNVC zef|nh)KoU^PVz94sb%L2Ms<-N#oj7W*>3#2AzaNsyuN2BVq%KGVOW$SY;l?``T|T)<}>dDX)Ut zWl}6qY(C z+9f5ckWAYNo2Ju<6^{y-&lTSgxN~oIl&bZJl%T}s5klnNG;eBJDbOatpCA)TTIZEj z4$v#YwznB8x;M)idWH@|uNi&e&1tz((J(T0TktdcK=MLYKNuHTF$|a%n&4_E#SoA zNPujjJ){7SCT)angD$W>if%R`g>juaxn-6#09D@&O~m0=9a=jldLW3wiON&pN{#Eo zxCy#^4b3qo<$AsuB{}Y1@HQ z^VC#czThn2x&)~wMguR;nb_Iq)Ch0}231`)e>O3`+)Kv&M%c#nmM^zt*C(XEeY;qd8i(zQ{7Sku;N|>7 z?@Zpu5B2DsNxy}n{me>xIkHv8#Ec>_jVitN|56f%=gnBf@Evxa#eBCXVePVKYE$y9 zZZ+CHS8i-M(i#QK0)|r(dbRoex1;fk5V1%i!wXjuPa1}`$e!4}o=m)ctYo6N(0;|a zKG0<}>)BX%4jCz$l0j6F*v^00)wwi4Su$717&kAzc$~s(yNRIhlt~N z)$rOgS`L}{Un`sF-*Oiri37~vhzHM}Ev#+XX)$f**R2BIzsTz(uJK-wk4wlXGf<%+ z;-{&XyO-3{foqAFu&Ln5ZP>RM8! ztq~uYl+mZRrHV_zvT@_iX4|6%J-h&K96}3VE8SRQ9PA-9fOyrVro+QeOdQuL9aLM?thXHxt2I#6jhD zKgvS0(+=9l@ne~;-@@0B>fW)d`vKjGhmfb+w{b1G$PGlr&JzZwH=y7q&wuQ!I$B5 zWy7T5OeN^{sY_l(f}^LokC>B+M0T;M_NRefj7FBNQ@3E=(o5)Wy_YRZK5HR(a&Y|j zL%Y{R-v^bjy{BVq!wm=umrsV`2npYa5U&hj$H-vlScRyzNdbU5E`0(733`3-w-KG| z*QG*JzjEw7zZXHxVc`YK4iZ#Fv{UY3$(y!dKKul`{pdoA4W&YXKF0$b_Q#E;*}_jX z$4k?7)SP>g>$`z40bxg3GG${po(+ztC_0Z=>P4y4HOqX0X*%rFxD_e!>NS50D|W)Xmxs((C#CLS(vdD~8ErF7 z+9?0gm2h61D4Z!TED~F&r&fT%e}JY;xXT+Qw+G2^7925@5|AQ>f7Tk zkd}{po;B_f1LGd|14vJ`n?qB^IfvVA%cemMiU#WJhr9e)9(S1ZAld17bJ-Y0UGt7K z^^Qob`l?#1eDBy0jd`^mYWJ5+TS4Ipni>>ekwLg4Ecj7wZ4 zpWlABt~Q--_O;o)#@sDqFYmawzDoH6;$k}J@zjMc=9&=t zjxDX0nfpBTPy_Xfv0l^;3fzi4osrMX7d)`*K@A%G+?}gkv}DIKq}>DTNK@5SVttuj zUUeVn4M6caSqXK->a|{iTq|pxaXpWL%Z09Wsji3D+RFskx3+X!pox1dmrZIXvh2*6 zN(P?~P|dffrCraA7g-(tffQbRGrw>NLQQ&_O6|Yq zAg#8wYgbWci)DegSP)9Kg+w!uHta2sX}ic8y<6DLNp|I(h=I zZT4M6^2Zdxz2!bF*#dv*LyX{rA2x%v2#epSmTc{D)2Sxoar9j9nEd{f8Jd!3OJ(ZP z>2K2t(>zWH%+0t2YAofJ>X3g7vDgeg>PW0Rm`P)zM%T_-|U# zA@%TmP=k1H50zI34_iT_zM48a^&v>)RsT#KDsuD+gzRlvJD&jo#j>La_N)GKoTXTW z1QOWAmNHlX~@oyQFa4f4-p9(Z}@d($LZo|KYyWbshOAag)f2C0Z+ z_&dSYtB?e2eou7%{?ozl`u}~dlBqcMCg6Tp-Ml?zladon>?+qkbJ~CZB~xWATQh82XAeWjn=}CtLhlgi(mSC@4H$YS1VWO3^c>H1?*Dbac;=aT zW}X?xcQUy5`t7~ecYVHV*EljGyC6*Pm9B%3Yn@%H!2;Ca&{30!#wg1?%kD@R?p*b! zAV&tBbrv;&FcAG|aqamDZ^uFF)xuoOJCag(( zFV{9r6}?B>;DgT`U$k#^*=nSs(=Bs7XGx%?3|E=psc_NZnUCL3Y5V2+KU}8I4n0T^ zNGY7HWY{N*EqK`6Tw%t{BfZ`q*kby-$MDx;g*k-+X#3wS7b2fHr94J$!OR#hIoQ5S8mB`B)CN06YE5Q}}43Uj0t8n+_ z14NI9ROLH|U8(m3%`#t04RUb_Aobldx#vJ0Js%O-qvr&`IpfHo%BFy5qyJ(FRh=T%8GU1o~AqrRJqUq}~RqD3m!|uA}n061{-?{6a zwafSTn6$r%Op8#N%6M$A+?R@B{BQ#)l;^MzNh9Lof4nkeS$_=}lI+wHLug4GKb8E1 zu``RHau`uTHVALuD*KvY7yMuX^02RJmHE4`2w7ub{qkrB`nNu-xZm+ppT$|oCy1yJ>{6`$V&OM4$ znsbrSRvWJbjoteF-oek%SXs~0p1{(ls`A3Q**KTfl;PQX z9M%{vQU9&=1R^A1=?kEM*pu1yZUyd)M*9)Aled{^Vla-;K|S zzxbN0Gi0}M0kbymxM}wrjVvz4CJSw4kZyV4o5AS$MN{5w-T^07t=UfK7vCskRoP`4 zH&4tK_zfIs8sb(&wrLJO9p9aP>kvT`%*%tLl#iNrwHy8~uGA)`H`zK$@ls z6Q$d8U;D;iD|>G$=uAZ8Zvg9>oo|6rCw1B$)$76TwO1uB_ENa?znj*BCyBkqtI$WZ z-$#I(=fincn1Hb!R3METWxWgx(e+wS`B8qW&B?V{fAGvgOFK5p{!T5W84sfb8;#4s z7lYew*pu~&f9{T-L4p>Y4lYU$?)(H{K5b)Q#U4UfbIZq;pvDBRZ^Z1`QWyaH%E%u z7UyXp8+DZt+kY=5T@=x{5smKH3NCGVaxwU9gnv00j-!t_!zEt`bvL+T5YNDk>#-~> zKLryNNAH{XlM3-WHA7$5<^vENS4?lZemt`!j}ll$j#~VW6Xd|5oJ32Ek_RuM2BnGf z!+;8M9qj`14@V9|c{dMp9{}I!5TtM~gGg5JykTx(?fT~|#)ynx5gfn*+&pA`mHF5W zA?+%Y-pLV554kXpU)3V81Ag8yj~9t1eX31v*=K)+E)4zOB184Fe^Ur6l9ukdj@xYa zsxHJ{pW~DLwDfl6Y%YhQbE?OB%AE{G<92B}JK-}N=>gu;rXD{!Ut3l9oTWS&)sdFI zBcb)Yq#1-AJXw9`t0PxNkOnv5G~e9IXy`G7TF6q~1m|-@`2l~B&vZYb+$RSHpKA-5 zseQ=O)0rT(hdC>|V1gIVc4$nw>|wXP?^4IoWFbYuXbx#|>{3-B@F)ZmD%A)nPES4J z^~^R9prZvpecbr|TwXaXu8ei_ycVp#tYEc#e)HP{J~;!kBx|RDyNPaY^~UQ?i{j6X zzVAEU`e>ev`X_hzd9yBF1Mw&Q*`aZfbVKNyA69H2Fgs|6^4C3Mmdh6zxQxP6qXs5< zH!IaxL1>zRJiPqWyw*MMV*r0FmVV}h&3LvgvT>zP5BO?#?b_jL%}`sF_`BH^sXL}V zLB)fFR}#Wjj9z*&N{s4ANdHxxM)UqvorX_bSpXTXS-7BjiKQU5Ih-Pl%AR5eV`bop zHLWHY(7^YIv&_4$&sRwRD*e*0_A|lrxJRCHyo$BD0>;Uq_n4$F_qya>H^6(5ppxq} zO<%|k^$LDxFzT5dKimi1qHU;k^Q>q=Uq2(?;frYG8;C~B9I}lB(@}yU56fa5+nZV< zY*YbR(Q``&juyLqouOm3XJiF#x$ZvHC0k6nd|(_YI7=0PCe<(nw(rchT?7X3V<<{^ z+YcsfB0X?Fsshk`=EMh8PAA((1~@sJY=MP-yk8JE6ZQiGEWDT(D5Z*6-}^B>ryz=8od}lB0Wd!Wz!Q-TLMlD{q4*JDaSqVaGUHz z=yz`U^L{;W*uM-bw42pVCCi*IrV=Db^s+hQ2>$4+bs8fSZovFm*(KL`% zWGeYEvPQuqCuV@_CQtqH{EYvc=)0%=eP!|{HCrUBW{S_>;{2)LF)y-BF@bA{-zAer zi}AUX;h?!!M)9>4UHYkc$?3Ne<>CweM|a7Q8m(demNZje#Mrp~J+<__a5_?aCu^#} zUlq-Qv)P-!6Mgawgj&ry#H!~LVQ{sHI@*DqbCcLJCbI*ZEL8qx&BXXDoTG+csZ2aZ zB*%~NZlny}qg0)rIMc!Fvy%Ci2{ zJj9M(%s56N${noW80K4C;C|rq_G%gL5Ny|tN1Zf>U`JZ3*(Up+Pg?lU6QnA1+D{hk zyJP*l(ez9~5vKI3ImL?ssgQi}kjkvduZ-oLyDxai$j)}|ei2iiVEuQ_+p3%^_gBix zV^8uz)QUyqC1h&vPcxDr#0vFwi63v)Qx3k)t{dG|w{BlK)S8Ue-k}xGj=w}e(R&{EQXrm`!Ax@`w>QJ)-iG0h#6gI8O-f?YRnWix z;mTal|Ht&y|I_lr@xxa>GQv2p$btDD=P-e zrK0kz*8SO?MX2wn58>gpC;!wn;&DavY~{8j&9#gfV(Df>0?aZI>}x>}dD!o!`ZTSH zb!=wJMTXDvQFO03e_A8`GHm-^!PiK(8WUOvb?l66(5+(K;k>>zUW#PzRI+IU)r^;j0i&}9pKfZ!M9W|r3 zps@CRuTpFNP060M#X8nCrOlN=#BD#}@Juv?s;~0URQy!Gj&WksDmkRW!A{9vZPw2$5$o)kh#|6=u}(b*sX2vz zI<8E%(=Hs`r8xtQ)^$u94BhM3C=-C9!TL?gtGpXruK_O!5Llj>2 zoI;iFk;OMOqo-!f@nuKV8XQZ$(B;qPNy{FK0oqKST$oHI2bqXQkF!I}vL*%!^);R7 zyc$F0&PO!M5eJOG<`J=tzOV2wrcXqHRBNDnHu)r;H?LaLWpzdLlMc@^FW_{eGwS19 zGY=;9F%(-zJDe(UpSWj$`8%h$LbL2CY(F?O-q%aB5n|n=cZNE6I#1kr{nfXgXn#<7 z^^bslvyRRLx)h(CJRL|1FM+6SDu#fpqczy{jY$=2>nhHguZ2gQ5{9?g&rN691=}RM z{d_w5*Prbq0PR1bV*w}G*&6Ic=dORv1EY9@TisDbzBT@n71YnES9A8wxxZ{ZZT><9 zW}#9rk@PC5e4oi{{x^R_mRet;{3%kip>mQfF@A8v}%7~ zA#jGHjG^=F@(HI}-{lSO4A)JCQk)!B7sXf{TXpe`y6zVJbt$AB!j-kl2axNSD-hXa zDwM|2f=1WN*5i&>^(&q}7G4D#nLa*^HTRRya<4plIgS1{^yG2IeZkJ$)jG?v#kZJl zccJck>G8N0@Wgp6-3^aI7g| z+S&Q-tMIqBg@w7O0!q6ChaxWV@a9T-+FDP3@4bAW3E0Q-fNi~Y5MgE(z^Xov!!F>f zceI-b?~1&y(*UZRlI@_mB7Tuz2qiB;b6>Yi+~l=kW1wxsQJkJvrX4_Rp)TyL?Ihq; zKjR9*adVN(n;|=($PWLGEStB!Gg>_f9&$zoD1Y=Hb`$&#K+8?IRxWGw1rSxG7gh*) zsq1^LfV$&{5F7C%G2x%edx;~9JGC+1)vH%yGdB!Fwq~vhWK!jvo$&h&ooK93I(MxE zVU_QiyG{&iAGJrOdN-K$Tv|)HJDBw6L>lGSKCklH{_xZ!tiMmH82^T$qPxK=aS1jP zq!~MwZ){WWtW)Ll|3x%C_YlqM3aq#)Zag>b0yT4KzKj&|u{@c8GDTG6UlNwVP-ah= zIG6c+Ex{n$bptAYm6F4mi~lJlJv|tRa}^&=IQ)+?lynL_RTWXwMqM2>Q@&vs8r{?y zaU6GKcg9h0U5u#k#hZQZQEGuHgJ49?#>Sd8pw29_3XfQ4Xu}2GaSN`Laj|UW1+It# z=^pO?8069Qu~2+E!O-$5ZsNhGbZ4g|nyx@|cI4795z)*m^20g!ew zY@x+SNI3JfY?6mKCI_7v7URkrQB;7$EqK%(*MZzH`nlX~H)$Y0|Ha)v8ibjxC)w6l zA)eqU1a`WR+hhw@Kmj|RR{Hxemp?uXtdD<7?!c7$X?eEj<+F~c??D4=U8ofn1@ELE z-GBV??hj@8$Io5lzxAlMa$(@*VqYyt;lNhxmnyfY#E&U9g0mY_l5clocgFEKk#4}lgIxB(WX8Y% zl!86vp1g^R4B=%LezV2tnxd_g-R_fk?Qc-~V7HFIQM+Jq=a$lq%a!Dv)MQT zccl^H*4Vcga8#JTR6SQK;Pb#*yN#txnrAY;`L%UK(!=xEdI|~pA4Ujo3f{?cDC4av zyka1v^@<8YC@#y5)TzNm0{ihwv7pln&Vr+gn%T;bV2(BZLvE!6k`Y^zo(bLrVCHZk zBiP{3Qs4ef`BPxW#_JbDV?nZV@{Ct8CkyxwBb6Fk1WPN2Q?}`cU4Xx9@Oh2Gy#DiJ ziSqMJtCZ*GS=t3w zE6KIKzfX91AX9D`Io!1L1%l}VJ}Z#{Y{KR0|P z!m&mS4HZlZ4UOcxnL)+~8huDKyqA0##*GmzKdioYgV?QP5}02cVcuYkEe}lA3*>&R z;m*@0;k=NX6)rh$swR3(VJwX%%OtW9C;iHk>wIc?U4kAx7}?0E>h^+yv1ew>bXWF0 zfAJJbgOv>yT-GTSPDIkSh2ZGb2`nRQqu2iSrM*y{;}2bZ5si{YIB0)lvmLqKHOAT^ z`fr6}kc&=u^tN*K#5iP9d;mvJ`pfDv{OG*++RfM)3$Nbr6L$yk1X{;J!-uf=eN_6e zzAq@`0p{TXUiU%MGtCFBKU@$q0t->`$1n4zkFD5stv@c%KDu;-jf_PWA$G!2- zDm8#*?-o4vD)Vi;@tt3`-`jb(dw#apjM-%ffU&D>}LI1UvX54Ow_~<9|NR~Epk~2@&H4LQph$t7 zwHBh<81qHOf>HL(LnxVd1q1V@XYJc1hGLRtMmx@}PNm&?-?#UY7DBBbW^;Si=okAj zsq5T94DZQ8Ecpi~1S!Qq7H1S%?-vu^*5x{`XEnahO)baDu5abvwX7f2k3qDb)nF4$ zaew3;aXS;t%PmZ~#mDEjyfjR5z7RUl-AfAW%}K4ZZ>Y~s3v&OWZ(b4T8+nK?Np4vd zuB6)xwP?K`OU;9q`5|`&QfGHvM-ZtgXXB&TzA|8)InzE-%A=h2%xiPzZF8MEVq<5^ zdYd-TVKiX&o{Pptd8Ob%;?LZEDDOmmU;j1sdM(K9BR@}eGnU8;pHQQ*h*j;CX|Y}a z-Pt_t$!q`*2Y1C@%_hM|_-o$G(>my7%CnHQXQ9By;V^ueJVty|#$ukONo z1Ra*qy)s^N;qYdr2zxnq(pPbr>lgxvvj;XjP@R+cT`=U*%+CR>+b9m5dm3XjUHT(J;;>Io1MW9Ae@<*>d>~dl6&a7^A>c9|g$JsiJa`@|%#+@P6LG9wN^O(A z?MYEJ^s(`P@nN?5Ny=GuTx&W>0~o=z`(@tRQ6xjgwRUwZ0=P$7_v)j>F+(Sr;F6)3&8T0pTB4dNeHY*Y0U_?q~^*3qjh1#c+P8 zXwWk4UP+?k2l?)Ysc0_TsKbpNg*KlJQp)M@{k&XkQv=@SzFqbZCYew}j5b3!C!lPb zl_`SN>NgQyPt+nY8xplvdmD#N`X-o&*uxXMZuiW;P9~#?`E1{`jkI4|l3|k_Xy-{=Q&<^H zhP(dqQxJqfvh~vCTQod+`Q}AlSQl}4Q@}~M?(-knac6N_KXHOdwqH2GHmi{RGsbfQ zW?(Wsyz=aQLUL&HA5>@unfhmXduKHx86VPrV*|^^4Luh~8j$M>h0L+*B@Wfief!bN zTj~cVue$$t=mMRUKzu@C)67}>JybP^+jBtTNhIOotMDgNKLAi1)eRp#!gQ`|Cs29d z?B%pGI5sh@X@RH7@5EAVj9ZsqDp_Pq}QND&Gsdtq8ICq#9d={iMwe&7D zlkN^CnELn_GabW@UmlzsX=)|oGu<#6^~OI{%nHu6vPJ15da+iGm5GKqkB*w*{t|P{ zy8mL;#80`;eE0k}NoATb z-|D_Z%pUk52HK9M9=p|mr>>c+ub=EVfhK%|)`#}Gaqvt&0C$3Nkm70|daQ0a;y2n3 z`_sj}H(4Y2>MUk!V%oUyCpP&#S&GOpYWpPi56JZQdd~tEKQ$bj{{jFQ=$WEe!30}?*xmAlDE%Ck2*>x_1}%}X?VSc4R3yf~*vT=q zVn2b>>tdmc%T?o7k$pr_Qk+VS_(()6Jev)98uO9;n0u?2M&Q0S%oM|NL_{FOkZ@V= zXO8lgNPxb}&h?Yfh_r$KA{GF25kiw6;kF%(-b8bJM8Ajymi8XolcQYyPFqW;J7ei9 zFg+{PN0)sKA47MuH{CH_9^5;d*}& z7T@Jljs~T~JX;rPX#KE1OC96|^0oPf1Ig|&!#0ZKr*eTq;Q5VzyM%@Q;}VW`ay*1J z^wkUpMwql14y_CpL2SDy;H^(FH+kGu@}b?_#{hg*^m{n+WOmfx-osn}2$0Ucyw#A6 zO&Br4=!xViu0Ni*0mpU@uW5WYic)zgKkFR!|HdZ_|HVA?pCthneeh*BzXOh^p?f%Y zQj72P=`dhjyy?754JMfpbNta49|v6oZmMjP&HFJU?ipqeFA0gs7~i7*;wu&hXh4?9 z{>+7G0l}4ACw5)#CI@n6KDIe*o5ZkFn{3_2A6QjxKbwD5M$BQ2op7a;>$~-J(EP2T{Nx4*Vp@LGQpvJ}VyDt*z7Om=GzCBd-Wn9hmg|Wk zno@LO+pPN|Qd#lUQVq^Nf7d)%lpO1`h1Da&P%*$nF$6|;nYs2$bd%w7D?Q2%EW8Nf zl<_m+^!r<=>8v9OZ|uzJ_zCZJ>G`-zU2x}$Y0*}KIUmalO+a8yw5oFB`Sj4OKtKme zSl*>B;NOV|`tAQejG@0)s9(;xX`Y#2R*n}?&VpVQnlS5hO2;syy~*tn4M0=yQwLt8 zi3)$X%VwkGZ(Ro=Ord>q5%soJ-lq_C_V$bd`xjzD_@8+`nTV#)ueoY!L^hN@$d9BY zhkQ*i{f|^x)8A;ICMf9HbeL{-GL+L*-E`QAyTD7|-oY*Jl+YiTmre30OA^aBVKFs( z0M%=(e{Se$@p z1rf3Jr#{qg3rU`0cucFaf=5qZ^y;%+Gcmn5frHIFT6BeJPcjjQdq(kxEN%yFM{mfg z|E*`rOnjaJBmr}7O82LGm}E1)HSU*@zMil^kTWfZyl?ZrdZe=`cyG_h*)|sW;=qk| zel0)xmxgGAFE)CD+aX*Q>faQ9yj zfQ!$^(rkD=lw_dHK};^6Y3qgGi@zn(00)e}fY9uZ77r~-8gbq44L9LSUHd*-+W=|K z@E8^B+_RlM$R;7zlKV3)#HwQDbw^cgSRG72vUe?tXDVuOjs z)1fxPV{K6zk01DPoq=vcV#L}vO&=4u4e3-;%KhnwnyYq~2}ZUM{|7&vtcE6E)4?Uq zQi?6UiHJF3nJ6h)g;!tnTPp#4P_?r-45GlSj@5Tl_tid~4kBAzrUm8r0c}5Im!2G@ z!L-M?(qwvPPO0YvaK-RI=|(9kdH`QD(kN4a_KMpsz@vM5)+AA*x+r@miz81`ieL}Duv>GYwMav=^MK!`uHlQX`pkSczqCut z`*SOJegopKvb-hxqCOKp@S6XX{7wn!mzbK5mG{YlX^hNF+*d41(R8Jpo3o=viP78k zYhf<1x_={^9j;TQ%5}{eUTJ}Y1_Nyb6pcLS>LPM+N z)E1&Dr`Ov`gEB3g>Rx%_E$XwK$_LwdWBmA+g&ZuR^2f9=OKOZ_+tq6IvJR1FvCmC5 z2&OBCRJ&wHFy5g%#X=|_Uz{9U?GCk8|D5=QU|q#(p}47UDOXDo6P%#nc954Q1;bhW z3;uJA+bxy7r{*1PGpTH|#hFYvJ-%jVoDz_@Js$b&Vj>3QVtk<=FgF{dhI2Q*k;Nl<(9AxmCv%O>B)cAc zcm+g-blEu~lLEiBs1#7O!jd0wz$kc~7~0R!RBpfAuXiaOqrEFeJcsm@9>)8erpmK` zt_@gc9j_n|#7xrCGaSTr-5@`oLueQDBVmLHhZfuBW<4(O1@u6v#Fym=!i)0qCF(Uj zkNs3sG71tN7wHD)OTR86Odw!*JW&Jr8ahmEys|sU10_8I$h`3XyMq%3>?ZriaT)lR z| z@jRW*{=lTDgq0EjHm5Ws)4%1>j7hH+HM*v0_w*0$t+rV{4pBoC(V^wS*ZiNe0>-H7 z2_J`o%b3yk8<_9f)v;yfzNkO@_*^@FxPF~|79l<#C8M^&5ljAUHqD`XhQ*6??!_}14cr;9(xa!jHLzl0<+@$_}M&8S4yCo50B z=1RFcc)0OcV5?`B%Klhq^D}5H>q)h|YFDBx6L-VJ1wcHu`05+tTsEQq(sA?8J`lQ~ zXNh6a!??~uH<}D?!2TuyqSUeGX}InV9(;pzZ%3VrI-+I+6LvZGhm#-0uBRAJ`Fr*V z8xm8p*{EzpB`)=D(s}g-z!S$WZY{j`TBdSqIT&=Ei*P3+z9hgz!G<~MhOiw^7jnpO z5z@sjbTK(3NJ^2ftYKT$ei+>&Zp;L!C+SXpk)BFty5y@AtWm841&iV`th<^CD9|(6 z?v(Bm%&^d65{-*7H|~JoEfRBjRk6~9R7@zMf1=mm_v)KcN0p7wf@{Z){@3-qBXR22 z5belVua#K3w4HR#s6~6mW+wrXR!g3{$q@G!7WsVW+IS{1IOa?F0e4F<=7{ZOSI9K< zweO#!M>w~e17+yRItSWG31N|IpD2p zVQF|bDSUAaln?WKchB&8ZW;3GwGfcSzPXed@17ZhM@YeK$%*s2xH3UMw*osUysb%g z(%*vJ=n&b8%B(_la9CQ1U0%F$toXr+x%a{QTyfS_1Y;TZ|1RHB6#p&X_NqUH>p7%s zmnqibC-u9LM_BOV=hLKwemP~0+3t6sEo+Hn4dL4z%h&TLa*xT`aDBko;%UHBoFCx5C zj8B~tcs7V4QKB~EDR-2fHd4HCcJsJvG{ye%I=nE^^xfMz(GcKO2QH85FbCC|vU8T5 zaCz-&VS@2-QDeXHYI=;>#33Hpt3vu^_1V!cCd%@EQH%d#qPV|2-!=^JuBD&!PxO1b z>oxAPkpY^MfcX7OD<%*?et+V9ZhVjreB?DH(mcQa;{5TAXO`Wq&mIDdKJ(h?dpx_v z0;}X{_@i{nO>JKAZ0yX(+^+!L9S`gHgpv)|f zNH@ptQm8bRudd9B&WW*$VP+NZGuA{h-voW&03EwmbiZdn8co@JZ=8xG&1NvfrYkvIL~H=4#%r=5HDwyHzhm=hSdm?4jUIPO3piiA zI96luL$fHo@|O+vFGFP3(roGoi7Damoij{jf@H(_S?Gq>u9@%ul#=C=2l8bVpHK6? zMsZ{;v)elEnu&053Z8Q?HC1Sk7AQmaHTNi2RRD9rN0lGwQ}$bBqX%s7X2mbA>KPJb zTuzx|Bd1qaViG|np?SzJ`4dhdv9c zKU9-6QJv5P5~luG-~CpIIMI{96ZMsZCH>|5jJcBf+Dnth?ak=984(bA4eQcqabw8; zsP$Owdn(GjaulSjLV(j^9ks-qv*eBmr=7C!_55txulwubpOQ25A@C5PaB_q`TP9f9 z6*Fk{r4`We!IxnVQu4v%LH?b^Lqp^et&^g%m*6vvsTXndWU3}?%TBVK)39_jG&sZ8 z3z0{VWwfHQ=?*yJVrjbJE&KXT#B=;t`c)DAj+@D0DhCGj-<>+9E-tTbSZ9AbdZNHq z?E6d$9%x15A*nm6P3_$&KQAR^yn5j&qrZCvz9gcQHGa;DMhTeGbVgV`}fH0lbkO)O0+ z(c6#nek-O6;<&$gjyc6&|1h(IF5NcLQ;%gmKGWMepXdgEQJep(O)>gpT4lceCCf9) z=>?9H2bSwui(ijhWM`m+nIaw1FLqy?#~gl6eu9Qo(+_rWej_ehT~f&Vt!(GEJH}OI zccqLRE?hQJs@QK#e?Bqkluf6SV7eB1PCkLwZ7N6xeO}?8*#&7rmeo7*9g6Ivl9!1&)1^2c290Kry;&e_eqELW6BKV7eF~=#ndrA8C(SL$ z`9cY3cw6(2)zhto4p3yIGqDDSxx2{R_>^k+ilC$)ot*lFL(cp>J`fz@1T*EIk3%{{ zg1A!O6y>ne$^VwId0p5{SYK}xTg@FTh(;IILGvmsZq_Q0*uKg47VYa2>sA@9dKf!J z*=Esu!ZMAU@NX~oIYa@hFOq9Cz&_6jEr*B$Z5G^>!vb(eN`EASk>1i}8*@(^pBZ)R z``pQ?7#hbpZed0H(Hu8yUvB(_Oz~gpyZu(hFZDe(zNo*416V634;r3&dSB+i^SDz< z`atPcDT;Kpe|5LFjG+wgn#;+m*xLo)Kc9pG4?P2w!iMwU?O7GaKZ7H&3MhpGppN`C zTo-F8n@qG9VrOs^c9OP{i4AtPjR^rqB-pm%Zb*hRN*Ymu_iS?Lj_AvHdDz!>nabQ6z@tK~mo<$`IotmR+y6 zCocPZugqmKkud?b%k7mI_HHG-&J8gAux<4dsFaKb3wBw&PWbZV!?w1Z%~;8a=I{y^ zfB9~wyxmper(p@XY5r6*%5YQ0^A7u&@qBgc$>hk<5oJ}MACWQ8?)_?&*58MQLUmYD zxPg`Cya!q4F#AC-q8k7UgCe)gAh~4|Fr}vx>io=ar@1@48LY$ViYf5{c{LJ>yk4z=P-bq`JJBE;pdOMK1TaK8?^9xuGoxV7^iI z`*SW0^-B7!y(b~C#-nw7k{h%AazCk;wCZAw2sR|p_ojE)J~WdLt9g5`@T8U4WUc1K zKv=pikUjkZy4SVzmw~k7D08bTL}d~2{s{81x%g_8U@jY^H7NfMt?YThUu^&ivu72M z5`yRpg`8iU{%8ch40}8o$Nloz2md*U*8xh=_M_Ayp80e_h6nHS;EqCICpYbda7cH? z61rr2@f{+3??kuscmT{l7`>S7i_jDA#@H6nv%Rl)#NHYXaW$0n*5U_ybzFJNiZE`& z&38gbU+#?G{Z(0+UrdC7E;S5#?447JRn6e7_6F0_zAc>MJsFWicT~gGu3AQPJzM3DvTDdDf@^y;r8!HnB0m5Vd*>g8MLbTSyj%w>;HaX0zsGfh z!M(jRPSlIhxhFo%Z=*5E$x2RbW3&#i0SgYTG(fbH;!56obl$bSGZmX>1M8_L=B=kZ zh8$APG9|GS4B^nhQDnlRa8UC6A&TRPMPpO_vZ7(h`;XUVI4c~_jnPMXHDwm3EDI;l0iy zvMA-v^%+q1RqRxA9o8l8Rz~6!jDnmPT|5RFo<-l^HP{5xJ$_?(qYt>yGw_2hYl@90 zTlBP@F{R^CrWDJ1XN5C<#0mcd_vMwEeW_V_9X{q^G>daRel*Kb8-tZM66TbLD}i)P-IlhC&7T|Z zh7N9Z>&u~W;;4ynTH}R)jgKP%5ok5vntRK5f*=wv2HK67~DB{({YIpWM;TBiK*1mzwuwv4) zfF>00z#`wRaJ~oan1idhU?nu9Fj9+9Sa?*dbhvu2f8=sJ>qCDIS-|!aF{O@5GjxI= zlgewzSN(Hu_7ULc6IA%2z4Pl(IA(CANvk?bqqEEfzZ@9VJofk*VU*5fz$jY|bU({`~|rAn6UA2}1Nsz3+Y#g9m7G2vBKCv)vxMXh)W0 z?l;lr9r9ooxZe4K4X*^r05;K8_Xe6PU~|^yZBNp@X>J=c$}12r@=d-s38_WO;;H<; zJC)4@qo9#I3}W%wM5~5ckuMr_3XJK7)rtTY^d$@LTp@~cpfnI^ftcyn z)?K;#w0E}O9;aD)8){K98ZkIyE=^Ns9gJcA%m8JfV~S3ldf6iyZ&VFh^jj$fq3AJT zz;>)d8S#!g()fa!)svLg;FyW_`d1`v+eb?g$B~|x4|&oPxP=-8H544-kxPb|mLc*_ zvc4amw)n2iT~(iOFj1ZNc7Jx8!QXin3oUpjI@ z??`rzc&(`u2Zn}$ym0i9cs&8C>+OCVE}!TYK`aMa!yp#xZjGlG$|d*Sb%;gdBR#V# zfp{{8_S?1vxrTL8Uy{66O%A%o z!*=;ovxPYGP1df*r?bu%C}PkkeM~S z8y41B+Wm?eLPnUlc^lIoi}S^g?)~~e!tkQ3o9s8Xza6ZPp=GtdGjT4`C&foMf2+h^ zTD`Ya=}!2Scn>ZVOjiu7WkUTWKwlh2Qv>i6WXgPb=l7)+=8f&G6_!s z;)}vYp=tEZ5EP5;t@CT|aUKf5YEl|Lr}!{ogY^nf`mGr`&(f z^bGy)nVz@E|9hq<^OFg6is?1v{+W*;iM!@N3iIG;fMv}K=I!)7%0`le9$Iwm zZL|T76DfCUJ04YHV0!p?3BSXSXqDe|`Qz22t*yd5*i3*&xcrO1yl%U zYx-)PDrT+g*@%5_OsRv!@7uPm>brme)`7jv7e09f6{HJ1N_+Fz~ZzGM>~8z3+YkWQ9E>v2PfG z-ox#8=$;Gd#tJyy#^W$f_u4*EiK%sO)?dJQ6>#B6$JSUL(%@)~7c`qU%1HCPLN9ws z<4GrBJ*b4f+X^?l0Rxi9^PEwZIm;Ww##PedHT@6uy-3*IIUn*T#grs)4MRRrHUt2o zs6JZp*)ATIEgx;kWDJs?0(_f3us7Xw5ZD2^)ai1~S>v4kEb+Y=`*d;K7JqJ)Wu1P7 zV>G@j3j!=xMNGdv&Qt5CYx$aT*B5o)RJ1^$Oo!mXlzb~7V?t3EOI|InREl%3xp@lu z`BO`7?jVlzPtKRX;P$4_Xil}r3i>FgPe1gW=P+9DbE@smfHNpsmlBA4K9W4^=d>}uC#xn zldApGxR~%Pk57IW%!h=eyzNWppXT?URx|g+NmJ>N=`Cdgh-)BX zpN!K5uo@spF03h-!_fBq!JF3aj3N+omu&g|j{BRoF1L3quJDd(eHXpoe`gmST!gcr zqvvZIz9=v1sX~4{OC;JF_qFEaR#YBzi;}!ZftlQ^q>pssX(5)oCAphu#c6+z+vD}S zd!PaIQ|#9|9p*GVIO6Zh#)d(|HxfvdC*1tHkx*)5iUkMVF(M3dSfBM@F7bYiD4i8x zAxW%lE)7Ye!*w;*Q>&2#Jz9;eO*##EljsIKwJonp}2A4gpRXp@ejaB`jM z9ff*n;B21x6jZKc+QZPP=t3Ssu^gWC1$VdkF_s{q?Es1ki-<_*2pxsYuK8kx`sTUo z=&6chzdw+%+~YQFlx{Qc1*@a|I%(>DW*i>ANaOE3pd=H2km+3TxwLchhHQ@o#}okG zSIcUh9r!hDJ;g-mkEZ^RtV6Y6_5LA!D#p@Mi+Xl1aPWNg?F{S0+S~keixG`q(5`hn z6qFRBhY;vNe;A=M6EcixgeZW$eY!V&+_-#uMag79%`7XE z2Hd)e<&ESmLmSOQpLq$A_ST)gEo##X@)TNn72ALqrcU> zY0dUJ7!HH{hHGzQx-<^eX4#Ir!qN=%IH>x?Qk7|)y#l9A8=((wDQ^U|d19;FzTBGR zw2#LYX~sbAV%KiKMfzy0WJO@N%>BLqpxb=)@OvqYw(^gylc3_1d~Cw+#we)X%I4xP z2+vXh$keq6Vu`f2HOM3yQ)N1hZ;U!ja;cYMDN2+Nz9}r_ZsB{*NLQk&^=vZ2C6va= zFi$92Nd3@W=?&65*qWM}!59EovemhvvgK$oyVJ9(v*xdWVS30ZA3Gp>A=(!?78GZP{!S^f{8Vjv5d?zJ7{%^Np|C z3O163kIE^iyh9aDw%^uZW;`MN4kdBjBbTKg7U53sH@&ONq-1$DAStuLUf6J|0$oJS z&JC7eXr&~Kv(YP4yZ%kZJ+`&vgGcC?FCeE!x(#R(o+kpLvM%?fC}*YTLrK;+3R1U|EP?FMHO0QAE+uKnJxp&b#0US6KMh4l zmEl1pP(1-iq3j#Y?5u=BebMwMwpv7AvWC~C3#!BK*=2XvVq?trOLbbstsSVYVg5wg zxn}V8Y=oGqK`}v(6C&1&n7Ot;$m2av_VTgEBX`*3wZvGz>EPEoS0{PO^WXiNTWI`U#Pt0ogqf)a4Rh7L_@6nJfHe5*ICp@;AYmN zJ>(yzSZasZ@yq@DQ5j@2N6!7!ovudpFsqLn1&ifH^u<Zy=oq@ZrdwrU(4#i6{3>CcMIvO$hLH>&TYEt;uo&gFSzG%iP1}Rsnb#}gsu_k z9B?xUU*L5QRJl~UK&BT_pR@@_ZQ8-n?O#VNbME>k&BYBoi%QyUG9PX-P4aW2;h{*f z=8JF~J9A{CZZ(bQ@(JjcxVJ8;%(KkAbKZo9B(p${R#=9!o@}2c z0Ptws-z?3Q$J;b6LT=-g>fd@_Gyx_6rEPJ(muu(NJ{QIc>2lt5zFa;(mZkF{OkBJB zWtqHzpYCcJC!Ir#e4SEQz79Fn+kiBD^EpfhV-rDVO?cebX0pj+BeK%Am2Z5A!Kde6x}vz<8y%7KUMei zY$ZprZ*t9@j)XVfWxvyX-SpLwi=1i)qHo%NowHWMLqkWze21rou4BmZrf%O}HfI3! z_v&^bPaV&=Bo!YE&&+bRY7&eaXQj02YFY?>k;_lnvKU<$Vt6ri`0pqV&$VOrdTZ*l zw1#AgY<#oM7q&sNQWZt%CdR)&hrtoATJ|J%M8+DvT{zX=Ipb0=Y5mvj;{W5ZO`AJB z@$&F7&&$s{G^z2S?EQN63w0e|%#+9XUHGdn;nQ{Rsq^R+`W(2T$6+;jt(;!GE@xJ( zyh_jGYTds*H-#T%>)~T&HHg%;0tjW%YSmjBTH`y>e0XuhJ z$NMxLeq^r5{I0Qea}7yI_!y?{f12y)chYt?n+Qy7>qEOD87<@r_ri;6AgmBAvL8C~ zsuitKEK2XG#(|MuKgcs0%WkuaVCu?>N?^?ozxz2sdzpjRH9FonMHRW+GXVs8xJz@y zgSR2!-nM&sn0t2&3CDkPKm}0Snmei$axyHspd{J+9>UtaI8gZ^lVV68`8Gb$HW zglVMqJk1pb(ZwFGun@#Vze7a!zZd=A32@Ra*@o~Ng#aOw10fUrr!1z8m-lZ3md4jV z_P#cB4E)+881qB>>X^S0g{KlC2~c@VnA_7_ZXC|nA)@O?HzaKujFAIws%miEvLz>~ z`P4qLoigQOFMrFTFOrhYoXnhi-v6I_p0GQgCN1ncB2#hKK4kMeR`0+4sr5_GO%HT zwa4D)+dt0u{yF?%_ozAFIiGnw_x;?<wrsUCQebZrlxEr6i#1P)nZ37VJ2zUi=({Ik7ExR6Fnq8 zE8Mj{Y-G@J7KuJR)ZypgIciyUw<@6b15x{~+h5~xZnCgfbj+n>)>ZYgn+#sDCN9l7 zl9g)UPXv49lg}J0%3!(V$3tjU3Xd(e*lw@FN|0@1{6jOFvhZ!&`2~(qDKzrS-f!Qi z<;~R9JlmBvT+;wrKTUnf@Gef8ArGQ9U2X~!B2-nK{}o3nh?K zCQR5;vchOJ@D8Orb;6yIstybcmaR58yeMvb71v-&88Bp}=9P5PK+j{x%soLkW zySF&BkRG|Qn*!w$C^4hw;EDN zVZHiuYnbRt&~4C7CFi>5{?lRi_}Ip_R)snb%b_gdm7=qU7mK;Y7qX6U?t;V-G@9G+ z*QzA$K?up##NOD;Tf&Do%z{yq4@oDsdp=cX9dQ+%V~mo#fO8H>%}7yR&>nGj^S;Q0 z?AEr4aqAj++%zSzp7w&7@=u8DB4rEtx#che6Sm4u{zE0&{WEg z%4`SWP0sPG89jRMZ{UrN9O8wciZJ6saeO#0J+>Xs6yJFSl!M+FN@>9WS}3xN4xy{k zLTuvw{V*O4VqI4P*(O{;Sd*#cf_Ue*?&0iOO~jJZd3)4vXX{AuVq8uce-?RTyub?& ziMfw6-gxJ9-hvZgBgwba{L~Hf@K`cs%`2~urLW#Qr6`WS_GUMB?*7dkLP2vjuMNl9VZcU_6pv8DfGL2)KIR9NpyoMCm4Wjl#|136dz zMPduMAEeLZjd;V2R_R8At4i-ro@TUX7SmjMJ&mnDN$Ntx;kN1jBpa74gw#O0m6fFVvfx!KLp!gU^P^7))wW6r5@!Ox&_ohM zXDzH}e%*tt$$gx~wYs?aHfo}(&H;H^LumV~1+56@$@;=0YpjAzsW#?JaJ-GJdOj=} zs+hfPUjaf3s+X$<#@Rj4?}d?%Ww|^NJJI|wH)(3#6)ov|o%j6!!zc%?{wz%`1%xMJ zvg5K5G(!(tc{>yZX)sZW(+xdDco+Ei?-cRQO}8kJd}tfPZx`0y73U1LLm#xDR}jZBaf6xBG4uPT zBWF*<@E95~TMseXJU~CPSA8=!)4m+V@<<6DW)f88|TU{>{@93rAiJCcPkj;&*1w=8k!|2iDANura*+$sqmiT>&G*A@_L~*>hK~ zK8pNU-?)5o`LR_np2SV=b6gTRF^lB<)*&0c&1vtOzo=ARB?cGPhWN-r?(okxTDb8Mvv3)e$;dBL+ z4LpaJa!|G;g-A*=iR{{_g@s;3#{H-VosVgotj!t&u@WC?Vm_rJ1b4H<d9rR>=CA7d*&Bs`teFrbkk7X zcLSv8Cn-A{NuzLk6ou~dYc$*+?7X$?1PQMt`_j?1S{a=-o=ktOAgrXJ?dF2!7Q=CR0$v0>?m0}d!SsU}*nMQdV_bH}YAcag^ zGlB*fGQFzk=i)nOh>jlh?2-3N+8ifEE>xK0z;Qa>^SFt7SfX7DpC|_cEF?NSc3cRj zxc12^d#}z|`DV24T>pe@@(w7B0CnbTM7KTQB{DcY2g2IWh=-V!L5Llczbxgwjl>#tNKt5`T1v=j~~I z5Y9M7gZt}E9gim59Jg|?;%!TEllGpP*dXCNDGbY0N`VE}z9Wz` zP~RFt@~`Sjg5%tsrYfeLG4V}+qS|8yjaZS#6c)RV`?h|VW<{K8i^cj9eXjqAS0jYAw(a+lNvL!71 zeeU~2M;WzCljt;z9e(I0Rq-^BzJz~riOhc2Mf2J$Ne69wmk-fj9!8X&uBtF;-kzY= zbaGB(;n=(&g!R;cDFtNM{ToPj?{`QB%osm|WJDnkZy_RJ8 z^@i7$VMp0XPUGh)Dq{DF-M#yl`UUcBu46Cv4vS!E6FZLj0x-epS%_Dq?sClD$MyPl zaXE!KwggQPWcKV*R#}mUq^LOyKp?k9GiG&x7jh(WQ)j(TR(&W+Imt$0dy33PbdU57 zw{OpQK$qwfuK{;_M;z^^T!wuQ-{f`W6TvC++jrj4)U#%cmKw7bqpkl~asdD{_5;Ff zSjy_J1v*BkSwB2wM~c{pC9VTOzh2~RmY`mzHe)P_Q5kV({~ zq0e@9`f077l(nWOS=BB$tQI|*lQPzu`m9?;B~O%MDy*339HvQ38g1E% z<$HXv%>)BR-Cs}~vbG2E8GU!ss|c)Fm(KYQe$KP(9Qm`A^`otm`&!G$^?{l)SfYZD-1HbndbINSHy^f}XPsgq80?x< zImP4jNpX*J+k_KGuNceJ7Mq1JOqR)gv_}Hy5vG$E33{BxF)Yl3du^&hki8}!g^;FT$zVlWNZ=`9I2`z0>A|uEBNwG&9ML>O?8Bl+! z&`-kb1$7D_w+Y&I;l3@X@?@nZ+o>(hSWfk}GK;2ujUJjjnZH>I{!yGw^$F|Ips4Jz zH=m76m{9oI;m+sOH;!|6B8Bup^^x~*5 zcK+)GP+&|!nzn;RQ1*AvPNIe!PABK$i^^8}sCe&9CZ)X$#Qig>l8jpDkn;bnn-ce1 z5zj>v??z0lCS_AIZ(CEGtWf8MJ4<}YnAs)h@LKYk*>g{8>hA2TnK)pk-Pm?+sYh$T z*7mme1a(P^vN^WDd*ns>jj%q4S0dN-rM9R_NcuQ`;lfxr_2FxBR;51KK^2V2L0-9E0Gnlv_NBF17-PD(U|J3fS?5$Vr?Dh9LUvTNw!VX-1$EmClfRMDg zGrCjGBglg<_(QvAk~>7MP9295DFW8M>>YneMJOVXh(zgd;WHV8w^L^0J@;KRcW7n7 z<&ZWZq}A7$1J(+J?}x|xXTm2XPIVV{r^?6l0czx(>M_*u9?Z*W<>aq0DUoGhy*cby zSY)yrHTzm4r>)M=^&5m?yWH0@H0?mgX%d87F^Ytl{+1hK>gDqFGH(9+R!h3LJ*gZD zZA$@TbxzSj!P{Ufb%~g!CGNXiTRGf98JT%k2p!+=)IE`@+z(jo5N_Y?cRFYm!`@$o zWUOpGeeUy#$56>L*k&0P{FQLAWyDtTO29$WQzm#~LlSw;g4EGbzKKkE5bBq1|T{MS2 zIX;d_V^{jGz+4DOn)MQA0yOV)KzL2$iEL->@Vf93&#h|l@JNydlRQR1Cej;%;k?!( zJi6Jum-`PzoY?<@B2KBvi_Y?&inyr(-^9`9ujJ_hU;N=0d*hms-U2YcB$Ik8{qX1` zw`D1ewu9JztOIzHl*>uH8almnt--jt298_QC)Hk?H?POIv$?hm=i7I>!Ba%n5W|Z^ z*5M_H%wZgEH7updZ|8fbJBI9g)7e915qPK!!=!H1Z_Acb9~=#OVW#UL;+py=V!x~2ZoZ@& zoH?su_P&9suy=nkFQC!)8pz28WxjY~P8EPCP6!bjNEeIv6CMrF^BFfk_qT=OAgmg- z1kAsRg)-V-6KZiVpo)c?&M7J?4~cPYj$==gGA*xok9Xas1fI5?d7FVmd!6(tY8&QqAxLkE zk1~H@7h6ek%xW}{ae#+Y)7;KljCXKhG*q*`MLH!FtFR7^kJAjAOHi$|@75jjx(^LG z!+0l7B<-brJ8l<0j?*SjSkrLTUyQ50&JBPHk}cuEx2#EDx>n2Zdb>q}^GH5Ty_OWK zvm%#0eCXDbvk!SwX*q6f7qtc>_H=kv+vz(L_?_iB+gCUPEN^IKmdR*fcyIfnhduRV zY(Ts{vXZ>Hcg0%UXwhhCR%!8AZh+b4J7IdnMWfG}fbJcjSofv=PXaTuzX{B4!bLEY z5nwVhlC#FKUo)KUql8WX@+8rd6vFx~gNIjl zZGmUrO5nIC#Pn2+tbD#Rpk?44UrBvTH@WKPN0z=xR*fYwTOp<-G--4{!Ro0nfR=vB z`#DLO*$V5=8ge6t=jAPhCWUFmUZ8}kUxsNgp11rh<@BKR>7IVdP{610(wtjSq4T9ny4TPg+4{up zXKZZ(HjC8Ed=Rv%qa*R~#)LoH5U7@aX(HM;0Dc}oM)K{w^YwU`k<*Aae_#k{P)>fE zboqCMAELeozRaZB!c@hn>L#9nrJ z=RlZ%Z5ZS-;pHe)>=h&T8}Vq1?wfAyc(iMVSC2%SDH6G-KoH0I7n6d=+WtZJT>dz1 zHDJcL*6if4_>`nghBhwh+Alvq-V}4CRZpyc>Td_8DkzTk5qIfX}!xJU8Q*cqGc&$v?4gS>C!0?BUeXH`Bj!{ zcUpol5i<^64YPrx3&C54f{|JYj@4BC3`St_jQ$z@*H2AI@J+l>9<=%ClIbk#?UA&I z;raLfZ4v#-+Uu5~?9XaLhw@(FAUX3^UY*GEsC2lGgXu__d#F&575W3 z?Z;q*p^DiyqCoU&_zmrxbuV8rMk)-hjTTvhTRX-Q=vjR&2m=}qGOjdiGDxz-VSVg6 zoH0j1)(Nu{+MLuIbK8T=iyag0^Kq}XA*O!(ix9Qb1^S2@OcDhpHnJpYjcxsHi2Eaw zPX2)60<9^Ein)ysgp#8SEZdNdk~iCeyqITO$=iU9!Ry!k`l{}fsW;O^2Ji{Jb$1s~ zi@#yPV$rycZ|S?%@WG2Ii}+H~LGMV3s7^-lgTo9N5sdYI66?cJHnZf2@l(<8?|5*s$w(o)QFxG1FUf?u z{sN|e{1C>IQD;rf(|h?bvnCr3e($saq#>+*T`OLv!g6Y^?fuBAimvwu-E&;b9;P)j&q1N6ooSC=2Io#|r zn%*=%@Q=;>JNXPLWIoW3V~~7Wt`=db;P%fdHsGf)sjy8M-vhj@gI)?F4rR@Llg;UHUouOkK;OoiEAfQLGHq(_+w1{=1|#m zSm45PdU{pZh}*z>AW$tIKSiI;ig8iVi#g&a4?OtJ1EZY!TcfZ54?Kc+f)su=PZ_); zZn&#fpZJjOd2-ywMX!l?M_N}zWRkfzt{+FwXe+({TykjtWOAGB(u&biRL~bai{hJ4 z8x%UmU6Y+w+xBbJDco|xV>zHLY7h3|_tBKLwC3Zi*OsqlbedGi-3MN7crF@LM4Ne7 zSEZ%WKc#Z~WighyJ~@(uZ1vVM&-xs;?$UnJL$%_M?ik8rro+iz)xA4g`V)R1>3u8w z7NOicsFOLTUrk+CHm$eKY(P}aE4NFP}sCr-@h5)Q$OYsNh?5Lar7; zSII}cE!@V}2OTYL+`>`iMTg2y-;m4#hF+{#T)&DX1)KknEtkJAxsKsYD64|y=WDwvq}>v@7R!zs3Eqy+8x?iSReHO#UW0w z*$AW233p=f37Q#u`|vR|CEkM^D$i8(f$i3Iu9(NG2b}|>!A%}(G(e^RLM=-i=eAr^ zZz*8O$a$|T7!C?vSxyEKb}snZNr9UC29Wp1YoH&iPiLZR4>XN6d#MA7xzjO5d3I7I z5Sl;LbP791-apiI<#Hu*2Ja~ApBcYd>(U3>F(S4o{*B_f2ctse_$o~$kEEZayQ*td zAlnRtLPs}OB`E6?r$t|E@#3(7m9xKLg=4n!Fl!whc7Lv03)Dp2km*i&Y%K|tx+s9# z7rI&l_=HxxV(uhx-}NA-i~9nSC|{_;9LaKHT37TZ7Utt#Y@1P3Ae)cWr7#G9ks3~Y zl?t3l)x36x^o2>u=YUg?r61`wZ}=8P{|t;YdrGNpeg_Aqtn*;TOXn3n)=aYvq;0!Dd*tm&A=KZ*rf^C~Y%Fyqvy!HATK?iq zVDvB0&{{Li{*f+yO~j^6AJs}Hk6hG!Q&r7d9P6d0#&1k~qp3W}NTA=ss1Sl!=rJLX zBm4R-=u(Vh75`n)7~TLnOanV_uW<8>oQXAxMpRR{CAgWQ3I0SfmMcMYzmKSG==!9h zbMLZ&m~vrz@iWSxggH>~ed#~Rp>ahHaP0jghx3V$&ZWFF(PHfna@b}ISRR1SLw9~F z;ECBzdacg7vAp;AJIhh0?`7wYPa>xcf;?41HAU8(Ai!Z<>pkhUw?3$q6tzdxP*FI? z#HgQdeiqIhMvkr6tUJ5#qECKme&k%C-Wo9rlDzQl{)Hf(4dbs=2SOR6nDM(fZ)69=ibx5{10^FVRDa;Z zg>wdkNOjsm|w^xWqKRG4YF)^`o;NXbElIx>bjHPyx*DsH;UH}yT3q3_=_Kw zV}96<3)Q(XxH1T{PFjp)4hTDn52x$>>qY+lUnruE>raXp`HLcQmiQtfe9KdQ!-&df z7_s}ZkgBzwrp14q_f7pQmq$qrROd&m0HUzsJxcn9HAr;O>KMChgr;fImaVh@s=`+)P- zwnM|WjL;tji2%QU2y70<-m@lI2NRLJ=l27Ydw-#-^wg{Wwl2~*nl3$P;4y}fw*hJH z7+1wQ*Uma~1SU3%Ms`Gje1IhA<68nnZr7(Ckmy&KyFKs&wHy`EVLy3%J2J!mUg=K# z2d&@zKec{1XIekL2tnN-<)ekx@d8dVuj!1O(Kiv%JqyIB^$mRgP3vnGdze9m%#KrwH7#6NXi(A0l7P7yv$tYJ2kFz_fTed|*nD5Pm? z`JIWEq`R1rQO`iPoxf#Usj*i>kBEVjE_+hDAn`gbwmnby*0FQBf5!2khR?#q%?-&5 zfznM*ibaN%*`z{qCBx^cc%M7YQS#K&H68;a4W9d86P`eG-t!rYSNeI#*+ELcNQNo+ za$cXLXHQ!NVW&gmXDDIQy+0&7E??r#cY$6K(~3RRK>3W4@sFE<7a}A#tx(h#jG%As zKMugT1n0Jx-VV}VrCTu3b;-x~I&|A}rtqn{oHR-ZZzuQjn+f@v+*ig=1as|$9u3#^ zRmvRmlz>J#=fSDi_IZ@9%9ZUDwA#FiO2b*f3sk**(O?e5p>G8AN1aP{f-p7=m_K_3 z{qVfxx4R>CS&QzMSdEQ+8DM*yTunlWxptZ-Bm zobqfoMQ0%IZ<0&-oTC1;#R3{UOy`;K4(sy0xmg!1GE1JcWXL?JA z@>{DE?cQaS%QD0RuoAl_gPT43bs_HMl*eLR@3S5;s_*BQQ;p1?_lfjK#KIa)CyrqE zN~^%DW}R}^@#<}U{?jmYEZFzOZ`=|g@t^d7U;m9B@csWl54dxt2gDQzl!JS%hBtyh z{#UkX??Cw+!z9E1-zAHo#B|Z^ynh!3Zl8$)`G1H4qrhK?%nlhPZ-$g)-1T+7X?ADH z_Qrl}x@lWSO7mZskmRdX0X0sn;}hO}=qgpb`cH-{z4?D3|1l%#b2jTRm4;+c^+PgCUAS{ZSXE?_6LhQWAXDJUaGj&#QDZWJA_>$~-n}Xd&VmnFMpc zgDq`AqnM9$W!Y6X7-h#cYcqr5rH=-{NSHk7$QQfv?@TZ8d!po~D(*{K^vyU@N|%Y? z6xdK~a6p4-#j*1H8%50-74FwY<@U%uKr&CE?uyF66>@lb|5ow$QVy5B`|py!E8R-O z5h+*5R4Aeae-LV)qPgQhJX0`nrENExlI}@^algz*#ngVgZO#YPJdr#+b^c=DVGW1| zu?ax4*}ukrx4a_ZM5MI=G)8UhgFf;`LS9hj{4=_3%>q}keN>rhic(l-UvCNwwfmxC z>*D$N2G91L^9}A?->=KBZbrbZ;*ojHF@p}#wiRM~AZQ8~Ar~HeX{|pC9`#5MAf$G# z=|hY~9CTEaa$lKPxy8pIYBPGR@mpznwz#&%VCmj`P(M<4$hs}N*7}vFq<*v1rzRPGE+2IEHf}9Bl)V2NS|t z;Mi5IneFGE%e0S`BQk_*c*xPBg<9lAX z^TKgMT^5duK7xe(J1^_Dix*4TPgK|cmvqnh4AsTZ!G3c_QtMgDnGk<$Fl{?cx!Nra z@=;5*G<0Ohm8U88k<2)XA7F7U@V_~ED3%xWtYWvV$!SCG`ro{)Z_m7}qGw*#m?7RC zl64;xsY99e8RB=Fu;EQrOyaz-0S3HJ6BFu;vH1)BBO`~>NZ&f+9fV8p?T5t9f zuY}}~k>MB6bTE!ShE&hpl+6DOlY)k@)gXVPb;`fdIyE_R;KQ_LN_nw$acDyLwV7gh z0jTE1Fl$AvDNo^Fj@A@=FCTNt)K`1-zO+u`fp47fqL?V{eAa}y))m&r&pO?J6Isk1 zXCZFe!uYTeol9sdKs=*OQ`?VBBZVpXkk9(SWAdh+ERqOYsH|>(SL=y>SL^ivYCT}e z%XfWD`MgzY>IH-~Xg(vr&t{ES zr4G|^F02qY1m9{$QEr-O%6Qju(QiLh{VIC+Px2OHtIl+YY6qMBW;-U}{LRF=|Cfo? zn2--Jv1$M&R)I=LMl$O~mS@agcQXWY<^IOqgtb8b)Vx){BRnxvgC;6x|x&@kY)>&j;})2e8NFx)`T)niNShyOv* z@vo9=5)Vg5UecQI zzrhWK;&sA8#w$9iU2LW4Yy7IylizYr#zgTvW{R?V`!}9u?}v)52WIgdin&3ZLa&7I z2PTjEJ$#q-=8YOSB|O#=m9v$bX9IuWrx9hwRYY7F>|p^Tkgqh0csRI&HE#3FbwM;WgC8GDZY7e0Q$0{@uA+T=AQ8b^oVxRn_5`P2KG; z->Ot+?G@u4iGbc%%KcQ|=oo-9*(1|K6YZKv-S=wwIEO&oIg&KCe%5WkZ~fEHT6E@TJrzAY17`9B{gBX=84AtCyET%R5Z`>% zm|$ZtqNA>vqC*ijU}Q_8_eCqS4}E$R{;+k3W8(o^`DuzRT>AS8RN;egfgAINYLf2) z&iTkAgYSHwAP?j6&!fJ5zN|7QAB*|vUd2lJu3(1bM!unrrA96hylg29G+GW+a;OHDffIlQu0g=^is4BQcY@S-tA%i z)IC>H_ha6NB97;*-WE&_suvx&jU){_G(99Q=RN-HLb7~eA;QRSP-WDs!M=mn9req+ zMIZ%|3%#XpDEmu&`>z*k$UG zcp4U?U_hl;je`=J1WSc{Q#UStXRKjpCnIer5s)$+yeBWAMS9_~NW2`Ls-|%I%@!(Z z8&L;MKOiY6rv44Gj#gkzRmP|C=v`(|USf?Vy@^%jK1Zc#|GhkiBxuM{8W*uqw)ZKb zTB(#-a2R#sowLdi(DMmRK;5x*&n-gnxQO#z>yCsr=}A#MFuRNsr}}!Okq{wege4mBBIq?w z2zC6vIA6fL%kmeFsclh>*Qw$0f$zQS@gf-*m{asD9v-Hv?GzoQv9NZz+ncpXr8`nH zDM2%;t-H27oeJveA_Q60(-tjRZA5TG9nhoMuRh+OE1xH~60s|}ykLQe=##?J)ENwo z5EAAR-gBEM5^N}A%sKspLnD`t~8C5kghaWbgO`Ev$U=mwWPV*Xb=x%Ygda;VPFNHBU8- zp331v8K+kIhg=nxf;gKWeR0+H$XbDbFqD^Ir)(<8LJtLko{7s=G%JZ`oz&YiSBsp` znk7>w=hN{YrV+ix5Rdy8g(+6hm97+2#qLqO&NTz0A8$o5z5AGUv_-U;O!YCQ*Gt%y zDr;?bG&lIQ9gq+c>0Rm&&=jxxX4Tb$>uTJBgG48NoauIIpyp`DWS_~2yWBKh#>bpP zTPJJZjp*wpnF%qeeG!)9w|vCjqf-?&RX)yqUbv=|xrb&qa!`wyR;CL5_2@ zJn9~E4*_e~%Was}JGS-RxjVrly;>Kr*I+F`>iix3i`XeCs%5%Flc;oNaxXA0&&Ktd z?tCCdUYT7XsuwmjLDVjm|BBSU<=n}NLmG={`^pd$wIwhz&GS?SOHpq^c3AmBug1u) zj}#`*n}%Mhn>9`ks2zjlx6FeR(I;og-ry~g(JZXB}8TfERyR{ zy-LuJ@gMjx!$1%~R&OW+y`;}SrlYYZ$fL_peXH%y9mL(lo(gmx-8<|XeI{Sqdg}i>g zAuustAO}atw-V;_hgvW06vC0Q1im>e83_))3HLo^`19nMM+M7GQ@qG}bkQuOSCD}} zQ7)=l=Mk>yMz8#dz8`n$U9U`TqFA4*`=13<=e6i1)woYzwj$3=T?LM{UPS?ZR+-~{Z-5UZ8HmGW-bj8^Dog(5isFs>on_$kWtm9 zmYvJ<#rF_VfAX*JZGh7Kzd^(J&)42PpVYZ@_M7vOC9D`XU5laEn_Tt*kJOEo#N0Z> zX`k0HfWKJ2YNaz_acg7?p6_2mO-Fb$67~y;1yeJvw_h&kxi&Kq_KbyC#an^tTNyya z&Z||`zgRNFarH0|j#8Gdw9~iXF`idFKo^)6|OlPa{>L%U9Q`aQN;#P&|Z4I3q z@5+c{UzT*V&TaMG;-i#T4KU<;yg}i>{6hmR8q?}vlrV_!nEsGIF{<*DId*)0WCsC= zq92{0lCIE1$%q*9ex0v_le%#QQc2QTcbb|5VdHuG+{{=#LQ&b1)4Ml`mpTCjo(0L| zh#Cp|SS9%>#$OY19r>}`m-#EKxG~HH#$O z+wKx%Bm`B)G6T8!2(=sP`Vw)Jrg;;Ki?5v1F$Ro&gN!m7+9j1(x*1jh{#n`)!oO~H z#@}xB+{`~h5~QrUmP50cg*nQoqbd7$9^*I=JLd3k+(R6D7*MO#J=syCsE2;UM^}9M z+Ph`>_N3MluxHzBnt`{pO+C~_DHCgJc3x|(CvLcpqtw#U=0z0> zox0#+bIPOSu=sg!CE7Pi-Dgufs`p2%vzA|U2=et45>)Y(!a;G2*F)yvxVJaA^Udn( z#z0?vBwHk~7m}3mf-x>Qys)QlPCbj*sJ}|L!(p7Sa~x3NV6(33TdibzeJ|R;bR}|s zkv0%cfO!E4*wI5g_j177Nm0CBq^`Yn6jm(Jl|Ws}rC7ZpxX3Lszg>G0x196>Ol-RB z{5QiG;gp25g9Ekz(PeUx*H6D}25&vMIPW&ZtA!2hn5wt3fM5K2C2m=7@A^%Z2hFYZ zgc}0TpqoaAs4pEFIu$k6%*VHUdCElVd85s>8Iie1A2s&@s*wB|Sz7jT9d6dp@ zt7Z(b+%2x>@6Vy-rYWmj{%AO87P*@6=Cq6Z(aCAfGW?#{v7>>;b?&!_YqTm{O+Ah+ z3q~EgkH~whIK9)X8iex@<@(EI?&lK6N$-k?k#%vi-9b){t^lLq z&oGX=TH2D12(ABYF%roTNu_AvNsz8ZMDtohY`*biUv?;g9GX^eB}0#(=zSn(Og-lp zSLTv?_F9gh(V%?mi);loVfJBE3;G#m-P18SjgM2C4!+$f6)@%#amC$AJeO=OL@^gQ z=^UO<>8w(VICUjb5-l`XB>3}KdDj6PXw*9p&Q?x%Vq3G&GeJU4!HzN+kM%cOCmQ|bM-w}#eE7Kg088rM_EzFehc^L19ICS z=3={t+d`5+N+u~J==dxk-qJ7n6%xv`&XHtWa5-hfG1|1xg_qzKX5Bj=9Li(+z7f6G z#>UnVPCF-3E~$kVv`DwL5;lPxJS~uiwv{~o1p>$G6!oUJEY8VY{AfI0a`aFtRZb)c;Js)uF@@gjUvwpBu ztkgTYUAD%>N0)$&};~cv^;k~s2zvoTbU+QCyldsPCib-3Ia2@)MzZ|qbyOc2N zfXc3sY!Y$nNlJ|oEAul4scHu2faXTH*Dpt zo#5ueJhLTiR(xo2UhodC?ppwKtEHh=cCaa2xMZfgiZaq+&hsq&Go(c9r;oP#XXhu zMIIF2p63`p59_23?YZbE$`dVoH)~;q7S(+pKp=Dp_^;_Zt#_4+%nJot(8@7V%&^e5_yr(Mo(x? zxd=&vL}0wW0-(=zJrvZ7ZK#khrz0GBJ8?VI(FMw-diAIS6bTK1=7@#*z#mt4eZ{3P zdl)jfM9MNX=@-9x3wkG)z#na(Rvx$eO+n|gU1*z7WK>f38@rzCESs%j76@T6H_mcU@>O&@v1L~|Jw;0$(JlFMSx%7(19;%;!I&NPHlnGhHA zyzhUxGW|@bpg`qxAX2Ich-BH;_j|qm`Ye=1?|Uc&)knNbO5WEw;n-ybF<;A^Jn;=VBu4IZu2;zn%CM zD=$B%nL&QGnq*y99)&GkX;myCC`1+{d|U<+QUN7G1u~P)#^ z-sK-Q4S_Dq=)*U{^o|_0Xly#2t2O1x{=z;8huQeHc}WOmfX;rdryt-W{?w*h_Hlu8IQ1o; zoMzc5qpP6W#h!VT_OC{L{y^yW?lEc&;TM@<_hg+;9TG+()s4L5r$x$_L(AC@v-mVU zaWYiX5wf?$gbHYZpFIBK(%Db$@Yhey8i|{Qa4y1SsXRx7e?M_jU4Vz`V41gAy|R%h zj%UeY{*m>?Z=>JZRqRjCic?q0XwyQqa7`~kHZND4hg>W!+~^i0q0py46&$k zAl&+ndK2*-_MtT?QWAMQZcX8pJCZwb)no?VWMO&dIvP~-fUKH?oLe8|j9M2L%bB>c z9{L7(ZqGCcX>BO0x4_h$tWKQhclY*~*CB;-gS^ZQ`cdRyPJ?I09}%tRGMy zC?@({X@RglW#qlvkcTU54x0Csc*rS%vhBLMu*V8V#y1fAS4>2eelFo5hLz8&--5hG zqey^7T-+R_gd_kdbw6%K<)H+2UQdmQ65nS#(LxIKJ)m0%{f@nb$;g^@!~>vLp+7Za zj<;N6j{2e)o59CAmTKgur;LSI)`Xs=mv#Q)6AjJ*=3JCQvJOvsJm#QoF9&)l%0BTw z6Z2!fs$A597lzAYA)s^p4!d&mTF=F&oEdg^-*VD~GrUS6JM_7wT+sY7CFoddN65tg zfOYl>mV;V*D~Cs%=UJaNLo`4wIsb)PE`zpo!070uw6^9K??Hi~12QDT%i0KAB&3U-Jp+aXUeqoEqWlDW0OloIv`}DTx99+ z=iI}^9}WP`qS~9Q#=sGi?x|6 z7nFJM=6Z^(*XPy3AIq*Ue#o36ORRoP?z1HArazD~ zz8tY`pwC=7`a;c(L~y;AZA73)me2JE{qS*yxnQlL2kP5j+NVv$Y1!FCH!TMDOKjgA zSd{?&jIbVBK^{3}<b;0xe;3HyduH#WV)>_St#)lU6>sJXbGNViEmlF*m6 z*p=fD#&A`kO)28-WM7TEbiT9s;NAdzG!5P6}Ruhnls~|j@b9_)G{xY*ut>P~f^hEIAP*8!B zEAeZxtyr>DttaNk?tEp?zO4Ruc zLMKO})r`shsG8+}V2(wfQ{P#2w;RK}Vc2mpza+s}p1gTEJ$J)!JFzhovO{8QVegT<{#5Fs4UfFeLk!HMA?h~Sj$UCuyWT?REAHW=L>#CefWJx7;G+@vIKfZDuvSRC z1(Rv#j4kJA*)CSnRDp~|jTmnKXOMt@&BmBxfA&y%&LuiLn{Pgi{5100aj99@(-_t8 z8i$T*5@29NfPpbp%#3ovyY_pO*8eBWw9Ozco{+2u28H;enn8cxSA^Fhn;u+MA0Tdf zoMo+OK^jTNCqO$BIE8Xg6sV4hk!VpVR{@;1v1M34jxKwI?*_E+l0oTzxfj}>*+G`O ztQ=lC?II5!w(d^;@eRZ0ED+p2V*3F6dpP8EIc7Y3NY(8{Zn?f?blk?a=Nesp6Q=0e z53cWqF}cDfQ*G%@#R>2OFd__=4_LCW`%{1M>bpDs-_N!9zo8>W5CPK|7$0o7b#Ne9 zN`3fvDE{I<{RS{8d2^hMd8(dqz9%*^U#1^T)yfg56uGV5zFj9?A!YxBJQu6r4|NWZzz zD|2Ckwqwa`Z5IL2_r0)!8VX%1RA6I~Hw?Z_oV9ww1_*&2gwH6@DIT!SK@n%S?~wchvZ{y zhnU3xG@H2>NoS8y_}aqFy)h}>!`2rJ+EMW7#!RWnlKSsphk4M;I*5#S0iax*b)7*- zlm6(-Dx7CEzNVyF88HNfo{J1U-6LSVCXfvvO;mP z;Rub&WY)WI%}Wwx`>MQyHARyj?KwIE?US$Xscg@v1RQF;@5KdvYIb&68-u8Lu8XA* z*-|FunnW}qxZXVuDgRDMNdS61y{bPAakR zA&&P2LxTtJ6$CMLMaB|+X@QZ}U2$=76}^uW5Vqrk}}OtD*hT6eylLtu?m)88h-uID!3i+kgJ!TIEE*E(W$b%JlR@gPJ|IP+VcDclb5j@7<+gtr6HoV;XWPFePDm^cPO z;_pGSSEjKNdD3`iGk(8>UliYV`C~^&NL-y06w(XUI0gwxH$^v$s^a|xvEoNzSn2}M zEC(xo)S~pySsL9&9T_ZRl_|-#SGnq`@Eb;kk&rjOemRQG3lU9$ReV?S1w}@Y>e?Qy zwnW@ET3z`F4`ZJXVS^irc_A%1sV;m(>j8K($Hc%JtRol71N}!todan!dRK9&F&-dE zyY<>zNi9h?QHljdmJ7L`H44re#U|8a`Y$DW1Px`#4{~MsUCUk(Z=uTT zlJ#Wq_IHNlFWf01%x3pD4^OBG(K^v37&Rfis6H{tOr7h{A;*kR>q|SlO_S+ibW?Td zAX{WAq-Ol38l{tzU-$?)`S;0qZ%>@VG>_TvQTQzM>3q%Md*pr5LzCBg>@o8K#~2`= z@dWLvu{oO1B|3u}QJSj1gTtGAI%?hqotK;2fXU`J7&o4ltu~aG=rtuPe}!1<<+zU% z6K-|`R=r%RWesbhb#Z7)%&bJOW%dGZL3j=vHtvKU@0H{3PZoDUSX8tfI%yl8UwZG5 zdHg7g&UcWvNBsUX4luk4$GECK)Ml`ckIJ4+g|9w0$qMdOM9GvWM>fH?eMgTD^c7>?-oq#Ut22NliG+bEaf4#uD#bIK~OI&M$|rYuq~ z&?nMcD9f8l-*_D=Gg4|%@RcB*-uuwqv7Z*57FLuVV9z-y{tlqm1Y|qaVmIWI!yztd z%Fv5NB%v9AF!iSsWO>!ZC*>r2n#SR*ozQOv0>&_AhfhLnQ)v%oOu}0dU0fGy#l_fDm|M^qDpwb_dFVl^xAW0L}KN?!&#BN<5zsVO+U zq~!*rp8rG9q<1CZT3+hb!QQm zb@Ln@Eels+P1u9aIiMm-o;#bfWaFDZWI5Di!L@_RvkakLZ423tBLC4I)|UWFjPgZ?pwDqQDtjRBI&~uPQQBNehvAa zXj0?0v<5+5(OUe&{dY8&J}Gu_@^OJtl4RzI?X$;9ionF`XG_=%3mO`b;s_!64ts4I z8W3Lv3MCr;1IEn7cVxc(iDM=U?$-pR`$P-|`LEIIXJdwWN=#(K=FDkOGQU7?;56|a ze!Q|ls6HkxC_(k-BqCsrMXtQ)>l&cc!*xFO)IZ3+jox!ytx->7I-?WQKWc(oK692T zzOifIcS?O^)oYbklx{E|NZ>?C5k-B?X95KUC09bcgY4IXAR~*t$XPl*ad(e`ujkIL z{(2O%%XIr$4day!XID%iixG5t785w|grbQqE-I(Y{VIRqAVOs;EjnH>r@@ux&E_p0 z&t5{&lT`gUXE@@;4mP?dR*)ZU(F(Ciq0c&S1z$0KS~ICO75otby^)QXqn?3cFsmjM zWvN7%TsTX?9j9fV(u3hErJKAWuU6iBXLgE;i0$Rt+`T4xBWBKc?16OoZ?G$HNVrmBLYulg!% z-hg*u2a3CCEm+nIgs0$M=Qvs5PubT?D`e&U_cc2;pu`uMoa{=dPj6qmUUv7QqRJm3 zy-yI?FAziVRoNCz(7K*-Goq$kJ0WF>Kg-jICgI2Pgi_Fiefrm|MhS$ubh z;WWTvbvlkKz%WUZ5~$;mzH>F{TL?+6OX&$xZ;)nbSvWk~y~8)YUa%cA*VDcU4Lyy z;i&7kU5&0F;$N6%Z_vVfWCv}LS|s>4xRTDC{YM;TP4=dx22?J}zR@;S$A_T4{4f+m zT?yfhY)VaEEUj1M$$D&dAW5xjN-jO3e?Kd3kAAHe^tnY1hquGlRa)pC@^0+udgMEH z?uWd`!hgK9IhVi%j{6!q)6;cY+|hg_iC_*BKZ$O_zBzG#-tEl_p!ZA)fvvHy@Jd^a zA5Y<4N8)56oEJ~ah_ecvRh-Krq4Y+A9gY z5{`~>kyM_~MpC=ZCWec+NqKR@iVG+AbhNA#owLlu?kZHtk~75GHVCK04PE>y zvKpZh<=v|La$-{7G*Tr|?^0mfLwInXF@d)xUw@+2ZK~N#P*}REHG|C*G#jd8{82@D zSo)fpUrTsCE$!1yd^$A-U%+S|5Z?hbGIXRwd`O`XYHJ`a)Y9>AJ_aVqCoX89PBb3p zPvI04U#02>?uhfa>Ks9lD1rFBTfo`Y^((SJZ*PT%MLAuv`a7p*g*4(=4Zq)srknRt z-BPO#(aEj(XsDVz{VQ!-POCOQ-;7{2sQ-w+k6W>;LI!tA1fh-s-ynADJtN^WP_Tjj z4Ptxe&v>X{cm66%DoUv$LDsjSzC$uI+t3_M(})Flx5~WYXjy|HzP8EA+vekstwwY` z)UN={fjema1=erJd%&^L4(wEaghPbkdxx z^0q0^xX`8a>DtbEVnqlK>7!5Y?aJlHT+2Tj$ks55-lv%v&eIyn6VcWo6%>r3W4i4~ zOq@wI(;=;`^v+!~cfVKKLpHtFx}F4z`vlOPavJpwkPyacjx}R~-r<*ST@kVGmade`3xdg%8_mcB4 zPo=XJ5S3@oo_JUQVe!RQ!|iDqxp@nY<`XKX`JHa+W4@ntQWa!V<7y^<==mbbyT2r5KU+Ho#Z#{rWlRnzp zw(-vhDoOCwX41~*r_|g~oGmGDp)zDE@ir;!6CPcf%T4RKsMFs%GTqd~f5C*ry-?=2 zxrBPJ+O4v&gN9IP*ZwAUCyKF!Jbq^j|;kmypxN17;`XQ&M; z&H(HbQK3=GUi9gdl)FWK^TPz?XF4Zs;1&*zRQWRrX*cH3M_{1Bp^q9PDeG5WJpCz` zQ;RC{#y#GWPMuEPkBWekE@-PjBsTHFYp^4_2~`JrE&%DrFzE-zeE}MiMEVe=Wm)=R zGY?LGChXCN*h_<*$&DZ$*#;Yr*HBPA%qW03_5K1b^(e*i7wq`8%FtmBHkTAlJaM+! z^(_|uKO(Yb&p`qHwlnnV7=_tIR-g0rT1BH$k4MRuJBiUC!fzcBO|v8V+vsY{^yp#6 zJdz|?AC4o&rufP9pHfij0>vvZodi95^kC|GkoT7gjQpk2`vs}_5xl{#Vl=PZNK^v0 zP4tj6D&k9kT!lH&9#@XzVJ;6GMV`lGul>0BiQL4gBeY^xe|Zkv@wR20SchiQd+(WW zc2gxKeKh7={EFvmdgL&xPUwtmxvlK)G*c3fi<5*6t)vqDRpjRHQO8(E<&&D{lpO{S zyPzTJej9K)&zEA_fJ^EE1my1KzC@f9isC&dHgvu~ID}=5V_o_tFzrGwRWpx}T#Z_3 zkOa3+?L$rFf(m`Uugl1@f7=DFNi5JpDMJwwor9pg-@sP(KH%MoH20ockiO33OH(3I z%Ad}VH|b`$SC5Mih)=x=)Zgfs90E=X@Pv6E)xhBKDjL1&{tnVeBtkdLW7If*4XR_D z`R$1U)GOa*^!s1L)wqwOU$gJSIdw>q?vjgS)N;$1zK!ZN)$li^pyYU$keR_GrDBCg z)*Dwg9S%C2u)d`KM$<)c`Vy?LBn&CoaP#AtPRhS#UTG3bf z>x}2XUEp6Ih4v93`All%^TYL{@CE3MP3B64nCpn&sLso4D0*Xqi`sdv;?Q`CRDZhQ zuTJ<*4m!;jcOET#He+hc%iBIs6g*lpUW@WtlQW<|Yz)0lwxR!urASSq_Y}o^y$>%& z|GxU){5tC4zv`#=+W=O=O4=~#`iY@v#K`+iqbqX{qhj05O=kkdttQ6V_hJ=?potgf z>HXNf$X%Epji*vgX8F521#kF#H%4`Jxi5~UDa(35O<<{HsfkxeWBJ=zr_J|xPBGxJ?$0LNo5%?LV6DSf zhh*4Wms=OpVo2)pHkFTF=$(h9fqz6mjZAswy{j#4BO2KTlrk z@RP1|596(89hC`y7VSF-*M56-g$1SqYzsDc0ACfztA>ybCB1t~eLn7j(7gfADqQ}i z6)Dv1cZ}bE)&B$-x+b3!U8qVdBncQdyTq3N0J_UEyu{D%%EKes;e9Is2VeSqBWX(4 z`pYf|Ui|cQ`E)0`b8Xjf#4Un*dEv(cyAkolu>JAT0oAL-=~UY!kAo5S+ttImnzLZ{PA!So}W z`W=o$SkFg?wy&=b_bl@UrR-7+EBqDL?Pnw~s@FE%?>+kaQV)auz3^@Zv0qr;{y4tk zb+onEbI$`po_hP#`AN+S|2;iv%;>FLY`iB{>^$o(`IW^z74O5;^m}$xe?p{ad54H5 z*Dw9#%twjQCwI#3akNQ?QlwQ{HBx#ukWw;@VjdY-OhUn90w;G%GV%a)7L&Nj@33_& zwPHyp74g{USRi@e_duBWrZjRj(aTTdx4XbJ?*mpiRX9_x@Tl-!=T5;%(ZiKFh4W3b zNGqIO_TFTp=D@y*dXi~>Lk1w?fE%>(;Cr~RIkxLJgfx%n_*mb*9;tw@9U}EvszOD50@ed)Cupxg;Rsm>BNzxy7*B^ zJ)=k}iOld)C{?6njc#l(700>ygl#W!EP+|G&r!5@zqCM(Ds-~cW4CA6nG9z6hFxl!i>jxvp)Mj zBI5VP#Q6?b6c;LcyO+HFB-hH@jfBK0u?WJcuWsir@Ggaogr_+}!x9N3B?`%^gUR~i z&u2fU2)LO~&>FKgj>cU+$8B?uXsf%NPqOWPqW(Em?^+EDJH-wb*{3KRqlyVR5+B-e zZ2ltV?&?&_j%tFL=x7v8UP}cNQmY4H<_;TvR!Yr;y1yK|STiF!^~_bebMxEAeTQR#mX>!^+(|Go!c35o)`#=z?6n);4)m8?{PI#}qgOK|()OMW zwTV)D?u~nvdE|C`WqdP;6FbI(sU&5mRvK@nSV!s! znVGwX9uayk22zX==8pttc#bc2Vwa@+ z(Cy8$qM;zBr+Ds7bHKGhqwbX2c!YoEoEK1k2XzLA{ss8`K7)gm>x=wO{F4%}g0J+g zI$buifH_WUnN598Cgi-3QM~GZh#+k!ls}&Edp_*&2jU*6DQs(-*ST?f!B9T$=*zXU zHj$=rg~aPm2!Q%uTDIaPtECE@kxGmACZH|{=|xQag_dZ7N9b$ox{3?Gp}3|j-vN8Z zu8+zM;bpqt;?Gx|O7AxSMAW-#UFp52)Q!b%V)j%>UQ6Xf_;OYpHG8EH$_6ORIt5oM zuBBx3U5Ie1CZE)2*981SoeK5oIZRFKL%9r|HHCZ&xR<3OZ_oI#&>Qbj*Up2g_%67T zscJMaX(yX})K`bWr`ToA<=DT~Z@;ucZ8DO#JlzxKk0_Y^TnO*W;IcfwRD|2E_cd5?c6RoBW_ys@EjAd%ReChp^!+eR67_=IO%Cv|G<~k;3>^H zc~X&m(N-@&fZpLaN$6Zwaj4Pq3Q&(Crl-rmINlFqiL8L%7;&~JIDPdQP$1S46z#R@ z(|VWKCL-EKmNciV_jGUapHph_o1}Zn8jsM387$kcK~3d1_HZ$D zo^$EBJQV!DR+sx@)K%Tn&v)jBZsZ~1KdGc^mGn$;w^LfF3=jnbp9C8EfrnMPvOv2 z+obmqrKE*!HirdT$~+cOn+5Av zTJT{2>i@}{yOk&kb(B#vPKIlZggtnav)HL;keY@#g1HBra^!sf7I+@B997N_^hj<) zSG^4-VjcBju7Azp<~`NA zcBIDp9QY|%u|Q!W7J9QfJsj=Rnw-^>^4U6+5Z6Yl>{$bdDlXcQJaj6#kJmP+=~MmJ z(8Ra@3A(IYhe95$wP8sLmPf|VhY3yB)|I(QsqgTPS|7jl z3h1oyPM8{cBq1f$Fz|Z&vm~UgdzRASsHH}<%f+$(jFBkib`1$kQf6gxiCT)mKUg;8 zjTB(cocMm0vGuQF)bZ!8^w!tYn1dxz_Oe*#AXrt0u<+aLN&<-x|DR>r1K?-CG^>?a zrtHfz9zF%=%D|4*my8}lCG)BBX|VAF@KI@IfQ%qZ@)@61r+l#S{t?W-Qny2!}*9X=lGk>d(6Al=YbduI8DSq5M=byoDYY zYWbQ)IXyk`?lB|Y1Gb56ytq?qfg7<$GD!8z#@DWci;%F;k$gkaYCQY7+PW7fJawh= z+3OK)d`+m0Kh*JqDd-f`1rAv#jDNCvr0aX#gBP2C?ox>4G@-pp+*k%=TF(fFxIR~0 zJffR2IaFCG)}NsHL3Ok<=3Lpid}NkhZRt}*vRTD8t0f(uO-sI$nhxX*OwxRq<7~(9 z<~v!MI|1O^`E&Ca?ks~~%ED0r>!*&2FjYZl^ycx`rMi$a6LSBL407(3`ZeUq@gvGV z`k8pOZko+4wU_c+!d0(n zB=UZwowX)9y`407oC?BAdWvvKE=Q=F8~TqN)UjSUP~nFrrW1I^9==ufxB1Pl;se=q zy$*y-6;fdDH5O-ZpPhgtcSKgU@lL<<`9v0PB+s;xNLZ3Pt;VMq?-I&Xf>DC9$ zKZ~p1KVc-5tnl7^wz*gD>Ij5BxFxbw$?lxLts&?H9?;$NDX8B1=-%blRWJN8LB-LV zfc~KO7>Brv2+L?%rIv_5TaKiiy1C8ToMg z(ZdS7^f&svw1Sone8us?Q>&7@rmOrk+drK8hA3L$fmln3WhFI->awlx&{x)HzI2ji+T4A30@Hj? z?Y2@W__s)OAa9RWPx@w@{yyLrbs~y|9>;^?got=NGLDv4yoRJ3f_; z^|&9OeUm@;*kIk*rCe}zuiUd={if;^11x2w8cO~MonO-`gL}C9!xwzWu;4Q-G)k(4QQU)t5vkp80Fc7U~+1iZ$3Rj=Yl{3+O9-mjcO^ijbd)ZwQ= zY@VvT&VfdcSuOOQ$x9x2*$kOK{Q`+9ilxZMGSJC-V6pF_DI_lfc=S!Rn)Lj~q9B3( zfe3}a3Vq5o!v75y$|@C4eP=XvG;_=$n^Yp;mVuE+cSWX=El#Pl%6@d*Dj!yIDoeYx zAE|7V2~qn1D07?mAZ@V!g*2J|0psN!lS{E9EE#<7pS<(U-wsPpvW=;Ptl_&(k7Q|p3W zznx@71w`$T?g@5lSda^@S)X~63DEe`RwY3(#5)-;6u7ziLrzsqtr)m3-qR~2ETJ-*0xn;+{XFw|+U$e~jcBo!e zRXQA+|M}9pw_J@^{SsE0?Cy<<3=Syfa1icXDMn13U2!DnIM6&VdF!XQ`plZcCO|qW zEA9dk!nOQvhG;H{xO=+@l!qmVZ}jWyY$HjwopTgI7&+F2U z47s2A(&+OjmE_s|2ZxHY<(u~n3eHrs&AMgR(m(Gsf2-4pa@MHIWVZQ#lbKeeeCDgY z?gio}-jg&B2w)ONI~p96la?#UP27xV`Zs|rE3XO9zj3%aPj#)rYRcEMYN+O!GXp0D z$`p-y6}|Z5!V3Q6Nrju?@I0w|=<^p7DTAo)l%BYthy$gu(KvDEjY>F^h+ED+QddDI zWAWry!KZ{+dUf2lsOvzgI42m6*FhKJLdq03XuC;MVPOOWV~V9X`0`z}GanLf9`R5{ zLA7+NGbez~v1b5itF|4JvOF;R7{wDbl`@55xim;RiK<&fmeFJd@Ac1>pI;P)u%IV0 zL4V4i$B)?)%AP}I_rKK*Mo;J1y!p{-xl%aM?)9NIUdXMP@7t8xY4~JqA+pFAI*XhX z!PcxmldaQMwWvH71ce@=2)Z_@6JcjpQnRg*G{WB}Gqp-;nCe0cx0pe}me?yicE0AG zv*xzEL`cvcN@*f9KBvEBxAOD4O1~#&I$HO8OmsG{p)NRUTdouWX8^EOArvk#r%LF5 zjWccknX?}HQY5_|ePq+0S8NEWthYW7UoL)*LFF>sdpb`UubBlT|B)<4twbbiz4zCp zD6_1sXT#^sTGVh?h`hCH_c`%tG%p#GDdIg~zk5hYlG$EQWk)o(WU06=wMUc$8D2O&;Zi( zeBXx-Od)H(J-O49q37}+Dph5ZQ*|F5#RmxAAzzseQCM_SyV`Ru(+O+j`0DeC#+W_X zurUL}h<8ma8Z%;V_~5hFey*jv_lUpFna{XbUfQ{E#7Wq$J5V=3+HMo{(2pGlcA-@G zNgrRbYp&QSGaF>#6U8HWnq*P)iNR&hBuKu`I~Uo#z?3q)ukRu1xL2Rf^ATyye9t_b z`to-D3t;`9V%3|oIwvX(fQ_c27B{@~_Ax5ni^EMoqn^`?!?5@iB+dK^7fXQGOD6YP z-<96vStMR{JCkD=w_0p}u4c_g`2p%-RtLzAM%5Fuqw3 zHJh2j(@Wxwq(2U(_$N*BnAseszX@Bqs7!5)xz8C5V0~wb8Ope-#fv4JomodF{TFep z^Cw=}tT^wX=)bvH-evqUZ4oQI!08NyqU6D^AZP^Ycq{}R&0^r>TaTtpR0J+xB+$&p z)8fNS=?etT0w6}PQ#HaszAFlM%fB7GC_S>?FqtwZ)UNVwHfwY zVyJpl9W8wEBSUf%yEkDWJr|UFT)96K<7zZ4{Se@Zc)xs9kE(T&(1+t`)8&m17N3e8 z`%aqF-=8Q#Wdy{(EZ%oJ!@DxI%gjVoebdRyD(b87WXkd#?9_8BN|_2C&*MrcJ4A6? z5_mU!Gv6{kM6U+5?!yFb$mmlzn4Q{MP2c0E%17lt)CKO|o|W}IJW_Mv*!ohYabL8_#Kz2U{J5CL_?8nIH@*JEOYBw1`wfzy%P2;uO zv5>zfrwfOaPCQc)Ws{EF18b-21upiGeOu&>^YzqFv-Yt`KQ=pyyDYx@NRe{bhDQmg z>GF;>iZfkdY>uh_S+Q5pCrnIAuCpWMUSF_hfmp0L+MPa%or_y|{WRy{Hc=k0hFWX+ zIbxce@^s#a<%~>~MUh(*SDol(X zZ|mL34FrDr^z_+BTCTk@KlszA*W)|+tf!SF#KuryWUe-P7CTVl{}$1sD}mXb^N+A$ z3Bc+l|hm3b5gFDe7}(@ zQ6-EpamI^nA)qWs)!DWm_vJ-it%kHI!n9}dk_AYJdd<-7koGwSL79Uc(GAXBwGtB5cwkduRu7zw!fD5xoVH0Y3H~@;KQ|5PNX~zwgY){|?Ve35dSNioWR#35Ttraz3sTEowH1a!PkITR7q?)A#p}3dCs4H} z56JqedQs6=No*qCcKeSTsQxJhv$c zKl`pRn8F@o(+0i80oN2&E;l|eP)6e_BAeI@G3U7I^ZjSf?j4|UGV$1}1V`5@pUkY> z)$W(eyG5X*cTr(BV0bl%kBx_0FRrH*{y4=A*y$02)!_`ISW;VMWk;9 zb+qEV9r?F2GyQz`+x$>f6u#Z#kkx$fiP`-R{V!19j{82_p58LjHM50`+L*1qnGy}_ zNIV=61GP#!3Bo7`!97IYjN1^Dd2tZ#!y&cM!*_Ow@u5l98XPa^|-(k z_od-`seY0F+|WEWEXf-_5E9#Ez~sOeiGr#u2KD}@T}ZF#*M`8)?*ul@$NP|s#?H=5 z-ro2TA?k(Kve2!xwHF<*iB$bTpGU!VJ{L=s{jk$r>zDkvOaU~~@flLVE6lLZ&r8meYgScsr&D0HH%CrN69UuqF5Etr zaTnBGzG(Dc;2mtUC!c*G&Z9^wTuZn&7S;3#HL%^@Vtr$HyUlB$Wlr+C(u-{rpcNCO zHIYIH6VrG$d>}Uwiyv0ZNHZ61$97b_EX!?MH)+&%a;b0nxZ)>><)c;~uA!nU43n059D-1^Q$P}lI*h2&T8Tas$?yp^(&0z7a8ikORs3yA+ zKqDqd54XjI{x0j1jvAFcpc+z(R!IY1$cRLxLXKt$1;PE$ZGQ+uJOvz9*fgb{Q)b$9 z37%Yyo}&ky(cu14sod2;hE`fO2)A76GX|6m5IW9xgqDK^&ud|V< zi5&Y^8#%?8^Saztd(;2f*k@E3!Ln=3M_9^vrE}%Q!&Lg*H8uJIabuy{b%rLH%SW}N zj3?K}Nt(>x2!1XvFaZDj!PR=YC2OOUK%w?1xHF2g#W->ISU~F)AFcS}e*5FGIQTpN zHCnyp5nD;IEdB8PM_+(#pEx5e>=lswuj)W7n)lRClWt2CDLq#Ch69@tENZa{$e4uh zyr38qewU~>5k|CQ{wr!!i+lQ0-^RCka!bDmDK5C80h!Z@C|D-Um+o#pm?PwY`%(<@ zJlQNE1mVgOFb@K~-A3YircJmQd0@SAz9jcp zDo^^F32#>pE_wuVN-5*yY*xhSeYMdaK!!_%3$oA6ajpfor=o!z^@$EX_wANY6Hhhv z9n4C;-1Kon-On4!36;Z5+Q8flV=(n4Q*6DZa$`_pps_ne^&7(8op^v6hWmh0y=Kmu z<*`g-h1ghFv^5FvO)0&5&>eP9?B;47SEd3EPR_SlS|lLw1gLZ^^IPQJj%TnGbuvB7 z2l2rf+JTMFP(00GIk|L|sR1p|7Q!HiT@m7X+$c9p5H287OnPQQ^>Vu{xVy>~9sD+S z+ix+rg@+O0Fc4YGl@fNwN8UIkvzqH)`t+jZ44;ckVkHo=E*P0P0BBh83vL4YFZV#7GpYWTQQc*` zP(o1*NrcB$J}Q~XaGBwM@8f@`G1456ysdv|@vObz3%^5Hu)YWS90pN1ERiCQnDR)McO2^{Yf_3`a3dWxHT->GgO3e-Yt&|!$i-jmM&AVL;%5kal%k6AQl~e@`c~9wwGxx|b zsa}wIzpiTE_psEjFt;k8NYe_XDDxOhQ+%McCE_df+Jhbmzgv2ppFQhvSisEBq$CTS z)|vX`r@8kGQM?f|jbYfBY#Ymi{t1>EWiI%jl?$8;JqSXYQ4$_mEWGEM9lP}AIJu}U z9+PDMnYGjoM+?l~c|48hQ!=?fMaJXI8eD+-nKP?;`xjpY;e$ToJ?A1kbqD+ijDrf+ zsJbwJov-m9;+g3cJZ+$G&nv55yliP2MP zYt;`Covr^wXNj}2&Ch}O?C4J$^y)a5`fojtAbU`f)%E0SfZDx{iEJE(Sj@x%O@$XC z<+8o1V-l2ZT=F7q0fjwt>1aG9%X%vLJagGk{OL-wroWg4v=V#3S z+KN#*yqxRNb*N&%b{-PGSj`Wh2)uE?bRbl+)6YBvy2U?A>DC z_nANCzb0#wQ!AK>#-qOo3QKE*O;6}R!6@wwLM17*bqnzt7{H~4)Uo4={gCeZ^A-FlAH&;umHCtLKrAXuNf;poAd|jfGB>@rqfANT1 z|9)qGqx;G?|1J@Klb!Cy-TJ#G`0LM@S^xf@|3LQfpuU9s-(cBa?FQG7yZ;04zxhA$ ze##)l1&KftrqCbTCsiJR&={pP))ng1*$`D+vpe{yHA}1H%4SgIbsF)Lr8l~-6=#8W z7x&_Sza6SEdF->_UkLx>^`l(9`GOmapT7-i(YV()_BnJkoFk9j$k(|iL&zs}G)3z` zfVuabOWV#J4MCtzkmD~-5_aO7=AbkvzI+v9%d zZ$^*&otG0<44b1ekHbZq-|l&e6!?~}OewAc3iyt%?zb9-OtQ9{n{@B&NB5ruc!=ml zQ+5PHa2WCH@qHn4AA0v)_aKs#Q(9siga?A;4M*^-F22RS>IV^n(%{3Lneuzpu2e5>PKV8bg+)0t4faD2Yii0FVMFqFk%}q-q`rPnML83SA4(afQ$&A zCob{V7xj^vuN4bQlk5R>;abb;e682{qt2u+J~O@~yc9USRMxcqQp98!?AS(PP3vO^ zlAt;8Cw?{npHf!Pz)YQkO~vmKfO!u^6~cEyzCgwBx+g&z=sHJ3-WC z!?Z0B?f8~^N=+TeGP+b3)2rFE(D}qmeI^xUW2Yttt(zn>fCg z;eschT?rZvqR?VWIPjBgIZ|+ll=FWWrH3ZYJE#sgim1a><=xQO-?u>PUWFtIc zpzMC{;3~ZRlC(_wu@mVo#E2 z10A9NUNiNNy1kpYI67(E82dWDwVl(d3o-Wrj*tLLb;2ZLLWqvM4uA}Z1=7->-lfY0UU9C^;+dP;?!KHEMN_a0_=Yp)f64i zqp+&1_n0ccDg!-qb!uGXVKRMoQPoR-S=|!#(@#O< zQ2;YEa;hqa{6SP6asIf&D&YD9NBgdU4QFF{x5w?EAS# zgy$2_d|pT3#8clejOY_g%hZICavI3C#;8U9O7W6fF1t@si;&EN(ge2UgCX zxGY}MEWj}I`n7fShb?Dj%Zu9yu&YxKTr0$7VtRvUDvISC_Fc_-t6^H;aH1?ga=-jb zZwB!ASCm=ZaQ4>|14TxPVY%p^8buW!bm~Fhm(g|9nsdShEGE6GJ#Rl+nRW+nTTO?U zG-RY3eAw<<3pPZ_pX=f!9Pj75O+poMrP(Uz$)(8DrO^ld-o|H*BT*)$gY)R|gR2kV(yyU*_2@bP93Tx?}wejD?&$L9xopU4rwrG_lWCKX{Re=P*(tdiEmIup z=8QEO@7+CRPZ}T4*FX7c&1<;p;U(2qV#yPfxZWbg&ba%Drek{>@*leTH_Tk8&EPyF zEwZMUKXyPIi9S7!@;j1p}^e&N(#* zp)*c15L;adH7>hht|#IN{gE3Bmsbywj(-oL9sy3ncyp~*QXQ9<7Hr-~ z@@gvDl$~ww2`vzKuLQ9nZ=5gb81`z@JaT1a(Yp7hETX5#S%4w~C`3IPI8M&xzkZ&3 z-K6d7IF(o;U3M`}7^q)|BJlRl#2<}aXuE1=g~AV{Jw$Jg=rFop_+&E!H;l*{w)2)2 zeCSrK&gzcbP&!r$Y1EPuw*q9fR?;ibNC-Wq+Chat^L!${P}aV^H$L1*;*D|Ge5PP> zO0EQIZieL%xVEJ`$}d|+h=hipb-3T9M){>te{GSTYhbm92taS(AAO`P*U3e zxCdtcMpiN*6htK`2IaL*P>Fl@uokE_d^LZpH{o$iUUJ6tqn;j=Ke#brkS*!awoH*uyIeHdDK|nU?ka=AL?vFi$xFJCX(|9PymtjWIUW zX+@pv6<{%Z0C}#OMY&{%7C)E}x_E6LGk$tTqRGsb)G_obKD&Mbp2NMVvWywvHpKDQ z&2L*zl|eA0k(68=4&m*;?h58`Zu!}JGyYXET^P$3fUb88lT>|*9V#E3VDFG;XRX*r zuBq1!n2-B|mX?i+{B4B1R$N}&XcTT*zf8jaysu}Bc+5|sAD8u&W8(2G zt>=j`QSHQ0`kocX^=$5W$jNE?moM68-VmV%Wo|<4oy4ul4NtE#_Q^5uws+8+>PUvc z)2X&Sun0p!R%0fAF{q4!;Zbn5ZtJT&-iX(VXgUc_2<5;Tnen;{Jv)|QU-7R4K0?!% zE~_w^HW7Btb+l$NLuH4!xA0D#*cbP3m@@u~v`Y1O1B%{qHzOVlTGWx&8tCNfgsm>@ zsj#WfhB^0Um68gUDIb&vw!M+p)f#VE1_ey_tqCALWa~#Z2KwK^Eps*4h}^k+-nfk2 zmmUe0F<*xxH9?_)4=`joZcFK=jbhY|%d=kgA2gP;$6}7SYOac|6CM5B3V73F5UVYU zVVmIN|MPhZ@S2elP&m1`Z25YLL4C}um+!3&HfkK|wQv`*0=i<82#Dk2L=H`ZQl`|; zLW&@)Q=r2k2e4MH1_utuu4RA&PM7J8-pIUBcFL*M@L}ra9n;x!#;3ION}xt$`%Z){ z6B#gED?1FrRV>%-wCxd-hYuedBQ@@nK@)Mn0H;%q6)lhYPzg(dk<`lv&w*K}0ISRV zc#4Qdj2*lgRY(W;{kpsq_$;+iWj(c5+05^l`$2n*p4r>x;0C|kH~G|}Nn8|fXHuGq zfV|4&D)N1N+)66y&d;udb53_;PP6y==n{5beAH1*U{D_d424 z z93Y>tG~?8aMqkUz#o>Lo54o@<f`22#v5&xzX)04LW0R_n#JE7Cl!!csTh!!UAq+=>@I9|H`)u!?0I;tZOuG5Y`}d;1aK} zwTS|>0S~x(>6u^8nVwO#M^AfhB_2A80qrKCn%H#Xq=*39f&;K2iXnI!YMn4R4Y|r} z)8K1{X7kK@@w`E zSvF8`GT5mro(3$SDBr}G^z_!*RIm7y#ivz$$G_~!(2dL+gyjJH=J{4OdL6A&bZ^37 zQx;r<88>?*3aGbLRHR~by4+U1_}fJTcpoj~{wS#Hg7f>7jq^81wh2?5Y{cP)Sx=tJ zHqB+k8-XNQQqUhVBxMe9Iom8jS%vP{*f~fW0TjWknDX*IqpxfzvL-1-0$lZhAcyugw!?G5E+ zcWzk$E&4_Dyn#@V_M_f~LudB4q*AD-=K-xKEgrGit|a>B$vVAM-I=Q^WlfO`G@!(^{iuc zN?+Vfz*L#@_6P#*{j-=L=v3(dy2Kb@c(MEZy)OG1+?9tG$7$#*r4fqKMy}@DD!G|5 zk#b)N&xnF~5WOS#$EFM`Xd3*>rnLKpt5axlN=!JBeugVdfGXW*A>gB4gpl3(xCcgeoCq{l9AQo-c;wVp^=CohoS z@;QhPSQYdy4ltdJL(@>$_b2dN;kwR z{n%2}9;$P|A)`RXTd-Ay3{p(~M%ov})+)%9MBaTHPpjj?wU+xoOZIC8FtVy+E$2Ihz<&(M>Zq(KtQ3e{2) zC<`a4NVdcZFbqej*zt3U@=e~Hwivt61?R!#QYWTx7y%L!*ks1x;aJt|Mf(faLYBPut=nz*%2`FXv*PuDbJ!;GO1qybG_;Fo6!HVFhNb^=g!g}dKL0Qo z`317Cgt4CqZ*)1`Bz_@(WZiNdc!43ZSFV$bujYI_&TH)?YCzi8t8?(I#d&VWFKydz zK7>_g-)^1;lmsAWpql){7a?V~%a_TUK4)?>ieu4#Tq?y>oGsK}D#*JG@UAsag)*s;lx;ZXG|~}T zjp}m4%Oa6$O1mJhSI6LHxoy}FvKdDFFSvBl-*D;C{{xo}+xrujrr_S+(uVP$Hoh+sSp}~6KtQ(av8tm^~UG0`lv*>!;mI|gbVKf zh)z!u;;S#sL$2`^o{Dd3nt+TwvAFkU@czDmXGPO!^a&olye-A|NK0?|^_L@f50Xk7JC-Z3IQ!p)?rTrx@Mrcf|{ zqHGPTG=}IXj#ucR@UofBU3rE%*GtZ|epIDhe%w3ZPJXg>nykueVRweI^dR>XDiWxB zpU>L>r>vy)zrt7idJL3R51qmqdqmti*Z6<6)zd+|GDAjre2jPdM8<`k+g^gzMqh99 zk=Xzm@?+RlXc;bPAs?yj_niV`zIIkSNVUVW6$YXE%92-Qnyj71!1^)Itr@iOGFP

x3S=m?2Fw1!wjB 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

?T8PDl< zALQwpH5CH6UuNzjxiUV~9W)?5Ob$I;U>PrXrmYVuv%a4-yk10xBpXzUkx_4wHPN*= z&M7&Ge>Gtzu|q|XHX-au>{jt9tp#+}O0_|()p7EH$VNo0K`y*v;Bi(0=A8VdntNg^-lUjL*^r=XZ3k64J%}^6wQ;w~P&5MZF>s zN?7b8KGGt4UU5QryX-VeQ~F6O$hSwu@V}8;Xo|}Sjtb{^Ch95+h&aWLe2f7}-D(SV zY__6(pqD7Dj=p2K(0#4CEJ*SZ3u>Cn$866`EUid_Sf>h2M~6r5`i3U1-f82??t;hP zXK{X7Jm19{Z4I93a(NAT=O6!=Ze^oOI;PCcgpw6BltUyN#YocezWV)JHfB%6pBQ4%u^UWF~#6{Xcm>Mfmq!@n;43UxM2-%t|}tuHr?+X&1Bim ziAL4m2~pHN4(eckiGvlPLd6kG{(JVOo|^&dW$~jfoKabS%4f zdwbdRdo*|OH7{_RcSM1D4!p^csISZ*x!e+Cnt}M+6`&}Kc~7@+%&nf-pv&9kW|e`M zFQVI)S{x-b`@nYUL+)VOpq3%LRj>3RtWY^IFPvlANKnN$Uu3cLAX4O%xE*qzU|~tx zsW@0O%Lg4;Z7(7d3Myiq`H%ARkuvzr@;{$bvGY*~wwyzIZQ@eiZRU&LowC9eLu6Mo ztJh9>wl1WJFe$77?63*)8Lr&kNTip&eDAiv_))>X5H#dkLbv+#QajENFJC2e@xrd} zx599IqY=z73vAhVT~0OMx%Ixui0Q@Srn~&g%3K|eN5|A2e$zsP7q+9AIMzYcH6dHKbq+M=gH&?$=);NjZ1j#LW2TBV>s6mJfN!IE zgd;~tjxR%>s|+(kgQN|FGBrcpW+i~{Y~=tmRr|{Z3xf-I+XGj5q^=^TUDu$r>)=6D zoqV|Cr}}%Hh)w!Ct-sn5(=qn+#@{Bq+o#~rr^50*pJuXcOY2$;MnCo|yP(|N31ymW z-^LoP@oc7Mu$Gs5Z4d(Jgos@vT#r78DF)IXi!nsy`h5WS00(~VT2w7=Syz%)oHjmt ziG~3==6Lmy4IWn~j3v(gz&EkKE2q%PT0+l_+VHL_xb6neY$l?M<2?QIbv;C#hK&Su z$8^=pS?q2-JRJ8k&B%$51+MKtpM{wvk>%~1Bp|pactEuW`LmLigmzTT(27K;$Es8CtAQ7KH0CjcMd> zC+Z1hF=f&h$*|x4h28F)DV7+bp!CTQ&x4zff`=`5ClZC-OM?@MmuvW|cYSNG7%`6W z4o&RGrc8d-QL>I`$f|;aj!M6Op-eoKLUwiW3sYQEocL_&paR_&Pz zc@n>|YY0w;TZPpVAK#F+g7SF2uSGW9R=jZq`3{#^vWTVk0O;_N$@W7vvUkNQ-o7}w zV&T^Qoe zap0DvcV3R26>tFpfmi`Pk{jN#9U34GPeUNA7h!`ow0TTsNqd;5QR@?;mlDc+?BT!M zOjS8V>>+hmZgOSdH#e@0F}R zLUNctFxIzgTJ;0OOnOOvO5PhI(1Ets6bhSRH-WVS^VbjD*aVkXyn>^R{0hes#boXN z1X2?-Ad}XZeZYe`tiV4T5=Bm;M3R$8Pn>2Va>B-J?m|95gpFY*zno?d{naEc&u|pD zlxgf!*scZKy0{1jaH&GBbPLxU^gYY$AU~YH5 z(<84zk|So-01ZI@?40U@-f=c`kWF;n?ixs1iv2O@m+LLDL{l=BI3>j|G9`0XE>iePu{3fl2+N+p3xRF$AOLJQ3yq4 z-1*+2=n#Y4%pNH_$-D!%8I(egUyh~2Jj>!fgKow0CGTjiR%hb0wMU^ z{ONOAWZkF`mphNfNd~l11pLGamKPX{RCMa{0kd?zVi}N|S=EQWuywG1E~NC@`4Hmw zFNhnx#2g7+is4XTq(oUR92DNdRa`d?k}bD8nCjGTkh}6 z?XX5I7Fj^QT^D*ul;nQm*4%qxp^!y%s0O^{uZMBGVob(z_^ zemDi}0e_2f93Qh^fynxRi_D>k;m@QL>kzD)oKPRy93*#QRGNcFtG&wU7cw}Lqw-;1 z^=OjB)s0eP#5hR9YWPZ2ETLP7OU#V}luMp@inA58eQY^%&Xhr9S9kM};gg-g=c}cr zm~j-&@?6ia``$tDUUu$Q_6(u1!n{{V+6xU)LMY^NgtK(Fr8vF1skL^}&NOj2Rq45e zsKSbvbzjs%CYs1a1ecw3UZu;fe<7iiSfHMD8z4~lcuD4pf9r?UcIU6GPa`f(O>&s0 zDJBiz_kl6z((i?t-JJnC|#g!lZ03f5{ z{E6&yx;dcx!8LY7@@pl1JVQlxAB0mQS0&a^#Jz-@LVv!!$3pqdwlh0%eNG1+e01MV z_TyppJu$$~m)dEDSiLHt%YT~p-}icPmTxmGvidc|n~qpzeqe)GCF#}5V98R=IJT+o ztM@u&H?eOUGBxq>i6E2i$G=Bl)HQ`0I?ozm#SYLygKFyr`xTG2xakS%Fw3c zQH@b}XzxvbS|zwCBsboJe#@Z$Jd%@T@5L-rIbog<)mF2On#T)#b6gPDrPD&;By}TT z-naGk;zmu{U|Z(hKlCpe-R<_=a*uS+b6kO_@HbPD(#4MO`XHmAZP=?3{l-x3 zF1V-Pbjx@o;aY0;)il8r8P1H+Qc%;V9(lsTjDO$(OhUZ#}CGNwaf}xLwRby46@7$ zOVo?Ha_@QvC2%DGtIw` zP4r9YneJJEaiZEDQfXw;jo*3TkT7J~5%)zfUk62n`1Uq*b%7r#D0TF=a$TcMbSCBR z->$N+>a>5?{Sjhr){F6wPW~;q;dZ56GYywS{~XKB`KTCtMZ4urbfhkcspDN{wz|ca z6n(@<<#T;nV7RIl-j88u@&TJ{s&~KB%*A&0nL!4j1I;u!Rt!>nzk;ugFf4|29}|fO;ic#fZ&pvIUqwVnT=L3~q)(c$Kh5m(G^d=ypN%ejn8QfPo_r_C1Vg zi2F_G1rC?6K?hTKqfh5w=4gC<7i~r$SO8{4n;@llDxeP=o(SYFvxt}$0Gbi(zng0F zU)tm#F1iLtp;VtWsulR!2=d>x2VcK2tdJ)^5p8S{YcIfx_HAgh1Z?I5;r!@e@K~;O z^062%^9^_rn#R=j{rpfI@<|%TeYA-g!cymu$$j;&{W1{cxYjFrXU#Nf%3g z#E#-&lR-1+!=lHgmaZadoIVy4feUok;wH!Q<;(>I2--pDA=Std@klGOVX8(%f@G!O z@@k?@>ZP&E*sb(AEMQ*NQ#jY&^kiVf0jqB$+h#gy5Cd6q|aRIkTz`y@p z4yO$+tuO@pHnCBNLAt*ebbh%yoG{BoC*UHUX%uDy5CYI zugfIFbzmbo%KwYeSA?kMjt>vLz)B`8}od zA5o0YqyT;tXYVC)adXIZs<<=o+Ao*G)Jb6G6uW@wa==Uzd5qgf2ym=J3#LpM2&04j z&V&3qRb~6}BR1(=PdL-P;9$Rv<&vc5T!(h)>9;ty+LUrCZeedj8xWMYF#s!aG*fNI zHEBmLc+HHQV`u9)#_RX1;l2DF$Q-W7LJJwu`|7Qe{B+J7*pX4;nqV`G{%arz=mIJ6(Qk zpMz+3hj)#Bo)9xOd}Nm}a6kx}SvYBxM;^wdLY|Vdw_P?Iw+Vu&V z>F$`JXIO0_x>?&D&h0p;3#pnTWW+3e^0`?9**947aaW%ipe9fe|Z+ zL@C*{1Fdjure*}=X2P`2^FZ{6wwRAy3mtZ15)y*a{a-Am)%}@fD-{;;=Zy#o_I%5c zAC5mreS7r>E6NtkZ9rtW;HlI1K_3wxAcTW=QfeSTDR%QxMbp-jcZ_UiigG|Af|Df0Y(!Fx=QMz2j+h=xboI5S{ zbbYelox_@u0S7T)No2>LI?vetj~@QmoqaOsAGt?n0q&Yir8GfHiy-b|VUZ*Da}O=D zZ7kFvK}>$#!>r|hr(eGYs5cI%uJau~9AZFo_BkwkE~5CN>yT`S%SG#JTWjb(8s#hv zGk)_AHD*JjO)i0Dq1ZW%(I!ecmuVh-xX9+l$M^E6bM`M{m|zc#8Dd9SIw{haOhd&< z9AT}-Yl7jBC0--Y+}udEf5%~=mm&64&S`?90<7H~^=e0&Jhh)jgMK^6Z7c06Oqv@==R_5St-^I*p1M(!wn#oHZnr(? z>wRRItPV%p|1FdJlE0+HUPv#2qsRF|sn%ub8Kjx_nkTkvHJiT;zHx>aWnTC>;Y&^_ z5A;o+x*nv?N7H;NvhkY?v0?BWsAvp$7f#)0BlvdpIhNqIl@^NTdkWBG5ixzqykpqA zOq*xLJR%FQqqX33!&9A_{>gV%H2$6MeBhOT>-`OjZjbc8VK^~*;~2n1rNW>fAxpJO zGs;$TDqfCpEn?-g2r3Vlpb}9xd8Q9O>v2a&rpch{e{~LboHN$mvIRV4`uQYTHmS*J zX!_34!=nq)k2CQU`@5IwCg!`>s!8(g)&}N7Jeminn~PWtf$NH_9%+tnQ#A5aeZq3! zPhYbB>Q8s`mvt?!*Vhlx)?H?2H#?R2p2|!A*Jp_`D#T4kN?e0u05KScWk8J3=1(?z zTg#1WNhqh1L4P?eUm9);9_Ck8@ane46YWO-om~Zo<|AqfT~Vu_d|HX45&b8C%v6FR z=luE)VbGjb!$7I{5)UjVv^mq`MWWHew?Nffu3Y=gF+4uZp@5@8U2>sMT5;5OXUEq| z-%QK4zxHEND2f|;@|Ivv>i2ssl9VR_7oy_q0osJ>apT-{Uk*9$v+novfg^-&1Hzk+ zJU%3HGW#|I*W0qtUh`3%NCa|2nJz4#Uw&%(C$E%-OBp_yOx_5p z4{yp;KAXxdqv*yP4S;wD?5DI}g^ODZqbadFd|J4CxAp#p=7Q$G^JF@RPbu4U>lbbE z@cBtsUEKBN3{?IR1qr%=Kgx`}$cBF)_;_!hptSfO>fv7>$VvF8wfB!9U}$<0t6a+s z^gT+(A&hTwxJ8kb(&L)MjW0rmS2Abl#uFN1cZ%7XgYlsZ@ysRhnN|L#oO@yPW|@+9 z`_vbrDZR2SxL{-~5it`LTLEESmgh+UAF|F-13jzqbap|vV=_n9ZcvSt#$CTle_m`e~1Fy&Lr`d09@(zl9J;h{<}-hH3RaFk$WhU7Ai}klgaqgZ5Y{tq7DLj0iP9U3$c^Tz(DgGJoTuQS@BZ>8_2TJ8FhfrIPv_o3 zpRx`>8?}2iE?%}I8qE?*TkhVBKW}M#WFC|ewJ84pNHTv~e4aH%iTw0^K_-3Y zmhwUaDWhc?`k3_TV;cXWeX5%m_RR_Vp>dWv{=TjcE_*$hzaDihZnHmnE6`ilaq&Dy zO8dqUSDm}Ml`^vIB9~23c;ro(Of5+LRwo_UiUmvaW>yH5HCc8QhNz*|Jg`NSA9dSS zwdp+(lA8$`>n5h!^0V$4$bYn^>ggJ0wmwbak=y)ghS32Blje;g=ABpXn~)$h!PRAF z;VZ3{Xj+9=iA21Uy6@*VSGhQi&jug+!QkwoVKxIYFZME9qh6yFrx5E$VuZ3SZh3s# zUx80j4Sg}d4Oo){6&`oaBz()CHb?G*Z<(f4#~ye22HR}YiuqKCZ(P7 zYE_eI9)nsO=lVgL-?Ur(tn&nN{8}hci40>iXDrej8k_RSH68ue!M!m7l)SY+fh+M-@9qD>f3-2(z!V^%< z94O*R#MjvlA*#x<$ZU5Lp63AmMO58#QNQp8_A_or?-kY~mM@$J96ZA|?I@|%<{LzF zt@Tx?F_dg7XQ^h_zyIaiy7==f4mCXJFW=UM-1~O`9vV+Ekg@SOkL?e954*+)p*0y} zl&+-|z%y*Bv$#>oGz|&+fT?9Eru(FO{v2hbB$#=*^%Si3N{{-r5qg=_U zNK~6*$jOeAJ!AQ-*V6aL@jYv-z_<~H$JLi)V>RzXil=$GQ~w>AcZC!^b_KhWvq~cq zU9iF3_I+pP`^*>bMic+z`*8m!`-T5Ua@hhzhX~5U%WyYxMXAndJaT)@=d4i&vVWZf zry?jf$&DQK9ZsPkvVyj$VK4uok~bw&A;KRqjS(A{K^y*$rXvvK&{w|F6TWhBYgrMq zaw}jtI4#HPBl9<(WG^Prqxu?yoQ~L)msj2@eHwk7D=xxc|MG@8W-*y9k zHkvfVzuZj!WkIg}bBb*w4^3#ul+$}QT>h=U8Wq2jA!s%z+oeC5lvi?}3%uV!k@Yd5 zTgxG{l>qnI-BDw=`p8<}tnd$ZDp3cH?pcG#xT+ABjELU#)R#T*l$KAm506HjwwMoD zyJ~N&Xl|%!>t8!=@uKQkGHU5JIRF&&A>P+f0ao3uwyLel!}eq`qnx67LRvA@HCZSccy zpam*w3;$(d{R}_ zmcb8NR2cGdC0RcXXsC(Bg_YdSW;en**>#8Ovt+ci5|b{>27&k2Wy2VGCsT~((7sZM z7oOO3>)bDqsehkw+_{-6ype?TAH)?>vU?})1P#!eGC;X-z$ni2vq&I}=#Z+;S9(NL zC&1VG57%DL0am-N>r~uh!3*_dT>yWofYSI;(c$Q;;(>S{K}`Mv TjyE1p2u*V# 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 literal 0 HcmV?d00001 diff --git a/dpp-backend/digitalproductpass/bin/docs/media/img2.png b/dpp-backend/digitalproductpass/bin/docs/media/img2.png new file mode 100644 index 0000000000000000000000000000000000000000..46263963188b78f1ef2b01d98eb3420e818e450e GIT binary patch literal 70085 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
d`D^NC*$383X ztyjzMNQMvs4U=eYd=KdblMTh3SP{7x8;0anh{)iqjbD=|dmXudC>GSzka#7y_?Tj(|3Ik$N+xaynQ0#|XvEf-x zh90)BIo_k=0O|?+OPqv4Evt8*AhBMC2zi=$8hYMIQKISJAQ8nZ8HxPbDE0L~V<$P& zQ1R5|a(r;C!}8Pf_n2eRih=gnxeWa8NUY6$U$PFT-FMNwye;@>#|M2O7P4R`lT>HA z;PGzrQLmqf$)nW0S`=VzRDsh#3NpEQPMvK}@jZ6Fs^Pg#f3DHRKq3Qhw&#B<^D0X+4@7lO25oLNeh%gh14x z{LPT~7*^L$|96K#<0t>K{r{TqjL6;nz~;Vz5zuc>_vKCLxD{!ZY{hdb(F##MVbxY* z^l*yW;N$k!YZBXemBUvdA{O&btWt;zw{d$-OQ43H?C}7%agqbum+(k2d;!EDp$epj zS!}~{YwQy5ZU=ySd4#!);jh|>WRkPYr$4X*vgH?W1>eq!)DZ2geSNSVM~q-QC(I|m zW&_p4v>{rd`g=yK8|EjqfPXO-{^2BKmVc-2GNW#yVpF`Zw112U zd1}`E6Afk7{JZ7-F#W#a;pQmqglRPJ-?y{rbm}5T1nFu`{UJ8L^5JF#ugc^fjWCov z`@@eWE$IG=*Nu_>H}SgPNq�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

BSj1a@d7u2k`?Gud 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%0D&il7xr*mG2uQYJRD? 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 I|LDbk0L?u#dH?_b literal 0 HcmV?d00001 diff --git a/dpp-backend/digitalproductpass/bin/docs/media/img3.png b/dpp-backend/digitalproductpass/bin/docs/media/img3.png new file mode 100644 index 0000000000000000000000000000000000000000..24c1a7342953293b21a980bf54f272cde56a2ffa GIT binary patch literal 17522 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 literal 0 HcmV?d00001 diff --git a/dpp-backend/digitalproductpass/bin/docs/media/podname.png b/dpp-backend/digitalproductpass/bin/docs/media/podname.png new file mode 100644 index 0000000000000000000000000000000000000000..1db1739179f3726be1ce105368f5e6d7c44a0191 GIT binary patch literal 5749 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 literal 0 HcmV?d00001 diff --git a/dpp-backend/digitalproductpass/bin/docs/tests/UNIT_TESTS.md b/dpp-backend/digitalproductpass/bin/docs/tests/UNIT_TESTS.md new file mode 100644 index 000000000..5a9033818 --- /dev/null +++ b/dpp-backend/digitalproductpass/bin/docs/tests/UNIT_TESTS.md @@ -0,0 +1,281 @@ + + +# Unit Tests Documentation + +> **_NOTE:_** This unit tests can not cover the REST API calls since the server is not running when the tests are performed, API Test are performed with Postman (newman) + + + +![img.png](../media/img.png) + + +## Introduction +The main goal of this unit tests is to test the core components (utils) used by all +the parts from the system. + +Behind all the REST APIs the Utils help in logging, in making calculations, handle information, etc... + +## Managers +### DtrSearchManager +This is the manager that is responsible to retrieve and manage the Digital Twin Registry (DTR). + +The main functionalities tested are: +- createDataModelFile -> creates the data model file to store the DTRs found. +- addConnectionToBpnEntry -> adds a DTR adress connection to a certain BPN number. +- deleteBpns -> delete BPN entries from the data model. +- saveDtrDataModel -> saves data tp the data model file. +- loadDataModel -> loads data from the data model file. + +### ProcessDataModel +This is the manager that is responsible to manage the Process' data model +that stores all the information related to each process. + +The main functionalities tested are: +- addProcess -> adds a new process to the data model. +- getProcess -> gets a process from the data model. +- setState -> sets a state to a process. +- getState -> gets the current state of the process. +- processExists -> checks if process exists in the data model. +- startProcess -> starts a new process. + +### ProcessManager +This is the manager that is responsible to manage all the processes. + +The main functionalities tested are: +- initProcess -> initializes a new process. +- loadDataModel -> gets the data model from the ProcessDataModel manager. +- saveDataModel -> saves data into data model file. +- getProcess -> gets the process of an HTTP request. +- generateStatusToken -> generates a status token containing contractId and status information. +- generateToken -> generates a token containing processId and contractId information. +- createProcess -> creates a new process. +- checkProcess -> checks if a process exists in an HTTP request. +- setProcess -> sets a process to an HTTP request. +- setProcessState -> sets a state in a process. +- getProcessState -> gets the current state of a process. +- setStatus -> set a status information in a process. +- getStatus -> get the current status information of a process. +- setBpn -> sets a BPN number in the process status. +- setTreeState -> sets a state of the Tree components in the process status. +- setJobHistory -> sets a job history in the process status. +- setSemanticId -> sets a semanticId in the process status. +- setEndpoint -> sets an endpoint address in the process status. +- setSearch -> sets a Search information in the process. +- getSearchStatus -> gets the Search information of a process. +- deleteSearchDir -> deletes the search directory of a process. +- addSearchStatusDtr -> adds the DTR information in the process Search status. +- newStatusFile -> createsa new Status file for a process. +- saveTransferInfo -> saves the information related to the Transfer. +- saveNegotiationRequest -> saves the information related to the Negotiation request. +- saveNegotiation -> saves the information related to the Negotiation. +- loadNegotiation -> loads the Negotiation information of the process. +- cancelProcess -> cancels the negotiation of a process. +- setDecline -> declines a contract negotiation of a process. +- setSigned -> signes the contract negotiation of a process. +- saveDataset -> saves the a Dataset information in the process. +- loadDataset -> loads the Dataset information. +- saveTransferRequest -> saves the information related to the Transfer request. +- saveTransfer -> saves the information related to the Transfer. +- savePassport -> saves the retrieved passport in a process. +- loadPassport -> loads a passport information of a process. +- saveDigitalTwin -> saves the DigitalTwin information in a process. + +### TreeManager +This is the manager that is responsible to manage the IRS tree components of a process. + +The main functionalities tested are: +- getTreeFilePath -> gets the tree file path of a process. +- createTreeFile -> creates a tree file in a process. +- treeExists -> checks if a tree exists in a process. +- generateSearchId -> generates a searchId of an Asset from the Tree from a process. +- populateTree -> fills the tree map with data. +- getTree -> gets the tree map data from a process. +- getTreeComponents -> gets the list of components from a tree of a process. + +## Services +### AasService +This services handles with all information related to the DigitalTwins and its submodels. + +The main functionalities tested are: +- searchDigitalTwin -> searches for Digital Twins. +- getPathEndpoint -> gets the path endpoint for an asset (e.g: digital twin, submodel). +- searchSubModelBySemanticId -> search submodels within a Digital Twin by it's semanticId. +- getTokenHeader -> gets the authentication token. +- decentralDtrSearch -> searchs for Digital Twin Registries. + +### AuthenticationService +This service is responsible to handle the authentication to the application. + +The main functionalities tested are: +- getToken -> gets the authentication token. +- isAuthenticated -> checks if an user is authenticated. +- getUserInfo -> gets the user information. + +### CatenaXService +This service is responsible to get and handle the information from Catena X such as EDC and BPN discoveries. + +The main functionalities tested are: +- start -> starts the Catena X service initializing with default values. +- addEndpoint -> adds an endpoint to the EDC or BPN list. +- getDiscoveryEndpoints -> gets the EDC or BPN discovery endpoints list. +- updateDiscovery -> updates the EDC or BPN discovery with a new entry. +- getEdcDiscovery -> gets the EDC discovery list for a given BPN number list. +- getBpnDiscovery -> gets the BPN discovery list for a given id and type. + +### DataPlaneService +This service is exclusively to handle the data plane information such as passports and transfer data. + +The main functionalities tested are: +- getPassportFromEndpoint -> Gets the passport data from an endpoint. + +### DataTransferService +This service is responsible to provide functionalities to handle the data transfer. Like the contract +offer, negotiation and transfer requests. + +The main functionalities tested are: +- checkEdcConsumerConnection -> Checks the EDC consumer connection by trying to establish a connection and retrieve an empty catalog. +- buildRequest -> builds a negotiation request. +- getContractOfferCatalog -> gets the catalog of a Contract Offer from a provider. +- searchDigitalTwinCatalog -> searches for a Digital Twin catalog from a provider. +- buildOffer -> builds an offer to negotiate. +- doContractNegotiation -> does a contract negotiation with a built offer to a provider. +- seeNegotiation -> gets the Negotiation information of a negotiation request. +- initiateTransfer -> initiates a Transfer request. +- seeTransfer -> get the Transfer information of a transfer request. + +### IrsService +This service is responsible to make the communications to the IRS Service to get the Tree components information. + +The main functionalities tested are: +- startJob -> starts a job in the IRS Service to get the tree component information. +- getChildren -> gets the children of a specified node from the tree component. +- getJob -> gets the job response from the IRS Service. + +## Utils +### JsonUtil +This is a core component from our application. +It permits us to handle JsonStrings, JSON Objects and HashMaps. + +The core components that are tested are: + - toMap -> Tries to parse any object to map + - isJson -> Check if object is JSON + - loadJson -> Loads String Json in Object + - escapeJson -> Escapes an Json String + - parseJson -> Transforms a Json String in Object + - toJson -> Dumps a Json Object into a string (with or without indent) + - getValue -> Gets a specific value in a Json Path Ex: "object1.key2" + - setValue -> Sets a specific value in a Json Path Ex: "object1.key2 = value" + - toJsonNode -> Transforms string in Json Node + - bindJsonNode -> Binds Json node into an Object Type + +### LogUtil +This component is used to print all the logs in files and in the standard output. + +Is tested by printing all log levels: + + - printTest -> Test Methods + - printMessage -> Info + - printHTTPMessage -> Rest HTTP Info + - printException -> Exceptions + - printError -> Error + - printWarning -> Warning + - printDebug -> Debug + - printFatal -> Fatal + + +### SystemUtil +This util allows us to know important statistics from the system +And are used in every printed log: + +Methods tested: + - getPid + - getUsedHeapMemory + - getMemoryUsage + - getTotalMemory + - getFreeMemory + - getCommitedMemory + - getInitialMemory + - getMaxHeapMemory + - getDiskUsage + +### ConfigUtil & EnvUtil +All REST API's use the configurations set for each environment. + +While testing the ConfigUtil we are testing the EnvUtil since all the configurations +are took from the environment configuration file. + +We look for all the fields that need to be included in the configuration file: +```yaml +LogUtil: + level: 7 + async: false + +maxRetries: 5 + +keycloak: + tokenUri: '' + +variables: + default: + providerUrl: '' + serverUrl: '' + registryUrl: '' + +passport: + versions: + - 'v1' + +vault: + type: 'local' + file: 'vault.token-dev.yml' + uri: '' + pathSep: "." + prettyPrint: true + indent: 2 + defaultValue: '' + attributes: + - "secret" + - "secret1.secretkey" + - "secret1.secretvalue" +``` + +> **_WARNING:_**: When a configuration attribute is not specified in the environment set in `` the test will fail! + +### CrypUtil +This util is responsible for enabling data integrity and protection in our application. + +We test the following methods: + - toBase64 + - fromBase64 + - toBase64Url + - fromBase64Url + - sha256 + +### YamlUtil +In order to handle Yaml files we need to use this utility. + +To check if we are able to parse Yaml we test the following methods: + - parseYml -> Loads YAML String to a HashMap + - dumpYml -> Dumps a HashMap into a YAML String + diff --git a/dpp-backend/digitalproductpass/bin/pom.xml b/dpp-backend/digitalproductpass/bin/pom.xml new file mode 100644 index 000000000..62eb79e42 --- /dev/null +++ b/dpp-backend/digitalproductpass/bin/pom.xml @@ -0,0 +1,269 @@ + + + + + 4.0.0 + + org.springframework.boot + spring-boot-starter-parent + 3.2.4 + + + org.eclipse.tractusx + digitalproductpass + 2.2.0 + jar + Catena-X Digital Product Passport Backend + Digital Product Passport Consumer Backend Reference Implementation System for Product Passport Consumer Frontend Application + + + 19 + https://sonarcloud.io + ${project.reporting.outputDirectory}/target/jacoco-report/jacoco.xml + + catenax-ng + catenax-ng_product-battery-passport-consumer-app + 0.8.8 + + + + com.google.guava + guava + 32.0.0-jre + + + jakarta.servlet + jakarta.servlet-api + 6.0.0 + provided + + + org.yaml + snakeyaml + 2.0 + + + org.springframework.boot + spring-boot-starter-webflux + + + org.springframework.boot + spring-boot-starter-oauth2-client + + + org.springframework.cloud + spring-cloud-starter-bootstrap + 3.1.5 + + + org.springframework.boot + spring-boot-starter + + + org.apache.logging.log4j + log4j-api + + + org.apache.logging.log4j + log4j-core + + + org.springframework.boot + spring-boot-starter-web + + + org.springframework.boot + spring-boot-starter-logging + + + 3.0.2 + + + com.fasterxml.jackson.dataformat + jackson-dataformat-yaml + + + com.fasterxml.jackson.core + jackson-databind + + + org.springframework.session + spring-session-core + + + org.springframework.session + spring-session-jdbc + + + org.springframework.boot + spring-boot-starter-security + 3.0.2 + + + org.sonarsource.scanner.maven + sonar-maven-plugin + 3.9.1.2184 + + + org.springframework.boot + spring-boot-starter-data-rest + + + org.springframework.data + spring-data-commons + + + com.opencsv + opencsv + 5.7.1 + + + junit + junit + 4.13.2 + test + + + com.fasterxml.jackson.datatype + jackson-datatype-jsr310 + + + org.junit.jupiter + junit-jupiter-api + test + + + org.springframework.boot + spring-boot-starter-test + test + + + com.google.code.gson + gson + 2.10 + + + commons-net + commons-net + 3.9.0 + + + org.mockito + mockito-core + test + + + + org.springdoc + springdoc-openapi-starter-webmvc-ui + 2.0.2 + + + + + + ${project.basedir}/src/main/resources + + + ${project.basedir}/../.. + + LICENSE + NOTICE.md + DEPENDENCIES_BACKEND + + META-INF/ + + + + + org.springframework.boot + spring-boot-maven-plugin + ${project.parent.version} + + + + build-info + + + + + + org.jacoco + jacoco-maven-plugin + ${jacoco.version} + + + prepare-agent + + prepare-agent + + + + report + + report + + + + XML + + + + + + + org.eclipse.dash + license-tool-plugin + 0.0.1-SNAPSHOT + + + license-check + + license-check + + + + + + org.apache.maven.plugins + maven-compiler-plugin + + 11 + 11 + + + + + + + dash-licenses-snapshots + https://repo.eclipse.org/content/repositories/dash-licenses-snapshots/ + + true + + + + diff --git a/dpp-backend/digitalproductpass/bin/src/main/java/org/eclipse/tractusx/digitalproductpass/Application.class b/dpp-backend/digitalproductpass/bin/src/main/java/org/eclipse/tractusx/digitalproductpass/Application.class new file mode 100644 index 0000000000000000000000000000000000000000..ab606fd64e371b062f8044fe4e717beb256888a5 GIT binary patch literal 4200 zcmeHKZEqYk5FV#T?%H-(YCJNRx;62J_uqC-IiEnQ}oZ&)`b5HafM!;O4iv2|86Bv!}i8CTi6f8w$p_V>VjN zgMF%vAu29iAuCUr) z-x;U8P4-mGrA;%P6tXxT4uz-w4sXPSmv{OQe;J3$HP_+Ki5BqtfqIsCJr)2?zm1SSj?BP&Jn zXaFvQ$x7JOSe&g#|G9R=@~uLp1A}YLAI9lagEtxcG)2w!B18|?rdaG6bmI~Zv3_kX zM}v5wN;RVJTB*S;27gX*rk6e#88nW>G!?k5>uEw5s-Hl2g0(DT2>2 zJ5}Lx6g!kZtMDa?q|2-VZ5{+x74D7npCuBYRu9YMu!A~!xCPiCV&6N1&ns{d|El;! zV+}`uIy8>WRq%fn=J0(9*Kgx)hGXMbxcvR%!q2eyJO0hUReTc{z~>sii5{uoI=qf! z9d5uII71vh8sTtr42QLX18KBv;Y7A literal 0 HcmV?d00001 diff --git a/dpp-backend/digitalproductpass/bin/src/main/java/org/eclipse/tractusx/digitalproductpass/config/AppConfig.class b/dpp-backend/digitalproductpass/bin/src/main/java/org/eclipse/tractusx/digitalproductpass/config/AppConfig.class new file mode 100644 index 0000000000000000000000000000000000000000..6f02506d7452bcb2c117167ed03ab5320a6b9e7e GIT binary patch literal 1701 zcmdT^%We}f6uoZKCK*Cg3gyuXaJx!b%xqW@Kq^%$Dop{=P{h)iaT2#Pwq<)l`7$Js zV9zJ;F^KC-9|Ns;NFc#tJihkv@$r3q`tt4r06c(|I!qDRvL=agCSXT5n8db*K@TpHO5>4x^|2eV#Z1v-gD* z?jeEc&e|S<+J;Jb9hwB%r`Sznlxe^PGQIRd8g5lK<|$27u0_V2P?F-!{fy`K9u1nk z5vM6iWClT+B?oNC=_=|Dk93E}y2G=&!&3JuO%=CPDo1nXk`Z-C$`3V4u9Bi_LhqW; zYYl(%ic+b_wK9(SvsN1+hXccM{#uy>nlR}F^f^6#^FMrKx6m48+Lz2oe1$znJ#~sQ z>fUG`G|QwYOc}njFRfy?bDfDqIBE;c4aQwsXE4u{p=B0z)~K+wkSQMsiSZfW4$fJT zxhguOJB4+A2T_zsAJCGxLK!q4aoqZ`q8_scn}<9pyoR4ZM~1WXnNrzbJ`_L$F1BC> z<_Iiy;?wHcbv~`SzPj2mzWhm%_qpjYEEoa{u}WCB$Bgjy(PGVwgeCAe{xhZDCD3ve zk6|C^ti@G#AY%D>A)Uziwj2v9P|Lbc{z-bEl-bxvrQ3k(1U~;l5BN`GNFdl%g-Q69 z@WGio>7J7YO`nW5)q#w;rk-HyL0s%{-_qvNY?Msr74i`me_BDAmq*mkki15Dv; z24-=rqjeWo3I2ok(0H{FyoJ`s38sys#{ewDJdUjr1(#p}EdrO}3NkGop|0ZpEZenn a*zTOeHVrrM{1hym@ZCh4;#b3)ZhZyuwi$*1 literal 0 HcmV?d00001 diff --git a/dpp-backend/digitalproductpass/bin/src/main/java/org/eclipse/tractusx/digitalproductpass/config/DiscoveryConfig$BPNConfig.class b/dpp-backend/digitalproductpass/bin/src/main/java/org/eclipse/tractusx/digitalproductpass/config/DiscoveryConfig$BPNConfig.class new file mode 100644 index 0000000000000000000000000000000000000000..8b418acc9fc2cf17a187da63ad56e83f797f73b4 GIT binary patch literal 3638 zcmdT{*>ck`6ul~?Sx70AvKAOowv@$Ye_)$|0z-#TIK%Ntx{%E)yg zg}sR|)#)Vy!!xSR3$UHQSQqcE)=C#)2Pwo)q~=D2EncUAieeEmE0m;I$8yLcbCs4$ zi%m}JSTNI=6tiHJH8`C@6}*lL-nt52uL@qO!W6A5Zm3k2M$86HY7vybj2(=UaOdED^Q3Z&zgESJ*u`U$7anDpQ3)Y-28q2vQ>gCve|ADX93OWdYE+Y^I( zaDU?egRD)s>-$q-aBDL-r2d%y^{g_C!gvMBu#3R%YVR5E&g`)ozOLtzXqoFphR3io z11ezQ64S!Pogas7Qy2ozYJbL_I4{xQ_JK1a6V>TnszsP25cXjp2DYfk$aENuBDIB# z85+fbY&`imkt&8E z5Nlst_kP=OX*yketq3Ox$Ue9au*9$GR=Dl*2vlaJ zQp=r)`RS9tvadL|Q}#hrLpqhpC(@p5-DO zgX5Vhx=NnNL3ojiP=)CXLRW`81eSv^45v`LAvg_ZoQ8-+;4JvK)|W6I!I5)t0WP<5 G&VB*M&{OpQ literal 0 HcmV?d00001 diff --git a/dpp-backend/digitalproductpass/bin/src/main/java/org/eclipse/tractusx/digitalproductpass/config/DiscoveryConfig$EDCConfig.class b/dpp-backend/digitalproductpass/bin/src/main/java/org/eclipse/tractusx/digitalproductpass/config/DiscoveryConfig$EDCConfig.class new file mode 100644 index 0000000000000000000000000000000000000000..a01169d444d9f4ffc35b91d923016453dcf64a3c GIT binary patch literal 3233 zcmdT`T~pIQ6upa;w4n+j_=O)Ug0_AnFFuL-0yr`PIzvT$T+$^hB)gg2O$Gm$GdiR1 z{wT+rrqE(LQk|;s&@?xD_vGAjceCf)_fKB{;0bsR3=vp2I`CsAq`%D?%vU<}c@T-j zaNlYc*wpO$brA~7qC~5D8rXyx;|EG^iqKyWCQuEo_vV}N%;Lg)e&;}ez*rM9Vlwn! zZfx_w5;(QP_XvzHw@22j7BZY8;8+oJm10t9c}ZFxa*a=i9}6k$Q=D0;t`jKCt2%e! z41v)$#G=+p7h#k*$!n>(QBi}}X`tdnM9c~$DN^5vcx)a~w^ZBWw2n10jY$a$c38;i zG#2i)3itL4_qq%B^1`QSU2#LDvNUEk*rFCe`EG(Wc7md|UZ$;=arJ)l6**H8CrVqI z%{57;)TU-Jf3Nfo4VcUbY;d|?^B+yg8Xjjo9b~w!{ zddF7v4%|CrJM&f{pA}&YewAzJVsMQWSGlpzm9cOW&{?7#9>U*g7{)7r1I1>9Zvhv_ zM=*MbSp@&x&rp6he)c1beZ^=9&f|5sIWh$kcwf%5U=l81MBpM^!fQ9e%dB;C5`gZX@BHZ7?J#om8oGXmlO0Prk%=H6(UqJ6-w9 zkU)a(`=h2kPRb?6MWsyH)_q89$B%!{tK*;l`18dp0QdpEZ9#*;n$dwDGa>yaY@7K? z4}Bg)A~D>zngupBJANpJ!m=pQDog{LFk}2c$$=R9cZCVmHrLOVvvCWW1de7v5tBpz zr~VTjSORS>!$b**-PyHb`hnF#4sQ_npr1$r4{NpM+@1UDxm8X94};njtlV85DVVw` zq_DS8Q*UXLKyz7zyah7^W(s##v{t$eACXq_i`3kxXq$&LP;nw6W`&XzBixU8Y`&-6 z&c+s}A*O<96iQg|lnpsu#Qb=>`SIT5$D7QLm*;1ZhKd_1m8CJW!4|a$%6Ae>N*NSO zz;h+wIa|H=RFPXM;zVgn-CC2ltPV7b`R__Ur2&)9fIg>heEwTY@=&KbkJKb6wTd!o zpC!E88I!%QRl>Cu7>K=Bt;R_t0%561aRDYq8mqD3m8N+i_m-$IG?gJA2#En4;0*Rz z8rib6NAIP^x*3$BOuC5Yz$M6TC$Ii@*mMwu{jm6i`(W+y7LTs#LcHzNg{Y9a^+|-A(Kg<7hsV*FWW7BX5<_H|`O;QkdX3wnQ z?|MCr`&@4@Jcb=tQ2~oKnHFxm`>|=agdwnAD_KE`GBxD(j-x@3drP%qmxxdsP7_$z zn|vVmKx53VF~9ZxDO+5~ozE+dnbq#|7&k*_GA(sGQz&uH9CFT#ccA%S$Fkdi@a))tr z1tkf#-Is9W(d^OZF#8%u4LFYPscdE*PGH~3qZFKkkFmvkz$f^gM3}EYIA4kIDV!-G zG#q+nLlwe>N`$jOO9+J*RS1_W5f)&vgs`^_*D4V{gL5T>!iLW);_zK1!j~{tLMUvg vLbzFh(1aewt^rH%RhFR!e2wil_;~ot;*5{@7oh`}u)Tuqb^PAM{?)$#X;I%g literal 0 HcmV?d00001 diff --git a/dpp-backend/digitalproductpass/bin/src/main/java/org/eclipse/tractusx/digitalproductpass/config/DtrConfig$DecentralApis.class b/dpp-backend/digitalproductpass/bin/src/main/java/org/eclipse/tractusx/digitalproductpass/config/DtrConfig$DecentralApis.class new file mode 100644 index 0000000000000000000000000000000000000000..0099612755b05c21821d480195848e4ca75894c6 GIT binary patch literal 6059 zcmeHLTW{k;6h1C#o4BPd-3ym;nJv3)3X9F{iJP>vthS(zkML&9^*oduSV;jxDq8;Mje9IG4$Q@h9q=OuR(BrWtQo~c>jS*28C5~sfrajX z_4`~nP}WIfS2kIQ5g&5F&BqRWRviZTcULy{9a#G!5r#)>TXeYQjgZ|GLKIO%li`=3$CT zFqJq=q~9lQrQT+wi8-eVgJK#S(iS7@D1_G)!s`j)4GZCALadXfWSSsr5>XShi9t|y z6l2y0K~ZbZYVBFBUcn(UraX$JGQ{@Pu@&w>(TLrb>W~D~rj0Zh>CO4Sc1daKuftK$ zXeqgpj6P2ZYm?bfiP+}g$%&i=Y-BU7V%5co=qkCmb_z4W!j^dC9+z_4MOmT?{ zZ4^G^QjzSLt!@ymNg|r~+zQt8$Zn#IU0G?j@B!hXBM%v&sC@f4f?GLT^d~myQ{t6r z3Z^M=&t(cekuqddjChxC3&UFWbvIP<28+qrzW*l4^zmbjH{v9t#?)*)WhWU`um+O@ ztj<`EX%d>jiruZvS*6B;+^^DuL0FV0Nqvgd{cfCQwf6=6_%m_x_iWT#`G2rz&*k^k ziNEL(G8I&HycrjykUA5ic#aiRaNu(k?!pROS_Bs^J8&t-cCiM^@(%tS-btbcQ+0~Q zhBZxOK*N2ixNUbYmQ0(Yp|Zbo7M>HDGEY@4nM#Y9y{^x6vAQvA3zgv&2W~yunX$&q zI707@_|`G2FiScT*yUQIy;MhA z2G>ma4%6ng)CR5q3XKM43Ab68!#%)!_gL;8E9ue2NEa4xzl<^OVXs*{y5GUdSF5Yv zz{MZ1H3QG$ehy;**5EnZFQ(@%JP$8m%Ob1|AlSH~2rt4*xd<=kaQHcw1A)r}2s3>S zS8@=3$whdz0Eb_55w4!XA#WDHCR0SgvD^@Sp;3W4nYcAKpnLZu|qTw0epF literal 0 HcmV?d00001 diff --git a/dpp-backend/digitalproductpass/bin/src/main/java/org/eclipse/tractusx/digitalproductpass/config/DtrConfig$TemporaryStorage.class b/dpp-backend/digitalproductpass/bin/src/main/java/org/eclipse/tractusx/digitalproductpass/config/DtrConfig$TemporaryStorage.class new file mode 100644 index 0000000000000000000000000000000000000000..3a918ce5d3a1301e708624f49367ed9231e4a488 GIT binary patch literal 5639 zcmeHLU2oeq6unHd*jC&mOV@p6YniMc$=XUUdup~lENjsKZaN@Yf<7`5?XZzZm87!f zPwZh2d)OZ-umT;h$Ni{bmy-Mu#H(%82@=2$mPP66@bHl0y*mH=`{!E#_zr>!OcB^K zIt&sfWblF=u|Vloz{6Oih6h%&&}QaU5Q&zsEKaqGve2f?m>^WLDO$mgR&V5Iw|01v zD$Vrqw#B~|ufQ~cg&Z?xvK2hrf5Agbpu#2Fk9kC(*7!lGm@~Ofpc;!Nw<6*0@}{)B z#Wh}@`Bq3_zb9~gwG-UAy|znWdP7Cn)l~xX-L4*Kt#lRU$->`1OU;dnk9b5wm82qO zRwzkvB*-B#52;t%Ip8$HAv29ZDGLvgJY7K@{89(Mt%HAB2fxr^g+_`SDwU-Pv*7`? z2+CijIO1MVl-hSv`;MzWViyHd;Z(NNJ!?`eWUHxJ!hccvkcLb;0{fh{$NavJwZ|#P~FO4H(fSzV*T&`d_WDI|}4`ZP1vt*rd9_?QZLqz*Y{IP(W55xm;jqF-9k zC&X(L2__PF7gB<rjKm+y&{n9EIZR&IOro;K$)smh5xA z7i5adPq*RS)|(NxK561xlgQDfey!Yj2jE`L9SgsNVZMKk@dD!rbGT%xXGRCxNf5`58v;CTK&!f$;MzJwb+2we_0`*8TZ wFTygc^dNLO^h5Zg55hEjg}kTW7Tk9H5sSbbSVeswV0#Adtie6-^O!sT0SL`Q6aWAK literal 0 HcmV?d00001 diff --git a/dpp-backend/digitalproductpass/bin/src/main/java/org/eclipse/tractusx/digitalproductpass/config/DtrConfig$Timeouts.class b/dpp-backend/digitalproductpass/bin/src/main/java/org/eclipse/tractusx/digitalproductpass/config/DtrConfig$Timeouts.class new file mode 100644 index 0000000000000000000000000000000000000000..6d5d91eea979500d27c9c3842169d5807a2921f7 GIT binary patch literal 6226 zcmeHLTW=dh6h0H&_!gWrq};+~n)bor;^qE80SQv7Msicym?9o0yJLHr-I?votlRz= z-jR@ykdP`B0a71$;71|OUJ^U?7JG$jrIH`K;%{Ski-81|B{m;Wc0N``@qzp?0 zt{d$-0Ta@>%?8X-y614$7op*f)y%b#x#xJICoJ*>kQR+~%$&uxvQfZl6H4y(=y6aeawEUGko?f?1&?feH>NO_yuD zkqz0oEAYly&+41}PQ;D~%E@_+6zB zsmo+c;DFPkIse}-2~Bgyp9G!6MONeorkN7yRQhq2)GErTy&v*g^+YT#ddRgEsO*3D z+PAS1&tTAQ5ciYY3M)%dI_P16UcxlM(kk@R?1Nba@hwaC~wvyyK9eJbQY z9dgQW<@+ZQYSpKU{>+NLAYNTau#lj3DkbB_>5Z)wk;`na&?;x)Em? zHRYP6o5V>gJIknoSwg#5ov|LX$hV^vJFCrUrN)AMT%|{Yuqe-x`T{H4H!f5?+Ck4> ziTx-H@r%QJ$F#(4_@vGH{0Yu~#8bJyDz;1oS9Q7>7o;$|&$@yGpQ7*@G~k65sKW+< zbItb9s`kWA6tYoobKU z{mkj9H@AI1!?U>e z<`KY?j*qq?NBi(S0#{~}m*^-C zUC9p#l(XEzA+HHzutasxYr@s2?4h%GRT&HC0S!fTN6#d`Wjq3uA#E#JTg}>9($=v@ z9aix8JjQ;6y$QCp-=OjR`q~3n{}a!a;2a*8lRKO6BL0u#F$!LSm$4=A3cQNPafHnr zgdcMeUWYeE5SC)}ghL*}Pq_$h7U1x6E&?sU;g?*5^94Bknv1YifWw1agbM{YJj_M7 z_yi8koYnk27vZe}93JH&y!`|YdHL{H4nhgu!5mtGccGPJD#7e>;C-lKjsukN>;w2X HiE#b}H({R* literal 0 HcmV?d00001 diff --git a/dpp-backend/digitalproductpass/bin/src/main/java/org/eclipse/tractusx/digitalproductpass/config/DtrConfig.class b/dpp-backend/digitalproductpass/bin/src/main/java/org/eclipse/tractusx/digitalproductpass/config/DtrConfig.class new file mode 100644 index 0000000000000000000000000000000000000000..3de83e5f227d77cb057cdea7a3fda1534f7b29b6 GIT binary patch literal 8215 zcmeHMYjYbl6uk-|e#FhYKocHnDB$q0d6ZXE%A|R;Zj-iPlaiqfqpW2|&3bpyYSZMG zF#|I&!$*D;!`0f(u5C@?9X6SECLe6ABLp^lX_Z?{ zIOV78fR$a@EOW~ip3lolGD`*iVYx1vLNVKuZauJ+$9%tRxlThg%WF!mhF2LFB`_62 z*vx5`AMQTomLiZ57RbkWQ1a?w$(+7?2F4eik z9gK^;;t8D6c3QsH;<)H2hcV`=cI4rNW;Ua+R+SV^6Ah-hQ}mv>Cf89HDLzc&WIwO<;7@t@8|ACNLR!U6<08 zS$LI9{r!U@x$oKsyiP5*n``H<0{%>%G#p}LHVJFITZ)RgevLWEorW$gf7}lh0Y&E^}W8Q zgWHg-#h*?&iVh|64La4wNHZ%?E)pthV2~}$ad%lSyJUvMis7bKG$Qb zGl5GbFtR7#)lRb)(5TY#Y+(sS{Qzf*DeCx2V$E_TZC9k?5*0oToH}m^hu2GVEAW-h ztnfDbhzjSx-RG3y%J20e{=x?Rf_UyC1Q#L5KbIl6?YcH+&MCEAKSeZkxf?k0 z;)luE*1t5Fo) zoN~yYiQ|Mk&(b^(b8w{q(=boqa&b^w(JIK~CjL2m5VUr=tT7ZevK*Mwljz{4f=Z)t*;|0!8ZQ~%Ul!nXye_n@;0<^a zdm7;_{O%&;a4abT4d>KFh&U`7III~tT!VLF97c{gm=Nw55#ELOVhAU5xMxHt!cq+3 zWDZ+Kg!kct7(&G1Lqi-M84*e_A47;Zm=LN)gmMB7+eU-+x!MkMI6 literal 0 HcmV?d00001 diff --git a/dpp-backend/digitalproductpass/bin/src/main/java/org/eclipse/tractusx/digitalproductpass/config/IrsConfig$Paths.class b/dpp-backend/digitalproductpass/bin/src/main/java/org/eclipse/tractusx/digitalproductpass/config/IrsConfig$Paths.class new file mode 100644 index 0000000000000000000000000000000000000000..22293aed36620e9ad161def44d6066d7686dc401 GIT binary patch literal 4160 zcmeHKO-~dt7=F7f`!TM72!0`2ki&ABxp?yHAd!dxBmqe{c4x|NVWyq59fZH+!K;ZT zdiO^e-|jBLW>+1OWfLQZ?Y7&uPoL*$o9y%b$LFsA@En%PP#~~wbQmN|$l!n-u|Vl& zz{6Oih6h%&&}Qa1h(uFZ7N=T8S!h#cOb{x$FPg!cHY@Gk(iXEVQ-&gesWwo|WHWf% zIN+frFm|9C1g6)|X11*sviX!i>6wtiz92AL@1I`YB~V;Z5ii3v0+VOUUums$1+J6Y z#yhFGQSlLvXsD7@#LNmMDUxl(JTXtGSKVoG8lfttu_$HXA!~BFh*JHoRR2_}-!Ikg zNL{3n;)Y6PX~JySq835BC_y>6~h&J7)ItpjJ^v?MceLYESK!Rw>t3pjUrh^-`&rGx?XQ&OI4M z(OQzmA{3UI3<;vW(pZhxS!vq2ruAhi49#T3_l4w#*Xm~uYkg6lLAm4i&eN`?S^3l3_q)L1F?o~cR|HHG%B{^47 zK8r_Rm5cnTr@Kf$?tETca^ zGv^Q-`b80D;nqNe+XFa!7|7x7Z&VCI_&5Ne2=|b80p{So+UWf8~DCkl_+ H74tsGi@m)thywniIIm+c6QEu^PTUUN%rfHpI^QKz!L~^FhtX?9(6-hRwMhQL@0 zEn>13yxiR4p(T*7iioeW1}8ASe6YM`wUD)W0$Cv|Tw-8h`I%A?XVSfVETphc2~3ub z?kR5&$SkM|&%rqYqX(GJwN^S0qola_hIvH2!g`(4 z3MS1o2E{DgW;IS{Pzk@IgukzZe^d#-t;7tiC~l}!mNu9T>(nAB-;FWzUQiU)+SZTse;l;JouZ_DW&%OnDP=xbED1e7{V;MgK zSDTGZuGblQ3Fm55$f6CVg`0O?W^7#;0&B~C_gUzUZX}qZu6c6q=uF9t!!>RfyXI@6 zR6c5@@-RgpN@14zrX|ucy|fBQa;f70hmm6EZqDa{5|AmF_3<*J2SslCY>K5W8K!uY)k literal 0 HcmV?d00001 diff --git a/dpp-backend/digitalproductpass/bin/src/main/java/org/eclipse/tractusx/digitalproductpass/config/IrsConfig.class b/dpp-backend/digitalproductpass/bin/src/main/java/org/eclipse/tractusx/digitalproductpass/config/IrsConfig.class new file mode 100644 index 0000000000000000000000000000000000000000..f4709b29f9c235412cf50906d70ac9f0e22d1a78 GIT binary patch literal 6514 zcmeHLTXP#V6g~=WY;TOyhL%#wMF|BQE;g5P>jh{-(t5@z3AxPlfd^%+*lO0&jwFZl zkHHMgz$?QWe~95|*UhfSJ7L3YJ=19(cC{-XefrMPC#}!<>z`kL2Y}mfzYH@3){ORB z114na5j$iprF$*z2O>1QWi|8d&>Xe8q9-g1Lan+(--gVXmapW#=(XC~tVB;`C=oax zK?F?pTHo(I;=UzN=929Nyi1_kxvNybnY>A$!euv9LZZP!CmFP5wU9mhy<|1#1hzWG zkh`{xa4}B=KNm9FHv}FOg}&kN5O~gKL9oaCgB=|Zn7t*WuwN7SyK(IKq_0JBNO@Qk zWbD=?<>g&mpcU2SWmq6EpDf?1)=F34BB`zKNX?B34tbaQY7mNmS)n9F1)&%Q<_7hu z+kH;EC^e?hD8#6-9;ZvFzvf7P%_sV6PU^22>u-s66*p8WO9#yQeQFVuAB8BrG$^X5 z=_KBCT$`tyB4#QEq0-hlLwzRQgnOJm@o~(=!JE(td0(>u|4HeCqK3p09_l!llRT(Z zlu`RQYb!8TCyyF!(f_cD_h}JE?Lim_Us!5}ND#v-jn#O@C{5!Nq_Iqe zp+ni_`$F<=ldcbqbxRx#3m#J;57hyu440%oj^I_N?aj33d%Dqky6De}hKl2PhE$z$ z2=eX6>09LrLq1w(n^b8ppRV!+^f_FcTrTG_$`|74Tje5uwv}>krCjkW%*cZa@Ny06 zaGAiRMs`9n-@(6!4~Bz1uD4yn=@LtY`PeSg!o80=OSUgC^}AnCj)Y0y3k{bK{hUFo zpgGdXYf+GKYUham`79F8mcU$(+tuT`!o|k&q*(=)2n0Ej)55fiRRNQxRY8(b^a*Sr z!-DD?@p@L^T>^_Idxx1fmS2$4h{R^2SPo88W%SY2BM9si=VGeBfis{3@eI3#@lQ?Q zoT#G{E9rVp9p@bD@FKm9s#|mD>FB$5vjU$IkSDK0R01jRLrB1jbT*<>OKMKe8E;Ds zwa?dtI~eQ7MZ2gTLg4BTLuti;x8>y-eDh1`?@>tKZn4a<0ug3EA+z-B?)D3Jh$EO{xzcPP2hVwGWStk4;s z6zK1|Fb0c0+gN=uun72Nz$)vx=$gelKp84gTLmv_=b#p~FGl@!98rgPyr0M3>p0qt z@_vI04;Nng1up%8Z!_=;-e=JU;3{0fdo6nQ;8lEw2;sF9g0nk4!s{u7(*HtuBZc51 za9R#;0!<+#UMyzBp`96rx8QOLVdj`a7Q%Wa!Zmn1g^+M~CxgRgCPD+2QwRx%EQFm* zg!kb66vD|I9%dqZ03W6hPUi4qCPMQRYr!%RTBleGo{8`ge4O$kiNhxuYaucbuES?3 zgd`4G2!jlS5`2ytnt?CiOQ$7#`U=|{c-_Kl0pD*U{x?vCZ?V0L?LF+D#r_po{TGQG B*iirg literal 0 HcmV?d00001 diff --git a/dpp-backend/digitalproductpass/bin/src/main/java/org/eclipse/tractusx/digitalproductpass/config/PassportConfig.class b/dpp-backend/digitalproductpass/bin/src/main/java/org/eclipse/tractusx/digitalproductpass/config/PassportConfig.class new file mode 100644 index 0000000000000000000000000000000000000000..2ff732bc6d5db2ec9f397ebd5ca46876fac4e64d GIT binary patch literal 3342 zcmds3S#Q%o5S}e1hbg@%XE~N~rGRX%2SfpZIHZac5Gj>-+}PV>sqM9P*QNX|UXVb7 zcYYLN)^3xA7@CR{Arv_tuV=rV@0&?xzJ34n1pw~B%`%J-c&3%_MNGurTei+TsahWQ zLy>6i8O3~)>J2XtEn!%gC>f-_Nto82FXL6w@?N5yNM#;nk7XDoFqz?mEN*!(ns2#p z2#jmal;2(q8h)EcjKFlg>(nqx#H|GaWu_B!*91!Sy3hufstwVKnMoBVa3Wj0+rRTZ zI+pH=SeW|+_SNQB2#h|G0WZS@fr;)xPn43X0#l^ad>t#UWw_1*>dPn*Au~e86bUv% z9_c&OsV=uU4NwWD&?#a58f$Snhw`|a^0-^_xc&0Dxjb_;kX+MP8X7UFTPPT$}a2W_^F-k(=3qy5^(P6p7+9>=L zNJaDVuFX@SX&MK7Rm41S=~9X(W0tdR;d?6Lb-BhV!z{FW5uEDYq7O@hVd3m8+kw(K zEGmEXuwe!Lzv2v(jKAyTz&IQlg99)_;Bc+KY1u9{QO7@w=V{dBYMEiqq z*yqi~QPURK6qo8l?9{fm*77cEBRQ4Zh0WEzpDkd}-R=GA?Jx117B>&Kx_zZKzt!(g zZkmM~D{z*;hXGpmKUU@h9KDV16moC;G!M-n@9vg-&s3SyB`~%mw8l|q8Ak~XX90&loNGt$vmZ*CRfY<#Rx{gyGTH}V z48ITJ$}RLJcy~U-_?zj;k1+i;^E-^+rR>ct96{UqqZb^7V|cd+$MJ+5^F#+}#QN+S zX|{uOvV&wf>=x-1obDi<=^%C4(E@h23)#)>z^({sp%CdDoJY0#mA+6A%Y#CMOE9wy kp{sBa!s7yjeNaO!M_?WR<-N37a&n{g10bXa^^#A|> literal 0 HcmV?d00001 diff --git a/dpp-backend/digitalproductpass/bin/src/main/java/org/eclipse/tractusx/digitalproductpass/config/ProcessConfig.class b/dpp-backend/digitalproductpass/bin/src/main/java/org/eclipse/tractusx/digitalproductpass/config/ProcessConfig.class new file mode 100644 index 0000000000000000000000000000000000000000..c95a31a67683d094d597e39b3987b6eff23e53f8 GIT binary patch literal 2915 zcmeHJS#Q%o5FUp#iPJ!#v|Qy_%9Q}J%ONCgaY{wu5Dk@h+&G(bTYJ~qU6=C9kU)ZW zeiUNXPD!Fzkcf&W9_+nlzWwI#jKBZ*{1pK1!;LZ&9C)Es;761Tf0J%gU#gzZf{@3W z`9{&eBznj1@E$ibjFs#pfr+Wsejr7c_xv|X22ATG>8cDx2M(q%Ar(FUb$gQq#(^1a zq+$-Z&Bs!PjEcJs?CWslzG?Dtx$Q5^Ds8=@0bzz7O$6lR`OB+IFKgK$j}%#$t`=;MME8=4Gw2(s$-v+@t5vi$sm&>lifbl*P~n#{caQoHH@kHa&`byYY3hifnk z3l1#S$Lp`Hu5(TNUS1_po2eGXf@ur23~0Dc6}RjDX3=bL?Lf1+cP#|Vf33&N+Mw_+ z)Ena@D{#_*aDpN~iAUT?gpijW;pHOD)qbOzMUMTXzgvN`4u}b;?crBqTjhXFt^SLQ z4Q9pqGi$&VYeF_H;qFu0f=jrUPO57%Q2~3-(|C_G_Ox#~u=F+&hDU5wY;(;q4<6aZ zlePg&gSqBNvByXrAKe+0f7|3^g;jZ{488;9zAMUbZRGzUiwk=GCD$5TUJF}_hO>Y_ z0r&$`gaXV!31z4OXCEhzv*(^W$(|oSzkCCLCr~dy&VdhF1%8Ke;qTBr>Pyw~ zSrGA9Gv6p0m_+aUA#ZU*qgcr>2~142_5&%ldCOmCL87=hSWcG<&l1y?ihrVpOVQmc zK;D6=lslrL<-cz3u)sJ_XvV_A9Vj)Hq>LC9iw+bO&br$ZkGbIHsROgMKA=CTZ#s}) zmLV%Z#evBI{d1+HD#AslIQLE{re(CpLK4VM%%fBl!77>&>*z{DiRxN<{O!a@LWwzunOi!7 zeWPT|l;P;u?@z6C;)n;_5S`!w?4Zy_;q8-(bgxjYPPitC2-!9lEcD1~qK!2^Jr*4h zF81UuBNUBkA7yY$r_0{E&wr?JG}Qm2bhLU#L!Hg4NAu?YMxD*hp3SQN(VOZ*8Kx>w zgiC3-7=(v)W5244He5_L@T0Ppbec?UP|OPsOgCgeqfM%~UH3Ngrp>hjv~kKQ3Zv1v zn$_jDm{~eZPUTv?pNNWZ-2pK|<~hNppd39Ur!oj?R%#igzU{}kG9m{ncU>kbU@y3J zcIIe`OcRm=l@%eFT8=PnGF^bX4!k-+lku&YVf8*H)1E^pVU=r*H(~>G40gG=#@cI9AfR z3zuOQSC-+*5QD{y%WxI0WirfVXxPfsFb_9|7;=3LSq$$p8E%fDfo3w?8bbriV93L5 d)SUx@9YYVX9tWzhfc<%Z>pZURK`lj8e*xaJ4c`C& literal 0 HcmV?d00001 diff --git a/dpp-backend/digitalproductpass/bin/src/main/java/org/eclipse/tractusx/digitalproductpass/config/SecurityConfig$StartUpCheckConfig.class b/dpp-backend/digitalproductpass/bin/src/main/java/org/eclipse/tractusx/digitalproductpass/config/SecurityConfig$StartUpCheckConfig.class new file mode 100644 index 0000000000000000000000000000000000000000..f1ff159eaffae07cb94ad2547fc86214a8c6c33f GIT binary patch literal 3351 zcmd^B&u`N(82wVp+NOn#jR9l)Fl9h{NiLiia9B0OL^qJSP2z%Z6R-7}+L7&yjROY` z{7Xn6!JR(}@g?orPK%%wn*^FFxwiBC^1k<3%KP#2%Qpac0@WO3EO?`p=XNOxbKbB&^&iS)kf^A22j8Yr#xH9Z=D7Up9A{XDrA!Ly^ENDAZS^3>X#5xXpa8zdiMs3vQlTFkcw}29xTx z1=*VPSq@4TOb_{2m69qC7p?rlmQYN~V2}C4liiR9)Nm;XR?!StS3e?lVYAJMkL6N@ zppbeU+G3=P9yomuoI?+s;~qFY56Z-sOcNmu=~Cmhi9u4fA7YuKq-e7f+w82B@mF;@4j0pP{HSb1-6m6;6!U@wvvujwV4Er)ult)>)8^WOxAoIa zQJ9R*RbpAi7Bee@8jb|`jrkmq9PaAh}Sq&)VF z$JWjrjgd)2vY@mk1XHyD<0jKNxNE_S6Lc9HnwD1YTafEJgbLQV)_5Z}F~?w+^BYW? z=TaNE1K1D@(HZ=mhpA+iOa7|}#1?_eWSpWb4 literal 0 HcmV?d00001 diff --git a/dpp-backend/digitalproductpass/bin/src/main/java/org/eclipse/tractusx/digitalproductpass/config/SecurityConfig.class b/dpp-backend/digitalproductpass/bin/src/main/java/org/eclipse/tractusx/digitalproductpass/config/SecurityConfig.class new file mode 100644 index 0000000000000000000000000000000000000000..325989fa750a19a0d379bb4eae42172eedc66f60 GIT binary patch literal 4201 zcmd^CTW`}a6h1CvT}xqOT*tVWF;K@Pc|k&ATm%(J6XhZXlXwAK$7{_JJF=az@yC!r zf)}3nQHYatW2qXAAuI;0B(a{g$jX3)^I;!Qu*)LD)Y7J z`htftw!(LYahKRNKagGNSQr}}B;3W!TAypREW7@q;E9oLy_MZoVT8a$h7&T?^`Ca$ z3GN6SWQpr(BR?=FwIaaUB_^G{mj~|?na7;gG2>pwt)Ad3mcZLmb1vqJU_{ z#VD;jC`!spb?l{Fy+2IRXDXvu8%NW*Ha1dqmko==du>)IXDTJo5p=WWznzlNOq>i0 zvHPM*OuwbW*{Rc%QMVq8dTk)~nbEN@PGZNlpS2Lhq2$t0o8SaoL1mr6?X3;%@7v}a zm6j$d5X(}Dz@v{7>(a(&)53Ks)v8_*lwo6fg9!E7?xNq?{Xa~1R?p6& z_GZ;P>&^ciwKrFGZ&v+}Dzy#`INX35OcFTOY;T!|MVG!+=Tmbr-o}^8lO*a0^MavY zATZh1oP|rw$n<{W;fU)=bZ?K#^gHMd_cc=v6J6m3%oPFNoGUX`p*bCcX#(fBcTZ@Z zke?mm7wo>Z-0V!=72*2KaHDaH4?l$SfZGv2NGtf;52M*t6~^#9iX%0s zUdNUQHhQ2oqnk*drT}0Ml?3uNxSTQE&{7<2gk*kweJF{t)3LOcf%W zD&TOVki%&>lS8Pa{4x$j2=j#qXW?89VXKNFgu8_ZH0$(cC%5O&DnQr=GswFF7hpE) aZv`&m`4S#YJSK5u4jEp-eqY722eqF*Wmk*< literal 0 HcmV?d00001 diff --git a/dpp-backend/digitalproductpass/bin/src/main/java/org/eclipse/tractusx/digitalproductpass/config/ThreadConfig.class b/dpp-backend/digitalproductpass/bin/src/main/java/org/eclipse/tractusx/digitalproductpass/config/ThreadConfig.class new file mode 100644 index 0000000000000000000000000000000000000000..5df3f06c485ed4e2bd7020d1219ee6cb2f815655 GIT binary patch literal 1814 zcmdT_U2oGc6usWMwGD-Cg&|;kczf!El)Ugn0STrdRdj$@8RF4(+}2xSN48VOFGB(e z-uY38>tS{$?@^IpZWUj<7WVP2y0cCBha;mM=6sk+G7(IX)}rhPh@6A z%b2wh*J>z7QGaX%i#Ml66)FUlrYs3lqv*w8PjE+I@qtv* zJt8pQ-qIa6N1K+q$f|KTk=d6uC}`-T~XUf3Dxsne8E z_dXLry(o&@6zMzdX&Kv1vqW;~sLeBBFz?DbgQcboEvl%!L8Ya+ip5YW%+C9*zwKS>|vmu=jlM0KEwVZ(CTTtSfH{0xfJI!ZXx+oN1nKfipvt6ITc6SEbJf7io-Tc9K3vG&51y8#D9aR!T1ONa4 literal 0 HcmV?d00001 diff --git a/dpp-backend/digitalproductpass/bin/src/main/java/org/eclipse/tractusx/digitalproductpass/config/VaultConfig.class b/dpp-backend/digitalproductpass/bin/src/main/java/org/eclipse/tractusx/digitalproductpass/config/VaultConfig.class new file mode 100644 index 0000000000000000000000000000000000000000..e61f37b871d15852ef445e1fe65b6565d496191c GIT binary patch literal 4725 zcmeHLTXWk)6h2CWWh-tRLIbpEVF@>fiv_e$XhTXGdU5Nt863heJTPl{t!yhxn%z}M z{}wOIzzn?edw6CzE6K5pcZfapWD3JWqO)hue){(8Im);B{m-9&1%S`tfemvO+?B#} z`;>?7BYH^PNcb-E0v=1|DnUJ!$RoGQeXeK_i>RA;DyCApUKIAY@9xtiP}`|(!@LDc zDM&y=-+kD5#5`reym}Hd3zl2MskRb4^snPwj|Vts$5b7(S!}^VESOSHc5xn;R$4cs zC}1?i&}x_U^vm{Xkl>OM54$XjX@-jVOkj*d6(V;M#Uw_wT3jmhR@&STsY(PcyO26J z#<^@_U}=MgTy0u#roO(9|KE$Z=yl$Bitjv4#sRn2}JaE~h@6I_5N7)m9ux+6id z%B`;xE=huA*5e^&x`#7)4HlytWG9hI&tMdxp+1@nxB%%?vXVc6)9ixszL~}Q^7c9b zO843cA+y`v|464@PygDCPu2*hA2nH5oqp7;`uIPJ1BsKPR=TCh?dml0Yw)LQtL z;6c*wFtJBb3TW*Uc{JFkg6nbaoL2`NWy-zQtOOV;n3~Vjmm@mqTz!3EgGGM1rXK{&xC zXW0A}ENXs5O4a%?BV8O7q}=&pYiX5gyA5cBybHO69l( zt6wFd;(gW(54q&{5!ljtI#sv$4XCw7G%P0Y{HSNBYH_ZFccdOavf(z~obuwe;VusH z^RwX|-d=QmZD@_$$+CXN%hV2+5(U0)Iti}R-sm zRXCfD7omo$ms0!r)Lw=c&~pwwR}j_0r}GP}e7pS8PjLRXH0~n)E~PW8a0%^d76q@s zt2nZNq>RQ9)(i-jjRjVaCm4$co*I)oaV5i-Z#`k+lb)82L*&-J(v)_F(P~j9~BUW94;F; zd}l=X7(OW=3^|w(zBeLVg-@|FvtIk`xVnd2t{J#^Mx+h=_s;-n^B8H!$%Nz^kj}sj d?5#QY0=9IIp>-3V+xWASj_2VP+<_+C{|laF6=(ne literal 0 HcmV?d00001 diff --git a/dpp-backend/digitalproductpass/bin/src/main/java/org/eclipse/tractusx/digitalproductpass/config/WebConfig.class b/dpp-backend/digitalproductpass/bin/src/main/java/org/eclipse/tractusx/digitalproductpass/config/WebConfig.class new file mode 100644 index 0000000000000000000000000000000000000000..fedef938135bf634782a79d5af5aaf5dad742fbf GIT binary patch literal 3074 zcmeHJU2hyU6unN9?(PthHZ*)Re3-VtrofC;At8|vsf}7C)hv~o(5jE#8E4~m#xt@# zOZS%{fdudU5&RUy@l2MEk`>!lMexvv@z^u>9-nKU>+5HK{_-0UeNRz`78u>JCW&&P zbo5w^MO2tkB$G^)Rz}W<#8vibl&X<(A}dXiR*5TxwNX;&BQ=U1%HeL^>(C;j3pGS0 z^eDPFd@K{k==`?Q%Iz>Z*WY}=XmPhlWruofl(=vCt@V|74QyEc!yKo;aT2c!}|(P3u(D79M6SI zj=2MXSL9FNhceYYx($bL9a0heHMN zfT)`r&Rv{Aw$L}4l^uu@OMa_TS^6(}9youNyaHKI51v!buYhoC;^a+Z#N_3D1M1S- z%d|u*jMn?{^9s;}v*jzqY7D9UP~}5u4!zzPt;IzmvIoK_KR)@m=#G_Tv=_gg^0kGD zMVflaovaYRFZScM25Wj7_bcsGF8B3VSp_~f{UKhbFFb;Hs>H1>z0b(KKs}p!%n@dr z$v>Mix{T~Zb*_v&EoE@*^<$q0bu_&LHPXVtkkPf~`*u8QU$?LCZ0*3MOCK}#?Da+U zCL??QX+}b_2SsHPc}MwFTlxDwS6_L2?wu}Z$dskA$SPQ`B0UlxMOwp%(K~br zR_iBL@8Ug0TR^`-dv6BXjhSd4&}H!0fad~zI0yBk8K~dRKwYFyYCK-!1wg)v@ijc3 T;UNm~_(S(|>eF@liq8E77HZ{a literal 0 HcmV?d00001 diff --git a/dpp-backend/digitalproductpass/bin/src/main/java/org/eclipse/tractusx/digitalproductpass/exceptions/ConfigException.class b/dpp-backend/digitalproductpass/bin/src/main/java/org/eclipse/tractusx/digitalproductpass/exceptions/ConfigException.class new file mode 100644 index 0000000000000000000000000000000000000000..b7756fe088a72887588baa257a76bb7cd9783965 GIT binary patch literal 1477 zcmb_cTW`}a6h7|SbmnTPT>B7=JadJ8L7hU)0T&a1RDFPaxxZssxPhVMB;@~+Oa$=fqJu*CW#T&zGp@u zirpqq>a!>n1d2PlE6PwMP@4wZHAb5ixJ(M44;22WqrT`;uH!^TIV!~~Vwl)IpHNI849Vf!8j8ZX4^8)vC zq7Tbp5oTU13!EYx15FMv!H(3HHfkOF`++Kjou7o&I;8GQVw7{WhB#w@Ev~k(BSGH57zYGZ^ zxbveB*3+GatNUXgw+NHZjduz%P?cUrOL6gDyG+`-pk-i@uqVx>b zo-3{VO9l@gWsB2&ZkRL^Xe4CgiCrpz$)8stUWWjWs=LQ|u#`8*eIpUrY zlmlT^ zuuq&#KT?jtAp0NtvcurX5_s8ZpMJ9(@xB>biLX?Ey}4u&r!z?0-)Kpzs+>pdUn{i2 z%F%HIn+z7?6T#hImUi|h8Fbz%=V(FuG(`@!fWZpA9{>%~R$+}~MAlRC27mkoS|57x zC+K{e#&k)B7=U}QPO>xAW4I1IvOSRLHQ+Yf`3Y$x Bf35%k literal 0 HcmV?d00001 diff --git a/dpp-backend/digitalproductpass/bin/src/main/java/org/eclipse/tractusx/digitalproductpass/exceptions/DataModelException.class b/dpp-backend/digitalproductpass/bin/src/main/java/org/eclipse/tractusx/digitalproductpass/exceptions/DataModelException.class new file mode 100644 index 0000000000000000000000000000000000000000..1c8289f9cacc41715a6585f49458b76213ad9e45 GIT binary patch literal 1286 zcmcIk(QeZ)6g}>`r45CS!Wb|>-h>3aBog9@0WUBFQU?-kC-LaIR_l?(k?l_1mmz@! z?|c;Erd``X%LHgV#IbK~&OPVmo_zcM=?j3TxD%kn&~jGBsnA(`D2_yIY(G{q(YaHx zw?g`%8^t}{*Ip#KHNBzqxo|F4BdKz)P3Gbk!i#;=Q_0>m7NE?qKE_K#){ozI50&%` zYfp5h{WFGp_nY&lEpK(!-(8G6IAAD0C*%NChWh-CJ!_4v-~ub%?POLtlN_lYmnO}1 zA_`KRsCE;Ty2m`Mwg-y$NRzOXlnePm^cCMBq0x!ZXeu;X6dKKi?(m*bj%UX6RCqby zo`BUTCuygFsh?5N%V{X>}vW1Z&4dOq|zaZ%IsJG9|aWJUR|;#1XO_1!S@I#sjg zFG=FwaKZg?uEOf1+vkyV7O6j~a;}umU=yN(i#4p`62r!l$t&ip-qe|TGfcb6wgrt2 zL!)V=NDhS6#rY&y_56Ysb1=W_2!}*$Ad`9UuTl+ zs-0Jvf2EZbRt}B>TxY1xN(8t`&i!?y0^It^&y%mqP}|qek$2lPSq|G^SfM`)P@>%` z)@Tjr^oXKGJp7Ex`$qT?wXfrxI;}+xu!VJ6YvX;0%V^N4K)7-Wp-i#ALs-F8dZ&a9 RT%$X1o308m*~ATO{QzlRhg1Ln literal 0 HcmV?d00001 diff --git a/dpp-backend/digitalproductpass/bin/src/main/java/org/eclipse/tractusx/digitalproductpass/exceptions/ManagerException.class b/dpp-backend/digitalproductpass/bin/src/main/java/org/eclipse/tractusx/digitalproductpass/exceptions/ManagerException.class new file mode 100644 index 0000000000000000000000000000000000000000..8fa810c3cfa5be92687a7ed8ed9c5f1b455fa7b2 GIT binary patch literal 1280 zcmb_cU2oGc6g}>`r45CSLHQaWGa&&liG+A!zzZ4zsRKc~Nj$oa)p{g$WV=)M%aA~V zcYYM&rdzkMl?l)u;@BrQ_nvcePk#LT@(sXq+>KCUc<-G|3!zQABX&h<-7r-$*QHl! za6*Q$pQM={>LBvc*=#IBDZEeBM5;1qYkayXj2J4nF+(EM8J4Hna$$z)yTOi zN}Pxea#i@JJZ|?I0ffpjk5f7AD zO-hn>JTY}Msk)g|e3Snuv(H!;rFDUigU)@@wZkpia4AexexUeFb=>?gHbEEau=#U> zc(7dXuve*c2s(?@UsX9*%4e{N(ZIzP7IBH8GiUOuIcs;dQE$h^K)Jr4(P3EW zS}F2v;dFIA0PA6-Jwva1?w(m^csz$&_pnKSFi709V<*)sU2*Q5bmDXf34dcG8CCnB zOn9x86HboyBHUnT9u|mji(GqhoFd%*&CB~=mZ7z&y(i!HX{tQ#fnkCEDL{>Oi&&yH zqSF&XD?I*+#>bWTGg{xLF>P9_7+@94w6>=E7?-g^rz*phV;Sm%{ac0wT%~tv=-?XN Ofje|Hh{<)_#Og2b#DzWp literal 0 HcmV?d00001 diff --git a/dpp-backend/digitalproductpass/bin/src/main/java/org/eclipse/tractusx/digitalproductpass/exceptions/ServiceException.class b/dpp-backend/digitalproductpass/bin/src/main/java/org/eclipse/tractusx/digitalproductpass/exceptions/ServiceException.class new file mode 100644 index 0000000000000000000000000000000000000000..9fd1a0956ac1bf5883511d934b1b91efd8e141d3 GIT binary patch literal 1280 zcmcIkU2oGc6g}>`r45CSLirjXZ$biI5()9dfEP3bQUO7`Nj$o)m3ky`WV==O%aA~V zcYYM&rd`{y4FqUB#IbK~?mg$`oP7KK=?j1-xE-Lv@YY!wXF})kz8H(x*d$gm)rC{B zw?g`no5Ta1XfM*jn!!l=LO2(ziByHxCUw2}?%_!iNO4rxYnn$by`(URsC9~k9$ZamL~mqYHU zu$mM^?Py_|W>iiyD)C1D&}N2MXN9qzkGxJ@)G^5}ZMYP9*}kv%oOM`#H_E-vmcu_K ziF?BZ_XmXv>$7Q}Mbhs;{ZW^NUj8$h5H*}{U=brwVVg+aou8Cj{G>k@POxD%%$r1;BRl2Ntu zD)%q6vck&YL4a!v^+kgKH^{Ze!a{A5Q1Ddd zR)o$l?g~2%W0^?D(%k5{;4Wv@hGNP^?xa>W90)U!TI8e181a4wohyB?Gva!)3NZNO`yBDv15!jEjUAJ(VjBG z>U1Jv%5|2@v_e7=_9zvZeMtTGa4cwy{Fp(bobeAV5p)Yl2S=oXIqBdu>0m*6i^f`5 zss$W%!YxbJl+Q zIO|JJsne8EcbE&mJxlXCj8>r;6nT!=>|16OzN%eEytOi10p5oeob5mZ&Jnn{q(aMj z>_$?FS4B1wX2`I_2=pS&S-Q`REaf9*-HoLsz@q=$Y1;(uFF_g|r|b`H)qhhcCo^o| ziL?@NKP?NZ>K%mLi++DbjMJE~v_QW8Ko^FK=dvV!d-WiwdH|ETt2j;#X`N8+g%pMv zK0frIPhe5L9$f!rXw2%BKs`

Bvr7N~ literal 0 HcmV?d00001 diff --git a/dpp-backend/digitalproductpass/bin/src/main/java/org/eclipse/tractusx/digitalproductpass/http/controllers/AppController.class b/dpp-backend/digitalproductpass/bin/src/main/java/org/eclipse/tractusx/digitalproductpass/http/controllers/AppController.class new file mode 100644 index 0000000000000000000000000000000000000000..b3a73df6b089c8a21ec4092e9687d57d2d2c9276 GIT binary patch literal 8187 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 literal 0 HcmV?d00001 diff --git a/dpp-backend/digitalproductpass/bin/src/main/java/org/eclipse/tractusx/digitalproductpass/http/controllers/auth/AuthController.class b/dpp-backend/digitalproductpass/bin/src/main/java/org/eclipse/tractusx/digitalproductpass/http/controllers/auth/AuthController.class new file mode 100644 index 0000000000000000000000000000000000000000..2fa8e0c2ec7fe6e9ca66ef93e45384896664e84f GIT binary patch literal 9280 zcmeHNNpl-T6n>*Pkt}C*cFZz_%`QM<2~-g$DV)R*2RRAeSc*$~)RsD$jqV=BzH{L( zaO6)=1yyi|{{(zJBgv9I$&8F$Hi-{2()2ui-Tn6WT7Uli>+eK#gT5+K!J==KbgCW` ze)SP+vuYq4RqnVVRJ^Jsb9AKEt98*3nz^A2>XD;Erc|}5by#%*U(3LCxl~ma>1K5X zx7)qJB8^ydI)-(b->5!VeZ(DY(Gl*qEjm$~_1i)QzQ=t%ZPCO+hc-i z4>Z#v@RdblHDCvih2(Y6mdy0aTDTUKYj-=}F+OI-7x?!PSD5Eq{A!WQw##*A6hy}p zA{7FdTXcSqDj7Cp-~v`QSAWQK)1vX(=0+B^6n+CVC$L$inXgxv8}SmIwdhQXZ#Zti zS{2Dv5J?A9j2Y&bbqMox(QKs&XyL@W>%0KmvFpMY`X)FuIkjTZ$nBuci}Zp;r#9!F zl`@bedeJ)b!?JItaNE3YJAoGpH-@tzCUDPF*X;7>Qj^>kuGsZ}D;u)0J*J(ejlI}>J%nic=YU#Oj9OL9(kuUM#$+GD z3j?Wb5!enhs$s8kyUT!Qmf{g>F{xSBmUEKzi6IN|K#;1?7}}a-9)BFjR-QFKD?f?g z-BhLP+fsMF057-cZBs~W9oWp)8zC=`cKqKw3q!CpgLsK$Q7m#Nl0t77SU6?l!!t1F zywDYn(6)*~F5$7@IVHkLAnhbDOitNC*^yu8Yr=;sS;HHAXORo&P3nq0A1Q6#fXZgR z@jVG}A5nR<7cMfE)fa>^DDxsdMP~g183t}JhV9}yd%#K9%Ro-zUItO#eSvO!5X`_H zN{PF~TsH$m$Zatr5k{Ly!4NOYqjyEU&iyA6cFiakr)Jk39-7o811_ho7_#9+l@qwj zqg-C0OMH+S3ZEF~b$h_~IIG+P+*}Lp^8Qdzy_~P#ndVgY;q7Qo`ThWbFv;1U`=VuG`W|SQ}(m;RuH%x;q~cD%ek(6U^@v310vl;6McRKpHrm!qLlX@ z>!qNzTT%KT>DwN9uv`Hq=lnZi*?};n;R}{rzO+o2>E+{efnGr;X>xmy$ns@Ao143~Qut18l@ zMWelEwD3R}d)7|zXgXD1oCKm1S4-07=@PwbSt>_MY7i?kyd)DJT{KAu z!wniigofwQcG8A?-?ILC9wpJ$=M1IViNJO-vlv%CbebM8?nq}zjWlnMC^!Gck zYPfJ%-?HLz&R+{)i>hIvvqwUXxsbHzi!_Hxn*di7CBVZQ>IPq~RCq79*Tu()u&WU(E1@XsJ#G5%0KTSdW rIR)_u-NGIVbUWVnN$A8KJkR3#9M=l2acK2jx(6Mp(S3SI3$*kvj+W|n literal 0 HcmV?d00001 diff --git a/dpp-backend/digitalproductpass/bin/src/main/java/org/eclipse/tractusx/digitalproductpass/http/controllers/error/ErrorResponseController.class b/dpp-backend/digitalproductpass/bin/src/main/java/org/eclipse/tractusx/digitalproductpass/http/controllers/error/ErrorResponseController.class new file mode 100644 index 0000000000000000000000000000000000000000..5b27e9ec66106594163ab2a0b28909a75189fee8 GIT binary patch literal 4575 zcmeHLTW{Mo6h2Db$ab6LRm89I} zmkro}?R`IL*r8B#^5`^R4Z@B@79!h!>lR-vCzF8mWZ zq`p*rpM^0`HS>+4p~>`fKjM9EXq+k;WuZx_*8ael)DNXFO2#o$+Gk2h<^OE&2TZ3@ zX!c+{?LxzWwOm0=Mc;qeJ7J-5U^QR0V~pax%rNc1ogf!68R|N)d5{Ui6SgOYT=QPc zc7%|I8jeaFSPFJBBcE}_BE&YWVUG-t9cTx;qh}mn{GJPLesthgXZx`OjR!JfF07&n z6RUE~O}OK+USxVBV`Dt5GVAMDnqXcRIanV0kG-1!AI=xwPLf$ZC~t^?;8VOLxVoG{WQ)5J(Zi8)JIyS2-sh>04|UXsQ<?K21~1>l)o9n3;h@TE0M2h2SAooFYlLTjgu$CmEg1gcsXg zLTg~wt3#%SF*74$USvV>Qmk1qy&VtJ{3UlyYeq+C{BEt2J_+T>=_jl=pWiQv#{*E~ z;~|y^wI`&=x*AE-5!N;6IZwu%u(`aLGk0FOteFatE=Pq{O)#(E@HVW#-DOyU*B#jC z1e2ny(Au>{+iHOP_-mH*m^!j4?!bB=LmEFGrTl2HVFn!Q!sFmoRJK@JE)A%NVwRsP z2fpp(W#=?abf?D(Cg^Sl<*`92YuKrhAr9Rh(l|pe7n7Xw99S7Iu$7Sh_brc*luF`9$uwHYf&Nb{Yxb7T_Ul8o>;wGW0@af{~lf+;RWy&UTZk_ PF?8Tl_#8a=0&e{WA)E{3 literal 0 HcmV?d00001 diff --git a/dpp-backend/digitalproductpass/bin/src/main/java/org/eclipse/tractusx/digitalproductpass/http/middleware/BaseInterceptor.class b/dpp-backend/digitalproductpass/bin/src/main/java/org/eclipse/tractusx/digitalproductpass/http/middleware/BaseInterceptor.class new file mode 100644 index 0000000000000000000000000000000000000000..809454590da8b5457b5a1861488b7bd9a00d4139 GIT binary patch literal 4289 zcmeHKTXWnr6h2Bf_3m~dA#J!cGoXe78!k4NLV<+aH7QXagj=;9jQIIkr zgMBt&fzrKzM~TP`53FX9&CO8|i=MD7$+U{|$Y#u#pl@v!q#}+Je#kTr?lQwSrR6%} znN`|@8iB=Q#DvLS@Mw3RN0va{&D*vjATjhHhe-Q{#> zh5yEs9Am`z!w9KTqmT|&&xKZ%@IE_W+Oms?-NQgql1n=Ugjz)zwNEqNY;2}kA|hd_ z$uq7o{-m)QQ%GrAWJG(73PW=l^F1LkJofMpwppGa^hnyL4{~GOAC#g@x_Byp$Ap@V z4JI)k^;jNO?5|9#3b`467+1HOXBmc>dBU{BC^QwQj|N<85%UT$w|JN9LBj20{!`A; z5ND%$d>a!J3_8kGEm1h50`~rq<2GcZ3c0RzDOe$NPK(Y8>HoL2A0VqI>oVRE{IJ57 z=XT7C@I+2Jr?r~Uf>&D5fF%OU?QnFo7UA7-NAE(2bo4M!ce&nTc$yMe3RT3C9j1lr zpA6P)U*IYJB>Y!O4Xg+n$T|i05xCPnt}7-9qcb^Ha6)HHse%AHYd>OLQX0s3u!7)a z->G*x>2US=0ZVe!y%`P(ty2d|$j|4fJWj(^MEY=n3b6?Se8HF}XldGG~+)_AbGt}q4*w=JyP4cq{{U*a{H z;4=@G@#|sBee3wG;kN-zd|$!dEtGU}&EKH)!_v#Yz~Ud+n}e(Pb~6B0;2OSLg%m8q ztJov(8oZ7(-@vxRyI!vFCXNhoYuGMu-n^ zL^IDQ8kkfcdm-;}L!(5=FbzyXwf6ePBwozJFk(kkF>hTMrUI52sn(?E@?HhX4onX* zBPx2{X6Jwf#(`#sYF3a&3;gRb;mz;BD-JAdrNZzS)eX4jortXpAq_QL3hls@znU6( z#1#us_Qp#txOwfsM0RO(SU^{ka5DJAu2(N zP))2~ka}&W&q#<|B0V8VXmCh-j4UC+?kT};POy8CVAm4tjtE{Np=6q%`6Q+$=o5qJ z>^MPAi|ELtYlG=pquqbimD$eYL@Glph)xt2y{@7$JCf><1k@5qI*jBj{KrqW(aCn3Kz2)S&^l8&HFm1G8;^RC3$KX5NY|$)=A4eMsXDQ#%x^ z%z>6K0~+m8#qIg@vTXVst9$>Nx=O*7jC|}BO&W%Ud(<}H_6rxe&qK3Y{&|iOVRAsD z6g{Z>Iio98xbMKHKjfGrzd+-+Wr{uj9k;QVD*$9f4SSGnvu72B zj?bvYmY%I!vlO%f`?~#1kZ~&0G{HgqK!-N7$$xJ^X79Q literal 0 HcmV?d00001 diff --git a/dpp-backend/digitalproductpass/bin/src/main/java/org/eclipse/tractusx/digitalproductpass/interfaces/ServiceInitializationInterface.class b/dpp-backend/digitalproductpass/bin/src/main/java/org/eclipse/tractusx/digitalproductpass/interfaces/ServiceInitializationInterface.class new file mode 100644 index 0000000000000000000000000000000000000000..dc628386847b5ba8f1af9d0f8cee82644993b152 GIT binary patch literal 1183 zcmbVM-%k@k5T3=_YfrRL#9tt;@KSuZdlw`z1{0F1iLE3)neBEcOYd$kyL%P<$4oTQ zcVGOEjI&2eK^jPWxVy}^-~9M?X71OYZ$ALw1#AQ`$KaDSGERlc;v+E{QS zIfnJNvhEs6#~GDf7iVVYcaJ6Jegv-05JC-Z&%+&PFsN>iCt90|YsBDx0k^eko&W#< literal 0 HcmV?d00001 diff --git a/dpp-backend/digitalproductpass/bin/src/main/java/org/eclipse/tractusx/digitalproductpass/listeners/AppListener.class b/dpp-backend/digitalproductpass/bin/src/main/java/org/eclipse/tractusx/digitalproductpass/listeners/AppListener.class new file mode 100644 index 0000000000000000000000000000000000000000..b2f689d7e798d5fba25734d90589623fb374d800 GIT binary patch literal 8528 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 literal 0 HcmV?d00001 diff --git a/dpp-backend/digitalproductpass/bin/src/main/java/org/eclipse/tractusx/digitalproductpass/managers/DtrSearchManager.class b/dpp-backend/digitalproductpass/bin/src/main/java/org/eclipse/tractusx/digitalproductpass/managers/DtrSearchManager.class new file mode 100644 index 0000000000000000000000000000000000000000..10bc3e2b7e2155b45fc4637adb730f23d33ce5ad GIT binary patch literal 10852 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 literal 0 HcmV?d00001 diff --git a/dpp-backend/digitalproductpass/bin/src/main/java/org/eclipse/tractusx/digitalproductpass/managers/TreeManager.class b/dpp-backend/digitalproductpass/bin/src/main/java/org/eclipse/tractusx/digitalproductpass/managers/TreeManager.class new file mode 100644 index 0000000000000000000000000000000000000000..f61fac4116f3681c98184ee9a173086307d71f9f GIT binary patch literal 10393 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 O6}<8|=Y0%IuzVkot;2W# literal 0 HcmV?d00001 diff --git a/dpp-backend/digitalproductpass/bin/src/main/java/org/eclipse/tractusx/digitalproductpass/models/auth/JwtToken.class b/dpp-backend/digitalproductpass/bin/src/main/java/org/eclipse/tractusx/digitalproductpass/models/auth/JwtToken.class new file mode 100644 index 0000000000000000000000000000000000000000..9367a7d640b7ccddffb60158a75ea1ec7c6ab64d GIT binary patch literal 5961 zcmeHLTW=dh6h3Rx_!2h`PQxu+rU6uk%P!DzYf2%lisZ;GRTGL364H2gVo$oBUCqpz zh6f&a;DHAoc;E%`8+b$l3EufpsAt#fcoPruE;2$u9=x-&^ZA?aoVlL!`yW653IOlG z^)i$!*iq7T29yiufDWk>$ezPopNEP$T2fa>>b~Rg9@o?lW#C1w4yjVkAn=&492)7q zv-6qW3+^#dh6M{&5*nY1p7TNXfVtX&CF;6NsRUy|vok^LYRN@!%YyYgkQ+?GMeq&`IWnIZKfWg=Re_ z5x$bbZe*Huta$G*M3yr5Qi29{dX4P|lHCq`?jB-K%EewSSiHgo*Hc=Qh#L$-?kA=Y^dQxF&UP%={ww{A zH1k0iNFAF+TpEuO=`u35HWwrw%(ig-$YTZyq60#S#*wL2^B{**a*AFZp~sVC2JvX( z%>ZR5-3;iw`O>*Nqt^lg=T10pi~kdR?Lmm!2G>MIxK-gA5lTzkG6P9Qn_+8{a77~F zv3)L>XOo+e((z(V{^lPNE{3=<5sK@of1IIK{d?JS4Zyz_6onyfQtBfr1s*wS#>$$b zou?g79~0R zxDq3{3kFeUnae$r5a-5Otprs?Q!y&14%tohV5fHoYDM8kKE)+;Rzp`q2N4VA_S92 z75trnMSKF((sBvvN&ReEE~nocX}OY?4<}_4nVPVQ&vW>%OUP=)T))8D$IVB7g2#Wu zS_z)S=VH=w5uU>L`UnM2!!uZm83;bd46(AJ4Ci4Z!!XhCtU<#kMh(xydWNBNq~U^r z;Zq~S=AURVF?5X#FBH(QZ)A88UdmW8@x#joD-Mhd4!n|KnE1iOAdC#J7SJG#46hZ? zFf=k;EHDh5A46hf^@THOAjRG3JGBUhbK*QHYhPMi6_{PZab^#6F8W}DZ Y(D0psp#)pFo=b2Au3@=|Z&%^H2Z1!Xn*aa+ literal 0 HcmV?d00001 diff --git a/dpp-backend/digitalproductpass/bin/src/main/java/org/eclipse/tractusx/digitalproductpass/models/auth/UserCredential.class b/dpp-backend/digitalproductpass/bin/src/main/java/org/eclipse/tractusx/digitalproductpass/models/auth/UserCredential.class new file mode 100644 index 0000000000000000000000000000000000000000..ad4d49ef5edbe75e6445288abda502c34aaeafb0 GIT binary patch literal 4702 zcmeHKTXWPl82z+tvX=xFLMScF6eYA}w->vm_m%w1)!a9V1t!xE{ZRCTVNt4*Fbhn|wD#j9DvuXFs;}6IeRf*`l#UudGJ|=7ul1hbD04e+8?vS%)hGem{7f+(AFD z>I+QB)P6<;=1^jLkcaunBI;aZ0mEf5!glw?AUoymUdm$oidqZ%ij2tSFfHt#Y&jW3 zoXOo&SBFn97du!Zn`D%eh(H6=G;Vl)e41-XrUL$>u%CsqllL}HB5Lr(MCvx&Ip$-l zLThw|>zEE`SOQF%FoUc@1!iCt-zrcWmGx2CfF`!LaO51!i)v% zKVaeSeC|1X&gMNA;SGGZ<8c(6hc~gb2yfwY7olqVN+VntLzp=f!rNmAl|vw00y>6J z=&b`(@D98?#=*vLsN{PN4!4{LZRm_46uWRCtT++ghs803LP;0G zsuSUZ5*&VZB79ha!-f;#qY@nMI}yAR9Da2o`2TUUK6XSia3WkSfzWdxRNzxQLlwN) LUt(FsxPJZ&?C(cw literal 0 HcmV?d00001 diff --git a/dpp-backend/digitalproductpass/bin/src/main/java/org/eclipse/tractusx/digitalproductpass/models/auth/UserInfo.class b/dpp-backend/digitalproductpass/bin/src/main/java/org/eclipse/tractusx/digitalproductpass/models/auth/UserInfo.class new file mode 100644 index 0000000000000000000000000000000000000000..ba5c5e9b2ebf6f7e218adf76d55266ab4cfdd75f GIT binary patch literal 7575 zcmeHLNpIvt6n@Sm>1EQ{AYsYC6k$tP+APC1nE_@{GGvq)B9aV(15vfRx>Jc=wyMfa zB5~lrfddC5xFE!lKfnbEB)HFyLcDUjlTN34(uO81>O*(gRnMQl_g=kc`@8%5&%Xk| zRd_cCLk`?j(sKjKg}X}|)D30bWuDI?#au0^r(?D6R(YLk>PIrH#-5I-Qf?4dnXgm7GXF}W&gVGf2Jm`q@ND(dcgm0jj(2hORu;=uIU(aMIFT-28wn0r4Kng?uEG`Qjw zpIs9o)Kv3OC3iNyE%KlMg#62q-P@utOKK0xZwItgk4y?W0-Hm5n?L! z0hI!YE2J{~4n`mc4>&M!aCKd!PqST?BS6m!+YZEeC+fSVip6r=V{eTwM-uT?}Hc^>5Bu;SWFpr`%P+09Pb zgR4R0bB}AHV(i0M_Cjfi&w)^qW`|!`BwUeLR9TG+RxOiTvC^jhB$xRIgo{SF#|Xt% zv2z@uSonLki~`Ej=_l{dy$wfC}zP543u6+3Y?9Mg4dqjHSm`xaoeS zmiC=!st(L1igl-MiM^}D6D@N~?1}IbL@6~5n`-4!4pxpS=gq2dVC)uG3I*p))HfA8 z2B=7*bYH;V2#n%CKrtQ9r{h>UmeO%N9VgOpG99OqaRw2m;XeGIL99!N?ikEpVD`i5 z2Y-Txf5WpOcm)4Pla)Dm6pzQ6R&Wsro*4wgtc6g-x$Fq@Z3xD{tO$?86Kx1bUOZ{> z;v=gUPs4>agrP$YHiVC@2n!iFRICV#893Ce2+wrk@T?^cyHa zMpgv33kMs5wj#Wcfy2HP;l&IbKD8pe)P=*#mRx*hMR=tPhgU5KpIZ@L@4~@`@P!rO zjSL*Vv?5&2z~L(^!cqnf-&hf@bm4H-63K6^2yb=aU_8ICm Lyn(-AJYN0-HG;Y{ literal 0 HcmV?d00001 diff --git a/dpp-backend/digitalproductpass/bin/src/main/java/org/eclipse/tractusx/digitalproductpass/models/catenax/BpnDiscovery$BpnEndpoint.class b/dpp-backend/digitalproductpass/bin/src/main/java/org/eclipse/tractusx/digitalproductpass/models/catenax/BpnDiscovery$BpnEndpoint.class new file mode 100644 index 0000000000000000000000000000000000000000..831015f3891c92d312129bbd331e6e089c29be56 GIT binary patch literal 5034 zcmeHLTXWk)6h7-ZzQrMFXu~Byx1lW#!${m8xXnN)gQ;7fNyG5KFdJ#Hx0ZLs?#hjM z;E(V_n1LC1=SKl&Wux?J#+;cC|kG_S^HFmGtSazkmA!06v6wt572Foza0m zU_$zL*^v24cYPj2A~xK&ngup7`+g|8!m=pVDog?!Gh_UL3VCGwfLSitzW+%qKNTiW zL#{_x@Z`D-VaA4k}jrvZH(-4!-GzP^i=(8@T8>onvDdHU{;!P{!jTP}SMK)-txS^Oh zI$$>FQH$VwKgR4&f}{AJ6W?>3y+@pC%v=m&rL9{W4VY7m?s0ms=2Hks87Edmv!;7^ zpsS{~45B3DIY87Z%BU;WM!iVnkZHkC&@8$umF8Kk3Y23yF~=u3DC`-b9bqulQ)!+= zJ6@wR!rOy55`nPPB)GFsMro|Z-L5npZ`#%-6^14<Lyz7}kOP)fdRa80LJn1* zQ-;#_jv_Sb1^5;Sd7_pyCz%4vD-iNnCN07%y?M_lu>v?-DvIzHrF7n2DYgZlyv;g( zvdu`&Gz5&PqPr+f$*8o(0v8-LWIA;aJvP!qMCJonZ}LA@EBP z&X1{D2rMD@L&E55w^LX9nQ&!se$sBI)(tO6eR1YwP`tJA`7sBAe=Lb~?2hb9bx#s# zwx#5HD?(S#O%+}z@b!ro7JUbi_m%ihdhLza}X9_6ZI>>t5C((Ro-jZdQMa9 W6Y${;sAILd3McR;yo0?G`2PZS!VQ!F literal 0 HcmV?d00001 diff --git a/dpp-backend/digitalproductpass/bin/src/main/java/org/eclipse/tractusx/digitalproductpass/models/catenax/BpnDiscovery.class b/dpp-backend/digitalproductpass/bin/src/main/java/org/eclipse/tractusx/digitalproductpass/models/catenax/BpnDiscovery.class new file mode 100644 index 0000000000000000000000000000000000000000..1e6a47e68a3ccf4f554a071db6784220f49965eb GIT binary patch literal 4962 zcmeHLTXWnr6h2zE*-JNV6KJ`#fEr4>VZi269w2RIAe5Of+j7~o9Ul6iwS}X^mOPTY zB)^0|!8D0M8dK-)hf&an=)hkM1?#ye!wi3Y|sBZm0t)G zs4>_3Eoc(BkXwtHjQp=hJ3O!inxj-20tCw{9PukNcg543nNA`|4d3{nH9>BJ2&{sDEW<6Dc5!%;b+Dy&XC~3Eg^+n zN7ns<|LOw*J4Ju~wB2CKgJG7Ynj7u6Z0wUcDA-T4Kd|RBPeCTE{ix_K^=G#9e7h6c*k|%6*}-H zI#{8h;)Y^CX~JxdACysIc8cgOy~q1Nu~Kj!vfQBJTONGmLzXlS=@)fMLlxUssIB_po4+$Pdh8Y*D%gUP0H@~~;Q1r|udlP}S*jCrB& zn6x5pv0TGZ+WpmOl_)0N`4?GjxJuxs8Wq!w>rssjNHqkbW2VtrOjwF>DsqO=x^fVr zV+megYr}N{KiBZ8nnS17gs5TX>H94L-J!~Kz`qnujZ5h2!P!DyF%nqJ%k)VBh5ETv z+#e}?@Wmn?F<>!tU+zlvqa@JVl#=U>7>_WxX@N)J(Oi!l2%J510MUXEuw-`uYQaZO zoRJifMSgdMF}SDQ!rITkRluo%XEg+WXJ7%_7WNv@#yiBqBKC_X=imaqxryiow%y-g z>HFmue}RjCb?fJ46ov~m-oBy8s0nWJ-C9`sRf6d)xzuW#sQZ%ODxe6E}xWg zS*h@<%+l>rOK%@46^q|2_Qq_~vH*t^x1E GhyMT)F;n>f literal 0 HcmV?d00001 diff --git a/dpp-backend/digitalproductpass/bin/src/main/java/org/eclipse/tractusx/digitalproductpass/models/catenax/Discovery$Endpoint.class b/dpp-backend/digitalproductpass/bin/src/main/java/org/eclipse/tractusx/digitalproductpass/models/catenax/Discovery$Endpoint.class new file mode 100644 index 0000000000000000000000000000000000000000..036f6b5406144b666863796a457e252102bc8b25 GIT binary patch literal 5868 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 literal 0 HcmV?d00001 diff --git a/dpp-backend/digitalproductpass/bin/src/main/java/org/eclipse/tractusx/digitalproductpass/models/dtregistry/SubModel$SemanticId$Key.class b/dpp-backend/digitalproductpass/bin/src/main/java/org/eclipse/tractusx/digitalproductpass/models/dtregistry/SubModel$SemanticId$Key.class new file mode 100644 index 0000000000000000000000000000000000000000..354212cfa0f7c27af7e546b4f0d2d5663e2fbe83 GIT binary patch literal 5921 zcmdT|TW{k;6h0H$CJpU&w|n7IEtw{j5RY3 zn_q?m5{SzaKMHZiPLwXS$as~|_90_?eEgm7TxMc_fBpT_F97ffyx)Wdf$xou!juUa zK4v2pDm@H&l!(mm&}tUh+&l?mF%*_1nO1Qg*^C(zrYh!%31h4IP#CMnVLu=2yUE*q zo-%1g)QxX{$;VAtA#k<8PM92qUkx7f$P!qw6b>jxi5^q)A#JZ89&;LFI+#YIj72AG$muTTD466Z znC2)ro1>u2Q83HVE{zp86l0+&v(YiNh|iy7n2^)>SdqY0ByhBYXZKd}7ip%nbs^G- zxjfPVr_;#K$E1iWw<4)z*GVUC@ndVr1TVdm+%TsDitD_7{^@D|PQ^y;6((zhu6Jj-xNm~WVt zxCPB?w{DsxA`+IG9QPnxS`v3a+!>XoW%4?ER2Z7em_HJd#{u2Xu`zI^7mp=lD&$C= zaLRBw9zTuHUiT&K*-2jM_cHP&=4*Fh1GrG_aG}VYM`^wGqf6hwmp;k`x5k3uJog%3 zuU_qTd5!A*9WE|T-}IlCUCq7NYfXC@otxttFI!%1Py^4m$Tf4b+?ThSWV~|bWwfMh zxq4l`k1?-|)o4X8yd^hQA&$)X-tpr3{~EPn6Sg;?4c7_W?3`75oKmyZ!>^=+JRNX- z=svuiETkfq98EsNCzC7oSfKvHdP|n9P*S>6!L*utbI9#sA!Xg@?431f!7Bvr|F_iS zlqR2|5NMjIvlhBNDrK)0PEJnSeUC^u5@5Ld z!WdKmTvf5%S_jvHde_e!IQ( zBV79xuNrUzM`sDJ12=KpD6QZYynt5@;YA#$2+mVogqPsuQwTE-I~5#$tK{%1Tt9{2 zA}u*oA^cv6@LCNHe^es8UW3D*6$q<9k#_^@)x@LA_%0sb#NRf~z6Bk48|y~!>>WG? PIKP5d??Q-Y4e0y>kLR2m literal 0 HcmV?d00001 diff --git a/dpp-backend/digitalproductpass/bin/src/main/java/org/eclipse/tractusx/digitalproductpass/models/dtregistry/SubModel$SemanticId.class b/dpp-backend/digitalproductpass/bin/src/main/java/org/eclipse/tractusx/digitalproductpass/models/dtregistry/SubModel$SemanticId.class new file mode 100644 index 0000000000000000000000000000000000000000..bd225a89e5e81339824b00ee12018aae260ddd0c GIT binary patch literal 6618 zcmdT|TW=dh6h0f=_|ja8+XAIrrXhgMWtVcNNh?(q6>gnS;ShunLgU@3GtGK-nVGff zXZ{5bJRtEKkU)ZWeiY)&ZhUF8ipR*#MUi(mvuD2f&dhgacfWuB{o^kHxCu9lu;9RV zO8Q=xa^XFqJ?cfW<1s(vv0|Q<)Ypl6>;=5TH4S4K1&Oa?s+8A_0v0MS(2{ky(z5Th zlJ=HqTyL>16`K2vpa=yAE~L026&>%(_9NzN2MW3$GY6{8(XE!2Ty!=ZxcXIsox7|d zdR*~#$ZiV}X{vc7lmjcxdnytSWE3;0`xt(%N5cfM3j3^&_s=(POG*1pq=YxiE#47S zClUk1=+0(yjybR2XZ?*^IQZfw7hKIU=)B-*w=pBSVgZuVGPbwvsrOOsQ|E z6u2A;(W52UbU`^|_RhEWvZmvk$)(*dYpgEFgZ=jd_?Z6+x}w+I7_pQYr83 zF%qDtsKlU{`unuQ$QmlmJy4oEP?~#KX>O)8ccip65=2Z9R0Zi$?e7td`0R0v(i+Fd zHFk}zT|?Xb|D$F6c{h%vHYpOH8by*eBZJIOCM3-((LBs$Wa^~R5s_pE)xvSk4pS#O zB9xeVtd!F(!Vi;x%^GyLW)*+a~4)=GacJbY?ZN1Pz5f+3rny9R~)#UV-^|v zX0?f5N!v-c&E$^x@HU1{=$DZ;_jU@$W*`f!-$G7dW|YNQp9|9>3DS_x_nG$yAwBzd$rvn;dR zR%&CZnc4nvtl>CvtM8WJT?Zaa&ThI5-GNFgN~F*3awFsAfwi1kc@8W!gkbVch(0t^ zMR*?>%-Ya3490Bij~w`6)>Hue8iz|f&ttl-O zd1;#|{Y9iSTm!^GcYgtY=U@?!02MfotxI^d0L$2hE;_8@b=GnLs(9x^>}C2@{)CI) zRxke!&;OmqzlcZE1K=wD0roN16?h3=#OoV2z-*F2Cj?)#0rn(%VC%5vO-@kbcWSDu9c5EPw~^;kk-e c4qS&1po}Z!z{hyr!1hIK{{%jR%{2DNKT`H0F z13v`*0`JVg4DifP;(_6;WLxWGo2(hRZXPUK^3k{7IeYfg>YTs-{p}9`xB&MHFlNCm z!QEQhp{(}M*>Y+DZ`FwF(@>CF#2q(^#p9YsTQqX~kOyAuMxi4_tsQv87d0>9q(w!< zw`=iw7a$(KebN+H(9D z0SnY?ZUh`D%r-Jw&4^RhLbKx{4nv=`2}2i~r0w7sZr$s*PMtvODe9piU8im`t_5YG z+;YE>cQnstjBxZ4VO|(e7NNfn)Hvle>{aI7lK4ry4=++iql*^&RLRC#*d0U7mAv?L zlS&PP!exHNf`1fpeF>wXwQKr^I$s&l#oWeGCP+Fz+h}6;aw5cChcirQfmt$s8COgJ z<}8@b9KOnVz>DybHM4$);SGVmMLgRL+9CCmRJL(>|h6guvv z(<1g66o+a@9I9P$sO}brYAO!ZOdQVGUOh)*7eC=4n-W=&N}QB~5e z{{PWZ{t|OJgUL$tb^U;_je#H^>wTz_L)mtp!q@!XKW44>R9R;>yN82GO zmy%nU>&G6+!E(#t)WIA`al2Bw4{%S%_p$3rxq+GC$f<=x-_!!nMpVsOx2dpW=8<*Eh*!0jViC!ep4{ed+mvku zo5Xf-Id1eLluM?h4Kv9o{6R^fgKM;7GriB_Fh4&{!#^s!0kzm@O&b}FY~TSlTSjRx0G{b24;Y)_Zr%nYV-zzZ zqaj60&ey?v88eF50I6t%H{`@h3UyCSiH$rqF)G6;cx3{Pfo;LD%I;#6EZ^ z++HJmS-yD7f==K%{z~UXymN6p+MrnRyPaDVsasaVV$pLIN#qx$h_-iyFI8=w&C{#- zSrZCf^P1nNsSm9RIMpK26}7rPS((p@k2uLE)$_i972$0Q{xYZtn#!yc7g@32XTjzR zhjn?eBLq`QiY&+!Kc!sg3&H$K5#Ad~5b})`_98G3>fL6?QJnLv{F^G)LJ>Z+z&Ds~ z6NM|87$qH&jMYp+vA=~fgL7B!YpWFDyahj-&>Yc*-GWJUBc}P<@BpfUQtn6A4Rxg0pB|qNgu;hW(@7nRgA9U z>RO+u48c_@W0#`Ry_8<`8pZ{l68gL7T z?fk>|IfO@ScjK=yDB^JfCh-U`1=Gp*k*J! zc%Vi2cmNKr7U7d8aQIZ?#kv+@0TvZ6vN^e+LDlyTA_J<=k5312B*WnAhSE4se3zV$!wP(ZO7ZP~`O=zc literal 0 HcmV?d00001 diff --git a/dpp-backend/digitalproductpass/bin/src/main/java/org/eclipse/tractusx/digitalproductpass/models/edc/AssetSearch.class b/dpp-backend/digitalproductpass/bin/src/main/java/org/eclipse/tractusx/digitalproductpass/models/edc/AssetSearch.class new file mode 100644 index 0000000000000000000000000000000000000000..91111970bbee806ffcd8832028337cd61640d03c GIT binary patch literal 2480 zcmeHI%We}f6ulGDrkNH}`ruU_ZV@!y%xu^|3#e2e1*HX%QpD1kF^St5dt`f}_REk! zf<52CcOb4O2~EjJNl;_Kb9ejw9mr8-`1L$2BRuym!Rmtd`1*e(eht4 z4_ROwDB%`nYM}!Q_0!dcQCze(9awpj3d3Vo6CJL3Gh*99NJ9;mLOXD&{!&ZvTFHbd zbAs@x4vkWV2L)0HDLeo!;VtniSdd&dqtkr>;1toUBx_3q%t-r z5>V?fX)@A}byCQHid;5(XEhN-X~=TciIId7bCNK(JPxu$6{l!_7v0Z=5yaj68UY&2 ztr5_%_k;UklZbRSQ3gK$k!5wZ_lu+SsBsWvu8vTe}` z;i4mt7@>Hd?XwJS`R}ri=STL)N4W5xsr+v(aG?TAb1)0b4lGxPYqBk#l{zNeUK%%< z+P81dmQxwf=%Du&dy_@e=2&_6&b5(XnO@J4l`qt7F_SeR+hCTe8^fp>xa~kRMqxj< zTX4X|j`vH|B1+sD>Q;*g8J=|;GF1V4!L8-<1Kl+%{|;Qt`eCoOZkFKwnU>p)z=644 zt~GYNeXOw>RsmZgcKrhWreGRJ05|(i9w5rGYoDR=e&O;*Sp16r3UCES ziv(DKt2kP`Ww-{{@oO1w;MixdCr!$*0yhU3PBq-h(eN-=!yQ;2V6c&PHRLgDIyV@HRIzjFk)$-^5gFFOmTZwZ{VATj(%<{T0(mXv#3=z;p@}QqlHatbJg< z!69Epu@p?0%uYKn(Q0vRnhsQ#cw11DDCWSMbnxB?IBi|8IgbmSc$EmlBep2IT=TV% zJrF_~YPb~0XR`HFOYu_4m?_gk^YJbX6XZ0-^-@n87Cm7!G@TwYZatJTWK^Kl#62#! znRj5OkvTN@H@E7*`)qJm9NMzb*aGIG3o9V$tJ z4!O?_(Ftxi%%9Lk;o%|`$qtRi9O0TIB4F>iV1Y}XCCCzWluiqKgp00RXM|$TJ6jQI z)ge3@j^@aK{=2_JcrqH3;R5^5t!gj>N9r&MM;$oSXl&EvOD0PVY0@ixH}9A6~bxK&^;%AwLT2XNFk`YL?-K z1LfS8GTd@t%x2nw`ZKOIZj@!LS{lv*$`x;sC49zV0(<4OSHX83_Tk%(O~MpfWPhe% zKaSqQS$1CSE6lu}Irte4f5%=4j^#4|PQY<&*KsylVece6uk~1`(Q~RBv7D~A?2~*VIu)8Y6=oXAc8h64FQRd6MNVlGCO0;M z6iiUr4gT1D$3p8t?JeaZ(aeM8&gcJbcyN9@k(T$_rW|m?cLjSSrLxp=C5;D*o##f$ z7h1(k+kFf_I-nv!tVTF|`Xug4tGVoAV1t`yj0)S^$KRdbloE_eyuR=&m)t(|;CA~U zox+tIXmscLYY*lhWA-&z_F!q8$rG)WuEUDAu=+}BW|SDPh&Xy&q-hY;5A*7qUr4jD z(_ie1cKB~V)BE<|rsYsvNutzKcvkx&!UIfM> z`>x2oL~RS@&-2i$~gyNVCiA(_z0}X|ER=VrHI=IuH*;g-$m!vmq-}U^Ss( zPRdblA@$Kn;=v^OT+E$O^*F(7~CsBRZ}2 zh)rsSmnzXAd&-?5S4KHx<6b&ZcyKx$&^~Y5=%?d6ZRM}zo>cE8?z6zGS#Q+fE>4Dd zCN=nJVsgyHN9DG-F*wcbV6QiD3DBfCz`EloEZ`ZS3CGg41;=r%W5gmX;rRsa?qcM; zi}@Q)zF9u?7p(q+yE*s{&kGm>a30R$xt0EI!a3YSitv2_!Nq+k!Ug!D6yahChXVQ$2s4B=5J!jEvdfH2PDN(qN2r3lyHOaWocp$uWO6rm041%xq&>m?kvN)c|t ltpdWBLm9%KB?w2rNA2byfEuo@>bG(I8IL-;;|?D8{s$~a)wlov literal 0 HcmV?d00001 diff --git a/dpp-backend/digitalproductpass/bin/src/main/java/org/eclipse/tractusx/digitalproductpass/models/edc/EndpointDataReference$Properties.class b/dpp-backend/digitalproductpass/bin/src/main/java/org/eclipse/tractusx/digitalproductpass/models/edc/EndpointDataReference$Properties.class new file mode 100644 index 0000000000000000000000000000000000000000..ac990045c50d21003b99fd53e62c6a91440ec68e GIT binary patch literal 4981 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 WKpKF1=*IxuhlltsBiB`Y9{dK!)Skrv literal 0 HcmV?d00001 diff --git a/dpp-backend/digitalproductpass/bin/src/main/java/org/eclipse/tractusx/digitalproductpass/models/http/Response.class b/dpp-backend/digitalproductpass/bin/src/main/java/org/eclipse/tractusx/digitalproductpass/models/http/Response.class new file mode 100644 index 0000000000000000000000000000000000000000..1493c74b3d00ec7fe359416ccb3bdf69effa050c GIT binary patch literal 6426 zcmd^DTXP#V6h0f0_!6fnp@l-BsG)$v#aozitJ6T~1)OoX)S(%e;XzpoTg~1^(t47g z!81RE8JK~0eiXye?%LioO09H^q42V{c8@-N=hM;UoIn2j}1k`O@tx6}$JCjH6Jp63jbr zHihwN*mJ+!d%!&9Kq+8S(jIeQwLSjYQG$oPrUMu6C86R0YlQZG=`zE2 zq9Q_xI*eJhVq-a=f>V?~vmS=i1mG-0Cm0pObAo9erxUDB0XS`f+47jcuNA~T_qZZ5 z!8M7o5K1L*Ux)<1pQZi8$mQt6;fyZMKNhl6OJ5sLBCKZ;PTSh-{; zq!pBv(GeV$Fte7}iqsP`4_4kxQDUp{o*4C}D9qpM^EQnq?7LR3Sk0allHHzX zXJs|uztPCfz1drJk~qd|m)xZy#9OqSM(Eh-|BnrvrVBIk(`p^f)~E`r@LUa6;DQ6^ z4Oxp$O;*}?~3;=hxr-<-F>1%$(Zo=_P-dQ+;Y6^@voekX&U# zHnj(~`BzZLUw(|4N7VLd;18%6^!RuuGCMUYmRfpA_x87pEy`9=rOfDEKZ!OuNNjKpRO{z;ecdR{T;X?{JzvsYD7MvgM zIje0Sy%;%|d9lQFT_>B|GJNE~k2drzrr9phwTUV$u%Yy~(^}Wj7|u7CGTg9>;mm%5 z*fvH;33bdU9XYCUMmk=qohT6=yUX<{wLGjLrUfc&r&Yha{L?JKZA8oixdeA{N5{>p z1fL%%H)dKnP}}BG;-zQ@i$fAF16pIfa~^*eU=jb}(6E&L*7Ei;oWb@Aep!LD_VGY%K1$)lHm64)zBcxXiinff3z7BOGmvsZe*G7al;X(mn z%)x}PV?=lh-Yy`F^=KG4>>3fS!aD_oF$WXEcSeMFPtf6-fy4Jkg!fO-!Gu7K2p^ol z;X?xlW< literal 0 HcmV?d00001 diff --git a/dpp-backend/digitalproductpass/bin/src/main/java/org/eclipse/tractusx/digitalproductpass/models/http/requests/DiscoverySearch.class b/dpp-backend/digitalproductpass/bin/src/main/java/org/eclipse/tractusx/digitalproductpass/models/http/requests/DiscoverySearch.class new file mode 100644 index 0000000000000000000000000000000000000000..2949e40d19fe8fff36910dd9f9a00482bc95855d GIT binary patch literal 2738 zcmds3TTc@~6h2#9mNu1}ASzx4ywJYvzWAhKG$;wCps|S2_%huc+kxGgb!N7qKgi!; zqKUryql{;^5DIKk8j%MccIS5HJKy=v%%1)I=lf3pSb@3=1qVKA75Fjb!r!4?>Pyx3 zSrG9=Gv6p0m{jliA#Za-qeRIt4NO9{_G1~cNc$aQ5?`?|Dbq&#FSrh5m#JQpQ5AGt zC^|5e!A4ZH{nxD>78nN#Jak~Dak$Vlii`GR2NvF@!tj`_i!Rr^6|v_+NJ9;mLOW1y zY)Z44MiE-NG1Hp1nFAAzS6YfUN+wL19xj!-G)i%yXnF}YV^6r?=BWeAwUaJS&eXRp zw`Q6o3O&51N+30ju*Fpj*@YPgCJ&jvR7$FGm~~2D-wE6xqb>_cAmfBb8Et~1VH~l3 zL@MR24kIC|OBEU=G}y%e$P!BK?Mv<*Nba4K-0Ms3S;@Tv$(KkdnIHP8FDjt5vuR z^A61A)C2qVpKRc@+f3sYQ(F|j-L@XcfJWO?aXa3hESe6-qV%cp{|YEpol7-Ksnlj> z9gF5{t$wm%jRSEYIz{<8v!o#*-6!NCv8}Akx;WGCRhlwY0bAo%y4hp@1X%@gVfo09 zL7$id)eWvSmRpOXVG%HV{8K65Q-U!Zx!AMqIJN*)>;uj@n9d1&PvPhx?y!3*KVbU9 z%$092_X|e_xQ1`L6JPLk-&^D)QhjS==Le literal 0 HcmV?d00001 diff --git a/dpp-backend/digitalproductpass/bin/src/main/java/org/eclipse/tractusx/digitalproductpass/models/http/requests/Search.class b/dpp-backend/digitalproductpass/bin/src/main/java/org/eclipse/tractusx/digitalproductpass/models/http/requests/Search.class new file mode 100644 index 0000000000000000000000000000000000000000..83f491b34271a47520a789fd759d38cf75ba77d4 GIT binary patch literal 5712 zcmeHLTW=gS6h0G@>?IpgLW3v)Y66rEml-bQ)|ApVZKa@XplnD55)#ggv+HDLJlLL9 z^2?Awf_Hut;&^5^J7FzlMqL(!c*uBteEj)4H!H`#|MBy$0Pq<+sKJ~AkCgPii1OGw zq66v)+4Gnm@p~cH#k7{2*j^;#g>^ zxrh~R@9YY_n}#83)*{5AJ?6mEoiCJ#zmg(hQlH||!hnV;F3fQ}W|0SbrwPtl0Xw8= zsQ2^5TA+90fSnlBomjITleo3+_jwpd78~(hAwouDa~Kc0eIe0;reYCAioP*n@g|SC zzU9DE?ah5-Q8!HziM$?D8KXf8x6W^)n`-ca11n>D?@K9U9bR-=*S?8yg9ryKAijta z9%jZ8bQD@2sT-u(*y}SAU__`yrG)y&Xg1lvFuB7pxuY<-lVNi6Fu5j7?kG$fBoIsy zbS;Uf_WMNR5$q(vAQg|myl_okxQ4m=LCgF;tco!Y=m<29*m?~|GG20fN5*`o4F(VYq zrGFlw+4y&n$!_rr{87%wWsu6{=k(5-9?}$<|IO)DCJwXqOSx-gdaP!QR4zIG<4%~d z&;LKJF=H2$%ktT4m8+|nYc=5tyxf8{xaz=Kd$Myf?Z-+7|9{v`qXQ=QC^iqKArU?e z_o?J&J`~RDKF40F+nIXThuzMeh1(=si)0w-t;r>0ns{Q^VZ_7j(TOm_>d-sSe@ zq+%U59SBQwa8oNT2bR@&Vl5u{qS*D01S@@;O;E(_4W{g}u4#8Cac=J!{!}c|x{=`_|w&{63H9 z*O8%vWAhid^6l#SPw>)jIGY24U&9n&9qlk&GcDMFS8-+#Uc>JQVG(835neAK7>`s% zxCU<&5Hfz56>WUWY(;px0*CLc2=7$j@Vynmt-#?2 zD}q;ngKtH6w*rSlE5dv5ej%FUeE7hU58R6IA$(Lo80UixA+#cV44)Jb#vDGia7e5O gTX3_0Fy>%G&=!O_d^0u`d<*X5SjYPQ9PYsOpQDLy%>V!Z literal 0 HcmV?d00001 diff --git a/dpp-backend/digitalproductpass/bin/src/main/java/org/eclipse/tractusx/digitalproductpass/models/http/requests/TokenRequest.class b/dpp-backend/digitalproductpass/bin/src/main/java/org/eclipse/tractusx/digitalproductpass/models/http/requests/TokenRequest.class new file mode 100644 index 0000000000000000000000000000000000000000..bf8be5680cb593927b182dfa57cc7e2f050ab988 GIT binary patch literal 6102 zcmeHLTW=Fb6h3Pl>^KPy0ZM^Fhj6Lg%Pt^ZD6~?AKngVhnKR#f=bV|@Pv_nHw|@b^PjIUOB@doy6$T0A zBG{r`8c5X+SQztEv%n}CnoPeABHreP#;KA~7Mhf59V9Yhu?{-Mq=90;XG|L%tjTRA zR(h=pls%ZwF=Hy)!IRA`78(zx5hY|=FGU_KwD!kWjpCwx*MkcynJ_$IOQOp)-;CKW zLP$dmmqO$8*0MCqSsbHfB|#k8W*(eqJVB=d|afnI22P`-~5s=#Rv>ibSUP)e#Q zeBo99SQj`!#$6VXP$nsla}Nnd2VG9|kEAxe)?p;VWKe}hDGj&LSF(s1@^>@j?`6mz z%#h#9kZ&{O?`3F_M3QNO@gxZ~VTTx8g1t^LGsPuvOZaw6_?Ef}u;@WNgr*x?@{yD7b2`>&ZdBpASG_a@g^8>@s6Ia@f%pITI+2xQ zJNEyzik-;HPeN8sB-~)#U?Sm0RguAHWRGtHV70E@106B3sa z$F5=j*WfF-h);`fsemwL$3{f>8b|>lN6!&1J2*Uaa<~HL3J9e>2N%MU6QK@Q3kdrh zt~ofk+iW8wZ0*7@c!nY%EcS LH}P46uq-a_F*>U)leWjOj^jMRc$CxBwi8_5TV<&NC}ERf7tF9VIXpg!= zc3kEKJXXxrl6pE(`>xMBT+<+y!cROMQ>ENc_$*LvSL@i7OvNHnOu6g+=3rifNdmJe zWk92j`}gi1^E82mCmGeue}MC9yDg&59Rf?6Nu+tm)}tO*d^cbZqDW|}IkFNs*?y)( z^p6xVlllPRQ#~3aj6ls3k!JhIWTlV|)P#?#cX`D1eFC>y?M%RymK=i>+(|`b1gkp) z=G$9I9AjSU1(gxLr;vB@5%Skyj=)St`&ddL>##tobI&7uK?FVK+nxwx9;6A_=o)4e zs@t~J*zPjhM|-J6P)xm-w8QLW^xPSE?hHM5j(YC&J$H=f&PUIeZC@~DqhEGNwb!*Z z#$fv~x}A@KtL&Inc8qlA%Odvk;9)GJHmTYkHS1;XGJEL2SAgU+7X~y%vL1Os;E}uuuMllP0fvf+f8;|n}Kremhi-vPhTdX~s?JP`Allqj6<0kdEh7Msw7Qv?2HET|{V413_10>iwGNjEbW3!|u@nXBP=|Ch2FV$TmXSC-I5bho^VqeGuZ(vZR7-|Q}m$k;W94b6i-cDY3x@| zIg?a+-Gdsq1Wx2SSq-ics1F6!;5r^}jP*6RdFa^I-!st9zqnF(4%)^Bs^Ah3n7}h+ z1^=g@iZcKUPT*L_J589zaR#q$AZp4ydjqro&CkDrAO6Ry3jBy;6)^xya2m&EI=A2q zoW(1{u#{skk&e%BF2`UZ9iQQRj^T4OT!4!?hD?K9;KRd0AC}>#97E+}7DWt?3mJZf x%Q=Qj!<7OJPYW4Zu$p7YG!!xXS->y>zo704{0hI}KfoXOvtSY&xC+0+jSqjcr1k&+ literal 0 HcmV?d00001 diff --git a/dpp-backend/digitalproductpass/bin/src/main/java/org/eclipse/tractusx/digitalproductpass/models/irs/Job.class b/dpp-backend/digitalproductpass/bin/src/main/java/org/eclipse/tractusx/digitalproductpass/models/irs/Job.class new file mode 100644 index 0000000000000000000000000000000000000000..79cf6a66b4c89025fa8d5498b722e0716e14d318 GIT binary patch literal 7278 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 literal 0 HcmV?d00001 diff --git a/dpp-backend/digitalproductpass/bin/src/main/java/org/eclipse/tractusx/digitalproductpass/models/irs/JobRequest.class b/dpp-backend/digitalproductpass/bin/src/main/java/org/eclipse/tractusx/digitalproductpass/models/irs/JobRequest.class new file mode 100644 index 0000000000000000000000000000000000000000..cd6342232752aa29197b74c5a300fa6cfa725ae0 GIT binary patch literal 9225 zcmeHMOLH4V5bkxH=n>hDLlOcBWMcx6c}Tn;aT2hd2TJ6;`~ZsQYBiB2UhRt6Stlx} z;=q9e2M!!KaNxip2M!!Kq(Z95ohtqkMbB!rJGKWja;;pUDhEkByS-n3-90@s>i+ZZ z-~RxBQ_#%7hyfRUW|vzQb;~!bHLL8gMw!?SZTqCmnPv09zg4c&2IZF1W?nt8dE4^+ za?7g|$1hXnmoIp=Yvl8Q_&fun2J8uO9LsH#FV}7mn;Vd^{5D?r2JEiRGG=wE)aNq> zB4^ZX%$!E)L)QYA(-x_?Yt*MThs?UJ$1P4h7m>%S7ktmX z!n`(Nyo2I9*DNPM;6lx7Rq1tNcWeiTdpCm{kas+9HE7RWxr9i$>YV2}#Bvd2-1Zy? zsn7Nd$ki#sG3rEPY|C+Kmc6>n9Mo4QZQc~GS6ogSgo)RwxMY-f=9|P`HDJdo=@@Xe znxfN>T_nQXT_>qa`Dp`g7ZXp;Y&JGFF1gs`?bw1uCT+sgD+b(?m?~rbK(im6#}vrG z69!Bq4m``4$Fgw5*mHN;WyJTKHBvWiuhphbI8#kbBAmJ{|Ad*(Ej5W*$85703bk<} zSq)-NVG5R_6fE^pu(UY^OWhPKVG2%}b&vQaW`o(XxZN~40+U-J=VV}vVM%0qN$@Rg zK~0x2ZM8kdg;Az$i4-(z#O&ER1d)(!z^S8DC$hfMa6Lw%+^6V?&Ad$RnU={rZIaK0 zuei1o)JY1GYZjvxhO~>@TY&li$E#o;x$g4UM@U}y`iQ2D7p;_iv<^Tpb-=VOP8%=U zEFNGFR$6U`+LW7qfO{+Ez3X#^=KznH-3`7tZBpM1+&Z~VT~aTZ3xUtY`V+q9bWG~5 zd8@>=FB=uI&_DJ_M1Ax=?Ysy@}@r6;xR?i%jg9WHvRQPlFhUJ&)9 zv=lzfjNX}K+uikWc15Q_Ezj$ED{VO~a#})qS-bsGTI98a^cE96sWkndMLs>D|K}ef zE&B)fAEAY(B{bYkUW>x^3gzK294){>m@;60adQnulx`-fc+$TVv}%Mci9f%huI6Dm zY$f_L9Niq{O^Ow@g*5A3SnJwR6dYEh@=8zN+@ee%2KmJ9keecRYSE) zt^Tg0K0Qm*E=;Pq|0QuBuIskPo_vEOHSMwDv{W)S;HW%STAPKJ4XFHgg;NwbHIGAB zfcGUnCJS#FaIQafoi!JgBJcG|$B;%< z>L%<)647Y_bz^=0e1F|qrw;?hP`RwCP>eMRhfE@q`3>!hNqlAFy#mUeNxB*Z6p@Bm z@wD675T-=OCp6_(ykV?qNk*1ML3qaD8h=3_jVyq?1UJwh%D1iqAXm& zwCEc+?7|?kki}9lbrQlG#})hW<~c4T$3^tz{?s^9TX!SB=mpFs=cw4eCz38+*d8$8 zK-f^*SX#&3cMO|$SZ-f-S6%NWw!y}_g582TJ}*>Um#}#U+l0i=z{dt$PB|WU0zfBc z;4|#D#Y;>EYS?LvQYQm-97OXd1J~EJCA+DOL>H*CZK8{ANF_-BWDZ3@4 zXJe%2Vx+BE^?Z!FHN6M!lH579)+soK#3(D3M-= zH literal 0 HcmV?d00001 diff --git a/dpp-backend/digitalproductpass/bin/src/main/java/org/eclipse/tractusx/digitalproductpass/models/irs/JobResponse.class b/dpp-backend/digitalproductpass/bin/src/main/java/org/eclipse/tractusx/digitalproductpass/models/irs/JobResponse.class new file mode 100644 index 0000000000000000000000000000000000000000..5fae78ca7dd30fedc130c98247118bfc41438785 GIT binary patch literal 7326 zcmd^E>vG#f6h2DQICh;2p%NJpELK2)%5~s9G2ax5(-b9u(yQ{Q$ z0^WfaVFnoB7e9C?hO?3_t&*KarJ69MKcbtDzVn^$?Ag_x{Pp+GzX8BC___c?1~fRc zYdwp)wOwo9s(GwaBep|*PHKW#wg~vcTAOyLupFOx?Z6hk#d)pgwTZ)Pl=0fS*V-c7 z_gqd2Fk-+|2;^99r}jl_m)OF9;a#s~z)CK@>ITei1+JhyvgYnnPFoIHc3n?cf+7b4 zCK~J9b8j=xCrlim`Kf)&35WsXj5v`|7vnSFbYqz@>!3loK&#?5?YNc*7+T&>ep!5S z(p!q#`VzVtHU^iB@{c<%BiwWLN!zr& zo=>BZZeq=1ef0QMvs7$$iP^^Dwip`umc3_nh&hiHU+q_Xbx`ruqZMC`23i#>e%@?* zgqv7$X3r9K*Axg$9{O17DlkqgRXMR#CEx15a1$}6J>O$O24&iotaGzP%t5UGjfoP= zah$@~13?|Fp&SBh9oJ)|KV4DO^=Oo)@J!1T2RbL(+H(vR*|yWWgi)t(w)`qV7@;_ z%dBvj5|b4ytKBms-P1LuvnDWayX*rZtLOh0Vx}47gpIOhBIgO~nS#r8c7D3SN-zVL z%Ww`%1I|{IJy8@^UG8os8~9nU8T49&HRboH-0*s~<=p9ipY|V)h%Uvg>}D?8(?Qb$ zH`2ouNn*4^1a4amSgkDN;-NkU3kJ+RdTWL|GuaX7yI#v_!z<&N!g$o)11dL;k;UbY zfq$dk=f5=`gSQP}kB&dwn#P>+`8dMZQP4xNPgIo9r9R&(5Au&)dMIKBw)?%Fi)pEq zWe%G!WALE?f95EZ0-ukh#mtDZFO`ISDJ8N3f>BF}#!;fC(&##aG9?X;Xk|ost{LED zkSDj56p3LFDzVhm)#oJxD9aoteYgwhG!GWNFvm9x_#;CQS&LzSol}Cd!C}BMyGg(^ zsRR!|`q?d@IM>7W<6K&oB*pzzK-R#T0l(&`&xtRa1{6@6DBk&$EShlT*ePv$0kg>p zl`Gzq(nt?`W(J%KTiJ&@L^yAcW3L*!Mmz4F>pgJsJ~E8@LiGY{VG+i|r~plDb}OY< z0Q5aJNL2yurkeJVY?$W_$~pFio7i{aFbB9y;{Ods@q7x8faemN#$y?;hhQA9CY1Y0 zyq|*SLc3|@`SbYvjBk4`+;JNe*%-oy4_!GSNd+28lkCFqx zEX?Dv9A1~;C3qR{B+@H*93V)$$3=J*Ueh8}G#pm79A1Yv6ojFegASpgMR*h5iuI^! zqN!=P+}0w!1MkL2@5M+7Cmm8#i*!Zd^nQ$#DExtj(_JmnM+&EpW2A(W4(YxY=_=F} zr4ufT8ZO^y5tiT+1tH;}LuhLeK2>yCj-yGqT-R{vYLRX#y4;G95>7fKM~k$gaQZAp zN;s`*IQd$nb%oRCF;c=wha@ye!_dGw7=n$ks$~Ul;{84RE8~3fC2YeER{U500Q2p` AIRF3v literal 0 HcmV?d00001 diff --git a/dpp-backend/digitalproductpass/bin/src/main/java/org/eclipse/tractusx/digitalproductpass/models/irs/Relationship$Item$Quantity$MeasurementUnit.class b/dpp-backend/digitalproductpass/bin/src/main/java/org/eclipse/tractusx/digitalproductpass/models/irs/Relationship$Item$Quantity$MeasurementUnit.class new file mode 100644 index 0000000000000000000000000000000000000000..1b6ec08b646dc74b1bd7695379d77f9e58be35a6 GIT binary patch literal 6170 zcmeHLU2oJz6ulFYY<3f}B!rIwZKr8ecA>SQ@YDhlf}$?kq-{u$DxN0xusg(_v1Z0g z@_YItDz#F1=cNxk^r8O+amP-`F1rG!auA_;SdTxB&)j?N_1Jr!zx?Ab0JsU)D=cX9iIo0NDTL_W`Rx3mLH0auq;Zn3e&(Q%osmbA&-nNwDDJY#H>)# zbVah%vOHe;C1uhIyS=o`nMpN|xwPw2*b0mjIFZd0G1>8d+IYePOJF)=mf7uuudlWU z%(wRt53Cll^F4v{t0_{(yd`_Wh>eKfmQvwOZe9Yj?fXW_pS4Q3w%Z7w=&>l}1ZE<> zB?1;b%nv7T2n^#Efs2jdNrulf9}*b9gPB&KPN2RQ)(=`MJq2@Q?zeTRxlvJ%hcr-e zB62M#YK1|@<~v%eu5~#LQBGL!!&usB2JXHE-4x?CpO*SbT`+sAg*k!j#QfO6i;A+ z!_!f#D5I`JYSru(8ANHwOF;IR77Qzu^X_)gJBahHdshNd#)kA>u+N0(D$U2A5yMcY)!p4#M;VH1*ADfpDYy|>#^&Xp=6FV1P+n6r*Sv25r_g^w+Str&hSJKPqG43&7SxuXqf9 z6EKNefLbK8cO6jG zeA35|UE3$aIb`08VUOX$h#3AJ8N+9=(8u61&9fNA@M0vx=lh7^pOFl7A2Iwpf?)zH v<@8>J3XV?kFLC?|f9J3+7oiE4p$cE)o`)mBJs-z!@%lI(U4d)3HwMjD^bPlc literal 0 HcmV?d00001 diff --git a/dpp-backend/digitalproductpass/bin/src/main/java/org/eclipse/tractusx/digitalproductpass/models/irs/Relationship$Item$Quantity.class b/dpp-backend/digitalproductpass/bin/src/main/java/org/eclipse/tractusx/digitalproductpass/models/irs/Relationship$Item$Quantity.class new file mode 100644 index 0000000000000000000000000000000000000000..c8ec9decc4185e8adb695d1fec94ee00904e1752 GIT binary patch literal 6655 zcmeHMTW{P%6h5;g*-N)glU^tdmq|$JMrv&?EteLMPzz$wrqDF0R8@VL*wfu<>=`pN zUXtI#58#1^N>qY(eiY)&dbimm7Il#~Y9J5m@#XlN@67pTY=8UbU%&kh0AIk3DpUwO zG&=BOCZzv_^_j19*XKbb62pC~SzuGM?T4Z(EQ=DY!Zff6Gscfq$RpzmZTvMJF)Nfb zJ&`Q8EsvM)rc7F4cd9T&;Pe1DVzTRhzxjj*mcXeWhXHrec#~@awa#soZbtkjfrYgc z?~Qp|_Jt96?kg#k%{st4JKq^4f6yx7+U{WZbe}~jComgxW>U>#F71XC*h$=(U}np! zd%Hs>GoK6W_e%oXtx-0I%3$R_fvHpueDaX2J>X@=MAa3QBj|VG*EFO zvcgd;EDm&RZqP=3y~k;Y3Sb(85*BQ+E~iT<3vVb3ZzK!vpe(#h79PrCiH3?BinXIL zvq6tq1m@cb3Sb-1aMF zvhUCGUVSG!XA7|{6m(R07D}d2(9zUqp*5rI*OSSLqfkn(0EI$4OABhiESzmZ6V4Gh z*Xr!rI9U%joy{}b!4KEWJ6m^t0D<|A3RrZ1=no7}PT8I?1RhP&hC<`(wU*;F*X4HP z`;Bb9Mr&nch1K9~0#O0~sn8rQ5`>h@K}si{n{$rzJd)n$2&cTcar<}R;t@DMaB25jWhj-CVql+b$StXUl6ag2 zW(FBvZ?>i6`c{MvGdET62&|P~i7LELV6{|SbY7kDjYjrp3RK}5fvr+I+3T(Ecc5`q z*r$yue1fiYHdSzFSA{WX1g@hmiHkz*4mb8&Wh^WLPGS5*pn|_?n87VT15V&}2Cp>X zByLaP(KU>6agAp%`(S?VDV+HOk1B9}7zwZduj76b;~l~UcmrF9aB&P_aP1`#7U0cX zgtu}y{F2Mz9iU?fF4HWFJcM6!5f))-3}H8mcXK#A%|*Bb?~Nhsa>zq?mV+=2myve` uT2RH-)n*0TEBL#Jb-4;Yd;oPkdlf#!_9NW8j_s#-eG2zKhR<-X0{-7;4Xz*n literal 0 HcmV?d00001 diff --git a/dpp-backend/digitalproductpass/bin/src/main/java/org/eclipse/tractusx/digitalproductpass/models/irs/Relationship$Item.class b/dpp-backend/digitalproductpass/bin/src/main/java/org/eclipse/tractusx/digitalproductpass/models/irs/Relationship$Item.class new file mode 100644 index 0000000000000000000000000000000000000000..cef59c37aa78e5e29feeb479da004221f63eda44 GIT binary patch literal 7090 zcmeHMO>Y}T7=G6zaqN6G=?8`IF$n=2KD;2cd^BxQ6+jpzEu?7$LI@_iQ+t}-nPq0y zO~io%2M!!KaNxj^3;zHKBzosZA>P@wYbRc{>uQY}$iX}7@jK5v?>o4lA6 zBG--LqKWZSSOOLztba`)TtKzils>=3I~`t&2mU%WOwdmnz5^2%x!~rq1HaZrn)o2s zhwE9r>A=`JE^!%7IxyF(zmF*TI zKB|c-42r0?OPh==qr~bRiPgIjs}D-7o=U8a5?dy|WSZa#l8_p&MGOM7y$Ds+4~&wk zTP4>m-}*yLlQQOEB$csA5szBgkR3+4xfT^-1=wf`saQvb91|Rzju=TOG5Zm#R+1sY z3u2!Y5ZR`RQ(UPOx4Rb}0Gw`s2L$!+t>Qw9o;nv^BaHAw;D+cJj|!B8&_>}AC>2Q$ zwc0A-n#96qx42+_oovS1SZOB1f_=h8TkbMKQAVwU2-V7H(Q_qu98@_j!M|OCqj~lX zajfN%)c+0d__VwC5Yhjwo=Ypm1s$)#qp%9at>=Fm>1cjayengTurBV=ceHyp7u#Gx zM}=puWO4-^O?~D%Gm3sZ8Lc>SrSu3;$i=g;peiiD-wKU}ZI z;SN*V)(^0bm-J|Gv*QnRI>$_lYX`PRU|*r1_E^nQnQAiA_3#|{qP9AM$$BQ?BrG|w zbbl8MO)R9P`)PeSS_jY8;Uv~!W59?!h4tteaj8buCgDW~g8L_tSaF4E3h7}z2Ilj4Y#wQ-00s@G+#JoY}fqMh$|p%VkpfisECd)Q?| zxy|szdAlKYg}j3X?o1k(dTaRkbVCTH*3s70Oqbye2Q~|}tI=Fdee$;*_^eRm#DBl1 zakSjK`>6~U4|wva9x&BSt~Hw4+h{T3{+_(bwD~}4151G068|R{PhJyv1*pPQ(oT2U znNB;Kw9`0Z4o={89;43TXgjL<2P}NLaOyWWa~I#0;0e4=U<|+_Jc(C3$|5hqQ`lOB zr~43+&xS;J2A<7CAQ>F)WO7)B=lT#zmS4gl3*qZbgcW$c522UE3mF`~$wa8Z**=6G zhb)9|GZ9vY;P720!b?MN_&yWiZb_8h(zu-Ad}@FrB?Exfyc?Ir9V!}~S3jCUnC{|}%O%SiwL literal 0 HcmV?d00001 diff --git a/dpp-backend/digitalproductpass/bin/src/main/java/org/eclipse/tractusx/digitalproductpass/models/irs/Relationship.class b/dpp-backend/digitalproductpass/bin/src/main/java/org/eclipse/tractusx/digitalproductpass/models/irs/Relationship.class new file mode 100644 index 0000000000000000000000000000000000000000..0bc8e2594b3176ca353eef38cd6e7e65b0f39cbb GIT binary patch literal 6648 zcmeHLYjfi?6ul~G(}c9$mVE%_p_T_^2GiMF=nk>s%b z5&Q~%1T!!L-}zAtS9aRC#KSs_!)&1+YFW|s(Yg2BDDL_FkDq@9fZOmv9p(t^8SQr> zCS>OU8?uhl{SNm-5gXpIn)x;{4?BVA3(LY-t03`h%#7(oD&V2%2yHt1JY-fVX$B&$ zLyf?d6e(n~-?`g+zHf#;M)WTIof&N>+b7l$skA4tYR*6~!W}7sYyFqLKNK zHX8>6P6I4F(-;&p|CseT-9$CKks98q8s4NDUZ#eJYHZR#aYM0oG-B2tP>aC)p-UhS zjD_-?=$_;2{ex{X#v+Q9wk|2^Gbb4BaeA6-RUuCLZeJ?RM-3n_!O88YRg_VSDm5GF zBhn9(fL9PXWLhv(D#JbP!bbpSo&AWQd{=0;gQDJBz1OATv!&RU z3c4sfOC?h(=wkL~sWYSM*OS>cN2!z^0}7>hRuIrGx(oS!e?`lqR%i3{mX^PWny&p#KgyI1qhZt4^gxSl$(f3@SVIhRCg(H+WT zslG>xbSVqWOgLO`b*1EbCq(m@n>xHhV8411(28}YZ5`e_=R#+_g&g*TG3YltE7!mV zpnr=_cn!ySSin2nni>Da`TWmv)M6VIlP`C%;RU%B0LW-5#TV(Q7l;=aFP>C8(=n`JnCb9#_wI)*U$YMI0zTV4YydCExSewIB!; zRXhx&1IN3!WfA0Vki|!W;b}i)fETMH6N8^cr%*0wyT5Kilay{DZiv5z!)SF&RoZA)Zl~zi<1y< z3K5Dryx=VTxf9@o&>u37xZxn;ei9$Sd}6=@d5JXUw)>2Dn0P7>6j65{(@Ivc8m+7v ztx+{vk5;3VR-=_wW0iOzlLYff22{CyqL7?Dh_DoSax6T~;6Y1kZawBwsd7GuLZNhU z#HG4`WRHhETM#3T>OS23ZFCNAIO|E%#yx{Mc^N6VF&p z)W~O=`g-09pZZ=<3I!#M|jvJhW#yV)JnRw#^^dR`{K4(A;Z)7M*c+&D0g z37zC{p*c?B+HM^_bl~1Ui_#8exg4S+oAz7c;;vxPCeCSkP+|3Ok8WBlZ1K|rmrENf zS+0spchEAf;yXPyw!&DrY?JFFXd&~m6I;}QV~GWw8I9{TxQ?E4R@oZdMDJHOehof5 znvgb?_S31LUP}LSKw8A(hRTtYX*{Is3L254LbT! z6gms#8CG))I@HH}4cPn} Dv3rA! literal 0 HcmV?d00001 diff --git a/dpp-backend/digitalproductpass/bin/src/main/java/org/eclipse/tractusx/digitalproductpass/models/manager/Node.class b/dpp-backend/digitalproductpass/bin/src/main/java/org/eclipse/tractusx/digitalproductpass/models/manager/Node.class new file mode 100644 index 0000000000000000000000000000000000000000..059af4835f2a951bdcf22aefdd1a59e27788b085 GIT binary patch literal 9715 zcmeHNOK%)S5Uz1-?<0=mgd{*h!o)nX=CR8oJd!m5<2-P(PC{&lARbBYOlP-~*_qKi zoJ8Wn0VEC_I79*oi30}?9FRDGL?m+HfCLA`ng4>Qo*D17y`4-?ysHE$7xzrN`s=E% zt7_U+{^Q?Yeg%Nnz%0O!26Mh=)H;OOwM%4~)Euu>qlU#?pVk787(wV?t(mOF0%EzI zV}?fH65p?N9Ftl&5Sz59S38NX1sK*~B0{l<-Kw2xUZO^z!4NYw*xE>cu@HF7Zq+r| zbtbd})}eFuGV@u}qBFMb1SDXN?Q1aJIPN?4Y0q(~7hFT}k!50qRD(?|%V`p8#`kG3 zhu8&XF0>sFw<`LSct)E~4!b01Yp^lVeenvjab@FhYzlux#0{66CZ9d-G|y1q#ce6h z7L7KuOpoG%k;Xi6ajLYyS~dwn54Sh@+;p!!jlMBiKZIM3PBWVYhcxgieMDYGKxAC6 zAya2H_O*ILcN!@g)ucOE79TFIA zJwR}J)y1F@!O^R51+%MM=jt796>H8qE`|v=PB#b-HN8po6`KbjA}E`+VGhwSV3uE< zB>}a`xg~tb!j6dJtJWvTv(a43c08KoB!;Kg%cCARI?;n`E-ja$CAMLOChdddGVvHe zSB!C25@QB%oNP0M#6+7RdLM5kN31z##q$t8Kp9NuI27Ug)jv@D%4L8l`NCYswV1&I z-4F3Yj>*UN0}rnej;F^rgvyl8d_A;HdXd@Gtm^ZjAMivNEwira%wBdbQ=MSKYOh8p zm(=O(lQ~K@D+y&QG+64Cl)N|j&8AMtxWV$PPMwmnNFZ($L zvCbxcxF(asL7QQH??fNVS{fXX=%iZg`ch@>-Kkl123LnmYhbZE)p^}-efC*>m#M+(ve(Y z0{a%@sJSqMq^u5R4zm$qX1h(60%Gu7puxrXY0z$0gku`aW*>g$T>>pZYg0>#m2S|s zqQ^m7!pX#@SF8d)uJEeCdC8eh_4SK8iksn;CH4W~?ouzp+e)!4tjUVyQM57I3!O<= z7Jag~Gc9!ce*8evxAKA$dImkp_+_NTyOdEIMS~qtb8&4sA6;-0Hu|u{zhqywohwnx zP$=Tp3-CUkx!~Rf_z))ql?reH`-iTj2p*wGE$#U_0!==N<4MKF2c;!Nd5Q{kY2r zj^!J$^WCkF{0w_;M)G^{=P0fK*aegLb1Zr;!(;F`zHy`{x=2s16KNmft>`k0==pW2 ztQ%oUK;XRR*WsxyA5X8-nr8%E_zC3K<=L(-)vhk3J3y*|oR{Y$esWdnCojN@Qfu~0 z5I&Y7ybQX4Fx0g|hVY3L;guXZd?rPBHHQwLOA!v_(BTUy!oeImT$du$bLjAu6k!_w zJtU3QG)`n^@%1eb4k;siBSm-}-VhMd_>lSJw^D=|cvC<~JxYe~ofKgf4tFE$NH@Y# zU5-k;`+F(UTQJu}I^IP}b&?_dAVoTn<7|GEA~axL%8TrDf080h=kU=RQiPLmO3)!? z^t6Q0n^J@`upl6$Ov(^`lOinUh?C!?2unG5`12MB>Y4X13Bm?Ai4)Y12_-lKU}%{#{d8T literal 0 HcmV?d00001 diff --git a/dpp-backend/digitalproductpass/bin/src/main/java/org/eclipse/tractusx/digitalproductpass/models/manager/NodeComponent.class b/dpp-backend/digitalproductpass/bin/src/main/java/org/eclipse/tractusx/digitalproductpass/models/manager/NodeComponent.class new file mode 100644 index 0000000000000000000000000000000000000000..820f7e1dbfb161b00686c25c3f0b45064be7b403 GIT binary patch literal 5918 zcmeHL>2BLb5S~>m>#!Xsu9LQLkBxiDJ;WaAX~#)mw15l6348=CTBKN$TWMozN$f7w z_(A#-eSrck(EjhgzEIIwl9uF(fhb1=0@Q!B%jNLnH{Z;zIP=#(zx@FKH{nhNN(6Sb za-A*{(s{&s%n4N6;jS-2%^jndYa;#F@kCn~=7%cqBG-gWYo{A{+{b}Q*5=CD!ON|n z8wQd~Q-K)*mtr`d$+mOv@DXH1+CZiJDhqL7pBlCWbP5FPFFEl%`{lelVCMRgVjue z)l7r6O1*$zoh;;qP<5RHgF(nv=Ho-l~>oLH| zUKwLFyidlM{@?KIDKJKo?QZA`R~V`zJZUgpr8Wu=yg%~3ve;Oj$Do!=f*gT*f=SW4F&F*m z89l+v;eW8{y(|~fv&SeG?Q^4|ciwPL=17tpCeL8Z>aYwi&ckK6M&L?gwBWHt!D0(P zA$FqfAy@nMW6)Mcfy?{{>BnKZIAb~jOQ8KCN)?1{Ob>TGDYUF_zf2vrpi<3}-I*p? z3wSFd;-fi`v0{^b-6H(_GzbMsRc>=*tL){*+9>@hyhXszQOizk!(t;qCxj|UY$xso zRB$Do;oAMU8(`Ox*&MEI^;-i~bR*WBz{7M}ka$)2fIugQHaX6_@g@Z3(BpxhwZ>p; z{*cTI^3x`-)p)Ppkg-e#SM|LhQZD~W#OK|qrcvBxAaFJA_58Oy$DYapc5kp`KafW< z_zC+u3yEP;l&@FdCiYpZG!?jYs`->;8-e+|LTl_c?PEc&;W}V*2D@No9Lq3^GXnK= zoJ+^~bX2-Kxh|55iH#2m(m#Iqw zt_>j!yvah?%|uw6fWtv1!rK#Y_$CwKoe4O6mx=K11RNe_BD@F9epH=)R0lD6KO-hA z6X`?vsE>4`k2Hu)7Lu2V^zj6`bTSb>nLrmm1K|REig{gv&!B>%-Jzf3csrh#U;{S) E1?eR25&!@I literal 0 HcmV?d00001 diff --git a/dpp-backend/digitalproductpass/bin/src/main/java/org/eclipse/tractusx/digitalproductpass/models/manager/Process.class b/dpp-backend/digitalproductpass/bin/src/main/java/org/eclipse/tractusx/digitalproductpass/models/manager/Process.class new file mode 100644 index 0000000000000000000000000000000000000000..5f074120d478d8705e14b0de13f974c1b4e31de0 GIT binary patch literal 6418 zcmd^DYi}Dx6uoPlc(JS51ME7AeRrh&YuhA))c^)Sh;|yPBD` znm>j3h6ECP=SLy#?5^vrGH7QjH&TisdG>MU?78RO8D;L@|NQM!@Mzq3;KGk-r1+HWMKdn>C}h{8C{|SQIFb&m z55ALegyabm>JZ^8Ga9B0M~N65TfSg;f$Xb;L7XwR(j+JzsR_QtckW=AT_M5h7d+zX zO9#B}Q8|Vu#l)RE4m5W$<`$fFU}F);O(A08!VAv&F9(reG7e`fAbvbec$h^&&@~Ke zDzB1GdpKbvKzpe`P(u9&Xdc-{&wGXEy}9STqn`J2&wGXE+a!pYBd%{oU%K0>jh0?(hpXxM`5hL@M>q1h+L)p85nHpmH5Ae=Ns`I}W z`C%F`!+WA)LWw#|Sf_1+oKe9kW+O+>>#Bk{uhj}rxlSvf%jVN{U-8Kr>XyrvFP{o^ zd($N3K37DhxX!V@BB=y!G_fH02GZRjT#_^j*gYPxphs?{Qt4XHriF)uN3-|=BNS_L z@;F1MZDqF=$SN2sCM%FdCMuWDGB~Wle!4k)y6jfjumV}wZ2__RloiP0V-}ES$bBo< ztUwmNSwJcm@JaFB$}=m_GF)2*$4PPCB328C)h2J1KP!-hA`8edi?)jF#DXmRuH3Dx z5^~HSi@5%ekPe)Im)2kt&O30w z9@cL!wUvNp_2;@;#ASmx!$Do=u%Gt;^sGxYW@-FIE4)Vbt&q8r;y17OzMj1@W@-;x z5@)+RM}u(T9S1^-KEl#A8Qn?A1-U3}KX0nI_$a${;XMa_Jx)Dsi=|k#3pvonSaQ!D z=%CSs|1NlT_AYIQLMiCwT*|5LT#2rP4vIXOx2jxJnN_e0A3HFyu-w9^Y6z-8eUDVM zyNd;+}!v@}OB4QJs$KNfy zyMnWuIClPkGk3Sn{RS`og?9~j8Glz118@QV02%ak2VQ|!anua2l^C*jwHaP7F|26z z+6<(`@MKYF|K>huAM0z_E-`5T>oU9vZL~g rw8XH`U}A`k44>7|AdC#3*U*p}7#eUDYp4Nz*u~Ms9pV~%1=s%tDE4nx literal 0 HcmV?d00001 diff --git a/dpp-backend/digitalproductpass/bin/src/main/java/org/eclipse/tractusx/digitalproductpass/models/manager/SearchStatus.class b/dpp-backend/digitalproductpass/bin/src/main/java/org/eclipse/tractusx/digitalproductpass/models/manager/SearchStatus.class new file mode 100644 index 0000000000000000000000000000000000000000..fecf4bf03e0cba392bb20447f2c633770d4c090d GIT binary patch literal 6688 zcmeHLTXWk)6h0f0$ad4*AV5hen{cza*j!pJb(&I=UJ{hH;3PAhVTRdAi@mKZX;v#w z^2?Zk8F=TB-@-G)S;<$rK{AtiDCI?3@1FhkJ6CJZuYdgbGXPwJdlpO)_&SnKt<8jA zd&oMh7RY9eJDvz5UQ?1eDvpk8u4oFyyif*i?5L1MQLP=g+`||1S(D3JgEQ&08j7L3 z1=9o;6Eu(c&Dy=Ahul#FW}`%iK*3JM>jYN6iG3y7e8=yINE~_mhVKW6A_6}mFmLZh zfq!2HA(!d|#b-Lqi#dU5S4mu-vG-Vr)5V5p`gpX&rAvBl!yX*pP*V8Ky1lJreG`Q( zM{=gPi-c@Dz!jW|L$^D%A$*}W30y4qNG4~blIgQ@NZ`uI^6AI@b>H+B+RcI&2`mg4 z-jp(s1$ddvI|shxQQ&pBOP!z{3NJAQMa!dY+R;^7D(<&9b!r;Uvxw#oW!1NYgn(2y;C{Vhm2Y zNK6!MryY925sF4J7Cy`sKT;A4Zy;$}OUo51A{zTH|6cgqt%&b)tQ|Iq)BqdmZ zSLR>|Rtc<>AHOK;>+OP#-<5ac_7Ru+`c6P#*$y1$9d_>s-N|Xy5_k=7*k|5Dz)Sh! z$Q8S;X;nt1PQP_)+2_joS!{BZmTdy1a;0~tFTh&_yd0P9Gb{N>B^ppU*H=W7w2&kQ zAX?HwiWnrQJxxca>sWyI3H+Wzg^2~-qz*zep(#^?70QXdv=!Hq;pqm`G9|S1RSaWk!FTB= zSb4Dg(hqRqmt_A%e9qzyfK_-EpL5B$1ef47{H2j-A8D3-+HcYvG&# literal 0 HcmV?d00001 diff --git a/dpp-backend/digitalproductpass/bin/src/main/java/org/eclipse/tractusx/digitalproductpass/models/manager/Status.class b/dpp-backend/digitalproductpass/bin/src/main/java/org/eclipse/tractusx/digitalproductpass/models/manager/Status.class new file mode 100644 index 0000000000000000000000000000000000000000..c61a9861d4a2da01d669dbd3f26d88cc31dfc0b0 GIT binary patch literal 13166 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 OS@RISg%*4V>;D2#yOwGI literal 0 HcmV?d00001 diff --git a/dpp-backend/digitalproductpass/bin/src/main/java/org/eclipse/tractusx/digitalproductpass/models/negotiation/CatalogRequest$QuerySpec$FilterExpression.class b/dpp-backend/digitalproductpass/bin/src/main/java/org/eclipse/tractusx/digitalproductpass/models/negotiation/CatalogRequest$QuerySpec$FilterExpression.class new file mode 100644 index 0000000000000000000000000000000000000000..395e85ede8c893c1bb20c0b2b6e208ac59b5e8a3 GIT binary patch literal 6168 zcmeHLOK;mo5FWaU^{`?kO58`%$Hs9BscFf+fTB%XpfFNIh2kW(lc2{nxuG^8ciG*g zVE?iLEzsV3?4gGoa_FHyqv(*599beF5|I)k@j;}P{P@l6%y4)3{rTUozXQOx@Oc@Q zEKpjxPDr_M9?(8@r1Bl+20YTtF^ak-*87gfeQszFDe1+oiKy02C_NTvM=)O+P7RmB z*`$b({x`8W&dt3C%rzFQ$cQN_ zye_+sqh|LBV#g>h{HqpR+>V9eA?t`f*L*Kv-wPp4YF}Hh+Wk>WaZ4pU<^bWR`ZS1{ z1(lT9NM%8NXk?rFJ+!j?4Hw*eXTevkX?uCDwC`F_+Qev-;fw{1Cq7?ON~#Jpt+QX= z5jb-h^qEIo8Ad!v9VQr0oI$9+CbjBrj}Z?8PZfe9>OQ1CBkPzAdzcM-lnr}28}=X@ z_EUF)y?8;>tbGm)l^jFr0vn!<*ja8kf_lrF3#V%DHZIgke5Y z$Cxlz)fHIT3P9&=Iv3wg9Hm{+J*otDIJ5SiP8bE;<%Z}OTO8bHg*FOXGO5U*iE6b8 z*CZAmyUzvlY;q&U0>XVieJnU2T=eBbMkwyhy`v1ZYQFNwhsrnmw5^*_j=7lfIh7N& z&>$Dgc#Z|2Ama&qyeS=DNnfGJBo{f z7aP}nK0J3+4H|I14s}?wU@b$QNu-xX7yF#8INW1uH~EfEbR+4~;O_9ddU&y9dK?8J z(|!JG7s^ntwGvmG-N`KCtyQ0yo8z+A`Br;ccB;U87TkKejFhNIlLnsNTA_74VSQ!f zPO6oyjBcl+#^|2#hT>UcbpP;5ZAZq+WvKXJCe9sI1XGR4g43x;H{5(M0`-m%Ol=0J zDl%P$4=tbzPf{5^vf$o=%vex8)IL$?oK`$Uy1rc>PjmK5I_XQ$L3FbFw{M0=A3!M7{M@#TJ9+wdV za1q|XV?F&}gE!$V93>1F#uyS@QHHnSolJ&zGko|f(+2`;V+>1&K4dZcoyl;ifDex{ z8P*H<@Hms|x^1xW{3%{9;mCo{ IQskBY0klTjX#fBK literal 0 HcmV?d00001 diff --git a/dpp-backend/digitalproductpass/bin/src/main/java/org/eclipse/tractusx/digitalproductpass/models/negotiation/CatalogRequest$QuerySpec$Range.class b/dpp-backend/digitalproductpass/bin/src/main/java/org/eclipse/tractusx/digitalproductpass/models/negotiation/CatalogRequest$QuerySpec$Range.class new file mode 100644 index 0000000000000000000000000000000000000000..0171cb64ed3b33457dacc3df1c395fd3dbe7aace GIT binary patch literal 5848 zcmeHLYi}Dx6usj*aqO6;O)0PNn5Gf6dF+COghT-eMHGzOK$FmlkCWZo&9u8S%gn6R z{4ykv;5$DGacAu$PGXU@uuDYq!Mon|*>mqbb3HSA{`~9L-vQtY__zTz28lIMmVEFc4{h3~Ej@So~Zn>Aqxevvb6F^ricd!D@e} z$a90%J`zSrl~|&vZ&Eo8xW-`RIK!`v(Pjx&+4WCz*=6=K z-fHgdBacZrVF;9q=&4AMualg?NY3C;&fu(^!BEa%OwM&4YqXpS=b3QPK6exVpOKz! zJOGVe;72d;c?bU@+^_MI@I`16Nc$=RCoi(2iy+wbCS%sYy zSLHhY-vKMha0$8y|Mb4JG@YKAN>9&673Yo78hL>UD|OuzGusrp< z$I&8~ls_707XMEY>_UOl>5cl(meAK8CSb`_aIS2{kwMuP5MX;CeAx<^jZ61>ge zn}4>2yem{matdM(gS3xrD<6GCXX+)4|G!Aqq-Hd-5~ zjCM~cG@B{8c4!;WVIbzNVFTV{@Mun9$Sgea7D<_ryBLs)BekjK`_fu+Sa!+qp{`ll zB17_9Z5`YK8dq{ZYxG%wMLGhs%JU-qvJ7oHUZs1V5X$3Pzro5+tJi;l8-LJM4PK$6 zM*^(Dt90~u&+r<&PG`^X#u!8S+msAz@a9B@x6bCku1w6~9pGaOzS3b8lNc5!GTfRX xhvr0v^(k^_PhhCSZOXd_8}KfjSLxdw=)(KZq{{BV2XqeUex0s9gpW#O_iuqvhvNVM literal 0 HcmV?d00001 diff --git a/dpp-backend/digitalproductpass/bin/src/main/java/org/eclipse/tractusx/digitalproductpass/models/negotiation/CatalogRequest$QuerySpec.class b/dpp-backend/digitalproductpass/bin/src/main/java/org/eclipse/tractusx/digitalproductpass/models/negotiation/CatalogRequest$QuerySpec.class new file mode 100644 index 0000000000000000000000000000000000000000..1ec3094d373e449f15b91f8f99973d6844b8b10f GIT binary patch literal 8019 zcmeHM&2QX96n_p$_JeJcCJmwuP!j@d_}Jy6P-xOXl_qq{=A+p(6-UQAai;N(&CGa} zNC+f^#DN0`4jede;J|?c2au3Jf;)c{;*IUiI$0}gi`}H6Ijm>wdH%hRnKyp>o4^10 z{Z9b60rxU6pn)N{S#B7Vl^+;QqwH|2OiY`)f|MmUOzDZea-CXK8n(-wx@St)5Te|0 z>ckdhMl45CLsEy87Yvkftab9SM}(Zd>k+6a*7iZ%*Y&NRL*PgYw^I3cBjMm6SKH8 zZk?Wz}rqgh# z?a#K3>mR4TA+GEB+{O;k>zF78M?w6-PbtWrQY3q(^twZY zjw?%V7}DI)B`P3$m_9P90CS+ElC`AlF8v2}fd{nV;@Gsl zeWZ(Mukn=X6-)yi zI%Q2~m*@t5n|BT)45o-uo457oQU$B{M3aR9}Ofa>f&E04WjA#G^%Nw6c4I zBBS=j%2^S6^e@Vx)zGue=@D92{dM&rShdMMAt}m^WPtsRYcd;7Tq+Nj;F$tUz!eQ9 zit&8RNEPdx6|b>H_=fr)tr!}|H0;gre|7k9Q0`D<*UbL&Nk|7hR#Z&UxJ8fvJIY9A zi!&`w^3$+;N=#%HW;9qko|;n3RJx^yej`iS>36OexUC}dS?%`~gg$Zfvnc-$lyJ=`P4 z51%dg?576jeC|Cgi!j=S3S)#X*myocLC`!*&El{rd|r=C|YF{YAeW#djy*3A{du zqgN4CA?5#oOCOC*{svF~g?9s><5g(^m_*%5hwA5H3ZBDOAxuXQ{IQe>&%+C-C-CCM z16$fi#TZ*YkG16`c=-V7l>?*!Wv_43t1(Dl#3Gg9wOFs>Z22-4;dOW;g3z`h4&kd< zgf~;z@O3Q0)f6^-6N~T`ydCl4_&NDD7U3FPi69&whwow$-hp=`2*=y-eJsLtn2jJD zZ^I9<2y-do@MA2(jTCYCDHdTqg$+N)BD|NvhF@Y32H}0or2)7J3)o)99RmvvSb`jU bfV~Q~cd)HuTf^}zjxWP1+=UJQty}*Bv(?Fk literal 0 HcmV?d00001 diff --git a/dpp-backend/digitalproductpass/bin/src/main/java/org/eclipse/tractusx/digitalproductpass/models/negotiation/CatalogRequest.class b/dpp-backend/digitalproductpass/bin/src/main/java/org/eclipse/tractusx/digitalproductpass/models/negotiation/CatalogRequest.class new file mode 100644 index 0000000000000000000000000000000000000000..ee68a661da8c7030ca8c38d26ce9d8189c268623 GIT binary patch literal 6774 zcmeHLTW{Mo6h88tICh;TODFP{1{7%vcyM}4(jt$H#42ngQX?s^ zdEIZ=e;Kd=+xvdhutV8Nlvt=`%+7)~52h^X=;JwuAIZb-?|**(69B%4Zz@o7;E7hA z8&NLYXS7RQsREaIA&)h4jiR1O^mEte0XH;^mGl$O#8hiHl0FNyD_9^6r-n=6u2Zy; z!6Wul!nCPC*@3OGf#2r-ZRsTu6UKoV^u$O{h7K%rQny1Y0(a9WE`l`&mL4U-@QAfV zmutQovRgt(lX|HgxZL?sOYuO-m??9B=2Kl7Cd`3FPvUn>J)rpfmhUU3(Y%V`sDsUz zc@B7;u?2K8Th|{Rc7py)f5!zkKRED9Gj;VI=6Y=~&NJ|3^|1rxb?m+ZR~(o-PW2t7 zq?&<6=gQ4(fq9Z)m-)n#QOv_M&jg1E6CdesNv*oI$B2)tq6&>->h05jkrkv`t53Do zA=O%gRBQF9*2++Ah4_+bf@4Y|YP>ySumkoShsb0*z_DssX1A>0t^d$nF9IILQW+a0 z@u(#f*=6J~_W#Eu4JP^PH7=(EOX=zL zsNlNM#;rSG>Kp?WV%-QU+X$xP?z#}(W)jD?hI&Gkz`|_U-qViakbB$^onU2#`>fDL zVZA98xxf1i_x9#0;hH4EXHU6cev51*NFdzz)6c>K!bMl^GeU81-aCmP zp`HWQ7TZEbC_9P)PByQ_d^mHf8qCABI?O`Dfosh{b;n9Ca~-U6?j_MKQ(N{NZRIZM z(eQEqT-|?IHhUa}s+~y*LMTc7`eG&OSQzRRG;5P`C8Lws1ijX@?WKSjJS6lL!K=;H z!EDX|aUd)pRTV18iWs3=I_p*gom|h;7aM4n`=X9t9La(XFpO*R>f;Q2cqvUrxKYS^~e7xHI;_dUa2 zsete6Z6TOi4^iM|x&og&KqsDY6qt|FSb-ZTZrkPuzLK!~B+?C)HsNmJ| Z=2N`7HlO(aGyHvlyt|pcE5VoW)xT$?sG$G= literal 0 HcmV?d00001 diff --git a/dpp-backend/digitalproductpass/bin/src/main/java/org/eclipse/tractusx/digitalproductpass/models/negotiation/Constraint$Action.class b/dpp-backend/digitalproductpass/bin/src/main/java/org/eclipse/tractusx/digitalproductpass/models/negotiation/Constraint$Action.class new file mode 100644 index 0000000000000000000000000000000000000000..96bb6e5c1bf8f83a46aca144ecfd1a70d724cd3b GIT binary patch literal 4641 zcmeHLTW`}a6h0Z<+LhfH8@F*WV?g(kyzs7jYA46v`ObHaBcFWx{_!&aJc7G<7<1sQR=yWeF1%gZq@Gj_ zkNF{wHS>(3zDe}H7w`r*G>nxD65qsBYcG-k3$-U$LmEyEm%>|@LgNxH%*vW?@8lup zz+4I&Qqk~U)OVS09LSl2m^m|}~LoT>^?7(8F8+COXeXb+nJj^&Sd*tB zKr&4*JQ7jk?+}9y*nW%}bvnTOxHdno-{HoTinO*^X_atI5)rWXT(H0;8;Lfy zw9;ka0pX%4_ZXp={+;6p#mP);D;xoTFZ`fzPC>MpLK&P8L0;Dm*iZp2;Y~ zHu`HOeND#L4q zu~j`&vVCa2!Avb}e-}!t-K}Z?mK+E(G@}F43n}R~rD9bk%4bixm1_2=pHEv)2d2tG zFtr|H|Ic(DZaPpMf@0Xrw?7}O9Q%CG3K?l^aILXfv@&Aa3Y$!uXHpv=fGXps4F`YY zFoD+`j${xY&VU z(fdWX1ebdvTR{-!cTqwhw z1EE&F7gH|0`?NznsX~wW5l=MpjH13t^+PYBlDQmt>P{%aXZ4jjpJL{x;{*6w}g8wVC6cF$xW5je2i8X&ff;v&4_ z!0Me;7#_1t(czl!M(h_Mq{)4Rk>njyO;saK5ILR25iu4*&g|P)y6H!vf;VIN?!7n4lBU zf>>WB)rFllBLRAwDg-6ee?UV<)-VKaF9dEs1ny`E+-?Zmp%AQ*Kr&6xIV7gWZxe$G z*uw-JJ*)sD?%IgEmbd!>>be&2IFZU&BZ*IKWXLWfecPu1$yld`N4e^@(1JF30tFzmz_EZC1t4Q&V4>6Xsmq&gWDB`yWbhmfA?=6;0n`6n!TOXuGSeC^w2wBLqlIn-PB{=2C|oDzTV$r+VYY}=`%MFE58(D-R>!?N`%3vb?(biz zZp&2p>^iqms1KSFS+$F;fK4Ho+K8};!E_lK4*WUIV3gqp2ezl60s9*Rzf_0&EbhKO zOE*+#_bsk97Q{PP_F@WFZZmCeNNs=sCJ8o#?C%iF;|NggJr}cQ1raqkjN=mST|{Kb zVqQZ1kLAx_z!$G^HV4OWoJS16DjdhLmc3Wu1bm4zE8(jl2^Kf5gjM)DSHj604v%s< zoQ9Pl33G2bX$AHinI890ki57$dLI|t`8Wb+NI6^Zr$ literal 0 HcmV?d00001 diff --git a/dpp-backend/digitalproductpass/bin/src/main/java/org/eclipse/tractusx/digitalproductpass/models/negotiation/Constraint$Operator.class b/dpp-backend/digitalproductpass/bin/src/main/java/org/eclipse/tractusx/digitalproductpass/models/negotiation/Constraint$Operator.class new file mode 100644 index 0000000000000000000000000000000000000000..1c35811d524976155d7048b1086bcf22368f8fb5 GIT binary patch literal 5180 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 literal 0 HcmV?d00001 diff --git a/dpp-backend/digitalproductpass/bin/src/main/java/org/eclipse/tractusx/digitalproductpass/models/negotiation/Dataset.class b/dpp-backend/digitalproductpass/bin/src/main/java/org/eclipse/tractusx/digitalproductpass/models/negotiation/Dataset.class new file mode 100644 index 0000000000000000000000000000000000000000..55850cd226f16c24d8f582e89e348c1b05a0df77 GIT binary patch literal 4803 zcmeHK>vG#f6h3lY-(t55;g+l4Us&W2JQ{%<#jqv^x6sJKui0d-jh%fB6jnuE16kY8LD$ z>A54qxOJ|(Zhsyjd;l(4$wFQkxgv{HwV6~sH4G9n2&xd!Zr+XHhzZG-MMs%BxnPS6` zZgMVkLQYw5x_?6nz9U6MrQXNzlVcLb)PiN7DJ|JBHd$a`qu<8{3~2ANfD;`{4Ei={ zyxd=4Ueiu{SFyJy%1ZUNKbzbxGUEZhK9$hl3>i`Q)VRzz(^oCH*exiL1s`tNxMM;6 z8V*?#&RDQA)$UU%g>1o-R`ZA3Tv8>%G4*Xvj3O2$!r3_JsN_gpvODd;9<_aR2ay;Q z5$_%esJ)JsaWcy|6U#VEeIVO@3bU}(cnL=}b(`h*;s5m9(gqle?C*%ldCN!B$b0E_x^&bqXB!2}> zD+%y_XY;JNI2kKxy||#=IErv_R9_OwaVMI$@KkVAg^)+nX|mP+tEPGf*5K(ScpT1I zaHeFZH~acZpK+=ccYM9mPHFL zS`b#K5Er)YVD*jF@PyQi_cKn$9*-gMt=a0mh5XG5gSI5u?eWQJ=Gwuvs@DS7f*&i0 zb@0nMOHYM$bAAYFhPocmtldo|Gm;L|`{UEhbkf0b+ngMCW*wJJ{uaDf&2g1B)+#~B z3YE!Ob#_H8J$jv)6?G{)+a@Ov3(h8Iv4bT!I&K*cj98}M=J&Yxj^lG0m=@x_Cg6ds zZpNqyALBqwk722$oAAj@YswmXzsZ!sy?216y@CsX3oahu&F>^M@Cwj@Q`owMcQshX z>uFd?S}oiHYa2~G>i~+oR2CqxWeFvU}=kUoO zJYPUCaYsk6v7eOPg`A6FesrYu9O;D|sr~>+FTzWuS-o7M%Z*Z9y0B3|sO22W5N?(t zyaKQ0*}Rr#Gga6r;j&YT^ai|{BfXU)O*xez4N8&TMxRXmGUf7a374-*5#EP$1%xSw iGK6nR5Kh1csAUa4geLwQXI{epYxrxSf3Lttu=y8?R<9%g literal 0 HcmV?d00001 diff --git a/dpp-backend/digitalproductpass/bin/src/main/java/org/eclipse/tractusx/digitalproductpass/models/negotiation/DidDocument.class b/dpp-backend/digitalproductpass/bin/src/main/java/org/eclipse/tractusx/digitalproductpass/models/negotiation/DidDocument.class new file mode 100644 index 0000000000000000000000000000000000000000..299ad5105db5504f0e047c4db9092bbe5f73b1fe GIT binary patch literal 4026 zcmds4TTj$L82!2eyOc!`6)$)h@V2OFMST)AF z4vg)ne5{mI6*%ftKD-o)X&E(GNCFurJjx^zv<5ZD`VMi2S2q|5(L<^bl+a+4))|>W zW4)%aUdvdo(^xMz)@w6%hJ=!7f_9LYnqY$%T!3vQ=xF-_SVzy+(X+a}KUgl`0gn@@ zjNK#&sI3KAXQZ|F1BBSZFVuxptXY1JUUVuVMiNSFH@L&u6cI#e$ohb6P{k=0H|K5j zU>D-Nue*TSd%6p>-+Xpy`;c^5b|Fq89&kf+iccOkgV09dPk>Y;f23=(glm$DkiF%C zg&tW-wXw~aO^db(7Y(_|2*n24*v;S$_q3@42JP>T_m{nYR`u8(2fpCH;@|%2?6EpM z!unUl|C^~tJO2jEg>g7ug;AJv;CMmQvB73+5r3ecrSUpbtM+wfbC?WhwAOsRHE#}> z4UU0pZE-(hAx5%8H7jPWKxAhg+lg{^&S-7-c(BgQ0>;T>wb{<86_|D)>LIN4t!FWl z>ReD6g{|hX6z}9$F5Y|C%BWRT+-j5g3e+4(dQjS$(dCuh8w`UoYWu0kU6H8@*b{F1 zV!SQLXJOKT$xQFBF$~K&%Cl(pQfvzOUf?(f=HY9;3^yF8v=o)$=B|%|+N~+laJS_cM&Yo|yOu$G+mI1Sjw~ zgcyJ+IElwB_E{YhI3K=f!LBnz(!^J&lSSe(<1eXhaxKiN5t3rlZD6T~j!T SjAz@s*YSKSyDotbb3XtFT$C9A literal 0 HcmV?d00001 diff --git a/dpp-backend/digitalproductpass/bin/src/main/java/org/eclipse/tractusx/digitalproductpass/models/negotiation/Distribution$Format.class b/dpp-backend/digitalproductpass/bin/src/main/java/org/eclipse/tractusx/digitalproductpass/models/negotiation/Distribution$Format.class new file mode 100644 index 0000000000000000000000000000000000000000..6a501a3570a9d0843fe1fe762ecc57f8ad9292bf GIT binary patch literal 2704 zcmds3S#Q%o5S|TblA6+sma81wQXqY?UwGn@P@y6yEr=cn1V|fuakjO0t=)Ch{xT$x z;GG|Z7(0oYk|0u%0^%Xgu08Y3%s0C;^Yz=u&j4^As%0n;cw@Bh#Y{+Vm$jIubm(zE z5{coS)y%i4+4lkw3d^EIt047l!i@1^74XP-l84F)W`&a8BVnu-jWpXVuPGffTZSTm z=^Qv>GW4D`cDZi}6huH^wto0w6E$Ucm%ze{R9X@9nrsOp8WDderLwsJLtwK0)F}B} ztAuNNfZ}5<7Nwj(>7J0nJ|Hk(?MGeN$&78LNus$iFPWBT%b<2~6{9G_6oIKjR~~Dv zbOmNeX>nVkf{I!^puUO|5#@eRa@o8w-x!qeS;RG-1$>^t-EI6@z<=ixOum|({s6OI za94mie3o*p1(?V6M80<59Gu5phH#+=Awxed!bP|=5Mg0}53dLMaOEda3_^H20HFw1 e(eDCWLzd8g^oGD9T!#wW#C^uoGTh1~7QX}1%To*h literal 0 HcmV?d00001 diff --git a/dpp-backend/digitalproductpass/bin/src/main/java/org/eclipse/tractusx/digitalproductpass/models/negotiation/Distribution.class b/dpp-backend/digitalproductpass/bin/src/main/java/org/eclipse/tractusx/digitalproductpass/models/negotiation/Distribution.class new file mode 100644 index 0000000000000000000000000000000000000000..9f63520ce6e01fb70144568b25bb35681ebd427d GIT binary patch literal 3539 zcmdT`>24D-5S}d|X+ug6C|5b$iX)X^m+J?jfW#>kg+sKZLP7|~Yf{r)du4kAeE^<< z2SEY}{_{|X@ouVwbfp%N2>6j*JD&YK-^^#veE;$JD*)VtD-{^=VAW_A#8k-OEp5|4 z=~lp5Boe~|t0}Xoc^`zLB`l2+t-_Sqgc=jXD&&y~ByTAzs1-^E_k^)pG*dUJK*@uZ z0YZoO6iZ_+tq0{dO2-rjuNni~pzHhT2O0jN2eZ#oX+_MJWLp@~jQDLSmCe{15B4`6 z8YQ14Mk)7ToHE9ZS?0Pe7|y2~S!g3FTfs7hNVd?pd_zcKZ+Y;czI}PP z#J2CZ@Z5vaT}){OCOw$wx_e)1rAJ}fE6=S;&5erMJS0rTiHNc|5EKOlCN|eeb!=sw zlMvNIH5w(9ZO|4c^C&65BPoANQvP;H`MIS09!brUP;o;r<^&VY)``Up`1^!2+q(g( zz;_Dvo!|Z+Y?m_-aiX+!BnhJ~;iSpQ7WYA!IO#04q|&@2Ab~`;Z%3>ml-SLLSI4qX zB#Y9J55TfbwV;@}9Cu5_y8zy$X)g2~@cv1oG)XYqW{qlzM|G#H43NU#+PL=`8%V-_ zkH}J-M1l!ROo}%to;zu*#yX=kdD47~XT82agdwR6`5Pg5=#xjOvF;woK8rSqkZrZW z3B|Lz{wqRt?62kLzoC^?qygl;3KMX!1~r)RV5Xp`xgs;szzjZ4<0jWD?)GuTQ85}l z@7zY6KTCF9V1->9P94PRyQl8F8EbKy7kdw0*B6Gf+g3X<3MW0-p^9P=MXyZPD_S3} zQ!WaV7=_!vb}R=m7~LiyKSCI_>Be&3(Ow*dGah{0MQ_mm>?X zj6V=gfm6MWYt}<}a475T`U^CMU|eKHdsS{o^-khEH_Xd2uGf~Nz#O3TvH2gt-(D!=6QBzF@L9%{8jRy}KhCbA zRmrV=fr%H>Q=j0#H=K>Yp^hcMEF8vh4ecGm5jcu(hj6S1AzS-RgjqOVh;X97hiipC zoC4B=;F#ttiVzkH5$0gN2cgU2bb$}I3K7o2Ob$8Aq62?;aEl64VBAjAT%SI z3GN;YzE_}Zfqx#zO-Z<2{;fc_K)kfk&NO<5LYRP!8ZNZiMEv{Ka z_j#Ksb{x_@&V^1WD+}t4J4*0-Qp8m1r)WOgCSeO<7m^2iAtMTB>z+UqD(?}r+V?G3 zOHb_izN8A#aF!=g+Y2P65#`$0&h0SH^sWWZHb)7LInxm6T%*C1-cE=f;CXD1i8T_m zQJk$K3#x}K;6%41M(3aN@MLG;$?gmDs(cG0SAmNbEDz%Fjg&&p!@5=f^#RAD6=9qD zwkM*Pg-Pbvm~@y*k-A~ms?8H>`&cwYqESq|$0VTk23C^Ott6*cNzP~`Ih{&!QkAq} z`+_PPv(%1=_D*b#8_*{)^>lgzEHB3tu48yR&#_&{0~WN%TMpCdzTIL^r9`ecPoj}|Nt|-#<_&U+iOC@IdN~`jNsQB!Q+1ju)oB(? zLr|N@5KN16+MgyfGp9ZC1viWutih{`P>0JFT*|nFn~VB#gK>J$ijJvln#+d~MubPg zqwZy-J6YBz3^j|R#(C&8sG0nhL2p!9XuJd^UWzhtHy_J^YSAgi3>C;Eg*r2| zyeDRM{pCD%&3zh%!FTx>(NL{rD?4o$y-CZ=n7g4&#e#H_2ts_A>+Y=WJQLQ+F6nDpmr!)(xbPTX?GV=Qgot@ zS+JgHi^EzFcBv&4HBldWz#nt*6UW~j!;S*9U4bu9VeZ|4EAW*CWpib&04^ z!f__T`vo{W%tZL00Eb7J2p<;Uz%vn?0vu!}f?I$?I}_of0vvwMK$wA#@%&2g37Bj& UmH8=-yXH)>_CJR&;Rfvd52QeQ%>V!Z literal 0 HcmV?d00001 diff --git a/dpp-backend/digitalproductpass/bin/src/main/java/org/eclipse/tractusx/digitalproductpass/models/negotiation/NegotiationRequest.class b/dpp-backend/digitalproductpass/bin/src/main/java/org/eclipse/tractusx/digitalproductpass/models/negotiation/NegotiationRequest.class new file mode 100644 index 0000000000000000000000000000000000000000..112683e6bc4851917a6eefd1ea408eed843bfd8f GIT binary patch literal 6059 zcmeHLTW{P%6h4#NZZ=mXy->=gpuE>v-Jfng)@QUgGMA#<3Ghj|H(Km@hS_noHqq zb$@TOI|++*4JHWeRyM#j?p>2^5;CC)EV@z%=4z>~c%EW$Okim&uE7Zc3*EW-N-3%8aEi?Qep6rv8MK&ZxiXA+kWP$+8skib@n=?J zdiQ`?9)=`UXcSTRkowG8#W=O|IJMhxYWK&foyDnLh|^WelPtC{2&|B5_rTIP0J|Gu zEENYpg>17dY{T0=#&DSjJdC8$#!1ViCIYQ}X0?5Pj3y@BH+&%#%Y&Yy7X6GYEiG#4 zqlh)8(=Ngd5|342*`kV5oZJjICvh|YI9tsFjEXCHfa!CG*RwJQ$YYc=`^^Bep;Ua# zM$a(yp_F<${d+oD4JGJsM$gUq8A^^9)9n@iAcxZIh0%2H`S2P1dwFs$jJ5++7Hth! zhL>hx0nQLO+3e3Y%*lUYlMA+$g!@eGnxmb`1*A)Zz5J+`Kb+7998<0ztIL)8Gfqr7 zem#D^^a!$}d&g(hO`x*bEz1TU0rT;und5n%>8tIG+oZlHnrr>hP=_}N1VbcsmBlAA zi+h+Y7pZoN1ItCT&eJ;DrWrSZZFHz&`RedCft3f#fhjIl8<1R1W2ad)i?zKvI9Q_? z$YaC}8Y?5H9%gXuIte<_ZOvux@={41E)w|d!3@%D|4D7I1m-gOo!U-gM<&W;Uvsme zo$lXi(!v0NQ)zXkH>JjXXpX08_DyjpDz*&5YXt-|-slLg7ZB(yYKw OvHb;pr|{`IT>c+G%Q=_; literal 0 HcmV?d00001 diff --git a/dpp-backend/digitalproductpass/bin/src/main/java/org/eclipse/tractusx/digitalproductpass/models/negotiation/NegotiationTransferResponse.class b/dpp-backend/digitalproductpass/bin/src/main/java/org/eclipse/tractusx/digitalproductpass/models/negotiation/NegotiationTransferResponse.class new file mode 100644 index 0000000000000000000000000000000000000000..dbb323bdee67c303f2e990b00485fe6a55f06c34 GIT binary patch literal 6170 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 literal 0 HcmV?d00001 diff --git a/dpp-backend/digitalproductpass/bin/src/main/java/org/eclipse/tractusx/digitalproductpass/models/negotiation/TransferRequest$DataDestination.class b/dpp-backend/digitalproductpass/bin/src/main/java/org/eclipse/tractusx/digitalproductpass/models/negotiation/TransferRequest$DataDestination.class new file mode 100644 index 0000000000000000000000000000000000000000..5ec480fd3e7d308dee07718cd5cf0e3f53bbaf14 GIT binary patch literal 5345 zcmeHLTTc@~6g~rmLggkGZ>Sj%wY==U_~b27kXTdD01|y1wnG`*omppQ8~9tkm}sK! z{wU+w-4-fs>=H|n$U`?X-EYt3J7;!hz8^ood;@?dP|QOgfnB3LH()}#d#uJ>rK>LY zd=VP%TFpEgnSHk+s=_iq)T$DBHe|-QfvRxdxRO_u70e1H-A&D;+2MMfe~h@X3(L&1 zWgG~Z+|NUfz(nH2XR_+P-rnP$C6KcRAtx|dKDxDGwUE_E1ZLMGX+^+GvL=k!_W3g@ zl}*eU0%PS@M#(o?gV!G%tFb`>AcypK23i84fR( zem0OKvB(O)ZA5W>OI4{fuUAjc%;^OSnW#Fqpf0w{zsNza)9bar?s0yO7kl?e$X32=sP0A8JxdureHkEetCUV* zmskoyUwFb&6XBr*ciPfejb|pMX?or%E>dA=BrAMJNZji0;2j*Z$dC8shiHecM)-+O zQ4}{gcs584H-XM{Q`+ke%H}T{>Z1CGr@rPbWA_&61;M9FZ~;bPas&!6MPR1bs+`2C z$9NfEFl$k;&Glw{gpDN@vY11x-Ow7UY%i6uFbAl4p}0rzHvofp?ZMMjo2Urr(~+cg`le-?ty1z5u`@D38DZfnB3LH)KM(yR6P!rE4zt z0udSRTFpEgn|H1+YQnN0(#nrL8!=?et&J9?A1NX6@pSb7x?#1DwFd-d z*JEi#$SblgjMxhJ6DgHV126>6R-YLq8y?>ye5lTXm=hR&D5S8D2@IC!UlJ%RVE7|& zmcZnJk43GO9)&3~_2Gro+^C?=ed?(&5<%*KA_3?zH1}z7Y;%WGADLnrK@s!buo|ax zNT1W7&)K8TX{FD}=yRIro1?zshGH@_WY*iE79H?+5i->50ITIB)pC-!oxgCGWgx;x zX`3WTJ(e&@w>aI){dgd0VzCuL+lZ3-R%%k|roL(eq*hTz?fZxq$I>a%3u2%509j{R zFzkZN?p~{PFr2k-2T*hCc7XnG_PU_vsZs%FvIBu#80-St>#}s=x+)AVIX6TH}aM?${x`g;tOUq4!5}8OpdUL#G*VFylfn48xIS1N1&DxRQsn4p;B|P#_f7r z9jH{EZ_Q^EW(h3)S*J;4nmiqh&du+f7dKR_J-#Fox=M#6u2h5}Fp;WGjgJSWGG39A z>xBSyvPATnBk<~|s3dT%jm&oY7nv=i0K-}l#-NI}iK+qbvT_h3+M5EJiRZ%1-OVK0+--& zTMJj(Soq%7!c~}QvM_*Fvl!Y~z~EbBD8MzGGXU3tCUemi!EA5B7~H{e0Y|ssZi=|^ E6D0s7Hvj+t literal 0 HcmV?d00001 diff --git a/dpp-backend/digitalproductpass/bin/src/main/java/org/eclipse/tractusx/digitalproductpass/models/negotiation/TransferRequest$TransferType.class b/dpp-backend/digitalproductpass/bin/src/main/java/org/eclipse/tractusx/digitalproductpass/models/negotiation/TransferRequest$TransferType.class new file mode 100644 index 0000000000000000000000000000000000000000..69d99f79f487527a08c6c2245d74ff82fd406fd2 GIT binary patch literal 5669 zcmeHLU2oh(6ulGD>}In~(vUzQ6sDn|T|R6;eWHK_Q3H#%0kxqjj}!02nPShFnenRq zTYaen61?*}kdTo03y3?mH*2~U>xj*kiaf04**U%+=iaer&M$xd@Dl)h3?DRLfdDr; z@M9*Vf1eGRuXO11AQFk;zSS(Ssd?ZJL?|qa60HVlU=wDHAFBb6j4yeptYB6s=^tn& z%@NnP`S&R|_S$HC@G#*GSR}BXd5D+{{jU!1^S}~V36!*4T8AO9(H|r3SS@6DgTVIf zR9X@9o*W7z4kP}ll*(o<4T07Emqy92wMw|Q4-tN0$f6W&HHFy|QdqoQ?ti9K#F@nD zrH|a7pAdMi)4fYzaToJwz&e4ovFn>!E8T<*vi|5Bsku?nkPm2};zUH5Uy4j%AhG$7 zww4c$IUOKnOd}{^!FMd=bO(9#3Ld=?kKQDYUe2Re;&F!#6gL!eq%pI>F}3J`KS+?T zvI8ue=gQ`}xV?YjF3&*3iPF|3Ndx8xriYx4a(_CIEV0yzs4^l~_FgEJ=0))Zk~SGS zwTd!ovAtT$*&{ND(gB|Va>%q`*af-WQ3p;joOksUP`RV0K>u&{PC-qv=BE&N3WKMB z&bln8aNQRMm+{0BesUe`<9lxktX2|p2GuKSt)LvI=PcBs>X`-2uwDL(9LzhtdHb6k z=g;tBpB)MH%2y9HyQpSosm7g$CEsfQ9oKl+Rr=d=l z3PV#l;73B@R{scR@SdfS+n1l9J$fs}PkfG|OuDl{Zny+`s+-bzcThcl^-$;4KRNZ4 zw~Vt}q~`>mEx|2VgUvRyVT-_4XHrmcs>fO%UoiV=e8}~IJHk5UMFlLnTO4VNKNsz> zK#3*n&qX3aab`8-cDF1DZFaho88qPvfxUlLW}Glnr)SZpdBW!k2GKjwj#e;&;>~fR z2|ENnpYFKUn+CNn^gMRd?wt5>C2HMKsSfy_aMjryNoj?&mT5i&E@s+S@vTDo+C3?` z-i=V7_0F?*{mP)B5r{;1jomF{tUe2e7T0`zR8Ap^SyA zfN~s4k_-5|084lUXu(Q0!pGnu&adL=I--c1`w`Z@-MI7^p8pv~3-AJ7m$I2{coFa0 zISMYrOE@C%GHl~@(!whh7JjX?@G5MTEVwxH7^*D%R%ziipd}0AEUs3>@O!0&*Wp^p r!Z?O13x8BtScEq)?ge-gIxc>+MW73B!!o>w<0YJV2RwK`!*u@wkNQ%9 literal 0 HcmV?d00001 diff --git a/dpp-backend/digitalproductpass/bin/src/main/java/org/eclipse/tractusx/digitalproductpass/models/negotiation/TransferRequest.class b/dpp-backend/digitalproductpass/bin/src/main/java/org/eclipse/tractusx/digitalproductpass/models/negotiation/TransferRequest.class new file mode 100644 index 0000000000000000000000000000000000000000..037ad1604b0e4067eb6bd09f53386ffe60c6a8cd GIT binary patch literal 15954 zcmeHO+jrDN82?gBx7}_plmZH(0jh4j?5g061+=t)i(A09AmBAkrrRmmWXYw%-{X@H zzTolbvFCty6b}zR`QLc_Cdp>QW==O*k_Arpp*zXU*WY)aBs1UK{qM(H0B{V}Gtei% zCDV|LHHm7)HECTc>PEFlWR=!UQnU<7wrulyQK408Now8D6MqR5_vRDv>lC-d;E8x?~YgP0GgA^yE9=$_+&r#CWlESyu(fq1Bw&Sh`V1Ls!!i zq+vM5h?zl_RCQUBuX-M3W*DecsA=Kg&?2p(?`#7_T6Q{*CMVeJ{ftY;k>S8ms!{8> z08iwnFAC5c7CUL<_;(`;en8bx}5*OSgE(DVJfT-xi6fs-GnqX7225Hi6iNTsptPylRi}PL^vPepFnJAi5BMHT9+Ot9=Q$4ms35Ls~XoGI6*KK~u z+59n1_T-EZ&3)0Rl9MVqqzI3`2qY|2$|<}hmTPsD%G44~8^3z-O*(!T4_o)lwyp4}|mr9g0_HEz-2Z$c(OKGpM>Tq3FfR_TPDU5`-Ej{csefA zT=YI^z0Q7XmEvN}mE=}r8cRdo`eaEEzR5dFf$T-R6c)C_p02F{`m24ZnP@7!tj94* zY6>?T=B(vm=m>W>A;l4>xtQk89G&_$HN{$2bGM!+ze>)NJufA+VKWuVw|mKXDN0WE zJei6o-R%yXKl`S8{_Jow^HF*droU6gp0!^m7c0HIPC2i)^?b!CK-hXY`){;3Xskze z`d%DwB!{wa3eAsaAtxL_oGmteHk7^JIQHyp}x(Zwqj0^FmNo2O4FI4EbTvw9jt` zGM^0(r96+UF6M%DqxEH_4ly7rPV2r~lgZ)+&rY(mjPqSo@= zlax80*?vA$zdeiw^EQf0gK%1a({1$`inOte3{mSa!(86y$E2D>sX{wG0%&RaF~kqc zq$g3>P`?0ricSi#V>31kI|gYKu@5_9HSWf6EVy7U08P_QK~`v@F_b0Pg@+GPv`&zd zW0+A?-k&AdgfNQo+}FWksig#-)!q-HjlAl6#k)*(mK}sE0?f5fqxPjaZdh_u8p`_% z>_FV>R8?{w9E;AGk5iOwpHDX2<85p^Mfn2ka`v`ctJE=eM)1@FR<2*ru4?+18s58v zZq*Tv=gN2r#+X&v85=VL$YHfx(>Mlp%iNrSRgCS__=oZykBo%+GH_J@l9~(+_qk_d za>3gSpno#n9G`(YCQxJXE&~RhAYpNv0Xz{k-ulUoew?SKi3g$>t_k}AkDcJTuPpv; zg8}?y*KRxPwK=aHfl+6C491;yJ4`t34sU!Cb~^XFU^k*ZiPwGb6qbGnSoyIRf1k#l z!^lm*HoF1)E>ArBJ?y{j&`sg*fHSfep2O>$O9juv3wXy6^7z|87{++7+QhZY%f2=v9U;BqBNcq4&g@e3kzVzYn5W}w_nMFNx{uVEr4RW?haU*( z4R|x)vu5PI#fiL|+{k+e4h9hVe7o=vzT+Ysi6O%eT!c~#88)~GM`Orvi;Hk9h77m4 z2*=^wfF+y0c#q?YpSTDoU^alz^aT&$XD-4VoD3i|WjMu=;TJB#`%n%bG-co+{K`c* z10MtsnlkXT_>GHDf%yPJQwAQw?_7klG2-D5F2cDO@ox0iBgDrb5e}S!xe|zxxt>FC%3_%rJitQSTY4CowS_|{4x_w z^xYq2Je}DM3z96DNX%wCy?p2EIsHygfByRV9ROZI%Yzz$U8CbLV?u`etj|KFyCIKL zksBUb&0<@a!!QwDVOg4Ml@zhfnK5Ce5}umS^>d}I3AYBlj~pkY;U3fp%$1xelilz` zXP?KGKqKRpCCoAc6VV3CR|rhCMOQLgXingnn_G>J?b=og*53@QzS;bE91 znka54o*>PbjeFE0JwMD*w^4dbn7}1W;Jgn0db7%Vk-7A70n(T`@o0zBVcZvmlnxbE zq-S!CCc_y3Y87SF9_8Gh!WTN6t1|9&S@zt#1e*z|PZN-B8R^K literal 0 HcmV?d00001 diff --git a/dpp-backend/digitalproductpass/bin/src/main/java/org/eclipse/tractusx/digitalproductpass/models/service/BaseService.class b/dpp-backend/digitalproductpass/bin/src/main/java/org/eclipse/tractusx/digitalproductpass/models/service/BaseService.class new file mode 100644 index 0000000000000000000000000000000000000000..8793a6928abd2d6d83bffa6c74a32c80bc447d40 GIT binary patch literal 3245 zcmeHKOHUL*5UySq_94nc@d?`CYr$m3gC{`_5{x8^8bK0|O>ggR!_4%gy9Ysklt&Xy z^x(}OWvrfAVAowzQxFyg(DY9b(z0w;; zK|kgv=_Vvr20gJC!#I#!T56J5XpCZHtVaDPO*2hYrl>SDiE5%QBi!XWzQHj|0^4rw z(WS&#_Xe#fi(FVT;5Nu|sU^Qf6q#g!{E+HpF|tC}85cbmQmZJVb~_gPe7vy5MVzXx zJ234ZS0&Or*kswdSR7*H^c)J?R5jWVb|H-I_A1koq2LYfRb8tvm8GLh+fE#+r7pB_ zl$>fqX^dMeHFMlf=w2tS`2df9ugJNj|72D!oz~v;jP6;0Qt|!^0V+cgE(|~)TqH1B zsqUrpO!+e|e^u zR*B}~xpYZrsI8QyeH~`7#mMy*s4x-P7gA`Zd2_n}_ponu+9<$-{j$Vv$5DW(jy^a` zgaihbviiJ&x!dF?02^X##{u#<>Vtl~7I5|$pAx*6ze4fdNcl4ie8*W12Jz}_0B*t% zUI#KO7={s?VS>ZAIk=2thd0^->uL|I>3y)SBa1z(8;F|2b$9sXaGvoS>w)>G8x#K+ g+=AQ4D?_4)K9OQh!X3N=OykcLk-NzJKEAE|1`ZS-&;S4c literal 0 HcmV?d00001 diff --git a/dpp-backend/digitalproductpass/bin/src/main/java/org/eclipse/tractusx/digitalproductpass/services/AasService$DecentralDigitalTwinRegistryQueryById.class b/dpp-backend/digitalproductpass/bin/src/main/java/org/eclipse/tractusx/digitalproductpass/services/AasService$DecentralDigitalTwinRegistryQueryById.class new file mode 100644 index 0000000000000000000000000000000000000000..bf46e2b3588c86369dc0dc94aba93ddbc0a8e28b GIT binary patch literal 7204 zcmeHMTXWM!6h1N`b`&6K%B4UrDuveR#qRyWtqqAG28TeLP-tg5vynE=g0!pdu0zs4 z)|qyueeX}|Lx;1nH4+mAZ8Dz1Fg!#T>+E;FJ$uexzWnpwAAbSB75J$N6$gZpelsGB zHy@HM(iF1Sq<+X^MVnd@U-#8^GhjWYNf=8J^nD!@rJ9P$E#_0zoFl3`cs{>Ceaf*> zxG=C^ea!d@?J=e0&fPwhJJ)vFK^4Xvm`;3!g!h`u>kp}~9XLb->A79O12xrOUlIWg9dJ9{;WPd|IV5MCIdHU-^NnAt$d&4L;J{2L^V!vs@g9C2 zXTj=DOwlgTZ645V2PQggu4#`-{Ol?k5w4kU0LJwuQ|CW*;8tg3Au|*%GtTr?2cr52 zaXVc~q`!G-k8sZ3b6{*9qgjPh4oqc{X-O$$4Ng1L|E_UKl?bdhW#PCiMc$79!CoCjKMRqux18p~f(U8fgkOcBfDyO`&sMAgJ=V&|XBezv*d& zrQ0#4MIIJ|-Y|LEFl-z9b~0egqF6}nFm@Q~IFZc%Ql~7wEafyW$`N8(01PM6}*2^WraS4+p=69sP zosY6K#vO=RbF4Z&*Vp1PGpp(DRVg3q7T;o0@CdhCC6>=;@LrgJ4lAmSTP#LG_FJ-t zX>I#7PBt^oj`GVFJF{VnsNNKqV4Ku`)QV!gbB{GM`yIs=iH=o39Efg;#TbTg=n3I1W({4UFm8IBg?QHXn=>O@e-ONPH(F*8J^`! zm{~y$b_gX%2MOOn+N1(V2^~u_`;oD?w2NsX#FTVmgkxw|buOHQvq#`{c+-Is_1(IW zQBS5ixJ2IWN9$Csn%Tw(Ou{E&x|j}s95bSk1HX<=+ObpFjIh+Bx@9!A)AiXsWS|D#3meCWVpIlHvMv(pG&A)(Y3 zmBM=F$q+e)L~_}UBaB>fKOh~W{guoFjQ5UU0<mk`kE%#8} z^#3d_T;^2Y#v_knSZQ-cu1oguSXgc+EoltHHLG+<8+ZBE3)9cI>_f)q1P4q{c z7~0$yT%ov)hp%Mxz+t%%;UoAshmdh7LRcw8_yig`gp5P8fWulL z!e{V#4k6=EgmAwQ;R_taY&0_tUlnlpxe(!-eIWc&i100ZSIFUF0S8iuaCsjbfx+RA+Z literal 0 HcmV?d00001 diff --git a/dpp-backend/digitalproductpass/bin/src/main/java/org/eclipse/tractusx/digitalproductpass/services/AasService$DigitalTwinTimeout.class b/dpp-backend/digitalproductpass/bin/src/main/java/org/eclipse/tractusx/digitalproductpass/services/AasService$DigitalTwinTimeout.class new file mode 100644 index 0000000000000000000000000000000000000000..e3caa5e1bbf5fb9c422cf75118ea2ad69845ae77 GIT binary patch literal 5856 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 L?C=+i$dA7PMC{Sj literal 0 HcmV?d00001 diff --git a/dpp-backend/digitalproductpass/bin/src/main/java/org/eclipse/tractusx/digitalproductpass/services/AuthenticationService.class b/dpp-backend/digitalproductpass/bin/src/main/java/org/eclipse/tractusx/digitalproductpass/services/AuthenticationService.class new file mode 100644 index 0000000000000000000000000000000000000000..f0037f819d7c10f3fba107a551e6e1844acb32c9 GIT binary patch literal 9726 zcmeHNOLyBu6uwiE%5l?I+VW`ARxK}whkXu|SJM`fkdhRog*Ztm< z&SAlVJu4Rc2)3L99N2SM@i*A<1327~tXNLeXbMi+LKe29(bYHi-nqK3(XW5~@G}5h z1a83|0t-^Or6%QGX@$0F$rrT}a~nL6tfT~WRZHF}Rd|gn+6aVSX}Kz(QkEnWZSFEz znrNvy^AvZf;=WgohAkK%a3}<9P_I_Hw!FezMPRs1TMgAAA~5It%gL7#aN`6XVP2cS zerMWibK!eU-y2^yqjOqJLE+qz(h%QQG^F#ep&31E|z<2A+U7cBRejM_N@{AKAJQ&whS7@F(PjfnuBV}MoTEVokdeC6VfwjNMr;@gJg#Get-j!&oqlAag8nIV2r>w23@54knv&%5WR4i^I`|EFy_ReW;_QklEL2$xQ?I5Ff${YFe2LS zx5kJGBcko*G=aaHGxxSI@7Wz0EvR9-xtlXrlKS7xnZwP4M2GLb#;JSTpO~g&ZmwJ9=zfRFyyj8W5?JVr zc7`u(u8b}rY2JyeEM)Or0yEhx#t&raCtvnk!ey7auD6aS!b5!LJTxI1^O3^)(CLM};T0y(}mbusR;ofPY>cVo)}lr0ypvIY7Zi|!`^(PCoR zG#7Q=7qCGu;SAtB_}xklMqm*3;@JpTc%_d+kPnahU^qPPhXZ)TxD1EFvhy zgmZU6cqIkl>r{l-;Pq4<-bg|CHWgv~E(jM=5WY)AD8i*w9^Onr_&pV20wz-trZyvx z!Bm84xQv$c4zA)Jm|3^7S-g&Iq`SgbQcy=zPzS&X@#fa?uHyAI`~lSQHwydVJ(!0D USb`7WL-+_jfm^VQR$hVX-yP0seERIh`%!E^<-1PO z{z!b!+ZXLBOWF^__t?I6i8iW1%nXG$I+T7s1BdV%tiYRP)H5rGsYA=mBQRu4UC@Sf z8!Z~pIgdL2BEt@$DG1DUD$UeNRAe?l8$m@dneUXzenewVV4F0sT_?sxHtQ|hH{B)X zEl;}6qFp91XiPOXAyq$GD0x4?O%pxfn?cck+Og`c?clHv8L2DG2A=Jdk??AZEpoF9 z@I!3bC$PpaY(L;EX6>>=gNDZlYz-U7R>F)U;hHhqv4e3!W{bwOvt)a&Q$x*04dF1U zs~N(%I<;Su%dB*cPT}RlvtlGVWg~O7%y16R<3yc4YqC0b5?_NG3EU9-$_yIard9ie z(18RIfo(?{=vOs1gJa>_3stt?aoixJ!tot2P&N0A?J*0-u6NS4moh&OE=wG-L8f(I))&`t@-=(LjPQa=@!N+iimohnx}EX>N_xijl=ln7Ouo!1Xc$6IB(vGZ}NhGaZtGiyn z71B-0ZKE$RJ<)TuBwPlHYNNP0U>RvIlm6c<;MaLrUG!*;opHU>D(d}Tx->AK@beT7 z=PReYWC`Q2E0JFhT%GE{a-9|WC#cWVD3kOn2QXPMbI6jlHizuOBr1=*Iq}G&PSTJZ zx+n$7A>vs`4v7+uSnYDaGMP&brJ||3JHG#ofr}RF7MVwm*%a-eXkEo=Au{6};r>zc z@(iiQf{KetRE3$Rr)%|Kd7gSU#U#ov4(p2^rXoDy;W0#S-pXNOf}0zk#~4mgvwa^I znuxM}CRpfK_i3f6Bz6kXW+TU>N{|Y(yah?2e|6%lj`|30z&zWM<#gF--$J%5Nw>_P zgtOoC=yJD&TAjsKN3Cez_70xofa*)JqBPwyY)4uNJLhPxA?j+=dLapa=LXqzD#GF>ihOjP+(XKi1!}5A@IH|T?7vHw1u@;PE zjT-HP`w2OxFjz^CoY-^`XOYruyi{@+JbsX5^8~Ia@(J|-fp5AuMjd4g%6Smh{ELx4 z@?dp+bT4&CuHk+HzjjZ!$HG2pni{Pks`jGK>Uv7cQmj&<(C9dN=wk$C@+DRrSUfD0O$-8e=E*1+q|#v;)TraZEfenu6!UQ6d>(U{ z&2i@o4lnUV7Gu~*dkjTA67%o^6M>y^q>~Lm+V%b<1`1hIJ;q1d_3eYF2~6dWfXb}C zJ)>F5za4ixv6Y)CQhrOKJm)@|wbf*Mg*kl-m&>AL-6A8f#E98m8)K=mp_ag&M56S3 zGMZ=T=FODrd4^?~f(wCl0x?vSz`nL%k#<>##AlEfx-H^Q)SV3eEt0??8+*eb}! zj4Z2=f58twiI|!@ikpLNv1$@_xOSJ?=qc|J&&flMd&a?HD00}5VBjP2mv<}7x(&}{ zky~wS-f)Cxw3t&E@tTY#+%)5uc#e%;gdYeTw3)}h@mSV?pG#-b6b%{#w0Ih7a0Wj( z$y!5$WrP*upuvl{krI!>;WT&|2Tim`X}SilVv2?;Y4AD+NscTuIFB16d~EveM1wam z_Q^a#gSS!U%zj9NcQK()s@EF4k55U-TZ0erDJfZN@G)-1xKC*CY13yqkz=E_hodU* z9F~K9xDild{8VTFhTuwAgLgxqL0@?7heCKAfVJWEDp(g@*TaVJI*7EKej{9s*B;me zo5SlCxF)<_3tJI=TX=sRzQeQ+Za{9^v85NEbl8D+Yw&I-UU%W|E_^$H*TVO(`^lj_ z-@@=u_|yZp;6JAWM7tIL*M|267=aQ#5x5O*$NvPO2iqcqJ0u8YDZ*WFH}Z~Ty+_D( zFCrzVoO^_Np9D3KqV9uHslIaDF$wN_EpW%tf~g%NxgV6uom%4|3H}#S{0W%M*fZ69 zN`ml}6yZP%goh;vUrP~Y;E{|BsTPMM2tP{^Cg3poPGp-$#W-?rkH+zc1nGAv(&KP6 zBTIXPKcxt>FsF(@)=3eL!F&cGwTDCtvPX*W1RNLkcv51Ir&ij7OtwHek&&gXJ;+HZ z!ZUDE$nvbBEazJwJ*Oq?#hqClaJyaBvp)fGZ+i9iN}aAHZk$ k+XaK*K>$l|7G8jt;1zfc&cPe-7Q6%R!3XdWu05ap4awCyU;qFB literal 0 HcmV?d00001 diff --git a/dpp-backend/digitalproductpass/bin/src/main/java/org/eclipse/tractusx/digitalproductpass/services/DataPlaneService.class b/dpp-backend/digitalproductpass/bin/src/main/java/org/eclipse/tractusx/digitalproductpass/services/DataPlaneService.class new file mode 100644 index 0000000000000000000000000000000000000000..c485f01ca6aba091de1f7398fba158fb9726fdc9 GIT binary patch literal 6915 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 S-k`VWU-0}p^gbkph<^ie<}RWD literal 0 HcmV?d00001 diff --git a/dpp-backend/digitalproductpass/bin/src/main/java/org/eclipse/tractusx/digitalproductpass/services/DataTransferService.class b/dpp-backend/digitalproductpass/bin/src/main/java/org/eclipse/tractusx/digitalproductpass/services/DataTransferService.class new file mode 100644 index 0000000000000000000000000000000000000000..e106ebe1bcbeec52b6ac4ac4d51b0610d493379c GIT binary patch literal 10844 zcmeHN>37^#6~CG|(Rkw6j@ytlX`4wJsHe0ZmO>yC46)-hlgNo{J1#AhB5R&!l*~w~ zq;YJPvJ_gDZY%}Lz7!}s1xlgiz~L)@0e=Ob`NZM(v_8)~M@o~NlXKb+W9dm(zjxPn z@4L_c`rj*mC!+V!-&86nH1D}awWFI>^}N2SS8cahWk%a{JXZBx-SE5KTD4&|OD>(3H~s%W-y0a#8c@ug>H?$tAlM*Z<`+rtd$Tc zv~Rv^`DTaJVI$96ZnI;SWkZV`fou6#*S9a4E^9zX1JibcsWh(8Na{y3Tt7v+Lm6$I zvs~uc?N!z&8+OMr+W|}&_6BapJ5nwUF1A>?fw<6tSax*d0{p9d5WzAL1^&FmhR$RTqF52#e*V89mWNj}?;9$Ap zi}KYa2i#*18^UF5$ z_LAlO-@LMMO9E(@lqv0_eOBpS}ykWw-MG8GQex>jmTR=j2P^&Bz>0Jt)zI5+} zw_b#=E^P;eb~c$m({cRuSX)q0al8^Y)ozY%H)*Anw74p%6$x56nax}LK^9|sjTSR5 zpl(GQ(Cc;>ZwFfF`k-5dW);|)vh6n0t(r>jM`N)!85Zf7LUY;d^nRDc))?1Uz!Yc3 zcBdS$b0gSE+hk$HK^t7R;M(Us;UJkpx1;0Qbl6#~RkT^%0oh$Wk0iR*qQp_-{mYwr zVW-xQc_^Fe4TY+b80lxNlHe&cwA?k@Sn-330Nyp8ywk#ful0Z5|D>V`Nh<<_OK1w+ zlWl`sSrMueIh|VP;v(E)&0G$*Ir)bJy+-^6=EJ-al_+$B$J+3mIlFBd>yW}~ur-Aa zigpW&(wY_}L?CgzA}uI%B3qkzN?LS}17!wYiO#SfW;$u`68<)vl7?D8B#`&HeMO7E z+bxiV3Q6AddTD#?;LiLi-N1Zo7FOz=}9>~mWf!D14eaY?y}--F#L2|*qkRuVn{!gKsQ(;Fx&!*j+i688vl{4_5~ zusOmZT}WmzSCEHiBgw*Co| zm(Y78Wo~e|hJ#k5qu?YP9PO%G2I@2P199Se(u6v&kHGQsP#wjZJKe^)H^cGd=MWNC zcr+^E=a8^a&$A|&aMxpBKvKKJTa_MHsBsNAifzy0WPmEL@0m(pf@2F!c9ovML3p%U zsq_>EQQ}eQ8ITHor_xvPHY$2l`Z~;!bZu4o2Hr)jUX{LuFNK|eO5a9lA2;k(`Ywuq zGz+QpeS8}wf0cd+(s+4M>BrHCpVO=KJa#+0L95cw6xxCsR;3p(RV*e7bd`Py4;CIo z!L8D-;lx3PQ0cc=5qg&&m41(UBYGPB*MLfYz%(czRQeN+`@^DCr9XqG*w`xl1pyk5 zlF44d485TR*PJyy4=tlb9CdhffB=sF?HHvo+DhASH%2NIafN276kNAQ*P-aTBf1Vp z*OBNt8eMk+gMWVm-56YV(VK$nZrX$EPP&Qq;_W`%7wBe;Z|ND|x?#KzwEL+HE)U>~ z0gMjPA>3`l-J5ZJ3x0RwE$6xPD&2nnSmkAU>pw6m&;KyK{2dDJOY}B+J4On< zgWie1F#^{^h;X+A;p0+-chh0a9m?{ags=AkDMsb9hp0y+s82{ykK%uA3W>av608qM zuwIm6P0{pg!1|{Y>p0B_c9@LhK9TTONMx1q_iriYJ#~9F`)?(is7P$3tj48N$6%ggTwgjbKR;=ICAlA=SgYM2bhH2#a)1iXfBXIVr*t z-Ip8TB`LxpeK0qI+%xW{2c!relIY<-QXU?pk4Sy%l73o{uN4o`M+I(D1ihb|f+pqW zAu z?8vzK?KR3duO%S>QLaGOu6owRGl`aYhX$FxY zJR(6Dq%~TP5bl7TQxExsM3c`42wdA+=@I-b(5I42_GyeigCEgn@f*XtM}hl!{2s&a z3;4Z?=SPsozer!EC+TVW3Vn^9rEk)6^d0&h{eXT%KcSz}&*>NREBX!njwX@6U!*_M LOY}1M`s@Dzz1e;6 literal 0 HcmV?d00001 diff --git a/dpp-backend/digitalproductpass/bin/src/main/java/org/eclipse/tractusx/digitalproductpass/services/IrsService.class b/dpp-backend/digitalproductpass/bin/src/main/java/org/eclipse/tractusx/digitalproductpass/services/IrsService.class new file mode 100644 index 0000000000000000000000000000000000000000..b8bbc06cd994bd446729445337a7de2c0d67bc44 GIT binary patch literal 9331 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 XziY^o1^5z{;48R?tXPHn$OG$N@X|ZK literal 0 HcmV?d00001 diff --git a/dpp-backend/digitalproductpass/bin/src/main/java/utils/CatenaXUtil.class b/dpp-backend/digitalproductpass/bin/src/main/java/utils/CatenaXUtil.class new file mode 100644 index 0000000000000000000000000000000000000000..49951a0eb2f1b88cad75358838641bc67b2e5e40 GIT binary patch literal 6726 zcmeHMZEqVz5T12I{gQ;FNlPiE^ctWzh1gA7URsy7d2vuACq(2$rBx-?cN=HhyS>xi zIt@bn0lpyk3;YNqir_n+`Nl8d3+mimjJL`euZ8233R$wVck|55&d$uvOn&?8r(Xcz zWB4Qs83N}+X_r09MfoA!rRApLZdhKRiV1pm6Bk(+A}}7mbE#;QKdnDxw!%mCK&&>s zI+JTuDJBJhiCUX%T}dt)6#}CRz6cc+YKyu}mV-Qjlk;n<_iO8O5AM&++`Bw;{lQnW zSH31N#vFT*Dq0mz;B%pJFhXFsOaortoh>_IfXwVfu{FuI`Cbmj2xJ!S5;%U73$AVv zI98nAA~3YzJ1h$)k!M?@s+7LW!7F6AvMD4BeRr2RmhF21cd6pOumb7VUFL;1tU`Wc zhglA@T`G|%p!Or$VAfP@ohi%lS!fAgSsqpPj-`;6?FDESofhp{itJj7R466LgfI63 zUnDkcL5I(QQdR_Slz?xwd6I8{7Y@JHqMSPko(q&L{0SW!ovfp1fHi%K4?_a6?a9Uc<6Q0vlxU=uNn zg_6QrI>gR_z_~QJwf%agl7kBbzBefG2V4LVm~8E$>e#I&hro$?le>=I_z<|5y2Exa zlQ;%$^&)}q47S?Qk$O(dCY%VIZ7?+#Mjg>Awku20_tu$*Js`K2og7RP_~ZFd`cN+J zs5g#}GziuimG;iEL*Qz$rqxiDl)yRoCOd}k`dE5@kiYbCkQ79+Gu=g zt+UEOg^+LhWpyJ941mZm!F1Hb5Pt|YFoD9l-;_36;!$xsu1(A1VQ&_06UgqDmsyy@ z`c=Dpv#@{tl_SA(DOzL?)SfO8Muj- U$l!mAmLiM55Zr=0Fb|7Q0jOlBy6n`t6=p@^*F^Tzb5)K=J96%zBV?vw{EPoIa8D=6YOePJh(^}f(ba%76 z(pXe93>7^c6&)or%#Z=9H2een1$0o-GQ5*ye6shP7059e+(*;Zm=f`>=eEIf}sXE8OGi z8iA)Wv$qKhE%_CegcO0X9oZEjd||;b8TqZ`2_}8F$tt$v*8}cS#eL5XgkN@9U0$}+ zsf`-5E6j1JK%sy-_i2^c(`{>}?TXK&?fJ^CQ{~ibg|cibKue;s=tnm6BO98K?I1hr z@_OJ46{@x!>V@l+nZ0dMk4PJpWm^slLJQ@i_k0~5-646WSX!nSk9a@;psPco+= zxM~>*hcS9gf@}4_vVQrO4Ys(rV4ADlFb%V;9{z(e8P_IHoWvNDm zWJ=eCJMm~z!6|MbPr702OiJAEmU)$7`_k|mTe~~gQCz!|L4;++2Ct8}8dbyr1V0THjE=xD zI6>f4rm!;)bqrbv=cTa%vege7^)eG1;r>NnqToB!z1`i7Rq7~U?Hl5h!(?jYOO7MC4G1kUJID0C_6f(0)V z_{<x=Y{$o-ZNkT*XJdq&6=Rn7Y;Q6tA;2ugN9HKD-zn z4zTkI=`EQ;}Ci2U@10%5!NQU8-5r(3ow5F^#}}>nPclL zH@I6_WD?mqff;Ro?BST$C9e>2!lY38An8UOp~sF#j1iBQ^%F>ACE)?H!blRhqzU6* zDxmG^?-KHfNo90!UaI`fNz%oo`wVt zLC5hriC1&@FTwBh1F-H)q`!lapYSRHWB3`$08GI+evWjc5IuocDR>4>c2_vxv%)FO z3fJ2!B)Yg~wYcXrxIzT?LX5sC4em|^cLvTH>)VXrUX0PF^G`-_b_`Bu=cf_eOE9gq zb4KIe7ZKbma4v$w5O*{Ass{IE1UDOF=Xnk8>j>`kK5*YgaBsxqA*<2%FoJtCM&FzU z_e%sfAA@^agZnjtdj~E@;<@u=ENF0lL~vK(S_Bu?dgqC{z86P^Be=yFTwa5l`5Tvj UWz>*>6)51hg-_rr+<^E00{la4oB#j- literal 0 HcmV?d00001 diff --git a/dpp-backend/digitalproductpass/bin/src/main/java/utils/CsvUtil.class b/dpp-backend/digitalproductpass/bin/src/main/java/utils/CsvUtil.class new file mode 100644 index 0000000000000000000000000000000000000000..af08b33b64283aa31bbc614b184dfa3d4a971ce1 GIT binary patch literal 2395 zcmeHJTTc@~6h2c6y;ucNR78>yZ-s|8COlar(FPNeMF}k!&$G0U*u0P z(L~?|zC}v?eCT#5CQV%eUV-Gv}K#=kwS19|7PIEEXU~VAg2A9x);7d#uOm zi4~!#H%)H~8wJP{m`uk*COh@#JA2%>1jd(z6n2Hcx$43;fqYX1yZ|Kv6F;!4S}R?I z^CbUvOKNUZ*y929RTPVmS)nA2wb}`JWFFFTsomw&9>$zHf|@f{Yj?GJ!w^AzCZ)1; zhtuyoHM(Z0FjUAuXmlw&#Hn4bx%APVQ9N28IU~;d5489%Pe0#@OhkS^R(oSd*lh^ zKO54r8kaT%w83n52&CC%nxO!3-KS2$ahFDQeUr0bDA`kYRt6X>mzu5Z4W`XdhCc2| zBEsPY5k8V*ecW%-js!155iV3<3@#Fwu6piF)YG(=#j@d2-Gqky{fcAx)#=r&G>R}w$d?h4^MAPyJAMD6+)-C8m1v)50<0X}`RTQWWx-}5 zt%&%V>?!Z(9F8&_>#;DwI$$1E*;jD^?qGr76jXqF*m5E-K=njf zk)1CBm33hZX3aJh0tOxc))!c)0OasD2IJT-U~dUW3BJo8p!jmC{0=IgQp^NC9R~0} ziO))gf=e)ky%Jo8EBNI!w(~f16|Q3|2Qw+>BF^NnpK;z8z`2xiI!q33rq4N8z_-g6 Mw~*~N+=ct!0Bd0Ty8r+H literal 0 HcmV?d00001 diff --git a/dpp-backend/digitalproductpass/bin/src/main/java/utils/DateTimeUtil.class b/dpp-backend/digitalproductpass/bin/src/main/java/utils/DateTimeUtil.class new file mode 100644 index 0000000000000000000000000000000000000000..dba7a35cad96d3b3fd5cc7ec9c465dae45dec95d GIT binary patch literal 4570 zcmeHLQE${n5S~3kd}jh70SamgEP=u$ZSUHuyfkeQ3ZO7PHTTNo}F*}&8+|a_m4jT;CuMmg9ZU= zbkL2NklicW~vw9D$43&4|fC_xbJ{9#{hN-w7$~4+PG%*Ip8s z+f*ULrJHb$c>nB3&5eqNJfwk&6A>{hl%$DPyAhAgx72U-_c#rC5HXFQ zgavQefYa41qE#9yZm3k2#>@tL)FPI@OE8im7WdL|d+E3kI=N-;SHy|ZmS&ea{9V8k z_jp4CCY{q=PRHRL!e@TW&(TbA7BgGR;Rym=qH4u>EO0AMA`u8nO`33xq)TIU8d#-i zUPA3PDhy3!$X^S|!w!9#8tX{S%%XiN5wO9G}= zQAX{4!u{5^)j|&bH_-ScdZIMetaUp$Qf$TW>frrWPX#O*Ln}O1VKF6Xl3?MRpO}`I zo3i(z7~*LLkBCK2RhE=fQe#=1RM1ryx4myHk4v1n>ZpvS24qWGKB!f%B|#MH#novA zWRpc)hOFx4m;&=#Q*P$b44D=T`wVLPjJcRuHY@j#YuFUnN#?~9(!%YZ_J(T%pX}rsI-;qIJITNUtBXUL;=j@&^1Xg=hgUJSg%L8u5S~!;3kigxt z2#yBTgpUZhUt=&imAwyTkH9rd{Sy)KlJu{#`?X32fpms?7`;*yiqDV=-|=b zRk#OV9{LQB_e9i@r@|OKI`r{~W#B8o?*aIA0bm{)I1bF?+QZd1c$MJ4{~nsJmi^yh z;V)b@U@=3wJ1cMze;0BTEWt9aT5t(2k36g&@^GcZ!-LF2BeT1DjNM9!UB6&=9c~n! zhpt8u-z>3vU9h_as|7n3L%!47C3b1S?o+s1usg`my%M`$CUy;2!zVOg9rF!1d7XjJ I;0x&f2Le^cKmY&$ literal 0 HcmV?d00001 diff --git a/dpp-backend/digitalproductpass/bin/src/main/java/utils/EdcUtil.class b/dpp-backend/digitalproductpass/bin/src/main/java/utils/EdcUtil.class new file mode 100644 index 0000000000000000000000000000000000000000..0d11196a861158b074d6d8b869afe55cf3b3d71d GIT binary patch literal 5152 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 literal 0 HcmV?d00001 diff --git a/dpp-backend/digitalproductpass/bin/src/main/java/utils/HttpUtil.class b/dpp-backend/digitalproductpass/bin/src/main/java/utils/HttpUtil.class new file mode 100644 index 0000000000000000000000000000000000000000..31aee25950e45a624e1638b3b15848fee27f74fb GIT binary patch literal 14075 zcmeHNTXY*&6+KsWJhHHx#!X5}+H`6lv0ZAHMUq0~1QJJ%mB_Ix*$zpeVJuzCV@osY z%*c=OXu~6vXLyu1s;Jt;nzErx)Gf7QPRv+VZ4s{|=w)!b z^Pr+=<%zlFHD0tB^l)v1!C)?Rk>!R86?+CU9*QVIGm$kFL=*U_E5gAS!$JM z5y4cKEBuV6>6T)tx@IzXP3}zH(l=FumryoURkrfnGE|O_`g2*$;$?2&gMH^S3)eFF z{9OLpY^G2+b3VghC>PKz;25opf`d~CYblzwq*UrW3Hum~W-WPBF=d=puIZ-3LAG?c zq|1mZ8~m|4H!b@PV$RPMS|&=ueg|hozhEOg1Z>( z4cKQ4LpPFei0#|Is2SYUD;vBd7xijQtvH5~Yle=NtC}a}RR6*%mrJ}@QP5^`O)0J` zWiAgp?i@y?xT|SZv5Kp*g|d9BhOP|DqQ}PVKp3|vjJqRUT(w%$4NG2A))m82zTBc_%?^+iL#gsj-B=eP^6HTP35z-5J_7y}6jxh9A~vTKh5H#REV%6pq|`~DD)38ATX z2X&Ves@H0`vznI`L&IcizT5`Oa}yUExtWIT+O^5L9x$uaVstC)vMGdOr%Mw5PvTC2 z9p^(4p;@J}q8n9STFmD%ja@kg7)5VcLM#A8G>Ak>^$RXIL9xh*!i!f-sJqqmAHx(i z%r2-SIJKZyQ-%~u!eTbRrTE zjkLGStpXNi*rakANeoVoBMhDq=a z=^k1Ppm8a2t%!~7h6)3&3Zsr93{G?)=*ZCA8Qg{jo2nZI zwu@$T6CIMODTc{Cv)x7Q1-T2G7Ov2X45s5X6Gt&~8)Zd|l2FhPteJDAw@ z%4vbQ!}+-_y`2*PaL6~T-5R4VkG_&V?-b4=iDZYX!~dC1D+OHfH$~O3v$R0|5^zW) z9oHfk1sJs$BFe<5-@^iEj+>hFivn~Rrm*z!Oo43~EZM?ilkhPH7sbjL52SM`?4G_o z(aWl}>K(4`BQ$HKg4;eaZ5;U|Bx+|F1`oJbM4}7jrO??SRnY53kx#33*KW{O)^5T% zzfHpWG3WnaAT7b?@$lstPl7Mt)6lO3B={0O^$so)d<74SHkO;QCHNXjhYTsfGoFB3 z8%Xd?Y@XNx&2OY7_%>Ro>AqVOO7JXB=bgYL_#XaL4o{vEd>=2+4ifwT3&X~;mf%Nt zm~DJ(Q2GgqVl^kh&(P07WIHKaf)|>8kLPA~Ea7KW>`H3o1^khO3HJd);7|PaKmz~z z@CrbJB;M`Et3Lcp;U{Vi1Nb=vgK!&u+l$u;xE;R_g}&bb$MM+#xD%g+N52-OkKrr{ z{7n5C4qh30-7n$p-#Qrg;(vPIMR1_BSRoN+;S$HWvPEL$ zcZ79=#45nT4tPCHVlD27*Rv$n5?scd7TC*;$#)9c?F9m}AFdGm#&8yfUUBo@RU#t( z;9%KN!{A-;?ocEJnTA;9?5_j|29LtE5JE6Bh4A+Xg!hCHI!E(AA`p}iLZAh;9{x!p zEJtWTt%sK)5QMcz^pOZfaSn;W2n2BscajLD2o8id6LfYf0nLH1Wa22vfkz+^-b_qH zAPC1~;slAX(uEyPkqBj2C1X-;Uy+FniLee8f5)l%c_P?HDSKQcku=bKq?#a7l|*_B z3?Iq#k&=GCp*YRG&HCXV3kMyLE6vPvSlp{G^@7{MkYY|AD zEl$K!4_)zIhY$MNeaP3&K3BL=Kp{OJ!Kr)S{V@Wmd*A&n0_nrPb|3Mz+v96T`Hqgv z>)l5|?|zcg4ftp%!!e)BQ|%e9_b`d@ari_Cq2tcqJ4_;c5--%IT} zJ#Z8GC*U*wN%XV${TKLm1kbFWgQww(@MZWad>y_4--7SJcd_Dq4xWb}!jIvnSaJRQ E-$XDIi~s-t literal 0 HcmV?d00001 diff --git a/dpp-backend/digitalproductpass/bin/src/main/java/utils/JsonUtil.class b/dpp-backend/digitalproductpass/bin/src/main/java/utils/JsonUtil.class new file mode 100644 index 0000000000000000000000000000000000000000..e62ef3864ab8b27450a5840350959cca64533f61 GIT binary patch literal 12189 zcmeHNNpl-j5bmcek`*V;Mpy!25=de@RW?i5qTt{-HYAa=SWZF++j#VBPb|$0Gb1nT z`+nm@6>#PcP*gz`%atn5+_`b#%ppb5Z{BETY_&8`K~7v02g}l^-`Cw=FVpX7e);>m z9{}KS_%sU{26uX{F<8}2Yw)T*uMgIIv*Hb&@@(q@zRSXT23vzKD!Mf@cy{V4H+%-U zX|uwG0E0b63Scb!zQADPQPVR0AqIPUTZ{HxWUzapX8C57pS0#p&z!38Vau|8-8XH^ zW3Z_>T=VS()8%CZUO!@&c@{P^=!q>HbzR%dK@aP>cENJFXIJKVSu^aaV^#tf&2eqS zt$IhaeAnbG*UH?e=!mE}x-qBEaBW|}!9J~Qb5BF1V_)vJ8LcIVRAzK$h9SO@r` z!JQxz(^N#c@b3giFl%j#TbM)*38eY9rfdF^!}DEHQKZP7tU49bFn!IdIo!p}v^?Lf z8NTgmvaoymG}F^+R+&$m7B3HI<2BD0Ngph$ENP}SZ_jZ}$84Tmj(}FUuD(<>aY1Wq zrK(N{scH=5JVIl>OUam$FA|JcpA5oCMfWHjNg1haTz3NcTgJ2v(b0NdrdTNYwW_R= z%Su9RIMRlwxItZVO`nf(-LJWva6R9pB&5nnJM2kE2%D10a1+^6vTtn@^B*g>n&aST z;9b&P3tNp^A31~LPfCu73J_vry6EytgtV-Z4nZBa?F!c|Ld_aU{1e>cuBlhdmxEcb zdGnC=&g&?Q!y=M|vmtV+S`%&5b_!W)l(x}1+Yl{XA6Kd*wbN0R2vrhN>V0aguZpAB z(+N^?NQsxVD5Mmt(kd{fq*zHviB=^f92+|kXC+j7-aC3 z0`V&ml=^*V_J4RlANnTn7<8k5!qdRJ96ZRNs^CCPEFdfPI55HV63%s;ulsm72UXZ5|mvOw>k#Tw$4q7natM4D`6)}HlXkl z-j}>(+IYvbwW<~zx90fL=pz0=hPz3!YsPz*(4W2tFbCsGbW0yw_d^DoBTG(j?l3r& zWFVv|(F+>ctzU`zeEnSx&NDctkQZ&`Jeq9Ga$`=E)@i3Yx<_rgFF)PU9>HSCKiK!yFDZS(GO+N(10)E??e zjD2`;k`#zwMI?i{kioXzB5u5J`<=LkyM4Sygd&laA(q&Ci-O}s99cWCqq_3HgOF{Bw>ss zdc~1b$o@(s>eOh(kyDeEO>NjFY?$EF+~tVS(;c?_gTn62DID2ysk`gcmQ72xs7I0wMO|9D(pTi7)}BsOl%9nvIbtTYe^y zF2F_777F1{65$d&oj`~gB@i+PNrcPrOadXU6Cx&=`6dWgNCe7;kDDMo8!`G^#As~G z^Nq2|d`Tj`2ztVnxZ)^p=&GLrBeJDT*g|t{vwg8U`0qafkb$>u7^Z&;H3!3RYclPB6;9PNVN#5W%Sn#5=iS{9y>|~7NSXE e5kG%|f4gvISb|sJHFyK>|L?$i@Bz*aAN>Q>A1$Z= literal 0 HcmV?d00001 diff --git a/dpp-backend/digitalproductpass/bin/src/main/java/utils/LogUtil$LogPrinter.class b/dpp-backend/digitalproductpass/bin/src/main/java/utils/LogUtil$LogPrinter.class new file mode 100644 index 0000000000000000000000000000000000000000..613712fbecc7915bb77be6c4b0eb5bb0fb9d532f GIT binary patch literal 4369 zcmeHLUr!u25FbePf42>LO7G`JDu<>9(+n0$NGep)d3Jb=kz-KH&{~logT?N}=&qw# z$zulfR3}|L#gvfUvOynbf0jzRCk*bl&c9uqx_-c5dPB!pgF6i7FGOz|qfH&=*_~JW z%AnQhDaJg~SuRuIq*gpP`Y^@JKH`nJy&m!yqf{6IeAkj2C63UA^L_RR=gCk3W+ISXW?iX*z z+OVDFsf?uKw#d;CS;{(7L{1xC`LVUmrR9Z+@klCK{Sl2&TNJ4qMz{G+VVxf#6c@_V zRS6yv*_fkUlXx{(*x*ic!CgPc60{=}xnmrVhW)0wPQ+U?$uLK0Z5ONqac6DJQ{8jo@H%YnAV9N56=-O7kl#-O*DYqrj z2ov@C1lv{$%|TVEKO-Asr<4zsmhP1~a8^Yw$gl$|&A@EgszJScGjex>#y_UsPlWQg#-Gr9vG~dFu<*LX zd`8b%!T>D8U3xalb_15+bLuhp0=^uQ;Bl3Ndt)U0Jx0O|$@SLVhp*`k@D2TYn;1NR WZ>iNP`_r%jt7P9AtW$pq9{dZ3GN-Hn literal 0 HcmV?d00001 diff --git a/dpp-backend/digitalproductpass/bin/src/main/java/utils/LogUtil.class b/dpp-backend/digitalproductpass/bin/src/main/java/utils/LogUtil.class new file mode 100644 index 0000000000000000000000000000000000000000..c6d95cd8c5566018429326fc647b42520c83a99d GIT binary patch literal 6740 zcmeGh$#NS-^tEGKOPn|u%n~Qim=NR;Bm!ZJ!{S9wTqQ49;{>X>v`1}u;@PUZ#}(hW zbEo(KiaRGLr~=M>REpO#BY8xP;#SJ&Kg*_3P)qpZxX*0DKB-1sEeRCxu<} znB&(Tu_IQCl;g@;BWUm9qyXatF2(yU^V_wpy+_kBRe z_lUQs9eAPRGUWt54Mni$a!=l&<&t&4X^Yz~69^PC`;fIcosU&8Pg?<()DIN(n6eM3 zLRkJd#PeriQF&FZys8$VnqVe$9WM-oqJd~v8Ine9oB5jD9;Y3_{&UD!pelcC^H3jN z=E|_{g|1^eipnVD0+r=UB_dk|f+hy9EKo<%$Zzp|$H&v};}@K>$W>YBD&2^r(q9mY zGGD7JA)FyuE+rn5BMDUjWmFx9JOw@XNN7LIfkEPZzKpQ@>!$yg z|GUQ2^`-m%2%; z0AFD1ICg{rEMwakA+e8GfYqK}c9IQHhK-~tVqxb*!Y#n|GIqz$LlGum5@(m8fO9>T z(y^S58b3As}pNq#Si@G889V+knCr4(-TPTUIi91=hLz$8oH4qr^?{n9Dv`q8N7D}!22$PSM7sW%aQZ@4Bo9iczJgCF@yIW yyq~L=+d2Gx&ftAG0KdPwc<10F)chEH44-HVAm=;ycNb^%cs-8)Mfx0;VC5f~y)sk) literal 0 HcmV?d00001 diff --git a/dpp-backend/digitalproductpass/bin/src/main/java/utils/NumericUtil.class b/dpp-backend/digitalproductpass/bin/src/main/java/utils/NumericUtil.class new file mode 100644 index 0000000000000000000000000000000000000000..d2bd551d0dd933cb8ed4ca0b314a9a86d461a0ef GIT binary patch literal 2082 zcmb_dU2oGc6umCp(q@H?!uZ<8%ml0(&raJ3oUTg1AYltwRY-C0-KQzW4YX`&{3jzrTJ5fM@W)fdYYLqrFC-3E4Pc1J($w z@J-`&*ymb!dpK~QNMJ5r^O@{6-n0+6X9-L{6;jye1kTmg_6ZbUst$LcOknmjc2jGm zOE5zUzxJf&M)?EYp`Pjo!e>?}Ndv9gKJS|+)GhD!IPGxHXBvY7<{h#wrz{U% z-dO}h_kG@Fe#5Fl{(qD}kl7O`F3T-zdQq0-tk~VYWr+NR{Ne;B2Ver%J$$ z6~&pU~K;2BNE^!}$#Z-C8D(bsQ;8PBLnO>e)U?$Q8 z3f-0pwa2$aWcRs|&Jw@Uc%^ScX+^66> z4J8yESjFl1J{(vh;0&$jz`ZlwE3qws%8oDwpUYi*@(nx$Y-89H0g6z-3ZBNXgQG_{ zOYrZ0gVOt|`vodLa8!U<{6;YV3owV@N)iPZp^Bq2T!PC(g!MBB^C<|cF+w5Ey9(D* n^RB1l)kpFcU@{)c= literal 0 HcmV?d00001 diff --git a/dpp-backend/digitalproductpass/bin/src/main/java/utils/PassportUtil.class b/dpp-backend/digitalproductpass/bin/src/main/java/utils/PassportUtil.class new file mode 100644 index 0000000000000000000000000000000000000000..5d18ad655efb060eacf88c53b1cae3cbca4fdc3b GIT binary patch literal 4079 zcmeHKTW=gS6h6*vcDHGgE|goLa>H%IWtU6gfd!<}22?Z&QIi%`;>DRg$vT;_N496% z{xT$x;GO@$kKhGyJiD9hCPQZyr4kZ6%y>NheEj*`eEi#=Km7s#U%;mU%rW5BM4d!P z)j1La(aD^QZD&VVn`-0kQ!ju825b3XEYxA=yZs}K9D~}C)ye}HTn~$cd^;NN681pG z_%!U-qjADsaz-e7faZ=g44UET%Dc`;bx4qv)aVGU-4aS1BB9p8ovA;BS^8Wm>Aqy} zL+k163P(@)oE02ys)00GC8%6?;{k(f_cG;Vf_Le^mHRQ?Qc64Fq*j(T6W+?4ek2X{ zh||Jt-NOK$W3YO_yyCu1a{fsy2dwt|RjAB6& zc`Bk~QUG7it+vj48ZD>Qc_LiY=Z>)WI3;UMV#!o(Z|}CJ&>qel%9V+?xnG(`!ta9b zBOf!Gf@pKtCK58Wc)?JcdK(`Yk>De3j;lz2_ET~twefL;X>QjtR=H-C)P=a)WLd4q zeF{do(_C=(B*jL3=f_$hyEum4LiSk6Wm5{Eau1cVp2<~QSN+Dvu7eJ*0$*Dk_`vmDVu|RU)|>s**A*fp&!J7f`Ag1DoTx zED$jnQ2zX>imgQZzh|eZL-qpIUDYfzn6Lp&cySpn!%GaVw$4`({_I{2DSd5c$v&Dr zK}W1FH*_T82f|3-AN^c#eMx8edSRt7St`*Hzih<-$Nw07(+bC4(xuX&AYi-UDB4ax zHqNv4%+977T5WM4;tXrB&e$IniifijN-X$)5R8kT$u#n>OI8dX{u3`d?_>pjSA#bh z`@M>5<+XWt1}EfraNR3BTo0SxBpBD+9|ei4@Fs|f+r^0p3*yuAd=)Xo#~GOWNHtWs}@dTZ2P zq30%zEmGU~8JZ89&;JN7{7St!c$wZF2XGBuq4#qB-Jss9)MM}(T&MSW2{#HPZ2ygf s*C!-+_CpSD6iA2*B+SEGG-nRpKG{=?`k&CVLd-YdU3ecl@F9Hs7eZP$tpET3 literal 0 HcmV?d00001 diff --git a/dpp-backend/digitalproductpass/bin/src/main/java/utils/ReflectionUtil.class b/dpp-backend/digitalproductpass/bin/src/main/java/utils/ReflectionUtil.class new file mode 100644 index 0000000000000000000000000000000000000000..42a0460a7b9ef9be049cfb46ab091c23a9bd0f71 GIT binary patch literal 2316 zcmdT_-%k@k5S}fSYmXub;xACw3fl6}hD4*G$b$qD62Qb35+AqMrCr#&z3lE0c=vxY z(L~?`c&viJZRYSot9H>=bwwtAd)xF?xLr;vHatjlRR;Z&v_#SIOV zr9QJ>k6QHQry(*K^u^oM;@i|>3biyc#T9<2w57>Xjh}ivjE^_eV?hks=JcGNTio_T zDLi4Ri9)WCZeXmAJgYQKFJGxrVQ3U|_@M}Rr$%=pV`Dl=m^`B*I8n!(GKB68BOtnz zyvt$e2#(V@`8l;e{H>#IO72qC$;|#r? zDeG4ybfBUMOn7nKZ<`i3_$n=oqS>$dMgblXkQvzBSep=-6!?0uz~jkf2)r32*iYqU z9S5aN#U@Z}if+Jcq%j+-|Aw-*ypAGJLOy2@A%pta9;QsW&g66zrT??T3AjxaX^(G- zxOHcT=Wa5?99Sga^vltK7emuEQNw}C(0ERDBv9HF#^BIs;Q%qP0yw8}?gQi@hi}R_ z+74Q;aFyWS{RV|kGwv5C{Xi=RQ}~U20OnyDzopa*?!XLMMVN)VeT3y9gt-w2uM>n^ z5_caSjEs9YBJS-#+&nBGtH+3ugC_~|_}myXW&U(TeB)1i4xS~EWvJr6fRWE(310pN DXKBZ< literal 0 HcmV?d00001 diff --git a/dpp-backend/digitalproductpass/bin/src/main/java/utils/StringUtil.class b/dpp-backend/digitalproductpass/bin/src/main/java/utils/StringUtil.class new file mode 100644 index 0000000000000000000000000000000000000000..c4274d4dbfeadd6e729a72c9ee64d1f0f5cf32e0 GIT binary patch literal 1425 zcmc&!&2AGh5FUrNNtQrLp!^k(2~f2h5+QM-fCN>MDy1Niwuqy%J0xzswq<*x_6c|- zB#_|FtMCqp+1;q65S1PfTx`$o%s1cse*OOOGXOk+dsV0~xaD2kO@-9mT`?BjEJ)?M z{ote?ZqvI8GYsa7UrOj<_tjt*RTh^3C2n|QnDi66GPry10Jd#dMp;KB$^?qh8Irndb(-f5FvCuiv0Qn)OV7TDnz+zP2NUf5w z4BTfH9kJCuxGWCF@iO-16)ru`bb{}s#-zhHGaqs`g_%0wQjg6ZazRc;#}No!DI5yb z43L@KkzO~_WzZl2x@Sy0kd$P!NPLys2xg%t9iRLdz8ADSvo+s zC8z@!w0b5MYDYMk%ae~YVI(~R-aENRR~b~LUr%i~U~qGq%ibi1t2MaHAU#Dl{=K9# zs3nMY%~)c$G?m?NIjX^R2JcTn^B+__Vi5IB=3;yy^GY>KpZRhq293eu>r4lk;)Whe zFR6Ub@&PL*oT}IA{W^hEui3Fs87++4RJuv3t8nMorYYSpXlzRFX>hk_JUu)BS~;}7 zfX)gv*&NALk{*)G=#D-??QJXi0F5ssRiH^{t^=?L^K>>!Ew}(JlIm~~E=>^bA46D} jg3vAyDuvw@xH{GD+7!E`L%RyG$XVThyL8Xdi$nVdZ}X!z literal 0 HcmV?d00001 diff --git a/dpp-backend/digitalproductpass/bin/src/main/java/utils/SystemUtil.class b/dpp-backend/digitalproductpass/bin/src/main/java/utils/SystemUtil.class new file mode 100644 index 0000000000000000000000000000000000000000..bcf724875cbcd0ecc0b22a7a1520acdcbe7e76b3 GIT binary patch literal 4209 zcmd^C+iu)M82)ETvtBoC+R&Cmp$y@)DX`mekPrbbD2-Za7XnENTyQb5C)sK28Ea-7 zHJ3a9uYkloH;4-)kl>!D;Rz7`coNoO?X3d~io}g~$Ns|M6!4co*JmLyN#Q zqoaPxgzVpE`>dZ^k(mC*fw4T@!vAfUBXFVklrXv5|7iO@k1T=tcZ3x7Jpzw(SMCv* zyQN~@h7N(nG3{-wl@8!6ng3=>YHn1r&tn>?G!qH4LP?rwwVm+PyiLQ-=7`gnM+wtN zl(A@!?Q*(Y=(9{?#SN9p(v;a~L@m%JfrWzt#h8JAdwoq?)Um|8^{wFepZHm2N;R7`id-Bgw(L!K&qfST-Rl@@+= zq;#AB=%O92jbr1yo(f|G3M#0a$iH%3)11$MX#;CM$)y!3uMAQH__|gRH|7qLaq_pB zOw(b*YUioRWGjcnyK4B^`y2!N5K<+#R@}^oxP#g|E6Hw>ZEC{9&GMbG^xMZV^}-sE8%^m=^AQ_;SvU zgdso&( zVM?pUbp|7`F5&>5BCtCfc@Ld01kRz<@w_B(5zn_&nhIQNd|nW^geftRjR8DM;QI!8 zHY%O}a0cNni8kKF)lnSn9^ULN!{a-gWnPy6ULf$@skN`JWqa#}?7`R)0t;yH2g2+X zB_6;EA@dCkYf#sXVtc&!PgV0La0Oj+TkZ?3q+4r_`Y3_7Dmw6F6;u|+s|3Dn;NM2h zn;}u{;2{uhs9Z)9;?AUUV&RJ;hwC)U9G^am2gkj;Hu<(T*6(0XDaQZ74p6);g(N; z6D8bpHMr+1+o{PFD|A&?ypqfzWx)}f*w+~ppW_H L@~Qc`D_v9~$jop$%E zgxzWCgn<3+WCRPiAf-`@OYXMQs~v%7!({mbtF@HOl@P$ICY zq}LoV5j3B&F>A(J_^R0*O3wNR_}hUM0@spHJ_`oTZw{YwPZPM(7J<;a1TNL;JpwBa z!ajGPLSStwyC-ER%kT4<4>NHxmx;|MLu%c3U@<4MDq&`6P~UNMS7scACQ;Kv@1 z%=C(SEHFwBInB(Qkw4XQL4y0E$QPc_RK*dO$W)-Tj6EGnn(|(&Q=w=a^!fK9;Qa=D z6f13*NMQa66~Q<>;*_CR!&wd0%D(UO0rNYWX}*_nP~aKWA!SsbM7&z*#8HIQsPC8z zL@+2~EHD0T90Uv_xa_|sJYW#ovwnG>E&xK_Lj%-=#a~WIMAnwzC|GSvpYX(Vnx7z-tEuKT7RCwl`_z3x8Weo)!vG4o?y zhPMd(X0fYyUc=n*r2Q_lZh=^qU6x{nb&tS}nww>Ft2h*uju-^YWFLXsQ|Y#A+Ei<| z5LJdvQrcWTHJPakeEz?IRx1`9WEu3|G*AK+vnG>WK7m`gRauaSZYtL*!xn+RED~#O zo5=5?ELYmac4q?Db6nJ?o_|2#=L`1SibWeCteMK^JR-1Kb0bXpw3=z27?(Li%-!0JC?)I?0;-ij#WoQuc z!_ug-tfb2<5iijehCsCw#?s>th1r{|rCDS4K*_n^fzJq(Gm0J9#@v}?umgATQ&xB! z_zJHvQnUj*c!y!iwgc^%`;N5!;L>>{l)__Q7mvjXJ_Wq^z)KVWyhFj=)D?Vp@NFAM z3I4DC3gsv3)t_MX4}2@Z8a|B-zy@5y=V~eiufaOLRp52FKGASzM#Gy08nzP+r3vnB z)V_hgOYlx&fx(+^sRi#A;CFKP8$fgOPI2!Q;JP!on>pOnWN}0)w(+=do5Msr#zK z9XLl|ZaBgRS}R?KIWqIzmef2{UXOREtNcKC2@MUjLS8>yq1DRfKBpb-dJGw9z}y4Y z<#Z{r!4mB#9#VWd^_g+^sX;7%8sPl1Se$$#wq7G1LLm05%Y(%BMZC%Eg&HL+9zrhPeRQUhT$-G# z)F{fRIShEUGKiG|+?pSF!WD*wQNT6EiVTg8T%$Bi$p>MggG( z0#vWa=jU+CV~03a+$Z? zPu2d(DYGw7+~>bY#F-j5Fx2~Hlq{WClMuL+_rx|9PJ~r9L{~BsX~f+*3AcKD#F;ax z*lOKwmEkfWKUus;OtNNMx!k^6z9cFS<0D`?e-XWA(U&YBV@P)bvq#p& z@WWRJ0vGD-Opvvf`{}ombJ{Z7;`;Ec0L6qp+hbnD%kVBC-&;8KS%w1DGRe%%*sEYv z7GAc1j3p494(dG2G6GlYiO(?%5;4+h_jMx1!m)lp;Ohi!846aMWw=U8i#8!)qq`;> z2&eLGV)Bi^&8!UQH+RbjYY_6+s3Od24d+zZXV*o?tn5)Vbh+71`^z;#ZrHf`^kpDj zR39$25~yydNV_~$=jY+akGTxZ0{eWF!}N0w(;4_U@zy7U7`Tqdcknlhp8ga*gU_Lb(QxY@ufW9u literal 0 HcmV?d00001 diff --git a/dpp-backend/digitalproductpass/bin/src/main/java/utils/exceptions/UtilException.class b/dpp-backend/digitalproductpass/bin/src/main/java/utils/exceptions/UtilException.class new file mode 100644 index 0000000000000000000000000000000000000000..17fe70a1d0f75012d46a0e520f7099f5ee6e8245 GIT binary patch literal 1053 zcmb7DO>Yx15PeS5Zn6YY0_FR|^ngG@Ss`&Ez@;hzDS$-NN*o=>N?dmBmF-l`FGB(e z?))gk?6xEu5Ndi@uV*~-{AT9)=dZ8d0lWl{P-A%FolG*JO>!uXL^2IJ^@%!`Di7Kk zpX`%k_m3H&&ahbqroxPq55q$x1H;A(ZFG3W@bFQ8ak`TV?|T);UU1rsdyfwo>N|F% zA~YG=i-cY0tZU!`W3zqZl(*@T8gXf}T&JR-!*gecsmlCw9ybRQ#Yak}!ckBzU&PO~z+c3&Iyewq!H8wi>Q zL#J=0NDqY5g?;L*hl%zK-Trwb)?;{Dz4lZ@^Ai7~r+Cj!om8)N$!1Bkkn zwGYaKH(EL29^n=V{O?&uxU;0wl2e3xOK;(%KMbvR+Iy1ufOO#T01RvN z+<+SG*0DirMAkF%7XJ7f8lO7x7qotqF>P9l7~nQGX>FDJ7?;r@t3bF?L8z1Od:" + dataTransfer: + encrypt: true + indent: true + dir: "data/transfer" + aspects: + - "urn:bamm:io.catenax.generic.digital_product_passport:1.0.0#DigitalProductPassport" + - "urn:bamm:io.catenax.battery.battery_pass:3.0.1#BatteryPass" + + vault: + type: 'local' + file: 'vault.token.yml' + pathSep: "." + prettyPrint: true + indent: 2 + defaultValue: '' + attributes: + - "appId" + - "client.id" + - "client.secret" + - "edc.apiKey" + - "edc.participantId" + +server: + error: + include-message: ALWAYS + include-binding-errors: ALWAYS + include-stacktrace: ON_PARAM + include-exception: false + port: 8888 + tomcat: + max-connections: 10000 diff --git a/dpp-backend/digitalproductpass/bin/src/main/resources/logback-spring.xml b/dpp-backend/digitalproductpass/bin/src/main/resources/logback-spring.xml new file mode 100644 index 000000000..25829e7e7 --- /dev/null +++ b/dpp-backend/digitalproductpass/bin/src/main/resources/logback-spring.xml @@ -0,0 +1,81 @@ + + + + + + + + + + + + + + %green(%d{ISO8601}) |%highlight(%level)| [%cyan(%t)] %yellow(%C{1}): %msg%n%throwable + + + + + + ${LOGS}/${day}/${day}_${time}-${LOG_FILE}.log + + %d %p %t %C{1} %m%n + + + + + + ${LOGS}/archived/${day}/${time}/%d{yyyy-MM-dd}_${time}-${LOG_FILE}.%i.log.gz + + 10MB + + 100MB + + + + + + + + + + + + + + + + + diff --git a/dpp-backend/digitalproductpass/bin/src/test/java/managers/DtrSearchManagerTest.class b/dpp-backend/digitalproductpass/bin/src/test/java/managers/DtrSearchManagerTest.class new file mode 100644 index 0000000000000000000000000000000000000000..d732437ee0545067dbe5706f44c4f715da7932c8 GIT binary patch literal 8495 zcmeHMS#uLd5bjmLD+v>bfe?;_4Y}+Pq#Wb|au{sDL;?bWs#N7=ygRbjXpfp5iSRq} zD^ivBR3%l(d;U!RK`P&9C81;S_S&vg4jv@!w!ZzQd#0zmcl!4~fBuz-KBK!fl`J}! zD7UUs!**5P4HzixwKw z1eYv2XvSGi5~=S9y=g#CxbA7?hZ_cTH3}0gLj6E=y0T0MEIL{D;e(&wmc zB~fV6^RbFtnIr=}p-tn?gan+Y?sh}%2XZa!`H8>Yk;`EiX`y`#Wzk%t8MzMuJK_l~ zT1tdTTf%zP^Id7tvBt`*80ZSDhOTXY!=eMm-1G+jJSW2*3~8)lI2DC~3^k;% zRjEjo>8y45hx?(DNz~~{&vBz5_B(x}9n2YKAxJJd)kIXiTO zvyK{A=Wb_!ed0Rz6zhp3h#F^fyCa$0WK(&>asWYWT z;3o;vNk8xyd|FghD@@CnFy;jCJc5T}YF2EQJuRE_S#D?@n<_JBiJ36|xI2q>PqVi; z+aP+U?v-Qw4zPo_5gsuQ%yb~8Yfo>*98C+tnM&;G&MEE#qwtbre4$LwG`--27KgJu zn>z#l6zr>CINCDjFgRYi zAEU4{$2p@a?^2o0TXTOf&QV5>bKY-*nX{;E3wHGF zu%J>)P@}#)nus16iC!ZT-e|djxfgYnE7Ns90e_u{re%%E((bT|v`vv;k~dL9cU~-==Hm91g;#O*c@>j-_6kZlcZ|#$cNoxEp2cP6TS9ZU$-~$Z8Rl3{}#UIQxq-I67GoJ2199N&pAkD+1|-uyPm;Tq8imR^?5gg z;oA%bqW35C`5;rD3mI&FCfi30wvRK|9%Zt9x!OqJ*|eU0Cv U@YgSBnXb|*U8gnrikfu$FA9CRK>z>% literal 0 HcmV?d00001 diff --git a/dpp-backend/digitalproductpass/bin/src/test/java/managers/ProcessDataModelTest.class b/dpp-backend/digitalproductpass/bin/src/test/java/managers/ProcessDataModelTest.class new file mode 100644 index 0000000000000000000000000000000000000000..ee9108437f6aa28d3d6c6369c34362f857599e83 GIT binary patch literal 8014 zcmeHMTT>iG6h6I@>;(ddNle5`i?<~SyGAi85F(IOw+e_Q8>)Qpp_yseA+s}6-8~3p zS^fZjkX2fxuU3AP<>|eO^8qw;3k=zdK?HYL;r}o)CpUW=eL8P=pIJZl1sEyY&1D_x#Kf| zpolq7Ft2p3m)|++hFnq%pSGBCnp7d2A4izaVK^42qO(!aUR3%wci6pF6beN{aZo`! zUL-knn9eBORWgQ11d{i*IZ=x7PG$ED(Fx+L$CpY@}b5*W{-W)|f* z3omg_3M?x8=!gs9xk*CkdYF*DvxvhYeHTK_CAbc=6YvteO5j@g^kAw-%Bf9k^ta>I z9v2N=TRp*s4)b@J@bq!_#|%LRCwr4nj_r&dn`D^SWH{=*G8N)lzX7Pwz<)qkMt7c+VtqngSj_tZj77OUPW@m8QL zHS;_-rYTiu4(0zgerU?T*MiJ-J8JJ{w*a>Zxtfi{Qx+^s9j7#Hv(5-i_8$%1H>edt ze#$0QHV&kH&2?^^=Vh3{J*-f>Hl0Sl{{-)M`0FRzVZe_)sd&(P9bR_}aF>wrY$|yn zx;flNh&me@HJvM2fJFj-WRsvXSehwU27wz=G1064PVDG?p8eSOPYUocA?*1L^n#2< z1eS&?kZ!dSDD8x?aQNq*o*{0I3Q9L$?cJh0tPsd|FXsWbwx&n1dH4*^4mP+tk1iY{ zwmd0uL#=`Hz61)mD~3CUV~~SOa2b#Cc%;7z_??3ylt#|Yz&K3cxhw7KlQ09*L&q=T z9e}gaRYY9FUyI02@VoRYT>oa~#?SD|@9q0u!%uAmU>07-PtAxZcmqAse{Ui~uJ6kn zo;l6-mVs^2$o9_P*xog=y=P#%Z)BUdV7p~t+cC1;v0z&;uzhP}t6H$VZ(wU0**>sf t`_RA^7}-9uV7q5vQ%1H=EZ9tu{%By!!KbK+94x^aeiu-)%eaUB;4kp`1*8A~ literal 0 HcmV?d00001 diff --git a/dpp-backend/digitalproductpass/bin/src/test/java/managers/ProcessManagerTest.class b/dpp-backend/digitalproductpass/bin/src/test/java/managers/ProcessManagerTest.class new file mode 100644 index 0000000000000000000000000000000000000000..fab2e8c8204030bf8f24609ad36dda12ca38b280 GIT binary patch literal 9604 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 literal 0 HcmV?d00001 diff --git a/dpp-backend/digitalproductpass/bin/src/test/java/services/AasServiceTest.class b/dpp-backend/digitalproductpass/bin/src/test/java/services/AasServiceTest.class new file mode 100644 index 0000000000000000000000000000000000000000..b641c7f89629264d1cc19d12469e98f5d1c46ee6 GIT binary patch literal 8299 zcmeHMNpsxB6@C~kn4v_IrmQH55*v{>Dh_8zidGy_QA~=oMP+Cy8j6XsIXytn5F`eG zfd(l$i?i9;_kB6~ANb%Zrz*ZDKOx85@&j^AM9_-jA4;zatY{l>EXw>PbM&k_IWs#wJw1yFhP($o+g!D(bV{T7C~)W7 ztk;{jy}HQ+ciEkKn+d^#y|jGMXJI&hp*~%od2}gmx&etsr=*=Tqrbt#W|iKf(Gv~J z_Z!Ke1?Cktq}4Of`c^1yIM!w%UuJ?W+kw=^)FkJPz{8q_a;itTy8~%+#oe(3&+Tzn zz;b7AMwmp8uR$&1E7dxO!nh9tn~+%n^puQgZVS4fXvvRzwThI>w)-_Ypj70=>2J%^f%rq}arN3FC0^TBm{;k+?YTi@h{#Z89=0Qt<^h9!)1VRC$(Gc1pX z27KJ;F=1{R@EC*N@o{Jk!2`1{_fK7pqTW}I+3lV*yRpT#Ss<8UGPz}pHaF6-9R?=d zDlFpif^HpCv;C0Yhu*iqyUhYy5zc}#llm_LfnCQ8 zvFCGqU&}yuSYR{U3r1?IJ>RiSoGoGG^8i-|^b$m-@B$-_A|}rpc4$Pd#XGi(i$Di0 zc$fFLEV^#2MWK)_KpD)HH;0%wLpf3#L_0a|kevo%oB~7~xfFonITV0OG5z0y)^IEr z7$6h)6d=<8rvR45I|Z;b{3(E?(NF=b#6;sDDH}lDD^3+@6_Dk|S_L|#+%Ao@3b;xb zC>xg*u=S&~0^Cr%R)if2+zP<^9RYVF-UWwqkRVsCfC;JdU1FA z^olw?6ROngqH8_Rvk82eWtT@3`t4}6T-GWM$OMV6D^nK*B z5!>nXLoCHUKhf#Ou+VVwUZ4)x+I{jS2hVt?{{Sva_JD5(t#-E4mjaH}MVlZhq zq0{e&e$d6Abf~P^xXruWb;Q#l8H5qz=igbX&@noWw+iW0g|w#LNANsBC-I!1QIr^l zl8>SOV5UBS`a_xeY4Ds;dKG$aQofJg5B;;yKaTPPisys$uqq$HNMzq1qI0Tzlpa&% z+UfUiys#WPJa2XtoXf@+(ir&W28KB~%R=wqs!rv+7B z!mm*|w#)PhRX$6LD5YhV=n7bu@iqr5YEt?qTDd*({F}7;Hfj}W;wfh`*IShZzVIVSxW@P2gi082VEtjo(NVb3EvTYuc?Vq`9_TkvHBe`r_ zhh!VgVXM$K>|P;<{(y28JKLj|D5QvXX^*~4U!_;*8}u!DmA*sYqaV8`=bo literal 0 HcmV?d00001 diff --git a/dpp-backend/digitalproductpass/bin/src/test/java/services/AuthenticationServiceTest.class b/dpp-backend/digitalproductpass/bin/src/test/java/services/AuthenticationServiceTest.class new file mode 100644 index 0000000000000000000000000000000000000000..f1da86a9427d494fba3aa8cb5ca62b3e1663756a GIT binary patch literal 8275 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 Ph(5u&`;5N83I6I|1W;f# literal 0 HcmV?d00001 diff --git a/dpp-backend/digitalproductpass/bin/src/test/java/services/DataPlaneServiceTest.class b/dpp-backend/digitalproductpass/bin/src/test/java/services/DataPlaneServiceTest.class new file mode 100644 index 0000000000000000000000000000000000000000..e090a0221e70b2d3d933110545398ec95dd4e907 GIT binary patch literal 7570 zcmeHMTXWk)6h1O(d}-RWDWQ}=yMzJ`1)EE`3@shnG@XWVN~ei418*B?6K^7E#qP>9 z{1}FR!3@m6J3orytYx{fqp{X$GodqnNF=SlbJ5we=X~1z=ifj60)TJet1^@vxS^!m z)J*B-KJC(`VzSF!rkeMurjLCZvdv^<3n68gao|D^hrjGKzu(zsuErs61nj^1Z9bHTNB;wI25GQQ6XyIMh5~>tUBGzT>mIVJI}!9Bnu-+u9KB0m3RqODg_d z{~pI@Z}X7rI}W^3U)gqGW>t8s46ivb|IG0(2ad?NBl${4Vo|D}spoJwqgt z0xbvXYf`Ijbr|uO>r;uKh`I-KkCEjx@XN##Oc8XE1XQ~nq7lxXMi}TJxO5vPnhoPc zV<4Pp=Ya{Zae%ngye-*bB=u_uBII5JUEz^prw84SF~T&)QfLD-E97O# zyRj*X#bUizRo%R$PH+)Wq7Ng6^}z<(rIJ&uX|?Kl5c%B26|CZjNvt|(MaHfck|YhH zzCySnaphvu-*qgIocjEiUN>2L>axi6uL76NTVZj_^t&8^ zT6N6&&bnd=vkZVGY{JQ&5dMVi`q)=7k|yO%jZ?W1nozA}s+^E@%g9}I z7#|_myOUGA3e=^d1@AcQeBW#)-p8<zP!?Fp%)1rYEve$Ju%6`LbiAu8LJ3c zmeJ9Yo--wx&QgO#cw-J0V99~S`q9k?^Nl~>LIV0I4tAK_G8EVBQV5s&+kML0ADq!0 zjynh+wIF&hnv>2`$F5BDhsOiq>I9S5$Cr+W^ZZ4HRytqQ#7lz+9@Zy1P-k4$yE z@dDu~*DMIo39&uP#&<&2r(E;sm#v<1O|$!%-A@=|>Ces2r(82>pHr@R^n_ycTke!| z#evIvY;aKVK#Cw`OXlRke0*XX|G+5`i#Bf11wF=!R!wPZZ<8~fh)JlfReVo`wjx*D z6tQ%f*@bi9$|&hI$!WN2_>Wf*StK!8v?BkI%Ds zo$rlbfQxuFk_&JNM_&X`rp1t8FDm+mAWgN^k?^OYk9liPt%d NRTDme&(Pb?{{saD2eJSF literal 0 HcmV?d00001 diff --git a/dpp-backend/digitalproductpass/bin/src/test/java/services/DataTransferServiceTest.class b/dpp-backend/digitalproductpass/bin/src/test/java/services/DataTransferServiceTest.class new file mode 100644 index 0000000000000000000000000000000000000000..e9954cf70020e539ccb63e9b957f75a53a964dc2 GIT binary patch literal 9222 zcmeHMTXPge6h6HKCc6X!0R#bIL@tR)0*azsg(OH|Lt+x5ctIz#y}J{3XNH;CaPfY} z>#KjjcOR|7Dt))gKjM$D{CX~%-fWYZBvfG`56NuzeEpr%J*Uq(efrOT?*2|hC+SCx za*XcffS)z%$GsB)2d#F^yF!6jaC0?P<2$Bwjmg3;lS(w=`4&gUMZV(qre#BHQI7#&=cR2mTz?vM$E zrirCQYVJyAj+urA)TU#CkNLLBe960rYd53)p>|5H1RL{o%^8ha5SuHEq&O|LVKv() z8g^jSvAA=VZ_U*B8QXS(aDjc;UvbniuLF!aW##alEAmn0zVl@GZ+$ zh0)sLP}0DgRotF~Jr;){#B=OAw}mZtR)fI399T6*h2r`6H~KYRGNbN%aX9)Z(84kk z^o97h=)YyuYf1l=__ydUTQ#2apNoH^f6WOCU*{B*>g}6m)G_FkxJG!st17cn=X7r3*0mN#V79j#uf2 zDwgZ>N6?3D1!fzt+$@uNfWSKZg%vniv|Iud+uiVdr{S5I%-VNFOe}jwo!@Z0Ygv?e zScWvmri$IuEK&Nf-Hla~RxO z*+X6}vU1@#b%kdVt`zAuPN%-06wtcm`$#e3A&Cx!e8v^b2+R0&Gr}?o&1QJnP#HDL zXr38iS?4)_7+sp}z#H5Ts}Tk+IhH~`s^p~Tk_of~$Gik+Ceg7MkLmy^bBX-Ouz^Ey z`>|HuybG2p1>M}+DY$UznG_8jz~U-7l*lGUfzmOJ+H{;<#+@BO)k00_P;qJXRZ+`9;&<6az(J*`89#iD&NJG% zc#sj5sAjl2-boi($83g@PIE}g`YkRzW$>d2SIB1!5E)@vJ%3bGO!+*IBHT*zq6KdI z{}g^~ZpK~+eVx%ry3po`G;!TRoD{PWcOX#efXKHPT}&4#jY$)_&8%{y zX(bbRg5Rj)e#)_JlKQhlblN(xZDAIONUrksRJ{_l}?6*mByqk z>`w7DagoQ9`>IH9;dSKwnW@&iM34%V@McQ&xtEfjqs5+Du!z0 zV$Z}CC5>>MHGhuO2zRhr?EE#tmRc+AC5>((9ZBMhMz_&Q4)hv*fL0Q!H2Me@x?oFb z^a=Q+Wzy&~sNY)p(C7=?PN9;e(N{oA)~eARxRS6V&O9{w7BZ8Akw)LQTt!D2JBEx# z$JHquaDCDV^tkWdL^)bbYw#;a8g+)xJQc#{TI#~Hht}Z<1;f5>v^PlY9<(<}?agR! zk=k3)-X^uTqy41R-ifv@wV#3>PtzXA+Y5PX@Z1;5-A}!3eSP#yTi*eCwyp0V^|$p6 z(4mm`Fg+JOpQj_?^96bl&vp1aN-ts5%lLH!E5-0E{6@#F^qlyWPW^#aj?Un}(2!_5 zoyC8#NN42D&74!=6^=GEqmM$psFdqKf_RmocfZ?4HUs${#QV7sAU%h5Q! z2JPDQnNTp?Q8G-?WhKM3g5f76!y9x($?&Fv;b#Q{(c3L+@{V#%t}57mQL??aOt!m9 zHe;D=e<|5!mdWSDx)xFc4Ljsn2NzTaGN)L5^nW2R!${ hZ`H}6>*P~|ZqO}ypFX6I=~L{?&*@A0n!cg${sojrDwF^K literal 0 HcmV?d00001 diff --git a/dpp-backend/digitalproductpass/bin/src/test/java/services/IrsServiceTest.class b/dpp-backend/digitalproductpass/bin/src/test/java/services/IrsServiceTest.class new file mode 100644 index 0000000000000000000000000000000000000000..7ee7cb538ab83f0feb6fbc7ae7a77bccf55a2ed5 GIT binary patch literal 8235 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 literal 0 HcmV?d00001 diff --git a/dpp-backend/digitalproductpass/bin/src/test/java/utils/JsonUtilTest$TestJsonClass.class b/dpp-backend/digitalproductpass/bin/src/test/java/utils/JsonUtilTest$TestJsonClass.class new file mode 100644 index 0000000000000000000000000000000000000000..91077124decb9137b247bb4bfb04aae7fdc6cdb6 GIT binary patch literal 5233 zcmeHLUvnEZ5Z?=K93N?u1`4I&j|hc26zo#^1f?@=Ck*L0h9PO0zH~-8E4Gq5=|*7co=hQ>re||)k9;h`t2Y04@Kkxs9R^G>VFl$TIcld zt|xvQ!1~XbaxxLyYACJTkHvkZwBt@{Wdpd>A^txZoeJZQ5q@FF<4l}zy^THXCqn+A z2X}Q(AaF!Rz>-u>^o2o0qqCj&5wOUO;m1f^>~y4cNNMcKzTz%3$p4xr-aRYvJsNsf zD(UV8@ThqfFoi;E@M4_`cp^wX`R0=Vo>jzbs?an+?IEhB4(|o9a%zYzW3*X<^d#G+HR$f;T+LMtDc^OZ@ejiaeq#K{TRzF=dCW`$_eZyjc6r6OME1GFjm z{DI+#c&^P+86nPp$ce^_#Hk+maxG&B_(i(G6tS4oj5Bwfim3CMSpla90+lGXIEI^- zYoWU3mGG!}YG9som2{=87m-Nm057mfvFN3Ipp6+T#ox8cJ8u1u+0P`P2HgSVV+mh20&$FYJy1t1;q_z5?XzDLBG8%V75-0I9$ zZo)Fm8%>%f+|`+h#P^bBxIA`BTBR>B1hBkKH%7nt1y-q=0kEQ}0=P&Fh}o#NbrUN} zqf@jFUt&>-{?W->hc;GL=;*8i7Lz6lV7b9?{vBy8Rs;4h#Na}gy2$wlZ5@0JxCSh^ zE#h;*w*cYj{U$6U72x9NeF;|l_bOb*QES*=fVc1o&<0oVom1X{ck$01hn2{|MVf909Nn4BKVj4^fT{{31@DU_0hOxY;<=;5v?3fKTBw8jHLFxB;8c UfZP7N2A{(h(1Kg=wa4A~2QYii3;+NC literal 0 HcmV?d00001 diff --git a/dpp-backend/digitalproductpass/bin/src/test/java/utils/JsonUtilTest.class b/dpp-backend/digitalproductpass/bin/src/test/java/utils/JsonUtilTest.class new file mode 100644 index 0000000000000000000000000000000000000000..a57de71940e3afd4f720e18402db65e1b8269bf5 GIT binary patch literal 8055 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:" + dataTransfer: + encrypt: true + indent: true + dir: "data/transfer" + aspects: + - "urn:bamm:io.catenax.generic.digital_product_passport:1.0.0#DigitalProductPassport" + - "urn:bamm:io.catenax.battery.battery_pass:3.0.1#BatteryPass" + + vault: + type: 'local' + file: 'vault.token.yml' + pathSep: "." + prettyPrint: true + indent: 2 + defaultValue: '' + attributes: + - "appId" + - "client.id" + - "client.secret" + - "edc.apiKey" + - "edc.participantId" + +server: + error: + include-message: ALWAYS + include-binding-errors: ALWAYS + include-stacktrace: ON_PARAM + include-exception: false + port: 8888 + tomcat: + max-connections: 10000 diff --git a/dpp-backend/digitalproductpass/bin/src/test/resources/dpp/assets/TestAsset.json b/dpp-backend/digitalproductpass/bin/src/test/resources/dpp/assets/TestAsset.json new file mode 100644 index 000000000..5b9db9c51 --- /dev/null +++ b/dpp-backend/digitalproductpass/bin/src/test/resources/dpp/assets/TestAsset.json @@ -0,0 +1,21 @@ +{ + "@context": {}, + "asset": { + "@type": "data.core.digitalTwinRegistry", + "@id": "digital-twin-registry", + "properties": { + "type": "data.core.digitalTwinRegistry", + "description": "Digital Twin Registry for DPP", + "contenttype": "application/json" + } + }, + "dataAddress": { + "@type": "DataAddress", + "type": "HttpData", + "proxyPath": "true", + "proxyBody": "true", + "proxyMethod": "true", + "proxyQueryParams": "true", + "baseUrl": "https://materialpass.int.demo.catena-x.net/semantics/registry/api/v3.0" + } +} diff --git a/dpp-backend/digitalproductpass/bin/src/test/resources/dpp/catalogs/TestContractOfferCatalog.json b/dpp-backend/digitalproductpass/bin/src/test/resources/dpp/catalogs/TestContractOfferCatalog.json new file mode 100644 index 000000000..2e789f099 --- /dev/null +++ b/dpp-backend/digitalproductpass/bin/src/test/resources/dpp/catalogs/TestContractOfferCatalog.json @@ -0,0 +1,63 @@ +{ + "@id": "c86305ef-e8ee-4163-913c-ce074dfa274f", + "@type": "dcat:Catalog", + "dcat:dataset": { + "@id": "urn:uuid:9992f962-6f69-875d-0ea4-fb4db3bb3b23", + "@type": "dcat:Dataset", + "odrl:hasPolicy": { + "@id": "ZDkxMzRjNmQtNWUzNy03ZDc5LTRkOTEtZmM5MGIzZWVkMzMw:dXJuOnV1aWQ6OTk5MmY5NjItNmY2OS04NzVkLTBlYTQtZmI0ZGIzYmIzYjIz:YjZkMzFkNGYtNGYyNS00MWI1LWFkMzctNjJjY2U4NGI3NjA0", + "@type": "odrl:Set", + "odrl:permission": { + "odrl:target": "urn:uuid:9992f962-6f69-875d-0ea4-fb4db3bb3b23", + "odrl:action": { + "odrl:type": "USE" + }, + "odrl:constraint": { + "odrl:or": { + "odrl:leftOperand": "PURPOSE", + "odrl:operator": { + "@id": "odrl:eq" + }, + "odrl:rightOperand": "ID 3.0 Trace" + } + } + }, + "odrl:prohibition": [], + "odrl:obligation": [], + "odrl:target": "urn:uuid:9992f962-6f69-875d-0ea4-fb4db3bb3b23" + }, + "dcat:distribution": [ + { + "@type": "dcat:Distribution", + "dct:format": { + "@id": "HttpProxy" + }, + "dcat:accessService": "e2a066b3-5a16-45dc-8552-8d96ac787e02" + }, + { + "@type": "dcat:Distribution", + "dct:format": { + "@id": "AmazonS3" + }, + "dcat:accessService": "e2a066b3-5a16-45dc-8552-8d96ac787e02" + } + ], + "description": "batterypass test data", + "id": "urn:uuid:9992f962-6f69-875d-0ea4-fb4db3bb3b23" + }, + "dcat:service": { + "@id": "e2a066b3-5a16-45dc-8552-8d96ac787e02", + "@type": "dcat:DataService", + "dct:terms": "connector", + "dct:endpointUrl": "https://materialpass.int.demo.catena-x.net/BPNL000000000000/api/v1/dsp" + }, + "participantId": "BPNL00000000000", + "@context": { + "dct": "https://purl.org/dc/terms/", + "tx": "https://w3id.org/tractusx/v0.0.1/ns/", + "edc": "https://w3id.org/edc/v0.0.1/ns/", + "dcat": "https://www.w3.org/ns/dcat/", + "odrl": "http://www.w3.org/ns/odrl/2/", + "dspace": "https://w3id.org/dspace/v0.8/" + } +} diff --git a/dpp-backend/digitalproductpass/bin/src/test/resources/dpp/catalogs/TestDigitalTwinCatalog.json b/dpp-backend/digitalproductpass/bin/src/test/resources/dpp/catalogs/TestDigitalTwinCatalog.json new file mode 100644 index 000000000..35ddc1302 --- /dev/null +++ b/dpp-backend/digitalproductpass/bin/src/test/resources/dpp/catalogs/TestDigitalTwinCatalog.json @@ -0,0 +1,51 @@ +{ + "@id": "bb824702-08dc-4315-9ff1-6373330a0cd9", + "@type": "dcat:Catalog", + "dcat:dataset": { + "@id": "registry-asset", + "@type": "dcat:Dataset", + "odrl:hasPolicy": { + "@id": "ZGVmYXVsdC1jb250cmFjdC1kZWZpbml0aW9u:cmVnaXN0cnktYXNzZXQ=:MTIxMjYzMzgtYzhkMC00MGQ4LTkxYWMtZmY2ZTY0ZTQ5ZmM0", + "@type": "odrl:Set", + "odrl:permission": [], + "odrl:prohibition": [], + "odrl:obligation": [], + "odrl:target": "registry-asset" + }, + "dcat:distribution": [ + { + "@type": "dcat:Distribution", + "dct:format": { + "@id": "HttpProxy" + }, + "dcat:accessService": "bc491229-1b41-49a9-9101-a430a4907e6e" + }, + { + "@type": "dcat:Distribution", + "dct:format": { + "@id": "AmazonS3" + }, + "dcat:accessService": "bc491229-1b41-49a9-9101-a430a4907e6e" + } + ], + "type": "data.core.digitalTwinRegistry", + "description": "Digital Twin Registry for DPP", + "id": "registry-asset", + "contenttype": "application/json" + }, + "dcat:service": { + "@id": "bc491229-1b41-49a9-9101-a430a4907e6e", + "@type": "dcat:DataService", + "dct:terms": "connector", + "dct:endpointUrl": "https://materialpass.int.demo.catena-x.net/BPNL000000000000/api/v1/dsp" + }, + "participantId": "BPNL00000000000", + "@context": { + "dct": "https://purl.org/dc/terms/", + "tx": "https://w3id.org/tractusx/v0.0.1/ns/", + "edc": "https://w3id.org/edc/v0.0.1/ns/", + "dcat": "https://www.w3.org/ns/dcat/", + "odrl": "http://www.w3.org/ns/odrl/2/", + "dspace": "https://w3id.org/dspace/v0.8/" + } +} diff --git a/dpp-backend/digitalproductpass/bin/src/test/resources/dpp/contractpolicies/TestPolicy.json b/dpp-backend/digitalproductpass/bin/src/test/resources/dpp/contractpolicies/TestPolicy.json new file mode 100644 index 000000000..460c4f79a --- /dev/null +++ b/dpp-backend/digitalproductpass/bin/src/test/resources/dpp/contractpolicies/TestPolicy.json @@ -0,0 +1,8 @@ +{ + "@id": "ZGVmYXVsdC1jb250cmFjdC1kZWZpbml0aW9u:cmVnaXN0cnktYXNzZXQ=:MTIxMjYzMzgtYzhkMC00MGQ4LTkxYWMtZmY2ZTY0ZTQ5ZmM0", + "@type": "odrl:Set", + "odrl:permission" : [], + "odrl:prohibition": [], + "odrl:obligation": [], + "odrl:target": "registry-asset" +} diff --git a/dpp-backend/digitalproductpass/bin/src/test/resources/dpp/digitaltwins/TestDigitalTwin.json b/dpp-backend/digitalproductpass/bin/src/test/resources/dpp/digitaltwins/TestDigitalTwin.json new file mode 100644 index 000000000..249c717b7 --- /dev/null +++ b/dpp-backend/digitalproductpass/bin/src/test/resources/dpp/digitaltwins/TestDigitalTwin.json @@ -0,0 +1,68 @@ +{ + "description": [ + { + "language": "en", + "text": "Battery Passport shell descriptor" + } + ], + "idShort": "Battery_IMR18650V1", + "id": "365e6fbe-bb34-11ec-8422-0242ac120002", + "specificAssetIds": [ + { + "name": "partInstanceId", + "value": "IMR18650V1", + "externalSubjectId": { + "type": "ExternalReference", + "keys": [ + { + "type": "Submodel", + "value": "" + } + ] + } + } + ], + "submodelDescriptors": [ + { + "endpoints": [ + { + "interface": "SUBMODEL-3.0", + "protocolInformation": { + "href": "https://materialpass.int.demo.catena-x.net/BPNL000000000000/365e6fbe-bb34-11ec-8422-0242ac120002-61125dc3-5e6f-4f4b-838d-447432b97918/submodel", + "endpointProtocol": "HTTP", + "endpointProtocolVersion": [ + "1.1" + ], + "subprotocol": "DSP", + "subprotocolBody": "id=365e6fbe-bb34-11ec-8422-0242ac120002-61125dc3-5e6f-4f4b-838d-447432b97918;dspEndpoint=https://materialpass.int.demo.catena-x.net/BPNL000000000000/", + "subprotocolBodyEncoding": "plain", + "securityAttributes": [ + { + "type": "NONE", + "key": "NONE", + "value": "NONE" + } + ] + } + } + ], + "idShort": "batteryPass", + "id": "61125dc3-5e6f-4f4b-838d-447432b97918", + "semanticId": { + "type": "ExternalReference", + "keys": [ + { + "type": "Submodel", + "value": "urn:bamm:io.catenax.battery.battery_pass:3.0.1#BatteryPass" + } + ] + }, + "description": [ + { + "language": "en", + "text": "Battery Passport Submodel" + } + ] + } + ] +} diff --git a/dpp-backend/digitalproductpass/bin/src/test/resources/dpp/discovery/MockedDiscoveryEndpoints.json b/dpp-backend/digitalproductpass/bin/src/test/resources/dpp/discovery/MockedDiscoveryEndpoints.json new file mode 100644 index 000000000..35c86d01c --- /dev/null +++ b/dpp-backend/digitalproductpass/bin/src/test/resources/dpp/discovery/MockedDiscoveryEndpoints.json @@ -0,0 +1,15 @@ +{ + "endpoints" : [ { + "type" : "manufacturerPartId", + "description" : "Service to discover BPN for different kind of type numbers", + "endpointAddress" : "https://semantics.int.demo.catena-x.net/bpndiscovery", + "documentation" : "https://semantics.int.demo.catena-x.net/bpndiscovery/swagger-ui/index.html", + "resourceId" : "278a9cd3-2201-47d1-8474-a0beb6b6f21b" + }, { + "type" : "bpn", + "description" : "Service to discover connector endpoints based on bpns", + "endpointAddress" : "https://portal-backend.int.demo.catena-x.net/api/administration/Connectors/discovery", + "documentation" : "https://portal-backend.int.demo.catena-x.net/api/administration/swagger/index.html", + "resourceId" : "63739df2-84ce-4309-8d71-5a0f29e789e1" + } ] +} diff --git a/dpp-backend/digitalproductpass/bin/src/test/resources/dpp/irs/TestJobHistory.json b/dpp-backend/digitalproductpass/bin/src/test/resources/dpp/irs/TestJobHistory.json new file mode 100644 index 000000000..48603dd49 --- /dev/null +++ b/dpp-backend/digitalproductpass/bin/src/test/resources/dpp/irs/TestJobHistory.json @@ -0,0 +1,9 @@ +{ + "jobId": "0bbc712b-17a1-4c9d-9c9c-a7fae8082841", + "searchId": "d32b9af47f41dd87d3e3ca77532341ad", + "globalAssetId": "urn:uuid:efcb5f8d-f31c-4b1f-b090-9c878054554d", + "path": "/urn:uuid:efcb5f8d-f31c-4b1f-b090-9c878054554d", + "created": 1699027271226, + "updated": 1699027655138, + "children": 1 +} diff --git a/dpp-backend/digitalproductpass/bin/src/test/resources/dpp/irs/TestJobResponse.json b/dpp-backend/digitalproductpass/bin/src/test/resources/dpp/irs/TestJobResponse.json new file mode 100644 index 000000000..2acb2d76c --- /dev/null +++ b/dpp-backend/digitalproductpass/bin/src/test/resources/dpp/irs/TestJobResponse.json @@ -0,0 +1,292 @@ +{ + "job": { + "id": "0bbc712b-17a1-4c9d-9c9c-a7fae8082841", + "globalAssetId": "urn:uuid:efcb5f8d-f31c-4b1f-b090-9c878054554d", + "state": "COMPLETED", + "exception": null, + "createdOn": "2023-10-23T16:39:11.152183246Z", + "startedOn": "2023-10-23T16:39:11.152314446Z", + "lastModifiedOn": "2023-10-23T16:56:36.951457812Z", + "completedOn": "2023-10-23T16:56:36.951460713Z", + "owner": "sa241", + "summary": { + "asyncFetchedItems": { + "running": 0, + "completed": 2, + "failed": 0 + }, + "bpnLookups": { + "completed": 0, + "failed": 0 + } + }, + "parameter": { + "bomLifecycle": "asBuilt", + "aspects": [ + "SerialPart" + ], + "depth": 1, + "bpn": "BPNL00000000CBA5", + "direction": "downward", + "collectAspects": false, + "lookupBPNs": false, + "callbackUrl": "https://materialpass.int.demo.catena-x.net/api/irs/1eff01dd-80cf-47e9-b2b7-c0b953009da9/dabfe4a4e08a6ce8e4c3b026b1ade235?id=urn:uuid:efcb5f8d-f31c-4b1f-b090-9c878054554d&state=COMPLETED" + } + }, + "relationships": [ + { + "catenaXId": "urn:uuid:efcb5f8d-f31c-4b1f-b090-9c878054554d", + "linkedItem": { + "quantity": { + "quantityNumber": 5.0, + "measurementUnit": { + "datatypeURI": null, + "lexicalValue": "piece" + } + }, + "lifecycleContext": "asBuilt", + "assembledOn": "2023-01-09T17:26:54.709Z", + "lastModifiedOn": "2023-01-09T17:26:54.709Z", + "childCatenaXId": "urn:uuid:d8ec6acc-1ad7-47b4-bc7e-612122d9d552" + }, + "aspectType": "SingleLevelBomAsBuilt", + "bpn": "BPNL00000000CBA5" + } + ], + "shells": [ + { + "administration": null, + "description": [ + { + "language": "en", + "text": "Battery Digital Twin" + } + ], + "globalAssetId": "urn:uuid:efcb5f8d-f31c-4b1f-b090-9c878054554d", + "idShort": "Battery_BAT-XYZ789", + "id": "urn:uuid:3d050cd8-cdc7-4d65-9f37-70a65d5f53f5", + "specificAssetIds": [ + { + "name": "partInstanceId", + "subjectId": null, + "value": "BAT-XYZ789", + "semanticId": null + }, + { + "name": "manufacturerPartId", + "subjectId": null, + "value": "XYZ78901", + "semanticId": null + } + ], + "submodelDescriptors": [ + { + "administration": null, + "description": [], + "idShort": "SerialPart", + "id": "urn:uuid:1ea64f49-8b2b-4cd2-818e-cf9d452c6fea", + "semanticId": { + "keys": [ + { + "value": "urn:bamm:io.catenax.serial_part:1.0.1#SerialPart", + "type": "Submodel" + } + ], + "type": "ExternalReference" + }, + "endpoints": [ + { + "protocolInformation": { + "href": "https://materialpass.int.demo.catena-x.net/BPNL000000000000/api/public/data/urn:uuid:1ea64f49-8b2b-4cd2-818e-cf9d452c6fea" + , + "endpointProtocol": "HTTP", + "endpointProtocolVersion": [ + "1.1" + ], + "subprotocol": "DSP", + "subprotocolBody": "id=urn:uuid:3e4a5957-f226-478a-ab18-79ced49d6195;dspEndpoint=https://materialpass.int.demo.catena-x.net/BPNL000000000000" + , + "subprotocolBodyEncoding": "plain" + }, + "interface": "SUBMODEL-3.0" + } + ] + } + ] + }, + { + "administration": null, + "description": [ + { + "language": "en", + "text": "Battery Module Digital Twin" + } + ], + "globalAssetId": "urn:uuid:d8ec6acc-1ad7-47b4-bc7e-612122d9d552", + "idShort": "BatteryModule_EVMODULE-TRJ712", + "id": "urn:uuid:ace301f6-92c5-4623-a022-c2a30dfee0e2", + "specificAssetIds": [ + { + "name": "partInstanceId", + "subjectId": null, + "value": "EVMODULE-TRJ712", + "semanticId": null + }, + { + "name": "manufacturerPartId", + "subjectId": null, + "value": "XYZ78901", + "semanticId": null + } + ], + "submodelDescriptors": [ + { + "administration": null, + "description": [ + { + "language": "en", + "text": "Digital Product Passport Submodel" + } + ], + "idShort": "singleLevelBomAsBuilt", + "id": "urn:uuid:c216bece-b17f-4679-8b62-ec25810ca1c4", + "semanticId": { + "keys": [ + { + "value": "urn:bamm:io.catenax.single_level_bom_as_built:1.0.0#SingleLevelBomAsBuilt", + "type": "Submodel" + } + ], + "type": "ExternalReference" + }, + "endpoints": [ + { + "protocolInformation": { + "href": "https://materialpass.int.demo.catena-x.net/BPNL000000000000/api/public/data/urn:uuid:c216bece-b17f-4679-8b62-ec25810ca1c4" + , + "endpointProtocol": "HTTP", + "endpointProtocolVersion": [ + "1.1" + ], + "subprotocol": "DSP", + "subprotocolBody": "id=urn:uuid:3e4a5957-f226-478a-ab18-79ced49d6195;dspEndpoint=https://materialpass.int.demo.catena-x.net/BPNL000000000000/" + , + "subprotocolBodyEncoding": "plain" + }, + "interface": "SUBMODEL-3.0" + } + ] + }, + { + "administration": null, + "description": [], + "idShort": "SerialPart", + "id": "urn:uuid:906e5e5e-f9c1-427c-b923-e5f863bc40df", + "semanticId": { + "keys": [ + { + "value": "urn:bamm:io.catenax.serial_part:1.0.1#SerialPart", + "type": "Submodel" + } + ], + "type": "ExternalReference" + }, + "endpoints": [ + { + "protocolInformation": { + "href": "https://materialpass.int.demo.catena-x.net/BPNL000000000000/api/public/data/urn:uuid:906e5e5e-f9c1-427c-b923-e5f863bc40df" + , + "endpointProtocol": "HTTP", + "endpointProtocolVersion": [ + "1.1" + ], + "subprotocol": "DSP", + "subprotocolBody": "id=urn:uuid:3e4a5957-f226-478a-ab18-79ced49d6195;dspEndpoint=https://materialpass.int.demo.catena-x.net/BPNL000000000000" + , + "subprotocolBodyEncoding": "plain" + }, + "interface": "SUBMODEL-3.0" + } + ] + }, + { + "administration": null, + "description": [ + { + "language": "en", + "text": "Digital Product Passport Submodel" + } + ], + "idShort": "digitalProductPass", + "id": "urn:uuid:754b6c6c-d74a-4dd0-a62c-f07959f15332", + "semanticId": { + "keys": [ + { + "value": "urn:bamm:io.catenax.generic.digital_product_passport:1.0.0#DigitalProductPassport", + "type": "Submodel" + } + ], + "type": "ExternalReference" + }, + "endpoints": [ + { + "protocolInformation": { + "href": "https://materialpass.int.demo.catena-x.net/BPNL000000000000/api/public/data/urn:uuid:754b6c6c-d74a-4dd0-a62c-f07959f15332" + , + "endpointProtocol": "HTTP", + "endpointProtocolVersion": [ + "1.1" + ], + "subprotocol": "DSP", + "subprotocolBody": "id=urn:uuid:3e4a5957-f226-478a-ab18-79ced49d6195;dspEndpoint=https://materialpass.int.demo.catena-x.net/BPNL000000000000/" + , + "subprotocolBodyEncoding": "plain" + }, + "interface": "SUBMODEL-3.0" + } + ] + }, + { + "administration": null, + "description": [ + { + "language": "en", + "text": "Digital Product Passport Submodel" + } + ], + "idShort": "SingleLevelUsageAsBuilt", + "id": "urn:uuid:25ea2646-d57f-4b31-97a0-d0d7b3b35d37", + "semanticId": { + "keys": [ + { + "value": "urn:bamm:io.catenax.single_level_usage_as_built:1.0.1#SingleLevelUsageAsBuilt", + "type": "Submodel" + } + ], + "type": "ExternalReference" + }, + "endpoints": [ + { + "protocolInformation": { + "href": "https://materialpass.int.demo.catena-x.net/BPNL000000000000/api/public/data/urn:uuid:25ea2646-d57f-4b31-97a0-d0d7b3b35d37" + , + "endpointProtocol": "HTTP", + "endpointProtocolVersion": [ + "1.1" + ], + "subprotocol": "DSP", + "subprotocolBody": "id=urn:uuid:3e4a5957-f226-478a-ab18-79ced49d6195;dspEndpoint=https://materialpass.int.demo.catena-x.net/BPNL000000000000/" + , + "subprotocolBodyEncoding": "plain" + }, + "interface": "SUBMODEL-3.0" + } + ] + } + ] + } + ], + "tombstones": [], + "submodels": [], + "bpns": [] +} diff --git a/dpp-backend/digitalproductpass/bin/src/test/resources/dpp/irs/TestStartJobResponse.json b/dpp-backend/digitalproductpass/bin/src/test/resources/dpp/irs/TestStartJobResponse.json new file mode 100644 index 000000000..765d9888a --- /dev/null +++ b/dpp-backend/digitalproductpass/bin/src/test/resources/dpp/irs/TestStartJobResponse.json @@ -0,0 +1,3 @@ +{ + "id": "0bbc712b-17a1-4c9d-9c9c-a7fae8082841" +} diff --git a/dpp-backend/digitalproductpass/bin/src/test/resources/dpp/irs/TestTreeDataModel.json b/dpp-backend/digitalproductpass/bin/src/test/resources/dpp/irs/TestTreeDataModel.json new file mode 100644 index 000000000..9cae60431 --- /dev/null +++ b/dpp-backend/digitalproductpass/bin/src/test/resources/dpp/irs/TestTreeDataModel.json @@ -0,0 +1,214 @@ +{ + "urn:uuid:efcb5f8d-f31c-4b1f-b090-9c878054554d" : { + "id" : "urn:uuid:82e78a83-3ddd-64c1-455d-8f7629833f17", + "globalAssetId" : "urn:uuid:efcb5f8d-f31c-4b1f-b090-9c878054554d", + "idShort" : "Battery_BAT-XYZ789", + "searchId" : "CX:XYZ78901:BAT-XYZ789", + "path" : "/urn:uuid:efcb5f8d-f31c-4b1f-b090-9c878054554d", + "digitalTwin" : { + "description" : [ { + "language" : "en", + "text" : "Battery Digital Twin" + } ], + "idShort" : "Battery_BAT-XYZ789", + "globalAssetId" : "urn:uuid:efcb5f8d-f31c-4b1f-b090-9c878054554d", + "displayName" : [ ], + "id" : "urn:uuid:82e78a83-3ddd-64c1-455d-8f7629833f17", + "specificAssetIds" : [ { + "supplementalSemanticIds" : [ ], + "name" : "partInstanceId", + "value" : "BAT-XYZ789", + "externalSubjectId" : { + "type" : "ExternalReference", + "keys" : [ { + "type" : "GlobalReference", + "value" : "BPNL00000000CBA5" + } ] + } + }, { + "supplementalSemanticIds" : [ ], + "name" : "manufacturerPartId", + "value" : "XYZ78901", + "externalSubjectId" : { + "type" : "ExternalReference", + "keys" : [ { + "type" : "GlobalReference", + "value" : "BPNL00000000CBA5" + }, { + "type" : "GlobalReference", + "value" : "PUBLIC_READABLE" + } ] + } + } ], + "submodelDescriptors" : [ { + "description" : [ ], + "idShort" : "singleLevelBomAsBuilt", + "supplementalSemanticId" : [ ], + "id" : "urn:uuid:d02f5568-0ff7-b0d3-1adb-b246b81333bc", + "semanticId" : { + "type" : "ExternalReference", + "keys" : [ { + "type" : "Submodel", + "value" : "urn:bamm:io.catenax.single_level_bom_as_built:1.0.0#SingleLevelBomAsBuilt" + } ] + }, + "endpoints" : [ { + "interface" : "SUBMODEL-3.0", + "protocolInformation" : { + "href" : "https://materialpass.int.demo.catena-x.net/BPNL000000000000/api/public/data/urn:uuid:d02f5568-0ff7-b0d3-1adb-b246b81333bc" + , + "endpointProtocol" : "HTTP", + "subprotocol" : "DSP", + "subprotocolBody" : "id=urn:uuid:1f0aa91b-7978-d8fe-a0c9-20c31928dc68;dspEndpoint=https://materialpass.int.demo.catena-x.net/BPNL000000000000" + , + "subprotocolBodyEncoding" : "plain", + "securityAttributes" : [ { + "type" : "NONE", + "key" : "NONE", + "value" : "NONE" + } ], + "endpointProtocolVersion" : [ "1.1" ] + } + } ] + }, { + "description" : [ { + "language" : "en", + "text" : "Digital Product Passport Submodel" + } ], + "idShort" : "digitalProductPass", + "supplementalSemanticId" : [ ], + "id" : "urn:uuid:f82e3855-3338-33fc-5130-95fec40b805b", + "semanticId" : { + "type" : "ExternalReference", + "keys" : [ { + "type" : "Submodel", + "value" : "urn:bamm:io.catenax.generic.digital_product_passport:1.0.0#DigitalProductPassport" + } ] + }, + "endpoints" : [ { + "interface" : "SUBMODEL-3.0", + "protocolInformation" : { + "href" : "https://materialpass.int.demo.catena-x.net/BPNL000000000000/api/public/data/urn:uuid:f82e3855-3338-33fc-5130-95fec40b805b" + , + "endpointProtocol" : "HTTP", + "subprotocol" : "DSP", + "subprotocolBody" : "id=urn:uuid:1f0aa91b-7978-d8fe-a0c9-20c31928dc68;dspEndpoint=https://materialpass.int.demo.catena-x.net/BPNL000000000000" + , + "subprotocolBodyEncoding" : "plain", + "securityAttributes" : [ { + "type" : "NONE", + "key" : "NONE", + "value" : "NONE" + } ], + "endpointProtocolVersion" : [ "1.1" ] + } + } ] + } ] + }, + "children" : { + "urn:uuid:d8ec6acc-1ad7-47b4-bc7e-612122d9d552" : { + "id" : "urn:uuid:577bb93c-6e6e-a07a-c429-d72b4bc2021d", + "globalAssetId" : "urn:uuid:d8ec6acc-1ad7-47b4-bc7e-612122d9d552", + "idShort" : "Battery_EVMODULE-TRJ712", + "searchId" : "CX:XYZ78901:EVMODULE-TRJ712", + "path" : "/urn:uuid:efcb5f8d-f31c-4b1f-b090-9c878054554d/urn:uuid:d8ec6acc-1ad7-47b4-bc7e-612122d9d552", + "digitalTwin" : { + "description" : [ { + "language" : "en", + "text" : "Battery Module Digital Twin" + } ], + "idShort" : "Battery_EVMODULE-TRJ712", + "globalAssetId" : "urn:uuid:d8ec6acc-1ad7-47b4-bc7e-612122d9d552", + "id" : "urn:uuid:577bb93c-6e6e-a07a-c429-d72b4bc2021d", + "specificAssetIds" : [ { + "name" : "manufacturerPartId", + "value" : "XYZ78901" + }, { + "name" : "partInstanceId", + "value" : "EVMODULE-TRJ712" + } ], + "submodelDescriptors" : [ { + "description" : [ { + "language" : "en", + "text" : "Digital Product Passport Submodel" + } ], + "idShort" : "digitalProductPass", + "id" : "urn:uuid:13a47464-2826-a597-c3ad-6471ac8fb372", + "semanticId" : { + "type" : "ExternalReference", + "keys" : [ { + "type" : "Submodel", + "value" : "urn:bamm:io.catenax.generic.digital_product_passport:1.0.0#DigitalProductPassport" + } ] + }, + "endpoints" : [ { + "interface" : "SUBMODEL-3.0", + "protocolInformation" : { + "href" : "https://materialpass.int.demo.catena-x.net/BPNL000000000000/api/public/data/urn:uuid:13a47464-2826-a597-c3ad-6471ac8fb372" + , + "endpointProtocol" : "HTTP", + "subprotocol" : "DSP", + "subprotocolBody" : "id=urn:uuid:1f0aa91b-7978-d8fe-a0c9-20c31928dc68;dspEndpoint=https://materialpass.int.demo.catena-x.net/BPNL000000000000" + , + "subprotocolBodyEncoding" : "plain", + "endpointProtocolVersion" : [ "1.1" ] + } + } ] + }, { + "description" : [ { + "language" : "en", + "text" : "Digital Product Passport Submodel" + } ], + "idShort" : "SingleLevelUsageAsBuilt", + "id" : "urn:uuid:90a95f5f-c46e-b086-6675-810b2849bc4a", + "semanticId" : { + "type" : "ExternalReference", + "keys" : [ { + "type" : "Submodel", + "value" : "urn:bamm:io.catenax.single_level_usage_as_built:1.0.1#SingleLevelUsageAsBuilt" + } ] + }, + "endpoints" : [ { + "interface" : "SUBMODEL-3.0", + "protocolInformation" : { + "href" : "https://materialpass.int.demo.catena-x.net/BPNL000000000000/api/public/data/urn:uuid:90a95f5f-c46e-b086-6675-810b2849bc4a" + , + "endpointProtocol" : "HTTP", + "subprotocol" : "DSP", + "subprotocolBody" : "id=urn:uuid:1f0aa91b-7978-d8fe-a0c9-20c31928dc68;dspEndpoint=https://materialpass.int.demo.catena-x.net/BPNL000000000000" + , + "subprotocolBodyEncoding" : "plain", + "endpointProtocolVersion" : [ "1.1" ] + } + } ] + }, { + "description" : [ ], + "idShort" : "singleLevelBomAsBuilt", + "id" : "urn:uuid:94184a05-00fc-9db8-24cb-d5c217660a82", + "semanticId" : { + "type" : "ExternalReference", + "keys" : [ { + "type" : "Submodel", + "value" : "urn:bamm:io.catenax.single_level_bom_as_built:1.0.0#SingleLevelBomAsBuilt" + } ] + }, + "endpoints" : [ { + "interface" : "SUBMODEL-3.0", + "protocolInformation" : { + "href" : "https://materialpass.int.demo.catena-x.net/BPNL000000000000/api/public/data/urn:uuid:94184a05-00fc-9db8-24cb-d5c217660a82" + , + "endpointProtocol" : "HTTP", + "subprotocol" : "DSP", + "subprotocolBody" : "id=urn:uuid:1f0aa91b-7978-d8fe-a0c9-20c31928dc68;dspEndpoint=https://materialpass.int.demo.catena-x.net/BPNL000000000000" + , + "subprotocolBodyEncoding" : "plain", + "endpointProtocolVersion" : [ "1.1" ] + } + } ] + } ] + }, + "children" : { } + } + } + } +} diff --git a/dpp-backend/digitalproductpass/bin/src/test/resources/dpp/negotiation/TestResponseInitNegotiation.json b/dpp-backend/digitalproductpass/bin/src/test/resources/dpp/negotiation/TestResponseInitNegotiation.json new file mode 100644 index 000000000..59e633ed5 --- /dev/null +++ b/dpp-backend/digitalproductpass/bin/src/test/resources/dpp/negotiation/TestResponseInitNegotiation.json @@ -0,0 +1,13 @@ +{ + "@type" : "IdResponseDto", + "@id" : "189f4957-0fbe-4d73-b215-977e3303a45e", + "createdAt" : 1699439557127, + "@context" : { + "dct" : "https://purl.org/dc/terms/", + "tx" : "https://w3id.org/tractusx/v0.0.1/ns/", + "edc" : "https://w3id.org/edc/v0.0.1/ns/", + "dcat" : "https://www.w3.org/ns/dcat/", + "odrl" : "http://www.w3.org/ns/odrl/2/", + "dspace" : "https://w3id.org/dspace/v0.8/" + } +} diff --git a/dpp-backend/digitalproductpass/bin/src/test/resources/dpp/negotiation/TestResponseNegotiation.json b/dpp-backend/digitalproductpass/bin/src/test/resources/dpp/negotiation/TestResponseNegotiation.json new file mode 100644 index 000000000..160280758 --- /dev/null +++ b/dpp-backend/digitalproductpass/bin/src/test/resources/dpp/negotiation/TestResponseNegotiation.json @@ -0,0 +1,18 @@ +{ + "@type": "ContractNegotiationDto", + "@id": "189f4957-0fbe-4d73-b215-977e3303a45e", + "type": "CONSUMER", + "protocol": "dataspace-protocol-http", + "state": "FINALIZED", + "counterPartyAddress": "https://materialpass.int.demo.catena-x.net/BPNL000000000000/api/v1/dsp", + "callbackAddresses": [], + "contractAgreementId": "ZGVmYXVsdC1jb250cmFjdC1kZWZpbml0aW9u:cmVnaXN0cnktYXNzZXQ=:NmRjMDFlOTQtMGE0MC00MTQzLThhOTYtY2IyMmYxN2JjZGJj", + "@context": { + "dct": "https://purl.org/dc/terms/", + "tx": "https://w3id.org/tractusx/v0.0.1/ns/", + "edc": "https://w3id.org/edc/v0.0.1/ns/", + "dcat": "https://www.w3.org/ns/dcat/", + "odrl": "http://www.w3.org/ns/odrl/2/", + "dspace": "https://w3id.org/dspace/v0.8/" + } +} diff --git a/dpp-backend/digitalproductpass/bin/src/test/resources/dpp/payloads/TestPassport.json b/dpp-backend/digitalproductpass/bin/src/test/resources/dpp/payloads/TestPassport.json new file mode 100644 index 000000000..3310386e8 --- /dev/null +++ b/dpp-backend/digitalproductpass/bin/src/test/resources/dpp/payloads/TestPassport.json @@ -0,0 +1,248 @@ +{ + "electrochemicalProperties" : { + "ratedCapacity" : 94, + "batteryEnergy" : { + "energyRoundtripEfficiencyChange" : 48.2, + "maximumAllowedBatteryEnergy" : 85000, + "energyRoundtripEfficiency" : 25 + }, + "ratioMaximumAllowedBatteryPowerAndMaximumAllowedBatteryEnergy" : 0.588, + "batteryVoltage" : { + "nominalVoltage" : 3.7, + "maxVoltage" : 4.2, + "minVoltage" : 2.5 + }, + "internalResistance" : { + "cellinternalResistance" : 0.36, + "packinternalResistanceIncrease" : 1, + "packinternalResistance" : 100 + }, + "capacityThresholdExhaustion" : 23, + "batteryPower" : { + "powerFade" : 23, + "originalPowerCapability" : -1.7976931348623157E308, + "originalPowerCapabilityLimits" : -1.7976931348623157E308, + "maximumAllowedBatteryPower" : -1.7976931348623157E308, + "powerCapabilityAt20Charge" : -1.7976931348623157E308, + "powerCapabilityAt80Charge" : -1.7976931348623157E308 + }, + "capacityFade" : 1.55 + }, + "document" : { + "responsibleSourcing" : [ { + "title" : "2021 Responsible Sourcing document", + "fileLocation" : null + } ], + "packagingInstructions" : [ { + "title" : "Packing Instruction v.2.0", + "fileLocation" : null + } ], + "transportationInstructions" : [ { + "title" : "Transport manual", + "fileLocation" : null + } ], + "vehicleDismantlingProcedure" : [ { + "title" : "Car dismantling manual", + "fileLocation" : "http://www.ietf.org/rfc/rfc2396.txt" + } ], + "testReportsResults" : [ { + "title" : "Battery Test Reports", + "fileLocation" : "http://www.Batterytestreports.de" + } ], + "batteryDismantlingProcedure" : [ { + "title" : "Dismantling Manual", + "fileLocation" : "http://www.dissmantlingmanual.org" + } ], + "safetyMeasures" : [ { + "title" : "Safety Instruction", + "fileLocation" : "http://www.safetyinstructions.txt" + } ], + "declarationOfConformity" : [ { + "title" : "Declaration of Conformity No. 3", + "fileLocation" : null + } ] + }, + "datePlacedOnMarket" : "27.04.2022", + "cellChemistry" : { + "electrolyteComposition" : [ { + "materialPercentageMassFraction" : null, + "materialWeight" : null, + "materialName" : "dimethyl carbonate (DCM)" + } ], + "anodeCompositionOther" : [ { + "materialPercentageMassFraction" : null, + "materialWeight" : null, + "materialName" : "Carboxymethyl cellulose" + } ], + "recyclateContentActiveMaterials" : [ { + "materialPercentageMassFraction" : 6, + "materialWeight" : null, + "materialName" : "Ni/2021/PlantE" + }, { + "materialPercentageMassFraction" : 4, + "materialWeight" : null, + "materialName" : "Li/2021/PlantE" + }, { + "materialPercentageMassFraction" : 0, + "materialWeight" : null, + "materialName" : "Pb(battery model does not contain Pb)" + }, { + "materialPercentageMassFraction" : 0, + "materialWeight" : null, + "materialName" : "Co(battery model does not contain Pb)" + } ], + "anodeActiveMaterials" : [ { + "materialPercentageMassFraction" : null, + "materialWeight" : null, + "materialName" : "Graphite" + } ], + "cathodeActiveMaterials" : [ { + "materialPercentageMassFraction" : null, + "materialWeight" : null, + "materialName" : "LiMn2O4 Lithium Manganese Oxide" + } ], + "cathodeCompositionOther" : [ { + "materialPercentageMassFraction" : null, + "materialWeight" : null, + "materialName" : "binder:PVDF" + } ] + }, + "physicalDimensions" : { + "length" : 2000, + "width" : 1000, + "weight" : 3500, + "diameter" : null, + "height" : 200 + }, + "temperatureRangeIdleState" : { + "temperatureRangeIdleStateUpperLimit" : 50, + "temperatureRangeIdleStateLowerLimit" : -20 + }, + "batteryCycleLife" : { + "cycleLifeTestCRate" : 2, + "cycleLifeTestDepthOfDischarge" : 1.8, + "expectedLifetime" : 2500 + }, + "manufacturer" : { + "name" : "CompanyE", + "contact" : { + "faxNumber" : "+49 89 0987654324", + "website" : "https://www.CompanyE.com", + "phoneNumber" : "+49 89 1234567893", + "email" : "companyE@company.com" + }, + "address" : { + "locality" : { + "value" : "CityE", + "technicalKey" : "BLOCK" + }, + "country" : { + "shortName" : "Germany" + }, + "postCode" : { + "value" : "65-250E", + "technicalKey" : "CEDEX" + }, + "thoroughfare" : { + "value" : "StreetE", + "number" : "1", + "technicalKey" : "STREET" + }, + "premise" : { + "value" : null, + "technicalKey" : "BUILDING" + }, + "postalDeliveryPoint" : { + "value" : null, + "technicalKey" : "intERURBAN_DELIVERY_POint" + } + } + }, + "warrantyPeriod" : "96", + "composition" : { + "compositionOfBattery" : [ { + "materialPercentageMassFraction" : null, + "materialWeight" : null, + "materialName" : "Separator: PE" + } ], + "criticalRawMaterials" : "Lithium, Natural graphite", + "components" : { + "componentsPartNumber" : "Voltage cables", + "componentsSupplier" : [ { + "componentsSupplierName" : "AB Corporation", + "address" : { + "locality" : { + "value" : "CityF", + "technicalKey" : "BLOCK" + }, + "country" : { + "shortName" : "Germany" + }, + "postCode" : { + "value" : "65-250F", + "technicalKey" : "CEDEX" + }, + "thoroughfare" : { + "value" : "StreetF", + "number" : "1", + "technicalKey" : "STREET" + }, + "premise" : { + "value" : "PlantF", + "technicalKey" : "BUILDING" + }, + "postalDeliveryPoint" : { + "value" : null, + "technicalKey" : "INTERURBAN_DELIVERY_POINT" + } + }, + "contact" : { + "faxNumber" : "+49 89 0987654324", + "website" : "https://www.companyF.com", + "phoneNumber" : "+49 89 1234567893", + "email" : "companyF@companyF.com" + } + } ] + } + }, + "manufacturing" : { + "dateOfManufacturing" : "2022-01-24", + "address" : { + "locality" : { + "value" : "CityE", + "technicalKey" : "BLOCK" + }, + "country" : { + "shortName" : "Germany" + }, + "postCode" : { + "value" : "65-250E", + "technicalKey" : "CEDEX" + }, + "thoroughfare" : { + "value" : "StreetE", + "number" : "1", + "technicalKey" : "STREET" + }, + "premise" : { + "value" : "PlantE", + "technicalKey" : "BUILDING" + }, + "postalDeliveryPoint" : { + "value" : "GateE", + "technicalKey" : "INTERURBAN_DELIVERY_POINT" + } + } + }, + "batteryIdentification" : { + "batteryType" : "Lithium-Manganese-Oxide (LMO)", + "batteryIDDMCCode" : "IMR18650V1", + "batteryModel" : "Pi4 Orionis" + }, + "stateOfBattery" : { + "stateOfHealth" : 20, + "statusBattery" : "first life", + "stateOfCharge" : 50 + }, + "cO2FootprintTotal" : 210 + } diff --git a/dpp-backend/digitalproductpass/bin/src/test/resources/dpp/token/MockedToken.json b/dpp-backend/digitalproductpass/bin/src/test/resources/dpp/token/MockedToken.json new file mode 100644 index 000000000..5ce80313f --- /dev/null +++ b/dpp-backend/digitalproductpass/bin/src/test/resources/dpp/token/MockedToken.json @@ -0,0 +1,9 @@ +{ + "access_token" : "eyJhbGciOiJSUzI1NiIsInR5cCIgOiAiSldUIiwia2lkIiA6ICJIVUgzYjZrMzZvbFNQVTRDRTRaMVUxUjhVeHg4eFQwS3p4QXdLb3NkVk1VIn0.eyJleHAiOjE3MDEyNDYxNjMsImlhdCI6MTcwMTI0NTg2MywianRpIjoiNTEyNDNmOTAtNzk5MC00YTNkLWFkYjAtNDVhOWVkZmJhMGIzIiwiaXNzIjoiaHR0cHM6Ly9jZW50cmFsaWRwLmludC5kZW1vLmNhdGVuYS14Lm5ldC9hdXRoL3JlYWxtcy9DWC1DZW50cmFsIiwiYXVkIjpbIkNsMjItQ1gtQlBORCIsIkNsMjEtQ1gtREYiLCJ0ZWNobmljYWxfcm9sZXNfbWFuYWdlbWVudCIsIkNsNS1DWC1DdXN0b2RpYW4iLCJDbDItQ1gtUG9ydGFsIiwiYWNjb3VudCIsIkNsMy1DWC1TZW1hbnRpYyJdLCJzdWIiOiJlMzk2MmFiMi00MWQ2LTQ3NmUtODMwZS1jYzhkMjZjM2VjMzkiLCJ0eXAiOiJCZWFyZXIiLCJhenAiOiJzYTI0MSIsImFsbG93ZWQtb3JpZ2lucyI6WyJodHRwczovL251bGwiXSwicmVhbG1fYWNjZXNzIjp7InJvbGVzIjpbIm9mZmxpbmVfYWNjZXNzIiwiZGVmYXVsdC1yb2xlcy1jYXRlbmEteCByZWFsbSIsInVtYV9hdXRob3JpemF0aW9uIl19LCJyZXNvdXJjZV9hY2Nlc3MiOnsiQ2wyMi1DWC1CUE5EIjp7InJvbGVzIjpbInZpZXdfYnBuX2Rpc2NvdmVyeSIsImRlbGV0ZV9icG5fZGlzY292ZXJ5IiwiYWRkX2Jwbl9kaXNjb3ZlcnkiXX0sIkNsMjEtQ1gtREYiOnsicm9sZXMiOlsidmlld19kaXNjb3ZlcnlfZW5kcG9pbnQiXX0sInRlY2huaWNhbF9yb2xlc19tYW5hZ2VtZW50Ijp7InJvbGVzIjpbIkRhdGFzcGFjZSBEaXNjb3ZlcnkiLCJTZW1hbnRpYyBNb2RlbCBNYW5hZ2VtZW50IiwiQ1ggTWVtYmVyc2hpcCBJbmZvIl19LCJDbDUtQ1gtQ3VzdG9kaWFuIjp7InJvbGVzIjpbInZpZXdfd2FsbGV0Il19LCJDbDItQ1gtUG9ydGFsIjp7InJvbGVzIjpbInZpZXdfY29ubmVjdG9ycyIsInZpZXdfbWVtYmVyc2hpcCJdfSwiYWNjb3VudCI6eyJyb2xlcyI6WyJtYW5hZ2UtYWNjb3VudCIsIm1hbmFnZS1hY2NvdW50LWxpbmtzIiwidmlldy1wcm9maWxlIl19LCJDbDMtQ1gtU2VtYW50aWMiOnsicm9sZXMiOlsidmlld19zZW1hbnRpY19tb2RlbCJdfX0sInNjb3BlIjoib3BlbmlkIHByb2ZpbGUgZW1haWwiLCJicG4iOiJCUE5MMDAwMDAwMDBDQkE1IiwiY2xpZW50SG9zdCI6IjEwLjI0MC4wLjQiLCJjbGllbnRJZCI6InNhMjQxIiwiZW1haWxfdmVyaWZpZWQiOmZhbHNlLCJwcmVmZXJyZWRfdXNlcm5hbWUiOiJzZXJ2aWNlLWFjY291bnQtc2EyNDEiLCJjbGllbnRBZGRyZXNzIjoiMTAuMjQwLjAuNCJ9.VKHzxWS8myBybtwNNcsZ2dnn5D899a4y9zi2uuHPyuC4FOC0vpUXH620qOak84oy1tlSu8hg9m5qLmrPg1D3_YJHPEi7Q1eGOaCWN9R6JQ4PQQbCgsi3q2GLWm5eRtLR-4CE3MCrNp_8-tqz9oiTARO5r4LY6YcLkIydtOwncTm3hzGUqwl6VlCb3birih2xyvyANqptr52-odBjxvqaTwSTqBBH_FEJQvxrFt8gl3rkgf4tBYbltCbDsvWZt3qkAK_RhRsO6AJOPL8vIU1_tsHGwaULIAzkWH_zYgo_rgyrjTrUIE8PXLJPpJ1bk6zwKtfmFYqGTxGsMEaBC1QfgQ", + "expires_in" : 300, + "refresh_expires_in" : 0, + "token_type" : "Bearer", + "id_token" : "eyJhbGciOiJSUzI1NiIsInR5cCIgOiAiSldUIiwia2lkIiA6ICJIVUgzYjZrMzZvbFNQVTRDRTRaMVUxUjhVeHg4eFQwS3p4QXdLb3NkVk1VIn0.eyJleHAiOjE3MDEyNDYxNjMsImlhdCI6MTcwMTI0NTg2MywiYXV0aF90aW1lIjowLCJqdGkiOiI2MGEyMWExMS0yZTM5LTQ1NWQtYmE5Yy02NjMxOGI5MTNlNTQiLCJpc3MiOiJodHRwczovL2NlbnRyYWxpZHAuaW50LmRlbW8uY2F0ZW5hLXgubmV0L2F1dGgvcmVhbG1zL0NYLUNlbnRyYWwiLCJhdWQiOiJzYTI0MSIsInN1YiI6ImUzOTYyYWIyLTQxZDYtNDc2ZS04MzBlLWNjOGQyNmMzZWMzOSIsInR5cCI6IklEIiwiYXpwIjoic2EyNDEiLCJhdF9oYXNoIjoiTmpESGRUUHpJbzZ4ZnlxYV9oQ1UwUSIsImJwbiI6IkJQTkwwMDAwMDAwMENCQTUiLCJjbGllbnRIb3N0IjoiMTAuMjQwLjAuNCIsImNsaWVudElkIjoic2EyNDEiLCJlbWFpbF92ZXJpZmllZCI6ZmFsc2UsInByZWZlcnJlZF91c2VybmFtZSI6InNlcnZpY2UtYWNjb3VudC1zYTI0MSIsImNsaWVudEFkZHJlc3MiOiIxMC4yNDAuMC40In0.cv3LbOCHCzUhGh7GBr7nP2oBpYqUWCjBoAtgOLVjPdOJMFUIUggDXoRQMOGJCi9iyOqkrrkMcIXkMxxq8UI3FqmKzwAvGE3XOPniOvgA9JlHthQyX6QY4Sdifw1u9tVxHr-s_sHMss2iNYmxICRQLj08vfzbw41x0YG07hRIE6V7QwVCTxgXehbyJaKuPTiRk6T6npERHFUxKQZF3W_2wObvYqYzhlfOvWK04pZs1jQHyEQ_6QqtIsFc-fg7TBwgBvm2K40zr_-AmxG-Q6S9upckedj8GFCevUWs-k9BnaXhYV0zoIMPw7V-FD3XzmvP9wsGVhkBDYUwC_g0-o55ow", + "not-before-policy" : "1660280763", + "scope" : "openid profile email" +} diff --git a/dpp-backend/digitalproductpass/bin/src/test/resources/dpp/token/MockedUserInfo.json b/dpp-backend/digitalproductpass/bin/src/test/resources/dpp/token/MockedUserInfo.json new file mode 100644 index 000000000..90ed0fdec --- /dev/null +++ b/dpp-backend/digitalproductpass/bin/src/test/resources/dpp/token/MockedUserInfo.json @@ -0,0 +1,5 @@ +{ + "sub" : "e3962ab2-41d6-476e-830e-cc8d26c3ec39", + "email_verified" : "false", + "preferred_username" : "service-account-sa241" +} diff --git a/dpp-backend/digitalproductpass/bin/src/test/resources/dpp/transfer/TestResponseInitTransfer.json b/dpp-backend/digitalproductpass/bin/src/test/resources/dpp/transfer/TestResponseInitTransfer.json new file mode 100644 index 000000000..d2ff5e87a --- /dev/null +++ b/dpp-backend/digitalproductpass/bin/src/test/resources/dpp/transfer/TestResponseInitTransfer.json @@ -0,0 +1,13 @@ +{ + "@type": "IdResponseDto", + "@id": "9ab72e5b-f2d4-4f60-85e6-0985f9b6b579", + "createdAt": 1699439575484, + "@context": { + "dct": "https://purl.org/dc/terms/", + "tx": "https://w3id.org/tractusx/v0.0.1/ns/", + "edc": "https://w3id.org/edc/v0.0.1/ns/", + "dcat": "https://www.w3.org/ns/dcat/", + "odrl": "http://www.w3.org/ns/odrl/2/", + "dspace": "https://w3id.org/dspace/v0.8/" + } +} diff --git a/dpp-backend/digitalproductpass/bin/src/test/resources/dpp/transfer/TestResponseTransfer.json b/dpp-backend/digitalproductpass/bin/src/test/resources/dpp/transfer/TestResponseTransfer.json new file mode 100644 index 000000000..76385f5ab --- /dev/null +++ b/dpp-backend/digitalproductpass/bin/src/test/resources/dpp/transfer/TestResponseTransfer.json @@ -0,0 +1,27 @@ +{ + "@id": "9ab72e5b-f2d4-4f60-85e6-0985f9b6b579", + "@type": "TransferProcessDto", + "state": "COMPLETED", + "stateTimestamp": 1699439577253, + "type": "CONSUMER", + "callbackAddresses": [], + "dataDestination": { + "type": "HttpProxy" + }, + "dataRequest": { + "@type": "DataRequestDto", + "@id": "9ab72e5b-f2d4-4f60-85e6-0985f9b6b579", + "assetId": "365e6fbe-bb34-11ec-8422-0242ac120002-61125dc3-5e6f-4f4b-838d-447432b97918", + "contractId": "ZGVmYXVsdC1jb250cmFjdC1kZWZpbml0aW9u:cmVnaXN0cnktYXNzZXQ=:NmRjMDFlOTQtMGE0MC00MTQzLThhOTYtY2IyMmYxN2JjZGJj", + "connectorId": "BPNL00000000CBA5" + }, + "receiverHttpEndpoint": "https://testUrl.com/BPNL000000000000/endpoint/ebc08cdc-fc22-41e8-9394-81142de0b35a/365e6fbe-bb34-11ec-8422-0242ac120002-61125dc3-5e6f-4f4b-838d-447432b97918", + "@context": { + "dct": "https://purl.org/dc/terms/", + "tx": "https://w3id.org/tractusx/v0.0.1/ns/", + "edc": "https://w3id.org/edc/v0.0.1/ns/", + "dcat": "https://www.w3.org/ns/dcat/", + "odrl": "http://www.w3.org/ns/odrl/2/", + "dspace": "https://w3id.org/dspace/v0.8/" + } +} diff --git a/dpp-backend/digitalproductpass/docs/tests/UNIT_TESTS.md b/dpp-backend/digitalproductpass/docs/tests/UNIT_TESTS.md index 883f524f1..580dbc15f 100644 --- a/dpp-backend/digitalproductpass/docs/tests/UNIT_TESTS.md +++ b/dpp-backend/digitalproductpass/docs/tests/UNIT_TESTS.md @@ -1,7 +1,8 @@