From 7dab5e1a91e29cfad83fcc1d364c93cf054488ac Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Max=20Str=C3=BCbing?= Date: Wed, 30 Aug 2023 11:26:44 +0200 Subject: [PATCH 01/12] feat: add ai-navigator-app * Closes D2IQ-98636 --- .../0.1.0/ai-navigator-app.yaml | 52 +++++++++++++++++++ .../ai-navigator-app/0.1.0/kustomization.yaml | 2 + services/ai-navigator-app/metadata.yaml | 7 ++- 3 files changed, 60 insertions(+), 1 deletion(-) create mode 100644 services/ai-navigator-app/0.1.0/ai-navigator-app.yaml diff --git a/services/ai-navigator-app/0.1.0/ai-navigator-app.yaml b/services/ai-navigator-app/0.1.0/ai-navigator-app.yaml new file mode 100644 index 000000000..52ae1ed44 --- /dev/null +++ b/services/ai-navigator-app/0.1.0/ai-navigator-app.yaml @@ -0,0 +1,52 @@ +# TODO: Should these be separate files? +--- +apiVersion: v1 +kind: ConfigMap +metadata: + name: ai-navigator-app-config + namespace: kommander +data: + CHATBOT_URL: "https://chatbot.api.d2iq.com/v1/chat" + AUTHORIZER_URL: "https://auth.api.d2iq.com" + LICENSE_NAMESPACE: "kommander" # TODO: use kommander namspace, is this hardcoded ok? +--- +apiVersion: apps/v1 +kind: Deployment +metadata: + name: ai-navigator-app + namespace: kommander # TODO: use kommander namspace, is this hardcoded ok? + labels: + app: ai-navigator-app +spec: + replicas: 1 + selector: + matchLabels: + app: ai-navigator-app + template: + metadata: + labels: + app: ai-navigator-app + spec: + containers: + - name: ai-navigator-app + image: mesosphere/ai-navigator-app:development # TODO: Version + envFrom: + - configMapRef: + name: ai-navigator-app-config + ports: + - containerPort: 8080 + name: http +--- +apiVersion: v1 +kind: Service +metadata: + name: ai-navigator-app + namespace: kommander +spec: + selector: + app: ai-navigator-app + ports: + - name: service-port + protocol: TCP + port: 80 + targetPort: http diff --git a/services/ai-navigator-app/0.1.0/kustomization.yaml b/services/ai-navigator-app/0.1.0/kustomization.yaml index 4ea1bccaa..9ed57849c 100644 --- a/services/ai-navigator-app/0.1.0/kustomization.yaml +++ b/services/ai-navigator-app/0.1.0/kustomization.yaml @@ -1,2 +1,4 @@ apiVersion: kustomize.config.k8s.io/v1beta1 kind: Kustomization +resources: + - ai-navigator-app.yaml diff --git a/services/ai-navigator-app/metadata.yaml b/services/ai-navigator-app/metadata.yaml index decc4e72e..45b7f2107 100644 --- a/services/ai-navigator-app/metadata.yaml +++ b/services/ai-navigator-app/metadata.yaml @@ -1,8 +1,13 @@ displayName: DKP AI Navigator -description: DKP AI Navigator is D2iQ’s cool chatbot tool +description: DKP AI Navigator is D2iQ’s cool chatbot tool - TODO CHANGE category: - tools type: platform allowMultipleInstances: false scope: - workspace +overview: |- + ## Overview + DKP AI Navigator is D2iQ’s cool chatbot tool - TODO CHANGE +icon: PHN2ZyB2ZXJzaW9uPSIxLjEiIGlkPSJMYXllcl8xIiB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciIHhtbG5zOnhsaW5rPSJodHRwOi8vd3d3LnczLm9yZy8xOTk5L3hsaW5rIiB4PSIwcHgiIHk9IjBweCIKCSB2aWV3Qm94PSIwIDAgNzAwIDcwMCIgc3R5bGU9ImVuYWJsZS1iYWNrZ3JvdW5kOm5ldyAwIDAgNzAwIDcwMDsiIHhtbDpzcGFjZT0icHJlc2VydmUiPgo8c3R5bGUgdHlwZT0idGV4dC9jc3MiPgoJLnN0MHtmaWxsOiNENUM5RUQ7fQoJLnN0MXtmaWxsOiMzMzAwNzI7fQoJLnN0MntvcGFjaXR5OjAuODU7ZmlsbDojMzMwMDcxO30KCS5zdDN7ZmlsbDojNDYxODg1O30KCS5zdDR7ZmlsbDojNjQzQ0EyO30KCS5zdDV7ZmlsbDojOTY3OEQzO30KCS5zdDZ7ZmlsbDojRkZENzMzO30KCS5zdDd7ZmlsbDojRkZDRDAwO30KCS5zdDh7ZmlsbDojRkZFQjk5O30KCS5zdDl7ZmlsbDojRkZGNUNDO30KCS5zdDEwe2ZpbGw6IzlFQThGRjt9Cgkuc3QxMXtmaWxsOiMzRDUyRkY7fQoJLnN0MTJ7ZmlsbDojQjFCQUZGO30KCS5zdDEze2ZpbGw6I0Q4RENGRjt9Cgkuc3QxNHtvcGFjaXR5OjAuMzt9Cgkuc3QxNXtmaWxsOiMzMzAwNzE7fQoJLnN0MTZ7b3BhY2l0eTowLjc7ZmlsbDp1cmwoI3NfMDAwMDAxMDc1NzA5MjAyODI0OTA2Mzc0NjAwMDAwMDU0OTEyMDQ2OTAyMjU3MjI4MDJfKTtlbmFibGUtYmFja2dyb3VuZDpuZXcgICAgO30KCS5zdDE3e29wYWNpdHk6MC4yO2ZpbGw6dXJsKCNTVkdJRF8xXyk7ZW5hYmxlLWJhY2tncm91bmQ6bmV3ICAgIDt9Cgkuc3QxOHtjbGlwLXBhdGg6dXJsKCNTVkdJRF8wMDAwMDA1NDk4MTAyOTM4Mzc4OTkzMjQ5MDAwMDAxNDgxNjgwMDUwODk1OTU3MTMyOV8pO30KPC9zdHlsZT4KPHJlY3QgY2xhc3M9InN0MCIgd2lkdGg9IjcwMCIgaGVpZ2h0PSI3MDAiLz4KPGc+Cgk8ZyBpZD0iYSI+Cgk8L2c+Cgk8ZyBpZD0iYiI+CgkJPGcgaWQ9ImMiPgoJCQk8cGF0aCBjbGFzcz0ic3QxIiBkPSJNNDY2LjksMTU5LjljMC02NC40LTUyLjQtMTE2LjYtMTE2LjYtMTE2LjZTMjMzLjYsOTUuNiwyMzMuNiwxNTkuOWMwLDAuNS0xLjgsNDkuMywzMi4yLDg0LjRsMS41LDEuNgoJCQkJYzMyLjgsMzMuOSwzNS42LDM2LjYsMzUuNiw1Ny41djhjMCw3LjgsMjQuNSwxMS45LDQ3LjUsMTEuOWMyMywwLDQ3LjUtNC4yLDQ3LjUtMTEuOXYtOGMwLTIwLjksMi43LTIzLjcsMzUuNi01Ny41bDEuNS0xLjYKCQkJCUM0NjguNiwyMDkuMiw0NjYuOSwxNjAuMyw0NjYuOSwxNTkuOUw0NjYuOSwxNTkuOXogTTMyMiwxMjUuMmMwLTIuNSwyLjEtNC42LDQuNi00LjZzNC42LDIuMSw0LjYsNC42YzAsMi41LTIuMSw0LjYtNC42LDQuNgoJCQkJUzMyMiwxMjcuNywzMjIsMTI1LjJ6IE0zMzEuMywxNDkuMWMwLDIuNS0yLjEsNC42LTQuNiw0LjZjLTIuNSwwLTQuNi0yLjEtNC42LTQuNmMwLTIuNSwyLjEtNC42LDQuNi00LjYKCQkJCUMzMjkuMiwxNDQuNCwzMzEuMywxNDYuNSwzMzEuMywxNDkuMXogTTMyNi42LDExOC42Yy0zLjYsMC02LjUsMi45LTYuNSw2LjVjMCwzLjMsMi40LDYsNS42LDYuNWMwLDAuMSwwLDAuMSwwLDAuMnYxMC44CgkJCQljLTMuMiwwLjUtNS42LDMuMi01LjYsNi41YzAsMy42LDIuOSw2LjUsNi41LDYuNXM2LjUtMi45LDYuNS02LjVjMC0zLjMtMi40LTYtNS42LTYuNXYtMTAuOGMwLTAuMSwwLTAuMSwwLTAuMgoJCQkJYzIuOC0wLjQsNS4yLTIuNiw1LjYtNS41aDE2djQ2aC0xNGMtNS4zLDAtOS41LDQuMi05LjUsOS41djguNWMtMy4yLDAuNS01LjYsMy4yLTUuNiw2LjVjMCwzLjYsMi45LDYuNSw2LjUsNi41czYuNS0yLjksNi41LTYuNQoJCQkJYzAtMy4zLTIuNC02LTUuNi02LjV2LTguNWMwLTQuMSwzLjQtNy41LDcuNS03LjVoMTR2MzYuNmMwLDAuMiwwLDAuMywwLDAuNWMtMC4yLDgtNi44LDE0LjQtMTQuOCwxNC40Yy03LjUsMC0xMy44LTUuNi0xNC43LTEzCgkJCQljMC0wLjMtMC4yLTAuNS0wLjQtMC43Yy0wLjItMC4xLTAuMy0wLjItMC41LTAuMmMtMC4xLDAtMC4yLDAtMC4zLDBjLTEuNCwwLjQtMi44LDAuNi00LjIsMC42Yy04LjQsMC0xNS4zLTYuOC0xNS4zLTE1LjMKCQkJCWMwLTEuNiwwLjMtMy4zLDAuNy00LjhjMC4xLTAuMywwLjEtMC41LTAuMS0wLjdzLTAuMy0wLjQtMC42LTAuNWMtOC0xLjktMTMuNi04LjktMTMuNi0xNy4xYzAtNy44LDQuOS0xNC41LDEyLjQtMTYuOAoJCQkJYzAuMy0wLjEsMC41LTAuMywwLjYtMC43YzAuMS0wLjQsMC0wLjYtMC4yLTAuOWMtMi40LTIuNi0zLjgtNi0zLjgtOS42YzAtNy40LDUuOC0xMy42LDEzLjEtMTRjMC4zLDAsMC42LTAuMiwwLjgtMC41CgkJCQljMC4xLTAuMywwLjEtMC42LDAtMC45Yy0xLjUtMi4yLTIuMi00LjgtMi4yLTcuNWMwLTcuNyw2LjMtMTQsMTQuMS0xNGgwLjFjMC40LDAsMC45LTAuMywwLjktMC44YzEuMi02LjcsNi45LTExLjcsMTMuOC0xMS43CgkJCQljNy42LDAsMTMuNyw2LDE0LDEzLjZjMCwwLjEsMCwwLjMsMCwwLjV2MTMuOWgtMTUuOEMzMzIuNiwxMjEsMzI5LjksMTE4LjYsMzI2LjYsMTE4LjZMMzI2LjYsMTE4LjZ6IE0zMjYuNiwxOTIKCQkJCWMyLjUsMCw0LjYsMi4xLDQuNiw0LjZzLTIuMSw0LjYtNC42LDQuNnMtNC42LTIuMS00LjYtNC42UzMyNC4xLDE5MiwzMjYuNiwxOTJ6IE00MDEuMywxOTAuOWMtMC4zLDAuMS0wLjUsMC4yLTAuNiwwLjUKCQkJCWMtMC4xLDAuMi0wLjEsMC41LTAuMSwwLjdjMC41LDEuNiwwLjcsMy4yLDAuNyw0LjhjMCw4LjQtNi44LDE1LjMtMTUuMywxNS4zYy0xLjQsMC0yLjgtMC4yLTQuMi0wLjZjLTAuMy0wLjEtMC41LDAtMC44LDAuMQoJCQkJYy0wLjIsMC4xLTAuNCwwLjQtMC40LDAuN2MtMC45LDcuNS03LjMsMTMtMTQuNywxM2MtOCwwLTE0LjYtNi40LTE0LjgtMTQuNGMwLTAuMSwwLTAuMywwLTAuNXYtMzYuNWgxNGM0LjEsMCw3LjUsMy40LDcuNSw3LjUKCQkJCXY4LjVjLTMuMiwwLjUtNS42LDMuMi01LjYsNi41YzAsMy42LDIuOSw2LjUsNi41LDYuNXM2LjUtMi45LDYuNS02LjVjMC0zLjMtMi40LTYtNS42LTYuNXYtOC41YzAtNS4zLTQuMi05LjUtOS41LTkuNWgtMTR2LTIyCgkJCQloMTZjMC41LDMuMiwzLjIsNS42LDYuNSw1LjZjMy42LDAsNi41LTIuOSw2LjUtNi41YzAtMy4zLTIuNC02LTUuNi02LjV2LTExYzMuMi0wLjUsNS42LTMuMiw1LjYtNi41YzAtMy42LTIuOS02LjUtNi41LTYuNQoJCQkJcy02LjUsMi45LTYuNSw2LjVjMCwzLjMsMi40LDYsNS42LDYuNXYxMWMtMi44LDAuNC01LDIuNi01LjUsNS41aC0xNnYtMzcuOGMwLTAuMiwwLTAuMywwLTAuNWMwLjItNy41LDYuNC0xMy42LDE0LTEzLjYKCQkJCWM2LjgsMCwxMi42LDQuOSwxMy44LDExLjdjMC4xLDAuNSwwLjUsMC44LDAuOSwwLjhoMC4yYzcuNywwLDE0LDYuMywxNCwxNGMwLDIuNi0wLjcsNS4zLTIuMiw3LjVjLTAuMiwwLjMtMC4yLDAuNiwwLDAuOQoJCQkJYzAuMSwwLjMsMC40LDAuNSwwLjgsMC41YzcuNCwwLjQsMTMuMSw2LjUsMTMuMSwxNGMwLDMuNi0xLjQsNi45LTMuOCw5LjZjLTAuMiwwLjItMC4zLDAuNi0wLjIsMC45YzAuMSwwLjMsMC4zLDAuNiwwLjYsMC43CgkJCQljNy40LDIuMywxMi40LDkuMiwxMi40LDE2LjhDNDE0LjksMTgyLDQwOS4zLDE4OSw0MDEuMywxOTAuOUw0MDEuMywxOTAuOXogTTM3My43LDE5MmMyLjUsMCw0LjYsMi4xLDQuNiw0LjZzLTIuMSw0LjYtNC42LDQuNgoJCQkJYy0yLjUsMC00LjYtMi4xLTQuNi00LjZTMzcxLjEsMTkyLDM3My43LDE5MnogTTM3OC4zLDE0OS4xYzAsMi41LTIuMSw0LjYtNC42LDQuNmMtMi41LDAtNC42LTIuMS00LjYtNC42YzAtMi41LDIuMS00LjYsNC42LTQuNgoJCQkJQzM3Ni4yLDE0NC41LDM3OC4zLDE0Ni41LDM3OC4zLDE0OS4xeiBNMzY5LDEyNS4yYzAtMi41LDIuMS00LjYsNC42LTQuNmMyLjUsMCw0LjYsMi4xLDQuNiw0LjZjMCwyLjUtMi4xLDQuNi00LjYsNC42CgkJCQlDMzcxLjEsMTI5LjcsMzY5LDEyNy43LDM2OSwxMjUuMnoiLz4KCQkJPGc+CgkJCQk8cGF0aCBpZD0iZCIgY2xhc3M9InN0MiIgZD0iTTQ1Nyw0NDAuOWwxMDYuOCw5Mi41TDQ1Nyw2MjUuOEgyNDMuMmwtMTA2LjgtOTIuNWwxMDYuOC05Mi41TDQ1Nyw0NDAuOUw0NTcsNDQwLjl6Ii8+CgkJCQk8cGF0aCBpZD0iZSIgY2xhc3M9InN0MyIgZD0iTTEzNi42LDUzMy40djM1LjRsMTA2LjgsOTIuNXYtMzUuNEwxMzYuNiw1MzMuNHoiLz4KCQkJCTxyZWN0IGlkPSJmIiB4PSIyNDMiIHk9IjYyNS43IiBjbGFzcz0ic3Q0IiB3aWR0aD0iMjEzLjgiIGhlaWdodD0iMzUuNCIvPgoJCQkJPHBhdGggaWQ9ImciIGNsYXNzPSJzdDUiIGQ9Ik01NjMuNiw1MzMuNHYzNS40bC0xMDYuOCw5Mi41di0zNS40TDU2My42LDUzMy40eiIvPgoJCQk8L2c+CgkJCTxnPgoJCQkJPHBhdGggaWQ9ImgiIGNsYXNzPSJzdDYiIGQ9Ik0xMzYuMiw0NjguNHYzNS40bDEwNi44LDkyLjV2LTM1LjRMMTM2LjIsNDY4LjR6Ii8+CgkJCQk8cGF0aCBpZD0iaSIgY2xhc3M9InN0NyIgZD0iTTQ1NywzNzYuMWwxMDYuOSw5Mi41bC0xMDYuOCw5Mi41SDI0My4ybC0xMDctOTIuN2wxMDctOTIuMkw0NTcsMzc2LjFMNDU3LDM3Ni4xeiIvPgoJCQkJPHJlY3QgaWQ9ImoiIHg9IjI0MyIgeT0iNTYxLjEiIGNsYXNzPSJzdDgiIHdpZHRoPSIyMTMuOCIgaGVpZ2h0PSIzNS40Ii8+CgkJCQk8cGF0aCBpZD0iayIgY2xhc3M9InN0OSIgZD0iTTU2My42LDQ2OC40djM1LjRsLTEwNi44LDkyLjV2LTM1LjRMNTYzLjYsNDY4LjRMNTYzLjYsNDY4LjR6Ii8+CgkJCTwvZz4KCQkJPGc+CgkJCQk8cGF0aCBpZD0ibCIgY2xhc3M9InN0MTAiIGQ9Ik00NTcsMzExLjRsMTA2LjgsOTIuNUw0NTcsNDk2LjNIMjQzLjJsLTEwNi44LTkyLjVsMTA3LTkyLjVINDU3TDQ1NywzMTEuNHoiLz4KCQkJCTxwYXRoIGlkPSJtIiBjbGFzcz0ic3QxMSIgZD0iTTEzNi42LDQwMy44djM1LjRsMTA2LjksOTIuNXYtMzUuNEwxMzYuNiw0MDMuOHoiLz4KCQkJCTxyZWN0IGlkPSJuIiB4PSIyNDMuMyIgeT0iNDk2LjMiIGNsYXNzPSJzdDEyIiB3aWR0aD0iMjEzLjgiIGhlaWdodD0iMzUuNCIvPgoJCQkJPHBhdGggaWQ9Im8iIGNsYXNzPSJzdDEzIiBkPSJNNTYzLjYsNDAzLjh2MzUuNGwtMTA2LjksOTIuNXYtMzUuNEw1NjMuNiw0MDMuOHoiLz4KCQkJPC9nPgoJCQk8ZyBjbGFzcz0ic3QxNCI+CgkJCQk8cGF0aCBpZD0icCIgZD0iTTI0My4zLDUzMS43bDIxMy43LDAuNmwtMzMuMSwyOC43SDI0My4ybC0xMDctOTIuN2wxNy0xNC43TDI0My4zLDUzMS43TDI0My4zLDUzMS43eiIvPgoJCQk8L2c+CgkJCTxnPgoJCQkJPHBhdGggaWQ9InEiIGNsYXNzPSJzdDE1IiBkPSJNMjQzLjMsNTk2LjVsMjEzLjcsMC42bC0zMy4xLDI4LjdIMjQzLjJsLTEwNy05Mi43bDE3LTE0LjdMMjQzLjMsNTk2LjV6Ii8+CgkJCTwvZz4KCQkJCgkJCQk8cmFkaWFsR3JhZGllbnQgaWQ9InNfMDAwMDAxNzY3MjY3NTE0NDEzNTYwNDk3MDAwMDAwMDY1NTE1MjIyNzgyODY4OTQ5ODFfIiBjeD0iLTQ2MDQuMzQwOCIgY3k9Ii0yODUuNjU1IiByPSIxLjM2MjgiIGdyYWRpZW50VHJhbnNmb3JtPSJtYXRyaXgoLTEzNC41NSAwIDAgLTY3LjczIC02MTkxNjIuMzEyNSAtMTg5NDQuNTk3NykiIGdyYWRpZW50VW5pdHM9InVzZXJTcGFjZU9uVXNlIj4KCQkJCTxzdG9wICBvZmZzZXQ9IjAiIHN0eWxlPSJzdG9wLWNvbG9yOiNGRkZGRkYiLz4KCQkJCTxzdG9wICBvZmZzZXQ9IjAuMTEiIHN0eWxlPSJzdG9wLWNvbG9yOiNGRkZGRkY7c3RvcC1vcGFjaXR5OjAuOTgiLz4KCQkJCTxzdG9wICBvZmZzZXQ9IjAuMjQiIHN0eWxlPSJzdG9wLWNvbG9yOiNGRkZGRkY7c3RvcC1vcGFjaXR5OjAuOTMiLz4KCQkJCTxzdG9wICBvZmZzZXQ9IjAuMzciIHN0eWxlPSJzdG9wLWNvbG9yOiNGRkZGRkY7c3RvcC1vcGFjaXR5OjAuODUiLz4KCQkJCTxzdG9wICBvZmZzZXQ9IjAuNSIgc3R5bGU9InN0b3AtY29sb3I6I0ZGRkZGRjtzdG9wLW9wYWNpdHk6MC43MyIvPgoJCQkJPHN0b3AgIG9mZnNldD0iMC42MyIgc3R5bGU9InN0b3AtY29sb3I6I0ZGRkZGRjtzdG9wLW9wYWNpdHk6MC41NyIvPgoJCQkJPHN0b3AgIG9mZnNldD0iMC43NyIgc3R5bGU9InN0b3AtY29sb3I6I0ZGRkZGRjtzdG9wLW9wYWNpdHk6MC4zOSIvPgoJCQkJPHN0b3AgIG9mZnNldD0iMC45MSIgc3R5bGU9InN0b3AtY29sb3I6I0ZGRkZGRjtzdG9wLW9wYWNpdHk6MC4xNyIvPgoJCQkJPHN0b3AgIG9mZnNldD0iMSIgc3R5bGU9InN0b3AtY29sb3I6I0ZGRkZGRjtzdG9wLW9wYWNpdHk6MCIvPgoJCQk8L3JhZGlhbEdyYWRpZW50PgoJCQkKCQkJCTxlbGxpcHNlIGlkPSJzIiBzdHlsZT0ib3BhY2l0eTowLjc7ZmlsbDp1cmwoI3NfMDAwMDAxNzY3MjY3NTE0NDEzNTYwNDk3MDAwMDAwMDY1NTE1MjIyNzgyODY4OTQ5ODFfKTtlbmFibGUtYmFja2dyb3VuZDpuZXcgICAgOyIgY3g9IjM1MC40IiBjeT0iNDAzLjgiIHJ4PSIxODMuNiIgcnk9IjkyLjUiLz4KCQkJCgkJCQk8cmFkaWFsR3JhZGllbnQgaWQ9IlNWR0lEXzFfIiBjeD0iMzUwLjUyNTkiIGN5PSIxNTQ4LjQwNzMiIHI9IjYzLjc1NjciIGdyYWRpZW50VHJhbnNmb3JtPSJtYXRyaXgoMSAwIDAgMC4zNSAwIC0xMzYuOTc4OCkiIGdyYWRpZW50VW5pdHM9InVzZXJTcGFjZU9uVXNlIj4KCQkJCTxzdG9wICBvZmZzZXQ9IjAiIHN0eWxlPSJzdG9wLWNvbG9yOiMzMzAwNzIiLz4KCQkJCTxzdG9wICBvZmZzZXQ9IjAuMTgiIHN0eWxlPSJzdG9wLWNvbG9yOiMzMzAwNzI7c3RvcC1vcGFjaXR5OjAuOTYiLz4KCQkJCTxzdG9wICBvZmZzZXQ9IjAuMzciIHN0eWxlPSJzdG9wLWNvbG9yOiMzMzAwNzI7c3RvcC1vcGFjaXR5OjAuODUiLz4KCQkJCTxzdG9wICBvZmZzZXQ9IjAuNTYiIHN0eWxlPSJzdG9wLWNvbG9yOiMzMzAwNzI7c3RvcC1vcGFjaXR5OjAuNjYiLz4KCQkJCTxzdG9wICBvZmZzZXQ9IjAuNzciIHN0eWxlPSJzdG9wLWNvbG9yOiMzMzAwNzI7c3RvcC1vcGFjaXR5OjAuMzkiLz4KCQkJCTxzdG9wICBvZmZzZXQ9IjAuOTciIHN0eWxlPSJzdG9wLWNvbG9yOiMzMzAwNzI7c3RvcC1vcGFjaXR5OjYuMDAwMDAwZS0wMiIvPgoJCQkJPHN0b3AgIG9mZnNldD0iMSIgc3R5bGU9InN0b3AtY29sb3I6IzMzMDA3MjtzdG9wLW9wYWNpdHk6MCIvPgoJCQk8L3JhZGlhbEdyYWRpZW50PgoJCQk8ZWxsaXBzZSBjbGFzcz0ic3QxNyIgY3g9IjM1MC41IiBjeT0iNDA1IiByeD0iNjQuMiIgcnk9IjIyLjEiLz4KCQkJPGc+CgkJCQk8ZWxsaXBzZSBjbGFzcz0ic3QxIiBjeD0iMzUwLjIiIGN5PSIzODMuMiIgcng9IjMyLjciIHJ5PSI3LjciLz4KCQkJCTxwYXRoIGNsYXNzPSJzdDEiIGQ9Ik0zNTAuMiwzOTEuOGMtMTYuNywwLTMzLjctMi45LTMzLjctOC42czE2LjktOC42LDMzLjctOC42YzE2LjcsMCwzMy43LDIuOSwzMy43LDguNgoJCQkJCUMzODMuOSwzODguOSwzNjYuOSwzOTEuOCwzNTAuMiwzOTEuOHogTTM1MC4yLDM3Ni41Yy0xOS43LDAtMzEuOCwzLjktMzEuOCw2LjdjMCwyLjgsMTIuMSw2LjcsMzEuOCw2LjcKCQkJCQljMTkuNywwLDMxLjgtMy45LDMxLjgtNi43QzM4MiwzODAuNCwzNjkuOCwzNzYuNSwzNTAuMiwzNzYuNXoiLz4KCQkJPC9nPgoJCQk8cGF0aCBjbGFzcz0ic3QxIiBkPSJNMzUwLjIsNDAyLjNjLTIuOCwwLTUuNSwwLjMtNy4yLDAuN2MtMS41LDAuNC0yLjQsMC45LTIuNCwxLjVjMCwxLjMsNC4zLDIuMiw5LjYsMi4yYzUuMywwLDkuNi0xLjEsOS42LTIuMgoJCQkJYzAtMC43LTEuNC0xLjQtMy41LTEuOEMzNTQuNiw0MDIuNCwzNTIuNSw0MDIuMywzNTAuMiw0MDIuM0wzNTAuMiw0MDIuM3oiLz4KCQkJPGVsbGlwc2UgY2xhc3M9InN0MSIgY3g9IjM1MC4yIiBjeT0iMzExLjQiIHJ4PSI0Ni41IiByeT0iMTAuOSIvPgoJCQk8Zz4KCQkJCTxlbGxpcHNlIGNsYXNzPSJzdDEiIGN4PSIzNTAuNyIgY3k9IjM0Ny40IiByeD0iNDMiIHJ5PSIxMC4xIi8+CgkJCQk8cGF0aCBjbGFzcz0ic3QxIiBkPSJNMzUwLjcsMzU4LjZjLTIxLjQsMC00NC0zLjktNDQtMTFzMjIuNi0xMSw0NC0xMWMyMS40LDAsNDQsMy45LDQ0LDExUzM3Mi4xLDM1OC42LDM1MC43LDM1OC42egoJCQkJCSBNMzUwLjcsMzM4LjRjLTI0LjcsMC00Miw0LjgtNDIsOS4yYzAsNC4zLDE3LjIsOS4yLDQyLDkuMmMyNC43LDAsNDItNC44LDQyLTkuMkMzOTIuNywzNDMuMSwzNzUuNSwzMzguNCwzNTAuNywzMzguNHoiLz4KCQkJPC9nPgoJCQk8Zz4KCQkJCTxwYXRoIGNsYXNzPSJzdDEiIGQ9Ik0zNTAuMiwzNjFjLTAuNSwwLTAuOS0wLjQtMC45LTAuOXYtMi40YzAtMC41LDAuNC0wLjksMC45LTAuOWMwLjUsMCwwLjksMC40LDAuOSwwLjl2Mi40CgkJCQkJQzM1MS4yLDM2MC42LDM1MC43LDM2MSwzNTAuMiwzNjF6Ii8+CgkJCQk8cGF0aCBjbGFzcz0ic3QxIiBkPSJNMzUwLjIsMzc3LjVjLTAuNSwwLTAuOS0wLjQtMC45LTAuOXYtNC4xYzAtMC41LDAuNC0wLjksMC45LTAuOWMwLjUsMCwwLjksMC40LDAuOSwwLjl2NC4xCgkJCQkJQzM1MS4yLDM3Ny4xLDM1MC43LDM3Ny41LDM1MC4yLDM3Ny41eiBNMzUwLjIsMzY5LjNjLTAuNSwwLTAuOS0wLjQtMC45LTAuOXYtNC4xYzAtMC41LDAuNC0wLjksMC45LTAuOWMwLjUsMCwwLjksMC40LDAuOSwwLjkKCQkJCQl2NC4xQzM1MS4yLDM2OC45LDM1MC43LDM2OS4zLDM1MC4yLDM2OS4zeiIvPgoJCQkJPHBhdGggY2xhc3M9InN0MSIgZD0iTTM1MC4yLDM4NC4xYy0wLjUsMC0wLjktMC40LTAuOS0wLjl2LTIuNGMwLTAuNSwwLjQtMC45LDAuOS0wLjljMC41LDAsMC45LDAuNCwwLjksMC45djIuNAoJCQkJCUMzNTEuMiwzODMuNywzNTAuNywzODQuMSwzNTAuMiwzODQuMXoiLz4KCQkJPC9nPgoJCQk8Zz4KCQkJCTxwYXRoIGNsYXNzPSJzdDAiIGQ9Ik0zNTAuMiwyODcuN2MtMC41LDAtMC45LTAuNC0wLjktMC45di0yLjRjMC0wLjUsMC40LTAuOSwwLjktMC45YzAuNSwwLDAuOSwwLjQsMC45LDAuOXYyLjQKCQkJCQlDMzUxLjIsMjg3LjIsMzUwLjcsMjg3LjcsMzUwLjIsMjg3Ljd6Ii8+CgkJCQk8cGF0aCBjbGFzcz0ic3QwIiBkPSJNMzUwLjIsMzA0LjJjLTAuNSwwLTAuOS0wLjQtMC45LTAuOXYtNC4xYzAtMC41LDAuNC0wLjksMC45LTAuOWMwLjUsMCwwLjksMC40LDAuOSwwLjl2NC4xCgkJCQkJQzM1MS4yLDMwMy44LDM1MC43LDMwNC4yLDM1MC4yLDMwNC4yeiBNMzUwLjIsMjk2Yy0wLjUsMC0wLjktMC40LTAuOS0wLjl2LTQuMmMwLTAuNSwwLjQtMC45LDAuOS0wLjljMC41LDAsMC45LDAuNCwwLjksMC45CgkJCQkJdjQuMUMzNTEuMiwyOTUuNSwzNTAuNywyOTYsMzUwLjIsMjk2eiIvPgoJCQkJPHBhdGggY2xhc3M9InN0MCIgZD0iTTM1MC4yLDMxMC44Yy0wLjUsMC0wLjktMC40LTAuOS0wLjl2LTIuNGMwLTAuNSwwLjQtMC45LDAuOS0wLjljMC41LDAsMC45LDAuNCwwLjksMC45djIuNAoJCQkJCUMzNTEuMiwzMTAuNCwzNTAuNywzMTAuOCwzNTAuMiwzMTAuOHoiLz4KCQkJPC9nPgoJCQk8Zz4KCQkJCTxwYXRoIGNsYXNzPSJzdDEiIGQ9Ik0zNTAuMiwzMjUuN2MtMC41LDAtMC45LTAuNC0wLjktMC45di0yLjRjMC0wLjUsMC40LTAuOSwwLjktMC45YzAuNSwwLDAuOSwwLjQsMC45LDAuOXYyLjQKCQkJCQlDMzUxLjIsMzI1LjIsMzUwLjcsMzI1LjcsMzUwLjIsMzI1Ljd6Ii8+CgkJCQk8cGF0aCBjbGFzcz0ic3QxIiBkPSJNMzUwLjIsMzQyLjNjLTAuNSwwLTAuOS0wLjQtMC45LTAuOXYtNC4yYzAtMC41LDAuNC0wLjksMC45LTAuOWMwLjUsMCwwLjksMC40LDAuOSwwLjl2NC4xCgkJCQkJQzM1MS4yLDM0MS45LDM1MC43LDM0Mi4zLDM1MC4yLDM0Mi4zeiBNMzUwLjIsMzM0Yy0wLjUsMC0wLjktMC40LTAuOS0wLjl2LTQuMWMwLTAuNSwwLjQtMC45LDAuOS0wLjljMC41LDAsMC45LDAuNCwwLjksMC45CgkJCQkJdjQuMUMzNTEuMiwzMzMuNSwzNTAuNywzMzQsMzUwLjIsMzM0eiIvPgoJCQkJPHBhdGggY2xhc3M9InN0MSIgZD0iTTM1MC4yLDM0OC45Yy0wLjUsMC0wLjktMC40LTAuOS0wLjl2LTIuNGMwLTAuNSwwLjQtMC45LDAuOS0wLjljMC41LDAsMC45LDAuNCwwLjksMC45djIuNAoJCQkJCUMzNTEuMiwzNDguNCwzNTAuNywzNDguOSwzNTAuMiwzNDguOXoiLz4KCQkJPC9nPgoJCQk8Zz4KCQkJCTxnPgoJCQkJCTxkZWZzPgoJCQkJCQk8cGF0aCBpZD0iU1ZHSURfMDAwMDAwMDY2ODExMjI5NzY3MDY1NjU5MTAwMDAwMDM5MzE3NTk1OTIwOTk0NDYxNjZfIiBkPSJNMzUwLjIsMzkwLjNjLTIuOCwwLTUuNSwxMi4yLTcuMiwxMi43CgkJCQkJCQljLTEuNSwwLjQtMi40LDAuOS0yLjQsMS41YzAsMS4zLDQuMywyLjIsOS42LDIuMmM1LjMsMCw5LjYtMS4xLDkuNi0yLjJjMC0wLjctMS40LTEuNC0zLjUtMS44CgkJCQkJCQlDMzU0LjYsNDAyLjQsMzUyLjUsMzkwLjMsMzUwLjIsMzkwLjNMMzUwLjIsMzkwLjN6Ii8+CgkJCQkJPC9kZWZzPgoJCQkJCTxjbGlwUGF0aCBpZD0iU1ZHSURfMDAwMDAwMTYwNTgzMDcxOTgxMDEyNTgyNDAwMDAwMDc1MjAxMDE4NzEzMzc5NjExMDRfIj4KCQkJCQkJPHVzZSB4bGluazpocmVmPSIjU1ZHSURfMDAwMDAwMDY2ODExMjI5NzY3MDY1NjU5MTAwMDAwMDM5MzE3NTk1OTIwOTk0NDYxNjZfIiAgc3R5bGU9Im92ZXJmbG93OnZpc2libGU7Ii8+CgkJCQkJPC9jbGlwUGF0aD4KCQkJCQk8ZyBzdHlsZT0iY2xpcC1wYXRoOnVybCgjU1ZHSURfMDAwMDAwMTYwNTgzMDcxOTgxMDEyNTgyNDAwMDAwMDc1MjAxMDE4NzEzMzc5NjExMDRfKTsiPgoJCQkJCQk8Zz4KCQkJCQkJCTxwYXRoIGNsYXNzPSJzdDEiIGQ9Ik0zNTAuMiwzOTQuN2MtMC41LDAtMC45LTAuNC0wLjktMC45di0yLjRjMC0wLjUsMC40LTAuOSwwLjktMC45YzAuNSwwLDAuOSwwLjQsMC45LDAuOXYyLjQKCQkJCQkJCQlDMzUxLjIsMzk0LjIsMzUwLjcsMzk0LjcsMzUwLjIsMzk0Ljd6Ii8+CgkJCQkJCQk8cGF0aCBjbGFzcz0ic3QxIiBkPSJNMzUwLjIsNDAxLjhjLTAuNSwwLTAuOS0wLjQtMC45LTAuOXYtMy42YzAtMC41LDAuNC0wLjksMC45LTAuOWMwLjUsMCwwLjksMC40LDAuOSwwLjl2My42CgkJCQkJCQkJQzM1MS4yLDQwMS4zLDM1MC43LDQwMS44LDM1MC4yLDQwMS44eiIvPgoJCQkJCQkJPHBhdGggY2xhc3M9InN0MSIgZD0iTTM1MC4yLDQwNy44Yy0wLjUsMC0wLjktMC40LTAuOS0wLjl2LTIuNGMwLTAuNSwwLjQtMC45LDAuOS0wLjljMC41LDAsMC45LDAuNCwwLjksMC45djIuNAoJCQkJCQkJCUMzNTEuMiw0MDcuNCwzNTAuNyw0MDcuOCwzNTAuMiw0MDcuOHoiLz4KCQkJCQkJPC9nPgoJCQkJCTwvZz4KCQkJCTwvZz4KCQkJPC9nPgoJCQk8cGF0aCBjbGFzcz0ic3QwIiBkPSJNMzUwLjIsMjg1LjJjLTE1LjEsMC0yOS4zLTEuNC00MC4xLTMuOWMtNy45LTEuOS0xNy4yLTUuMi0xNy4yLTEwLjNjMC01LjIsOS40LTguNSwxNy4yLTEwLjMKCQkJCWMxMC43LTIuNSwyNC45LTMuOSw0MC4xLTMuOWMxNS4xLDAsMjkuMywxLjQsNDAuMSwzLjljNy45LDEuOSwxNy4yLDUuMiwxNy4yLDEwLjNjMCw1LjItOS40LDguNS0xNy4yLDEwLjMKCQkJCUMzNzkuNiwyODMuOCwzNjUuNCwyODUuMiwzNTAuMiwyODUuMnogTTM1MC4yLDI1OC43Yy0xNSwwLTI5LjEsMS40LTM5LjcsMy45Yy05LjksMi4zLTE1LjgsNS41LTE1LjgsOC40YzAsMi45LDUuOSw2LjEsMTUuOCw4LjQKCQkJCWMxMC42LDIuNSwyNC43LDMuOSwzOS43LDMuOWMxNSwwLDI5LjEtMS40LDM5LjctMy45YzkuOS0yLjMsMTUuOC01LjUsMTUuOC04LjRjMC0yLjktNS45LTYuMS0xNS44LTguNAoJCQkJQzM3OS4yLDI2MCwzNjUuMSwyNTguNywzNTAuMiwyNTguN3oiLz4KCQkJPHBhdGggY2xhc3M9InN0MCIgZD0iTTM1MC4yLDMyMy4yYy0yMywwLTQ3LjUtNC4yLTQ3LjUtMTEuOXMyNC41LTExLjksNDcuNS0xMS45YzIzLDAsNDcuNSw0LjIsNDcuNSwxMS45CgkJCQlTMzczLjIsMzIzLjIsMzUwLjIsMzIzLjJ6IE0zNTAuMiwzMDEuNGMtMjYuOCwwLTQ1LjUsNS4zLTQ1LjUsMTBzMTguNywxMCw0NS41LDEwYzI2LjgsMCw0NS41LTUuMyw0NS41LTEwCgkJCQlTMzc3LDMwMS40LDM1MC4yLDMwMS40eiIvPgoJCTwvZz4KCTwvZz4KPC9nPgo8L3N2Zz4K +>>>>>>> f66b2772 (feat: add ai-navigator-app) From 8cfbbbf951a75f5b778b7cf5b395900c6510d9ca Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Max=20Str=C3=BCbing?= Date: Mon, 4 Sep 2023 09:39:28 +0200 Subject: [PATCH 02/12] chore: use `${releaseNamespace}` instead of hardcoded namespace --- services/ai-navigator-app/0.1.0/ai-navigator-app.yaml | 9 ++++----- 1 file changed, 4 insertions(+), 5 deletions(-) diff --git a/services/ai-navigator-app/0.1.0/ai-navigator-app.yaml b/services/ai-navigator-app/0.1.0/ai-navigator-app.yaml index 52ae1ed44..573d41ce8 100644 --- a/services/ai-navigator-app/0.1.0/ai-navigator-app.yaml +++ b/services/ai-navigator-app/0.1.0/ai-navigator-app.yaml @@ -1,20 +1,19 @@ -# TODO: Should these be separate files? --- apiVersion: v1 kind: ConfigMap metadata: name: ai-navigator-app-config - namespace: kommander + namespace: ${releaseNamespace} data: CHATBOT_URL: "https://chatbot.api.d2iq.com/v1/chat" AUTHORIZER_URL: "https://auth.api.d2iq.com" - LICENSE_NAMESPACE: "kommander" # TODO: use kommander namspace, is this hardcoded ok? + LICENSE_NAMESPACE: ${releaseNamespace} --- apiVersion: apps/v1 kind: Deployment metadata: name: ai-navigator-app - namespace: kommander # TODO: use kommander namspace, is this hardcoded ok? + namespace: ${releaseNamespace} labels: app: ai-navigator-app spec: @@ -41,7 +40,7 @@ apiVersion: v1 kind: Service metadata: name: ai-navigator-app - namespace: kommander + namespace: ${releaseNamespace} spec: selector: app: ai-navigator-app From 03605d18f06a83ffbe2c1aea6795b62a93cd6dd3 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Max=20Str=C3=BCbing?= Date: Mon, 4 Sep 2023 09:46:42 +0200 Subject: [PATCH 03/12] chore: allow to read licenses and secrets --- .../0.1.0/ai-navigator-app.yaml | 30 +++++++++++++++++++ 1 file changed, 30 insertions(+) diff --git a/services/ai-navigator-app/0.1.0/ai-navigator-app.yaml b/services/ai-navigator-app/0.1.0/ai-navigator-app.yaml index 573d41ce8..92e0b7ee2 100644 --- a/services/ai-navigator-app/0.1.0/ai-navigator-app.yaml +++ b/services/ai-navigator-app/0.1.0/ai-navigator-app.yaml @@ -1,3 +1,32 @@ +apiVersion: v1 +kind: ServiceAccount +metadata: + name: ai-navigator-app + namespace: ${releaseNamespace} +--- +apiVersion: rbac.authorization.k8s.io/v1 +kind: Role +metadata: + name: ai-navigator-app + namespace: ${releaseNamespace} +rules: + - apiGroups: ["kommander.mesosphere.io", ""] + resources: ["licenses", "secrets"] + verbs: ["get", "list"] +--- +apiVersion: rbac.authorization.k8s.io/v1 +kind: RoleBinding +metadata: + name: ai-navigator-app + namespace: ${releaseNamespace} +roleRef: + apiGroup: rbac.authorization.k8s.io + kind: Role + name: ai-navigator-app +subjects: + - kind: ServiceAccount + name: ai-navigator-app + namespace: ${releaseNamespace} --- apiVersion: v1 kind: ConfigMap @@ -26,6 +55,7 @@ spec: labels: app: ai-navigator-app spec: + serviceAccountName: ai-navigator-app containers: - name: ai-navigator-app image: mesosphere/ai-navigator-app:development # TODO: Version From 6eea3285b0f241ecac4fbcb4d5ddbb42987d0703 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Max=20Str=C3=BCbing?= Date: Mon, 4 Sep 2023 09:46:42 +0200 Subject: [PATCH 04/12] chore: allow to read licenses and secrets --- services/ai-navigator-app/0.1.0/ai-navigator-app.yaml | 7 +++++-- 1 file changed, 5 insertions(+), 2 deletions(-) diff --git a/services/ai-navigator-app/0.1.0/ai-navigator-app.yaml b/services/ai-navigator-app/0.1.0/ai-navigator-app.yaml index 92e0b7ee2..a832faa1a 100644 --- a/services/ai-navigator-app/0.1.0/ai-navigator-app.yaml +++ b/services/ai-navigator-app/0.1.0/ai-navigator-app.yaml @@ -10,9 +10,12 @@ metadata: name: ai-navigator-app namespace: ${releaseNamespace} rules: - - apiGroups: ["kommander.mesosphere.io", ""] - resources: ["licenses", "secrets"] + - apiGroups: ["kommander.mesosphere.io"] + resources: ["licenses"] verbs: ["get", "list"] + - apiGroups: [""] + resources: ["secrets"] + verbs: ["get"] --- apiVersion: rbac.authorization.k8s.io/v1 kind: RoleBinding From cf4b95a5090ed03ce5c7f1d418de4fa193c6d01c Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Max=20Str=C3=BCbing?= Date: Mon, 4 Sep 2023 10:08:05 +0200 Subject: [PATCH 05/12] chore: add liveness and readiness probes --- .../ai-navigator-app/0.1.0/ai-navigator-app.yaml | 13 +++++++++++++ 1 file changed, 13 insertions(+) diff --git a/services/ai-navigator-app/0.1.0/ai-navigator-app.yaml b/services/ai-navigator-app/0.1.0/ai-navigator-app.yaml index a832faa1a..77ad7856e 100644 --- a/services/ai-navigator-app/0.1.0/ai-navigator-app.yaml +++ b/services/ai-navigator-app/0.1.0/ai-navigator-app.yaml @@ -68,6 +68,19 @@ spec: ports: - containerPort: 8080 name: http + readinessProbe: + httpGet: + path: /healthz + port: 8080 + scheme: HTTP + livenessProbe: + httpGet: + path: /healthz + port: 8080 + scheme: HTTP + initialDelaySeconds: 60 + timeoutSeconds: 30 + failureThreshold: 10 --- apiVersion: v1 kind: Service From 6779a389e4cac6a2a543333ba4ece43797cf8ddc Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Max=20Str=C3=BCbing?= Date: Wed, 6 Sep 2023 09:18:12 +0200 Subject: [PATCH 06/12] chore: update description --- services/ai-navigator-app/metadata.yaml | 19 ++++++++++++++++--- 1 file changed, 16 insertions(+), 3 deletions(-) diff --git a/services/ai-navigator-app/metadata.yaml b/services/ai-navigator-app/metadata.yaml index 45b7f2107..3a1dbeeb7 100644 --- a/services/ai-navigator-app/metadata.yaml +++ b/services/ai-navigator-app/metadata.yaml @@ -1,5 +1,5 @@ displayName: DKP AI Navigator -description: DKP AI Navigator is D2iQ’s cool chatbot tool - TODO CHANGE +description: The AI Navigator is a state-of-the-art chatbot powered by advanced artificial intelligence, purpose-built for seamless Kubernetes cluster management and DKP environment optimization category: - tools type: platform @@ -7,7 +7,20 @@ allowMultipleInstances: false scope: - workspace overview: |- - ## Overview - DKP AI Navigator is D2iQ’s cool chatbot tool - TODO CHANGE + # Overview + The AI Navigator is a state-of-the-art chatbot powered by advanced artificial intelligence, purpose-built for seamless Kubernetes cluster management and DKP environment optimization. Designed with the intricacies of DKP in mind, it offers personalized insights, troubleshooting assistance, and real-time answers to the most pressing user queries. Leveraging its deep knowledge base and tailored response mechanism, the AI Navigator minimizes the knowledge gap, enabling users to focus more on achieving their business goals rather than being bogged down by technical configurations. + + ## Key Features + ### Intuitive Query Processing + Empowered by Natural Language Processing (NLP), the AI Navigator interprets user queries, even if they’re not phrased technically, making it a go-to tool for both novices and experts. + + ### Real-time Troubleshooting Assistance + With its vast database of common DKP issues and solutions, the AI Navigator can provide instant solutions, dramatically reducing downtime and enhancing productivity. + + ### Seamless DKP Integration + Being native to the DKP platform, the AI Navigator ensures users get the most out of their DKP environments by offering insights, best practices, and performance optimization tips. + + ### Privacy First Approach + Data privacy and security remain paramount, ensuring user trust and compliance. icon: PHN2ZyB2ZXJzaW9uPSIxLjEiIGlkPSJMYXllcl8xIiB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciIHhtbG5zOnhsaW5rPSJodHRwOi8vd3d3LnczLm9yZy8xOTk5L3hsaW5rIiB4PSIwcHgiIHk9IjBweCIKCSB2aWV3Qm94PSIwIDAgNzAwIDcwMCIgc3R5bGU9ImVuYWJsZS1iYWNrZ3JvdW5kOm5ldyAwIDAgNzAwIDcwMDsiIHhtbDpzcGFjZT0icHJlc2VydmUiPgo8c3R5bGUgdHlwZT0idGV4dC9jc3MiPgoJLnN0MHtmaWxsOiNENUM5RUQ7fQoJLnN0MXtmaWxsOiMzMzAwNzI7fQoJLnN0MntvcGFjaXR5OjAuODU7ZmlsbDojMzMwMDcxO30KCS5zdDN7ZmlsbDojNDYxODg1O30KCS5zdDR7ZmlsbDojNjQzQ0EyO30KCS5zdDV7ZmlsbDojOTY3OEQzO30KCS5zdDZ7ZmlsbDojRkZENzMzO30KCS5zdDd7ZmlsbDojRkZDRDAwO30KCS5zdDh7ZmlsbDojRkZFQjk5O30KCS5zdDl7ZmlsbDojRkZGNUNDO30KCS5zdDEwe2ZpbGw6IzlFQThGRjt9Cgkuc3QxMXtmaWxsOiMzRDUyRkY7fQoJLnN0MTJ7ZmlsbDojQjFCQUZGO30KCS5zdDEze2ZpbGw6I0Q4RENGRjt9Cgkuc3QxNHtvcGFjaXR5OjAuMzt9Cgkuc3QxNXtmaWxsOiMzMzAwNzE7fQoJLnN0MTZ7b3BhY2l0eTowLjc7ZmlsbDp1cmwoI3NfMDAwMDAxMDc1NzA5MjAyODI0OTA2Mzc0NjAwMDAwMDU0OTEyMDQ2OTAyMjU3MjI4MDJfKTtlbmFibGUtYmFja2dyb3VuZDpuZXcgICAgO30KCS5zdDE3e29wYWNpdHk6MC4yO2ZpbGw6dXJsKCNTVkdJRF8xXyk7ZW5hYmxlLWJhY2tncm91bmQ6bmV3ICAgIDt9Cgkuc3QxOHtjbGlwLXBhdGg6dXJsKCNTVkdJRF8wMDAwMDA1NDk4MTAyOTM4Mzc4OTkzMjQ5MDAwMDAxNDgxNjgwMDUwODk1OTU3MTMyOV8pO30KPC9zdHlsZT4KPHJlY3QgY2xhc3M9InN0MCIgd2lkdGg9IjcwMCIgaGVpZ2h0PSI3MDAiLz4KPGc+Cgk8ZyBpZD0iYSI+Cgk8L2c+Cgk8ZyBpZD0iYiI+CgkJPGcgaWQ9ImMiPgoJCQk8cGF0aCBjbGFzcz0ic3QxIiBkPSJNNDY2LjksMTU5LjljMC02NC40LTUyLjQtMTE2LjYtMTE2LjYtMTE2LjZTMjMzLjYsOTUuNiwyMzMuNiwxNTkuOWMwLDAuNS0xLjgsNDkuMywzMi4yLDg0LjRsMS41LDEuNgoJCQkJYzMyLjgsMzMuOSwzNS42LDM2LjYsMzUuNiw1Ny41djhjMCw3LjgsMjQuNSwxMS45LDQ3LjUsMTEuOWMyMywwLDQ3LjUtNC4yLDQ3LjUtMTEuOXYtOGMwLTIwLjksMi43LTIzLjcsMzUuNi01Ny41bDEuNS0xLjYKCQkJCUM0NjguNiwyMDkuMiw0NjYuOSwxNjAuMyw0NjYuOSwxNTkuOUw0NjYuOSwxNTkuOXogTTMyMiwxMjUuMmMwLTIuNSwyLjEtNC42LDQuNi00LjZzNC42LDIuMSw0LjYsNC42YzAsMi41LTIuMSw0LjYtNC42LDQuNgoJCQkJUzMyMiwxMjcuNywzMjIsMTI1LjJ6IE0zMzEuMywxNDkuMWMwLDIuNS0yLjEsNC42LTQuNiw0LjZjLTIuNSwwLTQuNi0yLjEtNC42LTQuNmMwLTIuNSwyLjEtNC42LDQuNi00LjYKCQkJCUMzMjkuMiwxNDQuNCwzMzEuMywxNDYuNSwzMzEuMywxNDkuMXogTTMyNi42LDExOC42Yy0zLjYsMC02LjUsMi45LTYuNSw2LjVjMCwzLjMsMi40LDYsNS42LDYuNWMwLDAuMSwwLDAuMSwwLDAuMnYxMC44CgkJCQljLTMuMiwwLjUtNS42LDMuMi01LjYsNi41YzAsMy42LDIuOSw2LjUsNi41LDYuNXM2LjUtMi45LDYuNS02LjVjMC0zLjMtMi40LTYtNS42LTYuNXYtMTAuOGMwLTAuMSwwLTAuMSwwLTAuMgoJCQkJYzIuOC0wLjQsNS4yLTIuNiw1LjYtNS41aDE2djQ2aC0xNGMtNS4zLDAtOS41LDQuMi05LjUsOS41djguNWMtMy4yLDAuNS01LjYsMy4yLTUuNiw2LjVjMCwzLjYsMi45LDYuNSw2LjUsNi41czYuNS0yLjksNi41LTYuNQoJCQkJYzAtMy4zLTIuNC02LTUuNi02LjV2LTguNWMwLTQuMSwzLjQtNy41LDcuNS03LjVoMTR2MzYuNmMwLDAuMiwwLDAuMywwLDAuNWMtMC4yLDgtNi44LDE0LjQtMTQuOCwxNC40Yy03LjUsMC0xMy44LTUuNi0xNC43LTEzCgkJCQljMC0wLjMtMC4yLTAuNS0wLjQtMC43Yy0wLjItMC4xLTAuMy0wLjItMC41LTAuMmMtMC4xLDAtMC4yLDAtMC4zLDBjLTEuNCwwLjQtMi44LDAuNi00LjIsMC42Yy04LjQsMC0xNS4zLTYuOC0xNS4zLTE1LjMKCQkJCWMwLTEuNiwwLjMtMy4zLDAuNy00LjhjMC4xLTAuMywwLjEtMC41LTAuMS0wLjdzLTAuMy0wLjQtMC42LTAuNWMtOC0xLjktMTMuNi04LjktMTMuNi0xNy4xYzAtNy44LDQuOS0xNC41LDEyLjQtMTYuOAoJCQkJYzAuMy0wLjEsMC41LTAuMywwLjYtMC43YzAuMS0wLjQsMC0wLjYtMC4yLTAuOWMtMi40LTIuNi0zLjgtNi0zLjgtOS42YzAtNy40LDUuOC0xMy42LDEzLjEtMTRjMC4zLDAsMC42LTAuMiwwLjgtMC41CgkJCQljMC4xLTAuMywwLjEtMC42LDAtMC45Yy0xLjUtMi4yLTIuMi00LjgtMi4yLTcuNWMwLTcuNyw2LjMtMTQsMTQuMS0xNGgwLjFjMC40LDAsMC45LTAuMywwLjktMC44YzEuMi02LjcsNi45LTExLjcsMTMuOC0xMS43CgkJCQljNy42LDAsMTMuNyw2LDE0LDEzLjZjMCwwLjEsMCwwLjMsMCwwLjV2MTMuOWgtMTUuOEMzMzIuNiwxMjEsMzI5LjksMTE4LjYsMzI2LjYsMTE4LjZMMzI2LjYsMTE4LjZ6IE0zMjYuNiwxOTIKCQkJCWMyLjUsMCw0LjYsMi4xLDQuNiw0LjZzLTIuMSw0LjYtNC42LDQuNnMtNC42LTIuMS00LjYtNC42UzMyNC4xLDE5MiwzMjYuNiwxOTJ6IE00MDEuMywxOTAuOWMtMC4zLDAuMS0wLjUsMC4yLTAuNiwwLjUKCQkJCWMtMC4xLDAuMi0wLjEsMC41LTAuMSwwLjdjMC41LDEuNiwwLjcsMy4yLDAuNyw0LjhjMCw4LjQtNi44LDE1LjMtMTUuMywxNS4zYy0xLjQsMC0yLjgtMC4yLTQuMi0wLjZjLTAuMy0wLjEtMC41LDAtMC44LDAuMQoJCQkJYy0wLjIsMC4xLTAuNCwwLjQtMC40LDAuN2MtMC45LDcuNS03LjMsMTMtMTQuNywxM2MtOCwwLTE0LjYtNi40LTE0LjgtMTQuNGMwLTAuMSwwLTAuMywwLTAuNXYtMzYuNWgxNGM0LjEsMCw3LjUsMy40LDcuNSw3LjUKCQkJCXY4LjVjLTMuMiwwLjUtNS42LDMuMi01LjYsNi41YzAsMy42LDIuOSw2LjUsNi41LDYuNXM2LjUtMi45LDYuNS02LjVjMC0zLjMtMi40LTYtNS42LTYuNXYtOC41YzAtNS4zLTQuMi05LjUtOS41LTkuNWgtMTR2LTIyCgkJCQloMTZjMC41LDMuMiwzLjIsNS42LDYuNSw1LjZjMy42LDAsNi41LTIuOSw2LjUtNi41YzAtMy4zLTIuNC02LTUuNi02LjV2LTExYzMuMi0wLjUsNS42LTMuMiw1LjYtNi41YzAtMy42LTIuOS02LjUtNi41LTYuNQoJCQkJcy02LjUsMi45LTYuNSw2LjVjMCwzLjMsMi40LDYsNS42LDYuNXYxMWMtMi44LDAuNC01LDIuNi01LjUsNS41aC0xNnYtMzcuOGMwLTAuMiwwLTAuMywwLTAuNWMwLjItNy41LDYuNC0xMy42LDE0LTEzLjYKCQkJCWM2LjgsMCwxMi42LDQuOSwxMy44LDExLjdjMC4xLDAuNSwwLjUsMC44LDAuOSwwLjhoMC4yYzcuNywwLDE0LDYuMywxNCwxNGMwLDIuNi0wLjcsNS4zLTIuMiw3LjVjLTAuMiwwLjMtMC4yLDAuNiwwLDAuOQoJCQkJYzAuMSwwLjMsMC40LDAuNSwwLjgsMC41YzcuNCwwLjQsMTMuMSw2LjUsMTMuMSwxNGMwLDMuNi0xLjQsNi45LTMuOCw5LjZjLTAuMiwwLjItMC4zLDAuNi0wLjIsMC45YzAuMSwwLjMsMC4zLDAuNiwwLjYsMC43CgkJCQljNy40LDIuMywxMi40LDkuMiwxMi40LDE2LjhDNDE0LjksMTgyLDQwOS4zLDE4OSw0MDEuMywxOTAuOUw0MDEuMywxOTAuOXogTTM3My43LDE5MmMyLjUsMCw0LjYsMi4xLDQuNiw0LjZzLTIuMSw0LjYtNC42LDQuNgoJCQkJYy0yLjUsMC00LjYtMi4xLTQuNi00LjZTMzcxLjEsMTkyLDM3My43LDE5MnogTTM3OC4zLDE0OS4xYzAsMi41LTIuMSw0LjYtNC42LDQuNmMtMi41LDAtNC42LTIuMS00LjYtNC42YzAtMi41LDIuMS00LjYsNC42LTQuNgoJCQkJQzM3Ni4yLDE0NC41LDM3OC4zLDE0Ni41LDM3OC4zLDE0OS4xeiBNMzY5LDEyNS4yYzAtMi41LDIuMS00LjYsNC42LTQuNmMyLjUsMCw0LjYsMi4xLDQuNiw0LjZjMCwyLjUtMi4xLDQuNi00LjYsNC42CgkJCQlDMzcxLjEsMTI5LjcsMzY5LDEyNy43LDM2OSwxMjUuMnoiLz4KCQkJPGc+CgkJCQk8cGF0aCBpZD0iZCIgY2xhc3M9InN0MiIgZD0iTTQ1Nyw0NDAuOWwxMDYuOCw5Mi41TDQ1Nyw2MjUuOEgyNDMuMmwtMTA2LjgtOTIuNWwxMDYuOC05Mi41TDQ1Nyw0NDAuOUw0NTcsNDQwLjl6Ii8+CgkJCQk8cGF0aCBpZD0iZSIgY2xhc3M9InN0MyIgZD0iTTEzNi42LDUzMy40djM1LjRsMTA2LjgsOTIuNXYtMzUuNEwxMzYuNiw1MzMuNHoiLz4KCQkJCTxyZWN0IGlkPSJmIiB4PSIyNDMiIHk9IjYyNS43IiBjbGFzcz0ic3Q0IiB3aWR0aD0iMjEzLjgiIGhlaWdodD0iMzUuNCIvPgoJCQkJPHBhdGggaWQ9ImciIGNsYXNzPSJzdDUiIGQ9Ik01NjMuNiw1MzMuNHYzNS40bC0xMDYuOCw5Mi41di0zNS40TDU2My42LDUzMy40eiIvPgoJCQk8L2c+CgkJCTxnPgoJCQkJPHBhdGggaWQ9ImgiIGNsYXNzPSJzdDYiIGQ9Ik0xMzYuMiw0NjguNHYzNS40bDEwNi44LDkyLjV2LTM1LjRMMTM2LjIsNDY4LjR6Ii8+CgkJCQk8cGF0aCBpZD0iaSIgY2xhc3M9InN0NyIgZD0iTTQ1NywzNzYuMWwxMDYuOSw5Mi41bC0xMDYuOCw5Mi41SDI0My4ybC0xMDctOTIuN2wxMDctOTIuMkw0NTcsMzc2LjFMNDU3LDM3Ni4xeiIvPgoJCQkJPHJlY3QgaWQ9ImoiIHg9IjI0MyIgeT0iNTYxLjEiIGNsYXNzPSJzdDgiIHdpZHRoPSIyMTMuOCIgaGVpZ2h0PSIzNS40Ii8+CgkJCQk8cGF0aCBpZD0iayIgY2xhc3M9InN0OSIgZD0iTTU2My42LDQ2OC40djM1LjRsLTEwNi44LDkyLjV2LTM1LjRMNTYzLjYsNDY4LjRMNTYzLjYsNDY4LjR6Ii8+CgkJCTwvZz4KCQkJPGc+CgkJCQk8cGF0aCBpZD0ibCIgY2xhc3M9InN0MTAiIGQ9Ik00NTcsMzExLjRsMTA2LjgsOTIuNUw0NTcsNDk2LjNIMjQzLjJsLTEwNi44LTkyLjVsMTA3LTkyLjVINDU3TDQ1NywzMTEuNHoiLz4KCQkJCTxwYXRoIGlkPSJtIiBjbGFzcz0ic3QxMSIgZD0iTTEzNi42LDQwMy44djM1LjRsMTA2LjksOTIuNXYtMzUuNEwxMzYuNiw0MDMuOHoiLz4KCQkJCTxyZWN0IGlkPSJuIiB4PSIyNDMuMyIgeT0iNDk2LjMiIGNsYXNzPSJzdDEyIiB3aWR0aD0iMjEzLjgiIGhlaWdodD0iMzUuNCIvPgoJCQkJPHBhdGggaWQ9Im8iIGNsYXNzPSJzdDEzIiBkPSJNNTYzLjYsNDAzLjh2MzUuNGwtMTA2LjksOTIuNXYtMzUuNEw1NjMuNiw0MDMuOHoiLz4KCQkJPC9nPgoJCQk8ZyBjbGFzcz0ic3QxNCI+CgkJCQk8cGF0aCBpZD0icCIgZD0iTTI0My4zLDUzMS43bDIxMy43LDAuNmwtMzMuMSwyOC43SDI0My4ybC0xMDctOTIuN2wxNy0xNC43TDI0My4zLDUzMS43TDI0My4zLDUzMS43eiIvPgoJCQk8L2c+CgkJCTxnPgoJCQkJPHBhdGggaWQ9InEiIGNsYXNzPSJzdDE1IiBkPSJNMjQzLjMsNTk2LjVsMjEzLjcsMC42bC0zMy4xLDI4LjdIMjQzLjJsLTEwNy05Mi43bDE3LTE0LjdMMjQzLjMsNTk2LjV6Ii8+CgkJCTwvZz4KCQkJCgkJCQk8cmFkaWFsR3JhZGllbnQgaWQ9InNfMDAwMDAxNzY3MjY3NTE0NDEzNTYwNDk3MDAwMDAwMDY1NTE1MjIyNzgyODY4OTQ5ODFfIiBjeD0iLTQ2MDQuMzQwOCIgY3k9Ii0yODUuNjU1IiByPSIxLjM2MjgiIGdyYWRpZW50VHJhbnNmb3JtPSJtYXRyaXgoLTEzNC41NSAwIDAgLTY3LjczIC02MTkxNjIuMzEyNSAtMTg5NDQuNTk3NykiIGdyYWRpZW50VW5pdHM9InVzZXJTcGFjZU9uVXNlIj4KCQkJCTxzdG9wICBvZmZzZXQ9IjAiIHN0eWxlPSJzdG9wLWNvbG9yOiNGRkZGRkYiLz4KCQkJCTxzdG9wICBvZmZzZXQ9IjAuMTEiIHN0eWxlPSJzdG9wLWNvbG9yOiNGRkZGRkY7c3RvcC1vcGFjaXR5OjAuOTgiLz4KCQkJCTxzdG9wICBvZmZzZXQ9IjAuMjQiIHN0eWxlPSJzdG9wLWNvbG9yOiNGRkZGRkY7c3RvcC1vcGFjaXR5OjAuOTMiLz4KCQkJCTxzdG9wICBvZmZzZXQ9IjAuMzciIHN0eWxlPSJzdG9wLWNvbG9yOiNGRkZGRkY7c3RvcC1vcGFjaXR5OjAuODUiLz4KCQkJCTxzdG9wICBvZmZzZXQ9IjAuNSIgc3R5bGU9InN0b3AtY29sb3I6I0ZGRkZGRjtzdG9wLW9wYWNpdHk6MC43MyIvPgoJCQkJPHN0b3AgIG9mZnNldD0iMC42MyIgc3R5bGU9InN0b3AtY29sb3I6I0ZGRkZGRjtzdG9wLW9wYWNpdHk6MC41NyIvPgoJCQkJPHN0b3AgIG9mZnNldD0iMC43NyIgc3R5bGU9InN0b3AtY29sb3I6I0ZGRkZGRjtzdG9wLW9wYWNpdHk6MC4zOSIvPgoJCQkJPHN0b3AgIG9mZnNldD0iMC45MSIgc3R5bGU9InN0b3AtY29sb3I6I0ZGRkZGRjtzdG9wLW9wYWNpdHk6MC4xNyIvPgoJCQkJPHN0b3AgIG9mZnNldD0iMSIgc3R5bGU9InN0b3AtY29sb3I6I0ZGRkZGRjtzdG9wLW9wYWNpdHk6MCIvPgoJCQk8L3JhZGlhbEdyYWRpZW50PgoJCQkKCQkJCTxlbGxpcHNlIGlkPSJzIiBzdHlsZT0ib3BhY2l0eTowLjc7ZmlsbDp1cmwoI3NfMDAwMDAxNzY3MjY3NTE0NDEzNTYwNDk3MDAwMDAwMDY1NTE1MjIyNzgyODY4OTQ5ODFfKTtlbmFibGUtYmFja2dyb3VuZDpuZXcgICAgOyIgY3g9IjM1MC40IiBjeT0iNDAzLjgiIHJ4PSIxODMuNiIgcnk9IjkyLjUiLz4KCQkJCgkJCQk8cmFkaWFsR3JhZGllbnQgaWQ9IlNWR0lEXzFfIiBjeD0iMzUwLjUyNTkiIGN5PSIxNTQ4LjQwNzMiIHI9IjYzLjc1NjciIGdyYWRpZW50VHJhbnNmb3JtPSJtYXRyaXgoMSAwIDAgMC4zNSAwIC0xMzYuOTc4OCkiIGdyYWRpZW50VW5pdHM9InVzZXJTcGFjZU9uVXNlIj4KCQkJCTxzdG9wICBvZmZzZXQ9IjAiIHN0eWxlPSJzdG9wLWNvbG9yOiMzMzAwNzIiLz4KCQkJCTxzdG9wICBvZmZzZXQ9IjAuMTgiIHN0eWxlPSJzdG9wLWNvbG9yOiMzMzAwNzI7c3RvcC1vcGFjaXR5OjAuOTYiLz4KCQkJCTxzdG9wICBvZmZzZXQ9IjAuMzciIHN0eWxlPSJzdG9wLWNvbG9yOiMzMzAwNzI7c3RvcC1vcGFjaXR5OjAuODUiLz4KCQkJCTxzdG9wICBvZmZzZXQ9IjAuNTYiIHN0eWxlPSJzdG9wLWNvbG9yOiMzMzAwNzI7c3RvcC1vcGFjaXR5OjAuNjYiLz4KCQkJCTxzdG9wICBvZmZzZXQ9IjAuNzciIHN0eWxlPSJzdG9wLWNvbG9yOiMzMzAwNzI7c3RvcC1vcGFjaXR5OjAuMzkiLz4KCQkJCTxzdG9wICBvZmZzZXQ9IjAuOTciIHN0eWxlPSJzdG9wLWNvbG9yOiMzMzAwNzI7c3RvcC1vcGFjaXR5OjYuMDAwMDAwZS0wMiIvPgoJCQkJPHN0b3AgIG9mZnNldD0iMSIgc3R5bGU9InN0b3AtY29sb3I6IzMzMDA3MjtzdG9wLW9wYWNpdHk6MCIvPgoJCQk8L3JhZGlhbEdyYWRpZW50PgoJCQk8ZWxsaXBzZSBjbGFzcz0ic3QxNyIgY3g9IjM1MC41IiBjeT0iNDA1IiByeD0iNjQuMiIgcnk9IjIyLjEiLz4KCQkJPGc+CgkJCQk8ZWxsaXBzZSBjbGFzcz0ic3QxIiBjeD0iMzUwLjIiIGN5PSIzODMuMiIgcng9IjMyLjciIHJ5PSI3LjciLz4KCQkJCTxwYXRoIGNsYXNzPSJzdDEiIGQ9Ik0zNTAuMiwzOTEuOGMtMTYuNywwLTMzLjctMi45LTMzLjctOC42czE2LjktOC42LDMzLjctOC42YzE2LjcsMCwzMy43LDIuOSwzMy43LDguNgoJCQkJCUMzODMuOSwzODguOSwzNjYuOSwzOTEuOCwzNTAuMiwzOTEuOHogTTM1MC4yLDM3Ni41Yy0xOS43LDAtMzEuOCwzLjktMzEuOCw2LjdjMCwyLjgsMTIuMSw2LjcsMzEuOCw2LjcKCQkJCQljMTkuNywwLDMxLjgtMy45LDMxLjgtNi43QzM4MiwzODAuNCwzNjkuOCwzNzYuNSwzNTAuMiwzNzYuNXoiLz4KCQkJPC9nPgoJCQk8cGF0aCBjbGFzcz0ic3QxIiBkPSJNMzUwLjIsNDAyLjNjLTIuOCwwLTUuNSwwLjMtNy4yLDAuN2MtMS41LDAuNC0yLjQsMC45LTIuNCwxLjVjMCwxLjMsNC4zLDIuMiw5LjYsMi4yYzUuMywwLDkuNi0xLjEsOS42LTIuMgoJCQkJYzAtMC43LTEuNC0xLjQtMy41LTEuOEMzNTQuNiw0MDIuNCwzNTIuNSw0MDIuMywzNTAuMiw0MDIuM0wzNTAuMiw0MDIuM3oiLz4KCQkJPGVsbGlwc2UgY2xhc3M9InN0MSIgY3g9IjM1MC4yIiBjeT0iMzExLjQiIHJ4PSI0Ni41IiByeT0iMTAuOSIvPgoJCQk8Zz4KCQkJCTxlbGxpcHNlIGNsYXNzPSJzdDEiIGN4PSIzNTAuNyIgY3k9IjM0Ny40IiByeD0iNDMiIHJ5PSIxMC4xIi8+CgkJCQk8cGF0aCBjbGFzcz0ic3QxIiBkPSJNMzUwLjcsMzU4LjZjLTIxLjQsMC00NC0zLjktNDQtMTFzMjIuNi0xMSw0NC0xMWMyMS40LDAsNDQsMy45LDQ0LDExUzM3Mi4xLDM1OC42LDM1MC43LDM1OC42egoJCQkJCSBNMzUwLjcsMzM4LjRjLTI0LjcsMC00Miw0LjgtNDIsOS4yYzAsNC4zLDE3LjIsOS4yLDQyLDkuMmMyNC43LDAsNDItNC44LDQyLTkuMkMzOTIuNywzNDMuMSwzNzUuNSwzMzguNCwzNTAuNywzMzguNHoiLz4KCQkJPC9nPgoJCQk8Zz4KCQkJCTxwYXRoIGNsYXNzPSJzdDEiIGQ9Ik0zNTAuMiwzNjFjLTAuNSwwLTAuOS0wLjQtMC45LTAuOXYtMi40YzAtMC41LDAuNC0wLjksMC45LTAuOWMwLjUsMCwwLjksMC40LDAuOSwwLjl2Mi40CgkJCQkJQzM1MS4yLDM2MC42LDM1MC43LDM2MSwzNTAuMiwzNjF6Ii8+CgkJCQk8cGF0aCBjbGFzcz0ic3QxIiBkPSJNMzUwLjIsMzc3LjVjLTAuNSwwLTAuOS0wLjQtMC45LTAuOXYtNC4xYzAtMC41LDAuNC0wLjksMC45LTAuOWMwLjUsMCwwLjksMC40LDAuOSwwLjl2NC4xCgkJCQkJQzM1MS4yLDM3Ny4xLDM1MC43LDM3Ny41LDM1MC4yLDM3Ny41eiBNMzUwLjIsMzY5LjNjLTAuNSwwLTAuOS0wLjQtMC45LTAuOXYtNC4xYzAtMC41LDAuNC0wLjksMC45LTAuOWMwLjUsMCwwLjksMC40LDAuOSwwLjkKCQkJCQl2NC4xQzM1MS4yLDM2OC45LDM1MC43LDM2OS4zLDM1MC4yLDM2OS4zeiIvPgoJCQkJPHBhdGggY2xhc3M9InN0MSIgZD0iTTM1MC4yLDM4NC4xYy0wLjUsMC0wLjktMC40LTAuOS0wLjl2LTIuNGMwLTAuNSwwLjQtMC45LDAuOS0wLjljMC41LDAsMC45LDAuNCwwLjksMC45djIuNAoJCQkJCUMzNTEuMiwzODMuNywzNTAuNywzODQuMSwzNTAuMiwzODQuMXoiLz4KCQkJPC9nPgoJCQk8Zz4KCQkJCTxwYXRoIGNsYXNzPSJzdDAiIGQ9Ik0zNTAuMiwyODcuN2MtMC41LDAtMC45LTAuNC0wLjktMC45di0yLjRjMC0wLjUsMC40LTAuOSwwLjktMC45YzAuNSwwLDAuOSwwLjQsMC45LDAuOXYyLjQKCQkJCQlDMzUxLjIsMjg3LjIsMzUwLjcsMjg3LjcsMzUwLjIsMjg3Ljd6Ii8+CgkJCQk8cGF0aCBjbGFzcz0ic3QwIiBkPSJNMzUwLjIsMzA0LjJjLTAuNSwwLTAuOS0wLjQtMC45LTAuOXYtNC4xYzAtMC41LDAuNC0wLjksMC45LTAuOWMwLjUsMCwwLjksMC40LDAuOSwwLjl2NC4xCgkJCQkJQzM1MS4yLDMwMy44LDM1MC43LDMwNC4yLDM1MC4yLDMwNC4yeiBNMzUwLjIsMjk2Yy0wLjUsMC0wLjktMC40LTAuOS0wLjl2LTQuMmMwLTAuNSwwLjQtMC45LDAuOS0wLjljMC41LDAsMC45LDAuNCwwLjksMC45CgkJCQkJdjQuMUMzNTEuMiwyOTUuNSwzNTAuNywyOTYsMzUwLjIsMjk2eiIvPgoJCQkJPHBhdGggY2xhc3M9InN0MCIgZD0iTTM1MC4yLDMxMC44Yy0wLjUsMC0wLjktMC40LTAuOS0wLjl2LTIuNGMwLTAuNSwwLjQtMC45LDAuOS0wLjljMC41LDAsMC45LDAuNCwwLjksMC45djIuNAoJCQkJCUMzNTEuMiwzMTAuNCwzNTAuNywzMTAuOCwzNTAuMiwzMTAuOHoiLz4KCQkJPC9nPgoJCQk8Zz4KCQkJCTxwYXRoIGNsYXNzPSJzdDEiIGQ9Ik0zNTAuMiwzMjUuN2MtMC41LDAtMC45LTAuNC0wLjktMC45di0yLjRjMC0wLjUsMC40LTAuOSwwLjktMC45YzAuNSwwLDAuOSwwLjQsMC45LDAuOXYyLjQKCQkJCQlDMzUxLjIsMzI1LjIsMzUwLjcsMzI1LjcsMzUwLjIsMzI1Ljd6Ii8+CgkJCQk8cGF0aCBjbGFzcz0ic3QxIiBkPSJNMzUwLjIsMzQyLjNjLTAuNSwwLTAuOS0wLjQtMC45LTAuOXYtNC4yYzAtMC41LDAuNC0wLjksMC45LTAuOWMwLjUsMCwwLjksMC40LDAuOSwwLjl2NC4xCgkJCQkJQzM1MS4yLDM0MS45LDM1MC43LDM0Mi4zLDM1MC4yLDM0Mi4zeiBNMzUwLjIsMzM0Yy0wLjUsMC0wLjktMC40LTAuOS0wLjl2LTQuMWMwLTAuNSwwLjQtMC45LDAuOS0wLjljMC41LDAsMC45LDAuNCwwLjksMC45CgkJCQkJdjQuMUMzNTEuMiwzMzMuNSwzNTAuNywzMzQsMzUwLjIsMzM0eiIvPgoJCQkJPHBhdGggY2xhc3M9InN0MSIgZD0iTTM1MC4yLDM0OC45Yy0wLjUsMC0wLjktMC40LTAuOS0wLjl2LTIuNGMwLTAuNSwwLjQtMC45LDAuOS0wLjljMC41LDAsMC45LDAuNCwwLjksMC45djIuNAoJCQkJCUMzNTEuMiwzNDguNCwzNTAuNywzNDguOSwzNTAuMiwzNDguOXoiLz4KCQkJPC9nPgoJCQk8Zz4KCQkJCTxnPgoJCQkJCTxkZWZzPgoJCQkJCQk8cGF0aCBpZD0iU1ZHSURfMDAwMDAwMDY2ODExMjI5NzY3MDY1NjU5MTAwMDAwMDM5MzE3NTk1OTIwOTk0NDYxNjZfIiBkPSJNMzUwLjIsMzkwLjNjLTIuOCwwLTUuNSwxMi4yLTcuMiwxMi43CgkJCQkJCQljLTEuNSwwLjQtMi40LDAuOS0yLjQsMS41YzAsMS4zLDQuMywyLjIsOS42LDIuMmM1LjMsMCw5LjYtMS4xLDkuNi0yLjJjMC0wLjctMS40LTEuNC0zLjUtMS44CgkJCQkJCQlDMzU0LjYsNDAyLjQsMzUyLjUsMzkwLjMsMzUwLjIsMzkwLjNMMzUwLjIsMzkwLjN6Ii8+CgkJCQkJPC9kZWZzPgoJCQkJCTxjbGlwUGF0aCBpZD0iU1ZHSURfMDAwMDAwMTYwNTgzMDcxOTgxMDEyNTgyNDAwMDAwMDc1MjAxMDE4NzEzMzc5NjExMDRfIj4KCQkJCQkJPHVzZSB4bGluazpocmVmPSIjU1ZHSURfMDAwMDAwMDY2ODExMjI5NzY3MDY1NjU5MTAwMDAwMDM5MzE3NTk1OTIwOTk0NDYxNjZfIiAgc3R5bGU9Im92ZXJmbG93OnZpc2libGU7Ii8+CgkJCQkJPC9jbGlwUGF0aD4KCQkJCQk8ZyBzdHlsZT0iY2xpcC1wYXRoOnVybCgjU1ZHSURfMDAwMDAwMTYwNTgzMDcxOTgxMDEyNTgyNDAwMDAwMDc1MjAxMDE4NzEzMzc5NjExMDRfKTsiPgoJCQkJCQk8Zz4KCQkJCQkJCTxwYXRoIGNsYXNzPSJzdDEiIGQ9Ik0zNTAuMiwzOTQuN2MtMC41LDAtMC45LTAuNC0wLjktMC45di0yLjRjMC0wLjUsMC40LTAuOSwwLjktMC45YzAuNSwwLDAuOSwwLjQsMC45LDAuOXYyLjQKCQkJCQkJCQlDMzUxLjIsMzk0LjIsMzUwLjcsMzk0LjcsMzUwLjIsMzk0Ljd6Ii8+CgkJCQkJCQk8cGF0aCBjbGFzcz0ic3QxIiBkPSJNMzUwLjIsNDAxLjhjLTAuNSwwLTAuOS0wLjQtMC45LTAuOXYtMy42YzAtMC41LDAuNC0wLjksMC45LTAuOWMwLjUsMCwwLjksMC40LDAuOSwwLjl2My42CgkJCQkJCQkJQzM1MS4yLDQwMS4zLDM1MC43LDQwMS44LDM1MC4yLDQwMS44eiIvPgoJCQkJCQkJPHBhdGggY2xhc3M9InN0MSIgZD0iTTM1MC4yLDQwNy44Yy0wLjUsMC0wLjktMC40LTAuOS0wLjl2LTIuNGMwLTAuNSwwLjQtMC45LDAuOS0wLjljMC41LDAsMC45LDAuNCwwLjksMC45djIuNAoJCQkJCQkJCUMzNTEuMiw0MDcuNCwzNTAuNyw0MDcuOCwzNTAuMiw0MDcuOHoiLz4KCQkJCQkJPC9nPgoJCQkJCTwvZz4KCQkJCTwvZz4KCQkJPC9nPgoJCQk8cGF0aCBjbGFzcz0ic3QwIiBkPSJNMzUwLjIsMjg1LjJjLTE1LjEsMC0yOS4zLTEuNC00MC4xLTMuOWMtNy45LTEuOS0xNy4yLTUuMi0xNy4yLTEwLjNjMC01LjIsOS40LTguNSwxNy4yLTEwLjMKCQkJCWMxMC43LTIuNSwyNC45LTMuOSw0MC4xLTMuOWMxNS4xLDAsMjkuMywxLjQsNDAuMSwzLjljNy45LDEuOSwxNy4yLDUuMiwxNy4yLDEwLjNjMCw1LjItOS40LDguNS0xNy4yLDEwLjMKCQkJCUMzNzkuNiwyODMuOCwzNjUuNCwyODUuMiwzNTAuMiwyODUuMnogTTM1MC4yLDI1OC43Yy0xNSwwLTI5LjEsMS40LTM5LjcsMy45Yy05LjksMi4zLTE1LjgsNS41LTE1LjgsOC40YzAsMi45LDUuOSw2LjEsMTUuOCw4LjQKCQkJCWMxMC42LDIuNSwyNC43LDMuOSwzOS43LDMuOWMxNSwwLDI5LjEtMS40LDM5LjctMy45YzkuOS0yLjMsMTUuOC01LjUsMTUuOC04LjRjMC0yLjktNS45LTYuMS0xNS44LTguNAoJCQkJQzM3OS4yLDI2MCwzNjUuMSwyNTguNywzNTAuMiwyNTguN3oiLz4KCQkJPHBhdGggY2xhc3M9InN0MCIgZD0iTTM1MC4yLDMyMy4yYy0yMywwLTQ3LjUtNC4yLTQ3LjUtMTEuOXMyNC41LTExLjksNDcuNS0xMS45YzIzLDAsNDcuNSw0LjIsNDcuNSwxMS45CgkJCQlTMzczLjIsMzIzLjIsMzUwLjIsMzIzLjJ6IE0zNTAuMiwzMDEuNGMtMjYuOCwwLTQ1LjUsNS4zLTQ1LjUsMTBzMTguNywxMCw0NS41LDEwYzI2LjgsMCw0NS41LTUuMyw0NS41LTEwCgkJCQlTMzc3LDMwMS40LDM1MC4yLDMwMS40eiIvPgoJCTwvZz4KCTwvZz4KPC9nPgo8L3N2Zz4K >>>>>>> f66b2772 (feat: add ai-navigator-app) From 19515dc15f4a20af3d272dbb93647d37149e6c82 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Max=20Str=C3=BCbing?= Date: Wed, 6 Sep 2023 09:31:15 +0200 Subject: [PATCH 07/12] feat: specifiy security context --- services/ai-navigator-app/0.1.0/ai-navigator-app.yaml | 9 +++++++++ 1 file changed, 9 insertions(+) diff --git a/services/ai-navigator-app/0.1.0/ai-navigator-app.yaml b/services/ai-navigator-app/0.1.0/ai-navigator-app.yaml index 77ad7856e..1b0c2d8d3 100644 --- a/services/ai-navigator-app/0.1.0/ai-navigator-app.yaml +++ b/services/ai-navigator-app/0.1.0/ai-navigator-app.yaml @@ -81,6 +81,15 @@ spec: initialDelaySeconds: 60 timeoutSeconds: 30 failureThreshold: 10 + securityContext: + allowPrivilegeEscalation: false + capabilities: + drop: + - ALL + readOnlyRootFilesystem: true + runAsNonRoot: true + seccompProfile: + type: RuntimeDefault --- apiVersion: v1 kind: Service From 730ae56dd5c40d337acb3dcf095aee5aaa35c827 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Max=20Str=C3=BCbing?= Date: Thu, 7 Sep 2023 10:17:04 +0200 Subject: [PATCH 08/12] chore: use correct logo --- services/ai-navigator-app/metadata.yaml | 3 +-- 1 file changed, 1 insertion(+), 2 deletions(-) diff --git a/services/ai-navigator-app/metadata.yaml b/services/ai-navigator-app/metadata.yaml index 3a1dbeeb7..d5aacc506 100644 --- a/services/ai-navigator-app/metadata.yaml +++ b/services/ai-navigator-app/metadata.yaml @@ -22,5 +22,4 @@ overview: |- ### Privacy First Approach Data privacy and security remain paramount, ensuring user trust and compliance. -icon: PHN2ZyB2ZXJzaW9uPSIxLjEiIGlkPSJMYXllcl8xIiB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciIHhtbG5zOnhsaW5rPSJodHRwOi8vd3d3LnczLm9yZy8xOTk5L3hsaW5rIiB4PSIwcHgiIHk9IjBweCIKCSB2aWV3Qm94PSIwIDAgNzAwIDcwMCIgc3R5bGU9ImVuYWJsZS1iYWNrZ3JvdW5kOm5ldyAwIDAgNzAwIDcwMDsiIHhtbDpzcGFjZT0icHJlc2VydmUiPgo8c3R5bGUgdHlwZT0idGV4dC9jc3MiPgoJLnN0MHtmaWxsOiNENUM5RUQ7fQoJLnN0MXtmaWxsOiMzMzAwNzI7fQoJLnN0MntvcGFjaXR5OjAuODU7ZmlsbDojMzMwMDcxO30KCS5zdDN7ZmlsbDojNDYxODg1O30KCS5zdDR7ZmlsbDojNjQzQ0EyO30KCS5zdDV7ZmlsbDojOTY3OEQzO30KCS5zdDZ7ZmlsbDojRkZENzMzO30KCS5zdDd7ZmlsbDojRkZDRDAwO30KCS5zdDh7ZmlsbDojRkZFQjk5O30KCS5zdDl7ZmlsbDojRkZGNUNDO30KCS5zdDEwe2ZpbGw6IzlFQThGRjt9Cgkuc3QxMXtmaWxsOiMzRDUyRkY7fQoJLnN0MTJ7ZmlsbDojQjFCQUZGO30KCS5zdDEze2ZpbGw6I0Q4RENGRjt9Cgkuc3QxNHtvcGFjaXR5OjAuMzt9Cgkuc3QxNXtmaWxsOiMzMzAwNzE7fQoJLnN0MTZ7b3BhY2l0eTowLjc7ZmlsbDp1cmwoI3NfMDAwMDAxMDc1NzA5MjAyODI0OTA2Mzc0NjAwMDAwMDU0OTEyMDQ2OTAyMjU3MjI4MDJfKTtlbmFibGUtYmFja2dyb3VuZDpuZXcgICAgO30KCS5zdDE3e29wYWNpdHk6MC4yO2ZpbGw6dXJsKCNTVkdJRF8xXyk7ZW5hYmxlLWJhY2tncm91bmQ6bmV3ICAgIDt9Cgkuc3QxOHtjbGlwLXBhdGg6dXJsKCNTVkdJRF8wMDAwMDA1NDk4MTAyOTM4Mzc4OTkzMjQ5MDAwMDAxNDgxNjgwMDUwODk1OTU3MTMyOV8pO30KPC9zdHlsZT4KPHJlY3QgY2xhc3M9InN0MCIgd2lkdGg9IjcwMCIgaGVpZ2h0PSI3MDAiLz4KPGc+Cgk8ZyBpZD0iYSI+Cgk8L2c+Cgk8ZyBpZD0iYiI+CgkJPGcgaWQ9ImMiPgoJCQk8cGF0aCBjbGFzcz0ic3QxIiBkPSJNNDY2LjksMTU5LjljMC02NC40LTUyLjQtMTE2LjYtMTE2LjYtMTE2LjZTMjMzLjYsOTUuNiwyMzMuNiwxNTkuOWMwLDAuNS0xLjgsNDkuMywzMi4yLDg0LjRsMS41LDEuNgoJCQkJYzMyLjgsMzMuOSwzNS42LDM2LjYsMzUuNiw1Ny41djhjMCw3LjgsMjQuNSwxMS45LDQ3LjUsMTEuOWMyMywwLDQ3LjUtNC4yLDQ3LjUtMTEuOXYtOGMwLTIwLjksMi43LTIzLjcsMzUuNi01Ny41bDEuNS0xLjYKCQkJCUM0NjguNiwyMDkuMiw0NjYuOSwxNjAuMyw0NjYuOSwxNTkuOUw0NjYuOSwxNTkuOXogTTMyMiwxMjUuMmMwLTIuNSwyLjEtNC42LDQuNi00LjZzNC42LDIuMSw0LjYsNC42YzAsMi41LTIuMSw0LjYtNC42LDQuNgoJCQkJUzMyMiwxMjcuNywzMjIsMTI1LjJ6IE0zMzEuMywxNDkuMWMwLDIuNS0yLjEsNC42LTQuNiw0LjZjLTIuNSwwLTQuNi0yLjEtNC42LTQuNmMwLTIuNSwyLjEtNC42LDQuNi00LjYKCQkJCUMzMjkuMiwxNDQuNCwzMzEuMywxNDYuNSwzMzEuMywxNDkuMXogTTMyNi42LDExOC42Yy0zLjYsMC02LjUsMi45LTYuNSw2LjVjMCwzLjMsMi40LDYsNS42LDYuNWMwLDAuMSwwLDAuMSwwLDAuMnYxMC44CgkJCQljLTMuMiwwLjUtNS42LDMuMi01LjYsNi41YzAsMy42LDIuOSw2LjUsNi41LDYuNXM2LjUtMi45LDYuNS02LjVjMC0zLjMtMi40LTYtNS42LTYuNXYtMTAuOGMwLTAuMSwwLTAuMSwwLTAuMgoJCQkJYzIuOC0wLjQsNS4yLTIuNiw1LjYtNS41aDE2djQ2aC0xNGMtNS4zLDAtOS41LDQuMi05LjUsOS41djguNWMtMy4yLDAuNS01LjYsMy4yLTUuNiw2LjVjMCwzLjYsMi45LDYuNSw2LjUsNi41czYuNS0yLjksNi41LTYuNQoJCQkJYzAtMy4zLTIuNC02LTUuNi02LjV2LTguNWMwLTQuMSwzLjQtNy41LDcuNS03LjVoMTR2MzYuNmMwLDAuMiwwLDAuMywwLDAuNWMtMC4yLDgtNi44LDE0LjQtMTQuOCwxNC40Yy03LjUsMC0xMy44LTUuNi0xNC43LTEzCgkJCQljMC0wLjMtMC4yLTAuNS0wLjQtMC43Yy0wLjItMC4xLTAuMy0wLjItMC41LTAuMmMtMC4xLDAtMC4yLDAtMC4zLDBjLTEuNCwwLjQtMi44LDAuNi00LjIsMC42Yy04LjQsMC0xNS4zLTYuOC0xNS4zLTE1LjMKCQkJCWMwLTEuNiwwLjMtMy4zLDAuNy00LjhjMC4xLTAuMywwLjEtMC41LTAuMS0wLjdzLTAuMy0wLjQtMC42LTAuNWMtOC0xLjktMTMuNi04LjktMTMuNi0xNy4xYzAtNy44LDQuOS0xNC41LDEyLjQtMTYuOAoJCQkJYzAuMy0wLjEsMC41LTAuMywwLjYtMC43YzAuMS0wLjQsMC0wLjYtMC4yLTAuOWMtMi40LTIuNi0zLjgtNi0zLjgtOS42YzAtNy40LDUuOC0xMy42LDEzLjEtMTRjMC4zLDAsMC42LTAuMiwwLjgtMC41CgkJCQljMC4xLTAuMywwLjEtMC42LDAtMC45Yy0xLjUtMi4yLTIuMi00LjgtMi4yLTcuNWMwLTcuNyw2LjMtMTQsMTQuMS0xNGgwLjFjMC40LDAsMC45LTAuMywwLjktMC44YzEuMi02LjcsNi45LTExLjcsMTMuOC0xMS43CgkJCQljNy42LDAsMTMuNyw2LDE0LDEzLjZjMCwwLjEsMCwwLjMsMCwwLjV2MTMuOWgtMTUuOEMzMzIuNiwxMjEsMzI5LjksMTE4LjYsMzI2LjYsMTE4LjZMMzI2LjYsMTE4LjZ6IE0zMjYuNiwxOTIKCQkJCWMyLjUsMCw0LjYsMi4xLDQuNiw0LjZzLTIuMSw0LjYtNC42LDQuNnMtNC42LTIuMS00LjYtNC42UzMyNC4xLDE5MiwzMjYuNiwxOTJ6IE00MDEuMywxOTAuOWMtMC4zLDAuMS0wLjUsMC4yLTAuNiwwLjUKCQkJCWMtMC4xLDAuMi0wLjEsMC41LTAuMSwwLjdjMC41LDEuNiwwLjcsMy4yLDAuNyw0LjhjMCw4LjQtNi44LDE1LjMtMTUuMywxNS4zYy0xLjQsMC0yLjgtMC4yLTQuMi0wLjZjLTAuMy0wLjEtMC41LDAtMC44LDAuMQoJCQkJYy0wLjIsMC4xLTAuNCwwLjQtMC40LDAuN2MtMC45LDcuNS03LjMsMTMtMTQuNywxM2MtOCwwLTE0LjYtNi40LTE0LjgtMTQuNGMwLTAuMSwwLTAuMywwLTAuNXYtMzYuNWgxNGM0LjEsMCw3LjUsMy40LDcuNSw3LjUKCQkJCXY4LjVjLTMuMiwwLjUtNS42LDMuMi01LjYsNi41YzAsMy42LDIuOSw2LjUsNi41LDYuNXM2LjUtMi45LDYuNS02LjVjMC0zLjMtMi40LTYtNS42LTYuNXYtOC41YzAtNS4zLTQuMi05LjUtOS41LTkuNWgtMTR2LTIyCgkJCQloMTZjMC41LDMuMiwzLjIsNS42LDYuNSw1LjZjMy42LDAsNi41LTIuOSw2LjUtNi41YzAtMy4zLTIuNC02LTUuNi02LjV2LTExYzMuMi0wLjUsNS42LTMuMiw1LjYtNi41YzAtMy42LTIuOS02LjUtNi41LTYuNQoJCQkJcy02LjUsMi45LTYuNSw2LjVjMCwzLjMsMi40LDYsNS42LDYuNXYxMWMtMi44LDAuNC01LDIuNi01LjUsNS41aC0xNnYtMzcuOGMwLTAuMiwwLTAuMywwLTAuNWMwLjItNy41LDYuNC0xMy42LDE0LTEzLjYKCQkJCWM2LjgsMCwxMi42LDQuOSwxMy44LDExLjdjMC4xLDAuNSwwLjUsMC44LDAuOSwwLjhoMC4yYzcuNywwLDE0LDYuMywxNCwxNGMwLDIuNi0wLjcsNS4zLTIuMiw3LjVjLTAuMiwwLjMtMC4yLDAuNiwwLDAuOQoJCQkJYzAuMSwwLjMsMC40LDAuNSwwLjgsMC41YzcuNCwwLjQsMTMuMSw2LjUsMTMuMSwxNGMwLDMuNi0xLjQsNi45LTMuOCw5LjZjLTAuMiwwLjItMC4zLDAuNi0wLjIsMC45YzAuMSwwLjMsMC4zLDAuNiwwLjYsMC43CgkJCQljNy40LDIuMywxMi40LDkuMiwxMi40LDE2LjhDNDE0LjksMTgyLDQwOS4zLDE4OSw0MDEuMywxOTAuOUw0MDEuMywxOTAuOXogTTM3My43LDE5MmMyLjUsMCw0LjYsMi4xLDQuNiw0LjZzLTIuMSw0LjYtNC42LDQuNgoJCQkJYy0yLjUsMC00LjYtMi4xLTQuNi00LjZTMzcxLjEsMTkyLDM3My43LDE5MnogTTM3OC4zLDE0OS4xYzAsMi41LTIuMSw0LjYtNC42LDQuNmMtMi41LDAtNC42LTIuMS00LjYtNC42YzAtMi41LDIuMS00LjYsNC42LTQuNgoJCQkJQzM3Ni4yLDE0NC41LDM3OC4zLDE0Ni41LDM3OC4zLDE0OS4xeiBNMzY5LDEyNS4yYzAtMi41LDIuMS00LjYsNC42LTQuNmMyLjUsMCw0LjYsMi4xLDQuNiw0LjZjMCwyLjUtMi4xLDQuNi00LjYsNC42CgkJCQlDMzcxLjEsMTI5LjcsMzY5LDEyNy43LDM2OSwxMjUuMnoiLz4KCQkJPGc+CgkJCQk8cGF0aCBpZD0iZCIgY2xhc3M9InN0MiIgZD0iTTQ1Nyw0NDAuOWwxMDYuOCw5Mi41TDQ1Nyw2MjUuOEgyNDMuMmwtMTA2LjgtOTIuNWwxMDYuOC05Mi41TDQ1Nyw0NDAuOUw0NTcsNDQwLjl6Ii8+CgkJCQk8cGF0aCBpZD0iZSIgY2xhc3M9InN0MyIgZD0iTTEzNi42LDUzMy40djM1LjRsMTA2LjgsOTIuNXYtMzUuNEwxMzYuNiw1MzMuNHoiLz4KCQkJCTxyZWN0IGlkPSJmIiB4PSIyNDMiIHk9IjYyNS43IiBjbGFzcz0ic3Q0IiB3aWR0aD0iMjEzLjgiIGhlaWdodD0iMzUuNCIvPgoJCQkJPHBhdGggaWQ9ImciIGNsYXNzPSJzdDUiIGQ9Ik01NjMuNiw1MzMuNHYzNS40bC0xMDYuOCw5Mi41di0zNS40TDU2My42LDUzMy40eiIvPgoJCQk8L2c+CgkJCTxnPgoJCQkJPHBhdGggaWQ9ImgiIGNsYXNzPSJzdDYiIGQ9Ik0xMzYuMiw0NjguNHYzNS40bDEwNi44LDkyLjV2LTM1LjRMMTM2LjIsNDY4LjR6Ii8+CgkJCQk8cGF0aCBpZD0iaSIgY2xhc3M9InN0NyIgZD0iTTQ1NywzNzYuMWwxMDYuOSw5Mi41bC0xMDYuOCw5Mi41SDI0My4ybC0xMDctOTIuN2wxMDctOTIuMkw0NTcsMzc2LjFMNDU3LDM3Ni4xeiIvPgoJCQkJPHJlY3QgaWQ9ImoiIHg9IjI0MyIgeT0iNTYxLjEiIGNsYXNzPSJzdDgiIHdpZHRoPSIyMTMuOCIgaGVpZ2h0PSIzNS40Ii8+CgkJCQk8cGF0aCBpZD0iayIgY2xhc3M9InN0OSIgZD0iTTU2My42LDQ2OC40djM1LjRsLTEwNi44LDkyLjV2LTM1LjRMNTYzLjYsNDY4LjRMNTYzLjYsNDY4LjR6Ii8+CgkJCTwvZz4KCQkJPGc+CgkJCQk8cGF0aCBpZD0ibCIgY2xhc3M9InN0MTAiIGQ9Ik00NTcsMzExLjRsMTA2LjgsOTIuNUw0NTcsNDk2LjNIMjQzLjJsLTEwNi44LTkyLjVsMTA3LTkyLjVINDU3TDQ1NywzMTEuNHoiLz4KCQkJCTxwYXRoIGlkPSJtIiBjbGFzcz0ic3QxMSIgZD0iTTEzNi42LDQwMy44djM1LjRsMTA2LjksOTIuNXYtMzUuNEwxMzYuNiw0MDMuOHoiLz4KCQkJCTxyZWN0IGlkPSJuIiB4PSIyNDMuMyIgeT0iNDk2LjMiIGNsYXNzPSJzdDEyIiB3aWR0aD0iMjEzLjgiIGhlaWdodD0iMzUuNCIvPgoJCQkJPHBhdGggaWQ9Im8iIGNsYXNzPSJzdDEzIiBkPSJNNTYzLjYsNDAzLjh2MzUuNGwtMTA2LjksOTIuNXYtMzUuNEw1NjMuNiw0MDMuOHoiLz4KCQkJPC9nPgoJCQk8ZyBjbGFzcz0ic3QxNCI+CgkJCQk8cGF0aCBpZD0icCIgZD0iTTI0My4zLDUzMS43bDIxMy43LDAuNmwtMzMuMSwyOC43SDI0My4ybC0xMDctOTIuN2wxNy0xNC43TDI0My4zLDUzMS43TDI0My4zLDUzMS43eiIvPgoJCQk8L2c+CgkJCTxnPgoJCQkJPHBhdGggaWQ9InEiIGNsYXNzPSJzdDE1IiBkPSJNMjQzLjMsNTk2LjVsMjEzLjcsMC42bC0zMy4xLDI4LjdIMjQzLjJsLTEwNy05Mi43bDE3LTE0LjdMMjQzLjMsNTk2LjV6Ii8+CgkJCTwvZz4KCQkJCgkJCQk8cmFkaWFsR3JhZGllbnQgaWQ9InNfMDAwMDAxNzY3MjY3NTE0NDEzNTYwNDk3MDAwMDAwMDY1NTE1MjIyNzgyODY4OTQ5ODFfIiBjeD0iLTQ2MDQuMzQwOCIgY3k9Ii0yODUuNjU1IiByPSIxLjM2MjgiIGdyYWRpZW50VHJhbnNmb3JtPSJtYXRyaXgoLTEzNC41NSAwIDAgLTY3LjczIC02MTkxNjIuMzEyNSAtMTg5NDQuNTk3NykiIGdyYWRpZW50VW5pdHM9InVzZXJTcGFjZU9uVXNlIj4KCQkJCTxzdG9wICBvZmZzZXQ9IjAiIHN0eWxlPSJzdG9wLWNvbG9yOiNGRkZGRkYiLz4KCQkJCTxzdG9wICBvZmZzZXQ9IjAuMTEiIHN0eWxlPSJzdG9wLWNvbG9yOiNGRkZGRkY7c3RvcC1vcGFjaXR5OjAuOTgiLz4KCQkJCTxzdG9wICBvZmZzZXQ9IjAuMjQiIHN0eWxlPSJzdG9wLWNvbG9yOiNGRkZGRkY7c3RvcC1vcGFjaXR5OjAuOTMiLz4KCQkJCTxzdG9wICBvZmZzZXQ9IjAuMzciIHN0eWxlPSJzdG9wLWNvbG9yOiNGRkZGRkY7c3RvcC1vcGFjaXR5OjAuODUiLz4KCQkJCTxzdG9wICBvZmZzZXQ9IjAuNSIgc3R5bGU9InN0b3AtY29sb3I6I0ZGRkZGRjtzdG9wLW9wYWNpdHk6MC43MyIvPgoJCQkJPHN0b3AgIG9mZnNldD0iMC42MyIgc3R5bGU9InN0b3AtY29sb3I6I0ZGRkZGRjtzdG9wLW9wYWNpdHk6MC41NyIvPgoJCQkJPHN0b3AgIG9mZnNldD0iMC43NyIgc3R5bGU9InN0b3AtY29sb3I6I0ZGRkZGRjtzdG9wLW9wYWNpdHk6MC4zOSIvPgoJCQkJPHN0b3AgIG9mZnNldD0iMC45MSIgc3R5bGU9InN0b3AtY29sb3I6I0ZGRkZGRjtzdG9wLW9wYWNpdHk6MC4xNyIvPgoJCQkJPHN0b3AgIG9mZnNldD0iMSIgc3R5bGU9InN0b3AtY29sb3I6I0ZGRkZGRjtzdG9wLW9wYWNpdHk6MCIvPgoJCQk8L3JhZGlhbEdyYWRpZW50PgoJCQkKCQkJCTxlbGxpcHNlIGlkPSJzIiBzdHlsZT0ib3BhY2l0eTowLjc7ZmlsbDp1cmwoI3NfMDAwMDAxNzY3MjY3NTE0NDEzNTYwNDk3MDAwMDAwMDY1NTE1MjIyNzgyODY4OTQ5ODFfKTtlbmFibGUtYmFja2dyb3VuZDpuZXcgICAgOyIgY3g9IjM1MC40IiBjeT0iNDAzLjgiIHJ4PSIxODMuNiIgcnk9IjkyLjUiLz4KCQkJCgkJCQk8cmFkaWFsR3JhZGllbnQgaWQ9IlNWR0lEXzFfIiBjeD0iMzUwLjUyNTkiIGN5PSIxNTQ4LjQwNzMiIHI9IjYzLjc1NjciIGdyYWRpZW50VHJhbnNmb3JtPSJtYXRyaXgoMSAwIDAgMC4zNSAwIC0xMzYuOTc4OCkiIGdyYWRpZW50VW5pdHM9InVzZXJTcGFjZU9uVXNlIj4KCQkJCTxzdG9wICBvZmZzZXQ9IjAiIHN0eWxlPSJzdG9wLWNvbG9yOiMzMzAwNzIiLz4KCQkJCTxzdG9wICBvZmZzZXQ9IjAuMTgiIHN0eWxlPSJzdG9wLWNvbG9yOiMzMzAwNzI7c3RvcC1vcGFjaXR5OjAuOTYiLz4KCQkJCTxzdG9wICBvZmZzZXQ9IjAuMzciIHN0eWxlPSJzdG9wLWNvbG9yOiMzMzAwNzI7c3RvcC1vcGFjaXR5OjAuODUiLz4KCQkJCTxzdG9wICBvZmZzZXQ9IjAuNTYiIHN0eWxlPSJzdG9wLWNvbG9yOiMzMzAwNzI7c3RvcC1vcGFjaXR5OjAuNjYiLz4KCQkJCTxzdG9wICBvZmZzZXQ9IjAuNzciIHN0eWxlPSJzdG9wLWNvbG9yOiMzMzAwNzI7c3RvcC1vcGFjaXR5OjAuMzkiLz4KCQkJCTxzdG9wICBvZmZzZXQ9IjAuOTciIHN0eWxlPSJzdG9wLWNvbG9yOiMzMzAwNzI7c3RvcC1vcGFjaXR5OjYuMDAwMDAwZS0wMiIvPgoJCQkJPHN0b3AgIG9mZnNldD0iMSIgc3R5bGU9InN0b3AtY29sb3I6IzMzMDA3MjtzdG9wLW9wYWNpdHk6MCIvPgoJCQk8L3JhZGlhbEdyYWRpZW50PgoJCQk8ZWxsaXBzZSBjbGFzcz0ic3QxNyIgY3g9IjM1MC41IiBjeT0iNDA1IiByeD0iNjQuMiIgcnk9IjIyLjEiLz4KCQkJPGc+CgkJCQk8ZWxsaXBzZSBjbGFzcz0ic3QxIiBjeD0iMzUwLjIiIGN5PSIzODMuMiIgcng9IjMyLjciIHJ5PSI3LjciLz4KCQkJCTxwYXRoIGNsYXNzPSJzdDEiIGQ9Ik0zNTAuMiwzOTEuOGMtMTYuNywwLTMzLjctMi45LTMzLjctOC42czE2LjktOC42LDMzLjctOC42YzE2LjcsMCwzMy43LDIuOSwzMy43LDguNgoJCQkJCUMzODMuOSwzODguOSwzNjYuOSwzOTEuOCwzNTAuMiwzOTEuOHogTTM1MC4yLDM3Ni41Yy0xOS43LDAtMzEuOCwzLjktMzEuOCw2LjdjMCwyLjgsMTIuMSw2LjcsMzEuOCw2LjcKCQkJCQljMTkuNywwLDMxLjgtMy45LDMxLjgtNi43QzM4MiwzODAuNCwzNjkuOCwzNzYuNSwzNTAuMiwzNzYuNXoiLz4KCQkJPC9nPgoJCQk8cGF0aCBjbGFzcz0ic3QxIiBkPSJNMzUwLjIsNDAyLjNjLTIuOCwwLTUuNSwwLjMtNy4yLDAuN2MtMS41LDAuNC0yLjQsMC45LTIuNCwxLjVjMCwxLjMsNC4zLDIuMiw5LjYsMi4yYzUuMywwLDkuNi0xLjEsOS42LTIuMgoJCQkJYzAtMC43LTEuNC0xLjQtMy41LTEuOEMzNTQuNiw0MDIuNCwzNTIuNSw0MDIuMywzNTAuMiw0MDIuM0wzNTAuMiw0MDIuM3oiLz4KCQkJPGVsbGlwc2UgY2xhc3M9InN0MSIgY3g9IjM1MC4yIiBjeT0iMzExLjQiIHJ4PSI0Ni41IiByeT0iMTAuOSIvPgoJCQk8Zz4KCQkJCTxlbGxpcHNlIGNsYXNzPSJzdDEiIGN4PSIzNTAuNyIgY3k9IjM0Ny40IiByeD0iNDMiIHJ5PSIxMC4xIi8+CgkJCQk8cGF0aCBjbGFzcz0ic3QxIiBkPSJNMzUwLjcsMzU4LjZjLTIxLjQsMC00NC0zLjktNDQtMTFzMjIuNi0xMSw0NC0xMWMyMS40LDAsNDQsMy45LDQ0LDExUzM3Mi4xLDM1OC42LDM1MC43LDM1OC42egoJCQkJCSBNMzUwLjcsMzM4LjRjLTI0LjcsMC00Miw0LjgtNDIsOS4yYzAsNC4zLDE3LjIsOS4yLDQyLDkuMmMyNC43LDAsNDItNC44LDQyLTkuMkMzOTIuNywzNDMuMSwzNzUuNSwzMzguNCwzNTAuNywzMzguNHoiLz4KCQkJPC9nPgoJCQk8Zz4KCQkJCTxwYXRoIGNsYXNzPSJzdDEiIGQ9Ik0zNTAuMiwzNjFjLTAuNSwwLTAuOS0wLjQtMC45LTAuOXYtMi40YzAtMC41LDAuNC0wLjksMC45LTAuOWMwLjUsMCwwLjksMC40LDAuOSwwLjl2Mi40CgkJCQkJQzM1MS4yLDM2MC42LDM1MC43LDM2MSwzNTAuMiwzNjF6Ii8+CgkJCQk8cGF0aCBjbGFzcz0ic3QxIiBkPSJNMzUwLjIsMzc3LjVjLTAuNSwwLTAuOS0wLjQtMC45LTAuOXYtNC4xYzAtMC41LDAuNC0wLjksMC45LTAuOWMwLjUsMCwwLjksMC40LDAuOSwwLjl2NC4xCgkJCQkJQzM1MS4yLDM3Ny4xLDM1MC43LDM3Ny41LDM1MC4yLDM3Ny41eiBNMzUwLjIsMzY5LjNjLTAuNSwwLTAuOS0wLjQtMC45LTAuOXYtNC4xYzAtMC41LDAuNC0wLjksMC45LTAuOWMwLjUsMCwwLjksMC40LDAuOSwwLjkKCQkJCQl2NC4xQzM1MS4yLDM2OC45LDM1MC43LDM2OS4zLDM1MC4yLDM2OS4zeiIvPgoJCQkJPHBhdGggY2xhc3M9InN0MSIgZD0iTTM1MC4yLDM4NC4xYy0wLjUsMC0wLjktMC40LTAuOS0wLjl2LTIuNGMwLTAuNSwwLjQtMC45LDAuOS0wLjljMC41LDAsMC45LDAuNCwwLjksMC45djIuNAoJCQkJCUMzNTEuMiwzODMuNywzNTAuNywzODQuMSwzNTAuMiwzODQuMXoiLz4KCQkJPC9nPgoJCQk8Zz4KCQkJCTxwYXRoIGNsYXNzPSJzdDAiIGQ9Ik0zNTAuMiwyODcuN2MtMC41LDAtMC45LTAuNC0wLjktMC45di0yLjRjMC0wLjUsMC40LTAuOSwwLjktMC45YzAuNSwwLDAuOSwwLjQsMC45LDAuOXYyLjQKCQkJCQlDMzUxLjIsMjg3LjIsMzUwLjcsMjg3LjcsMzUwLjIsMjg3Ljd6Ii8+CgkJCQk8cGF0aCBjbGFzcz0ic3QwIiBkPSJNMzUwLjIsMzA0LjJjLTAuNSwwLTAuOS0wLjQtMC45LTAuOXYtNC4xYzAtMC41LDAuNC0wLjksMC45LTAuOWMwLjUsMCwwLjksMC40LDAuOSwwLjl2NC4xCgkJCQkJQzM1MS4yLDMwMy44LDM1MC43LDMwNC4yLDM1MC4yLDMwNC4yeiBNMzUwLjIsMjk2Yy0wLjUsMC0wLjktMC40LTAuOS0wLjl2LTQuMmMwLTAuNSwwLjQtMC45LDAuOS0wLjljMC41LDAsMC45LDAuNCwwLjksMC45CgkJCQkJdjQuMUMzNTEuMiwyOTUuNSwzNTAuNywyOTYsMzUwLjIsMjk2eiIvPgoJCQkJPHBhdGggY2xhc3M9InN0MCIgZD0iTTM1MC4yLDMxMC44Yy0wLjUsMC0wLjktMC40LTAuOS0wLjl2LTIuNGMwLTAuNSwwLjQtMC45LDAuOS0wLjljMC41LDAsMC45LDAuNCwwLjksMC45djIuNAoJCQkJCUMzNTEuMiwzMTAuNCwzNTAuNywzMTAuOCwzNTAuMiwzMTAuOHoiLz4KCQkJPC9nPgoJCQk8Zz4KCQkJCTxwYXRoIGNsYXNzPSJzdDEiIGQ9Ik0zNTAuMiwzMjUuN2MtMC41LDAtMC45LTAuNC0wLjktMC45di0yLjRjMC0wLjUsMC40LTAuOSwwLjktMC45YzAuNSwwLDAuOSwwLjQsMC45LDAuOXYyLjQKCQkJCQlDMzUxLjIsMzI1LjIsMzUwLjcsMzI1LjcsMzUwLjIsMzI1Ljd6Ii8+CgkJCQk8cGF0aCBjbGFzcz0ic3QxIiBkPSJNMzUwLjIsMzQyLjNjLTAuNSwwLTAuOS0wLjQtMC45LTAuOXYtNC4yYzAtMC41LDAuNC0wLjksMC45LTAuOWMwLjUsMCwwLjksMC40LDAuOSwwLjl2NC4xCgkJCQkJQzM1MS4yLDM0MS45LDM1MC43LDM0Mi4zLDM1MC4yLDM0Mi4zeiBNMzUwLjIsMzM0Yy0wLjUsMC0wLjktMC40LTAuOS0wLjl2LTQuMWMwLTAuNSwwLjQtMC45LDAuOS0wLjljMC41LDAsMC45LDAuNCwwLjksMC45CgkJCQkJdjQuMUMzNTEuMiwzMzMuNSwzNTAuNywzMzQsMzUwLjIsMzM0eiIvPgoJCQkJPHBhdGggY2xhc3M9InN0MSIgZD0iTTM1MC4yLDM0OC45Yy0wLjUsMC0wLjktMC40LTAuOS0wLjl2LTIuNGMwLTAuNSwwLjQtMC45LDAuOS0wLjljMC41LDAsMC45LDAuNCwwLjksMC45djIuNAoJCQkJCUMzNTEuMiwzNDguNCwzNTAuNywzNDguOSwzNTAuMiwzNDguOXoiLz4KCQkJPC9nPgoJCQk8Zz4KCQkJCTxnPgoJCQkJCTxkZWZzPgoJCQkJCQk8cGF0aCBpZD0iU1ZHSURfMDAwMDAwMDY2ODExMjI5NzY3MDY1NjU5MTAwMDAwMDM5MzE3NTk1OTIwOTk0NDYxNjZfIiBkPSJNMzUwLjIsMzkwLjNjLTIuOCwwLTUuNSwxMi4yLTcuMiwxMi43CgkJCQkJCQljLTEuNSwwLjQtMi40LDAuOS0yLjQsMS41YzAsMS4zLDQuMywyLjIsOS42LDIuMmM1LjMsMCw5LjYtMS4xLDkuNi0yLjJjMC0wLjctMS40LTEuNC0zLjUtMS44CgkJCQkJCQlDMzU0LjYsNDAyLjQsMzUyLjUsMzkwLjMsMzUwLjIsMzkwLjNMMzUwLjIsMzkwLjN6Ii8+CgkJCQkJPC9kZWZzPgoJCQkJCTxjbGlwUGF0aCBpZD0iU1ZHSURfMDAwMDAwMTYwNTgzMDcxOTgxMDEyNTgyNDAwMDAwMDc1MjAxMDE4NzEzMzc5NjExMDRfIj4KCQkJCQkJPHVzZSB4bGluazpocmVmPSIjU1ZHSURfMDAwMDAwMDY2ODExMjI5NzY3MDY1NjU5MTAwMDAwMDM5MzE3NTk1OTIwOTk0NDYxNjZfIiAgc3R5bGU9Im92ZXJmbG93OnZpc2libGU7Ii8+CgkJCQkJPC9jbGlwUGF0aD4KCQkJCQk8ZyBzdHlsZT0iY2xpcC1wYXRoOnVybCgjU1ZHSURfMDAwMDAwMTYwNTgzMDcxOTgxMDEyNTgyNDAwMDAwMDc1MjAxMDE4NzEzMzc5NjExMDRfKTsiPgoJCQkJCQk8Zz4KCQkJCQkJCTxwYXRoIGNsYXNzPSJzdDEiIGQ9Ik0zNTAuMiwzOTQuN2MtMC41LDAtMC45LTAuNC0wLjktMC45di0yLjRjMC0wLjUsMC40LTAuOSwwLjktMC45YzAuNSwwLDAuOSwwLjQsMC45LDAuOXYyLjQKCQkJCQkJCQlDMzUxLjIsMzk0LjIsMzUwLjcsMzk0LjcsMzUwLjIsMzk0Ljd6Ii8+CgkJCQkJCQk8cGF0aCBjbGFzcz0ic3QxIiBkPSJNMzUwLjIsNDAxLjhjLTAuNSwwLTAuOS0wLjQtMC45LTAuOXYtMy42YzAtMC41LDAuNC0wLjksMC45LTAuOWMwLjUsMCwwLjksMC40LDAuOSwwLjl2My42CgkJCQkJCQkJQzM1MS4yLDQwMS4zLDM1MC43LDQwMS44LDM1MC4yLDQwMS44eiIvPgoJCQkJCQkJPHBhdGggY2xhc3M9InN0MSIgZD0iTTM1MC4yLDQwNy44Yy0wLjUsMC0wLjktMC40LTAuOS0wLjl2LTIuNGMwLTAuNSwwLjQtMC45LDAuOS0wLjljMC41LDAsMC45LDAuNCwwLjksMC45djIuNAoJCQkJCQkJCUMzNTEuMiw0MDcuNCwzNTAuNyw0MDcuOCwzNTAuMiw0MDcuOHoiLz4KCQkJCQkJPC9nPgoJCQkJCTwvZz4KCQkJCTwvZz4KCQkJPC9nPgoJCQk8cGF0aCBjbGFzcz0ic3QwIiBkPSJNMzUwLjIsMjg1LjJjLTE1LjEsMC0yOS4zLTEuNC00MC4xLTMuOWMtNy45LTEuOS0xNy4yLTUuMi0xNy4yLTEwLjNjMC01LjIsOS40LTguNSwxNy4yLTEwLjMKCQkJCWMxMC43LTIuNSwyNC45LTMuOSw0MC4xLTMuOWMxNS4xLDAsMjkuMywxLjQsNDAuMSwzLjljNy45LDEuOSwxNy4yLDUuMiwxNy4yLDEwLjNjMCw1LjItOS40LDguNS0xNy4yLDEwLjMKCQkJCUMzNzkuNiwyODMuOCwzNjUuNCwyODUuMiwzNTAuMiwyODUuMnogTTM1MC4yLDI1OC43Yy0xNSwwLTI5LjEsMS40LTM5LjcsMy45Yy05LjksMi4zLTE1LjgsNS41LTE1LjgsOC40YzAsMi45LDUuOSw2LjEsMTUuOCw4LjQKCQkJCWMxMC42LDIuNSwyNC43LDMuOSwzOS43LDMuOWMxNSwwLDI5LjEtMS40LDM5LjctMy45YzkuOS0yLjMsMTUuOC01LjUsMTUuOC04LjRjMC0yLjktNS45LTYuMS0xNS44LTguNAoJCQkJQzM3OS4yLDI2MCwzNjUuMSwyNTguNywzNTAuMiwyNTguN3oiLz4KCQkJPHBhdGggY2xhc3M9InN0MCIgZD0iTTM1MC4yLDMyMy4yYy0yMywwLTQ3LjUtNC4yLTQ3LjUtMTEuOXMyNC41LTExLjksNDcuNS0xMS45YzIzLDAsNDcuNSw0LjIsNDcuNSwxMS45CgkJCQlTMzczLjIsMzIzLjIsMzUwLjIsMzIzLjJ6IE0zNTAuMiwzMDEuNGMtMjYuOCwwLTQ1LjUsNS4zLTQ1LjUsMTBzMTguNywxMCw0NS41LDEwYzI2LjgsMCw0NS41LTUuMyw0NS41LTEwCgkJCQlTMzc3LDMwMS40LDM1MC4yLDMwMS40eiIvPgoJCTwvZz4KCTwvZz4KPC9nPgo8L3N2Zz4K ->>>>>>> f66b2772 (feat: add ai-navigator-app) +icon: PHN2ZyB3aWR0aD0iNDgiIGhlaWdodD0iNDgiIHZpZXdCb3g9IjAgMCA0OCA0OCIgZmlsbD0ibm9uZSIgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIj4KPHJlY3Qgd2lkdGg9IjQ4IiBoZWlnaHQ9IjQ4IiBmaWxsPSIjMzMwMDcyIi8+CjxnIGNsaXAtcGF0aD0idXJsKCNjbGlwMF8xMzkzXzEyMzUpIj4KPHBhdGggb3BhY2l0eT0iMC40IiBmaWxsLXJ1bGU9ImV2ZW5vZGQiIGNsaXAtcnVsZT0iZXZlbm9kZCIgZD0iTTIzLjg3NTEgMTAuMTcxN0MyMC42ODAxIDEwLjE3MTcgMTcuNDkyNSAxMS4yNjExIDE0Ljg5NjYgMTMuNDM5M0MxMy4zMzQyIDE0Ljc1MDMgMTIuMTI2NyAxNi4zNDU1IDExLjI4ODEgMTguMDkyM0MxMS4xNzE3IDE4LjA4MTIgMTEuMDU4NCAxOC4wNTYgMTAuOTM4OSAxOC4wNTZDOC44NTIxMSAxOC4wNTYgNy4xNzE4OCAxOS43MzYxIDcuMTcxODggMjEuODIyOVYyNi40Nzg2QzcuMTcxODggMjguNTY1NCA4Ljg1MjExIDMwLjI0NTUgMTAuOTM4OSAzMC4yNDU1QzExLjA1ODQgMzAuMjQ1NSAxMS4xNzE3IDMwLjIxOTYgMTEuMjg4MSAzMC4yMDkzQzExLjQzODIgMzAuNTIwNSAxMS41OTM2IDMwLjgyOTQgMTEuNzY4NyAzMS4xMzI5QzEyLjQ1MzEgMzIuMzU0NSAxNC4yODE4IDMxLjMwODYgMTMuNTc1NiAzMC4wOTkyQzEwLjY4NDQgMjUuMDkxMyAxMS44MDQxIDE4Ljc0NTUgMTYuMjMzNyAxNS4wMjg2QzIwLjY2MzQgMTEuMzExNyAyNy4wOTc1IDExLjMxMTcgMzEuNTI3MSAxNS4wMjg2QzM1Ljk1NjggMTguNzQ1NSAzNy4wNzY1IDI1LjA5MTMgMzQuMTg1MiAzMC4wOTkyTDM0LjE1NDEgMzAuMTUxTDM0LjEzMzIgMzAuMjAyOUMzNC4xMzMyIDMwLjIwMjkgMzIuNzI5IDMzLjMwOTQgMjkuOTcxNiAzMy4zMDk0TDI2LjQ4MTIgMzMuMjc4MkMyNi4xNTM5IDMyLjgwMDEgMjUuNjMgMzIuNDY3MyAyNS4wMDQ1IDMyLjQ2NzNIMjIuNzU0NUMyMS43NDU3IDMyLjQ2NzMgMjAuOTM0MSAzMy4yODE1IDIwLjkzNDEgMzQuMjkwNEMyMC45MzQxIDM0LjkxMjYgMjEuMzI4OSAzNS4zODUyIDIyLjIzMjUgMzUuMzg1MkwyOS45NzE2IDM1LjM4NThDMzQuMTA5NCAzNS4zODU4IDM1Ljg5OTEgMzEuMzIzNSAzNS45ODA1IDMxLjEzNTVWMzEuMTI0NEMzNi4xNTQxIDMwLjgyMzYgMzYuMzA2OCAzMC41MTQ3IDM2LjQ1NTkgMzAuMjA2M0MzNi41Nzc1IDMwLjIxNzMgMzYuNjk1OSAzMC4yNDI2IDM2LjgyMTIgMzAuMjQyNkMzOC45MDc5IDMwLjI0MjYgNDAuNTg4MiAyOC41NjI0IDQwLjU4ODIgMjYuNDc1NlYyMS44MTk5QzQwLjU4ODIgMTkuNzMzMiAzOC45MDc5IDE4LjA1MyAzNi44MjEyIDE4LjA1M0MzNi43MDA2IDE4LjA1MyAzNi41ODY5IDE4LjA3MjkgMzYuNDY5NCAxOC4wODkzQzM1LjYzMjcgMTYuMzQyNCAzNC40Mjg4IDE0Ljc0NzQgMzIuODY2MiAxMy40MzYzQzMwLjI3MDQgMTEuMjU4MSAyNy4wNjk1IDEwLjE2ODcgMjMuODc0NCAxMC4xNjg3TDIzLjg3NTEgMTAuMTcxN1oiIGZpbGw9IndoaXRlIi8+CjxwYXRoIGQ9Ik0xNy4xMzU5IDE3LjU5MDVDMTcuNzgzMSAxNi45MDkgMTguNTIzOSAxNi43Mzc1IDE5LjMzNDggMTYuNzkwNEMyMC42ODYzIDE2Ljg3OTIgMjIuMjM0MyAxNy41OTA1IDIzLjg4MDQgMTcuNTkwNUMyNi41MTQzIDE3LjU5MDUgMjguODk5IDE1Ljc3MzMgMzAuNjI1IDE3LjU5MDVDMzIuMzUxMSAxOS40MDc3IDMzLjQyIDIxLjg4MTEgMzMuNDIgMjQuNTE1QzMzLjQyIDI2LjUwMjggMzIuODExOCAyOC45ODk1IDMxLjc3MTUgMjkuMTczM0MzMC4wNTQ5IDI5LjQ3NzQgMjcuMTYwNSAyOC4xOTM0IDIzLjg4MDQgMjguMTkzNEMyMC43ODUyIDI4LjE5MzQgMTguMDM1NCAyOS4zMzc3IDE2LjI5MjggMjkuMjEwOUMxNS4wNjk2IDI5LjEyMjEgMTQuMzQzNSAyNi42ODc3IDE0LjM0MzUgMjQuNTE1QzE0LjM0MzUgMjEuODgxMSAxNS40MDk4IDE5LjQwNzcgMTcuMTM1OSAxNy41OTA1WiIgZmlsbD0id2hpdGUiLz4KPHBhdGggZD0iTTIwLjY5MDkgMjMuMDExNEMyMC42OTA1IDIyLjA0OTEgMTkuOTEwNiAyMS4yNjkyIDE4Ljk0ODMgMjEuMjY4OEMxNy45ODYxIDIxLjI2OTIgMTcuMjA2MSAyMi4wNDkxIDE3LjIwNTggMjMuMDExNEMxNy4yMDYxIDIzLjk3MzYgMTcuOTg2MSAyNC43NTM2IDE4Ljk0ODMgMjQuNzUzOUMxOS45MTA2IDI0Ljc1MzYgMjAuNjkwNSAyMy45NzM2IDIwLjY5MDkgMjMuMDExNFoiIGZpbGw9IiMzMzAwNzIiLz4KPHBhdGggZD0iTTMwLjU1NTQgMjMuMDExNEMzMC41NTUgMjIuMDQ5MSAyOS43NzUxIDIxLjI2OTIgMjguODEyOCAyMS4yNjg4QzI3Ljg1MDYgMjEuMjY5MiAyNy4wNzA2IDIyLjA0OTEgMjcuMDcwMyAyMy4wMTE0QzI3LjA3MDYgMjMuOTczNiAyNy44NTA2IDI0Ljc1MzYgMjguODEyOCAyNC43NTM5QzI5Ljc3NTEgMjQuNzUzNiAzMC41NTUgMjMuOTczNiAzMC41NTU0IDIzLjAxMTRaIiBmaWxsPSIjMzMwMDcyIi8+CjwvZz4KPGRlZnM+CjxjbGlwUGF0aCBpZD0iY2xpcDBfMTM5M18xMjM1Ij4KPHJlY3Qgd2lkdGg9IjM0IiBoZWlnaHQ9IjI1Ljc5MzEiIGZpbGw9IndoaXRlIiB0cmFuc2Zvcm09InRyYW5zbGF0ZSg3IDEwLjAwMDcpIi8+CjwvY2xpcFBhdGg+CjwvZGVmcz4KPC9zdmc+Cg== From f581ab63afbed5eae72041cc4c8ae4585db86ace Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Max=20Str=C3=BCbing?= Date: Thu, 7 Sep 2023 10:31:47 +0200 Subject: [PATCH 09/12] chore: indent securityContext --- .../0.1.0/ai-navigator-app.yaml | 18 +++++++++--------- 1 file changed, 9 insertions(+), 9 deletions(-) diff --git a/services/ai-navigator-app/0.1.0/ai-navigator-app.yaml b/services/ai-navigator-app/0.1.0/ai-navigator-app.yaml index 1b0c2d8d3..a9fae4937 100644 --- a/services/ai-navigator-app/0.1.0/ai-navigator-app.yaml +++ b/services/ai-navigator-app/0.1.0/ai-navigator-app.yaml @@ -81,15 +81,15 @@ spec: initialDelaySeconds: 60 timeoutSeconds: 30 failureThreshold: 10 - securityContext: - allowPrivilegeEscalation: false - capabilities: - drop: - - ALL - readOnlyRootFilesystem: true - runAsNonRoot: true - seccompProfile: - type: RuntimeDefault + securityContext: + allowPrivilegeEscalation: false + capabilities: + drop: + - ALL + readOnlyRootFilesystem: true + runAsNonRoot: true + seccompProfile: + type: RuntimeDefault --- apiVersion: v1 kind: Service From 3d5e2e7c3569abc32ed221bf2e7f22793fc7e723 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Max=20Str=C3=BCbing?= Date: Thu, 7 Sep 2023 14:13:42 +0200 Subject: [PATCH 10/12] chore: add period --- services/ai-navigator-app/metadata.yaml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/services/ai-navigator-app/metadata.yaml b/services/ai-navigator-app/metadata.yaml index d5aacc506..d23b5310a 100644 --- a/services/ai-navigator-app/metadata.yaml +++ b/services/ai-navigator-app/metadata.yaml @@ -1,5 +1,5 @@ displayName: DKP AI Navigator -description: The AI Navigator is a state-of-the-art chatbot powered by advanced artificial intelligence, purpose-built for seamless Kubernetes cluster management and DKP environment optimization +description: The AI Navigator is a state-of-the-art chatbot powered by advanced artificial intelligence, purpose-built for seamless Kubernetes cluster management and DKP environment optimization. category: - tools type: platform From ca31987936a0d45650bae34b8d5331e4a7a72215 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Max=20Str=C3=BCbing?= Date: Thu, 7 Sep 2023 17:03:18 +0200 Subject: [PATCH 11/12] chore: use correct version --- services/ai-navigator-app/0.1.0/ai-navigator-app.yaml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/services/ai-navigator-app/0.1.0/ai-navigator-app.yaml b/services/ai-navigator-app/0.1.0/ai-navigator-app.yaml index a9fae4937..46f1fb3cc 100644 --- a/services/ai-navigator-app/0.1.0/ai-navigator-app.yaml +++ b/services/ai-navigator-app/0.1.0/ai-navigator-app.yaml @@ -61,7 +61,7 @@ spec: serviceAccountName: ai-navigator-app containers: - name: ai-navigator-app - image: mesosphere/ai-navigator-app:development # TODO: Version + image: mesosphere/ai-navigator-app:v0.0.2 envFrom: - configMapRef: name: ai-navigator-app-config From 11da725d4fbd8144865588e42c54a03ce299431c Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Miko=C5=82aj=20Baranowski?= Date: Fri, 8 Sep 2023 13:03:16 +0200 Subject: [PATCH 12/12] chore: Bump to 0.0.3 --- services/ai-navigator-app/0.1.0/ai-navigator-app.yaml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/services/ai-navigator-app/0.1.0/ai-navigator-app.yaml b/services/ai-navigator-app/0.1.0/ai-navigator-app.yaml index 46f1fb3cc..46dcc2b79 100644 --- a/services/ai-navigator-app/0.1.0/ai-navigator-app.yaml +++ b/services/ai-navigator-app/0.1.0/ai-navigator-app.yaml @@ -61,7 +61,7 @@ spec: serviceAccountName: ai-navigator-app containers: - name: ai-navigator-app - image: mesosphere/ai-navigator-app:v0.0.2 + image: mesosphere/ai-navigator-app:v0.0.3 envFrom: - configMapRef: name: ai-navigator-app-config