Skip to content

Conversation

@crazy-max
Copy link
Member

@crazy-max crazy-max commented Oct 28, 2025

This adds a Sigstore class to sign BuildKit provenance blobs and be able to verify each provenance subject with this signature using Cosign. It supports uploading to transparency log or not. Mainly for private repositories or if user opts in for it.

Tested in https://github.com/docker/actions-toolkit/actions/runs/18942704165/job/54085464143

Bundle with rekor looks like this:

{
  "mediaType":"application/vnd.dev.sigstore.bundle.v0.3+json",
  "verificationMaterial":{
    "certificate":{
      "rawBytes":"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"
    },
    "tlogEntries":[
      {
        "logIndex":"654932898",
        "logId":{
          "keyId":"wNI9atQGlz+VWfO6LRygH4QUfY/8W4RFwiT5i5WRgB0="
        },
        "kindVersion":{
          "kind":"dsse",
          "version":"0.0.1"
        },
        "integratedTime":"1761831916",
        "inclusionPromise":{
          "signedEntryTimestamp":"MEQCIH+Wm4NxjOsOsR8fG8WRr2MgXfBQOLYHIULiWipMgDX1AiAp3+HfU1K6JN18g3ApMMKb3+eAjgD3sjiGVAL6JGPr9Q=="
        },
        "inclusionProof":{
          "logIndex":"533028636",
          "rootHash":"Xqe2AFl1D/MAElNUl0uAmq/d9zEcGCsMVHlv+kWTjNI=",
          "treeSize":"533028643",
          "hashes":[
            "Eto/UElYM0pFjtMh4cTTy4Ooyz+/ASqj6zOGhSPCf24=",
            "x6I+R28HuT2Rgb4jhv/zoMMpLfXiAAiBZJQ99tAv52I=",
            "NcwV5VeBXPLkMZ+OG7sctpUPIiVjPpcmkZDxhNV3BzU=",
            "HOQmO6NOzJwMqx3nGyK5lZKLEdjZMZ8LPp1+hQ8t2ys=",
            "Gmb+YTGI+JMiyzOhvSjo0zhTCaDn3SLbg4ckmhCZT00=",
            "8t/Cc6TYqFutMhh6vuuye3hVW69PiJsR8UWjiUREGio=",
            "jzslDwVaFeIFFDA8v4b90rcdd67cJZF3rei0wMDRgvA=",
            "h0PC/L+bJheRj+7lbe6FZIRk6qSOjY89RCzk68UfIxo=",
            "n63yVvosS/eeh7AS0KvjteYRw4Uchl1/huGEpFBZ6XE=",
            "DvuaM248kJHre6DeK8C1xEHitYpnNfsbyEOTCeo0Ank=",
            "UUaZpRXqHr4AJW4zmeFB/gfxkTBu8sr4ppK4zPG1Xr8=",
            "0H3S/uULaI8QBbe9mC2CJAshUKjf7nQKbG9xjniTqI0=",
            "QIhICE3/Pk/JM+yc6YDYHyW50RqtqS8vNHRXMuhfvfU=",
            "kgvEJpIutBAoiKUq/YymF38h3i1di6Lk66Y+btaf+qI=",
            "rImjSAJ6dww7qxq1BcJQ3ytVA+H0ptXB+UQbIlojNXo=",
            "/ZlzrGPS0eq2rjgtegMbCBBRoQ9PIxVWEx+ZymODyyw=",
            "oUpQPKjwnG3jhQtgDGLtyjyTJmrqoENa8C6gx+qWIls=",
            "HAOTg+Fg3H1Ej24mw+P9lXfi+4mPL5EKwAd4aNQOV6M=",
            "2Wv4GiithwNukRKV06clevnQQYCzXmSS/+/OJtXgsXQ=",
            "1mfy94KpcItqshH9+gwqV6jccupcaMpVsF28New8zDY=",
            "vS7O4ozHIQZJWBiov+mkpI27GE8zAmVCEkRcP3NDyNE="
          ],
          "checkpoint":{
            "envelope":"rekor.sigstore.dev - 1193050959916656506\n533028643\nXqe2AFl1D/MAElNUl0uAmq/d9zEcGCsMVHlv+kWTjNI=\n\n— rekor.sigstore.dev wNI9ajBFAiEAg/xQd2FsJ/v5zlDSean7gyTGJOgN/VFCpXA/jVQC1lUCIBNkuG6B20FpDbqmLdHcVmHEighIUBwhxAzlxdtfrnbW\n"
          }
        },
        "canonicalizedBody":"eyJhcGlWZXJzaW9uIjoiMC4wLjEiLCJraW5kIjoiZHNzZSIsInNwZWMiOnsiZW52ZWxvcGVIYXNoIjp7ImFsZ29yaXRobSI6InNoYTI1NiIsInZhbHVlIjoiNzg5ZmNiODdmZDEyNDBhYjlhZTJjZjlhMmI4YzVkNzE4ZDIwNTQ3N2MyNzYyODEyNmZhMTAzZWJiMWRhYjMzMCJ9LCJwYXlsb2FkSGFzaCI6eyJhbGdvcml0aG0iOiJzaGEyNTYiLCJ2YWx1ZSI6ImNjZGQ5NmRjNWM2ZWQ3NTA1MDZkNjExYmU3MTQyMmQwNGY2N2YyNzM2M2NjMzZmOWJmNGQ0NTAzMzdkMjIyZTIifSwic2lnbmF0dXJlcyI6W3sic2lnbmF0dXJlIjoiTUVZQ0lRQ3h1dVNuRHNqM0oyUC9CVFhGVmRONTd0WkxWUHF6WmRRRGJrVlNEU21lVUFJaEFPZWc5UkYra1JOTTllRm1NbzB5Sk5ZS1ZJT1dPL0xFWEtLWi9kSmcvS05QIiwidmVyaWZpZXIiOiJMUzB0TFMxQ1JVZEpUaUJEUlZKVVNVWkpRMEZVUlMwdExTMHRDazFKU1VjdlJFTkRRbTlIWjBGM1NVSkJaMGxWVTBsR01ITkVjWFkwUWxCbWRHcExXRzF6UVZaUGVrd3pkalZKZDBObldVbExiMXBKZW1vd1JVRjNUWGNLVG5wRlZrMUNUVWRCTVZWRlEyaE5UV015Ykc1ak0xSjJZMjFWZFZwSFZqSk5ValIzU0VGWlJGWlJVVVJGZUZaNllWZGtlbVJIT1hsYVV6RndZbTVTYkFwamJURnNXa2RzYUdSSFZYZElhR05PVFdwVmVFMUVUWGROVkUwd1RsUkZNbGRvWTA1TmFsVjRUVVJOZDAxVVRURk9WRVV5VjJwQlFVMUdhM2RGZDFsSUNrdHZXa2w2YWpCRFFWRlpTVXR2V2tsNmFqQkVRVkZqUkZGblFVVXhSMll6ZGtwclEybFpkaloxV1ROM2RHVjFkWGd3V1doaGRISllOV0V2Y0ZObldtVUthMEp5YTFSTU4yUkhRM0p6ZUc5bVRISjNMMjQyTURseWRuVjViblZQVkUxeGF6YzVLM2hZYnk5R1pYRlVZM2xHYTNGUFEwSmhRWGRuWjFkalRVRTBSd3BCTVZWa1JIZEZRaTkzVVVWQmQwbElaMFJCVkVKblRsWklVMVZGUkVSQlMwSm5aM0pDWjBWR1FsRmpSRUY2UVdSQ1owNVdTRkUwUlVablVWVmtZakZzQ205ME5FZElhSEpDY0VvMEswOTJiMDlIVTFnelJ6VnZkMGgzV1VSV1VqQnFRa0puZDBadlFWVXpPVkJ3ZWpGWmEwVmFZalZ4VG1wd1MwWlhhWGhwTkZrS1drUTRkMkYzV1VSV1VqQlNRVkZJTDBKSFJYZFlORnBrWVVoU01HTklUVFpNZVRsdVlWaFNiMlJYU1hWWk1qbDBUREpTZGxreWRHeGphVGxvV1ROU2NBcGlNalY2VEZoU2RtSXllSEpoV0ZGMlRHMWtjR1JIYURGWmFUa3pZak5LY2xwdGVIWmtNMDEyWkVkV2VtUkROVFZpVjNoQlkyMVdiV041T1c5YVYwWnJDbU41T1hwaFYyUjFZVmMxYmt4WFNuTmlNa3A2VFVSclIwTnBjMGRCVVZGQ1p6YzRkMEZSUlVWTE1tZ3daRWhDZWs5cE9IWmtSemx5V2xjMGRWbFhUakFLWVZjNWRXTjVOVzVoV0ZKdlpGZEtNV015Vm5sWk1qbDFaRWRXZFdSRE5XcGlNakIzU0hkWlMwdDNXVUpDUVVkRWRucEJRa0ZuVVZKa01qbDVZVEphY3dwaU0yUm1Xa2RzZW1OSFJqQlpNbWQzVG1kWlMwdDNXVUpDUVVkRWRucEJRa0YzVVc5YVJHTXpXWHBPYWsxcVp6UmFhbXQ0V2tSc2FrMUVaelZQVkVWNkNrNVVWbWhOUkdNeFRsZE5ORTlVV1hkTlYwcHFXWHBTYUU1cVFWTkNaMjl5UW1kRlJVRlpUeTlOUVVWRlFrRlNNRnBZVGpCTlExRkhRMmx6UjBGUlVVSUtaemM0ZDBGUlZVVkdiVkoyV1RKMGJHTnBPV2haTTFKd1lqSTFla3hZVW5aaU1uaHlZVmhSZDBwbldVdExkMWxDUWtGSFJIWjZRVUpDWjFGWlkyMVdiUXBqZVRsdldsZEdhMk41T1hwaFYyUjFZVmMxYmt4WFNuTmlNa3A2VFVSelIwTnBjMGRCVVZGQ1p6YzRkMEZSWjBWTVVYZHlZVWhTTUdOSVRUWk1lVGt3Q21JeWRHeGlhVFZvV1ROU2NHSXlOWHBNYldSd1pFZG9NVmx1Vm5wYVdFcHFZakkxTUZwWE5UQk1iVTUyWWxSQ2RFSm5iM0pDWjBWRlFWbFBMMDFCUlVvS1FrWTRUVmhYYURCa1NFSjZUMms0ZGxveWJEQmhTRlpwVEcxT2RtSlRPV3RpTWs1eVdsaEpkbGxYVGpCaFZ6bDFZM2t4TUdJeU9YTmhNbXd3VEhrMWJncGhXRkp2WkZkSmRtUXlPWGxoTWxwellqTmtla3d6VW14ak0xRjFaVmN4YzFGSVNteGFiazEyWVVkV2FGcElUWFpqTW14dVltMXNkVnA1TVdsaVJ6bHBDbU42UVRSQ1oyOXlRbWRGUlVGWlR5OU5RVVZMUWtOdlRVdEhVVE5PTWsxNldYcEpORTlIV1RWTlYxRTFXWHBCTkU5VWEzaE5lbFV4V1ZSQk0wNVVWbW9LVDBSck1rMUVSbWxaTWswd1dWUlpkMGhSV1V0TGQxbENRa0ZIUkhaNlFVSkRkMUZRUkVFeGJtRllVbTlrVjBsMFlVYzVlbVJIVm10TlJHdEhRMmx6UndwQlVWRkNaemM0ZDBGUmQwVkxkM2R3WVVoU01HTklUVFpNZVRsdVlWaFNiMlJYU1hWWk1qbDBUREpTZGxreWRHeGphVGxvV1ROU2NHSXlOWHBNV0ZKMkNtSXllSEpoV0ZGM1QwRlpTMHQzV1VKQ1FVZEVkbnBCUWtSUlVYRkVRMmhyVG5wa2FrMHlUWGxQUkdodFQxUkdhMDlYVFhkUFJHczFUVlJOTVU1WFJYY0tUbnBWTVZsNlp6Vk9ha0Y0V1cxT2FrNUhSVEpOUTJkSFEybHpSMEZSVVVKbk56aDNRVkUwUlVkbmQxbGpiVlp0WTNrNWIxcFhSbXRqZVRsNllWZGtkUXBoVnpWdVRGZEtjMkl5U25wTlFtdEhRMmx6UjBGUlVVSm5OemgzUVZFNFJVTjNkMHBPVkdjMVRXcFpORTlFVlhsTlEydEhRMmx6UjBGUlVVSm5OemgzQ2tGU1FVVkhkM2RhWVVoU01HTklUVFpNZVRsdVlWaFNiMlJYU1hWWk1qbDBUREpTZGxreWRHeGpha0ZZUW1kdmNrSm5SVVZCV1U4dlRVRkZVa0pCYTAwS1FucFZNRTFxYXpCT2VrRjNZbEZaUzB0M1dVSkNRVWRFZG5wQlFrVm5VbVpFUmpGdlpFaFNkMk42YjNaTU1tUndaRWRvTVZscE5XcGlNakIyV2tjNWFncGhNbFo1VERKR2FtUkhiSFppYmsxMFpFYzVkbUpIZEhCa1F6aDFXakpzTUdGSVZtbE1NMlIyWTIxMGJXSkhPVE5qZVRrd1dsaE9NRXh1YkhSaVJVSjVDbHBYV25wTU1taHNXVmRTZWt3elRuQmFNalZ3WW0xamRGbHRlSFpaYmsxM1QwRlpTMHQzV1VKQ1FVZEVkbnBCUWtWM1VYRkVRMmhyVG5wa2FrMHlUWGtLVDBSb2JVOVVSbXRQVjAxM1QwUnJOVTFVVFRGT1YwVjNUbnBWTVZsNlp6Vk9ha0Y0V1cxT2FrNUhSVEpOUTBWSFEybHpSMEZSVVVKbk56aDNRVkpSUlFwRmQzZFNaREk1ZVdFeVduTmlNMlJtV2tkc2VtTkhSakJaTW1kM1dGRlpTMHQzV1VKQ1FVZEVkbnBCUWtaUlVsQkVSVEZ2WkVoU2QyTjZiM1pNTW1Sd0NtUkhhREZaYVRWcVlqSXdkbHBIT1dwaE1sWjVUREpHYW1SSGJIWmliazEwWkVjNWRtSkhkSEJrUXpsb1dUTlNjR0l5TlhwTU0wb3hZbTVOZGsxVVp6VUtUa1JKTTAxRVVYaE9hbFYyV1ZoU01GcFhNWGRrU0UxMlRWUkJWMEpuYjNKQ1owVkZRVmxQTDAxQlJWZENRV2ROUW01Q01WbHRlSEJaZWtOQ2FYZFpTd3BMZDFsQ1FrRklWMlZSU1VWQloxSTVRa2h6UVdWUlFqTkJUakE1VFVkeVIzaDRSWGxaZUd0bFNFcHNiazUzUzJsVGJEWTBNMnA1ZEM4MFpVdGpiMEYyQ2t0bE5rOUJRVUZDYldwV1pHc3ZkMEZCUVZGRVFVVm5kMUpuU1doQlVFUlVTa3RIU25KUVRtSlFkak5QU25OTldUSXdLekpOYUVadFVXcHVkWFJwTDNFS2VURnpTbnA2VWtwQmFVVkJNM1pGWTNGbU1Fb3ZOVlkyTnpVMmJIQnhha2t6ZVVGNVRGbFpiSEphY2xwamExbzFNRE5qTWxKb1VYZERaMWxKUzI5YVNRcDZhakJGUVhkTlJHRlJRWGRhWjBsNFFVOVBXa1JRY214MmJXbEVkelJUVG5KU1oyTk1hbE5xWVV4ME1UQTFSWEJLVWs4eVYyb3JPRmhQTTNRd1RVWTVDbFZFZGk5cWVsUkNPSGRZVVRVeWFIbFZkMGw0UVU5WVNGWjNNRzVHUWtaeWFYSlFSRmgwVEhSWlZuSXJVWEZoTVVKSVEzWjVRelZMYjFaM2QzWnpZbkVLY0RKcWNrRkROMjB3VDJWSVZVeENjM0Z3Ym1odFFUMDlDaTB0TFMwdFJVNUVJRU5GVWxSSlJrbERRVlJGTFMwdExTMEsifV19fQ=="
      }
    ],
    "timestampVerificationData":{
      "rfc3161Timestamps":[
        {
          "signedTimestamp":"MIICyjADAgEAMIICwQYJKoZIhvcNAQcCoIICsjCCAq4CAQMxDTALBglghkgBZQMEAgEwgbgGCyqGSIb3DQEJEAEEoIGoBIGlMIGiAgEBBgkrBgEEAYO/MAIwMTANBglghkgBZQMEAgEFAAQgOyWnaL3bgidShwH9RXVa++cb/eB/WzafrkyuRwmlUEQCFQCVDJ5OpfoVE6bO6HyG1WC5LbPIcBgPMjAyNTEwMzAxMzQ1MTZaMAMCAQGgMqQwMC4xFTATBgNVBAoTDHNpZ3N0b3JlLmRldjEVMBMGA1UEAxMMc2lnc3RvcmUtdHNhoAAxggHbMIIB1wIBATBRMDkxFTATBgNVBAoTDHNpZ3N0b3JlLmRldjEgMB4GA1UEAxMXc2lnc3RvcmUtdHNhLXNlbGZzaWduZWQCFDoTVC8MkGHuvMFDL8uKjosqI4sMMAsGCWCGSAFlAwQCAaCB/DAaBgkqhkiG9w0BCQMxDQYLKoZIhvcNAQkQAQQwHAYJKoZIhvcNAQkFMQ8XDTI1MTAzMDEzNDUxNlowLwYJKoZIhvcNAQkEMSIEIIdEoLwGTrHVgf/9LdfGjXnpzm4wy1p3u5HZLj7Oo/ZZMIGOBgsqhkiG9w0BCRACLzF/MH0wezB5BCCF+Se8B6tiysO0Q1bBDvyBssaIP9p6uebYcNnROs0FtzBVMD2kOzA5MRUwEwYDVQQKEwxzaWdzdG9yZS5kZXYxIDAeBgNVBAMTF3NpZ3N0b3JlLXRzYS1zZWxmc2lnbmVkAhQ6E1QvDJBh7rzBQy/Lio6LKiOLDDAKBggqhkjOPQQDAgRnMGUCMHyaKDR6RvlETZe+d6wTcOzmsAMnPK2kQaZj0KMe5Ps26tionFWgBJRGHegZzu8VkwIxANI94n7j6FY2gxY8nDVD8rtO8oIHIK8h2mfTUUMiILyUa0lsS/Ze08IdcIhSPhX98A=="
        }
      ]
    }
  },
  "dsseEnvelope":{
    "payload":"ewogICJfdHlwZSI6ICJodHRwczovL2luLXRvdG8uaW8vU3RhdGVtZW50L3YwLjEiLAogICJwcmVkaWNhdGVUeXBlIjogImh0dHBzOi8vc2xzYS5kZXYvcHJvdmVuYW5jZS92MSIsCiAgInN1YmplY3QiOiBbCiAgICB7CiAgICAgICJuYW1lIjogImhlbGxvLnR4dCIsCiAgICAgICJkaWdlc3QiOiB7CiAgICAgICAgInNoYTI1NiI6ICIxYjM3OTI5ZTY2NjQ0YmViNThiM2QyOGQ0NGZiYTBkODJhYTkwY2FiMDNjNTVhNDkyYWRiODFmZTZlODMzZWM4IgogICAgICB9CiAgICB9CiAgXSwKICAicHJlZGljYXRlIjogewogICAgImJ1aWxkRGVmaW5pdGlvbiI6IHsKICAgICAgImJ1aWxkVHlwZSI6ICJodHRwczovL2dpdGh1Yi5jb20vbW9ieS9idWlsZGtpdC9ibG9iL21hc3Rlci9kb2NzL2F0dGVzdGF0aW9ucy9zbHNhLWRlZmluaXRpb25zLm1kIiwKICAgICAgInJlc29sdmVkRGVwZW5kZW5jaWVzIjogWwogICAgICAgIHsKICAgICAgICAgICJ1cmkiOiAicGtnOmRvY2tlci9kb2NrZXIvYnVpbGRraXQtc3lmdC1zY2FubmVyQHN0YWJsZS0xIiwKICAgICAgICAgICJkaWdlc3QiOiB7CiAgICAgICAgICAgICJzaGEyNTYiOiAiZTkzMGMyNjk3YmU3N2NiNzI3MWQzMTZlY2ZhNzg3NjhiNWVhYzczZGUzYjE2MDE4ZWQzOGViMGVhMGI1YTdjYiIKICAgICAgICAgIH0KICAgICAgICB9LAogICAgICAgIHsKICAgICAgICAgICJ1cmkiOiAicGtnOmRvY2tlci9hbHBpbmVAbGF0ZXN0P3BsYXRmb3JtPWxpbnV4JTJGYW1kNjQiLAogICAgICAgICAgImRpZ2VzdCI6IHsKICAgICAgICAgICAgInNoYTI1NiI6ICI0YjdjZTA3MDAyYzY5ZThmM2Q3MDRhOWM1ZDZmZDMwNTNiZTUwMGI3ZjFjNjlmYzBkODA5OTBjMmFkOGRkNDEyIgogICAgICAgICAgfQogICAgICAgIH0sCiAgICAgICAgewogICAgICAgICAgInVyaSI6ICJodHRwczovL2dpdGh1Yi5jb20vZG9ja2VyL2dpdGh1Yi1idWlsZGVyLXRlc3QuZ2l0I2JkYjk2ZmNmZThjYzllM2E1NDgwMGJjMjUzN2E0ZDRhMTRmMGM1ZmUiLAogICAgICAgICAgImRpZ2VzdCI6IHsKICAgICAgICAgICAgInNoYTEiOiAiYmRiOTZmY2ZlOGNjOWUzYTU0ODAwYmMyNTM3YTRkNGExNGYwYzVmZSIKICAgICAgICAgIH0KICAgICAgICB9CiAgICAgIF0sCiAgICAgICJleHRlcm5hbFBhcmFtZXRlcnMiOiB7CiAgICAgICAgImNvbmZpZ1NvdXJjZSI6IHsKICAgICAgICAgICJ1cmkiOiAiaHR0cHM6Ly9naXRodWIuY29tL2RvY2tlci9naXRodWItYnVpbGRlci10ZXN0LmdpdCNiZGI5NmZjZmU4Y2M5ZTNhNTQ4MDBiYzI1MzdhNGQ0YTE0ZjBjNWZlIiwKICAgICAgICAgICJkaWdlc3QiOiB7CiAgICAgICAgICAgICJzaGExIjogImJkYjk2ZmNmZThjYzllM2E1NDgwMGJjMjUzN2E0ZDRhMTRmMGM1ZmUiCiAgICAgICAgICB9LAogICAgICAgICAgInBhdGgiOiAiaGVsbG8uRG9ja2VyZmlsZSIKICAgICAgICB9LAogICAgICAgICJyZXF1ZXN0IjogewogICAgICAgICAgImZyb250ZW5kIjogImRvY2tlcmZpbGUudjAiLAogICAgICAgICAgInNlY3JldHMiOiBbCiAgICAgICAgICAgIHsKICAgICAgICAgICAgICAiaWQiOiAiR0lUX0FVVEhfSEVBREVSIiwKICAgICAgICAgICAgICAib3B0aW9uYWwiOiB0cnVlCiAgICAgICAgICAgIH0sCiAgICAgICAgICAgIHsKICAgICAgICAgICAgICAiaWQiOiAiR0lUX0FVVEhfVE9LRU4iLAogICAgICAgICAgICAgICJvcHRpb25hbCI6IHRydWUKICAgICAgICAgICAgfQogICAgICAgICAgXQogICAgICAgIH0KICAgICAgfSwKICAgICAgImludGVybmFsUGFyYW1ldGVycyI6IHsKICAgICAgICAiYnVpbGRDb25maWciOiB7CiAgICAgICAgICAiZGlnZXN0TWFwcGluZyI6IHsKICAgICAgICAgICAgInNoYTI1NjoyM2RjYmMzY2NlNzAxYThhOWJiYjFlMzNmMmVhODgzMDQ1MjdhNGE5MzVjODljNDU2NGFmNjk4MDk1NDYzYWMyIjogInN0ZXAzIiwKICAgICAgICAgICAgInNoYTI1NjozMTkyYzFiZDUzZjkwY2NhOTU5ZGI3NzhkY2VlMzBlZGM5YTc5ZjhjZDNmOWEyYzU0YWRjNDYwNjUwN2ZkM2I2IjogInN0ZXAwIiwKICAgICAgICAgICAgInNoYTI1Njo3ZjFjOWU5NTk5ODBlYTNlMmNmNGFmOGVmOTdiNmMzNzk3YTA5MjY3NTJiNDM2YmZmMTE0NzRlNDM2ZGVmZTdmIjogInN0ZXAxIiwKICAgICAgICAgICAgInNoYTI1NjpjODczNzMzMWZiOGU1ZjViY2I2YjIyMzIwMDEyZDk3NTA1NzUxNDk4MmM3ODhlNjNkYjEzMzMyYTQyMTliOTg0IjogInN0ZXAyIgogICAgICAgICAgfSwKICAgICAgICAgICJsbGJEZWZpbml0aW9uIjogWwogICAgICAgICAgICB7CiAgICAgICAgICAgICAgImlkIjogInN0ZXAwIiwKICAgICAgICAgICAgICAib3AiOiB7CiAgICAgICAgICAgICAgICAiT3AiOiB7CiAgICAgICAgICAgICAgICAgICJzb3VyY2UiOiB7CiAgICAgICAgICAgICAgICAgICAgImlkZW50aWZpZXIiOiAiZG9ja2VyLWltYWdlOi8vZG9ja2VyLmlvL2xpYnJhcnkvYWxwaW5lOmxhdGVzdEBzaGEyNTY6NGI3Y2UwNzAwMmM2OWU4ZjNkNzA0YTljNWQ2ZmQzMDUzYmU1MDBiN2YxYzY5ZmMwZDgwOTkwYzJhZDhkZDQxMiIKICAgICAgICAgICAgICAgICAgfQogICAgICAgICAgICAgICAgfSwKICAgICAgICAgICAgICAgICJjb25zdHJhaW50cyI6IHt9LAogICAgICAgICAgICAgICAgInBsYXRmb3JtIjogewogICAgICAgICAgICAgICAgICAiQXJjaGl0ZWN0dXJlIjogImFtZDY0IiwKICAgICAgICAgICAgICAgICAgIk9TIjogImxpbnV4IgogICAgICAgICAgICAgICAgfQogICAgICAgICAgICAgIH0KICAgICAgICAgICAgfSwKICAgICAgICAgICAgewogICAgICAgICAgICAgICJpZCI6ICJzdGVwMSIsCiAgICAgICAgICAgICAgImlucHV0cyI6IFsKICAgICAgICAgICAgICAgICJzdGVwMDowIgogICAgICAgICAgICAgIF0sCiAgICAgICAgICAgICAgIm9wIjogewogICAgICAgICAgICAgICAgIk9wIjogewogICAgICAgICAgICAgICAgICAiZXhlYyI6IHsKICAgICAgICAgICAgICAgICAgICAibWV0YSI6IHsKICAgICAgICAgICAgICAgICAgICAgICJhcmdzIjogWwogICAgICAgICAgICAgICAgICAgICAgICAiL2Jpbi9zaCIsCiAgICAgICAgICAgICAgICAgICAgICAgICItYyIsCiAgICAgICAgICAgICAgICAgICAgICAgICJlY2hvIFwiSGVsbG8sIFdvcmxkISBUaGlzIGlzICR7VEFSR0VUUExBVEZPUk19XCIgXHUwMDNlIC9oZWxsby50eHQiCiAgICAgICAgICAgICAgICAgICAgICBdLAogICAgICAgICAgICAgICAgICAgICAgImN3ZCI6ICIvIiwKICAgICAgICAgICAgICAgICAgICAgICJlbnYiOiBbCiAgICAgICAgICAgICAgICAgICAgICAgICJQQVRIPS91c3IvbG9jYWwvc2JpbjovdXNyL2xvY2FsL2JpbjovdXNyL3NiaW46L3Vzci9iaW46L3NiaW46L2JpbiIsCiAgICAgICAgICAgICAgICAgICAgICAgICJUQVJHRVRQTEFURk9STT1saW51eC9hbWQ2NCIKICAgICAgICAgICAgICAgICAgICAgIF0sCiAgICAgICAgICAgICAgICAgICAgICAicmVtb3ZlTW91bnRTdHVic1JlY3Vyc2l2ZSI6IHRydWUKICAgICAgICAgICAgICAgICAgICB9LAogICAgICAgICAgICAgICAgICAgICJtb3VudHMiOiBbCiAgICAgICAgICAgICAgICAgICAgICB7CiAgICAgICAgICAgICAgICAgICAgICAgICJkZXN0IjogIi8iCiAgICAgICAgICAgICAgICAgICAgICB9CiAgICAgICAgICAgICAgICAgICAgXQogICAgICAgICAgICAgICAgICB9CiAgICAgICAgICAgICAgICB9LAogICAgICAgICAgICAgICAgImNvbnN0cmFpbnRzIjoge30sCiAgICAgICAgICAgICAgICAicGxhdGZvcm0iOiB7CiAgICAgICAgICAgICAgICAgICJBcmNoaXRlY3R1cmUiOiAiYW1kNjQiLAogICAgICAgICAgICAgICAgICAiT1MiOiAibGludXgiCiAgICAgICAgICAgICAgICB9CiAgICAgICAgICAgICAgfQogICAgICAgICAgICB9LAogICAgICAgICAgICB7CiAgICAgICAgICAgICAgImlkIjogInN0ZXAyIiwKICAgICAgICAgICAgICAiaW5wdXRzIjogWwogICAgICAgICAgICAgICAgInN0ZXAxOjAiCiAgICAgICAgICAgICAgXSwKICAgICAgICAgICAgICAib3AiOiB7CiAgICAgICAgICAgICAgICAiT3AiOiB7CiAgICAgICAgICAgICAgICAgICJmaWxlIjogewogICAgICAgICAgICAgICAgICAgICJhY3Rpb25zIjogWwogICAgICAgICAgICAgICAgICAgICAgewogICAgICAgICAgICAgICAgICAgICAgICAiQWN0aW9uIjogewogICAgICAgICAgICAgICAgICAgICAgICAgICJjb3B5IjogewogICAgICAgICAgICAgICAgICAgICAgICAgICAgImFsbG93RW1wdHlXaWxkY2FyZCI6IHRydWUsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAiYWxsb3dXaWxkY2FyZCI6IHRydWUsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAiY3JlYXRlRGVzdFBhdGgiOiB0cnVlLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgImRlc3QiOiAiLyIsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAiZGlyQ29weUNvbnRlbnRzIjogdHJ1ZSwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICJmb2xsb3dTeW1saW5rIjogdHJ1ZSwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICJtb2RlIjogLTEsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAic3JjIjogIi9oZWxsby50eHQiLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgInRpbWVzdGFtcCI6IC0xCiAgICAgICAgICAgICAgICAgICAgICAgICAgfQogICAgICAgICAgICAgICAgICAgICAgICB9LAogICAgICAgICAgICAgICAgICAgICAgICAiaW5wdXQiOiAtMSwKICAgICAgICAgICAgICAgICAgICAgICAgIm91dHB1dCI6IDAsCiAgICAgICAgICAgICAgICAgICAgICAgICJzZWNvbmRhcnlJbnB1dCI6IDAKICAgICAgICAgICAgICAgICAgICAgIH0KICAgICAgICAgICAgICAgICAgICBdCiAgICAgICAgICAgICAgICAgIH0KICAgICAgICAgICAgICAgIH0sCiAgICAgICAgICAgICAgICAiY29uc3RyYWludHMiOiB7fQogICAgICAgICAgICAgIH0KICAgICAgICAgICAgfSwKICAgICAgICAgICAgewogICAgICAgICAgICAgICJpZCI6ICJzdGVwMyIsCiAgICAgICAgICAgICAgImlucHV0cyI6IFsKICAgICAgICAgICAgICAgICJzdGVwMjowIgogICAgICAgICAgICAgIF0sCiAgICAgICAgICAgICAgIm9wIjogewogICAgICAgICAgICAgICAgIk9wIjoge30KICAgICAgICAgICAgICB9CiAgICAgICAgICAgIH0KICAgICAgICAgIF0KICAgICAgICB9LAogICAgICAgICJidWlsZGVyUGxhdGZvcm0iOiAibGludXgvYW1kNjQiLAogICAgICAgICJnaXRodWJfYWN0b3IiOiAiY3JhenktbWF4IiwKICAgICAgICAiZ2l0aHViX2FjdG9yX2lkIjogIjE5NTE4NjYiLAogICAgICAgICJnaXRodWJfZXZlbnRfbmFtZSI6ICJ3b3JrZmxvd19kaXNwYXRjaCIsCiAgICAgICAgImdpdGh1Yl9ldmVudF9wYXlsb2FkIjogewogICAgICAgICAgImVudGVycHJpc2UiOiB7CiAgICAgICAgICAgICJhdmF0YXJfdXJsIjogImh0dHBzOi8vYXZhdGFycy5naXRodWJ1c2VyY29udGVudC5jb20vYi8xOTE3Nj92PTQiLAogICAgICAgICAgICAiY3JlYXRlZF9hdCI6ICIyMDIyLTEyLTMwVDIzOjUzOjE3WiIsCiAgICAgICAgICAgICJkZXNjcmlwdGlvbiI6IG51bGwsCiAgICAgICAgICAgICJodG1sX3VybCI6ICJodHRwczovL2dpdGh1Yi5jb20vZW50ZXJwcmlzZXMvZG9ja2VyIiwKICAgICAgICAgICAgImlkIjogMTkxNzYsCiAgICAgICAgICAgICJuYW1lIjogIkRvY2tlciIsCiAgICAgICAgICAgICJub2RlX2lkIjogIkVfa2dETlN1ZyIsCiAgICAgICAgICAgICJzbHVnIjogImRvY2tlciIsCiAgICAgICAgICAgICJ1cGRhdGVkX2F0IjogIjIwMjUtMTAtMjBUMjA6Mzk6MDVaIiwKICAgICAgICAgICAgIndlYnNpdGVfdXJsIjogbnVsbAogICAgICAgICAgfSwKICAgICAgICAgICJpbnB1dHMiOiBudWxsLAogICAgICAgICAgIm9yZ2FuaXphdGlvbiI6IHsKICAgICAgICAgICAgImF2YXRhcl91cmwiOiAiaHR0cHM6Ly9hdmF0YXJzLmdpdGh1YnVzZXJjb250ZW50LmNvbS91LzU0Mjk0NzA/dj00IiwKICAgICAgICAgICAgImRlc2NyaXB0aW9uIjogIkRvY2tlciBoZWxwcyBkZXZlbG9wZXJzIGJyaW5nIHRoZWlyIGlkZWFzIHRvIGxpZmUgYnkgY29ucXVlcmluZyB0aGUgY29tcGxleGl0eSBvZiBhcHAgZGV2ZWxvcG1lbnQuIiwKICAgICAgICAgICAgImV2ZW50c191cmwiOiAiaHR0cHM6Ly9hcGkuZ2l0aHViLmNvbS9vcmdzL2RvY2tlci9ldmVudHMiLAogICAgICAgICAgICAiaG9va3NfdXJsIjogImh0dHBzOi8vYXBpLmdpdGh1Yi5jb20vb3Jncy9kb2NrZXIvaG9va3MiLAogICAgICAgICAgICAiaWQiOiA1NDI5NDcwLAogICAgICAgICAgICAiaXNzdWVzX3VybCI6ICJodHRwczovL2FwaS5naXRodWIuY29tL29yZ3MvZG9ja2VyL2lzc3VlcyIsCiAgICAgICAgICAgICJsb2dpbiI6ICJkb2NrZXIiLAogICAgICAgICAgICAibWVtYmVyc191cmwiOiAiaHR0cHM6Ly9hcGkuZ2l0aHViLmNvbS9vcmdzL2RvY2tlci9tZW1iZXJzey9tZW1iZXJ9IiwKICAgICAgICAgICAgIm5vZGVfaWQiOiAiTURFeU9rOXlaMkZ1YVhwaGRHbHZialUwTWprME56QT0iLAogICAgICAgICAgICAicHVibGljX21lbWJlcnNfdXJsIjogImh0dHBzOi8vYXBpLmdpdGh1Yi5jb20vb3Jncy9kb2NrZXIvcHVibGljX21lbWJlcnN7L21lbWJlcn0iLAogICAgICAgICAgICAicmVwb3NfdXJsIjogImh0dHBzOi8vYXBpLmdpdGh1Yi5jb20vb3Jncy9kb2NrZXIvcmVwb3MiLAogICAgICAgICAgICAidXJsIjogImh0dHBzOi8vYXBpLmdpdGh1Yi5jb20vb3Jncy9kb2NrZXIiCiAgICAgICAgICB9LAogICAgICAgICAgInJlZiI6ICJyZWZzL2hlYWRzL21haW4iLAogICAgICAgICAgInJlcG9zaXRvcnkiOiB7CiAgICAgICAgICAgICJhbGxvd19mb3JraW5nIjogdHJ1ZSwKICAgICAgICAgICAgImFyY2hpdmVfdXJsIjogImh0dHBzOi8vYXBpLmdpdGh1Yi5jb20vcmVwb3MvZG9ja2VyL2dpdGh1Yi1idWlsZGVyLXRlc3Qve2FyY2hpdmVfZm9ybWF0fXsvcmVmfSIsCiAgICAgICAgICAgICJhcmNoaXZlZCI6IGZhbHNlLAogICAgICAgICAgICAiYXNzaWduZWVzX3VybCI6ICJodHRwczovL2FwaS5naXRodWIuY29tL3JlcG9zL2RvY2tlci9naXRodWItYnVpbGRlci10ZXN0L2Fzc2lnbmVlc3svdXNlcn0iLAogICAgICAgICAgICAiYmxvYnNfdXJsIjogImh0dHBzOi8vYXBpLmdpdGh1Yi5jb20vcmVwb3MvZG9ja2VyL2dpdGh1Yi1idWlsZGVyLXRlc3QvZ2l0L2Jsb2Jzey9zaGF9IiwKICAgICAgICAgICAgImJyYW5jaGVzX3VybCI6ICJodHRwczovL2FwaS5naXRodWIuY29tL3JlcG9zL2RvY2tlci9naXRodWItYnVpbGRlci10ZXN0L2JyYW5jaGVzey9icmFuY2h9IiwKICAgICAgICAgICAgImNsb25lX3VybCI6ICJodHRwczovL2dpdGh1Yi5jb20vZG9ja2VyL2dpdGh1Yi1idWlsZGVyLXRlc3QuZ2l0IiwKICAgICAgICAgICAgImNvbGxhYm9yYXRvcnNfdXJsIjogImh0dHBzOi8vYXBpLmdpdGh1Yi5jb20vcmVwb3MvZG9ja2VyL2dpdGh1Yi1idWlsZGVyLXRlc3QvY29sbGFib3JhdG9yc3svY29sbGFib3JhdG9yfSIsCiAgICAgICAgICAgICJjb21tZW50c191cmwiOiAiaHR0cHM6Ly9hcGkuZ2l0aHViLmNvbS9yZXBvcy9kb2NrZXIvZ2l0aHViLWJ1aWxkZXItdGVzdC9jb21tZW50c3svbnVtYmVyfSIsCiAgICAgICAgICAgICJjb21taXRzX3VybCI6ICJodHRwczovL2FwaS5naXRodWIuY29tL3JlcG9zL2RvY2tlci9naXRodWItYnVpbGRlci10ZXN0L2NvbW1pdHN7L3NoYX0iLAogICAgICAgICAgICAiY29tcGFyZV91cmwiOiAiaHR0cHM6Ly9hcGkuZ2l0aHViLmNvbS9yZXBvcy9kb2NrZXIvZ2l0aHViLWJ1aWxkZXItdGVzdC9jb21wYXJlL3tiYXNlfS4uLntoZWFkfSIsCiAgICAgICAgICAgICJjb250ZW50c191cmwiOiAiaHR0cHM6Ly9hcGkuZ2l0aHViLmNvbS9yZXBvcy9kb2NrZXIvZ2l0aHViLWJ1aWxkZXItdGVzdC9jb250ZW50cy97K3BhdGh9IiwKICAgICAgICAgICAgImNvbnRyaWJ1dG9yc191cmwiOiAiaHR0cHM6Ly9hcGkuZ2l0aHViLmNvbS9yZXBvcy9kb2NrZXIvZ2l0aHViLWJ1aWxkZXItdGVzdC9jb250cmlidXRvcnMiLAogICAgICAgICAgICAiY3JlYXRlZF9hdCI6ICIyMDI1LTA4LTE5VDA4OjA4OjI5WiIsCiAgICAgICAgICAgICJjdXN0b21fcHJvcGVydGllcyI6IHt9LAogICAgICAgICAgICAiZGVmYXVsdF9icmFuY2giOiAibWFpbiIsCiAgICAgICAgICAgICJkZXBsb3ltZW50c191cmwiOiAiaHR0cHM6Ly9hcGkuZ2l0aHViLmNvbS9yZXBvcy9kb2NrZXIvZ2l0aHViLWJ1aWxkZXItdGVzdC9kZXBsb3ltZW50cyIsCiAgICAgICAgICAgICJkZXNjcmlwdGlvbiI6ICJUZXN0IHJlcG8gZm9yIGh0dHBzOi8vZ2l0aHViLmNvbS9kb2NrZXIvZ2l0aHViLWJ1aWxkZXItZXhwZXJpbWVudGFsIiwKICAgICAgICAgICAgImRpc2FibGVkIjogZmFsc2UsCiAgICAgICAgICAgICJkb3dubG9hZHNfdXJsIjogImh0dHBzOi8vYXBpLmdpdGh1Yi5jb20vcmVwb3MvZG9ja2VyL2dpdGh1Yi1idWlsZGVyLXRlc3QvZG93bmxvYWRzIiwKICAgICAgICAgICAgImV2ZW50c191cmwiOiAiaHR0cHM6Ly9hcGkuZ2l0aHViLmNvbS9yZXBvcy9kb2NrZXIvZ2l0aHViLWJ1aWxkZXItdGVzdC9ldmVudHMiLAogICAgICAgICAgICAiZm9yayI6IGZhbHNlLAogICAgICAgICAgICAiZm9ya3MiOiAwLAogICAgICAgICAgICAiZm9ya3NfY291bnQiOiAwLAogICAgICAgICAgICAiZm9ya3NfdXJsIjogImh0dHBzOi8vYXBpLmdpdGh1Yi5jb20vcmVwb3MvZG9ja2VyL2dpdGh1Yi1idWlsZGVyLXRlc3QvZm9ya3MiLAogICAgICAgICAgICAiZnVsbF9uYW1lIjogImRvY2tlci9naXRodWItYnVpbGRlci10ZXN0IiwKICAgICAgICAgICAgImdpdF9jb21taXRzX3VybCI6ICJodHRwczovL2FwaS5naXRodWIuY29tL3JlcG9zL2RvY2tlci9naXRodWItYnVpbGRlci10ZXN0L2dpdC9jb21taXRzey9zaGF9IiwKICAgICAgICAgICAgImdpdF9yZWZzX3VybCI6ICJodHRwczovL2FwaS5naXRodWIuY29tL3JlcG9zL2RvY2tlci9naXRodWItYnVpbGRlci10ZXN0L2dpdC9yZWZzey9zaGF9IiwKICAgICAgICAgICAgImdpdF90YWdzX3VybCI6ICJodHRwczovL2FwaS5naXRodWIuY29tL3JlcG9zL2RvY2tlci9naXRodWItYnVpbGRlci10ZXN0L2dpdC90YWdzey9zaGF9IiwKICAgICAgICAgICAgImdpdF91cmwiOiAiZ2l0Oi8vZ2l0aHViLmNvbS9kb2NrZXIvZ2l0aHViLWJ1aWxkZXItdGVzdC5naXQiLAogICAgICAgICAgICAiaGFzX2Rpc2N1c3Npb25zIjogZmFsc2UsCiAgICAgICAgICAgICJoYXNfZG93bmxvYWRzIjogdHJ1ZSwKICAgICAgICAgICAgImhhc19pc3N1ZXMiOiBmYWxzZSwKICAgICAgICAgICAgImhhc19wYWdlcyI6IGZhbHNlLAogICAgICAgICAgICAiaGFzX3Byb2plY3RzIjogZmFsc2UsCiAgICAgICAgICAgICJoYXNfd2lraSI6IGZhbHNlLAogICAgICAgICAgICAiaG9tZXBhZ2UiOiBudWxsLAogICAgICAgICAgICAiaG9va3NfdXJsIjogImh0dHBzOi8vYXBpLmdpdGh1Yi5jb20vcmVwb3MvZG9ja2VyL2dpdGh1Yi1idWlsZGVyLXRlc3QvaG9va3MiLAogICAgICAgICAgICAiaHRtbF91cmwiOiAiaHR0cHM6Ly9naXRodWIuY29tL2RvY2tlci9naXRodWItYnVpbGRlci10ZXN0IiwKICAgICAgICAgICAgImlkIjogMTA0MDU5NDI4NywKICAgICAgICAgICAgImlzX3RlbXBsYXRlIjogZmFsc2UsCiAgICAgICAgICAgICJpc3N1ZV9jb21tZW50X3VybCI6ICJodHRwczovL2FwaS5naXRodWIuY29tL3JlcG9zL2RvY2tlci9naXRodWItYnVpbGRlci10ZXN0L2lzc3Vlcy9jb21tZW50c3svbnVtYmVyfSIsCiAgICAgICAgICAgICJpc3N1ZV9ldmVudHNfdXJsIjogImh0dHBzOi8vYXBpLmdpdGh1Yi5jb20vcmVwb3MvZG9ja2VyL2dpdGh1Yi1idWlsZGVyLXRlc3QvaXNzdWVzL2V2ZW50c3svbnVtYmVyfSIsCiAgICAgICAgICAgICJpc3N1ZXNfdXJsIjogImh0dHBzOi8vYXBpLmdpdGh1Yi5jb20vcmVwb3MvZG9ja2VyL2dpdGh1Yi1idWlsZGVyLXRlc3QvaXNzdWVzey9udW1iZXJ9IiwKICAgICAgICAgICAgImtleXNfdXJsIjogImh0dHBzOi8vYXBpLmdpdGh1Yi5jb20vcmVwb3MvZG9ja2VyL2dpdGh1Yi1idWlsZGVyLXRlc3Qva2V5c3sva2V5X2lkfSIsCiAgICAgICAgICAgICJsYWJlbHNfdXJsIjogImh0dHBzOi8vYXBpLmdpdGh1Yi5jb20vcmVwb3MvZG9ja2VyL2dpdGh1Yi1idWlsZGVyLXRlc3QvbGFiZWxzey9uYW1lfSIsCiAgICAgICAgICAgICJsYW5ndWFnZSI6ICJEb2NrZXJmaWxlIiwKICAgICAgICAgICAgImxhbmd1YWdlc191cmwiOiAiaHR0cHM6Ly9hcGkuZ2l0aHViLmNvbS9yZXBvcy9kb2NrZXIvZ2l0aHViLWJ1aWxkZXItdGVzdC9sYW5ndWFnZXMiLAogICAgICAgICAgICAibGljZW5zZSI6IG51bGwsCiAgICAgICAgICAgICJtZXJnZXNfdXJsIjogImh0dHBzOi8vYXBpLmdpdGh1Yi5jb20vcmVwb3MvZG9ja2VyL2dpdGh1Yi1idWlsZGVyLXRlc3QvbWVyZ2VzIiwKICAgICAgICAgICAgIm1pbGVzdG9uZXNfdXJsIjogImh0dHBzOi8vYXBpLmdpdGh1Yi5jb20vcmVwb3MvZG9ja2VyL2dpdGh1Yi1idWlsZGVyLXRlc3QvbWlsZXN0b25lc3svbnVtYmVyfSIsCiAgICAgICAgICAgICJtaXJyb3JfdXJsIjogbnVsbCwKICAgICAgICAgICAgIm5hbWUiOiAiZ2l0aHViLWJ1aWxkZXItdGVzdCIsCiAgICAgICAgICAgICJub2RlX2lkIjogIlJfa2dET1BnWTFidyIsCiAgICAgICAgICAgICJub3RpZmljYXRpb25zX3VybCI6ICJodHRwczovL2FwaS5naXRodWIuY29tL3JlcG9zL2RvY2tlci9naXRodWItYnVpbGRlci10ZXN0L25vdGlmaWNhdGlvbnN7P3NpbmNlLGFsbCxwYXJ0aWNpcGF0aW5nfSIsCiAgICAgICAgICAgICJvcGVuX2lzc3VlcyI6IDAsCiAgICAgICAgICAgICJvcGVuX2lzc3Vlc19jb3VudCI6IDAsCiAgICAgICAgICAgICJvd25lciI6IHsKICAgICAgICAgICAgICAiYXZhdGFyX3VybCI6ICJodHRwczovL2F2YXRhcnMuZ2l0aHVidXNlcmNvbnRlbnQuY29tL3UvNTQyOTQ3MD92PTQiLAogICAgICAgICAgICAgICJldmVudHNfdXJsIjogImh0dHBzOi8vYXBpLmdpdGh1Yi5jb20vdXNlcnMvZG9ja2VyL2V2ZW50c3svcHJpdmFjeX0iLAogICAgICAgICAgICAgICJmb2xsb3dlcnNfdXJsIjogImh0dHBzOi8vYXBpLmdpdGh1Yi5jb20vdXNlcnMvZG9ja2VyL2ZvbGxvd2VycyIsCiAgICAgICAgICAgICAgImZvbGxvd2luZ191cmwiOiAiaHR0cHM6Ly9hcGkuZ2l0aHViLmNvbS91c2Vycy9kb2NrZXIvZm9sbG93aW5ney9vdGhlcl91c2VyfSIsCiAgICAgICAgICAgICAgImdpc3RzX3VybCI6ICJodHRwczovL2FwaS5naXRodWIuY29tL3VzZXJzL2RvY2tlci9naXN0c3svZ2lzdF9pZH0iLAogICAgICAgICAgICAgICJncmF2YXRhcl9pZCI6ICIiLAogICAgICAgICAgICAgICJodG1sX3VybCI6ICJodHRwczovL2dpdGh1Yi5jb20vZG9ja2VyIiwKICAgICAgICAgICAgICAiaWQiOiA1NDI5NDcwLAogICAgICAgICAgICAgICJsb2dpbiI6ICJkb2NrZXIiLAogICAgICAgICAgICAgICJub2RlX2lkIjogIk1ERXlPazl5WjJGdWFYcGhkR2x2YmpVME1qazBOekE9IiwKICAgICAgICAgICAgICAib3JnYW5pemF0aW9uc191cmwiOiAiaHR0cHM6Ly9hcGkuZ2l0aHViLmNvbS91c2Vycy9kb2NrZXIvb3JncyIsCiAgICAgICAgICAgICAgInJlY2VpdmVkX2V2ZW50c191cmwiOiAiaHR0cHM6Ly9hcGkuZ2l0aHViLmNvbS91c2Vycy9kb2NrZXIvcmVjZWl2ZWRfZXZlbnRzIiwKICAgICAgICAgICAgICAicmVwb3NfdXJsIjogImh0dHBzOi8vYXBpLmdpdGh1Yi5jb20vdXNlcnMvZG9ja2VyL3JlcG9zIiwKICAgICAgICAgICAgICAic2l0ZV9hZG1pbiI6IGZhbHNlLAogICAgICAgICAgICAgICJzdGFycmVkX3VybCI6ICJodHRwczovL2FwaS5naXRodWIuY29tL3VzZXJzL2RvY2tlci9zdGFycmVkey9vd25lcn17L3JlcG99IiwKICAgICAgICAgICAgICAic3Vic2NyaXB0aW9uc191cmwiOiAiaHR0cHM6Ly9hcGkuZ2l0aHViLmNvbS91c2Vycy9kb2NrZXIvc3Vic2NyaXB0aW9ucyIsCiAgICAgICAgICAgICAgInR5cGUiOiAiT3JnYW5pemF0aW9uIiwKICAgICAgICAgICAgICAidXJsIjogImh0dHBzOi8vYXBpLmdpdGh1Yi5jb20vdXNlcnMvZG9ja2VyIiwKICAgICAgICAgICAgICAidXNlcl92aWV3X3R5cGUiOiAicHVibGljIgogICAgICAgICAgICB9LAogICAgICAgICAgICAicHJpdmF0ZSI6IHRydWUsCiAgICAgICAgICAgICJwdWxsc191cmwiOiAiaHR0cHM6Ly9hcGkuZ2l0aHViLmNvbS9yZXBvcy9kb2NrZXIvZ2l0aHViLWJ1aWxkZXItdGVzdC9wdWxsc3svbnVtYmVyfSIsCiAgICAgICAgICAgICJwdXNoZWRfYXQiOiAiMjAyNS0xMC0zMFQxMDowNDoxMFoiLAogICAgICAgICAgICAicmVsZWFzZXNfdXJsIjogImh0dHBzOi8vYXBpLmdpdGh1Yi5jb20vcmVwb3MvZG9ja2VyL2dpdGh1Yi1idWlsZGVyLXRlc3QvcmVsZWFzZXN7L2lkfSIsCiAgICAgICAgICAgICJzaXplIjogMjUsCiAgICAgICAgICAgICJzc2hfdXJsIjogImdpdEBnaXRodWIuY29tOmRvY2tlci9naXRodWItYnVpbGRlci10ZXN0LmdpdCIsCiAgICAgICAgICAgICJzdGFyZ2F6ZXJzX2NvdW50IjogMCwKICAgICAgICAgICAgInN0YXJnYXplcnNfdXJsIjogImh0dHBzOi8vYXBpLmdpdGh1Yi5jb20vcmVwb3MvZG9ja2VyL2dpdGh1Yi1idWlsZGVyLXRlc3Qvc3RhcmdhemVycyIsCiAgICAgICAgICAgICJzdGF0dXNlc191cmwiOiAiaHR0cHM6Ly9hcGkuZ2l0aHViLmNvbS9yZXBvcy9kb2NrZXIvZ2l0aHViLWJ1aWxkZXItdGVzdC9zdGF0dXNlcy97c2hhfSIsCiAgICAgICAgICAgICJzdWJzY3JpYmVyc191cmwiOiAiaHR0cHM6Ly9hcGkuZ2l0aHViLmNvbS9yZXBvcy9kb2NrZXIvZ2l0aHViLWJ1aWxkZXItdGVzdC9zdWJzY3JpYmVycyIsCiAgICAgICAgICAgICJzdWJzY3JpcHRpb25fdXJsIjogImh0dHBzOi8vYXBpLmdpdGh1Yi5jb20vcmVwb3MvZG9ja2VyL2dpdGh1Yi1idWlsZGVyLXRlc3Qvc3Vic2NyaXB0aW9uIiwKICAgICAgICAgICAgInN2bl91cmwiOiAiaHR0cHM6Ly9naXRodWIuY29tL2RvY2tlci9naXRodWItYnVpbGRlci10ZXN0IiwKICAgICAgICAgICAgInRhZ3NfdXJsIjogImh0dHBzOi8vYXBpLmdpdGh1Yi5jb20vcmVwb3MvZG9ja2VyL2dpdGh1Yi1idWlsZGVyLXRlc3QvdGFncyIsCiAgICAgICAgICAgICJ0ZWFtc191cmwiOiAiaHR0cHM6Ly9hcGkuZ2l0aHViLmNvbS9yZXBvcy9kb2NrZXIvZ2l0aHViLWJ1aWxkZXItdGVzdC90ZWFtcyIsCiAgICAgICAgICAgICJ0b3BpY3MiOiBbXSwKICAgICAgICAgICAgInRyZWVzX3VybCI6ICJodHRwczovL2FwaS5naXRodWIuY29tL3JlcG9zL2RvY2tlci9naXRodWItYnVpbGRlci10ZXN0L2dpdC90cmVlc3svc2hhfSIsCiAgICAgICAgICAgICJ1cGRhdGVkX2F0IjogIjIwMjUtMTAtMzBUMTA6MDQ6MTRaIiwKICAgICAgICAgICAgInVybCI6ICJodHRwczovL2FwaS5naXRodWIuY29tL3JlcG9zL2RvY2tlci9naXRodWItYnVpbGRlci10ZXN0IiwKICAgICAgICAgICAgInZpc2liaWxpdHkiOiAiaW50ZXJuYWwiLAogICAgICAgICAgICAid2F0Y2hlcnMiOiAwLAogICAgICAgICAgICAid2F0Y2hlcnNfY291bnQiOiAwLAogICAgICAgICAgICAid2ViX2NvbW1pdF9zaWdub2ZmX3JlcXVpcmVkIjogZmFsc2UKICAgICAgICAgIH0sCiAgICAgICAgICAic2VuZGVyIjogewogICAgICAgICAgICAiYXZhdGFyX3VybCI6ICJodHRwczovL2F2YXRhcnMuZ2l0aHVidXNlcmNvbnRlbnQuY29tL3UvMTk1MTg2Nj92PTQiLAogICAgICAgICAgICAiZXZlbnRzX3VybCI6ICJodHRwczovL2FwaS5naXRodWIuY29tL3VzZXJzL2NyYXp5LW1heC9ldmVudHN7L3ByaXZhY3l9IiwKICAgICAgICAgICAgImZvbGxvd2Vyc191cmwiOiAiaHR0cHM6Ly9hcGkuZ2l0aHViLmNvbS91c2Vycy9jcmF6eS1tYXgvZm9sbG93ZXJzIiwKICAgICAgICAgICAgImZvbGxvd2luZ191cmwiOiAiaHR0cHM6Ly9hcGkuZ2l0aHViLmNvbS91c2Vycy9jcmF6eS1tYXgvZm9sbG93aW5ney9vdGhlcl91c2VyfSIsCiAgICAgICAgICAgICJnaXN0c191cmwiOiAiaHR0cHM6Ly9hcGkuZ2l0aHViLmNvbS91c2Vycy9jcmF6eS1tYXgvZ2lzdHN7L2dpc3RfaWR9IiwKICAgICAgICAgICAgImdyYXZhdGFyX2lkIjogIiIsCiAgICAgICAgICAgICJodG1sX3VybCI6ICJodHRwczovL2dpdGh1Yi5jb20vY3JhenktbWF4IiwKICAgICAgICAgICAgImlkIjogMTk1MTg2NiwKICAgICAgICAgICAgImxvZ2luIjogImNyYXp5LW1heCIsCiAgICAgICAgICAgICJub2RlX2lkIjogIk1EUTZWWE5sY2pFNU5URTROalk9IiwKICAgICAgICAgICAgIm9yZ2FuaXphdGlvbnNfdXJsIjogImh0dHBzOi8vYXBpLmdpdGh1Yi5jb20vdXNlcnMvY3JhenktbWF4L29yZ3MiLAogICAgICAgICAgICAicmVjZWl2ZWRfZXZlbnRzX3VybCI6ICJodHRwczovL2FwaS5naXRodWIuY29tL3VzZXJzL2NyYXp5LW1heC9yZWNlaXZlZF9ldmVudHMiLAogICAgICAgICAgICAicmVwb3NfdXJsIjogImh0dHBzOi8vYXBpLmdpdGh1Yi5jb20vdXNlcnMvY3JhenktbWF4L3JlcG9zIiwKICAgICAgICAgICAgInNpdGVfYWRtaW4iOiBmYWxzZSwKICAgICAgICAgICAgInN0YXJyZWRfdXJsIjogImh0dHBzOi8vYXBpLmdpdGh1Yi5jb20vdXNlcnMvY3JhenktbWF4L3N0YXJyZWR7L293bmVyfXsvcmVwb30iLAogICAgICAgICAgICAic3Vic2NyaXB0aW9uc191cmwiOiAiaHR0cHM6Ly9hcGkuZ2l0aHViLmNvbS91c2Vycy9jcmF6eS1tYXgvc3Vic2NyaXB0aW9ucyIsCiAgICAgICAgICAgICJ0eXBlIjogIlVzZXIiLAogICAgICAgICAgICAidXJsIjogImh0dHBzOi8vYXBpLmdpdGh1Yi5jb20vdXNlcnMvY3JhenktbWF4IiwKICAgICAgICAgICAgInVzZXJfdmlld190eXBlIjogInB1YmxpYyIKICAgICAgICAgIH0sCiAgICAgICAgICAid29ya2Zsb3ciOiAiLmdpdGh1Yi93b3JrZmxvd3MvY2kueW1sIgogICAgICAgIH0sCiAgICAgICAgImdpdGh1Yl9qb2IiOiAiYnVpbGQiLAogICAgICAgICJnaXRodWJfcmVmIjogInJlZnMvaGVhZHMvbWFpbiIsCiAgICAgICAgImdpdGh1Yl9yZWZfbmFtZSI6ICJtYWluIiwKICAgICAgICAiZ2l0aHViX3JlZl9wcm90ZWN0ZWQiOiAiZmFsc2UiLAogICAgICAgICJnaXRodWJfcmVmX3R5cGUiOiAiYnJhbmNoIiwKICAgICAgICAiZ2l0aHViX3JlcG9zaXRvcnkiOiAiZG9ja2VyL2dpdGh1Yi1idWlsZGVyLXRlc3QiLAogICAgICAgICJnaXRodWJfcmVwb3NpdG9yeV9pZCI6ICIxMDQwNTk0Mjg3IiwKICAgICAgICAiZ2l0aHViX3JlcG9zaXRvcnlfb3duZXIiOiAiZG9ja2VyIiwKICAgICAgICAiZ2l0aHViX3JlcG9zaXRvcnlfb3duZXJfaWQiOiAiNTQyOTQ3MCIsCiAgICAgICAgImdpdGh1Yl9ydW5fYXR0ZW1wdCI6ICIxIiwKICAgICAgICAiZ2l0aHViX3J1bl9pZCI6ICIxODkzNzMyODg5NCIsCiAgICAgICAgImdpdGh1Yl9ydW5fbnVtYmVyIjogIjE4MyIsCiAgICAgICAgImdpdGh1Yl9ydW5uZXJfYXJjaCI6ICJYNjQiLAogICAgICAgICJnaXRodWJfcnVubmVyX2Vudmlyb25tZW50IjogImdpdGh1Yi1ob3N0ZWQiLAogICAgICAgICJnaXRodWJfcnVubmVyX2ltYWdlX29zIjogInVidW50dTI0IiwKICAgICAgICAiZ2l0aHViX3J1bm5lcl9pbWFnZV92ZXJzaW9uIjogIjIwMjUwOTI5LjYwLjEiLAogICAgICAgICJnaXRodWJfcnVubmVyX25hbWUiOiAiR2l0SHViIEFjdGlvbnMgMTAwMjM3NjkyNSIsCiAgICAgICAgImdpdGh1Yl9ydW5uZXJfb3MiOiAiTGludXgiLAogICAgICAgICJnaXRodWJfcnVubmVyX3RyYWNraW5nX2lkIjogImdpdGh1Yl83YzBhNzUyMS0yOTk5LTQxZTUtYWYzMC1iN2YwNjgxZjIwNGYiLAogICAgICAgICJnaXRodWJfc2VydmVyX3VybCI6ICJodHRwczovL2dpdGh1Yi5jb20iLAogICAgICAgICJnaXRodWJfdHJpZ2dlcmluZ19hY3RvciI6ICJjcmF6eS1tYXgiLAogICAgICAgICJnaXRodWJfd29ya2Zsb3ciOiAiY2kiLAogICAgICAgICJnaXRodWJfd29ya2Zsb3dfcmVmIjogImRvY2tlci9naXRodWItYnVpbGRlci10ZXN0Ly5naXRodWIvd29ya2Zsb3dzL2NpLnltbEByZWZzL2hlYWRzL21haW4iLAogICAgICAgICJnaXRodWJfd29ya2Zsb3dfc2hhIjogImJkYjk2ZmNmZThjYzllM2E1NDgwMGJjMjUzN2E0ZDRhMTRmMGM1ZmUiCiAgICAgIH0KICAgIH0sCiAgICAicnVuRGV0YWlscyI6IHsKICAgICAgImJ1aWxkZXIiOiB7CiAgICAgICAgImlkIjogImh0dHBzOi8vZ2l0aHViLmNvbS9kb2NrZXIvZ2l0aHViLWJ1aWxkZXItdGVzdC9hY3Rpb25zL3J1bnMvMTg5MzczMjg4OTQvYXR0ZW1wdHMvMSIKICAgICAgfSwKICAgICAgIm1ldGFkYXRhIjogewogICAgICAgICJpbnZvY2F0aW9uSUQiOiAiN3FnMnl1dXgzaWtsdjAya3RibWJ0d2dlYiIsCiAgICAgICAgInN0YXJ0ZWRPbiI6ICIyMDI1LTEwLTMwVDEwOjE5OjUyLjg2ODcxMDUwNVoiLAogICAgICAgICJmaW5pc2hlZE9uIjogIjIwMjUtMTAtMzBUMTA6MTk6NTcuNjM1ODEwMTE5WiIsCiAgICAgICAgImJ1aWxka2l0X21ldGFkYXRhIjogewogICAgICAgICAgInNvdXJjZSI6IHsKICAgICAgICAgICAgImxvY2F0aW9ucyI6IHsKICAgICAgICAgICAgICAic3RlcDAiOiB7CiAgICAgICAgICAgICAgICAibG9jYXRpb25zIjogWwogICAgICAgICAgICAgICAgICB7CiAgICAgICAgICAgICAgICAgICAgInJhbmdlcyI6IFsKICAgICAgICAgICAgICAgICAgICAgIHsKICAgICAgICAgICAgICAgICAgICAgICAgInN0YXJ0IjogewogICAgICAgICAgICAgICAgICAgICAgICAgICJsaW5lIjogMQogICAgICAgICAgICAgICAgICAgICAgICB9LAogICAgICAgICAgICAgICAgICAgICAgICAiZW5kIjogewogICAgICAgICAgICAgICAgICAgICAgICAgICJsaW5lIjogMQogICAgICAgICAgICAgICAgICAgICAgICB9CiAgICAgICAgICAgICAgICAgICAgICB9CiAgICAgICAgICAgICAgICAgICAgXQogICAgICAgICAgICAgICAgICB9CiAgICAgICAgICAgICAgICBdCiAgICAgICAgICAgICAgfSwKICAgICAgICAgICAgICAic3RlcDEiOiB7CiAgICAgICAgICAgICAgICAibG9jYXRpb25zIjogWwogICAgICAgICAgICAgICAgICB7CiAgICAgICAgICAgICAgICAgICAgInJhbmdlcyI6IFsKICAgICAgICAgICAgICAgICAgICAgIHsKICAgICAgICAgICAgICAgICAgICAgICAgInN0YXJ0IjogewogICAgICAgICAgICAgICAgICAgICAgICAgICJsaW5lIjogMwogICAgICAgICAgICAgICAgICAgICAgICB9LAogICAgICAgICAgICAgICAgICAgICAgICAiZW5kIjogewogICAgICAgICAgICAgICAgICAgICAgICAgICJsaW5lIjogMwogICAgICAgICAgICAgICAgICAgICAgICB9CiAgICAgICAgICAgICAgICAgICAgICB9CiAgICAgICAgICAgICAgICAgICAgXQogICAgICAgICAgICAgICAgICB9CiAgICAgICAgICAgICAgICBdCiAgICAgICAgICAgICAgfSwKICAgICAgICAgICAgICAic3RlcDIiOiB7CiAgICAgICAgICAgICAgICAibG9jYXRpb25zIjogWwogICAgICAgICAgICAgICAgICB7CiAgICAgICAgICAgICAgICAgICAgInJhbmdlcyI6IFsKICAgICAgICAgICAgICAgICAgICAgIHsKICAgICAgICAgICAgICAgICAgICAgICAgInN0YXJ0IjogewogICAgICAgICAgICAgICAgICAgICAgICAgICJsaW5lIjogNwogICAgICAgICAgICAgICAgICAgICAgICB9LAogICAgICAgICAgICAgICAgICAgICAgICAiZW5kIjogewogICAgICAgICAgICAgICAgICAgICAgICAgICJsaW5lIjogNwogICAgICAgICAgICAgICAgICAgICAgICB9CiAgICAgICAgICAgICAgICAgICAgICB9CiAgICAgICAgICAgICAgICAgICAgXQogICAgICAgICAgICAgICAgICB9CiAgICAgICAgICAgICAgICBdCiAgICAgICAgICAgICAgfQogICAgICAgICAgICB9LAogICAgICAgICAgICAiaW5mb3MiOiBbCiAgICAgICAgICAgICAgewogICAgICAgICAgICAgICAgImZpbGVuYW1lIjogImhlbGxvLkRvY2tlcmZpbGUiLAogICAgICAgICAgICAgICAgImxhbmd1YWdlIjogIkRvY2tlcmZpbGUiLAogICAgICAgICAgICAgICAgImRhdGEiOiAiUmxKUFRTQmhiSEJwYm1VZ1FWTWdZbUZ6WlFwQlVrY2dWRUZTUjBWVVVFeEJWRVpQVWswS1VsVk9JR1ZqYUc4Z0lraGxiR3h2TENCWGIzSnNaQ0VnVkdocGN5QnBjeUFrZTFSQlVrZEZWRkJNUVZSR1QxSk5mU0lnUGlBdmFHVnNiRzh1ZEhoMENrRlNSeUJDVlVsTVJFdEpWRjlUUWs5TlgxTkRRVTVmVTFSQlIwVTlkSEoxWlFvS1JsSlBUU0J6WTNKaGRHTm9Da05QVUZrZ0xTMW1jbTl0UFdKaGMyVWdMMmhsYkd4dkxuUjRkQ0F2Q2c9PSIsCiAgICAgICAgICAgICAgICAibGxiRGVmaW5pdGlvbiI6IFsKICAgICAgICAgICAgICAgICAgewogICAgICAgICAgICAgICAgICAgICJpZCI6ICJzdGVwMCIsCiAgICAgICAgICAgICAgICAgICAgIm9wIjogewogICAgICAgICAgICAgICAgICAgICAgIk9wIjogewogICAgICAgICAgICAgICAgICAgICAgICAic291cmNlIjogewogICAgICAgICAgICAgICAgICAgICAgICAgICJpZGVudGlmaWVyIjogImdpdDovL2dpdGh1Yi5jb20vZG9ja2VyL2dpdGh1Yi1idWlsZGVyLXRlc3QuZ2l0I2JkYjk2ZmNmZThjYzllM2E1NDgwMGJjMjUzN2E0ZDRhMTRmMGM1ZmUiLAogICAgICAgICAgICAgICAgICAgICAgICAgICJhdHRycyI6IHsKICAgICAgICAgICAgICAgICAgICAgICAgICAgICJnaXQuYXV0aGhlYWRlcnNlY3JldCI6ICJHSVRfQVVUSF9IRUFERVIiLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgImdpdC5hdXRodG9rZW5zZWNyZXQiOiAiR0lUX0FVVEhfVE9LRU4iLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgImdpdC5mdWxsdXJsIjogImh0dHBzOi8vZ2l0aHViLmNvbS9kb2NrZXIvZ2l0aHViLWJ1aWxkZXItdGVzdC5naXQiCiAgICAgICAgICAgICAgICAgICAgICAgICAgfQogICAgICAgICAgICAgICAgICAgICAgICB9CiAgICAgICAgICAgICAgICAgICAgICB9LAogICAgICAgICAgICAgICAgICAgICAgImNvbnN0cmFpbnRzIjoge30KICAgICAgICAgICAgICAgICAgICB9CiAgICAgICAgICAgICAgICAgIH0sCiAgICAgICAgICAgICAgICAgIHsKICAgICAgICAgICAgICAgICAgICAiaWQiOiAic3RlcDEiLAogICAgICAgICAgICAgICAgICAgICJvcCI6IHsKICAgICAgICAgICAgICAgICAgICAgICJPcCI6IHt9CiAgICAgICAgICAgICAgICAgICAgfSwKICAgICAgICAgICAgICAgICAgICAiaW5wdXRzIjogWwogICAgICAgICAgICAgICAgICAgICAgInN0ZXAwOjAiCiAgICAgICAgICAgICAgICAgICAgXQogICAgICAgICAgICAgICAgICB9CiAgICAgICAgICAgICAgICBdLAogICAgICAgICAgICAgICAgImRpZ2VzdE1hcHBpbmciOiB7CiAgICAgICAgICAgICAgICAgICJzaGEyNTY6NDc1NDBmMDk1OWQ4MWE3ZmYyZmM5NzQyYjllZjBiYjM3ZDdlY2E5OWMxM2FhNmRmODNiODgzZDA2ZTgwOGVmMiI6ICJzdGVwMCIsCiAgICAgICAgICAgICAgICAgICJzaGEyNTY6OTY5MzNjNTQ2ZmYwMGRlYmQ1MDAzMDQzMDU4NjQxOTJmY2I1MWQzNDhlOGM0MWI2YTZlMTU2OWEwNTFlNjZlZCI6ICJzdGVwMSIKICAgICAgICAgICAgICAgIH0KICAgICAgICAgICAgICB9CiAgICAgICAgICAgIF0KICAgICAgICAgIH0sCiAgICAgICAgICAibGF5ZXJzIjogewogICAgICAgICAgICAic3RlcDA6MCI6IFsKICAgICAgICAgICAgICBbCiAgICAgICAgICAgICAgICB7CiAgICAgICAgICAgICAgICAgICJtZWRpYVR5cGUiOiAiYXBwbGljYXRpb24vdm5kLm9jaS5pbWFnZS5sYXllci52MS50YXIrZ3ppcCIsCiAgICAgICAgICAgICAgICAgICJkaWdlc3QiOiAic2hhMjU2OjJkMzVlYmRiNTdkOTk3MWZlYTBjYWMxNTgyYWE3ODkzNWFkZjgwNThiMmNjMzJkYjE2M2M5ODgyMmU1ZGZhMWIiLAogICAgICAgICAgICAgICAgICAic2l6ZSI6IDM4MDI0NTIKICAgICAgICAgICAgICAgIH0KICAgICAgICAgICAgICBdCiAgICAgICAgICAgIF0KICAgICAgICAgIH0KICAgICAgICB9LAogICAgICAgICJidWlsZGtpdF9jb21wbGV0ZW5lc3MiOiB7CiAgICAgICAgICAicmVxdWVzdCI6IHRydWUsCiAgICAgICAgICAicmVzb2x2ZWREZXBlbmRlbmNpZXMiOiB0cnVlCiAgICAgICAgfQogICAgICB9CiAgICB9CiAgfQp9",
    "payloadType":"application/vnd.in-toto+json",
    "signatures":[
      {
        "sig":"MEYCIQCxuuSnDsj3J2P/BTXFVdN57tZLVPqzZdQDbkVSDSmeUAIhAOeg9RF+kRNM9eFmMo0yJNYKVIOWO/LEXKKZ/dJg/KNP"
      }
    ]
  }
}

Rekor log: https://search.sigstore.dev/?logIndex=654932898

@crazy-max crazy-max changed the title [WIP] signing for attestations manifest and artifact blobs [WIP] signing for provenance blobs Oct 28, 2025
@crazy-max crazy-max force-pushed the signing branch 3 times, most recently from b586554 to 750943e Compare October 28, 2025 14:56
@crazy-max

This comment was marked as resolved.

@crazy-max crazy-max changed the title [WIP] signing for provenance blobs Signing for provenance blobs Oct 28, 2025
@crazy-max crazy-max changed the title Signing for provenance blobs signing for provenance blobs Oct 28, 2025
@crazy-max crazy-max requested a review from tonistiigi October 29, 2025 09:01
@crazy-max crazy-max force-pushed the signing branch 2 times, most recently from 6f9eebc to d30a63c Compare October 29, 2025 09:09
@crazy-max crazy-max marked this pull request as ready for review October 29, 2025 09:12
@crazy-max crazy-max changed the title signing for provenance blobs sigstore class to sign buildkit provenance blobs Oct 29, 2025
expect(res[provenancePath].bundle).toBeDefined();
expect(res[provenancePath].certificate).toBeDefined();
expect(res[provenancePath].tlogID).toBeDefined();
expect(res[provenancePath].attestationID).not.toBeDefined();
Copy link
Member Author

@crazy-max crazy-max Oct 29, 2025

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

@tonistiigi attestationID is not defined here as I don't use the GitHub Attestation API to post the provenance there. Wonder if we could have an opt for this? Could be useful for verification of released binaries (tag events) like https://github.com/cli/cli does: https://github.com/cli/cli/attestations

@crazy-max crazy-max force-pushed the signing branch 5 times, most recently from ba40ba4 to 955ab47 Compare October 30, 2025 13:42
@crazy-max crazy-max changed the title sigstore class to sign buildkit provenance blobs sigstore class to sign and verify buildkit provenance blobs Oct 30, 2025
Signed-off-by: CrazyMax <1951866+crazy-max@users.noreply.github.com>
Signed-off-by: CrazyMax <1951866+crazy-max@users.noreply.github.com>
Signed-off-by: CrazyMax <1951866+crazy-max@users.noreply.github.com>
@crazy-max crazy-max merged commit b4f8e5f into docker:main Nov 3, 2025
285 of 291 checks passed
@crazy-max crazy-max deleted the signing branch November 3, 2025 08:34
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant