From 49ed063e74b51efce8c18da38d928aaf43d90368 Mon Sep 17 00:00:00 2001 From: Christos Tranoris Date: Mon, 6 Nov 2023 13:42:47 +0200 Subject: [PATCH] Initial commit (cherry picked from commit 59898a6044cbda7de6b997133c9a3ee098abab40) --- .asciidoctorconfig.adoc | 12 + .gitignore | 6 + .readthedocs.yaml | 17 + LICENSE | 201 ++ README.md | 90 +- ReleaseNotes.txt | 20 + compose/.gitignore | 3 + compose/deploy.sh | 57 + compose/docker-compose-develop.yaml | 124 + compose/docker-compose.yaml.configure | 354 +++ compose/docker-compose2.yaml | 345 +++ compose/docker-images-build.sh | 29 + compose/keycloak-init/.gitignore | 3 + compose/keycloak-init/realm-export.json | 2221 +++++++++++++++++ compose/mysql-init/01-databases.sql | 12 + compose/nginx/.gitignore | 1 + compose/nginx/certificates/readme.txt | 3 + compose/nginx/nginx.conf.default | 122 + compose/readme.txt | 109 + doc/alarms_actions.md | 113 + doc/architecture/architecture.md | 49 + doc/architecture/centrallog.md | 5 + .../consumingServicesFromExternalPartners.md | 185 ++ doc/architecture/issuemgt.md | 7 + doc/architecture/messagebus.md | 816 ++++++ doc/architecture/nfvapi.md | 207 ++ doc/architecture/nfvweb.md | 11 + doc/architecture/oauth.md | 35 + doc/architecture/osom.md | 137 + doc/architecture/tmfapi.md | 65 + doc/architecture/tmfweb.md | 39 + doc/catalogs.md | 147 ++ doc/contributing/developing.md | 89 + doc/contributing/wishlist.md | 59 + doc/deployment.md | 541 ++++ doc/eclipse-java-google-style.xml | 337 +++ .../LocalServiceOrchestrationProcess.png | Bin 0 -> 12862 bytes doc/images/NFVODeploymentReq_process.png | Bin 0 -> 12176 bytes .../action_rule_exampleday2.png | Bin 0 -> 55861 bytes doc/images/alarms_actions/day2actionspec.png | Bin 0 -> 31430 bytes doc/images/architecture.png | Bin 0 -> 144661 bytes doc/images/architecture_ 2019-10-24.png | Bin 0 -> 59740 bytes doc/images/check_inProgress_orders.png | Bin 0 -> 6638 bytes doc/images/externalSPDeploymentReq.png | Bin 0 -> 16880 bytes doc/images/fetchPartnerServices.png | Bin 0 -> 8710 bytes doc/images/index_intro_architecture.png | Bin 0 -> 51604 bytes doc/images/issue_management.png | Bin 0 -> 370606 bytes doc/images/lcm/lcmfig1.png | Bin 0 -> 76349 bytes doc/images/lcm/lcmfig10.png | Bin 0 -> 272557 bytes doc/images/lcm/lcmfig11.png | Bin 0 -> 237734 bytes doc/images/lcm/lcmfig12.png | Bin 0 -> 204041 bytes doc/images/lcm/lcmfig13.png | Bin 0 -> 148965 bytes doc/images/lcm/lcmfig14.png | Bin 0 -> 241902 bytes doc/images/lcm/lcmfig1_osom.png | Bin 0 -> 155874 bytes doc/images/lcm/lcmfig2.png | Bin 0 -> 152349 bytes doc/images/lcm/lcmfig3.png | Bin 0 -> 229148 bytes doc/images/lcm/lcmfig4.png | Bin 0 -> 326155 bytes doc/images/lcm/lcmfig5.png | Bin 0 -> 316998 bytes doc/images/lcm/lcmfig6.png | Bin 0 -> 334548 bytes doc/images/lcm/lcmfig7.png | Bin 0 -> 368898 bytes doc/images/lcm/lcmfig8.png | Bin 0 -> 363933 bytes doc/images/lcm/lcmfig9.png | Bin 0 -> 517967 bytes .../microservices_network_deployment.png | Bin 0 -> 29664 bytes doc/images/multi-domain-architecture.png | Bin 0 -> 38454 bytes doc/images/multi-domain-organizations.png | Bin 0 -> 46055 bytes doc/images/openslice_logo.png | Bin 0 -> 29968 bytes doc/images/order_scheduler_bpm.png | Bin 0 -> 9538 bytes doc/images/order_scheduler_diagram.png | Bin 0 -> 47271 bytes doc/images/osm_ecosystem_ossbss.png | Bin 0 -> 24020 bytes doc/images/service_order_initial_state.png | Bin 0 -> 19892 bytes doc/images/service_order_states.png | Bin 0 -> 361013 bytes .../service_specification_instantiation.png | Bin 0 -> 116625 bytes doc/images/service_states.png | Bin 0 -> 76920 bytes doc/images/start_order_process_bpm.png | Bin 0 -> 26237 bytes doc/images/start_order_process_diagram.png | Bin 0 -> 176345 bytes doc/images/vinni_sb_model_diagram.png | Bin 0 -> 49778 bytes doc/index.md | 127 + doc/lcm.md | 158 ++ doc/lcmrules_main.pu | 24 + doc/nfvcatalogs.md | 42 + doc/nfvoconfig.md | 19 + doc/service_inventory.md | 39 + doc/so_ServiceCreationProcess.pu | 106 + doc/so_activity_main.pu | 48 + kubernetes/helm/README.md | 26 + kubernetes/helm/openslice/.helmignore | 23 + kubernetes/helm/openslice/Chart.yaml | 23 + .../helm/openslice/files/realm-export.json | 2221 +++++++++++++++++ .../helm/openslice/templates/_helpers.tpl | 62 + .../helm/openslice/templates/artemis.yaml | 69 + .../helm/openslice/templates/blockdiag.yaml | 54 + .../helm/openslice/templates/bugzilla.yaml | 65 + .../helm/openslice/templates/centrallog.yaml | 64 + .../openslice/templates/keycloak-config.yaml | 13 + .../helm/openslice/templates/keycloak.yaml | 97 + .../helm/openslice/templates/kroki.yaml | 57 + .../helm/openslice/templates/manoclient.yaml | 63 + .../openslice/templates/mysql-config.yaml | 23 + .../openslice/templates/mysql-pv-pvc.yaml | 39 + .../helm/openslice/templates/mysql.yaml | 87 + .../openslice/templates/oasapi-pv-pvc.yaml | 39 + .../helm/openslice/templates/oasapi.yaml | 94 + .../templates/openslice-ingress.yaml | 56 + .../helm/openslice/templates/osom-pv-pvc.yaml | 39 + kubernetes/helm/openslice/templates/osom.yaml | 70 + .../templates/osportalapi-pv-pvc.yaml | 39 + .../helm/openslice/templates/osportalapi.yaml | 91 + .../openslice/templates/osscapi-pv-pvc.yaml | 39 + .../helm/openslice/templates/osscapi.yaml | 96 + .../templates/portalweb-config-nginx.yaml | 36 + .../openslice/templates/portalweb-config.yaml | 13 + .../helm/openslice/templates/portalweb.yaml | 69 + .../templates/tmfweb-config-nginx.yaml | 36 + .../openslice/templates/tmfweb-config.yaml | 52 + .../helm/openslice/templates/tmfweb.yaml | 68 + kubernetes/helm/openslice/values.yaml | 178 ++ kubernetes/k8sdeploy.sh | 65 + kubernetes/k8sremove.sh | 45 + kubernetes/template/README.md | 4 + kubernetes/template/artemis.yaml | 54 + kubernetes/template/blockdiag.yaml | 38 + kubernetes/template/bugzilla.yaml | 49 + kubernetes/template/centrallog.yaml | 48 + kubernetes/template/keycloak.yaml | 82 + kubernetes/template/kroki.yaml | 41 + kubernetes/template/manoclient.yaml | 47 + kubernetes/template/mysql-config.yaml | 18 + kubernetes/template/mysql-pv-pvc.yaml | 31 + kubernetes/template/mysql.yaml | 69 + kubernetes/template/oasapi-pv-pvc.yaml | 31 + kubernetes/template/oasapi.yaml | 79 + kubernetes/template/openslice-ingress.yaml | 52 + kubernetes/template/osom-pv-pvc.yaml | 31 + kubernetes/template/osom.yaml | 56 + kubernetes/template/osportalapi-pv-pvc.yaml | 31 + kubernetes/template/osportalapi.yaml | 76 + kubernetes/template/osscapi-pv-pvc.yaml | 31 + kubernetes/template/osscapi.yaml | 81 + .../template/portalweb-config-nginx.yaml | 31 + kubernetes/template/portalweb-config.yaml | 8 + kubernetes/template/portalweb.yaml | 54 + kubernetes/template/realm-export.json | 2221 +++++++++++++++++ kubernetes/template/tmfweb-config-nginx.yaml | 31 + kubernetes/template/tmfweb-config.yaml | 47 + kubernetes/template/tmfweb.yaml | 53 + mkdocs.yml | 76 + openslice-install.sh | 149 ++ pom.xml | 119 + 148 files changed, 14894 insertions(+), 89 deletions(-) create mode 100644 .asciidoctorconfig.adoc create mode 100644 .gitignore create mode 100644 .readthedocs.yaml create mode 100644 LICENSE create mode 100644 ReleaseNotes.txt create mode 100644 compose/.gitignore create mode 100644 compose/deploy.sh create mode 100644 compose/docker-compose-develop.yaml create mode 100644 compose/docker-compose.yaml.configure create mode 100644 compose/docker-compose2.yaml create mode 100644 compose/docker-images-build.sh create mode 100644 compose/keycloak-init/.gitignore create mode 100644 compose/keycloak-init/realm-export.json create mode 100644 compose/mysql-init/01-databases.sql create mode 100644 compose/nginx/.gitignore create mode 100644 compose/nginx/certificates/readme.txt create mode 100644 compose/nginx/nginx.conf.default create mode 100644 compose/readme.txt create mode 100644 doc/alarms_actions.md create mode 100644 doc/architecture/architecture.md create mode 100644 doc/architecture/centrallog.md create mode 100644 doc/architecture/consumingServicesFromExternalPartners.md create mode 100644 doc/architecture/issuemgt.md create mode 100644 doc/architecture/messagebus.md create mode 100644 doc/architecture/nfvapi.md create mode 100644 doc/architecture/nfvweb.md create mode 100644 doc/architecture/oauth.md create mode 100644 doc/architecture/osom.md create mode 100644 doc/architecture/tmfapi.md create mode 100644 doc/architecture/tmfweb.md create mode 100644 doc/catalogs.md create mode 100644 doc/contributing/developing.md create mode 100644 doc/contributing/wishlist.md create mode 100644 doc/deployment.md create mode 100644 doc/eclipse-java-google-style.xml create mode 100644 doc/images/LocalServiceOrchestrationProcess.png create mode 100644 doc/images/NFVODeploymentReq_process.png create mode 100644 doc/images/alarms_actions/action_rule_exampleday2.png create mode 100644 doc/images/alarms_actions/day2actionspec.png create mode 100644 doc/images/architecture.png create mode 100644 doc/images/architecture_ 2019-10-24.png create mode 100644 doc/images/check_inProgress_orders.png create mode 100644 doc/images/externalSPDeploymentReq.png create mode 100644 doc/images/fetchPartnerServices.png create mode 100644 doc/images/index_intro_architecture.png create mode 100644 doc/images/issue_management.png create mode 100644 doc/images/lcm/lcmfig1.png create mode 100644 doc/images/lcm/lcmfig10.png create mode 100644 doc/images/lcm/lcmfig11.png create mode 100644 doc/images/lcm/lcmfig12.png create mode 100644 doc/images/lcm/lcmfig13.png create mode 100644 doc/images/lcm/lcmfig14.png create mode 100644 doc/images/lcm/lcmfig1_osom.png create mode 100644 doc/images/lcm/lcmfig2.png create mode 100644 doc/images/lcm/lcmfig3.png create mode 100644 doc/images/lcm/lcmfig4.png create mode 100644 doc/images/lcm/lcmfig5.png create mode 100644 doc/images/lcm/lcmfig6.png create mode 100644 doc/images/lcm/lcmfig7.png create mode 100644 doc/images/lcm/lcmfig8.png create mode 100644 doc/images/lcm/lcmfig9.png create mode 100644 doc/images/microservices_network_deployment.png create mode 100644 doc/images/multi-domain-architecture.png create mode 100644 doc/images/multi-domain-organizations.png create mode 100644 doc/images/openslice_logo.png create mode 100644 doc/images/order_scheduler_bpm.png create mode 100644 doc/images/order_scheduler_diagram.png create mode 100644 doc/images/osm_ecosystem_ossbss.png create mode 100644 doc/images/service_order_initial_state.png create mode 100644 doc/images/service_order_states.png create mode 100644 doc/images/service_specification_instantiation.png create mode 100644 doc/images/service_states.png create mode 100644 doc/images/start_order_process_bpm.png create mode 100644 doc/images/start_order_process_diagram.png create mode 100644 doc/images/vinni_sb_model_diagram.png create mode 100644 doc/index.md create mode 100644 doc/lcm.md create mode 100644 doc/lcmrules_main.pu create mode 100644 doc/nfvcatalogs.md create mode 100644 doc/nfvoconfig.md create mode 100644 doc/service_inventory.md create mode 100644 doc/so_ServiceCreationProcess.pu create mode 100644 doc/so_activity_main.pu create mode 100644 kubernetes/helm/README.md create mode 100644 kubernetes/helm/openslice/.helmignore create mode 100644 kubernetes/helm/openslice/Chart.yaml create mode 100644 kubernetes/helm/openslice/files/realm-export.json create mode 100644 kubernetes/helm/openslice/templates/_helpers.tpl create mode 100644 kubernetes/helm/openslice/templates/artemis.yaml create mode 100644 kubernetes/helm/openslice/templates/blockdiag.yaml create mode 100644 kubernetes/helm/openslice/templates/bugzilla.yaml create mode 100644 kubernetes/helm/openslice/templates/centrallog.yaml create mode 100644 kubernetes/helm/openslice/templates/keycloak-config.yaml create mode 100644 kubernetes/helm/openslice/templates/keycloak.yaml create mode 100644 kubernetes/helm/openslice/templates/kroki.yaml create mode 100644 kubernetes/helm/openslice/templates/manoclient.yaml create mode 100644 kubernetes/helm/openslice/templates/mysql-config.yaml create mode 100644 kubernetes/helm/openslice/templates/mysql-pv-pvc.yaml create mode 100644 kubernetes/helm/openslice/templates/mysql.yaml create mode 100644 kubernetes/helm/openslice/templates/oasapi-pv-pvc.yaml create mode 100644 kubernetes/helm/openslice/templates/oasapi.yaml create mode 100644 kubernetes/helm/openslice/templates/openslice-ingress.yaml create mode 100644 kubernetes/helm/openslice/templates/osom-pv-pvc.yaml create mode 100644 kubernetes/helm/openslice/templates/osom.yaml create mode 100644 kubernetes/helm/openslice/templates/osportalapi-pv-pvc.yaml create mode 100644 kubernetes/helm/openslice/templates/osportalapi.yaml create mode 100644 kubernetes/helm/openslice/templates/osscapi-pv-pvc.yaml create mode 100644 kubernetes/helm/openslice/templates/osscapi.yaml create mode 100644 kubernetes/helm/openslice/templates/portalweb-config-nginx.yaml create mode 100644 kubernetes/helm/openslice/templates/portalweb-config.yaml create mode 100644 kubernetes/helm/openslice/templates/portalweb.yaml create mode 100644 kubernetes/helm/openslice/templates/tmfweb-config-nginx.yaml create mode 100644 kubernetes/helm/openslice/templates/tmfweb-config.yaml create mode 100644 kubernetes/helm/openslice/templates/tmfweb.yaml create mode 100644 kubernetes/helm/openslice/values.yaml create mode 100644 kubernetes/k8sdeploy.sh create mode 100644 kubernetes/k8sremove.sh create mode 100644 kubernetes/template/README.md create mode 100644 kubernetes/template/artemis.yaml create mode 100644 kubernetes/template/blockdiag.yaml create mode 100644 kubernetes/template/bugzilla.yaml create mode 100644 kubernetes/template/centrallog.yaml create mode 100644 kubernetes/template/keycloak.yaml create mode 100644 kubernetes/template/kroki.yaml create mode 100644 kubernetes/template/manoclient.yaml create mode 100644 kubernetes/template/mysql-config.yaml create mode 100644 kubernetes/template/mysql-pv-pvc.yaml create mode 100644 kubernetes/template/mysql.yaml create mode 100644 kubernetes/template/oasapi-pv-pvc.yaml create mode 100644 kubernetes/template/oasapi.yaml create mode 100644 kubernetes/template/openslice-ingress.yaml create mode 100644 kubernetes/template/osom-pv-pvc.yaml create mode 100644 kubernetes/template/osom.yaml create mode 100644 kubernetes/template/osportalapi-pv-pvc.yaml create mode 100644 kubernetes/template/osportalapi.yaml create mode 100644 kubernetes/template/osscapi-pv-pvc.yaml create mode 100644 kubernetes/template/osscapi.yaml create mode 100644 kubernetes/template/portalweb-config-nginx.yaml create mode 100644 kubernetes/template/portalweb-config.yaml create mode 100644 kubernetes/template/portalweb.yaml create mode 100644 kubernetes/template/realm-export.json create mode 100644 kubernetes/template/tmfweb-config-nginx.yaml create mode 100644 kubernetes/template/tmfweb-config.yaml create mode 100644 kubernetes/template/tmfweb.yaml create mode 100644 mkdocs.yml create mode 100644 openslice-install.sh create mode 100644 pom.xml diff --git a/.asciidoctorconfig.adoc b/.asciidoctorconfig.adoc new file mode 100644 index 0000000..d3cddb7 --- /dev/null +++ b/.asciidoctorconfig.adoc @@ -0,0 +1,12 @@ +// +++++++++++++++++++++++++++++++++++++++++++++++++++++++ +// + Initial AsciiDoc editor configuration file - V1.0 + +// ++++++++++++++++++++++++++++++++++++++++++++++++++++++ +// +// Did not find any configuration files, so creating this at project root level. +// If you do not like those files to be generated - you can turn it off inside Asciidoctor Editor preferences. +// +// You can define editor specific parts here. +// For example: with next line you could set imagesdir attribute to subfolder "images" relative to the folder where this config file is located. +// :imagesdir: {asciidoctorconfigdir}/images +// +// For more information please take a look at https://github.com/de-jcup/eclipse-asciidoctor-editor/wiki/Asciidoctor-configfiles diff --git a/.gitignore b/.gitignore new file mode 100644 index 0000000..01d35d6 --- /dev/null +++ b/.gitignore @@ -0,0 +1,6 @@ +/target/ +/kubernetes/_apply +.project +.classpath +/.settings + diff --git a/.readthedocs.yaml b/.readthedocs.yaml new file mode 100644 index 0000000..0908fe3 --- /dev/null +++ b/.readthedocs.yaml @@ -0,0 +1,17 @@ +# .readthedocs.yaml +# Read the Docs configuration file +# See https://docs.readthedocs.io/en/stable/config-file/v2.html for details + +# Required +version: 2 + +# Set the version of Python and other tools you might need +build: + os: ubuntu-22.04 + tools: + python: "3.12" + +# Build documentation in the doc/ directory with mkdocs +mkdocs: + configuration: mkdocs.yml + fail_on_warning: false \ No newline at end of file diff --git a/LICENSE b/LICENSE new file mode 100644 index 0000000..261eeb9 --- /dev/null +++ b/LICENSE @@ -0,0 +1,201 @@ + Apache License + Version 2.0, January 2004 + http://www.apache.org/licenses/ + + TERMS AND CONDITIONS FOR USE, REPRODUCTION, AND DISTRIBUTION + + 1. Definitions. + + "License" shall mean the terms and conditions for use, reproduction, + and distribution as defined by Sections 1 through 9 of this document. + + "Licensor" shall mean the copyright owner or entity authorized by + the copyright owner that is granting the License. + + "Legal Entity" shall mean the union of the acting entity and all + other entities that control, are controlled by, or are under common + control with that entity. For the purposes of this definition, + "control" means (i) the power, direct or indirect, to cause the + direction or management of such entity, whether by contract or + otherwise, or (ii) ownership of fifty percent (50%) or more of the + outstanding shares, or (iii) beneficial ownership of such entity. + + "You" (or "Your") shall mean an individual or Legal Entity + exercising permissions granted by this License. + + "Source" form shall mean the preferred form for making modifications, + including but not limited to software source code, documentation + source, and configuration files. + + "Object" form shall mean any form resulting from mechanical + transformation or translation of a Source form, including but + not limited to compiled object code, generated documentation, + and conversions to other media types. + + "Work" shall mean the work of authorship, whether in Source or + Object form, made available under the License, as indicated by a + copyright notice that is included in or attached to the work + (an example is provided in the Appendix below). + + "Derivative Works" shall mean any work, whether in Source or Object + form, that is based on (or derived from) the Work and for which the + editorial revisions, annotations, elaborations, or other modifications + represent, as a whole, an original work of authorship. For the purposes + of this License, Derivative Works shall not include works that remain + separable from, or merely link (or bind by name) to the interfaces of, + the Work and Derivative Works thereof. + + "Contribution" shall mean any work of authorship, including + the original version of the Work and any modifications or additions + to that Work or Derivative Works thereof, that is intentionally + submitted to Licensor for inclusion in the Work by the copyright owner + or by an individual or Legal Entity authorized to submit on behalf of + the copyright owner. For the purposes of this definition, "submitted" + means any form of electronic, verbal, or written communication sent + to the Licensor or its representatives, including but not limited to + communication on electronic mailing lists, source code control systems, + and issue tracking systems that are managed by, or on behalf of, the + Licensor for the purpose of discussing and improving the Work, but + excluding communication that is conspicuously marked or otherwise + designated in writing by the copyright owner as "Not a Contribution." + + "Contributor" shall mean Licensor and any individual or Legal Entity + on behalf of whom a Contribution has been received by Licensor and + subsequently incorporated within the Work. + + 2. Grant of Copyright License. Subject to the terms and conditions of + this License, each Contributor hereby grants to You a perpetual, + worldwide, non-exclusive, no-charge, royalty-free, irrevocable + copyright license to reproduce, prepare Derivative Works of, + publicly display, publicly perform, sublicense, and distribute the + Work and such Derivative Works in Source or Object form. + + 3. Grant of Patent License. Subject to the terms and conditions of + this License, each Contributor hereby grants to You a perpetual, + worldwide, non-exclusive, no-charge, royalty-free, irrevocable + (except as stated in this section) patent license to make, have made, + use, offer to sell, sell, import, and otherwise transfer the Work, + where such license applies only to those patent claims licensable + by such Contributor that are necessarily infringed by their + Contribution(s) alone or by combination of their Contribution(s) + with the Work to which such Contribution(s) was submitted. If You + institute patent litigation against any entity (including a + cross-claim or counterclaim in a lawsuit) alleging that the Work + or a Contribution incorporated within the Work constitutes direct + or contributory patent infringement, then any patent licenses + granted to You under this License for that Work shall terminate + as of the date such litigation is filed. + + 4. Redistribution. You may reproduce and distribute copies of the + Work or Derivative Works thereof in any medium, with or without + modifications, and in Source or Object form, provided that You + meet the following conditions: + + (a) You must give any other recipients of the Work or + Derivative Works a copy of this License; and + + (b) You must cause any modified files to carry prominent notices + stating that You changed the files; and + + (c) You must retain, in the Source form of any Derivative Works + that You distribute, all copyright, patent, trademark, and + attribution notices from the Source form of the Work, + excluding those notices that do not pertain to any part of + the Derivative Works; and + + (d) If the Work includes a "NOTICE" text file as part of its + distribution, then any Derivative Works that You distribute must + include a readable copy of the attribution notices contained + within such NOTICE file, excluding those notices that do not + pertain to any part of the Derivative Works, in at least one + of the following places: within a NOTICE text file distributed + as part of the Derivative Works; within the Source form or + documentation, if provided along with the Derivative Works; or, + within a display generated by the Derivative Works, if and + wherever such third-party notices normally appear. The contents + of the NOTICE file are for informational purposes only and + do not modify the License. You may add Your own attribution + notices within Derivative Works that You distribute, alongside + or as an addendum to the NOTICE text from the Work, provided + that such additional attribution notices cannot be construed + as modifying the License. + + You may add Your own copyright statement to Your modifications and + may provide additional or different license terms and conditions + for use, reproduction, or distribution of Your modifications, or + for any such Derivative Works as a whole, provided Your use, + reproduction, and distribution of the Work otherwise complies with + the conditions stated in this License. + + 5. Submission of Contributions. Unless You explicitly state otherwise, + any Contribution intentionally submitted for inclusion in the Work + by You to the Licensor shall be under the terms and conditions of + this License, without any additional terms or conditions. + Notwithstanding the above, nothing herein shall supersede or modify + the terms of any separate license agreement you may have executed + with Licensor regarding such Contributions. + + 6. Trademarks. This License does not grant permission to use the trade + names, trademarks, service marks, or product names of the Licensor, + except as required for reasonable and customary use in describing the + origin of the Work and reproducing the content of the NOTICE file. + + 7. Disclaimer of Warranty. Unless required by applicable law or + agreed to in writing, Licensor provides the Work (and each + Contributor provides its Contributions) on an "AS IS" BASIS, + WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or + implied, including, without limitation, any warranties or conditions + of TITLE, NON-INFRINGEMENT, MERCHANTABILITY, or FITNESS FOR A + PARTICULAR PURPOSE. You are solely responsible for determining the + appropriateness of using or redistributing the Work and assume any + risks associated with Your exercise of permissions under this License. + + 8. Limitation of Liability. In no event and under no legal theory, + whether in tort (including negligence), contract, or otherwise, + unless required by applicable law (such as deliberate and grossly + negligent acts) or agreed to in writing, shall any Contributor be + liable to You for damages, including any direct, indirect, special, + incidental, or consequential damages of any character arising as a + result of this License or out of the use or inability to use the + Work (including but not limited to damages for loss of goodwill, + work stoppage, computer failure or malfunction, or any and all + other commercial damages or losses), even if such Contributor + has been advised of the possibility of such damages. + + 9. Accepting Warranty or Additional Liability. While redistributing + the Work or Derivative Works thereof, You may choose to offer, + and charge a fee for, acceptance of support, warranty, indemnity, + or other liability obligations and/or rights consistent with this + License. However, in accepting such obligations, You may act only + on Your own behalf and on Your sole responsibility, not on behalf + of any other Contributor, and only if You agree to indemnify, + defend, and hold each Contributor harmless for any liability + incurred by, or claims asserted against, such Contributor by reason + of your accepting any such warranty or additional liability. + + END OF TERMS AND CONDITIONS + + APPENDIX: How to apply the Apache License to your work. + + To apply the Apache License to your work, attach the following + boilerplate notice, with the fields enclosed by brackets "[]" + replaced with your own identifying information. (Don't include + the brackets!) The text should be enclosed in the appropriate + comment syntax for the file format. We also recommend that a + file or class name and description of purpose be included on the + same "printed page" as the copyright notice for easier + identification within third-party archives. + + Copyright [yyyy] [name of copyright owner] + + Licensed under the Apache License, Version 2.0 (the "License"); + you may not use this file except in compliance with the License. + You may obtain a copy of the License at + + http://www.apache.org/licenses/LICENSE-2.0 + + Unless required by applicable law or agreed to in writing, software + distributed under the License is distributed on an "AS IS" BASIS, + WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + See the License for the specific language governing permissions and + limitations under the License. diff --git a/README.md b/README.md index 96af080..71f8e6c 100644 --- a/README.md +++ b/README.md @@ -1,92 +1,4 @@ # org.etsi.osl.main +Main parent project used to install openslice - -## Getting started - -To make it easy for you to get started with GitLab, here's a list of recommended next steps. - -Already a pro? Just edit this README.md and make it your own. Want to make it easy? [Use the template at the bottom](#editing-this-readme)! - -## Add your files - -- [ ] [Create](https://docs.gitlab.com/ee/user/project/repository/web_editor.html#create-a-file) or [upload](https://docs.gitlab.com/ee/user/project/repository/web_editor.html#upload-a-file) files -- [ ] [Add files using the command line](https://docs.gitlab.com/ee/gitlab-basics/add-file.html#add-a-file-using-the-command-line) or push an existing Git repository with the following command: - -``` -cd existing_repo -git remote add origin https://labs.etsi.org/rep/osl/code/org.etsi.osl.main.git -git branch -M main -git push -uf origin main -``` - -## Integrate with your tools - -- [ ] [Set up project integrations](https://labs.etsi.org/rep/osl/code/org.etsi.osl.main/-/settings/integrations) - -## Collaborate with your team - -- [ ] [Invite team members and collaborators](https://docs.gitlab.com/ee/user/project/members/) -- [ ] [Create a new merge request](https://docs.gitlab.com/ee/user/project/merge_requests/creating_merge_requests.html) -- [ ] [Automatically close issues from merge requests](https://docs.gitlab.com/ee/user/project/issues/managing_issues.html#closing-issues-automatically) -- [ ] [Enable merge request approvals](https://docs.gitlab.com/ee/user/project/merge_requests/approvals/) -- [ ] [Automatically merge when pipeline succeeds](https://docs.gitlab.com/ee/user/project/merge_requests/merge_when_pipeline_succeeds.html) - -## Test and Deploy - -Use the built-in continuous integration in GitLab. - -- [ ] [Get started with GitLab CI/CD](https://docs.gitlab.com/ee/ci/quick_start/index.html) -- [ ] [Analyze your code for known vulnerabilities with Static Application Security Testing(SAST)](https://docs.gitlab.com/ee/user/application_security/sast/) -- [ ] [Deploy to Kubernetes, Amazon EC2, or Amazon ECS using Auto Deploy](https://docs.gitlab.com/ee/topics/autodevops/requirements.html) -- [ ] [Use pull-based deployments for improved Kubernetes management](https://docs.gitlab.com/ee/user/clusters/agent/) -- [ ] [Set up protected environments](https://docs.gitlab.com/ee/ci/environments/protected_environments.html) - -*** - -# Editing this README - -When you're ready to make this README your own, just edit this file and use the handy template below (or feel free to structure it however you want - this is just a starting point!). Thank you to [makeareadme.com](https://www.makeareadme.com/) for this template. - -## Suggestions for a good README -Every project is different, so consider which of these sections apply to yours. The sections used in the template are suggestions for most open source projects. Also keep in mind that while a README can be too long and detailed, too long is better than too short. If you think your README is too long, consider utilizing another form of documentation rather than cutting out information. - -## Name -Choose a self-explaining name for your project. - -## Description -Let people know what your project can do specifically. Provide context and add a link to any reference visitors might be unfamiliar with. A list of Features or a Background subsection can also be added here. If there are alternatives to your project, this is a good place to list differentiating factors. - -## Badges -On some READMEs, you may see small images that convey metadata, such as whether or not all the tests are passing for the project. You can use Shields to add some to your README. Many services also have instructions for adding a badge. - -## Visuals -Depending on what you are making, it can be a good idea to include screenshots or even a video (you'll frequently see GIFs rather than actual videos). Tools like ttygif can help, but check out Asciinema for a more sophisticated method. - -## Installation -Within a particular ecosystem, there may be a common way of installing things, such as using Yarn, NuGet, or Homebrew. However, consider the possibility that whoever is reading your README is a novice and would like more guidance. Listing specific steps helps remove ambiguity and gets people to using your project as quickly as possible. If it only runs in a specific context like a particular programming language version or operating system or has dependencies that have to be installed manually, also add a Requirements subsection. - -## Usage -Use examples liberally, and show the expected output if you can. It's helpful to have inline the smallest example of usage that you can demonstrate, while providing links to more sophisticated examples if they are too long to reasonably include in the README. - -## Support -Tell people where they can go to for help. It can be any combination of an issue tracker, a chat room, an email address, etc. - -## Roadmap -If you have ideas for releases in the future, it is a good idea to list them in the README. - -## Contributing -State if you are open to contributions and what your requirements are for accepting them. - -For people who want to make changes to your project, it's helpful to have some documentation on how to get started. Perhaps there is a script that they should run or some environment variables that they need to set. Make these steps explicit. These instructions could also be useful to your future self. - -You can also document commands to lint the code or run tests. These steps help to ensure high code quality and reduce the likelihood that the changes inadvertently break something. Having instructions for running tests is especially helpful if it requires external setup, such as starting a Selenium server for testing in a browser. - -## Authors and acknowledgment -Show your appreciation to those who have contributed to the project. - -## License -For open source projects, say how it is licensed. - -## Project status -If you have run out of energy or time for your project, put a note at the top of the README saying that development has slowed down or stopped completely. Someone may choose to fork your project or volunteer to step in as a maintainer or owner, allowing your project to keep going. You can also make an explicit request for maintainers. diff --git a/ReleaseNotes.txt b/ReleaseNotes.txt new file mode 100644 index 0000000..abb990f --- /dev/null +++ b/ReleaseNotes.txt @@ -0,0 +1,20 @@ +Q3 2023 1.2.0-SNAPSHOT + +Upgraded to java17 and SpingBoot3 +Upgraded from ActiveMQ to Artemis + +Upgrade Keycloak to 16 + +backup your previous database if necessary: +sudo docker exec amysql /usr/bin/mysqldump -u root --password=letmein ostmfdb > backup_ostmfdb.sql +restore your previous database: +cat backup_ostmfdb.sql | docker exec -i amysql /usr/bin/mysql -u root --password=letmein ostmfdb + + +Q3 2021 + +- There have been some minor changes in the databases. THerefore some older artifacts might be deleted. Especially RFS relationships +- The CONFIG attribute of RFSs must be renamed to OSM_CONFIG. OSM_CONFIG includes now the json configuration to pass to OSM when creating NSDs +- Edit your docker-compose.yaml and add oasapi section. Edit the oasapi section according to your needs (db password, keycloak etc) +- Edit your /openslice/org.etsi.osl.tmf.web/dist/io-openslice-portal-web/assets/config/config.prod.json with the new API endpoints. Please consult the config.prod.default.json +- Edit nginx.conf to add the new oas-api diff --git a/compose/.gitignore b/compose/.gitignore new file mode 100644 index 0000000..3645699 --- /dev/null +++ b/compose/.gitignore @@ -0,0 +1,3 @@ +/repo/ +/docker-compose.yaml +/mysql/ diff --git a/compose/deploy.sh b/compose/deploy.sh new file mode 100644 index 0000000..3654912 --- /dev/null +++ b/compose/deploy.sh @@ -0,0 +1,57 @@ +#!/bin/sh + +dirlocation=`pwd`/. +# If no argument is provided, use "main" as the default value +default_branch="main" +branch="${1:-$default_branch}" + +echo "Selected branch: $branch" +echo "We're working with $dirlocation" +cd $dirlocation + + +updaterepo(){ + cd $dirlocation + echo "Build " $1 + if [ ! -d $1 ]; then + git clone https://labs.etsi.org/rep/osl/code/$1.git + fi + + cd $1/ + git checkout $branch + git pull +} + + +updaterepo org.etsi.osl.main +updaterepo org.etsi.osl.sol005nbi.osm +updaterepo org.etsi.osl.sol005nbi.osm10 +updaterepo org.etsi.osl.centrallog.client +updaterepo org.etsi.osl.centrallog.service +updaterepo org.etsi.osl.model +updaterepo org.etsi.osl.portal.api +updaterepo org.etsi.osl.gateway.api +updaterepo org.etsi.osl.mano +updaterepo org.etsi.osl.bugzilla +updaterepo org.etsi.osl.osom +updaterepo org.etsi.osl.oas +updaterepo org.etsi.osl.portal.web +updaterepo org.etsi.osl.tmf.api +updaterepo org.etsi.osl.tmf.web + +cd $dirlocation +docker run -it --rm -v "/home/ubuntu/.m2":/root/.m2 -v "$(pwd)":/opt/maven -w /opt/maven/org.etsi.osl.main maven:3.9.3-ibm-semeru-17-focal mvn clean verify -DskipTests + + + +cd $dirlocation/org.etsi.osl.tmf.web + +if [ ! -f "./src/assets/config/theming.scss" ]; then + cp ./src/assets/config/theming.default.scss ./src/assets/config/theming.scss +fi +if [ ! -f "./src/assets/config/config.prod.json" ]; then + cp ./src/assets/config/config.prod.default.json ./src/assets/config/config.prod.json +fi + +docker run -u 0 --rm -v "$PWD":/app trion/ng-cli:14.2.6 npm install +docker run -u 0 --rm -v "$PWD":/app trion/ng-cli:14.2.6 ng build --configuration production --deleteOutputPath=false diff --git a/compose/docker-compose-develop.yaml b/compose/docker-compose-develop.yaml new file mode 100644 index 0000000..417c032 --- /dev/null +++ b/compose/docker-compose-develop.yaml @@ -0,0 +1,124 @@ +version: '3.4' +services: + + artemis: + container_name: anartemis + image: apache/activemq-artemis:2.30.0 + restart: always + ports: + - 8161:8161 + - 61616:61616 + - 61613:61613 + volumes: + - /var/log/activemq:/var/log/activemq + networks: + - back + + + nginx: + container_name: anginx + image: nginx + restart: always + ports: + - 80:80 + - 443:443 + volumes: + - ./nginx/nginx.conf:/etc/nginx/nginx.conf + - ./nginx/certificates:/etc/nginx/certificates + - ../../org.etsi.osl.portal.web/src:/webstatic/nfvportal + - ../../org.etsi.osl.tmf.web/dist/io-openslice-portal-web:/webstatic/services + networks: + - front + + mysql-portal: + container_name: amysql + image: mysql:5.7 + environment: + MYSQL_ROOT_PASSWORD: letmein + MYSQL_DATABASE: osdb + MYSQL_USER: portaluser + MYSQL_PASSWORD: 12345 + MYSQL_ROOT_HOST: "%" + ports: + - "3306:3306" + volumes: + - ./mysql/data:/var/lib/mysql + - ./mysql-init:/docker-entrypoint-initdb.d + restart: always + networks: + - back + + keycloak: + image: jboss/keycloak:13.0.1 + container_name: akeycloak + restart: always + environment: + DB_VENDOR: MYSQL + DB_ADDR: amysql + DB_DATABASE: keycloak + DB_USER: keycloak + DB_PASSWORD: password + KEYCLOAK_USER: admin + KEYCLOAK_PASSWORD: Pa55w0rd + JDBC_PARAMS: "useSSL=false" + # Uncomment the line below if you want to specify JDBC parameters. The parameter below is just an example, and it shouldn't be used in production without knowledge. It is highly recommended that you read the MySQL JDBC driver documentation in order to use it. + #JDBC_PARAMS: "connectTimeout=30000" + JAVA_OPTS: "-server -Xms512m -Xmx2048m -XX:MetaspaceSize=96M -XX:MaxMetaspaceSize=256m -XX:+UseAdaptiveSizePolicy -XX:MaxMetaspaceSize=1024m -Djava.net.preferIPv4Stack=true -Djboss.as.management.blocking.timeout=3600" + KEYCLOAK_IMPORT: /tmp/realm-export.json + PROXY_ADDRESS_FORWARDING: "true" + volumes: + - ./keycloak-init:/tmp + ports: + - 8080:8080 + - 8443:8443 + depends_on: + - mysql-portal + networks: + - front + - back + + portainer: + container_name: portainer + image: portainer/portainer-ce:2.18.4 + restart: always + networks: + - front + ports: + - 9000:9000 + volumes: + - /var/run/docker.sock:/var/run/docker.sock + - portainer_data:/data + + + kroki: + image: yuzutech/kroki + restart: always + depends_on: + - blockdiag + environment: + - KROKI_BLOCKDIAG_HOST=blockdiag + ports: + - "8000:8000" + + blockdiag: + image: yuzutech/kroki-blockdiag + expose: + - "8001" + + +networks: + front: + driver: bridge + driver_opts: + com.docker.network.driver.mtu: 1450 + back: + driver: bridge + driver_opts: + com.docker.network.driver.mtu: 1450 + + +volumes: + portainer_data: + + # "spring.cloud.consul.discovery.healthCheckUrl=http://abugzilla:8080/status" + #openzipkin/zipkin diff --git a/compose/docker-compose.yaml.configure b/compose/docker-compose.yaml.configure new file mode 100644 index 0000000..60f7a76 --- /dev/null +++ b/compose/docker-compose.yaml.configure @@ -0,0 +1,354 @@ +version: '3.4' +services: + + artemis: + container_name: anartemis + image: apache/activemq-artemis:2.30.0 + restart: always + profiles: ["dev", "prod"] + ports: + - 8161:8161 + - 61616:61616 + - 61613:61613 + volumes: + - /var/log/activemq:/var/log/activemq + networks: + - back + + nginx: + container_name: anginx + image: nginx + restart: always + profiles: ["dev", "prod"] + ports: + - 80:80 + - 443:443 + volumes: + - ./nginx/nginx.conf:/etc/nginx/nginx.conf + - ./nginx/certificates:/etc/nginx/certificates + - ../../org.etsi.osl.portal.web/src:/webstatic/nfvportal + - ../../org.etsi.osl.tmf.web/dist/io-openslice-portal-web:/webstatic/services + networks: + - front + + mysql-portal: + container_name: amysql + restart: always + image: mysql:5.7.43 + profiles: ["dev", "prod"] + environment: + MYSQL_ROOT_PASSWORD: letmein +# MYSQL_DATABASE: osdb +# MYSQL_USER: portaluser +# MYSQL_PASSWORD: 12345 + MYSQL_ROOT_HOST: "%" + ports: + - "13306:3306" + volumes: + - ~/mysql/data:/var/lib/mysql + - ./mysql-init:/docker-entrypoint-initdb.d + networks: + - back + + keycloak: + container_name: keycloak + image: jboss/keycloak:16.1.1 + restart: always + profiles: ["dev", "prod"] + environment: + DB_VENDOR: MYSQL + DB_ADDR: amysql + DB_DATABASE: keycloak + DB_USER: keycloak + DB_PASSWORD: password + KEYCLOAK_USER: admin + KEYCLOAK_PASSWORD: Pa55w0rd + JDBC_PARAMS: "useSSL=false" + JAVA_OPTS: "-server -Xms512m -Xmx2048m -XX:MetaspaceSize=96M -XX:MaxMetaspaceSize=256m -XX:+UseAdaptiveSizePolicy -XX:MaxMetaspaceSize=1024m -Djava.net.preferIPv4Stack=true -Djboss.as.management.blocking.timeout=3600" + KEYCLOAK_IMPORT: /tmp/realm-export.json + PROXY_ADDRESS_FORWARDING: "true" + volumes: + - ./keycloak-init:/tmp + ports: + - 8080:8080 + - 8443:8443 + depends_on: + - mysql-portal + networks: + - front + - back + + + osportalapi: + container_name: openslice-portalapi + restart: always + profiles: ["prod"] + build: + context: ../../org.etsi.osl.portal.api/ + dockerfile: Dockerfile.portalapi + image: org.etsi.osl.portal.api:latest + environment: + SPRING_APPLICATION_JSON: '{ + "spring.datasource.url": "jdbc:mysql://amysql/osdb?createDatabaseIfNotExist=true", + "spring.datasource.username":"root", + "spring.datasource.password":"letmein", + "spring-addons.issuers[0].uri": "http://keycloak:8080/auth/realms/openslice", + "spring-addons.issuers[0].username-json-path":"$.preferred_username", + "spring-addons.issuers[0].claims[0].jsonPath":"$.realm_access.roles", + "spring-addons.issuers[0].claims[1].jsonPath":"$.resource_access.*.roles", + "spring.security.oauth2.resourceserver.jwt.issuer-uri": "http://keycloak:8080/auth/realms/openslice", + "springdoc.oAuthFlow.authorizationUrl": "http://keycloak:8080/auth/realms/openslice/protocol/openid-connect/auth", + "springdoc.oAuthFlow.tokenUrl": "http://keycloak:8080/auth/realms/openslice/protocol/openid-connect/token", + "springdoc.oauth.client-id" : "osapiWebClientId", + "springdoc.oauth.clientsecret" : "secret", + "spring.activemq.brokerUrl": "tcp://anartemis:61616?jms.watchTopicAdvisories=false", + "spring.activemq.user": "artemis", + "spring.activemq.password": "artemis", + "logging.level.org.springframework" : "INFO", + "spring.portal.main.domain": "http://localhost", + "spring.portal.portal.title": "Openslice" + }' + logging: + driver: "json-file" + options: + max-size: "1g" + max-file: "3" + volumes: + - ./repo:/root + ports: + - 13000:13000 + networks: + - front + - back + depends_on: + - mysql-portal + + + manoclient: + container_name: manoclient + restart: always + profiles: ["prod"] + build: + context: ../../org.etsi.osl.mano/ + dockerfile: Dockerfile.mano + image: org.etsi.osl.mano:latest + environment: + SPRING_APPLICATION_JSON: '{ + "spring.activemq.brokerUrl": "tcp://anartemis:61616?jms.watchTopicAdvisories=false", + "spring.activemq.user": "artemis", + "spring.activemq.password": "artemis", + "logging.level.org.springframework" : "INFO" + }' + logging: + driver: "json-file" + options: + max-size: "1g" + max-file: "3" + ports: + - 13011:13011 + networks: + - back + + + bugzilla: + container_name: abugzilla + restart: always + profiles: ["prod"] + build: + context: ../../org.etsi.osl.bugzilla/ + dockerfile: Dockerfile.bugzilla + image: org.etsi.osl.bugzilla:latest + environment: + SPRING_APPLICATION_JSON: '{ + "spring.activemq.brokerUrl": "tcp://anartemis:61616?jms.watchTopicAdvisories=false", + "spring.activemq.user": "artemis", + "spring.activemq.password": "artemis", + "bugzillaurl":"", + "bugzillakey":"", + "main_operations_product":"" + }' + ports: + - 13010:13010 + networks: + - front + - back + + + + + osscapi: + container_name: openslice-scapi + restart: always + profiles: ["prod"] + build: + context: ../../org.etsi.osl.tmf.api/ + dockerfile: Dockerfile.tmfapi + image: org.etsi.osl.tmf.api:latest + environment: + SPRING_APPLICATION_JSON: '{ + "spring.datasource.url": "jdbc:mysql://amysql/ostmfdb?createDatabaseIfNotExist=true&useUnicode=true&characterEncoding=utf8&useJDBCCompliantTimezoneShift=true&useLegacyDatetimeCode=false&serverTimezone=UTC", + "spring.datasource.username":"root", + "spring.datasource.password":"letmein", + "spring-addons.issuers[0].uri": "http://keycloak:8080/auth/realms/openslice", + "spring-addons.issuers[0].username-json-path":"$.preferred_username", + "spring-addons.issuers[0].claims[0].jsonPath":"$.realm_access.roles", + "spring-addons.issuers[0].claims[1].jsonPath":"$.resource_access.*.roles", + "spring.security.oauth2.resourceserver.jwt.issuer-uri": "http://keycloak:8080/auth/realms/openslice", + "springdoc.oAuthFlow.authorizationUrl": "http://keycloak:8080/auth/realms/openslice/protocol/openid-connect/auth", + "springdoc.oAuthFlow.tokenUrl": "http://keycloak:8080/auth/realms/openslice/protocol/openid-connect/token", + "springdoc.oauth.client-id" : "osapiWebClientId", + "springdoc.oauth.clientsecret" : "secret", + "spring.activemq.brokerUrl": "tcp://anartemis:61616?jms.watchTopicAdvisories=false", + "spring.activemq.user": "artemis", + "spring.activemq.password": "artemis", + "logging.level.org.springframework" : "INFO", + "kroki.serverurl" : "http://localhost/kroki" + }' + volumes: + - ./repo:/root + ports: + - 13082:13082 + networks: + - front + - back + depends_on: + - mysql-portal + + + osom: + container_name: openslice-osom + restart: always + profiles: ["prod"] + build: + context: ../../org.etsi.osl.osom/ + dockerfile: Dockerfile.osom + image: org.etsi.osl.osom:latest + environment: + SPRING_APPLICATION_JSON: '{ + "spring.activemq.brokerUrl": "tcp://anartemis:61616?jms.watchTopicAdvisories=false", + "spring.activemq.user": "artemis", + "spring.activemq.password": "artemis", + "logging.level.org.springframework" : "INFO" + }' + volumes: + - ./repo:/root + ports: + - 13100:13100 + networks: + - front + - back + depends_on: + - mysql-portal + + + oasapi: + container_name: openslice-oasapi + restart: always + profiles: ["prod"] + build: + context: ../../org.etsi.osl.oas/ + dockerfile: Dockerfile.oasapi + image: org.etsi.osl.oas:latest + environment: + SPRING_APPLICATION_JSON: '{ + "spring.datasource.url": "jdbc:mysql://amysql/ostmfdb?createDatabaseIfNotExist=true&useUnicode=true&nullCatalogMeansCurrent=true&characterEncoding=utf8&useJDBCCompliantTimezoneShift=true&useLegacyDatetimeCode=false&serverTimezone=UTC", + "spring.datasource.username":"root", + "spring.datasource.password":"letmein", + "spring-addons.issuers[0].uri": "http://keycloak:8080/auth/realms/openslice", + "spring-addons.issuers[0].username-json-path":"$.preferred_username", + "spring-addons.issuers[0].claims[0].jsonPath":"$.realm_access.roles", + "spring-addons.issuers[0].claims[1].jsonPath":"$.resource_access.*.roles", + "spring.security.oauth2.resourceserver.jwt.issuer-uri": "http://keycloak:8080/auth/realms/openslice", + "springdoc.oAuthFlow.authorizationUrl": "http://keycloak:8080/auth/realms/openslice/protocol/openid-connect/auth", + "springdoc.oAuthFlow.tokenUrl": "http://keycloak:8080/auth/realms/openslice/protocol/openid-connect/token", + "springdoc.oauth.client-id" : "osapiWebClientId", + "springdoc.oauth.clientsecret" : "secret", + "spring.activemq.brokerUrl": "tcp://anartemis:61616?jms.watchTopicAdvisories=false", + "spring.activemq.user": "artemis", + "spring.activemq.password": "artemis", + "logging.level.org.springframework" : "INFO" + }' + volumes: + - ./repo:/root + ports: + - 13101:13101 + networks: + - front + - back + + + + portainer: + container_name: portainer + image: portainer/portainer-ce:2.18.4 + restart: always + profiles: ["dev", "prod"] + networks: + - front + ports: + - 9000:9000 + volumes: + - /var/run/docker.sock:/var/run/docker.sock + - portainer_data:/data + + centrallog: + container_name: centrallog + restart: always + profiles: ["prod"] + build: + context: ../../org.etsi.osl.centrallog.service/ + dockerfile: Dockerfile.centrallog + image: org.etsi.osl.centrallog.service:latest + environment: + SPRING_APPLICATION_JSON: '{ + "spring.activemq.brokerUrl": "tcp://anartemis:61616?jms.watchTopicAdvisories=false", + "spring.activemq.user": "artemis", + "spring.activemq.password": "artemis", + "centrallogurl":"http://elk_ip:elk_port/index_name/_doc" + }' + ports: + - 13013:13013 + networks: + - back + + kroki: + container_name: kroki + restart: always + image: yuzutech/kroki:0.18.0 + profiles: ["dev", "prod"] + depends_on: + - blockdiag + environment: + - KROKI_BLOCKDIAG_HOST=blockdiag + ports: + - "8000:8000" + networks: + - front + - back + + + blockdiag: + image: yuzutech/kroki-blockdiag:0.18.0 + restart: always + profiles: ["dev", "prod"] + expose: + - "8001" + networks: + - front + - back + + +networks: + front: + driver: bridge + driver_opts: + com.docker.network.driver.mtu: 1450 + back: + driver: bridge + driver_opts: + com.docker.network.driver.mtu: 1450 + + +volumes: + portainer_data: + diff --git a/compose/docker-compose2.yaml b/compose/docker-compose2.yaml new file mode 100644 index 0000000..a3b216e --- /dev/null +++ b/compose/docker-compose2.yaml @@ -0,0 +1,345 @@ +version: '3.4' +services: + + artemis: + container_name: anartemis + image: apache/activemq-artemis:2.30.0 + restart: always + profiles: ["dev", "prod"] + ports: + - 8161:8161 + - 61616:61616 + - 61613:61613 + volumes: + - /var/log/activemq:/var/log/activemq + networks: + - back + + nginx: + container_name: anginx + image: nginx + restart: always + profiles: ["dev", "prod"] + ports: + - 80:80 + - 443:443 + volumes: + - ./nginx/nginx.conf:/etc/nginx/nginx.conf + - ./nginx/certificates:/etc/nginx/certificates + - ../../org.etsi.osl.portal.web/src:/webstatic/nfvportal + - ../../org.etsi.osl.tmf.web/dist/io-openslice-portal-web:/webstatic/services + networks: + - front + + mysql-portal: + container_name: amysql + restart: always + image: mysql:5.7 + profiles: ["dev", "prod"] + environment: + MYSQL_ROOT_PASSWORD: letmein +# MYSQL_DATABASE: osdb +# MYSQL_USER: portaluser +# MYSQL_PASSWORD: 12345 + MYSQL_ROOT_HOST: "%" + ports: + - "13306:3306" + volumes: + - ~/mysql/data:/var/lib/mysql + - ./mysql-init:/docker-entrypoint-initdb.d + networks: + - back + + keycloak: + container_name: keycloak + image: quay.io/keycloak/keycloak:22.0.1 + restart: always + profiles: ["dev", "prod"] + environment: + DB_VENDOR: MYSQL + DB_ADDR: amysql + DB_DATABASE: keycloak + DB_USER: keycloak + DB_PASSWORD: password + KEYCLOAK_ADMIN: admin + KEYCLOAK_ADMIN_PASSWORD: Pa55w0rd + JDBC_PARAMS: "useSSL=false" + JAVA_OPTS: "-server -Xms512m -Xmx2048m -XX:MetaspaceSize=96M -XX:MaxMetaspaceSize=256m -XX:+UseAdaptiveSizePolicy -XX:MaxMetaspaceSize=1024m -Djava.net.preferIPv4Stack=true -Djboss.as.management.blocking.timeout=3600" + KEYCLOAK_IMPORT: /tmp/realm-export.json + PROXY_ADDRESS_FORWARDING: "true" + command: + - start-dev + - --import-realm + volumes: + - ./keycloak-init:/tmp + - ./keycloak-ini/realm-export.json:/opt/keycloak/data/import/realm.json + ports: + - 8080:8080 + - 8443:8443 + depends_on: + - mysql-portal + networks: + - front + - back + + + osportalapi: + container_name: openslice-portalapi + restart: always + profiles: ["prod"] + build: + context: ../../org.etsi.osl.portal.api/ + dockerfile: Dockerfile.portalapi + image: org.etsi.osl.portal.api:latest + environment: + SPRING_APPLICATION_JSON: '{ + "spring.datasource.url": "jdbc:mysql://amysql/osdb?createDatabaseIfNotExist=true", + "spring.datasource.username":"root", + "spring.datasource.password":"letmein", + "spring-addons.issuers[0].uri": "http://keycloak:8080/auth/realms/openslice", + "spring-addons.issuers[0].username-json-path":"$.preferred_username", + "spring-addons.issuers[0].claims[0].jsonPath":"$.realm_access.roles", + "spring-addons.issuers[0].claims[1].jsonPath":"$.resource_access.*.roles", + "spring.security.oauth2.resourceserver.jwt.issuer-uri": "http://keycloak:8080/auth/realms/openslice", + "springdoc.oAuthFlow.authorizationUrl": "http://keycloak:8080/auth/realms/openslice/protocol/openid-connect/auth", + "springdoc.oAuthFlow.tokenUrl": "http://keycloak:8080/auth/realms/openslice/protocol/openid-connect/token", + "springdoc.oauth.client-id" : "osapiWebClientId", + "springdoc.oauth.clientsecret" : "secret", + "spring.activemq.brokerUrl": "tcp://anartemis:61616?jms.watchTopicAdvisories=false", + "spring.activemq.user": "artemis", + "spring.activemq.password": "artemis", + "logging.level.org.springframework" : "INFO" + }' + volumes: + - ./repo:/root + ports: + - 13000:13000 + networks: + - front + - back + depends_on: + - mysql-portal + + + manoclient: + container_name: manoclient + restart: always + profiles: ["prod"] + build: + context: ../../org.etsi.osl.mano/ + dockerfile: Dockerfile.mano + image: org.etsi.osl.mano:latest + environment: + SPRING_APPLICATION_JSON: '{ + "spring.activemq.brokerUrl": "tcp://anartemis:61616?jms.watchTopicAdvisories=false", + "spring.activemq.user": "artemis", + "spring.activemq.password": "artemis", + "logging.level.org.springframework" : "INFO" + }' + ports: + - 13011:13011 + networks: + - back + + + bugzilla: + container_name: abugzilla + restart: always + profiles: ["prod"] + build: + context: ../../org.etsi.osl.bugzilla/ + dockerfile: Dockerfile.bugzilla + image: org.etsi.osl.bugzilla:latest + environment: + SPRING_APPLICATION_JSON: '{ + "spring.activemq.brokerUrl": "tcp://anartemis:61616?jms.watchTopicAdvisories=false", + "spring.activemq.user": "artemis", + "spring.activemq.password": "artemis", + "bugzillaurl":"", + "bugzillakey":"", + "main_operations_product":"" + }' + ports: + - 13010:13010 + networks: + - front + - back + + + + + osscapi: + container_name: openslice-scapi + restart: always + profiles: ["prod"] + build: + context: ../../org.etsi.osl.tmf.api/ + dockerfile: Dockerfile.tmfapi + image: org.etsi.osl.tmf.api:latest + environment: + SPRING_APPLICATION_JSON: '{ + "spring.datasource.url": "jdbc:mysql://amysql/ostmfdb?createDatabaseIfNotExist=true&useUnicode=true&characterEncoding=utf8&useJDBCCompliantTimezoneShift=true&useLegacyDatetimeCode=false&serverTimezone=UTC", + "spring.datasource.username":"root", + "spring.datasource.password":"letmein", + "spring-addons.issuers[0].uri": "http://keycloak:8080/auth/realms/openslice", + "spring-addons.issuers[0].username-json-path":"$.preferred_username", + "spring-addons.issuers[0].claims[0].jsonPath":"$.realm_access.roles", + "spring-addons.issuers[0].claims[1].jsonPath":"$.resource_access.*.roles", + "spring.security.oauth2.resourceserver.jwt.issuer-uri": "http://keycloak:8080/auth/realms/openslice", + "springdoc.oAuthFlow.authorizationUrl": "http://keycloak:8080/auth/realms/openslice/protocol/openid-connect/auth", + "springdoc.oAuthFlow.tokenUrl": "http://keycloak:8080/auth/realms/openslice/protocol/openid-connect/token", + "springdoc.oauth.client-id" : "osapiWebClientId", + "springdoc.oauth.clientsecret" : "secret", + "spring.activemq.brokerUrl": "tcp://anartemis:61616?jms.watchTopicAdvisories=false", + "spring.activemq.user": "artemis", + "spring.activemq.password": "artemis", + "logging.level.org.springframework" : "INFO", + "kroki.serverurl" : "http://localhost/kroki" + }' + volumes: + - ./repo:/root + ports: + - 13082:13082 + networks: + - front + - back + depends_on: + - mysql-portal + + + osom: + container_name: openslice-osom + restart: always + profiles: ["prod"] + build: + context: ../../org.etsi.osl.osom/ + dockerfile: Dockerfile.osom + image: org.etsi.osl.osom:latest + environment: + SPRING_APPLICATION_JSON: '{ + "spring.activemq.brokerUrl": "tcp://anartemis:61616?jms.watchTopicAdvisories=false", + "spring.activemq.user": "artemis", + "spring.activemq.password": "artemis", + "logging.level.org.springframework" : "INFO" + }' + volumes: + - ./repo:/root + ports: + - 13100:13100 + networks: + - front + - back + depends_on: + - mysql-portal + + + oasapi: + container_name: openslice-oasapi + restart: always + profiles: ["prod"] + build: + context: ../../org.etsi.osl.oas/ + dockerfile: Dockerfile.oasapi + image: org.etsi.osl.oas:latest + environment: + SPRING_APPLICATION_JSON: '{ + "spring.datasource.url": "jdbc:mysql://amysql/ostmfdb?createDatabaseIfNotExist=true&useUnicode=true&nullCatalogMeansCurrent=true&characterEncoding=utf8&useJDBCCompliantTimezoneShift=true&useLegacyDatetimeCode=false&serverTimezone=UTC", + "spring.datasource.username":"root", + "spring.datasource.password":"letmein", + "keycloak-internal-auth-server-url": "http://keycloak:8080/auth", + "keycloak-admin-password": "Pa55w0rd", + "keycloak.auth-server-url": "http://keycloak:8080/auth", + "keycloak-issuer": "http://keycloak:8080/auth/realms/openslice", + "springdoc.oAuthFlow.authorizationUrl": "http://keycloak:8080/auth/realms/openslice/protocol/openid-connect/auth", + "springdoc.oAuthFlow.tokenUrl": "http://keycloak:8080/auth/realms/openslice/protocol/openid-connect/token", + "springdoc.oauth.client-id" : "osapiWebClientId", + "springdoc.oauth.clientsecret" : "secret", + "spring.activemq.brokerUrl": "tcp://anartemis:61616?jms.watchTopicAdvisories=false", + "spring.activemq.user": "artemis", + "spring.activemq.password": "artemis", + "logging.level.org.springframework" : "INFO" + }' + volumes: + - ./repo:/root + ports: + - 13101:13101 + networks: + - front + - back + + + + portainer: + container_name: portainer + image: portainer/portainer-ce:2.18.4 + restart: always + profiles: ["dev", "prod"] + networks: + - front + ports: + - 9000:9000 + volumes: + - /var/run/docker.sock:/var/run/docker.sock + - portainer_data:/data + + centrallog: + container_name: centrallog + restart: always + profiles: ["prod"] + build: + context: ../../org.etsi.osl.centrallog.service/ + dockerfile: Dockerfile.centrallog + image: org.etsi.osl.centrallog.service:latest + environment: + SPRING_APPLICATION_JSON: '{ + "spring.activemq.brokerUrl": "tcp://anartemis:61616?jms.watchTopicAdvisories=false", + "spring.activemq.user": "artemis", + "spring.activemq.password": "artemis", + "centrallogurl":"http://elk_ip:elk_port/index_name/_doc" + }' + ports: + - 13013:13013 + networks: + - back + + kroki: + container_name: kroki + restart: always + image: yuzutech/kroki + profiles: ["dev", "prod"] + depends_on: + - blockdiag + environment: + - KROKI_BLOCKDIAG_HOST=blockdiag + ports: + - "8000:8000" + networks: + - front + - back + + + blockdiag: + image: yuzutech/kroki-blockdiag + restart: always + profiles: ["dev", "prod"] + expose: + - "8001" + networks: + - front + - back + + +networks: + front: + driver: bridge + driver_opts: + com.docker.network.driver.mtu: 1450 + back: + driver: bridge + driver_opts: + com.docker.network.driver.mtu: 1450 + + +volumes: + portainer_data: + \ No newline at end of file diff --git a/compose/docker-images-build.sh b/compose/docker-images-build.sh new file mode 100644 index 0000000..f829089 --- /dev/null +++ b/compose/docker-images-build.sh @@ -0,0 +1,29 @@ +#!/bin/sh + +dirlocation=`pwd`/. +echo "We're working with $dirlocation" +cd $dirlocation +tagname=latest + +buildimg(){ + cd $dirlocation/$1 + echo "Build " $1 + sudo docker build -t openslice/$1:$tagname -f $2 . + sudo docker push openslice/$1:$tagname +} + +buildimg org.etsi.osl.centrallog.service Dockerfile.centrallog +buildimg org.etsi.osl.portal.api Dockerfile.portalapi +buildimg org.etsi.osl.mano Dockerfile.mano +buildimg org.etsi.osl.bugzilla Dockerfile.bugzilla +buildimg org.etsi.osl.osom Dockerfile.osom +buildimg org.etsi.osl.portal.web Dockerfile +buildimg org.etsi.osl.tmf.api Dockerfile.tmfapi +buildimg org.etsi.osl.oas Dockerfile.oasapi + + + +cd $dirlocation/org.etsi.osl.tmf.web +docker run -u 0 --rm -v "$PWD":/app trion/ng-cli npm install +docker run -u 0 --rm -v "$PWD":/app trion/ng-cli ng build --prod --deleteOutputPath=false +buildimg org.etsi.osl.tmf.web Dockerfile \ No newline at end of file diff --git a/compose/keycloak-init/.gitignore b/compose/keycloak-init/.gitignore new file mode 100644 index 0000000..8937e9b --- /dev/null +++ b/compose/keycloak-init/.gitignore @@ -0,0 +1,3 @@ +/hsperfdata_jboss/ +/vertx-cache/ +/hsperfdata_keycloak/ diff --git a/compose/keycloak-init/realm-export.json b/compose/keycloak-init/realm-export.json new file mode 100644 index 0000000..c0539ad --- /dev/null +++ b/compose/keycloak-init/realm-export.json @@ -0,0 +1,2221 @@ +{ + "id": "openslice", + "realm": "openslice", + "displayName": "Openslice", + "notBefore": 1586721661, + "revokeRefreshToken": false, + "refreshTokenMaxReuse": 0, + "accessTokenLifespan": 300, + "accessTokenLifespanForImplicitFlow": 900, + "ssoSessionIdleTimeout": 1800, + "ssoSessionMaxLifespan": 36000, + "ssoSessionIdleTimeoutRememberMe": 0, + "ssoSessionMaxLifespanRememberMe": 0, + "offlineSessionIdleTimeout": 2592000, + "offlineSessionMaxLifespanEnabled": false, + "offlineSessionMaxLifespan": 5184000, + "accessCodeLifespan": 60, + "accessCodeLifespanUserAction": 300, + "accessCodeLifespanLogin": 1800, + "actionTokenGeneratedByAdminLifespan": 43200, + "actionTokenGeneratedByUserLifespan": 300, + "enabled": true, + "sslRequired": "external", + "registrationAllowed": false, + "registrationEmailAsUsername": false, + "rememberMe": false, + "verifyEmail": false, + "loginWithEmailAllowed": true, + "duplicateEmailsAllowed": false, + "resetPasswordAllowed": false, + "editUsernameAllowed": false, + "bruteForceProtected": false, + "permanentLockout": false, + "maxFailureWaitSeconds": 900, + "minimumQuickLoginWaitSeconds": 60, + "waitIncrementSeconds": 60, + "quickLoginCheckMilliSeconds": 1000, + "maxDeltaTimeSeconds": 43200, + "failureFactor": 30, + "roles": { + "realm": [ + { + "id": "1741dd77-ee50-4fd7-bec6-1a6d3d9d778a", + "name": "MENTOR", + "composite": true, + "composites": { + "realm": [ + "USER" + ] + }, + "clientRole": false, + "containerId": "openslice", + "attributes": {} + }, + { + "id": "f61e8649-b003-42e2-8670-4116885a1e26", + "name": "NFV_DEVELOPER", + "composite": true, + "composites": { + "realm": [ + "USER" + ] + }, + "clientRole": false, + "containerId": "openslice", + "attributes": {} + }, + { + "id": "379857ba-17b0-4299-9191-4df27ce9425b", + "name": "uma_authorization", + "description": "${role_uma_authorization}", + "composite": false, + "clientRole": false, + "containerId": "openslice", + "attributes": {} + }, + { + "id": "a2685809-e874-4009-8435-92ded0c7180d", + "name": "ADMIN", + "composite": true, + "composites": { + "realm": [ + "USER" + ] + }, + "clientRole": false, + "containerId": "openslice", + "attributes": {} + }, + { + "id": "af2ef7e2-d78a-4f4e-844c-174c64168316", + "name": "offline_access", + "description": "${role_offline-access}", + "composite": false, + "clientRole": false, + "containerId": "openslice", + "attributes": {} + }, + { + "id": "8b544ccb-d0de-4550-b879-985c86b8d018", + "name": "USER", + "composite": false, + "clientRole": false, + "containerId": "openslice", + "attributes": {} + }, + { + "id": "0f367333-06dc-4740-931a-b2d6b3b06577", + "name": "EXPERIMENTER", + "composite": true, + "composites": { + "realm": [ + "USER" + ] + }, + "clientRole": false, + "containerId": "openslice", + "attributes": {} + }, + { + "id": "ec900678-a7df-4955-a78d-a90b138a5121", + "name": "TESTBED_PROVIDER", + "composite": true, + "composites": { + "realm": [ + "USER" + ] + }, + "clientRole": false, + "containerId": "openslice", + "attributes": {} + } + ], + "client": { + "openslice-service": [], + "realm-management": [ + { + "id": "679a9d01-6d85-42f5-9c6b-f3d923dd1a0a", + "name": "query-clients", + "description": "${role_query-clients}", + "composite": false, + "clientRole": true, + "containerId": "380ac4d6-6105-495d-873c-6e85983fcfeb", + "attributes": {} + }, + { + "id": "06f2873b-3926-4d97-9179-769e342f86e9", + "name": "create-client", + "description": "${role_create-client}", + "composite": false, + "clientRole": true, + "containerId": "380ac4d6-6105-495d-873c-6e85983fcfeb", + "attributes": {} + }, + { + "id": "63f7b29c-c463-40d8-82de-4ae894de65ea", + "name": "view-realm", + "description": "${role_view-realm}", + "composite": false, + "clientRole": true, + "containerId": "380ac4d6-6105-495d-873c-6e85983fcfeb", + "attributes": {} + }, + { + "id": "09422e3f-4358-466a-a46a-e887cb5f5189", + "name": "realm-admin", + "description": "${role_realm-admin}", + "composite": true, + "composites": { + "client": { + "realm-management": [ + "query-clients", + "create-client", + "view-realm", + "manage-events", + "query-groups", + "manage-identity-providers", + "view-events", + "view-users", + "view-clients", + "manage-clients", + "impersonation", + "manage-authorization", + "manage-users", + "query-realms", + "query-users", + "manage-realm", + "view-authorization", + "view-identity-providers" + ] + } + }, + "clientRole": true, + "containerId": "380ac4d6-6105-495d-873c-6e85983fcfeb", + "attributes": {} + }, + { + "id": "2d6c5511-1cb7-4283-90f5-50d751c2eb92", + "name": "manage-events", + "description": "${role_manage-events}", + "composite": false, + "clientRole": true, + "containerId": "380ac4d6-6105-495d-873c-6e85983fcfeb", + "attributes": {} + }, + { + "id": "dbb571cf-7d5e-418e-95d7-ca2160eceba6", + "name": "query-groups", + "description": "${role_query-groups}", + "composite": false, + "clientRole": true, + "containerId": "380ac4d6-6105-495d-873c-6e85983fcfeb", + "attributes": {} + }, + { + "id": "31f02966-2fa2-479b-bcf1-fa2a000e7b0f", + "name": "manage-identity-providers", + "description": "${role_manage-identity-providers}", + "composite": false, + "clientRole": true, + "containerId": "380ac4d6-6105-495d-873c-6e85983fcfeb", + "attributes": {} + }, + { + "id": "46c57172-f46d-466c-a73c-4b4f58eb23ce", + "name": "view-events", + "description": "${role_view-events}", + "composite": false, + "clientRole": true, + "containerId": "380ac4d6-6105-495d-873c-6e85983fcfeb", + "attributes": {} + }, + { + "id": "006e604a-1915-4165-bf8a-709f77d07c99", + "name": "view-users", + "description": "${role_view-users}", + "composite": true, + "composites": { + "client": { + "realm-management": [ + "query-users", + "query-groups" + ] + } + }, + "clientRole": true, + "containerId": "380ac4d6-6105-495d-873c-6e85983fcfeb", + "attributes": {} + }, + { + "id": "22b0f1f4-b2de-4829-ae70-5b6a2ffb90c0", + "name": "view-clients", + "description": "${role_view-clients}", + "composite": true, + "composites": { + "client": { + "realm-management": [ + "query-clients" + ] + } + }, + "clientRole": true, + "containerId": "380ac4d6-6105-495d-873c-6e85983fcfeb", + "attributes": {} + }, + { + "id": "2ec8e15f-d086-4c49-a2dc-ccf1b85b645f", + "name": "manage-clients", + "description": "${role_manage-clients}", + "composite": false, + "clientRole": true, + "containerId": "380ac4d6-6105-495d-873c-6e85983fcfeb", + "attributes": {} + }, + { + "id": "841fcb24-6965-4299-a2a8-2a0caf98b022", + "name": "impersonation", + "description": "${role_impersonation}", + "composite": false, + "clientRole": true, + "containerId": "380ac4d6-6105-495d-873c-6e85983fcfeb", + "attributes": {} + }, + { + "id": "16a19114-7aa5-4c7c-a741-424e74b379b9", + "name": "manage-authorization", + "description": "${role_manage-authorization}", + "composite": false, + "clientRole": true, + "containerId": "380ac4d6-6105-495d-873c-6e85983fcfeb", + "attributes": {} + }, + { + "id": "7c81140a-8b70-44fc-af0e-d6b83f6be914", + "name": "manage-users", + "description": "${role_manage-users}", + "composite": false, + "clientRole": true, + "containerId": "380ac4d6-6105-495d-873c-6e85983fcfeb", + "attributes": {} + }, + { + "id": "1690c8e2-971a-4472-a21c-d2c403f46907", + "name": "query-realms", + "description": "${role_query-realms}", + "composite": false, + "clientRole": true, + "containerId": "380ac4d6-6105-495d-873c-6e85983fcfeb", + "attributes": {} + }, + { + "id": "3b455fa3-45ce-4210-b138-c3a64b69271f", + "name": "query-users", + "description": "${role_query-users}", + "composite": false, + "clientRole": true, + "containerId": "380ac4d6-6105-495d-873c-6e85983fcfeb", + "attributes": {} + }, + { + "id": "9cfae318-c817-428c-8a41-9f37fa3b8848", + "name": "manage-realm", + "description": "${role_manage-realm}", + "composite": false, + "clientRole": true, + "containerId": "380ac4d6-6105-495d-873c-6e85983fcfeb", + "attributes": {} + }, + { + "id": "a085267a-ac93-4004-9899-b76b74d06c31", + "name": "view-authorization", + "description": "${role_view-authorization}", + "composite": false, + "clientRole": true, + "containerId": "380ac4d6-6105-495d-873c-6e85983fcfeb", + "attributes": {} + }, + { + "id": "1dd16fc9-7abd-41fe-bb23-5887f01fa295", + "name": "view-identity-providers", + "description": "${role_view-identity-providers}", + "composite": false, + "clientRole": true, + "containerId": "380ac4d6-6105-495d-873c-6e85983fcfeb", + "attributes": {} + } + ], + "security-admin-console": [], + "admin-cli": [], + "osapiWebClientId": [], + "account-console": [], + "broker": [ + { + "id": "be197fdb-fe78-4b10-87d3-9e17826b05c9", + "name": "read-token", + "description": "${role_read-token}", + "composite": false, + "clientRole": true, + "containerId": "92128d63-9887-4e70-b5e2-9797756279d3", + "attributes": {} + } + ], + "account": [ + { + "id": "e2d74a05-f1a0-4fb1-8b03-a3e9b691d82b", + "name": "manage-account", + "description": "${role_manage-account}", + "composite": true, + "composites": { + "client": { + "account": [ + "manage-account-links" + ] + } + }, + "clientRole": true, + "containerId": "d30c8b0b-4d20-4dd7-876a-21ee1ae2c028", + "attributes": {} + }, + { + "id": "f661e78f-1ce3-4af2-9a7c-a5cb7a09d4b5", + "name": "manage-account-links", + "description": "${role_manage-account-links}", + "composite": false, + "clientRole": true, + "containerId": "d30c8b0b-4d20-4dd7-876a-21ee1ae2c028", + "attributes": {} + }, + { + "id": "3094e791-7572-4845-b64b-3dbbb763fdb7", + "name": "view-consent", + "description": "${role_view-consent}", + "composite": false, + "clientRole": true, + "containerId": "d30c8b0b-4d20-4dd7-876a-21ee1ae2c028", + "attributes": {} + }, + { + "id": "05ddbf6c-7b93-4c49-83e9-154255ac877e", + "name": "view-profile", + "description": "${role_view-profile}", + "composite": false, + "clientRole": true, + "containerId": "d30c8b0b-4d20-4dd7-876a-21ee1ae2c028", + "attributes": {} + }, + { + "id": "84bad9b3-a179-4700-84a4-fdcbf0ae2991", + "name": "manage-consent", + "description": "${role_manage-consent}", + "composite": true, + "composites": { + "client": { + "account": [ + "view-consent" + ] + } + }, + "clientRole": true, + "containerId": "d30c8b0b-4d20-4dd7-876a-21ee1ae2c028", + "attributes": {} + }, + { + "id": "d3e32349-192a-464e-91f8-b73ed6a8f170", + "name": "view-applications", + "description": "${role_view-applications}", + "composite": false, + "clientRole": true, + "containerId": "d30c8b0b-4d20-4dd7-876a-21ee1ae2c028", + "attributes": {} + } + ] + } + }, + "groups": [], + "defaultRoles": [ + "uma_authorization", + "offline_access" + ], + "requiredCredentials": [ + "password" + ], + "otpPolicyType": "totp", + "otpPolicyAlgorithm": "HmacSHA1", + "otpPolicyInitialCounter": 0, + "otpPolicyDigits": 6, + "otpPolicyLookAheadWindow": 1, + "otpPolicyPeriod": 30, + "otpSupportedApplications": [ + "FreeOTP", + "Google Authenticator" + ], + "webAuthnPolicyRpEntityName": "keycloak", + "webAuthnPolicySignatureAlgorithms": [ + "ES256" + ], + "webAuthnPolicyRpId": "", + "webAuthnPolicyAttestationConveyancePreference": "not specified", + "webAuthnPolicyAuthenticatorAttachment": "not specified", + "webAuthnPolicyRequireResidentKey": "not specified", + "webAuthnPolicyUserVerificationRequirement": "not specified", + "webAuthnPolicyCreateTimeout": 0, + "webAuthnPolicyAvoidSameAuthenticatorRegister": false, + "webAuthnPolicyAcceptableAaguids": [], + "webAuthnPolicyPasswordlessRpEntityName": "keycloak", + "webAuthnPolicyPasswordlessSignatureAlgorithms": [ + "ES256" + ], + "webAuthnPolicyPasswordlessRpId": "", + "webAuthnPolicyPasswordlessAttestationConveyancePreference": "not specified", + "webAuthnPolicyPasswordlessAuthenticatorAttachment": "not specified", + "webAuthnPolicyPasswordlessRequireResidentKey": "not specified", + "webAuthnPolicyPasswordlessUserVerificationRequirement": "not specified", + "webAuthnPolicyPasswordlessCreateTimeout": 0, + "webAuthnPolicyPasswordlessAvoidSameAuthenticatorRegister": false, + "webAuthnPolicyPasswordlessAcceptableAaguids": [], + "scopeMappings": [ + { + "clientScope": "offline_access", + "roles": [ + "offline_access" + ] + } + ], + "clientScopeMappings": { + "account": [ + { + "client": "account-console", + "roles": [ + "manage-account" + ] + } + ] + }, + "clients": [ + { + "id": "d30c8b0b-4d20-4dd7-876a-21ee1ae2c028", + "clientId": "account", + "name": "${client_account}", + "rootUrl": "${authBaseUrl}", + "baseUrl": "/realms/openslice/account/", + "surrogateAuthRequired": false, + "enabled": true, + "alwaysDisplayInConsole": false, + "clientAuthenticatorType": "client-secret", + "secret": "**********", + "defaultRoles": [ + "view-profile", + "manage-account" + ], + "redirectUris": [ + "/realms/openslice/account/*" + ], + "webOrigins": [], + "notBefore": 0, + "bearerOnly": false, + "consentRequired": false, + "standardFlowEnabled": true, + "implicitFlowEnabled": false, + "directAccessGrantsEnabled": false, + "serviceAccountsEnabled": false, + "publicClient": false, + "frontchannelLogout": false, + "protocol": "openid-connect", + "attributes": {}, + "authenticationFlowBindingOverrides": {}, + "fullScopeAllowed": false, + "nodeReRegistrationTimeout": 0, + "defaultClientScopes": [ + "web-origins", + "role_list", + "roles", + "profile", + "email" + ], + "optionalClientScopes": [ + "address", + "phone", + "offline_access", + "microprofile-jwt" + ] + }, + { + "id": "7838e492-c9ce-4812-a9e9-629244fe1295", + "clientId": "account-console", + "name": "${client_account-console}", + "rootUrl": "${authBaseUrl}", + "baseUrl": "/realms/openslice/account/", + "surrogateAuthRequired": false, + "enabled": true, + "alwaysDisplayInConsole": false, + "clientAuthenticatorType": "client-secret", + "secret": "**********", + "redirectUris": [ + "/realms/openslice/account/*" + ], + "webOrigins": [], + "notBefore": 0, + "bearerOnly": false, + "consentRequired": false, + "standardFlowEnabled": true, + "implicitFlowEnabled": false, + "directAccessGrantsEnabled": false, + "serviceAccountsEnabled": false, + "publicClient": true, + "frontchannelLogout": false, + "protocol": "openid-connect", + "attributes": { + "pkce.code.challenge.method": "S256" + }, + "authenticationFlowBindingOverrides": {}, + "fullScopeAllowed": false, + "nodeReRegistrationTimeout": 0, + "protocolMappers": [ + { + "id": "48e276a8-68a7-45ef-929a-18d2afbab527", + "name": "audience resolve", + "protocol": "openid-connect", + "protocolMapper": "oidc-audience-resolve-mapper", + "consentRequired": false, + "config": {} + } + ], + "defaultClientScopes": [ + "web-origins", + "role_list", + "roles", + "profile", + "email" + ], + "optionalClientScopes": [ + "address", + "phone", + "offline_access", + "microprofile-jwt" + ] + }, + { + "id": "b233eb6d-e3df-4d8d-8b09-3666f043258f", + "clientId": "admin-cli", + "name": "${client_admin-cli}", + "surrogateAuthRequired": false, + "enabled": true, + "alwaysDisplayInConsole": false, + "clientAuthenticatorType": "client-secret", + "secret": "**********", + "redirectUris": [], + "webOrigins": [], + "notBefore": 0, + "bearerOnly": false, + "consentRequired": false, + "standardFlowEnabled": false, + "implicitFlowEnabled": false, + "directAccessGrantsEnabled": true, + "serviceAccountsEnabled": false, + "publicClient": true, + "frontchannelLogout": false, + "protocol": "openid-connect", + "attributes": {}, + "authenticationFlowBindingOverrides": {}, + "fullScopeAllowed": false, + "nodeReRegistrationTimeout": 0, + "defaultClientScopes": [ + "web-origins", + "role_list", + "roles", + "profile", + "email" + ], + "optionalClientScopes": [ + "address", + "phone", + "offline_access", + "microprofile-jwt" + ] + }, + { + "id": "92128d63-9887-4e70-b5e2-9797756279d3", + "clientId": "broker", + "name": "${client_broker}", + "surrogateAuthRequired": false, + "enabled": true, + "alwaysDisplayInConsole": false, + "clientAuthenticatorType": "client-secret", + "secret": "**********", + "redirectUris": [], + "webOrigins": [], + "notBefore": 0, + "bearerOnly": false, + "consentRequired": false, + "standardFlowEnabled": true, + "implicitFlowEnabled": false, + "directAccessGrantsEnabled": false, + "serviceAccountsEnabled": false, + "publicClient": false, + "frontchannelLogout": false, + "protocol": "openid-connect", + "attributes": {}, + "authenticationFlowBindingOverrides": {}, + "fullScopeAllowed": false, + "nodeReRegistrationTimeout": 0, + "defaultClientScopes": [ + "web-origins", + "role_list", + "roles", + "profile", + "email" + ], + "optionalClientScopes": [ + "address", + "phone", + "offline_access", + "microprofile-jwt" + ] + }, + { + "id": "41a307d8-9465-463e-89ad-8c30af4ad5c0", + "clientId": "openslice-service", + "surrogateAuthRequired": false, + "enabled": true, + "alwaysDisplayInConsole": false, + "clientAuthenticatorType": "client-secret", + "secret": "**********", + "redirectUris": [], + "webOrigins": [], + "notBefore": 0, + "bearerOnly": false, + "consentRequired": false, + "standardFlowEnabled": false, + "implicitFlowEnabled": false, + "directAccessGrantsEnabled": true, + "serviceAccountsEnabled": false, + "publicClient": false, + "frontchannelLogout": false, + "protocol": "openid-connect", + "attributes": { + "saml.assertion.signature": "false", + "saml.force.post.binding": "false", + "saml.multivalued.roles": "false", + "saml.encrypt": "false", + "saml.server.signature": "false", + "saml.server.signature.keyinfo.ext": "false", + "exclude.session.state.from.auth.response": "false", + "saml_force_name_id_format": "false", + "saml.client.signature": "false", + "tls.client.certificate.bound.access.tokens": "false", + "saml.authnstatement": "false", + "display.on.consent.screen": "false", + "saml.onetimeuse.condition": "false" + }, + "authenticationFlowBindingOverrides": {}, + "fullScopeAllowed": true, + "nodeReRegistrationTimeout": -1, + "protocolMappers": [ + { + "id": "40742f38-d000-431b-a0a5-f5101a730a5a", + "name": "Client ID", + "protocol": "openid-connect", + "protocolMapper": "oidc-usersessionmodel-note-mapper", + "consentRequired": false, + "config": { + "user.session.note": "clientId", + "id.token.claim": "true", + "access.token.claim": "true", + "claim.name": "clientId", + "jsonType.label": "String" + } + }, + { + "id": "5115e3c5-8453-4c8b-a6a7-67e16f56eda9", + "name": "Client Host", + "protocol": "openid-connect", + "protocolMapper": "oidc-usersessionmodel-note-mapper", + "consentRequired": false, + "config": { + "user.session.note": "clientHost", + "id.token.claim": "true", + "access.token.claim": "true", + "claim.name": "clientHost", + "jsonType.label": "String" + } + }, + { + "id": "a194cc8d-d541-42f8-8c3c-3553568b3d2c", + "name": "Client IP Address", + "protocol": "openid-connect", + "protocolMapper": "oidc-usersessionmodel-note-mapper", + "consentRequired": false, + "config": { + "user.session.note": "clientAddress", + "id.token.claim": "true", + "access.token.claim": "true", + "claim.name": "clientAddress", + "jsonType.label": "String" + } + } + ], + "defaultClientScopes": [ + "web-origins", + "role_list", + "roles", + "profile", + "email" + ], + "optionalClientScopes": [ + "address", + "phone", + "offline_access", + "microprofile-jwt" + ] + }, + { + "id": "40ec2a52-1033-4471-80a3-404167935e6f", + "clientId": "osapiWebClientId", + "rootUrl": "http://localhost:13000", + "adminUrl": "http://localhost:13000", + "surrogateAuthRequired": false, + "enabled": true, + "alwaysDisplayInConsole": false, + "clientAuthenticatorType": "client-secret", + "secret": "**********", + "redirectUris": [ + "http://openslice.io/*", + "http://localhost:13000/osapi/webjars/springfox-swagger-ui/oauth2-redirect.html", + "http://localhost:13082/*", + "http://localhost:13000/*", + "http://localhost/*", + "http://localhost:13000/osapi/testweb/oauthresp.html" + ], + "webOrigins": [ + "http://localhost:13082", + "http://localhost", + "http://openslice.io", + "http://localhost:13000" + ], + "notBefore": 0, + "bearerOnly": false, + "consentRequired": false, + "standardFlowEnabled": true, + "implicitFlowEnabled": false, + "directAccessGrantsEnabled": true, + "serviceAccountsEnabled": false, + "publicClient": true, + "frontchannelLogout": false, + "protocol": "openid-connect", + "attributes": { + "saml.assertion.signature": "false", + "saml.force.post.binding": "false", + "saml.multivalued.roles": "false", + "saml.encrypt": "false", + "saml.server.signature": "false", + "saml.server.signature.keyinfo.ext": "false", + "exclude.session.state.from.auth.response": "false", + "saml_force_name_id_format": "false", + "saml.client.signature": "false", + "tls.client.certificate.bound.access.tokens": "false", + "saml.authnstatement": "false", + "display.on.consent.screen": "false", + "saml.onetimeuse.condition": "false" + }, + "authenticationFlowBindingOverrides": {}, + "fullScopeAllowed": true, + "nodeReRegistrationTimeout": -1, + "defaultClientScopes": [ + "web-origins", + "role_list", + "roles", + "profile", + "email" + ], + "optionalClientScopes": [ + "address", + "phone", + "offline_access", + "microprofile-jwt" + ] + }, + { + "id": "380ac4d6-6105-495d-873c-6e85983fcfeb", + "clientId": "realm-management", + "name": "${client_realm-management}", + "surrogateAuthRequired": false, + "enabled": true, + "alwaysDisplayInConsole": false, + "clientAuthenticatorType": "client-secret", + "secret": "**********", + "redirectUris": [], + "webOrigins": [], + "notBefore": 0, + "bearerOnly": true, + "consentRequired": false, + "standardFlowEnabled": true, + "implicitFlowEnabled": false, + "directAccessGrantsEnabled": false, + "serviceAccountsEnabled": false, + "publicClient": false, + "frontchannelLogout": false, + "protocol": "openid-connect", + "attributes": {}, + "authenticationFlowBindingOverrides": {}, + "fullScopeAllowed": false, + "nodeReRegistrationTimeout": 0, + "defaultClientScopes": [ + "web-origins", + "role_list", + "roles", + "profile", + "email" + ], + "optionalClientScopes": [ + "address", + "phone", + "offline_access", + "microprofile-jwt" + ] + }, + { + "id": "37a4e3c2-48be-4ee0-b50f-6e439ed2cdb2", + "clientId": "security-admin-console", + "name": "${client_security-admin-console}", + "rootUrl": "${authAdminUrl}", + "baseUrl": "/admin/openslice/console/", + "surrogateAuthRequired": false, + "enabled": true, + "alwaysDisplayInConsole": false, + "clientAuthenticatorType": "client-secret", + "secret": "**********", + "redirectUris": [ + "/admin/openslice/console/*" + ], + "webOrigins": [ + "+" + ], + "notBefore": 0, + "bearerOnly": false, + "consentRequired": false, + "standardFlowEnabled": true, + "implicitFlowEnabled": false, + "directAccessGrantsEnabled": false, + "serviceAccountsEnabled": false, + "publicClient": true, + "frontchannelLogout": false, + "protocol": "openid-connect", + "attributes": { + "pkce.code.challenge.method": "S256" + }, + "authenticationFlowBindingOverrides": {}, + "fullScopeAllowed": false, + "nodeReRegistrationTimeout": 0, + "protocolMappers": [ + { + "id": "d7eaa5b1-22be-4ab4-86b4-2e415aeca815", + "name": "locale", + "protocol": "openid-connect", + "protocolMapper": "oidc-usermodel-attribute-mapper", + "consentRequired": false, + "config": { + "userinfo.token.claim": "true", + "user.attribute": "locale", + "id.token.claim": "true", + "access.token.claim": "true", + "claim.name": "locale", + "jsonType.label": "String" + } + } + ], + "defaultClientScopes": [ + "web-origins", + "role_list", + "roles", + "profile", + "email" + ], + "optionalClientScopes": [ + "address", + "phone", + "offline_access", + "microprofile-jwt" + ] + } + ], + "clientScopes": [ + { + "id": "562b8e42-c857-4cf6-8241-28efb2642c4b", + "name": "address", + "description": "OpenID Connect built-in scope: address", + "protocol": "openid-connect", + "attributes": { + "include.in.token.scope": "true", + "display.on.consent.screen": "true", + "consent.screen.text": "${addressScopeConsentText}" + }, + "protocolMappers": [ + { + "id": "5a5001cb-4bd0-480f-a7a3-c0bcba80ad3a", + "name": "address", + "protocol": "openid-connect", + "protocolMapper": "oidc-address-mapper", + "consentRequired": false, + "config": { + "user.attribute.formatted": "formatted", + "user.attribute.country": "country", + "user.attribute.postal_code": "postal_code", + "userinfo.token.claim": "true", + "user.attribute.street": "street", + "id.token.claim": "true", + "user.attribute.region": "region", + "access.token.claim": "true", + "user.attribute.locality": "locality" + } + } + ] + }, + { + "id": "f6653189-9761-4ef3-936c-38affde191d8", + "name": "email", + "description": "OpenID Connect built-in scope: email", + "protocol": "openid-connect", + "attributes": { + "include.in.token.scope": "true", + "display.on.consent.screen": "true", + "consent.screen.text": "${emailScopeConsentText}" + }, + "protocolMappers": [ + { + "id": "767ac64d-5809-4239-b406-edcdd9050e80", + "name": "email", + "protocol": "openid-connect", + "protocolMapper": "oidc-usermodel-property-mapper", + "consentRequired": false, + "config": { + "userinfo.token.claim": "true", + "user.attribute": "email", + "id.token.claim": "true", + "access.token.claim": "true", + "claim.name": "email", + "jsonType.label": "String" + } + }, + { + "id": "e8d8398b-37ea-43bb-9196-f934ac296014", + "name": "email verified", + "protocol": "openid-connect", + "protocolMapper": "oidc-usermodel-property-mapper", + "consentRequired": false, + "config": { + "userinfo.token.claim": "true", + "user.attribute": "emailVerified", + "id.token.claim": "true", + "access.token.claim": "true", + "claim.name": "email_verified", + "jsonType.label": "boolean" + } + } + ] + }, + { + "id": "09a290c7-2b47-4151-9bc5-157c74aca908", + "name": "microprofile-jwt", + "description": "Microprofile - JWT built-in scope", + "protocol": "openid-connect", + "attributes": { + "include.in.token.scope": "true", + "display.on.consent.screen": "false" + }, + "protocolMappers": [ + { + "id": "f00e6912-4087-4887-a322-28e138d4b39f", + "name": "groups", + "protocol": "openid-connect", + "protocolMapper": "oidc-usermodel-realm-role-mapper", + "consentRequired": false, + "config": { + "multivalued": "true", + "user.attribute": "foo", + "id.token.claim": "true", + "access.token.claim": "true", + "claim.name": "groups", + "jsonType.label": "String" + } + }, + { + "id": "b782ede1-459f-4e6a-bf8b-88b18a6772d6", + "name": "upn", + "protocol": "openid-connect", + "protocolMapper": "oidc-usermodel-property-mapper", + "consentRequired": false, + "config": { + "userinfo.token.claim": "true", + "user.attribute": "username", + "id.token.claim": "true", + "access.token.claim": "true", + "claim.name": "upn", + "jsonType.label": "String" + } + } + ] + }, + { + "id": "a12e8651-599f-4ddb-b653-d8cb5b0184d7", + "name": "offline_access", + "description": "OpenID Connect built-in scope: offline_access", + "protocol": "openid-connect", + "attributes": { + "consent.screen.text": "${offlineAccessScopeConsentText}", + "display.on.consent.screen": "true" + } + }, + { + "id": "0f2b29e9-8093-455c-a5a9-f0c1c928942f", + "name": "phone", + "description": "OpenID Connect built-in scope: phone", + "protocol": "openid-connect", + "attributes": { + "include.in.token.scope": "true", + "display.on.consent.screen": "true", + "consent.screen.text": "${phoneScopeConsentText}" + }, + "protocolMappers": [ + { + "id": "f4ec14ee-b067-40bf-b7c0-6dd7df5a602f", + "name": "phone number", + "protocol": "openid-connect", + "protocolMapper": "oidc-usermodel-attribute-mapper", + "consentRequired": false, + "config": { + "userinfo.token.claim": "true", + "user.attribute": "phoneNumber", + "id.token.claim": "true", + "access.token.claim": "true", + "claim.name": "phone_number", + "jsonType.label": "String" + } + }, + { + "id": "65664f25-c82d-433d-bf36-c08ded829901", + "name": "phone number verified", + "protocol": "openid-connect", + "protocolMapper": "oidc-usermodel-attribute-mapper", + "consentRequired": false, + "config": { + "userinfo.token.claim": "true", + "user.attribute": "phoneNumberVerified", + "id.token.claim": "true", + "access.token.claim": "true", + "claim.name": "phone_number_verified", + "jsonType.label": "boolean" + } + } + ] + }, + { + "id": "c712880d-9ef1-4ea2-86bf-810054d40b26", + "name": "profile", + "description": "OpenID Connect built-in scope: profile", + "protocol": "openid-connect", + "attributes": { + "include.in.token.scope": "true", + "display.on.consent.screen": "true", + "consent.screen.text": "${profileScopeConsentText}" + }, + "protocolMappers": [ + { + "id": "b18c9def-9b75-4706-9936-2d4178c7b5a6", + "name": "website", + "protocol": "openid-connect", + "protocolMapper": "oidc-usermodel-attribute-mapper", + "consentRequired": false, + "config": { + "userinfo.token.claim": "true", + "user.attribute": "website", + "id.token.claim": "true", + "access.token.claim": "true", + "claim.name": "website", + "jsonType.label": "String" + } + }, + { + "id": "dbef3b60-3c68-4bb7-9d2a-d8a85f6f7004", + "name": "full name", + "protocol": "openid-connect", + "protocolMapper": "oidc-full-name-mapper", + "consentRequired": false, + "config": { + "id.token.claim": "true", + "access.token.claim": "true", + "userinfo.token.claim": "true" + } + }, + { + "id": "bdf07a0c-c5ca-4608-b494-b8a1ddc063c4", + "name": "nickname", + "protocol": "openid-connect", + "protocolMapper": "oidc-usermodel-attribute-mapper", + "consentRequired": false, + "config": { + "userinfo.token.claim": "true", + "user.attribute": "nickname", + "id.token.claim": "true", + "access.token.claim": "true", + "claim.name": "nickname", + "jsonType.label": "String" + } + }, + { + "id": "81e16a30-df1f-416b-80c3-6983101166d1", + "name": "zoneinfo", + "protocol": "openid-connect", + "protocolMapper": "oidc-usermodel-attribute-mapper", + "consentRequired": false, + "config": { + "userinfo.token.claim": "true", + "user.attribute": "zoneinfo", + "id.token.claim": "true", + "access.token.claim": "true", + "claim.name": "zoneinfo", + "jsonType.label": "String" + } + }, + { + "id": "b44f4f26-6d0d-406e-9009-c5d8dfdd5d16", + "name": "username", + "protocol": "openid-connect", + "protocolMapper": "oidc-usermodel-property-mapper", + "consentRequired": false, + "config": { + "userinfo.token.claim": "true", + "user.attribute": "username", + "id.token.claim": "true", + "access.token.claim": "true", + "claim.name": "preferred_username", + "jsonType.label": "String" + } + }, + { + "id": "86c5c86e-cb21-4abd-a17a-85dc63617995", + "name": "gender", + "protocol": "openid-connect", + "protocolMapper": "oidc-usermodel-attribute-mapper", + "consentRequired": false, + "config": { + "userinfo.token.claim": "true", + "user.attribute": "gender", + "id.token.claim": "true", + "access.token.claim": "true", + "claim.name": "gender", + "jsonType.label": "String" + } + }, + { + "id": "d78aedcd-828c-4773-ad70-22091d874bbd", + "name": "middle name", + "protocol": "openid-connect", + "protocolMapper": "oidc-usermodel-attribute-mapper", + "consentRequired": false, + "config": { + "userinfo.token.claim": "true", + "user.attribute": "middleName", + "id.token.claim": "true", + "access.token.claim": "true", + "claim.name": "middle_name", + "jsonType.label": "String" + } + }, + { + "id": "95e1cb5d-4f42-4b2a-8e3a-69e39055b66d", + "name": "updated at", + "protocol": "openid-connect", + "protocolMapper": "oidc-usermodel-attribute-mapper", + "consentRequired": false, + "config": { + "userinfo.token.claim": "true", + "user.attribute": "updatedAt", + "id.token.claim": "true", + "access.token.claim": "true", + "claim.name": "updated_at", + "jsonType.label": "String" + } + }, + { + "id": "ac157f2a-50b9-404e-bde0-965910a47d05", + "name": "given name", + "protocol": "openid-connect", + "protocolMapper": "oidc-usermodel-property-mapper", + "consentRequired": false, + "config": { + "userinfo.token.claim": "true", + "user.attribute": "firstName", + "id.token.claim": "true", + "access.token.claim": "true", + "claim.name": "given_name", + "jsonType.label": "String" + } + }, + { + "id": "4edc4427-0ebe-4825-89a8-0e8e80620f5a", + "name": "picture", + "protocol": "openid-connect", + "protocolMapper": "oidc-usermodel-attribute-mapper", + "consentRequired": false, + "config": { + "userinfo.token.claim": "true", + "user.attribute": "picture", + "id.token.claim": "true", + "access.token.claim": "true", + "claim.name": "picture", + "jsonType.label": "String" + } + }, + { + "id": "6ce933f3-a5b4-4676-b5db-b6425d45021d", + "name": "family name", + "protocol": "openid-connect", + "protocolMapper": "oidc-usermodel-property-mapper", + "consentRequired": false, + "config": { + "userinfo.token.claim": "true", + "user.attribute": "lastName", + "id.token.claim": "true", + "access.token.claim": "true", + "claim.name": "family_name", + "jsonType.label": "String" + } + }, + { + "id": "bd070586-ba31-42c4-b2fa-0614ad88e792", + "name": "profile", + "protocol": "openid-connect", + "protocolMapper": "oidc-usermodel-attribute-mapper", + "consentRequired": false, + "config": { + "userinfo.token.claim": "true", + "user.attribute": "profile", + "id.token.claim": "true", + "access.token.claim": "true", + "claim.name": "profile", + "jsonType.label": "String" + } + }, + { + "id": "397b1ae7-6c83-4a4c-a97d-75102563ae57", + "name": "birthdate", + "protocol": "openid-connect", + "protocolMapper": "oidc-usermodel-attribute-mapper", + "consentRequired": false, + "config": { + "userinfo.token.claim": "true", + "user.attribute": "birthdate", + "id.token.claim": "true", + "access.token.claim": "true", + "claim.name": "birthdate", + "jsonType.label": "String" + } + }, + { + "id": "a40de263-79e3-4adf-9dc6-584b1f537a06", + "name": "locale", + "protocol": "openid-connect", + "protocolMapper": "oidc-usermodel-attribute-mapper", + "consentRequired": false, + "config": { + "userinfo.token.claim": "true", + "user.attribute": "locale", + "id.token.claim": "true", + "access.token.claim": "true", + "claim.name": "locale", + "jsonType.label": "String" + } + } + ] + }, + { + "id": "6ca378b4-4e3b-4cc2-bee4-ef3479d59114", + "name": "roles", + "description": "OpenID Connect scope for add user roles to the access token", + "protocol": "openid-connect", + "attributes": { + "include.in.token.scope": "false", + "display.on.consent.screen": "true", + "consent.screen.text": "${rolesScopeConsentText}" + }, + "protocolMappers": [ + { + "id": "57d2d578-eb49-4756-8d41-c999c2849f1a", + "name": "client roles", + "protocol": "openid-connect", + "protocolMapper": "oidc-usermodel-client-role-mapper", + "consentRequired": false, + "config": { + "user.attribute": "foo", + "access.token.claim": "true", + "claim.name": "resource_access.${client_id}.roles", + "jsonType.label": "String", + "multivalued": "true" + } + }, + { + "id": "b322295e-fae9-4ade-9b0e-138a44732f3e", + "name": "realm roles", + "protocol": "openid-connect", + "protocolMapper": "oidc-usermodel-realm-role-mapper", + "consentRequired": false, + "config": { + "user.attribute": "foo", + "access.token.claim": "true", + "claim.name": "realm_access.roles", + "jsonType.label": "String", + "multivalued": "true" + } + }, + { + "id": "f24c94cb-8156-4f4e-b5f2-e7b3000f4f81", + "name": "audience resolve", + "protocol": "openid-connect", + "protocolMapper": "oidc-audience-resolve-mapper", + "consentRequired": false, + "config": {} + } + ] + }, + { + "id": "27c412ff-97ef-49d2-8a80-f42fd8649b7a", + "name": "role_list", + "description": "SAML role list", + "protocol": "saml", + "attributes": { + "consent.screen.text": "${samlRoleListScopeConsentText}", + "display.on.consent.screen": "true" + }, + "protocolMappers": [ + { + "id": "377da2df-94e7-43de-98f6-b3b4326cfa02", + "name": "role list", + "protocol": "saml", + "protocolMapper": "saml-role-list-mapper", + "consentRequired": false, + "config": { + "single": "false", + "attribute.nameformat": "Basic", + "attribute.name": "Role" + } + } + ] + }, + { + "id": "39e41a56-6439-40da-9aa7-fa3b8a57c759", + "name": "web-origins", + "description": "OpenID Connect scope for add allowed web origins to the access token", + "protocol": "openid-connect", + "attributes": { + "include.in.token.scope": "false", + "display.on.consent.screen": "false", + "consent.screen.text": "" + }, + "protocolMappers": [ + { + "id": "bb450b68-fcda-4f82-b16c-6d83cd28aa8f", + "name": "allowed web origins", + "protocol": "openid-connect", + "protocolMapper": "oidc-allowed-origins-mapper", + "consentRequired": false, + "config": {} + } + ] + } + ], + "defaultDefaultClientScopes": [ + "role_list", + "web-origins", + "roles", + "profile", + "email" + ], + "defaultOptionalClientScopes": [ + "microprofile-jwt", + "phone", + "address", + "offline_access" + ], + "browserSecurityHeaders": { + "contentSecurityPolicyReportOnly": "", + "xContentTypeOptions": "nosniff", + "xRobotsTag": "none", + "xFrameOptions": "SAMEORIGIN", + "contentSecurityPolicy": "frame-src 'self'; frame-ancestors 'self'; object-src 'none';", + "xXSSProtection": "1; mode=block", + "strictTransportSecurity": "max-age=31536000; includeSubDomains" + }, + "smtpServer": {}, + "eventsEnabled": false, + "eventsListeners": [ + "jboss-logging" + ], + "enabledEventTypes": [], + "adminEventsEnabled": false, + "adminEventsDetailsEnabled": false, + "components": { + "org.keycloak.services.clientregistration.policy.ClientRegistrationPolicy": [ + { + "id": "34e415a5-18a4-4e32-a17c-daf41c5cbf19", + "name": "Full Scope Disabled", + "providerId": "scope", + "subType": "anonymous", + "subComponents": {}, + "config": {} + }, + { + "id": "7d113054-e7c7-44cb-a6d8-d257195b1364", + "name": "Consent Required", + "providerId": "consent-required", + "subType": "anonymous", + "subComponents": {}, + "config": {} + }, + { + "id": "388b5ffd-ea57-48bc-b7af-43b21b529e8a", + "name": "Allowed Protocol Mapper Types", + "providerId": "allowed-protocol-mappers", + "subType": "anonymous", + "subComponents": {}, + "config": { + "allowed-protocol-mapper-types": [ + "oidc-full-name-mapper", + "oidc-usermodel-property-mapper", + "saml-user-property-mapper", + "oidc-address-mapper", + "saml-role-list-mapper", + "oidc-sha256-pairwise-sub-mapper", + "oidc-usermodel-attribute-mapper", + "saml-user-attribute-mapper" + ] + } + }, + { + "id": "70080b90-b144-421e-9ec4-4106a6181d88", + "name": "Max Clients Limit", + "providerId": "max-clients", + "subType": "anonymous", + "subComponents": {}, + "config": { + "max-clients": [ + "200" + ] + } + }, + { + "id": "d556fcc1-038a-4ed2-992b-5803e4c599be", + "name": "Allowed Client Scopes", + "providerId": "allowed-client-templates", + "subType": "authenticated", + "subComponents": {}, + "config": { + "allow-default-scopes": [ + "true" + ] + } + }, + { + "id": "67803167-d874-41b2-970b-b2de89d0250b", + "name": "Allowed Protocol Mapper Types", + "providerId": "allowed-protocol-mappers", + "subType": "authenticated", + "subComponents": {}, + "config": { + "allowed-protocol-mapper-types": [ + "oidc-full-name-mapper", + "saml-role-list-mapper", + "oidc-sha256-pairwise-sub-mapper", + "oidc-address-mapper", + "oidc-usermodel-attribute-mapper", + "oidc-usermodel-property-mapper", + "saml-user-property-mapper", + "saml-user-attribute-mapper" + ] + } + }, + { + "id": "a4381728-f174-492f-9404-c8ecaddc8bd9", + "name": "Allowed Client Scopes", + "providerId": "allowed-client-templates", + "subType": "anonymous", + "subComponents": {}, + "config": { + "allow-default-scopes": [ + "true" + ] + } + }, + { + "id": "c60d614f-36b1-4a0f-b359-f2c4c7e7a2d5", + "name": "Trusted Hosts", + "providerId": "trusted-hosts", + "subType": "anonymous", + "subComponents": {}, + "config": { + "host-sending-registration-request-must-match": [ + "true" + ], + "client-uris-must-match": [ + "true" + ] + } + } + ], + "org.keycloak.keys.KeyProvider": [ + { + "id": "472544bd-20bd-467d-8d5c-f71468017b90", + "name": "aes-generated", + "providerId": "aes-generated", + "subComponents": {}, + "config": { + "priority": [ + "100" + ] + } + }, + { + "id": "56cdedf5-b827-4ca7-be55-8e12df78b974", + "name": "rsa-generated", + "providerId": "rsa-generated", + "subComponents": {}, + "config": { + "priority": [ + "100" + ] + } + }, + { + "id": "9d0c7f22-b432-4223-baf1-83dbfbca38db", + "name": "hmac-generated", + "providerId": "hmac-generated", + "subComponents": {}, + "config": { + "priority": [ + "100" + ], + "algorithm": [ + "HS256" + ] + } + } + ] + }, + "internationalizationEnabled": false, + "supportedLocales": [], + "authenticationFlows": [ + { + "id": "8357d622-c8b1-428d-b134-3315622f398d", + "alias": "Account verification options", + "description": "Method with which to verity the existing account", + "providerId": "basic-flow", + "topLevel": false, + "builtIn": true, + "authenticationExecutions": [ + { + "authenticator": "idp-email-verification", + "requirement": "ALTERNATIVE", + "priority": 10, + "userSetupAllowed": false, + "autheticatorFlow": false + }, + { + "requirement": "ALTERNATIVE", + "priority": 20, + "flowAlias": "Verify Existing Account by Re-authentication", + "userSetupAllowed": false, + "autheticatorFlow": true + } + ] + }, + { + "id": "f373c5c3-0467-47c7-8aa4-f6fe1acfe380", + "alias": "Authentication Options", + "description": "Authentication options.", + "providerId": "basic-flow", + "topLevel": false, + "builtIn": true, + "authenticationExecutions": [ + { + "authenticator": "basic-auth", + "requirement": "REQUIRED", + "priority": 10, + "userSetupAllowed": false, + "autheticatorFlow": false + }, + { + "authenticator": "basic-auth-otp", + "requirement": "DISABLED", + "priority": 20, + "userSetupAllowed": false, + "autheticatorFlow": false + }, + { + "authenticator": "auth-spnego", + "requirement": "DISABLED", + "priority": 30, + "userSetupAllowed": false, + "autheticatorFlow": false + } + ] + }, + { + "id": "1647396e-5d80-47c0-9780-1b0601d81f55", + "alias": "Browser - Conditional OTP", + "description": "Flow to determine if the OTP is required for the authentication", + "providerId": "basic-flow", + "topLevel": false, + "builtIn": true, + "authenticationExecutions": [ + { + "authenticator": "conditional-user-configured", + "requirement": "REQUIRED", + "priority": 10, + "userSetupAllowed": false, + "autheticatorFlow": false + }, + { + "authenticator": "auth-otp-form", + "requirement": "REQUIRED", + "priority": 20, + "userSetupAllowed": false, + "autheticatorFlow": false + } + ] + }, + { + "id": "4b75ca24-90fb-46da-ba2b-ba11e96b9cee", + "alias": "Direct Grant - Conditional OTP", + "description": "Flow to determine if the OTP is required for the authentication", + "providerId": "basic-flow", + "topLevel": false, + "builtIn": true, + "authenticationExecutions": [ + { + "authenticator": "conditional-user-configured", + "requirement": "REQUIRED", + "priority": 10, + "userSetupAllowed": false, + "autheticatorFlow": false + }, + { + "authenticator": "direct-grant-validate-otp", + "requirement": "REQUIRED", + "priority": 20, + "userSetupAllowed": false, + "autheticatorFlow": false + } + ] + }, + { + "id": "df72819f-b96b-47b9-88f5-bf0033798b40", + "alias": "First broker login - Conditional OTP", + "description": "Flow to determine if the OTP is required for the authentication", + "providerId": "basic-flow", + "topLevel": false, + "builtIn": true, + "authenticationExecutions": [ + { + "authenticator": "conditional-user-configured", + "requirement": "REQUIRED", + "priority": 10, + "userSetupAllowed": false, + "autheticatorFlow": false + }, + { + "authenticator": "auth-otp-form", + "requirement": "REQUIRED", + "priority": 20, + "userSetupAllowed": false, + "autheticatorFlow": false + } + ] + }, + { + "id": "241c2432-5771-4a42-90f3-4198b6e9fd62", + "alias": "Handle Existing Account", + "description": "Handle what to do if there is existing account with same email/username like authenticated identity provider", + "providerId": "basic-flow", + "topLevel": false, + "builtIn": true, + "authenticationExecutions": [ + { + "authenticator": "idp-confirm-link", + "requirement": "REQUIRED", + "priority": 10, + "userSetupAllowed": false, + "autheticatorFlow": false + }, + { + "requirement": "REQUIRED", + "priority": 20, + "flowAlias": "Account verification options", + "userSetupAllowed": false, + "autheticatorFlow": true + } + ] + }, + { + "id": "fc2f23d5-003a-4e2a-947b-8f426c52694c", + "alias": "Reset - Conditional OTP", + "description": "Flow to determine if the OTP should be reset or not. Set to REQUIRED to force.", + "providerId": "basic-flow", + "topLevel": false, + "builtIn": true, + "authenticationExecutions": [ + { + "authenticator": "conditional-user-configured", + "requirement": "REQUIRED", + "priority": 10, + "userSetupAllowed": false, + "autheticatorFlow": false + }, + { + "authenticator": "reset-otp", + "requirement": "REQUIRED", + "priority": 20, + "userSetupAllowed": false, + "autheticatorFlow": false + } + ] + }, + { + "id": "c152dd74-8690-4c1f-b83f-2da74289cc1e", + "alias": "User creation or linking", + "description": "Flow for the existing/non-existing user alternatives", + "providerId": "basic-flow", + "topLevel": false, + "builtIn": true, + "authenticationExecutions": [ + { + "authenticatorConfig": "create unique user config", + "authenticator": "idp-create-user-if-unique", + "requirement": "ALTERNATIVE", + "priority": 10, + "userSetupAllowed": false, + "autheticatorFlow": false + }, + { + "requirement": "ALTERNATIVE", + "priority": 20, + "flowAlias": "Handle Existing Account", + "userSetupAllowed": false, + "autheticatorFlow": true + } + ] + }, + { + "id": "db2da225-e43a-42ad-977f-508895169efa", + "alias": "Verify Existing Account by Re-authentication", + "description": "Reauthentication of existing account", + "providerId": "basic-flow", + "topLevel": false, + "builtIn": true, + "authenticationExecutions": [ + { + "authenticator": "idp-username-password-form", + "requirement": "REQUIRED", + "priority": 10, + "userSetupAllowed": false, + "autheticatorFlow": false + }, + { + "requirement": "CONDITIONAL", + "priority": 20, + "flowAlias": "First broker login - Conditional OTP", + "userSetupAllowed": false, + "autheticatorFlow": true + } + ] + }, + { + "id": "6bda8474-8636-4bff-9e86-b95552f5944a", + "alias": "browser", + "description": "browser based authentication", + "providerId": "basic-flow", + "topLevel": true, + "builtIn": true, + "authenticationExecutions": [ + { + "authenticator": "auth-cookie", + "requirement": "ALTERNATIVE", + "priority": 10, + "userSetupAllowed": false, + "autheticatorFlow": false + }, + { + "authenticator": "auth-spnego", + "requirement": "DISABLED", + "priority": 20, + "userSetupAllowed": false, + "autheticatorFlow": false + }, + { + "authenticator": "identity-provider-redirector", + "requirement": "ALTERNATIVE", + "priority": 25, + "userSetupAllowed": false, + "autheticatorFlow": false + }, + { + "requirement": "ALTERNATIVE", + "priority": 30, + "flowAlias": "forms", + "userSetupAllowed": false, + "autheticatorFlow": true + } + ] + }, + { + "id": "2dcccc92-8c58-4b18-9773-a991977fc829", + "alias": "clients", + "description": "Base authentication for clients", + "providerId": "client-flow", + "topLevel": true, + "builtIn": true, + "authenticationExecutions": [ + { + "authenticator": "client-secret", + "requirement": "ALTERNATIVE", + "priority": 10, + "userSetupAllowed": false, + "autheticatorFlow": false + }, + { + "authenticator": "client-jwt", + "requirement": "ALTERNATIVE", + "priority": 20, + "userSetupAllowed": false, + "autheticatorFlow": false + }, + { + "authenticator": "client-secret-jwt", + "requirement": "ALTERNATIVE", + "priority": 30, + "userSetupAllowed": false, + "autheticatorFlow": false + }, + { + "authenticator": "client-x509", + "requirement": "ALTERNATIVE", + "priority": 40, + "userSetupAllowed": false, + "autheticatorFlow": false + } + ] + }, + { + "id": "34a83f8f-e241-412e-93c5-398495bc8f2a", + "alias": "direct grant", + "description": "OpenID Connect Resource Owner Grant", + "providerId": "basic-flow", + "topLevel": true, + "builtIn": true, + "authenticationExecutions": [ + { + "authenticator": "direct-grant-validate-username", + "requirement": "REQUIRED", + "priority": 10, + "userSetupAllowed": false, + "autheticatorFlow": false + }, + { + "authenticator": "direct-grant-validate-password", + "requirement": "REQUIRED", + "priority": 20, + "userSetupAllowed": false, + "autheticatorFlow": false + }, + { + "requirement": "CONDITIONAL", + "priority": 30, + "flowAlias": "Direct Grant - Conditional OTP", + "userSetupAllowed": false, + "autheticatorFlow": true + } + ] + }, + { + "id": "d3849e68-145f-44ac-a360-d16930a6eb09", + "alias": "docker auth", + "description": "Used by Docker clients to authenticate against the IDP", + "providerId": "basic-flow", + "topLevel": true, + "builtIn": true, + "authenticationExecutions": [ + { + "authenticator": "docker-http-basic-authenticator", + "requirement": "REQUIRED", + "priority": 10, + "userSetupAllowed": false, + "autheticatorFlow": false + } + ] + }, + { + "id": "30ed0330-9d8a-4992-aa0c-56313cf60790", + "alias": "first broker login", + "description": "Actions taken after first broker login with identity provider account, which is not yet linked to any Keycloak account", + "providerId": "basic-flow", + "topLevel": true, + "builtIn": true, + "authenticationExecutions": [ + { + "authenticatorConfig": "review profile config", + "authenticator": "idp-review-profile", + "requirement": "REQUIRED", + "priority": 10, + "userSetupAllowed": false, + "autheticatorFlow": false + }, + { + "requirement": "REQUIRED", + "priority": 20, + "flowAlias": "User creation or linking", + "userSetupAllowed": false, + "autheticatorFlow": true + } + ] + }, + { + "id": "2521a30f-27ba-441e-821b-8515f63380c9", + "alias": "forms", + "description": "Username, password, otp and other auth forms.", + "providerId": "basic-flow", + "topLevel": false, + "builtIn": true, + "authenticationExecutions": [ + { + "authenticator": "auth-username-password-form", + "requirement": "REQUIRED", + "priority": 10, + "userSetupAllowed": false, + "autheticatorFlow": false + }, + { + "requirement": "CONDITIONAL", + "priority": 20, + "flowAlias": "Browser - Conditional OTP", + "userSetupAllowed": false, + "autheticatorFlow": true + } + ] + }, + { + "id": "3f9984f5-a163-4b57-a947-1a7b72240dec", + "alias": "http challenge", + "description": "An authentication flow based on challenge-response HTTP Authentication Schemes", + "providerId": "basic-flow", + "topLevel": true, + "builtIn": true, + "authenticationExecutions": [ + { + "authenticator": "no-cookie-redirect", + "requirement": "REQUIRED", + "priority": 10, + "userSetupAllowed": false, + "autheticatorFlow": false + }, + { + "requirement": "REQUIRED", + "priority": 20, + "flowAlias": "Authentication Options", + "userSetupAllowed": false, + "autheticatorFlow": true + } + ] + }, + { + "id": "273c03f3-8fc2-4e81-a9f7-fbf72158e129", + "alias": "registration", + "description": "registration flow", + "providerId": "basic-flow", + "topLevel": true, + "builtIn": true, + "authenticationExecutions": [ + { + "authenticator": "registration-page-form", + "requirement": "REQUIRED", + "priority": 10, + "flowAlias": "registration form", + "userSetupAllowed": false, + "autheticatorFlow": true + } + ] + }, + { + "id": "07afd274-0910-43d8-b627-422d4d9e2ed8", + "alias": "registration form", + "description": "registration form", + "providerId": "form-flow", + "topLevel": false, + "builtIn": true, + "authenticationExecutions": [ + { + "authenticator": "registration-user-creation", + "requirement": "REQUIRED", + "priority": 20, + "userSetupAllowed": false, + "autheticatorFlow": false + }, + { + "authenticator": "registration-profile-action", + "requirement": "REQUIRED", + "priority": 40, + "userSetupAllowed": false, + "autheticatorFlow": false + }, + { + "authenticator": "registration-password-action", + "requirement": "REQUIRED", + "priority": 50, + "userSetupAllowed": false, + "autheticatorFlow": false + }, + { + "authenticator": "registration-recaptcha-action", + "requirement": "DISABLED", + "priority": 60, + "userSetupAllowed": false, + "autheticatorFlow": false + } + ] + }, + { + "id": "7b72931e-ad78-41fd-add0-1e622e208d55", + "alias": "reset credentials", + "description": "Reset credentials for a user if they forgot their password or something", + "providerId": "basic-flow", + "topLevel": true, + "builtIn": true, + "authenticationExecutions": [ + { + "authenticator": "reset-credentials-choose-user", + "requirement": "REQUIRED", + "priority": 10, + "userSetupAllowed": false, + "autheticatorFlow": false + }, + { + "authenticator": "reset-credential-email", + "requirement": "REQUIRED", + "priority": 20, + "userSetupAllowed": false, + "autheticatorFlow": false + }, + { + "authenticator": "reset-password", + "requirement": "REQUIRED", + "priority": 30, + "userSetupAllowed": false, + "autheticatorFlow": false + }, + { + "requirement": "CONDITIONAL", + "priority": 40, + "flowAlias": "Reset - Conditional OTP", + "userSetupAllowed": false, + "autheticatorFlow": true + } + ] + }, + { + "id": "2e95fbe8-90de-4ad0-af7c-b8a598456a19", + "alias": "saml ecp", + "description": "SAML ECP Profile Authentication Flow", + "providerId": "basic-flow", + "topLevel": true, + "builtIn": true, + "authenticationExecutions": [ + { + "authenticator": "http-basic-authenticator", + "requirement": "REQUIRED", + "priority": 10, + "userSetupAllowed": false, + "autheticatorFlow": false + } + ] + } + ], + "authenticatorConfig": [ + { + "id": "0c8464aa-a2ea-479e-9f21-e3b4ba670b46", + "alias": "create unique user config", + "config": { + "require.password.update.after.registration": "false" + } + }, + { + "id": "060e864c-a566-4551-ba54-2c280aafda02", + "alias": "review profile config", + "config": { + "update.profile.on.first.login": "missing" + } + } + ], + "requiredActions": [ + { + "alias": "CONFIGURE_TOTP", + "name": "Configure OTP", + "providerId": "CONFIGURE_TOTP", + "enabled": true, + "defaultAction": false, + "priority": 10, + "config": {} + }, + { + "alias": "terms_and_conditions", + "name": "Terms and Conditions", + "providerId": "terms_and_conditions", + "enabled": false, + "defaultAction": false, + "priority": 20, + "config": {} + }, + { + "alias": "UPDATE_PASSWORD", + "name": "Update Password", + "providerId": "UPDATE_PASSWORD", + "enabled": true, + "defaultAction": false, + "priority": 30, + "config": {} + }, + { + "alias": "UPDATE_PROFILE", + "name": "Update Profile", + "providerId": "UPDATE_PROFILE", + "enabled": true, + "defaultAction": false, + "priority": 40, + "config": {} + }, + { + "alias": "VERIFY_EMAIL", + "name": "Verify Email", + "providerId": "VERIFY_EMAIL", + "enabled": true, + "defaultAction": false, + "priority": 50, + "config": {} + }, + { + "alias": "update_user_locale", + "name": "Update User Locale", + "providerId": "update_user_locale", + "enabled": true, + "defaultAction": false, + "priority": 1000, + "config": {} + } + ], + "browserFlow": "browser", + "registrationFlow": "registration", + "directGrantFlow": "direct grant", + "resetCredentialsFlow": "reset credentials", + "clientAuthenticationFlow": "clients", + "dockerAuthenticationFlow": "docker auth", + "attributes": {}, + "keycloakVersion": "9.0.2", + "userManagedAccessAllowed": false +} \ No newline at end of file diff --git a/compose/mysql-init/01-databases.sql b/compose/mysql-init/01-databases.sql new file mode 100644 index 0000000..76e1ab4 --- /dev/null +++ b/compose/mysql-init/01-databases.sql @@ -0,0 +1,12 @@ +# create databases +CREATE DATABASE IF NOT EXISTS `osdb`; +CREATE DATABASE IF NOT EXISTS `keycloak`; + +# create root user and grant rights +CREATE USER 'portaluser'@'localhost' IDENTIFIED BY '12345'; +GRANT ALL PRIVILEGES ON *.* TO 'portaluser'@'%' IDENTIFIED BY '12345'; + + +# create root user and grant rights +CREATE USER 'keycloak'@'localhost' IDENTIFIED BY 'password'; +GRANT ALL PRIVILEGES ON *.* TO 'keycloak'@'%' IDENTIFIED BY 'password'; diff --git a/compose/nginx/.gitignore b/compose/nginx/.gitignore new file mode 100644 index 0000000..a772b85 --- /dev/null +++ b/compose/nginx/.gitignore @@ -0,0 +1 @@ +/nginx.conf diff --git a/compose/nginx/certificates/readme.txt b/compose/nginx/certificates/readme.txt new file mode 100644 index 0000000..6ee01e6 --- /dev/null +++ b/compose/nginx/certificates/readme.txt @@ -0,0 +1,3 @@ +here to deploy the certificates +fullchain.pem +privkey.pem \ No newline at end of file diff --git a/compose/nginx/nginx.conf.default b/compose/nginx/nginx.conf.default new file mode 100644 index 0000000..edb8e98 --- /dev/null +++ b/compose/nginx/nginx.conf.default @@ -0,0 +1,122 @@ +user nginx; +worker_processes 1; + +error_log /var/log/nginx/error.log warn; +pid /var/run/nginx.pid; + + +events { + worker_connections 1024; +} + + +http { + include /etc/nginx/mime.types; + default_type application/octet-stream; + client_max_body_size 5000M; + + log_format main '$remote_addr - $remote_user [$time_local] "$request" ' + '$status $body_bytes_sent "$http_referer" ' + '"$http_user_agent" "$http_x_forwarded_for"'; + + access_log /var/log/nginx/access.log main; + + sendfile on; + #tcp_nopush on; + + keepalive_timeout 65; + + #gzip on; + + #include /etc/nginx/conf.d/*.conf; + + server { + listen 80; + listen [::]:80; + server_name localhost; + + location / { + root /webstatic/services/; + index index.html; + try_files $uri $uri/ /index.html; + } + + +# location / { +# root /webstatic/nfvportal/openslicehome; +# index index.html; +# } + + + + location /nfvportal { + root /webstatic; + index index.html; + autoindex off; + try_files $uri $uri/ /nfvportal/index.html; + } + + + + location /osapi { + proxy_pass http://osportalapi:13000/osapi; + proxy_set_header X-Real-IP $remote_addr; + proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for; + proxy_set_header Host $http_host; + } + + location /tmf-api { + proxy_pass http://osscapi:13082/tmf-api; + proxy_set_header X-Real-IP $remote_addr; + proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for; + proxy_set_header Host $http_host; + } + + location /oas-api { + proxy_pass http://oasapi:13101/oas-api; + proxy_set_header X-Real-IP $remote_addr; + proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for; + proxy_set_header Host $http_host; + } + + location /auth { + proxy_pass http://keycloak:8080/auth; + proxy_set_header X-Real-IP $remote_addr; + proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for; + proxy_set_header Host $http_host; + } + + location /kroki { + rewrite /kroki/(.*) /$1 break; + proxy_pass http://kroki:8000; + proxy_set_header X-Real-IP $remote_addr; + proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for; + proxy_set_header Host $http_host; + } + + +# location /auth { +# proxy_pass https://keycloak:8443/auth; +# proxy_set_header X-Real-IP $remote_addr; +# proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for; +# proxy_set_header Host $http_host; +# proxy_set_header X-Forwarded-Server $host; +# proxy_set_header X-Forwarded-Proto $scheme; +# proxy_set_header X-Forwarded-Port 443; +# } + + + + + } + + + + + + + + + +} + diff --git a/compose/readme.txt b/compose/readme.txt new file mode 100644 index 0000000..3896a14 --- /dev/null +++ b/compose/readme.txt @@ -0,0 +1,109 @@ +backend API Development + +nginx.conf: +- comment location /osapi +- comment location /tmf-api +- comment location /oas-api + +fix auth location in nginx.conf as follows: + + location /auth { + proxy_pass http://keycloak:8080/auth; + proxy_set_header X-Real-IP $remote_addr; + proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for; + proxy_set_header Host $http_host; + } + + +docker-compose --profile dev down;docker-compose --profile dev up -d + +Keycloak for development + + +Add 127.0.0.1 keycloak in your hosts file and replace http://localhost/auth/ with http://keycloak:8080/auth/ in your Keycloak config for TypeScript/Angular. + +Hosts File Location: + +In Linux/Unix, its location is at: /etc/hosts In windows, its location is at c:\Windows\System32\Drivers\etc\hosts. + +Explanation: + + The Nginx uses the http://keycloak:8080 URL which is the network inside the docker system. + The front-end (TS/Angular) uses the http://keycloak:8080 + You will not get the invalid token error, as you are getting the token from http://keycloak:8080 and as well verifying with the same URL. + + + +nginx serves already the frontend from the project org.etsi.osl.tmf.web + + + + +If you would like to use the frontend to test your backend config.prod.json should look similar to the following example + + +{ + "TITLE": "Openslice demo", + "PORTALVERSION":"1.1.0-SNAPSHOT", + "WIKI": "http://wiki.localhost", + "BUGZILLA": "{BASEURL}/bugzilla/", + "STATUS": "http://status.localhost/", + "WEBURL": "{BASEURL}", + "PORTAL_REPO_APIURL": "{BASEURL}/osapi", + "ASSURANCE_SERVICE_MGMT_APIURL": "{BASEURL}/oas-api", + "APITMFURL": "http://localhost:13082/tmf-api", + "OAUTH_CONFIG" : { + "issuer": "http://keycloak:8080/auth/realms/openslice/protocol/openid-connect/auth", + "loginUrl": "http://keycloak:8080/auth/realms/openslice/protocol/openid-connect/auth", + "tokenEndpoint": "http://keycloak:8080/auth/realms/openslice/protocol/openid-connect/token", + "redirectUri": "{BASEURL}/redirect", + "logoutUrl": "{BASEURL}/auth/realms/openslice/protocol/openid-connect/logout", + "postLogoutRedirectUri": "{BASEURL}/services/services_marketplace", + + "responseType": "code", + "oidc": false, + "clientId": "osapiWebClientId", + "dummyClientSecret": "secret", + + "requireHttps": false, + "useHttpBasicAuth": true, + "clearHashAfterLogin": false, + + "showDebugInformation": true + } +} + + + +for the NFV frontend, config.js should be like the following: + +var appConfig = angular.module('portalwebapp.config',[]); + + +appConfig.factory('APIEndPointService', function() { + return { + TITLE: "Openslice", + WIKI: "ROOTURL", + BUGZILLA: "ROOTURL/bugzilla/", + STATUS: "ROOTURL/status/", + APIURL: "http://localhost:13000", + WEBURL: "ROOTURL/nfvportal", + APIOAUTHURL: "http://keycloak:8080/auth/realms/openslice", + APITMFURL: "http://localhost:13082/tmf-api/serviceCatalogManagement/v4" + + }; +}); + + + + + +--- + +Run openslice on host + +Build first + +docker-compose --profile prod down;docker-compose --profile prod up -d --build + + \ No newline at end of file diff --git a/doc/alarms_actions.md b/doc/alarms_actions.md new file mode 100644 index 0000000..b771549 --- /dev/null +++ b/doc/alarms_actions.md @@ -0,0 +1,113 @@ +# Alarms + +In Openslice parts of TMF642 Alarm Management API are currently implemented. Alarms can be managed through the TMF API endpoint as well as the UI. + + + +## Alarms and Actions + +Note: Actions is an experimental feature. We expect to have a more mature solution in future. The component in the architecture is the Openslcie Assurance Services + +Alarms can be automatically resolved by specific actions. Today only the following actions are offered. + +* execDay2 +* scaleServiceEqually + + +## execDay2 + +Usually used to perform a Day2 configuration (towards OSM). To use it, Create a New Action Specification Name=execDay2 as following + +[![Openslice usage](./images/alarms_actions/day2actionspec.png)](./images/alarms_actions/day2actionspec.png) + + +Now make a Service Order for your service. In this example ςε used a cirros NSD + +Create a New Action Rule for the running services as the following example: + + +[![Openslice usage](./images/alarms_actions/action_rule_exampleday2.png)](./images/alarms_actions/action_rule_exampleday2.png) + +The scope is the running cirros service. + +Params should be paramname=value;paramname2=value2;paramname3=value3 (must exist in the VNF otherwise OSM will raise an error). + +In this case should be filename=test.txt + +Primitive=touch + +ServiceId = select the service which will accept the Day2. In this case is the same + +To test it: + +Go to the Service Inventory and select the active Service. + +Note the UUID of the service (e.g. c4e7990a-e174-4cd2-9133-b10e56721e08 copy from address bar), DeploymentRequestID and NSDID from characteristics + +You can either use the UUID of the service or the DeploymentRequestID and POST to the Alarms endpoint ( /tmf-api/alarmManagement/v4/alarm) + + +If the DeploymentRequestID is used then POST: + +``` + +{ + "alarmRaisedTime": "2021-06-29T12:30:24.675Z", + "alarmReportingTime": "2021-06-29T12:30:54.675Z", + "state": "raised", + "alarmType": "qualityOfServiceAlarm", + "probableCause": "thresholdCrossed", + "ackState": "unacknowledged", + "perceivedSeverity": "major", + "sourceSystemId": "mano-client-service", + "alarmDetails": "NSID=3;DeploymentRequestID=1", + "specificProblem": "myalram raised" +} + +``` + + +If the UUID is used then POST: + +``` + +{ + "alarmRaisedTime": "2021-06-29T12:30:24.675Z", + "alarmReportingTime": "2021-06-29T12:30:54.675Z", + "state": "raised", + "alarmType": "qualityOfServiceAlarm", + "probableCause": "thresholdCrossed", + "ackState": "unacknowledged", + "perceivedSeverity": "major", + "sourceSystemId": "mano-client-service", + "alarmDetails": "analarm", + "specificProblem": "myalram raised", + "affectedService": [ + { + "id": "c4e7990a-e174-4cd2-9133-b10e56721e08" + } + ] + +} + +``` + +The Alarm to be created must have the affected Service ID equal to the running service from the scope (the cirros_ns) + +Go to service inventory you will see the notes and also the service characteristics for any EXEC_ACTION updates + +You can also adjust the alarm conditions. They must match true so the alarm to be acknowledged +So if another external service raises an Alarm (with POST) for the running service, a Day2 will be performed on another Service + + +## scaleServiceEqually + + +This action is used from getting a scaling event from OSM. Please see the next demo for details on how it works + + +### Prototype demo + +You can watch how we used the prototype on the following ETSI ZMS PoC #2 + +* ETSI ZMS PoC #2: diff --git a/doc/architecture/architecture.md b/doc/architecture/architecture.md new file mode 100644 index 0000000..9181348 --- /dev/null +++ b/doc/architecture/architecture.md @@ -0,0 +1,49 @@ +# Architecture + + +Openslice offers the following main functionalities: + +* Service Catalog Management: A CSP will have the ability to manage the Service Catalog Items, their attributes , organize in categories and decide what to make available to Customers +* Services Specifications: A CSP will be able to manage Service Specifications +* Service Catalog Exposure: A CSP will be able to expose catalog to customers and related parties +* Service Catalog to Service Catalog: Openslice able to consume and provide Service Catalog items to other catalogs +* Service Order: The Customer will be able to place a Service Order +* Service Inventory: The Customer and Provider will be able to view deployed Services status + + +The following figure displays the overall architecture of Openslice. + +[![Openslice architecture](../images/architecture.png)](../images/architecture.png) + + +Openslice allows Vertical Customers browsing the available offered service specifications. It consists of: + +* Web frontend UIs that consist of mainly two portals: i) a NFV portal allowing users self-service management and onboarding VNFDs/NSDs to facility’s NFVO ii) a Services Portal, which allows users to browse the Service Catalog, Service Blueprints specifications and the Service Inventory +* An API gateway that proxies the internal APIs and used by the web front end as well as any other 3rd party service +* A Message Bus where all microservices use it to exchange messages either via message queues or via publish/subscribe topics +* An authentication server implementing Oauth2 authentication scheme +* A microservice offering TMF compliant API services (eg Service Catalog API, Service Ordering APIetc) +* A microservice offering NFV API services (eg VNF/NSD onboarding etc) and allows to store VNFDs and NSDs in a catalog +* A microservice that is capable to interface to an issue management system. For example it raises an issue to all related stakeholders (CSP, NOP, CSC) that a new Service Order is requested +* Central logging microservice that is capable to log all distributed actions in to an Elasticsearch cluster +* A Service Orchestrator solution that will propagate Service Ordering requests to the equivalent SOs and NFVOs + + +The following figure depicts how Openslice microservices are deployed + +[![Openslice microservices network deployment](../images/microservices_network_deployment.png)](../images/microservices_network_deployment.png) + + + +## Deploying Openslice in multi domain scenarios + +A typical deployment across domains, involves today some typical components: i) an OSS/BSS to allow customers access the service catalog and perform service orders, ii) a Service Orchestrator (SO) component for executing the service order workflow, as well as iii) a Network Functions Virtualization Orchestrator (NFVO) for configuring the iv) network resources. + +TMF Open APIs are introduced not only for exposing catalogues and accepting service orders, but also implementing the East-West interfaces between the domains, fulfilling also the LSO requirements as introduced by MEF. + +The following figure shows how openslice could be used in such scenarios: + +[![Openslice multi-domain-architecture](../images/multi-domain-architecture.png)](../images/multi-domain-architecture.png) + + +See more [Consuming Services From External Partner Organizations](./consumingServicesFromExternalPartners.md) diff --git a/doc/architecture/centrallog.md b/doc/architecture/centrallog.md new file mode 100644 index 0000000..a6cbc2b --- /dev/null +++ b/doc/architecture/centrallog.md @@ -0,0 +1,5 @@ +# Central Logging + +Openslice follows the centralized log management concept, i.e. a type of logging solution system that consolidates the log data from different services and pushes it to a central, accessible and easy-to-use interface. + +For that reason, Elasticsearch is elected as an open-source centralized logging solution for collecting, parsing and storing logs towards a real-time data analytics tool that provides insights from any type of structured and unstructured data source. \ No newline at end of file diff --git a/doc/architecture/consumingServicesFromExternalPartners.md b/doc/architecture/consumingServicesFromExternalPartners.md new file mode 100644 index 0000000..090a9f7 --- /dev/null +++ b/doc/architecture/consumingServicesFromExternalPartners.md @@ -0,0 +1,185 @@ +# Consuming Services From External Partner Organizations + +A typical deployment across domains, involves today some typical components: i) an OSS/BSS to allow customers access the service catalog and perform service orders, ii) a Service Orchestrator (SO) component for executing the service order workflow, as well as iii) a Network Functions Virtualization Orchestrator (NFVO) for configuring the iv) network resources. + +TMF Open APIs are introduced not only for exposing catalogues and accepting service orders, but also implementing the East-West interfaces between the domains, fulfilling also the LSO requirements as introduced by MEF. + +The following figure shows how openslice could be used in such scenarios: + +[![Openslice multi-domain-architecture](../images/multi-domain-architecture.png)](../images/multi-domain-architecture.png) + + +In Openslice we can consume services from 3rd parties via Open APIs. + +We use the TMF 632 Party Management model to specify Organizations that we can exchange items and other information such as: + +- Import Service Specifications +- Create a Service Order +- Use the Service Inventory to query the status of the service ordered to the external partner organization + +## Define an Organization as 3rd party to consume services East-West + +An organization must have the following characteristics in openslice catalog, like for example: + +"EXTERNAL_TMFAPI_BASEURL", "http://portal.openslice.io" + +"EXTERNAL_TMFAPI_CLIENTREGISTRATIONID", "authOpensliceProvider" + +"EXTERNAL_TMFAPI_OAUTH2CLIENTID", "osapiWebClientId" + +"EXTERNAL_TMFAPI_OAUTH2CLIENTSECRET", "secret" + +"EXTERNAL_TMFAPI_OAUTH2SCOPES", scopes + +"EXTERNAL_TMFAPI_OAUTH2TOKENURI", "http://portal.openslice.io/osapi-oauth-server/oauth/token" + +"EXTERNAL_TMFAPI_USERNAME", "admin" + +"EXTERNAL_TMFAPI_PASSWORD", "openslice" + +"EXTERNAL_TMFAPI_SERVICE_CATALOG_URLS" = "/tmf-api/serviceCatalogManagement/v4/serviceSpecification?type=CustomerFacingServiceSpecification" (this is optional, fetch a list of service specs it will be relative with the BASEURL. If the url is empty then no specs will be fetched, the EXTERNAL_TMFAPI_SERVICE_CATEGORY_URLS might be used) + +"EXTERNAL_TMFAPI_SERVICE_CATEGORY_URLS" = "/tmf-api/serviceCatalogManagement/v4/serviceCategory/{categoryid}" (this example will fetch all specs in a category. You may define comma separated URLs of categories API URL . This will fetch specifications of every defined category. If you want only one specific category put for example the uuid only of one category: "/tmf-api/serviceCatalogManagement/v4/serviceCategory/bda02821-bc4d-4bd6-b64b-d9c2aa5f8e6d". multiple urls should be "/tmf-api/serviceCatalogManagement/v4/serviceCategory/bda02821-bc4d-4bd6-b64b-d9c2aa5f8e6d,/tmf-api/serviceCatalogManagement/v4/serviceCategory/9b6d8bf3-abd2-43c4-8154-c8c6fe5545b2") + +"EXTERNAL_TMFAPI_SERVICE_SPEC" = "/tmf-api/serviceCatalogManagement/v4/serviceSpecification" + +"EXTERNAL_TMFAPI_SERVICE_ORDER_URLS"= "/test/v1/serviceorder" (this is optional) + + +An example Organization defined example in json: +``` + +{ + "uuid": "1a09a8b5-6bd5-444b-b0b9-a73c69eb42ae", + "@baseType": "BaseEntity", + "@schemaLocation": null, + "@type": null, + "href": null, + "name": "Openslice.io", + "id": "1a09a8b5-6bd5-444b-b0b9-a73c69eb42ae", + "isHeadOffice": null, + "isLegalEntity": null, + "nameType": null, + "organizationType": null, + "tradingName": null, + "contactMedium": [], + "creditRating": [], + "existsDuring": null, + "externalReference": [], + "organizationChildRelationship": [], + "organizationIdentification": [], + "organizationParentRelationship": null, + "otherName": [], + "partyCharacteristic": [ + { + "uuid": "3a2f7221-e0a2-4a6b-88d1-534c8e1963f6", + "@baseType": "BaseEntity", + "@schemaLocation": null, + "@type": null, + "href": null, + "name": "EXTERNAL_TMFAPI_CLIENTREGISTRATIONID", + "valueType": null, + "value": { + "value": "authOpensliceProvider", + "alias": null + } + }, + { + "uuid": "c24bb527-f178-4d38-9b93-2027c1732876", + "@baseType": "BaseEntity", + "@schemaLocation": null, + "@type": null, + "href": null, + "name": "EXTERNAL_TMFAPI_USERNAME", + "valueType": null, + "value": { + "value": "admin", + "alias": null + } + }, + { + "uuid": "27e45df8-414b-44c6-a5d5-3f064e2cfd3b", + "@baseType": "BaseEntity", + "@schemaLocation": null, + "@type": null, + "href": null, + "name": "EXTERNAL_TMFAPI_PASSWORD", + "valueType": null, + "value": { + "value": "openslice", + "alias": null + } + }, + { + "uuid": "e0e470b8-6024-4014-8a18-2333e5465ce1", + "@baseType": "BaseEntity", + "@schemaLocation": null, + "@type": null, + "href": null, + "name": "EXTERNAL_TMFAPI_OAUTH2CLIENTSECRET", + "valueType": null, + "value": { + "value": "secret", + "alias": null + } + }, + { + "uuid": "3e0de762-ac80-4c1e-a0a1-f265ff0899b4", + "@baseType": "BaseEntity", + "@schemaLocation": null, + "@type": null, + "href": null, + "name": "EXTERNAL_TMFAPI_OAUTH2SCOPES", + "valueType": null, + "value": { + "value": "admin;read", + "alias": null + } + }, + { + "uuid": "0bbb8314-f7f2-420d-9fed-ba054b15f886", + "@baseType": "BaseEntity", + "@schemaLocation": null, + "@type": null, + "href": null, + "name": "EXTERNAL_TMFAPI_OAUTH2TOKENURI", + "valueType": null, + "value": { + "value": "http://portal.openslice.io/osapi-oauth-server/oauth/token", + "alias": null + } + }, + { + "uuid": "3a567de4-79eb-4006-a500-3e5229b44175", + "@baseType": "BaseEntity", + "@schemaLocation": null, + "@type": null, + "href": null, + "name": "EXTERNAL_TMFAPI_OAUTH2CLIENTID", + "valueType": null, + "value": { + "value": "osapiWebClientId", + "alias": null + } + }, + { + "uuid": "6dca729f-dbe1-46b7-89f1-5c4f9fe89d4e", + "@baseType": "BaseEntity", + "@schemaLocation": null, + "@type": null, + "href": null, + "name": "EXTERNAL_TMFAPI_BASEURL", + "valueType": null, + "value": { + "value": "http://portal.openslice.io", + "alias": null + } + } + ], + "relatedParty": [], + "status": null, + "taxExemptionCertificate": [] +} + +``` + \ No newline at end of file diff --git a/doc/architecture/issuemgt.md b/doc/architecture/issuemgt.md new file mode 100644 index 0000000..b50f545 --- /dev/null +++ b/doc/architecture/issuemgt.md @@ -0,0 +1,7 @@ +# Issue Management + +For issue management support, Openslice relies on Bugzilla. Bugzilla is a ticketing tool that allows issue reporting and tracking via tickets to all relevant stakeholders. + +The figure below displays the overall issue management service architecture integrating Bugzilla as its core and how this tool interacts with other Openslice services presenting some distinctive scenarios. It should be noted that Bugzilla tickets will not only be used for bugs/errors, but also for general requests, e.g. Service Order procedure. + +[![Issue management system](../images/issue_management.png)](../images/issue_management.png) \ No newline at end of file diff --git a/doc/architecture/messagebus.md b/doc/architecture/messagebus.md new file mode 100644 index 0000000..a228afb --- /dev/null +++ b/doc/architecture/messagebus.md @@ -0,0 +1,816 @@ +# Message Bus and exchanged Messages + +Openslice has a Message bus which allows Openslice services to exchange messages via queues and topics. + +It is based on ActiveMQ. + +3rd party services can be attached to bus and subscribe to message topics or request resources via queues. + + +## QUEUE MESSAGES + +| Message | | +| ------------- |----------------| +|**Alias** | CATALOG_GET_SERVICEORDERS | +|**Name** | jms:queue:CATALOG.GET.SERVICEORDERS | +|**Type** | queue | +|**Destination** | TMF API service | +|**Producers** | OSOM | +|**Body** | | +|**Description** | Return a List as String Json| + +--- + +| Message | | +| ------------- |----------------| +|**Alias** | CATALOG_GET_SERVICEORDER_BY_ID | +|**Name** | jms:queue:CATALOG.GET.SERVICEORDER_BY_ID | +|**Type** | queue | +|**Destination** | TMF API service | +|**Producers** | OSOM | +|**Body** | String orderid | +|**Description** | Return a ServiceOrder as String Json | + +--- + + +| Message | | +| ------------- |----------------| +|**Alias** | CATALOG_UPD_SERVICEORDER_BY_ID | +|**Name** | jms:queue:CATALOG.UPD.SERVICEORDER_BY_ID | +|**Type** | queue | +|**Destination** | TMF API service | +|**Producers** | OSOM | +|**Body** | ServiceOrderUpdate serviceOrder | +|**Headers** | "orderid"= orderid | +|**Description** | Returns a ServiceOrder as String | + + +--- + +| Message | | +| ------------- |----------------| +|**Alias** | CATALOG_GET_SERVICESPEC_BY_ID | +|**Name** | jms:queue:CATALOG.GET.SERVICESPEC_BY_ID | +|**Type** | queue | +|**Destination** | TMF API service | +|**Producers** | OSOM | +|**Body** | specid | +|**Description** | Return a ServiceSpecification | + +--- + + +| Message | | +| ------------- |----------------| +|**Alias** | CATALOG_ADD_SERVICESPEC | +|**Name** | jms:queue:CATALOG.ADD.SERVICESPEC | +|**Type** | queue | +|**Destination** | TMF API service | +|**Producers** | CRIDGE | +|**Body** | ServiceSpecCreate | +|**Description** | Creates a ServiceSpecification and returns a ServiceSpecification as String | + +--- + + +| Message | | +| ------------- |----------------| +|**Alias** | CATALOG_UPD_SERVICESPEC | +|**Name** | jms:queue:CATALOG.UPD.SERVICESPEC | +|**Type** | queue | +|**Destination** | TMF API service | +|**Producers** | CRIDGE | +|**Body** | ServiceSpecUpdate | +|**Headers** | "serviceSpecid" = serviceSpecId| +|**Description** | Updates a ServiceSpecification and returns a ServiceSpecification as String. | +--- + + +| Message | | +| ------------- |----------------| +|**Alias** | CATALOG_UPDADD_SERVICESPEC | +|**Name** | jms:queue:CATALOG.UPDADD.SERVICESPEC | +|**Type** | queue | +|**Destination** | TMF API service | +|**Producers** | CRIDGE | +|**Body** | ServiceSpecUpdate | +|**Headers** | "serviceSpecid" = serviceSpecId, "forceId"=forceId | +|**Description** | Updates a ServiceSpecification and returns a ServiceSpecification as String. If forceId is true then tries to assign the requested ID to the spec | + +--- + +| Message | | +| ------------- |----------------| +|**Alias** | CATALOG_ADD_SERVICEORDER | +|**Name** | jms:queue:CATALOG.ADD.SERVICEORDER | +|**Type** | queue | +|**Destination** | TMF API service | +|**Producers** | OSOM | +|**Body** | ServiceOrderCreate serviceOrder | +|**Headers** | | +|**Description** | Creates a ServiceOrder and returns a ServiceOrder as String | + +--- + + + +| Message | | +| ------------- |----------------| +|**Alias** | CATALOG_GET_INITIAL_SERVICEORDERS_IDS | +|**Name** | jms:queue:CATALOG.GET.INITIAL_SERVICEORDERS | +|**Type** | queue | +|**Destination** | TMF API service | +|**Producers** | | +|**Body** | | +|**Description** | Return a List as String Json| + +--- + + +| Message | | +| ------------- |----------------| +|**Alias** | CATALOG_GET_SERVICEORDER_IDS_BY_STATE | +|**Name** | jms:queue:CATALOG.GET.ACKNOWLEDGED_SERVICEORDERS | +|**Type** | queue | +|**Destination** | TMF API service | +|**Producers** | OSOM | +|**Body** | | +|**Headers** | "orderstate"= orderState | +|**Description** | String Json ArrayList of ServiceOrders | + +--- + + +| Message | | +| ------------- |----------------| +|**Alias** | CATALOG_ADD_SERVICE | +|**Name** | jms:queue:CATALOG.ADD.SERVICE | +|**Type** | queue | +|**Destination** | TMF API service | +|**Producers** | OSOM | +|**Body** | ServiceCreate String json | +|**Headers** | "orderid"=orderid, "serviceSpecid"= specid | +|**Description** | Creates Service based an a Service Spec, Returns a Service object | + +--- + + +| Message | | +| ------------- |----------------| +|**Alias** | CATALOG_UPD_SERVICE | +|**Name** | jms:queue:CATALOG.UPD.SERVICE | +|**Type** | queue | +|**Destination** | TMF API service | +|**Producers** | | +|**Body** | ServiceUpdate | +|**Headers** | "serviceid" = serviceId, "propagateToSO" = true/false | +|**Description** | will update a service by id and return the service instance. If propagateToSO=true then any service change will be handled by OSOM. This is needed to be controlled in order to avoid update loops| + +--- + + +| Message | | +| ------------- |----------------| +|**Alias** | CATALOG_GET_SERVICE_BY_ID | +|**Name** | jms:queue:CATALOG.GET.SERVICE | +|**Type** | queue | +|**Destination** | TMF API service | +|**Producers** | OSOM | +|**Body** | String serviceID | +|**Description** | returns a Service instance | + +---| Message | | +| ------------- |----------------| +|**Alias** | CATALOG_GET_SERVICE_BY_ORDERID | +|**Name** | jms:queue:CATALOG.GET.SERVICE_BY_ORDERID | +|**Type** | queue | +|**Destination** | TMF API service | +|**Producers** | | +|**Body** | String serviceID | +|**Description** | returns Service IDs of a specific order given then order id | + +--- + + +| Message | | +| ------------- |----------------| +|**Alias** | CATALOG_SERVICE_QUEUE_ITEMS_GET | +|**Name** | jms:queue:CATALOG.SERVICEQUEUEITEMS.GET | +|**Type** | queue | +|**Destination** | TMF API service | +|**Producers** | OSOM | +|**Body** | | +|**Description** | returns a LIST OF Service Queue Items | +--- + +| Message | | +| ------------- |----------------| +|**Alias** | CATALOG_SERVICE_QUEUE_ITEM_UPD | +|**Name** | jms:queue:CATALOG.SERVICEQUEUEITEM.UPDATE | +|**Type** | queue | +|**Destination** | TMF API service | +|**Producers** | OSOM | +|**Body** | String SERVICEQUEUEITEM | +|**Headers** | "itemid" = SERVICEQUEUEITEM id | +|**Description** | ill update a service queue item by id and return the instance | +--- + +| Message | | +| ------------- |----------------| +|**Alias** | CATALOG_SERVICE_QUEUE_ITEM_DELETE | +|**Name** | jms:queue:CATALOG.SERVICEQUEUEITEM.DELETE | +|**Type** | queue | +|**Destination** | TMF API service | +|**Producers** | OSOM | +|**Body** | | +|**Headers** | "itemid" = SERVICEQUEUEITEM id | +|**Description** | ill delete a service queue item by id | + +--- + +| Message | | +| ------------- |----------------| +|**Alias** | CATALOG_SERVICES_TO_TERMINATE | +|**Name** | jms:queue:CATALOG.GET.SERVICETOTERMINATE | +|**Type** | queue | +|**Destination** | TMF API service | +|**Producers** | OSOM | +|**Body** | | +|**Headers** | | +|**Description** | Get a list of ACTIVE services with END DAte in the past | +--- + +| Message | | +| ------------- |----------------| +|**Alias** | CATALOG_SERVICES_OF_PARTNERS | +|**Name** | jms:queue:CATALOG.GET.SERVICESOFPARTNERS | +|**Type** | queue | +|**Destination** | TMF API service | +|**Producers** | OSOM | +|**Body** | | +|**Headers** | | +|**Description** | Get a list of ACTIVE services from the inventory of partners | + + + +--- + +| Message | | +| ------------- |----------------| +|**Alias** | NFV_CATALOG_GET_NSD_BY_ID | +|**Name** | jms:queue:NFVCATALOG.GET.NSD_BY_ID | +|**Type** | queue | +|**Destination** | NFV Catalog service | +|**Producers** | TMF API, OSOM | +|**Body** | NSDid | +|**Description** | Returns a NetworkServiceDescriptor object | + +--- + +| Message | | +| ------------- |----------------| +|**Alias** | NFV_CATALOG_DEPLOY_NSD_REQ | +|**Name** | jms:queue:NFVCATALOG.DEPLOY.NSD_REQ | +|**Type** | queue | +|**Destination** | NFV Catalog service | +|**Producers** | OSOM | +|**Body** | DeploymentDescriptor as Json String | +|**Headers** | NSD id | +|**Description** | Returns a DeploymentDescriptor object as json string containing deployment info| + +--- + +| Message | | +| ------------- |----------------| +|**Alias** | NFV_CATALOG_UPD_DEPLOYMENT_BY_ID | +|**Name** | jms:queue:NFVCATALOG.UPD.DEPLOYMENT_BY_ID | +|**Type** | queue | +|**Destination** | NFV Catalog service | +|**Producers** | OSOM | +|**Body** | DeploymentDescriptor as Json String | +|**Headers** | DeploymentDescriptor id | +|**Description** | Updates and Returns a DeploymentDescriptor object as json string containing deployment info| + +--- + + + +| Message | | +| ------------- |----------------| +|**Alias** | GET_USER_BY_USERNAME | +|**Name** | jms:queue:GET.USER_BY_USERNAME | +|**Type** | queue | +|**Destination** | NFV Catalog service (this is temproary for now) | +|**Producers** | TMF API | +|**Body** | username | +|**Headers** | | +|**Description** | Returns a PortalUser object as json string containing user info| + +--- + +| Message | | +| ------------- |----------------| +|**Alias** | NFV_CATALOG_GET_DEPLOYMENT_BY_ID | +|**Name** | jms:queue:NFVCATALOG.GET.DEPLOYMENT_BY_ID | +|**Type** | queue | +|**Destination** | NFV Catalog service | +|**Producers** | OSOM | +|**Body** | Deployment ID | +|**Description** | Returns a DeploymentDescriptor object | + +--- + +| Message | | +| ------------- |----------------| +|**Alias** | CATALOG_GET_EXTERNAL_SERVICE_PARTNERS | +|**Name** | jms:queue:CATALOG.GET.EXTERNALSERVICEPARTNERS | +|**Type** | queue | +|**Destination** | TMF API service | +|**Producers** | OSOM | +|**Body** | | +|**Headers** | | +|**Description** | As a String Json ArrayList of Organizaton objects containing the characteristic name **EXTERNAL_TMFAPI** | + +--- + + + +| Message | | +| ------------- |----------------| +|**Alias** | CATALOG_UPD_EXTERNAL_SERVICESPEC | +|**Name** | jms:queue:CATALOG.UPD.EXTERNAL_SERVICESPEC | +|**Type** | queue | +|**Destination** | TMF API service | +|**Producers** | OSOM or maybe used by others that would like to update a Service Spec | +|**Body** | A serviceSpecification as json string | +|**Headers** | servicespecification id, orgid id | +|**Description** | Updates (or inserts if does not exist in catalog) an external service specification) | + +--- + + + + +| Message | | +| ------------- |----------------| +|**Alias** | NFV_CATALOG_NSACTIONS_SCALE | +|**Name** | jms:queue:NSACTIONS.SCALE | +|**Type** | queue | +|**Destination** | TMF API service | +|**Producers** | OSOM or maybe used by others that would like scale a NS | +|**Body** | A ScaleDescriptor as json string | +|**Headers** | none | +|**Description** | performs a scale | + +--- + + +| Message | | +| ------------- |----------------| +|**Alias** | NFV_CATALOG_NS_LCMCHANGED | +|**Name** | NFV_CATALOG_NS_LCMCHANGED | +|**Type** | topic | +|**Destination** | any | +|**Producers** | MANO client | +|**Body** | A json string | +|**Headers** | none | +|**Description** | A NFV_CATALOG_NS_LCMCHANGED message is published when LCM of a running NS is changed | + +--- + +#ALARMS + + +| Message | | +| ------------- |----------------| +|**Alias** | ALARMS_ADD_ALARM | +|**Name** | jms:queue:ALARMS.ADD.ALARM | +|**Type** | queue | +|**Publishers** | | +|**Consumers** | TMF API | +|**Body** | AlarmCreate | +|**Headers** | | +|**Description** | Add an alarm | + +--- + +| Message | | +| ------------- |----------------| +|**Alias** | ALARMS_UPDATE_ALARM | +|**Name** | jms:queue:ALARMS.UPDATE.ALARM | +|**Type** | queue | +|**Publishers** | | +|**Consumers** | TMF API | +|**Body** | AlarmUpdate | +|**Headers** | alarmid = alarm id, body (AlarmUpdate object) | +|**Description** | Update an alarm | + +--- + +| Message | | +| ------------- |----------------| +|**Alias** | ALARMS_GET_ALARM | +|**Name** | jms:queue:ALARMS.GET.ALARM | +|**Type** | queue | +|**Publishers** | | +|**Consumers** | TMF API | +|**Body** | | +|**Headers** | alarmid = alarm id | +|**Description** | get an alarm | + +--- + +## EVENT TOPICS IN Message Bus +| Message | | +| ------------- |----------------| +|**Alias** | EVENT_SERVICE_CREATE | +|**Name** | jms:topic:EVENT.SERVICE.CREATE | +|**Type** | topic | +|**Publishers** | TMF API | +|**Consumers** | - | +|**Body** | Notification object | +|**Headers** | "eventid"=eventid, "objId"= objId | +|**Description** | xx | + +--- +| Message | | +| ------------- |----------------| +|**Alias** | EVENT_SERVICE_STATE_CHANGED | +|**Name** | jms:topic:EVENT.SERVICE.STATECHANGED | +|**Type** | topic | +|**Publishers** | TMF API | +|**Consumers** | - | +|**Body** | Notification object | +|**Headers** | "eventid"=eventid, "objId"= objId | +|**Description** | xx | + +--- +| Message | | +| ------------- |----------------| +|**Alias** | EVENT_SERVICE_DELETE | +|**Name** | jms:topic:EVENT.SERVICE.DELETE | +|**Type** | topic | +|**Publishers** | TMF API | +|**Consumers** | - | +|**Body** | Notification object. Can be one of ServiceOrderCreateNotification, ServiceOrderStateChangeNotification, ServiceOrderAttributeValueChangeNotification, ServiceOrderDeleteNotification, etc | +|**Headers** | "eventid"=eventid, "objId"= objId | +|**Description** | xx | + +--- + +| Message | | +| ------------- |----------------| +|**Alias** | EVENT_SERVICE_ATTRIBUTE_VALUE_CHANGED | +|**Name** | jms:topic:EVENT.SERVICE.ATTRCHANGED | +|**Type** | topic | +|**Publishers** | TMF API | +|**Consumers** | - | +|**Body** | Notification object. Can be one of ServiceOrderCreateNotification, ServiceOrderStateChangeNotification, ServiceOrderAttributeValueChangeNotification, ServiceOrderDeleteNotification, etc | +|**Headers** | "eventid"=eventid, "objId"= objId | +|**Description** | xx | + +--- + +| Message | | +| ------------- |----------------| +|**Alias** | EVENT_SERVICE_ORDER_CREATE | +|**Name** | jms:topic:EVENT.SERVICEORDER.CREATE | +|**Type** | topic | +|**Publishers** | TMF API | +|**Consumers** | BUGZILLA Service, CentralLog Service | +|**Body** | Notification object. Can be one of ServiceOrderCreateNotification, ServiceOrderStateChangeNotification, ServiceOrderAttributeValueChangeNotification, ServiceOrderDeleteNotification, etc | +|**Headers** | "eventid"=eventid, "objId"= objId | +|**Description** | The Event of the Notification object contains the ServiceOrder object. Bugzilla service for example uses this to create a new issue | + +--- + +| Message | | +| ------------- |----------------| +|**Alias** | EVENT_SERVICE_ORDER_STATE_CHANGED | +|**Name** | jms:topic:EVENT.SERVICEORDER.STATECHANGED | +|**Type** | topic | +|**Publishers** | TMF API | +|**Consumers** | BUGZILLA Service, CentralLog Service | +|**Body** | Notification object. Can be one of ServiceOrderCreateNotification, ServiceOrderStateChangeNotification, ServiceOrderAttributeValueChangeNotification, ServiceOrderDeleteNotification, etc | +|**Headers** | "eventid"=eventid, "objId"= objId | +|**Description** | The Event of the Notification object contains the ServiceOrder object. Bugzilla service for example uses this to update an issue | + +--- + +| Message | | +| ------------- |----------------| +|**Alias** | EVENT_SERVICE_ORDER_DELETE | +|**Name** | jms:topic:EVENT.SERVICEORDER.DELETE | +|**Type** | topic | +|**Publishers** | TMF API | +|**Consumers** | BUGZILLA Service, CentralLog Service | +|**Body** | Notification object. Can be one of ServiceOrderCreateNotification, ServiceOrderStateChangeNotification, ServiceOrderAttributeValueChangeNotification, ServiceOrderDeleteNotification, etc | +|**Headers** | "eventid"=eventid, "objId"= objId | +|**Description** | The Event of the Notification object contains the ServiceOrder object | + +--- + +| Message | | +| ------------- |----------------| +|**Alias** | EVENT_SERVICE_ORDER_ATTRIBUTE_VALUE_CHANGED | +|**Name** | jms:topic:EVENT.SERVICEORDER.ATTRCHANGED | +|**Type** | topic | +|**Publishers** | TMF API | +|**Consumers** | BUGZILLA Service, CentralLog Service | +|**Body** | Notification object. Can be one of ServiceOrderCreateNotification, ServiceOrderStateChangeNotification, ServiceOrderAttributeValueChangeNotification, ServiceOrderDeleteNotification, etc | +|**Headers** | "eventid"=eventid, "objId"= objId | +|**Description** | The Event of the Notification object contains the ServiceOrder object | + +--- + +| Message | | +| ------------- |----------------| +|**Alias** | EVENT_ALARM_CREATE | +|**Name** | jms:topic:EVENT.ALARM.CREATE | +|**Type** | topic | +|**Publishers** | TMF API | +|**Consumers** | OAS, BUGZILLA Service, CentralLog Service | +|**Body** | AlarmCreateEvent | +|**Headers** | | +|**Description** | The Event contains the Alarm object in payload | + +--- + +| Message | | +| ------------- |----------------| +|**Alias** | CATALOG_ADD_RESOURCE | +|**Name** | jms:queue:CATALOG.ADD.RESOURCE | +|**Type** | topic | +|**Publishers** | TMF API | +|**Consumers** | any | +|**Body** | ResourceCreate | +|**Headers** | | +|**Description** | The Body contains the ResourceCreate object to add | + +--- + +| Message | | +| ------------- |----------------| +|**Alias** | CATALOG_UPD_RESOURCE | +|**Name** | jms:queue:CATALOG.UPD.RESOURCE | +|**Type** | topic | +|**Publishers** | TMF API | +|**Consumers** | any | +|**Body** | ResourceUpdate | +|**Headers** | resourceid , propagateToSO | +|**Description** | The Body contains the ResourceCreate object to update | + +--- + + +| Message | | +| ------------- |----------------| +|**Alias** | CATALOG_GET_RESOURCE_BY_ID | +|**Name** | jms:queue:CATALOG.GET.RESOURCE | +|**Type** | topic | +|**Publishers** | TMF API | +|**Consumers** | any | +|**Body** | resourceid | +|**Headers** | | +|**Description** | The Body contains the ResourceCreate object to update | + +--- + +| Message | | +| ------------- |----------------| +|**Alias** | CATALOG_RESOURCES_OF_PARTNERS | +|**Name** | jms:queue:CATALOG.GET.SERVICESOFPARTNERS | +|**Type** | topic | +|**Publishers** | TMF API | +|**Consumers** | any | +|**Body** | none | +|**Headers** | none | +|**Description** | retrieve all active services of partners | + +--- +| Message | | +| ------------- |----------------| +|**Alias** | CATALOG_ADD_RESOURCESPEC | +|**Name** | jms:queue:CATALOG.ADD.RESOURCESPEC | +|**Type** | topic | +|**Publishers** | TMF API | +|**Consumers** | any | +|**Body** | ResourceSpecificationCreate | +|**Headers** | | +|**Description** | The Body contains the ResourceSpecificationCreate object to add | + +--- +| Message | | +| ------------- |----------------| +|**Alias** | CATALOG_UPD_RESOURCESPEC | +|**Name** | jms:queue:CATALOG.UPD.RESOURCESPEC | +|**Type** | topic | +|**Publishers** | TMF API | +|**Consumers** | any | +|**Body** | ResourceSpecificationUpdate | +|**Headers** | resourceSpecId | +|**Description** | The Body contains the ResourceSpecificationCreate object to update | + + +--- +| Message | | +| ------------- |----------------| +|**Alias** | CATALOG_GET_RESOURCESPEC_BY_ID | +|**Name** | jms:queue:CATALOG.GET.RESOURCESPEC_BY_ID | +|**Type** | topic | +|**Publishers** | TMF API | +|**Consumers** | any | +|**Body** | resourceSpecid | +|**Headers** | | +|**Description** | The Body contains the object id to find | + +--- + +| Message | | +| ------------- |----------------| +|**Alias** | CATALOG_UPDADD_RESOURCESPEC | +|**Name** | jms:queue:CATALOG.UPDADD.RESOURCESPEC | +|**Type** | topic | +|**Publishers** | TMF API | +|**Consumers** | any | +|**Body** | resourceid | +|**Headers** | | +|**Description** | The Body contains the ResourceSpecificationCreate object to update or create if not exist | + +--- + +| Message | | +| ------------- |----------------| +|**Alias** | EVENT_RESOURCE_CREATE | +|**Name** | jms:topic:EVENT.RESOURCE.CREATE | +|**Type** | topic | +|**Publishers** | TMF API | +|**Consumers** | BUGZILLA Service, CentralLog Service, other | +|**Body** | Notification object. | +|**Headers** | "eventid"=eventid, "objId"= objId | +|**Description** | The Event of the Notification object contains the Resource object | + +--- + +| Message | | +| ------------- |----------------| +|**Alias** | EVENT_RESOURCE_STATE_CHANGED | +|**Name** | jms:topic:EVENT.RESOURCE.STATECHANGED | +|**Type** | topic | +|**Publishers** | TMF API | +|**Consumers** | BUGZILLA Service, CentralLog Service, other | +|**Body** | Notification object. | +|**Headers** | "eventid"=eventid, "objId"= objId | +|**Description** | The Event of the Notification object contains the Resource object | + +--- + +| Message | | +| ------------- |----------------| +|**Alias** | EVENT_RESOURCE_DELETE | +|**Name** | jms:topic:EVENT.SERVICE.RESOURCE | +|**Type** | topic | +|**Publishers** | TMF API | +|**Consumers** | BUGZILLA Service, CentralLog Service, other | +|**Body** | Notification object. | +|**Headers** | "eventid"=eventid, "objId"= objId | +|**Description** | The Event of the Notification object contains the Resource object | + +--- + +| Message | | +| ------------- |----------------| +|**Alias** | EVENT_RESOURCE_ATTRIBUTE_VALUE_CHANGED | +|**Name** | jms:topic:EVENT.RESOURCE.ATTRCHANGED | +|**Type** | topic | +|**Publishers** | TMF API | +|**Consumers** | BUGZILLA Service, CentralLog Service, other | +|**Body** | Notification object. | +|**Headers** | "eventid"=eventid, "objId"= objId | +|**Description** | The Event of the Notification object contains the Resource object | + +--- + + +| Message | | +| ------------- |----------------| +|**Alias** | CATALOG_GET_LCMRULE_BY_ID | +|**Name** | jms:queue:CATALOG.GET.LCMRULE | +|**Type** | topic | +|**Publishers** | TMF API | +|**Consumers** | any | +|**Body** | lcmid | +|**Headers** | | +|**Description** | The Body contains the LCMRuleSpec object | + +--- + + +| Message | | +| ------------- |----------------| +|**Alias** | CATALOG_GET_LCMRULES_BY_SPECID_PHASE | +|**Name** | jms:queue:CATALOG.GET.LCMRULES_BY_SPECID_PHASE | +|**Type** | topic | +|**Publishers** | TMF API | +|**Consumers** | any | +|**Body** | | +|**Headers** | header.servicespecid, header.phasename | +|**Description** | The Body contains the LCMRuleSpec objects of the specific Service Spec and the specific phase | + + + + + +| Message | | +| ------------- |----------------| +|**Alias** | CATALOG_GET_SERVICETESTSPEC_BY_ID | +|**Name** | jms:queue:CATALOG.GET.SERVICETESTSPEC_BY_ID | +|**Type** | queue | +|**Destination** | TMF API service | +|**Producers** | OSOM | +|**Body** | specid | +|**Description** | Return a ServiceTestSpecification | + +--- + + +| Message | | +| ------------- |----------------| +|**Alias** | CATALOG_ADD_SERVICETEST | +|**Name** | jms:queue:CATALOG.ADD.SERVICETEST | +|**Type** | queue | +|**Destination** | TMF API service | +|**Producers** | OSOM | +|**Body** | ServiceTestCreate String json | +|**Headers** | "orderid"=orderid, "serviceTestSpecid"= specid | +|**Description** | Creates Service Test based an a Service Test Spec, Returns a ServiceTest object | + +--- + + + + + +| Message | | +| ------------- |----------------| +|**Alias** | CATALOG_UPD_SERVICETEST | +|**Name** | jms:queue:CATALOG.UPD.SERVICETEST | +|**Type** | queue | +|**Destination** | TMF API service | +|**Producers** | | +|**Body** | ServiceTestUpdate | +|**Headers** | "serviceid" = serviceId, "propagateToSO" = true/false | +|**Description** | will update a service test by id and return the service instance. If propagateToSO=true then any service change will be handled by OSOM. This is needed to be controlled in order to avoid update loops| + +--- + + +| Message | | +| ------------- |----------------| +|**Alias** | CATALOG_GET_SERVICETEST_BY_ID | +|**Name** | jms:queue:CATALOG.GET.SERVICETEST | +|**Type** | queue | +|**Destination** | TMF API service | +|**Producers** | OSOM | +|**Body** | String serviceID | +|**Description** | returns a Service TEST instance | + + +--- + +| Message | | +| ------------- |----------------| +|**Alias** | CRD_DEPLOY_CR_REQ | +|**Name** | jms:queue:CRD.DEPLOY.CR_REQ | +|**Type** | queue | +|**Destination** | CRD service | +|**Producers** | OSOM | +|**Body** | CR spec as String | +|**Headers** | related service id | +|**Description** | Returns a String object containing deployment info| + +--- + +| Message | | +| ------------- |----------------| +|**Alias** | CRD_PATCH_CR_REQ | +|**Name** | jms:queue:CRD.PATCH.CR_REQ | +|**Type** | queue | +|**Destination** | CRD service | +|**Producers** | OSOM | +|**Body** | CR as String | +|**Headers** | related service id | +|**Description** | Returns a String object containing PATCH info| + + +| Message | | +| ------------- |----------------| +|**Alias** | CRD_DELETE_CR_REQ | +|**Name** | jms:queue:CRD.DELETE.CR_REQ | +|**Type** | queue | +|**Destination** | CRD service | +|**Producers** | OSOM | +|**Body** | CR as String | +|**Headers** | related service id | +|**Description** | Returns a String object containing deletion info| \ No newline at end of file diff --git a/doc/architecture/nfvapi.md b/doc/architecture/nfvapi.md new file mode 100644 index 0000000..f31f195 --- /dev/null +++ b/doc/architecture/nfvapi.md @@ -0,0 +1,207 @@ +# API interaction + +## OAuth token + +See [oauth](./oauth.md) + +## Request a protected API resource + +Example: Get all vxfs (check the `Authorization:Bearer` to be correct) + +``` +curl -H "Authorization:Bearer eybGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJ1c2VyX25hbWUiOiJhZG1pbiIsInNjb3BlIjpbIm9wZW5hcGkiLCJhZG1pbiIsInJlYWQiLCJ3cml0ZSJdLCJvcmdhbml6YXRpb24iOiJteW9yZ2FuaXp0aW9uIiwiZXhwIjoxNTcxOTI0MjU2LCJhdXRob3JpdGllcyI6WyJST0xFX01FTlRPUiIsIlJPTEVfQURNSU4iXSwianRpIjoiNzNkZmIxODEtNTMwOS00MmExLThkOWUtOGM3YmQ0YTE1YmU0IiwiY2xpZW50X2lkIjoib3NhcGlXZWJDbGllbnRJZE91dCJ9.Pj_hxnyMGhFhN8avU_DiAw1-LlcaIz5Hp9HNqalw-X4" http://localhost:13000/osapi/admin/vxfs +``` +Example response: + +``` +[ + { + "id": 1, + "owner": { + "id": 1, + "organization": "ee", + "name": "Portal Administrator", + "email": "", + "username": "admin", + "createdAt": null + }, + "uuid": "a954daf2-16da-4b7e-ae42-4825936d453c", + "name": "cirros_vnfd", + "iconsrc": "/osapi/images/a954daf2-16da-4b7e-ae42-4825936d453c/cirros-64.png", + "shortDescription": "cirros_vnfd", + "longDescription": "Simple VNF example with a cirros", + "version": "1.0", + "packageLocation": "/osapi/packages/a954daf2-16da-4b7e-ae42-4825936d453c/cirros_vnf.tar.gz", + "dateCreated": 1568971426000, + "dateUpdated": 1568981107000, + "categories": [ + { + "id": 3, + "name": "Service", + "productsCount": 1, + "appscount": 0, + "vxFscount": 1 + }, + { + "id": 2, + "name": "Networking", + "productsCount": 1, + "appscount": 0, + "vxFscount": 1 + } + ], + "extensions": [], + "validationJobs": [], + "screenshots": "", + "vendor": "OSM", + "published": false, + "termsOfUse": null, + "descriptor": "vnfd-catalog:\n vnfd:\n - connection-point:\n - name: eth0\n type: VPORT\n description: Simple VNF example with a cirros\n id: cirros_vnfd\n logo: cirros-64.png\n mgmt-interface:\n cp: eth0\n name: cirros_vnfd\n short-name: cirros_vnfd\n vdu:\n - count: 1\n description: cirros_vnfd-VM\n id: cirros_vnfd-VM\n image: cirros034\n interface:\n - external-connection-point-ref: eth0\n name: eth0\n position: '1'\n type: EXTERNAL\n virtual-interface:\n bandwidth: '0'\n type: VIRTIO\n vpci: 0000:00:0a.0\n name: cirros_vnfd-VM\n vm-flavor:\n memory-mb: 512\n storage-gb: 1\n vcpu-count: 1\n vendor: OSM\n version: '1.0'\n", + "descriptorHTML": "

cirros_vnfd


Vendor: OSM
Version: 1.0
Description: Simple VNF example with a cirros
VM Count: 1
vCPU Count: 1
Memory: 512 MB
Storage: 1 GB
", + "certified": false, + "certifiedBy": null, + "validationStatus": "UNDER_REVIEW", + "packagingFormat": "OSMvFIVE", + "supportedMANOPlatforms": [ + { + "id": 1, + "name": "osm fivee", + "version": "osm fivee", + "description": "osm five" + } + ], + "vxfOnBoardedDescriptors": [], + "vfimagesVDU": [ + { + "id": 1, + "name": "cirros034", + "uuid": "d4549610-8abd-42ad-97f4-0a64e1c93977", + "shortDescription": "Automatically created during vxf cirros_vnfd submission. Owner must update.", + "packageLocation": null, + "publicURL": null, + "dateCreated": 1568971426000, + "dateUpdated": null, + "refVxFs": [ + { + "id": 1, + "name": "cirros_vnfd" + } + ], + "owner": { + "id": 1, + "organization": "ee", + "name": "Portal Administrator", + "email": "", + "username": "admin", + "active": true, + "currentSessionID": null, + "apikey": "e41c1cc4-aa56-4b7e-9f4d-64589549d768", + "createdAt": 1568711859000, + "roles": [ + "ADMIN", + "MENTOR" + ] + }, + "published": false, + "termsOfUse": null, + "deployedInfrastructures": [] + } + ] + }, + { + "id": 2, + "owner": { + "id": 1, + "organization": "ee", + "name": "Portal Administrator", + "email": "", + "username": "admin", + "createdAt": null + }, + "uuid": "4ab80095-a63e-4fe7-8598-e1c7e880706e", + "name": "cirros_sriov_vnfd", + "iconsrc": null, + "shortDescription": "cirros_sriov_vnf", + "longDescription": "Simple VNF example with a cirros SRIOV interface", + "version": "1.0", + "packageLocation": "/osapi/packages/4ab80095-a63e-4fe7-8598-e1c7e880706e/cirros_sriov.tar.gz", + "dateCreated": 1568971740000, + "dateUpdated": 1568981100000, + "categories": [ + { + "id": 4, + "name": "tyu", + "productsCount": 1, + "appscount": 0, + "vxFscount": 1 + }, + { + "id": 5, + "name": "tyi", + "productsCount": 1, + "appscount": 0, + "vxFscount": 1 + } + ], + "extensions": [], + "validationJobs": [], + "screenshots": "", + "vendor": "OSM", + "published": false, + "termsOfUse": null, + "descriptor": "vnfd:vnfd-catalog:\n vnfd:\n - connection-point:\n - name: eth0\n type: VPORT\n - name: eth1\n type: VPORT\n description: Simple VNF example with a cirros SRIOV interface\n id: cirros_sriov_vnfd\n logo: cirros-64.png\n mgmt-interface:\n cp: eth0\n name: cirros_sriov_vnf\n short-name: cirros_sriov_vnf\n vdu:\n - count: 1\n description: cirros_sriov_vnfd-VM\n guest-epa:\n cpu-pinning-policy: DEDICATED\n cpu-thread-pinning-policy: PREFER\n mempage-size: SMALL\n numa-node-policy:\n mem-policy: STRICT\n node:\n - id: '1'\n node-cnt: '1'\n id: cirros_sriov_vnfd-VM\n image: cirros-0.3.6-x86_64\n interface:\n - external-connection-point-ref: eth0\n name: eth0\n position: '1'\n type: EXTERNAL\n virtual-interface:\n bandwidth: '0'\n type: VIRTIO\n vpci: 0000:00:0a.0\n - external-connection-point-ref: eth1\n name: eth1\n position: '2'\n type: EXTERNAL\n virtual-interface:\n type: SR-IOV\n name: cirros_sriov_vnfd-VM\n vm-flavor:\n memory-mb: 4096\n storage-gb: 10\n vcpu-count: 4\n vendor: OSM\n version: '1.0'\n", + "descriptorHTML": "

cirros_sriov_vnf


Vendor: OSM
Version: 1.0
Description: Simple VNF example with a cirros SRIOV interface
VM Count: 1
vCPU Count: 1
Memory: 4096 MB
Storage: 10 GB
", + "certified": false, + "certifiedBy": null, + "validationStatus": "UNDER_REVIEW", + "packagingFormat": "OSMvFIVE", + "supportedMANOPlatforms": [ + { + "id": 1, + "name": "osm fivee", + "version": "osm fivee", + "description": "osm five" + } + ], + "vxfOnBoardedDescriptors": [], + "vfimagesVDU": [ + { + "id": 2, + "name": "cirros-0.3.6-x86_64", + "uuid": "be121176-1d62-4a1b-a3c1-7dce2e069d22", + "shortDescription": "Automatically created during vxf cirros_sriov_vnfd submission. Owner must update.", + "packageLocation": null, + "publicURL": null, + "dateCreated": 1568971740000, + "dateUpdated": null, + "refVxFs": [ + { + "id": 2, + "name": "cirros_sriov_vnfd" + } + ], + "owner": { + "id": 1, + "organization": "ee", + "name": "Portal Administrator", + "email": "", + "username": "admin", + "active": true, + "currentSessionID": null, + "apikey": "e41c1cc4-aa56-4b7e-9f4d-64589549d768", + "createdAt": 1568711859000, + "roles": [ + "ROLE_ADMIN", + "ROLE_MENTOR" + ] + }, + "published": false, + "termsOfUse": null, + "deployedInfrastructures": [] + } + ] + } +] +``` + + diff --git a/doc/architecture/nfvweb.md b/doc/architecture/nfvweb.md new file mode 100644 index 0000000..b96dee3 --- /dev/null +++ b/doc/architecture/nfvweb.md @@ -0,0 +1,11 @@ +# Openslice NFV Web Portal + +The [NFV Web Portal](http://portal.openslice.io/nfvportal) offers a domain-specific UI to manage NFV Services. + +Indicatively, the portal can be used to: +- Register new a new MANO provider (e.g. OSM) +- Synchronize the onboarded VNF/NS packages, and the VIMs of the registered MANO provider +- Onboard/Delete VNF/NS packages on specific MANO provider +- Deploy a NS to a target MANO provider + +More information can be found at [NFV Services](../nfvcatalogs.md). \ No newline at end of file diff --git a/doc/architecture/oauth.md b/doc/architecture/oauth.md new file mode 100644 index 0000000..e836842 --- /dev/null +++ b/doc/architecture/oauth.md @@ -0,0 +1,35 @@ +# Authentication Server + +Authentication is based on oAuth2. Our authentication service is a Keycloak server which is deployed with Openslice deployment + +API users needs to authenticate. +All APIs (except grant token request) must include Bearer token in request Authorization header. + + + +##OAuth token + +Get first an oauth token, using your username and password. +``` +curl -X POST http://portal.openslice.io/auth/realms/openslice/protocol/openid-connect/token -H 'Content-Type: application/x-www-form-urlencoded' -d 'username=demouser' -d 'password=demouser' -d 'grant_type=password' -d 'client_id=osapiWebClientId' +``` +response: + +``` + {"access_token":"eyJhbGciOiJSUzI1NiIsInR5cCIgOiAiSldUIiwia2lkIiA6ICJHZFRjQnpxczg2VW10NTRVZV8ybTJyWHJkV3dzaWdSZE9EUldMYm1memNvIn0.eyJleHAiOjE1ODgyNDA1NzAsImlhdCI6MTU4ODI0MDI3MCwianRpIjoiOGI2ZTU0NWUtNDIyYy00NzFiLWEwN2UtYTUzYzY1NDQ0MzZmIiwiaXNzIjoiaHR0cDovL3BvcnRhbC5vcGVuc2xpY2UuaW8vYXV0aC9yZWFsbXMvb3BlbnNsaWNlIiwiYXVkIjoiYWNjb3VudCIsInN1YiI6ImExYTI3NjVhLWVjODMtNDQ1Ni1iN2IyLTIwNzMxOTg2ZTAzNSIsInR5cCI6IkJlYXJlciIsImF6cCI6Im9zYXBpV2ViQ2xpZW50SWQiLCJzZXNzaW9uX3N0YXRlIjoiMzM1MGY0OTMtNjYyNy00MzczLTg1NDQtZGVmZDI3YWQzYzc0IiwiYWNyIjoiMSIsImFsbG93ZWQtb3JpZ2lucyI6WyJodHRwOi8vbG9jYWxob3N0OjEzMDgyIiwiaHR0cDovL2xvY2FsaG9zdCIsImh0dHA6Ly9vcGVuc2xpY2UuaW8iLCJodHRwOi8vbG9jYWxob3N0OjEzMDAwIiwiaHR0cDovL2xvY2FsaG9zdDo0MjAwIiwiaHR0cDovL3BvcnRhbC5vcGVuc2xpY2UuaW8iXSwicmVhbG1fYWNjZXNzIjp7InJvbGVzIjpbIk5GVl9ERVZFTE9QRVIiLCJvZmZsaW5lX2FjY2VzcyIsInVtYV9hdXRob3JpemF0aW9uIiwiRVhQRVJJTUVOVEVSIiwiVVNFUiJdfSwicmVzb3VyY2VfYWNjZXNzIjp7ImFjY291bnQiOnsicm9sZXMiOlsibWFuYWdlLWFjY291bnQiLCJtYW5hZ2UtYWNjb3VudC1saW5rcyIsInZpZXctcHJvZmlsZSJdfX0sInNjb3BlIjoicHJvZmlsZSBlbWFpbCIsImVtYWlsX3ZlcmlmaWVkIjp0cnVlLCJwcmVmZXJyZWRfdXNlcm5hbWUiOiJkZW1vdXNlciJ9.TnzzpRLMD94UTKpT5_wkr1h4_3KUQmr4TGvFLpJ7cZx-Klrv8tB_eRkWnPqqzCAM9G21a1qXboL8MLMW8ECzG7HYKpobKOGr7LSczMOTdA2ZDyBCRUSOdW77pchu54tJ0ITEkFaDwSKMKKt04V_Sy4U-eIndj0XzzRlkDolWDnK4Z2lRaXAI6fMwOKx1Toa6RfOcemxtzl3pdtjPx92zo6MaKlbIqHK82lxdK0k8aQQaT6TmIrXbZKV2dU_1d3O0q0dVUEZJ_1kzwqOFkmxr9w0EnndC6ccYJlDAr_-GgUhhhNOn5v6tjYLUQdj5e4KEAsxIPzaCreK4un7mEAPmDw","expires_in":300,"refresh_expires_in":1800,"refresh_token":"eyJhbGciOiJIUzI1NiIsInR5cCIgOiAiSldUIiwia2lkIiA6ICIwZjUxMDk5Yy0wNTIzLTRjNGQtODM0Zi1iNDc0YzBjOTA1MzkifQ.eyJleHAiOjE1ODgyNDIwNzAsImlhdCI6MTU4ODI0MDI3MCwianRpIjoiZmViOTg5NWEtOTY5ZS00MzIzLWJjY2QtZTY2YzQ0NGE1MzJlIiwiaXNzIjoiaHR0cDovL3BvcnRhbC5vcGVuc2xpY2UuaW8vYXV0aC9yZWFsbXMvb3BlbnNsaWNlIiwiYXVkIjoiaHR0cDovL3BvcnRhbC5vcGVuc2xpY2UuaW8vYXV0aC9yZWFsbXMvb3BlbnNsaWNlIiwic3ViIjoiYTFhMjc2NWEtZWM4My00NDU2LWI3YjItMjA3MzE5ODZlMDM1IiwidHlwIjoiUmVmcmVzaCIsImF6cCI6Im9zYXBpV2ViQ2xpZW50SWQiLCJzZXNzaW9uX3N0YXRlIjoiMzM1MGY0OTMtNjYyNy00MzczLTg1NDQtZGVmZDI3YWQzYzc0Iiwic2NvcGUiOiJwcm9maWxlIGVtYWlsIn0.cDTx9BE1Df8EfGYm3VLr_MNFeymxZtJhMtlK7PVbIuk","token_type":"bearer","not-before-policy":1586797346,"session_state":"3350f493-6627-4373-8544-defd27ad3c74","scope":"profile email"} + +``` + +The `access_token` will be used next as a Bearer. + +``` +curl http://portal.openslice.io/tmf-api/serviceCatalogManagement/v4/serviceCatalog -H 'Authorization: Bearer yJhbGciOiJSUzI1NiIsInR5cCIgOiAiSldUIiwia2lkIiA6ICJHZFRjQnpxczg2VW10NTRVZV8ybTJyWHJkV3dzaWdSZE9EUldMYm1memNvIn0.eyJleHAiOjE1ODgyNDA1MjQsImlhdCI6MTU4ODI0MDIyNCwianRpIjoiYjg0NGYxZDAtMzk3Mi00YTMyLThiMWEtZDAxMDY3OGZjMTQ4IiwiaXNzIjoiaHR0cDovL3BvcnRhbC5vcGVuc2xpY2UuaW8vYXV0aC9yZWFsbXMvb3BlbnNsaWNlIiwic3ViIjoiYTFhMjc2NWEtZWM4My00NDU2LWI3YjItMjA3MzE5ODZlMDM1IiwidHlwIjoiQmVhcmVyIiwiYXpwIjoiYWRtaW4tY2xpIiwic2Vzc2lvbl9zdGF0ZSI6ImFmMmMzZmY1LTE4YWQtNDFkNC1hYTAyLTFlMGJkNzNmOTM5MSIsImFjciI6IjEiLCJzY29wZSI6InByb2ZpbGUgZW1haWwiLCJlbWFpbF92ZXJpZmllZCI6dHJ1ZSwicHJlZmVycmVkX3VzZXJuYW1lIjoiZGVtb3VzZXIifQ.SMtgV1E44_K_MQumGXZtWsLGVhYNaoM8Pk-DiFIZtUP4Zu-ervOsxHVQMX1frgVERR4jJidBcSshy9TnJ3UjF4l33WujHltbs-1UPy-gaIufVuEpl8RmbjOti3Up70vLfLXbzb6kN6WaahgobWXlbJsSXXwaBPQP6vSX5KigCa8TmzXcuqom14lOrlU-RB2zQTlJ30p7d9ag-a7o3I5m9GZWLJCZW2UYMl1JkskTHKgilA8HFQY4C9DYwWu8YDMyzqQSNumrTlURalBFidFbZvb1kp4dAyct8TysSWSbxxiwaL2RX1PWUqk-5Fpc1Q6BnBC8muMheiukFuoSkuADAg'^C +ubuntu@portal:~$ curl http://portal.openslice.io/tmf-api/serviceCatalogManagement/v4/serviceCatalog -H 'Authorization: Bearer eyJhbGciOiJSUzI1NiIsInR5cCIgOiAiSldUIiwia2lkIiA6ICJHZFRjQnpxczg2VW10NTRVZV8ybTJyWHJkV3dzaWdSZE9EUldMYm1memNvIn0.eyJleHAiOjE1ODgyNDA1NzAsImlhdCI6MTU4ODI0MDI3MCwianRpIjoiOGI2ZTU0NWUtNDIyYy00NzFiLWEwN2UtYTUzYzY1NDQ0MzZmIiwiaXNzIjoiaHR0cDovL3BvcnRhbC5vcGVuc2xpY2UuaW8vYXV0aC9yZWFsbXMvb3BlbnNsaWNlIiwiYXVkIjoiYWNjb3VudCIsInN1YiI6ImExYTI3NjVhLWVjODMtNDQ1Ni1iN2IyLTIwNzMxOTg2ZTAzNSIsInR5cCI6IkJlYXJlciIsImF6cCI6Im9zYXBpV2ViQ2xpZW50SWQiLCJzZXNzaW9uX3N0YXRlIjoiMzM1MGY0OTMtNjYyNy00MzczLTg1NDQtZGVmZDI3YWQzYzc0IiwiYWNyIjoiMSIsImFsbG93ZWQtb3JpZ2lucyI6WyJodHRwOi8vbG9jYWxob3N0OjEzMDgyIiwiaHR0cDovL2xvY2FsaG9zdCIsImh0dHA6Ly9vcGVuc2xpY2UuaW8iLCJodHRwOi8vbG9jYWxob3N0OjEzMDAwIiwiaHR0cDovL2xvY2FsaG9zdDo0MjAwIiwiaHR0cDovL3BvcnRhbC5vcGVuc2xpY2UuaW8iXSwicmVhbG1fYWNjZXNzIjp7InJvbGVzIjpbIk5GVl9ERVZFTE9QRVIiLCJvZmZsaW5lX2FjY2VzcyIsInVtYV9hdXRob3JpemF0aW9uIiwiRVhQRVJJTUVOVEVSIiwiVVNFUiJdfSwicmVzb3VyY2VfYWNjZXNzIjp7ImFjY291bnQiOnsicm9sZXMiOlsibWFuYWdlLWFjY291bnQiLCJtYW5hZ2UtYWNjb3VudC1saW5rcyIsInZpZXctcHJvZmlsZSJdfX0sInNjb3BlIjoicHJvZmlsZSBlbWFpbCIsImVtYWlsX3ZlcmlmaWVkIjp0cnVlLCJwcmVmZXJyZWRfdXNlcm5hbWUiOiJkZW1vdXNlciJ9.TnzzpRLMD94UTKpT5_wkr1h4_3KUQmr4TGvFLpJ7cZx-Klrv8tB_eRkWnPqqzCAM9G21a1qXboL8MLMW8ECzG7HYKpobKOGr7LSczMOTdA2ZDyBCRUSOdW77pchu54tJ0ITEkFaDwSKMKKt04V_Sy4U-eIndj0XzzRlkDolWDnK4Z2lRaXAI6fMwOKx1Toa6RfOcemxtzl3pdtjPx92zo6MaKlbIqHK82lxdK0k8aQQaT6TmIrXbZKV2dU_1d3O0q0dVUEZJ_1kzwqOFkmxr9w0EnndC6ccYJlDAr_-GgUhhhNOn5v6tjYLUQdj5e4KEAsxIPzaCreK4un7mEAPmDw' + +Response: + + +[{"uuid":"9e186cd5-b2b2-4a06-b1d6-895720193bc9","lastUpdate":"2020-03-11T23:19:05Z","@baseType":"BaseEntity","@schemaLocation":null,"@type":"ServiceCatalog","href":null,"name":"Example Facility Services","description":"Example Facility Services","lifecycleStatus":"Active","version":"1.0","validFor":{"endDateTime":"2039-11-20T23:07:21Z","startDateTime":"2019-11-20T23:07:21Z"},"relatedParty":null,"id":"9e186cd5-b2b2-4a06-b1d6-895720193bc9","category":[{"@baseType":"org.etsi.osl.tmf.scm633.model.ServiceCategoryRef","@schemaLocation":null,"@type":"org.etsi.osl.tmf.scm633.model.ServiceCategoryRef","href":null,"name":"Generic Services","@referredType":null,"id":"98b9adf1-a1d6-4165-855f-153ddc2131b1"},{"@baseType":"org.etsi.osl.tmf.scm633.model.ServiceCategoryRef","@schemaLocation":null,"@type":"org.etsi.osl.tmf.scm633.model.ServiceCategoryRef","href":null,"name":"External","@referredType":null,"id":"08ffdb3c-6237-45d0-9f3a-d43b5fc5f0b6"},{"@baseType":"org.etsi.osl.tmf.scm633.model.ServiceCategoryRef","@schemaLocation":null,"@type":"org.etsi.osl.tmf.scm633.model.ServiceCategoryRef","href":null,"name":"eMBB","@referredType":null,"id":"ef2c90dd-b65e-4a9f-a9c3-427c9fb0219b"}]}] + + +``` \ No newline at end of file diff --git a/doc/architecture/osom.md b/doc/architecture/osom.md new file mode 100644 index 0000000..173aa80 --- /dev/null +++ b/doc/architecture/osom.md @@ -0,0 +1,137 @@ +# Openslice Service Orchestration and Order Management - OSOM + +OSOM is a service responsible for: + +* Service Order Management (SOM) +* Service Orchestration (SO) + +It uses open source Flowable Business process engine (https://www.flowable.org) . + +A Service Order follows the states as defined in TMF641 specification: + +[![Service Order state](../images/service_order_states.png)](../images/service_order_states.png) + + +## Initial state + +When a new order is created, it goes into the Initial state. It is stored in the repository and triggers an Event. + +[![Initial state](../images/service_order_initial_state.png)](../images/service_order_initial_state.png) + +Administrators are notified usually from the Ticketing System of a new order. They login to Openslice and change the State of the order either to ACKNOWLEDGED or REJECTED. If ACKNOWLEDGED they can Propose a startDate, add Notes, and add any additional service items + +## Order scheduler + +A process checks every 1 minute for ACKNOWLEDGED orders. + +[![Order scheduler BPM](../images/order_scheduler_bpm.png)](../images/order_scheduler_bpm.png) + +[![Order scheduler](../images/order_scheduler_diagram.png)](../images/order_scheduler_diagram.png) + +It retrieves all orders that are in ACKNOWLEDGED state and if the start date is in time it will initialize the process by settingn the order in IN_PROGRESS state. Finally the Start Order Process will start. + + +## Start order process + +This process for now is a draft simple prototype to make a simple orchestration via NFVO. Here the actual Services (TMF638/640 model) are created and attached to Service Order and Service Inventory. + +[![Start Order BPM](../images/start_order_process_bpm.png)](../images/start_order_process_bpm.png) + +[![Start Order interactions](../images/start_order_process_diagram.png)](../images/start_order_process_diagram.png) + +We expect here to check which tasks can be orchestrated by NFVO and which by human. We create the equivalent Services(TMF638/640 model) for this order. + +1. During check it should decide to create Service(s) for this service order O1 and send it to ServiceInventory +2. The Services(TMF638 model) are assigned to the Order O1 In supportService List +3. Each OrderItem OI1 is related to one serviceSpecification +4. Each ServiceSpecification has also related serviceSpecRelationships +5. So if we receive an order O1 for a ServiceSpec A which relates to (a bundle of) 3 specs(2 CFS, 1 RFS) we do the following: + 1. Create a Service S_A(TMF638 model) for ServiceSpec A for Order O1 + 2. We create also 3 Services S_C1, S_C2 and S_R1 equivalent to the serviceSpecRelationships (2 CFS, 1 RFS) + 3. At this point the order will have 1 Local Service Orchestration Process(S_A), 2 supportingServices refs(S_C1, S_C2) and 1 supportingResource(S_R1) + 4. The 3 supportingServices and 1 supportingResource correspond to total 4 Services in ServiceInventory + 5. Service S_A will have: + 1. startMode 1: Automatically by the managed environment + 2. State: RESERVED and the Lifecycle will be handled by OSOM + 6. Services S_C1 and S_C2 we decide that cannot be orchestrated then they have + 1. startMode: 3: Manually by the Provider of the Service + 2. State: RESERVED and the Lifecycle will be handled by OSOM + 3. If the CFS is a bundle spec it is further recursively orchestrated + 7. Service S_R1 will have + 1. startMode 1: Automatically by the managed environment. + 2. State: RESERVED + 3. IF The Service has the characteristic CharacteristicByName( "NSDID") it will be further processed by the NFVO + + +There will be two instances of task "User Task Manual Complete Service" each for Services S_C1 and S_C2. The task is Transient for now. It displays only the services that are not automated! +Here is a flow for future: + +1. We wait here for human decision. +2. From API we get a result: + a. If set to ACTIVE/TERMINATED then we complete the task + b. In any other state we stay in this task until it is resolved as in step a + c. The Status of ORDER O1 is also updated to PARTIAL + +There will be an instance of NFVODeploymentRequest process each for Service S_R1. (see later) + +1. This process is related with the NFVO orchestration +2. It will send a msg to NFVO(s?) for a specific deployment request + + +All services in "Order Complete" are in a status: + +1. Depending on the result the service S_A is either ACTIVE or INACTIVE or TERMINATED +2. The Status of ORDER O1 is also updated to COMPLETED or PARTIAL (in case we have some services running) or FAILED (in cases we have errors) + + +A Service follows the states as defined in TMF638 Service Inventory specification: + +[![Service state](../images/service_states.png)](../images/service_states.png) + + + +## NFVODeploymentRequest process + + +[![NFVODeploymentRequest BPM](../images/NFVODeploymentReq_process.png)](../images/NFVODeploymentReq_process.png) + +This process is related with the NFVO orchestration +It will send a msg to NFVO(s?) for a specific deployment request +Then it checks the deployment status. It will wait 30 secs each time until the deployment is running (or failed) + + + +## Check In Progress orders process + +Every 1 minute the "Check In Progress Orders" process is executed checking if a supported Service changed state (i.e. to ACTIVE) then the whole Order will change state (e.g. go to COMPLETED) + +[![Check In Progress BPM](../images/check_inProgress_orders.png)](../images/check_inProgress_orders.png) + + +## External Service Provider Deployment Request process + +[![External Service Provider Deployment Request process BPM](../images/externalSPDeploymentReq.png)](../images/externalSPDeploymentReq.png) + +This process contains tasks for submitting order requests to external partners. +- Submit Order To External Service Provider Task: This task creates automatically a Service Order request to a 3rd party provider SO that hosts the Service Specification +- Check external service order fulfillment task: This task Check external partner for Service creations and updates our local inventory of services the service characteristics of remote Service Inventory + + +## Fetch Partner Services Process + + +[![Fetch Partner Services Process BPM](../images/fetchPartnerServices.png)](../images/fetchPartnerServices.png) + +Every 2 minutes the "fetchPartnerServicesProcess" process is executed checking remote Partner Organizations for changes in the published catalogues. +The Fetch and Update External Partner Services Task is executed in paralle l for each Partner Organization + + +## Local Service Orchestration Process + + +[![Local Service Orchestration Process BPM](../images/LocalServiceOrchestrationProcess.png)](../images/LocalServiceOrchestrationProcess.png) + +This process handles automatically services that need to be further orchestrated or processed by OSOM. For example, for a CFS Bundled service we create such automated service instances that just aggregate the underlying services. + + + \ No newline at end of file diff --git a/doc/architecture/tmfapi.md b/doc/architecture/tmfapi.md new file mode 100644 index 0000000..f794496 --- /dev/null +++ b/doc/architecture/tmfapi.md @@ -0,0 +1,65 @@ +# TMF OpenAPI specification + +PLease check the complete specification [here](http://portal.openslice.io/tmf-api/swagger-ui/index.html). + +## API interaction + +### OAuth token + +See [oauth](./oauth.md) + +### Request a protected API resource + +Example: Get all Service Catalogs (check the `Authorization:Bearer` to be correct) + +``` +curl -H "Authorization:Bearer eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJ1c2VyX25hbWUiOiJhZG1pbiIsInNjb3BlIjpbIm9wZW5hcGkiLCJhZG1pbiIsInJlYWQiLCJ3cml0ZSJdLCJvcmdhbml6YXRpb24iOiJteW9yZ2FuaXp0aW9uIiwiZXhwIjoxNTc4NTA1MDcyLCJhdXRob3JpdGllcyI6WyJST0xFX01FTlRPUiIsIlJPTEVfQURNSU4iXSwianRpIjoiMTFlNGYxYTUtZDY0Ny00YzA1LWE0ZGMtYWFhYzUyMjk4YzMwIiwiY2xpZW50X2lkIjoib3NhcGlXZWJDbGllbnRJZE91dCJ9.gm7cKdusDrdMRkxEiFU5sENKGRC1xwVj2SgPRmE9xxx" -H "accept: application/json;charset=utf-8" -X GET "http://portal.openslice.io/tmf-api/serviceCatalogManagement/v4/serviceCatalog" + +``` + + +response: + + +``` +[ + { + "uuid": "9e186cd5-b2b2-4a06-b1d6-895720193bc9", + "lastUpdate": "2019-12-19T10:45:55Z", + "@baseType": "BaseEntity", + "@schemaLocation": null, + "@type": "ServiceCatalog", + "href": null, + "name": "Example Facility Services", + "description": "Example Facility Services", + "lifecycleStatus": "Active", + "version": "1.0", + "validFor": { + "endDateTime": "2039-11-20T23:07:21Z", + "startDateTime": "2019-11-20T23:07:21Z" + }, + "relatedParty": null, + "id": "9e186cd5-b2b2-4a06-b1d6-895720193bc9", + "category": [ + { + "@baseType": "org.etsi.osl.tmf.scm633.model.ServiceCategoryRef", + "@schemaLocation": null, + "@type": "org.etsi.osl.tmf.scm633.model.ServiceCategoryRef", + "href": null, + "name": "eMBB", + "@referredType": null, + "id": "ef2c90dd-b65e-4a9f-a9c3-427c9fb0219b" + }, + { + "@baseType": "org.etsi.osl.tmf.scm633.model.ServiceCategoryRef", + "@schemaLocation": null, + "@type": "org.etsi.osl.tmf.scm633.model.ServiceCategoryRef", + "href": null, + "name": "Generic Services", + "@referredType": null, + "id": "98b9adf1-a1d6-4165-855f-153ddc2131b1" + } + ] + } +] +``` \ No newline at end of file diff --git a/doc/architecture/tmfweb.md b/doc/architecture/tmfweb.md new file mode 100644 index 0000000..729eed6 --- /dev/null +++ b/doc/architecture/tmfweb.md @@ -0,0 +1,39 @@ +# Openslice TMF Web Portal + +Openslice comprises of a [web landing page](http://portal.openslice.io/) that navigates to the respective TMF Portal. + +- [Services Portal](http://portal.openslice.io/services) +- [Products Portal](http://portal.openslice.io/products) +- [Testing Portal](http://portal.openslice.io/testing) +- [Resources Portal](http://portal.openslice.io/resources) + +The landing page and the TMF portals (Services, Products, Testing, Resources) are written in Angular and are maintained under the same Angular project. + +Following you may find the scope each portal focuses on and the main TMF APIs it supports. + +**Services Portal** is a designated portal for the: +- Service Designer - To design Customer Facing Services as bundles of Resource Facing Services that map to specific Resourses (e.g. NFV, Testing, General Resources). Then, it is charged with the designed Services' exposure to public Service Catalogs. +- Service Customer - To browse the public Service Catalogs and order the offered Services. The fulfilment process of the Service Order is also captured and the final deployed Services are exposed to the Customer. + +**Products Portal** is a designated portal for the: +- Product Designer - To design Products as bundles of available Services. Then, it is charged with the designed Products' exposure to public Product Catalogs. +- Product Customer - To browse the public Product Catalogs and navigate to the respective offered Services. + +**Testing Portal** is a designated portal for the: +- Testing Designer - To design Tests and provide the testing scripts as attachments to the latter. The Tests can be imported as Services at the Services Portal, and can be included in a Service Bundle. + +**Resources Portal** is a designated portal for the: +- Resource Administrator - To view the available Resources that are being synchronized from the underlying infrastructure. + + + + +| | TMF620 | TMF632 | TMF633 | TMF634 | TMF638 | TMF639 | TMF640 | TMF641 | TMF642 | TMF653 | TMF685 | +| ------------- |:------:|:------:|:------:|:------:|:------:|:------:|:------:|:------:|:------:|:------:|:------:| +|**Services Portal** | |x |x | |x | |x |x |x | | | +|**Products Portal** |x |x | | | | | | | | | | +|**Testing Portal** | |x | | | | | | | |x | | +|**Resources Portal** | |x | |x | |x | | | | |x | + + +From the landing page, the user can also navigate towards the NFV portal. See [NFV WEB](./nfvweb.md). \ No newline at end of file diff --git a/doc/catalogs.md b/doc/catalogs.md new file mode 100644 index 0000000..3b3538d --- /dev/null +++ b/doc/catalogs.md @@ -0,0 +1,147 @@ +# Catalogs and Templates + +The Openslice Service Catalogue (accessible through the API or Services portal) contains the representation of Service Specifications, either created from the provider defining service attributes, or by supporting the GSMA Generic Slice Templates (GST) as well as the VINNI Service Blueprint. The following scenarios are supported by the Openslice Service Catalogue. + + +## Create/Design a Service Specification + +### First Import some Resources as Resource Facing Services (RFSs) + +If you have any NSDs as NFV artifacts, import them through the UI menu (Import from NSD list). Then an NSD is imported as a resource and an RFS automatically is created. RFSs then later are used to design a Customer Facing Service Specification + +### Create/Design a Customer Facing Service Specification + +Customer Facing Service Specification are the services offered to customers. +You can create a new Service Specification from the menu. The services created through the UI are Customer Facing Services (CFS). Usually you create a CFS as a bundle and then you include Service Specification Relationships with RFSs or/and CFSs. + +Any Service Specification Characteristics from the RFS are copied to the CFS specification. A CFS can include multiple RFS or/and CFSs. +For example you can create a CFS spec called "A 5G Service" which is a bundle of two other services (include them in Service Specification Relationships) such as 5G eMBB Slice and a Customer VPN. So when the user orders "A 5G Service" services from 5G eMBB Slice and a Customer VPN will be created during the order. + +### Initial configuration for OSM deployment + +if you have an initial configuration that needs to be applied in the NSD deployment, then you go to the RFS (or CFS) and in Service Specification Characteristics go and edit the OSM_CONFIG characteristic. +You can add in the Service Characteristic Value, in the Value field something like the following example which gives a floating IP to a VNF: + +``` +{ "nsdId": "e855be91-567b-45cf-9f86-18653e7ea", "vimAccountId": "4efd8bf4-5292-4634-87b7-7b3d49108" , "vnf": [ {"member-vnf-index": "1", "vdu": [ {"id": "MyCharmedVNF-VM", "interface": [{"name": "eth0", "floating-ip-required": true }]}]}]} + +``` + +or a more complex example (beautify it first if you want to view it, but in the parameter OSM_CONFIG must be minified like the example): + +``` +{"nsdId":"e855be91-567b-45cf-9f86-18653e7","vimAccountId":"4efd8bf4-5292-4634-87b7-7b3d491","vnf":[{"member-vnf-index":"1","vdu":[{"id":"haproxy_vdu","interface":[{"name":"haproxy_vdu_eth1","floating-ip-required":true}]}]}],"vld":[{"name":"pub_net","vim-network-name":"OSMFIVE_selfservice01"},{"name":"management","vim-network-name":"OSMFIVE_selfservice01"},{"name":"lba_net","vim-network-name":"lba_net","vnfd-connection-point-ref":[{"member-vnf-index-ref":"1","vnfd-connection-point-ref":"haproxy_private","ip-address":"192.168.28.2"}]},{"name":"backend_net","vim-network-name":"backend_net","vnfd-connection-point-ref":[{"member-vnf-index-ref":"3","vnfd-connection-point-ref":"haproxy_public","ip-address":"192.168.20.2"}]},{"name":"lb_sb_net","vim-network-name":"lb_sb_net","vnfd-connection-point-ref":[{"member-vnf-index-ref":"3","vnfd-connection-point-ref":"haproxy_private","ip-address":"192.168.28.2"}]},{"name":"breaking_point_Spain","vim-network-name":"sb_repo_net"},{"name":"breaking_point_Greece","vim-network-name":"5TONICexternal"}],"additionalParamsForVnf":[{"member-vnf-index":"2","additionalParams":{"target_IP":"192.168.20.2"}},{"member-vnf-index":"4","additionalParams":{"target1_IP":"192.168.21.2","target2_IP":"10.154.252.10"}}]} +``` + +You can leave the Alias and Unit of Measure as is. Check also the is Default. + + + +### Day 2 Primitive Actions + +NFVOs like OSM allow to perform actions while a service is running, for example change attributes or make actions on a specific VNF. To design this do something similar to the following example: + +- Go to the RFS related to the NSD that contains VNFs with primitives +- create a characteristic named Primitive:: , e.g. Primitive::touch +- select Value Type: ARRAY +- add Service Characteristic Value: i) alias=primitive, value= (e.g. touch), ii) alias=member_vnf_index, value= (e.g. 1), iii) add the params that the user will change in alias the name of param and in value an initial value (e.g. alias=filename, value=myfile.txt) + +In the above example, when the service is running and the user goes to service inventory to MODIFY it, changes the value of the alias=filename, value=myfile.txt, to value =secondfile.txt. Then inside the VNF a file will be created called secondfile.txt + + + +### Generic Slice Templates (GST) +(Offered only as a design for now. THere is no direct implementation to NFV) +On October 16th 2019 GSMA published NG.116 Version 2.0 which defines the Generic Network Slice Template (GST). GST is a set of attributes that can characterise a type of network slice/service. GST is generic and is not tied to any specific network deployment. Here is a list of the various attributes of the template: + +- Availability +- Area of Service +- Delay tolerance +- Deterministic communication +- Downlink throughput per network slice +- Downlink throughput per UE +- Energy efficiency +- Group communication support +- Isolation level +- Location based message delivery +- Maximum supported packet size +- Mission critical support +- MMTel support +- NB-IoT support +- Network Slice Customer network functions +- Number of connections +- Number of terminals +- Performance monitoring +- Performance prediction +- Positioning support +- Radio spectrum +- Reliability +- Root cause investigation +- Session and Service Continuity support +- Simultaneous use of the network slice +- Slice quality of service parameters +- Support for non-IP traffic +- Supported access technologies +- Supported device velocity +- Synchronicity +- Terminal density +- Uplink throughput per network slice +- Uplink throughput per UE +- User management openness +- User data access +- V2X communication mode + +Openslice offers the GST in a format that is machine readable and aligned with the TMF SID model. Here is a tentative approach in JSON : + +Providers can clone a GST as e NEST directly in Openslice Web portal and the adjust the default attributes to their Service Specification + + +### 5G-VINNI Service Blueprint +(Offered only as a design for now. THere is no direct implementation to NFV) +5G-VINNI Service Blueprint is a special Service Specification defined by teh 5G-VINNI project. Many details can be found in document + +5G-VINNI Service Blueprint is a reusable self-contained specification of required network slice service (instances). As described in GST mapping VINNI-SB is also machine readable. + +Here is a tentative approach in JSON : + +5G-VINNI SB has many commonalities with GST as well as it offers Testing as a Service attributes. + + Next figure presents the high-level object model of a 5G-VINNI service blueprint. + +The 5G-VINNI SB as a first prototype approach is conceived as a CFS of a ‘bundle’ of services. It has some characteristics, like name, description, service type (eMBB, etc) and others. The constituent services are: + +- A “Service Topology” Service Specification which is related to a Network Service Resource topology (a Logical Resource Spec). It is considered at this stage as an RFS but is subject to change in future +- A “VINNI SB Service Requirements” Service Specification which is related to Service requirements. This is very similar to GST. It is considered at this stage a CFS. +- A “VINNI SB Service Exposure Level 1” Service Specification which contains characteristics for service exposure on level 1 ( see D3.1 for details). It is considered at this stage a CFS. +- A “VINNI SB Service Exposure Level 2” Service Specification which contains characteristics for service exposure on level 2. It is considered at this stage a CFS. +- A “VINNI SB Service Exposure Level 3” Service Specification which contains characteristics for service exposure on level 3. It is considered at this stage a CFS. +- A “VINNI SB Service Exposure Level 4” Service Specification which contains characteristics for service exposure on level 4. It is considered at this stage a CFS. +- A “VINNI SB Service 3rd part VNF” Service Specification which contains characteristics for support 3rd party VNFs to be included in the service. It is considered at this stage as an RFS but is subject to change in future +- A “VINNI SB Service 3rd part NSD” Service Specification which contains characteristics for support 3rd party NSDs to be included in the service. It is considered at this stage as an RFS but is subject to change in future +- A “VINNI SB Service Monitoring” Service Specification which contains characteristics for offering Monitoring capabilities on the requested Service. It is considered at this stage a CFS. +- A “VINNI SB Service Testing” Service Specification which contains characteristics for offering Testing capabilities on the requested Service. It is considered at this stage a CFS. + + +[![VINNI SB Template Model diagram](../images/vinni_sb_model_diagram.png)](../images/vinni_sb_model_diagram.png) + + +## Manage a Service Specification + +You can manage them though the Web UI + + +## Assign a Service Specification to Service Categories and Publish + +Just create categories and from the menu select the category and add services + + +## Retire/Remove a Service Specification + +Delete it from the category + + +## Consume and expose Service Specifications from other Service Catalogues + +See more on [Consuming Services From External Partner Organizations](./architecture/consumingServicesFromExternalPartners.md) + + diff --git a/doc/contributing/developing.md b/doc/contributing/developing.md new file mode 100644 index 0000000..7e4523e --- /dev/null +++ b/doc/contributing/developing.md @@ -0,0 +1,89 @@ + +# Developing + +Openslice backend services are mainly implemented with Java 17 or above and Spring boot. + +Openslice uses various subsystems and depending on the module would you like to work, other subsystems must be present (you can disable them though in the code, e.g. at application.yml file) + +To get the latest development branch: +``` +wget https://raw.githubusercontent.com/openslice/org.etsi.osl.main/develop/compose/deploy.sh +sudo ./deploy.sh develop [or replace develop with other branch name] +``` + +## Slack + +* Slack: https://openslice.slack.com + +## General subsystems + +- Docker and Docker Compose should be installed in your development environment + +### Consul +consul service registry should be up and running. You can launch consul with docker: +`sudo docker run -d --name consul -p 8500:8500 -p 8600:8600 consul` + +### ActiveMQ +ActiveMQ is our messaging system. You can launch an instance of ActiveMQ: +`sudo docker run --name='activemq' -d -e 'ACTIVEMQ_NAME=amqp-srv1' -e 'ACTIVEMQ_REMOVE_DEFAULT_ACCOUNT=true' -e 'ACTIVEMQ_ADMIN_LOGIN=admin' -e 'ACTIVEMQ_ADMIN_PASSWORD=admin' -e 'ACTIVEMQ_WRITE_LOGIN=producer_login' -e 'ACTIVEMQ_WRITE_PASSWORD=producer_password' -e 'ACTIVEMQ_READ_LOGIN=consumer_login' -e 'ACTIVEMQ_READ_PASSWORD=consumer_password' -e 'ACTIVEMQ_JMX_LOGIN=jmx_login' -e 'ACTIVEMQ_JMX_PASSWORD=jmx_password' -e 'ACTIVEMQ_STATIC_TOPICS=topic1;topic2;topic3' -e 'ACTIVEMQ_STATIC_QUEUES=queue1;queue2;queue3' -e 'ACTIVEMQ_MIN_MEMORY=1024' -e 'ACTIVEMQ_MAX_MEMORY=4096' -e 'ACTIVEMQ_ENABLED_SCHEDULER=true' -v /home/ctranoris/testcompose/data/activemq:/data/activemq -v /var/log/activemq:/var/log/activemq -p 8161:8161 -p 61616:61616 -p 61613:61613 webcenter/activemq:5.14.3` + +### MySQL server +We use mysql as a storage DB. Please make sure that you have it installed in your system. There are instructions on internet how to install it. Check also our docker-compose installation script + + +## Oauth server + +Keycloak is used as the authentication server. + +> Note: Please check the Post installation steps -> Keycloak at localhost, at [Deployment/Installation](../deployment.md), if you are developing in a local environment + + +## VNF/NSD Catalog Management and NSD Deployment API service + +Clone the repository: https://github.com/openslice/org.etsi.osl.portal.api + +Check the application.yml file. Default port is 13080. Especially the datasource username/password, server port. + +make sure that the General subsystems are up and running as well as the OAuth server + +run it with `mvn spring-boot:run` + +You can check your consul server if it registered. + +### Swagger API +Swagger API of the service is at `http://localhost:13000/osapi/swagger-ui/`. You can try there various REST actions and authenticate via the OAuth server + + +## VNF/NSD Catalog Management and NSD Deployment WEB UI service + +The Web UI is written in AngularJS + +Clone the repository: https://github.com/openslice/org.etsi.osl.portal.web + +by default the project org.etsi.osl.portal.api exposes the folder ../org.etsi.osl.portal.web/src/ in a folder testweb (Check class MvcConfig.java in org.etsi.osl.portal.api) for development. (In production nginx is used). Point your browser to `http://localhost:13000/osapi/testweb/index.html/` + + +--- + +## Version/release management + +Check this nice article on how we develop and release versions + +https://nvie.com/posts/a-successful-git-branching-model/ + +We develop in the develop branch + +--- +## Wishlist + +Check also our wishlist of new features. You can add your own + +See [Wishlist](./wishlist.md) + + + + + + + + diff --git a/doc/contributing/wishlist.md b/doc/contributing/wishlist.md new file mode 100644 index 0000000..de91c77 --- /dev/null +++ b/doc/contributing/wishlist.md @@ -0,0 +1,59 @@ +# TMF API + +- RBAC of API endpoints +- TMF Ticketing API support +- TMF Product +- HATEOAS integration +- Select Specs that can be exposed to partners (maybe with a characteristic?) + +## resource management + +- Resource Activation and Configuration API TMF702 (NEW) (https://projects.tmforum.org/wiki/pages/viewpage.action?pageId=128855518) + +# TMF WEB + + +# OSOM + +- Actions on service order item and acknowledge order status will define the lifecycle +- action shutdown on specific date for service order +- action edit on service order item + +## Dynamic attribute transformation + +- DTM decision tables support per Service Specification +- Schedule Termination of completed order on running services + + + +# NFVO connectivity + +## OSM Client + +- VNF/NSD config params Day 2 +- NSD Lifcecylce +- NST support + +# NFV API + + +# NFV WEB + + +# 3rd party connectivity + +## FlowOne connector + + +## Openstack connector + + +## Kubernetes connector + + +# CentralLog + +- Events from TMF to be written to Central Log + +# Authentication + diff --git a/doc/deployment.md b/doc/deployment.md new file mode 100644 index 0000000..ff6417c --- /dev/null +++ b/doc/deployment.md @@ -0,0 +1,541 @@ +# Preparing the environment + +Note: See the Kubernetes section, if you would like to deploy Openslice in a Kubernetes cluster + +
+ +1 - Backup your previous database if necessary: +``` +sudo docker exec amysql /usr/bin/mysqldump -u root --password=letmein ostmfdb > backup_ostmfdb.sql +``` + + 2 - Install docker + +_NOTE:_ Since July 2023 Docker Compose V1 stopped receiving updates. Openslice fully reverted to Compose V2, which is integrated in the Docker installation. + + +3 - Download environment preparation script +``` +wget https://raw.githubusercontent.com/openslice/org.etsi.osl.main/master/compose/deploy.sh +``` + +4 - Work with main/master branch: + +``` +sudo ./deploy.sh +``` +Alternatively, work with develop or any other branch: + +``` +sudo ./deploy.sh develop [or replace develop with other branch name] +``` + +5 - Create configuration specific docker compose file +``` +cd org.etsi.osl.main/compose/ +sudo cp docker-compose.yaml.configure docker-compose.yaml +``` + +6 - Configure containers to properly resolve the DNS of your domain + +edit /etc/docker/daemon.json and add: + +``` +{ + "dns": ["8.8.8.8", "8.8.4.4"] +} +``` + +and restart docker daemon. + +
+ +# Configure docker-compose services + + +Edit your configuration specific docker-compose.yaml that is previously created: + +
+ +## 1. mysql-portal container + +In folder mysql-init edit the file 01-databases.sql. Edit the credentials that services connect to the database (if you wish) of portaluser (default is 12345) and keycloak (default is password). + +delete the exposed ports + +## 2.keycloak container + +2.1 Edit the following if you changed mysql credentials +``` +DB_DATABASE: keycloak +DB_USER: keycloak +DB_PASSWORD: password +``` + +2.2 Change the keycloak admin password +``` +KEYCLOAK_PASSWORD: Pa55w0rd +``` + + +## 3.osportalapi container (NFV services) + +Edit the following if you changed mysql and keycloak credentials and adjust properly the domain (if you are using a non-local domain, replace everywhere the http://keycloak:8080) + +``` +SPRING_APPLICATION_JSON: '{ + "spring.datasource.url": "jdbc:mysql://amysql/osdb?createDatabaseIfNotExist=true", + "spring.datasource.username":"root", + "spring.datasource.password":"letmein", + "spring-addons.issuers[0].uri": "http://portal.openslice.io/auth/realms/openslice", + "spring-addons.issuers[0].username-json-path":"$.preferred_username", + "spring-addons.issuers[0].claims[0].jsonPath":"$.realm_access.roles", + "spring-addons.issuers[0].claims[1].jsonPath":"$.resource_access.*.roles", + "spring.security.oauth2.resourceserver.jwt.issuer-uri": "http://portal.openslice.io/auth/realms/openslice", + "springdoc.oAuthFlow.authorizationUrl": "http://portal.openslice.io/auth/realms/openslice/protocol/openid-connect/auth", + "springdoc.oAuthFlow.tokenUrl": "http://portal.openslice.io/auth/realms/openslice/protocol/openid-connect/token", + "springdoc.oauth.client-id" : "osapiWebClientId", + "springdoc.oauth.clientsecret" : "secret", + "spring.activemq.brokerUrl": "tcp://anartemis:61616?jms.watchTopicAdvisories=false", + "spring.activemq.user": "artemis", + "spring.activemq.password": "artemis", + "logging.level.org.springframework" : "INFO" + + +``` + + +## 4.bugzilla container + +If you would like to use the Bugzilla connector + +``` +"bugzillaurl":"bugzillaurl.xx:443/bugzilla/", +"bugzillakey":"exampleKeyeqNNwxBlgxZgMEIne0Oeq0Bz", +"main_operations_product":"Main Site Operations" //this is the default product to issue tickets +``` + +Bugzilla under this product should have components: +- NSD Deployment Request: Component used to schedule deployment req +- Onboarding: Issues related to VNF/NSD Onboarding +- Operations Support: Default component for operations support +- Validation: Use to track validation processes of VNFs and NSDs +- VPN Credentials/Access: Used for requesting VPN Credentials/Access + + +Also in the 'Main Site Operations' product, please create a version named 'unspecified' + + +## 5.osscapi container (TMF-API service) + +Edit the following if you changed mysql and keycloak credentials + +``` +"spring.datasource.username":"xx", +"spring.datasource.password":"xx", +"keycloak-admin-password": "Pa55w0rd", +Edit properly with your domain "swagger.authserver" : "http://localhost/auth/realms/openslice", + +``` + +Delete the exposed ports in other services like activemq + +
+ +# Configure nginx + +``` +cd nginx +sudo cp nginx.conf.default nginx.conf +``` + +Edit server_name + +
+ +# Configure Web UI + +``` +cd org.etsi.osl.portal.web/src/js/ +cp config.js.default config.js +``` + +Edit config.js with your domain + +``` +TITLE: "Openslice demo", + WIKI: "http://localhost", + BUGZILLA: "https://localhost/bugzilla/", + STATUS: "http://status.localhost/", + APIURL: "http://localhost", + WEBURL: "http://localhost", + APIOAUTHURL: "http://localhost/auth/realms/openslice", + APITMFURL: "http://localhost/tmf-api/serviceCatalogManagement/v4" + +``` + +
+ +# Configure TMF Web UI + +There are 3 files available for configuration: + +* config.prod.json (Basic information + API configuration) +* theming.scss (CSS color palette theming) +* config.theming.json (HTML configuration - Logo, Favicon, Footer) + + +The first 2 files above (i.e. config.prod.json, theming.scss) are essential for the successful deployment of Openslice, thus created automatically during the initial deployment at **org.etsi.osl.tmf.web/src/assets/config** directory as a copy of the default ones from the remote repository. + +
+ +Ensure that you check the **config.prod.json** file and readjust to your deployment if needed. + +``` +cd org.etsi.osl.tmf.web/src/assets/config +``` +and edit config.prod.json + +E.g. Edit "TITLE" or "WIKI" property with your domain title + +``` +TITLE: 'Openslice', +WIKI: 'https://openslice.io', +``` + +_NOTE:_ The {BASEURL} placeholder in the file automatically detects the Origin (Protocol://Domain:Port) of the deployment and applies it to every respective property. E.g. If you are attempting a local deployment of Openslice, then {BASEURL} is automatically translated to "http://localhost". Similarly, you may use {BASEURL} to translate to a public deployment configuration, e.g. "https://portal.openslice.io". + +
+ +If further customization, apart from the default provided, is needed for branding (Logo, Footer) then **config.theming.json** needs to be created in **org.etsi.osl.tmf.web/src/assets/config** directory, as follows: + +``` +cd org.etsi.osl.tmf.web/src/assets/config +sudo cp config.theming.default.json config.theming.json +``` + +
+ +> **_IMPORTANT NOTE:_** If you want to apply changes to the JSON configuration files without the need to rebuild the application, you have to apply the changes at the **org.etsi.osl.tmf.web/dist/io-openslice-portal-web/assets/config** directory. Although, it is mandatory to also apply these changes to the **org.etsi.osl.tmf.web/src/assets/config** for persistancy, as after any future rebuild of Openslice the **/dist** directory is being ovewritten along with its contents. The Openslice team strongly recommends to always apply your changes to the TMF web UI configuration files at **org.etsi.osl.tmf.web/src/assets/config** and rebuild the application. + +
+ + +# Deploying docker compose + + + + +Go to compose directory and issue: +``` +sudo docker compose --profile prod down;sudo docker compose --profile prod up -d --build +``` + +Note: Depending on your machine, this process might take time. + + +
+ + +# Validating deployments and container monitoring + +You can monitor containers status with portainer at port 9000 (http://your-ip:9000) + +Initially, you may monitor the local machine at portainer. + +Please check that all containers are in running state. + +
+ +# Kubernetes installation + + +Openslice can be installed in a Kubernetes cluster. (This is a work in progress) + +The related scripts are inside the kubernetes folder. Follow these steps along the lines. You need to configure the ingress properly depending on how you want to expose Openslice. + +1) Create an openslice namespace + +``` +kubectl create namespace openslice +``` + +2) Apply or create an ingress. Ingress exposes HTTP and HTTPS routes from outside the cluster to services within the cluster. Traffic routing is controlled by rules defined on the Ingress resource. +An Ingress may be configured to give Services externally-reachable URLs, load balance traffic, terminate SSL / TLS, and offer name-based virtual hosting. An Ingress controller is responsible for fulfilling the Ingress, usually with a load balancer, though it may also configure your edge router or additional frontends to help handle the traffic. You must have an Ingress controller to satisfy an Ingress. +You may need to deploy an Ingress controller such as ingress-nginx. + +You can also adapt it to connect to public cloud load balancers depending on your needs. + +The following will expose an ingress resource from one of your a k8s nodes on port 80 + +``` + kubectl apply -f openslice-ingress.yaml +``` + + +Finding the ingress IP: + + +``` + +kubectl describe -f openslice-ingress.yaml + + +Name: openslice-ingress +Namespace: openslice +Address: 10.10.10.35 +Default backend: default-http-backend:80 () +Rules: + Host Path Backends + ---- ---- -------- + * + /services tmfweb:80 () + /tmf-api osscapi:13082 () + /auth keycloak:8080 () + /osapi osportalapi:13000 () + / portalweb:80 () +Annotations: kubernetes.io/ingress.class: nginx +Events: + Type Reason Age From Message + ---- ------ ---- ---- ------- + Normal Sync 9m29s (x2 over 9m58s) nginx-ingress-controller Scheduled for sync + +``` + +From the above example, our exposed ingress is at Address: 10.10.10.35 + +3) We need to configure the expose address and deploy openslice (IP or URL e.g. http://myopenslice.xxx) + +``` +./k8sdeploy.sh 10.10.10.35 +``` + + +4) Check the status of Openslice in the cluster. Should be similar to the following: + +``` + +kubectl get pods --namespace=openslice -o wide + +NAME READY STATUS RESTARTS AGE IP NODE NOMINATED NODE READINESS GATES +activemq-59d4bfdb4b-bvjqr 1/1 Running 0 109s 192.168.43.97 kc-2 +bugzilla-client-7dd7cb47cb-8qb8m 1/1 Running 0 100s 192.168.12.114 kc-3 +centrallog-95bbf7867-k8fpt 1/1 Running 0 100s 192.168.12.107 kc-3 +consul-b5dd76b76-64dzk 1/1 Running 0 107s 192.168.43.90 kc-2 +keycloak-7c5b6bbc95-k2qfl 1/1 Running 0 105s 192.168.12.106 kc-3 +manoclient-95f68f4c9-c9t6r 1/1 Running 0 104s 192.168.12.113 kc-3 +mysql-portal-0 1/1 Running 0 107s 192.168.43.99 kc-2 +osom-6d548cf555-q8ptj 1/1 Running 0 104s 192.168.43.93 kc-2 +osportalapi-5fff744db8-5g4zs 1/1 Running 0 103s 192.168.43.98 kc-2 +osscapi-6d68b54d97-jn8tz 0/1 Running 0 102s 192.168.12.104 kc-3 +portalweb-8469d57df4-94tfj 1/1 Running 0 101s 192.168.48.44 kc-nfs +tmfweb-868f7bb9c5-x4lfh 1/1 Running 0 102s 192.168.48.43 kc-nfs + + +kubectl get deployments --namespace=openslice -o wide + +NAME READY UP-TO-DATE AVAILABLE AGE CONTAINERS IMAGES SELECTOR +activemq 1/1 1 1 2m15s anactivemq webcenter/activemq:5.14.3 org.etsi.osl.service=activemq +bugzilla-client 1/1 1 1 2m6s bugzilla-client openslice/org.etsi.osl.bugzilla:latest org.etsi.osl.service=bugzilla-client +centrallog 1/1 1 1 2m6s centrallog openslice/org.etsi.osl.centrallog.service org.etsi.osl.service=centrallog +consul 1/1 1 1 2m13s aconsul consul org.etsi.osl.service=consul +keycloak 1/1 1 1 2m11s keycloak quay.io/keycloak/keycloak:11.0.3 org.etsi.osl.service=keycloak +manoclient 1/1 1 1 2m10s manoclient openslice/org.etsi.osl.mano:latest org.etsi.osl.service=manoclient +osom 1/1 1 1 2m10s openslice-osom openslice/org.etsi.osl.osom:latest org.etsi.osl.service=osom +osportalapi 1/1 1 1 2m9s openslice-portalapi openslice/org.etsi.osl.portal.api:latest org.etsi.osl.service=osportalapi +osscapi 1/1 1 1 2m8s openslice-scapi openslice/org.etsi.osl.tmf.api:latest org.etsi.osl.service=osscapi +portalweb 1/1 1 1 2m7s openslice-portalweb openslice/org.etsi.osl.portal.web:latest org.etsi.osl.service=portalweb +tmfweb 1/1 1 1 2m8s openslice-tmfweb openslice/org.etsi.osl.tmf.web:latest org.etsi.osl.service=tmfweb + + +kubectl get services --namespace=openslice -o wide + +NAME TYPE CLUSTER-IP EXTERNAL-IP PORT(S) AGE SELECTOR +activemq ClusterIP 10.111.160.120 8161/TCP,61616/TCP 2m22s org.etsi.osl.service=activemq +bugzilla-client ClusterIP 10.101.43.28 13010/TCP 2m14s org.etsi.osl.service=bugzilla-client +centrallog ClusterIP 10.109.15.151 13013/TCP 2m14s org.etsi.osl.service=centrallog +consul ClusterIP 10.101.103.240 8500/TCP,8600/TCP 2m21s org.etsi.osl.service=consul +keycloak ClusterIP 10.110.216.62 8080/TCP,8443/TCP 2m19s org.etsi.osl.service=keycloak +manoclient ClusterIP 10.108.112.84 13011/TCP 2m18s org.etsi.osl.service=manoclient +mysql-portal ClusterIP None 3306/TCP 2m19s org.etsi.osl.service=mysql-portal +osom ClusterIP 10.105.173.85 13100/TCP 2m18s org.etsi.osl.service=osom +osportalapi ClusterIP 10.104.121.164 13000/TCP 2m17s org.etsi.osl.service=osportalapi +osscapi ClusterIP 10.108.6.161 13082/TCP 2m16s org.etsi.osl.service=osscapi +portalweb ClusterIP 10.97.126.98 80/TCP 2m15s org.etsi.osl.service=portalweb +tmfweb ClusterIP 10.98.56.82 80/TCP 2m15s org.etsi.osl.service=tmfweb + +``` + +
+ +# Post installation steps + +
+ +## Configure Keycloak server + +Keycloack server is managing authentication and running on a container at port 8080. It is proxied to your host via nginx under http://localhost/auth. + +* Go to http://domain.com/auth/ or https://domain.com/auth/ , (http://ipaddress:8080/auth/ or https://ipaddress:8443/auth/ are direct with no proxy) + +* Navigate to Administration Console + + +> NOTE: if you are running in HTTP you will get a message: HTTPS required + +Go to https://ipaddress:8443/auth/ + +Login with the credentials from section 2.2 + +user admin and your KEYCLOAK_PASSWORD + +Select the master realm from top left corner, go to login Tab and select "Require SSL": None + +Do the same for realm Openslice + +> NOTE: If you are running in HTTPS, then leave Require SSL to external requests + +
+ +### Configure redirects + +Go to realm Openslice, client, osapiWebClientId and change Root URL to your domain. + +Also, insert your domain, e.g. http://example.org/*, at: +* Valid Redirect URIs +* Web Origins + +
+ +### Configure email in Keycloak + +Keycloak also allows new users to register. + +On Tab Login -> check User registration, Verify email, Forgot password etc. + +Also, enter the details on Realm -> Email -> Enable Authentication + +
+ +### Add an Openslice admin user + +Go to manage/users and add an Openslice admin user, e.g. username=admin. Set a password and go also to Role Mappings and add to Assigned Roles ADMIN and MENTOR. + +> Note: That user is different from the Keycloak admin user. It is used to login and browse the OpenSlice Web UI. The Roles ADMIN and MENTOR guarantee full access through the Openslice UI, thus such a user is always required. + +
+ +## Keycloak at localhost + +> **This is an important step if you run Keycloak on localhost** + +1 - Edit your hosts file, adding the line below + +```127.0.0.1 keycloak``` + +2 - Replace http://localhost/auth/ with http://keycloak:8080/auth/ in your Keycloak config for TypeScript/Angular (see examples below). + + +Hosts File Location: + + - In Linux/Unix, the file's location is at /etc/hosts + + - In Windows, its location is at c:\Windows\System32\Drivers\etc\hosts + +Explanation: + + Nginx uses the http://keycloak:8080 URL, which is accessible via the internal docker system's network. + The Front-end (TS/Angular) shall also use the http://keycloak:8080. + This way, you will not get the invalid token error, as the API is getting the token from http://keycloak:8080 (internally) and the Front-end is getting verified with the same URL, as well. + + + +Nginx serves the Front-end from the project org.etsi.osl.tmf.web. + + + + +If you would like to use the Front-end to test your backend, then: + +1. config.prod.json (org.etsi.osl.tmf.web project) should look similar to the following example: + +``` +{ + "TITLE": "Openslice demo", + "PORTALVERSION":"1.1.0-SNAPSHOT", + "WIKI": "http://wiki.localhost", + "BUGZILLA": "{BASEURL}/bugzilla/", + "STATUS": "http://status.localhost/", + "WEBURL": "{BASEURL}", + "PORTAL_REPO_APIURL": "{BASEURL}/osapi", + "ASSURANCE_SERVICE_MGMT_APIURL": "{BASEURL}/oas-api", + "APITMFURL": "http://localhost:13082/tmf-api", + "OAUTH_CONFIG" : { + "issuer": "http://keycloak:8080/auth/realms/openslice/protocol/openid-connect/auth", + "loginUrl": "http://keycloak:8080/auth/realms/openslice/protocol/openid-connect/auth", + "tokenEndpoint": "http://keycloak:8080/auth/realms/openslice/protocol/openid-connect/token", + "redirectUri": "{BASEURL}/redirect", + "logoutUrl": "http://keycloak:8080/auth/realms/openslice/protocol/openid-connect/logout", + "postLogoutRedirectUri": "{BASEURL}/services/services_marketplace", + + "responseType": "code", + "oidc": false, + "clientId": "osapiWebClientId", + "dummyClientSecret": "secret", + + "requireHttps": false, + "useHttpBasicAuth": true, + "clearHashAfterLogin": false, + + "showDebugInformation": true + } +} +``` +> Note the difference in changing {BASEURL} -> http://keycloak:8080 + +2. config.js (org.etsi.osl.portal.web) should look similar to the following example: + +``` +var appConfig = angular.module('portalwebapp.config',[]); + + +appConfig.factory('APIEndPointService', function() { + return { + TITLE: "Openslice", + WIKI: "ROOTURL", + BUGZILLA: "ROOTURL/bugzilla/", + STATUS: "ROOTURL/status/", + APIURL: "http://localhost:13000", + WEBURL: "ROOTURL/nfvportal", + APIOAUTHURL: "http://keycloak:8080/auth/realms/openslice", + APITMFURL: "http://localhost:13082/tmf-api/serviceCatalogManagement/v4" + + }; +}); +``` +> Note the difference in "APIOAUTHURL" property + +
+ +## NFV Portal Landing page + +You may configure the landing page for the NFV Portal at + +``` +org.etsi.osl.portal.web/src/openslicehome/index.html +``` + +
+ +## NFV Orchestrator Configuration + +See [NFV Orchestrator Configuration](./nfvoconfig.md). + +
+ +## Important Note + +There is a case where the first time the services fail to start due to failed mysql connections. Please just issue again: + +`sudo docker compose --profile prod down;sudo docker compose --profile prod up -d --build` + diff --git a/doc/eclipse-java-google-style.xml b/doc/eclipse-java-google-style.xml new file mode 100644 index 0000000..7bb6804 --- /dev/null +++ b/doc/eclipse-java-google-style.xml @@ -0,0 +1,337 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/doc/images/LocalServiceOrchestrationProcess.png b/doc/images/LocalServiceOrchestrationProcess.png new file mode 100644 index 0000000000000000000000000000000000000000..2543ac37b71faeda2bc5988ad1640aa8d4fe789c GIT binary patch literal 12862 zcmeHtXH=7I^Jf%M1Zf&XK|nzs5T!}e&=iCS2n1=;L3&pRH9}OHA`npl0qMOfRRRGK z73q-BLlL9}2tf#;1jydudER~BvuAhDe%P~TKm0%3C+E&d=9-!7H*?MWu6YU5gR(O7 zFoQrKR;{~t?t?%K8X(XSex~EVHyQ>_g}}!V-}_KCP zcWQr2IPG<-QO5E#l)pAjHRP`oY!~jTULi9O?bo6yM?e^;s9Ii8YXDYDBzc;(wWa68 z;1qg(%)P5!B*Q}!3dQN4!rY;rTgeUq-6C;B!(4aSx7Q-CzGeI2JMeTU7Vjmyu|U(> zeVLWyA`oU%%??^*RpS)XnTmfDaSjjMhYGQ&2=u$@)Uy5uCx zilhISLen2s{7I!J+aEEKp&}7W9?CldXXd}1(U(O~R@Z7k-*(jKW&Mt;}&76dP5MXgjXqyrhLd1pSA81g4c!>=hFvi&((8R5U{ zm6Pfs@P~`Y07Aclg=?qCIL8Ie_Mdp$^9^T4fM-lkPp`boEXWA`;W55lL7@~Cq`T1& z<#>Vp#kQ`hUKMw5n}7+w`Sngo1)H7dgA$cb*NPSMwk}LSsV}PNz*1hZGtgR6QbNw! zmdkbz4wYGS3!#+Uyq9(6dNjDL9113UdzGC?O(FFQ;3TMD6ImsPs)ny>F2kuDuOh1e zYK19Z6T32?g{v-L)BEsOF4a49Bei>bI}q}H1n-<4$v?QWJ{17hcR>uv zj7$ZR6v>|U&sz?2(sIHdQA5WI&t^Cn$Q%xcBiw5@otK+Wa%?H671BS7N zCQX!@3SDzRD=Z>*6-TvvLUIKHF1W%#7ciglykqxdrs_y*_M3sAz=NM>>Q9GkwfL>+ z-JApCrwv6Otq@x0Uxvk&?9vFllP;2Pwu?TCr;g3;{VM0F5T}*o9}%L)`WK!I?XC4>ygv-xP^%~nQ%cgzfBFTr^!V8# zwQkCeO%?g=;PSbwj4^_$_xNXNs)}oZkr#Uj`+b3w^1U*4LxIUeann@ZI?vvv6!!`l z_aRG{L%oO|xp8ff|e!U16K&%;dVnqy>TT$3wH&m2R1yr8gNNdRY ze27VY0F(9GlT;v0ngx>#SRJ4J@2JIEQ;R+jXhS<2H z5&jayM1Qq0E!Vqa#krH{`$Eb-v(jRf*oDZ|96F*ctHQ^T z5Uv5+Bozg?08ywXJLFr%#I4zA+i))!O&$(k3?V5_jaLPDKeD(s)C$BrwX=;M;o)^2 z;+9)g_Yh3vH+gnfpzyd3Q^*4u@wEE|bEvqu{E8Rv3+?!Cu8VS+5q#CR`c-DGjX}rr zc@EXpS{fGn?1G%pp8D>saEeQ3`Ysf;H%CD1Lx>Rh{#84_@Is4cKNI}#Fl&C$<`$6a z5c-XR#V7n*L3i|__tJi`iMrU#EM@yGKgW+7x#RLnJkI%a8m~nYV@gD~KJKy^6zC^k zy_%+9U;5pCAzukAETb83<@SI&f{MKzMr|Ht~$l4l0Vy!{!(n?|lQSPsP zqMcuQb`$9At`ypMA)V@_ID2s>>qnr&p51@$!Zuv&Pz+iY@_}-x90I8Sfak~&|ms(@6RfNBzMQ7}6akaOuj<$Qj}DCozdf5XnYlk{k@fkz}g zF#G)E$4d%nw&4UA&5X*C(4;==ZI~uOQ`F>naVhb@*9h?-z^5mi!#h1=SR62Wiii1L;z8Gk}lDHwc09HKP0`zsY2;~6&Y6+mi24X^F9EjGnf zqqO`Q>L1$KTC5Dz4)pkl4e>|kO`Uw~a`wgemIS$XsM2=!Xgoggq~`mRAt$Chb;b_J zy`f0N5*#>rTgD6FS53?B4Lf|)sEHb6v&|nCO!0DMz@CV?QOL=Eo;KIzMr(T;*9SbX zU((HEY5H;rK^6&#a?46p;sMBK^$(jB^d0hgSto|$De)zm7tI5|6AAkjsm5M_KJrs; zH@Q66zXQ0;O1m{H29Ak7+(;FS(KaIH0Md )WZ`-!4q(7bM zP;JW~Exnw}uUU&GDa=oVPR=e+=P*OLZAMuO3qw0fz8aNrqszj1ezjZsj?1+caYVSh z*}*BDPPHvU2pfimEB{ja*_$?~Ro~X=KjVGX5f5`o-LP)0Et`?&eh_7;F#@>O(f(rs zWA+TPXMa7+!0h7vh=W#rDYdI(@_WQWJoM!rww7oe;NWoCDyN03o8SNUk621aLzV)@ zG*2?mbwH7v#KusE4t>XCTWBbq=figif6^ySAmY86NZE*;n4bIQhtfAY(VbcX_*(6P zqdOaV_qw#^ z5Kpo-(kFW4EU7jS@8Y#wc$Z9EGp}!rNs}{jMqA4teEJ#(;ts|kj3Ivdyx`r1)do@z z&xmx}1^Zf$(Kjk@3ffRHsyC{9_|i&Sa|ly9irT^`ZtsF+NT+{pM`F>~8~?L7>H#th z2f$+s8>F7M;NAp3@7S9`MzjCLcf)(a#MAYjq*ZTqeq$&xAu)`w>`GnhjLe4Pub6o8 zu8;MCYx_NJ`m0o=y)%&mjH$LHYc_bcy84u!ZG0E)}rsSkA6%0IxA^w0pRW zbD=|f-)Ug7GG=MpjMm9bGnZtnEFhMUya?zP#hc}evg z3PqrM13EJ@5EIqdpgKIwi+i4>o1`qFP{sg625uNfnKm8uzfO?$w#ev^U(%ggt^G6e z`&l$b8T^XUuSl#Fc2(f0cRL#sJ*aolM?zg z!2zG(dLR8^ixquAqs=?1&8|Hv)D@2rs4fdVb+p9wfz{%dFBAOV!rm=EsmK0ay-AT{ z*ch2Z|H@mRzlvzuLZ9i>R>Obgs;zW%+z5K6huci?+P5g1lGV=Ob;@@p3Yo@w+6tDs zG-#0)YHxNg)I|J}A8<%z@qAk@Mu&edD+Z@$k>YmIXHZWnMf)FhYYmX1tD)qaeLr5h zqMI#S>z#IvdF;lD7ijAF$E$v{3A{HWHs2sHS$%*9Vl({F5T%W`J*chiZBx$^k4(HK z;VEv$*cR>3@-hAg`NW^PrB%iKpYF|X3Rr9o?xFK)Xwf^<3&m=^z55bp@@x|ktVorK z9&2^J@9=c_A@AZm$Nr{Z!>lc&)12pqmLvY5SL((XYBkAIJ7#)F{ zwgmhlUr}sTS4bh%hFW98BC%x}I%nDy$!f!-Qej+gxIbzlnjr9@Bl0Q9X{SPUG5e&( z#(cMoYSVK0FW$+{=xOyb^wa@ys)y&j_Hg-q0{a($Y*)f5R4eRy`W7!joIzv)yTB@i#Z`i4M0HSye!@n9nbMU z8edX$Oz5Zqrn({4E%njHCR(7(6N{!7XFiN6~^HQJKrTk?P$xH zl59&l2%Z^f_-ZxJukGy+BYGmoL8*oQ{VKr)6ScF|yfG<^f@#;eQzrGK#8~g-w6>F^ zJW|-llo%X41?cVBMM4UirPLA~s_A)q@P5;#3O4K{e7mq6xIlcCFsyGbK zMt3}au=a^lW;RL`{;tVlRz<$#K_ffy_ z@MF=DI27%9bSb$$3#cg{pCt;hIkw!TO2D|9HFCUS_%inoIm0@&3&mK1bCb!(s<57}SM`<>o-oRJ`oL-Da%g^Bnc@^Fl0} zT=~*4Y$T_+4~N~Ui6SmsfhSo87ln9!yUqG&Z_y>S24`)0*}YLcm0_d0upgBY!J_I$ ziQ-Sa?)Bcn zSCg7-k~y(iFCMO4fx1zBCPwYqPh;tGx>q^0%tXb)&qSO<)Omz{y4_I|Ci_h`b?W|8 z?4IilLGWfollN?`FyE(@@BP_0Jym6dZtM&0utLg5h;~jjetDV8^>@GBGQ$bBT=(a< z3p9aEx>rswFy?wZ#{3bX8{ja50*DIEOfLzNNUhj=J5Ifxmog8b*Q_;DDo68Rvvuqt zLsdP}`2C=)U#zOIG49dz%l9sBZ|%k>_5{?a<76^QYb@LTc7J zEY@+=de4SU7Opjy_WANOqg1`^cL>33!kt~>LRP(Ma**eQ4J_3ws2hoL2!5=b(imrB zejKe&@?G5bF7XiUK&J0PzZR!9w&94EQY%VBszE-(0U4;qFWJTTx zh1)Dwrj?d3;{qqJ=9*2xM@;?(cZq=KB_klH6Bu)fhTbv6 zkF3dX4teGs`6h7VQj(TW@1L-@h=bP{&kV!UXrHj_mlJq@USic8{e3Ju{pQ>|!^$nI zmb^h2$xwVVVgHB*nMXR!k&ABi5kE|(7dtwW@3o4hr|gSYJoZ32S9FxGQ7h{w=~{wc zx(^Ps;J!oXX)zuOg5&mvx022Ti_?O>$7Rw!d?h6;gCmDz(t0Z_p)h00n3wsVt&cdX z6V({3&%Yv!%SC3i7VCl7s-4riRP2FZWfbkkE%{q4_vfZ@7t_r$m!FZv*~*sPItF&R z>`ZHLV-_d!*LWE3y1f#30he`ixLp2)7ijU+Pl=uLgUq3^YUQ^`q+_35^suecD)@TMZKf~ZD@q%r0 z^F#~DhB$(Ic)DTWgr-Q9R7G<-;Yla}RRx9BBus6pO(*LfKYrh_+8|iv@6GxmpXO=f zh(~xeY}A&S;7e8uP;<3VWKb5~vn;A^e<5GLJhVCj1~i)T6Sj9Qs)<}F1X@GwX~%qS zzrlbPdxrBy5GzS}1Cm`$7))$1igWjMz6IoH-WQFF(MdeB+x>_!QNI|njf0;F4{qR+ zJG}4>HD~z^TQ@qlYIfdKWD)gN4;F00cUd_-RloDzLOt|nvkCRcC+nFMf^MK zs(vkUqTv%_X-?9le2 z(gL=FPr(pXNH2*P0@(>)5`dgm+xooKSc&%!(zWiDXu}`);zUeU$J7b|k}uUwN{}N9 zsF8+eK9ZL7>v;BZ9zYgD0soVrt33ihUw9uh3?vKIf+>sD_Z z5LHi$ek2FcH4BsQ-;Pcb#!vffAktc3&N^G3ZLaH;p4&dSs)gd;?@+_zRitj;F)1PO8Nf(g2&Uo1kce92kw`Us z!vy~u;*XlDaq?eyck}OG;_*!#UP*xc_hV)jsZ4)NrYbz~KF}^mXJmGm<22CP$|9K2?{kj@4YX zx<4*fA2k>+lqOlkJ|b|kRZ`dVBGwP}?wx`7Zp>jprUT?8fDd-=S1B$y7X#scu_70? zcYq3D%`Or`XVLsu`omdwbc)20aT^>0aoXZ`Z_I}lByXKrx$JbY>{Fdok zpPN^5EB&faCnniXmIVkRkl2MC{gz)3*rr zw~E&SDWUHwppSqo4~HD*2RPx=X-zj?>DhSq9nw>Ne#9!zv(bAw7hEI0Vskl+AIyJ? zFSzxz@~y?Vm%DQHirV{1oN`%yoq2jF+HY;Ds&XNrG=LJC_t&JrDF{IAUM7Bs0AE5u8s)Mgr@>{RFU$@Qfe)U8$B@;Ouh&nC7hhlS78tN%fF^0-L!Ht zJUfuSb8?W70E2k0f3e4?rKK@vi(=6MK|Y7dKA60F+9}#jlKVJu;OmC=lqzli68QUbV2@ww*?iC_s8Bd8 zA9K)Xp6EA@`tO#%73{TH^-e@S{qp6g^^LxMj;+RrQBx}O`eb#DQ6hGeDLh`*<(_+H zMBjQNfmv-d_;ZlXun?y?>DxDI&eOZ1(TsGqy}WU+D+}LkuwgHjjTPYhhgvimz7SG7`vQT2wW^B(~g_rS8=7 zd^p*vq3QiNUYFH{@5aaOu2hBLm{{W7)f`j6&0t~UXb3wMdLXLpY+J9^`Okulp0n92G;Chnp4ZxmTaSFcoDM zk~Op=1+Bw2z%K!674y$8&%%rQmIgb!pEFj-@hXJ&UAVDEbXejuLb-daI8_C0K)bMc zue#m{v#f-W1&H=i(G&xlaKTKPOGIHpd^~5>lbxdZ5qldC8j}I0?51y=7UT(wXB&H1 z6s3PEJ7ge91qs^MxOxm^bbNUIcFf8imNy9 z^-p>clW+Bo%-j+^x{ESl0=<|NQTcNc|H%lmHz%pk5U>nUy>;PVq6}~ZpDO3x9<_cJ z>$RgBW5Z4IA>eaQ{?-xnv{2lv@-oYva=6&Uk62#Z&8IDz|B{**cbbbKzQnX~hKs^; z?@K0*!kpRc5&?SZVih!(V8*oDs=C*@QoAHq5fqD|oR(Uw#vEOgG`|G8Xs+nLBGtTU z(dM)I`n;7rgTfc8n}g#sT7xid;S!uewH9=LgPwL|`o28( zX@U-2x^b zI7qq2j*vQK(~31V7guH=(-=7O$!zDuGwtb$6M&inj~O1?*Wv$H?KEc$%xZ5F1Q?ga zB<;o(tr^9w5I1mn?yv!d`uz1ZRuy^nVTYQ583&7s{KLpS4n`v;q%sJUkfnE#gSTNK zkrB-M#FE26^fA#JmqiInKWJ)K-J^H*`>Byt(tQKDGkAFY5J^r`P z{9ZpD86gfeFBXr0e%UpFF)_ia(NnCDrd zSyHcc*HM@2U&_NzC0`0K5>~))YVN(NLUUxz%^!_G5WlXUWk)$cJt~0)QV0WE`35Js z=u4l=TUJn-J&{GOty?_eZ`cCM-4*Ts+_iMI-V8+R)@!wa}I3cmk{6L6Z1Ygn= zSC2=+|0;t$NC9UvcYe6B4rYS+`@Etz4&1iDAvsCrL{tO7IQacHrnL?+ee2v$wR=*c zmzlG2_F)dBkv5;{uQt|;K=UMB19R|ZXRQllE9lLl{&&!UPiZipIB<1wENItVAm1!` zY%_JK!+KD;Vx`u~`t2~zK@ns2MGKsNwNy8zcKAWLK;X*n2q{fbwSqsx3?SI~aKUe) zEE?^-FV`9FeMOEl9^;i56L86TeU%5bb7ueJeg6iyvgOY|YVoYr?N3JSi^lg(PW0|K z#oEde{FK54;XHpsiVckZO+Sj3hsvCYV>M3gZ-jwkiP21457Ls-6tv+aBQKw*!az)+ z_*RVzI=(l3>(9{>IUKk1UUkoA*~c=E!t zBTLbT?uNBlL1m?U8v;nR&}VdM^gG@0$_*3V(6i#^4)eVk8CP|;7A$I4(&mAx^}3J{ zywT!P7sKBv@W*()Z}+0;0z>z}?&h**X1_sZlt9oxBPnDd)gGlh^Z~fhG28xw0vB06 zxG!aV5$#N}-q^>JK0b5(9?ca#_}9MtIpO3LQ88>-`Q4cujM2~`uA|aC> z%H@=q@9avvKCaW(e~E9?Kom=aZMzyXt1}xy(7Ctr440~(#LdnT_WL;h^|v4EbDcZS zX|e>S_@nW92;3F#RqAcvf>bSF=B3D3h8UxeUS8@WfIb{~c8#a?KB5&S;u!V8OYZ&G zdjj6Y(z5cur8C)>Gyn|4F5Z{=IFl#bf^3>~vDP-Qx z*(q{5Yn^fte8lq-_y|bM9vEIbERvL~)u&pp0iVFu@D9s@I1aAmwtxvo{XD}p$kup3 zYNuqgl2uqR&One)T#QxH3mwYFDkl+HoC2R7*kjbMVo4oqW8e-<=!ZOrUKuuMAD7(&~3+xSJiCMaX2Cs4m~A4E7$=QlOc- z?%epBkMcAA_@hFqE1bvS_LN8^DeUVj7E$@vxkuXBHL4=-31!4wo)*Or`AxsHV|Awg zn5_zyJzF67KXedfRXtc9!G{YD0L29eb|uNmKiRC_$1#|_d+}>2B%wP3%o@kREK_Ww zLjHJj;e&5CX|IR$-jqM!Lr|y1l-t2C_Jc3}zoy9f3dz9y&9j@^WEpXWH`LI0&3v4* zv2(p=4afcKUcsx6`M9*h;%J{)j6$QYAkvZVM8)~6um;&HqK1MjI=8;l=lv40Y3Su< z(ka?_ismv-E)oory>BV{tuS;uN6`~xz7>ypZ$Yz9+QBBtCl8j;`spJ#^9^+&y((J) z$gSpNlt|iMTU)wRuS&p;&leJ!4B=yh0{lgjg{(pm&w~23nLq0KRWOGF5x6Sr&C&Rb zN*MUAB49cf-SnG0i57gJ?|6B6WqjwmK0%|vdL5CIL!5$)f)QDgPwaAnsQ4+b$+bv@ z_o|Q`2gQdI^jV*S-tXM0X>|ute7V!nS1V*u$|^&$=LnnNXfj_8FxHXhZY23uQ~O#Z zZ=0?pivoen8N&WkN0M3QEwtjQlB8mp9*&`)cN9ki2B1!;ae^}6$YygF^e6ZVZMxbr zvVP=XmMrGF+9M;-v?#byq#rW&0eP_FG=cV;x0pJpRn{ig_lES8npOQMtzT2~osMwt zt{JxSw%#l@P0g4HsSBEEPCq4~pZDx6{I+RGlvd89T#nt>5`RyjH2J!R-=oRaV%*kB zUcpt5-s+ihbm&F-ZX_z}o3mEG4$uF7s`@D%_aHGHKCjr-yd1%wh6R>FU*r`1R-4nG zbTrNiOG+!mj(Y&NTpsx3W~A`?i7R$bhETf}RB1sQIf_V+)!lae zZqw#nxeZG5p3a6ot@_8_{#37*T=g!@uN8?TLIO@JhjlhpKfWE>x_>V>xujkWGQl>5gYD z^qe^msb_E%;E0ov&u+F(_Hy;lb zsDcJlR`K3V2b*Q{-ZY9bMYMlve_|??7Brtc-y=Y~@%f&q`H8Kn=!}R^k+h~FyWX22 zXXtGK2;}AhG=rnA9=m3z#Kj`=xG{?w^5hSQ)%y9FSCaA#0kl3PV1#bIC`>;!ia+%7 zNlj{3rDJCop&-Mn9KF;@fh)0Q_O0BFS5(WzGjn8mO}Rzr6{nHE68 z2MxT|yv+;Deem)tf~}1dkj_y--R{=F%-a@*R0R#!Q{I%__@U6$&o*2Jt9i0RlOLX1 z)7@xJ6t61iBOXknfU(920n79b*0o2SJr=~8=xFd$c=YebZG6tC(}ac9i3S|>Nan^r zOR3`?jWcTk15GmLtc@VLtGJAv7`_NSbyx3+T_mwT%TQmj`(V79AchFPE7XITEAy_I z62|&P^9vvZKPwHU$Z?PPR9I;i47gUyhe)0Pp}IS2rjco^9kNpYsUt4D4}v3Oh@+o;M&K1|=_72lS*qVX325c6Ez z94K?@P}6t39=Eyg4;o~`o*EDufU}Rfg-YoSIoR-DB+~wHBkc~>f!Rx_Dn%M0JuI+t zkfp4adyCwaNFMHYpgyR&vH3 zxj-J~`tBxcac2Ay_(KZcrTg_D|MtA3vEk!SZvzc1C^H}aPP3rzN?$d^eBk9e>a^>? zO$jGvTNnp$G8BI5PE|;inf$}X8zX!ALu5M}V@h&jQ$z0D^5SXeOVBAEAa{b~7UE75 z?#4ZT6*n9Hy!&1UCK4b!%#VS>p3^~>f|L{1HPG79p= z9({US4NwCFlxfPN1mD#LRRu3R|0xJDQE@$2=#IpNEAS&LlPSy@JS zpA)X?nz~>O{))I95_PwCSk#x<6eRVN?){5*hdIsbee#lJob}`%sEroEQ_6GHA)b00 zk`@#_83-gr;w0!eFMY&bHctp@QRgMsnIu_PfaOA+E|Rr+c6V4AdnFLWafa?q&{K1I n9tNB*_g}C7-+M#a{y?=e?GtM5&2kv9XCN&Ny*uS7j#wf`EmNbRnTeqz3{b z%}s{{0)#3ONJ8(O^Thq0_ndLZ{R7UqAg>h}H-AKF&xF{EfNCBLXbvyq;>RgDU#@Nx+Zu_G&t6AW&r@^YL>!;P(ZOM2bF=98XMc6egdwkY`QsM%ZkS+X$JAM)$TtL5$SG@eH;6vt=$Oip-{Cjg*jTcS-G4{CB@qY6C*V2A=&M4vNG~|^T zJ^J=KasBUiBJzcm%vuoS;((GOG@=nPQ*v~quo${jQBfg=E-j(RLq}lOE&}XZU-M|&_?$>9FOCgZYa&+U5Cp0_YWDS|+^g8&suK+Dyo z?fYe5MNjTPAtwgxcX#z!Di-~e+}pC6KdlhzG-o(KAmsTxR#k0SuHr`f<-U)F+IQRN zM#j)2VrFl>=X`IiD%Vae?0iPYar}uD~^9B!tK)L)>{vKn@OQaJJ zIRQVGLxWKgGY_~eUMjA<{{&SY-`=gb8`^Z_ww1lt)WzDk(aGoflThcL6D;WlHrR3A z%MS7Sap7#-WujX2u=*TGwV2Td$%~Ffxei?q3fSf;rt4>8{boOq-M)yn>*GCIL;FyA z0lK!+$3%GomokeP23~XGhp({M#hg|n$@mDm)C>hL;@AK$AZvnNOi6C({sgzhk5tV$ zzYg~h&eu`KzdqV$2XxZcn7L#6md7gFl$B4mv3*;uHo^VUc0uE;f#hODpSILWZDQT| z9Lzp8zr<>9@<@|V%mM<5u;sC~sT*&^i=$slxdCqz^J3)apU*ASe~y!C9^;2E<=HLv zf2DK7S8%)d!ytQ;UcO__D2!bW%A#>pnLE_5{xR$9etO_9ED1;9E;z2B&*sE z4-b1&%FQmXJ%%Qhgpj=G+4Yf><@oIL9K8>{=_`>meV51?H_U0uqpY9??LM4q;Cmup za23B!`Y$27$;Zs6i7O5?dADD$=q5$4OkcJ%y9qxnh6Z=@-}4aWeX%@G!XgNGem_?W zINV^T=WH_kkRly-gZ22Teg4cXVqHcgaml8NKedD4U!fb2!SW3h7+v{dcM z2m#~h;EI}Q{)6v(k^}`MBU5@X0}`kr#ig^-y`my{Pkr}eo{o8L(}e!n;J0(ri+s13 z!^m^^%eH(=Vj*T8>|DMcv!!LF`>k0w^cF@|AyR|an=~oUjI2F&mI^YLTXIgf5e!ji z=>a8d^XSak3#HR2Zp(WP0I%9PvV*tZvXAhc|0v=e5dP?wb>ZBp=!dr(9M<{xUvnA6 z@B4D*9j&4^hdggJ2*IqX{_ z=zP=QO+ia}F|JEq0z+RAnuaag=%%z>*pP(5eeep@Jlg1T){4LC=G9G?%Fc3PeJnG{E9N(VZ?Os0& z#ez5;xF#S2DLE`05E6-^1UKB+TQ*o{9DPupDEIs2YjJV$-23yauM5NYPs>E+^-XHK`u~0JJYgSKO*^cdnMy{+od~WvujSO?N zWTPKyLx%ctRAx?V%oQDs5uabh3N!~DY)%}@vQkwZdIJ!wp4Dz2P&ukJPfUt6R^yO= zx8?Lj{(XEWNp@s^W8O6v_LCACkQ3ku9U~2d9xZjb#4T2K2|9Nv9xYd`tZ#24$=npF z=wCEbIcp90Wx^Tyq%NaXSFL~Ln#*i#G$Cvux-r*KICsqPOIsS>Ky=l z-j1X_qQ*mp@)?eb!rCZe$_kK@%}tdV-=cxJ9lX_}Bq*ie^wD<9>GRqHsZT0yLRLN_ zhD3~JqFm--ZN}MtPG?${qTfTCm|<)|iB(yP$QQj_uLob_40y@r&Sq#5EAp;D3q>AZ z;m(-?e{L+&9)>=HOPbdY(%-H5VY`x~EwR#6<7F)6`(@{FxHHM8JE^oA9ShY>ENR+K z&#%_=+v=0=qRd6J@GZCI23EjgPY7<0sPRxc2l8IdfVvlLMrs27f2mTRRlb>f1KV_6Q6_{}=6vh-k^5^ z+xdz0Qrn7{G6XQwusxHyg=O3hw{Bs0KW8hegA)F0L2zSf57(`qlXgAjwmoiNpZDt+ zw^n8iOqL#?5EXf)yP~O4T8ncfhKx0ZEH{I@lP)4k_klCft(_yDzq9?FRm{HQkeSCV z*UQlNE9~aARxomB(C}C1)R05u#l4;UrofhS3I)*up@GAd@X=aRM@K&6wSBk4iD`nN zPAJ4Dq?C2Gs`<64q5Yz`B9;O zmug=KWQv8ZN_pQj6+Y~UPqJj2upVZ3(Hsj%rbD$Y4`ADYk=#>adUuyU?2|VvYgs9Mmg|M@TS}~ripXO2b|aLDjEM$4SgTv0$rd6% z^v<|#wL?EA317A}R*l0NlXw1FEt=+8!_KR^+jC4GAB=Uq2LFyb9QGi5sI`(s?-Oil zD1}pjmoP8-vmuJ6A9wYute`9RVgjYmTH4|X&ChVraw%nzcS;nrX4od-hj=mLD@!-L zPwv1^nXz|%z1)iIYn|^)J)gJqQJCXk-dJxWLsvI$rw)>QY02D{uF?CCGiXPZrSWC^ zTa>@j*W0r4+uDOY%iB9B_tr1=ftGuFidzY@2CC{hD0)$ZJXd!kcQrB zP1Tba=MGB!^VwjCeN@|U+m4`oP`e57hWxFJt^$jjH@oU~V(x3ty{=HX*pwoh)BY;U zHiZ2NHZ+m=Jm=`Fu595c=V7QprHpHJs(QHONvdDVv9+>wdF9WL zRc*9zK?#k?O(PMU?H5_V`cDWcEdrzH`hyoc@XHiPDryN#>X+&Zecx4m>=q5q6Y@TlBOUuOv|F57I( z>(&K(rj1GQhlqrlbf*pI2n>BA$;z|HTXyc(GU=#5rf+LwA1EiIUBMc3VB?O6sjD&k z9~GJa-%sXQzBJb}AI;5dKjcBz;BPWnA2oeb!zby|>*lxKNf9^n$Z{3@vz?`ei9odK zI&+&QBT-p^1Te_t#Tw~yA5!(j6Hc~57*x$YXr6CAeon$YATHqSXhvm8>MmU3f5~71 zW#ix9Baaf}BEEZl7+3o3?3Z3~;bwY8U#kt@d6dwL{Bf3RZnp0wv*J(!irt@lPJWop92y0F^1wsNqHP7<>G$a$hL~E+kHVsAzD9`! zgA zm156!{qrayMar0XR)8*CV>vMFt~H@XZLP23HwPR39y?bkZp*jlZaer!X;#V%VC&4t z${!*Xd&}VPZcV{%i+KsyXZE}Ff^m@EQgnGDYtWSQKLJmc(9?qVbeBwXKI`i3ejgPK zLzDd1Y8aaS*>JV(y(TE{bvhIj*#G3>+R{dmi37U!_{{l2A*uZg(XG8@hhY<^Z1IFd zsrC0=vxHun$*FUrG_= z74aoyVW0(Yj8H}2;9gF9uuM|Vr-R@_4ao30|gQEJH{OLDFgFS~};X&JI5 zTPDL_bomT@RV<*LS&|J@CB>s+*_=-1;5k1=zRzE<@asgyFq8sUD3**aAN{!dqt5!{ zwxeq0XG-uy6-xuA%+qg4hEXYby-qPZ%|#T^kwM@K;2qyw-6rdY=oNQN({~6K$k?4% zBr%FFgGO>u=>qoEIgyGaS968$nCUl4xmZFkk=tv_5_9D1d#Gqy6}~n(aG2 zOIXs0Y2F@3>1|xOwvt~C=}kh8X4_6^Y&0Eb;#!}$Qb&Khm8D}wd0EqrjN(1LKC|-X z)7o!O>vTlr$EYDb`SLQOw<<|%s%tM9#bUN3PJ4vYWmJ}aLXVZ-|J(6|k_w~5R-fGoVWY}=Y^~rs7lzCAb*+r$ zcJu97hvW4Cf0m)OwnYf`GAe382QRcr6kCGT$A(e5iKOuqBANG1{$RTqccWE-L)h>u`y0&Z*cwbTw;Y7T&PjKH9?iZpeV^TXzoYU zhA+})<4;sJ6R8h?X39yJ=I`nOS`Hr4S~n5$#W-~*iQ0{n7!F;^%c#!dzqfw>peDeQ z{WFoSRTMsXM~cxZROoyb&Y6cZ`^Le2_KZ_yM)fILlx;IgktyW#Ywo3ar_T=4k(T0? zrqQ?SSvE3g?3?(D4~k_59J&h5GR>m1|Heuc%0Sr3o2Eb^g3$ZQCpOq%DH*pDo6bq~ z0$0)mxQ@k%V34?dD)+2sxVgR0Y_2K`w~U7^j>(l&ag-~WzBR{}ASGQz7+BrJTMqMQ zIUsA5@(wH!x-+wQ`sCmf?IMkaLMyQ? zX8J(o#uvaujD9scJHKE&Gbvo%%c35)HyNG!4o^SA%UAU9Wx{0)QSNuY zGYqAfe20w>BwP0L*p<->%j%?#&rqAMXVSiE6pX z6y9nRI#HNX^cLVWPs~v1n7dp()EXJ+lbJw&i-F>PBzAqw7D$97Yt39*UQIlq!Bt;k zb;qInXxS0bv1O3>d8Np%CEMvbOe?gcf3Fm)Re+VKb)ONGxKN_Q*ApITR(wMuSmjEm zkWk6fIU!#2H&Uh1$F!PRC2BpbhlJ@^y2cmb{mIO}=fSy^I4$CglrA29Kya$j7WfZ3 zpm@U53`IgA(DxuG@1*al9Gh~Md)FZ17rwVj7<@`;7LvJv>nKO>8a$W6jbq&lg!u3u zT{K|#rf27#r)`?OwP5z}M_1rYU7%Ym)0r95uPdDAxt9Hp)qDP``48L0J<}En|FR6U zx(={TcweX`(woE(4%|qxY8FGhwl&jDr>0dA7Ki6v0X4|brRvm-GkA$;wdLZlljdrM zzrNyxH7oyeK}PlV$@g-^czL?4Xw1qn&iQilM{^+BAN2XD>ii^_{8W4D_ zbWx{uKHG64Fg%Wa63y_rf_;Kni8C)%>Z4SUD1EfEO>;yLiT*zljkUYv8YJD zYxvcu-p4YomirGDgZ zq}Pgm;DpDwALmE-3)dKQxX4W&T*hKD$%5pFSWE3*Y>wsV{Ku3?y%^$C$FJ80&-H1j zX&?C-Gg-A^L>nsdwxA6LB<}%VqdMRY@GQA#=laWFh2#`d5a*Q(-a7>>i?gj=NU9@w zAJG>lu(#bj{xq)S0C$@VU%Y&y9*^1M zgu5V&UxxUCc?IJ?U9oI=aq_^lfg0dsgr=&Mf(d^uMC5^0v{FqMaaJ)Z0)~wY;9?32 zq1%B=2w0sAuss`*umHyxW#!ky6!ldm{8h(u;d&F#ZhLcSiN>-lYgzgmoP zhQFNyF7Aqe*_*tH*{e1JXRHqjJrFK>OHU=}6l#`>jS1U%IJgDgfMey~DU4s5ZPodo2P4_=?QKK1gSpZgpfwP6@lT-Kg3%5f zA8f6NrcKOni^)!0l$acM4TM+}(6Zf9`5-nxs8|mscvX8ck zmu$LkrI8gl7cDI>8KPqSTO$gWI+kqcWgzvM4)_T5O{Bb@HelwD~~6 zn%J8@w`P)F=o;J>%`%iUD{~Aq2mHVTMpk7rk?~f%6{?7%Y0Bq1fRku+6!i>6Sp?8wJsUCAs$e%kOxDa+3s&q$rch7lyX~>R@E2ehMt9v@$u)KJ7CD`a4m~zGTBpRR+*&u)%B+O!p3^lq)lms8;e1 z`Gb!9MBIBdWRLS-WIZuDg_92-{(a6GNPTwwpR1%bsPmWFqq~7jwC2d3=GFI3(|_ag z_?Oo}!tK;;b)7mBAfrv+_6F46`-eH@XMlIE?eZGd>!k)yT^(rx1_KJutbk{y**W$7 zs<##gm?GM(kT;60Zk;u!%dI3W@zLZ-=5(lmyIT)wKv#F8k#FGQ8A=B)tDd*{v{oGz z)8ltnN?j?Ap=VjGUXQMjzbSso%c#5eNb|qx5~>|PDQvXgX>9>dLAgs{@gj6!x@B4C ziVN9om37l&frXh7Z@u)pr6Fr&K?uHJfh)K*agzo_9cSUbm&>0f z@dzV{;%@(hzXGO=RHdr+yaKi&-$`<+Fl{~#ocu^@3(O%^-(aqWr6f1)JoH`5Gnf}| zy58l0ooSKuXHBY@%d2qzkbcke11T;$rK}DsdG!A>Sh=Y#5SAk6L5ZKCANUsdS0S%4 zAT8I_$4EhQ{pQJ9oG8v`_aT&q$?h6B@|i)n-31?=%aY-{_mQ-NoAo;ny}0UrfA;|5 z-(he5TUrU5%O`esT1I;5B>42eI*4E>!lc^a#V<(kYJ<>Am)l-j>olgL+t@tGL4v}M z_Q+`SqV07Lo@(>eV7CC-DYY{zjJz!7Z5(`lKt!-*@Rc|Hn)by#y>K%F=acsy-;`mK{99AmpUvn#EsXjNjM*?9Kay{_jg<|Y+iLy3-Q9&&rj0^w4zBk2MPmT*8y5v zB-KSSvLNBx-Yo6Jhgx7P51hV?X<5Aa<(PW5koCw7n~{w!A@?;5L-jRRV0sS_l)?B= zM$_vsE3S6b;EF@)@2c*;xt8$NXMZl{GI_8T;2wwqi~xJtl69^GJE2Be69|IgNp;mn zjVv(F<4L*Pq-kLvEA+dB$II39ragvlGs83sSnf{Z<2F~XG2}{6kF33x@_RZ{^ME`_ zMr%*9=v5pilSvzs)dO}i=pwBqJ?OpkYp}3^5t5k(o3G3L`(s{zi({RuPn`NkffQC# zjVQz2tQv zDV*cj8{NyqylLTg0d34t^4wota$`F;7C)p}ZjWIq!nhD99A!f^|Nqgi%+2xyAQ=i8 zNLqE<81(FOlxz8xy2alw3)Mey7roG6fi`6`C9e8#GoEl5Ed_^&TNpS^!Ne^lySd+_ z@~N8r`Uzkp9y0iV#F%|{Js0ykqri$vxr_Rb_>@|HrjPkJZ7Rp9iGcza-2GBG7>D zEwh{xw!inDPTht1zbxApevAEu8Hk!7fOE?FGMpWF?)4ZSjcUJ#F!Sp%u0J6c^eURx zM7X^cM9o%!!T5jDT&<-8F;>c-5Bof)%EeeI0ip(A(C>>3-&EhYo}&i-|9`9h^A%Wb zzc!7r16mArr^g3>%B#)a|9ED->K66g-(2X?2@MV1W@Y@}T!H}R_{}l#FoEB(?eh;p zEN9Cd0D=Ii$aGu1Hg2*>-bCI}U%j?^v%g{f@^Y+H#$qN#f;g}@=}bFQ zW>PgF_xtj{t0> zca7v9pMT_$Uf>Z%{CeszXZV1@^erLMGvE)7RMK|3W-^Ehr z%|yI#^RxAtq3BpmPjOnQQTey5UJ$hsdauaj&E)%&!9oK8lN=F4s3O*rIS0igYH*@s zqPI&HpZGKnv*KV#rhmzg1JxmqqOZ&L#l9zaWis!hD5jylzIgSv|LLaM%qLS~zsebn*LVb7diX7iMAvDTipEuVVAf<0 zYFQSwLda3DM5jnJwtf!j6k|T&jUQR#u=3ZdJn+E!uZK#^4%)?frRWl z9#ZEoFz0a8Eg!d!oSg=t!K(q-p&`fVjRe26J;C7WgKc|d8|C$IwlT>gmD7#H%)nL5 zz;eJr@>SaG#%5iJjgx?*Vc8kzJ=GWZpE5_8icOUB9VzKc6{5R7)1<&ldYPV=9Gz{3 zv3M{yA6aXK^dnOGf^0rVF&Dc1Vv&Xo+7Gvm|&z2Ej*shJ`&TkS_2 zENQAZDJ!{sUb(Y{gF$7_0Jx9ciACtwtg>T@EI!RbYMYzIHzP+qtD=(d^|?m%{qo3Z zt8>=3si`~-el{;tO`L~|7*-Al@lIA)Yuf6KpkwZpsGD{& zBZX{!%1LYRTFhwJBBlpy5i>Ib;e7yHz+NzT`Oem_8O!d^*;)dHOVPj4(NK&VR{`PH zZ_>0cc;!zcLmCtYWVEo)*ziU;jRA!{BQhceo_oueyf9-q;W~Y?>X)fFS|)3s6I{!3 z%Wtx>^EhNGYnP*U24!YHT4v#FwuW=6JKR-t=~>PfIvrHnS{ty_g)Qi|;)-)jBpOVi zMbI2K6dooJ@cV;~(6V=Tq59o$R?s&f`RCFho&7BAzoaNu$T}%Sx!|>om*nW{7|yL~ z2pzu1q^$Nz56D0;7`v$~N*{ny>Vt+J!nRTw1ZCJD$8QemLXT<=esH%qG;d`!5Hn|v zXNbL3{onS!^kfui)yZFxwks3R6sX?kkfByj3}DD8DWebFFA^rU>@-D8(gul85sMP) z4Bwf2z#t>!ppAuJ%%NA^T@Q@DT@=ddbkmr4IcNX%!36%a^+|@(`0;9rnTv4X?)VDv zSDe(HvrVbEK4P;3aZ#nEKWM*gzSp?HkPkVpDXlDHwOUP<;(I%vnCuYu^`W7A>;s+|rz0dX& zXJo80l&6%|XCu?G-i5XvXGB+l!A)|~i>XTyu-J3CGE@j>i3@;q+i-k;C@+9EUqaax@fm{yf zVlN4Ac-i~^pzU-qPR)CmHJ$UwHde*nS}_{XW;~!@)#T!u#{$Vqa_514nhekq;cmA= z4mgd|P&r-+D+`-VTXva>cvKz4`gGN=ZY-riJOZz>cQBC2=Z+q)JubH4tXZC0aIsXJ9ocay?b87GZ{>2i2Z5TJ08H75o-Eyy4p?t)vn$gynKyZ_2=|0zkPr!?f)hQM6p z_TcNQg|nJ+FGR?0)$R-xy&&OD-q^(E9K6G%=Jh*nv6l&>1r;x73B6m<+#yc#0r|A z1rk6QuLr^!otw=0!yHH~Zy=2)D7&7Na^jq(U}d--02YOD>?9S>8ka@sF3|k`)2n6y zIj~V(%}KTVC72Et?t&aeJ0;C%AuOdDp38%(*?@2dlKmER@XG6u$9~KjkuBnr8D6F; zH#uArn9*#y=TJx+whP23P;Rujc$VofM-%R23TJOL%uSHVr=o@xG^k8f98M3YMJ8j5 z0)g>|>FT#1CJlvLU^?(rvuYye5{{P<MX0my3S`zq81Q(cl zm4o*jXeEZKG65H01{U3*h@Y`FBj3=;c&R;iOT3y>j84M>fp9F|ffjlI-K?c@L-lY6(3Gaz z?(#S_?ReVXi~?Gc9yR@>YVCLxo6gieDi&B2ATK~APye)MsykV{uQy$Kr8tdb1Wt|? wA0##Vfuk;iKtPXxipc)|1Yoedne1A?#5OaK4? literal 0 HcmV?d00001 diff --git a/doc/images/alarms_actions/action_rule_exampleday2.png b/doc/images/alarms_actions/action_rule_exampleday2.png new file mode 100644 index 0000000000000000000000000000000000000000..073e08224a4dd92e79d8323c5ff403c81ba54b81 GIT binary patch literal 55861 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 S6vmUk%H3C%%D-pu^1lIEIn{Ci literal 0 HcmV?d00001 diff --git a/doc/images/alarms_actions/day2actionspec.png b/doc/images/alarms_actions/day2actionspec.png new file mode 100644 index 0000000000000000000000000000000000000000..3e95537b08a1bff2db98bf6d177ade01add62b52 GIT binary patch literal 31430 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 literal 0 HcmV?d00001 diff --git a/doc/images/architecture.png b/doc/images/architecture.png new file mode 100644 index 0000000000000000000000000000000000000000..adf76473931f463e46d70ce8b9a6b9c488bf9d6b GIT binary patch literal 144661 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 z zrG`{FCqsCHceJ}%+T_ese9w|#YK{W!H^?YdBd%JnLudDRVueWyuhN)N z>G8oz!n<0XY0q@-3x@%Y_9E#sZJ8-<&0MdfOOY?qYs$6%{ss68?+g!f0D+^>Zb68dJdl$NHP2o+A7#5s!5qp6^{ zIo3(UL+>0P(Epp?LR%C>=n>660OlO)6nGu~{v#A?y+T7~jK7eEuZ#oU;+y9ym(P%8l|j6Tin6+In>K5XBcujN0=1h82IDgcqY(Z65 zq}UUXagLWS%5W1%<=P48bVHl!8_DDsf6W)M5CGDSWGYtAxHg0A$m_GZ0#nF@&c!Y zrzjTE7|mGO(7&qwljN9eks*`rk>y3O7(!w#`MCu;EjH zU)Q?@F_kdKfPf8)O~DAM+r4B=Hmd%IUFQgq-dl(M+dXOxp?;g*2Sv;mHh~V9og^g{ zlhnX`^wo;hUnBrAf($!H-1jI5IL!Yqc(Ck%&YVn#U6={zqWByvOjD$DR6ifBPdMC5 zo1&<&ZUz3J_)D~&dM0-0+@d4-+7aav4`_!}$I9 ze>hu3X9*pB-xx#~3P zlldS07GU$p9Q!um<1ZG;63eVJg0VsZ?Y78fFavWk?q)|I33u`NwteZwBNf3kd3Zk} zBF?BL@W1gn4Li=TUie=XM@bm>;l@RI>gfvM)*-HT0@t`NEy0%bj4tUP1B=>&gP#B| ze6P^HeMdQwUEbc@P_mMWJwiYcJ&E^&)6VlhpM0Sdh-@Gl6ATuP1Y=H#H~5yN&kgoE zE}`K&g0n)$)(3&7u%eb118F3K8fydkwMX85W!rL?`yhnF_buU7rLZWr(g@nMb zc&!BRccSwDq-a1f*6@GltUqb)BF+CeNQ@f zOhz_>Pk2JWd(_c6eswZ$YsaS;;JOhzYa>KLMJ6>xy7utm?qlX@XPV8w7uEjNFmo_d zZ~K!=&uItn43s_#i(SjrlR0)Ef@IKmOJ(d`^-g3IjFEaOgXqq_>m#$khk5-+Wg!@H!M z{;;nT^7rc{z#GTKZ) z3RR-5>8gqCPe1DzuLfauY1He&b|V3AX};g{mKk~%IdhTIZvgJDnc`_S^Jcb2LeoAb z3$@Hwkqq-*+5zravBBT@-%mdTKAo-d-}uT3TyVAw{??>Ao~nqaIPaG}Oc{}s-C1e4 zRj+&raEtCk8fN(rX4EKVq99=Ql8g7*_kSl4ZLrv%mRO^j z%Zp4@pU!pvb0g(*dxUT7FGxe+M<#*Vfd|^m)S$KmGaOI_3!_)N24UzZNs#tbzz$N* zipusRf!)4(ItP40{i%ZQ<20!q+-j@?dUui+l4rY7_8-sT^F#wO)Biq#*T$1oMSnxr zyIHbDtvhTh{bllrK?H==v|g8d*g#4=D?0fgS! z3^SJzO+4rIch;I}R8$SfatzVfLBI?kWd46H`!Pb%$Zf0$VAo!$3Ix)wGhZ>L&w}3# z!unA*t9n`tZK03hxob?fK>pF1%628UKUtuC%ROM{v;cHKaPgYrv z`lks&D-_*)LCZD!8C!W8Qs&ERwfkd$nBSAn1jI6X>tkHtOJhoKCcN1*I84mCxs0T@ z+hvy%nFi7h*v~mW@pBcVn>qi4#Y1p#l8@lObg#1TxvT;k8f9FL|JU8$x}hJQ%5VZ4 zYF`!_xKWJX*$;UHz4FqIR$gUD@(L&hNDKs?SqEJSSC2ZNaRltRi`?XU($bRtM;7l- zZfli1a{l}ex^grOWd65S%LQsR@BdS)fiSNa!;DY>#<~{`sn>o}!4eM(-HGJxAUNeG znljQ}At6Xk1tFZB7q0kx=Ek4QJeWCuBV2y#yyftXt}_4o?l7puHA?Jf1lj5 zFCgRZAPs14^F%B6IblH0ocnSqPr4M9P_I zR~789)1Wk=^kQY^F*y2H?nIR{HwLXVqVx9X{K9~4>I`5GCz6}*M{K|STswNSiQEsW z^ZE?3hug0(t3(o=!1Do?CJT9Z7_9nC3U;^BqT3yWa80WDH)Q;<$94QP;f>EsuWvLX zX>uNs5qA~(;Tm9&BX16>>5_DxVr)N3dnvwQ<29}-cpZ07PvrsvD7GlQ<1-H8$M(KD zhT^Blbw5w$v-m0+2ndHoa~agsnPCowBpb}a7QB1C8g>B%5@80%x~Qy!8FxFTvU|zw zwq4n2M_=NQ?ax7!z8)VLMWhHy#+lPUd;xX=^n5-P&oHaNN(6TU_@#MCD$c5`ry8w= z39Ti73mbovs@tM!QgqjV|G)2T>YyzDbk&+~4|&Yn5~T%FZl%L%h^;^0v7!0!g?@R8 z7h?4lds!OB^=(Ifs2e{!0sQw~xBa#D!!RwJxmyQ!G-y7y>=YCN zO7I^FtnYz;)_5K7?8JWPvao@^3~D#_mpYYzI8F$Z0Bsmx5oS1O1u;$obmjg;&4+@h zmZx^L47`-TOBTu1anDrQidDzo8HM!u^Jd|kZ7|ah#H3jQN5b1eY@AHO(Xy3P@$cg( z2#p;M@U9_z`uo~L7dVfr7W=Cf5BYo6%c9FNSCWtn?_E+#OdeONl4t_rVGGIDrpTQK zly`$0fY%8;7v8W6puw5_5}2eoLnU`PGf?*swi5R^09w`+ZU-M+Y>!MyTRa!6*qUX) z*@7Ay4>uWmo=gJWZ!d!(qT5g{;%u$t{2Z>T5ajuEOOrSo2e(1xm{h4M)rEZNM=Nqq zFJU{#aswmDMk|bvxj8IzW(I;|Y41GQa2oy@iva21(nQ}?jvBv`kl6^bg%h5gY0gy4 z9Mv!|(c)UW_w8@5i_RdLlWzK6bvJ#lw~(j@u-&0}#|-1^Vn2<`haXxn*AkmuLEIcw zeuqZ2!;-Eyx1!>WCzwedN+2b7`^?dHb;~;c61N&=N)mJX)Z|0|t;Ur8BS&@8+cec{ zVOF4#_t(pM1G1%VD zq$NxjgYFZWaLq`yL1oGaVF9)B5RoG;)a!bAW+#~jH7v2HI|-ufjXdN@}y$%}_*Jlecn zc7U+?4kO$kb)QncUxrvZAx6qNUhEnIEddBNRQEXS-fgi3LRCBmyvzzLkKG)#)-=f$ z!ADDQqvYn62Ib6^#m$v3W`cl%LXwbuDyLDip`h&)(~bNM!2XSHcL9bIz$(ldVU(No zH4-AuIFa_!gz#!2 z)TB2`+N7TMJs(zGpjq%n5m3SNP!A_Rw85e^d}_PU3=*`P{qx2G``B3j$>NX&C|B!j zB45kv$<{lgBi_NGUk*ZI>5&2UjI&P~>Z`#D^sp}h`GNP2 zzMhA7gk{lO=9Pv^auRkIhpx+ca?=sm>5uW zUQN@(pbU+ng=I_}XA#e}wrh4|x9HGi8ZOAU*CqLH!LGV!XJIG6b5D75iMBB%@RP?N z9d+Q7_d3n0x)LwPS_iKOFvl1I@Fe2c&>VfDfYh0o^b+|v7qM-GUgyyaRMj(KZ}B$^ zG5Z1h@B>;|;D@U{C5z`tZOr4_9CNwd@#p*Bh9)4^6`BMjpNpe`X*aWrNBFM4;|qT_CW+-g+>ym$8f zc(zD_zQ9EfWzX1ihlOTOi(iS)fv2Ob&M=W2k(JtTHK-4iH~i(d6%ve4 zeZJj?qu*M8&-Go zcKKDDF~6E;^h%-l5+MJc$pMPG3E;8s()s@6Z>2AdD>F{36e@S6_=18DxBG>ta2rca6edDpvxdy?8YUyR6~# z%<VIdpaj^2CT$8{uhs$w$_f&Y}7_EL4NmCTjT<5t^>6KEUeZltEv9QMsJXloZ1SlQNI~}`C9kpxRJE!Bj zc9}Yl=d?58xo6Nv4Lr#d``M$ONPhm*flL9c6!Lfh!oBhoZp;R9=c8?e*pdfujetz= z0;BVZ+Q#eGIY+hj#h1P`nEfHCKN^R0w>gA0gmcT3t_^*vOGldvOAu&&dL;u)gSltw zu}95NAgZ zTeFK3DeZP0j*4mv`J76mp-x%+yA1&#R3$#-7{L>Ah=y|#&R$R(^ ziGm?$V6}DjPf@v959~gaQbL?>|89L5+@XFk-(=!SjoVdSyee?W+f@DmNzT}^>Kw7c zxTMeA?o!8G*CO!HJ{Q~v$b|uH#jTv*?gOKs8%o9Vy+1vtX!SgBPz#NlM1=zO`n25R zMuv8e8^Q``o=h$!?_ah*FlIjwcaTiAD}*DU22*y7Z#j}4zIuMnfaJ#BDo8Nda#{PG z_5d#5!Oi9aI;u$H_OGxOwyn)CwuN!iB9hx}u|?4&#^^^MMe(K&NQ)wg&-_PtGQ539 zblU#ZZkmRbdKwl;vR4g_eV&$3!8EBZ;MtsAo~vo>#nw!lUv6cCEQkN?eG|~A=t^s> z5&R-SBP7Hf?NyCUoNY$eFGm#AA4TMGb{AW8_VeN?GWoGbW|ojbot_kJt6-f~>!Ctb z0I)I6n$wwjJs$DtDkdsz3U6f)B__Pj^m51XsMUW6&Ce8q8MAiGv%`D5*`ibWp3ioQ zS7`Hr{nxHN!{*QRqBV8aJv;P0G`qx+i1r5a#le;@M01UsN`>EriivchPIW0x&Z;O#wU~uNq}-;ceXlilOn5zCuAfljI|g zFhKHpMb+!0ux6^_3>+t%+J`G+-RWb#X_>%!F+O(=!%Eu z4g^+%{p8c&%XM>FTf)KnyvD6bk7IjTTq^5gsIrc)S?V0HXSaw)}k zAbYZE78k^I1EZH$KfCJ5-H#NA2qm@_Hp(1UnS6)C=FwY{Qe`%EL5z1cl-?Trz-=O~ z>@zS>Wec!%YQ@;G1#r2st+?ndIA%9v{F5J#PhYW7Y|6)wZ$#e~*_7M}x*HK+WfAWV znp@GCsn_k*z~<3N&ix6>so}A^Uj7sUABZvNQkIYo{NW5B_-h$?GHGALnh7 zO^J?iA>@-8K@A>y;-JjpC0|gg6y7rtYI9Y%IcZ^mVC}p-#87GPLQZF^Pma&gjU$mv z`K#Iwg$<;i!WlB{+wywSwD?w{Kkt%pMMeyvsNUBuk=Ylr4y-pey?#z4aG*P<^iJu5Nz3z|M z|4ls$?C0(8c96hVA|$ylF((O8kK}L*?C9xS)u0x<>gjI3s;%zF@+aq2JXZ=ao>aD>@8_)z zz7`?|zCRLZNJLUFe&amEE}6}0J685q8daAL!gS#^f%l+pxFUcWCvF;{B6VYdagc@b zsN@kQK!L)ZX!hM}6s^-)>Q*JEN4M7rfoRv$t1SNQwyX;@&l|^sUsJkt8DR=2O(3IkI|C13! z6OxF>=(>o#?!~h9PEX^?^ZXFsbgptpg7)}1?bz@(i7L4HUM89`x zPpR>Cq_u+Mcdz~FCE4Y)6@?$Wnl`_eBSr5&nx4kmto{dliYE`Fy^GpL3w0o^C@?qspvGv0h)YUjO4kE5LR zySLuP>Ru;!N@T$%CadD-d*mC{t8iipE%4!Q05;EYvr4%cUteS zvL0)f!qv5BCLp5XWxD%XMe?#r>}XtLe>Fy>|DlT5i2Uux!DZ{e#Ge`TCsla=PO@x2 zSgdC%sGx%aJCaM{A71rdX(>)oQ<+)^IrQwi_>0cFrA!q#$cd}oBiqD<_``n2=xnOy zC={lYAr%T$)D4K!i!GF*c$#>+|||B1dce-vh~$b(DbwP%#}UmG7EGV|@>n z3B9QJd815B{fvY1B}_^1RLWMhWgCD>1$W7As?3DXyf>1G4A3pVXTl5j>HM_V`X%JG z@u!;9Smw2N^#_E3B#aEWzC2Bb>WPMB-;%JIJxEz#e7vuH){;!Yfc;;5DC_mt4iIH6 z7x^;LSE!$oXO%1MAovjB8eQPbPtw2fO7StU97tOvSe_1S#7;73S0O$fUtxCav#PKB zKUyT4TiaY(u)rHn;v5qdtXt=duJ#kYee3uYsNh&2Ya78JF0H4Y6U((m_{=HsQ0#kV z3K`4%80(*`NRgj0(zl;&l0rg6CT6pSn@ja6x%Ns;>6h9RO;gA>Z5PY}L^f-_I#t`ySyYfA?816TAY0O)U7DWvjy={k@=iZ;->|MpCfEkcjg?!C{OoSxO?2RGD??x@g+N5~md_r|@@AMs z`)N`5(wn^4TQRvqD$ZVyWqz2Bi$ygU6e zvE-@NbCo+{*&F37D7%So5DPQ}9*r|@My1Y|dY5S| zx*r*C0--QwG>0&P0go!QG z-D4Hb$`sjy5bDKGU2zq$+*lO{sYrRP<-VD)wEO!hh!4f!2Pm^|b%rQtMCF>bdZ$_y?chKmA@%_SwB~v#7q+_%E3RE@IxeQQB3R;i@`$FUILbO|(Xo*$PF} zCi)5hY$O3^l61a~hTYbC4_??grH{zBGi9v@e;r2|K7aPvYHq5gZxm*Y4;HJTdnzZN zq+X*x$h+~<{9Ou}I-aw7Z-X*@M#(P2!S*QSl!D2FWf!dllf31a=9PgE$VV-?+3~r$ zg>niA`}p2EHaLpFc~wgG<@sYI*OjYJm06@@d~~n)>=IrJ`|ta#CWWq)*CrY5Df%=v z7&(S2qH#&??+?-GwE<`MJc-2~rBV+?T@gjai@f!g7a!Rp^^P^JAMD4Of06s*Vg93W z@@}JX+D#HL=~0Ng?B&l?HQ)rRXvbyjDd~uNzWDwv6>j53Kz-WNW7`V!?U{yo@r_5n z2=hDt8QxWqxZWz%dL=l%7L}9-e{8n7FUk3Uvs_*Nr~dQKDhlHMDSNsg^|8oUiNsh& zc-FoZ(ZqLOOCNIDA^*OYF)wZlurdd85n`3yeO0!SR8ZEQtNeqCsne8xCAw%1U_es4mtXUIt=(Ls$FGP@ip=_?dbSxEjHP=atFf|BBT!$ zZo5B$;IUk(CwynIi%wjvd6LER)--x1p7+_W$E;@q@s4^{Zb&|5ciiddb)uuW96;NP zw9#2Tc$Wu~BLEqWH+XxS73$W0jLw$t6B zbIU~gj=RXGGG8){FT9<#^01T@YtNZ8Ys`#yIrP@98stN=IdNcA)60Ehd!uWQhDr{JOIEuq6M@0g}h24CYwPP;8PM1)sle`st-MlxIIK zx|vo(1O%ZY(;`qiw-KvS8S*WfllHg9N_p8feZle(9-~1K*~pS=++iShvXJ!*D%wWaE!U=}O>{}#hvKD9Pt1EXkoQNkJ+iwgAh9H9QgjsgAI-!}p0BdjYlx;uFJg4 zq*LIqMhFh;&qT>#*6&#SP^hXzGk=56I4-6irL1=xEKl!o=EKFz&c!xMzYdJ!oy%?p zjwOYR-6n7CK*adMo2x-#2wg*zTSRQx1F7w%g96b!mb~LXjvg&_(>*ISf z*0^`?Nh z_v3?`gC=8D6CNjuoTQYy<}ULM;V^4)ZR@hyFVxQl?~mOkVLD*^<(u{}b|fNRlzw^`|1Ng{R8IfVF<$PE3D&wc>ZO zO%ECsf_#}I)&O^<{PyVPj$s0*KcxY}+FPcP9npoDjV(NWS$-1_hvM4lnIu1(M)$si z<5evnu4dISPUxP!LQj5^(c0%F8R$pKmt($FObp%a^wza&HpOVuP_zE5m+uc1)+ z{!&kIY;p4lwI@FLeSz45N9c;Xu>F=2@7^Ze!{@UK490^IzUh-(j>Hzkalc##U3=O; znv%{B%Nr#1pmF(mB@wVl>OMSf8sKZS3?D#QIK@OJ#;ZUxb*j>H?es+@2ux`^r+Oqe;Bjmb-ng#;-(6DCnluug`P}WPS9hd0lJG zUlHDqV)8S8{p>YPZ!2{M0SoI>YE7Bjve{n^;*Xop%a>lYvoeImoHAQ8D}C=4MwhR> z{^4Sw{<1n&46hohzSpTtrCH>sfFS<3@k*kX_AKW!DI-1cD^R*}9b9$FP!zx_>4J)R#FEdZb)I|9P+FFfII1YtCG*_ z*Hkx}iuD^kWl0mXC#8+ZuGokuqAbL(uE@c%I85P@bv2sFjajAKN^bs$gb+*;lPZ%V z_&g^QZ334pxfYXrGBh^bTyHY7-H9sBC>B+n!2;viHaP)TavXfht$i}6u{4|Xdb{xt z1s~$}BO|BR%(yGlk=R8~a9n#AwL@GxeJEK7*s1S!=steUtJed>MEdV{2Q&#^`0^VoGR~_h$i-+y6;$_WnFBoPx_GP~&8-GC zs#7SwCjC(M)Hr(C0Sn-Qm1Zj(Cl^(#mM%v~A_-aZ_F8&Go*sR%Mw!3|*rEp$YlvTM z%H}ATu$pW11Q!aJ(qD3U`)s7ieAEgOz%WoioYr#^V9kdWMZze$e6g%hvd;%)O}eqB zdZY^?@7gjz<{OS|{Xd-s?-@cb6qaaC9QxJI@RXlw#G`tYoC=t<5>E7OMF?vLoao#0B(y_6G)_?=_jB-hd>iUlwF zv)q5*pe+r6w$H07(;sHUjC^ssP=Q^_wLH^blE*t_XL?3G&LWskWpzi2yr!r%_h;f) z5B5L#dAaQjrUr^Odx5kToZV97%SBjtT0W0F*}vx-=lrA|zpzeSsZeE&GjRHLxv$81 z^d0tyK5IbvXD`Q^k80m44u?$9-NZy=y~V#~^o2i z?`FKEJF&r#&puw>vUQlRVbK>iX-Btii}IqgzY@9u^Q2ZstzpM>+58F65`yAe=mG8PB23!OoZ{u6Vg@=XzJsxfp= zgqSlrHKfwh>Gappr}>o7cFWOA!_g%N;eC9-oG+^m%KRX>ac^;x0Ef(f;-~qB2Xp2{vCr{+{k%2H3r(`e*?`o6s! zJ1>QZjjfKC+YbxQ)O*)q{8aqnWJjC)LI#+jj1kzj3mpw$4As2H{Ppink=Ne0c|f;9 z@6g8Ea(Y(>QJ0_0HX7Kg7z|RIaNTtdb^ z!ZNchFZ~I+po;}MmFV61ptL?MZ$paPq7pZ)%SUZ@8vL-Jk$HadPjKMB^OjT916ZHn zXo>FXe0j%)H4p+-&~~YRu*LuDaT|AxE@i0mp3f{FH!XmIA6T|m9KcE47WpyH_GK9Q zTv$;eMfAGytAE{$rLR9+TY8;|9OYI4mT`g&ECkB`nA z(>gqgJZp}5&VxvIB+)*{&lODR!FPQV01G{#r2zkUKY)Gzhn0Bd&Lj2ldV>`{ZO&Cv zjsLume1<0defkDk~+hD`Q~-mgD~Zq5%Dmd4U27_ld7c#-ZG zgo`S_jSyzxn$K=0c5K!BF@`xLvR-@*=DZ|*ppdx@mP7XW)daay1?VH6RENYyg;Q36 z#`mPu8}1&tJ*6j>n~|FFwD7RMCgGRB%q*;}3|+CNT?%xKpR{D>of;HeVs=-CR_9JM z%=%QWkq!c3D(c${mw#TI{Tb72Ncxm}b#|%Nk7mo~l~e)&n9AjM4~j>rvH_#o7?VBzR6!Ic3e zyy|NN$Pt@k%0wm)@f`27IjYd{GG*Pd5%qsPDz6U-;dCqWHf2KQXM=3r=t7|)AA)-b z6u_C;9ZOcUQ&6J~ZD@T@j*DdcnazB>0=a!ZJbT7Md%!@w%(|8g?56Tn!_cr+CWq6A zOCufuFZez#242VPZ&-Q|K!cq`B~LYhF_{c9`*|)7!NwSZ6_6fm8=Rzll+&nL0SYWe zvY36X?fY51(+dMJ-iaDoa^NST+(JHI#?B!Yi-X=GRk`KNVthw5h4e8#lpVob)diGL ze~hOx?KHk83+9$&Cl*^xs<(w-RGE`9yr5m=&R2Ya56w#98|#Y&5yRh$DT+ArFyFwg zFr5#K)L>f8Qux^ja2#_>o=c!5`tqH?X3C^_yr4%$Bln9qZLh}+7XZ2j48{5Dc{jAt z7NhjXwqg&&Mw&Fth#sz__fIga^h6|t42eC0E58J>>mDPElL2*y*rJy!hsN}|KWVj{ zf}M2X#S%xF`69n{pP{|{$y~N6j`KOhvYfu>?{wumyltT8){(QWF*r;0Ktr7K5(8w6|d@Q!1T*<}zgX=w#54%cTXT?>=C}6T`j`O9_Ye?*0Vt z|3V4u_uLO%t$!Av-ss-&`LNHDs5u$;jhnsKZhq0!Ziyo20`o%-Xz!n8@aRd{(Wu$H z$k|zzem(eO3ZZVZ-iOJpSoDtP=;GLtL#IPq3H>7m-Gmvwcqv|lSI!$ z6ti@1-5{N`t%V#wP~QnREjE^$b7~uOkl$Cg{=*i+ESl5k+^t0@4nu#xWJ;3EKtACRqvpibYUeOcHwwTQ-2osky@hy^qzB$+51Q3 z`_vx>Jd$o7<1Z|xXw@qnE&WOnOP4BF?4^?}Ttl35k9iW%k$CGRF__;)L}}|JTrmwf zlkisAWI)#y3aCtN-In?%2SEwJS#ct}wKs>^8RPS~T$$~*!cD`MimFgm2V}^-HZ&An zVeme3UxOj4fLlDP*-1rjtiINSC;uI&aO=2C^T%18=7p)hW>^YOq0Oc_93fte4lb>Z zhwd?nQLslR5;<7Hwczom!3OZ?swjl3bT-^XuR9ZN^72kZSoL&aP)KYCcHX^l{C^%B z;HG9a4>qYFVIp#Kp?5?*8JAC5mwM%@TsZE{>`X~K$v0ZMobdX7rF^Ye>5V%=Y33Me zOwRbhe=4FiU^v@!?pwK;1>*7q?ps(IM?M!3+YgjN)NrE+34Os-Z#&XIq@$;^uG{tM zUY%;z*dj5{{pw~$Gl`RZoq)tzm4H>#j z4B_{58GVZnZ7G+uQTOFIif`cY)U%^ApjN+(P((LZH0e!;B^y1FyK*k0J1aC9y`+@E ziD&}*&mOdky<~@=6Aglb7Iyy_5yuoV{CG-^nvXSLNaDVB@2K2YnLLVF@diY&bnK(R z4f6?O-lA`meY<VsKs8_kwUU>bcIYa-d-an0H zd3inW$Oq8_`IXKZkBKtEahwo+k#PpAN!iJ3Ih2JR`%`c^&ED!v_SNim@Thm&hi6k| z4Q)XkOIX}f)n-#|l2v}n^cSexuh_5^d{e$cM3}9Vfo4hJv%=U4Io5a6Nf8R*^;GqR z`h;=1V~3Bem#W5E#u2z)UPMBL8g_-ElALP^Vq9^4?_(hO_&o@)$5&_)C;I!tEoY{Z zhfD^nj&5zXKB5LC`Zb-|z9}i1dTrcepLAInM3PL07=m#AN}UpI-i62}bZvIVicG{B zQ>wg0dqjd$T!fJi=-c|+k42S^o*`9i7zY}Py>mu*M&(8s$B3sS{mMGIxVi1NjGP++ z>M!wnf9}ja<%ke_(+`xxYtJa0@?O_&t3xjK!n7fgp1;|{MMS_)YI#^dxF74tn6LaL(PjK2M@fN8|Wp(XiQ_LJVN1~aY38cSqBW-x7yNjwaCGy6t5 zsH5C_M6;pP)?OPbbePJXqU+h_I(;_NBh+Z-u_ zJMLwmrf7X-g(T#6GtJj~`si*5P z9i(2D$&9_(Lkay8GH{FcbKLdZM{Xyv?s~NcGH2VpZ{0pFv2GkJtH1oM(~%7wD_LZl zTpSJw`cN7tw_cJEk}bMgA(hS7@G*B*Btv;{$B5;?#-*>$SIENavSFF4xFZU9_C-@c zcS&McvGyJ_QJ|=Lk={GW4^Y0RRVKx;O?*cE+}o7?wa5;4!LN?h!H)S05JS|gOuvXE zm2TYmVD&j!abC~_J?Hh{tNfHobwTj-_*0~bY~*9)M$6jtSExQ~f8DPNsho-@sfxZS z$_3-Me6vNj8an*n7BlJ=bXt3IURv9jC%eea_yUp{WpLAcpsfzNisOHly}cotu_H6; zu{bmr74he;HU)D1Y4WCqYfyEB^7*4+$w6J*?;ERo#!cc*Ih@UFLF$0s7;sY$CG)Oy zA{`(gL9slUYj}t5W9u`}0gcpMKnC)21DgK$3K%}FTKmqK^o0Ak^U<~guPi&4Nr){w zIP1Pk*2^sMIJ|v6$vC$CHw;HZg!^{2gsS(<=lEXr5Y>1(w+$`{@8&HWdRfhIRX5dk zf;?LB7`@pSE=HI(oS`c9F1w%g)G7sZ`yD+oGmP?=zd@gRBi_r;dF#4|8?e*5Y{e%m zqG0@d3{rx?D-Q!J=$;_*wci*YQ3`afwUmXizm&$+))!b&IKGA&oWZn9S{Dm2jG z$!=nMdvw3a_ogE!m5v&f(f%~_>QvcK6%Y4PUTk?&wnjSoY@)7!pt z6yqCHUV^&cDSp&ae(*^B(+QPcr6VYqN1;liExZcZ=E6B8AV6B{=V&3=s|g^$8nuDc zpXh8?^=!=K#wXo)jAF82F>}tAR2?u-@dKdnm9&w#JREELbnpN8Mxvy5bD5qPq-)zO z$kUV6m5w;NXkvM=? zni@}rDVX`&#zrX}K^yaZF!OlVC>VG)@y1G*gcGV?t%LqlkIy8Zf~GXCu(&O z!N*3Wu7+28(Q@reB}ft-Bq3-{iY6&>8# zh{l@tB@DW(Ysm{SY(@)A3+@?)g4^fv49S&J+o^T>zy?j^b?UyPtG2a6OH27$O2k@& z42Svqff7v`1RTsW@%A#DWcBw_-2QsLP5a3XQE_Y(yhiZUL0E*_u*{~X%+EWKAG<6D z3%3Bul5R>bov3`5w2$f!i?CjK2^5k-wjj!?+o{EfcoYnlaz-I#DBff08qZgsxe@{vWE|GAgP!>I1b91St_v=@uA3LTL~Xi6NwO=#g$2 z8k9z)OIm>uha84(DJc=@p}U6~a>#r5zwce|z2Eo(YjMtV_Oth|_I`eAtpH62v}k22 z(~R0khOvJA%A?-c76=1c&~8jwY(C#f6daJy`U|956?^a0t@RQMPm>L;cB}u-Dr_$X z@st3KRE&wLoxJS-w0*fZZC`-G`Qxb^8`F|YpdNq#Yw8g8>!Jhq+VZPTnRy(MIe| zzd`YX?%dCIK0i!@JlnAh1&U*ebtc+SzlLWe0Fmi^f(9}p4}5xt6ZLwo8?S6};Ul|2 zlO-tgaSm*I{7V6^eJaG%{-+DGH&tIu%2n-Z0vV;1A!X?F`eXD59QFj?%Ae4I_l4hv zE^emdrDolVKW=0FSsJ7Y{9bP-X_vGpMQ01vw{-AIF;$8?-z;y}c5NMf)3>*iaCsmR ziMO(Dt+W0jggrFWL0U3Kbz7BeJy{pvfBo2O-l)c@D(S-87+GkkE(Rb?HKh`HHH~Md z&(kW*vWr2SNvM%;X@T|RR8J(h4SEZ5D3d8sxwVX-bKlDWIjhmS*zSu#EqLw^|7jD5e!Rn623i*u(;J_CVzMqwTW9v&WYdiX~fZV~>B=$5hLlQ(h6Yx%u|+1+pdo zmL;b0+-BG5V&HIwc*`#}yTWHkNc*(vS~iPJ=i2=rk#F_>l~5R)zM|ojIuqgSj@O~j zg(!{hM4xYzOH`koF3F`6k>IB3yqTTrb0E`Fn(SkQY5RAf3QsjtZU$a5Cv2V%4& z3cN0m*q)({KlE-F+bqzIOt+_3hIL=kjGlIg?p-PrfD4A{lW5LWh+DQ^Z6`Qixx{@q z-!Mz7%;$~py>`(s#jVj~C(~P|-dorys(F|cD}~cGDM7P&HlyC!RR=N-_riK1OXG?& zF{CTWxx(-P`wXkgm>KL`nU8G1tTT+Dq2yh|WqVvoTl8+vK~#0GWtlS}*z;P#BkQ42 zy=scHm)_MrU(|9Kb%}8g&^lYIC3H9 zLUjvn_3I&G1M89prL&k>be7~SQ~S!*N2C`PSflf^qH^3~zqGJkS@&^Cg8ac;Tmow7 zMfckXGXa$C0s92fRSrEIbGZI3L&%U@{IV-k;w8sqC)5gm8Oezji0ONkZEVmQ(+Hqe z6x=gp(>tcZu8SREU(@mTXJAu~wyis#`&O`hys6xLb^4|C%ef=gn}(Y;pWXG0eGtap z3wUnwpHmB_8D}A|38-5qrCx~jYPa+|YK#=@c>ckSxaB0oGg0h!L%b4l_~h5v_3CDQ zdpzmQv6&o4H@`Wj*w*rLK2m>qDaUg~(QP=+wjI^WAOkL|XQ!S1Cab5BTB;c^q7kj@ z01D<2zv!-nLW1GOM@MrcIRu_X&BxJ|l#tD4!x7gKM#|M4c%RkOL2&+ZEd_L?C6LX3 zm)lf5H1Ttk9Gm9O9z~myf0&TVWf5XaY2j5Z6OaCRxx_2SOV7w82LGhT1w-_0it!Th zHTnKh8^cfRt8T%Xv%Okm}_y*j!Y5v6y~n zV+22#@npj~kXYAw?zHt_XrnUR>R%CC>wqsq05iu7KNm(Te1*<;&VQjk0E=z2!)<6) zZL4H;lZtu`)G!!`a%Af*hRv9Eyx&s4U z${oBfO*^t4=B@T3^49ur zEzRK4+S9iA-8Le=B~^9*}#0Y&ofbt*SQ>nJd+B9>j zgl9kuL&AaARGiXl5{TM$O~myCU;gP&OE~6F1@vejkQ2_4_3TX(X_5WVq6yc<8N;>q ztD_wj4{2asZ~@X?m{WX@j|xSBz-R3 z`35iq)$cdD%T0Pn--r%AOnpT6@($Zhj`gbH0d0^A&n`|l1LtYiN1wZv0|U=(5on~=TPjR~!RW5?N;T<9n!LEx){gq} z(d3MPnUdY#x^u0xhBL=BlP0a%%b(jRn_{%M`!^UQD(luy{VppLjyn&HpZ*e2KH7dxME7Otc3nyqin9ai z&?juv8YA$oRZSRAua$(HmxgTBv-u#)4C2W-=1y%23ZD(g`QYQ%_+j(9{v!3M{Yp|s zAU$Z4w{}q(X9_H_ZUIejc2Vu5B(j$z^p!Ol@-{3d%u^4Na^uAzKp4*`bjc+N#vjge z@WjW|cIMsRB)uIlvhTU>uS_^ksD#RIB|S2jpLl&jY1w3J_n z-#bJ0sr#hyCBO`SE-#N-*|1(oRLy`|4$LBU2fC-q{w5U`mBtqql_gGQIK^)|`zuHl zn({RKP)+q*ZRB;1@z>Dx+n<9kwneQ}Xp2{EhicchhlRV;*w=>2Yr3`d_(s6&)x=9Q zjI9Qm7M*6=B!Q!C!?Mw`_-beenrd67ereerLz(`JIpZv=xyEjI$Ay?Gzd6?I=Z{jV3SBYT=ts& zYl9j))oxO_HGEZh*Pp9BbvMqWLbxZzQ#!tY+9CM?n>chSqXBwcSS3*8Qt}6cZplnu zjBk0yetlR{5PW)yp5_tYOb*Kh?r;BL;ocuL(kV)C@s(CR;ojq!iRfs$m}8Rv4sY76 zjv%^V9m>>%;w`ek;nIaM%kw+YI&Yye5QoAef&+?Mj%wzF1%W+$i|{ zpVkFB7#|#Qvm}tatZ|4;Yxwm~^B`2juv{u{eCx1v&-JKp=7ro`>M{enu5!VI(F)%| z6x{5}*xPkM6UR{Ts!#gwG~*1lbMj8#Y=U%SN;Nq@9|dYk zeg`r59}beS+v>g(4kw}Gx>=9_?1m6bQhN0bP;}jB#InhuN_7be*zaR3^$LkZu$bep zV83*~ecuR;b*&#N@o?fGh{hW44XcQ{9Exh^ zES}=6(%p(=BpGO*eR-ySjJ*PVHxbaz zF7ppBNPOXYo`-&9Fs0P1+eNgm&*a4Y9bkvVEA?8P0_R63vxYWKoV!OYxvbuIs^KQS z8gkAYW;YrmCsfy{htkUoOMCM;l3%bak4n6op2s7uz{EpUa zMR{Q5CzO0`j`T>`(}R&tjW#^Ld)Btgd|IHLlk z-sv`$vtq0jCKXwj32omZhg)l|EK6nO6Ko2g6r{hCRhf8~#t2}`5Ik}ACtPS(E}K_D zbo(!GjMG3wM9(o##>!{cGH^k5-U`G0fkZVy;l4p&vZ6cBfcM&;{~*Q|C2zrpzo=qE z$7{OF!PR}<+%;hHnP&!CbI4e;&8OHeWP^;0&%EaiUff=64if0(*;u1bWPA;g(Pmb! z=VQRN$v!M6mWjgVJ`^zv_SGd=7F~>ie^Y6GZr`?i@|EAx3J7Iga6eoh6ae z)(9KH3vtMbs0W5CzV)9$S;riQgJej z>*l};8~wLOQ2>sfk6pKvCrv{JK{k2{dUn{r@C(erauX$Y@ceJAZnJxLM=zhh>a4e8 z%*gdcs!Z(^zneC)(${lA*5G>W+-kh?DRx|&p?0-;u6w5wEc?~osfC5WtM7V)sI_e; zZ&HjCyt+9(KZyhqfaJ=@LVtvb1th#G_? z2n@p#j?)C-WomXD9+_rS%3uHh@8&=z9rw0E-2$#38Pu;j;&%Qid%wT>!8i#K{%IV> zGsERP(!?_dhRjWdowt{J&PW?yL_EwiVRg5gO>u5|$MkYaD(<|XBwkwG;O3<3J3ZB4 zBkk8;b1Z5fyakkJPR#2ewOa}7w;w8dFq09%9$Jt~W8CzQOS#i(RC;5#=}6LF7jsKg zl>N!Mtk>3tcUA-KA~WO<>mbQB*Q7yfX@Eyll5TPzN{8D@M=8E|0?GTZRtL#aqGF*a z?#;-j`}3cSmk|LB7L*)q7QP;Y4kZW{2@Soq_@|GrWtvP&AR_fb5Xbn3EQD?sW%s{8%ZL^ql(+3}qJlf;mx}ts?By|mD zStBnc!cQldCN;A2spBKo?soGHL_rk*;{cf;RfTf}hqZ zJIIf6$gROVg|8O|jJHm<#`y?5PG&q!$+o?8`N=5AS9So5Xpc8uZ|Gn+=SqkG7K~3y zvXaX4lc>Y8L_r(5WU%khcA!dz5m0@zz+uG@y+pF zl;ezrxkcfnv0JaL=2)HmWc>~b90Z^IaWIgmLyWJY&sjr+3S@ z*S&wmglS1WA;U(ecjTkso4xk=XZ6mZO&GGNSw2o;urXL&5;AL4#|5hBwA;B{e1xc9 zzQZEiJdwT-U%?z_S_VKV3EnjWe=Q|wux?K&+3zWT2{i5Hj^Vci) zg`cMgt!=H@I0-o^D?kL4>vzoyC7Ol*>i9@?`xbX8Fj*-tXeGj%-3QDdHD^c@)LtnQ zDmR~zK=?+PUan)P%LQFgjeT?LgllT)@Ys))#=qPeQ=SQ8M)>a& z8|Xp!raUVH3_#G~$yTo)0_-tB`K|YRpz$8N+|y48Tjp1hc;%GPPxDF{h`e-L{s_P) z3xn8LmQ=+81Eb~7@-$Y%^)FGcC>dOtlN^5*rAXlw!H0`7R<8XW6KShHG|<*qH8cVe zqTRwn0bQFM8rOXlMUI^1WOa7A2n&!PY6XfXo~`s~M3O?S3MKaq{+DU2>2L_l(PtX-YjV1XF|_4ka+=&L*|gKNBY^3c;52wEPL#7r2J*i9(NoRNM9l} zkV_SSh1Pe4T!XxIC);=Dfk$E`%Lo%%5-?$X52(C1g17l*$gRwac@waP#a{zWGte{a z{T&J)RItBR$&eMFn0C{jS-n*r*cK6w%9Nw4hb7i)si_%_L)??KX*~{2#ymdFi3nk6 zY8F0)TPgJNfsKhsx438zkqgb|?QRBYo)FK0-L~)KTi1tcjP;cHZHu=e9r+%{S9xB& z3JEs42$5rMcKup>KC|1N?O`A2TjQ{Kpg3tNSIb7cP}+1p>!OI)_Fa|QwnPNG{+3%D zt2tKU+dXxr=0|skMJ)rjmT|-p^67Z$Fl@n~q|0xuV6pVbkR~&=`bA;3p_i zd{hadOZ2&4Tt6N5Kn8?%MZZ~4#}8jYVoddBkC+TzxP4C2NfEY(beYvLzKs7WZueQm z*CkG6SMm*&Y7PtA3LF>#eDxNa$Ki{oQkpY$;YpY8wH4($m*q9R9T*Iz;5FLQ z68d8$22%_7#1~spB>c9+Kl-t&Dbd(p80ZjU?Fml(@`rN4Q<~-Lj3$j$ow9gU`{DCJ zrpgYL>B`H2FVr1w5S9TS=mbvES~{4G=8E3JE@4 z^flJyLd$@jR!Sr#B?n!yAzOlCd*!{k%mNOZz~XmD%umaZG%DJ9*A zlF3Gv2B#gzvBVO%>Q9t^pdypfb<-a;{}jH`n{$1!#@M?*4I;znKZ**a3kcYcG7XvY zKR+ghPG|xnf=4Hwc=*yh-fkwmIjS+$)l`*%>Vyp@3i5y8sJm`WMEESVeJDF@1)0d+ zlhj2|6lAcm5Z<>+#79772N0z$r2NJ45gw-JVUHR7jZZrkiS5Oj7@7;F_vna3-c+3$ z<}sAQpPY}M?|Ts6EfQDDWD96=u3Kp%lB2KA$I52kkaCF({z4ZMatsN!2B1rwMv(55 z^0xD0HHvfa@6DMyrHAq0w~dcrA=o>C-FnSz3K9m4(thx_@3osaA@oL^u{_hyhqcDb zXmpsSX3z6m^>)f(Q{vcu29ktkKHhj&xU=#}mtIdom2)4%`;z1+{M23=K+I&B!yOV$O2G7_4d`83V?H@7xuHkqUquL~N^p9FA3f|d zk5b>|j#}l7`+Pq>x)n*e74#BvHQHS#@P>_+!LAn<;qd zKlpXDHP+jP;=-kJbOAjlU(fZCTlt6dDuaL~;DR>M%HZltfA_=iH1@{1plT#3IqZWByJ&>$@+WIqF($AgQ_vIKmrrrsR*_I8eX%{n zvha#oYlUS(r&W}nB}C!kqnq!3Cv|&(M?PHi9e&uur;kWN%}`XqLX5TM=3NzvcUJn` zCV=1yk$gNP<_~W$oZkGC=QzYOR6V=lPU}u;%LV-6Y`ld;cBU-gsEBcrKh23)5fIwN z#Kat1LCw$8YWX71?IpU9vs<^i`S3I+R6R^6#i8B!{iqD%eHk!@ur$*jPU{euYYIl}}2>`S?r z$L8biuYVQ+$j+e=-=O5XnL}3xGJzE7jlBI|RNR#0JgsYP9b_ zdS8m;T-m0UL$2hp^V1$!yM8rX=kkcLxwQTyPuVPU*OgtZ#Br~i_xlMdQK(rYNdKUE zTF^b(_+_E&TS~`dxg32qy&dbpe+we|fOlOygziF)?xN-mQVwIbSD$KDW1IJw&w!JS z<0L-4oj&EP-KV#=C_4elJseIZ#D=C!dfWr9k>m<)aZ5bB#u8(V@8bL6-g;lr%%vL0 znZ^%clcul&oSBWUKcA__FM9Xo*A}W!NuA|tdwT1SdF-$hm2PnK>6ON@S(+pdS^DCE zTatyPxL2Sn<_4gR_X6$tZ}I0~kzn6P7y=^jZFak(msJAx(8!BG|E`|EXF__-buJkn zOey@k`a4R;QY#EcMTyGL(KuZ-l03Vz;o5aKrh&ji>1StLmQ(!*i^P;O&vqp z5V4`o<=9G%9}-$A76MPL9_6zV^LOWccGnlvM;%f|^*`wdWusesJO<jzsdZ3BA12zQ=y5zROH;A zRNYjUl%H+hv77K7r9{ky?^XrUjk%7F8&eOR?oU>kdvgaFAal<(Ck1#h+~e~DhT|m; z$l@umnHG0bp!&@D<~U8+($xV{>qKk8y=A#Wt4#?tUy^Dv0e->S&xQaL!9d~bHj=4f zv9jYT+YiW@)CF#TUCsANSpY%|m;hma=5Klf=~JiJ<;w_40-L$h-@?xVdQ9e?268@; zHeiaLBkVl{Vf-(kAO;mOzD55ejhK#vm;-#xBle~UwJbYBpL2)Sa z44e(~N(Obn7h+idW>rE|clFBqC+O>Oy0)&Kl9B-eGW(o26+0sM z3masu5q4zkou;jq(&sH_tyn;xx7_j&!kqQqIoWcxI6ik#mXlLW{ful$ks_Bm@o6@X zt~&-?Fp%0q_6A+W7`u$uO2Yj*`vLTuHveDQlTx`%7GAu8cs7(in(0(ymLGGV*}9Wv zovrj3qbSVLD%&ghV8k}1gBcw!JsXKn@AW$1`g{&w>U2K%lm2u$D^;r#kQEYbD`%|T z8Y8(&c1^Y&aG1vss^w@zNR6S5!2sgdcby|jPbv5VIGCDKAM3Ke&;ZxxSj~KQq}m_+ z@%vIS0mwEI+!eN<$fcN~`)4w^J4A1Gq>^syi(9f(E>wm14Z<}8Y^XVRW+AU$(W2vQ zML~=DGo*pELrpuLfpL`A7iG5O+oy?E{UtShXVTYfv|Ji{M{;dPSogn)0A(PgzcM<5 zl{4_%-Gwg(MLi1@?U0-%8#|M}l;`5D1M!@ivw0qn1{t-Pc%C#ZxJ2c$#6GZnz6lHQ zdn?^MA1(Pt3JkodZVGRf*kuoF$b+XR<#{cY=jg%R7qD-!!~DTlJqpsJ)B3FoF0@`| z8mX*Fu98Y$meN1FDh1S8Um{j$kpZ8M20VTFa`yJE0~31y74q);()g(#V?8=~y}@3` z|E4|M*1q^WHL2D4q1(h(mb4wW$b*3GB@Uc?{!7K+cZg7d7;;Dl0{Tev4hwH{9J{wy z>)WS#^^hXKbO(h{QbSFXQ(a038bH4k0Utha-Hoo4(HPk&EL zic@Q-wU<%(=201)Q)ItLuk)LkA=tyE7r5zW>8 zHSqvNLzxK<<08d(YFU;;QEg(os~OHI3>WkGksEe|BcVU;iEloF0*M)Ul6j)sQLG(z z($yNje%PlsSnnVrSB)1+1K%-UAT3-8Ycpx5+dud#bLn&*Uz_v8ar6pE@jipT;Q*Cv z1aCOo-nBKdDVW$zyxdy7JktdvU=@$)Ck+7Gfo!#@k1JW-Sa!hg**X# z%BRF|&(ap%YB<0&pz~rI6RfdnPi=BKrC>?qP)Y^~8KC_0qD5)(IUE|CWTt3p4t{-h zs@yH_riyZV)*N7nmbw!-t+&b|bqP>pqd#T@P&OHd*)1jk!tPav={0Kfrj;_;rp*Q> zB>~{ovRTUG6z<7JqgO2%>BD|!H5YPh1t>4nL<+#Pg{*nXD^!~-5`Xh{P zQ?;UU?3FRn$ot?H=W`zA$Czg&7-g{44n|a9JtW7v5=nEE7jEU+>Xs%9OMjd-!ksDG zusGCZHMm8T-&m;G`-3L|TYivVU#vM+YDA+JS(06?U5MWw{}TEVn;6ZNYC>#Rjte^>H3v#9&Mdh25rV-ej69!xtfu9O3LFtY!LIt1;%P)#69z3 z%{6q$b_`bc!KCCduPGNe74#sHh7$7?fZx;&>)xlr6BtVQ8D%AyRX=`E%@TWwVS6J< zAZyPxpd6s3M#Y6@QZr~JAshIqkr!km?035N?(K3ow6fM3w>7LTO~+m);Ys52tBoW+ zD)QMP74(l)3i7m{F^a8FzolFyMeNI7c+2^2i|I``Q0Uq(_YS&6nmhE&KN3((v9-_~ zv8rs#Z(WhdlUZNq=i0E?_dB~L36m@cqIL<=x)*RV7Xa1IzNccF_jQjIa8^6 z(Zj!n2mo9=4Uhc~kS@>VfV8$gBR$lY!)FN5ozpk1PMy@(kXJ`)so?E?X#y}ry0|c< z<;P@vp?xWl#bouT;5L6XH+ke;=ayF-w3-^;8!Iw4=d8)ip8--~K+`s$1^GPlMc>f4 z=W2gyi~nJ{HpDv`;P5Q>qJD-$XBrNuL*@uVK*{od&P7Ilm^+4>W~dFBxKBS|;#-bv zj90)aXPf$B5%2CN;ceH`OUMM;l4k#tzIZ-W+jJwZ>?S>=Gn(2fvHb@d4jB6T+p#RP z{99V$?PmOU@8*R>Rn>ahcNWUoJhrI z?FKSW!2&^Bp8l)=BrBr7VbFNe%Ar}e)9*s)u>AwldfC8mtuw3a-<*bR30Mnf`csA2 zo4r~;XkP_%JFpwUlq`OnGM&Caw?nj9SAHOAtJ4BX@)*foTc1-50ug{!ip_xBDl&}b z-DNm;N>BIH**#Z49!7kDjTV@X+wEJX{;g>4s^KDRKW&wE)M1k*==dHv%l+)4P@8^M zkRSvuO~XZ5rK5Q~B!N(dSZ+9U*4*#i+^l~w|2rW{M%epxC6oH`95z@6DJNnPE8J1K zdQbc{I!W4mv_M}^kEMW5(P-jwsUdn!Da5rj#vb>TP3JAr0vB8WWxzzhOhikv=pBCMkf`Pj3IG& zAiWCqTl(8*p=zuLKw2Y|)b%gst89k+Ezvcc!cF2F~ia?_5M3JHyvQQY^{{;3D4?GVlh7X_(>~qYI_S4%cWG17AaF9T)NENU-x@DB_&@UuP~l&Kj9ZJ zo;owW-ox#*$)gso@b8iz-|90ZKLR*vx;L#r+vSYH4R*Clf-aDlsl8vp3&PB%8eC1F zJVzD#UQ+LW7jeSaZb_`lEa%-x-!s9h>FqD? zm}9-EWfiBzYLlt$+PQbvN|$$b4uFRQV8l0$Dy9#&5F?-9l!=Cbum&kl`@C^I^0$@+ zSZ#}&n~Ik>i2T}+h4!b7b!w-Dcc_TKX-Z3Xh3R$a!wak@^p~Df(v`y1yWhuNuP|B# zy50ny`rFArnyGbClzYm;0|S&XO0m6I;Lnkh_$qD>`ok@*dV`OX^w~*)650kpD0iQv z-?cTvwz4{UbA4G%?pwhL6D~^+Ofz1yb+%JGCbFb7aSnjE!IDLx0=7G{IBE4}P?k^2 z^J|gsvSR(SOv0+BoJ7|B4+}QQg;VHMoV06M9I(Fx-~LsEd(i|Gb>h!%6}F zx=iXBhbo`PF|C(}(;Yp3ki3+g{yrU4Ib(zOW zdaqt1^VER<%o<4cC|-Q<^M(SBa3}#iR!Q;lgrg|s!*+A3S=X$q9skMLY2*T91fYC)(Bk>!8Qncm(2U6AAZXd{A8$xCDINXJ z5=pD`N=txJHL;(R@syN=qw7Tgm!orxFJ}mD743>bc$#vGUxIK#$*H8hy~C~rZL^2n zd9D6rn5&h!{No=P!7sWsCx;T%X4-ps{rBFS9JW#*Bu2A=M4G%=j$P*q9G`DhDi0;b zi|W5#g-Z1SOv$nO>PK{q|E+Dold7he>vtOZMB+zxYv1!=_KF%y0UZ1R%4QBf+s}q9)lWV|9ygw!qYCn z#vY?OZbzefeMfpG>~mg=&zJX!^kK17O;EMFfgK|dvr3Z8i9rIc3bh%B(OnX5@ zym5fqLAsJ<@&|zV?s|dHgH-?6f11@`bHUF_w#+oBC7F(&c^`c4%YR~DsfZ+M(em4Z zA6_9w5m&kE-Fbj~X6{VGzv;1uv}Q`+LKJHCSiJ4BKUSJ^>V6Yhv-7s}JKc+|)HduW zDRxP|0VFIt5IYk$&CiwmGwN2d8{L<|Tq!f=XJEF~MaPeKT z`X16(wjvtGP02UE-Kb~m)nmdjkf8Se&W%1fjb+NopQ;pLH--xl*SWaDFlXQ3i+R#i0#ySvYNTc*&@Y)%3skYdgUY?uC~&P07F(1dV^SqebnCkrHP-;mGa_NG{EfN zi!cUCQviQNRS=|q(#K%vgblGZt;I#^`y8YN@fc9#L~u=kkx}yEPuL%0$}8OJK&Dli zgi)W{{DAG40aY z)d3YLU?3qZ;=C=|pGmfcyawC=sjB>DU`lpKSTIZTUgvK(f&nuy<)Sj*V^(8`barrR8SUg6r{$y36v(K*Bhh6 zAkiu?iV|cArj&?>o*N297h6qu&`{ZT)+y*IWxbt7dZsV}$2d(Tw2v~src z17^}0SuIpUp8WopQ7O32&R70UCfnmyvoxM~8;4YuO*|DP2J?O)0<=ucKfEKEUvOSN zB4|X`r5=E#s5@PZTKPP3Z}mo!+{f3XT}qIXnqLZ+qVdAZrFYV7#12JiIq?w%(T#cd z3>C7pyoUVKBKiBZ)Y6-A z9n!|<$yFQBa;4lX6x@Q2%7%bk#YeXc!b3?xt=!o!mybQ+>)Gs`jN={ZGNbtvFT^6U z`7J|&&0rj17Ec;Phl5Ly^`Zr1lxXp38qYS1%%y8mZf$Y1$8r6s3eo@Ia;K0*S_a63 zxhbI|l$#GN_;!hR33fR=qE3S9-)3no7|z|Dy=`>j*aVQ@j`-V_4h*@M5yyiiCAKNL6zC>U0`sLfek?n7iy`vw&wrx-A=Ko+BnzmvZLku44EPB)(Ma zG9NPQ{80QTl7OHc0EW+3=ywXsu3Vb0UwnAXe zT+m%4;D*mj=iR-w2Q(!ZAf2hQ4FVc@$uYLC?j^5*&^GzUNBg?`JJ^(SS5)Jb^VGBr zWPHR;A8U&zP6>7C6$MKtF-BOl95>qO92qu_dJ3V0lW9e(+-na8g8^kSFxG(9B}2+ z#$0?n7OW;649FL4B>@<9*x~p6F~S4iqnKml7FQKV))Nw&`EOxErQy3C>u=`AN#hsu zV&YGthB!Q0j(SfStG8Ep_V$$#rhJI-0d^s9 z8(;etf^@Gp$6R=hbEG~j?tKYYi#x$l-A?+MPy0E7FQwKn2C#0FwswU@lqu)k-h&eT@0$ zX>P{x?&dln%oMVsLhWa715Xs6donRO^!Vk?LuCbe$g5h;R;S}XX($Yen@0UJ&*rpF zVT`mI4C1b1)=93wMg-$zZlr`s8rwA=Ksd#hFpP^p#*ezcb)*B?n&z9Ia%My)b>Zv3 zAL&m2crxv#+Rk_}a&iL=qZYo?e+Q9WaPc+d4l=lo2V7GDGZ5+vGovk^`ijhf7GR`h zik)T|=+p8pc=%yJz4z_O#ecrY+8Y*QVLbvEowH=|;{lUd;_drcy4n^m3fmst)uv2+ zQpp^^|51lq9707?jM?0>Y6T1CAAZf&bVs*G=RyYi2f(i8=49Jsb3pW@fYMJODdQf` z{ZS-fD55&1;Va_xQb`Fod1_E)2CROlXUp@T^JX&DMQWA*C8Sci>++S@;i*0DcTg7L zcRY2_dt>khZDTLjQ%I(AIH6mo0$oNuED}H|d2vRCu_otJzC$NM#GJz1 zTIM^hJj}LbqE{ht|2fkvyY0D34fr0;=Ji+l1{k)+loJPKT`jELkV%10q}=`6g@OBX zUF5&ehHQd$tB*1Tl*u1tfBn+N6Te^d&@c_dg6`CXalN9{OYR8@f2*u&o$_01#LLcM zKl*O|dNfp1%V_xdZ-j_-8Y>X*pjT6`W~a;*WY!gO&t6DMln#dbOsV-!lhuB_jA)U1 zgC#3J^+Svsu8J>V`hTO zz|*{>fQtXacp+}(jqaCKsGUE86hI-Xi6%~QHd|ZfTzHl{<=dCi*M)%HkKZn9m`en} zTIdm9U{-Z5xNd^q!fLNwQ>NgRJlq8sU?#hOP)s;NU-NaJm#TsJ06QUEn^NK?-u|=KB5y7!!v7O+tM>bZb(X zmdgj12YC1+pKxsptM(4~Yxe%;i#wtj$9IhqN#;@pZbJnzat=2r1i#`Fk16qhT6KhJ zUlNwJq(1Wj5EN}hkcyH2agN?Vp$#hDzwB6EU%wGCFJ5jXu;=V!dBt%zw%HeXk_HAg zrimlrHrK^Lbe9B|H2zstBV#3$4h(IdgfO9YqBz-O~0?NIZCbH7X zQD}SlajxDd;JFb%Z3F~1!b*~|VPOuy6fx`VU+R~ziQgKIICSR%rFbwAn_l`Lr&&}a zi<#9prqg@xdQZ6Qh-yv)nj{wQs_?^iR7pziz5$z0WV=YkU^Y&FZi+i_ZI(;lT$^De ztjRE0pzvgoy zCbbZ;`{P_=2oE}2)+RADJ44z%aqQg4yipqQBC2X7gB2aGHdNA=2AI$O=Zz$=7X#sg zuOShs?VDE~Vz_0x!5$6|$6q0YqUU4d%b2OvZqb@1-nD5d_512Yb9q;DIF-mu-!2*; zd5b9c=n<&Yw}5F(=&&A+x3hHaDQPt3B1{~Tf>s4J&vU?*Z1*dlPnjB0?F@!L9>Wms zF4nae#4TRzHP2ox7fRl1xGGEPNo&dEwZ8Bx%)F}Tahp_U@6MB>zE7@v9=AIys2g*x z7ASgr7T|XHGPWmP?W!LnW&X!aewiJ*nk^ zDw<}RHx-`LjpW$*%oY`ok` zwc2vO8+84$W|o(`c~9OTzFzmBgr=>^bFJUm_)1wsM-Rf1;d7GgadM%y8F&RoG~n=k zF;Inca04Cv&77!Z%jJAfPs?TvIXsVBo0F2r-H)R`8_fu~MrHaPD2lG&Tds^SG|~3% zRCSJi@7Io6t_YMAAASF-GPS0kcmQy~hK`D>`lh|_DsIT8BAW}R%1#-uU9iPv{{McM z$i7i(gi&UvKT0MmFSZHqhTow`yi1uz)@dyj;jNDp1)u-iYkPp)au;MHE;zQ^S8hX7IG3K-!5 z0Ix9gULx^Le#VGq2pm#Rn^K>5K8{%7+`SKks94Y8`%@>(esb7q1a!{Cm1TpT?*I;s zv^?&2dxy4J`*U<>G_n z#KLzYpcsRiqlvYkk9w{PY$%UkuP3rThp&`1q=Hn5?1&c`Eap}@vI#BdTF5U%e%(Pj zQ1yx46C+8#r9TzwrCD6RTJJ*8Ij6Zj+O;(t>@77Ru1?y**k7bB1$Vu!|7;mUa>E&q z(hpf)FGrkQR671JWYroI3sAJxch1xW&V;O!Rh^h#P?d58b0xX3(7 z)k%lIJbxukhPHFCv@C;yX#oJu0MGxdAaWY%+18N<_ zt{WL)jt$GqoDL%LV*>gO{+I7KMR!6NWA-!dGD{T}rIK=Utz0H(;*f=g)ud0kcBv`* zV#xD?2&hTY6+8De9J7kAMoTvALr$ukLx$g9XZJ3pSZAve!AxWgl^bS>Ro*~Ycc&EOB&!25+{L`ub7Nx__)V@IR&(-lFRn&OU6PH0Lv4B~E_?O( zV&qjKYLx#TRLwU{=zT;^M*9N#`o`yTRuu<^{=1m>Lo1hadr~b0g%0k1x8Qu6&i^d1>L z^(Rdb3M?oRFdunt5P*4LZs4%3#L+u7ZcLYws7vRLq1S~)*y}f&zdV_k+Eu*a&@5>1 zRsDX^yNm~NL|8|-_g!^K_l#L*C-%om@^W8q_sO7_^3m#=+k>T?S|?-}e(kl+> z#2bST=z1+sHS}ov9Tlxu`Nj1Gm<&VUdmd+wm9e$uYIei@ELDT4ef?Tp3hq=gEQ%53 z&A;5XFC_#LMf+kUO@7DHrqu>Qcu6vmj&LBu4SoH!&cf*b+xOAG+kCBM8w&Tb`1N}9 zGhjW?sgxr?=4KgA?(zJ%7nbC4&wj>1w8|GZv`J{tVlGE82fU5{J`zF-AZF`MC`rBG14^Yo z_czB6s;srO3%GS!YY&{XKefJk$N>@HNCBRFWXc#Da%&g0BVf* zx7|r2tM>mbm12W>O0V#i552`3|pWAy2o+?+%0G})e$bZ3*8@v*5qHJiQ;Tew^ zTtAQz%^B4x1Ni_P1cCXkeWBE^3<(l$+Hv+qY%hJEd5I2c2ZwO{anvUU4*y)L++Hy9)12%6-#jR+OL-|kVg z1^=0=O~nfVxwE%$l^q2tnFN}B{nOwc_vacKXs}mwTi~Q7*y?XPi`Cz_2LjGxv!S59GL#8sJbQ=}dpKIO}2fK>4ro6sHqek6Eu_Gwfru;0wIF2gR(p-S}g2e_2 z)opzx5!zon5a6y^TtWUn&AoMBlwG?&ECMosqz*_7El4X;(kYCjfJiq2(n@zqNh{qw zG)M^o(xr5#44~2>UDvY)^}g=CfBOYI{^N(5bDhUJ;(PQcJD9$uuz>5y6ob()KJFg0 zB$ffd;-oVH;{ok7=Q_10+%uRXO!{-Jd!|wJSto^U0J>$XMFprAj``3ZJuE38XJ0!& zknS_q1zRvT4Kk>`2yDSa+@3nNE3>;ub^T@PTnHMvmH=&B+jzkpZ!Y+`+E5(u%w4f=upSC97#0 zI>C+RyG$u;tj(u*2;doYI>ZJcOXonr9fd1H*>d71rp*(J_%^PlLEe$e7V+f7QN3wi zFv+e8R(odYG%RA>fF=!1$72Ngo4n;^#ct-3l3W}^JbtIZ9e->6l%R+yVp zsDs0*5*sp1$9#`94%y4aTvie@&2vy`(; z@s5K9a6;jvb;&CIyhyn<$s{e3K5T@>)Yl{)xjcnb7P$ct&S34pAV=&t3vEtC?ZVBv z4HagAV$0L^$=hM|)I?H`FdnuG;J>>kKS$6yn;qHH8RY)tV@Xq-S$ZkU;$g|g^2<_hZ7t`IX0j97hh}&S6&i$$0#(O z%5EOn#I4yb5SH3kZhV)aRtofVDlcW-ntkS^<7FZH5De+1GN6xH_2QO6nUejpn?$q_}5?>ERLTMvDZ`YFeu_EVznk~Ul}1U(AO@tcLiet^@bJox=CFb7TyJNSPp+} zOEkDYWXJE5>YyUyur08L?JPzA1|9}W8&+5M!s!hic5R#MOaHXUM^oGvWPL|dhq^g#OdjW{wKIj2=`z+jp@KP zrlz5Cotnj@%3Za|8+#N_@kCRowC!6uDv|n^3hG{~tcyM&owxKvoxy&U;l_qy z!Lwo-zl!#%!+={y{61OI@`2h;r<#@D$7fc`wm-4X+`x+q#pM8SB0?d|4enLRU{NTz zo3pPnxn3IQXqHMgtVmU-^jl^%CJYVlY@ZLCO{CntrnnK$RE!zD1JbJ>sX!(rWi84 zWRaze%di!LOw{WW(DST&dwraJa-5A-So&aD*bkBW97?@+ROX{9e~|64 zxp1V6cRxgG?tXD`Dr-E{;vb4q7pFzxSzfW?MehNiXq^|o+Ve*>&A z0q6IX^pWpMNcBg}KdQTqK42%^BwSWm9G^WFo*LdJn>z2#MhxVe0(IFcPTWGy*`rUw z!2Vu_dd3{P?jQ>{m;3#T;Zhr*mQ>dT_KIg98tVeR_i9SB*{Z)*8HeN?4qq`~hS$g$ z-U6^-*-M{+#9|1N`3UT&*~6Kz1Q4|nsxjtR#*2#5f>4yy`laNCzJ79$ZCIcoa}2t} zc4@S+rUfP=ux9Ub#Ewf`%#>TZPFJddp#pW?4_oi56AP?LRH@1dGE%TiSGe-J?-}s4 ztU9yIR_GJ>5wu2zI=CAB@sDuwwG9lhT z{#gDSs6Yv_gwSAsfZ+u8Cq+VsS7j2hp$aV1EtAt6BwNKU@pxmADuDucf+TAhFr68+ z8vIJI2*TeQwJL=jX;&q`Db*L383#L|OJAmLiSa%!G4E<;)uTeqzm+JbR9?iFyUutI zA_5U*nWw!$i}N*2SP&xh(5(Na)O{84fkeTVA6b|!dsFvchobfBVko9o;4av?iVck(bHieTXPg697{f+OjHZ$(tSl$?x(7k`LJhV3z5I z)2obDFtOR85_lD=yUg&q4@h0cLP0s`8e{~=Q8`eczzAkBisq!+8o-61G_WKJ%HB11 z?OZ7^%{P6V<~VFBEy#wZR%J|YUyLz29RW{(ZV|dAyr z3p`a{UqGZyNh{ITv*L@gixH-p%8^^f7NUd~6{ES~L%9`UUI&&}?sciUG7LzC@<0542x;W-oi48dOTcc(}V7+xwoz@iE3)TJFuLp z`ntrlvL^NAdwDQ>s^+VeBB}()nqZ;ruM5^chCa2$kKp{p)$UOvs2 zNYxtK-9VrxwqNm6sN-lwPDs8dlhsAgmAW%GC29_Vx%$M=z3x*es3uXOYsH!)@-#x z@n&##-D|!nyZ$L!o8iw~lVC#AX%zO=K+i&Y5MH2FS`HVAd45%7rHhkX<(z8G$2?;- zEsq-N_pjfIX2^sY2fu}p%Fyl?t4N*^swCiB-U^c^UVgX6n1|y?ZWE)NZxn!E>gbco z-L1~JLh&7kJS|+cZx~P^IgZq|CJPpe4c$yIFnEwDXJWhIi?*%iw8OE{rEc?p=KPkmI?OJLj zQGY)t7gPmC@ea#s!BNm|Iq(m%d*}-098_QA6pykba*aBvc0s3Y0I;5U0`N-fzj!48 z=Flmh#PCx}yvIPD2~Sy?`$mI6h!}r4QnyCUJ0KI?yujW(MWA5Zw;I2639ZId#mkU` zD5%8LqVH*+V&50VdbKK5OKe7xU1Ci}Dwf$*6;0Op2k@t81i0uJv~rAGENjd}Q7IoY z*`F6=Q4U<+(^1P<($tJrjBi58==a2;XD~;jqR^ZkqR?LbdHUbF?(v}jEYMbKQ1bPj$Wq}s*0KHj8({=o{&n>UkBWhoOmOZjqf z!fD#WoDW~kOwIjdS!?IEQU9UeN+=bI7Jf^sC{j>Fqn@^MvrlEJe4hvUcrjBqhY|XM z5K<poOr|eqWgK@HuRtd)@#x_do320J_# z2i`yafI}%a^cBk&@w9Njk9ECUwBaCi$XR*;&yy4BOkY}t zlH~}RN#-Sy_CxCFfi-H8XnOdQ>Jvr_qz3Pd$4`M^L)2uSRuY(@8iX=oXJ;fxR;JFKF}0<}B&eTRJ<7B}6W`#*!p8OW*F$KDv`x)?a>X^+>#v0x|x`xvww7BG1)8OolKo5VOOR_xoLsvi@q?S^>$pe$4vUW#8Vn| z#)%BA5n6K(9sy1zf;{NPaedNGCx^lCqv-*MsvNtsCsl=5*DuxR2s3hA6j?!?!cUVC zt)QRo+1p{BGANSfKLIyyK-3(Ycp8<{BneOolljA9a~XF@igs!&jnhK&+W6eLw`2gM zswMK4=sPfie%WWNRh2sd9uC&(&OsQ;O zt{AIn5H<5%T>=88+ScJw=YYmSy1kelwu6umifp`33NG z%GW;!V`V&nWw1DA88F=xuqam(R|vd!7k!aI%dmg=bnO0n^7uS)ghkj$+B?y@X2LGx z5u-j%4$eIVR}Fv-Z&y^qvcjtYSxwmH5eG0e+JR74_0bPfQmA)4I-A6OU{0;@ko%c4uGbd=I!KG1)Gz)BbUz z__Zl$^ryX|A{}484dBmD04h`Uu(~pWVvx&Kalyj49+vT^UiLF&waKSKDCYFvHUw2R z0(5|o-^y?KGprdrL-=c?@@sGnR!h7C{8{rBFz1u-zC85K)d2X3@7XQ*uDC)hJKxvX zxMHf+wHIZ(}3lP+0>073c^~tA8BNp#g3Cv1hVR)4MLS>3a8YR!CZ`Cs7h*#Az{KvCO zA60O8J-3>ZD@+Ehz6pcThvll%m-MR5nOU&SK&=-eHNd{ufF+LVO#oblcY4`E^xWJw zkR4&BEq<8dcZ@^W`jjfH+&7iH<5Y?_zW5Shp1=5L1*T8Vg5498UUgvqM2;Gj`&+ei zyHBGj4n`XDI7Htku_8zG9(7-@J;tWfWx3fpYzLN5f#r3M*lc}H3oc9HQICc3)Q^f) z`vkyj>p%P!>Uf%uWo@2!I8u|m`x>Z1Ec}Jdipu{4#(qG8v2q_c?vSfWqsc*UzPsu7 z!E}R^u>&o37(I5FV1^jJE2)tE-S^yLKJk8)6bgv5eM1DBAzGt`Lm&5FNNUfYQtqGJ zJNUTzdK8`u7RZ7PWoCi(E|rLF+$2y4k;RYw)&H}$3^un*lh0G(A&2IxcTmmN25Bhlu4%Zc$vm|#+<;AR#aTJ>Mmdt zZaS)j&QUZgdDyp3lbvKKC<$BaY)g)vp^AWkO1+^rJu}{5-m_m>u49$ux9+C~Ae4;* zLEOOzZ6MU;2{e$c#C-V+EVh??`bXvf95JAjo)2A3B3?uGyg2XYKGM4fi}1$=bL{E7 zWMWV8X3Qp={CL3%H{QU*H%`nXn+{5X_-5avo+(y6z9tD7X}hQ4R3Bu==UB+rxc3qv zVHYOF>lN?u;e#6G@S_9Q1UAvNJDM&n(p=lx3)stoU{mod%@)sbwILy|Jt3*R(X*hA zbgi*fFUPxg@6vvCBQM_4jAs~sdgEPSsN=inn#^ghmlQ8&6lVTXfD!^K`6khw{G#wS zKaZ<0LE&nKEnGdRT+AK`@6s5kWEpa?UQ%&KYT*l9Vu63$z@4KEjd1WJUWTkRM zjtPVLb7n`?V6`Riz`hc0>80~3kSsWSxDA`WtI_%_PlV`Od4jgrFrt#iaeGX!(R8@r zDVNvzv2b@anXo%1UtI@*7q)*n;v3Wx#KbX&$~MW&=( zlZPXMv1(XgYFf8#`*v~DNX^3FrNkLzlcMTErW_2WWAoIEi_GYlPlD)BX0$PnL-d_O z*hs82Dm54JS^3zuzSHO7k1eSA(b=hVP<{7ZlNz!%-LvmL&efzv(z+HP$W;d`pR zy+m?V2u~;9I_|j!L>(>}^DLFa_b$PqPY76f)qBrIa_R6PhcobQY9{M{WtU%wzebf2 zpw>RvRVjfRmz5IIux54~OvYslOvn3$Z9k0^S~C%6G7!KX2}v+zn_tCX4`I31@ivgo z%qBr?T;XYYtY@5Z`h(FQr3d1O1BNv7*1Dz+;FplJkKZn**VJs^F7+I+PS5lVJj9#6 zEHdv($AM?T^3~~GXgv_susBPNnT}SNx(%CL2T~!vuW$t>_gu5Jcabm(ot4IYQ2gSn z@T`3Srq^gpMEPh^1b=WJj$>l+n#OfGDz##I+j>lKMsT4oEhyH&tx+A}A)ee`eK!kg zIIl(_Qj!r7XlOqXJho^Xh^?s(wUutjx{A(%5r}f&&i2xUAH&9-=MJIMqUL8x$pOk8>Dcf%C(5^N zdO%y(m%+xJG)nJcJF~qv)nqyAHay8g!p7|=A(_{ymZKoSG*|~h$ZwzOtJLU|bZfIG$Ljcqs$7 zk8^_Pj-z5q8jM9}0Q7f>ywYewxa7wky9d1Fih*FPI_nmHDBRUoK(o9m7F&)L zsi9TT<+}4=HL*2EAWBW&KxM8HaK+=g_Z>e5ogaA}S&&wJ%@BrzU@hC`g;;5{A$+hjdvS=6YzOuAZCB#0mNSxD){f}Y-_!%kk2}uB zG%FNq?{zbbTg;HhXIpauLHl1PT;#tN%!K)12_BFOwPAB4MhfvK?#mmhz?2!sU_b4u z`0CzElb=R(S^HW)G*<$PkqK*%cPrgO*~Xo~RLuBZqunJK#c_r)@8#9hk{C)Or163_{73`GB2fA5o7nETd-%aO4>&9~z<>ErO2}g@jKm*5> zQ0|djW9imT_H~#cLRLm7*r6REkxIovgzGq^HD+2_9M-1_CWGx^*`IBXJO17*Cm2Le z5Y6q|EhVV=x`vujcwOFsU*I}mX~7mn3&0lRPP_9?!3Op6V7VdyHBI&)Ojyu?f`x=c z93kK}i=euU(HybTU=L7bMWJeDf2bn}aD()6H>dfZ$7G|D5?7Bg4|TeZ6gp1af18{I zvJ~IcNz&UBy7b>Q9meVbVg- zy_kZdvBuK@hGESx0q9y%WuawnWj`nc6+!YXaXP%{(LP;>b(u>{1VZ@@Y|6O82+Pcb zW}W>S>sH?~b`LV;si<{RU7EA)zwGmn)d|?`SDk)-s;ZizLdyT@iS@VO9v&_umFk=6 zYEXVFquiUx%0vNz4b8eSc0l@GdXnP0s(<;Am4fq{r5_;%*87!!Q+z14M1}9B$%9!& zSUUMrALXN7`s{BX#4?y|GLuZuq#W(iNYABN>~GOx!#Tu3yya(Z79c1k$hJk;;efD; zamhzrWv|AUFvL+wI)g6euBQy(tj#C_iF(-T^jCl&WWV z+CRM5O`3z*@bv%qD2#?7$bCgKT>h8SYd1|Stdi=vo!Z|C_gGXyj98)&1}{1UO=E(w zN(jw5>JrxU5sTCOu>tjyC{F5X!I65;Y?__YpE3d@CEN2eDkuhk#@=o5^5mM%RV%2B zf^MoWc#p&J=@jH7QwyIuVX$OOg%@L{<)X1y93{^~ArMlsZP zg7B7(OTez@@s9>S`0p(GrM~ta`hQL)R~7Y2;KPq@=7X>It#wJ+Hnv>ogY_%KNN~;J zbje&4;)-NJMQ@h|)KmOH#OJ!y`yNyJN;;d={tIa!uIX11RA7mPF#YCaF-Y@YQ}Y`= z@qEbbKFI@dimPzB5i3;<&j7Gu|wOu=YZdE$Ak)|~sv+0a!sfXAWir2q2h-{&shZQ2dD?Oq!zqVRH* z2cKnSsq!O6sv-gIrzMwg`$dfd|1|Ef-&}cd@C;%lJN5S!(|ZG&qHg$5B407}&_Em4 z3{>$Qp0x(zwrzWggQ0=szxKoQ&$AX^+W35yJ^qM+?Ahtjc>E~Uy3GnxFoB`nv@NGx zOCl({@mi*dQBQes0+63af8^)y*|;S-Dk_Y-cy-`mI>Aq^v60O?t+V(vMCWQ47y;?q zBp#rBWoOA@i<;w0H-jPjb8u8vaMVF?)PK40KSw3^4SsKO_sw7~k^~9!OVTRTv>(t5 z!fCA@$A!mk^WtCFTuggtH$MP)p6X^!Kd{Gf#@;wib;Jrjj^du3EAz55$*q(LgTN94mtZH-J*gDRz^-`dMc*z2{ zJhIa38D&*glApU*&AOd*&*izi5X6vVwJaMlsO5YYWd3BppIKxCwFf;kyMt-^@%l>d8!2 zN~HT8$F`T|Wq2X$*kXp^#uoe&1-sX%0mhk9pcg(oq03gv0m2krjpcESf~&w8TPe&r{HsgU2mi>l%$&)dEK%%EzE~3M7xap0 zm(*P(woUf?#|op4e;ysJcfy7`Tf4R0_0+Xtgh-~NT*u!-ob_^d?ozS0DAb9>o}XQsa@+S>mSGAfY7_>@C8CtN zG~tFG!kXwc^CVH+$kaFhl{kbVdMuO)P;L521rCZuhwmvL2{#C%Vv3vU@ z{nU4!W-1^^UU?AT7iVq|K$BizLj#&OylCrZkRZZ0oY}FON4n!|S-Oca zI{O?$>)=ny6pG&5ickHTj2E;XCG;xQGQg~F2*>xZz7uz+Y=U-oY2dVawd&-#GyF&Z z2QVWlSwgSm>+;|yNQ4lH(&vr-2ngVD>eR~r@bxDcGen=6>o>Hq~m42LHF^pP}8;a?V7jy4X4kXk4M~nxXn{O ze-GQXcRQe(SlV~wcKAdIikLxoKMJ4%GZ~;TfX@&RNs5bQ(gCL70x1Hp=|>ZelL9uU z`hLZN@1;5s+#-+_gKCSlSR?R$fIIGN5r2T_fhFeMz`U8^P-UD_gogB;cHf1(VT(+Q zs>Sv}JG3pUNnUFEPdd-N#eQKR?R?m=)=4JIk#DuQy7i1K8M>U*7%^I2oDitzC7kmnd!C z7{vo*eT#F8vnAp|1&&&UhG_=_>(BPj;ZPT(%f40&jY(UFf)MXgnu0206hXn@aj`yy z?M)ad@5+q_@=M=FLXCN;JzmsfS=C>ia@gpXk2W4F{={V`wd>Q#A4W^h%~Qr2#=QY`^a9G|sSm!@ZaVxzJ5f~hfC-|oJJ=2Q>`BZiGX2? zm$SNXup$rNXOULE0P_AFFzOl0BwDA0`l!*YMOXH&#&o@zj_HNghV=yXMbgKN;@?g;kVsv3(9n{`FNzcuA?MhtxScjwhR?^soCw&xEp{1qm; zKGA91wlWe&ZTL#xFdg^EiZVxhyJLVeqB;B9x0DM&Wf?)SSt1yuJ=MO6Zfk=;J&Hi^ znk9#RFe$ozp#{u;4)j#76HFw(N@q|+xU&*3J}zrx`1UxE?Xw0!Z9CSn)ys{NlN!VJa{HNMq(_u! zIH{ff2tGWSj(M(T7F%x4k{<^-c)xn%_94~f#%r|0sh_{D!MCjR{)kirWt-DI2Zw2U z@y+86o&p#{s_6#Fq}_3Z`|O_X9QuWgpisud0oCdVT0qQ#PNbmR`s2(k0}swOj>f;r z7OF>TP4l)6$hWMuMmd%LiQ=k2$4Ay&9+#G%FbSPABP&BPSIRy&E5s`JpVprE&Dyf) z(@+E0{a=>{p*F@%`x;v3`O#b%rJ*GO-U5QF``Umq*H}zuJ!8qZs|C;756DxralsvQ z!nbOZhTn+7gie*9-_oG(ATn62vmd-Z_InQnE}I99y! z220Da3plgW`)FRVHhugYrBf|Zl=-cCKU9AiNb?(bTb|==nLcU0DDkJvJq^ip{SI3B zPDX{M_Z1jO?;qf(gPh*Mn^4K-_U*H1}&z#Ue?F*W^NmvKNXHO~W0=nD5 zZL~L81BfCV2ZUM4EfR9R<`Mi9ZjHobXdOFKj$Y>I4{QAnZ~I)Pz&TMOn{UH2V1Il( z;eM=obX;wk^6ok2{D!>q3^QklLVCeEi&(dV8TEQjcOe52t z0|;v;U^*qL{INX3`8Qq?ASM)fT;j&UigeO3{0Ate=b?IbH8J|2*@IBGqf{;xv;JJS73=|u<4BvdG#XT)!g#*B5+ zxVzENBg$dm(Yt5CKz@e#*+?Iw_e*&qlDj@LGP4HORlN!AP_*g%Ex?|Gb%0&wE_& zsIIedd(LZ9Z^HPfZixR~yXBll?VA2l7qY)TL|RxO>@JC$j_BGu8~5YDB(vljvzq_d zr<}BU5N{BM+$-`YatgbnKBrMpRPsxDwtkOE&$V^iDu5qDbZ@zv{Xei|=w-{+`{|VX z3z!Z1=ZEl%?osZC_48-(oSuf9-fLZ#5f}gD9VxZ(48JIoY#m)s zaw?swT6esFbs^r)F=K-Y1>4rzW{lht60gNH_RG5arQn14xiODd% zzpnFc)z)}8sh#sIWCUZ{JcS)Uv$!_?>dH>`oh4V$;Oqp=m*5+II&?UUC{a~Zysvpz4Fx|kT7g*MDNhSc7mw9qgAV5 zAt|iOM-thLHdfyl*?eKeFBW(&IPlIgISu~$0FFX?{si`bR{WIv{TqwgN5{1ml@`kX z@ajjMDXjF-^<%AmShUcwuiwcwREg92UiY+lEzMnP{y3yh#&8bJ5&eKnKnv_*La8TI zXhu(nr@mhL3swvM&>OTQ=r=WG)gicd5rqiR=y9n;+5ttF?cnLe&OX(|NeL2qSt2V# znM8uDrn_Y`ws2_z8mRN!6^6c_h(%R`!9R=L_z>#0=fZJNARr^ao#ce#f58>uU)~zz z-Az^UT5sH*_X?+UeZ}WmFRrnqx;;0)-X&gMxwTKF7A@a4VRs;~V14Jo$NW_lt>(eJ zRJ;AOMto!MIQwaBWc<2)69M;Y+DXI?I$`WR0!)eMP}#K`zHsTgv+K?xW44s|3(v&p zC|Najb=$tBd3817`8zOTYx``&CDc;V82<49`;;s&>%!XL5-9|;7D-m8$5qHAc5l}C zyB!_2rRc~Jha&Ap(uR@k_G}A>D#{+Ed6Yka--RY)iP`W&zZAt?KXd9yV#Q~u-NNVA zPY>|2$QHc4CT_LpZrspvP7MBMOD28(IQba413`E85IxJHII^?taol2>3xiJw%OEDs z@KY$fESn4{(+}i4cs(CHoE!0YdGhj8^QSXJXZicJ&b%JIpq!z3CZS=(O76r`Rg_4h zSs#9LV(+8h;s)`X>y-gqC_}p6mvjO;1CUUa zH9?tY))%`LOV!Q0wj;$}MgD6g|wH5dN0e`WvJkiOEE;$}92ZZadlG`&)D3`=<3Vq>Hmb{v$3 z*9th~6hDE&Yh8@PsmrqzYlx#hU+Q-K<=GMUWyDhW((r<~{7buRwH6kL(vYy+tR`PT zZZpqUUJoyGu?zT-Gf0H^n01BaJ(%Y=AZZMFg#h4Xl@KJaA+ zG${Ud1kTeqc;nWi`?KapB@Mn9LrwT{eJ2KNG_F z$6%M%pFASFoZvJ<6!@1`l%FpiYz|V=yCA$ZpBv)miyJ~Je-BjCw97- z!E_5?k2{)kbl-uW##K=&eXi-xqdwfYz!&@yenj}5Yfkc-#O>h)7934JxZx6`Q$E8d z`6EcsKEqra!O?s2$LTj(B9t79j1s+==G+KkZuIu)^?j!reHAfh7hXBIpjG-{jCwV4 zq&Zgh^$v{Cq_wbO(I?@hPSVG`v`(ox-w-~Z;hGS7 zd1_60T(LO06FZz$wJ4|+F_2z}3Pw-Eszz#4i(qdj(R^TE23MzBZrJ#478nYZ(+D*! z#h>xsT*n{uwdAiEd2Sw5W}!kD2q>*KmArxchCKO4B1si$WB+ofIXFORMJM40vD zhLuD%s&md~>`rV(UW`nSKJ0%3JQD$8Etbh}odc=yFJ>+HbW)nWy*Mx6TknH4qPF35 ziKpSx4`%J>hUdE)-&iIxv*#>?TEHzr5EjAG;&&IP_V4C0Q77QGY#CfLuFcuCkij%| zgRX$_PgjOJ8zza#>%-sf4D*=ug&Y;vy)n-@GTP<$sq{|bjVH(S zY?xlwr?=q~*qm@7Rl*ttTpJ#a#{AWY%p>dL#JwAJ{TKYAz&VTzFR&rn9r>pt2|(!^ zN(I&rp2=2D5IWQyHUxF?)-NW_H*e+b-C}4N$bCq%ofYMH<9Ge-*QpCNH`$(H$km&*-SxTvMqP`8S2ylB ze`Ave7{qr0nFH-!6FWTp49)DBf8tEEtY;`ZtO01)elh81ma4fI9NW-cBJ7>uGVqaU z=7WKZcb+`Cwv&l6V?<3*d_7>KDq{_Mc9QvG7iieyU18Rg4j8Xtp_rNUBLnXuL1+bA z>}5q*n+ijS&AB2DQ&U<`DqTeEwid^6^-2`>vTEPdX>Iv{-*ygj|E+GUmaV|u>XIxR zyST{qrYFjUPBZJy7;$-QJ8QiQqa3+jbUQ+wXK2ZKP+eaf*6Vk$x{$b9>1VJG`O3+KannO>yb2_j%1qsYS>yv+d{`=jJZtZ`i4W zsl(ge$Ou@A#GKazTrrTJL2Z_^ItV31nkkTORQ^y^rGji~4h#R7w;Djr&awR+@tkHh zTIXn|XXU45(4_6dc^nLP8^AG9H@^;gGX%fYLRZBYiC7=ArJ>;k4cviCP|4N;|+5NeL5|@GSq8{uc>GBzUDH@foVl5@hl9G^Or#$D*wU-G7|KtKyT6M-xS*4yvs6% zMw=!se^*m>H2~Abg|8)A-7Z)DJh3hMrc_KO>)8unezgwXftb7#SkwT$Ro@uaHl+Ta zP&kOCq-Q>3&%$-;_rGdS>@g2F;CnR|3$n>b4ZNIvt6fqvwc;KIEx@GyJ_HHNh;F?+8a?0gdHe0;B+G>c?lGU zt-Pb6tOkG`e{&W+Vhm)Jl}e~!m=dTGFyp`wY-epR$QdIGwt{F>)Q!EPo<(-))ozWJ zL7Rh_;9_!qdDw*NF=DdEIJ2Ebw4d=Vp-CKp-zCLQjYT6Oz`UYAP7BByxW9C8{7?L` zE&46ZWXaD|z>`K}w@|N!+k#JvGlcuJ4@VoK8mtbnRIj^!KE6J6Tp-h$4L`7}gXF(JQxGA(kh;OFSEKT(0_6s;x>V&E- z@-4y_;Zc~y?g6}wRFZ*p{4kOL>ycLH*;_%UL+AI@)KpoDk6(;HxI#SE@(~{V)12oa zSMm3u2%m4e%LQvdFP}DRj2K=1JnTBUQy?;GtC-c`xk3g?D)o=!%NXWoNaqheCkPJ{ z^r*(nSh+a*8^k-<>dV&4S`If_!O2Qd{ZSN!06VQ1*aguqr79THR+MlvnX<73tgxKr+X!26(4a>gx8{n8G z!ml#OH;NB+@c14}GfMf)s!HOH>o@Y&WXEK7-SWP)t0#*wSTF~bd5i)gA+*nMFxa6* zKl_YYo|K^l-1q8I(^w1xW$GD-`*HB{B`vnW#eq=kx~H^?hD+*b{ojKYSV%f)*q}#N zNnF@Y0nmKiKFPkWp{73>ZOTmugi7gcaX&Wp`bT>nb|itV9IhVx=$r1*wngI`_eST= z6Ta>-zIj;j_qwB{ne?0K1c%8V;=P-eNNDA^7ZuwA>&5^iuJSTM_UFOLe#p&PBplZ3 z(R=EQIK+rHl6Dzxw*V9;+RwyL7IoI%#dE$W%JG_=bl9Y<$ld%G+JV4w?RS{7&IePp z&4-pKxW@kqUFy9dE48D*>wZt@hLJsvc<2JlTlVa}JWzexK?by9%?UqqrZ9y|< zKY3Wou5|Zklcz~rwB68qohLbNd>HsA^n4(E6$zvql@1D4SBHd^bQdeXIeu?a(&;(d zah?3LuxCtQsQwcQ#?^`=H3+>9>mFKb$cVpS@+E^ePHV){^Pj?|DV*++AYFIkPc$kU zhSsuFK{WP=)=>CiP5rZtSM5K>wcXeuPZ8@Cf~CK7JLui@F&QruT%2b`>vz-M9QkWg z&$OlPUFHvi{jzTCvD&TGtKk+)ouZ3B8*^OV!B1*zl5ylla(1;kCz9nv-_Et0rrmy= zQp>N`m^War5Aho8TN{u#c4Y}f9M%EgaVkLm8@p&)2J0ZpJwP4(8HNiquBDQ_4m6#5js zV@1{(nXTGE*0^~|smdd+4s@dAV(kJ8wZeO*W#a2H+g+<_&b;!& z#uvmQ69Bi)@NWw56`o9-Jwd7i>oBiML`a;bH(^=+v8rojUTumOGyqUW%wBtH3Xl-c zp8p+0ri^gHz=&*WD+F{#B$NW&c6Go%_#AwM9ePV`YM#|DWf@m!Tt60_?KlP(y}Ni&w{${S(>XrwjqF z1v2%&Gx-1GVb^zaw#!+5!>p_4;meT!232i~vH*qj*Pw9J@1y+50)f9L3TEI$5Nx7?&0Lb#{|0GNV7zYLFs8F|cb;js7e?Ohr*9GZN!vp*CtiNaY{c9*fxc&tw z|9&e%$nWo;|2YLntWy1{tNBfXt6!#%{9D`j=hMM|(K3Io`rmIYcGLgS1;5|->L<%Y zf9Zb}t-Sil9_0Tx9;({+zdj2*`2X+6`{djG4?#kP(efF#bI>*L4=$}JRVrcN_x}Ns CvrsPp literal 0 HcmV?d00001 diff --git a/doc/images/architecture_ 2019-10-24.png b/doc/images/architecture_ 2019-10-24.png new file mode 100644 index 0000000000000000000000000000000000000000..12445339e443a12a4f39e0185c823f79b347da7c GIT binary patch literal 59740 zcmeFZ2{hFI|35lNN})|8Ov|T_qDUoMMo|exX(3@MZT5AHZDzEf5?ZM&BfDgV!eE%0 zvP>m=jEsG<4l@{I7-r_ahqQb?-|z3@_OGpX<;HI zsUQggfuu~29kv32#K%A&vA>rs1%6W!nS=uV67jJzF#=&~6^DR-EV+K@#32wUFM7q? zC2`>2%RP^s_W^;V%Y}bL$R3$jK%l{K)5C|(_&bd7WX5(~Pw1NIxMI4?qGz4gt1G1u zxMLrx93n<64*1i)o{Z^zs4(&}C$r_vwZDx^+je@blY95~e){p?7hBF(>7U)Z@seDh z67%x;s^edD8t?3=d%6Kys&@O%U#lMYnuJuymdpBxh#1*jTXJku{XGbgil%mT`Jfq1 z1Mz&;0YoSEbq12ygi1tmCz}u@h8ZZH{yPzX=J}t>%_NB*ACnF)nf~z+wC*kl{NrTd5)EGbisa!CnIE4I-dr}exZ?IzB9O(eh;RA-7yrSF|4rF)aJ)8N*Z9@R z?Ll%$=O!KI4|B5AZj%Y{E8`U>)dDr0SLnq*a0}{WYp{#r#+9n=F&K2v*cTssF#;BAuGyp0VooZSjUELIA8XbcLKn zXY>V+vVslXp$;xZRp7YlSPgWkC3ktNCRjgL`X^^Jjda4PPQ^3*aoPj52`=fXbufxO zys;L~D9PUNR(JX9j;Uiik5S@* zA1%E0`E5}orvnb%dk17_LdAX`y?Zs&G80sgyvW(e)gNG?)RNgwHr-20YZFN#Y@8tV z_5LECwT~{N$hps|b8K&Uhz4JjAC*x(nDbLkj(0p~mrN_9U#}l1B0S~abfvJS&X%sM zL#vIW>-+hdqZkna|84ikw|8-LERjFF=ZpuVY%tkmy23;{3q$oFmTjOm8a}GorN)Vd zmAUttbPw`c-k!lZ48&|!W(uH5g4Icsag_M;mc8z4aR$6_96nzOHs-g)`3O_!IYFSx zja%=~C2_K~&P7JlGhN<3B81zp(0a*K*){qr&rRo0kjJB|vZHKDOXcN*{9SReDPE^2 z`OeYzKR6W}GAw(e<0dCQ{Icae?*1*eXUFL2eK%|)S#J;Qw2z_Erv?os_HYX$iY$oe zmnK;D-uuzVta!HR1CdRPHovd$smhtMWpeXmtn+xVNM zSYvs`p?78q`9Ylsu{m{n*!PuL*7PJN-`Joi`d#MD@XC4v@9k*!ja_-*@+rFz!%6e| zh_)!b8~Ch$>P7wdH-^*6cAOosHX9;BAZPE&vcuy)aN6_JAKKo;iMq>%cRMNR5@_~E zSbZ&9InNVpg0&H@7ob6v?*qA%6~!9*`72Lkqx)fB4CD;kGDb6R7smamv+aeR)arU> zi*SOa36dIWKZ}Oit7pM;!CaC72_Mr_$#V^>R6Hn*zK=2rcK!y_tx7 zOX?{JH*4A79Gj+5k=v!b*wx1FGUny5GQZs(geC`gmcGup2A3{_MDMtgDsxPSeNT|P zZGmZdBW&=s<93N5!`2MLju)@b|GMJXk6buM9LO6KvURA44}SXP;@8 zRz-}m(xf-2)&OmVE5WX#r#w}^1qn5_cJ~o9n z2W>1e2()aR8fg^zg4K(@AVgYndfnVgsWGLa{W^Av^lDIeuFp3u5=W`2nEYtO7zQiD zrH$=p1V$@vik%K!m3vN0Q9lIoBMRt^D0I_nyD>>OC?(tnN>MU-E+HB(k#96MoQXC2 zR2oU6c^rp(%wibDd}mRR2xQn~!4W1IXNeG$$6uB7ue`-sKE^{n7$02SoMN?yXrjvP zHDW%yUlJ-3u1ODD-JIIa+BO-9}_ob^bR2L z?gEB>0edg!fQJ-k@{!n;=Ip7NN4s9`=dARQVrHwT>o1*tO?4Z2eW7<2z8%<1FDLs$ zP??7NJ0vByJz)lvezrPKY|!Wjg}23SNOVZPKC8HFM%thE;5{B`?FGVgA+$>vRa5@q zom_j`x*~F)&JqjbV5w@}R?F}aX-3&joEjoNGAt|gvW)VC|94v4bk-_A0SrxK*wXr5)~Ox;$D zg@4_ZXmUyL>P)mGXylfog!4~6S`T9CZOfbR-7->RJ~X?GaTt6SYY z3vT3s`}Ni_gO(!IuW;lS#2t~mm}uMdtyTm{Ep4 zroyS@B>h@!?g38U%?wj&-$Q$LTJ`6S84U%-DhER?G|}}gtH?dloZdoL?CN2%58N3( zB@$x)8=~BKT%<@e-OdJ0(;sL$30XS5?c{~YZ58roV*ix>#Y_05)5vrLcNzMzXt1FG z!Xp>XZn-0tD-)%Zsr18SLPr(4Bfu$Z1zxVEfX#tZH8xcF2S=^?6QYtnD0UAd7IYnX zUnV*s-=a@q26po7zV0t@{GzdDSr2IB_AfbsD!2Z*2WVaNDrpkrH}yVwz(@x)`6O%{BE4 zdU$Z$OtNR$lIq=4ei!jE^oMTcen)m~K|Qd2vHkr?e}@Tj{M^D`t_!pmo^PRZ$0XS2}t~6uJ~k zf7|bBy$JnD4?1TrKwC@s*beh=d2@qt%$L%1D{pwV?!)S3 zF_%V0Nq)O1o2g-=_ZLm;f1x9R?gOkh*<=%zhZCa~*oC`pEL2Url+;xW8?pC5(!st`reRl9zw&%bE49Z4N8j8(y!Oux zwjoE$p>0Bb;%78aJXXy^_Vyij^ji*&^~ZTY&NEp9b=t-;T2p>HEu(>Vi@6nlu+c`O z1A$`cLy&8_1))T*u3^Rpjrpe^g1|d~gdy;Udp<{kcj4cRs?R+(Dsq%svV80jklv>+ zI$iH^Mo?@)M<~>48T`%7O(GDhCDWwIA8E!J^|IN{t0&++vFkoWHmny<)y^ggFYk^X?5C*s%f|chCX*zEBX}&X(@`N@H zxLW;yoPe|8v$yXTnqmxZbmm9jLsAZ`7J=+G_>qFjR(BwnZ`1K(=8`?qZq)#VusuX0 zEAcMLV@h{a|2lEoQ_9+gL9#P++=NNeZYw~BmSU=5`hzfkHB9;FNgiT!)vm6ll3j^V zmhy*crRr98-}b?lJ(CVI22o5LGH`Z?qhrC0n~4CGVRaQSSAz%`w{(hvMF zpmTx)SUhlP{mLU!i{gFF6bipxD17a+7uJ;YiDYp0(^A*Q)sXt^vMK{$!+g1BeFxEBtPV$ zQFGZUebI9pu^n?Vf>wby>*D|l#d?;3*55()R|%Z6n>H8BsO;yUxI@=gnwcz=vJR#d z3gsV$ACv9QdV29q;r4ZBZC-butGsk$Wow#8fTWX_x?HVv7EvSr1Ut0g^=VqK5*s;k zKc;7Yk$-WqpG?}!*?C1oTq+?C@l2g;^emvD8_yY0(ExZr9_n^`r6HXk*{C6t>M?u2 zDs8lLf1OSKO4$xw#wxxKbgreprw+kNor|yx9{uZ$;JQq3pYvTTE%6r5aK;hk!^-HK z##w&g;|Q~G405?=(>Do=sA%q*ujO-TB&vXa9fQ;ygYudptm$WXwza5Ps-?YsVO!7s zA@gRdH1rBpTk8VwRW;g^g}U9ym5&`9b(f+QT_O(4rQITK!6eYdkCzrHCq7wm2cCtB z1r>U<*^x&2*v}lx#0=dvSVg|G<_w;!pzk(OXPo9UDQ=odazLf^nDh)@w~aOCV+cuJ zPI&l`VR-$XGgF#ZIa?3W&wNFkRd9SV0h!S8E#g zwa|EI8jV!1NS=C-r+D14EoIGoCjb1-2PKJvdD|a+k`jDbi>m)}KEqhFG*78*y+oSi zNt&ZqiBTJ&ua80MO5^VXG2Xd^5O=MDJRLr_L1?f#sbDpdB^u5ox()``$$odaFgr6d z-e6As;2&vDEptoEyRkuaR_BU?j}rcA>|C}6b?%kmJ=kD}hJYd%eL|id^nwW5*r=Y= z!AA!LO#-%HD0S|F056#R1eLTC44~XuTLtg&mY)T~0)KM9NmuZI=}Z@aU9Li&64cZM z4-V&|I2i(dvy&F~Guod=#k6E`%ib7rJ$S8IB#1S?9W~MA&cANRMRm@p3Cawg+M~5% z8=rL<%^!aE^IOlgRCnCaP2GizDf%#a#`+k&uTMFsm(;=@)GJ?arC>BjRarJxX~n!#fg zsbQZZ(V~rpAoZE^e8<;U@hw!=Jda3P>pr|WWqPRkm7CXK)K9u`oQ`qz zq1Y`iO{iz7ADBd($K0)>mx)#z%MwbJn*2EIdz!^3gzB;}C2AXxwXlPc1}H)6*SGfc z(SUhsx)mfH=Q&beIOy&xo-BPz_VF;xI)vVr#@gX}Ld@n{0rHfAW@$6?rFy3>)8tJB zQFQl-Y_DQ6Hq%|AOw~DdSZ}gH596`ZkrGSG1STwm`URyb)6rDuD_x9&cs@QnR$Con{6ftcaz@Oktw-HLdw{Zugzjv2+u_t)rE9hpzMsR-Gb{|4mJ#&SumXc?KeA`pD*SqI zTkuplSQ$b@f@U0Ol$5u)j^q+%(C=(hFk7QL`)* z5;tSw{jpG2s9Mrb0ZEuG2;$-qfFaiAgYW!)VsA%Ristaa0N@Oh3r9G22ZRbNxC3#~ zUQ7q(IsX6RG9)JeTv0v+y+)g7UBx#p7^cl?fV0hOxNkZZQ-KDlR+|Dv@tO;>qaL>-XGc{=8|%`h%XTQ4Y?~L;e>r26F;La#J8wMW zUdC>@c3fNHyZY;tzm`mwd!3o@RQxyg>D&>Ui}N7N4BNA*K$4rleR+;`BT#hC#c4)0 zjh4AYxF_lUs%}ecO#SuIpD9sQE5`Aw*IoH;ndOAK1bsM6L3GaDmS8rdqdM;obGIy+ zZpz*^c^c!f(&b@_Tb53jupEeV23K9X-Lw4DzL)!@#vJW+l~Dj#C%lrSV3Oa`sO7x%Bg${Bha0&wh-!nuA z)8O8Ip69Rp13-t| zSEN1I6Jyu$^zG*bKS5jN6v71Z{5n@9l74QT_;ljmQgtv~X_%TXP$R`tq5IIpb)I7y z+*_MEAAwhQ%lrxq03&=ZY`^+6@B482)3Z}vA4~TiRSG{Q7W}E>2onTZ$|weP!G|*5 zmlEagM%OjC>@tVJhh~iqvAiVsmwuxP46=1p)Q^GizXJt;w!fElOII>W=$LEAASAi2 z4cOgXb8omhIk73LpzHx<{JUKb;2V?OSYHlRTT;(%fy~Sw4$#D4(2Yp15gYFGlNDpK zsV+9b?U4*$OJ)pHa!hu@rHENr*HPy2vIX7{lvwnjJ$CtO5&os=@AJM;s6!%2T2*#uK86u zemfC!Ly}`h;PrUKIL4n2klqet6f-`GA7?f7knz#?hxdukVJ>U~v?R)Mp;HSO%1@R} ziccf?rS};hE!pDJYlxs@1C#@jblCN>TYj?PoS~G!%lhlu$Qt5vL5D*O75~HL4GAN* zNXBZdV$`*bGn%?XDX=exO3dcS`N<`0@q>Y}DCt7YP5rRI8&3eagp><5Tl+dI)UHPBZ73{OP+j84&If(Rj+1Nmz->J{r4>~^}91_@O*cPf8$bi-xg`gBv4%6Qk zE&*LUzhs)_jo*HC-6pN0T}h~%-?oWdo6Np=K~zZoT!0tj^wL7Hk_QdigV5herQNw< z&>91f8UaE%#LqsxIU1twI4Q-Y=rzB!9|{2Ft`ePV(%Eb)QwVtY>MbO++yLb2Mg62| zc|=M-A2vIRL+A76W>__=Y=8r9-6-UYApfQ1T~7t-8c@j9)!lUwKIlEUO7&MC5Kj3B zwvd?Ts{Q&tE}iFuTb7JPLdBb*EB(T%$qw_^eSa+jg%tdA8?B=uD4=$c@bwki#p=(e zMd!wwz1J)Ok!=6DlfqUKT!~x!Hz2Sm*M)O9&vaM#xtfDOF-JlSv5xwj;^3JH(^Z-1 z24S4DO4enz85E9&^i&OQ)Z%CWLF2b)tGL~zd@fzsW7eM;(t{-@UqUJ|PZE8H8k?PV zT4X0XeFqx0Do0o@{s#i?HIV}j!^mD<1fT#egWl;>?120}^p`e-Ag2HhD58UJ(*dVd z4WKs)Vbr@QA!fe+Jf|V`(cFukgG^k$o0q(LfXO>s^dZIQiiWGv9Trw<=eSskcU?o>AQ z>8L`tekmM;?MbA-(&RP`?M81ZmM$=5rw8v@XX!lI1{6~AMia@fh^n9&XUBMl>XzM2 zIvSSj3O^USct7ZC>jkYwIm{MT4?NI=HU&J7pr3vSO{TizM^h2p4aFUgD4K~r7Ta*a z2LU#waWq0X+!gW#4divimb}A;G*||b1FacUI60e%h12p&7+-b3ag(R9XAjiWmzaIu z9}~5xM0pS$*xTf_OPf9!*+RX`tc$WaYm6GFEfX`FLfV2_RG?s3ST%G;4rCt#9n?nr5pe=dF z_ZXRvfF@7!(_9V~XgENJvHp{7ZqbKIqIQ)SLwM$3!PS$232itHrmeNjM!2Lv0-aML#FG7CzB%6TU*g#FEuVc2w{x?!Ovj*&joyT?)Ys|_2N$Kb8%u5;<~ zn+e{Txc4Q~yDn1gEI`Eta$es872o-NF1CpASQ>e_0z{0!Zf=*KC>ZjHMQ+l-G82Wrvb zpLc;DYI2W$;<;Qn$>8la*nbxzThQgCAgiS24J(%BjqJ(CJkCS_sO*>O)f$ThCwLAP z7<=$0mxuS8T0#z>?9!1;Te(OdrJ=W0%IFlmV541u z3<2gWC{mwy<#Pd} zRCTn^aQg{j_V$l0GjBe)qSqb;5Nm~xwGYB8o*6?a`pEvy_^ut#%*3 z-=}8HubWwyI{@?C#?e5{q-pTIz3WIEXlW|>Ii|kM1KL^er!aG3WGr0Ci{YjXXK#P= z`3D^dcgcp7V$tAeN9?)a)5E@*}DF*k-#69N!wX7yt`A@Z1k> zUfb7$(}1cG^ODm^W?(N({R^DsJTs(J(AexQb^2aOdb3McL7bW}>3>6=H|V~B?(7>~ zYzT(8lSA3psjcPkis;}1Va7TQDuaoyxo1kDLYpqN_^Go0I;C`(;;pn`j0u;R1Bq(rL+2+13GI5~4BqC5k#}KRPv$(w+~DLOd+0U1aKQe!(yF z^CwCHgrw-Mw%d9WvzL4_vtpnt;=`Q3N*ObkLT^v;@QuaO?;mMWJr)gUS;Dwe(3#7v zi7WalVJ5{+ydyX7wtlVl;4wqz`(qs6`Cv9^A0E~4~48T~x!-lWZ=|IETol_8> z5>uj-TdK)j%5z!7lgmW-PA-tmZQDo`v~KoS*BT*2QUIbt_E*0la0B4DS5`eVGxgDXe0PP{3v(}{F*xZm~)$dO|Xg&1noB0iJ+4#xh$p1bOAwr5nM=kkc( zO7*K7CHw>7c;>C>%g4}Bmd0G0j4D{dU%ukgL%I8MnX^_G-JPu|ToE8t43#=Zni-J0 z+cQ?WO89R08z51L%zgpga@fh1^S|5^aBgQ4g)p_laGS)GkPdp%<4!4b_UT}iGH~TP z^AId|T{}L?YT5wE5B@K#Q^+xxI;xlo|J1w#8AAYvrX)e61bETlhSH%9zWM1mZl@Xu zw0qYt2w$%~KfXDSvmaZ${u*W1stgXI_11U7-;>we_Am2GP*Bc@sP<06_Rh?T21`-$ z5m4nXHKV}L@o)63K+F${&gU!Hyi_wcOJiTDYQ*Z@es z9YvIhCjC(+o=JGpqW~00Xsy37d7s7WU+GwZFW%1{A_9q$`tQ`ZQ2N&XPfMJ^D^_G2 z5u~1*RGgb`+ql8slzFnSd`JGsqF0 z1vN#cd4-XzTj&K%Yciob)N!4DRL50?N1r4HG%AD}W% z-|i9t>6`-;(ze9jz8XFT`HRF!@ebZ=zEhgxXn?#EHPFDCitV5Jla>#r&osOn4aKL9 zM3^Z&oE81Jjqj8v2IGyqgvuT9LPC!@y(o^@bwZ;UM9k*-uu1@&F7$fybaoAd75kV; zMGri}q+nC)aFn@mbnENRZMTDQVt-J(#^SYNzKLX`;~+!-(P6nAGdGwU9fXEZ>Hc@a#MwWk)06rc{>8-k ziP+3Xxx+)^_tozz*258-yCb$sFp9ar^4qjs-JOj~I)PdSWRXjp8D~bkRXI&JMR3ZE zv0>U+w}ME=;9qWLHNO4V`mfbUb>h8*O=gwd26EkMA<=TDq&5W134vY1rvSMHT5y+Cp_#-bxDTb%|ncDd{aGmpD;g-H4j3bd0IVN z(azR`hnH&HZCtUze$`O#k+3Dxr-Dl@-1W*BE5`6fyy7gWp+F$w%>3egwvaWJbsLmO zbWI&xhadG*0MJTN)Jkw@nr{C(kn=Jf=wIsInEBUkeG&2UpXo+_cRs_O?A%-uMqaU{ zju{aLKw{{Udjqfw`|Pj=5V@9tHsX?kLyHNmInMl2iJ4hlx;4HL1)-DszVmzD)E-i* z0y(BFfTczzE{IKo5oTla%IT`r9o7_TB7tOx$qM^FA z++kH9V*vWj7j98k{t^4+{QI@tef{DB1kxit+)g@U;$J4$os6Gohth zQ9J&pF9X40U3W%w!;XZuILNK*|I>H>@Nt#JmK$272aUSsuNEv6fU^Eo0Q%j(vrJ_d z>s>#KNRv|Yvq$swE|s&3^{%;qN*4I@#P7ELqmG7-r5@Rl^1JNBVqsiN=$8IJyBzAJGZ^oyVD;DAB3v7y=LEn-oi7jsT+&BluSBOS(CYnId>Zn&`RRIC7 zRSGZA8beUv#RA)(2hGm|OxcEfvh5~3^jg;LtT8Q{2NS~+%Da!e`RJpPKVe6 zL&OWY^DjfN1g>6D*3VyBn1{bV@uOEFP^J&`gh_!`^n4iJXVmqh;9k2|1Y{$F!2m1S z*(4kt#4ngsWx(Gc5dD3#7EmQ$k=?WmL0PEt>(l|2e1oErr6Hl7mtYF7n1Q(f*0EVX z@B##SBVkPes@LjoEVfSCFI3@s53B`+u)Bv9Kp-zz+0I^!WK@)^ z7g-Pgfst9qL7(iWav^kU(@;RIp0f1bnW@yqj@#`9p}-& zRU?ECt43QJTOz!W7-BqB3f$LxBeqD8rbPn8`Ed-BUt%FsF@$WSS!He>vyx=A%t0ryt{bRGu$$*5=RxD17Emm(@UMpJaoKOAZ1 zHul!+lx+|Qq_h7wo&mhhNv(%dK!$J$r1O3Kv8^X)Q#*4~g%vE#f5>WEC;^z2PVSn$ z&=O;Qg2Lb)}Csu3z zqn@om0P3|b(?GIUDYbwRct zgX)pwYWB7$@f^3i0hJt2*MEQU=_`L|2vG*{Es4x~DlEQ)T>S^hfQlN%^b7l757llG zsF}%>WT(kCI8dOc)cM*r?UtB!h)I{L*~lbObTrDh6`G%k4U7FS3QRCmcmHY4fQC42 zM_X-Tk^l@&hpp_})-!;tld0lytc zMg)eJBH^pBGbzBGB{9C8@VbKV+HlC9+5#9@7hn-`i89N_nz)nrh^ix0U>_Uw#=^g_ z8$lqOrT;Ri8gcd-aDt<;=v=$fG?2)Rr65G-FjMMB+)OEeKm8K^FH_R{D;iE#I}=@( zhqDX8QZ(;aCw0kw&aRc8X0GkdfUeqk!fi(uP%}~7_^0zcXFC|z>BgL@OkPz+mkySg zQFR)_UebI@nM}Nf1`+Aip=thQKvdcDZ?O?xO&fAe1UFbXeoL3LL(Nv++e=PD47oGn zALOm)a%;J3Iqg1u83$NjuCW+!Z4HN~rTkvUXg6hGnzg*YIim15YLITOp>8?)0RCMg zCtqmZc|HFSUKpW7Oz^#Sic@<1T>$+8_RfHZfB7|549=IpZ;PJ$*e_t2@IQ7B$siE3 zE)MT>XZy9acd3gBL2UIuTt#I#ff-1-#u~Q9!D+EmC7b>e3!k`Tr>@r%$U zg?9&KKvoN+#t+TMD^VcByl{9@0<>d6{5m#g4Q1UI9k(07?CRlmvKlW`cMptz6 zp#&YYqzEKL>tqO%)^_(01WgvQ1n^UVUg^;Zo;UAqUdnl5=g9hy(dLf1J8c?jeJWjak{i=u-Ss}guu zj(G|Z4EfyDvWb}kM*;Z(KP?eISoCOArOu(^80Wjf8?(Q_3J3tUN&;5#pSH3skb!Y5F%EAE8%~mO2 z*A`?Oxs}uv-DNDKm0tcsX!7lr+*`pw7;veV?PhLhzi?|$6yX#g(d3n5_OXK&C@jjItK)El^^!hr`3yA| zEf{a^avX;)ORXOB#9A+Jzb0JhC*e9p=jJ(RjM3C)p}yn5_~m3zQCGiwo0)RNZa z;7#(26g=~fKkLcxEB?+uKLWWtrcAdaDvrf2RYw~9MT*t&_&!s@sE68OYCxDiM5xgQ ztMsQAltUZOf|BlUy{WNm{+3Wy1f#8lQ9^%d-PBasSKkMes@znX90~;$EK81r%til5lHt|Dej`5#U=Q7tbm#SM1h+HTW$Pr#a(|=8CtI zz=01bz^L>7vfDWk=}NZRQF6R1@_+@*>J`#P8by#@G?09#?uWtbF65!|HI@^jj0|a6chV`DtY7anVM%Hv!OKG?7o(6x(>a-uO@=E^U z4#|G;_If1B+kw&zj@INBa0ns~d-1L=cR6CUalPempPR`J{MXd`EdVm+h`0K5)ey~f zATdB`ji_QwxKi(n{~Ad<{D;#m&;5OY%0jgZk<^U)EiJ%6d_a~@S6+cj2$o~iL=Tvz z-YEHa(1x(bGp<90xI7Y)fmlEgUyLk9j8U32JA5 z?3 zvXyb)6ua^6yw0;Yr_z3E6-)#%s8SA8j9TT$=K*(mQGQBxrKXADD~-#`xTa;Tepj=- zX3sR(N=yUya(y$3?ss{HvXar7{uHLFG=YsTcN3>7W0R;fEsH~NyQp%ue3DuzW%sUX z_6-PcA0>80O|x`Oc8R^oN-B-!YG?U|S_*j-E|o?7I+dTOND-NQ^?PjkZyZp%sCLD# zRh_Wc05NH<{&hd)*@|X-ObY2jx$NCIv2h*y&!Zp3`;{{Sw_u+zYPE6ZhNlrC{D&nq ztm*29>M#GcSAMuC^#765cq4e|fC6Sr_j735{=Z1f5=RG`Vig<_u!>!f;t?N4)>ttG z-1%(;7XIF1(74YYCU*3v0wku#t@l;;c{3nL4a=PaQ12%2Ir++eFibW20R^!WHbcayHYW2ccjA8PnlM$>iok?NY=62q@| zJFff}LARM0{VuKA0rkXlM+Ov6S%;u4C`Xzq1+z3(aZ#|j*j&5bjYJ(NW*0_Tu7kne_f6lgfVt4fnY zx*IDp`ZDN4PG^%bC1s4_h#HJO>vVCS$PVtO-AktFl@QP1{?7iiNzH_fX#*;avQKB* zw=L}tUoxGjo#+y`I$BVT8@IhcW)bi>*nC0-b`J6x&Q zP0y%1eVpao4!oEn225XrGo9RS#XiUBE)g*XsR^f>^!yVx_hSNTk?<@O?b zXDT$4&|f3mtP2%zma;kQ%Cn59Kq-n6=Mf_jelcMq(DS|G60cqwj4O+M0--p(_v4DZ z0xlC}G%yv`&)nK)PZ+#xNz1q3cQo~j`bn{%>-~WjIiPK0kFf)SZQ%@q$?%JF6R#rZ zqTKm_4Aq#rN!!cWuaOqr2fQ{U*Z=)!7oziNoWp>ID)oCUF&H9;;sn?MH>w@7eRpB8 zyC6`zmlTnML@kDzo^+Lls#lRN_fsR{6xzl8_UDIn?Q1Gn_tah5R7w#i!G-qUfYVQ= zZz}t^@iyc@V~G9S&GVvI_}q%y>RNu@U!sMvnID)ZqlhlX1(+gsN)-X6mmzWZN&?WA zmNGa0uIDJPF*E^F@1N=e8t2;X6|hIXye*=^N$M``*2~7o+9rnQUu$spYV+)xu3x8I z@7T$@WcIQtN8 zrxK`bx)KH2_SZoaTN>f<3bnFC)ghPzrKnx*aj_$Aut<*nNh!jmpZ&5?vHDma!~^ed z8=LQu$-H5smoR(3PNK25?i>%}mnqFtp3My}uHX;!RbJXr(w%drp-dpECyZA+}3Opjcw z$|STBCim)6R8BjABTL=AiXFn}Ujs9m1`E>T;$pIIaTjHANk#F_?j=H8GsnIR)`9qV zuo}6~HSV7EmMgNCYxg4fziNlQ_fVj~yb>Ko;%Y#4G@7Qz8)E(_hMJ z%tsvEPpiuh;=5bK^QxqPx0bwx+m`~Br{o^hyh!E#$6@Q;p|*wMn|!?E76@DVSQ>n` z*Xt~|DoeUqHjV5KhWcE+=jo&Bkg=l%;3TfAuucQF%es-UYK9f?aiBQe+|Z+@`hI2g ziPh#j>5)7lEsL&n6Z$&pjo)c;}sF9-6 zvI$uMGnq2;p$#0k*6;0M70w|VPb#CFs zo>oO46v!{H3UQSRi)z8qpKl-!UFUYDUdp<4zRYisc+QqQStd_atp3=r$LD6?zVB_i z6e#e5py3S)-FRXp|Jl_0Ntgw67GG7_<4h^!+)%f*mi-z&?|Nm*mg~R3KcSaH!Rhwk z{Ng7|(8nt-0mL|N@ZRIKv!9^?jE*l_ZbtNGAoVVP;|0A((Jk5E=)z*(!$fea*k$ML zQM3b<=&N@bIs`S>(hY>nppCv<`n3(I9D`4^n5|P6LAo1g?UWibKq+D_jhvoE5J*;nhVFHKVtYJrVCXB*pm|OxUz&D6nOoh5Vla+ zn_U&;VxM)M>h3%I+EBe5Xz}<~hxWe&s%SLYrw}A%U$KUWU37nRwHY;@An~{`KoxL3 zD<=MjjRSMk3F($tcE-_PTQ?mOzV4x{Z}C3&yLZ78?_#wDb2RAaEFX z(jFiUeuWFGl(BAZ2HbJAcNqd){}O`C)xT&t0E_|pw(YZ_Fcsv0-0{k>Vhf_-(Co7y zYkB-KT%T+I`a4?~C>e`&BBjJVna!{Hu9V6z9lUrm851jYN#IYtb58$p!` z`peShyg8!a6YX14Tc7Yk_O;u?HvC2u|DLPOsJHMQ`mI8{;u$4yT`g_Gx|8kc_d=aH zEfIZK5$tsF)3|828Vk0m-$M#sbVZQZUtNLU8c)kDSpfW+vA?lh4;r?ew!Q?*FzP z;G~zQx-^mI-T08GL9)EfQKVpd3x_lM*?}b|kV=#txVh;86t|3NApfN8)h*;N3_7X# z&%Er@rI;_13#nOsT<()%z2cZhE6S8oGvF`C7Y(jo2m#Z-oVw5}CjqpK+|6z43a`eA z`N?AOE#~Fyz3N?;%ES=kxkbS;=3Tffr}L_VCO<)l1=tuUnT1{Y0SASpL&c-o{NZ~W zOWwm7o6x^pQ_2&4*QlO+-M`=@gL5I+aR;2uPAQVo1F}^E%t#0xv0$8Y*)inn?d%IIk?b@?@rUnyr0D?vk+t$BbzE#5&&t6Js`wj+Rl; zCic}Q=wD7`_hmn=8cnEfuQvYnyIBe|tMcu@RFunr^n`hbpYVMj&4qntrNTM751(?~ zC=Q4wdqQx4Pq~z~-Dyr^DM72}SV+Q`hEKTAy$S=n+Yb3bmu-7V&>&eSIE`V390zkK z4k(Si2#w3#vUFB{UTUfOkdB0d=D{cV7DNk~`|hVpkf*)l>Z3uZGP72RlBgi*F)fHP z%}N>T)C3|jde2s>L_Pt{Aar=JBPWqe^bDRsg+Huy1`Ym7b!ty(VDYjxz`r6)^>{lB{H)1kfH8z zbrSrA-bW1>b+l0({mvafHT=?of>gi&Qt(7~3#o#_t(* z@8^C$pFW@a`^!J(yr1Ws^PJ}_ujiatA1S$eTMwR9zr9~+Z&#ZbExQJLbZxAfc`V>l z4jmMtS)Fb^jqkJGBL){vq&kzKWKL4VdKgh9|F+ zQG@snWVaCMsFg3I{pk-gVoMKJmuT?<@ZB3HMh))1c%43+DtXF~y3`VHOPALJZxIn& zhgQB8P$`)$dSTwm0C_-z;mw@R{`(7uX zextN>Qhlh(QXebY1eX^!NfleTpB21bPGU}3qR~MLzp*jTNvqwhDb=RgQ7u*#fo0vK zWe^(-P&k@eu2T4D>42YhiAe|r_~@m7I9(vwMNBlh&!{*>cM{Rv$6LhMUg`#24OdhB zlUr1h{3|6^0zl=CGX+5SBqMp$b!k3xP%b?jd~UM9PGGlXPvw zOO_)`QsehYBPUoB9l?IqOPY)6zoadH9yaRYBYW&Ig8gN*bTKn@w76(2cmA38q6<}X zeGy`=YeB{Xbi|-853r%8htVj^U@NhV>mgTgbFPb3Gj7k~T>^ydCD)^y%S+Sm#t}3* zrbd*0_a1kb&SZo(vUede%y86tfab+!ywKd&IgHtVwgkV!WHoT16yP;|y;k$!)r`hK z{_U$}gY{vK8Q%*drq{o&yugu#q6gN7KBTCWGg;Nmy0cZp{9ct^ZSOm_bFywT1}?Z2 zU|yD*eSOZnt#7FaUD(zZX|{&>j6A)lK8YM4qBU3vp5bU`iDnxa1m~EbaFkg~)$OQr zl>^1LI5XXG?P1jvR8XZeEy^3WX?U1_?08#gg5|@IE$=j@=r5QU1LKO(>yxZrnvOvm zJmJLa%gQCk8MC=`A9zbhkA(B6OmBnH_|m5c_epuS{|MWE4l}sGIeKb$;e=CQJesQ3 zbBaJ#L}#idpTgXW@bN+J>uJ#@58j3eGy*jIkMRP<-xL8NEkvw+{W{*jm53`BItFH#&0?4 zO1WVAst6(`qDM)+Z4+4g+I7iHE-X!PD8Nx_ z@}EmI!Lcoph&Af1Q?4g$e94PBai%c%C^%5f^NlK$_G6je!tbDDZAdE6tHq8;S)Dy{ z8=Ecp7ZNA)Cui>>U8IdhP0nRH;|nnCXDKp8(4l%{(Sie=Z3Iky3bcG>qwip8o$nG2 zPu1iIQBf(f#%YxL$soM0;%c|pwr$$hZTZ@9hPc|xO>`&fffv+(D963!hPK~_BBod$piHRR21d6g0~-2&_sb9XG% zm{-CkE`D;NkGw}vJx+LadirM4?N2iE-}thU}{%Q#*4wcEz0IR zOXyMZJ&FU21jhJ`h1NkEne5Di1>D_J0x$fBSs#Zcc7A}~HHoRgm@M~tn#9ys)03%$ z4r>>Rg`^(xzBO&JX38G7p^DuzF+NKm%uwBWe)^UdYCG=7p+bFQOe)XaP_DQL% z9{Y0R6k^@9QuvO(qNmbB;k*;JIJ5pWRJ}^#Y?QniWNAR&EZ@5;o|wBQu6x{#TpfeD zg(c6Vq!81;-T5}0Opi39X&FMz&JqSyn{y6cRySbX%qdo*64A|X&hP7~cVa2-B#b8j z-C>4y`_^3n;(l*UR+@4d0Gi?lDfut^=37O{=~ zjNCB!q-BUjxNFiSSQ3KqM84Bq%MRq@ntmz?E1Yz<31`x>FbxB)+>)VDYONw&=YX1+ zxjZk$Lyy8XOLP})?z2<`b;CPJyUHF}CM*8#EU`&DElA>A>D|kW$H7Sw$_e5hQSwf& zZ(UDv%6^89HT#_0JZvXBTis4nPkA$3L)1qBZepq_S|0K5`p4JW7Uzd`tBk8&p!HtI zVeM%i2#od>t#`-2&d=u1M^e57qKK}D9(d70Fy^iHHV7xB%Xk1Ar(rghi*wS^)&-73 zgY)cAh;^C?e5zxR7?o0&YtXXT@mf}{+Ra<$a6Q@WyB^tctgxn#lv3C-{0#N<&QPyJ zOa7d)>40@|-UXKS2+_Lh_?&t>o?<_uorq4%*)(pOH*sACu`lbPSt_OpqlJ2y%=t*u z>R5=oNzN&{B6an>+}cIh0udLdISbQ<`ff_LFG6$;WAf~%L|1jWXjk3RxIknAqBr2m zUnjW@dvtGp>ZOZ^ganuNNh`QWh!2P#LcWRcPnNeX2$nJUIJvi;h$z16++=0rUX%%+4&83Lmrq z`qwZi4+2%OOkLBslulySrnSxEo8nnlA#>5T$O}xD!tzH(4yHPNhh_hpO?k`v>3`$15>@J*`k03SeN40FNx#>^4KvhOr z+4QRybHV5~i<`*k=eMOj#o_=tCKDkm8ZfXpL!}jEUnSYl=3zK?X)aRk$+(NH( z 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 literal 0 HcmV?d00001 diff --git a/doc/images/check_inProgress_orders.png b/doc/images/check_inProgress_orders.png new file mode 100644 index 0000000000000000000000000000000000000000..5d28abf380109bdf0a7654912747f7f87cf94185 GIT binary patch literal 6638 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 literal 0 HcmV?d00001 diff --git a/doc/images/externalSPDeploymentReq.png b/doc/images/externalSPDeploymentReq.png new file mode 100644 index 0000000000000000000000000000000000000000..5438fdd051f6acb048e33188380db5b194886cd0 GIT binary patch literal 16880 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 literal 0 HcmV?d00001 diff --git a/doc/images/index_intro_architecture.png b/doc/images/index_intro_architecture.png new file mode 100644 index 0000000000000000000000000000000000000000..635912d49ddc2c3b70b283b2139a8430b6a0e210 GIT binary patch literal 51604 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%0A*vDQOz4WF5bASbsQC-CC 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

o?e-c&fPdnM4etL=US(nEBL#!M1- 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