github.com/replicatedcom/ship@v0.50.0/integration/init/grafana-with-values/expected/.ship/state.json (about)

     1  {
     2    "v1": {
     3      "config": {},
     4      "helmValues": "rbac:\n  create: true\n  pspEnabled: true\nserviceAccount:\n  create: true\n  name:\n\nreplicas: 1\n\ndeploymentStrategy: RollingUpdate\n\nreadinessProbe:\n  httpGet:\n    path: /api/health\n    port: 3000\n\nlivenessProbe:\n  httpGet:\n    path: /api/health\n    port: 3000\n  initialDelaySeconds: 60\n  timeoutSeconds: 30\n  failureThreshold: 10\n\nimage:\n  repository: grafana/grafana\n  tag: 5.3.4\n  pullPolicy: IfNotPresent\n\n  ## Optionally specify an array of imagePullSecrets.\n  ## Secrets must be manually created in the namespace.\n  ## ref: https://kubernetes.io/docs/tasks/configure-pod-container/pull-image-private-registry/\n  ##\n  # pullSecrets:\n  #   - myRegistrKeySecretName\n\nsecurityContext:\n  runAsUser: 472\n  fsGroup: 472\n\n## Assign a PriorityClassName to pods if set\n# priorityClassName:\n\ndownloadDashboardsImage:\n  repository: appropriate/curl\n  tag: latest\n  pullPolicy: IfNotPresent\n\n## Pod Annotations\n# podAnnotations: {}\n\n## Deployment annotations\n# annotations: {}\n\n## Expose the grafana service to be accessed from outside the cluster (LoadBalancer service).\n## or access it from within the cluster (ClusterIP service). Set the service type and the port to serve it.\n## ref: http://kubernetes.io/docs/user-guide/services/\n##\nservice:\n  type: ClusterIP\n  port: 80\n  annotations: {}\n  labels: {}\n\ningress:\n  enabled: false\n  annotations: {}\n    # kubernetes.io/ingress.class: nginx\n    # kubernetes.io/tls-acme: \"true\"\n  labels: {}\n  path: /\n  hosts:\n    - chart-example.local\n  tls: []\n  #  - secretName: chart-example-tls\n  #    hosts:\n  #      - chart-example.local\n\nresources: {}\n#  limits:\n#    cpu: 100m\n#    memory: 128Mi\n#  requests:\n#    cpu: 100m\n#    memory: 128Mi\n\n## Node labels for pod assignment\n## ref: https://kubernetes.io/docs/user-guide/node-selection/\n#\nnodeSelector: {}\n\n## Tolerations for pod assignment\n## ref: https://kubernetes.io/docs/concepts/configuration/taint-and-toleration/\n##\ntolerations: []\n\n## Affinity for pod assignment\n## ref: https://kubernetes.io/docs/concepts/configuration/assign-pod-node/#affinity-and-anti-affinity\n##\naffinity: {}\n\n## Enable persistence using Persistent Volume Claims\n## ref: http://kubernetes.io/docs/user-guide/persistent-volumes/\n##\npersistence:\n  enabled: true\n  storageClassName: default\n  accessModes:\n    - ReadWriteOnce\n  size: 111Gi\n  # annotations: {}\n  # subPath: \"\"\n  # existingClaim:\n\nadminUser: admin\nadminPassword: strongpassword\n\n## Use an alternate scheduler, e.g. \"stork\".\n## ref: https://kubernetes.io/docs/tasks/administer-cluster/configure-multiple-schedulers/\n##\n# schedulerName:\n\n## Extra environment variables that will be pass onto deployment pods\nenv: {}\n\n## The name of a secret in the same kubernetes namespace which contain values to be added to the environment\n## This can be useful for auth tokens, etc\nenvFromSecret: \"\"\n\n## Additional grafana server secret mounts\n# Defines additional mounts with secrets. Secrets must be manually created in the namespace.\nextraSecretMounts: []\n  # - name: secret-files\n  #   mountPath: /etc/secrets\n  #   secretName: grafana-secret-files\n  #   readOnly: true\n\n## Pass the plugins you want installed as a list.\n##\nplugins: []\n  # - digrich-bubblechart-panel\n  # - grafana-clock-panel\n\n## Configure grafana datasources\n## ref: http://docs.grafana.org/administration/provisioning/#datasources\n##\ndatasources: {}\n#  datasources.yaml:\n#    apiVersion: 1\n#    datasources:\n#    - name: Prometheus\n#      type: prometheus\n#      url: http://prometheus-prometheus-server\n#      access: proxy\n#      isDefault: true\n\n## Configure grafana dashboard providers\n## ref: http://docs.grafana.org/administration/provisioning/#dashboards\n##\n## `path` must be /var/lib/grafana/dashboards/\u003cprovider_name\u003e\n##\ndashboardProviders: {}\n#  dashboardproviders.yaml:\n#    apiVersion: 1\n#    providers:\n#    - name: 'default'\n#      orgId: 1\n#      folder: ''\n#      type: file\n#      disableDeletion: false\n#      editable: true\n#      options:\n#        path: /var/lib/grafana/dashboards/default\n\n## Configure grafana dashboard to import\n## NOTE: To use dashboards you must also enable/configure dashboardProviders\n## ref: https://grafana.com/dashboards\n##\n## dashboards per provider, use provider name as key.\n##\ndashboards: {}\n#  default:\n#    some-dashboard:\n#      json: |\n#        $RAW_JSON\n#    prometheus-stats:\n#      gnetId: 2\n#      revision: 2\n#      datasource: Prometheus\n#    local-dashboard:\n#      url: https://example.com/repository/test.json\n\n## Reference to external ConfigMap per provider. Use provider name as key and ConfiMap name as value.\n## A provider dashboards must be defined either by external ConfigMaps or in values.yaml, not in both.\n## ConfigMap data example:\n##\n## data:\n##   example-dashboard.json: |\n##     RAW_JSON\n##\ndashboardsConfigMaps: {}\n#  default: \"\"\n\n## Grafana's primary configuration\n## NOTE: values in map will be converted to ini format\n## ref: http://docs.grafana.org/installation/configuration/\n##\ngrafana.ini:\n  paths:\n    data: /var/lib/grafana/data\n    logs: /var/log/grafana\n    plugins: /var/lib/grafana/plugins\n    provisioning: /etc/grafana/provisioning\n  analytics:\n    check_for_updates: true\n  log:\n    mode: console\n  grafana_net:\n    url: https://grafana.net\n## LDAP Authentication can be enabled with the following values on grafana.ini\n## NOTE: Grafana will fail to start if the value for ldap.toml is invalid\n  # auth.ldap:\n  #   enabled: true\n  #   allow_sign_up: true\n  #   config_file: /etc/grafana/ldap.toml\n\n## Grafana's LDAP configuration\n## Templated by the template in _helpers.tpl\n## NOTE: To enable the grafana.ini must be configured with auth.ldap.enabled\n## ref: http://docs.grafana.org/installation/configuration/#auth-ldap\n## ref: http://docs.grafana.org/installation/ldap/#configuration\nldap:\n  # `existingSecret` is a reference to an existing secret containing the ldap configuration\n  # for Grafana in a key `ldap-toml`.\n  existingSecret: \"\"\n  # `config` is the content of `ldap.toml` that will be stored in the created secret\n  config: \"\"\n  # config: |-\n  #   verbose_logging = true\n\n  #   [[servers]]\n  #   host = \"my-ldap-server\"\n  #   port = 636\n  #   use_ssl = true\n  #   start_tls = false\n  #   ssl_skip_verify = false\n  #   bind_dn = \"uid=%s,ou=users,dc=myorg,dc=com\"\n\n## Grafana's SMTP configuration\n## NOTE: To enable, grafana.ini must be configured with smtp.enabled\n## ref: http://docs.grafana.org/installation/configuration/#smtp\nsmtp:\n  # `existingSecret` is a reference to an existing secret containing the smtp configuration\n  # for Grafana in keys `user` and `password`.\n  existingSecret: \"\"\n\n## Sidecars that collect the configmaps with specified label and stores the included files them into the respective folders\n## Requires at least Grafana 5 to work and can't be used together with parameters dashboardProviders, datasources and dashboards\nsidecar:\n  image: kiwigrid/k8s-sidecar:0.0.6\n  imagePullPolicy: IfNotPresent\n  resources:\n#   limits:\n#     cpu: 100m\n#     memory: 100Mi\n#   requests:\n#     cpu: 50m\n#     memory: 50Mi\n  dashboards:\n    enabled: false\n    # label that the configmaps with dashboards are marked with\n    label: grafana_dashboard\n    # folder in the pod that should hold the collected dashboards\n    folder: /tmp/dashboards\n    # If specified, the sidecar will search for dashboard config-maps inside this namespace.\n    # Otherwise the namespace in which the sidecar is running will be used.\n    # It's also possible to specify ALL to search in all namespaces\n    searchNamespace: null\n  datasources:\n    enabled: false\n    # label that the configmaps with datasources are marked with\n    label: grafana_datasource\n    # If specified, the sidecar will search for datasource config-maps inside this namespace.\n    # Otherwise the namespace in which the sidecar is running will be used.\n    # It's also possible to specify ALL to search in all namespaces\n    searchNamespace: null\n",
     5      "releaseName": "grafana",
     6      "helmValuesDefaults": "rbac:\n  create: true\n  pspEnabled: true\nserviceAccount:\n  create: true\n  name:\n\nreplicas: 1\n\ndeploymentStrategy: RollingUpdate\n\nreadinessProbe:\n  httpGet:\n    path: /api/health\n    port: 3000\n\nlivenessProbe:\n  httpGet:\n    path: /api/health\n    port: 3000\n  initialDelaySeconds: 60\n  timeoutSeconds: 30\n  failureThreshold: 10\n\nimage:\n  repository: grafana/grafana\n  tag: 5.3.4\n  pullPolicy: IfNotPresent\n\n  ## Optionally specify an array of imagePullSecrets.\n  ## Secrets must be manually created in the namespace.\n  ## ref: https://kubernetes.io/docs/tasks/configure-pod-container/pull-image-private-registry/\n  ##\n  # pullSecrets:\n  #   - myRegistrKeySecretName\n\nsecurityContext:\n  runAsUser: 472\n  fsGroup: 472\n\n## Assign a PriorityClassName to pods if set\n# priorityClassName:\n\ndownloadDashboardsImage:\n  repository: appropriate/curl\n  tag: latest\n  pullPolicy: IfNotPresent\n\n## Pod Annotations\n# podAnnotations: {}\n\n## Deployment annotations\n# annotations: {}\n\n## Expose the grafana service to be accessed from outside the cluster (LoadBalancer service).\n## or access it from within the cluster (ClusterIP service). Set the service type and the port to serve it.\n## ref: http://kubernetes.io/docs/user-guide/services/\n##\nservice:\n  type: ClusterIP\n  port: 80\n  annotations: {}\n  labels: {}\n\ningress:\n  enabled: false\n  annotations: {}\n    # kubernetes.io/ingress.class: nginx\n    # kubernetes.io/tls-acme: \"true\"\n  labels: {}\n  path: /\n  hosts:\n    - chart-example.local\n  tls: []\n  #  - secretName: chart-example-tls\n  #    hosts:\n  #      - chart-example.local\n\nresources: {}\n#  limits:\n#    cpu: 100m\n#    memory: 128Mi\n#  requests:\n#    cpu: 100m\n#    memory: 128Mi\n\n## Node labels for pod assignment\n## ref: https://kubernetes.io/docs/user-guide/node-selection/\n#\nnodeSelector: {}\n\n## Tolerations for pod assignment\n## ref: https://kubernetes.io/docs/concepts/configuration/taint-and-toleration/\n##\ntolerations: []\n\n## Affinity for pod assignment\n## ref: https://kubernetes.io/docs/concepts/configuration/assign-pod-node/#affinity-and-anti-affinity\n##\naffinity: {}\n\n## Enable persistence using Persistent Volume Claims\n## ref: http://kubernetes.io/docs/user-guide/persistent-volumes/\n##\npersistence:\n  enabled: false\n  # storageClassName: default\n  # accessModes:\n  #   - ReadWriteOnce\n  # size: 10Gi\n  # annotations: {}\n  # subPath: \"\"\n  # existingClaim:\n\nadminUser: admin\n# adminPassword: strongpassword\n\n## Use an alternate scheduler, e.g. \"stork\".\n## ref: https://kubernetes.io/docs/tasks/administer-cluster/configure-multiple-schedulers/\n##\n# schedulerName:\n\n## Extra environment variables that will be pass onto deployment pods\nenv: {}\n\n## The name of a secret in the same kubernetes namespace which contain values to be added to the environment\n## This can be useful for auth tokens, etc\nenvFromSecret: \"\"\n\n## Additional grafana server secret mounts\n# Defines additional mounts with secrets. Secrets must be manually created in the namespace.\nextraSecretMounts: []\n  # - name: secret-files\n  #   mountPath: /etc/secrets\n  #   secretName: grafana-secret-files\n  #   readOnly: true\n\n## Pass the plugins you want installed as a list.\n##\nplugins: []\n  # - digrich-bubblechart-panel\n  # - grafana-clock-panel\n\n## Configure grafana datasources\n## ref: http://docs.grafana.org/administration/provisioning/#datasources\n##\ndatasources: {}\n#  datasources.yaml:\n#    apiVersion: 1\n#    datasources:\n#    - name: Prometheus\n#      type: prometheus\n#      url: http://prometheus-prometheus-server\n#      access: proxy\n#      isDefault: true\n\n## Configure grafana dashboard providers\n## ref: http://docs.grafana.org/administration/provisioning/#dashboards\n##\n## `path` must be /var/lib/grafana/dashboards/\u003cprovider_name\u003e\n##\ndashboardProviders: {}\n#  dashboardproviders.yaml:\n#    apiVersion: 1\n#    providers:\n#    - name: 'default'\n#      orgId: 1\n#      folder: ''\n#      type: file\n#      disableDeletion: false\n#      editable: true\n#      options:\n#        path: /var/lib/grafana/dashboards/default\n\n## Configure grafana dashboard to import\n## NOTE: To use dashboards you must also enable/configure dashboardProviders\n## ref: https://grafana.com/dashboards\n##\n## dashboards per provider, use provider name as key.\n##\ndashboards: {}\n#  default:\n#    some-dashboard:\n#      json: |\n#        $RAW_JSON\n#    prometheus-stats:\n#      gnetId: 2\n#      revision: 2\n#      datasource: Prometheus\n#    local-dashboard:\n#      url: https://example.com/repository/test.json\n\n## Reference to external ConfigMap per provider. Use provider name as key and ConfiMap name as value.\n## A provider dashboards must be defined either by external ConfigMaps or in values.yaml, not in both.\n## ConfigMap data example:\n##\n## data:\n##   example-dashboard.json: |\n##     RAW_JSON\n##\ndashboardsConfigMaps: {}\n#  default: \"\"\n\n## Grafana's primary configuration\n## NOTE: values in map will be converted to ini format\n## ref: http://docs.grafana.org/installation/configuration/\n##\ngrafana.ini:\n  paths:\n    data: /var/lib/grafana/data\n    logs: /var/log/grafana\n    plugins: /var/lib/grafana/plugins\n    provisioning: /etc/grafana/provisioning\n  analytics:\n    check_for_updates: true\n  log:\n    mode: console\n  grafana_net:\n    url: https://grafana.net\n## LDAP Authentication can be enabled with the following values on grafana.ini\n## NOTE: Grafana will fail to start if the value for ldap.toml is invalid\n  # auth.ldap:\n  #   enabled: true\n  #   allow_sign_up: true\n  #   config_file: /etc/grafana/ldap.toml\n\n## Grafana's LDAP configuration\n## Templated by the template in _helpers.tpl\n## NOTE: To enable the grafana.ini must be configured with auth.ldap.enabled\n## ref: http://docs.grafana.org/installation/configuration/#auth-ldap\n## ref: http://docs.grafana.org/installation/ldap/#configuration\nldap:\n  # `existingSecret` is a reference to an existing secret containing the ldap configuration\n  # for Grafana in a key `ldap-toml`.\n  existingSecret: \"\"\n  # `config` is the content of `ldap.toml` that will be stored in the created secret\n  config: \"\"\n  # config: |-\n  #   verbose_logging = true\n\n  #   [[servers]]\n  #   host = \"my-ldap-server\"\n  #   port = 636\n  #   use_ssl = true\n  #   start_tls = false\n  #   ssl_skip_verify = false\n  #   bind_dn = \"uid=%s,ou=users,dc=myorg,dc=com\"\n\n## Grafana's SMTP configuration\n## NOTE: To enable, grafana.ini must be configured with smtp.enabled\n## ref: http://docs.grafana.org/installation/configuration/#smtp\nsmtp:\n  # `existingSecret` is a reference to an existing secret containing the smtp configuration\n  # for Grafana in keys `user` and `password`.\n  existingSecret: \"\"\n\n## Sidecars that collect the configmaps with specified label and stores the included files them into the respective folders\n## Requires at least Grafana 5 to work and can't be used together with parameters dashboardProviders, datasources and dashboards\nsidecar:\n  image: kiwigrid/k8s-sidecar:0.0.6\n  imagePullPolicy: IfNotPresent\n  resources:\n#   limits:\n#     cpu: 100m\n#     memory: 100Mi\n#   requests:\n#     cpu: 50m\n#     memory: 50Mi\n  dashboards:\n    enabled: false\n    # label that the configmaps with dashboards are marked with\n    label: grafana_dashboard\n    # folder in the pod that should hold the collected dashboards\n    folder: /tmp/dashboards\n    # If specified, the sidecar will search for dashboard config-maps inside this namespace.\n    # Otherwise the namespace in which the sidecar is running will be used.\n    # It's also possible to specify ALL to search in all namespaces\n    searchNamespace: null\n  datasources:\n    enabled: false\n    # label that the configmaps with datasources are marked with\n    label: grafana_datasource\n    # If specified, the sidecar will search for datasource config-maps inside this namespace.\n    # Otherwise the namespace in which the sidecar is running will be used.\n    # It's also possible to specify ALL to search in all namespaces\n    searchNamespace: null\n",
     7      "upstream": "https://github.com/helm/charts/tree/353ba5ef6467fd64035b7d5446df426f86d60153/stable/grafana",
     8      "metadata": {
     9        "applicationType": "helm",
    10        "sequence": 0,
    11        "icon": "https://raw.githubusercontent.com/grafana/grafana/master/public/img/logo_transparent_400x.png",
    12        "name": "grafana",
    13        "releaseNotes": "[stable/grafana] Add variable to optionally set priorityClassName (#9427)\n\n* Add variable to optionally set priorityClassName\n\nSigned-off-by: Chris O'Brien \u003cchrisob91@gmail.com\u003e\n\n* Bump minor version instead of patch version\n\nSigned-off-by: Chris O'Brien \u003cchrisob91@gmail.com\u003e",
    14        "version": "1.19.0",
    15        "license": {
    16          "id": "",
    17          "assignee": "",
    18          "createdAt": "0001-01-01T00:00:00Z",
    19          "expiresAt": "0001-01-01T00:00:00Z",
    20          "type": ""
    21        }
    22      },
    23      "upstreamContents": {
    24        "upstreamFiles": [
    25          {
    26            "filePath": "Chart.yaml",
    27            "fileContents": "bmFtZTogZ3JhZmFuYQp2ZXJzaW9uOiAxLjE5LjAKYXBwVmVyc2lvbjogNS4zLjQKa3ViZVZlcnNpb246ICJeMS44LjAtMCIKZGVzY3JpcHRpb246IFRoZSBsZWFkaW5nIHRvb2wgZm9yIHF1ZXJ5aW5nIGFuZCB2aXN1YWxpemluZyB0aW1lIHNlcmllcyBhbmQgbWV0cmljcy4KaG9tZTogaHR0cHM6Ly9ncmFmYW5hLm5ldAppY29uOiBodHRwczovL3Jhdy5naXRodWJ1c2VyY29udGVudC5jb20vZ3JhZmFuYS9ncmFmYW5hL21hc3Rlci9wdWJsaWMvaW1nL2xvZ29fdHJhbnNwYXJlbnRfNDAweC5wbmcKc291cmNlczoKICAtIGh0dHBzOi8vZ2l0aHViLmNvbS9ncmFmYW5hL2dyYWZhbmEKbWFpbnRhaW5lcnM6CiAgLSBuYW1lOiB6YW5oc2llaAogICAgZW1haWw6IHphbmhzaWVoQGdtYWlsLmNvbQogIC0gbmFtZTogcnRsdWNraWUKICAgIGVtYWlsOiBybHVja2llQGNpc2NvLmNvbQplbmdpbmU6IGdvdHBsCg=="
    28          },
    29          {
    30            "filePath": "README.md",
    31            "fileContents": "IyBHcmFmYW5hIEhlbG0gQ2hhcnQKCiogSW5zdGFsbHMgdGhlIHdlYiBkYXNoYm9hcmRpbmcgc3lzdGVtIFtHcmFmYW5hXShodHRwOi8vZ3JhZmFuYS5vcmcvKQoKIyMgVEw7RFI7CgpgYGBjb25zb2xlCiQgaGVsbSBpbnN0YWxsIHN0YWJsZS9ncmFmYW5hCmBgYAoKIyMgSW5zdGFsbGluZyB0aGUgQ2hhcnQKClRvIGluc3RhbGwgdGhlIGNoYXJ0IHdpdGggdGhlIHJlbGVhc2UgbmFtZSBgbXktcmVsZWFzZWA6CgpgYGBjb25zb2xlCiQgaGVsbSBpbnN0YWxsIC0tbmFtZSBteS1yZWxlYXNlIHN0YWJsZS9ncmFmYW5hCmBgYAoKIyMgVW5pbnN0YWxsaW5nIHRoZSBDaGFydAoKVG8gdW5pbnN0YWxsL2RlbGV0ZSB0aGUgbXktcmVsZWFzZSBkZXBsb3ltZW50OgoKYGBgY29uc29sZQokIGhlbG0gZGVsZXRlIG15LXJlbGVhc2UKYGBgCgpUaGUgY29tbWFuZCByZW1vdmVzIGFsbCB0aGUgS3ViZXJuZXRlcyBjb21wb25lbnRzIGFzc29jaWF0ZWQgd2l0aCB0aGUgY2hhcnQgYW5kIGRlbGV0ZXMgdGhlIHJlbGVhc2UuCgoKIyMgQ29uZmlndXJhdGlvbgoKfCBQYXJhbWV0ZXIgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB8IERlc2NyaXB0aW9uICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB8IERlZmF1bHQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfAp8LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLXwtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLXwtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS18CnwgYHJlcGxpY2FzYCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfCBOdW1iZXIgb2Ygbm9kZXMgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfCBgMWAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHwKfCBgZGVwbG95bWVudFN0cmF0ZWd5YCAgICAgICAgICAgICAgICAgICAgICB8IERlcGxveW1lbnQgc3RyYXRlZ3kgICAgICAgICAgICAgICAgICAgICAgICAgICB8IGBSb2xsaW5nVXBkYXRlYCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfAp8IGBsaXZlbmVzc1Byb2JlYCAgICAgICAgICAgICAgICAgICAgICAgICAgIHwgTGl2ZW5lc3MgUHJvYmUgc2V0dGluZ3MgICAgICAgICAgICAgICAgICAgICAgIHwgYHsgImh0dHBHZXQiOiB7ICJwYXRoIjogIi9hcGkvaGVhbHRoIiwgInBvcnQiOiAzMDAwIH0gImluaXRpYWxEZWxheVNlY29uZHMiOiA2MCwgInRpbWVvdXRTZWNvbmRzIjogMzAsICJmYWlsdXJlVGhyZXNob2xkIjogMTAgfWAgfAp8IGByZWFkaW5lc3NQcm9iZWAgICAgICAgICAgICAgICAgICAgICAgICAgIHwgUmVkaW5lc3MgUHJvYmUgc2V0dGluZ3MgICAgICAgICAgICAgICAgICAgICAgIHwgYHsgImh0dHBHZXQiOiB7ICJwYXRoIjogIi9hcGkvaGVhbHRoIiwgInBvcnQiOiAzMDAwIH0gfWB8CnwgYHNlY3VyaXR5Q29udGV4dGAgICAgICAgICAgICAgICAgICAgICAgICAgfCBEZXBsb3ltZW50IHNlY3VyaXR5Q29udGV4dCAgICAgICAgICAgICAgICAgICAgfCBgeyJydW5Bc1VzZXIiOiA0NzIsICJmc0dyb3VwIjogNDcyfWAgICAgICAgICAgICAgICAgICAgIHwKfCBgcHJpb3JpdHlDbGFzc05hbWVgICAgICAgICAgICAgICAgICAgICAgICB8IE5hbWUgb2YgUHJpb3JpdHkgQ2xhc3MgdG8gYXNzaWduIHBvZHMgICAgICAgICB8IGBuaWxgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfAp8IGBpbWFnZS5yZXBvc2l0b3J5YCAgICAgICAgICAgICAgICAgICAgICAgIHwgSW1hZ2UgcmVwb3NpdG9yeSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHwgYGdyYWZhbmEvZ3JhZmFuYWAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB8CnwgYGltYWdlLnRhZ2AgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfCBJbWFnZSB0YWcuIChgTXVzdCBiZSA+PSA1LjAuMGApICAgICAgICAgICAgICAgfCBgNS4zLjRgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHwKfCBgaW1hZ2UucHVsbFBvbGljeWAgICAgICAgICAgICAgICAgICAgICAgICB8IEltYWdlIHB1bGwgcG9saWN5ICAgICAgICAgICAgICAgICAgICAgICAgICAgICB8IGBJZk5vdFByZXNlbnRgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfAp8IGBzZXJ2aWNlLnR5cGVgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHwgS3ViZXJuZXRlcyBzZXJ2aWNlIHR5cGUgICAgICAgICAgICAgICAgICAgICAgIHwgYENsdXN0ZXJJUGAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB8CnwgYHNlcnZpY2UucG9ydGAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfCBLdWJlcm5ldGVzIHBvcnQgd2hlcmUgc2VydmljZSBpcyBleHBvc2VkICAgICAgfCBgODBgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHwKfCBgc2VydmljZS5hbm5vdGF0aW9uc2AgICAgICAgICAgICAgICAgICAgICB8IFNlcnZpY2UgYW5ub3RhdGlvbnMgICAgICAgICAgICAgICAgICAgICAgICAgICB8IGB7fWAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfAp8IGBzZXJ2aWNlLmxhYmVsc2AgICAgICAgICAgICAgICAgICAgICAgICAgIHwgQ3VzdG9tIGxhYmVscyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHwgYHt9YCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB8CnwgYGluZ3Jlc3MuZW5hYmxlZGAgICAgICAgICAgICAgICAgICAgICAgICAgfCBFbmFibGVzIEluZ3Jlc3MgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfCBgZmFsc2VgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHwKfCBgaW5ncmVzcy5hbm5vdGF0aW9uc2AgICAgICAgICAgICAgICAgICAgICB8IEluZ3Jlc3MgYW5ub3RhdGlvbnMgICAgICAgICAgICAgICAgICAgICAgICAgICB8IGB7fWAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfAp8IGBpbmdyZXNzLmxhYmVsc2AgICAgICAgICAgICAgICAgICAgICAgICAgIHwgQ3VzdG9tIGxhYmVscyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHwgYHt9YCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB8CnwgYGluZ3Jlc3MuaG9zdHNgICAgICAgICAgICAgICAgICAgICAgICAgICAgfCBJbmdyZXNzIGFjY2VwdGVkIGhvc3RuYW1lcyAgICAgICAgICAgICAgICAgICAgfCBgW11gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHwKfCBgaW5ncmVzcy50bHNgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB8IEluZ3Jlc3MgVExTIGNvbmZpZ3VyYXRpb24gICAgICAgICAgICAgICAgICAgICB8IGBbXWAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfAp8IGByZXNvdXJjZXNgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHwgQ1BVL01lbW9yeSByZXNvdXJjZSByZXF1ZXN0cy9saW1pdHMgICAgICAgICAgIHwgYHt9YCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB8CnwgYG5vZGVTZWxlY3RvcmAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfCBOb2RlIGxhYmVscyBmb3IgcG9kIGFzc2lnbm1lbnQgICAgICAgICAgICAgICAgfCBge31gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHwKfCBgdG9sZXJhdGlvbnNgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB8IFRvbGVyYXRpb24gbGFiZWxzIGZvciBwb2QgYXNzaWdubWVudCAgICAgICAgICB8IGBbXWAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfAp8IGBhZmZpbml0eWAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHwgQWZmaW5pdHkgc2V0dGluZ3MgZm9yIHBvZCBhc3NpZ25tZW50ICAgICAgICAgIHwgYHt9YCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB8CnwgYHBlcnNpc3RlbmNlLmVuYWJsZWRgICAgICAgICAgICAgICAgICAgICAgfCBVc2UgcGVyc2lzdGVudCB2b2x1bWUgdG8gc3RvcmUgZGF0YSAgICAgICAgICAgfCBgZmFsc2VgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHwKfCBgcGVyc2lzdGVuY2Uuc2l6ZWAgICAgICAgICAgICAgICAgICAgICAgICB8IFNpemUgb2YgcGVyc2lzdGVudCB2b2x1bWUgY2xhaW0gICAgICAgICAgICAgICB8IGAxMEdpYCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfAp8IGBwZXJzaXN0ZW5jZS5leGlzdGluZ0NsYWltYCAgICAgICAgICAgICAgIHwgVXNlIGFuIGV4aXN0aW5nIFBWQyB0byBwZXJzaXN0IGRhdGEgICAgICAgICAgIHwgYG5pbGAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB8CnwgYHBlcnNpc3RlbmNlLnN0b3JhZ2VDbGFzc05hbWVgICAgICAgICAgICAgfCBUeXBlIG9mIHBlcnNpc3RlbnQgdm9sdW1lIGNsYWltICAgICAgICAgICAgICAgfCBgbmlsYCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHwKfCBgcGVyc2lzdGVuY2UuYWNjZXNzTW9kZXNgICAgICAgICAgICAgICAgICB8IFBlcnNpc3RlbmNlIGFjY2VzcyBtb2RlcyAgICAgICAgICAgICAgICAgICAgICB8IGBbXWAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfAp8IGBwZXJzaXN0ZW5jZS5zdWJQYXRoYCAgICAgICAgICAgICAgICAgICAgIHwgTW91bnQgYSBzdWIgZGlyIG9mIHRoZSBwZXJzaXN0ZW50IHZvbHVtZSAgICAgIHwgYCIiYCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB8CnwgYHNjaGVkdWxlck5hbWVgICAgICAgICAgICAgICAgICAgICAgICAgICAgfCBBbHRlcm5hdGUgc2NoZWR1bGVyIG5hbWUgICAgICAgICAgICAgICAgICAgICAgfCBgbmlsYCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHwKfCBgZW52YCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB8IEV4dHJhIGVudmlyb25tZW50IHZhcmlhYmxlcyBwYXNzZWQgdG8gcG9kcyAgICB8IGB7fWAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfAp8IGBlbnZGcm9tU2VjcmV0YCAgICAgICAgICAgICAgICAgICAgICAgICAgIHwgTmFtZSBvZiBhIEt1YmVucmV0ZXMgc2VjcmV0IChtdXN0IGJlIG1hbnVhbGx5IGNyZWF0ZWQgaW4gdGhlIHNhbWUgbmFtZXNwYWNlKSBjb250YWluaW5nIHZhbHVlcyB0byBiZSBhZGRlZCB0byB0aGUgZW52aXJvbm1lbnQgfCBgIiJgIHwKfCBgZXh0cmFTZWNyZXRNb3VudHNgICAgICAgICAgICAgICAgICAgICAgICB8IEFkZGl0aW9uYWwgZ3JhZmFuYSBzZXJ2ZXIgc2VjcmV0IG1vdW50cyAgICAgICB8IGBbXWAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfAp8IGBwbHVnaW5zYCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHwgUGx1Z2lucyB0byBiZSBsb2FkZWQgYWxvbmcgd2l0aCBHcmFmYW5hICAgICAgIHwgYFtdYCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB8CnwgYGRhdGFzb3VyY2VzYCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfCBDb25maWd1cmUgZ3JhZmFuYSBkYXRhc291cmNlcyAgICAgICAgICAgICAgICAgfCBge31gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHwKfCBgZGFzaGJvYXJkUHJvdmlkZXJzYCAgICAgICAgICAgICAgICAgICAgICB8IENvbmZpZ3VyZSBncmFmYW5hIGRhc2hib2FyZCBwcm92aWRlcnMgICAgICAgICB8IGB7fWAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfAp8IGBkYXNoYm9hcmRzYCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHwgRGFzaGJvYXJkcyB0byBpbXBvcnQgICAgICAgICAgICAgICAgICAgICAgICAgIHwgYHt9YCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB8CnwgYGRhc2hib2FyZHNDb25maWdNYXBzYCAgICAgICAgICAgICAgICAgICAgfCBDb25maWdNYXBzIHJlZmVyZW5jZSB0aGF0IGNvbnRhaW5zIGRhc2hib2FyZHMgfCBge31gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHwKfCBgZ3JhZmFuYS5pbmlgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB8IEdyYWZhbmEncyBwcmltYXJ5IGNvbmZpZ3VyYXRpb24gICAgICAgICAgICAgICB8IGB7fWAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfAp8IGBsZGFwLmV4aXN0aW5nU2VjcmV0YCAgICAgICAgICAgICAgICAgICAgIHwgVGhlIG5hbWUgb2YgYW4gZXhpc3Rpbmcgc2VjcmV0IGNvbnRhaW5pbmcgdGhlIGBsZGFwLnRvbWxgIGZpbGUsIHRoaXMgbXVzdCBoYXZlIHRoZSBrZXkgYGxkYXAtdG9tbGAuIHwgYCIiYCB8CnwgYGxkYXAuY29uZmlnICBgICAgICAgICAgICAgICAgICAgICAgICAgICAgfCBHcmFmYW5hJ3MgTERBUCBjb25maWd1cmF0aW9uICAgICAgICAgICAgICAgICAgfCBgIiJgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHwKfCBgYW5ub3RhdGlvbnNgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB8IERlcGxveW1lbnQgYW5ub3RhdGlvbnMgICAgICAgICAgICAgICAgICAgICAgICB8IGB7fWAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfAp8IGBwb2RBbm5vdGF0aW9uc2AgICAgICAgICAgICAgICAgICAgICAgICAgIHwgUG9kIGFubm90YXRpb25zICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHwgYHt9YCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB8CnwgYHNpZGVjYXIuZGFzaGJvYXJkcy5lbmFibGVkYCAgICAgICAgICAgICAgfCBFbmFibGVkIHRoZSBjbHVzdGVyIHdpZGUgc2VhcmNoIGZvciBkYXNoYm9hcmRzIGFuZCBhZGRzL3VwZGF0ZXMvZGVsZXRlcyB0aGVtIGluIGdyYWZhbmEgfCBgZmFsc2VgICAgICAgIHwKfCBgc2lkZWNhci5kYXNoYm9hcmRzLmxhYmVsYCAgICAgICAgICAgICAgICB8IExhYmVsIHRoYXQgY29uZmlnIG1hcHMgd2l0aCBkYXNoYm9hcmRzIHNob3VsZCBoYXZlIHRvIGJlIGFkZGVkIHwgYGZhbHNlYCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfAp8IGBzaWRlY2FyLmRhc2hib2FyZHMuc2VhcmNoTmFtZXNwYWNlYCAgICAgIHwgSWYgc3BlY2lmaWVkLCB0aGUgc2lkZWNhciB3aWxsIHNlYXJjaCBmb3IgZGFzaGJvYXJkIGNvbmZpZy1tYXBzIGluc2lkZSB0aGlzIG5hbWVzcGFjZS4gT3RoZXJ3aXNlIHRoZSBuYW1lc3BhY2UgaW4gd2hpY2ggdGhlIHNpZGVjYXIgaXMgcnVubmluZyB3aWxsIGJlIHVzZWQuIEl0J3MgYWxzbyBwb3NzaWJsZSB0byBzcGVjaWZ5IEFMTCB0byBzZWFyY2ggaW4gYWxsIG5hbWVzcGFjZXMgfCBgbmlsYCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfAp8IGBzaWRlY2FyLmRhdGFzb3VyY2VzLmVuYWJsZWRgICAgICAgICAgICAgIHwgRW5hYmxlZCB0aGUgY2x1c3RlciB3aWRlIHNlYXJjaCBmb3IgZGF0YXNvdXJjZXMgYW5kIGFkZHMvdXBkYXRlcy9kZWxldGVzIHRoZW0gaW4gZ3JhZmFuYSB8YGZhbHNlYCAgICAgICB8CnwgYHNpZGVjYXIuZGF0YXNvdXJjZXMubGFiZWxgICAgICAgICAgICAgICAgfCBMYWJlbCB0aGF0IGNvbmZpZyBtYXBzIHdpdGggZGF0YXNvdXJjZXMgc2hvdWxkIGhhdmUgdG8gYmUgYWRkZWQgfCBgZmFsc2VgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHwKfCBgc2lkZWNhci5kYXRhc291cmNlcy5zZWFyY2hOYW1lc3BhY2VgICAgICB8IElmIHNwZWNpZmllZCwgdGhlIHNpZGVjYXIgd2lsbCBzZWFyY2ggZm9yIGRhdGFzb3VyY2VzIGNvbmZpZy1tYXBzIGluc2lkZSB0aGlzIG5hbWVzcGFjZS4gT3RoZXJ3aXNlIHRoZSBuYW1lc3BhY2UgaW4gd2hpY2ggdGhlIHNpZGVjYXIgaXMgcnVubmluZyB3aWxsIGJlIHVzZWQuIEl0J3MgYWxzbyBwb3NzaWJsZSB0byBzcGVjaWZ5IEFMTCB0byBzZWFyY2ggaW4gYWxsIG5hbWVzcGFjZXMgfCBgbmlsYCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB8CnwgYHNtdHAuZXhpc3RpbmdTZWNyZXRgICAgICAgICAgICAgICAgICAgICAgfCBUaGUgbmFtZSBvZiBhbiBleGlzdGluZyBzZWNyZXQgY29udGFpbmluZyB0aGUgU01UUCBjcmVkZW50aWFscywgdGhpcyBtdXN0IGhhdmUgdGhlIGtleXMgYHVzZXJgIGFuZCBgcGFzc3dvcmRgLiB8IGAiImAgfAoKIyMgU2lkZWNhciBmb3IgZGFzaGJvYXJkcwoKSWYgdGhlIHBhcmFtZXRlciBgc2lkZWNhci5kYXNoYm9hcmRzLmVuYWJsZWRgIGlzIHNldCwgYSBzaWRlY2FyIGNvbnRhaW5lciBpcyBkZXBsb3llZCBpbiB0aGUgZ3JhZmFuYSBwb2QuIFRoaXMgY29udGFpbmVyIHdhdGNoZXMgYWxsIGNvbmZpZyBtYXBzIGluIHRoZSBjbHVzdGVyIGFuZCBmaWx0ZXJzIG91dCB0aGUgb25lcyB3aXRoIGEgbGFiZWwgYXMgZGVmaW5lZCBpbiBgc2lkZWNhci5kYXNoYm9hcmRzLmxhYmVsYC4gVGhlIGZpbGVzIGRlZmluZWQgaW4gdGhvc2UgY29uZmlnbWFwcyBhcmUgd3JpdHRlbiB0byBhIGZvbGRlciBhbmQgYWNjZXNzZWQgYnkgZ3JhZmFuYS4gQ2hhbmdlcyB0byB0aGUgY29uZmlnbWFwcyBhcmUgbW9uaXRvcmVkIGFuZCB0aGUgaW1wb3J0ZWQgZGFzaGJvYXJkcyBhcmUgZGVsZXRlZC91cGRhdGVkLiBBIHJlY29tbWVuZGF0aW9uIGlzIHRvIHVzZSBvbmUgY29uZmlnbWFwIHBlciBkYXNoYm9hcmQsIGFzIGFuIHJlZHVjdGlvbiBvZiBtdWx0aXBsZSBkYXNoYm9hcmRzIGluc2lkZSBvbmUgY29uZmlnbWFwIGlzIGN1cnJlbnRseSBub3QgcHJvcGVybHkgbWlycm9yZWQgaW4gZ3JhZmFuYS4KRXhhbXBsZSBkYXNoYm9hcmQgY29uZmlnOgpgYGAKYXBpVmVyc2lvbjogdjEKa2luZDogQ29uZmlnTWFwCm1ldGFkYXRhOgogIG5hbWU6IHNhbXBsZS1ncmFmYW5hLWRhc2hib2FyZAogIGxhYmVsczoKICAgICBncmFmYW5hX2Rhc2hib2FyZDogMQpkYXRhOgogIGs4cy1kYXNoYm9hcmQuanNvbjogfC0KICBbLi4uXQpgYGAKCiMjIFNpZGVjYXIgZm9yIGRhdGFzb3VyY2VzCgpJZiB0aGUgcGFyYW1ldGVyIGBzaWRlY2FyLmRhdGFzb3VyY2VzLmVuYWJsZWRgIGlzIHNldCwgYSBzaWRlY2FyIGNvbnRhaW5lciBpcyBkZXBsb3llZCBpbiB0aGUgZ3JhZmFuYSBwb2QuIFRoaXMgY29udGFpbmVyIHdhdGNoZXMgYWxsIGNvbmZpZyBtYXBzIGluIHRoZSBjbHVzdGVyIGFuZCBmaWx0ZXJzIG91dCB0aGUgb25lcyB3aXRoIGEgbGFiZWwgYXMgZGVmaW5lZCBpbiBgc2lkZWNhci5kYXRhc291cmNlcy5sYWJlbGAuIFRoZSBmaWxlcyBkZWZpbmVkIGluIHRob3NlIGNvbmZpZ21hcHMgYXJlIHdyaXR0ZW4gdG8gYSBmb2xkZXIgYW5kIGFjY2Vzc2VkIGJ5IGdyYWZhbmEgb24gc3RhcnR1cC4gVXNpbmcgdGhlc2UgeWFtbCBmaWxlcywgdGhlIGRhdGEgc291cmNlcyBpbiBncmFmYW5hIGNhbiBiZSBtb2RpZmllZC4KCkV4YW1wbGUgZGF0YXNvdXJjZSBjb25maWcgYWRhcHRlZCBmcm9tIFtHcmFmYW5hXShodHRwOi8vZG9jcy5ncmFmYW5hLm9yZy9hZG1pbmlzdHJhdGlvbi9wcm92aXNpb25pbmcvI2V4YW1wbGUtZGF0YXNvdXJjZS1jb25maWctZmlsZSk6CmBgYAphcGlWZXJzaW9uOiB2MQpraW5kOiBDb25maWdNYXAKbWV0YWRhdGE6CiAgbmFtZTogc2FtcGxlLWdyYWZhbmEtZGF0YXNvdXJjZQogIGxhYmVsczoKICAgICBncmFmYW5hX2RhdGFzb3VyY2U6IDEKZGF0YToKICBkYXRhc291cmNlLnlhbWw6IHwtCiAgICAjIGNvbmZpZyBmaWxlIHZlcnNpb24KICAgIGFwaVZlcnNpb246IDEKCiAgICAjIGxpc3Qgb2YgZGF0YXNvdXJjZXMgdGhhdCBzaG91bGQgYmUgZGVsZXRlZCBmcm9tIHRoZSBkYXRhYmFzZQogICAgZGVsZXRlRGF0YXNvdXJjZXM6CiAgICAgIC0gbmFtZTogR3JhcGhpdGUKICAgICAgICBvcmdJZDogMQoKICAgICMgbGlzdCBvZiBkYXRhc291cmNlcyB0byBpbnNlcnQvdXBkYXRlIGRlcGVuZGluZwogICAgIyB3aGF0cyBhdmFpbGFibGUgaW4gdGhlIGRhdGFiYXNlCiAgICBkYXRhc291cmNlczoKICAgICAgIyA8c3RyaW5nLCByZXF1aXJlZD4gbmFtZSBvZiB0aGUgZGF0YXNvdXJjZS4gUmVxdWlyZWQKICAgIC0gbmFtZTogR3JhcGhpdGUKICAgICAgIyA8c3RyaW5nLCByZXF1aXJlZD4gZGF0YXNvdXJjZSB0eXBlLiBSZXF1aXJlZAogICAgICB0eXBlOiBncmFwaGl0ZQogICAgICAjIDxzdHJpbmcsIHJlcXVpcmVkPiBhY2Nlc3MgbW9kZS4gcHJveHkgb3IgZGlyZWN0IChTZXJ2ZXIgb3IgQnJvd3NlciBpbiB0aGUgVUkpLiBSZXF1aXJlZAogICAgICBhY2Nlc3M6IHByb3h5CiAgICAgICMgPGludD4gb3JnIGlkLiB3aWxsIGRlZmF1bHQgdG8gb3JnSWQgMSBpZiBub3Qgc3BlY2lmaWVkCiAgICAgIG9yZ0lkOiAxCiAgICAgICMgPHN0cmluZz4gdXJsCiAgICAgIHVybDogaHR0cDovL2xvY2FsaG9zdDo4MDgwCiAgICAgICMgPHN0cmluZz4gZGF0YWJhc2UgcGFzc3dvcmQsIGlmIHVzZWQKICAgICAgcGFzc3dvcmQ6CiAgICAgICMgPHN0cmluZz4gZGF0YWJhc2UgdXNlciwgaWYgdXNlZAogICAgICB1c2VyOgogICAgICAjIDxzdHJpbmc+IGRhdGFiYXNlIG5hbWUsIGlmIHVzZWQKICAgICAgZGF0YWJhc2U6CiAgICAgICMgPGJvb2w+IGVuYWJsZS9kaXNhYmxlIGJhc2ljIGF1dGgKICAgICAgYmFzaWNBdXRoOgogICAgICAjIDxzdHJpbmc+IGJhc2ljIGF1dGggdXNlcm5hbWUKICAgICAgYmFzaWNBdXRoVXNlcjoKICAgICAgIyA8c3RyaW5nPiBiYXNpYyBhdXRoIHBhc3N3b3JkCiAgICAgIGJhc2ljQXV0aFBhc3N3b3JkOgogICAgICAjIDxib29sPiBlbmFibGUvZGlzYWJsZSB3aXRoIGNyZWRlbnRpYWxzIGhlYWRlcnMKICAgICAgd2l0aENyZWRlbnRpYWxzOgogICAgICAjIDxib29sPiBtYXJrIGFzIGRlZmF1bHQgZGF0YXNvdXJjZS4gTWF4IG9uZSBwZXIgb3JnCiAgICAgIGlzRGVmYXVsdDoKICAgICAgIyA8bWFwPiBmaWVsZHMgdGhhdCB3aWxsIGJlIGNvbnZlcnRlZCB0byBqc29uIGFuZCBzdG9yZWQgaW4ganNvbl9kYXRhCiAgICAgIGpzb25EYXRhOgogICAgICAgICBncmFwaGl0ZVZlcnNpb246ICIxLjEiCiAgICAgICAgIHRsc0F1dGg6IHRydWUKICAgICAgICAgdGxzQXV0aFdpdGhDQUNlcnQ6IHRydWUKICAgICAgIyA8c3RyaW5nPiBqc29uIG9iamVjdCBvZiBkYXRhIHRoYXQgd2lsbCBiZSBlbmNyeXB0ZWQuCiAgICAgIHNlY3VyZUpzb25EYXRhOgogICAgICAgIHRsc0NBQ2VydDogIi4uLiIKICAgICAgICB0bHNDbGllbnRDZXJ0OiAiLi4uIgogICAgICAgIHRsc0NsaWVudEtleTogIi4uLiIKICAgICAgdmVyc2lvbjogMQogICAgICAjIDxib29sPiBhbGxvdyB1c2VycyB0byBlZGl0IGRhdGFzb3VyY2VzIGZyb20gdGhlIFVJLgogICAgICBlZGl0YWJsZTogZmFsc2UKCmBgYAo="
    32          },
    33          {
    34            "filePath": "templates/NOTES.txt",
    35            "fileContents": "MS4gR2V0IHlvdXIgJ3t7IC5WYWx1ZXMuYWRtaW5Vc2VyIH19JyB1c2VyIHBhc3N3b3JkIGJ5IHJ1bm5pbmc6CgogICBrdWJlY3RsIGdldCBzZWNyZXQgLS1uYW1lc3BhY2Uge3sgLlJlbGVhc2UuTmFtZXNwYWNlIH19IHt7IHRlbXBsYXRlICJncmFmYW5hLmZ1bGxuYW1lIiAuIH19IC1vIGpzb25wYXRoPSJ7LmRhdGEuYWRtaW4tcGFzc3dvcmR9IiB8IGJhc2U2NCAtLWRlY29kZSA7IGVjaG8KCjIuIFRoZSBHcmFmYW5hIHNlcnZlciBjYW4gYmUgYWNjZXNzZWQgdmlhIHBvcnQge3sgLlZhbHVlcy5zZXJ2aWNlLnBvcnQgfX0gb24gdGhlIGZvbGxvd2luZyBETlMgbmFtZSBmcm9tIHdpdGhpbiB5b3VyIGNsdXN0ZXI6CgogICB7eyB0ZW1wbGF0ZSAiZ3JhZmFuYS5mdWxsbmFtZSIgLiB9fS57eyAuUmVsZWFzZS5OYW1lc3BhY2UgfX0uc3ZjLmNsdXN0ZXIubG9jYWwKe3sgaWYgLlZhbHVlcy5pbmdyZXNzLmVuYWJsZWQgfX0KICAgRnJvbSBvdXRzaWRlIHRoZSBjbHVzdGVyLCB0aGUgc2VydmVyIFVSTChzKSBhcmU6Cnt7LSByYW5nZSAuVmFsdWVzLmluZ3Jlc3MuaG9zdHMgfX0KICAgICBodHRwOi8ve3sgLiB9fQp7ey0gZW5kIH19Cnt7IGVsc2UgfX0KICAgR2V0IHRoZSBHcmFmYW5hIFVSTCB0byB2aXNpdCBieSBydW5uaW5nIHRoZXNlIGNvbW1hbmRzIGluIHRoZSBzYW1lIHNoZWxsOgp7eyBpZiBjb250YWlucyAiTm9kZVBvcnQiIC5WYWx1ZXMuc2VydmljZS50eXBlIC19fQogICAgIGV4cG9ydCBOT0RFX1BPUlQ9JChrdWJlY3RsIGdldCAtLW5hbWVzcGFjZSB7eyAuUmVsZWFzZS5OYW1lc3BhY2UgfX0gLW8ganNvbnBhdGg9Insuc3BlYy5wb3J0c1swXS5ub2RlUG9ydH0iIHNlcnZpY2VzIHt7IHRlbXBsYXRlICJncmFmYW5hLmZ1bGxuYW1lIiAuIH19KQogICAgIGV4cG9ydCBOT0RFX0lQPSQoa3ViZWN0bCBnZXQgbm9kZXMgLS1uYW1lc3BhY2Uge3sgLlJlbGVhc2UuTmFtZXNwYWNlIH19IC1vIGpzb25wYXRoPSJ7Lml0ZW1zWzBdLnN0YXR1cy5hZGRyZXNzZXNbMF0uYWRkcmVzc30iKQogICAgIGVjaG8gaHR0cDovLyROT0RFX0lQOiROT0RFX1BPUlQKe3sgZWxzZSBpZiBjb250YWlucyAiTG9hZEJhbGFuY2VyIiAuVmFsdWVzLnNlcnZpY2UudHlwZSAtfX0KICAgTk9URTogSXQgbWF5IHRha2UgYSBmZXcgbWludXRlcyBmb3IgdGhlIExvYWRCYWxhbmNlciBJUCB0byBiZSBhdmFpbGFibGUuCiAgICAgICAgWW91IGNhbiB3YXRjaCB0aGUgc3RhdHVzIG9mIGJ5IHJ1bm5pbmcgJ2t1YmVjdGwgZ2V0IHN2YyAtLW5hbWVzcGFjZSB7eyAuUmVsZWFzZS5OYW1lc3BhY2UgfX0gLXcge3sgdGVtcGxhdGUgImdyYWZhbmEuZnVsbG5hbWUiIC4gfX0nCiAgICAgZXhwb3J0IFNFUlZJQ0VfSVA9JChrdWJlY3RsIGdldCBzdmMgLS1uYW1lc3BhY2Uge3sgLlJlbGVhc2UuTmFtZXNwYWNlIH19IHt7IHRlbXBsYXRlICJncmFmYW5hLmZ1bGxuYW1lIiAuIH19IC1vIGpzb25wYXRoPSd7LnN0YXR1cy5sb2FkQmFsYW5jZXIuaW5ncmVzc1swXS5pcH0nKQogICAgIGh0dHA6Ly8kU0VSVklDRV9JUDp7eyAuVmFsdWVzLnNlcnZpY2UucG9ydCAtfX0Ke3sgZWxzZSBpZiBjb250YWlucyAiQ2x1c3RlcklQIiAgLlZhbHVlcy5zZXJ2aWNlLnR5cGUgfX0KICAgICBleHBvcnQgUE9EX05BTUU9JChrdWJlY3RsIGdldCBwb2RzIC0tbmFtZXNwYWNlIHt7IC5SZWxlYXNlLk5hbWVzcGFjZSB9fSAtbCAiYXBwPXt7IHRlbXBsYXRlICJncmFmYW5hLmZ1bGxuYW1lIiAuIH19LGNvbXBvbmVudD17eyAuVmFsdWVzLm5hbWUgfX0iIC1vIGpzb25wYXRoPSJ7Lml0ZW1zWzBdLm1ldGFkYXRhLm5hbWV9IikKICAgICBrdWJlY3RsIC0tbmFtZXNwYWNlIHt7IC5SZWxlYXNlLk5hbWVzcGFjZSB9fSBwb3J0LWZvcndhcmQgJFBPRF9OQU1FIDMwMDAKe3stIGVuZCB9fQp7ey0gZW5kIH19CgozLiBMb2dpbiB3aXRoIHRoZSBwYXNzd29yZCBmcm9tIHN0ZXAgMSBhbmQgdGhlIHVzZXJuYW1lOiB7eyAuVmFsdWVzLmFkbWluVXNlciB9fQoKe3stIGlmIG5vdCAuVmFsdWVzLnBlcnNpc3RlbmNlLmVuYWJsZWQgfX0KIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjCiMjIyMjIyAgIFdBUk5JTkc6IFBlcnNpc3RlbmNlIGlzIGRpc2FibGVkISEhIFlvdSB3aWxsIGxvc2UgeW91ciBkYXRhIHdoZW4gICAjIyMjIwojIyMjIyMgICAgICAgICAgICB0aGUgR3JhZmFuYSBwb2QgaXMgdGVybWluYXRlZC4gICAgICAgICAgICAgICAgICAgICAgICAgICAgIyMjIyMKIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjCnt7LSBlbmQgfX0K"
    36          },
    37          {
    38            "filePath": "templates/_helpers.tpl",
    39            "fileContents": "e3svKiB2aW06IHNldCBmaWxldHlwZT1tdXN0YWNoZTogKi99fQp7ey8qCkV4cGFuZCB0aGUgbmFtZSBvZiB0aGUgY2hhcnQuCiovfX0Ke3stIGRlZmluZSAiZ3JhZmFuYS5uYW1lIiAtfX0Ke3stIGRlZmF1bHQgLkNoYXJ0Lk5hbWUgLlZhbHVlcy5uYW1lT3ZlcnJpZGUgfCB0cnVuYyA2MyB8IHRyaW1TdWZmaXggIi0iIC19fQp7ey0gZW5kIC19fQoKe3svKgpDcmVhdGUgYSBkZWZhdWx0IGZ1bGx5IHF1YWxpZmllZCBhcHAgbmFtZS4KV2UgdHJ1bmNhdGUgYXQgNjMgY2hhcnMgYmVjYXVzZSBzb21lIEt1YmVybmV0ZXMgbmFtZSBmaWVsZHMgYXJlIGxpbWl0ZWQgdG8gdGhpcyAoYnkgdGhlIEROUyBuYW1pbmcgc3BlYykuCklmIHJlbGVhc2UgbmFtZSBjb250YWlucyBjaGFydCBuYW1lIGl0IHdpbGwgYmUgdXNlZCBhcyBhIGZ1bGwgbmFtZS4KKi99fQp7ey0gZGVmaW5lICJncmFmYW5hLmZ1bGxuYW1lIiAtfX0Ke3stIGlmIC5WYWx1ZXMuZnVsbG5hbWVPdmVycmlkZSAtfX0Ke3stIC5WYWx1ZXMuZnVsbG5hbWVPdmVycmlkZSB8IHRydW5jIDYzIHwgdHJpbVN1ZmZpeCAiLSIgLX19Cnt7LSBlbHNlIC19fQp7ey0gJG5hbWUgOj0gZGVmYXVsdCAuQ2hhcnQuTmFtZSAuVmFsdWVzLm5hbWVPdmVycmlkZSAtfX0Ke3stIGlmIGNvbnRhaW5zICRuYW1lIC5SZWxlYXNlLk5hbWUgLX19Cnt7LSAuUmVsZWFzZS5OYW1lIHwgdHJ1bmMgNjMgfCB0cmltU3VmZml4ICItIiAtfX0Ke3stIGVsc2UgLX19Cnt7LSBwcmludGYgIiVzLSVzIiAuUmVsZWFzZS5OYW1lICRuYW1lIHwgdHJ1bmMgNjMgfCB0cmltU3VmZml4ICItIiAtfX0Ke3stIGVuZCAtfX0Ke3stIGVuZCAtfX0Ke3stIGVuZCAtfX0KCnt7LyoKQ3JlYXRlIGNoYXJ0IG5hbWUgYW5kIHZlcnNpb24gYXMgdXNlZCBieSB0aGUgY2hhcnQgbGFiZWwuCiovfX0Ke3stIGRlZmluZSAiZ3JhZmFuYS5jaGFydCIgLX19Cnt7LSBwcmludGYgIiVzLSVzIiAuQ2hhcnQuTmFtZSAuQ2hhcnQuVmVyc2lvbiB8IHJlcGxhY2UgIisiICJfIiB8IHRydW5jIDYzIHwgdHJpbVN1ZmZpeCAiLSIgLX19Cnt7LSBlbmQgLX19Cgp7ey8qCkNyZWF0ZSB0aGUgbmFtZSBvZiB0aGUgc2VydmljZSBhY2NvdW50CiovfX0Ke3stIGRlZmluZSAiZ3JhZmFuYS5zZXJ2aWNlQWNjb3VudE5hbWUiIC19fQp7ey0gaWYgLlZhbHVlcy5zZXJ2aWNlQWNjb3VudC5jcmVhdGUgLX19CiAgICB7eyBkZWZhdWx0IChpbmNsdWRlICJncmFmYW5hLmZ1bGxuYW1lIiAuKSAuVmFsdWVzLnNlcnZpY2VBY2NvdW50Lm5hbWUgfX0Ke3stIGVsc2UgLX19CiAgICB7eyBkZWZhdWx0ICJkZWZhdWx0IiAuVmFsdWVzLnNlcnZpY2VBY2NvdW50Lm5hbWUgfX0Ke3stIGVuZCAtfX0Ke3stIGVuZCAtfX0K"
    40          },
    41          {
    42            "filePath": "templates/clusterrole.yaml",
    43            "fileContents": "e3stIGlmIC5WYWx1ZXMucmJhYy5jcmVhdGUgfX0Ka2luZDogQ2x1c3RlclJvbGUKYXBpVmVyc2lvbjogcmJhYy5hdXRob3JpemF0aW9uLms4cy5pby92MQptZXRhZGF0YToKICBsYWJlbHM6CiAgICBhcHA6IHt7IHRlbXBsYXRlICJncmFmYW5hLm5hbWUiIC4gfX0KICAgIGNoYXJ0OiB7eyB0ZW1wbGF0ZSAiZ3JhZmFuYS5jaGFydCIgLiB9fQogICAgcmVsZWFzZToge3sgLlJlbGVhc2UuTmFtZSB9fQogICAgaGVyaXRhZ2U6IHt7IC5SZWxlYXNlLlNlcnZpY2UgfX0Ke3stIHdpdGggLlZhbHVlcy5hbm5vdGF0aW9ucyB9fQogIGFubm90YXRpb25zOgp7eyB0b1lhbWwgLiB8IGluZGVudCA0IH19Cnt7LSBlbmQgfX0KICBuYW1lOiB7eyB0ZW1wbGF0ZSAiZ3JhZmFuYS5mdWxsbmFtZSIgLiB9fS1jbHVzdGVycm9sZQp7ey0gaWYgb3IgLlZhbHVlcy5zaWRlY2FyLmRhc2hib2FyZHMuZW5hYmxlZCAuVmFsdWVzLnNpZGVjYXIuZGF0YXNvdXJjZXMuZW5hYmxlZCB9fQpydWxlczoKLSBhcGlHcm91cHM6IFsiIl0gIyAiIiBpbmRpY2F0ZXMgdGhlIGNvcmUgQVBJIGdyb3VwCiAgcmVzb3VyY2VzOiBbImNvbmZpZ21hcHMiXQogIHZlcmJzOiBbImdldCIsICJ3YXRjaCIsICJsaXN0Il0Ke3stIGVsc2UgfX0KcnVsZXM6IFtdCnt7LSBlbmR9fQp7ey0gZW5kfX0K"
    44          },
    45          {
    46            "filePath": "templates/clusterrolebinding.yaml",
    47            "fileContents": "e3stIGlmIC5WYWx1ZXMucmJhYy5jcmVhdGUgfX0Ka2luZDogQ2x1c3RlclJvbGVCaW5kaW5nCmFwaVZlcnNpb246IHJiYWMuYXV0aG9yaXphdGlvbi5rOHMuaW8vdjEKbWV0YWRhdGE6CiAgbmFtZToge3sgdGVtcGxhdGUgImdyYWZhbmEuZnVsbG5hbWUiIC4gfX0tY2x1c3RlcnJvbGViaW5kaW5nCiAgbGFiZWxzOgogICAgYXBwOiB7eyB0ZW1wbGF0ZSAiZ3JhZmFuYS5uYW1lIiAuIH19CiAgICBjaGFydDoge3sgdGVtcGxhdGUgImdyYWZhbmEuY2hhcnQiIC4gfX0KICAgIHJlbGVhc2U6IHt7IC5SZWxlYXNlLk5hbWUgfX0KICAgIGhlcml0YWdlOiB7eyAuUmVsZWFzZS5TZXJ2aWNlIH19Cnt7LSB3aXRoIC5WYWx1ZXMuYW5ub3RhdGlvbnMgfX0KICBhbm5vdGF0aW9uczoKe3sgdG9ZYW1sIC4gfCBpbmRlbnQgNCB9fQp7ey0gZW5kIH19CnN1YmplY3RzOgogIC0ga2luZDogU2VydmljZUFjY291bnQKICAgIG5hbWU6IHt7IHRlbXBsYXRlICJncmFmYW5hLnNlcnZpY2VBY2NvdW50TmFtZSIgLiB9fQogICAgbmFtZXNwYWNlOiB7eyAuUmVsZWFzZS5OYW1lc3BhY2UgfX0Kcm9sZVJlZjoKICBraW5kOiBDbHVzdGVyUm9sZQogIG5hbWU6IHt7IHRlbXBsYXRlICJncmFmYW5hLmZ1bGxuYW1lIiAuIH19LWNsdXN0ZXJyb2xlCiAgYXBpR3JvdXA6IHJiYWMuYXV0aG9yaXphdGlvbi5rOHMuaW8Ke3stIGVuZH19Cg=="
    48          },
    49          {
    50            "filePath": "templates/configmap-dashboard-provider.yaml",
    51            "fileContents": "e3stIGlmIC5WYWx1ZXMuc2lkZWNhci5kYXNoYm9hcmRzLmVuYWJsZWQgfX0KYXBpVmVyc2lvbjogdjEKa2luZDogQ29uZmlnTWFwCm1ldGFkYXRhOgogIGxhYmVsczoKICAgIGFwcDoge3sgdGVtcGxhdGUgImdyYWZhbmEubmFtZSIgLiB9fQogICAgY2hhcnQ6IHt7IHRlbXBsYXRlICJncmFmYW5hLmNoYXJ0IiAuIH19CiAgICByZWxlYXNlOiB7eyAuUmVsZWFzZS5OYW1lIH19CiAgICBoZXJpdGFnZToge3sgLlJlbGVhc2UuU2VydmljZSB9fQp7ey0gd2l0aCAuVmFsdWVzLmFubm90YXRpb25zIH19CiAgYW5ub3RhdGlvbnM6Cnt7IHRvWWFtbCAuIHwgaW5kZW50IDQgfX0Ke3stIGVuZCB9fQogIG5hbWU6IHt7IHRlbXBsYXRlICJncmFmYW5hLmZ1bGxuYW1lIiAuIH19LWNvbmZpZy1kYXNoYm9hcmRzCmRhdGE6CiAgcHJvdmlkZXIueWFtbDogfC0KICAgIGFwaVZlcnNpb246IDEKICAgIHByb3ZpZGVyczoKICAgIC0gbmFtZTogJ2RlZmF1bHQnCiAgICAgIG9yZ0lkOiAxCiAgICAgIGZvbGRlcjogJycKICAgICAgdHlwZTogZmlsZQogICAgICBkaXNhYmxlRGVsZXRpb246IGZhbHNlCiAgICAgIG9wdGlvbnM6CiAgICAgICAgcGF0aDoge3sgLlZhbHVlcy5zaWRlY2FyLmRhc2hib2FyZHMuZm9sZGVyIH19Cnt7LSBlbmR9fQo="
    52          },
    53          {
    54            "filePath": "templates/configmap.yaml",
    55            "fileContents": "YXBpVmVyc2lvbjogdjEKa2luZDogQ29uZmlnTWFwCm1ldGFkYXRhOgogIG5hbWU6IHt7IHRlbXBsYXRlICJncmFmYW5hLmZ1bGxuYW1lIiAuIH19CiAgbGFiZWxzOgogICAgYXBwOiB7eyB0ZW1wbGF0ZSAiZ3JhZmFuYS5uYW1lIiAuIH19CiAgICBjaGFydDoge3sgdGVtcGxhdGUgImdyYWZhbmEuY2hhcnQiIC4gfX0KICAgIHJlbGVhc2U6IHt7IC5SZWxlYXNlLk5hbWUgfX0KICAgIGhlcml0YWdlOiB7eyAuUmVsZWFzZS5TZXJ2aWNlIH19CmRhdGE6Cnt7LSBpZiAuVmFsdWVzLnBsdWdpbnMgfX0KICBwbHVnaW5zOiB7eyBqb2luICIsIiAuVmFsdWVzLnBsdWdpbnMgfX0Ke3stIGVuZCB9fQogIGdyYWZhbmEuaW5pOiB8Cnt7LSByYW5nZSAka2V5LCAkdmFsdWUgOj0gaW5kZXggLlZhbHVlcyAiZ3JhZmFuYS5pbmkiIH19CiAgICBbe3sgJGtleSB9fV0KICAgIHt7LSByYW5nZSAkZWxlbSwgJGVsZW1WYWwgOj0gJHZhbHVlIH19CiAgICB7eyAkZWxlbSB9fSA9IHt7ICRlbGVtVmFsIH19CiAgICB7ey0gZW5kIH19Cnt7LSBlbmQgfX0KCnt7LSBpZiAuVmFsdWVzLmRhdGFzb3VyY2VzIH19CiAge3stIHJhbmdlICRrZXksICR2YWx1ZSA6PSAuVmFsdWVzLmRhdGFzb3VyY2VzIH19CiAge3sgJGtleSB9fTogfAp7eyB0b1lhbWwgJHZhbHVlIHwgaW5kZW50IDQgfX0KICB7ey0gZW5kIC19fQp7ey0gZW5kIC19fQoKe3stIGlmIC5WYWx1ZXMuZGFzaGJvYXJkUHJvdmlkZXJzIH19CiAge3stIHJhbmdlICRrZXksICR2YWx1ZSA6PSAuVmFsdWVzLmRhc2hib2FyZFByb3ZpZGVycyB9fQogIHt7ICRrZXkgfX06IHwKe3sgdG9ZYW1sICR2YWx1ZSB8IGluZGVudCA0IH19CiAge3stIGVuZCAtfX0Ke3stIGVuZCAtfX0KCnt7LSBpZiAuVmFsdWVzLmRhc2hib2FyZHMgIH19CiAgZG93bmxvYWRfZGFzaGJvYXJkcy5zaDogfAogICAgIyEvdXNyL2Jpbi9lbnYgc2gKICAgIHNldCAtZXVmCiAgICB7ey0gaWYgLlZhbHVlcy5kYXNoYm9hcmRQcm92aWRlcnMgfX0KICAgICAge3stIHJhbmdlICRrZXksICR2YWx1ZSA6PSAuVmFsdWVzLmRhc2hib2FyZFByb3ZpZGVycyB9fQogICAgICAgIHt7LSByYW5nZSAkdmFsdWUucHJvdmlkZXJzIH19CiAgICBta2RpciAtcCB7eyAub3B0aW9ucy5wYXRoIH19CiAgICAgICAge3stIGVuZCB9fQogICAgICB7ey0gZW5kIH19CiAgICB7ey0gZW5kIH19CgogIHt7LSByYW5nZSAkcHJvdmlkZXIsICRkYXNoYm9hcmRzIDo9IC5WYWx1ZXMuZGFzaGJvYXJkcyB9fQogICAge3stIHJhbmdlICRrZXksICR2YWx1ZSA6PSAkZGFzaGJvYXJkcyB9fQogICAgICB7ey0gaWYgKG9yIChoYXNLZXkgJHZhbHVlICJnbmV0SWQiKSAoaGFzS2V5ICR2YWx1ZSAidXJsIikpIH19CiAgICBjdXJsIC1zayBcCiAgICAtLWNvbm5lY3QtdGltZW91dCA2MCBcCiAgICAtLW1heC10aW1lIDYwIFwKICAgIC1IICJBY2NlcHQ6IGFwcGxpY2F0aW9uL2pzb24iIFwKICAgIC1IICJDb250ZW50LVR5cGU6IGFwcGxpY2F0aW9uL2pzb247Y2hhcnNldD1VVEYtOCIgXAogICAge3stIGlmICR2YWx1ZS51cmwgLX19e3sgJHZhbHVlLnVybCB9fXt7LSBlbHNlIC19fSBodHRwczovL2dyYWZhbmEuY29tL2FwaS9kYXNoYm9hcmRzL3t7ICR2YWx1ZS5nbmV0SWQgfX0vcmV2aXNpb25zL3t7LSBpZiAkdmFsdWUucmV2aXNpb24gLX19e3sgJHZhbHVlLnJldmlzaW9uIH19e3stIGVsc2UgLX19MXt7LSBlbmQgLX19L2Rvd25sb2Fke3stIGVuZCAtfX17eyBpZiAkdmFsdWUuZGF0YXNvdXJjZSB9fXwgc2VkICdzfFwiZGF0YXNvdXJjZVwiOlteLF0qfFwiZGF0YXNvdXJjZVwiOiBcInt7ICR2YWx1ZS5kYXRhc291cmNlIH19XCJ8Zyd7eyBlbmQgfX0gXAogICAgPiAvdmFyL2xpYi9ncmFmYW5hL2Rhc2hib2FyZHMve3sgJHByb3ZpZGVyIH19L3t7ICRrZXkgfX0uanNvbgogICAgICB7ey0gZW5kIH19CiAgICB7ey0gZW5kIH19CiAge3stIGVuZCB9fQp7ey0gZW5kIH19Cg=="
    56          },
    57          {
    58            "filePath": "templates/dashboards-json-configmap.yaml",
    59            "fileContents": "e3stIGlmIC5WYWx1ZXMuZGFzaGJvYXJkcyB9fQogIHt7LSByYW5nZSAkcHJvdmlkZXIsICRkYXNoYm9hcmRzIDo9IC5WYWx1ZXMuZGFzaGJvYXJkcyB9fQotLS0KYXBpVmVyc2lvbjogdjEKa2luZDogQ29uZmlnTWFwCm1ldGFkYXRhOgogIG5hbWU6IHt7IHRlbXBsYXRlICJncmFmYW5hLmZ1bGxuYW1lIiAkIH19LWRhc2hib2FyZHMte3sgJHByb3ZpZGVyIH19CiAgbGFiZWxzOgogICAgYXBwOiB7eyB0ZW1wbGF0ZSAiZ3JhZmFuYS5uYW1lIiAkIH19CiAgICBjaGFydDoge3sgdGVtcGxhdGUgImdyYWZhbmEuY2hhcnQiICQgfX0KICAgIHJlbGVhc2U6IHt7ICQuUmVsZWFzZS5OYW1lIH19CiAgICBoZXJpdGFnZToge3sgJC5SZWxlYXNlLlNlcnZpY2UgfX0KICAgIGRhc2hib2FyZC1wcm92aWRlcjoge3sgJHByb3ZpZGVyIH19CmRhdGE6CiAge3stIHJhbmdlICRrZXksICR2YWx1ZSA6PSAkZGFzaGJvYXJkcyB9fQogICAge3stIGlmIGhhc0tleSAkdmFsdWUgImpzb24iIH19CiAge3sgJGtleSB9fS5qc29uOiB8Cnt7ICR2YWx1ZS5qc29uIHwgaW5kZW50IDQgfX0KICAgIHt7LSBlbmQgfX0KICB7ey0gZW5kIH19CiAge3stIGVuZCB9fQp7ey0gZW5kIH19Cg=="
    60          },
    61          {
    62            "filePath": "templates/deployment.yaml",
    63            "fileContents": "YXBpVmVyc2lvbjogYXBwcy92MWJldGEyCmtpbmQ6IERlcGxveW1lbnQKbWV0YWRhdGE6CiAgbmFtZToge3sgdGVtcGxhdGUgImdyYWZhbmEuZnVsbG5hbWUiIC4gfX0KICBsYWJlbHM6CiAgICBhcHA6IHt7IHRlbXBsYXRlICJncmFmYW5hLm5hbWUiIC4gfX0KICAgIGNoYXJ0OiB7eyB0ZW1wbGF0ZSAiZ3JhZmFuYS5jaGFydCIgLiB9fQogICAgcmVsZWFzZToge3sgLlJlbGVhc2UuTmFtZSB9fQogICAgaGVyaXRhZ2U6IHt7IC5SZWxlYXNlLlNlcnZpY2UgfX0Ke3stIHdpdGggLlZhbHVlcy5hbm5vdGF0aW9ucyB9fQogIGFubm90YXRpb25zOgp7eyB0b1lhbWwgLiB8IGluZGVudCA0IH19Cnt7LSBlbmQgfX0Kc3BlYzoKICByZXBsaWNhczoge3sgLlZhbHVlcy5yZXBsaWNhcyB9fQogIHNlbGVjdG9yOgogICAgbWF0Y2hMYWJlbHM6CiAgICAgIGFwcDoge3sgdGVtcGxhdGUgImdyYWZhbmEubmFtZSIgLiB9fQogICAgICByZWxlYXNlOiB7eyAuUmVsZWFzZS5OYW1lIH19CiAgc3RyYXRlZ3k6CiAgICB0eXBlOiB7eyAuVmFsdWVzLmRlcGxveW1lbnRTdHJhdGVneSB9fQogIHt7LSBpZiBuZSAuVmFsdWVzLmRlcGxveW1lbnRTdHJhdGVneSAiUm9sbGluZ1VwZGF0ZSIgfX0KICAgIHJvbGxpbmdVcGRhdGU6IG51bGwKICB7ey0gZW5kIH19CiAgdGVtcGxhdGU6CiAgICBtZXRhZGF0YToKICAgICAgbGFiZWxzOgogICAgICAgIGFwcDoge3sgdGVtcGxhdGUgImdyYWZhbmEubmFtZSIgLiB9fQogICAgICAgIHJlbGVhc2U6IHt7IC5SZWxlYXNlLk5hbWUgfX0Ke3stIHdpdGggLlZhbHVlcy5wb2RBbm5vdGF0aW9ucyB9fQogICAgICBhbm5vdGF0aW9uczoKe3sgdG9ZYW1sIC4gfCBpbmRlbnQgOCB9fQp7ey0gZW5kIH19CiAgICBzcGVjOgogICAgICBzZXJ2aWNlQWNjb3VudE5hbWU6IHt7IHRlbXBsYXRlICJncmFmYW5hLnNlcnZpY2VBY2NvdW50TmFtZSIgLiB9fQp7ey0gaWYgLlZhbHVlcy5zY2hlZHVsZXJOYW1lIH19CiAgICAgIHNjaGVkdWxlck5hbWU6ICJ7eyAuVmFsdWVzLnNjaGVkdWxlck5hbWUgfX0iCnt7LSBlbmQgfX0Ke3stIGlmIC5WYWx1ZXMuc2VjdXJpdHlDb250ZXh0IH19CiAgICAgIHNlY3VyaXR5Q29udGV4dDoKe3sgdG9ZYW1sIC5WYWx1ZXMuc2VjdXJpdHlDb250ZXh0IHwgaW5kZW50IDggfX0Ke3stIGVuZCB9fQp7ey0gaWYgLlZhbHVlcy5wcmlvcml0eUNsYXNzTmFtZSB9fQogICAgICBwcmlvcml0eUNsYXNzTmFtZToge3sgLlZhbHVlcy5wcmlvcml0eUNsYXNzTmFtZSB9fQp7ey0gZW5kIH19Cnt7LSBpZiAuVmFsdWVzLmRhc2hib2FyZHMgfX0KICAgICAgaW5pdENvbnRhaW5lcnM6CiAgICAgICAgLSBuYW1lOiBkb3dubG9hZC1kYXNoYm9hcmRzCiAgICAgICAgICBpbWFnZTogInt7IC5WYWx1ZXMuZG93bmxvYWREYXNoYm9hcmRzSW1hZ2UucmVwb3NpdG9yeSB9fTp7eyAuVmFsdWVzLmRvd25sb2FkRGFzaGJvYXJkc0ltYWdlLnRhZyB9fSIKICAgICAgICAgIGltYWdlUHVsbFBvbGljeToge3sgLlZhbHVlcy5kb3dubG9hZERhc2hib2FyZHNJbWFnZS5wdWxsUG9saWN5IH19CiAgICAgICAgICBjb21tYW5kOiBbInNoIiwgIi9ldGMvZ3JhZmFuYS9kb3dubG9hZF9kYXNoYm9hcmRzLnNoIl0KICAgICAgICAgIHZvbHVtZU1vdW50czoKICAgICAgICAgICAgLSBuYW1lOiBjb25maWcKICAgICAgICAgICAgICBtb3VudFBhdGg6ICIvZXRjL2dyYWZhbmEvZG93bmxvYWRfZGFzaGJvYXJkcy5zaCIKICAgICAgICAgICAgICBzdWJQYXRoOiBkb3dubG9hZF9kYXNoYm9hcmRzLnNoCiAgICAgICAgICAgIC0gbmFtZTogc3RvcmFnZQogICAgICAgICAgICAgIG1vdW50UGF0aDogIi92YXIvbGliL2dyYWZhbmEiCiAgICAgICAgICAgICAgc3ViUGF0aDoge3sgLlZhbHVlcy5wZXJzaXN0ZW5jZS5zdWJQYXRoIH19CiAgICAgICAgICB7ey0gcmFuZ2UgLlZhbHVlcy5leHRyYVNlY3JldE1vdW50cyB9fQogICAgICAgICAgICAtIG5hbWU6IHt7IC5uYW1lIH19CiAgICAgICAgICAgICAgbW91bnRQYXRoOiB7eyAubW91bnRQYXRoIH19CiAgICAgICAgICAgICAgcmVhZE9ubHk6IHt7IC5yZWFkT25seSB9fQogICAgICAgICAge3stIGVuZCB9fQp7ey0gZW5kIH19CiAgICAgIHt7LSBpZiAuVmFsdWVzLmltYWdlLnB1bGxTZWNyZXRzIH19CiAgICAgIGltYWdlUHVsbFNlY3JldHM6CiAgICAgIHt7LSByYW5nZSAuVmFsdWVzLmltYWdlLnB1bGxTZWNyZXRzIH19CiAgICAgICAgLSBuYW1lOiB7eyAuIH19CiAgICAgIHt7LSBlbmR9fQogICAgICB7ey0gZW5kIH19CiAgICAgIGNvbnRhaW5lcnM6Cnt7LSBpZiAuVmFsdWVzLnNpZGVjYXIuZGFzaGJvYXJkcy5lbmFibGVkIH19CiAgICAgICAgLSBuYW1lOiB7eyB0ZW1wbGF0ZSAiZ3JhZmFuYS5uYW1lIiAuIH19LXNjLWRhc2hib2FyZAogICAgICAgICAgaW1hZ2U6ICJ7eyAuVmFsdWVzLnNpZGVjYXIuaW1hZ2UgfX0iCiAgICAgICAgICBpbWFnZVB1bGxQb2xpY3k6IHt7IC5WYWx1ZXMuc2lkZWNhci5pbWFnZVB1bGxQb2xpY3kgfX0KICAgICAgICAgIGVudjoKICAgICAgICAgICAgLSBuYW1lOiBMQUJFTAogICAgICAgICAgICAgIHZhbHVlOiAie3sgLlZhbHVlcy5zaWRlY2FyLmRhc2hib2FyZHMubGFiZWwgfX0iCiAgICAgICAgICAgIC0gbmFtZTogRk9MREVSCiAgICAgICAgICAgICAgdmFsdWU6ICJ7eyAuVmFsdWVzLnNpZGVjYXIuZGFzaGJvYXJkcy5mb2xkZXIgfX0iCiAgICAgICAgICAgIHt7LSBpZiAuVmFsdWVzLnNpZGVjYXIuZGFzaGJvYXJkcy5zZWFyY2hOYW1lc3BhY2UgfX0KICAgICAgICAgICAgLSBuYW1lOiBOQU1FU1BBQ0UKICAgICAgICAgICAgICB2YWx1ZTogInt7IC5WYWx1ZXMuc2lkZWNhci5kYXNoYm9hcmRzLnNlYXJjaE5hbWVzcGFjZSB9fSIKICAgICAgICAgICAge3stIGVuZCB9fQogICAgICAgICAgcmVzb3VyY2VzOgp7eyB0b1lhbWwgLlZhbHVlcy5zaWRlY2FyLnJlc291cmNlcyB8IGluZGVudCAxMiB9fQogICAgICAgICAgdm9sdW1lTW91bnRzOgogICAgICAgICAgICAtIG5hbWU6IHNjLWRhc2hib2FyZC12b2x1bWUKICAgICAgICAgICAgICBtb3VudFBhdGg6IHt7IC5WYWx1ZXMuc2lkZWNhci5kYXNoYm9hcmRzLmZvbGRlciB8IHF1b3RlIH19Cnt7LSBlbmR9fQp7ey0gaWYgLlZhbHVlcy5zaWRlY2FyLmRhdGFzb3VyY2VzLmVuYWJsZWQgfX0KICAgICAgICAtIG5hbWU6IHt7IHRlbXBsYXRlICJncmFmYW5hLm5hbWUiIC4gfX0tc2MtZGF0YXNvdXJjZXMKICAgICAgICAgIGltYWdlOiAie3sgLlZhbHVlcy5zaWRlY2FyLmltYWdlIH19IgogICAgICAgICAgaW1hZ2VQdWxsUG9saWN5OiB7eyAuVmFsdWVzLnNpZGVjYXIuaW1hZ2VQdWxsUG9saWN5IH19CiAgICAgICAgICBlbnY6CiAgICAgICAgICAgIC0gbmFtZTogTEFCRUwKICAgICAgICAgICAgICB2YWx1ZTogInt7IC5WYWx1ZXMuc2lkZWNhci5kYXRhc291cmNlcy5sYWJlbCB9fSIKICAgICAgICAgICAgLSBuYW1lOiBGT0xERVIKICAgICAgICAgICAgICB2YWx1ZTogIi9ldGMvZ3JhZmFuYS9wcm92aXNpb25pbmcvZGF0YXNvdXJjZXMiCiAgICAgICAgICAgIHt7LSBpZiAuVmFsdWVzLnNpZGVjYXIuZGF0YXNvdXJjZXMuc2VhcmNoTmFtZXNwYWNlIH19CiAgICAgICAgICAgIC0gbmFtZTogTkFNRVNQQUNFCiAgICAgICAgICAgICAgdmFsdWU6ICJ7eyAuVmFsdWVzLnNpZGVjYXIuZGF0YXNvdXJjZXMuc2VhcmNoTmFtZXNwYWNlIH19IgogICAgICAgICAgICB7ey0gZW5kIH19CiAgICAgICAgICByZXNvdXJjZXM6Cnt7IHRvWWFtbCAuVmFsdWVzLnNpZGVjYXIucmVzb3VyY2VzIHwgaW5kZW50IDEyIH19CiAgICAgICAgICB2b2x1bWVNb3VudHM6CiAgICAgICAgICAgIC0gbmFtZTogc2MtZGF0YXNvdXJjZXMtdm9sdW1lCiAgICAgICAgICAgICAgbW91bnRQYXRoOiAiL2V0Yy9ncmFmYW5hL3Byb3Zpc2lvbmluZy9kYXRhc291cmNlcyIKe3stIGVuZH19CiAgICAgICAgLSBuYW1lOiB7eyAuQ2hhcnQuTmFtZSB9fQogICAgICAgICAgaW1hZ2U6ICJ7eyAuVmFsdWVzLmltYWdlLnJlcG9zaXRvcnkgfX06e3sgLlZhbHVlcy5pbWFnZS50YWcgfX0iCiAgICAgICAgICBpbWFnZVB1bGxQb2xpY3k6IHt7IC5WYWx1ZXMuaW1hZ2UucHVsbFBvbGljeSB9fQogICAgICAgICAgdm9sdW1lTW91bnRzOgogICAgICAgICAgICAtIG5hbWU6IGNvbmZpZwogICAgICAgICAgICAgIG1vdW50UGF0aDogIi9ldGMvZ3JhZmFuYS9ncmFmYW5hLmluaSIKICAgICAgICAgICAgICBzdWJQYXRoOiBncmFmYW5hLmluaQogICAgICAgICAgICAtIG5hbWU6IGxkYXAKICAgICAgICAgICAgICBtb3VudFBhdGg6ICIvZXRjL2dyYWZhbmEvbGRhcC50b21sIgogICAgICAgICAgICAgIHN1YlBhdGg6IGxkYXAudG9tbAogICAgICAgICAgICAtIG5hbWU6IHN0b3JhZ2UKICAgICAgICAgICAgICBtb3VudFBhdGg6ICIvdmFyL2xpYi9ncmFmYW5hIgogICAgICAgICAgICAgIHN1YlBhdGg6IHt7IC5WYWx1ZXMucGVyc2lzdGVuY2Uuc3ViUGF0aCB9fQp7ey0gaWYgLlZhbHVlcy5kYXNoYm9hcmRzIH19CiAge3stIHJhbmdlICRwcm92aWRlciwgJGRhc2hib2FyZHMgOj0gLlZhbHVlcy5kYXNoYm9hcmRzIH19CiAgICB7ey0gcmFuZ2UgJGtleSwgJHZhbHVlIDo9ICRkYXNoYm9hcmRzIH19CiAgICAgIHt7LSBpZiBoYXNLZXkgJHZhbHVlICJqc29uIiB9fQogICAgICAgICAgICAtIG5hbWU6IGRhc2hib2FyZHMte3sgJHByb3ZpZGVyIH19CiAgICAgICAgICAgICAgbW91bnRQYXRoOiAiL3Zhci9saWIvZ3JhZmFuYS9kYXNoYm9hcmRzL3t7ICRwcm92aWRlciB9fS97eyAka2V5IH19Lmpzb24iCiAgICAgICAgICAgICAgc3ViUGF0aDogInt7ICRrZXkgfX0uanNvbiIKICAgICAge3stIGVuZCB9fQogICAge3stIGVuZCB9fQogIHt7LSBlbmQgfX0Ke3stIGVuZCAtfX0Ke3stIGlmIC5WYWx1ZXMuZGFzaGJvYXJkc0NvbmZpZ01hcHMgfX0KICB7ey0gcmFuZ2Uga2V5cyAuVmFsdWVzLmRhc2hib2FyZHNDb25maWdNYXBzIH19CiAgICAgICAgICAgIC0gbmFtZTogZGFzaGJvYXJkcy17eyAuIH19CiAgICAgICAgICAgICAgbW91bnRQYXRoOiAiL3Zhci9saWIvZ3JhZmFuYS9kYXNoYm9hcmRzL3t7IC4gfX0iCiAge3stIGVuZCB9fQp7ey0gZW5kIH19Cnt7LSBpZiAuVmFsdWVzLmRhdGFzb3VyY2VzIH19CiAgICAgICAgICAgIC0gbmFtZTogY29uZmlnCiAgICAgICAgICAgICAgbW91bnRQYXRoOiAiL2V0Yy9ncmFmYW5hL3Byb3Zpc2lvbmluZy9kYXRhc291cmNlcy9kYXRhc291cmNlcy55YW1sIgogICAgICAgICAgICAgIHN1YlBhdGg6IGRhdGFzb3VyY2VzLnlhbWwKe3stIGVuZCB9fQp7ey0gaWYgLlZhbHVlcy5kYXNoYm9hcmRQcm92aWRlcnMgfX0KICAgICAgICAgICAgLSBuYW1lOiBjb25maWcKICAgICAgICAgICAgICBtb3VudFBhdGg6ICIvZXRjL2dyYWZhbmEvcHJvdmlzaW9uaW5nL2Rhc2hib2FyZHMvZGFzaGJvYXJkcHJvdmlkZXJzLnlhbWwiCiAgICAgICAgICAgICAgc3ViUGF0aDogZGFzaGJvYXJkcHJvdmlkZXJzLnlhbWwKe3stIGVuZCB9fQp7ey0gaWYgLlZhbHVlcy5zaWRlY2FyLmRhc2hib2FyZHMuZW5hYmxlZCB9fQogICAgICAgICAgICAtIG5hbWU6IHNjLWRhc2hib2FyZC12b2x1bWUKICAgICAgICAgICAgICBtb3VudFBhdGg6IHt7IC5WYWx1ZXMuc2lkZWNhci5kYXNoYm9hcmRzLmZvbGRlciB8IHF1b3RlIH19CiAgICAgICAgICAgIC0gbmFtZTogc2MtZGFzaGJvYXJkLXByb3ZpZGVyCiAgICAgICAgICAgICAgbW91bnRQYXRoOiAiL2V0Yy9ncmFmYW5hL3Byb3Zpc2lvbmluZy9kYXNoYm9hcmRzL3NjLWRhc2hib2FyZHByb3ZpZGVycy55YW1sIgogICAgICAgICAgICAgIHN1YlBhdGg6IHByb3ZpZGVyLnlhbWwKe3stIGVuZH19Cnt7LSBpZiAuVmFsdWVzLnNpZGVjYXIuZGF0YXNvdXJjZXMuZW5hYmxlZCB9fQogICAgICAgICAgICAtIG5hbWU6IHNjLWRhdGFzb3VyY2VzLXZvbHVtZQogICAgICAgICAgICAgIG1vdW50UGF0aDogIi9ldGMvZ3JhZmFuYS9wcm92aXNpb25pbmcvZGF0YXNvdXJjZXMiCnt7LSBlbmR9fQogICAgICAgICAge3stIHJhbmdlIC5WYWx1ZXMuZXh0cmFTZWNyZXRNb3VudHMgfX0KICAgICAgICAgICAgLSBuYW1lOiB7eyAubmFtZSB9fQogICAgICAgICAgICAgIG1vdW50UGF0aDoge3sgLm1vdW50UGF0aCB9fQogICAgICAgICAgICAgIHJlYWRPbmx5OiB7eyAucmVhZE9ubHkgfX0KICAgICAgICAgIHt7LSBlbmQgfX0KICAgICAgICAgIHBvcnRzOgogICAgICAgICAgICAtIG5hbWU6IHNlcnZpY2UKICAgICAgICAgICAgICBjb250YWluZXJQb3J0OiB7eyAuVmFsdWVzLnNlcnZpY2UucG9ydCB9fQogICAgICAgICAgICAgIHByb3RvY29sOiBUQ1AKICAgICAgICAgICAgLSBuYW1lOiBncmFmYW5hCiAgICAgICAgICAgICAgY29udGFpbmVyUG9ydDogMzAwMAogICAgICAgICAgICAgIHByb3RvY29sOiBUQ1AKICAgICAgICAgIGVudjoKICAgICAgICAgICAgLSBuYW1lOiBHRl9TRUNVUklUWV9BRE1JTl9VU0VSCiAgICAgICAgICAgICAgdmFsdWVGcm9tOgogICAgICAgICAgICAgICAgc2VjcmV0S2V5UmVmOgogICAgICAgICAgICAgICAgICBuYW1lOiB7eyB0ZW1wbGF0ZSAiZ3JhZmFuYS5mdWxsbmFtZSIgLiB9fQogICAgICAgICAgICAgICAgICBrZXk6IGFkbWluLXVzZXIKICAgICAgICAgICAgLSBuYW1lOiBHRl9TRUNVUklUWV9BRE1JTl9QQVNTV09SRAogICAgICAgICAgICAgIHZhbHVlRnJvbToKICAgICAgICAgICAgICAgIHNlY3JldEtleVJlZjoKICAgICAgICAgICAgICAgICAgbmFtZToge3sgdGVtcGxhdGUgImdyYWZhbmEuZnVsbG5hbWUiIC4gfX0KICAgICAgICAgICAgICAgICAga2V5OiBhZG1pbi1wYXNzd29yZAogICAgICAgICAgICB7ey0gaWYgLlZhbHVlcy5wbHVnaW5zIH19CiAgICAgICAgICAgIC0gbmFtZTogR0ZfSU5TVEFMTF9QTFVHSU5TCiAgICAgICAgICAgICAgdmFsdWVGcm9tOgogICAgICAgICAgICAgICAgY29uZmlnTWFwS2V5UmVmOgogICAgICAgICAgICAgICAgICBuYW1lOiB7eyB0ZW1wbGF0ZSAiZ3JhZmFuYS5mdWxsbmFtZSIgLiB9fQogICAgICAgICAgICAgICAgICBrZXk6IHBsdWdpbnMKICAgICAgICAgICAge3stIGVuZCB9fQogICAgICAgICAgICB7ey0gaWYgLlZhbHVlcy5zbXRwLmV4aXN0aW5nU2VjcmV0IH19CiAgICAgICAgICAgIC0gbmFtZTogR0ZfU01UUF9VU0VSCiAgICAgICAgICAgICAgdmFsdWVGcm9tOgogICAgICAgICAgICAgICAgc2VjcmV0S2V5UmVmOgogICAgICAgICAgICAgICAgICBuYW1lOiB7eyAuVmFsdWVzLnNtdHAuZXhpc3RpbmdTZWNyZXQgfX0KICAgICAgICAgICAgICAgICAga2V5OiB1c2VyCiAgICAgICAgICAgIC0gbmFtZTogR0ZfU01UUF9QQVNTV09SRAogICAgICAgICAgICAgIHZhbHVlRnJvbToKICAgICAgICAgICAgICAgIHNlY3JldEtleVJlZjoKICAgICAgICAgICAgICAgICAgbmFtZToge3sgLlZhbHVlcy5zbXRwLmV4aXN0aW5nU2VjcmV0IH19CiAgICAgICAgICAgICAgICAgIGtleTogcGFzc3dvcmQKICAgICAgICAgICAge3stIGVuZCB9fQp7ey0gcmFuZ2UgJGtleSwgJHZhbHVlIDo9IC5WYWx1ZXMuZW52IH19CiAgICAgICAgICAgIC0gbmFtZTogInt7ICRrZXkgfX0iCiAgICAgICAgICAgICAgdmFsdWU6ICJ7eyAkdmFsdWUgfX0iCnt7LSBlbmQgfX0KICAgICAgICAgIHt7LSBpZiAuVmFsdWVzLmVudkZyb21TZWNyZXQgfX0KICAgICAgICAgIGVudkZyb206CiAgICAgICAgICAgIC0gc2VjcmV0UmVmOgogICAgICAgICAgICAgICAgbmFtZToge3sgLlZhbHVlcy5lbnZGcm9tU2VjcmV0IH19CiAgICAgICAgICB7ey0gZW5kIH19CiAgICAgICAgICBsaXZlbmVzc1Byb2JlOgp7eyB0b1lhbWwgLlZhbHVlcy5saXZlbmVzc1Byb2JlIHwgaW5kZW50IDEyIH19CiAgICAgICAgICByZWFkaW5lc3NQcm9iZToKe3sgdG9ZYW1sIC5WYWx1ZXMucmVhZGluZXNzUHJvYmUgfCBpbmRlbnQgMTIgfX0KICAgICAgICAgIHJlc291cmNlczoKe3sgdG9ZYW1sIC5WYWx1ZXMucmVzb3VyY2VzIHwgaW5kZW50IDEyIH19CiAgICB7ey0gd2l0aCAuVmFsdWVzLm5vZGVTZWxlY3RvciB9fQogICAgICBub2RlU2VsZWN0b3I6Cnt7IHRvWWFtbCAuIHwgaW5kZW50IDggfX0KICAgIHt7LSBlbmQgfX0KICAgIHt7LSB3aXRoIC5WYWx1ZXMuYWZmaW5pdHkgfX0KICAgICAgYWZmaW5pdHk6Cnt7IHRvWWFtbCAuIHwgaW5kZW50IDggfX0KICAgIHt7LSBlbmQgfX0KICAgIHt7LSB3aXRoIC5WYWx1ZXMudG9sZXJhdGlvbnMgfX0KICAgICAgdG9sZXJhdGlvbnM6Cnt7IHRvWWFtbCAuIHwgaW5kZW50IDggfX0KICAgIHt7LSBlbmQgfX0KICAgICAgdm9sdW1lczoKICAgICAgICAtIG5hbWU6IGNvbmZpZwogICAgICAgICAgY29uZmlnTWFwOgogICAgICAgICAgICBuYW1lOiB7eyB0ZW1wbGF0ZSAiZ3JhZmFuYS5mdWxsbmFtZSIgLiB9fQogICAgICAgIHt7LSBpZiAuVmFsdWVzLmRhc2hib2FyZHMgfX0KICAgICAgICAgIHt7LSByYW5nZSBrZXlzIC5WYWx1ZXMuZGFzaGJvYXJkcyB9fQogICAgICAgIC0gbmFtZTogZGFzaGJvYXJkcy17eyAuIH19CiAgICAgICAgICBjb25maWdNYXA6CiAgICAgICAgICAgIG5hbWU6IHt7IHRlbXBsYXRlICJncmFmYW5hLmZ1bGxuYW1lIiAkIH19LWRhc2hib2FyZHMte3sgLiB9fQogICAgICAgICAge3stIGVuZCB9fQogICAgICAgIHt7LSBlbmQgfX0KICAgICAgICB7ey0gaWYgLlZhbHVlcy5kYXNoYm9hcmRzQ29uZmlnTWFwcyB9fQogICAgICAgICAge3stIHJhbmdlICRwcm92aWRlciwgJG5hbWUgOj0gLlZhbHVlcy5kYXNoYm9hcmRzQ29uZmlnTWFwcyB9fQogICAgICAgIC0gbmFtZTogZGFzaGJvYXJkcy17eyAkcHJvdmlkZXIgfX0KICAgICAgICAgIGNvbmZpZ01hcDoKICAgICAgICAgICAgbmFtZToge3sgJG5hbWUgfX0KICAgICAgICAgIHt7LSBlbmQgfX0KICAgICAgICB7ey0gZW5kIH19CiAgICAgICAgLSBuYW1lOiBsZGFwCiAgICAgICAgICBzZWNyZXQ6CiAgICAgICAgICAgIHt7LSBpZiAuVmFsdWVzLmxkYXAuZXhpc3RpbmdTZWNyZXQgfX0KICAgICAgICAgICAgc2VjcmV0TmFtZToge3sgLlZhbHVlcy5sZGFwLmV4aXN0aW5nU2VjcmV0IH19CiAgICAgICAgICAgIHt7LSBlbHNlIH19CiAgICAgICAgICAgIHNlY3JldE5hbWU6IHt7IHRlbXBsYXRlICJncmFmYW5hLmZ1bGxuYW1lIiAuIH19CiAgICAgICAgICAgIHt7LSBlbmQgfX0KICAgICAgICAgICAgaXRlbXM6CiAgICAgICAgICAgICAgLSBrZXk6IGxkYXAtdG9tbAogICAgICAgICAgICAgICAgcGF0aDogbGRhcC50b21sCiAgICAgICAgLSBuYW1lOiBzdG9yYWdlCiAgICAgIHt7LSBpZiAuVmFsdWVzLnBlcnNpc3RlbmNlLmVuYWJsZWQgfX0KICAgICAgICAgIHBlcnNpc3RlbnRWb2x1bWVDbGFpbToKICAgICAgICAgICAgY2xhaW1OYW1lOiB7eyAuVmFsdWVzLnBlcnNpc3RlbmNlLmV4aXN0aW5nQ2xhaW0gfCBkZWZhdWx0IChpbmNsdWRlICJncmFmYW5hLmZ1bGxuYW1lIiAuKSB9fQogICAgICB7ey0gZWxzZSB9fQogICAgICAgICAgZW1wdHlEaXI6IHt9CiAgICAgIHt7LSBlbmQgLX19CiAgICAgIHt7LSBpZiAuVmFsdWVzLnNpZGVjYXIuZGFzaGJvYXJkcy5lbmFibGVkIH19CiAgICAgICAgLSBuYW1lOiBzYy1kYXNoYm9hcmQtdm9sdW1lCiAgICAgICAgICBlbXB0eURpcjoge30KICAgICAgICAtIG5hbWU6IHNjLWRhc2hib2FyZC1wcm92aWRlcgogICAgICAgICAgY29uZmlnTWFwOgogICAgICAgICAgICBuYW1lOiB7eyB0ZW1wbGF0ZSAiZ3JhZmFuYS5mdWxsbmFtZSIgLiB9fS1jb25maWctZGFzaGJvYXJkcwogICAgICB7ey0gZW5kIH19CiAgICAgIHt7LSBpZiAuVmFsdWVzLnNpZGVjYXIuZGF0YXNvdXJjZXMuZW5hYmxlZCB9fQogICAgICAgIC0gbmFtZTogc2MtZGF0YXNvdXJjZXMtdm9sdW1lCiAgICAgICAgICBlbXB0eURpcjoge30KICAgICAge3stIGVuZCAtfX0KICAgICAge3stIHJhbmdlIC5WYWx1ZXMuZXh0cmFTZWNyZXRNb3VudHMgfX0KICAgICAgICAtIG5hbWU6IHt7IC5uYW1lIH19CiAgICAgICAgICBzZWNyZXQ6CiAgICAgICAgICAgIHNlY3JldE5hbWU6IHt7IC5zZWNyZXROYW1lIH19CiAgICAgICAgICAgIGRlZmF1bHRNb2RlOiB7eyAuZGVmYXVsdE1vZGUgfX0KICAgICAge3stIGVuZCB9fQo="
    64          },
    65          {
    66            "filePath": "templates/ingress.yaml",
    67            "fileContents": "e3stIGlmIC5WYWx1ZXMuaW5ncmVzcy5lbmFibGVkIC19fQp7ey0gJGZ1bGxOYW1lIDo9IGluY2x1ZGUgImdyYWZhbmEuZnVsbG5hbWUiIC4gLX19Cnt7LSAkc2VydmljZVBvcnQgOj0gLlZhbHVlcy5zZXJ2aWNlLnBvcnQgLX19Cnt7LSAkaW5ncmVzc1BhdGggOj0gLlZhbHVlcy5pbmdyZXNzLnBhdGggLX19CmFwaVZlcnNpb246IGV4dGVuc2lvbnMvdjFiZXRhMQpraW5kOiBJbmdyZXNzCm1ldGFkYXRhOgogIG5hbWU6IHt7ICRmdWxsTmFtZSB9fQogIGxhYmVsczoKICAgIGFwcDoge3sgdGVtcGxhdGUgImdyYWZhbmEubmFtZSIgLiB9fQogICAgY2hhcnQ6IHt7IHRlbXBsYXRlICJncmFmYW5hLmNoYXJ0IiAuIH19CiAgICByZWxlYXNlOiB7eyAuUmVsZWFzZS5OYW1lIH19CiAgICBoZXJpdGFnZToge3sgLlJlbGVhc2UuU2VydmljZSB9fQp7ey0gaWYgLlZhbHVlcy5pbmdyZXNzLmxhYmVscyB9fQp7eyB0b1lhbWwgLlZhbHVlcy5pbmdyZXNzLmxhYmVscyB8IGluZGVudCA0IH19Cnt7LSBlbmQgfX0Ke3stIHdpdGggLlZhbHVlcy5pbmdyZXNzLmFubm90YXRpb25zIH19CiAgYW5ub3RhdGlvbnM6Cnt7IHRvWWFtbCAuIHwgaW5kZW50IDQgfX0Ke3stIGVuZCB9fQpzcGVjOgp7ey0gaWYgLlZhbHVlcy5pbmdyZXNzLnRscyB9fQogIHRsczoKICB7ey0gcmFuZ2UgLlZhbHVlcy5pbmdyZXNzLnRscyB9fQogICAgLSBob3N0czoKICAgICAge3stIHJhbmdlIC5ob3N0cyB9fQogICAgICAgIC0ge3sgLiB8IHF1b3RlIH19CiAgICAgIHt7LSBlbmQgfX0KICAgICAgc2VjcmV0TmFtZToge3sgLnNlY3JldE5hbWUgfX0KICB7ey0gZW5kIH19Cnt7LSBlbmQgfX0KICBydWxlczoKICB7ey0gcmFuZ2UgLlZhbHVlcy5pbmdyZXNzLmhvc3RzIH19CiAgICAtIGhvc3Q6IHt7IC4gfX0KICAgICAgaHR0cDoKICAgICAgICBwYXRoczoKICAgICAgICAgIC0gcGF0aDoge3sgJGluZ3Jlc3NQYXRoIH19CiAgICAgICAgICAgIGJhY2tlbmQ6CiAgICAgICAgICAgICAgc2VydmljZU5hbWU6IHt7ICRmdWxsTmFtZSB9fQogICAgICAgICAgICAgIHNlcnZpY2VQb3J0OiB7eyAkc2VydmljZVBvcnQgfX0KICB7ey0gZW5kIH19Cnt7LSBlbmQgfX0K"
    68          },
    69          {
    70            "filePath": "templates/podsecuritypolicy.yaml",
    71            "fileContents": "e3stIGlmIC5WYWx1ZXMucmJhYy5wc3BFbmFibGVkIH19CmFwaVZlcnNpb246IGV4dGVuc2lvbnMvdjFiZXRhMQpraW5kOiBQb2RTZWN1cml0eVBvbGljeQptZXRhZGF0YToKICBuYW1lOiB7eyB0ZW1wbGF0ZSAiZ3JhZmFuYS5mdWxsbmFtZSIgLiB9fQogIGxhYmVsczoKICAgIGFwcDoge3sgdGVtcGxhdGUgImdyYWZhbmEubmFtZSIgLiB9fQogICAgY2hhcnQ6IHt7IC5DaGFydC5OYW1lIH19LXt7IC5DaGFydC5WZXJzaW9uIH19CiAgICBoZXJpdGFnZToge3sgLlJlbGVhc2UuU2VydmljZSB9fQogICAgcmVsZWFzZToge3sgLlJlbGVhc2UuTmFtZSB9fQogIGFubm90YXRpb25zOgogICAgc2VjY29tcC5zZWN1cml0eS5hbHBoYS5rdWJlcm5ldGVzLmlvL2FsbG93ZWRQcm9maWxlTmFtZXM6ICdkb2NrZXIvZGVmYXVsdCcKICAgIGFwcGFybW9yLnNlY3VyaXR5LmJldGEua3ViZXJuZXRlcy5pby9hbGxvd2VkUHJvZmlsZU5hbWVzOiAncnVudGltZS9kZWZhdWx0JwogICAgc2VjY29tcC5zZWN1cml0eS5hbHBoYS5rdWJlcm5ldGVzLmlvL2RlZmF1bHRQcm9maWxlTmFtZTogICdkb2NrZXIvZGVmYXVsdCcKICAgIGFwcGFybW9yLnNlY3VyaXR5LmJldGEua3ViZXJuZXRlcy5pby9kZWZhdWx0UHJvZmlsZU5hbWU6ICAncnVudGltZS9kZWZhdWx0JwpzcGVjOgogIHByaXZpbGVnZWQ6IGZhbHNlCiAgYWxsb3dQcml2aWxlZ2VFc2NhbGF0aW9uOiBmYWxzZQogIHJlcXVpcmVkRHJvcENhcGFiaWxpdGllczoKICAgIC0gQUxMCiAgdm9sdW1lczoKICAgIC0gJ2NvbmZpZ01hcCcKICAgIC0gJ2VtcHR5RGlyJwogICAgLSAncHJvamVjdGVkJwogICAgLSAnc2VjcmV0JwogICAgLSAnZG93bndhcmRBUEknCiAgICAtICdwZXJzaXN0ZW50Vm9sdW1lQ2xhaW0nCiAgaG9zdE5ldHdvcms6IGZhbHNlCiAgaG9zdElQQzogZmFsc2UKICBob3N0UElEOiBmYWxzZQogIHJ1bkFzVXNlcjoKICAgIHJ1bGU6ICdSdW5Bc0FueScKICBzZUxpbnV4OgogICAgcnVsZTogJ1J1bkFzQW55JwogIHN1cHBsZW1lbnRhbEdyb3VwczoKICAgIHJ1bGU6ICdSdW5Bc0FueScKICBmc0dyb3VwOgogICAgcnVsZTogJ1J1bkFzQW55JwogIHJlYWRPbmx5Um9vdEZpbGVzeXN0ZW06IGZhbHNlCnt7LSBlbmQgfX0K"
    72          },
    73          {
    74            "filePath": "templates/pvc.yaml",
    75            "fileContents": "e3stIGlmIGFuZCAuVmFsdWVzLnBlcnNpc3RlbmNlLmVuYWJsZWQgKG5vdCAuVmFsdWVzLnBlcnNpc3RlbmNlLmV4aXN0aW5nQ2xhaW0pIH19CmFwaVZlcnNpb246IHYxCmtpbmQ6IFBlcnNpc3RlbnRWb2x1bWVDbGFpbQptZXRhZGF0YToKICBuYW1lOiB7eyB0ZW1wbGF0ZSAiZ3JhZmFuYS5mdWxsbmFtZSIgLiB9fQogIGxhYmVsczoKICAgIGFwcDoge3sgdGVtcGxhdGUgImdyYWZhbmEubmFtZSIgLiB9fQogICAgY2hhcnQ6IHt7IHRlbXBsYXRlICJncmFmYW5hLmNoYXJ0IiAuIH19CiAgICByZWxlYXNlOiB7eyAuUmVsZWFzZS5OYW1lIH19CiAgICBoZXJpdGFnZToge3sgLlJlbGVhc2UuU2VydmljZSB9fQogIHt7LSB3aXRoIC5WYWx1ZXMucGVyc2lzdGVuY2UuYW5ub3RhdGlvbnMgIH19CiAgYW5ub3RhdGlvbnM6Cnt7IHRvWWFtbCAuIHwgaW5kZW50IDQgfX0KICB7ey0gZW5kIH19CnNwZWM6CiAgYWNjZXNzTW9kZXM6CiAgICB7ey0gcmFuZ2UgLlZhbHVlcy5wZXJzaXN0ZW5jZS5hY2Nlc3NNb2RlcyB9fQogICAgLSB7eyAuIHwgcXVvdGUgfX0KICAgIHt7LSBlbmQgfX0KICByZXNvdXJjZXM6CiAgICByZXF1ZXN0czoKICAgICAgc3RvcmFnZToge3sgLlZhbHVlcy5wZXJzaXN0ZW5jZS5zaXplIHwgcXVvdGUgfX0KICBzdG9yYWdlQ2xhc3NOYW1lOiB7eyAuVmFsdWVzLnBlcnNpc3RlbmNlLnN0b3JhZ2VDbGFzc05hbWUgfX0Ke3stIGVuZCAtfX0K"
    76          },
    77          {
    78            "filePath": "templates/role.yaml",
    79            "fileContents": "e3stIGlmIC5WYWx1ZXMucmJhYy5jcmVhdGUgfX0KYXBpVmVyc2lvbjogcmJhYy5hdXRob3JpemF0aW9uLms4cy5pby92MWJldGExCmtpbmQ6IFJvbGUKbWV0YWRhdGE6CiAgbmFtZToge3sgdGVtcGxhdGUgImdyYWZhbmEuZnVsbG5hbWUiIC4gfX0KICBsYWJlbHM6CiAgICBhcHA6IHt7IHRlbXBsYXRlICJncmFmYW5hLm5hbWUiIC4gfX0KICAgIGNoYXJ0OiB7eyAuQ2hhcnQuTmFtZSB9fS17eyAuQ2hhcnQuVmVyc2lvbiB9fQogICAgaGVyaXRhZ2U6IHt7IC5SZWxlYXNlLlNlcnZpY2UgfX0KICAgIHJlbGVhc2U6IHt7IC5SZWxlYXNlLk5hbWUgfX0Ke3stIGlmIC5WYWx1ZXMucmJhYy5wc3BFbmFibGVkIH19CnJ1bGVzOgotIGFwaUdyb3VwczogICAgICBbJ2V4dGVuc2lvbnMnXQogIHJlc291cmNlczogICAgICBbJ3BvZHNlY3VyaXR5cG9saWNpZXMnXQogIHZlcmJzOiAgICAgICAgICBbJ3VzZSddCiAgcmVzb3VyY2VOYW1lczogIFt7eyB0ZW1wbGF0ZSAiZ3JhZmFuYS5mdWxsbmFtZSIgLiB9fV0Ke3stIGVuZCB9fQp7ey0gZW5kIH19Cg=="
    80          },
    81          {
    82            "filePath": "templates/rolebinding.yaml",
    83            "fileContents": "e3stIGlmIC5WYWx1ZXMucmJhYy5jcmVhdGUgLX19CmFwaVZlcnNpb246IHJiYWMuYXV0aG9yaXphdGlvbi5rOHMuaW8vdjFiZXRhMQpraW5kOiBSb2xlQmluZGluZwptZXRhZGF0YToKICBuYW1lOiB7eyB0ZW1wbGF0ZSAiZ3JhZmFuYS5mdWxsbmFtZSIgLiB9fQogIGxhYmVsczoKICAgIGFwcDoge3sgdGVtcGxhdGUgImdyYWZhbmEubmFtZSIgLiB9fQogICAgY2hhcnQ6IHt7IC5DaGFydC5OYW1lIH19LXt7IC5DaGFydC5WZXJzaW9uIH19CiAgICBoZXJpdGFnZToge3sgLlJlbGVhc2UuU2VydmljZSB9fQogICAgcmVsZWFzZToge3sgLlJlbGVhc2UuTmFtZSB9fQpyb2xlUmVmOgogIGFwaUdyb3VwOiByYmFjLmF1dGhvcml6YXRpb24uazhzLmlvCiAga2luZDogUm9sZQogIG5hbWU6IHt7IHRlbXBsYXRlICJncmFmYW5hLmZ1bGxuYW1lIiAuIH19CnN1YmplY3RzOgotIGtpbmQ6IFNlcnZpY2VBY2NvdW50CiAgbmFtZToge3sgdGVtcGxhdGUgImdyYWZhbmEuc2VydmljZUFjY291bnROYW1lIiAuIH19Cnt7LSBlbmQgLX19Cg=="
    84          },
    85          {
    86            "filePath": "templates/secret.yaml",
    87            "fileContents": "YXBpVmVyc2lvbjogdjEKa2luZDogU2VjcmV0Cm1ldGFkYXRhOgogIG5hbWU6IHt7IHRlbXBsYXRlICJncmFmYW5hLmZ1bGxuYW1lIiAuIH19CiAgbGFiZWxzOgogICAgYXBwOiB7eyB0ZW1wbGF0ZSAiZ3JhZmFuYS5uYW1lIiAuIH19CiAgICBjaGFydDoge3sgdGVtcGxhdGUgImdyYWZhbmEuY2hhcnQiIC4gfX0KICAgIHJlbGVhc2U6IHt7IC5SZWxlYXNlLk5hbWUgfX0KICAgIGhlcml0YWdlOiB7eyAuUmVsZWFzZS5TZXJ2aWNlIH19CnR5cGU6IE9wYXF1ZQpkYXRhOgogIGFkbWluLXVzZXI6IHt7IC5WYWx1ZXMuYWRtaW5Vc2VyIHwgYjY0ZW5jIHwgcXVvdGUgfX0KICB7ey0gaWYgLlZhbHVlcy5hZG1pblBhc3N3b3JkIH19CiAgYWRtaW4tcGFzc3dvcmQ6IHt7IC5WYWx1ZXMuYWRtaW5QYXNzd29yZCB8IGI2NGVuYyB8IHF1b3RlIH19CiAge3stIGVsc2UgfX0KICBhZG1pbi1wYXNzd29yZDoge3sgcmFuZEFscGhhTnVtIDQwIHwgYjY0ZW5jIHwgcXVvdGUgfX0KICB7ey0gZW5kIH19CiAge3stIGlmIG5vdCAuVmFsdWVzLmxkYXAuZXhpc3RpbmdTZWNyZXQgfX0KICBsZGFwLXRvbWw6IHt7IC5WYWx1ZXMubGRhcC5jb25maWcgfCBiNjRlbmMgfCBxdW90ZSB9fQogIHt7LSBlbmQgfX0K"
    88          },
    89          {
    90            "filePath": "templates/service.yaml",
    91            "fileContents": "YXBpVmVyc2lvbjogdjEKa2luZDogU2VydmljZQptZXRhZGF0YToKICBuYW1lOiB7eyB0ZW1wbGF0ZSAiZ3JhZmFuYS5mdWxsbmFtZSIgLiB9fQogIGxhYmVsczoKICAgIGFwcDoge3sgdGVtcGxhdGUgImdyYWZhbmEubmFtZSIgLiB9fQogICAgY2hhcnQ6IHt7IHRlbXBsYXRlICJncmFmYW5hLmNoYXJ0IiAuIH19CiAgICByZWxlYXNlOiB7eyAuUmVsZWFzZS5OYW1lIH19CiAgICBoZXJpdGFnZToge3sgLlJlbGVhc2UuU2VydmljZSB9fQp7ey0gaWYgLlZhbHVlcy5zZXJ2aWNlLmxhYmVscyB9fQp7eyB0b1lhbWwgLlZhbHVlcy5zZXJ2aWNlLmxhYmVscyB8IGluZGVudCA0IH19Cnt7LSBlbmQgfX0Ke3stIHdpdGggLlZhbHVlcy5zZXJ2aWNlLmFubm90YXRpb25zIH19CiAgYW5ub3RhdGlvbnM6Cnt7IHRvWWFtbCAuIHwgaW5kZW50IDQgfX0Ke3stIGVuZCB9fQpzcGVjOgp7ey0gaWYgKG9yIChlcSAuVmFsdWVzLnNlcnZpY2UudHlwZSAiQ2x1c3RlcklQIikgKGVtcHR5IC5WYWx1ZXMuc2VydmljZS50eXBlKSkgfX0KICB0eXBlOiBDbHVzdGVySVAKICB7ey0gaWYgLlZhbHVlcy5zZXJ2aWNlLmNsdXN0ZXJJUCB9fQogIGNsdXN0ZXJJUDoge3sgLlZhbHVlcy5zZXJ2aWNlLmNsdXN0ZXJJUCB9fQogIHt7ZW5kfX0Ke3stIGVsc2UgaWYgZXEgLlZhbHVlcy5zZXJ2aWNlLnR5cGUgIkxvYWRCYWxhbmNlciIgfX0KICB0eXBlOiB7eyAuVmFsdWVzLnNlcnZpY2UudHlwZSB9fQogIHt7LSBpZiAuVmFsdWVzLnNlcnZpY2UubG9hZEJhbGFuY2VySVAgfX0KICBsb2FkQmFsYW5jZXJJUDoge3sgLlZhbHVlcy5zZXJ2aWNlLmxvYWRCYWxhbmNlcklQIH19CiAge3stIGVuZCB9fQogIHt7LSBpZiAuVmFsdWVzLnNlcnZpY2UubG9hZEJhbGFuY2VyU291cmNlUmFuZ2VzIH19CiAgbG9hZEJhbGFuY2VyU291cmNlUmFuZ2VzOgp7eyB0b1lhbWwgLlZhbHVlcy5zZXJ2aWNlLmxvYWRCYWxhbmNlclNvdXJjZVJhbmdlcyB8IGluZGVudCA0IH19CiAge3stIGVuZCAtfX0Ke3stIGVsc2UgfX0KICB0eXBlOiB7eyAuVmFsdWVzLnNlcnZpY2UudHlwZSB9fQp7ey0gZW5kIH19Cnt7LSBpZiAuVmFsdWVzLnNlcnZpY2UuZXh0ZXJuYWxJUHMgfX0KICBleHRlcm5hbElQczoKe3sgdG9ZYW1sIC5WYWx1ZXMuc2VydmljZS5leHRlcm5hbElQcyB8IGluZGVudCA0IH19Cnt7LSBlbmQgfX0KICBwb3J0czoKICAgIC0gbmFtZTogc2VydmljZQogICAgICBwb3J0OiB7eyAuVmFsdWVzLnNlcnZpY2UucG9ydCB9fQogICAgICBwcm90b2NvbDogVENQCiAgICAgIHRhcmdldFBvcnQ6IDMwMDAKe3sgaWYgKGFuZCAoZXEgLlZhbHVlcy5zZXJ2aWNlLnR5cGUgIk5vZGVQb3J0IikgKG5vdCAoZW1wdHkgLlZhbHVlcy5zZXJ2aWNlLm5vZGVQb3J0KSkpIH19CiAgICAgIG5vZGVQb3J0OiB7ey5WYWx1ZXMuc2VydmljZS5ub2RlUG9ydH19Cnt7IGVuZCB9fQogIHNlbGVjdG9yOgogICAgYXBwOiB7eyB0ZW1wbGF0ZSAiZ3JhZmFuYS5uYW1lIiAuIH19CiAgICByZWxlYXNlOiB7eyAuUmVsZWFzZS5OYW1lIH19Cg=="
    92          },
    93          {
    94            "filePath": "templates/serviceaccount.yaml",
    95            "fileContents": "e3stIGlmIC5WYWx1ZXMuc2VydmljZUFjY291bnQuY3JlYXRlIH19CmFwaVZlcnNpb246IHYxCmtpbmQ6IFNlcnZpY2VBY2NvdW50Cm1ldGFkYXRhOgogIGxhYmVsczoKICAgIGFwcDoge3sgdGVtcGxhdGUgImdyYWZhbmEubmFtZSIgLiB9fQogICAgY2hhcnQ6IHt7IC5DaGFydC5OYW1lIH19LXt7IC5DaGFydC5WZXJzaW9uIH19CiAgICBoZXJpdGFnZToge3sgLlJlbGVhc2UuU2VydmljZSB9fQogICAgcmVsZWFzZToge3sgLlJlbGVhc2UuTmFtZSB9fQogIG5hbWU6IHt7IHRlbXBsYXRlICJncmFmYW5hLnNlcnZpY2VBY2NvdW50TmFtZSIgLiB9fQp7ey0gZW5kIH19Cg=="
    96          },
    97          {
    98            "filePath": "values.yaml",
    99            "fileContents": "cmJhYzoKICBjcmVhdGU6IHRydWUKICBwc3BFbmFibGVkOiB0cnVlCnNlcnZpY2VBY2NvdW50OgogIGNyZWF0ZTogdHJ1ZQogIG5hbWU6CgpyZXBsaWNhczogMQoKZGVwbG95bWVudFN0cmF0ZWd5OiBSb2xsaW5nVXBkYXRlCgpyZWFkaW5lc3NQcm9iZToKICBodHRwR2V0OgogICAgcGF0aDogL2FwaS9oZWFsdGgKICAgIHBvcnQ6IDMwMDAKCmxpdmVuZXNzUHJvYmU6CiAgaHR0cEdldDoKICAgIHBhdGg6IC9hcGkvaGVhbHRoCiAgICBwb3J0OiAzMDAwCiAgaW5pdGlhbERlbGF5U2Vjb25kczogNjAKICB0aW1lb3V0U2Vjb25kczogMzAKICBmYWlsdXJlVGhyZXNob2xkOiAxMAoKaW1hZ2U6CiAgcmVwb3NpdG9yeTogZ3JhZmFuYS9ncmFmYW5hCiAgdGFnOiA1LjMuNAogIHB1bGxQb2xpY3k6IElmTm90UHJlc2VudAoKICAjIyBPcHRpb25hbGx5IHNwZWNpZnkgYW4gYXJyYXkgb2YgaW1hZ2VQdWxsU2VjcmV0cy4KICAjIyBTZWNyZXRzIG11c3QgYmUgbWFudWFsbHkgY3JlYXRlZCBpbiB0aGUgbmFtZXNwYWNlLgogICMjIHJlZjogaHR0cHM6Ly9rdWJlcm5ldGVzLmlvL2RvY3MvdGFza3MvY29uZmlndXJlLXBvZC1jb250YWluZXIvcHVsbC1pbWFnZS1wcml2YXRlLXJlZ2lzdHJ5LwogICMjCiAgIyBwdWxsU2VjcmV0czoKICAjICAgLSBteVJlZ2lzdHJLZXlTZWNyZXROYW1lCgpzZWN1cml0eUNvbnRleHQ6CiAgcnVuQXNVc2VyOiA0NzIKICBmc0dyb3VwOiA0NzIKCiMjIEFzc2lnbiBhIFByaW9yaXR5Q2xhc3NOYW1lIHRvIHBvZHMgaWYgc2V0CiMgcHJpb3JpdHlDbGFzc05hbWU6Cgpkb3dubG9hZERhc2hib2FyZHNJbWFnZToKICByZXBvc2l0b3J5OiBhcHByb3ByaWF0ZS9jdXJsCiAgdGFnOiBsYXRlc3QKICBwdWxsUG9saWN5OiBJZk5vdFByZXNlbnQKCiMjIFBvZCBBbm5vdGF0aW9ucwojIHBvZEFubm90YXRpb25zOiB7fQoKIyMgRGVwbG95bWVudCBhbm5vdGF0aW9ucwojIGFubm90YXRpb25zOiB7fQoKIyMgRXhwb3NlIHRoZSBncmFmYW5hIHNlcnZpY2UgdG8gYmUgYWNjZXNzZWQgZnJvbSBvdXRzaWRlIHRoZSBjbHVzdGVyIChMb2FkQmFsYW5jZXIgc2VydmljZSkuCiMjIG9yIGFjY2VzcyBpdCBmcm9tIHdpdGhpbiB0aGUgY2x1c3RlciAoQ2x1c3RlcklQIHNlcnZpY2UpLiBTZXQgdGhlIHNlcnZpY2UgdHlwZSBhbmQgdGhlIHBvcnQgdG8gc2VydmUgaXQuCiMjIHJlZjogaHR0cDovL2t1YmVybmV0ZXMuaW8vZG9jcy91c2VyLWd1aWRlL3NlcnZpY2VzLwojIwpzZXJ2aWNlOgogIHR5cGU6IENsdXN0ZXJJUAogIHBvcnQ6IDgwCiAgYW5ub3RhdGlvbnM6IHt9CiAgbGFiZWxzOiB7fQoKaW5ncmVzczoKICBlbmFibGVkOiBmYWxzZQogIGFubm90YXRpb25zOiB7fQogICAgIyBrdWJlcm5ldGVzLmlvL2luZ3Jlc3MuY2xhc3M6IG5naW54CiAgICAjIGt1YmVybmV0ZXMuaW8vdGxzLWFjbWU6ICJ0cnVlIgogIGxhYmVsczoge30KICBwYXRoOiAvCiAgaG9zdHM6CiAgICAtIGNoYXJ0LWV4YW1wbGUubG9jYWwKICB0bHM6IFtdCiAgIyAgLSBzZWNyZXROYW1lOiBjaGFydC1leGFtcGxlLXRscwogICMgICAgaG9zdHM6CiAgIyAgICAgIC0gY2hhcnQtZXhhbXBsZS5sb2NhbAoKcmVzb3VyY2VzOiB7fQojICBsaW1pdHM6CiMgICAgY3B1OiAxMDBtCiMgICAgbWVtb3J5OiAxMjhNaQojICByZXF1ZXN0czoKIyAgICBjcHU6IDEwMG0KIyAgICBtZW1vcnk6IDEyOE1pCgojIyBOb2RlIGxhYmVscyBmb3IgcG9kIGFzc2lnbm1lbnQKIyMgcmVmOiBodHRwczovL2t1YmVybmV0ZXMuaW8vZG9jcy91c2VyLWd1aWRlL25vZGUtc2VsZWN0aW9uLwojCm5vZGVTZWxlY3Rvcjoge30KCiMjIFRvbGVyYXRpb25zIGZvciBwb2QgYXNzaWdubWVudAojIyByZWY6IGh0dHBzOi8va3ViZXJuZXRlcy5pby9kb2NzL2NvbmNlcHRzL2NvbmZpZ3VyYXRpb24vdGFpbnQtYW5kLXRvbGVyYXRpb24vCiMjCnRvbGVyYXRpb25zOiBbXQoKIyMgQWZmaW5pdHkgZm9yIHBvZCBhc3NpZ25tZW50CiMjIHJlZjogaHR0cHM6Ly9rdWJlcm5ldGVzLmlvL2RvY3MvY29uY2VwdHMvY29uZmlndXJhdGlvbi9hc3NpZ24tcG9kLW5vZGUvI2FmZmluaXR5LWFuZC1hbnRpLWFmZmluaXR5CiMjCmFmZmluaXR5OiB7fQoKIyMgRW5hYmxlIHBlcnNpc3RlbmNlIHVzaW5nIFBlcnNpc3RlbnQgVm9sdW1lIENsYWltcwojIyByZWY6IGh0dHA6Ly9rdWJlcm5ldGVzLmlvL2RvY3MvdXNlci1ndWlkZS9wZXJzaXN0ZW50LXZvbHVtZXMvCiMjCnBlcnNpc3RlbmNlOgogIGVuYWJsZWQ6IGZhbHNlCiAgIyBzdG9yYWdlQ2xhc3NOYW1lOiBkZWZhdWx0CiAgIyBhY2Nlc3NNb2RlczoKICAjICAgLSBSZWFkV3JpdGVPbmNlCiAgIyBzaXplOiAxMEdpCiAgIyBhbm5vdGF0aW9uczoge30KICAjIHN1YlBhdGg6ICIiCiAgIyBleGlzdGluZ0NsYWltOgoKYWRtaW5Vc2VyOiBhZG1pbgojIGFkbWluUGFzc3dvcmQ6IHN0cm9uZ3Bhc3N3b3JkCgojIyBVc2UgYW4gYWx0ZXJuYXRlIHNjaGVkdWxlciwgZS5nLiAic3RvcmsiLgojIyByZWY6IGh0dHBzOi8va3ViZXJuZXRlcy5pby9kb2NzL3Rhc2tzL2FkbWluaXN0ZXItY2x1c3Rlci9jb25maWd1cmUtbXVsdGlwbGUtc2NoZWR1bGVycy8KIyMKIyBzY2hlZHVsZXJOYW1lOgoKIyMgRXh0cmEgZW52aXJvbm1lbnQgdmFyaWFibGVzIHRoYXQgd2lsbCBiZSBwYXNzIG9udG8gZGVwbG95bWVudCBwb2RzCmVudjoge30KCiMjIFRoZSBuYW1lIG9mIGEgc2VjcmV0IGluIHRoZSBzYW1lIGt1YmVybmV0ZXMgbmFtZXNwYWNlIHdoaWNoIGNvbnRhaW4gdmFsdWVzIHRvIGJlIGFkZGVkIHRvIHRoZSBlbnZpcm9ubWVudAojIyBUaGlzIGNhbiBiZSB1c2VmdWwgZm9yIGF1dGggdG9rZW5zLCBldGMKZW52RnJvbVNlY3JldDogIiIKCiMjIEFkZGl0aW9uYWwgZ3JhZmFuYSBzZXJ2ZXIgc2VjcmV0IG1vdW50cwojIERlZmluZXMgYWRkaXRpb25hbCBtb3VudHMgd2l0aCBzZWNyZXRzLiBTZWNyZXRzIG11c3QgYmUgbWFudWFsbHkgY3JlYXRlZCBpbiB0aGUgbmFtZXNwYWNlLgpleHRyYVNlY3JldE1vdW50czogW10KICAjIC0gbmFtZTogc2VjcmV0LWZpbGVzCiAgIyAgIG1vdW50UGF0aDogL2V0Yy9zZWNyZXRzCiAgIyAgIHNlY3JldE5hbWU6IGdyYWZhbmEtc2VjcmV0LWZpbGVzCiAgIyAgIHJlYWRPbmx5OiB0cnVlCgojIyBQYXNzIHRoZSBwbHVnaW5zIHlvdSB3YW50IGluc3RhbGxlZCBhcyBhIGxpc3QuCiMjCnBsdWdpbnM6IFtdCiAgIyAtIGRpZ3JpY2gtYnViYmxlY2hhcnQtcGFuZWwKICAjIC0gZ3JhZmFuYS1jbG9jay1wYW5lbAoKIyMgQ29uZmlndXJlIGdyYWZhbmEgZGF0YXNvdXJjZXMKIyMgcmVmOiBodHRwOi8vZG9jcy5ncmFmYW5hLm9yZy9hZG1pbmlzdHJhdGlvbi9wcm92aXNpb25pbmcvI2RhdGFzb3VyY2VzCiMjCmRhdGFzb3VyY2VzOiB7fQojICBkYXRhc291cmNlcy55YW1sOgojICAgIGFwaVZlcnNpb246IDEKIyAgICBkYXRhc291cmNlczoKIyAgICAtIG5hbWU6IFByb21ldGhldXMKIyAgICAgIHR5cGU6IHByb21ldGhldXMKIyAgICAgIHVybDogaHR0cDovL3Byb21ldGhldXMtcHJvbWV0aGV1cy1zZXJ2ZXIKIyAgICAgIGFjY2VzczogcHJveHkKIyAgICAgIGlzRGVmYXVsdDogdHJ1ZQoKIyMgQ29uZmlndXJlIGdyYWZhbmEgZGFzaGJvYXJkIHByb3ZpZGVycwojIyByZWY6IGh0dHA6Ly9kb2NzLmdyYWZhbmEub3JnL2FkbWluaXN0cmF0aW9uL3Byb3Zpc2lvbmluZy8jZGFzaGJvYXJkcwojIwojIyBgcGF0aGAgbXVzdCBiZSAvdmFyL2xpYi9ncmFmYW5hL2Rhc2hib2FyZHMvPHByb3ZpZGVyX25hbWU+CiMjCmRhc2hib2FyZFByb3ZpZGVyczoge30KIyAgZGFzaGJvYXJkcHJvdmlkZXJzLnlhbWw6CiMgICAgYXBpVmVyc2lvbjogMQojICAgIHByb3ZpZGVyczoKIyAgICAtIG5hbWU6ICdkZWZhdWx0JwojICAgICAgb3JnSWQ6IDEKIyAgICAgIGZvbGRlcjogJycKIyAgICAgIHR5cGU6IGZpbGUKIyAgICAgIGRpc2FibGVEZWxldGlvbjogZmFsc2UKIyAgICAgIGVkaXRhYmxlOiB0cnVlCiMgICAgICBvcHRpb25zOgojICAgICAgICBwYXRoOiAvdmFyL2xpYi9ncmFmYW5hL2Rhc2hib2FyZHMvZGVmYXVsdAoKIyMgQ29uZmlndXJlIGdyYWZhbmEgZGFzaGJvYXJkIHRvIGltcG9ydAojIyBOT1RFOiBUbyB1c2UgZGFzaGJvYXJkcyB5b3UgbXVzdCBhbHNvIGVuYWJsZS9jb25maWd1cmUgZGFzaGJvYXJkUHJvdmlkZXJzCiMjIHJlZjogaHR0cHM6Ly9ncmFmYW5hLmNvbS9kYXNoYm9hcmRzCiMjCiMjIGRhc2hib2FyZHMgcGVyIHByb3ZpZGVyLCB1c2UgcHJvdmlkZXIgbmFtZSBhcyBrZXkuCiMjCmRhc2hib2FyZHM6IHt9CiMgIGRlZmF1bHQ6CiMgICAgc29tZS1kYXNoYm9hcmQ6CiMgICAgICBqc29uOiB8CiMgICAgICAgICRSQVdfSlNPTgojICAgIHByb21ldGhldXMtc3RhdHM6CiMgICAgICBnbmV0SWQ6IDIKIyAgICAgIHJldmlzaW9uOiAyCiMgICAgICBkYXRhc291cmNlOiBQcm9tZXRoZXVzCiMgICAgbG9jYWwtZGFzaGJvYXJkOgojICAgICAgdXJsOiBodHRwczovL2V4YW1wbGUuY29tL3JlcG9zaXRvcnkvdGVzdC5qc29uCgojIyBSZWZlcmVuY2UgdG8gZXh0ZXJuYWwgQ29uZmlnTWFwIHBlciBwcm92aWRlci4gVXNlIHByb3ZpZGVyIG5hbWUgYXMga2V5IGFuZCBDb25maU1hcCBuYW1lIGFzIHZhbHVlLgojIyBBIHByb3ZpZGVyIGRhc2hib2FyZHMgbXVzdCBiZSBkZWZpbmVkIGVpdGhlciBieSBleHRlcm5hbCBDb25maWdNYXBzIG9yIGluIHZhbHVlcy55YW1sLCBub3QgaW4gYm90aC4KIyMgQ29uZmlnTWFwIGRhdGEgZXhhbXBsZToKIyMKIyMgZGF0YToKIyMgICBleGFtcGxlLWRhc2hib2FyZC5qc29uOiB8CiMjICAgICBSQVdfSlNPTgojIwpkYXNoYm9hcmRzQ29uZmlnTWFwczoge30KIyAgZGVmYXVsdDogIiIKCiMjIEdyYWZhbmEncyBwcmltYXJ5IGNvbmZpZ3VyYXRpb24KIyMgTk9URTogdmFsdWVzIGluIG1hcCB3aWxsIGJlIGNvbnZlcnRlZCB0byBpbmkgZm9ybWF0CiMjIHJlZjogaHR0cDovL2RvY3MuZ3JhZmFuYS5vcmcvaW5zdGFsbGF0aW9uL2NvbmZpZ3VyYXRpb24vCiMjCmdyYWZhbmEuaW5pOgogIHBhdGhzOgogICAgZGF0YTogL3Zhci9saWIvZ3JhZmFuYS9kYXRhCiAgICBsb2dzOiAvdmFyL2xvZy9ncmFmYW5hCiAgICBwbHVnaW5zOiAvdmFyL2xpYi9ncmFmYW5hL3BsdWdpbnMKICAgIHByb3Zpc2lvbmluZzogL2V0Yy9ncmFmYW5hL3Byb3Zpc2lvbmluZwogIGFuYWx5dGljczoKICAgIGNoZWNrX2Zvcl91cGRhdGVzOiB0cnVlCiAgbG9nOgogICAgbW9kZTogY29uc29sZQogIGdyYWZhbmFfbmV0OgogICAgdXJsOiBodHRwczovL2dyYWZhbmEubmV0CiMjIExEQVAgQXV0aGVudGljYXRpb24gY2FuIGJlIGVuYWJsZWQgd2l0aCB0aGUgZm9sbG93aW5nIHZhbHVlcyBvbiBncmFmYW5hLmluaQojIyBOT1RFOiBHcmFmYW5hIHdpbGwgZmFpbCB0byBzdGFydCBpZiB0aGUgdmFsdWUgZm9yIGxkYXAudG9tbCBpcyBpbnZhbGlkCiAgIyBhdXRoLmxkYXA6CiAgIyAgIGVuYWJsZWQ6IHRydWUKICAjICAgYWxsb3dfc2lnbl91cDogdHJ1ZQogICMgICBjb25maWdfZmlsZTogL2V0Yy9ncmFmYW5hL2xkYXAudG9tbAoKIyMgR3JhZmFuYSdzIExEQVAgY29uZmlndXJhdGlvbgojIyBUZW1wbGF0ZWQgYnkgdGhlIHRlbXBsYXRlIGluIF9oZWxwZXJzLnRwbAojIyBOT1RFOiBUbyBlbmFibGUgdGhlIGdyYWZhbmEuaW5pIG11c3QgYmUgY29uZmlndXJlZCB3aXRoIGF1dGgubGRhcC5lbmFibGVkCiMjIHJlZjogaHR0cDovL2RvY3MuZ3JhZmFuYS5vcmcvaW5zdGFsbGF0aW9uL2NvbmZpZ3VyYXRpb24vI2F1dGgtbGRhcAojIyByZWY6IGh0dHA6Ly9kb2NzLmdyYWZhbmEub3JnL2luc3RhbGxhdGlvbi9sZGFwLyNjb25maWd1cmF0aW9uCmxkYXA6CiAgIyBgZXhpc3RpbmdTZWNyZXRgIGlzIGEgcmVmZXJlbmNlIHRvIGFuIGV4aXN0aW5nIHNlY3JldCBjb250YWluaW5nIHRoZSBsZGFwIGNvbmZpZ3VyYXRpb24KICAjIGZvciBHcmFmYW5hIGluIGEga2V5IGBsZGFwLXRvbWxgLgogIGV4aXN0aW5nU2VjcmV0OiAiIgogICMgYGNvbmZpZ2AgaXMgdGhlIGNvbnRlbnQgb2YgYGxkYXAudG9tbGAgdGhhdCB3aWxsIGJlIHN0b3JlZCBpbiB0aGUgY3JlYXRlZCBzZWNyZXQKICBjb25maWc6ICIiCiAgIyBjb25maWc6IHwtCiAgIyAgIHZlcmJvc2VfbG9nZ2luZyA9IHRydWUKCiAgIyAgIFtbc2VydmVyc11dCiAgIyAgIGhvc3QgPSAibXktbGRhcC1zZXJ2ZXIiCiAgIyAgIHBvcnQgPSA2MzYKICAjICAgdXNlX3NzbCA9IHRydWUKICAjICAgc3RhcnRfdGxzID0gZmFsc2UKICAjICAgc3NsX3NraXBfdmVyaWZ5ID0gZmFsc2UKICAjICAgYmluZF9kbiA9ICJ1aWQ9JXMsb3U9dXNlcnMsZGM9bXlvcmcsZGM9Y29tIgoKIyMgR3JhZmFuYSdzIFNNVFAgY29uZmlndXJhdGlvbgojIyBOT1RFOiBUbyBlbmFibGUsIGdyYWZhbmEuaW5pIG11c3QgYmUgY29uZmlndXJlZCB3aXRoIHNtdHAuZW5hYmxlZAojIyByZWY6IGh0dHA6Ly9kb2NzLmdyYWZhbmEub3JnL2luc3RhbGxhdGlvbi9jb25maWd1cmF0aW9uLyNzbXRwCnNtdHA6CiAgIyBgZXhpc3RpbmdTZWNyZXRgIGlzIGEgcmVmZXJlbmNlIHRvIGFuIGV4aXN0aW5nIHNlY3JldCBjb250YWluaW5nIHRoZSBzbXRwIGNvbmZpZ3VyYXRpb24KICAjIGZvciBHcmFmYW5hIGluIGtleXMgYHVzZXJgIGFuZCBgcGFzc3dvcmRgLgogIGV4aXN0aW5nU2VjcmV0OiAiIgoKIyMgU2lkZWNhcnMgdGhhdCBjb2xsZWN0IHRoZSBjb25maWdtYXBzIHdpdGggc3BlY2lmaWVkIGxhYmVsIGFuZCBzdG9yZXMgdGhlIGluY2x1ZGVkIGZpbGVzIHRoZW0gaW50byB0aGUgcmVzcGVjdGl2ZSBmb2xkZXJzCiMjIFJlcXVpcmVzIGF0IGxlYXN0IEdyYWZhbmEgNSB0byB3b3JrIGFuZCBjYW4ndCBiZSB1c2VkIHRvZ2V0aGVyIHdpdGggcGFyYW1ldGVycyBkYXNoYm9hcmRQcm92aWRlcnMsIGRhdGFzb3VyY2VzIGFuZCBkYXNoYm9hcmRzCnNpZGVjYXI6CiAgaW1hZ2U6IGtpd2lncmlkL2s4cy1zaWRlY2FyOjAuMC42CiAgaW1hZ2VQdWxsUG9saWN5OiBJZk5vdFByZXNlbnQKICByZXNvdXJjZXM6CiMgICBsaW1pdHM6CiMgICAgIGNwdTogMTAwbQojICAgICBtZW1vcnk6IDEwME1pCiMgICByZXF1ZXN0czoKIyAgICAgY3B1OiA1MG0KIyAgICAgbWVtb3J5OiA1ME1pCiAgZGFzaGJvYXJkczoKICAgIGVuYWJsZWQ6IGZhbHNlCiAgICAjIGxhYmVsIHRoYXQgdGhlIGNvbmZpZ21hcHMgd2l0aCBkYXNoYm9hcmRzIGFyZSBtYXJrZWQgd2l0aAogICAgbGFiZWw6IGdyYWZhbmFfZGFzaGJvYXJkCiAgICAjIGZvbGRlciBpbiB0aGUgcG9kIHRoYXQgc2hvdWxkIGhvbGQgdGhlIGNvbGxlY3RlZCBkYXNoYm9hcmRzCiAgICBmb2xkZXI6IC90bXAvZGFzaGJvYXJkcwogICAgIyBJZiBzcGVjaWZpZWQsIHRoZSBzaWRlY2FyIHdpbGwgc2VhcmNoIGZvciBkYXNoYm9hcmQgY29uZmlnLW1hcHMgaW5zaWRlIHRoaXMgbmFtZXNwYWNlLgogICAgIyBPdGhlcndpc2UgdGhlIG5hbWVzcGFjZSBpbiB3aGljaCB0aGUgc2lkZWNhciBpcyBydW5uaW5nIHdpbGwgYmUgdXNlZC4KICAgICMgSXQncyBhbHNvIHBvc3NpYmxlIHRvIHNwZWNpZnkgQUxMIHRvIHNlYXJjaCBpbiBhbGwgbmFtZXNwYWNlcwogICAgc2VhcmNoTmFtZXNwYWNlOiBudWxsCiAgZGF0YXNvdXJjZXM6CiAgICBlbmFibGVkOiBmYWxzZQogICAgIyBsYWJlbCB0aGF0IHRoZSBjb25maWdtYXBzIHdpdGggZGF0YXNvdXJjZXMgYXJlIG1hcmtlZCB3aXRoCiAgICBsYWJlbDogZ3JhZmFuYV9kYXRhc291cmNlCiAgICAjIElmIHNwZWNpZmllZCwgdGhlIHNpZGVjYXIgd2lsbCBzZWFyY2ggZm9yIGRhdGFzb3VyY2UgY29uZmlnLW1hcHMgaW5zaWRlIHRoaXMgbmFtZXNwYWNlLgogICAgIyBPdGhlcndpc2UgdGhlIG5hbWVzcGFjZSBpbiB3aGljaCB0aGUgc2lkZWNhciBpcyBydW5uaW5nIHdpbGwgYmUgdXNlZC4KICAgICMgSXQncyBhbHNvIHBvc3NpYmxlIHRvIHNwZWNpZnkgQUxMIHRvIHNlYXJjaCBpbiBhbGwgbmFtZXNwYWNlcwogICAgc2VhcmNoTmFtZXNwYWNlOiBudWxsCg=="
   100          }
   101        ]
   102      },
   103      "contentSHA": "091919437262ee08b6d7afa80dc43e55c59acf7c2995118bfaaa9dfbc7facf7f"
   104    }
   105  }