diff --git a/sdk/keyvault/azcertificates/README.md b/sdk/keyvault/azcertificates/README.md index b5527be052e9..ff35dcde551b 100644 --- a/sdk/keyvault/azcertificates/README.md +++ b/sdk/keyvault/azcertificates/README.md @@ -110,8 +110,8 @@ Constructing the client also requires your vault's URL, which you can get from t ```go import ( - "github.com/Azure/azure-sdk-for-go/sdk/keyvault/azcertificates" "github.com/Azure/azure-sdk-for-go/sdk/azidentity" + "github.com/Azure/azure-sdk-for-go/sdk/keyvault/azcertificates" ) func main() { @@ -120,10 +120,7 @@ func main() { // TODO: handle error } - client, err := azcertificates.NewClient("https://.vault.azure.net", credential, nil) - if err != nil { - // TODO: handle error - } + client := azcertificates.NewClient("https://.vault.azure.net", credential, nil) } ``` @@ -141,25 +138,21 @@ illustrated in the [examples](#examples) below. This section contains code snippets covering common tasks: * [Create a Certificate](#create-a-certificate) * [Delete a Certificate](#delete-a-certificate) -* [List Properties of Certificates](#list-properties-of-certificates) +* [List Certificates](#list-certificates) * [Retrieve a Certificate](#retrieve-a-certificate) -* [Update Properties of an existing Certificate](#update-properties-of-an-existing-certificate) +* [Update Certificate Metadata](#update-certificate-metadata) ### Create a Certificate -[BeginCreateCertificate](https://aka.ms/azsdk/go/keyvault-certificates/docs#Client.BeginCreateCertificate) +[CreateCertificate](https://aka.ms/azsdk/go/keyvault-certificates/docs#Client.CreateCertificate) creates a certificate to be stored in the Azure Key Vault. If a certificate with the same name already exists, a new -version of the certificate is created. Before creating a certificate, a management policy for the certificate can be -created or our default policy will be used. This method returns a poller object that enables waiting for the operation -to complete. +version of the certificate is created. ```go import ( "context" "fmt" - "time" - "github.com/Azure/azure-sdk-for-go/sdk/azcore/runtime" "github.com/Azure/azure-sdk-for-go/sdk/azcore/to" "github.com/Azure/azure-sdk-for-go/sdk/azidentity" "github.com/Azure/azure-sdk-for-go/sdk/keyvault/azcertificates" @@ -170,34 +163,23 @@ func main() { if err != nil { // TODO: handle error } - client, err := azcertificates.NewClient("https://.vault.azure.net", credential, nil) - if err != nil { - // TODO: handle error - } + client := azcertificates.NewClient("https://.vault.azure.net", credential, nil) - resp, err := client.BeginCreateCertificate(context.TODO(), "certificateName", azcertificates.Policy{ - IssuerParameters: &azcertificates.IssuerParameters{ - IssuerName: to.Ptr("Self"), - }, - X509Properties: &azcertificates.X509CertificateProperties{ - Subject: to.Ptr("CN=DefaultPolicy"), + createParams := azcertificates.CreateCertificateParameters{ + // this policy is suitable for a self-signed certificate + CertificatePolicy: &azcertificates.CertificatePolicy{ + IssuerParameters: &azcertificates.IssuerParameters{Name: (*string)(to.Ptr("self"))}, + X509CertificateProperties: &azcertificates.X509CertificateProperties{Subject: to.Ptr("CN=DefaultPolicy")}, }, - }, nil) - if err != nil { - // TODO: handle error } - - finalResponse, err := resp.PollUntilDone(context.TODO(), &runtime.PollUntilDoneOptions{Frequency: time.Second}) + resp, err := client.CreateCertificate(context.TODO(), "certificateName", createParams, nil) if err != nil { // TODO: handle error } - fmt.Println("Created a certificate with ID: ", *finalResponse.ID) + fmt.Println("Created a certificate with ID:", *resp.ID) } ``` -If you would like to check the status of your certificate creation, you can call `Poll(ctx context.Context)` on the poller or -[GetCertificateOperation](https://aka.ms/azsdk/go/keyvault-certificates/docs#Client.GetCertificateOperation) -with the name of the certificate. ### Retrieve a Certificate @@ -207,9 +189,10 @@ retrieves the latest version of a certificate previously stored in the Key Vault ```go import ( "context" + "fmt" - "github.com/Azure/azure-sdk-for-go/sdk/keyvault/azcertificates" "github.com/Azure/azure-sdk-for-go/sdk/azidentity" + "github.com/Azure/azure-sdk-for-go/sdk/keyvault/azcertificates" ) func main() { @@ -223,24 +206,20 @@ func main() { // TODO: handle error } - resp, err := client.GetCertificate(context.TODO(), "myCertName", nil) - if err != nil { - // TODO: handle error - } - - // optionally you can get a specific version - resp, err = client.GetCertificate(context.TODO(), "myCertName", &azcertificates.GetCertificateOptions{Version: "myCertVersion"}) + // passing an empty string for the version gets the latest version of the certificate + resp, err := client.GetCertificate(context.TODO(), "certName", "", nil) if err != nil { // TODO: handle error } + fmt.Println(*resp.ID) } ``` -### Update properties of an existing Certificate +### Update Certificate metadata -[UpdateCertificateProperties](https://aka.ms/azsdk/go/keyvault-certificates/docs#Client.UpdateCertificateProperties) -updates a certificate previously stored in the Key Vault. +[UpdateCertificate](https://aka.ms/azsdk/go/keyvault-certificates/docs#Client.UpdateCertificate) +updates a certificate's metadata. ```go import ( @@ -263,32 +242,27 @@ func main() { // TODO: handle error } - resp, err := client.GetCertificate(context.TODO(), "myCertName", nil) - if err != nil { - // TODO: handle error + updateParams := azcertificates.UpdateCertificateParameters{ + CertificateAttributes: &azcertificates.CertificateAttributes{Enabled: to.Ptr(false)}, } - - resp.Properties.Enabled = to.Ptr(false) - updateResp, err := client.UpdateCertificateProperties(context.TODO(), *resp.Properties, nil) + // passing an empty string for the version updates the latest version of the certificate + resp, err := client.UpdateCertificate(context.TODO(), "certName", "", updateParams, nil) if err != nil { // TODO: handle error } - fmt.Printf("Set Enabled to %v for certificate with name %s\n", *&updateResp.Properties.Enabled, *resp.ID) + fmt.Println(*resp.ID) } ``` ### Delete a Certificate -[BeginDeleteCertificate](https://aka.ms/azsdk/go/keyvault-certificates/docs#Client.BeginDeleteCertificate) -requests Key Vault delete a certificate, returning a poller which allows you to wait for the deletion to finish. Waiting is helpful when you want to purge (permanently delete) the certificate as soon as possible. +[DeleteCertificate](https://aka.ms/azsdk/go/keyvault-certificates/docs#Client.DeleteCertificate) requests that Key Vault delete a certificate. It returns when Key Vault has begun deleting the certificate. Deletion can take several seconds to complete, so it may be necessary to wait before performing other operations on the deleted certificate. ```go import ( "context" "fmt" - "time" - "github.com/Azure/azure-sdk-for-go/sdk/azcore/runtime" "github.com/Azure/azure-sdk-for-go/sdk/azidentity" "github.com/Azure/azure-sdk-for-go/sdk/keyvault/azcertificates" ) @@ -304,22 +278,22 @@ func main() { // TODO: handle error } - pollerResp, err := client.BeginDeleteCertificate(context.TODO(), "certToDelete", nil) - if err != nil { - // TODO: handle error - } - finalResp, err := pollerResp.PollUntilDone(context.TODO(), &runtime.PollUntilDoneOptions{Frequency: time.Second}) + // DeleteCertificate returns when Key Vault has begun deleting the certificate. That can take several + // seconds to complete, so it may be necessary to wait before performing other operations on the + // deleted certificate. + resp, err := client.DeleteCertificate(context.TODO(), "certName", nil) if err != nil { // TODO: handle error } - fmt.Println("Deleted certificate with ID: ", *finalResp.ID) + // In a soft-delete enabled vault, deleted resources can be recovered until they're purged (permanently deleted). + fmt.Printf("Certificate will be purged at %v", *resp.ScheduledPurgeDate) } ``` ### List Certificates -[NewListPropertiesOfCertificatesPager](https://aka.ms/azsdk/go/keyvault-certificates/docs#Client.NewListPropertiesOfCertificatesPager) creates a pager that lists the properties of all certificates in the client's vault. +[NewListCertificatesPager](https://aka.ms/azsdk/go/keyvault-certificates/docs#Client.NewListCertificatesPager) creates a pager that lists all certificates in the vault. ```go import ( @@ -341,13 +315,13 @@ func main() { // TODO: handle error } - pager := client.NewListPropertiesOfCertificatesPager(nil) + pager := client.NewListCertificatesPager(nil) for pager.More() { page, err := pager.NextPage(context.TODO()) if err != nil { // TODO: handle error } - for _, cert := range page.Certificates { + for _, cert := range page.Value { fmt.Println(*cert.ID) } } diff --git a/sdk/keyvault/azcertificates/autorest.md b/sdk/keyvault/azcertificates/autorest.md index 0710dbd8646f..b0a06cdd75d2 100644 --- a/sdk/keyvault/azcertificates/autorest.md +++ b/sdk/keyvault/azcertificates/autorest.md @@ -1,33 +1,130 @@ ## Go -These settings apply only when `--go` is specified on the command line. - -``` yaml +```yaml +clear-output-folder: false +export-clients: true go: true -version: "^3.0.0" -input-file: -- https://github.com/Azure/azure-rest-api-specs/blob/e2ef44b87405b412403ccb005bfb3975411adf60/specification/keyvault/data-plane/Microsoft.KeyVault/stable/7.3/certificates.json +input-file: https://github.com/Azure/azure-rest-api-specs/blob/37cd8dfac3c570a24bb645b31c012d12efb760df/specification/keyvault/data-plane/Microsoft.KeyVault/stable/7.3/certificates.json license-header: MICROSOFT_MIT_NO_VERSION -clear-output-folder: true -output-folder: internal/generated +module: github.com/Azure/azure-sdk-for-go/sdk/keyvault/azcertificates openapi-type: "data-plane" +output-folder: ../azcertificates +override-client-name: Client security: "AADToken" -security-scopes: "https://vault.azure.net/.default" -use: "@autorest/go@4.0.0-preview.40" -module-version: 0.4.0 -export-clients: true +security-scopes: "https://vault.azure.net/.default" +use: "@autorest/go@4.0.0-preview.43" +version: "^3.0.0" -# remove the empty certificateVersion path param check. it's legal for KV but can't be described in OpenAPI directive: - - from: constants.go + # delete unused model + - remove-model: PendingCertificateSigningRequestResult + + # make vault URL a parameter of the client constructor + - from: swagger-document + where: $["x-ms-parameterized-host"] + transform: $.parameters[0]["x-ms-parameter-location"] = "client" + + # rename parameter models to match their methods + - rename-model: + from: CertificateCreateParameters + to: CreateCertificateParameters + - rename-model: + from: CertificateImportParameters + to: ImportCertificateParameters + - rename-model: + from: CertificateIssuerSetParameters + to: SetCertificateIssuerParameters + - rename-model: + from: CertificateIssuerUpdateParameters + to: UpdateCertificateIssuerParameters + - rename-model: + from: CertificateMergeParameters + to: MergeCertificateParameters + - rename-model: + from: CertificateOperationUpdateParameter + to: UpdateCertificateOperationParameter + - rename-model: + from: CertificateRestoreParameters + to: RestoreCertificateParameters + - rename-model: + from: CertificateUpdateParameters + to: UpdateCertificateParameters + + # rename paged operations from Get* to List* + - rename-operation: + from: GetCertificates + to: ListCertificates + - rename-operation: + from: GetCertificateIssuers + to: ListCertificateIssuers + - rename-operation: + from: GetCertificateVersions + to: ListCertificateVersions + - rename-operation: + from: GetDeletedCertificates + to: ListDeletedCertificates + + # Maxresults -> MaxResults + - from: swagger-document + where: $.paths..parameters..[?(@.name=='maxresults')] + transform: $["x-ms-client-name"] = "MaxResults" + + # capitalize acronyms + - where-model: CertificateBundle + transform: $.properties.cer["x-ms-client-name"] = "CER" + - where-model: CertificateBundle + transform: $.properties.kid["x-ms-client-name"] = "KID" + - where-model: CertificateBundle + transform: $.properties.sid["x-ms-client-name"] = "SID" + - where-model: CertificateOperation + transform: $.properties.csr["x-ms-client-name"] = "CSR" + - where-model: SubjectAlternativeNames + transform: $.properties.upns["x-ms-client-name"] = "UPNs" + - where-model: X509CertificateProperties + transform: $.properties.ekus["x-ms-client-name"] = "EKUs" + + # delete unused KeyVaultError + - from: models.go where: $ - transform: >- - return $. - replace(/moduleName\s+=\s+"generated"/, `ModuleName = "azcertificates"`). - replace(/moduleVersion\s+=/, `ModuleVersion =`); - - from: keyvault_client.go + transform: return $.replace(/(?:\/\/.*\s)+type KeyVaultError.+\{(?:\s.+\s)+\}\s/g, ""); + - from: models_serde.go where: $ - transform: >- - return $. - replaceAll(/\sif certificateVersion == "" \{\s+return nil, errors\.New\("parameter certificateVersion cannot be empty"\)\s+\}\s/g, ``); + transform: return $.replace(/(?:\/\/.*\s)+func \(\w \*?KeyVaultError\).*\{\s(?:.+\s)+\}\s/g, ""); + + # delete the Attributes model defined in common.json (it's used only with allOf) + - from: models.go + where: $ + transform: return $.replace(/(?:\/\/.*\s)+type Attributes.+\{(?:\s.+\s)+\}\s/, ""); + - from: models_serde.go + where: $ + transform: return $.replace(/(?:\/\/.*\s)+func \(a \*?Attributes\).*\{\s(?:.+\s)+\}\s/g, ""); + + # delete generated constructor + - from: client.go + where: $ + transform: return $.replace(/(?:\/\/.*\s)+func NewClient.+\{\s(?:.+\s)+\}\s/, ""); + + # delete the version path param check (version == "" is legal for Key Vault but indescribable by OpenAPI) + - from: client.go + where: $ + transform: return $.replace(/\sif certificateVersion == "" \{\s+.+certificateVersion cannot be empty"\)\s+\}\s/g, ""); + + # delete client name prefix from method options and response types + - from: + - client.go + - models.go + - response_types.go + where: $ + transform: return $.replace(/Client(\w+)((?:Options|Response))/g, "$1$2"); + + # make cert IDs a convenience type so we can add parsing methods + # (specifying models because others have "ID" fields whose values aren't cert IDs) + - from: models.go + where: $ + transform: return $.replace(/(type (?:Deleted)?Certificate(?:Bundle|Item) struct \{(?:\s.+\s)+\sID \*)string/g, "$1ID") + + # remove "certificate" prefix from some method parameter names + - from: client.go + - where: $ + - transform: return $.replace(/certificate((?:Name|Policy|Version)) string/g, (match) => { return match[0].toLowerCase() + match.substr(1); }) ``` diff --git a/sdk/keyvault/azcertificates/client.go b/sdk/keyvault/azcertificates/client.go index c713a330a2f8..658510f195c8 100644 --- a/sdk/keyvault/azcertificates/client.go +++ b/sdk/keyvault/azcertificates/client.go @@ -3,1357 +3,1383 @@ // Copyright (c) Microsoft Corporation. All rights reserved. // Licensed under the MIT License. See License.txt in the project root for license information. +// Code generated by Microsoft (R) AutoRest Code Generator. +// Changes may cause incorrect behavior and will be lost if the code is regenerated. +// DO NOT EDIT. package azcertificates import ( "context" "errors" - "net/http" - - "github.com/Azure/azure-sdk-for-go/sdk/azcore" "github.com/Azure/azure-sdk-for-go/sdk/azcore/policy" "github.com/Azure/azure-sdk-for-go/sdk/azcore/runtime" - "github.com/Azure/azure-sdk-for-go/sdk/azcore/to" - "github.com/Azure/azure-sdk-for-go/sdk/keyvault/azcertificates/internal/generated" - shared "github.com/Azure/azure-sdk-for-go/sdk/keyvault/internal" + "net/http" + "net/url" + "strconv" + "strings" ) -// Client is the struct for interacting with a Key Vault Certificates instance. +// Client contains the methods for the Client group. // Don't use this type directly, use NewClient() instead. type Client struct { - genClient *generated.KeyVaultClient - vaultURL string -} - -// ClientOptions are optional parameters for NewClient -type ClientOptions struct { - azcore.ClientOptions + endpoint string + pl runtime.Pipeline +} + +// BackupCertificate - Requests that a backup of the specified certificate be downloaded to the client. All versions of the +// certificate will be downloaded. This operation requires the certificates/backup permission. +// If the operation fails it returns an *azcore.ResponseError type. +// Generated from API version 7.3 +// certificateName - The name of the certificate. +// options - BackupCertificateOptions contains the optional parameters for the Client.BackupCertificate method. +func (client *Client) BackupCertificate(ctx context.Context, certificateName string, options *BackupCertificateOptions) (BackupCertificateResponse, error) { + req, err := client.backupCertificateCreateRequest(ctx, certificateName, options) + if err != nil { + return BackupCertificateResponse{}, err + } + resp, err := client.pl.Do(req) + if err != nil { + return BackupCertificateResponse{}, err + } + if !runtime.HasStatusCode(resp, http.StatusOK) { + return BackupCertificateResponse{}, runtime.NewResponseError(resp) + } + return client.backupCertificateHandleResponse(resp) } -// converts ClientOptions to generated *generated.ConnectionOptions -func (c *ClientOptions) toConnectionOptions() *policy.ClientOptions { - if c == nil { - return &policy.ClientOptions{} +// backupCertificateCreateRequest creates the BackupCertificate request. +func (client *Client) backupCertificateCreateRequest(ctx context.Context, certificateName string, options *BackupCertificateOptions) (*policy.Request, error) { + urlPath := "/certificates/{certificate-name}/backup" + if certificateName == "" { + return nil, errors.New("parameter certificateName cannot be empty") } - - return &policy.ClientOptions{ - Logging: c.Logging, - Retry: c.Retry, - Telemetry: c.Telemetry, - Transport: c.Transport, - PerCallPolicies: c.PerCallPolicies, - PerRetryPolicies: c.PerRetryPolicies, + urlPath = strings.ReplaceAll(urlPath, "{certificate-name}", url.PathEscape(certificateName)) + req, err := runtime.NewRequest(ctx, http.MethodPost, runtime.JoinPaths(client.endpoint, urlPath)) + if err != nil { + return nil, err } + reqQP := req.Raw().URL.Query() + reqQP.Set("api-version", "7.3") + req.Raw().URL.RawQuery = reqQP.Encode() + req.Raw().Header["Accept"] = []string{"application/json"} + return req, nil } -// NewClient creates an instance of a Client for a Key Vault Certificate URL. -func NewClient(vaultURL string, credential azcore.TokenCredential, options *ClientOptions) (*Client, error) { - genOptions := options.toConnectionOptions() - - genOptions.PerRetryPolicies = append( - genOptions.PerRetryPolicies, - shared.NewKeyVaultChallengePolicy(credential), - ) - - pl := runtime.NewPipeline(generated.ModuleName, generated.ModuleVersion, runtime.PipelineOptions{}, genOptions) - - return &Client{ - genClient: generated.NewKeyVaultClient(pl), - vaultURL: vaultURL, - }, nil +// backupCertificateHandleResponse handles the BackupCertificate response. +func (client *Client) backupCertificateHandleResponse(resp *http.Response) (BackupCertificateResponse, error) { + result := BackupCertificateResponse{} + if err := runtime.UnmarshalAsJSON(resp, &result.BackupCertificateResult); err != nil { + return BackupCertificateResponse{}, err + } + return result, nil } -// BeginCreateCertificateOptions contains optional parameters for Client.BeginCreateCertificate -type BeginCreateCertificateOptions struct { - // Determines whether the object is enabled. - Enabled *bool - - // Application specific metadata in the form of key-value pairs - Tags map[string]*string - - // ResumeToken is a token for resuming long running operations from a previous poller - ResumeToken string +// CreateCertificate - If this is the first version, the certificate resource is created. This operation requires the certificates/create +// permission. +// If the operation fails it returns an *azcore.ResponseError type. +// Generated from API version 7.3 +// certificateName - The name of the certificate. +// parameters - The parameters to create a certificate. +// options - CreateCertificateOptions contains the optional parameters for the Client.CreateCertificate method. +func (client *Client) CreateCertificate(ctx context.Context, certificateName string, parameters CreateCertificateParameters, options *CreateCertificateOptions) (CreateCertificateResponse, error) { + req, err := client.createCertificateCreateRequest(ctx, certificateName, parameters, options) + if err != nil { + return CreateCertificateResponse{}, err + } + resp, err := client.pl.Do(req) + if err != nil { + return CreateCertificateResponse{}, err + } + if !runtime.HasStatusCode(resp, http.StatusAccepted) { + return CreateCertificateResponse{}, runtime.NewResponseError(resp) + } + return client.createCertificateHandleResponse(resp) } -func (b BeginCreateCertificateOptions) toGenerated() *generated.KeyVaultClientCreateCertificateOptions { - return &generated.KeyVaultClientCreateCertificateOptions{} +// createCertificateCreateRequest creates the CreateCertificate request. +func (client *Client) createCertificateCreateRequest(ctx context.Context, certificateName string, parameters CreateCertificateParameters, options *CreateCertificateOptions) (*policy.Request, error) { + urlPath := "/certificates/{certificate-name}/create" + if certificateName == "" { + return nil, errors.New("parameter certificateName cannot be empty") + } + urlPath = strings.ReplaceAll(urlPath, "{certificate-name}", url.PathEscape(certificateName)) + req, err := runtime.NewRequest(ctx, http.MethodPost, runtime.JoinPaths(client.endpoint, urlPath)) + if err != nil { + return nil, err + } + reqQP := req.Raw().URL.Query() + reqQP.Set("api-version", "7.3") + req.Raw().URL.RawQuery = reqQP.Encode() + req.Raw().Header["Accept"] = []string{"application/json"} + return req, runtime.MarshalAsJSON(req, parameters) } -// CreateCertificateResponse contains response fields for Client.BeginCreateCertificate -type CreateCertificateResponse struct { - CertificateWithPolicy +// createCertificateHandleResponse handles the CreateCertificate response. +func (client *Client) createCertificateHandleResponse(resp *http.Response) (CreateCertificateResponse, error) { + result := CreateCertificateResponse{} + if err := runtime.UnmarshalAsJSON(resp, &result.CertificateOperation); err != nil { + return CreateCertificateResponse{}, err + } + return result, nil } -// BeginCreateCertificate creates a new certificate resource, if a certificate with this name already exists, a new version is created. This operation requires the certificates/create permission. -func (c *Client) BeginCreateCertificate(ctx context.Context, certificateName string, policy Policy, options *BeginCreateCertificateOptions) (*runtime.Poller[CreateCertificateResponse], error) { - if options == nil { - options = &BeginCreateCertificateOptions{} +// DeleteCertificate - Deletes all versions of a certificate object along with its associated policy. Delete certificate cannot +// be used to remove individual versions of a certificate object. This operation requires the +// certificates/delete permission. +// If the operation fails it returns an *azcore.ResponseError type. +// Generated from API version 7.3 +// certificateName - The name of the certificate. +// options - DeleteCertificateOptions contains the optional parameters for the Client.DeleteCertificate method. +func (client *Client) DeleteCertificate(ctx context.Context, certificateName string, options *DeleteCertificateOptions) (DeleteCertificateResponse, error) { + req, err := client.deleteCertificateCreateRequest(ctx, certificateName, options) + if err != nil { + return DeleteCertificateResponse{}, err } - - handler := beginCreateCertificateOperation{ - poll: func(ctx context.Context, endpoint string) (*http.Response, error) { - req, err := runtime.NewRequest(ctx, http.MethodGet, endpoint) - if err != nil { - return nil, err - } - return c.genClient.Pipeline().Do(req) - }, - result: func(ctx context.Context) (CreateCertificateResponse, error) { - resp, err := c.GetCertificate(ctx, certificateName, nil) - if err != nil { - return CreateCertificateResponse{}, err - } - return CreateCertificateResponse(resp), nil - }, + resp, err := client.pl.Do(req) + if err != nil { + return DeleteCertificateResponse{}, err } - - if options.ResumeToken != "" { - return runtime.NewPollerFromResumeToken(options.ResumeToken, c.genClient.Pipeline(), &runtime.NewPollerFromResumeTokenOptions[CreateCertificateResponse]{ - Handler: &handler, - }) + if !runtime.HasStatusCode(resp, http.StatusOK) { + return DeleteCertificateResponse{}, runtime.NewResponseError(resp) } + return client.deleteCertificateHandleResponse(resp) +} - var rawResp *http.Response - ctx = runtime.WithCaptureResponse(ctx, &rawResp) - createResp, err := c.genClient.CreateCertificate( - ctx, - c.vaultURL, - certificateName, - generated.CertificateCreateParameters{ - CertificatePolicy: policy.toGeneratedCertificateCreateParameters(), - Tags: options.Tags, - CertificateAttributes: &generated.CertificateAttributes{Enabled: options.Enabled}, - }, - options.toGenerated(), - ) +// deleteCertificateCreateRequest creates the DeleteCertificate request. +func (client *Client) deleteCertificateCreateRequest(ctx context.Context, certificateName string, options *DeleteCertificateOptions) (*policy.Request, error) { + urlPath := "/certificates/{certificate-name}" + if certificateName == "" { + return nil, errors.New("parameter certificateName cannot be empty") + } + urlPath = strings.ReplaceAll(urlPath, "{certificate-name}", url.PathEscape(certificateName)) + req, err := runtime.NewRequest(ctx, http.MethodDelete, runtime.JoinPaths(client.endpoint, urlPath)) if err != nil { return nil, err } - - pollURL := rawResp.Header.Get("Location") - if pollURL == "" { - return nil, errors.New("missing Location header") - } - handler.PollURL = pollURL - handler.Status = *createResp.Status - return runtime.NewPoller(rawResp, c.genClient.Pipeline(), &runtime.NewPollerOptions[CreateCertificateResponse]{ - Handler: &handler, - }) -} - -// GetCertificateOptions contains optional parameters for Client.GetCertificate -type GetCertificateOptions struct { - Version string + reqQP := req.Raw().URL.Query() + reqQP.Set("api-version", "7.3") + req.Raw().URL.RawQuery = reqQP.Encode() + req.Raw().Header["Accept"] = []string{"application/json"} + return req, nil } -// GetCertificateResponse contains response fields for Client.GetCertificate -type GetCertificateResponse struct { - CertificateWithPolicy +// deleteCertificateHandleResponse handles the DeleteCertificate response. +func (client *Client) deleteCertificateHandleResponse(resp *http.Response) (DeleteCertificateResponse, error) { + result := DeleteCertificateResponse{} + if err := runtime.UnmarshalAsJSON(resp, &result.DeletedCertificateBundle); err != nil { + return DeleteCertificateResponse{}, err + } + return result, nil } -// GetCertificate gets information about a specific certificate. This operation requires the certificates/get permission. -func (c *Client) GetCertificate(ctx context.Context, certificateName string, options *GetCertificateOptions) (GetCertificateResponse, error) { - if options == nil { - options = &GetCertificateOptions{} +// DeleteCertificateContacts - Deletes the certificate contacts for a specified key vault certificate. This operation requires +// the certificates/managecontacts permission. +// If the operation fails it returns an *azcore.ResponseError type. +// Generated from API version 7.3 +// options - DeleteCertificateContactsOptions contains the optional parameters for the Client.DeleteCertificateContacts +// method. +func (client *Client) DeleteCertificateContacts(ctx context.Context, options *DeleteCertificateContactsOptions) (DeleteCertificateContactsResponse, error) { + req, err := client.deleteCertificateContactsCreateRequest(ctx, options) + if err != nil { + return DeleteCertificateContactsResponse{}, err } - - resp, err := c.genClient.GetCertificate(ctx, c.vaultURL, certificateName, options.Version, nil) + resp, err := client.pl.Do(req) if err != nil { - return GetCertificateResponse{}, err + return DeleteCertificateContactsResponse{}, err } - - return GetCertificateResponse{ - CertificateWithPolicy: CertificateWithPolicy{ - Properties: propertiesFromGenerated(resp.Attributes, resp.Tags, resp.ID, resp.X509Thumbprint), - CER: resp.Cer, - ContentType: resp.ContentType, - ID: resp.ID, - KeyID: resp.Kid, - SecretID: resp.Sid, - Policy: certificatePolicyFromGenerated(resp.Policy), - }, - }, nil + if !runtime.HasStatusCode(resp, http.StatusOK) { + return DeleteCertificateContactsResponse{}, runtime.NewResponseError(resp) + } + return client.deleteCertificateContactsHandleResponse(resp) } -// GetCertificateOperationOptions contains optional parameters for Client.GetCertificateOperation -type GetCertificateOperationOptions struct { - // placeholder for future optional parameters. +// deleteCertificateContactsCreateRequest creates the DeleteCertificateContacts request. +func (client *Client) deleteCertificateContactsCreateRequest(ctx context.Context, options *DeleteCertificateContactsOptions) (*policy.Request, error) { + urlPath := "/certificates/contacts" + req, err := runtime.NewRequest(ctx, http.MethodDelete, runtime.JoinPaths(client.endpoint, urlPath)) + if err != nil { + return nil, err + } + reqQP := req.Raw().URL.Query() + reqQP.Set("api-version", "7.3") + req.Raw().URL.RawQuery = reqQP.Encode() + req.Raw().Header["Accept"] = []string{"application/json"} + return req, nil } -func (g *GetCertificateOperationOptions) toGenerated() *generated.KeyVaultClientGetCertificateOperationOptions { - return &generated.KeyVaultClientGetCertificateOperationOptions{} +// deleteCertificateContactsHandleResponse handles the DeleteCertificateContacts response. +func (client *Client) deleteCertificateContactsHandleResponse(resp *http.Response) (DeleteCertificateContactsResponse, error) { + result := DeleteCertificateContactsResponse{} + if err := runtime.UnmarshalAsJSON(resp, &result.Contacts); err != nil { + return DeleteCertificateContactsResponse{}, err + } + return result, nil } -// GetCertificateOperationResponse contains response field for Client.GetCertificateOperation -type GetCertificateOperationResponse struct { - Operation +// DeleteCertificateIssuer - The DeleteCertificateIssuer operation permanently removes the specified certificate issuer from +// the vault. This operation requires the certificates/manageissuers/deleteissuers permission. +// If the operation fails it returns an *azcore.ResponseError type. +// Generated from API version 7.3 +// issuerName - The name of the issuer. +// options - DeleteCertificateIssuerOptions contains the optional parameters for the Client.DeleteCertificateIssuer +// method. +func (client *Client) DeleteCertificateIssuer(ctx context.Context, issuerName string, options *DeleteCertificateIssuerOptions) (DeleteCertificateIssuerResponse, error) { + req, err := client.deleteCertificateIssuerCreateRequest(ctx, issuerName, options) + if err != nil { + return DeleteCertificateIssuerResponse{}, err + } + resp, err := client.pl.Do(req) + if err != nil { + return DeleteCertificateIssuerResponse{}, err + } + if !runtime.HasStatusCode(resp, http.StatusOK) { + return DeleteCertificateIssuerResponse{}, runtime.NewResponseError(resp) + } + return client.deleteCertificateIssuerHandleResponse(resp) } -// GetCertificateOperation gets the creation operation associated with a specified certificate. This operation requires the certificates/get permission. -func (c *Client) GetCertificateOperation(ctx context.Context, certificateName string, options *GetCertificateOperationOptions) (GetCertificateOperationResponse, error) { - resp, err := c.genClient.GetCertificateOperation(ctx, c.vaultURL, certificateName, options.toGenerated()) +// deleteCertificateIssuerCreateRequest creates the DeleteCertificateIssuer request. +func (client *Client) deleteCertificateIssuerCreateRequest(ctx context.Context, issuerName string, options *DeleteCertificateIssuerOptions) (*policy.Request, error) { + urlPath := "/certificates/issuers/{issuer-name}" + if issuerName == "" { + return nil, errors.New("parameter issuerName cannot be empty") + } + urlPath = strings.ReplaceAll(urlPath, "{issuer-name}", url.PathEscape(issuerName)) + req, err := runtime.NewRequest(ctx, http.MethodDelete, runtime.JoinPaths(client.endpoint, urlPath)) if err != nil { - return GetCertificateOperationResponse{}, err + return nil, err } - - return GetCertificateOperationResponse{ - Operation: Operation{ - CancellationRequested: resp.CancellationRequested, - CSR: resp.Csr, - Error: certificateErrorFromGenerated(resp.Error), - IssuerParameters: issuerParametersFromGenerated(resp.IssuerParameters), - RequestID: resp.RequestID, - Status: resp.Status, - StatusDetails: resp.StatusDetails, - Target: resp.Target, - ID: resp.ID, - }, - }, nil + reqQP := req.Raw().URL.Query() + reqQP.Set("api-version", "7.3") + req.Raw().URL.RawQuery = reqQP.Encode() + req.Raw().Header["Accept"] = []string{"application/json"} + return req, nil } -// BeginDeleteCertificateOptions contains optional parameters for Client.BeginDeleteCertificate -type BeginDeleteCertificateOptions struct { - // ResumeToken is a string to begin polling from a previous operation - ResumeToken string +// deleteCertificateIssuerHandleResponse handles the DeleteCertificateIssuer response. +func (client *Client) deleteCertificateIssuerHandleResponse(resp *http.Response) (DeleteCertificateIssuerResponse, error) { + result := DeleteCertificateIssuerResponse{} + if err := runtime.UnmarshalAsJSON(resp, &result.IssuerBundle); err != nil { + return DeleteCertificateIssuerResponse{}, err + } + return result, nil } -// convert public options to generated options struct -func (b *BeginDeleteCertificateOptions) toGenerated() *generated.KeyVaultClientDeleteCertificateOptions { - return &generated.KeyVaultClientDeleteCertificateOptions{} +// DeleteCertificateOperation - Deletes the creation operation for a specified certificate that is in the process of being +// created. The certificate is no longer created. This operation requires the certificates/update permission. +// If the operation fails it returns an *azcore.ResponseError type. +// Generated from API version 7.3 +// certificateName - The name of the certificate. +// options - DeleteCertificateOperationOptions contains the optional parameters for the Client.DeleteCertificateOperation +// method. +func (client *Client) DeleteCertificateOperation(ctx context.Context, certificateName string, options *DeleteCertificateOperationOptions) (DeleteCertificateOperationResponse, error) { + req, err := client.deleteCertificateOperationCreateRequest(ctx, certificateName, options) + if err != nil { + return DeleteCertificateOperationResponse{}, err + } + resp, err := client.pl.Do(req) + if err != nil { + return DeleteCertificateOperationResponse{}, err + } + if !runtime.HasStatusCode(resp, http.StatusOK) { + return DeleteCertificateOperationResponse{}, runtime.NewResponseError(resp) + } + return client.deleteCertificateOperationHandleResponse(resp) } -// DeleteCertificateResponse contains response fields for BeginDeleteCertificatePoller.FinalResponse -type DeleteCertificateResponse struct { - DeletedCertificate +// deleteCertificateOperationCreateRequest creates the DeleteCertificateOperation request. +func (client *Client) deleteCertificateOperationCreateRequest(ctx context.Context, certificateName string, options *DeleteCertificateOperationOptions) (*policy.Request, error) { + urlPath := "/certificates/{certificate-name}/pending" + if certificateName == "" { + return nil, errors.New("parameter certificateName cannot be empty") + } + urlPath = strings.ReplaceAll(urlPath, "{certificate-name}", url.PathEscape(certificateName)) + req, err := runtime.NewRequest(ctx, http.MethodDelete, runtime.JoinPaths(client.endpoint, urlPath)) + if err != nil { + return nil, err + } + reqQP := req.Raw().URL.Query() + reqQP.Set("api-version", "7.3") + req.Raw().URL.RawQuery = reqQP.Encode() + req.Raw().Header["Accept"] = []string{"application/json"} + return req, nil } -func deleteCertificateResponseFromGenerated(g generated.KeyVaultClientDeleteCertificateResponse) DeleteCertificateResponse { - _, name, _ := shared.ParseID(g.ID) - return DeleteCertificateResponse{ - DeletedCertificate: DeletedCertificate{ - RecoveryID: g.RecoveryID, - DeletedOn: g.DeletedDate, - ScheduledPurgeDate: g.ScheduledPurgeDate, - Properties: propertiesFromGenerated(g.Attributes, g.Tags, g.ID, g.X509Thumbprint), - CER: g.Cer, - ContentType: g.ContentType, - ID: g.ID, - Name: name, - KeyID: g.Kid, - Policy: certificatePolicyFromGenerated(g.Policy), - SecretID: g.Sid, - }, +// deleteCertificateOperationHandleResponse handles the DeleteCertificateOperation response. +func (client *Client) deleteCertificateOperationHandleResponse(resp *http.Response) (DeleteCertificateOperationResponse, error) { + result := DeleteCertificateOperationResponse{} + if err := runtime.UnmarshalAsJSON(resp, &result.CertificateOperation); err != nil { + return DeleteCertificateOperationResponse{}, err } + return result, nil } -// BeginDeleteCertificate deletes a certificate from the keyvault. Delete cannot be applied to an individual version of a certificate. This operation -// requires the certificate/delete permission. This response contains a response with a Poller struct that can be used to Poll for a response, or the -// DeleteCertificatePollerResponse.PollUntilDone function can be used to poll until completion. -func (c *Client) BeginDeleteCertificate(ctx context.Context, certificateName string, options *BeginDeleteCertificateOptions) (*runtime.Poller[DeleteCertificateResponse], error) { - if options == nil { - options = &BeginDeleteCertificateOptions{} +// GetCertificate - Gets information about a specific certificate. This operation requires the certificates/get permission. +// If the operation fails it returns an *azcore.ResponseError type. +// Generated from API version 7.3 +// certificateName - The name of the certificate in the given vault. +// certificateVersion - The version of the certificate. This URI fragment is optional. If not specified, the latest version +// of the certificate is returned. +// options - GetCertificateOptions contains the optional parameters for the Client.GetCertificate method. +func (client *Client) GetCertificate(ctx context.Context, certificateName string, certificateVersion string, options *GetCertificateOptions) (GetCertificateResponse, error) { + req, err := client.getCertificateCreateRequest(ctx, certificateName, certificateVersion, options) + if err != nil { + return GetCertificateResponse{}, err } - - handler := beginDeleteCertificateOperation{ - poll: func(ctx context.Context) (*http.Response, error) { - req, err := c.genClient.GetDeletedCertificateCreateRequest(ctx, c.vaultURL, certificateName, nil) - if err != nil { - return nil, err - } - return c.genClient.Pipeline().Do(req) - }, + resp, err := client.pl.Do(req) + if err != nil { + return GetCertificateResponse{}, err } - - if options.ResumeToken != "" { - return runtime.NewPollerFromResumeToken(options.ResumeToken, c.genClient.Pipeline(), &runtime.NewPollerFromResumeTokenOptions[DeleteCertificateResponse]{ - Handler: &handler, - }) + if !runtime.HasStatusCode(resp, http.StatusOK) { + return GetCertificateResponse{}, runtime.NewResponseError(resp) } + return client.getCertificateHandleResponse(resp) +} - var rawResp *http.Response - ctx = runtime.WithCaptureResponse(ctx, &rawResp) - if _, err := c.genClient.DeleteCertificate(ctx, c.vaultURL, certificateName, options.toGenerated()); err != nil { +// getCertificateCreateRequest creates the GetCertificate request. +func (client *Client) getCertificateCreateRequest(ctx context.Context, certificateName string, certificateVersion string, options *GetCertificateOptions) (*policy.Request, error) { + urlPath := "/certificates/{certificate-name}/{certificate-version}" + if certificateName == "" { + return nil, errors.New("parameter certificateName cannot be empty") + } + urlPath = strings.ReplaceAll(urlPath, "{certificate-name}", url.PathEscape(certificateName)) + urlPath = strings.ReplaceAll(urlPath, "{certificate-version}", url.PathEscape(certificateVersion)) + req, err := runtime.NewRequest(ctx, http.MethodGet, runtime.JoinPaths(client.endpoint, urlPath)) + if err != nil { return nil, err } - - return runtime.NewPoller(rawResp, c.genClient.Pipeline(), &runtime.NewPollerOptions[DeleteCertificateResponse]{ - Handler: &handler, - }) -} - -// PurgeDeletedCertificateOptions contains optional parameters for Client.PurgeDeletedCertificateOptions -type PurgeDeletedCertificateOptions struct { - // placeholder for future optional parameters. + reqQP := req.Raw().URL.Query() + reqQP.Set("api-version", "7.3") + req.Raw().URL.RawQuery = reqQP.Encode() + req.Raw().Header["Accept"] = []string{"application/json"} + return req, nil } -func (p *PurgeDeletedCertificateOptions) toGenerated() *generated.KeyVaultClientPurgeDeletedCertificateOptions { - return &generated.KeyVaultClientPurgeDeletedCertificateOptions{} +// getCertificateHandleResponse handles the GetCertificate response. +func (client *Client) getCertificateHandleResponse(resp *http.Response) (GetCertificateResponse, error) { + result := GetCertificateResponse{} + if err := runtime.UnmarshalAsJSON(resp, &result.CertificateBundle); err != nil { + return GetCertificateResponse{}, err + } + return result, nil } -// PurgeDeletedCertificateResponse contains response fields for Client.PurgeDeletedCertificate -type PurgeDeletedCertificateResponse struct { - // placeholder for future reponse fields +// GetCertificateContacts - The GetCertificateContacts operation returns the set of certificate contact resources in the specified +// key vault. This operation requires the certificates/managecontacts permission. +// If the operation fails it returns an *azcore.ResponseError type. +// Generated from API version 7.3 +// options - GetCertificateContactsOptions contains the optional parameters for the Client.GetCertificateContacts method. +func (client *Client) GetCertificateContacts(ctx context.Context, options *GetCertificateContactsOptions) (GetCertificateContactsResponse, error) { + req, err := client.getCertificateContactsCreateRequest(ctx, options) + if err != nil { + return GetCertificateContactsResponse{}, err + } + resp, err := client.pl.Do(req) + if err != nil { + return GetCertificateContactsResponse{}, err + } + if !runtime.HasStatusCode(resp, http.StatusOK) { + return GetCertificateContactsResponse{}, runtime.NewResponseError(resp) + } + return client.getCertificateContactsHandleResponse(resp) } -// PurgeDeletedCertificate operation performs an irreversible deletion of the specified certificate, without possibility for recovery. The operation -// is not available if the recovery level does not specify 'Purgeable'. This operation requires the certificate/purge permission. -func (c *Client) PurgeDeletedCertificate(ctx context.Context, certificateName string, options *PurgeDeletedCertificateOptions) (PurgeDeletedCertificateResponse, error) { - _, err := c.genClient.PurgeDeletedCertificate(ctx, c.vaultURL, certificateName, options.toGenerated()) +// getCertificateContactsCreateRequest creates the GetCertificateContacts request. +func (client *Client) getCertificateContactsCreateRequest(ctx context.Context, options *GetCertificateContactsOptions) (*policy.Request, error) { + urlPath := "/certificates/contacts" + req, err := runtime.NewRequest(ctx, http.MethodGet, runtime.JoinPaths(client.endpoint, urlPath)) if err != nil { - return PurgeDeletedCertificateResponse{}, err + return nil, err } + reqQP := req.Raw().URL.Query() + reqQP.Set("api-version", "7.3") + req.Raw().URL.RawQuery = reqQP.Encode() + req.Raw().Header["Accept"] = []string{"application/json"} + return req, nil +} - return PurgeDeletedCertificateResponse{}, nil +// getCertificateContactsHandleResponse handles the GetCertificateContacts response. +func (client *Client) getCertificateContactsHandleResponse(resp *http.Response) (GetCertificateContactsResponse, error) { + result := GetCertificateContactsResponse{} + if err := runtime.UnmarshalAsJSON(resp, &result.Contacts); err != nil { + return GetCertificateContactsResponse{}, err + } + return result, nil } -// GetDeletedCertificateOptions contains optional parameters for Client.GetDeletedCertificate -type GetDeletedCertificateOptions struct { - // placeholder for future optional parameters. +// GetCertificateIssuer - The GetCertificateIssuer operation returns the specified certificate issuer resources in the specified +// key vault. This operation requires the certificates/manageissuers/getissuers permission. +// If the operation fails it returns an *azcore.ResponseError type. +// Generated from API version 7.3 +// issuerName - The name of the issuer. +// options - GetCertificateIssuerOptions contains the optional parameters for the Client.GetCertificateIssuer method. +func (client *Client) GetCertificateIssuer(ctx context.Context, issuerName string, options *GetCertificateIssuerOptions) (GetCertificateIssuerResponse, error) { + req, err := client.getCertificateIssuerCreateRequest(ctx, issuerName, options) + if err != nil { + return GetCertificateIssuerResponse{}, err + } + resp, err := client.pl.Do(req) + if err != nil { + return GetCertificateIssuerResponse{}, err + } + if !runtime.HasStatusCode(resp, http.StatusOK) { + return GetCertificateIssuerResponse{}, runtime.NewResponseError(resp) + } + return client.getCertificateIssuerHandleResponse(resp) } -func (g *GetDeletedCertificateOptions) toGenerated() *generated.KeyVaultClientGetDeletedCertificateOptions { - return &generated.KeyVaultClientGetDeletedCertificateOptions{} +// getCertificateIssuerCreateRequest creates the GetCertificateIssuer request. +func (client *Client) getCertificateIssuerCreateRequest(ctx context.Context, issuerName string, options *GetCertificateIssuerOptions) (*policy.Request, error) { + urlPath := "/certificates/issuers/{issuer-name}" + if issuerName == "" { + return nil, errors.New("parameter issuerName cannot be empty") + } + urlPath = strings.ReplaceAll(urlPath, "{issuer-name}", url.PathEscape(issuerName)) + req, err := runtime.NewRequest(ctx, http.MethodGet, runtime.JoinPaths(client.endpoint, urlPath)) + if err != nil { + return nil, err + } + reqQP := req.Raw().URL.Query() + reqQP.Set("api-version", "7.3") + req.Raw().URL.RawQuery = reqQP.Encode() + req.Raw().Header["Accept"] = []string{"application/json"} + return req, nil } -// GetDeletedCertificateResponse contains response field for Client.GetDeletedCertificate -type GetDeletedCertificateResponse struct { - DeletedCertificate +// getCertificateIssuerHandleResponse handles the GetCertificateIssuer response. +func (client *Client) getCertificateIssuerHandleResponse(resp *http.Response) (GetCertificateIssuerResponse, error) { + result := GetCertificateIssuerResponse{} + if err := runtime.UnmarshalAsJSON(resp, &result.IssuerBundle); err != nil { + return GetCertificateIssuerResponse{}, err + } + return result, nil } -// GetDeletedCertificate retrieves the deleted certificate information plus its attributes, such as retention interval, scheduled permanent deletion -// and the current deletion recovery level. This operation requires the certificates/get permission. -func (c *Client) GetDeletedCertificate(ctx context.Context, certificateName string, options *GetDeletedCertificateOptions) (GetDeletedCertificateResponse, error) { - resp, err := c.genClient.GetDeletedCertificate(ctx, c.vaultURL, certificateName, options.toGenerated()) +// GetCertificateOperation - Gets the creation operation associated with a specified certificate. This operation requires +// the certificates/get permission. +// If the operation fails it returns an *azcore.ResponseError type. +// Generated from API version 7.3 +// certificateName - The name of the certificate. +// options - GetCertificateOperationOptions contains the optional parameters for the Client.GetCertificateOperation +// method. +func (client *Client) GetCertificateOperation(ctx context.Context, certificateName string, options *GetCertificateOperationOptions) (GetCertificateOperationResponse, error) { + req, err := client.getCertificateOperationCreateRequest(ctx, certificateName, options) if err != nil { - return GetDeletedCertificateResponse{}, err + return GetCertificateOperationResponse{}, err } - - _, name, _ := shared.ParseID(resp.ID) - return GetDeletedCertificateResponse{ - DeletedCertificate: DeletedCertificate{ - RecoveryID: resp.RecoveryID, - DeletedOn: resp.DeletedDate, - ScheduledPurgeDate: resp.ScheduledPurgeDate, - Properties: propertiesFromGenerated(resp.Attributes, resp.Tags, resp.ID, resp.X509Thumbprint), - CER: resp.Cer, - ContentType: resp.ContentType, - ID: resp.ID, - Name: name, - KeyID: resp.Kid, - Policy: certificatePolicyFromGenerated(resp.Policy), - SecretID: resp.Sid, - }, - }, nil + resp, err := client.pl.Do(req) + if err != nil { + return GetCertificateOperationResponse{}, err + } + if !runtime.HasStatusCode(resp, http.StatusOK) { + return GetCertificateOperationResponse{}, runtime.NewResponseError(resp) + } + return client.getCertificateOperationHandleResponse(resp) } -// BackupCertificateOptions contains optional parameters for Client.BackupCertificateOptions -type BackupCertificateOptions struct { - // placeholder for future optional parameters. +// getCertificateOperationCreateRequest creates the GetCertificateOperation request. +func (client *Client) getCertificateOperationCreateRequest(ctx context.Context, certificateName string, options *GetCertificateOperationOptions) (*policy.Request, error) { + urlPath := "/certificates/{certificate-name}/pending" + if certificateName == "" { + return nil, errors.New("parameter certificateName cannot be empty") + } + urlPath = strings.ReplaceAll(urlPath, "{certificate-name}", url.PathEscape(certificateName)) + req, err := runtime.NewRequest(ctx, http.MethodGet, runtime.JoinPaths(client.endpoint, urlPath)) + if err != nil { + return nil, err + } + reqQP := req.Raw().URL.Query() + reqQP.Set("api-version", "7.3") + req.Raw().URL.RawQuery = reqQP.Encode() + req.Raw().Header["Accept"] = []string{"application/json"} + return req, nil } -func (b *BackupCertificateOptions) toGenerated() *generated.KeyVaultClientBackupCertificateOptions { - return &generated.KeyVaultClientBackupCertificateOptions{} +// getCertificateOperationHandleResponse handles the GetCertificateOperation response. +func (client *Client) getCertificateOperationHandleResponse(resp *http.Response) (GetCertificateOperationResponse, error) { + result := GetCertificateOperationResponse{} + if err := runtime.UnmarshalAsJSON(resp, &result.CertificateOperation); err != nil { + return GetCertificateOperationResponse{}, err + } + return result, nil } -// BackupCertificateResponse contains response field for Client.BackupCertificate -type BackupCertificateResponse struct { - // READ-ONLY; The backup blob containing the backed up certificate. - Value []byte +// GetCertificatePolicy - The GetCertificatePolicy operation returns the specified certificate policy resources in the specified +// key vault. This operation requires the certificates/get permission. +// If the operation fails it returns an *azcore.ResponseError type. +// Generated from API version 7.3 +// certificateName - The name of the certificate in a given key vault. +// options - GetCertificatePolicyOptions contains the optional parameters for the Client.GetCertificatePolicy method. +func (client *Client) GetCertificatePolicy(ctx context.Context, certificateName string, options *GetCertificatePolicyOptions) (GetCertificatePolicyResponse, error) { + req, err := client.getCertificatePolicyCreateRequest(ctx, certificateName, options) + if err != nil { + return GetCertificatePolicyResponse{}, err + } + resp, err := client.pl.Do(req) + if err != nil { + return GetCertificatePolicyResponse{}, err + } + if !runtime.HasStatusCode(resp, http.StatusOK) { + return GetCertificatePolicyResponse{}, runtime.NewResponseError(resp) + } + return client.getCertificatePolicyHandleResponse(resp) } -// BackupCertificate requests that a backup of the specified certificate be downloaded to the client. All versions of the certificate will be downloaded. -// This operation requires the certificates/backup permission. -func (c *Client) BackupCertificate(ctx context.Context, certificateName string, options *BackupCertificateOptions) (BackupCertificateResponse, error) { - resp, err := c.genClient.BackupCertificate(ctx, c.vaultURL, certificateName, options.toGenerated()) +// getCertificatePolicyCreateRequest creates the GetCertificatePolicy request. +func (client *Client) getCertificatePolicyCreateRequest(ctx context.Context, certificateName string, options *GetCertificatePolicyOptions) (*policy.Request, error) { + urlPath := "/certificates/{certificate-name}/policy" + if certificateName == "" { + return nil, errors.New("parameter certificateName cannot be empty") + } + urlPath = strings.ReplaceAll(urlPath, "{certificate-name}", url.PathEscape(certificateName)) + req, err := runtime.NewRequest(ctx, http.MethodGet, runtime.JoinPaths(client.endpoint, urlPath)) if err != nil { - return BackupCertificateResponse{}, err + return nil, err } - - return BackupCertificateResponse{ - Value: resp.Value, - }, nil + reqQP := req.Raw().URL.Query() + reqQP.Set("api-version", "7.3") + req.Raw().URL.RawQuery = reqQP.Encode() + req.Raw().Header["Accept"] = []string{"application/json"} + return req, nil } -// ImportCertificateOptions contains optional parameters for Client.ImportCertificate -type ImportCertificateOptions struct { - // The management policy for the certificate. - CertificatePolicy *Policy - - // Determines whether the object is enabled. - Enabled *bool - - // If the private key in base64EncodedCertificate is encrypted, the password used for encryption. - Password *string - - // Application specific metadata in the form of key-value pairs - Tags map[string]*string +// getCertificatePolicyHandleResponse handles the GetCertificatePolicy response. +func (client *Client) getCertificatePolicyHandleResponse(resp *http.Response) (GetCertificatePolicyResponse, error) { + result := GetCertificatePolicyResponse{} + if err := runtime.UnmarshalAsJSON(resp, &result.CertificatePolicy); err != nil { + return GetCertificatePolicyResponse{}, err + } + return result, nil } -// ImportCertificateResponse contains response fields for Client.ImportCertificate -type ImportCertificateResponse struct { - CertificateWithPolicy +// GetDeletedCertificate - The GetDeletedCertificate operation retrieves the deleted certificate information plus its attributes, +// such as retention interval, scheduled permanent deletion and the current deletion recovery level. +// This operation requires the certificates/get permission. +// If the operation fails it returns an *azcore.ResponseError type. +// Generated from API version 7.3 +// certificateName - The name of the certificate +// options - GetDeletedCertificateOptions contains the optional parameters for the Client.GetDeletedCertificate method. +func (client *Client) GetDeletedCertificate(ctx context.Context, certificateName string, options *GetDeletedCertificateOptions) (GetDeletedCertificateResponse, error) { + req, err := client.getDeletedCertificateCreateRequest(ctx, certificateName, options) + if err != nil { + return GetDeletedCertificateResponse{}, err + } + resp, err := client.pl.Do(req) + if err != nil { + return GetDeletedCertificateResponse{}, err + } + if !runtime.HasStatusCode(resp, http.StatusOK) { + return GetDeletedCertificateResponse{}, runtime.NewResponseError(resp) + } + return client.getDeletedCertificateHandleResponse(resp) } -// ImportCertificate imports an existing valid certificate, containing a private key, into Azure Key Vault. This operation requires the -// certificates/import permission. The certificate to be imported can be in either PFX or PEM format. If the certificate is in PEM format -// the PEM file must contain the key as well as x509 certificates. Key Vault will only accept a key in PKCS#8 format. -func (c *Client) ImportCertificate(ctx context.Context, certificateName string, certificate []byte, options *ImportCertificateOptions) (ImportCertificateResponse, error) { - if options == nil { - options = &ImportCertificateOptions{} +// getDeletedCertificateCreateRequest creates the GetDeletedCertificate request. +func (client *Client) getDeletedCertificateCreateRequest(ctx context.Context, certificateName string, options *GetDeletedCertificateOptions) (*policy.Request, error) { + urlPath := "/deletedcertificates/{certificate-name}" + if certificateName == "" { + return nil, errors.New("parameter certificateName cannot be empty") } - resp, err := c.genClient.ImportCertificate( - ctx, - c.vaultURL, - certificateName, - generated.CertificateImportParameters{ - Base64EncodedCertificate: to.Ptr(string(certificate)), - CertificateAttributes: &generated.CertificateAttributes{ - Enabled: options.Enabled, - }, - CertificatePolicy: options.CertificatePolicy.toGeneratedCertificateCreateParameters(), - Password: options.Password, - Tags: options.Tags, - }, - &generated.KeyVaultClientImportCertificateOptions{}, - ) + urlPath = strings.ReplaceAll(urlPath, "{certificate-name}", url.PathEscape(certificateName)) + req, err := runtime.NewRequest(ctx, http.MethodGet, runtime.JoinPaths(client.endpoint, urlPath)) if err != nil { - return ImportCertificateResponse{}, err + return nil, err } - - return ImportCertificateResponse{ - CertificateWithPolicy: CertificateWithPolicy{ - Properties: propertiesFromGenerated(resp.Attributes, resp.Tags, resp.ID, resp.X509Thumbprint), - CER: resp.Cer, - ContentType: resp.ContentType, - ID: resp.ID, - KeyID: resp.Kid, - SecretID: resp.Sid, - Policy: certificatePolicyFromGenerated(resp.Policy), - }, - }, nil + reqQP := req.Raw().URL.Query() + reqQP.Set("api-version", "7.3") + req.Raw().URL.RawQuery = reqQP.Encode() + req.Raw().Header["Accept"] = []string{"application/json"} + return req, nil } -// ListPropertiesOfCertificatesOptions contains optional parameters for Client.ListCertificates -type ListPropertiesOfCertificatesOptions struct { - // placeholder for future optional parameters. +// getDeletedCertificateHandleResponse handles the GetDeletedCertificate response. +func (client *Client) getDeletedCertificateHandleResponse(resp *http.Response) (GetDeletedCertificateResponse, error) { + result := GetDeletedCertificateResponse{} + if err := runtime.UnmarshalAsJSON(resp, &result.DeletedCertificateBundle); err != nil { + return GetDeletedCertificateResponse{}, err + } + return result, nil } -// ListPropertiesOfCertificatesResponse contains response fields for ListCertificatesPager.NextPage -type ListPropertiesOfCertificatesResponse struct { - // READ-ONLY; A response message containing a list of certificates in the key vault along with a link to the next page of certificates. - Certificates []*CertificateItem - - // NextLink is a link to the next page of results - NextLink *string +// ImportCertificate - Imports an existing valid certificate, containing a private key, into Azure Key Vault. This operation +// requires the certificates/import permission. The certificate to be imported can be in either PFX +// or PEM format. If the certificate is in PEM format the PEM file must contain the key as well as x509 certificates. Key +// Vault will only accept a key in PKCS#8 format. +// If the operation fails it returns an *azcore.ResponseError type. +// Generated from API version 7.3 +// certificateName - The name of the certificate. +// parameters - The parameters to import the certificate. +// options - ImportCertificateOptions contains the optional parameters for the Client.ImportCertificate method. +func (client *Client) ImportCertificate(ctx context.Context, certificateName string, parameters ImportCertificateParameters, options *ImportCertificateOptions) (ImportCertificateResponse, error) { + req, err := client.importCertificateCreateRequest(ctx, certificateName, parameters, options) + if err != nil { + return ImportCertificateResponse{}, err + } + resp, err := client.pl.Do(req) + if err != nil { + return ImportCertificateResponse{}, err + } + if !runtime.HasStatusCode(resp, http.StatusOK) { + return ImportCertificateResponse{}, runtime.NewResponseError(resp) + } + return client.importCertificateHandleResponse(resp) } -// convert internal Response to ListCertificatesPage -func listCertsPageFromGenerated(i generated.KeyVaultClientGetCertificatesResponse) ListPropertiesOfCertificatesResponse { - var vals []*CertificateItem - - for _, v := range i.Value { - vals = append(vals, &CertificateItem{ - Properties: propertiesFromGenerated(v.Attributes, v.Tags, v.ID, v.X509Thumbprint), - ID: v.ID, - }) +// importCertificateCreateRequest creates the ImportCertificate request. +func (client *Client) importCertificateCreateRequest(ctx context.Context, certificateName string, parameters ImportCertificateParameters, options *ImportCertificateOptions) (*policy.Request, error) { + urlPath := "/certificates/{certificate-name}/import" + if certificateName == "" { + return nil, errors.New("parameter certificateName cannot be empty") } + urlPath = strings.ReplaceAll(urlPath, "{certificate-name}", url.PathEscape(certificateName)) + req, err := runtime.NewRequest(ctx, http.MethodPost, runtime.JoinPaths(client.endpoint, urlPath)) + if err != nil { + return nil, err + } + reqQP := req.Raw().URL.Query() + reqQP.Set("api-version", "7.3") + req.Raw().URL.RawQuery = reqQP.Encode() + req.Raw().Header["Accept"] = []string{"application/json"} + return req, runtime.MarshalAsJSON(req, parameters) +} - return ListPropertiesOfCertificatesResponse{ - Certificates: vals, - NextLink: i.NextLink, +// importCertificateHandleResponse handles the ImportCertificate response. +func (client *Client) importCertificateHandleResponse(resp *http.Response) (ImportCertificateResponse, error) { + result := ImportCertificateResponse{} + if err := runtime.UnmarshalAsJSON(resp, &result.CertificateBundle); err != nil { + return ImportCertificateResponse{}, err } + return result, nil } -// NewListPropertiesOfCertificatesPager retrieves a list of the certificates in the Key Vault as JSON Web Key structures that contain the -// public part of a stored certificate. The LIST operation is applicable to all certificate types, however only the -// base certificate identifier, attributes, and tags are provided in the response. Individual versions of a -// certificate are not listed in the response. This operation requires the certificates/list permission. -func (c *Client) NewListPropertiesOfCertificatesPager(options *ListPropertiesOfCertificatesOptions) *runtime.Pager[ListPropertiesOfCertificatesResponse] { - pager := c.genClient.NewGetCertificatesPager(c.vaultURL, nil) - return runtime.NewPager(runtime.PagingHandler[ListPropertiesOfCertificatesResponse]{ - More: func(page ListPropertiesOfCertificatesResponse) bool { - return pager.More() +// NewListCertificateIssuersPager - The GetCertificateIssuers operation returns the set of certificate issuer resources in +// the specified key vault. This operation requires the certificates/manageissuers/getissuers permission. +// If the operation fails it returns an *azcore.ResponseError type. +// Generated from API version 7.3 +// options - ListCertificateIssuersOptions contains the optional parameters for the Client.ListCertificateIssuers method. +func (client *Client) NewListCertificateIssuersPager(options *ListCertificateIssuersOptions) *runtime.Pager[ListCertificateIssuersResponse] { + return runtime.NewPager(runtime.PagingHandler[ListCertificateIssuersResponse]{ + More: func(page ListCertificateIssuersResponse) bool { + return page.NextLink != nil && len(*page.NextLink) > 0 }, - Fetcher: func(ctx context.Context, cur *ListPropertiesOfCertificatesResponse) (ListPropertiesOfCertificatesResponse, error) { - page, err := pager.NextPage(ctx) + Fetcher: func(ctx context.Context, page *ListCertificateIssuersResponse) (ListCertificateIssuersResponse, error) { + var req *policy.Request + var err error + if page == nil { + req, err = client.listCertificateIssuersCreateRequest(ctx, options) + } else { + req, err = runtime.NewRequest(ctx, http.MethodGet, *page.NextLink) + } + if err != nil { + return ListCertificateIssuersResponse{}, err + } + resp, err := client.pl.Do(req) if err != nil { - return ListPropertiesOfCertificatesResponse{}, err + return ListCertificateIssuersResponse{}, err } - return listCertsPageFromGenerated(page), nil + if !runtime.HasStatusCode(resp, http.StatusOK) { + return ListCertificateIssuersResponse{}, runtime.NewResponseError(resp) + } + return client.listCertificateIssuersHandleResponse(resp) }, }) } -// ListPropertiesOfCertificateVersionsOptions contains optional parameters for Client.ListCertificateVersions -type ListPropertiesOfCertificateVersionsOptions struct { - // placeholder for future optional parameters. -} - -// ListPropertiesOfCertificateVersionsResponse contains response fields for ListCertificateVersionsPager.NextPage -type ListPropertiesOfCertificateVersionsResponse struct { - // READ-ONLY; A response message containing a list of certificates in the key vault along with a link to the next page of certificates. - Certificates []*CertificateItem - - // NextLink is a link to the next page of results to fetch - NextLink *string -} - -// create ListCertificatesPage from generated pager -func listCertificateVersionsPageFromGenerated(i generated.KeyVaultClientGetCertificateVersionsResponse) ListPropertiesOfCertificateVersionsResponse { - var vals []*CertificateItem - for _, v := range i.Value { - vals = append(vals, &CertificateItem{ - Properties: propertiesFromGenerated(v.Attributes, v.Tags, v.ID, v.X509Thumbprint), - ID: v.ID, - }) +// listCertificateIssuersCreateRequest creates the ListCertificateIssuers request. +func (client *Client) listCertificateIssuersCreateRequest(ctx context.Context, options *ListCertificateIssuersOptions) (*policy.Request, error) { + urlPath := "/certificates/issuers" + req, err := runtime.NewRequest(ctx, http.MethodGet, runtime.JoinPaths(client.endpoint, urlPath)) + if err != nil { + return nil, err + } + reqQP := req.Raw().URL.Query() + if options != nil && options.MaxResults != nil { + reqQP.Set("maxresults", strconv.FormatInt(int64(*options.MaxResults), 10)) } + reqQP.Set("api-version", "7.3") + req.Raw().URL.RawQuery = reqQP.Encode() + req.Raw().Header["Accept"] = []string{"application/json"} + return req, nil +} - return ListPropertiesOfCertificateVersionsResponse{ - Certificates: vals, - NextLink: i.NextLink, +// listCertificateIssuersHandleResponse handles the ListCertificateIssuers response. +func (client *Client) listCertificateIssuersHandleResponse(resp *http.Response) (ListCertificateIssuersResponse, error) { + result := ListCertificateIssuersResponse{} + if err := runtime.UnmarshalAsJSON(resp, &result.CertificateIssuerListResult); err != nil { + return ListCertificateIssuersResponse{}, err } + return result, nil } -// NewListPropertiesOfCertificateVersionsPager lists all versions of the specified certificate. The full certificate identifer and -// attributes are provided in the response. No values are returned for the certificates. This operation -// requires the certificates/list permission. -func (c *Client) NewListPropertiesOfCertificateVersionsPager(certificateName string, options *ListPropertiesOfCertificateVersionsOptions) *runtime.Pager[ListPropertiesOfCertificateVersionsResponse] { - pager := c.genClient.NewGetCertificateVersionsPager(c.vaultURL, certificateName, nil) - return runtime.NewPager(runtime.PagingHandler[ListPropertiesOfCertificateVersionsResponse]{ - More: func(page ListPropertiesOfCertificateVersionsResponse) bool { - return pager.More() +// NewListCertificateVersionsPager - The GetCertificateVersions operation returns the versions of a certificate in the specified +// key vault. This operation requires the certificates/list permission. +// If the operation fails it returns an *azcore.ResponseError type. +// Generated from API version 7.3 +// certificateName - The name of the certificate. +// options - ListCertificateVersionsOptions contains the optional parameters for the Client.ListCertificateVersions +// method. +func (client *Client) NewListCertificateVersionsPager(certificateName string, options *ListCertificateVersionsOptions) *runtime.Pager[ListCertificateVersionsResponse] { + return runtime.NewPager(runtime.PagingHandler[ListCertificateVersionsResponse]{ + More: func(page ListCertificateVersionsResponse) bool { + return page.NextLink != nil && len(*page.NextLink) > 0 }, - Fetcher: func(ctx context.Context, cur *ListPropertiesOfCertificateVersionsResponse) (ListPropertiesOfCertificateVersionsResponse, error) { - page, err := pager.NextPage(ctx) + Fetcher: func(ctx context.Context, page *ListCertificateVersionsResponse) (ListCertificateVersionsResponse, error) { + var req *policy.Request + var err error + if page == nil { + req, err = client.listCertificateVersionsCreateRequest(ctx, certificateName, options) + } else { + req, err = runtime.NewRequest(ctx, http.MethodGet, *page.NextLink) + } + if err != nil { + return ListCertificateVersionsResponse{}, err + } + resp, err := client.pl.Do(req) if err != nil { - return ListPropertiesOfCertificateVersionsResponse{}, err + return ListCertificateVersionsResponse{}, err + } + if !runtime.HasStatusCode(resp, http.StatusOK) { + return ListCertificateVersionsResponse{}, runtime.NewResponseError(resp) } - return listCertificateVersionsPageFromGenerated(page), nil + return client.listCertificateVersionsHandleResponse(resp) }, }) } -// CreateIssuerOptions contains optional parameters for Client.CreateIssuer -type CreateIssuerOptions struct { - // Determines whether the issuer is enabled. - Enabled *bool - - // The credentials to be used for the issuer. - Credentials *IssuerCredentials - - // Details of the organization administrator. - AdministratorContacts []*AdministratorContact - - // Id of the organization. - OrganizationID *string -} - -func (c *CreateIssuerOptions) toGenerated() *generated.KeyVaultClientSetCertificateIssuerOptions { - return &generated.KeyVaultClientSetCertificateIssuerOptions{} -} - -// CreateIssuerResponse contains response fields for Client.CreateIssuer -type CreateIssuerResponse struct { - Issuer -} - -// CreateIssuer adds or updates the specified certificate issuer. This operation requires the certificates/setissuers permission. -func (c *Client) CreateIssuer(ctx context.Context, issuerName string, provider string, options *CreateIssuerOptions) (CreateIssuerResponse, error) { - if options == nil { - options = &CreateIssuerOptions{} +// listCertificateVersionsCreateRequest creates the ListCertificateVersions request. +func (client *Client) listCertificateVersionsCreateRequest(ctx context.Context, certificateName string, options *ListCertificateVersionsOptions) (*policy.Request, error) { + urlPath := "/certificates/{certificate-name}/versions" + if certificateName == "" { + return nil, errors.New("parameter certificateName cannot be empty") } - - var orgDetails *generated.OrganizationDetails - if options.AdministratorContacts != nil || options.OrganizationID != nil { - orgDetails = &generated.OrganizationDetails{} - if options.OrganizationID != nil { - orgDetails.ID = options.OrganizationID - } - - if options.AdministratorContacts != nil { - a := make([]*generated.AdministratorDetails, len(options.AdministratorContacts)) - for idx, v := range options.AdministratorContacts { - a[idx] = &generated.AdministratorDetails{ - EmailAddress: v.Email, - FirstName: v.FirstName, - LastName: v.LastName, - Phone: v.Phone, - } - } - orgDetails.AdminDetails = a - } - } - - resp, err := c.genClient.SetCertificateIssuer( - ctx, - c.vaultURL, - issuerName, - generated.CertificateIssuerSetParameters{ - Provider: &provider, - Attributes: &generated.IssuerAttributes{Enabled: options.Enabled}, - Credentials: options.Credentials.toGenerated(), - OrganizationDetails: orgDetails, - }, - options.toGenerated(), - ) - + urlPath = strings.ReplaceAll(urlPath, "{certificate-name}", url.PathEscape(certificateName)) + req, err := runtime.NewRequest(ctx, http.MethodGet, runtime.JoinPaths(client.endpoint, urlPath)) if err != nil { - return CreateIssuerResponse{}, err - } - - cr := CreateIssuerResponse{} - cr.Issuer = Issuer{ - Credentials: issuerCredentialsFromGenerated(resp.Credentials), - Provider: resp.Provider, - ID: resp.ID, - } - - if resp.Attributes != nil { - cr.Issuer.CreatedOn = resp.Attributes.Created - cr.Issuer.Enabled = resp.Attributes.Enabled - cr.Issuer.UpdatedOn = resp.Attributes.Updated + return nil, err } - if resp.OrganizationDetails != nil { - cr.Issuer.OrganizationID = resp.OrganizationDetails.ID - var adminDetails []*AdministratorContact - if resp.OrganizationDetails.AdminDetails != nil { - adminDetails = make([]*AdministratorContact, len(resp.OrganizationDetails.AdminDetails)) - for idx, v := range resp.OrganizationDetails.AdminDetails { - adminDetails[idx] = &AdministratorContact{ - Email: v.EmailAddress, - FirstName: v.FirstName, - LastName: v.LastName, - Phone: v.Phone, - } - } - } - cr.Issuer.AdministratorContacts = adminDetails + reqQP := req.Raw().URL.Query() + if options != nil && options.MaxResults != nil { + reqQP.Set("maxresults", strconv.FormatInt(int64(*options.MaxResults), 10)) } - - _, _, name := shared.ParseID(resp.ID) - cr.Issuer.Name = name - return cr, nil -} - -// GetIssuerOptions contains optional parameters for Client.GetIssuer -type GetIssuerOptions struct { - // placeholder for future optional parameters. + reqQP.Set("api-version", "7.3") + req.Raw().URL.RawQuery = reqQP.Encode() + req.Raw().Header["Accept"] = []string{"application/json"} + return req, nil } -func (g *GetIssuerOptions) toGenerated() *generated.KeyVaultClientGetCertificateIssuerOptions { - return &generated.KeyVaultClientGetCertificateIssuerOptions{} +// listCertificateVersionsHandleResponse handles the ListCertificateVersions response. +func (client *Client) listCertificateVersionsHandleResponse(resp *http.Response) (ListCertificateVersionsResponse, error) { + result := ListCertificateVersionsResponse{} + if err := runtime.UnmarshalAsJSON(resp, &result.CertificateListResult); err != nil { + return ListCertificateVersionsResponse{}, err + } + return result, nil } -// GetIssuerResponse contains response fields for ClientGetIssuer -type GetIssuerResponse struct { - Issuer +// NewListCertificatesPager - The GetCertificates operation returns the set of certificates resources in the specified key +// vault. This operation requires the certificates/list permission. +// If the operation fails it returns an *azcore.ResponseError type. +// Generated from API version 7.3 +// options - ListCertificatesOptions contains the optional parameters for the Client.ListCertificates method. +func (client *Client) NewListCertificatesPager(options *ListCertificatesOptions) *runtime.Pager[ListCertificatesResponse] { + return runtime.NewPager(runtime.PagingHandler[ListCertificatesResponse]{ + More: func(page ListCertificatesResponse) bool { + return page.NextLink != nil && len(*page.NextLink) > 0 + }, + Fetcher: func(ctx context.Context, page *ListCertificatesResponse) (ListCertificatesResponse, error) { + var req *policy.Request + var err error + if page == nil { + req, err = client.listCertificatesCreateRequest(ctx, options) + } else { + req, err = runtime.NewRequest(ctx, http.MethodGet, *page.NextLink) + } + if err != nil { + return ListCertificatesResponse{}, err + } + resp, err := client.pl.Do(req) + if err != nil { + return ListCertificatesResponse{}, err + } + if !runtime.HasStatusCode(resp, http.StatusOK) { + return ListCertificatesResponse{}, runtime.NewResponseError(resp) + } + return client.listCertificatesHandleResponse(resp) + }, + }) } -// GetIssuer returns the specified certificate issuer resources in the specified key vault. This operation -// requires the certificates/manageissuers/getissuers permission. -func (c *Client) GetIssuer(ctx context.Context, issuerName string, options *GetIssuerOptions) (GetIssuerResponse, error) { - resp, err := c.genClient.GetCertificateIssuer(ctx, c.vaultURL, issuerName, options.toGenerated()) +// listCertificatesCreateRequest creates the ListCertificates request. +func (client *Client) listCertificatesCreateRequest(ctx context.Context, options *ListCertificatesOptions) (*policy.Request, error) { + urlPath := "/certificates" + req, err := runtime.NewRequest(ctx, http.MethodGet, runtime.JoinPaths(client.endpoint, urlPath)) if err != nil { - return GetIssuerResponse{}, err - } - - g := GetIssuerResponse{} - g.Issuer = Issuer{ - ID: resp.ID, - Provider: resp.Provider, - Credentials: issuerCredentialsFromGenerated(resp.Credentials), + return nil, err } - - if resp.Attributes != nil { - g.Issuer.CreatedOn = resp.Attributes.Created - g.Issuer.Enabled = resp.Attributes.Enabled - g.Issuer.UpdatedOn = resp.Attributes.Updated + reqQP := req.Raw().URL.Query() + if options != nil && options.MaxResults != nil { + reqQP.Set("maxresults", strconv.FormatInt(int64(*options.MaxResults), 10)) } - if resp.OrganizationDetails != nil { - g.Issuer.OrganizationID = resp.OrganizationDetails.ID - var adminDetails []*AdministratorContact - if resp.OrganizationDetails.AdminDetails != nil { - adminDetails = make([]*AdministratorContact, len(resp.OrganizationDetails.AdminDetails)) - for idx, v := range resp.OrganizationDetails.AdminDetails { - adminDetails[idx] = &AdministratorContact{ - Email: v.EmailAddress, - FirstName: v.FirstName, - LastName: v.LastName, - Phone: v.Phone, - } - } - } - g.Issuer.AdministratorContacts = adminDetails + if options != nil && options.IncludePending != nil { + reqQP.Set("includePending", strconv.FormatBool(*options.IncludePending)) } - - _, _, name := shared.ParseID(resp.ID) - g.Issuer.Name = name - return g, nil -} - -// ListPropertiesOfIssuersOptions contains optional parameters for Client.ListIssuers -type ListPropertiesOfIssuersOptions struct { - // placeholder for future optional parameters -} - -// ListPropertiesOfIssuersResponse contains response fields for ListPropertiesOfIssuersPager.NextPage -type ListPropertiesOfIssuersResponse struct { - // READ-ONLY; A response message containing a list of certificates in the key vault along with a link to the next page of certificates. - Issuers []*IssuerItem - - // NextLink is the next link of pages to fetch - NextLink *string + reqQP.Set("api-version", "7.3") + req.Raw().URL.RawQuery = reqQP.Encode() + req.Raw().Header["Accept"] = []string{"application/json"} + return req, nil } -// convert internal Response to ListPropertiesOfIssuersPage -func listIssuersPageFromGenerated(i generated.KeyVaultClientGetCertificateIssuersResponse) ListPropertiesOfIssuersResponse { - var vals []*IssuerItem - - for _, v := range i.Value { - vals = append(vals, certificateIssuerItemFromGenerated(v)) +// listCertificatesHandleResponse handles the ListCertificates response. +func (client *Client) listCertificatesHandleResponse(resp *http.Response) (ListCertificatesResponse, error) { + result := ListCertificatesResponse{} + if err := runtime.UnmarshalAsJSON(resp, &result.CertificateListResult); err != nil { + return ListCertificatesResponse{}, err } - - return ListPropertiesOfIssuersResponse{Issuers: vals, NextLink: i.NextLink} + return result, nil } -// NewListPropertiesOfIssuersPager returns a pager that can be used to get the set of certificate issuer resources in the specified key vault. This operation -// requires the certificates/manageissuers/getissuers permission. -func (c *Client) NewListPropertiesOfIssuersPager(options *ListPropertiesOfIssuersOptions) *runtime.Pager[ListPropertiesOfIssuersResponse] { - pager := c.genClient.NewGetCertificateIssuersPager(c.vaultURL, nil) - return runtime.NewPager(runtime.PagingHandler[ListPropertiesOfIssuersResponse]{ - More: func(page ListPropertiesOfIssuersResponse) bool { - return pager.More() +// NewListDeletedCertificatesPager - The GetDeletedCertificates operation retrieves the certificates in the current vault +// which are in a deleted state and ready for recovery or purging. This operation includes deletion-specific +// information. This operation requires the certificates/get/list permission. This operation can only be enabled on soft-delete +// enabled vaults. +// If the operation fails it returns an *azcore.ResponseError type. +// Generated from API version 7.3 +// options - ListDeletedCertificatesOptions contains the optional parameters for the Client.ListDeletedCertificates +// method. +func (client *Client) NewListDeletedCertificatesPager(options *ListDeletedCertificatesOptions) *runtime.Pager[ListDeletedCertificatesResponse] { + return runtime.NewPager(runtime.PagingHandler[ListDeletedCertificatesResponse]{ + More: func(page ListDeletedCertificatesResponse) bool { + return page.NextLink != nil && len(*page.NextLink) > 0 }, - Fetcher: func(ctx context.Context, cur *ListPropertiesOfIssuersResponse) (ListPropertiesOfIssuersResponse, error) { - page, err := pager.NextPage(ctx) + Fetcher: func(ctx context.Context, page *ListDeletedCertificatesResponse) (ListDeletedCertificatesResponse, error) { + var req *policy.Request + var err error + if page == nil { + req, err = client.listDeletedCertificatesCreateRequest(ctx, options) + } else { + req, err = runtime.NewRequest(ctx, http.MethodGet, *page.NextLink) + } if err != nil { - return ListPropertiesOfIssuersResponse{}, err + return ListDeletedCertificatesResponse{}, err } - return listIssuersPageFromGenerated(page), nil + resp, err := client.pl.Do(req) + if err != nil { + return ListDeletedCertificatesResponse{}, err + } + if !runtime.HasStatusCode(resp, http.StatusOK) { + return ListDeletedCertificatesResponse{}, runtime.NewResponseError(resp) + } + return client.listDeletedCertificatesHandleResponse(resp) }, }) } -// DeleteIssuerOptions contains optional parameters for Client.DeleteIssuer -type DeleteIssuerOptions struct { - // placeholder for future optional parameters. -} - -func (d *DeleteIssuerOptions) toGenerated() *generated.KeyVaultClientDeleteCertificateIssuerOptions { - return &generated.KeyVaultClientDeleteCertificateIssuerOptions{} +// listDeletedCertificatesCreateRequest creates the ListDeletedCertificates request. +func (client *Client) listDeletedCertificatesCreateRequest(ctx context.Context, options *ListDeletedCertificatesOptions) (*policy.Request, error) { + urlPath := "/deletedcertificates" + req, err := runtime.NewRequest(ctx, http.MethodGet, runtime.JoinPaths(client.endpoint, urlPath)) + if err != nil { + return nil, err + } + reqQP := req.Raw().URL.Query() + if options != nil && options.MaxResults != nil { + reqQP.Set("maxresults", strconv.FormatInt(int64(*options.MaxResults), 10)) + } + if options != nil && options.IncludePending != nil { + reqQP.Set("includePending", strconv.FormatBool(*options.IncludePending)) + } + reqQP.Set("api-version", "7.3") + req.Raw().URL.RawQuery = reqQP.Encode() + req.Raw().Header["Accept"] = []string{"application/json"} + return req, nil } -// DeleteIssuerResponse contains response fields for Client.DeleteIssuer -type DeleteIssuerResponse struct { - Issuer +// listDeletedCertificatesHandleResponse handles the ListDeletedCertificates response. +func (client *Client) listDeletedCertificatesHandleResponse(resp *http.Response) (ListDeletedCertificatesResponse, error) { + result := ListDeletedCertificatesResponse{} + if err := runtime.UnmarshalAsJSON(resp, &result.DeletedCertificateListResult); err != nil { + return ListDeletedCertificatesResponse{}, err + } + return result, nil } -// DeleteIssuer permanently removes the specified certificate issuer from the vault. This operation requires the certificates/manageissuers/deleteissuers permission. -func (c *Client) DeleteIssuer(ctx context.Context, issuerName string, options *DeleteIssuerOptions) (DeleteIssuerResponse, error) { - resp, err := c.genClient.DeleteCertificateIssuer(ctx, c.vaultURL, issuerName, options.toGenerated()) +// MergeCertificate - The MergeCertificate operation performs the merging of a certificate or certificate chain with a key +// pair currently available in the service. This operation requires the certificates/create +// permission. +// If the operation fails it returns an *azcore.ResponseError type. +// Generated from API version 7.3 +// certificateName - The name of the certificate. +// parameters - The parameters to merge certificate. +// options - MergeCertificateOptions contains the optional parameters for the Client.MergeCertificate method. +func (client *Client) MergeCertificate(ctx context.Context, certificateName string, parameters MergeCertificateParameters, options *MergeCertificateOptions) (MergeCertificateResponse, error) { + req, err := client.mergeCertificateCreateRequest(ctx, certificateName, parameters, options) if err != nil { - return DeleteIssuerResponse{}, err + return MergeCertificateResponse{}, err } - - d := DeleteIssuerResponse{} - d.Issuer = Issuer{ - ID: resp.ID, - Provider: resp.Provider, - Credentials: issuerCredentialsFromGenerated(resp.Credentials), + resp, err := client.pl.Do(req) + if err != nil { + return MergeCertificateResponse{}, err + } + if !runtime.HasStatusCode(resp, http.StatusCreated) { + return MergeCertificateResponse{}, runtime.NewResponseError(resp) } + return client.mergeCertificateHandleResponse(resp) +} - if resp.Attributes != nil { - d.Issuer.CreatedOn = resp.Attributes.Created - d.Issuer.Enabled = resp.Attributes.Enabled - d.Issuer.UpdatedOn = resp.Attributes.Updated +// mergeCertificateCreateRequest creates the MergeCertificate request. +func (client *Client) mergeCertificateCreateRequest(ctx context.Context, certificateName string, parameters MergeCertificateParameters, options *MergeCertificateOptions) (*policy.Request, error) { + urlPath := "/certificates/{certificate-name}/pending/merge" + if certificateName == "" { + return nil, errors.New("parameter certificateName cannot be empty") } - if resp.OrganizationDetails != nil { - d.Issuer.OrganizationID = resp.OrganizationDetails.ID - var adminDetails []*AdministratorContact - if resp.OrganizationDetails.AdminDetails != nil { - adminDetails = make([]*AdministratorContact, len(resp.OrganizationDetails.AdminDetails)) - for idx, v := range resp.OrganizationDetails.AdminDetails { - adminDetails[idx] = &AdministratorContact{ - Email: v.EmailAddress, - FirstName: v.FirstName, - LastName: v.LastName, - Phone: v.Phone, - } - } - } - d.Issuer.AdministratorContacts = adminDetails + urlPath = strings.ReplaceAll(urlPath, "{certificate-name}", url.PathEscape(certificateName)) + req, err := runtime.NewRequest(ctx, http.MethodPost, runtime.JoinPaths(client.endpoint, urlPath)) + if err != nil { + return nil, err } - - _, _, name := shared.ParseID(resp.ID) - d.Issuer.Name = name - return d, nil + reqQP := req.Raw().URL.Query() + reqQP.Set("api-version", "7.3") + req.Raw().URL.RawQuery = reqQP.Encode() + req.Raw().Header["Accept"] = []string{"application/json"} + return req, runtime.MarshalAsJSON(req, parameters) } -// UpdateIssuerOptions contains optional parameters for Client.UpdateIssuer -type UpdateIssuerOptions struct { - // placeholder for future optional parameters +// mergeCertificateHandleResponse handles the MergeCertificate response. +func (client *Client) mergeCertificateHandleResponse(resp *http.Response) (MergeCertificateResponse, error) { + result := MergeCertificateResponse{} + if err := runtime.UnmarshalAsJSON(resp, &result.CertificateBundle); err != nil { + return MergeCertificateResponse{}, err + } + return result, nil } -func (i *Issuer) toUpdateParameters() generated.CertificateIssuerUpdateParameters { - if i == nil { - return generated.CertificateIssuerUpdateParameters{} - } - var attrib *generated.IssuerAttributes - if i.Enabled != nil { - attrib = &generated.IssuerAttributes{Enabled: i.Enabled} +// PurgeDeletedCertificate - The PurgeDeletedCertificate operation performs an irreversible deletion of the specified certificate, +// without possibility for recovery. The operation is not available if the recovery level does not +// specify 'Purgeable'. This operation requires the certificate/purge permission. +// If the operation fails it returns an *azcore.ResponseError type. +// Generated from API version 7.3 +// certificateName - The name of the certificate +// options - PurgeDeletedCertificateOptions contains the optional parameters for the Client.PurgeDeletedCertificate +// method. +func (client *Client) PurgeDeletedCertificate(ctx context.Context, certificateName string, options *PurgeDeletedCertificateOptions) (PurgeDeletedCertificateResponse, error) { + req, err := client.purgeDeletedCertificateCreateRequest(ctx, certificateName, options) + if err != nil { + return PurgeDeletedCertificateResponse{}, err } - - var orgDetail *generated.OrganizationDetails - if i.OrganizationID != nil || i.AdministratorContacts != nil { - orgDetail = &generated.OrganizationDetails{} - if i.OrganizationID != nil { - orgDetail.ID = i.OrganizationID - } - - if i.AdministratorContacts != nil { - a := make([]*generated.AdministratorDetails, len(i.AdministratorContacts)) - for idx, v := range i.AdministratorContacts { - a[idx] = &generated.AdministratorDetails{ - EmailAddress: v.Email, - FirstName: v.FirstName, - LastName: v.LastName, - Phone: v.Phone, - } - } - - orgDetail.AdminDetails = a - } + resp, err := client.pl.Do(req) + if err != nil { + return PurgeDeletedCertificateResponse{}, err } - - return generated.CertificateIssuerUpdateParameters{ - Attributes: attrib, - Credentials: i.Credentials.toGenerated(), - OrganizationDetails: orgDetail, - Provider: i.Provider, + if !runtime.HasStatusCode(resp, http.StatusNoContent) { + return PurgeDeletedCertificateResponse{}, runtime.NewResponseError(resp) } + return PurgeDeletedCertificateResponse{}, nil } -// UpdateIssuerResponse contains response fields for Client.UpdateIssuer -type UpdateIssuerResponse struct { - Issuer -} - -// UpdateIssuer performs an update on the specified certificate issuer entity. This operation requires -// the certificates/setissuers permission. -func (c *Client) UpdateIssuer(ctx context.Context, certificateIssuer Issuer, options *UpdateIssuerOptions) (UpdateIssuerResponse, error) { - resp, err := c.genClient.UpdateCertificateIssuer( - ctx, - c.vaultURL, - *certificateIssuer.Name, - certificateIssuer.toUpdateParameters(), - &generated.KeyVaultClientUpdateCertificateIssuerOptions{}, - ) +// purgeDeletedCertificateCreateRequest creates the PurgeDeletedCertificate request. +func (client *Client) purgeDeletedCertificateCreateRequest(ctx context.Context, certificateName string, options *PurgeDeletedCertificateOptions) (*policy.Request, error) { + urlPath := "/deletedcertificates/{certificate-name}" + if certificateName == "" { + return nil, errors.New("parameter certificateName cannot be empty") + } + urlPath = strings.ReplaceAll(urlPath, "{certificate-name}", url.PathEscape(certificateName)) + req, err := runtime.NewRequest(ctx, http.MethodDelete, runtime.JoinPaths(client.endpoint, urlPath)) if err != nil { - return UpdateIssuerResponse{}, err + return nil, err } - - u := UpdateIssuerResponse{} - u.Issuer = Issuer{ - ID: resp.ID, - Provider: resp.Provider, - Credentials: issuerCredentialsFromGenerated(resp.Credentials), + reqQP := req.Raw().URL.Query() + reqQP.Set("api-version", "7.3") + req.Raw().URL.RawQuery = reqQP.Encode() + req.Raw().Header["Accept"] = []string{"application/json"} + return req, nil +} + +// RecoverDeletedCertificate - The RecoverDeletedCertificate operation performs the reversal of the Delete operation. The +// operation is applicable in vaults enabled for soft-delete, and must be issued during the retention interval +// (available in the deleted certificate's attributes). This operation requires the certificates/recover permission. +// If the operation fails it returns an *azcore.ResponseError type. +// Generated from API version 7.3 +// certificateName - The name of the deleted certificate +// options - RecoverDeletedCertificateOptions contains the optional parameters for the Client.RecoverDeletedCertificate +// method. +func (client *Client) RecoverDeletedCertificate(ctx context.Context, certificateName string, options *RecoverDeletedCertificateOptions) (RecoverDeletedCertificateResponse, error) { + req, err := client.recoverDeletedCertificateCreateRequest(ctx, certificateName, options) + if err != nil { + return RecoverDeletedCertificateResponse{}, err } - - if resp.Attributes != nil { - u.Issuer.CreatedOn = resp.Attributes.Created - u.Issuer.Enabled = resp.Attributes.Enabled - u.Issuer.UpdatedOn = resp.Attributes.Updated + resp, err := client.pl.Do(req) + if err != nil { + return RecoverDeletedCertificateResponse{}, err } - if resp.OrganizationDetails != nil { - u.Issuer.OrganizationID = resp.OrganizationDetails.ID - var adminDetails []*AdministratorContact - if resp.OrganizationDetails.AdminDetails != nil { - adminDetails = make([]*AdministratorContact, len(resp.OrganizationDetails.AdminDetails)) - for idx, v := range resp.OrganizationDetails.AdminDetails { - adminDetails[idx] = &AdministratorContact{ - Email: v.EmailAddress, - FirstName: v.FirstName, - LastName: v.LastName, - Phone: v.Phone, - } - } - } - u.Issuer.AdministratorContacts = adminDetails + if !runtime.HasStatusCode(resp, http.StatusOK) { + return RecoverDeletedCertificateResponse{}, runtime.NewResponseError(resp) } - _, _, name := shared.ParseID(resp.ID) - u.Issuer.Name = name - return u, nil -} - -// SetContactsOptions contains optional parameters for Client.CreateContacts -type SetContactsOptions struct { - // placeholder for future optional parameters. -} - -func (s *SetContactsOptions) toGenerated() *generated.KeyVaultClientSetCertificateContactsOptions { - return &generated.KeyVaultClientSetCertificateContactsOptions{} -} - -// SetContactsResponse contains response fields for Client.CreateContacts -type SetContactsResponse struct { - Contacts + return client.recoverDeletedCertificateHandleResponse(resp) } -// SetContacts sets the certificate contacts for the specified key vault. This operation requires the certificates/managecontacts permission. -func (c *Client) SetContacts(ctx context.Context, contacts []*Contact, options *SetContactsOptions) (SetContactsResponse, error) { - contactList := Contacts{ContactList: contacts} - resp, err := c.genClient.SetCertificateContacts( - ctx, - c.vaultURL, - contactList.toGenerated(), - options.toGenerated(), - ) - +// recoverDeletedCertificateCreateRequest creates the RecoverDeletedCertificate request. +func (client *Client) recoverDeletedCertificateCreateRequest(ctx context.Context, certificateName string, options *RecoverDeletedCertificateOptions) (*policy.Request, error) { + urlPath := "/deletedcertificates/{certificate-name}/recover" + if certificateName == "" { + return nil, errors.New("parameter certificateName cannot be empty") + } + urlPath = strings.ReplaceAll(urlPath, "{certificate-name}", url.PathEscape(certificateName)) + req, err := runtime.NewRequest(ctx, http.MethodPost, runtime.JoinPaths(client.endpoint, urlPath)) if err != nil { - return SetContactsResponse{}, err + return nil, err } - - return SetContactsResponse{ - Contacts: Contacts{ - ID: resp.ID, - ContactList: contactListFromGenerated(resp.ContactList), - }, - }, nil + reqQP := req.Raw().URL.Query() + reqQP.Set("api-version", "7.3") + req.Raw().URL.RawQuery = reqQP.Encode() + req.Raw().Header["Accept"] = []string{"application/json"} + return req, nil } -// GetContactsOptions contains optional parameters for Client.GetContacts -type GetContactsOptions struct { - // placeholder for future optional parameters. -} - -func (g *GetContactsOptions) toGenerated() *generated.KeyVaultClientGetCertificateContactsOptions { - return &generated.KeyVaultClientGetCertificateContactsOptions{} -} - -// GetContactsResponse contains response fields for Client.GetContacts -type GetContactsResponse struct { - Contacts +// recoverDeletedCertificateHandleResponse handles the RecoverDeletedCertificate response. +func (client *Client) recoverDeletedCertificateHandleResponse(resp *http.Response) (RecoverDeletedCertificateResponse, error) { + result := RecoverDeletedCertificateResponse{} + if err := runtime.UnmarshalAsJSON(resp, &result.CertificateBundle); err != nil { + return RecoverDeletedCertificateResponse{}, err + } + return result, nil } -// GetContacts returns the set of certificate contact resources in the specified key vault. This operation -// requires the certificates/managecontacts permission. -func (c *Client) GetContacts(ctx context.Context, options *GetContactsOptions) (GetContactsResponse, error) { - resp, err := c.genClient.GetCertificateContacts(ctx, c.vaultURL, options.toGenerated()) +// RestoreCertificate - Restores a backed up certificate, and all its versions, to a vault. This operation requires the certificates/restore +// permission. +// If the operation fails it returns an *azcore.ResponseError type. +// Generated from API version 7.3 +// parameters - The parameters to restore the certificate. +// options - RestoreCertificateOptions contains the optional parameters for the Client.RestoreCertificate method. +func (client *Client) RestoreCertificate(ctx context.Context, parameters RestoreCertificateParameters, options *RestoreCertificateOptions) (RestoreCertificateResponse, error) { + req, err := client.restoreCertificateCreateRequest(ctx, parameters, options) if err != nil { - return GetContactsResponse{}, err + return RestoreCertificateResponse{}, err } - - return GetContactsResponse{ - Contacts: Contacts{ - ID: resp.ID, - ContactList: contactListFromGenerated(resp.ContactList), - }, - }, nil -} - -// DeleteContactsOptions contains optional parameters for Client.DeleteContacts -type DeleteContactsOptions struct { - // placeholder for future optional parameters. -} - -func (d *DeleteContactsOptions) toGenerated() *generated.KeyVaultClientDeleteCertificateContactsOptions { - return &generated.KeyVaultClientDeleteCertificateContactsOptions{} -} - -// DeleteContactsResponse contains response field for Client.DeleteContacts -type DeleteContactsResponse struct { - Contacts -} - -// DeleteContacts deletes the certificate contacts for a specified key vault certificate. This operation requires the certificates/managecontacts permission. -func (c *Client) DeleteContacts(ctx context.Context, options *DeleteContactsOptions) (DeleteContactsResponse, error) { - resp, err := c.genClient.DeleteCertificateContacts(ctx, c.vaultURL, options.toGenerated()) + resp, err := client.pl.Do(req) if err != nil { - return DeleteContactsResponse{}, err + return RestoreCertificateResponse{}, err } - - return DeleteContactsResponse{ - Contacts: Contacts{ - ContactList: contactListFromGenerated(resp.ContactList), - ID: resp.ID, - }, - }, nil -} - -// UpdateCertificatePolicyOptions contains optional parameters for Client.UpdateCertificatePolicy -type UpdateCertificatePolicyOptions struct { - // placeholder for future optional parameters. -} - -func (u *UpdateCertificatePolicyOptions) toGenerated() *generated.KeyVaultClientUpdateCertificatePolicyOptions { - return &generated.KeyVaultClientUpdateCertificatePolicyOptions{} -} - -// UpdateCertificatePolicyResponse contains response fields for Client.UpdateCertificatePolicy -type UpdateCertificatePolicyResponse struct { - Policy + if !runtime.HasStatusCode(resp, http.StatusOK) { + return RestoreCertificateResponse{}, runtime.NewResponseError(resp) + } + return client.restoreCertificateHandleResponse(resp) } -// UpdateCertificatePolicy sets specified members in the certificate policy, leave others as null. This operation requires the certificates/update permission. -func (c *Client) UpdateCertificatePolicy(ctx context.Context, certificateName string, policy Policy, options *UpdateCertificatePolicyOptions) (UpdateCertificatePolicyResponse, error) { - resp, err := c.genClient.UpdateCertificatePolicy( - ctx, - c.vaultURL, - certificateName, - *policy.toGeneratedCertificateCreateParameters(), - options.toGenerated(), - ) - +// restoreCertificateCreateRequest creates the RestoreCertificate request. +func (client *Client) restoreCertificateCreateRequest(ctx context.Context, parameters RestoreCertificateParameters, options *RestoreCertificateOptions) (*policy.Request, error) { + urlPath := "/certificates/restore" + req, err := runtime.NewRequest(ctx, http.MethodPost, runtime.JoinPaths(client.endpoint, urlPath)) if err != nil { - return UpdateCertificatePolicyResponse{}, err + return nil, err } - - return UpdateCertificatePolicyResponse{ - Policy: *certificatePolicyFromGenerated(&resp.CertificatePolicy), - }, nil + reqQP := req.Raw().URL.Query() + reqQP.Set("api-version", "7.3") + req.Raw().URL.RawQuery = reqQP.Encode() + req.Raw().Header["Accept"] = []string{"application/json"} + return req, runtime.MarshalAsJSON(req, parameters) } -// GetCertificatePolicyOptions contains optional parameters for Client.GetCertificatePolicy -type GetCertificatePolicyOptions struct { - // placeholder for future optional parameters. -} - -func (g *GetCertificatePolicyOptions) toGenerated() *generated.KeyVaultClientGetCertificatePolicyOptions { - return &generated.KeyVaultClientGetCertificatePolicyOptions{} -} - -// GetCertificatePolicyResponse contains response fields for Client.GetCertificatePolicy -type GetCertificatePolicyResponse struct { - Policy +// restoreCertificateHandleResponse handles the RestoreCertificate response. +func (client *Client) restoreCertificateHandleResponse(resp *http.Response) (RestoreCertificateResponse, error) { + result := RestoreCertificateResponse{} + if err := runtime.UnmarshalAsJSON(resp, &result.CertificateBundle); err != nil { + return RestoreCertificateResponse{}, err + } + return result, nil } -// GetCertificatePolicy returns the specified certificate policy resources in the specified key vault. This operation requires the certificates/get permission. -func (c *Client) GetCertificatePolicy(ctx context.Context, certificateName string, options *GetCertificatePolicyOptions) (GetCertificatePolicyResponse, error) { - resp, err := c.genClient.GetCertificatePolicy( - ctx, - c.vaultURL, - certificateName, - options.toGenerated(), - ) +// SetCertificateContacts - Sets the certificate contacts for the specified key vault. This operation requires the certificates/managecontacts +// permission. +// If the operation fails it returns an *azcore.ResponseError type. +// Generated from API version 7.3 +// contacts - The contacts for the key vault certificate. +// options - SetCertificateContactsOptions contains the optional parameters for the Client.SetCertificateContacts method. +func (client *Client) SetCertificateContacts(ctx context.Context, contacts Contacts, options *SetCertificateContactsOptions) (SetCertificateContactsResponse, error) { + req, err := client.setCertificateContactsCreateRequest(ctx, contacts, options) if err != nil { - return GetCertificatePolicyResponse{}, err + return SetCertificateContactsResponse{}, err } - - return GetCertificatePolicyResponse{ - Policy: *certificatePolicyFromGenerated(&resp.CertificatePolicy), - }, nil + resp, err := client.pl.Do(req) + if err != nil { + return SetCertificateContactsResponse{}, err + } + if !runtime.HasStatusCode(resp, http.StatusOK) { + return SetCertificateContactsResponse{}, runtime.NewResponseError(resp) + } + return client.setCertificateContactsHandleResponse(resp) } -// UpdateCertificatePropertiesOptions contains optional parameters for Client.UpdateCertificateProperties -type UpdateCertificatePropertiesOptions struct { - // placeholder for future optional parameters - +// setCertificateContactsCreateRequest creates the SetCertificateContacts request. +func (client *Client) setCertificateContactsCreateRequest(ctx context.Context, contacts Contacts, options *SetCertificateContactsOptions) (*policy.Request, error) { + urlPath := "/certificates/contacts" + req, err := runtime.NewRequest(ctx, http.MethodPut, runtime.JoinPaths(client.endpoint, urlPath)) + if err != nil { + return nil, err + } + reqQP := req.Raw().URL.Query() + reqQP.Set("api-version", "7.3") + req.Raw().URL.RawQuery = reqQP.Encode() + req.Raw().Header["Accept"] = []string{"application/json"} + return req, runtime.MarshalAsJSON(req, contacts) } -// UpdateCertificatePropertiesResponse contains response fields for Client.UpdateCertificateProperties -type UpdateCertificatePropertiesResponse struct { - Certificate +// setCertificateContactsHandleResponse handles the SetCertificateContacts response. +func (client *Client) setCertificateContactsHandleResponse(resp *http.Response) (SetCertificateContactsResponse, error) { + result := SetCertificateContactsResponse{} + if err := runtime.UnmarshalAsJSON(resp, &result.Contacts); err != nil { + return SetCertificateContactsResponse{}, err + } + return result, nil } -// UpdateCertificateProperties applies the specified update on the given certificate; the only elements updated are the certificate's -// attributes. This operation requires the certificates/update permission. -func (c *Client) UpdateCertificateProperties(ctx context.Context, properties Properties, options *UpdateCertificatePropertiesOptions) (UpdateCertificatePropertiesResponse, error) { - name, version := "", "" - if properties.Name != nil { - name = *properties.Name - } - if properties.Version != nil { - version = *properties.Version +// SetCertificateIssuer - The SetCertificateIssuer operation adds or updates the specified certificate issuer. This operation +// requires the certificates/setissuers permission. +// If the operation fails it returns an *azcore.ResponseError type. +// Generated from API version 7.3 +// issuerName - The name of the issuer. +// parameter - Certificate issuer set parameter. +// options - SetCertificateIssuerOptions contains the optional parameters for the Client.SetCertificateIssuer method. +func (client *Client) SetCertificateIssuer(ctx context.Context, issuerName string, parameter SetCertificateIssuerParameters, options *SetCertificateIssuerOptions) (SetCertificateIssuerResponse, error) { + req, err := client.setCertificateIssuerCreateRequest(ctx, issuerName, parameter, options) + if err != nil { + return SetCertificateIssuerResponse{}, err } - resp, err := c.genClient.UpdateCertificate( - ctx, - c.vaultURL, - name, - version, - generated.CertificateUpdateParameters{ - CertificateAttributes: properties.toGenerated(), - Tags: properties.Tags, - }, - nil, - ) + resp, err := client.pl.Do(req) if err != nil { - return UpdateCertificatePropertiesResponse{}, err + return SetCertificateIssuerResponse{}, err } - return UpdateCertificatePropertiesResponse{ - Certificate: certificateFromGenerated(&resp.CertificateBundle), - }, nil -} - -// MergeCertificateOptions contains optional parameters for Client.MergeCertificate -type MergeCertificateOptions struct { - // The attributes of the certificate (optional). - Properties *Properties -} - -func (m *MergeCertificateOptions) toGenerated() *generated.KeyVaultClientMergeCertificateOptions { - return &generated.KeyVaultClientMergeCertificateOptions{} -} - -// MergeCertificateResponse contains response fields for Client.MergeCertificate -type MergeCertificateResponse struct { - CertificateWithPolicy + if !runtime.HasStatusCode(resp, http.StatusOK) { + return SetCertificateIssuerResponse{}, runtime.NewResponseError(resp) + } + return client.setCertificateIssuerHandleResponse(resp) } -// MergeCertificate operation performs the merging of a certificate or certificate chain with a key pair currently available in the service. This operation requires the certificates/create permission. -func (c *Client) MergeCertificate(ctx context.Context, certificateName string, certificates [][]byte, options *MergeCertificateOptions) (MergeCertificateResponse, error) { - if options == nil { - options = &MergeCertificateOptions{} +// setCertificateIssuerCreateRequest creates the SetCertificateIssuer request. +func (client *Client) setCertificateIssuerCreateRequest(ctx context.Context, issuerName string, parameter SetCertificateIssuerParameters, options *SetCertificateIssuerOptions) (*policy.Request, error) { + urlPath := "/certificates/issuers/{issuer-name}" + if issuerName == "" { + return nil, errors.New("parameter issuerName cannot be empty") } - var tags map[string]*string - if options.Properties != nil && options.Properties.Tags != nil { - tags = options.Properties.Tags + urlPath = strings.ReplaceAll(urlPath, "{issuer-name}", url.PathEscape(issuerName)) + req, err := runtime.NewRequest(ctx, http.MethodPut, runtime.JoinPaths(client.endpoint, urlPath)) + if err != nil { + return nil, err } - resp, err := c.genClient.MergeCertificate( - ctx, c.vaultURL, - certificateName, - generated.CertificateMergeParameters{ - X509Certificates: certificates, - CertificateAttributes: options.Properties.toGenerated(), - Tags: tags, - }, - options.toGenerated(), - ) + reqQP := req.Raw().URL.Query() + reqQP.Set("api-version", "7.3") + req.Raw().URL.RawQuery = reqQP.Encode() + req.Raw().Header["Accept"] = []string{"application/json"} + return req, runtime.MarshalAsJSON(req, parameter) +} + +// setCertificateIssuerHandleResponse handles the SetCertificateIssuer response. +func (client *Client) setCertificateIssuerHandleResponse(resp *http.Response) (SetCertificateIssuerResponse, error) { + result := SetCertificateIssuerResponse{} + if err := runtime.UnmarshalAsJSON(resp, &result.IssuerBundle); err != nil { + return SetCertificateIssuerResponse{}, err + } + return result, nil +} + +// UpdateCertificate - The UpdateCertificate operation applies the specified update on the given certificate; the only elements +// updated are the certificate's attributes. This operation requires the certificates/update +// permission. +// If the operation fails it returns an *azcore.ResponseError type. +// Generated from API version 7.3 +// certificateName - The name of the certificate in the given key vault. +// certificateVersion - The version of the certificate. +// parameters - The parameters for certificate update. +// options - UpdateCertificateOptions contains the optional parameters for the Client.UpdateCertificate method. +func (client *Client) UpdateCertificate(ctx context.Context, certificateName string, certificateVersion string, parameters UpdateCertificateParameters, options *UpdateCertificateOptions) (UpdateCertificateResponse, error) { + req, err := client.updateCertificateCreateRequest(ctx, certificateName, certificateVersion, parameters, options) if err != nil { - return MergeCertificateResponse{}, err + return UpdateCertificateResponse{}, err } - - return MergeCertificateResponse{ - CertificateWithPolicy: CertificateWithPolicy{ - Properties: propertiesFromGenerated(resp.Attributes, resp.Tags, resp.ID, resp.X509Thumbprint), - CER: resp.Cer, - ContentType: resp.ContentType, - ID: resp.ID, - KeyID: resp.Kid, - SecretID: resp.Sid, - Policy: certificatePolicyFromGenerated(resp.Policy), - }, - }, nil -} - -// RestoreCertificateBackupOptions contains optional parameters for Client.RestoreCertificateBackup -type RestoreCertificateBackupOptions struct { - // placeholder for future optional parameters. -} - -func (r *RestoreCertificateBackupOptions) toGenerated() *generated.KeyVaultClientRestoreCertificateOptions { - return &generated.KeyVaultClientRestoreCertificateOptions{} -} - -// RestoreCertificateBackupResponse contains response fields for Client.RestoreCertificateBackup -type RestoreCertificateBackupResponse struct { - CertificateWithPolicy -} - -// RestoreCertificateBackup performs the reversal of the Delete operation. The operation is applicable in vaults -// enabled for soft-delete, and must be issued during the retention interval (available in the deleted certificate's attributes). -// This operation requires the certificates/recover permission. -func (c *Client) RestoreCertificateBackup(ctx context.Context, certificateBackup []byte, options *RestoreCertificateBackupOptions) (RestoreCertificateBackupResponse, error) { - resp, err := c.genClient.RestoreCertificate( - ctx, - c.vaultURL, - generated.CertificateRestoreParameters{CertificateBundleBackup: certificateBackup}, - options.toGenerated(), - ) + resp, err := client.pl.Do(req) if err != nil { - return RestoreCertificateBackupResponse{}, err + return UpdateCertificateResponse{}, err } - - return RestoreCertificateBackupResponse{ - CertificateWithPolicy: CertificateWithPolicy{ - Properties: propertiesFromGenerated(resp.Attributes, resp.Tags, resp.ID, resp.X509Thumbprint), - CER: resp.Cer, - ContentType: resp.ContentType, - ID: resp.ID, - KeyID: resp.Kid, - SecretID: resp.Sid, - Policy: certificatePolicyFromGenerated(resp.Policy), - }, - }, nil -} - -// BeginRecoverDeletedCertificateOptions contains optional parameters for Client.BeginRecoverDeletedCertificate -type BeginRecoverDeletedCertificateOptions struct { - // ResumeToken is a token for resuming long running operations from a previous call. - ResumeToken string -} - -func (b *BeginRecoverDeletedCertificateOptions) toGenerated() *generated.KeyVaultClientRecoverDeletedCertificateOptions { - return &generated.KeyVaultClientRecoverDeletedCertificateOptions{} + if !runtime.HasStatusCode(resp, http.StatusOK) { + return UpdateCertificateResponse{}, runtime.NewResponseError(resp) + } + return client.updateCertificateHandleResponse(resp) } -// RecoverDeletedCertificateResponse contains response fields for Client.RecoverDeletedCertificate -type RecoverDeletedCertificateResponse struct { - Certificate +// updateCertificateCreateRequest creates the UpdateCertificate request. +func (client *Client) updateCertificateCreateRequest(ctx context.Context, certificateName string, certificateVersion string, parameters UpdateCertificateParameters, options *UpdateCertificateOptions) (*policy.Request, error) { + urlPath := "/certificates/{certificate-name}/{certificate-version}" + if certificateName == "" { + return nil, errors.New("parameter certificateName cannot be empty") + } + urlPath = strings.ReplaceAll(urlPath, "{certificate-name}", url.PathEscape(certificateName)) + urlPath = strings.ReplaceAll(urlPath, "{certificate-version}", url.PathEscape(certificateVersion)) + req, err := runtime.NewRequest(ctx, http.MethodPatch, runtime.JoinPaths(client.endpoint, urlPath)) + if err != nil { + return nil, err + } + reqQP := req.Raw().URL.Query() + reqQP.Set("api-version", "7.3") + req.Raw().URL.RawQuery = reqQP.Encode() + req.Raw().Header["Accept"] = []string{"application/json"} + return req, runtime.MarshalAsJSON(req, parameters) } -// change recover deleted certificate reponse to the generated version. -func recoverDeletedCertificateResponseFromGenerated(i generated.KeyVaultClientRecoverDeletedCertificateResponse) RecoverDeletedCertificateResponse { - return RecoverDeletedCertificateResponse{ - Certificate: certificateFromGenerated(&i.CertificateBundle), +// updateCertificateHandleResponse handles the UpdateCertificate response. +func (client *Client) updateCertificateHandleResponse(resp *http.Response) (UpdateCertificateResponse, error) { + result := UpdateCertificateResponse{} + if err := runtime.UnmarshalAsJSON(resp, &result.CertificateBundle); err != nil { + return UpdateCertificateResponse{}, err } + return result, nil } -// BeginRecoverDeletedCertificate recovers the deleted certificate in the specified vault to the latest version. -// This operation can only be performed on a soft-delete enabled vault. This operation requires the certificates/recover permission. -func (c *Client) BeginRecoverDeletedCertificate(ctx context.Context, certificateName string, options *BeginRecoverDeletedCertificateOptions) (*runtime.Poller[RecoverDeletedCertificateResponse], error) { - if options == nil { - options = &BeginRecoverDeletedCertificateOptions{} +// UpdateCertificateIssuer - The UpdateCertificateIssuer operation performs an update on the specified certificate issuer +// entity. This operation requires the certificates/setissuers permission. +// If the operation fails it returns an *azcore.ResponseError type. +// Generated from API version 7.3 +// issuerName - The name of the issuer. +// parameter - Certificate issuer update parameter. +// options - UpdateCertificateIssuerOptions contains the optional parameters for the Client.UpdateCertificateIssuer +// method. +func (client *Client) UpdateCertificateIssuer(ctx context.Context, issuerName string, parameter UpdateCertificateIssuerParameters, options *UpdateCertificateIssuerOptions) (UpdateCertificateIssuerResponse, error) { + req, err := client.updateCertificateIssuerCreateRequest(ctx, issuerName, parameter, options) + if err != nil { + return UpdateCertificateIssuerResponse{}, err } - - handler := beginRecoverDeletedCertificate{ - poll: func(ctx context.Context) (*http.Response, error) { - req, err := c.genClient.GetCertificateCreateRequest(ctx, c.vaultURL, certificateName, "", nil) - if err != nil { - return nil, err - } - return c.genClient.Pipeline().Do(req) - }, + resp, err := client.pl.Do(req) + if err != nil { + return UpdateCertificateIssuerResponse{}, err } - - if options.ResumeToken != "" { - return runtime.NewPollerFromResumeToken(options.ResumeToken, c.genClient.Pipeline(), &runtime.NewPollerFromResumeTokenOptions[RecoverDeletedCertificateResponse]{ - Handler: &handler, - }) + if !runtime.HasStatusCode(resp, http.StatusOK) { + return UpdateCertificateIssuerResponse{}, runtime.NewResponseError(resp) } + return client.updateCertificateIssuerHandleResponse(resp) +} - var rawResp *http.Response - ctx = runtime.WithCaptureResponse(ctx, &rawResp) - if _, err := c.genClient.RecoverDeletedCertificate(ctx, c.vaultURL, certificateName, options.toGenerated()); err != nil { +// updateCertificateIssuerCreateRequest creates the UpdateCertificateIssuer request. +func (client *Client) updateCertificateIssuerCreateRequest(ctx context.Context, issuerName string, parameter UpdateCertificateIssuerParameters, options *UpdateCertificateIssuerOptions) (*policy.Request, error) { + urlPath := "/certificates/issuers/{issuer-name}" + if issuerName == "" { + return nil, errors.New("parameter issuerName cannot be empty") + } + urlPath = strings.ReplaceAll(urlPath, "{issuer-name}", url.PathEscape(issuerName)) + req, err := runtime.NewRequest(ctx, http.MethodPatch, runtime.JoinPaths(client.endpoint, urlPath)) + if err != nil { return nil, err } - - return runtime.NewPoller(rawResp, c.genClient.Pipeline(), &runtime.NewPollerOptions[RecoverDeletedCertificateResponse]{ - Handler: &handler, - }) + reqQP := req.Raw().URL.Query() + reqQP.Set("api-version", "7.3") + req.Raw().URL.RawQuery = reqQP.Encode() + req.Raw().Header["Accept"] = []string{"application/json"} + return req, runtime.MarshalAsJSON(req, parameter) } -// ListDeletedCertificatesResponse contains response field for ListDeletedCertificatesPager.NextPage -type ListDeletedCertificatesResponse struct { - // READ-ONLY; A response message containing a list of deleted certificates in the vault along with a link to the next page of deleted certificates - DeletedCertificates []*DeletedCertificateItem - - // NextLink gives the next page of items to fetch - NextLink *string +// updateCertificateIssuerHandleResponse handles the UpdateCertificateIssuer response. +func (client *Client) updateCertificateIssuerHandleResponse(resp *http.Response) (UpdateCertificateIssuerResponse, error) { + result := UpdateCertificateIssuerResponse{} + if err := runtime.UnmarshalAsJSON(resp, &result.IssuerBundle); err != nil { + return UpdateCertificateIssuerResponse{}, err + } + return result, nil } -func listDeletedCertsPageFromGenerated(g generated.KeyVaultClientGetDeletedCertificatesResponse) ListDeletedCertificatesResponse { - var certs []*DeletedCertificateItem - - if len(g.Value) > 0 { - certs = make([]*DeletedCertificateItem, len(g.Value)) - - for i, c := range g.Value { - _, name, _ := shared.ParseID(c.ID) - certs[i] = &DeletedCertificateItem{ - Properties: propertiesFromGenerated(c.Attributes, c.Tags, c.ID, c.X509Thumbprint), - ID: c.ID, - Name: name, - RecoveryID: c.RecoveryID, - DeletedOn: c.DeletedDate, - ScheduledPurgeDate: c.ScheduledPurgeDate, - } - } +// UpdateCertificateOperation - Updates a certificate creation operation that is already in progress. This operation requires +// the certificates/update permission. +// If the operation fails it returns an *azcore.ResponseError type. +// Generated from API version 7.3 +// certificateName - The name of the certificate. +// certificateOperation - The certificate operation response. +// options - UpdateCertificateOperationOptions contains the optional parameters for the Client.UpdateCertificateOperation +// method. +func (client *Client) UpdateCertificateOperation(ctx context.Context, certificateName string, certificateOperation UpdateCertificateOperationParameter, options *UpdateCertificateOperationOptions) (UpdateCertificateOperationResponse, error) { + req, err := client.updateCertificateOperationCreateRequest(ctx, certificateName, certificateOperation, options) + if err != nil { + return UpdateCertificateOperationResponse{}, err } - - return ListDeletedCertificatesResponse{ - DeletedCertificates: certs, - NextLink: g.NextLink, + resp, err := client.pl.Do(req) + if err != nil { + return UpdateCertificateOperationResponse{}, err } + if !runtime.HasStatusCode(resp, http.StatusOK) { + return UpdateCertificateOperationResponse{}, runtime.NewResponseError(resp) + } + return client.updateCertificateOperationHandleResponse(resp) } -// ListDeletedCertificatesOptions contains optional parameters for Client.ListDeletedCertificates -type ListDeletedCertificatesOptions struct { - // placeholder for future optional parameters -} - -// NewListDeletedCertificatesPager retrieves the certificates in the current vault which are in a deleted state and ready for recovery or purging. -// This operation includes deletion-specific information. This operation requires the certificates/get/list permission. This operation can -// only be enabled on soft-delete enabled vaults. -func (c *Client) NewListDeletedCertificatesPager(options *ListDeletedCertificatesOptions) *runtime.Pager[ListDeletedCertificatesResponse] { - pager := c.genClient.NewGetDeletedCertificatesPager(c.vaultURL, nil) - return runtime.NewPager(runtime.PagingHandler[ListDeletedCertificatesResponse]{ - More: func(page ListDeletedCertificatesResponse) bool { - return pager.More() - }, - Fetcher: func(ctx context.Context, cur *ListDeletedCertificatesResponse) (ListDeletedCertificatesResponse, error) { - page, err := pager.NextPage(ctx) - if err != nil { - return ListDeletedCertificatesResponse{}, err - } - return listDeletedCertsPageFromGenerated(page), nil - }, - }) -} - -// CancelCertificateOperationOptions contains optional parameters for Client.CancelCertificateOperation -type CancelCertificateOperationOptions struct { - // placeholder for future optional parameters. -} - -func (c *CancelCertificateOperationOptions) toGenerated() *generated.KeyVaultClientUpdateCertificateOperationOptions { - return &generated.KeyVaultClientUpdateCertificateOperationOptions{} -} - -// CancelCertificateOperationResponse contains response fields for Client.CancelCertificateOperation -type CancelCertificateOperationResponse struct { - Operation -} - -// CancelCertificateOperation cancels a certificate creation operation that is already in progress. This operation requires the certificates/update permission. -func (c *Client) CancelCertificateOperation(ctx context.Context, certificateName string, options *CancelCertificateOperationOptions) (CancelCertificateOperationResponse, error) { - resp, err := c.genClient.UpdateCertificateOperation( - ctx, - c.vaultURL, - certificateName, - generated.CertificateOperationUpdateParameter{ - CancellationRequested: to.Ptr(true), - }, - options.toGenerated(), - ) +// updateCertificateOperationCreateRequest creates the UpdateCertificateOperation request. +func (client *Client) updateCertificateOperationCreateRequest(ctx context.Context, certificateName string, certificateOperation UpdateCertificateOperationParameter, options *UpdateCertificateOperationOptions) (*policy.Request, error) { + urlPath := "/certificates/{certificate-name}/pending" + if certificateName == "" { + return nil, errors.New("parameter certificateName cannot be empty") + } + urlPath = strings.ReplaceAll(urlPath, "{certificate-name}", url.PathEscape(certificateName)) + req, err := runtime.NewRequest(ctx, http.MethodPatch, runtime.JoinPaths(client.endpoint, urlPath)) if err != nil { - return CancelCertificateOperationResponse{}, err + return nil, err } - - return CancelCertificateOperationResponse{ - Operation: certificateOperationFromGenerated(resp.CertificateOperation), - }, nil + reqQP := req.Raw().URL.Query() + reqQP.Set("api-version", "7.3") + req.Raw().URL.RawQuery = reqQP.Encode() + req.Raw().Header["Accept"] = []string{"application/json"} + return req, runtime.MarshalAsJSON(req, certificateOperation) } -// DeleteCertificateOperationOptions contains optional parameters for Client.DeleteCertificateOperation -type DeleteCertificateOperationOptions struct { - // placeholder for future optional parameters. -} - -func (d *DeleteCertificateOperationOptions) toGenerated() *generated.KeyVaultClientDeleteCertificateOperationOptions { - return &generated.KeyVaultClientDeleteCertificateOperationOptions{} +// updateCertificateOperationHandleResponse handles the UpdateCertificateOperation response. +func (client *Client) updateCertificateOperationHandleResponse(resp *http.Response) (UpdateCertificateOperationResponse, error) { + result := UpdateCertificateOperationResponse{} + if err := runtime.UnmarshalAsJSON(resp, &result.CertificateOperation); err != nil { + return UpdateCertificateOperationResponse{}, err + } + return result, nil } -// DeleteCertificateOperationResponse contains response fields for Client.DeleteCertificateOperation -type DeleteCertificateOperationResponse struct { - Operation +// UpdateCertificatePolicy - Set specified members in the certificate policy. Leave others as null. This operation requires +// the certificates/update permission. +// If the operation fails it returns an *azcore.ResponseError type. +// Generated from API version 7.3 +// certificateName - The name of the certificate in the given vault. +// certificatePolicy - The policy for the certificate. +// options - UpdateCertificatePolicyOptions contains the optional parameters for the Client.UpdateCertificatePolicy +// method. +func (client *Client) UpdateCertificatePolicy(ctx context.Context, certificateName string, certificatePolicy CertificatePolicy, options *UpdateCertificatePolicyOptions) (UpdateCertificatePolicyResponse, error) { + req, err := client.updateCertificatePolicyCreateRequest(ctx, certificateName, certificatePolicy, options) + if err != nil { + return UpdateCertificatePolicyResponse{}, err + } + resp, err := client.pl.Do(req) + if err != nil { + return UpdateCertificatePolicyResponse{}, err + } + if !runtime.HasStatusCode(resp, http.StatusOK) { + return UpdateCertificatePolicyResponse{}, runtime.NewResponseError(resp) + } + return client.updateCertificatePolicyHandleResponse(resp) } -// DeleteCertificateOperation deletes the creation operation for a specified certificate that is in the process of being created. The certificate is no -// longer created. This operation requires the certificates/update permission. -func (c *Client) DeleteCertificateOperation(ctx context.Context, certificateName string, options *DeleteCertificateOperationOptions) (DeleteCertificateOperationResponse, error) { - resp, err := c.genClient.DeleteCertificateOperation( - ctx, - c.vaultURL, - certificateName, - options.toGenerated(), - ) - +// updateCertificatePolicyCreateRequest creates the UpdateCertificatePolicy request. +func (client *Client) updateCertificatePolicyCreateRequest(ctx context.Context, certificateName string, certificatePolicy CertificatePolicy, options *UpdateCertificatePolicyOptions) (*policy.Request, error) { + urlPath := "/certificates/{certificate-name}/policy" + if certificateName == "" { + return nil, errors.New("parameter certificateName cannot be empty") + } + urlPath = strings.ReplaceAll(urlPath, "{certificate-name}", url.PathEscape(certificateName)) + req, err := runtime.NewRequest(ctx, http.MethodPatch, runtime.JoinPaths(client.endpoint, urlPath)) if err != nil { - return DeleteCertificateOperationResponse{}, err + return nil, err } + reqQP := req.Raw().URL.Query() + reqQP.Set("api-version", "7.3") + req.Raw().URL.RawQuery = reqQP.Encode() + req.Raw().Header["Accept"] = []string{"application/json"} + return req, runtime.MarshalAsJSON(req, certificatePolicy) +} - return DeleteCertificateOperationResponse{ - Operation: certificateOperationFromGenerated(resp.CertificateOperation), - }, nil +// updateCertificatePolicyHandleResponse handles the UpdateCertificatePolicy response. +func (client *Client) updateCertificatePolicyHandleResponse(resp *http.Response) (UpdateCertificatePolicyResponse, error) { + result := UpdateCertificatePolicyResponse{} + if err := runtime.UnmarshalAsJSON(resp, &result.CertificatePolicy); err != nil { + return UpdateCertificatePolicyResponse{}, err + } + return result, nil } diff --git a/sdk/keyvault/azcertificates/client_test.go b/sdk/keyvault/azcertificates/client_test.go index 345f93539bb4..153ea8559e92 100644 --- a/sdk/keyvault/azcertificates/client_test.go +++ b/sdk/keyvault/azcertificates/client_test.go @@ -4,658 +4,458 @@ // Copyright (c) Microsoft Corporation. All rights reserved. // Licensed under the MIT License. See License.txt in the project root for license information. -package azcertificates +package azcertificates_test import ( "context" "crypto/rand" "crypto/x509" "encoding/base64" + "encoding/json" "encoding/pem" "errors" "fmt" "io/ioutil" "math/big" - "net/http" - "strconv" "strings" "testing" "time" "github.com/Azure/azure-sdk-for-go/sdk/azcore" - "github.com/Azure/azure-sdk-for-go/sdk/azcore/runtime" "github.com/Azure/azure-sdk-for-go/sdk/azcore/to" - "github.com/Azure/azure-sdk-for-go/sdk/azidentity" "github.com/Azure/azure-sdk-for-go/sdk/internal/recording" + "github.com/Azure/azure-sdk-for-go/sdk/keyvault/azcertificates" "github.com/stretchr/testify/require" ) -var ctx = context.TODO() +var ( + ctx = context.Background() + selfSignedPolicy = azcertificates.CertificatePolicy{ + IssuerParameters: &azcertificates.IssuerParameters{Name: (*string)(to.Ptr("self"))}, + X509CertificateProperties: &azcertificates.X509CertificateProperties{Subject: to.Ptr("CN=DefaultPolicy")}, + } +) -func TestNewClient(t *testing.T) { - cred, err := azidentity.NewDefaultAzureCredential(nil) - require.NoError(t, err) - client, err := NewClient("https://certvault.vault.azure.net", cred, nil) +// pollStatus calls a function until it stops returning a response error with the given status code. +// If this takes more than 2 minutes, it fails the test. +func pollStatus(t *testing.T, expectedStatus int, fn func() error) { + var err error + for i := 0; i < 12; i++ { + err = fn() + var respErr *azcore.ResponseError + if !(errors.As(err, &respErr) && respErr.StatusCode == expectedStatus) { + break + } + if i < 11 { + recording.Sleep(10 * time.Second) + } + } require.NoError(t, err) - require.NotNil(t, client.genClient) - require.Equal(t, "https://certvault.vault.azure.net", client.vaultURL) } -func TestClient_BeginCreateCertificate(t *testing.T) { - stop := startTest(t) - defer stop() - - client, err := createClient(t) - require.NoError(t, err) - - certName, err := createRandomName(t, "beginCreate") - require.NoError(t, err) - - resp, err := client.BeginCreateCertificate(ctx, certName, NewDefaultCertificatePolicy(), nil) - require.NoError(t, err) - - pollerResp, err := resp.PollUntilDone(ctx, delay()) - require.NoError(t, err) - require.NotNil(t, pollerResp.ID) - - defer cleanUp(t, client, certName) - - // want to interface with x509 std library - - cert, err := x509.ParseCertificate(pollerResp.CER) +// pollCertOperation polls a certificate operation for up to 20 seconds, stopping when it completes. +// It fails the test if a poll fails or the operation is cancelled. +func pollCertOperation(t *testing.T, client *azcertificates.Client, name string) { + var err error + var op azcertificates.GetCertificateOperationResponse + for i := 0; i < 5; i++ { + op, err = client.GetCertificateOperation(ctx, name, nil) + require.NoError(t, err) + require.NotNil(t, op.Status) + switch s := *op.Status; s { + case "completed": + break + case "cancelled": + t.Fatal("cert creation cancelled") + case "inProgress": + // sleep and continue + default: + t.Fatalf(`unexpected status "%s"`, s) + } + if i < 4 { + recording.Sleep(5 * time.Second) + } + } require.NoError(t, err) - require.NotNil(t, cert) } -func TestClient_BeginCreateCertificateRehydrated(t *testing.T) { - stop := startTest(t) - defer stop() - - client, err := createClient(t) - require.NoError(t, err) - - certName, err := createRandomName(t, "beginCreateRehydrate") - require.NoError(t, err) - - resp, err := client.BeginCreateCertificate(ctx, certName, NewDefaultCertificatePolicy(), nil) - require.NoError(t, err) - - rt, err := resp.ResumeToken() - require.NoError(t, err) - - newPoller, err := client.BeginCreateCertificate(ctx, certName, NewDefaultCertificatePolicy(), &BeginCreateCertificateOptions{ResumeToken: rt}) - require.NoError(t, err) - - pollerResp, err := newPoller.PollUntilDone(ctx, delay()) - require.NoError(t, err) - require.NotNil(t, pollerResp.ID) - - defer cleanUp(t, client, certName) - - // want to interface with x509 std library - - cert, err := x509.ParseCertificate(pollerResp.CER) - require.NoError(t, err) - require.NotNil(t, cert) +type serdeModel interface { + json.Marshaler + json.Unmarshaler } -func TestClient_BeginDeleteCertificate(t *testing.T) { - stop := startTest(t) - defer stop() - - client, err := createClient(t) - require.NoError(t, err) - - certName, err := createRandomName(t, "createCert") - require.NoError(t, err) - - resp, err := client.BeginCreateCertificate(ctx, certName, NewDefaultCertificatePolicy(), nil) - require.NoError(t, err) - - pollerResp, err := resp.PollUntilDone(ctx, delay()) - require.NoError(t, err) - require.NotNil(t, pollerResp.ID) - - delResp, err := client.BeginDeleteCertificate(ctx, certName, nil) - require.NoError(t, err) - - delPollerResp, err := delResp.PollUntilDone(ctx, delay()) +func testSerde[T serdeModel](t *testing.T, model T) { + data, err := model.MarshalJSON() require.NoError(t, err) - require.Contains(t, *delPollerResp.ID, certName) - - _, err = client.GetCertificate(ctx, certName, nil) - require.Error(t, err) - - deletedResp, err := client.GetDeletedCertificate(ctx, certName, nil) - require.NoError(t, err) - require.Contains(t, *deletedResp.ID, certName) - - _, err = client.PurgeDeletedCertificate(ctx, certName, nil) + err = model.UnmarshalJSON(data) require.NoError(t, err) } -func TestClient_BeginDeleteCertificateRehydrated(t *testing.T) { - stop := startTest(t) - defer stop() - - client, err := createClient(t) - require.NoError(t, err) - - certName, err := createRandomName(t, "createCertRehydrate") - require.NoError(t, err) - - resp, err := client.BeginCreateCertificate(ctx, certName, NewDefaultCertificatePolicy(), nil) - require.NoError(t, err) +func TestBackupRestore(t *testing.T) { + client := startTest(t) - pollerResp, err := resp.PollUntilDone(ctx, delay()) + certName := getName(t, "cert") + createParams := azcertificates.CreateCertificateParameters{CertificatePolicy: &selfSignedPolicy} + _, err := client.CreateCertificate(ctx, certName, createParams, nil) require.NoError(t, err) - require.NotNil(t, pollerResp.ID) + pollCertOperation(t, client, certName) - delResp, err := client.BeginDeleteCertificate(ctx, certName, nil) - require.NoError(t, err) - - rt, err := delResp.ResumeToken() + backup, err := client.BackupCertificate(ctx, certName, nil) require.NoError(t, err) + require.NotEmpty(t, backup.Value) + testSerde(t, &backup.BackupCertificateResult) - poller, err := client.BeginDeleteCertificate(ctx, certName, &BeginDeleteCertificateOptions{ResumeToken: rt}) + deleteResp, err := client.DeleteCertificate(ctx, certName, nil) require.NoError(t, err) + pollStatus(t, 404, func() error { + _, err = client.GetDeletedCertificate(ctx, certName, nil) + return err + }) - delPollerResp, err := poller.PollUntilDone(ctx, delay()) + _, err = client.PurgeDeletedCertificate(ctx, certName, nil) require.NoError(t, err) - require.Contains(t, *delPollerResp.ID, certName) - _, err = client.GetCertificate(ctx, certName, nil) - require.Error(t, err) + var restoreResp azcertificates.RestoreCertificateResponse + restoreParams := azcertificates.RestoreCertificateParameters{CertificateBundleBackup: backup.Value} + pollStatus(t, 409, func() error { + restoreResp, err = client.RestoreCertificate(ctx, restoreParams, nil) + return err + }) + require.Equal(t, deleteResp.ID, restoreResp.ID) + require.NotNil(t, restoreResp.Attributes) + cleanUpCert(t, client, certName) - deletedResp, err := client.GetDeletedCertificate(ctx, certName, nil) + // exercise otherwise unused mashalling code + rp := azcertificates.RestoreCertificateParameters{} + data, err := restoreParams.MarshalJSON() require.NoError(t, err) - require.Contains(t, *deletedResp.ID, certName) - - _, err = client.PurgeDeletedCertificate(ctx, certName, nil) + err = rp.UnmarshalJSON(data) require.NoError(t, err) } -func TestClient_GetCertificateOperation(t *testing.T) { - stop := startTest(t) - defer stop() +func TestContactsCRUD(t *testing.T) { + client := startTest(t) - client, err := createClient(t) - require.NoError(t, err) - - certName, err := createRandomName(t, "cert") - require.NoError(t, err) - - resp, err := client.BeginCreateCertificate(ctx, certName, NewDefaultCertificatePolicy(), nil) + contacts := azcertificates.Contacts{ContactList: []*azcertificates.Contact{ + {EmailAddress: to.Ptr("one@localhost"), Name: to.Ptr("One"), Phone: to.Ptr("1111111111")}, + {EmailAddress: to.Ptr("two@localhost"), Name: to.Ptr("Two"), Phone: to.Ptr("2222222222")}, + }} + setResp, err := client.SetCertificateContacts(ctx, contacts, nil) require.NoError(t, err) + require.Equal(t, contacts.ContactList, setResp.ContactList) - _, err = resp.PollUntilDone(ctx, delay()) + getResp, err := client.GetCertificateContacts(ctx, nil) require.NoError(t, err) + require.Equal(t, contacts.ContactList, getResp.ContactList) - resp2, err := client.GetCertificateOperation(ctx, certName, nil) + _, err = client.DeleteCertificateContacts(ctx, nil) require.NoError(t, err) - require.NotNil(t, resp2.ID) - - cleanUp(t, client, certName) } -func TestClient_CancelCertificateOperation(t *testing.T) { - stop := startTest(t) - defer stop() - client, err := createClient(t) - require.NoError(t, err) +func TestCRUD(t *testing.T) { + client := startTest(t) - certName, err := createRandomName(t, "cert") + certName := getName(t, "") + createParams := azcertificates.CreateCertificateParameters{CertificatePolicy: &selfSignedPolicy} + testSerde(t, &createParams) + createResp, err := client.CreateCertificate(ctx, certName, createParams, nil) require.NoError(t, err) - - _, err = client.BeginCreateCertificate(ctx, certName, NewDefaultCertificatePolicy(), nil) require.NoError(t, err) + require.NotEmpty(t, createResp.CSR) + require.NotNil(t, createResp.CancellationRequested) + require.False(t, *createResp.CancellationRequested) + require.Nil(t, createResp.Error) + require.NotEmpty(t, createResp.RequestID) + require.NotEmpty(t, createResp.Status) + require.NotEmpty(t, createResp.StatusDetails) + require.NotEmpty(t, createResp.ID) + pollCertOperation(t, client, certName) - cancelResp, err := client.CancelCertificateOperation(ctx, certName, nil) + getResp, err := client.GetCertificate(ctx, certName, "", nil) require.NoError(t, err) - require.Contains(t, *cancelResp.ID, certName) + require.NotEmpty(t, getResp.ID) + require.NotEmpty(t, getResp.KID) + require.NotEmpty(t, getResp.SID) + testSerde(t, &getResp.CertificateBundle) - getResp, err := client.GetCertificateOperation(ctx, certName, nil) + updateParams := azcertificates.UpdateCertificateParameters{ + CertificateAttributes: &azcertificates.CertificateAttributes{ + Expires: to.Ptr(time.Date(2030, 1, 1, 1, 1, 1, 0, time.UTC)), + }, + } + testSerde(t, &updateParams) + _, err = client.UpdateCertificate(ctx, certName, "", updateParams, nil) + require.NoError(t, err) + + deleteResp, err := client.DeleteCertificate(ctx, certName, nil) + require.NoError(t, err) + require.NotNil(t, deleteResp.Attributes) + require.Equal(t, getResp.CER, deleteResp.CER) + require.Equal(t, getResp.ContentType, deleteResp.ContentType) + require.NotEmpty(t, deleteResp.ID) + require.Equal(t, certName, deleteResp.ID.Name()) + require.Equal(t, getResp.ID.Version(), deleteResp.ID.Version()) + require.Equal(t, getResp.KID, deleteResp.KID) + require.Equal(t, getResp.SID, deleteResp.SID) + testSerde(t, &deleteResp.DeletedCertificateBundle) + + var getDeletedResp azcertificates.GetDeletedCertificateResponse + pollStatus(t, 404, func() error { + getDeletedResp, err = client.GetDeletedCertificate(ctx, certName, nil) + return err + }) require.NoError(t, err) - require.Equal(t, true, *getResp.CancellationRequested) + require.Equal(t, deleteResp.ID, getDeletedResp.ID) + require.Equal(t, deleteResp.ID.Name(), getDeletedResp.ID.Name()) + require.Equal(t, deleteResp.ID.Version(), getDeletedResp.ID.Version()) + require.Equal(t, deleteResp.DeletedCertificateBundle, getDeletedResp.DeletedCertificateBundle) - _, err = client.DeleteCertificateOperation(ctx, certName, nil) + _, err = client.PurgeDeletedCertificate(ctx, certName, nil) require.NoError(t, err) - - // Get should fail now - _, err = client.GetCertificateOperation(ctx, certName, nil) - require.Error(t, err) } -func TestClient_BackupCertificate(t *testing.T) { - stop := startTest(t) - defer stop() - - client, err := createClient(t) +func TestDeleteRecover(t *testing.T) { + client := startTest(t) + certName := getName(t, "") + createParams := azcertificates.CreateCertificateParameters{CertificatePolicy: &selfSignedPolicy} + _, err := client.CreateCertificate(ctx, certName, createParams, nil) require.NoError(t, err) + pollCertOperation(t, client, certName) - certName, err := createRandomName(t, "cert") + deleteResp, err := client.DeleteCertificate(ctx, certName, nil) require.NoError(t, err) + pollStatus(t, 404, func() error { + _, err = client.GetDeletedCertificate(ctx, certName, nil) + return err + }) - resp, err := client.BeginCreateCertificate(ctx, certName, NewDefaultCertificatePolicy(), nil) - require.NoError(t, err) - _, err = resp.PollUntilDone(ctx, delay()) + recoverResp, err := client.RecoverDeletedCertificate(ctx, certName, nil) require.NoError(t, err) - - backup, err := client.BackupCertificate(ctx, certName, nil) + pollStatus(t, 404, func() error { + _, err = client.GetCertificate(ctx, certName, "", nil) + return err + }) require.NoError(t, err) - require.Greater(t, len(backup.Value), 0) - - cleanUp(t, client, certName) + require.Equal(t, deleteResp.Attributes, recoverResp.Attributes) + require.Equal(t, deleteResp.ID, recoverResp.ID) + require.Equal(t, deleteResp.ID.Name(), recoverResp.ID.Name()) + require.Equal(t, deleteResp.ID.Version(), recoverResp.ID.Version()) + require.Equal(t, deleteResp.Policy, recoverResp.Policy) + cleanUpCert(t, client, certName) } -func TestClient_ListCertificates(t *testing.T) { - stop := startTest(t) - defer stop() - - client, err := createClient(t) - require.NoError(t, err) - - created := [4]string{} - createdCount := 0 - for i := 0; i < 4; i++ { - name, err := createRandomName(t, fmt.Sprintf("listcerts%d", i)) - created[i] = name - require.NoError(t, err) - createCert(t, client, name) - defer cleanUp(t, client, name) - createdCount++ - } - - pager := client.NewListPropertiesOfCertificatesPager(nil) - for pager.More() { - page, err := pager.NextPage(context.Background()) - require.NoError(t, err) - for _, cert := range page.Certificates { - // the list of certs will contain results from other tests - // so we just count the ones with the prefix from this test - if strings.HasPrefix(*cert.Properties.Name, "listcerts") { - createdCount-- - } - } +func TestID(t *testing.T) { + for _, test := range []struct{ ID, name, version string }{ + {"https://foo.vault.azure.net/certificates/name/version", "name", "version"}, + {"https://foo.vault.azure.net/certificates/name", "name", ""}, + } { + t.Run(test.ID, func(t *testing.T) { + ID := azcertificates.ID(test.ID) + require.Equal(t, test.name, ID.Name()) + require.Equal(t, test.version, ID.Version()) + }) } - - require.Equal(t, 0, createdCount) } -func TestClient_ListCertificateVersions(t *testing.T) { - stop := startTest(t) - defer stop() - - client, err := createClient(t) - require.NoError(t, err) - - name, err := createRandomName(t, "cert1") - require.NoError(t, err) - createCert(t, client, name) - defer cleanUp(t, client, name) - - pager := client.NewListPropertiesOfCertificateVersionsPager(name, nil) - count := 0 - for pager.More() { - resp, err := pager.NextPage(context.Background()) - require.NoError(t, err) - count += len(resp.Certificates) - } - - require.Equal(t, 1, count) - - // Add a second version - createCert(t, client, name) - - pager = client.NewListPropertiesOfCertificateVersionsPager(name, nil) - count = 0 - for pager.More() { - resp, err := pager.NextPage(context.Background()) - require.NoError(t, err) - count += len(resp.Certificates) +func TestImportCertificate(t *testing.T) { + client := startTest(t) + certName := getName(t, "") + importParams := azcertificates.ImportCertificateParameters{ + Base64EncodedCertificate: to.Ptr("MIIJsQIBAzCCCXcGCSqGSIb3DQEHAaCCCWgEgglkMIIJYDCCBBcGCSqGSIb3DQEHBqCCBAgwggQEAgEAMIID/QYJKoZIhvcNAQcBMBwGCiqGSIb3DQEMAQYwDgQIE7pdl4fTqmwCAggAgIID0MDlcRFQUH0YDxopuqVyuEd4OLfawucEAxGvdj9+SMs34Cz1tVyZgfFuU4MwlLk6cA1dog8iw9/f8/VlA6wS0DHhslLL3JzSxZoi6JQQ0IYgjWaIv4c+wT0IcBhc2USI3lPqoqALG15qcs8fAEpDIssUplDcmA7gLVvBvw1utAipib8y93J71tIIedDaf0pAuVuC6K1PRI3HWVnUetCaiq4AW2iQu7f0rxJVDcKubmNinEivyRi4yl2Q1g2OwGlqwZEAnIW02uE+FzgFk51OA357vvooKicb0fdDz+hsRuzlWMhs2ciFMg71jlCUIKnvAKXCR714ox+OK8pTN1KQy3ICAFy+m6lNpkwkozfRoMwJyRGt5Tm6N/k9nQM1ysu3xqw3hG8q4srCbWhxcUrvrDcxvWe5Q8WX8Sl8nJ4joPZipBxDSEKYPqk9qkPF+YZbAmjcS3mw0AI5V8v31WQaa/i6LxQGwKUVSyjHe6ZDskQjyogtRmt61z1MYHmv9iNuLyyWhq9w7hV/AyKTzQ7FsWcK2vdNZJA2lj8H7rSrYtaVFNPMBzOa4KsJmif9s9B0VyMlX37XB1tGEtRmRuJtA+EZYVzu50J/ZVx2QGr40IpmyYKwB6CTQpBE12W9RMgMLYy+YAykrexYOJaIh9wfzLi/bAH8uCNTKueeVREnMHrzSF1xNQzqW8okoEMvSdr6+uCjHxt1cmRhUOcGvocLfNOgNhz+qwztLr35QTE8zTnrjvhb0NKfT1vpGa0nXP3EBYDolRqTZgKlG9icupDI57wDNuHED/d63Ri+tCbs3VF+QjcPBO8q3xz0hMj38oYLnHYt1i4YQOvXSDdZLc4fW5GXB1cVmP9vxbM0lxBKCLA8V0wZ8P341Dknr5WhS21A0qs3b9FavwbUUCDTuvky/1qhA6MaxqbtzjeVm7mYJ7TnCQveH0Iy3RHEPQrzrGUQc0bEBfissGeVYlghNULlaDW9CobT6J+pYT0y85flg+qtTZX69NaI4mZuh11hkKLmbVx6gGouQ79XmpE3+vNycEQNota534gUs77qF0VACJHnbgh05Qhxkp9Xd/LSUt+6r9niTa9HWQ+SMdfXuu6ognA3lMGeO4i0NTFkXA1MNs+e0QQZqNX8CiCj09i6YeMNVTdIh1ufrEF9YlO8yjLitHVSJRuY65QCCpPsS5Ugdk+5tUD3H2l1j/ZA5f73z2JdFEAchPRLsNQKTx49ZvsSex2ikEJeNjHDBuMQZtVZZDs9DdVQL/i49Mc7N+/x37AcLFx+DelOKZ0F5LgiDDprfU8wggVBBgkqhkiG9w0BBwGgggUyBIIFLjCCBSowggUmBgsqhkiG9w0BDAoBAqCCBO4wggTqMBwGCiqGSIb3DQEMAQMwDgQIwQ83ZA6tJFoCAggABIIEyHQt53aY9srYggLfYUSeD6Gcjm7uEA5F24s9r3FZF50YRSztbJIrqGd6oytw4LDCInANcGuCF3WQjSdEB6ABy+Igmbk9OAsFAy18txfg05UQb4JYN3M0XkYywh+GlMlZdcsZQakXqBGSj6kyG4J9ISgGPpvSqopo7fUHjc3QjWcG07d42u6lgkLxdQH2e+qiHWA+9C3mawA5AYWA6sciEoKzYOZkl7ZtWptpJJWD54HtIT7ENGkHM6y2LM+FyMC0axoUsFawoObzcbJLX29Zfohzq9yt169ZLcKDC1zpS6R0MIRE5rs4727vG9mJWMetDpIg/2fka4nkhfry2Wo+Pp/065aUSfHbQGMZ2Lw/zgU1Eo/Bau+fREft/DRX/sZpkd0ulPlbxmQ80Xf6IXRSGD5poq3B19dJpKHmJagFJu1IgXEovjpexrYEmEAuzLaH1wdMTMGViWHsxu+g066LuHbBfJQ4THnAOp0N2eUkcfO3oJ3thzGnvWXM4lKAkULcnBlQnnfKi2CrQYJCJMhyIicYYs+03gxXxNwQihZPm3VI3an/ci1otoh19WP4on3DqZ4KySU+PZ45XzDg1H00+nhyShwuyiFhDN6XuJ0VWIZZEvoPRY1Tmt2prP/1B1Kk9+lishvTJKkuZ3rqC1bkJioIWte1FEoktCtzQ3dVUwlvy1r2y1WL5OTdk6yIENvm9+xHSkJelkZjW+Jr/B9dyZ2o9+oJGuLW8J2gNixecnWJXlb/tPwmL7iwLmFfM5tw27LnYO54dfUnq00G5JM6yiAj9i73RLkZo4lq29HOsoi4T3s06KpkOVhrIud7VhPFdzWtptcV9gbidHKtX209oZKAVgXa538DyKownqHx3I8yjXs0eFlty1CJjBP9fuAvllyNpUteuZoDcS45Zwl3WOpPrL595gBwy5yGOADOJXA3ww2oqvlTcZv1lyteKght3hMkSgy2mIGYAa19v+ZK0LxKxvwCCkC+bMuyTduiaUJmHmI7k0lVIt/5WPzz9cnvCahhCovN/+C0LI1xbOTW9nDp2Ffsb0aC9XYBRf/amRCiHmMzB18E85aA05h3l7KXPdck/xrKEePdv4dnLWxvHw69O6sjssmdV3q6+cZgYYLZAEl1byIbZBTQaHT0GhzcmHJrW71L6Sl/9TEfmDSvctEEe4cZd8o29TXqzE10kmrt8dqoRbYiNq5CODPiithVtCRWQu3aFoLkT0ooWEYk+IWU6/WQ8rq7KkZ6BR8JV60I3WbXLejTyaTf79VMt8myIET5GjSc7r+tWyDRCHcU32Guyw7F+9ndkMlVuI5gB/zfrsfX6noSQnx72yF6NrIyhJWf/Zl3NMbnPKUHA+sZkjE4+Hwvf5yWkjFZhNeLq/4gaXQk7yEddjoCpN/cWsVjX8NxZFsRLs00Ag89+NAbgWkr2eejKcXB+I4TZHVee8IPKdEh8ga6RtDD8GV9VpwhnOpDHT5K1CtuX2CyTMl8fgUxobZ4kauiRr4dChd5n9Bgp7mvTarl7k2nVXptSJDmaPvZ0ETht+WF24+a/7XqV7fyHoYU/WOvEGPW34a7X8R5UJWaOwZTcpqmfp8iwapRtgvQoXAISy2wK20fS0nK79nlqnhp5KEddTElMCMGCSqGSIb3DQEJFTEWBBTsd3zCMw1XrWC/MBjgt8IbFbCL8jAxMCEwCQYFKw4DAhoFAAQUY8Q/ANtHMzVyl4asrQ/lPKRjd2AECOBKL60N+UaKAgIIAA=="), + CertificateAttributes: &azcertificates.CertificateAttributes{Enabled: to.Ptr(false)}, } - - require.Equal(t, 2, count) - - // Add a third version - createCert(t, client, name) - - pager = client.NewListPropertiesOfCertificateVersionsPager(name, nil) - count = 0 - for pager.More() { - resp, err := pager.NextPage(context.Background()) - require.NoError(t, err) - count += len(resp.Certificates) - } - - require.Equal(t, 3, count) -} - -func TestClient_ImportCertificate(t *testing.T) { - stop := startTest(t) - defer stop() - - client, err := createClient(t) - require.NoError(t, err) - - importedName, err := createRandomName(t, "imported") - require.NoError(t, err) - - importResp, err := client.ImportCertificate(ctx, importedName, certContentNotPasswordEncoded, nil) - require.NoError(t, err) - require.Contains(t, *importResp.ID, importedName) - require.NotNil(t, importResp.Policy) - - cleanUp(t, client, importedName) + testSerde(t, &importParams) + impResp, err := client.ImportCertificate(ctx, certName, importParams, nil) + require.NoError(t, err) + cleanUpCert(t, client, certName) + require.Equal(t, importParams.CertificateAttributes.Enabled, impResp.Attributes.Enabled) + require.NotEmpty(t, impResp.ID) + require.Equal(t, certName, impResp.ID.Name()) + require.NotEmpty(t, impResp.KID) + require.NotEmpty(t, impResp.SID) } -func TestClient_IssuerCRUD(t *testing.T) { - stop := startTest(t) - defer stop() - - client, err := createClient(t) - require.NoError(t, err) - - issuerName, err := createRandomName(t, "issuer") - require.NoError(t, err) +func TestIssuerCRUD(t *testing.T) { + client := startTest(t) - resp, err := client.CreateIssuer(ctx, issuerName, "Test", &CreateIssuerOptions{ - Credentials: &IssuerCredentials{ + issuerName := getName(t, "issuer") + setParams := azcertificates.SetCertificateIssuerParameters{ + Attributes: &azcertificates.IssuerAttributes{ + Enabled: to.Ptr(true), + }, + Credentials: &azcertificates.IssuerCredentials{ AccountID: to.Ptr("keyvaultuser"), }, - Enabled: to.Ptr(true), - AdministratorContacts: []*AdministratorContact{ - { - FirstName: to.Ptr("John"), - LastName: to.Ptr("Doe"), - Email: to.Ptr("admin@microsoft.com"), - Phone: to.Ptr("4255555555"), + OrganizationDetails: &azcertificates.OrganizationDetails{ + AdminDetails: []*azcertificates.AdministratorDetails{ + { + FirstName: to.Ptr("First"), + LastName: to.Ptr("Last"), + EmailAddress: to.Ptr("foo@bar"), + Phone: to.Ptr("42"), + }, }, }, - }) - require.NoError(t, err) - require.Equal(t, *resp.Issuer.Provider, "Test") - require.Equal(t, *resp.Issuer.Credentials.AccountID, "keyvaultuser") - require.Contains(t, *resp.Issuer.ID, fmt.Sprintf("/certificates/issuers/%s", issuerName)) - - getResp, err := client.GetIssuer(ctx, issuerName, nil) - require.NoError(t, err) - require.Equal(t, *getResp.Issuer.Provider, "Test") - require.Equal(t, *getResp.Issuer.Credentials.AccountID, "keyvaultuser") - require.Contains(t, *getResp.Issuer.ID, fmt.Sprintf("/certificates/issuers/%s", issuerName)) - - issuerName2, err := createRandomName(t, "issuer2") + Provider: to.Ptr("Test"), + } + testSerde(t, &setParams) + setResp, err := client.SetCertificateIssuer(ctx, issuerName, setParams, &azcertificates.SetCertificateIssuerOptions{}) require.NoError(t, err) + require.NotEmpty(t, setResp.ID) + require.Equal(t, setParams.Credentials, setResp.Credentials) + require.Equal(t, setParams.OrganizationDetails.AdminDetails[0], setResp.OrganizationDetails.AdminDetails[0]) + require.Equal(t, setParams.Provider, setResp.Provider) + testSerde(t, &setResp.IssuerBundle) - createResp, err := client.CreateIssuer(ctx, issuerName2, "Test", &CreateIssuerOptions{ - Credentials: &IssuerCredentials{ - AccountID: to.Ptr("keyvaultuser2"), - }, - Enabled: to.Ptr(true), - AdministratorContacts: []*AdministratorContact{ - { - FirstName: to.Ptr("John"), - LastName: to.Ptr("Doe"), - Email: to.Ptr("admin@microsoft.com"), - Phone: to.Ptr("4255555555"), - }, - }, - }) + getResp, err := client.GetCertificateIssuer(ctx, issuerName, nil) require.NoError(t, err) - require.Equal(t, issuerName2, *createResp.Issuer.Name) + require.Equal(t, setResp.IssuerBundle, getResp.IssuerBundle) - // List operation - pager := client.NewListPropertiesOfIssuersPager(nil) - count := 0 + pager := client.NewListCertificateIssuersPager(&azcertificates.ListCertificateIssuersOptions{MaxResults: to.Ptr(int32(1))}) + found := false for pager.More() { - page, err := pager.NextPage(context.Background()) + page, err := pager.NextPage(ctx) + testSerde(t, &page.CertificateIssuerListResult) require.NoError(t, err) - for _, issuer := range page.Issuers { - require.Equal(t, "Test", *issuer.Provider) - count += 1 + for _, issuer := range page.Value { + testSerde(t, issuer) + require.NotEmpty(t, issuer.ID) + if *issuer.ID == *setResp.ID { + found = true + break + } } } - require.GreaterOrEqual(t, count, 2) - - createResp.Issuer.AdministratorContacts = []*AdministratorContact{ - { - FirstName: to.Ptr("Jane"), - LastName: to.Ptr("Doey"), - Email: to.Ptr("admin2@microsoft.com"), - Phone: to.Ptr("4266666666"), + require.True(t, found) + + updateParams := azcertificates.UpdateCertificateIssuerParameters{ + Attributes: &azcertificates.IssuerAttributes{ + Enabled: to.Ptr(false), }, } - // Update the certificate issuer - updateResp, err := client.UpdateIssuer(ctx, createResp.Issuer, nil) - require.NoError(t, err) - require.Equal(t, 1, len(updateResp.Issuer.AdministratorContacts)) - require.Equal(t, "Jane", *updateResp.Issuer.AdministratorContacts[0].FirstName) - require.Equal(t, "Doey", *updateResp.Issuer.AdministratorContacts[0].LastName) - require.Equal(t, "admin2@microsoft.com", *updateResp.Issuer.AdministratorContacts[0].Email) - require.Equal(t, "4266666666", *updateResp.Issuer.AdministratorContacts[0].Phone) - - // Delete the first issuer - _, err = client.DeleteIssuer(ctx, issuerName, nil) - require.NoError(t, err) - - // Get on the first issuer fails - _, err = client.GetIssuer(ctx, issuerName, nil) - require.Error(t, err) -} - -func TestClient_ContactsCRUD(t *testing.T) { - stop := startTest(t) - defer stop() - - client, err := createClient(t) + testSerde(t, &updateParams) + updateResp, err := client.UpdateCertificateIssuer(ctx, issuerName, updateParams, nil) require.NoError(t, err) + require.NotEqual(t, setResp.IssuerBundle, updateResp.IssuerBundle) - contacts := Contacts{ContactList: []*Contact{ - {Email: to.Ptr("admin@microsoft.com"), Name: to.Ptr("John Doe"), Phone: to.Ptr("1111111111")}, - {Email: to.Ptr("admin@contoso.com"), Name: to.Ptr("Jane Doey"), Phone: to.Ptr("2222222222")}, - }} - - resp, err := client.SetContacts(ctx, contacts.ContactList, nil) - require.NoError(t, err) - require.Equal(t, 2, len(resp.ContactList)) - - getResp, err := client.GetContacts(ctx, nil) - require.NoError(t, err) - require.Equal(t, 2, len(getResp.ContactList)) - require.Equal(t, "admin@microsoft.com", *getResp.ContactList[0].Email) - require.Equal(t, "admin@contoso.com", *getResp.ContactList[1].Email) - require.Equal(t, "John Doe", *getResp.ContactList[0].Name) - require.Equal(t, "Jane Doey", *getResp.ContactList[1].Name) - require.Equal(t, "1111111111", *getResp.ContactList[0].Phone) - require.Equal(t, "2222222222", *getResp.ContactList[1].Phone) - - deleteResp, err := client.DeleteContacts(ctx, nil) + deleteResp, err := client.DeleteCertificateIssuer(ctx, issuerName, nil) require.NoError(t, err) - require.Equal(t, 2, len(deleteResp.ContactList)) - - // Get should fail - _, err = client.GetContacts(ctx, nil) - require.Error(t, err) + require.Equal(t, updateResp.IssuerBundle, deleteResp.IssuerBundle) } -func TestPolicy(t *testing.T) { - stop := startTest(t) - defer stop() - - client, err := createClient(t) - require.NoError(t, err) - - certName, err := createRandomName(t, "policyCertificate") - require.NoError(t, err) +func TestListCertificates(t *testing.T) { + client := startTest(t) - policy := Policy{ - IssuerParameters: &IssuerParameters{ - CertificateTransparency: to.Ptr(false), - IssuerName: to.Ptr("Self"), - }, - Exportable: to.Ptr(true), - KeySize: to.Ptr(int32(2048)), - ReuseKey: to.Ptr(true), - KeyType: to.Ptr(KeyTypeRSA), - LifetimeActions: []*LifetimeAction{ - {Action: to.Ptr(PolicyActionEmailContacts), LifetimePercentage: to.Ptr(int32(98))}, - }, - ContentType: to.Ptr(CertificateContentTypePKCS12), - X509Properties: &X509CertificateProperties{ - EnhancedKeyUsages: []*string{to.Ptr("1.3.6.1.5.5.7.3.1"), to.Ptr("1.3.6.1.5.5.7.3.2")}, - KeyUsages: []*KeyUsage{to.Ptr(KeyUsageDecipherOnly)}, - Subject: to.Ptr("CN=DefaultPolicy"), - ValidityInMonths: to.Ptr(int32(12)), - SubjectAlternativeNames: &SubjectAlternativeNames{ - DNSNames: []*string{to.Ptr("sdk.azure-int.net")}, - }, - }, + tag := getName(t, "") + count := 4 + certNames := make([]string, count) + createParams := azcertificates.CreateCertificateParameters{ + CertificatePolicy: &selfSignedPolicy, + Tags: map[string]*string{tag: to.Ptr("yes")}, + } + for i := 0; i < len(certNames); i++ { + certNames[i] = fmt.Sprintf("%s-%d", tag, i) + _, err := client.CreateCertificate(ctx, certNames[i], createParams, nil) + require.NoError(t, err) + } + for _, name := range certNames { + pollCertOperation(t, client, name) } - _, err = client.BeginCreateCertificate(ctx, certName, policy, nil) - require.NoError(t, err) - - receivedPolicy, err := client.GetCertificatePolicy(ctx, certName, nil) - require.NoError(t, err) - - // Make sure policies are equal - require.Equal(t, *policy.IssuerParameters.IssuerName, *receivedPolicy.Policy.IssuerParameters.IssuerName) - require.Equal(t, *policy.Exportable, *receivedPolicy.Exportable) - require.Equal(t, *policy.ContentType, *receivedPolicy.ContentType) - - // Update the policy - policy.KeyType = to.Ptr(KeyTypeEC) - policy.KeySize = to.Ptr(int32(256)) - policy.KeyCurveName = to.Ptr(KeyCurveNameP256) - - updateResp, err := client.UpdateCertificatePolicy(ctx, certName, policy, nil) - require.NoError(t, err) + listCertsPager := client.NewListCertificatesPager(&azcertificates.ListCertificatesOptions{ + MaxResults: to.Ptr(int32(1)), IncludePending: to.Ptr(true), + }) + for listCertsPager.More() { + page, err := listCertsPager.NextPage(ctx) + require.NoError(t, err) + testSerde(t, &page.CertificateListResult) + for _, cert := range page.Value { + testSerde(t, cert) + if value, ok := cert.Tags[tag]; ok && *value == "yes" { + require.True(t, strings.HasPrefix(cert.ID.Name(), tag)) + count-- + _, err = client.DeleteCertificate(ctx, cert.ID.Name(), nil) + require.NoError(t, err) + } + } + } + require.Equal(t, 0, count) - require.Equal(t, *policy.IssuerParameters.IssuerName, *updateResp.Policy.IssuerParameters.IssuerName) - require.Equal(t, *policy.Exportable, *updateResp.Exportable) - require.Equal(t, *policy.ContentType, *updateResp.ContentType) - require.Equal(t, *policy.KeyType, *updateResp.KeyType) - require.Equal(t, *policy.KeySize, *updateResp.KeySize) - require.Equal(t, *policy.KeyCurveName, *updateResp.KeyCurveName) + for _, name := range certNames { + pollStatus(t, 404, func() error { + _, err := client.GetDeletedCertificate(ctx, name, nil) + return err + }) + } + count = len(certNames) + listDeletedCertsPager := client.NewListDeletedCertificatesPager(&azcertificates.ListDeletedCertificatesOptions{ + MaxResults: to.Ptr(int32(1)), IncludePending: to.Ptr(true), + }) + for listDeletedCertsPager.More() { + page, err := listDeletedCertsPager.NextPage(ctx) + require.NoError(t, err) + testSerde(t, &page.DeletedCertificateListResult) + for _, cert := range page.Value { + testSerde(t, cert) + if value, ok := cert.Tags[tag]; ok && *value == "yes" { + count-- + _, err = client.PurgeDeletedCertificate(ctx, cert.ID.Name(), nil) + require.NoError(t, err) + } + } + } + require.Equal(t, 0, count) } -func TestCRUDOperations(t *testing.T) { - stop := startTest(t) - defer stop() - - client, err := createClient(t) - require.NoError(t, err) - - certName, err := createRandomName(t, "cert") - require.NoError(t, err) +func TestListCertificateVersions(t *testing.T) { + client := startTest(t) - policy := Policy{ - IssuerParameters: &IssuerParameters{ - CertificateTransparency: to.Ptr(false), - IssuerName: to.Ptr("Self"), - }, - Exportable: to.Ptr(true), - KeySize: to.Ptr(int32(2048)), - ReuseKey: to.Ptr(true), - KeyType: to.Ptr(KeyTypeRSA), - LifetimeActions: []*LifetimeAction{ - {Action: to.Ptr(PolicyActionEmailContacts), LifetimePercentage: to.Ptr(int32(98))}, - }, - ContentType: to.Ptr(CertificateContentTypePKCS12), - X509Properties: &X509CertificateProperties{ - EnhancedKeyUsages: []*string{to.Ptr("1.3.6.1.5.5.7.3.1"), to.Ptr("1.3.6.1.5.5.7.3.2")}, - KeyUsages: []*KeyUsage{to.Ptr(KeyUsageDecipherOnly)}, - Subject: to.Ptr("CN=DefaultPolicy"), - ValidityInMonths: to.Ptr(int32(12)), - SubjectAlternativeNames: &SubjectAlternativeNames{ - DNSNames: []*string{to.Ptr("sdk.azure-int.net")}, - }, - }, + name := getName(t, "") + count := 3 + for i := 0; i < count; i++ { + _, err := client.CreateCertificate(ctx, name, azcertificates.CreateCertificateParameters{CertificatePolicy: &selfSignedPolicy}, nil) + require.NoError(t, err) + pollCertOperation(t, client, name) } + defer cleanUpCert(t, client, name) - pollerResp, err := client.BeginCreateCertificate(ctx, certName, policy, nil) - require.NoError(t, err) - finalResp, err := pollerResp.PollUntilDone(ctx, &runtime.PollUntilDoneOptions{Frequency: time.Second}) - require.NoError(t, err) - - received, err := client.GetCertificate(ctx, certName, nil) - require.NoError(t, err) - require.NotNil(t, received.Policy) - - // Make sure certificates are the same - require.Equal(t, *finalResp.ID, *received.ID) - - // Update the policy - policy.KeyType = to.Ptr(KeyTypeEC) - policy.KeySize = to.Ptr(int32(256)) - policy.KeyCurveName = to.Ptr(KeyCurveNameP256) - - updateResp, err := client.UpdateCertificatePolicy(ctx, certName, policy, nil) - require.NoError(t, err) - - require.Equal(t, *policy.IssuerParameters.IssuerName, *updateResp.Policy.IssuerParameters.IssuerName) - require.Equal(t, *policy.Exportable, *updateResp.Exportable) - require.Equal(t, *policy.ContentType, *updateResp.ContentType) - require.Equal(t, *policy.KeyType, *updateResp.KeyType) - require.Equal(t, *policy.KeySize, *updateResp.KeySize) - require.Equal(t, *policy.KeyCurveName, *updateResp.KeyCurveName) - - if received.Properties.Tags == nil { - received.Properties.Tags = map[string]*string{} + pager := client.NewListCertificateVersionsPager(name, nil) + for pager.More() { + page, err := pager.NextPage(ctx) + require.NoError(t, err) + testSerde(t, &page.CertificateListResult) + count -= len(page.Value) + for _, v := range page.Value { + testSerde(t, v) + require.Equal(t, name, v.ID.Name()) + } } - received.Properties.Tags["tag1"] = to.Ptr("updated_values1") - updatePropsResp, err := client.UpdateCertificateProperties(ctx, *received.Properties, nil) - require.NoError(t, err) - require.Equal(t, "updated_values1", *updatePropsResp.Properties.Tags["tag1"]) - require.Equal(t, *received.ID, *updatePropsResp.ID) - require.True(t, *updatePropsResp.Properties.Enabled) - - received.Properties.Enabled = to.Ptr(false) - resp, err := client.UpdateCertificateProperties(ctx, *received.Properties, nil) - require.NoError(t, err) - require.False(t, *resp.Properties.Enabled) - require.Equal(t, "updated_values1", *resp.Properties.Tags["tag1"]) + require.Equal(t, count, 0) } // https://stackoverflow.com/questions/42643048/signing-certificate-request-with-certificate-authority // Much of this is thanks to this response, thanks @krostar func TestMergeCertificate(t *testing.T) { - recording.LiveOnly(t) - stop := startTest(t) - defer stop() - - client, err := createClient(t) - require.NoError(t, err) - - certName, err := createRandomName(t, "mergeCertificate") - require.NoError(t, err) + client := startTest(t) - certPolicy := Policy{ - IssuerParameters: &IssuerParameters{ - IssuerName: to.Ptr("Unknown"), + certName := getName(t, "mergeCertificate") + policy := azcertificates.CertificatePolicy{ + IssuerParameters: &azcertificates.IssuerParameters{ + Name: to.Ptr("Unknown"), CertificateTransparency: to.Ptr(false), }, - X509Properties: &X509CertificateProperties{ + X509CertificateProperties: &azcertificates.X509CertificateProperties{ Subject: to.Ptr("CN=MyCert"), }, } - - poller, err := client.BeginCreateCertificate(ctx, certName, certPolicy, nil) + _, err := client.CreateCertificate(ctx, certName, azcertificates.CreateCertificateParameters{CertificatePolicy: &policy}, nil) require.NoError(t, err) - // can't PollUntilDone for this scenario - resp, err := poller.Poll(ctx) + defer cleanUpCert(t, client, certName) + + certOpResp, err := client.GetCertificateOperation(ctx, certName, nil) require.NoError(t, err) - require.Equal(t, http.StatusOK, resp.StatusCode) - if retryAfter := resp.Header.Get("Retry-After"); retryAfter != "" && recording.GetRecordMode() != recording.PlaybackMode { - // sleep before moving on - asInt, err := strconv.Atoi(retryAfter) - require.NoError(t, err) - time.Sleep(time.Duration(asInt) * time.Second) - } - defer cleanUp(t, client, certName) - // Load public key data, err := ioutil.ReadFile("testdata/ca.crt") require.NoError(t, err) block, _ := pem.Decode(data) @@ -671,9 +471,6 @@ func TestMergeCertificate(t *testing.T) { pkey, err := x509.ParsePKCS1PrivateKey(pkeyBlock.Bytes) require.NoError(t, err) - certOpResp, err := client.GetCertificateOperation(ctx, certName, nil) - require.NoError(t, err) - mid := base64.StdEncoding.EncodeToString(certOpResp.CSR) csr := fmt.Sprintf("-----BEGIN CERTIFICATE REQUEST-----\n%s\n-----END CERTIFICATE REQUEST-----", mid) @@ -686,8 +483,8 @@ func TestMergeCertificate(t *testing.T) { cert := x509.Certificate{ SerialNumber: big.NewInt(1), - NotBefore: time.Now(), - NotAfter: time.Now().Add(24 * time.Hour), + NotBefore: time.Date(2030, 1, 1, 1, 1, 0, 0, time.UTC), + NotAfter: time.Date(2040, 1, 1, 1, 1, 0, 0, time.UTC), Issuer: caCert.Issuer, Subject: req.Subject, PublicKey: req.PublicKey, @@ -703,194 +500,102 @@ func TestMergeCertificate(t *testing.T) { certificateString := string(certBytes) certificateString = strings.Replace(certificateString, "-----Begin Certificate-----", "", 1) certificateString = strings.Replace(certificateString, "-----End Certificate-----", "", 1) - - mergeResp, err := client.MergeCertificate(ctx, certName, [][]byte{[]byte(certificateString)}, nil) + mergeParams := azcertificates.MergeCertificateParameters{X509Certificates: [][]byte{[]byte(certificateString)}} + testSerde(t, &mergeParams) + mergeResp, err := client.MergeCertificate(ctx, certName, mergeParams, nil) require.NoError(t, err) require.NotNil(t, mergeResp.Policy) } -func TestClient_BeginRecoverDeletedCertificate(t *testing.T) { - stop := startTest(t) - defer stop() +func TestOperationCRUD(t *testing.T) { + client := startTest(t) - client, err := createClient(t) + certName := getName(t, "") + createParams := azcertificates.CreateCertificateParameters{CertificatePolicy: &selfSignedPolicy} + _, err := client.CreateCertificate(ctx, certName, createParams, nil) require.NoError(t, err) - certName, err := createRandomName(t, "certRecover") + params := azcertificates.UpdateCertificateOperationParameter{CancellationRequested: to.Ptr(true)} + testSerde(t, ¶ms) + _, err = client.UpdateCertificateOperation(ctx, certName, params, nil) require.NoError(t, err) - resp, err := client.BeginCreateCertificate(ctx, certName, NewDefaultCertificatePolicy(), nil) - require.NoError(t, err) - defer cleanUp(t, client, certName) - - pollerResp, err := resp.PollUntilDone(ctx, delay()) - require.NoError(t, err) - require.NotNil(t, pollerResp.ID) - - delResp, err := client.BeginDeleteCertificate(ctx, certName, nil) - require.NoError(t, err) - - delPollerResp, err := delResp.PollUntilDone(ctx, delay()) - require.NoError(t, err) - require.Contains(t, *delPollerResp.ID, certName) - - _, err = client.GetCertificate(ctx, certName, nil) - require.Error(t, err) - - recover, err := client.BeginRecoverDeletedCertificate(ctx, certName, nil) - require.NoError(t, err) - - recoveredResp, err := recover.PollUntilDone(ctx, &runtime.PollUntilDoneOptions{Frequency: time.Second}) - require.NoError(t, err) - require.Contains(t, *recoveredResp.ID, certName) -} - -func TestClient_BeginRecoverDeletedCertificateRehydrated(t *testing.T) { - stop := startTest(t) - defer stop() - - client, err := createClient(t) - require.NoError(t, err) - - certName, err := createRandomName(t, "certBeginRecoverRehydrated") - require.NoError(t, err) - - resp, err := client.BeginCreateCertificate(ctx, certName, NewDefaultCertificatePolicy(), nil) - require.NoError(t, err) - - pollerResp, err := resp.PollUntilDone(ctx, delay()) - require.NoError(t, err) - require.NotNil(t, pollerResp.ID) - - delResp, err := client.BeginDeleteCertificate(ctx, certName, nil) - require.NoError(t, err) - - delPollerResp, err := delResp.PollUntilDone(ctx, delay()) - require.NoError(t, err) - require.Contains(t, *delPollerResp.ID, certName) - - _, err = client.GetCertificate(ctx, certName, nil) - require.Error(t, err) - - recover, err := client.BeginRecoverDeletedCertificate(ctx, certName, nil) - require.NoError(t, err) - - rt, err := recover.ResumeToken() - require.NoError(t, err) - - poller, err := client.BeginRecoverDeletedCertificate(ctx, certName, &BeginRecoverDeletedCertificateOptions{ResumeToken: rt}) - require.NoError(t, err) - - recoveredResp, err := poller.PollUntilDone(ctx, &runtime.PollUntilDoneOptions{Frequency: time.Second}) + getResp, err := client.GetCertificateOperation(ctx, certName, nil) require.NoError(t, err) - require.Contains(t, *recoveredResp.ID, certName) + require.Equal(t, params.CancellationRequested, getResp.CancellationRequested) + testSerde(t, &getResp.CertificateOperation) - _, err = client.GetCertificate(ctx, certName, nil) + _, err = client.DeleteCertificateOperation(ctx, certName, nil) require.NoError(t, err) } -func TestClient_RestoreCertificateBackup(t *testing.T) { - stop := startTest(t) - defer stop() +func TestUpdateCertificatePolicy(t *testing.T) { + client := startTest(t) - client, err := createClient(t) - require.NoError(t, err) - - certName, err := createRandomName(t, "certRestore") - require.NoError(t, err) - - resp, err := client.BeginCreateCertificate(ctx, certName, Policy{ - IssuerParameters: &IssuerParameters{ - IssuerName: to.Ptr("Self"), + certName := getName(t, "") + policy := azcertificates.CertificatePolicy{ + IssuerParameters: &azcertificates.IssuerParameters{ + CertificateTransparency: to.Ptr(false), + Name: to.Ptr("Self"), }, - X509Properties: &X509CertificateProperties{ - Subject: to.Ptr("CN=DefaultPolicy"), - SubjectAlternativeNames: &SubjectAlternativeNames{ - UserPrincipalNames: []*string{to.Ptr("john.doe@domain.com")}, + Attributes: &azcertificates.CertificateAttributes{ + Enabled: to.Ptr(true), + Expires: to.Ptr(time.Date(2040, 1, 1, 1, 1, 0, 0, time.UTC)), + NotBefore: to.Ptr(time.Date(2030, 1, 1, 1, 1, 0, 0, time.UTC)), + }, + KeyProperties: &azcertificates.KeyProperties{ + Exportable: to.Ptr(true), + KeySize: to.Ptr(int32(2048)), + KeyType: to.Ptr(azcertificates.JSONWebKeyTypeRSA), + ReuseKey: to.Ptr(true), + }, + LifetimeActions: []*azcertificates.LifetimeAction{ + { + Action: &azcertificates.Action{ + ActionType: to.Ptr(azcertificates.ActionTypeEmailContacts), + }, + Trigger: &azcertificates.Trigger{ + LifetimePercentage: to.Ptr(int32(98)), + }, }, }, - }, nil) - require.NoError(t, err) - defer cleanUp(t, client, certName) - - pollerResp, err := resp.PollUntilDone(ctx, delay()) - require.NoError(t, err) - require.NotNil(t, pollerResp.ID) - - // Create a backup - certificateBackupResp, err := client.BackupCertificate(ctx, certName, nil) - require.NoError(t, err) - - // Delete the certificate - deletePoller, err := client.BeginDeleteCertificate(ctx, certName, nil) - require.NoError(t, err) - - _, err = deletePoller.PollUntilDone(ctx, delay()) + SecretProperties: &azcertificates.SecretProperties{ContentType: to.Ptr("application/x-pkcs12")}, + X509CertificateProperties: &azcertificates.X509CertificateProperties{ + EKUs: []*string{to.Ptr("1.3.6.1.5.5.7.3.1"), to.Ptr("1.3.6.1.5.5.7.3.2")}, + KeyUsage: []*azcertificates.KeyUsageType{to.Ptr(azcertificates.KeyUsageTypeDataEncipherment)}, + Subject: to.Ptr("CN=DefaultPolicy"), + SubjectAlternativeNames: &azcertificates.SubjectAlternativeNames{ + DNSNames: []*string{to.Ptr("localhost")}, + }, + ValidityInMonths: to.Ptr(int32(12)), + }, + } + _, err := client.CreateCertificate(ctx, certName, azcertificates.CreateCertificateParameters{CertificatePolicy: &policy}, nil) require.NoError(t, err) + defer cleanUpCert(t, client, certName) - // Purge the cert - _, err = client.PurgeDeletedCertificate(ctx, certName, nil) + getResp, err := client.GetCertificatePolicy(ctx, certName, nil) require.NoError(t, err) + require.Equal(t, policy.IssuerParameters, getResp.CertificatePolicy.IssuerParameters) + require.Equal(t, policy.KeyProperties, getResp.CertificatePolicy.KeyProperties) + require.Equal(t, policy.LifetimeActions, getResp.CertificatePolicy.LifetimeActions) + require.Equal(t, policy.SecretProperties, getResp.CertificatePolicy.SecretProperties) + require.Equal(t, policy.X509CertificateProperties, getResp.CertificatePolicy.X509CertificateProperties) - // Restore the cert - // Poll until no exception - count := 0 - for { - resp, err := client.RestoreCertificateBackup(ctx, certificateBackupResp.Value, nil) - if err == nil { - require.NotNil(t, resp.Policy) - break - } - var respErr *azcore.ResponseError - if errors.As(err, &respErr) { - if respErr.RawResponse.StatusCode != 409 { - require.NoError(t, err) - } - } else { - require.NoError(t, err) - } - count += 1 - if count > 25 { - require.NoError(t, err) - } - recording.Sleep(5 * time.Second) + updatedPolicy := azcertificates.CertificatePolicy{ + KeyProperties: &azcertificates.KeyProperties{ + Curve: to.Ptr(azcertificates.JSONWebKeyCurveNameP256K), + Exportable: to.Ptr(true), + KeySize: to.Ptr(int32(256)), + KeyType: to.Ptr(azcertificates.JSONWebKeyTypeEC), + ReuseKey: to.Ptr(false), + }, } -} - -func TestClient_ListDeletedCertificates(t *testing.T) { - stop := startTest(t) - defer stop() - - client, err := createClient(t) + updateResp, err := client.UpdateCertificatePolicy(ctx, certName, updatedPolicy, nil) require.NoError(t, err) - - var names []string - createdCount := 0 - for i := 0; i < 4; i++ { - name, err := createRandomName(t, fmt.Sprintf("delCert%d", i)) - require.NoError(t, err) - names = append(names, name) - createCert(t, client, name) - createdCount++ - } - require.Equal(t, 4, createdCount) - - for _, name := range names { - poller, err := client.BeginDeleteCertificate(ctx, name, nil) - require.NoError(t, err) - _, err = poller.PollUntilDone(ctx, delay()) - require.NoError(t, err) - } - - pager := client.NewListDeletedCertificatesPager(nil) - deletedCount := 0 - for pager.More() { - page, err := pager.NextPage(ctx) - require.NoError(t, err) - for _, cert := range page.DeletedCertificates { - purgeCert(t, client, *cert.Name) - deletedCount += 1 - } - } - require.Equal(t, createdCount, deletedCount) + require.Equal(t, policy.IssuerParameters, updateResp.CertificatePolicy.IssuerParameters) + require.Equal(t, updatedPolicy.KeyProperties, updateResp.CertificatePolicy.KeyProperties) + require.Equal(t, policy.LifetimeActions, updateResp.CertificatePolicy.LifetimeActions) + require.Equal(t, policy.SecretProperties, updateResp.CertificatePolicy.SecretProperties) + require.Equal(t, policy.X509CertificateProperties, updateResp.CertificatePolicy.X509CertificateProperties) } diff --git a/sdk/keyvault/azcertificates/constants.go b/sdk/keyvault/azcertificates/constants.go index 772aedc378e2..f37d8a6d36a8 100644 --- a/sdk/keyvault/azcertificates/constants.go +++ b/sdk/keyvault/azcertificates/constants.go @@ -3,123 +3,151 @@ // Copyright (c) Microsoft Corporation. All rights reserved. // Licensed under the MIT License. See License.txt in the project root for license information. +// Code generated by Microsoft (R) AutoRest Code Generator. +// Changes may cause incorrect behavior and will be lost if the code is regenerated. +// DO NOT EDIT. package azcertificates -// PolicyAction - The type of the action. -type PolicyAction string +// ActionType - The type of the action. +type ActionType string const ( - PolicyActionEmailContacts PolicyAction = "EmailContacts" - PolicyActionAutoRenew PolicyAction = "AutoRenew" + ActionTypeEmailContacts ActionType = "EmailContacts" + ActionTypeAutoRenew ActionType = "AutoRenew" ) -// PossiblePolicyActionValues returns a slice of all possible CertificatePolicyAction values. -func PossiblePolicyActionValues() []PolicyAction { - return []PolicyAction{ - PolicyActionEmailContacts, - PolicyActionAutoRenew, +// PossibleActionTypeValues returns the possible values for the ActionType const type. +func PossibleActionTypeValues() []ActionType { + return []ActionType{ + ActionTypeEmailContacts, + ActionTypeAutoRenew, } } -// KeyCurveName - Elliptic curve name. For valid values, see KeyCurveName. -type KeyCurveName string +// DeletionRecoveryLevel - Reflects the deletion recovery level currently in effect for certificates in the current vault. +// If it contains 'Purgeable', the certificate can be permanently deleted by a privileged user; otherwise, +// only the system can purge the certificate, at the end of the retention interval. +type DeletionRecoveryLevel string const ( - KeyCurveNameP256 KeyCurveName = "P-256" - KeyCurveNameP256K KeyCurveName = "P-256K" - KeyCurveNameP384 KeyCurveName = "P-384" - KeyCurveNameP521 KeyCurveName = "P-521" + // DeletionRecoveryLevelCustomizedRecoverable - Denotes a vault state in which deletion is recoverable without the possibility + // for immediate and permanent deletion (i.e. purge when 7<= SoftDeleteRetentionInDays < 90).This level guarantees the recoverability + // of the deleted entity during the retention interval and while the subscription is still available. + DeletionRecoveryLevelCustomizedRecoverable DeletionRecoveryLevel = "CustomizedRecoverable" + // DeletionRecoveryLevelCustomizedRecoverableProtectedSubscription - Denotes a vault and subscription state in which deletion + // is recoverable, immediate and permanent deletion (i.e. purge) is not permitted, and in which the subscription itself cannot + // be permanently canceled when 7<= SoftDeleteRetentionInDays < 90. This level guarantees the recoverability of the deleted + // entity during the retention interval, and also reflects the fact that the subscription itself cannot be cancelled. + DeletionRecoveryLevelCustomizedRecoverableProtectedSubscription DeletionRecoveryLevel = "CustomizedRecoverable+ProtectedSubscription" + // DeletionRecoveryLevelCustomizedRecoverablePurgeable - Denotes a vault state in which deletion is recoverable, and which + // also permits immediate and permanent deletion (i.e. purge when 7<= SoftDeleteRetentionInDays < 90). This level guarantees + // the recoverability of the deleted entity during the retention interval, unless a Purge operation is requested, or the subscription + // is cancelled. + DeletionRecoveryLevelCustomizedRecoverablePurgeable DeletionRecoveryLevel = "CustomizedRecoverable+Purgeable" + // DeletionRecoveryLevelPurgeable - Denotes a vault state in which deletion is an irreversible operation, without the possibility + // for recovery. This level corresponds to no protection being available against a Delete operation; the data is irretrievably + // lost upon accepting a Delete operation at the entity level or higher (vault, resource group, subscription etc.) + DeletionRecoveryLevelPurgeable DeletionRecoveryLevel = "Purgeable" + // DeletionRecoveryLevelRecoverable - Denotes a vault state in which deletion is recoverable without the possibility for immediate + // and permanent deletion (i.e. purge). This level guarantees the recoverability of the deleted entity during the retention + // interval(90 days) and while the subscription is still available. System wil permanently delete it after 90 days, if not + // recovered + DeletionRecoveryLevelRecoverable DeletionRecoveryLevel = "Recoverable" + // DeletionRecoveryLevelRecoverableProtectedSubscription - Denotes a vault and subscription state in which deletion is recoverable + // within retention interval (90 days), immediate and permanent deletion (i.e. purge) is not permitted, and in which the subscription + // itself cannot be permanently canceled. System wil permanently delete it after 90 days, if not recovered + DeletionRecoveryLevelRecoverableProtectedSubscription DeletionRecoveryLevel = "Recoverable+ProtectedSubscription" + // DeletionRecoveryLevelRecoverablePurgeable - Denotes a vault state in which deletion is recoverable, and which also permits + // immediate and permanent deletion (i.e. purge). This level guarantees the recoverability of the deleted entity during the + // retention interval (90 days), unless a Purge operation is requested, or the subscription is cancelled. System wil permanently + // delete it after 90 days, if not recovered + DeletionRecoveryLevelRecoverablePurgeable DeletionRecoveryLevel = "Recoverable+Purgeable" ) -// PossibleKeyCurveNameValues returns a slice of all possible CertificateKeyCurveName values. -func PossibleKeyCurveNameValues() []KeyCurveName { - return []KeyCurveName{ - KeyCurveNameP256, - KeyCurveNameP256K, - KeyCurveNameP384, - KeyCurveNameP521, +// PossibleDeletionRecoveryLevelValues returns the possible values for the DeletionRecoveryLevel const type. +func PossibleDeletionRecoveryLevelValues() []DeletionRecoveryLevel { + return []DeletionRecoveryLevel{ + DeletionRecoveryLevelCustomizedRecoverable, + DeletionRecoveryLevelCustomizedRecoverableProtectedSubscription, + DeletionRecoveryLevelCustomizedRecoverablePurgeable, + DeletionRecoveryLevelPurgeable, + DeletionRecoveryLevelRecoverable, + DeletionRecoveryLevelRecoverableProtectedSubscription, + DeletionRecoveryLevelRecoverablePurgeable, } } -// KeyType - The type of key pair to be used for the certificate. -type KeyType string +// JSONWebKeyCurveName - Elliptic curve name. For valid values, see JsonWebKeyCurveName. +type JSONWebKeyCurveName string const ( - KeyTypeEC KeyType = "EC" - KeyTypeECHSM KeyType = "EC-HSM" - KeyTypeRSA KeyType = "RSA" - KeyTypeRSAHSM KeyType = "RSA-HSM" + JSONWebKeyCurveNameP256 JSONWebKeyCurveName = "P-256" + JSONWebKeyCurveNameP256K JSONWebKeyCurveName = "P-256K" + JSONWebKeyCurveNameP384 JSONWebKeyCurveName = "P-384" + JSONWebKeyCurveNameP521 JSONWebKeyCurveName = "P-521" ) -// PossibleKeyTypeValues returns a slice of all possible CertificateKeyType values. -func PossibleKeyTypeValues() []KeyType { - return []KeyType{ - KeyTypeEC, - KeyTypeECHSM, - KeyTypeRSA, - KeyTypeRSAHSM, +// PossibleJSONWebKeyCurveNameValues returns the possible values for the JSONWebKeyCurveName const type. +func PossibleJSONWebKeyCurveNameValues() []JSONWebKeyCurveName { + return []JSONWebKeyCurveName{ + JSONWebKeyCurveNameP256, + JSONWebKeyCurveNameP256K, + JSONWebKeyCurveNameP384, + JSONWebKeyCurveNameP521, } } -// KeyUsage is the key usage for a certificate -type KeyUsage string +// JSONWebKeyType - The type of key pair to be used for the certificate. +type JSONWebKeyType string const ( - KeyUsageCRLSign KeyUsage = "cRLSign" - KeyUsageDataEncipherment KeyUsage = "dataEncipherment" - KeyUsageDecipherOnly KeyUsage = "decipherOnly" - KeyUsageDigitalSignature KeyUsage = "digitalSignature" - KeyUsageEncipherOnly KeyUsage = "encipherOnly" - KeyUsageKeyAgreement KeyUsage = "keyAgreement" - KeyUsageKeyCertSign KeyUsage = "keyCertSign" - KeyUsageKeyEncipherment KeyUsage = "keyEncipherment" - KeyUsageNonRepudiation KeyUsage = "nonRepudiation" + JSONWebKeyTypeEC JSONWebKeyType = "EC" + JSONWebKeyTypeECHSM JSONWebKeyType = "EC-HSM" + JSONWebKeyTypeOct JSONWebKeyType = "oct" + JSONWebKeyTypeOctHSM JSONWebKeyType = "oct-HSM" + JSONWebKeyTypeRSA JSONWebKeyType = "RSA" + JSONWebKeyTypeRSAHSM JSONWebKeyType = "RSA-HSM" ) -// PossibleKeyUsageValues returns a slice of all possible CertificateKeyUsage values. -func PossibleKeyUsageValues() []KeyUsage { - return []KeyUsage{ - KeyUsageCRLSign, - KeyUsageDataEncipherment, - KeyUsageDecipherOnly, - KeyUsageDigitalSignature, - KeyUsageEncipherOnly, - KeyUsageKeyAgreement, - KeyUsageKeyCertSign, - KeyUsageKeyEncipherment, - KeyUsageNonRepudiation, +// PossibleJSONWebKeyTypeValues returns the possible values for the JSONWebKeyType const type. +func PossibleJSONWebKeyTypeValues() []JSONWebKeyType { + return []JSONWebKeyType{ + JSONWebKeyTypeEC, + JSONWebKeyTypeECHSM, + JSONWebKeyTypeOct, + JSONWebKeyTypeOctHSM, + JSONWebKeyTypeRSA, + JSONWebKeyTypeRSAHSM, } } -// CertificateContentType is the content type of the certificate. -type CertificateContentType string +// KeyUsageType - Defines how the certificate's key may be used. +type KeyUsageType string const ( - CertificateContentTypePKCS12 CertificateContentType = "application/x-pkcs12" - CertificateContentTypePEM CertificateContentType = "application/x-pem-file" + KeyUsageTypeCRLSign KeyUsageType = "cRLSign" + KeyUsageTypeDataEncipherment KeyUsageType = "dataEncipherment" + KeyUsageTypeDecipherOnly KeyUsageType = "decipherOnly" + KeyUsageTypeDigitalSignature KeyUsageType = "digitalSignature" + KeyUsageTypeEncipherOnly KeyUsageType = "encipherOnly" + KeyUsageTypeKeyAgreement KeyUsageType = "keyAgreement" + KeyUsageTypeKeyCertSign KeyUsageType = "keyCertSign" + KeyUsageTypeKeyEncipherment KeyUsageType = "keyEncipherment" + KeyUsageTypeNonRepudiation KeyUsageType = "nonRepudiation" ) -// PossibleCertificateContentTypeValues returns a slice of all possible CertificateContentType values. -func PossibleCertificateContentTypeValues() []CertificateContentType { - return []CertificateContentType{ - CertificateContentTypePEM, - CertificateContentTypePKCS12, - } -} - -// WellKnownIssuerNames names you can use when creating a certificate policy -type WellKnownIssuerNames string - -const ( - WellKnownIssuerNamesSelf WellKnownIssuerNames = "Self" - WellKnownIssuerNamesUnknown WellKnownIssuerNames = "Unknown" -) - -// PossibleWellKnownIssuerNamesValues returns a slice of all possible WellKnownIssuer values. -func PossibleWellKnownIssuerNamesValues() []WellKnownIssuerNames { - return []WellKnownIssuerNames{ - WellKnownIssuerNamesSelf, - WellKnownIssuerNamesUnknown, +// PossibleKeyUsageTypeValues returns the possible values for the KeyUsageType const type. +func PossibleKeyUsageTypeValues() []KeyUsageType { + return []KeyUsageType{ + KeyUsageTypeCRLSign, + KeyUsageTypeDataEncipherment, + KeyUsageTypeDecipherOnly, + KeyUsageTypeDigitalSignature, + KeyUsageTypeEncipherOnly, + KeyUsageTypeKeyAgreement, + KeyUsageTypeKeyCertSign, + KeyUsageTypeKeyEncipherment, + KeyUsageTypeNonRepudiation, } } diff --git a/sdk/keyvault/azcertificates/custom_client.go b/sdk/keyvault/azcertificates/custom_client.go new file mode 100644 index 000000000000..8f4090bc6455 --- /dev/null +++ b/sdk/keyvault/azcertificates/custom_client.go @@ -0,0 +1,41 @@ +//go:build go1.18 +// +build go1.18 + +// Copyright (c) Microsoft Corporation. All rights reserved. +// Licensed under the MIT License. See License.txt in the project root for license information. + +package azcertificates + +// this file contains handwritten additions to the generated code + +import ( + "github.com/Azure/azure-sdk-for-go/sdk/azcore" + "github.com/Azure/azure-sdk-for-go/sdk/azcore/policy" + "github.com/Azure/azure-sdk-for-go/sdk/azcore/runtime" + "github.com/Azure/azure-sdk-for-go/sdk/keyvault/internal" +) + +// NewClient creates a client that accesses a Key Vault's certificates. +func NewClient(vaultURL string, credential azcore.TokenCredential, options *azcore.ClientOptions) *Client { + authPolicy := internal.NewKeyVaultChallengePolicy(credential) + pl := runtime.NewPipeline(moduleName, version, runtime.PipelineOptions{PerRetry: []policy.Policy{authPolicy}}, options) + return &Client{endpoint: vaultURL, pl: pl} +} + +// ID is a certificate's unique ID, containing its name and version. +type ID string + +// Name of the certificate. +func (i *ID) Name() string { + _, name, _ := internal.ParseID((*string)(i)) + return *name +} + +// Version of the certificate. Returns an empty string when the ID contains no version. +func (i *ID) Version() string { + _, _, version := internal.ParseID((*string)(i)) + if version == nil { + return "" + } + return *version +} diff --git a/sdk/keyvault/azcertificates/doc.go b/sdk/keyvault/azcertificates/doc.go deleted file mode 100644 index 317b3193f778..000000000000 --- a/sdk/keyvault/azcertificates/doc.go +++ /dev/null @@ -1,19 +0,0 @@ -//go:build go1.18 -// +build go1.18 - -// Copyright (c) Microsoft Corporation. All rights reserved. -// Licensed under the MIT License. See License.txt in the project root for license information. - -/* - -Key Vault certificates support provides for management of your x509 certificates and the following behaviors: - -* Allows a certificate owner to create a certificate through a Key Vault creation process or through the import of an existing certificate. Includes both self-signed and Certificate Authority generated certificates. -* Allows a Key Vault certificate owner to implement secure storage and management of X509 certificates without interaction with private key material. -* Allows a certificate owner to create a policy that directs Key Vault to manage the life-cycle of a certificate. -* Allows certificate owners to provide contact information for notification about life-cycle events of expiration and renewal of certificate. -* Supports automatic renewal with selected issuers - Key Vault partner X509 certificate providers / certificate authorities. - -*/ - -package azcertificates diff --git a/sdk/keyvault/azcertificates/example_test.go b/sdk/keyvault/azcertificates/example_test.go index a34929036839..78642ee1bd8f 100644 --- a/sdk/keyvault/azcertificates/example_test.go +++ b/sdk/keyvault/azcertificates/example_test.go @@ -8,277 +8,85 @@ package azcertificates_test import ( "context" - "crypto/rand" - "crypto/x509" - "encoding/base64" - "encoding/pem" "fmt" - "io/ioutil" - "log" - "math/big" - "os" - "strings" - "time" - "github.com/Azure/azure-sdk-for-go/sdk/azcore/runtime" "github.com/Azure/azure-sdk-for-go/sdk/azcore/to" "github.com/Azure/azure-sdk-for-go/sdk/azidentity" "github.com/Azure/azure-sdk-for-go/sdk/keyvault/azcertificates" ) +var client *azcertificates.Client + func ExampleNewClient() { cred, err := azidentity.NewDefaultAzureCredential(nil) if err != nil { - panic(err) - } - - vaultURL, ok := os.LookupEnv("AZURE_KEYVAULT_URL") - if !ok { - log.Fatalf("Could not find 'AZURE_KEYVAULT_URL' in environment variables") + // TODO: handle error } + vaultURL := "https://.vault.azure.net" + client := azcertificates.NewClient(vaultURL, cred, nil) - client, err := azcertificates.NewClient(vaultURL, cred, nil) - if err != nil { - panic(err) - } - fmt.Println(client) + _ = client } -func ExampleClient_BeginCreateCertificate() { - cred, err := azidentity.NewDefaultAzureCredential(nil) - if err != nil { - panic(err) - } - - vaultURL, ok := os.LookupEnv("AZURE_KEYVAULT_URL") - if !ok { - log.Fatalf("Could not find 'AZURE_KEYVAULT_URL' in environment variables") - } - - client, err := azcertificates.NewClient(vaultURL, cred, nil) - if err != nil { - panic(err) - } - - resp, err := client.BeginCreateCertificate(context.TODO(), "certificateName", azcertificates.NewDefaultCertificatePolicy(), nil) - if err != nil { - panic(err) +func ExampleClient_CreateCertificate() { + createParams := azcertificates.CreateCertificateParameters{ + // this policy is suitable for a self-signed certificate + CertificatePolicy: &azcertificates.CertificatePolicy{ + IssuerParameters: &azcertificates.IssuerParameters{Name: (*string)(to.Ptr("self"))}, + X509CertificateProperties: &azcertificates.X509CertificateProperties{Subject: to.Ptr("CN=DefaultPolicy")}, + }, } - - finalResponse, err := resp.PollUntilDone(context.TODO(), &runtime.PollUntilDoneOptions{Frequency: time.Second}) + resp, err := client.CreateCertificate(context.TODO(), "certificateName", createParams, nil) if err != nil { - panic(err) + // TODO: handle error } - fmt.Println("Created a certificate with ID: ", *finalResponse.ID) + fmt.Println("Created a certificate with ID:", *resp.ID) } func ExampleClient_GetCertificate() { - cred, err := azidentity.NewDefaultAzureCredential(nil) + // passing an empty string for the version gets the latest version of the certificate + resp, err := client.GetCertificate(context.TODO(), "certName", "", nil) if err != nil { - panic(err) - } - - vaultURL, ok := os.LookupEnv("AZURE_KEYVAULT_URL") - if !ok { - log.Fatalf("Could not find 'AZURE_KEYVAULT_URL' in environment variables") - } - - client, err := azcertificates.NewClient(vaultURL, cred, nil) - if err != nil { - panic(err) - } - - resp, err := client.GetCertificate(context.TODO(), "myCertName", nil) - if err != nil { - panic(err) + // TODO: handle error } fmt.Println(*resp.ID) - - // optionally you can get a specific version - resp, err = client.GetCertificate(context.TODO(), "myCertName", &azcertificates.GetCertificateOptions{Version: "myCertVersion"}) - if err != nil { - panic(err) - } } -func ExampleClient_UpdateCertificateProperties() { - cred, err := azidentity.NewDefaultAzureCredential(nil) - if err != nil { - panic(err) +func ExampleClient_UpdateCertificate() { + updateParams := azcertificates.UpdateCertificateParameters{ + CertificateAttributes: &azcertificates.CertificateAttributes{Enabled: to.Ptr(false)}, } - - vaultURL, ok := os.LookupEnv("AZURE_KEYVAULT_URL") - if !ok { - log.Fatalf("Could not find 'AZURE_KEYVAULT_URL' in environment variables") - } - - client, err := azcertificates.NewClient(vaultURL, cred, nil) - if err != nil { - panic(err) - } - - getResp, err := client.GetCertificate(context.TODO(), "myCertName", nil) - if err != nil { - panic(err) - } - - getResp.Properties.Enabled = to.Ptr(false) - getResp.Properties.Tags["Tag1"] = to.Ptr("Val1") - resp, err := client.UpdateCertificateProperties(context.TODO(), *getResp.Properties, nil) + // passing an empty string for the version updates the latest version of the certificate + resp, err := client.UpdateCertificate(context.TODO(), "certName", "", updateParams, nil) if err != nil { - panic(err) + // TODO: handle error } fmt.Println(*resp.ID) - fmt.Println(*resp.Properties.Enabled) - fmt.Println(resp.Properties.Tags) } -func ExampleClient_NewListPropertiesOfCertificatesPager() { - cred, err := azidentity.NewDefaultAzureCredential(nil) - if err != nil { - panic(err) - } - - vaultURL, ok := os.LookupEnv("AZURE_KEYVAULT_URL") - if !ok { - log.Fatalf("Could not find 'AZURE_KEYVAULT_URL' in environment variables") - } - - client, err := azcertificates.NewClient(vaultURL, cred, nil) - if err != nil { - panic(err) - } - - pager := client.NewListPropertiesOfCertificatesPager(nil) +func ExampleClient_NewListCertificatesPager() { + pager := client.NewListCertificatesPager(nil) for pager.More() { page, err := pager.NextPage(context.TODO()) if err != nil { - panic(err) + // TODO: handle error } - for _, cert := range page.Certificates { + for _, cert := range page.Value { fmt.Println(*cert.ID) } } } -func ExampleClient_BeginDeleteCertificate() { - cred, err := azidentity.NewDefaultAzureCredential(nil) +func ExampleClient_DeleteCertificate() { + // DeleteCertificate returns when Key Vault has begun deleting the certificate. That can take several + // seconds to complete, so it may be necessary to wait before performing other operations on the + // deleted certificate. + resp, err := client.DeleteCertificate(context.TODO(), "certName", nil) if err != nil { - panic(err) - } - - vaultURL, ok := os.LookupEnv("AZURE_KEYVAULT_URL") - if !ok { - log.Fatalf("Could not find 'AZURE_KEYVAULT_URL' in environment variables") + // TODO: handle error } - client, err := azcertificates.NewClient(vaultURL, cred, nil) - if err != nil { - panic(err) - } - - pollerResp, err := client.BeginDeleteCertificate(context.TODO(), "certToDelete", nil) - if err != nil { - panic(err) - } - finalResp, err := pollerResp.PollUntilDone(context.TODO(), &runtime.PollUntilDoneOptions{Frequency: time.Second}) - if err != nil { - panic(err) - } - - fmt.Println("Deleted certificate with ID: ", *finalResp.ID) -} - -func ExampleClient_MergeCertificate() { - cred, err := azidentity.NewDefaultAzureCredential(nil) - if err != nil { - panic(err) - } - - vaultURL, ok := os.LookupEnv("AZURE_KEYVAULT_URL") - if !ok { - log.Fatalf("Could not find 'AZURE_KEYVAULT_URL' in environment variables") - } - - client, err := azcertificates.NewClient(vaultURL, cred, nil) - if err != nil { - panic(err) - } - - certPolicy := azcertificates.NewDefaultCertificatePolicy() - certPolicy.IssuerParameters.CertificateTransparency = to.Ptr(false) - - // Load public key - data, err := ioutil.ReadFile("path/to/cert/ca.crt") - if err != nil { - panic(err) - } - block, _ := pem.Decode(data) - caCert, err := x509.ParseCertificate(block.Bytes) - if err != nil { - panic(err) - } - - data, err = ioutil.ReadFile("path/to/certkey/ca.key") - if err != nil { - panic(err) - } - pkeyBlock, _ := pem.Decode(data) - pkey, err := x509.ParsePKCS1PrivateKey(pkeyBlock.Bytes) - if err != nil { - panic(err) - } - - resp, err := client.BeginCreateCertificate(context.TODO(), "myCertName", certPolicy, nil) - if err != nil { - panic(err) - } - _, err = resp.PollUntilDone(context.TODO(), &runtime.PollUntilDoneOptions{Frequency: time.Second}) - if err != nil { - panic(err) - } - - certOpResp, err := client.GetCertificateOperation(context.TODO(), "myCertName", nil) - if err != nil { - panic(err) - } - - mid := base64.StdEncoding.EncodeToString(certOpResp.CSR) - csr := fmt.Sprintf("-----BEGIN CERTIFICATE REQUEST-----\n%s\n-----END CERTIFICATE REQUEST-----", mid) - - // load certificate request - csrblock, _ := pem.Decode([]byte(csr)) - req, err := x509.ParseCertificateRequest(csrblock.Bytes) - if err != nil { - panic(err) - } - - cert := x509.Certificate{ - SerialNumber: big.NewInt(1), - NotBefore: time.Now(), - NotAfter: time.Now().Add(24 * time.Hour), - Issuer: caCert.Issuer, - Subject: req.Subject, - PublicKey: req.PublicKey, - PublicKeyAlgorithm: req.PublicKeyAlgorithm, - Signature: req.Signature, - SignatureAlgorithm: req.SignatureAlgorithm, - } - - certBytes, err := x509.CreateCertificate(rand.Reader, &cert, caCert, req.PublicKey, pkey) - if err != nil { - panic(err) - } - - // Need to strip the BEGIN/END from the certificate - certificateString := string(certBytes) - certificateString = strings.Replace(certificateString, "-----Begin Certificate-----", "", 1) - certificateString = strings.Replace(certificateString, "-----End Certificate-----", "", 1) - - mergeResp, err := client.MergeCertificate(context.TODO(), "myCertName", [][]byte{[]byte(certificateString)}, nil) - if err != nil { - panic(err) - } - _ = mergeResp + // In a soft-delete enabled vault, deleted resources can be recovered until they're purged (permanently deleted). + fmt.Printf("Certificate will be purged at %v", *resp.ScheduledPurgeDate) } diff --git a/sdk/keyvault/azcertificates/internal/generated/constants.go b/sdk/keyvault/azcertificates/internal/generated/constants.go deleted file mode 100644 index 147d83c49126..000000000000 --- a/sdk/keyvault/azcertificates/internal/generated/constants.go +++ /dev/null @@ -1,156 +0,0 @@ -//go:build go1.18 -// +build go1.18 - -// Copyright (c) Microsoft Corporation. All rights reserved. -// Licensed under the MIT License. See License.txt in the project root for license information. -// Code generated by Microsoft (R) AutoRest Code Generator. -// Changes may cause incorrect behavior and will be lost if the code is regenerated. - -package generated - -const ( - ModuleName = "azcertificates" - ModuleVersion = "v0.5.0" -) - -// ActionType - The type of the action. -type ActionType string - -const ( - ActionTypeEmailContacts ActionType = "EmailContacts" - ActionTypeAutoRenew ActionType = "AutoRenew" -) - -// PossibleActionTypeValues returns the possible values for the ActionType const type. -func PossibleActionTypeValues() []ActionType { - return []ActionType{ - ActionTypeEmailContacts, - ActionTypeAutoRenew, - } -} - -// DeletionRecoveryLevel - Reflects the deletion recovery level currently in effect for certificates in the current vault. -// If it contains 'Purgeable', the certificate can be permanently deleted by a privileged user; otherwise, -// only the system can purge the certificate, at the end of the retention interval. -type DeletionRecoveryLevel string - -const ( - // DeletionRecoveryLevelCustomizedRecoverable - Denotes a vault state in which deletion is recoverable without the possibility - // for immediate and permanent deletion (i.e. purge when 7<= SoftDeleteRetentionInDays < 90).This level guarantees the recoverability - // of the deleted entity during the retention interval and while the subscription is still available. - DeletionRecoveryLevelCustomizedRecoverable DeletionRecoveryLevel = "CustomizedRecoverable" - // DeletionRecoveryLevelCustomizedRecoverableProtectedSubscription - Denotes a vault and subscription state in which deletion - // is recoverable, immediate and permanent deletion (i.e. purge) is not permitted, and in which the subscription itself cannot - // be permanently canceled when 7<= SoftDeleteRetentionInDays < 90. This level guarantees the recoverability of the deleted - // entity during the retention interval, and also reflects the fact that the subscription itself cannot be cancelled. - DeletionRecoveryLevelCustomizedRecoverableProtectedSubscription DeletionRecoveryLevel = "CustomizedRecoverable+ProtectedSubscription" - // DeletionRecoveryLevelCustomizedRecoverablePurgeable - Denotes a vault state in which deletion is recoverable, and which - // also permits immediate and permanent deletion (i.e. purge when 7<= SoftDeleteRetentionInDays < 90). This level guarantees - // the recoverability of the deleted entity during the retention interval, unless a Purge operation is requested, or the subscription - // is cancelled. - DeletionRecoveryLevelCustomizedRecoverablePurgeable DeletionRecoveryLevel = "CustomizedRecoverable+Purgeable" - // DeletionRecoveryLevelPurgeable - Denotes a vault state in which deletion is an irreversible operation, without the possibility - // for recovery. This level corresponds to no protection being available against a Delete operation; the data is irretrievably - // lost upon accepting a Delete operation at the entity level or higher (vault, resource group, subscription etc.) - DeletionRecoveryLevelPurgeable DeletionRecoveryLevel = "Purgeable" - // DeletionRecoveryLevelRecoverable - Denotes a vault state in which deletion is recoverable without the possibility for immediate - // and permanent deletion (i.e. purge). This level guarantees the recoverability of the deleted entity during the retention - // interval(90 days) and while the subscription is still available. System wil permanently delete it after 90 days, if not - // recovered - DeletionRecoveryLevelRecoverable DeletionRecoveryLevel = "Recoverable" - // DeletionRecoveryLevelRecoverableProtectedSubscription - Denotes a vault and subscription state in which deletion is recoverable - // within retention interval (90 days), immediate and permanent deletion (i.e. purge) is not permitted, and in which the subscription - // itself cannot be permanently canceled. System wil permanently delete it after 90 days, if not recovered - DeletionRecoveryLevelRecoverableProtectedSubscription DeletionRecoveryLevel = "Recoverable+ProtectedSubscription" - // DeletionRecoveryLevelRecoverablePurgeable - Denotes a vault state in which deletion is recoverable, and which also permits - // immediate and permanent deletion (i.e. purge). This level guarantees the recoverability of the deleted entity during the - // retention interval (90 days), unless a Purge operation is requested, or the subscription is cancelled. System wil permanently - // delete it after 90 days, if not recovered - DeletionRecoveryLevelRecoverablePurgeable DeletionRecoveryLevel = "Recoverable+Purgeable" -) - -// PossibleDeletionRecoveryLevelValues returns the possible values for the DeletionRecoveryLevel const type. -func PossibleDeletionRecoveryLevelValues() []DeletionRecoveryLevel { - return []DeletionRecoveryLevel{ - DeletionRecoveryLevelCustomizedRecoverable, - DeletionRecoveryLevelCustomizedRecoverableProtectedSubscription, - DeletionRecoveryLevelCustomizedRecoverablePurgeable, - DeletionRecoveryLevelPurgeable, - DeletionRecoveryLevelRecoverable, - DeletionRecoveryLevelRecoverableProtectedSubscription, - DeletionRecoveryLevelRecoverablePurgeable, - } -} - -// JSONWebKeyCurveName - Elliptic curve name. For valid values, see JsonWebKeyCurveName. -type JSONWebKeyCurveName string - -const ( - JSONWebKeyCurveNameP256 JSONWebKeyCurveName = "P-256" - JSONWebKeyCurveNameP256K JSONWebKeyCurveName = "P-256K" - JSONWebKeyCurveNameP384 JSONWebKeyCurveName = "P-384" - JSONWebKeyCurveNameP521 JSONWebKeyCurveName = "P-521" -) - -// PossibleJSONWebKeyCurveNameValues returns the possible values for the JSONWebKeyCurveName const type. -func PossibleJSONWebKeyCurveNameValues() []JSONWebKeyCurveName { - return []JSONWebKeyCurveName{ - JSONWebKeyCurveNameP256, - JSONWebKeyCurveNameP256K, - JSONWebKeyCurveNameP384, - JSONWebKeyCurveNameP521, - } -} - -// JSONWebKeyType - The type of key pair to be used for the certificate. -type JSONWebKeyType string - -const ( - JSONWebKeyTypeEC JSONWebKeyType = "EC" - JSONWebKeyTypeECHSM JSONWebKeyType = "EC-HSM" - JSONWebKeyTypeOct JSONWebKeyType = "oct" - JSONWebKeyTypeOctHSM JSONWebKeyType = "oct-HSM" - JSONWebKeyTypeRSA JSONWebKeyType = "RSA" - JSONWebKeyTypeRSAHSM JSONWebKeyType = "RSA-HSM" -) - -// PossibleJSONWebKeyTypeValues returns the possible values for the JSONWebKeyType const type. -func PossibleJSONWebKeyTypeValues() []JSONWebKeyType { - return []JSONWebKeyType{ - JSONWebKeyTypeEC, - JSONWebKeyTypeECHSM, - JSONWebKeyTypeOct, - JSONWebKeyTypeOctHSM, - JSONWebKeyTypeRSA, - JSONWebKeyTypeRSAHSM, - } -} - -type KeyUsageType string - -const ( - KeyUsageTypeCRLSign KeyUsageType = "cRLSign" - KeyUsageTypeDataEncipherment KeyUsageType = "dataEncipherment" - KeyUsageTypeDecipherOnly KeyUsageType = "decipherOnly" - KeyUsageTypeDigitalSignature KeyUsageType = "digitalSignature" - KeyUsageTypeEncipherOnly KeyUsageType = "encipherOnly" - KeyUsageTypeKeyAgreement KeyUsageType = "keyAgreement" - KeyUsageTypeKeyCertSign KeyUsageType = "keyCertSign" - KeyUsageTypeKeyEncipherment KeyUsageType = "keyEncipherment" - KeyUsageTypeNonRepudiation KeyUsageType = "nonRepudiation" -) - -// PossibleKeyUsageTypeValues returns the possible values for the KeyUsageType const type. -func PossibleKeyUsageTypeValues() []KeyUsageType { - return []KeyUsageType{ - KeyUsageTypeCRLSign, - KeyUsageTypeDataEncipherment, - KeyUsageTypeDecipherOnly, - KeyUsageTypeDigitalSignature, - KeyUsageTypeEncipherOnly, - KeyUsageTypeKeyAgreement, - KeyUsageTypeKeyCertSign, - KeyUsageTypeKeyEncipherment, - KeyUsageTypeNonRepudiation, - } -} diff --git a/sdk/keyvault/azcertificates/internal/generated/custom_client.go b/sdk/keyvault/azcertificates/internal/generated/custom_client.go deleted file mode 100644 index 61ecd7a212c7..000000000000 --- a/sdk/keyvault/azcertificates/internal/generated/custom_client.go +++ /dev/null @@ -1,15 +0,0 @@ -//go:build go1.18 -// +build go1.18 - -package generated - -import "github.com/Azure/azure-sdk-for-go/sdk/azcore/runtime" - -// Copyright (c) Microsoft Corporation. All rights reserved. -// Licensed under the MIT License. See License.txt in the project root for license information. -// Code generated by Microsoft (R) AutoRest Code Generator. -// Changes may cause incorrect behavior and will be lost if the code is regenerated. - -func (client *KeyVaultClient) Pipeline() runtime.Pipeline { - return client.pl -} diff --git a/sdk/keyvault/azcertificates/internal/generated/keyvault_client.go b/sdk/keyvault/azcertificates/internal/generated/keyvault_client.go deleted file mode 100644 index 45293717d454..000000000000 --- a/sdk/keyvault/azcertificates/internal/generated/keyvault_client.go +++ /dev/null @@ -1,1462 +0,0 @@ -//go:build go1.18 -// +build go1.18 - -// Copyright (c) Microsoft Corporation. All rights reserved. -// Licensed under the MIT License. See License.txt in the project root for license information. -// Code generated by Microsoft (R) AutoRest Code Generator. -// Changes may cause incorrect behavior and will be lost if the code is regenerated. - -package generated - -import ( - "context" - "errors" - "net/http" - "net/url" - "strconv" - "strings" - - "github.com/Azure/azure-sdk-for-go/sdk/azcore/policy" - "github.com/Azure/azure-sdk-for-go/sdk/azcore/runtime" -) - -// KeyVaultClient contains the methods for the KeyVaultClient group. -// Don't use this type directly, use NewKeyVaultClient() instead. -type KeyVaultClient struct { - pl runtime.Pipeline -} - -// NewKeyVaultClient creates a new instance of KeyVaultClient with the specified values. -// pl - the pipeline used for sending requests and handling responses. -func NewKeyVaultClient(pl runtime.Pipeline) *KeyVaultClient { - client := &KeyVaultClient{ - pl: pl, - } - return client -} - -// BackupCertificate - Requests that a backup of the specified certificate be downloaded to the client. All versions of the -// certificate will be downloaded. This operation requires the certificates/backup permission. -// If the operation fails it returns an *azcore.ResponseError type. -// vaultBaseURL - The vault name, for example https://myvault.vault.azure.net. -// certificateName - The name of the certificate. -// options - KeyVaultClientBackupCertificateOptions contains the optional parameters for the KeyVaultClient.BackupCertificate -// method. -func (client *KeyVaultClient) BackupCertificate(ctx context.Context, vaultBaseURL string, certificateName string, options *KeyVaultClientBackupCertificateOptions) (KeyVaultClientBackupCertificateResponse, error) { - req, err := client.backupCertificateCreateRequest(ctx, vaultBaseURL, certificateName, options) - if err != nil { - return KeyVaultClientBackupCertificateResponse{}, err - } - resp, err := client.pl.Do(req) - if err != nil { - return KeyVaultClientBackupCertificateResponse{}, err - } - if !runtime.HasStatusCode(resp, http.StatusOK) { - return KeyVaultClientBackupCertificateResponse{}, runtime.NewResponseError(resp) - } - return client.backupCertificateHandleResponse(resp) -} - -// backupCertificateCreateRequest creates the BackupCertificate request. -func (client *KeyVaultClient) backupCertificateCreateRequest(ctx context.Context, vaultBaseURL string, certificateName string, options *KeyVaultClientBackupCertificateOptions) (*policy.Request, error) { - host := "{vaultBaseUrl}" - host = strings.ReplaceAll(host, "{vaultBaseUrl}", vaultBaseURL) - urlPath := "/certificates/{certificate-name}/backup" - if certificateName == "" { - return nil, errors.New("parameter certificateName cannot be empty") - } - urlPath = strings.ReplaceAll(urlPath, "{certificate-name}", url.PathEscape(certificateName)) - req, err := runtime.NewRequest(ctx, http.MethodPost, runtime.JoinPaths(host, urlPath)) - if err != nil { - return nil, err - } - reqQP := req.Raw().URL.Query() - reqQP.Set("api-version", "7.3") - req.Raw().URL.RawQuery = reqQP.Encode() - req.Raw().Header.Set("Accept", "application/json") - return req, nil -} - -// backupCertificateHandleResponse handles the BackupCertificate response. -func (client *KeyVaultClient) backupCertificateHandleResponse(resp *http.Response) (KeyVaultClientBackupCertificateResponse, error) { - result := KeyVaultClientBackupCertificateResponse{} - if err := runtime.UnmarshalAsJSON(resp, &result.BackupCertificateResult); err != nil { - return KeyVaultClientBackupCertificateResponse{}, err - } - return result, nil -} - -// CreateCertificate - If this is the first version, the certificate resource is created. This operation requires the certificates/create -// permission. -// If the operation fails it returns an *azcore.ResponseError type. -// vaultBaseURL - The vault name, for example https://myvault.vault.azure.net. -// certificateName - The name of the certificate. -// parameters - The parameters to create a certificate. -// options - KeyVaultClientCreateCertificateOptions contains the optional parameters for the KeyVaultClient.CreateCertificate -// method. -func (client *KeyVaultClient) CreateCertificate(ctx context.Context, vaultBaseURL string, certificateName string, parameters CertificateCreateParameters, options *KeyVaultClientCreateCertificateOptions) (KeyVaultClientCreateCertificateResponse, error) { - req, err := client.createCertificateCreateRequest(ctx, vaultBaseURL, certificateName, parameters, options) - if err != nil { - return KeyVaultClientCreateCertificateResponse{}, err - } - resp, err := client.pl.Do(req) - if err != nil { - return KeyVaultClientCreateCertificateResponse{}, err - } - if !runtime.HasStatusCode(resp, http.StatusAccepted) { - return KeyVaultClientCreateCertificateResponse{}, runtime.NewResponseError(resp) - } - return client.createCertificateHandleResponse(resp) -} - -// createCertificateCreateRequest creates the CreateCertificate request. -func (client *KeyVaultClient) createCertificateCreateRequest(ctx context.Context, vaultBaseURL string, certificateName string, parameters CertificateCreateParameters, options *KeyVaultClientCreateCertificateOptions) (*policy.Request, error) { - host := "{vaultBaseUrl}" - host = strings.ReplaceAll(host, "{vaultBaseUrl}", vaultBaseURL) - urlPath := "/certificates/{certificate-name}/create" - if certificateName == "" { - return nil, errors.New("parameter certificateName cannot be empty") - } - urlPath = strings.ReplaceAll(urlPath, "{certificate-name}", url.PathEscape(certificateName)) - req, err := runtime.NewRequest(ctx, http.MethodPost, runtime.JoinPaths(host, urlPath)) - if err != nil { - return nil, err - } - reqQP := req.Raw().URL.Query() - reqQP.Set("api-version", "7.3") - req.Raw().URL.RawQuery = reqQP.Encode() - req.Raw().Header.Set("Accept", "application/json") - return req, runtime.MarshalAsJSON(req, parameters) -} - -// createCertificateHandleResponse handles the CreateCertificate response. -func (client *KeyVaultClient) createCertificateHandleResponse(resp *http.Response) (KeyVaultClientCreateCertificateResponse, error) { - result := KeyVaultClientCreateCertificateResponse{} - if err := runtime.UnmarshalAsJSON(resp, &result.CertificateOperation); err != nil { - return KeyVaultClientCreateCertificateResponse{}, err - } - return result, nil -} - -// DeleteCertificate - Deletes all versions of a certificate object along with its associated policy. Delete certificate cannot -// be used to remove individual versions of a certificate object. This operation requires the -// certificates/delete permission. -// If the operation fails it returns an *azcore.ResponseError type. -// vaultBaseURL - The vault name, for example https://myvault.vault.azure.net. -// certificateName - The name of the certificate. -// options - KeyVaultClientDeleteCertificateOptions contains the optional parameters for the KeyVaultClient.DeleteCertificate -// method. -func (client *KeyVaultClient) DeleteCertificate(ctx context.Context, vaultBaseURL string, certificateName string, options *KeyVaultClientDeleteCertificateOptions) (KeyVaultClientDeleteCertificateResponse, error) { - req, err := client.deleteCertificateCreateRequest(ctx, vaultBaseURL, certificateName, options) - if err != nil { - return KeyVaultClientDeleteCertificateResponse{}, err - } - resp, err := client.pl.Do(req) - if err != nil { - return KeyVaultClientDeleteCertificateResponse{}, err - } - if !runtime.HasStatusCode(resp, http.StatusOK) { - return KeyVaultClientDeleteCertificateResponse{}, runtime.NewResponseError(resp) - } - return client.deleteCertificateHandleResponse(resp) -} - -// deleteCertificateCreateRequest creates the DeleteCertificate request. -func (client *KeyVaultClient) deleteCertificateCreateRequest(ctx context.Context, vaultBaseURL string, certificateName string, options *KeyVaultClientDeleteCertificateOptions) (*policy.Request, error) { - host := "{vaultBaseUrl}" - host = strings.ReplaceAll(host, "{vaultBaseUrl}", vaultBaseURL) - urlPath := "/certificates/{certificate-name}" - if certificateName == "" { - return nil, errors.New("parameter certificateName cannot be empty") - } - urlPath = strings.ReplaceAll(urlPath, "{certificate-name}", url.PathEscape(certificateName)) - req, err := runtime.NewRequest(ctx, http.MethodDelete, runtime.JoinPaths(host, urlPath)) - if err != nil { - return nil, err - } - reqQP := req.Raw().URL.Query() - reqQP.Set("api-version", "7.3") - req.Raw().URL.RawQuery = reqQP.Encode() - req.Raw().Header.Set("Accept", "application/json") - return req, nil -} - -// deleteCertificateHandleResponse handles the DeleteCertificate response. -func (client *KeyVaultClient) deleteCertificateHandleResponse(resp *http.Response) (KeyVaultClientDeleteCertificateResponse, error) { - result := KeyVaultClientDeleteCertificateResponse{} - if err := runtime.UnmarshalAsJSON(resp, &result.DeletedCertificateBundle); err != nil { - return KeyVaultClientDeleteCertificateResponse{}, err - } - return result, nil -} - -// DeleteCertificateContacts - Deletes the certificate contacts for a specified key vault certificate. This operation requires -// the certificates/managecontacts permission. -// If the operation fails it returns an *azcore.ResponseError type. -// vaultBaseURL - The vault name, for example https://myvault.vault.azure.net. -// options - KeyVaultClientDeleteCertificateContactsOptions contains the optional parameters for the KeyVaultClient.DeleteCertificateContacts -// method. -func (client *KeyVaultClient) DeleteCertificateContacts(ctx context.Context, vaultBaseURL string, options *KeyVaultClientDeleteCertificateContactsOptions) (KeyVaultClientDeleteCertificateContactsResponse, error) { - req, err := client.deleteCertificateContactsCreateRequest(ctx, vaultBaseURL, options) - if err != nil { - return KeyVaultClientDeleteCertificateContactsResponse{}, err - } - resp, err := client.pl.Do(req) - if err != nil { - return KeyVaultClientDeleteCertificateContactsResponse{}, err - } - if !runtime.HasStatusCode(resp, http.StatusOK) { - return KeyVaultClientDeleteCertificateContactsResponse{}, runtime.NewResponseError(resp) - } - return client.deleteCertificateContactsHandleResponse(resp) -} - -// deleteCertificateContactsCreateRequest creates the DeleteCertificateContacts request. -func (client *KeyVaultClient) deleteCertificateContactsCreateRequest(ctx context.Context, vaultBaseURL string, options *KeyVaultClientDeleteCertificateContactsOptions) (*policy.Request, error) { - host := "{vaultBaseUrl}" - host = strings.ReplaceAll(host, "{vaultBaseUrl}", vaultBaseURL) - urlPath := "/certificates/contacts" - req, err := runtime.NewRequest(ctx, http.MethodDelete, runtime.JoinPaths(host, urlPath)) - if err != nil { - return nil, err - } - reqQP := req.Raw().URL.Query() - reqQP.Set("api-version", "7.3") - req.Raw().URL.RawQuery = reqQP.Encode() - req.Raw().Header.Set("Accept", "application/json") - return req, nil -} - -// deleteCertificateContactsHandleResponse handles the DeleteCertificateContacts response. -func (client *KeyVaultClient) deleteCertificateContactsHandleResponse(resp *http.Response) (KeyVaultClientDeleteCertificateContactsResponse, error) { - result := KeyVaultClientDeleteCertificateContactsResponse{} - if err := runtime.UnmarshalAsJSON(resp, &result.Contacts); err != nil { - return KeyVaultClientDeleteCertificateContactsResponse{}, err - } - return result, nil -} - -// DeleteCertificateIssuer - The DeleteCertificateIssuer operation permanently removes the specified certificate issuer from -// the vault. This operation requires the certificates/manageissuers/deleteissuers permission. -// If the operation fails it returns an *azcore.ResponseError type. -// vaultBaseURL - The vault name, for example https://myvault.vault.azure.net. -// issuerName - The name of the issuer. -// options - KeyVaultClientDeleteCertificateIssuerOptions contains the optional parameters for the KeyVaultClient.DeleteCertificateIssuer -// method. -func (client *KeyVaultClient) DeleteCertificateIssuer(ctx context.Context, vaultBaseURL string, issuerName string, options *KeyVaultClientDeleteCertificateIssuerOptions) (KeyVaultClientDeleteCertificateIssuerResponse, error) { - req, err := client.deleteCertificateIssuerCreateRequest(ctx, vaultBaseURL, issuerName, options) - if err != nil { - return KeyVaultClientDeleteCertificateIssuerResponse{}, err - } - resp, err := client.pl.Do(req) - if err != nil { - return KeyVaultClientDeleteCertificateIssuerResponse{}, err - } - if !runtime.HasStatusCode(resp, http.StatusOK) { - return KeyVaultClientDeleteCertificateIssuerResponse{}, runtime.NewResponseError(resp) - } - return client.deleteCertificateIssuerHandleResponse(resp) -} - -// deleteCertificateIssuerCreateRequest creates the DeleteCertificateIssuer request. -func (client *KeyVaultClient) deleteCertificateIssuerCreateRequest(ctx context.Context, vaultBaseURL string, issuerName string, options *KeyVaultClientDeleteCertificateIssuerOptions) (*policy.Request, error) { - host := "{vaultBaseUrl}" - host = strings.ReplaceAll(host, "{vaultBaseUrl}", vaultBaseURL) - urlPath := "/certificates/issuers/{issuer-name}" - if issuerName == "" { - return nil, errors.New("parameter issuerName cannot be empty") - } - urlPath = strings.ReplaceAll(urlPath, "{issuer-name}", url.PathEscape(issuerName)) - req, err := runtime.NewRequest(ctx, http.MethodDelete, runtime.JoinPaths(host, urlPath)) - if err != nil { - return nil, err - } - reqQP := req.Raw().URL.Query() - reqQP.Set("api-version", "7.3") - req.Raw().URL.RawQuery = reqQP.Encode() - req.Raw().Header.Set("Accept", "application/json") - return req, nil -} - -// deleteCertificateIssuerHandleResponse handles the DeleteCertificateIssuer response. -func (client *KeyVaultClient) deleteCertificateIssuerHandleResponse(resp *http.Response) (KeyVaultClientDeleteCertificateIssuerResponse, error) { - result := KeyVaultClientDeleteCertificateIssuerResponse{} - if err := runtime.UnmarshalAsJSON(resp, &result.IssuerBundle); err != nil { - return KeyVaultClientDeleteCertificateIssuerResponse{}, err - } - return result, nil -} - -// DeleteCertificateOperation - Deletes the creation operation for a specified certificate that is in the process of being -// created. The certificate is no longer created. This operation requires the certificates/update permission. -// If the operation fails it returns an *azcore.ResponseError type. -// vaultBaseURL - The vault name, for example https://myvault.vault.azure.net. -// certificateName - The name of the certificate. -// options - KeyVaultClientDeleteCertificateOperationOptions contains the optional parameters for the KeyVaultClient.DeleteCertificateOperation -// method. -func (client *KeyVaultClient) DeleteCertificateOperation(ctx context.Context, vaultBaseURL string, certificateName string, options *KeyVaultClientDeleteCertificateOperationOptions) (KeyVaultClientDeleteCertificateOperationResponse, error) { - req, err := client.deleteCertificateOperationCreateRequest(ctx, vaultBaseURL, certificateName, options) - if err != nil { - return KeyVaultClientDeleteCertificateOperationResponse{}, err - } - resp, err := client.pl.Do(req) - if err != nil { - return KeyVaultClientDeleteCertificateOperationResponse{}, err - } - if !runtime.HasStatusCode(resp, http.StatusOK) { - return KeyVaultClientDeleteCertificateOperationResponse{}, runtime.NewResponseError(resp) - } - return client.deleteCertificateOperationHandleResponse(resp) -} - -// deleteCertificateOperationCreateRequest creates the DeleteCertificateOperation request. -func (client *KeyVaultClient) deleteCertificateOperationCreateRequest(ctx context.Context, vaultBaseURL string, certificateName string, options *KeyVaultClientDeleteCertificateOperationOptions) (*policy.Request, error) { - host := "{vaultBaseUrl}" - host = strings.ReplaceAll(host, "{vaultBaseUrl}", vaultBaseURL) - urlPath := "/certificates/{certificate-name}/pending" - if certificateName == "" { - return nil, errors.New("parameter certificateName cannot be empty") - } - urlPath = strings.ReplaceAll(urlPath, "{certificate-name}", url.PathEscape(certificateName)) - req, err := runtime.NewRequest(ctx, http.MethodDelete, runtime.JoinPaths(host, urlPath)) - if err != nil { - return nil, err - } - reqQP := req.Raw().URL.Query() - reqQP.Set("api-version", "7.3") - req.Raw().URL.RawQuery = reqQP.Encode() - req.Raw().Header.Set("Accept", "application/json") - return req, nil -} - -// deleteCertificateOperationHandleResponse handles the DeleteCertificateOperation response. -func (client *KeyVaultClient) deleteCertificateOperationHandleResponse(resp *http.Response) (KeyVaultClientDeleteCertificateOperationResponse, error) { - result := KeyVaultClientDeleteCertificateOperationResponse{} - if err := runtime.UnmarshalAsJSON(resp, &result.CertificateOperation); err != nil { - return KeyVaultClientDeleteCertificateOperationResponse{}, err - } - return result, nil -} - -// GetCertificate - Gets information about a specific certificate. This operation requires the certificates/get permission. -// If the operation fails it returns an *azcore.ResponseError type. -// vaultBaseURL - The vault name, for example https://myvault.vault.azure.net. -// certificateName - The name of the certificate in the given vault. -// certificateVersion - The version of the certificate. This URI fragment is optional. If not specified, the latest version -// of the certificate is returned. -// options - KeyVaultClientGetCertificateOptions contains the optional parameters for the KeyVaultClient.GetCertificate method. -func (client *KeyVaultClient) GetCertificate(ctx context.Context, vaultBaseURL string, certificateName string, certificateVersion string, options *KeyVaultClientGetCertificateOptions) (KeyVaultClientGetCertificateResponse, error) { - req, err := client.GetCertificateCreateRequest(ctx, vaultBaseURL, certificateName, certificateVersion, options) - if err != nil { - return KeyVaultClientGetCertificateResponse{}, err - } - resp, err := client.pl.Do(req) - if err != nil { - return KeyVaultClientGetCertificateResponse{}, err - } - if !runtime.HasStatusCode(resp, http.StatusOK) { - return KeyVaultClientGetCertificateResponse{}, runtime.NewResponseError(resp) - } - return client.getCertificateHandleResponse(resp) -} - -// getCertificateCreateRequest creates the GetCertificate request. -func (client *KeyVaultClient) GetCertificateCreateRequest(ctx context.Context, vaultBaseURL string, certificateName string, certificateVersion string, options *KeyVaultClientGetCertificateOptions) (*policy.Request, error) { - host := "{vaultBaseUrl}" - host = strings.ReplaceAll(host, "{vaultBaseUrl}", vaultBaseURL) - urlPath := "/certificates/{certificate-name}/{certificate-version}" - if certificateName == "" { - return nil, errors.New("parameter certificateName cannot be empty") - } - urlPath = strings.ReplaceAll(urlPath, "{certificate-name}", url.PathEscape(certificateName)) - urlPath = strings.ReplaceAll(urlPath, "{certificate-version}", url.PathEscape(certificateVersion)) - req, err := runtime.NewRequest(ctx, http.MethodGet, runtime.JoinPaths(host, urlPath)) - if err != nil { - return nil, err - } - reqQP := req.Raw().URL.Query() - reqQP.Set("api-version", "7.3") - req.Raw().URL.RawQuery = reqQP.Encode() - req.Raw().Header.Set("Accept", "application/json") - return req, nil -} - -// getCertificateHandleResponse handles the GetCertificate response. -func (client *KeyVaultClient) getCertificateHandleResponse(resp *http.Response) (KeyVaultClientGetCertificateResponse, error) { - result := KeyVaultClientGetCertificateResponse{} - if err := runtime.UnmarshalAsJSON(resp, &result.CertificateBundle); err != nil { - return KeyVaultClientGetCertificateResponse{}, err - } - return result, nil -} - -// GetCertificateContacts - The GetCertificateContacts operation returns the set of certificate contact resources in the specified -// key vault. This operation requires the certificates/managecontacts permission. -// If the operation fails it returns an *azcore.ResponseError type. -// vaultBaseURL - The vault name, for example https://myvault.vault.azure.net. -// options - KeyVaultClientGetCertificateContactsOptions contains the optional parameters for the KeyVaultClient.GetCertificateContacts -// method. -func (client *KeyVaultClient) GetCertificateContacts(ctx context.Context, vaultBaseURL string, options *KeyVaultClientGetCertificateContactsOptions) (KeyVaultClientGetCertificateContactsResponse, error) { - req, err := client.getCertificateContactsCreateRequest(ctx, vaultBaseURL, options) - if err != nil { - return KeyVaultClientGetCertificateContactsResponse{}, err - } - resp, err := client.pl.Do(req) - if err != nil { - return KeyVaultClientGetCertificateContactsResponse{}, err - } - if !runtime.HasStatusCode(resp, http.StatusOK) { - return KeyVaultClientGetCertificateContactsResponse{}, runtime.NewResponseError(resp) - } - return client.getCertificateContactsHandleResponse(resp) -} - -// getCertificateContactsCreateRequest creates the GetCertificateContacts request. -func (client *KeyVaultClient) getCertificateContactsCreateRequest(ctx context.Context, vaultBaseURL string, options *KeyVaultClientGetCertificateContactsOptions) (*policy.Request, error) { - host := "{vaultBaseUrl}" - host = strings.ReplaceAll(host, "{vaultBaseUrl}", vaultBaseURL) - urlPath := "/certificates/contacts" - req, err := runtime.NewRequest(ctx, http.MethodGet, runtime.JoinPaths(host, urlPath)) - if err != nil { - return nil, err - } - reqQP := req.Raw().URL.Query() - reqQP.Set("api-version", "7.3") - req.Raw().URL.RawQuery = reqQP.Encode() - req.Raw().Header.Set("Accept", "application/json") - return req, nil -} - -// getCertificateContactsHandleResponse handles the GetCertificateContacts response. -func (client *KeyVaultClient) getCertificateContactsHandleResponse(resp *http.Response) (KeyVaultClientGetCertificateContactsResponse, error) { - result := KeyVaultClientGetCertificateContactsResponse{} - if err := runtime.UnmarshalAsJSON(resp, &result.Contacts); err != nil { - return KeyVaultClientGetCertificateContactsResponse{}, err - } - return result, nil -} - -// GetCertificateIssuer - The GetCertificateIssuer operation returns the specified certificate issuer resources in the specified -// key vault. This operation requires the certificates/manageissuers/getissuers permission. -// If the operation fails it returns an *azcore.ResponseError type. -// vaultBaseURL - The vault name, for example https://myvault.vault.azure.net. -// issuerName - The name of the issuer. -// options - KeyVaultClientGetCertificateIssuerOptions contains the optional parameters for the KeyVaultClient.GetCertificateIssuer -// method. -func (client *KeyVaultClient) GetCertificateIssuer(ctx context.Context, vaultBaseURL string, issuerName string, options *KeyVaultClientGetCertificateIssuerOptions) (KeyVaultClientGetCertificateIssuerResponse, error) { - req, err := client.getCertificateIssuerCreateRequest(ctx, vaultBaseURL, issuerName, options) - if err != nil { - return KeyVaultClientGetCertificateIssuerResponse{}, err - } - resp, err := client.pl.Do(req) - if err != nil { - return KeyVaultClientGetCertificateIssuerResponse{}, err - } - if !runtime.HasStatusCode(resp, http.StatusOK) { - return KeyVaultClientGetCertificateIssuerResponse{}, runtime.NewResponseError(resp) - } - return client.getCertificateIssuerHandleResponse(resp) -} - -// getCertificateIssuerCreateRequest creates the GetCertificateIssuer request. -func (client *KeyVaultClient) getCertificateIssuerCreateRequest(ctx context.Context, vaultBaseURL string, issuerName string, options *KeyVaultClientGetCertificateIssuerOptions) (*policy.Request, error) { - host := "{vaultBaseUrl}" - host = strings.ReplaceAll(host, "{vaultBaseUrl}", vaultBaseURL) - urlPath := "/certificates/issuers/{issuer-name}" - if issuerName == "" { - return nil, errors.New("parameter issuerName cannot be empty") - } - urlPath = strings.ReplaceAll(urlPath, "{issuer-name}", url.PathEscape(issuerName)) - req, err := runtime.NewRequest(ctx, http.MethodGet, runtime.JoinPaths(host, urlPath)) - if err != nil { - return nil, err - } - reqQP := req.Raw().URL.Query() - reqQP.Set("api-version", "7.3") - req.Raw().URL.RawQuery = reqQP.Encode() - req.Raw().Header.Set("Accept", "application/json") - return req, nil -} - -// getCertificateIssuerHandleResponse handles the GetCertificateIssuer response. -func (client *KeyVaultClient) getCertificateIssuerHandleResponse(resp *http.Response) (KeyVaultClientGetCertificateIssuerResponse, error) { - result := KeyVaultClientGetCertificateIssuerResponse{} - if err := runtime.UnmarshalAsJSON(resp, &result.IssuerBundle); err != nil { - return KeyVaultClientGetCertificateIssuerResponse{}, err - } - return result, nil -} - -// NewGetCertificateIssuersPager - The GetCertificateIssuers operation returns the set of certificate issuer resources in -// the specified key vault. This operation requires the certificates/manageissuers/getissuers permission. -// If the operation fails it returns an *azcore.ResponseError type. -// vaultBaseURL - The vault name, for example https://myvault.vault.azure.net. -// options - KeyVaultClientGetCertificateIssuersOptions contains the optional parameters for the KeyVaultClient.GetCertificateIssuers -// method. -func (client *KeyVaultClient) NewGetCertificateIssuersPager(vaultBaseURL string, options *KeyVaultClientGetCertificateIssuersOptions) *runtime.Pager[KeyVaultClientGetCertificateIssuersResponse] { - return runtime.NewPager(runtime.PagingHandler[KeyVaultClientGetCertificateIssuersResponse]{ - More: func(page KeyVaultClientGetCertificateIssuersResponse) bool { - return page.NextLink != nil && len(*page.NextLink) > 0 - }, - Fetcher: func(ctx context.Context, page *KeyVaultClientGetCertificateIssuersResponse) (KeyVaultClientGetCertificateIssuersResponse, error) { - var req *policy.Request - var err error - if page == nil { - req, err = client.getCertificateIssuersCreateRequest(ctx, vaultBaseURL, options) - } else { - req, err = runtime.NewRequest(ctx, http.MethodGet, *page.NextLink) - } - if err != nil { - return KeyVaultClientGetCertificateIssuersResponse{}, err - } - resp, err := client.pl.Do(req) - if err != nil { - return KeyVaultClientGetCertificateIssuersResponse{}, err - } - if !runtime.HasStatusCode(resp, http.StatusOK) { - return KeyVaultClientGetCertificateIssuersResponse{}, runtime.NewResponseError(resp) - } - return client.getCertificateIssuersHandleResponse(resp) - }, - }) -} - -// getCertificateIssuersCreateRequest creates the GetCertificateIssuers request. -func (client *KeyVaultClient) getCertificateIssuersCreateRequest(ctx context.Context, vaultBaseURL string, options *KeyVaultClientGetCertificateIssuersOptions) (*policy.Request, error) { - host := "{vaultBaseUrl}" - host = strings.ReplaceAll(host, "{vaultBaseUrl}", vaultBaseURL) - urlPath := "/certificates/issuers" - req, err := runtime.NewRequest(ctx, http.MethodGet, runtime.JoinPaths(host, urlPath)) - if err != nil { - return nil, err - } - reqQP := req.Raw().URL.Query() - if options != nil && options.Maxresults != nil { - reqQP.Set("maxresults", strconv.FormatInt(int64(*options.Maxresults), 10)) - } - reqQP.Set("api-version", "7.3") - req.Raw().URL.RawQuery = reqQP.Encode() - req.Raw().Header.Set("Accept", "application/json") - return req, nil -} - -// getCertificateIssuersHandleResponse handles the GetCertificateIssuers response. -func (client *KeyVaultClient) getCertificateIssuersHandleResponse(resp *http.Response) (KeyVaultClientGetCertificateIssuersResponse, error) { - result := KeyVaultClientGetCertificateIssuersResponse{} - if err := runtime.UnmarshalAsJSON(resp, &result.CertificateIssuerListResult); err != nil { - return KeyVaultClientGetCertificateIssuersResponse{}, err - } - return result, nil -} - -// GetCertificateOperation - Gets the creation operation associated with a specified certificate. This operation requires -// the certificates/get permission. -// If the operation fails it returns an *azcore.ResponseError type. -// vaultBaseURL - The vault name, for example https://myvault.vault.azure.net. -// certificateName - The name of the certificate. -// options - KeyVaultClientGetCertificateOperationOptions contains the optional parameters for the KeyVaultClient.GetCertificateOperation -// method. -func (client *KeyVaultClient) GetCertificateOperation(ctx context.Context, vaultBaseURL string, certificateName string, options *KeyVaultClientGetCertificateOperationOptions) (KeyVaultClientGetCertificateOperationResponse, error) { - req, err := client.getCertificateOperationCreateRequest(ctx, vaultBaseURL, certificateName, options) - if err != nil { - return KeyVaultClientGetCertificateOperationResponse{}, err - } - resp, err := client.pl.Do(req) - if err != nil { - return KeyVaultClientGetCertificateOperationResponse{}, err - } - if !runtime.HasStatusCode(resp, http.StatusOK) { - return KeyVaultClientGetCertificateOperationResponse{}, runtime.NewResponseError(resp) - } - return client.getCertificateOperationHandleResponse(resp) -} - -// getCertificateOperationCreateRequest creates the GetCertificateOperation request. -func (client *KeyVaultClient) getCertificateOperationCreateRequest(ctx context.Context, vaultBaseURL string, certificateName string, options *KeyVaultClientGetCertificateOperationOptions) (*policy.Request, error) { - host := "{vaultBaseUrl}" - host = strings.ReplaceAll(host, "{vaultBaseUrl}", vaultBaseURL) - urlPath := "/certificates/{certificate-name}/pending" - if certificateName == "" { - return nil, errors.New("parameter certificateName cannot be empty") - } - urlPath = strings.ReplaceAll(urlPath, "{certificate-name}", url.PathEscape(certificateName)) - req, err := runtime.NewRequest(ctx, http.MethodGet, runtime.JoinPaths(host, urlPath)) - if err != nil { - return nil, err - } - reqQP := req.Raw().URL.Query() - reqQP.Set("api-version", "7.3") - req.Raw().URL.RawQuery = reqQP.Encode() - req.Raw().Header.Set("Accept", "application/json") - return req, nil -} - -// getCertificateOperationHandleResponse handles the GetCertificateOperation response. -func (client *KeyVaultClient) getCertificateOperationHandleResponse(resp *http.Response) (KeyVaultClientGetCertificateOperationResponse, error) { - result := KeyVaultClientGetCertificateOperationResponse{} - if err := runtime.UnmarshalAsJSON(resp, &result.CertificateOperation); err != nil { - return KeyVaultClientGetCertificateOperationResponse{}, err - } - return result, nil -} - -// GetCertificatePolicy - The GetCertificatePolicy operation returns the specified certificate policy resources in the specified -// key vault. This operation requires the certificates/get permission. -// If the operation fails it returns an *azcore.ResponseError type. -// vaultBaseURL - The vault name, for example https://myvault.vault.azure.net. -// certificateName - The name of the certificate in a given key vault. -// options - KeyVaultClientGetCertificatePolicyOptions contains the optional parameters for the KeyVaultClient.GetCertificatePolicy -// method. -func (client *KeyVaultClient) GetCertificatePolicy(ctx context.Context, vaultBaseURL string, certificateName string, options *KeyVaultClientGetCertificatePolicyOptions) (KeyVaultClientGetCertificatePolicyResponse, error) { - req, err := client.getCertificatePolicyCreateRequest(ctx, vaultBaseURL, certificateName, options) - if err != nil { - return KeyVaultClientGetCertificatePolicyResponse{}, err - } - resp, err := client.pl.Do(req) - if err != nil { - return KeyVaultClientGetCertificatePolicyResponse{}, err - } - if !runtime.HasStatusCode(resp, http.StatusOK) { - return KeyVaultClientGetCertificatePolicyResponse{}, runtime.NewResponseError(resp) - } - return client.getCertificatePolicyHandleResponse(resp) -} - -// getCertificatePolicyCreateRequest creates the GetCertificatePolicy request. -func (client *KeyVaultClient) getCertificatePolicyCreateRequest(ctx context.Context, vaultBaseURL string, certificateName string, options *KeyVaultClientGetCertificatePolicyOptions) (*policy.Request, error) { - host := "{vaultBaseUrl}" - host = strings.ReplaceAll(host, "{vaultBaseUrl}", vaultBaseURL) - urlPath := "/certificates/{certificate-name}/policy" - if certificateName == "" { - return nil, errors.New("parameter certificateName cannot be empty") - } - urlPath = strings.ReplaceAll(urlPath, "{certificate-name}", url.PathEscape(certificateName)) - req, err := runtime.NewRequest(ctx, http.MethodGet, runtime.JoinPaths(host, urlPath)) - if err != nil { - return nil, err - } - reqQP := req.Raw().URL.Query() - reqQP.Set("api-version", "7.3") - req.Raw().URL.RawQuery = reqQP.Encode() - req.Raw().Header.Set("Accept", "application/json") - return req, nil -} - -// getCertificatePolicyHandleResponse handles the GetCertificatePolicy response. -func (client *KeyVaultClient) getCertificatePolicyHandleResponse(resp *http.Response) (KeyVaultClientGetCertificatePolicyResponse, error) { - result := KeyVaultClientGetCertificatePolicyResponse{} - if err := runtime.UnmarshalAsJSON(resp, &result.CertificatePolicy); err != nil { - return KeyVaultClientGetCertificatePolicyResponse{}, err - } - return result, nil -} - -// NewGetCertificateVersionsPager - The GetCertificateVersions operation returns the versions of a certificate in the specified -// key vault. This operation requires the certificates/list permission. -// If the operation fails it returns an *azcore.ResponseError type. -// vaultBaseURL - The vault name, for example https://myvault.vault.azure.net. -// certificateName - The name of the certificate. -// options - KeyVaultClientGetCertificateVersionsOptions contains the optional parameters for the KeyVaultClient.GetCertificateVersions -// method. -func (client *KeyVaultClient) NewGetCertificateVersionsPager(vaultBaseURL string, certificateName string, options *KeyVaultClientGetCertificateVersionsOptions) *runtime.Pager[KeyVaultClientGetCertificateVersionsResponse] { - return runtime.NewPager(runtime.PagingHandler[KeyVaultClientGetCertificateVersionsResponse]{ - More: func(page KeyVaultClientGetCertificateVersionsResponse) bool { - return page.NextLink != nil && len(*page.NextLink) > 0 - }, - Fetcher: func(ctx context.Context, page *KeyVaultClientGetCertificateVersionsResponse) (KeyVaultClientGetCertificateVersionsResponse, error) { - var req *policy.Request - var err error - if page == nil { - req, err = client.getCertificateVersionsCreateRequest(ctx, vaultBaseURL, certificateName, options) - } else { - req, err = runtime.NewRequest(ctx, http.MethodGet, *page.NextLink) - } - if err != nil { - return KeyVaultClientGetCertificateVersionsResponse{}, err - } - resp, err := client.pl.Do(req) - if err != nil { - return KeyVaultClientGetCertificateVersionsResponse{}, err - } - if !runtime.HasStatusCode(resp, http.StatusOK) { - return KeyVaultClientGetCertificateVersionsResponse{}, runtime.NewResponseError(resp) - } - return client.getCertificateVersionsHandleResponse(resp) - }, - }) -} - -// getCertificateVersionsCreateRequest creates the GetCertificateVersions request. -func (client *KeyVaultClient) getCertificateVersionsCreateRequest(ctx context.Context, vaultBaseURL string, certificateName string, options *KeyVaultClientGetCertificateVersionsOptions) (*policy.Request, error) { - host := "{vaultBaseUrl}" - host = strings.ReplaceAll(host, "{vaultBaseUrl}", vaultBaseURL) - urlPath := "/certificates/{certificate-name}/versions" - if certificateName == "" { - return nil, errors.New("parameter certificateName cannot be empty") - } - urlPath = strings.ReplaceAll(urlPath, "{certificate-name}", url.PathEscape(certificateName)) - req, err := runtime.NewRequest(ctx, http.MethodGet, runtime.JoinPaths(host, urlPath)) - if err != nil { - return nil, err - } - reqQP := req.Raw().URL.Query() - if options != nil && options.Maxresults != nil { - reqQP.Set("maxresults", strconv.FormatInt(int64(*options.Maxresults), 10)) - } - reqQP.Set("api-version", "7.3") - req.Raw().URL.RawQuery = reqQP.Encode() - req.Raw().Header.Set("Accept", "application/json") - return req, nil -} - -// getCertificateVersionsHandleResponse handles the GetCertificateVersions response. -func (client *KeyVaultClient) getCertificateVersionsHandleResponse(resp *http.Response) (KeyVaultClientGetCertificateVersionsResponse, error) { - result := KeyVaultClientGetCertificateVersionsResponse{} - if err := runtime.UnmarshalAsJSON(resp, &result.CertificateListResult); err != nil { - return KeyVaultClientGetCertificateVersionsResponse{}, err - } - return result, nil -} - -// NewGetCertificatesPager - The GetCertificates operation returns the set of certificates resources in the specified key -// vault. This operation requires the certificates/list permission. -// If the operation fails it returns an *azcore.ResponseError type. -// vaultBaseURL - The vault name, for example https://myvault.vault.azure.net. -// options - KeyVaultClientGetCertificatesOptions contains the optional parameters for the KeyVaultClient.GetCertificates -// method. -func (client *KeyVaultClient) NewGetCertificatesPager(vaultBaseURL string, options *KeyVaultClientGetCertificatesOptions) *runtime.Pager[KeyVaultClientGetCertificatesResponse] { - return runtime.NewPager(runtime.PagingHandler[KeyVaultClientGetCertificatesResponse]{ - More: func(page KeyVaultClientGetCertificatesResponse) bool { - return page.NextLink != nil && len(*page.NextLink) > 0 - }, - Fetcher: func(ctx context.Context, page *KeyVaultClientGetCertificatesResponse) (KeyVaultClientGetCertificatesResponse, error) { - var req *policy.Request - var err error - if page == nil { - req, err = client.getCertificatesCreateRequest(ctx, vaultBaseURL, options) - } else { - req, err = runtime.NewRequest(ctx, http.MethodGet, *page.NextLink) - } - if err != nil { - return KeyVaultClientGetCertificatesResponse{}, err - } - resp, err := client.pl.Do(req) - if err != nil { - return KeyVaultClientGetCertificatesResponse{}, err - } - if !runtime.HasStatusCode(resp, http.StatusOK) { - return KeyVaultClientGetCertificatesResponse{}, runtime.NewResponseError(resp) - } - return client.getCertificatesHandleResponse(resp) - }, - }) -} - -// getCertificatesCreateRequest creates the GetCertificates request. -func (client *KeyVaultClient) getCertificatesCreateRequest(ctx context.Context, vaultBaseURL string, options *KeyVaultClientGetCertificatesOptions) (*policy.Request, error) { - host := "{vaultBaseUrl}" - host = strings.ReplaceAll(host, "{vaultBaseUrl}", vaultBaseURL) - urlPath := "/certificates" - req, err := runtime.NewRequest(ctx, http.MethodGet, runtime.JoinPaths(host, urlPath)) - if err != nil { - return nil, err - } - reqQP := req.Raw().URL.Query() - if options != nil && options.Maxresults != nil { - reqQP.Set("maxresults", strconv.FormatInt(int64(*options.Maxresults), 10)) - } - if options != nil && options.IncludePending != nil { - reqQP.Set("includePending", strconv.FormatBool(*options.IncludePending)) - } - reqQP.Set("api-version", "7.3") - req.Raw().URL.RawQuery = reqQP.Encode() - req.Raw().Header.Set("Accept", "application/json") - return req, nil -} - -// getCertificatesHandleResponse handles the GetCertificates response. -func (client *KeyVaultClient) getCertificatesHandleResponse(resp *http.Response) (KeyVaultClientGetCertificatesResponse, error) { - result := KeyVaultClientGetCertificatesResponse{} - if err := runtime.UnmarshalAsJSON(resp, &result.CertificateListResult); err != nil { - return KeyVaultClientGetCertificatesResponse{}, err - } - return result, nil -} - -// GetDeletedCertificate - The GetDeletedCertificate operation retrieves the deleted certificate information plus its attributes, -// such as retention interval, scheduled permanent deletion and the current deletion recovery level. -// This operation requires the certificates/get permission. -// If the operation fails it returns an *azcore.ResponseError type. -// vaultBaseURL - The vault name, for example https://myvault.vault.azure.net. -// certificateName - The name of the certificate -// options - KeyVaultClientGetDeletedCertificateOptions contains the optional parameters for the KeyVaultClient.GetDeletedCertificate -// method. -func (client *KeyVaultClient) GetDeletedCertificate(ctx context.Context, vaultBaseURL string, certificateName string, options *KeyVaultClientGetDeletedCertificateOptions) (KeyVaultClientGetDeletedCertificateResponse, error) { - req, err := client.GetDeletedCertificateCreateRequest(ctx, vaultBaseURL, certificateName, options) - if err != nil { - return KeyVaultClientGetDeletedCertificateResponse{}, err - } - resp, err := client.pl.Do(req) - if err != nil { - return KeyVaultClientGetDeletedCertificateResponse{}, err - } - if !runtime.HasStatusCode(resp, http.StatusOK) { - return KeyVaultClientGetDeletedCertificateResponse{}, runtime.NewResponseError(resp) - } - return client.getDeletedCertificateHandleResponse(resp) -} - -// getDeletedCertificateCreateRequest creates the GetDeletedCertificate request. -func (client *KeyVaultClient) GetDeletedCertificateCreateRequest(ctx context.Context, vaultBaseURL string, certificateName string, options *KeyVaultClientGetDeletedCertificateOptions) (*policy.Request, error) { - host := "{vaultBaseUrl}" - host = strings.ReplaceAll(host, "{vaultBaseUrl}", vaultBaseURL) - urlPath := "/deletedcertificates/{certificate-name}" - if certificateName == "" { - return nil, errors.New("parameter certificateName cannot be empty") - } - urlPath = strings.ReplaceAll(urlPath, "{certificate-name}", url.PathEscape(certificateName)) - req, err := runtime.NewRequest(ctx, http.MethodGet, runtime.JoinPaths(host, urlPath)) - if err != nil { - return nil, err - } - reqQP := req.Raw().URL.Query() - reqQP.Set("api-version", "7.3") - req.Raw().URL.RawQuery = reqQP.Encode() - req.Raw().Header.Set("Accept", "application/json") - return req, nil -} - -// getDeletedCertificateHandleResponse handles the GetDeletedCertificate response. -func (client *KeyVaultClient) getDeletedCertificateHandleResponse(resp *http.Response) (KeyVaultClientGetDeletedCertificateResponse, error) { - result := KeyVaultClientGetDeletedCertificateResponse{} - if err := runtime.UnmarshalAsJSON(resp, &result.DeletedCertificateBundle); err != nil { - return KeyVaultClientGetDeletedCertificateResponse{}, err - } - return result, nil -} - -// NewGetDeletedCertificatesPager - The GetDeletedCertificates operation retrieves the certificates in the current vault which -// are in a deleted state and ready for recovery or purging. This operation includes deletion-specific -// information. This operation requires the certificates/get/list permission. This operation can only be enabled on soft-delete -// enabled vaults. -// If the operation fails it returns an *azcore.ResponseError type. -// vaultBaseURL - The vault name, for example https://myvault.vault.azure.net. -// options - KeyVaultClientGetDeletedCertificatesOptions contains the optional parameters for the KeyVaultClient.GetDeletedCertificates -// method. -func (client *KeyVaultClient) NewGetDeletedCertificatesPager(vaultBaseURL string, options *KeyVaultClientGetDeletedCertificatesOptions) *runtime.Pager[KeyVaultClientGetDeletedCertificatesResponse] { - return runtime.NewPager(runtime.PagingHandler[KeyVaultClientGetDeletedCertificatesResponse]{ - More: func(page KeyVaultClientGetDeletedCertificatesResponse) bool { - return page.NextLink != nil && len(*page.NextLink) > 0 - }, - Fetcher: func(ctx context.Context, page *KeyVaultClientGetDeletedCertificatesResponse) (KeyVaultClientGetDeletedCertificatesResponse, error) { - var req *policy.Request - var err error - if page == nil { - req, err = client.getDeletedCertificatesCreateRequest(ctx, vaultBaseURL, options) - } else { - req, err = runtime.NewRequest(ctx, http.MethodGet, *page.NextLink) - } - if err != nil { - return KeyVaultClientGetDeletedCertificatesResponse{}, err - } - resp, err := client.pl.Do(req) - if err != nil { - return KeyVaultClientGetDeletedCertificatesResponse{}, err - } - if !runtime.HasStatusCode(resp, http.StatusOK) { - return KeyVaultClientGetDeletedCertificatesResponse{}, runtime.NewResponseError(resp) - } - return client.getDeletedCertificatesHandleResponse(resp) - }, - }) -} - -// getDeletedCertificatesCreateRequest creates the GetDeletedCertificates request. -func (client *KeyVaultClient) getDeletedCertificatesCreateRequest(ctx context.Context, vaultBaseURL string, options *KeyVaultClientGetDeletedCertificatesOptions) (*policy.Request, error) { - host := "{vaultBaseUrl}" - host = strings.ReplaceAll(host, "{vaultBaseUrl}", vaultBaseURL) - urlPath := "/deletedcertificates" - req, err := runtime.NewRequest(ctx, http.MethodGet, runtime.JoinPaths(host, urlPath)) - if err != nil { - return nil, err - } - reqQP := req.Raw().URL.Query() - if options != nil && options.Maxresults != nil { - reqQP.Set("maxresults", strconv.FormatInt(int64(*options.Maxresults), 10)) - } - if options != nil && options.IncludePending != nil { - reqQP.Set("includePending", strconv.FormatBool(*options.IncludePending)) - } - reqQP.Set("api-version", "7.3") - req.Raw().URL.RawQuery = reqQP.Encode() - req.Raw().Header.Set("Accept", "application/json") - return req, nil -} - -// getDeletedCertificatesHandleResponse handles the GetDeletedCertificates response. -func (client *KeyVaultClient) getDeletedCertificatesHandleResponse(resp *http.Response) (KeyVaultClientGetDeletedCertificatesResponse, error) { - result := KeyVaultClientGetDeletedCertificatesResponse{} - if err := runtime.UnmarshalAsJSON(resp, &result.DeletedCertificateListResult); err != nil { - return KeyVaultClientGetDeletedCertificatesResponse{}, err - } - return result, nil -} - -// ImportCertificate - Imports an existing valid certificate, containing a private key, into Azure Key Vault. This operation -// requires the certificates/import permission. The certificate to be imported can be in either PFX -// or PEM format. If the certificate is in PEM format the PEM file must contain the key as well as x509 certificates. Key -// Vault will only accept a key in PKCS#8 format. -// If the operation fails it returns an *azcore.ResponseError type. -// vaultBaseURL - The vault name, for example https://myvault.vault.azure.net. -// certificateName - The name of the certificate. -// parameters - The parameters to import the certificate. -// options - KeyVaultClientImportCertificateOptions contains the optional parameters for the KeyVaultClient.ImportCertificate -// method. -func (client *KeyVaultClient) ImportCertificate(ctx context.Context, vaultBaseURL string, certificateName string, parameters CertificateImportParameters, options *KeyVaultClientImportCertificateOptions) (KeyVaultClientImportCertificateResponse, error) { - req, err := client.importCertificateCreateRequest(ctx, vaultBaseURL, certificateName, parameters, options) - if err != nil { - return KeyVaultClientImportCertificateResponse{}, err - } - resp, err := client.pl.Do(req) - if err != nil { - return KeyVaultClientImportCertificateResponse{}, err - } - if !runtime.HasStatusCode(resp, http.StatusOK) { - return KeyVaultClientImportCertificateResponse{}, runtime.NewResponseError(resp) - } - return client.importCertificateHandleResponse(resp) -} - -// importCertificateCreateRequest creates the ImportCertificate request. -func (client *KeyVaultClient) importCertificateCreateRequest(ctx context.Context, vaultBaseURL string, certificateName string, parameters CertificateImportParameters, options *KeyVaultClientImportCertificateOptions) (*policy.Request, error) { - host := "{vaultBaseUrl}" - host = strings.ReplaceAll(host, "{vaultBaseUrl}", vaultBaseURL) - urlPath := "/certificates/{certificate-name}/import" - if certificateName == "" { - return nil, errors.New("parameter certificateName cannot be empty") - } - urlPath = strings.ReplaceAll(urlPath, "{certificate-name}", url.PathEscape(certificateName)) - req, err := runtime.NewRequest(ctx, http.MethodPost, runtime.JoinPaths(host, urlPath)) - if err != nil { - return nil, err - } - reqQP := req.Raw().URL.Query() - reqQP.Set("api-version", "7.3") - req.Raw().URL.RawQuery = reqQP.Encode() - req.Raw().Header.Set("Accept", "application/json") - return req, runtime.MarshalAsJSON(req, parameters) -} - -// importCertificateHandleResponse handles the ImportCertificate response. -func (client *KeyVaultClient) importCertificateHandleResponse(resp *http.Response) (KeyVaultClientImportCertificateResponse, error) { - result := KeyVaultClientImportCertificateResponse{} - if err := runtime.UnmarshalAsJSON(resp, &result.CertificateBundle); err != nil { - return KeyVaultClientImportCertificateResponse{}, err - } - return result, nil -} - -// MergeCertificate - The MergeCertificate operation performs the merging of a certificate or certificate chain with a key -// pair currently available in the service. This operation requires the certificates/create -// permission. -// If the operation fails it returns an *azcore.ResponseError type. -// vaultBaseURL - The vault name, for example https://myvault.vault.azure.net. -// certificateName - The name of the certificate. -// parameters - The parameters to merge certificate. -// options - KeyVaultClientMergeCertificateOptions contains the optional parameters for the KeyVaultClient.MergeCertificate -// method. -func (client *KeyVaultClient) MergeCertificate(ctx context.Context, vaultBaseURL string, certificateName string, parameters CertificateMergeParameters, options *KeyVaultClientMergeCertificateOptions) (KeyVaultClientMergeCertificateResponse, error) { - req, err := client.mergeCertificateCreateRequest(ctx, vaultBaseURL, certificateName, parameters, options) - if err != nil { - return KeyVaultClientMergeCertificateResponse{}, err - } - resp, err := client.pl.Do(req) - if err != nil { - return KeyVaultClientMergeCertificateResponse{}, err - } - if !runtime.HasStatusCode(resp, http.StatusCreated) { - return KeyVaultClientMergeCertificateResponse{}, runtime.NewResponseError(resp) - } - return client.mergeCertificateHandleResponse(resp) -} - -// mergeCertificateCreateRequest creates the MergeCertificate request. -func (client *KeyVaultClient) mergeCertificateCreateRequest(ctx context.Context, vaultBaseURL string, certificateName string, parameters CertificateMergeParameters, options *KeyVaultClientMergeCertificateOptions) (*policy.Request, error) { - host := "{vaultBaseUrl}" - host = strings.ReplaceAll(host, "{vaultBaseUrl}", vaultBaseURL) - urlPath := "/certificates/{certificate-name}/pending/merge" - if certificateName == "" { - return nil, errors.New("parameter certificateName cannot be empty") - } - urlPath = strings.ReplaceAll(urlPath, "{certificate-name}", url.PathEscape(certificateName)) - req, err := runtime.NewRequest(ctx, http.MethodPost, runtime.JoinPaths(host, urlPath)) - if err != nil { - return nil, err - } - reqQP := req.Raw().URL.Query() - reqQP.Set("api-version", "7.3") - req.Raw().URL.RawQuery = reqQP.Encode() - req.Raw().Header.Set("Accept", "application/json") - return req, runtime.MarshalAsJSON(req, parameters) -} - -// mergeCertificateHandleResponse handles the MergeCertificate response. -func (client *KeyVaultClient) mergeCertificateHandleResponse(resp *http.Response) (KeyVaultClientMergeCertificateResponse, error) { - result := KeyVaultClientMergeCertificateResponse{} - if err := runtime.UnmarshalAsJSON(resp, &result.CertificateBundle); err != nil { - return KeyVaultClientMergeCertificateResponse{}, err - } - return result, nil -} - -// PurgeDeletedCertificate - The PurgeDeletedCertificate operation performs an irreversible deletion of the specified certificate, -// without possibility for recovery. The operation is not available if the recovery level does not -// specify 'Purgeable'. This operation requires the certificate/purge permission. -// If the operation fails it returns an *azcore.ResponseError type. -// vaultBaseURL - The vault name, for example https://myvault.vault.azure.net. -// certificateName - The name of the certificate -// options - KeyVaultClientPurgeDeletedCertificateOptions contains the optional parameters for the KeyVaultClient.PurgeDeletedCertificate -// method. -func (client *KeyVaultClient) PurgeDeletedCertificate(ctx context.Context, vaultBaseURL string, certificateName string, options *KeyVaultClientPurgeDeletedCertificateOptions) (KeyVaultClientPurgeDeletedCertificateResponse, error) { - req, err := client.purgeDeletedCertificateCreateRequest(ctx, vaultBaseURL, certificateName, options) - if err != nil { - return KeyVaultClientPurgeDeletedCertificateResponse{}, err - } - resp, err := client.pl.Do(req) - if err != nil { - return KeyVaultClientPurgeDeletedCertificateResponse{}, err - } - if !runtime.HasStatusCode(resp, http.StatusNoContent) { - return KeyVaultClientPurgeDeletedCertificateResponse{}, runtime.NewResponseError(resp) - } - return KeyVaultClientPurgeDeletedCertificateResponse{}, nil -} - -// purgeDeletedCertificateCreateRequest creates the PurgeDeletedCertificate request. -func (client *KeyVaultClient) purgeDeletedCertificateCreateRequest(ctx context.Context, vaultBaseURL string, certificateName string, options *KeyVaultClientPurgeDeletedCertificateOptions) (*policy.Request, error) { - host := "{vaultBaseUrl}" - host = strings.ReplaceAll(host, "{vaultBaseUrl}", vaultBaseURL) - urlPath := "/deletedcertificates/{certificate-name}" - if certificateName == "" { - return nil, errors.New("parameter certificateName cannot be empty") - } - urlPath = strings.ReplaceAll(urlPath, "{certificate-name}", url.PathEscape(certificateName)) - req, err := runtime.NewRequest(ctx, http.MethodDelete, runtime.JoinPaths(host, urlPath)) - if err != nil { - return nil, err - } - reqQP := req.Raw().URL.Query() - reqQP.Set("api-version", "7.3") - req.Raw().URL.RawQuery = reqQP.Encode() - req.Raw().Header.Set("Accept", "application/json") - return req, nil -} - -// RecoverDeletedCertificate - The RecoverDeletedCertificate operation performs the reversal of the Delete operation. The -// operation is applicable in vaults enabled for soft-delete, and must be issued during the retention interval -// (available in the deleted certificate's attributes). This operation requires the certificates/recover permission. -// If the operation fails it returns an *azcore.ResponseError type. -// vaultBaseURL - The vault name, for example https://myvault.vault.azure.net. -// certificateName - The name of the deleted certificate -// options - KeyVaultClientRecoverDeletedCertificateOptions contains the optional parameters for the KeyVaultClient.RecoverDeletedCertificate -// method. -func (client *KeyVaultClient) RecoverDeletedCertificate(ctx context.Context, vaultBaseURL string, certificateName string, options *KeyVaultClientRecoverDeletedCertificateOptions) (KeyVaultClientRecoverDeletedCertificateResponse, error) { - req, err := client.RecoverDeletedCertificateCreateRequest(ctx, vaultBaseURL, certificateName, options) - if err != nil { - return KeyVaultClientRecoverDeletedCertificateResponse{}, err - } - resp, err := client.pl.Do(req) - if err != nil { - return KeyVaultClientRecoverDeletedCertificateResponse{}, err - } - if !runtime.HasStatusCode(resp, http.StatusOK) { - return KeyVaultClientRecoverDeletedCertificateResponse{}, runtime.NewResponseError(resp) - } - return client.recoverDeletedCertificateHandleResponse(resp) -} - -// recoverDeletedCertificateCreateRequest creates the RecoverDeletedCertificate request. -func (client *KeyVaultClient) RecoverDeletedCertificateCreateRequest(ctx context.Context, vaultBaseURL string, certificateName string, options *KeyVaultClientRecoverDeletedCertificateOptions) (*policy.Request, error) { - host := "{vaultBaseUrl}" - host = strings.ReplaceAll(host, "{vaultBaseUrl}", vaultBaseURL) - urlPath := "/deletedcertificates/{certificate-name}/recover" - if certificateName == "" { - return nil, errors.New("parameter certificateName cannot be empty") - } - urlPath = strings.ReplaceAll(urlPath, "{certificate-name}", url.PathEscape(certificateName)) - req, err := runtime.NewRequest(ctx, http.MethodPost, runtime.JoinPaths(host, urlPath)) - if err != nil { - return nil, err - } - reqQP := req.Raw().URL.Query() - reqQP.Set("api-version", "7.3") - req.Raw().URL.RawQuery = reqQP.Encode() - req.Raw().Header.Set("Accept", "application/json") - return req, nil -} - -// recoverDeletedCertificateHandleResponse handles the RecoverDeletedCertificate response. -func (client *KeyVaultClient) recoverDeletedCertificateHandleResponse(resp *http.Response) (KeyVaultClientRecoverDeletedCertificateResponse, error) { - result := KeyVaultClientRecoverDeletedCertificateResponse{} - if err := runtime.UnmarshalAsJSON(resp, &result.CertificateBundle); err != nil { - return KeyVaultClientRecoverDeletedCertificateResponse{}, err - } - return result, nil -} - -// RestoreCertificate - Restores a backed up certificate, and all its versions, to a vault. This operation requires the certificates/restore -// permission. -// If the operation fails it returns an *azcore.ResponseError type. -// vaultBaseURL - The vault name, for example https://myvault.vault.azure.net. -// parameters - The parameters to restore the certificate. -// options - KeyVaultClientRestoreCertificateOptions contains the optional parameters for the KeyVaultClient.RestoreCertificate -// method. -func (client *KeyVaultClient) RestoreCertificate(ctx context.Context, vaultBaseURL string, parameters CertificateRestoreParameters, options *KeyVaultClientRestoreCertificateOptions) (KeyVaultClientRestoreCertificateResponse, error) { - req, err := client.restoreCertificateCreateRequest(ctx, vaultBaseURL, parameters, options) - if err != nil { - return KeyVaultClientRestoreCertificateResponse{}, err - } - resp, err := client.pl.Do(req) - if err != nil { - return KeyVaultClientRestoreCertificateResponse{}, err - } - if !runtime.HasStatusCode(resp, http.StatusOK) { - return KeyVaultClientRestoreCertificateResponse{}, runtime.NewResponseError(resp) - } - return client.restoreCertificateHandleResponse(resp) -} - -// restoreCertificateCreateRequest creates the RestoreCertificate request. -func (client *KeyVaultClient) restoreCertificateCreateRequest(ctx context.Context, vaultBaseURL string, parameters CertificateRestoreParameters, options *KeyVaultClientRestoreCertificateOptions) (*policy.Request, error) { - host := "{vaultBaseUrl}" - host = strings.ReplaceAll(host, "{vaultBaseUrl}", vaultBaseURL) - urlPath := "/certificates/restore" - req, err := runtime.NewRequest(ctx, http.MethodPost, runtime.JoinPaths(host, urlPath)) - if err != nil { - return nil, err - } - reqQP := req.Raw().URL.Query() - reqQP.Set("api-version", "7.3") - req.Raw().URL.RawQuery = reqQP.Encode() - req.Raw().Header.Set("Accept", "application/json") - return req, runtime.MarshalAsJSON(req, parameters) -} - -// restoreCertificateHandleResponse handles the RestoreCertificate response. -func (client *KeyVaultClient) restoreCertificateHandleResponse(resp *http.Response) (KeyVaultClientRestoreCertificateResponse, error) { - result := KeyVaultClientRestoreCertificateResponse{} - if err := runtime.UnmarshalAsJSON(resp, &result.CertificateBundle); err != nil { - return KeyVaultClientRestoreCertificateResponse{}, err - } - return result, nil -} - -// SetCertificateContacts - Sets the certificate contacts for the specified key vault. This operation requires the certificates/managecontacts -// permission. -// If the operation fails it returns an *azcore.ResponseError type. -// vaultBaseURL - The vault name, for example https://myvault.vault.azure.net. -// contacts - The contacts for the key vault certificate. -// options - KeyVaultClientSetCertificateContactsOptions contains the optional parameters for the KeyVaultClient.SetCertificateContacts -// method. -func (client *KeyVaultClient) SetCertificateContacts(ctx context.Context, vaultBaseURL string, contacts Contacts, options *KeyVaultClientSetCertificateContactsOptions) (KeyVaultClientSetCertificateContactsResponse, error) { - req, err := client.setCertificateContactsCreateRequest(ctx, vaultBaseURL, contacts, options) - if err != nil { - return KeyVaultClientSetCertificateContactsResponse{}, err - } - resp, err := client.pl.Do(req) - if err != nil { - return KeyVaultClientSetCertificateContactsResponse{}, err - } - if !runtime.HasStatusCode(resp, http.StatusOK) { - return KeyVaultClientSetCertificateContactsResponse{}, runtime.NewResponseError(resp) - } - return client.setCertificateContactsHandleResponse(resp) -} - -// setCertificateContactsCreateRequest creates the SetCertificateContacts request. -func (client *KeyVaultClient) setCertificateContactsCreateRequest(ctx context.Context, vaultBaseURL string, contacts Contacts, options *KeyVaultClientSetCertificateContactsOptions) (*policy.Request, error) { - host := "{vaultBaseUrl}" - host = strings.ReplaceAll(host, "{vaultBaseUrl}", vaultBaseURL) - urlPath := "/certificates/contacts" - req, err := runtime.NewRequest(ctx, http.MethodPut, runtime.JoinPaths(host, urlPath)) - if err != nil { - return nil, err - } - reqQP := req.Raw().URL.Query() - reqQP.Set("api-version", "7.3") - req.Raw().URL.RawQuery = reqQP.Encode() - req.Raw().Header.Set("Accept", "application/json") - return req, runtime.MarshalAsJSON(req, contacts) -} - -// setCertificateContactsHandleResponse handles the SetCertificateContacts response. -func (client *KeyVaultClient) setCertificateContactsHandleResponse(resp *http.Response) (KeyVaultClientSetCertificateContactsResponse, error) { - result := KeyVaultClientSetCertificateContactsResponse{} - if err := runtime.UnmarshalAsJSON(resp, &result.Contacts); err != nil { - return KeyVaultClientSetCertificateContactsResponse{}, err - } - return result, nil -} - -// SetCertificateIssuer - The SetCertificateIssuer operation adds or updates the specified certificate issuer. This operation -// requires the certificates/setissuers permission. -// If the operation fails it returns an *azcore.ResponseError type. -// vaultBaseURL - The vault name, for example https://myvault.vault.azure.net. -// issuerName - The name of the issuer. -// parameter - Certificate issuer set parameter. -// options - KeyVaultClientSetCertificateIssuerOptions contains the optional parameters for the KeyVaultClient.SetCertificateIssuer -// method. -func (client *KeyVaultClient) SetCertificateIssuer(ctx context.Context, vaultBaseURL string, issuerName string, parameter CertificateIssuerSetParameters, options *KeyVaultClientSetCertificateIssuerOptions) (KeyVaultClientSetCertificateIssuerResponse, error) { - req, err := client.setCertificateIssuerCreateRequest(ctx, vaultBaseURL, issuerName, parameter, options) - if err != nil { - return KeyVaultClientSetCertificateIssuerResponse{}, err - } - resp, err := client.pl.Do(req) - if err != nil { - return KeyVaultClientSetCertificateIssuerResponse{}, err - } - if !runtime.HasStatusCode(resp, http.StatusOK) { - return KeyVaultClientSetCertificateIssuerResponse{}, runtime.NewResponseError(resp) - } - return client.setCertificateIssuerHandleResponse(resp) -} - -// setCertificateIssuerCreateRequest creates the SetCertificateIssuer request. -func (client *KeyVaultClient) setCertificateIssuerCreateRequest(ctx context.Context, vaultBaseURL string, issuerName string, parameter CertificateIssuerSetParameters, options *KeyVaultClientSetCertificateIssuerOptions) (*policy.Request, error) { - host := "{vaultBaseUrl}" - host = strings.ReplaceAll(host, "{vaultBaseUrl}", vaultBaseURL) - urlPath := "/certificates/issuers/{issuer-name}" - if issuerName == "" { - return nil, errors.New("parameter issuerName cannot be empty") - } - urlPath = strings.ReplaceAll(urlPath, "{issuer-name}", url.PathEscape(issuerName)) - req, err := runtime.NewRequest(ctx, http.MethodPut, runtime.JoinPaths(host, urlPath)) - if err != nil { - return nil, err - } - reqQP := req.Raw().URL.Query() - reqQP.Set("api-version", "7.3") - req.Raw().URL.RawQuery = reqQP.Encode() - req.Raw().Header.Set("Accept", "application/json") - return req, runtime.MarshalAsJSON(req, parameter) -} - -// setCertificateIssuerHandleResponse handles the SetCertificateIssuer response. -func (client *KeyVaultClient) setCertificateIssuerHandleResponse(resp *http.Response) (KeyVaultClientSetCertificateIssuerResponse, error) { - result := KeyVaultClientSetCertificateIssuerResponse{} - if err := runtime.UnmarshalAsJSON(resp, &result.IssuerBundle); err != nil { - return KeyVaultClientSetCertificateIssuerResponse{}, err - } - return result, nil -} - -// UpdateCertificate - The UpdateCertificate operation applies the specified update on the given certificate; the only elements -// updated are the certificate's attributes. This operation requires the certificates/update -// permission. -// If the operation fails it returns an *azcore.ResponseError type. -// vaultBaseURL - The vault name, for example https://myvault.vault.azure.net. -// certificateName - The name of the certificate in the given key vault. -// certificateVersion - The version of the certificate. -// parameters - The parameters for certificate update. -// options - KeyVaultClientUpdateCertificateOptions contains the optional parameters for the KeyVaultClient.UpdateCertificate -// method. -func (client *KeyVaultClient) UpdateCertificate(ctx context.Context, vaultBaseURL string, certificateName string, certificateVersion string, parameters CertificateUpdateParameters, options *KeyVaultClientUpdateCertificateOptions) (KeyVaultClientUpdateCertificateResponse, error) { - req, err := client.updateCertificateCreateRequest(ctx, vaultBaseURL, certificateName, certificateVersion, parameters, options) - if err != nil { - return KeyVaultClientUpdateCertificateResponse{}, err - } - resp, err := client.pl.Do(req) - if err != nil { - return KeyVaultClientUpdateCertificateResponse{}, err - } - if !runtime.HasStatusCode(resp, http.StatusOK) { - return KeyVaultClientUpdateCertificateResponse{}, runtime.NewResponseError(resp) - } - return client.updateCertificateHandleResponse(resp) -} - -// updateCertificateCreateRequest creates the UpdateCertificate request. -func (client *KeyVaultClient) updateCertificateCreateRequest(ctx context.Context, vaultBaseURL string, certificateName string, certificateVersion string, parameters CertificateUpdateParameters, options *KeyVaultClientUpdateCertificateOptions) (*policy.Request, error) { - host := "{vaultBaseUrl}" - host = strings.ReplaceAll(host, "{vaultBaseUrl}", vaultBaseURL) - urlPath := "/certificates/{certificate-name}/{certificate-version}" - if certificateName == "" { - return nil, errors.New("parameter certificateName cannot be empty") - } - urlPath = strings.ReplaceAll(urlPath, "{certificate-name}", url.PathEscape(certificateName)) - urlPath = strings.ReplaceAll(urlPath, "{certificate-version}", url.PathEscape(certificateVersion)) - req, err := runtime.NewRequest(ctx, http.MethodPatch, runtime.JoinPaths(host, urlPath)) - if err != nil { - return nil, err - } - reqQP := req.Raw().URL.Query() - reqQP.Set("api-version", "7.3") - req.Raw().URL.RawQuery = reqQP.Encode() - req.Raw().Header.Set("Accept", "application/json") - return req, runtime.MarshalAsJSON(req, parameters) -} - -// updateCertificateHandleResponse handles the UpdateCertificate response. -func (client *KeyVaultClient) updateCertificateHandleResponse(resp *http.Response) (KeyVaultClientUpdateCertificateResponse, error) { - result := KeyVaultClientUpdateCertificateResponse{} - if err := runtime.UnmarshalAsJSON(resp, &result.CertificateBundle); err != nil { - return KeyVaultClientUpdateCertificateResponse{}, err - } - return result, nil -} - -// UpdateCertificateIssuer - The UpdateCertificateIssuer operation performs an update on the specified certificate issuer -// entity. This operation requires the certificates/setissuers permission. -// If the operation fails it returns an *azcore.ResponseError type. -// vaultBaseURL - The vault name, for example https://myvault.vault.azure.net. -// issuerName - The name of the issuer. -// parameter - Certificate issuer update parameter. -// options - KeyVaultClientUpdateCertificateIssuerOptions contains the optional parameters for the KeyVaultClient.UpdateCertificateIssuer -// method. -func (client *KeyVaultClient) UpdateCertificateIssuer(ctx context.Context, vaultBaseURL string, issuerName string, parameter CertificateIssuerUpdateParameters, options *KeyVaultClientUpdateCertificateIssuerOptions) (KeyVaultClientUpdateCertificateIssuerResponse, error) { - req, err := client.updateCertificateIssuerCreateRequest(ctx, vaultBaseURL, issuerName, parameter, options) - if err != nil { - return KeyVaultClientUpdateCertificateIssuerResponse{}, err - } - resp, err := client.pl.Do(req) - if err != nil { - return KeyVaultClientUpdateCertificateIssuerResponse{}, err - } - if !runtime.HasStatusCode(resp, http.StatusOK) { - return KeyVaultClientUpdateCertificateIssuerResponse{}, runtime.NewResponseError(resp) - } - return client.updateCertificateIssuerHandleResponse(resp) -} - -// updateCertificateIssuerCreateRequest creates the UpdateCertificateIssuer request. -func (client *KeyVaultClient) updateCertificateIssuerCreateRequest(ctx context.Context, vaultBaseURL string, issuerName string, parameter CertificateIssuerUpdateParameters, options *KeyVaultClientUpdateCertificateIssuerOptions) (*policy.Request, error) { - host := "{vaultBaseUrl}" - host = strings.ReplaceAll(host, "{vaultBaseUrl}", vaultBaseURL) - urlPath := "/certificates/issuers/{issuer-name}" - if issuerName == "" { - return nil, errors.New("parameter issuerName cannot be empty") - } - urlPath = strings.ReplaceAll(urlPath, "{issuer-name}", url.PathEscape(issuerName)) - req, err := runtime.NewRequest(ctx, http.MethodPatch, runtime.JoinPaths(host, urlPath)) - if err != nil { - return nil, err - } - reqQP := req.Raw().URL.Query() - reqQP.Set("api-version", "7.3") - req.Raw().URL.RawQuery = reqQP.Encode() - req.Raw().Header.Set("Accept", "application/json") - return req, runtime.MarshalAsJSON(req, parameter) -} - -// updateCertificateIssuerHandleResponse handles the UpdateCertificateIssuer response. -func (client *KeyVaultClient) updateCertificateIssuerHandleResponse(resp *http.Response) (KeyVaultClientUpdateCertificateIssuerResponse, error) { - result := KeyVaultClientUpdateCertificateIssuerResponse{} - if err := runtime.UnmarshalAsJSON(resp, &result.IssuerBundle); err != nil { - return KeyVaultClientUpdateCertificateIssuerResponse{}, err - } - return result, nil -} - -// UpdateCertificateOperation - Updates a certificate creation operation that is already in progress. This operation requires -// the certificates/update permission. -// If the operation fails it returns an *azcore.ResponseError type. -// vaultBaseURL - The vault name, for example https://myvault.vault.azure.net. -// certificateName - The name of the certificate. -// certificateOperation - The certificate operation response. -// options - KeyVaultClientUpdateCertificateOperationOptions contains the optional parameters for the KeyVaultClient.UpdateCertificateOperation -// method. -func (client *KeyVaultClient) UpdateCertificateOperation(ctx context.Context, vaultBaseURL string, certificateName string, certificateOperation CertificateOperationUpdateParameter, options *KeyVaultClientUpdateCertificateOperationOptions) (KeyVaultClientUpdateCertificateOperationResponse, error) { - req, err := client.updateCertificateOperationCreateRequest(ctx, vaultBaseURL, certificateName, certificateOperation, options) - if err != nil { - return KeyVaultClientUpdateCertificateOperationResponse{}, err - } - resp, err := client.pl.Do(req) - if err != nil { - return KeyVaultClientUpdateCertificateOperationResponse{}, err - } - if !runtime.HasStatusCode(resp, http.StatusOK) { - return KeyVaultClientUpdateCertificateOperationResponse{}, runtime.NewResponseError(resp) - } - return client.updateCertificateOperationHandleResponse(resp) -} - -// updateCertificateOperationCreateRequest creates the UpdateCertificateOperation request. -func (client *KeyVaultClient) updateCertificateOperationCreateRequest(ctx context.Context, vaultBaseURL string, certificateName string, certificateOperation CertificateOperationUpdateParameter, options *KeyVaultClientUpdateCertificateOperationOptions) (*policy.Request, error) { - host := "{vaultBaseUrl}" - host = strings.ReplaceAll(host, "{vaultBaseUrl}", vaultBaseURL) - urlPath := "/certificates/{certificate-name}/pending" - if certificateName == "" { - return nil, errors.New("parameter certificateName cannot be empty") - } - urlPath = strings.ReplaceAll(urlPath, "{certificate-name}", url.PathEscape(certificateName)) - req, err := runtime.NewRequest(ctx, http.MethodPatch, runtime.JoinPaths(host, urlPath)) - if err != nil { - return nil, err - } - reqQP := req.Raw().URL.Query() - reqQP.Set("api-version", "7.3") - req.Raw().URL.RawQuery = reqQP.Encode() - req.Raw().Header.Set("Accept", "application/json") - return req, runtime.MarshalAsJSON(req, certificateOperation) -} - -// updateCertificateOperationHandleResponse handles the UpdateCertificateOperation response. -func (client *KeyVaultClient) updateCertificateOperationHandleResponse(resp *http.Response) (KeyVaultClientUpdateCertificateOperationResponse, error) { - result := KeyVaultClientUpdateCertificateOperationResponse{} - if err := runtime.UnmarshalAsJSON(resp, &result.CertificateOperation); err != nil { - return KeyVaultClientUpdateCertificateOperationResponse{}, err - } - return result, nil -} - -// UpdateCertificatePolicy - Set specified members in the certificate policy. Leave others as null. This operation requires -// the certificates/update permission. -// If the operation fails it returns an *azcore.ResponseError type. -// vaultBaseURL - The vault name, for example https://myvault.vault.azure.net. -// certificateName - The name of the certificate in the given vault. -// certificatePolicy - The policy for the certificate. -// options - KeyVaultClientUpdateCertificatePolicyOptions contains the optional parameters for the KeyVaultClient.UpdateCertificatePolicy -// method. -func (client *KeyVaultClient) UpdateCertificatePolicy(ctx context.Context, vaultBaseURL string, certificateName string, certificatePolicy CertificatePolicy, options *KeyVaultClientUpdateCertificatePolicyOptions) (KeyVaultClientUpdateCertificatePolicyResponse, error) { - req, err := client.updateCertificatePolicyCreateRequest(ctx, vaultBaseURL, certificateName, certificatePolicy, options) - if err != nil { - return KeyVaultClientUpdateCertificatePolicyResponse{}, err - } - resp, err := client.pl.Do(req) - if err != nil { - return KeyVaultClientUpdateCertificatePolicyResponse{}, err - } - if !runtime.HasStatusCode(resp, http.StatusOK) { - return KeyVaultClientUpdateCertificatePolicyResponse{}, runtime.NewResponseError(resp) - } - return client.updateCertificatePolicyHandleResponse(resp) -} - -// updateCertificatePolicyCreateRequest creates the UpdateCertificatePolicy request. -func (client *KeyVaultClient) updateCertificatePolicyCreateRequest(ctx context.Context, vaultBaseURL string, certificateName string, certificatePolicy CertificatePolicy, options *KeyVaultClientUpdateCertificatePolicyOptions) (*policy.Request, error) { - host := "{vaultBaseUrl}" - host = strings.ReplaceAll(host, "{vaultBaseUrl}", vaultBaseURL) - urlPath := "/certificates/{certificate-name}/policy" - if certificateName == "" { - return nil, errors.New("parameter certificateName cannot be empty") - } - urlPath = strings.ReplaceAll(urlPath, "{certificate-name}", url.PathEscape(certificateName)) - req, err := runtime.NewRequest(ctx, http.MethodPatch, runtime.JoinPaths(host, urlPath)) - if err != nil { - return nil, err - } - reqQP := req.Raw().URL.Query() - reqQP.Set("api-version", "7.3") - req.Raw().URL.RawQuery = reqQP.Encode() - req.Raw().Header.Set("Accept", "application/json") - return req, runtime.MarshalAsJSON(req, certificatePolicy) -} - -// updateCertificatePolicyHandleResponse handles the UpdateCertificatePolicy response. -func (client *KeyVaultClient) updateCertificatePolicyHandleResponse(resp *http.Response) (KeyVaultClientUpdateCertificatePolicyResponse, error) { - result := KeyVaultClientUpdateCertificatePolicyResponse{} - if err := runtime.UnmarshalAsJSON(resp, &result.CertificatePolicy); err != nil { - return KeyVaultClientUpdateCertificatePolicyResponse{}, err - } - return result, nil -} diff --git a/sdk/keyvault/azcertificates/internal/generated/models.go b/sdk/keyvault/azcertificates/internal/generated/models.go deleted file mode 100644 index de99de3086fb..000000000000 --- a/sdk/keyvault/azcertificates/internal/generated/models.go +++ /dev/null @@ -1,720 +0,0 @@ -//go:build go1.18 -// +build go1.18 - -// Copyright (c) Microsoft Corporation. All rights reserved. -// Licensed under the MIT License. See License.txt in the project root for license information. -// Code generated by Microsoft (R) AutoRest Code Generator. -// Changes may cause incorrect behavior and will be lost if the code is regenerated. - -package generated - -import "time" - -// Action - The action that will be executed. -type Action struct { - // The type of the action. - ActionType *ActionType `json:"action_type,omitempty"` -} - -// AdministratorDetails - Details of the organization administrator of the certificate issuer. -type AdministratorDetails struct { - // Email address. - EmailAddress *string `json:"email,omitempty"` - - // First name. - FirstName *string `json:"first_name,omitempty"` - - // Last name. - LastName *string `json:"last_name,omitempty"` - - // Phone number. - Phone *string `json:"phone,omitempty"` -} - -// Attributes - The object attributes managed by the KeyVault service. -type Attributes struct { - // Determines whether the object is enabled. - Enabled *bool `json:"enabled,omitempty"` - - // Expiry date in UTC. - Expires *time.Time `json:"exp,omitempty"` - - // Not before date in UTC. - NotBefore *time.Time `json:"nbf,omitempty"` - - // READ-ONLY; Creation time in UTC. - Created *time.Time `json:"created,omitempty" azure:"ro"` - - // READ-ONLY; Last updated time in UTC. - Updated *time.Time `json:"updated,omitempty" azure:"ro"` -} - -// BackupCertificateResult - The backup certificate result, containing the backup blob. -type BackupCertificateResult struct { - // READ-ONLY; The backup blob containing the backed up certificate. - Value []byte `json:"value,omitempty" azure:"ro"` -} - -// CertificateAttributes - The certificate management attributes. -type CertificateAttributes struct { - // Determines whether the object is enabled. - Enabled *bool `json:"enabled,omitempty"` - - // Expiry date in UTC. - Expires *time.Time `json:"exp,omitempty"` - - // Not before date in UTC. - NotBefore *time.Time `json:"nbf,omitempty"` - - // READ-ONLY; Creation time in UTC. - Created *time.Time `json:"created,omitempty" azure:"ro"` - - // READ-ONLY; softDelete data retention days. Value should be >=7 and <=90 when softDelete enabled, otherwise 0. - RecoverableDays *int32 `json:"recoverableDays,omitempty" azure:"ro"` - - // READ-ONLY; Reflects the deletion recovery level currently in effect for certificates in the current vault. If it contains - // 'Purgeable', the certificate can be permanently deleted by a privileged user; otherwise, - // only the system can purge the certificate, at the end of the retention interval. - RecoveryLevel *DeletionRecoveryLevel `json:"recoveryLevel,omitempty" azure:"ro"` - - // READ-ONLY; Last updated time in UTC. - Updated *time.Time `json:"updated,omitempty" azure:"ro"` -} - -// CertificateBundle - A certificate bundle consists of a certificate (X509) plus its attributes. -type CertificateBundle struct { - // The certificate attributes. - Attributes *CertificateAttributes `json:"attributes,omitempty"` - - // CER contents of x509 certificate. - Cer []byte `json:"cer,omitempty"` - - // The content type of the secret. eg. 'application/x-pem-file' or 'application/x-pkcs12', - ContentType *string `json:"contentType,omitempty"` - - // Application specific metadata in the form of key-value pairs - Tags map[string]*string `json:"tags,omitempty"` - - // READ-ONLY; The certificate id. - ID *string `json:"id,omitempty" azure:"ro"` - - // READ-ONLY; The key id. - Kid *string `json:"kid,omitempty" azure:"ro"` - - // READ-ONLY; The management policy. - Policy *CertificatePolicy `json:"policy,omitempty" azure:"ro"` - - // READ-ONLY; The secret id. - Sid *string `json:"sid,omitempty" azure:"ro"` - - // READ-ONLY; Thumbprint of the certificate. - X509Thumbprint []byte `json:"x5t,omitempty" azure:"ro"` -} - -// CertificateCreateParameters - The certificate create parameters. -type CertificateCreateParameters struct { - // The attributes of the certificate (optional). - CertificateAttributes *CertificateAttributes `json:"attributes,omitempty"` - - // The management policy for the certificate. - CertificatePolicy *CertificatePolicy `json:"policy,omitempty"` - - // Application specific metadata in the form of key-value pairs. - Tags map[string]*string `json:"tags,omitempty"` -} - -// CertificateImportParameters - The certificate import parameters. -type CertificateImportParameters struct { - // REQUIRED; Base64 encoded representation of the certificate object to import. This certificate needs to contain the private - // key. - Base64EncodedCertificate *string `json:"value,omitempty"` - - // The attributes of the certificate (optional). - CertificateAttributes *CertificateAttributes `json:"attributes,omitempty"` - - // The management policy for the certificate. - CertificatePolicy *CertificatePolicy `json:"policy,omitempty"` - - // If the private key in base64EncodedCertificate is encrypted, the password used for encryption. - Password *string `json:"pwd,omitempty"` - - // Application specific metadata in the form of key-value pairs. - Tags map[string]*string `json:"tags,omitempty"` -} - -// CertificateIssuerItem - The certificate issuer item containing certificate issuer metadata. -type CertificateIssuerItem struct { - // Certificate Identifier. - ID *string `json:"id,omitempty"` - - // The issuer provider. - Provider *string `json:"provider,omitempty"` -} - -// CertificateIssuerListResult - The certificate issuer list result. -type CertificateIssuerListResult struct { - // READ-ONLY; The URL to get the next set of certificate issuers. - NextLink *string `json:"nextLink,omitempty" azure:"ro"` - - // READ-ONLY; A response message containing a list of certificate issuers in the key vault along with a link to the next page - // of certificate issuers. - Value []*CertificateIssuerItem `json:"value,omitempty" azure:"ro"` -} - -// CertificateIssuerSetParameters - The certificate issuer set parameters. -type CertificateIssuerSetParameters struct { - // REQUIRED; The issuer provider. - Provider *string `json:"provider,omitempty"` - - // Attributes of the issuer object. - Attributes *IssuerAttributes `json:"attributes,omitempty"` - - // The credentials to be used for the issuer. - Credentials *IssuerCredentials `json:"credentials,omitempty"` - - // Details of the organization as provided to the issuer. - OrganizationDetails *OrganizationDetails `json:"org_details,omitempty"` -} - -// CertificateIssuerUpdateParameters - The certificate issuer update parameters. -type CertificateIssuerUpdateParameters struct { - // Attributes of the issuer object. - Attributes *IssuerAttributes `json:"attributes,omitempty"` - - // The credentials to be used for the issuer. - Credentials *IssuerCredentials `json:"credentials,omitempty"` - - // Details of the organization as provided to the issuer. - OrganizationDetails *OrganizationDetails `json:"org_details,omitempty"` - - // The issuer provider. - Provider *string `json:"provider,omitempty"` -} - -// CertificateItem - The certificate item containing certificate metadata. -type CertificateItem struct { - // The certificate management attributes. - Attributes *CertificateAttributes `json:"attributes,omitempty"` - - // Certificate identifier. - ID *string `json:"id,omitempty"` - - // Application specific metadata in the form of key-value pairs. - Tags map[string]*string `json:"tags,omitempty"` - - // Thumbprint of the certificate. - X509Thumbprint []byte `json:"x5t,omitempty"` -} - -// CertificateListResult - The certificate list result. -type CertificateListResult struct { - // READ-ONLY; The URL to get the next set of certificates. - NextLink *string `json:"nextLink,omitempty" azure:"ro"` - - // READ-ONLY; A response message containing a list of certificates in the key vault along with a link to the next page of - // certificates. - Value []*CertificateItem `json:"value,omitempty" azure:"ro"` -} - -// CertificateMergeParameters - The certificate merge parameters -type CertificateMergeParameters struct { - // REQUIRED; The certificate or the certificate chain to merge. - X509Certificates [][]byte `json:"x5c,omitempty"` - - // The attributes of the certificate (optional). - CertificateAttributes *CertificateAttributes `json:"attributes,omitempty"` - - // Application specific metadata in the form of key-value pairs. - Tags map[string]*string `json:"tags,omitempty"` -} - -// CertificateOperation - A certificate operation is returned in case of asynchronous requests. -type CertificateOperation struct { - // Indicates if cancellation was requested on the certificate operation. - CancellationRequested *bool `json:"cancellation_requested,omitempty"` - - // The certificate signing request (CSR) that is being used in the certificate operation. - Csr []byte `json:"csr,omitempty"` - - // Error encountered, if any, during the certificate operation. - Error *Error `json:"error,omitempty"` - - // Parameters for the issuer of the X509 component of a certificate. - IssuerParameters *IssuerParameters `json:"issuer,omitempty"` - - // Identifier for the certificate operation. - RequestID *string `json:"request_id,omitempty"` - - // Status of the certificate operation. - Status *string `json:"status,omitempty"` - - // The status details of the certificate operation. - StatusDetails *string `json:"status_details,omitempty"` - - // Location which contains the result of the certificate operation. - Target *string `json:"target,omitempty"` - - // READ-ONLY; The certificate id. - ID *string `json:"id,omitempty" azure:"ro"` -} - -// CertificateOperationUpdateParameter - The certificate operation update parameters. -type CertificateOperationUpdateParameter struct { - // REQUIRED; Indicates if cancellation was requested on the certificate operation. - CancellationRequested *bool `json:"cancellation_requested,omitempty"` -} - -// CertificatePolicy - Management policy for a certificate. -type CertificatePolicy struct { - // The certificate attributes. - Attributes *CertificateAttributes `json:"attributes,omitempty"` - - // Parameters for the issuer of the X509 component of a certificate. - IssuerParameters *IssuerParameters `json:"issuer,omitempty"` - - // Properties of the key backing a certificate. - KeyProperties *KeyProperties `json:"key_props,omitempty"` - - // Actions that will be performed by Key Vault over the lifetime of a certificate. - LifetimeActions []*LifetimeAction `json:"lifetime_actions,omitempty"` - - // Properties of the secret backing a certificate. - SecretProperties *SecretProperties `json:"secret_props,omitempty"` - - // Properties of the X509 component of a certificate. - X509CertificateProperties *X509CertificateProperties `json:"x509_props,omitempty"` - - // READ-ONLY; The certificate id. - ID *string `json:"id,omitempty" azure:"ro"` -} - -// CertificateRestoreParameters - The certificate restore parameters. -type CertificateRestoreParameters struct { - // REQUIRED; The backup blob associated with a certificate bundle. - CertificateBundleBackup []byte `json:"value,omitempty"` -} - -// CertificateUpdateParameters - The certificate update parameters. -type CertificateUpdateParameters struct { - // The attributes of the certificate (optional). - CertificateAttributes *CertificateAttributes `json:"attributes,omitempty"` - - // The management policy for the certificate. - CertificatePolicy *CertificatePolicy `json:"policy,omitempty"` - - // Application specific metadata in the form of key-value pairs. - Tags map[string]*string `json:"tags,omitempty"` -} - -// Contact - The contact information for the vault certificates. -type Contact struct { - // Email address. - EmailAddress *string `json:"email,omitempty"` - - // Name. - Name *string `json:"name,omitempty"` - - // Phone number. - Phone *string `json:"phone,omitempty"` -} - -// Contacts - The contacts for the vault certificates. -type Contacts struct { - // The contact list for the vault certificates. - ContactList []*Contact `json:"contacts,omitempty"` - - // READ-ONLY; Identifier for the contacts collection. - ID *string `json:"id,omitempty" azure:"ro"` -} - -// DeletedCertificateBundle - A Deleted Certificate consisting of its previous id, attributes and its tags, as well as information -// on when it will be purged. -type DeletedCertificateBundle struct { - // The certificate attributes. - Attributes *CertificateAttributes `json:"attributes,omitempty"` - - // CER contents of x509 certificate. - Cer []byte `json:"cer,omitempty"` - - // The content type of the secret. eg. 'application/x-pem-file' or 'application/x-pkcs12', - ContentType *string `json:"contentType,omitempty"` - - // The url of the recovery object, used to identify and recover the deleted certificate. - RecoveryID *string `json:"recoveryId,omitempty"` - - // Application specific metadata in the form of key-value pairs - Tags map[string]*string `json:"tags,omitempty"` - - // READ-ONLY; The time when the certificate was deleted, in UTC - DeletedDate *time.Time `json:"deletedDate,omitempty" azure:"ro"` - - // READ-ONLY; The certificate id. - ID *string `json:"id,omitempty" azure:"ro"` - - // READ-ONLY; The key id. - Kid *string `json:"kid,omitempty" azure:"ro"` - - // READ-ONLY; The management policy. - Policy *CertificatePolicy `json:"policy,omitempty" azure:"ro"` - - // READ-ONLY; The time when the certificate is scheduled to be purged, in UTC - ScheduledPurgeDate *time.Time `json:"scheduledPurgeDate,omitempty" azure:"ro"` - - // READ-ONLY; The secret id. - Sid *string `json:"sid,omitempty" azure:"ro"` - - // READ-ONLY; Thumbprint of the certificate. - X509Thumbprint []byte `json:"x5t,omitempty" azure:"ro"` -} - -// DeletedCertificateItem - The deleted certificate item containing metadata about the deleted certificate. -type DeletedCertificateItem struct { - // The certificate management attributes. - Attributes *CertificateAttributes `json:"attributes,omitempty"` - - // Certificate identifier. - ID *string `json:"id,omitempty"` - - // The url of the recovery object, used to identify and recover the deleted certificate. - RecoveryID *string `json:"recoveryId,omitempty"` - - // Application specific metadata in the form of key-value pairs. - Tags map[string]*string `json:"tags,omitempty"` - - // Thumbprint of the certificate. - X509Thumbprint []byte `json:"x5t,omitempty"` - - // READ-ONLY; The time when the certificate was deleted, in UTC - DeletedDate *time.Time `json:"deletedDate,omitempty" azure:"ro"` - - // READ-ONLY; The time when the certificate is scheduled to be purged, in UTC - ScheduledPurgeDate *time.Time `json:"scheduledPurgeDate,omitempty" azure:"ro"` -} - -// DeletedCertificateListResult - A list of certificates that have been deleted in this vault. -type DeletedCertificateListResult struct { - // READ-ONLY; The URL to get the next set of deleted certificates. - NextLink *string `json:"nextLink,omitempty" azure:"ro"` - - // READ-ONLY; A response message containing a list of deleted certificates in the vault along with a link to the next page - // of deleted certificates - Value []*DeletedCertificateItem `json:"value,omitempty" azure:"ro"` -} - -// Error - The key vault server error. -type Error struct { - // READ-ONLY; The error code. - Code *string `json:"code,omitempty" azure:"ro"` - - // READ-ONLY; The key vault server error. - InnerError *Error `json:"innererror,omitempty" azure:"ro"` - - // READ-ONLY; The error message. - Message *string `json:"message,omitempty" azure:"ro"` -} - -// IssuerAttributes - The attributes of an issuer managed by the Key Vault service. -type IssuerAttributes struct { - // Determines whether the issuer is enabled. - Enabled *bool `json:"enabled,omitempty"` - - // READ-ONLY; Creation time in UTC. - Created *time.Time `json:"created,omitempty" azure:"ro"` - - // READ-ONLY; Last updated time in UTC. - Updated *time.Time `json:"updated,omitempty" azure:"ro"` -} - -// IssuerBundle - The issuer for Key Vault certificate. -type IssuerBundle struct { - // Attributes of the issuer object. - Attributes *IssuerAttributes `json:"attributes,omitempty"` - - // The credentials to be used for the issuer. - Credentials *IssuerCredentials `json:"credentials,omitempty"` - - // Details of the organization as provided to the issuer. - OrganizationDetails *OrganizationDetails `json:"org_details,omitempty"` - - // The issuer provider. - Provider *string `json:"provider,omitempty"` - - // READ-ONLY; Identifier for the issuer object. - ID *string `json:"id,omitempty" azure:"ro"` -} - -// IssuerCredentials - The credentials to be used for the certificate issuer. -type IssuerCredentials struct { - // The user name/account name/account id. - AccountID *string `json:"account_id,omitempty"` - - // The password/secret/account key. - Password *string `json:"pwd,omitempty"` -} - -// IssuerParameters - Parameters for the issuer of the X509 component of a certificate. -type IssuerParameters struct { - // Indicates if the certificates generated under this policy should be published to certificate transparency logs. - CertificateTransparency *bool `json:"cert_transparency,omitempty"` - - // Certificate type as supported by the provider (optional); for example 'OV-SSL', 'EV-SSL' - CertificateType *string `json:"cty,omitempty"` - - // Name of the referenced issuer object or reserved names; for example, 'Self' or 'Unknown'. - Name *string `json:"name,omitempty"` -} - -// KeyProperties - Properties of the key pair backing a certificate. -type KeyProperties struct { - // Elliptic curve name. For valid values, see JsonWebKeyCurveName. - Curve *JSONWebKeyCurveName `json:"crv,omitempty"` - - // Indicates if the private key can be exported. - Exportable *bool `json:"exportable,omitempty"` - - // The key size in bits. For example: 2048, 3072, or 4096 for RSA. - KeySize *int32 `json:"key_size,omitempty"` - - // The type of key pair to be used for the certificate. - KeyType *JSONWebKeyType `json:"kty,omitempty"` - - // Indicates if the same key pair will be used on certificate renewal. - ReuseKey *bool `json:"reuse_key,omitempty"` -} - -// KeyVaultClientBackupCertificateOptions contains the optional parameters for the KeyVaultClient.BackupCertificate method. -type KeyVaultClientBackupCertificateOptions struct { - // placeholder for future optional parameters -} - -// KeyVaultClientCreateCertificateOptions contains the optional parameters for the KeyVaultClient.CreateCertificate method. -type KeyVaultClientCreateCertificateOptions struct { - // placeholder for future optional parameters -} - -// KeyVaultClientDeleteCertificateContactsOptions contains the optional parameters for the KeyVaultClient.DeleteCertificateContacts -// method. -type KeyVaultClientDeleteCertificateContactsOptions struct { - // placeholder for future optional parameters -} - -// KeyVaultClientDeleteCertificateIssuerOptions contains the optional parameters for the KeyVaultClient.DeleteCertificateIssuer -// method. -type KeyVaultClientDeleteCertificateIssuerOptions struct { - // placeholder for future optional parameters -} - -// KeyVaultClientDeleteCertificateOperationOptions contains the optional parameters for the KeyVaultClient.DeleteCertificateOperation -// method. -type KeyVaultClientDeleteCertificateOperationOptions struct { - // placeholder for future optional parameters -} - -// KeyVaultClientDeleteCertificateOptions contains the optional parameters for the KeyVaultClient.DeleteCertificate method. -type KeyVaultClientDeleteCertificateOptions struct { - // placeholder for future optional parameters -} - -// KeyVaultClientGetCertificateContactsOptions contains the optional parameters for the KeyVaultClient.GetCertificateContacts -// method. -type KeyVaultClientGetCertificateContactsOptions struct { - // placeholder for future optional parameters -} - -// KeyVaultClientGetCertificateIssuerOptions contains the optional parameters for the KeyVaultClient.GetCertificateIssuer -// method. -type KeyVaultClientGetCertificateIssuerOptions struct { - // placeholder for future optional parameters -} - -// KeyVaultClientGetCertificateIssuersOptions contains the optional parameters for the KeyVaultClient.GetCertificateIssuers -// method. -type KeyVaultClientGetCertificateIssuersOptions struct { - // Maximum number of results to return in a page. If not specified the service will return up to 25 results. - Maxresults *int32 -} - -// KeyVaultClientGetCertificateOperationOptions contains the optional parameters for the KeyVaultClient.GetCertificateOperation -// method. -type KeyVaultClientGetCertificateOperationOptions struct { - // placeholder for future optional parameters -} - -// KeyVaultClientGetCertificateOptions contains the optional parameters for the KeyVaultClient.GetCertificate method. -type KeyVaultClientGetCertificateOptions struct { - // placeholder for future optional parameters -} - -// KeyVaultClientGetCertificatePolicyOptions contains the optional parameters for the KeyVaultClient.GetCertificatePolicy -// method. -type KeyVaultClientGetCertificatePolicyOptions struct { - // placeholder for future optional parameters -} - -// KeyVaultClientGetCertificateVersionsOptions contains the optional parameters for the KeyVaultClient.GetCertificateVersions -// method. -type KeyVaultClientGetCertificateVersionsOptions struct { - // Maximum number of results to return in a page. If not specified the service will return up to 25 results. - Maxresults *int32 -} - -// KeyVaultClientGetCertificatesOptions contains the optional parameters for the KeyVaultClient.GetCertificates method. -type KeyVaultClientGetCertificatesOptions struct { - // Specifies whether to include certificates which are not completely provisioned. - IncludePending *bool - // Maximum number of results to return in a page. If not specified the service will return up to 25 results. - Maxresults *int32 -} - -// KeyVaultClientGetDeletedCertificateOptions contains the optional parameters for the KeyVaultClient.GetDeletedCertificate -// method. -type KeyVaultClientGetDeletedCertificateOptions struct { - // placeholder for future optional parameters -} - -// KeyVaultClientGetDeletedCertificatesOptions contains the optional parameters for the KeyVaultClient.GetDeletedCertificates -// method. -type KeyVaultClientGetDeletedCertificatesOptions struct { - // Specifies whether to include certificates which are not completely provisioned. - IncludePending *bool - // Maximum number of results to return in a page. If not specified the service will return up to 25 results. - Maxresults *int32 -} - -// KeyVaultClientImportCertificateOptions contains the optional parameters for the KeyVaultClient.ImportCertificate method. -type KeyVaultClientImportCertificateOptions struct { - // placeholder for future optional parameters -} - -// KeyVaultClientMergeCertificateOptions contains the optional parameters for the KeyVaultClient.MergeCertificate method. -type KeyVaultClientMergeCertificateOptions struct { - // placeholder for future optional parameters -} - -// KeyVaultClientPurgeDeletedCertificateOptions contains the optional parameters for the KeyVaultClient.PurgeDeletedCertificate -// method. -type KeyVaultClientPurgeDeletedCertificateOptions struct { - // placeholder for future optional parameters -} - -// KeyVaultClientRecoverDeletedCertificateOptions contains the optional parameters for the KeyVaultClient.RecoverDeletedCertificate -// method. -type KeyVaultClientRecoverDeletedCertificateOptions struct { - // placeholder for future optional parameters -} - -// KeyVaultClientRestoreCertificateOptions contains the optional parameters for the KeyVaultClient.RestoreCertificate method. -type KeyVaultClientRestoreCertificateOptions struct { - // placeholder for future optional parameters -} - -// KeyVaultClientSetCertificateContactsOptions contains the optional parameters for the KeyVaultClient.SetCertificateContacts -// method. -type KeyVaultClientSetCertificateContactsOptions struct { - // placeholder for future optional parameters -} - -// KeyVaultClientSetCertificateIssuerOptions contains the optional parameters for the KeyVaultClient.SetCertificateIssuer -// method. -type KeyVaultClientSetCertificateIssuerOptions struct { - // placeholder for future optional parameters -} - -// KeyVaultClientUpdateCertificateIssuerOptions contains the optional parameters for the KeyVaultClient.UpdateCertificateIssuer -// method. -type KeyVaultClientUpdateCertificateIssuerOptions struct { - // placeholder for future optional parameters -} - -// KeyVaultClientUpdateCertificateOperationOptions contains the optional parameters for the KeyVaultClient.UpdateCertificateOperation -// method. -type KeyVaultClientUpdateCertificateOperationOptions struct { - // placeholder for future optional parameters -} - -// KeyVaultClientUpdateCertificateOptions contains the optional parameters for the KeyVaultClient.UpdateCertificate method. -type KeyVaultClientUpdateCertificateOptions struct { - // placeholder for future optional parameters -} - -// KeyVaultClientUpdateCertificatePolicyOptions contains the optional parameters for the KeyVaultClient.UpdateCertificatePolicy -// method. -type KeyVaultClientUpdateCertificatePolicyOptions struct { - // placeholder for future optional parameters -} - -// KeyVaultError - The key vault error exception. -type KeyVaultError struct { - // READ-ONLY; The key vault server error. - Error *Error `json:"error,omitempty" azure:"ro"` -} - -// LifetimeAction - Action and its trigger that will be performed by Key Vault over the lifetime of a certificate. -type LifetimeAction struct { - // The action that will be executed. - Action *Action `json:"action,omitempty"` - - // The condition that will execute the action. - Trigger *Trigger `json:"trigger,omitempty"` -} - -// OrganizationDetails - Details of the organization of the certificate issuer. -type OrganizationDetails struct { - // Details of the organization administrator. - AdminDetails []*AdministratorDetails `json:"admin_details,omitempty"` - - // Id of the organization. - ID *string `json:"id,omitempty"` -} - -// PendingCertificateSigningRequestResult - The pending certificate signing request result. -type PendingCertificateSigningRequestResult struct { - // READ-ONLY; The pending certificate signing request as Base64 encoded string. - Value *string `json:"value,omitempty" azure:"ro"` -} - -// SecretProperties - Properties of the key backing a certificate. -type SecretProperties struct { - // The media type (MIME type). - ContentType *string `json:"contentType,omitempty"` -} - -// SubjectAlternativeNames - The subject alternate names of a X509 object. -type SubjectAlternativeNames struct { - // Domain names. - DNSNames []*string `json:"dns_names,omitempty"` - - // Email addresses. - Emails []*string `json:"emails,omitempty"` - - // User principal names. - Upns []*string `json:"upns,omitempty"` -} - -// Trigger - A condition to be satisfied for an action to be executed. -type Trigger struct { - // Days before expiry to attempt renewal. Value should be between 1 and validityinmonths multiplied by 27. If validityinmonths - // is 36, then value should be between 1 and 972 (36 * 27). - DaysBeforeExpiry *int32 `json:"days_before_expiry,omitempty"` - - // Percentage of lifetime at which to trigger. Value should be between 1 and 99. - LifetimePercentage *int32 `json:"lifetime_percentage,omitempty"` -} - -// X509CertificateProperties - Properties of the X509 component of a certificate. -type X509CertificateProperties struct { - // The enhanced key usage. - Ekus []*string `json:"ekus,omitempty"` - - // List of key usages. - KeyUsage []*KeyUsageType `json:"key_usage,omitempty"` - - // The subject name. Should be a valid X509 distinguished Name. - Subject *string `json:"subject,omitempty"` - - // The subject alternative names. - SubjectAlternativeNames *SubjectAlternativeNames `json:"sans,omitempty"` - - // The duration that the certificate is valid in months. - ValidityInMonths *int32 `json:"validity_months,omitempty"` -} diff --git a/sdk/keyvault/azcertificates/internal/generated/models_serde.go b/sdk/keyvault/azcertificates/internal/generated/models_serde.go deleted file mode 100644 index 4c773dc9e307..000000000000 --- a/sdk/keyvault/azcertificates/internal/generated/models_serde.go +++ /dev/null @@ -1,633 +0,0 @@ -//go:build go1.18 -// +build go1.18 - -// Copyright (c) Microsoft Corporation. All rights reserved. -// Licensed under the MIT License. See License.txt in the project root for license information. -// Code generated by Microsoft (R) AutoRest Code Generator. -// Changes may cause incorrect behavior and will be lost if the code is regenerated. - -package generated - -import ( - "encoding/json" - "github.com/Azure/azure-sdk-for-go/sdk/azcore" - "github.com/Azure/azure-sdk-for-go/sdk/azcore/runtime" - "reflect" -) - -// MarshalJSON implements the json.Marshaller interface for type Attributes. -func (a Attributes) MarshalJSON() ([]byte, error) { - objectMap := make(map[string]interface{}) - populateTimeUnix(objectMap, "created", a.Created) - populate(objectMap, "enabled", a.Enabled) - populateTimeUnix(objectMap, "exp", a.Expires) - populateTimeUnix(objectMap, "nbf", a.NotBefore) - populateTimeUnix(objectMap, "updated", a.Updated) - return json.Marshal(objectMap) -} - -// UnmarshalJSON implements the json.Unmarshaller interface for type Attributes. -func (a *Attributes) UnmarshalJSON(data []byte) error { - var rawMsg map[string]json.RawMessage - if err := json.Unmarshal(data, &rawMsg); err != nil { - return err - } - for key, val := range rawMsg { - var err error - switch key { - case "created": - err = unpopulateTimeUnix(val, &a.Created) - delete(rawMsg, key) - case "enabled": - err = unpopulate(val, &a.Enabled) - delete(rawMsg, key) - case "exp": - err = unpopulateTimeUnix(val, &a.Expires) - delete(rawMsg, key) - case "nbf": - err = unpopulateTimeUnix(val, &a.NotBefore) - delete(rawMsg, key) - case "updated": - err = unpopulateTimeUnix(val, &a.Updated) - delete(rawMsg, key) - } - if err != nil { - return err - } - } - return nil -} - -// MarshalJSON implements the json.Marshaller interface for type BackupCertificateResult. -func (b BackupCertificateResult) MarshalJSON() ([]byte, error) { - objectMap := make(map[string]interface{}) - populateByteArray(objectMap, "value", b.Value, runtime.Base64URLFormat) - return json.Marshal(objectMap) -} - -// UnmarshalJSON implements the json.Unmarshaller interface for type BackupCertificateResult. -func (b *BackupCertificateResult) UnmarshalJSON(data []byte) error { - var rawMsg map[string]json.RawMessage - if err := json.Unmarshal(data, &rawMsg); err != nil { - return err - } - for key, val := range rawMsg { - var err error - switch key { - case "value": - err = runtime.DecodeByteArray(string(val), &b.Value, runtime.Base64URLFormat) - delete(rawMsg, key) - } - if err != nil { - return err - } - } - return nil -} - -// MarshalJSON implements the json.Marshaller interface for type CertificateAttributes. -func (c CertificateAttributes) MarshalJSON() ([]byte, error) { - objectMap := make(map[string]interface{}) - populateTimeUnix(objectMap, "created", c.Created) - populate(objectMap, "enabled", c.Enabled) - populateTimeUnix(objectMap, "exp", c.Expires) - populateTimeUnix(objectMap, "nbf", c.NotBefore) - populate(objectMap, "recoverableDays", c.RecoverableDays) - populate(objectMap, "recoveryLevel", c.RecoveryLevel) - populateTimeUnix(objectMap, "updated", c.Updated) - return json.Marshal(objectMap) -} - -// UnmarshalJSON implements the json.Unmarshaller interface for type CertificateAttributes. -func (c *CertificateAttributes) UnmarshalJSON(data []byte) error { - var rawMsg map[string]json.RawMessage - if err := json.Unmarshal(data, &rawMsg); err != nil { - return err - } - for key, val := range rawMsg { - var err error - switch key { - case "created": - err = unpopulateTimeUnix(val, &c.Created) - delete(rawMsg, key) - case "enabled": - err = unpopulate(val, &c.Enabled) - delete(rawMsg, key) - case "exp": - err = unpopulateTimeUnix(val, &c.Expires) - delete(rawMsg, key) - case "nbf": - err = unpopulateTimeUnix(val, &c.NotBefore) - delete(rawMsg, key) - case "recoverableDays": - err = unpopulate(val, &c.RecoverableDays) - delete(rawMsg, key) - case "recoveryLevel": - err = unpopulate(val, &c.RecoveryLevel) - delete(rawMsg, key) - case "updated": - err = unpopulateTimeUnix(val, &c.Updated) - delete(rawMsg, key) - } - if err != nil { - return err - } - } - return nil -} - -// MarshalJSON implements the json.Marshaller interface for type CertificateBundle. -func (c CertificateBundle) MarshalJSON() ([]byte, error) { - objectMap := make(map[string]interface{}) - populate(objectMap, "attributes", c.Attributes) - populateByteArray(objectMap, "cer", c.Cer, runtime.Base64StdFormat) - populate(objectMap, "contentType", c.ContentType) - populate(objectMap, "id", c.ID) - populate(objectMap, "kid", c.Kid) - populate(objectMap, "policy", c.Policy) - populate(objectMap, "sid", c.Sid) - populate(objectMap, "tags", c.Tags) - populateByteArray(objectMap, "x5t", c.X509Thumbprint, runtime.Base64URLFormat) - return json.Marshal(objectMap) -} - -// UnmarshalJSON implements the json.Unmarshaller interface for type CertificateBundle. -func (c *CertificateBundle) UnmarshalJSON(data []byte) error { - var rawMsg map[string]json.RawMessage - if err := json.Unmarshal(data, &rawMsg); err != nil { - return err - } - for key, val := range rawMsg { - var err error - switch key { - case "attributes": - err = unpopulate(val, &c.Attributes) - delete(rawMsg, key) - case "cer": - err = runtime.DecodeByteArray(string(val), &c.Cer, runtime.Base64StdFormat) - delete(rawMsg, key) - case "contentType": - err = unpopulate(val, &c.ContentType) - delete(rawMsg, key) - case "id": - err = unpopulate(val, &c.ID) - delete(rawMsg, key) - case "kid": - err = unpopulate(val, &c.Kid) - delete(rawMsg, key) - case "policy": - err = unpopulate(val, &c.Policy) - delete(rawMsg, key) - case "sid": - err = unpopulate(val, &c.Sid) - delete(rawMsg, key) - case "tags": - err = unpopulate(val, &c.Tags) - delete(rawMsg, key) - case "x5t": - err = runtime.DecodeByteArray(string(val), &c.X509Thumbprint, runtime.Base64URLFormat) - delete(rawMsg, key) - } - if err != nil { - return err - } - } - return nil -} - -// MarshalJSON implements the json.Marshaller interface for type CertificateCreateParameters. -func (c CertificateCreateParameters) MarshalJSON() ([]byte, error) { - objectMap := make(map[string]interface{}) - populate(objectMap, "attributes", c.CertificateAttributes) - populate(objectMap, "policy", c.CertificatePolicy) - populate(objectMap, "tags", c.Tags) - return json.Marshal(objectMap) -} - -// MarshalJSON implements the json.Marshaller interface for type CertificateImportParameters. -func (c CertificateImportParameters) MarshalJSON() ([]byte, error) { - objectMap := make(map[string]interface{}) - populate(objectMap, "value", c.Base64EncodedCertificate) - populate(objectMap, "attributes", c.CertificateAttributes) - populate(objectMap, "policy", c.CertificatePolicy) - populate(objectMap, "pwd", c.Password) - populate(objectMap, "tags", c.Tags) - return json.Marshal(objectMap) -} - -// MarshalJSON implements the json.Marshaller interface for type CertificateIssuerListResult. -func (c CertificateIssuerListResult) MarshalJSON() ([]byte, error) { - objectMap := make(map[string]interface{}) - populate(objectMap, "nextLink", c.NextLink) - populate(objectMap, "value", c.Value) - return json.Marshal(objectMap) -} - -// MarshalJSON implements the json.Marshaller interface for type CertificateIssuerUpdateParameters. -func (c CertificateIssuerUpdateParameters) MarshalJSON() ([]byte, error) { - objectMap := make(map[string]interface{}) - populate(objectMap, "attributes", c.Attributes) - populate(objectMap, "credentials", c.Credentials) - populate(objectMap, "org_details", c.OrganizationDetails) - populate(objectMap, "provider", c.Provider) - return json.Marshal(objectMap) -} - -// MarshalJSON implements the json.Marshaller interface for type CertificateItem. -func (c CertificateItem) MarshalJSON() ([]byte, error) { - objectMap := make(map[string]interface{}) - populate(objectMap, "attributes", c.Attributes) - populate(objectMap, "id", c.ID) - populate(objectMap, "tags", c.Tags) - populateByteArray(objectMap, "x5t", c.X509Thumbprint, runtime.Base64URLFormat) - return json.Marshal(objectMap) -} - -// UnmarshalJSON implements the json.Unmarshaller interface for type CertificateItem. -func (c *CertificateItem) UnmarshalJSON(data []byte) error { - var rawMsg map[string]json.RawMessage - if err := json.Unmarshal(data, &rawMsg); err != nil { - return err - } - for key, val := range rawMsg { - var err error - switch key { - case "attributes": - err = unpopulate(val, &c.Attributes) - delete(rawMsg, key) - case "id": - err = unpopulate(val, &c.ID) - delete(rawMsg, key) - case "tags": - err = unpopulate(val, &c.Tags) - delete(rawMsg, key) - case "x5t": - err = runtime.DecodeByteArray(string(val), &c.X509Thumbprint, runtime.Base64URLFormat) - delete(rawMsg, key) - } - if err != nil { - return err - } - } - return nil -} - -// MarshalJSON implements the json.Marshaller interface for type CertificateListResult. -func (c CertificateListResult) MarshalJSON() ([]byte, error) { - objectMap := make(map[string]interface{}) - populate(objectMap, "nextLink", c.NextLink) - populate(objectMap, "value", c.Value) - return json.Marshal(objectMap) -} - -// MarshalJSON implements the json.Marshaller interface for type CertificateMergeParameters. -func (c CertificateMergeParameters) MarshalJSON() ([]byte, error) { - objectMap := make(map[string]interface{}) - populate(objectMap, "attributes", c.CertificateAttributes) - populate(objectMap, "tags", c.Tags) - populate(objectMap, "x5c", c.X509Certificates) - return json.Marshal(objectMap) -} - -// MarshalJSON implements the json.Marshaller interface for type CertificateOperation. -func (c CertificateOperation) MarshalJSON() ([]byte, error) { - objectMap := make(map[string]interface{}) - populate(objectMap, "cancellation_requested", c.CancellationRequested) - populateByteArray(objectMap, "csr", c.Csr, runtime.Base64StdFormat) - populate(objectMap, "error", c.Error) - populate(objectMap, "id", c.ID) - populate(objectMap, "issuer", c.IssuerParameters) - populate(objectMap, "request_id", c.RequestID) - populate(objectMap, "status", c.Status) - populate(objectMap, "status_details", c.StatusDetails) - populate(objectMap, "target", c.Target) - return json.Marshal(objectMap) -} - -// UnmarshalJSON implements the json.Unmarshaller interface for type CertificateOperation. -func (c *CertificateOperation) UnmarshalJSON(data []byte) error { - var rawMsg map[string]json.RawMessage - if err := json.Unmarshal(data, &rawMsg); err != nil { - return err - } - for key, val := range rawMsg { - var err error - switch key { - case "cancellation_requested": - err = unpopulate(val, &c.CancellationRequested) - delete(rawMsg, key) - case "csr": - err = runtime.DecodeByteArray(string(val), &c.Csr, runtime.Base64StdFormat) - delete(rawMsg, key) - case "error": - err = unpopulate(val, &c.Error) - delete(rawMsg, key) - case "id": - err = unpopulate(val, &c.ID) - delete(rawMsg, key) - case "issuer": - err = unpopulate(val, &c.IssuerParameters) - delete(rawMsg, key) - case "request_id": - err = unpopulate(val, &c.RequestID) - delete(rawMsg, key) - case "status": - err = unpopulate(val, &c.Status) - delete(rawMsg, key) - case "status_details": - err = unpopulate(val, &c.StatusDetails) - delete(rawMsg, key) - case "target": - err = unpopulate(val, &c.Target) - delete(rawMsg, key) - } - if err != nil { - return err - } - } - return nil -} - -// MarshalJSON implements the json.Marshaller interface for type CertificateOperationUpdateParameter. -func (c CertificateOperationUpdateParameter) MarshalJSON() ([]byte, error) { - objectMap := make(map[string]interface{}) - populate(objectMap, "cancellation_requested", c.CancellationRequested) - return json.Marshal(objectMap) -} - -// MarshalJSON implements the json.Marshaller interface for type CertificatePolicy. -func (c CertificatePolicy) MarshalJSON() ([]byte, error) { - objectMap := make(map[string]interface{}) - populate(objectMap, "attributes", c.Attributes) - populate(objectMap, "id", c.ID) - populate(objectMap, "issuer", c.IssuerParameters) - populate(objectMap, "key_props", c.KeyProperties) - populate(objectMap, "lifetime_actions", c.LifetimeActions) - populate(objectMap, "secret_props", c.SecretProperties) - populate(objectMap, "x509_props", c.X509CertificateProperties) - return json.Marshal(objectMap) -} - -// MarshalJSON implements the json.Marshaller interface for type CertificateRestoreParameters. -func (c CertificateRestoreParameters) MarshalJSON() ([]byte, error) { - objectMap := make(map[string]interface{}) - populateByteArray(objectMap, "value", c.CertificateBundleBackup, runtime.Base64URLFormat) - return json.Marshal(objectMap) -} - -// UnmarshalJSON implements the json.Unmarshaller interface for type CertificateRestoreParameters. -func (c *CertificateRestoreParameters) UnmarshalJSON(data []byte) error { - var rawMsg map[string]json.RawMessage - if err := json.Unmarshal(data, &rawMsg); err != nil { - return err - } - for key, val := range rawMsg { - var err error - switch key { - case "value": - err = runtime.DecodeByteArray(string(val), &c.CertificateBundleBackup, runtime.Base64URLFormat) - delete(rawMsg, key) - } - if err != nil { - return err - } - } - return nil -} - -// MarshalJSON implements the json.Marshaller interface for type CertificateUpdateParameters. -func (c CertificateUpdateParameters) MarshalJSON() ([]byte, error) { - objectMap := make(map[string]interface{}) - populate(objectMap, "attributes", c.CertificateAttributes) - populate(objectMap, "policy", c.CertificatePolicy) - populate(objectMap, "tags", c.Tags) - return json.Marshal(objectMap) -} - -// MarshalJSON implements the json.Marshaller interface for type Contacts. -func (c Contacts) MarshalJSON() ([]byte, error) { - objectMap := make(map[string]interface{}) - populate(objectMap, "contacts", c.ContactList) - populate(objectMap, "id", c.ID) - return json.Marshal(objectMap) -} - -// MarshalJSON implements the json.Marshaller interface for type DeletedCertificateBundle. -func (d DeletedCertificateBundle) MarshalJSON() ([]byte, error) { - objectMap := make(map[string]interface{}) - populate(objectMap, "attributes", d.Attributes) - populateByteArray(objectMap, "cer", d.Cer, runtime.Base64StdFormat) - populate(objectMap, "contentType", d.ContentType) - populateTimeUnix(objectMap, "deletedDate", d.DeletedDate) - populate(objectMap, "id", d.ID) - populate(objectMap, "kid", d.Kid) - populate(objectMap, "policy", d.Policy) - populate(objectMap, "recoveryId", d.RecoveryID) - populateTimeUnix(objectMap, "scheduledPurgeDate", d.ScheduledPurgeDate) - populate(objectMap, "sid", d.Sid) - populate(objectMap, "tags", d.Tags) - populateByteArray(objectMap, "x5t", d.X509Thumbprint, runtime.Base64URLFormat) - return json.Marshal(objectMap) -} - -// UnmarshalJSON implements the json.Unmarshaller interface for type DeletedCertificateBundle. -func (d *DeletedCertificateBundle) UnmarshalJSON(data []byte) error { - var rawMsg map[string]json.RawMessage - if err := json.Unmarshal(data, &rawMsg); err != nil { - return err - } - for key, val := range rawMsg { - var err error - switch key { - case "attributes": - err = unpopulate(val, &d.Attributes) - delete(rawMsg, key) - case "cer": - err = runtime.DecodeByteArray(string(val), &d.Cer, runtime.Base64StdFormat) - delete(rawMsg, key) - case "contentType": - err = unpopulate(val, &d.ContentType) - delete(rawMsg, key) - case "deletedDate": - err = unpopulateTimeUnix(val, &d.DeletedDate) - delete(rawMsg, key) - case "id": - err = unpopulate(val, &d.ID) - delete(rawMsg, key) - case "kid": - err = unpopulate(val, &d.Kid) - delete(rawMsg, key) - case "policy": - err = unpopulate(val, &d.Policy) - delete(rawMsg, key) - case "recoveryId": - err = unpopulate(val, &d.RecoveryID) - delete(rawMsg, key) - case "scheduledPurgeDate": - err = unpopulateTimeUnix(val, &d.ScheduledPurgeDate) - delete(rawMsg, key) - case "sid": - err = unpopulate(val, &d.Sid) - delete(rawMsg, key) - case "tags": - err = unpopulate(val, &d.Tags) - delete(rawMsg, key) - case "x5t": - err = runtime.DecodeByteArray(string(val), &d.X509Thumbprint, runtime.Base64URLFormat) - delete(rawMsg, key) - } - if err != nil { - return err - } - } - return nil -} - -// MarshalJSON implements the json.Marshaller interface for type DeletedCertificateItem. -func (d DeletedCertificateItem) MarshalJSON() ([]byte, error) { - objectMap := make(map[string]interface{}) - populate(objectMap, "attributes", d.Attributes) - populateTimeUnix(objectMap, "deletedDate", d.DeletedDate) - populate(objectMap, "id", d.ID) - populate(objectMap, "recoveryId", d.RecoveryID) - populateTimeUnix(objectMap, "scheduledPurgeDate", d.ScheduledPurgeDate) - populate(objectMap, "tags", d.Tags) - populateByteArray(objectMap, "x5t", d.X509Thumbprint, runtime.Base64URLFormat) - return json.Marshal(objectMap) -} - -// UnmarshalJSON implements the json.Unmarshaller interface for type DeletedCertificateItem. -func (d *DeletedCertificateItem) UnmarshalJSON(data []byte) error { - var rawMsg map[string]json.RawMessage - if err := json.Unmarshal(data, &rawMsg); err != nil { - return err - } - for key, val := range rawMsg { - var err error - switch key { - case "attributes": - err = unpopulate(val, &d.Attributes) - delete(rawMsg, key) - case "deletedDate": - err = unpopulateTimeUnix(val, &d.DeletedDate) - delete(rawMsg, key) - case "id": - err = unpopulate(val, &d.ID) - delete(rawMsg, key) - case "recoveryId": - err = unpopulate(val, &d.RecoveryID) - delete(rawMsg, key) - case "scheduledPurgeDate": - err = unpopulateTimeUnix(val, &d.ScheduledPurgeDate) - delete(rawMsg, key) - case "tags": - err = unpopulate(val, &d.Tags) - delete(rawMsg, key) - case "x5t": - err = runtime.DecodeByteArray(string(val), &d.X509Thumbprint, runtime.Base64URLFormat) - delete(rawMsg, key) - } - if err != nil { - return err - } - } - return nil -} - -// MarshalJSON implements the json.Marshaller interface for type DeletedCertificateListResult. -func (d DeletedCertificateListResult) MarshalJSON() ([]byte, error) { - objectMap := make(map[string]interface{}) - populate(objectMap, "nextLink", d.NextLink) - populate(objectMap, "value", d.Value) - return json.Marshal(objectMap) -} - -// MarshalJSON implements the json.Marshaller interface for type IssuerAttributes. -func (i IssuerAttributes) MarshalJSON() ([]byte, error) { - objectMap := make(map[string]interface{}) - populateTimeUnix(objectMap, "created", i.Created) - populate(objectMap, "enabled", i.Enabled) - populateTimeUnix(objectMap, "updated", i.Updated) - return json.Marshal(objectMap) -} - -// UnmarshalJSON implements the json.Unmarshaller interface for type IssuerAttributes. -func (i *IssuerAttributes) UnmarshalJSON(data []byte) error { - var rawMsg map[string]json.RawMessage - if err := json.Unmarshal(data, &rawMsg); err != nil { - return err - } - for key, val := range rawMsg { - var err error - switch key { - case "created": - err = unpopulateTimeUnix(val, &i.Created) - delete(rawMsg, key) - case "enabled": - err = unpopulate(val, &i.Enabled) - delete(rawMsg, key) - case "updated": - err = unpopulateTimeUnix(val, &i.Updated) - delete(rawMsg, key) - } - if err != nil { - return err - } - } - return nil -} - -// MarshalJSON implements the json.Marshaller interface for type OrganizationDetails. -func (o OrganizationDetails) MarshalJSON() ([]byte, error) { - objectMap := make(map[string]interface{}) - populate(objectMap, "admin_details", o.AdminDetails) - populate(objectMap, "id", o.ID) - return json.Marshal(objectMap) -} - -// MarshalJSON implements the json.Marshaller interface for type SubjectAlternativeNames. -func (s SubjectAlternativeNames) MarshalJSON() ([]byte, error) { - objectMap := make(map[string]interface{}) - populate(objectMap, "dns_names", s.DNSNames) - populate(objectMap, "emails", s.Emails) - populate(objectMap, "upns", s.Upns) - return json.Marshal(objectMap) -} - -// MarshalJSON implements the json.Marshaller interface for type X509CertificateProperties. -func (x X509CertificateProperties) MarshalJSON() ([]byte, error) { - objectMap := make(map[string]interface{}) - populate(objectMap, "ekus", x.Ekus) - populate(objectMap, "key_usage", x.KeyUsage) - populate(objectMap, "subject", x.Subject) - populate(objectMap, "sans", x.SubjectAlternativeNames) - populate(objectMap, "validity_months", x.ValidityInMonths) - return json.Marshal(objectMap) -} - -func populate(m map[string]interface{}, k string, v interface{}) { - if v == nil { - return - } else if azcore.IsNullValue(v) { - m[k] = nil - } else if !reflect.ValueOf(v).IsNil() { - m[k] = v - } -} - -func populateByteArray(m map[string]interface{}, k string, b []byte, f runtime.Base64Encoding) { - if azcore.IsNullValue(b) { - m[k] = nil - } else if len(b) == 0 { - return - } else { - m[k] = runtime.EncodeByteArray(b, f) - } -} - -func unpopulate(data json.RawMessage, v interface{}) error { - if data == nil { - return nil - } - return json.Unmarshal(data, v) -} diff --git a/sdk/keyvault/azcertificates/internal/generated/response_types.go b/sdk/keyvault/azcertificates/internal/generated/response_types.go deleted file mode 100644 index b495cd7cee1d..000000000000 --- a/sdk/keyvault/azcertificates/internal/generated/response_types.go +++ /dev/null @@ -1,144 +0,0 @@ -//go:build go1.18 -// +build go1.18 - -// Copyright (c) Microsoft Corporation. All rights reserved. -// Licensed under the MIT License. See License.txt in the project root for license information. -// Code generated by Microsoft (R) AutoRest Code Generator. -// Changes may cause incorrect behavior and will be lost if the code is regenerated. - -package generated - -// KeyVaultClientBackupCertificateResponse contains the response from method KeyVaultClient.BackupCertificate. -type KeyVaultClientBackupCertificateResponse struct { - BackupCertificateResult -} - -// KeyVaultClientCreateCertificateResponse contains the response from method KeyVaultClient.CreateCertificate. -type KeyVaultClientCreateCertificateResponse struct { - CertificateOperation -} - -// KeyVaultClientDeleteCertificateContactsResponse contains the response from method KeyVaultClient.DeleteCertificateContacts. -type KeyVaultClientDeleteCertificateContactsResponse struct { - Contacts -} - -// KeyVaultClientDeleteCertificateIssuerResponse contains the response from method KeyVaultClient.DeleteCertificateIssuer. -type KeyVaultClientDeleteCertificateIssuerResponse struct { - IssuerBundle -} - -// KeyVaultClientDeleteCertificateOperationResponse contains the response from method KeyVaultClient.DeleteCertificateOperation. -type KeyVaultClientDeleteCertificateOperationResponse struct { - CertificateOperation -} - -// KeyVaultClientDeleteCertificateResponse contains the response from method KeyVaultClient.DeleteCertificate. -type KeyVaultClientDeleteCertificateResponse struct { - DeletedCertificateBundle -} - -// KeyVaultClientGetCertificateContactsResponse contains the response from method KeyVaultClient.GetCertificateContacts. -type KeyVaultClientGetCertificateContactsResponse struct { - Contacts -} - -// KeyVaultClientGetCertificateIssuerResponse contains the response from method KeyVaultClient.GetCertificateIssuer. -type KeyVaultClientGetCertificateIssuerResponse struct { - IssuerBundle -} - -// KeyVaultClientGetCertificateIssuersResponse contains the response from method KeyVaultClient.GetCertificateIssuers. -type KeyVaultClientGetCertificateIssuersResponse struct { - CertificateIssuerListResult -} - -// KeyVaultClientGetCertificateOperationResponse contains the response from method KeyVaultClient.GetCertificateOperation. -type KeyVaultClientGetCertificateOperationResponse struct { - CertificateOperation -} - -// KeyVaultClientGetCertificatePolicyResponse contains the response from method KeyVaultClient.GetCertificatePolicy. -type KeyVaultClientGetCertificatePolicyResponse struct { - CertificatePolicy -} - -// KeyVaultClientGetCertificateResponse contains the response from method KeyVaultClient.GetCertificate. -type KeyVaultClientGetCertificateResponse struct { - CertificateBundle -} - -// KeyVaultClientGetCertificateVersionsResponse contains the response from method KeyVaultClient.GetCertificateVersions. -type KeyVaultClientGetCertificateVersionsResponse struct { - CertificateListResult -} - -// KeyVaultClientGetCertificatesResponse contains the response from method KeyVaultClient.GetCertificates. -type KeyVaultClientGetCertificatesResponse struct { - CertificateListResult -} - -// KeyVaultClientGetDeletedCertificateResponse contains the response from method KeyVaultClient.GetDeletedCertificate. -type KeyVaultClientGetDeletedCertificateResponse struct { - DeletedCertificateBundle -} - -// KeyVaultClientGetDeletedCertificatesResponse contains the response from method KeyVaultClient.GetDeletedCertificates. -type KeyVaultClientGetDeletedCertificatesResponse struct { - DeletedCertificateListResult -} - -// KeyVaultClientImportCertificateResponse contains the response from method KeyVaultClient.ImportCertificate. -type KeyVaultClientImportCertificateResponse struct { - CertificateBundle -} - -// KeyVaultClientMergeCertificateResponse contains the response from method KeyVaultClient.MergeCertificate. -type KeyVaultClientMergeCertificateResponse struct { - CertificateBundle -} - -// KeyVaultClientPurgeDeletedCertificateResponse contains the response from method KeyVaultClient.PurgeDeletedCertificate. -type KeyVaultClientPurgeDeletedCertificateResponse struct { - // placeholder for future response values -} - -// KeyVaultClientRecoverDeletedCertificateResponse contains the response from method KeyVaultClient.RecoverDeletedCertificate. -type KeyVaultClientRecoverDeletedCertificateResponse struct { - CertificateBundle -} - -// KeyVaultClientRestoreCertificateResponse contains the response from method KeyVaultClient.RestoreCertificate. -type KeyVaultClientRestoreCertificateResponse struct { - CertificateBundle -} - -// KeyVaultClientSetCertificateContactsResponse contains the response from method KeyVaultClient.SetCertificateContacts. -type KeyVaultClientSetCertificateContactsResponse struct { - Contacts -} - -// KeyVaultClientSetCertificateIssuerResponse contains the response from method KeyVaultClient.SetCertificateIssuer. -type KeyVaultClientSetCertificateIssuerResponse struct { - IssuerBundle -} - -// KeyVaultClientUpdateCertificateIssuerResponse contains the response from method KeyVaultClient.UpdateCertificateIssuer. -type KeyVaultClientUpdateCertificateIssuerResponse struct { - IssuerBundle -} - -// KeyVaultClientUpdateCertificateOperationResponse contains the response from method KeyVaultClient.UpdateCertificateOperation. -type KeyVaultClientUpdateCertificateOperationResponse struct { - CertificateOperation -} - -// KeyVaultClientUpdateCertificatePolicyResponse contains the response from method KeyVaultClient.UpdateCertificatePolicy. -type KeyVaultClientUpdateCertificatePolicyResponse struct { - CertificatePolicy -} - -// KeyVaultClientUpdateCertificateResponse contains the response from method KeyVaultClient.UpdateCertificate. -type KeyVaultClientUpdateCertificateResponse struct { - CertificateBundle -} diff --git a/sdk/keyvault/azcertificates/models.go b/sdk/keyvault/azcertificates/models.go index ebd711331cff..4ff625e8fcdf 100644 --- a/sdk/keyvault/azcertificates/models.go +++ b/sdk/keyvault/azcertificates/models.go @@ -3,728 +3,671 @@ // Copyright (c) Microsoft Corporation. All rights reserved. // Licensed under the MIT License. See License.txt in the project root for license information. +// Code generated by Microsoft (R) AutoRest Code Generator. +// Changes may cause incorrect behavior and will be lost if the code is regenerated. +// DO NOT EDIT. package azcertificates -import ( - "encoding/json" - "fmt" - "time" +import "time" - "github.com/Azure/azure-sdk-for-go/sdk/azcore/to" - "github.com/Azure/azure-sdk-for-go/sdk/keyvault/azcertificates/internal/generated" - shared "github.com/Azure/azure-sdk-for-go/sdk/keyvault/internal" -) +// Action - The action that will be executed. +type Action struct { + // The type of the action. + ActionType *ActionType `json:"action_type,omitempty"` +} -// AdministratorContact - Details of the organization administrator of the certificate issuer. -type AdministratorContact struct { +// AdministratorDetails - Details of the organization administrator of the certificate issuer. +type AdministratorDetails struct { // Email address. - Email *string + EmailAddress *string `json:"email,omitempty"` // First name. - FirstName *string + FirstName *string `json:"first_name,omitempty"` // Last name. - LastName *string + LastName *string `json:"last_name,omitempty"` // Phone number. - Phone *string + Phone *string `json:"phone,omitempty"` } -// Properties - The certificate management properties. -type Properties struct { - // READ-ONLY; Creation time in UTC. - CreatedOn *time.Time +// BackupCertificateResult - The backup certificate result, containing the backup blob. +type BackupCertificateResult struct { + // READ-ONLY; The backup blob containing the backed up certificate. + Value []byte `json:"value,omitempty" azure:"ro"` +} +// CertificateAttributes - The certificate management attributes. +type CertificateAttributes struct { // Determines whether the object is enabled. - Enabled *bool + Enabled *bool `json:"enabled,omitempty"` // Expiry date in UTC. - ExpiresOn *time.Time + Expires *time.Time `json:"exp,omitempty"` // Not before date in UTC. - NotBefore *time.Time + NotBefore *time.Time `json:"nbf,omitempty"` + + // READ-ONLY; Creation time in UTC. + Created *time.Time `json:"created,omitempty" azure:"ro"` // READ-ONLY; softDelete data retention days. Value should be >=7 and <=90 when softDelete enabled, otherwise 0. - RecoverableDays *int32 + RecoverableDays *int32 `json:"recoverableDays,omitempty" azure:"ro"` // READ-ONLY; Reflects the deletion recovery level currently in effect for certificates in the current vault. If it contains // 'Purgeable', the certificate can be permanently deleted by a privileged user; otherwise, // only the system can purge the certificate, at the end of the retention interval. - RecoveryLevel *string + RecoveryLevel *DeletionRecoveryLevel `json:"recoveryLevel,omitempty" azure:"ro"` // READ-ONLY; Last updated time in UTC. - UpdatedOn *time.Time - - // READ-ONLY; The ID of the certificate - ID *string - - // READ-ONLY; The name of the certificate - Name *string - - // Application specific metadata in the form of key-value pairs - Tags map[string]*string - - // READ-ONLY; The vault URL for the certificate - VaultURL *string - - // READ-ONLY; The version for the certificate - Version *string - - // Thumbprint of the certificate. - X509Thumbprint []byte -} - -func (c *Properties) toGenerated() *generated.CertificateAttributes { - if c == nil { - return nil - } - - return &generated.CertificateAttributes{ - Created: c.CreatedOn, - Enabled: c.Enabled, - Expires: c.ExpiresOn, - NotBefore: c.NotBefore, - RecoverableDays: c.RecoverableDays, - RecoveryLevel: (*generated.DeletionRecoveryLevel)(c.RecoveryLevel), - Updated: c.UpdatedOn, - } -} - -func propertiesFromGenerated(g *generated.CertificateAttributes, tags map[string]*string, id *string, thumbprint []byte) *Properties { - if g == nil { - return nil - } - - vaulURL, name, version := shared.ParseID(id) - - return &Properties{ - Enabled: g.Enabled, - ExpiresOn: g.Expires, - NotBefore: g.NotBefore, - CreatedOn: g.Created, - UpdatedOn: g.Updated, - RecoverableDays: g.RecoverableDays, - RecoveryLevel: (*string)(g.RecoveryLevel), - Tags: tags, - ID: id, - Name: name, - VaultURL: vaulURL, - Version: version, - X509Thumbprint: thumbprint, - } -} - -// Certificate - A certificate bundle consists of a certificate (X509) plus its properties. -type Certificate struct { - // The certificate attributes. - Properties *Properties - - // CER contents of x509 certificate. - CER []byte - - // READ-ONLY; The certificate id. - ID *string - - // READ-ONLY; The name of the certificate - Name *string - - // READ-ONLY; The key ID. - KeyID *string - - // READ-ONLY; The secret ID. - SecretID *string + Updated *time.Time `json:"updated,omitempty" azure:"ro"` } -// CertificateWithPolicy - A certificate bundle consists of a certificate (X509) with a policy, and its properties. -type CertificateWithPolicy struct { +// CertificateBundle - A certificate bundle consists of a certificate (X509) plus its attributes. +type CertificateBundle struct { // The certificate attributes. - Properties *Properties + Attributes *CertificateAttributes `json:"attributes,omitempty"` // CER contents of x509 certificate. - CER []byte + CER []byte `json:"cer,omitempty"` // The content type of the secret. eg. 'application/x-pem-file' or 'application/x-pkcs12', - ContentType *string + ContentType *string `json:"contentType,omitempty"` + + // Application specific metadata in the form of key-value pairs + Tags map[string]*string `json:"tags,omitempty"` // READ-ONLY; The certificate id. - ID *string + ID *ID `json:"id,omitempty" azure:"ro"` - // READ-ONLY; The key ID. - KeyID *string + // READ-ONLY; The key id. + KID *string `json:"kid,omitempty" azure:"ro"` // READ-ONLY; The management policy. - Policy *Policy - - // READ-ONLY; The secret ID. - SecretID *string -} - -// UnmarshalJSON implements the json.Unmarshaler interface for the CertificateWithPolicy type. -func (c *CertificateWithPolicy) UnmarshalJSON(data []byte) error { - var g generated.CertificateBundle - err := json.Unmarshal(data, &g) - if err != nil { - return err - } - c.Properties = propertiesFromGenerated(g.Attributes, g.Tags, g.ID, g.X509Thumbprint) - c.CER = g.Cer - c.ContentType = g.ContentType - c.ID = g.ID - c.KeyID = g.Kid - c.Policy = certificatePolicyFromGenerated(g.Policy) - c.SecretID = g.Sid - return nil -} - -func certificateFromGenerated(g *generated.CertificateBundle) Certificate { - if g == nil { - return Certificate{} - } - - _, name, _ := shared.ParseID(g.ID) - return Certificate{ - Properties: propertiesFromGenerated(g.Attributes, g.Tags, g.ID, g.X509Thumbprint), - CER: g.Cer, - ID: g.ID, - Name: name, - KeyID: g.Kid, - SecretID: g.Sid, - } -} - -// CertificateOperationError - The key vault server error. -type CertificateOperationError struct { - // READ-ONLY; The error code. - Code *string - - // READ-ONLY; The key vault server error. - innerError *CertificateOperationError + Policy *CertificatePolicy `json:"policy,omitempty" azure:"ro"` - // READ-ONLY; The error message. - message *string -} + // READ-ONLY; The secret id. + SID *string `json:"sid,omitempty" azure:"ro"` -// Error returns the error string detailing why the Certificate Operation failed. -func (c *CertificateOperationError) Error() string { - if c == nil { - return "" - } - marshalled, err := json.Marshal(*c) - if err != nil { - return fmt.Sprintf("could not turn operation error into a string: %v", err) - } - return string(marshalled) + // READ-ONLY; Thumbprint of the certificate. + X509Thumbprint []byte `json:"x5t,omitempty" azure:"ro"` } -func certificateErrorFromGenerated(g *generated.Error) *CertificateOperationError { - if g == nil { - return nil - } - - return &CertificateOperationError{ - Code: g.Code, - message: g.Message, - innerError: certificateErrorFromGenerated(g.InnerError), - } -} - -// IssuerItem - The certificate issuer item containing certificate issuer metadata. -type IssuerItem struct { +// CertificateIssuerItem - The certificate issuer item containing certificate issuer metadata. +type CertificateIssuerItem struct { // Certificate Identifier. - ID *string + ID *string `json:"id,omitempty"` // The issuer provider. - Provider *string + Provider *string `json:"provider,omitempty"` } -func certificateIssuerItemFromGenerated(g *generated.CertificateIssuerItem) *IssuerItem { - if g == nil { - return nil - } +// CertificateIssuerListResult - The certificate issuer list result. +type CertificateIssuerListResult struct { + // READ-ONLY; The URL to get the next set of certificate issuers. + NextLink *string `json:"nextLink,omitempty" azure:"ro"` - return &IssuerItem{ID: g.ID, Provider: g.Provider} + // READ-ONLY; A response message containing a list of certificate issuers in the key vault along with a link to the next page + // of certificate issuers. + Value []*CertificateIssuerItem `json:"value,omitempty" azure:"ro"` } // CertificateItem - The certificate item containing certificate metadata. type CertificateItem struct { // The certificate management attributes. - Properties *Properties + Attributes *CertificateAttributes `json:"attributes,omitempty"` // Certificate identifier. - ID *string + ID *ID `json:"id,omitempty"` + + // Application specific metadata in the form of key-value pairs. + Tags map[string]*string `json:"tags,omitempty"` + + // Thumbprint of the certificate. + X509Thumbprint []byte `json:"x5t,omitempty"` } -// Operation - A certificate operation is returned in case of asynchronous requests. -type Operation struct { - // Indicates if cancellation was requested on the certificate operation. - CancellationRequested *bool +// CertificateListResult - The certificate list result. +type CertificateListResult struct { + // READ-ONLY; The URL to get the next set of certificates. + NextLink *string `json:"nextLink,omitempty" azure:"ro"` + + // READ-ONLY; A response message containing a list of certificates in the key vault along with a link to the next page of + // certificates. + Value []*CertificateItem `json:"value,omitempty" azure:"ro"` +} +// CertificateOperation - A certificate operation is returned in case of asynchronous requests. +type CertificateOperation struct { // The certificate signing request (CSR) that is being used in the certificate operation. - CSR []byte + CSR []byte `json:"csr,omitempty"` + + // Indicates if cancellation was requested on the certificate operation. + CancellationRequested *bool `json:"cancellation_requested,omitempty"` // Error encountered, if any, during the certificate operation. - Error *CertificateOperationError + Error *Error `json:"error,omitempty"` // Parameters for the issuer of the X509 component of a certificate. - IssuerParameters *IssuerParameters + IssuerParameters *IssuerParameters `json:"issuer,omitempty"` // Identifier for the certificate operation. - RequestID *string + RequestID *string `json:"request_id,omitempty"` // Status of the certificate operation. - Status *string + Status *string `json:"status,omitempty"` // The status details of the certificate operation. - StatusDetails *string + StatusDetails *string `json:"status_details,omitempty"` // Location which contains the result of the certificate operation. - Target *string + Target *string `json:"target,omitempty"` // READ-ONLY; The certificate id. - ID *string + ID *string `json:"id,omitempty" azure:"ro"` } -func certificateOperationFromGenerated(g generated.CertificateOperation) Operation { - return Operation{ - CancellationRequested: g.CancellationRequested, - CSR: g.Csr, - Error: certificateErrorFromGenerated(g.Error), - IssuerParameters: issuerParametersFromGenerated(g.IssuerParameters), - RequestID: g.RequestID, - Status: g.Status, - StatusDetails: g.StatusDetails, - Target: g.Target, - ID: g.ID, - } +// CertificatePolicy - Management policy for a certificate. +type CertificatePolicy struct { + // The certificate attributes. + Attributes *CertificateAttributes `json:"attributes,omitempty"` + + // Parameters for the issuer of the X509 component of a certificate. + IssuerParameters *IssuerParameters `json:"issuer,omitempty"` + + // Properties of the key backing a certificate. + KeyProperties *KeyProperties `json:"key_props,omitempty"` + + // Actions that will be performed by Key Vault over the lifetime of a certificate. + LifetimeActions []*LifetimeAction `json:"lifetime_actions,omitempty"` + + // Properties of the secret backing a certificate. + SecretProperties *SecretProperties `json:"secret_props,omitempty"` + + // Properties of the X509 component of a certificate. + X509CertificateProperties *X509CertificateProperties `json:"x509_props,omitempty"` + + // READ-ONLY; The certificate id. + ID *string `json:"id,omitempty" azure:"ro"` } -// Policy - Management policy for a certificate. -type Policy struct { - // The certificate properties. - Properties *Properties +// BackupCertificateOptions contains the optional parameters for the Client.BackupCertificate method. +type BackupCertificateOptions struct { + // placeholder for future optional parameters +} - // Parameters for the issuer of the X509 component of a certificate. - IssuerParameters *IssuerParameters +// CreateCertificateOptions contains the optional parameters for the Client.CreateCertificate method. +type CreateCertificateOptions struct { + // placeholder for future optional parameters +} - // Elliptic curve name. For valid values, see JsonWebKeyCurveName. - KeyCurveName *KeyCurveName +// DeleteCertificateContactsOptions contains the optional parameters for the Client.DeleteCertificateContacts method. +type DeleteCertificateContactsOptions struct { + // placeholder for future optional parameters +} - // Indicates if the private key can be exported. - Exportable *bool +// DeleteCertificateIssuerOptions contains the optional parameters for the Client.DeleteCertificateIssuer method. +type DeleteCertificateIssuerOptions struct { + // placeholder for future optional parameters +} - // The key size in bits. For example: 2048, 3072, or 4096 for RSA. - KeySize *int32 +// DeleteCertificateOperationOptions contains the optional parameters for the Client.DeleteCertificateOperation method. +type DeleteCertificateOperationOptions struct { + // placeholder for future optional parameters +} - // The type of key pair to be used for the certificate. - KeyType *KeyType +// DeleteCertificateOptions contains the optional parameters for the Client.DeleteCertificate method. +type DeleteCertificateOptions struct { + // placeholder for future optional parameters +} - // Indicates if the same key pair will be used on certificate renewal. - ReuseKey *bool +// GetCertificateContactsOptions contains the optional parameters for the Client.GetCertificateContacts method. +type GetCertificateContactsOptions struct { + // placeholder for future optional parameters +} - // Actions that will be performed by Key Vault over the lifetime of a certificate. - LifetimeActions []*LifetimeAction +// GetCertificateIssuerOptions contains the optional parameters for the Client.GetCertificateIssuer method. +type GetCertificateIssuerOptions struct { + // placeholder for future optional parameters +} - // ContentType of the downloaded certificate - ContentType *CertificateContentType +// GetCertificateOperationOptions contains the optional parameters for the Client.GetCertificateOperation method. +type GetCertificateOperationOptions struct { + // placeholder for future optional parameters +} - // Properties of the X509 component of a certificate. - X509Properties *X509CertificateProperties -} - -// NewDefaultCertificatePolicy returns a Policy with IssuerName "Self" and Subject "CN=DefaultPolicy" -func NewDefaultCertificatePolicy() Policy { - return Policy{ - IssuerParameters: &IssuerParameters{IssuerName: (*string)(to.Ptr(WellKnownIssuerNamesSelf))}, - X509Properties: &X509CertificateProperties{Subject: to.Ptr("CN=DefaultPolicy")}, - } -} - -func (c *Policy) toGeneratedCertificateCreateParameters() *generated.CertificatePolicy { - if c == nil { - return nil - } - var la []*generated.LifetimeAction - for _, l := range c.LifetimeActions { - la = append(la, l.toGenerated()) - } - - var keyProps *generated.KeyProperties - if c.KeyCurveName != nil || c.Exportable != nil || c.KeySize != nil || c.KeyType != nil || c.ReuseKey != nil { - keyProps = &generated.KeyProperties{ - Curve: (*generated.JSONWebKeyCurveName)(c.KeyCurveName), - Exportable: c.Exportable, - KeySize: c.KeySize, - KeyType: (*generated.JSONWebKeyType)(c.KeyType), - ReuseKey: c.ReuseKey, - } - } - - return &generated.CertificatePolicy{ - Attributes: c.Properties.toGenerated(), - IssuerParameters: c.IssuerParameters.toGenerated(), - KeyProperties: keyProps, - SecretProperties: &generated.SecretProperties{ContentType: (*string)(c.ContentType)}, - LifetimeActions: la, - X509CertificateProperties: c.X509Properties.toGenerated(), - } -} - -func certificatePolicyFromGenerated(g *generated.CertificatePolicy) *Policy { - if g == nil { - return nil - } - - var la []*LifetimeAction - for _, l := range g.LifetimeActions { - la = append(la, lifetimeActionFromGenerated(l)) - } - - c := &Policy{} - if g.KeyProperties != nil { - c.KeyCurveName = (*KeyCurveName)(g.KeyProperties.Curve) - c.Exportable = g.KeyProperties.Exportable - c.KeySize = g.KeyProperties.KeySize - c.KeyType = (*KeyType)(g.KeyProperties.KeyType) - c.ReuseKey = g.KeyProperties.ReuseKey - } - - c.Properties = propertiesFromGenerated(g.Attributes, nil, nil, nil) - c.IssuerParameters = issuerParametersFromGenerated(g.IssuerParameters) - c.LifetimeActions = la - c.ContentType = (*CertificateContentType)(g.SecretProperties.ContentType) - c.X509Properties = x509CertificatePropertiesFromGenerated(g.X509CertificateProperties) - return c +// GetCertificateOptions contains the optional parameters for the Client.GetCertificate method. +type GetCertificateOptions struct { + // placeholder for future optional parameters +} + +// GetCertificatePolicyOptions contains the optional parameters for the Client.GetCertificatePolicy method. +type GetCertificatePolicyOptions struct { + // placeholder for future optional parameters +} + +// GetDeletedCertificateOptions contains the optional parameters for the Client.GetDeletedCertificate method. +type GetDeletedCertificateOptions struct { + // placeholder for future optional parameters +} + +// ImportCertificateOptions contains the optional parameters for the Client.ImportCertificate method. +type ImportCertificateOptions struct { + // placeholder for future optional parameters +} + +// ListCertificateIssuersOptions contains the optional parameters for the Client.ListCertificateIssuers method. +type ListCertificateIssuersOptions struct { + // Maximum number of results to return in a page. If not specified the service will return up to 25 results. + MaxResults *int32 +} + +// ListCertificateVersionsOptions contains the optional parameters for the Client.ListCertificateVersions method. +type ListCertificateVersionsOptions struct { + // Maximum number of results to return in a page. If not specified the service will return up to 25 results. + MaxResults *int32 +} + +// ListCertificatesOptions contains the optional parameters for the Client.ListCertificates method. +type ListCertificatesOptions struct { + // Specifies whether to include certificates which are not completely provisioned. + IncludePending *bool + // Maximum number of results to return in a page. If not specified the service will return up to 25 results. + MaxResults *int32 +} + +// ListDeletedCertificatesOptions contains the optional parameters for the Client.ListDeletedCertificates method. +type ListDeletedCertificatesOptions struct { + // Specifies whether to include certificates which are not completely provisioned. + IncludePending *bool + // Maximum number of results to return in a page. If not specified the service will return up to 25 results. + MaxResults *int32 +} + +// MergeCertificateOptions contains the optional parameters for the Client.MergeCertificate method. +type MergeCertificateOptions struct { + // placeholder for future optional parameters +} + +// PurgeDeletedCertificateOptions contains the optional parameters for the Client.PurgeDeletedCertificate method. +type PurgeDeletedCertificateOptions struct { + // placeholder for future optional parameters +} + +// RecoverDeletedCertificateOptions contains the optional parameters for the Client.RecoverDeletedCertificate method. +type RecoverDeletedCertificateOptions struct { + // placeholder for future optional parameters +} + +// RestoreCertificateOptions contains the optional parameters for the Client.RestoreCertificate method. +type RestoreCertificateOptions struct { + // placeholder for future optional parameters +} + +// SetCertificateContactsOptions contains the optional parameters for the Client.SetCertificateContacts method. +type SetCertificateContactsOptions struct { + // placeholder for future optional parameters +} + +// SetCertificateIssuerOptions contains the optional parameters for the Client.SetCertificateIssuer method. +type SetCertificateIssuerOptions struct { + // placeholder for future optional parameters +} + +// UpdateCertificateIssuerOptions contains the optional parameters for the Client.UpdateCertificateIssuer method. +type UpdateCertificateIssuerOptions struct { + // placeholder for future optional parameters +} + +// UpdateCertificateOperationOptions contains the optional parameters for the Client.UpdateCertificateOperation method. +type UpdateCertificateOperationOptions struct { + // placeholder for future optional parameters +} + +// UpdateCertificateOptions contains the optional parameters for the Client.UpdateCertificate method. +type UpdateCertificateOptions struct { + // placeholder for future optional parameters +} + +// UpdateCertificatePolicyOptions contains the optional parameters for the Client.UpdateCertificatePolicy method. +type UpdateCertificatePolicyOptions struct { + // placeholder for future optional parameters } // Contact - The contact information for the vault certificates. type Contact struct { // Email address. - Email *string + EmailAddress *string `json:"email,omitempty"` // Name. - Name *string + Name *string `json:"name,omitempty"` // Phone number. - Phone *string -} - -func contactListFromGenerated(g []*generated.Contact) []*Contact { - var ret []*Contact - for _, c := range g { - ret = append(ret, &Contact{ - Email: c.EmailAddress, - Name: c.Name, - Phone: c.Phone, - }) - } - return ret + Phone *string `json:"phone,omitempty"` } // Contacts - The contacts for the vault certificates. type Contacts struct { // The contact list for the vault certificates. - ContactList []*Contact + ContactList []*Contact `json:"contacts,omitempty"` // READ-ONLY; Identifier for the contacts collection. - ID *string + ID *string `json:"id,omitempty" azure:"ro"` } -func (c *Contacts) toGenerated() generated.Contacts { - if c == nil { - return generated.Contacts{} - } +// CreateCertificateParameters - The certificate create parameters. +type CreateCertificateParameters struct { + // The attributes of the certificate (optional). + CertificateAttributes *CertificateAttributes `json:"attributes,omitempty"` - var contacts []*generated.Contact - for _, contact := range c.ContactList { - contacts = append(contacts, &generated.Contact{ - EmailAddress: contact.Email, - Name: contact.Name, - Phone: contact.Phone, - }) - } + // The management policy for the certificate. + CertificatePolicy *CertificatePolicy `json:"policy,omitempty"` - return generated.Contacts{ - ID: c.ID, - ContactList: contacts, - } + // Application specific metadata in the form of key-value pairs. + Tags map[string]*string `json:"tags,omitempty"` } -// DeletedCertificate consists of its previous id, attributes and its tags, as well as information on when it will be purged. -type DeletedCertificate struct { - // The certificate properties. - Properties *Properties +// DeletedCertificateBundle - A Deleted Certificate consisting of its previous id, attributes and its tags, as well as information +// on when it will be purged. +type DeletedCertificateBundle struct { + // The certificate attributes. + Attributes *CertificateAttributes `json:"attributes,omitempty"` // CER contents of x509 certificate. - CER []byte + CER []byte `json:"cer,omitempty"` // The content type of the secret. eg. 'application/x-pem-file' or 'application/x-pkcs12', - ContentType *string + ContentType *string `json:"contentType,omitempty"` // The url of the recovery object, used to identify and recover the deleted certificate. - RecoveryID *string + RecoveryID *string `json:"recoveryId,omitempty"` + + // Application specific metadata in the form of key-value pairs + Tags map[string]*string `json:"tags,omitempty"` // READ-ONLY; The time when the certificate was deleted, in UTC - DeletedOn *time.Time + DeletedDate *time.Time `json:"deletedDate,omitempty" azure:"ro"` // READ-ONLY; The certificate id. - ID *string - - // READ-ONLY; The name of the certificate - Name *string + ID *ID `json:"id,omitempty" azure:"ro"` - // READ-ONLY; The key ID. - KeyID *string + // READ-ONLY; The key id. + KID *string `json:"kid,omitempty" azure:"ro"` // READ-ONLY; The management policy. - Policy *Policy + Policy *CertificatePolicy `json:"policy,omitempty" azure:"ro"` + + // READ-ONLY; The secret id. + SID *string `json:"sid,omitempty" azure:"ro"` // READ-ONLY; The time when the certificate is scheduled to be purged, in UTC - ScheduledPurgeDate *time.Time + ScheduledPurgeDate *time.Time `json:"scheduledPurgeDate,omitempty" azure:"ro"` - // READ-ONLY; The secret ID. - SecretID *string + // READ-ONLY; Thumbprint of the certificate. + X509Thumbprint []byte `json:"x5t,omitempty" azure:"ro"` } // DeletedCertificateItem - The deleted certificate item containing metadata about the deleted certificate. type DeletedCertificateItem struct { - // The certificate management properties. - Properties *Properties + // The certificate management attributes. + Attributes *CertificateAttributes `json:"attributes,omitempty"` // Certificate identifier. - ID *string - - // READ-ONLY; The name of the certificate - Name *string + ID *ID `json:"id,omitempty"` // The url of the recovery object, used to identify and recover the deleted certificate. - RecoveryID *string + RecoveryID *string `json:"recoveryId,omitempty"` + + // Application specific metadata in the form of key-value pairs. + Tags map[string]*string `json:"tags,omitempty"` + + // Thumbprint of the certificate. + X509Thumbprint []byte `json:"x5t,omitempty"` // READ-ONLY; The time when the certificate was deleted, in UTC - DeletedOn *time.Time + DeletedDate *time.Time `json:"deletedDate,omitempty" azure:"ro"` // READ-ONLY; The time when the certificate is scheduled to be purged, in UTC - ScheduledPurgeDate *time.Time + ScheduledPurgeDate *time.Time `json:"scheduledPurgeDate,omitempty" azure:"ro"` +} + +// DeletedCertificateListResult - A list of certificates that have been deleted in this vault. +type DeletedCertificateListResult struct { + // READ-ONLY; The URL to get the next set of deleted certificates. + NextLink *string `json:"nextLink,omitempty" azure:"ro"` + + // READ-ONLY; A response message containing a list of deleted certificates in the vault along with a link to the next page + // of deleted certificates + Value []*DeletedCertificateItem `json:"value,omitempty" azure:"ro"` +} + +// Error - The key vault server error. +type Error struct { + // READ-ONLY; The error code. + Code *string `json:"code,omitempty" azure:"ro"` + + // READ-ONLY; The key vault server error. + InnerError *Error `json:"innererror,omitempty" azure:"ro"` + + // READ-ONLY; The error message. + Message *string `json:"message,omitempty" azure:"ro"` } -// Issuer - The issuer for Key Vault certificate. -type Issuer struct { +// ImportCertificateParameters - The certificate import parameters. +type ImportCertificateParameters struct { + // REQUIRED; Base64 encoded representation of the certificate object to import. This certificate needs to contain the private + // key. + Base64EncodedCertificate *string `json:"value,omitempty"` + + // The attributes of the certificate (optional). + CertificateAttributes *CertificateAttributes `json:"attributes,omitempty"` + + // The management policy for the certificate. + CertificatePolicy *CertificatePolicy `json:"policy,omitempty"` + + // If the private key in base64EncodedCertificate is encrypted, the password used for encryption. + Password *string `json:"pwd,omitempty"` + + // Application specific metadata in the form of key-value pairs. + Tags map[string]*string `json:"tags,omitempty"` +} + +// IssuerAttributes - The attributes of an issuer managed by the Key Vault service. +type IssuerAttributes struct { // Determines whether the issuer is enabled. - Enabled *bool + Enabled *bool `json:"enabled,omitempty"` // READ-ONLY; Creation time in UTC. - CreatedOn *time.Time + Created *time.Time `json:"created,omitempty" azure:"ro"` // READ-ONLY; Last updated time in UTC. - UpdatedOn *time.Time + Updated *time.Time `json:"updated,omitempty" azure:"ro"` +} - // The credentials to be used for the issuer. - Credentials *IssuerCredentials +// IssuerBundle - The issuer for Key Vault certificate. +type IssuerBundle struct { + // Attributes of the issuer object. + Attributes *IssuerAttributes `json:"attributes,omitempty"` - // Details of the organization administrator. - AdministratorContacts []*AdministratorContact + // The credentials to be used for the issuer. + Credentials *IssuerCredentials `json:"credentials,omitempty"` - // Id of the organization. - OrganizationID *string + // Details of the organization as provided to the issuer. + OrganizationDetails *OrganizationDetails `json:"org_details,omitempty"` // The issuer provider. - Provider *string + Provider *string `json:"provider,omitempty"` // READ-ONLY; Identifier for the issuer object. - ID *string - - // READ-ONLY; Name is the name of the issuer - Name *string + ID *string `json:"id,omitempty" azure:"ro"` } // IssuerCredentials - The credentials to be used for the certificate issuer. type IssuerCredentials struct { // The user name/account name/account id. - AccountID *string + AccountID *string `json:"account_id,omitempty"` // The password/secret/account key. - Password *string -} - -func issuerCredentialsFromGenerated(g *generated.IssuerCredentials) *IssuerCredentials { - if g == nil { - return nil - } - - return &IssuerCredentials{AccountID: g.AccountID, Password: g.Password} -} - -func (i *IssuerCredentials) toGenerated() *generated.IssuerCredentials { - if i == nil { - return nil - } - - return &generated.IssuerCredentials{ - AccountID: i.AccountID, - Password: i.Password, - } + Password *string `json:"pwd,omitempty"` } // IssuerParameters - Parameters for the issuer of the X509 component of a certificate. type IssuerParameters struct { // Indicates if the certificates generated under this policy should be published to certificate transparency logs. - CertificateTransparency *bool + CertificateTransparency *bool `json:"cert_transparency,omitempty"` // Certificate type as supported by the provider (optional); for example 'OV-SSL', 'EV-SSL' - CertificateType *string + CertificateType *string `json:"cty,omitempty"` - // IssuerName of the referenced issuer object or reserved names; for example, 'Self' or 'Unknown'. - IssuerName *string + // Name of the referenced issuer object or reserved names; for example, 'Self' or 'Unknown'. + Name *string `json:"name,omitempty"` } -func (i *IssuerParameters) toGenerated() *generated.IssuerParameters { - if i == nil { - return &generated.IssuerParameters{} - } +// KeyProperties - Properties of the key pair backing a certificate. +type KeyProperties struct { + // Elliptic curve name. For valid values, see JsonWebKeyCurveName. + Curve *JSONWebKeyCurveName `json:"crv,omitempty"` + + // Indicates if the private key can be exported. + Exportable *bool `json:"exportable,omitempty"` - return &generated.IssuerParameters{ - CertificateTransparency: i.CertificateTransparency, - CertificateType: i.CertificateType, - Name: i.IssuerName, - } -} + // The key size in bits. For example: 2048, 3072, or 4096 for RSA. + KeySize *int32 `json:"key_size,omitempty"` -func issuerParametersFromGenerated(g *generated.IssuerParameters) *IssuerParameters { - if g == nil { - return nil - } + // The type of key pair to be used for the certificate. + KeyType *JSONWebKeyType `json:"kty,omitempty"` - return &IssuerParameters{ - CertificateTransparency: g.CertificateTransparency, - CertificateType: g.CertificateType, - IssuerName: g.Name, - } + // Indicates if the same key pair will be used on certificate renewal. + ReuseKey *bool `json:"reuse_key,omitempty"` } // LifetimeAction - Action and its trigger that will be performed by Key Vault over the lifetime of a certificate. type LifetimeAction struct { // The action that will be executed. - Action *PolicyAction - // Days before expiry to attempt renewal. Value should be between 1 and validityinmonths multiplied by 27. If validityinmonths is 36, then value should - // be between 1 and 972 (36 * 27). - DaysBeforeExpiry *int32 + Action *Action `json:"action,omitempty"` - // Percentage of lifetime at which to trigger. Value should be between 1 and 99. - LifetimePercentage *int32 + // The condition that will execute the action. + Trigger *Trigger `json:"trigger,omitempty"` } -func (l LifetimeAction) toGenerated() *generated.LifetimeAction { - return &generated.LifetimeAction{ - Action: &generated.Action{ - ActionType: (*generated.ActionType)(l.Action), - }, - Trigger: &generated.Trigger{ - DaysBeforeExpiry: l.DaysBeforeExpiry, - LifetimePercentage: l.LifetimePercentage, - }, - } +// MergeCertificateParameters - The certificate merge parameters +type MergeCertificateParameters struct { + // REQUIRED; The certificate or the certificate chain to merge. + X509Certificates [][]byte `json:"x5c,omitempty"` + + // The attributes of the certificate (optional). + CertificateAttributes *CertificateAttributes `json:"attributes,omitempty"` + + // Application specific metadata in the form of key-value pairs. + Tags map[string]*string `json:"tags,omitempty"` } -func lifetimeActionFromGenerated(g *generated.LifetimeAction) *LifetimeAction { - if g == nil { - return nil - } +// OrganizationDetails - Details of the organization of the certificate issuer. +type OrganizationDetails struct { + // Details of the organization administrator. + AdminDetails []*AdministratorDetails `json:"admin_details,omitempty"` - return &LifetimeAction{ - Action: (*PolicyAction)(g.Action.ActionType), - DaysBeforeExpiry: g.Trigger.DaysBeforeExpiry, - LifetimePercentage: g.Trigger.LifetimePercentage, - } + // Id of the organization. + ID *string `json:"id,omitempty"` +} + +// RestoreCertificateParameters - The certificate restore parameters. +type RestoreCertificateParameters struct { + // REQUIRED; The backup blob associated with a certificate bundle. + CertificateBundleBackup []byte `json:"value,omitempty"` +} + +// SecretProperties - Properties of the key backing a certificate. +type SecretProperties struct { + // The media type (MIME type). + ContentType *string `json:"contentType,omitempty"` +} + +// SetCertificateIssuerParameters - The certificate issuer set parameters. +type SetCertificateIssuerParameters struct { + // REQUIRED; The issuer provider. + Provider *string `json:"provider,omitempty"` + + // Attributes of the issuer object. + Attributes *IssuerAttributes `json:"attributes,omitempty"` + + // The credentials to be used for the issuer. + Credentials *IssuerCredentials `json:"credentials,omitempty"` + + // Details of the organization as provided to the issuer. + OrganizationDetails *OrganizationDetails `json:"org_details,omitempty"` } // SubjectAlternativeNames - The subject alternate names of a X509 object. type SubjectAlternativeNames struct { // Domain names. - DNSNames []*string + DNSNames []*string `json:"dns_names,omitempty"` // Email addresses. - Emails []*string + Emails []*string `json:"emails,omitempty"` // User principal names. - UserPrincipalNames []*string + UPNs []*string `json:"upns,omitempty"` } -func (s *SubjectAlternativeNames) toGenerated() *generated.SubjectAlternativeNames { - if s == nil { - return &generated.SubjectAlternativeNames{} - } +// Trigger - A condition to be satisfied for an action to be executed. +type Trigger struct { + // Days before expiry to attempt renewal. Value should be between 1 and validityinmonths multiplied by 27. If validityinmonths + // is 36, then value should be between 1 and 972 (36 * 27). + DaysBeforeExpiry *int32 `json:"days_before_expiry,omitempty"` - return &generated.SubjectAlternativeNames{ - DNSNames: s.DNSNames, - Emails: s.Emails, - Upns: s.UserPrincipalNames, - } + // Percentage of lifetime at which to trigger. Value should be between 1 and 99. + LifetimePercentage *int32 `json:"lifetime_percentage,omitempty"` } -func subjectAlternativeNamesFromGenerated(g *generated.SubjectAlternativeNames) *SubjectAlternativeNames { - if g == nil { - return nil - } +// UpdateCertificateIssuerParameters - The certificate issuer update parameters. +type UpdateCertificateIssuerParameters struct { + // Attributes of the issuer object. + Attributes *IssuerAttributes `json:"attributes,omitempty"` + + // The credentials to be used for the issuer. + Credentials *IssuerCredentials `json:"credentials,omitempty"` + + // Details of the organization as provided to the issuer. + OrganizationDetails *OrganizationDetails `json:"org_details,omitempty"` + + // The issuer provider. + Provider *string `json:"provider,omitempty"` +} + +// UpdateCertificateOperationParameter - The certificate operation update parameters. +type UpdateCertificateOperationParameter struct { + // REQUIRED; Indicates if cancellation was requested on the certificate operation. + CancellationRequested *bool `json:"cancellation_requested,omitempty"` +} + +// UpdateCertificateParameters - The certificate update parameters. +type UpdateCertificateParameters struct { + // The attributes of the certificate (optional). + CertificateAttributes *CertificateAttributes `json:"attributes,omitempty"` + + // The management policy for the certificate. + CertificatePolicy *CertificatePolicy `json:"policy,omitempty"` - return &SubjectAlternativeNames{ - DNSNames: g.DNSNames, - Emails: g.Emails, - UserPrincipalNames: g.Upns, - } + // Application specific metadata in the form of key-value pairs. + Tags map[string]*string `json:"tags,omitempty"` } // X509CertificateProperties - Properties of the X509 component of a certificate. type X509CertificateProperties struct { // The enhanced key usage. - EnhancedKeyUsages []*string + EKUs []*string `json:"ekus,omitempty"` // List of key usages. - KeyUsages []*KeyUsage + KeyUsage []*KeyUsageType `json:"key_usage,omitempty"` // The subject name. Should be a valid X509 distinguished Name. - Subject *string + Subject *string `json:"subject,omitempty"` // The subject alternative names. - SubjectAlternativeNames *SubjectAlternativeNames + SubjectAlternativeNames *SubjectAlternativeNames `json:"sans,omitempty"` // The duration that the certificate is valid in months. - ValidityInMonths *int32 -} - -func (x *X509CertificateProperties) toGenerated() *generated.X509CertificateProperties { - if x == nil { - return &generated.X509CertificateProperties{} - } - - var keyUsage []*generated.KeyUsageType - for _, k := range x.KeyUsages { - keyUsage = append(keyUsage, (*generated.KeyUsageType)(k)) - } - - return &generated.X509CertificateProperties{ - Ekus: x.EnhancedKeyUsages, - KeyUsage: keyUsage, - Subject: x.Subject, - SubjectAlternativeNames: x.SubjectAlternativeNames.toGenerated(), - ValidityInMonths: x.ValidityInMonths, - } -} - -func x509CertificatePropertiesFromGenerated(g *generated.X509CertificateProperties) *X509CertificateProperties { - if g == nil { - return nil - } - - var ku []*KeyUsage - for _, k := range g.KeyUsage { - ku = append(ku, (*KeyUsage)(k)) - } - - return &X509CertificateProperties{ - EnhancedKeyUsages: g.Ekus, - Subject: g.Subject, - KeyUsages: ku, - SubjectAlternativeNames: subjectAlternativeNamesFromGenerated(g.SubjectAlternativeNames), - ValidityInMonths: g.ValidityInMonths, - } + ValidityInMonths *int32 `json:"validity_months,omitempty"` } diff --git a/sdk/keyvault/azcertificates/models_serde.go b/sdk/keyvault/azcertificates/models_serde.go new file mode 100644 index 000000000000..a297eb42e4df --- /dev/null +++ b/sdk/keyvault/azcertificates/models_serde.go @@ -0,0 +1,1412 @@ +//go:build go1.18 +// +build go1.18 + +// Copyright (c) Microsoft Corporation. All rights reserved. +// Licensed under the MIT License. See License.txt in the project root for license information. +// Code generated by Microsoft (R) AutoRest Code Generator. +// Changes may cause incorrect behavior and will be lost if the code is regenerated. +// DO NOT EDIT. + +package azcertificates + +import ( + "encoding/json" + "fmt" + "github.com/Azure/azure-sdk-for-go/sdk/azcore" + "github.com/Azure/azure-sdk-for-go/sdk/azcore/runtime" + "reflect" +) + +// MarshalJSON implements the json.Marshaller interface for type Action. +func (a Action) MarshalJSON() ([]byte, error) { + objectMap := make(map[string]interface{}) + populate(objectMap, "action_type", a.ActionType) + return json.Marshal(objectMap) +} + +// UnmarshalJSON implements the json.Unmarshaller interface for type Action. +func (a *Action) UnmarshalJSON(data []byte) error { + var rawMsg map[string]json.RawMessage + if err := json.Unmarshal(data, &rawMsg); err != nil { + return fmt.Errorf("unmarshalling type %T: %v", a, err) + } + for key, val := range rawMsg { + var err error + switch key { + case "action_type": + err = unpopulate(val, "ActionType", &a.ActionType) + delete(rawMsg, key) + } + if err != nil { + return fmt.Errorf("unmarshalling type %T: %v", a, err) + } + } + return nil +} + +// MarshalJSON implements the json.Marshaller interface for type AdministratorDetails. +func (a AdministratorDetails) MarshalJSON() ([]byte, error) { + objectMap := make(map[string]interface{}) + populate(objectMap, "email", a.EmailAddress) + populate(objectMap, "first_name", a.FirstName) + populate(objectMap, "last_name", a.LastName) + populate(objectMap, "phone", a.Phone) + return json.Marshal(objectMap) +} + +// UnmarshalJSON implements the json.Unmarshaller interface for type AdministratorDetails. +func (a *AdministratorDetails) UnmarshalJSON(data []byte) error { + var rawMsg map[string]json.RawMessage + if err := json.Unmarshal(data, &rawMsg); err != nil { + return fmt.Errorf("unmarshalling type %T: %v", a, err) + } + for key, val := range rawMsg { + var err error + switch key { + case "email": + err = unpopulate(val, "EmailAddress", &a.EmailAddress) + delete(rawMsg, key) + case "first_name": + err = unpopulate(val, "FirstName", &a.FirstName) + delete(rawMsg, key) + case "last_name": + err = unpopulate(val, "LastName", &a.LastName) + delete(rawMsg, key) + case "phone": + err = unpopulate(val, "Phone", &a.Phone) + delete(rawMsg, key) + } + if err != nil { + return fmt.Errorf("unmarshalling type %T: %v", a, err) + } + } + return nil +} + +// MarshalJSON implements the json.Marshaller interface for type BackupCertificateResult. +func (b BackupCertificateResult) MarshalJSON() ([]byte, error) { + objectMap := make(map[string]interface{}) + populateByteArray(objectMap, "value", b.Value, runtime.Base64URLFormat) + return json.Marshal(objectMap) +} + +// UnmarshalJSON implements the json.Unmarshaller interface for type BackupCertificateResult. +func (b *BackupCertificateResult) UnmarshalJSON(data []byte) error { + var rawMsg map[string]json.RawMessage + if err := json.Unmarshal(data, &rawMsg); err != nil { + return fmt.Errorf("unmarshalling type %T: %v", b, err) + } + for key, val := range rawMsg { + var err error + switch key { + case "value": + err = runtime.DecodeByteArray(string(val), &b.Value, runtime.Base64URLFormat) + delete(rawMsg, key) + } + if err != nil { + return fmt.Errorf("unmarshalling type %T: %v", b, err) + } + } + return nil +} + +// MarshalJSON implements the json.Marshaller interface for type CertificateAttributes. +func (c CertificateAttributes) MarshalJSON() ([]byte, error) { + objectMap := make(map[string]interface{}) + populateTimeUnix(objectMap, "created", c.Created) + populate(objectMap, "enabled", c.Enabled) + populateTimeUnix(objectMap, "exp", c.Expires) + populateTimeUnix(objectMap, "nbf", c.NotBefore) + populate(objectMap, "recoverableDays", c.RecoverableDays) + populate(objectMap, "recoveryLevel", c.RecoveryLevel) + populateTimeUnix(objectMap, "updated", c.Updated) + return json.Marshal(objectMap) +} + +// UnmarshalJSON implements the json.Unmarshaller interface for type CertificateAttributes. +func (c *CertificateAttributes) UnmarshalJSON(data []byte) error { + var rawMsg map[string]json.RawMessage + if err := json.Unmarshal(data, &rawMsg); err != nil { + return fmt.Errorf("unmarshalling type %T: %v", c, err) + } + for key, val := range rawMsg { + var err error + switch key { + case "created": + err = unpopulateTimeUnix(val, "Created", &c.Created) + delete(rawMsg, key) + case "enabled": + err = unpopulate(val, "Enabled", &c.Enabled) + delete(rawMsg, key) + case "exp": + err = unpopulateTimeUnix(val, "Expires", &c.Expires) + delete(rawMsg, key) + case "nbf": + err = unpopulateTimeUnix(val, "NotBefore", &c.NotBefore) + delete(rawMsg, key) + case "recoverableDays": + err = unpopulate(val, "RecoverableDays", &c.RecoverableDays) + delete(rawMsg, key) + case "recoveryLevel": + err = unpopulate(val, "RecoveryLevel", &c.RecoveryLevel) + delete(rawMsg, key) + case "updated": + err = unpopulateTimeUnix(val, "Updated", &c.Updated) + delete(rawMsg, key) + } + if err != nil { + return fmt.Errorf("unmarshalling type %T: %v", c, err) + } + } + return nil +} + +// MarshalJSON implements the json.Marshaller interface for type CertificateBundle. +func (c CertificateBundle) MarshalJSON() ([]byte, error) { + objectMap := make(map[string]interface{}) + populate(objectMap, "attributes", c.Attributes) + populateByteArray(objectMap, "cer", c.CER, runtime.Base64StdFormat) + populate(objectMap, "contentType", c.ContentType) + populate(objectMap, "id", c.ID) + populate(objectMap, "kid", c.KID) + populate(objectMap, "policy", c.Policy) + populate(objectMap, "sid", c.SID) + populate(objectMap, "tags", c.Tags) + populateByteArray(objectMap, "x5t", c.X509Thumbprint, runtime.Base64URLFormat) + return json.Marshal(objectMap) +} + +// UnmarshalJSON implements the json.Unmarshaller interface for type CertificateBundle. +func (c *CertificateBundle) UnmarshalJSON(data []byte) error { + var rawMsg map[string]json.RawMessage + if err := json.Unmarshal(data, &rawMsg); err != nil { + return fmt.Errorf("unmarshalling type %T: %v", c, err) + } + for key, val := range rawMsg { + var err error + switch key { + case "attributes": + err = unpopulate(val, "Attributes", &c.Attributes) + delete(rawMsg, key) + case "cer": + err = runtime.DecodeByteArray(string(val), &c.CER, runtime.Base64StdFormat) + delete(rawMsg, key) + case "contentType": + err = unpopulate(val, "ContentType", &c.ContentType) + delete(rawMsg, key) + case "id": + err = unpopulate(val, "ID", &c.ID) + delete(rawMsg, key) + case "kid": + err = unpopulate(val, "KID", &c.KID) + delete(rawMsg, key) + case "policy": + err = unpopulate(val, "Policy", &c.Policy) + delete(rawMsg, key) + case "sid": + err = unpopulate(val, "SID", &c.SID) + delete(rawMsg, key) + case "tags": + err = unpopulate(val, "Tags", &c.Tags) + delete(rawMsg, key) + case "x5t": + err = runtime.DecodeByteArray(string(val), &c.X509Thumbprint, runtime.Base64URLFormat) + delete(rawMsg, key) + } + if err != nil { + return fmt.Errorf("unmarshalling type %T: %v", c, err) + } + } + return nil +} + +// MarshalJSON implements the json.Marshaller interface for type CertificateIssuerItem. +func (c CertificateIssuerItem) MarshalJSON() ([]byte, error) { + objectMap := make(map[string]interface{}) + populate(objectMap, "id", c.ID) + populate(objectMap, "provider", c.Provider) + return json.Marshal(objectMap) +} + +// UnmarshalJSON implements the json.Unmarshaller interface for type CertificateIssuerItem. +func (c *CertificateIssuerItem) UnmarshalJSON(data []byte) error { + var rawMsg map[string]json.RawMessage + if err := json.Unmarshal(data, &rawMsg); err != nil { + return fmt.Errorf("unmarshalling type %T: %v", c, err) + } + for key, val := range rawMsg { + var err error + switch key { + case "id": + err = unpopulate(val, "ID", &c.ID) + delete(rawMsg, key) + case "provider": + err = unpopulate(val, "Provider", &c.Provider) + delete(rawMsg, key) + } + if err != nil { + return fmt.Errorf("unmarshalling type %T: %v", c, err) + } + } + return nil +} + +// MarshalJSON implements the json.Marshaller interface for type CertificateIssuerListResult. +func (c CertificateIssuerListResult) MarshalJSON() ([]byte, error) { + objectMap := make(map[string]interface{}) + populate(objectMap, "nextLink", c.NextLink) + populate(objectMap, "value", c.Value) + return json.Marshal(objectMap) +} + +// UnmarshalJSON implements the json.Unmarshaller interface for type CertificateIssuerListResult. +func (c *CertificateIssuerListResult) UnmarshalJSON(data []byte) error { + var rawMsg map[string]json.RawMessage + if err := json.Unmarshal(data, &rawMsg); err != nil { + return fmt.Errorf("unmarshalling type %T: %v", c, err) + } + for key, val := range rawMsg { + var err error + switch key { + case "nextLink": + err = unpopulate(val, "NextLink", &c.NextLink) + delete(rawMsg, key) + case "value": + err = unpopulate(val, "Value", &c.Value) + delete(rawMsg, key) + } + if err != nil { + return fmt.Errorf("unmarshalling type %T: %v", c, err) + } + } + return nil +} + +// MarshalJSON implements the json.Marshaller interface for type CertificateItem. +func (c CertificateItem) MarshalJSON() ([]byte, error) { + objectMap := make(map[string]interface{}) + populate(objectMap, "attributes", c.Attributes) + populate(objectMap, "id", c.ID) + populate(objectMap, "tags", c.Tags) + populateByteArray(objectMap, "x5t", c.X509Thumbprint, runtime.Base64URLFormat) + return json.Marshal(objectMap) +} + +// UnmarshalJSON implements the json.Unmarshaller interface for type CertificateItem. +func (c *CertificateItem) UnmarshalJSON(data []byte) error { + var rawMsg map[string]json.RawMessage + if err := json.Unmarshal(data, &rawMsg); err != nil { + return fmt.Errorf("unmarshalling type %T: %v", c, err) + } + for key, val := range rawMsg { + var err error + switch key { + case "attributes": + err = unpopulate(val, "Attributes", &c.Attributes) + delete(rawMsg, key) + case "id": + err = unpopulate(val, "ID", &c.ID) + delete(rawMsg, key) + case "tags": + err = unpopulate(val, "Tags", &c.Tags) + delete(rawMsg, key) + case "x5t": + err = runtime.DecodeByteArray(string(val), &c.X509Thumbprint, runtime.Base64URLFormat) + delete(rawMsg, key) + } + if err != nil { + return fmt.Errorf("unmarshalling type %T: %v", c, err) + } + } + return nil +} + +// MarshalJSON implements the json.Marshaller interface for type CertificateListResult. +func (c CertificateListResult) MarshalJSON() ([]byte, error) { + objectMap := make(map[string]interface{}) + populate(objectMap, "nextLink", c.NextLink) + populate(objectMap, "value", c.Value) + return json.Marshal(objectMap) +} + +// UnmarshalJSON implements the json.Unmarshaller interface for type CertificateListResult. +func (c *CertificateListResult) UnmarshalJSON(data []byte) error { + var rawMsg map[string]json.RawMessage + if err := json.Unmarshal(data, &rawMsg); err != nil { + return fmt.Errorf("unmarshalling type %T: %v", c, err) + } + for key, val := range rawMsg { + var err error + switch key { + case "nextLink": + err = unpopulate(val, "NextLink", &c.NextLink) + delete(rawMsg, key) + case "value": + err = unpopulate(val, "Value", &c.Value) + delete(rawMsg, key) + } + if err != nil { + return fmt.Errorf("unmarshalling type %T: %v", c, err) + } + } + return nil +} + +// MarshalJSON implements the json.Marshaller interface for type CertificateOperation. +func (c CertificateOperation) MarshalJSON() ([]byte, error) { + objectMap := make(map[string]interface{}) + populateByteArray(objectMap, "csr", c.CSR, runtime.Base64StdFormat) + populate(objectMap, "cancellation_requested", c.CancellationRequested) + populate(objectMap, "error", c.Error) + populate(objectMap, "id", c.ID) + populate(objectMap, "issuer", c.IssuerParameters) + populate(objectMap, "request_id", c.RequestID) + populate(objectMap, "status", c.Status) + populate(objectMap, "status_details", c.StatusDetails) + populate(objectMap, "target", c.Target) + return json.Marshal(objectMap) +} + +// UnmarshalJSON implements the json.Unmarshaller interface for type CertificateOperation. +func (c *CertificateOperation) UnmarshalJSON(data []byte) error { + var rawMsg map[string]json.RawMessage + if err := json.Unmarshal(data, &rawMsg); err != nil { + return fmt.Errorf("unmarshalling type %T: %v", c, err) + } + for key, val := range rawMsg { + var err error + switch key { + case "csr": + err = runtime.DecodeByteArray(string(val), &c.CSR, runtime.Base64StdFormat) + delete(rawMsg, key) + case "cancellation_requested": + err = unpopulate(val, "CancellationRequested", &c.CancellationRequested) + delete(rawMsg, key) + case "error": + err = unpopulate(val, "Error", &c.Error) + delete(rawMsg, key) + case "id": + err = unpopulate(val, "ID", &c.ID) + delete(rawMsg, key) + case "issuer": + err = unpopulate(val, "IssuerParameters", &c.IssuerParameters) + delete(rawMsg, key) + case "request_id": + err = unpopulate(val, "RequestID", &c.RequestID) + delete(rawMsg, key) + case "status": + err = unpopulate(val, "Status", &c.Status) + delete(rawMsg, key) + case "status_details": + err = unpopulate(val, "StatusDetails", &c.StatusDetails) + delete(rawMsg, key) + case "target": + err = unpopulate(val, "Target", &c.Target) + delete(rawMsg, key) + } + if err != nil { + return fmt.Errorf("unmarshalling type %T: %v", c, err) + } + } + return nil +} + +// MarshalJSON implements the json.Marshaller interface for type CertificatePolicy. +func (c CertificatePolicy) MarshalJSON() ([]byte, error) { + objectMap := make(map[string]interface{}) + populate(objectMap, "attributes", c.Attributes) + populate(objectMap, "id", c.ID) + populate(objectMap, "issuer", c.IssuerParameters) + populate(objectMap, "key_props", c.KeyProperties) + populate(objectMap, "lifetime_actions", c.LifetimeActions) + populate(objectMap, "secret_props", c.SecretProperties) + populate(objectMap, "x509_props", c.X509CertificateProperties) + return json.Marshal(objectMap) +} + +// UnmarshalJSON implements the json.Unmarshaller interface for type CertificatePolicy. +func (c *CertificatePolicy) UnmarshalJSON(data []byte) error { + var rawMsg map[string]json.RawMessage + if err := json.Unmarshal(data, &rawMsg); err != nil { + return fmt.Errorf("unmarshalling type %T: %v", c, err) + } + for key, val := range rawMsg { + var err error + switch key { + case "attributes": + err = unpopulate(val, "Attributes", &c.Attributes) + delete(rawMsg, key) + case "id": + err = unpopulate(val, "ID", &c.ID) + delete(rawMsg, key) + case "issuer": + err = unpopulate(val, "IssuerParameters", &c.IssuerParameters) + delete(rawMsg, key) + case "key_props": + err = unpopulate(val, "KeyProperties", &c.KeyProperties) + delete(rawMsg, key) + case "lifetime_actions": + err = unpopulate(val, "LifetimeActions", &c.LifetimeActions) + delete(rawMsg, key) + case "secret_props": + err = unpopulate(val, "SecretProperties", &c.SecretProperties) + delete(rawMsg, key) + case "x509_props": + err = unpopulate(val, "X509CertificateProperties", &c.X509CertificateProperties) + delete(rawMsg, key) + } + if err != nil { + return fmt.Errorf("unmarshalling type %T: %v", c, err) + } + } + return nil +} + +// MarshalJSON implements the json.Marshaller interface for type Contact. +func (c Contact) MarshalJSON() ([]byte, error) { + objectMap := make(map[string]interface{}) + populate(objectMap, "email", c.EmailAddress) + populate(objectMap, "name", c.Name) + populate(objectMap, "phone", c.Phone) + return json.Marshal(objectMap) +} + +// UnmarshalJSON implements the json.Unmarshaller interface for type Contact. +func (c *Contact) UnmarshalJSON(data []byte) error { + var rawMsg map[string]json.RawMessage + if err := json.Unmarshal(data, &rawMsg); err != nil { + return fmt.Errorf("unmarshalling type %T: %v", c, err) + } + for key, val := range rawMsg { + var err error + switch key { + case "email": + err = unpopulate(val, "EmailAddress", &c.EmailAddress) + delete(rawMsg, key) + case "name": + err = unpopulate(val, "Name", &c.Name) + delete(rawMsg, key) + case "phone": + err = unpopulate(val, "Phone", &c.Phone) + delete(rawMsg, key) + } + if err != nil { + return fmt.Errorf("unmarshalling type %T: %v", c, err) + } + } + return nil +} + +// MarshalJSON implements the json.Marshaller interface for type Contacts. +func (c Contacts) MarshalJSON() ([]byte, error) { + objectMap := make(map[string]interface{}) + populate(objectMap, "contacts", c.ContactList) + populate(objectMap, "id", c.ID) + return json.Marshal(objectMap) +} + +// UnmarshalJSON implements the json.Unmarshaller interface for type Contacts. +func (c *Contacts) UnmarshalJSON(data []byte) error { + var rawMsg map[string]json.RawMessage + if err := json.Unmarshal(data, &rawMsg); err != nil { + return fmt.Errorf("unmarshalling type %T: %v", c, err) + } + for key, val := range rawMsg { + var err error + switch key { + case "contacts": + err = unpopulate(val, "ContactList", &c.ContactList) + delete(rawMsg, key) + case "id": + err = unpopulate(val, "ID", &c.ID) + delete(rawMsg, key) + } + if err != nil { + return fmt.Errorf("unmarshalling type %T: %v", c, err) + } + } + return nil +} + +// MarshalJSON implements the json.Marshaller interface for type CreateCertificateParameters. +func (c CreateCertificateParameters) MarshalJSON() ([]byte, error) { + objectMap := make(map[string]interface{}) + populate(objectMap, "attributes", c.CertificateAttributes) + populate(objectMap, "policy", c.CertificatePolicy) + populate(objectMap, "tags", c.Tags) + return json.Marshal(objectMap) +} + +// UnmarshalJSON implements the json.Unmarshaller interface for type CreateCertificateParameters. +func (c *CreateCertificateParameters) UnmarshalJSON(data []byte) error { + var rawMsg map[string]json.RawMessage + if err := json.Unmarshal(data, &rawMsg); err != nil { + return fmt.Errorf("unmarshalling type %T: %v", c, err) + } + for key, val := range rawMsg { + var err error + switch key { + case "attributes": + err = unpopulate(val, "CertificateAttributes", &c.CertificateAttributes) + delete(rawMsg, key) + case "policy": + err = unpopulate(val, "CertificatePolicy", &c.CertificatePolicy) + delete(rawMsg, key) + case "tags": + err = unpopulate(val, "Tags", &c.Tags) + delete(rawMsg, key) + } + if err != nil { + return fmt.Errorf("unmarshalling type %T: %v", c, err) + } + } + return nil +} + +// MarshalJSON implements the json.Marshaller interface for type DeletedCertificateBundle. +func (d DeletedCertificateBundle) MarshalJSON() ([]byte, error) { + objectMap := make(map[string]interface{}) + populate(objectMap, "attributes", d.Attributes) + populateByteArray(objectMap, "cer", d.CER, runtime.Base64StdFormat) + populate(objectMap, "contentType", d.ContentType) + populateTimeUnix(objectMap, "deletedDate", d.DeletedDate) + populate(objectMap, "id", d.ID) + populate(objectMap, "kid", d.KID) + populate(objectMap, "policy", d.Policy) + populate(objectMap, "recoveryId", d.RecoveryID) + populate(objectMap, "sid", d.SID) + populateTimeUnix(objectMap, "scheduledPurgeDate", d.ScheduledPurgeDate) + populate(objectMap, "tags", d.Tags) + populateByteArray(objectMap, "x5t", d.X509Thumbprint, runtime.Base64URLFormat) + return json.Marshal(objectMap) +} + +// UnmarshalJSON implements the json.Unmarshaller interface for type DeletedCertificateBundle. +func (d *DeletedCertificateBundle) UnmarshalJSON(data []byte) error { + var rawMsg map[string]json.RawMessage + if err := json.Unmarshal(data, &rawMsg); err != nil { + return fmt.Errorf("unmarshalling type %T: %v", d, err) + } + for key, val := range rawMsg { + var err error + switch key { + case "attributes": + err = unpopulate(val, "Attributes", &d.Attributes) + delete(rawMsg, key) + case "cer": + err = runtime.DecodeByteArray(string(val), &d.CER, runtime.Base64StdFormat) + delete(rawMsg, key) + case "contentType": + err = unpopulate(val, "ContentType", &d.ContentType) + delete(rawMsg, key) + case "deletedDate": + err = unpopulateTimeUnix(val, "DeletedDate", &d.DeletedDate) + delete(rawMsg, key) + case "id": + err = unpopulate(val, "ID", &d.ID) + delete(rawMsg, key) + case "kid": + err = unpopulate(val, "KID", &d.KID) + delete(rawMsg, key) + case "policy": + err = unpopulate(val, "Policy", &d.Policy) + delete(rawMsg, key) + case "recoveryId": + err = unpopulate(val, "RecoveryID", &d.RecoveryID) + delete(rawMsg, key) + case "sid": + err = unpopulate(val, "SID", &d.SID) + delete(rawMsg, key) + case "scheduledPurgeDate": + err = unpopulateTimeUnix(val, "ScheduledPurgeDate", &d.ScheduledPurgeDate) + delete(rawMsg, key) + case "tags": + err = unpopulate(val, "Tags", &d.Tags) + delete(rawMsg, key) + case "x5t": + err = runtime.DecodeByteArray(string(val), &d.X509Thumbprint, runtime.Base64URLFormat) + delete(rawMsg, key) + } + if err != nil { + return fmt.Errorf("unmarshalling type %T: %v", d, err) + } + } + return nil +} + +// MarshalJSON implements the json.Marshaller interface for type DeletedCertificateItem. +func (d DeletedCertificateItem) MarshalJSON() ([]byte, error) { + objectMap := make(map[string]interface{}) + populate(objectMap, "attributes", d.Attributes) + populateTimeUnix(objectMap, "deletedDate", d.DeletedDate) + populate(objectMap, "id", d.ID) + populate(objectMap, "recoveryId", d.RecoveryID) + populateTimeUnix(objectMap, "scheduledPurgeDate", d.ScheduledPurgeDate) + populate(objectMap, "tags", d.Tags) + populateByteArray(objectMap, "x5t", d.X509Thumbprint, runtime.Base64URLFormat) + return json.Marshal(objectMap) +} + +// UnmarshalJSON implements the json.Unmarshaller interface for type DeletedCertificateItem. +func (d *DeletedCertificateItem) UnmarshalJSON(data []byte) error { + var rawMsg map[string]json.RawMessage + if err := json.Unmarshal(data, &rawMsg); err != nil { + return fmt.Errorf("unmarshalling type %T: %v", d, err) + } + for key, val := range rawMsg { + var err error + switch key { + case "attributes": + err = unpopulate(val, "Attributes", &d.Attributes) + delete(rawMsg, key) + case "deletedDate": + err = unpopulateTimeUnix(val, "DeletedDate", &d.DeletedDate) + delete(rawMsg, key) + case "id": + err = unpopulate(val, "ID", &d.ID) + delete(rawMsg, key) + case "recoveryId": + err = unpopulate(val, "RecoveryID", &d.RecoveryID) + delete(rawMsg, key) + case "scheduledPurgeDate": + err = unpopulateTimeUnix(val, "ScheduledPurgeDate", &d.ScheduledPurgeDate) + delete(rawMsg, key) + case "tags": + err = unpopulate(val, "Tags", &d.Tags) + delete(rawMsg, key) + case "x5t": + err = runtime.DecodeByteArray(string(val), &d.X509Thumbprint, runtime.Base64URLFormat) + delete(rawMsg, key) + } + if err != nil { + return fmt.Errorf("unmarshalling type %T: %v", d, err) + } + } + return nil +} + +// MarshalJSON implements the json.Marshaller interface for type DeletedCertificateListResult. +func (d DeletedCertificateListResult) MarshalJSON() ([]byte, error) { + objectMap := make(map[string]interface{}) + populate(objectMap, "nextLink", d.NextLink) + populate(objectMap, "value", d.Value) + return json.Marshal(objectMap) +} + +// UnmarshalJSON implements the json.Unmarshaller interface for type DeletedCertificateListResult. +func (d *DeletedCertificateListResult) UnmarshalJSON(data []byte) error { + var rawMsg map[string]json.RawMessage + if err := json.Unmarshal(data, &rawMsg); err != nil { + return fmt.Errorf("unmarshalling type %T: %v", d, err) + } + for key, val := range rawMsg { + var err error + switch key { + case "nextLink": + err = unpopulate(val, "NextLink", &d.NextLink) + delete(rawMsg, key) + case "value": + err = unpopulate(val, "Value", &d.Value) + delete(rawMsg, key) + } + if err != nil { + return fmt.Errorf("unmarshalling type %T: %v", d, err) + } + } + return nil +} + +// MarshalJSON implements the json.Marshaller interface for type Error. +func (e Error) MarshalJSON() ([]byte, error) { + objectMap := make(map[string]interface{}) + populate(objectMap, "code", e.Code) + populate(objectMap, "innererror", e.InnerError) + populate(objectMap, "message", e.Message) + return json.Marshal(objectMap) +} + +// UnmarshalJSON implements the json.Unmarshaller interface for type Error. +func (e *Error) UnmarshalJSON(data []byte) error { + var rawMsg map[string]json.RawMessage + if err := json.Unmarshal(data, &rawMsg); err != nil { + return fmt.Errorf("unmarshalling type %T: %v", e, err) + } + for key, val := range rawMsg { + var err error + switch key { + case "code": + err = unpopulate(val, "Code", &e.Code) + delete(rawMsg, key) + case "innererror": + err = unpopulate(val, "InnerError", &e.InnerError) + delete(rawMsg, key) + case "message": + err = unpopulate(val, "Message", &e.Message) + delete(rawMsg, key) + } + if err != nil { + return fmt.Errorf("unmarshalling type %T: %v", e, err) + } + } + return nil +} + +// MarshalJSON implements the json.Marshaller interface for type ImportCertificateParameters. +func (i ImportCertificateParameters) MarshalJSON() ([]byte, error) { + objectMap := make(map[string]interface{}) + populate(objectMap, "value", i.Base64EncodedCertificate) + populate(objectMap, "attributes", i.CertificateAttributes) + populate(objectMap, "policy", i.CertificatePolicy) + populate(objectMap, "pwd", i.Password) + populate(objectMap, "tags", i.Tags) + return json.Marshal(objectMap) +} + +// UnmarshalJSON implements the json.Unmarshaller interface for type ImportCertificateParameters. +func (i *ImportCertificateParameters) UnmarshalJSON(data []byte) error { + var rawMsg map[string]json.RawMessage + if err := json.Unmarshal(data, &rawMsg); err != nil { + return fmt.Errorf("unmarshalling type %T: %v", i, err) + } + for key, val := range rawMsg { + var err error + switch key { + case "value": + err = unpopulate(val, "Base64EncodedCertificate", &i.Base64EncodedCertificate) + delete(rawMsg, key) + case "attributes": + err = unpopulate(val, "CertificateAttributes", &i.CertificateAttributes) + delete(rawMsg, key) + case "policy": + err = unpopulate(val, "CertificatePolicy", &i.CertificatePolicy) + delete(rawMsg, key) + case "pwd": + err = unpopulate(val, "Password", &i.Password) + delete(rawMsg, key) + case "tags": + err = unpopulate(val, "Tags", &i.Tags) + delete(rawMsg, key) + } + if err != nil { + return fmt.Errorf("unmarshalling type %T: %v", i, err) + } + } + return nil +} + +// MarshalJSON implements the json.Marshaller interface for type IssuerAttributes. +func (i IssuerAttributes) MarshalJSON() ([]byte, error) { + objectMap := make(map[string]interface{}) + populateTimeUnix(objectMap, "created", i.Created) + populate(objectMap, "enabled", i.Enabled) + populateTimeUnix(objectMap, "updated", i.Updated) + return json.Marshal(objectMap) +} + +// UnmarshalJSON implements the json.Unmarshaller interface for type IssuerAttributes. +func (i *IssuerAttributes) UnmarshalJSON(data []byte) error { + var rawMsg map[string]json.RawMessage + if err := json.Unmarshal(data, &rawMsg); err != nil { + return fmt.Errorf("unmarshalling type %T: %v", i, err) + } + for key, val := range rawMsg { + var err error + switch key { + case "created": + err = unpopulateTimeUnix(val, "Created", &i.Created) + delete(rawMsg, key) + case "enabled": + err = unpopulate(val, "Enabled", &i.Enabled) + delete(rawMsg, key) + case "updated": + err = unpopulateTimeUnix(val, "Updated", &i.Updated) + delete(rawMsg, key) + } + if err != nil { + return fmt.Errorf("unmarshalling type %T: %v", i, err) + } + } + return nil +} + +// MarshalJSON implements the json.Marshaller interface for type IssuerBundle. +func (i IssuerBundle) MarshalJSON() ([]byte, error) { + objectMap := make(map[string]interface{}) + populate(objectMap, "attributes", i.Attributes) + populate(objectMap, "credentials", i.Credentials) + populate(objectMap, "id", i.ID) + populate(objectMap, "org_details", i.OrganizationDetails) + populate(objectMap, "provider", i.Provider) + return json.Marshal(objectMap) +} + +// UnmarshalJSON implements the json.Unmarshaller interface for type IssuerBundle. +func (i *IssuerBundle) UnmarshalJSON(data []byte) error { + var rawMsg map[string]json.RawMessage + if err := json.Unmarshal(data, &rawMsg); err != nil { + return fmt.Errorf("unmarshalling type %T: %v", i, err) + } + for key, val := range rawMsg { + var err error + switch key { + case "attributes": + err = unpopulate(val, "Attributes", &i.Attributes) + delete(rawMsg, key) + case "credentials": + err = unpopulate(val, "Credentials", &i.Credentials) + delete(rawMsg, key) + case "id": + err = unpopulate(val, "ID", &i.ID) + delete(rawMsg, key) + case "org_details": + err = unpopulate(val, "OrganizationDetails", &i.OrganizationDetails) + delete(rawMsg, key) + case "provider": + err = unpopulate(val, "Provider", &i.Provider) + delete(rawMsg, key) + } + if err != nil { + return fmt.Errorf("unmarshalling type %T: %v", i, err) + } + } + return nil +} + +// MarshalJSON implements the json.Marshaller interface for type IssuerCredentials. +func (i IssuerCredentials) MarshalJSON() ([]byte, error) { + objectMap := make(map[string]interface{}) + populate(objectMap, "account_id", i.AccountID) + populate(objectMap, "pwd", i.Password) + return json.Marshal(objectMap) +} + +// UnmarshalJSON implements the json.Unmarshaller interface for type IssuerCredentials. +func (i *IssuerCredentials) UnmarshalJSON(data []byte) error { + var rawMsg map[string]json.RawMessage + if err := json.Unmarshal(data, &rawMsg); err != nil { + return fmt.Errorf("unmarshalling type %T: %v", i, err) + } + for key, val := range rawMsg { + var err error + switch key { + case "account_id": + err = unpopulate(val, "AccountID", &i.AccountID) + delete(rawMsg, key) + case "pwd": + err = unpopulate(val, "Password", &i.Password) + delete(rawMsg, key) + } + if err != nil { + return fmt.Errorf("unmarshalling type %T: %v", i, err) + } + } + return nil +} + +// MarshalJSON implements the json.Marshaller interface for type IssuerParameters. +func (i IssuerParameters) MarshalJSON() ([]byte, error) { + objectMap := make(map[string]interface{}) + populate(objectMap, "cert_transparency", i.CertificateTransparency) + populate(objectMap, "cty", i.CertificateType) + populate(objectMap, "name", i.Name) + return json.Marshal(objectMap) +} + +// UnmarshalJSON implements the json.Unmarshaller interface for type IssuerParameters. +func (i *IssuerParameters) UnmarshalJSON(data []byte) error { + var rawMsg map[string]json.RawMessage + if err := json.Unmarshal(data, &rawMsg); err != nil { + return fmt.Errorf("unmarshalling type %T: %v", i, err) + } + for key, val := range rawMsg { + var err error + switch key { + case "cert_transparency": + err = unpopulate(val, "CertificateTransparency", &i.CertificateTransparency) + delete(rawMsg, key) + case "cty": + err = unpopulate(val, "CertificateType", &i.CertificateType) + delete(rawMsg, key) + case "name": + err = unpopulate(val, "Name", &i.Name) + delete(rawMsg, key) + } + if err != nil { + return fmt.Errorf("unmarshalling type %T: %v", i, err) + } + } + return nil +} + +// MarshalJSON implements the json.Marshaller interface for type KeyProperties. +func (k KeyProperties) MarshalJSON() ([]byte, error) { + objectMap := make(map[string]interface{}) + populate(objectMap, "crv", k.Curve) + populate(objectMap, "exportable", k.Exportable) + populate(objectMap, "key_size", k.KeySize) + populate(objectMap, "kty", k.KeyType) + populate(objectMap, "reuse_key", k.ReuseKey) + return json.Marshal(objectMap) +} + +// UnmarshalJSON implements the json.Unmarshaller interface for type KeyProperties. +func (k *KeyProperties) UnmarshalJSON(data []byte) error { + var rawMsg map[string]json.RawMessage + if err := json.Unmarshal(data, &rawMsg); err != nil { + return fmt.Errorf("unmarshalling type %T: %v", k, err) + } + for key, val := range rawMsg { + var err error + switch key { + case "crv": + err = unpopulate(val, "Curve", &k.Curve) + delete(rawMsg, key) + case "exportable": + err = unpopulate(val, "Exportable", &k.Exportable) + delete(rawMsg, key) + case "key_size": + err = unpopulate(val, "KeySize", &k.KeySize) + delete(rawMsg, key) + case "kty": + err = unpopulate(val, "KeyType", &k.KeyType) + delete(rawMsg, key) + case "reuse_key": + err = unpopulate(val, "ReuseKey", &k.ReuseKey) + delete(rawMsg, key) + } + if err != nil { + return fmt.Errorf("unmarshalling type %T: %v", k, err) + } + } + return nil +} + +// MarshalJSON implements the json.Marshaller interface for type LifetimeAction. +func (l LifetimeAction) MarshalJSON() ([]byte, error) { + objectMap := make(map[string]interface{}) + populate(objectMap, "action", l.Action) + populate(objectMap, "trigger", l.Trigger) + return json.Marshal(objectMap) +} + +// UnmarshalJSON implements the json.Unmarshaller interface for type LifetimeAction. +func (l *LifetimeAction) UnmarshalJSON(data []byte) error { + var rawMsg map[string]json.RawMessage + if err := json.Unmarshal(data, &rawMsg); err != nil { + return fmt.Errorf("unmarshalling type %T: %v", l, err) + } + for key, val := range rawMsg { + var err error + switch key { + case "action": + err = unpopulate(val, "Action", &l.Action) + delete(rawMsg, key) + case "trigger": + err = unpopulate(val, "Trigger", &l.Trigger) + delete(rawMsg, key) + } + if err != nil { + return fmt.Errorf("unmarshalling type %T: %v", l, err) + } + } + return nil +} + +// MarshalJSON implements the json.Marshaller interface for type MergeCertificateParameters. +func (m MergeCertificateParameters) MarshalJSON() ([]byte, error) { + objectMap := make(map[string]interface{}) + populate(objectMap, "attributes", m.CertificateAttributes) + populate(objectMap, "tags", m.Tags) + populate(objectMap, "x5c", m.X509Certificates) + return json.Marshal(objectMap) +} + +// UnmarshalJSON implements the json.Unmarshaller interface for type MergeCertificateParameters. +func (m *MergeCertificateParameters) UnmarshalJSON(data []byte) error { + var rawMsg map[string]json.RawMessage + if err := json.Unmarshal(data, &rawMsg); err != nil { + return fmt.Errorf("unmarshalling type %T: %v", m, err) + } + for key, val := range rawMsg { + var err error + switch key { + case "attributes": + err = unpopulate(val, "CertificateAttributes", &m.CertificateAttributes) + delete(rawMsg, key) + case "tags": + err = unpopulate(val, "Tags", &m.Tags) + delete(rawMsg, key) + case "x5c": + err = unpopulate(val, "X509Certificates", &m.X509Certificates) + delete(rawMsg, key) + } + if err != nil { + return fmt.Errorf("unmarshalling type %T: %v", m, err) + } + } + return nil +} + +// MarshalJSON implements the json.Marshaller interface for type OrganizationDetails. +func (o OrganizationDetails) MarshalJSON() ([]byte, error) { + objectMap := make(map[string]interface{}) + populate(objectMap, "admin_details", o.AdminDetails) + populate(objectMap, "id", o.ID) + return json.Marshal(objectMap) +} + +// UnmarshalJSON implements the json.Unmarshaller interface for type OrganizationDetails. +func (o *OrganizationDetails) UnmarshalJSON(data []byte) error { + var rawMsg map[string]json.RawMessage + if err := json.Unmarshal(data, &rawMsg); err != nil { + return fmt.Errorf("unmarshalling type %T: %v", o, err) + } + for key, val := range rawMsg { + var err error + switch key { + case "admin_details": + err = unpopulate(val, "AdminDetails", &o.AdminDetails) + delete(rawMsg, key) + case "id": + err = unpopulate(val, "ID", &o.ID) + delete(rawMsg, key) + } + if err != nil { + return fmt.Errorf("unmarshalling type %T: %v", o, err) + } + } + return nil +} + +// MarshalJSON implements the json.Marshaller interface for type RestoreCertificateParameters. +func (r RestoreCertificateParameters) MarshalJSON() ([]byte, error) { + objectMap := make(map[string]interface{}) + populateByteArray(objectMap, "value", r.CertificateBundleBackup, runtime.Base64URLFormat) + return json.Marshal(objectMap) +} + +// UnmarshalJSON implements the json.Unmarshaller interface for type RestoreCertificateParameters. +func (r *RestoreCertificateParameters) UnmarshalJSON(data []byte) error { + var rawMsg map[string]json.RawMessage + if err := json.Unmarshal(data, &rawMsg); err != nil { + return fmt.Errorf("unmarshalling type %T: %v", r, err) + } + for key, val := range rawMsg { + var err error + switch key { + case "value": + err = runtime.DecodeByteArray(string(val), &r.CertificateBundleBackup, runtime.Base64URLFormat) + delete(rawMsg, key) + } + if err != nil { + return fmt.Errorf("unmarshalling type %T: %v", r, err) + } + } + return nil +} + +// MarshalJSON implements the json.Marshaller interface for type SecretProperties. +func (s SecretProperties) MarshalJSON() ([]byte, error) { + objectMap := make(map[string]interface{}) + populate(objectMap, "contentType", s.ContentType) + return json.Marshal(objectMap) +} + +// UnmarshalJSON implements the json.Unmarshaller interface for type SecretProperties. +func (s *SecretProperties) UnmarshalJSON(data []byte) error { + var rawMsg map[string]json.RawMessage + if err := json.Unmarshal(data, &rawMsg); err != nil { + return fmt.Errorf("unmarshalling type %T: %v", s, err) + } + for key, val := range rawMsg { + var err error + switch key { + case "contentType": + err = unpopulate(val, "ContentType", &s.ContentType) + delete(rawMsg, key) + } + if err != nil { + return fmt.Errorf("unmarshalling type %T: %v", s, err) + } + } + return nil +} + +// MarshalJSON implements the json.Marshaller interface for type SetCertificateIssuerParameters. +func (s SetCertificateIssuerParameters) MarshalJSON() ([]byte, error) { + objectMap := make(map[string]interface{}) + populate(objectMap, "attributes", s.Attributes) + populate(objectMap, "credentials", s.Credentials) + populate(objectMap, "org_details", s.OrganizationDetails) + populate(objectMap, "provider", s.Provider) + return json.Marshal(objectMap) +} + +// UnmarshalJSON implements the json.Unmarshaller interface for type SetCertificateIssuerParameters. +func (s *SetCertificateIssuerParameters) UnmarshalJSON(data []byte) error { + var rawMsg map[string]json.RawMessage + if err := json.Unmarshal(data, &rawMsg); err != nil { + return fmt.Errorf("unmarshalling type %T: %v", s, err) + } + for key, val := range rawMsg { + var err error + switch key { + case "attributes": + err = unpopulate(val, "Attributes", &s.Attributes) + delete(rawMsg, key) + case "credentials": + err = unpopulate(val, "Credentials", &s.Credentials) + delete(rawMsg, key) + case "org_details": + err = unpopulate(val, "OrganizationDetails", &s.OrganizationDetails) + delete(rawMsg, key) + case "provider": + err = unpopulate(val, "Provider", &s.Provider) + delete(rawMsg, key) + } + if err != nil { + return fmt.Errorf("unmarshalling type %T: %v", s, err) + } + } + return nil +} + +// MarshalJSON implements the json.Marshaller interface for type SubjectAlternativeNames. +func (s SubjectAlternativeNames) MarshalJSON() ([]byte, error) { + objectMap := make(map[string]interface{}) + populate(objectMap, "dns_names", s.DNSNames) + populate(objectMap, "emails", s.Emails) + populate(objectMap, "upns", s.UPNs) + return json.Marshal(objectMap) +} + +// UnmarshalJSON implements the json.Unmarshaller interface for type SubjectAlternativeNames. +func (s *SubjectAlternativeNames) UnmarshalJSON(data []byte) error { + var rawMsg map[string]json.RawMessage + if err := json.Unmarshal(data, &rawMsg); err != nil { + return fmt.Errorf("unmarshalling type %T: %v", s, err) + } + for key, val := range rawMsg { + var err error + switch key { + case "dns_names": + err = unpopulate(val, "DNSNames", &s.DNSNames) + delete(rawMsg, key) + case "emails": + err = unpopulate(val, "Emails", &s.Emails) + delete(rawMsg, key) + case "upns": + err = unpopulate(val, "UPNs", &s.UPNs) + delete(rawMsg, key) + } + if err != nil { + return fmt.Errorf("unmarshalling type %T: %v", s, err) + } + } + return nil +} + +// MarshalJSON implements the json.Marshaller interface for type Trigger. +func (t Trigger) MarshalJSON() ([]byte, error) { + objectMap := make(map[string]interface{}) + populate(objectMap, "days_before_expiry", t.DaysBeforeExpiry) + populate(objectMap, "lifetime_percentage", t.LifetimePercentage) + return json.Marshal(objectMap) +} + +// UnmarshalJSON implements the json.Unmarshaller interface for type Trigger. +func (t *Trigger) UnmarshalJSON(data []byte) error { + var rawMsg map[string]json.RawMessage + if err := json.Unmarshal(data, &rawMsg); err != nil { + return fmt.Errorf("unmarshalling type %T: %v", t, err) + } + for key, val := range rawMsg { + var err error + switch key { + case "days_before_expiry": + err = unpopulate(val, "DaysBeforeExpiry", &t.DaysBeforeExpiry) + delete(rawMsg, key) + case "lifetime_percentage": + err = unpopulate(val, "LifetimePercentage", &t.LifetimePercentage) + delete(rawMsg, key) + } + if err != nil { + return fmt.Errorf("unmarshalling type %T: %v", t, err) + } + } + return nil +} + +// MarshalJSON implements the json.Marshaller interface for type UpdateCertificateIssuerParameters. +func (u UpdateCertificateIssuerParameters) MarshalJSON() ([]byte, error) { + objectMap := make(map[string]interface{}) + populate(objectMap, "attributes", u.Attributes) + populate(objectMap, "credentials", u.Credentials) + populate(objectMap, "org_details", u.OrganizationDetails) + populate(objectMap, "provider", u.Provider) + return json.Marshal(objectMap) +} + +// UnmarshalJSON implements the json.Unmarshaller interface for type UpdateCertificateIssuerParameters. +func (u *UpdateCertificateIssuerParameters) UnmarshalJSON(data []byte) error { + var rawMsg map[string]json.RawMessage + if err := json.Unmarshal(data, &rawMsg); err != nil { + return fmt.Errorf("unmarshalling type %T: %v", u, err) + } + for key, val := range rawMsg { + var err error + switch key { + case "attributes": + err = unpopulate(val, "Attributes", &u.Attributes) + delete(rawMsg, key) + case "credentials": + err = unpopulate(val, "Credentials", &u.Credentials) + delete(rawMsg, key) + case "org_details": + err = unpopulate(val, "OrganizationDetails", &u.OrganizationDetails) + delete(rawMsg, key) + case "provider": + err = unpopulate(val, "Provider", &u.Provider) + delete(rawMsg, key) + } + if err != nil { + return fmt.Errorf("unmarshalling type %T: %v", u, err) + } + } + return nil +} + +// MarshalJSON implements the json.Marshaller interface for type UpdateCertificateOperationParameter. +func (u UpdateCertificateOperationParameter) MarshalJSON() ([]byte, error) { + objectMap := make(map[string]interface{}) + populate(objectMap, "cancellation_requested", u.CancellationRequested) + return json.Marshal(objectMap) +} + +// UnmarshalJSON implements the json.Unmarshaller interface for type UpdateCertificateOperationParameter. +func (u *UpdateCertificateOperationParameter) UnmarshalJSON(data []byte) error { + var rawMsg map[string]json.RawMessage + if err := json.Unmarshal(data, &rawMsg); err != nil { + return fmt.Errorf("unmarshalling type %T: %v", u, err) + } + for key, val := range rawMsg { + var err error + switch key { + case "cancellation_requested": + err = unpopulate(val, "CancellationRequested", &u.CancellationRequested) + delete(rawMsg, key) + } + if err != nil { + return fmt.Errorf("unmarshalling type %T: %v", u, err) + } + } + return nil +} + +// MarshalJSON implements the json.Marshaller interface for type UpdateCertificateParameters. +func (u UpdateCertificateParameters) MarshalJSON() ([]byte, error) { + objectMap := make(map[string]interface{}) + populate(objectMap, "attributes", u.CertificateAttributes) + populate(objectMap, "policy", u.CertificatePolicy) + populate(objectMap, "tags", u.Tags) + return json.Marshal(objectMap) +} + +// UnmarshalJSON implements the json.Unmarshaller interface for type UpdateCertificateParameters. +func (u *UpdateCertificateParameters) UnmarshalJSON(data []byte) error { + var rawMsg map[string]json.RawMessage + if err := json.Unmarshal(data, &rawMsg); err != nil { + return fmt.Errorf("unmarshalling type %T: %v", u, err) + } + for key, val := range rawMsg { + var err error + switch key { + case "attributes": + err = unpopulate(val, "CertificateAttributes", &u.CertificateAttributes) + delete(rawMsg, key) + case "policy": + err = unpopulate(val, "CertificatePolicy", &u.CertificatePolicy) + delete(rawMsg, key) + case "tags": + err = unpopulate(val, "Tags", &u.Tags) + delete(rawMsg, key) + } + if err != nil { + return fmt.Errorf("unmarshalling type %T: %v", u, err) + } + } + return nil +} + +// MarshalJSON implements the json.Marshaller interface for type X509CertificateProperties. +func (x X509CertificateProperties) MarshalJSON() ([]byte, error) { + objectMap := make(map[string]interface{}) + populate(objectMap, "ekus", x.EKUs) + populate(objectMap, "key_usage", x.KeyUsage) + populate(objectMap, "subject", x.Subject) + populate(objectMap, "sans", x.SubjectAlternativeNames) + populate(objectMap, "validity_months", x.ValidityInMonths) + return json.Marshal(objectMap) +} + +// UnmarshalJSON implements the json.Unmarshaller interface for type X509CertificateProperties. +func (x *X509CertificateProperties) UnmarshalJSON(data []byte) error { + var rawMsg map[string]json.RawMessage + if err := json.Unmarshal(data, &rawMsg); err != nil { + return fmt.Errorf("unmarshalling type %T: %v", x, err) + } + for key, val := range rawMsg { + var err error + switch key { + case "ekus": + err = unpopulate(val, "EKUs", &x.EKUs) + delete(rawMsg, key) + case "key_usage": + err = unpopulate(val, "KeyUsage", &x.KeyUsage) + delete(rawMsg, key) + case "subject": + err = unpopulate(val, "Subject", &x.Subject) + delete(rawMsg, key) + case "sans": + err = unpopulate(val, "SubjectAlternativeNames", &x.SubjectAlternativeNames) + delete(rawMsg, key) + case "validity_months": + err = unpopulate(val, "ValidityInMonths", &x.ValidityInMonths) + delete(rawMsg, key) + } + if err != nil { + return fmt.Errorf("unmarshalling type %T: %v", x, err) + } + } + return nil +} + +func populate(m map[string]interface{}, k string, v interface{}) { + if v == nil { + return + } else if azcore.IsNullValue(v) { + m[k] = nil + } else if !reflect.ValueOf(v).IsNil() { + m[k] = v + } +} + +func populateByteArray(m map[string]interface{}, k string, b []byte, f runtime.Base64Encoding) { + if azcore.IsNullValue(b) { + m[k] = nil + } else if len(b) == 0 { + return + } else { + m[k] = runtime.EncodeByteArray(b, f) + } +} + +func unpopulate(data json.RawMessage, fn string, v interface{}) error { + if data == nil { + return nil + } + if err := json.Unmarshal(data, v); err != nil { + return fmt.Errorf("struct field %s: %v", fn, err) + } + return nil +} diff --git a/sdk/keyvault/azcertificates/pollers.go b/sdk/keyvault/azcertificates/pollers.go deleted file mode 100644 index 6ec797aff76e..000000000000 --- a/sdk/keyvault/azcertificates/pollers.go +++ /dev/null @@ -1,136 +0,0 @@ -//go:build go1.18 -// +build go1.18 - -// Copyright (c) Microsoft Corporation. All rights reserved. -// Licensed under the MIT License. See License.txt in the project root for license information. - -package azcertificates - -import ( - "context" - "encoding/json" - "errors" - "net/http" - - "github.com/Azure/azure-sdk-for-go/sdk/azcore/runtime" - "github.com/Azure/azure-sdk-for-go/sdk/keyvault/azcertificates/internal/generated" -) - -type beginCreateCertificateOperation struct { - PollURL string - Status string - poll func(context.Context, string) (*http.Response, error) - result func(context.Context) (CreateCertificateResponse, error) -} - -func (b *beginCreateCertificateOperation) Done() bool { - return b.Status == "completed" || b.Status == "cancelled" -} - -func (b *beginCreateCertificateOperation) Poll(ctx context.Context) (*http.Response, error) { - resp, err := b.poll(ctx, b.PollURL) - if err != nil { - return nil, err - } - if !runtime.HasStatusCode(resp, http.StatusOK, http.StatusAccepted) { - return nil, runtime.NewResponseError(resp) - } - payload, err := runtime.Payload(resp) - if err != nil { - return nil, err - } - - var op Operation - if err := json.Unmarshal(payload, &op); err != nil { - return nil, err - } - - if op.Status == nil { - return nil, errors.New("missing status") - } - b.Status = *op.Status - return resp, nil -} - -func (b *beginCreateCertificateOperation) Result(ctx context.Context, out *CreateCertificateResponse) error { - result, err := b.result(ctx) - if err != nil { - return err - } - *out = result - return nil -} - -/////////////////////////////////////////////////////////////////////////////////////////////////////////////////////// -/////////////////////////////////////////////////////////////////////////////////////////////////////////////////////// - -type beginDeleteCertificateOperation struct { - resp *http.Response - poll func(context.Context) (*http.Response, error) -} - -func (b *beginDeleteCertificateOperation) Done() bool { - return b.resp != nil && b.resp.StatusCode == http.StatusOK -} - -func (b *beginDeleteCertificateOperation) Poll(ctx context.Context) (*http.Response, error) { - resp, err := b.poll(ctx) - if err != nil { - return nil, err - } - if !runtime.HasStatusCode(resp, http.StatusOK, http.StatusNotFound) { - return nil, runtime.NewResponseError(resp) - } - b.resp = resp - return b.resp, nil -} - -func (b *beginDeleteCertificateOperation) Result(ctx context.Context, out *DeleteCertificateResponse) error { - var resp generated.KeyVaultClientDeleteCertificateResponse - data, err := runtime.Payload(b.resp) - if err != nil { - return err - } - if err := json.Unmarshal(data, &resp); err != nil { - return err - } - *out = deleteCertificateResponseFromGenerated(resp) - return nil -} - -/////////////////////////////////////////////////////////////////////////////////////////////////////////////////////// -/////////////////////////////////////////////////////////////////////////////////////////////////////////////////////// - -type beginRecoverDeletedCertificate struct { - resp *http.Response - poll func(context.Context) (*http.Response, error) -} - -func (b *beginRecoverDeletedCertificate) Done() bool { - return b.resp != nil && b.resp.StatusCode == http.StatusOK -} - -func (b *beginRecoverDeletedCertificate) Poll(ctx context.Context) (*http.Response, error) { - resp, err := b.poll(ctx) - if err != nil { - return nil, err - } - if !runtime.HasStatusCode(resp, http.StatusOK, http.StatusNotFound) { - return nil, runtime.NewResponseError(resp) - } - b.resp = resp - return b.resp, nil -} - -func (b *beginRecoverDeletedCertificate) Result(ctx context.Context, out *RecoverDeletedCertificateResponse) error { - var resp generated.KeyVaultClientRecoverDeletedCertificateResponse - data, err := runtime.Payload(b.resp) - if err != nil { - return err - } - if err := json.Unmarshal(data, &resp); err != nil { - return err - } - *out = recoverDeletedCertificateResponseFromGenerated(resp) - return nil -} diff --git a/sdk/keyvault/azcertificates/response_types.go b/sdk/keyvault/azcertificates/response_types.go new file mode 100644 index 000000000000..f3f2dc29f8a4 --- /dev/null +++ b/sdk/keyvault/azcertificates/response_types.go @@ -0,0 +1,145 @@ +//go:build go1.18 +// +build go1.18 + +// Copyright (c) Microsoft Corporation. All rights reserved. +// Licensed under the MIT License. See License.txt in the project root for license information. +// Code generated by Microsoft (R) AutoRest Code Generator. +// Changes may cause incorrect behavior and will be lost if the code is regenerated. +// DO NOT EDIT. + +package azcertificates + +// BackupCertificateResponse contains the response from method Client.BackupCertificate. +type BackupCertificateResponse struct { + BackupCertificateResult +} + +// CreateCertificateResponse contains the response from method Client.CreateCertificate. +type CreateCertificateResponse struct { + CertificateOperation +} + +// DeleteCertificateContactsResponse contains the response from method Client.DeleteCertificateContacts. +type DeleteCertificateContactsResponse struct { + Contacts +} + +// DeleteCertificateIssuerResponse contains the response from method Client.DeleteCertificateIssuer. +type DeleteCertificateIssuerResponse struct { + IssuerBundle +} + +// DeleteCertificateOperationResponse contains the response from method Client.DeleteCertificateOperation. +type DeleteCertificateOperationResponse struct { + CertificateOperation +} + +// DeleteCertificateResponse contains the response from method Client.DeleteCertificate. +type DeleteCertificateResponse struct { + DeletedCertificateBundle +} + +// GetCertificateContactsResponse contains the response from method Client.GetCertificateContacts. +type GetCertificateContactsResponse struct { + Contacts +} + +// GetCertificateIssuerResponse contains the response from method Client.GetCertificateIssuer. +type GetCertificateIssuerResponse struct { + IssuerBundle +} + +// GetCertificateOperationResponse contains the response from method Client.GetCertificateOperation. +type GetCertificateOperationResponse struct { + CertificateOperation +} + +// GetCertificatePolicyResponse contains the response from method Client.GetCertificatePolicy. +type GetCertificatePolicyResponse struct { + CertificatePolicy +} + +// GetCertificateResponse contains the response from method Client.GetCertificate. +type GetCertificateResponse struct { + CertificateBundle +} + +// GetDeletedCertificateResponse contains the response from method Client.GetDeletedCertificate. +type GetDeletedCertificateResponse struct { + DeletedCertificateBundle +} + +// ImportCertificateResponse contains the response from method Client.ImportCertificate. +type ImportCertificateResponse struct { + CertificateBundle +} + +// ListCertificateIssuersResponse contains the response from method Client.ListCertificateIssuers. +type ListCertificateIssuersResponse struct { + CertificateIssuerListResult +} + +// ListCertificateVersionsResponse contains the response from method Client.ListCertificateVersions. +type ListCertificateVersionsResponse struct { + CertificateListResult +} + +// ListCertificatesResponse contains the response from method Client.ListCertificates. +type ListCertificatesResponse struct { + CertificateListResult +} + +// ListDeletedCertificatesResponse contains the response from method Client.ListDeletedCertificates. +type ListDeletedCertificatesResponse struct { + DeletedCertificateListResult +} + +// MergeCertificateResponse contains the response from method Client.MergeCertificate. +type MergeCertificateResponse struct { + CertificateBundle +} + +// PurgeDeletedCertificateResponse contains the response from method Client.PurgeDeletedCertificate. +type PurgeDeletedCertificateResponse struct { + // placeholder for future response values +} + +// RecoverDeletedCertificateResponse contains the response from method Client.RecoverDeletedCertificate. +type RecoverDeletedCertificateResponse struct { + CertificateBundle +} + +// RestoreCertificateResponse contains the response from method Client.RestoreCertificate. +type RestoreCertificateResponse struct { + CertificateBundle +} + +// SetCertificateContactsResponse contains the response from method Client.SetCertificateContacts. +type SetCertificateContactsResponse struct { + Contacts +} + +// SetCertificateIssuerResponse contains the response from method Client.SetCertificateIssuer. +type SetCertificateIssuerResponse struct { + IssuerBundle +} + +// UpdateCertificateIssuerResponse contains the response from method Client.UpdateCertificateIssuer. +type UpdateCertificateIssuerResponse struct { + IssuerBundle +} + +// UpdateCertificateOperationResponse contains the response from method Client.UpdateCertificateOperation. +type UpdateCertificateOperationResponse struct { + CertificateOperation +} + +// UpdateCertificatePolicyResponse contains the response from method Client.UpdateCertificatePolicy. +type UpdateCertificatePolicyResponse struct { + CertificatePolicy +} + +// UpdateCertificateResponse contains the response from method Client.UpdateCertificate. +type UpdateCertificateResponse struct { + CertificateBundle +} diff --git a/sdk/keyvault/azcertificates/testdata/recordings/TestBackupRestore.json b/sdk/keyvault/azcertificates/testdata/recordings/TestBackupRestore.json new file mode 100644 index 000000000000..2edccced9f82 --- /dev/null +++ b/sdk/keyvault/azcertificates/testdata/recordings/TestBackupRestore.json @@ -0,0 +1,932 @@ +{ + "Entries": [ + { + "RequestUri": "https://fakevault/certificates/cert1387819847/create?api-version=7.3", + "RequestMethod": "POST", + "RequestHeaders": { + "Accept": "application/json", + "Accept-Encoding": "gzip", + "Content-Length": "0", + "User-Agent": "azsdk-go-azcertificates/v0.5.0 (go1.18; linux)" + }, + "RequestBody": null, + "StatusCode": 401, + "ResponseHeaders": { + "Cache-Control": "no-cache", + "Content-Length": "97", + "Content-Type": "application/json; charset=utf-8", + "Date": "Wed, 29 Jun 2022 20:49:04 GMT", + "Expires": "-1", + "Pragma": "no-cache", + "Strict-Transport-Security": "max-age=31536000;includeSubDomains", + "WWW-Authenticate": "Bearer authorization=\u0022https://login.windows.net/72f988bf-86f1-41af-91ab-2d7cd011db47\u0022, resource=\u0022https://vault.azure.net\u0022", + "X-Content-Type-Options": "nosniff", + "x-ms-keyvault-network-info": "conn_type=Ipv4;addr=24.17.201.78;act_addr_fam=InterNetwork;", + "x-ms-keyvault-region": "eastus", + "x-ms-keyvault-service-version": "1.9.444.2", + "x-ms-request-id": "63b8dbf2-0025-4e40-98bd-5c8fc17c8c4a" + }, + "ResponseBody": { + "error": { + "code": "Unauthorized", + "message": "AKV10000: Request is missing a Bearer or PoP token." + } + } + }, + { + "RequestUri": "https://fakevault/certificates/cert1387819847/create?api-version=7.3", + "RequestMethod": "POST", + "RequestHeaders": { + "Accept": "application/json", + "Accept-Encoding": "gzip", + "Authorization": "Sanitized", + "Content-Length": "81", + "Content-Type": "application/json", + "User-Agent": "azsdk-go-azcertificates/v0.5.0 (go1.18; linux)" + }, + "RequestBody": { + "policy": { + "issuer": { + "name": "self" + }, + "x509_props": { + "subject": "CN=DefaultPolicy" + } + } + }, + "StatusCode": 202, + "ResponseHeaders": { + "Cache-Control": "no-cache", + "Content-Length": "1273", + "Content-Type": "application/json; charset=utf-8", + "Date": "Wed, 29 Jun 2022 20:49:07 GMT", + "Expires": "-1", + "Location": "https://fakevault/certificates/cert1387819847/pending?api-version=7.3\u0026request_id=564e336c320949ecafe7efbb72052b74", + "Pragma": "no-cache", + "Retry-After": "10", + "Strict-Transport-Security": "max-age=31536000;includeSubDomains", + "X-Content-Type-Options": "nosniff", + "x-ms-keyvault-network-info": "conn_type=Ipv4;addr=24.17.201.78;act_addr_fam=InterNetwork;", + "x-ms-keyvault-region": "eastus", + "x-ms-keyvault-service-version": "1.9.444.2", + "x-ms-request-id": "2fd31d5f-af67-491f-8a0d-eb3d9ed39738" + }, + "ResponseBody": { + "id": "https://fakevault/certificates/cert1387819847/pending", + "issuer": { + "name": "self" + }, + "csr": "MIICqDCCAZACAQAwGDEWMBQGA1UEAxMNRGVmYXVsdFBvbGljeTCCASIwDQYJKoZIhvcNAQEBBQADggEPADCCAQoCggEBALhIETIevV/SiV48erwjQMt64P7RA9LYsxHzEgqJ\u002BPYAoRsq4uFBU\u002B34uLRwe\u002BmfgrGbv7PjJCNf6/b8q9CkHCTe4QWW7pUzBw2yVfJAKuFcdOYBHRGXSROfrc4J5OD7Y6tq/W7EC4iTLD6IdVF6mpuTd924/gH5cOCAK9bTHDAcKxREs9WfNBYPcDtbk\u002BlOyEDmn202A1Ja3YAFAh8apNFi7pmOcy4kJIVedQaDHj4FI\u002BNbp2uOVkitoU9pcPC7fAapi0yS5/DJiyW4e9VN\u002BUFN/GrCDUCnLBWs4cosoSoeru0CufWFkppBC0S4m2lN0m0CUZ1WEBjZKMyBHXep7w0CAwEAAaBLMEkGCSqGSIb3DQEJDjE8MDowDgYDVR0PAQH/BAQDAgWgMB0GA1UdJQQWMBQGCCsGAQUFBwMBBggrBgEFBQcDAjAJBgNVHRMEAjAAMA0GCSqGSIb3DQEBCwUAA4IBAQCLUL\u002B8KU4ojxt26m8mjuMn0SP3Nu\u002BWUPE2JxNCJr5b5AR430YvrfJ9xXSTQVatqcqBxcYAfB\u002BFPI6ddPS90Oly9SP4VdIf5chyL2NiKX5M20UDstaUA/kSibRdGB4PjIMCZNxbF\u002B1rMTMlXX9HZC2ObBaKCPWdU5rm69glHX5isMKLNwFhVxBSUI2ok1WRUhFlnGFU\u002Brb4bv6zrdqRY9M1/EqbsJzKuSPxM\u002BmCX7c\u002BseRfgM0\u002BgCCbKW\u002BYOwZMPOyl/1S\u002BpU8gzkkGV1VS/PO6FF0wHsJjbbkWJZvgGL8RAxg6NEv4AiZ3EMcctgXDfPnBkRNtsVmrPSru9XfiaXra", + "cancellation_requested": false, + "status": "inProgress", + "status_details": "Pending certificate created. Certificate request is in progress. This may take some time based on the issuer provider. Please check again later.", + "request_id": "564e336c320949ecafe7efbb72052b74" + } + }, + { + "RequestUri": "https://fakevault/certificates/cert1387819847/pending?api-version=7.3", + "RequestMethod": "GET", + "RequestHeaders": { + "Accept": "application/json", + "Accept-Encoding": "gzip", + "Authorization": "Sanitized", + "User-Agent": "azsdk-go-azcertificates/v0.5.0 (go1.18; linux)" + }, + "RequestBody": null, + "StatusCode": 200, + "ResponseHeaders": { + "Cache-Control": "no-cache", + "Content-Length": "1273", + "Content-Type": "application/json; charset=utf-8", + "Date": "Wed, 29 Jun 2022 20:49:07 GMT", + "Expires": "-1", + "Pragma": "no-cache", + "Retry-After": "10", + "Strict-Transport-Security": "max-age=31536000;includeSubDomains", + "X-Content-Type-Options": "nosniff", + "x-ms-keyvault-network-info": "conn_type=Ipv4;addr=24.17.201.78;act_addr_fam=InterNetwork;", + "x-ms-keyvault-region": "eastus", + "x-ms-keyvault-service-version": "1.9.444.2", + "x-ms-request-id": "40d3821f-996b-4e2e-8817-a39a7700231c" + }, + "ResponseBody": { + "id": "https://fakevault/certificates/cert1387819847/pending", + "issuer": { + "name": "self" + }, + "csr": "MIICqDCCAZACAQAwGDEWMBQGA1UEAxMNRGVmYXVsdFBvbGljeTCCASIwDQYJKoZIhvcNAQEBBQADggEPADCCAQoCggEBALhIETIevV/SiV48erwjQMt64P7RA9LYsxHzEgqJ\u002BPYAoRsq4uFBU\u002B34uLRwe\u002BmfgrGbv7PjJCNf6/b8q9CkHCTe4QWW7pUzBw2yVfJAKuFcdOYBHRGXSROfrc4J5OD7Y6tq/W7EC4iTLD6IdVF6mpuTd924/gH5cOCAK9bTHDAcKxREs9WfNBYPcDtbk\u002BlOyEDmn202A1Ja3YAFAh8apNFi7pmOcy4kJIVedQaDHj4FI\u002BNbp2uOVkitoU9pcPC7fAapi0yS5/DJiyW4e9VN\u002BUFN/GrCDUCnLBWs4cosoSoeru0CufWFkppBC0S4m2lN0m0CUZ1WEBjZKMyBHXep7w0CAwEAAaBLMEkGCSqGSIb3DQEJDjE8MDowDgYDVR0PAQH/BAQDAgWgMB0GA1UdJQQWMBQGCCsGAQUFBwMBBggrBgEFBQcDAjAJBgNVHRMEAjAAMA0GCSqGSIb3DQEBCwUAA4IBAQCLUL\u002B8KU4ojxt26m8mjuMn0SP3Nu\u002BWUPE2JxNCJr5b5AR430YvrfJ9xXSTQVatqcqBxcYAfB\u002BFPI6ddPS90Oly9SP4VdIf5chyL2NiKX5M20UDstaUA/kSibRdGB4PjIMCZNxbF\u002B1rMTMlXX9HZC2ObBaKCPWdU5rm69glHX5isMKLNwFhVxBSUI2ok1WRUhFlnGFU\u002Brb4bv6zrdqRY9M1/EqbsJzKuSPxM\u002BmCX7c\u002BseRfgM0\u002BgCCbKW\u002BYOwZMPOyl/1S\u002BpU8gzkkGV1VS/PO6FF0wHsJjbbkWJZvgGL8RAxg6NEv4AiZ3EMcctgXDfPnBkRNtsVmrPSru9XfiaXra", + "cancellation_requested": false, + "status": "inProgress", + "status_details": "Pending certificate created. Certificate request is in progress. This may take some time based on the issuer provider. Please check again later.", + "request_id": "564e336c320949ecafe7efbb72052b74" + } + }, + { + "RequestUri": "https://fakevault/certificates/cert1387819847/pending?api-version=7.3", + "RequestMethod": "GET", + "RequestHeaders": { + "Accept": "application/json", + "Accept-Encoding": "gzip", + "Authorization": "Sanitized", + "User-Agent": "azsdk-go-azcertificates/v0.5.0 (go1.18; linux)" + }, + "RequestBody": null, + "StatusCode": 200, + "ResponseHeaders": { + "Cache-Control": "no-cache", + "Content-Length": "1165", + "Content-Type": "application/json; charset=utf-8", + "Date": "Wed, 29 Jun 2022 20:49:12 GMT", + "Expires": "-1", + "Pragma": "no-cache", + "Strict-Transport-Security": "max-age=31536000;includeSubDomains", + "X-Content-Type-Options": "nosniff", + "x-ms-keyvault-network-info": "conn_type=Ipv4;addr=24.17.201.78;act_addr_fam=InterNetwork;", + "x-ms-keyvault-region": "eastus", + "x-ms-keyvault-service-version": "1.9.444.2", + "x-ms-request-id": "d49bd9b4-5538-46c2-8436-a7eef981b89b" + }, + "ResponseBody": { + "id": "https://fakevault/certificates/cert1387819847/pending", + "issuer": { + "name": "self" + }, + "csr": "MIICqDCCAZACAQAwGDEWMBQGA1UEAxMNRGVmYXVsdFBvbGljeTCCASIwDQYJKoZIhvcNAQEBBQADggEPADCCAQoCggEBALhIETIevV/SiV48erwjQMt64P7RA9LYsxHzEgqJ\u002BPYAoRsq4uFBU\u002B34uLRwe\u002BmfgrGbv7PjJCNf6/b8q9CkHCTe4QWW7pUzBw2yVfJAKuFcdOYBHRGXSROfrc4J5OD7Y6tq/W7EC4iTLD6IdVF6mpuTd924/gH5cOCAK9bTHDAcKxREs9WfNBYPcDtbk\u002BlOyEDmn202A1Ja3YAFAh8apNFi7pmOcy4kJIVedQaDHj4FI\u002BNbp2uOVkitoU9pcPC7fAapi0yS5/DJiyW4e9VN\u002BUFN/GrCDUCnLBWs4cosoSoeru0CufWFkppBC0S4m2lN0m0CUZ1WEBjZKMyBHXep7w0CAwEAAaBLMEkGCSqGSIb3DQEJDjE8MDowDgYDVR0PAQH/BAQDAgWgMB0GA1UdJQQWMBQGCCsGAQUFBwMBBggrBgEFBQcDAjAJBgNVHRMEAjAAMA0GCSqGSIb3DQEBCwUAA4IBAQCLUL\u002B8KU4ojxt26m8mjuMn0SP3Nu\u002BWUPE2JxNCJr5b5AR430YvrfJ9xXSTQVatqcqBxcYAfB\u002BFPI6ddPS90Oly9SP4VdIf5chyL2NiKX5M20UDstaUA/kSibRdGB4PjIMCZNxbF\u002B1rMTMlXX9HZC2ObBaKCPWdU5rm69glHX5isMKLNwFhVxBSUI2ok1WRUhFlnGFU\u002Brb4bv6zrdqRY9M1/EqbsJzKuSPxM\u002BmCX7c\u002BseRfgM0\u002BgCCbKW\u002BYOwZMPOyl/1S\u002BpU8gzkkGV1VS/PO6FF0wHsJjbbkWJZvgGL8RAxg6NEv4AiZ3EMcctgXDfPnBkRNtsVmrPSru9XfiaXra", + "cancellation_requested": false, + "status": "completed", + "target": "https://fakevault/certificates/cert1387819847", + "request_id": "564e336c320949ecafe7efbb72052b74" + } + }, + { + "RequestUri": "https://fakevault/certificates/cert1387819847/pending?api-version=7.3", + "RequestMethod": "GET", + "RequestHeaders": { + "Accept": "application/json", + "Accept-Encoding": "gzip", + "Authorization": "Sanitized", + "User-Agent": "azsdk-go-azcertificates/v0.5.0 (go1.18; linux)" + }, + "RequestBody": null, + "StatusCode": 200, + "ResponseHeaders": { + "Cache-Control": "no-cache", + "Content-Length": "1165", + "Content-Type": "application/json; charset=utf-8", + "Date": "Wed, 29 Jun 2022 20:49:18 GMT", + "Expires": "-1", + "Pragma": "no-cache", + "Strict-Transport-Security": "max-age=31536000;includeSubDomains", + "X-Content-Type-Options": "nosniff", + "x-ms-keyvault-network-info": "conn_type=Ipv4;addr=24.17.201.78;act_addr_fam=InterNetwork;", + "x-ms-keyvault-region": "eastus", + "x-ms-keyvault-service-version": "1.9.444.2", + "x-ms-request-id": "e754f7a6-6847-47bf-9ad5-019a6ec9ef50" + }, + "ResponseBody": { + "id": "https://fakevault/certificates/cert1387819847/pending", + "issuer": { + "name": "self" + }, + "csr": "MIICqDCCAZACAQAwGDEWMBQGA1UEAxMNRGVmYXVsdFBvbGljeTCCASIwDQYJKoZIhvcNAQEBBQADggEPADCCAQoCggEBALhIETIevV/SiV48erwjQMt64P7RA9LYsxHzEgqJ\u002BPYAoRsq4uFBU\u002B34uLRwe\u002BmfgrGbv7PjJCNf6/b8q9CkHCTe4QWW7pUzBw2yVfJAKuFcdOYBHRGXSROfrc4J5OD7Y6tq/W7EC4iTLD6IdVF6mpuTd924/gH5cOCAK9bTHDAcKxREs9WfNBYPcDtbk\u002BlOyEDmn202A1Ja3YAFAh8apNFi7pmOcy4kJIVedQaDHj4FI\u002BNbp2uOVkitoU9pcPC7fAapi0yS5/DJiyW4e9VN\u002BUFN/GrCDUCnLBWs4cosoSoeru0CufWFkppBC0S4m2lN0m0CUZ1WEBjZKMyBHXep7w0CAwEAAaBLMEkGCSqGSIb3DQEJDjE8MDowDgYDVR0PAQH/BAQDAgWgMB0GA1UdJQQWMBQGCCsGAQUFBwMBBggrBgEFBQcDAjAJBgNVHRMEAjAAMA0GCSqGSIb3DQEBCwUAA4IBAQCLUL\u002B8KU4ojxt26m8mjuMn0SP3Nu\u002BWUPE2JxNCJr5b5AR430YvrfJ9xXSTQVatqcqBxcYAfB\u002BFPI6ddPS90Oly9SP4VdIf5chyL2NiKX5M20UDstaUA/kSibRdGB4PjIMCZNxbF\u002B1rMTMlXX9HZC2ObBaKCPWdU5rm69glHX5isMKLNwFhVxBSUI2ok1WRUhFlnGFU\u002Brb4bv6zrdqRY9M1/EqbsJzKuSPxM\u002BmCX7c\u002BseRfgM0\u002BgCCbKW\u002BYOwZMPOyl/1S\u002BpU8gzkkGV1VS/PO6FF0wHsJjbbkWJZvgGL8RAxg6NEv4AiZ3EMcctgXDfPnBkRNtsVmrPSru9XfiaXra", + "cancellation_requested": false, + "status": "completed", + "target": "https://fakevault/certificates/cert1387819847", + "request_id": "564e336c320949ecafe7efbb72052b74" + } + }, + { + "RequestUri": "https://fakevault/certificates/cert1387819847/pending?api-version=7.3", + "RequestMethod": "GET", + "RequestHeaders": { + "Accept": "application/json", + "Accept-Encoding": "gzip", + "Authorization": "Sanitized", + "User-Agent": "azsdk-go-azcertificates/v0.5.0 (go1.18; linux)" + }, + "RequestBody": null, + "StatusCode": 200, + "ResponseHeaders": { + "Cache-Control": "no-cache", + "Content-Length": "1165", + "Content-Type": "application/json; charset=utf-8", + "Date": "Wed, 29 Jun 2022 20:49:23 GMT", + "Expires": "-1", + "Pragma": "no-cache", + "Strict-Transport-Security": "max-age=31536000;includeSubDomains", + "X-Content-Type-Options": "nosniff", + "x-ms-keyvault-network-info": "conn_type=Ipv4;addr=24.17.201.78;act_addr_fam=InterNetwork;", + "x-ms-keyvault-region": "eastus", + "x-ms-keyvault-service-version": "1.9.444.2", + "x-ms-request-id": "955736ad-6b16-44c5-8bca-e50826189b5b" + }, + "ResponseBody": { + "id": "https://fakevault/certificates/cert1387819847/pending", + "issuer": { + "name": "self" + }, + "csr": "MIICqDCCAZACAQAwGDEWMBQGA1UEAxMNRGVmYXVsdFBvbGljeTCCASIwDQYJKoZIhvcNAQEBBQADggEPADCCAQoCggEBALhIETIevV/SiV48erwjQMt64P7RA9LYsxHzEgqJ\u002BPYAoRsq4uFBU\u002B34uLRwe\u002BmfgrGbv7PjJCNf6/b8q9CkHCTe4QWW7pUzBw2yVfJAKuFcdOYBHRGXSROfrc4J5OD7Y6tq/W7EC4iTLD6IdVF6mpuTd924/gH5cOCAK9bTHDAcKxREs9WfNBYPcDtbk\u002BlOyEDmn202A1Ja3YAFAh8apNFi7pmOcy4kJIVedQaDHj4FI\u002BNbp2uOVkitoU9pcPC7fAapi0yS5/DJiyW4e9VN\u002BUFN/GrCDUCnLBWs4cosoSoeru0CufWFkppBC0S4m2lN0m0CUZ1WEBjZKMyBHXep7w0CAwEAAaBLMEkGCSqGSIb3DQEJDjE8MDowDgYDVR0PAQH/BAQDAgWgMB0GA1UdJQQWMBQGCCsGAQUFBwMBBggrBgEFBQcDAjAJBgNVHRMEAjAAMA0GCSqGSIb3DQEBCwUAA4IBAQCLUL\u002B8KU4ojxt26m8mjuMn0SP3Nu\u002BWUPE2JxNCJr5b5AR430YvrfJ9xXSTQVatqcqBxcYAfB\u002BFPI6ddPS90Oly9SP4VdIf5chyL2NiKX5M20UDstaUA/kSibRdGB4PjIMCZNxbF\u002B1rMTMlXX9HZC2ObBaKCPWdU5rm69glHX5isMKLNwFhVxBSUI2ok1WRUhFlnGFU\u002Brb4bv6zrdqRY9M1/EqbsJzKuSPxM\u002BmCX7c\u002BseRfgM0\u002BgCCbKW\u002BYOwZMPOyl/1S\u002BpU8gzkkGV1VS/PO6FF0wHsJjbbkWJZvgGL8RAxg6NEv4AiZ3EMcctgXDfPnBkRNtsVmrPSru9XfiaXra", + "cancellation_requested": false, + "status": "completed", + "target": "https://fakevault/certificates/cert1387819847", + "request_id": "564e336c320949ecafe7efbb72052b74" + } + }, + { + "RequestUri": "https://fakevault/certificates/cert1387819847/pending?api-version=7.3", + "RequestMethod": "GET", + "RequestHeaders": { + "Accept": "application/json", + "Accept-Encoding": "gzip", + "Authorization": "Sanitized", + "User-Agent": "azsdk-go-azcertificates/v0.5.0 (go1.18; linux)" + }, + "RequestBody": null, + "StatusCode": 200, + "ResponseHeaders": { + "Cache-Control": "no-cache", + "Content-Length": "1165", + "Content-Type": "application/json; charset=utf-8", + "Date": "Wed, 29 Jun 2022 20:49:28 GMT", + "Expires": "-1", + "Pragma": "no-cache", + "Strict-Transport-Security": "max-age=31536000;includeSubDomains", + "X-Content-Type-Options": "nosniff", + "x-ms-keyvault-network-info": "conn_type=Ipv4;addr=24.17.201.78;act_addr_fam=InterNetwork;", + "x-ms-keyvault-region": "eastus", + "x-ms-keyvault-service-version": "1.9.444.2", + "x-ms-request-id": "4786c0a9-1b83-4e27-9291-ad88750bc8d2" + }, + "ResponseBody": { + "id": "https://fakevault/certificates/cert1387819847/pending", + "issuer": { + "name": "self" + }, + "csr": "MIICqDCCAZACAQAwGDEWMBQGA1UEAxMNRGVmYXVsdFBvbGljeTCCASIwDQYJKoZIhvcNAQEBBQADggEPADCCAQoCggEBALhIETIevV/SiV48erwjQMt64P7RA9LYsxHzEgqJ\u002BPYAoRsq4uFBU\u002B34uLRwe\u002BmfgrGbv7PjJCNf6/b8q9CkHCTe4QWW7pUzBw2yVfJAKuFcdOYBHRGXSROfrc4J5OD7Y6tq/W7EC4iTLD6IdVF6mpuTd924/gH5cOCAK9bTHDAcKxREs9WfNBYPcDtbk\u002BlOyEDmn202A1Ja3YAFAh8apNFi7pmOcy4kJIVedQaDHj4FI\u002BNbp2uOVkitoU9pcPC7fAapi0yS5/DJiyW4e9VN\u002BUFN/GrCDUCnLBWs4cosoSoeru0CufWFkppBC0S4m2lN0m0CUZ1WEBjZKMyBHXep7w0CAwEAAaBLMEkGCSqGSIb3DQEJDjE8MDowDgYDVR0PAQH/BAQDAgWgMB0GA1UdJQQWMBQGCCsGAQUFBwMBBggrBgEFBQcDAjAJBgNVHRMEAjAAMA0GCSqGSIb3DQEBCwUAA4IBAQCLUL\u002B8KU4ojxt26m8mjuMn0SP3Nu\u002BWUPE2JxNCJr5b5AR430YvrfJ9xXSTQVatqcqBxcYAfB\u002BFPI6ddPS90Oly9SP4VdIf5chyL2NiKX5M20UDstaUA/kSibRdGB4PjIMCZNxbF\u002B1rMTMlXX9HZC2ObBaKCPWdU5rm69glHX5isMKLNwFhVxBSUI2ok1WRUhFlnGFU\u002Brb4bv6zrdqRY9M1/EqbsJzKuSPxM\u002BmCX7c\u002BseRfgM0\u002BgCCbKW\u002BYOwZMPOyl/1S\u002BpU8gzkkGV1VS/PO6FF0wHsJjbbkWJZvgGL8RAxg6NEv4AiZ3EMcctgXDfPnBkRNtsVmrPSru9XfiaXra", + "cancellation_requested": false, + "status": "completed", + "target": "https://fakevault/certificates/cert1387819847", + "request_id": "564e336c320949ecafe7efbb72052b74" + } + }, + { + "RequestUri": "https://fakevault/certificates/cert1387819847/backup?api-version=7.3", + "RequestMethod": "POST", + "RequestHeaders": { + "Accept": "application/json", + "Accept-Encoding": "gzip", + "Authorization": "Sanitized", + "Content-Length": "0", + "User-Agent": "azsdk-go-azcertificates/v0.5.0 (go1.18; linux)" + }, + "RequestBody": null, + "StatusCode": 200, + "ResponseHeaders": { + "Cache-Control": "no-cache", + "Content-Length": "44263", + "Content-Type": "application/json; charset=utf-8", + "Date": "Wed, 29 Jun 2022 20:49:28 GMT", + "Expires": "-1", + "Pragma": "no-cache", + "Strict-Transport-Security": "max-age=31536000;includeSubDomains", + "X-Content-Type-Options": "nosniff", + "x-ms-keyvault-network-info": "conn_type=Ipv4;addr=24.17.201.78;act_addr_fam=InterNetwork;", + "x-ms-keyvault-region": "eastus", + "x-ms-keyvault-service-version": "1.9.444.2", + "x-ms-request-id": "b1fd2cde-c779-449e-aa45-e9b057660b9f" + }, + "ResponseBody": { + "value": "JkF6dXJlS2V5VmF1bHRLZXlCYWNrdXBWMS5taWNyb3NvZnQuY29tZXlKcmFXUWlPaUkwTXpnMVlqQTNZaTFrTlRRM0xUUXlaVFV0WVdVNVpTMDJNVEJrWXpNNVpHWmhaamdpTENKaGJHY2lPaUpTVTBFdFQwRkZVQzB5TlRZaUxDSmxibU1pT2lKQk1qVTJRMEpETFVoVE5URXlJbjAuUmc3WXNKbEx6WDVLQXN5WUdFLUIwaTAyLWNMblFuQm1hbHQyOUM4cXNfb1FNaHhVbEFIclR6VHFIR1UwRmRCSVV5VzVHOXJpa1NBM3lMby1Ec3gwQzE4MFcwV3hyMkNwMVNEY2R1SUJtWVVJVmViVVUtZ1RQZDR1WW1EdHBTcHgxbmlweEItWWZwdmtDR29jamx1QjUtZTFZM184RUhtc0FvSFlLc01jc0FjakRzZmxRR01SWndhdjhzd1NMd0E0Mm4wa0o1VXdFMmZkMkxVa0FNdWdGSVAwWmVuRi0ybEt1dVZWZmVPRjY4SkZUaWtWM3VxYm5Hb2x5LTRDSFRHUWdRSnRKUFp0UkVKdkw5eC1LT3Rmc3R3eVduZ0lQdkFFMGxNWUNyUE9vdWluZ0RtbmtyTFpqY2FfV1hGOFVRcTR6UVBoQ2RjWVJYQzRMTVlCSlV1emtBLllpOTdYUDdBZktzWWdaTnZiU3RxUmcuYWloeF9LVkNCMENmaFdnS2R2eHVKTmI2Q3NKYUJqcHhJZGpMd3RUZmRLcjlfeXFNcUtUX1p4a05LNVV4WjZzeF9XY1JVLU1jM2VZSEpNMGtZelZjNERLSmFFeXhKUWFlek1HbkRqdEJDZnpRSFBON2JSTnY4NVo1X2V2VHI2QjU5M0ZpZ2xac0taNGtTUGdzdm4tMlp5ZnU2TVJLaHUwNTA3T0YxdzZPblo5Z3FoV3BiSVFrUTBFa0hJdW1WeW9CcmZPdUtXdndadGY3NS0zVXlkVnVIQnVKMEY5VXFOSUQwSE1Ucmd0d3E1Xy1LWS14RDdfakk2MHpUYi13UUVoODZtSWVuR2w3ZFRVZ2lOaUx2WTN2WEVxNWpyR1lLbERfZ2I2WGhMeGpfbW16eEZiNmhXRFY0YkIydDZ4QnBaWUxldVRuNGhYNE9yNlpsSXIyTVBldWFpcW9xdWk3bFBEZDBFeGZsRVBxTDVSWF9OMXQ5YXVVWFJjNGhmaUU3VklkZ3NQaEFTRTN6VHBxakMwUVBVUVpXeGdNY09tN1BTb0sybHNWMTFYRDcyeFRiSnZ6T2FwalF3UU9rMGkyT1RxX3RYWDRhbnlOR3FuZnVrNTFqTXVoakxMYllhczZsQlJERERrYmw1Z0xpZ29PWVQ2bjhFc1doVHl4bFlLYVVYcDlNN1p1NjZzVHdUTVBEMk5TcU91MEhfVWdsUUJnUDRzYWctel83azAzUnJfUF8xdEk3NERZdVgzX3VrdjU3VjNxOEdXbGdOZVRmRmhUWGRWNDk2dEVKNVNzR0V6Sjh2WEl2TWlwM0pXNzZWdmRuV3dtZTFqTFc2c21RcnFzTVN0a0VHandWSWFqS2g2TGNIbE9iemR1dDMxSE9UZWNIbElBYkpHQjRqT2NvUVkzMzExd3R2bnpTSG5TVm0tNGxvRjVKLURrdnVrdzlXaktnWDY4QTJIcTUtSWtYRHdrb2dHYVA3N3o3U0Y2akxvQ2l6UnEtT2paS29nd045R3dYT2lNZ3g0N3FxWVN5ZDFkd0hXRHdKTHVycjFJQ0lEaWVrTUhYMWdmM2xncVVncnFSc3h1RnpxOHJ2LXNkeDlMbFBLMUNVQ2JGNU9jakFyTkpzdTkzaFQzUWhkWURoQ214c2VjTE5LVGdrcjI3M3gzcjZLS2Z1d2hWa1BTTFRYYVFCUlBLRXhkaXVoYU9raUlpMkdMT3VzSXJPcWJpQWF5eWhjUS12M0tlVXVwOVRjcUlNOC1qUS1OczhJUE4xU2pfM3BHUGMzdE9BUGtORnIzb3VGR3h6OGxjUFFOSVI4RG9iNy0wWnlHRG55MEM2b1BOR3BLNHczZWJQdVlGTVY1NTl5Y2hxQ29YTVV3WGRNaG91UFh5eGlVYWlnTFBsS21LbFgzN3pHOGMwVlRIdVRNcXY1dUI1Z3hMZk92M01ESVZHUkQzS2VkVlFvTzVXazA3ckhGR19YRm82ZUxWXy1GdlpsdlNOSGFoX1BfQkNGTDBoUl9iUDJLdk5ZcExEYWdMZHZFMW9NV2xCMjMzb1VPNjZUNk1tb3RmWFQ4RlhSb0h2UUp1eEthdDFFMkFqdVlfVk1uRzdfN24wUndUaG01WVRXRTBhOUliaDFTMjdaWnVuZmZuVExaZ2gzSlFpZ3BoQVh5Snp1bWtPWEdMdEhidXU4LVk2SkMyMXYzVW16VURqeFQ1TW5ONFg5ZkhxVUdreU83TnN3S0NNam5laXpWd3dJaEFLWnp3bkpBNFpzSnQwa1N6TC10ZzJLc0MxTEYzYnZtOUNvRm9XUjVFMzloanV0TEJsM010d2l3Rmt5VW1JLUNvOEVhcFNMZTlhMzduM1VLYVB4V1FvdGhrdlRIRnUyVEFQQ1pvVm1UeDF4NEtrdlhQN1dhM3VFSHU5eEpBZGw2MzVSem5vdUlUcHByYjUwOVR3eE41UTZCaU4taE5EQlpPUU5xMlo0cnZyNnFranpaSXlSbHpJUTIyUXZ0dDFiTTIyTnRZRHVXZEVOMFFVWERwZXNNX3FOdGRnS2EycmNYUlpUVVpFMFdPWVA3S3kweVE3ZHB5YTFtOXVWVUJ0dXpmRTV1NEdNd0dMckNDNGlIbzRuZ1lxLWF3SlpjcEdKRG5lUHMzLVFXWHRXWjd5TmNVdDFZbVh0Njhta2l4T3I1S2dGYTFHMnBFb21XbHJvcklLazZkQUQ4UVdsMEpzSFB3RGh4dE5BVXJfRTd2VmotV25LVlNlNWNsSUV0bjdTVXlxNENpcFNXMGo4VENjQWJuSVdDYXB0NXBrNm9CTEtxWHRqbUdEN2NLRzNlZ3NEWk1IRi13UU1FNE5SSkExMVdFYkVTdzZnNjRGckZnaWJCQUtKWDVNbXJ6Vk1pTWhOMFZjWDNSVE13OElxeU5xSUUzWEZhZzl1WE1tZFp5MlNaajFydUNqOE1SR3VZZnlzSUNzVkJBeWo3TkRZWDA1d0hxYnJTY2VhR3djWEZyVGltcG52VWZxVllKU0FId0otX0wyUllfTWoyenFDUExnSGl3eW56MnZLTHJVM0djWVdQSzNnX1FiZXhNamdhcXhRcFFtQjI1eWdld2VaU0NwU3A4dElDaFJDQWhOb2JXMEhNcjlENDhGd1E3cE9vdHdIaV9QS0MtT20tekFNX255cmpuZnNEdE9rcEdQN3NUZHVBcFFFSFgtY21MQm1iWEdpMHJrTGQ3VWs2OHBkVmlJcUhNRTVQX0FrNjhhb2cteG9uWFlFdVBQT0ZPUHdZdVNfVW9YUzRNcXI5eXN1V3g0NVBaQ19LUWtGeGpOSzc3UHZEX3RENFJpY251Y0RjRG51R0JpZno4SzRoY0tMV05WY21Yc3dNZ1RwWGNqYzNfTjZ5c0dWMW4wSjBSbzRPZDJod0hmTWlRZUtucTAwZXZnMFFzZExaUTFDM0NYa0tlNk51YTRITnBpX003b292d216VzdDdG5OV2FNWV9RRHk1RUVISUVOUjRWNmNjTy1IbzJtZndfSTFuVHdZRFN6X0xMU2RXSFpGS2FaS1R5Y1VwWGVDX0ZZOHl0eGc5MVJ3NS1VZHQ4Y1IyVmRreEN6OUYtWllaU184MzhJS3djMGpUdlVrWUphZzI3cDFYMDJZeWh0UmRUdkV2QW5XYVR3Z0M1RmgwbzJoNHlyaURnbUxIVkRfX2NudWlocEIzT3dJd3RpY0RVTUtlbHpLQmRhQnlLVTdhdGh2UHY5X1I0WWVnZFBsMXlmSC16Wkp5VnRCbTRwYlM4UVFPcGVHbkFmVW5lRzNpakplMy00MU1GUzNfZmoxOFgzbEM1T3JBT3o5aTB3Ymk1bS1Nc2VTcnp3QUtaeHBRbF9lSGViWU9RYWMxX0NUV08yanNKXzRtb09vcHJ0bmpmVmFRZUhrNnRjbEFxMDZoZTFEd0JFQ1ItczRYbnlvOW14U0hnYjhCanJ3aDd0VTBZSlYwQ243aE8wS1dIZUstRFg0VVBKODV4UHZvZHozcVZpWjRQTU9peEtqemNkR19TVC1iQ2sxeWNFN29peE8xMDJOSHlYb2FtMUc5Y2U5T2Y3TkdyRVQ2aFRDMEJ2Ty1YUHFkMXd4THdYZm9qdkFNYzgwaVpUckNkVVdvUDdoWFRpcE1Hcy04bWR4UXNJTjVCdzM1T29MRG1rZVBNMzlWcjJIYkJ0UkxWb3ljd09XMlVhR1FmSlFuNVlEazhmb2dpTjhSaE9ZMlkwSFhBOWJ6SjJ2OWlJWFZXb2Y5SmlmaGdBNnVzWVphdVREN1JUXzJxRjhGVWFjSEFfNFFkRktwME15dWk0QzhFRm5fWWlMOWVBbWtyR0RMQmlrZkxFbE9ENTQza3hxS3lxSy1LeHRabXRsWm5Ld0lZTWhabnc5Rm9xT1Q3OFFoNkotdVJPTHlGVGdWU20wVEEtVE82enc2dzY1bWl4SXZMOWh3aWhCaUZlVS0zMXRJdVZaUE15UHIzZnJBMGVoOUJNMTNMTG4tZHpGVjJpdlI2SHZJN21abmNva3J4WFpEQ3dWS3dfNzZYVHd4MXhXUFlpeUpvMlNvOU9FTHM5WUx5MVhwYS0tYlJBRS1feGU3OUoxb3cyREZJcFlTaDYyWkU0SnpEejBpN0FrMXF5LWttMTBZNkw3VDBEYVI3aGtlZGdPRWktNjhFNmR0MnFaSGFXdkstaXhyV3RLeWg0VzY2NlBIQnBoTzdlbGpKYWxOejVuR3dpUk16T2FWbGk3ekRlZ3BQemFPR0tfQmZtTmliX1A1ZnVHenFsYzFqc0cySmZRbFFyT3VFTl9aWl9HS1VRWlB1N0xxczZGQUowd0hYZ3ZjR2M0Q3FKd2tzNk0zWG1KTkNCaTlGbVpxUDJCLU12MGg2Ukt1SDNidVdkYVk2RU9jc2dtU251N0t3U0lFekNtbDFpNGFFTGhCc3BfVWpsQ01ENkdUam5jNFVKRGhsTWRUTTlSdWxwQ1hEbDJaUWc1N1FhMnFGeVdWeGNkdTM0WVdPOTlxM20xa3cta041azZiWVhnU2pBcWF4TGxWSXdaRlI0WUJCTk1xVTdTMkZEQ1JMWnFUSFBhODkwellPU1ZYTnRFc0c2aUhUSi1EX0F3YUlpeGRhcEhPcHpWWDdzbUMwYW5uaVhNQ25rX0lsX3pvQW82c29PT3A0TXRGMUJzUmMxMm5zVm9JY0tIX1RDX28tcGtRdDQyb1piZ3lzNGszdWNKSzJRT0poWl9SY2hiN1BqQXE2T1ZZN2ZYaGtLZWVxclRXSVlCTk1qVHR4M243Y2tEQlhKUWVxQV9zN0RrZlBwanF4UDhJUEdubHMtWUZWcVh5VFRlQmJTVFpXT1ZILWZ1WmZabnAwMGZJcmlDTm1kUU03dEhoOEEtUlZqR2RjSVdYRFhvMm1iX3hjYk5wQ0VmQzRoaXUxWmxMM1o4N2UtbEFXLWV1bnFoRm1xaDg1ejRFY0Z1bXVIb1ZLRXBLREg5cUxWSUFPZHZxc3FrQmFSZVZSckowdTNSTkJMWGRMOWNhUGkyTnZEUUhDanh0Z3RWdHgySUFVQk16VVJiWjdmbHBTS0lxaUxVdEVPbk9iZGN3ZjUzR3l2aU1Vb0s1OWV4WXZUSENuYlliVTk5YTZCcktCR3l1cnRhVXJqLTExckVwVWVBYkNMVkZ2WXJpbWlCVkRfbnlNUHZYTXFMNV9wNUY5cnhTanhINlJkN3hRZ1RDMVllQXF2ZDNFYWV1QTlLVHNicFVVN05FaFlic2ZYT0UyWWxGT1RmVEV3ZTlwWkR3dmxTQ3VLdHc0TWl3MVBOV3oydlBRdUp2cHZMXzktWEUzYU9GOVFOa3RRSHY3QWJaUGMwLUxZRWxnZ1hpZkdaTzE0OVVLNU1uTTJVN0M2d2kwQ2F5UUJpdmN3NjZWMXRNajV3WERjUmhYaWI1M3E5UUs4X3pHcmwwazBWQTIzQjh0US01bzBkNndlZzNUc2o5RWlHalhhTXBFZ0ZoUTRWM29rc09YdElWRmZQTndlNXl1bVZUVVFMVEQyMW0xc2NsTFFOYldUSm1zdk03MHU5cmNqRWJ3QVY4UU9IRW53UWlXSTZGQUpodDJMR1ZlZEN0YlNwTDZaRHplbUhETTRsbHoxWl9ib1loR19HYmM0T3l3ZlplVzEydEFxckdCZHlYb3V2djEtYVBHZmFvQ01qRkl2S0dYYThZN1Z1UFJaZE9Ec0g4aDJFV29DRDRUMkhuMzd3T1ZDNHBKTUhDRkRoaGNFaEx4LTBxRVkzdTVqSUgzNDhLN2REbXZqVm11WkpwRWsyTHE1bXRkcFJiZ3NRYUpDdU9NUGMxa3RNeWZDQVdLdGNiUW91em1pcHhBS0dqbTdBTjFNNjFoaWQ3THlZakRRYjh6RWk3X1lsM0F6c2wzTnprR1owUDBfNm10a2tBb0VIN2hHTVp4b0VMWS1NREt0N0R4Z3pCVnlwckU5SlhaWmFJNGxQVTE2SjlIbGhBbExfdUk0aFFsQ0dhWEhRQ1pGZWF6U2F4MlZXbWFrQktLdmY1SVpaLWRFaVpRX01Pc3o3ZVJxS0NUQ3VpMjdiYzZ0bkFRNFdTV2dkdUp6OWxxVW84dnhLNkowSDZ0Qm5kZGJUT184UXNFVko2dEd6a0pHWE1HNk9VT25YT3kwR0xUbmZlYXUwRXVKRHp3c0UzU293RWVuVVVmR1A1cWMyc0ZhdXlyaEVCLUE4SXppcXlKZkNkY3dPajhmcERwYXVtTzkyejJLMXloVDhEQzVJOVZNektqaHlJVlpab081cEFsNnBRYkhiSEpLMGt2NmV0NU13ZVBFTHpNWC1aV29OOVpnNk9wR2NvR0lXNTEzMTNVc04zM3d3LVN1bExlTTdfdmZ2UjZvTTZTWllCQXR6ZXpBcjVic0xXdTNoME94SlRDN2w2TXJURlZhMElTd1NwOTNkcTg3ZUF3bnFUSlJDbVI3Smhnb2s4YUpLT0RYbUs2aTU1VHVHRFplc3plN0JqQTZyb0pkMGF3bVh1LW1YZGpzVHpfZC1CWlZ3dnVfZ1puVGhkRElnb3d0N3RYNHhPX21RZ2J1Q1VfMjYyTXEyZlpISGdfY29fckI2V0t0cE9LYUljaVl3NFNwMlRfaWJCWW5taWZlcTBkZFN4LWRueXFPUlBYX1NVbUNia29OUE90ZFFyNVRQNEs2R1JuQVFzbGY2RUlGTTg0M0FkTUZFNjZJcy00Rlo3OVNQTHNVWFpLcTFNWFVRQ01OSlY0b0tDOHR4STc5b1FRbl96cE9yNzc5MmdPeE13SGczc3lMaUVsVHZramdWYllwTjJnWU9qMWx6SG11SFBkZjB5MmZBQy1fVTRnT2lvSFRmM0cwaU1GbzJva3R6bWk4Y19VcVpfNnd3dzVvalNyNmQyNXZ1UGhQdVM1eVhIRmN1MGJ4VlhrYWZ1cUV1MUwyQnk5Xy1hcm94c3BuRGx2NzItYnhmRkJKc21QTmdaZXpSNmMxdDRBSGwydHJibFpmX2NnaG8zbDRESllYV3B2OGJmZzJJQzd1bVhaYnlmWkV1d1NzQlJnX0lVTmZ6aWF4Qm16R3F0MmpXakJ4em12bnhYZXNFYXNUclpGeE1HYm1ucm82YktXTEFaUmpELVlGRFh3ME81Q3c0cXhpZUVjQW9EelpoaGhWX2hpVW5VOERad1NERnBZd3BvVG0tMHN4WTBhWXRNOTdqb3VKUEVxU0czSFBBOTZ0aC1nMGxyTHVLb2ttX19uc09RcHNZZVBfY3FIUkJDdTdPUjBnMHRVMkNXTk94Ql9oQ3VuYm0wUEVUUmRKbXk0UnBBNlNnTVlVRENleHAxRUNUOFI5OVpKaUdidC01RGVTdE50bXc1eWNwcGw5emwwd1pyWFM4RzNxQ2lkbENNb0liSkY4YzNSWjFSZGVtQTkzUVQ1X2tXdHltb3A5TkEydDRCWGJxTW9MU3FjUXNHczlWSmxwV05QLVVHVE1UNHU5TVFVZ3FWZGJCOGhyc2Juc3NrSW8xakNVUDBpNUYxYzJJXy03dTBxcmRBajdMWVIxS01HUGRpTGFqWXQ4aFhPY3ViWGFXWkVLYjdrU1YzWm9mN2ZqdU1WNDdpeTBnN21seUlJeGgxRGVUQm93TUtwQ1Fmc0J3NzFPdFV4eE1JOGdzVTl3S2IxaktCRW5ZM01KU2lKVTJvUW5xVEFVNU1XaG9uUWx2MWdlQU5OajE0bTBKN2tXc3MzNFZpUVFYUHpIMFdrYzBwb2V1Z01xQ3pmQWJCTlpzNmhQVHlhQUZXa3FocW15VlA5RnRBMlN0T3VVMVJRVnZDS3FNWE5rTkRKMy1SQmEzWjQzcU93MnJnb2lIaHdBemg4Q1Y1UWs3T1J1V1FCY2FDZVd6X0pNTTFnbV9EQnotTGFlYmF2aVVEOVp2VjZwR24zbnJwWWV0SWFVNkU0c0dpSHVLdGpMdUdxenhiWmZRb2RfMW1TdVZfdVBHaFVZVjRYdzZKcXlTbTNObjJOa1o3Ry1PUUxSMDBLXzRGSHREUzBSYW9fZkc1TFhrWW1ZSlBwOGl0ZjBRQ05Cb3F1dXZIaGQzajZWbU9FQUFNeEVCZ1IzNFVJOW0zdzhwcmF1UlBqSkRuNUp1NEdxOTRfY3pSbGtfYVBEd3l1ekpDbXlkbG9JOG5BTVFDYWtFNUdEWkI0bnlZQ2JVVHV0YmRock5ZNklwU0pSVnNYekNIbnE4UXRTVVFZTFliN3cxSjlUa2hzSHRsZVFNWjVYekNKaUM3T0NadHlpNE1LenNqWk9veGFIXzBIQ1lpTUZtQmNuTkZRLWZtN1JkNy1DaHp3cF9YZFFpUWQ4YWJjdXhIY2JFX0Z5cjJEX0lyUWhQY2tCdGJZQ0g5Z1ZUREdaNk8yZ216b19BNkJmNEUwSmM0Uk5leV9LQnE4RWRnMkNPalgzV3JBRDBlMU9mVTlxalBmNzFwa1ZaaUFGS2tla19VVXllcF9CWW03SFdfYnFWX0RZWE9Db2xtcl9fODFwZGJqTlhxbFYwbzdlS2VfWjUwSDM1Y3BkWVFOUXRLNjVNdnh0OFBHNnJjTE9YRzN3OTRwX25wQXNyc0JFcGd4Umx4WDBsMVk1Z3dTTjMxZy01UDU0YlBDdEoyNmVQLUNsVDZSZ01oV0M1Q2Z6SVpTRDVCSmExNlJKeW5XLVNBbW5HX3UwaW5vWEJfMk1TWXhzcjJGUnB0UGh3N3c1cjhDQ3JLTW5zSy1DTGpfSjFydjV0d3BETldPeE9GQUdBNjU2MnJ2MzN0SXNzYmZPa2doem1MOTBRQW1YTjcwYkJfNFJKYlk2NUtPQU16c052NHlUQU1rZ1NUbjk1cXRjN3U5LXdoTlpXUWdHUTJjcjB2ODUxU3hmam4zRGVJWV9sMkNFVkdkcVVDcDZFZ3lUVW54RjZlTjIwdVhzbWpxaWY1UHBfVHJLa0NVMGJrT3NQMFpQci15QXBLaUh1UEJyU0tsVTFiZ2lpY3lDLWNmeDVRS3VkN2NyWmphVkxESkhkblRPRi13b0JiNVBGUVJEdDNEQ0taNnVqbmpfelUyUFUxUDVwQVBwYmtnNWIxNG5XNDZZVlBCSzJTNkRZUGMwRUxiOF80b20yTElJNnFJd0VLZUVvWGpkY2lnX2pCcEEzOHBVRDZHSW1vV2h3MzRfSEd0eWRmQ1VzTTVtTTZZOWJNb2JQdUdsQlAyMi15ZFFNZ0llRGdyNFYtX1J2Sm9nZ2NGZnFoYkFHRDRLN1JybDYwbmtfbjdXQ2pEakI1MF9hWUFPbnlDOWtnUjhQYjQtT280OEdFSjJjMklEQk5KQU44V0kwUllhN0RfZWN2UFU3QUpzWTdoVXVUakI4MXZBVGIzWmt0N19LZHo4NC1nazh2RThidVFrZFlGckVmN2Y1TU5PMG4wM3hGY2VsOXRMeGcxdWlUVXVndF92dFA3QmgzSEdqVUVBaDZMeGZIZWR6N0ZQSEVoYkJDYjEtNy1PWVBnLWNBU2pvYnZnWEd0Qm9VcFh3ZVRydm1fM3A1T2NHckMyaWlhTWpWZFRvb3Y1MFZoZUZNUU85Skx4NjZHZU1WZkozbmE1dUFFWS1KTHd4VnVCZEI0Q05obmpvbGhNWDVsM2U0bjlWcTBVck5PUG1oMFpCazRUNHJ3REgwXzRjZzVOUEdkT2F0SlJzb19hQnNwV05PaV9iTmlwSy1HcTFiX0d5ejhNZ1dzbkN0akhWOXNNcHpkeXZncUxObmtVd0xab0g3QW95eHI5X2RrUDdJb2Y4eEo4cXNBcS05MkNfRVNKa1hzR1RJYloxdGh4YVZsZzVqcHRSOHdXeUZ6MEdWejdnanFqNXI2ZE9raXoyU3lQbXdLN0stUmxVYVJ5SGFpZ2gwRnRGTG1fTUplZUVnVnVXR3BSSDVvaGs2RF9sTXpZNC04NjZqNVkxaEZTbjJQSTVEQjV4T1VpSVhsbUNwc3NUMzJpejVYZ1hEbmNuUzdSM0FsbmRGcldnanFadDlCX2swNnhaUW15TEcyQ29vXy1lbGZzVmhuODBvVy1hc2U4Mjh6N2xQcTRua3lvNnJZeFpwMlk5bWJ4bmtQcWZTdU9DZm9ldnRLYTNad0k5NWMzbXJDaGZHTHBaejlXR1ExdzVGTzc0NTlrbDFmLTBBZV8yTnVyWkpaUExEcEczYklHLUx3TnQ1cTR0amNhSEplWEtuMi1UMEVvMENPWXhlaVFkOW5DYnk5Vm05OUI2WFpscXRON2xaYVlXT2FMM3o4ZHhrQXVERXFKcVd6VVp6TS0tdENvNHV2RkJfVEx1QlJtVDlJc2FvaDVwTFljSFdQRTJGNG1GTGFKc3dHd2pGR293cFduTUNrZnNzSlFBcWwya2ZqSWVrRk5LeHV0cmhBdmJ0WjRuWTFyTFg5YmVzZWRjZ0paMTAyaDV5dE9janB4dG9vY0hRUl8zWlluZWxIc0YxZjZfMVpZeGxLb2NHR1VlRUxaVW8wTkN3RW1rcjZkbnVEVjNkQkNjQ2MtX1Jnc05oSXo0eFZmX1BtVFlnUERDVHc4RTd3QlNFWWhrekMxY0I0cnA5ZnQtYW5MNHNCdmRvQTJubGNkS2c3MTRxaG5SVk84LTlrTlhCelM0YV9hbmhMQU5IOXdldWlsN2h6Q21uMF9KNEFZYm41SndleklJQUZWTEhCOTNsc3pWTGJ0UWNLN0IxakJpRUdWUmNGd2ZRR0xWWjg4QWE4WElSblhsLVRabTR6V29SQnFjQkRRZXNzNmdoallPTnBDYzdOeUhSSFAxdE5vN2F4aGVuWUY1REFKVG01aktnQkZIOEo0THhRTk5ybkp2UzF1MjZZZ2FFN3lLR2FXRzdQREdWWW1ScV9OZHpkOXdrNGQ5RnBOalR4U2tlSHh1V3ZKVXVKZVQ2VHBtTDF1ZzkyTDZaeUZ2NkhZUE9TY2NoSHRkU1p3bUl4R0lXejJJSG9GcFNPd1M5WWJhOXRWSk9NR3ZZZHB4MlNrZmlSbHF3SHFWQzlvRWVYOUI3VkN4ZUlhUVB0Wl9LMkpsUVQtM0VvQ3kzY1ZuWjY4YUE4VWxSVEdwbl80NlJtQkFUWFpJcTZtLWs5V0V1YVR1S1VhalEwSkpyb1B4cHhkNlp5MkdLU2k1UHNVc2Z3c1gyX3J2Z2lsRFRZWjJCMFBTX0hLYjVvNVJUVGJTTWV4WGpYaHZYV0VDZmtTNjljdUtYQnZhcmVaZldrN3BOWFk2eFZfV3F3TVJnQlRUMXRNY1dnQU02UmVFMDNzY3RyVFlvSkZmbFpYTnBpcU96MWZ0c1pGTzNPQjZfeUxGQzBNd2tYNUlJdU1ibVA1VmJmYlNNVUlRcmpPelE1SWJGLXUtbUN3b0IyQ3FQOVRvdFFFUWdOc3FFTHB6ZnRiM21CMl9ESDZHTF9DZXl5bU9XdTJZNTdFelF4UkRnTUJuc0w3dXpweWJzejFkZzBvWjM1UnkzelZzaEE0bjZYQmszQmJsS2EyMVRhbzUtd1J3V0hDUi03dVUwMW9aT2RGZ1J0OHhfTElQVjNYUFlUbXpBVVVqRHFkM0pneWRjRF9Md3E0UWxkbVF1MUdGbU9lRGxEcDgwQTdQd0ZiWGxqU282ZTRFWi1pZUdhNGNTcVpzR09ET3B0ZFBPeDhZX3NJbS10NE1Jc2ZONzVPcE5TRG1NUkNGaFEyVGRNUGFyQnRMS3RZR0tMRm9nSlFmUFgwdW82aUpJeGhHN1l6a2FxankxNzAwanZaUkhtLTZzT3JaMEstY1BZVXlTcEFiS2F6eHpyaHdVcUJlZExYUnE2cWJHVFdhbGZmRHhzc1N3TnZ0LU1vbzVDNVlmbjIwMmlOcUV2VUlEemYtN3dQNGVrVTRKdFo5bVEzZWdHaWdkd3FhNDRxaHN6cVZTTzFvRFRPWXYteVcxbFZXNDh5dUtNeDQxQ1lnZkVWaWNSVW1hQ3ZMdFYyT3VjcHBnWVBFcjc1c0o1Yk9rZmxGdlFYVDM4bDF2bGxtZWNTN0dHY0g5cVljNjNjcGE4MUhxa2V2cnpZeU0yVjRGZUVkZkxYbmJhYTVHOUYzakNoTFBST3NpVmtLWWlaSUtzVHNQamhwR3VCQk9PdTdKSHREYTdmd2hXNjFYVzRIWFRrWndoNTVkd3lnVVBMcEo1U3lwbGNuLXVtaF9CUnFLUGZ1c1p4cXo3Mjk1X044TS0zRTlwNkV6NHNUTnBBS3c3Z25sdXo4LURCZXU3T1ZXNFhEWUlXekNxUkhuWmNYS0VPSjNHQU9MSmV2RHpMeGJRaXg2YmcxcHc1RTZBLUdJS0hvT1Zoa3VmRTZWQkZTX1hENmxiY3YzOVF1dHdoa3pWZEY2VGVrZlNzcFVDTjdVWXRjU241WmFQSy1ZQUJySmd0a1F4VEhMM085WXBQRFd2SXByNjR1aXVBZmN5OGNMejJoV1lOcFVQLUMwRkF0bUJyMWNNeFEyX0ZMSlBteW1hTU5GVFJOcW10S1FFZnlKdDBndmRVbm15WTk2OFJtRU52T0szMWJlcTJ1STNUTmVkWk52NlhaTm94RXFYRTRnNmF5SXRJcWt0dnZJNk9faXFwZC1HWHJXU3NTLUhZeVk2TDQxVFFXSE5XVFBmTnkxeVM0aXh0RjRuTjRtVmdhdkNHeEhjY3Q4S0JmQmE3X09fd0VQcF9CWUVoOV9zZ1g5Z25PRWpDOVFRd1ktaU13dnZmYlN1emUyeXhqWVNIY3R0UFpmMGpZdklPVjQ0aW55YkxwdXBzdklmMDBvU2o2QUxQdEM1X1lYZXVWV3gwT2FHLXAwTjhibFpQZWJCV2VEeXB0LWR0eUZmWTNfNi1zY1hjd2RRNHN6RDkxWm1QMHdRQWxSY3lETm5CXzdzTGdycFVjYXZMcWFGcnZyZ3puR1FYbXFkVkFmUFlrSkRPa3UyV3BDMmVjWGlCSGNJd2x1VWZhZjZHN0hIV2RpeUdidW1yN3FLaXIzVUstVWoxUkVCbzlOTFY4UmVyRDNYT2JqSjdsMC1kUFZOWHItYzlKZUxyWnUzN2xyT2NtTXRFc3VHWlBnZTVQc2UybXNJQ0p0VWtIUTRjb0RsQWZ4aHdoWE0wTTRWYkduR2V2LXFfNDZITF92RWYzNUQ4WnZIS3psWkVXMHdVaXNwMFNuSnYtNE9TbGNHSDFMZW96TnEwZXEtUFpoSnRmODdDdUw5MHl3ZHNsS1g5ckNVdS1HX2hIdzRGQXhJek5zRW9lM3B5cmFtcjZfREJrWUozWkU4S2M2dmpta3VKS0VVZUtCRWw4TE5jRTQ4cjFrZjR3eVhKcG1jcWl0cklSbXg4eGJaUFB6WTdWWDFpN0lKQk10RjZLZmNqQ3ZKejFiUFljLUFyaWRXZlRybTBhTzd2eWZtU2JOTndaajBZN2NkVl80dlVKdmJtZUZ5Ty1uZ1BhYXVHVUNJb0xiS3BDSUIweVBka0N5ZzV5SjNoZENwdVBaQWtTSmNzY2RBbzdURUoyOGtWcXJpLWN1OGFqczZfcnRkOFdpdnh5WWZ3TjhESXZ2NXFWV0RUT1N4VXZZVUxTbFNZMlVoc2xBSHQzeWExdWNNX1lDOHk1U0YwQkZOZmhtbXlpOFpJYzZmM2RfRGpUQWREcnF3b2p1QndxTkVLY3BXM3pZckRrRzhiOVU3WDhBSm91cEhlZlZFS1pnbWNiTTd6Rlh0LWEyMWpHLU1oZllhYllmNWNVTGo1SHNpRFRnWGJFQXphZ0xwUGVfVW55eGdwSUxwUUFCOFhfaUtzeXl1TnNQLUJzdjNSWVExOVNMYnZpUEh2VmxRR3gzYXFlN2Z4eUptQ2FsMGMwV3h3NDJEMm1iNkJFckVYbDk5WTl0VmVaMjUzbDJYdnJDYVJqVHdPSU01U3NvdVM5dUF5SmFWNi0zYXE4NnVrV0c4ZjE5dnpRNFRGZ0NyU3IwS19jOXVpaFRIZ0U0eTlGdGR3MDNXblhFRF82Z2dZZldnT1AyUERLQWpaWE4zWE5tN2xxdDl2YjYxUVRKQ3RDeXpacm10Y2VNVUlLcG9BUVZvN1RiQ2hNeGdlckliOHJ5eXNvUmxEdy1QVkU3bVh5SDdXRUJzRTVmWnhWVmFrWFdiNlcwb0lGU3VXTldCTEZUa3VoZXgzTHFTZlJXNi1iQ2tCQzdKd0xjeVRrMzh5SU05ZTZjRElWd2F3LWdEeG9wU0Y3V1FwWVFVNWt4ZWZ0c3NNbl9uc0ZNdTlhQnU1enMyVWhuWlFnc2JBcTVXaUdOWnE2ZW5RVGt6Y0dhcy1hMW5RV0lrWUpST21yeGp1UTR3UlF6dzlEeS1PWlliZVNEVFF5SXR4RlFlUWhfeVlVYktudmVYWHB4TXByZ2dPYi1ydjdrNDE4dVhCWlhYRS1UbDNyTHZjQ2pLdWZlZHd5T3h5RmdJQkk5T3dCemdGM1M1VkdEZzExd2pya20tNVhiZGZuZVhpTW9zMlJWWlJVWDFEY0o2YS1zMW5ieFZ0US1SOHhzZWtYbVBmWk1WazFTOXhOQ1c3V3pobEd4d0x0SDdVQnlDdXBmSVFFcGdyX2FxcmVVRkEybVFDaFVzTWE2S0g4WC1YTl85dkVDRkZHNWpieWdPTDJjc1p6aDZQSU9lVlUxZDktWVBlOWczcDAzenlzMFlmUmViU3JMR1J5RUFxZ2Y2bXZBVktzQkZMMlFpWmtSTEx1dEEtQ3JwMnJQQkY2eUQ4bHJmTERHRl92VzdjaFBDTFZ1WHFBYzJfNi1lZlJqR0RCSzRLdWZxMnpPWDgyTkd2OFdDMFBUQ3EwdDRfQUdoNFdFZDZQWFlvSHZ6SmNEamYtd1R0Q0NkRlgxUThTanc0cEFXQm54cVJnRFFpYWlSMzN3SHdLUW9va1AwM0xIc1pYT3lJM0pDb1gxZ3JBY1FQcF9CeXk2R1hWT04ycWdlUWlxMldsTzFneWNrTlU5SmVFUzFiZHY5dTV1X3A0YVpIT0lIOVFoU3hGSDFUTmFYd0N5dFRkZE1JRTJjZnA3WHE4VnA5VU81aDZFSWZLenc5MDJLS2NKYmRnV3ktZUZ2QVpaaC12NXV6aFJJNExRM0JxbmlLSjQwcDVtU2JteXEwbDZJc01paFhINW5WalVNcTdkcF9laXVjZWpqcVJXMkRWWUpiRGVWLWI1SWxfREI5a2diVDNGNHlvRU9jOE10eWQ4eFhQeXdBUncyYTlmOXVqLUtOMndRVmRnOU9naEFKUThSUHR4OEFzZUV2QnlIQjdQcFZqSE1OaTNtS3lLbEV0b3NEaUJNUFVVZEZZbXIyYjAxaU41UXFsQ21kRnB0RlVMaUNCQWZ3bTFuT1pKYklHTEthYWlCei1iT1lFeENRUmhESGJadF9VNEZpVnVJdFJCd1pObUE5UG9iVXVPVF9RYV9KRENCd3NucXBnQUpiT19EUXZBUHhjM1B3bXdJUkgwVWhfS29Kdk5NNnRET2xVNkVFb0FneEJOSl9RLXdJaC1ONjVDdkZMLUdpal93dEhjNk1QeTBOOUxWQWxNX2hPUTZQd3htejBBSWpnMmdMQXNEMTVNZFdWWC1vaU9Tb3R4MDE5dUozdy1peGhnVzM5RWFYQlFkTzZERDZIRF9iV1pGVGFlUkRWbVMxUEI4WDFZQi1EekxxNFlERnp5Z2Z0bm44ZzIwa0Q1YUszVDhwQ2lPbHR2U25VbHJNV05yMFcyX1ZTSVZXbnRDeG9lamdxRzhnbmU1cUJnM2w5b3F5ZlMxMWw2YnV4bHZsajNNRlZibVdJNWVyNjNtUDcxU2ZSVGpnYkR6UnNkT2N5cHllOFRGaG9QVl9GV2RXbC1vLTdzWFlLM004bGlsVlNINVdtTlRjbHFDVUswNjdsbDFvVGUwLTlITHdLd1otUUZ2Y3ZnMnQ2ZXRoN2pHUTJwZUtiYjFyQ0t0eXhCVnY2UDlGR3I1NnFKVVN3OWI2SmRWNFBkTXFTNUFjcVRGZVJISE5qVjZ3MllfUkJ1UHR1NmFCbURTbERsTGl2eGpoLWhzcXNsckNsbnA2YVNzV2lTLV9CWWhJZlZYRnEyM1RtM3FCcGZsUG9WeGwzSmZlM2ZVQlhrQmh2QmY3Z2xqTFNnTWtFenI3TnBOWF9VbDJtN09ZOTV6SW0zWHIwcjRfQVFzMUJtRFRqMjJQYktHdmcxV3JwQWswbXkyMXFDZ184c1pWaUpyaTVrQ3drSmhGVm0tckF1Wmx6VTU0aWNUUUgxYnk1Z1BSMUppeXZLT2tCeFZIS19JMTlwVEpld1pyVnVNTGJlNzhkaGROdnMxQ25ETDBwSFI3OE00UWljS095SEk0QzdobHd6dUtDZnJuczMxY0xoYmd3cEtfaWlhc1pEX3JKVHdsdXdzTzRjV256Q3BSdU5lekJIcG0wNXBkMjRicVpEVl9kNVpWSGU5ZHdLLUQwSkdmb3ZzMzkwMk5tM0ZTQmxZSjAwT19rWkFqeTY4Szl4a2ZEeGU0c3lQMnJkUWJvanRQeU1GMGZ0Wm5UOTdNbHZnOVBfb3NqVjJfQk1OTXB4TGxqTE0yZW5DeGd3RS1PbUFpbzhPNWoxbzRybkJfSUhwSG5ScWZ1Sy1zaUs4ajdoRF9ZeUJNS3ZNdGliWjYyTUNSZHFxZzE3Z0N5TnBFenVlckNrR0lWa2M4UW5ZcGJZNVM0RWw2Q21rd1M4RFQyUURWRkxSTUpRVjNOeEVqSTBydGUyUktsRldOODN4Z1JFSEd4MmFWVWduNXp2R1EwbFhDMExSeFlFMzJaSTFmQml5VnkxMlduclBjS0JoelNRUHU5ZTlrU2lXRWZpVkxHd2JDT2lvQXloUVlvcWJ3c0JfR0cxN2JHMnE1eFZUQXhEZE5UT2ZtSHZuM01sYnlsV3FWcWxVZEhpdXBoZ0luSUhkM0ZwaW9QRjF5Zm15NGR1THR1VF80bHB0MXA1WldpWnJZT3dwMGF2OF9WUEI2ZFBvaFlMZ0ZlWjk2aFhobjVwTzl0Q2JFb2QzM1NOLTk0Mlo2OWl2MjdaX0o0V2N2QWxvUnRHSWh2czJERkdHRy1qVVhfRVVCemVHZUJmZTFJdkRaVkhEV3FuOVFrVHRmODFLeGR3ZEdaai10WjRxYzZMWGJPQjJpLXJIcGt1SDJuZHZGc0VaX2NjSVNRVGlNSl95ZE5VYUN2aE5ENHdCZ05aT2RoLUpQNDdWeXB0UGV2bURqUkxTZ3dNM05aU0VSOTVQVmlxTFcyTjVpaUl0Q1dzbVRKVWhBSUF0V3IyTTlDN1U5SmtmeVVQVmVfb1l1cnhQQUVuZWxBdlVJMVQ2T3JLQkRWNXFnekh3aDNZTjFCYWxnRjJ3S1VaVWFBb2ZUb090bTNkYy1HQXR6cHFQN1hwclUtVnBXeTMtX2tVVjdDLVZiU085S0F4Q0UyeERINWcySjUtbEltNmJOSG1jdGNvTHdPM2g3M2xwYmhXUVIxaGNZcVhDWjduZ3B6QzV6NldLOXZoN1I0UG96VW9aTDZOOFZtNWZya0hsQXZCTkxNOG5LSzNTSVhKaUZ2UG1VZFZpdHQxbVdmeXM3UUcxaDNWOUxCSWw0aW5XcEpFQk1RZ0x5dkx4Y0NfalNfT2tjeHQ3OF9zNzhLSE9seEllWGlLZVB4RHFYS0Vfa2w0eDFtRkVya2x4MzJFR0pUV3RLekhRU2pXeEd5V3lIdFhhcXkyUDVrWElMMVBPZHBSQ2lhNFJCeWs4WHRJRGtRYXBCV3Z1eUlnS1J2UURsaTc3TE9KcUtoWGRPRms0bHB2cHhGQTliZDZUQk9rTmpTQlhGenNTaHBySndJelhUOEhpQmlLand3djEwbnc4Q2VpcU5MV2VSSUNWWVRYdWFlQ0FHRm1MWTFIVzNiem9xeG40T1ZySGZhTW5qcjBjYmVyNzBmaHQxT1J3Yk5kR3ZnZFZ4TEVkV3drazBBcWhtRTcxZkFiNlluRmZ6Q1hXMTJoZlRUbkhlOTFVUzdFUEJoekxSd3BpOFRHOVZyd1RNRm9fNnZaS1Z5blFfSU0wVWM4RTVkN3FLVkRtRllFM1U5MmdCRndyS084TnpLcl9qOEw2eC14Y2pQVUdmdDltT1lHVGpiMVpUNWMycGExdzJfTWllV3NncWVCS3pydUo3WGJjOW92eDAwV1ZkUTg2eDlqY3FYZVRIY2ZIUkEwU3kxU0IzeXp3VGxEQlJQbVpjVGpwQnB5cDZzSGFPTC1HaGxYbUc1V09FdTFBY3ZoZ1ExYVdod09xT3R3YjFQQ3pNVzdMdTJNU1k2YU9qX1BVRUZPQWJmWTFKODY0Wk1sV1BRS2RseEFteWNWMlUtUHBucG5fdEI4TUNaUEItc2NPRk1UTGpLcFJTZlZWUzVvak5HZmJHQXpiNjMyUTlCVXUwRExsaUJBc292TzN1eUt5MnVYeTdiVFREWUlBbW1oZUo2TmRUNGJMU00yanQxNVkzUlNVTXk3UVlIOTBZLU1oNW9QWk5CUnNydEdSYUNkNkNrdnBxd2x6MC0yY0V6cXlLeXVydkx0ZDk0b05LeGxDRVhEWkpCVG9XbDhoblZNZmFfWkRUR2xJSlNVNXB2TDZNd0NLZ2NkcDBGV2NwR3JSQ3RyNkRkcmlMZVdwVzJpZkxtdmY4NWwwaTVFUVU4ajdpdFVlWW5ZaG9NZWZFVm1hNGQ4SzNLOFdaWVZvV3huNEQ2eWdvcEd1cWVTLU5lZUJQMlFSN1dFdC1tWDNrVjRGeVdHNlZraGRhRU0xYXZodFN5OXE3U2pHUWxzWjJXNUVINThBVm9VbXVkLWxnWkxsVTVDOElBU21VNjRrYkpqaWp0ZDFrdnlFZmFCWkEyQXJrYmlUTVBMOGtrbl9qWFNGaTVWeUFxbzZsY1lwMzFqM2NZMUsxSWNzU2tSLXBZTk4wdmNKRWt2aTNmQWtZeGlWSTNjSHVWWkFDbHNRWkNGem45dzh6YUdvbzdZcTdoVUp3T2NUbTZHU0psMHVSLTdkanZwZGwzWUNoRjVkb2t5WGNpb3Z0X2ZqbDlrRnFTcnpuQ0lIYnk5bXpBT2pIRGpQa3o2Y2VfZzJvMFdKTHAwOVdWX1kyRGtjamU1Sk5xRllHSksyX2dTajZiaFE2VHlBcVNxdVRmNWdhUXVBelFuaU8wcWhKOWxKNk80cW1kblo2UExDbnFSQmZIaEY0MUo3MWRFQVBxUG9HMWFZdHdFRUEwb1paVy1IRThBRFlUaVpoYVRPbXlfaUMtdVhHZl9GN0ZaVU04aTMtNWdsUlQtRXQ4NTdMUjk0TEwyak5iWlY0bWtjbUlveDlYQVVRXzRaRGlyaXJtQnF2X0tZTTJxYm9zcHZDWExfNGRld2NEV1dsUjlzMHp1eUp6YS01WmxJV2d0TElzOVNWTGJxX1BuY0RFLUJadl9CdVoxNldBWjdmZGd1dzhFOTFjRkxhMDJzek1uR1JBOXd1YVBFMjc5WU1GWDRsU0I5SVBlUGdqLVhRZTRzN1JIWmt6RFdUVHl1WHdSc0JSYk1QUDJ5d2M4UjBDVDRrZXVDcy1HYk1WRjdzRlRBNUNZQ3FhUU5kdEhqWXM0RnVqUG1OQXFiSEVrM0YzdXZXYVdXclNkMzRsVHA1UzJXNXZsU3EzRktsa0IxYlIybmJza3ZNM0VteGtnM281OENGOUFYVFFQVmZKT1hHbzFYc19sZmlGLV9kT0NDNmwzRmE0NzYtaHFaTlgxdFJaUWlQMm5oekhVNDIyNFhYTE1LV1VBZ19qOUtfdzFvUXBnS0hSWmJoaDJaWk0tYWNXN0NmWGZlQ0hndWtPZVJXM2hKV2VjU091djFNNWxObEFocFpIMUVnbXBWSGpRemtZU0JyVFlweDNjbjZJSU9uYmNCNkpFbnpibmxxNWxlbUFhN1NvT2h0dGhVcHBSSmUwbXl1RTJPbzZoLUxPLTFoUW1iN0xmeVJ2S2ZCY0xlcDVwelN1UXlYUG9URmtsTXVONWVUallGVlpTanZtdHpPNmpGajRXbzUzUTV1STNINmpnUUNZdVo5dFNXMHBGdmVzRWMwTDFRbVJkYXBRS0kyQ29GNm44Z1U5UHZ0a0x2U2RYdDVzcjVxQlo5Z1h5anRrNnpjdlZEQzFPZk5leWNMbVhsZ1NGaUlZbm5jQTRDazlqaEx0bzRFWnVackI2SkMyelhOOTh2MlhZNmMxUDFldGFqVWJFTVZhbXFxdTBKTThrWDdaNl9WeGdkbVV0SHprelFKSU5UT1JrOU9JU19xWUN4ZHV1N09iTVFCRVN6aUU3clU1YmMtbUYzY2N4eUJNa2hTbElNSVpKZ2JiOHpBXzlNSlJ6a2RaYVZNWXp2aWh3QjlFOVZwM1hIVV9lX3pvWXlQcWhwMThNYk9nNG91UFBKZGUyLVg3eXQyakhnWWtvNmhZcGs1SjVsOGFyTHJLcFJGMDMycFV6blc3cHktaWw2VmQ1c1RoRUJHSFNoM0w4WHZPQklxNnBEYUp0U09QdzFNQVFmaG5uUUFnLXowdzIzdFhHY1dTRzZramdVOTgxVGUtQTBJcGdwZDA1S1hNdVVXcUE1azRHVXF5eV9tRHR5ZVlvX2pmQzhYb2QzaFN0Sk50QmtGT0kwalhkemQ3MUR1ZW5Fa014d0pUUWwzYlMxOElhR21sUmU5LXpHV2swYmN3RUs2Ty1vSXc0N1FXQXJFTFoxT1FudjBLOTRRTU1NOW1UZG9iUDdFamp3bFA0d3MxNmdRYzU2dU9rcFo0TWJHYWhTd0tzYzlVUGpBeTU0VkYtUmZDU2pXTGNYUUotb2czRmZpTUkySXhqLTZORUZQRXBmRDh5dER2UEp1Q3ZVRFl0RUNQancxc1hBbmtXQ0dhMFJkc3ZBQy02VEhxUHF0VjJqQTBWRDlmaWpXZVlqbWZ5V1VQX2EweGoyOGt4OENybWJDNGdQQVppZzdCSEVXOFBKdUxBbXN0NXJpVXhkSWlzMV9TYVMtbVNjaDlXOXJWbDBPODZXbGw5QmJZdnJRRXQ4M3c2M2RaYkcyNGZsMklqRFEyb0tJMDcydzFwdHRZZXR3d2pXYmFSSDhPM21ReWRiWnItVmRkMjgwdEEwdzVDcHVmMnZSZkVWX3JIa2dNbDhza19NWjZreFlyeFU2NUdQVE9ybEVDMFpOWW41MWpweFJpMWJOVHVxWUdMSzhWUHZfVWhYS0tWdUFoMWtVT2NHX3JMM045QndrY0tyeHFIT0R3ZmpRNkxEeVFfZUZNYzloV0VoSGFZcU42N0x5NVlZbGRUWHYyTmVveU9xY2R3SXZmc09uaHp4bGZhVjZDZlZqN0k2SEl5ZXhoYTB5bllHQ0Rzakp6SnJ2VHRrWlFHazJpUVNzc1FNU3pwSlpadlBsbTg3VEZvTzVrbV9LRXlWN0p5SWtkb3l0TWFmYlFKbmNGWUVMSW96VTFCei1EcDJJeU4tQktzbzZaYnl0RkNYYU9EcUptR28taWVNY1NPb3lOTDRCV1FpUi1CbFBVR1NvNWFBOXM1bC05YjJSbERMMHlkaWVDUkVvUFVHM0NhU1Nrc091dkoyV3NMUURmZzB5MUltX0Q2Q1c5YVY1ZjJMejNFOTdjck1ieXFEbGxrNHhlY0RvbkZrd1JtYm1fN0VWbkVQdVZJTXhNaE1rWmdad3pKd3dQemJ0UnZXdm5VR0NhLWdqVHBONHk2WEdQc19fcGxNMDg2bmFESjE3aTJ5cnpXYnZaR2N3bGo5VzI0YU9CU2JoMU5mblc3aGZNdU5qNXRhcmg4MXQyT0pjR1licGY4bDRZb2k1dGVxTGRSeVNrd1NiUFZNRXBjaThRLVJrNUZ4djU3MkFSdTFHWWs0OWJPYjd5Q0VucUxtd3NGOTl6NGk4T2dzSEF4V2lQT1Z3ZXRDQTQzZER1U090ajFCZlNQcHcwM0Z1QVhfSjFfZ1JGLUw5NFdGVVFUUEp6N21IQ3NiUzFqRnB5LTQyTm54WVEyc3E3MDkwS1lxU2dXQWxNTlgzdVBicjBXRkZwUklGWnBMQWRaRTRqdlY3ZWpybjRCVjJqNng4SlpFclVhakhVa25xU1poM2tlakZ5RmFfMm9FdkdoTmVhTHZSaFBjSHJXNGRyUHR6RGlvQWY4Qi1HOHQ1R193MDJPUjdjSFBxblJmOEZTUlBIbzFEQVQ1YW5ZdldrSTNsd1BNMnA0VHc5ajlPazFuRUhPd20xX3lZTnJhYzYwSzBvQ2lsam00ZTgzd1BSOEJhNUU0RFUzWHo0c1hjbXFhR1lsZzY1R29tazBEVHczZGFORno3cEdhcGRpRzJ2NVdFV2ZEenJoeHFhSF9pTGN1UXVPMk9xbXg2LWxTeWc0OS1hOV9IbXExcENUUGFLWTVmOWNxZE9iWTVuVUszaFMtUUVYclRmcVIwdEJ2OU9sbnV3UDBfY2g0bUVNNnA3RHB6ZUZzVFpvNS1QLVd6UmFGVDhrX09DNkNRckNwcXJjN3Z1UmwySjR3UThadEhHNmt4dUFoSFkzX0h0cW5BLVZQSWlXYTFGdW5GeHVTQTdZQl9lUnJSSklxTFNJN3JZUF9kc0tMTlBBU1dMVE85ay1JUHhIMG9majBIdW1RY1dCUGRNMUxObnk4TUxiak90clFiT044eDF6LW45TFhlT0k1VWlRNlNUZloyOTZlUjg3TUNybFhZdFJVcWFXZF9kY0ZmYzlFLVh3bkFPNFlWbS0tUFYtUms3RGVqck90em0tekxyeUVwaTZMb3VhbTEtMG5fN2RDS0NNX3dFa2tienR3cXlwQ2hZQnFrcnBicDBtWWFMT0RnTUNsclRmeVVYdzFRMnRqQ0prSHFwc2hHRHJ3bWh4MU9FWmgxQzZJcmJiY0FCbmYtNFg3eWFWMzlxQzhrcDJSa0U2SUc2Y3ZTLVN5SlIwYnE2cm9lY0p4cWdLTUFhRDlCaHU3Yk5tYkZHRjFYNTg2ZnM4bUlpQ1pBUGFxU0JyMVV0V0JCMURnM2VzVHh6bkhqNk0yQUtMaHBCTXZqMmllLXhCLWRFTC1oRHF5ZWhSR2VGekxyV00tbTdpLXFiNDZKWmd4N09zZkRiWVRQMHEycFpGX2U0ODNtbE9qU0FjSDc0WmRSMXM0TFNBTnJFeDhGVEVwQXdIZF80NVk3a3BXSzdWZkxIZFRYYmkxN0V1elRoMFdwWlFselJUaU9GZ3U1c1RVYk4tZ21DSmh5cklNY25xVUY5Q2NVZHRZcnVla193Q1QtVnUybENnUGhHRmFVOWYzcXRUNXVEUUNaYTdUWldlY0pRME9IZm9GaFo4WkFFWFVxWjN0U04tTHB2cUUtRk12OENiSFFnX25QRXBkOWY2c0dLSEl3NHdPRGY3NDBONkhGMFpReU1VWmlKcEpxelpyRXVyZ3lhWHFlRVZ1OHN1eGhDaWtCU0RTdmRyREJ2cHk2REdrOUpDWDlrVDg3TTJMZzJKcjFzaDFBWHJ2Q0RvbUlydWE4d0JiT25rcldPYlNnWGR3alpwMndiQUdsaVdPbndmeWJXQURWYmZNTE5uWUdpZE9sLU5BWHFNRWZMN3NXbUhITl94RTZ5R0M0NVUwZXJvU0lodW9XbzJUcXVrSkpHdkFKQmZ1YjRZem5FdkNqZEI1ZVNwWjU4dk1WbVZ4S3RncVE4M19IdW13VVhodGY1ZTl5d1F6c1haMzd1WHBTY1NWZ0oyUEFRdGFSU21zSzUtaFVGV3hWQ21zSjdOb19pdGxKaEx5RDNLcDBxWjFOVE1WQWRtQk5fSTByTWdKY2N1Sk03eDdWSjZJcWtFUEJUYWJralRLRk1vakJuUDNsTlBrb2w2WmlvVk92akFXRlZLVmtFTWlteDdTYTdmYVJlUGJKX2FMTGF1aG5YZE1WNnhjc2pGR1R5cHBvQzFGY3EtclFwMWtUczZSOHgyVnJjM0pXSUZqbnd4enBGNGhvZDB4RTY2RmRYaEtReF85RVo4R1QyMVhoa2gzZlNEUFhWOTVwX2ppRU5zOFJHQTJld0dvaWIydFQxSW44UnlxMTViRWxmWU1TckdFTk5uTWZHYjh3TjROSHNqNXM0QVYwNTJ4WUlZSEdfLUNQVllLSzMzTVhSeGIwcDQ0cm9JT1dSel93NHFUMFVDLUpNaWMxUGdTNTk5NVN5Z19Ib2wwMFk5X015Mmtac0hxT0xOZXl0b09pZ0F4eXROX0VGeHpZWVlBNEl0eE43enhEa0pSN1hDUjR1enlYT0hGY1k5TGFvMTRlRHFabC1WZUFGSWhlMC1mQXdkOTJ0bDhqV2hPdFFkeTBWRC0wQlhfUEJ1Um52NlQxZTV3UVFsemJkcUZTRzl5eE5ocW5FTjZZajZMYkc0S3BhcG1YWUdGbmJiMTlOLUpIZkdEbF9NdnZ0N3hmdnk2LUU4dXBEajcwSEg2RFpZWk5JU0hqSlB1MFNaMG9mUk56WjJpMnh0akJpOUtuUzk2dmo5TjlXNWR5ejJoMkZidW5zSkdjbEtYUjJJYzl4NWp2VnpIYnBIWldacUQ5ellwcEwtUzlEWHU3TEhJYUlPMEMzZmhkVnVlRHduQUszTUlHZ19uQkR0MkZ1TDNrX3hwal9uUzdtQkpkT0xhTFdjRElVdGxhaXNOVkltcHZzQ250RGllY3p0SjJ1VVpCT1lyd2U2cHI0TW10Sk80am1IZWRwX0ZNUzUwX0xpYzJYckdZUEoxdDY4T3FCSTR2RU9RcVlwOUFiUkptam4zcGM5a2hZWk9TUVh2ekI0U1FqcWw3UV9fdGxrNjRja1ZIVVBPVTBiY2E5RVdIOHBxa1BUOTBtX3IwYVVfZ1dHbnpYdVdTRDFQRWtQOVZIejN6V09lR001ZTEtYVhQYmZuZ0VWcnJjbGhrcjEzREp5LTR5Y1d6MFVzdVF5cVg0V1M3d3pHNk5vU1JTWENqOE5aT2tLTEo4ckhfNjlxdkNqaXZUb1AwM1pmMDhubmVoTGFUZ0pyV3VPVDhiMXdXZW5EdzF1bWR4NU9uUUhLaHVfWjlxOTJDa1BDOVo3UzhNcWtLa0NtYlh6RElaSWZ4MzVGU3o3a1g1dmtRc0hXX0FHM3hvYlI3YVM4U3M0OXBGbUlyY2o3VFU3MVYwLWE3QThQVVJOLVBOSU9aT2h2dy1FVW5aR2hiQW5CWVYyR3NCa2VGX3VpTkk2RG9ZMHhqRmxQeDVYb1EwSVJhS1otLWJrRmNabjRhOXYzWjVETXRmcHp6RWhkTE1iTmhaallzdWI0MGxlV2ozLVR1eTk3Z1lxQXlaQ0VISkZMTWVOdVNYZHhod3MzS01oYXhDQi1vQUQ0dmpQX1k2eHBjdUpQYlY0SEYzN3RibmdCaWFXN0F1SU9vNWlEcmtPSVpsNDZTSllSR1c3SWptOF9RQzBPTmpfSGsyaWVVZUN1Q2pSWU4xLUU2dU1FRFlFb2E1aG9YWDBJWm9yOUVMazlZZWpPZTM0ZjNtVFpqVTA1YWtwVVEtVi0wWFlfUVhuN0YxRVdTSllJVk8tN3hZb2V4MnQxMzFxSEF6ZmtWRGJuZFk1Q1NveEl6Ujl0NlpzNlVUTklCSHJGWFdIcVpXdjcyUE1TTHNpTGtNeTVkVy10LUY2UU1PRGNzejFuUTdjVkdkMmtCM3FfZGFsV0pvalhPblMtNWZOWXlLUlhrTnY0cDZFUVVzRll3MUFienp2YXpoX2ZwVlBBNWJSaHdNOVJySW53d0JnRTcwMG1KejdGSmNvU282SUFMQlV4VHNaek8tbGNoUnItVUlJMjkwRS1nT0F2SkRxRF9VU3ZkbEhIU3lfN3JyMGkzUGhISWN2bmUtcjlaY1BLTmJETHczWXg1ZzZfbWxaQWRIVkR3elFELTVZci1NY1cyc1diYWNzdzRrM1ROUUZCTWpuUTBUSmRnT2pkNDhTa2d3SHlYUlVJeW91c0J1OUY2ZHpTM2k4X2dkSV8zaEtjMXRYQTJ1Mm1TdXExdGlGTy1rU1k5WmxFTWU0WlA4WEdBSmt4SmxuS2h5d3J4Z0RHWW5ReWNOaVhsQ01uRms3S19acnBrWlN4QW1oTTJpaE80UldQaVBCcmhUU1BzaHdMTF94emJqUzd6UUlQY0pGRkU3SkRDb1RFdTJ2LTd3clhaTjgza3Bmb0dHcHhBZVBpR3diUVpaWnR2TWwtNVFNdHlNTkttM3Fwak9fOS05ZkpFM092c0k3TndYb29IRDk4NTNWR3B1dGFmcXhVRjNJYTVtU0tXZkZ1QkdLbWZtbjJiT041aC1kbnJkX0M3d0tkUU9vYW1MN1hvdVRYSmRnNVZhSmEyUmVTdzdMVVlDU3FBcEYtaVF1dWc5ZE9WX2NrYk9KWmY3Ym56UmdHQUc4VWIyZjBTZXc3dGhoOXF5d3Q1NUl0c21EbktRc1MzMzVKZGdBRE10NEtSeEV6VU40dzkzR1ZKY0JXY05ZcEVaNXp2MVgwMTFxTzlicGhBRWUta01ZMlE0VGh0UktEU2ZHRkVwbUdoM2lyeE03SjlNUjhYWUVEZFZYZkZ0MkZKaHZodmFpaV9aOXdnMEdFR1Zoc25Kdncybm9kMWRaeTMxcnhwZkJJcE1xb1JYQWV1QTRsSUEtejNmWGVkUXhKbUJPSGpudHpSTWRCaERFUDBWMktEai1vT3poaHlPT2U3V1E2eEN6ekJ4eThNcDJSMGt5Xzl2VDZya0hYcFE2TnRWTEJtV29zM2VxdjloRGxYeHR1MDhRSmZXTWxJQXJrUFZZbWU1d0d1c0g0dTJLLXVFLVgzTG91TlFTeDZieUpERTNUblFxTHYzS24tbFNSWG12OHBMamZTNEhpTHJ5YzJ1clliLW1TS2NyQ0hhZHFWZ1V6eU1YS2RGYzJHNE5ZZVJrRXdSeFFHWXVsUUVCWHpfWHNzalNwVm4xR2RWam5pMURwNllKZFlCcG9ZWENYZnp0a19uMXh3MTREUm5oa1FlQlMwZmw1Z3M0OGVkQ0NHVjVZZ0t3WUc5aHh6Q1gxbnpwcThrUDI2TFFvdXRmZmt3T001Z0tyc2NWXzVaVUNPOVJqVlNwQ2lZWHFBUHJFNDNnQUs5M1hEMVlUdGFXQXdSUzhobUlFUEFSLXVtRlB4RlpUcU1jbUtfSHdZYlNjeUxnc2ducXNHTkVWVkxNQm0teGdfSXhUZTJOMHNyMG9jQUFiY3ZMMWhnUnoyd1NDV1UycXk0V05QVDJkWXBuaUpSek1aRkFnQUVrMFhGN0dfaGVBZzlaTWY4TUFOQU1TM0JmckJsTW9YcjJOdGFQUnFxT281eklGUmRBUE5mWlprZWpZRUZ0cHV3ZDAzYms0ZmxuYW1PSWRQRnZjY1pKMmY0MlktQTdtNnl6OVA3Zmk5UjVmRGtRa0YtSDZERVk5bEhUdW5Zc1FuYUhLRVRub0pFMURlT0JoN3ZIUzFnN19objZTQUlzOFdiNGZLTnRzazN0eHdtUUtEc3hodHVhLXJIQjZ1OWM3T2dkdGFBOFc2TkRzSmR2aDRrYm9QdkJ5UXVzWDlkT2FEMjZpNkp2aUlSVVpFbjBaSDhIOXBZeGdYZTh2bERJRW44dFYzVk1WeU9PdWQxYjdDQ0Y5ZnktVG5iZndtamJnQ2Z1aERpVlNGNW9SN1BPLW4tamktR3RBQlc1MGp5R29FYWNrYTMxdjBuZ01uRUY0Q2dfaThXZDRQY0lkdU51VVVGMmh5ajZjamQ3cFV4MW1BM3ZuM01PbDh6QmEyMkhFREhFR0dqOFJES0V2bURWOFNXUXlXbXYwVUVwUkd6dTNta3dkb0lraVpGZDhpRzdvdUhRc0lUSDd1OWZkanJVOXlIUE9vYk9VczFCNFBjSHU0TUpEdk00TFhaUVNKVm5aWGk0R0xQVnlzY3p6YThhYjZlT2VoaGdNRjk2OHZjSjM2bTNkOU1ZcjhXTzhLM0NMcmdFaWdtVk1oQnJZVVFxWUNTQ25jQlNQejJSUW1NQXc2TVBpRHhBNUN5ZnFLa3hVdHBRLUR2MXV4TlVJLUE0WTlwbUlDQUN4QmFzM01lTlJoVVhvVEl1NGt1am14dG5aLUphNDhMWEc5VnY3TWhXckN1YUtyeUREOXNHMktSOW41aDFWU2J2T3VvTE40SnlVMXlEb3FvLXRLSG9iQ3otRnVHTm1uaW84MUpjMmpna193aFBxNHdfcV91NzJfUXVSUmdaUGNCSmNuQndpSGU2ckRwa2ZaMmZRQnU4ME1OcXREVlBhdzZ0MzdSOUdwWklXMmM5dldTSThuN1E4YmppRHktT2N0UFpMbFJ5MjkzSmphMXAzSjFNSHFCVmlIZVdMVmFDUjZOT2gzczh2Z2t6VnFuWTBhNFdKMjJGdXN1Y3lFT1Z4NU1QU3dwNUN6Q05UUHNOcHBFUW0ySElyMmE5ZUlSa3FSSjFkMDV4N2xNeGFpMllEQ09CZWNmdUI4a3NsOU42a1ZfWENVREpFa282eWEtSl9rNGttY1U1Rng5eXZJQ1hrWFdia3YtcDlMcEpXeHFpYUxEbmpFMnRXLWNzTGs4VXdKUTd2bmt0VHBoZ3h3U2VpOXNBS0ZYa2NtMXlwbnNYQ0hBc1p1VnZrNE5IU0ZpcVk5aU9KU29NYllsR1ZTb0VoZXgtbTJ2eFZoMWRERTU2UTZTY1Fsa0VEOGw5Ml9yQm5lNDhXeEpfNHozbG5BbkJRdjhxa1FlQlhCd1RvekdaeHlsQnd1RUFQdk9pbURnM3hlVF82WnNLNlMwOUNyMVg3OTNyTGVZZlZkOFpxNUZiMkY5YlgwMWdfck5mWS1IYkpyeDRYY3F1YzdoVWp3RjAteER1MWVTZkMzNkNvT3U0aV9Xc1JKdFJ4TXdIMzBKTU9YY3NRa3hqbFFJMG00cG5MWEZVMEZpUDd1b2JKTGNiaTVTYWk1OVM5TWRPRXNoWThQT1hNVWJwNm8tZDJaUEI1NlFraHJ0S0lqRUNzOVI0N2lVWXVrM2wwdnFNSzhwT2t1aDVfckxSUDQ0eW1kNUxnQzdsNWk0U0FXVDk4M1RLZkhENDNqSWxJY0xvY0hPR2FJVnBuX1NyYmRSS3d2bDZJV2NtVlBjZ0RPQlJDVzhuQVJ2dTlzOXUyY09XOGNmMUg0OWlMQUM0c0thRHJVVUZDTGdZZ28wOTYxUXVjY0tZU29fc09YN2JlZFRyaVlvNmx0cHdjQzZ5ejZmVEJRWk5KRjQwZkd2cUVNMk5lTzBraFlvbzJDNnZoNldfUXppdkNaTmdaczRGMTZlUTJ0VTdpM2JHM3FUZi11VXNDa2RIQ1dHZUd0amNjZmtmQWRsdk0zdk1ORXRGN2ptRUdNaWZPcUFjZHZ5d2Qxd09GWWpDTjNza0h6OF81bEpMajg5RGJwNlZpUEk5UFVEZUxpWkZGcjh0Vk9jb2Q2dnRzWnRKQ1RhbS15UXliMDBOcHZzVWhCbGxSYXd5ZkFLQTFTcjg1WW1pYWlDU2FieVJfbzktSG1GZV84bXZXV0liUFZaOXJLc1ZSRWdyVzNYTTBlX1dDUXFJUkFYZzI3RmVBSUpBeTFOZDBQOFh1a29ob2d4cll0aDZXN3JGcHl6b3ZzZjFFYUdRMHE2VXFKTmNHLVZiNWhFZnhDX0hGcm15bUZIZzY2aGhPUFlaQ1AxdGlrRnVLOEt1eHN5SklTNmNSc284c0hvWnlDWXJoNGxsMW1vM3VyMHJqVFRPc0hKVUxOUEhnb1pRcFlibUMtS3JqdWdFWVMzNlpSVFdKT19HbEhWeVNMYWM3Z1V6ekFLdzJSMmdNY2l4M2pzMUZvUzg3ZlBRbVN5Mk5wM1IzQkNkdTJuSzBFNlFSUUgwRHZkN1dBM2o1Zks4aVJRRk5MU095RHRGV1VjbTJ4MUhaWUtDUjhkZGRfXzVWb3dpcVdBZTNLM280UHZFUVQtNnQ3d2tpRmpYUzNyVlA2aXFzUlBYVmtRYTBNSlcyZnlwUkFDaUx4ejUyMFJ1MXRSaGVDbHFCVjBCOUpwaVRxZFpJdEVFbkV3OExXLXJ1OWJscGNTSTlTQkZaSE1hREluNnVSSDUtY3pNNkRnNTFXUTU0MnF3ZmdydXJvSGV4ZGxEdGFTNm1tVGxJTjJvZVg1Tnd2azFBaUtKd1EzRDlucWNmTVFCcjhsRmZkblZxYS1Bam8xR3pkeUhHS3BvRVdNTjNEVFkzNGJzanNhR1k4c25XajhrbW1ndEgzdnE4TzBnNm5vRFByd09YVjMwRllrUFlnUjRfb0tHQnVEdFZtNjU1d2Y3N1pkTXh2czUzVmQ5NzZGRVNWdUNSVWFGWmc1bmc3RjVmcHFCMVhIdmE3OVptcHV3UFBUa1dMTWZyREpkOTVGZGZfWS10T2JaSXVfWUszbmNuX3ZkUjh3aXVFcVR6YTJLeXo3OWtaYTA4alVyeTZJZ3NZQUZxcG9kMDFVbC1ZU2ktQzRYRmNIaWRNVkZvT3hnaTM3bllnQ0Yyby0zeHdDeHpqTXF0VVhkcm04cHRQSGczcWNRTXFWMGkyVTg4X2NYNkZ4X2M2VnJUMGVsSEZRR3pCU3hoWl9WLW9vU1N0dDlvX3hlU0NoRUNoNUM1MUE2QUFoNTlxOVVrVkNaZHQtMmpKQ09vNHRfWl9SdGRidzlHeDFLZXNLNnRxcGZ6Y25sMW1vWWd4NllNRFFqaEVPdkxNaWxlRG9MNjROWkdPNGIxMjlaak5IcDFQMHFjS19aSUJMTV9HejRacWFzUzh5OHBfdms0eVgyc19Eb09BRmQwblp6eHI4UzVCYlNpQWlKNlBLaURJX1N0VkgzVG5Hc253eU1GeFA0a0JUYkhzbzZybk9WVzZPSjlseGpjbWs5WVZ0TDE0aHRuUUpCN1pzQUlESWpIdnZoWXgxU0FHZV85clk1RzkwMk9IcW5GOUhRcEVGbXRnTzQ1LWRydnRrWllLczRuNnkySG1LNF9Gd0dRUjk5T2Y5ankxTU1RX2VpYm5kT0luRFN4cGJIQmw5RFZPTUhnVmpwZnRqNE80NEZFVDc4MDgydlRSQzdRd053amc1VldxNTdTZ3lYU1JDaXUzcW9fenVkYzJ3cEE5aHVycUZVOUVkbllMZl8xWVBSQVRnanVIcmxab2lLN3RWR3QzOHdZaVQ1TjdFam8xelZ2bEQ2RnV6eWcyTWxxaWxtSmt4SGpuejQxUjRRZ01nVkF3S3NnQnVNWjgyRXl6ejgxbW5lOWwzU2RzQ1AtYVVuUUd4UFdncGtjMVFzTXpfUjJCRGYwVGw4UnBsQTJrSnpwUHpUOUdNOXh4WjRES0JFTXh5dUEzRVBwTzVWY1R3NEcwSkQ5dnQzd0dneU1JV2tfNUxzeWR6eVFvSmZWR2lXYXFEY2dxYVhkVlloMmFuRzNoeUQ0N1BEQW5MNzJOSkY2VVVuYWpQSUh5Z0pnX1VQWjlPajlPWnVEY3dUSE4tR0ZrbGU2dlVjRmhmSk81Rk16aUxmQ2R6REptOVlHM2p0QmFPOS1IVkVmcmJrWEZEdmhuRkJSdzc0dllvTUtRQzdFekdvRl9DcWtNQUZSR08ycVdmRnZ3dU0zZ1dLSUd1VGQyZ3FfWmdPZEItZnhtZDNWc0NkaDU0Rko4cTJtMXF1dGVLQjVrQktZYkxFb2F1eDJIb3JQUEdEVWlUdmNTQ1o5czB5SnF4Qm8xRVJRTGJvYWpxSHp2bnRhLXhCNGdWYTJidmNOS3dYSktOTWJETy1tMUtMTmlpYXZCOWFCMFpsaWRGbmJyRkU2dkhWdTd2RC10SEFHRmhxZ3hWR1ZqVXlRVFFyMHE4UlFKcVJxZDc5dkVldkowQU5DVk5CN0h0azdOVV9ObElhY1J3SUg0ZEt2WlhjVlVPMzM5SlFUNGxURy0wb0h6Y1ZwY1llQ1NuRFllb2lfTHVnNHJLcEVkdmlCV3NTRU5JTGtwQUFRM2V6RDVYLXhGdXZjWUVHRkdsMm11eWZBay1PcW5sYnhDV1ZuVFM0ZHZjVVpQRHhxMXQtNFlkX0FfUHRCVDZhcUJyWGtyZ0Z0dGZyNDJySWg1R2JsbDBRVWZ3WjlLdTRQejc5bHFKcUNNbnpLZzlic3ZJa0g1ZkJlRnZZV2Ytald5c0s1Z1UxSzRnQzJWby0xM2wtem9yTk1SaXBvQ0REWHRkZllpZUxzQnc2b1ZuZ2ZrWDdaU09UVUFLSkNaTkFocHp0UWpNdFdfVlhleVRyTm9lbDBqR2d2cXZNSDlKb3JsUDBPWWJYLU1LS2ZVb3RzWkljc2xvTVYxRDFuZ3NFNk40eERFMk1rVUZJdlNUY0RtLWFIRFZEb29kWmVCbHlWMUZIVjduQ1FZV3V1LWU1Tk8wMnlJc2J6UjRkSVV3WlJaNlJIREdiMzRydHdPSVFsRldBelRCX25nczNHaFdnM3pqd0swYk1FWGc3OFZlRzJtZmtrWWVZZzdZN09EM3pMSDRaTGJLWk1ha2dxRmNodEJ3eHdzdHNPWERyWVJXU1dOQm1DaUxHNHlyeFlQU3NnSWJkdHVVN2NxUUZvYlBQVTB2RUdfeVJFSTMxaS05WmJRaHB0cmhJdlNaVGh5QzlSV29EV1IzenpaVmNWRzM5LVNwR0NzR3RldE1TUDBHOU9rdW9pc2VDODFna3BuS1dkRE93dVg4ZktVeHVEZHRtQm5DMmJjVHpkU3oyODlCR3FKb0RBeDNhbks0UzViMi1rWDdJZXhzSHVXeFdBbGNKUkpsOHRORHg5R0tObFZYc0RVLUtFWXo4bUxaa2c3U2UxV1JQOTRnQ3lQUzBrbVphX01oYV9WbnNBOE9YRDZjWG5LRmhCSE5fRnZkNU00VWJuQzNHcWptQ0M5OWFVWTBFSkFHeVlkR1I3cWZkRWxrUjNwUHlSTmhoc0MtQjZwaGFTX2pTMEVxYzNrSkw0U0tVcEktXzFUbDV1Q2tjRzRTNngyNllGVmVYbWRvQ1ctZ01KODFQalg2c0d5YTdBTnRRWHQxekw1NFFtNXZnSHQyRlhldE5BQWh5VG1yN0I0QUZyMG1YcTJtcDVEcnhWRzFJSWV4V3FpQjI1MVBKSnFkeWlHcFRMSDVTQ1RDNkoxSkR6RjBtZ0VwdFI3UjlsSjlXRjdSRFJkT19VVDc0dTBQTmRvUDlLYld6aXFlRHZxcmhxWkVHNzBXN3VteHRlZTk0YXVIbjZLQTRiMlNURHp0VFc2N3B2M3RBam55d2djM2ZfZ2xVLTBjUjFtM0pfdHVGZEdEdE45QUgtVTJaelkwNFdlNVpqSC1MX0d5bElYWTU3eFRvWFhORG9RZzk4b3B6aHh6YktMNlVoamJ1V0luSlJ3YkRsR1hZN3BQZlNYVktKVW9KMzQ2eEVqSnVLdFpsWkU5V0F6bXhTSlctOFV4eG9mODJfZlNKc0l6X3FTRDNJOEl3X1lNaUlRVnlLS2xUa3JTZ1JnSi1DbHNuOTBHeDZuV2V3RHVlNzhlR09jZzgzZzY2UjFFNlJHMXdjbU9XandYVlVxU29ZWDI4RHZ0cmxkZDZjak1XaUxUN21VaUE5OE5LSjBJNEpRaktSamgzVU9mRENsT3RRZTdLMjloNjlUOEtSZVcwekdqVE9oR283UnpJSjN6T3o4Um83R3NwaVdDbTVZX1QtQjZ3RjRQQzJRT3pPekwzUjEtY3VrT09EOHVmRVozdVEyZmVobjBPMjB2WFdZTGp4WFJqQk9GdWlVY1FSQ0Y3bXRqcTE5WlpxbFQ3TTF6bVJOUHZad3p0U005bzZSOVA1c3NvZGQ0aEVpMW1OT0x1SXNLRVFQVTFHUE41RzVhSUl6anppVHpxUC1kZXJOV3doeDhxMV9Gbmpxd2paUHNubkM1NF84bWRKcG9CTDFzRVctS1AtM016YUE5UWJ5MEdhWHNMSlRqaFZOclV5TEF0cDU1WVh3TlJDcFJCdnZJdnpQM1gtVk1LdWxxdHVVNldfNTBjQlRKNVNBbmZEWXdqTmVpVWVKb1AzVmlyN21lLXdXQllGTV93OGlhLTRvU3RyYkpKUUZ3RDdfYXdqVHBJSXZNOHdWWTRxVW81LXlVeGx5bGI1T3hkVzRaUHN0d0d1emZQSjhxUkJmVklCcUg3SzVhMlJCV1F5c1htaEpMMGdkVlpEVE5helBSQl83RG53bFNQTVZRQ0pYeXdodnpoUFZEdU51UlRPRGFMUmVIWnJ0dmltc3NQZ1VWODlNRGh3ZHBxUHB1bzBUWjNxTmdkQk9JYXd3Z1RsRHVScE1tUk9ZSFdhNE1wR0V4ZWwxTnZjdTZ3M0ItNldmOWc0VFk4Uy1oZDhMbHZxTi1YcU5wWG9kYnJadGNtQ3JSVjVjQlU4TXlpdGhxdHhXSUI5ZmwwXzVJQjVRZ2I1cVNqVFFxZ2R0SmNnb04wN1JaeUtYN0dSVmNrWl9QMG1nMlExaDRfYWJxZk4weFZkeWhSMWdFXzEzeW1Xd0o4ZmpSV3RBUkp3TkJwNGJYNGdaOWVRNGc2SlMyd2VjeHFkUDB5bGNfencyWF9xOGdQSFlQVWZKb3R1eWlWdVo4Z3RHeVJkc05IenZUS3I5RDNnbFc1aDdXZ3pWWFpvZms5UnRmZUhWY1N3UUNWY0EtTHRwbXNGS0FnTHRRNEl2aWt2d2dQUDJJYmVIeEdOdE81bHdwSUg0SGxPdWl2a1ZESE9uVzJPcXpteElsVktCZjhXeUtTTDF0Y3FaLVpJT2hpQ1VaNGN5SnRTRXV5bi04VHBYWmtVLXBXUU1aSmhFUzdoNWdheFV5SmNTLWJYTkRnZlRDSFZqdU9md3o1eVFqZ1dGWHFHME1xaFZPUXRDel82aWZSQk02dXZqMGdTNVBoRHVpTmY5SmVUdV9Wb3VHYzNaSFJSVnpjeHZQLTlpWWFVQ3JVVXRESGE1OFA5MzlZd05XcUZSZ0NmQXh5anNzZ1FSYy1ybi16YnU3OUhxc3U5RTBYS0F6bl9HWG1MV1RSaTBtOGZvelpaTDNaNG5pcTFuVTJibHd3Z2Q4MXF3NDhBOWZER2pQVEVtd1dJbUowY0lTb2J1Mm5qeXVjUDljY2tRRDBVaFN0Q3l3c1NoU0NFekM4Zy1YekZtNVE5WmRkdkM4dzRpampLT3ROSlNxREUyVHZiTW5rTEFLMkp4X0ZrTEZYSF9ybzR4VTJEbkxjak5xUGFWZHNad1NQUFdkRnEwOHFXNV9zUjJGVFpqRUZYRlZWdFV0bUZRZGR0Q3kxX1BhQV9IOWFJQmR0TWZZMEUxeUxvbjZndEdCR09Fbmdxb2NNdjZrMTc3Z2YyR2RpT1RrLVRWR2ZZdEJkek9QZ0FhazJ6aURSYm9qMmRKeDhPQXhMQjhCdVh1X2g0Rm1sOTI1ODZKOTZFNXNDaDVKemFHQ2hrYUtFUWd2UWstTzFaeTJnYkQ3MnppSEhHbldfMnFOMWk2dmQwQk9OQ1ZfOWlrZU5EU0xCbmc3eXdBbGhVeDg1RjlUb1FIVGNuLWlVandFbFQ2TTBOelFRX2ZpdHBoWk1HOXpzTWRFVUF3M3Yyc1RmWGQtTU5ldUVaN3RMVmp3bFZSeGxyS3hqTWNrY3NqcjJ6ZVpaWUdfcUphR0NHS3dzVV9vdjlPYVRKay1RMmVHS0lmNlV2T0NITG5EeVNiay1UM1ZZY3VYWnRQV0pqNE9XRkE3bldJSGdqcURoMFEtN0JJeVowcWNWdF9nNGdOWURzWHFKSGJlYll3bF9rdXRwWFZfYzBqQXJUYjFZX2VLVGJGOURnTjNTT0xaaXJIdU1xRFJFR0NGUmhkZXRGNy14aUFsQlFZeWlFdDhzM1liQm5iQW9adEhFUm5nMHBGRC13dS1tUEx3bS1HUUZLcWNTUEJqNkFFaWVMdXFUWkVvampOTzY0V2xhQm9ha2QxX1l0ZjJvTEZ4WWgzRDQ2QkpfQ2Z4VERGdTB4Q2oxYmNMWkJPTXc4THpXcTlpa1VkYUtIV1JYMGNrSVNRemVsNllBS1lnLVVLeEktM2hUb201UnZIdzFIOTUxLThndnp6ZFhUalJFQ2JwMEpGYW5vMklSMVNmRlpYNlJBaFIxYU43V3RxcVdjaEhxcHh3clBDaUxwN3NkbXFtWEs0OVZ0UEhYWVBHbGhqcFlKOVEtU05jUTdxMlV6QktUd3ZrM1BMcGlyLTJCRnd6WUpJcXRCeTFlWjRHVVF5SWxJMm10MkNLbTFaZ2dSU1ZtbTRoankyVGN1VUtOd2s0NFNTVFRlekdQWlZGak9wUWJUcERaZks3ZEpxZHJYSjV2c3l5VDViZHNGcFdPbm5kQnl1LWZfSk40ekhnTHRFOGNpemFLOEJmVzFyRkJHWFJTeTgtRXJyR1I2bVRtMGlWakNaX19hd0poVHNpd3h5eG5uWWtJTjI3Y25iV3hrQTI1cnoxY1JKdG5lTDRzOHZpUWN4VWdLak5UTW03TmFyY1NrdDBIZkp6bVZZd2E1aGFrTWdrZVJXMmV4dDllbEVQeWt5ZzdWQklOdV9INjlFMFRidmk2Nk1nbVlLZU9YWkxnei1YeEp2QzRPWENaeVpNUlUtdk4wU29wRUd5OFJfVndJbkxrRktyUndwenVyNk5BbnppcTJBZ2hxMUR2dHc3YllfdTd4VDdlUG5SYms5YXMtNEF0M3d6SXRuX2JmLUw0T001ZWxpRjFhWDFBNlFlNmJ4cG4zMzNWSlRJbDZ5a0MyTnZ5VEVMclN3U2o3Z3NpN3ZER3VqRy0xOHQ2OV9QY1VKV0pmVHRwZDhUOXhXeVl4eG5kRmlYYWhhOHUweHR3NEhUYU9RYjdJTDNnenBtekNIZHNiNDNqaHNhYm1LOEw3amtZeS1NVVRkcnRVREVfLW9HbUs2WFc3SC1mSmNIZnI4SFJaa19Za1pWRTNYODRtQ1hBSEhjUWJISmdjaGNNODJJZEtrZnZObVB4TFpubVR5TndGWDZwVTBWWjAzeFpzMEE5cTEteFdTcW9BWjdPZFlsZ2ZBQkQtNy1KaEM1LWk2QjI4d0thQVJoQ3kxQ0hrX2dsNm5jLUpYS3JMYi04MUVnOUVjWmxpaEhCcGtuV0l0djE2YnBlcXllTGdZMVoxdDRkT1FKVGE2d3lvZ0ZDZFA4QjJsSlR3R3dlWUZUQlJvajlkNHVPWjJNeVRRVG5nd0lVS0pxRVA0emtXTlV5bUtQRzRiLWlDRXZGMVFQSFpSbjk5dHl3R2txSEJYTjJ2UjN2dW8td1BDTnJYdmxTbTVCTFBjRk12NjVQUVM2WFQxek9YcHZCNHA3SUYwMHhnaG9VbXo2TDNVY0R2c0I5M2RtSmMteGYySnNwWTVBMHExZkpVRUx5N0ZaeHRUU1dhc0hReGFRSXJIVXNfSlZyWVZnNVV6NXdIa0NNbnlCVkl2eEdYYlpyamFnTk5WYkFYUDdRZUozX3BEcElrUmwzZTBMMjRVTjRRYng3NDB4STBpVU1nRWR0a042V19CYXBVMDE2Y0N1M3pCTXYwcDBack1oeDNtaVhIXzBGRHBuam9XMVRhR3NRY1FQQ3d6allqRm95VEhvWGFNRnBzdmNvTmJhQTZlekZTUUlEM3RGazlYUU5EQ3NwWGdLcVhXVFEzNFF1cXJmSlAxUFFvS3F6ZTgyRjJNMHVpS0c0V1lWLURMV1ctY2NHLVlsMlFSQ1RPTzJ5QjVLN0tDWkpYSERSMkJmZ0w2d0tfZEZCemRPYUV3RG1jZFNxRmNCV05TNDlWRUJZLW5FYlBFN0ZPRl84QlhIMWJsMVg5RU5vcVkzX0JYd1U5aHpiMDRxclJBdFZIQ0x4Z0pseUpqRDFPbENydlluV2phaW5Kcll2U0lIa09TeUNyc08xM3hfV3RVeDFOMTFGRjJ5TjRtQWdQRDMzMnNPUllBWm1pRHFXWV9mNG5hazhEYlFnVEVoOW1JZGlOX3g1c3Q2RlZQTkdnTmI2UWtzd1RWTVA1TXBWeXl6VzhZNlhkQ2hLQjBOeE9wb0cwdDBrWk9iZzR1U25vNFJZZkdET3F6MExmcTJMRnJEOG9yMHhJVGFTeVlxSUVKVkEyR0t5cHZCWC1tOWc2VTZKYy1oQTUwSTVjMmpyWWs1M05hdW1kRWIyd1lCa1Qzck84emQ2bWdSY3VfeG42NzYxcnMwZGs0QVpkWi1DelJmekdmdWNRREcxOEpobzZvMzEzaWFBc3QyMnIyOUxIMUR0QUZJbVdqbnF4cnE2b1JwRm9ldHUtV21lMnFhVVBJQkdKd1lHTXRpaXpMVHl2YUgwWGFGc0V5d25RcFg3cDlScV9kb0VEbEdUOE04blIzNnNKRDBCeEd3UHc2NVRzNWhrSkVyWWF0T3VDcEFzcjh0U3B3Rk9tMm5TaXU0RVlWVFNWbURfTC1sUnY0Ql83ZEpSZGpiQ0cyN092aUlKRVZ3VlpyT1lNZDhvTE10aTlGVmtjNk83RGNLZE9BTURLcnV3Ui1MdllTdWh3OWhNeGhDQTI3WThQX1lqWjJhX3JZS1dXZ3Z0dlVvYTNPakRnc210RWNWM2dqV2U2a0dsOXpXMTNqeldFRTU5RElBNVZhUWd3RzFHSXVCbEZaeTZOaGZweVhrczRrUEpKbUY1aTJCeGI4RXJwVlBvQ1dsSktYaF92ejNPMFZ1X0lzUUtvM3hlUVprVWttTjE0X1NJdlFqY05Iemt3V2FyNkF4d1dCODhGbmZONnhvUXFPb0J5MG1seG1pME96ZGFva0R2aVR6VDlKeUhNRlhzQ0VOOHBGNERuQjhlVGJhSGlqaWczRlJXZWlmVEkyUHhOdVBQcE1RczFndi1rZ3ZZZHpSbkhRN2U5NGxPNV8wV1lZWkJGZWtBVjdWT0xTVUxMbjFidi1KYXd0Y3piWngxN293ZWVfUDFVWF9DYTRHSWRrYlpiOGp4WWtXLXY2WEswUUJIMEF3Tkx1czZ4X2tDU0V1YmJDZ2lCOEN2RDZTeE5fTjFOMFdYZ2IxNk45aWtfd1RQZ2haZmUwS2p6R3diQkRtZlVKM3dSWFlWQzRsZkNwUWt3bmFacGpWRU9PZ3pWak1Wbm5BSWNJQWhYN3hkZnVpdWZiRTZZZVJnN0NrbkVGU2RIYVlLdDdXX2x1bTNSN0RCZUREZDBzUE1NMWhnX3FVNE5CXzJxLTZxOTZISWFSSWRkM3pySXVDdGJsR2lLck9ibHBDSXFPazNXZ25DSi1aYktGZmpFT1Q2QVQxS3BrODcyUW53LVlmLThxMk5YTHN6SjlFLVFrQl82anVTTHRYc2NPNW1QWlVVdG9YSUMtWC1LaWc5VkpkTktLei1DbEV6eENOdjBLTXNwX3NfRHQ0VS1lOUNnWmNQYndMMzJOd2NCblh1cDZkemxWR1VtWUpTY1hwUkNUMldlTnN0QlFwYXdjSmVzRmNWMUtrU1doMnB3Wk0zc2dEZHF2NVJaYXdURF9OVE8tLThrTkF6MnNhWlduZzRmS0tUbmduSXVuZ1pIaGRtYkJMa09Mb05KaDFjS25haG5QZDJnTWVZYnZMeXE4MjRuSS1jb01kcXJXV295UFEwUUtjcVMwZmhIZk5HN2NsTV9wZUlPYmo3LWYtbDdhQ0hTclBMU2RmdlBNSms2MldTdTdnUHl0TDBEcVc4bnVEZ0dOcldDVnJqX2gzQ29wUWVmMlhiVmZULU5PTlh5bWFLUElKT3lYT01JNk02cnJjMS1sSi14T3ZsREtUZmxfZXNTSGZMa3NXczZBOGhzeXlIQ0RIbjIxbmpHeEQxWHloUkl2YjV2UENDVTZ6OWVIYjdnWnh1cl84QVVNRENiemQ4R3BNalVkY0tBYnBLYzk4U1UzOFJPcjk0TnlyQWt6dUdrY3laTTVYckVUbWdncGh5eDJ1ZXB0YmUwdURUcmdkWF9yWWlicEI5WXB6MHBreWN0Umtlcm5wSzRiRFhseGRfQ0ZIX0hFNHllT0NRU2trWnRjeHlzSHppYUtGeHRMc2ZOYmYzNk5vSF85eURhUDNjSGp5ZVZqVng5emM0TEF6S3NFbUROeGpaZE9VeDFvU3ZuWnlXSG1GaDdsZmI2WFpqd2N3VU9iZkRmLVZKVW9kRjdMRWV0SVdzNEZlOTZ0a25ZOC04NWtaR1FSbmRFSnVadDJhOWwtTW5Pc2czbWg1ZF9KS0VEVG5qcDJmUkpjc3RWTzBVd2JDOS16aHZhVnRMNHd4WW1FZUd2TkFjbzB2Tjd4a01adzdWWXczS3FaX3VKS3ltRjBaeTgyU0phMUZTZ0dhVUF2bm1wZ2xlRVJ3NFlMdUVBcnBNVF9sRFVvODEwRnNUUG5QdFNicDd1V3ZFcGJnWWI3SnRMWWtJeVRBRXhpVGNTNndlMk5YVEJrVmVNWmh1OGpJNzZZTV85VW5PYWVZMzRabml5X1Q0NXJiVHFUYS1NU1ZpYlZOcXZfVm5XR1laRUN4ZnVTVlkwM1lVZ25CSDZHdTBUSUlsUG9Pc2YtNE1aS3AxYnB5dTZ1Nmx6YlVDeHRSbTVzOWJnaG9aTFBQRENmOWFyLWNpaDVDLVk4bER6Y2JqWTNmbTVZeVBtTHkzQ2Z4bU85UGRyUFAxQTV2THhXeGhkNkZzbDVEYTJ4emZ5MlVMZDZRUGlSVGUyR3VfY3dxUzlKQUFBNlVYbzRlRzZlUWNaaWh3TnRaeUJZd09obkx0c2FTUk5veHN1YWNKa2EzNmNJc3Uta0JpSlNMVUROdHJvd3EwdkRxZHNXM0lhSWV0SVIya3gtdW96ZVBsZjRGVUxHUkxmUVp6LTAwZ2lyOVAxTmVWbi1KcV9JdjlZTkdvNUlKNXNiaU5nQnduSHVGNmJHXzdHT2Z3SWZxOTUxajdGNG0zZlNoSU84Q1JLLThHcFIyR2hGbFpKdkxMbnF6cVVadUJsUFFGVVZIcTRKcnQ1RUFYZWFQSVJzVWpBVEQ2UWJpM3pBRXJZT2xjejA4UmdWUjhTOWs5bk8wQTZ5VF9xRHA4VkhiS3BVeFlGODl3LTB1b000VVY3djh3c28zMVgzbXZkajVOc3FTR1dEU3lJa1g0dXoyeTlNZjc1TXA5RnR5b1VoajkycG80eWZleElvckdkSDI2T2xyX1ozc1FlZjhzcEZIcGtzZkpCSmdSV1YyWlVfTU9PVm1ybWtlQXU0N0VSMnFZQWVkZDhJeDAtUXA0NkZSX3NXUkZNTW5SUE4zU3JRLTdiQ3dsd1QxYjJkTHZkemdPS2xLaHk4amR4dXFoZnFxVWhYV3BzUkthS1V4UVFlOGNzRlZFYzIwWTZJa1V4Y2ZTTXhpeFFyZnhVTDc4UjRNMU5wcEpURk1lRUJVb0doSFRxLTh0TC1ma0ZBaUZEaUNDWl80d0wxdzN0YWd1bjV5bFNBRUpqaGVxMVB0bTdJRnhDLTAzbXk2eThSeVp3VG9BbE1tNHRXWEVhcnRxSWJfbnNzTU42dmh5QTJjSGRVeFI2VU9fODBMNWx2MHhPZll0RDI3cGpIZWNqbUgyX0VBSW1NNHBhZWl1NEhCLUp0X1dRakNYV3VlNDh3REctYzRDS2VjR0pxSml5Rm81MDdMRjE2bm9uM19lTWFNRUZjQTlDaEkwX0FyWlNCU19nY0RRcmVXcDlaWlNSV0xnc1JPRTVFMU9PdnFoTU5GMG9ZU0tEcUw3UHYzX3V6X1drRi1Qc3RBWFMzUDI0amhBN0hEcFp5d2R6OVdtNXhFY0V3X1lpZFlQQm1XYUVWLWJhcGZNcTJaU2RaMkY5bEhuaG9WcDdPb3lrZjZUVUQ5RzBtcXo0VGRjRU9kM1ROWi0tVmtfcjRkU0E5UllFMkxpWWMycjlReWJOdkZyRTFJYWt2cXhGTVZEN01ZVDRXeWlXTkJhWGJXZUltRldzU0NwVmFHbXh1Rmw1dzh2dTQ4NTVHNlBvZHV2UWxSV1dlbl9yVUFmTkFhaTZsRDhXTThQTUxWZ3RURUdueW1NNGwtTnFSa3RFajNCWEVRS1ZPZC0xWnBESUduN3RKN0FRZzQxMXVHOTRqR29ETjdXd1k4NGJBZFV4QVVycGxDSE9FM1huTXBsNFBhMHpUbE1XZHRHY3Z1djd3NkdINlcyRVFQQkk1OVhyNHE5M1RJa3V0MHJrVF9PNks0WGJicmlZQjFOb0NJMlRZbjQ3ekJNb21BQVFNUTRLc1RKS2E3UlJIRFhWZWhHb3hGZHpSdTdxT1NObUdNTDZKbXRhSTVyTTgxallQRS1QaWJuaDlQMWt0TUhqMjZzRzFaM1Z1YldWSnhVSkRaVVZnM202aTdyRHhrcmVaT1g2S0RPdjV4Qkw5c2dTUDVZVzFOcmx2TThjTzJvdnhEV1JrVHZDbGtHTGh1VDdlMm9ZZzlOcWZXZFU0Z3lhc0VnUDhPM1lVQUtLX3RNdVJpbGMzVkFuVU84eTBIRFlIQVFqRXJUcHBxcVFYcTBfU0R2WkJqYjhxbUhWNmpqbDIyVmdHN0FBTnZTUk5WaXJuQ3ZROS0zWTdaR2NsNjhLcEhka19nRElRNWNXRGVmNWdzNGg3eHRxaDg1TnpubjJSeGx1dnFXcG9fNWJVR0pPTmZfRlJta3dUeFc4MFQtVzZwSVRVTkZjMXR3RWRUNFJjSG5XRjBqa0xFQ0hpWnNaM1NwTFJOUVIwSXNBT1BmZkp2cTRmbEt3QlJsOEZMbFpEYXN0ang3eldsZlNoNElJdHJaaUNwWno3S3I3QnYtYU1xMXVKZlR5aUZnZEw3ZU1OUjc3cERPcGk5MjhjTlVQRzBDbklhMnlRdFl5TWhrOVk5cE5tTFU2d0ZSNGVTRTJrcXN6ZXdTZnJSUGVwaUtaYlNKTC1RbUpHN284VlA0bWlYY2xzcjRlZEFERHloOUNRQ20zNUxLNVVYd0NrdGU4UlFXZmpRbWx2V0I3Ym9aR29ra3JFanVQQlJuLVE4QjZhLWRjUWNhWUpkMWlFTHJTT29xLTZNUkFHbWFWa1RxaGtHMFh6d0o1RjZQdVN1d1FEdWtZUzN6NVloYmlWMUhrOFU2MHNscnVZZ2NJbHdPN3BWUW82enZXYWJLaFZqM3d1cE9XYnc4dExBZVJQc2h3a0JGSUtjSXVpSXlOM1RIa2NDcFZsQVlSazh3SGpWbUtzWG83RGY5UUhxbF9MYUh3dWdmVFpCdmlEZ1ExckliZ0hVc0NHemFwbkw0RlJ0Um42WGoyanNqTVNjRFluaGZtcWREb2h1Mm1EUk84Z25QRV90SWwyM0lveUxqRXg1MkQ2T2lSdUVpTW9nWExHVGhKOEtFZUg1YzlfZ1dMY29CVkhWd0gzTjZTaUV2QXEzZXhBQVhUVFVtLVk3S2E3MFVwMnc5VDdQZE56Y3VWZ1FYSWpGNVhOaUljRlBLN1lmN1BBZVJmMHhISmJJc0tpWmdoQ0w4allOdUNvazBjRDJ6ZUY5b1E4eU9JSnRTSnM4dmtiakNLRWh5MThvMzFfQVZaVFU3XzJRc0tHckxKaGdRLTJGUDhOVGtjRU5MSjBoVTdfbzV3TW1teE82SWxHamswUXhyZk9RSEIwVkI3blR1UDJXd0p2Vkg4ai1ET2l5bmRlWkdpSHQyNDlkd1FxTjh5YzBJUFdoX2JsY1BmaTdwTi16U0F1ZUY4LjgwbGlzdlZWenFrc1hXb3BrdHVMOFVQWVZVTkplb3h3VU1mSkVUWWNiUjQ" + } + }, + { + "RequestUri": "https://fakevault/certificates/cert1387819847?api-version=7.3", + "RequestMethod": "DELETE", + "RequestHeaders": { + "Accept": "application/json", + "Accept-Encoding": "gzip", + "Authorization": "Sanitized", + "User-Agent": "azsdk-go-azcertificates/v0.5.0 (go1.18; linux)" + }, + "RequestBody": null, + "StatusCode": 200, + "ResponseHeaders": { + "Cache-Control": "no-cache", + "Content-Length": "2366", + "Content-Type": "application/json; charset=utf-8", + "Date": "Wed, 29 Jun 2022 20:49:28 GMT", + "Expires": "-1", + "Pragma": "no-cache", + "Strict-Transport-Security": "max-age=31536000;includeSubDomains", + "X-Content-Type-Options": "nosniff", + "x-ms-keyvault-network-info": "conn_type=Ipv4;addr=24.17.201.78;act_addr_fam=InterNetwork;", + "x-ms-keyvault-region": "eastus", + "x-ms-keyvault-service-version": "1.9.444.2", + "x-ms-request-id": "d3f509f7-66b5-4557-8b9a-9c6b1963dcdb" + }, + "ResponseBody": { + "recoveryId": "https://fakevault/deletedcertificates/cert1387819847", + "deletedDate": 1656535769, + "scheduledPurgeDate": 1657140569, + "id": "https://fakevault/certificates/cert1387819847/f4c141ebdc8f410f89b9d47f8fd7e7f1", + "kid": "https://fakevault/keys/cert1387819847/f4c141ebdc8f410f89b9d47f8fd7e7f1", + "sid": "https://fakevault/secrets/cert1387819847/f4c141ebdc8f410f89b9d47f8fd7e7f1", + "x5t": "rLFdwzgYVYQGFudqImwBv4KeQoU", + "cer": "MIIDNjCCAh6gAwIBAgIQcHPDSaDPRd\u002B90oG5EeNFGzANBgkqhkiG9w0BAQsFADAYMRYwFAYDVQQDEw1EZWZhdWx0UG9saWN5MB4XDTIyMDYyOTIwMzkxMFoXDTIzMDYyOTIwNDkxMFowGDEWMBQGA1UEAxMNRGVmYXVsdFBvbGljeTCCASIwDQYJKoZIhvcNAQEBBQADggEPADCCAQoCggEBALhIETIevV/SiV48erwjQMt64P7RA9LYsxHzEgqJ\u002BPYAoRsq4uFBU\u002B34uLRwe\u002BmfgrGbv7PjJCNf6/b8q9CkHCTe4QWW7pUzBw2yVfJAKuFcdOYBHRGXSROfrc4J5OD7Y6tq/W7EC4iTLD6IdVF6mpuTd924/gH5cOCAK9bTHDAcKxREs9WfNBYPcDtbk\u002BlOyEDmn202A1Ja3YAFAh8apNFi7pmOcy4kJIVedQaDHj4FI\u002BNbp2uOVkitoU9pcPC7fAapi0yS5/DJiyW4e9VN\u002BUFN/GrCDUCnLBWs4cosoSoeru0CufWFkppBC0S4m2lN0m0CUZ1WEBjZKMyBHXep7w0CAwEAAaN8MHowDgYDVR0PAQH/BAQDAgWgMAkGA1UdEwQCMAAwHQYDVR0lBBYwFAYIKwYBBQUHAwEGCCsGAQUFBwMCMB8GA1UdIwQYMBaAFOmR7nScy/ThYPFT45gx/V6sozJUMB0GA1UdDgQWBBTpke50nMv04WDxU\u002BOYMf1erKMyVDANBgkqhkiG9w0BAQsFAAOCAQEAbw3LGbg/mPymRCae4WTaMFCqCpKvnMWRvSXHz4TtvOyIixSQhe0dtICA\u002BHlxfSBjV4zh6fDVXHHfqmRMg2ejDU1h5fOs8HYCXXgncrPUJEBCpWddvmCp/Y0GNtStvni5p6V5Wjfosb54vkrqHktBXWP62TJkH7uAObsBv6sWFbMqQ8w6az6hXKoOTop8hD8aeaz3MEMTzOCn6EUmGWPdno5rbKDaKFfbR4g2Gst17Iq6qW\u002BK8v7m6V8vNx4kAzkIFjAi9myu9\u002BO2X38biOEVnxb0lUz6f6HeKxV6Sc874ulr6uGXFWLvwbpCGRN5oGvbaD7hTwYwPpTvzTLN9CaLHw==", + "attributes": { + "enabled": true, + "nbf": 1656535150, + "exp": 1688071750, + "created": 1656535751, + "updated": 1656535751, + "recoveryLevel": "CustomizedRecoverable\u002BPurgeable", + "recoverableDays": 7 + }, + "policy": { + "id": "https://fakevault/certificates/cert1387819847/policy", + "key_props": { + "exportable": true, + "kty": "RSA", + "key_size": 2048, + "reuse_key": false + }, + "secret_props": { + "contentType": "application/x-pkcs12" + }, + "x509_props": { + "subject": "CN=DefaultPolicy", + "ekus": [ + "1.3.6.1.5.5.7.3.1", + "1.3.6.1.5.5.7.3.2" + ], + "key_usage": [ + "digitalSignature", + "keyEncipherment" + ], + "validity_months": 12, + "basic_constraints": { + "ca": false + } + }, + "lifetime_actions": [ + { + "trigger": { + "lifetime_percentage": 80 + }, + "action": { + "action_type": "AutoRenew" + } + } + ], + "issuer": { + "name": "self" + }, + "attributes": { + "enabled": true, + "created": 1656535747, + "updated": 1656535747 + } + }, + "pending": { + "id": "https://fakevault/certificates/cert1387819847/pending" + } + } + }, + { + "RequestUri": "https://fakevault/deletedcertificates/cert1387819847?api-version=7.3", + "RequestMethod": "GET", + "RequestHeaders": { + "Accept": "application/json", + "Accept-Encoding": "gzip", + "Authorization": "Sanitized", + "User-Agent": "azsdk-go-azcertificates/v0.5.0 (go1.18; linux)" + }, + "RequestBody": null, + "StatusCode": 404, + "ResponseHeaders": { + "Cache-Control": "no-cache", + "Content-Length": "98", + "Content-Type": "application/json; charset=utf-8", + "Date": "Wed, 29 Jun 2022 20:49:28 GMT", + "Expires": "-1", + "Pragma": "no-cache", + "Strict-Transport-Security": "max-age=31536000;includeSubDomains", + "X-Content-Type-Options": "nosniff", + "x-ms-keyvault-network-info": "conn_type=Ipv4;addr=24.17.201.78;act_addr_fam=InterNetwork;", + "x-ms-keyvault-region": "eastus", + "x-ms-keyvault-service-version": "1.9.444.2", + "x-ms-request-id": "ad38e84f-41d7-4f61-937c-8409f15c7273" + }, + "ResponseBody": { + "error": { + "code": "CertificateNotFound", + "message": "Deleted Certificate not found: cert1387819847" + } + } + }, + { + "RequestUri": "https://fakevault/deletedcertificates/cert1387819847?api-version=7.3", + "RequestMethod": "GET", + "RequestHeaders": { + "Accept": "application/json", + "Accept-Encoding": "gzip", + "Authorization": "Sanitized", + "User-Agent": "azsdk-go-azcertificates/v0.5.0 (go1.18; linux)" + }, + "RequestBody": null, + "StatusCode": 404, + "ResponseHeaders": { + "Cache-Control": "no-cache", + "Content-Length": "98", + "Content-Type": "application/json; charset=utf-8", + "Date": "Wed, 29 Jun 2022 20:49:39 GMT", + "Expires": "-1", + "Pragma": "no-cache", + "Strict-Transport-Security": "max-age=31536000;includeSubDomains", + "X-Content-Type-Options": "nosniff", + "x-ms-keyvault-network-info": "conn_type=Ipv4;addr=24.17.201.78;act_addr_fam=InterNetwork;", + "x-ms-keyvault-region": "eastus", + "x-ms-keyvault-service-version": "1.9.444.2", + "x-ms-request-id": "163b303a-971f-4dc5-a81d-b3c5b5711fbb" + }, + "ResponseBody": { + "error": { + "code": "CertificateNotFound", + "message": "Deleted Certificate not found: cert1387819847" + } + } + }, + { + "RequestUri": "https://fakevault/deletedcertificates/cert1387819847?api-version=7.3", + "RequestMethod": "GET", + "RequestHeaders": { + "Accept": "application/json", + "Accept-Encoding": "gzip", + "Authorization": "Sanitized", + "User-Agent": "azsdk-go-azcertificates/v0.5.0 (go1.18; linux)" + }, + "RequestBody": null, + "StatusCode": 404, + "ResponseHeaders": { + "Cache-Control": "no-cache", + "Content-Length": "98", + "Content-Type": "application/json; charset=utf-8", + "Date": "Wed, 29 Jun 2022 20:49:49 GMT", + "Expires": "-1", + "Pragma": "no-cache", + "Strict-Transport-Security": "max-age=31536000;includeSubDomains", + "X-Content-Type-Options": "nosniff", + "x-ms-keyvault-network-info": "conn_type=Ipv4;addr=24.17.201.78;act_addr_fam=InterNetwork;", + "x-ms-keyvault-region": "eastus", + "x-ms-keyvault-service-version": "1.9.444.2", + "x-ms-request-id": "4ecb019e-5f0d-4d03-b28f-068a53159e13" + }, + "ResponseBody": { + "error": { + "code": "CertificateNotFound", + "message": "Deleted Certificate not found: cert1387819847" + } + } + }, + { + "RequestUri": "https://fakevault/deletedcertificates/cert1387819847?api-version=7.3", + "RequestMethod": "GET", + "RequestHeaders": { + "Accept": "application/json", + "Accept-Encoding": "gzip", + "Authorization": "Sanitized", + "User-Agent": "azsdk-go-azcertificates/v0.5.0 (go1.18; linux)" + }, + "RequestBody": null, + "StatusCode": 404, + "ResponseHeaders": { + "Cache-Control": "no-cache", + "Content-Length": "98", + "Content-Type": "application/json; charset=utf-8", + "Date": "Wed, 29 Jun 2022 20:49:59 GMT", + "Expires": "-1", + "Pragma": "no-cache", + "Strict-Transport-Security": "max-age=31536000;includeSubDomains", + "X-Content-Type-Options": "nosniff", + "x-ms-keyvault-network-info": "conn_type=Ipv4;addr=24.17.201.78;act_addr_fam=InterNetwork;", + "x-ms-keyvault-region": "eastus", + "x-ms-keyvault-service-version": "1.9.444.2", + "x-ms-request-id": "0d50eebd-0f95-4956-8ac3-c50893649588" + }, + "ResponseBody": { + "error": { + "code": "CertificateNotFound", + "message": "Deleted Certificate not found: cert1387819847" + } + } + }, + { + "RequestUri": "https://fakevault/deletedcertificates/cert1387819847?api-version=7.3", + "RequestMethod": "GET", + "RequestHeaders": { + "Accept": "application/json", + "Accept-Encoding": "gzip", + "Authorization": "Sanitized", + "User-Agent": "azsdk-go-azcertificates/v0.5.0 (go1.18; linux)" + }, + "RequestBody": null, + "StatusCode": 200, + "ResponseHeaders": { + "Cache-Control": "no-cache", + "Content-Length": "2366", + "Content-Type": "application/json; charset=utf-8", + "Date": "Wed, 29 Jun 2022 20:50:09 GMT", + "Expires": "-1", + "Pragma": "no-cache", + "Strict-Transport-Security": "max-age=31536000;includeSubDomains", + "X-Content-Type-Options": "nosniff", + "x-ms-keyvault-network-info": "conn_type=Ipv4;addr=24.17.201.78;act_addr_fam=InterNetwork;", + "x-ms-keyvault-region": "eastus", + "x-ms-keyvault-service-version": "1.9.444.2", + "x-ms-request-id": "9ed77de6-f567-4799-ae75-2b984a06f056" + }, + "ResponseBody": { + "recoveryId": "https://fakevault/deletedcertificates/cert1387819847", + "deletedDate": 1656535769, + "scheduledPurgeDate": 1657140569, + "id": "https://fakevault/certificates/cert1387819847/f4c141ebdc8f410f89b9d47f8fd7e7f1", + "kid": "https://fakevault/keys/cert1387819847/f4c141ebdc8f410f89b9d47f8fd7e7f1", + "sid": "https://fakevault/secrets/cert1387819847/f4c141ebdc8f410f89b9d47f8fd7e7f1", + "x5t": "rLFdwzgYVYQGFudqImwBv4KeQoU", + "cer": "MIIDNjCCAh6gAwIBAgIQcHPDSaDPRd\u002B90oG5EeNFGzANBgkqhkiG9w0BAQsFADAYMRYwFAYDVQQDEw1EZWZhdWx0UG9saWN5MB4XDTIyMDYyOTIwMzkxMFoXDTIzMDYyOTIwNDkxMFowGDEWMBQGA1UEAxMNRGVmYXVsdFBvbGljeTCCASIwDQYJKoZIhvcNAQEBBQADggEPADCCAQoCggEBALhIETIevV/SiV48erwjQMt64P7RA9LYsxHzEgqJ\u002BPYAoRsq4uFBU\u002B34uLRwe\u002BmfgrGbv7PjJCNf6/b8q9CkHCTe4QWW7pUzBw2yVfJAKuFcdOYBHRGXSROfrc4J5OD7Y6tq/W7EC4iTLD6IdVF6mpuTd924/gH5cOCAK9bTHDAcKxREs9WfNBYPcDtbk\u002BlOyEDmn202A1Ja3YAFAh8apNFi7pmOcy4kJIVedQaDHj4FI\u002BNbp2uOVkitoU9pcPC7fAapi0yS5/DJiyW4e9VN\u002BUFN/GrCDUCnLBWs4cosoSoeru0CufWFkppBC0S4m2lN0m0CUZ1WEBjZKMyBHXep7w0CAwEAAaN8MHowDgYDVR0PAQH/BAQDAgWgMAkGA1UdEwQCMAAwHQYDVR0lBBYwFAYIKwYBBQUHAwEGCCsGAQUFBwMCMB8GA1UdIwQYMBaAFOmR7nScy/ThYPFT45gx/V6sozJUMB0GA1UdDgQWBBTpke50nMv04WDxU\u002BOYMf1erKMyVDANBgkqhkiG9w0BAQsFAAOCAQEAbw3LGbg/mPymRCae4WTaMFCqCpKvnMWRvSXHz4TtvOyIixSQhe0dtICA\u002BHlxfSBjV4zh6fDVXHHfqmRMg2ejDU1h5fOs8HYCXXgncrPUJEBCpWddvmCp/Y0GNtStvni5p6V5Wjfosb54vkrqHktBXWP62TJkH7uAObsBv6sWFbMqQ8w6az6hXKoOTop8hD8aeaz3MEMTzOCn6EUmGWPdno5rbKDaKFfbR4g2Gst17Iq6qW\u002BK8v7m6V8vNx4kAzkIFjAi9myu9\u002BO2X38biOEVnxb0lUz6f6HeKxV6Sc874ulr6uGXFWLvwbpCGRN5oGvbaD7hTwYwPpTvzTLN9CaLHw==", + "attributes": { + "enabled": true, + "nbf": 1656535150, + "exp": 1688071750, + "created": 1656535751, + "updated": 1656535751, + "recoveryLevel": "CustomizedRecoverable\u002BPurgeable", + "recoverableDays": 7 + }, + "policy": { + "id": "https://fakevault/certificates/cert1387819847/policy", + "key_props": { + "exportable": true, + "kty": "RSA", + "key_size": 2048, + "reuse_key": false + }, + "secret_props": { + "contentType": "application/x-pkcs12" + }, + "x509_props": { + "subject": "CN=DefaultPolicy", + "ekus": [ + "1.3.6.1.5.5.7.3.1", + "1.3.6.1.5.5.7.3.2" + ], + "key_usage": [ + "digitalSignature", + "keyEncipherment" + ], + "validity_months": 12, + "basic_constraints": { + "ca": false + } + }, + "lifetime_actions": [ + { + "trigger": { + "lifetime_percentage": 80 + }, + "action": { + "action_type": "AutoRenew" + } + } + ], + "issuer": { + "name": "self" + }, + "attributes": { + "enabled": true, + "created": 1656535747, + "updated": 1656535747 + } + }, + "pending": { + "id": "https://fakevault/certificates/cert1387819847/pending" + } + } + }, + { + "RequestUri": "https://fakevault/deletedcertificates/cert1387819847?api-version=7.3", + "RequestMethod": "DELETE", + "RequestHeaders": { + "Accept": "application/json", + "Accept-Encoding": "gzip", + "Authorization": "Sanitized", + "User-Agent": "azsdk-go-azcertificates/v0.5.0 (go1.18; linux)" + }, + "RequestBody": null, + "StatusCode": 204, + "ResponseHeaders": { + "Cache-Control": "no-cache", + "Date": "Wed, 29 Jun 2022 20:50:09 GMT", + "Expires": "-1", + "Pragma": "no-cache", + "Strict-Transport-Security": "max-age=31536000;includeSubDomains", + "X-Content-Type-Options": "nosniff", + "x-ms-keyvault-network-info": "conn_type=Ipv4;addr=24.17.201.78;act_addr_fam=InterNetwork;", + "x-ms-keyvault-region": "eastus", + "x-ms-keyvault-service-version": "1.9.444.2", + "x-ms-request-id": "44dcb719-2f82-40cf-bf8a-a15d0ebbd856" + }, + "ResponseBody": null + }, + { + "RequestUri": "https://fakevault/certificates/restore?api-version=7.3", + "RequestMethod": "POST", + "RequestHeaders": { + "Accept": "application/json", + "Accept-Encoding": "gzip", + "Authorization": "Sanitized", + "Content-Length": "44263", + "Content-Type": "application/json", + "User-Agent": "azsdk-go-azcertificates/v0.5.0 (go1.18; linux)" + }, + "RequestBody": { + "value": "JkF6dXJlS2V5VmF1bHRLZXlCYWNrdXBWMS5taWNyb3NvZnQuY29tZXlKcmFXUWlPaUkwTXpnMVlqQTNZaTFrTlRRM0xUUXlaVFV0WVdVNVpTMDJNVEJrWXpNNVpHWmhaamdpTENKaGJHY2lPaUpTVTBFdFQwRkZVQzB5TlRZaUxDSmxibU1pT2lKQk1qVTJRMEpETFVoVE5URXlJbjAuUmc3WXNKbEx6WDVLQXN5WUdFLUIwaTAyLWNMblFuQm1hbHQyOUM4cXNfb1FNaHhVbEFIclR6VHFIR1UwRmRCSVV5VzVHOXJpa1NBM3lMby1Ec3gwQzE4MFcwV3hyMkNwMVNEY2R1SUJtWVVJVmViVVUtZ1RQZDR1WW1EdHBTcHgxbmlweEItWWZwdmtDR29jamx1QjUtZTFZM184RUhtc0FvSFlLc01jc0FjakRzZmxRR01SWndhdjhzd1NMd0E0Mm4wa0o1VXdFMmZkMkxVa0FNdWdGSVAwWmVuRi0ybEt1dVZWZmVPRjY4SkZUaWtWM3VxYm5Hb2x5LTRDSFRHUWdRSnRKUFp0UkVKdkw5eC1LT3Rmc3R3eVduZ0lQdkFFMGxNWUNyUE9vdWluZ0RtbmtyTFpqY2FfV1hGOFVRcTR6UVBoQ2RjWVJYQzRMTVlCSlV1emtBLllpOTdYUDdBZktzWWdaTnZiU3RxUmcuYWloeF9LVkNCMENmaFdnS2R2eHVKTmI2Q3NKYUJqcHhJZGpMd3RUZmRLcjlfeXFNcUtUX1p4a05LNVV4WjZzeF9XY1JVLU1jM2VZSEpNMGtZelZjNERLSmFFeXhKUWFlek1HbkRqdEJDZnpRSFBON2JSTnY4NVo1X2V2VHI2QjU5M0ZpZ2xac0taNGtTUGdzdm4tMlp5ZnU2TVJLaHUwNTA3T0YxdzZPblo5Z3FoV3BiSVFrUTBFa0hJdW1WeW9CcmZPdUtXdndadGY3NS0zVXlkVnVIQnVKMEY5VXFOSUQwSE1Ucmd0d3E1Xy1LWS14RDdfakk2MHpUYi13UUVoODZtSWVuR2w3ZFRVZ2lOaUx2WTN2WEVxNWpyR1lLbERfZ2I2WGhMeGpfbW16eEZiNmhXRFY0YkIydDZ4QnBaWUxldVRuNGhYNE9yNlpsSXIyTVBldWFpcW9xdWk3bFBEZDBFeGZsRVBxTDVSWF9OMXQ5YXVVWFJjNGhmaUU3VklkZ3NQaEFTRTN6VHBxakMwUVBVUVpXeGdNY09tN1BTb0sybHNWMTFYRDcyeFRiSnZ6T2FwalF3UU9rMGkyT1RxX3RYWDRhbnlOR3FuZnVrNTFqTXVoakxMYllhczZsQlJERERrYmw1Z0xpZ29PWVQ2bjhFc1doVHl4bFlLYVVYcDlNN1p1NjZzVHdUTVBEMk5TcU91MEhfVWdsUUJnUDRzYWctel83azAzUnJfUF8xdEk3NERZdVgzX3VrdjU3VjNxOEdXbGdOZVRmRmhUWGRWNDk2dEVKNVNzR0V6Sjh2WEl2TWlwM0pXNzZWdmRuV3dtZTFqTFc2c21RcnFzTVN0a0VHandWSWFqS2g2TGNIbE9iemR1dDMxSE9UZWNIbElBYkpHQjRqT2NvUVkzMzExd3R2bnpTSG5TVm0tNGxvRjVKLURrdnVrdzlXaktnWDY4QTJIcTUtSWtYRHdrb2dHYVA3N3o3U0Y2akxvQ2l6UnEtT2paS29nd045R3dYT2lNZ3g0N3FxWVN5ZDFkd0hXRHdKTHVycjFJQ0lEaWVrTUhYMWdmM2xncVVncnFSc3h1RnpxOHJ2LXNkeDlMbFBLMUNVQ2JGNU9jakFyTkpzdTkzaFQzUWhkWURoQ214c2VjTE5LVGdrcjI3M3gzcjZLS2Z1d2hWa1BTTFRYYVFCUlBLRXhkaXVoYU9raUlpMkdMT3VzSXJPcWJpQWF5eWhjUS12M0tlVXVwOVRjcUlNOC1qUS1OczhJUE4xU2pfM3BHUGMzdE9BUGtORnIzb3VGR3h6OGxjUFFOSVI4RG9iNy0wWnlHRG55MEM2b1BOR3BLNHczZWJQdVlGTVY1NTl5Y2hxQ29YTVV3WGRNaG91UFh5eGlVYWlnTFBsS21LbFgzN3pHOGMwVlRIdVRNcXY1dUI1Z3hMZk92M01ESVZHUkQzS2VkVlFvTzVXazA3ckhGR19YRm82ZUxWXy1GdlpsdlNOSGFoX1BfQkNGTDBoUl9iUDJLdk5ZcExEYWdMZHZFMW9NV2xCMjMzb1VPNjZUNk1tb3RmWFQ4RlhSb0h2UUp1eEthdDFFMkFqdVlfVk1uRzdfN24wUndUaG01WVRXRTBhOUliaDFTMjdaWnVuZmZuVExaZ2gzSlFpZ3BoQVh5Snp1bWtPWEdMdEhidXU4LVk2SkMyMXYzVW16VURqeFQ1TW5ONFg5ZkhxVUdreU83TnN3S0NNam5laXpWd3dJaEFLWnp3bkpBNFpzSnQwa1N6TC10ZzJLc0MxTEYzYnZtOUNvRm9XUjVFMzloanV0TEJsM010d2l3Rmt5VW1JLUNvOEVhcFNMZTlhMzduM1VLYVB4V1FvdGhrdlRIRnUyVEFQQ1pvVm1UeDF4NEtrdlhQN1dhM3VFSHU5eEpBZGw2MzVSem5vdUlUcHByYjUwOVR3eE41UTZCaU4taE5EQlpPUU5xMlo0cnZyNnFranpaSXlSbHpJUTIyUXZ0dDFiTTIyTnRZRHVXZEVOMFFVWERwZXNNX3FOdGRnS2EycmNYUlpUVVpFMFdPWVA3S3kweVE3ZHB5YTFtOXVWVUJ0dXpmRTV1NEdNd0dMckNDNGlIbzRuZ1lxLWF3SlpjcEdKRG5lUHMzLVFXWHRXWjd5TmNVdDFZbVh0Njhta2l4T3I1S2dGYTFHMnBFb21XbHJvcklLazZkQUQ4UVdsMEpzSFB3RGh4dE5BVXJfRTd2VmotV25LVlNlNWNsSUV0bjdTVXlxNENpcFNXMGo4VENjQWJuSVdDYXB0NXBrNm9CTEtxWHRqbUdEN2NLRzNlZ3NEWk1IRi13UU1FNE5SSkExMVdFYkVTdzZnNjRGckZnaWJCQUtKWDVNbXJ6Vk1pTWhOMFZjWDNSVE13OElxeU5xSUUzWEZhZzl1WE1tZFp5MlNaajFydUNqOE1SR3VZZnlzSUNzVkJBeWo3TkRZWDA1d0hxYnJTY2VhR3djWEZyVGltcG52VWZxVllKU0FId0otX0wyUllfTWoyenFDUExnSGl3eW56MnZLTHJVM0djWVdQSzNnX1FiZXhNamdhcXhRcFFtQjI1eWdld2VaU0NwU3A4dElDaFJDQWhOb2JXMEhNcjlENDhGd1E3cE9vdHdIaV9QS0MtT20tekFNX255cmpuZnNEdE9rcEdQN3NUZHVBcFFFSFgtY21MQm1iWEdpMHJrTGQ3VWs2OHBkVmlJcUhNRTVQX0FrNjhhb2cteG9uWFlFdVBQT0ZPUHdZdVNfVW9YUzRNcXI5eXN1V3g0NVBaQ19LUWtGeGpOSzc3UHZEX3RENFJpY251Y0RjRG51R0JpZno4SzRoY0tMV05WY21Yc3dNZ1RwWGNqYzNfTjZ5c0dWMW4wSjBSbzRPZDJod0hmTWlRZUtucTAwZXZnMFFzZExaUTFDM0NYa0tlNk51YTRITnBpX003b292d216VzdDdG5OV2FNWV9RRHk1RUVISUVOUjRWNmNjTy1IbzJtZndfSTFuVHdZRFN6X0xMU2RXSFpGS2FaS1R5Y1VwWGVDX0ZZOHl0eGc5MVJ3NS1VZHQ4Y1IyVmRreEN6OUYtWllaU184MzhJS3djMGpUdlVrWUphZzI3cDFYMDJZeWh0UmRUdkV2QW5XYVR3Z0M1RmgwbzJoNHlyaURnbUxIVkRfX2NudWlocEIzT3dJd3RpY0RVTUtlbHpLQmRhQnlLVTdhdGh2UHY5X1I0WWVnZFBsMXlmSC16Wkp5VnRCbTRwYlM4UVFPcGVHbkFmVW5lRzNpakplMy00MU1GUzNfZmoxOFgzbEM1T3JBT3o5aTB3Ymk1bS1Nc2VTcnp3QUtaeHBRbF9lSGViWU9RYWMxX0NUV08yanNKXzRtb09vcHJ0bmpmVmFRZUhrNnRjbEFxMDZoZTFEd0JFQ1ItczRYbnlvOW14U0hnYjhCanJ3aDd0VTBZSlYwQ243aE8wS1dIZUstRFg0VVBKODV4UHZvZHozcVZpWjRQTU9peEtqemNkR19TVC1iQ2sxeWNFN29peE8xMDJOSHlYb2FtMUc5Y2U5T2Y3TkdyRVQ2aFRDMEJ2Ty1YUHFkMXd4THdYZm9qdkFNYzgwaVpUckNkVVdvUDdoWFRpcE1Hcy04bWR4UXNJTjVCdzM1T29MRG1rZVBNMzlWcjJIYkJ0UkxWb3ljd09XMlVhR1FmSlFuNVlEazhmb2dpTjhSaE9ZMlkwSFhBOWJ6SjJ2OWlJWFZXb2Y5SmlmaGdBNnVzWVphdVREN1JUXzJxRjhGVWFjSEFfNFFkRktwME15dWk0QzhFRm5fWWlMOWVBbWtyR0RMQmlrZkxFbE9ENTQza3hxS3lxSy1LeHRabXRsWm5Ld0lZTWhabnc5Rm9xT1Q3OFFoNkotdVJPTHlGVGdWU20wVEEtVE82enc2dzY1bWl4SXZMOWh3aWhCaUZlVS0zMXRJdVZaUE15UHIzZnJBMGVoOUJNMTNMTG4tZHpGVjJpdlI2SHZJN21abmNva3J4WFpEQ3dWS3dfNzZYVHd4MXhXUFlpeUpvMlNvOU9FTHM5WUx5MVhwYS0tYlJBRS1feGU3OUoxb3cyREZJcFlTaDYyWkU0SnpEejBpN0FrMXF5LWttMTBZNkw3VDBEYVI3aGtlZGdPRWktNjhFNmR0MnFaSGFXdkstaXhyV3RLeWg0VzY2NlBIQnBoTzdlbGpKYWxOejVuR3dpUk16T2FWbGk3ekRlZ3BQemFPR0tfQmZtTmliX1A1ZnVHenFsYzFqc0cySmZRbFFyT3VFTl9aWl9HS1VRWlB1N0xxczZGQUowd0hYZ3ZjR2M0Q3FKd2tzNk0zWG1KTkNCaTlGbVpxUDJCLU12MGg2Ukt1SDNidVdkYVk2RU9jc2dtU251N0t3U0lFekNtbDFpNGFFTGhCc3BfVWpsQ01ENkdUam5jNFVKRGhsTWRUTTlSdWxwQ1hEbDJaUWc1N1FhMnFGeVdWeGNkdTM0WVdPOTlxM20xa3cta041azZiWVhnU2pBcWF4TGxWSXdaRlI0WUJCTk1xVTdTMkZEQ1JMWnFUSFBhODkwellPU1ZYTnRFc0c2aUhUSi1EX0F3YUlpeGRhcEhPcHpWWDdzbUMwYW5uaVhNQ25rX0lsX3pvQW82c29PT3A0TXRGMUJzUmMxMm5zVm9JY0tIX1RDX28tcGtRdDQyb1piZ3lzNGszdWNKSzJRT0poWl9SY2hiN1BqQXE2T1ZZN2ZYaGtLZWVxclRXSVlCTk1qVHR4M243Y2tEQlhKUWVxQV9zN0RrZlBwanF4UDhJUEdubHMtWUZWcVh5VFRlQmJTVFpXT1ZILWZ1WmZabnAwMGZJcmlDTm1kUU03dEhoOEEtUlZqR2RjSVdYRFhvMm1iX3hjYk5wQ0VmQzRoaXUxWmxMM1o4N2UtbEFXLWV1bnFoRm1xaDg1ejRFY0Z1bXVIb1ZLRXBLREg5cUxWSUFPZHZxc3FrQmFSZVZSckowdTNSTkJMWGRMOWNhUGkyTnZEUUhDanh0Z3RWdHgySUFVQk16VVJiWjdmbHBTS0lxaUxVdEVPbk9iZGN3ZjUzR3l2aU1Vb0s1OWV4WXZUSENuYlliVTk5YTZCcktCR3l1cnRhVXJqLTExckVwVWVBYkNMVkZ2WXJpbWlCVkRfbnlNUHZYTXFMNV9wNUY5cnhTanhINlJkN3hRZ1RDMVllQXF2ZDNFYWV1QTlLVHNicFVVN05FaFlic2ZYT0UyWWxGT1RmVEV3ZTlwWkR3dmxTQ3VLdHc0TWl3MVBOV3oydlBRdUp2cHZMXzktWEUzYU9GOVFOa3RRSHY3QWJaUGMwLUxZRWxnZ1hpZkdaTzE0OVVLNU1uTTJVN0M2d2kwQ2F5UUJpdmN3NjZWMXRNajV3WERjUmhYaWI1M3E5UUs4X3pHcmwwazBWQTIzQjh0US01bzBkNndlZzNUc2o5RWlHalhhTXBFZ0ZoUTRWM29rc09YdElWRmZQTndlNXl1bVZUVVFMVEQyMW0xc2NsTFFOYldUSm1zdk03MHU5cmNqRWJ3QVY4UU9IRW53UWlXSTZGQUpodDJMR1ZlZEN0YlNwTDZaRHplbUhETTRsbHoxWl9ib1loR19HYmM0T3l3ZlplVzEydEFxckdCZHlYb3V2djEtYVBHZmFvQ01qRkl2S0dYYThZN1Z1UFJaZE9Ec0g4aDJFV29DRDRUMkhuMzd3T1ZDNHBKTUhDRkRoaGNFaEx4LTBxRVkzdTVqSUgzNDhLN2REbXZqVm11WkpwRWsyTHE1bXRkcFJiZ3NRYUpDdU9NUGMxa3RNeWZDQVdLdGNiUW91em1pcHhBS0dqbTdBTjFNNjFoaWQ3THlZakRRYjh6RWk3X1lsM0F6c2wzTnprR1owUDBfNm10a2tBb0VIN2hHTVp4b0VMWS1NREt0N0R4Z3pCVnlwckU5SlhaWmFJNGxQVTE2SjlIbGhBbExfdUk0aFFsQ0dhWEhRQ1pGZWF6U2F4MlZXbWFrQktLdmY1SVpaLWRFaVpRX01Pc3o3ZVJxS0NUQ3VpMjdiYzZ0bkFRNFdTV2dkdUp6OWxxVW84dnhLNkowSDZ0Qm5kZGJUT184UXNFVko2dEd6a0pHWE1HNk9VT25YT3kwR0xUbmZlYXUwRXVKRHp3c0UzU293RWVuVVVmR1A1cWMyc0ZhdXlyaEVCLUE4SXppcXlKZkNkY3dPajhmcERwYXVtTzkyejJLMXloVDhEQzVJOVZNektqaHlJVlpab081cEFsNnBRYkhiSEpLMGt2NmV0NU13ZVBFTHpNWC1aV29OOVpnNk9wR2NvR0lXNTEzMTNVc04zM3d3LVN1bExlTTdfdmZ2UjZvTTZTWllCQXR6ZXpBcjVic0xXdTNoME94SlRDN2w2TXJURlZhMElTd1NwOTNkcTg3ZUF3bnFUSlJDbVI3Smhnb2s4YUpLT0RYbUs2aTU1VHVHRFplc3plN0JqQTZyb0pkMGF3bVh1LW1YZGpzVHpfZC1CWlZ3dnVfZ1puVGhkRElnb3d0N3RYNHhPX21RZ2J1Q1VfMjYyTXEyZlpISGdfY29fckI2V0t0cE9LYUljaVl3NFNwMlRfaWJCWW5taWZlcTBkZFN4LWRueXFPUlBYX1NVbUNia29OUE90ZFFyNVRQNEs2R1JuQVFzbGY2RUlGTTg0M0FkTUZFNjZJcy00Rlo3OVNQTHNVWFpLcTFNWFVRQ01OSlY0b0tDOHR4STc5b1FRbl96cE9yNzc5MmdPeE13SGczc3lMaUVsVHZramdWYllwTjJnWU9qMWx6SG11SFBkZjB5MmZBQy1fVTRnT2lvSFRmM0cwaU1GbzJva3R6bWk4Y19VcVpfNnd3dzVvalNyNmQyNXZ1UGhQdVM1eVhIRmN1MGJ4VlhrYWZ1cUV1MUwyQnk5Xy1hcm94c3BuRGx2NzItYnhmRkJKc21QTmdaZXpSNmMxdDRBSGwydHJibFpmX2NnaG8zbDRESllYV3B2OGJmZzJJQzd1bVhaYnlmWkV1d1NzQlJnX0lVTmZ6aWF4Qm16R3F0MmpXakJ4em12bnhYZXNFYXNUclpGeE1HYm1ucm82YktXTEFaUmpELVlGRFh3ME81Q3c0cXhpZUVjQW9EelpoaGhWX2hpVW5VOERad1NERnBZd3BvVG0tMHN4WTBhWXRNOTdqb3VKUEVxU0czSFBBOTZ0aC1nMGxyTHVLb2ttX19uc09RcHNZZVBfY3FIUkJDdTdPUjBnMHRVMkNXTk94Ql9oQ3VuYm0wUEVUUmRKbXk0UnBBNlNnTVlVRENleHAxRUNUOFI5OVpKaUdidC01RGVTdE50bXc1eWNwcGw5emwwd1pyWFM4RzNxQ2lkbENNb0liSkY4YzNSWjFSZGVtQTkzUVQ1X2tXdHltb3A5TkEydDRCWGJxTW9MU3FjUXNHczlWSmxwV05QLVVHVE1UNHU5TVFVZ3FWZGJCOGhyc2Juc3NrSW8xakNVUDBpNUYxYzJJXy03dTBxcmRBajdMWVIxS01HUGRpTGFqWXQ4aFhPY3ViWGFXWkVLYjdrU1YzWm9mN2ZqdU1WNDdpeTBnN21seUlJeGgxRGVUQm93TUtwQ1Fmc0J3NzFPdFV4eE1JOGdzVTl3S2IxaktCRW5ZM01KU2lKVTJvUW5xVEFVNU1XaG9uUWx2MWdlQU5OajE0bTBKN2tXc3MzNFZpUVFYUHpIMFdrYzBwb2V1Z01xQ3pmQWJCTlpzNmhQVHlhQUZXa3FocW15VlA5RnRBMlN0T3VVMVJRVnZDS3FNWE5rTkRKMy1SQmEzWjQzcU93MnJnb2lIaHdBemg4Q1Y1UWs3T1J1V1FCY2FDZVd6X0pNTTFnbV9EQnotTGFlYmF2aVVEOVp2VjZwR24zbnJwWWV0SWFVNkU0c0dpSHVLdGpMdUdxenhiWmZRb2RfMW1TdVZfdVBHaFVZVjRYdzZKcXlTbTNObjJOa1o3Ry1PUUxSMDBLXzRGSHREUzBSYW9fZkc1TFhrWW1ZSlBwOGl0ZjBRQ05Cb3F1dXZIaGQzajZWbU9FQUFNeEVCZ1IzNFVJOW0zdzhwcmF1UlBqSkRuNUp1NEdxOTRfY3pSbGtfYVBEd3l1ekpDbXlkbG9JOG5BTVFDYWtFNUdEWkI0bnlZQ2JVVHV0YmRock5ZNklwU0pSVnNYekNIbnE4UXRTVVFZTFliN3cxSjlUa2hzSHRsZVFNWjVYekNKaUM3T0NadHlpNE1LenNqWk9veGFIXzBIQ1lpTUZtQmNuTkZRLWZtN1JkNy1DaHp3cF9YZFFpUWQ4YWJjdXhIY2JFX0Z5cjJEX0lyUWhQY2tCdGJZQ0g5Z1ZUREdaNk8yZ216b19BNkJmNEUwSmM0Uk5leV9LQnE4RWRnMkNPalgzV3JBRDBlMU9mVTlxalBmNzFwa1ZaaUFGS2tla19VVXllcF9CWW03SFdfYnFWX0RZWE9Db2xtcl9fODFwZGJqTlhxbFYwbzdlS2VfWjUwSDM1Y3BkWVFOUXRLNjVNdnh0OFBHNnJjTE9YRzN3OTRwX25wQXNyc0JFcGd4Umx4WDBsMVk1Z3dTTjMxZy01UDU0YlBDdEoyNmVQLUNsVDZSZ01oV0M1Q2Z6SVpTRDVCSmExNlJKeW5XLVNBbW5HX3UwaW5vWEJfMk1TWXhzcjJGUnB0UGh3N3c1cjhDQ3JLTW5zSy1DTGpfSjFydjV0d3BETldPeE9GQUdBNjU2MnJ2MzN0SXNzYmZPa2doem1MOTBRQW1YTjcwYkJfNFJKYlk2NUtPQU16c052NHlUQU1rZ1NUbjk1cXRjN3U5LXdoTlpXUWdHUTJjcjB2ODUxU3hmam4zRGVJWV9sMkNFVkdkcVVDcDZFZ3lUVW54RjZlTjIwdVhzbWpxaWY1UHBfVHJLa0NVMGJrT3NQMFpQci15QXBLaUh1UEJyU0tsVTFiZ2lpY3lDLWNmeDVRS3VkN2NyWmphVkxESkhkblRPRi13b0JiNVBGUVJEdDNEQ0taNnVqbmpfelUyUFUxUDVwQVBwYmtnNWIxNG5XNDZZVlBCSzJTNkRZUGMwRUxiOF80b20yTElJNnFJd0VLZUVvWGpkY2lnX2pCcEEzOHBVRDZHSW1vV2h3MzRfSEd0eWRmQ1VzTTVtTTZZOWJNb2JQdUdsQlAyMi15ZFFNZ0llRGdyNFYtX1J2Sm9nZ2NGZnFoYkFHRDRLN1JybDYwbmtfbjdXQ2pEakI1MF9hWUFPbnlDOWtnUjhQYjQtT280OEdFSjJjMklEQk5KQU44V0kwUllhN0RfZWN2UFU3QUpzWTdoVXVUakI4MXZBVGIzWmt0N19LZHo4NC1nazh2RThidVFrZFlGckVmN2Y1TU5PMG4wM3hGY2VsOXRMeGcxdWlUVXVndF92dFA3QmgzSEdqVUVBaDZMeGZIZWR6N0ZQSEVoYkJDYjEtNy1PWVBnLWNBU2pvYnZnWEd0Qm9VcFh3ZVRydm1fM3A1T2NHckMyaWlhTWpWZFRvb3Y1MFZoZUZNUU85Skx4NjZHZU1WZkozbmE1dUFFWS1KTHd4VnVCZEI0Q05obmpvbGhNWDVsM2U0bjlWcTBVck5PUG1oMFpCazRUNHJ3REgwXzRjZzVOUEdkT2F0SlJzb19hQnNwV05PaV9iTmlwSy1HcTFiX0d5ejhNZ1dzbkN0akhWOXNNcHpkeXZncUxObmtVd0xab0g3QW95eHI5X2RrUDdJb2Y4eEo4cXNBcS05MkNfRVNKa1hzR1RJYloxdGh4YVZsZzVqcHRSOHdXeUZ6MEdWejdnanFqNXI2ZE9raXoyU3lQbXdLN0stUmxVYVJ5SGFpZ2gwRnRGTG1fTUplZUVnVnVXR3BSSDVvaGs2RF9sTXpZNC04NjZqNVkxaEZTbjJQSTVEQjV4T1VpSVhsbUNwc3NUMzJpejVYZ1hEbmNuUzdSM0FsbmRGcldnanFadDlCX2swNnhaUW15TEcyQ29vXy1lbGZzVmhuODBvVy1hc2U4Mjh6N2xQcTRua3lvNnJZeFpwMlk5bWJ4bmtQcWZTdU9DZm9ldnRLYTNad0k5NWMzbXJDaGZHTHBaejlXR1ExdzVGTzc0NTlrbDFmLTBBZV8yTnVyWkpaUExEcEczYklHLUx3TnQ1cTR0amNhSEplWEtuMi1UMEVvMENPWXhlaVFkOW5DYnk5Vm05OUI2WFpscXRON2xaYVlXT2FMM3o4ZHhrQXVERXFKcVd6VVp6TS0tdENvNHV2RkJfVEx1QlJtVDlJc2FvaDVwTFljSFdQRTJGNG1GTGFKc3dHd2pGR293cFduTUNrZnNzSlFBcWwya2ZqSWVrRk5LeHV0cmhBdmJ0WjRuWTFyTFg5YmVzZWRjZ0paMTAyaDV5dE9janB4dG9vY0hRUl8zWlluZWxIc0YxZjZfMVpZeGxLb2NHR1VlRUxaVW8wTkN3RW1rcjZkbnVEVjNkQkNjQ2MtX1Jnc05oSXo0eFZmX1BtVFlnUERDVHc4RTd3QlNFWWhrekMxY0I0cnA5ZnQtYW5MNHNCdmRvQTJubGNkS2c3MTRxaG5SVk84LTlrTlhCelM0YV9hbmhMQU5IOXdldWlsN2h6Q21uMF9KNEFZYm41SndleklJQUZWTEhCOTNsc3pWTGJ0UWNLN0IxakJpRUdWUmNGd2ZRR0xWWjg4QWE4WElSblhsLVRabTR6V29SQnFjQkRRZXNzNmdoallPTnBDYzdOeUhSSFAxdE5vN2F4aGVuWUY1REFKVG01aktnQkZIOEo0THhRTk5ybkp2UzF1MjZZZ2FFN3lLR2FXRzdQREdWWW1ScV9OZHpkOXdrNGQ5RnBOalR4U2tlSHh1V3ZKVXVKZVQ2VHBtTDF1ZzkyTDZaeUZ2NkhZUE9TY2NoSHRkU1p3bUl4R0lXejJJSG9GcFNPd1M5WWJhOXRWSk9NR3ZZZHB4MlNrZmlSbHF3SHFWQzlvRWVYOUI3VkN4ZUlhUVB0Wl9LMkpsUVQtM0VvQ3kzY1ZuWjY4YUE4VWxSVEdwbl80NlJtQkFUWFpJcTZtLWs5V0V1YVR1S1VhalEwSkpyb1B4cHhkNlp5MkdLU2k1UHNVc2Z3c1gyX3J2Z2lsRFRZWjJCMFBTX0hLYjVvNVJUVGJTTWV4WGpYaHZYV0VDZmtTNjljdUtYQnZhcmVaZldrN3BOWFk2eFZfV3F3TVJnQlRUMXRNY1dnQU02UmVFMDNzY3RyVFlvSkZmbFpYTnBpcU96MWZ0c1pGTzNPQjZfeUxGQzBNd2tYNUlJdU1ibVA1VmJmYlNNVUlRcmpPelE1SWJGLXUtbUN3b0IyQ3FQOVRvdFFFUWdOc3FFTHB6ZnRiM21CMl9ESDZHTF9DZXl5bU9XdTJZNTdFelF4UkRnTUJuc0w3dXpweWJzejFkZzBvWjM1UnkzelZzaEE0bjZYQmszQmJsS2EyMVRhbzUtd1J3V0hDUi03dVUwMW9aT2RGZ1J0OHhfTElQVjNYUFlUbXpBVVVqRHFkM0pneWRjRF9Md3E0UWxkbVF1MUdGbU9lRGxEcDgwQTdQd0ZiWGxqU282ZTRFWi1pZUdhNGNTcVpzR09ET3B0ZFBPeDhZX3NJbS10NE1Jc2ZONzVPcE5TRG1NUkNGaFEyVGRNUGFyQnRMS3RZR0tMRm9nSlFmUFgwdW82aUpJeGhHN1l6a2FxankxNzAwanZaUkhtLTZzT3JaMEstY1BZVXlTcEFiS2F6eHpyaHdVcUJlZExYUnE2cWJHVFdhbGZmRHhzc1N3TnZ0LU1vbzVDNVlmbjIwMmlOcUV2VUlEemYtN3dQNGVrVTRKdFo5bVEzZWdHaWdkd3FhNDRxaHN6cVZTTzFvRFRPWXYteVcxbFZXNDh5dUtNeDQxQ1lnZkVWaWNSVW1hQ3ZMdFYyT3VjcHBnWVBFcjc1c0o1Yk9rZmxGdlFYVDM4bDF2bGxtZWNTN0dHY0g5cVljNjNjcGE4MUhxa2V2cnpZeU0yVjRGZUVkZkxYbmJhYTVHOUYzakNoTFBST3NpVmtLWWlaSUtzVHNQamhwR3VCQk9PdTdKSHREYTdmd2hXNjFYVzRIWFRrWndoNTVkd3lnVVBMcEo1U3lwbGNuLXVtaF9CUnFLUGZ1c1p4cXo3Mjk1X044TS0zRTlwNkV6NHNUTnBBS3c3Z25sdXo4LURCZXU3T1ZXNFhEWUlXekNxUkhuWmNYS0VPSjNHQU9MSmV2RHpMeGJRaXg2YmcxcHc1RTZBLUdJS0hvT1Zoa3VmRTZWQkZTX1hENmxiY3YzOVF1dHdoa3pWZEY2VGVrZlNzcFVDTjdVWXRjU241WmFQSy1ZQUJySmd0a1F4VEhMM085WXBQRFd2SXByNjR1aXVBZmN5OGNMejJoV1lOcFVQLUMwRkF0bUJyMWNNeFEyX0ZMSlBteW1hTU5GVFJOcW10S1FFZnlKdDBndmRVbm15WTk2OFJtRU52T0szMWJlcTJ1STNUTmVkWk52NlhaTm94RXFYRTRnNmF5SXRJcWt0dnZJNk9faXFwZC1HWHJXU3NTLUhZeVk2TDQxVFFXSE5XVFBmTnkxeVM0aXh0RjRuTjRtVmdhdkNHeEhjY3Q4S0JmQmE3X09fd0VQcF9CWUVoOV9zZ1g5Z25PRWpDOVFRd1ktaU13dnZmYlN1emUyeXhqWVNIY3R0UFpmMGpZdklPVjQ0aW55YkxwdXBzdklmMDBvU2o2QUxQdEM1X1lYZXVWV3gwT2FHLXAwTjhibFpQZWJCV2VEeXB0LWR0eUZmWTNfNi1zY1hjd2RRNHN6RDkxWm1QMHdRQWxSY3lETm5CXzdzTGdycFVjYXZMcWFGcnZyZ3puR1FYbXFkVkFmUFlrSkRPa3UyV3BDMmVjWGlCSGNJd2x1VWZhZjZHN0hIV2RpeUdidW1yN3FLaXIzVUstVWoxUkVCbzlOTFY4UmVyRDNYT2JqSjdsMC1kUFZOWHItYzlKZUxyWnUzN2xyT2NtTXRFc3VHWlBnZTVQc2UybXNJQ0p0VWtIUTRjb0RsQWZ4aHdoWE0wTTRWYkduR2V2LXFfNDZITF92RWYzNUQ4WnZIS3psWkVXMHdVaXNwMFNuSnYtNE9TbGNHSDFMZW96TnEwZXEtUFpoSnRmODdDdUw5MHl3ZHNsS1g5ckNVdS1HX2hIdzRGQXhJek5zRW9lM3B5cmFtcjZfREJrWUozWkU4S2M2dmpta3VKS0VVZUtCRWw4TE5jRTQ4cjFrZjR3eVhKcG1jcWl0cklSbXg4eGJaUFB6WTdWWDFpN0lKQk10RjZLZmNqQ3ZKejFiUFljLUFyaWRXZlRybTBhTzd2eWZtU2JOTndaajBZN2NkVl80dlVKdmJtZUZ5Ty1uZ1BhYXVHVUNJb0xiS3BDSUIweVBka0N5ZzV5SjNoZENwdVBaQWtTSmNzY2RBbzdURUoyOGtWcXJpLWN1OGFqczZfcnRkOFdpdnh5WWZ3TjhESXZ2NXFWV0RUT1N4VXZZVUxTbFNZMlVoc2xBSHQzeWExdWNNX1lDOHk1U0YwQkZOZmhtbXlpOFpJYzZmM2RfRGpUQWREcnF3b2p1QndxTkVLY3BXM3pZckRrRzhiOVU3WDhBSm91cEhlZlZFS1pnbWNiTTd6Rlh0LWEyMWpHLU1oZllhYllmNWNVTGo1SHNpRFRnWGJFQXphZ0xwUGVfVW55eGdwSUxwUUFCOFhfaUtzeXl1TnNQLUJzdjNSWVExOVNMYnZpUEh2VmxRR3gzYXFlN2Z4eUptQ2FsMGMwV3h3NDJEMm1iNkJFckVYbDk5WTl0VmVaMjUzbDJYdnJDYVJqVHdPSU01U3NvdVM5dUF5SmFWNi0zYXE4NnVrV0c4ZjE5dnpRNFRGZ0NyU3IwS19jOXVpaFRIZ0U0eTlGdGR3MDNXblhFRF82Z2dZZldnT1AyUERLQWpaWE4zWE5tN2xxdDl2YjYxUVRKQ3RDeXpacm10Y2VNVUlLcG9BUVZvN1RiQ2hNeGdlckliOHJ5eXNvUmxEdy1QVkU3bVh5SDdXRUJzRTVmWnhWVmFrWFdiNlcwb0lGU3VXTldCTEZUa3VoZXgzTHFTZlJXNi1iQ2tCQzdKd0xjeVRrMzh5SU05ZTZjRElWd2F3LWdEeG9wU0Y3V1FwWVFVNWt4ZWZ0c3NNbl9uc0ZNdTlhQnU1enMyVWhuWlFnc2JBcTVXaUdOWnE2ZW5RVGt6Y0dhcy1hMW5RV0lrWUpST21yeGp1UTR3UlF6dzlEeS1PWlliZVNEVFF5SXR4RlFlUWhfeVlVYktudmVYWHB4TXByZ2dPYi1ydjdrNDE4dVhCWlhYRS1UbDNyTHZjQ2pLdWZlZHd5T3h5RmdJQkk5T3dCemdGM1M1VkdEZzExd2pya20tNVhiZGZuZVhpTW9zMlJWWlJVWDFEY0o2YS1zMW5ieFZ0US1SOHhzZWtYbVBmWk1WazFTOXhOQ1c3V3pobEd4d0x0SDdVQnlDdXBmSVFFcGdyX2FxcmVVRkEybVFDaFVzTWE2S0g4WC1YTl85dkVDRkZHNWpieWdPTDJjc1p6aDZQSU9lVlUxZDktWVBlOWczcDAzenlzMFlmUmViU3JMR1J5RUFxZ2Y2bXZBVktzQkZMMlFpWmtSTEx1dEEtQ3JwMnJQQkY2eUQ4bHJmTERHRl92VzdjaFBDTFZ1WHFBYzJfNi1lZlJqR0RCSzRLdWZxMnpPWDgyTkd2OFdDMFBUQ3EwdDRfQUdoNFdFZDZQWFlvSHZ6SmNEamYtd1R0Q0NkRlgxUThTanc0cEFXQm54cVJnRFFpYWlSMzN3SHdLUW9va1AwM0xIc1pYT3lJM0pDb1gxZ3JBY1FQcF9CeXk2R1hWT04ycWdlUWlxMldsTzFneWNrTlU5SmVFUzFiZHY5dTV1X3A0YVpIT0lIOVFoU3hGSDFUTmFYd0N5dFRkZE1JRTJjZnA3WHE4VnA5VU81aDZFSWZLenc5MDJLS2NKYmRnV3ktZUZ2QVpaaC12NXV6aFJJNExRM0JxbmlLSjQwcDVtU2JteXEwbDZJc01paFhINW5WalVNcTdkcF9laXVjZWpqcVJXMkRWWUpiRGVWLWI1SWxfREI5a2diVDNGNHlvRU9jOE10eWQ4eFhQeXdBUncyYTlmOXVqLUtOMndRVmRnOU9naEFKUThSUHR4OEFzZUV2QnlIQjdQcFZqSE1OaTNtS3lLbEV0b3NEaUJNUFVVZEZZbXIyYjAxaU41UXFsQ21kRnB0RlVMaUNCQWZ3bTFuT1pKYklHTEthYWlCei1iT1lFeENRUmhESGJadF9VNEZpVnVJdFJCd1pObUE5UG9iVXVPVF9RYV9KRENCd3NucXBnQUpiT19EUXZBUHhjM1B3bXdJUkgwVWhfS29Kdk5NNnRET2xVNkVFb0FneEJOSl9RLXdJaC1ONjVDdkZMLUdpal93dEhjNk1QeTBOOUxWQWxNX2hPUTZQd3htejBBSWpnMmdMQXNEMTVNZFdWWC1vaU9Tb3R4MDE5dUozdy1peGhnVzM5RWFYQlFkTzZERDZIRF9iV1pGVGFlUkRWbVMxUEI4WDFZQi1EekxxNFlERnp5Z2Z0bm44ZzIwa0Q1YUszVDhwQ2lPbHR2U25VbHJNV05yMFcyX1ZTSVZXbnRDeG9lamdxRzhnbmU1cUJnM2w5b3F5ZlMxMWw2YnV4bHZsajNNRlZibVdJNWVyNjNtUDcxU2ZSVGpnYkR6UnNkT2N5cHllOFRGaG9QVl9GV2RXbC1vLTdzWFlLM004bGlsVlNINVdtTlRjbHFDVUswNjdsbDFvVGUwLTlITHdLd1otUUZ2Y3ZnMnQ2ZXRoN2pHUTJwZUtiYjFyQ0t0eXhCVnY2UDlGR3I1NnFKVVN3OWI2SmRWNFBkTXFTNUFjcVRGZVJISE5qVjZ3MllfUkJ1UHR1NmFCbURTbERsTGl2eGpoLWhzcXNsckNsbnA2YVNzV2lTLV9CWWhJZlZYRnEyM1RtM3FCcGZsUG9WeGwzSmZlM2ZVQlhrQmh2QmY3Z2xqTFNnTWtFenI3TnBOWF9VbDJtN09ZOTV6SW0zWHIwcjRfQVFzMUJtRFRqMjJQYktHdmcxV3JwQWswbXkyMXFDZ184c1pWaUpyaTVrQ3drSmhGVm0tckF1Wmx6VTU0aWNUUUgxYnk1Z1BSMUppeXZLT2tCeFZIS19JMTlwVEpld1pyVnVNTGJlNzhkaGROdnMxQ25ETDBwSFI3OE00UWljS095SEk0QzdobHd6dUtDZnJuczMxY0xoYmd3cEtfaWlhc1pEX3JKVHdsdXdzTzRjV256Q3BSdU5lekJIcG0wNXBkMjRicVpEVl9kNVpWSGU5ZHdLLUQwSkdmb3ZzMzkwMk5tM0ZTQmxZSjAwT19rWkFqeTY4Szl4a2ZEeGU0c3lQMnJkUWJvanRQeU1GMGZ0Wm5UOTdNbHZnOVBfb3NqVjJfQk1OTXB4TGxqTE0yZW5DeGd3RS1PbUFpbzhPNWoxbzRybkJfSUhwSG5ScWZ1Sy1zaUs4ajdoRF9ZeUJNS3ZNdGliWjYyTUNSZHFxZzE3Z0N5TnBFenVlckNrR0lWa2M4UW5ZcGJZNVM0RWw2Q21rd1M4RFQyUURWRkxSTUpRVjNOeEVqSTBydGUyUktsRldOODN4Z1JFSEd4MmFWVWduNXp2R1EwbFhDMExSeFlFMzJaSTFmQml5VnkxMlduclBjS0JoelNRUHU5ZTlrU2lXRWZpVkxHd2JDT2lvQXloUVlvcWJ3c0JfR0cxN2JHMnE1eFZUQXhEZE5UT2ZtSHZuM01sYnlsV3FWcWxVZEhpdXBoZ0luSUhkM0ZwaW9QRjF5Zm15NGR1THR1VF80bHB0MXA1WldpWnJZT3dwMGF2OF9WUEI2ZFBvaFlMZ0ZlWjk2aFhobjVwTzl0Q2JFb2QzM1NOLTk0Mlo2OWl2MjdaX0o0V2N2QWxvUnRHSWh2czJERkdHRy1qVVhfRVVCemVHZUJmZTFJdkRaVkhEV3FuOVFrVHRmODFLeGR3ZEdaai10WjRxYzZMWGJPQjJpLXJIcGt1SDJuZHZGc0VaX2NjSVNRVGlNSl95ZE5VYUN2aE5ENHdCZ05aT2RoLUpQNDdWeXB0UGV2bURqUkxTZ3dNM05aU0VSOTVQVmlxTFcyTjVpaUl0Q1dzbVRKVWhBSUF0V3IyTTlDN1U5SmtmeVVQVmVfb1l1cnhQQUVuZWxBdlVJMVQ2T3JLQkRWNXFnekh3aDNZTjFCYWxnRjJ3S1VaVWFBb2ZUb090bTNkYy1HQXR6cHFQN1hwclUtVnBXeTMtX2tVVjdDLVZiU085S0F4Q0UyeERINWcySjUtbEltNmJOSG1jdGNvTHdPM2g3M2xwYmhXUVIxaGNZcVhDWjduZ3B6QzV6NldLOXZoN1I0UG96VW9aTDZOOFZtNWZya0hsQXZCTkxNOG5LSzNTSVhKaUZ2UG1VZFZpdHQxbVdmeXM3UUcxaDNWOUxCSWw0aW5XcEpFQk1RZ0x5dkx4Y0NfalNfT2tjeHQ3OF9zNzhLSE9seEllWGlLZVB4RHFYS0Vfa2w0eDFtRkVya2x4MzJFR0pUV3RLekhRU2pXeEd5V3lIdFhhcXkyUDVrWElMMVBPZHBSQ2lhNFJCeWs4WHRJRGtRYXBCV3Z1eUlnS1J2UURsaTc3TE9KcUtoWGRPRms0bHB2cHhGQTliZDZUQk9rTmpTQlhGenNTaHBySndJelhUOEhpQmlLand3djEwbnc4Q2VpcU5MV2VSSUNWWVRYdWFlQ0FHRm1MWTFIVzNiem9xeG40T1ZySGZhTW5qcjBjYmVyNzBmaHQxT1J3Yk5kR3ZnZFZ4TEVkV3drazBBcWhtRTcxZkFiNlluRmZ6Q1hXMTJoZlRUbkhlOTFVUzdFUEJoekxSd3BpOFRHOVZyd1RNRm9fNnZaS1Z5blFfSU0wVWM4RTVkN3FLVkRtRllFM1U5MmdCRndyS084TnpLcl9qOEw2eC14Y2pQVUdmdDltT1lHVGpiMVpUNWMycGExdzJfTWllV3NncWVCS3pydUo3WGJjOW92eDAwV1ZkUTg2eDlqY3FYZVRIY2ZIUkEwU3kxU0IzeXp3VGxEQlJQbVpjVGpwQnB5cDZzSGFPTC1HaGxYbUc1V09FdTFBY3ZoZ1ExYVdod09xT3R3YjFQQ3pNVzdMdTJNU1k2YU9qX1BVRUZPQWJmWTFKODY0Wk1sV1BRS2RseEFteWNWMlUtUHBucG5fdEI4TUNaUEItc2NPRk1UTGpLcFJTZlZWUzVvak5HZmJHQXpiNjMyUTlCVXUwRExsaUJBc292TzN1eUt5MnVYeTdiVFREWUlBbW1oZUo2TmRUNGJMU00yanQxNVkzUlNVTXk3UVlIOTBZLU1oNW9QWk5CUnNydEdSYUNkNkNrdnBxd2x6MC0yY0V6cXlLeXVydkx0ZDk0b05LeGxDRVhEWkpCVG9XbDhoblZNZmFfWkRUR2xJSlNVNXB2TDZNd0NLZ2NkcDBGV2NwR3JSQ3RyNkRkcmlMZVdwVzJpZkxtdmY4NWwwaTVFUVU4ajdpdFVlWW5ZaG9NZWZFVm1hNGQ4SzNLOFdaWVZvV3huNEQ2eWdvcEd1cWVTLU5lZUJQMlFSN1dFdC1tWDNrVjRGeVdHNlZraGRhRU0xYXZodFN5OXE3U2pHUWxzWjJXNUVINThBVm9VbXVkLWxnWkxsVTVDOElBU21VNjRrYkpqaWp0ZDFrdnlFZmFCWkEyQXJrYmlUTVBMOGtrbl9qWFNGaTVWeUFxbzZsY1lwMzFqM2NZMUsxSWNzU2tSLXBZTk4wdmNKRWt2aTNmQWtZeGlWSTNjSHVWWkFDbHNRWkNGem45dzh6YUdvbzdZcTdoVUp3T2NUbTZHU0psMHVSLTdkanZwZGwzWUNoRjVkb2t5WGNpb3Z0X2ZqbDlrRnFTcnpuQ0lIYnk5bXpBT2pIRGpQa3o2Y2VfZzJvMFdKTHAwOVdWX1kyRGtjamU1Sk5xRllHSksyX2dTajZiaFE2VHlBcVNxdVRmNWdhUXVBelFuaU8wcWhKOWxKNk80cW1kblo2UExDbnFSQmZIaEY0MUo3MWRFQVBxUG9HMWFZdHdFRUEwb1paVy1IRThBRFlUaVpoYVRPbXlfaUMtdVhHZl9GN0ZaVU04aTMtNWdsUlQtRXQ4NTdMUjk0TEwyak5iWlY0bWtjbUlveDlYQVVRXzRaRGlyaXJtQnF2X0tZTTJxYm9zcHZDWExfNGRld2NEV1dsUjlzMHp1eUp6YS01WmxJV2d0TElzOVNWTGJxX1BuY0RFLUJadl9CdVoxNldBWjdmZGd1dzhFOTFjRkxhMDJzek1uR1JBOXd1YVBFMjc5WU1GWDRsU0I5SVBlUGdqLVhRZTRzN1JIWmt6RFdUVHl1WHdSc0JSYk1QUDJ5d2M4UjBDVDRrZXVDcy1HYk1WRjdzRlRBNUNZQ3FhUU5kdEhqWXM0RnVqUG1OQXFiSEVrM0YzdXZXYVdXclNkMzRsVHA1UzJXNXZsU3EzRktsa0IxYlIybmJza3ZNM0VteGtnM281OENGOUFYVFFQVmZKT1hHbzFYc19sZmlGLV9kT0NDNmwzRmE0NzYtaHFaTlgxdFJaUWlQMm5oekhVNDIyNFhYTE1LV1VBZ19qOUtfdzFvUXBnS0hSWmJoaDJaWk0tYWNXN0NmWGZlQ0hndWtPZVJXM2hKV2VjU091djFNNWxObEFocFpIMUVnbXBWSGpRemtZU0JyVFlweDNjbjZJSU9uYmNCNkpFbnpibmxxNWxlbUFhN1NvT2h0dGhVcHBSSmUwbXl1RTJPbzZoLUxPLTFoUW1iN0xmeVJ2S2ZCY0xlcDVwelN1UXlYUG9URmtsTXVONWVUallGVlpTanZtdHpPNmpGajRXbzUzUTV1STNINmpnUUNZdVo5dFNXMHBGdmVzRWMwTDFRbVJkYXBRS0kyQ29GNm44Z1U5UHZ0a0x2U2RYdDVzcjVxQlo5Z1h5anRrNnpjdlZEQzFPZk5leWNMbVhsZ1NGaUlZbm5jQTRDazlqaEx0bzRFWnVackI2SkMyelhOOTh2MlhZNmMxUDFldGFqVWJFTVZhbXFxdTBKTThrWDdaNl9WeGdkbVV0SHprelFKSU5UT1JrOU9JU19xWUN4ZHV1N09iTVFCRVN6aUU3clU1YmMtbUYzY2N4eUJNa2hTbElNSVpKZ2JiOHpBXzlNSlJ6a2RaYVZNWXp2aWh3QjlFOVZwM1hIVV9lX3pvWXlQcWhwMThNYk9nNG91UFBKZGUyLVg3eXQyakhnWWtvNmhZcGs1SjVsOGFyTHJLcFJGMDMycFV6blc3cHktaWw2VmQ1c1RoRUJHSFNoM0w4WHZPQklxNnBEYUp0U09QdzFNQVFmaG5uUUFnLXowdzIzdFhHY1dTRzZramdVOTgxVGUtQTBJcGdwZDA1S1hNdVVXcUE1azRHVXF5eV9tRHR5ZVlvX2pmQzhYb2QzaFN0Sk50QmtGT0kwalhkemQ3MUR1ZW5Fa014d0pUUWwzYlMxOElhR21sUmU5LXpHV2swYmN3RUs2Ty1vSXc0N1FXQXJFTFoxT1FudjBLOTRRTU1NOW1UZG9iUDdFamp3bFA0d3MxNmdRYzU2dU9rcFo0TWJHYWhTd0tzYzlVUGpBeTU0VkYtUmZDU2pXTGNYUUotb2czRmZpTUkySXhqLTZORUZQRXBmRDh5dER2UEp1Q3ZVRFl0RUNQancxc1hBbmtXQ0dhMFJkc3ZBQy02VEhxUHF0VjJqQTBWRDlmaWpXZVlqbWZ5V1VQX2EweGoyOGt4OENybWJDNGdQQVppZzdCSEVXOFBKdUxBbXN0NXJpVXhkSWlzMV9TYVMtbVNjaDlXOXJWbDBPODZXbGw5QmJZdnJRRXQ4M3c2M2RaYkcyNGZsMklqRFEyb0tJMDcydzFwdHRZZXR3d2pXYmFSSDhPM21ReWRiWnItVmRkMjgwdEEwdzVDcHVmMnZSZkVWX3JIa2dNbDhza19NWjZreFlyeFU2NUdQVE9ybEVDMFpOWW41MWpweFJpMWJOVHVxWUdMSzhWUHZfVWhYS0tWdUFoMWtVT2NHX3JMM045QndrY0tyeHFIT0R3ZmpRNkxEeVFfZUZNYzloV0VoSGFZcU42N0x5NVlZbGRUWHYyTmVveU9xY2R3SXZmc09uaHp4bGZhVjZDZlZqN0k2SEl5ZXhoYTB5bllHQ0Rzakp6SnJ2VHRrWlFHazJpUVNzc1FNU3pwSlpadlBsbTg3VEZvTzVrbV9LRXlWN0p5SWtkb3l0TWFmYlFKbmNGWUVMSW96VTFCei1EcDJJeU4tQktzbzZaYnl0RkNYYU9EcUptR28taWVNY1NPb3lOTDRCV1FpUi1CbFBVR1NvNWFBOXM1bC05YjJSbERMMHlkaWVDUkVvUFVHM0NhU1Nrc091dkoyV3NMUURmZzB5MUltX0Q2Q1c5YVY1ZjJMejNFOTdjck1ieXFEbGxrNHhlY0RvbkZrd1JtYm1fN0VWbkVQdVZJTXhNaE1rWmdad3pKd3dQemJ0UnZXdm5VR0NhLWdqVHBONHk2WEdQc19fcGxNMDg2bmFESjE3aTJ5cnpXYnZaR2N3bGo5VzI0YU9CU2JoMU5mblc3aGZNdU5qNXRhcmg4MXQyT0pjR1licGY4bDRZb2k1dGVxTGRSeVNrd1NiUFZNRXBjaThRLVJrNUZ4djU3MkFSdTFHWWs0OWJPYjd5Q0VucUxtd3NGOTl6NGk4T2dzSEF4V2lQT1Z3ZXRDQTQzZER1U090ajFCZlNQcHcwM0Z1QVhfSjFfZ1JGLUw5NFdGVVFUUEp6N21IQ3NiUzFqRnB5LTQyTm54WVEyc3E3MDkwS1lxU2dXQWxNTlgzdVBicjBXRkZwUklGWnBMQWRaRTRqdlY3ZWpybjRCVjJqNng4SlpFclVhakhVa25xU1poM2tlakZ5RmFfMm9FdkdoTmVhTHZSaFBjSHJXNGRyUHR6RGlvQWY4Qi1HOHQ1R193MDJPUjdjSFBxblJmOEZTUlBIbzFEQVQ1YW5ZdldrSTNsd1BNMnA0VHc5ajlPazFuRUhPd20xX3lZTnJhYzYwSzBvQ2lsam00ZTgzd1BSOEJhNUU0RFUzWHo0c1hjbXFhR1lsZzY1R29tazBEVHczZGFORno3cEdhcGRpRzJ2NVdFV2ZEenJoeHFhSF9pTGN1UXVPMk9xbXg2LWxTeWc0OS1hOV9IbXExcENUUGFLWTVmOWNxZE9iWTVuVUszaFMtUUVYclRmcVIwdEJ2OU9sbnV3UDBfY2g0bUVNNnA3RHB6ZUZzVFpvNS1QLVd6UmFGVDhrX09DNkNRckNwcXJjN3Z1UmwySjR3UThadEhHNmt4dUFoSFkzX0h0cW5BLVZQSWlXYTFGdW5GeHVTQTdZQl9lUnJSSklxTFNJN3JZUF9kc0tMTlBBU1dMVE85ay1JUHhIMG9majBIdW1RY1dCUGRNMUxObnk4TUxiak90clFiT044eDF6LW45TFhlT0k1VWlRNlNUZloyOTZlUjg3TUNybFhZdFJVcWFXZF9kY0ZmYzlFLVh3bkFPNFlWbS0tUFYtUms3RGVqck90em0tekxyeUVwaTZMb3VhbTEtMG5fN2RDS0NNX3dFa2tienR3cXlwQ2hZQnFrcnBicDBtWWFMT0RnTUNsclRmeVVYdzFRMnRqQ0prSHFwc2hHRHJ3bWh4MU9FWmgxQzZJcmJiY0FCbmYtNFg3eWFWMzlxQzhrcDJSa0U2SUc2Y3ZTLVN5SlIwYnE2cm9lY0p4cWdLTUFhRDlCaHU3Yk5tYkZHRjFYNTg2ZnM4bUlpQ1pBUGFxU0JyMVV0V0JCMURnM2VzVHh6bkhqNk0yQUtMaHBCTXZqMmllLXhCLWRFTC1oRHF5ZWhSR2VGekxyV00tbTdpLXFiNDZKWmd4N09zZkRiWVRQMHEycFpGX2U0ODNtbE9qU0FjSDc0WmRSMXM0TFNBTnJFeDhGVEVwQXdIZF80NVk3a3BXSzdWZkxIZFRYYmkxN0V1elRoMFdwWlFselJUaU9GZ3U1c1RVYk4tZ21DSmh5cklNY25xVUY5Q2NVZHRZcnVla193Q1QtVnUybENnUGhHRmFVOWYzcXRUNXVEUUNaYTdUWldlY0pRME9IZm9GaFo4WkFFWFVxWjN0U04tTHB2cUUtRk12OENiSFFnX25QRXBkOWY2c0dLSEl3NHdPRGY3NDBONkhGMFpReU1VWmlKcEpxelpyRXVyZ3lhWHFlRVZ1OHN1eGhDaWtCU0RTdmRyREJ2cHk2REdrOUpDWDlrVDg3TTJMZzJKcjFzaDFBWHJ2Q0RvbUlydWE4d0JiT25rcldPYlNnWGR3alpwMndiQUdsaVdPbndmeWJXQURWYmZNTE5uWUdpZE9sLU5BWHFNRWZMN3NXbUhITl94RTZ5R0M0NVUwZXJvU0lodW9XbzJUcXVrSkpHdkFKQmZ1YjRZem5FdkNqZEI1ZVNwWjU4dk1WbVZ4S3RncVE4M19IdW13VVhodGY1ZTl5d1F6c1haMzd1WHBTY1NWZ0oyUEFRdGFSU21zSzUtaFVGV3hWQ21zSjdOb19pdGxKaEx5RDNLcDBxWjFOVE1WQWRtQk5fSTByTWdKY2N1Sk03eDdWSjZJcWtFUEJUYWJralRLRk1vakJuUDNsTlBrb2w2WmlvVk92akFXRlZLVmtFTWlteDdTYTdmYVJlUGJKX2FMTGF1aG5YZE1WNnhjc2pGR1R5cHBvQzFGY3EtclFwMWtUczZSOHgyVnJjM0pXSUZqbnd4enBGNGhvZDB4RTY2RmRYaEtReF85RVo4R1QyMVhoa2gzZlNEUFhWOTVwX2ppRU5zOFJHQTJld0dvaWIydFQxSW44UnlxMTViRWxmWU1TckdFTk5uTWZHYjh3TjROSHNqNXM0QVYwNTJ4WUlZSEdfLUNQVllLSzMzTVhSeGIwcDQ0cm9JT1dSel93NHFUMFVDLUpNaWMxUGdTNTk5NVN5Z19Ib2wwMFk5X015Mmtac0hxT0xOZXl0b09pZ0F4eXROX0VGeHpZWVlBNEl0eE43enhEa0pSN1hDUjR1enlYT0hGY1k5TGFvMTRlRHFabC1WZUFGSWhlMC1mQXdkOTJ0bDhqV2hPdFFkeTBWRC0wQlhfUEJ1Um52NlQxZTV3UVFsemJkcUZTRzl5eE5ocW5FTjZZajZMYkc0S3BhcG1YWUdGbmJiMTlOLUpIZkdEbF9NdnZ0N3hmdnk2LUU4dXBEajcwSEg2RFpZWk5JU0hqSlB1MFNaMG9mUk56WjJpMnh0akJpOUtuUzk2dmo5TjlXNWR5ejJoMkZidW5zSkdjbEtYUjJJYzl4NWp2VnpIYnBIWldacUQ5ellwcEwtUzlEWHU3TEhJYUlPMEMzZmhkVnVlRHduQUszTUlHZ19uQkR0MkZ1TDNrX3hwal9uUzdtQkpkT0xhTFdjRElVdGxhaXNOVkltcHZzQ250RGllY3p0SjJ1VVpCT1lyd2U2cHI0TW10Sk80am1IZWRwX0ZNUzUwX0xpYzJYckdZUEoxdDY4T3FCSTR2RU9RcVlwOUFiUkptam4zcGM5a2hZWk9TUVh2ekI0U1FqcWw3UV9fdGxrNjRja1ZIVVBPVTBiY2E5RVdIOHBxa1BUOTBtX3IwYVVfZ1dHbnpYdVdTRDFQRWtQOVZIejN6V09lR001ZTEtYVhQYmZuZ0VWcnJjbGhrcjEzREp5LTR5Y1d6MFVzdVF5cVg0V1M3d3pHNk5vU1JTWENqOE5aT2tLTEo4ckhfNjlxdkNqaXZUb1AwM1pmMDhubmVoTGFUZ0pyV3VPVDhiMXdXZW5EdzF1bWR4NU9uUUhLaHVfWjlxOTJDa1BDOVo3UzhNcWtLa0NtYlh6RElaSWZ4MzVGU3o3a1g1dmtRc0hXX0FHM3hvYlI3YVM4U3M0OXBGbUlyY2o3VFU3MVYwLWE3QThQVVJOLVBOSU9aT2h2dy1FVW5aR2hiQW5CWVYyR3NCa2VGX3VpTkk2RG9ZMHhqRmxQeDVYb1EwSVJhS1otLWJrRmNabjRhOXYzWjVETXRmcHp6RWhkTE1iTmhaallzdWI0MGxlV2ozLVR1eTk3Z1lxQXlaQ0VISkZMTWVOdVNYZHhod3MzS01oYXhDQi1vQUQ0dmpQX1k2eHBjdUpQYlY0SEYzN3RibmdCaWFXN0F1SU9vNWlEcmtPSVpsNDZTSllSR1c3SWptOF9RQzBPTmpfSGsyaWVVZUN1Q2pSWU4xLUU2dU1FRFlFb2E1aG9YWDBJWm9yOUVMazlZZWpPZTM0ZjNtVFpqVTA1YWtwVVEtVi0wWFlfUVhuN0YxRVdTSllJVk8tN3hZb2V4MnQxMzFxSEF6ZmtWRGJuZFk1Q1NveEl6Ujl0NlpzNlVUTklCSHJGWFdIcVpXdjcyUE1TTHNpTGtNeTVkVy10LUY2UU1PRGNzejFuUTdjVkdkMmtCM3FfZGFsV0pvalhPblMtNWZOWXlLUlhrTnY0cDZFUVVzRll3MUFienp2YXpoX2ZwVlBBNWJSaHdNOVJySW53d0JnRTcwMG1KejdGSmNvU282SUFMQlV4VHNaek8tbGNoUnItVUlJMjkwRS1nT0F2SkRxRF9VU3ZkbEhIU3lfN3JyMGkzUGhISWN2bmUtcjlaY1BLTmJETHczWXg1ZzZfbWxaQWRIVkR3elFELTVZci1NY1cyc1diYWNzdzRrM1ROUUZCTWpuUTBUSmRnT2pkNDhTa2d3SHlYUlVJeW91c0J1OUY2ZHpTM2k4X2dkSV8zaEtjMXRYQTJ1Mm1TdXExdGlGTy1rU1k5WmxFTWU0WlA4WEdBSmt4SmxuS2h5d3J4Z0RHWW5ReWNOaVhsQ01uRms3S19acnBrWlN4QW1oTTJpaE80UldQaVBCcmhUU1BzaHdMTF94emJqUzd6UUlQY0pGRkU3SkRDb1RFdTJ2LTd3clhaTjgza3Bmb0dHcHhBZVBpR3diUVpaWnR2TWwtNVFNdHlNTkttM3Fwak9fOS05ZkpFM092c0k3TndYb29IRDk4NTNWR3B1dGFmcXhVRjNJYTVtU0tXZkZ1QkdLbWZtbjJiT041aC1kbnJkX0M3d0tkUU9vYW1MN1hvdVRYSmRnNVZhSmEyUmVTdzdMVVlDU3FBcEYtaVF1dWc5ZE9WX2NrYk9KWmY3Ym56UmdHQUc4VWIyZjBTZXc3dGhoOXF5d3Q1NUl0c21EbktRc1MzMzVKZGdBRE10NEtSeEV6VU40dzkzR1ZKY0JXY05ZcEVaNXp2MVgwMTFxTzlicGhBRWUta01ZMlE0VGh0UktEU2ZHRkVwbUdoM2lyeE03SjlNUjhYWUVEZFZYZkZ0MkZKaHZodmFpaV9aOXdnMEdFR1Zoc25Kdncybm9kMWRaeTMxcnhwZkJJcE1xb1JYQWV1QTRsSUEtejNmWGVkUXhKbUJPSGpudHpSTWRCaERFUDBWMktEai1vT3poaHlPT2U3V1E2eEN6ekJ4eThNcDJSMGt5Xzl2VDZya0hYcFE2TnRWTEJtV29zM2VxdjloRGxYeHR1MDhRSmZXTWxJQXJrUFZZbWU1d0d1c0g0dTJLLXVFLVgzTG91TlFTeDZieUpERTNUblFxTHYzS24tbFNSWG12OHBMamZTNEhpTHJ5YzJ1clliLW1TS2NyQ0hhZHFWZ1V6eU1YS2RGYzJHNE5ZZVJrRXdSeFFHWXVsUUVCWHpfWHNzalNwVm4xR2RWam5pMURwNllKZFlCcG9ZWENYZnp0a19uMXh3MTREUm5oa1FlQlMwZmw1Z3M0OGVkQ0NHVjVZZ0t3WUc5aHh6Q1gxbnpwcThrUDI2TFFvdXRmZmt3T001Z0tyc2NWXzVaVUNPOVJqVlNwQ2lZWHFBUHJFNDNnQUs5M1hEMVlUdGFXQXdSUzhobUlFUEFSLXVtRlB4RlpUcU1jbUtfSHdZYlNjeUxnc2ducXNHTkVWVkxNQm0teGdfSXhUZTJOMHNyMG9jQUFiY3ZMMWhnUnoyd1NDV1UycXk0V05QVDJkWXBuaUpSek1aRkFnQUVrMFhGN0dfaGVBZzlaTWY4TUFOQU1TM0JmckJsTW9YcjJOdGFQUnFxT281eklGUmRBUE5mWlprZWpZRUZ0cHV3ZDAzYms0ZmxuYW1PSWRQRnZjY1pKMmY0MlktQTdtNnl6OVA3Zmk5UjVmRGtRa0YtSDZERVk5bEhUdW5Zc1FuYUhLRVRub0pFMURlT0JoN3ZIUzFnN19objZTQUlzOFdiNGZLTnRzazN0eHdtUUtEc3hodHVhLXJIQjZ1OWM3T2dkdGFBOFc2TkRzSmR2aDRrYm9QdkJ5UXVzWDlkT2FEMjZpNkp2aUlSVVpFbjBaSDhIOXBZeGdYZTh2bERJRW44dFYzVk1WeU9PdWQxYjdDQ0Y5ZnktVG5iZndtamJnQ2Z1aERpVlNGNW9SN1BPLW4tamktR3RBQlc1MGp5R29FYWNrYTMxdjBuZ01uRUY0Q2dfaThXZDRQY0lkdU51VVVGMmh5ajZjamQ3cFV4MW1BM3ZuM01PbDh6QmEyMkhFREhFR0dqOFJES0V2bURWOFNXUXlXbXYwVUVwUkd6dTNta3dkb0lraVpGZDhpRzdvdUhRc0lUSDd1OWZkanJVOXlIUE9vYk9VczFCNFBjSHU0TUpEdk00TFhaUVNKVm5aWGk0R0xQVnlzY3p6YThhYjZlT2VoaGdNRjk2OHZjSjM2bTNkOU1ZcjhXTzhLM0NMcmdFaWdtVk1oQnJZVVFxWUNTQ25jQlNQejJSUW1NQXc2TVBpRHhBNUN5ZnFLa3hVdHBRLUR2MXV4TlVJLUE0WTlwbUlDQUN4QmFzM01lTlJoVVhvVEl1NGt1am14dG5aLUphNDhMWEc5VnY3TWhXckN1YUtyeUREOXNHMktSOW41aDFWU2J2T3VvTE40SnlVMXlEb3FvLXRLSG9iQ3otRnVHTm1uaW84MUpjMmpna193aFBxNHdfcV91NzJfUXVSUmdaUGNCSmNuQndpSGU2ckRwa2ZaMmZRQnU4ME1OcXREVlBhdzZ0MzdSOUdwWklXMmM5dldTSThuN1E4YmppRHktT2N0UFpMbFJ5MjkzSmphMXAzSjFNSHFCVmlIZVdMVmFDUjZOT2gzczh2Z2t6VnFuWTBhNFdKMjJGdXN1Y3lFT1Z4NU1QU3dwNUN6Q05UUHNOcHBFUW0ySElyMmE5ZUlSa3FSSjFkMDV4N2xNeGFpMllEQ09CZWNmdUI4a3NsOU42a1ZfWENVREpFa282eWEtSl9rNGttY1U1Rng5eXZJQ1hrWFdia3YtcDlMcEpXeHFpYUxEbmpFMnRXLWNzTGs4VXdKUTd2bmt0VHBoZ3h3U2VpOXNBS0ZYa2NtMXlwbnNYQ0hBc1p1VnZrNE5IU0ZpcVk5aU9KU29NYllsR1ZTb0VoZXgtbTJ2eFZoMWRERTU2UTZTY1Fsa0VEOGw5Ml9yQm5lNDhXeEpfNHozbG5BbkJRdjhxa1FlQlhCd1RvekdaeHlsQnd1RUFQdk9pbURnM3hlVF82WnNLNlMwOUNyMVg3OTNyTGVZZlZkOFpxNUZiMkY5YlgwMWdfck5mWS1IYkpyeDRYY3F1YzdoVWp3RjAteER1MWVTZkMzNkNvT3U0aV9Xc1JKdFJ4TXdIMzBKTU9YY3NRa3hqbFFJMG00cG5MWEZVMEZpUDd1b2JKTGNiaTVTYWk1OVM5TWRPRXNoWThQT1hNVWJwNm8tZDJaUEI1NlFraHJ0S0lqRUNzOVI0N2lVWXVrM2wwdnFNSzhwT2t1aDVfckxSUDQ0eW1kNUxnQzdsNWk0U0FXVDk4M1RLZkhENDNqSWxJY0xvY0hPR2FJVnBuX1NyYmRSS3d2bDZJV2NtVlBjZ0RPQlJDVzhuQVJ2dTlzOXUyY09XOGNmMUg0OWlMQUM0c0thRHJVVUZDTGdZZ28wOTYxUXVjY0tZU29fc09YN2JlZFRyaVlvNmx0cHdjQzZ5ejZmVEJRWk5KRjQwZkd2cUVNMk5lTzBraFlvbzJDNnZoNldfUXppdkNaTmdaczRGMTZlUTJ0VTdpM2JHM3FUZi11VXNDa2RIQ1dHZUd0amNjZmtmQWRsdk0zdk1ORXRGN2ptRUdNaWZPcUFjZHZ5d2Qxd09GWWpDTjNza0h6OF81bEpMajg5RGJwNlZpUEk5UFVEZUxpWkZGcjh0Vk9jb2Q2dnRzWnRKQ1RhbS15UXliMDBOcHZzVWhCbGxSYXd5ZkFLQTFTcjg1WW1pYWlDU2FieVJfbzktSG1GZV84bXZXV0liUFZaOXJLc1ZSRWdyVzNYTTBlX1dDUXFJUkFYZzI3RmVBSUpBeTFOZDBQOFh1a29ob2d4cll0aDZXN3JGcHl6b3ZzZjFFYUdRMHE2VXFKTmNHLVZiNWhFZnhDX0hGcm15bUZIZzY2aGhPUFlaQ1AxdGlrRnVLOEt1eHN5SklTNmNSc284c0hvWnlDWXJoNGxsMW1vM3VyMHJqVFRPc0hKVUxOUEhnb1pRcFlibUMtS3JqdWdFWVMzNlpSVFdKT19HbEhWeVNMYWM3Z1V6ekFLdzJSMmdNY2l4M2pzMUZvUzg3ZlBRbVN5Mk5wM1IzQkNkdTJuSzBFNlFSUUgwRHZkN1dBM2o1Zks4aVJRRk5MU095RHRGV1VjbTJ4MUhaWUtDUjhkZGRfXzVWb3dpcVdBZTNLM280UHZFUVQtNnQ3d2tpRmpYUzNyVlA2aXFzUlBYVmtRYTBNSlcyZnlwUkFDaUx4ejUyMFJ1MXRSaGVDbHFCVjBCOUpwaVRxZFpJdEVFbkV3OExXLXJ1OWJscGNTSTlTQkZaSE1hREluNnVSSDUtY3pNNkRnNTFXUTU0MnF3ZmdydXJvSGV4ZGxEdGFTNm1tVGxJTjJvZVg1Tnd2azFBaUtKd1EzRDlucWNmTVFCcjhsRmZkblZxYS1Bam8xR3pkeUhHS3BvRVdNTjNEVFkzNGJzanNhR1k4c25XajhrbW1ndEgzdnE4TzBnNm5vRFByd09YVjMwRllrUFlnUjRfb0tHQnVEdFZtNjU1d2Y3N1pkTXh2czUzVmQ5NzZGRVNWdUNSVWFGWmc1bmc3RjVmcHFCMVhIdmE3OVptcHV3UFBUa1dMTWZyREpkOTVGZGZfWS10T2JaSXVfWUszbmNuX3ZkUjh3aXVFcVR6YTJLeXo3OWtaYTA4alVyeTZJZ3NZQUZxcG9kMDFVbC1ZU2ktQzRYRmNIaWRNVkZvT3hnaTM3bllnQ0Yyby0zeHdDeHpqTXF0VVhkcm04cHRQSGczcWNRTXFWMGkyVTg4X2NYNkZ4X2M2VnJUMGVsSEZRR3pCU3hoWl9WLW9vU1N0dDlvX3hlU0NoRUNoNUM1MUE2QUFoNTlxOVVrVkNaZHQtMmpKQ09vNHRfWl9SdGRidzlHeDFLZXNLNnRxcGZ6Y25sMW1vWWd4NllNRFFqaEVPdkxNaWxlRG9MNjROWkdPNGIxMjlaak5IcDFQMHFjS19aSUJMTV9HejRacWFzUzh5OHBfdms0eVgyc19Eb09BRmQwblp6eHI4UzVCYlNpQWlKNlBLaURJX1N0VkgzVG5Hc253eU1GeFA0a0JUYkhzbzZybk9WVzZPSjlseGpjbWs5WVZ0TDE0aHRuUUpCN1pzQUlESWpIdnZoWXgxU0FHZV85clk1RzkwMk9IcW5GOUhRcEVGbXRnTzQ1LWRydnRrWllLczRuNnkySG1LNF9Gd0dRUjk5T2Y5ankxTU1RX2VpYm5kT0luRFN4cGJIQmw5RFZPTUhnVmpwZnRqNE80NEZFVDc4MDgydlRSQzdRd053amc1VldxNTdTZ3lYU1JDaXUzcW9fenVkYzJ3cEE5aHVycUZVOUVkbllMZl8xWVBSQVRnanVIcmxab2lLN3RWR3QzOHdZaVQ1TjdFam8xelZ2bEQ2RnV6eWcyTWxxaWxtSmt4SGpuejQxUjRRZ01nVkF3S3NnQnVNWjgyRXl6ejgxbW5lOWwzU2RzQ1AtYVVuUUd4UFdncGtjMVFzTXpfUjJCRGYwVGw4UnBsQTJrSnpwUHpUOUdNOXh4WjRES0JFTXh5dUEzRVBwTzVWY1R3NEcwSkQ5dnQzd0dneU1JV2tfNUxzeWR6eVFvSmZWR2lXYXFEY2dxYVhkVlloMmFuRzNoeUQ0N1BEQW5MNzJOSkY2VVVuYWpQSUh5Z0pnX1VQWjlPajlPWnVEY3dUSE4tR0ZrbGU2dlVjRmhmSk81Rk16aUxmQ2R6REptOVlHM2p0QmFPOS1IVkVmcmJrWEZEdmhuRkJSdzc0dllvTUtRQzdFekdvRl9DcWtNQUZSR08ycVdmRnZ3dU0zZ1dLSUd1VGQyZ3FfWmdPZEItZnhtZDNWc0NkaDU0Rko4cTJtMXF1dGVLQjVrQktZYkxFb2F1eDJIb3JQUEdEVWlUdmNTQ1o5czB5SnF4Qm8xRVJRTGJvYWpxSHp2bnRhLXhCNGdWYTJidmNOS3dYSktOTWJETy1tMUtMTmlpYXZCOWFCMFpsaWRGbmJyRkU2dkhWdTd2RC10SEFHRmhxZ3hWR1ZqVXlRVFFyMHE4UlFKcVJxZDc5dkVldkowQU5DVk5CN0h0azdOVV9ObElhY1J3SUg0ZEt2WlhjVlVPMzM5SlFUNGxURy0wb0h6Y1ZwY1llQ1NuRFllb2lfTHVnNHJLcEVkdmlCV3NTRU5JTGtwQUFRM2V6RDVYLXhGdXZjWUVHRkdsMm11eWZBay1PcW5sYnhDV1ZuVFM0ZHZjVVpQRHhxMXQtNFlkX0FfUHRCVDZhcUJyWGtyZ0Z0dGZyNDJySWg1R2JsbDBRVWZ3WjlLdTRQejc5bHFKcUNNbnpLZzlic3ZJa0g1ZkJlRnZZV2Ytald5c0s1Z1UxSzRnQzJWby0xM2wtem9yTk1SaXBvQ0REWHRkZllpZUxzQnc2b1ZuZ2ZrWDdaU09UVUFLSkNaTkFocHp0UWpNdFdfVlhleVRyTm9lbDBqR2d2cXZNSDlKb3JsUDBPWWJYLU1LS2ZVb3RzWkljc2xvTVYxRDFuZ3NFNk40eERFMk1rVUZJdlNUY0RtLWFIRFZEb29kWmVCbHlWMUZIVjduQ1FZV3V1LWU1Tk8wMnlJc2J6UjRkSVV3WlJaNlJIREdiMzRydHdPSVFsRldBelRCX25nczNHaFdnM3pqd0swYk1FWGc3OFZlRzJtZmtrWWVZZzdZN09EM3pMSDRaTGJLWk1ha2dxRmNodEJ3eHdzdHNPWERyWVJXU1dOQm1DaUxHNHlyeFlQU3NnSWJkdHVVN2NxUUZvYlBQVTB2RUdfeVJFSTMxaS05WmJRaHB0cmhJdlNaVGh5QzlSV29EV1IzenpaVmNWRzM5LVNwR0NzR3RldE1TUDBHOU9rdW9pc2VDODFna3BuS1dkRE93dVg4ZktVeHVEZHRtQm5DMmJjVHpkU3oyODlCR3FKb0RBeDNhbks0UzViMi1rWDdJZXhzSHVXeFdBbGNKUkpsOHRORHg5R0tObFZYc0RVLUtFWXo4bUxaa2c3U2UxV1JQOTRnQ3lQUzBrbVphX01oYV9WbnNBOE9YRDZjWG5LRmhCSE5fRnZkNU00VWJuQzNHcWptQ0M5OWFVWTBFSkFHeVlkR1I3cWZkRWxrUjNwUHlSTmhoc0MtQjZwaGFTX2pTMEVxYzNrSkw0U0tVcEktXzFUbDV1Q2tjRzRTNngyNllGVmVYbWRvQ1ctZ01KODFQalg2c0d5YTdBTnRRWHQxekw1NFFtNXZnSHQyRlhldE5BQWh5VG1yN0I0QUZyMG1YcTJtcDVEcnhWRzFJSWV4V3FpQjI1MVBKSnFkeWlHcFRMSDVTQ1RDNkoxSkR6RjBtZ0VwdFI3UjlsSjlXRjdSRFJkT19VVDc0dTBQTmRvUDlLYld6aXFlRHZxcmhxWkVHNzBXN3VteHRlZTk0YXVIbjZLQTRiMlNURHp0VFc2N3B2M3RBam55d2djM2ZfZ2xVLTBjUjFtM0pfdHVGZEdEdE45QUgtVTJaelkwNFdlNVpqSC1MX0d5bElYWTU3eFRvWFhORG9RZzk4b3B6aHh6YktMNlVoamJ1V0luSlJ3YkRsR1hZN3BQZlNYVktKVW9KMzQ2eEVqSnVLdFpsWkU5V0F6bXhTSlctOFV4eG9mODJfZlNKc0l6X3FTRDNJOEl3X1lNaUlRVnlLS2xUa3JTZ1JnSi1DbHNuOTBHeDZuV2V3RHVlNzhlR09jZzgzZzY2UjFFNlJHMXdjbU9XandYVlVxU29ZWDI4RHZ0cmxkZDZjak1XaUxUN21VaUE5OE5LSjBJNEpRaktSamgzVU9mRENsT3RRZTdLMjloNjlUOEtSZVcwekdqVE9oR283UnpJSjN6T3o4Um83R3NwaVdDbTVZX1QtQjZ3RjRQQzJRT3pPekwzUjEtY3VrT09EOHVmRVozdVEyZmVobjBPMjB2WFdZTGp4WFJqQk9GdWlVY1FSQ0Y3bXRqcTE5WlpxbFQ3TTF6bVJOUHZad3p0U005bzZSOVA1c3NvZGQ0aEVpMW1OT0x1SXNLRVFQVTFHUE41RzVhSUl6anppVHpxUC1kZXJOV3doeDhxMV9Gbmpxd2paUHNubkM1NF84bWRKcG9CTDFzRVctS1AtM016YUE5UWJ5MEdhWHNMSlRqaFZOclV5TEF0cDU1WVh3TlJDcFJCdnZJdnpQM1gtVk1LdWxxdHVVNldfNTBjQlRKNVNBbmZEWXdqTmVpVWVKb1AzVmlyN21lLXdXQllGTV93OGlhLTRvU3RyYkpKUUZ3RDdfYXdqVHBJSXZNOHdWWTRxVW81LXlVeGx5bGI1T3hkVzRaUHN0d0d1emZQSjhxUkJmVklCcUg3SzVhMlJCV1F5c1htaEpMMGdkVlpEVE5helBSQl83RG53bFNQTVZRQ0pYeXdodnpoUFZEdU51UlRPRGFMUmVIWnJ0dmltc3NQZ1VWODlNRGh3ZHBxUHB1bzBUWjNxTmdkQk9JYXd3Z1RsRHVScE1tUk9ZSFdhNE1wR0V4ZWwxTnZjdTZ3M0ItNldmOWc0VFk4Uy1oZDhMbHZxTi1YcU5wWG9kYnJadGNtQ3JSVjVjQlU4TXlpdGhxdHhXSUI5ZmwwXzVJQjVRZ2I1cVNqVFFxZ2R0SmNnb04wN1JaeUtYN0dSVmNrWl9QMG1nMlExaDRfYWJxZk4weFZkeWhSMWdFXzEzeW1Xd0o4ZmpSV3RBUkp3TkJwNGJYNGdaOWVRNGc2SlMyd2VjeHFkUDB5bGNfencyWF9xOGdQSFlQVWZKb3R1eWlWdVo4Z3RHeVJkc05IenZUS3I5RDNnbFc1aDdXZ3pWWFpvZms5UnRmZUhWY1N3UUNWY0EtTHRwbXNGS0FnTHRRNEl2aWt2d2dQUDJJYmVIeEdOdE81bHdwSUg0SGxPdWl2a1ZESE9uVzJPcXpteElsVktCZjhXeUtTTDF0Y3FaLVpJT2hpQ1VaNGN5SnRTRXV5bi04VHBYWmtVLXBXUU1aSmhFUzdoNWdheFV5SmNTLWJYTkRnZlRDSFZqdU9md3o1eVFqZ1dGWHFHME1xaFZPUXRDel82aWZSQk02dXZqMGdTNVBoRHVpTmY5SmVUdV9Wb3VHYzNaSFJSVnpjeHZQLTlpWWFVQ3JVVXRESGE1OFA5MzlZd05XcUZSZ0NmQXh5anNzZ1FSYy1ybi16YnU3OUhxc3U5RTBYS0F6bl9HWG1MV1RSaTBtOGZvelpaTDNaNG5pcTFuVTJibHd3Z2Q4MXF3NDhBOWZER2pQVEVtd1dJbUowY0lTb2J1Mm5qeXVjUDljY2tRRDBVaFN0Q3l3c1NoU0NFekM4Zy1YekZtNVE5WmRkdkM4dzRpampLT3ROSlNxREUyVHZiTW5rTEFLMkp4X0ZrTEZYSF9ybzR4VTJEbkxjak5xUGFWZHNad1NQUFdkRnEwOHFXNV9zUjJGVFpqRUZYRlZWdFV0bUZRZGR0Q3kxX1BhQV9IOWFJQmR0TWZZMEUxeUxvbjZndEdCR09Fbmdxb2NNdjZrMTc3Z2YyR2RpT1RrLVRWR2ZZdEJkek9QZ0FhazJ6aURSYm9qMmRKeDhPQXhMQjhCdVh1X2g0Rm1sOTI1ODZKOTZFNXNDaDVKemFHQ2hrYUtFUWd2UWstTzFaeTJnYkQ3MnppSEhHbldfMnFOMWk2dmQwQk9OQ1ZfOWlrZU5EU0xCbmc3eXdBbGhVeDg1RjlUb1FIVGNuLWlVandFbFQ2TTBOelFRX2ZpdHBoWk1HOXpzTWRFVUF3M3Yyc1RmWGQtTU5ldUVaN3RMVmp3bFZSeGxyS3hqTWNrY3NqcjJ6ZVpaWUdfcUphR0NHS3dzVV9vdjlPYVRKay1RMmVHS0lmNlV2T0NITG5EeVNiay1UM1ZZY3VYWnRQV0pqNE9XRkE3bldJSGdqcURoMFEtN0JJeVowcWNWdF9nNGdOWURzWHFKSGJlYll3bF9rdXRwWFZfYzBqQXJUYjFZX2VLVGJGOURnTjNTT0xaaXJIdU1xRFJFR0NGUmhkZXRGNy14aUFsQlFZeWlFdDhzM1liQm5iQW9adEhFUm5nMHBGRC13dS1tUEx3bS1HUUZLcWNTUEJqNkFFaWVMdXFUWkVvampOTzY0V2xhQm9ha2QxX1l0ZjJvTEZ4WWgzRDQ2QkpfQ2Z4VERGdTB4Q2oxYmNMWkJPTXc4THpXcTlpa1VkYUtIV1JYMGNrSVNRemVsNllBS1lnLVVLeEktM2hUb201UnZIdzFIOTUxLThndnp6ZFhUalJFQ2JwMEpGYW5vMklSMVNmRlpYNlJBaFIxYU43V3RxcVdjaEhxcHh3clBDaUxwN3NkbXFtWEs0OVZ0UEhYWVBHbGhqcFlKOVEtU05jUTdxMlV6QktUd3ZrM1BMcGlyLTJCRnd6WUpJcXRCeTFlWjRHVVF5SWxJMm10MkNLbTFaZ2dSU1ZtbTRoankyVGN1VUtOd2s0NFNTVFRlekdQWlZGak9wUWJUcERaZks3ZEpxZHJYSjV2c3l5VDViZHNGcFdPbm5kQnl1LWZfSk40ekhnTHRFOGNpemFLOEJmVzFyRkJHWFJTeTgtRXJyR1I2bVRtMGlWakNaX19hd0poVHNpd3h5eG5uWWtJTjI3Y25iV3hrQTI1cnoxY1JKdG5lTDRzOHZpUWN4VWdLak5UTW03TmFyY1NrdDBIZkp6bVZZd2E1aGFrTWdrZVJXMmV4dDllbEVQeWt5ZzdWQklOdV9INjlFMFRidmk2Nk1nbVlLZU9YWkxnei1YeEp2QzRPWENaeVpNUlUtdk4wU29wRUd5OFJfVndJbkxrRktyUndwenVyNk5BbnppcTJBZ2hxMUR2dHc3YllfdTd4VDdlUG5SYms5YXMtNEF0M3d6SXRuX2JmLUw0T001ZWxpRjFhWDFBNlFlNmJ4cG4zMzNWSlRJbDZ5a0MyTnZ5VEVMclN3U2o3Z3NpN3ZER3VqRy0xOHQ2OV9QY1VKV0pmVHRwZDhUOXhXeVl4eG5kRmlYYWhhOHUweHR3NEhUYU9RYjdJTDNnenBtekNIZHNiNDNqaHNhYm1LOEw3amtZeS1NVVRkcnRVREVfLW9HbUs2WFc3SC1mSmNIZnI4SFJaa19Za1pWRTNYODRtQ1hBSEhjUWJISmdjaGNNODJJZEtrZnZObVB4TFpubVR5TndGWDZwVTBWWjAzeFpzMEE5cTEteFdTcW9BWjdPZFlsZ2ZBQkQtNy1KaEM1LWk2QjI4d0thQVJoQ3kxQ0hrX2dsNm5jLUpYS3JMYi04MUVnOUVjWmxpaEhCcGtuV0l0djE2YnBlcXllTGdZMVoxdDRkT1FKVGE2d3lvZ0ZDZFA4QjJsSlR3R3dlWUZUQlJvajlkNHVPWjJNeVRRVG5nd0lVS0pxRVA0emtXTlV5bUtQRzRiLWlDRXZGMVFQSFpSbjk5dHl3R2txSEJYTjJ2UjN2dW8td1BDTnJYdmxTbTVCTFBjRk12NjVQUVM2WFQxek9YcHZCNHA3SUYwMHhnaG9VbXo2TDNVY0R2c0I5M2RtSmMteGYySnNwWTVBMHExZkpVRUx5N0ZaeHRUU1dhc0hReGFRSXJIVXNfSlZyWVZnNVV6NXdIa0NNbnlCVkl2eEdYYlpyamFnTk5WYkFYUDdRZUozX3BEcElrUmwzZTBMMjRVTjRRYng3NDB4STBpVU1nRWR0a042V19CYXBVMDE2Y0N1M3pCTXYwcDBack1oeDNtaVhIXzBGRHBuam9XMVRhR3NRY1FQQ3d6allqRm95VEhvWGFNRnBzdmNvTmJhQTZlekZTUUlEM3RGazlYUU5EQ3NwWGdLcVhXVFEzNFF1cXJmSlAxUFFvS3F6ZTgyRjJNMHVpS0c0V1lWLURMV1ctY2NHLVlsMlFSQ1RPTzJ5QjVLN0tDWkpYSERSMkJmZ0w2d0tfZEZCemRPYUV3RG1jZFNxRmNCV05TNDlWRUJZLW5FYlBFN0ZPRl84QlhIMWJsMVg5RU5vcVkzX0JYd1U5aHpiMDRxclJBdFZIQ0x4Z0pseUpqRDFPbENydlluV2phaW5Kcll2U0lIa09TeUNyc08xM3hfV3RVeDFOMTFGRjJ5TjRtQWdQRDMzMnNPUllBWm1pRHFXWV9mNG5hazhEYlFnVEVoOW1JZGlOX3g1c3Q2RlZQTkdnTmI2UWtzd1RWTVA1TXBWeXl6VzhZNlhkQ2hLQjBOeE9wb0cwdDBrWk9iZzR1U25vNFJZZkdET3F6MExmcTJMRnJEOG9yMHhJVGFTeVlxSUVKVkEyR0t5cHZCWC1tOWc2VTZKYy1oQTUwSTVjMmpyWWs1M05hdW1kRWIyd1lCa1Qzck84emQ2bWdSY3VfeG42NzYxcnMwZGs0QVpkWi1DelJmekdmdWNRREcxOEpobzZvMzEzaWFBc3QyMnIyOUxIMUR0QUZJbVdqbnF4cnE2b1JwRm9ldHUtV21lMnFhVVBJQkdKd1lHTXRpaXpMVHl2YUgwWGFGc0V5d25RcFg3cDlScV9kb0VEbEdUOE04blIzNnNKRDBCeEd3UHc2NVRzNWhrSkVyWWF0T3VDcEFzcjh0U3B3Rk9tMm5TaXU0RVlWVFNWbURfTC1sUnY0Ql83ZEpSZGpiQ0cyN092aUlKRVZ3VlpyT1lNZDhvTE10aTlGVmtjNk83RGNLZE9BTURLcnV3Ui1MdllTdWh3OWhNeGhDQTI3WThQX1lqWjJhX3JZS1dXZ3Z0dlVvYTNPakRnc210RWNWM2dqV2U2a0dsOXpXMTNqeldFRTU5RElBNVZhUWd3RzFHSXVCbEZaeTZOaGZweVhrczRrUEpKbUY1aTJCeGI4RXJwVlBvQ1dsSktYaF92ejNPMFZ1X0lzUUtvM3hlUVprVWttTjE0X1NJdlFqY05Iemt3V2FyNkF4d1dCODhGbmZONnhvUXFPb0J5MG1seG1pME96ZGFva0R2aVR6VDlKeUhNRlhzQ0VOOHBGNERuQjhlVGJhSGlqaWczRlJXZWlmVEkyUHhOdVBQcE1RczFndi1rZ3ZZZHpSbkhRN2U5NGxPNV8wV1lZWkJGZWtBVjdWT0xTVUxMbjFidi1KYXd0Y3piWngxN293ZWVfUDFVWF9DYTRHSWRrYlpiOGp4WWtXLXY2WEswUUJIMEF3Tkx1czZ4X2tDU0V1YmJDZ2lCOEN2RDZTeE5fTjFOMFdYZ2IxNk45aWtfd1RQZ2haZmUwS2p6R3diQkRtZlVKM3dSWFlWQzRsZkNwUWt3bmFacGpWRU9PZ3pWak1Wbm5BSWNJQWhYN3hkZnVpdWZiRTZZZVJnN0NrbkVGU2RIYVlLdDdXX2x1bTNSN0RCZUREZDBzUE1NMWhnX3FVNE5CXzJxLTZxOTZISWFSSWRkM3pySXVDdGJsR2lLck9ibHBDSXFPazNXZ25DSi1aYktGZmpFT1Q2QVQxS3BrODcyUW53LVlmLThxMk5YTHN6SjlFLVFrQl82anVTTHRYc2NPNW1QWlVVdG9YSUMtWC1LaWc5VkpkTktLei1DbEV6eENOdjBLTXNwX3NfRHQ0VS1lOUNnWmNQYndMMzJOd2NCblh1cDZkemxWR1VtWUpTY1hwUkNUMldlTnN0QlFwYXdjSmVzRmNWMUtrU1doMnB3Wk0zc2dEZHF2NVJaYXdURF9OVE8tLThrTkF6MnNhWlduZzRmS0tUbmduSXVuZ1pIaGRtYkJMa09Mb05KaDFjS25haG5QZDJnTWVZYnZMeXE4MjRuSS1jb01kcXJXV295UFEwUUtjcVMwZmhIZk5HN2NsTV9wZUlPYmo3LWYtbDdhQ0hTclBMU2RmdlBNSms2MldTdTdnUHl0TDBEcVc4bnVEZ0dOcldDVnJqX2gzQ29wUWVmMlhiVmZULU5PTlh5bWFLUElKT3lYT01JNk02cnJjMS1sSi14T3ZsREtUZmxfZXNTSGZMa3NXczZBOGhzeXlIQ0RIbjIxbmpHeEQxWHloUkl2YjV2UENDVTZ6OWVIYjdnWnh1cl84QVVNRENiemQ4R3BNalVkY0tBYnBLYzk4U1UzOFJPcjk0TnlyQWt6dUdrY3laTTVYckVUbWdncGh5eDJ1ZXB0YmUwdURUcmdkWF9yWWlicEI5WXB6MHBreWN0Umtlcm5wSzRiRFhseGRfQ0ZIX0hFNHllT0NRU2trWnRjeHlzSHppYUtGeHRMc2ZOYmYzNk5vSF85eURhUDNjSGp5ZVZqVng5emM0TEF6S3NFbUROeGpaZE9VeDFvU3ZuWnlXSG1GaDdsZmI2WFpqd2N3VU9iZkRmLVZKVW9kRjdMRWV0SVdzNEZlOTZ0a25ZOC04NWtaR1FSbmRFSnVadDJhOWwtTW5Pc2czbWg1ZF9KS0VEVG5qcDJmUkpjc3RWTzBVd2JDOS16aHZhVnRMNHd4WW1FZUd2TkFjbzB2Tjd4a01adzdWWXczS3FaX3VKS3ltRjBaeTgyU0phMUZTZ0dhVUF2bm1wZ2xlRVJ3NFlMdUVBcnBNVF9sRFVvODEwRnNUUG5QdFNicDd1V3ZFcGJnWWI3SnRMWWtJeVRBRXhpVGNTNndlMk5YVEJrVmVNWmh1OGpJNzZZTV85VW5PYWVZMzRabml5X1Q0NXJiVHFUYS1NU1ZpYlZOcXZfVm5XR1laRUN4ZnVTVlkwM1lVZ25CSDZHdTBUSUlsUG9Pc2YtNE1aS3AxYnB5dTZ1Nmx6YlVDeHRSbTVzOWJnaG9aTFBQRENmOWFyLWNpaDVDLVk4bER6Y2JqWTNmbTVZeVBtTHkzQ2Z4bU85UGRyUFAxQTV2THhXeGhkNkZzbDVEYTJ4emZ5MlVMZDZRUGlSVGUyR3VfY3dxUzlKQUFBNlVYbzRlRzZlUWNaaWh3TnRaeUJZd09obkx0c2FTUk5veHN1YWNKa2EzNmNJc3Uta0JpSlNMVUROdHJvd3EwdkRxZHNXM0lhSWV0SVIya3gtdW96ZVBsZjRGVUxHUkxmUVp6LTAwZ2lyOVAxTmVWbi1KcV9JdjlZTkdvNUlKNXNiaU5nQnduSHVGNmJHXzdHT2Z3SWZxOTUxajdGNG0zZlNoSU84Q1JLLThHcFIyR2hGbFpKdkxMbnF6cVVadUJsUFFGVVZIcTRKcnQ1RUFYZWFQSVJzVWpBVEQ2UWJpM3pBRXJZT2xjejA4UmdWUjhTOWs5bk8wQTZ5VF9xRHA4VkhiS3BVeFlGODl3LTB1b000VVY3djh3c28zMVgzbXZkajVOc3FTR1dEU3lJa1g0dXoyeTlNZjc1TXA5RnR5b1VoajkycG80eWZleElvckdkSDI2T2xyX1ozc1FlZjhzcEZIcGtzZkpCSmdSV1YyWlVfTU9PVm1ybWtlQXU0N0VSMnFZQWVkZDhJeDAtUXA0NkZSX3NXUkZNTW5SUE4zU3JRLTdiQ3dsd1QxYjJkTHZkemdPS2xLaHk4amR4dXFoZnFxVWhYV3BzUkthS1V4UVFlOGNzRlZFYzIwWTZJa1V4Y2ZTTXhpeFFyZnhVTDc4UjRNMU5wcEpURk1lRUJVb0doSFRxLTh0TC1ma0ZBaUZEaUNDWl80d0wxdzN0YWd1bjV5bFNBRUpqaGVxMVB0bTdJRnhDLTAzbXk2eThSeVp3VG9BbE1tNHRXWEVhcnRxSWJfbnNzTU42dmh5QTJjSGRVeFI2VU9fODBMNWx2MHhPZll0RDI3cGpIZWNqbUgyX0VBSW1NNHBhZWl1NEhCLUp0X1dRakNYV3VlNDh3REctYzRDS2VjR0pxSml5Rm81MDdMRjE2bm9uM19lTWFNRUZjQTlDaEkwX0FyWlNCU19nY0RRcmVXcDlaWlNSV0xnc1JPRTVFMU9PdnFoTU5GMG9ZU0tEcUw3UHYzX3V6X1drRi1Qc3RBWFMzUDI0amhBN0hEcFp5d2R6OVdtNXhFY0V3X1lpZFlQQm1XYUVWLWJhcGZNcTJaU2RaMkY5bEhuaG9WcDdPb3lrZjZUVUQ5RzBtcXo0VGRjRU9kM1ROWi0tVmtfcjRkU0E5UllFMkxpWWMycjlReWJOdkZyRTFJYWt2cXhGTVZEN01ZVDRXeWlXTkJhWGJXZUltRldzU0NwVmFHbXh1Rmw1dzh2dTQ4NTVHNlBvZHV2UWxSV1dlbl9yVUFmTkFhaTZsRDhXTThQTUxWZ3RURUdueW1NNGwtTnFSa3RFajNCWEVRS1ZPZC0xWnBESUduN3RKN0FRZzQxMXVHOTRqR29ETjdXd1k4NGJBZFV4QVVycGxDSE9FM1huTXBsNFBhMHpUbE1XZHRHY3Z1djd3NkdINlcyRVFQQkk1OVhyNHE5M1RJa3V0MHJrVF9PNks0WGJicmlZQjFOb0NJMlRZbjQ3ekJNb21BQVFNUTRLc1RKS2E3UlJIRFhWZWhHb3hGZHpSdTdxT1NObUdNTDZKbXRhSTVyTTgxallQRS1QaWJuaDlQMWt0TUhqMjZzRzFaM1Z1YldWSnhVSkRaVVZnM202aTdyRHhrcmVaT1g2S0RPdjV4Qkw5c2dTUDVZVzFOcmx2TThjTzJvdnhEV1JrVHZDbGtHTGh1VDdlMm9ZZzlOcWZXZFU0Z3lhc0VnUDhPM1lVQUtLX3RNdVJpbGMzVkFuVU84eTBIRFlIQVFqRXJUcHBxcVFYcTBfU0R2WkJqYjhxbUhWNmpqbDIyVmdHN0FBTnZTUk5WaXJuQ3ZROS0zWTdaR2NsNjhLcEhka19nRElRNWNXRGVmNWdzNGg3eHRxaDg1TnpubjJSeGx1dnFXcG9fNWJVR0pPTmZfRlJta3dUeFc4MFQtVzZwSVRVTkZjMXR3RWRUNFJjSG5XRjBqa0xFQ0hpWnNaM1NwTFJOUVIwSXNBT1BmZkp2cTRmbEt3QlJsOEZMbFpEYXN0ang3eldsZlNoNElJdHJaaUNwWno3S3I3QnYtYU1xMXVKZlR5aUZnZEw3ZU1OUjc3cERPcGk5MjhjTlVQRzBDbklhMnlRdFl5TWhrOVk5cE5tTFU2d0ZSNGVTRTJrcXN6ZXdTZnJSUGVwaUtaYlNKTC1RbUpHN284VlA0bWlYY2xzcjRlZEFERHloOUNRQ20zNUxLNVVYd0NrdGU4UlFXZmpRbWx2V0I3Ym9aR29ra3JFanVQQlJuLVE4QjZhLWRjUWNhWUpkMWlFTHJTT29xLTZNUkFHbWFWa1RxaGtHMFh6d0o1RjZQdVN1d1FEdWtZUzN6NVloYmlWMUhrOFU2MHNscnVZZ2NJbHdPN3BWUW82enZXYWJLaFZqM3d1cE9XYnc4dExBZVJQc2h3a0JGSUtjSXVpSXlOM1RIa2NDcFZsQVlSazh3SGpWbUtzWG83RGY5UUhxbF9MYUh3dWdmVFpCdmlEZ1ExckliZ0hVc0NHemFwbkw0RlJ0Um42WGoyanNqTVNjRFluaGZtcWREb2h1Mm1EUk84Z25QRV90SWwyM0lveUxqRXg1MkQ2T2lSdUVpTW9nWExHVGhKOEtFZUg1YzlfZ1dMY29CVkhWd0gzTjZTaUV2QXEzZXhBQVhUVFVtLVk3S2E3MFVwMnc5VDdQZE56Y3VWZ1FYSWpGNVhOaUljRlBLN1lmN1BBZVJmMHhISmJJc0tpWmdoQ0w4allOdUNvazBjRDJ6ZUY5b1E4eU9JSnRTSnM4dmtiakNLRWh5MThvMzFfQVZaVFU3XzJRc0tHckxKaGdRLTJGUDhOVGtjRU5MSjBoVTdfbzV3TW1teE82SWxHamswUXhyZk9RSEIwVkI3blR1UDJXd0p2Vkg4ai1ET2l5bmRlWkdpSHQyNDlkd1FxTjh5YzBJUFdoX2JsY1BmaTdwTi16U0F1ZUY4LjgwbGlzdlZWenFrc1hXb3BrdHVMOFVQWVZVTkplb3h3VU1mSkVUWWNiUjQ" + }, + "StatusCode": 409, + "ResponseHeaders": { + "Cache-Control": "no-cache", + "Content-Length": "654", + "Content-Type": "application/json; charset=utf-8", + "Date": "Wed, 29 Jun 2022 20:50:09 GMT", + "Expires": "-1", + "Pragma": "no-cache", + "Strict-Transport-Security": "max-age=31536000;includeSubDomains", + "X-Content-Type-Options": "nosniff", + "x-ms-keyvault-network-info": "conn_type=Ipv4;addr=24.17.201.78;act_addr_fam=InterNetwork;", + "x-ms-keyvault-region": "eastus", + "x-ms-keyvault-service-version": "1.9.444.2", + "x-ms-request-id": "f44439e9-1f7e-4ba5-9daa-d502ca3a379e" + }, + "ResponseBody": { + "error": { + "code": "Conflict", + "message": "There was a conflict restoring the certificate \u0027https://fakevault/certificates/cert1387819847/f4c141ebdc8f410f89b9d47f8fd7e7f1\u0027. This can happen if either: a second certificate with the same name was created after the first certificate was deleted; thus trying to restore a certificate whose name is already in use. To fix this, rename the second certificate to something else so that the restore works. The second probable cause of this exception is when multiple operations are performed in parallel against the certificate. To avoid this error, perform operations against a certificate in a sequential manner." + } + } + }, + { + "RequestUri": "https://fakevault/certificates/restore?api-version=7.3", + "RequestMethod": "POST", + "RequestHeaders": { + "Accept": "application/json", + "Accept-Encoding": "gzip", + "Authorization": "Sanitized", + "Content-Length": "44263", + "Content-Type": "application/json", + "User-Agent": "azsdk-go-azcertificates/v0.5.0 (go1.18; linux)" + }, + "RequestBody": { + "value": "JkF6dXJlS2V5VmF1bHRLZXlCYWNrdXBWMS5taWNyb3NvZnQuY29tZXlKcmFXUWlPaUkwTXpnMVlqQTNZaTFrTlRRM0xUUXlaVFV0WVdVNVpTMDJNVEJrWXpNNVpHWmhaamdpTENKaGJHY2lPaUpTVTBFdFQwRkZVQzB5TlRZaUxDSmxibU1pT2lKQk1qVTJRMEpETFVoVE5URXlJbjAuUmc3WXNKbEx6WDVLQXN5WUdFLUIwaTAyLWNMblFuQm1hbHQyOUM4cXNfb1FNaHhVbEFIclR6VHFIR1UwRmRCSVV5VzVHOXJpa1NBM3lMby1Ec3gwQzE4MFcwV3hyMkNwMVNEY2R1SUJtWVVJVmViVVUtZ1RQZDR1WW1EdHBTcHgxbmlweEItWWZwdmtDR29jamx1QjUtZTFZM184RUhtc0FvSFlLc01jc0FjakRzZmxRR01SWndhdjhzd1NMd0E0Mm4wa0o1VXdFMmZkMkxVa0FNdWdGSVAwWmVuRi0ybEt1dVZWZmVPRjY4SkZUaWtWM3VxYm5Hb2x5LTRDSFRHUWdRSnRKUFp0UkVKdkw5eC1LT3Rmc3R3eVduZ0lQdkFFMGxNWUNyUE9vdWluZ0RtbmtyTFpqY2FfV1hGOFVRcTR6UVBoQ2RjWVJYQzRMTVlCSlV1emtBLllpOTdYUDdBZktzWWdaTnZiU3RxUmcuYWloeF9LVkNCMENmaFdnS2R2eHVKTmI2Q3NKYUJqcHhJZGpMd3RUZmRLcjlfeXFNcUtUX1p4a05LNVV4WjZzeF9XY1JVLU1jM2VZSEpNMGtZelZjNERLSmFFeXhKUWFlek1HbkRqdEJDZnpRSFBON2JSTnY4NVo1X2V2VHI2QjU5M0ZpZ2xac0taNGtTUGdzdm4tMlp5ZnU2TVJLaHUwNTA3T0YxdzZPblo5Z3FoV3BiSVFrUTBFa0hJdW1WeW9CcmZPdUtXdndadGY3NS0zVXlkVnVIQnVKMEY5VXFOSUQwSE1Ucmd0d3E1Xy1LWS14RDdfakk2MHpUYi13UUVoODZtSWVuR2w3ZFRVZ2lOaUx2WTN2WEVxNWpyR1lLbERfZ2I2WGhMeGpfbW16eEZiNmhXRFY0YkIydDZ4QnBaWUxldVRuNGhYNE9yNlpsSXIyTVBldWFpcW9xdWk3bFBEZDBFeGZsRVBxTDVSWF9OMXQ5YXVVWFJjNGhmaUU3VklkZ3NQaEFTRTN6VHBxakMwUVBVUVpXeGdNY09tN1BTb0sybHNWMTFYRDcyeFRiSnZ6T2FwalF3UU9rMGkyT1RxX3RYWDRhbnlOR3FuZnVrNTFqTXVoakxMYllhczZsQlJERERrYmw1Z0xpZ29PWVQ2bjhFc1doVHl4bFlLYVVYcDlNN1p1NjZzVHdUTVBEMk5TcU91MEhfVWdsUUJnUDRzYWctel83azAzUnJfUF8xdEk3NERZdVgzX3VrdjU3VjNxOEdXbGdOZVRmRmhUWGRWNDk2dEVKNVNzR0V6Sjh2WEl2TWlwM0pXNzZWdmRuV3dtZTFqTFc2c21RcnFzTVN0a0VHandWSWFqS2g2TGNIbE9iemR1dDMxSE9UZWNIbElBYkpHQjRqT2NvUVkzMzExd3R2bnpTSG5TVm0tNGxvRjVKLURrdnVrdzlXaktnWDY4QTJIcTUtSWtYRHdrb2dHYVA3N3o3U0Y2akxvQ2l6UnEtT2paS29nd045R3dYT2lNZ3g0N3FxWVN5ZDFkd0hXRHdKTHVycjFJQ0lEaWVrTUhYMWdmM2xncVVncnFSc3h1RnpxOHJ2LXNkeDlMbFBLMUNVQ2JGNU9jakFyTkpzdTkzaFQzUWhkWURoQ214c2VjTE5LVGdrcjI3M3gzcjZLS2Z1d2hWa1BTTFRYYVFCUlBLRXhkaXVoYU9raUlpMkdMT3VzSXJPcWJpQWF5eWhjUS12M0tlVXVwOVRjcUlNOC1qUS1OczhJUE4xU2pfM3BHUGMzdE9BUGtORnIzb3VGR3h6OGxjUFFOSVI4RG9iNy0wWnlHRG55MEM2b1BOR3BLNHczZWJQdVlGTVY1NTl5Y2hxQ29YTVV3WGRNaG91UFh5eGlVYWlnTFBsS21LbFgzN3pHOGMwVlRIdVRNcXY1dUI1Z3hMZk92M01ESVZHUkQzS2VkVlFvTzVXazA3ckhGR19YRm82ZUxWXy1GdlpsdlNOSGFoX1BfQkNGTDBoUl9iUDJLdk5ZcExEYWdMZHZFMW9NV2xCMjMzb1VPNjZUNk1tb3RmWFQ4RlhSb0h2UUp1eEthdDFFMkFqdVlfVk1uRzdfN24wUndUaG01WVRXRTBhOUliaDFTMjdaWnVuZmZuVExaZ2gzSlFpZ3BoQVh5Snp1bWtPWEdMdEhidXU4LVk2SkMyMXYzVW16VURqeFQ1TW5ONFg5ZkhxVUdreU83TnN3S0NNam5laXpWd3dJaEFLWnp3bkpBNFpzSnQwa1N6TC10ZzJLc0MxTEYzYnZtOUNvRm9XUjVFMzloanV0TEJsM010d2l3Rmt5VW1JLUNvOEVhcFNMZTlhMzduM1VLYVB4V1FvdGhrdlRIRnUyVEFQQ1pvVm1UeDF4NEtrdlhQN1dhM3VFSHU5eEpBZGw2MzVSem5vdUlUcHByYjUwOVR3eE41UTZCaU4taE5EQlpPUU5xMlo0cnZyNnFranpaSXlSbHpJUTIyUXZ0dDFiTTIyTnRZRHVXZEVOMFFVWERwZXNNX3FOdGRnS2EycmNYUlpUVVpFMFdPWVA3S3kweVE3ZHB5YTFtOXVWVUJ0dXpmRTV1NEdNd0dMckNDNGlIbzRuZ1lxLWF3SlpjcEdKRG5lUHMzLVFXWHRXWjd5TmNVdDFZbVh0Njhta2l4T3I1S2dGYTFHMnBFb21XbHJvcklLazZkQUQ4UVdsMEpzSFB3RGh4dE5BVXJfRTd2VmotV25LVlNlNWNsSUV0bjdTVXlxNENpcFNXMGo4VENjQWJuSVdDYXB0NXBrNm9CTEtxWHRqbUdEN2NLRzNlZ3NEWk1IRi13UU1FNE5SSkExMVdFYkVTdzZnNjRGckZnaWJCQUtKWDVNbXJ6Vk1pTWhOMFZjWDNSVE13OElxeU5xSUUzWEZhZzl1WE1tZFp5MlNaajFydUNqOE1SR3VZZnlzSUNzVkJBeWo3TkRZWDA1d0hxYnJTY2VhR3djWEZyVGltcG52VWZxVllKU0FId0otX0wyUllfTWoyenFDUExnSGl3eW56MnZLTHJVM0djWVdQSzNnX1FiZXhNamdhcXhRcFFtQjI1eWdld2VaU0NwU3A4dElDaFJDQWhOb2JXMEhNcjlENDhGd1E3cE9vdHdIaV9QS0MtT20tekFNX255cmpuZnNEdE9rcEdQN3NUZHVBcFFFSFgtY21MQm1iWEdpMHJrTGQ3VWs2OHBkVmlJcUhNRTVQX0FrNjhhb2cteG9uWFlFdVBQT0ZPUHdZdVNfVW9YUzRNcXI5eXN1V3g0NVBaQ19LUWtGeGpOSzc3UHZEX3RENFJpY251Y0RjRG51R0JpZno4SzRoY0tMV05WY21Yc3dNZ1RwWGNqYzNfTjZ5c0dWMW4wSjBSbzRPZDJod0hmTWlRZUtucTAwZXZnMFFzZExaUTFDM0NYa0tlNk51YTRITnBpX003b292d216VzdDdG5OV2FNWV9RRHk1RUVISUVOUjRWNmNjTy1IbzJtZndfSTFuVHdZRFN6X0xMU2RXSFpGS2FaS1R5Y1VwWGVDX0ZZOHl0eGc5MVJ3NS1VZHQ4Y1IyVmRreEN6OUYtWllaU184MzhJS3djMGpUdlVrWUphZzI3cDFYMDJZeWh0UmRUdkV2QW5XYVR3Z0M1RmgwbzJoNHlyaURnbUxIVkRfX2NudWlocEIzT3dJd3RpY0RVTUtlbHpLQmRhQnlLVTdhdGh2UHY5X1I0WWVnZFBsMXlmSC16Wkp5VnRCbTRwYlM4UVFPcGVHbkFmVW5lRzNpakplMy00MU1GUzNfZmoxOFgzbEM1T3JBT3o5aTB3Ymk1bS1Nc2VTcnp3QUtaeHBRbF9lSGViWU9RYWMxX0NUV08yanNKXzRtb09vcHJ0bmpmVmFRZUhrNnRjbEFxMDZoZTFEd0JFQ1ItczRYbnlvOW14U0hnYjhCanJ3aDd0VTBZSlYwQ243aE8wS1dIZUstRFg0VVBKODV4UHZvZHozcVZpWjRQTU9peEtqemNkR19TVC1iQ2sxeWNFN29peE8xMDJOSHlYb2FtMUc5Y2U5T2Y3TkdyRVQ2aFRDMEJ2Ty1YUHFkMXd4THdYZm9qdkFNYzgwaVpUckNkVVdvUDdoWFRpcE1Hcy04bWR4UXNJTjVCdzM1T29MRG1rZVBNMzlWcjJIYkJ0UkxWb3ljd09XMlVhR1FmSlFuNVlEazhmb2dpTjhSaE9ZMlkwSFhBOWJ6SjJ2OWlJWFZXb2Y5SmlmaGdBNnVzWVphdVREN1JUXzJxRjhGVWFjSEFfNFFkRktwME15dWk0QzhFRm5fWWlMOWVBbWtyR0RMQmlrZkxFbE9ENTQza3hxS3lxSy1LeHRabXRsWm5Ld0lZTWhabnc5Rm9xT1Q3OFFoNkotdVJPTHlGVGdWU20wVEEtVE82enc2dzY1bWl4SXZMOWh3aWhCaUZlVS0zMXRJdVZaUE15UHIzZnJBMGVoOUJNMTNMTG4tZHpGVjJpdlI2SHZJN21abmNva3J4WFpEQ3dWS3dfNzZYVHd4MXhXUFlpeUpvMlNvOU9FTHM5WUx5MVhwYS0tYlJBRS1feGU3OUoxb3cyREZJcFlTaDYyWkU0SnpEejBpN0FrMXF5LWttMTBZNkw3VDBEYVI3aGtlZGdPRWktNjhFNmR0MnFaSGFXdkstaXhyV3RLeWg0VzY2NlBIQnBoTzdlbGpKYWxOejVuR3dpUk16T2FWbGk3ekRlZ3BQemFPR0tfQmZtTmliX1A1ZnVHenFsYzFqc0cySmZRbFFyT3VFTl9aWl9HS1VRWlB1N0xxczZGQUowd0hYZ3ZjR2M0Q3FKd2tzNk0zWG1KTkNCaTlGbVpxUDJCLU12MGg2Ukt1SDNidVdkYVk2RU9jc2dtU251N0t3U0lFekNtbDFpNGFFTGhCc3BfVWpsQ01ENkdUam5jNFVKRGhsTWRUTTlSdWxwQ1hEbDJaUWc1N1FhMnFGeVdWeGNkdTM0WVdPOTlxM20xa3cta041azZiWVhnU2pBcWF4TGxWSXdaRlI0WUJCTk1xVTdTMkZEQ1JMWnFUSFBhODkwellPU1ZYTnRFc0c2aUhUSi1EX0F3YUlpeGRhcEhPcHpWWDdzbUMwYW5uaVhNQ25rX0lsX3pvQW82c29PT3A0TXRGMUJzUmMxMm5zVm9JY0tIX1RDX28tcGtRdDQyb1piZ3lzNGszdWNKSzJRT0poWl9SY2hiN1BqQXE2T1ZZN2ZYaGtLZWVxclRXSVlCTk1qVHR4M243Y2tEQlhKUWVxQV9zN0RrZlBwanF4UDhJUEdubHMtWUZWcVh5VFRlQmJTVFpXT1ZILWZ1WmZabnAwMGZJcmlDTm1kUU03dEhoOEEtUlZqR2RjSVdYRFhvMm1iX3hjYk5wQ0VmQzRoaXUxWmxMM1o4N2UtbEFXLWV1bnFoRm1xaDg1ejRFY0Z1bXVIb1ZLRXBLREg5cUxWSUFPZHZxc3FrQmFSZVZSckowdTNSTkJMWGRMOWNhUGkyTnZEUUhDanh0Z3RWdHgySUFVQk16VVJiWjdmbHBTS0lxaUxVdEVPbk9iZGN3ZjUzR3l2aU1Vb0s1OWV4WXZUSENuYlliVTk5YTZCcktCR3l1cnRhVXJqLTExckVwVWVBYkNMVkZ2WXJpbWlCVkRfbnlNUHZYTXFMNV9wNUY5cnhTanhINlJkN3hRZ1RDMVllQXF2ZDNFYWV1QTlLVHNicFVVN05FaFlic2ZYT0UyWWxGT1RmVEV3ZTlwWkR3dmxTQ3VLdHc0TWl3MVBOV3oydlBRdUp2cHZMXzktWEUzYU9GOVFOa3RRSHY3QWJaUGMwLUxZRWxnZ1hpZkdaTzE0OVVLNU1uTTJVN0M2d2kwQ2F5UUJpdmN3NjZWMXRNajV3WERjUmhYaWI1M3E5UUs4X3pHcmwwazBWQTIzQjh0US01bzBkNndlZzNUc2o5RWlHalhhTXBFZ0ZoUTRWM29rc09YdElWRmZQTndlNXl1bVZUVVFMVEQyMW0xc2NsTFFOYldUSm1zdk03MHU5cmNqRWJ3QVY4UU9IRW53UWlXSTZGQUpodDJMR1ZlZEN0YlNwTDZaRHplbUhETTRsbHoxWl9ib1loR19HYmM0T3l3ZlplVzEydEFxckdCZHlYb3V2djEtYVBHZmFvQ01qRkl2S0dYYThZN1Z1UFJaZE9Ec0g4aDJFV29DRDRUMkhuMzd3T1ZDNHBKTUhDRkRoaGNFaEx4LTBxRVkzdTVqSUgzNDhLN2REbXZqVm11WkpwRWsyTHE1bXRkcFJiZ3NRYUpDdU9NUGMxa3RNeWZDQVdLdGNiUW91em1pcHhBS0dqbTdBTjFNNjFoaWQ3THlZakRRYjh6RWk3X1lsM0F6c2wzTnprR1owUDBfNm10a2tBb0VIN2hHTVp4b0VMWS1NREt0N0R4Z3pCVnlwckU5SlhaWmFJNGxQVTE2SjlIbGhBbExfdUk0aFFsQ0dhWEhRQ1pGZWF6U2F4MlZXbWFrQktLdmY1SVpaLWRFaVpRX01Pc3o3ZVJxS0NUQ3VpMjdiYzZ0bkFRNFdTV2dkdUp6OWxxVW84dnhLNkowSDZ0Qm5kZGJUT184UXNFVko2dEd6a0pHWE1HNk9VT25YT3kwR0xUbmZlYXUwRXVKRHp3c0UzU293RWVuVVVmR1A1cWMyc0ZhdXlyaEVCLUE4SXppcXlKZkNkY3dPajhmcERwYXVtTzkyejJLMXloVDhEQzVJOVZNektqaHlJVlpab081cEFsNnBRYkhiSEpLMGt2NmV0NU13ZVBFTHpNWC1aV29OOVpnNk9wR2NvR0lXNTEzMTNVc04zM3d3LVN1bExlTTdfdmZ2UjZvTTZTWllCQXR6ZXpBcjVic0xXdTNoME94SlRDN2w2TXJURlZhMElTd1NwOTNkcTg3ZUF3bnFUSlJDbVI3Smhnb2s4YUpLT0RYbUs2aTU1VHVHRFplc3plN0JqQTZyb0pkMGF3bVh1LW1YZGpzVHpfZC1CWlZ3dnVfZ1puVGhkRElnb3d0N3RYNHhPX21RZ2J1Q1VfMjYyTXEyZlpISGdfY29fckI2V0t0cE9LYUljaVl3NFNwMlRfaWJCWW5taWZlcTBkZFN4LWRueXFPUlBYX1NVbUNia29OUE90ZFFyNVRQNEs2R1JuQVFzbGY2RUlGTTg0M0FkTUZFNjZJcy00Rlo3OVNQTHNVWFpLcTFNWFVRQ01OSlY0b0tDOHR4STc5b1FRbl96cE9yNzc5MmdPeE13SGczc3lMaUVsVHZramdWYllwTjJnWU9qMWx6SG11SFBkZjB5MmZBQy1fVTRnT2lvSFRmM0cwaU1GbzJva3R6bWk4Y19VcVpfNnd3dzVvalNyNmQyNXZ1UGhQdVM1eVhIRmN1MGJ4VlhrYWZ1cUV1MUwyQnk5Xy1hcm94c3BuRGx2NzItYnhmRkJKc21QTmdaZXpSNmMxdDRBSGwydHJibFpmX2NnaG8zbDRESllYV3B2OGJmZzJJQzd1bVhaYnlmWkV1d1NzQlJnX0lVTmZ6aWF4Qm16R3F0MmpXakJ4em12bnhYZXNFYXNUclpGeE1HYm1ucm82YktXTEFaUmpELVlGRFh3ME81Q3c0cXhpZUVjQW9EelpoaGhWX2hpVW5VOERad1NERnBZd3BvVG0tMHN4WTBhWXRNOTdqb3VKUEVxU0czSFBBOTZ0aC1nMGxyTHVLb2ttX19uc09RcHNZZVBfY3FIUkJDdTdPUjBnMHRVMkNXTk94Ql9oQ3VuYm0wUEVUUmRKbXk0UnBBNlNnTVlVRENleHAxRUNUOFI5OVpKaUdidC01RGVTdE50bXc1eWNwcGw5emwwd1pyWFM4RzNxQ2lkbENNb0liSkY4YzNSWjFSZGVtQTkzUVQ1X2tXdHltb3A5TkEydDRCWGJxTW9MU3FjUXNHczlWSmxwV05QLVVHVE1UNHU5TVFVZ3FWZGJCOGhyc2Juc3NrSW8xakNVUDBpNUYxYzJJXy03dTBxcmRBajdMWVIxS01HUGRpTGFqWXQ4aFhPY3ViWGFXWkVLYjdrU1YzWm9mN2ZqdU1WNDdpeTBnN21seUlJeGgxRGVUQm93TUtwQ1Fmc0J3NzFPdFV4eE1JOGdzVTl3S2IxaktCRW5ZM01KU2lKVTJvUW5xVEFVNU1XaG9uUWx2MWdlQU5OajE0bTBKN2tXc3MzNFZpUVFYUHpIMFdrYzBwb2V1Z01xQ3pmQWJCTlpzNmhQVHlhQUZXa3FocW15VlA5RnRBMlN0T3VVMVJRVnZDS3FNWE5rTkRKMy1SQmEzWjQzcU93MnJnb2lIaHdBemg4Q1Y1UWs3T1J1V1FCY2FDZVd6X0pNTTFnbV9EQnotTGFlYmF2aVVEOVp2VjZwR24zbnJwWWV0SWFVNkU0c0dpSHVLdGpMdUdxenhiWmZRb2RfMW1TdVZfdVBHaFVZVjRYdzZKcXlTbTNObjJOa1o3Ry1PUUxSMDBLXzRGSHREUzBSYW9fZkc1TFhrWW1ZSlBwOGl0ZjBRQ05Cb3F1dXZIaGQzajZWbU9FQUFNeEVCZ1IzNFVJOW0zdzhwcmF1UlBqSkRuNUp1NEdxOTRfY3pSbGtfYVBEd3l1ekpDbXlkbG9JOG5BTVFDYWtFNUdEWkI0bnlZQ2JVVHV0YmRock5ZNklwU0pSVnNYekNIbnE4UXRTVVFZTFliN3cxSjlUa2hzSHRsZVFNWjVYekNKaUM3T0NadHlpNE1LenNqWk9veGFIXzBIQ1lpTUZtQmNuTkZRLWZtN1JkNy1DaHp3cF9YZFFpUWQ4YWJjdXhIY2JFX0Z5cjJEX0lyUWhQY2tCdGJZQ0g5Z1ZUREdaNk8yZ216b19BNkJmNEUwSmM0Uk5leV9LQnE4RWRnMkNPalgzV3JBRDBlMU9mVTlxalBmNzFwa1ZaaUFGS2tla19VVXllcF9CWW03SFdfYnFWX0RZWE9Db2xtcl9fODFwZGJqTlhxbFYwbzdlS2VfWjUwSDM1Y3BkWVFOUXRLNjVNdnh0OFBHNnJjTE9YRzN3OTRwX25wQXNyc0JFcGd4Umx4WDBsMVk1Z3dTTjMxZy01UDU0YlBDdEoyNmVQLUNsVDZSZ01oV0M1Q2Z6SVpTRDVCSmExNlJKeW5XLVNBbW5HX3UwaW5vWEJfMk1TWXhzcjJGUnB0UGh3N3c1cjhDQ3JLTW5zSy1DTGpfSjFydjV0d3BETldPeE9GQUdBNjU2MnJ2MzN0SXNzYmZPa2doem1MOTBRQW1YTjcwYkJfNFJKYlk2NUtPQU16c052NHlUQU1rZ1NUbjk1cXRjN3U5LXdoTlpXUWdHUTJjcjB2ODUxU3hmam4zRGVJWV9sMkNFVkdkcVVDcDZFZ3lUVW54RjZlTjIwdVhzbWpxaWY1UHBfVHJLa0NVMGJrT3NQMFpQci15QXBLaUh1UEJyU0tsVTFiZ2lpY3lDLWNmeDVRS3VkN2NyWmphVkxESkhkblRPRi13b0JiNVBGUVJEdDNEQ0taNnVqbmpfelUyUFUxUDVwQVBwYmtnNWIxNG5XNDZZVlBCSzJTNkRZUGMwRUxiOF80b20yTElJNnFJd0VLZUVvWGpkY2lnX2pCcEEzOHBVRDZHSW1vV2h3MzRfSEd0eWRmQ1VzTTVtTTZZOWJNb2JQdUdsQlAyMi15ZFFNZ0llRGdyNFYtX1J2Sm9nZ2NGZnFoYkFHRDRLN1JybDYwbmtfbjdXQ2pEakI1MF9hWUFPbnlDOWtnUjhQYjQtT280OEdFSjJjMklEQk5KQU44V0kwUllhN0RfZWN2UFU3QUpzWTdoVXVUakI4MXZBVGIzWmt0N19LZHo4NC1nazh2RThidVFrZFlGckVmN2Y1TU5PMG4wM3hGY2VsOXRMeGcxdWlUVXVndF92dFA3QmgzSEdqVUVBaDZMeGZIZWR6N0ZQSEVoYkJDYjEtNy1PWVBnLWNBU2pvYnZnWEd0Qm9VcFh3ZVRydm1fM3A1T2NHckMyaWlhTWpWZFRvb3Y1MFZoZUZNUU85Skx4NjZHZU1WZkozbmE1dUFFWS1KTHd4VnVCZEI0Q05obmpvbGhNWDVsM2U0bjlWcTBVck5PUG1oMFpCazRUNHJ3REgwXzRjZzVOUEdkT2F0SlJzb19hQnNwV05PaV9iTmlwSy1HcTFiX0d5ejhNZ1dzbkN0akhWOXNNcHpkeXZncUxObmtVd0xab0g3QW95eHI5X2RrUDdJb2Y4eEo4cXNBcS05MkNfRVNKa1hzR1RJYloxdGh4YVZsZzVqcHRSOHdXeUZ6MEdWejdnanFqNXI2ZE9raXoyU3lQbXdLN0stUmxVYVJ5SGFpZ2gwRnRGTG1fTUplZUVnVnVXR3BSSDVvaGs2RF9sTXpZNC04NjZqNVkxaEZTbjJQSTVEQjV4T1VpSVhsbUNwc3NUMzJpejVYZ1hEbmNuUzdSM0FsbmRGcldnanFadDlCX2swNnhaUW15TEcyQ29vXy1lbGZzVmhuODBvVy1hc2U4Mjh6N2xQcTRua3lvNnJZeFpwMlk5bWJ4bmtQcWZTdU9DZm9ldnRLYTNad0k5NWMzbXJDaGZHTHBaejlXR1ExdzVGTzc0NTlrbDFmLTBBZV8yTnVyWkpaUExEcEczYklHLUx3TnQ1cTR0amNhSEplWEtuMi1UMEVvMENPWXhlaVFkOW5DYnk5Vm05OUI2WFpscXRON2xaYVlXT2FMM3o4ZHhrQXVERXFKcVd6VVp6TS0tdENvNHV2RkJfVEx1QlJtVDlJc2FvaDVwTFljSFdQRTJGNG1GTGFKc3dHd2pGR293cFduTUNrZnNzSlFBcWwya2ZqSWVrRk5LeHV0cmhBdmJ0WjRuWTFyTFg5YmVzZWRjZ0paMTAyaDV5dE9janB4dG9vY0hRUl8zWlluZWxIc0YxZjZfMVpZeGxLb2NHR1VlRUxaVW8wTkN3RW1rcjZkbnVEVjNkQkNjQ2MtX1Jnc05oSXo0eFZmX1BtVFlnUERDVHc4RTd3QlNFWWhrekMxY0I0cnA5ZnQtYW5MNHNCdmRvQTJubGNkS2c3MTRxaG5SVk84LTlrTlhCelM0YV9hbmhMQU5IOXdldWlsN2h6Q21uMF9KNEFZYm41SndleklJQUZWTEhCOTNsc3pWTGJ0UWNLN0IxakJpRUdWUmNGd2ZRR0xWWjg4QWE4WElSblhsLVRabTR6V29SQnFjQkRRZXNzNmdoallPTnBDYzdOeUhSSFAxdE5vN2F4aGVuWUY1REFKVG01aktnQkZIOEo0THhRTk5ybkp2UzF1MjZZZ2FFN3lLR2FXRzdQREdWWW1ScV9OZHpkOXdrNGQ5RnBOalR4U2tlSHh1V3ZKVXVKZVQ2VHBtTDF1ZzkyTDZaeUZ2NkhZUE9TY2NoSHRkU1p3bUl4R0lXejJJSG9GcFNPd1M5WWJhOXRWSk9NR3ZZZHB4MlNrZmlSbHF3SHFWQzlvRWVYOUI3VkN4ZUlhUVB0Wl9LMkpsUVQtM0VvQ3kzY1ZuWjY4YUE4VWxSVEdwbl80NlJtQkFUWFpJcTZtLWs5V0V1YVR1S1VhalEwSkpyb1B4cHhkNlp5MkdLU2k1UHNVc2Z3c1gyX3J2Z2lsRFRZWjJCMFBTX0hLYjVvNVJUVGJTTWV4WGpYaHZYV0VDZmtTNjljdUtYQnZhcmVaZldrN3BOWFk2eFZfV3F3TVJnQlRUMXRNY1dnQU02UmVFMDNzY3RyVFlvSkZmbFpYTnBpcU96MWZ0c1pGTzNPQjZfeUxGQzBNd2tYNUlJdU1ibVA1VmJmYlNNVUlRcmpPelE1SWJGLXUtbUN3b0IyQ3FQOVRvdFFFUWdOc3FFTHB6ZnRiM21CMl9ESDZHTF9DZXl5bU9XdTJZNTdFelF4UkRnTUJuc0w3dXpweWJzejFkZzBvWjM1UnkzelZzaEE0bjZYQmszQmJsS2EyMVRhbzUtd1J3V0hDUi03dVUwMW9aT2RGZ1J0OHhfTElQVjNYUFlUbXpBVVVqRHFkM0pneWRjRF9Md3E0UWxkbVF1MUdGbU9lRGxEcDgwQTdQd0ZiWGxqU282ZTRFWi1pZUdhNGNTcVpzR09ET3B0ZFBPeDhZX3NJbS10NE1Jc2ZONzVPcE5TRG1NUkNGaFEyVGRNUGFyQnRMS3RZR0tMRm9nSlFmUFgwdW82aUpJeGhHN1l6a2FxankxNzAwanZaUkhtLTZzT3JaMEstY1BZVXlTcEFiS2F6eHpyaHdVcUJlZExYUnE2cWJHVFdhbGZmRHhzc1N3TnZ0LU1vbzVDNVlmbjIwMmlOcUV2VUlEemYtN3dQNGVrVTRKdFo5bVEzZWdHaWdkd3FhNDRxaHN6cVZTTzFvRFRPWXYteVcxbFZXNDh5dUtNeDQxQ1lnZkVWaWNSVW1hQ3ZMdFYyT3VjcHBnWVBFcjc1c0o1Yk9rZmxGdlFYVDM4bDF2bGxtZWNTN0dHY0g5cVljNjNjcGE4MUhxa2V2cnpZeU0yVjRGZUVkZkxYbmJhYTVHOUYzakNoTFBST3NpVmtLWWlaSUtzVHNQamhwR3VCQk9PdTdKSHREYTdmd2hXNjFYVzRIWFRrWndoNTVkd3lnVVBMcEo1U3lwbGNuLXVtaF9CUnFLUGZ1c1p4cXo3Mjk1X044TS0zRTlwNkV6NHNUTnBBS3c3Z25sdXo4LURCZXU3T1ZXNFhEWUlXekNxUkhuWmNYS0VPSjNHQU9MSmV2RHpMeGJRaXg2YmcxcHc1RTZBLUdJS0hvT1Zoa3VmRTZWQkZTX1hENmxiY3YzOVF1dHdoa3pWZEY2VGVrZlNzcFVDTjdVWXRjU241WmFQSy1ZQUJySmd0a1F4VEhMM085WXBQRFd2SXByNjR1aXVBZmN5OGNMejJoV1lOcFVQLUMwRkF0bUJyMWNNeFEyX0ZMSlBteW1hTU5GVFJOcW10S1FFZnlKdDBndmRVbm15WTk2OFJtRU52T0szMWJlcTJ1STNUTmVkWk52NlhaTm94RXFYRTRnNmF5SXRJcWt0dnZJNk9faXFwZC1HWHJXU3NTLUhZeVk2TDQxVFFXSE5XVFBmTnkxeVM0aXh0RjRuTjRtVmdhdkNHeEhjY3Q4S0JmQmE3X09fd0VQcF9CWUVoOV9zZ1g5Z25PRWpDOVFRd1ktaU13dnZmYlN1emUyeXhqWVNIY3R0UFpmMGpZdklPVjQ0aW55YkxwdXBzdklmMDBvU2o2QUxQdEM1X1lYZXVWV3gwT2FHLXAwTjhibFpQZWJCV2VEeXB0LWR0eUZmWTNfNi1zY1hjd2RRNHN6RDkxWm1QMHdRQWxSY3lETm5CXzdzTGdycFVjYXZMcWFGcnZyZ3puR1FYbXFkVkFmUFlrSkRPa3UyV3BDMmVjWGlCSGNJd2x1VWZhZjZHN0hIV2RpeUdidW1yN3FLaXIzVUstVWoxUkVCbzlOTFY4UmVyRDNYT2JqSjdsMC1kUFZOWHItYzlKZUxyWnUzN2xyT2NtTXRFc3VHWlBnZTVQc2UybXNJQ0p0VWtIUTRjb0RsQWZ4aHdoWE0wTTRWYkduR2V2LXFfNDZITF92RWYzNUQ4WnZIS3psWkVXMHdVaXNwMFNuSnYtNE9TbGNHSDFMZW96TnEwZXEtUFpoSnRmODdDdUw5MHl3ZHNsS1g5ckNVdS1HX2hIdzRGQXhJek5zRW9lM3B5cmFtcjZfREJrWUozWkU4S2M2dmpta3VKS0VVZUtCRWw4TE5jRTQ4cjFrZjR3eVhKcG1jcWl0cklSbXg4eGJaUFB6WTdWWDFpN0lKQk10RjZLZmNqQ3ZKejFiUFljLUFyaWRXZlRybTBhTzd2eWZtU2JOTndaajBZN2NkVl80dlVKdmJtZUZ5Ty1uZ1BhYXVHVUNJb0xiS3BDSUIweVBka0N5ZzV5SjNoZENwdVBaQWtTSmNzY2RBbzdURUoyOGtWcXJpLWN1OGFqczZfcnRkOFdpdnh5WWZ3TjhESXZ2NXFWV0RUT1N4VXZZVUxTbFNZMlVoc2xBSHQzeWExdWNNX1lDOHk1U0YwQkZOZmhtbXlpOFpJYzZmM2RfRGpUQWREcnF3b2p1QndxTkVLY3BXM3pZckRrRzhiOVU3WDhBSm91cEhlZlZFS1pnbWNiTTd6Rlh0LWEyMWpHLU1oZllhYllmNWNVTGo1SHNpRFRnWGJFQXphZ0xwUGVfVW55eGdwSUxwUUFCOFhfaUtzeXl1TnNQLUJzdjNSWVExOVNMYnZpUEh2VmxRR3gzYXFlN2Z4eUptQ2FsMGMwV3h3NDJEMm1iNkJFckVYbDk5WTl0VmVaMjUzbDJYdnJDYVJqVHdPSU01U3NvdVM5dUF5SmFWNi0zYXE4NnVrV0c4ZjE5dnpRNFRGZ0NyU3IwS19jOXVpaFRIZ0U0eTlGdGR3MDNXblhFRF82Z2dZZldnT1AyUERLQWpaWE4zWE5tN2xxdDl2YjYxUVRKQ3RDeXpacm10Y2VNVUlLcG9BUVZvN1RiQ2hNeGdlckliOHJ5eXNvUmxEdy1QVkU3bVh5SDdXRUJzRTVmWnhWVmFrWFdiNlcwb0lGU3VXTldCTEZUa3VoZXgzTHFTZlJXNi1iQ2tCQzdKd0xjeVRrMzh5SU05ZTZjRElWd2F3LWdEeG9wU0Y3V1FwWVFVNWt4ZWZ0c3NNbl9uc0ZNdTlhQnU1enMyVWhuWlFnc2JBcTVXaUdOWnE2ZW5RVGt6Y0dhcy1hMW5RV0lrWUpST21yeGp1UTR3UlF6dzlEeS1PWlliZVNEVFF5SXR4RlFlUWhfeVlVYktudmVYWHB4TXByZ2dPYi1ydjdrNDE4dVhCWlhYRS1UbDNyTHZjQ2pLdWZlZHd5T3h5RmdJQkk5T3dCemdGM1M1VkdEZzExd2pya20tNVhiZGZuZVhpTW9zMlJWWlJVWDFEY0o2YS1zMW5ieFZ0US1SOHhzZWtYbVBmWk1WazFTOXhOQ1c3V3pobEd4d0x0SDdVQnlDdXBmSVFFcGdyX2FxcmVVRkEybVFDaFVzTWE2S0g4WC1YTl85dkVDRkZHNWpieWdPTDJjc1p6aDZQSU9lVlUxZDktWVBlOWczcDAzenlzMFlmUmViU3JMR1J5RUFxZ2Y2bXZBVktzQkZMMlFpWmtSTEx1dEEtQ3JwMnJQQkY2eUQ4bHJmTERHRl92VzdjaFBDTFZ1WHFBYzJfNi1lZlJqR0RCSzRLdWZxMnpPWDgyTkd2OFdDMFBUQ3EwdDRfQUdoNFdFZDZQWFlvSHZ6SmNEamYtd1R0Q0NkRlgxUThTanc0cEFXQm54cVJnRFFpYWlSMzN3SHdLUW9va1AwM0xIc1pYT3lJM0pDb1gxZ3JBY1FQcF9CeXk2R1hWT04ycWdlUWlxMldsTzFneWNrTlU5SmVFUzFiZHY5dTV1X3A0YVpIT0lIOVFoU3hGSDFUTmFYd0N5dFRkZE1JRTJjZnA3WHE4VnA5VU81aDZFSWZLenc5MDJLS2NKYmRnV3ktZUZ2QVpaaC12NXV6aFJJNExRM0JxbmlLSjQwcDVtU2JteXEwbDZJc01paFhINW5WalVNcTdkcF9laXVjZWpqcVJXMkRWWUpiRGVWLWI1SWxfREI5a2diVDNGNHlvRU9jOE10eWQ4eFhQeXdBUncyYTlmOXVqLUtOMndRVmRnOU9naEFKUThSUHR4OEFzZUV2QnlIQjdQcFZqSE1OaTNtS3lLbEV0b3NEaUJNUFVVZEZZbXIyYjAxaU41UXFsQ21kRnB0RlVMaUNCQWZ3bTFuT1pKYklHTEthYWlCei1iT1lFeENRUmhESGJadF9VNEZpVnVJdFJCd1pObUE5UG9iVXVPVF9RYV9KRENCd3NucXBnQUpiT19EUXZBUHhjM1B3bXdJUkgwVWhfS29Kdk5NNnRET2xVNkVFb0FneEJOSl9RLXdJaC1ONjVDdkZMLUdpal93dEhjNk1QeTBOOUxWQWxNX2hPUTZQd3htejBBSWpnMmdMQXNEMTVNZFdWWC1vaU9Tb3R4MDE5dUozdy1peGhnVzM5RWFYQlFkTzZERDZIRF9iV1pGVGFlUkRWbVMxUEI4WDFZQi1EekxxNFlERnp5Z2Z0bm44ZzIwa0Q1YUszVDhwQ2lPbHR2U25VbHJNV05yMFcyX1ZTSVZXbnRDeG9lamdxRzhnbmU1cUJnM2w5b3F5ZlMxMWw2YnV4bHZsajNNRlZibVdJNWVyNjNtUDcxU2ZSVGpnYkR6UnNkT2N5cHllOFRGaG9QVl9GV2RXbC1vLTdzWFlLM004bGlsVlNINVdtTlRjbHFDVUswNjdsbDFvVGUwLTlITHdLd1otUUZ2Y3ZnMnQ2ZXRoN2pHUTJwZUtiYjFyQ0t0eXhCVnY2UDlGR3I1NnFKVVN3OWI2SmRWNFBkTXFTNUFjcVRGZVJISE5qVjZ3MllfUkJ1UHR1NmFCbURTbERsTGl2eGpoLWhzcXNsckNsbnA2YVNzV2lTLV9CWWhJZlZYRnEyM1RtM3FCcGZsUG9WeGwzSmZlM2ZVQlhrQmh2QmY3Z2xqTFNnTWtFenI3TnBOWF9VbDJtN09ZOTV6SW0zWHIwcjRfQVFzMUJtRFRqMjJQYktHdmcxV3JwQWswbXkyMXFDZ184c1pWaUpyaTVrQ3drSmhGVm0tckF1Wmx6VTU0aWNUUUgxYnk1Z1BSMUppeXZLT2tCeFZIS19JMTlwVEpld1pyVnVNTGJlNzhkaGROdnMxQ25ETDBwSFI3OE00UWljS095SEk0QzdobHd6dUtDZnJuczMxY0xoYmd3cEtfaWlhc1pEX3JKVHdsdXdzTzRjV256Q3BSdU5lekJIcG0wNXBkMjRicVpEVl9kNVpWSGU5ZHdLLUQwSkdmb3ZzMzkwMk5tM0ZTQmxZSjAwT19rWkFqeTY4Szl4a2ZEeGU0c3lQMnJkUWJvanRQeU1GMGZ0Wm5UOTdNbHZnOVBfb3NqVjJfQk1OTXB4TGxqTE0yZW5DeGd3RS1PbUFpbzhPNWoxbzRybkJfSUhwSG5ScWZ1Sy1zaUs4ajdoRF9ZeUJNS3ZNdGliWjYyTUNSZHFxZzE3Z0N5TnBFenVlckNrR0lWa2M4UW5ZcGJZNVM0RWw2Q21rd1M4RFQyUURWRkxSTUpRVjNOeEVqSTBydGUyUktsRldOODN4Z1JFSEd4MmFWVWduNXp2R1EwbFhDMExSeFlFMzJaSTFmQml5VnkxMlduclBjS0JoelNRUHU5ZTlrU2lXRWZpVkxHd2JDT2lvQXloUVlvcWJ3c0JfR0cxN2JHMnE1eFZUQXhEZE5UT2ZtSHZuM01sYnlsV3FWcWxVZEhpdXBoZ0luSUhkM0ZwaW9QRjF5Zm15NGR1THR1VF80bHB0MXA1WldpWnJZT3dwMGF2OF9WUEI2ZFBvaFlMZ0ZlWjk2aFhobjVwTzl0Q2JFb2QzM1NOLTk0Mlo2OWl2MjdaX0o0V2N2QWxvUnRHSWh2czJERkdHRy1qVVhfRVVCemVHZUJmZTFJdkRaVkhEV3FuOVFrVHRmODFLeGR3ZEdaai10WjRxYzZMWGJPQjJpLXJIcGt1SDJuZHZGc0VaX2NjSVNRVGlNSl95ZE5VYUN2aE5ENHdCZ05aT2RoLUpQNDdWeXB0UGV2bURqUkxTZ3dNM05aU0VSOTVQVmlxTFcyTjVpaUl0Q1dzbVRKVWhBSUF0V3IyTTlDN1U5SmtmeVVQVmVfb1l1cnhQQUVuZWxBdlVJMVQ2T3JLQkRWNXFnekh3aDNZTjFCYWxnRjJ3S1VaVWFBb2ZUb090bTNkYy1HQXR6cHFQN1hwclUtVnBXeTMtX2tVVjdDLVZiU085S0F4Q0UyeERINWcySjUtbEltNmJOSG1jdGNvTHdPM2g3M2xwYmhXUVIxaGNZcVhDWjduZ3B6QzV6NldLOXZoN1I0UG96VW9aTDZOOFZtNWZya0hsQXZCTkxNOG5LSzNTSVhKaUZ2UG1VZFZpdHQxbVdmeXM3UUcxaDNWOUxCSWw0aW5XcEpFQk1RZ0x5dkx4Y0NfalNfT2tjeHQ3OF9zNzhLSE9seEllWGlLZVB4RHFYS0Vfa2w0eDFtRkVya2x4MzJFR0pUV3RLekhRU2pXeEd5V3lIdFhhcXkyUDVrWElMMVBPZHBSQ2lhNFJCeWs4WHRJRGtRYXBCV3Z1eUlnS1J2UURsaTc3TE9KcUtoWGRPRms0bHB2cHhGQTliZDZUQk9rTmpTQlhGenNTaHBySndJelhUOEhpQmlLand3djEwbnc4Q2VpcU5MV2VSSUNWWVRYdWFlQ0FHRm1MWTFIVzNiem9xeG40T1ZySGZhTW5qcjBjYmVyNzBmaHQxT1J3Yk5kR3ZnZFZ4TEVkV3drazBBcWhtRTcxZkFiNlluRmZ6Q1hXMTJoZlRUbkhlOTFVUzdFUEJoekxSd3BpOFRHOVZyd1RNRm9fNnZaS1Z5blFfSU0wVWM4RTVkN3FLVkRtRllFM1U5MmdCRndyS084TnpLcl9qOEw2eC14Y2pQVUdmdDltT1lHVGpiMVpUNWMycGExdzJfTWllV3NncWVCS3pydUo3WGJjOW92eDAwV1ZkUTg2eDlqY3FYZVRIY2ZIUkEwU3kxU0IzeXp3VGxEQlJQbVpjVGpwQnB5cDZzSGFPTC1HaGxYbUc1V09FdTFBY3ZoZ1ExYVdod09xT3R3YjFQQ3pNVzdMdTJNU1k2YU9qX1BVRUZPQWJmWTFKODY0Wk1sV1BRS2RseEFteWNWMlUtUHBucG5fdEI4TUNaUEItc2NPRk1UTGpLcFJTZlZWUzVvak5HZmJHQXpiNjMyUTlCVXUwRExsaUJBc292TzN1eUt5MnVYeTdiVFREWUlBbW1oZUo2TmRUNGJMU00yanQxNVkzUlNVTXk3UVlIOTBZLU1oNW9QWk5CUnNydEdSYUNkNkNrdnBxd2x6MC0yY0V6cXlLeXVydkx0ZDk0b05LeGxDRVhEWkpCVG9XbDhoblZNZmFfWkRUR2xJSlNVNXB2TDZNd0NLZ2NkcDBGV2NwR3JSQ3RyNkRkcmlMZVdwVzJpZkxtdmY4NWwwaTVFUVU4ajdpdFVlWW5ZaG9NZWZFVm1hNGQ4SzNLOFdaWVZvV3huNEQ2eWdvcEd1cWVTLU5lZUJQMlFSN1dFdC1tWDNrVjRGeVdHNlZraGRhRU0xYXZodFN5OXE3U2pHUWxzWjJXNUVINThBVm9VbXVkLWxnWkxsVTVDOElBU21VNjRrYkpqaWp0ZDFrdnlFZmFCWkEyQXJrYmlUTVBMOGtrbl9qWFNGaTVWeUFxbzZsY1lwMzFqM2NZMUsxSWNzU2tSLXBZTk4wdmNKRWt2aTNmQWtZeGlWSTNjSHVWWkFDbHNRWkNGem45dzh6YUdvbzdZcTdoVUp3T2NUbTZHU0psMHVSLTdkanZwZGwzWUNoRjVkb2t5WGNpb3Z0X2ZqbDlrRnFTcnpuQ0lIYnk5bXpBT2pIRGpQa3o2Y2VfZzJvMFdKTHAwOVdWX1kyRGtjamU1Sk5xRllHSksyX2dTajZiaFE2VHlBcVNxdVRmNWdhUXVBelFuaU8wcWhKOWxKNk80cW1kblo2UExDbnFSQmZIaEY0MUo3MWRFQVBxUG9HMWFZdHdFRUEwb1paVy1IRThBRFlUaVpoYVRPbXlfaUMtdVhHZl9GN0ZaVU04aTMtNWdsUlQtRXQ4NTdMUjk0TEwyak5iWlY0bWtjbUlveDlYQVVRXzRaRGlyaXJtQnF2X0tZTTJxYm9zcHZDWExfNGRld2NEV1dsUjlzMHp1eUp6YS01WmxJV2d0TElzOVNWTGJxX1BuY0RFLUJadl9CdVoxNldBWjdmZGd1dzhFOTFjRkxhMDJzek1uR1JBOXd1YVBFMjc5WU1GWDRsU0I5SVBlUGdqLVhRZTRzN1JIWmt6RFdUVHl1WHdSc0JSYk1QUDJ5d2M4UjBDVDRrZXVDcy1HYk1WRjdzRlRBNUNZQ3FhUU5kdEhqWXM0RnVqUG1OQXFiSEVrM0YzdXZXYVdXclNkMzRsVHA1UzJXNXZsU3EzRktsa0IxYlIybmJza3ZNM0VteGtnM281OENGOUFYVFFQVmZKT1hHbzFYc19sZmlGLV9kT0NDNmwzRmE0NzYtaHFaTlgxdFJaUWlQMm5oekhVNDIyNFhYTE1LV1VBZ19qOUtfdzFvUXBnS0hSWmJoaDJaWk0tYWNXN0NmWGZlQ0hndWtPZVJXM2hKV2VjU091djFNNWxObEFocFpIMUVnbXBWSGpRemtZU0JyVFlweDNjbjZJSU9uYmNCNkpFbnpibmxxNWxlbUFhN1NvT2h0dGhVcHBSSmUwbXl1RTJPbzZoLUxPLTFoUW1iN0xmeVJ2S2ZCY0xlcDVwelN1UXlYUG9URmtsTXVONWVUallGVlpTanZtdHpPNmpGajRXbzUzUTV1STNINmpnUUNZdVo5dFNXMHBGdmVzRWMwTDFRbVJkYXBRS0kyQ29GNm44Z1U5UHZ0a0x2U2RYdDVzcjVxQlo5Z1h5anRrNnpjdlZEQzFPZk5leWNMbVhsZ1NGaUlZbm5jQTRDazlqaEx0bzRFWnVackI2SkMyelhOOTh2MlhZNmMxUDFldGFqVWJFTVZhbXFxdTBKTThrWDdaNl9WeGdkbVV0SHprelFKSU5UT1JrOU9JU19xWUN4ZHV1N09iTVFCRVN6aUU3clU1YmMtbUYzY2N4eUJNa2hTbElNSVpKZ2JiOHpBXzlNSlJ6a2RaYVZNWXp2aWh3QjlFOVZwM1hIVV9lX3pvWXlQcWhwMThNYk9nNG91UFBKZGUyLVg3eXQyakhnWWtvNmhZcGs1SjVsOGFyTHJLcFJGMDMycFV6blc3cHktaWw2VmQ1c1RoRUJHSFNoM0w4WHZPQklxNnBEYUp0U09QdzFNQVFmaG5uUUFnLXowdzIzdFhHY1dTRzZramdVOTgxVGUtQTBJcGdwZDA1S1hNdVVXcUE1azRHVXF5eV9tRHR5ZVlvX2pmQzhYb2QzaFN0Sk50QmtGT0kwalhkemQ3MUR1ZW5Fa014d0pUUWwzYlMxOElhR21sUmU5LXpHV2swYmN3RUs2Ty1vSXc0N1FXQXJFTFoxT1FudjBLOTRRTU1NOW1UZG9iUDdFamp3bFA0d3MxNmdRYzU2dU9rcFo0TWJHYWhTd0tzYzlVUGpBeTU0VkYtUmZDU2pXTGNYUUotb2czRmZpTUkySXhqLTZORUZQRXBmRDh5dER2UEp1Q3ZVRFl0RUNQancxc1hBbmtXQ0dhMFJkc3ZBQy02VEhxUHF0VjJqQTBWRDlmaWpXZVlqbWZ5V1VQX2EweGoyOGt4OENybWJDNGdQQVppZzdCSEVXOFBKdUxBbXN0NXJpVXhkSWlzMV9TYVMtbVNjaDlXOXJWbDBPODZXbGw5QmJZdnJRRXQ4M3c2M2RaYkcyNGZsMklqRFEyb0tJMDcydzFwdHRZZXR3d2pXYmFSSDhPM21ReWRiWnItVmRkMjgwdEEwdzVDcHVmMnZSZkVWX3JIa2dNbDhza19NWjZreFlyeFU2NUdQVE9ybEVDMFpOWW41MWpweFJpMWJOVHVxWUdMSzhWUHZfVWhYS0tWdUFoMWtVT2NHX3JMM045QndrY0tyeHFIT0R3ZmpRNkxEeVFfZUZNYzloV0VoSGFZcU42N0x5NVlZbGRUWHYyTmVveU9xY2R3SXZmc09uaHp4bGZhVjZDZlZqN0k2SEl5ZXhoYTB5bllHQ0Rzakp6SnJ2VHRrWlFHazJpUVNzc1FNU3pwSlpadlBsbTg3VEZvTzVrbV9LRXlWN0p5SWtkb3l0TWFmYlFKbmNGWUVMSW96VTFCei1EcDJJeU4tQktzbzZaYnl0RkNYYU9EcUptR28taWVNY1NPb3lOTDRCV1FpUi1CbFBVR1NvNWFBOXM1bC05YjJSbERMMHlkaWVDUkVvUFVHM0NhU1Nrc091dkoyV3NMUURmZzB5MUltX0Q2Q1c5YVY1ZjJMejNFOTdjck1ieXFEbGxrNHhlY0RvbkZrd1JtYm1fN0VWbkVQdVZJTXhNaE1rWmdad3pKd3dQemJ0UnZXdm5VR0NhLWdqVHBONHk2WEdQc19fcGxNMDg2bmFESjE3aTJ5cnpXYnZaR2N3bGo5VzI0YU9CU2JoMU5mblc3aGZNdU5qNXRhcmg4MXQyT0pjR1licGY4bDRZb2k1dGVxTGRSeVNrd1NiUFZNRXBjaThRLVJrNUZ4djU3MkFSdTFHWWs0OWJPYjd5Q0VucUxtd3NGOTl6NGk4T2dzSEF4V2lQT1Z3ZXRDQTQzZER1U090ajFCZlNQcHcwM0Z1QVhfSjFfZ1JGLUw5NFdGVVFUUEp6N21IQ3NiUzFqRnB5LTQyTm54WVEyc3E3MDkwS1lxU2dXQWxNTlgzdVBicjBXRkZwUklGWnBMQWRaRTRqdlY3ZWpybjRCVjJqNng4SlpFclVhakhVa25xU1poM2tlakZ5RmFfMm9FdkdoTmVhTHZSaFBjSHJXNGRyUHR6RGlvQWY4Qi1HOHQ1R193MDJPUjdjSFBxblJmOEZTUlBIbzFEQVQ1YW5ZdldrSTNsd1BNMnA0VHc5ajlPazFuRUhPd20xX3lZTnJhYzYwSzBvQ2lsam00ZTgzd1BSOEJhNUU0RFUzWHo0c1hjbXFhR1lsZzY1R29tazBEVHczZGFORno3cEdhcGRpRzJ2NVdFV2ZEenJoeHFhSF9pTGN1UXVPMk9xbXg2LWxTeWc0OS1hOV9IbXExcENUUGFLWTVmOWNxZE9iWTVuVUszaFMtUUVYclRmcVIwdEJ2OU9sbnV3UDBfY2g0bUVNNnA3RHB6ZUZzVFpvNS1QLVd6UmFGVDhrX09DNkNRckNwcXJjN3Z1UmwySjR3UThadEhHNmt4dUFoSFkzX0h0cW5BLVZQSWlXYTFGdW5GeHVTQTdZQl9lUnJSSklxTFNJN3JZUF9kc0tMTlBBU1dMVE85ay1JUHhIMG9majBIdW1RY1dCUGRNMUxObnk4TUxiak90clFiT044eDF6LW45TFhlT0k1VWlRNlNUZloyOTZlUjg3TUNybFhZdFJVcWFXZF9kY0ZmYzlFLVh3bkFPNFlWbS0tUFYtUms3RGVqck90em0tekxyeUVwaTZMb3VhbTEtMG5fN2RDS0NNX3dFa2tienR3cXlwQ2hZQnFrcnBicDBtWWFMT0RnTUNsclRmeVVYdzFRMnRqQ0prSHFwc2hHRHJ3bWh4MU9FWmgxQzZJcmJiY0FCbmYtNFg3eWFWMzlxQzhrcDJSa0U2SUc2Y3ZTLVN5SlIwYnE2cm9lY0p4cWdLTUFhRDlCaHU3Yk5tYkZHRjFYNTg2ZnM4bUlpQ1pBUGFxU0JyMVV0V0JCMURnM2VzVHh6bkhqNk0yQUtMaHBCTXZqMmllLXhCLWRFTC1oRHF5ZWhSR2VGekxyV00tbTdpLXFiNDZKWmd4N09zZkRiWVRQMHEycFpGX2U0ODNtbE9qU0FjSDc0WmRSMXM0TFNBTnJFeDhGVEVwQXdIZF80NVk3a3BXSzdWZkxIZFRYYmkxN0V1elRoMFdwWlFselJUaU9GZ3U1c1RVYk4tZ21DSmh5cklNY25xVUY5Q2NVZHRZcnVla193Q1QtVnUybENnUGhHRmFVOWYzcXRUNXVEUUNaYTdUWldlY0pRME9IZm9GaFo4WkFFWFVxWjN0U04tTHB2cUUtRk12OENiSFFnX25QRXBkOWY2c0dLSEl3NHdPRGY3NDBONkhGMFpReU1VWmlKcEpxelpyRXVyZ3lhWHFlRVZ1OHN1eGhDaWtCU0RTdmRyREJ2cHk2REdrOUpDWDlrVDg3TTJMZzJKcjFzaDFBWHJ2Q0RvbUlydWE4d0JiT25rcldPYlNnWGR3alpwMndiQUdsaVdPbndmeWJXQURWYmZNTE5uWUdpZE9sLU5BWHFNRWZMN3NXbUhITl94RTZ5R0M0NVUwZXJvU0lodW9XbzJUcXVrSkpHdkFKQmZ1YjRZem5FdkNqZEI1ZVNwWjU4dk1WbVZ4S3RncVE4M19IdW13VVhodGY1ZTl5d1F6c1haMzd1WHBTY1NWZ0oyUEFRdGFSU21zSzUtaFVGV3hWQ21zSjdOb19pdGxKaEx5RDNLcDBxWjFOVE1WQWRtQk5fSTByTWdKY2N1Sk03eDdWSjZJcWtFUEJUYWJralRLRk1vakJuUDNsTlBrb2w2WmlvVk92akFXRlZLVmtFTWlteDdTYTdmYVJlUGJKX2FMTGF1aG5YZE1WNnhjc2pGR1R5cHBvQzFGY3EtclFwMWtUczZSOHgyVnJjM0pXSUZqbnd4enBGNGhvZDB4RTY2RmRYaEtReF85RVo4R1QyMVhoa2gzZlNEUFhWOTVwX2ppRU5zOFJHQTJld0dvaWIydFQxSW44UnlxMTViRWxmWU1TckdFTk5uTWZHYjh3TjROSHNqNXM0QVYwNTJ4WUlZSEdfLUNQVllLSzMzTVhSeGIwcDQ0cm9JT1dSel93NHFUMFVDLUpNaWMxUGdTNTk5NVN5Z19Ib2wwMFk5X015Mmtac0hxT0xOZXl0b09pZ0F4eXROX0VGeHpZWVlBNEl0eE43enhEa0pSN1hDUjR1enlYT0hGY1k5TGFvMTRlRHFabC1WZUFGSWhlMC1mQXdkOTJ0bDhqV2hPdFFkeTBWRC0wQlhfUEJ1Um52NlQxZTV3UVFsemJkcUZTRzl5eE5ocW5FTjZZajZMYkc0S3BhcG1YWUdGbmJiMTlOLUpIZkdEbF9NdnZ0N3hmdnk2LUU4dXBEajcwSEg2RFpZWk5JU0hqSlB1MFNaMG9mUk56WjJpMnh0akJpOUtuUzk2dmo5TjlXNWR5ejJoMkZidW5zSkdjbEtYUjJJYzl4NWp2VnpIYnBIWldacUQ5ellwcEwtUzlEWHU3TEhJYUlPMEMzZmhkVnVlRHduQUszTUlHZ19uQkR0MkZ1TDNrX3hwal9uUzdtQkpkT0xhTFdjRElVdGxhaXNOVkltcHZzQ250RGllY3p0SjJ1VVpCT1lyd2U2cHI0TW10Sk80am1IZWRwX0ZNUzUwX0xpYzJYckdZUEoxdDY4T3FCSTR2RU9RcVlwOUFiUkptam4zcGM5a2hZWk9TUVh2ekI0U1FqcWw3UV9fdGxrNjRja1ZIVVBPVTBiY2E5RVdIOHBxa1BUOTBtX3IwYVVfZ1dHbnpYdVdTRDFQRWtQOVZIejN6V09lR001ZTEtYVhQYmZuZ0VWcnJjbGhrcjEzREp5LTR5Y1d6MFVzdVF5cVg0V1M3d3pHNk5vU1JTWENqOE5aT2tLTEo4ckhfNjlxdkNqaXZUb1AwM1pmMDhubmVoTGFUZ0pyV3VPVDhiMXdXZW5EdzF1bWR4NU9uUUhLaHVfWjlxOTJDa1BDOVo3UzhNcWtLa0NtYlh6RElaSWZ4MzVGU3o3a1g1dmtRc0hXX0FHM3hvYlI3YVM4U3M0OXBGbUlyY2o3VFU3MVYwLWE3QThQVVJOLVBOSU9aT2h2dy1FVW5aR2hiQW5CWVYyR3NCa2VGX3VpTkk2RG9ZMHhqRmxQeDVYb1EwSVJhS1otLWJrRmNabjRhOXYzWjVETXRmcHp6RWhkTE1iTmhaallzdWI0MGxlV2ozLVR1eTk3Z1lxQXlaQ0VISkZMTWVOdVNYZHhod3MzS01oYXhDQi1vQUQ0dmpQX1k2eHBjdUpQYlY0SEYzN3RibmdCaWFXN0F1SU9vNWlEcmtPSVpsNDZTSllSR1c3SWptOF9RQzBPTmpfSGsyaWVVZUN1Q2pSWU4xLUU2dU1FRFlFb2E1aG9YWDBJWm9yOUVMazlZZWpPZTM0ZjNtVFpqVTA1YWtwVVEtVi0wWFlfUVhuN0YxRVdTSllJVk8tN3hZb2V4MnQxMzFxSEF6ZmtWRGJuZFk1Q1NveEl6Ujl0NlpzNlVUTklCSHJGWFdIcVpXdjcyUE1TTHNpTGtNeTVkVy10LUY2UU1PRGNzejFuUTdjVkdkMmtCM3FfZGFsV0pvalhPblMtNWZOWXlLUlhrTnY0cDZFUVVzRll3MUFienp2YXpoX2ZwVlBBNWJSaHdNOVJySW53d0JnRTcwMG1KejdGSmNvU282SUFMQlV4VHNaek8tbGNoUnItVUlJMjkwRS1nT0F2SkRxRF9VU3ZkbEhIU3lfN3JyMGkzUGhISWN2bmUtcjlaY1BLTmJETHczWXg1ZzZfbWxaQWRIVkR3elFELTVZci1NY1cyc1diYWNzdzRrM1ROUUZCTWpuUTBUSmRnT2pkNDhTa2d3SHlYUlVJeW91c0J1OUY2ZHpTM2k4X2dkSV8zaEtjMXRYQTJ1Mm1TdXExdGlGTy1rU1k5WmxFTWU0WlA4WEdBSmt4SmxuS2h5d3J4Z0RHWW5ReWNOaVhsQ01uRms3S19acnBrWlN4QW1oTTJpaE80UldQaVBCcmhUU1BzaHdMTF94emJqUzd6UUlQY0pGRkU3SkRDb1RFdTJ2LTd3clhaTjgza3Bmb0dHcHhBZVBpR3diUVpaWnR2TWwtNVFNdHlNTkttM3Fwak9fOS05ZkpFM092c0k3TndYb29IRDk4NTNWR3B1dGFmcXhVRjNJYTVtU0tXZkZ1QkdLbWZtbjJiT041aC1kbnJkX0M3d0tkUU9vYW1MN1hvdVRYSmRnNVZhSmEyUmVTdzdMVVlDU3FBcEYtaVF1dWc5ZE9WX2NrYk9KWmY3Ym56UmdHQUc4VWIyZjBTZXc3dGhoOXF5d3Q1NUl0c21EbktRc1MzMzVKZGdBRE10NEtSeEV6VU40dzkzR1ZKY0JXY05ZcEVaNXp2MVgwMTFxTzlicGhBRWUta01ZMlE0VGh0UktEU2ZHRkVwbUdoM2lyeE03SjlNUjhYWUVEZFZYZkZ0MkZKaHZodmFpaV9aOXdnMEdFR1Zoc25Kdncybm9kMWRaeTMxcnhwZkJJcE1xb1JYQWV1QTRsSUEtejNmWGVkUXhKbUJPSGpudHpSTWRCaERFUDBWMktEai1vT3poaHlPT2U3V1E2eEN6ekJ4eThNcDJSMGt5Xzl2VDZya0hYcFE2TnRWTEJtV29zM2VxdjloRGxYeHR1MDhRSmZXTWxJQXJrUFZZbWU1d0d1c0g0dTJLLXVFLVgzTG91TlFTeDZieUpERTNUblFxTHYzS24tbFNSWG12OHBMamZTNEhpTHJ5YzJ1clliLW1TS2NyQ0hhZHFWZ1V6eU1YS2RGYzJHNE5ZZVJrRXdSeFFHWXVsUUVCWHpfWHNzalNwVm4xR2RWam5pMURwNllKZFlCcG9ZWENYZnp0a19uMXh3MTREUm5oa1FlQlMwZmw1Z3M0OGVkQ0NHVjVZZ0t3WUc5aHh6Q1gxbnpwcThrUDI2TFFvdXRmZmt3T001Z0tyc2NWXzVaVUNPOVJqVlNwQ2lZWHFBUHJFNDNnQUs5M1hEMVlUdGFXQXdSUzhobUlFUEFSLXVtRlB4RlpUcU1jbUtfSHdZYlNjeUxnc2ducXNHTkVWVkxNQm0teGdfSXhUZTJOMHNyMG9jQUFiY3ZMMWhnUnoyd1NDV1UycXk0V05QVDJkWXBuaUpSek1aRkFnQUVrMFhGN0dfaGVBZzlaTWY4TUFOQU1TM0JmckJsTW9YcjJOdGFQUnFxT281eklGUmRBUE5mWlprZWpZRUZ0cHV3ZDAzYms0ZmxuYW1PSWRQRnZjY1pKMmY0MlktQTdtNnl6OVA3Zmk5UjVmRGtRa0YtSDZERVk5bEhUdW5Zc1FuYUhLRVRub0pFMURlT0JoN3ZIUzFnN19objZTQUlzOFdiNGZLTnRzazN0eHdtUUtEc3hodHVhLXJIQjZ1OWM3T2dkdGFBOFc2TkRzSmR2aDRrYm9QdkJ5UXVzWDlkT2FEMjZpNkp2aUlSVVpFbjBaSDhIOXBZeGdYZTh2bERJRW44dFYzVk1WeU9PdWQxYjdDQ0Y5ZnktVG5iZndtamJnQ2Z1aERpVlNGNW9SN1BPLW4tamktR3RBQlc1MGp5R29FYWNrYTMxdjBuZ01uRUY0Q2dfaThXZDRQY0lkdU51VVVGMmh5ajZjamQ3cFV4MW1BM3ZuM01PbDh6QmEyMkhFREhFR0dqOFJES0V2bURWOFNXUXlXbXYwVUVwUkd6dTNta3dkb0lraVpGZDhpRzdvdUhRc0lUSDd1OWZkanJVOXlIUE9vYk9VczFCNFBjSHU0TUpEdk00TFhaUVNKVm5aWGk0R0xQVnlzY3p6YThhYjZlT2VoaGdNRjk2OHZjSjM2bTNkOU1ZcjhXTzhLM0NMcmdFaWdtVk1oQnJZVVFxWUNTQ25jQlNQejJSUW1NQXc2TVBpRHhBNUN5ZnFLa3hVdHBRLUR2MXV4TlVJLUE0WTlwbUlDQUN4QmFzM01lTlJoVVhvVEl1NGt1am14dG5aLUphNDhMWEc5VnY3TWhXckN1YUtyeUREOXNHMktSOW41aDFWU2J2T3VvTE40SnlVMXlEb3FvLXRLSG9iQ3otRnVHTm1uaW84MUpjMmpna193aFBxNHdfcV91NzJfUXVSUmdaUGNCSmNuQndpSGU2ckRwa2ZaMmZRQnU4ME1OcXREVlBhdzZ0MzdSOUdwWklXMmM5dldTSThuN1E4YmppRHktT2N0UFpMbFJ5MjkzSmphMXAzSjFNSHFCVmlIZVdMVmFDUjZOT2gzczh2Z2t6VnFuWTBhNFdKMjJGdXN1Y3lFT1Z4NU1QU3dwNUN6Q05UUHNOcHBFUW0ySElyMmE5ZUlSa3FSSjFkMDV4N2xNeGFpMllEQ09CZWNmdUI4a3NsOU42a1ZfWENVREpFa282eWEtSl9rNGttY1U1Rng5eXZJQ1hrWFdia3YtcDlMcEpXeHFpYUxEbmpFMnRXLWNzTGs4VXdKUTd2bmt0VHBoZ3h3U2VpOXNBS0ZYa2NtMXlwbnNYQ0hBc1p1VnZrNE5IU0ZpcVk5aU9KU29NYllsR1ZTb0VoZXgtbTJ2eFZoMWRERTU2UTZTY1Fsa0VEOGw5Ml9yQm5lNDhXeEpfNHozbG5BbkJRdjhxa1FlQlhCd1RvekdaeHlsQnd1RUFQdk9pbURnM3hlVF82WnNLNlMwOUNyMVg3OTNyTGVZZlZkOFpxNUZiMkY5YlgwMWdfck5mWS1IYkpyeDRYY3F1YzdoVWp3RjAteER1MWVTZkMzNkNvT3U0aV9Xc1JKdFJ4TXdIMzBKTU9YY3NRa3hqbFFJMG00cG5MWEZVMEZpUDd1b2JKTGNiaTVTYWk1OVM5TWRPRXNoWThQT1hNVWJwNm8tZDJaUEI1NlFraHJ0S0lqRUNzOVI0N2lVWXVrM2wwdnFNSzhwT2t1aDVfckxSUDQ0eW1kNUxnQzdsNWk0U0FXVDk4M1RLZkhENDNqSWxJY0xvY0hPR2FJVnBuX1NyYmRSS3d2bDZJV2NtVlBjZ0RPQlJDVzhuQVJ2dTlzOXUyY09XOGNmMUg0OWlMQUM0c0thRHJVVUZDTGdZZ28wOTYxUXVjY0tZU29fc09YN2JlZFRyaVlvNmx0cHdjQzZ5ejZmVEJRWk5KRjQwZkd2cUVNMk5lTzBraFlvbzJDNnZoNldfUXppdkNaTmdaczRGMTZlUTJ0VTdpM2JHM3FUZi11VXNDa2RIQ1dHZUd0amNjZmtmQWRsdk0zdk1ORXRGN2ptRUdNaWZPcUFjZHZ5d2Qxd09GWWpDTjNza0h6OF81bEpMajg5RGJwNlZpUEk5UFVEZUxpWkZGcjh0Vk9jb2Q2dnRzWnRKQ1RhbS15UXliMDBOcHZzVWhCbGxSYXd5ZkFLQTFTcjg1WW1pYWlDU2FieVJfbzktSG1GZV84bXZXV0liUFZaOXJLc1ZSRWdyVzNYTTBlX1dDUXFJUkFYZzI3RmVBSUpBeTFOZDBQOFh1a29ob2d4cll0aDZXN3JGcHl6b3ZzZjFFYUdRMHE2VXFKTmNHLVZiNWhFZnhDX0hGcm15bUZIZzY2aGhPUFlaQ1AxdGlrRnVLOEt1eHN5SklTNmNSc284c0hvWnlDWXJoNGxsMW1vM3VyMHJqVFRPc0hKVUxOUEhnb1pRcFlibUMtS3JqdWdFWVMzNlpSVFdKT19HbEhWeVNMYWM3Z1V6ekFLdzJSMmdNY2l4M2pzMUZvUzg3ZlBRbVN5Mk5wM1IzQkNkdTJuSzBFNlFSUUgwRHZkN1dBM2o1Zks4aVJRRk5MU095RHRGV1VjbTJ4MUhaWUtDUjhkZGRfXzVWb3dpcVdBZTNLM280UHZFUVQtNnQ3d2tpRmpYUzNyVlA2aXFzUlBYVmtRYTBNSlcyZnlwUkFDaUx4ejUyMFJ1MXRSaGVDbHFCVjBCOUpwaVRxZFpJdEVFbkV3OExXLXJ1OWJscGNTSTlTQkZaSE1hREluNnVSSDUtY3pNNkRnNTFXUTU0MnF3ZmdydXJvSGV4ZGxEdGFTNm1tVGxJTjJvZVg1Tnd2azFBaUtKd1EzRDlucWNmTVFCcjhsRmZkblZxYS1Bam8xR3pkeUhHS3BvRVdNTjNEVFkzNGJzanNhR1k4c25XajhrbW1ndEgzdnE4TzBnNm5vRFByd09YVjMwRllrUFlnUjRfb0tHQnVEdFZtNjU1d2Y3N1pkTXh2czUzVmQ5NzZGRVNWdUNSVWFGWmc1bmc3RjVmcHFCMVhIdmE3OVptcHV3UFBUa1dMTWZyREpkOTVGZGZfWS10T2JaSXVfWUszbmNuX3ZkUjh3aXVFcVR6YTJLeXo3OWtaYTA4alVyeTZJZ3NZQUZxcG9kMDFVbC1ZU2ktQzRYRmNIaWRNVkZvT3hnaTM3bllnQ0Yyby0zeHdDeHpqTXF0VVhkcm04cHRQSGczcWNRTXFWMGkyVTg4X2NYNkZ4X2M2VnJUMGVsSEZRR3pCU3hoWl9WLW9vU1N0dDlvX3hlU0NoRUNoNUM1MUE2QUFoNTlxOVVrVkNaZHQtMmpKQ09vNHRfWl9SdGRidzlHeDFLZXNLNnRxcGZ6Y25sMW1vWWd4NllNRFFqaEVPdkxNaWxlRG9MNjROWkdPNGIxMjlaak5IcDFQMHFjS19aSUJMTV9HejRacWFzUzh5OHBfdms0eVgyc19Eb09BRmQwblp6eHI4UzVCYlNpQWlKNlBLaURJX1N0VkgzVG5Hc253eU1GeFA0a0JUYkhzbzZybk9WVzZPSjlseGpjbWs5WVZ0TDE0aHRuUUpCN1pzQUlESWpIdnZoWXgxU0FHZV85clk1RzkwMk9IcW5GOUhRcEVGbXRnTzQ1LWRydnRrWllLczRuNnkySG1LNF9Gd0dRUjk5T2Y5ankxTU1RX2VpYm5kT0luRFN4cGJIQmw5RFZPTUhnVmpwZnRqNE80NEZFVDc4MDgydlRSQzdRd053amc1VldxNTdTZ3lYU1JDaXUzcW9fenVkYzJ3cEE5aHVycUZVOUVkbllMZl8xWVBSQVRnanVIcmxab2lLN3RWR3QzOHdZaVQ1TjdFam8xelZ2bEQ2RnV6eWcyTWxxaWxtSmt4SGpuejQxUjRRZ01nVkF3S3NnQnVNWjgyRXl6ejgxbW5lOWwzU2RzQ1AtYVVuUUd4UFdncGtjMVFzTXpfUjJCRGYwVGw4UnBsQTJrSnpwUHpUOUdNOXh4WjRES0JFTXh5dUEzRVBwTzVWY1R3NEcwSkQ5dnQzd0dneU1JV2tfNUxzeWR6eVFvSmZWR2lXYXFEY2dxYVhkVlloMmFuRzNoeUQ0N1BEQW5MNzJOSkY2VVVuYWpQSUh5Z0pnX1VQWjlPajlPWnVEY3dUSE4tR0ZrbGU2dlVjRmhmSk81Rk16aUxmQ2R6REptOVlHM2p0QmFPOS1IVkVmcmJrWEZEdmhuRkJSdzc0dllvTUtRQzdFekdvRl9DcWtNQUZSR08ycVdmRnZ3dU0zZ1dLSUd1VGQyZ3FfWmdPZEItZnhtZDNWc0NkaDU0Rko4cTJtMXF1dGVLQjVrQktZYkxFb2F1eDJIb3JQUEdEVWlUdmNTQ1o5czB5SnF4Qm8xRVJRTGJvYWpxSHp2bnRhLXhCNGdWYTJidmNOS3dYSktOTWJETy1tMUtMTmlpYXZCOWFCMFpsaWRGbmJyRkU2dkhWdTd2RC10SEFHRmhxZ3hWR1ZqVXlRVFFyMHE4UlFKcVJxZDc5dkVldkowQU5DVk5CN0h0azdOVV9ObElhY1J3SUg0ZEt2WlhjVlVPMzM5SlFUNGxURy0wb0h6Y1ZwY1llQ1NuRFllb2lfTHVnNHJLcEVkdmlCV3NTRU5JTGtwQUFRM2V6RDVYLXhGdXZjWUVHRkdsMm11eWZBay1PcW5sYnhDV1ZuVFM0ZHZjVVpQRHhxMXQtNFlkX0FfUHRCVDZhcUJyWGtyZ0Z0dGZyNDJySWg1R2JsbDBRVWZ3WjlLdTRQejc5bHFKcUNNbnpLZzlic3ZJa0g1ZkJlRnZZV2Ytald5c0s1Z1UxSzRnQzJWby0xM2wtem9yTk1SaXBvQ0REWHRkZllpZUxzQnc2b1ZuZ2ZrWDdaU09UVUFLSkNaTkFocHp0UWpNdFdfVlhleVRyTm9lbDBqR2d2cXZNSDlKb3JsUDBPWWJYLU1LS2ZVb3RzWkljc2xvTVYxRDFuZ3NFNk40eERFMk1rVUZJdlNUY0RtLWFIRFZEb29kWmVCbHlWMUZIVjduQ1FZV3V1LWU1Tk8wMnlJc2J6UjRkSVV3WlJaNlJIREdiMzRydHdPSVFsRldBelRCX25nczNHaFdnM3pqd0swYk1FWGc3OFZlRzJtZmtrWWVZZzdZN09EM3pMSDRaTGJLWk1ha2dxRmNodEJ3eHdzdHNPWERyWVJXU1dOQm1DaUxHNHlyeFlQU3NnSWJkdHVVN2NxUUZvYlBQVTB2RUdfeVJFSTMxaS05WmJRaHB0cmhJdlNaVGh5QzlSV29EV1IzenpaVmNWRzM5LVNwR0NzR3RldE1TUDBHOU9rdW9pc2VDODFna3BuS1dkRE93dVg4ZktVeHVEZHRtQm5DMmJjVHpkU3oyODlCR3FKb0RBeDNhbks0UzViMi1rWDdJZXhzSHVXeFdBbGNKUkpsOHRORHg5R0tObFZYc0RVLUtFWXo4bUxaa2c3U2UxV1JQOTRnQ3lQUzBrbVphX01oYV9WbnNBOE9YRDZjWG5LRmhCSE5fRnZkNU00VWJuQzNHcWptQ0M5OWFVWTBFSkFHeVlkR1I3cWZkRWxrUjNwUHlSTmhoc0MtQjZwaGFTX2pTMEVxYzNrSkw0U0tVcEktXzFUbDV1Q2tjRzRTNngyNllGVmVYbWRvQ1ctZ01KODFQalg2c0d5YTdBTnRRWHQxekw1NFFtNXZnSHQyRlhldE5BQWh5VG1yN0I0QUZyMG1YcTJtcDVEcnhWRzFJSWV4V3FpQjI1MVBKSnFkeWlHcFRMSDVTQ1RDNkoxSkR6RjBtZ0VwdFI3UjlsSjlXRjdSRFJkT19VVDc0dTBQTmRvUDlLYld6aXFlRHZxcmhxWkVHNzBXN3VteHRlZTk0YXVIbjZLQTRiMlNURHp0VFc2N3B2M3RBam55d2djM2ZfZ2xVLTBjUjFtM0pfdHVGZEdEdE45QUgtVTJaelkwNFdlNVpqSC1MX0d5bElYWTU3eFRvWFhORG9RZzk4b3B6aHh6YktMNlVoamJ1V0luSlJ3YkRsR1hZN3BQZlNYVktKVW9KMzQ2eEVqSnVLdFpsWkU5V0F6bXhTSlctOFV4eG9mODJfZlNKc0l6X3FTRDNJOEl3X1lNaUlRVnlLS2xUa3JTZ1JnSi1DbHNuOTBHeDZuV2V3RHVlNzhlR09jZzgzZzY2UjFFNlJHMXdjbU9XandYVlVxU29ZWDI4RHZ0cmxkZDZjak1XaUxUN21VaUE5OE5LSjBJNEpRaktSamgzVU9mRENsT3RRZTdLMjloNjlUOEtSZVcwekdqVE9oR283UnpJSjN6T3o4Um83R3NwaVdDbTVZX1QtQjZ3RjRQQzJRT3pPekwzUjEtY3VrT09EOHVmRVozdVEyZmVobjBPMjB2WFdZTGp4WFJqQk9GdWlVY1FSQ0Y3bXRqcTE5WlpxbFQ3TTF6bVJOUHZad3p0U005bzZSOVA1c3NvZGQ0aEVpMW1OT0x1SXNLRVFQVTFHUE41RzVhSUl6anppVHpxUC1kZXJOV3doeDhxMV9Gbmpxd2paUHNubkM1NF84bWRKcG9CTDFzRVctS1AtM016YUE5UWJ5MEdhWHNMSlRqaFZOclV5TEF0cDU1WVh3TlJDcFJCdnZJdnpQM1gtVk1LdWxxdHVVNldfNTBjQlRKNVNBbmZEWXdqTmVpVWVKb1AzVmlyN21lLXdXQllGTV93OGlhLTRvU3RyYkpKUUZ3RDdfYXdqVHBJSXZNOHdWWTRxVW81LXlVeGx5bGI1T3hkVzRaUHN0d0d1emZQSjhxUkJmVklCcUg3SzVhMlJCV1F5c1htaEpMMGdkVlpEVE5helBSQl83RG53bFNQTVZRQ0pYeXdodnpoUFZEdU51UlRPRGFMUmVIWnJ0dmltc3NQZ1VWODlNRGh3ZHBxUHB1bzBUWjNxTmdkQk9JYXd3Z1RsRHVScE1tUk9ZSFdhNE1wR0V4ZWwxTnZjdTZ3M0ItNldmOWc0VFk4Uy1oZDhMbHZxTi1YcU5wWG9kYnJadGNtQ3JSVjVjQlU4TXlpdGhxdHhXSUI5ZmwwXzVJQjVRZ2I1cVNqVFFxZ2R0SmNnb04wN1JaeUtYN0dSVmNrWl9QMG1nMlExaDRfYWJxZk4weFZkeWhSMWdFXzEzeW1Xd0o4ZmpSV3RBUkp3TkJwNGJYNGdaOWVRNGc2SlMyd2VjeHFkUDB5bGNfencyWF9xOGdQSFlQVWZKb3R1eWlWdVo4Z3RHeVJkc05IenZUS3I5RDNnbFc1aDdXZ3pWWFpvZms5UnRmZUhWY1N3UUNWY0EtTHRwbXNGS0FnTHRRNEl2aWt2d2dQUDJJYmVIeEdOdE81bHdwSUg0SGxPdWl2a1ZESE9uVzJPcXpteElsVktCZjhXeUtTTDF0Y3FaLVpJT2hpQ1VaNGN5SnRTRXV5bi04VHBYWmtVLXBXUU1aSmhFUzdoNWdheFV5SmNTLWJYTkRnZlRDSFZqdU9md3o1eVFqZ1dGWHFHME1xaFZPUXRDel82aWZSQk02dXZqMGdTNVBoRHVpTmY5SmVUdV9Wb3VHYzNaSFJSVnpjeHZQLTlpWWFVQ3JVVXRESGE1OFA5MzlZd05XcUZSZ0NmQXh5anNzZ1FSYy1ybi16YnU3OUhxc3U5RTBYS0F6bl9HWG1MV1RSaTBtOGZvelpaTDNaNG5pcTFuVTJibHd3Z2Q4MXF3NDhBOWZER2pQVEVtd1dJbUowY0lTb2J1Mm5qeXVjUDljY2tRRDBVaFN0Q3l3c1NoU0NFekM4Zy1YekZtNVE5WmRkdkM4dzRpampLT3ROSlNxREUyVHZiTW5rTEFLMkp4X0ZrTEZYSF9ybzR4VTJEbkxjak5xUGFWZHNad1NQUFdkRnEwOHFXNV9zUjJGVFpqRUZYRlZWdFV0bUZRZGR0Q3kxX1BhQV9IOWFJQmR0TWZZMEUxeUxvbjZndEdCR09Fbmdxb2NNdjZrMTc3Z2YyR2RpT1RrLVRWR2ZZdEJkek9QZ0FhazJ6aURSYm9qMmRKeDhPQXhMQjhCdVh1X2g0Rm1sOTI1ODZKOTZFNXNDaDVKemFHQ2hrYUtFUWd2UWstTzFaeTJnYkQ3MnppSEhHbldfMnFOMWk2dmQwQk9OQ1ZfOWlrZU5EU0xCbmc3eXdBbGhVeDg1RjlUb1FIVGNuLWlVandFbFQ2TTBOelFRX2ZpdHBoWk1HOXpzTWRFVUF3M3Yyc1RmWGQtTU5ldUVaN3RMVmp3bFZSeGxyS3hqTWNrY3NqcjJ6ZVpaWUdfcUphR0NHS3dzVV9vdjlPYVRKay1RMmVHS0lmNlV2T0NITG5EeVNiay1UM1ZZY3VYWnRQV0pqNE9XRkE3bldJSGdqcURoMFEtN0JJeVowcWNWdF9nNGdOWURzWHFKSGJlYll3bF9rdXRwWFZfYzBqQXJUYjFZX2VLVGJGOURnTjNTT0xaaXJIdU1xRFJFR0NGUmhkZXRGNy14aUFsQlFZeWlFdDhzM1liQm5iQW9adEhFUm5nMHBGRC13dS1tUEx3bS1HUUZLcWNTUEJqNkFFaWVMdXFUWkVvampOTzY0V2xhQm9ha2QxX1l0ZjJvTEZ4WWgzRDQ2QkpfQ2Z4VERGdTB4Q2oxYmNMWkJPTXc4THpXcTlpa1VkYUtIV1JYMGNrSVNRemVsNllBS1lnLVVLeEktM2hUb201UnZIdzFIOTUxLThndnp6ZFhUalJFQ2JwMEpGYW5vMklSMVNmRlpYNlJBaFIxYU43V3RxcVdjaEhxcHh3clBDaUxwN3NkbXFtWEs0OVZ0UEhYWVBHbGhqcFlKOVEtU05jUTdxMlV6QktUd3ZrM1BMcGlyLTJCRnd6WUpJcXRCeTFlWjRHVVF5SWxJMm10MkNLbTFaZ2dSU1ZtbTRoankyVGN1VUtOd2s0NFNTVFRlekdQWlZGak9wUWJUcERaZks3ZEpxZHJYSjV2c3l5VDViZHNGcFdPbm5kQnl1LWZfSk40ekhnTHRFOGNpemFLOEJmVzFyRkJHWFJTeTgtRXJyR1I2bVRtMGlWakNaX19hd0poVHNpd3h5eG5uWWtJTjI3Y25iV3hrQTI1cnoxY1JKdG5lTDRzOHZpUWN4VWdLak5UTW03TmFyY1NrdDBIZkp6bVZZd2E1aGFrTWdrZVJXMmV4dDllbEVQeWt5ZzdWQklOdV9INjlFMFRidmk2Nk1nbVlLZU9YWkxnei1YeEp2QzRPWENaeVpNUlUtdk4wU29wRUd5OFJfVndJbkxrRktyUndwenVyNk5BbnppcTJBZ2hxMUR2dHc3YllfdTd4VDdlUG5SYms5YXMtNEF0M3d6SXRuX2JmLUw0T001ZWxpRjFhWDFBNlFlNmJ4cG4zMzNWSlRJbDZ5a0MyTnZ5VEVMclN3U2o3Z3NpN3ZER3VqRy0xOHQ2OV9QY1VKV0pmVHRwZDhUOXhXeVl4eG5kRmlYYWhhOHUweHR3NEhUYU9RYjdJTDNnenBtekNIZHNiNDNqaHNhYm1LOEw3amtZeS1NVVRkcnRVREVfLW9HbUs2WFc3SC1mSmNIZnI4SFJaa19Za1pWRTNYODRtQ1hBSEhjUWJISmdjaGNNODJJZEtrZnZObVB4TFpubVR5TndGWDZwVTBWWjAzeFpzMEE5cTEteFdTcW9BWjdPZFlsZ2ZBQkQtNy1KaEM1LWk2QjI4d0thQVJoQ3kxQ0hrX2dsNm5jLUpYS3JMYi04MUVnOUVjWmxpaEhCcGtuV0l0djE2YnBlcXllTGdZMVoxdDRkT1FKVGE2d3lvZ0ZDZFA4QjJsSlR3R3dlWUZUQlJvajlkNHVPWjJNeVRRVG5nd0lVS0pxRVA0emtXTlV5bUtQRzRiLWlDRXZGMVFQSFpSbjk5dHl3R2txSEJYTjJ2UjN2dW8td1BDTnJYdmxTbTVCTFBjRk12NjVQUVM2WFQxek9YcHZCNHA3SUYwMHhnaG9VbXo2TDNVY0R2c0I5M2RtSmMteGYySnNwWTVBMHExZkpVRUx5N0ZaeHRUU1dhc0hReGFRSXJIVXNfSlZyWVZnNVV6NXdIa0NNbnlCVkl2eEdYYlpyamFnTk5WYkFYUDdRZUozX3BEcElrUmwzZTBMMjRVTjRRYng3NDB4STBpVU1nRWR0a042V19CYXBVMDE2Y0N1M3pCTXYwcDBack1oeDNtaVhIXzBGRHBuam9XMVRhR3NRY1FQQ3d6allqRm95VEhvWGFNRnBzdmNvTmJhQTZlekZTUUlEM3RGazlYUU5EQ3NwWGdLcVhXVFEzNFF1cXJmSlAxUFFvS3F6ZTgyRjJNMHVpS0c0V1lWLURMV1ctY2NHLVlsMlFSQ1RPTzJ5QjVLN0tDWkpYSERSMkJmZ0w2d0tfZEZCemRPYUV3RG1jZFNxRmNCV05TNDlWRUJZLW5FYlBFN0ZPRl84QlhIMWJsMVg5RU5vcVkzX0JYd1U5aHpiMDRxclJBdFZIQ0x4Z0pseUpqRDFPbENydlluV2phaW5Kcll2U0lIa09TeUNyc08xM3hfV3RVeDFOMTFGRjJ5TjRtQWdQRDMzMnNPUllBWm1pRHFXWV9mNG5hazhEYlFnVEVoOW1JZGlOX3g1c3Q2RlZQTkdnTmI2UWtzd1RWTVA1TXBWeXl6VzhZNlhkQ2hLQjBOeE9wb0cwdDBrWk9iZzR1U25vNFJZZkdET3F6MExmcTJMRnJEOG9yMHhJVGFTeVlxSUVKVkEyR0t5cHZCWC1tOWc2VTZKYy1oQTUwSTVjMmpyWWs1M05hdW1kRWIyd1lCa1Qzck84emQ2bWdSY3VfeG42NzYxcnMwZGs0QVpkWi1DelJmekdmdWNRREcxOEpobzZvMzEzaWFBc3QyMnIyOUxIMUR0QUZJbVdqbnF4cnE2b1JwRm9ldHUtV21lMnFhVVBJQkdKd1lHTXRpaXpMVHl2YUgwWGFGc0V5d25RcFg3cDlScV9kb0VEbEdUOE04blIzNnNKRDBCeEd3UHc2NVRzNWhrSkVyWWF0T3VDcEFzcjh0U3B3Rk9tMm5TaXU0RVlWVFNWbURfTC1sUnY0Ql83ZEpSZGpiQ0cyN092aUlKRVZ3VlpyT1lNZDhvTE10aTlGVmtjNk83RGNLZE9BTURLcnV3Ui1MdllTdWh3OWhNeGhDQTI3WThQX1lqWjJhX3JZS1dXZ3Z0dlVvYTNPakRnc210RWNWM2dqV2U2a0dsOXpXMTNqeldFRTU5RElBNVZhUWd3RzFHSXVCbEZaeTZOaGZweVhrczRrUEpKbUY1aTJCeGI4RXJwVlBvQ1dsSktYaF92ejNPMFZ1X0lzUUtvM3hlUVprVWttTjE0X1NJdlFqY05Iemt3V2FyNkF4d1dCODhGbmZONnhvUXFPb0J5MG1seG1pME96ZGFva0R2aVR6VDlKeUhNRlhzQ0VOOHBGNERuQjhlVGJhSGlqaWczRlJXZWlmVEkyUHhOdVBQcE1RczFndi1rZ3ZZZHpSbkhRN2U5NGxPNV8wV1lZWkJGZWtBVjdWT0xTVUxMbjFidi1KYXd0Y3piWngxN293ZWVfUDFVWF9DYTRHSWRrYlpiOGp4WWtXLXY2WEswUUJIMEF3Tkx1czZ4X2tDU0V1YmJDZ2lCOEN2RDZTeE5fTjFOMFdYZ2IxNk45aWtfd1RQZ2haZmUwS2p6R3diQkRtZlVKM3dSWFlWQzRsZkNwUWt3bmFacGpWRU9PZ3pWak1Wbm5BSWNJQWhYN3hkZnVpdWZiRTZZZVJnN0NrbkVGU2RIYVlLdDdXX2x1bTNSN0RCZUREZDBzUE1NMWhnX3FVNE5CXzJxLTZxOTZISWFSSWRkM3pySXVDdGJsR2lLck9ibHBDSXFPazNXZ25DSi1aYktGZmpFT1Q2QVQxS3BrODcyUW53LVlmLThxMk5YTHN6SjlFLVFrQl82anVTTHRYc2NPNW1QWlVVdG9YSUMtWC1LaWc5VkpkTktLei1DbEV6eENOdjBLTXNwX3NfRHQ0VS1lOUNnWmNQYndMMzJOd2NCblh1cDZkemxWR1VtWUpTY1hwUkNUMldlTnN0QlFwYXdjSmVzRmNWMUtrU1doMnB3Wk0zc2dEZHF2NVJaYXdURF9OVE8tLThrTkF6MnNhWlduZzRmS0tUbmduSXVuZ1pIaGRtYkJMa09Mb05KaDFjS25haG5QZDJnTWVZYnZMeXE4MjRuSS1jb01kcXJXV295UFEwUUtjcVMwZmhIZk5HN2NsTV9wZUlPYmo3LWYtbDdhQ0hTclBMU2RmdlBNSms2MldTdTdnUHl0TDBEcVc4bnVEZ0dOcldDVnJqX2gzQ29wUWVmMlhiVmZULU5PTlh5bWFLUElKT3lYT01JNk02cnJjMS1sSi14T3ZsREtUZmxfZXNTSGZMa3NXczZBOGhzeXlIQ0RIbjIxbmpHeEQxWHloUkl2YjV2UENDVTZ6OWVIYjdnWnh1cl84QVVNRENiemQ4R3BNalVkY0tBYnBLYzk4U1UzOFJPcjk0TnlyQWt6dUdrY3laTTVYckVUbWdncGh5eDJ1ZXB0YmUwdURUcmdkWF9yWWlicEI5WXB6MHBreWN0Umtlcm5wSzRiRFhseGRfQ0ZIX0hFNHllT0NRU2trWnRjeHlzSHppYUtGeHRMc2ZOYmYzNk5vSF85eURhUDNjSGp5ZVZqVng5emM0TEF6S3NFbUROeGpaZE9VeDFvU3ZuWnlXSG1GaDdsZmI2WFpqd2N3VU9iZkRmLVZKVW9kRjdMRWV0SVdzNEZlOTZ0a25ZOC04NWtaR1FSbmRFSnVadDJhOWwtTW5Pc2czbWg1ZF9KS0VEVG5qcDJmUkpjc3RWTzBVd2JDOS16aHZhVnRMNHd4WW1FZUd2TkFjbzB2Tjd4a01adzdWWXczS3FaX3VKS3ltRjBaeTgyU0phMUZTZ0dhVUF2bm1wZ2xlRVJ3NFlMdUVBcnBNVF9sRFVvODEwRnNUUG5QdFNicDd1V3ZFcGJnWWI3SnRMWWtJeVRBRXhpVGNTNndlMk5YVEJrVmVNWmh1OGpJNzZZTV85VW5PYWVZMzRabml5X1Q0NXJiVHFUYS1NU1ZpYlZOcXZfVm5XR1laRUN4ZnVTVlkwM1lVZ25CSDZHdTBUSUlsUG9Pc2YtNE1aS3AxYnB5dTZ1Nmx6YlVDeHRSbTVzOWJnaG9aTFBQRENmOWFyLWNpaDVDLVk4bER6Y2JqWTNmbTVZeVBtTHkzQ2Z4bU85UGRyUFAxQTV2THhXeGhkNkZzbDVEYTJ4emZ5MlVMZDZRUGlSVGUyR3VfY3dxUzlKQUFBNlVYbzRlRzZlUWNaaWh3TnRaeUJZd09obkx0c2FTUk5veHN1YWNKa2EzNmNJc3Uta0JpSlNMVUROdHJvd3EwdkRxZHNXM0lhSWV0SVIya3gtdW96ZVBsZjRGVUxHUkxmUVp6LTAwZ2lyOVAxTmVWbi1KcV9JdjlZTkdvNUlKNXNiaU5nQnduSHVGNmJHXzdHT2Z3SWZxOTUxajdGNG0zZlNoSU84Q1JLLThHcFIyR2hGbFpKdkxMbnF6cVVadUJsUFFGVVZIcTRKcnQ1RUFYZWFQSVJzVWpBVEQ2UWJpM3pBRXJZT2xjejA4UmdWUjhTOWs5bk8wQTZ5VF9xRHA4VkhiS3BVeFlGODl3LTB1b000VVY3djh3c28zMVgzbXZkajVOc3FTR1dEU3lJa1g0dXoyeTlNZjc1TXA5RnR5b1VoajkycG80eWZleElvckdkSDI2T2xyX1ozc1FlZjhzcEZIcGtzZkpCSmdSV1YyWlVfTU9PVm1ybWtlQXU0N0VSMnFZQWVkZDhJeDAtUXA0NkZSX3NXUkZNTW5SUE4zU3JRLTdiQ3dsd1QxYjJkTHZkemdPS2xLaHk4amR4dXFoZnFxVWhYV3BzUkthS1V4UVFlOGNzRlZFYzIwWTZJa1V4Y2ZTTXhpeFFyZnhVTDc4UjRNMU5wcEpURk1lRUJVb0doSFRxLTh0TC1ma0ZBaUZEaUNDWl80d0wxdzN0YWd1bjV5bFNBRUpqaGVxMVB0bTdJRnhDLTAzbXk2eThSeVp3VG9BbE1tNHRXWEVhcnRxSWJfbnNzTU42dmh5QTJjSGRVeFI2VU9fODBMNWx2MHhPZll0RDI3cGpIZWNqbUgyX0VBSW1NNHBhZWl1NEhCLUp0X1dRakNYV3VlNDh3REctYzRDS2VjR0pxSml5Rm81MDdMRjE2bm9uM19lTWFNRUZjQTlDaEkwX0FyWlNCU19nY0RRcmVXcDlaWlNSV0xnc1JPRTVFMU9PdnFoTU5GMG9ZU0tEcUw3UHYzX3V6X1drRi1Qc3RBWFMzUDI0amhBN0hEcFp5d2R6OVdtNXhFY0V3X1lpZFlQQm1XYUVWLWJhcGZNcTJaU2RaMkY5bEhuaG9WcDdPb3lrZjZUVUQ5RzBtcXo0VGRjRU9kM1ROWi0tVmtfcjRkU0E5UllFMkxpWWMycjlReWJOdkZyRTFJYWt2cXhGTVZEN01ZVDRXeWlXTkJhWGJXZUltRldzU0NwVmFHbXh1Rmw1dzh2dTQ4NTVHNlBvZHV2UWxSV1dlbl9yVUFmTkFhaTZsRDhXTThQTUxWZ3RURUdueW1NNGwtTnFSa3RFajNCWEVRS1ZPZC0xWnBESUduN3RKN0FRZzQxMXVHOTRqR29ETjdXd1k4NGJBZFV4QVVycGxDSE9FM1huTXBsNFBhMHpUbE1XZHRHY3Z1djd3NkdINlcyRVFQQkk1OVhyNHE5M1RJa3V0MHJrVF9PNks0WGJicmlZQjFOb0NJMlRZbjQ3ekJNb21BQVFNUTRLc1RKS2E3UlJIRFhWZWhHb3hGZHpSdTdxT1NObUdNTDZKbXRhSTVyTTgxallQRS1QaWJuaDlQMWt0TUhqMjZzRzFaM1Z1YldWSnhVSkRaVVZnM202aTdyRHhrcmVaT1g2S0RPdjV4Qkw5c2dTUDVZVzFOcmx2TThjTzJvdnhEV1JrVHZDbGtHTGh1VDdlMm9ZZzlOcWZXZFU0Z3lhc0VnUDhPM1lVQUtLX3RNdVJpbGMzVkFuVU84eTBIRFlIQVFqRXJUcHBxcVFYcTBfU0R2WkJqYjhxbUhWNmpqbDIyVmdHN0FBTnZTUk5WaXJuQ3ZROS0zWTdaR2NsNjhLcEhka19nRElRNWNXRGVmNWdzNGg3eHRxaDg1TnpubjJSeGx1dnFXcG9fNWJVR0pPTmZfRlJta3dUeFc4MFQtVzZwSVRVTkZjMXR3RWRUNFJjSG5XRjBqa0xFQ0hpWnNaM1NwTFJOUVIwSXNBT1BmZkp2cTRmbEt3QlJsOEZMbFpEYXN0ang3eldsZlNoNElJdHJaaUNwWno3S3I3QnYtYU1xMXVKZlR5aUZnZEw3ZU1OUjc3cERPcGk5MjhjTlVQRzBDbklhMnlRdFl5TWhrOVk5cE5tTFU2d0ZSNGVTRTJrcXN6ZXdTZnJSUGVwaUtaYlNKTC1RbUpHN284VlA0bWlYY2xzcjRlZEFERHloOUNRQ20zNUxLNVVYd0NrdGU4UlFXZmpRbWx2V0I3Ym9aR29ra3JFanVQQlJuLVE4QjZhLWRjUWNhWUpkMWlFTHJTT29xLTZNUkFHbWFWa1RxaGtHMFh6d0o1RjZQdVN1d1FEdWtZUzN6NVloYmlWMUhrOFU2MHNscnVZZ2NJbHdPN3BWUW82enZXYWJLaFZqM3d1cE9XYnc4dExBZVJQc2h3a0JGSUtjSXVpSXlOM1RIa2NDcFZsQVlSazh3SGpWbUtzWG83RGY5UUhxbF9MYUh3dWdmVFpCdmlEZ1ExckliZ0hVc0NHemFwbkw0RlJ0Um42WGoyanNqTVNjRFluaGZtcWREb2h1Mm1EUk84Z25QRV90SWwyM0lveUxqRXg1MkQ2T2lSdUVpTW9nWExHVGhKOEtFZUg1YzlfZ1dMY29CVkhWd0gzTjZTaUV2QXEzZXhBQVhUVFVtLVk3S2E3MFVwMnc5VDdQZE56Y3VWZ1FYSWpGNVhOaUljRlBLN1lmN1BBZVJmMHhISmJJc0tpWmdoQ0w4allOdUNvazBjRDJ6ZUY5b1E4eU9JSnRTSnM4dmtiakNLRWh5MThvMzFfQVZaVFU3XzJRc0tHckxKaGdRLTJGUDhOVGtjRU5MSjBoVTdfbzV3TW1teE82SWxHamswUXhyZk9RSEIwVkI3blR1UDJXd0p2Vkg4ai1ET2l5bmRlWkdpSHQyNDlkd1FxTjh5YzBJUFdoX2JsY1BmaTdwTi16U0F1ZUY4LjgwbGlzdlZWenFrc1hXb3BrdHVMOFVQWVZVTkplb3h3VU1mSkVUWWNiUjQ" + }, + "StatusCode": 409, + "ResponseHeaders": { + "Cache-Control": "no-cache", + "Content-Length": "654", + "Content-Type": "application/json; charset=utf-8", + "Date": "Wed, 29 Jun 2022 20:50:20 GMT", + "Expires": "-1", + "Pragma": "no-cache", + "Strict-Transport-Security": "max-age=31536000;includeSubDomains", + "X-Content-Type-Options": "nosniff", + "x-ms-keyvault-network-info": "conn_type=Ipv4;addr=24.17.201.78;act_addr_fam=InterNetwork;", + "x-ms-keyvault-region": "eastus", + "x-ms-keyvault-service-version": "1.9.444.2", + "x-ms-request-id": "b6a2f7b3-eec9-48f5-a335-4dc9a1a89d03" + }, + "ResponseBody": { + "error": { + "code": "Conflict", + "message": "There was a conflict restoring the certificate \u0027https://fakevault/certificates/cert1387819847/f4c141ebdc8f410f89b9d47f8fd7e7f1\u0027. This can happen if either: a second certificate with the same name was created after the first certificate was deleted; thus trying to restore a certificate whose name is already in use. To fix this, rename the second certificate to something else so that the restore works. The second probable cause of this exception is when multiple operations are performed in parallel against the certificate. To avoid this error, perform operations against a certificate in a sequential manner." + } + } + }, + { + "RequestUri": "https://fakevault/certificates/restore?api-version=7.3", + "RequestMethod": "POST", + "RequestHeaders": { + "Accept": "application/json", + "Accept-Encoding": "gzip", + "Authorization": "Sanitized", + "Content-Length": "44263", + "Content-Type": "application/json", + "User-Agent": "azsdk-go-azcertificates/v0.5.0 (go1.18; linux)" + }, + "RequestBody": { + "value": "JkF6dXJlS2V5VmF1bHRLZXlCYWNrdXBWMS5taWNyb3NvZnQuY29tZXlKcmFXUWlPaUkwTXpnMVlqQTNZaTFrTlRRM0xUUXlaVFV0WVdVNVpTMDJNVEJrWXpNNVpHWmhaamdpTENKaGJHY2lPaUpTVTBFdFQwRkZVQzB5TlRZaUxDSmxibU1pT2lKQk1qVTJRMEpETFVoVE5URXlJbjAuUmc3WXNKbEx6WDVLQXN5WUdFLUIwaTAyLWNMblFuQm1hbHQyOUM4cXNfb1FNaHhVbEFIclR6VHFIR1UwRmRCSVV5VzVHOXJpa1NBM3lMby1Ec3gwQzE4MFcwV3hyMkNwMVNEY2R1SUJtWVVJVmViVVUtZ1RQZDR1WW1EdHBTcHgxbmlweEItWWZwdmtDR29jamx1QjUtZTFZM184RUhtc0FvSFlLc01jc0FjakRzZmxRR01SWndhdjhzd1NMd0E0Mm4wa0o1VXdFMmZkMkxVa0FNdWdGSVAwWmVuRi0ybEt1dVZWZmVPRjY4SkZUaWtWM3VxYm5Hb2x5LTRDSFRHUWdRSnRKUFp0UkVKdkw5eC1LT3Rmc3R3eVduZ0lQdkFFMGxNWUNyUE9vdWluZ0RtbmtyTFpqY2FfV1hGOFVRcTR6UVBoQ2RjWVJYQzRMTVlCSlV1emtBLllpOTdYUDdBZktzWWdaTnZiU3RxUmcuYWloeF9LVkNCMENmaFdnS2R2eHVKTmI2Q3NKYUJqcHhJZGpMd3RUZmRLcjlfeXFNcUtUX1p4a05LNVV4WjZzeF9XY1JVLU1jM2VZSEpNMGtZelZjNERLSmFFeXhKUWFlek1HbkRqdEJDZnpRSFBON2JSTnY4NVo1X2V2VHI2QjU5M0ZpZ2xac0taNGtTUGdzdm4tMlp5ZnU2TVJLaHUwNTA3T0YxdzZPblo5Z3FoV3BiSVFrUTBFa0hJdW1WeW9CcmZPdUtXdndadGY3NS0zVXlkVnVIQnVKMEY5VXFOSUQwSE1Ucmd0d3E1Xy1LWS14RDdfakk2MHpUYi13UUVoODZtSWVuR2w3ZFRVZ2lOaUx2WTN2WEVxNWpyR1lLbERfZ2I2WGhMeGpfbW16eEZiNmhXRFY0YkIydDZ4QnBaWUxldVRuNGhYNE9yNlpsSXIyTVBldWFpcW9xdWk3bFBEZDBFeGZsRVBxTDVSWF9OMXQ5YXVVWFJjNGhmaUU3VklkZ3NQaEFTRTN6VHBxakMwUVBVUVpXeGdNY09tN1BTb0sybHNWMTFYRDcyeFRiSnZ6T2FwalF3UU9rMGkyT1RxX3RYWDRhbnlOR3FuZnVrNTFqTXVoakxMYllhczZsQlJERERrYmw1Z0xpZ29PWVQ2bjhFc1doVHl4bFlLYVVYcDlNN1p1NjZzVHdUTVBEMk5TcU91MEhfVWdsUUJnUDRzYWctel83azAzUnJfUF8xdEk3NERZdVgzX3VrdjU3VjNxOEdXbGdOZVRmRmhUWGRWNDk2dEVKNVNzR0V6Sjh2WEl2TWlwM0pXNzZWdmRuV3dtZTFqTFc2c21RcnFzTVN0a0VHandWSWFqS2g2TGNIbE9iemR1dDMxSE9UZWNIbElBYkpHQjRqT2NvUVkzMzExd3R2bnpTSG5TVm0tNGxvRjVKLURrdnVrdzlXaktnWDY4QTJIcTUtSWtYRHdrb2dHYVA3N3o3U0Y2akxvQ2l6UnEtT2paS29nd045R3dYT2lNZ3g0N3FxWVN5ZDFkd0hXRHdKTHVycjFJQ0lEaWVrTUhYMWdmM2xncVVncnFSc3h1RnpxOHJ2LXNkeDlMbFBLMUNVQ2JGNU9jakFyTkpzdTkzaFQzUWhkWURoQ214c2VjTE5LVGdrcjI3M3gzcjZLS2Z1d2hWa1BTTFRYYVFCUlBLRXhkaXVoYU9raUlpMkdMT3VzSXJPcWJpQWF5eWhjUS12M0tlVXVwOVRjcUlNOC1qUS1OczhJUE4xU2pfM3BHUGMzdE9BUGtORnIzb3VGR3h6OGxjUFFOSVI4RG9iNy0wWnlHRG55MEM2b1BOR3BLNHczZWJQdVlGTVY1NTl5Y2hxQ29YTVV3WGRNaG91UFh5eGlVYWlnTFBsS21LbFgzN3pHOGMwVlRIdVRNcXY1dUI1Z3hMZk92M01ESVZHUkQzS2VkVlFvTzVXazA3ckhGR19YRm82ZUxWXy1GdlpsdlNOSGFoX1BfQkNGTDBoUl9iUDJLdk5ZcExEYWdMZHZFMW9NV2xCMjMzb1VPNjZUNk1tb3RmWFQ4RlhSb0h2UUp1eEthdDFFMkFqdVlfVk1uRzdfN24wUndUaG01WVRXRTBhOUliaDFTMjdaWnVuZmZuVExaZ2gzSlFpZ3BoQVh5Snp1bWtPWEdMdEhidXU4LVk2SkMyMXYzVW16VURqeFQ1TW5ONFg5ZkhxVUdreU83TnN3S0NNam5laXpWd3dJaEFLWnp3bkpBNFpzSnQwa1N6TC10ZzJLc0MxTEYzYnZtOUNvRm9XUjVFMzloanV0TEJsM010d2l3Rmt5VW1JLUNvOEVhcFNMZTlhMzduM1VLYVB4V1FvdGhrdlRIRnUyVEFQQ1pvVm1UeDF4NEtrdlhQN1dhM3VFSHU5eEpBZGw2MzVSem5vdUlUcHByYjUwOVR3eE41UTZCaU4taE5EQlpPUU5xMlo0cnZyNnFranpaSXlSbHpJUTIyUXZ0dDFiTTIyTnRZRHVXZEVOMFFVWERwZXNNX3FOdGRnS2EycmNYUlpUVVpFMFdPWVA3S3kweVE3ZHB5YTFtOXVWVUJ0dXpmRTV1NEdNd0dMckNDNGlIbzRuZ1lxLWF3SlpjcEdKRG5lUHMzLVFXWHRXWjd5TmNVdDFZbVh0Njhta2l4T3I1S2dGYTFHMnBFb21XbHJvcklLazZkQUQ4UVdsMEpzSFB3RGh4dE5BVXJfRTd2VmotV25LVlNlNWNsSUV0bjdTVXlxNENpcFNXMGo4VENjQWJuSVdDYXB0NXBrNm9CTEtxWHRqbUdEN2NLRzNlZ3NEWk1IRi13UU1FNE5SSkExMVdFYkVTdzZnNjRGckZnaWJCQUtKWDVNbXJ6Vk1pTWhOMFZjWDNSVE13OElxeU5xSUUzWEZhZzl1WE1tZFp5MlNaajFydUNqOE1SR3VZZnlzSUNzVkJBeWo3TkRZWDA1d0hxYnJTY2VhR3djWEZyVGltcG52VWZxVllKU0FId0otX0wyUllfTWoyenFDUExnSGl3eW56MnZLTHJVM0djWVdQSzNnX1FiZXhNamdhcXhRcFFtQjI1eWdld2VaU0NwU3A4dElDaFJDQWhOb2JXMEhNcjlENDhGd1E3cE9vdHdIaV9QS0MtT20tekFNX255cmpuZnNEdE9rcEdQN3NUZHVBcFFFSFgtY21MQm1iWEdpMHJrTGQ3VWs2OHBkVmlJcUhNRTVQX0FrNjhhb2cteG9uWFlFdVBQT0ZPUHdZdVNfVW9YUzRNcXI5eXN1V3g0NVBaQ19LUWtGeGpOSzc3UHZEX3RENFJpY251Y0RjRG51R0JpZno4SzRoY0tMV05WY21Yc3dNZ1RwWGNqYzNfTjZ5c0dWMW4wSjBSbzRPZDJod0hmTWlRZUtucTAwZXZnMFFzZExaUTFDM0NYa0tlNk51YTRITnBpX003b292d216VzdDdG5OV2FNWV9RRHk1RUVISUVOUjRWNmNjTy1IbzJtZndfSTFuVHdZRFN6X0xMU2RXSFpGS2FaS1R5Y1VwWGVDX0ZZOHl0eGc5MVJ3NS1VZHQ4Y1IyVmRreEN6OUYtWllaU184MzhJS3djMGpUdlVrWUphZzI3cDFYMDJZeWh0UmRUdkV2QW5XYVR3Z0M1RmgwbzJoNHlyaURnbUxIVkRfX2NudWlocEIzT3dJd3RpY0RVTUtlbHpLQmRhQnlLVTdhdGh2UHY5X1I0WWVnZFBsMXlmSC16Wkp5VnRCbTRwYlM4UVFPcGVHbkFmVW5lRzNpakplMy00MU1GUzNfZmoxOFgzbEM1T3JBT3o5aTB3Ymk1bS1Nc2VTcnp3QUtaeHBRbF9lSGViWU9RYWMxX0NUV08yanNKXzRtb09vcHJ0bmpmVmFRZUhrNnRjbEFxMDZoZTFEd0JFQ1ItczRYbnlvOW14U0hnYjhCanJ3aDd0VTBZSlYwQ243aE8wS1dIZUstRFg0VVBKODV4UHZvZHozcVZpWjRQTU9peEtqemNkR19TVC1iQ2sxeWNFN29peE8xMDJOSHlYb2FtMUc5Y2U5T2Y3TkdyRVQ2aFRDMEJ2Ty1YUHFkMXd4THdYZm9qdkFNYzgwaVpUckNkVVdvUDdoWFRpcE1Hcy04bWR4UXNJTjVCdzM1T29MRG1rZVBNMzlWcjJIYkJ0UkxWb3ljd09XMlVhR1FmSlFuNVlEazhmb2dpTjhSaE9ZMlkwSFhBOWJ6SjJ2OWlJWFZXb2Y5SmlmaGdBNnVzWVphdVREN1JUXzJxRjhGVWFjSEFfNFFkRktwME15dWk0QzhFRm5fWWlMOWVBbWtyR0RMQmlrZkxFbE9ENTQza3hxS3lxSy1LeHRabXRsWm5Ld0lZTWhabnc5Rm9xT1Q3OFFoNkotdVJPTHlGVGdWU20wVEEtVE82enc2dzY1bWl4SXZMOWh3aWhCaUZlVS0zMXRJdVZaUE15UHIzZnJBMGVoOUJNMTNMTG4tZHpGVjJpdlI2SHZJN21abmNva3J4WFpEQ3dWS3dfNzZYVHd4MXhXUFlpeUpvMlNvOU9FTHM5WUx5MVhwYS0tYlJBRS1feGU3OUoxb3cyREZJcFlTaDYyWkU0SnpEejBpN0FrMXF5LWttMTBZNkw3VDBEYVI3aGtlZGdPRWktNjhFNmR0MnFaSGFXdkstaXhyV3RLeWg0VzY2NlBIQnBoTzdlbGpKYWxOejVuR3dpUk16T2FWbGk3ekRlZ3BQemFPR0tfQmZtTmliX1A1ZnVHenFsYzFqc0cySmZRbFFyT3VFTl9aWl9HS1VRWlB1N0xxczZGQUowd0hYZ3ZjR2M0Q3FKd2tzNk0zWG1KTkNCaTlGbVpxUDJCLU12MGg2Ukt1SDNidVdkYVk2RU9jc2dtU251N0t3U0lFekNtbDFpNGFFTGhCc3BfVWpsQ01ENkdUam5jNFVKRGhsTWRUTTlSdWxwQ1hEbDJaUWc1N1FhMnFGeVdWeGNkdTM0WVdPOTlxM20xa3cta041azZiWVhnU2pBcWF4TGxWSXdaRlI0WUJCTk1xVTdTMkZEQ1JMWnFUSFBhODkwellPU1ZYTnRFc0c2aUhUSi1EX0F3YUlpeGRhcEhPcHpWWDdzbUMwYW5uaVhNQ25rX0lsX3pvQW82c29PT3A0TXRGMUJzUmMxMm5zVm9JY0tIX1RDX28tcGtRdDQyb1piZ3lzNGszdWNKSzJRT0poWl9SY2hiN1BqQXE2T1ZZN2ZYaGtLZWVxclRXSVlCTk1qVHR4M243Y2tEQlhKUWVxQV9zN0RrZlBwanF4UDhJUEdubHMtWUZWcVh5VFRlQmJTVFpXT1ZILWZ1WmZabnAwMGZJcmlDTm1kUU03dEhoOEEtUlZqR2RjSVdYRFhvMm1iX3hjYk5wQ0VmQzRoaXUxWmxMM1o4N2UtbEFXLWV1bnFoRm1xaDg1ejRFY0Z1bXVIb1ZLRXBLREg5cUxWSUFPZHZxc3FrQmFSZVZSckowdTNSTkJMWGRMOWNhUGkyTnZEUUhDanh0Z3RWdHgySUFVQk16VVJiWjdmbHBTS0lxaUxVdEVPbk9iZGN3ZjUzR3l2aU1Vb0s1OWV4WXZUSENuYlliVTk5YTZCcktCR3l1cnRhVXJqLTExckVwVWVBYkNMVkZ2WXJpbWlCVkRfbnlNUHZYTXFMNV9wNUY5cnhTanhINlJkN3hRZ1RDMVllQXF2ZDNFYWV1QTlLVHNicFVVN05FaFlic2ZYT0UyWWxGT1RmVEV3ZTlwWkR3dmxTQ3VLdHc0TWl3MVBOV3oydlBRdUp2cHZMXzktWEUzYU9GOVFOa3RRSHY3QWJaUGMwLUxZRWxnZ1hpZkdaTzE0OVVLNU1uTTJVN0M2d2kwQ2F5UUJpdmN3NjZWMXRNajV3WERjUmhYaWI1M3E5UUs4X3pHcmwwazBWQTIzQjh0US01bzBkNndlZzNUc2o5RWlHalhhTXBFZ0ZoUTRWM29rc09YdElWRmZQTndlNXl1bVZUVVFMVEQyMW0xc2NsTFFOYldUSm1zdk03MHU5cmNqRWJ3QVY4UU9IRW53UWlXSTZGQUpodDJMR1ZlZEN0YlNwTDZaRHplbUhETTRsbHoxWl9ib1loR19HYmM0T3l3ZlplVzEydEFxckdCZHlYb3V2djEtYVBHZmFvQ01qRkl2S0dYYThZN1Z1UFJaZE9Ec0g4aDJFV29DRDRUMkhuMzd3T1ZDNHBKTUhDRkRoaGNFaEx4LTBxRVkzdTVqSUgzNDhLN2REbXZqVm11WkpwRWsyTHE1bXRkcFJiZ3NRYUpDdU9NUGMxa3RNeWZDQVdLdGNiUW91em1pcHhBS0dqbTdBTjFNNjFoaWQ3THlZakRRYjh6RWk3X1lsM0F6c2wzTnprR1owUDBfNm10a2tBb0VIN2hHTVp4b0VMWS1NREt0N0R4Z3pCVnlwckU5SlhaWmFJNGxQVTE2SjlIbGhBbExfdUk0aFFsQ0dhWEhRQ1pGZWF6U2F4MlZXbWFrQktLdmY1SVpaLWRFaVpRX01Pc3o3ZVJxS0NUQ3VpMjdiYzZ0bkFRNFdTV2dkdUp6OWxxVW84dnhLNkowSDZ0Qm5kZGJUT184UXNFVko2dEd6a0pHWE1HNk9VT25YT3kwR0xUbmZlYXUwRXVKRHp3c0UzU293RWVuVVVmR1A1cWMyc0ZhdXlyaEVCLUE4SXppcXlKZkNkY3dPajhmcERwYXVtTzkyejJLMXloVDhEQzVJOVZNektqaHlJVlpab081cEFsNnBRYkhiSEpLMGt2NmV0NU13ZVBFTHpNWC1aV29OOVpnNk9wR2NvR0lXNTEzMTNVc04zM3d3LVN1bExlTTdfdmZ2UjZvTTZTWllCQXR6ZXpBcjVic0xXdTNoME94SlRDN2w2TXJURlZhMElTd1NwOTNkcTg3ZUF3bnFUSlJDbVI3Smhnb2s4YUpLT0RYbUs2aTU1VHVHRFplc3plN0JqQTZyb0pkMGF3bVh1LW1YZGpzVHpfZC1CWlZ3dnVfZ1puVGhkRElnb3d0N3RYNHhPX21RZ2J1Q1VfMjYyTXEyZlpISGdfY29fckI2V0t0cE9LYUljaVl3NFNwMlRfaWJCWW5taWZlcTBkZFN4LWRueXFPUlBYX1NVbUNia29OUE90ZFFyNVRQNEs2R1JuQVFzbGY2RUlGTTg0M0FkTUZFNjZJcy00Rlo3OVNQTHNVWFpLcTFNWFVRQ01OSlY0b0tDOHR4STc5b1FRbl96cE9yNzc5MmdPeE13SGczc3lMaUVsVHZramdWYllwTjJnWU9qMWx6SG11SFBkZjB5MmZBQy1fVTRnT2lvSFRmM0cwaU1GbzJva3R6bWk4Y19VcVpfNnd3dzVvalNyNmQyNXZ1UGhQdVM1eVhIRmN1MGJ4VlhrYWZ1cUV1MUwyQnk5Xy1hcm94c3BuRGx2NzItYnhmRkJKc21QTmdaZXpSNmMxdDRBSGwydHJibFpmX2NnaG8zbDRESllYV3B2OGJmZzJJQzd1bVhaYnlmWkV1d1NzQlJnX0lVTmZ6aWF4Qm16R3F0MmpXakJ4em12bnhYZXNFYXNUclpGeE1HYm1ucm82YktXTEFaUmpELVlGRFh3ME81Q3c0cXhpZUVjQW9EelpoaGhWX2hpVW5VOERad1NERnBZd3BvVG0tMHN4WTBhWXRNOTdqb3VKUEVxU0czSFBBOTZ0aC1nMGxyTHVLb2ttX19uc09RcHNZZVBfY3FIUkJDdTdPUjBnMHRVMkNXTk94Ql9oQ3VuYm0wUEVUUmRKbXk0UnBBNlNnTVlVRENleHAxRUNUOFI5OVpKaUdidC01RGVTdE50bXc1eWNwcGw5emwwd1pyWFM4RzNxQ2lkbENNb0liSkY4YzNSWjFSZGVtQTkzUVQ1X2tXdHltb3A5TkEydDRCWGJxTW9MU3FjUXNHczlWSmxwV05QLVVHVE1UNHU5TVFVZ3FWZGJCOGhyc2Juc3NrSW8xakNVUDBpNUYxYzJJXy03dTBxcmRBajdMWVIxS01HUGRpTGFqWXQ4aFhPY3ViWGFXWkVLYjdrU1YzWm9mN2ZqdU1WNDdpeTBnN21seUlJeGgxRGVUQm93TUtwQ1Fmc0J3NzFPdFV4eE1JOGdzVTl3S2IxaktCRW5ZM01KU2lKVTJvUW5xVEFVNU1XaG9uUWx2MWdlQU5OajE0bTBKN2tXc3MzNFZpUVFYUHpIMFdrYzBwb2V1Z01xQ3pmQWJCTlpzNmhQVHlhQUZXa3FocW15VlA5RnRBMlN0T3VVMVJRVnZDS3FNWE5rTkRKMy1SQmEzWjQzcU93MnJnb2lIaHdBemg4Q1Y1UWs3T1J1V1FCY2FDZVd6X0pNTTFnbV9EQnotTGFlYmF2aVVEOVp2VjZwR24zbnJwWWV0SWFVNkU0c0dpSHVLdGpMdUdxenhiWmZRb2RfMW1TdVZfdVBHaFVZVjRYdzZKcXlTbTNObjJOa1o3Ry1PUUxSMDBLXzRGSHREUzBSYW9fZkc1TFhrWW1ZSlBwOGl0ZjBRQ05Cb3F1dXZIaGQzajZWbU9FQUFNeEVCZ1IzNFVJOW0zdzhwcmF1UlBqSkRuNUp1NEdxOTRfY3pSbGtfYVBEd3l1ekpDbXlkbG9JOG5BTVFDYWtFNUdEWkI0bnlZQ2JVVHV0YmRock5ZNklwU0pSVnNYekNIbnE4UXRTVVFZTFliN3cxSjlUa2hzSHRsZVFNWjVYekNKaUM3T0NadHlpNE1LenNqWk9veGFIXzBIQ1lpTUZtQmNuTkZRLWZtN1JkNy1DaHp3cF9YZFFpUWQ4YWJjdXhIY2JFX0Z5cjJEX0lyUWhQY2tCdGJZQ0g5Z1ZUREdaNk8yZ216b19BNkJmNEUwSmM0Uk5leV9LQnE4RWRnMkNPalgzV3JBRDBlMU9mVTlxalBmNzFwa1ZaaUFGS2tla19VVXllcF9CWW03SFdfYnFWX0RZWE9Db2xtcl9fODFwZGJqTlhxbFYwbzdlS2VfWjUwSDM1Y3BkWVFOUXRLNjVNdnh0OFBHNnJjTE9YRzN3OTRwX25wQXNyc0JFcGd4Umx4WDBsMVk1Z3dTTjMxZy01UDU0YlBDdEoyNmVQLUNsVDZSZ01oV0M1Q2Z6SVpTRDVCSmExNlJKeW5XLVNBbW5HX3UwaW5vWEJfMk1TWXhzcjJGUnB0UGh3N3c1cjhDQ3JLTW5zSy1DTGpfSjFydjV0d3BETldPeE9GQUdBNjU2MnJ2MzN0SXNzYmZPa2doem1MOTBRQW1YTjcwYkJfNFJKYlk2NUtPQU16c052NHlUQU1rZ1NUbjk1cXRjN3U5LXdoTlpXUWdHUTJjcjB2ODUxU3hmam4zRGVJWV9sMkNFVkdkcVVDcDZFZ3lUVW54RjZlTjIwdVhzbWpxaWY1UHBfVHJLa0NVMGJrT3NQMFpQci15QXBLaUh1UEJyU0tsVTFiZ2lpY3lDLWNmeDVRS3VkN2NyWmphVkxESkhkblRPRi13b0JiNVBGUVJEdDNEQ0taNnVqbmpfelUyUFUxUDVwQVBwYmtnNWIxNG5XNDZZVlBCSzJTNkRZUGMwRUxiOF80b20yTElJNnFJd0VLZUVvWGpkY2lnX2pCcEEzOHBVRDZHSW1vV2h3MzRfSEd0eWRmQ1VzTTVtTTZZOWJNb2JQdUdsQlAyMi15ZFFNZ0llRGdyNFYtX1J2Sm9nZ2NGZnFoYkFHRDRLN1JybDYwbmtfbjdXQ2pEakI1MF9hWUFPbnlDOWtnUjhQYjQtT280OEdFSjJjMklEQk5KQU44V0kwUllhN0RfZWN2UFU3QUpzWTdoVXVUakI4MXZBVGIzWmt0N19LZHo4NC1nazh2RThidVFrZFlGckVmN2Y1TU5PMG4wM3hGY2VsOXRMeGcxdWlUVXVndF92dFA3QmgzSEdqVUVBaDZMeGZIZWR6N0ZQSEVoYkJDYjEtNy1PWVBnLWNBU2pvYnZnWEd0Qm9VcFh3ZVRydm1fM3A1T2NHckMyaWlhTWpWZFRvb3Y1MFZoZUZNUU85Skx4NjZHZU1WZkozbmE1dUFFWS1KTHd4VnVCZEI0Q05obmpvbGhNWDVsM2U0bjlWcTBVck5PUG1oMFpCazRUNHJ3REgwXzRjZzVOUEdkT2F0SlJzb19hQnNwV05PaV9iTmlwSy1HcTFiX0d5ejhNZ1dzbkN0akhWOXNNcHpkeXZncUxObmtVd0xab0g3QW95eHI5X2RrUDdJb2Y4eEo4cXNBcS05MkNfRVNKa1hzR1RJYloxdGh4YVZsZzVqcHRSOHdXeUZ6MEdWejdnanFqNXI2ZE9raXoyU3lQbXdLN0stUmxVYVJ5SGFpZ2gwRnRGTG1fTUplZUVnVnVXR3BSSDVvaGs2RF9sTXpZNC04NjZqNVkxaEZTbjJQSTVEQjV4T1VpSVhsbUNwc3NUMzJpejVYZ1hEbmNuUzdSM0FsbmRGcldnanFadDlCX2swNnhaUW15TEcyQ29vXy1lbGZzVmhuODBvVy1hc2U4Mjh6N2xQcTRua3lvNnJZeFpwMlk5bWJ4bmtQcWZTdU9DZm9ldnRLYTNad0k5NWMzbXJDaGZHTHBaejlXR1ExdzVGTzc0NTlrbDFmLTBBZV8yTnVyWkpaUExEcEczYklHLUx3TnQ1cTR0amNhSEplWEtuMi1UMEVvMENPWXhlaVFkOW5DYnk5Vm05OUI2WFpscXRON2xaYVlXT2FMM3o4ZHhrQXVERXFKcVd6VVp6TS0tdENvNHV2RkJfVEx1QlJtVDlJc2FvaDVwTFljSFdQRTJGNG1GTGFKc3dHd2pGR293cFduTUNrZnNzSlFBcWwya2ZqSWVrRk5LeHV0cmhBdmJ0WjRuWTFyTFg5YmVzZWRjZ0paMTAyaDV5dE9janB4dG9vY0hRUl8zWlluZWxIc0YxZjZfMVpZeGxLb2NHR1VlRUxaVW8wTkN3RW1rcjZkbnVEVjNkQkNjQ2MtX1Jnc05oSXo0eFZmX1BtVFlnUERDVHc4RTd3QlNFWWhrekMxY0I0cnA5ZnQtYW5MNHNCdmRvQTJubGNkS2c3MTRxaG5SVk84LTlrTlhCelM0YV9hbmhMQU5IOXdldWlsN2h6Q21uMF9KNEFZYm41SndleklJQUZWTEhCOTNsc3pWTGJ0UWNLN0IxakJpRUdWUmNGd2ZRR0xWWjg4QWE4WElSblhsLVRabTR6V29SQnFjQkRRZXNzNmdoallPTnBDYzdOeUhSSFAxdE5vN2F4aGVuWUY1REFKVG01aktnQkZIOEo0THhRTk5ybkp2UzF1MjZZZ2FFN3lLR2FXRzdQREdWWW1ScV9OZHpkOXdrNGQ5RnBOalR4U2tlSHh1V3ZKVXVKZVQ2VHBtTDF1ZzkyTDZaeUZ2NkhZUE9TY2NoSHRkU1p3bUl4R0lXejJJSG9GcFNPd1M5WWJhOXRWSk9NR3ZZZHB4MlNrZmlSbHF3SHFWQzlvRWVYOUI3VkN4ZUlhUVB0Wl9LMkpsUVQtM0VvQ3kzY1ZuWjY4YUE4VWxSVEdwbl80NlJtQkFUWFpJcTZtLWs5V0V1YVR1S1VhalEwSkpyb1B4cHhkNlp5MkdLU2k1UHNVc2Z3c1gyX3J2Z2lsRFRZWjJCMFBTX0hLYjVvNVJUVGJTTWV4WGpYaHZYV0VDZmtTNjljdUtYQnZhcmVaZldrN3BOWFk2eFZfV3F3TVJnQlRUMXRNY1dnQU02UmVFMDNzY3RyVFlvSkZmbFpYTnBpcU96MWZ0c1pGTzNPQjZfeUxGQzBNd2tYNUlJdU1ibVA1VmJmYlNNVUlRcmpPelE1SWJGLXUtbUN3b0IyQ3FQOVRvdFFFUWdOc3FFTHB6ZnRiM21CMl9ESDZHTF9DZXl5bU9XdTJZNTdFelF4UkRnTUJuc0w3dXpweWJzejFkZzBvWjM1UnkzelZzaEE0bjZYQmszQmJsS2EyMVRhbzUtd1J3V0hDUi03dVUwMW9aT2RGZ1J0OHhfTElQVjNYUFlUbXpBVVVqRHFkM0pneWRjRF9Md3E0UWxkbVF1MUdGbU9lRGxEcDgwQTdQd0ZiWGxqU282ZTRFWi1pZUdhNGNTcVpzR09ET3B0ZFBPeDhZX3NJbS10NE1Jc2ZONzVPcE5TRG1NUkNGaFEyVGRNUGFyQnRMS3RZR0tMRm9nSlFmUFgwdW82aUpJeGhHN1l6a2FxankxNzAwanZaUkhtLTZzT3JaMEstY1BZVXlTcEFiS2F6eHpyaHdVcUJlZExYUnE2cWJHVFdhbGZmRHhzc1N3TnZ0LU1vbzVDNVlmbjIwMmlOcUV2VUlEemYtN3dQNGVrVTRKdFo5bVEzZWdHaWdkd3FhNDRxaHN6cVZTTzFvRFRPWXYteVcxbFZXNDh5dUtNeDQxQ1lnZkVWaWNSVW1hQ3ZMdFYyT3VjcHBnWVBFcjc1c0o1Yk9rZmxGdlFYVDM4bDF2bGxtZWNTN0dHY0g5cVljNjNjcGE4MUhxa2V2cnpZeU0yVjRGZUVkZkxYbmJhYTVHOUYzakNoTFBST3NpVmtLWWlaSUtzVHNQamhwR3VCQk9PdTdKSHREYTdmd2hXNjFYVzRIWFRrWndoNTVkd3lnVVBMcEo1U3lwbGNuLXVtaF9CUnFLUGZ1c1p4cXo3Mjk1X044TS0zRTlwNkV6NHNUTnBBS3c3Z25sdXo4LURCZXU3T1ZXNFhEWUlXekNxUkhuWmNYS0VPSjNHQU9MSmV2RHpMeGJRaXg2YmcxcHc1RTZBLUdJS0hvT1Zoa3VmRTZWQkZTX1hENmxiY3YzOVF1dHdoa3pWZEY2VGVrZlNzcFVDTjdVWXRjU241WmFQSy1ZQUJySmd0a1F4VEhMM085WXBQRFd2SXByNjR1aXVBZmN5OGNMejJoV1lOcFVQLUMwRkF0bUJyMWNNeFEyX0ZMSlBteW1hTU5GVFJOcW10S1FFZnlKdDBndmRVbm15WTk2OFJtRU52T0szMWJlcTJ1STNUTmVkWk52NlhaTm94RXFYRTRnNmF5SXRJcWt0dnZJNk9faXFwZC1HWHJXU3NTLUhZeVk2TDQxVFFXSE5XVFBmTnkxeVM0aXh0RjRuTjRtVmdhdkNHeEhjY3Q4S0JmQmE3X09fd0VQcF9CWUVoOV9zZ1g5Z25PRWpDOVFRd1ktaU13dnZmYlN1emUyeXhqWVNIY3R0UFpmMGpZdklPVjQ0aW55YkxwdXBzdklmMDBvU2o2QUxQdEM1X1lYZXVWV3gwT2FHLXAwTjhibFpQZWJCV2VEeXB0LWR0eUZmWTNfNi1zY1hjd2RRNHN6RDkxWm1QMHdRQWxSY3lETm5CXzdzTGdycFVjYXZMcWFGcnZyZ3puR1FYbXFkVkFmUFlrSkRPa3UyV3BDMmVjWGlCSGNJd2x1VWZhZjZHN0hIV2RpeUdidW1yN3FLaXIzVUstVWoxUkVCbzlOTFY4UmVyRDNYT2JqSjdsMC1kUFZOWHItYzlKZUxyWnUzN2xyT2NtTXRFc3VHWlBnZTVQc2UybXNJQ0p0VWtIUTRjb0RsQWZ4aHdoWE0wTTRWYkduR2V2LXFfNDZITF92RWYzNUQ4WnZIS3psWkVXMHdVaXNwMFNuSnYtNE9TbGNHSDFMZW96TnEwZXEtUFpoSnRmODdDdUw5MHl3ZHNsS1g5ckNVdS1HX2hIdzRGQXhJek5zRW9lM3B5cmFtcjZfREJrWUozWkU4S2M2dmpta3VKS0VVZUtCRWw4TE5jRTQ4cjFrZjR3eVhKcG1jcWl0cklSbXg4eGJaUFB6WTdWWDFpN0lKQk10RjZLZmNqQ3ZKejFiUFljLUFyaWRXZlRybTBhTzd2eWZtU2JOTndaajBZN2NkVl80dlVKdmJtZUZ5Ty1uZ1BhYXVHVUNJb0xiS3BDSUIweVBka0N5ZzV5SjNoZENwdVBaQWtTSmNzY2RBbzdURUoyOGtWcXJpLWN1OGFqczZfcnRkOFdpdnh5WWZ3TjhESXZ2NXFWV0RUT1N4VXZZVUxTbFNZMlVoc2xBSHQzeWExdWNNX1lDOHk1U0YwQkZOZmhtbXlpOFpJYzZmM2RfRGpUQWREcnF3b2p1QndxTkVLY3BXM3pZckRrRzhiOVU3WDhBSm91cEhlZlZFS1pnbWNiTTd6Rlh0LWEyMWpHLU1oZllhYllmNWNVTGo1SHNpRFRnWGJFQXphZ0xwUGVfVW55eGdwSUxwUUFCOFhfaUtzeXl1TnNQLUJzdjNSWVExOVNMYnZpUEh2VmxRR3gzYXFlN2Z4eUptQ2FsMGMwV3h3NDJEMm1iNkJFckVYbDk5WTl0VmVaMjUzbDJYdnJDYVJqVHdPSU01U3NvdVM5dUF5SmFWNi0zYXE4NnVrV0c4ZjE5dnpRNFRGZ0NyU3IwS19jOXVpaFRIZ0U0eTlGdGR3MDNXblhFRF82Z2dZZldnT1AyUERLQWpaWE4zWE5tN2xxdDl2YjYxUVRKQ3RDeXpacm10Y2VNVUlLcG9BUVZvN1RiQ2hNeGdlckliOHJ5eXNvUmxEdy1QVkU3bVh5SDdXRUJzRTVmWnhWVmFrWFdiNlcwb0lGU3VXTldCTEZUa3VoZXgzTHFTZlJXNi1iQ2tCQzdKd0xjeVRrMzh5SU05ZTZjRElWd2F3LWdEeG9wU0Y3V1FwWVFVNWt4ZWZ0c3NNbl9uc0ZNdTlhQnU1enMyVWhuWlFnc2JBcTVXaUdOWnE2ZW5RVGt6Y0dhcy1hMW5RV0lrWUpST21yeGp1UTR3UlF6dzlEeS1PWlliZVNEVFF5SXR4RlFlUWhfeVlVYktudmVYWHB4TXByZ2dPYi1ydjdrNDE4dVhCWlhYRS1UbDNyTHZjQ2pLdWZlZHd5T3h5RmdJQkk5T3dCemdGM1M1VkdEZzExd2pya20tNVhiZGZuZVhpTW9zMlJWWlJVWDFEY0o2YS1zMW5ieFZ0US1SOHhzZWtYbVBmWk1WazFTOXhOQ1c3V3pobEd4d0x0SDdVQnlDdXBmSVFFcGdyX2FxcmVVRkEybVFDaFVzTWE2S0g4WC1YTl85dkVDRkZHNWpieWdPTDJjc1p6aDZQSU9lVlUxZDktWVBlOWczcDAzenlzMFlmUmViU3JMR1J5RUFxZ2Y2bXZBVktzQkZMMlFpWmtSTEx1dEEtQ3JwMnJQQkY2eUQ4bHJmTERHRl92VzdjaFBDTFZ1WHFBYzJfNi1lZlJqR0RCSzRLdWZxMnpPWDgyTkd2OFdDMFBUQ3EwdDRfQUdoNFdFZDZQWFlvSHZ6SmNEamYtd1R0Q0NkRlgxUThTanc0cEFXQm54cVJnRFFpYWlSMzN3SHdLUW9va1AwM0xIc1pYT3lJM0pDb1gxZ3JBY1FQcF9CeXk2R1hWT04ycWdlUWlxMldsTzFneWNrTlU5SmVFUzFiZHY5dTV1X3A0YVpIT0lIOVFoU3hGSDFUTmFYd0N5dFRkZE1JRTJjZnA3WHE4VnA5VU81aDZFSWZLenc5MDJLS2NKYmRnV3ktZUZ2QVpaaC12NXV6aFJJNExRM0JxbmlLSjQwcDVtU2JteXEwbDZJc01paFhINW5WalVNcTdkcF9laXVjZWpqcVJXMkRWWUpiRGVWLWI1SWxfREI5a2diVDNGNHlvRU9jOE10eWQ4eFhQeXdBUncyYTlmOXVqLUtOMndRVmRnOU9naEFKUThSUHR4OEFzZUV2QnlIQjdQcFZqSE1OaTNtS3lLbEV0b3NEaUJNUFVVZEZZbXIyYjAxaU41UXFsQ21kRnB0RlVMaUNCQWZ3bTFuT1pKYklHTEthYWlCei1iT1lFeENRUmhESGJadF9VNEZpVnVJdFJCd1pObUE5UG9iVXVPVF9RYV9KRENCd3NucXBnQUpiT19EUXZBUHhjM1B3bXdJUkgwVWhfS29Kdk5NNnRET2xVNkVFb0FneEJOSl9RLXdJaC1ONjVDdkZMLUdpal93dEhjNk1QeTBOOUxWQWxNX2hPUTZQd3htejBBSWpnMmdMQXNEMTVNZFdWWC1vaU9Tb3R4MDE5dUozdy1peGhnVzM5RWFYQlFkTzZERDZIRF9iV1pGVGFlUkRWbVMxUEI4WDFZQi1EekxxNFlERnp5Z2Z0bm44ZzIwa0Q1YUszVDhwQ2lPbHR2U25VbHJNV05yMFcyX1ZTSVZXbnRDeG9lamdxRzhnbmU1cUJnM2w5b3F5ZlMxMWw2YnV4bHZsajNNRlZibVdJNWVyNjNtUDcxU2ZSVGpnYkR6UnNkT2N5cHllOFRGaG9QVl9GV2RXbC1vLTdzWFlLM004bGlsVlNINVdtTlRjbHFDVUswNjdsbDFvVGUwLTlITHdLd1otUUZ2Y3ZnMnQ2ZXRoN2pHUTJwZUtiYjFyQ0t0eXhCVnY2UDlGR3I1NnFKVVN3OWI2SmRWNFBkTXFTNUFjcVRGZVJISE5qVjZ3MllfUkJ1UHR1NmFCbURTbERsTGl2eGpoLWhzcXNsckNsbnA2YVNzV2lTLV9CWWhJZlZYRnEyM1RtM3FCcGZsUG9WeGwzSmZlM2ZVQlhrQmh2QmY3Z2xqTFNnTWtFenI3TnBOWF9VbDJtN09ZOTV6SW0zWHIwcjRfQVFzMUJtRFRqMjJQYktHdmcxV3JwQWswbXkyMXFDZ184c1pWaUpyaTVrQ3drSmhGVm0tckF1Wmx6VTU0aWNUUUgxYnk1Z1BSMUppeXZLT2tCeFZIS19JMTlwVEpld1pyVnVNTGJlNzhkaGROdnMxQ25ETDBwSFI3OE00UWljS095SEk0QzdobHd6dUtDZnJuczMxY0xoYmd3cEtfaWlhc1pEX3JKVHdsdXdzTzRjV256Q3BSdU5lekJIcG0wNXBkMjRicVpEVl9kNVpWSGU5ZHdLLUQwSkdmb3ZzMzkwMk5tM0ZTQmxZSjAwT19rWkFqeTY4Szl4a2ZEeGU0c3lQMnJkUWJvanRQeU1GMGZ0Wm5UOTdNbHZnOVBfb3NqVjJfQk1OTXB4TGxqTE0yZW5DeGd3RS1PbUFpbzhPNWoxbzRybkJfSUhwSG5ScWZ1Sy1zaUs4ajdoRF9ZeUJNS3ZNdGliWjYyTUNSZHFxZzE3Z0N5TnBFenVlckNrR0lWa2M4UW5ZcGJZNVM0RWw2Q21rd1M4RFQyUURWRkxSTUpRVjNOeEVqSTBydGUyUktsRldOODN4Z1JFSEd4MmFWVWduNXp2R1EwbFhDMExSeFlFMzJaSTFmQml5VnkxMlduclBjS0JoelNRUHU5ZTlrU2lXRWZpVkxHd2JDT2lvQXloUVlvcWJ3c0JfR0cxN2JHMnE1eFZUQXhEZE5UT2ZtSHZuM01sYnlsV3FWcWxVZEhpdXBoZ0luSUhkM0ZwaW9QRjF5Zm15NGR1THR1VF80bHB0MXA1WldpWnJZT3dwMGF2OF9WUEI2ZFBvaFlMZ0ZlWjk2aFhobjVwTzl0Q2JFb2QzM1NOLTk0Mlo2OWl2MjdaX0o0V2N2QWxvUnRHSWh2czJERkdHRy1qVVhfRVVCemVHZUJmZTFJdkRaVkhEV3FuOVFrVHRmODFLeGR3ZEdaai10WjRxYzZMWGJPQjJpLXJIcGt1SDJuZHZGc0VaX2NjSVNRVGlNSl95ZE5VYUN2aE5ENHdCZ05aT2RoLUpQNDdWeXB0UGV2bURqUkxTZ3dNM05aU0VSOTVQVmlxTFcyTjVpaUl0Q1dzbVRKVWhBSUF0V3IyTTlDN1U5SmtmeVVQVmVfb1l1cnhQQUVuZWxBdlVJMVQ2T3JLQkRWNXFnekh3aDNZTjFCYWxnRjJ3S1VaVWFBb2ZUb090bTNkYy1HQXR6cHFQN1hwclUtVnBXeTMtX2tVVjdDLVZiU085S0F4Q0UyeERINWcySjUtbEltNmJOSG1jdGNvTHdPM2g3M2xwYmhXUVIxaGNZcVhDWjduZ3B6QzV6NldLOXZoN1I0UG96VW9aTDZOOFZtNWZya0hsQXZCTkxNOG5LSzNTSVhKaUZ2UG1VZFZpdHQxbVdmeXM3UUcxaDNWOUxCSWw0aW5XcEpFQk1RZ0x5dkx4Y0NfalNfT2tjeHQ3OF9zNzhLSE9seEllWGlLZVB4RHFYS0Vfa2w0eDFtRkVya2x4MzJFR0pUV3RLekhRU2pXeEd5V3lIdFhhcXkyUDVrWElMMVBPZHBSQ2lhNFJCeWs4WHRJRGtRYXBCV3Z1eUlnS1J2UURsaTc3TE9KcUtoWGRPRms0bHB2cHhGQTliZDZUQk9rTmpTQlhGenNTaHBySndJelhUOEhpQmlLand3djEwbnc4Q2VpcU5MV2VSSUNWWVRYdWFlQ0FHRm1MWTFIVzNiem9xeG40T1ZySGZhTW5qcjBjYmVyNzBmaHQxT1J3Yk5kR3ZnZFZ4TEVkV3drazBBcWhtRTcxZkFiNlluRmZ6Q1hXMTJoZlRUbkhlOTFVUzdFUEJoekxSd3BpOFRHOVZyd1RNRm9fNnZaS1Z5blFfSU0wVWM4RTVkN3FLVkRtRllFM1U5MmdCRndyS084TnpLcl9qOEw2eC14Y2pQVUdmdDltT1lHVGpiMVpUNWMycGExdzJfTWllV3NncWVCS3pydUo3WGJjOW92eDAwV1ZkUTg2eDlqY3FYZVRIY2ZIUkEwU3kxU0IzeXp3VGxEQlJQbVpjVGpwQnB5cDZzSGFPTC1HaGxYbUc1V09FdTFBY3ZoZ1ExYVdod09xT3R3YjFQQ3pNVzdMdTJNU1k2YU9qX1BVRUZPQWJmWTFKODY0Wk1sV1BRS2RseEFteWNWMlUtUHBucG5fdEI4TUNaUEItc2NPRk1UTGpLcFJTZlZWUzVvak5HZmJHQXpiNjMyUTlCVXUwRExsaUJBc292TzN1eUt5MnVYeTdiVFREWUlBbW1oZUo2TmRUNGJMU00yanQxNVkzUlNVTXk3UVlIOTBZLU1oNW9QWk5CUnNydEdSYUNkNkNrdnBxd2x6MC0yY0V6cXlLeXVydkx0ZDk0b05LeGxDRVhEWkpCVG9XbDhoblZNZmFfWkRUR2xJSlNVNXB2TDZNd0NLZ2NkcDBGV2NwR3JSQ3RyNkRkcmlMZVdwVzJpZkxtdmY4NWwwaTVFUVU4ajdpdFVlWW5ZaG9NZWZFVm1hNGQ4SzNLOFdaWVZvV3huNEQ2eWdvcEd1cWVTLU5lZUJQMlFSN1dFdC1tWDNrVjRGeVdHNlZraGRhRU0xYXZodFN5OXE3U2pHUWxzWjJXNUVINThBVm9VbXVkLWxnWkxsVTVDOElBU21VNjRrYkpqaWp0ZDFrdnlFZmFCWkEyQXJrYmlUTVBMOGtrbl9qWFNGaTVWeUFxbzZsY1lwMzFqM2NZMUsxSWNzU2tSLXBZTk4wdmNKRWt2aTNmQWtZeGlWSTNjSHVWWkFDbHNRWkNGem45dzh6YUdvbzdZcTdoVUp3T2NUbTZHU0psMHVSLTdkanZwZGwzWUNoRjVkb2t5WGNpb3Z0X2ZqbDlrRnFTcnpuQ0lIYnk5bXpBT2pIRGpQa3o2Y2VfZzJvMFdKTHAwOVdWX1kyRGtjamU1Sk5xRllHSksyX2dTajZiaFE2VHlBcVNxdVRmNWdhUXVBelFuaU8wcWhKOWxKNk80cW1kblo2UExDbnFSQmZIaEY0MUo3MWRFQVBxUG9HMWFZdHdFRUEwb1paVy1IRThBRFlUaVpoYVRPbXlfaUMtdVhHZl9GN0ZaVU04aTMtNWdsUlQtRXQ4NTdMUjk0TEwyak5iWlY0bWtjbUlveDlYQVVRXzRaRGlyaXJtQnF2X0tZTTJxYm9zcHZDWExfNGRld2NEV1dsUjlzMHp1eUp6YS01WmxJV2d0TElzOVNWTGJxX1BuY0RFLUJadl9CdVoxNldBWjdmZGd1dzhFOTFjRkxhMDJzek1uR1JBOXd1YVBFMjc5WU1GWDRsU0I5SVBlUGdqLVhRZTRzN1JIWmt6RFdUVHl1WHdSc0JSYk1QUDJ5d2M4UjBDVDRrZXVDcy1HYk1WRjdzRlRBNUNZQ3FhUU5kdEhqWXM0RnVqUG1OQXFiSEVrM0YzdXZXYVdXclNkMzRsVHA1UzJXNXZsU3EzRktsa0IxYlIybmJza3ZNM0VteGtnM281OENGOUFYVFFQVmZKT1hHbzFYc19sZmlGLV9kT0NDNmwzRmE0NzYtaHFaTlgxdFJaUWlQMm5oekhVNDIyNFhYTE1LV1VBZ19qOUtfdzFvUXBnS0hSWmJoaDJaWk0tYWNXN0NmWGZlQ0hndWtPZVJXM2hKV2VjU091djFNNWxObEFocFpIMUVnbXBWSGpRemtZU0JyVFlweDNjbjZJSU9uYmNCNkpFbnpibmxxNWxlbUFhN1NvT2h0dGhVcHBSSmUwbXl1RTJPbzZoLUxPLTFoUW1iN0xmeVJ2S2ZCY0xlcDVwelN1UXlYUG9URmtsTXVONWVUallGVlpTanZtdHpPNmpGajRXbzUzUTV1STNINmpnUUNZdVo5dFNXMHBGdmVzRWMwTDFRbVJkYXBRS0kyQ29GNm44Z1U5UHZ0a0x2U2RYdDVzcjVxQlo5Z1h5anRrNnpjdlZEQzFPZk5leWNMbVhsZ1NGaUlZbm5jQTRDazlqaEx0bzRFWnVackI2SkMyelhOOTh2MlhZNmMxUDFldGFqVWJFTVZhbXFxdTBKTThrWDdaNl9WeGdkbVV0SHprelFKSU5UT1JrOU9JU19xWUN4ZHV1N09iTVFCRVN6aUU3clU1YmMtbUYzY2N4eUJNa2hTbElNSVpKZ2JiOHpBXzlNSlJ6a2RaYVZNWXp2aWh3QjlFOVZwM1hIVV9lX3pvWXlQcWhwMThNYk9nNG91UFBKZGUyLVg3eXQyakhnWWtvNmhZcGs1SjVsOGFyTHJLcFJGMDMycFV6blc3cHktaWw2VmQ1c1RoRUJHSFNoM0w4WHZPQklxNnBEYUp0U09QdzFNQVFmaG5uUUFnLXowdzIzdFhHY1dTRzZramdVOTgxVGUtQTBJcGdwZDA1S1hNdVVXcUE1azRHVXF5eV9tRHR5ZVlvX2pmQzhYb2QzaFN0Sk50QmtGT0kwalhkemQ3MUR1ZW5Fa014d0pUUWwzYlMxOElhR21sUmU5LXpHV2swYmN3RUs2Ty1vSXc0N1FXQXJFTFoxT1FudjBLOTRRTU1NOW1UZG9iUDdFamp3bFA0d3MxNmdRYzU2dU9rcFo0TWJHYWhTd0tzYzlVUGpBeTU0VkYtUmZDU2pXTGNYUUotb2czRmZpTUkySXhqLTZORUZQRXBmRDh5dER2UEp1Q3ZVRFl0RUNQancxc1hBbmtXQ0dhMFJkc3ZBQy02VEhxUHF0VjJqQTBWRDlmaWpXZVlqbWZ5V1VQX2EweGoyOGt4OENybWJDNGdQQVppZzdCSEVXOFBKdUxBbXN0NXJpVXhkSWlzMV9TYVMtbVNjaDlXOXJWbDBPODZXbGw5QmJZdnJRRXQ4M3c2M2RaYkcyNGZsMklqRFEyb0tJMDcydzFwdHRZZXR3d2pXYmFSSDhPM21ReWRiWnItVmRkMjgwdEEwdzVDcHVmMnZSZkVWX3JIa2dNbDhza19NWjZreFlyeFU2NUdQVE9ybEVDMFpOWW41MWpweFJpMWJOVHVxWUdMSzhWUHZfVWhYS0tWdUFoMWtVT2NHX3JMM045QndrY0tyeHFIT0R3ZmpRNkxEeVFfZUZNYzloV0VoSGFZcU42N0x5NVlZbGRUWHYyTmVveU9xY2R3SXZmc09uaHp4bGZhVjZDZlZqN0k2SEl5ZXhoYTB5bllHQ0Rzakp6SnJ2VHRrWlFHazJpUVNzc1FNU3pwSlpadlBsbTg3VEZvTzVrbV9LRXlWN0p5SWtkb3l0TWFmYlFKbmNGWUVMSW96VTFCei1EcDJJeU4tQktzbzZaYnl0RkNYYU9EcUptR28taWVNY1NPb3lOTDRCV1FpUi1CbFBVR1NvNWFBOXM1bC05YjJSbERMMHlkaWVDUkVvUFVHM0NhU1Nrc091dkoyV3NMUURmZzB5MUltX0Q2Q1c5YVY1ZjJMejNFOTdjck1ieXFEbGxrNHhlY0RvbkZrd1JtYm1fN0VWbkVQdVZJTXhNaE1rWmdad3pKd3dQemJ0UnZXdm5VR0NhLWdqVHBONHk2WEdQc19fcGxNMDg2bmFESjE3aTJ5cnpXYnZaR2N3bGo5VzI0YU9CU2JoMU5mblc3aGZNdU5qNXRhcmg4MXQyT0pjR1licGY4bDRZb2k1dGVxTGRSeVNrd1NiUFZNRXBjaThRLVJrNUZ4djU3MkFSdTFHWWs0OWJPYjd5Q0VucUxtd3NGOTl6NGk4T2dzSEF4V2lQT1Z3ZXRDQTQzZER1U090ajFCZlNQcHcwM0Z1QVhfSjFfZ1JGLUw5NFdGVVFUUEp6N21IQ3NiUzFqRnB5LTQyTm54WVEyc3E3MDkwS1lxU2dXQWxNTlgzdVBicjBXRkZwUklGWnBMQWRaRTRqdlY3ZWpybjRCVjJqNng4SlpFclVhakhVa25xU1poM2tlakZ5RmFfMm9FdkdoTmVhTHZSaFBjSHJXNGRyUHR6RGlvQWY4Qi1HOHQ1R193MDJPUjdjSFBxblJmOEZTUlBIbzFEQVQ1YW5ZdldrSTNsd1BNMnA0VHc5ajlPazFuRUhPd20xX3lZTnJhYzYwSzBvQ2lsam00ZTgzd1BSOEJhNUU0RFUzWHo0c1hjbXFhR1lsZzY1R29tazBEVHczZGFORno3cEdhcGRpRzJ2NVdFV2ZEenJoeHFhSF9pTGN1UXVPMk9xbXg2LWxTeWc0OS1hOV9IbXExcENUUGFLWTVmOWNxZE9iWTVuVUszaFMtUUVYclRmcVIwdEJ2OU9sbnV3UDBfY2g0bUVNNnA3RHB6ZUZzVFpvNS1QLVd6UmFGVDhrX09DNkNRckNwcXJjN3Z1UmwySjR3UThadEhHNmt4dUFoSFkzX0h0cW5BLVZQSWlXYTFGdW5GeHVTQTdZQl9lUnJSSklxTFNJN3JZUF9kc0tMTlBBU1dMVE85ay1JUHhIMG9majBIdW1RY1dCUGRNMUxObnk4TUxiak90clFiT044eDF6LW45TFhlT0k1VWlRNlNUZloyOTZlUjg3TUNybFhZdFJVcWFXZF9kY0ZmYzlFLVh3bkFPNFlWbS0tUFYtUms3RGVqck90em0tekxyeUVwaTZMb3VhbTEtMG5fN2RDS0NNX3dFa2tienR3cXlwQ2hZQnFrcnBicDBtWWFMT0RnTUNsclRmeVVYdzFRMnRqQ0prSHFwc2hHRHJ3bWh4MU9FWmgxQzZJcmJiY0FCbmYtNFg3eWFWMzlxQzhrcDJSa0U2SUc2Y3ZTLVN5SlIwYnE2cm9lY0p4cWdLTUFhRDlCaHU3Yk5tYkZHRjFYNTg2ZnM4bUlpQ1pBUGFxU0JyMVV0V0JCMURnM2VzVHh6bkhqNk0yQUtMaHBCTXZqMmllLXhCLWRFTC1oRHF5ZWhSR2VGekxyV00tbTdpLXFiNDZKWmd4N09zZkRiWVRQMHEycFpGX2U0ODNtbE9qU0FjSDc0WmRSMXM0TFNBTnJFeDhGVEVwQXdIZF80NVk3a3BXSzdWZkxIZFRYYmkxN0V1elRoMFdwWlFselJUaU9GZ3U1c1RVYk4tZ21DSmh5cklNY25xVUY5Q2NVZHRZcnVla193Q1QtVnUybENnUGhHRmFVOWYzcXRUNXVEUUNaYTdUWldlY0pRME9IZm9GaFo4WkFFWFVxWjN0U04tTHB2cUUtRk12OENiSFFnX25QRXBkOWY2c0dLSEl3NHdPRGY3NDBONkhGMFpReU1VWmlKcEpxelpyRXVyZ3lhWHFlRVZ1OHN1eGhDaWtCU0RTdmRyREJ2cHk2REdrOUpDWDlrVDg3TTJMZzJKcjFzaDFBWHJ2Q0RvbUlydWE4d0JiT25rcldPYlNnWGR3alpwMndiQUdsaVdPbndmeWJXQURWYmZNTE5uWUdpZE9sLU5BWHFNRWZMN3NXbUhITl94RTZ5R0M0NVUwZXJvU0lodW9XbzJUcXVrSkpHdkFKQmZ1YjRZem5FdkNqZEI1ZVNwWjU4dk1WbVZ4S3RncVE4M19IdW13VVhodGY1ZTl5d1F6c1haMzd1WHBTY1NWZ0oyUEFRdGFSU21zSzUtaFVGV3hWQ21zSjdOb19pdGxKaEx5RDNLcDBxWjFOVE1WQWRtQk5fSTByTWdKY2N1Sk03eDdWSjZJcWtFUEJUYWJralRLRk1vakJuUDNsTlBrb2w2WmlvVk92akFXRlZLVmtFTWlteDdTYTdmYVJlUGJKX2FMTGF1aG5YZE1WNnhjc2pGR1R5cHBvQzFGY3EtclFwMWtUczZSOHgyVnJjM0pXSUZqbnd4enBGNGhvZDB4RTY2RmRYaEtReF85RVo4R1QyMVhoa2gzZlNEUFhWOTVwX2ppRU5zOFJHQTJld0dvaWIydFQxSW44UnlxMTViRWxmWU1TckdFTk5uTWZHYjh3TjROSHNqNXM0QVYwNTJ4WUlZSEdfLUNQVllLSzMzTVhSeGIwcDQ0cm9JT1dSel93NHFUMFVDLUpNaWMxUGdTNTk5NVN5Z19Ib2wwMFk5X015Mmtac0hxT0xOZXl0b09pZ0F4eXROX0VGeHpZWVlBNEl0eE43enhEa0pSN1hDUjR1enlYT0hGY1k5TGFvMTRlRHFabC1WZUFGSWhlMC1mQXdkOTJ0bDhqV2hPdFFkeTBWRC0wQlhfUEJ1Um52NlQxZTV3UVFsemJkcUZTRzl5eE5ocW5FTjZZajZMYkc0S3BhcG1YWUdGbmJiMTlOLUpIZkdEbF9NdnZ0N3hmdnk2LUU4dXBEajcwSEg2RFpZWk5JU0hqSlB1MFNaMG9mUk56WjJpMnh0akJpOUtuUzk2dmo5TjlXNWR5ejJoMkZidW5zSkdjbEtYUjJJYzl4NWp2VnpIYnBIWldacUQ5ellwcEwtUzlEWHU3TEhJYUlPMEMzZmhkVnVlRHduQUszTUlHZ19uQkR0MkZ1TDNrX3hwal9uUzdtQkpkT0xhTFdjRElVdGxhaXNOVkltcHZzQ250RGllY3p0SjJ1VVpCT1lyd2U2cHI0TW10Sk80am1IZWRwX0ZNUzUwX0xpYzJYckdZUEoxdDY4T3FCSTR2RU9RcVlwOUFiUkptam4zcGM5a2hZWk9TUVh2ekI0U1FqcWw3UV9fdGxrNjRja1ZIVVBPVTBiY2E5RVdIOHBxa1BUOTBtX3IwYVVfZ1dHbnpYdVdTRDFQRWtQOVZIejN6V09lR001ZTEtYVhQYmZuZ0VWcnJjbGhrcjEzREp5LTR5Y1d6MFVzdVF5cVg0V1M3d3pHNk5vU1JTWENqOE5aT2tLTEo4ckhfNjlxdkNqaXZUb1AwM1pmMDhubmVoTGFUZ0pyV3VPVDhiMXdXZW5EdzF1bWR4NU9uUUhLaHVfWjlxOTJDa1BDOVo3UzhNcWtLa0NtYlh6RElaSWZ4MzVGU3o3a1g1dmtRc0hXX0FHM3hvYlI3YVM4U3M0OXBGbUlyY2o3VFU3MVYwLWE3QThQVVJOLVBOSU9aT2h2dy1FVW5aR2hiQW5CWVYyR3NCa2VGX3VpTkk2RG9ZMHhqRmxQeDVYb1EwSVJhS1otLWJrRmNabjRhOXYzWjVETXRmcHp6RWhkTE1iTmhaallzdWI0MGxlV2ozLVR1eTk3Z1lxQXlaQ0VISkZMTWVOdVNYZHhod3MzS01oYXhDQi1vQUQ0dmpQX1k2eHBjdUpQYlY0SEYzN3RibmdCaWFXN0F1SU9vNWlEcmtPSVpsNDZTSllSR1c3SWptOF9RQzBPTmpfSGsyaWVVZUN1Q2pSWU4xLUU2dU1FRFlFb2E1aG9YWDBJWm9yOUVMazlZZWpPZTM0ZjNtVFpqVTA1YWtwVVEtVi0wWFlfUVhuN0YxRVdTSllJVk8tN3hZb2V4MnQxMzFxSEF6ZmtWRGJuZFk1Q1NveEl6Ujl0NlpzNlVUTklCSHJGWFdIcVpXdjcyUE1TTHNpTGtNeTVkVy10LUY2UU1PRGNzejFuUTdjVkdkMmtCM3FfZGFsV0pvalhPblMtNWZOWXlLUlhrTnY0cDZFUVVzRll3MUFienp2YXpoX2ZwVlBBNWJSaHdNOVJySW53d0JnRTcwMG1KejdGSmNvU282SUFMQlV4VHNaek8tbGNoUnItVUlJMjkwRS1nT0F2SkRxRF9VU3ZkbEhIU3lfN3JyMGkzUGhISWN2bmUtcjlaY1BLTmJETHczWXg1ZzZfbWxaQWRIVkR3elFELTVZci1NY1cyc1diYWNzdzRrM1ROUUZCTWpuUTBUSmRnT2pkNDhTa2d3SHlYUlVJeW91c0J1OUY2ZHpTM2k4X2dkSV8zaEtjMXRYQTJ1Mm1TdXExdGlGTy1rU1k5WmxFTWU0WlA4WEdBSmt4SmxuS2h5d3J4Z0RHWW5ReWNOaVhsQ01uRms3S19acnBrWlN4QW1oTTJpaE80UldQaVBCcmhUU1BzaHdMTF94emJqUzd6UUlQY0pGRkU3SkRDb1RFdTJ2LTd3clhaTjgza3Bmb0dHcHhBZVBpR3diUVpaWnR2TWwtNVFNdHlNTkttM3Fwak9fOS05ZkpFM092c0k3TndYb29IRDk4NTNWR3B1dGFmcXhVRjNJYTVtU0tXZkZ1QkdLbWZtbjJiT041aC1kbnJkX0M3d0tkUU9vYW1MN1hvdVRYSmRnNVZhSmEyUmVTdzdMVVlDU3FBcEYtaVF1dWc5ZE9WX2NrYk9KWmY3Ym56UmdHQUc4VWIyZjBTZXc3dGhoOXF5d3Q1NUl0c21EbktRc1MzMzVKZGdBRE10NEtSeEV6VU40dzkzR1ZKY0JXY05ZcEVaNXp2MVgwMTFxTzlicGhBRWUta01ZMlE0VGh0UktEU2ZHRkVwbUdoM2lyeE03SjlNUjhYWUVEZFZYZkZ0MkZKaHZodmFpaV9aOXdnMEdFR1Zoc25Kdncybm9kMWRaeTMxcnhwZkJJcE1xb1JYQWV1QTRsSUEtejNmWGVkUXhKbUJPSGpudHpSTWRCaERFUDBWMktEai1vT3poaHlPT2U3V1E2eEN6ekJ4eThNcDJSMGt5Xzl2VDZya0hYcFE2TnRWTEJtV29zM2VxdjloRGxYeHR1MDhRSmZXTWxJQXJrUFZZbWU1d0d1c0g0dTJLLXVFLVgzTG91TlFTeDZieUpERTNUblFxTHYzS24tbFNSWG12OHBMamZTNEhpTHJ5YzJ1clliLW1TS2NyQ0hhZHFWZ1V6eU1YS2RGYzJHNE5ZZVJrRXdSeFFHWXVsUUVCWHpfWHNzalNwVm4xR2RWam5pMURwNllKZFlCcG9ZWENYZnp0a19uMXh3MTREUm5oa1FlQlMwZmw1Z3M0OGVkQ0NHVjVZZ0t3WUc5aHh6Q1gxbnpwcThrUDI2TFFvdXRmZmt3T001Z0tyc2NWXzVaVUNPOVJqVlNwQ2lZWHFBUHJFNDNnQUs5M1hEMVlUdGFXQXdSUzhobUlFUEFSLXVtRlB4RlpUcU1jbUtfSHdZYlNjeUxnc2ducXNHTkVWVkxNQm0teGdfSXhUZTJOMHNyMG9jQUFiY3ZMMWhnUnoyd1NDV1UycXk0V05QVDJkWXBuaUpSek1aRkFnQUVrMFhGN0dfaGVBZzlaTWY4TUFOQU1TM0JmckJsTW9YcjJOdGFQUnFxT281eklGUmRBUE5mWlprZWpZRUZ0cHV3ZDAzYms0ZmxuYW1PSWRQRnZjY1pKMmY0MlktQTdtNnl6OVA3Zmk5UjVmRGtRa0YtSDZERVk5bEhUdW5Zc1FuYUhLRVRub0pFMURlT0JoN3ZIUzFnN19objZTQUlzOFdiNGZLTnRzazN0eHdtUUtEc3hodHVhLXJIQjZ1OWM3T2dkdGFBOFc2TkRzSmR2aDRrYm9QdkJ5UXVzWDlkT2FEMjZpNkp2aUlSVVpFbjBaSDhIOXBZeGdYZTh2bERJRW44dFYzVk1WeU9PdWQxYjdDQ0Y5ZnktVG5iZndtamJnQ2Z1aERpVlNGNW9SN1BPLW4tamktR3RBQlc1MGp5R29FYWNrYTMxdjBuZ01uRUY0Q2dfaThXZDRQY0lkdU51VVVGMmh5ajZjamQ3cFV4MW1BM3ZuM01PbDh6QmEyMkhFREhFR0dqOFJES0V2bURWOFNXUXlXbXYwVUVwUkd6dTNta3dkb0lraVpGZDhpRzdvdUhRc0lUSDd1OWZkanJVOXlIUE9vYk9VczFCNFBjSHU0TUpEdk00TFhaUVNKVm5aWGk0R0xQVnlzY3p6YThhYjZlT2VoaGdNRjk2OHZjSjM2bTNkOU1ZcjhXTzhLM0NMcmdFaWdtVk1oQnJZVVFxWUNTQ25jQlNQejJSUW1NQXc2TVBpRHhBNUN5ZnFLa3hVdHBRLUR2MXV4TlVJLUE0WTlwbUlDQUN4QmFzM01lTlJoVVhvVEl1NGt1am14dG5aLUphNDhMWEc5VnY3TWhXckN1YUtyeUREOXNHMktSOW41aDFWU2J2T3VvTE40SnlVMXlEb3FvLXRLSG9iQ3otRnVHTm1uaW84MUpjMmpna193aFBxNHdfcV91NzJfUXVSUmdaUGNCSmNuQndpSGU2ckRwa2ZaMmZRQnU4ME1OcXREVlBhdzZ0MzdSOUdwWklXMmM5dldTSThuN1E4YmppRHktT2N0UFpMbFJ5MjkzSmphMXAzSjFNSHFCVmlIZVdMVmFDUjZOT2gzczh2Z2t6VnFuWTBhNFdKMjJGdXN1Y3lFT1Z4NU1QU3dwNUN6Q05UUHNOcHBFUW0ySElyMmE5ZUlSa3FSSjFkMDV4N2xNeGFpMllEQ09CZWNmdUI4a3NsOU42a1ZfWENVREpFa282eWEtSl9rNGttY1U1Rng5eXZJQ1hrWFdia3YtcDlMcEpXeHFpYUxEbmpFMnRXLWNzTGs4VXdKUTd2bmt0VHBoZ3h3U2VpOXNBS0ZYa2NtMXlwbnNYQ0hBc1p1VnZrNE5IU0ZpcVk5aU9KU29NYllsR1ZTb0VoZXgtbTJ2eFZoMWRERTU2UTZTY1Fsa0VEOGw5Ml9yQm5lNDhXeEpfNHozbG5BbkJRdjhxa1FlQlhCd1RvekdaeHlsQnd1RUFQdk9pbURnM3hlVF82WnNLNlMwOUNyMVg3OTNyTGVZZlZkOFpxNUZiMkY5YlgwMWdfck5mWS1IYkpyeDRYY3F1YzdoVWp3RjAteER1MWVTZkMzNkNvT3U0aV9Xc1JKdFJ4TXdIMzBKTU9YY3NRa3hqbFFJMG00cG5MWEZVMEZpUDd1b2JKTGNiaTVTYWk1OVM5TWRPRXNoWThQT1hNVWJwNm8tZDJaUEI1NlFraHJ0S0lqRUNzOVI0N2lVWXVrM2wwdnFNSzhwT2t1aDVfckxSUDQ0eW1kNUxnQzdsNWk0U0FXVDk4M1RLZkhENDNqSWxJY0xvY0hPR2FJVnBuX1NyYmRSS3d2bDZJV2NtVlBjZ0RPQlJDVzhuQVJ2dTlzOXUyY09XOGNmMUg0OWlMQUM0c0thRHJVVUZDTGdZZ28wOTYxUXVjY0tZU29fc09YN2JlZFRyaVlvNmx0cHdjQzZ5ejZmVEJRWk5KRjQwZkd2cUVNMk5lTzBraFlvbzJDNnZoNldfUXppdkNaTmdaczRGMTZlUTJ0VTdpM2JHM3FUZi11VXNDa2RIQ1dHZUd0amNjZmtmQWRsdk0zdk1ORXRGN2ptRUdNaWZPcUFjZHZ5d2Qxd09GWWpDTjNza0h6OF81bEpMajg5RGJwNlZpUEk5UFVEZUxpWkZGcjh0Vk9jb2Q2dnRzWnRKQ1RhbS15UXliMDBOcHZzVWhCbGxSYXd5ZkFLQTFTcjg1WW1pYWlDU2FieVJfbzktSG1GZV84bXZXV0liUFZaOXJLc1ZSRWdyVzNYTTBlX1dDUXFJUkFYZzI3RmVBSUpBeTFOZDBQOFh1a29ob2d4cll0aDZXN3JGcHl6b3ZzZjFFYUdRMHE2VXFKTmNHLVZiNWhFZnhDX0hGcm15bUZIZzY2aGhPUFlaQ1AxdGlrRnVLOEt1eHN5SklTNmNSc284c0hvWnlDWXJoNGxsMW1vM3VyMHJqVFRPc0hKVUxOUEhnb1pRcFlibUMtS3JqdWdFWVMzNlpSVFdKT19HbEhWeVNMYWM3Z1V6ekFLdzJSMmdNY2l4M2pzMUZvUzg3ZlBRbVN5Mk5wM1IzQkNkdTJuSzBFNlFSUUgwRHZkN1dBM2o1Zks4aVJRRk5MU095RHRGV1VjbTJ4MUhaWUtDUjhkZGRfXzVWb3dpcVdBZTNLM280UHZFUVQtNnQ3d2tpRmpYUzNyVlA2aXFzUlBYVmtRYTBNSlcyZnlwUkFDaUx4ejUyMFJ1MXRSaGVDbHFCVjBCOUpwaVRxZFpJdEVFbkV3OExXLXJ1OWJscGNTSTlTQkZaSE1hREluNnVSSDUtY3pNNkRnNTFXUTU0MnF3ZmdydXJvSGV4ZGxEdGFTNm1tVGxJTjJvZVg1Tnd2azFBaUtKd1EzRDlucWNmTVFCcjhsRmZkblZxYS1Bam8xR3pkeUhHS3BvRVdNTjNEVFkzNGJzanNhR1k4c25XajhrbW1ndEgzdnE4TzBnNm5vRFByd09YVjMwRllrUFlnUjRfb0tHQnVEdFZtNjU1d2Y3N1pkTXh2czUzVmQ5NzZGRVNWdUNSVWFGWmc1bmc3RjVmcHFCMVhIdmE3OVptcHV3UFBUa1dMTWZyREpkOTVGZGZfWS10T2JaSXVfWUszbmNuX3ZkUjh3aXVFcVR6YTJLeXo3OWtaYTA4alVyeTZJZ3NZQUZxcG9kMDFVbC1ZU2ktQzRYRmNIaWRNVkZvT3hnaTM3bllnQ0Yyby0zeHdDeHpqTXF0VVhkcm04cHRQSGczcWNRTXFWMGkyVTg4X2NYNkZ4X2M2VnJUMGVsSEZRR3pCU3hoWl9WLW9vU1N0dDlvX3hlU0NoRUNoNUM1MUE2QUFoNTlxOVVrVkNaZHQtMmpKQ09vNHRfWl9SdGRidzlHeDFLZXNLNnRxcGZ6Y25sMW1vWWd4NllNRFFqaEVPdkxNaWxlRG9MNjROWkdPNGIxMjlaak5IcDFQMHFjS19aSUJMTV9HejRacWFzUzh5OHBfdms0eVgyc19Eb09BRmQwblp6eHI4UzVCYlNpQWlKNlBLaURJX1N0VkgzVG5Hc253eU1GeFA0a0JUYkhzbzZybk9WVzZPSjlseGpjbWs5WVZ0TDE0aHRuUUpCN1pzQUlESWpIdnZoWXgxU0FHZV85clk1RzkwMk9IcW5GOUhRcEVGbXRnTzQ1LWRydnRrWllLczRuNnkySG1LNF9Gd0dRUjk5T2Y5ankxTU1RX2VpYm5kT0luRFN4cGJIQmw5RFZPTUhnVmpwZnRqNE80NEZFVDc4MDgydlRSQzdRd053amc1VldxNTdTZ3lYU1JDaXUzcW9fenVkYzJ3cEE5aHVycUZVOUVkbllMZl8xWVBSQVRnanVIcmxab2lLN3RWR3QzOHdZaVQ1TjdFam8xelZ2bEQ2RnV6eWcyTWxxaWxtSmt4SGpuejQxUjRRZ01nVkF3S3NnQnVNWjgyRXl6ejgxbW5lOWwzU2RzQ1AtYVVuUUd4UFdncGtjMVFzTXpfUjJCRGYwVGw4UnBsQTJrSnpwUHpUOUdNOXh4WjRES0JFTXh5dUEzRVBwTzVWY1R3NEcwSkQ5dnQzd0dneU1JV2tfNUxzeWR6eVFvSmZWR2lXYXFEY2dxYVhkVlloMmFuRzNoeUQ0N1BEQW5MNzJOSkY2VVVuYWpQSUh5Z0pnX1VQWjlPajlPWnVEY3dUSE4tR0ZrbGU2dlVjRmhmSk81Rk16aUxmQ2R6REptOVlHM2p0QmFPOS1IVkVmcmJrWEZEdmhuRkJSdzc0dllvTUtRQzdFekdvRl9DcWtNQUZSR08ycVdmRnZ3dU0zZ1dLSUd1VGQyZ3FfWmdPZEItZnhtZDNWc0NkaDU0Rko4cTJtMXF1dGVLQjVrQktZYkxFb2F1eDJIb3JQUEdEVWlUdmNTQ1o5czB5SnF4Qm8xRVJRTGJvYWpxSHp2bnRhLXhCNGdWYTJidmNOS3dYSktOTWJETy1tMUtMTmlpYXZCOWFCMFpsaWRGbmJyRkU2dkhWdTd2RC10SEFHRmhxZ3hWR1ZqVXlRVFFyMHE4UlFKcVJxZDc5dkVldkowQU5DVk5CN0h0azdOVV9ObElhY1J3SUg0ZEt2WlhjVlVPMzM5SlFUNGxURy0wb0h6Y1ZwY1llQ1NuRFllb2lfTHVnNHJLcEVkdmlCV3NTRU5JTGtwQUFRM2V6RDVYLXhGdXZjWUVHRkdsMm11eWZBay1PcW5sYnhDV1ZuVFM0ZHZjVVpQRHhxMXQtNFlkX0FfUHRCVDZhcUJyWGtyZ0Z0dGZyNDJySWg1R2JsbDBRVWZ3WjlLdTRQejc5bHFKcUNNbnpLZzlic3ZJa0g1ZkJlRnZZV2Ytald5c0s1Z1UxSzRnQzJWby0xM2wtem9yTk1SaXBvQ0REWHRkZllpZUxzQnc2b1ZuZ2ZrWDdaU09UVUFLSkNaTkFocHp0UWpNdFdfVlhleVRyTm9lbDBqR2d2cXZNSDlKb3JsUDBPWWJYLU1LS2ZVb3RzWkljc2xvTVYxRDFuZ3NFNk40eERFMk1rVUZJdlNUY0RtLWFIRFZEb29kWmVCbHlWMUZIVjduQ1FZV3V1LWU1Tk8wMnlJc2J6UjRkSVV3WlJaNlJIREdiMzRydHdPSVFsRldBelRCX25nczNHaFdnM3pqd0swYk1FWGc3OFZlRzJtZmtrWWVZZzdZN09EM3pMSDRaTGJLWk1ha2dxRmNodEJ3eHdzdHNPWERyWVJXU1dOQm1DaUxHNHlyeFlQU3NnSWJkdHVVN2NxUUZvYlBQVTB2RUdfeVJFSTMxaS05WmJRaHB0cmhJdlNaVGh5QzlSV29EV1IzenpaVmNWRzM5LVNwR0NzR3RldE1TUDBHOU9rdW9pc2VDODFna3BuS1dkRE93dVg4ZktVeHVEZHRtQm5DMmJjVHpkU3oyODlCR3FKb0RBeDNhbks0UzViMi1rWDdJZXhzSHVXeFdBbGNKUkpsOHRORHg5R0tObFZYc0RVLUtFWXo4bUxaa2c3U2UxV1JQOTRnQ3lQUzBrbVphX01oYV9WbnNBOE9YRDZjWG5LRmhCSE5fRnZkNU00VWJuQzNHcWptQ0M5OWFVWTBFSkFHeVlkR1I3cWZkRWxrUjNwUHlSTmhoc0MtQjZwaGFTX2pTMEVxYzNrSkw0U0tVcEktXzFUbDV1Q2tjRzRTNngyNllGVmVYbWRvQ1ctZ01KODFQalg2c0d5YTdBTnRRWHQxekw1NFFtNXZnSHQyRlhldE5BQWh5VG1yN0I0QUZyMG1YcTJtcDVEcnhWRzFJSWV4V3FpQjI1MVBKSnFkeWlHcFRMSDVTQ1RDNkoxSkR6RjBtZ0VwdFI3UjlsSjlXRjdSRFJkT19VVDc0dTBQTmRvUDlLYld6aXFlRHZxcmhxWkVHNzBXN3VteHRlZTk0YXVIbjZLQTRiMlNURHp0VFc2N3B2M3RBam55d2djM2ZfZ2xVLTBjUjFtM0pfdHVGZEdEdE45QUgtVTJaelkwNFdlNVpqSC1MX0d5bElYWTU3eFRvWFhORG9RZzk4b3B6aHh6YktMNlVoamJ1V0luSlJ3YkRsR1hZN3BQZlNYVktKVW9KMzQ2eEVqSnVLdFpsWkU5V0F6bXhTSlctOFV4eG9mODJfZlNKc0l6X3FTRDNJOEl3X1lNaUlRVnlLS2xUa3JTZ1JnSi1DbHNuOTBHeDZuV2V3RHVlNzhlR09jZzgzZzY2UjFFNlJHMXdjbU9XandYVlVxU29ZWDI4RHZ0cmxkZDZjak1XaUxUN21VaUE5OE5LSjBJNEpRaktSamgzVU9mRENsT3RRZTdLMjloNjlUOEtSZVcwekdqVE9oR283UnpJSjN6T3o4Um83R3NwaVdDbTVZX1QtQjZ3RjRQQzJRT3pPekwzUjEtY3VrT09EOHVmRVozdVEyZmVobjBPMjB2WFdZTGp4WFJqQk9GdWlVY1FSQ0Y3bXRqcTE5WlpxbFQ3TTF6bVJOUHZad3p0U005bzZSOVA1c3NvZGQ0aEVpMW1OT0x1SXNLRVFQVTFHUE41RzVhSUl6anppVHpxUC1kZXJOV3doeDhxMV9Gbmpxd2paUHNubkM1NF84bWRKcG9CTDFzRVctS1AtM016YUE5UWJ5MEdhWHNMSlRqaFZOclV5TEF0cDU1WVh3TlJDcFJCdnZJdnpQM1gtVk1LdWxxdHVVNldfNTBjQlRKNVNBbmZEWXdqTmVpVWVKb1AzVmlyN21lLXdXQllGTV93OGlhLTRvU3RyYkpKUUZ3RDdfYXdqVHBJSXZNOHdWWTRxVW81LXlVeGx5bGI1T3hkVzRaUHN0d0d1emZQSjhxUkJmVklCcUg3SzVhMlJCV1F5c1htaEpMMGdkVlpEVE5helBSQl83RG53bFNQTVZRQ0pYeXdodnpoUFZEdU51UlRPRGFMUmVIWnJ0dmltc3NQZ1VWODlNRGh3ZHBxUHB1bzBUWjNxTmdkQk9JYXd3Z1RsRHVScE1tUk9ZSFdhNE1wR0V4ZWwxTnZjdTZ3M0ItNldmOWc0VFk4Uy1oZDhMbHZxTi1YcU5wWG9kYnJadGNtQ3JSVjVjQlU4TXlpdGhxdHhXSUI5ZmwwXzVJQjVRZ2I1cVNqVFFxZ2R0SmNnb04wN1JaeUtYN0dSVmNrWl9QMG1nMlExaDRfYWJxZk4weFZkeWhSMWdFXzEzeW1Xd0o4ZmpSV3RBUkp3TkJwNGJYNGdaOWVRNGc2SlMyd2VjeHFkUDB5bGNfencyWF9xOGdQSFlQVWZKb3R1eWlWdVo4Z3RHeVJkc05IenZUS3I5RDNnbFc1aDdXZ3pWWFpvZms5UnRmZUhWY1N3UUNWY0EtTHRwbXNGS0FnTHRRNEl2aWt2d2dQUDJJYmVIeEdOdE81bHdwSUg0SGxPdWl2a1ZESE9uVzJPcXpteElsVktCZjhXeUtTTDF0Y3FaLVpJT2hpQ1VaNGN5SnRTRXV5bi04VHBYWmtVLXBXUU1aSmhFUzdoNWdheFV5SmNTLWJYTkRnZlRDSFZqdU9md3o1eVFqZ1dGWHFHME1xaFZPUXRDel82aWZSQk02dXZqMGdTNVBoRHVpTmY5SmVUdV9Wb3VHYzNaSFJSVnpjeHZQLTlpWWFVQ3JVVXRESGE1OFA5MzlZd05XcUZSZ0NmQXh5anNzZ1FSYy1ybi16YnU3OUhxc3U5RTBYS0F6bl9HWG1MV1RSaTBtOGZvelpaTDNaNG5pcTFuVTJibHd3Z2Q4MXF3NDhBOWZER2pQVEVtd1dJbUowY0lTb2J1Mm5qeXVjUDljY2tRRDBVaFN0Q3l3c1NoU0NFekM4Zy1YekZtNVE5WmRkdkM4dzRpampLT3ROSlNxREUyVHZiTW5rTEFLMkp4X0ZrTEZYSF9ybzR4VTJEbkxjak5xUGFWZHNad1NQUFdkRnEwOHFXNV9zUjJGVFpqRUZYRlZWdFV0bUZRZGR0Q3kxX1BhQV9IOWFJQmR0TWZZMEUxeUxvbjZndEdCR09Fbmdxb2NNdjZrMTc3Z2YyR2RpT1RrLVRWR2ZZdEJkek9QZ0FhazJ6aURSYm9qMmRKeDhPQXhMQjhCdVh1X2g0Rm1sOTI1ODZKOTZFNXNDaDVKemFHQ2hrYUtFUWd2UWstTzFaeTJnYkQ3MnppSEhHbldfMnFOMWk2dmQwQk9OQ1ZfOWlrZU5EU0xCbmc3eXdBbGhVeDg1RjlUb1FIVGNuLWlVandFbFQ2TTBOelFRX2ZpdHBoWk1HOXpzTWRFVUF3M3Yyc1RmWGQtTU5ldUVaN3RMVmp3bFZSeGxyS3hqTWNrY3NqcjJ6ZVpaWUdfcUphR0NHS3dzVV9vdjlPYVRKay1RMmVHS0lmNlV2T0NITG5EeVNiay1UM1ZZY3VYWnRQV0pqNE9XRkE3bldJSGdqcURoMFEtN0JJeVowcWNWdF9nNGdOWURzWHFKSGJlYll3bF9rdXRwWFZfYzBqQXJUYjFZX2VLVGJGOURnTjNTT0xaaXJIdU1xRFJFR0NGUmhkZXRGNy14aUFsQlFZeWlFdDhzM1liQm5iQW9adEhFUm5nMHBGRC13dS1tUEx3bS1HUUZLcWNTUEJqNkFFaWVMdXFUWkVvampOTzY0V2xhQm9ha2QxX1l0ZjJvTEZ4WWgzRDQ2QkpfQ2Z4VERGdTB4Q2oxYmNMWkJPTXc4THpXcTlpa1VkYUtIV1JYMGNrSVNRemVsNllBS1lnLVVLeEktM2hUb201UnZIdzFIOTUxLThndnp6ZFhUalJFQ2JwMEpGYW5vMklSMVNmRlpYNlJBaFIxYU43V3RxcVdjaEhxcHh3clBDaUxwN3NkbXFtWEs0OVZ0UEhYWVBHbGhqcFlKOVEtU05jUTdxMlV6QktUd3ZrM1BMcGlyLTJCRnd6WUpJcXRCeTFlWjRHVVF5SWxJMm10MkNLbTFaZ2dSU1ZtbTRoankyVGN1VUtOd2s0NFNTVFRlekdQWlZGak9wUWJUcERaZks3ZEpxZHJYSjV2c3l5VDViZHNGcFdPbm5kQnl1LWZfSk40ekhnTHRFOGNpemFLOEJmVzFyRkJHWFJTeTgtRXJyR1I2bVRtMGlWakNaX19hd0poVHNpd3h5eG5uWWtJTjI3Y25iV3hrQTI1cnoxY1JKdG5lTDRzOHZpUWN4VWdLak5UTW03TmFyY1NrdDBIZkp6bVZZd2E1aGFrTWdrZVJXMmV4dDllbEVQeWt5ZzdWQklOdV9INjlFMFRidmk2Nk1nbVlLZU9YWkxnei1YeEp2QzRPWENaeVpNUlUtdk4wU29wRUd5OFJfVndJbkxrRktyUndwenVyNk5BbnppcTJBZ2hxMUR2dHc3YllfdTd4VDdlUG5SYms5YXMtNEF0M3d6SXRuX2JmLUw0T001ZWxpRjFhWDFBNlFlNmJ4cG4zMzNWSlRJbDZ5a0MyTnZ5VEVMclN3U2o3Z3NpN3ZER3VqRy0xOHQ2OV9QY1VKV0pmVHRwZDhUOXhXeVl4eG5kRmlYYWhhOHUweHR3NEhUYU9RYjdJTDNnenBtekNIZHNiNDNqaHNhYm1LOEw3amtZeS1NVVRkcnRVREVfLW9HbUs2WFc3SC1mSmNIZnI4SFJaa19Za1pWRTNYODRtQ1hBSEhjUWJISmdjaGNNODJJZEtrZnZObVB4TFpubVR5TndGWDZwVTBWWjAzeFpzMEE5cTEteFdTcW9BWjdPZFlsZ2ZBQkQtNy1KaEM1LWk2QjI4d0thQVJoQ3kxQ0hrX2dsNm5jLUpYS3JMYi04MUVnOUVjWmxpaEhCcGtuV0l0djE2YnBlcXllTGdZMVoxdDRkT1FKVGE2d3lvZ0ZDZFA4QjJsSlR3R3dlWUZUQlJvajlkNHVPWjJNeVRRVG5nd0lVS0pxRVA0emtXTlV5bUtQRzRiLWlDRXZGMVFQSFpSbjk5dHl3R2txSEJYTjJ2UjN2dW8td1BDTnJYdmxTbTVCTFBjRk12NjVQUVM2WFQxek9YcHZCNHA3SUYwMHhnaG9VbXo2TDNVY0R2c0I5M2RtSmMteGYySnNwWTVBMHExZkpVRUx5N0ZaeHRUU1dhc0hReGFRSXJIVXNfSlZyWVZnNVV6NXdIa0NNbnlCVkl2eEdYYlpyamFnTk5WYkFYUDdRZUozX3BEcElrUmwzZTBMMjRVTjRRYng3NDB4STBpVU1nRWR0a042V19CYXBVMDE2Y0N1M3pCTXYwcDBack1oeDNtaVhIXzBGRHBuam9XMVRhR3NRY1FQQ3d6allqRm95VEhvWGFNRnBzdmNvTmJhQTZlekZTUUlEM3RGazlYUU5EQ3NwWGdLcVhXVFEzNFF1cXJmSlAxUFFvS3F6ZTgyRjJNMHVpS0c0V1lWLURMV1ctY2NHLVlsMlFSQ1RPTzJ5QjVLN0tDWkpYSERSMkJmZ0w2d0tfZEZCemRPYUV3RG1jZFNxRmNCV05TNDlWRUJZLW5FYlBFN0ZPRl84QlhIMWJsMVg5RU5vcVkzX0JYd1U5aHpiMDRxclJBdFZIQ0x4Z0pseUpqRDFPbENydlluV2phaW5Kcll2U0lIa09TeUNyc08xM3hfV3RVeDFOMTFGRjJ5TjRtQWdQRDMzMnNPUllBWm1pRHFXWV9mNG5hazhEYlFnVEVoOW1JZGlOX3g1c3Q2RlZQTkdnTmI2UWtzd1RWTVA1TXBWeXl6VzhZNlhkQ2hLQjBOeE9wb0cwdDBrWk9iZzR1U25vNFJZZkdET3F6MExmcTJMRnJEOG9yMHhJVGFTeVlxSUVKVkEyR0t5cHZCWC1tOWc2VTZKYy1oQTUwSTVjMmpyWWs1M05hdW1kRWIyd1lCa1Qzck84emQ2bWdSY3VfeG42NzYxcnMwZGs0QVpkWi1DelJmekdmdWNRREcxOEpobzZvMzEzaWFBc3QyMnIyOUxIMUR0QUZJbVdqbnF4cnE2b1JwRm9ldHUtV21lMnFhVVBJQkdKd1lHTXRpaXpMVHl2YUgwWGFGc0V5d25RcFg3cDlScV9kb0VEbEdUOE04blIzNnNKRDBCeEd3UHc2NVRzNWhrSkVyWWF0T3VDcEFzcjh0U3B3Rk9tMm5TaXU0RVlWVFNWbURfTC1sUnY0Ql83ZEpSZGpiQ0cyN092aUlKRVZ3VlpyT1lNZDhvTE10aTlGVmtjNk83RGNLZE9BTURLcnV3Ui1MdllTdWh3OWhNeGhDQTI3WThQX1lqWjJhX3JZS1dXZ3Z0dlVvYTNPakRnc210RWNWM2dqV2U2a0dsOXpXMTNqeldFRTU5RElBNVZhUWd3RzFHSXVCbEZaeTZOaGZweVhrczRrUEpKbUY1aTJCeGI4RXJwVlBvQ1dsSktYaF92ejNPMFZ1X0lzUUtvM3hlUVprVWttTjE0X1NJdlFqY05Iemt3V2FyNkF4d1dCODhGbmZONnhvUXFPb0J5MG1seG1pME96ZGFva0R2aVR6VDlKeUhNRlhzQ0VOOHBGNERuQjhlVGJhSGlqaWczRlJXZWlmVEkyUHhOdVBQcE1RczFndi1rZ3ZZZHpSbkhRN2U5NGxPNV8wV1lZWkJGZWtBVjdWT0xTVUxMbjFidi1KYXd0Y3piWngxN293ZWVfUDFVWF9DYTRHSWRrYlpiOGp4WWtXLXY2WEswUUJIMEF3Tkx1czZ4X2tDU0V1YmJDZ2lCOEN2RDZTeE5fTjFOMFdYZ2IxNk45aWtfd1RQZ2haZmUwS2p6R3diQkRtZlVKM3dSWFlWQzRsZkNwUWt3bmFacGpWRU9PZ3pWak1Wbm5BSWNJQWhYN3hkZnVpdWZiRTZZZVJnN0NrbkVGU2RIYVlLdDdXX2x1bTNSN0RCZUREZDBzUE1NMWhnX3FVNE5CXzJxLTZxOTZISWFSSWRkM3pySXVDdGJsR2lLck9ibHBDSXFPazNXZ25DSi1aYktGZmpFT1Q2QVQxS3BrODcyUW53LVlmLThxMk5YTHN6SjlFLVFrQl82anVTTHRYc2NPNW1QWlVVdG9YSUMtWC1LaWc5VkpkTktLei1DbEV6eENOdjBLTXNwX3NfRHQ0VS1lOUNnWmNQYndMMzJOd2NCblh1cDZkemxWR1VtWUpTY1hwUkNUMldlTnN0QlFwYXdjSmVzRmNWMUtrU1doMnB3Wk0zc2dEZHF2NVJaYXdURF9OVE8tLThrTkF6MnNhWlduZzRmS0tUbmduSXVuZ1pIaGRtYkJMa09Mb05KaDFjS25haG5QZDJnTWVZYnZMeXE4MjRuSS1jb01kcXJXV295UFEwUUtjcVMwZmhIZk5HN2NsTV9wZUlPYmo3LWYtbDdhQ0hTclBMU2RmdlBNSms2MldTdTdnUHl0TDBEcVc4bnVEZ0dOcldDVnJqX2gzQ29wUWVmMlhiVmZULU5PTlh5bWFLUElKT3lYT01JNk02cnJjMS1sSi14T3ZsREtUZmxfZXNTSGZMa3NXczZBOGhzeXlIQ0RIbjIxbmpHeEQxWHloUkl2YjV2UENDVTZ6OWVIYjdnWnh1cl84QVVNRENiemQ4R3BNalVkY0tBYnBLYzk4U1UzOFJPcjk0TnlyQWt6dUdrY3laTTVYckVUbWdncGh5eDJ1ZXB0YmUwdURUcmdkWF9yWWlicEI5WXB6MHBreWN0Umtlcm5wSzRiRFhseGRfQ0ZIX0hFNHllT0NRU2trWnRjeHlzSHppYUtGeHRMc2ZOYmYzNk5vSF85eURhUDNjSGp5ZVZqVng5emM0TEF6S3NFbUROeGpaZE9VeDFvU3ZuWnlXSG1GaDdsZmI2WFpqd2N3VU9iZkRmLVZKVW9kRjdMRWV0SVdzNEZlOTZ0a25ZOC04NWtaR1FSbmRFSnVadDJhOWwtTW5Pc2czbWg1ZF9KS0VEVG5qcDJmUkpjc3RWTzBVd2JDOS16aHZhVnRMNHd4WW1FZUd2TkFjbzB2Tjd4a01adzdWWXczS3FaX3VKS3ltRjBaeTgyU0phMUZTZ0dhVUF2bm1wZ2xlRVJ3NFlMdUVBcnBNVF9sRFVvODEwRnNUUG5QdFNicDd1V3ZFcGJnWWI3SnRMWWtJeVRBRXhpVGNTNndlMk5YVEJrVmVNWmh1OGpJNzZZTV85VW5PYWVZMzRabml5X1Q0NXJiVHFUYS1NU1ZpYlZOcXZfVm5XR1laRUN4ZnVTVlkwM1lVZ25CSDZHdTBUSUlsUG9Pc2YtNE1aS3AxYnB5dTZ1Nmx6YlVDeHRSbTVzOWJnaG9aTFBQRENmOWFyLWNpaDVDLVk4bER6Y2JqWTNmbTVZeVBtTHkzQ2Z4bU85UGRyUFAxQTV2THhXeGhkNkZzbDVEYTJ4emZ5MlVMZDZRUGlSVGUyR3VfY3dxUzlKQUFBNlVYbzRlRzZlUWNaaWh3TnRaeUJZd09obkx0c2FTUk5veHN1YWNKa2EzNmNJc3Uta0JpSlNMVUROdHJvd3EwdkRxZHNXM0lhSWV0SVIya3gtdW96ZVBsZjRGVUxHUkxmUVp6LTAwZ2lyOVAxTmVWbi1KcV9JdjlZTkdvNUlKNXNiaU5nQnduSHVGNmJHXzdHT2Z3SWZxOTUxajdGNG0zZlNoSU84Q1JLLThHcFIyR2hGbFpKdkxMbnF6cVVadUJsUFFGVVZIcTRKcnQ1RUFYZWFQSVJzVWpBVEQ2UWJpM3pBRXJZT2xjejA4UmdWUjhTOWs5bk8wQTZ5VF9xRHA4VkhiS3BVeFlGODl3LTB1b000VVY3djh3c28zMVgzbXZkajVOc3FTR1dEU3lJa1g0dXoyeTlNZjc1TXA5RnR5b1VoajkycG80eWZleElvckdkSDI2T2xyX1ozc1FlZjhzcEZIcGtzZkpCSmdSV1YyWlVfTU9PVm1ybWtlQXU0N0VSMnFZQWVkZDhJeDAtUXA0NkZSX3NXUkZNTW5SUE4zU3JRLTdiQ3dsd1QxYjJkTHZkemdPS2xLaHk4amR4dXFoZnFxVWhYV3BzUkthS1V4UVFlOGNzRlZFYzIwWTZJa1V4Y2ZTTXhpeFFyZnhVTDc4UjRNMU5wcEpURk1lRUJVb0doSFRxLTh0TC1ma0ZBaUZEaUNDWl80d0wxdzN0YWd1bjV5bFNBRUpqaGVxMVB0bTdJRnhDLTAzbXk2eThSeVp3VG9BbE1tNHRXWEVhcnRxSWJfbnNzTU42dmh5QTJjSGRVeFI2VU9fODBMNWx2MHhPZll0RDI3cGpIZWNqbUgyX0VBSW1NNHBhZWl1NEhCLUp0X1dRakNYV3VlNDh3REctYzRDS2VjR0pxSml5Rm81MDdMRjE2bm9uM19lTWFNRUZjQTlDaEkwX0FyWlNCU19nY0RRcmVXcDlaWlNSV0xnc1JPRTVFMU9PdnFoTU5GMG9ZU0tEcUw3UHYzX3V6X1drRi1Qc3RBWFMzUDI0amhBN0hEcFp5d2R6OVdtNXhFY0V3X1lpZFlQQm1XYUVWLWJhcGZNcTJaU2RaMkY5bEhuaG9WcDdPb3lrZjZUVUQ5RzBtcXo0VGRjRU9kM1ROWi0tVmtfcjRkU0E5UllFMkxpWWMycjlReWJOdkZyRTFJYWt2cXhGTVZEN01ZVDRXeWlXTkJhWGJXZUltRldzU0NwVmFHbXh1Rmw1dzh2dTQ4NTVHNlBvZHV2UWxSV1dlbl9yVUFmTkFhaTZsRDhXTThQTUxWZ3RURUdueW1NNGwtTnFSa3RFajNCWEVRS1ZPZC0xWnBESUduN3RKN0FRZzQxMXVHOTRqR29ETjdXd1k4NGJBZFV4QVVycGxDSE9FM1huTXBsNFBhMHpUbE1XZHRHY3Z1djd3NkdINlcyRVFQQkk1OVhyNHE5M1RJa3V0MHJrVF9PNks0WGJicmlZQjFOb0NJMlRZbjQ3ekJNb21BQVFNUTRLc1RKS2E3UlJIRFhWZWhHb3hGZHpSdTdxT1NObUdNTDZKbXRhSTVyTTgxallQRS1QaWJuaDlQMWt0TUhqMjZzRzFaM1Z1YldWSnhVSkRaVVZnM202aTdyRHhrcmVaT1g2S0RPdjV4Qkw5c2dTUDVZVzFOcmx2TThjTzJvdnhEV1JrVHZDbGtHTGh1VDdlMm9ZZzlOcWZXZFU0Z3lhc0VnUDhPM1lVQUtLX3RNdVJpbGMzVkFuVU84eTBIRFlIQVFqRXJUcHBxcVFYcTBfU0R2WkJqYjhxbUhWNmpqbDIyVmdHN0FBTnZTUk5WaXJuQ3ZROS0zWTdaR2NsNjhLcEhka19nRElRNWNXRGVmNWdzNGg3eHRxaDg1TnpubjJSeGx1dnFXcG9fNWJVR0pPTmZfRlJta3dUeFc4MFQtVzZwSVRVTkZjMXR3RWRUNFJjSG5XRjBqa0xFQ0hpWnNaM1NwTFJOUVIwSXNBT1BmZkp2cTRmbEt3QlJsOEZMbFpEYXN0ang3eldsZlNoNElJdHJaaUNwWno3S3I3QnYtYU1xMXVKZlR5aUZnZEw3ZU1OUjc3cERPcGk5MjhjTlVQRzBDbklhMnlRdFl5TWhrOVk5cE5tTFU2d0ZSNGVTRTJrcXN6ZXdTZnJSUGVwaUtaYlNKTC1RbUpHN284VlA0bWlYY2xzcjRlZEFERHloOUNRQ20zNUxLNVVYd0NrdGU4UlFXZmpRbWx2V0I3Ym9aR29ra3JFanVQQlJuLVE4QjZhLWRjUWNhWUpkMWlFTHJTT29xLTZNUkFHbWFWa1RxaGtHMFh6d0o1RjZQdVN1d1FEdWtZUzN6NVloYmlWMUhrOFU2MHNscnVZZ2NJbHdPN3BWUW82enZXYWJLaFZqM3d1cE9XYnc4dExBZVJQc2h3a0JGSUtjSXVpSXlOM1RIa2NDcFZsQVlSazh3SGpWbUtzWG83RGY5UUhxbF9MYUh3dWdmVFpCdmlEZ1ExckliZ0hVc0NHemFwbkw0RlJ0Um42WGoyanNqTVNjRFluaGZtcWREb2h1Mm1EUk84Z25QRV90SWwyM0lveUxqRXg1MkQ2T2lSdUVpTW9nWExHVGhKOEtFZUg1YzlfZ1dMY29CVkhWd0gzTjZTaUV2QXEzZXhBQVhUVFVtLVk3S2E3MFVwMnc5VDdQZE56Y3VWZ1FYSWpGNVhOaUljRlBLN1lmN1BBZVJmMHhISmJJc0tpWmdoQ0w4allOdUNvazBjRDJ6ZUY5b1E4eU9JSnRTSnM4dmtiakNLRWh5MThvMzFfQVZaVFU3XzJRc0tHckxKaGdRLTJGUDhOVGtjRU5MSjBoVTdfbzV3TW1teE82SWxHamswUXhyZk9RSEIwVkI3blR1UDJXd0p2Vkg4ai1ET2l5bmRlWkdpSHQyNDlkd1FxTjh5YzBJUFdoX2JsY1BmaTdwTi16U0F1ZUY4LjgwbGlzdlZWenFrc1hXb3BrdHVMOFVQWVZVTkplb3h3VU1mSkVUWWNiUjQ" + }, + "StatusCode": 409, + "ResponseHeaders": { + "Cache-Control": "no-cache", + "Content-Length": "654", + "Content-Type": "application/json; charset=utf-8", + "Date": "Wed, 29 Jun 2022 20:50:30 GMT", + "Expires": "-1", + "Pragma": "no-cache", + "Strict-Transport-Security": "max-age=31536000;includeSubDomains", + "X-Content-Type-Options": "nosniff", + "x-ms-keyvault-network-info": "conn_type=Ipv4;addr=24.17.201.78;act_addr_fam=InterNetwork;", + "x-ms-keyvault-region": "eastus", + "x-ms-keyvault-service-version": "1.9.444.2", + "x-ms-request-id": "9c9bae59-1d27-4223-aad0-8e4972cd5bcd" + }, + "ResponseBody": { + "error": { + "code": "Conflict", + "message": "There was a conflict restoring the certificate \u0027https://fakevault/certificates/cert1387819847/f4c141ebdc8f410f89b9d47f8fd7e7f1\u0027. This can happen if either: a second certificate with the same name was created after the first certificate was deleted; thus trying to restore a certificate whose name is already in use. To fix this, rename the second certificate to something else so that the restore works. The second probable cause of this exception is when multiple operations are performed in parallel against the certificate. To avoid this error, perform operations against a certificate in a sequential manner." + } + } + }, + { + "RequestUri": "https://fakevault/certificates/restore?api-version=7.3", + "RequestMethod": "POST", + "RequestHeaders": { + "Accept": "application/json", + "Accept-Encoding": "gzip", + "Authorization": "Sanitized", + "Content-Length": "44263", + "Content-Type": "application/json", + "User-Agent": "azsdk-go-azcertificates/v0.5.0 (go1.18; linux)" + }, + "RequestBody": { + "value": "JkF6dXJlS2V5VmF1bHRLZXlCYWNrdXBWMS5taWNyb3NvZnQuY29tZXlKcmFXUWlPaUkwTXpnMVlqQTNZaTFrTlRRM0xUUXlaVFV0WVdVNVpTMDJNVEJrWXpNNVpHWmhaamdpTENKaGJHY2lPaUpTVTBFdFQwRkZVQzB5TlRZaUxDSmxibU1pT2lKQk1qVTJRMEpETFVoVE5URXlJbjAuUmc3WXNKbEx6WDVLQXN5WUdFLUIwaTAyLWNMblFuQm1hbHQyOUM4cXNfb1FNaHhVbEFIclR6VHFIR1UwRmRCSVV5VzVHOXJpa1NBM3lMby1Ec3gwQzE4MFcwV3hyMkNwMVNEY2R1SUJtWVVJVmViVVUtZ1RQZDR1WW1EdHBTcHgxbmlweEItWWZwdmtDR29jamx1QjUtZTFZM184RUhtc0FvSFlLc01jc0FjakRzZmxRR01SWndhdjhzd1NMd0E0Mm4wa0o1VXdFMmZkMkxVa0FNdWdGSVAwWmVuRi0ybEt1dVZWZmVPRjY4SkZUaWtWM3VxYm5Hb2x5LTRDSFRHUWdRSnRKUFp0UkVKdkw5eC1LT3Rmc3R3eVduZ0lQdkFFMGxNWUNyUE9vdWluZ0RtbmtyTFpqY2FfV1hGOFVRcTR6UVBoQ2RjWVJYQzRMTVlCSlV1emtBLllpOTdYUDdBZktzWWdaTnZiU3RxUmcuYWloeF9LVkNCMENmaFdnS2R2eHVKTmI2Q3NKYUJqcHhJZGpMd3RUZmRLcjlfeXFNcUtUX1p4a05LNVV4WjZzeF9XY1JVLU1jM2VZSEpNMGtZelZjNERLSmFFeXhKUWFlek1HbkRqdEJDZnpRSFBON2JSTnY4NVo1X2V2VHI2QjU5M0ZpZ2xac0taNGtTUGdzdm4tMlp5ZnU2TVJLaHUwNTA3T0YxdzZPblo5Z3FoV3BiSVFrUTBFa0hJdW1WeW9CcmZPdUtXdndadGY3NS0zVXlkVnVIQnVKMEY5VXFOSUQwSE1Ucmd0d3E1Xy1LWS14RDdfakk2MHpUYi13UUVoODZtSWVuR2w3ZFRVZ2lOaUx2WTN2WEVxNWpyR1lLbERfZ2I2WGhMeGpfbW16eEZiNmhXRFY0YkIydDZ4QnBaWUxldVRuNGhYNE9yNlpsSXIyTVBldWFpcW9xdWk3bFBEZDBFeGZsRVBxTDVSWF9OMXQ5YXVVWFJjNGhmaUU3VklkZ3NQaEFTRTN6VHBxakMwUVBVUVpXeGdNY09tN1BTb0sybHNWMTFYRDcyeFRiSnZ6T2FwalF3UU9rMGkyT1RxX3RYWDRhbnlOR3FuZnVrNTFqTXVoakxMYllhczZsQlJERERrYmw1Z0xpZ29PWVQ2bjhFc1doVHl4bFlLYVVYcDlNN1p1NjZzVHdUTVBEMk5TcU91MEhfVWdsUUJnUDRzYWctel83azAzUnJfUF8xdEk3NERZdVgzX3VrdjU3VjNxOEdXbGdOZVRmRmhUWGRWNDk2dEVKNVNzR0V6Sjh2WEl2TWlwM0pXNzZWdmRuV3dtZTFqTFc2c21RcnFzTVN0a0VHandWSWFqS2g2TGNIbE9iemR1dDMxSE9UZWNIbElBYkpHQjRqT2NvUVkzMzExd3R2bnpTSG5TVm0tNGxvRjVKLURrdnVrdzlXaktnWDY4QTJIcTUtSWtYRHdrb2dHYVA3N3o3U0Y2akxvQ2l6UnEtT2paS29nd045R3dYT2lNZ3g0N3FxWVN5ZDFkd0hXRHdKTHVycjFJQ0lEaWVrTUhYMWdmM2xncVVncnFSc3h1RnpxOHJ2LXNkeDlMbFBLMUNVQ2JGNU9jakFyTkpzdTkzaFQzUWhkWURoQ214c2VjTE5LVGdrcjI3M3gzcjZLS2Z1d2hWa1BTTFRYYVFCUlBLRXhkaXVoYU9raUlpMkdMT3VzSXJPcWJpQWF5eWhjUS12M0tlVXVwOVRjcUlNOC1qUS1OczhJUE4xU2pfM3BHUGMzdE9BUGtORnIzb3VGR3h6OGxjUFFOSVI4RG9iNy0wWnlHRG55MEM2b1BOR3BLNHczZWJQdVlGTVY1NTl5Y2hxQ29YTVV3WGRNaG91UFh5eGlVYWlnTFBsS21LbFgzN3pHOGMwVlRIdVRNcXY1dUI1Z3hMZk92M01ESVZHUkQzS2VkVlFvTzVXazA3ckhGR19YRm82ZUxWXy1GdlpsdlNOSGFoX1BfQkNGTDBoUl9iUDJLdk5ZcExEYWdMZHZFMW9NV2xCMjMzb1VPNjZUNk1tb3RmWFQ4RlhSb0h2UUp1eEthdDFFMkFqdVlfVk1uRzdfN24wUndUaG01WVRXRTBhOUliaDFTMjdaWnVuZmZuVExaZ2gzSlFpZ3BoQVh5Snp1bWtPWEdMdEhidXU4LVk2SkMyMXYzVW16VURqeFQ1TW5ONFg5ZkhxVUdreU83TnN3S0NNam5laXpWd3dJaEFLWnp3bkpBNFpzSnQwa1N6TC10ZzJLc0MxTEYzYnZtOUNvRm9XUjVFMzloanV0TEJsM010d2l3Rmt5VW1JLUNvOEVhcFNMZTlhMzduM1VLYVB4V1FvdGhrdlRIRnUyVEFQQ1pvVm1UeDF4NEtrdlhQN1dhM3VFSHU5eEpBZGw2MzVSem5vdUlUcHByYjUwOVR3eE41UTZCaU4taE5EQlpPUU5xMlo0cnZyNnFranpaSXlSbHpJUTIyUXZ0dDFiTTIyTnRZRHVXZEVOMFFVWERwZXNNX3FOdGRnS2EycmNYUlpUVVpFMFdPWVA3S3kweVE3ZHB5YTFtOXVWVUJ0dXpmRTV1NEdNd0dMckNDNGlIbzRuZ1lxLWF3SlpjcEdKRG5lUHMzLVFXWHRXWjd5TmNVdDFZbVh0Njhta2l4T3I1S2dGYTFHMnBFb21XbHJvcklLazZkQUQ4UVdsMEpzSFB3RGh4dE5BVXJfRTd2VmotV25LVlNlNWNsSUV0bjdTVXlxNENpcFNXMGo4VENjQWJuSVdDYXB0NXBrNm9CTEtxWHRqbUdEN2NLRzNlZ3NEWk1IRi13UU1FNE5SSkExMVdFYkVTdzZnNjRGckZnaWJCQUtKWDVNbXJ6Vk1pTWhOMFZjWDNSVE13OElxeU5xSUUzWEZhZzl1WE1tZFp5MlNaajFydUNqOE1SR3VZZnlzSUNzVkJBeWo3TkRZWDA1d0hxYnJTY2VhR3djWEZyVGltcG52VWZxVllKU0FId0otX0wyUllfTWoyenFDUExnSGl3eW56MnZLTHJVM0djWVdQSzNnX1FiZXhNamdhcXhRcFFtQjI1eWdld2VaU0NwU3A4dElDaFJDQWhOb2JXMEhNcjlENDhGd1E3cE9vdHdIaV9QS0MtT20tekFNX255cmpuZnNEdE9rcEdQN3NUZHVBcFFFSFgtY21MQm1iWEdpMHJrTGQ3VWs2OHBkVmlJcUhNRTVQX0FrNjhhb2cteG9uWFlFdVBQT0ZPUHdZdVNfVW9YUzRNcXI5eXN1V3g0NVBaQ19LUWtGeGpOSzc3UHZEX3RENFJpY251Y0RjRG51R0JpZno4SzRoY0tMV05WY21Yc3dNZ1RwWGNqYzNfTjZ5c0dWMW4wSjBSbzRPZDJod0hmTWlRZUtucTAwZXZnMFFzZExaUTFDM0NYa0tlNk51YTRITnBpX003b292d216VzdDdG5OV2FNWV9RRHk1RUVISUVOUjRWNmNjTy1IbzJtZndfSTFuVHdZRFN6X0xMU2RXSFpGS2FaS1R5Y1VwWGVDX0ZZOHl0eGc5MVJ3NS1VZHQ4Y1IyVmRreEN6OUYtWllaU184MzhJS3djMGpUdlVrWUphZzI3cDFYMDJZeWh0UmRUdkV2QW5XYVR3Z0M1RmgwbzJoNHlyaURnbUxIVkRfX2NudWlocEIzT3dJd3RpY0RVTUtlbHpLQmRhQnlLVTdhdGh2UHY5X1I0WWVnZFBsMXlmSC16Wkp5VnRCbTRwYlM4UVFPcGVHbkFmVW5lRzNpakplMy00MU1GUzNfZmoxOFgzbEM1T3JBT3o5aTB3Ymk1bS1Nc2VTcnp3QUtaeHBRbF9lSGViWU9RYWMxX0NUV08yanNKXzRtb09vcHJ0bmpmVmFRZUhrNnRjbEFxMDZoZTFEd0JFQ1ItczRYbnlvOW14U0hnYjhCanJ3aDd0VTBZSlYwQ243aE8wS1dIZUstRFg0VVBKODV4UHZvZHozcVZpWjRQTU9peEtqemNkR19TVC1iQ2sxeWNFN29peE8xMDJOSHlYb2FtMUc5Y2U5T2Y3TkdyRVQ2aFRDMEJ2Ty1YUHFkMXd4THdYZm9qdkFNYzgwaVpUckNkVVdvUDdoWFRpcE1Hcy04bWR4UXNJTjVCdzM1T29MRG1rZVBNMzlWcjJIYkJ0UkxWb3ljd09XMlVhR1FmSlFuNVlEazhmb2dpTjhSaE9ZMlkwSFhBOWJ6SjJ2OWlJWFZXb2Y5SmlmaGdBNnVzWVphdVREN1JUXzJxRjhGVWFjSEFfNFFkRktwME15dWk0QzhFRm5fWWlMOWVBbWtyR0RMQmlrZkxFbE9ENTQza3hxS3lxSy1LeHRabXRsWm5Ld0lZTWhabnc5Rm9xT1Q3OFFoNkotdVJPTHlGVGdWU20wVEEtVE82enc2dzY1bWl4SXZMOWh3aWhCaUZlVS0zMXRJdVZaUE15UHIzZnJBMGVoOUJNMTNMTG4tZHpGVjJpdlI2SHZJN21abmNva3J4WFpEQ3dWS3dfNzZYVHd4MXhXUFlpeUpvMlNvOU9FTHM5WUx5MVhwYS0tYlJBRS1feGU3OUoxb3cyREZJcFlTaDYyWkU0SnpEejBpN0FrMXF5LWttMTBZNkw3VDBEYVI3aGtlZGdPRWktNjhFNmR0MnFaSGFXdkstaXhyV3RLeWg0VzY2NlBIQnBoTzdlbGpKYWxOejVuR3dpUk16T2FWbGk3ekRlZ3BQemFPR0tfQmZtTmliX1A1ZnVHenFsYzFqc0cySmZRbFFyT3VFTl9aWl9HS1VRWlB1N0xxczZGQUowd0hYZ3ZjR2M0Q3FKd2tzNk0zWG1KTkNCaTlGbVpxUDJCLU12MGg2Ukt1SDNidVdkYVk2RU9jc2dtU251N0t3U0lFekNtbDFpNGFFTGhCc3BfVWpsQ01ENkdUam5jNFVKRGhsTWRUTTlSdWxwQ1hEbDJaUWc1N1FhMnFGeVdWeGNkdTM0WVdPOTlxM20xa3cta041azZiWVhnU2pBcWF4TGxWSXdaRlI0WUJCTk1xVTdTMkZEQ1JMWnFUSFBhODkwellPU1ZYTnRFc0c2aUhUSi1EX0F3YUlpeGRhcEhPcHpWWDdzbUMwYW5uaVhNQ25rX0lsX3pvQW82c29PT3A0TXRGMUJzUmMxMm5zVm9JY0tIX1RDX28tcGtRdDQyb1piZ3lzNGszdWNKSzJRT0poWl9SY2hiN1BqQXE2T1ZZN2ZYaGtLZWVxclRXSVlCTk1qVHR4M243Y2tEQlhKUWVxQV9zN0RrZlBwanF4UDhJUEdubHMtWUZWcVh5VFRlQmJTVFpXT1ZILWZ1WmZabnAwMGZJcmlDTm1kUU03dEhoOEEtUlZqR2RjSVdYRFhvMm1iX3hjYk5wQ0VmQzRoaXUxWmxMM1o4N2UtbEFXLWV1bnFoRm1xaDg1ejRFY0Z1bXVIb1ZLRXBLREg5cUxWSUFPZHZxc3FrQmFSZVZSckowdTNSTkJMWGRMOWNhUGkyTnZEUUhDanh0Z3RWdHgySUFVQk16VVJiWjdmbHBTS0lxaUxVdEVPbk9iZGN3ZjUzR3l2aU1Vb0s1OWV4WXZUSENuYlliVTk5YTZCcktCR3l1cnRhVXJqLTExckVwVWVBYkNMVkZ2WXJpbWlCVkRfbnlNUHZYTXFMNV9wNUY5cnhTanhINlJkN3hRZ1RDMVllQXF2ZDNFYWV1QTlLVHNicFVVN05FaFlic2ZYT0UyWWxGT1RmVEV3ZTlwWkR3dmxTQ3VLdHc0TWl3MVBOV3oydlBRdUp2cHZMXzktWEUzYU9GOVFOa3RRSHY3QWJaUGMwLUxZRWxnZ1hpZkdaTzE0OVVLNU1uTTJVN0M2d2kwQ2F5UUJpdmN3NjZWMXRNajV3WERjUmhYaWI1M3E5UUs4X3pHcmwwazBWQTIzQjh0US01bzBkNndlZzNUc2o5RWlHalhhTXBFZ0ZoUTRWM29rc09YdElWRmZQTndlNXl1bVZUVVFMVEQyMW0xc2NsTFFOYldUSm1zdk03MHU5cmNqRWJ3QVY4UU9IRW53UWlXSTZGQUpodDJMR1ZlZEN0YlNwTDZaRHplbUhETTRsbHoxWl9ib1loR19HYmM0T3l3ZlplVzEydEFxckdCZHlYb3V2djEtYVBHZmFvQ01qRkl2S0dYYThZN1Z1UFJaZE9Ec0g4aDJFV29DRDRUMkhuMzd3T1ZDNHBKTUhDRkRoaGNFaEx4LTBxRVkzdTVqSUgzNDhLN2REbXZqVm11WkpwRWsyTHE1bXRkcFJiZ3NRYUpDdU9NUGMxa3RNeWZDQVdLdGNiUW91em1pcHhBS0dqbTdBTjFNNjFoaWQ3THlZakRRYjh6RWk3X1lsM0F6c2wzTnprR1owUDBfNm10a2tBb0VIN2hHTVp4b0VMWS1NREt0N0R4Z3pCVnlwckU5SlhaWmFJNGxQVTE2SjlIbGhBbExfdUk0aFFsQ0dhWEhRQ1pGZWF6U2F4MlZXbWFrQktLdmY1SVpaLWRFaVpRX01Pc3o3ZVJxS0NUQ3VpMjdiYzZ0bkFRNFdTV2dkdUp6OWxxVW84dnhLNkowSDZ0Qm5kZGJUT184UXNFVko2dEd6a0pHWE1HNk9VT25YT3kwR0xUbmZlYXUwRXVKRHp3c0UzU293RWVuVVVmR1A1cWMyc0ZhdXlyaEVCLUE4SXppcXlKZkNkY3dPajhmcERwYXVtTzkyejJLMXloVDhEQzVJOVZNektqaHlJVlpab081cEFsNnBRYkhiSEpLMGt2NmV0NU13ZVBFTHpNWC1aV29OOVpnNk9wR2NvR0lXNTEzMTNVc04zM3d3LVN1bExlTTdfdmZ2UjZvTTZTWllCQXR6ZXpBcjVic0xXdTNoME94SlRDN2w2TXJURlZhMElTd1NwOTNkcTg3ZUF3bnFUSlJDbVI3Smhnb2s4YUpLT0RYbUs2aTU1VHVHRFplc3plN0JqQTZyb0pkMGF3bVh1LW1YZGpzVHpfZC1CWlZ3dnVfZ1puVGhkRElnb3d0N3RYNHhPX21RZ2J1Q1VfMjYyTXEyZlpISGdfY29fckI2V0t0cE9LYUljaVl3NFNwMlRfaWJCWW5taWZlcTBkZFN4LWRueXFPUlBYX1NVbUNia29OUE90ZFFyNVRQNEs2R1JuQVFzbGY2RUlGTTg0M0FkTUZFNjZJcy00Rlo3OVNQTHNVWFpLcTFNWFVRQ01OSlY0b0tDOHR4STc5b1FRbl96cE9yNzc5MmdPeE13SGczc3lMaUVsVHZramdWYllwTjJnWU9qMWx6SG11SFBkZjB5MmZBQy1fVTRnT2lvSFRmM0cwaU1GbzJva3R6bWk4Y19VcVpfNnd3dzVvalNyNmQyNXZ1UGhQdVM1eVhIRmN1MGJ4VlhrYWZ1cUV1MUwyQnk5Xy1hcm94c3BuRGx2NzItYnhmRkJKc21QTmdaZXpSNmMxdDRBSGwydHJibFpmX2NnaG8zbDRESllYV3B2OGJmZzJJQzd1bVhaYnlmWkV1d1NzQlJnX0lVTmZ6aWF4Qm16R3F0MmpXakJ4em12bnhYZXNFYXNUclpGeE1HYm1ucm82YktXTEFaUmpELVlGRFh3ME81Q3c0cXhpZUVjQW9EelpoaGhWX2hpVW5VOERad1NERnBZd3BvVG0tMHN4WTBhWXRNOTdqb3VKUEVxU0czSFBBOTZ0aC1nMGxyTHVLb2ttX19uc09RcHNZZVBfY3FIUkJDdTdPUjBnMHRVMkNXTk94Ql9oQ3VuYm0wUEVUUmRKbXk0UnBBNlNnTVlVRENleHAxRUNUOFI5OVpKaUdidC01RGVTdE50bXc1eWNwcGw5emwwd1pyWFM4RzNxQ2lkbENNb0liSkY4YzNSWjFSZGVtQTkzUVQ1X2tXdHltb3A5TkEydDRCWGJxTW9MU3FjUXNHczlWSmxwV05QLVVHVE1UNHU5TVFVZ3FWZGJCOGhyc2Juc3NrSW8xakNVUDBpNUYxYzJJXy03dTBxcmRBajdMWVIxS01HUGRpTGFqWXQ4aFhPY3ViWGFXWkVLYjdrU1YzWm9mN2ZqdU1WNDdpeTBnN21seUlJeGgxRGVUQm93TUtwQ1Fmc0J3NzFPdFV4eE1JOGdzVTl3S2IxaktCRW5ZM01KU2lKVTJvUW5xVEFVNU1XaG9uUWx2MWdlQU5OajE0bTBKN2tXc3MzNFZpUVFYUHpIMFdrYzBwb2V1Z01xQ3pmQWJCTlpzNmhQVHlhQUZXa3FocW15VlA5RnRBMlN0T3VVMVJRVnZDS3FNWE5rTkRKMy1SQmEzWjQzcU93MnJnb2lIaHdBemg4Q1Y1UWs3T1J1V1FCY2FDZVd6X0pNTTFnbV9EQnotTGFlYmF2aVVEOVp2VjZwR24zbnJwWWV0SWFVNkU0c0dpSHVLdGpMdUdxenhiWmZRb2RfMW1TdVZfdVBHaFVZVjRYdzZKcXlTbTNObjJOa1o3Ry1PUUxSMDBLXzRGSHREUzBSYW9fZkc1TFhrWW1ZSlBwOGl0ZjBRQ05Cb3F1dXZIaGQzajZWbU9FQUFNeEVCZ1IzNFVJOW0zdzhwcmF1UlBqSkRuNUp1NEdxOTRfY3pSbGtfYVBEd3l1ekpDbXlkbG9JOG5BTVFDYWtFNUdEWkI0bnlZQ2JVVHV0YmRock5ZNklwU0pSVnNYekNIbnE4UXRTVVFZTFliN3cxSjlUa2hzSHRsZVFNWjVYekNKaUM3T0NadHlpNE1LenNqWk9veGFIXzBIQ1lpTUZtQmNuTkZRLWZtN1JkNy1DaHp3cF9YZFFpUWQ4YWJjdXhIY2JFX0Z5cjJEX0lyUWhQY2tCdGJZQ0g5Z1ZUREdaNk8yZ216b19BNkJmNEUwSmM0Uk5leV9LQnE4RWRnMkNPalgzV3JBRDBlMU9mVTlxalBmNzFwa1ZaaUFGS2tla19VVXllcF9CWW03SFdfYnFWX0RZWE9Db2xtcl9fODFwZGJqTlhxbFYwbzdlS2VfWjUwSDM1Y3BkWVFOUXRLNjVNdnh0OFBHNnJjTE9YRzN3OTRwX25wQXNyc0JFcGd4Umx4WDBsMVk1Z3dTTjMxZy01UDU0YlBDdEoyNmVQLUNsVDZSZ01oV0M1Q2Z6SVpTRDVCSmExNlJKeW5XLVNBbW5HX3UwaW5vWEJfMk1TWXhzcjJGUnB0UGh3N3c1cjhDQ3JLTW5zSy1DTGpfSjFydjV0d3BETldPeE9GQUdBNjU2MnJ2MzN0SXNzYmZPa2doem1MOTBRQW1YTjcwYkJfNFJKYlk2NUtPQU16c052NHlUQU1rZ1NUbjk1cXRjN3U5LXdoTlpXUWdHUTJjcjB2ODUxU3hmam4zRGVJWV9sMkNFVkdkcVVDcDZFZ3lUVW54RjZlTjIwdVhzbWpxaWY1UHBfVHJLa0NVMGJrT3NQMFpQci15QXBLaUh1UEJyU0tsVTFiZ2lpY3lDLWNmeDVRS3VkN2NyWmphVkxESkhkblRPRi13b0JiNVBGUVJEdDNEQ0taNnVqbmpfelUyUFUxUDVwQVBwYmtnNWIxNG5XNDZZVlBCSzJTNkRZUGMwRUxiOF80b20yTElJNnFJd0VLZUVvWGpkY2lnX2pCcEEzOHBVRDZHSW1vV2h3MzRfSEd0eWRmQ1VzTTVtTTZZOWJNb2JQdUdsQlAyMi15ZFFNZ0llRGdyNFYtX1J2Sm9nZ2NGZnFoYkFHRDRLN1JybDYwbmtfbjdXQ2pEakI1MF9hWUFPbnlDOWtnUjhQYjQtT280OEdFSjJjMklEQk5KQU44V0kwUllhN0RfZWN2UFU3QUpzWTdoVXVUakI4MXZBVGIzWmt0N19LZHo4NC1nazh2RThidVFrZFlGckVmN2Y1TU5PMG4wM3hGY2VsOXRMeGcxdWlUVXVndF92dFA3QmgzSEdqVUVBaDZMeGZIZWR6N0ZQSEVoYkJDYjEtNy1PWVBnLWNBU2pvYnZnWEd0Qm9VcFh3ZVRydm1fM3A1T2NHckMyaWlhTWpWZFRvb3Y1MFZoZUZNUU85Skx4NjZHZU1WZkozbmE1dUFFWS1KTHd4VnVCZEI0Q05obmpvbGhNWDVsM2U0bjlWcTBVck5PUG1oMFpCazRUNHJ3REgwXzRjZzVOUEdkT2F0SlJzb19hQnNwV05PaV9iTmlwSy1HcTFiX0d5ejhNZ1dzbkN0akhWOXNNcHpkeXZncUxObmtVd0xab0g3QW95eHI5X2RrUDdJb2Y4eEo4cXNBcS05MkNfRVNKa1hzR1RJYloxdGh4YVZsZzVqcHRSOHdXeUZ6MEdWejdnanFqNXI2ZE9raXoyU3lQbXdLN0stUmxVYVJ5SGFpZ2gwRnRGTG1fTUplZUVnVnVXR3BSSDVvaGs2RF9sTXpZNC04NjZqNVkxaEZTbjJQSTVEQjV4T1VpSVhsbUNwc3NUMzJpejVYZ1hEbmNuUzdSM0FsbmRGcldnanFadDlCX2swNnhaUW15TEcyQ29vXy1lbGZzVmhuODBvVy1hc2U4Mjh6N2xQcTRua3lvNnJZeFpwMlk5bWJ4bmtQcWZTdU9DZm9ldnRLYTNad0k5NWMzbXJDaGZHTHBaejlXR1ExdzVGTzc0NTlrbDFmLTBBZV8yTnVyWkpaUExEcEczYklHLUx3TnQ1cTR0amNhSEplWEtuMi1UMEVvMENPWXhlaVFkOW5DYnk5Vm05OUI2WFpscXRON2xaYVlXT2FMM3o4ZHhrQXVERXFKcVd6VVp6TS0tdENvNHV2RkJfVEx1QlJtVDlJc2FvaDVwTFljSFdQRTJGNG1GTGFKc3dHd2pGR293cFduTUNrZnNzSlFBcWwya2ZqSWVrRk5LeHV0cmhBdmJ0WjRuWTFyTFg5YmVzZWRjZ0paMTAyaDV5dE9janB4dG9vY0hRUl8zWlluZWxIc0YxZjZfMVpZeGxLb2NHR1VlRUxaVW8wTkN3RW1rcjZkbnVEVjNkQkNjQ2MtX1Jnc05oSXo0eFZmX1BtVFlnUERDVHc4RTd3QlNFWWhrekMxY0I0cnA5ZnQtYW5MNHNCdmRvQTJubGNkS2c3MTRxaG5SVk84LTlrTlhCelM0YV9hbmhMQU5IOXdldWlsN2h6Q21uMF9KNEFZYm41SndleklJQUZWTEhCOTNsc3pWTGJ0UWNLN0IxakJpRUdWUmNGd2ZRR0xWWjg4QWE4WElSblhsLVRabTR6V29SQnFjQkRRZXNzNmdoallPTnBDYzdOeUhSSFAxdE5vN2F4aGVuWUY1REFKVG01aktnQkZIOEo0THhRTk5ybkp2UzF1MjZZZ2FFN3lLR2FXRzdQREdWWW1ScV9OZHpkOXdrNGQ5RnBOalR4U2tlSHh1V3ZKVXVKZVQ2VHBtTDF1ZzkyTDZaeUZ2NkhZUE9TY2NoSHRkU1p3bUl4R0lXejJJSG9GcFNPd1M5WWJhOXRWSk9NR3ZZZHB4MlNrZmlSbHF3SHFWQzlvRWVYOUI3VkN4ZUlhUVB0Wl9LMkpsUVQtM0VvQ3kzY1ZuWjY4YUE4VWxSVEdwbl80NlJtQkFUWFpJcTZtLWs5V0V1YVR1S1VhalEwSkpyb1B4cHhkNlp5MkdLU2k1UHNVc2Z3c1gyX3J2Z2lsRFRZWjJCMFBTX0hLYjVvNVJUVGJTTWV4WGpYaHZYV0VDZmtTNjljdUtYQnZhcmVaZldrN3BOWFk2eFZfV3F3TVJnQlRUMXRNY1dnQU02UmVFMDNzY3RyVFlvSkZmbFpYTnBpcU96MWZ0c1pGTzNPQjZfeUxGQzBNd2tYNUlJdU1ibVA1VmJmYlNNVUlRcmpPelE1SWJGLXUtbUN3b0IyQ3FQOVRvdFFFUWdOc3FFTHB6ZnRiM21CMl9ESDZHTF9DZXl5bU9XdTJZNTdFelF4UkRnTUJuc0w3dXpweWJzejFkZzBvWjM1UnkzelZzaEE0bjZYQmszQmJsS2EyMVRhbzUtd1J3V0hDUi03dVUwMW9aT2RGZ1J0OHhfTElQVjNYUFlUbXpBVVVqRHFkM0pneWRjRF9Md3E0UWxkbVF1MUdGbU9lRGxEcDgwQTdQd0ZiWGxqU282ZTRFWi1pZUdhNGNTcVpzR09ET3B0ZFBPeDhZX3NJbS10NE1Jc2ZONzVPcE5TRG1NUkNGaFEyVGRNUGFyQnRMS3RZR0tMRm9nSlFmUFgwdW82aUpJeGhHN1l6a2FxankxNzAwanZaUkhtLTZzT3JaMEstY1BZVXlTcEFiS2F6eHpyaHdVcUJlZExYUnE2cWJHVFdhbGZmRHhzc1N3TnZ0LU1vbzVDNVlmbjIwMmlOcUV2VUlEemYtN3dQNGVrVTRKdFo5bVEzZWdHaWdkd3FhNDRxaHN6cVZTTzFvRFRPWXYteVcxbFZXNDh5dUtNeDQxQ1lnZkVWaWNSVW1hQ3ZMdFYyT3VjcHBnWVBFcjc1c0o1Yk9rZmxGdlFYVDM4bDF2bGxtZWNTN0dHY0g5cVljNjNjcGE4MUhxa2V2cnpZeU0yVjRGZUVkZkxYbmJhYTVHOUYzakNoTFBST3NpVmtLWWlaSUtzVHNQamhwR3VCQk9PdTdKSHREYTdmd2hXNjFYVzRIWFRrWndoNTVkd3lnVVBMcEo1U3lwbGNuLXVtaF9CUnFLUGZ1c1p4cXo3Mjk1X044TS0zRTlwNkV6NHNUTnBBS3c3Z25sdXo4LURCZXU3T1ZXNFhEWUlXekNxUkhuWmNYS0VPSjNHQU9MSmV2RHpMeGJRaXg2YmcxcHc1RTZBLUdJS0hvT1Zoa3VmRTZWQkZTX1hENmxiY3YzOVF1dHdoa3pWZEY2VGVrZlNzcFVDTjdVWXRjU241WmFQSy1ZQUJySmd0a1F4VEhMM085WXBQRFd2SXByNjR1aXVBZmN5OGNMejJoV1lOcFVQLUMwRkF0bUJyMWNNeFEyX0ZMSlBteW1hTU5GVFJOcW10S1FFZnlKdDBndmRVbm15WTk2OFJtRU52T0szMWJlcTJ1STNUTmVkWk52NlhaTm94RXFYRTRnNmF5SXRJcWt0dnZJNk9faXFwZC1HWHJXU3NTLUhZeVk2TDQxVFFXSE5XVFBmTnkxeVM0aXh0RjRuTjRtVmdhdkNHeEhjY3Q4S0JmQmE3X09fd0VQcF9CWUVoOV9zZ1g5Z25PRWpDOVFRd1ktaU13dnZmYlN1emUyeXhqWVNIY3R0UFpmMGpZdklPVjQ0aW55YkxwdXBzdklmMDBvU2o2QUxQdEM1X1lYZXVWV3gwT2FHLXAwTjhibFpQZWJCV2VEeXB0LWR0eUZmWTNfNi1zY1hjd2RRNHN6RDkxWm1QMHdRQWxSY3lETm5CXzdzTGdycFVjYXZMcWFGcnZyZ3puR1FYbXFkVkFmUFlrSkRPa3UyV3BDMmVjWGlCSGNJd2x1VWZhZjZHN0hIV2RpeUdidW1yN3FLaXIzVUstVWoxUkVCbzlOTFY4UmVyRDNYT2JqSjdsMC1kUFZOWHItYzlKZUxyWnUzN2xyT2NtTXRFc3VHWlBnZTVQc2UybXNJQ0p0VWtIUTRjb0RsQWZ4aHdoWE0wTTRWYkduR2V2LXFfNDZITF92RWYzNUQ4WnZIS3psWkVXMHdVaXNwMFNuSnYtNE9TbGNHSDFMZW96TnEwZXEtUFpoSnRmODdDdUw5MHl3ZHNsS1g5ckNVdS1HX2hIdzRGQXhJek5zRW9lM3B5cmFtcjZfREJrWUozWkU4S2M2dmpta3VKS0VVZUtCRWw4TE5jRTQ4cjFrZjR3eVhKcG1jcWl0cklSbXg4eGJaUFB6WTdWWDFpN0lKQk10RjZLZmNqQ3ZKejFiUFljLUFyaWRXZlRybTBhTzd2eWZtU2JOTndaajBZN2NkVl80dlVKdmJtZUZ5Ty1uZ1BhYXVHVUNJb0xiS3BDSUIweVBka0N5ZzV5SjNoZENwdVBaQWtTSmNzY2RBbzdURUoyOGtWcXJpLWN1OGFqczZfcnRkOFdpdnh5WWZ3TjhESXZ2NXFWV0RUT1N4VXZZVUxTbFNZMlVoc2xBSHQzeWExdWNNX1lDOHk1U0YwQkZOZmhtbXlpOFpJYzZmM2RfRGpUQWREcnF3b2p1QndxTkVLY3BXM3pZckRrRzhiOVU3WDhBSm91cEhlZlZFS1pnbWNiTTd6Rlh0LWEyMWpHLU1oZllhYllmNWNVTGo1SHNpRFRnWGJFQXphZ0xwUGVfVW55eGdwSUxwUUFCOFhfaUtzeXl1TnNQLUJzdjNSWVExOVNMYnZpUEh2VmxRR3gzYXFlN2Z4eUptQ2FsMGMwV3h3NDJEMm1iNkJFckVYbDk5WTl0VmVaMjUzbDJYdnJDYVJqVHdPSU01U3NvdVM5dUF5SmFWNi0zYXE4NnVrV0c4ZjE5dnpRNFRGZ0NyU3IwS19jOXVpaFRIZ0U0eTlGdGR3MDNXblhFRF82Z2dZZldnT1AyUERLQWpaWE4zWE5tN2xxdDl2YjYxUVRKQ3RDeXpacm10Y2VNVUlLcG9BUVZvN1RiQ2hNeGdlckliOHJ5eXNvUmxEdy1QVkU3bVh5SDdXRUJzRTVmWnhWVmFrWFdiNlcwb0lGU3VXTldCTEZUa3VoZXgzTHFTZlJXNi1iQ2tCQzdKd0xjeVRrMzh5SU05ZTZjRElWd2F3LWdEeG9wU0Y3V1FwWVFVNWt4ZWZ0c3NNbl9uc0ZNdTlhQnU1enMyVWhuWlFnc2JBcTVXaUdOWnE2ZW5RVGt6Y0dhcy1hMW5RV0lrWUpST21yeGp1UTR3UlF6dzlEeS1PWlliZVNEVFF5SXR4RlFlUWhfeVlVYktudmVYWHB4TXByZ2dPYi1ydjdrNDE4dVhCWlhYRS1UbDNyTHZjQ2pLdWZlZHd5T3h5RmdJQkk5T3dCemdGM1M1VkdEZzExd2pya20tNVhiZGZuZVhpTW9zMlJWWlJVWDFEY0o2YS1zMW5ieFZ0US1SOHhzZWtYbVBmWk1WazFTOXhOQ1c3V3pobEd4d0x0SDdVQnlDdXBmSVFFcGdyX2FxcmVVRkEybVFDaFVzTWE2S0g4WC1YTl85dkVDRkZHNWpieWdPTDJjc1p6aDZQSU9lVlUxZDktWVBlOWczcDAzenlzMFlmUmViU3JMR1J5RUFxZ2Y2bXZBVktzQkZMMlFpWmtSTEx1dEEtQ3JwMnJQQkY2eUQ4bHJmTERHRl92VzdjaFBDTFZ1WHFBYzJfNi1lZlJqR0RCSzRLdWZxMnpPWDgyTkd2OFdDMFBUQ3EwdDRfQUdoNFdFZDZQWFlvSHZ6SmNEamYtd1R0Q0NkRlgxUThTanc0cEFXQm54cVJnRFFpYWlSMzN3SHdLUW9va1AwM0xIc1pYT3lJM0pDb1gxZ3JBY1FQcF9CeXk2R1hWT04ycWdlUWlxMldsTzFneWNrTlU5SmVFUzFiZHY5dTV1X3A0YVpIT0lIOVFoU3hGSDFUTmFYd0N5dFRkZE1JRTJjZnA3WHE4VnA5VU81aDZFSWZLenc5MDJLS2NKYmRnV3ktZUZ2QVpaaC12NXV6aFJJNExRM0JxbmlLSjQwcDVtU2JteXEwbDZJc01paFhINW5WalVNcTdkcF9laXVjZWpqcVJXMkRWWUpiRGVWLWI1SWxfREI5a2diVDNGNHlvRU9jOE10eWQ4eFhQeXdBUncyYTlmOXVqLUtOMndRVmRnOU9naEFKUThSUHR4OEFzZUV2QnlIQjdQcFZqSE1OaTNtS3lLbEV0b3NEaUJNUFVVZEZZbXIyYjAxaU41UXFsQ21kRnB0RlVMaUNCQWZ3bTFuT1pKYklHTEthYWlCei1iT1lFeENRUmhESGJadF9VNEZpVnVJdFJCd1pObUE5UG9iVXVPVF9RYV9KRENCd3NucXBnQUpiT19EUXZBUHhjM1B3bXdJUkgwVWhfS29Kdk5NNnRET2xVNkVFb0FneEJOSl9RLXdJaC1ONjVDdkZMLUdpal93dEhjNk1QeTBOOUxWQWxNX2hPUTZQd3htejBBSWpnMmdMQXNEMTVNZFdWWC1vaU9Tb3R4MDE5dUozdy1peGhnVzM5RWFYQlFkTzZERDZIRF9iV1pGVGFlUkRWbVMxUEI4WDFZQi1EekxxNFlERnp5Z2Z0bm44ZzIwa0Q1YUszVDhwQ2lPbHR2U25VbHJNV05yMFcyX1ZTSVZXbnRDeG9lamdxRzhnbmU1cUJnM2w5b3F5ZlMxMWw2YnV4bHZsajNNRlZibVdJNWVyNjNtUDcxU2ZSVGpnYkR6UnNkT2N5cHllOFRGaG9QVl9GV2RXbC1vLTdzWFlLM004bGlsVlNINVdtTlRjbHFDVUswNjdsbDFvVGUwLTlITHdLd1otUUZ2Y3ZnMnQ2ZXRoN2pHUTJwZUtiYjFyQ0t0eXhCVnY2UDlGR3I1NnFKVVN3OWI2SmRWNFBkTXFTNUFjcVRGZVJISE5qVjZ3MllfUkJ1UHR1NmFCbURTbERsTGl2eGpoLWhzcXNsckNsbnA2YVNzV2lTLV9CWWhJZlZYRnEyM1RtM3FCcGZsUG9WeGwzSmZlM2ZVQlhrQmh2QmY3Z2xqTFNnTWtFenI3TnBOWF9VbDJtN09ZOTV6SW0zWHIwcjRfQVFzMUJtRFRqMjJQYktHdmcxV3JwQWswbXkyMXFDZ184c1pWaUpyaTVrQ3drSmhGVm0tckF1Wmx6VTU0aWNUUUgxYnk1Z1BSMUppeXZLT2tCeFZIS19JMTlwVEpld1pyVnVNTGJlNzhkaGROdnMxQ25ETDBwSFI3OE00UWljS095SEk0QzdobHd6dUtDZnJuczMxY0xoYmd3cEtfaWlhc1pEX3JKVHdsdXdzTzRjV256Q3BSdU5lekJIcG0wNXBkMjRicVpEVl9kNVpWSGU5ZHdLLUQwSkdmb3ZzMzkwMk5tM0ZTQmxZSjAwT19rWkFqeTY4Szl4a2ZEeGU0c3lQMnJkUWJvanRQeU1GMGZ0Wm5UOTdNbHZnOVBfb3NqVjJfQk1OTXB4TGxqTE0yZW5DeGd3RS1PbUFpbzhPNWoxbzRybkJfSUhwSG5ScWZ1Sy1zaUs4ajdoRF9ZeUJNS3ZNdGliWjYyTUNSZHFxZzE3Z0N5TnBFenVlckNrR0lWa2M4UW5ZcGJZNVM0RWw2Q21rd1M4RFQyUURWRkxSTUpRVjNOeEVqSTBydGUyUktsRldOODN4Z1JFSEd4MmFWVWduNXp2R1EwbFhDMExSeFlFMzJaSTFmQml5VnkxMlduclBjS0JoelNRUHU5ZTlrU2lXRWZpVkxHd2JDT2lvQXloUVlvcWJ3c0JfR0cxN2JHMnE1eFZUQXhEZE5UT2ZtSHZuM01sYnlsV3FWcWxVZEhpdXBoZ0luSUhkM0ZwaW9QRjF5Zm15NGR1THR1VF80bHB0MXA1WldpWnJZT3dwMGF2OF9WUEI2ZFBvaFlMZ0ZlWjk2aFhobjVwTzl0Q2JFb2QzM1NOLTk0Mlo2OWl2MjdaX0o0V2N2QWxvUnRHSWh2czJERkdHRy1qVVhfRVVCemVHZUJmZTFJdkRaVkhEV3FuOVFrVHRmODFLeGR3ZEdaai10WjRxYzZMWGJPQjJpLXJIcGt1SDJuZHZGc0VaX2NjSVNRVGlNSl95ZE5VYUN2aE5ENHdCZ05aT2RoLUpQNDdWeXB0UGV2bURqUkxTZ3dNM05aU0VSOTVQVmlxTFcyTjVpaUl0Q1dzbVRKVWhBSUF0V3IyTTlDN1U5SmtmeVVQVmVfb1l1cnhQQUVuZWxBdlVJMVQ2T3JLQkRWNXFnekh3aDNZTjFCYWxnRjJ3S1VaVWFBb2ZUb090bTNkYy1HQXR6cHFQN1hwclUtVnBXeTMtX2tVVjdDLVZiU085S0F4Q0UyeERINWcySjUtbEltNmJOSG1jdGNvTHdPM2g3M2xwYmhXUVIxaGNZcVhDWjduZ3B6QzV6NldLOXZoN1I0UG96VW9aTDZOOFZtNWZya0hsQXZCTkxNOG5LSzNTSVhKaUZ2UG1VZFZpdHQxbVdmeXM3UUcxaDNWOUxCSWw0aW5XcEpFQk1RZ0x5dkx4Y0NfalNfT2tjeHQ3OF9zNzhLSE9seEllWGlLZVB4RHFYS0Vfa2w0eDFtRkVya2x4MzJFR0pUV3RLekhRU2pXeEd5V3lIdFhhcXkyUDVrWElMMVBPZHBSQ2lhNFJCeWs4WHRJRGtRYXBCV3Z1eUlnS1J2UURsaTc3TE9KcUtoWGRPRms0bHB2cHhGQTliZDZUQk9rTmpTQlhGenNTaHBySndJelhUOEhpQmlLand3djEwbnc4Q2VpcU5MV2VSSUNWWVRYdWFlQ0FHRm1MWTFIVzNiem9xeG40T1ZySGZhTW5qcjBjYmVyNzBmaHQxT1J3Yk5kR3ZnZFZ4TEVkV3drazBBcWhtRTcxZkFiNlluRmZ6Q1hXMTJoZlRUbkhlOTFVUzdFUEJoekxSd3BpOFRHOVZyd1RNRm9fNnZaS1Z5blFfSU0wVWM4RTVkN3FLVkRtRllFM1U5MmdCRndyS084TnpLcl9qOEw2eC14Y2pQVUdmdDltT1lHVGpiMVpUNWMycGExdzJfTWllV3NncWVCS3pydUo3WGJjOW92eDAwV1ZkUTg2eDlqY3FYZVRIY2ZIUkEwU3kxU0IzeXp3VGxEQlJQbVpjVGpwQnB5cDZzSGFPTC1HaGxYbUc1V09FdTFBY3ZoZ1ExYVdod09xT3R3YjFQQ3pNVzdMdTJNU1k2YU9qX1BVRUZPQWJmWTFKODY0Wk1sV1BRS2RseEFteWNWMlUtUHBucG5fdEI4TUNaUEItc2NPRk1UTGpLcFJTZlZWUzVvak5HZmJHQXpiNjMyUTlCVXUwRExsaUJBc292TzN1eUt5MnVYeTdiVFREWUlBbW1oZUo2TmRUNGJMU00yanQxNVkzUlNVTXk3UVlIOTBZLU1oNW9QWk5CUnNydEdSYUNkNkNrdnBxd2x6MC0yY0V6cXlLeXVydkx0ZDk0b05LeGxDRVhEWkpCVG9XbDhoblZNZmFfWkRUR2xJSlNVNXB2TDZNd0NLZ2NkcDBGV2NwR3JSQ3RyNkRkcmlMZVdwVzJpZkxtdmY4NWwwaTVFUVU4ajdpdFVlWW5ZaG9NZWZFVm1hNGQ4SzNLOFdaWVZvV3huNEQ2eWdvcEd1cWVTLU5lZUJQMlFSN1dFdC1tWDNrVjRGeVdHNlZraGRhRU0xYXZodFN5OXE3U2pHUWxzWjJXNUVINThBVm9VbXVkLWxnWkxsVTVDOElBU21VNjRrYkpqaWp0ZDFrdnlFZmFCWkEyQXJrYmlUTVBMOGtrbl9qWFNGaTVWeUFxbzZsY1lwMzFqM2NZMUsxSWNzU2tSLXBZTk4wdmNKRWt2aTNmQWtZeGlWSTNjSHVWWkFDbHNRWkNGem45dzh6YUdvbzdZcTdoVUp3T2NUbTZHU0psMHVSLTdkanZwZGwzWUNoRjVkb2t5WGNpb3Z0X2ZqbDlrRnFTcnpuQ0lIYnk5bXpBT2pIRGpQa3o2Y2VfZzJvMFdKTHAwOVdWX1kyRGtjamU1Sk5xRllHSksyX2dTajZiaFE2VHlBcVNxdVRmNWdhUXVBelFuaU8wcWhKOWxKNk80cW1kblo2UExDbnFSQmZIaEY0MUo3MWRFQVBxUG9HMWFZdHdFRUEwb1paVy1IRThBRFlUaVpoYVRPbXlfaUMtdVhHZl9GN0ZaVU04aTMtNWdsUlQtRXQ4NTdMUjk0TEwyak5iWlY0bWtjbUlveDlYQVVRXzRaRGlyaXJtQnF2X0tZTTJxYm9zcHZDWExfNGRld2NEV1dsUjlzMHp1eUp6YS01WmxJV2d0TElzOVNWTGJxX1BuY0RFLUJadl9CdVoxNldBWjdmZGd1dzhFOTFjRkxhMDJzek1uR1JBOXd1YVBFMjc5WU1GWDRsU0I5SVBlUGdqLVhRZTRzN1JIWmt6RFdUVHl1WHdSc0JSYk1QUDJ5d2M4UjBDVDRrZXVDcy1HYk1WRjdzRlRBNUNZQ3FhUU5kdEhqWXM0RnVqUG1OQXFiSEVrM0YzdXZXYVdXclNkMzRsVHA1UzJXNXZsU3EzRktsa0IxYlIybmJza3ZNM0VteGtnM281OENGOUFYVFFQVmZKT1hHbzFYc19sZmlGLV9kT0NDNmwzRmE0NzYtaHFaTlgxdFJaUWlQMm5oekhVNDIyNFhYTE1LV1VBZ19qOUtfdzFvUXBnS0hSWmJoaDJaWk0tYWNXN0NmWGZlQ0hndWtPZVJXM2hKV2VjU091djFNNWxObEFocFpIMUVnbXBWSGpRemtZU0JyVFlweDNjbjZJSU9uYmNCNkpFbnpibmxxNWxlbUFhN1NvT2h0dGhVcHBSSmUwbXl1RTJPbzZoLUxPLTFoUW1iN0xmeVJ2S2ZCY0xlcDVwelN1UXlYUG9URmtsTXVONWVUallGVlpTanZtdHpPNmpGajRXbzUzUTV1STNINmpnUUNZdVo5dFNXMHBGdmVzRWMwTDFRbVJkYXBRS0kyQ29GNm44Z1U5UHZ0a0x2U2RYdDVzcjVxQlo5Z1h5anRrNnpjdlZEQzFPZk5leWNMbVhsZ1NGaUlZbm5jQTRDazlqaEx0bzRFWnVackI2SkMyelhOOTh2MlhZNmMxUDFldGFqVWJFTVZhbXFxdTBKTThrWDdaNl9WeGdkbVV0SHprelFKSU5UT1JrOU9JU19xWUN4ZHV1N09iTVFCRVN6aUU3clU1YmMtbUYzY2N4eUJNa2hTbElNSVpKZ2JiOHpBXzlNSlJ6a2RaYVZNWXp2aWh3QjlFOVZwM1hIVV9lX3pvWXlQcWhwMThNYk9nNG91UFBKZGUyLVg3eXQyakhnWWtvNmhZcGs1SjVsOGFyTHJLcFJGMDMycFV6blc3cHktaWw2VmQ1c1RoRUJHSFNoM0w4WHZPQklxNnBEYUp0U09QdzFNQVFmaG5uUUFnLXowdzIzdFhHY1dTRzZramdVOTgxVGUtQTBJcGdwZDA1S1hNdVVXcUE1azRHVXF5eV9tRHR5ZVlvX2pmQzhYb2QzaFN0Sk50QmtGT0kwalhkemQ3MUR1ZW5Fa014d0pUUWwzYlMxOElhR21sUmU5LXpHV2swYmN3RUs2Ty1vSXc0N1FXQXJFTFoxT1FudjBLOTRRTU1NOW1UZG9iUDdFamp3bFA0d3MxNmdRYzU2dU9rcFo0TWJHYWhTd0tzYzlVUGpBeTU0VkYtUmZDU2pXTGNYUUotb2czRmZpTUkySXhqLTZORUZQRXBmRDh5dER2UEp1Q3ZVRFl0RUNQancxc1hBbmtXQ0dhMFJkc3ZBQy02VEhxUHF0VjJqQTBWRDlmaWpXZVlqbWZ5V1VQX2EweGoyOGt4OENybWJDNGdQQVppZzdCSEVXOFBKdUxBbXN0NXJpVXhkSWlzMV9TYVMtbVNjaDlXOXJWbDBPODZXbGw5QmJZdnJRRXQ4M3c2M2RaYkcyNGZsMklqRFEyb0tJMDcydzFwdHRZZXR3d2pXYmFSSDhPM21ReWRiWnItVmRkMjgwdEEwdzVDcHVmMnZSZkVWX3JIa2dNbDhza19NWjZreFlyeFU2NUdQVE9ybEVDMFpOWW41MWpweFJpMWJOVHVxWUdMSzhWUHZfVWhYS0tWdUFoMWtVT2NHX3JMM045QndrY0tyeHFIT0R3ZmpRNkxEeVFfZUZNYzloV0VoSGFZcU42N0x5NVlZbGRUWHYyTmVveU9xY2R3SXZmc09uaHp4bGZhVjZDZlZqN0k2SEl5ZXhoYTB5bllHQ0Rzakp6SnJ2VHRrWlFHazJpUVNzc1FNU3pwSlpadlBsbTg3VEZvTzVrbV9LRXlWN0p5SWtkb3l0TWFmYlFKbmNGWUVMSW96VTFCei1EcDJJeU4tQktzbzZaYnl0RkNYYU9EcUptR28taWVNY1NPb3lOTDRCV1FpUi1CbFBVR1NvNWFBOXM1bC05YjJSbERMMHlkaWVDUkVvUFVHM0NhU1Nrc091dkoyV3NMUURmZzB5MUltX0Q2Q1c5YVY1ZjJMejNFOTdjck1ieXFEbGxrNHhlY0RvbkZrd1JtYm1fN0VWbkVQdVZJTXhNaE1rWmdad3pKd3dQemJ0UnZXdm5VR0NhLWdqVHBONHk2WEdQc19fcGxNMDg2bmFESjE3aTJ5cnpXYnZaR2N3bGo5VzI0YU9CU2JoMU5mblc3aGZNdU5qNXRhcmg4MXQyT0pjR1licGY4bDRZb2k1dGVxTGRSeVNrd1NiUFZNRXBjaThRLVJrNUZ4djU3MkFSdTFHWWs0OWJPYjd5Q0VucUxtd3NGOTl6NGk4T2dzSEF4V2lQT1Z3ZXRDQTQzZER1U090ajFCZlNQcHcwM0Z1QVhfSjFfZ1JGLUw5NFdGVVFUUEp6N21IQ3NiUzFqRnB5LTQyTm54WVEyc3E3MDkwS1lxU2dXQWxNTlgzdVBicjBXRkZwUklGWnBMQWRaRTRqdlY3ZWpybjRCVjJqNng4SlpFclVhakhVa25xU1poM2tlakZ5RmFfMm9FdkdoTmVhTHZSaFBjSHJXNGRyUHR6RGlvQWY4Qi1HOHQ1R193MDJPUjdjSFBxblJmOEZTUlBIbzFEQVQ1YW5ZdldrSTNsd1BNMnA0VHc5ajlPazFuRUhPd20xX3lZTnJhYzYwSzBvQ2lsam00ZTgzd1BSOEJhNUU0RFUzWHo0c1hjbXFhR1lsZzY1R29tazBEVHczZGFORno3cEdhcGRpRzJ2NVdFV2ZEenJoeHFhSF9pTGN1UXVPMk9xbXg2LWxTeWc0OS1hOV9IbXExcENUUGFLWTVmOWNxZE9iWTVuVUszaFMtUUVYclRmcVIwdEJ2OU9sbnV3UDBfY2g0bUVNNnA3RHB6ZUZzVFpvNS1QLVd6UmFGVDhrX09DNkNRckNwcXJjN3Z1UmwySjR3UThadEhHNmt4dUFoSFkzX0h0cW5BLVZQSWlXYTFGdW5GeHVTQTdZQl9lUnJSSklxTFNJN3JZUF9kc0tMTlBBU1dMVE85ay1JUHhIMG9majBIdW1RY1dCUGRNMUxObnk4TUxiak90clFiT044eDF6LW45TFhlT0k1VWlRNlNUZloyOTZlUjg3TUNybFhZdFJVcWFXZF9kY0ZmYzlFLVh3bkFPNFlWbS0tUFYtUms3RGVqck90em0tekxyeUVwaTZMb3VhbTEtMG5fN2RDS0NNX3dFa2tienR3cXlwQ2hZQnFrcnBicDBtWWFMT0RnTUNsclRmeVVYdzFRMnRqQ0prSHFwc2hHRHJ3bWh4MU9FWmgxQzZJcmJiY0FCbmYtNFg3eWFWMzlxQzhrcDJSa0U2SUc2Y3ZTLVN5SlIwYnE2cm9lY0p4cWdLTUFhRDlCaHU3Yk5tYkZHRjFYNTg2ZnM4bUlpQ1pBUGFxU0JyMVV0V0JCMURnM2VzVHh6bkhqNk0yQUtMaHBCTXZqMmllLXhCLWRFTC1oRHF5ZWhSR2VGekxyV00tbTdpLXFiNDZKWmd4N09zZkRiWVRQMHEycFpGX2U0ODNtbE9qU0FjSDc0WmRSMXM0TFNBTnJFeDhGVEVwQXdIZF80NVk3a3BXSzdWZkxIZFRYYmkxN0V1elRoMFdwWlFselJUaU9GZ3U1c1RVYk4tZ21DSmh5cklNY25xVUY5Q2NVZHRZcnVla193Q1QtVnUybENnUGhHRmFVOWYzcXRUNXVEUUNaYTdUWldlY0pRME9IZm9GaFo4WkFFWFVxWjN0U04tTHB2cUUtRk12OENiSFFnX25QRXBkOWY2c0dLSEl3NHdPRGY3NDBONkhGMFpReU1VWmlKcEpxelpyRXVyZ3lhWHFlRVZ1OHN1eGhDaWtCU0RTdmRyREJ2cHk2REdrOUpDWDlrVDg3TTJMZzJKcjFzaDFBWHJ2Q0RvbUlydWE4d0JiT25rcldPYlNnWGR3alpwMndiQUdsaVdPbndmeWJXQURWYmZNTE5uWUdpZE9sLU5BWHFNRWZMN3NXbUhITl94RTZ5R0M0NVUwZXJvU0lodW9XbzJUcXVrSkpHdkFKQmZ1YjRZem5FdkNqZEI1ZVNwWjU4dk1WbVZ4S3RncVE4M19IdW13VVhodGY1ZTl5d1F6c1haMzd1WHBTY1NWZ0oyUEFRdGFSU21zSzUtaFVGV3hWQ21zSjdOb19pdGxKaEx5RDNLcDBxWjFOVE1WQWRtQk5fSTByTWdKY2N1Sk03eDdWSjZJcWtFUEJUYWJralRLRk1vakJuUDNsTlBrb2w2WmlvVk92akFXRlZLVmtFTWlteDdTYTdmYVJlUGJKX2FMTGF1aG5YZE1WNnhjc2pGR1R5cHBvQzFGY3EtclFwMWtUczZSOHgyVnJjM0pXSUZqbnd4enBGNGhvZDB4RTY2RmRYaEtReF85RVo4R1QyMVhoa2gzZlNEUFhWOTVwX2ppRU5zOFJHQTJld0dvaWIydFQxSW44UnlxMTViRWxmWU1TckdFTk5uTWZHYjh3TjROSHNqNXM0QVYwNTJ4WUlZSEdfLUNQVllLSzMzTVhSeGIwcDQ0cm9JT1dSel93NHFUMFVDLUpNaWMxUGdTNTk5NVN5Z19Ib2wwMFk5X015Mmtac0hxT0xOZXl0b09pZ0F4eXROX0VGeHpZWVlBNEl0eE43enhEa0pSN1hDUjR1enlYT0hGY1k5TGFvMTRlRHFabC1WZUFGSWhlMC1mQXdkOTJ0bDhqV2hPdFFkeTBWRC0wQlhfUEJ1Um52NlQxZTV3UVFsemJkcUZTRzl5eE5ocW5FTjZZajZMYkc0S3BhcG1YWUdGbmJiMTlOLUpIZkdEbF9NdnZ0N3hmdnk2LUU4dXBEajcwSEg2RFpZWk5JU0hqSlB1MFNaMG9mUk56WjJpMnh0akJpOUtuUzk2dmo5TjlXNWR5ejJoMkZidW5zSkdjbEtYUjJJYzl4NWp2VnpIYnBIWldacUQ5ellwcEwtUzlEWHU3TEhJYUlPMEMzZmhkVnVlRHduQUszTUlHZ19uQkR0MkZ1TDNrX3hwal9uUzdtQkpkT0xhTFdjRElVdGxhaXNOVkltcHZzQ250RGllY3p0SjJ1VVpCT1lyd2U2cHI0TW10Sk80am1IZWRwX0ZNUzUwX0xpYzJYckdZUEoxdDY4T3FCSTR2RU9RcVlwOUFiUkptam4zcGM5a2hZWk9TUVh2ekI0U1FqcWw3UV9fdGxrNjRja1ZIVVBPVTBiY2E5RVdIOHBxa1BUOTBtX3IwYVVfZ1dHbnpYdVdTRDFQRWtQOVZIejN6V09lR001ZTEtYVhQYmZuZ0VWcnJjbGhrcjEzREp5LTR5Y1d6MFVzdVF5cVg0V1M3d3pHNk5vU1JTWENqOE5aT2tLTEo4ckhfNjlxdkNqaXZUb1AwM1pmMDhubmVoTGFUZ0pyV3VPVDhiMXdXZW5EdzF1bWR4NU9uUUhLaHVfWjlxOTJDa1BDOVo3UzhNcWtLa0NtYlh6RElaSWZ4MzVGU3o3a1g1dmtRc0hXX0FHM3hvYlI3YVM4U3M0OXBGbUlyY2o3VFU3MVYwLWE3QThQVVJOLVBOSU9aT2h2dy1FVW5aR2hiQW5CWVYyR3NCa2VGX3VpTkk2RG9ZMHhqRmxQeDVYb1EwSVJhS1otLWJrRmNabjRhOXYzWjVETXRmcHp6RWhkTE1iTmhaallzdWI0MGxlV2ozLVR1eTk3Z1lxQXlaQ0VISkZMTWVOdVNYZHhod3MzS01oYXhDQi1vQUQ0dmpQX1k2eHBjdUpQYlY0SEYzN3RibmdCaWFXN0F1SU9vNWlEcmtPSVpsNDZTSllSR1c3SWptOF9RQzBPTmpfSGsyaWVVZUN1Q2pSWU4xLUU2dU1FRFlFb2E1aG9YWDBJWm9yOUVMazlZZWpPZTM0ZjNtVFpqVTA1YWtwVVEtVi0wWFlfUVhuN0YxRVdTSllJVk8tN3hZb2V4MnQxMzFxSEF6ZmtWRGJuZFk1Q1NveEl6Ujl0NlpzNlVUTklCSHJGWFdIcVpXdjcyUE1TTHNpTGtNeTVkVy10LUY2UU1PRGNzejFuUTdjVkdkMmtCM3FfZGFsV0pvalhPblMtNWZOWXlLUlhrTnY0cDZFUVVzRll3MUFienp2YXpoX2ZwVlBBNWJSaHdNOVJySW53d0JnRTcwMG1KejdGSmNvU282SUFMQlV4VHNaek8tbGNoUnItVUlJMjkwRS1nT0F2SkRxRF9VU3ZkbEhIU3lfN3JyMGkzUGhISWN2bmUtcjlaY1BLTmJETHczWXg1ZzZfbWxaQWRIVkR3elFELTVZci1NY1cyc1diYWNzdzRrM1ROUUZCTWpuUTBUSmRnT2pkNDhTa2d3SHlYUlVJeW91c0J1OUY2ZHpTM2k4X2dkSV8zaEtjMXRYQTJ1Mm1TdXExdGlGTy1rU1k5WmxFTWU0WlA4WEdBSmt4SmxuS2h5d3J4Z0RHWW5ReWNOaVhsQ01uRms3S19acnBrWlN4QW1oTTJpaE80UldQaVBCcmhUU1BzaHdMTF94emJqUzd6UUlQY0pGRkU3SkRDb1RFdTJ2LTd3clhaTjgza3Bmb0dHcHhBZVBpR3diUVpaWnR2TWwtNVFNdHlNTkttM3Fwak9fOS05ZkpFM092c0k3TndYb29IRDk4NTNWR3B1dGFmcXhVRjNJYTVtU0tXZkZ1QkdLbWZtbjJiT041aC1kbnJkX0M3d0tkUU9vYW1MN1hvdVRYSmRnNVZhSmEyUmVTdzdMVVlDU3FBcEYtaVF1dWc5ZE9WX2NrYk9KWmY3Ym56UmdHQUc4VWIyZjBTZXc3dGhoOXF5d3Q1NUl0c21EbktRc1MzMzVKZGdBRE10NEtSeEV6VU40dzkzR1ZKY0JXY05ZcEVaNXp2MVgwMTFxTzlicGhBRWUta01ZMlE0VGh0UktEU2ZHRkVwbUdoM2lyeE03SjlNUjhYWUVEZFZYZkZ0MkZKaHZodmFpaV9aOXdnMEdFR1Zoc25Kdncybm9kMWRaeTMxcnhwZkJJcE1xb1JYQWV1QTRsSUEtejNmWGVkUXhKbUJPSGpudHpSTWRCaERFUDBWMktEai1vT3poaHlPT2U3V1E2eEN6ekJ4eThNcDJSMGt5Xzl2VDZya0hYcFE2TnRWTEJtV29zM2VxdjloRGxYeHR1MDhRSmZXTWxJQXJrUFZZbWU1d0d1c0g0dTJLLXVFLVgzTG91TlFTeDZieUpERTNUblFxTHYzS24tbFNSWG12OHBMamZTNEhpTHJ5YzJ1clliLW1TS2NyQ0hhZHFWZ1V6eU1YS2RGYzJHNE5ZZVJrRXdSeFFHWXVsUUVCWHpfWHNzalNwVm4xR2RWam5pMURwNllKZFlCcG9ZWENYZnp0a19uMXh3MTREUm5oa1FlQlMwZmw1Z3M0OGVkQ0NHVjVZZ0t3WUc5aHh6Q1gxbnpwcThrUDI2TFFvdXRmZmt3T001Z0tyc2NWXzVaVUNPOVJqVlNwQ2lZWHFBUHJFNDNnQUs5M1hEMVlUdGFXQXdSUzhobUlFUEFSLXVtRlB4RlpUcU1jbUtfSHdZYlNjeUxnc2ducXNHTkVWVkxNQm0teGdfSXhUZTJOMHNyMG9jQUFiY3ZMMWhnUnoyd1NDV1UycXk0V05QVDJkWXBuaUpSek1aRkFnQUVrMFhGN0dfaGVBZzlaTWY4TUFOQU1TM0JmckJsTW9YcjJOdGFQUnFxT281eklGUmRBUE5mWlprZWpZRUZ0cHV3ZDAzYms0ZmxuYW1PSWRQRnZjY1pKMmY0MlktQTdtNnl6OVA3Zmk5UjVmRGtRa0YtSDZERVk5bEhUdW5Zc1FuYUhLRVRub0pFMURlT0JoN3ZIUzFnN19objZTQUlzOFdiNGZLTnRzazN0eHdtUUtEc3hodHVhLXJIQjZ1OWM3T2dkdGFBOFc2TkRzSmR2aDRrYm9QdkJ5UXVzWDlkT2FEMjZpNkp2aUlSVVpFbjBaSDhIOXBZeGdYZTh2bERJRW44dFYzVk1WeU9PdWQxYjdDQ0Y5ZnktVG5iZndtamJnQ2Z1aERpVlNGNW9SN1BPLW4tamktR3RBQlc1MGp5R29FYWNrYTMxdjBuZ01uRUY0Q2dfaThXZDRQY0lkdU51VVVGMmh5ajZjamQ3cFV4MW1BM3ZuM01PbDh6QmEyMkhFREhFR0dqOFJES0V2bURWOFNXUXlXbXYwVUVwUkd6dTNta3dkb0lraVpGZDhpRzdvdUhRc0lUSDd1OWZkanJVOXlIUE9vYk9VczFCNFBjSHU0TUpEdk00TFhaUVNKVm5aWGk0R0xQVnlzY3p6YThhYjZlT2VoaGdNRjk2OHZjSjM2bTNkOU1ZcjhXTzhLM0NMcmdFaWdtVk1oQnJZVVFxWUNTQ25jQlNQejJSUW1NQXc2TVBpRHhBNUN5ZnFLa3hVdHBRLUR2MXV4TlVJLUE0WTlwbUlDQUN4QmFzM01lTlJoVVhvVEl1NGt1am14dG5aLUphNDhMWEc5VnY3TWhXckN1YUtyeUREOXNHMktSOW41aDFWU2J2T3VvTE40SnlVMXlEb3FvLXRLSG9iQ3otRnVHTm1uaW84MUpjMmpna193aFBxNHdfcV91NzJfUXVSUmdaUGNCSmNuQndpSGU2ckRwa2ZaMmZRQnU4ME1OcXREVlBhdzZ0MzdSOUdwWklXMmM5dldTSThuN1E4YmppRHktT2N0UFpMbFJ5MjkzSmphMXAzSjFNSHFCVmlIZVdMVmFDUjZOT2gzczh2Z2t6VnFuWTBhNFdKMjJGdXN1Y3lFT1Z4NU1QU3dwNUN6Q05UUHNOcHBFUW0ySElyMmE5ZUlSa3FSSjFkMDV4N2xNeGFpMllEQ09CZWNmdUI4a3NsOU42a1ZfWENVREpFa282eWEtSl9rNGttY1U1Rng5eXZJQ1hrWFdia3YtcDlMcEpXeHFpYUxEbmpFMnRXLWNzTGs4VXdKUTd2bmt0VHBoZ3h3U2VpOXNBS0ZYa2NtMXlwbnNYQ0hBc1p1VnZrNE5IU0ZpcVk5aU9KU29NYllsR1ZTb0VoZXgtbTJ2eFZoMWRERTU2UTZTY1Fsa0VEOGw5Ml9yQm5lNDhXeEpfNHozbG5BbkJRdjhxa1FlQlhCd1RvekdaeHlsQnd1RUFQdk9pbURnM3hlVF82WnNLNlMwOUNyMVg3OTNyTGVZZlZkOFpxNUZiMkY5YlgwMWdfck5mWS1IYkpyeDRYY3F1YzdoVWp3RjAteER1MWVTZkMzNkNvT3U0aV9Xc1JKdFJ4TXdIMzBKTU9YY3NRa3hqbFFJMG00cG5MWEZVMEZpUDd1b2JKTGNiaTVTYWk1OVM5TWRPRXNoWThQT1hNVWJwNm8tZDJaUEI1NlFraHJ0S0lqRUNzOVI0N2lVWXVrM2wwdnFNSzhwT2t1aDVfckxSUDQ0eW1kNUxnQzdsNWk0U0FXVDk4M1RLZkhENDNqSWxJY0xvY0hPR2FJVnBuX1NyYmRSS3d2bDZJV2NtVlBjZ0RPQlJDVzhuQVJ2dTlzOXUyY09XOGNmMUg0OWlMQUM0c0thRHJVVUZDTGdZZ28wOTYxUXVjY0tZU29fc09YN2JlZFRyaVlvNmx0cHdjQzZ5ejZmVEJRWk5KRjQwZkd2cUVNMk5lTzBraFlvbzJDNnZoNldfUXppdkNaTmdaczRGMTZlUTJ0VTdpM2JHM3FUZi11VXNDa2RIQ1dHZUd0amNjZmtmQWRsdk0zdk1ORXRGN2ptRUdNaWZPcUFjZHZ5d2Qxd09GWWpDTjNza0h6OF81bEpMajg5RGJwNlZpUEk5UFVEZUxpWkZGcjh0Vk9jb2Q2dnRzWnRKQ1RhbS15UXliMDBOcHZzVWhCbGxSYXd5ZkFLQTFTcjg1WW1pYWlDU2FieVJfbzktSG1GZV84bXZXV0liUFZaOXJLc1ZSRWdyVzNYTTBlX1dDUXFJUkFYZzI3RmVBSUpBeTFOZDBQOFh1a29ob2d4cll0aDZXN3JGcHl6b3ZzZjFFYUdRMHE2VXFKTmNHLVZiNWhFZnhDX0hGcm15bUZIZzY2aGhPUFlaQ1AxdGlrRnVLOEt1eHN5SklTNmNSc284c0hvWnlDWXJoNGxsMW1vM3VyMHJqVFRPc0hKVUxOUEhnb1pRcFlibUMtS3JqdWdFWVMzNlpSVFdKT19HbEhWeVNMYWM3Z1V6ekFLdzJSMmdNY2l4M2pzMUZvUzg3ZlBRbVN5Mk5wM1IzQkNkdTJuSzBFNlFSUUgwRHZkN1dBM2o1Zks4aVJRRk5MU095RHRGV1VjbTJ4MUhaWUtDUjhkZGRfXzVWb3dpcVdBZTNLM280UHZFUVQtNnQ3d2tpRmpYUzNyVlA2aXFzUlBYVmtRYTBNSlcyZnlwUkFDaUx4ejUyMFJ1MXRSaGVDbHFCVjBCOUpwaVRxZFpJdEVFbkV3OExXLXJ1OWJscGNTSTlTQkZaSE1hREluNnVSSDUtY3pNNkRnNTFXUTU0MnF3ZmdydXJvSGV4ZGxEdGFTNm1tVGxJTjJvZVg1Tnd2azFBaUtKd1EzRDlucWNmTVFCcjhsRmZkblZxYS1Bam8xR3pkeUhHS3BvRVdNTjNEVFkzNGJzanNhR1k4c25XajhrbW1ndEgzdnE4TzBnNm5vRFByd09YVjMwRllrUFlnUjRfb0tHQnVEdFZtNjU1d2Y3N1pkTXh2czUzVmQ5NzZGRVNWdUNSVWFGWmc1bmc3RjVmcHFCMVhIdmE3OVptcHV3UFBUa1dMTWZyREpkOTVGZGZfWS10T2JaSXVfWUszbmNuX3ZkUjh3aXVFcVR6YTJLeXo3OWtaYTA4alVyeTZJZ3NZQUZxcG9kMDFVbC1ZU2ktQzRYRmNIaWRNVkZvT3hnaTM3bllnQ0Yyby0zeHdDeHpqTXF0VVhkcm04cHRQSGczcWNRTXFWMGkyVTg4X2NYNkZ4X2M2VnJUMGVsSEZRR3pCU3hoWl9WLW9vU1N0dDlvX3hlU0NoRUNoNUM1MUE2QUFoNTlxOVVrVkNaZHQtMmpKQ09vNHRfWl9SdGRidzlHeDFLZXNLNnRxcGZ6Y25sMW1vWWd4NllNRFFqaEVPdkxNaWxlRG9MNjROWkdPNGIxMjlaak5IcDFQMHFjS19aSUJMTV9HejRacWFzUzh5OHBfdms0eVgyc19Eb09BRmQwblp6eHI4UzVCYlNpQWlKNlBLaURJX1N0VkgzVG5Hc253eU1GeFA0a0JUYkhzbzZybk9WVzZPSjlseGpjbWs5WVZ0TDE0aHRuUUpCN1pzQUlESWpIdnZoWXgxU0FHZV85clk1RzkwMk9IcW5GOUhRcEVGbXRnTzQ1LWRydnRrWllLczRuNnkySG1LNF9Gd0dRUjk5T2Y5ankxTU1RX2VpYm5kT0luRFN4cGJIQmw5RFZPTUhnVmpwZnRqNE80NEZFVDc4MDgydlRSQzdRd053amc1VldxNTdTZ3lYU1JDaXUzcW9fenVkYzJ3cEE5aHVycUZVOUVkbllMZl8xWVBSQVRnanVIcmxab2lLN3RWR3QzOHdZaVQ1TjdFam8xelZ2bEQ2RnV6eWcyTWxxaWxtSmt4SGpuejQxUjRRZ01nVkF3S3NnQnVNWjgyRXl6ejgxbW5lOWwzU2RzQ1AtYVVuUUd4UFdncGtjMVFzTXpfUjJCRGYwVGw4UnBsQTJrSnpwUHpUOUdNOXh4WjRES0JFTXh5dUEzRVBwTzVWY1R3NEcwSkQ5dnQzd0dneU1JV2tfNUxzeWR6eVFvSmZWR2lXYXFEY2dxYVhkVlloMmFuRzNoeUQ0N1BEQW5MNzJOSkY2VVVuYWpQSUh5Z0pnX1VQWjlPajlPWnVEY3dUSE4tR0ZrbGU2dlVjRmhmSk81Rk16aUxmQ2R6REptOVlHM2p0QmFPOS1IVkVmcmJrWEZEdmhuRkJSdzc0dllvTUtRQzdFekdvRl9DcWtNQUZSR08ycVdmRnZ3dU0zZ1dLSUd1VGQyZ3FfWmdPZEItZnhtZDNWc0NkaDU0Rko4cTJtMXF1dGVLQjVrQktZYkxFb2F1eDJIb3JQUEdEVWlUdmNTQ1o5czB5SnF4Qm8xRVJRTGJvYWpxSHp2bnRhLXhCNGdWYTJidmNOS3dYSktOTWJETy1tMUtMTmlpYXZCOWFCMFpsaWRGbmJyRkU2dkhWdTd2RC10SEFHRmhxZ3hWR1ZqVXlRVFFyMHE4UlFKcVJxZDc5dkVldkowQU5DVk5CN0h0azdOVV9ObElhY1J3SUg0ZEt2WlhjVlVPMzM5SlFUNGxURy0wb0h6Y1ZwY1llQ1NuRFllb2lfTHVnNHJLcEVkdmlCV3NTRU5JTGtwQUFRM2V6RDVYLXhGdXZjWUVHRkdsMm11eWZBay1PcW5sYnhDV1ZuVFM0ZHZjVVpQRHhxMXQtNFlkX0FfUHRCVDZhcUJyWGtyZ0Z0dGZyNDJySWg1R2JsbDBRVWZ3WjlLdTRQejc5bHFKcUNNbnpLZzlic3ZJa0g1ZkJlRnZZV2Ytald5c0s1Z1UxSzRnQzJWby0xM2wtem9yTk1SaXBvQ0REWHRkZllpZUxzQnc2b1ZuZ2ZrWDdaU09UVUFLSkNaTkFocHp0UWpNdFdfVlhleVRyTm9lbDBqR2d2cXZNSDlKb3JsUDBPWWJYLU1LS2ZVb3RzWkljc2xvTVYxRDFuZ3NFNk40eERFMk1rVUZJdlNUY0RtLWFIRFZEb29kWmVCbHlWMUZIVjduQ1FZV3V1LWU1Tk8wMnlJc2J6UjRkSVV3WlJaNlJIREdiMzRydHdPSVFsRldBelRCX25nczNHaFdnM3pqd0swYk1FWGc3OFZlRzJtZmtrWWVZZzdZN09EM3pMSDRaTGJLWk1ha2dxRmNodEJ3eHdzdHNPWERyWVJXU1dOQm1DaUxHNHlyeFlQU3NnSWJkdHVVN2NxUUZvYlBQVTB2RUdfeVJFSTMxaS05WmJRaHB0cmhJdlNaVGh5QzlSV29EV1IzenpaVmNWRzM5LVNwR0NzR3RldE1TUDBHOU9rdW9pc2VDODFna3BuS1dkRE93dVg4ZktVeHVEZHRtQm5DMmJjVHpkU3oyODlCR3FKb0RBeDNhbks0UzViMi1rWDdJZXhzSHVXeFdBbGNKUkpsOHRORHg5R0tObFZYc0RVLUtFWXo4bUxaa2c3U2UxV1JQOTRnQ3lQUzBrbVphX01oYV9WbnNBOE9YRDZjWG5LRmhCSE5fRnZkNU00VWJuQzNHcWptQ0M5OWFVWTBFSkFHeVlkR1I3cWZkRWxrUjNwUHlSTmhoc0MtQjZwaGFTX2pTMEVxYzNrSkw0U0tVcEktXzFUbDV1Q2tjRzRTNngyNllGVmVYbWRvQ1ctZ01KODFQalg2c0d5YTdBTnRRWHQxekw1NFFtNXZnSHQyRlhldE5BQWh5VG1yN0I0QUZyMG1YcTJtcDVEcnhWRzFJSWV4V3FpQjI1MVBKSnFkeWlHcFRMSDVTQ1RDNkoxSkR6RjBtZ0VwdFI3UjlsSjlXRjdSRFJkT19VVDc0dTBQTmRvUDlLYld6aXFlRHZxcmhxWkVHNzBXN3VteHRlZTk0YXVIbjZLQTRiMlNURHp0VFc2N3B2M3RBam55d2djM2ZfZ2xVLTBjUjFtM0pfdHVGZEdEdE45QUgtVTJaelkwNFdlNVpqSC1MX0d5bElYWTU3eFRvWFhORG9RZzk4b3B6aHh6YktMNlVoamJ1V0luSlJ3YkRsR1hZN3BQZlNYVktKVW9KMzQ2eEVqSnVLdFpsWkU5V0F6bXhTSlctOFV4eG9mODJfZlNKc0l6X3FTRDNJOEl3X1lNaUlRVnlLS2xUa3JTZ1JnSi1DbHNuOTBHeDZuV2V3RHVlNzhlR09jZzgzZzY2UjFFNlJHMXdjbU9XandYVlVxU29ZWDI4RHZ0cmxkZDZjak1XaUxUN21VaUE5OE5LSjBJNEpRaktSamgzVU9mRENsT3RRZTdLMjloNjlUOEtSZVcwekdqVE9oR283UnpJSjN6T3o4Um83R3NwaVdDbTVZX1QtQjZ3RjRQQzJRT3pPekwzUjEtY3VrT09EOHVmRVozdVEyZmVobjBPMjB2WFdZTGp4WFJqQk9GdWlVY1FSQ0Y3bXRqcTE5WlpxbFQ3TTF6bVJOUHZad3p0U005bzZSOVA1c3NvZGQ0aEVpMW1OT0x1SXNLRVFQVTFHUE41RzVhSUl6anppVHpxUC1kZXJOV3doeDhxMV9Gbmpxd2paUHNubkM1NF84bWRKcG9CTDFzRVctS1AtM016YUE5UWJ5MEdhWHNMSlRqaFZOclV5TEF0cDU1WVh3TlJDcFJCdnZJdnpQM1gtVk1LdWxxdHVVNldfNTBjQlRKNVNBbmZEWXdqTmVpVWVKb1AzVmlyN21lLXdXQllGTV93OGlhLTRvU3RyYkpKUUZ3RDdfYXdqVHBJSXZNOHdWWTRxVW81LXlVeGx5bGI1T3hkVzRaUHN0d0d1emZQSjhxUkJmVklCcUg3SzVhMlJCV1F5c1htaEpMMGdkVlpEVE5helBSQl83RG53bFNQTVZRQ0pYeXdodnpoUFZEdU51UlRPRGFMUmVIWnJ0dmltc3NQZ1VWODlNRGh3ZHBxUHB1bzBUWjNxTmdkQk9JYXd3Z1RsRHVScE1tUk9ZSFdhNE1wR0V4ZWwxTnZjdTZ3M0ItNldmOWc0VFk4Uy1oZDhMbHZxTi1YcU5wWG9kYnJadGNtQ3JSVjVjQlU4TXlpdGhxdHhXSUI5ZmwwXzVJQjVRZ2I1cVNqVFFxZ2R0SmNnb04wN1JaeUtYN0dSVmNrWl9QMG1nMlExaDRfYWJxZk4weFZkeWhSMWdFXzEzeW1Xd0o4ZmpSV3RBUkp3TkJwNGJYNGdaOWVRNGc2SlMyd2VjeHFkUDB5bGNfencyWF9xOGdQSFlQVWZKb3R1eWlWdVo4Z3RHeVJkc05IenZUS3I5RDNnbFc1aDdXZ3pWWFpvZms5UnRmZUhWY1N3UUNWY0EtTHRwbXNGS0FnTHRRNEl2aWt2d2dQUDJJYmVIeEdOdE81bHdwSUg0SGxPdWl2a1ZESE9uVzJPcXpteElsVktCZjhXeUtTTDF0Y3FaLVpJT2hpQ1VaNGN5SnRTRXV5bi04VHBYWmtVLXBXUU1aSmhFUzdoNWdheFV5SmNTLWJYTkRnZlRDSFZqdU9md3o1eVFqZ1dGWHFHME1xaFZPUXRDel82aWZSQk02dXZqMGdTNVBoRHVpTmY5SmVUdV9Wb3VHYzNaSFJSVnpjeHZQLTlpWWFVQ3JVVXRESGE1OFA5MzlZd05XcUZSZ0NmQXh5anNzZ1FSYy1ybi16YnU3OUhxc3U5RTBYS0F6bl9HWG1MV1RSaTBtOGZvelpaTDNaNG5pcTFuVTJibHd3Z2Q4MXF3NDhBOWZER2pQVEVtd1dJbUowY0lTb2J1Mm5qeXVjUDljY2tRRDBVaFN0Q3l3c1NoU0NFekM4Zy1YekZtNVE5WmRkdkM4dzRpampLT3ROSlNxREUyVHZiTW5rTEFLMkp4X0ZrTEZYSF9ybzR4VTJEbkxjak5xUGFWZHNad1NQUFdkRnEwOHFXNV9zUjJGVFpqRUZYRlZWdFV0bUZRZGR0Q3kxX1BhQV9IOWFJQmR0TWZZMEUxeUxvbjZndEdCR09Fbmdxb2NNdjZrMTc3Z2YyR2RpT1RrLVRWR2ZZdEJkek9QZ0FhazJ6aURSYm9qMmRKeDhPQXhMQjhCdVh1X2g0Rm1sOTI1ODZKOTZFNXNDaDVKemFHQ2hrYUtFUWd2UWstTzFaeTJnYkQ3MnppSEhHbldfMnFOMWk2dmQwQk9OQ1ZfOWlrZU5EU0xCbmc3eXdBbGhVeDg1RjlUb1FIVGNuLWlVandFbFQ2TTBOelFRX2ZpdHBoWk1HOXpzTWRFVUF3M3Yyc1RmWGQtTU5ldUVaN3RMVmp3bFZSeGxyS3hqTWNrY3NqcjJ6ZVpaWUdfcUphR0NHS3dzVV9vdjlPYVRKay1RMmVHS0lmNlV2T0NITG5EeVNiay1UM1ZZY3VYWnRQV0pqNE9XRkE3bldJSGdqcURoMFEtN0JJeVowcWNWdF9nNGdOWURzWHFKSGJlYll3bF9rdXRwWFZfYzBqQXJUYjFZX2VLVGJGOURnTjNTT0xaaXJIdU1xRFJFR0NGUmhkZXRGNy14aUFsQlFZeWlFdDhzM1liQm5iQW9adEhFUm5nMHBGRC13dS1tUEx3bS1HUUZLcWNTUEJqNkFFaWVMdXFUWkVvampOTzY0V2xhQm9ha2QxX1l0ZjJvTEZ4WWgzRDQ2QkpfQ2Z4VERGdTB4Q2oxYmNMWkJPTXc4THpXcTlpa1VkYUtIV1JYMGNrSVNRemVsNllBS1lnLVVLeEktM2hUb201UnZIdzFIOTUxLThndnp6ZFhUalJFQ2JwMEpGYW5vMklSMVNmRlpYNlJBaFIxYU43V3RxcVdjaEhxcHh3clBDaUxwN3NkbXFtWEs0OVZ0UEhYWVBHbGhqcFlKOVEtU05jUTdxMlV6QktUd3ZrM1BMcGlyLTJCRnd6WUpJcXRCeTFlWjRHVVF5SWxJMm10MkNLbTFaZ2dSU1ZtbTRoankyVGN1VUtOd2s0NFNTVFRlekdQWlZGak9wUWJUcERaZks3ZEpxZHJYSjV2c3l5VDViZHNGcFdPbm5kQnl1LWZfSk40ekhnTHRFOGNpemFLOEJmVzFyRkJHWFJTeTgtRXJyR1I2bVRtMGlWakNaX19hd0poVHNpd3h5eG5uWWtJTjI3Y25iV3hrQTI1cnoxY1JKdG5lTDRzOHZpUWN4VWdLak5UTW03TmFyY1NrdDBIZkp6bVZZd2E1aGFrTWdrZVJXMmV4dDllbEVQeWt5ZzdWQklOdV9INjlFMFRidmk2Nk1nbVlLZU9YWkxnei1YeEp2QzRPWENaeVpNUlUtdk4wU29wRUd5OFJfVndJbkxrRktyUndwenVyNk5BbnppcTJBZ2hxMUR2dHc3YllfdTd4VDdlUG5SYms5YXMtNEF0M3d6SXRuX2JmLUw0T001ZWxpRjFhWDFBNlFlNmJ4cG4zMzNWSlRJbDZ5a0MyTnZ5VEVMclN3U2o3Z3NpN3ZER3VqRy0xOHQ2OV9QY1VKV0pmVHRwZDhUOXhXeVl4eG5kRmlYYWhhOHUweHR3NEhUYU9RYjdJTDNnenBtekNIZHNiNDNqaHNhYm1LOEw3amtZeS1NVVRkcnRVREVfLW9HbUs2WFc3SC1mSmNIZnI4SFJaa19Za1pWRTNYODRtQ1hBSEhjUWJISmdjaGNNODJJZEtrZnZObVB4TFpubVR5TndGWDZwVTBWWjAzeFpzMEE5cTEteFdTcW9BWjdPZFlsZ2ZBQkQtNy1KaEM1LWk2QjI4d0thQVJoQ3kxQ0hrX2dsNm5jLUpYS3JMYi04MUVnOUVjWmxpaEhCcGtuV0l0djE2YnBlcXllTGdZMVoxdDRkT1FKVGE2d3lvZ0ZDZFA4QjJsSlR3R3dlWUZUQlJvajlkNHVPWjJNeVRRVG5nd0lVS0pxRVA0emtXTlV5bUtQRzRiLWlDRXZGMVFQSFpSbjk5dHl3R2txSEJYTjJ2UjN2dW8td1BDTnJYdmxTbTVCTFBjRk12NjVQUVM2WFQxek9YcHZCNHA3SUYwMHhnaG9VbXo2TDNVY0R2c0I5M2RtSmMteGYySnNwWTVBMHExZkpVRUx5N0ZaeHRUU1dhc0hReGFRSXJIVXNfSlZyWVZnNVV6NXdIa0NNbnlCVkl2eEdYYlpyamFnTk5WYkFYUDdRZUozX3BEcElrUmwzZTBMMjRVTjRRYng3NDB4STBpVU1nRWR0a042V19CYXBVMDE2Y0N1M3pCTXYwcDBack1oeDNtaVhIXzBGRHBuam9XMVRhR3NRY1FQQ3d6allqRm95VEhvWGFNRnBzdmNvTmJhQTZlekZTUUlEM3RGazlYUU5EQ3NwWGdLcVhXVFEzNFF1cXJmSlAxUFFvS3F6ZTgyRjJNMHVpS0c0V1lWLURMV1ctY2NHLVlsMlFSQ1RPTzJ5QjVLN0tDWkpYSERSMkJmZ0w2d0tfZEZCemRPYUV3RG1jZFNxRmNCV05TNDlWRUJZLW5FYlBFN0ZPRl84QlhIMWJsMVg5RU5vcVkzX0JYd1U5aHpiMDRxclJBdFZIQ0x4Z0pseUpqRDFPbENydlluV2phaW5Kcll2U0lIa09TeUNyc08xM3hfV3RVeDFOMTFGRjJ5TjRtQWdQRDMzMnNPUllBWm1pRHFXWV9mNG5hazhEYlFnVEVoOW1JZGlOX3g1c3Q2RlZQTkdnTmI2UWtzd1RWTVA1TXBWeXl6VzhZNlhkQ2hLQjBOeE9wb0cwdDBrWk9iZzR1U25vNFJZZkdET3F6MExmcTJMRnJEOG9yMHhJVGFTeVlxSUVKVkEyR0t5cHZCWC1tOWc2VTZKYy1oQTUwSTVjMmpyWWs1M05hdW1kRWIyd1lCa1Qzck84emQ2bWdSY3VfeG42NzYxcnMwZGs0QVpkWi1DelJmekdmdWNRREcxOEpobzZvMzEzaWFBc3QyMnIyOUxIMUR0QUZJbVdqbnF4cnE2b1JwRm9ldHUtV21lMnFhVVBJQkdKd1lHTXRpaXpMVHl2YUgwWGFGc0V5d25RcFg3cDlScV9kb0VEbEdUOE04blIzNnNKRDBCeEd3UHc2NVRzNWhrSkVyWWF0T3VDcEFzcjh0U3B3Rk9tMm5TaXU0RVlWVFNWbURfTC1sUnY0Ql83ZEpSZGpiQ0cyN092aUlKRVZ3VlpyT1lNZDhvTE10aTlGVmtjNk83RGNLZE9BTURLcnV3Ui1MdllTdWh3OWhNeGhDQTI3WThQX1lqWjJhX3JZS1dXZ3Z0dlVvYTNPakRnc210RWNWM2dqV2U2a0dsOXpXMTNqeldFRTU5RElBNVZhUWd3RzFHSXVCbEZaeTZOaGZweVhrczRrUEpKbUY1aTJCeGI4RXJwVlBvQ1dsSktYaF92ejNPMFZ1X0lzUUtvM3hlUVprVWttTjE0X1NJdlFqY05Iemt3V2FyNkF4d1dCODhGbmZONnhvUXFPb0J5MG1seG1pME96ZGFva0R2aVR6VDlKeUhNRlhzQ0VOOHBGNERuQjhlVGJhSGlqaWczRlJXZWlmVEkyUHhOdVBQcE1RczFndi1rZ3ZZZHpSbkhRN2U5NGxPNV8wV1lZWkJGZWtBVjdWT0xTVUxMbjFidi1KYXd0Y3piWngxN293ZWVfUDFVWF9DYTRHSWRrYlpiOGp4WWtXLXY2WEswUUJIMEF3Tkx1czZ4X2tDU0V1YmJDZ2lCOEN2RDZTeE5fTjFOMFdYZ2IxNk45aWtfd1RQZ2haZmUwS2p6R3diQkRtZlVKM3dSWFlWQzRsZkNwUWt3bmFacGpWRU9PZ3pWak1Wbm5BSWNJQWhYN3hkZnVpdWZiRTZZZVJnN0NrbkVGU2RIYVlLdDdXX2x1bTNSN0RCZUREZDBzUE1NMWhnX3FVNE5CXzJxLTZxOTZISWFSSWRkM3pySXVDdGJsR2lLck9ibHBDSXFPazNXZ25DSi1aYktGZmpFT1Q2QVQxS3BrODcyUW53LVlmLThxMk5YTHN6SjlFLVFrQl82anVTTHRYc2NPNW1QWlVVdG9YSUMtWC1LaWc5VkpkTktLei1DbEV6eENOdjBLTXNwX3NfRHQ0VS1lOUNnWmNQYndMMzJOd2NCblh1cDZkemxWR1VtWUpTY1hwUkNUMldlTnN0QlFwYXdjSmVzRmNWMUtrU1doMnB3Wk0zc2dEZHF2NVJaYXdURF9OVE8tLThrTkF6MnNhWlduZzRmS0tUbmduSXVuZ1pIaGRtYkJMa09Mb05KaDFjS25haG5QZDJnTWVZYnZMeXE4MjRuSS1jb01kcXJXV295UFEwUUtjcVMwZmhIZk5HN2NsTV9wZUlPYmo3LWYtbDdhQ0hTclBMU2RmdlBNSms2MldTdTdnUHl0TDBEcVc4bnVEZ0dOcldDVnJqX2gzQ29wUWVmMlhiVmZULU5PTlh5bWFLUElKT3lYT01JNk02cnJjMS1sSi14T3ZsREtUZmxfZXNTSGZMa3NXczZBOGhzeXlIQ0RIbjIxbmpHeEQxWHloUkl2YjV2UENDVTZ6OWVIYjdnWnh1cl84QVVNRENiemQ4R3BNalVkY0tBYnBLYzk4U1UzOFJPcjk0TnlyQWt6dUdrY3laTTVYckVUbWdncGh5eDJ1ZXB0YmUwdURUcmdkWF9yWWlicEI5WXB6MHBreWN0Umtlcm5wSzRiRFhseGRfQ0ZIX0hFNHllT0NRU2trWnRjeHlzSHppYUtGeHRMc2ZOYmYzNk5vSF85eURhUDNjSGp5ZVZqVng5emM0TEF6S3NFbUROeGpaZE9VeDFvU3ZuWnlXSG1GaDdsZmI2WFpqd2N3VU9iZkRmLVZKVW9kRjdMRWV0SVdzNEZlOTZ0a25ZOC04NWtaR1FSbmRFSnVadDJhOWwtTW5Pc2czbWg1ZF9KS0VEVG5qcDJmUkpjc3RWTzBVd2JDOS16aHZhVnRMNHd4WW1FZUd2TkFjbzB2Tjd4a01adzdWWXczS3FaX3VKS3ltRjBaeTgyU0phMUZTZ0dhVUF2bm1wZ2xlRVJ3NFlMdUVBcnBNVF9sRFVvODEwRnNUUG5QdFNicDd1V3ZFcGJnWWI3SnRMWWtJeVRBRXhpVGNTNndlMk5YVEJrVmVNWmh1OGpJNzZZTV85VW5PYWVZMzRabml5X1Q0NXJiVHFUYS1NU1ZpYlZOcXZfVm5XR1laRUN4ZnVTVlkwM1lVZ25CSDZHdTBUSUlsUG9Pc2YtNE1aS3AxYnB5dTZ1Nmx6YlVDeHRSbTVzOWJnaG9aTFBQRENmOWFyLWNpaDVDLVk4bER6Y2JqWTNmbTVZeVBtTHkzQ2Z4bU85UGRyUFAxQTV2THhXeGhkNkZzbDVEYTJ4emZ5MlVMZDZRUGlSVGUyR3VfY3dxUzlKQUFBNlVYbzRlRzZlUWNaaWh3TnRaeUJZd09obkx0c2FTUk5veHN1YWNKa2EzNmNJc3Uta0JpSlNMVUROdHJvd3EwdkRxZHNXM0lhSWV0SVIya3gtdW96ZVBsZjRGVUxHUkxmUVp6LTAwZ2lyOVAxTmVWbi1KcV9JdjlZTkdvNUlKNXNiaU5nQnduSHVGNmJHXzdHT2Z3SWZxOTUxajdGNG0zZlNoSU84Q1JLLThHcFIyR2hGbFpKdkxMbnF6cVVadUJsUFFGVVZIcTRKcnQ1RUFYZWFQSVJzVWpBVEQ2UWJpM3pBRXJZT2xjejA4UmdWUjhTOWs5bk8wQTZ5VF9xRHA4VkhiS3BVeFlGODl3LTB1b000VVY3djh3c28zMVgzbXZkajVOc3FTR1dEU3lJa1g0dXoyeTlNZjc1TXA5RnR5b1VoajkycG80eWZleElvckdkSDI2T2xyX1ozc1FlZjhzcEZIcGtzZkpCSmdSV1YyWlVfTU9PVm1ybWtlQXU0N0VSMnFZQWVkZDhJeDAtUXA0NkZSX3NXUkZNTW5SUE4zU3JRLTdiQ3dsd1QxYjJkTHZkemdPS2xLaHk4amR4dXFoZnFxVWhYV3BzUkthS1V4UVFlOGNzRlZFYzIwWTZJa1V4Y2ZTTXhpeFFyZnhVTDc4UjRNMU5wcEpURk1lRUJVb0doSFRxLTh0TC1ma0ZBaUZEaUNDWl80d0wxdzN0YWd1bjV5bFNBRUpqaGVxMVB0bTdJRnhDLTAzbXk2eThSeVp3VG9BbE1tNHRXWEVhcnRxSWJfbnNzTU42dmh5QTJjSGRVeFI2VU9fODBMNWx2MHhPZll0RDI3cGpIZWNqbUgyX0VBSW1NNHBhZWl1NEhCLUp0X1dRakNYV3VlNDh3REctYzRDS2VjR0pxSml5Rm81MDdMRjE2bm9uM19lTWFNRUZjQTlDaEkwX0FyWlNCU19nY0RRcmVXcDlaWlNSV0xnc1JPRTVFMU9PdnFoTU5GMG9ZU0tEcUw3UHYzX3V6X1drRi1Qc3RBWFMzUDI0amhBN0hEcFp5d2R6OVdtNXhFY0V3X1lpZFlQQm1XYUVWLWJhcGZNcTJaU2RaMkY5bEhuaG9WcDdPb3lrZjZUVUQ5RzBtcXo0VGRjRU9kM1ROWi0tVmtfcjRkU0E5UllFMkxpWWMycjlReWJOdkZyRTFJYWt2cXhGTVZEN01ZVDRXeWlXTkJhWGJXZUltRldzU0NwVmFHbXh1Rmw1dzh2dTQ4NTVHNlBvZHV2UWxSV1dlbl9yVUFmTkFhaTZsRDhXTThQTUxWZ3RURUdueW1NNGwtTnFSa3RFajNCWEVRS1ZPZC0xWnBESUduN3RKN0FRZzQxMXVHOTRqR29ETjdXd1k4NGJBZFV4QVVycGxDSE9FM1huTXBsNFBhMHpUbE1XZHRHY3Z1djd3NkdINlcyRVFQQkk1OVhyNHE5M1RJa3V0MHJrVF9PNks0WGJicmlZQjFOb0NJMlRZbjQ3ekJNb21BQVFNUTRLc1RKS2E3UlJIRFhWZWhHb3hGZHpSdTdxT1NObUdNTDZKbXRhSTVyTTgxallQRS1QaWJuaDlQMWt0TUhqMjZzRzFaM1Z1YldWSnhVSkRaVVZnM202aTdyRHhrcmVaT1g2S0RPdjV4Qkw5c2dTUDVZVzFOcmx2TThjTzJvdnhEV1JrVHZDbGtHTGh1VDdlMm9ZZzlOcWZXZFU0Z3lhc0VnUDhPM1lVQUtLX3RNdVJpbGMzVkFuVU84eTBIRFlIQVFqRXJUcHBxcVFYcTBfU0R2WkJqYjhxbUhWNmpqbDIyVmdHN0FBTnZTUk5WaXJuQ3ZROS0zWTdaR2NsNjhLcEhka19nRElRNWNXRGVmNWdzNGg3eHRxaDg1TnpubjJSeGx1dnFXcG9fNWJVR0pPTmZfRlJta3dUeFc4MFQtVzZwSVRVTkZjMXR3RWRUNFJjSG5XRjBqa0xFQ0hpWnNaM1NwTFJOUVIwSXNBT1BmZkp2cTRmbEt3QlJsOEZMbFpEYXN0ang3eldsZlNoNElJdHJaaUNwWno3S3I3QnYtYU1xMXVKZlR5aUZnZEw3ZU1OUjc3cERPcGk5MjhjTlVQRzBDbklhMnlRdFl5TWhrOVk5cE5tTFU2d0ZSNGVTRTJrcXN6ZXdTZnJSUGVwaUtaYlNKTC1RbUpHN284VlA0bWlYY2xzcjRlZEFERHloOUNRQ20zNUxLNVVYd0NrdGU4UlFXZmpRbWx2V0I3Ym9aR29ra3JFanVQQlJuLVE4QjZhLWRjUWNhWUpkMWlFTHJTT29xLTZNUkFHbWFWa1RxaGtHMFh6d0o1RjZQdVN1d1FEdWtZUzN6NVloYmlWMUhrOFU2MHNscnVZZ2NJbHdPN3BWUW82enZXYWJLaFZqM3d1cE9XYnc4dExBZVJQc2h3a0JGSUtjSXVpSXlOM1RIa2NDcFZsQVlSazh3SGpWbUtzWG83RGY5UUhxbF9MYUh3dWdmVFpCdmlEZ1ExckliZ0hVc0NHemFwbkw0RlJ0Um42WGoyanNqTVNjRFluaGZtcWREb2h1Mm1EUk84Z25QRV90SWwyM0lveUxqRXg1MkQ2T2lSdUVpTW9nWExHVGhKOEtFZUg1YzlfZ1dMY29CVkhWd0gzTjZTaUV2QXEzZXhBQVhUVFVtLVk3S2E3MFVwMnc5VDdQZE56Y3VWZ1FYSWpGNVhOaUljRlBLN1lmN1BBZVJmMHhISmJJc0tpWmdoQ0w4allOdUNvazBjRDJ6ZUY5b1E4eU9JSnRTSnM4dmtiakNLRWh5MThvMzFfQVZaVFU3XzJRc0tHckxKaGdRLTJGUDhOVGtjRU5MSjBoVTdfbzV3TW1teE82SWxHamswUXhyZk9RSEIwVkI3blR1UDJXd0p2Vkg4ai1ET2l5bmRlWkdpSHQyNDlkd1FxTjh5YzBJUFdoX2JsY1BmaTdwTi16U0F1ZUY4LjgwbGlzdlZWenFrc1hXb3BrdHVMOFVQWVZVTkplb3h3VU1mSkVUWWNiUjQ" + }, + "StatusCode": 200, + "ResponseHeaders": { + "Cache-Control": "no-cache", + "Content-Length": "2168", + "Content-Type": "application/json; charset=utf-8", + "Date": "Wed, 29 Jun 2022 20:50:40 GMT", + "Expires": "-1", + "Pragma": "no-cache", + "Strict-Transport-Security": "max-age=31536000;includeSubDomains", + "X-Content-Type-Options": "nosniff", + "x-ms-keyvault-network-info": "conn_type=Ipv4;addr=24.17.201.78;act_addr_fam=InterNetwork;", + "x-ms-keyvault-region": "eastus", + "x-ms-keyvault-service-version": "1.9.444.2", + "x-ms-request-id": "a751bcb2-4cd9-4659-82ad-311ec8047275" + }, + "ResponseBody": { + "id": "https://fakevault/certificates/cert1387819847/f4c141ebdc8f410f89b9d47f8fd7e7f1", + "kid": "https://fakevault/keys/cert1387819847/f4c141ebdc8f410f89b9d47f8fd7e7f1", + "sid": "https://fakevault/secrets/cert1387819847/f4c141ebdc8f410f89b9d47f8fd7e7f1", + "x5t": "rLFdwzgYVYQGFudqImwBv4KeQoU", + "cer": "MIIDNjCCAh6gAwIBAgIQcHPDSaDPRd\u002B90oG5EeNFGzANBgkqhkiG9w0BAQsFADAYMRYwFAYDVQQDEw1EZWZhdWx0UG9saWN5MB4XDTIyMDYyOTIwMzkxMFoXDTIzMDYyOTIwNDkxMFowGDEWMBQGA1UEAxMNRGVmYXVsdFBvbGljeTCCASIwDQYJKoZIhvcNAQEBBQADggEPADCCAQoCggEBALhIETIevV/SiV48erwjQMt64P7RA9LYsxHzEgqJ\u002BPYAoRsq4uFBU\u002B34uLRwe\u002BmfgrGbv7PjJCNf6/b8q9CkHCTe4QWW7pUzBw2yVfJAKuFcdOYBHRGXSROfrc4J5OD7Y6tq/W7EC4iTLD6IdVF6mpuTd924/gH5cOCAK9bTHDAcKxREs9WfNBYPcDtbk\u002BlOyEDmn202A1Ja3YAFAh8apNFi7pmOcy4kJIVedQaDHj4FI\u002BNbp2uOVkitoU9pcPC7fAapi0yS5/DJiyW4e9VN\u002BUFN/GrCDUCnLBWs4cosoSoeru0CufWFkppBC0S4m2lN0m0CUZ1WEBjZKMyBHXep7w0CAwEAAaN8MHowDgYDVR0PAQH/BAQDAgWgMAkGA1UdEwQCMAAwHQYDVR0lBBYwFAYIKwYBBQUHAwEGCCsGAQUFBwMCMB8GA1UdIwQYMBaAFOmR7nScy/ThYPFT45gx/V6sozJUMB0GA1UdDgQWBBTpke50nMv04WDxU\u002BOYMf1erKMyVDANBgkqhkiG9w0BAQsFAAOCAQEAbw3LGbg/mPymRCae4WTaMFCqCpKvnMWRvSXHz4TtvOyIixSQhe0dtICA\u002BHlxfSBjV4zh6fDVXHHfqmRMg2ejDU1h5fOs8HYCXXgncrPUJEBCpWddvmCp/Y0GNtStvni5p6V5Wjfosb54vkrqHktBXWP62TJkH7uAObsBv6sWFbMqQ8w6az6hXKoOTop8hD8aeaz3MEMTzOCn6EUmGWPdno5rbKDaKFfbR4g2Gst17Iq6qW\u002BK8v7m6V8vNx4kAzkIFjAi9myu9\u002BO2X38biOEVnxb0lUz6f6HeKxV6Sc874ulr6uGXFWLvwbpCGRN5oGvbaD7hTwYwPpTvzTLN9CaLHw==", + "attributes": { + "enabled": true, + "nbf": 1656535150, + "exp": 1688071750, + "created": 1656535751, + "updated": 1656535751, + "recoveryLevel": "CustomizedRecoverable\u002BPurgeable", + "recoverableDays": 7 + }, + "policy": { + "id": "https://fakevault/certificates/cert1387819847/policy", + "key_props": { + "exportable": true, + "kty": "RSA", + "key_size": 2048, + "reuse_key": false + }, + "secret_props": { + "contentType": "application/x-pkcs12" + }, + "x509_props": { + "subject": "CN=DefaultPolicy", + "ekus": [ + "1.3.6.1.5.5.7.3.1", + "1.3.6.1.5.5.7.3.2" + ], + "key_usage": [ + "digitalSignature", + "keyEncipherment" + ], + "validity_months": 12, + "basic_constraints": { + "ca": false + } + }, + "lifetime_actions": [ + { + "trigger": { + "lifetime_percentage": 80 + }, + "action": { + "action_type": "AutoRenew" + } + } + ], + "issuer": { + "name": "self" + }, + "attributes": { + "enabled": true, + "created": 1656535747, + "updated": 1656535747 + } + } + } + }, + { + "RequestUri": "https://fakevault/certificates/cert1387819847?api-version=7.3", + "RequestMethod": "DELETE", + "RequestHeaders": { + "Accept": "application/json", + "Accept-Encoding": "gzip", + "Authorization": "Sanitized", + "User-Agent": "azsdk-go-azcertificates/v0.5.0 (go1.18; linux)" + }, + "RequestBody": null, + "StatusCode": 200, + "ResponseHeaders": { + "Cache-Control": "no-cache", + "Content-Length": "2293", + "Content-Type": "application/json; charset=utf-8", + "Date": "Wed, 29 Jun 2022 20:50:41 GMT", + "Expires": "-1", + "Pragma": "no-cache", + "Strict-Transport-Security": "max-age=31536000;includeSubDomains", + "X-Content-Type-Options": "nosniff", + "x-ms-keyvault-network-info": "conn_type=Ipv4;addr=24.17.201.78;act_addr_fam=InterNetwork;", + "x-ms-keyvault-region": "eastus", + "x-ms-keyvault-service-version": "1.9.444.2", + "x-ms-request-id": "e3dfa951-5ad6-460e-babc-19cc8bcaad9e" + }, + "ResponseBody": { + "recoveryId": "https://fakevault/deletedcertificates/cert1387819847", + "deletedDate": 1656535841, + "scheduledPurgeDate": 1657140641, + "id": "https://fakevault/certificates/cert1387819847/f4c141ebdc8f410f89b9d47f8fd7e7f1", + "kid": "https://fakevault/keys/cert1387819847/f4c141ebdc8f410f89b9d47f8fd7e7f1", + "sid": "https://fakevault/secrets/cert1387819847/f4c141ebdc8f410f89b9d47f8fd7e7f1", + "x5t": "rLFdwzgYVYQGFudqImwBv4KeQoU", + "cer": "MIIDNjCCAh6gAwIBAgIQcHPDSaDPRd\u002B90oG5EeNFGzANBgkqhkiG9w0BAQsFADAYMRYwFAYDVQQDEw1EZWZhdWx0UG9saWN5MB4XDTIyMDYyOTIwMzkxMFoXDTIzMDYyOTIwNDkxMFowGDEWMBQGA1UEAxMNRGVmYXVsdFBvbGljeTCCASIwDQYJKoZIhvcNAQEBBQADggEPADCCAQoCggEBALhIETIevV/SiV48erwjQMt64P7RA9LYsxHzEgqJ\u002BPYAoRsq4uFBU\u002B34uLRwe\u002BmfgrGbv7PjJCNf6/b8q9CkHCTe4QWW7pUzBw2yVfJAKuFcdOYBHRGXSROfrc4J5OD7Y6tq/W7EC4iTLD6IdVF6mpuTd924/gH5cOCAK9bTHDAcKxREs9WfNBYPcDtbk\u002BlOyEDmn202A1Ja3YAFAh8apNFi7pmOcy4kJIVedQaDHj4FI\u002BNbp2uOVkitoU9pcPC7fAapi0yS5/DJiyW4e9VN\u002BUFN/GrCDUCnLBWs4cosoSoeru0CufWFkppBC0S4m2lN0m0CUZ1WEBjZKMyBHXep7w0CAwEAAaN8MHowDgYDVR0PAQH/BAQDAgWgMAkGA1UdEwQCMAAwHQYDVR0lBBYwFAYIKwYBBQUHAwEGCCsGAQUFBwMCMB8GA1UdIwQYMBaAFOmR7nScy/ThYPFT45gx/V6sozJUMB0GA1UdDgQWBBTpke50nMv04WDxU\u002BOYMf1erKMyVDANBgkqhkiG9w0BAQsFAAOCAQEAbw3LGbg/mPymRCae4WTaMFCqCpKvnMWRvSXHz4TtvOyIixSQhe0dtICA\u002BHlxfSBjV4zh6fDVXHHfqmRMg2ejDU1h5fOs8HYCXXgncrPUJEBCpWddvmCp/Y0GNtStvni5p6V5Wjfosb54vkrqHktBXWP62TJkH7uAObsBv6sWFbMqQ8w6az6hXKoOTop8hD8aeaz3MEMTzOCn6EUmGWPdno5rbKDaKFfbR4g2Gst17Iq6qW\u002BK8v7m6V8vNx4kAzkIFjAi9myu9\u002BO2X38biOEVnxb0lUz6f6HeKxV6Sc874ulr6uGXFWLvwbpCGRN5oGvbaD7hTwYwPpTvzTLN9CaLHw==", + "attributes": { + "enabled": true, + "nbf": 1656535150, + "exp": 1688071750, + "created": 1656535751, + "updated": 1656535751, + "recoveryLevel": "CustomizedRecoverable\u002BPurgeable", + "recoverableDays": 7 + }, + "policy": { + "id": "https://fakevault/certificates/cert1387819847/policy", + "key_props": { + "exportable": true, + "kty": "RSA", + "key_size": 2048, + "reuse_key": false + }, + "secret_props": { + "contentType": "application/x-pkcs12" + }, + "x509_props": { + "subject": "CN=DefaultPolicy", + "ekus": [ + "1.3.6.1.5.5.7.3.1", + "1.3.6.1.5.5.7.3.2" + ], + "key_usage": [ + "digitalSignature", + "keyEncipherment" + ], + "validity_months": 12, + "basic_constraints": { + "ca": false + } + }, + "lifetime_actions": [ + { + "trigger": { + "lifetime_percentage": 80 + }, + "action": { + "action_type": "AutoRenew" + } + } + ], + "issuer": { + "name": "self" + }, + "attributes": { + "enabled": true, + "created": 1656535747, + "updated": 1656535747 + } + } + } + } + ], + "Variables": {} +} diff --git a/sdk/keyvault/azcertificates/testdata/recordings/TestCRUD.json b/sdk/keyvault/azcertificates/testdata/recordings/TestCRUD.json new file mode 100644 index 000000000000..7211a0004342 --- /dev/null +++ b/sdk/keyvault/azcertificates/testdata/recordings/TestCRUD.json @@ -0,0 +1,800 @@ +{ + "Entries": [ + { + "RequestUri": "https://fakevault/certificates/518723441/create?api-version=7.3", + "RequestMethod": "POST", + "RequestHeaders": { + "Accept": "application/json", + "Accept-Encoding": "gzip", + "Content-Length": "0", + "User-Agent": "azsdk-go-azcertificates/v0.5.0 (go1.18; linux)" + }, + "RequestBody": null, + "StatusCode": 401, + "ResponseHeaders": { + "Cache-Control": "no-cache", + "Content-Length": "97", + "Content-Type": "application/json; charset=utf-8", + "Date": "Wed, 29 Jun 2022 20:49:07 GMT", + "Expires": "-1", + "Pragma": "no-cache", + "Strict-Transport-Security": "max-age=31536000;includeSubDomains", + "WWW-Authenticate": "Bearer authorization=\u0022https://login.windows.net/72f988bf-86f1-41af-91ab-2d7cd011db47\u0022, resource=\u0022https://vault.azure.net\u0022", + "X-Content-Type-Options": "nosniff", + "x-ms-keyvault-network-info": "conn_type=Ipv4;addr=24.17.201.78;act_addr_fam=InterNetwork;", + "x-ms-keyvault-region": "eastus", + "x-ms-keyvault-service-version": "1.9.444.2", + "x-ms-request-id": "e623e81e-4b42-474e-afff-022c97bbf0cd" + }, + "ResponseBody": { + "error": { + "code": "Unauthorized", + "message": "AKV10000: Request is missing a Bearer or PoP token." + } + } + }, + { + "RequestUri": "https://fakevault/certificates/518723441/create?api-version=7.3", + "RequestMethod": "POST", + "RequestHeaders": { + "Accept": "application/json", + "Accept-Encoding": "gzip", + "Authorization": "Sanitized", + "Content-Length": "81", + "Content-Type": "application/json", + "User-Agent": "azsdk-go-azcertificates/v0.5.0 (go1.18; linux)" + }, + "RequestBody": { + "policy": { + "issuer": { + "name": "self" + }, + "x509_props": { + "subject": "CN=DefaultPolicy" + } + } + }, + "StatusCode": 202, + "ResponseHeaders": { + "Cache-Control": "no-cache", + "Content-Length": "1268", + "Content-Type": "application/json; charset=utf-8", + "Date": "Wed, 29 Jun 2022 20:49:08 GMT", + "Expires": "-1", + "Location": "https://fakevault/certificates/518723441/pending?api-version=7.3\u0026request_id=39dd0f6f43294dcfadc78d6f8ff006aa", + "Pragma": "no-cache", + "Retry-After": "10", + "Strict-Transport-Security": "max-age=31536000;includeSubDomains", + "X-Content-Type-Options": "nosniff", + "x-ms-keyvault-network-info": "conn_type=Ipv4;addr=24.17.201.78;act_addr_fam=InterNetwork;", + "x-ms-keyvault-region": "eastus", + "x-ms-keyvault-service-version": "1.9.444.2", + "x-ms-request-id": "ca1895c0-a8a1-453b-9c5d-97f004d6c291" + }, + "ResponseBody": { + "id": "https://fakevault/certificates/518723441/pending", + "issuer": { + "name": "self" + }, + "csr": "MIICqDCCAZACAQAwGDEWMBQGA1UEAxMNRGVmYXVsdFBvbGljeTCCASIwDQYJKoZIhvcNAQEBBQADggEPADCCAQoCggEBAJ3SL2DrDQttCeWkOYQknFFmwzZF8TZQBuoDSUUdJNA9h4MB8cVn7Z0aTmyaztxln95S4rLFQZK4ggsSta7\u002BC9BEVCSt6EPQxARkCGbNVcxtzWMJjvfANeltdDQ5A3Yqz6NHO2wCSzUZlmQF6ARvgx054bg0Lu5OG/a5vKZzl/kF3TngFvshf7G2AQdhGQS98W61559hTXiG8iQ4kb0KPTIWl\u002BK\u002BM4quthk6GMbSVbNycvYvp6lZ3HPFzk31wWPaRtoTsMjwbi3Dw3fqdvJ1mnLq90xVmHv16ajvso0Q\u002B21w2i3XgBkqV4M045cEHI1bSv9NgNYsxmFzZYS/R43piHECAwEAAaBLMEkGCSqGSIb3DQEJDjE8MDowDgYDVR0PAQH/BAQDAgWgMB0GA1UdJQQWMBQGCCsGAQUFBwMBBggrBgEFBQcDAjAJBgNVHRMEAjAAMA0GCSqGSIb3DQEBCwUAA4IBAQBfnWk0/HvODymU25ZNDcb\u002B8RvTjT7IzAz2M0n920f11y/U3KVy3eE\u002B103Kl/NZGUzVRyQa4B14Z7cJrpo2HGdSjSTUq0CTEWZcUOZymn12bfgF9WDq2iXzea2aV\u002BbijMSD1C3wkFE0OyAGmWr9c\u002B3EOoj9GG0bDPwXDZ4xxhdfxtLkG98Q/dLVAHeLFwQDy0EfH/eebx2EsYkhnH/eNgtooAR6LZ8fYfYwY69P2\u002Bf/c9Yj8x4SJLsogHiDfm7EZ461rcSwntlP3tHM/z7TH1aBt1IhqJozvNN41FGs5vv8JXX3siC1yZjvvxT23g6Qsfj3pJK\u002BmjY7meXUIJ9Q/jYK", + "cancellation_requested": false, + "status": "inProgress", + "status_details": "Pending certificate created. Certificate request is in progress. This may take some time based on the issuer provider. Please check again later.", + "request_id": "39dd0f6f43294dcfadc78d6f8ff006aa" + } + }, + { + "RequestUri": "https://fakevault/certificates/518723441/pending?api-version=7.3", + "RequestMethod": "GET", + "RequestHeaders": { + "Accept": "application/json", + "Accept-Encoding": "gzip", + "Authorization": "Sanitized", + "User-Agent": "azsdk-go-azcertificates/v0.5.0 (go1.18; linux)" + }, + "RequestBody": null, + "StatusCode": 200, + "ResponseHeaders": { + "Cache-Control": "no-cache", + "Content-Length": "1268", + "Content-Type": "application/json; charset=utf-8", + "Date": "Wed, 29 Jun 2022 20:49:08 GMT", + "Expires": "-1", + "Pragma": "no-cache", + "Retry-After": "10", + "Strict-Transport-Security": "max-age=31536000;includeSubDomains", + "X-Content-Type-Options": "nosniff", + "x-ms-keyvault-network-info": "conn_type=Ipv4;addr=24.17.201.78;act_addr_fam=InterNetwork;", + "x-ms-keyvault-region": "eastus", + "x-ms-keyvault-service-version": "1.9.444.2", + "x-ms-request-id": "e414d77a-cf9b-44cc-bf36-420488da83f9" + }, + "ResponseBody": { + "id": "https://fakevault/certificates/518723441/pending", + "issuer": { + "name": "self" + }, + "csr": "MIICqDCCAZACAQAwGDEWMBQGA1UEAxMNRGVmYXVsdFBvbGljeTCCASIwDQYJKoZIhvcNAQEBBQADggEPADCCAQoCggEBAJ3SL2DrDQttCeWkOYQknFFmwzZF8TZQBuoDSUUdJNA9h4MB8cVn7Z0aTmyaztxln95S4rLFQZK4ggsSta7\u002BC9BEVCSt6EPQxARkCGbNVcxtzWMJjvfANeltdDQ5A3Yqz6NHO2wCSzUZlmQF6ARvgx054bg0Lu5OG/a5vKZzl/kF3TngFvshf7G2AQdhGQS98W61559hTXiG8iQ4kb0KPTIWl\u002BK\u002BM4quthk6GMbSVbNycvYvp6lZ3HPFzk31wWPaRtoTsMjwbi3Dw3fqdvJ1mnLq90xVmHv16ajvso0Q\u002B21w2i3XgBkqV4M045cEHI1bSv9NgNYsxmFzZYS/R43piHECAwEAAaBLMEkGCSqGSIb3DQEJDjE8MDowDgYDVR0PAQH/BAQDAgWgMB0GA1UdJQQWMBQGCCsGAQUFBwMBBggrBgEFBQcDAjAJBgNVHRMEAjAAMA0GCSqGSIb3DQEBCwUAA4IBAQBfnWk0/HvODymU25ZNDcb\u002B8RvTjT7IzAz2M0n920f11y/U3KVy3eE\u002B103Kl/NZGUzVRyQa4B14Z7cJrpo2HGdSjSTUq0CTEWZcUOZymn12bfgF9WDq2iXzea2aV\u002BbijMSD1C3wkFE0OyAGmWr9c\u002B3EOoj9GG0bDPwXDZ4xxhdfxtLkG98Q/dLVAHeLFwQDy0EfH/eebx2EsYkhnH/eNgtooAR6LZ8fYfYwY69P2\u002Bf/c9Yj8x4SJLsogHiDfm7EZ461rcSwntlP3tHM/z7TH1aBt1IhqJozvNN41FGs5vv8JXX3siC1yZjvvxT23g6Qsfj3pJK\u002BmjY7meXUIJ9Q/jYK", + "cancellation_requested": false, + "status": "inProgress", + "status_details": "Pending certificate created. Certificate request is in progress. This may take some time based on the issuer provider. Please check again later.", + "request_id": "39dd0f6f43294dcfadc78d6f8ff006aa" + } + }, + { + "RequestUri": "https://fakevault/certificates/518723441/pending?api-version=7.3", + "RequestMethod": "GET", + "RequestHeaders": { + "Accept": "application/json", + "Accept-Encoding": "gzip", + "Authorization": "Sanitized", + "User-Agent": "azsdk-go-azcertificates/v0.5.0 (go1.18; linux)" + }, + "RequestBody": null, + "StatusCode": 200, + "ResponseHeaders": { + "Cache-Control": "no-cache", + "Content-Length": "1268", + "Content-Type": "application/json; charset=utf-8", + "Date": "Wed, 29 Jun 2022 20:49:14 GMT", + "Expires": "-1", + "Pragma": "no-cache", + "Retry-After": "10", + "Strict-Transport-Security": "max-age=31536000;includeSubDomains", + "X-Content-Type-Options": "nosniff", + "x-ms-keyvault-network-info": "conn_type=Ipv4;addr=24.17.201.78;act_addr_fam=InterNetwork;", + "x-ms-keyvault-region": "eastus", + "x-ms-keyvault-service-version": "1.9.444.2", + "x-ms-request-id": "74516eed-1a2f-45f2-bb14-6220c2b91818" + }, + "ResponseBody": { + "id": "https://fakevault/certificates/518723441/pending", + "issuer": { + "name": "self" + }, + "csr": "MIICqDCCAZACAQAwGDEWMBQGA1UEAxMNRGVmYXVsdFBvbGljeTCCASIwDQYJKoZIhvcNAQEBBQADggEPADCCAQoCggEBAJ3SL2DrDQttCeWkOYQknFFmwzZF8TZQBuoDSUUdJNA9h4MB8cVn7Z0aTmyaztxln95S4rLFQZK4ggsSta7\u002BC9BEVCSt6EPQxARkCGbNVcxtzWMJjvfANeltdDQ5A3Yqz6NHO2wCSzUZlmQF6ARvgx054bg0Lu5OG/a5vKZzl/kF3TngFvshf7G2AQdhGQS98W61559hTXiG8iQ4kb0KPTIWl\u002BK\u002BM4quthk6GMbSVbNycvYvp6lZ3HPFzk31wWPaRtoTsMjwbi3Dw3fqdvJ1mnLq90xVmHv16ajvso0Q\u002B21w2i3XgBkqV4M045cEHI1bSv9NgNYsxmFzZYS/R43piHECAwEAAaBLMEkGCSqGSIb3DQEJDjE8MDowDgYDVR0PAQH/BAQDAgWgMB0GA1UdJQQWMBQGCCsGAQUFBwMBBggrBgEFBQcDAjAJBgNVHRMEAjAAMA0GCSqGSIb3DQEBCwUAA4IBAQBfnWk0/HvODymU25ZNDcb\u002B8RvTjT7IzAz2M0n920f11y/U3KVy3eE\u002B103Kl/NZGUzVRyQa4B14Z7cJrpo2HGdSjSTUq0CTEWZcUOZymn12bfgF9WDq2iXzea2aV\u002BbijMSD1C3wkFE0OyAGmWr9c\u002B3EOoj9GG0bDPwXDZ4xxhdfxtLkG98Q/dLVAHeLFwQDy0EfH/eebx2EsYkhnH/eNgtooAR6LZ8fYfYwY69P2\u002Bf/c9Yj8x4SJLsogHiDfm7EZ461rcSwntlP3tHM/z7TH1aBt1IhqJozvNN41FGs5vv8JXX3siC1yZjvvxT23g6Qsfj3pJK\u002BmjY7meXUIJ9Q/jYK", + "cancellation_requested": false, + "status": "inProgress", + "status_details": "Pending certificate created. Certificate request is in progress. This may take some time based on the issuer provider. Please check again later.", + "request_id": "39dd0f6f43294dcfadc78d6f8ff006aa" + } + }, + { + "RequestUri": "https://fakevault/certificates/518723441/pending?api-version=7.3", + "RequestMethod": "GET", + "RequestHeaders": { + "Accept": "application/json", + "Accept-Encoding": "gzip", + "Authorization": "Sanitized", + "User-Agent": "azsdk-go-azcertificates/v0.5.0 (go1.18; linux)" + }, + "RequestBody": null, + "StatusCode": 200, + "ResponseHeaders": { + "Cache-Control": "no-cache", + "Content-Length": "1155", + "Content-Type": "application/json; charset=utf-8", + "Date": "Wed, 29 Jun 2022 20:49:19 GMT", + "Expires": "-1", + "Pragma": "no-cache", + "Strict-Transport-Security": "max-age=31536000;includeSubDomains", + "X-Content-Type-Options": "nosniff", + "x-ms-keyvault-network-info": "conn_type=Ipv4;addr=24.17.201.78;act_addr_fam=InterNetwork;", + "x-ms-keyvault-region": "eastus", + "x-ms-keyvault-service-version": "1.9.444.2", + "x-ms-request-id": "3feceb2e-b025-4611-8f72-5374f1487867" + }, + "ResponseBody": { + "id": "https://fakevault/certificates/518723441/pending", + "issuer": { + "name": "self" + }, + "csr": "MIICqDCCAZACAQAwGDEWMBQGA1UEAxMNRGVmYXVsdFBvbGljeTCCASIwDQYJKoZIhvcNAQEBBQADggEPADCCAQoCggEBAJ3SL2DrDQttCeWkOYQknFFmwzZF8TZQBuoDSUUdJNA9h4MB8cVn7Z0aTmyaztxln95S4rLFQZK4ggsSta7\u002BC9BEVCSt6EPQxARkCGbNVcxtzWMJjvfANeltdDQ5A3Yqz6NHO2wCSzUZlmQF6ARvgx054bg0Lu5OG/a5vKZzl/kF3TngFvshf7G2AQdhGQS98W61559hTXiG8iQ4kb0KPTIWl\u002BK\u002BM4quthk6GMbSVbNycvYvp6lZ3HPFzk31wWPaRtoTsMjwbi3Dw3fqdvJ1mnLq90xVmHv16ajvso0Q\u002B21w2i3XgBkqV4M045cEHI1bSv9NgNYsxmFzZYS/R43piHECAwEAAaBLMEkGCSqGSIb3DQEJDjE8MDowDgYDVR0PAQH/BAQDAgWgMB0GA1UdJQQWMBQGCCsGAQUFBwMBBggrBgEFBQcDAjAJBgNVHRMEAjAAMA0GCSqGSIb3DQEBCwUAA4IBAQBfnWk0/HvODymU25ZNDcb\u002B8RvTjT7IzAz2M0n920f11y/U3KVy3eE\u002B103Kl/NZGUzVRyQa4B14Z7cJrpo2HGdSjSTUq0CTEWZcUOZymn12bfgF9WDq2iXzea2aV\u002BbijMSD1C3wkFE0OyAGmWr9c\u002B3EOoj9GG0bDPwXDZ4xxhdfxtLkG98Q/dLVAHeLFwQDy0EfH/eebx2EsYkhnH/eNgtooAR6LZ8fYfYwY69P2\u002Bf/c9Yj8x4SJLsogHiDfm7EZ461rcSwntlP3tHM/z7TH1aBt1IhqJozvNN41FGs5vv8JXX3siC1yZjvvxT23g6Qsfj3pJK\u002BmjY7meXUIJ9Q/jYK", + "cancellation_requested": false, + "status": "completed", + "target": "https://fakevault/certificates/518723441", + "request_id": "39dd0f6f43294dcfadc78d6f8ff006aa" + } + }, + { + "RequestUri": "https://fakevault/certificates/518723441/pending?api-version=7.3", + "RequestMethod": "GET", + "RequestHeaders": { + "Accept": "application/json", + "Accept-Encoding": "gzip", + "Authorization": "Sanitized", + "User-Agent": "azsdk-go-azcertificates/v0.5.0 (go1.18; linux)" + }, + "RequestBody": null, + "StatusCode": 200, + "ResponseHeaders": { + "Cache-Control": "no-cache", + "Content-Length": "1155", + "Content-Type": "application/json; charset=utf-8", + "Date": "Wed, 29 Jun 2022 20:49:24 GMT", + "Expires": "-1", + "Pragma": "no-cache", + "Strict-Transport-Security": "max-age=31536000;includeSubDomains", + "X-Content-Type-Options": "nosniff", + "x-ms-keyvault-network-info": "conn_type=Ipv4;addr=24.17.201.78;act_addr_fam=InterNetwork;", + "x-ms-keyvault-region": "eastus", + "x-ms-keyvault-service-version": "1.9.444.2", + "x-ms-request-id": "acd89d2d-f2d2-4811-afa0-d5d2f85ef3e4" + }, + "ResponseBody": { + "id": "https://fakevault/certificates/518723441/pending", + "issuer": { + "name": "self" + }, + "csr": "MIICqDCCAZACAQAwGDEWMBQGA1UEAxMNRGVmYXVsdFBvbGljeTCCASIwDQYJKoZIhvcNAQEBBQADggEPADCCAQoCggEBAJ3SL2DrDQttCeWkOYQknFFmwzZF8TZQBuoDSUUdJNA9h4MB8cVn7Z0aTmyaztxln95S4rLFQZK4ggsSta7\u002BC9BEVCSt6EPQxARkCGbNVcxtzWMJjvfANeltdDQ5A3Yqz6NHO2wCSzUZlmQF6ARvgx054bg0Lu5OG/a5vKZzl/kF3TngFvshf7G2AQdhGQS98W61559hTXiG8iQ4kb0KPTIWl\u002BK\u002BM4quthk6GMbSVbNycvYvp6lZ3HPFzk31wWPaRtoTsMjwbi3Dw3fqdvJ1mnLq90xVmHv16ajvso0Q\u002B21w2i3XgBkqV4M045cEHI1bSv9NgNYsxmFzZYS/R43piHECAwEAAaBLMEkGCSqGSIb3DQEJDjE8MDowDgYDVR0PAQH/BAQDAgWgMB0GA1UdJQQWMBQGCCsGAQUFBwMBBggrBgEFBQcDAjAJBgNVHRMEAjAAMA0GCSqGSIb3DQEBCwUAA4IBAQBfnWk0/HvODymU25ZNDcb\u002B8RvTjT7IzAz2M0n920f11y/U3KVy3eE\u002B103Kl/NZGUzVRyQa4B14Z7cJrpo2HGdSjSTUq0CTEWZcUOZymn12bfgF9WDq2iXzea2aV\u002BbijMSD1C3wkFE0OyAGmWr9c\u002B3EOoj9GG0bDPwXDZ4xxhdfxtLkG98Q/dLVAHeLFwQDy0EfH/eebx2EsYkhnH/eNgtooAR6LZ8fYfYwY69P2\u002Bf/c9Yj8x4SJLsogHiDfm7EZ461rcSwntlP3tHM/z7TH1aBt1IhqJozvNN41FGs5vv8JXX3siC1yZjvvxT23g6Qsfj3pJK\u002BmjY7meXUIJ9Q/jYK", + "cancellation_requested": false, + "status": "completed", + "target": "https://fakevault/certificates/518723441", + "request_id": "39dd0f6f43294dcfadc78d6f8ff006aa" + } + }, + { + "RequestUri": "https://fakevault/certificates/518723441/pending?api-version=7.3", + "RequestMethod": "GET", + "RequestHeaders": { + "Accept": "application/json", + "Accept-Encoding": "gzip", + "Authorization": "Sanitized", + "User-Agent": "azsdk-go-azcertificates/v0.5.0 (go1.18; linux)" + }, + "RequestBody": null, + "StatusCode": 200, + "ResponseHeaders": { + "Cache-Control": "no-cache", + "Content-Length": "1155", + "Content-Type": "application/json; charset=utf-8", + "Date": "Wed, 29 Jun 2022 20:49:30 GMT", + "Expires": "-1", + "Pragma": "no-cache", + "Strict-Transport-Security": "max-age=31536000;includeSubDomains", + "X-Content-Type-Options": "nosniff", + "x-ms-keyvault-network-info": "conn_type=Ipv4;addr=24.17.201.78;act_addr_fam=InterNetwork;", + "x-ms-keyvault-region": "eastus", + "x-ms-keyvault-service-version": "1.9.444.2", + "x-ms-request-id": "d06a0c70-d296-4f3a-bd8b-054e6a26eb96" + }, + "ResponseBody": { + "id": "https://fakevault/certificates/518723441/pending", + "issuer": { + "name": "self" + }, + "csr": "MIICqDCCAZACAQAwGDEWMBQGA1UEAxMNRGVmYXVsdFBvbGljeTCCASIwDQYJKoZIhvcNAQEBBQADggEPADCCAQoCggEBAJ3SL2DrDQttCeWkOYQknFFmwzZF8TZQBuoDSUUdJNA9h4MB8cVn7Z0aTmyaztxln95S4rLFQZK4ggsSta7\u002BC9BEVCSt6EPQxARkCGbNVcxtzWMJjvfANeltdDQ5A3Yqz6NHO2wCSzUZlmQF6ARvgx054bg0Lu5OG/a5vKZzl/kF3TngFvshf7G2AQdhGQS98W61559hTXiG8iQ4kb0KPTIWl\u002BK\u002BM4quthk6GMbSVbNycvYvp6lZ3HPFzk31wWPaRtoTsMjwbi3Dw3fqdvJ1mnLq90xVmHv16ajvso0Q\u002B21w2i3XgBkqV4M045cEHI1bSv9NgNYsxmFzZYS/R43piHECAwEAAaBLMEkGCSqGSIb3DQEJDjE8MDowDgYDVR0PAQH/BAQDAgWgMB0GA1UdJQQWMBQGCCsGAQUFBwMBBggrBgEFBQcDAjAJBgNVHRMEAjAAMA0GCSqGSIb3DQEBCwUAA4IBAQBfnWk0/HvODymU25ZNDcb\u002B8RvTjT7IzAz2M0n920f11y/U3KVy3eE\u002B103Kl/NZGUzVRyQa4B14Z7cJrpo2HGdSjSTUq0CTEWZcUOZymn12bfgF9WDq2iXzea2aV\u002BbijMSD1C3wkFE0OyAGmWr9c\u002B3EOoj9GG0bDPwXDZ4xxhdfxtLkG98Q/dLVAHeLFwQDy0EfH/eebx2EsYkhnH/eNgtooAR6LZ8fYfYwY69P2\u002Bf/c9Yj8x4SJLsogHiDfm7EZ461rcSwntlP3tHM/z7TH1aBt1IhqJozvNN41FGs5vv8JXX3siC1yZjvvxT23g6Qsfj3pJK\u002BmjY7meXUIJ9Q/jYK", + "cancellation_requested": false, + "status": "completed", + "target": "https://fakevault/certificates/518723441", + "request_id": "39dd0f6f43294dcfadc78d6f8ff006aa" + } + }, + { + "RequestUri": "https://fakevault/certificates/518723441/?api-version=7.3", + "RequestMethod": "GET", + "RequestHeaders": { + "Accept": "application/json", + "Accept-Encoding": "gzip", + "Authorization": "Sanitized", + "User-Agent": "azsdk-go-azcertificates/v0.5.0 (go1.18; linux)" + }, + "RequestBody": null, + "StatusCode": 200, + "ResponseHeaders": { + "Cache-Control": "no-cache", + "Content-Length": "2216", + "Content-Type": "application/json; charset=utf-8", + "Date": "Wed, 29 Jun 2022 20:49:30 GMT", + "Expires": "-1", + "Pragma": "no-cache", + "Strict-Transport-Security": "max-age=31536000;includeSubDomains", + "X-Content-Type-Options": "nosniff", + "x-ms-keyvault-network-info": "conn_type=Ipv4;addr=24.17.201.78;act_addr_fam=InterNetwork;", + "x-ms-keyvault-region": "eastus", + "x-ms-keyvault-service-version": "1.9.444.2", + "x-ms-request-id": "90ec33d8-c837-41dc-9dfe-7270d64990b5" + }, + "ResponseBody": { + "id": "https://fakevault/certificates/518723441/98c21b8d4f644c458116f9ebd830da61", + "kid": "https://fakevault/keys/518723441/98c21b8d4f644c458116f9ebd830da61", + "sid": "https://fakevault/secrets/518723441/98c21b8d4f644c458116f9ebd830da61", + "x5t": "gyYCbwurGyXzCwKCOCHlsYoJsp8", + "cer": "MIIDNjCCAh6gAwIBAgIQcBWn6JXXQBeuRi1MoicujTANBgkqhkiG9w0BAQsFADAYMRYwFAYDVQQDEw1EZWZhdWx0UG9saWN5MB4XDTIyMDYyOTIwMzkxNloXDTIzMDYyOTIwNDkxNlowGDEWMBQGA1UEAxMNRGVmYXVsdFBvbGljeTCCASIwDQYJKoZIhvcNAQEBBQADggEPADCCAQoCggEBAJ3SL2DrDQttCeWkOYQknFFmwzZF8TZQBuoDSUUdJNA9h4MB8cVn7Z0aTmyaztxln95S4rLFQZK4ggsSta7\u002BC9BEVCSt6EPQxARkCGbNVcxtzWMJjvfANeltdDQ5A3Yqz6NHO2wCSzUZlmQF6ARvgx054bg0Lu5OG/a5vKZzl/kF3TngFvshf7G2AQdhGQS98W61559hTXiG8iQ4kb0KPTIWl\u002BK\u002BM4quthk6GMbSVbNycvYvp6lZ3HPFzk31wWPaRtoTsMjwbi3Dw3fqdvJ1mnLq90xVmHv16ajvso0Q\u002B21w2i3XgBkqV4M045cEHI1bSv9NgNYsxmFzZYS/R43piHECAwEAAaN8MHowDgYDVR0PAQH/BAQDAgWgMAkGA1UdEwQCMAAwHQYDVR0lBBYwFAYIKwYBBQUHAwEGCCsGAQUFBwMCMB8GA1UdIwQYMBaAFISz9B5eQvVA4GU5t8FMzwzoxf4TMB0GA1UdDgQWBBSEs/QeXkL1QOBlObfBTM8M6MX\u002BEzANBgkqhkiG9w0BAQsFAAOCAQEAhJzugEY0dbL5W3S8fxYxFZk5SyE7BZjpocWhVO8AK\u002BtwkQDMSy\u002BLmtz4UNUPDgPLbTyHEDMm5fAObEw9XgzC9e8F7GNkshnayvcw0MgiBUY1I8wRMk9gYNE2aJ91X61OgLTmC0NYleEW0v6JKGUZZ2AwEu6IYCbaN0yzzx40bvAeTqjtUU4/AJEHb9RGpv1e3767Mqb/ORDyytoAm60aiRpoXifM\u002BZbR9Xbtuwr/r31eJOifF2\u002BGtDJtW8M/5EP99c3h6N\u002BQzK0LVSFWln0EwKG10oGr65aulewMg0hfzivhNASDylhReneBRSgM4NMs3HN2qTItYH3jJoPcCHFZ4Q==", + "attributes": { + "enabled": true, + "nbf": 1656535156, + "exp": 1688071756, + "created": 1656535757, + "updated": 1656535757, + "recoveryLevel": "CustomizedRecoverable\u002BPurgeable", + "recoverableDays": 7 + }, + "policy": { + "id": "https://fakevault/certificates/518723441/policy", + "key_props": { + "exportable": true, + "kty": "RSA", + "key_size": 2048, + "reuse_key": false + }, + "secret_props": { + "contentType": "application/x-pkcs12" + }, + "x509_props": { + "subject": "CN=DefaultPolicy", + "ekus": [ + "1.3.6.1.5.5.7.3.1", + "1.3.6.1.5.5.7.3.2" + ], + "key_usage": [ + "digitalSignature", + "keyEncipherment" + ], + "validity_months": 12, + "basic_constraints": { + "ca": false + } + }, + "lifetime_actions": [ + { + "trigger": { + "lifetime_percentage": 80 + }, + "action": { + "action_type": "AutoRenew" + } + } + ], + "issuer": { + "name": "self" + }, + "attributes": { + "enabled": true, + "created": 1656535748, + "updated": 1656535748 + } + }, + "pending": { + "id": "https://fakevault/certificates/518723441/pending" + } + } + }, + { + "RequestUri": "https://fakevault/certificates/518723441/?api-version=7.3", + "RequestMethod": "PATCH", + "RequestHeaders": { + "Accept": "application/json", + "Accept-Encoding": "gzip", + "Authorization": "Sanitized", + "Content-Length": "33", + "Content-Type": "application/json", + "User-Agent": "azsdk-go-azcertificates/v0.5.0 (go1.18; linux)" + }, + "RequestBody": { + "attributes": { + "exp": 1893459661 + } + }, + "StatusCode": 200, + "ResponseHeaders": { + "Cache-Control": "no-cache", + "Content-Length": "2216", + "Content-Type": "application/json; charset=utf-8", + "Date": "Wed, 29 Jun 2022 20:49:30 GMT", + "Expires": "-1", + "Pragma": "no-cache", + "Strict-Transport-Security": "max-age=31536000;includeSubDomains", + "X-Content-Type-Options": "nosniff", + "x-ms-keyvault-network-info": "conn_type=Ipv4;addr=24.17.201.78;act_addr_fam=InterNetwork;", + "x-ms-keyvault-region": "eastus", + "x-ms-keyvault-service-version": "1.9.444.2", + "x-ms-request-id": "5934a169-436a-4505-bbdf-48e055380b5c" + }, + "ResponseBody": { + "id": "https://fakevault/certificates/518723441/98c21b8d4f644c458116f9ebd830da61", + "kid": "https://fakevault/keys/518723441/98c21b8d4f644c458116f9ebd830da61", + "sid": "https://fakevault/secrets/518723441/98c21b8d4f644c458116f9ebd830da61", + "x5t": "gyYCbwurGyXzCwKCOCHlsYoJsp8", + "cer": "MIIDNjCCAh6gAwIBAgIQcBWn6JXXQBeuRi1MoicujTANBgkqhkiG9w0BAQsFADAYMRYwFAYDVQQDEw1EZWZhdWx0UG9saWN5MB4XDTIyMDYyOTIwMzkxNloXDTIzMDYyOTIwNDkxNlowGDEWMBQGA1UEAxMNRGVmYXVsdFBvbGljeTCCASIwDQYJKoZIhvcNAQEBBQADggEPADCCAQoCggEBAJ3SL2DrDQttCeWkOYQknFFmwzZF8TZQBuoDSUUdJNA9h4MB8cVn7Z0aTmyaztxln95S4rLFQZK4ggsSta7\u002BC9BEVCSt6EPQxARkCGbNVcxtzWMJjvfANeltdDQ5A3Yqz6NHO2wCSzUZlmQF6ARvgx054bg0Lu5OG/a5vKZzl/kF3TngFvshf7G2AQdhGQS98W61559hTXiG8iQ4kb0KPTIWl\u002BK\u002BM4quthk6GMbSVbNycvYvp6lZ3HPFzk31wWPaRtoTsMjwbi3Dw3fqdvJ1mnLq90xVmHv16ajvso0Q\u002B21w2i3XgBkqV4M045cEHI1bSv9NgNYsxmFzZYS/R43piHECAwEAAaN8MHowDgYDVR0PAQH/BAQDAgWgMAkGA1UdEwQCMAAwHQYDVR0lBBYwFAYIKwYBBQUHAwEGCCsGAQUFBwMCMB8GA1UdIwQYMBaAFISz9B5eQvVA4GU5t8FMzwzoxf4TMB0GA1UdDgQWBBSEs/QeXkL1QOBlObfBTM8M6MX\u002BEzANBgkqhkiG9w0BAQsFAAOCAQEAhJzugEY0dbL5W3S8fxYxFZk5SyE7BZjpocWhVO8AK\u002BtwkQDMSy\u002BLmtz4UNUPDgPLbTyHEDMm5fAObEw9XgzC9e8F7GNkshnayvcw0MgiBUY1I8wRMk9gYNE2aJ91X61OgLTmC0NYleEW0v6JKGUZZ2AwEu6IYCbaN0yzzx40bvAeTqjtUU4/AJEHb9RGpv1e3767Mqb/ORDyytoAm60aiRpoXifM\u002BZbR9Xbtuwr/r31eJOifF2\u002BGtDJtW8M/5EP99c3h6N\u002BQzK0LVSFWln0EwKG10oGr65aulewMg0hfzivhNASDylhReneBRSgM4NMs3HN2qTItYH3jJoPcCHFZ4Q==", + "attributes": { + "enabled": true, + "nbf": 1656535156, + "exp": 1688071756, + "created": 1656535757, + "updated": 1656535770, + "recoveryLevel": "CustomizedRecoverable\u002BPurgeable", + "recoverableDays": 7 + }, + "policy": { + "id": "https://fakevault/certificates/518723441/policy", + "key_props": { + "exportable": true, + "kty": "RSA", + "key_size": 2048, + "reuse_key": false + }, + "secret_props": { + "contentType": "application/x-pkcs12" + }, + "x509_props": { + "subject": "CN=DefaultPolicy", + "ekus": [ + "1.3.6.1.5.5.7.3.1", + "1.3.6.1.5.5.7.3.2" + ], + "key_usage": [ + "digitalSignature", + "keyEncipherment" + ], + "validity_months": 12, + "basic_constraints": { + "ca": false + } + }, + "lifetime_actions": [ + { + "trigger": { + "lifetime_percentage": 80 + }, + "action": { + "action_type": "AutoRenew" + } + } + ], + "issuer": { + "name": "self" + }, + "attributes": { + "enabled": true, + "created": 1656535748, + "updated": 1656535748 + } + }, + "pending": { + "id": "https://fakevault/certificates/518723441/pending" + } + } + }, + { + "RequestUri": "https://fakevault/certificates/518723441?api-version=7.3", + "RequestMethod": "DELETE", + "RequestHeaders": { + "Accept": "application/json", + "Accept-Encoding": "gzip", + "Authorization": "Sanitized", + "User-Agent": "azsdk-go-azcertificates/v0.5.0 (go1.18; linux)" + }, + "RequestBody": null, + "StatusCode": 200, + "ResponseHeaders": { + "Cache-Control": "no-cache", + "Content-Length": "2336", + "Content-Type": "application/json; charset=utf-8", + "Date": "Wed, 29 Jun 2022 20:49:30 GMT", + "Expires": "-1", + "Pragma": "no-cache", + "Strict-Transport-Security": "max-age=31536000;includeSubDomains", + "X-Content-Type-Options": "nosniff", + "x-ms-keyvault-network-info": "conn_type=Ipv4;addr=24.17.201.78;act_addr_fam=InterNetwork;", + "x-ms-keyvault-region": "eastus", + "x-ms-keyvault-service-version": "1.9.444.2", + "x-ms-request-id": "4ad45e8f-c2b3-4b59-9043-185387229849" + }, + "ResponseBody": { + "recoveryId": "https://fakevault/deletedcertificates/518723441", + "deletedDate": 1656535771, + "scheduledPurgeDate": 1657140571, + "id": "https://fakevault/certificates/518723441/98c21b8d4f644c458116f9ebd830da61", + "kid": "https://fakevault/keys/518723441/98c21b8d4f644c458116f9ebd830da61", + "sid": "https://fakevault/secrets/518723441/98c21b8d4f644c458116f9ebd830da61", + "x5t": "gyYCbwurGyXzCwKCOCHlsYoJsp8", + "cer": "MIIDNjCCAh6gAwIBAgIQcBWn6JXXQBeuRi1MoicujTANBgkqhkiG9w0BAQsFADAYMRYwFAYDVQQDEw1EZWZhdWx0UG9saWN5MB4XDTIyMDYyOTIwMzkxNloXDTIzMDYyOTIwNDkxNlowGDEWMBQGA1UEAxMNRGVmYXVsdFBvbGljeTCCASIwDQYJKoZIhvcNAQEBBQADggEPADCCAQoCggEBAJ3SL2DrDQttCeWkOYQknFFmwzZF8TZQBuoDSUUdJNA9h4MB8cVn7Z0aTmyaztxln95S4rLFQZK4ggsSta7\u002BC9BEVCSt6EPQxARkCGbNVcxtzWMJjvfANeltdDQ5A3Yqz6NHO2wCSzUZlmQF6ARvgx054bg0Lu5OG/a5vKZzl/kF3TngFvshf7G2AQdhGQS98W61559hTXiG8iQ4kb0KPTIWl\u002BK\u002BM4quthk6GMbSVbNycvYvp6lZ3HPFzk31wWPaRtoTsMjwbi3Dw3fqdvJ1mnLq90xVmHv16ajvso0Q\u002B21w2i3XgBkqV4M045cEHI1bSv9NgNYsxmFzZYS/R43piHECAwEAAaN8MHowDgYDVR0PAQH/BAQDAgWgMAkGA1UdEwQCMAAwHQYDVR0lBBYwFAYIKwYBBQUHAwEGCCsGAQUFBwMCMB8GA1UdIwQYMBaAFISz9B5eQvVA4GU5t8FMzwzoxf4TMB0GA1UdDgQWBBSEs/QeXkL1QOBlObfBTM8M6MX\u002BEzANBgkqhkiG9w0BAQsFAAOCAQEAhJzugEY0dbL5W3S8fxYxFZk5SyE7BZjpocWhVO8AK\u002BtwkQDMSy\u002BLmtz4UNUPDgPLbTyHEDMm5fAObEw9XgzC9e8F7GNkshnayvcw0MgiBUY1I8wRMk9gYNE2aJ91X61OgLTmC0NYleEW0v6JKGUZZ2AwEu6IYCbaN0yzzx40bvAeTqjtUU4/AJEHb9RGpv1e3767Mqb/ORDyytoAm60aiRpoXifM\u002BZbR9Xbtuwr/r31eJOifF2\u002BGtDJtW8M/5EP99c3h6N\u002BQzK0LVSFWln0EwKG10oGr65aulewMg0hfzivhNASDylhReneBRSgM4NMs3HN2qTItYH3jJoPcCHFZ4Q==", + "attributes": { + "enabled": true, + "nbf": 1656535156, + "exp": 1688071756, + "created": 1656535757, + "updated": 1656535770, + "recoveryLevel": "CustomizedRecoverable\u002BPurgeable", + "recoverableDays": 7 + }, + "policy": { + "id": "https://fakevault/certificates/518723441/policy", + "key_props": { + "exportable": true, + "kty": "RSA", + "key_size": 2048, + "reuse_key": false + }, + "secret_props": { + "contentType": "application/x-pkcs12" + }, + "x509_props": { + "subject": "CN=DefaultPolicy", + "ekus": [ + "1.3.6.1.5.5.7.3.1", + "1.3.6.1.5.5.7.3.2" + ], + "key_usage": [ + "digitalSignature", + "keyEncipherment" + ], + "validity_months": 12, + "basic_constraints": { + "ca": false + } + }, + "lifetime_actions": [ + { + "trigger": { + "lifetime_percentage": 80 + }, + "action": { + "action_type": "AutoRenew" + } + } + ], + "issuer": { + "name": "self" + }, + "attributes": { + "enabled": true, + "created": 1656535748, + "updated": 1656535748 + } + }, + "pending": { + "id": "https://fakevault/certificates/518723441/pending" + } + } + }, + { + "RequestUri": "https://fakevault/deletedcertificates/518723441?api-version=7.3", + "RequestMethod": "GET", + "RequestHeaders": { + "Accept": "application/json", + "Accept-Encoding": "gzip", + "Authorization": "Sanitized", + "User-Agent": "azsdk-go-azcertificates/v0.5.0 (go1.18; linux)" + }, + "RequestBody": null, + "StatusCode": 404, + "ResponseHeaders": { + "Cache-Control": "no-cache", + "Content-Length": "93", + "Content-Type": "application/json; charset=utf-8", + "Date": "Wed, 29 Jun 2022 20:49:30 GMT", + "Expires": "-1", + "Pragma": "no-cache", + "Strict-Transport-Security": "max-age=31536000;includeSubDomains", + "X-Content-Type-Options": "nosniff", + "x-ms-keyvault-network-info": "conn_type=Ipv4;addr=24.17.201.78;act_addr_fam=InterNetwork;", + "x-ms-keyvault-region": "eastus", + "x-ms-keyvault-service-version": "1.9.444.2", + "x-ms-request-id": "219b2d73-8198-4f0e-8ae7-2ab5f0ab0a03" + }, + "ResponseBody": { + "error": { + "code": "CertificateNotFound", + "message": "Deleted Certificate not found: 518723441" + } + } + }, + { + "RequestUri": "https://fakevault/deletedcertificates/518723441?api-version=7.3", + "RequestMethod": "GET", + "RequestHeaders": { + "Accept": "application/json", + "Accept-Encoding": "gzip", + "Authorization": "Sanitized", + "User-Agent": "azsdk-go-azcertificates/v0.5.0 (go1.18; linux)" + }, + "RequestBody": null, + "StatusCode": 404, + "ResponseHeaders": { + "Cache-Control": "no-cache", + "Content-Length": "93", + "Content-Type": "application/json; charset=utf-8", + "Date": "Wed, 29 Jun 2022 20:49:40 GMT", + "Expires": "-1", + "Pragma": "no-cache", + "Strict-Transport-Security": "max-age=31536000;includeSubDomains", + "X-Content-Type-Options": "nosniff", + "x-ms-keyvault-network-info": "conn_type=Ipv4;addr=24.17.201.78;act_addr_fam=InterNetwork;", + "x-ms-keyvault-region": "eastus", + "x-ms-keyvault-service-version": "1.9.444.2", + "x-ms-request-id": "8426897d-7a1d-4ac0-839e-307cc376587b" + }, + "ResponseBody": { + "error": { + "code": "CertificateNotFound", + "message": "Deleted Certificate not found: 518723441" + } + } + }, + { + "RequestUri": "https://fakevault/deletedcertificates/518723441?api-version=7.3", + "RequestMethod": "GET", + "RequestHeaders": { + "Accept": "application/json", + "Accept-Encoding": "gzip", + "Authorization": "Sanitized", + "User-Agent": "azsdk-go-azcertificates/v0.5.0 (go1.18; linux)" + }, + "RequestBody": null, + "StatusCode": 404, + "ResponseHeaders": { + "Cache-Control": "no-cache", + "Content-Length": "93", + "Content-Type": "application/json; charset=utf-8", + "Date": "Wed, 29 Jun 2022 20:49:50 GMT", + "Expires": "-1", + "Pragma": "no-cache", + "Strict-Transport-Security": "max-age=31536000;includeSubDomains", + "X-Content-Type-Options": "nosniff", + "x-ms-keyvault-network-info": "conn_type=Ipv4;addr=24.17.201.78;act_addr_fam=InterNetwork;", + "x-ms-keyvault-region": "eastus", + "x-ms-keyvault-service-version": "1.9.444.2", + "x-ms-request-id": "726b4141-5307-4c3b-bb7e-6009ad567a3c" + }, + "ResponseBody": { + "error": { + "code": "CertificateNotFound", + "message": "Deleted Certificate not found: 518723441" + } + } + }, + { + "RequestUri": "https://fakevault/deletedcertificates/518723441?api-version=7.3", + "RequestMethod": "GET", + "RequestHeaders": { + "Accept": "application/json", + "Accept-Encoding": "gzip", + "Authorization": "Sanitized", + "User-Agent": "azsdk-go-azcertificates/v0.5.0 (go1.18; linux)" + }, + "RequestBody": null, + "StatusCode": 404, + "ResponseHeaders": { + "Cache-Control": "no-cache", + "Content-Length": "93", + "Content-Type": "application/json; charset=utf-8", + "Date": "Wed, 29 Jun 2022 20:50:01 GMT", + "Expires": "-1", + "Pragma": "no-cache", + "Strict-Transport-Security": "max-age=31536000;includeSubDomains", + "X-Content-Type-Options": "nosniff", + "x-ms-keyvault-network-info": "conn_type=Ipv4;addr=24.17.201.78;act_addr_fam=InterNetwork;", + "x-ms-keyvault-region": "eastus", + "x-ms-keyvault-service-version": "1.9.444.2", + "x-ms-request-id": "ef239ea9-e2eb-4a21-812b-95eeb120adc3" + }, + "ResponseBody": { + "error": { + "code": "CertificateNotFound", + "message": "Deleted Certificate not found: 518723441" + } + } + }, + { + "RequestUri": "https://fakevault/deletedcertificates/518723441?api-version=7.3", + "RequestMethod": "GET", + "RequestHeaders": { + "Accept": "application/json", + "Accept-Encoding": "gzip", + "Authorization": "Sanitized", + "User-Agent": "azsdk-go-azcertificates/v0.5.0 (go1.18; linux)" + }, + "RequestBody": null, + "StatusCode": 200, + "ResponseHeaders": { + "Cache-Control": "no-cache", + "Content-Length": "2336", + "Content-Type": "application/json; charset=utf-8", + "Date": "Wed, 29 Jun 2022 20:50:10 GMT", + "Expires": "-1", + "Pragma": "no-cache", + "Strict-Transport-Security": "max-age=31536000;includeSubDomains", + "X-Content-Type-Options": "nosniff", + "x-ms-keyvault-network-info": "conn_type=Ipv4;addr=24.17.201.78;act_addr_fam=InterNetwork;", + "x-ms-keyvault-region": "eastus", + "x-ms-keyvault-service-version": "1.9.444.2", + "x-ms-request-id": "25ca3aa3-c5fa-42fc-862b-78d119f1d5ea" + }, + "ResponseBody": { + "recoveryId": "https://fakevault/deletedcertificates/518723441", + "deletedDate": 1656535771, + "scheduledPurgeDate": 1657140571, + "id": "https://fakevault/certificates/518723441/98c21b8d4f644c458116f9ebd830da61", + "kid": "https://fakevault/keys/518723441/98c21b8d4f644c458116f9ebd830da61", + "sid": "https://fakevault/secrets/518723441/98c21b8d4f644c458116f9ebd830da61", + "x5t": "gyYCbwurGyXzCwKCOCHlsYoJsp8", + "cer": "MIIDNjCCAh6gAwIBAgIQcBWn6JXXQBeuRi1MoicujTANBgkqhkiG9w0BAQsFADAYMRYwFAYDVQQDEw1EZWZhdWx0UG9saWN5MB4XDTIyMDYyOTIwMzkxNloXDTIzMDYyOTIwNDkxNlowGDEWMBQGA1UEAxMNRGVmYXVsdFBvbGljeTCCASIwDQYJKoZIhvcNAQEBBQADggEPADCCAQoCggEBAJ3SL2DrDQttCeWkOYQknFFmwzZF8TZQBuoDSUUdJNA9h4MB8cVn7Z0aTmyaztxln95S4rLFQZK4ggsSta7\u002BC9BEVCSt6EPQxARkCGbNVcxtzWMJjvfANeltdDQ5A3Yqz6NHO2wCSzUZlmQF6ARvgx054bg0Lu5OG/a5vKZzl/kF3TngFvshf7G2AQdhGQS98W61559hTXiG8iQ4kb0KPTIWl\u002BK\u002BM4quthk6GMbSVbNycvYvp6lZ3HPFzk31wWPaRtoTsMjwbi3Dw3fqdvJ1mnLq90xVmHv16ajvso0Q\u002B21w2i3XgBkqV4M045cEHI1bSv9NgNYsxmFzZYS/R43piHECAwEAAaN8MHowDgYDVR0PAQH/BAQDAgWgMAkGA1UdEwQCMAAwHQYDVR0lBBYwFAYIKwYBBQUHAwEGCCsGAQUFBwMCMB8GA1UdIwQYMBaAFISz9B5eQvVA4GU5t8FMzwzoxf4TMB0GA1UdDgQWBBSEs/QeXkL1QOBlObfBTM8M6MX\u002BEzANBgkqhkiG9w0BAQsFAAOCAQEAhJzugEY0dbL5W3S8fxYxFZk5SyE7BZjpocWhVO8AK\u002BtwkQDMSy\u002BLmtz4UNUPDgPLbTyHEDMm5fAObEw9XgzC9e8F7GNkshnayvcw0MgiBUY1I8wRMk9gYNE2aJ91X61OgLTmC0NYleEW0v6JKGUZZ2AwEu6IYCbaN0yzzx40bvAeTqjtUU4/AJEHb9RGpv1e3767Mqb/ORDyytoAm60aiRpoXifM\u002BZbR9Xbtuwr/r31eJOifF2\u002BGtDJtW8M/5EP99c3h6N\u002BQzK0LVSFWln0EwKG10oGr65aulewMg0hfzivhNASDylhReneBRSgM4NMs3HN2qTItYH3jJoPcCHFZ4Q==", + "attributes": { + "enabled": true, + "nbf": 1656535156, + "exp": 1688071756, + "created": 1656535757, + "updated": 1656535770, + "recoveryLevel": "CustomizedRecoverable\u002BPurgeable", + "recoverableDays": 7 + }, + "policy": { + "id": "https://fakevault/certificates/518723441/policy", + "key_props": { + "exportable": true, + "kty": "RSA", + "key_size": 2048, + "reuse_key": false + }, + "secret_props": { + "contentType": "application/x-pkcs12" + }, + "x509_props": { + "subject": "CN=DefaultPolicy", + "ekus": [ + "1.3.6.1.5.5.7.3.1", + "1.3.6.1.5.5.7.3.2" + ], + "key_usage": [ + "digitalSignature", + "keyEncipherment" + ], + "validity_months": 12, + "basic_constraints": { + "ca": false + } + }, + "lifetime_actions": [ + { + "trigger": { + "lifetime_percentage": 80 + }, + "action": { + "action_type": "AutoRenew" + } + } + ], + "issuer": { + "name": "self" + }, + "attributes": { + "enabled": true, + "created": 1656535748, + "updated": 1656535748 + } + }, + "pending": { + "id": "https://fakevault/certificates/518723441/pending" + } + } + }, + { + "RequestUri": "https://fakevault/deletedcertificates/518723441?api-version=7.3", + "RequestMethod": "DELETE", + "RequestHeaders": { + "Accept": "application/json", + "Accept-Encoding": "gzip", + "Authorization": "Sanitized", + "User-Agent": "azsdk-go-azcertificates/v0.5.0 (go1.18; linux)" + }, + "RequestBody": null, + "StatusCode": 204, + "ResponseHeaders": { + "Cache-Control": "no-cache", + "Date": "Wed, 29 Jun 2022 20:50:11 GMT", + "Expires": "-1", + "Pragma": "no-cache", + "Strict-Transport-Security": "max-age=31536000;includeSubDomains", + "X-Content-Type-Options": "nosniff", + "x-ms-keyvault-network-info": "conn_type=Ipv4;addr=24.17.201.78;act_addr_fam=InterNetwork;", + "x-ms-keyvault-region": "eastus", + "x-ms-keyvault-service-version": "1.9.444.2", + "x-ms-request-id": "359b24ce-f80a-4d0f-9f09-44efc6e7b6db" + }, + "ResponseBody": null + } + ], + "Variables": {} +} diff --git a/sdk/keyvault/azcertificates/testdata/recordings/TestCRUDOperations.json b/sdk/keyvault/azcertificates/testdata/recordings/TestCRUDOperations.json deleted file mode 100644 index ee052ca8261f..000000000000 --- a/sdk/keyvault/azcertificates/testdata/recordings/TestCRUDOperations.json +++ /dev/null @@ -1,771 +0,0 @@ -{ - "Entries": [ - { - "RequestUri": "https://fakekvurl.vault.azure.net/certificates/cert2501394451/create?api-version=7.3", - "RequestMethod": "POST", - "RequestHeaders": { - "Accept": "application/json", - "Accept-Encoding": "gzip", - "Content-Length": "0", - "User-Agent": "azsdk-go-azcertificates/v0.5.0 (go1.18; linux)" - }, - "RequestBody": null, - "StatusCode": 401, - "ResponseHeaders": { - "Cache-Control": "no-cache", - "Content-Length": "97", - "Content-Type": "application/json; charset=utf-8", - "Date": "Thu, 02 Jun 2022 23:19:54 GMT", - "Expires": "-1", - "Pragma": "no-cache", - "Strict-Transport-Security": "max-age=31536000;includeSubDomains", - "WWW-Authenticate": "Bearer authorization=\u0022https://login.windows.net/72f988bf-86f1-41af-91ab-2d7cd011db47\u0022, resource=\u0022https://vault.azure.net\u0022", - "X-Content-Type-Options": "nosniff", - "x-ms-keyvault-network-info": "conn_type=Ipv4;addr=24.17.201.78;act_addr_fam=InterNetwork;", - "x-ms-keyvault-region": "westus2", - "x-ms-keyvault-service-version": "1.9.422.1", - "x-ms-request-id": "25e3feb8-a7eb-4d2b-be5d-32a0627b83dc" - }, - "ResponseBody": { - "error": { - "code": "Unauthorized", - "message": "AKV10000: Request is missing a Bearer or PoP token." - } - } - }, - { - "RequestUri": "https://fakekvurl.vault.azure.net/certificates/cert2501394451/create?api-version=7.3", - "RequestMethod": "POST", - "RequestHeaders": { - "Accept": "application/json", - "Accept-Encoding": "gzip", - "Authorization": "Sanitized", - "Content-Length": "497", - "Content-Type": "application/json", - "User-Agent": "azsdk-go-azcertificates/v0.5.0 (go1.18; linux)" - }, - "RequestBody": { - "attributes": {}, - "policy": { - "issuer": { - "cert_transparency": false, - "name": "Self" - }, - "key_props": { - "exportable": true, - "key_size": 2048, - "kty": "RSA", - "reuse_key": true - }, - "lifetime_actions": [ - { - "action": { - "action_type": "EmailContacts" - }, - "trigger": { - "lifetime_percentage": 98 - } - } - ], - "secret_props": { - "contentType": "application/x-pkcs12" - }, - "x509_props": { - "ekus": [ - "1.3.6.1.5.5.7.3.1", - "1.3.6.1.5.5.7.3.2" - ], - "key_usage": [ - "decipherOnly" - ], - "sans": { - "dns_names": [ - "sdk.azure-int.net" - ] - }, - "subject": "CN=DefaultPolicy", - "validity_months": 12 - } - } - }, - "StatusCode": 202, - "ResponseHeaders": { - "Cache-Control": "no-cache", - "Content-Length": "1333", - "Content-Type": "application/json; charset=utf-8", - "Date": "Thu, 02 Jun 2022 23:19:58 GMT", - "Expires": "-1", - "Location": "https://fakekvurl.vault.azure.net/certificates/cert2501394451/pending?api-version=7.3\u0026request_id=e2593a2b01da4829adc38934b813a743", - "Pragma": "no-cache", - "Retry-After": "10", - "Strict-Transport-Security": "max-age=31536000;includeSubDomains", - "X-Content-Type-Options": "nosniff", - "x-ms-keyvault-network-info": "conn_type=Ipv4;addr=24.17.201.78;act_addr_fam=InterNetwork;", - "x-ms-keyvault-region": "westus2", - "x-ms-keyvault-service-version": "1.9.422.1", - "x-ms-request-id": "5c93d085-daa1-4b85-bdb4-bbef218c8fd6" - }, - "ResponseBody": { - "id": "https://fakekvurl.vault.azure.net/certificates/cert2501394451/pending", - "issuer": { - "name": "Self" - }, - "csr": "MIICxzCCAa8CAQAwGDEWMBQGA1UEAxMNRGVmYXVsdFBvbGljeTCCASIwDQYJKoZIhvcNAQEBBQADggEPADCCAQoCggEBAKbYACy0A1nuV1g7XYQRmmZVyiXWxC0ljNsp8YFg\u002BNCwYlrwN3GROTnj\u002BYQ92ocGH1h\u002BncxiIoALEB\u002BZ5dNyNl5Ufr6GRNFG0yDjBJdz3n9XTcEZ/2t2erp7eiVHVl9Uv0FC\u002BqazheSo233el/JWRQsBuZpd6fkXkvcKBwvH2lkHU/WoqqpIlO5ToVotm97EoVBuhG35PymbHDnsemZeC9YkupCCGZ7bzWzYmsKMKHfRZCaR\u002BaV8uIzp7pXm7Qu7QlMB/Hld4aq9aTuKeOcoczjRGZXfaqkoRyLu4do\u002BP8h9XBYbGpMkvWIq7EyfGzk09XX4iKn8R76iG0G8B41JTeUCAwEAAaBqMGgGCSqGSIb3DQEJDjFbMFkwDwYDVR0PAQH/BAUDAwcAgDAdBgNVHSUEFjAUBggrBgEFBQcDAQYIKwYBBQUHAwIwHAYDVR0RBBUwE4IRc2RrLmF6dXJlLWludC5uZXQwCQYDVR0TBAIwADANBgkqhkiG9w0BAQsFAAOCAQEARQZGkjWfF2GzY4QL\u002BwjnI9HO02UMbWsFBofxNGcokpzq1E/eNdLrer9WfWy5aV6B6RdQ1r7iRFZiuvW5vhxL9WTka\u002BTsdDXavw8Q/sNIy6SIMVXB/rS13gMAsIhEvIfQzMabDZKrAHmMVVWMWS7MJPzMtW8/b5Yu7/0e5GNz5U3OAd0jEEjyA6mv1NkGoaeirAuTdjVA\u002BGcOD8kthxM9jSWi\u002BOAlQB5k402aIYfSG7fseIQaSY/F8F4C\u002B9\u002BF88itEifgWl4n2gZeS7cPzv9eWcrs5ulOhofniw\u002BqY1L1AohWf4Elplv6EJyXzJiwRoJu4/wptQVFhYYk8ZAnXy3R0A==", - "cancellation_requested": false, - "status": "inProgress", - "status_details": "Pending certificate created. Certificate request is in progress. This may take some time based on the issuer provider. Please check again later.", - "request_id": "e2593a2b01da4829adc38934b813a743" - } - }, - { - "RequestUri": "https://fakekvurl.vault.azure.net/certificates/cert2501394451/pending?api-version=7.3\u0026request_id=e2593a2b01da4829adc38934b813a743", - "RequestMethod": "GET", - "RequestHeaders": { - "Accept-Encoding": "gzip", - "Authorization": "Sanitized", - "User-Agent": "azsdk-go-azcertificates/v0.5.0 (go1.18; linux)" - }, - "RequestBody": null, - "StatusCode": 200, - "ResponseHeaders": { - "Cache-Control": "no-cache", - "Content-Length": "1333", - "Content-Type": "application/json; charset=utf-8", - "Date": "Thu, 02 Jun 2022 23:20:08 GMT", - "Expires": "-1", - "Pragma": "no-cache", - "Retry-After": "10", - "Strict-Transport-Security": "max-age=31536000;includeSubDomains", - "X-Content-Type-Options": "nosniff", - "x-ms-keyvault-network-info": "conn_type=Ipv4;addr=24.17.201.78;act_addr_fam=InterNetwork;", - "x-ms-keyvault-region": "westus2", - "x-ms-keyvault-service-version": "1.9.422.1", - "x-ms-request-id": "90ab9771-13a4-47df-9e44-97813271b797" - }, - "ResponseBody": { - "id": "https://fakekvurl.vault.azure.net/certificates/cert2501394451/pending", - "issuer": { - "name": "Self" - }, - "csr": "MIICxzCCAa8CAQAwGDEWMBQGA1UEAxMNRGVmYXVsdFBvbGljeTCCASIwDQYJKoZIhvcNAQEBBQADggEPADCCAQoCggEBAKbYACy0A1nuV1g7XYQRmmZVyiXWxC0ljNsp8YFg\u002BNCwYlrwN3GROTnj\u002BYQ92ocGH1h\u002BncxiIoALEB\u002BZ5dNyNl5Ufr6GRNFG0yDjBJdz3n9XTcEZ/2t2erp7eiVHVl9Uv0FC\u002BqazheSo233el/JWRQsBuZpd6fkXkvcKBwvH2lkHU/WoqqpIlO5ToVotm97EoVBuhG35PymbHDnsemZeC9YkupCCGZ7bzWzYmsKMKHfRZCaR\u002BaV8uIzp7pXm7Qu7QlMB/Hld4aq9aTuKeOcoczjRGZXfaqkoRyLu4do\u002BP8h9XBYbGpMkvWIq7EyfGzk09XX4iKn8R76iG0G8B41JTeUCAwEAAaBqMGgGCSqGSIb3DQEJDjFbMFkwDwYDVR0PAQH/BAUDAwcAgDAdBgNVHSUEFjAUBggrBgEFBQcDAQYIKwYBBQUHAwIwHAYDVR0RBBUwE4IRc2RrLmF6dXJlLWludC5uZXQwCQYDVR0TBAIwADANBgkqhkiG9w0BAQsFAAOCAQEARQZGkjWfF2GzY4QL\u002BwjnI9HO02UMbWsFBofxNGcokpzq1E/eNdLrer9WfWy5aV6B6RdQ1r7iRFZiuvW5vhxL9WTka\u002BTsdDXavw8Q/sNIy6SIMVXB/rS13gMAsIhEvIfQzMabDZKrAHmMVVWMWS7MJPzMtW8/b5Yu7/0e5GNz5U3OAd0jEEjyA6mv1NkGoaeirAuTdjVA\u002BGcOD8kthxM9jSWi\u002BOAlQB5k402aIYfSG7fseIQaSY/F8F4C\u002B9\u002BF88itEifgWl4n2gZeS7cPzv9eWcrs5ulOhofniw\u002BqY1L1AohWf4Elplv6EJyXzJiwRoJu4/wptQVFhYYk8ZAnXy3R0A==", - "cancellation_requested": false, - "status": "inProgress", - "status_details": "Pending certificate created. Certificate request is in progress. This may take some time based on the issuer provider. Please check again later.", - "request_id": "e2593a2b01da4829adc38934b813a743" - } - }, - { - "RequestUri": "https://fakekvurl.vault.azure.net/certificates/cert2501394451/pending?api-version=7.3\u0026request_id=e2593a2b01da4829adc38934b813a743", - "RequestMethod": "GET", - "RequestHeaders": { - "Accept-Encoding": "gzip", - "Authorization": "Sanitized", - "User-Agent": "azsdk-go-azcertificates/v0.5.0 (go1.18; linux)" - }, - "RequestBody": null, - "StatusCode": 200, - "ResponseHeaders": { - "Cache-Control": "no-cache", - "Content-Length": "1333", - "Content-Type": "application/json; charset=utf-8", - "Date": "Thu, 02 Jun 2022 23:20:19 GMT", - "Expires": "-1", - "Pragma": "no-cache", - "Retry-After": "10", - "Strict-Transport-Security": "max-age=31536000;includeSubDomains", - "X-Content-Type-Options": "nosniff", - "x-ms-keyvault-network-info": "conn_type=Ipv4;addr=24.17.201.78;act_addr_fam=InterNetwork;", - "x-ms-keyvault-region": "westus2", - "x-ms-keyvault-service-version": "1.9.422.1", - "x-ms-request-id": "1a40769a-4f13-4a19-910b-faff704a6920" - }, - "ResponseBody": { - "id": "https://fakekvurl.vault.azure.net/certificates/cert2501394451/pending", - "issuer": { - "name": "Self" - }, - "csr": "MIICxzCCAa8CAQAwGDEWMBQGA1UEAxMNRGVmYXVsdFBvbGljeTCCASIwDQYJKoZIhvcNAQEBBQADggEPADCCAQoCggEBAKbYACy0A1nuV1g7XYQRmmZVyiXWxC0ljNsp8YFg\u002BNCwYlrwN3GROTnj\u002BYQ92ocGH1h\u002BncxiIoALEB\u002BZ5dNyNl5Ufr6GRNFG0yDjBJdz3n9XTcEZ/2t2erp7eiVHVl9Uv0FC\u002BqazheSo233el/JWRQsBuZpd6fkXkvcKBwvH2lkHU/WoqqpIlO5ToVotm97EoVBuhG35PymbHDnsemZeC9YkupCCGZ7bzWzYmsKMKHfRZCaR\u002BaV8uIzp7pXm7Qu7QlMB/Hld4aq9aTuKeOcoczjRGZXfaqkoRyLu4do\u002BP8h9XBYbGpMkvWIq7EyfGzk09XX4iKn8R76iG0G8B41JTeUCAwEAAaBqMGgGCSqGSIb3DQEJDjFbMFkwDwYDVR0PAQH/BAUDAwcAgDAdBgNVHSUEFjAUBggrBgEFBQcDAQYIKwYBBQUHAwIwHAYDVR0RBBUwE4IRc2RrLmF6dXJlLWludC5uZXQwCQYDVR0TBAIwADANBgkqhkiG9w0BAQsFAAOCAQEARQZGkjWfF2GzY4QL\u002BwjnI9HO02UMbWsFBofxNGcokpzq1E/eNdLrer9WfWy5aV6B6RdQ1r7iRFZiuvW5vhxL9WTka\u002BTsdDXavw8Q/sNIy6SIMVXB/rS13gMAsIhEvIfQzMabDZKrAHmMVVWMWS7MJPzMtW8/b5Yu7/0e5GNz5U3OAd0jEEjyA6mv1NkGoaeirAuTdjVA\u002BGcOD8kthxM9jSWi\u002BOAlQB5k402aIYfSG7fseIQaSY/F8F4C\u002B9\u002BF88itEifgWl4n2gZeS7cPzv9eWcrs5ulOhofniw\u002BqY1L1AohWf4Elplv6EJyXzJiwRoJu4/wptQVFhYYk8ZAnXy3R0A==", - "cancellation_requested": false, - "status": "inProgress", - "status_details": "Pending certificate created. Certificate request is in progress. This may take some time based on the issuer provider. Please check again later.", - "request_id": "e2593a2b01da4829adc38934b813a743" - } - }, - { - "RequestUri": "https://fakekvurl.vault.azure.net/certificates/cert2501394451/pending?api-version=7.3\u0026request_id=e2593a2b01da4829adc38934b813a743", - "RequestMethod": "GET", - "RequestHeaders": { - "Accept-Encoding": "gzip", - "Authorization": "Sanitized", - "User-Agent": "azsdk-go-azcertificates/v0.5.0 (go1.18; linux)" - }, - "RequestBody": null, - "StatusCode": 200, - "ResponseHeaders": { - "Cache-Control": "no-cache", - "Content-Length": "1333", - "Content-Type": "application/json; charset=utf-8", - "Date": "Thu, 02 Jun 2022 23:20:29 GMT", - "Expires": "-1", - "Pragma": "no-cache", - "Retry-After": "10", - "Strict-Transport-Security": "max-age=31536000;includeSubDomains", - "X-Content-Type-Options": "nosniff", - "x-ms-keyvault-network-info": "conn_type=Ipv4;addr=24.17.201.78;act_addr_fam=InterNetwork;", - "x-ms-keyvault-region": "westus2", - "x-ms-keyvault-service-version": "1.9.422.1", - "x-ms-request-id": "512673d6-1d90-441b-8a1a-46fa29033db9" - }, - "ResponseBody": { - "id": "https://fakekvurl.vault.azure.net/certificates/cert2501394451/pending", - "issuer": { - "name": "Self" - }, - "csr": "MIICxzCCAa8CAQAwGDEWMBQGA1UEAxMNRGVmYXVsdFBvbGljeTCCASIwDQYJKoZIhvcNAQEBBQADggEPADCCAQoCggEBAKbYACy0A1nuV1g7XYQRmmZVyiXWxC0ljNsp8YFg\u002BNCwYlrwN3GROTnj\u002BYQ92ocGH1h\u002BncxiIoALEB\u002BZ5dNyNl5Ufr6GRNFG0yDjBJdz3n9XTcEZ/2t2erp7eiVHVl9Uv0FC\u002BqazheSo233el/JWRQsBuZpd6fkXkvcKBwvH2lkHU/WoqqpIlO5ToVotm97EoVBuhG35PymbHDnsemZeC9YkupCCGZ7bzWzYmsKMKHfRZCaR\u002BaV8uIzp7pXm7Qu7QlMB/Hld4aq9aTuKeOcoczjRGZXfaqkoRyLu4do\u002BP8h9XBYbGpMkvWIq7EyfGzk09XX4iKn8R76iG0G8B41JTeUCAwEAAaBqMGgGCSqGSIb3DQEJDjFbMFkwDwYDVR0PAQH/BAUDAwcAgDAdBgNVHSUEFjAUBggrBgEFBQcDAQYIKwYBBQUHAwIwHAYDVR0RBBUwE4IRc2RrLmF6dXJlLWludC5uZXQwCQYDVR0TBAIwADANBgkqhkiG9w0BAQsFAAOCAQEARQZGkjWfF2GzY4QL\u002BwjnI9HO02UMbWsFBofxNGcokpzq1E/eNdLrer9WfWy5aV6B6RdQ1r7iRFZiuvW5vhxL9WTka\u002BTsdDXavw8Q/sNIy6SIMVXB/rS13gMAsIhEvIfQzMabDZKrAHmMVVWMWS7MJPzMtW8/b5Yu7/0e5GNz5U3OAd0jEEjyA6mv1NkGoaeirAuTdjVA\u002BGcOD8kthxM9jSWi\u002BOAlQB5k402aIYfSG7fseIQaSY/F8F4C\u002B9\u002BF88itEifgWl4n2gZeS7cPzv9eWcrs5ulOhofniw\u002BqY1L1AohWf4Elplv6EJyXzJiwRoJu4/wptQVFhYYk8ZAnXy3R0A==", - "cancellation_requested": false, - "status": "inProgress", - "status_details": "Pending certificate created. Certificate request is in progress. This may take some time based on the issuer provider. Please check again later.", - "request_id": "e2593a2b01da4829adc38934b813a743" - } - }, - { - "RequestUri": "https://fakekvurl.vault.azure.net/certificates/cert2501394451/pending?api-version=7.3\u0026request_id=e2593a2b01da4829adc38934b813a743", - "RequestMethod": "GET", - "RequestHeaders": { - "Accept-Encoding": "gzip", - "Authorization": "Sanitized", - "User-Agent": "azsdk-go-azcertificates/v0.5.0 (go1.18; linux)" - }, - "RequestBody": null, - "StatusCode": 200, - "ResponseHeaders": { - "Cache-Control": "no-cache", - "Content-Length": "1333", - "Content-Type": "application/json; charset=utf-8", - "Date": "Thu, 02 Jun 2022 23:20:39 GMT", - "Expires": "-1", - "Pragma": "no-cache", - "Retry-After": "10", - "Strict-Transport-Security": "max-age=31536000;includeSubDomains", - "X-Content-Type-Options": "nosniff", - "x-ms-keyvault-network-info": "conn_type=Ipv4;addr=24.17.201.78;act_addr_fam=InterNetwork;", - "x-ms-keyvault-region": "westus2", - "x-ms-keyvault-service-version": "1.9.422.1", - "x-ms-request-id": "269599c4-cc40-40c3-b3b7-f61e8071d34d" - }, - "ResponseBody": { - "id": "https://fakekvurl.vault.azure.net/certificates/cert2501394451/pending", - "issuer": { - "name": "Self" - }, - "csr": "MIICxzCCAa8CAQAwGDEWMBQGA1UEAxMNRGVmYXVsdFBvbGljeTCCASIwDQYJKoZIhvcNAQEBBQADggEPADCCAQoCggEBAKbYACy0A1nuV1g7XYQRmmZVyiXWxC0ljNsp8YFg\u002BNCwYlrwN3GROTnj\u002BYQ92ocGH1h\u002BncxiIoALEB\u002BZ5dNyNl5Ufr6GRNFG0yDjBJdz3n9XTcEZ/2t2erp7eiVHVl9Uv0FC\u002BqazheSo233el/JWRQsBuZpd6fkXkvcKBwvH2lkHU/WoqqpIlO5ToVotm97EoVBuhG35PymbHDnsemZeC9YkupCCGZ7bzWzYmsKMKHfRZCaR\u002BaV8uIzp7pXm7Qu7QlMB/Hld4aq9aTuKeOcoczjRGZXfaqkoRyLu4do\u002BP8h9XBYbGpMkvWIq7EyfGzk09XX4iKn8R76iG0G8B41JTeUCAwEAAaBqMGgGCSqGSIb3DQEJDjFbMFkwDwYDVR0PAQH/BAUDAwcAgDAdBgNVHSUEFjAUBggrBgEFBQcDAQYIKwYBBQUHAwIwHAYDVR0RBBUwE4IRc2RrLmF6dXJlLWludC5uZXQwCQYDVR0TBAIwADANBgkqhkiG9w0BAQsFAAOCAQEARQZGkjWfF2GzY4QL\u002BwjnI9HO02UMbWsFBofxNGcokpzq1E/eNdLrer9WfWy5aV6B6RdQ1r7iRFZiuvW5vhxL9WTka\u002BTsdDXavw8Q/sNIy6SIMVXB/rS13gMAsIhEvIfQzMabDZKrAHmMVVWMWS7MJPzMtW8/b5Yu7/0e5GNz5U3OAd0jEEjyA6mv1NkGoaeirAuTdjVA\u002BGcOD8kthxM9jSWi\u002BOAlQB5k402aIYfSG7fseIQaSY/F8F4C\u002B9\u002BF88itEifgWl4n2gZeS7cPzv9eWcrs5ulOhofniw\u002BqY1L1AohWf4Elplv6EJyXzJiwRoJu4/wptQVFhYYk8ZAnXy3R0A==", - "cancellation_requested": false, - "status": "inProgress", - "status_details": "Pending certificate created. Certificate request is in progress. This may take some time based on the issuer provider. Please check again later.", - "request_id": "e2593a2b01da4829adc38934b813a743" - } - }, - { - "RequestUri": "https://fakekvurl.vault.azure.net/certificates/cert2501394451/pending?api-version=7.3\u0026request_id=e2593a2b01da4829adc38934b813a743", - "RequestMethod": "GET", - "RequestHeaders": { - "Accept-Encoding": "gzip", - "Authorization": "Sanitized", - "User-Agent": "azsdk-go-azcertificates/v0.5.0 (go1.18; linux)" - }, - "RequestBody": null, - "StatusCode": 200, - "ResponseHeaders": { - "Cache-Control": "no-cache", - "Content-Length": "1333", - "Content-Type": "application/json; charset=utf-8", - "Date": "Thu, 02 Jun 2022 23:20:50 GMT", - "Expires": "-1", - "Pragma": "no-cache", - "Retry-After": "10", - "Strict-Transport-Security": "max-age=31536000;includeSubDomains", - "X-Content-Type-Options": "nosniff", - "x-ms-keyvault-network-info": "conn_type=Ipv4;addr=24.17.201.78;act_addr_fam=InterNetwork;", - "x-ms-keyvault-region": "westus2", - "x-ms-keyvault-service-version": "1.9.422.1", - "x-ms-request-id": "96e4d051-3c55-4918-a93e-83b1e62afb5b" - }, - "ResponseBody": { - "id": "https://fakekvurl.vault.azure.net/certificates/cert2501394451/pending", - "issuer": { - "name": "Self" - }, - "csr": "MIICxzCCAa8CAQAwGDEWMBQGA1UEAxMNRGVmYXVsdFBvbGljeTCCASIwDQYJKoZIhvcNAQEBBQADggEPADCCAQoCggEBAKbYACy0A1nuV1g7XYQRmmZVyiXWxC0ljNsp8YFg\u002BNCwYlrwN3GROTnj\u002BYQ92ocGH1h\u002BncxiIoALEB\u002BZ5dNyNl5Ufr6GRNFG0yDjBJdz3n9XTcEZ/2t2erp7eiVHVl9Uv0FC\u002BqazheSo233el/JWRQsBuZpd6fkXkvcKBwvH2lkHU/WoqqpIlO5ToVotm97EoVBuhG35PymbHDnsemZeC9YkupCCGZ7bzWzYmsKMKHfRZCaR\u002BaV8uIzp7pXm7Qu7QlMB/Hld4aq9aTuKeOcoczjRGZXfaqkoRyLu4do\u002BP8h9XBYbGpMkvWIq7EyfGzk09XX4iKn8R76iG0G8B41JTeUCAwEAAaBqMGgGCSqGSIb3DQEJDjFbMFkwDwYDVR0PAQH/BAUDAwcAgDAdBgNVHSUEFjAUBggrBgEFBQcDAQYIKwYBBQUHAwIwHAYDVR0RBBUwE4IRc2RrLmF6dXJlLWludC5uZXQwCQYDVR0TBAIwADANBgkqhkiG9w0BAQsFAAOCAQEARQZGkjWfF2GzY4QL\u002BwjnI9HO02UMbWsFBofxNGcokpzq1E/eNdLrer9WfWy5aV6B6RdQ1r7iRFZiuvW5vhxL9WTka\u002BTsdDXavw8Q/sNIy6SIMVXB/rS13gMAsIhEvIfQzMabDZKrAHmMVVWMWS7MJPzMtW8/b5Yu7/0e5GNz5U3OAd0jEEjyA6mv1NkGoaeirAuTdjVA\u002BGcOD8kthxM9jSWi\u002BOAlQB5k402aIYfSG7fseIQaSY/F8F4C\u002B9\u002BF88itEifgWl4n2gZeS7cPzv9eWcrs5ulOhofniw\u002BqY1L1AohWf4Elplv6EJyXzJiwRoJu4/wptQVFhYYk8ZAnXy3R0A==", - "cancellation_requested": false, - "status": "inProgress", - "status_details": "Pending certificate created. Certificate request is in progress. This may take some time based on the issuer provider. Please check again later.", - "request_id": "e2593a2b01da4829adc38934b813a743" - } - }, - { - "RequestUri": "https://fakekvurl.vault.azure.net/certificates/cert2501394451/pending?api-version=7.3\u0026request_id=e2593a2b01da4829adc38934b813a743", - "RequestMethod": "GET", - "RequestHeaders": { - "Accept-Encoding": "gzip", - "Authorization": "Sanitized", - "User-Agent": "azsdk-go-azcertificates/v0.5.0 (go1.18; linux)" - }, - "RequestBody": null, - "StatusCode": 200, - "ResponseHeaders": { - "Cache-Control": "no-cache", - "Content-Length": "1241", - "Content-Type": "application/json; charset=utf-8", - "Date": "Thu, 02 Jun 2022 23:21:00 GMT", - "Expires": "-1", - "Pragma": "no-cache", - "Strict-Transport-Security": "max-age=31536000;includeSubDomains", - "X-Content-Type-Options": "nosniff", - "x-ms-keyvault-network-info": "conn_type=Ipv4;addr=24.17.201.78;act_addr_fam=InterNetwork;", - "x-ms-keyvault-region": "westus2", - "x-ms-keyvault-service-version": "1.9.422.1", - "x-ms-request-id": "c78168de-b324-4fde-898a-3a497045f456" - }, - "ResponseBody": { - "id": "https://fakekvurl.vault.azure.net/certificates/cert2501394451/pending", - "issuer": { - "name": "Self" - }, - "csr": "MIICxzCCAa8CAQAwGDEWMBQGA1UEAxMNRGVmYXVsdFBvbGljeTCCASIwDQYJKoZIhvcNAQEBBQADggEPADCCAQoCggEBAKbYACy0A1nuV1g7XYQRmmZVyiXWxC0ljNsp8YFg\u002BNCwYlrwN3GROTnj\u002BYQ92ocGH1h\u002BncxiIoALEB\u002BZ5dNyNl5Ufr6GRNFG0yDjBJdz3n9XTcEZ/2t2erp7eiVHVl9Uv0FC\u002BqazheSo233el/JWRQsBuZpd6fkXkvcKBwvH2lkHU/WoqqpIlO5ToVotm97EoVBuhG35PymbHDnsemZeC9YkupCCGZ7bzWzYmsKMKHfRZCaR\u002BaV8uIzp7pXm7Qu7QlMB/Hld4aq9aTuKeOcoczjRGZXfaqkoRyLu4do\u002BP8h9XBYbGpMkvWIq7EyfGzk09XX4iKn8R76iG0G8B41JTeUCAwEAAaBqMGgGCSqGSIb3DQEJDjFbMFkwDwYDVR0PAQH/BAUDAwcAgDAdBgNVHSUEFjAUBggrBgEFBQcDAQYIKwYBBQUHAwIwHAYDVR0RBBUwE4IRc2RrLmF6dXJlLWludC5uZXQwCQYDVR0TBAIwADANBgkqhkiG9w0BAQsFAAOCAQEARQZGkjWfF2GzY4QL\u002BwjnI9HO02UMbWsFBofxNGcokpzq1E/eNdLrer9WfWy5aV6B6RdQ1r7iRFZiuvW5vhxL9WTka\u002BTsdDXavw8Q/sNIy6SIMVXB/rS13gMAsIhEvIfQzMabDZKrAHmMVVWMWS7MJPzMtW8/b5Yu7/0e5GNz5U3OAd0jEEjyA6mv1NkGoaeirAuTdjVA\u002BGcOD8kthxM9jSWi\u002BOAlQB5k402aIYfSG7fseIQaSY/F8F4C\u002B9\u002BF88itEifgWl4n2gZeS7cPzv9eWcrs5ulOhofniw\u002BqY1L1AohWf4Elplv6EJyXzJiwRoJu4/wptQVFhYYk8ZAnXy3R0A==", - "cancellation_requested": false, - "status": "completed", - "target": "https://fakekvurl.vault.azure.net/certificates/cert2501394451", - "request_id": "e2593a2b01da4829adc38934b813a743" - } - }, - { - "RequestUri": "https://fakekvurl.vault.azure.net/certificates/cert2501394451/?api-version=7.3", - "RequestMethod": "GET", - "RequestHeaders": { - "Accept": "application/json", - "Accept-Encoding": "gzip", - "Authorization": "Sanitized", - "User-Agent": "azsdk-go-azcertificates/v0.5.0 (go1.18; linux)" - }, - "RequestBody": null, - "StatusCode": 200, - "ResponseHeaders": { - "Cache-Control": "no-cache", - "Content-Length": "2415", - "Content-Type": "application/json; charset=utf-8", - "Date": "Thu, 02 Jun 2022 23:21:00 GMT", - "Expires": "-1", - "Pragma": "no-cache", - "Strict-Transport-Security": "max-age=31536000;includeSubDomains", - "X-Content-Type-Options": "nosniff", - "x-ms-keyvault-network-info": "conn_type=Ipv4;addr=24.17.201.78;act_addr_fam=InterNetwork;", - "x-ms-keyvault-region": "westus2", - "x-ms-keyvault-service-version": "1.9.422.1", - "x-ms-request-id": "8f8aefa8-4db8-42df-9bfb-a399baeb5088" - }, - "ResponseBody": { - "id": "https://fakekvurl.vault.azure.net/certificates/cert2501394451/43e86e7b2ce24e0aa953234db20c9592", - "kid": "https://fakekvurl.vault.azure.net/keys/cert2501394451/43e86e7b2ce24e0aa953234db20c9592", - "sid": "https://fakekvurl.vault.azure.net/secrets/cert2501394451/43e86e7b2ce24e0aa953234db20c9592", - "x5t": "FACUQtp7ZpuQOlKA1PJ4CeE8itM", - "cer": "MIIDVzCCAj\u002BgAwIBAgIQF3RbYvuQRgWSYSQtH5lBJjANBgkqhkiG9w0BAQsFADAYMRYwFAYDVQQDEw1EZWZhdWx0UG9saWN5MB4XDTIyMDYwMjIzMTA1N1oXDTIzMDYwMjIzMjA1N1owGDEWMBQGA1UEAxMNRGVmYXVsdFBvbGljeTCCASIwDQYJKoZIhvcNAQEBBQADggEPADCCAQoCggEBAKbYACy0A1nuV1g7XYQRmmZVyiXWxC0ljNsp8YFg\u002BNCwYlrwN3GROTnj\u002BYQ92ocGH1h\u002BncxiIoALEB\u002BZ5dNyNl5Ufr6GRNFG0yDjBJdz3n9XTcEZ/2t2erp7eiVHVl9Uv0FC\u002BqazheSo233el/JWRQsBuZpd6fkXkvcKBwvH2lkHU/WoqqpIlO5ToVotm97EoVBuhG35PymbHDnsemZeC9YkupCCGZ7bzWzYmsKMKHfRZCaR\u002BaV8uIzp7pXm7Qu7QlMB/Hld4aq9aTuKeOcoczjRGZXfaqkoRyLu4do\u002BP8h9XBYbGpMkvWIq7EyfGzk09XX4iKn8R76iG0G8B41JTeUCAwEAAaOBnDCBmTAPBgNVHQ8BAf8EBQMDBwCAMAkGA1UdEwQCMAAwHQYDVR0lBBYwFAYIKwYBBQUHAwEGCCsGAQUFBwMCMBwGA1UdEQQVMBOCEXNkay5henVyZS1pbnQubmV0MB8GA1UdIwQYMBaAFFZkx8TLPLnwu97CM5\u002BpKVeKz6zgMB0GA1UdDgQWBBRWZMfEyzy58LvewjOfqSlXis\u002Bs4DANBgkqhkiG9w0BAQsFAAOCAQEAUhHCIxwAhT7xGdBVsjkh5r61nmw0HkKRlWTlZCSLwPuU0B9RLGoaa4fjuIbimKO4PdqfVjE9kk/JVj1g5rle5P2kFdMzuH1JzeG1IDmPWOyyQJp4rn50mAip05CIUY2qqXAhH7Ev1oBvDbiTWi1fqocaHRVv/g46tMZcT8XR0W2guLpsxoYzNQ5TRC6mff6bMbDiA75fM0j9XUuakUna0JvaMdMHVDmJ3bpXFcMcLeK6DWdvEzg7EPRJr24VBimmwDl0ylW0inUWjL2mmZUNAfV3JUI5yKqy69G6hrtDy92Sm/2g3Jk6saJ1iis/hC7zE45eursH6/18HApHlNd3IA==", - "attributes": { - "enabled": true, - "nbf": 1654211457, - "exp": 1685748057, - "created": 1654212057, - "updated": 1654212057, - "recoveryLevel": "CustomizedRecoverable\u002BPurgeable", - "recoverableDays": 7 - }, - "policy": { - "id": "https://fakekvurl.vault.azure.net/certificates/cert2501394451/policy", - "key_props": { - "exportable": true, - "kty": "RSA", - "key_size": 2048, - "reuse_key": true - }, - "secret_props": { - "contentType": "application/x-pkcs12" - }, - "x509_props": { - "subject": "CN=DefaultPolicy", - "sans": { - "dns_names": [ - "sdk.azure-int.net" - ] - }, - "ekus": [ - "1.3.6.1.5.5.7.3.1", - "1.3.6.1.5.5.7.3.2" - ], - "key_usage": [ - "decipherOnly" - ], - "validity_months": 12, - "basic_constraints": { - "ca": false - } - }, - "lifetime_actions": [ - { - "trigger": { - "lifetime_percentage": 98 - }, - "action": { - "action_type": "EmailContacts" - } - } - ], - "issuer": { - "name": "Self", - "cert_transparency": false - }, - "attributes": { - "enabled": true, - "created": 1654211998, - "updated": 1654211998 - } - }, - "pending": { - "id": "https://fakekvurl.vault.azure.net/certificates/cert2501394451/pending" - } - } - }, - { - "RequestUri": "https://fakekvurl.vault.azure.net/certificates/cert2501394451/?api-version=7.3", - "RequestMethod": "GET", - "RequestHeaders": { - "Accept": "application/json", - "Accept-Encoding": "gzip", - "Authorization": "Sanitized", - "User-Agent": "azsdk-go-azcertificates/v0.5.0 (go1.18; linux)" - }, - "RequestBody": null, - "StatusCode": 200, - "ResponseHeaders": { - "Cache-Control": "no-cache", - "Content-Length": "2415", - "Content-Type": "application/json; charset=utf-8", - "Date": "Thu, 02 Jun 2022 23:21:01 GMT", - "Expires": "-1", - "Pragma": "no-cache", - "Strict-Transport-Security": "max-age=31536000;includeSubDomains", - "X-Content-Type-Options": "nosniff", - "x-ms-keyvault-network-info": "conn_type=Ipv4;addr=24.17.201.78;act_addr_fam=InterNetwork;", - "x-ms-keyvault-region": "westus2", - "x-ms-keyvault-service-version": "1.9.422.1", - "x-ms-request-id": "2caace7e-8c0a-460b-bf62-a943275426d2" - }, - "ResponseBody": { - "id": "https://fakekvurl.vault.azure.net/certificates/cert2501394451/43e86e7b2ce24e0aa953234db20c9592", - "kid": "https://fakekvurl.vault.azure.net/keys/cert2501394451/43e86e7b2ce24e0aa953234db20c9592", - "sid": "https://fakekvurl.vault.azure.net/secrets/cert2501394451/43e86e7b2ce24e0aa953234db20c9592", - "x5t": "FACUQtp7ZpuQOlKA1PJ4CeE8itM", - "cer": "MIIDVzCCAj\u002BgAwIBAgIQF3RbYvuQRgWSYSQtH5lBJjANBgkqhkiG9w0BAQsFADAYMRYwFAYDVQQDEw1EZWZhdWx0UG9saWN5MB4XDTIyMDYwMjIzMTA1N1oXDTIzMDYwMjIzMjA1N1owGDEWMBQGA1UEAxMNRGVmYXVsdFBvbGljeTCCASIwDQYJKoZIhvcNAQEBBQADggEPADCCAQoCggEBAKbYACy0A1nuV1g7XYQRmmZVyiXWxC0ljNsp8YFg\u002BNCwYlrwN3GROTnj\u002BYQ92ocGH1h\u002BncxiIoALEB\u002BZ5dNyNl5Ufr6GRNFG0yDjBJdz3n9XTcEZ/2t2erp7eiVHVl9Uv0FC\u002BqazheSo233el/JWRQsBuZpd6fkXkvcKBwvH2lkHU/WoqqpIlO5ToVotm97EoVBuhG35PymbHDnsemZeC9YkupCCGZ7bzWzYmsKMKHfRZCaR\u002BaV8uIzp7pXm7Qu7QlMB/Hld4aq9aTuKeOcoczjRGZXfaqkoRyLu4do\u002BP8h9XBYbGpMkvWIq7EyfGzk09XX4iKn8R76iG0G8B41JTeUCAwEAAaOBnDCBmTAPBgNVHQ8BAf8EBQMDBwCAMAkGA1UdEwQCMAAwHQYDVR0lBBYwFAYIKwYBBQUHAwEGCCsGAQUFBwMCMBwGA1UdEQQVMBOCEXNkay5henVyZS1pbnQubmV0MB8GA1UdIwQYMBaAFFZkx8TLPLnwu97CM5\u002BpKVeKz6zgMB0GA1UdDgQWBBRWZMfEyzy58LvewjOfqSlXis\u002Bs4DANBgkqhkiG9w0BAQsFAAOCAQEAUhHCIxwAhT7xGdBVsjkh5r61nmw0HkKRlWTlZCSLwPuU0B9RLGoaa4fjuIbimKO4PdqfVjE9kk/JVj1g5rle5P2kFdMzuH1JzeG1IDmPWOyyQJp4rn50mAip05CIUY2qqXAhH7Ev1oBvDbiTWi1fqocaHRVv/g46tMZcT8XR0W2guLpsxoYzNQ5TRC6mff6bMbDiA75fM0j9XUuakUna0JvaMdMHVDmJ3bpXFcMcLeK6DWdvEzg7EPRJr24VBimmwDl0ylW0inUWjL2mmZUNAfV3JUI5yKqy69G6hrtDy92Sm/2g3Jk6saJ1iis/hC7zE45eursH6/18HApHlNd3IA==", - "attributes": { - "enabled": true, - "nbf": 1654211457, - "exp": 1685748057, - "created": 1654212057, - "updated": 1654212057, - "recoveryLevel": "CustomizedRecoverable\u002BPurgeable", - "recoverableDays": 7 - }, - "policy": { - "id": "https://fakekvurl.vault.azure.net/certificates/cert2501394451/policy", - "key_props": { - "exportable": true, - "kty": "RSA", - "key_size": 2048, - "reuse_key": true - }, - "secret_props": { - "contentType": "application/x-pkcs12" - }, - "x509_props": { - "subject": "CN=DefaultPolicy", - "sans": { - "dns_names": [ - "sdk.azure-int.net" - ] - }, - "ekus": [ - "1.3.6.1.5.5.7.3.1", - "1.3.6.1.5.5.7.3.2" - ], - "key_usage": [ - "decipherOnly" - ], - "validity_months": 12, - "basic_constraints": { - "ca": false - } - }, - "lifetime_actions": [ - { - "trigger": { - "lifetime_percentage": 98 - }, - "action": { - "action_type": "EmailContacts" - } - } - ], - "issuer": { - "name": "Self", - "cert_transparency": false - }, - "attributes": { - "enabled": true, - "created": 1654211998, - "updated": 1654211998 - } - }, - "pending": { - "id": "https://fakekvurl.vault.azure.net/certificates/cert2501394451/pending" - } - } - }, - { - "RequestUri": "https://fakekvurl.vault.azure.net/certificates/cert2501394451/policy?api-version=7.3", - "RequestMethod": "PATCH", - "RequestHeaders": { - "Accept": "application/json", - "Accept-Encoding": "gzip", - "Authorization": "Sanitized", - "Content-Length": "482", - "Content-Type": "application/json", - "User-Agent": "azsdk-go-azcertificates/v0.5.0 (go1.18; linux)" - }, - "RequestBody": { - "issuer": { - "cert_transparency": false, - "name": "Self" - }, - "key_props": { - "crv": "P-256", - "exportable": true, - "key_size": 256, - "kty": "EC", - "reuse_key": true - }, - "lifetime_actions": [ - { - "action": { - "action_type": "EmailContacts" - }, - "trigger": { - "lifetime_percentage": 98 - } - } - ], - "secret_props": { - "contentType": "application/x-pkcs12" - }, - "x509_props": { - "ekus": [ - "1.3.6.1.5.5.7.3.1", - "1.3.6.1.5.5.7.3.2" - ], - "key_usage": [ - "decipherOnly" - ], - "sans": { - "dns_names": [ - "sdk.azure-int.net" - ] - }, - "subject": "CN=DefaultPolicy", - "validity_months": 12 - } - }, - "StatusCode": 200, - "ResponseHeaders": { - "Cache-Control": "no-cache", - "Content-Length": "663", - "Content-Type": "application/json; charset=utf-8", - "Date": "Thu, 02 Jun 2022 23:21:02 GMT", - "Expires": "-1", - "Pragma": "no-cache", - "Strict-Transport-Security": "max-age=31536000;includeSubDomains", - "X-Content-Type-Options": "nosniff", - "x-ms-keyvault-network-info": "conn_type=Ipv4;addr=24.17.201.78;act_addr_fam=InterNetwork;", - "x-ms-keyvault-region": "westus2", - "x-ms-keyvault-service-version": "1.9.422.1", - "x-ms-request-id": "83d194e4-b0bc-498d-9df2-20dfc603eaf0" - }, - "ResponseBody": { - "id": "https://fakekvurl.vault.azure.net/certificates/cert2501394451/policy", - "key_props": { - "exportable": true, - "kty": "EC", - "key_size": 256, - "reuse_key": true, - "crv": "P-256" - }, - "secret_props": { - "contentType": "application/x-pkcs12" - }, - "x509_props": { - "subject": "CN=DefaultPolicy", - "sans": { - "dns_names": [ - "sdk.azure-int.net" - ] - }, - "ekus": [ - "1.3.6.1.5.5.7.3.1", - "1.3.6.1.5.5.7.3.2" - ], - "key_usage": [ - "decipherOnly" - ], - "validity_months": 12, - "basic_constraints": { - "ca": false - } - }, - "lifetime_actions": [ - { - "trigger": { - "lifetime_percentage": 98 - }, - "action": { - "action_type": "EmailContacts" - } - } - ], - "issuer": { - "name": "Self", - "cert_transparency": false - }, - "attributes": { - "enabled": true, - "created": 1654211998, - "updated": 1654212062 - } - } - }, - { - "RequestUri": "https://fakekvurl.vault.azure.net/certificates/cert2501394451/43e86e7b2ce24e0aa953234db20c9592?api-version=7.3", - "RequestMethod": "PATCH", - "RequestHeaders": { - "Accept": "application/json", - "Accept-Encoding": "gzip", - "Authorization": "Sanitized", - "Content-Length": "99", - "Content-Type": "application/json", - "User-Agent": "azsdk-go-azcertificates/v0.5.0 (go1.18; linux)" - }, - "RequestBody": { - "attributes": { - "enabled": true, - "exp": 1685748057, - "nbf": 1654211457 - }, - "tags": { - "tag1": "updated_values1" - } - }, - "StatusCode": 200, - "ResponseHeaders": { - "Cache-Control": "no-cache", - "Content-Length": "1788", - "Content-Type": "application/json; charset=utf-8", - "Date": "Thu, 02 Jun 2022 23:21:02 GMT", - "Expires": "-1", - "Pragma": "no-cache", - "Strict-Transport-Security": "max-age=31536000;includeSubDomains", - "X-Content-Type-Options": "nosniff", - "x-ms-keyvault-network-info": "conn_type=Ipv4;addr=24.17.201.78;act_addr_fam=InterNetwork;", - "x-ms-keyvault-region": "westus2", - "x-ms-keyvault-service-version": "1.9.422.1", - "x-ms-request-id": "b3bd5fe8-5566-4589-b384-f3dfebceec04" - }, - "ResponseBody": { - "id": "https://fakekvurl.vault.azure.net/certificates/cert2501394451/43e86e7b2ce24e0aa953234db20c9592", - "kid": "https://fakekvurl.vault.azure.net/keys/cert2501394451/43e86e7b2ce24e0aa953234db20c9592", - "sid": "https://fakekvurl.vault.azure.net/secrets/cert2501394451/43e86e7b2ce24e0aa953234db20c9592", - "x5t": "FACUQtp7ZpuQOlKA1PJ4CeE8itM", - "cer": "MIIDVzCCAj\u002BgAwIBAgIQF3RbYvuQRgWSYSQtH5lBJjANBgkqhkiG9w0BAQsFADAYMRYwFAYDVQQDEw1EZWZhdWx0UG9saWN5MB4XDTIyMDYwMjIzMTA1N1oXDTIzMDYwMjIzMjA1N1owGDEWMBQGA1UEAxMNRGVmYXVsdFBvbGljeTCCASIwDQYJKoZIhvcNAQEBBQADggEPADCCAQoCggEBAKbYACy0A1nuV1g7XYQRmmZVyiXWxC0ljNsp8YFg\u002BNCwYlrwN3GROTnj\u002BYQ92ocGH1h\u002BncxiIoALEB\u002BZ5dNyNl5Ufr6GRNFG0yDjBJdz3n9XTcEZ/2t2erp7eiVHVl9Uv0FC\u002BqazheSo233el/JWRQsBuZpd6fkXkvcKBwvH2lkHU/WoqqpIlO5ToVotm97EoVBuhG35PymbHDnsemZeC9YkupCCGZ7bzWzYmsKMKHfRZCaR\u002BaV8uIzp7pXm7Qu7QlMB/Hld4aq9aTuKeOcoczjRGZXfaqkoRyLu4do\u002BP8h9XBYbGpMkvWIq7EyfGzk09XX4iKn8R76iG0G8B41JTeUCAwEAAaOBnDCBmTAPBgNVHQ8BAf8EBQMDBwCAMAkGA1UdEwQCMAAwHQYDVR0lBBYwFAYIKwYBBQUHAwEGCCsGAQUFBwMCMBwGA1UdEQQVMBOCEXNkay5henVyZS1pbnQubmV0MB8GA1UdIwQYMBaAFFZkx8TLPLnwu97CM5\u002BpKVeKz6zgMB0GA1UdDgQWBBRWZMfEyzy58LvewjOfqSlXis\u002Bs4DANBgkqhkiG9w0BAQsFAAOCAQEAUhHCIxwAhT7xGdBVsjkh5r61nmw0HkKRlWTlZCSLwPuU0B9RLGoaa4fjuIbimKO4PdqfVjE9kk/JVj1g5rle5P2kFdMzuH1JzeG1IDmPWOyyQJp4rn50mAip05CIUY2qqXAhH7Ev1oBvDbiTWi1fqocaHRVv/g46tMZcT8XR0W2guLpsxoYzNQ5TRC6mff6bMbDiA75fM0j9XUuakUna0JvaMdMHVDmJ3bpXFcMcLeK6DWdvEzg7EPRJr24VBimmwDl0ylW0inUWjL2mmZUNAfV3JUI5yKqy69G6hrtDy92Sm/2g3Jk6saJ1iis/hC7zE45eursH6/18HApHlNd3IA==", - "attributes": { - "enabled": true, - "nbf": 1654211457, - "exp": 1685748057, - "created": 1654212057, - "updated": 1654212062, - "recoveryLevel": "CustomizedRecoverable\u002BPurgeable", - "recoverableDays": 7 - }, - "tags": { - "tag1": "updated_values1" - }, - "pending": { - "id": "https://fakekvurl.vault.azure.net/certificates/cert2501394451/pending" - } - } - }, - { - "RequestUri": "https://fakekvurl.vault.azure.net/certificates/cert2501394451/43e86e7b2ce24e0aa953234db20c9592?api-version=7.3", - "RequestMethod": "PATCH", - "RequestHeaders": { - "Accept": "application/json", - "Accept-Encoding": "gzip", - "Authorization": "Sanitized", - "Content-Length": "100", - "Content-Type": "application/json", - "User-Agent": "azsdk-go-azcertificates/v0.5.0 (go1.18; linux)" - }, - "RequestBody": { - "attributes": { - "enabled": false, - "exp": 1685748057, - "nbf": 1654211457 - }, - "tags": { - "tag1": "updated_values1" - } - }, - "StatusCode": 200, - "ResponseHeaders": { - "Cache-Control": "no-cache", - "Content-Length": "1789", - "Content-Type": "application/json; charset=utf-8", - "Date": "Thu, 02 Jun 2022 23:21:02 GMT", - "Expires": "-1", - "Pragma": "no-cache", - "Strict-Transport-Security": "max-age=31536000;includeSubDomains", - "X-Content-Type-Options": "nosniff", - "x-ms-keyvault-network-info": "conn_type=Ipv4;addr=24.17.201.78;act_addr_fam=InterNetwork;", - "x-ms-keyvault-region": "westus2", - "x-ms-keyvault-service-version": "1.9.422.1", - "x-ms-request-id": "b07dfb78-92b0-4ac6-93eb-e55e91a17c20" - }, - "ResponseBody": { - "id": "https://fakekvurl.vault.azure.net/certificates/cert2501394451/43e86e7b2ce24e0aa953234db20c9592", - "kid": "https://fakekvurl.vault.azure.net/keys/cert2501394451/43e86e7b2ce24e0aa953234db20c9592", - "sid": "https://fakekvurl.vault.azure.net/secrets/cert2501394451/43e86e7b2ce24e0aa953234db20c9592", - "x5t": "FACUQtp7ZpuQOlKA1PJ4CeE8itM", - "cer": "MIIDVzCCAj\u002BgAwIBAgIQF3RbYvuQRgWSYSQtH5lBJjANBgkqhkiG9w0BAQsFADAYMRYwFAYDVQQDEw1EZWZhdWx0UG9saWN5MB4XDTIyMDYwMjIzMTA1N1oXDTIzMDYwMjIzMjA1N1owGDEWMBQGA1UEAxMNRGVmYXVsdFBvbGljeTCCASIwDQYJKoZIhvcNAQEBBQADggEPADCCAQoCggEBAKbYACy0A1nuV1g7XYQRmmZVyiXWxC0ljNsp8YFg\u002BNCwYlrwN3GROTnj\u002BYQ92ocGH1h\u002BncxiIoALEB\u002BZ5dNyNl5Ufr6GRNFG0yDjBJdz3n9XTcEZ/2t2erp7eiVHVl9Uv0FC\u002BqazheSo233el/JWRQsBuZpd6fkXkvcKBwvH2lkHU/WoqqpIlO5ToVotm97EoVBuhG35PymbHDnsemZeC9YkupCCGZ7bzWzYmsKMKHfRZCaR\u002BaV8uIzp7pXm7Qu7QlMB/Hld4aq9aTuKeOcoczjRGZXfaqkoRyLu4do\u002BP8h9XBYbGpMkvWIq7EyfGzk09XX4iKn8R76iG0G8B41JTeUCAwEAAaOBnDCBmTAPBgNVHQ8BAf8EBQMDBwCAMAkGA1UdEwQCMAAwHQYDVR0lBBYwFAYIKwYBBQUHAwEGCCsGAQUFBwMCMBwGA1UdEQQVMBOCEXNkay5henVyZS1pbnQubmV0MB8GA1UdIwQYMBaAFFZkx8TLPLnwu97CM5\u002BpKVeKz6zgMB0GA1UdDgQWBBRWZMfEyzy58LvewjOfqSlXis\u002Bs4DANBgkqhkiG9w0BAQsFAAOCAQEAUhHCIxwAhT7xGdBVsjkh5r61nmw0HkKRlWTlZCSLwPuU0B9RLGoaa4fjuIbimKO4PdqfVjE9kk/JVj1g5rle5P2kFdMzuH1JzeG1IDmPWOyyQJp4rn50mAip05CIUY2qqXAhH7Ev1oBvDbiTWi1fqocaHRVv/g46tMZcT8XR0W2guLpsxoYzNQ5TRC6mff6bMbDiA75fM0j9XUuakUna0JvaMdMHVDmJ3bpXFcMcLeK6DWdvEzg7EPRJr24VBimmwDl0ylW0inUWjL2mmZUNAfV3JUI5yKqy69G6hrtDy92Sm/2g3Jk6saJ1iis/hC7zE45eursH6/18HApHlNd3IA==", - "attributes": { - "enabled": false, - "nbf": 1654211457, - "exp": 1685748057, - "created": 1654212057, - "updated": 1654212063, - "recoveryLevel": "CustomizedRecoverable\u002BPurgeable", - "recoverableDays": 7 - }, - "tags": { - "tag1": "updated_values1" - }, - "pending": { - "id": "https://fakekvurl.vault.azure.net/certificates/cert2501394451/pending" - } - } - } - ], - "Variables": {} -} diff --git a/sdk/keyvault/azcertificates/testdata/recordings/TestClient_BackupCertificate.json b/sdk/keyvault/azcertificates/testdata/recordings/TestClient_BackupCertificate.json deleted file mode 100644 index 75814c369b06..000000000000 --- a/sdk/keyvault/azcertificates/testdata/recordings/TestClient_BackupCertificate.json +++ /dev/null @@ -1,731 +0,0 @@ -{ - "Entries": [ - { - "RequestUri": "https://fakekvurl.vault.azure.net/certificates/cert3599754124/create?api-version=7.3", - "RequestMethod": "POST", - "RequestHeaders": { - ":method": "POST", - "Accept": "application/json", - "Accept-Encoding": "gzip", - "Content-Length": "0", - "User-Agent": "azsdk-go-azcertificates/v0.4.2 (go1.18; Windows_NT)" - }, - "RequestBody": null, - "StatusCode": 401, - "ResponseHeaders": { - "Cache-Control": "no-cache", - "Content-Length": "97", - "Content-Type": "application/json; charset=utf-8", - "Date": "Mon, 16 May 2022 18:11:29 GMT", - "Expires": "-1", - "Pragma": "no-cache", - "Strict-Transport-Security": "max-age=31536000;includeSubDomains", - "WWW-Authenticate": "Bearer authorization=\u0022https://login.windows.net/00000000-0000-0000-0000-000000000000\u0022, resource=\u0022https://vault.azure.net\u0022", - "X-Content-Type-Options": "nosniff", - "x-ms-keyvault-network-info": "conn_type=Ipv4;addr=73.83.78.150;act_addr_fam=InterNetwork;", - "x-ms-keyvault-region": "westus2", - "x-ms-keyvault-service-version": "1.9.395.1", - "x-ms-request-id": "24208aab-6224-4ede-b967-aedc1ab4f668" - }, - "ResponseBody": { - "error": { - "code": "Unauthorized", - "message": "AKV10000: Request is missing a Bearer or PoP token." - } - } - }, - { - "RequestUri": "https://fakekvurl.vault.azure.net/certificates/cert3599754124/create?api-version=7.3", - "RequestMethod": "POST", - "RequestHeaders": { - ":method": "POST", - "Accept": "application/json", - "Accept-Encoding": "gzip", - "Authorization": "Sanitized", - "Content-Length": "125", - "Content-Type": "application/json", - "User-Agent": "azsdk-go-azcertificates/v0.4.2 (go1.18; Windows_NT)" - }, - "RequestBody": { - "attributes": {}, - "policy": { - "issuer": { - "name": "Self" - }, - "secret_props": {}, - "x509_props": { - "sans": {}, - "subject": "CN=DefaultPolicy" - } - } - }, - "StatusCode": 202, - "ResponseHeaders": { - "Cache-Control": "no-cache", - "Content-Length": "1289", - "Content-Type": "application/json; charset=utf-8", - "Date": "Mon, 16 May 2022 18:11:30 GMT", - "Expires": "-1", - "Location": "https://fakekvurl.vault.azure.net/certificates/cert3599754124/pending?api-version=7.3\u0026request_id=b378baa6d3fe4dbd9a277ff443d4612d", - "Pragma": "no-cache", - "Retry-After": "10", - "Strict-Transport-Security": "max-age=31536000;includeSubDomains", - "X-Content-Type-Options": "nosniff", - "x-ms-keyvault-network-info": "conn_type=Ipv4;addr=73.83.78.150;act_addr_fam=InterNetwork;", - "x-ms-keyvault-region": "westus2", - "x-ms-keyvault-service-version": "1.9.395.1", - "x-ms-request-id": "a62b042e-e95f-4021-9d27-cca78968a3ae" - }, - "ResponseBody": { - "id": "https://fakekvurl.vault.azure.net/certificates/cert3599754124/pending", - "issuer": { - "name": "Self" - }, - "csr": "MIICqDCCAZACAQAwGDEWMBQGA1UEAxMNRGVmYXVsdFBvbGljeTCCASIwDQYJKoZIhvcNAQEBBQADggEPADCCAQoCggEBAOU3tEBoLSY6vmYjaNOvqcW9iEmK9fb5gy7Pngm0OpcCXwNSA9M88OXQLHpSl71x2NPFpit3q1/h6fUhEj4L6QQtD//BHgCBtc60yoHWyuLhyB4wBRK0bYnV4WAOv3Pn9m0xfbVn5p4TsNfsBRedUHHzmhqC2vNkg93WVfDhBL2NeWTkpXpvSAD5SIgpPYW1WhljFQkdOOe2aJDwUQBe3HN/zC0oaxdc4qGqIJeqVx1UdtQQzbaOILdKQTQ0ZHRO3eREok6KKahDu\u002BWlHXyk8V74KopMbnLBUiGWE2P3eb4L32l7tbUM6tiAIjkBWzMgcIMa7TyfqYDC2QkFiGTEVL0CAwEAAaBLMEkGCSqGSIb3DQEJDjE8MDowDgYDVR0PAQH/BAQDAgWgMB0GA1UdJQQWMBQGCCsGAQUFBwMBBggrBgEFBQcDAjAJBgNVHRMEAjAAMA0GCSqGSIb3DQEBCwUAA4IBAQCeOHlyICykmRFZNAPpBb5GDFMWnRF7Ru7x536NpqUQqTSmZ3zaViPML9YCyQwZfMA87mjIKnhLgD\u002BTdfl22/KfIFYk9wJUZT3pJuVZuAvMhrBojkkXUJRmN2p8TcS8SUYjog3nqyhc4fX9ZhoL5AUJ/L/mX4vaEAFedKdPlDgb0AMyat7wMvP9ApvxebWHRuyAYpZgtXjHCCtW5JUNoOaP7/7uPMjLE7xjrdLv2n81cAd9mh1mVOz8u2iwaxvo\u002BnD4xCaiPcr6OIp9MD/haXNleUWv40XT8sY9byqf/W3y0W9J3tINuuE5MYyRpKKiKR2q4Vcmu/cJ2WZow5H0o3vD", - "cancellation_requested": false, - "status": "inProgress", - "status_details": "Pending certificate created. Certificate request is in progress. This may take some time based on the issuer provider. Please check again later.", - "request_id": "b378baa6d3fe4dbd9a277ff443d4612d" - } - }, - { - "RequestUri": "https://fakekvurl.vault.azure.net/certificates/cert3599754124/pending?api-version=7.3\u0026request_id=b378baa6d3fe4dbd9a277ff443d4612d", - "RequestMethod": "GET", - "RequestHeaders": { - ":method": "GET", - "Accept-Encoding": "gzip", - "Authorization": "Sanitized", - "User-Agent": "azsdk-go-azcertificates/v0.4.2 (go1.18; Windows_NT)" - }, - "RequestBody": null, - "StatusCode": 200, - "ResponseHeaders": { - "Cache-Control": "no-cache", - "Content-Length": "1197", - "Content-Type": "application/json; charset=utf-8", - "Date": "Mon, 16 May 2022 18:11:40 GMT", - "Expires": "-1", - "Pragma": "no-cache", - "Strict-Transport-Security": "max-age=31536000;includeSubDomains", - "X-Content-Type-Options": "nosniff", - "x-ms-keyvault-network-info": "conn_type=Ipv4;addr=73.83.78.150;act_addr_fam=InterNetwork;", - "x-ms-keyvault-region": "westus2", - "x-ms-keyvault-service-version": "1.9.395.1", - "x-ms-request-id": "943a74c0-ce6c-436b-8c82-6eaa53cf0961" - }, - "ResponseBody": { - "id": "https://fakekvurl.vault.azure.net/certificates/cert3599754124/pending", - "issuer": { - "name": "Self" - }, - "csr": "MIICqDCCAZACAQAwGDEWMBQGA1UEAxMNRGVmYXVsdFBvbGljeTCCASIwDQYJKoZIhvcNAQEBBQADggEPADCCAQoCggEBAOU3tEBoLSY6vmYjaNOvqcW9iEmK9fb5gy7Pngm0OpcCXwNSA9M88OXQLHpSl71x2NPFpit3q1/h6fUhEj4L6QQtD//BHgCBtc60yoHWyuLhyB4wBRK0bYnV4WAOv3Pn9m0xfbVn5p4TsNfsBRedUHHzmhqC2vNkg93WVfDhBL2NeWTkpXpvSAD5SIgpPYW1WhljFQkdOOe2aJDwUQBe3HN/zC0oaxdc4qGqIJeqVx1UdtQQzbaOILdKQTQ0ZHRO3eREok6KKahDu\u002BWlHXyk8V74KopMbnLBUiGWE2P3eb4L32l7tbUM6tiAIjkBWzMgcIMa7TyfqYDC2QkFiGTEVL0CAwEAAaBLMEkGCSqGSIb3DQEJDjE8MDowDgYDVR0PAQH/BAQDAgWgMB0GA1UdJQQWMBQGCCsGAQUFBwMBBggrBgEFBQcDAjAJBgNVHRMEAjAAMA0GCSqGSIb3DQEBCwUAA4IBAQCeOHlyICykmRFZNAPpBb5GDFMWnRF7Ru7x536NpqUQqTSmZ3zaViPML9YCyQwZfMA87mjIKnhLgD\u002BTdfl22/KfIFYk9wJUZT3pJuVZuAvMhrBojkkXUJRmN2p8TcS8SUYjog3nqyhc4fX9ZhoL5AUJ/L/mX4vaEAFedKdPlDgb0AMyat7wMvP9ApvxebWHRuyAYpZgtXjHCCtW5JUNoOaP7/7uPMjLE7xjrdLv2n81cAd9mh1mVOz8u2iwaxvo\u002BnD4xCaiPcr6OIp9MD/haXNleUWv40XT8sY9byqf/W3y0W9J3tINuuE5MYyRpKKiKR2q4Vcmu/cJ2WZow5H0o3vD", - "cancellation_requested": false, - "status": "completed", - "target": "https://fakekvurl.vault.azure.net/certificates/cert3599754124", - "request_id": "b378baa6d3fe4dbd9a277ff443d4612d" - } - }, - { - "RequestUri": "https://fakekvurl.vault.azure.net/certificates/cert3599754124/?api-version=7.3", - "RequestMethod": "GET", - "RequestHeaders": { - ":method": "GET", - "Accept": "application/json", - "Accept-Encoding": "gzip", - "Authorization": "Sanitized", - "User-Agent": "azsdk-go-azcertificates/v0.4.2 (go1.18; Windows_NT)" - }, - "RequestBody": null, - "StatusCode": 200, - "ResponseHeaders": { - "Cache-Control": "no-cache", - "Content-Length": "2331", - "Content-Type": "application/json; charset=utf-8", - "Date": "Mon, 16 May 2022 18:11:40 GMT", - "Expires": "-1", - "Pragma": "no-cache", - "Strict-Transport-Security": "max-age=31536000;includeSubDomains", - "X-Content-Type-Options": "nosniff", - "x-ms-keyvault-network-info": "conn_type=Ipv4;addr=73.83.78.150;act_addr_fam=InterNetwork;", - "x-ms-keyvault-region": "westus2", - "x-ms-keyvault-service-version": "1.9.395.1", - "x-ms-request-id": "7f692c67-3667-4ffb-8ae8-d5d49cd5f119" - }, - "ResponseBody": { - "id": "https://fakekvurl.vault.azure.net/certificates/cert3599754124/c91dd402d5cd42a0a5451ff039ae0564", - "kid": "https://fakekvurl.vault.azure.net/keys/cert3599754124/c91dd402d5cd42a0a5451ff039ae0564", - "sid": "https://fakekvurl.vault.azure.net/secrets/cert3599754124/c91dd402d5cd42a0a5451ff039ae0564", - "x5t": "avbvBOMLa-7SGSEXCZAYEYGo9GA", - "cer": "MIIDNjCCAh6gAwIBAgIQE9w5bpspS6WZODwfD447EjANBgkqhkiG9w0BAQsFADAYMRYwFAYDVQQDEw1EZWZhdWx0UG9saWN5MB4XDTIyMDUxNjE4MDEzNVoXDTIzMDUxNjE4MTEzNVowGDEWMBQGA1UEAxMNRGVmYXVsdFBvbGljeTCCASIwDQYJKoZIhvcNAQEBBQADggEPADCCAQoCggEBAOU3tEBoLSY6vmYjaNOvqcW9iEmK9fb5gy7Pngm0OpcCXwNSA9M88OXQLHpSl71x2NPFpit3q1/h6fUhEj4L6QQtD//BHgCBtc60yoHWyuLhyB4wBRK0bYnV4WAOv3Pn9m0xfbVn5p4TsNfsBRedUHHzmhqC2vNkg93WVfDhBL2NeWTkpXpvSAD5SIgpPYW1WhljFQkdOOe2aJDwUQBe3HN/zC0oaxdc4qGqIJeqVx1UdtQQzbaOILdKQTQ0ZHRO3eREok6KKahDu\u002BWlHXyk8V74KopMbnLBUiGWE2P3eb4L32l7tbUM6tiAIjkBWzMgcIMa7TyfqYDC2QkFiGTEVL0CAwEAAaN8MHowDgYDVR0PAQH/BAQDAgWgMAkGA1UdEwQCMAAwHQYDVR0lBBYwFAYIKwYBBQUHAwEGCCsGAQUFBwMCMB8GA1UdIwQYMBaAFL945RNu3BgMaukadJG4GDP2U4lkMB0GA1UdDgQWBBS/eOUTbtwYDGrpGnSRuBgz9lOJZDANBgkqhkiG9w0BAQsFAAOCAQEAlaAWbYoOsFzBsXNagzslsxnG5N8D1QUimuU0TTcemBLp1yu1RVo43N6546py2LR7fVj65AgEkfE71FIiEBo5BWI2Ysn69aovJHkSjbQgcB948imLwjX1bNCvnSTszeSFGcw2WF0vLT0NtmALEGKwm9GHe7EtlqNCkhPHu1e54lvac\u002BC5DT4g4v2pd3R9FtHC\u002BDHEYKIt9tPcfo\u002BofFFQdpCh/Pxj\u002B/rNULMbTTTpJEPmpAd7RXciMBY0KhDl3nqahmhzbaiuz4sZgEgF6WeCtxjZgRo2r0tn60jmVeNtVFy7pRxMKjcy8bZo0BXzzoPnq42Ve5qLPeTb84r3YPN7cQ==", - "attributes": { - "enabled": true, - "nbf": 1652724095, - "exp": 1684260695, - "created": 1652724696, - "updated": 1652724696, - "recoveryLevel": "CustomizedRecoverable\u002BPurgeable", - "recoverableDays": 7 - }, - "policy": { - "id": "https://fakekvurl.vault.azure.net/certificates/cert3599754124/policy", - "key_props": { - "exportable": true, - "kty": "RSA", - "key_size": 2048, - "reuse_key": false - }, - "secret_props": { - "contentType": "application/x-pkcs12" - }, - "x509_props": { - "subject": "CN=DefaultPolicy", - "sans": {}, - "ekus": [ - "1.3.6.1.5.5.7.3.1", - "1.3.6.1.5.5.7.3.2" - ], - "key_usage": [ - "digitalSignature", - "keyEncipherment" - ], - "validity_months": 12, - "basic_constraints": { - "ca": false - } - }, - "lifetime_actions": [ - { - "trigger": { - "lifetime_percentage": 80 - }, - "action": { - "action_type": "AutoRenew" - } - } - ], - "issuer": { - "name": "Self" - }, - "attributes": { - "enabled": true, - "created": 1652724690, - "updated": 1652724690 - } - }, - "pending": { - "id": "https://fakekvurl.vault.azure.net/certificates/cert3599754124/pending" - } - } - }, - { - "RequestUri": "https://fakekvurl.vault.azure.net/certificates/cert3599754124/backup?api-version=7.3", - "RequestMethod": "POST", - "RequestHeaders": { - ":method": "POST", - "Accept": "application/json", - "Accept-Encoding": "gzip", - "Authorization": "Sanitized", - "Content-Length": "0", - "User-Agent": "azsdk-go-azcertificates/v0.4.2 (go1.18; Windows_NT)" - }, - "RequestBody": null, - "StatusCode": 200, - "ResponseHeaders": { - "Cache-Control": "no-cache", - "Content-Length": "42727", - "Content-Type": "application/json; charset=utf-8", - "Date": "Mon, 16 May 2022 18:11:40 GMT", - "Expires": "-1", - "Pragma": "no-cache", - "Strict-Transport-Security": "max-age=31536000;includeSubDomains", - "X-Content-Type-Options": "nosniff", - "x-ms-keyvault-network-info": "conn_type=Ipv4;addr=73.83.78.150;act_addr_fam=InterNetwork;", - "x-ms-keyvault-region": "westus2", - "x-ms-keyvault-service-version": "1.9.395.1", - "x-ms-request-id": "cf55e6ae-5a4d-4c0d-affe-e7e62ac010ea" - }, - "ResponseBody": { - "value": "JkF6dXJlS2V5VmF1bHRLZXlCYWNrdXBWMS5taWNyb3NvZnQuY29tZXlKcmFXUWlPaUl5WVdabU5tRmhNUzAzTm1Ka0xUUTBZVGN0WVRjek5DMDJaalZoWkRCaU5XRTRPVGdpTENKaGJHY2lPaUpTVTBFdFQwRkZVQzB5TlRZaUxDSmxibU1pT2lKQk1qVTJRMEpETFVoVE5URXlJbjAucVMyZzM5SkgzTWk4OXNrWDFiaUdZZ21paDJ0T0pGLWhqeGNoRlpRVGRlbHl1Q2poX1dRUHB1V0I3RjVsajd2REtxNm13Z3hBQlNSYmREMHFIbC1qX00wN0VZaXZDNjBHNC1qcFpUMmxBVVM2MnpXLXREelEyRVlvQk5zWFVhOWY2Wl9ySmltUEloYkRyTXlUQS1qc1hqUm0zLUJHVFcwY1Vzam0yWHBnclVDdHMydEVRRUNOSjNXa3VuOWNsR3VnaV9hTkdkN0FuVjZOOURWNEh3enBsNmlkbXUweE5hZlQzdndtc0RqUDVXZ1dWVkJwWFd1VlMxQ0ZCMEY0VXlYWEF0d0FvRWN5S0N0bEhJUlhXZUpUUFJnLWlxalJzZW91Q0Y1WlFicll1TXBuR0N6ckF4T1VXZmFjbU1zSzIzVjZXdkVKdVRfZzZvLWVWS1JyWVBUUzlBLmNVNVA4bms0YVM2VFEzcENBVWlFZXcuSEhVeTNoTWoza21uak9IbXFoM19PWktxYUczcFFyMlJEdW04VE1RUHJvc2JFX2c2RDR4cklSdlpmS1NNT2R1WUFYdUtpaERhYWlYbVJhWEJGbnRLNEkxYTBMVkt0SlMzbDRzMWZvZFNRUXpmRGhkZ2FNVy05TGVJOFhfS21xWnRWb0Q2aWZMMzJaTmxnV0tLbWtZTGxMYUxQYTBsZFZMMWlIdjZyVHRKWURmRHlDcFVGUHFkcnVIM2tzd2NjSXMyNGEtbVlqNVJyaks2SEE3eVdRWkxmMjJOYWo0TC1TdTZMTFdVNTF4UmpXRjBQX29WbUF6aF9QZWI3SXRkbndzSFdlbjZybm42dHhWN2I1NGxQNXRoVW9sR090S0tQSUprY3pzNWdyU0YzekJaRkxXdzc3YUhZblFxclFES3hublg2Z0FuRjNQMWxaWlYwSzBkMDFpMkd3TVNTVUxSY3V1S0xod05OV0EwVHRIWVVHbW1kSGlrUlk1RXFydUxMZXRJYW5YYnJHSUg1SktuSFN4SHFnNllFMTBLeHh4NUZwQ29xUDhOMWxsdzdDbnoxa1hlQlNvem1ldE9ZWjU3a1dXZktRR3BpX2tWWTNzZi1iZEpkZTJmb1F6VWEwQnpkYnpXNEFlUXRhQmFaQXNlTEM0Q2w2aGlZVnJzYU8xanAwZkU0YVd3bERrdjVSakJGRUpFM1BBNUU4OU5nNHN1cDg3cTZoMUI1ZXVYckNkYlZ1bzRUMmtUVVZvQmNwTzVGRWo4anNwdmFCS0gwWXNZQ2pjaEY4VkNOWHJqTFVMaktTbEpCQ3g3R2dNSWhGc2Nmc1JKTkxHV01VMG1kR1h6Y2lVYWNuV3NSLWJhQ3VwY0x3aWFBZmRacDFKTG43alR6alEwejdyZ1lUZEFOODRlZk84cko0b1dvN1ZIWUFMaFRSVU1wUFJ1em1zS2JzQm9QVTdza0dzcVY1SEFsYmZGSHJIYzZTcG5JS3VyamctY3ROUTFieE4tN05ERF9LMlVPcW5yT2dqRjJjRVI4Rm5JWnc0aTFLZ2ZMZVVHTEliVHZaeHRfRWlhNDdTSmdzbDNoWXJxcHJxd3pHVmQ1dnVUejZ5OGhyM2JuRWRZTW1DYzJ5bmpGR253Y3p4VzFLbENTZkt4N2hFOFV2dkNBV1RCRFE0SHVIOEhiLW42Ykt4WWNuTVB4X0ZSNGFLWnBnV0RjS2ZJV1Mtb2UtZ3lCWHptRk9OMmxCZTNLSXRQam5ocTFzVjJ6aXJyQ3BlaTNsTDFFamhRRVM4VEhlUmtlZjBQSUVEX3lnZDllb29tbVd3dVFZVjVUYjJnYnI0VEg4OHFPN0pQTWtzMDFxSFpGcE1tOUlQTjFFWS0yaHBFUjJJU1FtNTZYbWlUSGh0anl3bW16TTB2Qzc0LTNTTVVwaFl5d2RXSmhOYTRjemlyN3pNTldzS0FWOTlsc1NGSEpaU1lwN2JYV1J2VGpmT0R3NGpJQmQ4dmpIdDNBaWdCR2pZUjdHb19UQlNBRWtFeWJZWnNkblN3RHl6OVF3bmZqbEUwWHV4ZWZLblFHOGl3YWZUT0g0bkdKVHUtSUVaT3lmX0JCWU1hc0Nuc1VSLVJWbjlMdnZlaVBtUkZRSmlMVkU2NTFtN2hJOW9BZi1Sbjk0NUpoXzkyNGZwNjZNWTNZV2VUTVZBVnU0NDdhUmQ5cGNYVl9Ic0ZyTW5nd0IwSUR5MHZybVhOWTZXZEpEdnlSSHg4T2l5bnlSVWxGUHNIUE14ZTBvVmdJWFZ3Y2p6V3A0LVo5OEZkRVg2RzZJY21RdmMxQkVoZFg5SFluMm9Ld3ZJU1lGVm5zV2M2VU9JbE9ybFJrdHdLdnExdUJIU1hnSWk4dEpvSWJRUmZTTXJyeHlSOVltcUlaSlVxVktzOHZWNmQxS2p3RTFfVGpqbTc3Um42ZFZucktqTDBlc1hEbmdpWUlxMHpRSlJ0ZUZSbVVhMnNCaS1rZ2pfeUd2MkhoMnVQYmR1ekNld2hwbGZXQTlTS1lPMGJfSHZac0d4MUZJbzhlMVRoX3NnSFZ2MG93MXd1dllNT0w1SlNhQURPREJwZ0Z0YXpRTXkyVGo4Rkp0RkZGYTByZU5aczJXS01qMmJBOS1TN1p2d0hzZXZDUWlnMnJ4bWFLazg2Z2NlaTlfb20yM0hXUEtkbXN3NExJME9kWDRsNWZJZTJaN1Jjb09HaXRqUWl2SFNCX19UWDdFRXhCSEgxcTg2a3ppal9CWjRQV2x2Sk5aY1NSNmdWYXNkbmVuaXpzcDkxQTMyajhzOUFWa0tTREJySXdqVktockpScjRneVUxSklsSDY1NFRSbzE2WThUTU1ISnQ5ak43cE0tNXVTWmdqeGFhUXpFMGVsQUtCWkZLekxVeHVSbkpLZFZsZnk3SzRIRVB2VmN2RGNWNzR1dlRGa3BmcUdhMHJMOEVKZGxIaEY3ZFlmVTl6T3BnNzF1MUZMdmhETENXUFpPRXU4dFlXYjVvTlM5UW1ieWg2a1B2LW5fTEdGeUJGZWp3bVBtci1VenRuT2I0MXdmY3lid05jVmt4SU9fUHQza0drOWZrQTRHYUFiVkkxMjY4Yk05S2tkWmd5UEgwS3lSeXJQOU9uUEpRNExUVGhVVHl5Q0NIYUFWWGxJa2Rtc0s2S2FQSTFyZDR1Ui1yUmVtNjJhNnNNR0ppUnRNa0swLS1Hc0hmZzYxaTN0UXFKMFoyRWpjMVdBYmpTZkM4SVNYUlM3clRybjNaZ0lUb0lNNEpZSWdpV1lZNlg4b0FFT2ZhdElWY1hqV0kxSlhyMmZuVjdha3BaRDJESkpfODhVR2hxX2ZfeGlpaF9tZWxNYWo5dDVYeU5Meld2aDNkNVlmMzlqdUZZZTZIaVFhdFBvVzY3azVod0tQcTdFOVFkSXVpV1A2Qld2X1ppNzVNSW9vX0tscVpQZ3EwcHFJMGRfNDNYRldMM3M4Zi0wMmEtcmlLeEtDNUpuZU1rb0lPcXAydXo2ZzZnbkc1U0gzWW1DM2lNekxtbnNSeDhGal9ncjh4b0M3b0dfWXIzTHVqbWhmV293SS10dDcyQ2U3T3BNR3BEd3ZIUHEwcko2Sl9VWE1yY1pKNXRBU2d1TllxWXdrYU5BT1FoYVA4cGlRSGRJR2g4dHRwdUhZelZ2ZDN6UFM4V1RqU0JHM2I5dzZjamNzb2ZURktUdEQ3OVNrOGp6dWdDRUc5c3FudWJJVTNTUUlhZThnRTlMQWlTSlh5QTA2UUF5NDc2RURUc1JCZnFDQXB3TklEYlkxa3h6Ujl4X1JhOTRVWGEyaWY3aWUxdGVjNkQ1WHZIemRfQnVUQUdBdUgyRV9UaVRnMTZBWjNKSXhCalZvT25wVzBjY2E4bHRpQzh6Qi1QM01qSk5EdHBZdkNOSW9QeFJBQWZGN2wyVlpiNkQxdGxQNFkwT0NnWGc0ak40eEF2SFY3cDA3QlluM1hkMUNhV2JRdDIzLV9VLWdfVWlfVmNxNnpveFFfczl4Z2pDUW9lLS1YTGxVYWtyeG5xYzhyZ2VSN290MWljY2FENTZ5eUNDcUtrenhRWmY4bU5pSldsdTB5VDR2MUVGQkJxRThvR3N2WW55S2R4R0F2Z0lrbTFaNWlaOHA2V0dKQWxZbHVkdE5SR3l4LVMzakIwc1dKbXhxMEYwZGV6TkpjRTcxQWVEQ2ZJSmhQVVVnWnhLMTRsRnJYc0NJeUNyVUtyVzlid2ZaNVc0S3Y5c3RjMzNrcVdpanhIay1iSHdZV21NODJ3eWdic2MzdmltR09IelE2VVlxU0pIa3JsVkhRa3NzQ3M3azM0cm10WGlEVmN6YWd2ZjdvMnFGcWg2REY4WUhxOWl5cG1xMkdkSFRHQjlfTmdLZ3lNMm1uVzNic2d6akNiaTlBNnMwY01jY3loUW5mZ2xIWG1FSVF5NldFQjZPNHI4cVhNa1Q4U05zVXR6bWlqN2dQcmpMYzFQOENiYU9aa0NUZHBNWm1YQ1JTd2cwYTR6SnhlMmIwVzdSLUhGcnpOMVNjanlNeGxfcXlTalI3SnFyQjVqX2d6ZXBHWEI4OFhORUdrRkNnZzVHMjdwbWJlc1M2d2oxLXpMWUZ6WnZfcnNLUHN5R09Bb196NjdoMmYtRWRTeGJNeVVzWmFQR0ZnOXc4TW50c3hEYUk5Z2hCbzV2U0tGb1NUaHFHWTB1Q2dMMjJ2WVBsUDVTclAyQXVxNE5xWmJlbWhkb2NPZTVYbjVKd0xDNGFQamFiaVFfLUM2WEgzRGg4anpIUzFlOUNMOXZlbG1kUF84RFh0TUNCcmFFc19fYTlTempOaFZ5RGR3eDJHdnFuTENaWU9KOEFJQmRvZ1JLVEp6NVRlQWRTUXI1YU9feXZPODJZLXp4b0JadFBtVndEeUN4QmhuSWRGWlZ4X2MySlhETmlJY0VsbDlQYUthd2c2czFDSWZnbFJINXBZX3I2RXBadEhxcjVjbkRFMTZ0ekZpRy1kemd6MHhfYTRiTXBuR0lCN3ZPWTZoRzZ2RTJmZVlQUTlXNnNaQTE4RjJDaHZNNjZmRVVDZ09iQjBBZktZQm1Rc3ZralBwbnloc1dCZHVaYVQyMF9mc0lZdXlqS1daeE5SbF9qTUxyaU0yWXo5SklObTZoc2FERXdESF9MeWt5dmZocktITnlyVjQxSWNZNUNreEc2RTYxbExTVE95bnhCdDhzcnhIb2ktQUlnY2RyZEJDRlh0Q0Q5VlNhWmFsUTAyY1c0cXRGdWNKckJINXlMRXN1NDFmdmllZ1lySlRTbzZJZldGU2ZGbzRmSWl1bmtsY1ZyeVUzYV8xRWFsOHd4YUVIcF95dDN3UWdzNlJrN0lGMjVXTUFVeTdhUEUwbTVHUExObXNiMHg3NHpta2lHb1JXbXZJWGcyWTVNLV9tcENJYjdHTGhtdW5JVnBmeXNXVVZFMlhqNVpuZVFjdWtuZzB6aWwtSzNPVE5yMENlQXhoLV8tRmpHanhsT1VlTU1rYko4cy1KR2E0OG5ZM2NJckxnNHlpenQtZFdhaHRsbjVZMHo5RWdOTHRNRjlCLWl6TU5UVXdubTN0LVFSeFMzZUFJZlpMb3BjTjRMYmtvMXo4dFRIbFFsUTZZcjNYSlJQMmNlNlZXUjliYnk3ZmRpZ2FhR1JzaTJQMlNzSzc4clVwRDJxOVprc1lLb2xSVXBPQTlqdzVHc3lMc3dYdzBaaXJDdVpOem8ydmhWUGhCUGlsZWxfMVliWW5yVXhERG1QR29KYnRrdmtVY3d4OEhkT2hwb1cxQjV2M25PZmhkRXNrcmpOejRXeFNhQ280RF84aU5IMUJNVC0zSmVFM0ExSnkzeEZPSXA4N1pMMDZwck8xYmFNSHdjM0lIWHpIUnNicF9IQUtJVF9sbERnQkU3a3JkNDJEQndScjhJRXJpU1AxdTlzb0dmZms0TEdKa2tkYndCTWVXdUxjRjFrRWdYQXJUNWtXUUZhV0VZcmtZZFJPNk1PMjBYYVRzSndBQk5nU0tSTE45anhoOUZBMXl2cEZZUlVYT0tYOE95Y0RMSjBKd2dLVTFrakVJdnJYTjVuNFluV256TGJIRW0zMjFWTWwwMVI5Nm9LNmhueHl3cE1NVWZqUmtLXzhKbXJ5aFNyUTFOTlczU1UwUkN6NnpJb2NhSFpYWFp4VENJUDZ5bjRKenluSVFrTy13ejdqdjBCLVBSaEZRYmItcHkxYW1KcTBXSUdldlBJUkdVTVdId2ZtNXZlQkhxWnhJaWVPR1RTRUt5cHkwTHlwLWUwdEFIUVNQVzdFaTBpbnE0OWxjRUpsc0poZEx1dmZZYkJYeHY1T1k3RHdlVkVqYTZOdHZERTRIRFFUWkEwNnpmYXgwVV9WZWtqX3VzT21qcHNpU1h1dXBJT1pUa2FiMDVlTkg2S3VVbE5LZnZVeUNzLXVXVE1neHFLOTY2SHBLLThrU2ZxOWNVczVKTWQyZkFlcnMxR0JMOS1VTE9sUjhqa0J4aUhGU05rYjlKMFhXNllSc3V3S0FqWXJZX2dDdHhKaWRxeXAxMXVmRmUtV0d1d1R2cVFyQXd3Q3Z5Zy15MVlJMTJwTEJWTnVTWjh2WHg5WWx4cmdnclhobXVQMlJuLXJHM3BiV3ZCeDVWUy1GLWFtOXRnaGM1THBEX0ljMmJMRENnd1FmM2xtWjUxYTI4T2h1RnVfd19zanA2Y1pMMmdXN1lOX2ppUE5qOGlHMERtc2RLbTBnTDBiNmMxeXFnUHpqb1pJbWpfN2dMeDFuVk5CdC1fT1QxaDZVcUYtdXI4Z2NId3BlQ3dTalVXbTRfNWFkOVFWd3hqVmItbExKSmd4RXBiRFVxMzAtREFEbFdCb1hNbUhYaXI0ZUNmU0hCa0Jmck9jdEliaHdta3hyRWR5V0U5cXpXZ0xQX19KOXdTU1BZdzBDb3hhYmhRZ3lOdFE5UWM1NkRpd1hydTFiUklFeGQ0c1RiVU1vRFZaUFBUQ2RxTDJpU1g5N0FrOWJJLThYS0JLSDVPclFvV1hCQzVpLXBZX05vUVhRaFQ5MndTVVdWbmpfWFJKc0puMUtrVHlmMUxRSHFvWDlZWkc5M1pNeGlZREpmdlB6OUEtTUlFTXViTldFTUdkNlNkeEZiQWFZMUowekdiRlVxYXA0bnk4MnhHSWRDWDRDLTlaVkhmWFFGUGFaTlFNVXVtNWYwaTNMMFFyVkYtYXIwX1NJazl4UjNaaC13SXNMdUlwb0NuZVB3aEM4alg3a1hvTThOY1BZMzd0MXZMUXZJd1FQelU5WG5EZXdzaEpxbjhqMzFDanpoMjJ3UFhqbnpXZ1NiaUU3NzQ5S2NnTUJmcWU1WmlIYXpZTWg0TVlJbWtjSnBwbEd5V3RZdG5VMC1vWjh0S21QMzhHSFo2c2wybXhPZlhxLVU2ZG9VaXZkcUUtZnJEYjNNUG5rb0tNSHVSYklVbExHN3UtSGdLQk5YT1dmZlhJWXVoMUo2aThSZ1hVVzA3VDR5UE9lR2lxVnJvckE4RW0wa2MyZ25nU2I1QkI0bGN0YnRmWmxidDRSYmxaUlRiaERJX1VJcWxheFppdUJNNnRfRmZuZEtlM1F5TEdIYmh1QS14bE0xLTdPYkhnU082SHZaU0JIemdWVFJlejBKSnVUWWNwZXVDd0twb1dfM2JLMVk5aG01UEhYdTBVZ0tYM0V6Y1BYSDZuTzJMRFZieHZNeG9ncURzY2pkZmhTV0syRWtBQ2tTd2VFTndBV3lJa0l2a2EwT21vaWY2bUVSSFhfc1pBWk9zRDVoODNneUNkQk45WTlNdUFDVjEyanFMUUVqMkdkWDcxU1A1U0JxRi1CbE9sMnJaamFZUjJzVGQxOUd0RUJWQUtYWTdQZUZQY1ZGSHlVanZuMVJlMjEyNmluQW9JVTVRN3hzUmlQNWVnWGJYM3V3UDhieVNRSGZTNGZoaC02bXhZQnlmTU8wVGx2SWI0djZaaVVRSTdJNV9XX0VoSFdtMFBVUlZKRGJGREppeTBjaENUVGc0NVVSYmEtU0ZYaEdlTGxXVGpCVjlSelJoWmktcmN2a0VUcFZTcXVqWFFxRjFjbnVWaUF5Qmt5U3RXSVpNY2tneFRkZ2NYZ3Ztd2o4aEt6cEdHN0dCaDN3UEhQeXdjakl1S3BxdV9CYlA3ZHBMT3FaU2hFMmhCdVhlRU1GclBCZ29MbXUzQW1uRzM3d0FONGhSZm5fUUNZU0FyWDhtN2w0WlR0Z0dWcVN5d2xXMHNiOEpaTzNtUmZ0VjZweHBmX0dUTm1UczhFeFlIUmpST0g3ZF9SUzJsVkdlNE9sSFFFNncyT3NJb0doOGRNTnFGeGJQVFNqREVEUHZhb2ZydTlHZDJEYV84eVVuNHQ0U3ltTTA0cVIydTJ2cFZ6U1BZaWZJX1IyRXRSbGV6eXNUbGk0bGVmYnM0YnlLVk1kZmVzdVN4Yk51M01zUDh6WHJpTjNjYkpOVXpSMzBybkdxT3ZNaExtemx0ZEljbFQtMjZBUGJwVU5aS0pQbHJ5akRDbTlaelZQMmdVMDlyS2lxb0xJb2EwQWc4QmMyMUp1QjZFSG53SHdiUjhFVXR2Q093QWpRU0Z4SGNtYlVLUnA3a0ZyOFp3N1phZXpLdXJfQkVMZ3RJel8zM1ZHQ3ZINE1pZjAxb3A1c1RvNHNjME5RUlo2bGFBbnRMU2hCcmNCeWtHQTNCc21NUkFCUE1XMFhCRWxXWFhmQnJPYVgxd2NNd1Y4SzZ6bjFXRktscW83djZRWDZ2SkllU2JFc3ZfZ1kxbDJDWnU3M0NpNFZDQk84UHFNUWlrQjQzMjU1VzlrcnJjMll0SGVFdDRCS1BsN0E4UzcyQ24yX2U0T1dTVDh3cHN5dWlSdC05TVY2R0ZwU25OcUFPUG1VazR0MGpsME1rY1FLZjVmdmgyZkV4M1A0RVZfVy1fYloyRlVoSVZRLXV4RExMT1U2dFNOMU1lOG9QWjE0ajNPU1lXYmRtMU1TQllSck16eWllWlR0T2ppWUloOWVHdE95a0dBME85MzFkX3hJSjFVZm5QQmFKNWltQW1jRU1hbVhUQnJKWkFQYUV2ZVlDYlkzVzNGVDI0dmlac2V0WXBJUkNVdVZidmFDRmRoTVdjZXB0N0tfRk5HRTA5LTJSbUNzbC1SQnJPaTNRc3ZSd0tGVWMtaWUyaWxXeDNSV2pjdVV2Ym1RWUdJMDdDOHZyd2NtNVZ1eU15WW56V1ZybTAwT0JwWWpkd2ozOE02aXdhNFZ2X3FQNmxVcFhkZ0hST28tWXhVQkRCVVluVHhwSXpSbEd5WjBIWHpZdUJneDFpUzk0Mmd3RDhBNTR2Y1RyUk40NFlXUFNZZmM3U1Y4WFRKNWNuamFERjRibnFwMXdHZmpWc2VZQWYtQVo3ZUJGQ3pQaHgydTVPNWdJaG5vMHV1U1B3MDFqVHZjeVludkxxZUtxSVBIWmNVZXlwOGFtQ24zX1RIeG9lRk45elMxakM4Z1JldXJORXc0WkwtU3k4YWpGOEIzLVBnQ0NQU3BhazJxWl9McW9HcnRZaTBHTElYTU5xbGxycnV0T3diLW9XMkFyaVlnZ0x2bWtkVFA1ZDhuck5wR1RydThqVjFDNmxuTzFXcGNLYWxLX1pIZkxBWkZmcHVxa0RaLVZEVkVNTURJRWp0RGM0TG5id1VsOU9TODhReWtRRUhtb0VZNE5janh5UzV3YVZoVTV5bjFCclBXUnN6RjJ3VzlJcDNrSTdJQVU1QzdDS1pLTklNQlR2MGNaRDRkOHg4NjUxeWxFdE1uQnpKdkdZZlNNQmxCOFV2ZGtld1I5VXRfeDNQWjZ3dEZrMW9xeXMzTzBDSlBlanFON0NLQ3hobHFwbVg1enV4d18wNmlYNnlDek5FbXIydFlLLXpFcDhVNlozYVBiRjRSV0IyZVJWZVVfSUNBZzlVWWxreWwxcU44MnI5UXRjbEFTa2M5QWtGSFZubUlsTHdxU3R6ZXFxLWk0eUI5NkZTT3J4VGE3U3hnQjhIWWpNZ2dwNFg5YTNMYTM0d2ZSekt5Rk5aS1hwSzY0UDBaU2VvTTVIVHB6alJHSk1RT0QzcjhnekFVS1ktUUVDQ1Q5cFVXMWlDTkxVZjgyai1naGZUM1BxNk1BNzBXSkxXV1lJUGZFWXJmTUFzbGRFSkhzbFFCbVpqRkNQX3RTVy1nMk9oMTBiQTR0ODVfSVZBWWc3bXI1c1ljWEZYMDFsdC1QSkpWOXNHR3ZhbG95N3pwOHFOVEpYOEpPMlRBLWZNdVlGUkhnM3Z5a2I1cUVjak0wX0ZUV3FFUk1jMWpiN202RklDdEoyQVpoeGRfQzJiVzVQakh3a3hoWlRfY21ZeC02X0lWWlN6VWduMTB5bUZJWDJpRVRTXzB6Qk9PdTdsellLTU9JUS0tODVNMWNRWFM3UGhfTktyWFkzNGxwdzJOcUdZb0RTR1ZfRm02UDlMSUNMV2hHd2s4czNfa3NCejZXMkd2LXNWU0RuWGtnTHpaU2ZYRkVfeE1NYXJRWUFtbEhIbEtWVElWU3hlMEtjOHF4dEk2SWlOaUlnNVE1TmRESGplZ1BjSE1JMXRHNS1kTERGUnRiNDZ6alF5R2tQbUloamk5ZTA0ZHpRLWViTmdMNG0zbXZnZHZLSmc4UVR4WWZjVjRiU1I0ekpzOURmT1VCWVJhdllTRUJ2cHVVMDNUN3FXLWpOZ3lyVmp5YmJ6aGJjMmVaR1NMbVVabzI4NGJaalQxZG44Qk5yUXF4RGtaRnpDc3k4VTlHS1V3STQydFFtai1oNEdjYUVyME14d0pwTmxaTlk4bThESjJQQl8tVHVoWS1oQ1pKeFl1Z1FuTU1nV1lweFFoQXpfdlZzUTdLMU9JTTlyd2JvN1BwT2hJNlBnbWZRSU9KVXlKb3RReFJjb053RWhucUpLZy1yT0xIWWdUaUxVWXRiWGVzNkg2TFdoOVBXQXZRRFczSVJZekF0M2hPR3p2TkFPUHFRRGV6TGpZbTJvejk0eUxhYzBnYkdJSkt0cXJLTS15YXpoVWxlMW5nVWNCeDlkYzBCMUpFWjFoNll6ekJLVWNfRnJBV3JsVUx4UllyMV9QUUFIRHhWR2NzTWVhQkt6N0lsMXo4RUdIRi1Sa0g0d081Y01aTldYTC0zUndIRlFMXzJoQmxBWjg4N3lSLVEzZzdKU0ptLWpoVVVxYldfRjRQTUlDbTdFMk9aZy1QWi1jcEZ3d3VMSzJjVFdkYjlTMXZiZ1E3TkdOSExIdzJFY1o4VUozaWZyU1p1aTR5TzREM3VZX09Lc00xN1pNay1vcFdGQzU1anF4SmxaOVJBbjhBcFM4MmNZdGpFbkxock9vSmFyNEJjTUpaVm5TRlBQYXZWaDh2Z1NrbHRWa2d3YXIwWEZlTVdOY3hnY01Vd0REblJrR3VncncwQTZvTjdCMVFOWVlNYW9XaEttUGZnV3MxVmdzRlJLc1lybXBvUWJUd1UzaGp4QWxCczEyUzF2eFJjZzZDZTI1bGpxb2lrR29xcEpSeXIyQXpHNk5UR2wyVmFRNVdQcm1zd0RsZG9yenNvcG8xYWNxbFdpSm92VHVOSGNabmgxY3VmWUF3VDFNYTFXQnRwN0pPUVRCci1pcWFzMHlsZEZQYzF2ZVFINE5DYTlOaXdrOGk3bVFaWUZtSEJoRjdLSFJ3U1RYWDVoTzV4N3NkOURxT3dGZDR3OFJrWllnWi1UVnRuNVpIU1MxSTBOQTdHZ0g2S2JUYnV4OVUybHRKVERPekQtaWxHSDdUVVBWaVp0ZUhwTEY2N2tVaHNRaUZxWHpTakpQX2F5WFMtQlZCY2EwZnJKQm5Wc1ZzUUg0N0FfSnhGcEJMZ0tXcE5wYWhKbFRRaURxMlZUcjQxdE01UnA3TVhIWVhsRkw3dVdHbllWcXdQUjVFeFYtd3ZVTUpBWWlMQk42MVd3bWtKU3l4ZjNGa0FYQ0F6R3JCdTRIY3pkazVPS0k0THlySUhYbTdQTXFuUC14cGdVamVhZmoyZFM2RVlKLW1BRGs2cGQtemhZODY4b2VvWnhob3JaUkhZOVBuQ1Q1em0wUzdSVFVTVk5Kb1lvazk3V1JYQ3FzRERSZTJkQlJ3bHctNUMteXpxS2ZLd2VIN3FreVFEeDktY3d3R1dMbnNQVE53czRPOUN5T2oxQlFodzctODBwSWEyUWZDc3dTNjRXZGhZZzBuSmc1OWZYZzVRZF9YWFhLdGJYS21scV8tM1ZDN19tRmVVMV8tZnRWbFBPWmNxbmc5OTlNV21XOEpfTjBIYTgtQkFmbWNhYzMtM2ZBb0hiQ1YwQVpXRklMbjZWamRxYnFPd3pacmVJQlYxZ0doUE4yNTBBYkNyZV9uYXRtcGZRM2U1ZndEWWZMTHpZa3poOEhRdmVobnAwSTRfRlk1emVLbWwyUmJfMUZqRXgxdEZhQklNUXVlQVBxSi1qX1VyZEJKQmQxUXFWZHlXenVtYTI5MjlLQ2UyVGQzaS12OHpEbWdnbjVnZHVwQmRoR3M0bnRvclRJOTBXZlJuZGNRWDJPVk91X0Fjd2lUejBHNTZ2UlE2Nk9mUDVKMjFFd0ZEMldjVmxzOUtEQVJqWW1yY3ZyVDZ0TGVDamF2emFnUk44R19rVGNoQUNxRU1zd1FKaHE3ZHV5aUVOYXRZNVlmMDlWX3dLSzhvWGo2S1BaMkcyVmloOHAyOUtJazdETWttdUFVRWRBbzNJWEFsTE51RkJZU1g4bFYyV0hXMVhmejVOcTVLZzNBUFRzMmVkbjg5VEtlZkZEZ0VTZERHUjIyNDhCNllSd0dQX2J4UVROeVlMUUtPX2tHMy0yc2l3Ml9XWHV5WWtmUjNKSE1KWlFtMlZaemNSSXEzRXR3N05XbFVHSnd5aFNOdVJ5djlmcTJzc2Jfd2JYSVZZWmVvQVgtbFl5SGJsRDZmd1RUcTVKY2EtaEhrMmgxLXpsY1pBdFpjeXFUMXBrdUlkNVJLaXprNjlRdTJYZ3BWTUtzM3lramxybWE2NXdFVnNEcWRFamZJc0c1bkllNmZnMFdwV01NY1M5ak1WNGxHRmcwVl9DZmYxNDNDLVFHWU1OSmhhcFk0RTJJUTNtWTlxTVhZbDNaRzJ6RXZYREVQQTlMaloxNTgxeDlPQ2cwM3l1WDE3RkJnelVaYzFMRGR0LXZJMjhzU2t2ajRodWdjSGtyVHVURmtDaDdfRHBuRDMyZkw0LVMwbHpfai05X2ZPMFJoRXhpaUViV05BOWY0YmNKdnBOSjdYSjVkTmlaZ2xPZFYxQ2JYZm9ab3VKXzUwUEl5eE8wV1pDRkMwYzJlUzFkZ3lMRzZHOHpzTHdCclNzeXRDNXV2a2VLZTN5WVVBdmxSdTBHZVZMR3IzckJTb3M2cGUxVUU3SWRXeTRhNlNmemR1Q2o0OXh4bTBvTTJSaWd5OU5FU3hKdnk5dWtXV0h1Smo1YXhlMUpVallGTnMxc1N0N0Q0MjJNZ2xqZlVCbXE4M0Rib0o2cWNpMUJHOXg2RkhlMHF3SnFjRjlmWFBiVTZhVFpqRHdvS04yREpzUGFZLW5nZWxCZHBNMElXcVZOUmxLM2dDZE1BTUJNdThBbW45My01QjRvclVZSnc0bXJxcGdleHJacjNKOTREYno1RGRMbHl3d0tLUEJ6dmZxMTE4al9tWVdjeDdkb2tXY3doM3kwNjVyeTF3MzF3Z1p4MTloalVfRFdfaUFwdDVMVW4wSGplTzRxVW1XRTNvT0xROXB6SUxhQU9KRGtQWldXdUFiTjBKMG9RUWhUUmhtQ3BUMGk0dlcyMTByaVNpdkg0TElwZTdTblZraVp4aXdCWDNESXJxSWQ3X1hWTFpicWc1ZTFrUjRVYVpFYTYzVnFzQWpNakxzSFFaWUxWb3JUbVFadEpINlBoc1U2NzNkNkJCd3BGTUdSOVl6dk9XWXBGM2dTR3NQOTg1THI4bzhTMFhrVmZoeXk0OF8tcjlSaThTM0VFX3NRWnVOZFFfT1FNRmdleC0tck9BNVlQbEFNS1N3Zkx5N18yS01IRkxSeU4tVGc1aWk2aDBPUEgzMVBkTjNYTEw4Y3hXa1kxSTdGRGxObnVoR0VDOGsxZkZMZjczTUVndVpVaTFkdDduY1oxclR0RG5jQzdGNHVBenhkMnJWaFZGV1diNzFpVzRPd1A1d09OTzJlNXRneTJqVlJzNkxZaXNMS3Y5d09uZU00eWVlQXpnSlhYRjR0aGZoZ1dKRnVZeEtXRHl3MWMzUnA4dkt5ZlgxTnM3bDQ2LWNNOWVHYTRiT2swa19NQ1RQM0syTXlwMVFNWnB5UzQ1aThGU3BNMjNSdmNnY0k0anlSQkNYOVNnRjFwS19KQkdmTzd2anJyNUthNjJPS2dldU5MQjIwNFh2MjBmcEJKek0xb29WWGwteDh4SzFIMUcwMG9BN0s4aW5qZFFCRGxWSHVFQTF2SW00NThMMk5mUzdaT0hZTlVhS1BRWXJRTFBsUGFvaU9adW80WnBWY2tZTkpmRHFqYl93M2JpVnF4TGhBUlpOTklEenpTY3o5NlNQeWJoVDdsbWNCRWhHYkhiUG1zLUdGd0lNLXBKdEhfSXprdmRMdV9kdExxcDQzUVJBanJzajJZNVpjS2JITjM1ZE5DclFBX3JfU0tQYjVPcmJtS0tjNFhLR2VHOTRtQmxSMFl2bmtURTJ2UkxseVJKdXpBalRzeVh3aTZqb2xJTk5ncGUwVWJ5YXlHWkpwVlB1OXBzN1RQRFhMa0hoYlB4TkpfUzhIc2wxanF4T2F6dGZPcWxfclJTWDZnc3NnYWhQTl9qNzJFN1FWNzlTem9tYXJSanNNanRSR3B2NFBHNWV0bVVSWFhuMWNtYjJ1eHZGMVZBT0RuYS1PN0VpWDFYRXhHNzg2QUlmVXhMQm5CcWhwaDRSSVlZSldjVXZDcjJiVWdKV3RQdWc5OW4ybGljNFJYMThvRFFzbXdrOVUxQ242ZEJXU3lkYWVDLUQ2cnZUaER3RktuSVRkalZNUUI4b091M1JLaXVIRkpHUWE5UXMybDNOdnBGMEZWNDBPMEdhWWlEd0gtdWlXZjRGNVp5N1I2OEJiZ1QyWXBLRUVtc1NuQTQxMzd1ajlKR1ZXYlZIYkx2bnVNNDczQWY4bHpJU1BlTkU1T2NUZ1RMOE5yQklMZUI4QThJdFh3MzAzM3FTdktqTElzS09Va3l0NlBWb3JHRWF2ZTcwdzlBWVlGMmxSQ05aTjBhTk14UUJQSWNsdjQyV1ZQQVNPRHI4UDA1dllrRXNwSFdOWnZWZjk4M001cWQyZFpXY0U4eE1UOVE2eDBuSktZVncwZ1Fpdm1BQmYyOGdfa05uc0Y3TzhlZkFxT19hYXFjaEw1V2F3VzNUdGNWdXV4N2I0S3V6UjhZUGNha3FqRUd0NzlFbXg2QUp3VDhBel9vWjhGSWZGY282ZHhNLWlJdUVTZDRfeThteE1yWXZDc2hhOGkyeEQ3NmRqMm9zaC04UkdwckhuZDI1bkwyeVd3dmtFalBiY2w1d29yX2xJcklEd0hYUXFHdm9ubG1jU3RXUFVRc0hwakYzUmF5TmpwaVZDVmUzQlp2RnY5akxZX2l3bWlncFJsdmpiVGR6THBXdVQ2UlF0TkUzdUNnYnZ5Z0lMVzVHTURjVE9YN2V3QmhJTllIdVBjT1FfTGdyS3FsZ09taUZDQ0JpQmJaOXFnSjR1MXZZM1lyd2NwQy0xN1FoSUtvSlJZb1FGUlBNUnluZjJJT3Q5cXJVMjBweXA3UXFTXzY4cWtyZnB6Zmt0dGs1R3c3S1o3RHpSRWtPU05STkpTelh6TmtQVGpzTHJfYVNNWkZHWk8tTHJ6aTFjY21Oamt5a25UU21namVINDE4RjRWQldnam1IdTVvR2pYUWxsZWFXVjhQa1ZHMDlUNXNBeGU1MVliVGlQRm1aSkdGMmVPbVEwdl9uTzFRdnFCeWlFVDFtVUFwaGFDQWh0NlBld3BXUEpNNDdkR2pMUXdFN2RmNmtadk4wUWotRUk2ME1JVWdhUmhaX1Fkc3h4VWo0RVNHUVN3dERDTHRHY3RUYlprWVFsbTF6OUxqWVROU1Z0SlJFcThYMmNISWRYYW5NamVzTEt4ajVMSW9OT0s0X2NDeXlRaHowaUp4M0Z2V1RXUWdCN0ZVSVN3eFhhSWMzeTRaT2M4Wkd0bnA1NWtNLVNyeU5vWWFxNkd3UlVYSUNTdW5zX1QxUktpSnh3d195clZ0bnVvSkp6UEZMdGVmTklFY3M4QW9VOVZSRjhLUDBWQ1VXRl92cVVqNl9PWXloVXNEXzJqSXdBQXFvcjlhV0Rlb1RpUmhFWktJSVFfR0J3bmpsZDlVX2V2bEhXS0lCZkJUdGIwakY5RnFkamIwS1duWUFCWlZ4QkRVcFh3eXFEa2V5Ylg5NVEwTFJrUjZWSjVwdGpyQ0l3Nk03bTV2elg5WGpYdlltdjRVZnZVYUhfV0hZQmg4V3FUdUtqYkNsUkRGYlphZXBZLWJqSExiMUFPa29uMDAxQllySTl2WHAzMnpfNFdBdzJVN2tmNkxaWXd4VGY3NHJramhzYURyc3U4WEJTXzVVeFR0Q0NOcVRDbWhhTHdTMUxlREJLSEVGV3hRQ1dPWVVCUEtyQ3AzVnFneU1la3ZOVVFDOVZuRWY4VXVZOUVuZUtmWkZmRFY5a3lGMHJvTnlaN2UtYVJTN3hfT3hzX3NiWjdTLUpIN1o5eE00TVZwRmV3STNETmVnd3VLdU81c0JwdnR5dUZyOFNZRWVCN0pLT3FsblZ4RVNjZWNITUdrZkF5QzBkdHVsVmh6eXF3bkt5aUxUc2JCOWZuTDl5c2Nibnd3dW1sTWd0cDhJdHhMOC1FYU85OHZZMExacXZ2OWgtR2xUcDJTV3hXaGVVaTZZUERWclY1WGRCUWRNNmo4VDZ0X0xMaGtqWWNxU0ZnM2E0UTlubnpKY2REdzB6dkZDNTBRbGpNM0FPVUdveFdDZXp3WkZSX2JnZHZRaTFib1dCeTdDdG56REZpOEUyU08zdDRwOHRPMGhxNkpaRTY4c2dBNlkyMmVBUktvS2wwZm04NEFzcldXekM3Sk43UGFiQnJWOGxGRE93MGNmMjM3NzIweXdWS0c1U2FrQmIwU1lLeHZ1SUpXYW1mMV96NXdNdEdEaG5tUnFfbVdiOW82LVo3d3dFcE9yQW9GcThvVWF1UlV1RnoyU3doSDlLaFNXc0VfWGxxVkpRemJUWmlBUUZRaXV5R0tFdUY4T3NkRVZjS0xmVTU4X1lrZ0k5eVlpd3dRZ1JyYTY4MzhJemxSeE42TV9rRHhVZ2c5TGI2MUt6UjJqRUxLSWI4VG1jOXhReGg2YkplN2J0SkdsZDJNRVNMM2JfWmRxajY3V2R3ZVdwclIyeVVYTHJiUm81UzRwaVFmbzZ4TjFkZXdleVo5UVROT2EzRVV0cE5yUjhRUFlBZFNGT05jNEVTU0gwcXJ6NF82UGRBVWE2LTBKUXBqUFIzN2xqS1JsUFpNWjR3VjY2ajgtUFJ1VmNaeGVKYWpDSEFJYWZBbkRBU2QwN0VPamZ1NzBsVmJaRmpKVDRCc0VhVXk0VEdCdlZhZnA2UmJNbjgtdGdvdVJsSERsbnFKRUdvMzJYWGZBZ1drR0tOY3Y5MjgtLUREQVh3cUYxamZGaW1ZaXhVTUNkcFQtUjl1UG5WNFVhME83LWNiTV9wZVJYV0kzeEQwSnZiRndWVkphdV9hVU03ZnhYWGtNTlVtcmwyeEZNdHZtSmtZZmlzTjhoNDZsLW5RQWhrWHFUenBoaTNCZWhHS0lyY1JZRTBFYU9mOGpjb1kwWlAtN2l1Wi1iOENsVl9ELXYxQ3doX2h6VHRKTENsbXRMZlhneVVFZFctMHJlS2NDbEVvS1FCYlo5UzdIdExnVDZzam52WGVlUDJJbHBQNzNqaHZNdjFLV3hCSDlEMG5nT040anhydkpUMDFNcGZTT3BkOGMtWWNJbGhXZHBKNFgwR3N2by1Rc0hNclFEaVkzemd1bFdTTGZ4S2RQSHJkM1g1ekltZjNkbHRBbEUzTklXdlg0Y0Nza2xhZ3VDdWFQUjBFVVlOejUxcFJ0WldyNzRkQ0t5eWhIaGNiMmRiOXUtUFBGSi0xVHk5ZVF1ZnhXZUNvenZKb3dqa2tUeGVFY1FzenNuVXktTnd3Yjh0b20wTnUtSVNYeWhLWmZ2TFhPZWJhUHRhaFdwRTlXUEhSNTdwN3dxUTY2eTBsTUJXa1p3cDJsSHRkaE1BRThEcUhhMnUtODNHZlN2dkh2cTlDUEhvbjcwSmVPam5PTDFzbWVWSFBNUk9ZSlVSVkIyaERnWm52cl9ESGhfV2RZRFVJcVlIcEVDS3FHdl9EbVJCM3dNNUY5TS1xRndsekVMci0yX3M2OWFaYXJvMlZseHQ4SFRfdjlaMzFIXzdHelZUSjBYZE1FbHh5WGRfZFpSeXRrOVQ0cjZGZXp2TzFoOWdnZEU2Y3M1cUhuR0VrVGtUMUhERFBnVC1UWk1MTHhKZmtVblVnd3NYTEF6U1dTREZHOE1iQWNnRVlfSlBCeW1yZU11a3dCM3YxVndGUk5DT01PRVk2b245dlRYZmg0Qk5NYU5Qc3ZJaGY0bHlKR0xSSERaWHFNc2ZTTjFtbldTcTF5TERseEJNRUt5NHJqLVhlVHlRMVV3NUpVVTFicGQ1VXdUNm5QWEZtT1lXSkhXR0lPOVJ3RUp2TnJQdTg0eUhfUnRhV01kQjZBOGJ1dG9mVkxrMjNGaVVHc2E5cXRMcDY4b2tZYU9SbDk0WlBSUEduS25QWEJWMEFmVVhUb0xvVktsVlZ3UGdtTnNKd3c2T1FaNVBKczBKUkhhbjhQQ2FoRkUzLVdDSnNJUjdTRFo2a1FGeGI5MXRYUFE3eW1jOHlPclEtNkpFNzFxQlVQQWRGNWFjV0stdlAycXFFV015d1pvVkx6VFFRZW9oLUJTd1cxb2tvcW9PTUlXTEJKOTBqSzNrMlVvMllsUkVVYUFEU3QwQ2lScnNKUjVLT1hEWnJmeWZzcTYwMXFaeDFpMS1ZM0ZmbzBFLXZLRGp5dU1VOGNQVko3OWllZ2VvNk1KcDVCcm5yc0Y3N3lrMXJzWkR5LWtiRFAxcHJaMVYtQTd1ZXRjQTBxc1h5bHJGcTdMNnE0ay1KQklpc2N4OE12TDQzSDJsZ0RpLUhDZnlSbWZqRTJDRFZXX29sWjhuTlRjQk5BSjA0YjQ1TjFaanl6cmVlRnJ4YkdaUUdrXzdlRzcyQ3pJcXJ0UHVzOENIeWs4SjBBSjNDY0RHM2U4TjdUMWtUbGRDVFBtZXd0YmM1R1R5YVI2ZGNSVW9hYm9wTkl4VGdNckNFbm52Nm5tSzZFWGVFbTZSQ1JqRGpoNmdDLWU2QjFJTG9rZjkyT1E0b1lPaEdjc2RfcHJqekxxajk5VXduTHg1MmtpWTRKRERXNTVCbU54TGFxN0p4N0VEMnY1QzhaWmk2RjlqUEdsYWJvWGJkcEgzNkZURERNeldGcTNDM0hjaGdKdUJITHE1LUhBSEhocWxwUGgyRXVHTEJXbUFiZnRnRmx2eTMtNHhCbFE2MUhrdElRM281SWwySU0waHp6S28zMEpDUlRpMnhONGlOYzhjcU1leUp3QXVrdkFLRVYtUVZMc0lYT2FhdzE1bHJUODB6ZkJUa1RHMko1T2lJbmhyVkpheXdsaHZjNzRpT0R5d0Q2Zk5vUTgxR0Z3ZDFiekJjY1pkaE5TQXJtYkd3Ri1fZDY3dVFMbWpuTi1CYzlta0NUeGRUNlFUeHA5UTBTVW9DOGtWLXZPYlJBeHFlSWZtaVExTkNYZjUyandFX1FFRXpHZkdfeWJBYWxybndxcEJkUUdQMGZlZkwtWEp4SDN4aHFaTTZ1cnl3QUZHN01Eb29NdkZHY0NrZ0swTE96LUlLS0t0QWgtRWFyeWcwc2YxV0ROTEtPbnZ1WGIwbXg0VWJWQzZwcnlnclJnMmlyU0F3VlBzY2J0ZWlGYTZ2S1dsOU5oczdPNnRUNnZHZS15VzdZUlg4VURUYkx5U2VqcDhJcTg2NWs1TXlINzQ1UlhzZGhXOXBkSG5ZUzRnWmYzWEV1WE5ha0FyYXkwWHdKaGxNWjUxMDdHeEgzU3UxcWFHYy1QYzgwZVh1ODZuTmYzWmV0R28zdlZJcWZNc09ORlVoYjVEMDV0UVBHYWxrVVdnMFdNTHJYSlprWFllOFhBSUdELW96Umk4XzN4dmNNdW9lSjNnSWZTblhsU0V5Y25sckJHMnRNT2x2R1JDNzB5TWlQczVZSmNaM0d0VFBRakJnb2l3NHRYdW10UzZWaFNFODRLOXJ0cW4tYkV5NmJJZkdSeWQ1eERFNkxReDZDajRmRC0tYjlWY1VvZ3pDLXpCeUpSVV9tME5kSHhQMDhBRzY0VnRINW9wYUZEbVhCSlpXVGJuYWdlbXVGZGc3czVOZlFpOExIM1pSNHQ4SDFMMmxLMGlvVnlOa2VQMWh6SmdXR1RmYlJEcTdENzBQcFBSMzBkcjNKVHJSN3JtV2FWSDBFNW1HdEZCNjVpV2p1MXFFdTJrcU1nMFFDNUhLa1duYkNYUG16UEw0TC1SQ0lVUWZORG1PZDJVTEJCT3dkN0pJYnlycTlMYTcxT21UTGJUcEIzQTJrZmc1dkNiX0tIRmNobjY3UXNFTERQSktCYmxtODBuN1hZUERKcldiOHV1bmJKU2VuVUpxM0xKNm5pZ0dOMFZrblZyNWpYMUdTTS1wQ180N281ejQxdnlBb2psRlZjbUZDdnNNUUZwTU4zQkc2dnBhVmF3WDg3NElvZDAzQzJZRGpUWFk1M1YyaUczYkRhUzdBeXZMd05hLTFoTy1LYTY5RTF0TGFlSTNnODJCTFpQRUZubnpLaHFkZjNzYnlSVzIzb0VlUDEtQWxnczlQdnNsT05PMXVCV0lZaGlveF9NU01iREJ2dlRYdEhidW9LNnRrNXlWYm1VblA0UVpQVlRqVEFoTUxwNzlGVWdzVnpKdTIwYmMtaHByM1k4Yko4dmhBN2VKaG5kZlhFWjlJZG1adnpUUkJsa2YxTGVVYjRqNldmdUpSS29Mak5LTjFvLUZhNGc0MHZ1ajhFSDlmRE1OZGxwd1N1OGNTTHNfZko4bG9RYmxtcGxmVmFFeVc1VDdkRDBOZkVmemdUS2ZiMkhCZnpJcDN3QzFfelY2am8zY0xudXViNTQ4WFlnb0NBajBOamNGLUEzdGFzcFE5ODY0S0JXY2h3M3BVeU9yT241TlhpVU5vVUpNYnMyQktRRHNlRndreGJ4bmJ2WVZ0R2E1LVc3aXlDb3hpTXdmR1RZUDQ1Yjd0NUJTY3pGUFdlVFFuUkFoalE1dXBzNmF6NDdKT1hYc2tFUHNGQ18ybWhCam13dkppbmxEMXJXRjFlano5SDNJMDRoS2g0ajE2ZEVQOTFOM2RWa051aF9WeHpKX3VIbmgyT0pFQlNmODJvSS1iWXJWcWNCY2ZPVzBqZTVZdmpIcW5NdE5sdWFvZHZpS0lpc0YxbHE2V0xpY3h1S1BSRHItdDJFa2puaHRDSmNsYW1YSGxQYXJ2a1NXWDJlbExnYW9JX2t6VTBndndpN19TRWtMaGVJNVBsM1lOU1kzdFp3OEJRdkMwYTdhdHUzUDFRbGRYM1c0LUhWQnF2dVZfTVA0dmRYS05xektHMnFnMG4zZzl3QjdyakNMUW1jYkZHaTdBR2xjNjV0R2dLVm1lUXEyZnZfVGV0XzJfZWNIVjZKaC1tVHoybjFTWWRxWHlDbnlQVkplempodzU1ZkVFakF2NTVjZVZCbWVudk4zUXZOcmt0Qk0wYm8xYnN6UWpKdDkybmUycC02OHZOaEtTQVBBMkdRYk9aMlNGNVJNWlp6NFBfTHZGZXpsZHBxakdsdmdxS2FmQlRJME5JU0MxRzYzWEYxallwRkd2dHhPcl80djZHVmt3ODVVUk1iRm11STJOQ1Z6eV8zaXB5dFI3c1RwT21hZ0Vjb3dPZ1ZiX1g0aHpJQkNHa0Ytb3VVNGd6RThQNGQxV3VuVm1YR0xVMnliN1VMZWZQMGJMbTlMSTYzTWtvMEowZkV1TXBvRUNqVzEyc0ppbGVwUEFIVG9fNGdzaFlvOXNYY3l1QlBTTm5VUFFnUTQ2dXdxblFzaVp2NnQ5Y3R0R2JONWpFcWpHeHdlOHJaemVXZ2s1eS1JUnF4QTZNUTZUSWF1dFNWSjdOckg1Z2h5dF9YMEU0MVhnOE01dW5Lc1NpVjZpV05OelJET1RGcXdaaHpKaEJjeE5tYzFSTE1iSzhCYVphZU1xVUpOSkhxdXljQnVTeTFyMVB3Wm1YX1d2UVFza0Z4MDBTNVltdUxzeG4tUzQxdnFNd2FYTTNYbG9MTVNxSEZyQ2dVQkNGMTZVQTI5SG1yUzlqTy1aM1A5dVhqdjFzd2xSN0RrRzJmcWtFeXljMUJKWXFFNVZudERRZHNpX0Q4LUNwQzJMMTdaQVZnRDRleGVpZ3NfUXFvLTY0TmJ5NENJdUtYZFJnLW1Xd0xNRmwyQTJ4dWxyeTJrMzNPYnUtWXhmTEFyYXN6QjdoZlo4aUFKWDdEdkJKSC1IS05xYkZIRDJ2MVVOYVZEVlJDYnN5MURoXzhYT1Q0VTU3TVIxVUJjZ0lBSWlveUpmODMxbEhLNjNaeXZwOTBtMGlrbzFXVWVMV3JTeFNuZ2pXMi0xTmkxbGVxbENrMk1YN3hkUVEtSDJLckVvZ3VMTUZwNXBwZ2praUtWN1QxU1hhaU9EbkRUWEVpT2Z0NVN2Sl9hQ0JEaEMxY1BTOHFpM3BFVU5DT1Vqa0JHdUlwV1A3S25MZGZySGg0TC1lVjJjR3ZrTmhVNnViU0ZYV3RRYko5ZzdWSVk4V1F0Y1ltazUzLXJVMndlbjdqaFNRc25PalRMS2NoejNpcVpuSkZHNUhMWkZLY2lJQVZJZUJIZmJKTUNHYmtTcVQxV1NmeU5JLTNFUDZsbkZLT2JXUXI1ME9fSnZDT2tMMi1taEItd2Y4SFBpTkRiVDl0Mnc3eVhncDBDWGNQYjk0TE9MbHJsbnEyRXhuNEJLUzJIM0tSWTdNcVRxNEI1WG1LZW85MFdhUzNLeW1vc0FidHprVkx1VWdVRV9hYkpLVTZuZlczZkxIdVVJLTZiNi0yQl9IMnZDOTV1a0xfTTc4STVZSjU5azROSE4yRmRQWUNBYjZHenRvRjk3TDVBNzlvNGZBeDU1aXBIWi1vOC1ySzRxaWFMdkl0aHZ6NnVHeXcyU2hPbWFTQUx2dU8zbDV1N25WMi1fR0NhY0F0T3h1VHduU1RZNEhvVzY3TDl6M1dCZXlDak1QcHpaUWR1NDh3SmRtUGt5Q3VfbjlONi12RlVYcFBsbHBTcEFjLWQxREU3ZFBRQzJjVGwySTFDdVQ3S0hxb2hyekE2TFM5WU43UUdqbmVQdnlxQ19PWm9YQm43T3RhTWgwTzNOQ1F2ZWxFTnVJalRiZmE5Z2RNN1ZHSXRidHh5eU1FRjRFb1RRcWpiZloyX2VGU2s2RllxWjhxT1llZGRVRm1FVFFvZVlpWlNhQThUSS0tZ05IXzZnbWp3Q092UjhkWWpCOTFMcVdjTy1peFZkUUJoSzlrNUlTSmZ2VUpPX19PZnVSWnA5TkNTMk44SDVaTld6NkppbWJ3S25UT1hsc2tiZUg3Ykw0V2hDN3E1ZFlsQXMzQjVGSE9VeXJ0TW1lLUtuZVhOMmJuSjBuZFQ0YzZqNWVHWENCS1dyR19KVVhuSjBJVi1FZjZyTm01Q2Z5MmJubUplSzYtdm9Pa2dGWC1PTl9OWjlkTnl0NWVMSWxOSlh3R0h1dWRzWEdpVnBvbWhxcmd5Nk1sd0xoYnMyUV82bXJ6Y1A4ckl3UDF4UFFIamw1UHZERHVxbjVsRU9QcWdkVmJBRjd5WS1jN2J4d3ljb0ZTNEhLdXpRNERxaGxhNF9VLVRYUEZkWnZPcWxxTExOVlFQODVqM1dhUmdnNzFPVWhiSm1panZWRlg2MzRkajI4Yy1xbG9GQ29zQU9EZUxiRlNzOGI4OGszcFcxc25kdTdpRFFGQVlrYmhIaXFZZnZiMVdzbjlvMXJ5S0ZaLTFNd1NMR3dubHlCalpTVzdaLXJZdElseGJESWdqV2lkc1RudHFDZDhlMlhFY3R6RExYaHVsdWNwR0xrN0RBSzVWdnFMa19manZWd1o0MmxwdzJDZjhOMU9BV0lyTTY4X2F0VDMzSjcwOXMxUHVFamhJZmdXRUIxTjhJMjhwbGlJSlFsTkZUN3h2Z1N2d1Y2QTZzcHNSZHNxYWpqMkNuenZyVjk5WnI1eFMtSjlrSzZ0MWtVaDVqcEo4Zjdwb3ptOW02MUxVelczd3pSd05raGdveHcybW1LLXZ1amdaLXppM2RNZlM5MkpMb0paSUdpNEszZGtTdkdmT3hIaWhoWnRnTjlodjFiZUNPdy1jd0I2SXVaTmFuRHNpeExYd0s0WjJzTEVsNTI0cU1EOGRXQmoxejZpSFI2YjJYbjVFbGFVZlNoWlBpMmlFYzZoMlBJY0wyZk90NnRCZkpKRlIwZUNQOXVwamM4ZU1OMlcyZDA2VURia2NtUV9KUFJNcjRDM0ZUNTltWUt5R0xhdzFWcTJsckJDR2V4Si1PQnlCZkxXQXRZVkVyR21URGV0Tld5dHp4ZU1FUTY0Vmc3LW1YT2c1VjAwZHJHM1hmcWJOTzNJYkEyLTZYWGgzV0hybzJQbGp0Q1dSTU9WamJ6X3pzajhfWGJ6Q1B5ejhaaWl1dVJNejFBYU1Eem1QTlhUNlhHdjBzV3pWTTJUMGpuZFAtaG1vVE1DdU5IWnF5aVJ0eFNRNnNLTnE3VlJXVkwzcTVBTmI0eWtyY0ZiNm9WZHRyLUc5NVdpUlN6bXJtdVlDbWRFS1VZQ081NElCLWdfdGJRZWF1SllTX0M5dGlrODdPYmQ0UVVNRmhJd1BrN2tzYy16WlMwbmw3RUJjVnI0dmgzZTFSRS1jSkNtcWNwTmlaaGlLUU96VUZFNWJXY0FSTFBYVTFLcDJtdVY0RHVFVWtUMDV1Ymh4dWd3VlNmTTZkWU9QS0tLSDZJZjNVNkdqQ2hLU2ZkNmk3S1Y4VHhUZkdvX2Y1cFc1WEQ4LWVGd2tVV2w1V3pIR0NCOGZ0UVcwZmUwLTQyQmdES095RkZOOFVNSlZuVERGMFFnX1VOM2NBUTlfeWN5MDNnRjR2Y3BuSlRlOTk5emRSNUtBUVVaSV9zVzRmam1UN1A4VFlwM0gxdkVQNEprMm10NjdVZnJiTTNkME9FZmxTV0V4TkRCZHVNTllMVGlySWRnclZObzB3RW1aQk5SYTRfbVpNUnQ0bDVwNGprV1duY1MyZFhCWk9XVGlkdFJUalQ3V1piejNpdHJUVGowQzloU3BBMXY4OGoxWUl0dVBOd3JCM21LQWFmNnJXOU1fU1JLTkJTdjI2Z0x0YjFaSEViU3hBWExzdnJkWmFrREdINnJIeFJaX29hVlBLLUJ5YzVnLVBPdEN1c1NneVB3M2pScWhvTVRmUVp4M1RVbUZOX1NNR2xRZk84Vm5MTnZYdWszUG1kS2otU1BIZVlYcXByekZkdHlkel9wWGVST3lzVmVCd1FJYk9HZkdjWEY5aFN5bE5OMlo5MF9sSExJMTBOeFZIcy1IZ0RlTDBNdWNXc0ttai11T3pBamUyX3ZOREtQbzBQeHdSd1pjQVdqLWFZWUc5c1NZb0NyMldydXRuZE1mQ0FnYWNDNVgwT2pvRXdtc1ItMHFZV08yWXlpOTFQckFuclZwUC1yUURmcnFyM2RzMzB6QmtrOXVxRDFLczFFTGlEWk45MmJ5VmpWMkhXczFVUlpCcHV0SFBObGRhXzFUQU1ydERYZGxKUnI1SHZBSEVvZk9xbWtPajFqWnBydjNhdXlCR3lKOGJzTDFKRjhGZzZUOHU0NFVndFhCWXgtaEJhV3hna19ZdWYtMlZ4ejRFeC0wWVdFV0t5UG9rNXkwaUZnQVdtU0hPN2Y3V1NoNlNfd0ZvNXFiVnhoTHBVMkhUcTZEUHRtS1Nmek1rZVVyb0VJV19KTGU0bm12WkVWdEhYN1A0QXN3ZnVTQndGQWVmNXNFU2JFc1ozRjlkWktFUTVmTUJiNW9Xd2t2RnhQLXNKeHl2Y0lGZ3pNQjFjNC1OR2lJT1VRM054V0RrSUh3R2twcXdLVDU0VGdrNGJzMXRTejEzZ2pEeVJxQ0tqUmNuUTVFZjNlNVR5VFkyYkc0V1NPVl9zLVBwODVGSEF5cVVMWU5mRW1HUU5EWUNXYkpISnNhZGFfVU4yZDlMeWJLdHZaeEtzWS1FYmU0ZVNFSGlGRVdvZzdfdE5ZaXl2WW5neXBJcGJ4VG8wVXVfQWY1WnQweERZYlVwdDZJOW9GUUpTQ1p3OVBOUGhFSEo4ei00SGJaZVpBSFcwUTdWTHp5ai1aTURzYXNEOEhoOHNGZ3NQT3UyNzFTYUtvMlIzd3BzN1laRFVYeExLTGh6MmhLcDdtOWV0MHVzaFJudHdmeWdTcGNwSHFmV2RtSTdidVJIc04xeWVQRFR0bVVVZmtQS1VnVUp3anNLSXFuRlRleTVna3lTeDU5NVdISHdfLTBfS29jTmtSUnppTWhPYlZUQzZqVTk1MUdyd0hsaGRxNlg0LUZnS3RYVk1KdFlYNzFSOVBtZVAxQ1Z1YnMwQm9fQjh6czg5WUVWLUdPRHNfaktRSlJZMDVvS19TREdBQXRFcDJyV3k0TVBucldfNzVzdklMMElNNGNjWU5nY0pwdExtR1RPbWIxaXktbEplLUc0dWxiOWtRMi1PNjVqLXBoWGlyMUNkNjF6VGFvdHhYMzZMNVVNcERhNkFSLTNQNnNOVkNXTU41UU52NktQWE05Vlk2cmxoVWZpajdKYWI5M2pLNVlxN2U3S2dRLWxxcjRiTEx0TWVqb3dJTVN0UVFvRkRwSzlIXzFoZm9ad1dpUURmaDgtanBORU93SEVqTnA3NDRKZUVxbVdCR1FSZWVjMTlfUEtIbFU1SjdLWTVSXzhhMFkyVFdjMGw4ZVJPRWQyLWx1SjdoZ0pmU1JvRzVVX0NlcjVqMTdBRkRqeW93akctMlZka2Q3Q3U2d1dnQmR5elhic1k3aXF3R05FRU43UzBwemZHUzZwaE54ME1rVUpwMU1sZWdJMXE1cnI1U3g0MUdBR0hQcEkxRDZKVWlBY0lMU210Rmo2TlBVYzR4VzZERVI1QktVaTlvUzYzcEc3eDdZSmR1cVVHeXRfODF3SEtoRTkwbnRRRUlraWx5WFhQTzZlekExX2s1ZFFWQ1lVQ0ttWnZqNDJnaXhtNHl4LUR0ZXRPU1RzODFoWDgyMlpWU2t3UndIdll1c29RQjJCUWxlUllKUFdJRGw0Y2xVSEp4YURubEJ3VFJsMVdPX1NUNnlwc3lBUnJvNGdPUGFhb1NlMGpBaHZ2Vmo3TzZoWDA0WUZwbHBvQ3ZiR25WX3EwaFlFT0ZadENPSEVjQ3R5ckNSUG9NN2lIclVySnVXNEZORUtRRWhLdkxhM0xkS2FOblVNOEduM1ROd1pWLUJtRlktY0hkUDVvbGxZYkVSUjJwd2dORHRYSzBiVXNrNUpVX3otb296cUs0NDNySEFGczZkTTFmWjhZR1JNTG5CVTgwdFNpTG1Ec1V2YmJKR1AxVFdSWTZNZVgwYWMtTjhKSzY5RXdpTzBfTnQ0WlVkaWFPdTdkZF9LNnNrSFhwSUwzYjRpWkhwNzFFdkY3aHgySnlCQkVlckpzYWlQcU9CaUNXMzdtbGdxb2pJeFlGenhKd2VnRS0xZ0pmaXJxNmlJYXlkdTlsMDJaeXY5VWZPS0VfQjVIQ2dtbDJKNjBBWEhZcGZlLUdCb2ZRdnBEWHNrQmM0TnV0RUFORDcySF9xQjUyeXlIUXFhRnZkRkp0SGdsY3ZxNTZsOFpRZC1DUS05ZElxazJaTVhZMEtkUjl2MkhxT1hCa2ZOaTlVWEVndnVKWmRrcWc2ZjBuZkpnVkhYOFJaQlk3allRV2p6TkdUNkFub0JjZ1o4a2ZiNVI4WW5qQ0VyOU5uQno4QW91eFVwUERhNmIzYnVKamJFcG1HYjFTYjAxcVhDYlh6dVp0bHM0Ny1tNDJsNGdtOU5qODBRcDFhbU5zQlhfdkJxSWhMNlhsT01nRG96U0J4MmRjeC1lR1lmZ0UzS25ibGF2LXpmUUpMNEZJZmlBVWxyV2szZ3BOQWNpc2FOVWtKN3g3OG0yaW9TY0lWRmVvRVVJUFg0ZWVySm9lWjdGdFVpOWR3dXdPTWdDdEo4UFUtZTdGbTlKU3IyRC1lWlEzMGtyc2t6LXZIZUxQQmlNdG9JYzh6VVRnR2g3LW5MMGFkUzVJd05GMnRMTGpxaTdzVlRJamlZb1VqMFFRckRhZ3Z3TXdLbFBxSGVrUW11U3RTdlZKZlNnQkxzckFBV3hhYS16OTlnd2E2Vk8wV2VMVmxxdVg3Z19CZmVmb1k5emRDTXlsRENiRnBqQmt3aDVLTkVGQV9GZEdzeEtGRDRDb1JCVUlZak9oLXhxbkJGV1l0Yjl1ZDBWenVabXZKS2xBbmYwSzE4TzV6S1ctY0QxSExKSlpGa3J3cURuQkpiYW5SZW93T3FTdjJRZzVoT2NVX2dUb25SRm5RSHBYNENCYmRNZm0wUWt5eVdJQ3JURUItNmNmNkdGZEY4ZEdnWFNzak9RSWVKTXF1dmVQdHM5ZHlIenc5YXB0QTVTODhyT2ZjQWhNVUxfVU4xYTF2aHVYZmpsbmM0M1YyZkFhaFdkX2pUNl9FaFRMRHVIS0x3QjZFelUwcHJFaWZMVjdaTWtWdlpTaURkUmh1Rkx5YWhZQjZORmpGLVNXOFZBc2JWLXFOck5wRjRTM2hpOV8tdEluVFJ5UG13dlJoQkYyY2NpMjlzRDh3SGxKWnYzRHd2ZEJITHduS1ZTSUFZLUF2bnFVemt4UXB5T3owYm5URDFkZzRaN2pKYWVSbXZtd3Z5YTlxNFZtTFE1bzRfbTNaQ3U4dHJzTjljeWdacm51ekVlNldVZzRJaU9RS21BcGZpN3g2WHBnMGZuUy1tRGZoR1ZtOEpOcWIwWTNSX1Ezc1dSdUk3d0trTVNwR0pkNk8xaExOLVVvZHEtVGxjbDB5VXFsNGIzOVpRMExVYnJ5WGpMZHpsVDMweDRDLXdwRnVYSENnenNDWHluYjZzamFDRG1Cc1RlblgyMEpsVzZ4UzY4MHNIeVluZEhWaF9naTVJT1kyd2xsM0dZRVVlaXJqNmhsem9wODh4TmtMeFN4V0lETTJQM1BKa08yWmczcElOdUwtc3ZsZTl5dkZwQWI0eEFSUVBRRzV0MlhUNGt1Y240SUNIRmNTN0hKbFZpcjFzSWhrVV90SGhYdHlJRkRDYlRSVVVyNDVMZ2laUHJBZFVtNmlYQTEtS1ZkRmZ2QzIwV0RfWGJRLWJhZml2M1B3R2dLMHlWTDZDaFRGZFQzOFRUakJjaDNhdWhzUnVCczVINldFRFlFRWdZNERMLTZXN0NydDVVNXZBZzZuWVpqR2taX0JhdFh6YVowN3pKSjU5RU85WWE4X2xDRUp3NFBnQ3JpZWZqS1dLTVRwZVZFNHVXVUstLTVTZndDSVZaU1lDVDdWdjM4cmpsbUZ0M1R6T2Mzal8yXzdhVnNiZDJRUXA0M0hBVDlIRFpFOTFyMXM2WnBsR01YNUNFM1RtM2NHOERhX0hza1NlSlphWXB6M0xVbFVCU3pabnd0WmVSM194Sm1pUHl4UEE1WGhkUEpQMmk4czFfNDYwS2Jtd29iOEw0emgxMzFjWlM1THlrYldWaTBzTTd0UDMzaTl0SXozZ2laZWJSOU10RlNXdW9MNTItZHY1ZEZUSFRaOUtLYkg1UnQtMmp2M2YxXzVoVGtFSVI2bVJLTVFyNEZ3VTcyT2VYS0lvN2l5MlJ0MU9EWnVaOE1EZHlYUndCVUpha2JScWxEVzdjdVk5TGtlSXNzbmhmdUtIZVJlRDdhcUxQa3dtZm1wZ2h1SmF0My1mTzZTdEV4SEJiUEs5cFpwWklGRFZ0SjZPS0ZMV3BjdXhmS2kzTG82a3JaTTZiR1pGUmdJR1RvRjFRYkR5aTdXa0lZSWJNNUJ2bFRTcTJQd041d2l1ZUJPcVN6akw5aVl2Wmd1QjkxblZkTWo0LXdqaGxGblZLZXBIbEtnaXFOWlVmV0NkU2JCMUFuazVqLWRWaDNmSWVzalB4XzlCU0RDaDFzUnFjTFpHaFVzZEQ1TENWYUNvbXoyRkFrQURvaDc0aWtDX3JKTzlOWWtNWlJBR2gwc0V2eTdEcDVmOFZkOVU1eENSbnczSjBNUmd5RVc4WlJDLWFxLVRzV0wyTm9pbGJPMVRlYWR1TGl5b0hNNlF5TGJSNnJ4dWlvTFYyRF9iQmJTWUlnMHRMWVZ2QnlCamNSbnZmM0cyMWs1NUhNYWlNUndfb2hzRTFSQ0kybU5XV21ZaXFrRFI0cHVOMlp5ZVE1cEYxSXdScTJBS2txc0NRNXpzMUk0aXNyYVJGR0NLSFZ4V1p3SVYtcTlUc3EzckdqU1UtN0wtc0dBeDI5VFFld2h0SjNBVnc5dm1kRUR2OUhxMmVmeVNWa0phNmVtU3FOdlY3dk1tN2NhWWFMOFlXcGM4Z0htcm1TNFhRTUtROUNORmxhZnJjemhoUWJpaGF5WHFWSG9wbUR3NVFCQUk2VmIxbEtla3NVTDBlSm5qbmtyR2U5b2hpS2JqR0lIZmRiS0JjRDR2UmJBRmQ3VUZHeU9IeTJiTDdDYjFhdEN2MjIwR19GbkhORlg0aWkwZzBJX3dncV84VEdHTnFTYXYyN1dfeW9yY3F0MVlHUlBvUVhIN3l0R281ejUyTG95c3JPVW0xVEp1UjV3MHRyVVlCS0ltZlpiWkdhWjg1ZUcxczZ5bmVvX0RqY3hGWUdGdDBqMk1qdTc0akN5blBQZ3I5blNHRzhnOW1FQy1JMlBWUGJkc2tVNjNQTE1PUEtsZUpTS1R4Rkk3eFRXaHRyLU1UbHJyeXlsQWNITXBKSVJ0MXpkaU16QUEzT3lYbXlzTmd2QTJmUkdNS3BNRkN6bDFMS0RIRW13alpfTVhxOHJuRXplMHFMN0g2SmlySEI1dDdmU1BEeHpjam5zZFg1YkxmZk1jQjFxMExrZ3Q5Nm9PRzJ0ZVY1aEZzYmlaUDFMUWtPR2M4aWN0UmduOF9CZ0U0bkZBaHNicUZGVTB3LUF1cFZTR2Fkdkp5VFNkQ3huUFdIZVJUS0tacGFEaGwwSDc5VUZfWGlUNHlGdGF6QlFNUW9SU2pmb292bV9CM0tvMkFRNjNMaElDSmlPQ2sxZ0xaZWVyV2JIbjVMeDFyeVg5VldDOVFOX2lYeDVReEc4RzZ5cEY5cHFUemxIajhlZW5hNjdqa0xXRHdxbVV6SU9mMkFORXhuWEViblBDQlRNT1JSZjhkV1hXMldUWEZ0WkVNS2ZoekNnUk5KZ2UtdEZYOEVuTGNYVjc0OTJCUlVVNHRmWEhwWWdZMDd6X0F3NXFJWUNZSDY1QktlS29MWlFCYmdldDBMY1FMSncwM19EN0piUW5YQnBGTjJzRElxMmVLaUtIb2JFZmRiRl9qYkRLb1BIMXdOZXJEM3ZyQ0RiRm5NV0FzYzlxOThYTzlMRTZxLVJZWl9vSjlQbW9CX09INFJLNWl6dW1XS1Y1LVFMV3JvbFlTeVc4cjNZMXlZU2dWU1hzSlRGUWRKc3RpM3RaZGxUd0VpQlR0TklDclllQVBNNl9haUtaUkkzWG5hckM1am5wZzBiTTFZSTJuaU9GdXBsRlpNQkxNeUJjT2FtY0hKaWY4OGRIdHVzZHdtVVR3VEd6ZEZxYklqN1hDWm9CazZpUXVraTlJTTNueE1qN1Yxb1NidzhSdjNOd3RrWHFGNmpBbmVtN3ZidTdjQS1DNFJuUXRYMklEQkgxZFFiSWxUS1FmbG1DNHJhaXNBbU8xMmFDU0dXYzJoNUhUOF95OUIzTzVURjMxRlJON2NWSTM1UUxUYjJkV29jeTNJX2V5aXlXU2RPUk1uc1lySG93UWNfN1lFcjROQTJiV2pUOVAxeFg5dDdRNzBJeTRzTXh6STEtZ3FSOHhJMC1JVWdPTHQxalBsTjBuNGJEN3lHajlMU1IzSzBHRmFGTzhTUEtQcDFWMldqMDFGN3NnelhDNWxjd0hJSHl0cDhJNEgyYW8tRUNJR005dy1UeHhRM0JfR0pHLW1Qb0VjYlYxWUgwNXV4X01nNTBjRWhNWGkwNElSaWtWYklOUHN4T1VLdU92OFZEYzhfSWcwY3VWMGhFaXhTSmFySnhYT2hockM2VmMtN3ptRlo2QjhZeG9Ma2RUcno0anZqWjBfbnZLMllSTWFFSHl4cFJscHJSd2Z0eEZjaWx2OTZBXzFzdTMxOEZ5RWlkb21aLS1JVnZ4ZUVxWDJoeDY0ZGI2SFdMamVBTkJKdjI1SkI0Qk51LU1UdkxzcEI2Y0JhbmdMQXpFbkdpanV6NERTcVNmUHp2bFdadHJqc2NTSEFCaWVUZ2FxSy1XZnUzbXdjSkt5Sm4yN1lOcXRyTGNQa3A1NVFmSFdwLUd5bVJIN3JZdHdvRFBCd2FCM1J1UVV0TUJsQWJBZTI4MW1oVUkwd1Y4M2FKZldoMnNEYmdlLVpvSUdsNEstRUVLUXI2N19qZlBGdjEydTJTel84c092ME9WOWV4RU5NUWh1Z3ItV2lJbkFqNUc1Y1ZVYkhNMFJ4RUo5aHkyWTVrc1daZGNvdlliY29RU1psUG5pSTkzNWJZWTRnWFN1NHpGWW5PXzMzVEVLTldlMWYzdTZMZUI4QXgxclJYVmUzcEdocWRjaTVScWRmZkMtTDkzVnpzaVZKTEpBdG83T2hWQmRjc05kWFNsM01XbXkyX2R2dlVVWW5xQzd0S1lieXMwcXhISWZGQUNqcnVfczBLSnFOUzA4SFhaSFppNGVRTE9GSE90LWhrNGNBX3BtaVoyc2JJMUwwRm1Rbk1HR2d1LW50d016b01hdzFpejl0Q1Vka1BvV1p2cktyTmpHWFk1UjVkd3pKRWhxTDlOeERHYndlRjhJN3dBVWhlaTJZbjFfWXdkSnFUY1d0Q1lEOHFvZkhYSHI4VFZYeG5MeXNmbmFSUWdhZU54SHBIMWNibGNmUlBwSGNnTDNRam9aUWNCOE0zWWhlS2RBdDBjVzFSSTNnbWtjM3d2VDRKRVZPMmFzNkZkREJLbXQ1RmVMcDVjRS1QX1AxbTRRWXRQdHFpNjF5SXUwQktsR0ZGd0l4RC12TzlCejRYMllzUGJsVzRGZ1V2QkxXWi1EVkRKMEtndnk5VlhqdVdXWERZcDYzc1ZxdzRXZHhfVXNZSDR0azF0MlpHZlZNUFNoeEtxTWJXZWRsUXJiRm93U3F6V3JHRHlieFAtb0NnZmF1dzJRcFFhODBLN1g2cldaalgwZWFNVTRwRy1GMFh0MkY5Y1Z0NklSdFVXYTMwdGVlUFBKU0lzQzJpbUE3bFdMTW9Ld2ExeU1KVElVMTNNUFZMbE0yb2Q3Q1lhMW93Wmx6UWVpQkIzNjJOTC1ESDVPR19XZ2w5TEkzMXZ3ZVZuVV9ONnpLQWtZSzl2SC1uUEwzMF9uSWRvbGpKYms0bC1QakctbTFDb25qMU1MTkZvMmxXeG0zRUh0dW16WTZULTJ2UlF3a0VSMHhYRHpNcDgtTkEwSkFBdTM3QUl5XzBDUE1EdDliTWdQWFByX09DSVdIR0hCY21ZSDh3b09YbHByaTMtdDhPdEFRSUl0NXhzMjc4dTNsa2dfekF5WlR1TnVicEctSXhoZVpON3pDQkVmMHd4Vno3ZEI4anNWWDN3TU4zOW56a1NQMXR6TzB2THJjVFNlcjVUTHNkS2trZEpZUm9oMW5UeDZ2b2tIcVZId0hWN2JsaFdGSGJ4M0RyaTN0Uy1XSm1NRlJYWThUV0Z5Y1ktdVVWMko5UnI5UWJiamZNcTQ1Z25mVjdNLTI3MlNxSnBHb0RUZmVFa0M1dVpNNVpndHpORlJQMW9XN0NMcFR0UlpRTXJCS1Q2N3ptSW1hN2swbGRRU0FaNkNCbHlfX3pZZFQ4dVQzVWRfbm1vd1JTY05aWWZiWkZ1cS1kSEtkeEhmWEEzUnVhVVNqZlZHbUFZcDNOLUp6VGlkdElkNWVyX0t5em94Nkptbmp3dHF2M2lhdmw1Yk45cVZZQjdKOG1rNmN1clJIOTRISUMxbTdGM1FZVm9uLS1lQXltLUxTbmFyYkl2MFpMMFlTRTM5OXJQWW5mdEdXbHVhNms3bnpKU3d5eVY0d2o4ampmZzhLdVFUMTlGcV9vVkVna3pNMXJoNUxZeS1VczlPbDI1VUFVUTN4ZnZnSGJqNjA1M2lJT2JjdW9kMGk3aUtQaVVOTDBnTElrVjRGU3pXczRVVFEwX3UxTGNHakROUGVsUzNJbHBOeDV0cV9fS2ZieFZzd3h3ZGlYVkNscmpzeExZd2tqUE04YWNieWhOUVlwUVc4RGVaWTEwQUVqTnQ1anE1NDNLczNxTXNlQ09mTnVBdTZxa2ZzdkRVemI1a2xBUzVGdXpLUzlya2lDMXc5U19Ga1hUem9HTmp1VzZIYkRtcXpFMENJLXN1SjBhaU5NRWxmaW4teEJJai1VUGJuWFk1MUVnVUw2eDdzYVNIZTVUaWx1NjRaa3NWWHllbUYxRmVObkdRRW9jbkNGQmhtQUNaZ21lUGl4eF9YWTExWnFXS1lMd2NZQXZnVE5ZZmRrMXgzT0UwQXdwZ3luQUZuaTM1WTBKbG5mdk9JazI1Yi1FVHhnSG5ZaHN1Z1FHSG1ITEpNQUlMblFoQjJMQ3U3MUluMS04VzVVZkdqZlJXWmZXV1VNdGExcGsteWJqTzVQZks0aDBIS1BQTGRjR1loRXVTeGRBemRTSzV6azAxM0g4T3JmQnNoY080aUJYUjRMOEI4dUplSWtMYW1WWmZ3UWNPWGpvVGxXdEN6WW1ZRnkzVEV2M2dtX2FzTndlYkJCaWYzbDF1SVZRbE9rdGVMUnNRSkplWjNZWm40Zm9vRmpaNXlPTkFwTW9JMHpseGw3QzZQUG1rdm4tWjNGM2kxaEVmZVB6TjFOYnBDazFRYU1VRkx4WldpdVMtOWh6dWlYd1EwWEMxZXdwanp4dTJScDRuRUpqR3ZjZXNodmg3djVxNl8wU3htMUtUTC1mVG1oUi1EQnJYNE1JcFU1NzdVM0lFOWVtMmhnSTczcF80T1doeTNRNktLNTBRR290OEpHUkRqdDF2dE1EcGphbFRXSkNUSXYxelh3ZElyeGxrT3V0SC1QemFCcS05MFNqSTVsODFoX2FGekVKa05sb0tQMkhBRHdSbXBxMkF1N2hUNklRZklwUzhwa0s0RllWRTFhb093Z1JRbzBpUWdJeE84OWJseXctQlFCY1BOX2JINWs1UnJpamtZeEg2Q01uUkNzbXgzU2JGNmV6UEZlWGM4ZVhsSzFHVFZkcGNQSC01Z1hVWlVvNE95Y0hLMi1fbVBGVDc2UWJ4QUM2b1QtaGJHMGdLSzhqQVZNSEl0WU9Mb1ZtM0RfbU5pbW13eHkyNGs4X3g1REJFWEJaU1BTUFBWbl9RTjctbkhyQ3VkekdIT2ZmUXVXX19RSWNUQjl6Z1pxcDBHTFJkX0d2U1RKbHpLZURNVzNZN0pESlVjN3JXUUVKV3lWS01kZktLdkdtdWVObEM5WVFXQkxqT3NvM0N1NkZfd210WHg2OVlVb0NWaE9pWTZrNmFGeGlDemFwZ0pOM05DdTE1d2w4VjdKdXhyWjM2Wkh3UFdmTWZzMTlTU1BnT0o3aEJrMDRHX0UtOGJpVlJ4RWd6T01BeDBFZTlSQ1VUWTYxV1Z1TzZuSUlzdlp5TUtGaW1tMldXU1lMOEg5Rjg3ZjRRaHZGZlM3M1lWZUpqeUtJdGJ6TDlNY0dVR2V0SEhWc1ZnVmNFdW95TjlwOE1ZRnNQMGx3ckx3OUV1LS11M1U5YWwyRnJENDhwZEEyQktWaXBVdnlHcVI5UFFXQmdQcFhNdDd6MHJvdEN3WUZXNXV1bmlyblJ4b2I3VHdWd0ZHZ3hGbkhERTcySGJRWUpPamdkT0ZGTTNOX2ZIb3NDNjlmdDk3eUlMamtreUJQazJNTUs3NHdXY0Q0ZXFfZThJcWZaSW9VSDZiRVRINFgyOUhhb1ZJazZZX3VSN1dwMDFqMlZ4MDBDblNoVG9NX3lya0FiOEd2SWdBb2wyWm5WVi1fdEFqd2dZd19xMGNFdl83WEk1UXRBTXVsZF9HSmNwRVAzZXdQbmx1elpubUMwcjZzU0xPQno1QnVuRElWSjhUYVN5al9ZZ2JKMDcxMnpCQk02Q05tQjlld3BsMVYwQkdDMXB5aHlEQXpZNmNSOU11YXhOMTVCNFFFdTVEX09oV2szSk5PNkxkRlV5NVRxREx5U0l5UGJyUFk0SlQtTjdSY3ZvZXU4bHZ0bnQxbmc1Qm9QY0FTQmZZaVhGV21hYW5BaGUybGJQT2NVclQ0N0VCbTlyUEdDbGhiSW56dDN6QXgzYnRIeTl0bjFuUXI0bTVLb0RDTTdXdm42OHY5UnNVcHVNdmdJZGtYMHktWUdzY002bzB5RnNNbkZhMks3V3hSM2hXWHVYdWswQzk3RVdLV05nRmp1eTdGNHNQTm1rd3BUU0haQlFJdWF6OEMzR3o1R0hJbFFSMFd2dUg3TUFQb0lSdTU2X2VhOThCWmhLX29RcnJBUjZoQ0syWm42VWp4OGhvcTJvZVFPVzNWSFlKZmM1MUNFR0FrNGoyd28wWHBHUkRycHBwT0I5UjlHRXBjTEc1ZWZkQ0llQ1dUTWZWVm9CY3ZqaG82UE9ldGhZMmhIdVJ5Vy1HU2MwQVVHSlVIZUhOSkFscklFQlZVdlZOdXNNX0M3ZXZScTdxOWFHUlZSaE1FQkprYktZRFRtVFk3cmYySTRraUN2OTRtRDVLbkZ2bERSWU0xbVREU1NJV3l2VEhINXNLdWhMWEIxaGRJaUs1TTFsVU02RkpvUFFUMUdEQ0pXbmJlRUlLU1lnN0ZhSkpabVk0S050dmRnU0FaVktkX040MEhTeURjeUpaQ1JzTW5nalF0UzBmSUN0QnBxTFN5aGN0RTRmWUtsN0RzbkdiM1cwLTZ2eE54MXhrQlZmVGctejFsQmY2NndBMk12aWd4SmxaVzRzQlVmdk4xSzZucEw1cVltXzlJTmVfTmk0a3BvbGFMTUhDajZCTEpURFNhZlYzeU92OXJ4dWdVRDN1Y0ZXYi1LWS16MXpnY3UzdGZ1MnQyQzB3ei1qVU5PaFZUYTBhbDB3NXdRdDN0eXp1QVFhUUUwa2ZQc19mNGtSZnZrSkpBTl9kaGljdW1zTDdHWGd5blJIU0JNWGpQamtpRHRtNEdmcnNueVZ2eWEwa0JnZGQ1MDFuMVBXUnotYV92ZDA3VUFvb2FiZzMtbFBPbWVVQ1NESGlIXzdEUzZYS0phd0pLV2NSYVJFLTBJdmgxNG04aHRjby1kUDJILVFpQTFuQmJBT3QwajdsMWlXMzU4SWk0T3BCQW9JOE5KUmNpb1NKMkRhcmgzZlRzQkpwZmt1dFpZS08xUWhKQU50Xy1UMmVIaTV2M1kxS1p3NmlpTmgwZFpJeHNGbnozQ3NEZF92S1M3SjlPZVpKMU1YNDhqUlRfcTdIZDFKVHJZSVFYOG9tY3VNWDlJYklkbHB4bmd2TkJvNkRwOWNMd3BWeUNXN3BNeXpIZVZuQWUxQVM5WDlyNDBsY1ZjS3lCT05KRkZXVGw1WWNpZXNPTTNMTEVxYnFvOFhGX25tNkxYYS1aWTd4b1liSHdPbHc4VVFEcks1RWxheTAtcFF3MjZrX29FZ3JuSnlBYTVuMTMyUmRZZ3RFRXJUb1pGMnVoYV9iTUNiV0dIclZ6ZkpZRkhtMGhtV09lUVIxRGpvUkV1bWt2cHlmaGtnNHpVYlBjcXVWaUpTSTVWbUVlSlpVTkQyX0RjclBaQndIMUFhdWRpOTE1RHVPcFNGcUFiblBNc1RJcjlEQVQ2bTc3QnBkNVRHTG83X1Bha0swd3JfdDhva0l4NUpURU9DNVBldjBCanpvMVpXYnhjRVlwNGRhY1NXNV9WV3RKRmp6SkQxYW0tYVBmTGY0UUtUTW5TLTNNbklFc0FNY3kyUkZpX2Jkc0xhcERqbkxtdXIyT3NIMVlYOW95eDY5YXlIWEwwUWdCNE5NSk1EN09MVjZGTHJDUDVaOFAxZkRNOVBaaFdCTkJqWEFSQnVNTkFmM1hFb3hFaldBSlI2WjZEZVN5SmcyemNzMUNEbE9ENVhSeDI4RW5ULUFrZjFmMC1RSWRINnZqd3lMQld0b3dkRmZ2bm1IUXRCeFBTRkl6c3JCTGZGbE5hM25rOFRfUzhtTWJxdm53YWF4emJqMWNSS0JuWVRiRGEwc2xGTmNCYlFYVW42WjRwNmNwOHRYb1V3MG85Vm9NeW5Ua2ZsTGRuWnZQWFdLS3lMT3VNUElPN25qdDJPbEdZdVJfNjlQMkc2MS0tVGgyZUZZZ0o2Z3NaTlNHU0lCZVczOERoTVZUU0pXaU5SUTljZFRKdWVRZS1mdWtCTnRuQmJFc3Q5cXBYclRHMlZuVWJTV09NQ21ITWdsQ0J2VEh3TWh1cXo4b0x3bVgyR1pXVzIzcjM4X0RvdzlTX0NwYmxWYjNZQlQ0d2JQY0dCWEhUZkhwQ2dma283S0R5TmZZRGFSSXQtbGZyTUhmTjYtQmhBUGNVM3RPYjYtZGZVU1RFOHdxbXFoZ1pOVzNUTGg5NDlLT29pdGc5UWVLSnI1aEE4TTY5bm5FNVFweTFreHhLZkpYNlNXSU5GUEJVcmRaejlkLVFodEgwcWZRVUlpQkpKbUhYajZXdTY4UWRDczI2ZEZjTkhfcDRmZkVjTnQ4WTNTdEY5VnNrUTlYbmFFM2FCNktpUWtiX2czcXpZam9QVU9GcjFCQk5IamdnWHpRLUItS0pXU3ZJUnE3XzJEeXU5S05LdldWNThtZ2RxMFJ6bjdBVkY1ZGRhVktVcDVBTHNRd1Z6V1RkbUoxcjJsOWx4ZHJLeHZ6ODdyV2pWTHFrMDB5NlJNMXM3UEpnTElYU1ZxQmdHSllRZzdTT2Q3blNzd2RqcERySnRxZmp0VF8zWTZkV1VTSTMwbktOTlFfSUE5TDhpd3pZVHBfcDJKMVFNTzRjQ0x2Nlg4N3VJc3J6cXExVzFBeG1oUHVPdE5wMWFNVElTeGRjdTFGaGpfcU9yc0FhNUx3bEJZNmZZeGJ2bUZKR3dyeGpEcGNjVzZYeWItSGstVjhLRnB4a1dEd1Jpc2JBRmVzZmNlTjN1Zl9nSDBncTgzVGFCMml6U0JMS1VRYzhmTDZsQV8zb0ZnNE40TDhfazl1LWs3SFBubGZ3aXB0dVlxY1QtWkVURWt5Y3JDbUIxZ0pETlVCNjU0UDdLTWZkRWVvTkZMNXRYdmlTZ2NoRV9YX05JLTEyTE1uWGo1RDdZVnVlOXd0UmtsM0tJYlo2X2hmVzBySU1SVFFEUHIxdGZkWW5OOUJWMkFBNzRvRFFaWnpneXVDUjJKV0U1Z01wQWZWUWRobXpoZk5UMDlFd25MeTR5NXluS3B3WG9VYXFuX3hXWmJrQ3BHaGxTb0JkakJSc3FvaFN1WjZ2OGthVURtSTJvOUpYVXBjWXItX29Xa09aRDdTQmlPSEw4OGpOQjJTTzNGTmZjQUdCc2UwLXNidHhGcnlVWXBueEc3WnhxR0U4Z1pXeHNtZUl4VnV0OUNfd3h3UWFKelI2MGRrNDMwd0EzR0VDZWlXQkFSSDZ5QnFrWmhRaHhLYldEVGE3NGJXbXpxczlfbGxuNW9UQVpneklwaUo0T0lSZmxNVGZ4SW56Rzg5U1pCSnBGTF94cFBXQVdocTFvd19Bb0dEMEZmVWR5RlRxY1J4d3lvVWdXTFBpREJJN2kzaDQzUC0xX3N3VmNzMVo5N2lndWljNE5SYWVKZ2VJQmRYNk9PQ3JqV2tHV2ltLVdtVGV5dzI5UWpfVDFJdURGMHRERWhWVTYwQXgxQzB4eThZS0FPMkZSRS11MklJSDhYVnViSGdEWFMyZGFRaGwtd0xmVGZFTkNETlZmUGF4SHh1cGEyYnE5LUk0WWpGUk9XWTdqQ2NVUWdtSWxMSzM5bUZKYmVEcEp6eU1TdjRUOUtIeGFTVHlLLXpnM3dSUXRxOC1IblRFLVQ2ZGJuc2hmQm9ZNS02dXkwNFhZelN0d0ZES0JKUWVILVBhVjBfQzh6QzFMSmFEbVBZRzZHM242c19YZk9IV2VOU2s5TVpkaEtUWUMyUC1xcXdVU28yM3RQN0xscUVOSlB2VXVpd1Vmcl9zbTNzbFpSVEJ5SzlaZm9yNnpoN1lmTlZVaXNHWG5rM1pPdlBKbk5DdFdhYWRDU1VpWkVfMHZWQ05JVkJlTmxWbVVGQ25oakVQZDhZMDNnYTl5elNHazRsQURoMjVLdGtnRl9SQWRSdTM3RGhGUko4ZE5HelN0dUsxNFVNYzJOOVNCeDlWYWNsbE04SG10Q2tFNERTR1NfZF8xYmdCakQ3RklZekdGX2UtZk03NzUxNFZWaEJkUFFhU01jRk1SenU4czRldzNVajRqd09MaTVXVUMyVjhNYmt5TlZZbU45X084cHgtdUQyWkFPTk84TTFIWkJXWjZPVmRmRzNvbERFTFE1Y2haVkF3bGV3UUZuSFR1dkJXWmRUcjBqd21BRk9WY0pRRWVmOVhMejUyNE9kTjU4UWhoVUhkNjEyX2lXcWZHMFhoQl8tWGtJNV9HSGVETVVqb2lyZ2ZaWnR2bm5QUUNPUllkbnhpTUdaWW9mWkxmR3cxcV9IVU02UE5yNXlWOHlzUXF1VFlTQ2tlUjlPVGIyQkpPemlWMUVUWDJ0d3BYTkZycWFyclgzMkxlX051czVzdjNmdVlIUGVZWk9BQVI3bUw2V2pVTDZxR2k1d19wMXRBTGlqOXBJUmlIWkw0OTByRU9scFpOOEppMGJkcXdpTDZwVTZ3dVFiRUdxZGRqYi1oOENGRHp1LWJ5MEVwb3VKaGJiT3ljVllsSEVwVWNWOTlVWGdwUFVnRWZjMVBwdEk2SjRtcUt0enQ1ZDNfdS1JNEI5RlFuMGZSYTNwY3lXTGQ1WHRURkxUZzlRS2dodFBKZV9oUi1tdVhpMnM5TDVLZW9scXRRWXYzWXg5Q21kUmcwZlhnUFFyX3ZlajZmZ3pnVVkyeVl2V2dfSC1UY1o5ckE5YldNM0lCSi1WaWhIMmp6NHRKZ1BzbndqYmxuNkdrX0FaOWZZN2JSLWZCSlBsd2JWanJ2N3RXNHJqMVdLaGVKbUIzSm5NbEU3ZjFQdENHSHdzLWNnU2JVanhhbmRtUVEwTW9HeUd5SGF5ZV9Gb2pETl9yQzhHMTNPUDd0Rjg2Vk5RN2dNa1ZCV21LU212eTRpVmN4Y1hHTFpzekZ4eUJsaktDU09WOTN2dWtPU2lVM2h2OHlDLVVfWkZmRFFSY3I0cVFCMjlwVW1mSjFzM0J0bWdOREttZlBwZm81TERuS3dxS3RmM01SbWNBcGZSMU9qSXlnWVFPUDBnbVBMX3FBTGw5dzY0RUxGbWNpWkpwTHpwZExwZ29XQmpsZGxCclU0dVlONVQtVjVOUlBNdGNWYkY3YnZVSEp2OHhTaDRBRDFqT2pJNEJLRTRJb2tyMjNKb05nMGJfSS1OLXJMcG5JcjJIc3BJVXNzdFhBbXJOYUlJTnZKcnZFWFRRZ19YS1pBdUtrNFg0YjQ2Zk9VdkZ0WU1uZ2Y3SVJqWE9CU1ZfVUVrZHo1Yi1PTTJwWW1jOUlWREM1cVNJUE1scGVRbkI4alVwV3VrWVFRZ0NCazg4TmpQSEFmWXp2Zk51TUtCdmtkLXJpRUVrcGh2VTRRSm84S0NQb0EzMTlrdHBjcXpTZ0JFY20wakVTVlNMUWtBcjQ5STVHcnBYeXhMQjFSNG1ubWdNZ25nNXB1MFFpcHh1VmtrMlpSMDdKQS1tSWRidTZCMjE0SEhiYUNPckR3TzBYVDllWE1JRVA2YUdDcE4wcEVJeU5jcmJ4UTgwYTZabkY3Z0RFWVFQOGxEbWd4Z1EyWFF6S3dMSm5MNE82d0ZSd1JmV1Jsbk5CLUJSQjlXdFd0dmVzQmd1b2VTSmtHeDhvaHI4Q1UyX2lpTEJVZG5NYUNSZjlqLUljREtjcjJULVVzLngwQzJRZEhqWGJPYndMY1JGVDUyc3dNU2JSTXIwUy1CdEdZdFBjNG1YOU0" - } - }, - { - "RequestUri": "https://fakekvurl.vault.azure.net/certificates/cert3599754124?api-version=7.3", - "RequestMethod": "DELETE", - "RequestHeaders": { - "Accept": "application/json", - "Accept-Encoding": "gzip", - "Authorization": "Sanitized", - "User-Agent": "azsdk-go-azcertificates/v0.4.2 (go1.18; Windows_NT)" - }, - "RequestBody": null, - "StatusCode": 200, - "ResponseHeaders": { - "Cache-Control": "no-cache", - "Content-Length": "2472", - "Content-Type": "application/json; charset=utf-8", - "Date": "Mon, 16 May 2022 18:11:40 GMT", - "Expires": "-1", - "Pragma": "no-cache", - "Strict-Transport-Security": "max-age=31536000;includeSubDomains", - "X-Content-Type-Options": "nosniff", - "x-ms-keyvault-network-info": "conn_type=Ipv4;addr=73.83.78.150;act_addr_fam=InterNetwork;", - "x-ms-keyvault-region": "westus2", - "x-ms-keyvault-service-version": "1.9.395.1", - "x-ms-request-id": "56b8228d-ee0a-4cc6-adfb-020d10228312" - }, - "ResponseBody": { - "recoveryId": "https://fakekvurl.vault.azure.net/deletedcertificates/cert3599754124", - "deletedDate": 1652724701, - "scheduledPurgeDate": 1653329501, - "id": "https://fakekvurl.vault.azure.net/certificates/cert3599754124/c91dd402d5cd42a0a5451ff039ae0564", - "kid": "https://fakekvurl.vault.azure.net/keys/cert3599754124/c91dd402d5cd42a0a5451ff039ae0564", - "sid": "https://fakekvurl.vault.azure.net/secrets/cert3599754124/c91dd402d5cd42a0a5451ff039ae0564", - "x5t": "avbvBOMLa-7SGSEXCZAYEYGo9GA", - "cer": "MIIDNjCCAh6gAwIBAgIQE9w5bpspS6WZODwfD447EjANBgkqhkiG9w0BAQsFADAYMRYwFAYDVQQDEw1EZWZhdWx0UG9saWN5MB4XDTIyMDUxNjE4MDEzNVoXDTIzMDUxNjE4MTEzNVowGDEWMBQGA1UEAxMNRGVmYXVsdFBvbGljeTCCASIwDQYJKoZIhvcNAQEBBQADggEPADCCAQoCggEBAOU3tEBoLSY6vmYjaNOvqcW9iEmK9fb5gy7Pngm0OpcCXwNSA9M88OXQLHpSl71x2NPFpit3q1/h6fUhEj4L6QQtD//BHgCBtc60yoHWyuLhyB4wBRK0bYnV4WAOv3Pn9m0xfbVn5p4TsNfsBRedUHHzmhqC2vNkg93WVfDhBL2NeWTkpXpvSAD5SIgpPYW1WhljFQkdOOe2aJDwUQBe3HN/zC0oaxdc4qGqIJeqVx1UdtQQzbaOILdKQTQ0ZHRO3eREok6KKahDu\u002BWlHXyk8V74KopMbnLBUiGWE2P3eb4L32l7tbUM6tiAIjkBWzMgcIMa7TyfqYDC2QkFiGTEVL0CAwEAAaN8MHowDgYDVR0PAQH/BAQDAgWgMAkGA1UdEwQCMAAwHQYDVR0lBBYwFAYIKwYBBQUHAwEGCCsGAQUFBwMCMB8GA1UdIwQYMBaAFL945RNu3BgMaukadJG4GDP2U4lkMB0GA1UdDgQWBBS/eOUTbtwYDGrpGnSRuBgz9lOJZDANBgkqhkiG9w0BAQsFAAOCAQEAlaAWbYoOsFzBsXNagzslsxnG5N8D1QUimuU0TTcemBLp1yu1RVo43N6546py2LR7fVj65AgEkfE71FIiEBo5BWI2Ysn69aovJHkSjbQgcB948imLwjX1bNCvnSTszeSFGcw2WF0vLT0NtmALEGKwm9GHe7EtlqNCkhPHu1e54lvac\u002BC5DT4g4v2pd3R9FtHC\u002BDHEYKIt9tPcfo\u002BofFFQdpCh/Pxj\u002B/rNULMbTTTpJEPmpAd7RXciMBY0KhDl3nqahmhzbaiuz4sZgEgF6WeCtxjZgRo2r0tn60jmVeNtVFy7pRxMKjcy8bZo0BXzzoPnq42Ve5qLPeTb84r3YPN7cQ==", - "attributes": { - "enabled": true, - "nbf": 1652724095, - "exp": 1684260695, - "created": 1652724696, - "updated": 1652724696, - "recoveryLevel": "CustomizedRecoverable\u002BPurgeable", - "recoverableDays": 7 - }, - "policy": { - "id": "https://fakekvurl.vault.azure.net/certificates/cert3599754124/policy", - "key_props": { - "exportable": true, - "kty": "RSA", - "key_size": 2048, - "reuse_key": false - }, - "secret_props": { - "contentType": "application/x-pkcs12" - }, - "x509_props": { - "subject": "CN=DefaultPolicy", - "sans": {}, - "ekus": [ - "1.3.6.1.5.5.7.3.1", - "1.3.6.1.5.5.7.3.2" - ], - "key_usage": [ - "digitalSignature", - "keyEncipherment" - ], - "validity_months": 12, - "basic_constraints": { - "ca": false - } - }, - "lifetime_actions": [ - { - "trigger": { - "lifetime_percentage": 80 - }, - "action": { - "action_type": "AutoRenew" - } - } - ], - "issuer": { - "name": "Self" - }, - "attributes": { - "enabled": true, - "created": 1652724690, - "updated": 1652724690 - } - }, - "pending": { - "id": "https://fakekvurl.vault.azure.net/certificates/cert3599754124/pending" - } - } - }, - { - "RequestUri": "https://fakekvurl.vault.azure.net/deletedcertificates/cert3599754124?api-version=7.3", - "RequestMethod": "GET", - "RequestHeaders": { - ":method": "GET", - "Accept": "application/json", - "Accept-Encoding": "gzip", - "Authorization": "Sanitized", - "User-Agent": "azsdk-go-azcertificates/v0.4.2 (go1.18; Windows_NT)" - }, - "RequestBody": null, - "StatusCode": 404, - "ResponseHeaders": { - "Cache-Control": "no-cache", - "Content-Length": "98", - "Content-Type": "application/json; charset=utf-8", - "Date": "Mon, 16 May 2022 18:11:40 GMT", - "Expires": "-1", - "Pragma": "no-cache", - "Strict-Transport-Security": "max-age=31536000;includeSubDomains", - "X-Content-Type-Options": "nosniff", - "x-ms-keyvault-network-info": "conn_type=Ipv4;addr=73.83.78.150;act_addr_fam=InterNetwork;", - "x-ms-keyvault-region": "westus2", - "x-ms-keyvault-service-version": "1.9.395.1", - "x-ms-request-id": "18643dba-fe88-4014-89af-d58de05efc1b" - }, - "ResponseBody": { - "error": { - "code": "CertificateNotFound", - "message": "Deleted Certificate not found: cert3599754124" - } - } - }, - { - "RequestUri": "https://fakekvurl.vault.azure.net/deletedcertificates/cert3599754124?api-version=7.3", - "RequestMethod": "GET", - "RequestHeaders": { - ":method": "GET", - "Accept": "application/json", - "Accept-Encoding": "gzip", - "Authorization": "Sanitized", - "User-Agent": "azsdk-go-azcertificates/v0.4.2 (go1.18; Windows_NT)" - }, - "RequestBody": null, - "StatusCode": 404, - "ResponseHeaders": { - "Cache-Control": "no-cache", - "Content-Length": "98", - "Content-Type": "application/json; charset=utf-8", - "Date": "Mon, 16 May 2022 18:11:41 GMT", - "Expires": "-1", - "Pragma": "no-cache", - "Strict-Transport-Security": "max-age=31536000;includeSubDomains", - "X-Content-Type-Options": "nosniff", - "x-ms-keyvault-network-info": "conn_type=Ipv4;addr=73.83.78.150;act_addr_fam=InterNetwork;", - "x-ms-keyvault-region": "westus2", - "x-ms-keyvault-service-version": "1.9.395.1", - "x-ms-request-id": "0c478695-7188-4bfc-81aa-7f4169e5eaa5" - }, - "ResponseBody": { - "error": { - "code": "CertificateNotFound", - "message": "Deleted Certificate not found: cert3599754124" - } - } - }, - { - "RequestUri": "https://fakekvurl.vault.azure.net/deletedcertificates/cert3599754124?api-version=7.3", - "RequestMethod": "GET", - "RequestHeaders": { - ":method": "GET", - "Accept": "application/json", - "Accept-Encoding": "gzip", - "Authorization": "Sanitized", - "User-Agent": "azsdk-go-azcertificates/v0.4.2 (go1.18; Windows_NT)" - }, - "RequestBody": null, - "StatusCode": 404, - "ResponseHeaders": { - "Cache-Control": "no-cache", - "Content-Length": "98", - "Content-Type": "application/json; charset=utf-8", - "Date": "Mon, 16 May 2022 18:11:42 GMT", - "Expires": "-1", - "Pragma": "no-cache", - "Strict-Transport-Security": "max-age=31536000;includeSubDomains", - "X-Content-Type-Options": "nosniff", - "x-ms-keyvault-network-info": "conn_type=Ipv4;addr=73.83.78.150;act_addr_fam=InterNetwork;", - "x-ms-keyvault-region": "westus2", - "x-ms-keyvault-service-version": "1.9.395.1", - "x-ms-request-id": "29be0e78-52ab-4fda-b511-22745ac4c8f1" - }, - "ResponseBody": { - "error": { - "code": "CertificateNotFound", - "message": "Deleted Certificate not found: cert3599754124" - } - } - }, - { - "RequestUri": "https://fakekvurl.vault.azure.net/deletedcertificates/cert3599754124?api-version=7.3", - "RequestMethod": "GET", - "RequestHeaders": { - ":method": "GET", - "Accept": "application/json", - "Accept-Encoding": "gzip", - "Authorization": "Sanitized", - "User-Agent": "azsdk-go-azcertificates/v0.4.2 (go1.18; Windows_NT)" - }, - "RequestBody": null, - "StatusCode": 404, - "ResponseHeaders": { - "Cache-Control": "no-cache", - "Content-Length": "98", - "Content-Type": "application/json; charset=utf-8", - "Date": "Mon, 16 May 2022 18:11:43 GMT", - "Expires": "-1", - "Pragma": "no-cache", - "Strict-Transport-Security": "max-age=31536000;includeSubDomains", - "X-Content-Type-Options": "nosniff", - "x-ms-keyvault-network-info": "conn_type=Ipv4;addr=73.83.78.150;act_addr_fam=InterNetwork;", - "x-ms-keyvault-region": "westus2", - "x-ms-keyvault-service-version": "1.9.395.1", - "x-ms-request-id": "8b15465c-f53f-4a26-a8bf-998b15636ebc" - }, - "ResponseBody": { - "error": { - "code": "CertificateNotFound", - "message": "Deleted Certificate not found: cert3599754124" - } - } - }, - { - "RequestUri": "https://fakekvurl.vault.azure.net/deletedcertificates/cert3599754124?api-version=7.3", - "RequestMethod": "GET", - "RequestHeaders": { - ":method": "GET", - "Accept": "application/json", - "Accept-Encoding": "gzip", - "Authorization": "Sanitized", - "User-Agent": "azsdk-go-azcertificates/v0.4.2 (go1.18; Windows_NT)" - }, - "RequestBody": null, - "StatusCode": 404, - "ResponseHeaders": { - "Cache-Control": "no-cache", - "Content-Length": "98", - "Content-Type": "application/json; charset=utf-8", - "Date": "Mon, 16 May 2022 18:11:44 GMT", - "Expires": "-1", - "Pragma": "no-cache", - "Strict-Transport-Security": "max-age=31536000;includeSubDomains", - "X-Content-Type-Options": "nosniff", - "x-ms-keyvault-network-info": "conn_type=Ipv4;addr=73.83.78.150;act_addr_fam=InterNetwork;", - "x-ms-keyvault-region": "westus2", - "x-ms-keyvault-service-version": "1.9.395.1", - "x-ms-request-id": "7744d242-bad7-46a7-84d5-fec089423c40" - }, - "ResponseBody": { - "error": { - "code": "CertificateNotFound", - "message": "Deleted Certificate not found: cert3599754124" - } - } - }, - { - "RequestUri": "https://fakekvurl.vault.azure.net/deletedcertificates/cert3599754124?api-version=7.3", - "RequestMethod": "GET", - "RequestHeaders": { - ":method": "GET", - "Accept": "application/json", - "Accept-Encoding": "gzip", - "Authorization": "Sanitized", - "User-Agent": "azsdk-go-azcertificates/v0.4.2 (go1.18; Windows_NT)" - }, - "RequestBody": null, - "StatusCode": 404, - "ResponseHeaders": { - "Cache-Control": "no-cache", - "Content-Length": "98", - "Content-Type": "application/json; charset=utf-8", - "Date": "Mon, 16 May 2022 18:11:45 GMT", - "Expires": "-1", - "Pragma": "no-cache", - "Strict-Transport-Security": "max-age=31536000;includeSubDomains", - "X-Content-Type-Options": "nosniff", - "x-ms-keyvault-network-info": "conn_type=Ipv4;addr=73.83.78.150;act_addr_fam=InterNetwork;", - "x-ms-keyvault-region": "westus2", - "x-ms-keyvault-service-version": "1.9.395.1", - "x-ms-request-id": "11fe7ad3-54eb-489e-9fec-b6047f87fed3" - }, - "ResponseBody": { - "error": { - "code": "CertificateNotFound", - "message": "Deleted Certificate not found: cert3599754124" - } - } - }, - { - "RequestUri": "https://fakekvurl.vault.azure.net/deletedcertificates/cert3599754124?api-version=7.3", - "RequestMethod": "GET", - "RequestHeaders": { - ":method": "GET", - "Accept": "application/json", - "Accept-Encoding": "gzip", - "Authorization": "Sanitized", - "User-Agent": "azsdk-go-azcertificates/v0.4.2 (go1.18; Windows_NT)" - }, - "RequestBody": null, - "StatusCode": 404, - "ResponseHeaders": { - "Cache-Control": "no-cache", - "Content-Length": "98", - "Content-Type": "application/json; charset=utf-8", - "Date": "Mon, 16 May 2022 18:11:46 GMT", - "Expires": "-1", - "Pragma": "no-cache", - "Strict-Transport-Security": "max-age=31536000;includeSubDomains", - "X-Content-Type-Options": "nosniff", - "x-ms-keyvault-network-info": "conn_type=Ipv4;addr=73.83.78.150;act_addr_fam=InterNetwork;", - "x-ms-keyvault-region": "westus2", - "x-ms-keyvault-service-version": "1.9.395.1", - "x-ms-request-id": "c1bd6c21-c0fd-4222-ba35-a80b9b1fbe03" - }, - "ResponseBody": { - "error": { - "code": "CertificateNotFound", - "message": "Deleted Certificate not found: cert3599754124" - } - } - }, - { - "RequestUri": "https://fakekvurl.vault.azure.net/deletedcertificates/cert3599754124?api-version=7.3", - "RequestMethod": "GET", - "RequestHeaders": { - ":method": "GET", - "Accept": "application/json", - "Accept-Encoding": "gzip", - "Authorization": "Sanitized", - "User-Agent": "azsdk-go-azcertificates/v0.4.2 (go1.18; Windows_NT)" - }, - "RequestBody": null, - "StatusCode": 404, - "ResponseHeaders": { - "Cache-Control": "no-cache", - "Content-Length": "98", - "Content-Type": "application/json; charset=utf-8", - "Date": "Mon, 16 May 2022 18:11:47 GMT", - "Expires": "-1", - "Pragma": "no-cache", - "Strict-Transport-Security": "max-age=31536000;includeSubDomains", - "X-Content-Type-Options": "nosniff", - "x-ms-keyvault-network-info": "conn_type=Ipv4;addr=73.83.78.150;act_addr_fam=InterNetwork;", - "x-ms-keyvault-region": "westus2", - "x-ms-keyvault-service-version": "1.9.395.1", - "x-ms-request-id": "ae34164b-5d89-4cc8-aa72-5bb5cdf5ed6e" - }, - "ResponseBody": { - "error": { - "code": "CertificateNotFound", - "message": "Deleted Certificate not found: cert3599754124" - } - } - }, - { - "RequestUri": "https://fakekvurl.vault.azure.net/deletedcertificates/cert3599754124?api-version=7.3", - "RequestMethod": "GET", - "RequestHeaders": { - ":method": "GET", - "Accept": "application/json", - "Accept-Encoding": "gzip", - "Authorization": "Sanitized", - "User-Agent": "azsdk-go-azcertificates/v0.4.2 (go1.18; Windows_NT)" - }, - "RequestBody": null, - "StatusCode": 200, - "ResponseHeaders": { - "Cache-Control": "no-cache", - "Content-Length": "2472", - "Content-Type": "application/json; charset=utf-8", - "Date": "Mon, 16 May 2022 18:11:49 GMT", - "Expires": "-1", - "Pragma": "no-cache", - "Strict-Transport-Security": "max-age=31536000;includeSubDomains", - "X-Content-Type-Options": "nosniff", - "x-ms-keyvault-network-info": "conn_type=Ipv4;addr=73.83.78.150;act_addr_fam=InterNetwork;", - "x-ms-keyvault-region": "westus2", - "x-ms-keyvault-service-version": "1.9.395.1", - "x-ms-request-id": "8c88818e-6831-4d52-a6cf-83c8b465b610" - }, - "ResponseBody": { - "recoveryId": "https://fakekvurl.vault.azure.net/deletedcertificates/cert3599754124", - "deletedDate": 1652724701, - "scheduledPurgeDate": 1653329501, - "id": "https://fakekvurl.vault.azure.net/certificates/cert3599754124/c91dd402d5cd42a0a5451ff039ae0564", - "kid": "https://fakekvurl.vault.azure.net/keys/cert3599754124/c91dd402d5cd42a0a5451ff039ae0564", - "sid": "https://fakekvurl.vault.azure.net/secrets/cert3599754124/c91dd402d5cd42a0a5451ff039ae0564", - "x5t": "avbvBOMLa-7SGSEXCZAYEYGo9GA", - "cer": "MIIDNjCCAh6gAwIBAgIQE9w5bpspS6WZODwfD447EjANBgkqhkiG9w0BAQsFADAYMRYwFAYDVQQDEw1EZWZhdWx0UG9saWN5MB4XDTIyMDUxNjE4MDEzNVoXDTIzMDUxNjE4MTEzNVowGDEWMBQGA1UEAxMNRGVmYXVsdFBvbGljeTCCASIwDQYJKoZIhvcNAQEBBQADggEPADCCAQoCggEBAOU3tEBoLSY6vmYjaNOvqcW9iEmK9fb5gy7Pngm0OpcCXwNSA9M88OXQLHpSl71x2NPFpit3q1/h6fUhEj4L6QQtD//BHgCBtc60yoHWyuLhyB4wBRK0bYnV4WAOv3Pn9m0xfbVn5p4TsNfsBRedUHHzmhqC2vNkg93WVfDhBL2NeWTkpXpvSAD5SIgpPYW1WhljFQkdOOe2aJDwUQBe3HN/zC0oaxdc4qGqIJeqVx1UdtQQzbaOILdKQTQ0ZHRO3eREok6KKahDu\u002BWlHXyk8V74KopMbnLBUiGWE2P3eb4L32l7tbUM6tiAIjkBWzMgcIMa7TyfqYDC2QkFiGTEVL0CAwEAAaN8MHowDgYDVR0PAQH/BAQDAgWgMAkGA1UdEwQCMAAwHQYDVR0lBBYwFAYIKwYBBQUHAwEGCCsGAQUFBwMCMB8GA1UdIwQYMBaAFL945RNu3BgMaukadJG4GDP2U4lkMB0GA1UdDgQWBBS/eOUTbtwYDGrpGnSRuBgz9lOJZDANBgkqhkiG9w0BAQsFAAOCAQEAlaAWbYoOsFzBsXNagzslsxnG5N8D1QUimuU0TTcemBLp1yu1RVo43N6546py2LR7fVj65AgEkfE71FIiEBo5BWI2Ysn69aovJHkSjbQgcB948imLwjX1bNCvnSTszeSFGcw2WF0vLT0NtmALEGKwm9GHe7EtlqNCkhPHu1e54lvac\u002BC5DT4g4v2pd3R9FtHC\u002BDHEYKIt9tPcfo\u002BofFFQdpCh/Pxj\u002B/rNULMbTTTpJEPmpAd7RXciMBY0KhDl3nqahmhzbaiuz4sZgEgF6WeCtxjZgRo2r0tn60jmVeNtVFy7pRxMKjcy8bZo0BXzzoPnq42Ve5qLPeTb84r3YPN7cQ==", - "attributes": { - "enabled": true, - "nbf": 1652724095, - "exp": 1684260695, - "created": 1652724696, - "updated": 1652724696, - "recoveryLevel": "CustomizedRecoverable\u002BPurgeable", - "recoverableDays": 7 - }, - "policy": { - "id": "https://fakekvurl.vault.azure.net/certificates/cert3599754124/policy", - "key_props": { - "exportable": true, - "kty": "RSA", - "key_size": 2048, - "reuse_key": false - }, - "secret_props": { - "contentType": "application/x-pkcs12" - }, - "x509_props": { - "subject": "CN=DefaultPolicy", - "sans": {}, - "ekus": [ - "1.3.6.1.5.5.7.3.1", - "1.3.6.1.5.5.7.3.2" - ], - "key_usage": [ - "digitalSignature", - "keyEncipherment" - ], - "validity_months": 12, - "basic_constraints": { - "ca": false - } - }, - "lifetime_actions": [ - { - "trigger": { - "lifetime_percentage": 80 - }, - "action": { - "action_type": "AutoRenew" - } - } - ], - "issuer": { - "name": "Self" - }, - "attributes": { - "enabled": true, - "created": 1652724690, - "updated": 1652724690 - } - }, - "pending": { - "id": "https://fakekvurl.vault.azure.net/certificates/cert3599754124/pending" - } - } - }, - { - "RequestUri": "https://fakekvurl.vault.azure.net/deletedcertificates/cert3599754124?api-version=7.3", - "RequestMethod": "DELETE", - "RequestHeaders": { - "Accept": "application/json", - "Accept-Encoding": "gzip", - "Authorization": "Sanitized", - "User-Agent": "azsdk-go-azcertificates/v0.4.2 (go1.18; Windows_NT)" - }, - "RequestBody": null, - "StatusCode": 204, - "ResponseHeaders": { - "Cache-Control": "no-cache", - "Date": "Mon, 16 May 2022 18:11:49 GMT", - "Expires": "-1", - "Pragma": "no-cache", - "Strict-Transport-Security": "max-age=31536000;includeSubDomains", - "X-Content-Type-Options": "nosniff", - "x-ms-keyvault-network-info": "conn_type=Ipv4;addr=73.83.78.150;act_addr_fam=InterNetwork;", - "x-ms-keyvault-region": "westus2", - "x-ms-keyvault-service-version": "1.9.395.1", - "x-ms-request-id": "383355dd-1882-418c-85e7-e5a966ff4274" - }, - "ResponseBody": null - } - ], - "Variables": {} -} diff --git a/sdk/keyvault/azcertificates/testdata/recordings/TestClient_BeginCreateCertificate.json b/sdk/keyvault/azcertificates/testdata/recordings/TestClient_BeginCreateCertificate.json deleted file mode 100644 index dd7cf17f2bda..000000000000 --- a/sdk/keyvault/azcertificates/testdata/recordings/TestClient_BeginCreateCertificate.json +++ /dev/null @@ -1,667 +0,0 @@ -{ - "Entries": [ - { - "RequestUri": "https://fakekvurl.vault.azure.net/certificates/beginCreate3829895319/create?api-version=7.3", - "RequestMethod": "POST", - "RequestHeaders": { - ":method": "POST", - "Accept": "application/json", - "Accept-Encoding": "gzip", - "Content-Length": "0", - "User-Agent": "azsdk-go-azcertificates/v0.4.2 (go1.18; Windows_NT)" - }, - "RequestBody": null, - "StatusCode": 401, - "ResponseHeaders": { - "Cache-Control": "no-cache", - "Content-Length": "97", - "Content-Type": "application/json; charset=utf-8", - "Date": "Mon, 16 May 2022 18:09:30 GMT", - "Expires": "-1", - "Pragma": "no-cache", - "Strict-Transport-Security": "max-age=31536000;includeSubDomains", - "WWW-Authenticate": "Bearer authorization=\u0022https://login.windows.net/00000000-0000-0000-0000-000000000000\u0022, resource=\u0022https://vault.azure.net\u0022", - "X-Content-Type-Options": "nosniff", - "x-ms-keyvault-network-info": "conn_type=Ipv4;addr=73.83.78.150;act_addr_fam=InterNetwork;", - "x-ms-keyvault-region": "westus2", - "x-ms-keyvault-service-version": "1.9.395.1", - "x-ms-request-id": "335f2bb6-5a96-4174-882a-911a0f1439aa" - }, - "ResponseBody": { - "error": { - "code": "Unauthorized", - "message": "AKV10000: Request is missing a Bearer or PoP token." - } - } - }, - { - "RequestUri": "https://fakekvurl.vault.azure.net/certificates/beginCreate3829895319/create?api-version=7.3", - "RequestMethod": "POST", - "RequestHeaders": { - ":method": "POST", - "Accept": "application/json", - "Accept-Encoding": "gzip", - "Authorization": "Sanitized", - "Content-Length": "125", - "Content-Type": "application/json", - "User-Agent": "azsdk-go-azcertificates/v0.4.2 (go1.18; Windows_NT)" - }, - "RequestBody": { - "attributes": {}, - "policy": { - "issuer": { - "name": "Self" - }, - "secret_props": {}, - "x509_props": { - "sans": {}, - "subject": "CN=DefaultPolicy" - } - } - }, - "StatusCode": 202, - "ResponseHeaders": { - "Cache-Control": "no-cache", - "Content-Length": "1296", - "Content-Type": "application/json; charset=utf-8", - "Date": "Mon, 16 May 2022 18:09:32 GMT", - "Expires": "-1", - "Location": "https://fakekvurl.vault.azure.net/certificates/beginCreate3829895319/pending?api-version=7.3\u0026request_id=284a629584d3472eb2566877d0a35796", - "Pragma": "no-cache", - "Retry-After": "10", - "Strict-Transport-Security": "max-age=31536000;includeSubDomains", - "X-Content-Type-Options": "nosniff", - "x-ms-keyvault-network-info": "conn_type=Ipv4;addr=73.83.78.150;act_addr_fam=InterNetwork;", - "x-ms-keyvault-region": "westus2", - "x-ms-keyvault-service-version": "1.9.395.1", - "x-ms-request-id": "0283f0ff-e72c-4194-abc7-e656a3ff03f5" - }, - "ResponseBody": { - "id": "https://fakekvurl.vault.azure.net/certificates/beginCreate3829895319/pending", - "issuer": { - "name": "Self" - }, - "csr": "MIICqDCCAZACAQAwGDEWMBQGA1UEAxMNRGVmYXVsdFBvbGljeTCCASIwDQYJKoZIhvcNAQEBBQADggEPADCCAQoCggEBAL7RkmcCjE0KqOCopGc0ojBkncyUIcF0YZeqwYL7pEQks/Ov91FHByOctcFfAhVMSGHeyBCBhEtBx6hh6FtdIkDHzH8MbCLoXlXmqnbMHoUwCQCfog8\u002BZNOfxkNtML2wk829v/tAs0q6hKfXM/FrC3qUOTdYYmjchzvUja7G7FIyoriz6FwMFt8kB2PE/WK94o8N46ZAcq7AQXfHbfhFNbKI1M8OccDxC72l898ujtQ\u002BlupCKqTM3j5FEaw2Ou9fQg1pFSf7I8JpX7qH28BJKjdO6kfOa9k3GDQSq/dZCC68dV2O4FwosijwXwPow6iLZJKqfUh4pUbClz10IDE6RjUCAwEAAaBLMEkGCSqGSIb3DQEJDjE8MDowDgYDVR0PAQH/BAQDAgWgMB0GA1UdJQQWMBQGCCsGAQUFBwMBBggrBgEFBQcDAjAJBgNVHRMEAjAAMA0GCSqGSIb3DQEBCwUAA4IBAQCyRIu4KpiyVEOok8IjRbNXoR38WCsrgZ8a1ht9icfZJeIJbD4UAU5DoxuRkIRpGpQm9Kc/qE5mbEmziDVrdESwRc\u002B1zBBlYkLPjgj4ZsUNTtZDqIoSJrT7daRlBKF\u002BSSRIMuQdp/Y2AuF7R553t2WHeuStGcjE7ZRZ81cijp0xBSq8f5fWkUGvn28huhT2T25eRnJbekc\u002B\u002BBXPJ2Hq55NE9uHQVgy2XrV6W2cU0bWrky\u002BLKobWTHxeOAwjTdJaCjIVfFDHADwKsfTTA9A4xx\u002Buej8PNJbSMCM1eXp9iBatxUXwcLQIeEtLeXexbJbNZLsAcD8Rbdjs2n04zzGcrodW", - "cancellation_requested": false, - "status": "inProgress", - "status_details": "Pending certificate created. Certificate request is in progress. This may take some time based on the issuer provider. Please check again later.", - "request_id": "284a629584d3472eb2566877d0a35796" - } - }, - { - "RequestUri": "https://fakekvurl.vault.azure.net/certificates/beginCreate3829895319/pending?api-version=7.3\u0026request_id=284a629584d3472eb2566877d0a35796", - "RequestMethod": "GET", - "RequestHeaders": { - ":method": "GET", - "Accept-Encoding": "gzip", - "Authorization": "Sanitized", - "User-Agent": "azsdk-go-azcertificates/v0.4.2 (go1.18; Windows_NT)" - }, - "RequestBody": null, - "StatusCode": 200, - "ResponseHeaders": { - "Cache-Control": "no-cache", - "Content-Length": "1211", - "Content-Type": "application/json; charset=utf-8", - "Date": "Mon, 16 May 2022 18:09:42 GMT", - "Expires": "-1", - "Pragma": "no-cache", - "Strict-Transport-Security": "max-age=31536000;includeSubDomains", - "X-Content-Type-Options": "nosniff", - "x-ms-keyvault-network-info": "conn_type=Ipv4;addr=73.83.78.150;act_addr_fam=InterNetwork;", - "x-ms-keyvault-region": "westus2", - "x-ms-keyvault-service-version": "1.9.395.1", - "x-ms-request-id": "98b3c04e-f223-435f-9c8b-fc875e1fed22" - }, - "ResponseBody": { - "id": "https://fakekvurl.vault.azure.net/certificates/beginCreate3829895319/pending", - "issuer": { - "name": "Self" - }, - "csr": "MIICqDCCAZACAQAwGDEWMBQGA1UEAxMNRGVmYXVsdFBvbGljeTCCASIwDQYJKoZIhvcNAQEBBQADggEPADCCAQoCggEBAL7RkmcCjE0KqOCopGc0ojBkncyUIcF0YZeqwYL7pEQks/Ov91FHByOctcFfAhVMSGHeyBCBhEtBx6hh6FtdIkDHzH8MbCLoXlXmqnbMHoUwCQCfog8\u002BZNOfxkNtML2wk829v/tAs0q6hKfXM/FrC3qUOTdYYmjchzvUja7G7FIyoriz6FwMFt8kB2PE/WK94o8N46ZAcq7AQXfHbfhFNbKI1M8OccDxC72l898ujtQ\u002BlupCKqTM3j5FEaw2Ou9fQg1pFSf7I8JpX7qH28BJKjdO6kfOa9k3GDQSq/dZCC68dV2O4FwosijwXwPow6iLZJKqfUh4pUbClz10IDE6RjUCAwEAAaBLMEkGCSqGSIb3DQEJDjE8MDowDgYDVR0PAQH/BAQDAgWgMB0GA1UdJQQWMBQGCCsGAQUFBwMBBggrBgEFBQcDAjAJBgNVHRMEAjAAMA0GCSqGSIb3DQEBCwUAA4IBAQCyRIu4KpiyVEOok8IjRbNXoR38WCsrgZ8a1ht9icfZJeIJbD4UAU5DoxuRkIRpGpQm9Kc/qE5mbEmziDVrdESwRc\u002B1zBBlYkLPjgj4ZsUNTtZDqIoSJrT7daRlBKF\u002BSSRIMuQdp/Y2AuF7R553t2WHeuStGcjE7ZRZ81cijp0xBSq8f5fWkUGvn28huhT2T25eRnJbekc\u002B\u002BBXPJ2Hq55NE9uHQVgy2XrV6W2cU0bWrky\u002BLKobWTHxeOAwjTdJaCjIVfFDHADwKsfTTA9A4xx\u002Buej8PNJbSMCM1eXp9iBatxUXwcLQIeEtLeXexbJbNZLsAcD8Rbdjs2n04zzGcrodW", - "cancellation_requested": false, - "status": "completed", - "target": "https://fakekvurl.vault.azure.net/certificates/beginCreate3829895319", - "request_id": "284a629584d3472eb2566877d0a35796" - } - }, - { - "RequestUri": "https://fakekvurl.vault.azure.net/certificates/beginCreate3829895319/?api-version=7.3", - "RequestMethod": "GET", - "RequestHeaders": { - ":method": "GET", - "Accept": "application/json", - "Accept-Encoding": "gzip", - "Authorization": "Sanitized", - "User-Agent": "azsdk-go-azcertificates/v0.4.2 (go1.18; Windows_NT)" - }, - "RequestBody": null, - "StatusCode": 200, - "ResponseHeaders": { - "Cache-Control": "no-cache", - "Content-Length": "2366", - "Content-Type": "application/json; charset=utf-8", - "Date": "Mon, 16 May 2022 18:09:42 GMT", - "Expires": "-1", - "Pragma": "no-cache", - "Strict-Transport-Security": "max-age=31536000;includeSubDomains", - "X-Content-Type-Options": "nosniff", - "x-ms-keyvault-network-info": "conn_type=Ipv4;addr=73.83.78.150;act_addr_fam=InterNetwork;", - "x-ms-keyvault-region": "westus2", - "x-ms-keyvault-service-version": "1.9.395.1", - "x-ms-request-id": "15a70a25-7cde-4e4d-b8ee-fcaeb3fd2449" - }, - "ResponseBody": { - "id": "https://fakekvurl.vault.azure.net/certificates/beginCreate3829895319/f28dadb6a54d41ebbeba875d669371d6", - "kid": "https://fakekvurl.vault.azure.net/keys/beginCreate3829895319/f28dadb6a54d41ebbeba875d669371d6", - "sid": "https://fakekvurl.vault.azure.net/secrets/beginCreate3829895319/f28dadb6a54d41ebbeba875d669371d6", - "x5t": "rroUrIHoJ-O43vOp2g__zd9nVXc", - "cer": "MIIDNjCCAh6gAwIBAgIQMQOpHJuVSYeXFpJSmi//ajANBgkqhkiG9w0BAQsFADAYMRYwFAYDVQQDEw1EZWZhdWx0UG9saWN5MB4XDTIyMDUxNjE3NTkzOVoXDTIzMDUxNjE4MDkzOVowGDEWMBQGA1UEAxMNRGVmYXVsdFBvbGljeTCCASIwDQYJKoZIhvcNAQEBBQADggEPADCCAQoCggEBAL7RkmcCjE0KqOCopGc0ojBkncyUIcF0YZeqwYL7pEQks/Ov91FHByOctcFfAhVMSGHeyBCBhEtBx6hh6FtdIkDHzH8MbCLoXlXmqnbMHoUwCQCfog8\u002BZNOfxkNtML2wk829v/tAs0q6hKfXM/FrC3qUOTdYYmjchzvUja7G7FIyoriz6FwMFt8kB2PE/WK94o8N46ZAcq7AQXfHbfhFNbKI1M8OccDxC72l898ujtQ\u002BlupCKqTM3j5FEaw2Ou9fQg1pFSf7I8JpX7qH28BJKjdO6kfOa9k3GDQSq/dZCC68dV2O4FwosijwXwPow6iLZJKqfUh4pUbClz10IDE6RjUCAwEAAaN8MHowDgYDVR0PAQH/BAQDAgWgMAkGA1UdEwQCMAAwHQYDVR0lBBYwFAYIKwYBBQUHAwEGCCsGAQUFBwMCMB8GA1UdIwQYMBaAFD7UovMRm2z\u002B51CM1bFrfsZMvp\u002BPMB0GA1UdDgQWBBQ\u002B1KLzEZts/udQjNWxa37GTL6fjzANBgkqhkiG9w0BAQsFAAOCAQEAXaipbANEB3AY5wwsH5c6SoGF9aH/eI1Im5jFFniyGlzxSOzMV/C9fzbwoMV3b1PacJsZJJajcCtVaEz9Pey6nhZoqkXezWHmcClN\u002B15btTz3lASsUHnApF88Mkw394UiEDaklajjaHu/W5tZEfuL1k0JqhQRMaeiy\u002ByTtxNLYk8pE3JgA7MTHfvQHKwMpmoSshZOOfmSr7nnzF4JNvtHOxBMTyvEqFDB38T3WoWHGRLFpOOaonBpkgpuQRe\u002Bgo5Bu18cUBiE0i23Y00g9AN1eqnLNrX0j84VkclRCQpbkSdso2awB/EICuS5YSQPC3yQo6rEpCncxz3MjkzuaJA/LA==", - "attributes": { - "enabled": true, - "nbf": 1652723979, - "exp": 1684260579, - "created": 1652724579, - "updated": 1652724579, - "recoveryLevel": "CustomizedRecoverable\u002BPurgeable", - "recoverableDays": 7 - }, - "policy": { - "id": "https://fakekvurl.vault.azure.net/certificates/beginCreate3829895319/policy", - "key_props": { - "exportable": true, - "kty": "RSA", - "key_size": 2048, - "reuse_key": false - }, - "secret_props": { - "contentType": "application/x-pkcs12" - }, - "x509_props": { - "subject": "CN=DefaultPolicy", - "sans": {}, - "ekus": [ - "1.3.6.1.5.5.7.3.1", - "1.3.6.1.5.5.7.3.2" - ], - "key_usage": [ - "digitalSignature", - "keyEncipherment" - ], - "validity_months": 12, - "basic_constraints": { - "ca": false - } - }, - "lifetime_actions": [ - { - "trigger": { - "lifetime_percentage": 80 - }, - "action": { - "action_type": "AutoRenew" - } - } - ], - "issuer": { - "name": "Self" - }, - "attributes": { - "enabled": true, - "created": 1652724572, - "updated": 1652724572 - } - }, - "pending": { - "id": "https://fakekvurl.vault.azure.net/certificates/beginCreate3829895319/pending" - } - } - }, - { - "RequestUri": "https://fakekvurl.vault.azure.net/certificates/beginCreate3829895319?api-version=7.3", - "RequestMethod": "DELETE", - "RequestHeaders": { - "Accept": "application/json", - "Accept-Encoding": "gzip", - "Authorization": "Sanitized", - "User-Agent": "azsdk-go-azcertificates/v0.4.2 (go1.18; Windows_NT)" - }, - "RequestBody": null, - "StatusCode": 200, - "ResponseHeaders": { - "Cache-Control": "no-cache", - "Content-Length": "2514", - "Content-Type": "application/json; charset=utf-8", - "Date": "Mon, 16 May 2022 18:09:42 GMT", - "Expires": "-1", - "Pragma": "no-cache", - "Strict-Transport-Security": "max-age=31536000;includeSubDomains", - "X-Content-Type-Options": "nosniff", - "x-ms-keyvault-network-info": "conn_type=Ipv4;addr=73.83.78.150;act_addr_fam=InterNetwork;", - "x-ms-keyvault-region": "westus2", - "x-ms-keyvault-service-version": "1.9.395.1", - "x-ms-request-id": "e5f6ec22-bfdf-4852-8bce-bf8fc45fef95" - }, - "ResponseBody": { - "recoveryId": "https://fakekvurl.vault.azure.net/deletedcertificates/beginCreate3829895319", - "deletedDate": 1652724582, - "scheduledPurgeDate": 1653329382, - "id": "https://fakekvurl.vault.azure.net/certificates/beginCreate3829895319/f28dadb6a54d41ebbeba875d669371d6", - "kid": "https://fakekvurl.vault.azure.net/keys/beginCreate3829895319/f28dadb6a54d41ebbeba875d669371d6", - "sid": "https://fakekvurl.vault.azure.net/secrets/beginCreate3829895319/f28dadb6a54d41ebbeba875d669371d6", - "x5t": "rroUrIHoJ-O43vOp2g__zd9nVXc", - "cer": "MIIDNjCCAh6gAwIBAgIQMQOpHJuVSYeXFpJSmi//ajANBgkqhkiG9w0BAQsFADAYMRYwFAYDVQQDEw1EZWZhdWx0UG9saWN5MB4XDTIyMDUxNjE3NTkzOVoXDTIzMDUxNjE4MDkzOVowGDEWMBQGA1UEAxMNRGVmYXVsdFBvbGljeTCCASIwDQYJKoZIhvcNAQEBBQADggEPADCCAQoCggEBAL7RkmcCjE0KqOCopGc0ojBkncyUIcF0YZeqwYL7pEQks/Ov91FHByOctcFfAhVMSGHeyBCBhEtBx6hh6FtdIkDHzH8MbCLoXlXmqnbMHoUwCQCfog8\u002BZNOfxkNtML2wk829v/tAs0q6hKfXM/FrC3qUOTdYYmjchzvUja7G7FIyoriz6FwMFt8kB2PE/WK94o8N46ZAcq7AQXfHbfhFNbKI1M8OccDxC72l898ujtQ\u002BlupCKqTM3j5FEaw2Ou9fQg1pFSf7I8JpX7qH28BJKjdO6kfOa9k3GDQSq/dZCC68dV2O4FwosijwXwPow6iLZJKqfUh4pUbClz10IDE6RjUCAwEAAaN8MHowDgYDVR0PAQH/BAQDAgWgMAkGA1UdEwQCMAAwHQYDVR0lBBYwFAYIKwYBBQUHAwEGCCsGAQUFBwMCMB8GA1UdIwQYMBaAFD7UovMRm2z\u002B51CM1bFrfsZMvp\u002BPMB0GA1UdDgQWBBQ\u002B1KLzEZts/udQjNWxa37GTL6fjzANBgkqhkiG9w0BAQsFAAOCAQEAXaipbANEB3AY5wwsH5c6SoGF9aH/eI1Im5jFFniyGlzxSOzMV/C9fzbwoMV3b1PacJsZJJajcCtVaEz9Pey6nhZoqkXezWHmcClN\u002B15btTz3lASsUHnApF88Mkw394UiEDaklajjaHu/W5tZEfuL1k0JqhQRMaeiy\u002ByTtxNLYk8pE3JgA7MTHfvQHKwMpmoSshZOOfmSr7nnzF4JNvtHOxBMTyvEqFDB38T3WoWHGRLFpOOaonBpkgpuQRe\u002Bgo5Bu18cUBiE0i23Y00g9AN1eqnLNrX0j84VkclRCQpbkSdso2awB/EICuS5YSQPC3yQo6rEpCncxz3MjkzuaJA/LA==", - "attributes": { - "enabled": true, - "nbf": 1652723979, - "exp": 1684260579, - "created": 1652724579, - "updated": 1652724579, - "recoveryLevel": "CustomizedRecoverable\u002BPurgeable", - "recoverableDays": 7 - }, - "policy": { - "id": "https://fakekvurl.vault.azure.net/certificates/beginCreate3829895319/policy", - "key_props": { - "exportable": true, - "kty": "RSA", - "key_size": 2048, - "reuse_key": false - }, - "secret_props": { - "contentType": "application/x-pkcs12" - }, - "x509_props": { - "subject": "CN=DefaultPolicy", - "sans": {}, - "ekus": [ - "1.3.6.1.5.5.7.3.1", - "1.3.6.1.5.5.7.3.2" - ], - "key_usage": [ - "digitalSignature", - "keyEncipherment" - ], - "validity_months": 12, - "basic_constraints": { - "ca": false - } - }, - "lifetime_actions": [ - { - "trigger": { - "lifetime_percentage": 80 - }, - "action": { - "action_type": "AutoRenew" - } - } - ], - "issuer": { - "name": "Self" - }, - "attributes": { - "enabled": true, - "created": 1652724572, - "updated": 1652724572 - } - }, - "pending": { - "id": "https://fakekvurl.vault.azure.net/certificates/beginCreate3829895319/pending" - } - } - }, - { - "RequestUri": "https://fakekvurl.vault.azure.net/deletedcertificates/beginCreate3829895319?api-version=7.3", - "RequestMethod": "GET", - "RequestHeaders": { - ":method": "GET", - "Accept": "application/json", - "Accept-Encoding": "gzip", - "Authorization": "Sanitized", - "User-Agent": "azsdk-go-azcertificates/v0.4.2 (go1.18; Windows_NT)" - }, - "RequestBody": null, - "StatusCode": 404, - "ResponseHeaders": { - "Cache-Control": "no-cache", - "Content-Length": "105", - "Content-Type": "application/json; charset=utf-8", - "Date": "Mon, 16 May 2022 18:09:42 GMT", - "Expires": "-1", - "Pragma": "no-cache", - "Strict-Transport-Security": "max-age=31536000;includeSubDomains", - "X-Content-Type-Options": "nosniff", - "x-ms-keyvault-network-info": "conn_type=Ipv4;addr=73.83.78.150;act_addr_fam=InterNetwork;", - "x-ms-keyvault-region": "westus2", - "x-ms-keyvault-service-version": "1.9.395.1", - "x-ms-request-id": "c4d515e6-aae5-4c8f-910b-de3b8032de6f" - }, - "ResponseBody": { - "error": { - "code": "CertificateNotFound", - "message": "Deleted Certificate not found: beginCreate3829895319" - } - } - }, - { - "RequestUri": "https://fakekvurl.vault.azure.net/deletedcertificates/beginCreate3829895319?api-version=7.3", - "RequestMethod": "GET", - "RequestHeaders": { - ":method": "GET", - "Accept": "application/json", - "Accept-Encoding": "gzip", - "Authorization": "Sanitized", - "User-Agent": "azsdk-go-azcertificates/v0.4.2 (go1.18; Windows_NT)" - }, - "RequestBody": null, - "StatusCode": 404, - "ResponseHeaders": { - "Cache-Control": "no-cache", - "Content-Length": "105", - "Content-Type": "application/json; charset=utf-8", - "Date": "Mon, 16 May 2022 18:09:43 GMT", - "Expires": "-1", - "Pragma": "no-cache", - "Strict-Transport-Security": "max-age=31536000;includeSubDomains", - "X-Content-Type-Options": "nosniff", - "x-ms-keyvault-network-info": "conn_type=Ipv4;addr=73.83.78.150;act_addr_fam=InterNetwork;", - "x-ms-keyvault-region": "westus2", - "x-ms-keyvault-service-version": "1.9.395.1", - "x-ms-request-id": "140c6e68-2e42-491c-b288-eb41a3ba8c49" - }, - "ResponseBody": { - "error": { - "code": "CertificateNotFound", - "message": "Deleted Certificate not found: beginCreate3829895319" - } - } - }, - { - "RequestUri": "https://fakekvurl.vault.azure.net/deletedcertificates/beginCreate3829895319?api-version=7.3", - "RequestMethod": "GET", - "RequestHeaders": { - ":method": "GET", - "Accept": "application/json", - "Accept-Encoding": "gzip", - "Authorization": "Sanitized", - "User-Agent": "azsdk-go-azcertificates/v0.4.2 (go1.18; Windows_NT)" - }, - "RequestBody": null, - "StatusCode": 404, - "ResponseHeaders": { - "Cache-Control": "no-cache", - "Content-Length": "105", - "Content-Type": "application/json; charset=utf-8", - "Date": "Mon, 16 May 2022 18:09:44 GMT", - "Expires": "-1", - "Pragma": "no-cache", - "Strict-Transport-Security": "max-age=31536000;includeSubDomains", - "X-Content-Type-Options": "nosniff", - "x-ms-keyvault-network-info": "conn_type=Ipv4;addr=73.83.78.150;act_addr_fam=InterNetwork;", - "x-ms-keyvault-region": "westus2", - "x-ms-keyvault-service-version": "1.9.395.1", - "x-ms-request-id": "a1c26eee-3ba2-4b21-8bc2-ca98c1cecf8e" - }, - "ResponseBody": { - "error": { - "code": "CertificateNotFound", - "message": "Deleted Certificate not found: beginCreate3829895319" - } - } - }, - { - "RequestUri": "https://fakekvurl.vault.azure.net/deletedcertificates/beginCreate3829895319?api-version=7.3", - "RequestMethod": "GET", - "RequestHeaders": { - ":method": "GET", - "Accept": "application/json", - "Accept-Encoding": "gzip", - "Authorization": "Sanitized", - "User-Agent": "azsdk-go-azcertificates/v0.4.2 (go1.18; Windows_NT)" - }, - "RequestBody": null, - "StatusCode": 404, - "ResponseHeaders": { - "Cache-Control": "no-cache", - "Content-Length": "105", - "Content-Type": "application/json; charset=utf-8", - "Date": "Mon, 16 May 2022 18:09:45 GMT", - "Expires": "-1", - "Pragma": "no-cache", - "Strict-Transport-Security": "max-age=31536000;includeSubDomains", - "X-Content-Type-Options": "nosniff", - "x-ms-keyvault-network-info": "conn_type=Ipv4;addr=73.83.78.150;act_addr_fam=InterNetwork;", - "x-ms-keyvault-region": "westus2", - "x-ms-keyvault-service-version": "1.9.395.1", - "x-ms-request-id": "91e7a98b-7437-4644-8cd7-b391a4a49a48" - }, - "ResponseBody": { - "error": { - "code": "CertificateNotFound", - "message": "Deleted Certificate not found: beginCreate3829895319" - } - } - }, - { - "RequestUri": "https://fakekvurl.vault.azure.net/deletedcertificates/beginCreate3829895319?api-version=7.3", - "RequestMethod": "GET", - "RequestHeaders": { - ":method": "GET", - "Accept": "application/json", - "Accept-Encoding": "gzip", - "Authorization": "Sanitized", - "User-Agent": "azsdk-go-azcertificates/v0.4.2 (go1.18; Windows_NT)" - }, - "RequestBody": null, - "StatusCode": 404, - "ResponseHeaders": { - "Cache-Control": "no-cache", - "Content-Length": "105", - "Content-Type": "application/json; charset=utf-8", - "Date": "Mon, 16 May 2022 18:09:46 GMT", - "Expires": "-1", - "Pragma": "no-cache", - "Strict-Transport-Security": "max-age=31536000;includeSubDomains", - "X-Content-Type-Options": "nosniff", - "x-ms-keyvault-network-info": "conn_type=Ipv4;addr=73.83.78.150;act_addr_fam=InterNetwork;", - "x-ms-keyvault-region": "westus2", - "x-ms-keyvault-service-version": "1.9.395.1", - "x-ms-request-id": "7537e9b4-1448-4cb5-8257-ded46b8fbc6b" - }, - "ResponseBody": { - "error": { - "code": "CertificateNotFound", - "message": "Deleted Certificate not found: beginCreate3829895319" - } - } - }, - { - "RequestUri": "https://fakekvurl.vault.azure.net/deletedcertificates/beginCreate3829895319?api-version=7.3", - "RequestMethod": "GET", - "RequestHeaders": { - ":method": "GET", - "Accept": "application/json", - "Accept-Encoding": "gzip", - "Authorization": "Sanitized", - "User-Agent": "azsdk-go-azcertificates/v0.4.2 (go1.18; Windows_NT)" - }, - "RequestBody": null, - "StatusCode": 404, - "ResponseHeaders": { - "Cache-Control": "no-cache", - "Content-Length": "105", - "Content-Type": "application/json; charset=utf-8", - "Date": "Mon, 16 May 2022 18:09:47 GMT", - "Expires": "-1", - "Pragma": "no-cache", - "Strict-Transport-Security": "max-age=31536000;includeSubDomains", - "X-Content-Type-Options": "nosniff", - "x-ms-keyvault-network-info": "conn_type=Ipv4;addr=73.83.78.150;act_addr_fam=InterNetwork;", - "x-ms-keyvault-region": "westus2", - "x-ms-keyvault-service-version": "1.9.395.1", - "x-ms-request-id": "a3d5a2a3-6333-4625-beda-acd050dc6e42" - }, - "ResponseBody": { - "error": { - "code": "CertificateNotFound", - "message": "Deleted Certificate not found: beginCreate3829895319" - } - } - }, - { - "RequestUri": "https://fakekvurl.vault.azure.net/deletedcertificates/beginCreate3829895319?api-version=7.3", - "RequestMethod": "GET", - "RequestHeaders": { - ":method": "GET", - "Accept": "application/json", - "Accept-Encoding": "gzip", - "Authorization": "Sanitized", - "User-Agent": "azsdk-go-azcertificates/v0.4.2 (go1.18; Windows_NT)" - }, - "RequestBody": null, - "StatusCode": 404, - "ResponseHeaders": { - "Cache-Control": "no-cache", - "Content-Length": "105", - "Content-Type": "application/json; charset=utf-8", - "Date": "Mon, 16 May 2022 18:09:48 GMT", - "Expires": "-1", - "Pragma": "no-cache", - "Strict-Transport-Security": "max-age=31536000;includeSubDomains", - "X-Content-Type-Options": "nosniff", - "x-ms-keyvault-network-info": "conn_type=Ipv4;addr=73.83.78.150;act_addr_fam=InterNetwork;", - "x-ms-keyvault-region": "westus2", - "x-ms-keyvault-service-version": "1.9.395.1", - "x-ms-request-id": "8fd1c3ac-d031-4103-92c2-2215ebd5e2f3" - }, - "ResponseBody": { - "error": { - "code": "CertificateNotFound", - "message": "Deleted Certificate not found: beginCreate3829895319" - } - } - }, - { - "RequestUri": "https://fakekvurl.vault.azure.net/deletedcertificates/beginCreate3829895319?api-version=7.3", - "RequestMethod": "GET", - "RequestHeaders": { - ":method": "GET", - "Accept": "application/json", - "Accept-Encoding": "gzip", - "Authorization": "Sanitized", - "User-Agent": "azsdk-go-azcertificates/v0.4.2 (go1.18; Windows_NT)" - }, - "RequestBody": null, - "StatusCode": 200, - "ResponseHeaders": { - "Cache-Control": "no-cache", - "Content-Length": "2514", - "Content-Type": "application/json; charset=utf-8", - "Date": "Mon, 16 May 2022 18:09:49 GMT", - "Expires": "-1", - "Pragma": "no-cache", - "Strict-Transport-Security": "max-age=31536000;includeSubDomains", - "X-Content-Type-Options": "nosniff", - "x-ms-keyvault-network-info": "conn_type=Ipv4;addr=73.83.78.150;act_addr_fam=InterNetwork;", - "x-ms-keyvault-region": "westus2", - "x-ms-keyvault-service-version": "1.9.395.1", - "x-ms-request-id": "e666052c-2470-4210-9d28-2795e7dfaf75" - }, - "ResponseBody": { - "recoveryId": "https://fakekvurl.vault.azure.net/deletedcertificates/beginCreate3829895319", - "deletedDate": 1652724582, - "scheduledPurgeDate": 1653329382, - "id": "https://fakekvurl.vault.azure.net/certificates/beginCreate3829895319/f28dadb6a54d41ebbeba875d669371d6", - "kid": "https://fakekvurl.vault.azure.net/keys/beginCreate3829895319/f28dadb6a54d41ebbeba875d669371d6", - "sid": "https://fakekvurl.vault.azure.net/secrets/beginCreate3829895319/f28dadb6a54d41ebbeba875d669371d6", - "x5t": "rroUrIHoJ-O43vOp2g__zd9nVXc", - "cer": "MIIDNjCCAh6gAwIBAgIQMQOpHJuVSYeXFpJSmi//ajANBgkqhkiG9w0BAQsFADAYMRYwFAYDVQQDEw1EZWZhdWx0UG9saWN5MB4XDTIyMDUxNjE3NTkzOVoXDTIzMDUxNjE4MDkzOVowGDEWMBQGA1UEAxMNRGVmYXVsdFBvbGljeTCCASIwDQYJKoZIhvcNAQEBBQADggEPADCCAQoCggEBAL7RkmcCjE0KqOCopGc0ojBkncyUIcF0YZeqwYL7pEQks/Ov91FHByOctcFfAhVMSGHeyBCBhEtBx6hh6FtdIkDHzH8MbCLoXlXmqnbMHoUwCQCfog8\u002BZNOfxkNtML2wk829v/tAs0q6hKfXM/FrC3qUOTdYYmjchzvUja7G7FIyoriz6FwMFt8kB2PE/WK94o8N46ZAcq7AQXfHbfhFNbKI1M8OccDxC72l898ujtQ\u002BlupCKqTM3j5FEaw2Ou9fQg1pFSf7I8JpX7qH28BJKjdO6kfOa9k3GDQSq/dZCC68dV2O4FwosijwXwPow6iLZJKqfUh4pUbClz10IDE6RjUCAwEAAaN8MHowDgYDVR0PAQH/BAQDAgWgMAkGA1UdEwQCMAAwHQYDVR0lBBYwFAYIKwYBBQUHAwEGCCsGAQUFBwMCMB8GA1UdIwQYMBaAFD7UovMRm2z\u002B51CM1bFrfsZMvp\u002BPMB0GA1UdDgQWBBQ\u002B1KLzEZts/udQjNWxa37GTL6fjzANBgkqhkiG9w0BAQsFAAOCAQEAXaipbANEB3AY5wwsH5c6SoGF9aH/eI1Im5jFFniyGlzxSOzMV/C9fzbwoMV3b1PacJsZJJajcCtVaEz9Pey6nhZoqkXezWHmcClN\u002B15btTz3lASsUHnApF88Mkw394UiEDaklajjaHu/W5tZEfuL1k0JqhQRMaeiy\u002ByTtxNLYk8pE3JgA7MTHfvQHKwMpmoSshZOOfmSr7nnzF4JNvtHOxBMTyvEqFDB38T3WoWHGRLFpOOaonBpkgpuQRe\u002Bgo5Bu18cUBiE0i23Y00g9AN1eqnLNrX0j84VkclRCQpbkSdso2awB/EICuS5YSQPC3yQo6rEpCncxz3MjkzuaJA/LA==", - "attributes": { - "enabled": true, - "nbf": 1652723979, - "exp": 1684260579, - "created": 1652724579, - "updated": 1652724579, - "recoveryLevel": "CustomizedRecoverable\u002BPurgeable", - "recoverableDays": 7 - }, - "policy": { - "id": "https://fakekvurl.vault.azure.net/certificates/beginCreate3829895319/policy", - "key_props": { - "exportable": true, - "kty": "RSA", - "key_size": 2048, - "reuse_key": false - }, - "secret_props": { - "contentType": "application/x-pkcs12" - }, - "x509_props": { - "subject": "CN=DefaultPolicy", - "sans": {}, - "ekus": [ - "1.3.6.1.5.5.7.3.1", - "1.3.6.1.5.5.7.3.2" - ], - "key_usage": [ - "digitalSignature", - "keyEncipherment" - ], - "validity_months": 12, - "basic_constraints": { - "ca": false - } - }, - "lifetime_actions": [ - { - "trigger": { - "lifetime_percentage": 80 - }, - "action": { - "action_type": "AutoRenew" - } - } - ], - "issuer": { - "name": "Self" - }, - "attributes": { - "enabled": true, - "created": 1652724572, - "updated": 1652724572 - } - }, - "pending": { - "id": "https://fakekvurl.vault.azure.net/certificates/beginCreate3829895319/pending" - } - } - }, - { - "RequestUri": "https://fakekvurl.vault.azure.net/deletedcertificates/beginCreate3829895319?api-version=7.3", - "RequestMethod": "DELETE", - "RequestHeaders": { - "Accept": "application/json", - "Accept-Encoding": "gzip", - "Authorization": "Sanitized", - "User-Agent": "azsdk-go-azcertificates/v0.4.2 (go1.18; Windows_NT)" - }, - "RequestBody": null, - "StatusCode": 204, - "ResponseHeaders": { - "Cache-Control": "no-cache", - "Date": "Mon, 16 May 2022 18:09:49 GMT", - "Expires": "-1", - "Pragma": "no-cache", - "Strict-Transport-Security": "max-age=31536000;includeSubDomains", - "X-Content-Type-Options": "nosniff", - "x-ms-keyvault-network-info": "conn_type=Ipv4;addr=73.83.78.150;act_addr_fam=InterNetwork;", - "x-ms-keyvault-region": "westus2", - "x-ms-keyvault-service-version": "1.9.395.1", - "x-ms-request-id": "b3eea7de-af8c-4c9b-94ae-796509e62fb1" - }, - "ResponseBody": null - } - ], - "Variables": {} -} diff --git a/sdk/keyvault/azcertificates/testdata/recordings/TestClient_BeginCreateCertificateRehydrated.json b/sdk/keyvault/azcertificates/testdata/recordings/TestClient_BeginCreateCertificateRehydrated.json deleted file mode 100644 index aecfbc7db49e..000000000000 --- a/sdk/keyvault/azcertificates/testdata/recordings/TestClient_BeginCreateCertificateRehydrated.json +++ /dev/null @@ -1,771 +0,0 @@ -{ - "Entries": [ - { - "RequestUri": "https://fakekvurl.vault.azure.net/certificates/beginCreateRehydrate1493351011/create?api-version=7.3", - "RequestMethod": "POST", - "RequestHeaders": { - ":method": "POST", - "Accept": "application/json", - "Accept-Encoding": "gzip", - "Content-Length": "0", - "User-Agent": "azsdk-go-azcertificates/v0.4.2 (go1.18; Windows_NT)" - }, - "RequestBody": null, - "StatusCode": 401, - "ResponseHeaders": { - "Cache-Control": "no-cache", - "Content-Length": "97", - "Content-Type": "application/json; charset=utf-8", - "Date": "Mon, 16 May 2022 18:09:50 GMT", - "Expires": "-1", - "Pragma": "no-cache", - "Strict-Transport-Security": "max-age=31536000;includeSubDomains", - "WWW-Authenticate": "Bearer authorization=\u0022https://login.windows.net/00000000-0000-0000-0000-000000000000\u0022, resource=\u0022https://vault.azure.net\u0022", - "X-Content-Type-Options": "nosniff", - "x-ms-keyvault-network-info": "conn_type=Ipv4;addr=73.83.78.150;act_addr_fam=InterNetwork;", - "x-ms-keyvault-region": "westus2", - "x-ms-keyvault-service-version": "1.9.395.1", - "x-ms-request-id": "ad0fa94c-7bb7-4822-9d88-283530d8f1af" - }, - "ResponseBody": { - "error": { - "code": "Unauthorized", - "message": "AKV10000: Request is missing a Bearer or PoP token." - } - } - }, - { - "RequestUri": "https://fakekvurl.vault.azure.net/certificates/beginCreateRehydrate1493351011/create?api-version=7.3", - "RequestMethod": "POST", - "RequestHeaders": { - ":method": "POST", - "Accept": "application/json", - "Accept-Encoding": "gzip", - "Authorization": "Sanitized", - "Content-Length": "125", - "Content-Type": "application/json", - "User-Agent": "azsdk-go-azcertificates/v0.4.2 (go1.18; Windows_NT)" - }, - "RequestBody": { - "attributes": {}, - "policy": { - "issuer": { - "name": "Self" - }, - "secret_props": {}, - "x509_props": { - "sans": {}, - "subject": "CN=DefaultPolicy" - } - } - }, - "StatusCode": 202, - "ResponseHeaders": { - "Cache-Control": "no-cache", - "Content-Length": "1305", - "Content-Type": "application/json; charset=utf-8", - "Date": "Mon, 16 May 2022 18:09:50 GMT", - "Expires": "-1", - "Location": "https://fakekvurl.vault.azure.net/certificates/beginCreateRehydrate1493351011/pending?api-version=7.3\u0026request_id=b852c2f11ef34b54a5a6af09b05d177d", - "Pragma": "no-cache", - "Retry-After": "10", - "Strict-Transport-Security": "max-age=31536000;includeSubDomains", - "X-Content-Type-Options": "nosniff", - "x-ms-keyvault-network-info": "conn_type=Ipv4;addr=73.83.78.150;act_addr_fam=InterNetwork;", - "x-ms-keyvault-region": "westus2", - "x-ms-keyvault-service-version": "1.9.395.1", - "x-ms-request-id": "3ef675f1-bf45-47ad-b1a9-488eb6d8157e" - }, - "ResponseBody": { - "id": "https://fakekvurl.vault.azure.net/certificates/beginCreateRehydrate1493351011/pending", - "issuer": { - "name": "Self" - }, - "csr": "MIICqDCCAZACAQAwGDEWMBQGA1UEAxMNRGVmYXVsdFBvbGljeTCCASIwDQYJKoZIhvcNAQEBBQADggEPADCCAQoCggEBALpW4D0Cf3CCsUlYSLPhvGnNbN6tnfaSWOp/UIx4qFfjB23euXt8lLkF7ekDcv2S70pdykni3hXMCB16\u002B6f3JpGGcXFktirKvGuGtjDe7/tpFRk2O\u002B9crj/9Ppi/zxkCVjwudKnjLe0OPLqcihzzM4uMgiDxoTwlU5wv\u002BdQaKS48kaAEL/wbFPgpU2cDgwwsK2EJiKRgS0\u002B1OKm2DuM8LZJVGd2EVUnUpzdU3/00mA19wlPgz4Asl78NXJm01GR6ub5yFXLsRXpGG3QVCU/YpW5JZgdobtRKEvuE/rTOiRJeSgIbCcnFEhH3D4NEd2\u002BAR53ds27xuHUPqAkhXJBhqlkCAwEAAaBLMEkGCSqGSIb3DQEJDjE8MDowDgYDVR0PAQH/BAQDAgWgMB0GA1UdJQQWMBQGCCsGAQUFBwMBBggrBgEFBQcDAjAJBgNVHRMEAjAAMA0GCSqGSIb3DQEBCwUAA4IBAQCmN2B6z61hSVRwTf4AnQl/AtDvo6NXPTVlDqWD1mRzIRSdIOACgJQZUM\u002B49B720p3rYZUqRKIUr50mhasHKWWOobjYHuZodoWJGWfHmeDpMDmtFPEnbx94428LSP4OJOfYpRqO\u002BG6OaGLB6neqycf3Szv6qOdAOiHe1m\u002BIOG/xi05P5Nzph2Wi6UsLLoi3QtPn3pAk\u002B9mDBcLMuwOjW4L8PoR1btcBJbOXb1NVPTNA5DYBtj9gJ/9jYM/SLmDdLVTexD0MtLmxva8DZf1fnYmVDK8FSRO7fjNCBb6BBq860aS/2Yd8u2eEGT6KftBYWr\u002BZcSTZ5Sny\u002Brqs4QRBzn4V", - "cancellation_requested": false, - "status": "inProgress", - "status_details": "Pending certificate created. Certificate request is in progress. This may take some time based on the issuer provider. Please check again later.", - "request_id": "b852c2f11ef34b54a5a6af09b05d177d" - } - }, - { - "RequestUri": "https://fakekvurl.vault.azure.net/certificates/beginCreateRehydrate1493351011/pending?api-version=7.3\u0026request_id=b852c2f11ef34b54a5a6af09b05d177d", - "RequestMethod": "GET", - "RequestHeaders": { - ":method": "GET", - "Accept-Encoding": "gzip", - "Authorization": "Sanitized", - "User-Agent": "azsdk-go-azcertificates/v0.4.2 (go1.18; Windows_NT)" - }, - "RequestBody": null, - "StatusCode": 200, - "ResponseHeaders": { - "Cache-Control": "no-cache", - "Content-Length": "1305", - "Content-Type": "application/json; charset=utf-8", - "Date": "Mon, 16 May 2022 18:09:50 GMT", - "Expires": "-1", - "Pragma": "no-cache", - "Retry-After": "10", - "Strict-Transport-Security": "max-age=31536000;includeSubDomains", - "X-Content-Type-Options": "nosniff", - "x-ms-keyvault-network-info": "conn_type=Ipv4;addr=73.83.78.150;act_addr_fam=InterNetwork;", - "x-ms-keyvault-region": "westus2", - "x-ms-keyvault-service-version": "1.9.395.1", - "x-ms-request-id": "d0e20198-53fa-4c20-8ece-3420b3e527ed" - }, - "ResponseBody": { - "id": "https://fakekvurl.vault.azure.net/certificates/beginCreateRehydrate1493351011/pending", - "issuer": { - "name": "Self" - }, - "csr": "MIICqDCCAZACAQAwGDEWMBQGA1UEAxMNRGVmYXVsdFBvbGljeTCCASIwDQYJKoZIhvcNAQEBBQADggEPADCCAQoCggEBALpW4D0Cf3CCsUlYSLPhvGnNbN6tnfaSWOp/UIx4qFfjB23euXt8lLkF7ekDcv2S70pdykni3hXMCB16\u002B6f3JpGGcXFktirKvGuGtjDe7/tpFRk2O\u002B9crj/9Ppi/zxkCVjwudKnjLe0OPLqcihzzM4uMgiDxoTwlU5wv\u002BdQaKS48kaAEL/wbFPgpU2cDgwwsK2EJiKRgS0\u002B1OKm2DuM8LZJVGd2EVUnUpzdU3/00mA19wlPgz4Asl78NXJm01GR6ub5yFXLsRXpGG3QVCU/YpW5JZgdobtRKEvuE/rTOiRJeSgIbCcnFEhH3D4NEd2\u002BAR53ds27xuHUPqAkhXJBhqlkCAwEAAaBLMEkGCSqGSIb3DQEJDjE8MDowDgYDVR0PAQH/BAQDAgWgMB0GA1UdJQQWMBQGCCsGAQUFBwMBBggrBgEFBQcDAjAJBgNVHRMEAjAAMA0GCSqGSIb3DQEBCwUAA4IBAQCmN2B6z61hSVRwTf4AnQl/AtDvo6NXPTVlDqWD1mRzIRSdIOACgJQZUM\u002B49B720p3rYZUqRKIUr50mhasHKWWOobjYHuZodoWJGWfHmeDpMDmtFPEnbx94428LSP4OJOfYpRqO\u002BG6OaGLB6neqycf3Szv6qOdAOiHe1m\u002BIOG/xi05P5Nzph2Wi6UsLLoi3QtPn3pAk\u002B9mDBcLMuwOjW4L8PoR1btcBJbOXb1NVPTNA5DYBtj9gJ/9jYM/SLmDdLVTexD0MtLmxva8DZf1fnYmVDK8FSRO7fjNCBb6BBq860aS/2Yd8u2eEGT6KftBYWr\u002BZcSTZ5Sny\u002Brqs4QRBzn4V", - "cancellation_requested": false, - "status": "inProgress", - "status_details": "Pending certificate created. Certificate request is in progress. This may take some time based on the issuer provider. Please check again later.", - "request_id": "b852c2f11ef34b54a5a6af09b05d177d" - } - }, - { - "RequestUri": "https://fakekvurl.vault.azure.net/certificates/beginCreateRehydrate1493351011/pending?api-version=7.3\u0026request_id=b852c2f11ef34b54a5a6af09b05d177d", - "RequestMethod": "GET", - "RequestHeaders": { - ":method": "GET", - "Accept-Encoding": "gzip", - "Authorization": "Sanitized", - "User-Agent": "azsdk-go-azcertificates/v0.4.2 (go1.18; Windows_NT)" - }, - "RequestBody": null, - "StatusCode": 200, - "ResponseHeaders": { - "Cache-Control": "no-cache", - "Content-Length": "1229", - "Content-Type": "application/json; charset=utf-8", - "Date": "Mon, 16 May 2022 18:10:00 GMT", - "Expires": "-1", - "Pragma": "no-cache", - "Strict-Transport-Security": "max-age=31536000;includeSubDomains", - "X-Content-Type-Options": "nosniff", - "x-ms-keyvault-network-info": "conn_type=Ipv4;addr=73.83.78.150;act_addr_fam=InterNetwork;", - "x-ms-keyvault-region": "westus2", - "x-ms-keyvault-service-version": "1.9.395.1", - "x-ms-request-id": "534fc7d3-5a25-462b-94f8-ebf75d88fa5a" - }, - "ResponseBody": { - "id": "https://fakekvurl.vault.azure.net/certificates/beginCreateRehydrate1493351011/pending", - "issuer": { - "name": "Self" - }, - "csr": "MIICqDCCAZACAQAwGDEWMBQGA1UEAxMNRGVmYXVsdFBvbGljeTCCASIwDQYJKoZIhvcNAQEBBQADggEPADCCAQoCggEBALpW4D0Cf3CCsUlYSLPhvGnNbN6tnfaSWOp/UIx4qFfjB23euXt8lLkF7ekDcv2S70pdykni3hXMCB16\u002B6f3JpGGcXFktirKvGuGtjDe7/tpFRk2O\u002B9crj/9Ppi/zxkCVjwudKnjLe0OPLqcihzzM4uMgiDxoTwlU5wv\u002BdQaKS48kaAEL/wbFPgpU2cDgwwsK2EJiKRgS0\u002B1OKm2DuM8LZJVGd2EVUnUpzdU3/00mA19wlPgz4Asl78NXJm01GR6ub5yFXLsRXpGG3QVCU/YpW5JZgdobtRKEvuE/rTOiRJeSgIbCcnFEhH3D4NEd2\u002BAR53ds27xuHUPqAkhXJBhqlkCAwEAAaBLMEkGCSqGSIb3DQEJDjE8MDowDgYDVR0PAQH/BAQDAgWgMB0GA1UdJQQWMBQGCCsGAQUFBwMBBggrBgEFBQcDAjAJBgNVHRMEAjAAMA0GCSqGSIb3DQEBCwUAA4IBAQCmN2B6z61hSVRwTf4AnQl/AtDvo6NXPTVlDqWD1mRzIRSdIOACgJQZUM\u002B49B720p3rYZUqRKIUr50mhasHKWWOobjYHuZodoWJGWfHmeDpMDmtFPEnbx94428LSP4OJOfYpRqO\u002BG6OaGLB6neqycf3Szv6qOdAOiHe1m\u002BIOG/xi05P5Nzph2Wi6UsLLoi3QtPn3pAk\u002B9mDBcLMuwOjW4L8PoR1btcBJbOXb1NVPTNA5DYBtj9gJ/9jYM/SLmDdLVTexD0MtLmxva8DZf1fnYmVDK8FSRO7fjNCBb6BBq860aS/2Yd8u2eEGT6KftBYWr\u002BZcSTZ5Sny\u002Brqs4QRBzn4V", - "cancellation_requested": false, - "status": "completed", - "target": "https://fakekvurl.vault.azure.net/certificates/beginCreateRehydrate1493351011", - "request_id": "b852c2f11ef34b54a5a6af09b05d177d" - } - }, - { - "RequestUri": "https://fakekvurl.vault.azure.net/certificates/beginCreateRehydrate1493351011/?api-version=7.3", - "RequestMethod": "GET", - "RequestHeaders": { - ":method": "GET", - "Accept": "application/json", - "Accept-Encoding": "gzip", - "Authorization": "Sanitized", - "User-Agent": "azsdk-go-azcertificates/v0.4.2 (go1.18; Windows_NT)" - }, - "RequestBody": null, - "StatusCode": 200, - "ResponseHeaders": { - "Cache-Control": "no-cache", - "Content-Length": "2411", - "Content-Type": "application/json; charset=utf-8", - "Date": "Mon, 16 May 2022 18:10:00 GMT", - "Expires": "-1", - "Pragma": "no-cache", - "Strict-Transport-Security": "max-age=31536000;includeSubDomains", - "X-Content-Type-Options": "nosniff", - "x-ms-keyvault-network-info": "conn_type=Ipv4;addr=73.83.78.150;act_addr_fam=InterNetwork;", - "x-ms-keyvault-region": "westus2", - "x-ms-keyvault-service-version": "1.9.395.1", - "x-ms-request-id": "b044976f-2c60-4048-940c-039400a88a36" - }, - "ResponseBody": { - "id": "https://fakekvurl.vault.azure.net/certificates/beginCreateRehydrate1493351011/fd236b7e23f54a3385be551bd78a262f", - "kid": "https://fakekvurl.vault.azure.net/keys/beginCreateRehydrate1493351011/fd236b7e23f54a3385be551bd78a262f", - "sid": "https://fakekvurl.vault.azure.net/secrets/beginCreateRehydrate1493351011/fd236b7e23f54a3385be551bd78a262f", - "x5t": "Nj87GbWTb1VedtZ1wUZk0aRTqzU", - "cer": "MIIDNjCCAh6gAwIBAgIQWP\u002BO350xQgOO7gq5LMt7mjANBgkqhkiG9w0BAQsFADAYMRYwFAYDVQQDEw1EZWZhdWx0UG9saWN5MB4XDTIyMDUxNjE3NTk1NloXDTIzMDUxNjE4MDk1NlowGDEWMBQGA1UEAxMNRGVmYXVsdFBvbGljeTCCASIwDQYJKoZIhvcNAQEBBQADggEPADCCAQoCggEBALpW4D0Cf3CCsUlYSLPhvGnNbN6tnfaSWOp/UIx4qFfjB23euXt8lLkF7ekDcv2S70pdykni3hXMCB16\u002B6f3JpGGcXFktirKvGuGtjDe7/tpFRk2O\u002B9crj/9Ppi/zxkCVjwudKnjLe0OPLqcihzzM4uMgiDxoTwlU5wv\u002BdQaKS48kaAEL/wbFPgpU2cDgwwsK2EJiKRgS0\u002B1OKm2DuM8LZJVGd2EVUnUpzdU3/00mA19wlPgz4Asl78NXJm01GR6ub5yFXLsRXpGG3QVCU/YpW5JZgdobtRKEvuE/rTOiRJeSgIbCcnFEhH3D4NEd2\u002BAR53ds27xuHUPqAkhXJBhqlkCAwEAAaN8MHowDgYDVR0PAQH/BAQDAgWgMAkGA1UdEwQCMAAwHQYDVR0lBBYwFAYIKwYBBQUHAwEGCCsGAQUFBwMCMB8GA1UdIwQYMBaAFJb962u4Qn9knxFMrWX\u002BF/B59Db9MB0GA1UdDgQWBBSW/etruEJ/ZJ8RTK1l/hfwefQ2/TANBgkqhkiG9w0BAQsFAAOCAQEAMNb8tnvl/a62TKMXs0WaEN/3f8cI5Hfbrdw1uY5BljLt3xilvaBHO2ggnrDWey1GQLjGbXrHFdsBvjvEXj6GELb5KRxjmH/Li0N6ZHFchjn/I\u002B9SedxPKkO9QmdRaSc8J2DzuDmeTdU0Br4sXpWxtF81P/LlQOGHn4E\u002B1dSzUnrfdLYAl7skpW0qmGCZkM6suQvonqMB/nBkrSlgEi9HmQEJDIFHmOrA67bOlqzxWrHX\u002BpKjZ1RK2U\u002BbcITZdHR0NYKNTdNGNqJQeWRHGE3YSHg2MkpHK828nokHy4\u002BBPJyMWuRF8rUXyjIT9239MUX/Em5/Go0SWBditaUTplz1Ug==", - "attributes": { - "enabled": true, - "nbf": 1652723996, - "exp": 1684260596, - "created": 1652724596, - "updated": 1652724596, - "recoveryLevel": "CustomizedRecoverable\u002BPurgeable", - "recoverableDays": 7 - }, - "policy": { - "id": "https://fakekvurl.vault.azure.net/certificates/beginCreateRehydrate1493351011/policy", - "key_props": { - "exportable": true, - "kty": "RSA", - "key_size": 2048, - "reuse_key": false - }, - "secret_props": { - "contentType": "application/x-pkcs12" - }, - "x509_props": { - "subject": "CN=DefaultPolicy", - "sans": {}, - "ekus": [ - "1.3.6.1.5.5.7.3.1", - "1.3.6.1.5.5.7.3.2" - ], - "key_usage": [ - "digitalSignature", - "keyEncipherment" - ], - "validity_months": 12, - "basic_constraints": { - "ca": false - } - }, - "lifetime_actions": [ - { - "trigger": { - "lifetime_percentage": 80 - }, - "action": { - "action_type": "AutoRenew" - } - } - ], - "issuer": { - "name": "Self" - }, - "attributes": { - "enabled": true, - "created": 1652724591, - "updated": 1652724591 - } - }, - "pending": { - "id": "https://fakekvurl.vault.azure.net/certificates/beginCreateRehydrate1493351011/pending" - } - } - }, - { - "RequestUri": "https://fakekvurl.vault.azure.net/certificates/beginCreateRehydrate1493351011?api-version=7.3", - "RequestMethod": "DELETE", - "RequestHeaders": { - "Accept": "application/json", - "Accept-Encoding": "gzip", - "Authorization": "Sanitized", - "User-Agent": "azsdk-go-azcertificates/v0.4.2 (go1.18; Windows_NT)" - }, - "RequestBody": null, - "StatusCode": 200, - "ResponseHeaders": { - "Cache-Control": "no-cache", - "Content-Length": "2568", - "Content-Type": "application/json; charset=utf-8", - "Date": "Mon, 16 May 2022 18:10:01 GMT", - "Expires": "-1", - "Pragma": "no-cache", - "Strict-Transport-Security": "max-age=31536000;includeSubDomains", - "X-Content-Type-Options": "nosniff", - "x-ms-keyvault-network-info": "conn_type=Ipv4;addr=73.83.78.150;act_addr_fam=InterNetwork;", - "x-ms-keyvault-region": "westus2", - "x-ms-keyvault-service-version": "1.9.395.1", - "x-ms-request-id": "f1b389ad-673a-4b41-9026-388ba4d98566" - }, - "ResponseBody": { - "recoveryId": "https://fakekvurl.vault.azure.net/deletedcertificates/beginCreateRehydrate1493351011", - "deletedDate": 1652724601, - "scheduledPurgeDate": 1653329401, - "id": "https://fakekvurl.vault.azure.net/certificates/beginCreateRehydrate1493351011/fd236b7e23f54a3385be551bd78a262f", - "kid": "https://fakekvurl.vault.azure.net/keys/beginCreateRehydrate1493351011/fd236b7e23f54a3385be551bd78a262f", - "sid": "https://fakekvurl.vault.azure.net/secrets/beginCreateRehydrate1493351011/fd236b7e23f54a3385be551bd78a262f", - "x5t": "Nj87GbWTb1VedtZ1wUZk0aRTqzU", - "cer": "MIIDNjCCAh6gAwIBAgIQWP\u002BO350xQgOO7gq5LMt7mjANBgkqhkiG9w0BAQsFADAYMRYwFAYDVQQDEw1EZWZhdWx0UG9saWN5MB4XDTIyMDUxNjE3NTk1NloXDTIzMDUxNjE4MDk1NlowGDEWMBQGA1UEAxMNRGVmYXVsdFBvbGljeTCCASIwDQYJKoZIhvcNAQEBBQADggEPADCCAQoCggEBALpW4D0Cf3CCsUlYSLPhvGnNbN6tnfaSWOp/UIx4qFfjB23euXt8lLkF7ekDcv2S70pdykni3hXMCB16\u002B6f3JpGGcXFktirKvGuGtjDe7/tpFRk2O\u002B9crj/9Ppi/zxkCVjwudKnjLe0OPLqcihzzM4uMgiDxoTwlU5wv\u002BdQaKS48kaAEL/wbFPgpU2cDgwwsK2EJiKRgS0\u002B1OKm2DuM8LZJVGd2EVUnUpzdU3/00mA19wlPgz4Asl78NXJm01GR6ub5yFXLsRXpGG3QVCU/YpW5JZgdobtRKEvuE/rTOiRJeSgIbCcnFEhH3D4NEd2\u002BAR53ds27xuHUPqAkhXJBhqlkCAwEAAaN8MHowDgYDVR0PAQH/BAQDAgWgMAkGA1UdEwQCMAAwHQYDVR0lBBYwFAYIKwYBBQUHAwEGCCsGAQUFBwMCMB8GA1UdIwQYMBaAFJb962u4Qn9knxFMrWX\u002BF/B59Db9MB0GA1UdDgQWBBSW/etruEJ/ZJ8RTK1l/hfwefQ2/TANBgkqhkiG9w0BAQsFAAOCAQEAMNb8tnvl/a62TKMXs0WaEN/3f8cI5Hfbrdw1uY5BljLt3xilvaBHO2ggnrDWey1GQLjGbXrHFdsBvjvEXj6GELb5KRxjmH/Li0N6ZHFchjn/I\u002B9SedxPKkO9QmdRaSc8J2DzuDmeTdU0Br4sXpWxtF81P/LlQOGHn4E\u002B1dSzUnrfdLYAl7skpW0qmGCZkM6suQvonqMB/nBkrSlgEi9HmQEJDIFHmOrA67bOlqzxWrHX\u002BpKjZ1RK2U\u002BbcITZdHR0NYKNTdNGNqJQeWRHGE3YSHg2MkpHK828nokHy4\u002BBPJyMWuRF8rUXyjIT9239MUX/Em5/Go0SWBditaUTplz1Ug==", - "attributes": { - "enabled": true, - "nbf": 1652723996, - "exp": 1684260596, - "created": 1652724596, - "updated": 1652724596, - "recoveryLevel": "CustomizedRecoverable\u002BPurgeable", - "recoverableDays": 7 - }, - "policy": { - "id": "https://fakekvurl.vault.azure.net/certificates/beginCreateRehydrate1493351011/policy", - "key_props": { - "exportable": true, - "kty": "RSA", - "key_size": 2048, - "reuse_key": false - }, - "secret_props": { - "contentType": "application/x-pkcs12" - }, - "x509_props": { - "subject": "CN=DefaultPolicy", - "sans": {}, - "ekus": [ - "1.3.6.1.5.5.7.3.1", - "1.3.6.1.5.5.7.3.2" - ], - "key_usage": [ - "digitalSignature", - "keyEncipherment" - ], - "validity_months": 12, - "basic_constraints": { - "ca": false - } - }, - "lifetime_actions": [ - { - "trigger": { - "lifetime_percentage": 80 - }, - "action": { - "action_type": "AutoRenew" - } - } - ], - "issuer": { - "name": "Self" - }, - "attributes": { - "enabled": true, - "created": 1652724591, - "updated": 1652724591 - } - }, - "pending": { - "id": "https://fakekvurl.vault.azure.net/certificates/beginCreateRehydrate1493351011/pending" - } - } - }, - { - "RequestUri": "https://fakekvurl.vault.azure.net/deletedcertificates/beginCreateRehydrate1493351011?api-version=7.3", - "RequestMethod": "GET", - "RequestHeaders": { - ":method": "GET", - "Accept": "application/json", - "Accept-Encoding": "gzip", - "Authorization": "Sanitized", - "User-Agent": "azsdk-go-azcertificates/v0.4.2 (go1.18; Windows_NT)" - }, - "RequestBody": null, - "StatusCode": 404, - "ResponseHeaders": { - "Cache-Control": "no-cache", - "Content-Length": "114", - "Content-Type": "application/json; charset=utf-8", - "Date": "Mon, 16 May 2022 18:10:01 GMT", - "Expires": "-1", - "Pragma": "no-cache", - "Strict-Transport-Security": "max-age=31536000;includeSubDomains", - "X-Content-Type-Options": "nosniff", - "x-ms-keyvault-network-info": "conn_type=Ipv4;addr=73.83.78.150;act_addr_fam=InterNetwork;", - "x-ms-keyvault-region": "westus2", - "x-ms-keyvault-service-version": "1.9.395.1", - "x-ms-request-id": "543aeacd-ff6d-434f-b358-6209e243c11d" - }, - "ResponseBody": { - "error": { - "code": "CertificateNotFound", - "message": "Deleted Certificate not found: beginCreateRehydrate1493351011" - } - } - }, - { - "RequestUri": "https://fakekvurl.vault.azure.net/deletedcertificates/beginCreateRehydrate1493351011?api-version=7.3", - "RequestMethod": "GET", - "RequestHeaders": { - ":method": "GET", - "Accept": "application/json", - "Accept-Encoding": "gzip", - "Authorization": "Sanitized", - "User-Agent": "azsdk-go-azcertificates/v0.4.2 (go1.18; Windows_NT)" - }, - "RequestBody": null, - "StatusCode": 404, - "ResponseHeaders": { - "Cache-Control": "no-cache", - "Content-Length": "114", - "Content-Type": "application/json; charset=utf-8", - "Date": "Mon, 16 May 2022 18:10:02 GMT", - "Expires": "-1", - "Pragma": "no-cache", - "Strict-Transport-Security": "max-age=31536000;includeSubDomains", - "X-Content-Type-Options": "nosniff", - "x-ms-keyvault-network-info": "conn_type=Ipv4;addr=73.83.78.150;act_addr_fam=InterNetwork;", - "x-ms-keyvault-region": "westus2", - "x-ms-keyvault-service-version": "1.9.395.1", - "x-ms-request-id": "8b5cb841-67c7-4d3d-b2aa-7fd005487a3b" - }, - "ResponseBody": { - "error": { - "code": "CertificateNotFound", - "message": "Deleted Certificate not found: beginCreateRehydrate1493351011" - } - } - }, - { - "RequestUri": "https://fakekvurl.vault.azure.net/deletedcertificates/beginCreateRehydrate1493351011?api-version=7.3", - "RequestMethod": "GET", - "RequestHeaders": { - ":method": "GET", - "Accept": "application/json", - "Accept-Encoding": "gzip", - "Authorization": "Sanitized", - "User-Agent": "azsdk-go-azcertificates/v0.4.2 (go1.18; Windows_NT)" - }, - "RequestBody": null, - "StatusCode": 404, - "ResponseHeaders": { - "Cache-Control": "no-cache", - "Content-Length": "114", - "Content-Type": "application/json; charset=utf-8", - "Date": "Mon, 16 May 2022 18:10:03 GMT", - "Expires": "-1", - "Pragma": "no-cache", - "Strict-Transport-Security": "max-age=31536000;includeSubDomains", - "X-Content-Type-Options": "nosniff", - "x-ms-keyvault-network-info": "conn_type=Ipv4;addr=73.83.78.150;act_addr_fam=InterNetwork;", - "x-ms-keyvault-region": "westus2", - "x-ms-keyvault-service-version": "1.9.395.1", - "x-ms-request-id": "48a4b9b4-f880-4736-b13d-2fbf4fab9777" - }, - "ResponseBody": { - "error": { - "code": "CertificateNotFound", - "message": "Deleted Certificate not found: beginCreateRehydrate1493351011" - } - } - }, - { - "RequestUri": "https://fakekvurl.vault.azure.net/deletedcertificates/beginCreateRehydrate1493351011?api-version=7.3", - "RequestMethod": "GET", - "RequestHeaders": { - ":method": "GET", - "Accept": "application/json", - "Accept-Encoding": "gzip", - "Authorization": "Sanitized", - "User-Agent": "azsdk-go-azcertificates/v0.4.2 (go1.18; Windows_NT)" - }, - "RequestBody": null, - "StatusCode": 404, - "ResponseHeaders": { - "Cache-Control": "no-cache", - "Content-Length": "114", - "Content-Type": "application/json; charset=utf-8", - "Date": "Mon, 16 May 2022 18:10:04 GMT", - "Expires": "-1", - "Pragma": "no-cache", - "Strict-Transport-Security": "max-age=31536000;includeSubDomains", - "X-Content-Type-Options": "nosniff", - "x-ms-keyvault-network-info": "conn_type=Ipv4;addr=73.83.78.150;act_addr_fam=InterNetwork;", - "x-ms-keyvault-region": "westus2", - "x-ms-keyvault-service-version": "1.9.395.1", - "x-ms-request-id": "b0b3ae44-a9ee-4e93-9073-03118eff9b42" - }, - "ResponseBody": { - "error": { - "code": "CertificateNotFound", - "message": "Deleted Certificate not found: beginCreateRehydrate1493351011" - } - } - }, - { - "RequestUri": "https://fakekvurl.vault.azure.net/deletedcertificates/beginCreateRehydrate1493351011?api-version=7.3", - "RequestMethod": "GET", - "RequestHeaders": { - ":method": "GET", - "Accept": "application/json", - "Accept-Encoding": "gzip", - "Authorization": "Sanitized", - "User-Agent": "azsdk-go-azcertificates/v0.4.2 (go1.18; Windows_NT)" - }, - "RequestBody": null, - "StatusCode": 404, - "ResponseHeaders": { - "Cache-Control": "no-cache", - "Content-Length": "114", - "Content-Type": "application/json; charset=utf-8", - "Date": "Mon, 16 May 2022 18:10:05 GMT", - "Expires": "-1", - "Pragma": "no-cache", - "Strict-Transport-Security": "max-age=31536000;includeSubDomains", - "X-Content-Type-Options": "nosniff", - "x-ms-keyvault-network-info": "conn_type=Ipv4;addr=73.83.78.150;act_addr_fam=InterNetwork;", - "x-ms-keyvault-region": "westus2", - "x-ms-keyvault-service-version": "1.9.395.1", - "x-ms-request-id": "14544d71-1efa-4ad0-a444-063847a2f55a" - }, - "ResponseBody": { - "error": { - "code": "CertificateNotFound", - "message": "Deleted Certificate not found: beginCreateRehydrate1493351011" - } - } - }, - { - "RequestUri": "https://fakekvurl.vault.azure.net/deletedcertificates/beginCreateRehydrate1493351011?api-version=7.3", - "RequestMethod": "GET", - "RequestHeaders": { - ":method": "GET", - "Accept": "application/json", - "Accept-Encoding": "gzip", - "Authorization": "Sanitized", - "User-Agent": "azsdk-go-azcertificates/v0.4.2 (go1.18; Windows_NT)" - }, - "RequestBody": null, - "StatusCode": 404, - "ResponseHeaders": { - "Cache-Control": "no-cache", - "Content-Length": "114", - "Content-Type": "application/json; charset=utf-8", - "Date": "Mon, 16 May 2022 18:10:06 GMT", - "Expires": "-1", - "Pragma": "no-cache", - "Strict-Transport-Security": "max-age=31536000;includeSubDomains", - "X-Content-Type-Options": "nosniff", - "x-ms-keyvault-network-info": "conn_type=Ipv4;addr=73.83.78.150;act_addr_fam=InterNetwork;", - "x-ms-keyvault-region": "westus2", - "x-ms-keyvault-service-version": "1.9.395.1", - "x-ms-request-id": "af7ba02f-85dc-4770-90c7-f4ca0ef8b6e7" - }, - "ResponseBody": { - "error": { - "code": "CertificateNotFound", - "message": "Deleted Certificate not found: beginCreateRehydrate1493351011" - } - } - }, - { - "RequestUri": "https://fakekvurl.vault.azure.net/deletedcertificates/beginCreateRehydrate1493351011?api-version=7.3", - "RequestMethod": "GET", - "RequestHeaders": { - ":method": "GET", - "Accept": "application/json", - "Accept-Encoding": "gzip", - "Authorization": "Sanitized", - "User-Agent": "azsdk-go-azcertificates/v0.4.2 (go1.18; Windows_NT)" - }, - "RequestBody": null, - "StatusCode": 404, - "ResponseHeaders": { - "Cache-Control": "no-cache", - "Content-Length": "114", - "Content-Type": "application/json; charset=utf-8", - "Date": "Mon, 16 May 2022 18:10:07 GMT", - "Expires": "-1", - "Pragma": "no-cache", - "Strict-Transport-Security": "max-age=31536000;includeSubDomains", - "X-Content-Type-Options": "nosniff", - "x-ms-keyvault-network-info": "conn_type=Ipv4;addr=73.83.78.150;act_addr_fam=InterNetwork;", - "x-ms-keyvault-region": "westus2", - "x-ms-keyvault-service-version": "1.9.395.1", - "x-ms-request-id": "ae0c55fe-cf88-4992-88f1-84598853f446" - }, - "ResponseBody": { - "error": { - "code": "CertificateNotFound", - "message": "Deleted Certificate not found: beginCreateRehydrate1493351011" - } - } - }, - { - "RequestUri": "https://fakekvurl.vault.azure.net/deletedcertificates/beginCreateRehydrate1493351011?api-version=7.3", - "RequestMethod": "GET", - "RequestHeaders": { - ":method": "GET", - "Accept": "application/json", - "Accept-Encoding": "gzip", - "Authorization": "Sanitized", - "User-Agent": "azsdk-go-azcertificates/v0.4.2 (go1.18; Windows_NT)" - }, - "RequestBody": null, - "StatusCode": 404, - "ResponseHeaders": { - "Cache-Control": "no-cache", - "Content-Length": "114", - "Content-Type": "application/json; charset=utf-8", - "Date": "Mon, 16 May 2022 18:10:08 GMT", - "Expires": "-1", - "Pragma": "no-cache", - "Strict-Transport-Security": "max-age=31536000;includeSubDomains", - "X-Content-Type-Options": "nosniff", - "x-ms-keyvault-network-info": "conn_type=Ipv4;addr=73.83.78.150;act_addr_fam=InterNetwork;", - "x-ms-keyvault-region": "westus2", - "x-ms-keyvault-service-version": "1.9.395.1", - "x-ms-request-id": "ab08045b-10b8-4222-a156-765f953c55e3" - }, - "ResponseBody": { - "error": { - "code": "CertificateNotFound", - "message": "Deleted Certificate not found: beginCreateRehydrate1493351011" - } - } - }, - { - "RequestUri": "https://fakekvurl.vault.azure.net/deletedcertificates/beginCreateRehydrate1493351011?api-version=7.3", - "RequestMethod": "GET", - "RequestHeaders": { - ":method": "GET", - "Accept": "application/json", - "Accept-Encoding": "gzip", - "Authorization": "Sanitized", - "User-Agent": "azsdk-go-azcertificates/v0.4.2 (go1.18; Windows_NT)" - }, - "RequestBody": null, - "StatusCode": 404, - "ResponseHeaders": { - "Cache-Control": "no-cache", - "Content-Length": "114", - "Content-Type": "application/json; charset=utf-8", - "Date": "Mon, 16 May 2022 18:10:09 GMT", - "Expires": "-1", - "Pragma": "no-cache", - "Strict-Transport-Security": "max-age=31536000;includeSubDomains", - "X-Content-Type-Options": "nosniff", - "x-ms-keyvault-network-info": "conn_type=Ipv4;addr=73.83.78.150;act_addr_fam=InterNetwork;", - "x-ms-keyvault-region": "westus2", - "x-ms-keyvault-service-version": "1.9.395.1", - "x-ms-request-id": "21fe2f02-5826-4824-8cc0-fc94c168a2ce" - }, - "ResponseBody": { - "error": { - "code": "CertificateNotFound", - "message": "Deleted Certificate not found: beginCreateRehydrate1493351011" - } - } - }, - { - "RequestUri": "https://fakekvurl.vault.azure.net/deletedcertificates/beginCreateRehydrate1493351011?api-version=7.3", - "RequestMethod": "GET", - "RequestHeaders": { - ":method": "GET", - "Accept": "application/json", - "Accept-Encoding": "gzip", - "Authorization": "Sanitized", - "User-Agent": "azsdk-go-azcertificates/v0.4.2 (go1.18; Windows_NT)" - }, - "RequestBody": null, - "StatusCode": 200, - "ResponseHeaders": { - "Cache-Control": "no-cache", - "Content-Length": "2568", - "Content-Type": "application/json; charset=utf-8", - "Date": "Mon, 16 May 2022 18:10:10 GMT", - "Expires": "-1", - "Pragma": "no-cache", - "Strict-Transport-Security": "max-age=31536000;includeSubDomains", - "X-Content-Type-Options": "nosniff", - "x-ms-keyvault-network-info": "conn_type=Ipv4;addr=73.83.78.150;act_addr_fam=InterNetwork;", - "x-ms-keyvault-region": "westus2", - "x-ms-keyvault-service-version": "1.9.395.1", - "x-ms-request-id": "fb2c1ba8-5c1c-436d-b40a-f8b1a31e03ab" - }, - "ResponseBody": { - "recoveryId": "https://fakekvurl.vault.azure.net/deletedcertificates/beginCreateRehydrate1493351011", - "deletedDate": 1652724601, - "scheduledPurgeDate": 1653329401, - "id": "https://fakekvurl.vault.azure.net/certificates/beginCreateRehydrate1493351011/fd236b7e23f54a3385be551bd78a262f", - "kid": "https://fakekvurl.vault.azure.net/keys/beginCreateRehydrate1493351011/fd236b7e23f54a3385be551bd78a262f", - "sid": "https://fakekvurl.vault.azure.net/secrets/beginCreateRehydrate1493351011/fd236b7e23f54a3385be551bd78a262f", - "x5t": "Nj87GbWTb1VedtZ1wUZk0aRTqzU", - "cer": "MIIDNjCCAh6gAwIBAgIQWP\u002BO350xQgOO7gq5LMt7mjANBgkqhkiG9w0BAQsFADAYMRYwFAYDVQQDEw1EZWZhdWx0UG9saWN5MB4XDTIyMDUxNjE3NTk1NloXDTIzMDUxNjE4MDk1NlowGDEWMBQGA1UEAxMNRGVmYXVsdFBvbGljeTCCASIwDQYJKoZIhvcNAQEBBQADggEPADCCAQoCggEBALpW4D0Cf3CCsUlYSLPhvGnNbN6tnfaSWOp/UIx4qFfjB23euXt8lLkF7ekDcv2S70pdykni3hXMCB16\u002B6f3JpGGcXFktirKvGuGtjDe7/tpFRk2O\u002B9crj/9Ppi/zxkCVjwudKnjLe0OPLqcihzzM4uMgiDxoTwlU5wv\u002BdQaKS48kaAEL/wbFPgpU2cDgwwsK2EJiKRgS0\u002B1OKm2DuM8LZJVGd2EVUnUpzdU3/00mA19wlPgz4Asl78NXJm01GR6ub5yFXLsRXpGG3QVCU/YpW5JZgdobtRKEvuE/rTOiRJeSgIbCcnFEhH3D4NEd2\u002BAR53ds27xuHUPqAkhXJBhqlkCAwEAAaN8MHowDgYDVR0PAQH/BAQDAgWgMAkGA1UdEwQCMAAwHQYDVR0lBBYwFAYIKwYBBQUHAwEGCCsGAQUFBwMCMB8GA1UdIwQYMBaAFJb962u4Qn9knxFMrWX\u002BF/B59Db9MB0GA1UdDgQWBBSW/etruEJ/ZJ8RTK1l/hfwefQ2/TANBgkqhkiG9w0BAQsFAAOCAQEAMNb8tnvl/a62TKMXs0WaEN/3f8cI5Hfbrdw1uY5BljLt3xilvaBHO2ggnrDWey1GQLjGbXrHFdsBvjvEXj6GELb5KRxjmH/Li0N6ZHFchjn/I\u002B9SedxPKkO9QmdRaSc8J2DzuDmeTdU0Br4sXpWxtF81P/LlQOGHn4E\u002B1dSzUnrfdLYAl7skpW0qmGCZkM6suQvonqMB/nBkrSlgEi9HmQEJDIFHmOrA67bOlqzxWrHX\u002BpKjZ1RK2U\u002BbcITZdHR0NYKNTdNGNqJQeWRHGE3YSHg2MkpHK828nokHy4\u002BBPJyMWuRF8rUXyjIT9239MUX/Em5/Go0SWBditaUTplz1Ug==", - "attributes": { - "enabled": true, - "nbf": 1652723996, - "exp": 1684260596, - "created": 1652724596, - "updated": 1652724596, - "recoveryLevel": "CustomizedRecoverable\u002BPurgeable", - "recoverableDays": 7 - }, - "policy": { - "id": "https://fakekvurl.vault.azure.net/certificates/beginCreateRehydrate1493351011/policy", - "key_props": { - "exportable": true, - "kty": "RSA", - "key_size": 2048, - "reuse_key": false - }, - "secret_props": { - "contentType": "application/x-pkcs12" - }, - "x509_props": { - "subject": "CN=DefaultPolicy", - "sans": {}, - "ekus": [ - "1.3.6.1.5.5.7.3.1", - "1.3.6.1.5.5.7.3.2" - ], - "key_usage": [ - "digitalSignature", - "keyEncipherment" - ], - "validity_months": 12, - "basic_constraints": { - "ca": false - } - }, - "lifetime_actions": [ - { - "trigger": { - "lifetime_percentage": 80 - }, - "action": { - "action_type": "AutoRenew" - } - } - ], - "issuer": { - "name": "Self" - }, - "attributes": { - "enabled": true, - "created": 1652724591, - "updated": 1652724591 - } - }, - "pending": { - "id": "https://fakekvurl.vault.azure.net/certificates/beginCreateRehydrate1493351011/pending" - } - } - }, - { - "RequestUri": "https://fakekvurl.vault.azure.net/deletedcertificates/beginCreateRehydrate1493351011?api-version=7.3", - "RequestMethod": "DELETE", - "RequestHeaders": { - "Accept": "application/json", - "Accept-Encoding": "gzip", - "Authorization": "Sanitized", - "User-Agent": "azsdk-go-azcertificates/v0.4.2 (go1.18; Windows_NT)" - }, - "RequestBody": null, - "StatusCode": 204, - "ResponseHeaders": { - "Cache-Control": "no-cache", - "Date": "Mon, 16 May 2022 18:10:10 GMT", - "Expires": "-1", - "Pragma": "no-cache", - "Strict-Transport-Security": "max-age=31536000;includeSubDomains", - "X-Content-Type-Options": "nosniff", - "x-ms-keyvault-network-info": "conn_type=Ipv4;addr=73.83.78.150;act_addr_fam=InterNetwork;", - "x-ms-keyvault-region": "westus2", - "x-ms-keyvault-service-version": "1.9.395.1", - "x-ms-request-id": "9baf1e36-8367-4cf8-ad3f-2aeb3aacc5a5" - }, - "ResponseBody": null - } - ], - "Variables": {} -} diff --git a/sdk/keyvault/azcertificates/testdata/recordings/TestClient_BeginDeleteCertificate.json b/sdk/keyvault/azcertificates/testdata/recordings/TestClient_BeginDeleteCertificate.json deleted file mode 100644 index c70a59ec8cb8..000000000000 --- a/sdk/keyvault/azcertificates/testdata/recordings/TestClient_BeginDeleteCertificate.json +++ /dev/null @@ -1,762 +0,0 @@ -{ - "Entries": [ - { - "RequestUri": "https://fakekvurl.vault.azure.net/certificates/createCert3943821326/create?api-version=7.3", - "RequestMethod": "POST", - "RequestHeaders": { - ":method": "POST", - "Accept": "application/json", - "Accept-Encoding": "gzip", - "Content-Length": "0", - "User-Agent": "azsdk-go-azcertificates/v0.4.2 (go1.18; Windows_NT)" - }, - "RequestBody": null, - "StatusCode": 401, - "ResponseHeaders": { - "Cache-Control": "no-cache", - "Content-Length": "97", - "Content-Type": "application/json; charset=utf-8", - "Date": "Mon, 16 May 2022 18:10:10 GMT", - "Expires": "-1", - "Pragma": "no-cache", - "Strict-Transport-Security": "max-age=31536000;includeSubDomains", - "WWW-Authenticate": "Bearer authorization=\u0022https://login.windows.net/00000000-0000-0000-0000-000000000000\u0022, resource=\u0022https://vault.azure.net\u0022", - "X-Content-Type-Options": "nosniff", - "x-ms-keyvault-network-info": "conn_type=Ipv4;addr=73.83.78.150;act_addr_fam=InterNetwork;", - "x-ms-keyvault-region": "westus2", - "x-ms-keyvault-service-version": "1.9.395.1", - "x-ms-request-id": "db956c22-ec81-4459-98e6-0ac7df0d92d1" - }, - "ResponseBody": { - "error": { - "code": "Unauthorized", - "message": "AKV10000: Request is missing a Bearer or PoP token." - } - } - }, - { - "RequestUri": "https://fakekvurl.vault.azure.net/certificates/createCert3943821326/create?api-version=7.3", - "RequestMethod": "POST", - "RequestHeaders": { - ":method": "POST", - "Accept": "application/json", - "Accept-Encoding": "gzip", - "Authorization": "Sanitized", - "Content-Length": "125", - "Content-Type": "application/json", - "User-Agent": "azsdk-go-azcertificates/v0.4.2 (go1.18; Windows_NT)" - }, - "RequestBody": { - "attributes": {}, - "policy": { - "issuer": { - "name": "Self" - }, - "secret_props": {}, - "x509_props": { - "sans": {}, - "subject": "CN=DefaultPolicy" - } - } - }, - "StatusCode": 202, - "ResponseHeaders": { - "Cache-Control": "no-cache", - "Content-Length": "1295", - "Content-Type": "application/json; charset=utf-8", - "Date": "Mon, 16 May 2022 18:10:11 GMT", - "Expires": "-1", - "Location": "https://fakekvurl.vault.azure.net/certificates/createCert3943821326/pending?api-version=7.3\u0026request_id=076aba1cf53a4b9da460a240f3b8b528", - "Pragma": "no-cache", - "Retry-After": "10", - "Strict-Transport-Security": "max-age=31536000;includeSubDomains", - "X-Content-Type-Options": "nosniff", - "x-ms-keyvault-network-info": "conn_type=Ipv4;addr=73.83.78.150;act_addr_fam=InterNetwork;", - "x-ms-keyvault-region": "westus2", - "x-ms-keyvault-service-version": "1.9.395.1", - "x-ms-request-id": "f29095a1-0a29-4f90-8275-d46155e7d0b1" - }, - "ResponseBody": { - "id": "https://fakekvurl.vault.azure.net/certificates/createCert3943821326/pending", - "issuer": { - "name": "Self" - }, - "csr": "MIICqDCCAZACAQAwGDEWMBQGA1UEAxMNRGVmYXVsdFBvbGljeTCCASIwDQYJKoZIhvcNAQEBBQADggEPADCCAQoCggEBAKXY4znpT0lP\u002B9SFrHHVGo3U7rl5dXUM1F\u002B0eSl91GZ6Ontzs1vZ0DiVFC5UbVp9RIJk8cyGxWoCnXI6UHUhbmgU27oJlV5d1bPUTNEWVHBLchz68PpcsruC/39THSyMSoAVUCqivAFA9lpfky4ppvkKnd77D3BZzXKp1oqHpDxYhpR6LEjVkMICuEhqIDbpIlq813c7GUeMSKJoeJHEv1yCt3KADWtm8YBxh0Q09Dvdm1cylKuXulxIByWlpa5XSmR9CIcJIFbKeUpRngvP2kwOyggA\u002BNhz4Up46IymNQohnyOrp1D7Ofkr/OseDYPQwd\u002BeuFoxhl7BjfNO4aZkbXkCAwEAAaBLMEkGCSqGSIb3DQEJDjE8MDowDgYDVR0PAQH/BAQDAgWgMB0GA1UdJQQWMBQGCCsGAQUFBwMBBggrBgEFBQcDAjAJBgNVHRMEAjAAMA0GCSqGSIb3DQEBCwUAA4IBAQA0dHKCCPk6Gx8SDFlKsMnXibpnM0JhGCP0SoC64BqXzXO8ZpNv1wmQkdpn8m/U8KyWMSKtzPOOuRCEwGXRc5nXM1uPyDFPTyDCL5FU2Oakcef8q2HYB\u002BC0vEOx6ow2b\u002BHxYM3IZbmKGd1Bi/I5RD0kQOq2TAkhLZHYaG0lq5kE1b1uVZt/05AXtBTle9yN\u002BUsImp1IerivDv84TK5l6wX54/Ys21oz8QtyZc2u57XYytxCmjlUOtet/EhYEy5zOmg0woxDdCRO4qkuGszvRmQjGLfUbAbnPCRpHpKObB5mJdYfth7Y9Dw/sqLPim/W6QQiaaZSeMvMOwO95pT3rAHw", - "cancellation_requested": false, - "status": "inProgress", - "status_details": "Pending certificate created. Certificate request is in progress. This may take some time based on the issuer provider. Please check again later.", - "request_id": "076aba1cf53a4b9da460a240f3b8b528" - } - }, - { - "RequestUri": "https://fakekvurl.vault.azure.net/certificates/createCert3943821326/pending?api-version=7.3\u0026request_id=076aba1cf53a4b9da460a240f3b8b528", - "RequestMethod": "GET", - "RequestHeaders": { - ":method": "GET", - "Accept-Encoding": "gzip", - "Authorization": "Sanitized", - "User-Agent": "azsdk-go-azcertificates/v0.4.2 (go1.18; Windows_NT)" - }, - "RequestBody": null, - "StatusCode": 200, - "ResponseHeaders": { - "Cache-Control": "no-cache", - "Content-Length": "1209", - "Content-Type": "application/json; charset=utf-8", - "Date": "Mon, 16 May 2022 18:10:22 GMT", - "Expires": "-1", - "Pragma": "no-cache", - "Strict-Transport-Security": "max-age=31536000;includeSubDomains", - "X-Content-Type-Options": "nosniff", - "x-ms-keyvault-network-info": "conn_type=Ipv4;addr=73.83.78.150;act_addr_fam=InterNetwork;", - "x-ms-keyvault-region": "westus2", - "x-ms-keyvault-service-version": "1.9.395.1", - "x-ms-request-id": "5de5d1a3-73eb-40e5-8b82-0f4e71ef097f" - }, - "ResponseBody": { - "id": "https://fakekvurl.vault.azure.net/certificates/createCert3943821326/pending", - "issuer": { - "name": "Self" - }, - "csr": "MIICqDCCAZACAQAwGDEWMBQGA1UEAxMNRGVmYXVsdFBvbGljeTCCASIwDQYJKoZIhvcNAQEBBQADggEPADCCAQoCggEBAKXY4znpT0lP\u002B9SFrHHVGo3U7rl5dXUM1F\u002B0eSl91GZ6Ontzs1vZ0DiVFC5UbVp9RIJk8cyGxWoCnXI6UHUhbmgU27oJlV5d1bPUTNEWVHBLchz68PpcsruC/39THSyMSoAVUCqivAFA9lpfky4ppvkKnd77D3BZzXKp1oqHpDxYhpR6LEjVkMICuEhqIDbpIlq813c7GUeMSKJoeJHEv1yCt3KADWtm8YBxh0Q09Dvdm1cylKuXulxIByWlpa5XSmR9CIcJIFbKeUpRngvP2kwOyggA\u002BNhz4Up46IymNQohnyOrp1D7Ofkr/OseDYPQwd\u002BeuFoxhl7BjfNO4aZkbXkCAwEAAaBLMEkGCSqGSIb3DQEJDjE8MDowDgYDVR0PAQH/BAQDAgWgMB0GA1UdJQQWMBQGCCsGAQUFBwMBBggrBgEFBQcDAjAJBgNVHRMEAjAAMA0GCSqGSIb3DQEBCwUAA4IBAQA0dHKCCPk6Gx8SDFlKsMnXibpnM0JhGCP0SoC64BqXzXO8ZpNv1wmQkdpn8m/U8KyWMSKtzPOOuRCEwGXRc5nXM1uPyDFPTyDCL5FU2Oakcef8q2HYB\u002BC0vEOx6ow2b\u002BHxYM3IZbmKGd1Bi/I5RD0kQOq2TAkhLZHYaG0lq5kE1b1uVZt/05AXtBTle9yN\u002BUsImp1IerivDv84TK5l6wX54/Ys21oz8QtyZc2u57XYytxCmjlUOtet/EhYEy5zOmg0woxDdCRO4qkuGszvRmQjGLfUbAbnPCRpHpKObB5mJdYfth7Y9Dw/sqLPim/W6QQiaaZSeMvMOwO95pT3rAHw", - "cancellation_requested": false, - "status": "completed", - "target": "https://fakekvurl.vault.azure.net/certificates/createCert3943821326", - "request_id": "076aba1cf53a4b9da460a240f3b8b528" - } - }, - { - "RequestUri": "https://fakekvurl.vault.azure.net/certificates/createCert3943821326/?api-version=7.3", - "RequestMethod": "GET", - "RequestHeaders": { - ":method": "GET", - "Accept": "application/json", - "Accept-Encoding": "gzip", - "Authorization": "Sanitized", - "User-Agent": "azsdk-go-azcertificates/v0.4.2 (go1.18; Windows_NT)" - }, - "RequestBody": null, - "StatusCode": 200, - "ResponseHeaders": { - "Cache-Control": "no-cache", - "Content-Length": "2361", - "Content-Type": "application/json; charset=utf-8", - "Date": "Mon, 16 May 2022 18:10:22 GMT", - "Expires": "-1", - "Pragma": "no-cache", - "Strict-Transport-Security": "max-age=31536000;includeSubDomains", - "X-Content-Type-Options": "nosniff", - "x-ms-keyvault-network-info": "conn_type=Ipv4;addr=73.83.78.150;act_addr_fam=InterNetwork;", - "x-ms-keyvault-region": "westus2", - "x-ms-keyvault-service-version": "1.9.395.1", - "x-ms-request-id": "61c1cef3-7153-406d-9275-e53e6660cba3" - }, - "ResponseBody": { - "id": "https://fakekvurl.vault.azure.net/certificates/createCert3943821326/54c9443c19274bfb8665bc4c5672a3ec", - "kid": "https://fakekvurl.vault.azure.net/keys/createCert3943821326/54c9443c19274bfb8665bc4c5672a3ec", - "sid": "https://fakekvurl.vault.azure.net/secrets/createCert3943821326/54c9443c19274bfb8665bc4c5672a3ec", - "x5t": "wSDhBY1gRLUCE2ig1l673WGS-QY", - "cer": "MIIDNjCCAh6gAwIBAgIQbfSqnCxFTCuADvgKMoZ3HTANBgkqhkiG9w0BAQsFADAYMRYwFAYDVQQDEw1EZWZhdWx0UG9saWN5MB4XDTIyMDUxNjE4MDAyMVoXDTIzMDUxNjE4MTAyMVowGDEWMBQGA1UEAxMNRGVmYXVsdFBvbGljeTCCASIwDQYJKoZIhvcNAQEBBQADggEPADCCAQoCggEBAKXY4znpT0lP\u002B9SFrHHVGo3U7rl5dXUM1F\u002B0eSl91GZ6Ontzs1vZ0DiVFC5UbVp9RIJk8cyGxWoCnXI6UHUhbmgU27oJlV5d1bPUTNEWVHBLchz68PpcsruC/39THSyMSoAVUCqivAFA9lpfky4ppvkKnd77D3BZzXKp1oqHpDxYhpR6LEjVkMICuEhqIDbpIlq813c7GUeMSKJoeJHEv1yCt3KADWtm8YBxh0Q09Dvdm1cylKuXulxIByWlpa5XSmR9CIcJIFbKeUpRngvP2kwOyggA\u002BNhz4Up46IymNQohnyOrp1D7Ofkr/OseDYPQwd\u002BeuFoxhl7BjfNO4aZkbXkCAwEAAaN8MHowDgYDVR0PAQH/BAQDAgWgMAkGA1UdEwQCMAAwHQYDVR0lBBYwFAYIKwYBBQUHAwEGCCsGAQUFBwMCMB8GA1UdIwQYMBaAFLq9WXbHesRjq5Bi6uOK2u773HJ9MB0GA1UdDgQWBBS6vVl2x3rEY6uQYurjitru\u002B9xyfTANBgkqhkiG9w0BAQsFAAOCAQEAf9k7wzLhb8d3HSW8uxC71ifBVr3MrLrGiKHXyv81yJLF5IKGP5N8oYN1Q1cqCYgZCiQJ4H00oB1duaKb7HZy/Vf6NvnXjNQ5qPoL5hdfuzywkSmV4Yx06gZJhFM/h9ySmirYvlLcSpQ8fgNR5WjLHi4iVhYg\u002BRFaqSig59ou9oMYmWmzYJiY5d4QipsKhdDr2gI2NeHmpZ/cPLdV7yGGHPo9SloHOBoy1TQxWJ5kY3vasLPmmVYskYEEcMq\u002BKfE9YhpAfReePpc4\u002BMfLF4KV\u002BUjcLIjG4RZvO0jLTN1mVHeNRnky5xmGWzvFiUkvQKgi8epdvZaCpoBy70dLFXeDIA==", - "attributes": { - "enabled": true, - "nbf": 1652724021, - "exp": 1684260621, - "created": 1652724621, - "updated": 1652724621, - "recoveryLevel": "CustomizedRecoverable\u002BPurgeable", - "recoverableDays": 7 - }, - "policy": { - "id": "https://fakekvurl.vault.azure.net/certificates/createCert3943821326/policy", - "key_props": { - "exportable": true, - "kty": "RSA", - "key_size": 2048, - "reuse_key": false - }, - "secret_props": { - "contentType": "application/x-pkcs12" - }, - "x509_props": { - "subject": "CN=DefaultPolicy", - "sans": {}, - "ekus": [ - "1.3.6.1.5.5.7.3.1", - "1.3.6.1.5.5.7.3.2" - ], - "key_usage": [ - "digitalSignature", - "keyEncipherment" - ], - "validity_months": 12, - "basic_constraints": { - "ca": false - } - }, - "lifetime_actions": [ - { - "trigger": { - "lifetime_percentage": 80 - }, - "action": { - "action_type": "AutoRenew" - } - } - ], - "issuer": { - "name": "Self" - }, - "attributes": { - "enabled": true, - "created": 1652724612, - "updated": 1652724612 - } - }, - "pending": { - "id": "https://fakekvurl.vault.azure.net/certificates/createCert3943821326/pending" - } - } - }, - { - "RequestUri": "https://fakekvurl.vault.azure.net/certificates/createCert3943821326?api-version=7.3", - "RequestMethod": "DELETE", - "RequestHeaders": { - "Accept": "application/json", - "Accept-Encoding": "gzip", - "Authorization": "Sanitized", - "User-Agent": "azsdk-go-azcertificates/v0.4.2 (go1.18; Windows_NT)" - }, - "RequestBody": null, - "StatusCode": 200, - "ResponseHeaders": { - "Cache-Control": "no-cache", - "Content-Length": "2508", - "Content-Type": "application/json; charset=utf-8", - "Date": "Mon, 16 May 2022 18:10:22 GMT", - "Expires": "-1", - "Pragma": "no-cache", - "Strict-Transport-Security": "max-age=31536000;includeSubDomains", - "X-Content-Type-Options": "nosniff", - "x-ms-keyvault-network-info": "conn_type=Ipv4;addr=73.83.78.150;act_addr_fam=InterNetwork;", - "x-ms-keyvault-region": "westus2", - "x-ms-keyvault-service-version": "1.9.395.1", - "x-ms-request-id": "1dfaa646-ebfb-4d71-9549-39feb0de0757" - }, - "ResponseBody": { - "recoveryId": "https://fakekvurl.vault.azure.net/deletedcertificates/createCert3943821326", - "deletedDate": 1652724622, - "scheduledPurgeDate": 1653329422, - "id": "https://fakekvurl.vault.azure.net/certificates/createCert3943821326/54c9443c19274bfb8665bc4c5672a3ec", - "kid": "https://fakekvurl.vault.azure.net/keys/createCert3943821326/54c9443c19274bfb8665bc4c5672a3ec", - "sid": "https://fakekvurl.vault.azure.net/secrets/createCert3943821326/54c9443c19274bfb8665bc4c5672a3ec", - "x5t": "wSDhBY1gRLUCE2ig1l673WGS-QY", - "cer": "MIIDNjCCAh6gAwIBAgIQbfSqnCxFTCuADvgKMoZ3HTANBgkqhkiG9w0BAQsFADAYMRYwFAYDVQQDEw1EZWZhdWx0UG9saWN5MB4XDTIyMDUxNjE4MDAyMVoXDTIzMDUxNjE4MTAyMVowGDEWMBQGA1UEAxMNRGVmYXVsdFBvbGljeTCCASIwDQYJKoZIhvcNAQEBBQADggEPADCCAQoCggEBAKXY4znpT0lP\u002B9SFrHHVGo3U7rl5dXUM1F\u002B0eSl91GZ6Ontzs1vZ0DiVFC5UbVp9RIJk8cyGxWoCnXI6UHUhbmgU27oJlV5d1bPUTNEWVHBLchz68PpcsruC/39THSyMSoAVUCqivAFA9lpfky4ppvkKnd77D3BZzXKp1oqHpDxYhpR6LEjVkMICuEhqIDbpIlq813c7GUeMSKJoeJHEv1yCt3KADWtm8YBxh0Q09Dvdm1cylKuXulxIByWlpa5XSmR9CIcJIFbKeUpRngvP2kwOyggA\u002BNhz4Up46IymNQohnyOrp1D7Ofkr/OseDYPQwd\u002BeuFoxhl7BjfNO4aZkbXkCAwEAAaN8MHowDgYDVR0PAQH/BAQDAgWgMAkGA1UdEwQCMAAwHQYDVR0lBBYwFAYIKwYBBQUHAwEGCCsGAQUFBwMCMB8GA1UdIwQYMBaAFLq9WXbHesRjq5Bi6uOK2u773HJ9MB0GA1UdDgQWBBS6vVl2x3rEY6uQYurjitru\u002B9xyfTANBgkqhkiG9w0BAQsFAAOCAQEAf9k7wzLhb8d3HSW8uxC71ifBVr3MrLrGiKHXyv81yJLF5IKGP5N8oYN1Q1cqCYgZCiQJ4H00oB1duaKb7HZy/Vf6NvnXjNQ5qPoL5hdfuzywkSmV4Yx06gZJhFM/h9ySmirYvlLcSpQ8fgNR5WjLHi4iVhYg\u002BRFaqSig59ou9oMYmWmzYJiY5d4QipsKhdDr2gI2NeHmpZ/cPLdV7yGGHPo9SloHOBoy1TQxWJ5kY3vasLPmmVYskYEEcMq\u002BKfE9YhpAfReePpc4\u002BMfLF4KV\u002BUjcLIjG4RZvO0jLTN1mVHeNRnky5xmGWzvFiUkvQKgi8epdvZaCpoBy70dLFXeDIA==", - "attributes": { - "enabled": true, - "nbf": 1652724021, - "exp": 1684260621, - "created": 1652724621, - "updated": 1652724621, - "recoveryLevel": "CustomizedRecoverable\u002BPurgeable", - "recoverableDays": 7 - }, - "policy": { - "id": "https://fakekvurl.vault.azure.net/certificates/createCert3943821326/policy", - "key_props": { - "exportable": true, - "kty": "RSA", - "key_size": 2048, - "reuse_key": false - }, - "secret_props": { - "contentType": "application/x-pkcs12" - }, - "x509_props": { - "subject": "CN=DefaultPolicy", - "sans": {}, - "ekus": [ - "1.3.6.1.5.5.7.3.1", - "1.3.6.1.5.5.7.3.2" - ], - "key_usage": [ - "digitalSignature", - "keyEncipherment" - ], - "validity_months": 12, - "basic_constraints": { - "ca": false - } - }, - "lifetime_actions": [ - { - "trigger": { - "lifetime_percentage": 80 - }, - "action": { - "action_type": "AutoRenew" - } - } - ], - "issuer": { - "name": "Self" - }, - "attributes": { - "enabled": true, - "created": 1652724612, - "updated": 1652724612 - } - }, - "pending": { - "id": "https://fakekvurl.vault.azure.net/certificates/createCert3943821326/pending" - } - } - }, - { - "RequestUri": "https://fakekvurl.vault.azure.net/deletedcertificates/createCert3943821326?api-version=7.3", - "RequestMethod": "GET", - "RequestHeaders": { - ":method": "GET", - "Accept": "application/json", - "Accept-Encoding": "gzip", - "Authorization": "Sanitized", - "User-Agent": "azsdk-go-azcertificates/v0.4.2 (go1.18; Windows_NT)" - }, - "RequestBody": null, - "StatusCode": 404, - "ResponseHeaders": { - "Cache-Control": "no-cache", - "Content-Length": "104", - "Content-Type": "application/json; charset=utf-8", - "Date": "Mon, 16 May 2022 18:10:22 GMT", - "Expires": "-1", - "Pragma": "no-cache", - "Strict-Transport-Security": "max-age=31536000;includeSubDomains", - "X-Content-Type-Options": "nosniff", - "x-ms-keyvault-network-info": "conn_type=Ipv4;addr=73.83.78.150;act_addr_fam=InterNetwork;", - "x-ms-keyvault-region": "westus2", - "x-ms-keyvault-service-version": "1.9.395.1", - "x-ms-request-id": "0c4e12ec-e01e-46dd-bffa-b8d22c18fb48" - }, - "ResponseBody": { - "error": { - "code": "CertificateNotFound", - "message": "Deleted Certificate not found: createCert3943821326" - } - } - }, - { - "RequestUri": "https://fakekvurl.vault.azure.net/deletedcertificates/createCert3943821326?api-version=7.3", - "RequestMethod": "GET", - "RequestHeaders": { - ":method": "GET", - "Accept": "application/json", - "Accept-Encoding": "gzip", - "Authorization": "Sanitized", - "User-Agent": "azsdk-go-azcertificates/v0.4.2 (go1.18; Windows_NT)" - }, - "RequestBody": null, - "StatusCode": 404, - "ResponseHeaders": { - "Cache-Control": "no-cache", - "Content-Length": "104", - "Content-Type": "application/json; charset=utf-8", - "Date": "Mon, 16 May 2022 18:10:23 GMT", - "Expires": "-1", - "Pragma": "no-cache", - "Strict-Transport-Security": "max-age=31536000;includeSubDomains", - "X-Content-Type-Options": "nosniff", - "x-ms-keyvault-network-info": "conn_type=Ipv4;addr=73.83.78.150;act_addr_fam=InterNetwork;", - "x-ms-keyvault-region": "westus2", - "x-ms-keyvault-service-version": "1.9.395.1", - "x-ms-request-id": "2fdc8995-6233-4d1c-9425-62015cf0a226" - }, - "ResponseBody": { - "error": { - "code": "CertificateNotFound", - "message": "Deleted Certificate not found: createCert3943821326" - } - } - }, - { - "RequestUri": "https://fakekvurl.vault.azure.net/deletedcertificates/createCert3943821326?api-version=7.3", - "RequestMethod": "GET", - "RequestHeaders": { - ":method": "GET", - "Accept": "application/json", - "Accept-Encoding": "gzip", - "Authorization": "Sanitized", - "User-Agent": "azsdk-go-azcertificates/v0.4.2 (go1.18; Windows_NT)" - }, - "RequestBody": null, - "StatusCode": 404, - "ResponseHeaders": { - "Cache-Control": "no-cache", - "Content-Length": "104", - "Content-Type": "application/json; charset=utf-8", - "Date": "Mon, 16 May 2022 18:10:24 GMT", - "Expires": "-1", - "Pragma": "no-cache", - "Strict-Transport-Security": "max-age=31536000;includeSubDomains", - "X-Content-Type-Options": "nosniff", - "x-ms-keyvault-network-info": "conn_type=Ipv4;addr=73.83.78.150;act_addr_fam=InterNetwork;", - "x-ms-keyvault-region": "westus2", - "x-ms-keyvault-service-version": "1.9.395.1", - "x-ms-request-id": "31a5c425-b995-4788-9119-cc2a2a9a17fc" - }, - "ResponseBody": { - "error": { - "code": "CertificateNotFound", - "message": "Deleted Certificate not found: createCert3943821326" - } - } - }, - { - "RequestUri": "https://fakekvurl.vault.azure.net/deletedcertificates/createCert3943821326?api-version=7.3", - "RequestMethod": "GET", - "RequestHeaders": { - ":method": "GET", - "Accept": "application/json", - "Accept-Encoding": "gzip", - "Authorization": "Sanitized", - "User-Agent": "azsdk-go-azcertificates/v0.4.2 (go1.18; Windows_NT)" - }, - "RequestBody": null, - "StatusCode": 404, - "ResponseHeaders": { - "Cache-Control": "no-cache", - "Content-Length": "104", - "Content-Type": "application/json; charset=utf-8", - "Date": "Mon, 16 May 2022 18:10:26 GMT", - "Expires": "-1", - "Pragma": "no-cache", - "Strict-Transport-Security": "max-age=31536000;includeSubDomains", - "X-Content-Type-Options": "nosniff", - "x-ms-keyvault-network-info": "conn_type=Ipv4;addr=73.83.78.150;act_addr_fam=InterNetwork;", - "x-ms-keyvault-region": "westus2", - "x-ms-keyvault-service-version": "1.9.395.1", - "x-ms-request-id": "e6dc9e1e-6de4-41f0-b412-92bde0d5a9dc" - }, - "ResponseBody": { - "error": { - "code": "CertificateNotFound", - "message": "Deleted Certificate not found: createCert3943821326" - } - } - }, - { - "RequestUri": "https://fakekvurl.vault.azure.net/deletedcertificates/createCert3943821326?api-version=7.3", - "RequestMethod": "GET", - "RequestHeaders": { - ":method": "GET", - "Accept": "application/json", - "Accept-Encoding": "gzip", - "Authorization": "Sanitized", - "User-Agent": "azsdk-go-azcertificates/v0.4.2 (go1.18; Windows_NT)" - }, - "RequestBody": null, - "StatusCode": 404, - "ResponseHeaders": { - "Cache-Control": "no-cache", - "Content-Length": "104", - "Content-Type": "application/json; charset=utf-8", - "Date": "Mon, 16 May 2022 18:10:27 GMT", - "Expires": "-1", - "Pragma": "no-cache", - "Strict-Transport-Security": "max-age=31536000;includeSubDomains", - "X-Content-Type-Options": "nosniff", - "x-ms-keyvault-network-info": "conn_type=Ipv4;addr=73.83.78.150;act_addr_fam=InterNetwork;", - "x-ms-keyvault-region": "westus2", - "x-ms-keyvault-service-version": "1.9.395.1", - "x-ms-request-id": "6a0cd899-9e0a-4409-8729-bfcb9aea34d1" - }, - "ResponseBody": { - "error": { - "code": "CertificateNotFound", - "message": "Deleted Certificate not found: createCert3943821326" - } - } - }, - { - "RequestUri": "https://fakekvurl.vault.azure.net/deletedcertificates/createCert3943821326?api-version=7.3", - "RequestMethod": "GET", - "RequestHeaders": { - ":method": "GET", - "Accept": "application/json", - "Accept-Encoding": "gzip", - "Authorization": "Sanitized", - "User-Agent": "azsdk-go-azcertificates/v0.4.2 (go1.18; Windows_NT)" - }, - "RequestBody": null, - "StatusCode": 404, - "ResponseHeaders": { - "Cache-Control": "no-cache", - "Content-Length": "104", - "Content-Type": "application/json; charset=utf-8", - "Date": "Mon, 16 May 2022 18:10:28 GMT", - "Expires": "-1", - "Pragma": "no-cache", - "Strict-Transport-Security": "max-age=31536000;includeSubDomains", - "X-Content-Type-Options": "nosniff", - "x-ms-keyvault-network-info": "conn_type=Ipv4;addr=73.83.78.150;act_addr_fam=InterNetwork;", - "x-ms-keyvault-region": "westus2", - "x-ms-keyvault-service-version": "1.9.395.1", - "x-ms-request-id": "eb4ef2a4-6f4c-4cad-a0c1-08ad2a3df4cc" - }, - "ResponseBody": { - "error": { - "code": "CertificateNotFound", - "message": "Deleted Certificate not found: createCert3943821326" - } - } - }, - { - "RequestUri": "https://fakekvurl.vault.azure.net/deletedcertificates/createCert3943821326?api-version=7.3", - "RequestMethod": "GET", - "RequestHeaders": { - ":method": "GET", - "Accept": "application/json", - "Accept-Encoding": "gzip", - "Authorization": "Sanitized", - "User-Agent": "azsdk-go-azcertificates/v0.4.2 (go1.18; Windows_NT)" - }, - "RequestBody": null, - "StatusCode": 200, - "ResponseHeaders": { - "Cache-Control": "no-cache", - "Content-Length": "2508", - "Content-Type": "application/json; charset=utf-8", - "Date": "Mon, 16 May 2022 18:10:29 GMT", - "Expires": "-1", - "Pragma": "no-cache", - "Strict-Transport-Security": "max-age=31536000;includeSubDomains", - "X-Content-Type-Options": "nosniff", - "x-ms-keyvault-network-info": "conn_type=Ipv4;addr=73.83.78.150;act_addr_fam=InterNetwork;", - "x-ms-keyvault-region": "westus2", - "x-ms-keyvault-service-version": "1.9.395.1", - "x-ms-request-id": "1cc4af37-5f70-4d87-acf9-7314d3ca1a01" - }, - "ResponseBody": { - "recoveryId": "https://fakekvurl.vault.azure.net/deletedcertificates/createCert3943821326", - "deletedDate": 1652724622, - "scheduledPurgeDate": 1653329422, - "id": "https://fakekvurl.vault.azure.net/certificates/createCert3943821326/54c9443c19274bfb8665bc4c5672a3ec", - "kid": "https://fakekvurl.vault.azure.net/keys/createCert3943821326/54c9443c19274bfb8665bc4c5672a3ec", - "sid": "https://fakekvurl.vault.azure.net/secrets/createCert3943821326/54c9443c19274bfb8665bc4c5672a3ec", - "x5t": "wSDhBY1gRLUCE2ig1l673WGS-QY", - "cer": "MIIDNjCCAh6gAwIBAgIQbfSqnCxFTCuADvgKMoZ3HTANBgkqhkiG9w0BAQsFADAYMRYwFAYDVQQDEw1EZWZhdWx0UG9saWN5MB4XDTIyMDUxNjE4MDAyMVoXDTIzMDUxNjE4MTAyMVowGDEWMBQGA1UEAxMNRGVmYXVsdFBvbGljeTCCASIwDQYJKoZIhvcNAQEBBQADggEPADCCAQoCggEBAKXY4znpT0lP\u002B9SFrHHVGo3U7rl5dXUM1F\u002B0eSl91GZ6Ontzs1vZ0DiVFC5UbVp9RIJk8cyGxWoCnXI6UHUhbmgU27oJlV5d1bPUTNEWVHBLchz68PpcsruC/39THSyMSoAVUCqivAFA9lpfky4ppvkKnd77D3BZzXKp1oqHpDxYhpR6LEjVkMICuEhqIDbpIlq813c7GUeMSKJoeJHEv1yCt3KADWtm8YBxh0Q09Dvdm1cylKuXulxIByWlpa5XSmR9CIcJIFbKeUpRngvP2kwOyggA\u002BNhz4Up46IymNQohnyOrp1D7Ofkr/OseDYPQwd\u002BeuFoxhl7BjfNO4aZkbXkCAwEAAaN8MHowDgYDVR0PAQH/BAQDAgWgMAkGA1UdEwQCMAAwHQYDVR0lBBYwFAYIKwYBBQUHAwEGCCsGAQUFBwMCMB8GA1UdIwQYMBaAFLq9WXbHesRjq5Bi6uOK2u773HJ9MB0GA1UdDgQWBBS6vVl2x3rEY6uQYurjitru\u002B9xyfTANBgkqhkiG9w0BAQsFAAOCAQEAf9k7wzLhb8d3HSW8uxC71ifBVr3MrLrGiKHXyv81yJLF5IKGP5N8oYN1Q1cqCYgZCiQJ4H00oB1duaKb7HZy/Vf6NvnXjNQ5qPoL5hdfuzywkSmV4Yx06gZJhFM/h9ySmirYvlLcSpQ8fgNR5WjLHi4iVhYg\u002BRFaqSig59ou9oMYmWmzYJiY5d4QipsKhdDr2gI2NeHmpZ/cPLdV7yGGHPo9SloHOBoy1TQxWJ5kY3vasLPmmVYskYEEcMq\u002BKfE9YhpAfReePpc4\u002BMfLF4KV\u002BUjcLIjG4RZvO0jLTN1mVHeNRnky5xmGWzvFiUkvQKgi8epdvZaCpoBy70dLFXeDIA==", - "attributes": { - "enabled": true, - "nbf": 1652724021, - "exp": 1684260621, - "created": 1652724621, - "updated": 1652724621, - "recoveryLevel": "CustomizedRecoverable\u002BPurgeable", - "recoverableDays": 7 - }, - "policy": { - "id": "https://fakekvurl.vault.azure.net/certificates/createCert3943821326/policy", - "key_props": { - "exportable": true, - "kty": "RSA", - "key_size": 2048, - "reuse_key": false - }, - "secret_props": { - "contentType": "application/x-pkcs12" - }, - "x509_props": { - "subject": "CN=DefaultPolicy", - "sans": {}, - "ekus": [ - "1.3.6.1.5.5.7.3.1", - "1.3.6.1.5.5.7.3.2" - ], - "key_usage": [ - "digitalSignature", - "keyEncipherment" - ], - "validity_months": 12, - "basic_constraints": { - "ca": false - } - }, - "lifetime_actions": [ - { - "trigger": { - "lifetime_percentage": 80 - }, - "action": { - "action_type": "AutoRenew" - } - } - ], - "issuer": { - "name": "Self" - }, - "attributes": { - "enabled": true, - "created": 1652724612, - "updated": 1652724612 - } - }, - "pending": { - "id": "https://fakekvurl.vault.azure.net/certificates/createCert3943821326/pending" - } - } - }, - { - "RequestUri": "https://fakekvurl.vault.azure.net/certificates/createCert3943821326/?api-version=7.3", - "RequestMethod": "GET", - "RequestHeaders": { - ":method": "GET", - "Accept": "application/json", - "Accept-Encoding": "gzip", - "Authorization": "Sanitized", - "User-Agent": "azsdk-go-azcertificates/v0.4.2 (go1.18; Windows_NT)" - }, - "RequestBody": null, - "StatusCode": 404, - "ResponseHeaders": { - "Cache-Control": "no-cache", - "Content-Length": "332", - "Content-Type": "application/json; charset=utf-8", - "Date": "Mon, 16 May 2022 18:10:29 GMT", - "Expires": "-1", - "Pragma": "no-cache", - "Strict-Transport-Security": "max-age=31536000;includeSubDomains", - "X-Content-Type-Options": "nosniff", - "x-ms-keyvault-network-info": "conn_type=Ipv4;addr=73.83.78.150;act_addr_fam=InterNetwork;", - "x-ms-keyvault-region": "westus2", - "x-ms-keyvault-service-version": "1.9.395.1", - "x-ms-request-id": "6f29b5a9-cf86-41d4-b872-d7a6a0827c2c" - }, - "ResponseBody": { - "error": { - "code": "CertificateNotFound", - "message": "A certificate with (name/id) createCert3943821326 was not found in this key vault. If you recently deleted this certificate you may be able to recover it using the correct recovery command. For help resolving this issue, please see https://go.microsoft.com/fwlink/?linkid=2125182" - } - } - }, - { - "RequestUri": "https://fakekvurl.vault.azure.net/deletedcertificates/createCert3943821326?api-version=7.3", - "RequestMethod": "GET", - "RequestHeaders": { - ":method": "GET", - "Accept": "application/json", - "Accept-Encoding": "gzip", - "Authorization": "Sanitized", - "User-Agent": "azsdk-go-azcertificates/v0.4.2 (go1.18; Windows_NT)" - }, - "RequestBody": null, - "StatusCode": 200, - "ResponseHeaders": { - "Cache-Control": "no-cache", - "Content-Length": "2508", - "Content-Type": "application/json; charset=utf-8", - "Date": "Mon, 16 May 2022 18:10:29 GMT", - "Expires": "-1", - "Pragma": "no-cache", - "Strict-Transport-Security": "max-age=31536000;includeSubDomains", - "X-Content-Type-Options": "nosniff", - "x-ms-keyvault-network-info": "conn_type=Ipv4;addr=73.83.78.150;act_addr_fam=InterNetwork;", - "x-ms-keyvault-region": "westus2", - "x-ms-keyvault-service-version": "1.9.395.1", - "x-ms-request-id": "24dff5a2-082e-4283-989c-04db04534faa" - }, - "ResponseBody": { - "recoveryId": "https://fakekvurl.vault.azure.net/deletedcertificates/createCert3943821326", - "deletedDate": 1652724622, - "scheduledPurgeDate": 1653329422, - "id": "https://fakekvurl.vault.azure.net/certificates/createCert3943821326/54c9443c19274bfb8665bc4c5672a3ec", - "kid": "https://fakekvurl.vault.azure.net/keys/createCert3943821326/54c9443c19274bfb8665bc4c5672a3ec", - "sid": "https://fakekvurl.vault.azure.net/secrets/createCert3943821326/54c9443c19274bfb8665bc4c5672a3ec", - "x5t": "wSDhBY1gRLUCE2ig1l673WGS-QY", - "cer": "MIIDNjCCAh6gAwIBAgIQbfSqnCxFTCuADvgKMoZ3HTANBgkqhkiG9w0BAQsFADAYMRYwFAYDVQQDEw1EZWZhdWx0UG9saWN5MB4XDTIyMDUxNjE4MDAyMVoXDTIzMDUxNjE4MTAyMVowGDEWMBQGA1UEAxMNRGVmYXVsdFBvbGljeTCCASIwDQYJKoZIhvcNAQEBBQADggEPADCCAQoCggEBAKXY4znpT0lP\u002B9SFrHHVGo3U7rl5dXUM1F\u002B0eSl91GZ6Ontzs1vZ0DiVFC5UbVp9RIJk8cyGxWoCnXI6UHUhbmgU27oJlV5d1bPUTNEWVHBLchz68PpcsruC/39THSyMSoAVUCqivAFA9lpfky4ppvkKnd77D3BZzXKp1oqHpDxYhpR6LEjVkMICuEhqIDbpIlq813c7GUeMSKJoeJHEv1yCt3KADWtm8YBxh0Q09Dvdm1cylKuXulxIByWlpa5XSmR9CIcJIFbKeUpRngvP2kwOyggA\u002BNhz4Up46IymNQohnyOrp1D7Ofkr/OseDYPQwd\u002BeuFoxhl7BjfNO4aZkbXkCAwEAAaN8MHowDgYDVR0PAQH/BAQDAgWgMAkGA1UdEwQCMAAwHQYDVR0lBBYwFAYIKwYBBQUHAwEGCCsGAQUFBwMCMB8GA1UdIwQYMBaAFLq9WXbHesRjq5Bi6uOK2u773HJ9MB0GA1UdDgQWBBS6vVl2x3rEY6uQYurjitru\u002B9xyfTANBgkqhkiG9w0BAQsFAAOCAQEAf9k7wzLhb8d3HSW8uxC71ifBVr3MrLrGiKHXyv81yJLF5IKGP5N8oYN1Q1cqCYgZCiQJ4H00oB1duaKb7HZy/Vf6NvnXjNQ5qPoL5hdfuzywkSmV4Yx06gZJhFM/h9ySmirYvlLcSpQ8fgNR5WjLHi4iVhYg\u002BRFaqSig59ou9oMYmWmzYJiY5d4QipsKhdDr2gI2NeHmpZ/cPLdV7yGGHPo9SloHOBoy1TQxWJ5kY3vasLPmmVYskYEEcMq\u002BKfE9YhpAfReePpc4\u002BMfLF4KV\u002BUjcLIjG4RZvO0jLTN1mVHeNRnky5xmGWzvFiUkvQKgi8epdvZaCpoBy70dLFXeDIA==", - "attributes": { - "enabled": true, - "nbf": 1652724021, - "exp": 1684260621, - "created": 1652724621, - "updated": 1652724621, - "recoveryLevel": "CustomizedRecoverable\u002BPurgeable", - "recoverableDays": 7 - }, - "policy": { - "id": "https://fakekvurl.vault.azure.net/certificates/createCert3943821326/policy", - "key_props": { - "exportable": true, - "kty": "RSA", - "key_size": 2048, - "reuse_key": false - }, - "secret_props": { - "contentType": "application/x-pkcs12" - }, - "x509_props": { - "subject": "CN=DefaultPolicy", - "sans": {}, - "ekus": [ - "1.3.6.1.5.5.7.3.1", - "1.3.6.1.5.5.7.3.2" - ], - "key_usage": [ - "digitalSignature", - "keyEncipherment" - ], - "validity_months": 12, - "basic_constraints": { - "ca": false - } - }, - "lifetime_actions": [ - { - "trigger": { - "lifetime_percentage": 80 - }, - "action": { - "action_type": "AutoRenew" - } - } - ], - "issuer": { - "name": "Self" - }, - "attributes": { - "enabled": true, - "created": 1652724612, - "updated": 1652724612 - } - }, - "pending": { - "id": "https://fakekvurl.vault.azure.net/certificates/createCert3943821326/pending" - } - } - }, - { - "RequestUri": "https://fakekvurl.vault.azure.net/deletedcertificates/createCert3943821326?api-version=7.3", - "RequestMethod": "DELETE", - "RequestHeaders": { - "Accept": "application/json", - "Accept-Encoding": "gzip", - "Authorization": "Sanitized", - "User-Agent": "azsdk-go-azcertificates/v0.4.2 (go1.18; Windows_NT)" - }, - "RequestBody": null, - "StatusCode": 204, - "ResponseHeaders": { - "Cache-Control": "no-cache", - "Date": "Mon, 16 May 2022 18:10:29 GMT", - "Expires": "-1", - "Pragma": "no-cache", - "Strict-Transport-Security": "max-age=31536000;includeSubDomains", - "X-Content-Type-Options": "nosniff", - "x-ms-keyvault-network-info": "conn_type=Ipv4;addr=73.83.78.150;act_addr_fam=InterNetwork;", - "x-ms-keyvault-region": "westus2", - "x-ms-keyvault-service-version": "1.9.395.1", - "x-ms-request-id": "78751db1-8c10-4493-b780-8671d315501c" - }, - "ResponseBody": null - } - ], - "Variables": {} -} diff --git a/sdk/keyvault/azcertificates/testdata/recordings/TestClient_BeginDeleteCertificateRehydrated.json b/sdk/keyvault/azcertificates/testdata/recordings/TestClient_BeginDeleteCertificateRehydrated.json deleted file mode 100644 index 834e7453294f..000000000000 --- a/sdk/keyvault/azcertificates/testdata/recordings/TestClient_BeginDeleteCertificateRehydrated.json +++ /dev/null @@ -1,932 +0,0 @@ -{ - "Entries": [ - { - "RequestUri": "https://fakekvurl.vault.azure.net/certificates/createCertRehydrate3515234438/create?api-version=7.3", - "RequestMethod": "POST", - "RequestHeaders": { - ":method": "POST", - "Accept": "application/json", - "Accept-Encoding": "gzip", - "Content-Length": "0", - "User-Agent": "azsdk-go-azcertificates/v0.4.2 (go1.18; Windows_NT)" - }, - "RequestBody": null, - "StatusCode": 401, - "ResponseHeaders": { - "Cache-Control": "no-cache", - "Content-Length": "97", - "Content-Type": "application/json; charset=utf-8", - "Date": "Mon, 16 May 2022 18:10:29 GMT", - "Expires": "-1", - "Pragma": "no-cache", - "Strict-Transport-Security": "max-age=31536000;includeSubDomains", - "WWW-Authenticate": "Bearer authorization=\u0022https://login.windows.net/00000000-0000-0000-0000-000000000000\u0022, resource=\u0022https://vault.azure.net\u0022", - "X-Content-Type-Options": "nosniff", - "x-ms-keyvault-network-info": "conn_type=Ipv4;addr=73.83.78.150;act_addr_fam=InterNetwork;", - "x-ms-keyvault-region": "westus2", - "x-ms-keyvault-service-version": "1.9.395.1", - "x-ms-request-id": "bb8f8570-0bbe-41eb-a7bd-89f9432aed18" - }, - "ResponseBody": { - "error": { - "code": "Unauthorized", - "message": "AKV10000: Request is missing a Bearer or PoP token." - } - } - }, - { - "RequestUri": "https://fakekvurl.vault.azure.net/certificates/createCertRehydrate3515234438/create?api-version=7.3", - "RequestMethod": "POST", - "RequestHeaders": { - ":method": "POST", - "Accept": "application/json", - "Accept-Encoding": "gzip", - "Authorization": "Sanitized", - "Content-Length": "125", - "Content-Type": "application/json", - "User-Agent": "azsdk-go-azcertificates/v0.4.2 (go1.18; Windows_NT)" - }, - "RequestBody": { - "attributes": {}, - "policy": { - "issuer": { - "name": "Self" - }, - "secret_props": {}, - "x509_props": { - "sans": {}, - "subject": "CN=DefaultPolicy" - } - } - }, - "StatusCode": 202, - "ResponseHeaders": { - "Cache-Control": "no-cache", - "Content-Length": "1304", - "Content-Type": "application/json; charset=utf-8", - "Date": "Mon, 16 May 2022 18:10:30 GMT", - "Expires": "-1", - "Location": "https://fakekvurl.vault.azure.net/certificates/createCertRehydrate3515234438/pending?api-version=7.3\u0026request_id=65c1a22b4faf4d80b1e0fa77d35a6847", - "Pragma": "no-cache", - "Retry-After": "10", - "Strict-Transport-Security": "max-age=31536000;includeSubDomains", - "X-Content-Type-Options": "nosniff", - "x-ms-keyvault-network-info": "conn_type=Ipv4;addr=73.83.78.150;act_addr_fam=InterNetwork;", - "x-ms-keyvault-region": "westus2", - "x-ms-keyvault-service-version": "1.9.395.1", - "x-ms-request-id": "6cb6a213-97b4-4e98-b058-cd3284cdb7c5" - }, - "ResponseBody": { - "id": "https://fakekvurl.vault.azure.net/certificates/createCertRehydrate3515234438/pending", - "issuer": { - "name": "Self" - }, - "csr": "MIICqDCCAZACAQAwGDEWMBQGA1UEAxMNRGVmYXVsdFBvbGljeTCCASIwDQYJKoZIhvcNAQEBBQADggEPADCCAQoCggEBAL\u002BilcxioNzaIFiGkG6UDdeCDImilqJiq8CVd79jX7eCEZ7flypH\u002BK1RqclZAzRFptMOz7NE5DpNgQfIXcDKaS6AuWSanSkQzVYWPwT0XJTkCSaZoML99ewPiO4KreyFWatRwWAZ0PNeT6JMaV6blKU7w9gOfHA5yZNHzfObhhbJiRqUSseVVmesU\u002BkzkaX0ZeAaHc77SK9psrscsLBJEHKu66iG/PC0SkGHqEMx289FK/NFV5PR/sdGxxUjNXHkWyrWoX/2y8TXvtllOMn2Dz3yofYTZUvdZytrR4Ovy8IHGGNhfWbzJLpBrWu9q\u002BPs3kqXCfcrlDcZObnYHQZDYXkCAwEAAaBLMEkGCSqGSIb3DQEJDjE8MDowDgYDVR0PAQH/BAQDAgWgMB0GA1UdJQQWMBQGCCsGAQUFBwMBBggrBgEFBQcDAjAJBgNVHRMEAjAAMA0GCSqGSIb3DQEBCwUAA4IBAQC8jBE6eWhsIJA4Dr\u002BSnKd3n/qlaCvTbAnh5ioBT6OnMVx8J/MQGkukrkdsZ1VIreKsFlnttUX6bWVdVIf8a4yO2pX9hMS4yRImvdbta3ggyWkQ4nt1wJ2piheQGnpLtLWLtKMr2MMiZ9cEOrMHmeyVnC\u002BO8R38tjZHmUSXnJRLVVmTw3M1/9aynouPDPgn38hW/65rQXdOh0GcQuA\u002Bk0Qd7Zz78YSZ7IpRS8RXeYkbL8KeP6nVImU10hIDwMBpkHNXXd7kOz5TcsWkOOi9VPUItLPIFfHXwTjr3eQbF7StCzDY4PD5me8yFj\u002B3fKBK2UzYMnczViIMBtPVdXKm4PHS", - "cancellation_requested": false, - "status": "inProgress", - "status_details": "Pending certificate created. Certificate request is in progress. This may take some time based on the issuer provider. Please check again later.", - "request_id": "65c1a22b4faf4d80b1e0fa77d35a6847" - } - }, - { - "RequestUri": "https://fakekvurl.vault.azure.net/certificates/createCertRehydrate3515234438/pending?api-version=7.3\u0026request_id=65c1a22b4faf4d80b1e0fa77d35a6847", - "RequestMethod": "GET", - "RequestHeaders": { - ":method": "GET", - "Accept-Encoding": "gzip", - "Authorization": "Sanitized", - "User-Agent": "azsdk-go-azcertificates/v0.4.2 (go1.18; Windows_NT)" - }, - "RequestBody": null, - "StatusCode": 200, - "ResponseHeaders": { - "Cache-Control": "no-cache", - "Content-Length": "1304", - "Content-Type": "application/json; charset=utf-8", - "Date": "Mon, 16 May 2022 18:10:40 GMT", - "Expires": "-1", - "Pragma": "no-cache", - "Retry-After": "10", - "Strict-Transport-Security": "max-age=31536000;includeSubDomains", - "X-Content-Type-Options": "nosniff", - "x-ms-keyvault-network-info": "conn_type=Ipv4;addr=73.83.78.150;act_addr_fam=InterNetwork;", - "x-ms-keyvault-region": "westus2", - "x-ms-keyvault-service-version": "1.9.395.1", - "x-ms-request-id": "a1148069-132d-43c6-84cd-0d8a6371f3af" - }, - "ResponseBody": { - "id": "https://fakekvurl.vault.azure.net/certificates/createCertRehydrate3515234438/pending", - "issuer": { - "name": "Self" - }, - "csr": "MIICqDCCAZACAQAwGDEWMBQGA1UEAxMNRGVmYXVsdFBvbGljeTCCASIwDQYJKoZIhvcNAQEBBQADggEPADCCAQoCggEBAL\u002BilcxioNzaIFiGkG6UDdeCDImilqJiq8CVd79jX7eCEZ7flypH\u002BK1RqclZAzRFptMOz7NE5DpNgQfIXcDKaS6AuWSanSkQzVYWPwT0XJTkCSaZoML99ewPiO4KreyFWatRwWAZ0PNeT6JMaV6blKU7w9gOfHA5yZNHzfObhhbJiRqUSseVVmesU\u002BkzkaX0ZeAaHc77SK9psrscsLBJEHKu66iG/PC0SkGHqEMx289FK/NFV5PR/sdGxxUjNXHkWyrWoX/2y8TXvtllOMn2Dz3yofYTZUvdZytrR4Ovy8IHGGNhfWbzJLpBrWu9q\u002BPs3kqXCfcrlDcZObnYHQZDYXkCAwEAAaBLMEkGCSqGSIb3DQEJDjE8MDowDgYDVR0PAQH/BAQDAgWgMB0GA1UdJQQWMBQGCCsGAQUFBwMBBggrBgEFBQcDAjAJBgNVHRMEAjAAMA0GCSqGSIb3DQEBCwUAA4IBAQC8jBE6eWhsIJA4Dr\u002BSnKd3n/qlaCvTbAnh5ioBT6OnMVx8J/MQGkukrkdsZ1VIreKsFlnttUX6bWVdVIf8a4yO2pX9hMS4yRImvdbta3ggyWkQ4nt1wJ2piheQGnpLtLWLtKMr2MMiZ9cEOrMHmeyVnC\u002BO8R38tjZHmUSXnJRLVVmTw3M1/9aynouPDPgn38hW/65rQXdOh0GcQuA\u002Bk0Qd7Zz78YSZ7IpRS8RXeYkbL8KeP6nVImU10hIDwMBpkHNXXd7kOz5TcsWkOOi9VPUItLPIFfHXwTjr3eQbF7StCzDY4PD5me8yFj\u002B3fKBK2UzYMnczViIMBtPVdXKm4PHS", - "cancellation_requested": false, - "status": "inProgress", - "status_details": "Pending certificate created. Certificate request is in progress. This may take some time based on the issuer provider. Please check again later.", - "request_id": "65c1a22b4faf4d80b1e0fa77d35a6847" - } - }, - { - "RequestUri": "https://fakekvurl.vault.azure.net/certificates/createCertRehydrate3515234438/pending?api-version=7.3\u0026request_id=65c1a22b4faf4d80b1e0fa77d35a6847", - "RequestMethod": "GET", - "RequestHeaders": { - ":method": "GET", - "Accept-Encoding": "gzip", - "Authorization": "Sanitized", - "User-Agent": "azsdk-go-azcertificates/v0.4.2 (go1.18; Windows_NT)" - }, - "RequestBody": null, - "StatusCode": 200, - "ResponseHeaders": { - "Cache-Control": "no-cache", - "Content-Length": "1227", - "Content-Type": "application/json; charset=utf-8", - "Date": "Mon, 16 May 2022 18:10:50 GMT", - "Expires": "-1", - "Pragma": "no-cache", - "Strict-Transport-Security": "max-age=31536000;includeSubDomains", - "X-Content-Type-Options": "nosniff", - "x-ms-keyvault-network-info": "conn_type=Ipv4;addr=73.83.78.150;act_addr_fam=InterNetwork;", - "x-ms-keyvault-region": "westus2", - "x-ms-keyvault-service-version": "1.9.395.1", - "x-ms-request-id": "86113586-ec62-4727-9878-adad807b7e5c" - }, - "ResponseBody": { - "id": "https://fakekvurl.vault.azure.net/certificates/createCertRehydrate3515234438/pending", - "issuer": { - "name": "Self" - }, - "csr": "MIICqDCCAZACAQAwGDEWMBQGA1UEAxMNRGVmYXVsdFBvbGljeTCCASIwDQYJKoZIhvcNAQEBBQADggEPADCCAQoCggEBAL\u002BilcxioNzaIFiGkG6UDdeCDImilqJiq8CVd79jX7eCEZ7flypH\u002BK1RqclZAzRFptMOz7NE5DpNgQfIXcDKaS6AuWSanSkQzVYWPwT0XJTkCSaZoML99ewPiO4KreyFWatRwWAZ0PNeT6JMaV6blKU7w9gOfHA5yZNHzfObhhbJiRqUSseVVmesU\u002BkzkaX0ZeAaHc77SK9psrscsLBJEHKu66iG/PC0SkGHqEMx289FK/NFV5PR/sdGxxUjNXHkWyrWoX/2y8TXvtllOMn2Dz3yofYTZUvdZytrR4Ovy8IHGGNhfWbzJLpBrWu9q\u002BPs3kqXCfcrlDcZObnYHQZDYXkCAwEAAaBLMEkGCSqGSIb3DQEJDjE8MDowDgYDVR0PAQH/BAQDAgWgMB0GA1UdJQQWMBQGCCsGAQUFBwMBBggrBgEFBQcDAjAJBgNVHRMEAjAAMA0GCSqGSIb3DQEBCwUAA4IBAQC8jBE6eWhsIJA4Dr\u002BSnKd3n/qlaCvTbAnh5ioBT6OnMVx8J/MQGkukrkdsZ1VIreKsFlnttUX6bWVdVIf8a4yO2pX9hMS4yRImvdbta3ggyWkQ4nt1wJ2piheQGnpLtLWLtKMr2MMiZ9cEOrMHmeyVnC\u002BO8R38tjZHmUSXnJRLVVmTw3M1/9aynouPDPgn38hW/65rQXdOh0GcQuA\u002Bk0Qd7Zz78YSZ7IpRS8RXeYkbL8KeP6nVImU10hIDwMBpkHNXXd7kOz5TcsWkOOi9VPUItLPIFfHXwTjr3eQbF7StCzDY4PD5me8yFj\u002B3fKBK2UzYMnczViIMBtPVdXKm4PHS", - "cancellation_requested": false, - "status": "completed", - "target": "https://fakekvurl.vault.azure.net/certificates/createCertRehydrate3515234438", - "request_id": "65c1a22b4faf4d80b1e0fa77d35a6847" - } - }, - { - "RequestUri": "https://fakekvurl.vault.azure.net/certificates/createCertRehydrate3515234438/?api-version=7.3", - "RequestMethod": "GET", - "RequestHeaders": { - ":method": "GET", - "Accept": "application/json", - "Accept-Encoding": "gzip", - "Authorization": "Sanitized", - "User-Agent": "azsdk-go-azcertificates/v0.4.2 (go1.18; Windows_NT)" - }, - "RequestBody": null, - "StatusCode": 200, - "ResponseHeaders": { - "Cache-Control": "no-cache", - "Content-Length": "2406", - "Content-Type": "application/json; charset=utf-8", - "Date": "Mon, 16 May 2022 18:10:50 GMT", - "Expires": "-1", - "Pragma": "no-cache", - "Strict-Transport-Security": "max-age=31536000;includeSubDomains", - "X-Content-Type-Options": "nosniff", - "x-ms-keyvault-network-info": "conn_type=Ipv4;addr=73.83.78.150;act_addr_fam=InterNetwork;", - "x-ms-keyvault-region": "westus2", - "x-ms-keyvault-service-version": "1.9.395.1", - "x-ms-request-id": "2e20ad0d-2584-48eb-a97a-e62eff095b6d" - }, - "ResponseBody": { - "id": "https://fakekvurl.vault.azure.net/certificates/createCertRehydrate3515234438/51ebd88784454086ad73ade59a3ea142", - "kid": "https://fakekvurl.vault.azure.net/keys/createCertRehydrate3515234438/51ebd88784454086ad73ade59a3ea142", - "sid": "https://fakekvurl.vault.azure.net/secrets/createCertRehydrate3515234438/51ebd88784454086ad73ade59a3ea142", - "x5t": "yX5rjghvTWez6ZPEAbGdDIKLZ4g", - "cer": "MIIDNjCCAh6gAwIBAgIQZixRIxA\u002BRBWEerxWFuezYzANBgkqhkiG9w0BAQsFADAYMRYwFAYDVQQDEw1EZWZhdWx0UG9saWN5MB4XDTIyMDUxNjE4MDA0MFoXDTIzMDUxNjE4MTA0MFowGDEWMBQGA1UEAxMNRGVmYXVsdFBvbGljeTCCASIwDQYJKoZIhvcNAQEBBQADggEPADCCAQoCggEBAL\u002BilcxioNzaIFiGkG6UDdeCDImilqJiq8CVd79jX7eCEZ7flypH\u002BK1RqclZAzRFptMOz7NE5DpNgQfIXcDKaS6AuWSanSkQzVYWPwT0XJTkCSaZoML99ewPiO4KreyFWatRwWAZ0PNeT6JMaV6blKU7w9gOfHA5yZNHzfObhhbJiRqUSseVVmesU\u002BkzkaX0ZeAaHc77SK9psrscsLBJEHKu66iG/PC0SkGHqEMx289FK/NFV5PR/sdGxxUjNXHkWyrWoX/2y8TXvtllOMn2Dz3yofYTZUvdZytrR4Ovy8IHGGNhfWbzJLpBrWu9q\u002BPs3kqXCfcrlDcZObnYHQZDYXkCAwEAAaN8MHowDgYDVR0PAQH/BAQDAgWgMAkGA1UdEwQCMAAwHQYDVR0lBBYwFAYIKwYBBQUHAwEGCCsGAQUFBwMCMB8GA1UdIwQYMBaAFON9wZWQj/XIklBAync6Xc53lxzaMB0GA1UdDgQWBBTjfcGVkI/1yJJQQMp3Ol3Od5cc2jANBgkqhkiG9w0BAQsFAAOCAQEAfgYHqExnhRhlIqck2BvVAHe49TZ489UQru1xUvpAmxZrspgxRUcjCR7eoTVU4g43\u002BZUBo8Ivu/uVKLAeXhd32NByaEgiyYJcXizthAMV9UZQN6qQdcw2tkoggb1pkqF0XMsQwg9xUYjEK4q6J9ZI/DpHkCtN7AGsFL5IoauCDtMLJAbOZLaI9JVzWknqo869bwYVdkhMiF12idbl8xYdz71tbknfMO8WSPefPH8OSS71ERtD/4yJvn9n5ueKp8eIrQcglD5L4gCaslz2kwPNu/YHw/fYsPsTFl0HtsaXY9qtO8InOVQywbANJ9QDWqP1oJbhzc8dZU2f12tmuj1zwQ==", - "attributes": { - "enabled": true, - "nbf": 1652724040, - "exp": 1684260640, - "created": 1652724640, - "updated": 1652724640, - "recoveryLevel": "CustomizedRecoverable\u002BPurgeable", - "recoverableDays": 7 - }, - "policy": { - "id": "https://fakekvurl.vault.azure.net/certificates/createCertRehydrate3515234438/policy", - "key_props": { - "exportable": true, - "kty": "RSA", - "key_size": 2048, - "reuse_key": false - }, - "secret_props": { - "contentType": "application/x-pkcs12" - }, - "x509_props": { - "subject": "CN=DefaultPolicy", - "sans": {}, - "ekus": [ - "1.3.6.1.5.5.7.3.1", - "1.3.6.1.5.5.7.3.2" - ], - "key_usage": [ - "digitalSignature", - "keyEncipherment" - ], - "validity_months": 12, - "basic_constraints": { - "ca": false - } - }, - "lifetime_actions": [ - { - "trigger": { - "lifetime_percentage": 80 - }, - "action": { - "action_type": "AutoRenew" - } - } - ], - "issuer": { - "name": "Self" - }, - "attributes": { - "enabled": true, - "created": 1652724630, - "updated": 1652724630 - } - }, - "pending": { - "id": "https://fakekvurl.vault.azure.net/certificates/createCertRehydrate3515234438/pending" - } - } - }, - { - "RequestUri": "https://fakekvurl.vault.azure.net/certificates/createCertRehydrate3515234438?api-version=7.3", - "RequestMethod": "DELETE", - "RequestHeaders": { - "Accept": "application/json", - "Accept-Encoding": "gzip", - "Authorization": "Sanitized", - "User-Agent": "azsdk-go-azcertificates/v0.4.2 (go1.18; Windows_NT)" - }, - "RequestBody": null, - "StatusCode": 200, - "ResponseHeaders": { - "Cache-Control": "no-cache", - "Content-Length": "2562", - "Content-Type": "application/json; charset=utf-8", - "Date": "Mon, 16 May 2022 18:10:50 GMT", - "Expires": "-1", - "Pragma": "no-cache", - "Strict-Transport-Security": "max-age=31536000;includeSubDomains", - "X-Content-Type-Options": "nosniff", - "x-ms-keyvault-network-info": "conn_type=Ipv4;addr=73.83.78.150;act_addr_fam=InterNetwork;", - "x-ms-keyvault-region": "westus2", - "x-ms-keyvault-service-version": "1.9.395.1", - "x-ms-request-id": "0c94fa33-ad40-4ee4-82bd-40a0b22d9c28" - }, - "ResponseBody": { - "recoveryId": "https://fakekvurl.vault.azure.net/deletedcertificates/createCertRehydrate3515234438", - "deletedDate": 1652724650, - "scheduledPurgeDate": 1653329450, - "id": "https://fakekvurl.vault.azure.net/certificates/createCertRehydrate3515234438/51ebd88784454086ad73ade59a3ea142", - "kid": "https://fakekvurl.vault.azure.net/keys/createCertRehydrate3515234438/51ebd88784454086ad73ade59a3ea142", - "sid": "https://fakekvurl.vault.azure.net/secrets/createCertRehydrate3515234438/51ebd88784454086ad73ade59a3ea142", - "x5t": "yX5rjghvTWez6ZPEAbGdDIKLZ4g", - "cer": "MIIDNjCCAh6gAwIBAgIQZixRIxA\u002BRBWEerxWFuezYzANBgkqhkiG9w0BAQsFADAYMRYwFAYDVQQDEw1EZWZhdWx0UG9saWN5MB4XDTIyMDUxNjE4MDA0MFoXDTIzMDUxNjE4MTA0MFowGDEWMBQGA1UEAxMNRGVmYXVsdFBvbGljeTCCASIwDQYJKoZIhvcNAQEBBQADggEPADCCAQoCggEBAL\u002BilcxioNzaIFiGkG6UDdeCDImilqJiq8CVd79jX7eCEZ7flypH\u002BK1RqclZAzRFptMOz7NE5DpNgQfIXcDKaS6AuWSanSkQzVYWPwT0XJTkCSaZoML99ewPiO4KreyFWatRwWAZ0PNeT6JMaV6blKU7w9gOfHA5yZNHzfObhhbJiRqUSseVVmesU\u002BkzkaX0ZeAaHc77SK9psrscsLBJEHKu66iG/PC0SkGHqEMx289FK/NFV5PR/sdGxxUjNXHkWyrWoX/2y8TXvtllOMn2Dz3yofYTZUvdZytrR4Ovy8IHGGNhfWbzJLpBrWu9q\u002BPs3kqXCfcrlDcZObnYHQZDYXkCAwEAAaN8MHowDgYDVR0PAQH/BAQDAgWgMAkGA1UdEwQCMAAwHQYDVR0lBBYwFAYIKwYBBQUHAwEGCCsGAQUFBwMCMB8GA1UdIwQYMBaAFON9wZWQj/XIklBAync6Xc53lxzaMB0GA1UdDgQWBBTjfcGVkI/1yJJQQMp3Ol3Od5cc2jANBgkqhkiG9w0BAQsFAAOCAQEAfgYHqExnhRhlIqck2BvVAHe49TZ489UQru1xUvpAmxZrspgxRUcjCR7eoTVU4g43\u002BZUBo8Ivu/uVKLAeXhd32NByaEgiyYJcXizthAMV9UZQN6qQdcw2tkoggb1pkqF0XMsQwg9xUYjEK4q6J9ZI/DpHkCtN7AGsFL5IoauCDtMLJAbOZLaI9JVzWknqo869bwYVdkhMiF12idbl8xYdz71tbknfMO8WSPefPH8OSS71ERtD/4yJvn9n5ueKp8eIrQcglD5L4gCaslz2kwPNu/YHw/fYsPsTFl0HtsaXY9qtO8InOVQywbANJ9QDWqP1oJbhzc8dZU2f12tmuj1zwQ==", - "attributes": { - "enabled": true, - "nbf": 1652724040, - "exp": 1684260640, - "created": 1652724640, - "updated": 1652724640, - "recoveryLevel": "CustomizedRecoverable\u002BPurgeable", - "recoverableDays": 7 - }, - "policy": { - "id": "https://fakekvurl.vault.azure.net/certificates/createCertRehydrate3515234438/policy", - "key_props": { - "exportable": true, - "kty": "RSA", - "key_size": 2048, - "reuse_key": false - }, - "secret_props": { - "contentType": "application/x-pkcs12" - }, - "x509_props": { - "subject": "CN=DefaultPolicy", - "sans": {}, - "ekus": [ - "1.3.6.1.5.5.7.3.1", - "1.3.6.1.5.5.7.3.2" - ], - "key_usage": [ - "digitalSignature", - "keyEncipherment" - ], - "validity_months": 12, - "basic_constraints": { - "ca": false - } - }, - "lifetime_actions": [ - { - "trigger": { - "lifetime_percentage": 80 - }, - "action": { - "action_type": "AutoRenew" - } - } - ], - "issuer": { - "name": "Self" - }, - "attributes": { - "enabled": true, - "created": 1652724630, - "updated": 1652724630 - } - }, - "pending": { - "id": "https://fakekvurl.vault.azure.net/certificates/createCertRehydrate3515234438/pending" - } - } - }, - { - "RequestUri": "https://fakekvurl.vault.azure.net/deletedcertificates/createCertRehydrate3515234438?api-version=7.3", - "RequestMethod": "GET", - "RequestHeaders": { - ":method": "GET", - "Accept": "application/json", - "Accept-Encoding": "gzip", - "Authorization": "Sanitized", - "User-Agent": "azsdk-go-azcertificates/v0.4.2 (go1.18; Windows_NT)" - }, - "RequestBody": null, - "StatusCode": 404, - "ResponseHeaders": { - "Cache-Control": "no-cache", - "Content-Length": "113", - "Content-Type": "application/json; charset=utf-8", - "Date": "Mon, 16 May 2022 18:10:50 GMT", - "Expires": "-1", - "Pragma": "no-cache", - "Strict-Transport-Security": "max-age=31536000;includeSubDomains", - "X-Content-Type-Options": "nosniff", - "x-ms-keyvault-network-info": "conn_type=Ipv4;addr=73.83.78.150;act_addr_fam=InterNetwork;", - "x-ms-keyvault-region": "westus2", - "x-ms-keyvault-service-version": "1.9.395.1", - "x-ms-request-id": "aab45f15-e70c-434f-bfaf-acefe276c399" - }, - "ResponseBody": { - "error": { - "code": "CertificateNotFound", - "message": "Deleted Certificate not found: createCertRehydrate3515234438" - } - } - }, - { - "RequestUri": "https://fakekvurl.vault.azure.net/deletedcertificates/createCertRehydrate3515234438?api-version=7.3", - "RequestMethod": "GET", - "RequestHeaders": { - ":method": "GET", - "Accept": "application/json", - "Accept-Encoding": "gzip", - "Authorization": "Sanitized", - "User-Agent": "azsdk-go-azcertificates/v0.4.2 (go1.18; Windows_NT)" - }, - "RequestBody": null, - "StatusCode": 404, - "ResponseHeaders": { - "Cache-Control": "no-cache", - "Content-Length": "113", - "Content-Type": "application/json; charset=utf-8", - "Date": "Mon, 16 May 2022 18:10:51 GMT", - "Expires": "-1", - "Pragma": "no-cache", - "Strict-Transport-Security": "max-age=31536000;includeSubDomains", - "X-Content-Type-Options": "nosniff", - "x-ms-keyvault-network-info": "conn_type=Ipv4;addr=73.83.78.150;act_addr_fam=InterNetwork;", - "x-ms-keyvault-region": "westus2", - "x-ms-keyvault-service-version": "1.9.395.1", - "x-ms-request-id": "16d63a89-92ad-4feb-a9fa-5b7586433b3e" - }, - "ResponseBody": { - "error": { - "code": "CertificateNotFound", - "message": "Deleted Certificate not found: createCertRehydrate3515234438" - } - } - }, - { - "RequestUri": "https://fakekvurl.vault.azure.net/deletedcertificates/createCertRehydrate3515234438?api-version=7.3", - "RequestMethod": "GET", - "RequestHeaders": { - ":method": "GET", - "Accept": "application/json", - "Accept-Encoding": "gzip", - "Authorization": "Sanitized", - "User-Agent": "azsdk-go-azcertificates/v0.4.2 (go1.18; Windows_NT)" - }, - "RequestBody": null, - "StatusCode": 404, - "ResponseHeaders": { - "Cache-Control": "no-cache", - "Content-Length": "113", - "Content-Type": "application/json; charset=utf-8", - "Date": "Mon, 16 May 2022 18:10:52 GMT", - "Expires": "-1", - "Pragma": "no-cache", - "Strict-Transport-Security": "max-age=31536000;includeSubDomains", - "X-Content-Type-Options": "nosniff", - "x-ms-keyvault-network-info": "conn_type=Ipv4;addr=73.83.78.150;act_addr_fam=InterNetwork;", - "x-ms-keyvault-region": "westus2", - "x-ms-keyvault-service-version": "1.9.395.1", - "x-ms-request-id": "d318fe68-4d4b-4755-88d9-42a876e26ba6" - }, - "ResponseBody": { - "error": { - "code": "CertificateNotFound", - "message": "Deleted Certificate not found: createCertRehydrate3515234438" - } - } - }, - { - "RequestUri": "https://fakekvurl.vault.azure.net/deletedcertificates/createCertRehydrate3515234438?api-version=7.3", - "RequestMethod": "GET", - "RequestHeaders": { - ":method": "GET", - "Accept": "application/json", - "Accept-Encoding": "gzip", - "Authorization": "Sanitized", - "User-Agent": "azsdk-go-azcertificates/v0.4.2 (go1.18; Windows_NT)" - }, - "RequestBody": null, - "StatusCode": 404, - "ResponseHeaders": { - "Cache-Control": "no-cache", - "Content-Length": "113", - "Content-Type": "application/json; charset=utf-8", - "Date": "Mon, 16 May 2022 18:10:53 GMT", - "Expires": "-1", - "Pragma": "no-cache", - "Strict-Transport-Security": "max-age=31536000;includeSubDomains", - "X-Content-Type-Options": "nosniff", - "x-ms-keyvault-network-info": "conn_type=Ipv4;addr=73.83.78.150;act_addr_fam=InterNetwork;", - "x-ms-keyvault-region": "westus2", - "x-ms-keyvault-service-version": "1.9.395.1", - "x-ms-request-id": "058d6a5b-7039-4df0-9aee-01b16cfcb062" - }, - "ResponseBody": { - "error": { - "code": "CertificateNotFound", - "message": "Deleted Certificate not found: createCertRehydrate3515234438" - } - } - }, - { - "RequestUri": "https://fakekvurl.vault.azure.net/deletedcertificates/createCertRehydrate3515234438?api-version=7.3", - "RequestMethod": "GET", - "RequestHeaders": { - ":method": "GET", - "Accept": "application/json", - "Accept-Encoding": "gzip", - "Authorization": "Sanitized", - "User-Agent": "azsdk-go-azcertificates/v0.4.2 (go1.18; Windows_NT)" - }, - "RequestBody": null, - "StatusCode": 404, - "ResponseHeaders": { - "Cache-Control": "no-cache", - "Content-Length": "113", - "Content-Type": "application/json; charset=utf-8", - "Date": "Mon, 16 May 2022 18:10:54 GMT", - "Expires": "-1", - "Pragma": "no-cache", - "Strict-Transport-Security": "max-age=31536000;includeSubDomains", - "X-Content-Type-Options": "nosniff", - "x-ms-keyvault-network-info": "conn_type=Ipv4;addr=73.83.78.150;act_addr_fam=InterNetwork;", - "x-ms-keyvault-region": "westus2", - "x-ms-keyvault-service-version": "1.9.395.1", - "x-ms-request-id": "c3880cfa-3e0b-4f13-990e-92d5dd1e07f5" - }, - "ResponseBody": { - "error": { - "code": "CertificateNotFound", - "message": "Deleted Certificate not found: createCertRehydrate3515234438" - } - } - }, - { - "RequestUri": "https://fakekvurl.vault.azure.net/deletedcertificates/createCertRehydrate3515234438?api-version=7.3", - "RequestMethod": "GET", - "RequestHeaders": { - ":method": "GET", - "Accept": "application/json", - "Accept-Encoding": "gzip", - "Authorization": "Sanitized", - "User-Agent": "azsdk-go-azcertificates/v0.4.2 (go1.18; Windows_NT)" - }, - "RequestBody": null, - "StatusCode": 404, - "ResponseHeaders": { - "Cache-Control": "no-cache", - "Content-Length": "113", - "Content-Type": "application/json; charset=utf-8", - "Date": "Mon, 16 May 2022 18:10:55 GMT", - "Expires": "-1", - "Pragma": "no-cache", - "Strict-Transport-Security": "max-age=31536000;includeSubDomains", - "X-Content-Type-Options": "nosniff", - "x-ms-keyvault-network-info": "conn_type=Ipv4;addr=73.83.78.150;act_addr_fam=InterNetwork;", - "x-ms-keyvault-region": "westus2", - "x-ms-keyvault-service-version": "1.9.395.1", - "x-ms-request-id": "56072f4f-9318-4ce9-9f56-54b46fb68989" - }, - "ResponseBody": { - "error": { - "code": "CertificateNotFound", - "message": "Deleted Certificate not found: createCertRehydrate3515234438" - } - } - }, - { - "RequestUri": "https://fakekvurl.vault.azure.net/deletedcertificates/createCertRehydrate3515234438?api-version=7.3", - "RequestMethod": "GET", - "RequestHeaders": { - ":method": "GET", - "Accept": "application/json", - "Accept-Encoding": "gzip", - "Authorization": "Sanitized", - "User-Agent": "azsdk-go-azcertificates/v0.4.2 (go1.18; Windows_NT)" - }, - "RequestBody": null, - "StatusCode": 404, - "ResponseHeaders": { - "Cache-Control": "no-cache", - "Content-Length": "113", - "Content-Type": "application/json; charset=utf-8", - "Date": "Mon, 16 May 2022 18:10:56 GMT", - "Expires": "-1", - "Pragma": "no-cache", - "Strict-Transport-Security": "max-age=31536000;includeSubDomains", - "X-Content-Type-Options": "nosniff", - "x-ms-keyvault-network-info": "conn_type=Ipv4;addr=73.83.78.150;act_addr_fam=InterNetwork;", - "x-ms-keyvault-region": "westus2", - "x-ms-keyvault-service-version": "1.9.395.1", - "x-ms-request-id": "e0cfc17b-1ae4-4bb3-b099-aaaf9a044eb2" - }, - "ResponseBody": { - "error": { - "code": "CertificateNotFound", - "message": "Deleted Certificate not found: createCertRehydrate3515234438" - } - } - }, - { - "RequestUri": "https://fakekvurl.vault.azure.net/deletedcertificates/createCertRehydrate3515234438?api-version=7.3", - "RequestMethod": "GET", - "RequestHeaders": { - ":method": "GET", - "Accept": "application/json", - "Accept-Encoding": "gzip", - "Authorization": "Sanitized", - "User-Agent": "azsdk-go-azcertificates/v0.4.2 (go1.18; Windows_NT)" - }, - "RequestBody": null, - "StatusCode": 404, - "ResponseHeaders": { - "Cache-Control": "no-cache", - "Content-Length": "113", - "Content-Type": "application/json; charset=utf-8", - "Date": "Mon, 16 May 2022 18:10:58 GMT", - "Expires": "-1", - "Pragma": "no-cache", - "Strict-Transport-Security": "max-age=31536000;includeSubDomains", - "X-Content-Type-Options": "nosniff", - "x-ms-keyvault-network-info": "conn_type=Ipv4;addr=73.83.78.150;act_addr_fam=InterNetwork;", - "x-ms-keyvault-region": "westus2", - "x-ms-keyvault-service-version": "1.9.395.1", - "x-ms-request-id": "135116b6-2e71-419b-b0c4-a86d4c980ff1" - }, - "ResponseBody": { - "error": { - "code": "CertificateNotFound", - "message": "Deleted Certificate not found: createCertRehydrate3515234438" - } - } - }, - { - "RequestUri": "https://fakekvurl.vault.azure.net/deletedcertificates/createCertRehydrate3515234438?api-version=7.3", - "RequestMethod": "GET", - "RequestHeaders": { - ":method": "GET", - "Accept": "application/json", - "Accept-Encoding": "gzip", - "Authorization": "Sanitized", - "User-Agent": "azsdk-go-azcertificates/v0.4.2 (go1.18; Windows_NT)" - }, - "RequestBody": null, - "StatusCode": 404, - "ResponseHeaders": { - "Cache-Control": "no-cache", - "Content-Length": "113", - "Content-Type": "application/json; charset=utf-8", - "Date": "Mon, 16 May 2022 18:10:59 GMT", - "Expires": "-1", - "Pragma": "no-cache", - "Strict-Transport-Security": "max-age=31536000;includeSubDomains", - "X-Content-Type-Options": "nosniff", - "x-ms-keyvault-network-info": "conn_type=Ipv4;addr=73.83.78.150;act_addr_fam=InterNetwork;", - "x-ms-keyvault-region": "westus2", - "x-ms-keyvault-service-version": "1.9.395.1", - "x-ms-request-id": "0a5a332e-1aaf-4f25-88ef-ce9d68f6d955" - }, - "ResponseBody": { - "error": { - "code": "CertificateNotFound", - "message": "Deleted Certificate not found: createCertRehydrate3515234438" - } - } - }, - { - "RequestUri": "https://fakekvurl.vault.azure.net/deletedcertificates/createCertRehydrate3515234438?api-version=7.3", - "RequestMethod": "GET", - "RequestHeaders": { - ":method": "GET", - "Accept": "application/json", - "Accept-Encoding": "gzip", - "Authorization": "Sanitized", - "User-Agent": "azsdk-go-azcertificates/v0.4.2 (go1.18; Windows_NT)" - }, - "RequestBody": null, - "StatusCode": 404, - "ResponseHeaders": { - "Cache-Control": "no-cache", - "Content-Length": "113", - "Content-Type": "application/json; charset=utf-8", - "Date": "Mon, 16 May 2022 18:11:00 GMT", - "Expires": "-1", - "Pragma": "no-cache", - "Strict-Transport-Security": "max-age=31536000;includeSubDomains", - "X-Content-Type-Options": "nosniff", - "x-ms-keyvault-network-info": "conn_type=Ipv4;addr=73.83.78.150;act_addr_fam=InterNetwork;", - "x-ms-keyvault-region": "westus2", - "x-ms-keyvault-service-version": "1.9.395.1", - "x-ms-request-id": "f558b827-ef0a-489a-87fb-c3da3b58b40b" - }, - "ResponseBody": { - "error": { - "code": "CertificateNotFound", - "message": "Deleted Certificate not found: createCertRehydrate3515234438" - } - } - }, - { - "RequestUri": "https://fakekvurl.vault.azure.net/deletedcertificates/createCertRehydrate3515234438?api-version=7.3", - "RequestMethod": "GET", - "RequestHeaders": { - ":method": "GET", - "Accept": "application/json", - "Accept-Encoding": "gzip", - "Authorization": "Sanitized", - "User-Agent": "azsdk-go-azcertificates/v0.4.2 (go1.18; Windows_NT)" - }, - "RequestBody": null, - "StatusCode": 200, - "ResponseHeaders": { - "Cache-Control": "no-cache", - "Content-Length": "2562", - "Content-Type": "application/json; charset=utf-8", - "Date": "Mon, 16 May 2022 18:11:01 GMT", - "Expires": "-1", - "Pragma": "no-cache", - "Strict-Transport-Security": "max-age=31536000;includeSubDomains", - "X-Content-Type-Options": "nosniff", - "x-ms-keyvault-network-info": "conn_type=Ipv4;addr=73.83.78.150;act_addr_fam=InterNetwork;", - "x-ms-keyvault-region": "westus2", - "x-ms-keyvault-service-version": "1.9.395.1", - "x-ms-request-id": "54439b19-f7e5-4bca-9654-768b1dcb54d8" - }, - "ResponseBody": { - "recoveryId": "https://fakekvurl.vault.azure.net/deletedcertificates/createCertRehydrate3515234438", - "deletedDate": 1652724650, - "scheduledPurgeDate": 1653329450, - "id": "https://fakekvurl.vault.azure.net/certificates/createCertRehydrate3515234438/51ebd88784454086ad73ade59a3ea142", - "kid": "https://fakekvurl.vault.azure.net/keys/createCertRehydrate3515234438/51ebd88784454086ad73ade59a3ea142", - "sid": "https://fakekvurl.vault.azure.net/secrets/createCertRehydrate3515234438/51ebd88784454086ad73ade59a3ea142", - "x5t": "yX5rjghvTWez6ZPEAbGdDIKLZ4g", - "cer": "MIIDNjCCAh6gAwIBAgIQZixRIxA\u002BRBWEerxWFuezYzANBgkqhkiG9w0BAQsFADAYMRYwFAYDVQQDEw1EZWZhdWx0UG9saWN5MB4XDTIyMDUxNjE4MDA0MFoXDTIzMDUxNjE4MTA0MFowGDEWMBQGA1UEAxMNRGVmYXVsdFBvbGljeTCCASIwDQYJKoZIhvcNAQEBBQADggEPADCCAQoCggEBAL\u002BilcxioNzaIFiGkG6UDdeCDImilqJiq8CVd79jX7eCEZ7flypH\u002BK1RqclZAzRFptMOz7NE5DpNgQfIXcDKaS6AuWSanSkQzVYWPwT0XJTkCSaZoML99ewPiO4KreyFWatRwWAZ0PNeT6JMaV6blKU7w9gOfHA5yZNHzfObhhbJiRqUSseVVmesU\u002BkzkaX0ZeAaHc77SK9psrscsLBJEHKu66iG/PC0SkGHqEMx289FK/NFV5PR/sdGxxUjNXHkWyrWoX/2y8TXvtllOMn2Dz3yofYTZUvdZytrR4Ovy8IHGGNhfWbzJLpBrWu9q\u002BPs3kqXCfcrlDcZObnYHQZDYXkCAwEAAaN8MHowDgYDVR0PAQH/BAQDAgWgMAkGA1UdEwQCMAAwHQYDVR0lBBYwFAYIKwYBBQUHAwEGCCsGAQUFBwMCMB8GA1UdIwQYMBaAFON9wZWQj/XIklBAync6Xc53lxzaMB0GA1UdDgQWBBTjfcGVkI/1yJJQQMp3Ol3Od5cc2jANBgkqhkiG9w0BAQsFAAOCAQEAfgYHqExnhRhlIqck2BvVAHe49TZ489UQru1xUvpAmxZrspgxRUcjCR7eoTVU4g43\u002BZUBo8Ivu/uVKLAeXhd32NByaEgiyYJcXizthAMV9UZQN6qQdcw2tkoggb1pkqF0XMsQwg9xUYjEK4q6J9ZI/DpHkCtN7AGsFL5IoauCDtMLJAbOZLaI9JVzWknqo869bwYVdkhMiF12idbl8xYdz71tbknfMO8WSPefPH8OSS71ERtD/4yJvn9n5ueKp8eIrQcglD5L4gCaslz2kwPNu/YHw/fYsPsTFl0HtsaXY9qtO8InOVQywbANJ9QDWqP1oJbhzc8dZU2f12tmuj1zwQ==", - "attributes": { - "enabled": true, - "nbf": 1652724040, - "exp": 1684260640, - "created": 1652724640, - "updated": 1652724640, - "recoveryLevel": "CustomizedRecoverable\u002BPurgeable", - "recoverableDays": 7 - }, - "policy": { - "id": "https://fakekvurl.vault.azure.net/certificates/createCertRehydrate3515234438/policy", - "key_props": { - "exportable": true, - "kty": "RSA", - "key_size": 2048, - "reuse_key": false - }, - "secret_props": { - "contentType": "application/x-pkcs12" - }, - "x509_props": { - "subject": "CN=DefaultPolicy", - "sans": {}, - "ekus": [ - "1.3.6.1.5.5.7.3.1", - "1.3.6.1.5.5.7.3.2" - ], - "key_usage": [ - "digitalSignature", - "keyEncipherment" - ], - "validity_months": 12, - "basic_constraints": { - "ca": false - } - }, - "lifetime_actions": [ - { - "trigger": { - "lifetime_percentage": 80 - }, - "action": { - "action_type": "AutoRenew" - } - } - ], - "issuer": { - "name": "Self" - }, - "attributes": { - "enabled": true, - "created": 1652724630, - "updated": 1652724630 - } - }, - "pending": { - "id": "https://fakekvurl.vault.azure.net/certificates/createCertRehydrate3515234438/pending" - } - } - }, - { - "RequestUri": "https://fakekvurl.vault.azure.net/certificates/createCertRehydrate3515234438/?api-version=7.3", - "RequestMethod": "GET", - "RequestHeaders": { - ":method": "GET", - "Accept": "application/json", - "Accept-Encoding": "gzip", - "Authorization": "Sanitized", - "User-Agent": "azsdk-go-azcertificates/v0.4.2 (go1.18; Windows_NT)" - }, - "RequestBody": null, - "StatusCode": 404, - "ResponseHeaders": { - "Cache-Control": "no-cache", - "Content-Length": "341", - "Content-Type": "application/json; charset=utf-8", - "Date": "Mon, 16 May 2022 18:11:01 GMT", - "Expires": "-1", - "Pragma": "no-cache", - "Strict-Transport-Security": "max-age=31536000;includeSubDomains", - "X-Content-Type-Options": "nosniff", - "x-ms-keyvault-network-info": "conn_type=Ipv4;addr=73.83.78.150;act_addr_fam=InterNetwork;", - "x-ms-keyvault-region": "westus2", - "x-ms-keyvault-service-version": "1.9.395.1", - "x-ms-request-id": "06741f59-c485-466f-a3a3-76439705aed2" - }, - "ResponseBody": { - "error": { - "code": "CertificateNotFound", - "message": "A certificate with (name/id) createCertRehydrate3515234438 was not found in this key vault. If you recently deleted this certificate you may be able to recover it using the correct recovery command. For help resolving this issue, please see https://go.microsoft.com/fwlink/?linkid=2125182" - } - } - }, - { - "RequestUri": "https://fakekvurl.vault.azure.net/deletedcertificates/createCertRehydrate3515234438?api-version=7.3", - "RequestMethod": "GET", - "RequestHeaders": { - ":method": "GET", - "Accept": "application/json", - "Accept-Encoding": "gzip", - "Authorization": "Sanitized", - "User-Agent": "azsdk-go-azcertificates/v0.4.2 (go1.18; Windows_NT)" - }, - "RequestBody": null, - "StatusCode": 200, - "ResponseHeaders": { - "Cache-Control": "no-cache", - "Content-Length": "2562", - "Content-Type": "application/json; charset=utf-8", - "Date": "Mon, 16 May 2022 18:11:01 GMT", - "Expires": "-1", - "Pragma": "no-cache", - "Strict-Transport-Security": "max-age=31536000;includeSubDomains", - "X-Content-Type-Options": "nosniff", - "x-ms-keyvault-network-info": "conn_type=Ipv4;addr=73.83.78.150;act_addr_fam=InterNetwork;", - "x-ms-keyvault-region": "westus2", - "x-ms-keyvault-service-version": "1.9.395.1", - "x-ms-request-id": "ea7fa6f7-3362-4535-aa0d-aa04953a82da" - }, - "ResponseBody": { - "recoveryId": "https://fakekvurl.vault.azure.net/deletedcertificates/createCertRehydrate3515234438", - "deletedDate": 1652724650, - "scheduledPurgeDate": 1653329450, - "id": "https://fakekvurl.vault.azure.net/certificates/createCertRehydrate3515234438/51ebd88784454086ad73ade59a3ea142", - "kid": "https://fakekvurl.vault.azure.net/keys/createCertRehydrate3515234438/51ebd88784454086ad73ade59a3ea142", - "sid": "https://fakekvurl.vault.azure.net/secrets/createCertRehydrate3515234438/51ebd88784454086ad73ade59a3ea142", - "x5t": "yX5rjghvTWez6ZPEAbGdDIKLZ4g", - "cer": "MIIDNjCCAh6gAwIBAgIQZixRIxA\u002BRBWEerxWFuezYzANBgkqhkiG9w0BAQsFADAYMRYwFAYDVQQDEw1EZWZhdWx0UG9saWN5MB4XDTIyMDUxNjE4MDA0MFoXDTIzMDUxNjE4MTA0MFowGDEWMBQGA1UEAxMNRGVmYXVsdFBvbGljeTCCASIwDQYJKoZIhvcNAQEBBQADggEPADCCAQoCggEBAL\u002BilcxioNzaIFiGkG6UDdeCDImilqJiq8CVd79jX7eCEZ7flypH\u002BK1RqclZAzRFptMOz7NE5DpNgQfIXcDKaS6AuWSanSkQzVYWPwT0XJTkCSaZoML99ewPiO4KreyFWatRwWAZ0PNeT6JMaV6blKU7w9gOfHA5yZNHzfObhhbJiRqUSseVVmesU\u002BkzkaX0ZeAaHc77SK9psrscsLBJEHKu66iG/PC0SkGHqEMx289FK/NFV5PR/sdGxxUjNXHkWyrWoX/2y8TXvtllOMn2Dz3yofYTZUvdZytrR4Ovy8IHGGNhfWbzJLpBrWu9q\u002BPs3kqXCfcrlDcZObnYHQZDYXkCAwEAAaN8MHowDgYDVR0PAQH/BAQDAgWgMAkGA1UdEwQCMAAwHQYDVR0lBBYwFAYIKwYBBQUHAwEGCCsGAQUFBwMCMB8GA1UdIwQYMBaAFON9wZWQj/XIklBAync6Xc53lxzaMB0GA1UdDgQWBBTjfcGVkI/1yJJQQMp3Ol3Od5cc2jANBgkqhkiG9w0BAQsFAAOCAQEAfgYHqExnhRhlIqck2BvVAHe49TZ489UQru1xUvpAmxZrspgxRUcjCR7eoTVU4g43\u002BZUBo8Ivu/uVKLAeXhd32NByaEgiyYJcXizthAMV9UZQN6qQdcw2tkoggb1pkqF0XMsQwg9xUYjEK4q6J9ZI/DpHkCtN7AGsFL5IoauCDtMLJAbOZLaI9JVzWknqo869bwYVdkhMiF12idbl8xYdz71tbknfMO8WSPefPH8OSS71ERtD/4yJvn9n5ueKp8eIrQcglD5L4gCaslz2kwPNu/YHw/fYsPsTFl0HtsaXY9qtO8InOVQywbANJ9QDWqP1oJbhzc8dZU2f12tmuj1zwQ==", - "attributes": { - "enabled": true, - "nbf": 1652724040, - "exp": 1684260640, - "created": 1652724640, - "updated": 1652724640, - "recoveryLevel": "CustomizedRecoverable\u002BPurgeable", - "recoverableDays": 7 - }, - "policy": { - "id": "https://fakekvurl.vault.azure.net/certificates/createCertRehydrate3515234438/policy", - "key_props": { - "exportable": true, - "kty": "RSA", - "key_size": 2048, - "reuse_key": false - }, - "secret_props": { - "contentType": "application/x-pkcs12" - }, - "x509_props": { - "subject": "CN=DefaultPolicy", - "sans": {}, - "ekus": [ - "1.3.6.1.5.5.7.3.1", - "1.3.6.1.5.5.7.3.2" - ], - "key_usage": [ - "digitalSignature", - "keyEncipherment" - ], - "validity_months": 12, - "basic_constraints": { - "ca": false - } - }, - "lifetime_actions": [ - { - "trigger": { - "lifetime_percentage": 80 - }, - "action": { - "action_type": "AutoRenew" - } - } - ], - "issuer": { - "name": "Self" - }, - "attributes": { - "enabled": true, - "created": 1652724630, - "updated": 1652724630 - } - }, - "pending": { - "id": "https://fakekvurl.vault.azure.net/certificates/createCertRehydrate3515234438/pending" - } - } - }, - { - "RequestUri": "https://fakekvurl.vault.azure.net/deletedcertificates/createCertRehydrate3515234438?api-version=7.3", - "RequestMethod": "DELETE", - "RequestHeaders": { - "Accept": "application/json", - "Accept-Encoding": "gzip", - "Authorization": "Sanitized", - "User-Agent": "azsdk-go-azcertificates/v0.4.2 (go1.18; Windows_NT)" - }, - "RequestBody": null, - "StatusCode": 204, - "ResponseHeaders": { - "Cache-Control": "no-cache", - "Date": "Mon, 16 May 2022 18:11:01 GMT", - "Expires": "-1", - "Pragma": "no-cache", - "Strict-Transport-Security": "max-age=31536000;includeSubDomains", - "X-Content-Type-Options": "nosniff", - "x-ms-keyvault-network-info": "conn_type=Ipv4;addr=73.83.78.150;act_addr_fam=InterNetwork;", - "x-ms-keyvault-region": "westus2", - "x-ms-keyvault-service-version": "1.9.395.1", - "x-ms-request-id": "8a193405-3926-4bdb-80b6-0b771fabce7f" - }, - "ResponseBody": null - } - ], - "Variables": {} -} diff --git a/sdk/keyvault/azcertificates/testdata/recordings/TestClient_BeginRecoverDeletedCertificate.json b/sdk/keyvault/azcertificates/testdata/recordings/TestClient_BeginRecoverDeletedCertificate.json deleted file mode 100644 index 34f74ab1aa76..000000000000 --- a/sdk/keyvault/azcertificates/testdata/recordings/TestClient_BeginRecoverDeletedCertificate.json +++ /dev/null @@ -1,1470 +0,0 @@ -{ - "Entries": [ - { - "RequestUri": "https://fakekvurl.vault.azure.net/certificates/certRecover634943320/create?api-version=7.3", - "RequestMethod": "POST", - "RequestHeaders": { - ":method": "POST", - "Accept": "application/json", - "Accept-Encoding": "gzip", - "Content-Length": "0", - "User-Agent": "azsdk-go-azcertificates/v0.4.2 (go1.18; Windows_NT)" - }, - "RequestBody": null, - "StatusCode": 401, - "ResponseHeaders": { - "Cache-Control": "no-cache", - "Content-Length": "97", - "Content-Type": "application/json; charset=utf-8", - "Date": "Mon, 16 May 2022 18:14:03 GMT", - "Expires": "-1", - "Pragma": "no-cache", - "Strict-Transport-Security": "max-age=31536000;includeSubDomains", - "WWW-Authenticate": "Bearer authorization=\u0022https://login.windows.net/00000000-0000-0000-0000-000000000000\u0022, resource=\u0022https://vault.azure.net\u0022", - "X-Content-Type-Options": "nosniff", - "x-ms-keyvault-network-info": "conn_type=Ipv4;addr=73.83.78.150;act_addr_fam=InterNetwork;", - "x-ms-keyvault-region": "westus2", - "x-ms-keyvault-service-version": "1.9.395.1", - "x-ms-request-id": "eb6dd4af-7e8a-4c87-86e5-eb3ad859c34a" - }, - "ResponseBody": { - "error": { - "code": "Unauthorized", - "message": "AKV10000: Request is missing a Bearer or PoP token." - } - } - }, - { - "RequestUri": "https://fakekvurl.vault.azure.net/certificates/certRecover634943320/create?api-version=7.3", - "RequestMethod": "POST", - "RequestHeaders": { - ":method": "POST", - "Accept": "application/json", - "Accept-Encoding": "gzip", - "Authorization": "Sanitized", - "Content-Length": "125", - "Content-Type": "application/json", - "User-Agent": "azsdk-go-azcertificates/v0.4.2 (go1.18; Windows_NT)" - }, - "RequestBody": { - "attributes": {}, - "policy": { - "issuer": { - "name": "Self" - }, - "secret_props": {}, - "x509_props": { - "sans": {}, - "subject": "CN=DefaultPolicy" - } - } - }, - "StatusCode": 202, - "ResponseHeaders": { - "Cache-Control": "no-cache", - "Content-Length": "1295", - "Content-Type": "application/json; charset=utf-8", - "Date": "Mon, 16 May 2022 18:14:04 GMT", - "Expires": "-1", - "Location": "https://fakekvurl.vault.azure.net/certificates/certRecover634943320/pending?api-version=7.3\u0026request_id=e0cf0555fcd443d3b757482b7db6a686", - "Pragma": "no-cache", - "Retry-After": "10", - "Strict-Transport-Security": "max-age=31536000;includeSubDomains", - "X-Content-Type-Options": "nosniff", - "x-ms-keyvault-network-info": "conn_type=Ipv4;addr=73.83.78.150;act_addr_fam=InterNetwork;", - "x-ms-keyvault-region": "westus2", - "x-ms-keyvault-service-version": "1.9.395.1", - "x-ms-request-id": "a20e726b-5a6b-4201-bde9-8e2867928378" - }, - "ResponseBody": { - "id": "https://fakekvurl.vault.azure.net/certificates/certRecover634943320/pending", - "issuer": { - "name": "Self" - }, - "csr": "MIICqDCCAZACAQAwGDEWMBQGA1UEAxMNRGVmYXVsdFBvbGljeTCCASIwDQYJKoZIhvcNAQEBBQADggEPADCCAQoCggEBAK/0f8/Trjo8Om\u002BtRmNbvWszCa7X8T6RnZkpEmhY0MKuP\u002Bu1u\u002Bn5SnP9arpUR7HFCqjI0DOF0fFhCecp515OriCaCzyZf2eefe0msed0Paek/BocAFYF1peXb3e6A0P6XRNoXyGwZzrZSqF7MrOsHKNnLqY7xAruRwTRdquLg6mcd08OT3pQ2CyJX4\u002BmMLLpQ1V5ejkdOmqdnPZnwqN\u002BOi0JLPQ5J6GVQS8P599DShKlXTKnrL8o0\u002BJeSK56Ux\u002BPJ2MTDPcNAoox7/lVzy5wVaDyV6PB8SHXQvtav7NUAZOjHojP/TCGfXh0E2z7tCjaltcn9pnDD2lGdSoC3QsF1\u002BECAwEAAaBLMEkGCSqGSIb3DQEJDjE8MDowDgYDVR0PAQH/BAQDAgWgMB0GA1UdJQQWMBQGCCsGAQUFBwMBBggrBgEFBQcDAjAJBgNVHRMEAjAAMA0GCSqGSIb3DQEBCwUAA4IBAQACEGKZtPMF118onwsFVoy0cvB0cGdyOw5BnL1OfkCXWSr6BC1OtMebUhtwVgtS4dDMD\u002BM5/IJiIHb5dLGsPIDIhMw0VqD2M\u002BIGNjDE2u9p2wq3wFjEujgmkEwYa49JbzdLCebv0WC5DGhsbDA6SUgwgNQuqqJPZX5yDYUT0mNCrKbxzvmBj51Pj/pNP\u002BIcGFdl32\u002BH\u002BtkEwEEEBTP2CMjjf3Q7ztQ15TXTKIzmG3r3578OBBSQnT\u002BV8hXP1wkSCyHkO580MP0hNH7qvqZHdgqdT0CerA3XwZfNjh\u002B4zio2ZFrzSmllcotJnTxu64wgEIMqy3m4M6XaJQ/izB6MP4IC", - "cancellation_requested": false, - "status": "inProgress", - "status_details": "Pending certificate created. Certificate request is in progress. This may take some time based on the issuer provider. Please check again later.", - "request_id": "e0cf0555fcd443d3b757482b7db6a686" - } - }, - { - "RequestUri": "https://fakekvurl.vault.azure.net/certificates/certRecover634943320/pending?api-version=7.3\u0026request_id=e0cf0555fcd443d3b757482b7db6a686", - "RequestMethod": "GET", - "RequestHeaders": { - ":method": "GET", - "Accept-Encoding": "gzip", - "Authorization": "Sanitized", - "User-Agent": "azsdk-go-azcertificates/v0.4.2 (go1.18; Windows_NT)" - }, - "RequestBody": null, - "StatusCode": 200, - "ResponseHeaders": { - "Cache-Control": "no-cache", - "Content-Length": "1209", - "Content-Type": "application/json; charset=utf-8", - "Date": "Mon, 16 May 2022 18:14:14 GMT", - "Expires": "-1", - "Pragma": "no-cache", - "Strict-Transport-Security": "max-age=31536000;includeSubDomains", - "X-Content-Type-Options": "nosniff", - "x-ms-keyvault-network-info": "conn_type=Ipv4;addr=73.83.78.150;act_addr_fam=InterNetwork;", - "x-ms-keyvault-region": "westus2", - "x-ms-keyvault-service-version": "1.9.395.1", - "x-ms-request-id": "a2a199b9-9291-468e-a2e0-257c7e7fd446" - }, - "ResponseBody": { - "id": "https://fakekvurl.vault.azure.net/certificates/certRecover634943320/pending", - "issuer": { - "name": "Self" - }, - "csr": "MIICqDCCAZACAQAwGDEWMBQGA1UEAxMNRGVmYXVsdFBvbGljeTCCASIwDQYJKoZIhvcNAQEBBQADggEPADCCAQoCggEBAK/0f8/Trjo8Om\u002BtRmNbvWszCa7X8T6RnZkpEmhY0MKuP\u002Bu1u\u002Bn5SnP9arpUR7HFCqjI0DOF0fFhCecp515OriCaCzyZf2eefe0msed0Paek/BocAFYF1peXb3e6A0P6XRNoXyGwZzrZSqF7MrOsHKNnLqY7xAruRwTRdquLg6mcd08OT3pQ2CyJX4\u002BmMLLpQ1V5ejkdOmqdnPZnwqN\u002BOi0JLPQ5J6GVQS8P599DShKlXTKnrL8o0\u002BJeSK56Ux\u002BPJ2MTDPcNAoox7/lVzy5wVaDyV6PB8SHXQvtav7NUAZOjHojP/TCGfXh0E2z7tCjaltcn9pnDD2lGdSoC3QsF1\u002BECAwEAAaBLMEkGCSqGSIb3DQEJDjE8MDowDgYDVR0PAQH/BAQDAgWgMB0GA1UdJQQWMBQGCCsGAQUFBwMBBggrBgEFBQcDAjAJBgNVHRMEAjAAMA0GCSqGSIb3DQEBCwUAA4IBAQACEGKZtPMF118onwsFVoy0cvB0cGdyOw5BnL1OfkCXWSr6BC1OtMebUhtwVgtS4dDMD\u002BM5/IJiIHb5dLGsPIDIhMw0VqD2M\u002BIGNjDE2u9p2wq3wFjEujgmkEwYa49JbzdLCebv0WC5DGhsbDA6SUgwgNQuqqJPZX5yDYUT0mNCrKbxzvmBj51Pj/pNP\u002BIcGFdl32\u002BH\u002BtkEwEEEBTP2CMjjf3Q7ztQ15TXTKIzmG3r3578OBBSQnT\u002BV8hXP1wkSCyHkO580MP0hNH7qvqZHdgqdT0CerA3XwZfNjh\u002B4zio2ZFrzSmllcotJnTxu64wgEIMqy3m4M6XaJQ/izB6MP4IC", - "cancellation_requested": false, - "status": "completed", - "target": "https://fakekvurl.vault.azure.net/certificates/certRecover634943320", - "request_id": "e0cf0555fcd443d3b757482b7db6a686" - } - }, - { - "RequestUri": "https://fakekvurl.vault.azure.net/certificates/certRecover634943320/?api-version=7.3", - "RequestMethod": "GET", - "RequestHeaders": { - ":method": "GET", - "Accept": "application/json", - "Accept-Encoding": "gzip", - "Authorization": "Sanitized", - "User-Agent": "azsdk-go-azcertificates/v0.4.2 (go1.18; Windows_NT)" - }, - "RequestBody": null, - "StatusCode": 200, - "ResponseHeaders": { - "Cache-Control": "no-cache", - "Content-Length": "2361", - "Content-Type": "application/json; charset=utf-8", - "Date": "Mon, 16 May 2022 18:14:14 GMT", - "Expires": "-1", - "Pragma": "no-cache", - "Strict-Transport-Security": "max-age=31536000;includeSubDomains", - "X-Content-Type-Options": "nosniff", - "x-ms-keyvault-network-info": "conn_type=Ipv4;addr=73.83.78.150;act_addr_fam=InterNetwork;", - "x-ms-keyvault-region": "westus2", - "x-ms-keyvault-service-version": "1.9.395.1", - "x-ms-request-id": "d9815326-7640-4f53-8c61-7ac3065bab84" - }, - "ResponseBody": { - "id": "https://fakekvurl.vault.azure.net/certificates/certRecover634943320/4de94396c8414ddda6631689bc8b1318", - "kid": "https://fakekvurl.vault.azure.net/keys/certRecover634943320/4de94396c8414ddda6631689bc8b1318", - "sid": "https://fakekvurl.vault.azure.net/secrets/certRecover634943320/4de94396c8414ddda6631689bc8b1318", - "x5t": "g9c_-E1hXxxuo87keXkbC0m1fMs", - "cer": "MIIDNjCCAh6gAwIBAgIQbx1ELlpzRA\u002BFLwESm8U0bTANBgkqhkiG9w0BAQsFADAYMRYwFAYDVQQDEw1EZWZhdWx0UG9saWN5MB4XDTIyMDUxNjE4MDQwOVoXDTIzMDUxNjE4MTQwOVowGDEWMBQGA1UEAxMNRGVmYXVsdFBvbGljeTCCASIwDQYJKoZIhvcNAQEBBQADggEPADCCAQoCggEBAK/0f8/Trjo8Om\u002BtRmNbvWszCa7X8T6RnZkpEmhY0MKuP\u002Bu1u\u002Bn5SnP9arpUR7HFCqjI0DOF0fFhCecp515OriCaCzyZf2eefe0msed0Paek/BocAFYF1peXb3e6A0P6XRNoXyGwZzrZSqF7MrOsHKNnLqY7xAruRwTRdquLg6mcd08OT3pQ2CyJX4\u002BmMLLpQ1V5ejkdOmqdnPZnwqN\u002BOi0JLPQ5J6GVQS8P599DShKlXTKnrL8o0\u002BJeSK56Ux\u002BPJ2MTDPcNAoox7/lVzy5wVaDyV6PB8SHXQvtav7NUAZOjHojP/TCGfXh0E2z7tCjaltcn9pnDD2lGdSoC3QsF1\u002BECAwEAAaN8MHowDgYDVR0PAQH/BAQDAgWgMAkGA1UdEwQCMAAwHQYDVR0lBBYwFAYIKwYBBQUHAwEGCCsGAQUFBwMCMB8GA1UdIwQYMBaAFMCTk0xKx0P/YE3nER\u002B25nUvRRT4MB0GA1UdDgQWBBTAk5NMSsdD/2BN5xEftuZ1L0UU\u002BDANBgkqhkiG9w0BAQsFAAOCAQEAgdSsbmLQ1utH6JaX5AaPgPiYyocEOfRLwEDXkjdvm91efvRwlKGqVwoV85ynxYphkU4CW41Y\u002BV0Xhy37NdJep/wNJR9M\u002B\u002BKYskXQ7RWOws8aTRWtRIBJcW\u002BAW16XIZY0y6R2c7b86odlt9\u002BTMNR9ejg795l/7hR1PE0BmZLQ0MInJ17iPWn9h41KNDobP\u002BOv2ksFsvzsDt0FhJAxmonuvLVAk1g3MrI/QiUAUvywv6Xvu5p7k3SvlM\u002BMEc8jHiDj\u002BhLhMOFqbAmFsqrJeulnsJAElujrT5CvhKGxFEENqSs2SYM8XHzsYRGOP7xCpShjOcb9qKNXE7nRrvHwaU5IsQ==", - "attributes": { - "enabled": true, - "nbf": 1652724249, - "exp": 1684260849, - "created": 1652724849, - "updated": 1652724849, - "recoveryLevel": "CustomizedRecoverable\u002BPurgeable", - "recoverableDays": 7 - }, - "policy": { - "id": "https://fakekvurl.vault.azure.net/certificates/certRecover634943320/policy", - "key_props": { - "exportable": true, - "kty": "RSA", - "key_size": 2048, - "reuse_key": false - }, - "secret_props": { - "contentType": "application/x-pkcs12" - }, - "x509_props": { - "subject": "CN=DefaultPolicy", - "sans": {}, - "ekus": [ - "1.3.6.1.5.5.7.3.1", - "1.3.6.1.5.5.7.3.2" - ], - "key_usage": [ - "digitalSignature", - "keyEncipherment" - ], - "validity_months": 12, - "basic_constraints": { - "ca": false - } - }, - "lifetime_actions": [ - { - "trigger": { - "lifetime_percentage": 80 - }, - "action": { - "action_type": "AutoRenew" - } - } - ], - "issuer": { - "name": "Self" - }, - "attributes": { - "enabled": true, - "created": 1652724844, - "updated": 1652724844 - } - }, - "pending": { - "id": "https://fakekvurl.vault.azure.net/certificates/certRecover634943320/pending" - } - } - }, - { - "RequestUri": "https://fakekvurl.vault.azure.net/certificates/certRecover634943320?api-version=7.3", - "RequestMethod": "DELETE", - "RequestHeaders": { - "Accept": "application/json", - "Accept-Encoding": "gzip", - "Authorization": "Sanitized", - "User-Agent": "azsdk-go-azcertificates/v0.4.2 (go1.18; Windows_NT)" - }, - "RequestBody": null, - "StatusCode": 200, - "ResponseHeaders": { - "Cache-Control": "no-cache", - "Content-Length": "2508", - "Content-Type": "application/json; charset=utf-8", - "Date": "Mon, 16 May 2022 18:14:14 GMT", - "Expires": "-1", - "Pragma": "no-cache", - "Strict-Transport-Security": "max-age=31536000;includeSubDomains", - "X-Content-Type-Options": "nosniff", - "x-ms-keyvault-network-info": "conn_type=Ipv4;addr=73.83.78.150;act_addr_fam=InterNetwork;", - "x-ms-keyvault-region": "westus2", - "x-ms-keyvault-service-version": "1.9.395.1", - "x-ms-request-id": "aebd6306-3991-46df-ad48-6595f5e97415" - }, - "ResponseBody": { - "recoveryId": "https://fakekvurl.vault.azure.net/deletedcertificates/certRecover634943320", - "deletedDate": 1652724854, - "scheduledPurgeDate": 1653329654, - "id": "https://fakekvurl.vault.azure.net/certificates/certRecover634943320/4de94396c8414ddda6631689bc8b1318", - "kid": "https://fakekvurl.vault.azure.net/keys/certRecover634943320/4de94396c8414ddda6631689bc8b1318", - "sid": "https://fakekvurl.vault.azure.net/secrets/certRecover634943320/4de94396c8414ddda6631689bc8b1318", - "x5t": "g9c_-E1hXxxuo87keXkbC0m1fMs", - "cer": "MIIDNjCCAh6gAwIBAgIQbx1ELlpzRA\u002BFLwESm8U0bTANBgkqhkiG9w0BAQsFADAYMRYwFAYDVQQDEw1EZWZhdWx0UG9saWN5MB4XDTIyMDUxNjE4MDQwOVoXDTIzMDUxNjE4MTQwOVowGDEWMBQGA1UEAxMNRGVmYXVsdFBvbGljeTCCASIwDQYJKoZIhvcNAQEBBQADggEPADCCAQoCggEBAK/0f8/Trjo8Om\u002BtRmNbvWszCa7X8T6RnZkpEmhY0MKuP\u002Bu1u\u002Bn5SnP9arpUR7HFCqjI0DOF0fFhCecp515OriCaCzyZf2eefe0msed0Paek/BocAFYF1peXb3e6A0P6XRNoXyGwZzrZSqF7MrOsHKNnLqY7xAruRwTRdquLg6mcd08OT3pQ2CyJX4\u002BmMLLpQ1V5ejkdOmqdnPZnwqN\u002BOi0JLPQ5J6GVQS8P599DShKlXTKnrL8o0\u002BJeSK56Ux\u002BPJ2MTDPcNAoox7/lVzy5wVaDyV6PB8SHXQvtav7NUAZOjHojP/TCGfXh0E2z7tCjaltcn9pnDD2lGdSoC3QsF1\u002BECAwEAAaN8MHowDgYDVR0PAQH/BAQDAgWgMAkGA1UdEwQCMAAwHQYDVR0lBBYwFAYIKwYBBQUHAwEGCCsGAQUFBwMCMB8GA1UdIwQYMBaAFMCTk0xKx0P/YE3nER\u002B25nUvRRT4MB0GA1UdDgQWBBTAk5NMSsdD/2BN5xEftuZ1L0UU\u002BDANBgkqhkiG9w0BAQsFAAOCAQEAgdSsbmLQ1utH6JaX5AaPgPiYyocEOfRLwEDXkjdvm91efvRwlKGqVwoV85ynxYphkU4CW41Y\u002BV0Xhy37NdJep/wNJR9M\u002B\u002BKYskXQ7RWOws8aTRWtRIBJcW\u002BAW16XIZY0y6R2c7b86odlt9\u002BTMNR9ejg795l/7hR1PE0BmZLQ0MInJ17iPWn9h41KNDobP\u002BOv2ksFsvzsDt0FhJAxmonuvLVAk1g3MrI/QiUAUvywv6Xvu5p7k3SvlM\u002BMEc8jHiDj\u002BhLhMOFqbAmFsqrJeulnsJAElujrT5CvhKGxFEENqSs2SYM8XHzsYRGOP7xCpShjOcb9qKNXE7nRrvHwaU5IsQ==", - "attributes": { - "enabled": true, - "nbf": 1652724249, - "exp": 1684260849, - "created": 1652724849, - "updated": 1652724849, - "recoveryLevel": "CustomizedRecoverable\u002BPurgeable", - "recoverableDays": 7 - }, - "policy": { - "id": "https://fakekvurl.vault.azure.net/certificates/certRecover634943320/policy", - "key_props": { - "exportable": true, - "kty": "RSA", - "key_size": 2048, - "reuse_key": false - }, - "secret_props": { - "contentType": "application/x-pkcs12" - }, - "x509_props": { - "subject": "CN=DefaultPolicy", - "sans": {}, - "ekus": [ - "1.3.6.1.5.5.7.3.1", - "1.3.6.1.5.5.7.3.2" - ], - "key_usage": [ - "digitalSignature", - "keyEncipherment" - ], - "validity_months": 12, - "basic_constraints": { - "ca": false - } - }, - "lifetime_actions": [ - { - "trigger": { - "lifetime_percentage": 80 - }, - "action": { - "action_type": "AutoRenew" - } - } - ], - "issuer": { - "name": "Self" - }, - "attributes": { - "enabled": true, - "created": 1652724844, - "updated": 1652724844 - } - }, - "pending": { - "id": "https://fakekvurl.vault.azure.net/certificates/certRecover634943320/pending" - } - } - }, - { - "RequestUri": "https://fakekvurl.vault.azure.net/deletedcertificates/certRecover634943320?api-version=7.3", - "RequestMethod": "GET", - "RequestHeaders": { - ":method": "GET", - "Accept": "application/json", - "Accept-Encoding": "gzip", - "Authorization": "Sanitized", - "User-Agent": "azsdk-go-azcertificates/v0.4.2 (go1.18; Windows_NT)" - }, - "RequestBody": null, - "StatusCode": 404, - "ResponseHeaders": { - "Cache-Control": "no-cache", - "Content-Length": "104", - "Content-Type": "application/json; charset=utf-8", - "Date": "Mon, 16 May 2022 18:14:14 GMT", - "Expires": "-1", - "Pragma": "no-cache", - "Strict-Transport-Security": "max-age=31536000;includeSubDomains", - "X-Content-Type-Options": "nosniff", - "x-ms-keyvault-network-info": "conn_type=Ipv4;addr=73.83.78.150;act_addr_fam=InterNetwork;", - "x-ms-keyvault-region": "westus2", - "x-ms-keyvault-service-version": "1.9.395.1", - "x-ms-request-id": "4cf3e500-c347-4cb1-b9c9-5571bc461dc5" - }, - "ResponseBody": { - "error": { - "code": "CertificateNotFound", - "message": "Deleted Certificate not found: certRecover634943320" - } - } - }, - { - "RequestUri": "https://fakekvurl.vault.azure.net/deletedcertificates/certRecover634943320?api-version=7.3", - "RequestMethod": "GET", - "RequestHeaders": { - ":method": "GET", - "Accept": "application/json", - "Accept-Encoding": "gzip", - "Authorization": "Sanitized", - "User-Agent": "azsdk-go-azcertificates/v0.4.2 (go1.18; Windows_NT)" - }, - "RequestBody": null, - "StatusCode": 404, - "ResponseHeaders": { - "Cache-Control": "no-cache", - "Content-Length": "104", - "Content-Type": "application/json; charset=utf-8", - "Date": "Mon, 16 May 2022 18:14:15 GMT", - "Expires": "-1", - "Pragma": "no-cache", - "Strict-Transport-Security": "max-age=31536000;includeSubDomains", - "X-Content-Type-Options": "nosniff", - "x-ms-keyvault-network-info": "conn_type=Ipv4;addr=73.83.78.150;act_addr_fam=InterNetwork;", - "x-ms-keyvault-region": "westus2", - "x-ms-keyvault-service-version": "1.9.395.1", - "x-ms-request-id": "3463ff6c-391e-4073-87b9-8602260c7a00" - }, - "ResponseBody": { - "error": { - "code": "CertificateNotFound", - "message": "Deleted Certificate not found: certRecover634943320" - } - } - }, - { - "RequestUri": "https://fakekvurl.vault.azure.net/deletedcertificates/certRecover634943320?api-version=7.3", - "RequestMethod": "GET", - "RequestHeaders": { - ":method": "GET", - "Accept": "application/json", - "Accept-Encoding": "gzip", - "Authorization": "Sanitized", - "User-Agent": "azsdk-go-azcertificates/v0.4.2 (go1.18; Windows_NT)" - }, - "RequestBody": null, - "StatusCode": 404, - "ResponseHeaders": { - "Cache-Control": "no-cache", - "Content-Length": "104", - "Content-Type": "application/json; charset=utf-8", - "Date": "Mon, 16 May 2022 18:14:16 GMT", - "Expires": "-1", - "Pragma": "no-cache", - "Strict-Transport-Security": "max-age=31536000;includeSubDomains", - "X-Content-Type-Options": "nosniff", - "x-ms-keyvault-network-info": "conn_type=Ipv4;addr=73.83.78.150;act_addr_fam=InterNetwork;", - "x-ms-keyvault-region": "westus2", - "x-ms-keyvault-service-version": "1.9.395.1", - "x-ms-request-id": "98adaeff-ee8e-449f-bcda-8f9c506aa4a5" - }, - "ResponseBody": { - "error": { - "code": "CertificateNotFound", - "message": "Deleted Certificate not found: certRecover634943320" - } - } - }, - { - "RequestUri": "https://fakekvurl.vault.azure.net/deletedcertificates/certRecover634943320?api-version=7.3", - "RequestMethod": "GET", - "RequestHeaders": { - ":method": "GET", - "Accept": "application/json", - "Accept-Encoding": "gzip", - "Authorization": "Sanitized", - "User-Agent": "azsdk-go-azcertificates/v0.4.2 (go1.18; Windows_NT)" - }, - "RequestBody": null, - "StatusCode": 404, - "ResponseHeaders": { - "Cache-Control": "no-cache", - "Content-Length": "104", - "Content-Type": "application/json; charset=utf-8", - "Date": "Mon, 16 May 2022 18:14:18 GMT", - "Expires": "-1", - "Pragma": "no-cache", - "Strict-Transport-Security": "max-age=31536000;includeSubDomains", - "X-Content-Type-Options": "nosniff", - "x-ms-keyvault-network-info": "conn_type=Ipv4;addr=73.83.78.150;act_addr_fam=InterNetwork;", - "x-ms-keyvault-region": "westus2", - "x-ms-keyvault-service-version": "1.9.395.1", - "x-ms-request-id": "5e7f7fb3-5c18-415d-a98f-b6a922427313" - }, - "ResponseBody": { - "error": { - "code": "CertificateNotFound", - "message": "Deleted Certificate not found: certRecover634943320" - } - } - }, - { - "RequestUri": "https://fakekvurl.vault.azure.net/deletedcertificates/certRecover634943320?api-version=7.3", - "RequestMethod": "GET", - "RequestHeaders": { - ":method": "GET", - "Accept": "application/json", - "Accept-Encoding": "gzip", - "Authorization": "Sanitized", - "User-Agent": "azsdk-go-azcertificates/v0.4.2 (go1.18; Windows_NT)" - }, - "RequestBody": null, - "StatusCode": 404, - "ResponseHeaders": { - "Cache-Control": "no-cache", - "Content-Length": "104", - "Content-Type": "application/json; charset=utf-8", - "Date": "Mon, 16 May 2022 18:14:19 GMT", - "Expires": "-1", - "Pragma": "no-cache", - "Strict-Transport-Security": "max-age=31536000;includeSubDomains", - "X-Content-Type-Options": "nosniff", - "x-ms-keyvault-network-info": "conn_type=Ipv4;addr=73.83.78.150;act_addr_fam=InterNetwork;", - "x-ms-keyvault-region": "westus2", - "x-ms-keyvault-service-version": "1.9.395.1", - "x-ms-request-id": "35ada808-30fa-493e-b176-3602c18b993a" - }, - "ResponseBody": { - "error": { - "code": "CertificateNotFound", - "message": "Deleted Certificate not found: certRecover634943320" - } - } - }, - { - "RequestUri": "https://fakekvurl.vault.azure.net/deletedcertificates/certRecover634943320?api-version=7.3", - "RequestMethod": "GET", - "RequestHeaders": { - ":method": "GET", - "Accept": "application/json", - "Accept-Encoding": "gzip", - "Authorization": "Sanitized", - "User-Agent": "azsdk-go-azcertificates/v0.4.2 (go1.18; Windows_NT)" - }, - "RequestBody": null, - "StatusCode": 200, - "ResponseHeaders": { - "Cache-Control": "no-cache", - "Content-Length": "2508", - "Content-Type": "application/json; charset=utf-8", - "Date": "Mon, 16 May 2022 18:14:20 GMT", - "Expires": "-1", - "Pragma": "no-cache", - "Strict-Transport-Security": "max-age=31536000;includeSubDomains", - "X-Content-Type-Options": "nosniff", - "x-ms-keyvault-network-info": "conn_type=Ipv4;addr=73.83.78.150;act_addr_fam=InterNetwork;", - "x-ms-keyvault-region": "westus2", - "x-ms-keyvault-service-version": "1.9.395.1", - "x-ms-request-id": "52cf0224-e424-49b8-bbd6-3f404dc43d38" - }, - "ResponseBody": { - "recoveryId": "https://fakekvurl.vault.azure.net/deletedcertificates/certRecover634943320", - "deletedDate": 1652724854, - "scheduledPurgeDate": 1653329654, - "id": "https://fakekvurl.vault.azure.net/certificates/certRecover634943320/4de94396c8414ddda6631689bc8b1318", - "kid": "https://fakekvurl.vault.azure.net/keys/certRecover634943320/4de94396c8414ddda6631689bc8b1318", - "sid": "https://fakekvurl.vault.azure.net/secrets/certRecover634943320/4de94396c8414ddda6631689bc8b1318", - "x5t": "g9c_-E1hXxxuo87keXkbC0m1fMs", - "cer": "MIIDNjCCAh6gAwIBAgIQbx1ELlpzRA\u002BFLwESm8U0bTANBgkqhkiG9w0BAQsFADAYMRYwFAYDVQQDEw1EZWZhdWx0UG9saWN5MB4XDTIyMDUxNjE4MDQwOVoXDTIzMDUxNjE4MTQwOVowGDEWMBQGA1UEAxMNRGVmYXVsdFBvbGljeTCCASIwDQYJKoZIhvcNAQEBBQADggEPADCCAQoCggEBAK/0f8/Trjo8Om\u002BtRmNbvWszCa7X8T6RnZkpEmhY0MKuP\u002Bu1u\u002Bn5SnP9arpUR7HFCqjI0DOF0fFhCecp515OriCaCzyZf2eefe0msed0Paek/BocAFYF1peXb3e6A0P6XRNoXyGwZzrZSqF7MrOsHKNnLqY7xAruRwTRdquLg6mcd08OT3pQ2CyJX4\u002BmMLLpQ1V5ejkdOmqdnPZnwqN\u002BOi0JLPQ5J6GVQS8P599DShKlXTKnrL8o0\u002BJeSK56Ux\u002BPJ2MTDPcNAoox7/lVzy5wVaDyV6PB8SHXQvtav7NUAZOjHojP/TCGfXh0E2z7tCjaltcn9pnDD2lGdSoC3QsF1\u002BECAwEAAaN8MHowDgYDVR0PAQH/BAQDAgWgMAkGA1UdEwQCMAAwHQYDVR0lBBYwFAYIKwYBBQUHAwEGCCsGAQUFBwMCMB8GA1UdIwQYMBaAFMCTk0xKx0P/YE3nER\u002B25nUvRRT4MB0GA1UdDgQWBBTAk5NMSsdD/2BN5xEftuZ1L0UU\u002BDANBgkqhkiG9w0BAQsFAAOCAQEAgdSsbmLQ1utH6JaX5AaPgPiYyocEOfRLwEDXkjdvm91efvRwlKGqVwoV85ynxYphkU4CW41Y\u002BV0Xhy37NdJep/wNJR9M\u002B\u002BKYskXQ7RWOws8aTRWtRIBJcW\u002BAW16XIZY0y6R2c7b86odlt9\u002BTMNR9ejg795l/7hR1PE0BmZLQ0MInJ17iPWn9h41KNDobP\u002BOv2ksFsvzsDt0FhJAxmonuvLVAk1g3MrI/QiUAUvywv6Xvu5p7k3SvlM\u002BMEc8jHiDj\u002BhLhMOFqbAmFsqrJeulnsJAElujrT5CvhKGxFEENqSs2SYM8XHzsYRGOP7xCpShjOcb9qKNXE7nRrvHwaU5IsQ==", - "attributes": { - "enabled": true, - "nbf": 1652724249, - "exp": 1684260849, - "created": 1652724849, - "updated": 1652724849, - "recoveryLevel": "CustomizedRecoverable\u002BPurgeable", - "recoverableDays": 7 - }, - "policy": { - "id": "https://fakekvurl.vault.azure.net/certificates/certRecover634943320/policy", - "key_props": { - "exportable": true, - "kty": "RSA", - "key_size": 2048, - "reuse_key": false - }, - "secret_props": { - "contentType": "application/x-pkcs12" - }, - "x509_props": { - "subject": "CN=DefaultPolicy", - "sans": {}, - "ekus": [ - "1.3.6.1.5.5.7.3.1", - "1.3.6.1.5.5.7.3.2" - ], - "key_usage": [ - "digitalSignature", - "keyEncipherment" - ], - "validity_months": 12, - "basic_constraints": { - "ca": false - } - }, - "lifetime_actions": [ - { - "trigger": { - "lifetime_percentage": 80 - }, - "action": { - "action_type": "AutoRenew" - } - } - ], - "issuer": { - "name": "Self" - }, - "attributes": { - "enabled": true, - "created": 1652724844, - "updated": 1652724844 - } - }, - "pending": { - "id": "https://fakekvurl.vault.azure.net/certificates/certRecover634943320/pending" - } - } - }, - { - "RequestUri": "https://fakekvurl.vault.azure.net/certificates/certRecover634943320/?api-version=7.3", - "RequestMethod": "GET", - "RequestHeaders": { - ":method": "GET", - "Accept": "application/json", - "Accept-Encoding": "gzip", - "Authorization": "Sanitized", - "User-Agent": "azsdk-go-azcertificates/v0.4.2 (go1.18; Windows_NT)" - }, - "RequestBody": null, - "StatusCode": 404, - "ResponseHeaders": { - "Cache-Control": "no-cache", - "Content-Length": "332", - "Content-Type": "application/json; charset=utf-8", - "Date": "Mon, 16 May 2022 18:14:20 GMT", - "Expires": "-1", - "Pragma": "no-cache", - "Strict-Transport-Security": "max-age=31536000;includeSubDomains", - "X-Content-Type-Options": "nosniff", - "x-ms-keyvault-network-info": "conn_type=Ipv4;addr=73.83.78.150;act_addr_fam=InterNetwork;", - "x-ms-keyvault-region": "westus2", - "x-ms-keyvault-service-version": "1.9.395.1", - "x-ms-request-id": "09163c5c-0c7f-4cfa-92ab-a38ac3c766d7" - }, - "ResponseBody": { - "error": { - "code": "CertificateNotFound", - "message": "A certificate with (name/id) certRecover634943320 was not found in this key vault. If you recently deleted this certificate you may be able to recover it using the correct recovery command. For help resolving this issue, please see https://go.microsoft.com/fwlink/?linkid=2125182" - } - } - }, - { - "RequestUri": "https://fakekvurl.vault.azure.net/deletedcertificates/certRecover634943320/recover?api-version=7.3", - "RequestMethod": "POST", - "RequestHeaders": { - ":method": "POST", - "Accept": "application/json", - "Accept-Encoding": "gzip", - "Authorization": "Sanitized", - "Content-Length": "0", - "User-Agent": "azsdk-go-azcertificates/v0.4.2 (go1.18; Windows_NT)" - }, - "RequestBody": null, - "StatusCode": 200, - "ResponseHeaders": { - "Cache-Control": "no-cache", - "Content-Length": "2361", - "Content-Type": "application/json; charset=utf-8", - "Date": "Mon, 16 May 2022 18:14:20 GMT", - "Expires": "-1", - "Pragma": "no-cache", - "Strict-Transport-Security": "max-age=31536000;includeSubDomains", - "X-Content-Type-Options": "nosniff", - "x-ms-keyvault-network-info": "conn_type=Ipv4;addr=73.83.78.150;act_addr_fam=InterNetwork;", - "x-ms-keyvault-region": "westus2", - "x-ms-keyvault-service-version": "1.9.395.1", - "x-ms-request-id": "9f8dee74-3fea-4b52-b713-36591f49ae34" - }, - "ResponseBody": { - "id": "https://fakekvurl.vault.azure.net/certificates/certRecover634943320/4de94396c8414ddda6631689bc8b1318", - "kid": "https://fakekvurl.vault.azure.net/keys/certRecover634943320/4de94396c8414ddda6631689bc8b1318", - "sid": "https://fakekvurl.vault.azure.net/secrets/certRecover634943320/4de94396c8414ddda6631689bc8b1318", - "x5t": "g9c_-E1hXxxuo87keXkbC0m1fMs", - "cer": "MIIDNjCCAh6gAwIBAgIQbx1ELlpzRA\u002BFLwESm8U0bTANBgkqhkiG9w0BAQsFADAYMRYwFAYDVQQDEw1EZWZhdWx0UG9saWN5MB4XDTIyMDUxNjE4MDQwOVoXDTIzMDUxNjE4MTQwOVowGDEWMBQGA1UEAxMNRGVmYXVsdFBvbGljeTCCASIwDQYJKoZIhvcNAQEBBQADggEPADCCAQoCggEBAK/0f8/Trjo8Om\u002BtRmNbvWszCa7X8T6RnZkpEmhY0MKuP\u002Bu1u\u002Bn5SnP9arpUR7HFCqjI0DOF0fFhCecp515OriCaCzyZf2eefe0msed0Paek/BocAFYF1peXb3e6A0P6XRNoXyGwZzrZSqF7MrOsHKNnLqY7xAruRwTRdquLg6mcd08OT3pQ2CyJX4\u002BmMLLpQ1V5ejkdOmqdnPZnwqN\u002BOi0JLPQ5J6GVQS8P599DShKlXTKnrL8o0\u002BJeSK56Ux\u002BPJ2MTDPcNAoox7/lVzy5wVaDyV6PB8SHXQvtav7NUAZOjHojP/TCGfXh0E2z7tCjaltcn9pnDD2lGdSoC3QsF1\u002BECAwEAAaN8MHowDgYDVR0PAQH/BAQDAgWgMAkGA1UdEwQCMAAwHQYDVR0lBBYwFAYIKwYBBQUHAwEGCCsGAQUFBwMCMB8GA1UdIwQYMBaAFMCTk0xKx0P/YE3nER\u002B25nUvRRT4MB0GA1UdDgQWBBTAk5NMSsdD/2BN5xEftuZ1L0UU\u002BDANBgkqhkiG9w0BAQsFAAOCAQEAgdSsbmLQ1utH6JaX5AaPgPiYyocEOfRLwEDXkjdvm91efvRwlKGqVwoV85ynxYphkU4CW41Y\u002BV0Xhy37NdJep/wNJR9M\u002B\u002BKYskXQ7RWOws8aTRWtRIBJcW\u002BAW16XIZY0y6R2c7b86odlt9\u002BTMNR9ejg795l/7hR1PE0BmZLQ0MInJ17iPWn9h41KNDobP\u002BOv2ksFsvzsDt0FhJAxmonuvLVAk1g3MrI/QiUAUvywv6Xvu5p7k3SvlM\u002BMEc8jHiDj\u002BhLhMOFqbAmFsqrJeulnsJAElujrT5CvhKGxFEENqSs2SYM8XHzsYRGOP7xCpShjOcb9qKNXE7nRrvHwaU5IsQ==", - "attributes": { - "enabled": true, - "nbf": 1652724249, - "exp": 1684260849, - "created": 1652724849, - "updated": 1652724849, - "recoveryLevel": "CustomizedRecoverable\u002BPurgeable", - "recoverableDays": 7 - }, - "policy": { - "id": "https://fakekvurl.vault.azure.net/certificates/certRecover634943320/policy", - "key_props": { - "exportable": true, - "kty": "RSA", - "key_size": 2048, - "reuse_key": false - }, - "secret_props": { - "contentType": "application/x-pkcs12" - }, - "x509_props": { - "subject": "CN=DefaultPolicy", - "sans": {}, - "ekus": [ - "1.3.6.1.5.5.7.3.1", - "1.3.6.1.5.5.7.3.2" - ], - "key_usage": [ - "digitalSignature", - "keyEncipherment" - ], - "validity_months": 12, - "basic_constraints": { - "ca": false - } - }, - "lifetime_actions": [ - { - "trigger": { - "lifetime_percentage": 80 - }, - "action": { - "action_type": "AutoRenew" - } - } - ], - "issuer": { - "name": "Self" - }, - "attributes": { - "enabled": true, - "created": 1652724844, - "updated": 1652724844 - } - }, - "pending": { - "id": "https://fakekvurl.vault.azure.net/certificates/certRecover634943320/pending" - } - } - }, - { - "RequestUri": "https://fakekvurl.vault.azure.net/certificates/certRecover634943320/?api-version=7.3", - "RequestMethod": "GET", - "RequestHeaders": { - ":method": "GET", - "Accept": "application/json", - "Accept-Encoding": "gzip", - "Authorization": "Sanitized", - "User-Agent": "azsdk-go-azcertificates/v0.4.2 (go1.18; Windows_NT)" - }, - "RequestBody": null, - "StatusCode": 404, - "ResponseHeaders": { - "Cache-Control": "no-cache", - "Content-Length": "332", - "Content-Type": "application/json; charset=utf-8", - "Date": "Mon, 16 May 2022 18:14:20 GMT", - "Expires": "-1", - "Pragma": "no-cache", - "Strict-Transport-Security": "max-age=31536000;includeSubDomains", - "X-Content-Type-Options": "nosniff", - "x-ms-keyvault-network-info": "conn_type=Ipv4;addr=73.83.78.150;act_addr_fam=InterNetwork;", - "x-ms-keyvault-region": "westus2", - "x-ms-keyvault-service-version": "1.9.395.1", - "x-ms-request-id": "4aca451b-21f3-4f8c-98f3-60df220529a0" - }, - "ResponseBody": { - "error": { - "code": "CertificateNotFound", - "message": "A certificate with (name/id) certRecover634943320 was not found in this key vault. If you recently deleted this certificate you may be able to recover it using the correct recovery command. For help resolving this issue, please see https://go.microsoft.com/fwlink/?linkid=2125182" - } - } - }, - { - "RequestUri": "https://fakekvurl.vault.azure.net/certificates/certRecover634943320/?api-version=7.3", - "RequestMethod": "GET", - "RequestHeaders": { - ":method": "GET", - "Accept": "application/json", - "Accept-Encoding": "gzip", - "Authorization": "Sanitized", - "User-Agent": "azsdk-go-azcertificates/v0.4.2 (go1.18; Windows_NT)" - }, - "RequestBody": null, - "StatusCode": 404, - "ResponseHeaders": { - "Cache-Control": "no-cache", - "Content-Length": "332", - "Content-Type": "application/json; charset=utf-8", - "Date": "Mon, 16 May 2022 18:14:21 GMT", - "Expires": "-1", - "Pragma": "no-cache", - "Strict-Transport-Security": "max-age=31536000;includeSubDomains", - "X-Content-Type-Options": "nosniff", - "x-ms-keyvault-network-info": "conn_type=Ipv4;addr=73.83.78.150;act_addr_fam=InterNetwork;", - "x-ms-keyvault-region": "westus2", - "x-ms-keyvault-service-version": "1.9.395.1", - "x-ms-request-id": "4ed57538-40b5-4dfc-a9d3-3a29d3c25afd" - }, - "ResponseBody": { - "error": { - "code": "CertificateNotFound", - "message": "A certificate with (name/id) certRecover634943320 was not found in this key vault. If you recently deleted this certificate you may be able to recover it using the correct recovery command. For help resolving this issue, please see https://go.microsoft.com/fwlink/?linkid=2125182" - } - } - }, - { - "RequestUri": "https://fakekvurl.vault.azure.net/certificates/certRecover634943320/?api-version=7.3", - "RequestMethod": "GET", - "RequestHeaders": { - ":method": "GET", - "Accept": "application/json", - "Accept-Encoding": "gzip", - "Authorization": "Sanitized", - "User-Agent": "azsdk-go-azcertificates/v0.4.2 (go1.18; Windows_NT)" - }, - "RequestBody": null, - "StatusCode": 404, - "ResponseHeaders": { - "Cache-Control": "no-cache", - "Content-Length": "332", - "Content-Type": "application/json; charset=utf-8", - "Date": "Mon, 16 May 2022 18:14:22 GMT", - "Expires": "-1", - "Pragma": "no-cache", - "Strict-Transport-Security": "max-age=31536000;includeSubDomains", - "X-Content-Type-Options": "nosniff", - "x-ms-keyvault-network-info": "conn_type=Ipv4;addr=73.83.78.150;act_addr_fam=InterNetwork;", - "x-ms-keyvault-region": "westus2", - "x-ms-keyvault-service-version": "1.9.395.1", - "x-ms-request-id": "2ba0ff6f-9971-41fb-aa49-82aff5daabf4" - }, - "ResponseBody": { - "error": { - "code": "CertificateNotFound", - "message": "A certificate with (name/id) certRecover634943320 was not found in this key vault. If you recently deleted this certificate you may be able to recover it using the correct recovery command. For help resolving this issue, please see https://go.microsoft.com/fwlink/?linkid=2125182" - } - } - }, - { - "RequestUri": "https://fakekvurl.vault.azure.net/certificates/certRecover634943320/?api-version=7.3", - "RequestMethod": "GET", - "RequestHeaders": { - ":method": "GET", - "Accept": "application/json", - "Accept-Encoding": "gzip", - "Authorization": "Sanitized", - "User-Agent": "azsdk-go-azcertificates/v0.4.2 (go1.18; Windows_NT)" - }, - "RequestBody": null, - "StatusCode": 404, - "ResponseHeaders": { - "Cache-Control": "no-cache", - "Content-Length": "332", - "Content-Type": "application/json; charset=utf-8", - "Date": "Mon, 16 May 2022 18:14:23 GMT", - "Expires": "-1", - "Pragma": "no-cache", - "Strict-Transport-Security": "max-age=31536000;includeSubDomains", - "X-Content-Type-Options": "nosniff", - "x-ms-keyvault-network-info": "conn_type=Ipv4;addr=73.83.78.150;act_addr_fam=InterNetwork;", - "x-ms-keyvault-region": "westus2", - "x-ms-keyvault-service-version": "1.9.395.1", - "x-ms-request-id": "7707bf07-b2c5-4e8f-9cef-065be1600581" - }, - "ResponseBody": { - "error": { - "code": "CertificateNotFound", - "message": "A certificate with (name/id) certRecover634943320 was not found in this key vault. If you recently deleted this certificate you may be able to recover it using the correct recovery command. For help resolving this issue, please see https://go.microsoft.com/fwlink/?linkid=2125182" - } - } - }, - { - "RequestUri": "https://fakekvurl.vault.azure.net/certificates/certRecover634943320/?api-version=7.3", - "RequestMethod": "GET", - "RequestHeaders": { - ":method": "GET", - "Accept": "application/json", - "Accept-Encoding": "gzip", - "Authorization": "Sanitized", - "User-Agent": "azsdk-go-azcertificates/v0.4.2 (go1.18; Windows_NT)" - }, - "RequestBody": null, - "StatusCode": 404, - "ResponseHeaders": { - "Cache-Control": "no-cache", - "Content-Length": "332", - "Content-Type": "application/json; charset=utf-8", - "Date": "Mon, 16 May 2022 18:14:24 GMT", - "Expires": "-1", - "Pragma": "no-cache", - "Strict-Transport-Security": "max-age=31536000;includeSubDomains", - "X-Content-Type-Options": "nosniff", - "x-ms-keyvault-network-info": "conn_type=Ipv4;addr=73.83.78.150;act_addr_fam=InterNetwork;", - "x-ms-keyvault-region": "westus2", - "x-ms-keyvault-service-version": "1.9.395.1", - "x-ms-request-id": "38911f54-1de8-4143-a2e9-34be20318e0c" - }, - "ResponseBody": { - "error": { - "code": "CertificateNotFound", - "message": "A certificate with (name/id) certRecover634943320 was not found in this key vault. If you recently deleted this certificate you may be able to recover it using the correct recovery command. For help resolving this issue, please see https://go.microsoft.com/fwlink/?linkid=2125182" - } - } - }, - { - "RequestUri": "https://fakekvurl.vault.azure.net/certificates/certRecover634943320/?api-version=7.3", - "RequestMethod": "GET", - "RequestHeaders": { - ":method": "GET", - "Accept": "application/json", - "Accept-Encoding": "gzip", - "Authorization": "Sanitized", - "User-Agent": "azsdk-go-azcertificates/v0.4.2 (go1.18; Windows_NT)" - }, - "RequestBody": null, - "StatusCode": 404, - "ResponseHeaders": { - "Cache-Control": "no-cache", - "Content-Length": "332", - "Content-Type": "application/json; charset=utf-8", - "Date": "Mon, 16 May 2022 18:14:25 GMT", - "Expires": "-1", - "Pragma": "no-cache", - "Strict-Transport-Security": "max-age=31536000;includeSubDomains", - "X-Content-Type-Options": "nosniff", - "x-ms-keyvault-network-info": "conn_type=Ipv4;addr=73.83.78.150;act_addr_fam=InterNetwork;", - "x-ms-keyvault-region": "westus2", - "x-ms-keyvault-service-version": "1.9.395.1", - "x-ms-request-id": "f97f14cc-67e1-4835-9d34-43fcab4026f9" - }, - "ResponseBody": { - "error": { - "code": "CertificateNotFound", - "message": "A certificate with (name/id) certRecover634943320 was not found in this key vault. If you recently deleted this certificate you may be able to recover it using the correct recovery command. For help resolving this issue, please see https://go.microsoft.com/fwlink/?linkid=2125182" - } - } - }, - { - "RequestUri": "https://fakekvurl.vault.azure.net/certificates/certRecover634943320/?api-version=7.3", - "RequestMethod": "GET", - "RequestHeaders": { - ":method": "GET", - "Accept": "application/json", - "Accept-Encoding": "gzip", - "Authorization": "Sanitized", - "User-Agent": "azsdk-go-azcertificates/v0.4.2 (go1.18; Windows_NT)" - }, - "RequestBody": null, - "StatusCode": 404, - "ResponseHeaders": { - "Cache-Control": "no-cache", - "Content-Length": "332", - "Content-Type": "application/json; charset=utf-8", - "Date": "Mon, 16 May 2022 18:14:26 GMT", - "Expires": "-1", - "Pragma": "no-cache", - "Strict-Transport-Security": "max-age=31536000;includeSubDomains", - "X-Content-Type-Options": "nosniff", - "x-ms-keyvault-network-info": "conn_type=Ipv4;addr=73.83.78.150;act_addr_fam=InterNetwork;", - "x-ms-keyvault-region": "westus2", - "x-ms-keyvault-service-version": "1.9.395.1", - "x-ms-request-id": "e9d0c401-4b88-4aab-8a14-32cde60a650c" - }, - "ResponseBody": { - "error": { - "code": "CertificateNotFound", - "message": "A certificate with (name/id) certRecover634943320 was not found in this key vault. If you recently deleted this certificate you may be able to recover it using the correct recovery command. For help resolving this issue, please see https://go.microsoft.com/fwlink/?linkid=2125182" - } - } - }, - { - "RequestUri": "https://fakekvurl.vault.azure.net/certificates/certRecover634943320/?api-version=7.3", - "RequestMethod": "GET", - "RequestHeaders": { - ":method": "GET", - "Accept": "application/json", - "Accept-Encoding": "gzip", - "Authorization": "Sanitized", - "User-Agent": "azsdk-go-azcertificates/v0.4.2 (go1.18; Windows_NT)" - }, - "RequestBody": null, - "StatusCode": 404, - "ResponseHeaders": { - "Cache-Control": "no-cache", - "Content-Length": "332", - "Content-Type": "application/json; charset=utf-8", - "Date": "Mon, 16 May 2022 18:14:27 GMT", - "Expires": "-1", - "Pragma": "no-cache", - "Strict-Transport-Security": "max-age=31536000;includeSubDomains", - "X-Content-Type-Options": "nosniff", - "x-ms-keyvault-network-info": "conn_type=Ipv4;addr=73.83.78.150;act_addr_fam=InterNetwork;", - "x-ms-keyvault-region": "westus2", - "x-ms-keyvault-service-version": "1.9.395.1", - "x-ms-request-id": "3033e8d1-78f0-4092-b452-51fbc9401f90" - }, - "ResponseBody": { - "error": { - "code": "CertificateNotFound", - "message": "A certificate with (name/id) certRecover634943320 was not found in this key vault. If you recently deleted this certificate you may be able to recover it using the correct recovery command. For help resolving this issue, please see https://go.microsoft.com/fwlink/?linkid=2125182" - } - } - }, - { - "RequestUri": "https://fakekvurl.vault.azure.net/certificates/certRecover634943320/?api-version=7.3", - "RequestMethod": "GET", - "RequestHeaders": { - ":method": "GET", - "Accept": "application/json", - "Accept-Encoding": "gzip", - "Authorization": "Sanitized", - "User-Agent": "azsdk-go-azcertificates/v0.4.2 (go1.18; Windows_NT)" - }, - "RequestBody": null, - "StatusCode": 200, - "ResponseHeaders": { - "Cache-Control": "no-cache", - "Content-Length": "2361", - "Content-Type": "application/json; charset=utf-8", - "Date": "Mon, 16 May 2022 18:14:28 GMT", - "Expires": "-1", - "Pragma": "no-cache", - "Strict-Transport-Security": "max-age=31536000;includeSubDomains", - "X-Content-Type-Options": "nosniff", - "x-ms-keyvault-network-info": "conn_type=Ipv4;addr=73.83.78.150;act_addr_fam=InterNetwork;", - "x-ms-keyvault-region": "westus2", - "x-ms-keyvault-service-version": "1.9.395.1", - "x-ms-request-id": "78fc47af-1943-4647-8460-5fac23c75aad" - }, - "ResponseBody": { - "id": "https://fakekvurl.vault.azure.net/certificates/certRecover634943320/4de94396c8414ddda6631689bc8b1318", - "kid": "https://fakekvurl.vault.azure.net/keys/certRecover634943320/4de94396c8414ddda6631689bc8b1318", - "sid": "https://fakekvurl.vault.azure.net/secrets/certRecover634943320/4de94396c8414ddda6631689bc8b1318", - "x5t": "g9c_-E1hXxxuo87keXkbC0m1fMs", - "cer": "MIIDNjCCAh6gAwIBAgIQbx1ELlpzRA\u002BFLwESm8U0bTANBgkqhkiG9w0BAQsFADAYMRYwFAYDVQQDEw1EZWZhdWx0UG9saWN5MB4XDTIyMDUxNjE4MDQwOVoXDTIzMDUxNjE4MTQwOVowGDEWMBQGA1UEAxMNRGVmYXVsdFBvbGljeTCCASIwDQYJKoZIhvcNAQEBBQADggEPADCCAQoCggEBAK/0f8/Trjo8Om\u002BtRmNbvWszCa7X8T6RnZkpEmhY0MKuP\u002Bu1u\u002Bn5SnP9arpUR7HFCqjI0DOF0fFhCecp515OriCaCzyZf2eefe0msed0Paek/BocAFYF1peXb3e6A0P6XRNoXyGwZzrZSqF7MrOsHKNnLqY7xAruRwTRdquLg6mcd08OT3pQ2CyJX4\u002BmMLLpQ1V5ejkdOmqdnPZnwqN\u002BOi0JLPQ5J6GVQS8P599DShKlXTKnrL8o0\u002BJeSK56Ux\u002BPJ2MTDPcNAoox7/lVzy5wVaDyV6PB8SHXQvtav7NUAZOjHojP/TCGfXh0E2z7tCjaltcn9pnDD2lGdSoC3QsF1\u002BECAwEAAaN8MHowDgYDVR0PAQH/BAQDAgWgMAkGA1UdEwQCMAAwHQYDVR0lBBYwFAYIKwYBBQUHAwEGCCsGAQUFBwMCMB8GA1UdIwQYMBaAFMCTk0xKx0P/YE3nER\u002B25nUvRRT4MB0GA1UdDgQWBBTAk5NMSsdD/2BN5xEftuZ1L0UU\u002BDANBgkqhkiG9w0BAQsFAAOCAQEAgdSsbmLQ1utH6JaX5AaPgPiYyocEOfRLwEDXkjdvm91efvRwlKGqVwoV85ynxYphkU4CW41Y\u002BV0Xhy37NdJep/wNJR9M\u002B\u002BKYskXQ7RWOws8aTRWtRIBJcW\u002BAW16XIZY0y6R2c7b86odlt9\u002BTMNR9ejg795l/7hR1PE0BmZLQ0MInJ17iPWn9h41KNDobP\u002BOv2ksFsvzsDt0FhJAxmonuvLVAk1g3MrI/QiUAUvywv6Xvu5p7k3SvlM\u002BMEc8jHiDj\u002BhLhMOFqbAmFsqrJeulnsJAElujrT5CvhKGxFEENqSs2SYM8XHzsYRGOP7xCpShjOcb9qKNXE7nRrvHwaU5IsQ==", - "attributes": { - "enabled": true, - "nbf": 1652724249, - "exp": 1684260849, - "created": 1652724849, - "updated": 1652724849, - "recoveryLevel": "CustomizedRecoverable\u002BPurgeable", - "recoverableDays": 7 - }, - "policy": { - "id": "https://fakekvurl.vault.azure.net/certificates/certRecover634943320/policy", - "key_props": { - "exportable": true, - "kty": "RSA", - "key_size": 2048, - "reuse_key": false - }, - "secret_props": { - "contentType": "application/x-pkcs12" - }, - "x509_props": { - "subject": "CN=DefaultPolicy", - "sans": {}, - "ekus": [ - "1.3.6.1.5.5.7.3.1", - "1.3.6.1.5.5.7.3.2" - ], - "key_usage": [ - "digitalSignature", - "keyEncipherment" - ], - "validity_months": 12, - "basic_constraints": { - "ca": false - } - }, - "lifetime_actions": [ - { - "trigger": { - "lifetime_percentage": 80 - }, - "action": { - "action_type": "AutoRenew" - } - } - ], - "issuer": { - "name": "Self" - }, - "attributes": { - "enabled": true, - "created": 1652724844, - "updated": 1652724844 - } - }, - "pending": { - "id": "https://fakekvurl.vault.azure.net/certificates/certRecover634943320/pending" - } - } - }, - { - "RequestUri": "https://fakekvurl.vault.azure.net/certificates/certRecover634943320?api-version=7.3", - "RequestMethod": "DELETE", - "RequestHeaders": { - "Accept": "application/json", - "Accept-Encoding": "gzip", - "Authorization": "Sanitized", - "User-Agent": "azsdk-go-azcertificates/v0.4.2 (go1.18; Windows_NT)" - }, - "RequestBody": null, - "StatusCode": 200, - "ResponseHeaders": { - "Cache-Control": "no-cache", - "Content-Length": "2508", - "Content-Type": "application/json; charset=utf-8", - "Date": "Mon, 16 May 2022 18:14:28 GMT", - "Expires": "-1", - "Pragma": "no-cache", - "Strict-Transport-Security": "max-age=31536000;includeSubDomains", - "X-Content-Type-Options": "nosniff", - "x-ms-keyvault-network-info": "conn_type=Ipv4;addr=73.83.78.150;act_addr_fam=InterNetwork;", - "x-ms-keyvault-region": "westus2", - "x-ms-keyvault-service-version": "1.9.395.1", - "x-ms-request-id": "bddaf8f7-f909-4ee1-8eb9-26d49277b48a" - }, - "ResponseBody": { - "recoveryId": "https://fakekvurl.vault.azure.net/deletedcertificates/certRecover634943320", - "deletedDate": 1652724869, - "scheduledPurgeDate": 1653329669, - "id": "https://fakekvurl.vault.azure.net/certificates/certRecover634943320/4de94396c8414ddda6631689bc8b1318", - "kid": "https://fakekvurl.vault.azure.net/keys/certRecover634943320/4de94396c8414ddda6631689bc8b1318", - "sid": "https://fakekvurl.vault.azure.net/secrets/certRecover634943320/4de94396c8414ddda6631689bc8b1318", - "x5t": "g9c_-E1hXxxuo87keXkbC0m1fMs", - "cer": "MIIDNjCCAh6gAwIBAgIQbx1ELlpzRA\u002BFLwESm8U0bTANBgkqhkiG9w0BAQsFADAYMRYwFAYDVQQDEw1EZWZhdWx0UG9saWN5MB4XDTIyMDUxNjE4MDQwOVoXDTIzMDUxNjE4MTQwOVowGDEWMBQGA1UEAxMNRGVmYXVsdFBvbGljeTCCASIwDQYJKoZIhvcNAQEBBQADggEPADCCAQoCggEBAK/0f8/Trjo8Om\u002BtRmNbvWszCa7X8T6RnZkpEmhY0MKuP\u002Bu1u\u002Bn5SnP9arpUR7HFCqjI0DOF0fFhCecp515OriCaCzyZf2eefe0msed0Paek/BocAFYF1peXb3e6A0P6XRNoXyGwZzrZSqF7MrOsHKNnLqY7xAruRwTRdquLg6mcd08OT3pQ2CyJX4\u002BmMLLpQ1V5ejkdOmqdnPZnwqN\u002BOi0JLPQ5J6GVQS8P599DShKlXTKnrL8o0\u002BJeSK56Ux\u002BPJ2MTDPcNAoox7/lVzy5wVaDyV6PB8SHXQvtav7NUAZOjHojP/TCGfXh0E2z7tCjaltcn9pnDD2lGdSoC3QsF1\u002BECAwEAAaN8MHowDgYDVR0PAQH/BAQDAgWgMAkGA1UdEwQCMAAwHQYDVR0lBBYwFAYIKwYBBQUHAwEGCCsGAQUFBwMCMB8GA1UdIwQYMBaAFMCTk0xKx0P/YE3nER\u002B25nUvRRT4MB0GA1UdDgQWBBTAk5NMSsdD/2BN5xEftuZ1L0UU\u002BDANBgkqhkiG9w0BAQsFAAOCAQEAgdSsbmLQ1utH6JaX5AaPgPiYyocEOfRLwEDXkjdvm91efvRwlKGqVwoV85ynxYphkU4CW41Y\u002BV0Xhy37NdJep/wNJR9M\u002B\u002BKYskXQ7RWOws8aTRWtRIBJcW\u002BAW16XIZY0y6R2c7b86odlt9\u002BTMNR9ejg795l/7hR1PE0BmZLQ0MInJ17iPWn9h41KNDobP\u002BOv2ksFsvzsDt0FhJAxmonuvLVAk1g3MrI/QiUAUvywv6Xvu5p7k3SvlM\u002BMEc8jHiDj\u002BhLhMOFqbAmFsqrJeulnsJAElujrT5CvhKGxFEENqSs2SYM8XHzsYRGOP7xCpShjOcb9qKNXE7nRrvHwaU5IsQ==", - "attributes": { - "enabled": true, - "nbf": 1652724249, - "exp": 1684260849, - "created": 1652724849, - "updated": 1652724849, - "recoveryLevel": "CustomizedRecoverable\u002BPurgeable", - "recoverableDays": 7 - }, - "policy": { - "id": "https://fakekvurl.vault.azure.net/certificates/certRecover634943320/policy", - "key_props": { - "exportable": true, - "kty": "RSA", - "key_size": 2048, - "reuse_key": false - }, - "secret_props": { - "contentType": "application/x-pkcs12" - }, - "x509_props": { - "subject": "CN=DefaultPolicy", - "sans": {}, - "ekus": [ - "1.3.6.1.5.5.7.3.1", - "1.3.6.1.5.5.7.3.2" - ], - "key_usage": [ - "digitalSignature", - "keyEncipherment" - ], - "validity_months": 12, - "basic_constraints": { - "ca": false - } - }, - "lifetime_actions": [ - { - "trigger": { - "lifetime_percentage": 80 - }, - "action": { - "action_type": "AutoRenew" - } - } - ], - "issuer": { - "name": "Self" - }, - "attributes": { - "enabled": true, - "created": 1652724844, - "updated": 1652724844 - } - }, - "pending": { - "id": "https://fakekvurl.vault.azure.net/certificates/certRecover634943320/pending" - } - } - }, - { - "RequestUri": "https://fakekvurl.vault.azure.net/deletedcertificates/certRecover634943320?api-version=7.3", - "RequestMethod": "GET", - "RequestHeaders": { - ":method": "GET", - "Accept": "application/json", - "Accept-Encoding": "gzip", - "Authorization": "Sanitized", - "User-Agent": "azsdk-go-azcertificates/v0.4.2 (go1.18; Windows_NT)" - }, - "RequestBody": null, - "StatusCode": 404, - "ResponseHeaders": { - "Cache-Control": "no-cache", - "Content-Length": "104", - "Content-Type": "application/json; charset=utf-8", - "Date": "Mon, 16 May 2022 18:14:28 GMT", - "Expires": "-1", - "Pragma": "no-cache", - "Strict-Transport-Security": "max-age=31536000;includeSubDomains", - "X-Content-Type-Options": "nosniff", - "x-ms-keyvault-network-info": "conn_type=Ipv4;addr=73.83.78.150;act_addr_fam=InterNetwork;", - "x-ms-keyvault-region": "westus2", - "x-ms-keyvault-service-version": "1.9.395.1", - "x-ms-request-id": "0093b3d8-b247-4c84-98c4-52ce0e011f8a" - }, - "ResponseBody": { - "error": { - "code": "CertificateNotFound", - "message": "Deleted Certificate not found: certRecover634943320" - } - } - }, - { - "RequestUri": "https://fakekvurl.vault.azure.net/deletedcertificates/certRecover634943320?api-version=7.3", - "RequestMethod": "GET", - "RequestHeaders": { - ":method": "GET", - "Accept": "application/json", - "Accept-Encoding": "gzip", - "Authorization": "Sanitized", - "User-Agent": "azsdk-go-azcertificates/v0.4.2 (go1.18; Windows_NT)" - }, - "RequestBody": null, - "StatusCode": 404, - "ResponseHeaders": { - "Cache-Control": "no-cache", - "Content-Length": "104", - "Content-Type": "application/json; charset=utf-8", - "Date": "Mon, 16 May 2022 18:14:30 GMT", - "Expires": "-1", - "Pragma": "no-cache", - "Strict-Transport-Security": "max-age=31536000;includeSubDomains", - "X-Content-Type-Options": "nosniff", - "x-ms-keyvault-network-info": "conn_type=Ipv4;addr=73.83.78.150;act_addr_fam=InterNetwork;", - "x-ms-keyvault-region": "westus2", - "x-ms-keyvault-service-version": "1.9.395.1", - "x-ms-request-id": "f53ad949-6b0d-43bc-8d20-726ae787ad3a" - }, - "ResponseBody": { - "error": { - "code": "CertificateNotFound", - "message": "Deleted Certificate not found: certRecover634943320" - } - } - }, - { - "RequestUri": "https://fakekvurl.vault.azure.net/deletedcertificates/certRecover634943320?api-version=7.3", - "RequestMethod": "GET", - "RequestHeaders": { - ":method": "GET", - "Accept": "application/json", - "Accept-Encoding": "gzip", - "Authorization": "Sanitized", - "User-Agent": "azsdk-go-azcertificates/v0.4.2 (go1.18; Windows_NT)" - }, - "RequestBody": null, - "StatusCode": 404, - "ResponseHeaders": { - "Cache-Control": "no-cache", - "Content-Length": "104", - "Content-Type": "application/json; charset=utf-8", - "Date": "Mon, 16 May 2022 18:14:31 GMT", - "Expires": "-1", - "Pragma": "no-cache", - "Strict-Transport-Security": "max-age=31536000;includeSubDomains", - "X-Content-Type-Options": "nosniff", - "x-ms-keyvault-network-info": "conn_type=Ipv4;addr=73.83.78.150;act_addr_fam=InterNetwork;", - "x-ms-keyvault-region": "westus2", - "x-ms-keyvault-service-version": "1.9.395.1", - "x-ms-request-id": "a5de00ff-fcf8-4c27-81b4-1000adbbeacd" - }, - "ResponseBody": { - "error": { - "code": "CertificateNotFound", - "message": "Deleted Certificate not found: certRecover634943320" - } - } - }, - { - "RequestUri": "https://fakekvurl.vault.azure.net/deletedcertificates/certRecover634943320?api-version=7.3", - "RequestMethod": "GET", - "RequestHeaders": { - ":method": "GET", - "Accept": "application/json", - "Accept-Encoding": "gzip", - "Authorization": "Sanitized", - "User-Agent": "azsdk-go-azcertificates/v0.4.2 (go1.18; Windows_NT)" - }, - "RequestBody": null, - "StatusCode": 404, - "ResponseHeaders": { - "Cache-Control": "no-cache", - "Content-Length": "104", - "Content-Type": "application/json; charset=utf-8", - "Date": "Mon, 16 May 2022 18:14:32 GMT", - "Expires": "-1", - "Pragma": "no-cache", - "Strict-Transport-Security": "max-age=31536000;includeSubDomains", - "X-Content-Type-Options": "nosniff", - "x-ms-keyvault-network-info": "conn_type=Ipv4;addr=73.83.78.150;act_addr_fam=InterNetwork;", - "x-ms-keyvault-region": "westus2", - "x-ms-keyvault-service-version": "1.9.395.1", - "x-ms-request-id": "25fb499e-4809-4974-a50f-6fef652be28c" - }, - "ResponseBody": { - "error": { - "code": "CertificateNotFound", - "message": "Deleted Certificate not found: certRecover634943320" - } - } - }, - { - "RequestUri": "https://fakekvurl.vault.azure.net/deletedcertificates/certRecover634943320?api-version=7.3", - "RequestMethod": "GET", - "RequestHeaders": { - ":method": "GET", - "Accept": "application/json", - "Accept-Encoding": "gzip", - "Authorization": "Sanitized", - "User-Agent": "azsdk-go-azcertificates/v0.4.2 (go1.18; Windows_NT)" - }, - "RequestBody": null, - "StatusCode": 404, - "ResponseHeaders": { - "Cache-Control": "no-cache", - "Content-Length": "104", - "Content-Type": "application/json; charset=utf-8", - "Date": "Mon, 16 May 2022 18:14:33 GMT", - "Expires": "-1", - "Pragma": "no-cache", - "Strict-Transport-Security": "max-age=31536000;includeSubDomains", - "X-Content-Type-Options": "nosniff", - "x-ms-keyvault-network-info": "conn_type=Ipv4;addr=73.83.78.150;act_addr_fam=InterNetwork;", - "x-ms-keyvault-region": "westus2", - "x-ms-keyvault-service-version": "1.9.395.1", - "x-ms-request-id": "8de74d74-3ecf-4cdc-9c33-56c84cd22dcc" - }, - "ResponseBody": { - "error": { - "code": "CertificateNotFound", - "message": "Deleted Certificate not found: certRecover634943320" - } - } - }, - { - "RequestUri": "https://fakekvurl.vault.azure.net/deletedcertificates/certRecover634943320?api-version=7.3", - "RequestMethod": "GET", - "RequestHeaders": { - ":method": "GET", - "Accept": "application/json", - "Accept-Encoding": "gzip", - "Authorization": "Sanitized", - "User-Agent": "azsdk-go-azcertificates/v0.4.2 (go1.18; Windows_NT)" - }, - "RequestBody": null, - "StatusCode": 404, - "ResponseHeaders": { - "Cache-Control": "no-cache", - "Content-Length": "104", - "Content-Type": "application/json; charset=utf-8", - "Date": "Mon, 16 May 2022 18:14:34 GMT", - "Expires": "-1", - "Pragma": "no-cache", - "Strict-Transport-Security": "max-age=31536000;includeSubDomains", - "X-Content-Type-Options": "nosniff", - "x-ms-keyvault-network-info": "conn_type=Ipv4;addr=73.83.78.150;act_addr_fam=InterNetwork;", - "x-ms-keyvault-region": "westus2", - "x-ms-keyvault-service-version": "1.9.395.1", - "x-ms-request-id": "b41ab933-690b-4152-bb51-e51dc27f99d3" - }, - "ResponseBody": { - "error": { - "code": "CertificateNotFound", - "message": "Deleted Certificate not found: certRecover634943320" - } - } - }, - { - "RequestUri": "https://fakekvurl.vault.azure.net/deletedcertificates/certRecover634943320?api-version=7.3", - "RequestMethod": "GET", - "RequestHeaders": { - ":method": "GET", - "Accept": "application/json", - "Accept-Encoding": "gzip", - "Authorization": "Sanitized", - "User-Agent": "azsdk-go-azcertificates/v0.4.2 (go1.18; Windows_NT)" - }, - "RequestBody": null, - "StatusCode": 200, - "ResponseHeaders": { - "Cache-Control": "no-cache", - "Content-Length": "2508", - "Content-Type": "application/json; charset=utf-8", - "Date": "Mon, 16 May 2022 18:14:35 GMT", - "Expires": "-1", - "Pragma": "no-cache", - "Strict-Transport-Security": "max-age=31536000;includeSubDomains", - "X-Content-Type-Options": "nosniff", - "x-ms-keyvault-network-info": "conn_type=Ipv4;addr=73.83.78.150;act_addr_fam=InterNetwork;", - "x-ms-keyvault-region": "westus2", - "x-ms-keyvault-service-version": "1.9.395.1", - "x-ms-request-id": "18daab12-c1a2-4e83-8bdf-465a341d8825" - }, - "ResponseBody": { - "recoveryId": "https://fakekvurl.vault.azure.net/deletedcertificates/certRecover634943320", - "deletedDate": 1652724869, - "scheduledPurgeDate": 1653329669, - "id": "https://fakekvurl.vault.azure.net/certificates/certRecover634943320/4de94396c8414ddda6631689bc8b1318", - "kid": "https://fakekvurl.vault.azure.net/keys/certRecover634943320/4de94396c8414ddda6631689bc8b1318", - "sid": "https://fakekvurl.vault.azure.net/secrets/certRecover634943320/4de94396c8414ddda6631689bc8b1318", - "x5t": "g9c_-E1hXxxuo87keXkbC0m1fMs", - "cer": "MIIDNjCCAh6gAwIBAgIQbx1ELlpzRA\u002BFLwESm8U0bTANBgkqhkiG9w0BAQsFADAYMRYwFAYDVQQDEw1EZWZhdWx0UG9saWN5MB4XDTIyMDUxNjE4MDQwOVoXDTIzMDUxNjE4MTQwOVowGDEWMBQGA1UEAxMNRGVmYXVsdFBvbGljeTCCASIwDQYJKoZIhvcNAQEBBQADggEPADCCAQoCggEBAK/0f8/Trjo8Om\u002BtRmNbvWszCa7X8T6RnZkpEmhY0MKuP\u002Bu1u\u002Bn5SnP9arpUR7HFCqjI0DOF0fFhCecp515OriCaCzyZf2eefe0msed0Paek/BocAFYF1peXb3e6A0P6XRNoXyGwZzrZSqF7MrOsHKNnLqY7xAruRwTRdquLg6mcd08OT3pQ2CyJX4\u002BmMLLpQ1V5ejkdOmqdnPZnwqN\u002BOi0JLPQ5J6GVQS8P599DShKlXTKnrL8o0\u002BJeSK56Ux\u002BPJ2MTDPcNAoox7/lVzy5wVaDyV6PB8SHXQvtav7NUAZOjHojP/TCGfXh0E2z7tCjaltcn9pnDD2lGdSoC3QsF1\u002BECAwEAAaN8MHowDgYDVR0PAQH/BAQDAgWgMAkGA1UdEwQCMAAwHQYDVR0lBBYwFAYIKwYBBQUHAwEGCCsGAQUFBwMCMB8GA1UdIwQYMBaAFMCTk0xKx0P/YE3nER\u002B25nUvRRT4MB0GA1UdDgQWBBTAk5NMSsdD/2BN5xEftuZ1L0UU\u002BDANBgkqhkiG9w0BAQsFAAOCAQEAgdSsbmLQ1utH6JaX5AaPgPiYyocEOfRLwEDXkjdvm91efvRwlKGqVwoV85ynxYphkU4CW41Y\u002BV0Xhy37NdJep/wNJR9M\u002B\u002BKYskXQ7RWOws8aTRWtRIBJcW\u002BAW16XIZY0y6R2c7b86odlt9\u002BTMNR9ejg795l/7hR1PE0BmZLQ0MInJ17iPWn9h41KNDobP\u002BOv2ksFsvzsDt0FhJAxmonuvLVAk1g3MrI/QiUAUvywv6Xvu5p7k3SvlM\u002BMEc8jHiDj\u002BhLhMOFqbAmFsqrJeulnsJAElujrT5CvhKGxFEENqSs2SYM8XHzsYRGOP7xCpShjOcb9qKNXE7nRrvHwaU5IsQ==", - "attributes": { - "enabled": true, - "nbf": 1652724249, - "exp": 1684260849, - "created": 1652724849, - "updated": 1652724849, - "recoveryLevel": "CustomizedRecoverable\u002BPurgeable", - "recoverableDays": 7 - }, - "policy": { - "id": "https://fakekvurl.vault.azure.net/certificates/certRecover634943320/policy", - "key_props": { - "exportable": true, - "kty": "RSA", - "key_size": 2048, - "reuse_key": false - }, - "secret_props": { - "contentType": "application/x-pkcs12" - }, - "x509_props": { - "subject": "CN=DefaultPolicy", - "sans": {}, - "ekus": [ - "1.3.6.1.5.5.7.3.1", - "1.3.6.1.5.5.7.3.2" - ], - "key_usage": [ - "digitalSignature", - "keyEncipherment" - ], - "validity_months": 12, - "basic_constraints": { - "ca": false - } - }, - "lifetime_actions": [ - { - "trigger": { - "lifetime_percentage": 80 - }, - "action": { - "action_type": "AutoRenew" - } - } - ], - "issuer": { - "name": "Self" - }, - "attributes": { - "enabled": true, - "created": 1652724844, - "updated": 1652724844 - } - }, - "pending": { - "id": "https://fakekvurl.vault.azure.net/certificates/certRecover634943320/pending" - } - } - }, - { - "RequestUri": "https://fakekvurl.vault.azure.net/deletedcertificates/certRecover634943320?api-version=7.3", - "RequestMethod": "DELETE", - "RequestHeaders": { - "Accept": "application/json", - "Accept-Encoding": "gzip", - "Authorization": "Sanitized", - "User-Agent": "azsdk-go-azcertificates/v0.4.2 (go1.18; Windows_NT)" - }, - "RequestBody": null, - "StatusCode": 204, - "ResponseHeaders": { - "Cache-Control": "no-cache", - "Date": "Mon, 16 May 2022 18:14:35 GMT", - "Expires": "-1", - "Pragma": "no-cache", - "Strict-Transport-Security": "max-age=31536000;includeSubDomains", - "X-Content-Type-Options": "nosniff", - "x-ms-keyvault-network-info": "conn_type=Ipv4;addr=73.83.78.150;act_addr_fam=InterNetwork;", - "x-ms-keyvault-region": "westus2", - "x-ms-keyvault-service-version": "1.9.395.1", - "x-ms-request-id": "5a941747-d8bf-4586-8c90-e00fe629645c" - }, - "ResponseBody": null - } - ], - "Variables": {} -} diff --git a/sdk/keyvault/azcertificates/testdata/recordings/TestClient_BeginRecoverDeletedCertificateRehydrated.json b/sdk/keyvault/azcertificates/testdata/recordings/TestClient_BeginRecoverDeletedCertificateRehydrated.json deleted file mode 100644 index 9a2068f9000e..000000000000 --- a/sdk/keyvault/azcertificates/testdata/recordings/TestClient_BeginRecoverDeletedCertificateRehydrated.json +++ /dev/null @@ -1,1249 +0,0 @@ -{ - "Entries": [ - { - "RequestUri": "https://fakekvurl.vault.azure.net/certificates/certBeginRecoverRehydrated2840213968/create?api-version=7.3", - "RequestMethod": "POST", - "RequestHeaders": { - ":method": "POST", - "Accept": "application/json", - "Accept-Encoding": "gzip", - "Content-Length": "0", - "User-Agent": "azsdk-go-azcertificates/v0.4.2 (go1.18; Windows_NT)" - }, - "RequestBody": null, - "StatusCode": 401, - "ResponseHeaders": { - "Cache-Control": "no-cache", - "Content-Length": "97", - "Content-Type": "application/json; charset=utf-8", - "Date": "Mon, 16 May 2022 18:14:35 GMT", - "Expires": "-1", - "Pragma": "no-cache", - "Strict-Transport-Security": "max-age=31536000;includeSubDomains", - "WWW-Authenticate": "Bearer authorization=\u0022https://login.windows.net/00000000-0000-0000-0000-000000000000\u0022, resource=\u0022https://vault.azure.net\u0022", - "X-Content-Type-Options": "nosniff", - "x-ms-keyvault-network-info": "conn_type=Ipv4;addr=73.83.78.150;act_addr_fam=InterNetwork;", - "x-ms-keyvault-region": "westus2", - "x-ms-keyvault-service-version": "1.9.395.1", - "x-ms-request-id": "1d37c3c8-70be-4a3c-b59b-f89144aa9e20" - }, - "ResponseBody": { - "error": { - "code": "Unauthorized", - "message": "AKV10000: Request is missing a Bearer or PoP token." - } - } - }, - { - "RequestUri": "https://fakekvurl.vault.azure.net/certificates/certBeginRecoverRehydrated2840213968/create?api-version=7.3", - "RequestMethod": "POST", - "RequestHeaders": { - ":method": "POST", - "Accept": "application/json", - "Accept-Encoding": "gzip", - "Authorization": "Sanitized", - "Content-Length": "125", - "Content-Type": "application/json", - "User-Agent": "azsdk-go-azcertificates/v0.4.2 (go1.18; Windows_NT)" - }, - "RequestBody": { - "attributes": {}, - "policy": { - "issuer": { - "name": "Self" - }, - "secret_props": {}, - "x509_props": { - "sans": {}, - "subject": "CN=DefaultPolicy" - } - } - }, - "StatusCode": 202, - "ResponseHeaders": { - "Cache-Control": "no-cache", - "Content-Length": "1311", - "Content-Type": "application/json; charset=utf-8", - "Date": "Mon, 16 May 2022 18:14:36 GMT", - "Expires": "-1", - "Location": "https://fakekvurl.vault.azure.net/certificates/certBeginRecoverRehydrated2840213968/pending?api-version=7.3\u0026request_id=6862aaeedb2743fb977986110cbb1f21", - "Pragma": "no-cache", - "Retry-After": "10", - "Strict-Transport-Security": "max-age=31536000;includeSubDomains", - "X-Content-Type-Options": "nosniff", - "x-ms-keyvault-network-info": "conn_type=Ipv4;addr=73.83.78.150;act_addr_fam=InterNetwork;", - "x-ms-keyvault-region": "westus2", - "x-ms-keyvault-service-version": "1.9.395.1", - "x-ms-request-id": "0068b64f-4927-49d7-bb95-fe148a378166" - }, - "ResponseBody": { - "id": "https://fakekvurl.vault.azure.net/certificates/certBeginRecoverRehydrated2840213968/pending", - "issuer": { - "name": "Self" - }, - "csr": "MIICqDCCAZACAQAwGDEWMBQGA1UEAxMNRGVmYXVsdFBvbGljeTCCASIwDQYJKoZIhvcNAQEBBQADggEPADCCAQoCggEBAKHNQPVVwvptFzhXWHASXVh1J8KUYLtgWBHE6DHhBSu6IF1LD39jAMgIPUw2edoZ4qi/f83AH7pe4CKxlY0nQiZOB/YnqEb7ynbIKqyWuGB1DA3F4aM46jQH0vNaUPIrnB5sMFeojOU3Rmk6T1xC6EHk9x4l1A9Pbx03rPJoCepi8o7S6xrNKNkQ8vzIDLSHn8z4YdyqwPIL2R5vmySKXc9ovEMLGcMayGvWS\u002BWAjq\u002BPJlv/THel95Qhokm0qeAUlafb//CiEIZksadaCKQZDidtyPTIyvR9ETbMb45te05YHnlxe7/TtySjhBvA7LuPeGjb\u002BWuFmyG2rwWLavKk\u002B/ECAwEAAaBLMEkGCSqGSIb3DQEJDjE8MDowDgYDVR0PAQH/BAQDAgWgMB0GA1UdJQQWMBQGCCsGAQUFBwMBBggrBgEFBQcDAjAJBgNVHRMEAjAAMA0GCSqGSIb3DQEBCwUAA4IBAQAX8VgvUBiALeLvN/2/VhA/ffT18uewdmcDr8Du5fDYYsimuEEo\u002By0VgGGDyfJjSk92d2tzz7PvGbw\u002BRCISB3MZ5ASbjnOZ/gnj73NimXrx8vcpgM2f7ZVdvkOWpkPF59jWYUKCnY5/Knb2UHkSqGi3pXwY7V8i0wUVfx3HetcMbA3A2HmVQnjzEhQJuL26ZlrYChl2zScas3VufR2v20nMU6z8MrCW5HRKuVy158OkuIC/alL04gJ0KLS2pA4M4tGtLpXubeMVQhP5doncJIRgGrDG1X8wsS8sDpNiMF9ayrnpBfdQtmkaVsI3JCe\u002Bv97LOEr8LwPuTNjS8uJxQqcP", - "cancellation_requested": false, - "status": "inProgress", - "status_details": "Pending certificate created. Certificate request is in progress. This may take some time based on the issuer provider. Please check again later.", - "request_id": "6862aaeedb2743fb977986110cbb1f21" - } - }, - { - "RequestUri": "https://fakekvurl.vault.azure.net/certificates/certBeginRecoverRehydrated2840213968/pending?api-version=7.3\u0026request_id=6862aaeedb2743fb977986110cbb1f21", - "RequestMethod": "GET", - "RequestHeaders": { - ":method": "GET", - "Accept-Encoding": "gzip", - "Authorization": "Sanitized", - "User-Agent": "azsdk-go-azcertificates/v0.4.2 (go1.18; Windows_NT)" - }, - "RequestBody": null, - "StatusCode": 200, - "ResponseHeaders": { - "Cache-Control": "no-cache", - "Content-Length": "1241", - "Content-Type": "application/json; charset=utf-8", - "Date": "Mon, 16 May 2022 18:14:46 GMT", - "Expires": "-1", - "Pragma": "no-cache", - "Strict-Transport-Security": "max-age=31536000;includeSubDomains", - "X-Content-Type-Options": "nosniff", - "x-ms-keyvault-network-info": "conn_type=Ipv4;addr=73.83.78.150;act_addr_fam=InterNetwork;", - "x-ms-keyvault-region": "westus2", - "x-ms-keyvault-service-version": "1.9.395.1", - "x-ms-request-id": "726047ad-7da9-4fa5-9915-43641e1f4084" - }, - "ResponseBody": { - "id": "https://fakekvurl.vault.azure.net/certificates/certBeginRecoverRehydrated2840213968/pending", - "issuer": { - "name": "Self" - }, - "csr": "MIICqDCCAZACAQAwGDEWMBQGA1UEAxMNRGVmYXVsdFBvbGljeTCCASIwDQYJKoZIhvcNAQEBBQADggEPADCCAQoCggEBAKHNQPVVwvptFzhXWHASXVh1J8KUYLtgWBHE6DHhBSu6IF1LD39jAMgIPUw2edoZ4qi/f83AH7pe4CKxlY0nQiZOB/YnqEb7ynbIKqyWuGB1DA3F4aM46jQH0vNaUPIrnB5sMFeojOU3Rmk6T1xC6EHk9x4l1A9Pbx03rPJoCepi8o7S6xrNKNkQ8vzIDLSHn8z4YdyqwPIL2R5vmySKXc9ovEMLGcMayGvWS\u002BWAjq\u002BPJlv/THel95Qhokm0qeAUlafb//CiEIZksadaCKQZDidtyPTIyvR9ETbMb45te05YHnlxe7/TtySjhBvA7LuPeGjb\u002BWuFmyG2rwWLavKk\u002B/ECAwEAAaBLMEkGCSqGSIb3DQEJDjE8MDowDgYDVR0PAQH/BAQDAgWgMB0GA1UdJQQWMBQGCCsGAQUFBwMBBggrBgEFBQcDAjAJBgNVHRMEAjAAMA0GCSqGSIb3DQEBCwUAA4IBAQAX8VgvUBiALeLvN/2/VhA/ffT18uewdmcDr8Du5fDYYsimuEEo\u002By0VgGGDyfJjSk92d2tzz7PvGbw\u002BRCISB3MZ5ASbjnOZ/gnj73NimXrx8vcpgM2f7ZVdvkOWpkPF59jWYUKCnY5/Knb2UHkSqGi3pXwY7V8i0wUVfx3HetcMbA3A2HmVQnjzEhQJuL26ZlrYChl2zScas3VufR2v20nMU6z8MrCW5HRKuVy158OkuIC/alL04gJ0KLS2pA4M4tGtLpXubeMVQhP5doncJIRgGrDG1X8wsS8sDpNiMF9ayrnpBfdQtmkaVsI3JCe\u002Bv97LOEr8LwPuTNjS8uJxQqcP", - "cancellation_requested": false, - "status": "completed", - "target": "https://fakekvurl.vault.azure.net/certificates/certBeginRecoverRehydrated2840213968", - "request_id": "6862aaeedb2743fb977986110cbb1f21" - } - }, - { - "RequestUri": "https://fakekvurl.vault.azure.net/certificates/certBeginRecoverRehydrated2840213968/?api-version=7.3", - "RequestMethod": "GET", - "RequestHeaders": { - ":method": "GET", - "Accept": "application/json", - "Accept-Encoding": "gzip", - "Authorization": "Sanitized", - "User-Agent": "azsdk-go-azcertificates/v0.4.2 (go1.18; Windows_NT)" - }, - "RequestBody": null, - "StatusCode": 200, - "ResponseHeaders": { - "Cache-Control": "no-cache", - "Content-Length": "2441", - "Content-Type": "application/json; charset=utf-8", - "Date": "Mon, 16 May 2022 18:14:46 GMT", - "Expires": "-1", - "Pragma": "no-cache", - "Strict-Transport-Security": "max-age=31536000;includeSubDomains", - "X-Content-Type-Options": "nosniff", - "x-ms-keyvault-network-info": "conn_type=Ipv4;addr=73.83.78.150;act_addr_fam=InterNetwork;", - "x-ms-keyvault-region": "westus2", - "x-ms-keyvault-service-version": "1.9.395.1", - "x-ms-request-id": "1003f4e1-c1a5-4e61-bb9f-a62ce4afd4e0" - }, - "ResponseBody": { - "id": "https://fakekvurl.vault.azure.net/certificates/certBeginRecoverRehydrated2840213968/a9ce406e437d4d85ba3b286d34f9ddd4", - "kid": "https://fakekvurl.vault.azure.net/keys/certBeginRecoverRehydrated2840213968/a9ce406e437d4d85ba3b286d34f9ddd4", - "sid": "https://fakekvurl.vault.azure.net/secrets/certBeginRecoverRehydrated2840213968/a9ce406e437d4d85ba3b286d34f9ddd4", - "x5t": "YIlDA1W4hfk833Bo64qPCdOmgcw", - "cer": "MIIDNjCCAh6gAwIBAgIQXy\u002Bg7bkuS46EEN3uWuEtIzANBgkqhkiG9w0BAQsFADAYMRYwFAYDVQQDEw1EZWZhdWx0UG9saWN5MB4XDTIyMDUxNjE4MDQ0M1oXDTIzMDUxNjE4MTQ0M1owGDEWMBQGA1UEAxMNRGVmYXVsdFBvbGljeTCCASIwDQYJKoZIhvcNAQEBBQADggEPADCCAQoCggEBAKHNQPVVwvptFzhXWHASXVh1J8KUYLtgWBHE6DHhBSu6IF1LD39jAMgIPUw2edoZ4qi/f83AH7pe4CKxlY0nQiZOB/YnqEb7ynbIKqyWuGB1DA3F4aM46jQH0vNaUPIrnB5sMFeojOU3Rmk6T1xC6EHk9x4l1A9Pbx03rPJoCepi8o7S6xrNKNkQ8vzIDLSHn8z4YdyqwPIL2R5vmySKXc9ovEMLGcMayGvWS\u002BWAjq\u002BPJlv/THel95Qhokm0qeAUlafb//CiEIZksadaCKQZDidtyPTIyvR9ETbMb45te05YHnlxe7/TtySjhBvA7LuPeGjb\u002BWuFmyG2rwWLavKk\u002B/ECAwEAAaN8MHowDgYDVR0PAQH/BAQDAgWgMAkGA1UdEwQCMAAwHQYDVR0lBBYwFAYIKwYBBQUHAwEGCCsGAQUFBwMCMB8GA1UdIwQYMBaAFJrrEg75mu4H3oQhudErjGs/\u002B6V1MB0GA1UdDgQWBBSa6xIO\u002BZruB96EIbnRK4xrP/uldTANBgkqhkiG9w0BAQsFAAOCAQEAgu\u002B483kdC47BA5OgVvythCHg0gVQ\u002Bl82uxVhpufWEl8CRD0qLizOsDW0p8Ee4kkMFEGR09c8GNNW13g28t8yXwJh4X3hBmZvTSF\u002BINfSBvHuSEN3c9OeuBCS5xOhp5KVekfJiRS2zRTIZJi5vJTsSSjoTigv9Dxnv1j4rl/5Huyp/NWzYH/sw\u002BVVolNq7IUn1smIUup2W\u002BvWNE\u002BzCG3MgRFxIAjlZKwqeyJHhsnpyJHhVeMawNoH5ESMn7Fu5tieVOVdJlGLA5bwBgdIhFNsr//FJ5KRXkuTR50jKR4\u002B6JwXBJ4xA0F3AwfpltBNQ5Wq/be36NjUBoHIx3I9Yfss6g==", - "attributes": { - "enabled": true, - "nbf": 1652724283, - "exp": 1684260883, - "created": 1652724883, - "updated": 1652724883, - "recoveryLevel": "CustomizedRecoverable\u002BPurgeable", - "recoverableDays": 7 - }, - "policy": { - "id": "https://fakekvurl.vault.azure.net/certificates/certBeginRecoverRehydrated2840213968/policy", - "key_props": { - "exportable": true, - "kty": "RSA", - "key_size": 2048, - "reuse_key": false - }, - "secret_props": { - "contentType": "application/x-pkcs12" - }, - "x509_props": { - "subject": "CN=DefaultPolicy", - "sans": {}, - "ekus": [ - "1.3.6.1.5.5.7.3.1", - "1.3.6.1.5.5.7.3.2" - ], - "key_usage": [ - "digitalSignature", - "keyEncipherment" - ], - "validity_months": 12, - "basic_constraints": { - "ca": false - } - }, - "lifetime_actions": [ - { - "trigger": { - "lifetime_percentage": 80 - }, - "action": { - "action_type": "AutoRenew" - } - } - ], - "issuer": { - "name": "Self" - }, - "attributes": { - "enabled": true, - "created": 1652715940, - "updated": 1652724876 - } - }, - "pending": { - "id": "https://fakekvurl.vault.azure.net/certificates/certBeginRecoverRehydrated2840213968/pending" - } - } - }, - { - "RequestUri": "https://fakekvurl.vault.azure.net/certificates/certBeginRecoverRehydrated2840213968?api-version=7.3", - "RequestMethod": "DELETE", - "RequestHeaders": { - "Accept": "application/json", - "Accept-Encoding": "gzip", - "Authorization": "Sanitized", - "User-Agent": "azsdk-go-azcertificates/v0.4.2 (go1.18; Windows_NT)" - }, - "RequestBody": null, - "StatusCode": 200, - "ResponseHeaders": { - "Cache-Control": "no-cache", - "Content-Length": "2604", - "Content-Type": "application/json; charset=utf-8", - "Date": "Mon, 16 May 2022 18:14:46 GMT", - "Expires": "-1", - "Pragma": "no-cache", - "Strict-Transport-Security": "max-age=31536000;includeSubDomains", - "X-Content-Type-Options": "nosniff", - "x-ms-keyvault-network-info": "conn_type=Ipv4;addr=73.83.78.150;act_addr_fam=InterNetwork;", - "x-ms-keyvault-region": "westus2", - "x-ms-keyvault-service-version": "1.9.395.1", - "x-ms-request-id": "5a9382d6-1e18-4025-a4b9-f3fd05d88a96" - }, - "ResponseBody": { - "recoveryId": "https://fakekvurl.vault.azure.net/deletedcertificates/certBeginRecoverRehydrated2840213968", - "deletedDate": 1652724886, - "scheduledPurgeDate": 1653329686, - "id": "https://fakekvurl.vault.azure.net/certificates/certBeginRecoverRehydrated2840213968/a9ce406e437d4d85ba3b286d34f9ddd4", - "kid": "https://fakekvurl.vault.azure.net/keys/certBeginRecoverRehydrated2840213968/a9ce406e437d4d85ba3b286d34f9ddd4", - "sid": "https://fakekvurl.vault.azure.net/secrets/certBeginRecoverRehydrated2840213968/a9ce406e437d4d85ba3b286d34f9ddd4", - "x5t": "YIlDA1W4hfk833Bo64qPCdOmgcw", - "cer": "MIIDNjCCAh6gAwIBAgIQXy\u002Bg7bkuS46EEN3uWuEtIzANBgkqhkiG9w0BAQsFADAYMRYwFAYDVQQDEw1EZWZhdWx0UG9saWN5MB4XDTIyMDUxNjE4MDQ0M1oXDTIzMDUxNjE4MTQ0M1owGDEWMBQGA1UEAxMNRGVmYXVsdFBvbGljeTCCASIwDQYJKoZIhvcNAQEBBQADggEPADCCAQoCggEBAKHNQPVVwvptFzhXWHASXVh1J8KUYLtgWBHE6DHhBSu6IF1LD39jAMgIPUw2edoZ4qi/f83AH7pe4CKxlY0nQiZOB/YnqEb7ynbIKqyWuGB1DA3F4aM46jQH0vNaUPIrnB5sMFeojOU3Rmk6T1xC6EHk9x4l1A9Pbx03rPJoCepi8o7S6xrNKNkQ8vzIDLSHn8z4YdyqwPIL2R5vmySKXc9ovEMLGcMayGvWS\u002BWAjq\u002BPJlv/THel95Qhokm0qeAUlafb//CiEIZksadaCKQZDidtyPTIyvR9ETbMb45te05YHnlxe7/TtySjhBvA7LuPeGjb\u002BWuFmyG2rwWLavKk\u002B/ECAwEAAaN8MHowDgYDVR0PAQH/BAQDAgWgMAkGA1UdEwQCMAAwHQYDVR0lBBYwFAYIKwYBBQUHAwEGCCsGAQUFBwMCMB8GA1UdIwQYMBaAFJrrEg75mu4H3oQhudErjGs/\u002B6V1MB0GA1UdDgQWBBSa6xIO\u002BZruB96EIbnRK4xrP/uldTANBgkqhkiG9w0BAQsFAAOCAQEAgu\u002B483kdC47BA5OgVvythCHg0gVQ\u002Bl82uxVhpufWEl8CRD0qLizOsDW0p8Ee4kkMFEGR09c8GNNW13g28t8yXwJh4X3hBmZvTSF\u002BINfSBvHuSEN3c9OeuBCS5xOhp5KVekfJiRS2zRTIZJi5vJTsSSjoTigv9Dxnv1j4rl/5Huyp/NWzYH/sw\u002BVVolNq7IUn1smIUup2W\u002BvWNE\u002BzCG3MgRFxIAjlZKwqeyJHhsnpyJHhVeMawNoH5ESMn7Fu5tieVOVdJlGLA5bwBgdIhFNsr//FJ5KRXkuTR50jKR4\u002B6JwXBJ4xA0F3AwfpltBNQ5Wq/be36NjUBoHIx3I9Yfss6g==", - "attributes": { - "enabled": true, - "nbf": 1652724283, - "exp": 1684260883, - "created": 1652724883, - "updated": 1652724883, - "recoveryLevel": "CustomizedRecoverable\u002BPurgeable", - "recoverableDays": 7 - }, - "policy": { - "id": "https://fakekvurl.vault.azure.net/certificates/certBeginRecoverRehydrated2840213968/policy", - "key_props": { - "exportable": true, - "kty": "RSA", - "key_size": 2048, - "reuse_key": false - }, - "secret_props": { - "contentType": "application/x-pkcs12" - }, - "x509_props": { - "subject": "CN=DefaultPolicy", - "sans": {}, - "ekus": [ - "1.3.6.1.5.5.7.3.1", - "1.3.6.1.5.5.7.3.2" - ], - "key_usage": [ - "digitalSignature", - "keyEncipherment" - ], - "validity_months": 12, - "basic_constraints": { - "ca": false - } - }, - "lifetime_actions": [ - { - "trigger": { - "lifetime_percentage": 80 - }, - "action": { - "action_type": "AutoRenew" - } - } - ], - "issuer": { - "name": "Self" - }, - "attributes": { - "enabled": true, - "created": 1652715940, - "updated": 1652724876 - } - }, - "pending": { - "id": "https://fakekvurl.vault.azure.net/certificates/certBeginRecoverRehydrated2840213968/pending" - } - } - }, - { - "RequestUri": "https://fakekvurl.vault.azure.net/deletedcertificates/certBeginRecoverRehydrated2840213968?api-version=7.3", - "RequestMethod": "GET", - "RequestHeaders": { - ":method": "GET", - "Accept": "application/json", - "Accept-Encoding": "gzip", - "Authorization": "Sanitized", - "User-Agent": "azsdk-go-azcertificates/v0.4.2 (go1.18; Windows_NT)" - }, - "RequestBody": null, - "StatusCode": 404, - "ResponseHeaders": { - "Cache-Control": "no-cache", - "Content-Length": "120", - "Content-Type": "application/json; charset=utf-8", - "Date": "Mon, 16 May 2022 18:14:46 GMT", - "Expires": "-1", - "Pragma": "no-cache", - "Strict-Transport-Security": "max-age=31536000;includeSubDomains", - "X-Content-Type-Options": "nosniff", - "x-ms-keyvault-network-info": "conn_type=Ipv4;addr=73.83.78.150;act_addr_fam=InterNetwork;", - "x-ms-keyvault-region": "westus2", - "x-ms-keyvault-service-version": "1.9.395.1", - "x-ms-request-id": "6f75a47d-b3f7-41f3-9a78-af06f54e7fa7" - }, - "ResponseBody": { - "error": { - "code": "CertificateNotFound", - "message": "Deleted Certificate not found: certBeginRecoverRehydrated2840213968" - } - } - }, - { - "RequestUri": "https://fakekvurl.vault.azure.net/deletedcertificates/certBeginRecoverRehydrated2840213968?api-version=7.3", - "RequestMethod": "GET", - "RequestHeaders": { - ":method": "GET", - "Accept": "application/json", - "Accept-Encoding": "gzip", - "Authorization": "Sanitized", - "User-Agent": "azsdk-go-azcertificates/v0.4.2 (go1.18; Windows_NT)" - }, - "RequestBody": null, - "StatusCode": 404, - "ResponseHeaders": { - "Cache-Control": "no-cache", - "Content-Length": "120", - "Content-Type": "application/json; charset=utf-8", - "Date": "Mon, 16 May 2022 18:14:47 GMT", - "Expires": "-1", - "Pragma": "no-cache", - "Strict-Transport-Security": "max-age=31536000;includeSubDomains", - "X-Content-Type-Options": "nosniff", - "x-ms-keyvault-network-info": "conn_type=Ipv4;addr=73.83.78.150;act_addr_fam=InterNetwork;", - "x-ms-keyvault-region": "westus2", - "x-ms-keyvault-service-version": "1.9.395.1", - "x-ms-request-id": "c290702c-9e7e-45f6-aaa0-2d653f9b1fa6" - }, - "ResponseBody": { - "error": { - "code": "CertificateNotFound", - "message": "Deleted Certificate not found: certBeginRecoverRehydrated2840213968" - } - } - }, - { - "RequestUri": "https://fakekvurl.vault.azure.net/deletedcertificates/certBeginRecoverRehydrated2840213968?api-version=7.3", - "RequestMethod": "GET", - "RequestHeaders": { - ":method": "GET", - "Accept": "application/json", - "Accept-Encoding": "gzip", - "Authorization": "Sanitized", - "User-Agent": "azsdk-go-azcertificates/v0.4.2 (go1.18; Windows_NT)" - }, - "RequestBody": null, - "StatusCode": 404, - "ResponseHeaders": { - "Cache-Control": "no-cache", - "Content-Length": "120", - "Content-Type": "application/json; charset=utf-8", - "Date": "Mon, 16 May 2022 18:14:48 GMT", - "Expires": "-1", - "Pragma": "no-cache", - "Strict-Transport-Security": "max-age=31536000;includeSubDomains", - "X-Content-Type-Options": "nosniff", - "x-ms-keyvault-network-info": "conn_type=Ipv4;addr=73.83.78.150;act_addr_fam=InterNetwork;", - "x-ms-keyvault-region": "westus2", - "x-ms-keyvault-service-version": "1.9.395.1", - "x-ms-request-id": "5f44a452-5126-40ad-807e-fcf317140fb2" - }, - "ResponseBody": { - "error": { - "code": "CertificateNotFound", - "message": "Deleted Certificate not found: certBeginRecoverRehydrated2840213968" - } - } - }, - { - "RequestUri": "https://fakekvurl.vault.azure.net/deletedcertificates/certBeginRecoverRehydrated2840213968?api-version=7.3", - "RequestMethod": "GET", - "RequestHeaders": { - ":method": "GET", - "Accept": "application/json", - "Accept-Encoding": "gzip", - "Authorization": "Sanitized", - "User-Agent": "azsdk-go-azcertificates/v0.4.2 (go1.18; Windows_NT)" - }, - "RequestBody": null, - "StatusCode": 404, - "ResponseHeaders": { - "Cache-Control": "no-cache", - "Content-Length": "120", - "Content-Type": "application/json; charset=utf-8", - "Date": "Mon, 16 May 2022 18:14:49 GMT", - "Expires": "-1", - "Pragma": "no-cache", - "Strict-Transport-Security": "max-age=31536000;includeSubDomains", - "X-Content-Type-Options": "nosniff", - "x-ms-keyvault-network-info": "conn_type=Ipv4;addr=73.83.78.150;act_addr_fam=InterNetwork;", - "x-ms-keyvault-region": "westus2", - "x-ms-keyvault-service-version": "1.9.395.1", - "x-ms-request-id": "aea0c197-febb-47ee-a81a-35026f78143d" - }, - "ResponseBody": { - "error": { - "code": "CertificateNotFound", - "message": "Deleted Certificate not found: certBeginRecoverRehydrated2840213968" - } - } - }, - { - "RequestUri": "https://fakekvurl.vault.azure.net/deletedcertificates/certBeginRecoverRehydrated2840213968?api-version=7.3", - "RequestMethod": "GET", - "RequestHeaders": { - ":method": "GET", - "Accept": "application/json", - "Accept-Encoding": "gzip", - "Authorization": "Sanitized", - "User-Agent": "azsdk-go-azcertificates/v0.4.2 (go1.18; Windows_NT)" - }, - "RequestBody": null, - "StatusCode": 404, - "ResponseHeaders": { - "Cache-Control": "no-cache", - "Content-Length": "120", - "Content-Type": "application/json; charset=utf-8", - "Date": "Mon, 16 May 2022 18:14:50 GMT", - "Expires": "-1", - "Pragma": "no-cache", - "Strict-Transport-Security": "max-age=31536000;includeSubDomains", - "X-Content-Type-Options": "nosniff", - "x-ms-keyvault-network-info": "conn_type=Ipv4;addr=73.83.78.150;act_addr_fam=InterNetwork;", - "x-ms-keyvault-region": "westus2", - "x-ms-keyvault-service-version": "1.9.395.1", - "x-ms-request-id": "e7141f75-2897-4ff1-821d-4390fd172e65" - }, - "ResponseBody": { - "error": { - "code": "CertificateNotFound", - "message": "Deleted Certificate not found: certBeginRecoverRehydrated2840213968" - } - } - }, - { - "RequestUri": "https://fakekvurl.vault.azure.net/deletedcertificates/certBeginRecoverRehydrated2840213968?api-version=7.3", - "RequestMethod": "GET", - "RequestHeaders": { - ":method": "GET", - "Accept": "application/json", - "Accept-Encoding": "gzip", - "Authorization": "Sanitized", - "User-Agent": "azsdk-go-azcertificates/v0.4.2 (go1.18; Windows_NT)" - }, - "RequestBody": null, - "StatusCode": 404, - "ResponseHeaders": { - "Cache-Control": "no-cache", - "Content-Length": "120", - "Content-Type": "application/json; charset=utf-8", - "Date": "Mon, 16 May 2022 18:14:51 GMT", - "Expires": "-1", - "Pragma": "no-cache", - "Strict-Transport-Security": "max-age=31536000;includeSubDomains", - "X-Content-Type-Options": "nosniff", - "x-ms-keyvault-network-info": "conn_type=Ipv4;addr=73.83.78.150;act_addr_fam=InterNetwork;", - "x-ms-keyvault-region": "westus2", - "x-ms-keyvault-service-version": "1.9.395.1", - "x-ms-request-id": "35c04e78-7d40-4d3b-b840-c77c7f34aeb2" - }, - "ResponseBody": { - "error": { - "code": "CertificateNotFound", - "message": "Deleted Certificate not found: certBeginRecoverRehydrated2840213968" - } - } - }, - { - "RequestUri": "https://fakekvurl.vault.azure.net/deletedcertificates/certBeginRecoverRehydrated2840213968?api-version=7.3", - "RequestMethod": "GET", - "RequestHeaders": { - ":method": "GET", - "Accept": "application/json", - "Accept-Encoding": "gzip", - "Authorization": "Sanitized", - "User-Agent": "azsdk-go-azcertificates/v0.4.2 (go1.18; Windows_NT)" - }, - "RequestBody": null, - "StatusCode": 404, - "ResponseHeaders": { - "Cache-Control": "no-cache", - "Content-Length": "120", - "Content-Type": "application/json; charset=utf-8", - "Date": "Mon, 16 May 2022 18:14:52 GMT", - "Expires": "-1", - "Pragma": "no-cache", - "Strict-Transport-Security": "max-age=31536000;includeSubDomains", - "X-Content-Type-Options": "nosniff", - "x-ms-keyvault-network-info": "conn_type=Ipv4;addr=73.83.78.150;act_addr_fam=InterNetwork;", - "x-ms-keyvault-region": "westus2", - "x-ms-keyvault-service-version": "1.9.395.1", - "x-ms-request-id": "47aac165-787e-430b-9917-25dfbce6601c" - }, - "ResponseBody": { - "error": { - "code": "CertificateNotFound", - "message": "Deleted Certificate not found: certBeginRecoverRehydrated2840213968" - } - } - }, - { - "RequestUri": "https://fakekvurl.vault.azure.net/deletedcertificates/certBeginRecoverRehydrated2840213968?api-version=7.3", - "RequestMethod": "GET", - "RequestHeaders": { - ":method": "GET", - "Accept": "application/json", - "Accept-Encoding": "gzip", - "Authorization": "Sanitized", - "User-Agent": "azsdk-go-azcertificates/v0.4.2 (go1.18; Windows_NT)" - }, - "RequestBody": null, - "StatusCode": 404, - "ResponseHeaders": { - "Cache-Control": "no-cache", - "Content-Length": "120", - "Content-Type": "application/json; charset=utf-8", - "Date": "Mon, 16 May 2022 18:14:53 GMT", - "Expires": "-1", - "Pragma": "no-cache", - "Strict-Transport-Security": "max-age=31536000;includeSubDomains", - "X-Content-Type-Options": "nosniff", - "x-ms-keyvault-network-info": "conn_type=Ipv4;addr=73.83.78.150;act_addr_fam=InterNetwork;", - "x-ms-keyvault-region": "westus2", - "x-ms-keyvault-service-version": "1.9.395.1", - "x-ms-request-id": "6ee74097-0c83-4599-a920-56eb2257838e" - }, - "ResponseBody": { - "error": { - "code": "CertificateNotFound", - "message": "Deleted Certificate not found: certBeginRecoverRehydrated2840213968" - } - } - }, - { - "RequestUri": "https://fakekvurl.vault.azure.net/deletedcertificates/certBeginRecoverRehydrated2840213968?api-version=7.3", - "RequestMethod": "GET", - "RequestHeaders": { - ":method": "GET", - "Accept": "application/json", - "Accept-Encoding": "gzip", - "Authorization": "Sanitized", - "User-Agent": "azsdk-go-azcertificates/v0.4.2 (go1.18; Windows_NT)" - }, - "RequestBody": null, - "StatusCode": 200, - "ResponseHeaders": { - "Cache-Control": "no-cache", - "Content-Length": "2604", - "Content-Type": "application/json; charset=utf-8", - "Date": "Mon, 16 May 2022 18:14:54 GMT", - "Expires": "-1", - "Pragma": "no-cache", - "Strict-Transport-Security": "max-age=31536000;includeSubDomains", - "X-Content-Type-Options": "nosniff", - "x-ms-keyvault-network-info": "conn_type=Ipv4;addr=73.83.78.150;act_addr_fam=InterNetwork;", - "x-ms-keyvault-region": "westus2", - "x-ms-keyvault-service-version": "1.9.395.1", - "x-ms-request-id": "5af8177f-a12d-478d-a6a8-c5bcece186c5" - }, - "ResponseBody": { - "recoveryId": "https://fakekvurl.vault.azure.net/deletedcertificates/certBeginRecoverRehydrated2840213968", - "deletedDate": 1652724886, - "scheduledPurgeDate": 1653329686, - "id": "https://fakekvurl.vault.azure.net/certificates/certBeginRecoverRehydrated2840213968/a9ce406e437d4d85ba3b286d34f9ddd4", - "kid": "https://fakekvurl.vault.azure.net/keys/certBeginRecoverRehydrated2840213968/a9ce406e437d4d85ba3b286d34f9ddd4", - "sid": "https://fakekvurl.vault.azure.net/secrets/certBeginRecoverRehydrated2840213968/a9ce406e437d4d85ba3b286d34f9ddd4", - "x5t": "YIlDA1W4hfk833Bo64qPCdOmgcw", - "cer": "MIIDNjCCAh6gAwIBAgIQXy\u002Bg7bkuS46EEN3uWuEtIzANBgkqhkiG9w0BAQsFADAYMRYwFAYDVQQDEw1EZWZhdWx0UG9saWN5MB4XDTIyMDUxNjE4MDQ0M1oXDTIzMDUxNjE4MTQ0M1owGDEWMBQGA1UEAxMNRGVmYXVsdFBvbGljeTCCASIwDQYJKoZIhvcNAQEBBQADggEPADCCAQoCggEBAKHNQPVVwvptFzhXWHASXVh1J8KUYLtgWBHE6DHhBSu6IF1LD39jAMgIPUw2edoZ4qi/f83AH7pe4CKxlY0nQiZOB/YnqEb7ynbIKqyWuGB1DA3F4aM46jQH0vNaUPIrnB5sMFeojOU3Rmk6T1xC6EHk9x4l1A9Pbx03rPJoCepi8o7S6xrNKNkQ8vzIDLSHn8z4YdyqwPIL2R5vmySKXc9ovEMLGcMayGvWS\u002BWAjq\u002BPJlv/THel95Qhokm0qeAUlafb//CiEIZksadaCKQZDidtyPTIyvR9ETbMb45te05YHnlxe7/TtySjhBvA7LuPeGjb\u002BWuFmyG2rwWLavKk\u002B/ECAwEAAaN8MHowDgYDVR0PAQH/BAQDAgWgMAkGA1UdEwQCMAAwHQYDVR0lBBYwFAYIKwYBBQUHAwEGCCsGAQUFBwMCMB8GA1UdIwQYMBaAFJrrEg75mu4H3oQhudErjGs/\u002B6V1MB0GA1UdDgQWBBSa6xIO\u002BZruB96EIbnRK4xrP/uldTANBgkqhkiG9w0BAQsFAAOCAQEAgu\u002B483kdC47BA5OgVvythCHg0gVQ\u002Bl82uxVhpufWEl8CRD0qLizOsDW0p8Ee4kkMFEGR09c8GNNW13g28t8yXwJh4X3hBmZvTSF\u002BINfSBvHuSEN3c9OeuBCS5xOhp5KVekfJiRS2zRTIZJi5vJTsSSjoTigv9Dxnv1j4rl/5Huyp/NWzYH/sw\u002BVVolNq7IUn1smIUup2W\u002BvWNE\u002BzCG3MgRFxIAjlZKwqeyJHhsnpyJHhVeMawNoH5ESMn7Fu5tieVOVdJlGLA5bwBgdIhFNsr//FJ5KRXkuTR50jKR4\u002B6JwXBJ4xA0F3AwfpltBNQ5Wq/be36NjUBoHIx3I9Yfss6g==", - "attributes": { - "enabled": true, - "nbf": 1652724283, - "exp": 1684260883, - "created": 1652724883, - "updated": 1652724883, - "recoveryLevel": "CustomizedRecoverable\u002BPurgeable", - "recoverableDays": 7 - }, - "policy": { - "id": "https://fakekvurl.vault.azure.net/certificates/certBeginRecoverRehydrated2840213968/policy", - "key_props": { - "exportable": true, - "kty": "RSA", - "key_size": 2048, - "reuse_key": false - }, - "secret_props": { - "contentType": "application/x-pkcs12" - }, - "x509_props": { - "subject": "CN=DefaultPolicy", - "sans": {}, - "ekus": [ - "1.3.6.1.5.5.7.3.1", - "1.3.6.1.5.5.7.3.2" - ], - "key_usage": [ - "digitalSignature", - "keyEncipherment" - ], - "validity_months": 12, - "basic_constraints": { - "ca": false - } - }, - "lifetime_actions": [ - { - "trigger": { - "lifetime_percentage": 80 - }, - "action": { - "action_type": "AutoRenew" - } - } - ], - "issuer": { - "name": "Self" - }, - "attributes": { - "enabled": true, - "created": 1652715940, - "updated": 1652724876 - } - }, - "pending": { - "id": "https://fakekvurl.vault.azure.net/certificates/certBeginRecoverRehydrated2840213968/pending" - } - } - }, - { - "RequestUri": "https://fakekvurl.vault.azure.net/certificates/certBeginRecoverRehydrated2840213968/?api-version=7.3", - "RequestMethod": "GET", - "RequestHeaders": { - ":method": "GET", - "Accept": "application/json", - "Accept-Encoding": "gzip", - "Authorization": "Sanitized", - "User-Agent": "azsdk-go-azcertificates/v0.4.2 (go1.18; Windows_NT)" - }, - "RequestBody": null, - "StatusCode": 404, - "ResponseHeaders": { - "Cache-Control": "no-cache", - "Content-Length": "348", - "Content-Type": "application/json; charset=utf-8", - "Date": "Mon, 16 May 2022 18:14:54 GMT", - "Expires": "-1", - "Pragma": "no-cache", - "Strict-Transport-Security": "max-age=31536000;includeSubDomains", - "X-Content-Type-Options": "nosniff", - "x-ms-keyvault-network-info": "conn_type=Ipv4;addr=73.83.78.150;act_addr_fam=InterNetwork;", - "x-ms-keyvault-region": "westus2", - "x-ms-keyvault-service-version": "1.9.395.1", - "x-ms-request-id": "76414b82-7eee-482b-a99e-7a3ed6d5bb34" - }, - "ResponseBody": { - "error": { - "code": "CertificateNotFound", - "message": "A certificate with (name/id) certBeginRecoverRehydrated2840213968 was not found in this key vault. If you recently deleted this certificate you may be able to recover it using the correct recovery command. For help resolving this issue, please see https://go.microsoft.com/fwlink/?linkid=2125182" - } - } - }, - { - "RequestUri": "https://fakekvurl.vault.azure.net/deletedcertificates/certBeginRecoverRehydrated2840213968/recover?api-version=7.3", - "RequestMethod": "POST", - "RequestHeaders": { - ":method": "POST", - "Accept": "application/json", - "Accept-Encoding": "gzip", - "Authorization": "Sanitized", - "Content-Length": "0", - "User-Agent": "azsdk-go-azcertificates/v0.4.2 (go1.18; Windows_NT)" - }, - "RequestBody": null, - "StatusCode": 200, - "ResponseHeaders": { - "Cache-Control": "no-cache", - "Content-Length": "2441", - "Content-Type": "application/json; charset=utf-8", - "Date": "Mon, 16 May 2022 18:14:54 GMT", - "Expires": "-1", - "Pragma": "no-cache", - "Strict-Transport-Security": "max-age=31536000;includeSubDomains", - "X-Content-Type-Options": "nosniff", - "x-ms-keyvault-network-info": "conn_type=Ipv4;addr=73.83.78.150;act_addr_fam=InterNetwork;", - "x-ms-keyvault-region": "westus2", - "x-ms-keyvault-service-version": "1.9.395.1", - "x-ms-request-id": "8538c6ab-b200-4124-a7e2-84e12be4c2cd" - }, - "ResponseBody": { - "id": "https://fakekvurl.vault.azure.net/certificates/certBeginRecoverRehydrated2840213968/a9ce406e437d4d85ba3b286d34f9ddd4", - "kid": "https://fakekvurl.vault.azure.net/keys/certBeginRecoverRehydrated2840213968/a9ce406e437d4d85ba3b286d34f9ddd4", - "sid": "https://fakekvurl.vault.azure.net/secrets/certBeginRecoverRehydrated2840213968/a9ce406e437d4d85ba3b286d34f9ddd4", - "x5t": "YIlDA1W4hfk833Bo64qPCdOmgcw", - "cer": "MIIDNjCCAh6gAwIBAgIQXy\u002Bg7bkuS46EEN3uWuEtIzANBgkqhkiG9w0BAQsFADAYMRYwFAYDVQQDEw1EZWZhdWx0UG9saWN5MB4XDTIyMDUxNjE4MDQ0M1oXDTIzMDUxNjE4MTQ0M1owGDEWMBQGA1UEAxMNRGVmYXVsdFBvbGljeTCCASIwDQYJKoZIhvcNAQEBBQADggEPADCCAQoCggEBAKHNQPVVwvptFzhXWHASXVh1J8KUYLtgWBHE6DHhBSu6IF1LD39jAMgIPUw2edoZ4qi/f83AH7pe4CKxlY0nQiZOB/YnqEb7ynbIKqyWuGB1DA3F4aM46jQH0vNaUPIrnB5sMFeojOU3Rmk6T1xC6EHk9x4l1A9Pbx03rPJoCepi8o7S6xrNKNkQ8vzIDLSHn8z4YdyqwPIL2R5vmySKXc9ovEMLGcMayGvWS\u002BWAjq\u002BPJlv/THel95Qhokm0qeAUlafb//CiEIZksadaCKQZDidtyPTIyvR9ETbMb45te05YHnlxe7/TtySjhBvA7LuPeGjb\u002BWuFmyG2rwWLavKk\u002B/ECAwEAAaN8MHowDgYDVR0PAQH/BAQDAgWgMAkGA1UdEwQCMAAwHQYDVR0lBBYwFAYIKwYBBQUHAwEGCCsGAQUFBwMCMB8GA1UdIwQYMBaAFJrrEg75mu4H3oQhudErjGs/\u002B6V1MB0GA1UdDgQWBBSa6xIO\u002BZruB96EIbnRK4xrP/uldTANBgkqhkiG9w0BAQsFAAOCAQEAgu\u002B483kdC47BA5OgVvythCHg0gVQ\u002Bl82uxVhpufWEl8CRD0qLizOsDW0p8Ee4kkMFEGR09c8GNNW13g28t8yXwJh4X3hBmZvTSF\u002BINfSBvHuSEN3c9OeuBCS5xOhp5KVekfJiRS2zRTIZJi5vJTsSSjoTigv9Dxnv1j4rl/5Huyp/NWzYH/sw\u002BVVolNq7IUn1smIUup2W\u002BvWNE\u002BzCG3MgRFxIAjlZKwqeyJHhsnpyJHhVeMawNoH5ESMn7Fu5tieVOVdJlGLA5bwBgdIhFNsr//FJ5KRXkuTR50jKR4\u002B6JwXBJ4xA0F3AwfpltBNQ5Wq/be36NjUBoHIx3I9Yfss6g==", - "attributes": { - "enabled": true, - "nbf": 1652724283, - "exp": 1684260883, - "created": 1652724883, - "updated": 1652724883, - "recoveryLevel": "CustomizedRecoverable\u002BPurgeable", - "recoverableDays": 7 - }, - "policy": { - "id": "https://fakekvurl.vault.azure.net/certificates/certBeginRecoverRehydrated2840213968/policy", - "key_props": { - "exportable": true, - "kty": "RSA", - "key_size": 2048, - "reuse_key": false - }, - "secret_props": { - "contentType": "application/x-pkcs12" - }, - "x509_props": { - "subject": "CN=DefaultPolicy", - "sans": {}, - "ekus": [ - "1.3.6.1.5.5.7.3.1", - "1.3.6.1.5.5.7.3.2" - ], - "key_usage": [ - "digitalSignature", - "keyEncipherment" - ], - "validity_months": 12, - "basic_constraints": { - "ca": false - } - }, - "lifetime_actions": [ - { - "trigger": { - "lifetime_percentage": 80 - }, - "action": { - "action_type": "AutoRenew" - } - } - ], - "issuer": { - "name": "Self" - }, - "attributes": { - "enabled": true, - "created": 1652715940, - "updated": 1652724876 - } - }, - "pending": { - "id": "https://fakekvurl.vault.azure.net/certificates/certBeginRecoverRehydrated2840213968/pending" - } - } - }, - { - "RequestUri": "https://fakekvurl.vault.azure.net/certificates/certBeginRecoverRehydrated2840213968/?api-version=7.3", - "RequestMethod": "GET", - "RequestHeaders": { - ":method": "GET", - "Accept": "application/json", - "Accept-Encoding": "gzip", - "Authorization": "Sanitized", - "User-Agent": "azsdk-go-azcertificates/v0.4.2 (go1.18; Windows_NT)" - }, - "RequestBody": null, - "StatusCode": 404, - "ResponseHeaders": { - "Cache-Control": "no-cache", - "Content-Length": "348", - "Content-Type": "application/json; charset=utf-8", - "Date": "Mon, 16 May 2022 18:14:54 GMT", - "Expires": "-1", - "Pragma": "no-cache", - "Strict-Transport-Security": "max-age=31536000;includeSubDomains", - "X-Content-Type-Options": "nosniff", - "x-ms-keyvault-network-info": "conn_type=Ipv4;addr=73.83.78.150;act_addr_fam=InterNetwork;", - "x-ms-keyvault-region": "westus2", - "x-ms-keyvault-service-version": "1.9.395.1", - "x-ms-request-id": "3d28c89a-2228-4eda-9541-6ed654105ab4" - }, - "ResponseBody": { - "error": { - "code": "CertificateNotFound", - "message": "A certificate with (name/id) certBeginRecoverRehydrated2840213968 was not found in this key vault. If you recently deleted this certificate you may be able to recover it using the correct recovery command. For help resolving this issue, please see https://go.microsoft.com/fwlink/?linkid=2125182" - } - } - }, - { - "RequestUri": "https://fakekvurl.vault.azure.net/certificates/certBeginRecoverRehydrated2840213968/?api-version=7.3", - "RequestMethod": "GET", - "RequestHeaders": { - ":method": "GET", - "Accept": "application/json", - "Accept-Encoding": "gzip", - "Authorization": "Sanitized", - "User-Agent": "azsdk-go-azcertificates/v0.4.2 (go1.18; Windows_NT)" - }, - "RequestBody": null, - "StatusCode": 404, - "ResponseHeaders": { - "Cache-Control": "no-cache", - "Content-Length": "348", - "Content-Type": "application/json; charset=utf-8", - "Date": "Mon, 16 May 2022 18:14:55 GMT", - "Expires": "-1", - "Pragma": "no-cache", - "Strict-Transport-Security": "max-age=31536000;includeSubDomains", - "X-Content-Type-Options": "nosniff", - "x-ms-keyvault-network-info": "conn_type=Ipv4;addr=73.83.78.150;act_addr_fam=InterNetwork;", - "x-ms-keyvault-region": "westus2", - "x-ms-keyvault-service-version": "1.9.395.1", - "x-ms-request-id": "2bdd7dca-c0f8-4112-a51b-e818a3080226" - }, - "ResponseBody": { - "error": { - "code": "CertificateNotFound", - "message": "A certificate with (name/id) certBeginRecoverRehydrated2840213968 was not found in this key vault. If you recently deleted this certificate you may be able to recover it using the correct recovery command. For help resolving this issue, please see https://go.microsoft.com/fwlink/?linkid=2125182" - } - } - }, - { - "RequestUri": "https://fakekvurl.vault.azure.net/certificates/certBeginRecoverRehydrated2840213968/?api-version=7.3", - "RequestMethod": "GET", - "RequestHeaders": { - ":method": "GET", - "Accept": "application/json", - "Accept-Encoding": "gzip", - "Authorization": "Sanitized", - "User-Agent": "azsdk-go-azcertificates/v0.4.2 (go1.18; Windows_NT)" - }, - "RequestBody": null, - "StatusCode": 404, - "ResponseHeaders": { - "Cache-Control": "no-cache", - "Content-Length": "348", - "Content-Type": "application/json; charset=utf-8", - "Date": "Mon, 16 May 2022 18:14:56 GMT", - "Expires": "-1", - "Pragma": "no-cache", - "Strict-Transport-Security": "max-age=31536000;includeSubDomains", - "X-Content-Type-Options": "nosniff", - "x-ms-keyvault-network-info": "conn_type=Ipv4;addr=73.83.78.150;act_addr_fam=InterNetwork;", - "x-ms-keyvault-region": "westus2", - "x-ms-keyvault-service-version": "1.9.395.1", - "x-ms-request-id": "78f1aff4-fb81-4819-86ee-40cc088428fc" - }, - "ResponseBody": { - "error": { - "code": "CertificateNotFound", - "message": "A certificate with (name/id) certBeginRecoverRehydrated2840213968 was not found in this key vault. If you recently deleted this certificate you may be able to recover it using the correct recovery command. For help resolving this issue, please see https://go.microsoft.com/fwlink/?linkid=2125182" - } - } - }, - { - "RequestUri": "https://fakekvurl.vault.azure.net/certificates/certBeginRecoverRehydrated2840213968/?api-version=7.3", - "RequestMethod": "GET", - "RequestHeaders": { - ":method": "GET", - "Accept": "application/json", - "Accept-Encoding": "gzip", - "Authorization": "Sanitized", - "User-Agent": "azsdk-go-azcertificates/v0.4.2 (go1.18; Windows_NT)" - }, - "RequestBody": null, - "StatusCode": 404, - "ResponseHeaders": { - "Cache-Control": "no-cache", - "Content-Length": "348", - "Content-Type": "application/json; charset=utf-8", - "Date": "Mon, 16 May 2022 18:14:57 GMT", - "Expires": "-1", - "Pragma": "no-cache", - "Strict-Transport-Security": "max-age=31536000;includeSubDomains", - "X-Content-Type-Options": "nosniff", - "x-ms-keyvault-network-info": "conn_type=Ipv4;addr=73.83.78.150;act_addr_fam=InterNetwork;", - "x-ms-keyvault-region": "westus2", - "x-ms-keyvault-service-version": "1.9.395.1", - "x-ms-request-id": "567cb187-b31f-44e0-bf64-9b0ae8b898c6" - }, - "ResponseBody": { - "error": { - "code": "CertificateNotFound", - "message": "A certificate with (name/id) certBeginRecoverRehydrated2840213968 was not found in this key vault. If you recently deleted this certificate you may be able to recover it using the correct recovery command. For help resolving this issue, please see https://go.microsoft.com/fwlink/?linkid=2125182" - } - } - }, - { - "RequestUri": "https://fakekvurl.vault.azure.net/certificates/certBeginRecoverRehydrated2840213968/?api-version=7.3", - "RequestMethod": "GET", - "RequestHeaders": { - ":method": "GET", - "Accept": "application/json", - "Accept-Encoding": "gzip", - "Authorization": "Sanitized", - "User-Agent": "azsdk-go-azcertificates/v0.4.2 (go1.18; Windows_NT)" - }, - "RequestBody": null, - "StatusCode": 404, - "ResponseHeaders": { - "Cache-Control": "no-cache", - "Content-Length": "348", - "Content-Type": "application/json; charset=utf-8", - "Date": "Mon, 16 May 2022 18:14:58 GMT", - "Expires": "-1", - "Pragma": "no-cache", - "Strict-Transport-Security": "max-age=31536000;includeSubDomains", - "X-Content-Type-Options": "nosniff", - "x-ms-keyvault-network-info": "conn_type=Ipv4;addr=73.83.78.150;act_addr_fam=InterNetwork;", - "x-ms-keyvault-region": "westus2", - "x-ms-keyvault-service-version": "1.9.395.1", - "x-ms-request-id": "87408ff4-cdba-4e7d-a07a-5660751fae87" - }, - "ResponseBody": { - "error": { - "code": "CertificateNotFound", - "message": "A certificate with (name/id) certBeginRecoverRehydrated2840213968 was not found in this key vault. If you recently deleted this certificate you may be able to recover it using the correct recovery command. For help resolving this issue, please see https://go.microsoft.com/fwlink/?linkid=2125182" - } - } - }, - { - "RequestUri": "https://fakekvurl.vault.azure.net/certificates/certBeginRecoverRehydrated2840213968/?api-version=7.3", - "RequestMethod": "GET", - "RequestHeaders": { - ":method": "GET", - "Accept": "application/json", - "Accept-Encoding": "gzip", - "Authorization": "Sanitized", - "User-Agent": "azsdk-go-azcertificates/v0.4.2 (go1.18; Windows_NT)" - }, - "RequestBody": null, - "StatusCode": 404, - "ResponseHeaders": { - "Cache-Control": "no-cache", - "Content-Length": "348", - "Content-Type": "application/json; charset=utf-8", - "Date": "Mon, 16 May 2022 18:15:01 GMT", - "Expires": "-1", - "Pragma": "no-cache", - "Strict-Transport-Security": "max-age=31536000;includeSubDomains", - "X-Content-Type-Options": "nosniff", - "x-ms-keyvault-network-info": "conn_type=Ipv4;addr=73.83.78.150;act_addr_fam=InterNetwork;", - "x-ms-keyvault-region": "westus2", - "x-ms-keyvault-service-version": "1.9.395.1", - "x-ms-request-id": "0083ab79-c24d-4c3c-a47c-13a357a33c36" - }, - "ResponseBody": { - "error": { - "code": "CertificateNotFound", - "message": "A certificate with (name/id) certBeginRecoverRehydrated2840213968 was not found in this key vault. If you recently deleted this certificate you may be able to recover it using the correct recovery command. For help resolving this issue, please see https://go.microsoft.com/fwlink/?linkid=2125182" - } - } - }, - { - "RequestUri": "https://fakekvurl.vault.azure.net/certificates/certBeginRecoverRehydrated2840213968/?api-version=7.3", - "RequestMethod": "GET", - "RequestHeaders": { - ":method": "GET", - "Accept": "application/json", - "Accept-Encoding": "gzip", - "Authorization": "Sanitized", - "User-Agent": "azsdk-go-azcertificates/v0.4.2 (go1.18; Windows_NT)" - }, - "RequestBody": null, - "StatusCode": 404, - "ResponseHeaders": { - "Cache-Control": "no-cache", - "Content-Length": "348", - "Content-Type": "application/json; charset=utf-8", - "Date": "Mon, 16 May 2022 18:15:02 GMT", - "Expires": "-1", - "Pragma": "no-cache", - "Strict-Transport-Security": "max-age=31536000;includeSubDomains", - "X-Content-Type-Options": "nosniff", - "x-ms-keyvault-network-info": "conn_type=Ipv4;addr=73.83.78.150;act_addr_fam=InterNetwork;", - "x-ms-keyvault-region": "westus2", - "x-ms-keyvault-service-version": "1.9.395.1", - "x-ms-request-id": "801f1fb4-1036-4ed9-b348-e38a5196a28a" - }, - "ResponseBody": { - "error": { - "code": "CertificateNotFound", - "message": "A certificate with (name/id) certBeginRecoverRehydrated2840213968 was not found in this key vault. If you recently deleted this certificate you may be able to recover it using the correct recovery command. For help resolving this issue, please see https://go.microsoft.com/fwlink/?linkid=2125182" - } - } - }, - { - "RequestUri": "https://fakekvurl.vault.azure.net/certificates/certBeginRecoverRehydrated2840213968/?api-version=7.3", - "RequestMethod": "GET", - "RequestHeaders": { - ":method": "GET", - "Accept": "application/json", - "Accept-Encoding": "gzip", - "Authorization": "Sanitized", - "User-Agent": "azsdk-go-azcertificates/v0.4.2 (go1.18; Windows_NT)" - }, - "RequestBody": null, - "StatusCode": 404, - "ResponseHeaders": { - "Cache-Control": "no-cache", - "Content-Length": "348", - "Content-Type": "application/json; charset=utf-8", - "Date": "Mon, 16 May 2022 18:15:03 GMT", - "Expires": "-1", - "Pragma": "no-cache", - "Strict-Transport-Security": "max-age=31536000;includeSubDomains", - "X-Content-Type-Options": "nosniff", - "x-ms-keyvault-network-info": "conn_type=Ipv4;addr=73.83.78.150;act_addr_fam=InterNetwork;", - "x-ms-keyvault-region": "westus2", - "x-ms-keyvault-service-version": "1.9.395.1", - "x-ms-request-id": "1f949f95-f212-4dfc-adac-03fbd5bc596c" - }, - "ResponseBody": { - "error": { - "code": "CertificateNotFound", - "message": "A certificate with (name/id) certBeginRecoverRehydrated2840213968 was not found in this key vault. If you recently deleted this certificate you may be able to recover it using the correct recovery command. For help resolving this issue, please see https://go.microsoft.com/fwlink/?linkid=2125182" - } - } - }, - { - "RequestUri": "https://fakekvurl.vault.azure.net/certificates/certBeginRecoverRehydrated2840213968/?api-version=7.3", - "RequestMethod": "GET", - "RequestHeaders": { - ":method": "GET", - "Accept": "application/json", - "Accept-Encoding": "gzip", - "Authorization": "Sanitized", - "User-Agent": "azsdk-go-azcertificates/v0.4.2 (go1.18; Windows_NT)" - }, - "RequestBody": null, - "StatusCode": 200, - "ResponseHeaders": { - "Cache-Control": "no-cache", - "Content-Length": "2441", - "Content-Type": "application/json; charset=utf-8", - "Date": "Mon, 16 May 2022 18:15:04 GMT", - "Expires": "-1", - "Pragma": "no-cache", - "Strict-Transport-Security": "max-age=31536000;includeSubDomains", - "X-Content-Type-Options": "nosniff", - "x-ms-keyvault-network-info": "conn_type=Ipv4;addr=73.83.78.150;act_addr_fam=InterNetwork;", - "x-ms-keyvault-region": "westus2", - "x-ms-keyvault-service-version": "1.9.395.1", - "x-ms-request-id": "315f2d9e-ef48-47e7-80bf-1996e5fa2be3" - }, - "ResponseBody": { - "id": "https://fakekvurl.vault.azure.net/certificates/certBeginRecoverRehydrated2840213968/a9ce406e437d4d85ba3b286d34f9ddd4", - "kid": "https://fakekvurl.vault.azure.net/keys/certBeginRecoverRehydrated2840213968/a9ce406e437d4d85ba3b286d34f9ddd4", - "sid": "https://fakekvurl.vault.azure.net/secrets/certBeginRecoverRehydrated2840213968/a9ce406e437d4d85ba3b286d34f9ddd4", - "x5t": "YIlDA1W4hfk833Bo64qPCdOmgcw", - "cer": "MIIDNjCCAh6gAwIBAgIQXy\u002Bg7bkuS46EEN3uWuEtIzANBgkqhkiG9w0BAQsFADAYMRYwFAYDVQQDEw1EZWZhdWx0UG9saWN5MB4XDTIyMDUxNjE4MDQ0M1oXDTIzMDUxNjE4MTQ0M1owGDEWMBQGA1UEAxMNRGVmYXVsdFBvbGljeTCCASIwDQYJKoZIhvcNAQEBBQADggEPADCCAQoCggEBAKHNQPVVwvptFzhXWHASXVh1J8KUYLtgWBHE6DHhBSu6IF1LD39jAMgIPUw2edoZ4qi/f83AH7pe4CKxlY0nQiZOB/YnqEb7ynbIKqyWuGB1DA3F4aM46jQH0vNaUPIrnB5sMFeojOU3Rmk6T1xC6EHk9x4l1A9Pbx03rPJoCepi8o7S6xrNKNkQ8vzIDLSHn8z4YdyqwPIL2R5vmySKXc9ovEMLGcMayGvWS\u002BWAjq\u002BPJlv/THel95Qhokm0qeAUlafb//CiEIZksadaCKQZDidtyPTIyvR9ETbMb45te05YHnlxe7/TtySjhBvA7LuPeGjb\u002BWuFmyG2rwWLavKk\u002B/ECAwEAAaN8MHowDgYDVR0PAQH/BAQDAgWgMAkGA1UdEwQCMAAwHQYDVR0lBBYwFAYIKwYBBQUHAwEGCCsGAQUFBwMCMB8GA1UdIwQYMBaAFJrrEg75mu4H3oQhudErjGs/\u002B6V1MB0GA1UdDgQWBBSa6xIO\u002BZruB96EIbnRK4xrP/uldTANBgkqhkiG9w0BAQsFAAOCAQEAgu\u002B483kdC47BA5OgVvythCHg0gVQ\u002Bl82uxVhpufWEl8CRD0qLizOsDW0p8Ee4kkMFEGR09c8GNNW13g28t8yXwJh4X3hBmZvTSF\u002BINfSBvHuSEN3c9OeuBCS5xOhp5KVekfJiRS2zRTIZJi5vJTsSSjoTigv9Dxnv1j4rl/5Huyp/NWzYH/sw\u002BVVolNq7IUn1smIUup2W\u002BvWNE\u002BzCG3MgRFxIAjlZKwqeyJHhsnpyJHhVeMawNoH5ESMn7Fu5tieVOVdJlGLA5bwBgdIhFNsr//FJ5KRXkuTR50jKR4\u002B6JwXBJ4xA0F3AwfpltBNQ5Wq/be36NjUBoHIx3I9Yfss6g==", - "attributes": { - "enabled": true, - "nbf": 1652724283, - "exp": 1684260883, - "created": 1652724883, - "updated": 1652724883, - "recoveryLevel": "CustomizedRecoverable\u002BPurgeable", - "recoverableDays": 7 - }, - "policy": { - "id": "https://fakekvurl.vault.azure.net/certificates/certBeginRecoverRehydrated2840213968/policy", - "key_props": { - "exportable": true, - "kty": "RSA", - "key_size": 2048, - "reuse_key": false - }, - "secret_props": { - "contentType": "application/x-pkcs12" - }, - "x509_props": { - "subject": "CN=DefaultPolicy", - "sans": {}, - "ekus": [ - "1.3.6.1.5.5.7.3.1", - "1.3.6.1.5.5.7.3.2" - ], - "key_usage": [ - "digitalSignature", - "keyEncipherment" - ], - "validity_months": 12, - "basic_constraints": { - "ca": false - } - }, - "lifetime_actions": [ - { - "trigger": { - "lifetime_percentage": 80 - }, - "action": { - "action_type": "AutoRenew" - } - } - ], - "issuer": { - "name": "Self" - }, - "attributes": { - "enabled": true, - "created": 1652715940, - "updated": 1652724876 - } - }, - "pending": { - "id": "https://fakekvurl.vault.azure.net/certificates/certBeginRecoverRehydrated2840213968/pending" - } - } - }, - { - "RequestUri": "https://fakekvurl.vault.azure.net/certificates/certBeginRecoverRehydrated2840213968/?api-version=7.3", - "RequestMethod": "GET", - "RequestHeaders": { - ":method": "GET", - "Accept": "application/json", - "Accept-Encoding": "gzip", - "Authorization": "Sanitized", - "User-Agent": "azsdk-go-azcertificates/v0.4.2 (go1.18; Windows_NT)" - }, - "RequestBody": null, - "StatusCode": 200, - "ResponseHeaders": { - "Cache-Control": "no-cache", - "Content-Length": "2441", - "Content-Type": "application/json; charset=utf-8", - "Date": "Mon, 16 May 2022 18:15:04 GMT", - "Expires": "-1", - "Pragma": "no-cache", - "Strict-Transport-Security": "max-age=31536000;includeSubDomains", - "X-Content-Type-Options": "nosniff", - "x-ms-keyvault-network-info": "conn_type=Ipv4;addr=73.83.78.150;act_addr_fam=InterNetwork;", - "x-ms-keyvault-region": "westus2", - "x-ms-keyvault-service-version": "1.9.395.1", - "x-ms-request-id": "1ab44092-2a45-4796-857a-b3e38ea4453c" - }, - "ResponseBody": { - "id": "https://fakekvurl.vault.azure.net/certificates/certBeginRecoverRehydrated2840213968/a9ce406e437d4d85ba3b286d34f9ddd4", - "kid": "https://fakekvurl.vault.azure.net/keys/certBeginRecoverRehydrated2840213968/a9ce406e437d4d85ba3b286d34f9ddd4", - "sid": "https://fakekvurl.vault.azure.net/secrets/certBeginRecoverRehydrated2840213968/a9ce406e437d4d85ba3b286d34f9ddd4", - "x5t": "YIlDA1W4hfk833Bo64qPCdOmgcw", - "cer": "MIIDNjCCAh6gAwIBAgIQXy\u002Bg7bkuS46EEN3uWuEtIzANBgkqhkiG9w0BAQsFADAYMRYwFAYDVQQDEw1EZWZhdWx0UG9saWN5MB4XDTIyMDUxNjE4MDQ0M1oXDTIzMDUxNjE4MTQ0M1owGDEWMBQGA1UEAxMNRGVmYXVsdFBvbGljeTCCASIwDQYJKoZIhvcNAQEBBQADggEPADCCAQoCggEBAKHNQPVVwvptFzhXWHASXVh1J8KUYLtgWBHE6DHhBSu6IF1LD39jAMgIPUw2edoZ4qi/f83AH7pe4CKxlY0nQiZOB/YnqEb7ynbIKqyWuGB1DA3F4aM46jQH0vNaUPIrnB5sMFeojOU3Rmk6T1xC6EHk9x4l1A9Pbx03rPJoCepi8o7S6xrNKNkQ8vzIDLSHn8z4YdyqwPIL2R5vmySKXc9ovEMLGcMayGvWS\u002BWAjq\u002BPJlv/THel95Qhokm0qeAUlafb//CiEIZksadaCKQZDidtyPTIyvR9ETbMb45te05YHnlxe7/TtySjhBvA7LuPeGjb\u002BWuFmyG2rwWLavKk\u002B/ECAwEAAaN8MHowDgYDVR0PAQH/BAQDAgWgMAkGA1UdEwQCMAAwHQYDVR0lBBYwFAYIKwYBBQUHAwEGCCsGAQUFBwMCMB8GA1UdIwQYMBaAFJrrEg75mu4H3oQhudErjGs/\u002B6V1MB0GA1UdDgQWBBSa6xIO\u002BZruB96EIbnRK4xrP/uldTANBgkqhkiG9w0BAQsFAAOCAQEAgu\u002B483kdC47BA5OgVvythCHg0gVQ\u002Bl82uxVhpufWEl8CRD0qLizOsDW0p8Ee4kkMFEGR09c8GNNW13g28t8yXwJh4X3hBmZvTSF\u002BINfSBvHuSEN3c9OeuBCS5xOhp5KVekfJiRS2zRTIZJi5vJTsSSjoTigv9Dxnv1j4rl/5Huyp/NWzYH/sw\u002BVVolNq7IUn1smIUup2W\u002BvWNE\u002BzCG3MgRFxIAjlZKwqeyJHhsnpyJHhVeMawNoH5ESMn7Fu5tieVOVdJlGLA5bwBgdIhFNsr//FJ5KRXkuTR50jKR4\u002B6JwXBJ4xA0F3AwfpltBNQ5Wq/be36NjUBoHIx3I9Yfss6g==", - "attributes": { - "enabled": true, - "nbf": 1652724283, - "exp": 1684260883, - "created": 1652724883, - "updated": 1652724883, - "recoveryLevel": "CustomizedRecoverable\u002BPurgeable", - "recoverableDays": 7 - }, - "policy": { - "id": "https://fakekvurl.vault.azure.net/certificates/certBeginRecoverRehydrated2840213968/policy", - "key_props": { - "exportable": true, - "kty": "RSA", - "key_size": 2048, - "reuse_key": false - }, - "secret_props": { - "contentType": "application/x-pkcs12" - }, - "x509_props": { - "subject": "CN=DefaultPolicy", - "sans": {}, - "ekus": [ - "1.3.6.1.5.5.7.3.1", - "1.3.6.1.5.5.7.3.2" - ], - "key_usage": [ - "digitalSignature", - "keyEncipherment" - ], - "validity_months": 12, - "basic_constraints": { - "ca": false - } - }, - "lifetime_actions": [ - { - "trigger": { - "lifetime_percentage": 80 - }, - "action": { - "action_type": "AutoRenew" - } - } - ], - "issuer": { - "name": "Self" - }, - "attributes": { - "enabled": true, - "created": 1652715940, - "updated": 1652724876 - } - }, - "pending": { - "id": "https://fakekvurl.vault.azure.net/certificates/certBeginRecoverRehydrated2840213968/pending" - } - } - } - ], - "Variables": {} -} diff --git a/sdk/keyvault/azcertificates/testdata/recordings/TestClient_CancelCertificateOperation.json b/sdk/keyvault/azcertificates/testdata/recordings/TestClient_CancelCertificateOperation.json deleted file mode 100644 index ba8de606d058..000000000000 --- a/sdk/keyvault/azcertificates/testdata/recordings/TestClient_CancelCertificateOperation.json +++ /dev/null @@ -1,243 +0,0 @@ -{ - "Entries": [ - { - "RequestUri": "https://fakekvurl.vault.azure.net/certificates/cert1291183961/create?api-version=7.3", - "RequestMethod": "POST", - "RequestHeaders": { - ":method": "POST", - "Accept": "application/json", - "Accept-Encoding": "gzip", - "Content-Length": "0", - "User-Agent": "azsdk-go-azcertificates/v0.4.2 (go1.18; Windows_NT)" - }, - "RequestBody": null, - "StatusCode": 401, - "ResponseHeaders": { - "Cache-Control": "no-cache", - "Content-Length": "97", - "Content-Type": "application/json; charset=utf-8", - "Date": "Mon, 16 May 2022 18:11:28 GMT", - "Expires": "-1", - "Pragma": "no-cache", - "Strict-Transport-Security": "max-age=31536000;includeSubDomains", - "WWW-Authenticate": "Bearer authorization=\u0022https://login.windows.net/00000000-0000-0000-0000-000000000000\u0022, resource=\u0022https://vault.azure.net\u0022", - "X-Content-Type-Options": "nosniff", - "x-ms-keyvault-network-info": "conn_type=Ipv4;addr=73.83.78.150;act_addr_fam=InterNetwork;", - "x-ms-keyvault-region": "westus2", - "x-ms-keyvault-service-version": "1.9.395.1", - "x-ms-request-id": "e8dcf59a-54c7-47c1-abe4-72ab5d62dc61" - }, - "ResponseBody": { - "error": { - "code": "Unauthorized", - "message": "AKV10000: Request is missing a Bearer or PoP token." - } - } - }, - { - "RequestUri": "https://fakekvurl.vault.azure.net/certificates/cert1291183961/create?api-version=7.3", - "RequestMethod": "POST", - "RequestHeaders": { - ":method": "POST", - "Accept": "application/json", - "Accept-Encoding": "gzip", - "Authorization": "Sanitized", - "Content-Length": "125", - "Content-Type": "application/json", - "User-Agent": "azsdk-go-azcertificates/v0.4.2 (go1.18; Windows_NT)" - }, - "RequestBody": { - "attributes": {}, - "policy": { - "issuer": { - "name": "Self" - }, - "secret_props": {}, - "x509_props": { - "sans": {}, - "subject": "CN=DefaultPolicy" - } - } - }, - "StatusCode": 202, - "ResponseHeaders": { - "Cache-Control": "no-cache", - "Content-Length": "1289", - "Content-Type": "application/json; charset=utf-8", - "Date": "Mon, 16 May 2022 18:11:28 GMT", - "Expires": "-1", - "Location": "https://fakekvurl.vault.azure.net/certificates/cert1291183961/pending?api-version=7.3\u0026request_id=e51ee3913aba4d7ab7fcb2b19666f0d5", - "Pragma": "no-cache", - "Retry-After": "10", - "Strict-Transport-Security": "max-age=31536000;includeSubDomains", - "X-Content-Type-Options": "nosniff", - "x-ms-keyvault-network-info": "conn_type=Ipv4;addr=73.83.78.150;act_addr_fam=InterNetwork;", - "x-ms-keyvault-region": "westus2", - "x-ms-keyvault-service-version": "1.9.395.1", - "x-ms-request-id": "2d4ba1db-4aac-449e-a53d-2ac02064ada1" - }, - "ResponseBody": { - "id": "https://fakekvurl.vault.azure.net/certificates/cert1291183961/pending", - "issuer": { - "name": "Self" - }, - "csr": "MIICqDCCAZACAQAwGDEWMBQGA1UEAxMNRGVmYXVsdFBvbGljeTCCASIwDQYJKoZIhvcNAQEBBQADggEPADCCAQoCggEBAMPvDf73I8D4JyKtVv2XNzkVm127qUJfmIveF8lNeYSpRK791VVwqobktiRBx1WtpBumA6A8WHepC7ccytq7\u002BNtJheby7fPfOv5mx\u002BskcoMBkCl\u002B0r3XLNd1nr\u002BFAlnfjDkEUcsa/YlD7z80QlBivFPeRLDvsmgTKVcZeq9PEUWHtHariFKLbFG7zucIz8OatXT5z/WF8Pb6RWeyMuZhvJQZX1vn8th9TL9lGvHdzEmm31QGYy\u002B/E3D0fIKTGuXruxeulzmaIfZHojf8DVjsw/mc4O8FeW7EoXfhrPmHrP5Ix5Q1l\u002BJwYVLah44p43jJZw6rhDN7jq7FchWgUkXvtY0CAwEAAaBLMEkGCSqGSIb3DQEJDjE8MDowDgYDVR0PAQH/BAQDAgWgMB0GA1UdJQQWMBQGCCsGAQUFBwMBBggrBgEFBQcDAjAJBgNVHRMEAjAAMA0GCSqGSIb3DQEBCwUAA4IBAQCIpd2vs15BgDiFHxGVopxGYNx38nANrE36RYNqWdzY9iMrczxNDiIdijNTs5u/89KCBjnQW83M3dnYuLuLdrC5GDqX1K6sV6XQ2o\u002BVLcFPjsbV6spg96rm5jbIXvtlGjvVKE4frO\u002BRHloe3QOQoJfqMW1rFOkXmNHKjqMfIPykCk6llbRaqM0439BhGGaqAaieVBF7WWAaAlAurMHrOO3nzgogKNnGUGd9pq\u002BC\u002B4S/fWH/79TBAZKB0VIV2eT\u002BulVZHAYQuYaCeg2wud3QyqpjLS/COG1vHA\u002Bm8hMXoUUbuO87KBJLBPM5k97qNecuY9PyB576r8xYAFRJyXE60AMO", - "cancellation_requested": false, - "status": "inProgress", - "status_details": "Pending certificate created. Certificate request is in progress. This may take some time based on the issuer provider. Please check again later.", - "request_id": "e51ee3913aba4d7ab7fcb2b19666f0d5" - } - }, - { - "RequestUri": "https://fakekvurl.vault.azure.net/certificates/cert1291183961/pending?api-version=7.3", - "RequestMethod": "PATCH", - "RequestHeaders": { - "Accept": "application/json", - "Accept-Encoding": "gzip", - "Authorization": "Sanitized", - "Content-Length": "31", - "Content-Type": "application/json", - "User-Agent": "azsdk-go-azcertificates/v0.4.2 (go1.18; Windows_NT)" - }, - "RequestBody": { - "cancellation_requested": true - }, - "StatusCode": 200, - "ResponseHeaders": { - "Cache-Control": "no-cache", - "Content-Length": "1288", - "Content-Type": "application/json; charset=utf-8", - "Date": "Mon, 16 May 2022 18:11:29 GMT", - "Expires": "-1", - "Pragma": "no-cache", - "Strict-Transport-Security": "max-age=31536000;includeSubDomains", - "X-Content-Type-Options": "nosniff", - "x-ms-keyvault-network-info": "conn_type=Ipv4;addr=73.83.78.150;act_addr_fam=InterNetwork;", - "x-ms-keyvault-region": "westus2", - "x-ms-keyvault-service-version": "1.9.395.1", - "x-ms-request-id": "03b245d9-2ace-4238-87f3-197c021ad84f" - }, - "ResponseBody": { - "id": "https://fakekvurl.vault.azure.net/certificates/cert1291183961/pending", - "issuer": { - "name": "Self" - }, - "csr": "MIICqDCCAZACAQAwGDEWMBQGA1UEAxMNRGVmYXVsdFBvbGljeTCCASIwDQYJKoZIhvcNAQEBBQADggEPADCCAQoCggEBAMPvDf73I8D4JyKtVv2XNzkVm127qUJfmIveF8lNeYSpRK791VVwqobktiRBx1WtpBumA6A8WHepC7ccytq7\u002BNtJheby7fPfOv5mx\u002BskcoMBkCl\u002B0r3XLNd1nr\u002BFAlnfjDkEUcsa/YlD7z80QlBivFPeRLDvsmgTKVcZeq9PEUWHtHariFKLbFG7zucIz8OatXT5z/WF8Pb6RWeyMuZhvJQZX1vn8th9TL9lGvHdzEmm31QGYy\u002B/E3D0fIKTGuXruxeulzmaIfZHojf8DVjsw/mc4O8FeW7EoXfhrPmHrP5Ix5Q1l\u002BJwYVLah44p43jJZw6rhDN7jq7FchWgUkXvtY0CAwEAAaBLMEkGCSqGSIb3DQEJDjE8MDowDgYDVR0PAQH/BAQDAgWgMB0GA1UdJQQWMBQGCCsGAQUFBwMBBggrBgEFBQcDAjAJBgNVHRMEAjAAMA0GCSqGSIb3DQEBCwUAA4IBAQCIpd2vs15BgDiFHxGVopxGYNx38nANrE36RYNqWdzY9iMrczxNDiIdijNTs5u/89KCBjnQW83M3dnYuLuLdrC5GDqX1K6sV6XQ2o\u002BVLcFPjsbV6spg96rm5jbIXvtlGjvVKE4frO\u002BRHloe3QOQoJfqMW1rFOkXmNHKjqMfIPykCk6llbRaqM0439BhGGaqAaieVBF7WWAaAlAurMHrOO3nzgogKNnGUGd9pq\u002BC\u002B4S/fWH/79TBAZKB0VIV2eT\u002BulVZHAYQuYaCeg2wud3QyqpjLS/COG1vHA\u002Bm8hMXoUUbuO87KBJLBPM5k97qNecuY9PyB576r8xYAFRJyXE60AMO", - "cancellation_requested": true, - "status": "inProgress", - "status_details": "Pending certificate created. Certificate request is in progress. This may take some time based on the issuer provider. Please check again later.", - "request_id": "e51ee3913aba4d7ab7fcb2b19666f0d5" - } - }, - { - "RequestUri": "https://fakekvurl.vault.azure.net/certificates/cert1291183961/pending?api-version=7.3", - "RequestMethod": "GET", - "RequestHeaders": { - ":method": "GET", - "Accept": "application/json", - "Accept-Encoding": "gzip", - "Authorization": "Sanitized", - "User-Agent": "azsdk-go-azcertificates/v0.4.2 (go1.18; Windows_NT)" - }, - "RequestBody": null, - "StatusCode": 200, - "ResponseHeaders": { - "Cache-Control": "no-cache", - "Content-Length": "1288", - "Content-Type": "application/json; charset=utf-8", - "Date": "Mon, 16 May 2022 18:11:29 GMT", - "Expires": "-1", - "Pragma": "no-cache", - "Retry-After": "10", - "Strict-Transport-Security": "max-age=31536000;includeSubDomains", - "X-Content-Type-Options": "nosniff", - "x-ms-keyvault-network-info": "conn_type=Ipv4;addr=73.83.78.150;act_addr_fam=InterNetwork;", - "x-ms-keyvault-region": "westus2", - "x-ms-keyvault-service-version": "1.9.395.1", - "x-ms-request-id": "ac29e2fe-0eb6-48a3-b997-1518a3e3b543" - }, - "ResponseBody": { - "id": "https://fakekvurl.vault.azure.net/certificates/cert1291183961/pending", - "issuer": { - "name": "Self" - }, - "csr": "MIICqDCCAZACAQAwGDEWMBQGA1UEAxMNRGVmYXVsdFBvbGljeTCCASIwDQYJKoZIhvcNAQEBBQADggEPADCCAQoCggEBAMPvDf73I8D4JyKtVv2XNzkVm127qUJfmIveF8lNeYSpRK791VVwqobktiRBx1WtpBumA6A8WHepC7ccytq7\u002BNtJheby7fPfOv5mx\u002BskcoMBkCl\u002B0r3XLNd1nr\u002BFAlnfjDkEUcsa/YlD7z80QlBivFPeRLDvsmgTKVcZeq9PEUWHtHariFKLbFG7zucIz8OatXT5z/WF8Pb6RWeyMuZhvJQZX1vn8th9TL9lGvHdzEmm31QGYy\u002B/E3D0fIKTGuXruxeulzmaIfZHojf8DVjsw/mc4O8FeW7EoXfhrPmHrP5Ix5Q1l\u002BJwYVLah44p43jJZw6rhDN7jq7FchWgUkXvtY0CAwEAAaBLMEkGCSqGSIb3DQEJDjE8MDowDgYDVR0PAQH/BAQDAgWgMB0GA1UdJQQWMBQGCCsGAQUFBwMBBggrBgEFBQcDAjAJBgNVHRMEAjAAMA0GCSqGSIb3DQEBCwUAA4IBAQCIpd2vs15BgDiFHxGVopxGYNx38nANrE36RYNqWdzY9iMrczxNDiIdijNTs5u/89KCBjnQW83M3dnYuLuLdrC5GDqX1K6sV6XQ2o\u002BVLcFPjsbV6spg96rm5jbIXvtlGjvVKE4frO\u002BRHloe3QOQoJfqMW1rFOkXmNHKjqMfIPykCk6llbRaqM0439BhGGaqAaieVBF7WWAaAlAurMHrOO3nzgogKNnGUGd9pq\u002BC\u002B4S/fWH/79TBAZKB0VIV2eT\u002BulVZHAYQuYaCeg2wud3QyqpjLS/COG1vHA\u002Bm8hMXoUUbuO87KBJLBPM5k97qNecuY9PyB576r8xYAFRJyXE60AMO", - "cancellation_requested": true, - "status": "inProgress", - "status_details": "Pending certificate created. Certificate request is in progress. This may take some time based on the issuer provider. Please check again later.", - "request_id": "e51ee3913aba4d7ab7fcb2b19666f0d5" - } - }, - { - "RequestUri": "https://fakekvurl.vault.azure.net/certificates/cert1291183961/pending?api-version=7.3", - "RequestMethod": "DELETE", - "RequestHeaders": { - "Accept": "application/json", - "Accept-Encoding": "gzip", - "Authorization": "Sanitized", - "User-Agent": "azsdk-go-azcertificates/v0.4.2 (go1.18; Windows_NT)" - }, - "RequestBody": null, - "StatusCode": 200, - "ResponseHeaders": { - "Cache-Control": "no-cache", - "Content-Length": "1288", - "Content-Type": "application/json; charset=utf-8", - "Date": "Mon, 16 May 2022 18:11:29 GMT", - "Expires": "-1", - "Pragma": "no-cache", - "Strict-Transport-Security": "max-age=31536000;includeSubDomains", - "X-Content-Type-Options": "nosniff", - "x-ms-keyvault-network-info": "conn_type=Ipv4;addr=73.83.78.150;act_addr_fam=InterNetwork;", - "x-ms-keyvault-region": "westus2", - "x-ms-keyvault-service-version": "1.9.395.1", - "x-ms-request-id": "6e66b71a-0d25-47c8-b11d-a2c2946fcd4f" - }, - "ResponseBody": { - "id": "https://fakekvurl.vault.azure.net/certificates/cert1291183961/pending", - "issuer": { - "name": "Self" - }, - "csr": "MIICqDCCAZACAQAwGDEWMBQGA1UEAxMNRGVmYXVsdFBvbGljeTCCASIwDQYJKoZIhvcNAQEBBQADggEPADCCAQoCggEBAMPvDf73I8D4JyKtVv2XNzkVm127qUJfmIveF8lNeYSpRK791VVwqobktiRBx1WtpBumA6A8WHepC7ccytq7\u002BNtJheby7fPfOv5mx\u002BskcoMBkCl\u002B0r3XLNd1nr\u002BFAlnfjDkEUcsa/YlD7z80QlBivFPeRLDvsmgTKVcZeq9PEUWHtHariFKLbFG7zucIz8OatXT5z/WF8Pb6RWeyMuZhvJQZX1vn8th9TL9lGvHdzEmm31QGYy\u002B/E3D0fIKTGuXruxeulzmaIfZHojf8DVjsw/mc4O8FeW7EoXfhrPmHrP5Ix5Q1l\u002BJwYVLah44p43jJZw6rhDN7jq7FchWgUkXvtY0CAwEAAaBLMEkGCSqGSIb3DQEJDjE8MDowDgYDVR0PAQH/BAQDAgWgMB0GA1UdJQQWMBQGCCsGAQUFBwMBBggrBgEFBQcDAjAJBgNVHRMEAjAAMA0GCSqGSIb3DQEBCwUAA4IBAQCIpd2vs15BgDiFHxGVopxGYNx38nANrE36RYNqWdzY9iMrczxNDiIdijNTs5u/89KCBjnQW83M3dnYuLuLdrC5GDqX1K6sV6XQ2o\u002BVLcFPjsbV6spg96rm5jbIXvtlGjvVKE4frO\u002BRHloe3QOQoJfqMW1rFOkXmNHKjqMfIPykCk6llbRaqM0439BhGGaqAaieVBF7WWAaAlAurMHrOO3nzgogKNnGUGd9pq\u002BC\u002B4S/fWH/79TBAZKB0VIV2eT\u002BulVZHAYQuYaCeg2wud3QyqpjLS/COG1vHA\u002Bm8hMXoUUbuO87KBJLBPM5k97qNecuY9PyB576r8xYAFRJyXE60AMO", - "cancellation_requested": true, - "status": "inProgress", - "status_details": "Pending certificate created. Certificate request is in progress. This may take some time based on the issuer provider. Please check again later.", - "request_id": "e51ee3913aba4d7ab7fcb2b19666f0d5" - } - }, - { - "RequestUri": "https://fakekvurl.vault.azure.net/certificates/cert1291183961/pending?api-version=7.3", - "RequestMethod": "GET", - "RequestHeaders": { - ":method": "GET", - "Accept": "application/json", - "Accept-Encoding": "gzip", - "Authorization": "Sanitized", - "User-Agent": "azsdk-go-azcertificates/v0.4.2 (go1.18; Windows_NT)" - }, - "RequestBody": null, - "StatusCode": 404, - "ResponseHeaders": { - "Cache-Control": "no-cache", - "Content-Length": "105", - "Content-Type": "application/json; charset=utf-8", - "Date": "Mon, 16 May 2022 18:11:29 GMT", - "Expires": "-1", - "Pragma": "no-cache", - "Strict-Transport-Security": "max-age=31536000;includeSubDomains", - "X-Content-Type-Options": "nosniff", - "x-ms-keyvault-network-info": "conn_type=Ipv4;addr=73.83.78.150;act_addr_fam=InterNetwork;", - "x-ms-keyvault-region": "westus2", - "x-ms-keyvault-service-version": "1.9.395.1", - "x-ms-request-id": "6a8d48b7-3211-4f61-88d3-39076bf8e3a2" - }, - "ResponseBody": { - "error": { - "code": "PendingCertificateNotFound", - "message": "Pending certificate not found: cert1291183961" - } - } - } - ], - "Variables": {} -} diff --git a/sdk/keyvault/azcertificates/testdata/recordings/TestClient_ContactsCRUD.json b/sdk/keyvault/azcertificates/testdata/recordings/TestClient_ContactsCRUD.json deleted file mode 100644 index 408452b183cc..000000000000 --- a/sdk/keyvault/azcertificates/testdata/recordings/TestClient_ContactsCRUD.json +++ /dev/null @@ -1,210 +0,0 @@ -{ - "Entries": [ - { - "RequestUri": "https://fakekvurl.vault.azure.net/certificates/contacts?api-version=7.3", - "RequestMethod": "PUT", - "RequestHeaders": { - "Accept": "application/json", - "Accept-Encoding": "gzip", - "Content-Length": "0", - "User-Agent": "azsdk-go-azcertificates/v0.4.2 (go1.18; Windows_NT)" - }, - "RequestBody": null, - "StatusCode": 401, - "ResponseHeaders": { - "Cache-Control": "no-cache", - "Content-Length": "97", - "Content-Type": "application/json; charset=utf-8", - "Date": "Mon, 16 May 2022 18:13:49 GMT", - "Expires": "-1", - "Pragma": "no-cache", - "Strict-Transport-Security": "max-age=31536000;includeSubDomains", - "WWW-Authenticate": "Bearer authorization=\u0022https://login.windows.net/00000000-0000-0000-0000-000000000000\u0022, resource=\u0022https://vault.azure.net\u0022", - "X-Content-Type-Options": "nosniff", - "x-ms-keyvault-network-info": "conn_type=Ipv4;addr=73.83.78.150;act_addr_fam=InterNetwork;", - "x-ms-keyvault-region": "westus2", - "x-ms-keyvault-service-version": "1.9.395.1", - "x-ms-request-id": "c56a074b-90df-4137-9a12-d25a3df46336" - }, - "ResponseBody": { - "error": { - "code": "Unauthorized", - "message": "AKV10000: Request is missing a Bearer or PoP token." - } - } - }, - { - "RequestUri": "https://fakekvurl.vault.azure.net/certificates/contacts?api-version=7.3", - "RequestMethod": "PUT", - "RequestHeaders": { - "Accept": "application/json", - "Accept-Encoding": "gzip", - "Authorization": "Sanitized", - "Content-Length": "155", - "Content-Type": "application/json", - "User-Agent": "azsdk-go-azcertificates/v0.4.2 (go1.18; Windows_NT)" - }, - "RequestBody": { - "contacts": [ - { - "email": "admin@microsoft.com", - "name": "John Doe", - "phone": "1111111111" - }, - { - "email": "admin@contoso.com", - "name": "Jane Doey", - "phone": "2222222222" - } - ] - }, - "StatusCode": 200, - "ResponseHeaders": { - "Cache-Control": "no-cache", - "Content-Length": "218", - "Content-Type": "application/json; charset=utf-8", - "Date": "Mon, 16 May 2022 18:13:50 GMT", - "Expires": "-1", - "Pragma": "no-cache", - "Strict-Transport-Security": "max-age=31536000;includeSubDomains", - "X-Content-Type-Options": "nosniff", - "x-ms-keyvault-network-info": "conn_type=Ipv4;addr=73.83.78.150;act_addr_fam=InterNetwork;", - "x-ms-keyvault-region": "westus2", - "x-ms-keyvault-service-version": "1.9.395.1", - "x-ms-request-id": "5faad675-89c1-459a-8814-a78e7562f499" - }, - "ResponseBody": { - "id": "https://fakekvurl.vault.azure.net/certificates/contacts", - "contacts": [ - { - "email": "admin@microsoft.com", - "name": "John Doe", - "phone": "1111111111" - }, - { - "email": "admin@contoso.com", - "name": "Jane Doey", - "phone": "2222222222" - } - ] - } - }, - { - "RequestUri": "https://fakekvurl.vault.azure.net/certificates/contacts?api-version=7.3", - "RequestMethod": "GET", - "RequestHeaders": { - ":method": "GET", - "Accept": "application/json", - "Accept-Encoding": "gzip", - "Authorization": "Sanitized", - "User-Agent": "azsdk-go-azcertificates/v0.4.2 (go1.18; Windows_NT)" - }, - "RequestBody": null, - "StatusCode": 200, - "ResponseHeaders": { - "Cache-Control": "no-cache", - "Content-Length": "218", - "Content-Type": "application/json; charset=utf-8", - "Date": "Mon, 16 May 2022 18:13:50 GMT", - "Expires": "-1", - "Pragma": "no-cache", - "Strict-Transport-Security": "max-age=31536000;includeSubDomains", - "X-Content-Type-Options": "nosniff", - "x-ms-keyvault-network-info": "conn_type=Ipv4;addr=73.83.78.150;act_addr_fam=InterNetwork;", - "x-ms-keyvault-region": "westus2", - "x-ms-keyvault-service-version": "1.9.395.1", - "x-ms-request-id": "9550f5b1-7fb2-4af0-8c2d-644956bd28d8" - }, - "ResponseBody": { - "id": "https://fakekvurl.vault.azure.net/certificates/contacts", - "contacts": [ - { - "email": "admin@microsoft.com", - "name": "John Doe", - "phone": "1111111111" - }, - { - "email": "admin@contoso.com", - "name": "Jane Doey", - "phone": "2222222222" - } - ] - } - }, - { - "RequestUri": "https://fakekvurl.vault.azure.net/certificates/contacts?api-version=7.3", - "RequestMethod": "DELETE", - "RequestHeaders": { - "Accept": "application/json", - "Accept-Encoding": "gzip", - "Authorization": "Sanitized", - "User-Agent": "azsdk-go-azcertificates/v0.4.2 (go1.18; Windows_NT)" - }, - "RequestBody": null, - "StatusCode": 200, - "ResponseHeaders": { - "Cache-Control": "no-cache", - "Content-Length": "218", - "Content-Type": "application/json; charset=utf-8", - "Date": "Mon, 16 May 2022 18:13:50 GMT", - "Expires": "-1", - "Pragma": "no-cache", - "Strict-Transport-Security": "max-age=31536000;includeSubDomains", - "X-Content-Type-Options": "nosniff", - "x-ms-keyvault-network-info": "conn_type=Ipv4;addr=73.83.78.150;act_addr_fam=InterNetwork;", - "x-ms-keyvault-region": "westus2", - "x-ms-keyvault-service-version": "1.9.395.1", - "x-ms-request-id": "4f5cf9c4-39d3-4826-a6d2-319967bcf7ab" - }, - "ResponseBody": { - "id": "https://fakekvurl.vault.azure.net/certificates/contacts", - "contacts": [ - { - "email": "admin@microsoft.com", - "name": "John Doe", - "phone": "1111111111" - }, - { - "email": "admin@contoso.com", - "name": "Jane Doey", - "phone": "2222222222" - } - ] - } - }, - { - "RequestUri": "https://fakekvurl.vault.azure.net/certificates/contacts?api-version=7.3", - "RequestMethod": "GET", - "RequestHeaders": { - ":method": "GET", - "Accept": "application/json", - "Accept-Encoding": "gzip", - "Authorization": "Sanitized", - "User-Agent": "azsdk-go-azcertificates/v0.4.2 (go1.18; Windows_NT)" - }, - "RequestBody": null, - "StatusCode": 404, - "ResponseHeaders": { - "Cache-Control": "no-cache", - "Content-Length": "68", - "Content-Type": "application/json; charset=utf-8", - "Date": "Mon, 16 May 2022 18:13:50 GMT", - "Expires": "-1", - "Pragma": "no-cache", - "Strict-Transport-Security": "max-age=31536000;includeSubDomains", - "X-Content-Type-Options": "nosniff", - "x-ms-keyvault-network-info": "conn_type=Ipv4;addr=73.83.78.150;act_addr_fam=InterNetwork;", - "x-ms-keyvault-region": "westus2", - "x-ms-keyvault-service-version": "1.9.395.1", - "x-ms-request-id": "7a7a6490-d023-4705-a82d-858d4acca4b3" - }, - "ResponseBody": { - "error": { - "code": "ContactsNotFound", - "message": "Contacts not found" - } - } - } - ], - "Variables": {} -} diff --git a/sdk/keyvault/azcertificates/testdata/recordings/TestClient_GetCertificateOperation.json b/sdk/keyvault/azcertificates/testdata/recordings/TestClient_GetCertificateOperation.json deleted file mode 100644 index c0c94dc4aa79..000000000000 --- a/sdk/keyvault/azcertificates/testdata/recordings/TestClient_GetCertificateOperation.json +++ /dev/null @@ -1,677 +0,0 @@ -{ - "Entries": [ - { - "RequestUri": "https://fakekvurl.vault.azure.net/certificates/cert2648374337/create?api-version=7.3", - "RequestMethod": "POST", - "RequestHeaders": { - ":method": "POST", - "Accept": "application/json", - "Accept-Encoding": "gzip", - "Content-Length": "0", - "User-Agent": "azsdk-go-azcertificates/v0.4.2 (go1.18; Windows_NT)" - }, - "RequestBody": null, - "StatusCode": 401, - "ResponseHeaders": { - "Cache-Control": "no-cache", - "Content-Length": "97", - "Content-Type": "application/json; charset=utf-8", - "Date": "Mon, 16 May 2022 18:11:01 GMT", - "Expires": "-1", - "Pragma": "no-cache", - "Strict-Transport-Security": "max-age=31536000;includeSubDomains", - "WWW-Authenticate": "Bearer authorization=\u0022https://login.windows.net/00000000-0000-0000-0000-000000000000\u0022, resource=\u0022https://vault.azure.net\u0022", - "X-Content-Type-Options": "nosniff", - "x-ms-keyvault-network-info": "conn_type=Ipv4;addr=73.83.78.150;act_addr_fam=InterNetwork;", - "x-ms-keyvault-region": "westus2", - "x-ms-keyvault-service-version": "1.9.395.1", - "x-ms-request-id": "4b4dd36f-b376-419d-ad21-b111717638d2" - }, - "ResponseBody": { - "error": { - "code": "Unauthorized", - "message": "AKV10000: Request is missing a Bearer or PoP token." - } - } - }, - { - "RequestUri": "https://fakekvurl.vault.azure.net/certificates/cert2648374337/create?api-version=7.3", - "RequestMethod": "POST", - "RequestHeaders": { - ":method": "POST", - "Accept": "application/json", - "Accept-Encoding": "gzip", - "Authorization": "Sanitized", - "Content-Length": "125", - "Content-Type": "application/json", - "User-Agent": "azsdk-go-azcertificates/v0.4.2 (go1.18; Windows_NT)" - }, - "RequestBody": { - "attributes": {}, - "policy": { - "issuer": { - "name": "Self" - }, - "secret_props": {}, - "x509_props": { - "sans": {}, - "subject": "CN=DefaultPolicy" - } - } - }, - "StatusCode": 202, - "ResponseHeaders": { - "Cache-Control": "no-cache", - "Content-Length": "1289", - "Content-Type": "application/json; charset=utf-8", - "Date": "Mon, 16 May 2022 18:11:02 GMT", - "Expires": "-1", - "Location": "https://fakekvurl.vault.azure.net/certificates/cert2648374337/pending?api-version=7.3\u0026request_id=1143365f55af4606baef99cd6205190a", - "Pragma": "no-cache", - "Retry-After": "10", - "Strict-Transport-Security": "max-age=31536000;includeSubDomains", - "X-Content-Type-Options": "nosniff", - "x-ms-keyvault-network-info": "conn_type=Ipv4;addr=73.83.78.150;act_addr_fam=InterNetwork;", - "x-ms-keyvault-region": "westus2", - "x-ms-keyvault-service-version": "1.9.395.1", - "x-ms-request-id": "9eb3b918-b32b-4a38-8370-7d2447210b72" - }, - "ResponseBody": { - "id": "https://fakekvurl.vault.azure.net/certificates/cert2648374337/pending", - "issuer": { - "name": "Self" - }, - "csr": "MIICqDCCAZACAQAwGDEWMBQGA1UEAxMNRGVmYXVsdFBvbGljeTCCASIwDQYJKoZIhvcNAQEBBQADggEPADCCAQoCggEBALoyuY53yvOk5p3OSYV\u002B\u002Bp83dQizSJRqhK/W9Qlpu0pDvesZVewEM1\u002BZDDegdKduVXYO8vzJPlddqYIJYFAKAUJlcQ6RnSFLMU5B3I5S0svQ38oDqNRJcYvhQK6vCXXDFxLBf6dkYWRp2V2aLnSafTqSoeNQDs7ExcEdLgNADzeIRcfiTUm1VqnQr4lttaYL8CVMT1fCQoXfU5tOO6sQIHNRGwYe1gnJQrpdy0VJEwRaTiiShHHtFtcMCEe8D9yoOMlYdBEEx9MDLH7PsQXhQbxZaVNkkyiPRthkwGF4On\u002BCI31rkRI5X25cImihwNO733fK/K6eNLO\u002Br0ccqr2exl0CAwEAAaBLMEkGCSqGSIb3DQEJDjE8MDowDgYDVR0PAQH/BAQDAgWgMB0GA1UdJQQWMBQGCCsGAQUFBwMBBggrBgEFBQcDAjAJBgNVHRMEAjAAMA0GCSqGSIb3DQEBCwUAA4IBAQC1mfr/fe61z9YHtacPte9KOniVFnHTKwl/nDs1ZQx28YmcXVUsV0j1w0h3HTqDel4nWaQqT8XA3UPICtehOXgfVF\u002BLymCnZPWiHJlz6Tr25HbT00JxDk5UXLlajm4\u002BR1lUMw4nD6KelnBc7y0ld\u002BmdO0zQHTtEuILcbtJy7DRiG3mE3hIRoI2Ie1G0MAyFzEpLCeUS2vB/3OWgPIkdFCQbSXCpmK0KDCssQyhVVRTFtKA92mlydsJL9B4Id3TOPx5VhKOutLTuFfhbuTSUQrNH5U4W227MtD12/yy1L5wyMtk0wfIXrcXPGIiBrUC9b6YIP76iH7ODBcTVub3oYF8e", - "cancellation_requested": false, - "status": "inProgress", - "status_details": "Pending certificate created. Certificate request is in progress. This may take some time based on the issuer provider. Please check again later.", - "request_id": "1143365f55af4606baef99cd6205190a" - } - }, - { - "RequestUri": "https://fakekvurl.vault.azure.net/certificates/cert2648374337/pending?api-version=7.3\u0026request_id=1143365f55af4606baef99cd6205190a", - "RequestMethod": "GET", - "RequestHeaders": { - ":method": "GET", - "Accept-Encoding": "gzip", - "Authorization": "Sanitized", - "User-Agent": "azsdk-go-azcertificates/v0.4.2 (go1.18; Windows_NT)" - }, - "RequestBody": null, - "StatusCode": 200, - "ResponseHeaders": { - "Cache-Control": "no-cache", - "Content-Length": "1289", - "Content-Type": "application/json; charset=utf-8", - "Date": "Mon, 16 May 2022 18:11:12 GMT", - "Expires": "-1", - "Pragma": "no-cache", - "Retry-After": "10", - "Strict-Transport-Security": "max-age=31536000;includeSubDomains", - "X-Content-Type-Options": "nosniff", - "x-ms-keyvault-network-info": "conn_type=Ipv4;addr=73.83.78.150;act_addr_fam=InterNetwork;", - "x-ms-keyvault-region": "westus2", - "x-ms-keyvault-service-version": "1.9.395.1", - "x-ms-request-id": "e6ddb429-fffd-4741-ba2b-c38d61007a34" - }, - "ResponseBody": { - "id": "https://fakekvurl.vault.azure.net/certificates/cert2648374337/pending", - "issuer": { - "name": "Self" - }, - "csr": "MIICqDCCAZACAQAwGDEWMBQGA1UEAxMNRGVmYXVsdFBvbGljeTCCASIwDQYJKoZIhvcNAQEBBQADggEPADCCAQoCggEBALoyuY53yvOk5p3OSYV\u002B\u002Bp83dQizSJRqhK/W9Qlpu0pDvesZVewEM1\u002BZDDegdKduVXYO8vzJPlddqYIJYFAKAUJlcQ6RnSFLMU5B3I5S0svQ38oDqNRJcYvhQK6vCXXDFxLBf6dkYWRp2V2aLnSafTqSoeNQDs7ExcEdLgNADzeIRcfiTUm1VqnQr4lttaYL8CVMT1fCQoXfU5tOO6sQIHNRGwYe1gnJQrpdy0VJEwRaTiiShHHtFtcMCEe8D9yoOMlYdBEEx9MDLH7PsQXhQbxZaVNkkyiPRthkwGF4On\u002BCI31rkRI5X25cImihwNO733fK/K6eNLO\u002Br0ccqr2exl0CAwEAAaBLMEkGCSqGSIb3DQEJDjE8MDowDgYDVR0PAQH/BAQDAgWgMB0GA1UdJQQWMBQGCCsGAQUFBwMBBggrBgEFBQcDAjAJBgNVHRMEAjAAMA0GCSqGSIb3DQEBCwUAA4IBAQC1mfr/fe61z9YHtacPte9KOniVFnHTKwl/nDs1ZQx28YmcXVUsV0j1w0h3HTqDel4nWaQqT8XA3UPICtehOXgfVF\u002BLymCnZPWiHJlz6Tr25HbT00JxDk5UXLlajm4\u002BR1lUMw4nD6KelnBc7y0ld\u002BmdO0zQHTtEuILcbtJy7DRiG3mE3hIRoI2Ie1G0MAyFzEpLCeUS2vB/3OWgPIkdFCQbSXCpmK0KDCssQyhVVRTFtKA92mlydsJL9B4Id3TOPx5VhKOutLTuFfhbuTSUQrNH5U4W227MtD12/yy1L5wyMtk0wfIXrcXPGIiBrUC9b6YIP76iH7ODBcTVub3oYF8e", - "cancellation_requested": false, - "status": "inProgress", - "status_details": "Pending certificate created. Certificate request is in progress. This may take some time based on the issuer provider. Please check again later.", - "request_id": "1143365f55af4606baef99cd6205190a" - } - }, - { - "RequestUri": "https://fakekvurl.vault.azure.net/certificates/cert2648374337/pending?api-version=7.3\u0026request_id=1143365f55af4606baef99cd6205190a", - "RequestMethod": "GET", - "RequestHeaders": { - ":method": "GET", - "Accept-Encoding": "gzip", - "Authorization": "Sanitized", - "User-Agent": "azsdk-go-azcertificates/v0.4.2 (go1.18; Windows_NT)" - }, - "RequestBody": null, - "StatusCode": 200, - "ResponseHeaders": { - "Cache-Control": "no-cache", - "Content-Length": "1197", - "Content-Type": "application/json; charset=utf-8", - "Date": "Mon, 16 May 2022 18:11:22 GMT", - "Expires": "-1", - "Pragma": "no-cache", - "Strict-Transport-Security": "max-age=31536000;includeSubDomains", - "X-Content-Type-Options": "nosniff", - "x-ms-keyvault-network-info": "conn_type=Ipv4;addr=73.83.78.150;act_addr_fam=InterNetwork;", - "x-ms-keyvault-region": "westus2", - "x-ms-keyvault-service-version": "1.9.395.1", - "x-ms-request-id": "59b8424b-8e46-46b9-b5c4-c79e9c9c5a0d" - }, - "ResponseBody": { - "id": "https://fakekvurl.vault.azure.net/certificates/cert2648374337/pending", - "issuer": { - "name": "Self" - }, - "csr": "MIICqDCCAZACAQAwGDEWMBQGA1UEAxMNRGVmYXVsdFBvbGljeTCCASIwDQYJKoZIhvcNAQEBBQADggEPADCCAQoCggEBALoyuY53yvOk5p3OSYV\u002B\u002Bp83dQizSJRqhK/W9Qlpu0pDvesZVewEM1\u002BZDDegdKduVXYO8vzJPlddqYIJYFAKAUJlcQ6RnSFLMU5B3I5S0svQ38oDqNRJcYvhQK6vCXXDFxLBf6dkYWRp2V2aLnSafTqSoeNQDs7ExcEdLgNADzeIRcfiTUm1VqnQr4lttaYL8CVMT1fCQoXfU5tOO6sQIHNRGwYe1gnJQrpdy0VJEwRaTiiShHHtFtcMCEe8D9yoOMlYdBEEx9MDLH7PsQXhQbxZaVNkkyiPRthkwGF4On\u002BCI31rkRI5X25cImihwNO733fK/K6eNLO\u002Br0ccqr2exl0CAwEAAaBLMEkGCSqGSIb3DQEJDjE8MDowDgYDVR0PAQH/BAQDAgWgMB0GA1UdJQQWMBQGCCsGAQUFBwMBBggrBgEFBQcDAjAJBgNVHRMEAjAAMA0GCSqGSIb3DQEBCwUAA4IBAQC1mfr/fe61z9YHtacPte9KOniVFnHTKwl/nDs1ZQx28YmcXVUsV0j1w0h3HTqDel4nWaQqT8XA3UPICtehOXgfVF\u002BLymCnZPWiHJlz6Tr25HbT00JxDk5UXLlajm4\u002BR1lUMw4nD6KelnBc7y0ld\u002BmdO0zQHTtEuILcbtJy7DRiG3mE3hIRoI2Ie1G0MAyFzEpLCeUS2vB/3OWgPIkdFCQbSXCpmK0KDCssQyhVVRTFtKA92mlydsJL9B4Id3TOPx5VhKOutLTuFfhbuTSUQrNH5U4W227MtD12/yy1L5wyMtk0wfIXrcXPGIiBrUC9b6YIP76iH7ODBcTVub3oYF8e", - "cancellation_requested": false, - "status": "completed", - "target": "https://fakekvurl.vault.azure.net/certificates/cert2648374337", - "request_id": "1143365f55af4606baef99cd6205190a" - } - }, - { - "RequestUri": "https://fakekvurl.vault.azure.net/certificates/cert2648374337/?api-version=7.3", - "RequestMethod": "GET", - "RequestHeaders": { - ":method": "GET", - "Accept": "application/json", - "Accept-Encoding": "gzip", - "Authorization": "Sanitized", - "User-Agent": "azsdk-go-azcertificates/v0.4.2 (go1.18; Windows_NT)" - }, - "RequestBody": null, - "StatusCode": 200, - "ResponseHeaders": { - "Cache-Control": "no-cache", - "Content-Length": "2331", - "Content-Type": "application/json; charset=utf-8", - "Date": "Mon, 16 May 2022 18:11:22 GMT", - "Expires": "-1", - "Pragma": "no-cache", - "Strict-Transport-Security": "max-age=31536000;includeSubDomains", - "X-Content-Type-Options": "nosniff", - "x-ms-keyvault-network-info": "conn_type=Ipv4;addr=73.83.78.150;act_addr_fam=InterNetwork;", - "x-ms-keyvault-region": "westus2", - "x-ms-keyvault-service-version": "1.9.395.1", - "x-ms-request-id": "05db978e-609c-485d-81bd-3fbdc7ff0a82" - }, - "ResponseBody": { - "id": "https://fakekvurl.vault.azure.net/certificates/cert2648374337/0ce57d8341d94538b4bec55300281c57", - "kid": "https://fakekvurl.vault.azure.net/keys/cert2648374337/0ce57d8341d94538b4bec55300281c57", - "sid": "https://fakekvurl.vault.azure.net/secrets/cert2648374337/0ce57d8341d94538b4bec55300281c57", - "x5t": "jLZiWrTGSR8yE5thvO_1dnKt0U0", - "cer": "MIIDNjCCAh6gAwIBAgIQUyzdeBaZTMaaWFSgvOhL3zANBgkqhkiG9w0BAQsFADAYMRYwFAYDVQQDEw1EZWZhdWx0UG9saWN5MB4XDTIyMDUxNjE4MDExOFoXDTIzMDUxNjE4MTExOFowGDEWMBQGA1UEAxMNRGVmYXVsdFBvbGljeTCCASIwDQYJKoZIhvcNAQEBBQADggEPADCCAQoCggEBALoyuY53yvOk5p3OSYV\u002B\u002Bp83dQizSJRqhK/W9Qlpu0pDvesZVewEM1\u002BZDDegdKduVXYO8vzJPlddqYIJYFAKAUJlcQ6RnSFLMU5B3I5S0svQ38oDqNRJcYvhQK6vCXXDFxLBf6dkYWRp2V2aLnSafTqSoeNQDs7ExcEdLgNADzeIRcfiTUm1VqnQr4lttaYL8CVMT1fCQoXfU5tOO6sQIHNRGwYe1gnJQrpdy0VJEwRaTiiShHHtFtcMCEe8D9yoOMlYdBEEx9MDLH7PsQXhQbxZaVNkkyiPRthkwGF4On\u002BCI31rkRI5X25cImihwNO733fK/K6eNLO\u002Br0ccqr2exl0CAwEAAaN8MHowDgYDVR0PAQH/BAQDAgWgMAkGA1UdEwQCMAAwHQYDVR0lBBYwFAYIKwYBBQUHAwEGCCsGAQUFBwMCMB8GA1UdIwQYMBaAFE175SgVQ6IqQhdmiDaqAJz0ZGwIMB0GA1UdDgQWBBRNe\u002BUoFUOiKkIXZog2qgCc9GRsCDANBgkqhkiG9w0BAQsFAAOCAQEAQRXTi/F/\u002BQ37wdbZvfkjike3s4VsloqRtkdV0crFhJQrprwLrzyrs7KM4ODloZqm0sbfHhviDAa53kGAmFfmLlY8/FI62S8WxDBh9f3iS9RRy7d11YiyYyqfQFDDn6rcK\u002BPGlc9gH5jvRZCAHN0AVBdhSz4SQB\u002BnMX2flsqdUYtCm4Sg1IGMNnbUbEo\u002BaXo\u002BTWcuyVcZWw9iT3cQOjT4Pftqg8xfHac36BtsMw40Cv9NTw4vXHrMiuMS6cNsNnEvhyP2eDJEuRH7M22GJOMsnicDpMKZEGYl7zm\u002BhnicTWZYkh17MxmByAq6fzST6GKpSRN1Gv7286IFZimo5Hhg0g==", - "attributes": { - "enabled": true, - "nbf": 1652724078, - "exp": 1684260678, - "created": 1652724679, - "updated": 1652724679, - "recoveryLevel": "CustomizedRecoverable\u002BPurgeable", - "recoverableDays": 7 - }, - "policy": { - "id": "https://fakekvurl.vault.azure.net/certificates/cert2648374337/policy", - "key_props": { - "exportable": true, - "kty": "RSA", - "key_size": 2048, - "reuse_key": false - }, - "secret_props": { - "contentType": "application/x-pkcs12" - }, - "x509_props": { - "subject": "CN=DefaultPolicy", - "sans": {}, - "ekus": [ - "1.3.6.1.5.5.7.3.1", - "1.3.6.1.5.5.7.3.2" - ], - "key_usage": [ - "digitalSignature", - "keyEncipherment" - ], - "validity_months": 12, - "basic_constraints": { - "ca": false - } - }, - "lifetime_actions": [ - { - "trigger": { - "lifetime_percentage": 80 - }, - "action": { - "action_type": "AutoRenew" - } - } - ], - "issuer": { - "name": "Self" - }, - "attributes": { - "enabled": true, - "created": 1652724662, - "updated": 1652724662 - } - }, - "pending": { - "id": "https://fakekvurl.vault.azure.net/certificates/cert2648374337/pending" - } - } - }, - { - "RequestUri": "https://fakekvurl.vault.azure.net/certificates/cert2648374337/pending?api-version=7.3", - "RequestMethod": "GET", - "RequestHeaders": { - ":method": "GET", - "Accept": "application/json", - "Accept-Encoding": "gzip", - "Authorization": "Sanitized", - "User-Agent": "azsdk-go-azcertificates/v0.4.2 (go1.18; Windows_NT)" - }, - "RequestBody": null, - "StatusCode": 200, - "ResponseHeaders": { - "Cache-Control": "no-cache", - "Content-Length": "1197", - "Content-Type": "application/json; charset=utf-8", - "Date": "Mon, 16 May 2022 18:11:22 GMT", - "Expires": "-1", - "Pragma": "no-cache", - "Strict-Transport-Security": "max-age=31536000;includeSubDomains", - "X-Content-Type-Options": "nosniff", - "x-ms-keyvault-network-info": "conn_type=Ipv4;addr=73.83.78.150;act_addr_fam=InterNetwork;", - "x-ms-keyvault-region": "westus2", - "x-ms-keyvault-service-version": "1.9.395.1", - "x-ms-request-id": "89e944b0-6488-4806-b6f5-3c69c4248bf8" - }, - "ResponseBody": { - "id": "https://fakekvurl.vault.azure.net/certificates/cert2648374337/pending", - "issuer": { - "name": "Self" - }, - "csr": "MIICqDCCAZACAQAwGDEWMBQGA1UEAxMNRGVmYXVsdFBvbGljeTCCASIwDQYJKoZIhvcNAQEBBQADggEPADCCAQoCggEBALoyuY53yvOk5p3OSYV\u002B\u002Bp83dQizSJRqhK/W9Qlpu0pDvesZVewEM1\u002BZDDegdKduVXYO8vzJPlddqYIJYFAKAUJlcQ6RnSFLMU5B3I5S0svQ38oDqNRJcYvhQK6vCXXDFxLBf6dkYWRp2V2aLnSafTqSoeNQDs7ExcEdLgNADzeIRcfiTUm1VqnQr4lttaYL8CVMT1fCQoXfU5tOO6sQIHNRGwYe1gnJQrpdy0VJEwRaTiiShHHtFtcMCEe8D9yoOMlYdBEEx9MDLH7PsQXhQbxZaVNkkyiPRthkwGF4On\u002BCI31rkRI5X25cImihwNO733fK/K6eNLO\u002Br0ccqr2exl0CAwEAAaBLMEkGCSqGSIb3DQEJDjE8MDowDgYDVR0PAQH/BAQDAgWgMB0GA1UdJQQWMBQGCCsGAQUFBwMBBggrBgEFBQcDAjAJBgNVHRMEAjAAMA0GCSqGSIb3DQEBCwUAA4IBAQC1mfr/fe61z9YHtacPte9KOniVFnHTKwl/nDs1ZQx28YmcXVUsV0j1w0h3HTqDel4nWaQqT8XA3UPICtehOXgfVF\u002BLymCnZPWiHJlz6Tr25HbT00JxDk5UXLlajm4\u002BR1lUMw4nD6KelnBc7y0ld\u002BmdO0zQHTtEuILcbtJy7DRiG3mE3hIRoI2Ie1G0MAyFzEpLCeUS2vB/3OWgPIkdFCQbSXCpmK0KDCssQyhVVRTFtKA92mlydsJL9B4Id3TOPx5VhKOutLTuFfhbuTSUQrNH5U4W227MtD12/yy1L5wyMtk0wfIXrcXPGIiBrUC9b6YIP76iH7ODBcTVub3oYF8e", - "cancellation_requested": false, - "status": "completed", - "target": "https://fakekvurl.vault.azure.net/certificates/cert2648374337", - "request_id": "1143365f55af4606baef99cd6205190a" - } - }, - { - "RequestUri": "https://fakekvurl.vault.azure.net/certificates/cert2648374337?api-version=7.3", - "RequestMethod": "DELETE", - "RequestHeaders": { - "Accept": "application/json", - "Accept-Encoding": "gzip", - "Authorization": "Sanitized", - "User-Agent": "azsdk-go-azcertificates/v0.4.2 (go1.18; Windows_NT)" - }, - "RequestBody": null, - "StatusCode": 200, - "ResponseHeaders": { - "Cache-Control": "no-cache", - "Content-Length": "2472", - "Content-Type": "application/json; charset=utf-8", - "Date": "Mon, 16 May 2022 18:11:22 GMT", - "Expires": "-1", - "Pragma": "no-cache", - "Strict-Transport-Security": "max-age=31536000;includeSubDomains", - "X-Content-Type-Options": "nosniff", - "x-ms-keyvault-network-info": "conn_type=Ipv4;addr=73.83.78.150;act_addr_fam=InterNetwork;", - "x-ms-keyvault-region": "westus2", - "x-ms-keyvault-service-version": "1.9.395.1", - "x-ms-request-id": "4b489d65-477a-4811-b31f-eeb59c251139" - }, - "ResponseBody": { - "recoveryId": "https://fakekvurl.vault.azure.net/deletedcertificates/cert2648374337", - "deletedDate": 1652724683, - "scheduledPurgeDate": 1653329483, - "id": "https://fakekvurl.vault.azure.net/certificates/cert2648374337/0ce57d8341d94538b4bec55300281c57", - "kid": "https://fakekvurl.vault.azure.net/keys/cert2648374337/0ce57d8341d94538b4bec55300281c57", - "sid": "https://fakekvurl.vault.azure.net/secrets/cert2648374337/0ce57d8341d94538b4bec55300281c57", - "x5t": "jLZiWrTGSR8yE5thvO_1dnKt0U0", - "cer": "MIIDNjCCAh6gAwIBAgIQUyzdeBaZTMaaWFSgvOhL3zANBgkqhkiG9w0BAQsFADAYMRYwFAYDVQQDEw1EZWZhdWx0UG9saWN5MB4XDTIyMDUxNjE4MDExOFoXDTIzMDUxNjE4MTExOFowGDEWMBQGA1UEAxMNRGVmYXVsdFBvbGljeTCCASIwDQYJKoZIhvcNAQEBBQADggEPADCCAQoCggEBALoyuY53yvOk5p3OSYV\u002B\u002Bp83dQizSJRqhK/W9Qlpu0pDvesZVewEM1\u002BZDDegdKduVXYO8vzJPlddqYIJYFAKAUJlcQ6RnSFLMU5B3I5S0svQ38oDqNRJcYvhQK6vCXXDFxLBf6dkYWRp2V2aLnSafTqSoeNQDs7ExcEdLgNADzeIRcfiTUm1VqnQr4lttaYL8CVMT1fCQoXfU5tOO6sQIHNRGwYe1gnJQrpdy0VJEwRaTiiShHHtFtcMCEe8D9yoOMlYdBEEx9MDLH7PsQXhQbxZaVNkkyiPRthkwGF4On\u002BCI31rkRI5X25cImihwNO733fK/K6eNLO\u002Br0ccqr2exl0CAwEAAaN8MHowDgYDVR0PAQH/BAQDAgWgMAkGA1UdEwQCMAAwHQYDVR0lBBYwFAYIKwYBBQUHAwEGCCsGAQUFBwMCMB8GA1UdIwQYMBaAFE175SgVQ6IqQhdmiDaqAJz0ZGwIMB0GA1UdDgQWBBRNe\u002BUoFUOiKkIXZog2qgCc9GRsCDANBgkqhkiG9w0BAQsFAAOCAQEAQRXTi/F/\u002BQ37wdbZvfkjike3s4VsloqRtkdV0crFhJQrprwLrzyrs7KM4ODloZqm0sbfHhviDAa53kGAmFfmLlY8/FI62S8WxDBh9f3iS9RRy7d11YiyYyqfQFDDn6rcK\u002BPGlc9gH5jvRZCAHN0AVBdhSz4SQB\u002BnMX2flsqdUYtCm4Sg1IGMNnbUbEo\u002BaXo\u002BTWcuyVcZWw9iT3cQOjT4Pftqg8xfHac36BtsMw40Cv9NTw4vXHrMiuMS6cNsNnEvhyP2eDJEuRH7M22GJOMsnicDpMKZEGYl7zm\u002BhnicTWZYkh17MxmByAq6fzST6GKpSRN1Gv7286IFZimo5Hhg0g==", - "attributes": { - "enabled": true, - "nbf": 1652724078, - "exp": 1684260678, - "created": 1652724679, - "updated": 1652724679, - "recoveryLevel": "CustomizedRecoverable\u002BPurgeable", - "recoverableDays": 7 - }, - "policy": { - "id": "https://fakekvurl.vault.azure.net/certificates/cert2648374337/policy", - "key_props": { - "exportable": true, - "kty": "RSA", - "key_size": 2048, - "reuse_key": false - }, - "secret_props": { - "contentType": "application/x-pkcs12" - }, - "x509_props": { - "subject": "CN=DefaultPolicy", - "sans": {}, - "ekus": [ - "1.3.6.1.5.5.7.3.1", - "1.3.6.1.5.5.7.3.2" - ], - "key_usage": [ - "digitalSignature", - "keyEncipherment" - ], - "validity_months": 12, - "basic_constraints": { - "ca": false - } - }, - "lifetime_actions": [ - { - "trigger": { - "lifetime_percentage": 80 - }, - "action": { - "action_type": "AutoRenew" - } - } - ], - "issuer": { - "name": "Self" - }, - "attributes": { - "enabled": true, - "created": 1652724662, - "updated": 1652724662 - } - }, - "pending": { - "id": "https://fakekvurl.vault.azure.net/certificates/cert2648374337/pending" - } - } - }, - { - "RequestUri": "https://fakekvurl.vault.azure.net/deletedcertificates/cert2648374337?api-version=7.3", - "RequestMethod": "GET", - "RequestHeaders": { - ":method": "GET", - "Accept": "application/json", - "Accept-Encoding": "gzip", - "Authorization": "Sanitized", - "User-Agent": "azsdk-go-azcertificates/v0.4.2 (go1.18; Windows_NT)" - }, - "RequestBody": null, - "StatusCode": 404, - "ResponseHeaders": { - "Cache-Control": "no-cache", - "Content-Length": "98", - "Content-Type": "application/json; charset=utf-8", - "Date": "Mon, 16 May 2022 18:11:22 GMT", - "Expires": "-1", - "Pragma": "no-cache", - "Strict-Transport-Security": "max-age=31536000;includeSubDomains", - "X-Content-Type-Options": "nosniff", - "x-ms-keyvault-network-info": "conn_type=Ipv4;addr=73.83.78.150;act_addr_fam=InterNetwork;", - "x-ms-keyvault-region": "westus2", - "x-ms-keyvault-service-version": "1.9.395.1", - "x-ms-request-id": "716c3704-af10-4ad2-8afd-e0c4afcb38a8" - }, - "ResponseBody": { - "error": { - "code": "CertificateNotFound", - "message": "Deleted Certificate not found: cert2648374337" - } - } - }, - { - "RequestUri": "https://fakekvurl.vault.azure.net/deletedcertificates/cert2648374337?api-version=7.3", - "RequestMethod": "GET", - "RequestHeaders": { - ":method": "GET", - "Accept": "application/json", - "Accept-Encoding": "gzip", - "Authorization": "Sanitized", - "User-Agent": "azsdk-go-azcertificates/v0.4.2 (go1.18; Windows_NT)" - }, - "RequestBody": null, - "StatusCode": 404, - "ResponseHeaders": { - "Cache-Control": "no-cache", - "Content-Length": "98", - "Content-Type": "application/json; charset=utf-8", - "Date": "Mon, 16 May 2022 18:11:23 GMT", - "Expires": "-1", - "Pragma": "no-cache", - "Strict-Transport-Security": "max-age=31536000;includeSubDomains", - "X-Content-Type-Options": "nosniff", - "x-ms-keyvault-network-info": "conn_type=Ipv4;addr=73.83.78.150;act_addr_fam=InterNetwork;", - "x-ms-keyvault-region": "westus2", - "x-ms-keyvault-service-version": "1.9.395.1", - "x-ms-request-id": "e5083de7-d7ae-48a3-b7ee-13d9ed19fc29" - }, - "ResponseBody": { - "error": { - "code": "CertificateNotFound", - "message": "Deleted Certificate not found: cert2648374337" - } - } - }, - { - "RequestUri": "https://fakekvurl.vault.azure.net/deletedcertificates/cert2648374337?api-version=7.3", - "RequestMethod": "GET", - "RequestHeaders": { - ":method": "GET", - "Accept": "application/json", - "Accept-Encoding": "gzip", - "Authorization": "Sanitized", - "User-Agent": "azsdk-go-azcertificates/v0.4.2 (go1.18; Windows_NT)" - }, - "RequestBody": null, - "StatusCode": 404, - "ResponseHeaders": { - "Cache-Control": "no-cache", - "Content-Length": "98", - "Content-Type": "application/json; charset=utf-8", - "Date": "Mon, 16 May 2022 18:11:24 GMT", - "Expires": "-1", - "Pragma": "no-cache", - "Strict-Transport-Security": "max-age=31536000;includeSubDomains", - "X-Content-Type-Options": "nosniff", - "x-ms-keyvault-network-info": "conn_type=Ipv4;addr=73.83.78.150;act_addr_fam=InterNetwork;", - "x-ms-keyvault-region": "westus2", - "x-ms-keyvault-service-version": "1.9.395.1", - "x-ms-request-id": "5b6933bb-06db-4e2f-857d-58546192b429" - }, - "ResponseBody": { - "error": { - "code": "CertificateNotFound", - "message": "Deleted Certificate not found: cert2648374337" - } - } - }, - { - "RequestUri": "https://fakekvurl.vault.azure.net/deletedcertificates/cert2648374337?api-version=7.3", - "RequestMethod": "GET", - "RequestHeaders": { - ":method": "GET", - "Accept": "application/json", - "Accept-Encoding": "gzip", - "Authorization": "Sanitized", - "User-Agent": "azsdk-go-azcertificates/v0.4.2 (go1.18; Windows_NT)" - }, - "RequestBody": null, - "StatusCode": 404, - "ResponseHeaders": { - "Cache-Control": "no-cache", - "Content-Length": "98", - "Content-Type": "application/json; charset=utf-8", - "Date": "Mon, 16 May 2022 18:11:25 GMT", - "Expires": "-1", - "Pragma": "no-cache", - "Strict-Transport-Security": "max-age=31536000;includeSubDomains", - "X-Content-Type-Options": "nosniff", - "x-ms-keyvault-network-info": "conn_type=Ipv4;addr=73.83.78.150;act_addr_fam=InterNetwork;", - "x-ms-keyvault-region": "westus2", - "x-ms-keyvault-service-version": "1.9.395.1", - "x-ms-request-id": "af2b9122-4d8a-46a6-b08c-f2cc8ca0f447" - }, - "ResponseBody": { - "error": { - "code": "CertificateNotFound", - "message": "Deleted Certificate not found: cert2648374337" - } - } - }, - { - "RequestUri": "https://fakekvurl.vault.azure.net/deletedcertificates/cert2648374337?api-version=7.3", - "RequestMethod": "GET", - "RequestHeaders": { - ":method": "GET", - "Accept": "application/json", - "Accept-Encoding": "gzip", - "Authorization": "Sanitized", - "User-Agent": "azsdk-go-azcertificates/v0.4.2 (go1.18; Windows_NT)" - }, - "RequestBody": null, - "StatusCode": 404, - "ResponseHeaders": { - "Cache-Control": "no-cache", - "Content-Length": "98", - "Content-Type": "application/json; charset=utf-8", - "Date": "Mon, 16 May 2022 18:11:26 GMT", - "Expires": "-1", - "Pragma": "no-cache", - "Strict-Transport-Security": "max-age=31536000;includeSubDomains", - "X-Content-Type-Options": "nosniff", - "x-ms-keyvault-network-info": "conn_type=Ipv4;addr=73.83.78.150;act_addr_fam=InterNetwork;", - "x-ms-keyvault-region": "westus2", - "x-ms-keyvault-service-version": "1.9.395.1", - "x-ms-request-id": "df9d8730-edfb-4095-9681-075e83419b25" - }, - "ResponseBody": { - "error": { - "code": "CertificateNotFound", - "message": "Deleted Certificate not found: cert2648374337" - } - } - }, - { - "RequestUri": "https://fakekvurl.vault.azure.net/deletedcertificates/cert2648374337?api-version=7.3", - "RequestMethod": "GET", - "RequestHeaders": { - ":method": "GET", - "Accept": "application/json", - "Accept-Encoding": "gzip", - "Authorization": "Sanitized", - "User-Agent": "azsdk-go-azcertificates/v0.4.2 (go1.18; Windows_NT)" - }, - "RequestBody": null, - "StatusCode": 200, - "ResponseHeaders": { - "Cache-Control": "no-cache", - "Content-Length": "2472", - "Content-Type": "application/json; charset=utf-8", - "Date": "Mon, 16 May 2022 18:11:27 GMT", - "Expires": "-1", - "Pragma": "no-cache", - "Strict-Transport-Security": "max-age=31536000;includeSubDomains", - "X-Content-Type-Options": "nosniff", - "x-ms-keyvault-network-info": "conn_type=Ipv4;addr=73.83.78.150;act_addr_fam=InterNetwork;", - "x-ms-keyvault-region": "westus2", - "x-ms-keyvault-service-version": "1.9.395.1", - "x-ms-request-id": "4face2f4-03fa-4170-b74e-8cbeeb15562a" - }, - "ResponseBody": { - "recoveryId": "https://fakekvurl.vault.azure.net/deletedcertificates/cert2648374337", - "deletedDate": 1652724683, - "scheduledPurgeDate": 1653329483, - "id": "https://fakekvurl.vault.azure.net/certificates/cert2648374337/0ce57d8341d94538b4bec55300281c57", - "kid": "https://fakekvurl.vault.azure.net/keys/cert2648374337/0ce57d8341d94538b4bec55300281c57", - "sid": "https://fakekvurl.vault.azure.net/secrets/cert2648374337/0ce57d8341d94538b4bec55300281c57", - "x5t": "jLZiWrTGSR8yE5thvO_1dnKt0U0", - "cer": "MIIDNjCCAh6gAwIBAgIQUyzdeBaZTMaaWFSgvOhL3zANBgkqhkiG9w0BAQsFADAYMRYwFAYDVQQDEw1EZWZhdWx0UG9saWN5MB4XDTIyMDUxNjE4MDExOFoXDTIzMDUxNjE4MTExOFowGDEWMBQGA1UEAxMNRGVmYXVsdFBvbGljeTCCASIwDQYJKoZIhvcNAQEBBQADggEPADCCAQoCggEBALoyuY53yvOk5p3OSYV\u002B\u002Bp83dQizSJRqhK/W9Qlpu0pDvesZVewEM1\u002BZDDegdKduVXYO8vzJPlddqYIJYFAKAUJlcQ6RnSFLMU5B3I5S0svQ38oDqNRJcYvhQK6vCXXDFxLBf6dkYWRp2V2aLnSafTqSoeNQDs7ExcEdLgNADzeIRcfiTUm1VqnQr4lttaYL8CVMT1fCQoXfU5tOO6sQIHNRGwYe1gnJQrpdy0VJEwRaTiiShHHtFtcMCEe8D9yoOMlYdBEEx9MDLH7PsQXhQbxZaVNkkyiPRthkwGF4On\u002BCI31rkRI5X25cImihwNO733fK/K6eNLO\u002Br0ccqr2exl0CAwEAAaN8MHowDgYDVR0PAQH/BAQDAgWgMAkGA1UdEwQCMAAwHQYDVR0lBBYwFAYIKwYBBQUHAwEGCCsGAQUFBwMCMB8GA1UdIwQYMBaAFE175SgVQ6IqQhdmiDaqAJz0ZGwIMB0GA1UdDgQWBBRNe\u002BUoFUOiKkIXZog2qgCc9GRsCDANBgkqhkiG9w0BAQsFAAOCAQEAQRXTi/F/\u002BQ37wdbZvfkjike3s4VsloqRtkdV0crFhJQrprwLrzyrs7KM4ODloZqm0sbfHhviDAa53kGAmFfmLlY8/FI62S8WxDBh9f3iS9RRy7d11YiyYyqfQFDDn6rcK\u002BPGlc9gH5jvRZCAHN0AVBdhSz4SQB\u002BnMX2flsqdUYtCm4Sg1IGMNnbUbEo\u002BaXo\u002BTWcuyVcZWw9iT3cQOjT4Pftqg8xfHac36BtsMw40Cv9NTw4vXHrMiuMS6cNsNnEvhyP2eDJEuRH7M22GJOMsnicDpMKZEGYl7zm\u002BhnicTWZYkh17MxmByAq6fzST6GKpSRN1Gv7286IFZimo5Hhg0g==", - "attributes": { - "enabled": true, - "nbf": 1652724078, - "exp": 1684260678, - "created": 1652724679, - "updated": 1652724679, - "recoveryLevel": "CustomizedRecoverable\u002BPurgeable", - "recoverableDays": 7 - }, - "policy": { - "id": "https://fakekvurl.vault.azure.net/certificates/cert2648374337/policy", - "key_props": { - "exportable": true, - "kty": "RSA", - "key_size": 2048, - "reuse_key": false - }, - "secret_props": { - "contentType": "application/x-pkcs12" - }, - "x509_props": { - "subject": "CN=DefaultPolicy", - "sans": {}, - "ekus": [ - "1.3.6.1.5.5.7.3.1", - "1.3.6.1.5.5.7.3.2" - ], - "key_usage": [ - "digitalSignature", - "keyEncipherment" - ], - "validity_months": 12, - "basic_constraints": { - "ca": false - } - }, - "lifetime_actions": [ - { - "trigger": { - "lifetime_percentage": 80 - }, - "action": { - "action_type": "AutoRenew" - } - } - ], - "issuer": { - "name": "Self" - }, - "attributes": { - "enabled": true, - "created": 1652724662, - "updated": 1652724662 - } - }, - "pending": { - "id": "https://fakekvurl.vault.azure.net/certificates/cert2648374337/pending" - } - } - }, - { - "RequestUri": "https://fakekvurl.vault.azure.net/deletedcertificates/cert2648374337?api-version=7.3", - "RequestMethod": "DELETE", - "RequestHeaders": { - "Accept": "application/json", - "Accept-Encoding": "gzip", - "Authorization": "Sanitized", - "User-Agent": "azsdk-go-azcertificates/v0.4.2 (go1.18; Windows_NT)" - }, - "RequestBody": null, - "StatusCode": 204, - "ResponseHeaders": { - "Cache-Control": "no-cache", - "Date": "Mon, 16 May 2022 18:11:28 GMT", - "Expires": "-1", - "Pragma": "no-cache", - "Strict-Transport-Security": "max-age=31536000;includeSubDomains", - "X-Content-Type-Options": "nosniff", - "x-ms-keyvault-network-info": "conn_type=Ipv4;addr=73.83.78.150;act_addr_fam=InterNetwork;", - "x-ms-keyvault-region": "westus2", - "x-ms-keyvault-service-version": "1.9.395.1", - "x-ms-request-id": "5e01c9ee-9aaa-4b8b-9f8e-ba9405b3f697" - }, - "ResponseBody": null - } - ], - "Variables": {} -} diff --git a/sdk/keyvault/azcertificates/testdata/recordings/TestClient_ImportCertificate.json b/sdk/keyvault/azcertificates/testdata/recordings/TestClient_ImportCertificate.json deleted file mode 100644 index 8cdc41ada990..000000000000 --- a/sdk/keyvault/azcertificates/testdata/recordings/TestClient_ImportCertificate.json +++ /dev/null @@ -1,518 +0,0 @@ -{ - "Entries": [ - { - "RequestUri": "https://fakekvurl.vault.azure.net/certificates/imported3784619653/import?api-version=7.3", - "RequestMethod": "POST", - "RequestHeaders": { - ":method": "POST", - "Accept": "application/json", - "Accept-Encoding": "gzip", - "Content-Length": "0", - "User-Agent": "azsdk-go-azcertificates/v0.4.2 (go1.18; Windows_NT)" - }, - "RequestBody": null, - "StatusCode": 401, - "ResponseHeaders": { - "Cache-Control": "no-cache", - "Content-Length": "97", - "Content-Type": "application/json; charset=utf-8", - "Date": "Mon, 16 May 2022 18:13:41 GMT", - "Expires": "-1", - "Pragma": "no-cache", - "Strict-Transport-Security": "max-age=31536000;includeSubDomains", - "WWW-Authenticate": "Bearer authorization=\u0022https://login.windows.net/00000000-0000-0000-0000-000000000000\u0022, resource=\u0022https://vault.azure.net\u0022", - "X-Content-Type-Options": "nosniff", - "x-ms-keyvault-network-info": "conn_type=Ipv4;addr=73.83.78.150;act_addr_fam=InterNetwork;", - "x-ms-keyvault-region": "westus2", - "x-ms-keyvault-service-version": "1.9.395.1", - "x-ms-request-id": "59bc75d0-49e6-48ee-94cf-084f5e525466" - }, - "ResponseBody": { - "error": { - "code": "Unauthorized", - "message": "AKV10000: Request is missing a Bearer or PoP token." - } - } - }, - { - "RequestUri": "https://fakekvurl.vault.azure.net/certificates/imported3784619653/import?api-version=7.3", - "RequestMethod": "POST", - "RequestHeaders": { - ":method": "POST", - "Accept": "application/json", - "Accept-Encoding": "gzip", - "Authorization": "Sanitized", - "Content-Length": "3344", - "Content-Type": "application/json", - "User-Agent": "azsdk-go-azcertificates/v0.4.2 (go1.18; Windows_NT)" - }, - "RequestBody": { - "attributes": {}, - "value": "MIIJsQIBAzCCCXcGCSqGSIb3DQEHAaCCCWgEgglkMIIJYDCCBBcGCSqGSIb3DQEHBqCCBAgwggQEAgEAMIID/QYJKoZIhvcNAQcBMBwGCiqGSIb3DQEMAQYwDgQIE7pdl4fTqmwCAggAgIID0MDlcRFQUH0YDxopuqVyuEd4OLfawucEAxGvdj9\u002BSMs34Cz1tVyZgfFuU4MwlLk6cA1dog8iw9/f8/VlA6wS0DHhslLL3JzSxZoi6JQQ0IYgjWaIv4c\u002BwT0IcBhc2USI3lPqoqALG15qcs8fAEpDIssUplDcmA7gLVvBvw1utAipib8y93J71tIIedDaf0pAuVuC6K1PRI3HWVnUetCaiq4AW2iQu7f0rxJVDcKubmNinEivyRi4yl2Q1g2OwGlqwZEAnIW02uE\u002BFzgFk51OA357vvooKicb0fdDz\u002BhsRuzlWMhs2ciFMg71jlCUIKnvAKXCR714ox\u002BOK8pTN1KQy3ICAFy\u002Bm6lNpkwkozfRoMwJyRGt5Tm6N/k9nQM1ysu3xqw3hG8q4srCbWhxcUrvrDcxvWe5Q8WX8Sl8nJ4joPZipBxDSEKYPqk9qkPF\u002BYZbAmjcS3mw0AI5V8v31WQaa/i6LxQGwKUVSyjHe6ZDskQjyogtRmt61z1MYHmv9iNuLyyWhq9w7hV/AyKTzQ7FsWcK2vdNZJA2lj8H7rSrYtaVFNPMBzOa4KsJmif9s9B0VyMlX37XB1tGEtRmRuJtA\u002BEZYVzu50J/ZVx2QGr40IpmyYKwB6CTQpBE12W9RMgMLYy\u002BYAykrexYOJaIh9wfzLi/bAH8uCNTKueeVREnMHrzSF1xNQzqW8okoEMvSdr6\u002BuCjHxt1cmRhUOcGvocLfNOgNhz\u002BqwztLr35QTE8zTnrjvhb0NKfT1vpGa0nXP3EBYDolRqTZgKlG9icupDI57wDNuHED/d63Ri\u002BtCbs3VF\u002BQjcPBO8q3xz0hMj38oYLnHYt1i4YQOvXSDdZLc4fW5GXB1cVmP9vxbM0lxBKCLA8V0wZ8P341Dknr5WhS21A0qs3b9FavwbUUCDTuvky/1qhA6MaxqbtzjeVm7mYJ7TnCQveH0Iy3RHEPQrzrGUQc0bEBfissGeVYlghNULlaDW9CobT6J\u002BpYT0y85flg\u002BqtTZX69NaI4mZuh11hkKLmbVx6gGouQ79XmpE3\u002BvNycEQNota534gUs77qF0VACJHnbgh05Qhxkp9Xd/LSUt\u002B6r9niTa9HWQ\u002BSMdfXuu6ognA3lMGeO4i0NTFkXA1MNs\u002Be0QQZqNX8CiCj09i6YeMNVTdIh1ufrEF9YlO8yjLitHVSJRuY65QCCpPsS5Ugdk\u002B5tUD3H2l1j/ZA5f73z2JdFEAchPRLsNQKTx49ZvsSex2ikEJeNjHDBuMQZtVZZDs9DdVQL/i49Mc7N\u002B/x37AcLFx\u002BDelOKZ0F5LgiDDprfU8wggVBBgkqhkiG9w0BBwGgggUyBIIFLjCCBSowggUmBgsqhkiG9w0BDAoBAqCCBO4wggTqMBwGCiqGSIb3DQEMAQMwDgQIwQ83ZA6tJFoCAggABIIEyHQt53aY9srYggLfYUSeD6Gcjm7uEA5F24s9r3FZF50YRSztbJIrqGd6oytw4LDCInANcGuCF3WQjSdEB6ABy\u002BIgmbk9OAsFAy18txfg05UQb4JYN3M0XkYywh\u002BGlMlZdcsZQakXqBGSj6kyG4J9ISgGPpvSqopo7fUHjc3QjWcG07d42u6lgkLxdQH2e\u002BqiHWA\u002B9C3mawA5AYWA6sciEoKzYOZkl7ZtWptpJJWD54HtIT7ENGkHM6y2LM\u002BFyMC0axoUsFawoObzcbJLX29Zfohzq9yt169ZLcKDC1zpS6R0MIRE5rs4727vG9mJWMetDpIg/2fka4nkhfry2Wo\u002BPp/065aUSfHbQGMZ2Lw/zgU1Eo/Bau\u002BfREft/DRX/sZpkd0ulPlbxmQ80Xf6IXRSGD5poq3B19dJpKHmJagFJu1IgXEovjpexrYEmEAuzLaH1wdMTMGViWHsxu\u002Bg066LuHbBfJQ4THnAOp0N2eUkcfO3oJ3thzGnvWXM4lKAkULcnBlQnnfKi2CrQYJCJMhyIicYYs\u002B03gxXxNwQihZPm3VI3an/ci1otoh19WP4on3DqZ4KySU\u002BPZ45XzDg1H00\u002BnhyShwuyiFhDN6XuJ0VWIZZEvoPRY1Tmt2prP/1B1Kk9\u002BlishvTJKkuZ3rqC1bkJioIWte1FEoktCtzQ3dVUwlvy1r2y1WL5OTdk6yIENvm9\u002BxHSkJelkZjW\u002BJr/B9dyZ2o9\u002BoJGuLW8J2gNixecnWJXlb/tPwmL7iwLmFfM5tw27LnYO54dfUnq00G5JM6yiAj9i73RLkZo4lq29HOsoi4T3s06KpkOVhrIud7VhPFdzWtptcV9gbidHKtX209oZKAVgXa538DyKownqHx3I8yjXs0eFlty1CJjBP9fuAvllyNpUteuZoDcS45Zwl3WOpPrL595gBwy5yGOADOJXA3ww2oqvlTcZv1lyteKght3hMkSgy2mIGYAa19v\u002BZK0LxKxvwCCkC\u002BbMuyTduiaUJmHmI7k0lVIt/5WPzz9cnvCahhCovN/\u002BC0LI1xbOTW9nDp2Ffsb0aC9XYBRf/amRCiHmMzB18E85aA05h3l7KXPdck/xrKEePdv4dnLWxvHw69O6sjssmdV3q6\u002BcZgYYLZAEl1byIbZBTQaHT0GhzcmHJrW71L6Sl/9TEfmDSvctEEe4cZd8o29TXqzE10kmrt8dqoRbYiNq5CODPiithVtCRWQu3aFoLkT0ooWEYk\u002BIWU6/WQ8rq7KkZ6BR8JV60I3WbXLejTyaTf79VMt8myIET5GjSc7r\u002BtWyDRCHcU32Guyw7F\u002B9ndkMlVuI5gB/zfrsfX6noSQnx72yF6NrIyhJWf/Zl3NMbnPKUHA\u002BsZkjE4\u002BHwvf5yWkjFZhNeLq/4gaXQk7yEddjoCpN/cWsVjX8NxZFsRLs00Ag89\u002BNAbgWkr2eejKcXB\u002BI4TZHVee8IPKdEh8ga6RtDD8GV9VpwhnOpDHT5K1CtuX2CyTMl8fgUxobZ4kauiRr4dChd5n9Bgp7mvTarl7k2nVXptSJDmaPvZ0ETht\u002BWF24\u002Ba/7XqV7fyHoYU/WOvEGPW34a7X8R5UJWaOwZTcpqmfp8iwapRtgvQoXAISy2wK20fS0nK79nlqnhp5KEddTElMCMGCSqGSIb3DQEJFTEWBBTsd3zCMw1XrWC/MBjgt8IbFbCL8jAxMCEwCQYFKw4DAhoFAAQUY8Q/ANtHMzVyl4asrQ/lPKRjd2AECOBKL60N\u002BUaKAgIIAA==" - }, - "StatusCode": 200, - "ResponseHeaders": { - "Cache-Control": "no-cache", - "Content-Length": "2283", - "Content-Type": "application/json; charset=utf-8", - "Date": "Mon, 16 May 2022 18:13:42 GMT", - "Expires": "-1", - "Pragma": "no-cache", - "Strict-Transport-Security": "max-age=31536000;includeSubDomains", - "X-Content-Type-Options": "nosniff", - "x-ms-keyvault-network-info": "conn_type=Ipv4;addr=73.83.78.150;act_addr_fam=InterNetwork;", - "x-ms-keyvault-region": "westus2", - "x-ms-keyvault-service-version": "1.9.395.1", - "x-ms-request-id": "dbf9da0f-2cb2-4336-8b6a-f39f134269dc" - }, - "ResponseBody": { - "id": "https://fakekvurl.vault.azure.net/certificates/imported3784619653/a6664c9d51bf4705bbb820bd3a236367", - "kid": "https://fakekvurl.vault.azure.net/keys/imported3784619653/a6664c9d51bf4705bbb820bd3a236367", - "sid": "https://fakekvurl.vault.azure.net/secrets/imported3784619653/a6664c9d51bf4705bbb820bd3a236367", - "x5t": "7Hd8wjMNV61gvzAY4LfCGxWwi_I", - "cer": "MIIDbTCCAlWgAwIBAgIUDFjUOQoN1Og7KiAL7Y2r90yA7DkwDQYJKoZIhvcNAQELBQAwRTELMAkGA1UEBhMCQVUxEzARBgNVBAgMClNvbWUtU3RhdGUxITAfBgNVBAoMGEludGVybmV0IFdpZGdpdHMgUHR5IEx0ZDAgFw0yMTA4MDYxNzIwMzdaGA8yMTIxMDcxMzE3MjAzN1owRTELMAkGA1UEBhMCQVUxEzARBgNVBAgMClNvbWUtU3RhdGUxITAfBgNVBAoMGEludGVybmV0IFdpZGdpdHMgUHR5IEx0ZDCCASIwDQYJKoZIhvcNAQEBBQADggEPADCCAQoCggEBAMabnSPxruPP2HIDZhPK4ElxRnIV7ZbIcQQyPvhPMOjOWRo4Rl4JHUrLZM\u002B\u002BkdZ/kI6GG8E0AzS1BwA3u/QLAlcsDq2e5Li7oPHn6ihVsTV6wiD3kxhpYwmhRoUaG6rQLpaKRZFLWc3NfbHjuk5TkaH9SctQi2s\u002B2f34ia30m2ZLY8YIoIcyruloEXgqooL5ggQO3HYJgTHYfzfVhqq9Yxn9qclM26RmRr1nP4Gz/ejiQ19kmETwHIDk0RpiEVyw0UDrI1/rZFaV2RsyqWbofeSY4RE92vueMDt/uKmidIvEVK\u002BsVSxPvotKq7RnWRZiHITiL3ToRRzp5qB8NP4nJa8CAwEAAaNTMFEwHQYDVR0OBBYEFOZ9/QBUAX7s3o\u002ByFHUIeluDvCFFMB8GA1UdIwQYMBaAFOZ9/QBUAX7s3o\u002ByFHUIeluDvCFFMA8GA1UdEwEB/wQFMAMBAf8wDQYJKoZIhvcNAQELBQADggEBACWwLnNSWdQei//i\u002BnCZurqu4iUI7qvBoH\u002BXvLnU/6GRZsWqPDDM\u002BWE/Pp1Vx1TxM5asT6STKsPxiNZLSSUGj32EQTv/\u002BR/do0tkqNbbtT9q65qrINcW0vjjQvboCOmqc/1dPGyMgiK5z7TAD3V2yMsIaggL2SlsUPbq0zKzQ6I7yiw0ePM0kmhWrbG8XpNkQCCYCf95\u002B9FkxwrxgEZ2wYrXUw/ulNw7aMkeGSKKmN/Ke0FKylX2i3el5YcS5pyNQQvsQW4QawU9caRelNZbINCZKGJJ826m0qTGofMMH4Hmtu9Vqyo7EEW/nm6LSKRbGEACgpmjr5DG7ufcCCTg2OE=", - "attributes": { - "enabled": true, - "nbf": 1628270437, - "exp": 4781870437, - "created": 1652724822, - "updated": 1652724822, - "recoveryLevel": "CustomizedRecoverable\u002BPurgeable", - "recoverableDays": 7 - }, - "policy": { - "id": "https://fakekvurl.vault.azure.net/certificates/imported3784619653/policy", - "key_props": { - "exportable": true, - "kty": "RSA", - "key_size": 2048, - "reuse_key": false - }, - "secret_props": { - "contentType": "application/x-pkcs12" - }, - "x509_props": { - "subject": "O=Internet Widgits Pty Ltd, S=Some-State, C=AU", - "ekus": [], - "key_usage": [], - "validity_months": 1200, - "basic_constraints": { - "ca": true - } - }, - "lifetime_actions": [ - { - "trigger": { - "lifetime_percentage": 80 - }, - "action": { - "action_type": "EmailContacts" - } - } - ], - "issuer": { - "name": "Unknown" - }, - "attributes": { - "enabled": true, - "created": 1652724822, - "updated": 1652724822 - } - } - } - }, - { - "RequestUri": "https://fakekvurl.vault.azure.net/certificates/imported3784619653?api-version=7.3", - "RequestMethod": "DELETE", - "RequestHeaders": { - "Accept": "application/json", - "Accept-Encoding": "gzip", - "Authorization": "Sanitized", - "User-Agent": "azsdk-go-azcertificates/v0.4.2 (go1.18; Windows_NT)" - }, - "RequestBody": null, - "StatusCode": 200, - "ResponseHeaders": { - "Cache-Control": "no-cache", - "Content-Length": "2428", - "Content-Type": "application/json; charset=utf-8", - "Date": "Mon, 16 May 2022 18:13:42 GMT", - "Expires": "-1", - "Pragma": "no-cache", - "Strict-Transport-Security": "max-age=31536000;includeSubDomains", - "X-Content-Type-Options": "nosniff", - "x-ms-keyvault-network-info": "conn_type=Ipv4;addr=73.83.78.150;act_addr_fam=InterNetwork;", - "x-ms-keyvault-region": "westus2", - "x-ms-keyvault-service-version": "1.9.395.1", - "x-ms-request-id": "517dd8cb-e604-4b4b-85e6-8a03b6efdc18" - }, - "ResponseBody": { - "recoveryId": "https://fakekvurl.vault.azure.net/deletedcertificates/imported3784619653", - "deletedDate": 1652724822, - "scheduledPurgeDate": 1653329622, - "id": "https://fakekvurl.vault.azure.net/certificates/imported3784619653/a6664c9d51bf4705bbb820bd3a236367", - "kid": "https://fakekvurl.vault.azure.net/keys/imported3784619653/a6664c9d51bf4705bbb820bd3a236367", - "sid": "https://fakekvurl.vault.azure.net/secrets/imported3784619653/a6664c9d51bf4705bbb820bd3a236367", - "x5t": "7Hd8wjMNV61gvzAY4LfCGxWwi_I", - "cer": "MIIDbTCCAlWgAwIBAgIUDFjUOQoN1Og7KiAL7Y2r90yA7DkwDQYJKoZIhvcNAQELBQAwRTELMAkGA1UEBhMCQVUxEzARBgNVBAgMClNvbWUtU3RhdGUxITAfBgNVBAoMGEludGVybmV0IFdpZGdpdHMgUHR5IEx0ZDAgFw0yMTA4MDYxNzIwMzdaGA8yMTIxMDcxMzE3MjAzN1owRTELMAkGA1UEBhMCQVUxEzARBgNVBAgMClNvbWUtU3RhdGUxITAfBgNVBAoMGEludGVybmV0IFdpZGdpdHMgUHR5IEx0ZDCCASIwDQYJKoZIhvcNAQEBBQADggEPADCCAQoCggEBAMabnSPxruPP2HIDZhPK4ElxRnIV7ZbIcQQyPvhPMOjOWRo4Rl4JHUrLZM\u002B\u002BkdZ/kI6GG8E0AzS1BwA3u/QLAlcsDq2e5Li7oPHn6ihVsTV6wiD3kxhpYwmhRoUaG6rQLpaKRZFLWc3NfbHjuk5TkaH9SctQi2s\u002B2f34ia30m2ZLY8YIoIcyruloEXgqooL5ggQO3HYJgTHYfzfVhqq9Yxn9qclM26RmRr1nP4Gz/ejiQ19kmETwHIDk0RpiEVyw0UDrI1/rZFaV2RsyqWbofeSY4RE92vueMDt/uKmidIvEVK\u002BsVSxPvotKq7RnWRZiHITiL3ToRRzp5qB8NP4nJa8CAwEAAaNTMFEwHQYDVR0OBBYEFOZ9/QBUAX7s3o\u002ByFHUIeluDvCFFMB8GA1UdIwQYMBaAFOZ9/QBUAX7s3o\u002ByFHUIeluDvCFFMA8GA1UdEwEB/wQFMAMBAf8wDQYJKoZIhvcNAQELBQADggEBACWwLnNSWdQei//i\u002BnCZurqu4iUI7qvBoH\u002BXvLnU/6GRZsWqPDDM\u002BWE/Pp1Vx1TxM5asT6STKsPxiNZLSSUGj32EQTv/\u002BR/do0tkqNbbtT9q65qrINcW0vjjQvboCOmqc/1dPGyMgiK5z7TAD3V2yMsIaggL2SlsUPbq0zKzQ6I7yiw0ePM0kmhWrbG8XpNkQCCYCf95\u002B9FkxwrxgEZ2wYrXUw/ulNw7aMkeGSKKmN/Ke0FKylX2i3el5YcS5pyNQQvsQW4QawU9caRelNZbINCZKGJJ826m0qTGofMMH4Hmtu9Vqyo7EEW/nm6LSKRbGEACgpmjr5DG7ufcCCTg2OE=", - "attributes": { - "enabled": true, - "nbf": 1628270437, - "exp": 4781870437, - "created": 1652724822, - "updated": 1652724822, - "recoveryLevel": "CustomizedRecoverable\u002BPurgeable", - "recoverableDays": 7 - }, - "policy": { - "id": "https://fakekvurl.vault.azure.net/certificates/imported3784619653/policy", - "key_props": { - "exportable": true, - "kty": "RSA", - "key_size": 2048, - "reuse_key": false - }, - "secret_props": { - "contentType": "application/x-pkcs12" - }, - "x509_props": { - "subject": "O=Internet Widgits Pty Ltd, S=Some-State, C=AU", - "ekus": [], - "key_usage": [], - "validity_months": 1200, - "basic_constraints": { - "ca": true - } - }, - "lifetime_actions": [ - { - "trigger": { - "lifetime_percentage": 80 - }, - "action": { - "action_type": "EmailContacts" - } - } - ], - "issuer": { - "name": "Unknown" - }, - "attributes": { - "enabled": true, - "created": 1652724822, - "updated": 1652724822 - } - } - } - }, - { - "RequestUri": "https://fakekvurl.vault.azure.net/deletedcertificates/imported3784619653?api-version=7.3", - "RequestMethod": "GET", - "RequestHeaders": { - ":method": "GET", - "Accept": "application/json", - "Accept-Encoding": "gzip", - "Authorization": "Sanitized", - "User-Agent": "azsdk-go-azcertificates/v0.4.2 (go1.18; Windows_NT)" - }, - "RequestBody": null, - "StatusCode": 404, - "ResponseHeaders": { - "Cache-Control": "no-cache", - "Content-Length": "102", - "Content-Type": "application/json; charset=utf-8", - "Date": "Mon, 16 May 2022 18:13:42 GMT", - "Expires": "-1", - "Pragma": "no-cache", - "Strict-Transport-Security": "max-age=31536000;includeSubDomains", - "X-Content-Type-Options": "nosniff", - "x-ms-keyvault-network-info": "conn_type=Ipv4;addr=73.83.78.150;act_addr_fam=InterNetwork;", - "x-ms-keyvault-region": "westus2", - "x-ms-keyvault-service-version": "1.9.395.1", - "x-ms-request-id": "dc6be426-c9cf-49fa-944c-faa112409f7e" - }, - "ResponseBody": { - "error": { - "code": "CertificateNotFound", - "message": "Deleted Certificate not found: imported3784619653" - } - } - }, - { - "RequestUri": "https://fakekvurl.vault.azure.net/deletedcertificates/imported3784619653?api-version=7.3", - "RequestMethod": "GET", - "RequestHeaders": { - ":method": "GET", - "Accept": "application/json", - "Accept-Encoding": "gzip", - "Authorization": "Sanitized", - "User-Agent": "azsdk-go-azcertificates/v0.4.2 (go1.18; Windows_NT)" - }, - "RequestBody": null, - "StatusCode": 404, - "ResponseHeaders": { - "Cache-Control": "no-cache", - "Content-Length": "102", - "Content-Type": "application/json; charset=utf-8", - "Date": "Mon, 16 May 2022 18:13:43 GMT", - "Expires": "-1", - "Pragma": "no-cache", - "Strict-Transport-Security": "max-age=31536000;includeSubDomains", - "X-Content-Type-Options": "nosniff", - "x-ms-keyvault-network-info": "conn_type=Ipv4;addr=73.83.78.150;act_addr_fam=InterNetwork;", - "x-ms-keyvault-region": "westus2", - "x-ms-keyvault-service-version": "1.9.395.1", - "x-ms-request-id": "d4e28b25-e07b-4aab-8d49-ecaf3d5822a4" - }, - "ResponseBody": { - "error": { - "code": "CertificateNotFound", - "message": "Deleted Certificate not found: imported3784619653" - } - } - }, - { - "RequestUri": "https://fakekvurl.vault.azure.net/deletedcertificates/imported3784619653?api-version=7.3", - "RequestMethod": "GET", - "RequestHeaders": { - ":method": "GET", - "Accept": "application/json", - "Accept-Encoding": "gzip", - "Authorization": "Sanitized", - "User-Agent": "azsdk-go-azcertificates/v0.4.2 (go1.18; Windows_NT)" - }, - "RequestBody": null, - "StatusCode": 404, - "ResponseHeaders": { - "Cache-Control": "no-cache", - "Content-Length": "102", - "Content-Type": "application/json; charset=utf-8", - "Date": "Mon, 16 May 2022 18:13:44 GMT", - "Expires": "-1", - "Pragma": "no-cache", - "Strict-Transport-Security": "max-age=31536000;includeSubDomains", - "X-Content-Type-Options": "nosniff", - "x-ms-keyvault-network-info": "conn_type=Ipv4;addr=73.83.78.150;act_addr_fam=InterNetwork;", - "x-ms-keyvault-region": "westus2", - "x-ms-keyvault-service-version": "1.9.395.1", - "x-ms-request-id": "2e80b896-224c-4082-8003-b2a529599ff3" - }, - "ResponseBody": { - "error": { - "code": "CertificateNotFound", - "message": "Deleted Certificate not found: imported3784619653" - } - } - }, - { - "RequestUri": "https://fakekvurl.vault.azure.net/deletedcertificates/imported3784619653?api-version=7.3", - "RequestMethod": "GET", - "RequestHeaders": { - ":method": "GET", - "Accept": "application/json", - "Accept-Encoding": "gzip", - "Authorization": "Sanitized", - "User-Agent": "azsdk-go-azcertificates/v0.4.2 (go1.18; Windows_NT)" - }, - "RequestBody": null, - "StatusCode": 404, - "ResponseHeaders": { - "Cache-Control": "no-cache", - "Content-Length": "102", - "Content-Type": "application/json; charset=utf-8", - "Date": "Mon, 16 May 2022 18:13:45 GMT", - "Expires": "-1", - "Pragma": "no-cache", - "Strict-Transport-Security": "max-age=31536000;includeSubDomains", - "X-Content-Type-Options": "nosniff", - "x-ms-keyvault-network-info": "conn_type=Ipv4;addr=73.83.78.150;act_addr_fam=InterNetwork;", - "x-ms-keyvault-region": "westus2", - "x-ms-keyvault-service-version": "1.9.395.1", - "x-ms-request-id": "e9cb6a0a-8be4-44d5-9f37-31937dbc116e" - }, - "ResponseBody": { - "error": { - "code": "CertificateNotFound", - "message": "Deleted Certificate not found: imported3784619653" - } - } - }, - { - "RequestUri": "https://fakekvurl.vault.azure.net/deletedcertificates/imported3784619653?api-version=7.3", - "RequestMethod": "GET", - "RequestHeaders": { - ":method": "GET", - "Accept": "application/json", - "Accept-Encoding": "gzip", - "Authorization": "Sanitized", - "User-Agent": "azsdk-go-azcertificates/v0.4.2 (go1.18; Windows_NT)" - }, - "RequestBody": null, - "StatusCode": 404, - "ResponseHeaders": { - "Cache-Control": "no-cache", - "Content-Length": "102", - "Content-Type": "application/json; charset=utf-8", - "Date": "Mon, 16 May 2022 18:13:46 GMT", - "Expires": "-1", - "Pragma": "no-cache", - "Strict-Transport-Security": "max-age=31536000;includeSubDomains", - "X-Content-Type-Options": "nosniff", - "x-ms-keyvault-network-info": "conn_type=Ipv4;addr=73.83.78.150;act_addr_fam=InterNetwork;", - "x-ms-keyvault-region": "westus2", - "x-ms-keyvault-service-version": "1.9.395.1", - "x-ms-request-id": "933bafda-3ce5-474f-a849-663be746331b" - }, - "ResponseBody": { - "error": { - "code": "CertificateNotFound", - "message": "Deleted Certificate not found: imported3784619653" - } - } - }, - { - "RequestUri": "https://fakekvurl.vault.azure.net/deletedcertificates/imported3784619653?api-version=7.3", - "RequestMethod": "GET", - "RequestHeaders": { - ":method": "GET", - "Accept": "application/json", - "Accept-Encoding": "gzip", - "Authorization": "Sanitized", - "User-Agent": "azsdk-go-azcertificates/v0.4.2 (go1.18; Windows_NT)" - }, - "RequestBody": null, - "StatusCode": 404, - "ResponseHeaders": { - "Cache-Control": "no-cache", - "Content-Length": "102", - "Content-Type": "application/json; charset=utf-8", - "Date": "Mon, 16 May 2022 18:13:47 GMT", - "Expires": "-1", - "Pragma": "no-cache", - "Strict-Transport-Security": "max-age=31536000;includeSubDomains", - "X-Content-Type-Options": "nosniff", - "x-ms-keyvault-network-info": "conn_type=Ipv4;addr=73.83.78.150;act_addr_fam=InterNetwork;", - "x-ms-keyvault-region": "westus2", - "x-ms-keyvault-service-version": "1.9.395.1", - "x-ms-request-id": "9180aa50-b938-4e6a-86c8-6c0307d3ce24" - }, - "ResponseBody": { - "error": { - "code": "CertificateNotFound", - "message": "Deleted Certificate not found: imported3784619653" - } - } - }, - { - "RequestUri": "https://fakekvurl.vault.azure.net/deletedcertificates/imported3784619653?api-version=7.3", - "RequestMethod": "GET", - "RequestHeaders": { - ":method": "GET", - "Accept": "application/json", - "Accept-Encoding": "gzip", - "Authorization": "Sanitized", - "User-Agent": "azsdk-go-azcertificates/v0.4.2 (go1.18; Windows_NT)" - }, - "RequestBody": null, - "StatusCode": 200, - "ResponseHeaders": { - "Cache-Control": "no-cache", - "Content-Length": "2428", - "Content-Type": "application/json; charset=utf-8", - "Date": "Mon, 16 May 2022 18:13:48 GMT", - "Expires": "-1", - "Pragma": "no-cache", - "Strict-Transport-Security": "max-age=31536000;includeSubDomains", - "X-Content-Type-Options": "nosniff", - "x-ms-keyvault-network-info": "conn_type=Ipv4;addr=73.83.78.150;act_addr_fam=InterNetwork;", - "x-ms-keyvault-region": "westus2", - "x-ms-keyvault-service-version": "1.9.395.1", - "x-ms-request-id": "65ed1d3f-2ef9-444e-8a8b-8df9ae60bef5" - }, - "ResponseBody": { - "recoveryId": "https://fakekvurl.vault.azure.net/deletedcertificates/imported3784619653", - "deletedDate": 1652724822, - "scheduledPurgeDate": 1653329622, - "id": "https://fakekvurl.vault.azure.net/certificates/imported3784619653/a6664c9d51bf4705bbb820bd3a236367", - "kid": "https://fakekvurl.vault.azure.net/keys/imported3784619653/a6664c9d51bf4705bbb820bd3a236367", - "sid": "https://fakekvurl.vault.azure.net/secrets/imported3784619653/a6664c9d51bf4705bbb820bd3a236367", - "x5t": "7Hd8wjMNV61gvzAY4LfCGxWwi_I", - "cer": "MIIDbTCCAlWgAwIBAgIUDFjUOQoN1Og7KiAL7Y2r90yA7DkwDQYJKoZIhvcNAQELBQAwRTELMAkGA1UEBhMCQVUxEzARBgNVBAgMClNvbWUtU3RhdGUxITAfBgNVBAoMGEludGVybmV0IFdpZGdpdHMgUHR5IEx0ZDAgFw0yMTA4MDYxNzIwMzdaGA8yMTIxMDcxMzE3MjAzN1owRTELMAkGA1UEBhMCQVUxEzARBgNVBAgMClNvbWUtU3RhdGUxITAfBgNVBAoMGEludGVybmV0IFdpZGdpdHMgUHR5IEx0ZDCCASIwDQYJKoZIhvcNAQEBBQADggEPADCCAQoCggEBAMabnSPxruPP2HIDZhPK4ElxRnIV7ZbIcQQyPvhPMOjOWRo4Rl4JHUrLZM\u002B\u002BkdZ/kI6GG8E0AzS1BwA3u/QLAlcsDq2e5Li7oPHn6ihVsTV6wiD3kxhpYwmhRoUaG6rQLpaKRZFLWc3NfbHjuk5TkaH9SctQi2s\u002B2f34ia30m2ZLY8YIoIcyruloEXgqooL5ggQO3HYJgTHYfzfVhqq9Yxn9qclM26RmRr1nP4Gz/ejiQ19kmETwHIDk0RpiEVyw0UDrI1/rZFaV2RsyqWbofeSY4RE92vueMDt/uKmidIvEVK\u002BsVSxPvotKq7RnWRZiHITiL3ToRRzp5qB8NP4nJa8CAwEAAaNTMFEwHQYDVR0OBBYEFOZ9/QBUAX7s3o\u002ByFHUIeluDvCFFMB8GA1UdIwQYMBaAFOZ9/QBUAX7s3o\u002ByFHUIeluDvCFFMA8GA1UdEwEB/wQFMAMBAf8wDQYJKoZIhvcNAQELBQADggEBACWwLnNSWdQei//i\u002BnCZurqu4iUI7qvBoH\u002BXvLnU/6GRZsWqPDDM\u002BWE/Pp1Vx1TxM5asT6STKsPxiNZLSSUGj32EQTv/\u002BR/do0tkqNbbtT9q65qrINcW0vjjQvboCOmqc/1dPGyMgiK5z7TAD3V2yMsIaggL2SlsUPbq0zKzQ6I7yiw0ePM0kmhWrbG8XpNkQCCYCf95\u002B9FkxwrxgEZ2wYrXUw/ulNw7aMkeGSKKmN/Ke0FKylX2i3el5YcS5pyNQQvsQW4QawU9caRelNZbINCZKGJJ826m0qTGofMMH4Hmtu9Vqyo7EEW/nm6LSKRbGEACgpmjr5DG7ufcCCTg2OE=", - "attributes": { - "enabled": true, - "nbf": 1628270437, - "exp": 4781870437, - "created": 1652724822, - "updated": 1652724822, - "recoveryLevel": "CustomizedRecoverable\u002BPurgeable", - "recoverableDays": 7 - }, - "policy": { - "id": "https://fakekvurl.vault.azure.net/certificates/imported3784619653/policy", - "key_props": { - "exportable": true, - "kty": "RSA", - "key_size": 2048, - "reuse_key": false - }, - "secret_props": { - "contentType": "application/x-pkcs12" - }, - "x509_props": { - "subject": "O=Internet Widgits Pty Ltd, S=Some-State, C=AU", - "ekus": [], - "key_usage": [], - "validity_months": 1200, - "basic_constraints": { - "ca": true - } - }, - "lifetime_actions": [ - { - "trigger": { - "lifetime_percentage": 80 - }, - "action": { - "action_type": "EmailContacts" - } - } - ], - "issuer": { - "name": "Unknown" - }, - "attributes": { - "enabled": true, - "created": 1652724822, - "updated": 1652724822 - } - } - } - }, - { - "RequestUri": "https://fakekvurl.vault.azure.net/deletedcertificates/imported3784619653?api-version=7.3", - "RequestMethod": "DELETE", - "RequestHeaders": { - "Accept": "application/json", - "Accept-Encoding": "gzip", - "Authorization": "Sanitized", - "User-Agent": "azsdk-go-azcertificates/v0.4.2 (go1.18; Windows_NT)" - }, - "RequestBody": null, - "StatusCode": 204, - "ResponseHeaders": { - "Cache-Control": "no-cache", - "Date": "Mon, 16 May 2022 18:13:48 GMT", - "Expires": "-1", - "Pragma": "no-cache", - "Strict-Transport-Security": "max-age=31536000;includeSubDomains", - "X-Content-Type-Options": "nosniff", - "x-ms-keyvault-network-info": "conn_type=Ipv4;addr=73.83.78.150;act_addr_fam=InterNetwork;", - "x-ms-keyvault-region": "westus2", - "x-ms-keyvault-service-version": "1.9.395.1", - "x-ms-request-id": "05350037-5156-41de-803a-a4687442ce70" - }, - "ResponseBody": null - } - ], - "Variables": {} -} diff --git a/sdk/keyvault/azcertificates/testdata/recordings/TestClient_IssuerCRUD.json b/sdk/keyvault/azcertificates/testdata/recordings/TestClient_IssuerCRUD.json deleted file mode 100644 index 6de9741eb162..000000000000 --- a/sdk/keyvault/azcertificates/testdata/recordings/TestClient_IssuerCRUD.json +++ /dev/null @@ -1,441 +0,0 @@ -{ - "Entries": [ - { - "RequestUri": "https://fakekvurl.vault.azure.net/certificates/issuers/issuer3351460800?api-version=7.3", - "RequestMethod": "PUT", - "RequestHeaders": { - "Accept": "application/json", - "Accept-Encoding": "gzip", - "Content-Length": "0", - "User-Agent": "azsdk-go-azcertificates/v0.4.2 (go1.18; Windows_NT)" - }, - "RequestBody": null, - "StatusCode": 401, - "ResponseHeaders": { - "Cache-Control": "no-cache", - "Content-Length": "97", - "Content-Type": "application/json; charset=utf-8", - "Date": "Mon, 16 May 2022 18:13:49 GMT", - "Expires": "-1", - "Pragma": "no-cache", - "Strict-Transport-Security": "max-age=31536000;includeSubDomains", - "WWW-Authenticate": "Bearer authorization=\u0022https://login.windows.net/00000000-0000-0000-0000-000000000000\u0022, resource=\u0022https://vault.azure.net\u0022", - "X-Content-Type-Options": "nosniff", - "x-ms-keyvault-network-info": "conn_type=Ipv4;addr=73.83.78.150;act_addr_fam=InterNetwork;", - "x-ms-keyvault-region": "westus2", - "x-ms-keyvault-service-version": "1.9.395.1", - "x-ms-request-id": "10970d18-5b0d-4571-baf4-45be6548f9d6" - }, - "ResponseBody": { - "error": { - "code": "Unauthorized", - "message": "AKV10000: Request is missing a Bearer or PoP token." - } - } - }, - { - "RequestUri": "https://fakekvurl.vault.azure.net/certificates/issuers/issuer3351460800?api-version=7.3", - "RequestMethod": "PUT", - "RequestHeaders": { - "Accept": "application/json", - "Accept-Encoding": "gzip", - "Authorization": "Sanitized", - "Content-Length": "218", - "Content-Type": "application/json", - "User-Agent": "azsdk-go-azcertificates/v0.4.2 (go1.18; Windows_NT)" - }, - "RequestBody": { - "provider": "Test", - "attributes": { - "enabled": true - }, - "credentials": { - "account_id": "keyvaultuser" - }, - "org_details": { - "admin_details": [ - { - "email": "admin@microsoft.com", - "first_name": "John", - "last_name": "Doe", - "phone": "4255555555" - } - ] - } - }, - "StatusCode": 200, - "ResponseHeaders": { - "Cache-Control": "no-cache", - "Content-Length": "347", - "Content-Type": "application/json; charset=utf-8", - "Date": "Mon, 16 May 2022 18:13:49 GMT", - "Expires": "-1", - "Pragma": "no-cache", - "Strict-Transport-Security": "max-age=31536000;includeSubDomains", - "X-Content-Type-Options": "nosniff", - "x-ms-keyvault-network-info": "conn_type=Ipv4;addr=73.83.78.150;act_addr_fam=InterNetwork;", - "x-ms-keyvault-region": "westus2", - "x-ms-keyvault-service-version": "1.9.395.1", - "x-ms-request-id": "72eb710e-4f2b-4682-a639-25d68d6bee49" - }, - "ResponseBody": { - "id": "https://fakekvurl.vault.azure.net/certificates/issuers/issuer3351460800", - "provider": "Test", - "credentials": { - "account_id": "keyvaultuser" - }, - "org_details": { - "zip": 0, - "admin_details": [ - { - "first_name": "John", - "last_name": "Doe", - "email": "admin@microsoft.com", - "phone": "4255555555" - } - ] - }, - "attributes": { - "enabled": true, - "created": 1652724829, - "updated": 1652724829 - } - } - }, - { - "RequestUri": "https://fakekvurl.vault.azure.net/certificates/issuers/issuer3351460800?api-version=7.3", - "RequestMethod": "GET", - "RequestHeaders": { - ":method": "GET", - "Accept": "application/json", - "Accept-Encoding": "gzip", - "Authorization": "Sanitized", - "User-Agent": "azsdk-go-azcertificates/v0.4.2 (go1.18; Windows_NT)" - }, - "RequestBody": null, - "StatusCode": 200, - "ResponseHeaders": { - "Cache-Control": "no-cache", - "Content-Length": "347", - "Content-Type": "application/json; charset=utf-8", - "Date": "Mon, 16 May 2022 18:13:49 GMT", - "Expires": "-1", - "Pragma": "no-cache", - "Strict-Transport-Security": "max-age=31536000;includeSubDomains", - "X-Content-Type-Options": "nosniff", - "x-ms-keyvault-network-info": "conn_type=Ipv4;addr=73.83.78.150;act_addr_fam=InterNetwork;", - "x-ms-keyvault-region": "westus2", - "x-ms-keyvault-service-version": "1.9.395.1", - "x-ms-request-id": "acb6a247-6f8e-45fb-834b-d0e7d697a929" - }, - "ResponseBody": { - "id": "https://fakekvurl.vault.azure.net/certificates/issuers/issuer3351460800", - "provider": "Test", - "credentials": { - "account_id": "keyvaultuser" - }, - "org_details": { - "zip": 0, - "admin_details": [ - { - "first_name": "John", - "last_name": "Doe", - "email": "admin@microsoft.com", - "phone": "4255555555" - } - ] - }, - "attributes": { - "enabled": true, - "created": 1652724829, - "updated": 1652724829 - } - } - }, - { - "RequestUri": "https://fakekvurl.vault.azure.net/certificates/issuers/issuer23351460800?api-version=7.3", - "RequestMethod": "PUT", - "RequestHeaders": { - "Accept": "application/json", - "Accept-Encoding": "gzip", - "Authorization": "Sanitized", - "Content-Length": "219", - "Content-Type": "application/json", - "User-Agent": "azsdk-go-azcertificates/v0.4.2 (go1.18; Windows_NT)" - }, - "RequestBody": { - "provider": "Test", - "attributes": { - "enabled": true - }, - "credentials": { - "account_id": "keyvaultuser2" - }, - "org_details": { - "admin_details": [ - { - "email": "admin@microsoft.com", - "first_name": "John", - "last_name": "Doe", - "phone": "4255555555" - } - ] - } - }, - "StatusCode": 200, - "ResponseHeaders": { - "Cache-Control": "no-cache", - "Content-Length": "349", - "Content-Type": "application/json; charset=utf-8", - "Date": "Mon, 16 May 2022 18:13:49 GMT", - "Expires": "-1", - "Pragma": "no-cache", - "Strict-Transport-Security": "max-age=31536000;includeSubDomains", - "X-Content-Type-Options": "nosniff", - "x-ms-keyvault-network-info": "conn_type=Ipv4;addr=73.83.78.150;act_addr_fam=InterNetwork;", - "x-ms-keyvault-region": "westus2", - "x-ms-keyvault-service-version": "1.9.395.1", - "x-ms-request-id": "47ce1a19-7b62-45d8-aa69-9efba7a07731" - }, - "ResponseBody": { - "id": "https://fakekvurl.vault.azure.net/certificates/issuers/issuer23351460800", - "provider": "Test", - "credentials": { - "account_id": "keyvaultuser2" - }, - "org_details": { - "zip": 0, - "admin_details": [ - { - "first_name": "John", - "last_name": "Doe", - "email": "admin@microsoft.com", - "phone": "4255555555" - } - ] - }, - "attributes": { - "enabled": true, - "created": 1652715902, - "updated": 1652724829 - } - } - }, - { - "RequestUri": "https://fakekvurl.vault.azure.net/certificates/issuers?api-version=7.3", - "RequestMethod": "GET", - "RequestHeaders": { - ":method": "GET", - "Accept": "application/json", - "Accept-Encoding": "gzip", - "Authorization": "Sanitized", - "User-Agent": "azsdk-go-azcertificates/v0.4.2 (go1.18; Windows_NT)" - }, - "RequestBody": null, - "StatusCode": 200, - "ResponseHeaders": { - "Cache-Control": "no-cache", - "Content-Length": "814", - "Content-Type": "application/json; charset=utf-8", - "Date": "Mon, 16 May 2022 18:13:49 GMT", - "Expires": "-1", - "Pragma": "no-cache", - "Strict-Transport-Security": "max-age=31536000;includeSubDomains", - "X-Content-Type-Options": "nosniff", - "x-ms-keyvault-network-info": "conn_type=Ipv4;addr=73.83.78.150;act_addr_fam=InterNetwork;", - "x-ms-keyvault-region": "westus2", - "x-ms-keyvault-service-version": "1.9.395.1", - "x-ms-request-id": "0d4cdaff-2a65-4db9-adff-b7364ae46287" - }, - "ResponseBody": { - "value": [ - { - "id": "https://fakekvurl.vault.azure.net/certificates/issuers/issuer23351460800", - "provider": "Test" - }, - { - "id": "https://fakekvurl.vault.azure.net/certificates/issuers/issuer28xhggd47", - "provider": "Test" - }, - { - "id": "https://fakekvurl.vault.azure.net/certificates/issuers/issuer2cyvr6f98", - "provider": "Test" - }, - { - "id": "https://fakekvurl.vault.azure.net/certificates/issuers/issuer2fmb5byak", - "provider": "Test" - }, - { - "id": "https://fakekvurl.vault.azure.net/certificates/issuers/issuer2nhm9zrcc", - "provider": "Test" - }, - { - "id": "https://fakekvurl.vault.azure.net/certificates/issuers/issuer2xmst8b4t", - "provider": "Test" - }, - { - "id": "https://fakekvurl.vault.azure.net/certificates/issuers/issuer2yr4vf2kr", - "provider": "Test" - }, - { - "id": "https://fakekvurl.vault.azure.net/certificates/issuers/issuer3351460800", - "provider": "Test" - } - ], - "nextLink": null - } - }, - { - "RequestUri": "https://fakekvurl.vault.azure.net/certificates/issuers/issuer23351460800?api-version=7.3", - "RequestMethod": "PATCH", - "RequestHeaders": { - "Accept": "application/json", - "Accept-Encoding": "gzip", - "Authorization": "Sanitized", - "Content-Length": "221", - "Content-Type": "application/json", - "User-Agent": "azsdk-go-azcertificates/v0.4.2 (go1.18; Windows_NT)" - }, - "RequestBody": { - "attributes": { - "enabled": true - }, - "credentials": { - "account_id": "keyvaultuser2" - }, - "org_details": { - "admin_details": [ - { - "email": "admin2@microsoft.com", - "first_name": "Jane", - "last_name": "Doey", - "phone": "4266666666" - } - ] - }, - "provider": "Test" - }, - "StatusCode": 200, - "ResponseHeaders": { - "Cache-Control": "no-cache", - "Content-Length": "351", - "Content-Type": "application/json; charset=utf-8", - "Date": "Mon, 16 May 2022 18:13:49 GMT", - "Expires": "-1", - "Pragma": "no-cache", - "Strict-Transport-Security": "max-age=31536000;includeSubDomains", - "X-Content-Type-Options": "nosniff", - "x-ms-keyvault-network-info": "conn_type=Ipv4;addr=73.83.78.150;act_addr_fam=InterNetwork;", - "x-ms-keyvault-region": "westus2", - "x-ms-keyvault-service-version": "1.9.395.1", - "x-ms-request-id": "77861234-763d-4956-b1b3-274ef72222f6" - }, - "ResponseBody": { - "id": "https://fakekvurl.vault.azure.net/certificates/issuers/issuer23351460800", - "provider": "Test", - "credentials": { - "account_id": "keyvaultuser2" - }, - "org_details": { - "zip": 0, - "admin_details": [ - { - "first_name": "Jane", - "last_name": "Doey", - "email": "admin2@microsoft.com", - "phone": "4266666666" - } - ] - }, - "attributes": { - "enabled": true, - "created": 1652715902, - "updated": 1652724830 - } - } - }, - { - "RequestUri": "https://fakekvurl.vault.azure.net/certificates/issuers/issuer3351460800?api-version=7.3", - "RequestMethod": "DELETE", - "RequestHeaders": { - "Accept": "application/json", - "Accept-Encoding": "gzip", - "Authorization": "Sanitized", - "User-Agent": "azsdk-go-azcertificates/v0.4.2 (go1.18; Windows_NT)" - }, - "RequestBody": null, - "StatusCode": 200, - "ResponseHeaders": { - "Cache-Control": "no-cache", - "Content-Length": "347", - "Content-Type": "application/json; charset=utf-8", - "Date": "Mon, 16 May 2022 18:13:49 GMT", - "Expires": "-1", - "Pragma": "no-cache", - "Strict-Transport-Security": "max-age=31536000;includeSubDomains", - "X-Content-Type-Options": "nosniff", - "x-ms-keyvault-network-info": "conn_type=Ipv4;addr=73.83.78.150;act_addr_fam=InterNetwork;", - "x-ms-keyvault-region": "westus2", - "x-ms-keyvault-service-version": "1.9.395.1", - "x-ms-request-id": "db2e4361-1985-4f3c-8aaf-cdb8cd5d182e" - }, - "ResponseBody": { - "id": "https://fakekvurl.vault.azure.net/certificates/issuers/issuer3351460800", - "provider": "Test", - "credentials": { - "account_id": "keyvaultuser" - }, - "org_details": { - "zip": 0, - "admin_details": [ - { - "first_name": "John", - "last_name": "Doe", - "email": "admin@microsoft.com", - "phone": "4255555555" - } - ] - }, - "attributes": { - "enabled": true, - "created": 1652724829, - "updated": 1652724829 - } - } - }, - { - "RequestUri": "https://fakekvurl.vault.azure.net/certificates/issuers/issuer3351460800?api-version=7.3", - "RequestMethod": "GET", - "RequestHeaders": { - ":method": "GET", - "Accept": "application/json", - "Accept-Encoding": "gzip", - "Authorization": "Sanitized", - "User-Agent": "azsdk-go-azcertificates/v0.4.2 (go1.18; Windows_NT)" - }, - "RequestBody": null, - "StatusCode": 404, - "ResponseHeaders": { - "Cache-Control": "no-cache", - "Content-Length": "75", - "Content-Type": "application/json; charset=utf-8", - "Date": "Mon, 16 May 2022 18:13:49 GMT", - "Expires": "-1", - "Pragma": "no-cache", - "Strict-Transport-Security": "max-age=31536000;includeSubDomains", - "X-Content-Type-Options": "nosniff", - "x-ms-keyvault-network-info": "conn_type=Ipv4;addr=73.83.78.150;act_addr_fam=InterNetwork;", - "x-ms-keyvault-region": "westus2", - "x-ms-keyvault-service-version": "1.9.395.1", - "x-ms-request-id": "a344c2c9-1ae0-45db-8dbe-09a02cd00b02" - }, - "ResponseBody": { - "error": { - "code": "CertificateIssuerNotFound", - "message": "Issuer not found" - } - } - } - ], - "Variables": {} -} diff --git a/sdk/keyvault/azcertificates/testdata/recordings/TestClient_ListCertificateVersions.json b/sdk/keyvault/azcertificates/testdata/recordings/TestClient_ListCertificateVersions.json deleted file mode 100644 index 2f613c14b28b..000000000000 --- a/sdk/keyvault/azcertificates/testdata/recordings/TestClient_ListCertificateVersions.json +++ /dev/null @@ -1,1102 +0,0 @@ -{ - "Entries": [ - { - "RequestUri": "https://fakekvurl.vault.azure.net/certificates/cert12124965311/create?api-version=7.3", - "RequestMethod": "POST", - "RequestHeaders": { - ":method": "POST", - "Accept": "application/json", - "Accept-Encoding": "gzip", - "Content-Length": "0", - "User-Agent": "azsdk-go-azcertificates/v0.4.2 (go1.18; Windows_NT)" - }, - "RequestBody": null, - "StatusCode": 401, - "ResponseHeaders": { - "Cache-Control": "no-cache", - "Content-Length": "97", - "Content-Type": "application/json; charset=utf-8", - "Date": "Mon, 16 May 2022 18:13:03 GMT", - "Expires": "-1", - "Pragma": "no-cache", - "Strict-Transport-Security": "max-age=31536000;includeSubDomains", - "WWW-Authenticate": "Bearer authorization=\u0022https://login.windows.net/00000000-0000-0000-0000-000000000000\u0022, resource=\u0022https://vault.azure.net\u0022", - "X-Content-Type-Options": "nosniff", - "x-ms-keyvault-network-info": "conn_type=Ipv4;addr=73.83.78.150;act_addr_fam=InterNetwork;", - "x-ms-keyvault-region": "westus2", - "x-ms-keyvault-service-version": "1.9.395.1", - "x-ms-request-id": "e9f99119-4f30-47d7-a855-e57679ec673d" - }, - "ResponseBody": { - "error": { - "code": "Unauthorized", - "message": "AKV10000: Request is missing a Bearer or PoP token." - } - } - }, - { - "RequestUri": "https://fakekvurl.vault.azure.net/certificates/cert12124965311/create?api-version=7.3", - "RequestMethod": "POST", - "RequestHeaders": { - ":method": "POST", - "Accept": "application/json", - "Accept-Encoding": "gzip", - "Authorization": "Sanitized", - "Content-Length": "125", - "Content-Type": "application/json", - "User-Agent": "azsdk-go-azcertificates/v0.4.2 (go1.18; Windows_NT)" - }, - "RequestBody": { - "attributes": {}, - "policy": { - "issuer": { - "name": "Self" - }, - "secret_props": {}, - "x509_props": { - "sans": {}, - "subject": "CN=DefaultPolicy" - } - } - }, - "StatusCode": 202, - "ResponseHeaders": { - "Cache-Control": "no-cache", - "Content-Length": "1290", - "Content-Type": "application/json; charset=utf-8", - "Date": "Mon, 16 May 2022 18:13:04 GMT", - "Expires": "-1", - "Location": "https://fakekvurl.vault.azure.net/certificates/cert12124965311/pending?api-version=7.3\u0026request_id=d93e8961c77c4e47b2c2253655e2c0e3", - "Pragma": "no-cache", - "Retry-After": "10", - "Strict-Transport-Security": "max-age=31536000;includeSubDomains", - "X-Content-Type-Options": "nosniff", - "x-ms-keyvault-network-info": "conn_type=Ipv4;addr=73.83.78.150;act_addr_fam=InterNetwork;", - "x-ms-keyvault-region": "westus2", - "x-ms-keyvault-service-version": "1.9.395.1", - "x-ms-request-id": "2d817d31-d12e-4a29-8b5e-57185b9960f5" - }, - "ResponseBody": { - "id": "https://fakekvurl.vault.azure.net/certificates/cert12124965311/pending", - "issuer": { - "name": "Self" - }, - "csr": "MIICqDCCAZACAQAwGDEWMBQGA1UEAxMNRGVmYXVsdFBvbGljeTCCASIwDQYJKoZIhvcNAQEBBQADggEPADCCAQoCggEBAL6tqX6/\u002BSNnNk6fsibSMZnFJY\u002BemivRMPZs77OATG077IXVcjCi4jzhiLo6RaoqnlsiA3C/OWwx/fYNfOkBlh\u002BnClO779cXa/LRef\u002BcUfSpb5N99BkQjAWv8TK10fYudlw7ei5q1y04GEZ0xtVMxFcKR9I\u002BnrEkq/BUy47nRmt9XjogmIgPywgpi8HYujI6PNmQCI0uJuVQbc5QpC8e1Bx16Tf0xdB/H\u002BiCf7N10aE\u002BCKFk2ZyFseNrq0ukgAlEJCsB15y79mO9U3cLDYwgLGz1AmqPlsPdn47QkGtfisRsNz0aFBHwt8d0ryOurvsp3nPx4EdeHEaPtZa5c2KMO8ECAwEAAaBLMEkGCSqGSIb3DQEJDjE8MDowDgYDVR0PAQH/BAQDAgWgMB0GA1UdJQQWMBQGCCsGAQUFBwMBBggrBgEFBQcDAjAJBgNVHRMEAjAAMA0GCSqGSIb3DQEBCwUAA4IBAQBR7uDyIk27sLGHRR3AbTUt7/kAkfkU5ANBEtqz3p9SCPY37V0asEeMKCfwFY8jifHWNT8YdYEpLl5loLf3iiYl5PEbmjQr/g9XkVxQ2yVmlRpC1eXb/RxCCe7iEFICC4UNr0EY53LI4SpqLYXIiKVyX04d25f04ij7GSotlGxkRotWwuU2xf5BE6J\u002BeeduwmQ3qk2FCzHukXderouVZoVvM4UYILRegI9W8ehv7\u002BE0WbgA0ZTmUqAyrjNZB5z86hd6/gEu59C4LF6mX3Hswbf5WidT6UGc/XmJW7W5dlWetOCPtp3ZZMoFa0iogL1oVu4IQJYUZFwCW6WYEIMAeYa5", - "cancellation_requested": false, - "status": "inProgress", - "status_details": "Pending certificate created. Certificate request is in progress. This may take some time based on the issuer provider. Please check again later.", - "request_id": "d93e8961c77c4e47b2c2253655e2c0e3" - } - }, - { - "RequestUri": "https://fakekvurl.vault.azure.net/certificates/cert12124965311/pending?api-version=7.3\u0026request_id=d93e8961c77c4e47b2c2253655e2c0e3", - "RequestMethod": "GET", - "RequestHeaders": { - ":method": "GET", - "Accept-Encoding": "gzip", - "Authorization": "Sanitized", - "User-Agent": "azsdk-go-azcertificates/v0.4.2 (go1.18; Windows_NT)" - }, - "RequestBody": null, - "StatusCode": 200, - "ResponseHeaders": { - "Cache-Control": "no-cache", - "Content-Length": "1199", - "Content-Type": "application/json; charset=utf-8", - "Date": "Mon, 16 May 2022 18:13:15 GMT", - "Expires": "-1", - "Pragma": "no-cache", - "Strict-Transport-Security": "max-age=31536000;includeSubDomains", - "X-Content-Type-Options": "nosniff", - "x-ms-keyvault-network-info": "conn_type=Ipv4;addr=73.83.78.150;act_addr_fam=InterNetwork;", - "x-ms-keyvault-region": "westus2", - "x-ms-keyvault-service-version": "1.9.395.1", - "x-ms-request-id": "2eea7975-331a-4ab8-ae04-36728be8ea4c" - }, - "ResponseBody": { - "id": "https://fakekvurl.vault.azure.net/certificates/cert12124965311/pending", - "issuer": { - "name": "Self" - }, - "csr": "MIICqDCCAZACAQAwGDEWMBQGA1UEAxMNRGVmYXVsdFBvbGljeTCCASIwDQYJKoZIhvcNAQEBBQADggEPADCCAQoCggEBAL6tqX6/\u002BSNnNk6fsibSMZnFJY\u002BemivRMPZs77OATG077IXVcjCi4jzhiLo6RaoqnlsiA3C/OWwx/fYNfOkBlh\u002BnClO779cXa/LRef\u002BcUfSpb5N99BkQjAWv8TK10fYudlw7ei5q1y04GEZ0xtVMxFcKR9I\u002BnrEkq/BUy47nRmt9XjogmIgPywgpi8HYujI6PNmQCI0uJuVQbc5QpC8e1Bx16Tf0xdB/H\u002BiCf7N10aE\u002BCKFk2ZyFseNrq0ukgAlEJCsB15y79mO9U3cLDYwgLGz1AmqPlsPdn47QkGtfisRsNz0aFBHwt8d0ryOurvsp3nPx4EdeHEaPtZa5c2KMO8ECAwEAAaBLMEkGCSqGSIb3DQEJDjE8MDowDgYDVR0PAQH/BAQDAgWgMB0GA1UdJQQWMBQGCCsGAQUFBwMBBggrBgEFBQcDAjAJBgNVHRMEAjAAMA0GCSqGSIb3DQEBCwUAA4IBAQBR7uDyIk27sLGHRR3AbTUt7/kAkfkU5ANBEtqz3p9SCPY37V0asEeMKCfwFY8jifHWNT8YdYEpLl5loLf3iiYl5PEbmjQr/g9XkVxQ2yVmlRpC1eXb/RxCCe7iEFICC4UNr0EY53LI4SpqLYXIiKVyX04d25f04ij7GSotlGxkRotWwuU2xf5BE6J\u002BeeduwmQ3qk2FCzHukXderouVZoVvM4UYILRegI9W8ehv7\u002BE0WbgA0ZTmUqAyrjNZB5z86hd6/gEu59C4LF6mX3Hswbf5WidT6UGc/XmJW7W5dlWetOCPtp3ZZMoFa0iogL1oVu4IQJYUZFwCW6WYEIMAeYa5", - "cancellation_requested": false, - "status": "completed", - "target": "https://fakekvurl.vault.azure.net/certificates/cert12124965311", - "request_id": "d93e8961c77c4e47b2c2253655e2c0e3" - } - }, - { - "RequestUri": "https://fakekvurl.vault.azure.net/certificates/cert12124965311/?api-version=7.3", - "RequestMethod": "GET", - "RequestHeaders": { - ":method": "GET", - "Accept": "application/json", - "Accept-Encoding": "gzip", - "Authorization": "Sanitized", - "User-Agent": "azsdk-go-azcertificates/v0.4.2 (go1.18; Windows_NT)" - }, - "RequestBody": null, - "StatusCode": 200, - "ResponseHeaders": { - "Cache-Control": "no-cache", - "Content-Length": "2336", - "Content-Type": "application/json; charset=utf-8", - "Date": "Mon, 16 May 2022 18:13:15 GMT", - "Expires": "-1", - "Pragma": "no-cache", - "Strict-Transport-Security": "max-age=31536000;includeSubDomains", - "X-Content-Type-Options": "nosniff", - "x-ms-keyvault-network-info": "conn_type=Ipv4;addr=73.83.78.150;act_addr_fam=InterNetwork;", - "x-ms-keyvault-region": "westus2", - "x-ms-keyvault-service-version": "1.9.395.1", - "x-ms-request-id": "74cc4323-aba8-4e9f-829d-06cbf8c6f67d" - }, - "ResponseBody": { - "id": "https://fakekvurl.vault.azure.net/certificates/cert12124965311/3c82bd9522bc49448182e144c7cf5526", - "kid": "https://fakekvurl.vault.azure.net/keys/cert12124965311/3c82bd9522bc49448182e144c7cf5526", - "sid": "https://fakekvurl.vault.azure.net/secrets/cert12124965311/3c82bd9522bc49448182e144c7cf5526", - "x5t": "tuDU9eLVhh4oS5tLZ3sg5JOI29g", - "cer": "MIIDNjCCAh6gAwIBAgIQboHL6aJ8RjuytLREzMmLKzANBgkqhkiG9w0BAQsFADAYMRYwFAYDVQQDEw1EZWZhdWx0UG9saWN5MB4XDTIyMDUxNjE4MDMxMFoXDTIzMDUxNjE4MTMxMFowGDEWMBQGA1UEAxMNRGVmYXVsdFBvbGljeTCCASIwDQYJKoZIhvcNAQEBBQADggEPADCCAQoCggEBAL6tqX6/\u002BSNnNk6fsibSMZnFJY\u002BemivRMPZs77OATG077IXVcjCi4jzhiLo6RaoqnlsiA3C/OWwx/fYNfOkBlh\u002BnClO779cXa/LRef\u002BcUfSpb5N99BkQjAWv8TK10fYudlw7ei5q1y04GEZ0xtVMxFcKR9I\u002BnrEkq/BUy47nRmt9XjogmIgPywgpi8HYujI6PNmQCI0uJuVQbc5QpC8e1Bx16Tf0xdB/H\u002BiCf7N10aE\u002BCKFk2ZyFseNrq0ukgAlEJCsB15y79mO9U3cLDYwgLGz1AmqPlsPdn47QkGtfisRsNz0aFBHwt8d0ryOurvsp3nPx4EdeHEaPtZa5c2KMO8ECAwEAAaN8MHowDgYDVR0PAQH/BAQDAgWgMAkGA1UdEwQCMAAwHQYDVR0lBBYwFAYIKwYBBQUHAwEGCCsGAQUFBwMCMB8GA1UdIwQYMBaAFJbPjCpWLQ8eib9l0xw1JVMnYaPzMB0GA1UdDgQWBBSWz4wqVi0PHom/ZdMcNSVTJ2Gj8zANBgkqhkiG9w0BAQsFAAOCAQEACyXAOYGntJ0p/\u002BHSu3LVEX84WbRKcA3Qn8jn/LeA3X9cDrXGBQ3kE1hU9uqBWVDraFWS0br\u002BgNMf8xazzaloA2BZYq/N3XCC8iZ/QgPFi0IztIP08yAmA3qxscY7otT99iG9\u002BFSfOZ7MYwrtMhKoyvOAmUMwAtz8Ciscup4thwkW1e3c1sl\u002BRaF8/ChNvRVktzXKwwWjjZ9zpI1p60zu0UGyxwhKdTBBKCNMeR6Bg5N9qWW64eJARMq1C56kCN2C4wdVxTeSnxaJwERR3U/cLAMCPJc1EkK0BuC2lT/kj/yNc4xZOHBaCEfVbe3T5Qk8oTq8DNSkEYwvxlnDhEY0GQ==", - "attributes": { - "enabled": true, - "nbf": 1652724190, - "exp": 1684260790, - "created": 1652724790, - "updated": 1652724790, - "recoveryLevel": "CustomizedRecoverable\u002BPurgeable", - "recoverableDays": 7 - }, - "policy": { - "id": "https://fakekvurl.vault.azure.net/certificates/cert12124965311/policy", - "key_props": { - "exportable": true, - "kty": "RSA", - "key_size": 2048, - "reuse_key": false - }, - "secret_props": { - "contentType": "application/x-pkcs12" - }, - "x509_props": { - "subject": "CN=DefaultPolicy", - "sans": {}, - "ekus": [ - "1.3.6.1.5.5.7.3.1", - "1.3.6.1.5.5.7.3.2" - ], - "key_usage": [ - "digitalSignature", - "keyEncipherment" - ], - "validity_months": 12, - "basic_constraints": { - "ca": false - } - }, - "lifetime_actions": [ - { - "trigger": { - "lifetime_percentage": 80 - }, - "action": { - "action_type": "AutoRenew" - } - } - ], - "issuer": { - "name": "Self" - }, - "attributes": { - "enabled": true, - "created": 1652724785, - "updated": 1652724785 - } - }, - "pending": { - "id": "https://fakekvurl.vault.azure.net/certificates/cert12124965311/pending" - } - } - }, - { - "RequestUri": "https://fakekvurl.vault.azure.net/certificates/cert12124965311/versions?api-version=7.3", - "RequestMethod": "GET", - "RequestHeaders": { - ":method": "GET", - "Accept": "application/json", - "Accept-Encoding": "gzip", - "Authorization": "Sanitized", - "User-Agent": "azsdk-go-azcertificates/v0.4.2 (go1.18; Windows_NT)" - }, - "RequestBody": null, - "StatusCode": 200, - "ResponseHeaders": { - "Cache-Control": "no-cache", - "Content-Length": "287", - "Content-Type": "application/json; charset=utf-8", - "Date": "Mon, 16 May 2022 18:13:16 GMT", - "Expires": "-1", - "Pragma": "no-cache", - "Strict-Transport-Security": "max-age=31536000;includeSubDomains", - "X-Content-Type-Options": "nosniff", - "x-ms-keyvault-network-info": "conn_type=Ipv4;addr=73.83.78.150;act_addr_fam=InterNetwork;", - "x-ms-keyvault-region": "westus2", - "x-ms-keyvault-service-version": "1.9.395.1", - "x-ms-request-id": "38bc1277-de25-47fd-b1cb-a96e44aaf648" - }, - "ResponseBody": { - "value": [ - { - "id": "https://fakekvurl.vault.azure.net/certificates/cert12124965311/3c82bd9522bc49448182e144c7cf5526", - "x5t": "tuDU9eLVhh4oS5tLZ3sg5JOI29g", - "attributes": { - "enabled": true, - "nbf": 1652724190, - "exp": 1684260790, - "created": 1652724790, - "updated": 1652724790 - }, - "subject": "" - } - ], - "nextLink": null - } - }, - { - "RequestUri": "https://fakekvurl.vault.azure.net/certificates/cert12124965311/create?api-version=7.3", - "RequestMethod": "POST", - "RequestHeaders": { - ":method": "POST", - "Accept": "application/json", - "Accept-Encoding": "gzip", - "Authorization": "Sanitized", - "Content-Length": "125", - "Content-Type": "application/json", - "User-Agent": "azsdk-go-azcertificates/v0.4.2 (go1.18; Windows_NT)" - }, - "RequestBody": { - "attributes": {}, - "policy": { - "issuer": { - "name": "Self" - }, - "secret_props": {}, - "x509_props": { - "sans": {}, - "subject": "CN=DefaultPolicy" - } - } - }, - "StatusCode": 202, - "ResponseHeaders": { - "Cache-Control": "no-cache", - "Content-Length": "1290", - "Content-Type": "application/json; charset=utf-8", - "Date": "Mon, 16 May 2022 18:13:16 GMT", - "Expires": "-1", - "Location": "https://fakekvurl.vault.azure.net/certificates/cert12124965311/pending?api-version=7.3\u0026request_id=a1e922e6ca8440e19194e286f308cbbd", - "Pragma": "no-cache", - "Retry-After": "10", - "Strict-Transport-Security": "max-age=31536000;includeSubDomains", - "X-Content-Type-Options": "nosniff", - "x-ms-keyvault-network-info": "conn_type=Ipv4;addr=73.83.78.150;act_addr_fam=InterNetwork;", - "x-ms-keyvault-region": "westus2", - "x-ms-keyvault-service-version": "1.9.395.1", - "x-ms-request-id": "4e51e2a7-3c94-4e16-bdf1-487ca2b2efa1" - }, - "ResponseBody": { - "id": "https://fakekvurl.vault.azure.net/certificates/cert12124965311/pending", - "issuer": { - "name": "Self" - }, - "csr": "MIICqDCCAZACAQAwGDEWMBQGA1UEAxMNRGVmYXVsdFBvbGljeTCCASIwDQYJKoZIhvcNAQEBBQADggEPADCCAQoCggEBALJv4RiaXxyhwfIO0NCTXY48yXpSZEKYQA6rocl2rOozyvaK2Bs07F/1elfM\u002B90YXpDgbrE55ojBjneKaMSgrrEzT9hD3pYvSKyYlM0GyJaf5p9nkhBsbymhRx5xBhpfQG4FmJQ5cK8TJVKQ2x2chBcNPZuiHsosBo9hLQTLKgnRiNbH2J4dF98tXp8G9p6IbqxbN8j5UgiVoODHzrxrPGAuzTVeXwXjLHWXGilC4izF6Vh7HqE0SORnaowU1DWNthXMrR\u002BkZRtV/2ZmwgzLmPqItTCmGbFoqa9K61pQQ5Hl0cacjsJjbDkVGAWTnwp4ViJUuSiIbmM2nr08cLAEPUUCAwEAAaBLMEkGCSqGSIb3DQEJDjE8MDowDgYDVR0PAQH/BAQDAgWgMB0GA1UdJQQWMBQGCCsGAQUFBwMBBggrBgEFBQcDAjAJBgNVHRMEAjAAMA0GCSqGSIb3DQEBCwUAA4IBAQA8POS0CoTDs0WwIgYDGEkKB3jducQCQL9txcxbnu4C5unZ\u002B2MSY\u002BJ2lJ7TqlgUalmIzQxfY4iknGtFP/6IQN0VSfMSVTPcZhwtOb0Lp5NcTpXpcl\u002BqZ3h8hQ75BBnlwH82cjVWz7G5iN4GeSZGVtNu5FTfoQbJzyyC7yzvNUbRRnC2lkamH/oNIuZCHxdV5Qvz\u002B14acrv2t5l0iLntxlbaCuqftTuBHHCSqjGZ//mVXQ9VdyV9eBGMN2uy0FY3GhdSYQEeiZrbVCBcm4FbvnhGQvPPc8O3K8WOeef2WDCwqNK5wr1b3/f9GQOn2fD6xA17hjB/g7CSouoTS9DWAzaq", - "cancellation_requested": false, - "status": "inProgress", - "status_details": "Pending certificate created. Certificate request is in progress. This may take some time based on the issuer provider. Please check again later.", - "request_id": "a1e922e6ca8440e19194e286f308cbbd" - } - }, - { - "RequestUri": "https://fakekvurl.vault.azure.net/certificates/cert12124965311/pending?api-version=7.3\u0026request_id=a1e922e6ca8440e19194e286f308cbbd", - "RequestMethod": "GET", - "RequestHeaders": { - ":method": "GET", - "Accept-Encoding": "gzip", - "Authorization": "Sanitized", - "User-Agent": "azsdk-go-azcertificates/v0.4.2 (go1.18; Windows_NT)" - }, - "RequestBody": null, - "StatusCode": 200, - "ResponseHeaders": { - "Cache-Control": "no-cache", - "Content-Length": "1199", - "Content-Type": "application/json; charset=utf-8", - "Date": "Mon, 16 May 2022 18:13:26 GMT", - "Expires": "-1", - "Pragma": "no-cache", - "Strict-Transport-Security": "max-age=31536000;includeSubDomains", - "X-Content-Type-Options": "nosniff", - "x-ms-keyvault-network-info": "conn_type=Ipv4;addr=73.83.78.150;act_addr_fam=InterNetwork;", - "x-ms-keyvault-region": "westus2", - "x-ms-keyvault-service-version": "1.9.395.1", - "x-ms-request-id": "2885f7f7-c1a5-47ea-8bf3-d20122bb9e10" - }, - "ResponseBody": { - "id": "https://fakekvurl.vault.azure.net/certificates/cert12124965311/pending", - "issuer": { - "name": "Self" - }, - "csr": "MIICqDCCAZACAQAwGDEWMBQGA1UEAxMNRGVmYXVsdFBvbGljeTCCASIwDQYJKoZIhvcNAQEBBQADggEPADCCAQoCggEBALJv4RiaXxyhwfIO0NCTXY48yXpSZEKYQA6rocl2rOozyvaK2Bs07F/1elfM\u002B90YXpDgbrE55ojBjneKaMSgrrEzT9hD3pYvSKyYlM0GyJaf5p9nkhBsbymhRx5xBhpfQG4FmJQ5cK8TJVKQ2x2chBcNPZuiHsosBo9hLQTLKgnRiNbH2J4dF98tXp8G9p6IbqxbN8j5UgiVoODHzrxrPGAuzTVeXwXjLHWXGilC4izF6Vh7HqE0SORnaowU1DWNthXMrR\u002BkZRtV/2ZmwgzLmPqItTCmGbFoqa9K61pQQ5Hl0cacjsJjbDkVGAWTnwp4ViJUuSiIbmM2nr08cLAEPUUCAwEAAaBLMEkGCSqGSIb3DQEJDjE8MDowDgYDVR0PAQH/BAQDAgWgMB0GA1UdJQQWMBQGCCsGAQUFBwMBBggrBgEFBQcDAjAJBgNVHRMEAjAAMA0GCSqGSIb3DQEBCwUAA4IBAQA8POS0CoTDs0WwIgYDGEkKB3jducQCQL9txcxbnu4C5unZ\u002B2MSY\u002BJ2lJ7TqlgUalmIzQxfY4iknGtFP/6IQN0VSfMSVTPcZhwtOb0Lp5NcTpXpcl\u002BqZ3h8hQ75BBnlwH82cjVWz7G5iN4GeSZGVtNu5FTfoQbJzyyC7yzvNUbRRnC2lkamH/oNIuZCHxdV5Qvz\u002B14acrv2t5l0iLntxlbaCuqftTuBHHCSqjGZ//mVXQ9VdyV9eBGMN2uy0FY3GhdSYQEeiZrbVCBcm4FbvnhGQvPPc8O3K8WOeef2WDCwqNK5wr1b3/f9GQOn2fD6xA17hjB/g7CSouoTS9DWAzaq", - "cancellation_requested": false, - "status": "completed", - "target": "https://fakekvurl.vault.azure.net/certificates/cert12124965311", - "request_id": "a1e922e6ca8440e19194e286f308cbbd" - } - }, - { - "RequestUri": "https://fakekvurl.vault.azure.net/certificates/cert12124965311/?api-version=7.3", - "RequestMethod": "GET", - "RequestHeaders": { - ":method": "GET", - "Accept": "application/json", - "Accept-Encoding": "gzip", - "Authorization": "Sanitized", - "User-Agent": "azsdk-go-azcertificates/v0.4.2 (go1.18; Windows_NT)" - }, - "RequestBody": null, - "StatusCode": 200, - "ResponseHeaders": { - "Cache-Control": "no-cache", - "Content-Length": "2336", - "Content-Type": "application/json; charset=utf-8", - "Date": "Mon, 16 May 2022 18:13:26 GMT", - "Expires": "-1", - "Pragma": "no-cache", - "Strict-Transport-Security": "max-age=31536000;includeSubDomains", - "X-Content-Type-Options": "nosniff", - "x-ms-keyvault-network-info": "conn_type=Ipv4;addr=73.83.78.150;act_addr_fam=InterNetwork;", - "x-ms-keyvault-region": "westus2", - "x-ms-keyvault-service-version": "1.9.395.1", - "x-ms-request-id": "538da2e0-5c38-4174-b358-0b08b636bcbc" - }, - "ResponseBody": { - "id": "https://fakekvurl.vault.azure.net/certificates/cert12124965311/72f5b08cb22b421ba024548c1c9b1293", - "kid": "https://fakekvurl.vault.azure.net/keys/cert12124965311/72f5b08cb22b421ba024548c1c9b1293", - "sid": "https://fakekvurl.vault.azure.net/secrets/cert12124965311/72f5b08cb22b421ba024548c1c9b1293", - "x5t": "4Z5hUQ-tGMcs8nw5s_IRaj4apHM", - "cer": "MIIDNjCCAh6gAwIBAgIQYr72YEneTY2yxQZif3mbnjANBgkqhkiG9w0BAQsFADAYMRYwFAYDVQQDEw1EZWZhdWx0UG9saWN5MB4XDTIyMDUxNjE4MDMyNFoXDTIzMDUxNjE4MTMyNFowGDEWMBQGA1UEAxMNRGVmYXVsdFBvbGljeTCCASIwDQYJKoZIhvcNAQEBBQADggEPADCCAQoCggEBALJv4RiaXxyhwfIO0NCTXY48yXpSZEKYQA6rocl2rOozyvaK2Bs07F/1elfM\u002B90YXpDgbrE55ojBjneKaMSgrrEzT9hD3pYvSKyYlM0GyJaf5p9nkhBsbymhRx5xBhpfQG4FmJQ5cK8TJVKQ2x2chBcNPZuiHsosBo9hLQTLKgnRiNbH2J4dF98tXp8G9p6IbqxbN8j5UgiVoODHzrxrPGAuzTVeXwXjLHWXGilC4izF6Vh7HqE0SORnaowU1DWNthXMrR\u002BkZRtV/2ZmwgzLmPqItTCmGbFoqa9K61pQQ5Hl0cacjsJjbDkVGAWTnwp4ViJUuSiIbmM2nr08cLAEPUUCAwEAAaN8MHowDgYDVR0PAQH/BAQDAgWgMAkGA1UdEwQCMAAwHQYDVR0lBBYwFAYIKwYBBQUHAwEGCCsGAQUFBwMCMB8GA1UdIwQYMBaAFCgfPE5fG0tYtgQ315Ps5I26hNwBMB0GA1UdDgQWBBQoHzxOXxtLWLYEN9eT7OSNuoTcATANBgkqhkiG9w0BAQsFAAOCAQEADezNaiPSFnQfdH9e5a3hhR0Z\u002BTPAe4sZuhc71p1eM5us6jb4vkaadp2AGdUhO9\u002ByWX0z7lcxEfhb2g9IMuC2Vij/sMYKEGNg80Sb2zliJ1Z36ihs91pw7me7oPwhr3\u002BWep8nx90RIhsk53PyowoHWN1O5HjMn8NhapLvi1x424xylXTWI9n7\u002Bf2QYJWGk7fYP\u002BV3LWtojGVeIF0URniEqzjYLu0DS8HXVzG11VAPrq57WgCckVWzly69XIIg9Qr/qBlxq3Qegm6wOXGOrV87NHvUrw6H069sc0/yX1OuZyjgTaWrxnAoJkGbhxSKbdVE0s4HXaH0wBjT0MPd7a2qcQ==", - "attributes": { - "enabled": true, - "nbf": 1652724204, - "exp": 1684260804, - "created": 1652724804, - "updated": 1652724804, - "recoveryLevel": "CustomizedRecoverable\u002BPurgeable", - "recoverableDays": 7 - }, - "policy": { - "id": "https://fakekvurl.vault.azure.net/certificates/cert12124965311/policy", - "key_props": { - "exportable": true, - "kty": "RSA", - "key_size": 2048, - "reuse_key": false - }, - "secret_props": { - "contentType": "application/x-pkcs12" - }, - "x509_props": { - "subject": "CN=DefaultPolicy", - "sans": {}, - "ekus": [ - "1.3.6.1.5.5.7.3.1", - "1.3.6.1.5.5.7.3.2" - ], - "key_usage": [ - "digitalSignature", - "keyEncipherment" - ], - "validity_months": 12, - "basic_constraints": { - "ca": false - } - }, - "lifetime_actions": [ - { - "trigger": { - "lifetime_percentage": 80 - }, - "action": { - "action_type": "AutoRenew" - } - } - ], - "issuer": { - "name": "Self" - }, - "attributes": { - "enabled": true, - "created": 1652724785, - "updated": 1652724796 - } - }, - "pending": { - "id": "https://fakekvurl.vault.azure.net/certificates/cert12124965311/pending" - } - } - }, - { - "RequestUri": "https://fakekvurl.vault.azure.net/certificates/cert12124965311/versions?api-version=7.3", - "RequestMethod": "GET", - "RequestHeaders": { - ":method": "GET", - "Accept": "application/json", - "Accept-Encoding": "gzip", - "Authorization": "Sanitized", - "User-Agent": "azsdk-go-azcertificates/v0.4.2 (go1.18; Windows_NT)" - }, - "RequestBody": null, - "StatusCode": 200, - "ResponseHeaders": { - "Cache-Control": "no-cache", - "Content-Length": "547", - "Content-Type": "application/json; charset=utf-8", - "Date": "Mon, 16 May 2022 18:13:26 GMT", - "Expires": "-1", - "Pragma": "no-cache", - "Strict-Transport-Security": "max-age=31536000;includeSubDomains", - "X-Content-Type-Options": "nosniff", - "x-ms-keyvault-network-info": "conn_type=Ipv4;addr=73.83.78.150;act_addr_fam=InterNetwork;", - "x-ms-keyvault-region": "westus2", - "x-ms-keyvault-service-version": "1.9.395.1", - "x-ms-request-id": "cab71b13-3b1c-440b-9c89-ac846a3b9c6c" - }, - "ResponseBody": { - "value": [ - { - "id": "https://fakekvurl.vault.azure.net/certificates/cert12124965311/3c82bd9522bc49448182e144c7cf5526", - "x5t": "tuDU9eLVhh4oS5tLZ3sg5JOI29g", - "attributes": { - "enabled": true, - "nbf": 1652724190, - "exp": 1684260790, - "created": 1652724790, - "updated": 1652724790 - }, - "subject": "" - }, - { - "id": "https://fakekvurl.vault.azure.net/certificates/cert12124965311/72f5b08cb22b421ba024548c1c9b1293", - "x5t": "4Z5hUQ-tGMcs8nw5s_IRaj4apHM", - "attributes": { - "enabled": true, - "nbf": 1652724204, - "exp": 1684260804, - "created": 1652724804, - "updated": 1652724804 - }, - "subject": "" - } - ], - "nextLink": null - } - }, - { - "RequestUri": "https://fakekvurl.vault.azure.net/certificates/cert12124965311/create?api-version=7.3", - "RequestMethod": "POST", - "RequestHeaders": { - ":method": "POST", - "Accept": "application/json", - "Accept-Encoding": "gzip", - "Authorization": "Sanitized", - "Content-Length": "125", - "Content-Type": "application/json", - "User-Agent": "azsdk-go-azcertificates/v0.4.2 (go1.18; Windows_NT)" - }, - "RequestBody": { - "attributes": {}, - "policy": { - "issuer": { - "name": "Self" - }, - "secret_props": {}, - "x509_props": { - "sans": {}, - "subject": "CN=DefaultPolicy" - } - } - }, - "StatusCode": 202, - "ResponseHeaders": { - "Cache-Control": "no-cache", - "Content-Length": "1290", - "Content-Type": "application/json; charset=utf-8", - "Date": "Mon, 16 May 2022 18:13:26 GMT", - "Expires": "-1", - "Location": "https://fakekvurl.vault.azure.net/certificates/cert12124965311/pending?api-version=7.3\u0026request_id=692951b142e1437b87708dccfe8ef965", - "Pragma": "no-cache", - "Retry-After": "10", - "Strict-Transport-Security": "max-age=31536000;includeSubDomains", - "X-Content-Type-Options": "nosniff", - "x-ms-keyvault-network-info": "conn_type=Ipv4;addr=73.83.78.150;act_addr_fam=InterNetwork;", - "x-ms-keyvault-region": "westus2", - "x-ms-keyvault-service-version": "1.9.395.1", - "x-ms-request-id": "f8ba2aab-8ada-447e-9c0f-7833b6a8d809" - }, - "ResponseBody": { - "id": "https://fakekvurl.vault.azure.net/certificates/cert12124965311/pending", - "issuer": { - "name": "Self" - }, - "csr": "MIICqDCCAZACAQAwGDEWMBQGA1UEAxMNRGVmYXVsdFBvbGljeTCCASIwDQYJKoZIhvcNAQEBBQADggEPADCCAQoCggEBAMqCpW/sVnvfeZtGUTmKheqXBMr42kJye7bYv/9tV9dggRaQYHPbmn66cXqLZIXV9ddG578JbGxgPC/4\u002BoCNplIJyH\u002B1RbpBMLQRImbmhwfxz5LVL1WqhNysTyvhiyWoh54rjdYw65mC23ljYJ6KNYEl6LKJAvSlaQJHYH2pu6yMxYbt5MAkPxBahFhXenjq0QZ7mk/W9tpwqqaN8ThR3MHeTDpwYJKxG9hLM1tV7jZOLdpja2BssTPNu6iAWiVyC6xdMc32AiuEJpn1/Mz7Kc8Ui7V2IDy0fpMH/j37Y4tDKZoUnrW7QkvoqmEzzz6qlcaxkcR\u002Bsnr8RzxDB/AjQrUCAwEAAaBLMEkGCSqGSIb3DQEJDjE8MDowDgYDVR0PAQH/BAQDAgWgMB0GA1UdJQQWMBQGCCsGAQUFBwMBBggrBgEFBQcDAjAJBgNVHRMEAjAAMA0GCSqGSIb3DQEBCwUAA4IBAQBvqX05KQFFMvlkzWaB\u002Bwnn/NUXi/jfsz9OWiI7p0B8dt\u002BsjeXcyLGtY6bEdZd0yMFwT4rLHCx0aElRwnuccD8t6QbkccCoIByNrW0NvoFKQHQyDgvXftTVECwGPcX\u002Bmpysn/FAaErx2cMJ4onJOac4BjD30\u002BG5Xs7TVbvjfjxUIA2b3xz537a\u002Bcrtnk8ndYiVhqWNv6eGC1yYqIV8VHX0CU2Q\u002BxuAeGIidknZ/rt1Qx9zsJotLMRMvds6uFX6/AiamOqgRdqHS2G1KzR89\u002BS6QOEqmUURtxoIt4iHS3KpP2jpgonr3qtHUHkpfxClt/Hjx41RACrc7X6xWM6RpoL/5", - "cancellation_requested": false, - "status": "inProgress", - "status_details": "Pending certificate created. Certificate request is in progress. This may take some time based on the issuer provider. Please check again later.", - "request_id": "692951b142e1437b87708dccfe8ef965" - } - }, - { - "RequestUri": "https://fakekvurl.vault.azure.net/certificates/cert12124965311/pending?api-version=7.3\u0026request_id=692951b142e1437b87708dccfe8ef965", - "RequestMethod": "GET", - "RequestHeaders": { - ":method": "GET", - "Accept-Encoding": "gzip", - "Authorization": "Sanitized", - "User-Agent": "azsdk-go-azcertificates/v0.4.2 (go1.18; Windows_NT)" - }, - "RequestBody": null, - "StatusCode": 200, - "ResponseHeaders": { - "Cache-Control": "no-cache", - "Content-Length": "1199", - "Content-Type": "application/json; charset=utf-8", - "Date": "Mon, 16 May 2022 18:13:36 GMT", - "Expires": "-1", - "Pragma": "no-cache", - "Strict-Transport-Security": "max-age=31536000;includeSubDomains", - "X-Content-Type-Options": "nosniff", - "x-ms-keyvault-network-info": "conn_type=Ipv4;addr=73.83.78.150;act_addr_fam=InterNetwork;", - "x-ms-keyvault-region": "westus2", - "x-ms-keyvault-service-version": "1.9.395.1", - "x-ms-request-id": "66ecf3a0-bfdf-474e-bda3-c086fa813254" - }, - "ResponseBody": { - "id": "https://fakekvurl.vault.azure.net/certificates/cert12124965311/pending", - "issuer": { - "name": "Self" - }, - "csr": "MIICqDCCAZACAQAwGDEWMBQGA1UEAxMNRGVmYXVsdFBvbGljeTCCASIwDQYJKoZIhvcNAQEBBQADggEPADCCAQoCggEBAMqCpW/sVnvfeZtGUTmKheqXBMr42kJye7bYv/9tV9dggRaQYHPbmn66cXqLZIXV9ddG578JbGxgPC/4\u002BoCNplIJyH\u002B1RbpBMLQRImbmhwfxz5LVL1WqhNysTyvhiyWoh54rjdYw65mC23ljYJ6KNYEl6LKJAvSlaQJHYH2pu6yMxYbt5MAkPxBahFhXenjq0QZ7mk/W9tpwqqaN8ThR3MHeTDpwYJKxG9hLM1tV7jZOLdpja2BssTPNu6iAWiVyC6xdMc32AiuEJpn1/Mz7Kc8Ui7V2IDy0fpMH/j37Y4tDKZoUnrW7QkvoqmEzzz6qlcaxkcR\u002Bsnr8RzxDB/AjQrUCAwEAAaBLMEkGCSqGSIb3DQEJDjE8MDowDgYDVR0PAQH/BAQDAgWgMB0GA1UdJQQWMBQGCCsGAQUFBwMBBggrBgEFBQcDAjAJBgNVHRMEAjAAMA0GCSqGSIb3DQEBCwUAA4IBAQBvqX05KQFFMvlkzWaB\u002Bwnn/NUXi/jfsz9OWiI7p0B8dt\u002BsjeXcyLGtY6bEdZd0yMFwT4rLHCx0aElRwnuccD8t6QbkccCoIByNrW0NvoFKQHQyDgvXftTVECwGPcX\u002Bmpysn/FAaErx2cMJ4onJOac4BjD30\u002BG5Xs7TVbvjfjxUIA2b3xz537a\u002Bcrtnk8ndYiVhqWNv6eGC1yYqIV8VHX0CU2Q\u002BxuAeGIidknZ/rt1Qx9zsJotLMRMvds6uFX6/AiamOqgRdqHS2G1KzR89\u002BS6QOEqmUURtxoIt4iHS3KpP2jpgonr3qtHUHkpfxClt/Hjx41RACrc7X6xWM6RpoL/5", - "cancellation_requested": false, - "status": "completed", - "target": "https://fakekvurl.vault.azure.net/certificates/cert12124965311", - "request_id": "692951b142e1437b87708dccfe8ef965" - } - }, - { - "RequestUri": "https://fakekvurl.vault.azure.net/certificates/cert12124965311/?api-version=7.3", - "RequestMethod": "GET", - "RequestHeaders": { - ":method": "GET", - "Accept": "application/json", - "Accept-Encoding": "gzip", - "Authorization": "Sanitized", - "User-Agent": "azsdk-go-azcertificates/v0.4.2 (go1.18; Windows_NT)" - }, - "RequestBody": null, - "StatusCode": 200, - "ResponseHeaders": { - "Cache-Control": "no-cache", - "Content-Length": "2336", - "Content-Type": "application/json; charset=utf-8", - "Date": "Mon, 16 May 2022 18:13:36 GMT", - "Expires": "-1", - "Pragma": "no-cache", - "Strict-Transport-Security": "max-age=31536000;includeSubDomains", - "X-Content-Type-Options": "nosniff", - "x-ms-keyvault-network-info": "conn_type=Ipv4;addr=73.83.78.150;act_addr_fam=InterNetwork;", - "x-ms-keyvault-region": "westus2", - "x-ms-keyvault-service-version": "1.9.395.1", - "x-ms-request-id": "109df800-2e56-4c0a-bac5-469658c6e266" - }, - "ResponseBody": { - "id": "https://fakekvurl.vault.azure.net/certificates/cert12124965311/e8aff00f156e48f2aee9f1d6475a8e5d", - "kid": "https://fakekvurl.vault.azure.net/keys/cert12124965311/e8aff00f156e48f2aee9f1d6475a8e5d", - "sid": "https://fakekvurl.vault.azure.net/secrets/cert12124965311/e8aff00f156e48f2aee9f1d6475a8e5d", - "x5t": "fOQZxeXsTks6vQ51HgKaFIo4dI0", - "cer": "MIIDNjCCAh6gAwIBAgIQOcw33iLcSV2vrXn6tT2PkzANBgkqhkiG9w0BAQsFADAYMRYwFAYDVQQDEw1EZWZhdWx0UG9saWN5MB4XDTIyMDUxNjE4MDMzMloXDTIzMDUxNjE4MTMzMlowGDEWMBQGA1UEAxMNRGVmYXVsdFBvbGljeTCCASIwDQYJKoZIhvcNAQEBBQADggEPADCCAQoCggEBAMqCpW/sVnvfeZtGUTmKheqXBMr42kJye7bYv/9tV9dggRaQYHPbmn66cXqLZIXV9ddG578JbGxgPC/4\u002BoCNplIJyH\u002B1RbpBMLQRImbmhwfxz5LVL1WqhNysTyvhiyWoh54rjdYw65mC23ljYJ6KNYEl6LKJAvSlaQJHYH2pu6yMxYbt5MAkPxBahFhXenjq0QZ7mk/W9tpwqqaN8ThR3MHeTDpwYJKxG9hLM1tV7jZOLdpja2BssTPNu6iAWiVyC6xdMc32AiuEJpn1/Mz7Kc8Ui7V2IDy0fpMH/j37Y4tDKZoUnrW7QkvoqmEzzz6qlcaxkcR\u002Bsnr8RzxDB/AjQrUCAwEAAaN8MHowDgYDVR0PAQH/BAQDAgWgMAkGA1UdEwQCMAAwHQYDVR0lBBYwFAYIKwYBBQUHAwEGCCsGAQUFBwMCMB8GA1UdIwQYMBaAFLfSN/XBrIW2EQVwbASXzM3UytV1MB0GA1UdDgQWBBS30jf1wayFthEFcGwEl8zN1MrVdTANBgkqhkiG9w0BAQsFAAOCAQEAT9CWqF1abyOxW3eyRbbQkcU2gLJrTRrFVYPFdmmZGAkYEh7BhhIy2O0YNEpbqvrD3E0VM4OZUHkwav4prlfbnDCLTCHk1LHH\u002BzJedq703UFoyk7xRvV6z6f4/O4HBLIlsjdEEqVASIo/EEqfFVqrwxWBOaVf9jpSbks/ZyPqrAWHDgUkInBB\u002BSrvcRCCvG9IdrWPjxoH17EusBv55YtH1e\u002BNHgouDTkQBA0jXji7fGiOSK6s2QJhz7ZFXdOh6r0OEIGetg2n/kFcuGXn0/swd33L9kbuyLOO35Ua8eoKsUu7qbGeJ9dYP33VgMlK4BM1Pu0Ol6qXIgdb8S79iiqVJQ==", - "attributes": { - "enabled": true, - "nbf": 1652724212, - "exp": 1684260812, - "created": 1652724812, - "updated": 1652724812, - "recoveryLevel": "CustomizedRecoverable\u002BPurgeable", - "recoverableDays": 7 - }, - "policy": { - "id": "https://fakekvurl.vault.azure.net/certificates/cert12124965311/policy", - "key_props": { - "exportable": true, - "kty": "RSA", - "key_size": 2048, - "reuse_key": false - }, - "secret_props": { - "contentType": "application/x-pkcs12" - }, - "x509_props": { - "subject": "CN=DefaultPolicy", - "sans": {}, - "ekus": [ - "1.3.6.1.5.5.7.3.1", - "1.3.6.1.5.5.7.3.2" - ], - "key_usage": [ - "digitalSignature", - "keyEncipherment" - ], - "validity_months": 12, - "basic_constraints": { - "ca": false - } - }, - "lifetime_actions": [ - { - "trigger": { - "lifetime_percentage": 80 - }, - "action": { - "action_type": "AutoRenew" - } - } - ], - "issuer": { - "name": "Self" - }, - "attributes": { - "enabled": true, - "created": 1652724785, - "updated": 1652724806 - } - }, - "pending": { - "id": "https://fakekvurl.vault.azure.net/certificates/cert12124965311/pending" - } - } - }, - { - "RequestUri": "https://fakekvurl.vault.azure.net/certificates/cert12124965311/versions?api-version=7.3", - "RequestMethod": "GET", - "RequestHeaders": { - ":method": "GET", - "Accept": "application/json", - "Accept-Encoding": "gzip", - "Authorization": "Sanitized", - "User-Agent": "azsdk-go-azcertificates/v0.4.2 (go1.18; Windows_NT)" - }, - "RequestBody": null, - "StatusCode": 200, - "ResponseHeaders": { - "Cache-Control": "no-cache", - "Content-Length": "807", - "Content-Type": "application/json; charset=utf-8", - "Date": "Mon, 16 May 2022 18:13:36 GMT", - "Expires": "-1", - "Pragma": "no-cache", - "Strict-Transport-Security": "max-age=31536000;includeSubDomains", - "X-Content-Type-Options": "nosniff", - "x-ms-keyvault-network-info": "conn_type=Ipv4;addr=73.83.78.150;act_addr_fam=InterNetwork;", - "x-ms-keyvault-region": "westus2", - "x-ms-keyvault-service-version": "1.9.395.1", - "x-ms-request-id": "3bd975df-bb3a-49bd-ba2e-ae273751cee7" - }, - "ResponseBody": { - "value": [ - { - "id": "https://fakekvurl.vault.azure.net/certificates/cert12124965311/3c82bd9522bc49448182e144c7cf5526", - "x5t": "tuDU9eLVhh4oS5tLZ3sg5JOI29g", - "attributes": { - "enabled": true, - "nbf": 1652724190, - "exp": 1684260790, - "created": 1652724790, - "updated": 1652724790 - }, - "subject": "" - }, - { - "id": "https://fakekvurl.vault.azure.net/certificates/cert12124965311/72f5b08cb22b421ba024548c1c9b1293", - "x5t": "4Z5hUQ-tGMcs8nw5s_IRaj4apHM", - "attributes": { - "enabled": true, - "nbf": 1652724204, - "exp": 1684260804, - "created": 1652724804, - "updated": 1652724804 - }, - "subject": "" - }, - { - "id": "https://fakekvurl.vault.azure.net/certificates/cert12124965311/e8aff00f156e48f2aee9f1d6475a8e5d", - "x5t": "fOQZxeXsTks6vQ51HgKaFIo4dI0", - "attributes": { - "enabled": true, - "nbf": 1652724212, - "exp": 1684260812, - "created": 1652724812, - "updated": 1652724812 - }, - "subject": "" - } - ], - "nextLink": null - } - }, - { - "RequestUri": "https://fakekvurl.vault.azure.net/certificates/cert12124965311?api-version=7.3", - "RequestMethod": "DELETE", - "RequestHeaders": { - "Accept": "application/json", - "Accept-Encoding": "gzip", - "Authorization": "Sanitized", - "User-Agent": "azsdk-go-azcertificates/v0.4.2 (go1.18; Windows_NT)" - }, - "RequestBody": null, - "StatusCode": 200, - "ResponseHeaders": { - "Cache-Control": "no-cache", - "Content-Length": "2478", - "Content-Type": "application/json; charset=utf-8", - "Date": "Mon, 16 May 2022 18:13:37 GMT", - "Expires": "-1", - "Pragma": "no-cache", - "Strict-Transport-Security": "max-age=31536000;includeSubDomains", - "X-Content-Type-Options": "nosniff", - "x-ms-keyvault-network-info": "conn_type=Ipv4;addr=73.83.78.150;act_addr_fam=InterNetwork;", - "x-ms-keyvault-region": "westus2", - "x-ms-keyvault-service-version": "1.9.395.1", - "x-ms-request-id": "948f7928-d4e6-4845-a57e-b4264381c137" - }, - "ResponseBody": { - "recoveryId": "https://fakekvurl.vault.azure.net/deletedcertificates/cert12124965311", - "deletedDate": 1652724817, - "scheduledPurgeDate": 1653329617, - "id": "https://fakekvurl.vault.azure.net/certificates/cert12124965311/e8aff00f156e48f2aee9f1d6475a8e5d", - "kid": "https://fakekvurl.vault.azure.net/keys/cert12124965311/e8aff00f156e48f2aee9f1d6475a8e5d", - "sid": "https://fakekvurl.vault.azure.net/secrets/cert12124965311/e8aff00f156e48f2aee9f1d6475a8e5d", - "x5t": "fOQZxeXsTks6vQ51HgKaFIo4dI0", - "cer": "MIIDNjCCAh6gAwIBAgIQOcw33iLcSV2vrXn6tT2PkzANBgkqhkiG9w0BAQsFADAYMRYwFAYDVQQDEw1EZWZhdWx0UG9saWN5MB4XDTIyMDUxNjE4MDMzMloXDTIzMDUxNjE4MTMzMlowGDEWMBQGA1UEAxMNRGVmYXVsdFBvbGljeTCCASIwDQYJKoZIhvcNAQEBBQADggEPADCCAQoCggEBAMqCpW/sVnvfeZtGUTmKheqXBMr42kJye7bYv/9tV9dggRaQYHPbmn66cXqLZIXV9ddG578JbGxgPC/4\u002BoCNplIJyH\u002B1RbpBMLQRImbmhwfxz5LVL1WqhNysTyvhiyWoh54rjdYw65mC23ljYJ6KNYEl6LKJAvSlaQJHYH2pu6yMxYbt5MAkPxBahFhXenjq0QZ7mk/W9tpwqqaN8ThR3MHeTDpwYJKxG9hLM1tV7jZOLdpja2BssTPNu6iAWiVyC6xdMc32AiuEJpn1/Mz7Kc8Ui7V2IDy0fpMH/j37Y4tDKZoUnrW7QkvoqmEzzz6qlcaxkcR\u002Bsnr8RzxDB/AjQrUCAwEAAaN8MHowDgYDVR0PAQH/BAQDAgWgMAkGA1UdEwQCMAAwHQYDVR0lBBYwFAYIKwYBBQUHAwEGCCsGAQUFBwMCMB8GA1UdIwQYMBaAFLfSN/XBrIW2EQVwbASXzM3UytV1MB0GA1UdDgQWBBS30jf1wayFthEFcGwEl8zN1MrVdTANBgkqhkiG9w0BAQsFAAOCAQEAT9CWqF1abyOxW3eyRbbQkcU2gLJrTRrFVYPFdmmZGAkYEh7BhhIy2O0YNEpbqvrD3E0VM4OZUHkwav4prlfbnDCLTCHk1LHH\u002BzJedq703UFoyk7xRvV6z6f4/O4HBLIlsjdEEqVASIo/EEqfFVqrwxWBOaVf9jpSbks/ZyPqrAWHDgUkInBB\u002BSrvcRCCvG9IdrWPjxoH17EusBv55YtH1e\u002BNHgouDTkQBA0jXji7fGiOSK6s2QJhz7ZFXdOh6r0OEIGetg2n/kFcuGXn0/swd33L9kbuyLOO35Ua8eoKsUu7qbGeJ9dYP33VgMlK4BM1Pu0Ol6qXIgdb8S79iiqVJQ==", - "attributes": { - "enabled": true, - "nbf": 1652724212, - "exp": 1684260812, - "created": 1652724812, - "updated": 1652724812, - "recoveryLevel": "CustomizedRecoverable\u002BPurgeable", - "recoverableDays": 7 - }, - "policy": { - "id": "https://fakekvurl.vault.azure.net/certificates/cert12124965311/policy", - "key_props": { - "exportable": true, - "kty": "RSA", - "key_size": 2048, - "reuse_key": false - }, - "secret_props": { - "contentType": "application/x-pkcs12" - }, - "x509_props": { - "subject": "CN=DefaultPolicy", - "sans": {}, - "ekus": [ - "1.3.6.1.5.5.7.3.1", - "1.3.6.1.5.5.7.3.2" - ], - "key_usage": [ - "digitalSignature", - "keyEncipherment" - ], - "validity_months": 12, - "basic_constraints": { - "ca": false - } - }, - "lifetime_actions": [ - { - "trigger": { - "lifetime_percentage": 80 - }, - "action": { - "action_type": "AutoRenew" - } - } - ], - "issuer": { - "name": "Self" - }, - "attributes": { - "enabled": true, - "created": 1652724785, - "updated": 1652724806 - } - }, - "pending": { - "id": "https://fakekvurl.vault.azure.net/certificates/cert12124965311/pending" - } - } - }, - { - "RequestUri": "https://fakekvurl.vault.azure.net/deletedcertificates/cert12124965311?api-version=7.3", - "RequestMethod": "GET", - "RequestHeaders": { - ":method": "GET", - "Accept": "application/json", - "Accept-Encoding": "gzip", - "Authorization": "Sanitized", - "User-Agent": "azsdk-go-azcertificates/v0.4.2 (go1.18; Windows_NT)" - }, - "RequestBody": null, - "StatusCode": 404, - "ResponseHeaders": { - "Cache-Control": "no-cache", - "Content-Length": "99", - "Content-Type": "application/json; charset=utf-8", - "Date": "Mon, 16 May 2022 18:13:37 GMT", - "Expires": "-1", - "Pragma": "no-cache", - "Strict-Transport-Security": "max-age=31536000;includeSubDomains", - "X-Content-Type-Options": "nosniff", - "x-ms-keyvault-network-info": "conn_type=Ipv4;addr=73.83.78.150;act_addr_fam=InterNetwork;", - "x-ms-keyvault-region": "westus2", - "x-ms-keyvault-service-version": "1.9.395.1", - "x-ms-request-id": "8bda216b-c423-4963-84f8-27d11d06f875" - }, - "ResponseBody": { - "error": { - "code": "CertificateNotFound", - "message": "Deleted Certificate not found: cert12124965311" - } - } - }, - { - "RequestUri": "https://fakekvurl.vault.azure.net/deletedcertificates/cert12124965311?api-version=7.3", - "RequestMethod": "GET", - "RequestHeaders": { - ":method": "GET", - "Accept": "application/json", - "Accept-Encoding": "gzip", - "Authorization": "Sanitized", - "User-Agent": "azsdk-go-azcertificates/v0.4.2 (go1.18; Windows_NT)" - }, - "RequestBody": null, - "StatusCode": 404, - "ResponseHeaders": { - "Cache-Control": "no-cache", - "Content-Length": "99", - "Content-Type": "application/json; charset=utf-8", - "Date": "Mon, 16 May 2022 18:13:38 GMT", - "Expires": "-1", - "Pragma": "no-cache", - "Strict-Transport-Security": "max-age=31536000;includeSubDomains", - "X-Content-Type-Options": "nosniff", - "x-ms-keyvault-network-info": "conn_type=Ipv4;addr=73.83.78.150;act_addr_fam=InterNetwork;", - "x-ms-keyvault-region": "westus2", - "x-ms-keyvault-service-version": "1.9.395.1", - "x-ms-request-id": "ec82632b-5a04-4a7e-8286-8589e1fd0168" - }, - "ResponseBody": { - "error": { - "code": "CertificateNotFound", - "message": "Deleted Certificate not found: cert12124965311" - } - } - }, - { - "RequestUri": "https://fakekvurl.vault.azure.net/deletedcertificates/cert12124965311?api-version=7.3", - "RequestMethod": "GET", - "RequestHeaders": { - ":method": "GET", - "Accept": "application/json", - "Accept-Encoding": "gzip", - "Authorization": "Sanitized", - "User-Agent": "azsdk-go-azcertificates/v0.4.2 (go1.18; Windows_NT)" - }, - "RequestBody": null, - "StatusCode": 404, - "ResponseHeaders": { - "Cache-Control": "no-cache", - "Content-Length": "99", - "Content-Type": "application/json; charset=utf-8", - "Date": "Mon, 16 May 2022 18:13:39 GMT", - "Expires": "-1", - "Pragma": "no-cache", - "Strict-Transport-Security": "max-age=31536000;includeSubDomains", - "X-Content-Type-Options": "nosniff", - "x-ms-keyvault-network-info": "conn_type=Ipv4;addr=73.83.78.150;act_addr_fam=InterNetwork;", - "x-ms-keyvault-region": "westus2", - "x-ms-keyvault-service-version": "1.9.395.1", - "x-ms-request-id": "61cab165-aae7-471f-848e-460da03502d0" - }, - "ResponseBody": { - "error": { - "code": "CertificateNotFound", - "message": "Deleted Certificate not found: cert12124965311" - } - } - }, - { - "RequestUri": "https://fakekvurl.vault.azure.net/deletedcertificates/cert12124965311?api-version=7.3", - "RequestMethod": "GET", - "RequestHeaders": { - ":method": "GET", - "Accept": "application/json", - "Accept-Encoding": "gzip", - "Authorization": "Sanitized", - "User-Agent": "azsdk-go-azcertificates/v0.4.2 (go1.18; Windows_NT)" - }, - "RequestBody": null, - "StatusCode": 404, - "ResponseHeaders": { - "Cache-Control": "no-cache", - "Content-Length": "99", - "Content-Type": "application/json; charset=utf-8", - "Date": "Mon, 16 May 2022 18:13:40 GMT", - "Expires": "-1", - "Pragma": "no-cache", - "Strict-Transport-Security": "max-age=31536000;includeSubDomains", - "X-Content-Type-Options": "nosniff", - "x-ms-keyvault-network-info": "conn_type=Ipv4;addr=73.83.78.150;act_addr_fam=InterNetwork;", - "x-ms-keyvault-region": "westus2", - "x-ms-keyvault-service-version": "1.9.395.1", - "x-ms-request-id": "87585848-ec5c-44af-aaf8-2f77029c62c8" - }, - "ResponseBody": { - "error": { - "code": "CertificateNotFound", - "message": "Deleted Certificate not found: cert12124965311" - } - } - }, - { - "RequestUri": "https://fakekvurl.vault.azure.net/deletedcertificates/cert12124965311?api-version=7.3", - "RequestMethod": "GET", - "RequestHeaders": { - ":method": "GET", - "Accept": "application/json", - "Accept-Encoding": "gzip", - "Authorization": "Sanitized", - "User-Agent": "azsdk-go-azcertificates/v0.4.2 (go1.18; Windows_NT)" - }, - "RequestBody": null, - "StatusCode": 200, - "ResponseHeaders": { - "Cache-Control": "no-cache", - "Content-Length": "2478", - "Content-Type": "application/json; charset=utf-8", - "Date": "Mon, 16 May 2022 18:13:41 GMT", - "Expires": "-1", - "Pragma": "no-cache", - "Strict-Transport-Security": "max-age=31536000;includeSubDomains", - "X-Content-Type-Options": "nosniff", - "x-ms-keyvault-network-info": "conn_type=Ipv4;addr=73.83.78.150;act_addr_fam=InterNetwork;", - "x-ms-keyvault-region": "westus2", - "x-ms-keyvault-service-version": "1.9.395.1", - "x-ms-request-id": "3ea1bcb8-aedd-4cd9-8441-9c0a826e6a15" - }, - "ResponseBody": { - "recoveryId": "https://fakekvurl.vault.azure.net/deletedcertificates/cert12124965311", - "deletedDate": 1652724817, - "scheduledPurgeDate": 1653329617, - "id": "https://fakekvurl.vault.azure.net/certificates/cert12124965311/e8aff00f156e48f2aee9f1d6475a8e5d", - "kid": "https://fakekvurl.vault.azure.net/keys/cert12124965311/e8aff00f156e48f2aee9f1d6475a8e5d", - "sid": "https://fakekvurl.vault.azure.net/secrets/cert12124965311/e8aff00f156e48f2aee9f1d6475a8e5d", - "x5t": "fOQZxeXsTks6vQ51HgKaFIo4dI0", - "cer": "MIIDNjCCAh6gAwIBAgIQOcw33iLcSV2vrXn6tT2PkzANBgkqhkiG9w0BAQsFADAYMRYwFAYDVQQDEw1EZWZhdWx0UG9saWN5MB4XDTIyMDUxNjE4MDMzMloXDTIzMDUxNjE4MTMzMlowGDEWMBQGA1UEAxMNRGVmYXVsdFBvbGljeTCCASIwDQYJKoZIhvcNAQEBBQADggEPADCCAQoCggEBAMqCpW/sVnvfeZtGUTmKheqXBMr42kJye7bYv/9tV9dggRaQYHPbmn66cXqLZIXV9ddG578JbGxgPC/4\u002BoCNplIJyH\u002B1RbpBMLQRImbmhwfxz5LVL1WqhNysTyvhiyWoh54rjdYw65mC23ljYJ6KNYEl6LKJAvSlaQJHYH2pu6yMxYbt5MAkPxBahFhXenjq0QZ7mk/W9tpwqqaN8ThR3MHeTDpwYJKxG9hLM1tV7jZOLdpja2BssTPNu6iAWiVyC6xdMc32AiuEJpn1/Mz7Kc8Ui7V2IDy0fpMH/j37Y4tDKZoUnrW7QkvoqmEzzz6qlcaxkcR\u002Bsnr8RzxDB/AjQrUCAwEAAaN8MHowDgYDVR0PAQH/BAQDAgWgMAkGA1UdEwQCMAAwHQYDVR0lBBYwFAYIKwYBBQUHAwEGCCsGAQUFBwMCMB8GA1UdIwQYMBaAFLfSN/XBrIW2EQVwbASXzM3UytV1MB0GA1UdDgQWBBS30jf1wayFthEFcGwEl8zN1MrVdTANBgkqhkiG9w0BAQsFAAOCAQEAT9CWqF1abyOxW3eyRbbQkcU2gLJrTRrFVYPFdmmZGAkYEh7BhhIy2O0YNEpbqvrD3E0VM4OZUHkwav4prlfbnDCLTCHk1LHH\u002BzJedq703UFoyk7xRvV6z6f4/O4HBLIlsjdEEqVASIo/EEqfFVqrwxWBOaVf9jpSbks/ZyPqrAWHDgUkInBB\u002BSrvcRCCvG9IdrWPjxoH17EusBv55YtH1e\u002BNHgouDTkQBA0jXji7fGiOSK6s2QJhz7ZFXdOh6r0OEIGetg2n/kFcuGXn0/swd33L9kbuyLOO35Ua8eoKsUu7qbGeJ9dYP33VgMlK4BM1Pu0Ol6qXIgdb8S79iiqVJQ==", - "attributes": { - "enabled": true, - "nbf": 1652724212, - "exp": 1684260812, - "created": 1652724812, - "updated": 1652724812, - "recoveryLevel": "CustomizedRecoverable\u002BPurgeable", - "recoverableDays": 7 - }, - "policy": { - "id": "https://fakekvurl.vault.azure.net/certificates/cert12124965311/policy", - "key_props": { - "exportable": true, - "kty": "RSA", - "key_size": 2048, - "reuse_key": false - }, - "secret_props": { - "contentType": "application/x-pkcs12" - }, - "x509_props": { - "subject": "CN=DefaultPolicy", - "sans": {}, - "ekus": [ - "1.3.6.1.5.5.7.3.1", - "1.3.6.1.5.5.7.3.2" - ], - "key_usage": [ - "digitalSignature", - "keyEncipherment" - ], - "validity_months": 12, - "basic_constraints": { - "ca": false - } - }, - "lifetime_actions": [ - { - "trigger": { - "lifetime_percentage": 80 - }, - "action": { - "action_type": "AutoRenew" - } - } - ], - "issuer": { - "name": "Self" - }, - "attributes": { - "enabled": true, - "created": 1652724785, - "updated": 1652724806 - } - }, - "pending": { - "id": "https://fakekvurl.vault.azure.net/certificates/cert12124965311/pending" - } - } - }, - { - "RequestUri": "https://fakekvurl.vault.azure.net/deletedcertificates/cert12124965311?api-version=7.3", - "RequestMethod": "DELETE", - "RequestHeaders": { - "Accept": "application/json", - "Accept-Encoding": "gzip", - "Authorization": "Sanitized", - "User-Agent": "azsdk-go-azcertificates/v0.4.2 (go1.18; Windows_NT)" - }, - "RequestBody": null, - "StatusCode": 204, - "ResponseHeaders": { - "Cache-Control": "no-cache", - "Date": "Mon, 16 May 2022 18:13:41 GMT", - "Expires": "-1", - "Pragma": "no-cache", - "Strict-Transport-Security": "max-age=31536000;includeSubDomains", - "X-Content-Type-Options": "nosniff", - "x-ms-keyvault-network-info": "conn_type=Ipv4;addr=73.83.78.150;act_addr_fam=InterNetwork;", - "x-ms-keyvault-region": "westus2", - "x-ms-keyvault-service-version": "1.9.395.1", - "x-ms-request-id": "7a406f6d-3722-4988-8c92-28b2c9234afa" - }, - "ResponseBody": null - } - ], - "Variables": {} -} diff --git a/sdk/keyvault/azcertificates/testdata/recordings/TestClient_ListCertificates.json b/sdk/keyvault/azcertificates/testdata/recordings/TestClient_ListCertificates.json deleted file mode 100644 index c212617b6b1d..000000000000 --- a/sdk/keyvault/azcertificates/testdata/recordings/TestClient_ListCertificates.json +++ /dev/null @@ -1,2875 +0,0 @@ -{ - "Entries": [ - { - "RequestUri": "https://fakekvurl.vault.azure.net/certificates/listcerts02395596731/create?api-version=7.3", - "RequestMethod": "POST", - "RequestHeaders": { - ":method": "POST", - "Accept": "application/json", - "Accept-Encoding": "gzip", - "Content-Length": "0", - "User-Agent": "azsdk-go-azcertificates/v0.4.2 (go1.18; Windows_NT)" - }, - "RequestBody": null, - "StatusCode": 401, - "ResponseHeaders": { - "Cache-Control": "no-cache", - "Content-Length": "97", - "Content-Type": "application/json; charset=utf-8", - "Date": "Mon, 16 May 2022 18:11:49 GMT", - "Expires": "-1", - "Pragma": "no-cache", - "Strict-Transport-Security": "max-age=31536000;includeSubDomains", - "WWW-Authenticate": "Bearer authorization=\u0022https://login.windows.net/00000000-0000-0000-0000-000000000000\u0022, resource=\u0022https://vault.azure.net\u0022", - "X-Content-Type-Options": "nosniff", - "x-ms-keyvault-network-info": "conn_type=Ipv4;addr=73.83.78.150;act_addr_fam=InterNetwork;", - "x-ms-keyvault-region": "westus2", - "x-ms-keyvault-service-version": "1.9.395.1", - "x-ms-request-id": "7d51e75a-2678-47a7-989c-57e54edfb1d7" - }, - "ResponseBody": { - "error": { - "code": "Unauthorized", - "message": "AKV10000: Request is missing a Bearer or PoP token." - } - } - }, - { - "RequestUri": "https://fakekvurl.vault.azure.net/certificates/listcerts02395596731/create?api-version=7.3", - "RequestMethod": "POST", - "RequestHeaders": { - ":method": "POST", - "Accept": "application/json", - "Accept-Encoding": "gzip", - "Authorization": "Sanitized", - "Content-Length": "125", - "Content-Type": "application/json", - "User-Agent": "azsdk-go-azcertificates/v0.4.2 (go1.18; Windows_NT)" - }, - "RequestBody": { - "attributes": {}, - "policy": { - "issuer": { - "name": "Self" - }, - "secret_props": {}, - "x509_props": { - "sans": {}, - "subject": "CN=DefaultPolicy" - } - } - }, - "StatusCode": 202, - "ResponseHeaders": { - "Cache-Control": "no-cache", - "Content-Length": "1295", - "Content-Type": "application/json; charset=utf-8", - "Date": "Mon, 16 May 2022 18:11:50 GMT", - "Expires": "-1", - "Location": "https://fakekvurl.vault.azure.net/certificates/listcerts02395596731/pending?api-version=7.3\u0026request_id=acb06e0ab9cc497e843a88b9f1ead1dd", - "Pragma": "no-cache", - "Retry-After": "10", - "Strict-Transport-Security": "max-age=31536000;includeSubDomains", - "X-Content-Type-Options": "nosniff", - "x-ms-keyvault-network-info": "conn_type=Ipv4;addr=73.83.78.150;act_addr_fam=InterNetwork;", - "x-ms-keyvault-region": "westus2", - "x-ms-keyvault-service-version": "1.9.395.1", - "x-ms-request-id": "09014d40-8493-455c-bbca-d2861e5e5a2b" - }, - "ResponseBody": { - "id": "https://fakekvurl.vault.azure.net/certificates/listcerts02395596731/pending", - "issuer": { - "name": "Self" - }, - "csr": "MIICqDCCAZACAQAwGDEWMBQGA1UEAxMNRGVmYXVsdFBvbGljeTCCASIwDQYJKoZIhvcNAQEBBQADggEPADCCAQoCggEBALWwX2QjDVbyf\u002BD9ZyeVDKDDL1AJDgmwk3pmCTjqHAu7PKMzLY6/VMiejL8eSbb8NZ0ovOApNl/htxfUhD\u002B/rDr1IiAWhvldpEazPunLzV\u002BQU5\u002BCdUFBdBwO8lBFUauCAP0sBpEvgUuMVkMcs8zdrG73HwYHAqZTmqckxIV7DH44dkbMjKHP0prqDjqv7HyW\u002B3Rx148z73YAczmhgOsnDJfp0kNPLhZhQyhCro\u002B/7q0zp3VSzf4isevEp8jV1hkRpHp4ilpDgiQcm8AOM07/TUdllOypBimWZdgzxVo2qhuUmRoCNDgp/6Ep7q\u002BOJkrjmifEPgVbOPkbHtQCNJXfKQ0CAwEAAaBLMEkGCSqGSIb3DQEJDjE8MDowDgYDVR0PAQH/BAQDAgWgMB0GA1UdJQQWMBQGCCsGAQUFBwMBBggrBgEFBQcDAjAJBgNVHRMEAjAAMA0GCSqGSIb3DQEBCwUAA4IBAQA292nnfP7D16KGQsvAUqkhEc8bQMb3fSOXy\u002BQziyh4r8k2hur9p8\u002BUjggUGn0d60bjQo65c0J0hj08o6HnO/Sf9LUvk7z/TIVp48/HqJhT/rg3DWdeniBG8ud1kT8sUt8cj6nGWhZwnqYx3L2GfQza4T7QkMzT1wtHfeSdqrsrhjTygsHC0eZEVnMhNtRoRscTixoBISV6kn4WzVoA3yL6XTz4FgReipqSCmERJ\u002BukXMImLQC9M4DIM/vOauTs2VyQMdF4I2SUSPzDFR1SfLnXrlSMSknoO9bkAsanatWWGI5ubyHo3MKVNhOZlDytYa0AaiQfWDjbsvCl8F8p4KA3", - "cancellation_requested": false, - "status": "inProgress", - "status_details": "Pending certificate created. Certificate request is in progress. This may take some time based on the issuer provider. Please check again later.", - "request_id": "acb06e0ab9cc497e843a88b9f1ead1dd" - } - }, - { - "RequestUri": "https://fakekvurl.vault.azure.net/certificates/listcerts02395596731/pending?api-version=7.3\u0026request_id=acb06e0ab9cc497e843a88b9f1ead1dd", - "RequestMethod": "GET", - "RequestHeaders": { - ":method": "GET", - "Accept-Encoding": "gzip", - "Authorization": "Sanitized", - "User-Agent": "azsdk-go-azcertificates/v0.4.2 (go1.18; Windows_NT)" - }, - "RequestBody": null, - "StatusCode": 200, - "ResponseHeaders": { - "Cache-Control": "no-cache", - "Content-Length": "1209", - "Content-Type": "application/json; charset=utf-8", - "Date": "Mon, 16 May 2022 18:12:00 GMT", - "Expires": "-1", - "Pragma": "no-cache", - "Strict-Transport-Security": "max-age=31536000;includeSubDomains", - "X-Content-Type-Options": "nosniff", - "x-ms-keyvault-network-info": "conn_type=Ipv4;addr=73.83.78.150;act_addr_fam=InterNetwork;", - "x-ms-keyvault-region": "westus2", - "x-ms-keyvault-service-version": "1.9.395.1", - "x-ms-request-id": "8eef1d09-8a09-4698-85d2-f60e92a5c1b5" - }, - "ResponseBody": { - "id": "https://fakekvurl.vault.azure.net/certificates/listcerts02395596731/pending", - "issuer": { - "name": "Self" - }, - "csr": "MIICqDCCAZACAQAwGDEWMBQGA1UEAxMNRGVmYXVsdFBvbGljeTCCASIwDQYJKoZIhvcNAQEBBQADggEPADCCAQoCggEBALWwX2QjDVbyf\u002BD9ZyeVDKDDL1AJDgmwk3pmCTjqHAu7PKMzLY6/VMiejL8eSbb8NZ0ovOApNl/htxfUhD\u002B/rDr1IiAWhvldpEazPunLzV\u002BQU5\u002BCdUFBdBwO8lBFUauCAP0sBpEvgUuMVkMcs8zdrG73HwYHAqZTmqckxIV7DH44dkbMjKHP0prqDjqv7HyW\u002B3Rx148z73YAczmhgOsnDJfp0kNPLhZhQyhCro\u002B/7q0zp3VSzf4isevEp8jV1hkRpHp4ilpDgiQcm8AOM07/TUdllOypBimWZdgzxVo2qhuUmRoCNDgp/6Ep7q\u002BOJkrjmifEPgVbOPkbHtQCNJXfKQ0CAwEAAaBLMEkGCSqGSIb3DQEJDjE8MDowDgYDVR0PAQH/BAQDAgWgMB0GA1UdJQQWMBQGCCsGAQUFBwMBBggrBgEFBQcDAjAJBgNVHRMEAjAAMA0GCSqGSIb3DQEBCwUAA4IBAQA292nnfP7D16KGQsvAUqkhEc8bQMb3fSOXy\u002BQziyh4r8k2hur9p8\u002BUjggUGn0d60bjQo65c0J0hj08o6HnO/Sf9LUvk7z/TIVp48/HqJhT/rg3DWdeniBG8ud1kT8sUt8cj6nGWhZwnqYx3L2GfQza4T7QkMzT1wtHfeSdqrsrhjTygsHC0eZEVnMhNtRoRscTixoBISV6kn4WzVoA3yL6XTz4FgReipqSCmERJ\u002BukXMImLQC9M4DIM/vOauTs2VyQMdF4I2SUSPzDFR1SfLnXrlSMSknoO9bkAsanatWWGI5ubyHo3MKVNhOZlDytYa0AaiQfWDjbsvCl8F8p4KA3", - "cancellation_requested": false, - "status": "completed", - "target": "https://fakekvurl.vault.azure.net/certificates/listcerts02395596731", - "request_id": "acb06e0ab9cc497e843a88b9f1ead1dd" - } - }, - { - "RequestUri": "https://fakekvurl.vault.azure.net/certificates/listcerts02395596731/?api-version=7.3", - "RequestMethod": "GET", - "RequestHeaders": { - ":method": "GET", - "Accept": "application/json", - "Accept-Encoding": "gzip", - "Authorization": "Sanitized", - "User-Agent": "azsdk-go-azcertificates/v0.4.2 (go1.18; Windows_NT)" - }, - "RequestBody": null, - "StatusCode": 200, - "ResponseHeaders": { - "Cache-Control": "no-cache", - "Content-Length": "2361", - "Content-Type": "application/json; charset=utf-8", - "Date": "Mon, 16 May 2022 18:12:00 GMT", - "Expires": "-1", - "Pragma": "no-cache", - "Strict-Transport-Security": "max-age=31536000;includeSubDomains", - "X-Content-Type-Options": "nosniff", - "x-ms-keyvault-network-info": "conn_type=Ipv4;addr=73.83.78.150;act_addr_fam=InterNetwork;", - "x-ms-keyvault-region": "westus2", - "x-ms-keyvault-service-version": "1.9.395.1", - "x-ms-request-id": "fc36eca7-393a-4b24-a33a-f5c354b72f60" - }, - "ResponseBody": { - "id": "https://fakekvurl.vault.azure.net/certificates/listcerts02395596731/5768454f39bb4b02b2ddd2d122de4dff", - "kid": "https://fakekvurl.vault.azure.net/keys/listcerts02395596731/5768454f39bb4b02b2ddd2d122de4dff", - "sid": "https://fakekvurl.vault.azure.net/secrets/listcerts02395596731/5768454f39bb4b02b2ddd2d122de4dff", - "x5t": "bdFtf9DYSx18wdtKDh8F5zCXHD0", - "cer": "MIIDNjCCAh6gAwIBAgIQRbt9r3IaTRutfkel6VifgTANBgkqhkiG9w0BAQsFADAYMRYwFAYDVQQDEw1EZWZhdWx0UG9saWN5MB4XDTIyMDUxNjE4MDE1NloXDTIzMDUxNjE4MTE1NlowGDEWMBQGA1UEAxMNRGVmYXVsdFBvbGljeTCCASIwDQYJKoZIhvcNAQEBBQADggEPADCCAQoCggEBALWwX2QjDVbyf\u002BD9ZyeVDKDDL1AJDgmwk3pmCTjqHAu7PKMzLY6/VMiejL8eSbb8NZ0ovOApNl/htxfUhD\u002B/rDr1IiAWhvldpEazPunLzV\u002BQU5\u002BCdUFBdBwO8lBFUauCAP0sBpEvgUuMVkMcs8zdrG73HwYHAqZTmqckxIV7DH44dkbMjKHP0prqDjqv7HyW\u002B3Rx148z73YAczmhgOsnDJfp0kNPLhZhQyhCro\u002B/7q0zp3VSzf4isevEp8jV1hkRpHp4ilpDgiQcm8AOM07/TUdllOypBimWZdgzxVo2qhuUmRoCNDgp/6Ep7q\u002BOJkrjmifEPgVbOPkbHtQCNJXfKQ0CAwEAAaN8MHowDgYDVR0PAQH/BAQDAgWgMAkGA1UdEwQCMAAwHQYDVR0lBBYwFAYIKwYBBQUHAwEGCCsGAQUFBwMCMB8GA1UdIwQYMBaAFN36NLCTInrA\u002By39ArKbYRCgnQdkMB0GA1UdDgQWBBTd\u002BjSwkyJ6wPst/QKym2EQoJ0HZDANBgkqhkiG9w0BAQsFAAOCAQEAjMB1flv1\u002BRiXPwCkH\u002BVI9VESobep0mWRS1Fr9W5u1XEKE64cDt/KezRh8Hc8e7p\u002BBPfvm3nzeH8tKpdtAyO/GotZLC4I1AaT3WIe/JeaGzyuAG\u002Bkzzh6mxmLef8Oy6u3vUM4e6FYz97qasUZM3h/Ymn2kNQLhLHj2nPs0zRAToDk7k3MiyZi1Rvd5IWJzI\u002BihDGWZaTAqW8\u002BonbEyTRetMdh12u4zXD7KE5xWiJMdarB7OnsDLMgB9svoH0VC5WhLNE\u002BQw13NCCKeK8IE8nokAU9DCkV0gHRla3pgMdBCsYDMNhsNCJgqqUAJERwGJBho9qfIc3T9TgDqzCAWOgEQw==", - "attributes": { - "enabled": true, - "nbf": 1652724116, - "exp": 1684260716, - "created": 1652724716, - "updated": 1652724716, - "recoveryLevel": "CustomizedRecoverable\u002BPurgeable", - "recoverableDays": 7 - }, - "policy": { - "id": "https://fakekvurl.vault.azure.net/certificates/listcerts02395596731/policy", - "key_props": { - "exportable": true, - "kty": "RSA", - "key_size": 2048, - "reuse_key": false - }, - "secret_props": { - "contentType": "application/x-pkcs12" - }, - "x509_props": { - "subject": "CN=DefaultPolicy", - "sans": {}, - "ekus": [ - "1.3.6.1.5.5.7.3.1", - "1.3.6.1.5.5.7.3.2" - ], - "key_usage": [ - "digitalSignature", - "keyEncipherment" - ], - "validity_months": 12, - "basic_constraints": { - "ca": false - } - }, - "lifetime_actions": [ - { - "trigger": { - "lifetime_percentage": 80 - }, - "action": { - "action_type": "AutoRenew" - } - } - ], - "issuer": { - "name": "Self" - }, - "attributes": { - "enabled": true, - "created": 1652724710, - "updated": 1652724710 - } - }, - "pending": { - "id": "https://fakekvurl.vault.azure.net/certificates/listcerts02395596731/pending" - } - } - }, - { - "RequestUri": "https://fakekvurl.vault.azure.net/certificates/listcerts12395596731/create?api-version=7.3", - "RequestMethod": "POST", - "RequestHeaders": { - ":method": "POST", - "Accept": "application/json", - "Accept-Encoding": "gzip", - "Authorization": "Sanitized", - "Content-Length": "125", - "Content-Type": "application/json", - "User-Agent": "azsdk-go-azcertificates/v0.4.2 (go1.18; Windows_NT)" - }, - "RequestBody": { - "attributes": {}, - "policy": { - "issuer": { - "name": "Self" - }, - "secret_props": {}, - "x509_props": { - "sans": {}, - "subject": "CN=DefaultPolicy" - } - } - }, - "StatusCode": 202, - "ResponseHeaders": { - "Cache-Control": "no-cache", - "Content-Length": "1295", - "Content-Type": "application/json; charset=utf-8", - "Date": "Mon, 16 May 2022 18:12:00 GMT", - "Expires": "-1", - "Location": "https://fakekvurl.vault.azure.net/certificates/listcerts12395596731/pending?api-version=7.3\u0026request_id=367d46beaaf34283ab7dd4b83cb57937", - "Pragma": "no-cache", - "Retry-After": "10", - "Strict-Transport-Security": "max-age=31536000;includeSubDomains", - "X-Content-Type-Options": "nosniff", - "x-ms-keyvault-network-info": "conn_type=Ipv4;addr=73.83.78.150;act_addr_fam=InterNetwork;", - "x-ms-keyvault-region": "westus2", - "x-ms-keyvault-service-version": "1.9.395.1", - "x-ms-request-id": "897d58ae-939d-4510-9719-d1eb0479e5fd" - }, - "ResponseBody": { - "id": "https://fakekvurl.vault.azure.net/certificates/listcerts12395596731/pending", - "issuer": { - "name": "Self" - }, - "csr": "MIICqDCCAZACAQAwGDEWMBQGA1UEAxMNRGVmYXVsdFBvbGljeTCCASIwDQYJKoZIhvcNAQEBBQADggEPADCCAQoCggEBALQMtZWsCJgerrscZz3thzOCdcGcBPVdPSkgjMnkK35E6YLERlXrb9Hx25Ab19AcYKbA3qeEWUL3ZQTuHvKyE2RJo5pUHCrHPTl5joUi6bez\u002BDiqIIQZYfHQXK9lHXouriLa5pNpU6TljlUc\u002BdsFn/5E1uz4qGxKlG4\u002B2STHZhcUMuSX006uBd77ugH1ns5HeifIkK14TJkEPCVlBx6m8p/98Xbnf/7Z4BmlRbHkn50qhuOL0QBGdex5hMZciQcTzhTO6Gn3V/LcCZzPkMWa9CzJhvNjqwa43jMtIaL3l/2TKiAl\u002Bwc73/4Yf\u002BlX20S8hJycc/U\u002Bnkj6AHu3aIw9xJkCAwEAAaBLMEkGCSqGSIb3DQEJDjE8MDowDgYDVR0PAQH/BAQDAgWgMB0GA1UdJQQWMBQGCCsGAQUFBwMBBggrBgEFBQcDAjAJBgNVHRMEAjAAMA0GCSqGSIb3DQEBCwUAA4IBAQAKROVm3dZUBGjEjZXCpfJf8jkfyxg0VkkxX1X5N88ggBtFoGTU/TCU7AXkqENnzVRktlXO7v0eWZnRToGJpFleqAksKtbTTMJhT7wQm160pQRNcmH4Cy7pISOLgGt45gajDMxktAbhl/K5Zr61WeGvT/erfd5gX8pMUJgRxTe0KSGWFyB6BTy\u002BqwaK9jKt\u002BE56kn\u002Bo0JRhxnH3XAsyHGMKsbcwFiw277thZcuBcQRj9fN/UPkiRWoPT37Ur6lrHAhENv0XpfMl77bOFMpEzyMK4UHaS4gf80o9KfQrw9\u002B6E9E4iEnYTmlVkeg/CXXsDkvxe5uHimeeIc8wKoquFa\u002BP", - "cancellation_requested": false, - "status": "inProgress", - "status_details": "Pending certificate created. Certificate request is in progress. This may take some time based on the issuer provider. Please check again later.", - "request_id": "367d46beaaf34283ab7dd4b83cb57937" - } - }, - { - "RequestUri": "https://fakekvurl.vault.azure.net/certificates/listcerts12395596731/pending?api-version=7.3\u0026request_id=367d46beaaf34283ab7dd4b83cb57937", - "RequestMethod": "GET", - "RequestHeaders": { - ":method": "GET", - "Accept-Encoding": "gzip", - "Authorization": "Sanitized", - "User-Agent": "azsdk-go-azcertificates/v0.4.2 (go1.18; Windows_NT)" - }, - "RequestBody": null, - "StatusCode": 200, - "ResponseHeaders": { - "Cache-Control": "no-cache", - "Content-Length": "1209", - "Content-Type": "application/json; charset=utf-8", - "Date": "Mon, 16 May 2022 18:12:10 GMT", - "Expires": "-1", - "Pragma": "no-cache", - "Strict-Transport-Security": "max-age=31536000;includeSubDomains", - "X-Content-Type-Options": "nosniff", - "x-ms-keyvault-network-info": "conn_type=Ipv4;addr=73.83.78.150;act_addr_fam=InterNetwork;", - "x-ms-keyvault-region": "westus2", - "x-ms-keyvault-service-version": "1.9.395.1", - "x-ms-request-id": "415a60c6-17f7-43a7-8f8e-c41f0b525a71" - }, - "ResponseBody": { - "id": "https://fakekvurl.vault.azure.net/certificates/listcerts12395596731/pending", - "issuer": { - "name": "Self" - }, - "csr": "MIICqDCCAZACAQAwGDEWMBQGA1UEAxMNRGVmYXVsdFBvbGljeTCCASIwDQYJKoZIhvcNAQEBBQADggEPADCCAQoCggEBALQMtZWsCJgerrscZz3thzOCdcGcBPVdPSkgjMnkK35E6YLERlXrb9Hx25Ab19AcYKbA3qeEWUL3ZQTuHvKyE2RJo5pUHCrHPTl5joUi6bez\u002BDiqIIQZYfHQXK9lHXouriLa5pNpU6TljlUc\u002BdsFn/5E1uz4qGxKlG4\u002B2STHZhcUMuSX006uBd77ugH1ns5HeifIkK14TJkEPCVlBx6m8p/98Xbnf/7Z4BmlRbHkn50qhuOL0QBGdex5hMZciQcTzhTO6Gn3V/LcCZzPkMWa9CzJhvNjqwa43jMtIaL3l/2TKiAl\u002Bwc73/4Yf\u002BlX20S8hJycc/U\u002Bnkj6AHu3aIw9xJkCAwEAAaBLMEkGCSqGSIb3DQEJDjE8MDowDgYDVR0PAQH/BAQDAgWgMB0GA1UdJQQWMBQGCCsGAQUFBwMBBggrBgEFBQcDAjAJBgNVHRMEAjAAMA0GCSqGSIb3DQEBCwUAA4IBAQAKROVm3dZUBGjEjZXCpfJf8jkfyxg0VkkxX1X5N88ggBtFoGTU/TCU7AXkqENnzVRktlXO7v0eWZnRToGJpFleqAksKtbTTMJhT7wQm160pQRNcmH4Cy7pISOLgGt45gajDMxktAbhl/K5Zr61WeGvT/erfd5gX8pMUJgRxTe0KSGWFyB6BTy\u002BqwaK9jKt\u002BE56kn\u002Bo0JRhxnH3XAsyHGMKsbcwFiw277thZcuBcQRj9fN/UPkiRWoPT37Ur6lrHAhENv0XpfMl77bOFMpEzyMK4UHaS4gf80o9KfQrw9\u002B6E9E4iEnYTmlVkeg/CXXsDkvxe5uHimeeIc8wKoquFa\u002BP", - "cancellation_requested": false, - "status": "completed", - "target": "https://fakekvurl.vault.azure.net/certificates/listcerts12395596731", - "request_id": "367d46beaaf34283ab7dd4b83cb57937" - } - }, - { - "RequestUri": "https://fakekvurl.vault.azure.net/certificates/listcerts12395596731/?api-version=7.3", - "RequestMethod": "GET", - "RequestHeaders": { - ":method": "GET", - "Accept": "application/json", - "Accept-Encoding": "gzip", - "Authorization": "Sanitized", - "User-Agent": "azsdk-go-azcertificates/v0.4.2 (go1.18; Windows_NT)" - }, - "RequestBody": null, - "StatusCode": 200, - "ResponseHeaders": { - "Cache-Control": "no-cache", - "Content-Length": "2361", - "Content-Type": "application/json; charset=utf-8", - "Date": "Mon, 16 May 2022 18:12:10 GMT", - "Expires": "-1", - "Pragma": "no-cache", - "Strict-Transport-Security": "max-age=31536000;includeSubDomains", - "X-Content-Type-Options": "nosniff", - "x-ms-keyvault-network-info": "conn_type=Ipv4;addr=73.83.78.150;act_addr_fam=InterNetwork;", - "x-ms-keyvault-region": "westus2", - "x-ms-keyvault-service-version": "1.9.395.1", - "x-ms-request-id": "43a9f713-6de1-41a6-bed7-c3a2799c6907" - }, - "ResponseBody": { - "id": "https://fakekvurl.vault.azure.net/certificates/listcerts12395596731/cf825c5d16214b0aa79d48606ed8e2db", - "kid": "https://fakekvurl.vault.azure.net/keys/listcerts12395596731/cf825c5d16214b0aa79d48606ed8e2db", - "sid": "https://fakekvurl.vault.azure.net/secrets/listcerts12395596731/cf825c5d16214b0aa79d48606ed8e2db", - "x5t": "dLpRMeFiR0xaHi_IAu4HwMBPvuY", - "cer": "MIIDNjCCAh6gAwIBAgIQPFNiRFUIT92AMy90BI962DANBgkqhkiG9w0BAQsFADAYMRYwFAYDVQQDEw1EZWZhdWx0UG9saWN5MB4XDTIyMDUxNjE4MDIwNloXDTIzMDUxNjE4MTIwNlowGDEWMBQGA1UEAxMNRGVmYXVsdFBvbGljeTCCASIwDQYJKoZIhvcNAQEBBQADggEPADCCAQoCggEBALQMtZWsCJgerrscZz3thzOCdcGcBPVdPSkgjMnkK35E6YLERlXrb9Hx25Ab19AcYKbA3qeEWUL3ZQTuHvKyE2RJo5pUHCrHPTl5joUi6bez\u002BDiqIIQZYfHQXK9lHXouriLa5pNpU6TljlUc\u002BdsFn/5E1uz4qGxKlG4\u002B2STHZhcUMuSX006uBd77ugH1ns5HeifIkK14TJkEPCVlBx6m8p/98Xbnf/7Z4BmlRbHkn50qhuOL0QBGdex5hMZciQcTzhTO6Gn3V/LcCZzPkMWa9CzJhvNjqwa43jMtIaL3l/2TKiAl\u002Bwc73/4Yf\u002BlX20S8hJycc/U\u002Bnkj6AHu3aIw9xJkCAwEAAaN8MHowDgYDVR0PAQH/BAQDAgWgMAkGA1UdEwQCMAAwHQYDVR0lBBYwFAYIKwYBBQUHAwEGCCsGAQUFBwMCMB8GA1UdIwQYMBaAFExc5INbmC9z0ydSHgpRjqpjomY/MB0GA1UdDgQWBBRMXOSDW5gvc9MnUh4KUY6qY6JmPzANBgkqhkiG9w0BAQsFAAOCAQEAmlGqnWmfXZsW3whYUTfR4iPPPHXy7vJHPHzgsAZDcZDObmwXcjAcDXaX7g8T10JxDQdQBLqY63YcrMrVqTjLbOewSSi8Ez1C8thlOrizQ0vuXyEkCjifDY1ObvCVxgB0GVRD7pz9yrivHlxgrl4XE/EkT40AIpSAYvG4hKxVlFflge34TQF8DShFurg6JjyaSJkVSwxwrgPXfe2jsVDBvHVJ97OsNYSh\u002BWQDjeRc4oBQcevIgdOzY5IfkbvhEFT19FDpj/MpyTStkYtvrbmYD0j6DPjNftrRa/S4pqXPPyyevp3Sp\u002BUQDMpJZF0brOc7KDxmsnGIu9fqlQQd9EUcPA==", - "attributes": { - "enabled": true, - "nbf": 1652724126, - "exp": 1684260726, - "created": 1652724726, - "updated": 1652724726, - "recoveryLevel": "CustomizedRecoverable\u002BPurgeable", - "recoverableDays": 7 - }, - "policy": { - "id": "https://fakekvurl.vault.azure.net/certificates/listcerts12395596731/policy", - "key_props": { - "exportable": true, - "kty": "RSA", - "key_size": 2048, - "reuse_key": false - }, - "secret_props": { - "contentType": "application/x-pkcs12" - }, - "x509_props": { - "subject": "CN=DefaultPolicy", - "sans": {}, - "ekus": [ - "1.3.6.1.5.5.7.3.1", - "1.3.6.1.5.5.7.3.2" - ], - "key_usage": [ - "digitalSignature", - "keyEncipherment" - ], - "validity_months": 12, - "basic_constraints": { - "ca": false - } - }, - "lifetime_actions": [ - { - "trigger": { - "lifetime_percentage": 80 - }, - "action": { - "action_type": "AutoRenew" - } - } - ], - "issuer": { - "name": "Self" - }, - "attributes": { - "enabled": true, - "created": 1652724721, - "updated": 1652724721 - } - }, - "pending": { - "id": "https://fakekvurl.vault.azure.net/certificates/listcerts12395596731/pending" - } - } - }, - { - "RequestUri": "https://fakekvurl.vault.azure.net/certificates/listcerts22395596731/create?api-version=7.3", - "RequestMethod": "POST", - "RequestHeaders": { - ":method": "POST", - "Accept": "application/json", - "Accept-Encoding": "gzip", - "Authorization": "Sanitized", - "Content-Length": "125", - "Content-Type": "application/json", - "User-Agent": "azsdk-go-azcertificates/v0.4.2 (go1.18; Windows_NT)" - }, - "RequestBody": { - "attributes": {}, - "policy": { - "issuer": { - "name": "Self" - }, - "secret_props": {}, - "x509_props": { - "sans": {}, - "subject": "CN=DefaultPolicy" - } - } - }, - "StatusCode": 202, - "ResponseHeaders": { - "Cache-Control": "no-cache", - "Content-Length": "1295", - "Content-Type": "application/json; charset=utf-8", - "Date": "Mon, 16 May 2022 18:12:12 GMT", - "Expires": "-1", - "Location": "https://fakekvurl.vault.azure.net/certificates/listcerts22395596731/pending?api-version=7.3\u0026request_id=1e79dfca9dd944b29fbb431f4fae7ba7", - "Pragma": "no-cache", - "Retry-After": "10", - "Strict-Transport-Security": "max-age=31536000;includeSubDomains", - "X-Content-Type-Options": "nosniff", - "x-ms-keyvault-network-info": "conn_type=Ipv4;addr=73.83.78.150;act_addr_fam=InterNetwork;", - "x-ms-keyvault-region": "westus2", - "x-ms-keyvault-service-version": "1.9.395.1", - "x-ms-request-id": "e593d9ec-b5fa-4fd1-8396-48f8ef1471e9" - }, - "ResponseBody": { - "id": "https://fakekvurl.vault.azure.net/certificates/listcerts22395596731/pending", - "issuer": { - "name": "Self" - }, - "csr": "MIICqDCCAZACAQAwGDEWMBQGA1UEAxMNRGVmYXVsdFBvbGljeTCCASIwDQYJKoZIhvcNAQEBBQADggEPADCCAQoCggEBAOlVZn9kg9wbz/MgFRqnujaIP6/RkGYXfT/S2jVwyjbtV17g0o1QZV0GSpHeAAavgQ1bJAz6tYx4rvocSRko7YJR8pM\u002BmALON1y5sTVlur703cR7yeukkGYzUja/zcZtt02qld6qpLydzumSIg\u002BAJX8NtbgpBT5qXEyRwpmDAWuLZ3bScBeST2ONTbewztwSxt4QeXahMKa6E74d1/5x21ekZGQUgYuQIctvLB\u002BSwYWJF6\u002BchI/rUIyLtTqE6KpEyHx9agr56Bp\u002BC88JgH2C\u002BRmcJ9NMfUT5t3uusW3Gs/wOu1jWjRwL1sZMUQmOZECXY\u002BWFL2lGD0Vx2rTRXChMoY0CAwEAAaBLMEkGCSqGSIb3DQEJDjE8MDowDgYDVR0PAQH/BAQDAgWgMB0GA1UdJQQWMBQGCCsGAQUFBwMBBggrBgEFBQcDAjAJBgNVHRMEAjAAMA0GCSqGSIb3DQEBCwUAA4IBAQBLHaPABKYZs2jBGpfXz5CyU9vLTU\u002BXs34FNvC1WKyGdpqL1yw6Px8fyvJ5bGoMKskBU6GCQvrlS38nKunF/mJ8\u002B903w\u002BZ/vjGbIfGZhuHhdqme5OtEHl3PE6GPuP4dx\u002Bfdd4S4w\u002BiuAQHirDAupR1e1FbKI949NiuPMWum5MOA49B\u002Bct1RainubsNpPNziH8YC7O\u002BgdfUFssi1FMFP/kNYoIPZvmg5S0/bNZwaEBdiftK8/BRUmkwsLtSO0Hj8mi1e\u002BQs5/7WIwoL7V8nEAWwdZCmnz5e/HF4GOYErkJNsMNrF9HRyMiup9BbS6NY5/FFLZvQqibyvx6cBhv7MTHIA", - "cancellation_requested": false, - "status": "inProgress", - "status_details": "Pending certificate created. Certificate request is in progress. This may take some time based on the issuer provider. Please check again later.", - "request_id": "1e79dfca9dd944b29fbb431f4fae7ba7" - } - }, - { - "RequestUri": "https://fakekvurl.vault.azure.net/certificates/listcerts22395596731/pending?api-version=7.3\u0026request_id=1e79dfca9dd944b29fbb431f4fae7ba7", - "RequestMethod": "GET", - "RequestHeaders": { - ":method": "GET", - "Accept-Encoding": "gzip", - "Authorization": "Sanitized", - "User-Agent": "azsdk-go-azcertificates/v0.4.2 (go1.18; Windows_NT)" - }, - "RequestBody": null, - "StatusCode": 200, - "ResponseHeaders": { - "Cache-Control": "no-cache", - "Content-Length": "1209", - "Content-Type": "application/json; charset=utf-8", - "Date": "Mon, 16 May 2022 18:12:22 GMT", - "Expires": "-1", - "Pragma": "no-cache", - "Strict-Transport-Security": "max-age=31536000;includeSubDomains", - "X-Content-Type-Options": "nosniff", - "x-ms-keyvault-network-info": "conn_type=Ipv4;addr=73.83.78.150;act_addr_fam=InterNetwork;", - "x-ms-keyvault-region": "westus2", - "x-ms-keyvault-service-version": "1.9.395.1", - "x-ms-request-id": "ed6dd023-5139-4793-98de-d79a56bd4fb1" - }, - "ResponseBody": { - "id": "https://fakekvurl.vault.azure.net/certificates/listcerts22395596731/pending", - "issuer": { - "name": "Self" - }, - "csr": "MIICqDCCAZACAQAwGDEWMBQGA1UEAxMNRGVmYXVsdFBvbGljeTCCASIwDQYJKoZIhvcNAQEBBQADggEPADCCAQoCggEBAOlVZn9kg9wbz/MgFRqnujaIP6/RkGYXfT/S2jVwyjbtV17g0o1QZV0GSpHeAAavgQ1bJAz6tYx4rvocSRko7YJR8pM\u002BmALON1y5sTVlur703cR7yeukkGYzUja/zcZtt02qld6qpLydzumSIg\u002BAJX8NtbgpBT5qXEyRwpmDAWuLZ3bScBeST2ONTbewztwSxt4QeXahMKa6E74d1/5x21ekZGQUgYuQIctvLB\u002BSwYWJF6\u002BchI/rUIyLtTqE6KpEyHx9agr56Bp\u002BC88JgH2C\u002BRmcJ9NMfUT5t3uusW3Gs/wOu1jWjRwL1sZMUQmOZECXY\u002BWFL2lGD0Vx2rTRXChMoY0CAwEAAaBLMEkGCSqGSIb3DQEJDjE8MDowDgYDVR0PAQH/BAQDAgWgMB0GA1UdJQQWMBQGCCsGAQUFBwMBBggrBgEFBQcDAjAJBgNVHRMEAjAAMA0GCSqGSIb3DQEBCwUAA4IBAQBLHaPABKYZs2jBGpfXz5CyU9vLTU\u002BXs34FNvC1WKyGdpqL1yw6Px8fyvJ5bGoMKskBU6GCQvrlS38nKunF/mJ8\u002B903w\u002BZ/vjGbIfGZhuHhdqme5OtEHl3PE6GPuP4dx\u002Bfdd4S4w\u002BiuAQHirDAupR1e1FbKI949NiuPMWum5MOA49B\u002Bct1RainubsNpPNziH8YC7O\u002BgdfUFssi1FMFP/kNYoIPZvmg5S0/bNZwaEBdiftK8/BRUmkwsLtSO0Hj8mi1e\u002BQs5/7WIwoL7V8nEAWwdZCmnz5e/HF4GOYErkJNsMNrF9HRyMiup9BbS6NY5/FFLZvQqibyvx6cBhv7MTHIA", - "cancellation_requested": false, - "status": "completed", - "target": "https://fakekvurl.vault.azure.net/certificates/listcerts22395596731", - "request_id": "1e79dfca9dd944b29fbb431f4fae7ba7" - } - }, - { - "RequestUri": "https://fakekvurl.vault.azure.net/certificates/listcerts22395596731/?api-version=7.3", - "RequestMethod": "GET", - "RequestHeaders": { - ":method": "GET", - "Accept": "application/json", - "Accept-Encoding": "gzip", - "Authorization": "Sanitized", - "User-Agent": "azsdk-go-azcertificates/v0.4.2 (go1.18; Windows_NT)" - }, - "RequestBody": null, - "StatusCode": 200, - "ResponseHeaders": { - "Cache-Control": "no-cache", - "Content-Length": "2361", - "Content-Type": "application/json; charset=utf-8", - "Date": "Mon, 16 May 2022 18:12:22 GMT", - "Expires": "-1", - "Pragma": "no-cache", - "Strict-Transport-Security": "max-age=31536000;includeSubDomains", - "X-Content-Type-Options": "nosniff", - "x-ms-keyvault-network-info": "conn_type=Ipv4;addr=73.83.78.150;act_addr_fam=InterNetwork;", - "x-ms-keyvault-region": "westus2", - "x-ms-keyvault-service-version": "1.9.395.1", - "x-ms-request-id": "78bf62fb-e07d-4c75-8692-0f7c0016e86d" - }, - "ResponseBody": { - "id": "https://fakekvurl.vault.azure.net/certificates/listcerts22395596731/951fcba76df5415782185202696ebea9", - "kid": "https://fakekvurl.vault.azure.net/keys/listcerts22395596731/951fcba76df5415782185202696ebea9", - "sid": "https://fakekvurl.vault.azure.net/secrets/listcerts22395596731/951fcba76df5415782185202696ebea9", - "x5t": "x6Oc_4shsgTRjjtXYiaIg4pKgyg", - "cer": "MIIDNjCCAh6gAwIBAgIQR/BU0et2QICTwFrHsqnxvDANBgkqhkiG9w0BAQsFADAYMRYwFAYDVQQDEw1EZWZhdWx0UG9saWN5MB4XDTIyMDUxNjE4MDIxOFoXDTIzMDUxNjE4MTIxOFowGDEWMBQGA1UEAxMNRGVmYXVsdFBvbGljeTCCASIwDQYJKoZIhvcNAQEBBQADggEPADCCAQoCggEBAOlVZn9kg9wbz/MgFRqnujaIP6/RkGYXfT/S2jVwyjbtV17g0o1QZV0GSpHeAAavgQ1bJAz6tYx4rvocSRko7YJR8pM\u002BmALON1y5sTVlur703cR7yeukkGYzUja/zcZtt02qld6qpLydzumSIg\u002BAJX8NtbgpBT5qXEyRwpmDAWuLZ3bScBeST2ONTbewztwSxt4QeXahMKa6E74d1/5x21ekZGQUgYuQIctvLB\u002BSwYWJF6\u002BchI/rUIyLtTqE6KpEyHx9agr56Bp\u002BC88JgH2C\u002BRmcJ9NMfUT5t3uusW3Gs/wOu1jWjRwL1sZMUQmOZECXY\u002BWFL2lGD0Vx2rTRXChMoY0CAwEAAaN8MHowDgYDVR0PAQH/BAQDAgWgMAkGA1UdEwQCMAAwHQYDVR0lBBYwFAYIKwYBBQUHAwEGCCsGAQUFBwMCMB8GA1UdIwQYMBaAFLGWrJDOeJWYKH7QNgai82MAFUxiMB0GA1UdDgQWBBSxlqyQzniVmCh\u002B0DYGovNjABVMYjANBgkqhkiG9w0BAQsFAAOCAQEAHesOT07G4h4kJEP5GNLdgR1Q40nXeOCByEXa06QZRnyD5QPlZiGH1kPrUxfx2i3B2kxc0xZPIGVM6GDJnwQJb7/O49Ii8tsSasy8l\u002BVc0LL5nIFXE4VbWrla54GdUGqqSpY0EN7hkKFSo64LNIt5YBxZuWLG4DzRmsiT7sYOcEfp/S8IOTBx29UTW5p1UbwJ4qUMLRapKH02DYgUIXJufhf5fucsE6RmPIdhfW/XH1KNZE8xE\u002BQlMnt2bEbovp5mLliW/dftWuymQbfAawpOfoY29kDCrXvMcPDAYL5TwO42Z7aB53Ow1KwiZjJoitOo6htc4MxlE2aU\u002BhWNGr9Sxw==", - "attributes": { - "enabled": true, - "nbf": 1652724138, - "exp": 1684260738, - "created": 1652724739, - "updated": 1652724739, - "recoveryLevel": "CustomizedRecoverable\u002BPurgeable", - "recoverableDays": 7 - }, - "policy": { - "id": "https://fakekvurl.vault.azure.net/certificates/listcerts22395596731/policy", - "key_props": { - "exportable": true, - "kty": "RSA", - "key_size": 2048, - "reuse_key": false - }, - "secret_props": { - "contentType": "application/x-pkcs12" - }, - "x509_props": { - "subject": "CN=DefaultPolicy", - "sans": {}, - "ekus": [ - "1.3.6.1.5.5.7.3.1", - "1.3.6.1.5.5.7.3.2" - ], - "key_usage": [ - "digitalSignature", - "keyEncipherment" - ], - "validity_months": 12, - "basic_constraints": { - "ca": false - } - }, - "lifetime_actions": [ - { - "trigger": { - "lifetime_percentage": 80 - }, - "action": { - "action_type": "AutoRenew" - } - } - ], - "issuer": { - "name": "Self" - }, - "attributes": { - "enabled": true, - "created": 1652724732, - "updated": 1652724732 - } - }, - "pending": { - "id": "https://fakekvurl.vault.azure.net/certificates/listcerts22395596731/pending" - } - } - }, - { - "RequestUri": "https://fakekvurl.vault.azure.net/certificates/listcerts32395596731/create?api-version=7.3", - "RequestMethod": "POST", - "RequestHeaders": { - ":method": "POST", - "Accept": "application/json", - "Accept-Encoding": "gzip", - "Authorization": "Sanitized", - "Content-Length": "125", - "Content-Type": "application/json", - "User-Agent": "azsdk-go-azcertificates/v0.4.2 (go1.18; Windows_NT)" - }, - "RequestBody": { - "attributes": {}, - "policy": { - "issuer": { - "name": "Self" - }, - "secret_props": {}, - "x509_props": { - "sans": {}, - "subject": "CN=DefaultPolicy" - } - } - }, - "StatusCode": 202, - "ResponseHeaders": { - "Cache-Control": "no-cache", - "Content-Length": "1295", - "Content-Type": "application/json; charset=utf-8", - "Date": "Mon, 16 May 2022 18:12:23 GMT", - "Expires": "-1", - "Location": "https://fakekvurl.vault.azure.net/certificates/listcerts32395596731/pending?api-version=7.3\u0026request_id=4ebf118b807b4a069f1a070520c95c11", - "Pragma": "no-cache", - "Retry-After": "10", - "Strict-Transport-Security": "max-age=31536000;includeSubDomains", - "X-Content-Type-Options": "nosniff", - "x-ms-keyvault-network-info": "conn_type=Ipv4;addr=73.83.78.150;act_addr_fam=InterNetwork;", - "x-ms-keyvault-region": "westus2", - "x-ms-keyvault-service-version": "1.9.395.1", - "x-ms-request-id": "182125b1-9bcd-4e27-9338-77ab234d302f" - }, - "ResponseBody": { - "id": "https://fakekvurl.vault.azure.net/certificates/listcerts32395596731/pending", - "issuer": { - "name": "Self" - }, - "csr": "MIICqDCCAZACAQAwGDEWMBQGA1UEAxMNRGVmYXVsdFBvbGljeTCCASIwDQYJKoZIhvcNAQEBBQADggEPADCCAQoCggEBAMv5LDFSqhMe03ayJ\u002B/x5fkCcXTBBIk5SgkL2yypL\u002BryK0/TO7lXI9knNlD8JGc8s8f8Gmq/BW/I5ETI4LVv2M8VF4PJ6XK0KPkxPupHDrcXn8GQZcCiooG4waQX4dXr4m\u002BJ8VjYgvm5VxXaHlDB5kmkgD87\u002BgTgus6/Z\u002BHIvdru\u002BBiyBKdLlvBrDrDsG4Rlan1i4SI5B9Tn2XN3xaPd\u002BpRwlNq/zqJD2/dhBqkTNyCDYtE9p0W8iaSTda\u002B6W/DfK3cdo2ALH5O8tUHRqJczuMO4EnOffODXbFlTXMpW1PcODRK\u002Bd9ECuW2CQgeO/kY\u002BxpkJSE8lAn6KzmNuUjUd3rECAwEAAaBLMEkGCSqGSIb3DQEJDjE8MDowDgYDVR0PAQH/BAQDAgWgMB0GA1UdJQQWMBQGCCsGAQUFBwMBBggrBgEFBQcDAjAJBgNVHRMEAjAAMA0GCSqGSIb3DQEBCwUAA4IBAQCnLsqWnPz\u002B7lPD0eueG7jC3h2XP11B/N7FCpa0r50a1L3ALdRAo9SJ63/vv7UcUXSYCfCoa5yDdGTKDY9YDdfOZ3YSAtT6hlMtrXVzkXCWkN1DXi62J\u002BAZwp8Eg6QBuXfDzpSSzvZso0yC9sWkDqcg6\u002BadpMzfkyv2kvKxO5RIJcLKE/8dtNfOD1qyZGn3f\u002BalCrAfB657Zs9XDKrralTOUgz4Z/CyJYgEuBwqATFtEWGkdMhJMf9svODCM2QzaN\u002B1AH4gKfRWXIC1meA\u002BoYn1vdfPaLBB3Fmozeu78QbdnqpTZoCC\u002BdVSjIo/Sh8pwGf9Nv9d87EaWqUeZIa0e21c", - "cancellation_requested": false, - "status": "inProgress", - "status_details": "Pending certificate created. Certificate request is in progress. This may take some time based on the issuer provider. Please check again later.", - "request_id": "4ebf118b807b4a069f1a070520c95c11" - } - }, - { - "RequestUri": "https://fakekvurl.vault.azure.net/certificates/listcerts32395596731/pending?api-version=7.3\u0026request_id=4ebf118b807b4a069f1a070520c95c11", - "RequestMethod": "GET", - "RequestHeaders": { - ":method": "GET", - "Accept-Encoding": "gzip", - "Authorization": "Sanitized", - "User-Agent": "azsdk-go-azcertificates/v0.4.2 (go1.18; Windows_NT)" - }, - "RequestBody": null, - "StatusCode": 200, - "ResponseHeaders": { - "Cache-Control": "no-cache", - "Content-Length": "1209", - "Content-Type": "application/json; charset=utf-8", - "Date": "Mon, 16 May 2022 18:12:33 GMT", - "Expires": "-1", - "Pragma": "no-cache", - "Strict-Transport-Security": "max-age=31536000;includeSubDomains", - "X-Content-Type-Options": "nosniff", - "x-ms-keyvault-network-info": "conn_type=Ipv4;addr=73.83.78.150;act_addr_fam=InterNetwork;", - "x-ms-keyvault-region": "westus2", - "x-ms-keyvault-service-version": "1.9.395.1", - "x-ms-request-id": "f82b01da-97d4-4caa-9d6f-c832c065fa22" - }, - "ResponseBody": { - "id": "https://fakekvurl.vault.azure.net/certificates/listcerts32395596731/pending", - "issuer": { - "name": "Self" - }, - "csr": "MIICqDCCAZACAQAwGDEWMBQGA1UEAxMNRGVmYXVsdFBvbGljeTCCASIwDQYJKoZIhvcNAQEBBQADggEPADCCAQoCggEBAMv5LDFSqhMe03ayJ\u002B/x5fkCcXTBBIk5SgkL2yypL\u002BryK0/TO7lXI9knNlD8JGc8s8f8Gmq/BW/I5ETI4LVv2M8VF4PJ6XK0KPkxPupHDrcXn8GQZcCiooG4waQX4dXr4m\u002BJ8VjYgvm5VxXaHlDB5kmkgD87\u002BgTgus6/Z\u002BHIvdru\u002BBiyBKdLlvBrDrDsG4Rlan1i4SI5B9Tn2XN3xaPd\u002BpRwlNq/zqJD2/dhBqkTNyCDYtE9p0W8iaSTda\u002B6W/DfK3cdo2ALH5O8tUHRqJczuMO4EnOffODXbFlTXMpW1PcODRK\u002Bd9ECuW2CQgeO/kY\u002BxpkJSE8lAn6KzmNuUjUd3rECAwEAAaBLMEkGCSqGSIb3DQEJDjE8MDowDgYDVR0PAQH/BAQDAgWgMB0GA1UdJQQWMBQGCCsGAQUFBwMBBggrBgEFBQcDAjAJBgNVHRMEAjAAMA0GCSqGSIb3DQEBCwUAA4IBAQCnLsqWnPz\u002B7lPD0eueG7jC3h2XP11B/N7FCpa0r50a1L3ALdRAo9SJ63/vv7UcUXSYCfCoa5yDdGTKDY9YDdfOZ3YSAtT6hlMtrXVzkXCWkN1DXi62J\u002BAZwp8Eg6QBuXfDzpSSzvZso0yC9sWkDqcg6\u002BadpMzfkyv2kvKxO5RIJcLKE/8dtNfOD1qyZGn3f\u002BalCrAfB657Zs9XDKrralTOUgz4Z/CyJYgEuBwqATFtEWGkdMhJMf9svODCM2QzaN\u002B1AH4gKfRWXIC1meA\u002BoYn1vdfPaLBB3Fmozeu78QbdnqpTZoCC\u002BdVSjIo/Sh8pwGf9Nv9d87EaWqUeZIa0e21c", - "cancellation_requested": false, - "status": "completed", - "target": "https://fakekvurl.vault.azure.net/certificates/listcerts32395596731", - "request_id": "4ebf118b807b4a069f1a070520c95c11" - } - }, - { - "RequestUri": "https://fakekvurl.vault.azure.net/certificates/listcerts32395596731/?api-version=7.3", - "RequestMethod": "GET", - "RequestHeaders": { - ":method": "GET", - "Accept": "application/json", - "Accept-Encoding": "gzip", - "Authorization": "Sanitized", - "User-Agent": "azsdk-go-azcertificates/v0.4.2 (go1.18; Windows_NT)" - }, - "RequestBody": null, - "StatusCode": 200, - "ResponseHeaders": { - "Cache-Control": "no-cache", - "Content-Length": "2361", - "Content-Type": "application/json; charset=utf-8", - "Date": "Mon, 16 May 2022 18:12:33 GMT", - "Expires": "-1", - "Pragma": "no-cache", - "Strict-Transport-Security": "max-age=31536000;includeSubDomains", - "X-Content-Type-Options": "nosniff", - "x-ms-keyvault-network-info": "conn_type=Ipv4;addr=73.83.78.150;act_addr_fam=InterNetwork;", - "x-ms-keyvault-region": "westus2", - "x-ms-keyvault-service-version": "1.9.395.1", - "x-ms-request-id": "9218c8e1-f9b1-4344-aba7-64116c795941" - }, - "ResponseBody": { - "id": "https://fakekvurl.vault.azure.net/certificates/listcerts32395596731/5e8698dd794a483091ae722eca17b499", - "kid": "https://fakekvurl.vault.azure.net/keys/listcerts32395596731/5e8698dd794a483091ae722eca17b499", - "sid": "https://fakekvurl.vault.azure.net/secrets/listcerts32395596731/5e8698dd794a483091ae722eca17b499", - "x5t": "LWvj7_9jrNIFM0Jal2XgVrDg5Es", - "cer": "MIIDNjCCAh6gAwIBAgIQexHfGuSmQWiFZZmM8ze8XTANBgkqhkiG9w0BAQsFADAYMRYwFAYDVQQDEw1EZWZhdWx0UG9saWN5MB4XDTIyMDUxNjE4MDIyOFoXDTIzMDUxNjE4MTIyOFowGDEWMBQGA1UEAxMNRGVmYXVsdFBvbGljeTCCASIwDQYJKoZIhvcNAQEBBQADggEPADCCAQoCggEBAMv5LDFSqhMe03ayJ\u002B/x5fkCcXTBBIk5SgkL2yypL\u002BryK0/TO7lXI9knNlD8JGc8s8f8Gmq/BW/I5ETI4LVv2M8VF4PJ6XK0KPkxPupHDrcXn8GQZcCiooG4waQX4dXr4m\u002BJ8VjYgvm5VxXaHlDB5kmkgD87\u002BgTgus6/Z\u002BHIvdru\u002BBiyBKdLlvBrDrDsG4Rlan1i4SI5B9Tn2XN3xaPd\u002BpRwlNq/zqJD2/dhBqkTNyCDYtE9p0W8iaSTda\u002B6W/DfK3cdo2ALH5O8tUHRqJczuMO4EnOffODXbFlTXMpW1PcODRK\u002Bd9ECuW2CQgeO/kY\u002BxpkJSE8lAn6KzmNuUjUd3rECAwEAAaN8MHowDgYDVR0PAQH/BAQDAgWgMAkGA1UdEwQCMAAwHQYDVR0lBBYwFAYIKwYBBQUHAwEGCCsGAQUFBwMCMB8GA1UdIwQYMBaAFDVem1u0fXM1p6swRm4AX8c4ORO1MB0GA1UdDgQWBBQ1XptbtH1zNaerMEZuAF/HODkTtTANBgkqhkiG9w0BAQsFAAOCAQEAeSOdsOX7Sxp261IX8QrB2uaLXgkwvDDpt3AyujYgJrZF9dIzGQo5CUAp8XR/btJ1ShNlLUblbnSEIpRfskWXXdcQXKSItpOU6vcGeFRUFo68RCBHihV/OQiwq4BG249nBVV6x\u002By7ny0SH5vCJwH/M7GeneqmlAuMMbcRpK\u002BmFot4lC1PVCtNnOPFQl5JCwhTOSYSB3oBQMcEJgSztmqQfQlImXwrqyYqwuW9WRVAqZz039LaYNovXMg/JAV4pV/H5LxZLUtszQv49MbFbYGsYF9\u002BKzADkceGtSaz7Ik0vFtYyMzamSMlVMWAGCZ3hNlxuq/ZfLEqkZRJdI6HN0FAHw==", - "attributes": { - "enabled": true, - "nbf": 1652724148, - "exp": 1684260748, - "created": 1652724748, - "updated": 1652724748, - "recoveryLevel": "CustomizedRecoverable\u002BPurgeable", - "recoverableDays": 7 - }, - "policy": { - "id": "https://fakekvurl.vault.azure.net/certificates/listcerts32395596731/policy", - "key_props": { - "exportable": true, - "kty": "RSA", - "key_size": 2048, - "reuse_key": false - }, - "secret_props": { - "contentType": "application/x-pkcs12" - }, - "x509_props": { - "subject": "CN=DefaultPolicy", - "sans": {}, - "ekus": [ - "1.3.6.1.5.5.7.3.1", - "1.3.6.1.5.5.7.3.2" - ], - "key_usage": [ - "digitalSignature", - "keyEncipherment" - ], - "validity_months": 12, - "basic_constraints": { - "ca": false - } - }, - "lifetime_actions": [ - { - "trigger": { - "lifetime_percentage": 80 - }, - "action": { - "action_type": "AutoRenew" - } - } - ], - "issuer": { - "name": "Self" - }, - "attributes": { - "enabled": true, - "created": 1652724743, - "updated": 1652724743 - } - }, - "pending": { - "id": "https://fakekvurl.vault.azure.net/certificates/listcerts32395596731/pending" - } - } - }, - { - "RequestUri": "https://fakekvurl.vault.azure.net/certificates?api-version=7.3", - "RequestMethod": "GET", - "RequestHeaders": { - ":method": "GET", - "Accept": "application/json", - "Accept-Encoding": "gzip", - "Authorization": "Sanitized", - "User-Agent": "azsdk-go-azcertificates/v0.4.2 (go1.18; Windows_NT)" - }, - "RequestBody": null, - "StatusCode": 200, - "ResponseHeaders": { - "Cache-Control": "no-cache", - "Content-Length": "4712", - "Content-Type": "application/json; charset=utf-8", - "Date": "Mon, 16 May 2022 18:12:33 GMT", - "Expires": "-1", - "Pragma": "no-cache", - "Strict-Transport-Security": "max-age=31536000;includeSubDomains", - "X-Content-Type-Options": "nosniff", - "x-ms-keyvault-network-info": "conn_type=Ipv4;addr=73.83.78.150;act_addr_fam=InterNetwork;", - "x-ms-keyvault-region": "westus2", - "x-ms-keyvault-service-version": "1.9.395.1", - "x-ms-request-id": "f9c4f8af-a6e7-4cbf-a88f-917c524eeafc" - }, - "ResponseBody": { - "value": [ - { - "id": "https://fakekvurl.vault.azure.net/certificates/cert0vgtpaiyp", - "x5t": "HEP4OnEe0pk3E2qpmBqd1WQhn9o", - "attributes": { - "enabled": true, - "nbf": 1652484477, - "exp": 1684021077, - "created": 1652485077, - "updated": 1652485077 - }, - "subject": "" - }, - { - "id": "https://fakekvurl.vault.azure.net/certificates/cert11qo8r7wa", - "x5t": "FW1Iw0M_nmVHbvGWBm2aVN7ux6Q", - "attributes": { - "enabled": true, - "nbf": 1652484488, - "exp": 1684021088, - "created": 1652485088, - "updated": 1652485088 - }, - "subject": "" - }, - { - "id": "https://fakekvurl.vault.azure.net/certificates/cert2501394451", - "x5t": "U-Inp8ve95Wk-wuGjCJKPQ1dsJQ", - "attributes": { - "enabled": true, - "nbf": 1652723702, - "exp": 1684260302, - "created": 1652724302, - "updated": 1652724309 - }, - "tags": { - "tag1": "updated_values1" - }, - "subject": "" - }, - { - "id": "https://fakekvurl.vault.azure.net/certificates/cert2fa8ijapi", - "x5t": "HMCoZ_yqFP51YXW90WjziqDfZFs", - "attributes": { - "enabled": true, - "nbf": 1652484501, - "exp": 1684021101, - "created": 1652485101, - "updated": 1652485101 - }, - "subject": "" - }, - { - "id": "https://fakekvurl.vault.azure.net/certificates/cert3pevf8gn4", - "x5t": "enjQDr2BmhpVnlv9l17eFuhA5CU", - "attributes": { - "enabled": true, - "nbf": 1652484517, - "exp": 1684021117, - "created": 1652485117, - "updated": 1652485117 - }, - "subject": "" - }, - { - "id": "https://fakekvurl.vault.azure.net/certificates/cert3ykbdgtu", - "x5t": "FKUvXXr6_8wCRC1oxU_6h5p8iqs", - "attributes": { - "enabled": true, - "nbf": 1652484865, - "exp": 1684021465, - "created": 1652485465, - "updated": 1652485471 - }, - "tags": { - "tag1": "updated_values1" - }, - "subject": "" - }, - { - "id": "https://fakekvurl.vault.azure.net/certificates/cert65mhqbp1", - "x5t": "GW7GQCW3NwY2qACpbSRMQn05mrg", - "attributes": { - "enabled": true, - "nbf": 1652480799, - "exp": 1684017399, - "created": 1652481399, - "updated": 1652481407 - }, - "tags": { - "tag1": "updated_values1" - }, - "subject": "" - }, - { - "id": "https://fakekvurl.vault.azure.net/certificates/certBeginRecoverRehydrated2840213968", - "x5t": "U9V3QgqB0Vdw9ZVavmHR7feMBCM", - "attributes": { - "enabled": true, - "nbf": 1652723745, - "exp": 1684260345, - "created": 1652724345, - "updated": 1652724345 - }, - "subject": "" - }, - { - "id": "https://fakekvurl.vault.azure.net/certificates/certBeginRecoverRehydrated5if2z6es", - "x5t": "E1Ine7R89cVizaxxeY1T50yqhF0", - "attributes": { - "enabled": true, - "nbf": 1652711003, - "exp": 1684247603, - "created": 1652711603, - "updated": 1652711603 - }, - "subject": "" - }, - { - "id": "https://fakekvurl.vault.azure.net/certificates/certBeginRecoverRehydratedbeijl35c", - "x5t": "EBIjGMYEY8VmcEGSY4xDOzgwfJI", - "attributes": { - "enabled": true, - "nbf": 1652484915, - "exp": 1684021515, - "created": 1652485515, - "updated": 1652485515 - }, - "subject": "" - }, - { - "id": "https://fakekvurl.vault.azure.net/certificates/certBeginRecoverRehydratedep2wqy1g", - "x5t": "lQibw7Q0G-Ukmpmev61zBj8JHDc", - "attributes": { - "enabled": true, - "nbf": 1652483726, - "exp": 1684020326, - "created": 1652484326, - "updated": 1652484326 - }, - "subject": "" - }, - { - "id": "https://fakekvurl.vault.azure.net/certificates/certBeginRecoverRehydratedrhzgcfy5", - "x5t": "PErwjEw2Frl-ScDvzaOq8Vlg884", - "attributes": { - "enabled": true, - "nbf": 1652482807, - "exp": 1684019407, - "created": 1652483407, - "updated": 1652483407 - }, - "subject": "" - }, - { - "id": "https://fakekvurl.vault.azure.net/certificates/certepax3rt5", - "x5t": "gEYLocy54Kptw3meRuoQS1poLio", - "attributes": { - "enabled": true, - "nbf": 1652482761, - "exp": 1684019361, - "created": 1652483361, - "updated": 1652483367 - }, - "tags": { - "tag1": "updated_values1" - }, - "subject": "" - }, - { - "id": "https://fakekvurl.vault.azure.net/certificates/certqx80843s", - "x5t": "RDnP1Qbovq_jPcglE2z9_w7VMAI", - "attributes": { - "enabled": true, - "nbf": 1652483688, - "exp": 1684020288, - "created": 1652484288, - "updated": 1652484295 - }, - "tags": { - "tag1": "updated_values1" - }, - "subject": "" - }, - { - "id": "https://fakekvurl.vault.azure.net/certificates/certt4xn4h1c", - "x5t": "QWLOCYUCST2d6q9Ohj2dO1-bVW0", - "attributes": { - "enabled": true, - "nbf": 1652710947, - "exp": 1684247547, - "created": 1652711547, - "updated": 1652711551 - }, - "tags": { - "tag1": "updated_values1" - }, - "subject": "" - }, - { - "id": "https://fakekvurl.vault.azure.net/certificates/certwyzkk8fd", - "x5t": "qHnngnV5jo2Vt4JF4HdwqJFQEbk", - "attributes": { - "enabled": true, - "nbf": 1652481552, - "exp": 1684018152, - "created": 1652482153, - "updated": 1652482157 - }, - "tags": { - "tag1": "updated_values1" - }, - "subject": "" - }, - { - "id": "https://fakekvurl.vault.azure.net/certificates/listcerts02395596731", - "x5t": "bdFtf9DYSx18wdtKDh8F5zCXHD0", - "attributes": { - "enabled": true, - "nbf": 1652724116, - "exp": 1684260716, - "created": 1652724716, - "updated": 1652724716 - }, - "subject": "" - }, - { - "id": "https://fakekvurl.vault.azure.net/certificates/listcerts12395596731", - "x5t": "dLpRMeFiR0xaHi_IAu4HwMBPvuY", - "attributes": { - "enabled": true, - "nbf": 1652724126, - "exp": 1684260726, - "created": 1652724726, - "updated": 1652724726 - }, - "subject": "" - } - ], - "nextLink": "https://fakekvurl.vault.azure.net/certificates?api-version=7.3\u0026$skiptoken=eyJOZXh0TWFya2VyIjoiMiExMTIhTURBd01ETTVJV05sY25ScFptbGpZWFJsTDB4SlUxUkRSVkpVVXpFeU16azFOVGsyTnpNeEwxQlBURWxEV1NFd01EQXdNamdoT1RrNU9TMHhNaTB6TVZReU16bzFPVG8xT1M0NU9UazVPVGs1V2lFLSIsIlRhcmdldExvY2F0aW9uIjowfQ" - } - }, - { - "RequestUri": "https://fakekvurl.vault.azure.net/certificates?api-version=7.3\u0026$skiptoken=eyJOZXh0TWFya2VyIjoiMiExMTIhTURBd01ETTVJV05sY25ScFptbGpZWFJsTDB4SlUxUkRSVkpVVXpFeU16azFOVGsyTnpNeEwxQlBURWxEV1NFd01EQXdNamdoT1RrNU9TMHhNaTB6TVZReU16bzFPVG8xT1M0NU9UazVPVGs1V2lFLSIsIlRhcmdldExvY2F0aW9uIjowfQ", - "RequestMethod": "GET", - "RequestHeaders": { - ":method": "GET", - "Accept-Encoding": "gzip", - "Authorization": "Sanitized", - "User-Agent": "azsdk-go-azcertificates/v0.4.2 (go1.18; Windows_NT)" - }, - "RequestBody": null, - "StatusCode": 200, - "ResponseHeaders": { - "Cache-Control": "no-cache", - "Content-Length": "491", - "Content-Type": "application/json; charset=utf-8", - "Date": "Mon, 16 May 2022 18:12:33 GMT", - "Expires": "-1", - "Pragma": "no-cache", - "Strict-Transport-Security": "max-age=31536000;includeSubDomains", - "X-Content-Type-Options": "nosniff", - "x-ms-keyvault-network-info": "conn_type=Ipv4;addr=73.83.78.150;act_addr_fam=InterNetwork;", - "x-ms-keyvault-region": "westus2", - "x-ms-keyvault-service-version": "1.9.395.1", - "x-ms-request-id": "adecb0d8-1b62-4915-9b2d-00e288bc1c70" - }, - "ResponseBody": { - "value": [ - { - "id": "https://fakekvurl.vault.azure.net/certificates/listcerts22395596731", - "x5t": "x6Oc_4shsgTRjjtXYiaIg4pKgyg", - "attributes": { - "enabled": true, - "nbf": 1652724138, - "exp": 1684260738, - "created": 1652724739, - "updated": 1652724739 - }, - "subject": "" - }, - { - "id": "https://fakekvurl.vault.azure.net/certificates/listcerts32395596731", - "x5t": "LWvj7_9jrNIFM0Jal2XgVrDg5Es", - "attributes": { - "enabled": true, - "nbf": 1652724148, - "exp": 1684260748, - "created": 1652724748, - "updated": 1652724748 - }, - "subject": "" - } - ], - "nextLink": null - } - }, - { - "RequestUri": "https://fakekvurl.vault.azure.net/certificates/listcerts32395596731?api-version=7.3", - "RequestMethod": "DELETE", - "RequestHeaders": { - "Accept": "application/json", - "Accept-Encoding": "gzip", - "Authorization": "Sanitized", - "User-Agent": "azsdk-go-azcertificates/v0.4.2 (go1.18; Windows_NT)" - }, - "RequestBody": null, - "StatusCode": 200, - "ResponseHeaders": { - "Cache-Control": "no-cache", - "Content-Length": "2508", - "Content-Type": "application/json; charset=utf-8", - "Date": "Mon, 16 May 2022 18:12:33 GMT", - "Expires": "-1", - "Pragma": "no-cache", - "Strict-Transport-Security": "max-age=31536000;includeSubDomains", - "X-Content-Type-Options": "nosniff", - "x-ms-keyvault-network-info": "conn_type=Ipv4;addr=73.83.78.150;act_addr_fam=InterNetwork;", - "x-ms-keyvault-region": "westus2", - "x-ms-keyvault-service-version": "1.9.395.1", - "x-ms-request-id": "1e0e5bec-a45e-4095-8dc8-3a1dce74d3af" - }, - "ResponseBody": { - "recoveryId": "https://fakekvurl.vault.azure.net/deletedcertificates/listcerts32395596731", - "deletedDate": 1652724753, - "scheduledPurgeDate": 1653329553, - "id": "https://fakekvurl.vault.azure.net/certificates/listcerts32395596731/5e8698dd794a483091ae722eca17b499", - "kid": "https://fakekvurl.vault.azure.net/keys/listcerts32395596731/5e8698dd794a483091ae722eca17b499", - "sid": "https://fakekvurl.vault.azure.net/secrets/listcerts32395596731/5e8698dd794a483091ae722eca17b499", - "x5t": "LWvj7_9jrNIFM0Jal2XgVrDg5Es", - "cer": "MIIDNjCCAh6gAwIBAgIQexHfGuSmQWiFZZmM8ze8XTANBgkqhkiG9w0BAQsFADAYMRYwFAYDVQQDEw1EZWZhdWx0UG9saWN5MB4XDTIyMDUxNjE4MDIyOFoXDTIzMDUxNjE4MTIyOFowGDEWMBQGA1UEAxMNRGVmYXVsdFBvbGljeTCCASIwDQYJKoZIhvcNAQEBBQADggEPADCCAQoCggEBAMv5LDFSqhMe03ayJ\u002B/x5fkCcXTBBIk5SgkL2yypL\u002BryK0/TO7lXI9knNlD8JGc8s8f8Gmq/BW/I5ETI4LVv2M8VF4PJ6XK0KPkxPupHDrcXn8GQZcCiooG4waQX4dXr4m\u002BJ8VjYgvm5VxXaHlDB5kmkgD87\u002BgTgus6/Z\u002BHIvdru\u002BBiyBKdLlvBrDrDsG4Rlan1i4SI5B9Tn2XN3xaPd\u002BpRwlNq/zqJD2/dhBqkTNyCDYtE9p0W8iaSTda\u002B6W/DfK3cdo2ALH5O8tUHRqJczuMO4EnOffODXbFlTXMpW1PcODRK\u002Bd9ECuW2CQgeO/kY\u002BxpkJSE8lAn6KzmNuUjUd3rECAwEAAaN8MHowDgYDVR0PAQH/BAQDAgWgMAkGA1UdEwQCMAAwHQYDVR0lBBYwFAYIKwYBBQUHAwEGCCsGAQUFBwMCMB8GA1UdIwQYMBaAFDVem1u0fXM1p6swRm4AX8c4ORO1MB0GA1UdDgQWBBQ1XptbtH1zNaerMEZuAF/HODkTtTANBgkqhkiG9w0BAQsFAAOCAQEAeSOdsOX7Sxp261IX8QrB2uaLXgkwvDDpt3AyujYgJrZF9dIzGQo5CUAp8XR/btJ1ShNlLUblbnSEIpRfskWXXdcQXKSItpOU6vcGeFRUFo68RCBHihV/OQiwq4BG249nBVV6x\u002By7ny0SH5vCJwH/M7GeneqmlAuMMbcRpK\u002BmFot4lC1PVCtNnOPFQl5JCwhTOSYSB3oBQMcEJgSztmqQfQlImXwrqyYqwuW9WRVAqZz039LaYNovXMg/JAV4pV/H5LxZLUtszQv49MbFbYGsYF9\u002BKzADkceGtSaz7Ik0vFtYyMzamSMlVMWAGCZ3hNlxuq/ZfLEqkZRJdI6HN0FAHw==", - "attributes": { - "enabled": true, - "nbf": 1652724148, - "exp": 1684260748, - "created": 1652724748, - "updated": 1652724748, - "recoveryLevel": "CustomizedRecoverable\u002BPurgeable", - "recoverableDays": 7 - }, - "policy": { - "id": "https://fakekvurl.vault.azure.net/certificates/listcerts32395596731/policy", - "key_props": { - "exportable": true, - "kty": "RSA", - "key_size": 2048, - "reuse_key": false - }, - "secret_props": { - "contentType": "application/x-pkcs12" - }, - "x509_props": { - "subject": "CN=DefaultPolicy", - "sans": {}, - "ekus": [ - "1.3.6.1.5.5.7.3.1", - "1.3.6.1.5.5.7.3.2" - ], - "key_usage": [ - "digitalSignature", - "keyEncipherment" - ], - "validity_months": 12, - "basic_constraints": { - "ca": false - } - }, - "lifetime_actions": [ - { - "trigger": { - "lifetime_percentage": 80 - }, - "action": { - "action_type": "AutoRenew" - } - } - ], - "issuer": { - "name": "Self" - }, - "attributes": { - "enabled": true, - "created": 1652724743, - "updated": 1652724743 - } - }, - "pending": { - "id": "https://fakekvurl.vault.azure.net/certificates/listcerts32395596731/pending" - } - } - }, - { - "RequestUri": "https://fakekvurl.vault.azure.net/deletedcertificates/listcerts32395596731?api-version=7.3", - "RequestMethod": "GET", - "RequestHeaders": { - ":method": "GET", - "Accept": "application/json", - "Accept-Encoding": "gzip", - "Authorization": "Sanitized", - "User-Agent": "azsdk-go-azcertificates/v0.4.2 (go1.18; Windows_NT)" - }, - "RequestBody": null, - "StatusCode": 404, - "ResponseHeaders": { - "Cache-Control": "no-cache", - "Content-Length": "104", - "Content-Type": "application/json; charset=utf-8", - "Date": "Mon, 16 May 2022 18:12:33 GMT", - "Expires": "-1", - "Pragma": "no-cache", - "Strict-Transport-Security": "max-age=31536000;includeSubDomains", - "X-Content-Type-Options": "nosniff", - "x-ms-keyvault-network-info": "conn_type=Ipv4;addr=73.83.78.150;act_addr_fam=InterNetwork;", - "x-ms-keyvault-region": "westus2", - "x-ms-keyvault-service-version": "1.9.395.1", - "x-ms-request-id": "9c4aa5fe-9a2c-4066-9158-f981aa805dd1" - }, - "ResponseBody": { - "error": { - "code": "CertificateNotFound", - "message": "Deleted Certificate not found: listcerts32395596731" - } - } - }, - { - "RequestUri": "https://fakekvurl.vault.azure.net/deletedcertificates/listcerts32395596731?api-version=7.3", - "RequestMethod": "GET", - "RequestHeaders": { - ":method": "GET", - "Accept": "application/json", - "Accept-Encoding": "gzip", - "Authorization": "Sanitized", - "User-Agent": "azsdk-go-azcertificates/v0.4.2 (go1.18; Windows_NT)" - }, - "RequestBody": null, - "StatusCode": 404, - "ResponseHeaders": { - "Cache-Control": "no-cache", - "Content-Length": "104", - "Content-Type": "application/json; charset=utf-8", - "Date": "Mon, 16 May 2022 18:12:34 GMT", - "Expires": "-1", - "Pragma": "no-cache", - "Strict-Transport-Security": "max-age=31536000;includeSubDomains", - "X-Content-Type-Options": "nosniff", - "x-ms-keyvault-network-info": "conn_type=Ipv4;addr=73.83.78.150;act_addr_fam=InterNetwork;", - "x-ms-keyvault-region": "westus2", - "x-ms-keyvault-service-version": "1.9.395.1", - "x-ms-request-id": "177a74de-d0b6-40c1-aa46-6897081c2fa9" - }, - "ResponseBody": { - "error": { - "code": "CertificateNotFound", - "message": "Deleted Certificate not found: listcerts32395596731" - } - } - }, - { - "RequestUri": "https://fakekvurl.vault.azure.net/deletedcertificates/listcerts32395596731?api-version=7.3", - "RequestMethod": "GET", - "RequestHeaders": { - ":method": "GET", - "Accept": "application/json", - "Accept-Encoding": "gzip", - "Authorization": "Sanitized", - "User-Agent": "azsdk-go-azcertificates/v0.4.2 (go1.18; Windows_NT)" - }, - "RequestBody": null, - "StatusCode": 404, - "ResponseHeaders": { - "Cache-Control": "no-cache", - "Content-Length": "104", - "Content-Type": "application/json; charset=utf-8", - "Date": "Mon, 16 May 2022 18:12:35 GMT", - "Expires": "-1", - "Pragma": "no-cache", - "Strict-Transport-Security": "max-age=31536000;includeSubDomains", - "X-Content-Type-Options": "nosniff", - "x-ms-keyvault-network-info": "conn_type=Ipv4;addr=73.83.78.150;act_addr_fam=InterNetwork;", - "x-ms-keyvault-region": "westus2", - "x-ms-keyvault-service-version": "1.9.395.1", - "x-ms-request-id": "d1face88-413f-4fb5-9abe-8cbd3b975dfb" - }, - "ResponseBody": { - "error": { - "code": "CertificateNotFound", - "message": "Deleted Certificate not found: listcerts32395596731" - } - } - }, - { - "RequestUri": "https://fakekvurl.vault.azure.net/deletedcertificates/listcerts32395596731?api-version=7.3", - "RequestMethod": "GET", - "RequestHeaders": { - ":method": "GET", - "Accept": "application/json", - "Accept-Encoding": "gzip", - "Authorization": "Sanitized", - "User-Agent": "azsdk-go-azcertificates/v0.4.2 (go1.18; Windows_NT)" - }, - "RequestBody": null, - "StatusCode": 404, - "ResponseHeaders": { - "Cache-Control": "no-cache", - "Content-Length": "104", - "Content-Type": "application/json; charset=utf-8", - "Date": "Mon, 16 May 2022 18:12:36 GMT", - "Expires": "-1", - "Pragma": "no-cache", - "Strict-Transport-Security": "max-age=31536000;includeSubDomains", - "X-Content-Type-Options": "nosniff", - "x-ms-keyvault-network-info": "conn_type=Ipv4;addr=73.83.78.150;act_addr_fam=InterNetwork;", - "x-ms-keyvault-region": "westus2", - "x-ms-keyvault-service-version": "1.9.395.1", - "x-ms-request-id": "6cfde4e1-868e-4145-baf4-42dc3837ce4b" - }, - "ResponseBody": { - "error": { - "code": "CertificateNotFound", - "message": "Deleted Certificate not found: listcerts32395596731" - } - } - }, - { - "RequestUri": "https://fakekvurl.vault.azure.net/deletedcertificates/listcerts32395596731?api-version=7.3", - "RequestMethod": "GET", - "RequestHeaders": { - ":method": "GET", - "Accept": "application/json", - "Accept-Encoding": "gzip", - "Authorization": "Sanitized", - "User-Agent": "azsdk-go-azcertificates/v0.4.2 (go1.18; Windows_NT)" - }, - "RequestBody": null, - "StatusCode": 200, - "ResponseHeaders": { - "Cache-Control": "no-cache", - "Content-Length": "2508", - "Content-Type": "application/json; charset=utf-8", - "Date": "Mon, 16 May 2022 18:12:38 GMT", - "Expires": "-1", - "Pragma": "no-cache", - "Strict-Transport-Security": "max-age=31536000;includeSubDomains", - "X-Content-Type-Options": "nosniff", - "x-ms-keyvault-network-info": "conn_type=Ipv4;addr=73.83.78.150;act_addr_fam=InterNetwork;", - "x-ms-keyvault-region": "westus2", - "x-ms-keyvault-service-version": "1.9.395.1", - "x-ms-request-id": "f9305c69-efef-4940-ba7e-a58d20520b15" - }, - "ResponseBody": { - "recoveryId": "https://fakekvurl.vault.azure.net/deletedcertificates/listcerts32395596731", - "deletedDate": 1652724753, - "scheduledPurgeDate": 1653329553, - "id": "https://fakekvurl.vault.azure.net/certificates/listcerts32395596731/5e8698dd794a483091ae722eca17b499", - "kid": "https://fakekvurl.vault.azure.net/keys/listcerts32395596731/5e8698dd794a483091ae722eca17b499", - "sid": "https://fakekvurl.vault.azure.net/secrets/listcerts32395596731/5e8698dd794a483091ae722eca17b499", - "x5t": "LWvj7_9jrNIFM0Jal2XgVrDg5Es", - "cer": "MIIDNjCCAh6gAwIBAgIQexHfGuSmQWiFZZmM8ze8XTANBgkqhkiG9w0BAQsFADAYMRYwFAYDVQQDEw1EZWZhdWx0UG9saWN5MB4XDTIyMDUxNjE4MDIyOFoXDTIzMDUxNjE4MTIyOFowGDEWMBQGA1UEAxMNRGVmYXVsdFBvbGljeTCCASIwDQYJKoZIhvcNAQEBBQADggEPADCCAQoCggEBAMv5LDFSqhMe03ayJ\u002B/x5fkCcXTBBIk5SgkL2yypL\u002BryK0/TO7lXI9knNlD8JGc8s8f8Gmq/BW/I5ETI4LVv2M8VF4PJ6XK0KPkxPupHDrcXn8GQZcCiooG4waQX4dXr4m\u002BJ8VjYgvm5VxXaHlDB5kmkgD87\u002BgTgus6/Z\u002BHIvdru\u002BBiyBKdLlvBrDrDsG4Rlan1i4SI5B9Tn2XN3xaPd\u002BpRwlNq/zqJD2/dhBqkTNyCDYtE9p0W8iaSTda\u002B6W/DfK3cdo2ALH5O8tUHRqJczuMO4EnOffODXbFlTXMpW1PcODRK\u002Bd9ECuW2CQgeO/kY\u002BxpkJSE8lAn6KzmNuUjUd3rECAwEAAaN8MHowDgYDVR0PAQH/BAQDAgWgMAkGA1UdEwQCMAAwHQYDVR0lBBYwFAYIKwYBBQUHAwEGCCsGAQUFBwMCMB8GA1UdIwQYMBaAFDVem1u0fXM1p6swRm4AX8c4ORO1MB0GA1UdDgQWBBQ1XptbtH1zNaerMEZuAF/HODkTtTANBgkqhkiG9w0BAQsFAAOCAQEAeSOdsOX7Sxp261IX8QrB2uaLXgkwvDDpt3AyujYgJrZF9dIzGQo5CUAp8XR/btJ1ShNlLUblbnSEIpRfskWXXdcQXKSItpOU6vcGeFRUFo68RCBHihV/OQiwq4BG249nBVV6x\u002By7ny0SH5vCJwH/M7GeneqmlAuMMbcRpK\u002BmFot4lC1PVCtNnOPFQl5JCwhTOSYSB3oBQMcEJgSztmqQfQlImXwrqyYqwuW9WRVAqZz039LaYNovXMg/JAV4pV/H5LxZLUtszQv49MbFbYGsYF9\u002BKzADkceGtSaz7Ik0vFtYyMzamSMlVMWAGCZ3hNlxuq/ZfLEqkZRJdI6HN0FAHw==", - "attributes": { - "enabled": true, - "nbf": 1652724148, - "exp": 1684260748, - "created": 1652724748, - "updated": 1652724748, - "recoveryLevel": "CustomizedRecoverable\u002BPurgeable", - "recoverableDays": 7 - }, - "policy": { - "id": "https://fakekvurl.vault.azure.net/certificates/listcerts32395596731/policy", - "key_props": { - "exportable": true, - "kty": "RSA", - "key_size": 2048, - "reuse_key": false - }, - "secret_props": { - "contentType": "application/x-pkcs12" - }, - "x509_props": { - "subject": "CN=DefaultPolicy", - "sans": {}, - "ekus": [ - "1.3.6.1.5.5.7.3.1", - "1.3.6.1.5.5.7.3.2" - ], - "key_usage": [ - "digitalSignature", - "keyEncipherment" - ], - "validity_months": 12, - "basic_constraints": { - "ca": false - } - }, - "lifetime_actions": [ - { - "trigger": { - "lifetime_percentage": 80 - }, - "action": { - "action_type": "AutoRenew" - } - } - ], - "issuer": { - "name": "Self" - }, - "attributes": { - "enabled": true, - "created": 1652724743, - "updated": 1652724743 - } - }, - "pending": { - "id": "https://fakekvurl.vault.azure.net/certificates/listcerts32395596731/pending" - } - } - }, - { - "RequestUri": "https://fakekvurl.vault.azure.net/deletedcertificates/listcerts32395596731?api-version=7.3", - "RequestMethod": "DELETE", - "RequestHeaders": { - "Accept": "application/json", - "Accept-Encoding": "gzip", - "Authorization": "Sanitized", - "User-Agent": "azsdk-go-azcertificates/v0.4.2 (go1.18; Windows_NT)" - }, - "RequestBody": null, - "StatusCode": 204, - "ResponseHeaders": { - "Cache-Control": "no-cache", - "Date": "Mon, 16 May 2022 18:12:38 GMT", - "Expires": "-1", - "Pragma": "no-cache", - "Strict-Transport-Security": "max-age=31536000;includeSubDomains", - "X-Content-Type-Options": "nosniff", - "x-ms-keyvault-network-info": "conn_type=Ipv4;addr=73.83.78.150;act_addr_fam=InterNetwork;", - "x-ms-keyvault-region": "westus2", - "x-ms-keyvault-service-version": "1.9.395.1", - "x-ms-request-id": "cd31af50-7f2b-4037-8284-d57d0e40aedf" - }, - "ResponseBody": null - }, - { - "RequestUri": "https://fakekvurl.vault.azure.net/certificates/listcerts22395596731?api-version=7.3", - "RequestMethod": "DELETE", - "RequestHeaders": { - "Accept": "application/json", - "Accept-Encoding": "gzip", - "Authorization": "Sanitized", - "User-Agent": "azsdk-go-azcertificates/v0.4.2 (go1.18; Windows_NT)" - }, - "RequestBody": null, - "StatusCode": 200, - "ResponseHeaders": { - "Cache-Control": "no-cache", - "Content-Length": "2508", - "Content-Type": "application/json; charset=utf-8", - "Date": "Mon, 16 May 2022 18:12:38 GMT", - "Expires": "-1", - "Pragma": "no-cache", - "Strict-Transport-Security": "max-age=31536000;includeSubDomains", - "X-Content-Type-Options": "nosniff", - "x-ms-keyvault-network-info": "conn_type=Ipv4;addr=73.83.78.150;act_addr_fam=InterNetwork;", - "x-ms-keyvault-region": "westus2", - "x-ms-keyvault-service-version": "1.9.395.1", - "x-ms-request-id": "53161bd9-b4c0-4b0f-850c-da3741b215a3" - }, - "ResponseBody": { - "recoveryId": "https://fakekvurl.vault.azure.net/deletedcertificates/listcerts22395596731", - "deletedDate": 1652724758, - "scheduledPurgeDate": 1653329558, - "id": "https://fakekvurl.vault.azure.net/certificates/listcerts22395596731/951fcba76df5415782185202696ebea9", - "kid": "https://fakekvurl.vault.azure.net/keys/listcerts22395596731/951fcba76df5415782185202696ebea9", - "sid": "https://fakekvurl.vault.azure.net/secrets/listcerts22395596731/951fcba76df5415782185202696ebea9", - "x5t": "x6Oc_4shsgTRjjtXYiaIg4pKgyg", - "cer": "MIIDNjCCAh6gAwIBAgIQR/BU0et2QICTwFrHsqnxvDANBgkqhkiG9w0BAQsFADAYMRYwFAYDVQQDEw1EZWZhdWx0UG9saWN5MB4XDTIyMDUxNjE4MDIxOFoXDTIzMDUxNjE4MTIxOFowGDEWMBQGA1UEAxMNRGVmYXVsdFBvbGljeTCCASIwDQYJKoZIhvcNAQEBBQADggEPADCCAQoCggEBAOlVZn9kg9wbz/MgFRqnujaIP6/RkGYXfT/S2jVwyjbtV17g0o1QZV0GSpHeAAavgQ1bJAz6tYx4rvocSRko7YJR8pM\u002BmALON1y5sTVlur703cR7yeukkGYzUja/zcZtt02qld6qpLydzumSIg\u002BAJX8NtbgpBT5qXEyRwpmDAWuLZ3bScBeST2ONTbewztwSxt4QeXahMKa6E74d1/5x21ekZGQUgYuQIctvLB\u002BSwYWJF6\u002BchI/rUIyLtTqE6KpEyHx9agr56Bp\u002BC88JgH2C\u002BRmcJ9NMfUT5t3uusW3Gs/wOu1jWjRwL1sZMUQmOZECXY\u002BWFL2lGD0Vx2rTRXChMoY0CAwEAAaN8MHowDgYDVR0PAQH/BAQDAgWgMAkGA1UdEwQCMAAwHQYDVR0lBBYwFAYIKwYBBQUHAwEGCCsGAQUFBwMCMB8GA1UdIwQYMBaAFLGWrJDOeJWYKH7QNgai82MAFUxiMB0GA1UdDgQWBBSxlqyQzniVmCh\u002B0DYGovNjABVMYjANBgkqhkiG9w0BAQsFAAOCAQEAHesOT07G4h4kJEP5GNLdgR1Q40nXeOCByEXa06QZRnyD5QPlZiGH1kPrUxfx2i3B2kxc0xZPIGVM6GDJnwQJb7/O49Ii8tsSasy8l\u002BVc0LL5nIFXE4VbWrla54GdUGqqSpY0EN7hkKFSo64LNIt5YBxZuWLG4DzRmsiT7sYOcEfp/S8IOTBx29UTW5p1UbwJ4qUMLRapKH02DYgUIXJufhf5fucsE6RmPIdhfW/XH1KNZE8xE\u002BQlMnt2bEbovp5mLliW/dftWuymQbfAawpOfoY29kDCrXvMcPDAYL5TwO42Z7aB53Ow1KwiZjJoitOo6htc4MxlE2aU\u002BhWNGr9Sxw==", - "attributes": { - "enabled": true, - "nbf": 1652724138, - "exp": 1684260738, - "created": 1652724739, - "updated": 1652724739, - "recoveryLevel": "CustomizedRecoverable\u002BPurgeable", - "recoverableDays": 7 - }, - "policy": { - "id": "https://fakekvurl.vault.azure.net/certificates/listcerts22395596731/policy", - "key_props": { - "exportable": true, - "kty": "RSA", - "key_size": 2048, - "reuse_key": false - }, - "secret_props": { - "contentType": "application/x-pkcs12" - }, - "x509_props": { - "subject": "CN=DefaultPolicy", - "sans": {}, - "ekus": [ - "1.3.6.1.5.5.7.3.1", - "1.3.6.1.5.5.7.3.2" - ], - "key_usage": [ - "digitalSignature", - "keyEncipherment" - ], - "validity_months": 12, - "basic_constraints": { - "ca": false - } - }, - "lifetime_actions": [ - { - "trigger": { - "lifetime_percentage": 80 - }, - "action": { - "action_type": "AutoRenew" - } - } - ], - "issuer": { - "name": "Self" - }, - "attributes": { - "enabled": true, - "created": 1652724732, - "updated": 1652724732 - } - }, - "pending": { - "id": "https://fakekvurl.vault.azure.net/certificates/listcerts22395596731/pending" - } - } - }, - { - "RequestUri": "https://fakekvurl.vault.azure.net/deletedcertificates/listcerts22395596731?api-version=7.3", - "RequestMethod": "GET", - "RequestHeaders": { - ":method": "GET", - "Accept": "application/json", - "Accept-Encoding": "gzip", - "Authorization": "Sanitized", - "User-Agent": "azsdk-go-azcertificates/v0.4.2 (go1.18; Windows_NT)" - }, - "RequestBody": null, - "StatusCode": 404, - "ResponseHeaders": { - "Cache-Control": "no-cache", - "Content-Length": "104", - "Content-Type": "application/json; charset=utf-8", - "Date": "Mon, 16 May 2022 18:12:38 GMT", - "Expires": "-1", - "Pragma": "no-cache", - "Strict-Transport-Security": "max-age=31536000;includeSubDomains", - "X-Content-Type-Options": "nosniff", - "x-ms-keyvault-network-info": "conn_type=Ipv4;addr=73.83.78.150;act_addr_fam=InterNetwork;", - "x-ms-keyvault-region": "westus2", - "x-ms-keyvault-service-version": "1.9.395.1", - "x-ms-request-id": "dd9b1176-4613-4a82-a786-567c1c8c0622" - }, - "ResponseBody": { - "error": { - "code": "CertificateNotFound", - "message": "Deleted Certificate not found: listcerts22395596731" - } - } - }, - { - "RequestUri": "https://fakekvurl.vault.azure.net/deletedcertificates/listcerts22395596731?api-version=7.3", - "RequestMethod": "GET", - "RequestHeaders": { - ":method": "GET", - "Accept": "application/json", - "Accept-Encoding": "gzip", - "Authorization": "Sanitized", - "User-Agent": "azsdk-go-azcertificates/v0.4.2 (go1.18; Windows_NT)" - }, - "RequestBody": null, - "StatusCode": 404, - "ResponseHeaders": { - "Cache-Control": "no-cache", - "Content-Length": "104", - "Content-Type": "application/json; charset=utf-8", - "Date": "Mon, 16 May 2022 18:12:39 GMT", - "Expires": "-1", - "Pragma": "no-cache", - "Strict-Transport-Security": "max-age=31536000;includeSubDomains", - "X-Content-Type-Options": "nosniff", - "x-ms-keyvault-network-info": "conn_type=Ipv4;addr=73.83.78.150;act_addr_fam=InterNetwork;", - "x-ms-keyvault-region": "westus2", - "x-ms-keyvault-service-version": "1.9.395.1", - "x-ms-request-id": "511b8a10-4299-40a2-87fc-e88977a16829" - }, - "ResponseBody": { - "error": { - "code": "CertificateNotFound", - "message": "Deleted Certificate not found: listcerts22395596731" - } - } - }, - { - "RequestUri": "https://fakekvurl.vault.azure.net/deletedcertificates/listcerts22395596731?api-version=7.3", - "RequestMethod": "GET", - "RequestHeaders": { - ":method": "GET", - "Accept": "application/json", - "Accept-Encoding": "gzip", - "Authorization": "Sanitized", - "User-Agent": "azsdk-go-azcertificates/v0.4.2 (go1.18; Windows_NT)" - }, - "RequestBody": null, - "StatusCode": 404, - "ResponseHeaders": { - "Cache-Control": "no-cache", - "Content-Length": "104", - "Content-Type": "application/json; charset=utf-8", - "Date": "Mon, 16 May 2022 18:12:40 GMT", - "Expires": "-1", - "Pragma": "no-cache", - "Strict-Transport-Security": "max-age=31536000;includeSubDomains", - "X-Content-Type-Options": "nosniff", - "x-ms-keyvault-network-info": "conn_type=Ipv4;addr=73.83.78.150;act_addr_fam=InterNetwork;", - "x-ms-keyvault-region": "westus2", - "x-ms-keyvault-service-version": "1.9.395.1", - "x-ms-request-id": "9007063c-6dce-4819-abdb-cc57d80f7441" - }, - "ResponseBody": { - "error": { - "code": "CertificateNotFound", - "message": "Deleted Certificate not found: listcerts22395596731" - } - } - }, - { - "RequestUri": "https://fakekvurl.vault.azure.net/deletedcertificates/listcerts22395596731?api-version=7.3", - "RequestMethod": "GET", - "RequestHeaders": { - ":method": "GET", - "Accept": "application/json", - "Accept-Encoding": "gzip", - "Authorization": "Sanitized", - "User-Agent": "azsdk-go-azcertificates/v0.4.2 (go1.18; Windows_NT)" - }, - "RequestBody": null, - "StatusCode": 404, - "ResponseHeaders": { - "Cache-Control": "no-cache", - "Content-Length": "104", - "Content-Type": "application/json; charset=utf-8", - "Date": "Mon, 16 May 2022 18:12:41 GMT", - "Expires": "-1", - "Pragma": "no-cache", - "Strict-Transport-Security": "max-age=31536000;includeSubDomains", - "X-Content-Type-Options": "nosniff", - "x-ms-keyvault-network-info": "conn_type=Ipv4;addr=73.83.78.150;act_addr_fam=InterNetwork;", - "x-ms-keyvault-region": "westus2", - "x-ms-keyvault-service-version": "1.9.395.1", - "x-ms-request-id": "12845948-8bfd-4ab3-be66-6c860e77cd6b" - }, - "ResponseBody": { - "error": { - "code": "CertificateNotFound", - "message": "Deleted Certificate not found: listcerts22395596731" - } - } - }, - { - "RequestUri": "https://fakekvurl.vault.azure.net/deletedcertificates/listcerts22395596731?api-version=7.3", - "RequestMethod": "GET", - "RequestHeaders": { - ":method": "GET", - "Accept": "application/json", - "Accept-Encoding": "gzip", - "Authorization": "Sanitized", - "User-Agent": "azsdk-go-azcertificates/v0.4.2 (go1.18; Windows_NT)" - }, - "RequestBody": null, - "StatusCode": 404, - "ResponseHeaders": { - "Cache-Control": "no-cache", - "Content-Length": "104", - "Content-Type": "application/json; charset=utf-8", - "Date": "Mon, 16 May 2022 18:12:42 GMT", - "Expires": "-1", - "Pragma": "no-cache", - "Strict-Transport-Security": "max-age=31536000;includeSubDomains", - "X-Content-Type-Options": "nosniff", - "x-ms-keyvault-network-info": "conn_type=Ipv4;addr=73.83.78.150;act_addr_fam=InterNetwork;", - "x-ms-keyvault-region": "westus2", - "x-ms-keyvault-service-version": "1.9.395.1", - "x-ms-request-id": "9b828536-b3fc-4a11-a6db-1677f8d817b3" - }, - "ResponseBody": { - "error": { - "code": "CertificateNotFound", - "message": "Deleted Certificate not found: listcerts22395596731" - } - } - }, - { - "RequestUri": "https://fakekvurl.vault.azure.net/deletedcertificates/listcerts22395596731?api-version=7.3", - "RequestMethod": "GET", - "RequestHeaders": { - ":method": "GET", - "Accept": "application/json", - "Accept-Encoding": "gzip", - "Authorization": "Sanitized", - "User-Agent": "azsdk-go-azcertificates/v0.4.2 (go1.18; Windows_NT)" - }, - "RequestBody": null, - "StatusCode": 404, - "ResponseHeaders": { - "Cache-Control": "no-cache", - "Content-Length": "104", - "Content-Type": "application/json; charset=utf-8", - "Date": "Mon, 16 May 2022 18:12:43 GMT", - "Expires": "-1", - "Pragma": "no-cache", - "Strict-Transport-Security": "max-age=31536000;includeSubDomains", - "X-Content-Type-Options": "nosniff", - "x-ms-keyvault-network-info": "conn_type=Ipv4;addr=73.83.78.150;act_addr_fam=InterNetwork;", - "x-ms-keyvault-region": "westus2", - "x-ms-keyvault-service-version": "1.9.395.1", - "x-ms-request-id": "872b4ff2-8eba-45b8-bade-cdbc61f717c1" - }, - "ResponseBody": { - "error": { - "code": "CertificateNotFound", - "message": "Deleted Certificate not found: listcerts22395596731" - } - } - }, - { - "RequestUri": "https://fakekvurl.vault.azure.net/deletedcertificates/listcerts22395596731?api-version=7.3", - "RequestMethod": "GET", - "RequestHeaders": { - ":method": "GET", - "Accept": "application/json", - "Accept-Encoding": "gzip", - "Authorization": "Sanitized", - "User-Agent": "azsdk-go-azcertificates/v0.4.2 (go1.18; Windows_NT)" - }, - "RequestBody": null, - "StatusCode": 404, - "ResponseHeaders": { - "Cache-Control": "no-cache", - "Content-Length": "104", - "Content-Type": "application/json; charset=utf-8", - "Date": "Mon, 16 May 2022 18:12:44 GMT", - "Expires": "-1", - "Pragma": "no-cache", - "Strict-Transport-Security": "max-age=31536000;includeSubDomains", - "X-Content-Type-Options": "nosniff", - "x-ms-keyvault-network-info": "conn_type=Ipv4;addr=73.83.78.150;act_addr_fam=InterNetwork;", - "x-ms-keyvault-region": "westus2", - "x-ms-keyvault-service-version": "1.9.395.1", - "x-ms-request-id": "d8d9d79f-76cb-427c-a53d-e7c9c8f8910c" - }, - "ResponseBody": { - "error": { - "code": "CertificateNotFound", - "message": "Deleted Certificate not found: listcerts22395596731" - } - } - }, - { - "RequestUri": "https://fakekvurl.vault.azure.net/deletedcertificates/listcerts22395596731?api-version=7.3", - "RequestMethod": "GET", - "RequestHeaders": { - ":method": "GET", - "Accept": "application/json", - "Accept-Encoding": "gzip", - "Authorization": "Sanitized", - "User-Agent": "azsdk-go-azcertificates/v0.4.2 (go1.18; Windows_NT)" - }, - "RequestBody": null, - "StatusCode": 200, - "ResponseHeaders": { - "Cache-Control": "no-cache", - "Content-Length": "2508", - "Content-Type": "application/json; charset=utf-8", - "Date": "Mon, 16 May 2022 18:12:45 GMT", - "Expires": "-1", - "Pragma": "no-cache", - "Strict-Transport-Security": "max-age=31536000;includeSubDomains", - "X-Content-Type-Options": "nosniff", - "x-ms-keyvault-network-info": "conn_type=Ipv4;addr=73.83.78.150;act_addr_fam=InterNetwork;", - "x-ms-keyvault-region": "westus2", - "x-ms-keyvault-service-version": "1.9.395.1", - "x-ms-request-id": "90d457bd-20fa-453a-8b09-8da1e027043a" - }, - "ResponseBody": { - "recoveryId": "https://fakekvurl.vault.azure.net/deletedcertificates/listcerts22395596731", - "deletedDate": 1652724758, - "scheduledPurgeDate": 1653329558, - "id": "https://fakekvurl.vault.azure.net/certificates/listcerts22395596731/951fcba76df5415782185202696ebea9", - "kid": "https://fakekvurl.vault.azure.net/keys/listcerts22395596731/951fcba76df5415782185202696ebea9", - "sid": "https://fakekvurl.vault.azure.net/secrets/listcerts22395596731/951fcba76df5415782185202696ebea9", - "x5t": "x6Oc_4shsgTRjjtXYiaIg4pKgyg", - "cer": "MIIDNjCCAh6gAwIBAgIQR/BU0et2QICTwFrHsqnxvDANBgkqhkiG9w0BAQsFADAYMRYwFAYDVQQDEw1EZWZhdWx0UG9saWN5MB4XDTIyMDUxNjE4MDIxOFoXDTIzMDUxNjE4MTIxOFowGDEWMBQGA1UEAxMNRGVmYXVsdFBvbGljeTCCASIwDQYJKoZIhvcNAQEBBQADggEPADCCAQoCggEBAOlVZn9kg9wbz/MgFRqnujaIP6/RkGYXfT/S2jVwyjbtV17g0o1QZV0GSpHeAAavgQ1bJAz6tYx4rvocSRko7YJR8pM\u002BmALON1y5sTVlur703cR7yeukkGYzUja/zcZtt02qld6qpLydzumSIg\u002BAJX8NtbgpBT5qXEyRwpmDAWuLZ3bScBeST2ONTbewztwSxt4QeXahMKa6E74d1/5x21ekZGQUgYuQIctvLB\u002BSwYWJF6\u002BchI/rUIyLtTqE6KpEyHx9agr56Bp\u002BC88JgH2C\u002BRmcJ9NMfUT5t3uusW3Gs/wOu1jWjRwL1sZMUQmOZECXY\u002BWFL2lGD0Vx2rTRXChMoY0CAwEAAaN8MHowDgYDVR0PAQH/BAQDAgWgMAkGA1UdEwQCMAAwHQYDVR0lBBYwFAYIKwYBBQUHAwEGCCsGAQUFBwMCMB8GA1UdIwQYMBaAFLGWrJDOeJWYKH7QNgai82MAFUxiMB0GA1UdDgQWBBSxlqyQzniVmCh\u002B0DYGovNjABVMYjANBgkqhkiG9w0BAQsFAAOCAQEAHesOT07G4h4kJEP5GNLdgR1Q40nXeOCByEXa06QZRnyD5QPlZiGH1kPrUxfx2i3B2kxc0xZPIGVM6GDJnwQJb7/O49Ii8tsSasy8l\u002BVc0LL5nIFXE4VbWrla54GdUGqqSpY0EN7hkKFSo64LNIt5YBxZuWLG4DzRmsiT7sYOcEfp/S8IOTBx29UTW5p1UbwJ4qUMLRapKH02DYgUIXJufhf5fucsE6RmPIdhfW/XH1KNZE8xE\u002BQlMnt2bEbovp5mLliW/dftWuymQbfAawpOfoY29kDCrXvMcPDAYL5TwO42Z7aB53Ow1KwiZjJoitOo6htc4MxlE2aU\u002BhWNGr9Sxw==", - "attributes": { - "enabled": true, - "nbf": 1652724138, - "exp": 1684260738, - "created": 1652724739, - "updated": 1652724739, - "recoveryLevel": "CustomizedRecoverable\u002BPurgeable", - "recoverableDays": 7 - }, - "policy": { - "id": "https://fakekvurl.vault.azure.net/certificates/listcerts22395596731/policy", - "key_props": { - "exportable": true, - "kty": "RSA", - "key_size": 2048, - "reuse_key": false - }, - "secret_props": { - "contentType": "application/x-pkcs12" - }, - "x509_props": { - "subject": "CN=DefaultPolicy", - "sans": {}, - "ekus": [ - "1.3.6.1.5.5.7.3.1", - "1.3.6.1.5.5.7.3.2" - ], - "key_usage": [ - "digitalSignature", - "keyEncipherment" - ], - "validity_months": 12, - "basic_constraints": { - "ca": false - } - }, - "lifetime_actions": [ - { - "trigger": { - "lifetime_percentage": 80 - }, - "action": { - "action_type": "AutoRenew" - } - } - ], - "issuer": { - "name": "Self" - }, - "attributes": { - "enabled": true, - "created": 1652724732, - "updated": 1652724732 - } - }, - "pending": { - "id": "https://fakekvurl.vault.azure.net/certificates/listcerts22395596731/pending" - } - } - }, - { - "RequestUri": "https://fakekvurl.vault.azure.net/deletedcertificates/listcerts22395596731?api-version=7.3", - "RequestMethod": "DELETE", - "RequestHeaders": { - "Accept": "application/json", - "Accept-Encoding": "gzip", - "Authorization": "Sanitized", - "User-Agent": "azsdk-go-azcertificates/v0.4.2 (go1.18; Windows_NT)" - }, - "RequestBody": null, - "StatusCode": 204, - "ResponseHeaders": { - "Cache-Control": "no-cache", - "Date": "Mon, 16 May 2022 18:12:45 GMT", - "Expires": "-1", - "Pragma": "no-cache", - "Strict-Transport-Security": "max-age=31536000;includeSubDomains", - "X-Content-Type-Options": "nosniff", - "x-ms-keyvault-network-info": "conn_type=Ipv4;addr=73.83.78.150;act_addr_fam=InterNetwork;", - "x-ms-keyvault-region": "westus2", - "x-ms-keyvault-service-version": "1.9.395.1", - "x-ms-request-id": "955e1e96-8cc7-4360-b59b-46e1e354e306" - }, - "ResponseBody": null - }, - { - "RequestUri": "https://fakekvurl.vault.azure.net/certificates/listcerts12395596731?api-version=7.3", - "RequestMethod": "DELETE", - "RequestHeaders": { - "Accept": "application/json", - "Accept-Encoding": "gzip", - "Authorization": "Sanitized", - "User-Agent": "azsdk-go-azcertificates/v0.4.2 (go1.18; Windows_NT)" - }, - "RequestBody": null, - "StatusCode": 200, - "ResponseHeaders": { - "Cache-Control": "no-cache", - "Content-Length": "2508", - "Content-Type": "application/json; charset=utf-8", - "Date": "Mon, 16 May 2022 18:12:45 GMT", - "Expires": "-1", - "Pragma": "no-cache", - "Strict-Transport-Security": "max-age=31536000;includeSubDomains", - "X-Content-Type-Options": "nosniff", - "x-ms-keyvault-network-info": "conn_type=Ipv4;addr=73.83.78.150;act_addr_fam=InterNetwork;", - "x-ms-keyvault-region": "westus2", - "x-ms-keyvault-service-version": "1.9.395.1", - "x-ms-request-id": "3f683f31-fb93-4318-bcab-a96fc00b4127" - }, - "ResponseBody": { - "recoveryId": "https://fakekvurl.vault.azure.net/deletedcertificates/listcerts12395596731", - "deletedDate": 1652724766, - "scheduledPurgeDate": 1653329566, - "id": "https://fakekvurl.vault.azure.net/certificates/listcerts12395596731/cf825c5d16214b0aa79d48606ed8e2db", - "kid": "https://fakekvurl.vault.azure.net/keys/listcerts12395596731/cf825c5d16214b0aa79d48606ed8e2db", - "sid": "https://fakekvurl.vault.azure.net/secrets/listcerts12395596731/cf825c5d16214b0aa79d48606ed8e2db", - "x5t": "dLpRMeFiR0xaHi_IAu4HwMBPvuY", - "cer": "MIIDNjCCAh6gAwIBAgIQPFNiRFUIT92AMy90BI962DANBgkqhkiG9w0BAQsFADAYMRYwFAYDVQQDEw1EZWZhdWx0UG9saWN5MB4XDTIyMDUxNjE4MDIwNloXDTIzMDUxNjE4MTIwNlowGDEWMBQGA1UEAxMNRGVmYXVsdFBvbGljeTCCASIwDQYJKoZIhvcNAQEBBQADggEPADCCAQoCggEBALQMtZWsCJgerrscZz3thzOCdcGcBPVdPSkgjMnkK35E6YLERlXrb9Hx25Ab19AcYKbA3qeEWUL3ZQTuHvKyE2RJo5pUHCrHPTl5joUi6bez\u002BDiqIIQZYfHQXK9lHXouriLa5pNpU6TljlUc\u002BdsFn/5E1uz4qGxKlG4\u002B2STHZhcUMuSX006uBd77ugH1ns5HeifIkK14TJkEPCVlBx6m8p/98Xbnf/7Z4BmlRbHkn50qhuOL0QBGdex5hMZciQcTzhTO6Gn3V/LcCZzPkMWa9CzJhvNjqwa43jMtIaL3l/2TKiAl\u002Bwc73/4Yf\u002BlX20S8hJycc/U\u002Bnkj6AHu3aIw9xJkCAwEAAaN8MHowDgYDVR0PAQH/BAQDAgWgMAkGA1UdEwQCMAAwHQYDVR0lBBYwFAYIKwYBBQUHAwEGCCsGAQUFBwMCMB8GA1UdIwQYMBaAFExc5INbmC9z0ydSHgpRjqpjomY/MB0GA1UdDgQWBBRMXOSDW5gvc9MnUh4KUY6qY6JmPzANBgkqhkiG9w0BAQsFAAOCAQEAmlGqnWmfXZsW3whYUTfR4iPPPHXy7vJHPHzgsAZDcZDObmwXcjAcDXaX7g8T10JxDQdQBLqY63YcrMrVqTjLbOewSSi8Ez1C8thlOrizQ0vuXyEkCjifDY1ObvCVxgB0GVRD7pz9yrivHlxgrl4XE/EkT40AIpSAYvG4hKxVlFflge34TQF8DShFurg6JjyaSJkVSwxwrgPXfe2jsVDBvHVJ97OsNYSh\u002BWQDjeRc4oBQcevIgdOzY5IfkbvhEFT19FDpj/MpyTStkYtvrbmYD0j6DPjNftrRa/S4pqXPPyyevp3Sp\u002BUQDMpJZF0brOc7KDxmsnGIu9fqlQQd9EUcPA==", - "attributes": { - "enabled": true, - "nbf": 1652724126, - "exp": 1684260726, - "created": 1652724726, - "updated": 1652724726, - "recoveryLevel": "CustomizedRecoverable\u002BPurgeable", - "recoverableDays": 7 - }, - "policy": { - "id": "https://fakekvurl.vault.azure.net/certificates/listcerts12395596731/policy", - "key_props": { - "exportable": true, - "kty": "RSA", - "key_size": 2048, - "reuse_key": false - }, - "secret_props": { - "contentType": "application/x-pkcs12" - }, - "x509_props": { - "subject": "CN=DefaultPolicy", - "sans": {}, - "ekus": [ - "1.3.6.1.5.5.7.3.1", - "1.3.6.1.5.5.7.3.2" - ], - "key_usage": [ - "digitalSignature", - "keyEncipherment" - ], - "validity_months": 12, - "basic_constraints": { - "ca": false - } - }, - "lifetime_actions": [ - { - "trigger": { - "lifetime_percentage": 80 - }, - "action": { - "action_type": "AutoRenew" - } - } - ], - "issuer": { - "name": "Self" - }, - "attributes": { - "enabled": true, - "created": 1652724721, - "updated": 1652724721 - } - }, - "pending": { - "id": "https://fakekvurl.vault.azure.net/certificates/listcerts12395596731/pending" - } - } - }, - { - "RequestUri": "https://fakekvurl.vault.azure.net/deletedcertificates/listcerts12395596731?api-version=7.3", - "RequestMethod": "GET", - "RequestHeaders": { - ":method": "GET", - "Accept": "application/json", - "Accept-Encoding": "gzip", - "Authorization": "Sanitized", - "User-Agent": "azsdk-go-azcertificates/v0.4.2 (go1.18; Windows_NT)" - }, - "RequestBody": null, - "StatusCode": 404, - "ResponseHeaders": { - "Cache-Control": "no-cache", - "Content-Length": "104", - "Content-Type": "application/json; charset=utf-8", - "Date": "Mon, 16 May 2022 18:12:46 GMT", - "Expires": "-1", - "Pragma": "no-cache", - "Strict-Transport-Security": "max-age=31536000;includeSubDomains", - "X-Content-Type-Options": "nosniff", - "x-ms-keyvault-network-info": "conn_type=Ipv4;addr=73.83.78.150;act_addr_fam=InterNetwork;", - "x-ms-keyvault-region": "westus2", - "x-ms-keyvault-service-version": "1.9.395.1", - "x-ms-request-id": "d666b216-9805-4edd-bdf9-a0f0920ec4ce" - }, - "ResponseBody": { - "error": { - "code": "CertificateNotFound", - "message": "Deleted Certificate not found: listcerts12395596731" - } - } - }, - { - "RequestUri": "https://fakekvurl.vault.azure.net/deletedcertificates/listcerts12395596731?api-version=7.3", - "RequestMethod": "GET", - "RequestHeaders": { - ":method": "GET", - "Accept": "application/json", - "Accept-Encoding": "gzip", - "Authorization": "Sanitized", - "User-Agent": "azsdk-go-azcertificates/v0.4.2 (go1.18; Windows_NT)" - }, - "RequestBody": null, - "StatusCode": 404, - "ResponseHeaders": { - "Cache-Control": "no-cache", - "Content-Length": "104", - "Content-Type": "application/json; charset=utf-8", - "Date": "Mon, 16 May 2022 18:12:47 GMT", - "Expires": "-1", - "Pragma": "no-cache", - "Strict-Transport-Security": "max-age=31536000;includeSubDomains", - "X-Content-Type-Options": "nosniff", - "x-ms-keyvault-network-info": "conn_type=Ipv4;addr=73.83.78.150;act_addr_fam=InterNetwork;", - "x-ms-keyvault-region": "westus2", - "x-ms-keyvault-service-version": "1.9.395.1", - "x-ms-request-id": "8b8811ce-d877-4bd0-a39e-c0a9aacfa241" - }, - "ResponseBody": { - "error": { - "code": "CertificateNotFound", - "message": "Deleted Certificate not found: listcerts12395596731" - } - } - }, - { - "RequestUri": "https://fakekvurl.vault.azure.net/deletedcertificates/listcerts12395596731?api-version=7.3", - "RequestMethod": "GET", - "RequestHeaders": { - ":method": "GET", - "Accept": "application/json", - "Accept-Encoding": "gzip", - "Authorization": "Sanitized", - "User-Agent": "azsdk-go-azcertificates/v0.4.2 (go1.18; Windows_NT)" - }, - "RequestBody": null, - "StatusCode": 404, - "ResponseHeaders": { - "Cache-Control": "no-cache", - "Content-Length": "104", - "Content-Type": "application/json; charset=utf-8", - "Date": "Mon, 16 May 2022 18:12:48 GMT", - "Expires": "-1", - "Pragma": "no-cache", - "Strict-Transport-Security": "max-age=31536000;includeSubDomains", - "X-Content-Type-Options": "nosniff", - "x-ms-keyvault-network-info": "conn_type=Ipv4;addr=73.83.78.150;act_addr_fam=InterNetwork;", - "x-ms-keyvault-region": "westus2", - "x-ms-keyvault-service-version": "1.9.395.1", - "x-ms-request-id": "81888886-b2f1-49e4-b21d-792c37ea9cf4" - }, - "ResponseBody": { - "error": { - "code": "CertificateNotFound", - "message": "Deleted Certificate not found: listcerts12395596731" - } - } - }, - { - "RequestUri": "https://fakekvurl.vault.azure.net/deletedcertificates/listcerts12395596731?api-version=7.3", - "RequestMethod": "GET", - "RequestHeaders": { - ":method": "GET", - "Accept": "application/json", - "Accept-Encoding": "gzip", - "Authorization": "Sanitized", - "User-Agent": "azsdk-go-azcertificates/v0.4.2 (go1.18; Windows_NT)" - }, - "RequestBody": null, - "StatusCode": 404, - "ResponseHeaders": { - "Cache-Control": "no-cache", - "Content-Length": "104", - "Content-Type": "application/json; charset=utf-8", - "Date": "Mon, 16 May 2022 18:12:49 GMT", - "Expires": "-1", - "Pragma": "no-cache", - "Strict-Transport-Security": "max-age=31536000;includeSubDomains", - "X-Content-Type-Options": "nosniff", - "x-ms-keyvault-network-info": "conn_type=Ipv4;addr=73.83.78.150;act_addr_fam=InterNetwork;", - "x-ms-keyvault-region": "westus2", - "x-ms-keyvault-service-version": "1.9.395.1", - "x-ms-request-id": "3b60e4d8-4fad-4d4f-a49c-39f7c7f2f1bb" - }, - "ResponseBody": { - "error": { - "code": "CertificateNotFound", - "message": "Deleted Certificate not found: listcerts12395596731" - } - } - }, - { - "RequestUri": "https://fakekvurl.vault.azure.net/deletedcertificates/listcerts12395596731?api-version=7.3", - "RequestMethod": "GET", - "RequestHeaders": { - ":method": "GET", - "Accept": "application/json", - "Accept-Encoding": "gzip", - "Authorization": "Sanitized", - "User-Agent": "azsdk-go-azcertificates/v0.4.2 (go1.18; Windows_NT)" - }, - "RequestBody": null, - "StatusCode": 404, - "ResponseHeaders": { - "Cache-Control": "no-cache", - "Content-Length": "104", - "Content-Type": "application/json; charset=utf-8", - "Date": "Mon, 16 May 2022 18:12:50 GMT", - "Expires": "-1", - "Pragma": "no-cache", - "Strict-Transport-Security": "max-age=31536000;includeSubDomains", - "X-Content-Type-Options": "nosniff", - "x-ms-keyvault-network-info": "conn_type=Ipv4;addr=73.83.78.150;act_addr_fam=InterNetwork;", - "x-ms-keyvault-region": "westus2", - "x-ms-keyvault-service-version": "1.9.395.1", - "x-ms-request-id": "bff208ff-9823-4bd6-82de-b9756dc29930" - }, - "ResponseBody": { - "error": { - "code": "CertificateNotFound", - "message": "Deleted Certificate not found: listcerts12395596731" - } - } - }, - { - "RequestUri": "https://fakekvurl.vault.azure.net/deletedcertificates/listcerts12395596731?api-version=7.3", - "RequestMethod": "GET", - "RequestHeaders": { - ":method": "GET", - "Accept": "application/json", - "Accept-Encoding": "gzip", - "Authorization": "Sanitized", - "User-Agent": "azsdk-go-azcertificates/v0.4.2 (go1.18; Windows_NT)" - }, - "RequestBody": null, - "StatusCode": 404, - "ResponseHeaders": { - "Cache-Control": "no-cache", - "Content-Length": "104", - "Content-Type": "application/json; charset=utf-8", - "Date": "Mon, 16 May 2022 18:12:51 GMT", - "Expires": "-1", - "Pragma": "no-cache", - "Strict-Transport-Security": "max-age=31536000;includeSubDomains", - "X-Content-Type-Options": "nosniff", - "x-ms-keyvault-network-info": "conn_type=Ipv4;addr=73.83.78.150;act_addr_fam=InterNetwork;", - "x-ms-keyvault-region": "westus2", - "x-ms-keyvault-service-version": "1.9.395.1", - "x-ms-request-id": "db1412f5-2c9f-4af9-9205-4917cb361cf8" - }, - "ResponseBody": { - "error": { - "code": "CertificateNotFound", - "message": "Deleted Certificate not found: listcerts12395596731" - } - } - }, - { - "RequestUri": "https://fakekvurl.vault.azure.net/deletedcertificates/listcerts12395596731?api-version=7.3", - "RequestMethod": "GET", - "RequestHeaders": { - ":method": "GET", - "Accept": "application/json", - "Accept-Encoding": "gzip", - "Authorization": "Sanitized", - "User-Agent": "azsdk-go-azcertificates/v0.4.2 (go1.18; Windows_NT)" - }, - "RequestBody": null, - "StatusCode": 404, - "ResponseHeaders": { - "Cache-Control": "no-cache", - "Content-Length": "104", - "Content-Type": "application/json; charset=utf-8", - "Date": "Mon, 16 May 2022 18:12:52 GMT", - "Expires": "-1", - "Pragma": "no-cache", - "Strict-Transport-Security": "max-age=31536000;includeSubDomains", - "X-Content-Type-Options": "nosniff", - "x-ms-keyvault-network-info": "conn_type=Ipv4;addr=73.83.78.150;act_addr_fam=InterNetwork;", - "x-ms-keyvault-region": "westus2", - "x-ms-keyvault-service-version": "1.9.395.1", - "x-ms-request-id": "5c830201-f2ac-4cf9-9648-3887fd1fd3b7" - }, - "ResponseBody": { - "error": { - "code": "CertificateNotFound", - "message": "Deleted Certificate not found: listcerts12395596731" - } - } - }, - { - "RequestUri": "https://fakekvurl.vault.azure.net/deletedcertificates/listcerts12395596731?api-version=7.3", - "RequestMethod": "GET", - "RequestHeaders": { - ":method": "GET", - "Accept": "application/json", - "Accept-Encoding": "gzip", - "Authorization": "Sanitized", - "User-Agent": "azsdk-go-azcertificates/v0.4.2 (go1.18; Windows_NT)" - }, - "RequestBody": null, - "StatusCode": 404, - "ResponseHeaders": { - "Cache-Control": "no-cache", - "Content-Length": "104", - "Content-Type": "application/json; charset=utf-8", - "Date": "Mon, 16 May 2022 18:12:53 GMT", - "Expires": "-1", - "Pragma": "no-cache", - "Strict-Transport-Security": "max-age=31536000;includeSubDomains", - "X-Content-Type-Options": "nosniff", - "x-ms-keyvault-network-info": "conn_type=Ipv4;addr=73.83.78.150;act_addr_fam=InterNetwork;", - "x-ms-keyvault-region": "westus2", - "x-ms-keyvault-service-version": "1.9.395.1", - "x-ms-request-id": "e635c4ca-65f3-4053-9fa5-1422ba601269" - }, - "ResponseBody": { - "error": { - "code": "CertificateNotFound", - "message": "Deleted Certificate not found: listcerts12395596731" - } - } - }, - { - "RequestUri": "https://fakekvurl.vault.azure.net/deletedcertificates/listcerts12395596731?api-version=7.3", - "RequestMethod": "GET", - "RequestHeaders": { - ":method": "GET", - "Accept": "application/json", - "Accept-Encoding": "gzip", - "Authorization": "Sanitized", - "User-Agent": "azsdk-go-azcertificates/v0.4.2 (go1.18; Windows_NT)" - }, - "RequestBody": null, - "StatusCode": 404, - "ResponseHeaders": { - "Cache-Control": "no-cache", - "Content-Length": "104", - "Content-Type": "application/json; charset=utf-8", - "Date": "Mon, 16 May 2022 18:12:54 GMT", - "Expires": "-1", - "Pragma": "no-cache", - "Strict-Transport-Security": "max-age=31536000;includeSubDomains", - "X-Content-Type-Options": "nosniff", - "x-ms-keyvault-network-info": "conn_type=Ipv4;addr=73.83.78.150;act_addr_fam=InterNetwork;", - "x-ms-keyvault-region": "westus2", - "x-ms-keyvault-service-version": "1.9.395.1", - "x-ms-request-id": "bf1c7f2b-004f-46a2-b97d-67e7eab100c0" - }, - "ResponseBody": { - "error": { - "code": "CertificateNotFound", - "message": "Deleted Certificate not found: listcerts12395596731" - } - } - }, - { - "RequestUri": "https://fakekvurl.vault.azure.net/deletedcertificates/listcerts12395596731?api-version=7.3", - "RequestMethod": "GET", - "RequestHeaders": { - ":method": "GET", - "Accept": "application/json", - "Accept-Encoding": "gzip", - "Authorization": "Sanitized", - "User-Agent": "azsdk-go-azcertificates/v0.4.2 (go1.18; Windows_NT)" - }, - "RequestBody": null, - "StatusCode": 200, - "ResponseHeaders": { - "Cache-Control": "no-cache", - "Content-Length": "2508", - "Content-Type": "application/json; charset=utf-8", - "Date": "Mon, 16 May 2022 18:12:55 GMT", - "Expires": "-1", - "Pragma": "no-cache", - "Strict-Transport-Security": "max-age=31536000;includeSubDomains", - "X-Content-Type-Options": "nosniff", - "x-ms-keyvault-network-info": "conn_type=Ipv4;addr=73.83.78.150;act_addr_fam=InterNetwork;", - "x-ms-keyvault-region": "westus2", - "x-ms-keyvault-service-version": "1.9.395.1", - "x-ms-request-id": "791a7934-c8ee-40a2-8aeb-38f16ff2d580" - }, - "ResponseBody": { - "recoveryId": "https://fakekvurl.vault.azure.net/deletedcertificates/listcerts12395596731", - "deletedDate": 1652724766, - "scheduledPurgeDate": 1653329566, - "id": "https://fakekvurl.vault.azure.net/certificates/listcerts12395596731/cf825c5d16214b0aa79d48606ed8e2db", - "kid": "https://fakekvurl.vault.azure.net/keys/listcerts12395596731/cf825c5d16214b0aa79d48606ed8e2db", - "sid": "https://fakekvurl.vault.azure.net/secrets/listcerts12395596731/cf825c5d16214b0aa79d48606ed8e2db", - "x5t": "dLpRMeFiR0xaHi_IAu4HwMBPvuY", - "cer": "MIIDNjCCAh6gAwIBAgIQPFNiRFUIT92AMy90BI962DANBgkqhkiG9w0BAQsFADAYMRYwFAYDVQQDEw1EZWZhdWx0UG9saWN5MB4XDTIyMDUxNjE4MDIwNloXDTIzMDUxNjE4MTIwNlowGDEWMBQGA1UEAxMNRGVmYXVsdFBvbGljeTCCASIwDQYJKoZIhvcNAQEBBQADggEPADCCAQoCggEBALQMtZWsCJgerrscZz3thzOCdcGcBPVdPSkgjMnkK35E6YLERlXrb9Hx25Ab19AcYKbA3qeEWUL3ZQTuHvKyE2RJo5pUHCrHPTl5joUi6bez\u002BDiqIIQZYfHQXK9lHXouriLa5pNpU6TljlUc\u002BdsFn/5E1uz4qGxKlG4\u002B2STHZhcUMuSX006uBd77ugH1ns5HeifIkK14TJkEPCVlBx6m8p/98Xbnf/7Z4BmlRbHkn50qhuOL0QBGdex5hMZciQcTzhTO6Gn3V/LcCZzPkMWa9CzJhvNjqwa43jMtIaL3l/2TKiAl\u002Bwc73/4Yf\u002BlX20S8hJycc/U\u002Bnkj6AHu3aIw9xJkCAwEAAaN8MHowDgYDVR0PAQH/BAQDAgWgMAkGA1UdEwQCMAAwHQYDVR0lBBYwFAYIKwYBBQUHAwEGCCsGAQUFBwMCMB8GA1UdIwQYMBaAFExc5INbmC9z0ydSHgpRjqpjomY/MB0GA1UdDgQWBBRMXOSDW5gvc9MnUh4KUY6qY6JmPzANBgkqhkiG9w0BAQsFAAOCAQEAmlGqnWmfXZsW3whYUTfR4iPPPHXy7vJHPHzgsAZDcZDObmwXcjAcDXaX7g8T10JxDQdQBLqY63YcrMrVqTjLbOewSSi8Ez1C8thlOrizQ0vuXyEkCjifDY1ObvCVxgB0GVRD7pz9yrivHlxgrl4XE/EkT40AIpSAYvG4hKxVlFflge34TQF8DShFurg6JjyaSJkVSwxwrgPXfe2jsVDBvHVJ97OsNYSh\u002BWQDjeRc4oBQcevIgdOzY5IfkbvhEFT19FDpj/MpyTStkYtvrbmYD0j6DPjNftrRa/S4pqXPPyyevp3Sp\u002BUQDMpJZF0brOc7KDxmsnGIu9fqlQQd9EUcPA==", - "attributes": { - "enabled": true, - "nbf": 1652724126, - "exp": 1684260726, - "created": 1652724726, - "updated": 1652724726, - "recoveryLevel": "CustomizedRecoverable\u002BPurgeable", - "recoverableDays": 7 - }, - "policy": { - "id": "https://fakekvurl.vault.azure.net/certificates/listcerts12395596731/policy", - "key_props": { - "exportable": true, - "kty": "RSA", - "key_size": 2048, - "reuse_key": false - }, - "secret_props": { - "contentType": "application/x-pkcs12" - }, - "x509_props": { - "subject": "CN=DefaultPolicy", - "sans": {}, - "ekus": [ - "1.3.6.1.5.5.7.3.1", - "1.3.6.1.5.5.7.3.2" - ], - "key_usage": [ - "digitalSignature", - "keyEncipherment" - ], - "validity_months": 12, - "basic_constraints": { - "ca": false - } - }, - "lifetime_actions": [ - { - "trigger": { - "lifetime_percentage": 80 - }, - "action": { - "action_type": "AutoRenew" - } - } - ], - "issuer": { - "name": "Self" - }, - "attributes": { - "enabled": true, - "created": 1652724721, - "updated": 1652724721 - } - }, - "pending": { - "id": "https://fakekvurl.vault.azure.net/certificates/listcerts12395596731/pending" - } - } - }, - { - "RequestUri": "https://fakekvurl.vault.azure.net/deletedcertificates/listcerts12395596731?api-version=7.3", - "RequestMethod": "DELETE", - "RequestHeaders": { - "Accept": "application/json", - "Accept-Encoding": "gzip", - "Authorization": "Sanitized", - "User-Agent": "azsdk-go-azcertificates/v0.4.2 (go1.18; Windows_NT)" - }, - "RequestBody": null, - "StatusCode": 204, - "ResponseHeaders": { - "Cache-Control": "no-cache", - "Date": "Mon, 16 May 2022 18:12:55 GMT", - "Expires": "-1", - "Pragma": "no-cache", - "Strict-Transport-Security": "max-age=31536000;includeSubDomains", - "X-Content-Type-Options": "nosniff", - "x-ms-keyvault-network-info": "conn_type=Ipv4;addr=73.83.78.150;act_addr_fam=InterNetwork;", - "x-ms-keyvault-region": "westus2", - "x-ms-keyvault-service-version": "1.9.395.1", - "x-ms-request-id": "a912ceeb-6a56-4d33-aba1-55377fed1cf5" - }, - "ResponseBody": null - }, - { - "RequestUri": "https://fakekvurl.vault.azure.net/certificates/listcerts02395596731?api-version=7.3", - "RequestMethod": "DELETE", - "RequestHeaders": { - "Accept": "application/json", - "Accept-Encoding": "gzip", - "Authorization": "Sanitized", - "User-Agent": "azsdk-go-azcertificates/v0.4.2 (go1.18; Windows_NT)" - }, - "RequestBody": null, - "StatusCode": 200, - "ResponseHeaders": { - "Cache-Control": "no-cache", - "Content-Length": "2508", - "Content-Type": "application/json; charset=utf-8", - "Date": "Mon, 16 May 2022 18:12:55 GMT", - "Expires": "-1", - "Pragma": "no-cache", - "Strict-Transport-Security": "max-age=31536000;includeSubDomains", - "X-Content-Type-Options": "nosniff", - "x-ms-keyvault-network-info": "conn_type=Ipv4;addr=73.83.78.150;act_addr_fam=InterNetwork;", - "x-ms-keyvault-region": "westus2", - "x-ms-keyvault-service-version": "1.9.395.1", - "x-ms-request-id": "8ada59c9-dec7-4f4e-a086-933a0c90925c" - }, - "ResponseBody": { - "recoveryId": "https://fakekvurl.vault.azure.net/deletedcertificates/listcerts02395596731", - "deletedDate": 1652724775, - "scheduledPurgeDate": 1653329575, - "id": "https://fakekvurl.vault.azure.net/certificates/listcerts02395596731/5768454f39bb4b02b2ddd2d122de4dff", - "kid": "https://fakekvurl.vault.azure.net/keys/listcerts02395596731/5768454f39bb4b02b2ddd2d122de4dff", - "sid": "https://fakekvurl.vault.azure.net/secrets/listcerts02395596731/5768454f39bb4b02b2ddd2d122de4dff", - "x5t": "bdFtf9DYSx18wdtKDh8F5zCXHD0", - "cer": "MIIDNjCCAh6gAwIBAgIQRbt9r3IaTRutfkel6VifgTANBgkqhkiG9w0BAQsFADAYMRYwFAYDVQQDEw1EZWZhdWx0UG9saWN5MB4XDTIyMDUxNjE4MDE1NloXDTIzMDUxNjE4MTE1NlowGDEWMBQGA1UEAxMNRGVmYXVsdFBvbGljeTCCASIwDQYJKoZIhvcNAQEBBQADggEPADCCAQoCggEBALWwX2QjDVbyf\u002BD9ZyeVDKDDL1AJDgmwk3pmCTjqHAu7PKMzLY6/VMiejL8eSbb8NZ0ovOApNl/htxfUhD\u002B/rDr1IiAWhvldpEazPunLzV\u002BQU5\u002BCdUFBdBwO8lBFUauCAP0sBpEvgUuMVkMcs8zdrG73HwYHAqZTmqckxIV7DH44dkbMjKHP0prqDjqv7HyW\u002B3Rx148z73YAczmhgOsnDJfp0kNPLhZhQyhCro\u002B/7q0zp3VSzf4isevEp8jV1hkRpHp4ilpDgiQcm8AOM07/TUdllOypBimWZdgzxVo2qhuUmRoCNDgp/6Ep7q\u002BOJkrjmifEPgVbOPkbHtQCNJXfKQ0CAwEAAaN8MHowDgYDVR0PAQH/BAQDAgWgMAkGA1UdEwQCMAAwHQYDVR0lBBYwFAYIKwYBBQUHAwEGCCsGAQUFBwMCMB8GA1UdIwQYMBaAFN36NLCTInrA\u002By39ArKbYRCgnQdkMB0GA1UdDgQWBBTd\u002BjSwkyJ6wPst/QKym2EQoJ0HZDANBgkqhkiG9w0BAQsFAAOCAQEAjMB1flv1\u002BRiXPwCkH\u002BVI9VESobep0mWRS1Fr9W5u1XEKE64cDt/KezRh8Hc8e7p\u002BBPfvm3nzeH8tKpdtAyO/GotZLC4I1AaT3WIe/JeaGzyuAG\u002Bkzzh6mxmLef8Oy6u3vUM4e6FYz97qasUZM3h/Ymn2kNQLhLHj2nPs0zRAToDk7k3MiyZi1Rvd5IWJzI\u002BihDGWZaTAqW8\u002BonbEyTRetMdh12u4zXD7KE5xWiJMdarB7OnsDLMgB9svoH0VC5WhLNE\u002BQw13NCCKeK8IE8nokAU9DCkV0gHRla3pgMdBCsYDMNhsNCJgqqUAJERwGJBho9qfIc3T9TgDqzCAWOgEQw==", - "attributes": { - "enabled": true, - "nbf": 1652724116, - "exp": 1684260716, - "created": 1652724716, - "updated": 1652724716, - "recoveryLevel": "CustomizedRecoverable\u002BPurgeable", - "recoverableDays": 7 - }, - "policy": { - "id": "https://fakekvurl.vault.azure.net/certificates/listcerts02395596731/policy", - "key_props": { - "exportable": true, - "kty": "RSA", - "key_size": 2048, - "reuse_key": false - }, - "secret_props": { - "contentType": "application/x-pkcs12" - }, - "x509_props": { - "subject": "CN=DefaultPolicy", - "sans": {}, - "ekus": [ - "1.3.6.1.5.5.7.3.1", - "1.3.6.1.5.5.7.3.2" - ], - "key_usage": [ - "digitalSignature", - "keyEncipherment" - ], - "validity_months": 12, - "basic_constraints": { - "ca": false - } - }, - "lifetime_actions": [ - { - "trigger": { - "lifetime_percentage": 80 - }, - "action": { - "action_type": "AutoRenew" - } - } - ], - "issuer": { - "name": "Self" - }, - "attributes": { - "enabled": true, - "created": 1652724710, - "updated": 1652724710 - } - }, - "pending": { - "id": "https://fakekvurl.vault.azure.net/certificates/listcerts02395596731/pending" - } - } - }, - { - "RequestUri": "https://fakekvurl.vault.azure.net/deletedcertificates/listcerts02395596731?api-version=7.3", - "RequestMethod": "GET", - "RequestHeaders": { - ":method": "GET", - "Accept": "application/json", - "Accept-Encoding": "gzip", - "Authorization": "Sanitized", - "User-Agent": "azsdk-go-azcertificates/v0.4.2 (go1.18; Windows_NT)" - }, - "RequestBody": null, - "StatusCode": 404, - "ResponseHeaders": { - "Cache-Control": "no-cache", - "Content-Length": "104", - "Content-Type": "application/json; charset=utf-8", - "Date": "Mon, 16 May 2022 18:12:55 GMT", - "Expires": "-1", - "Pragma": "no-cache", - "Strict-Transport-Security": "max-age=31536000;includeSubDomains", - "X-Content-Type-Options": "nosniff", - "x-ms-keyvault-network-info": "conn_type=Ipv4;addr=73.83.78.150;act_addr_fam=InterNetwork;", - "x-ms-keyvault-region": "westus2", - "x-ms-keyvault-service-version": "1.9.395.1", - "x-ms-request-id": "527b84f9-7f0a-47fd-9ea2-e3d9367e592c" - }, - "ResponseBody": { - "error": { - "code": "CertificateNotFound", - "message": "Deleted Certificate not found: listcerts02395596731" - } - } - }, - { - "RequestUri": "https://fakekvurl.vault.azure.net/deletedcertificates/listcerts02395596731?api-version=7.3", - "RequestMethod": "GET", - "RequestHeaders": { - ":method": "GET", - "Accept": "application/json", - "Accept-Encoding": "gzip", - "Authorization": "Sanitized", - "User-Agent": "azsdk-go-azcertificates/v0.4.2 (go1.18; Windows_NT)" - }, - "RequestBody": null, - "StatusCode": 404, - "ResponseHeaders": { - "Cache-Control": "no-cache", - "Content-Length": "104", - "Content-Type": "application/json; charset=utf-8", - "Date": "Mon, 16 May 2022 18:12:56 GMT", - "Expires": "-1", - "Pragma": "no-cache", - "Strict-Transport-Security": "max-age=31536000;includeSubDomains", - "X-Content-Type-Options": "nosniff", - "x-ms-keyvault-network-info": "conn_type=Ipv4;addr=73.83.78.150;act_addr_fam=InterNetwork;", - "x-ms-keyvault-region": "westus2", - "x-ms-keyvault-service-version": "1.9.395.1", - "x-ms-request-id": "79604cb4-9169-4278-89f2-03eee02b6573" - }, - "ResponseBody": { - "error": { - "code": "CertificateNotFound", - "message": "Deleted Certificate not found: listcerts02395596731" - } - } - }, - { - "RequestUri": "https://fakekvurl.vault.azure.net/deletedcertificates/listcerts02395596731?api-version=7.3", - "RequestMethod": "GET", - "RequestHeaders": { - ":method": "GET", - "Accept": "application/json", - "Accept-Encoding": "gzip", - "Authorization": "Sanitized", - "User-Agent": "azsdk-go-azcertificates/v0.4.2 (go1.18; Windows_NT)" - }, - "RequestBody": null, - "StatusCode": 404, - "ResponseHeaders": { - "Cache-Control": "no-cache", - "Content-Length": "104", - "Content-Type": "application/json; charset=utf-8", - "Date": "Mon, 16 May 2022 18:12:57 GMT", - "Expires": "-1", - "Pragma": "no-cache", - "Strict-Transport-Security": "max-age=31536000;includeSubDomains", - "X-Content-Type-Options": "nosniff", - "x-ms-keyvault-network-info": "conn_type=Ipv4;addr=73.83.78.150;act_addr_fam=InterNetwork;", - "x-ms-keyvault-region": "westus2", - "x-ms-keyvault-service-version": "1.9.395.1", - "x-ms-request-id": "9bbb7bd4-58bc-496a-a367-935a9d8939b4" - }, - "ResponseBody": { - "error": { - "code": "CertificateNotFound", - "message": "Deleted Certificate not found: listcerts02395596731" - } - } - }, - { - "RequestUri": "https://fakekvurl.vault.azure.net/deletedcertificates/listcerts02395596731?api-version=7.3", - "RequestMethod": "GET", - "RequestHeaders": { - ":method": "GET", - "Accept": "application/json", - "Accept-Encoding": "gzip", - "Authorization": "Sanitized", - "User-Agent": "azsdk-go-azcertificates/v0.4.2 (go1.18; Windows_NT)" - }, - "RequestBody": null, - "StatusCode": 404, - "ResponseHeaders": { - "Cache-Control": "no-cache", - "Content-Length": "104", - "Content-Type": "application/json; charset=utf-8", - "Date": "Mon, 16 May 2022 18:12:58 GMT", - "Expires": "-1", - "Pragma": "no-cache", - "Strict-Transport-Security": "max-age=31536000;includeSubDomains", - "X-Content-Type-Options": "nosniff", - "x-ms-keyvault-network-info": "conn_type=Ipv4;addr=73.83.78.150;act_addr_fam=InterNetwork;", - "x-ms-keyvault-region": "westus2", - "x-ms-keyvault-service-version": "1.9.395.1", - "x-ms-request-id": "a8dccd13-753c-4f7a-b576-8e0428ca2eab" - }, - "ResponseBody": { - "error": { - "code": "CertificateNotFound", - "message": "Deleted Certificate not found: listcerts02395596731" - } - } - }, - { - "RequestUri": "https://fakekvurl.vault.azure.net/deletedcertificates/listcerts02395596731?api-version=7.3", - "RequestMethod": "GET", - "RequestHeaders": { - ":method": "GET", - "Accept": "application/json", - "Accept-Encoding": "gzip", - "Authorization": "Sanitized", - "User-Agent": "azsdk-go-azcertificates/v0.4.2 (go1.18; Windows_NT)" - }, - "RequestBody": null, - "StatusCode": 404, - "ResponseHeaders": { - "Cache-Control": "no-cache", - "Content-Length": "104", - "Content-Type": "application/json; charset=utf-8", - "Date": "Mon, 16 May 2022 18:12:59 GMT", - "Expires": "-1", - "Pragma": "no-cache", - "Strict-Transport-Security": "max-age=31536000;includeSubDomains", - "X-Content-Type-Options": "nosniff", - "x-ms-keyvault-network-info": "conn_type=Ipv4;addr=73.83.78.150;act_addr_fam=InterNetwork;", - "x-ms-keyvault-region": "westus2", - "x-ms-keyvault-service-version": "1.9.395.1", - "x-ms-request-id": "2f584ede-542d-404f-9f6c-86cfbbbf5928" - }, - "ResponseBody": { - "error": { - "code": "CertificateNotFound", - "message": "Deleted Certificate not found: listcerts02395596731" - } - } - }, - { - "RequestUri": "https://fakekvurl.vault.azure.net/deletedcertificates/listcerts02395596731?api-version=7.3", - "RequestMethod": "GET", - "RequestHeaders": { - ":method": "GET", - "Accept": "application/json", - "Accept-Encoding": "gzip", - "Authorization": "Sanitized", - "User-Agent": "azsdk-go-azcertificates/v0.4.2 (go1.18; Windows_NT)" - }, - "RequestBody": null, - "StatusCode": 404, - "ResponseHeaders": { - "Cache-Control": "no-cache", - "Content-Length": "104", - "Content-Type": "application/json; charset=utf-8", - "Date": "Mon, 16 May 2022 18:13:00 GMT", - "Expires": "-1", - "Pragma": "no-cache", - "Strict-Transport-Security": "max-age=31536000;includeSubDomains", - "X-Content-Type-Options": "nosniff", - "x-ms-keyvault-network-info": "conn_type=Ipv4;addr=73.83.78.150;act_addr_fam=InterNetwork;", - "x-ms-keyvault-region": "westus2", - "x-ms-keyvault-service-version": "1.9.395.1", - "x-ms-request-id": "932d6101-391b-4c2d-971f-b0ada6d085bf" - }, - "ResponseBody": { - "error": { - "code": "CertificateNotFound", - "message": "Deleted Certificate not found: listcerts02395596731" - } - } - }, - { - "RequestUri": "https://fakekvurl.vault.azure.net/deletedcertificates/listcerts02395596731?api-version=7.3", - "RequestMethod": "GET", - "RequestHeaders": { - ":method": "GET", - "Accept": "application/json", - "Accept-Encoding": "gzip", - "Authorization": "Sanitized", - "User-Agent": "azsdk-go-azcertificates/v0.4.2 (go1.18; Windows_NT)" - }, - "RequestBody": null, - "StatusCode": 404, - "ResponseHeaders": { - "Cache-Control": "no-cache", - "Content-Length": "104", - "Content-Type": "application/json; charset=utf-8", - "Date": "Mon, 16 May 2022 18:13:01 GMT", - "Expires": "-1", - "Pragma": "no-cache", - "Strict-Transport-Security": "max-age=31536000;includeSubDomains", - "X-Content-Type-Options": "nosniff", - "x-ms-keyvault-network-info": "conn_type=Ipv4;addr=73.83.78.150;act_addr_fam=InterNetwork;", - "x-ms-keyvault-region": "westus2", - "x-ms-keyvault-service-version": "1.9.395.1", - "x-ms-request-id": "cd39d7f8-07e3-4dfc-bec0-8420eeba52e3" - }, - "ResponseBody": { - "error": { - "code": "CertificateNotFound", - "message": "Deleted Certificate not found: listcerts02395596731" - } - } - }, - { - "RequestUri": "https://fakekvurl.vault.azure.net/deletedcertificates/listcerts02395596731?api-version=7.3", - "RequestMethod": "GET", - "RequestHeaders": { - ":method": "GET", - "Accept": "application/json", - "Accept-Encoding": "gzip", - "Authorization": "Sanitized", - "User-Agent": "azsdk-go-azcertificates/v0.4.2 (go1.18; Windows_NT)" - }, - "RequestBody": null, - "StatusCode": 404, - "ResponseHeaders": { - "Cache-Control": "no-cache", - "Content-Length": "104", - "Content-Type": "application/json; charset=utf-8", - "Date": "Mon, 16 May 2022 18:13:02 GMT", - "Expires": "-1", - "Pragma": "no-cache", - "Strict-Transport-Security": "max-age=31536000;includeSubDomains", - "X-Content-Type-Options": "nosniff", - "x-ms-keyvault-network-info": "conn_type=Ipv4;addr=73.83.78.150;act_addr_fam=InterNetwork;", - "x-ms-keyvault-region": "westus2", - "x-ms-keyvault-service-version": "1.9.395.1", - "x-ms-request-id": "27be040d-70d6-4485-a8a8-2866fa6aebf5" - }, - "ResponseBody": { - "error": { - "code": "CertificateNotFound", - "message": "Deleted Certificate not found: listcerts02395596731" - } - } - }, - { - "RequestUri": "https://fakekvurl.vault.azure.net/deletedcertificates/listcerts02395596731?api-version=7.3", - "RequestMethod": "GET", - "RequestHeaders": { - ":method": "GET", - "Accept": "application/json", - "Accept-Encoding": "gzip", - "Authorization": "Sanitized", - "User-Agent": "azsdk-go-azcertificates/v0.4.2 (go1.18; Windows_NT)" - }, - "RequestBody": null, - "StatusCode": 200, - "ResponseHeaders": { - "Cache-Control": "no-cache", - "Content-Length": "2508", - "Content-Type": "application/json; charset=utf-8", - "Date": "Mon, 16 May 2022 18:13:03 GMT", - "Expires": "-1", - "Pragma": "no-cache", - "Strict-Transport-Security": "max-age=31536000;includeSubDomains", - "X-Content-Type-Options": "nosniff", - "x-ms-keyvault-network-info": "conn_type=Ipv4;addr=73.83.78.150;act_addr_fam=InterNetwork;", - "x-ms-keyvault-region": "westus2", - "x-ms-keyvault-service-version": "1.9.395.1", - "x-ms-request-id": "89ef515a-5e55-48e2-b3f9-6506f91ad47c" - }, - "ResponseBody": { - "recoveryId": "https://fakekvurl.vault.azure.net/deletedcertificates/listcerts02395596731", - "deletedDate": 1652724775, - "scheduledPurgeDate": 1653329575, - "id": "https://fakekvurl.vault.azure.net/certificates/listcerts02395596731/5768454f39bb4b02b2ddd2d122de4dff", - "kid": "https://fakekvurl.vault.azure.net/keys/listcerts02395596731/5768454f39bb4b02b2ddd2d122de4dff", - "sid": "https://fakekvurl.vault.azure.net/secrets/listcerts02395596731/5768454f39bb4b02b2ddd2d122de4dff", - "x5t": "bdFtf9DYSx18wdtKDh8F5zCXHD0", - "cer": "MIIDNjCCAh6gAwIBAgIQRbt9r3IaTRutfkel6VifgTANBgkqhkiG9w0BAQsFADAYMRYwFAYDVQQDEw1EZWZhdWx0UG9saWN5MB4XDTIyMDUxNjE4MDE1NloXDTIzMDUxNjE4MTE1NlowGDEWMBQGA1UEAxMNRGVmYXVsdFBvbGljeTCCASIwDQYJKoZIhvcNAQEBBQADggEPADCCAQoCggEBALWwX2QjDVbyf\u002BD9ZyeVDKDDL1AJDgmwk3pmCTjqHAu7PKMzLY6/VMiejL8eSbb8NZ0ovOApNl/htxfUhD\u002B/rDr1IiAWhvldpEazPunLzV\u002BQU5\u002BCdUFBdBwO8lBFUauCAP0sBpEvgUuMVkMcs8zdrG73HwYHAqZTmqckxIV7DH44dkbMjKHP0prqDjqv7HyW\u002B3Rx148z73YAczmhgOsnDJfp0kNPLhZhQyhCro\u002B/7q0zp3VSzf4isevEp8jV1hkRpHp4ilpDgiQcm8AOM07/TUdllOypBimWZdgzxVo2qhuUmRoCNDgp/6Ep7q\u002BOJkrjmifEPgVbOPkbHtQCNJXfKQ0CAwEAAaN8MHowDgYDVR0PAQH/BAQDAgWgMAkGA1UdEwQCMAAwHQYDVR0lBBYwFAYIKwYBBQUHAwEGCCsGAQUFBwMCMB8GA1UdIwQYMBaAFN36NLCTInrA\u002By39ArKbYRCgnQdkMB0GA1UdDgQWBBTd\u002BjSwkyJ6wPst/QKym2EQoJ0HZDANBgkqhkiG9w0BAQsFAAOCAQEAjMB1flv1\u002BRiXPwCkH\u002BVI9VESobep0mWRS1Fr9W5u1XEKE64cDt/KezRh8Hc8e7p\u002BBPfvm3nzeH8tKpdtAyO/GotZLC4I1AaT3WIe/JeaGzyuAG\u002Bkzzh6mxmLef8Oy6u3vUM4e6FYz97qasUZM3h/Ymn2kNQLhLHj2nPs0zRAToDk7k3MiyZi1Rvd5IWJzI\u002BihDGWZaTAqW8\u002BonbEyTRetMdh12u4zXD7KE5xWiJMdarB7OnsDLMgB9svoH0VC5WhLNE\u002BQw13NCCKeK8IE8nokAU9DCkV0gHRla3pgMdBCsYDMNhsNCJgqqUAJERwGJBho9qfIc3T9TgDqzCAWOgEQw==", - "attributes": { - "enabled": true, - "nbf": 1652724116, - "exp": 1684260716, - "created": 1652724716, - "updated": 1652724716, - "recoveryLevel": "CustomizedRecoverable\u002BPurgeable", - "recoverableDays": 7 - }, - "policy": { - "id": "https://fakekvurl.vault.azure.net/certificates/listcerts02395596731/policy", - "key_props": { - "exportable": true, - "kty": "RSA", - "key_size": 2048, - "reuse_key": false - }, - "secret_props": { - "contentType": "application/x-pkcs12" - }, - "x509_props": { - "subject": "CN=DefaultPolicy", - "sans": {}, - "ekus": [ - "1.3.6.1.5.5.7.3.1", - "1.3.6.1.5.5.7.3.2" - ], - "key_usage": [ - "digitalSignature", - "keyEncipherment" - ], - "validity_months": 12, - "basic_constraints": { - "ca": false - } - }, - "lifetime_actions": [ - { - "trigger": { - "lifetime_percentage": 80 - }, - "action": { - "action_type": "AutoRenew" - } - } - ], - "issuer": { - "name": "Self" - }, - "attributes": { - "enabled": true, - "created": 1652724710, - "updated": 1652724710 - } - }, - "pending": { - "id": "https://fakekvurl.vault.azure.net/certificates/listcerts02395596731/pending" - } - } - }, - { - "RequestUri": "https://fakekvurl.vault.azure.net/deletedcertificates/listcerts02395596731?api-version=7.3", - "RequestMethod": "DELETE", - "RequestHeaders": { - "Accept": "application/json", - "Accept-Encoding": "gzip", - "Authorization": "Sanitized", - "User-Agent": "azsdk-go-azcertificates/v0.4.2 (go1.18; Windows_NT)" - }, - "RequestBody": null, - "StatusCode": 204, - "ResponseHeaders": { - "Cache-Control": "no-cache", - "Date": "Mon, 16 May 2022 18:13:03 GMT", - "Expires": "-1", - "Pragma": "no-cache", - "Strict-Transport-Security": "max-age=31536000;includeSubDomains", - "X-Content-Type-Options": "nosniff", - "x-ms-keyvault-network-info": "conn_type=Ipv4;addr=73.83.78.150;act_addr_fam=InterNetwork;", - "x-ms-keyvault-region": "westus2", - "x-ms-keyvault-service-version": "1.9.395.1", - "x-ms-request-id": "6503d586-ac94-4b48-a196-165822403d26" - }, - "ResponseBody": null - } - ], - "Variables": {} -} diff --git a/sdk/keyvault/azcertificates/testdata/recordings/TestClient_ListDeletedCertificates.json b/sdk/keyvault/azcertificates/testdata/recordings/TestClient_ListDeletedCertificates.json deleted file mode 100644 index 4e7b0fcb47a7..000000000000 --- a/sdk/keyvault/azcertificates/testdata/recordings/TestClient_ListDeletedCertificates.json +++ /dev/null @@ -1,2551 +0,0 @@ -{ - "Entries": [ - { - "RequestUri": "https://fakekvurl.vault.azure.net/certificates/delCert01493630328/create?api-version=7.3", - "RequestMethod": "POST", - "RequestHeaders": { - ":method": "POST", - "Accept": "application/json", - "Accept-Encoding": "gzip", - "Content-Length": "0", - "User-Agent": "azsdk-go-azcertificates/v0.4.2 (go1.18; Windows_NT)" - }, - "RequestBody": null, - "StatusCode": 401, - "ResponseHeaders": { - "Cache-Control": "no-cache", - "Content-Length": "97", - "Content-Type": "application/json; charset=utf-8", - "Date": "Mon, 16 May 2022 18:15:35 GMT", - "Expires": "-1", - "Pragma": "no-cache", - "Strict-Transport-Security": "max-age=31536000;includeSubDomains", - "WWW-Authenticate": "Bearer authorization=\u0022https://login.windows.net/00000000-0000-0000-0000-000000000000\u0022, resource=\u0022https://vault.azure.net\u0022", - "X-Content-Type-Options": "nosniff", - "x-ms-keyvault-network-info": "conn_type=Ipv4;addr=73.83.78.150;act_addr_fam=InterNetwork;", - "x-ms-keyvault-region": "westus2", - "x-ms-keyvault-service-version": "1.9.395.1", - "x-ms-request-id": "c2c080a5-e807-48a4-8929-8710546e597d" - }, - "ResponseBody": { - "error": { - "code": "Unauthorized", - "message": "AKV10000: Request is missing a Bearer or PoP token." - } - } - }, - { - "RequestUri": "https://fakekvurl.vault.azure.net/certificates/delCert01493630328/create?api-version=7.3", - "RequestMethod": "POST", - "RequestHeaders": { - ":method": "POST", - "Accept": "application/json", - "Accept-Encoding": "gzip", - "Authorization": "Sanitized", - "Content-Length": "125", - "Content-Type": "application/json", - "User-Agent": "azsdk-go-azcertificates/v0.4.2 (go1.18; Windows_NT)" - }, - "RequestBody": { - "attributes": {}, - "policy": { - "issuer": { - "name": "Self" - }, - "secret_props": {}, - "x509_props": { - "sans": {}, - "subject": "CN=DefaultPolicy" - } - } - }, - "StatusCode": 202, - "ResponseHeaders": { - "Cache-Control": "no-cache", - "Content-Length": "1293", - "Content-Type": "application/json; charset=utf-8", - "Date": "Mon, 16 May 2022 18:15:36 GMT", - "Expires": "-1", - "Location": "https://fakekvurl.vault.azure.net/certificates/delCert01493630328/pending?api-version=7.3\u0026request_id=b17f718191164f569a61d98c2b90ad2d", - "Pragma": "no-cache", - "Retry-After": "10", - "Strict-Transport-Security": "max-age=31536000;includeSubDomains", - "X-Content-Type-Options": "nosniff", - "x-ms-keyvault-network-info": "conn_type=Ipv4;addr=73.83.78.150;act_addr_fam=InterNetwork;", - "x-ms-keyvault-region": "westus2", - "x-ms-keyvault-service-version": "1.9.395.1", - "x-ms-request-id": "5d2b32b9-3e23-4c6c-888e-c435c417e752" - }, - "ResponseBody": { - "id": "https://fakekvurl.vault.azure.net/certificates/delCert01493630328/pending", - "issuer": { - "name": "Self" - }, - "csr": "MIICqDCCAZACAQAwGDEWMBQGA1UEAxMNRGVmYXVsdFBvbGljeTCCASIwDQYJKoZIhvcNAQEBBQADggEPADCCAQoCggEBAPSgriw3Ey2ABNs1eGimLoXHtzHFF90GS9GJqBs\u002BXkaNNcM3I7iPbG2MayxSw1srMlgN8suYeaV/WC1XVQf9qVdhUTqphNM2D37IrIg4wejy/znar4dEl0sC3HwnUnuxJC4JqDBffAs/Wrgkh6V66lxuCa8VW/Pnr/urWaSMA2a/yQCSCvGqiDCIxsy/XkIt6ETowrOh89BWvP5NGWC4BpQrhSp6cUYeGMccL3FZMSu0XsAV4t7Cl584\u002Bb8NrJdQn3YlDr9n9TgJKc43NN8R\u002BNIlPWy3SRgGtwXjog9iWFdWbuWU/EV\u002B7MtueczN41d92LxsdOsd4yomZ9UmbuvXYlECAwEAAaBLMEkGCSqGSIb3DQEJDjE8MDowDgYDVR0PAQH/BAQDAgWgMB0GA1UdJQQWMBQGCCsGAQUFBwMBBggrBgEFBQcDAjAJBgNVHRMEAjAAMA0GCSqGSIb3DQEBCwUAA4IBAQC8KdHjpv6wlvR4WI56NSohxC0EPv/NOa1L2rjE8SoPDtPfVvDuvWsyzMwRAAx0\u002BtKfL6lviPQLJ3KhYD/TY9TN8z2dwhk/BDxrVCZ/nbdQ7JyeBa93Np79vV0bi0OFll5qacOK2HzFvQNMms7vMZ8iUyVqbBSUnp\u002Bgd93rJ7wTQ230RBqPOGV52heiH2ojD\u002B3yRWK4GRjQ\u002BtFdjZF5jmqK4rIbZxdkpPOmIAXO2ACKLShOlVaHYmBx8SIXFukrQUnU26CLVfFcShCIvZhatKlpNWCFNPPD2Do2T/hRNGfq/7GFCmedaqBD3X\u002B346Q6WbXa0cJvKVfec25dPy/I85Ym", - "cancellation_requested": false, - "status": "inProgress", - "status_details": "Pending certificate created. Certificate request is in progress. This may take some time based on the issuer provider. Please check again later.", - "request_id": "b17f718191164f569a61d98c2b90ad2d" - } - }, - { - "RequestUri": "https://fakekvurl.vault.azure.net/certificates/delCert01493630328/pending?api-version=7.3\u0026request_id=b17f718191164f569a61d98c2b90ad2d", - "RequestMethod": "GET", - "RequestHeaders": { - ":method": "GET", - "Accept-Encoding": "gzip", - "Authorization": "Sanitized", - "User-Agent": "azsdk-go-azcertificates/v0.4.2 (go1.18; Windows_NT)" - }, - "RequestBody": null, - "StatusCode": 200, - "ResponseHeaders": { - "Cache-Control": "no-cache", - "Content-Length": "1205", - "Content-Type": "application/json; charset=utf-8", - "Date": "Mon, 16 May 2022 18:15:46 GMT", - "Expires": "-1", - "Pragma": "no-cache", - "Strict-Transport-Security": "max-age=31536000;includeSubDomains", - "X-Content-Type-Options": "nosniff", - "x-ms-keyvault-network-info": "conn_type=Ipv4;addr=73.83.78.150;act_addr_fam=InterNetwork;", - "x-ms-keyvault-region": "westus2", - "x-ms-keyvault-service-version": "1.9.395.1", - "x-ms-request-id": "fb98a3d2-a27c-449a-b7f2-27958463044b" - }, - "ResponseBody": { - "id": "https://fakekvurl.vault.azure.net/certificates/delCert01493630328/pending", - "issuer": { - "name": "Self" - }, - "csr": "MIICqDCCAZACAQAwGDEWMBQGA1UEAxMNRGVmYXVsdFBvbGljeTCCASIwDQYJKoZIhvcNAQEBBQADggEPADCCAQoCggEBAPSgriw3Ey2ABNs1eGimLoXHtzHFF90GS9GJqBs\u002BXkaNNcM3I7iPbG2MayxSw1srMlgN8suYeaV/WC1XVQf9qVdhUTqphNM2D37IrIg4wejy/znar4dEl0sC3HwnUnuxJC4JqDBffAs/Wrgkh6V66lxuCa8VW/Pnr/urWaSMA2a/yQCSCvGqiDCIxsy/XkIt6ETowrOh89BWvP5NGWC4BpQrhSp6cUYeGMccL3FZMSu0XsAV4t7Cl584\u002Bb8NrJdQn3YlDr9n9TgJKc43NN8R\u002BNIlPWy3SRgGtwXjog9iWFdWbuWU/EV\u002B7MtueczN41d92LxsdOsd4yomZ9UmbuvXYlECAwEAAaBLMEkGCSqGSIb3DQEJDjE8MDowDgYDVR0PAQH/BAQDAgWgMB0GA1UdJQQWMBQGCCsGAQUFBwMBBggrBgEFBQcDAjAJBgNVHRMEAjAAMA0GCSqGSIb3DQEBCwUAA4IBAQC8KdHjpv6wlvR4WI56NSohxC0EPv/NOa1L2rjE8SoPDtPfVvDuvWsyzMwRAAx0\u002BtKfL6lviPQLJ3KhYD/TY9TN8z2dwhk/BDxrVCZ/nbdQ7JyeBa93Np79vV0bi0OFll5qacOK2HzFvQNMms7vMZ8iUyVqbBSUnp\u002Bgd93rJ7wTQ230RBqPOGV52heiH2ojD\u002B3yRWK4GRjQ\u002BtFdjZF5jmqK4rIbZxdkpPOmIAXO2ACKLShOlVaHYmBx8SIXFukrQUnU26CLVfFcShCIvZhatKlpNWCFNPPD2Do2T/hRNGfq/7GFCmedaqBD3X\u002B346Q6WbXa0cJvKVfec25dPy/I85Ym", - "cancellation_requested": false, - "status": "completed", - "target": "https://fakekvurl.vault.azure.net/certificates/delCert01493630328", - "request_id": "b17f718191164f569a61d98c2b90ad2d" - } - }, - { - "RequestUri": "https://fakekvurl.vault.azure.net/certificates/delCert01493630328/?api-version=7.3", - "RequestMethod": "GET", - "RequestHeaders": { - ":method": "GET", - "Accept": "application/json", - "Accept-Encoding": "gzip", - "Authorization": "Sanitized", - "User-Agent": "azsdk-go-azcertificates/v0.4.2 (go1.18; Windows_NT)" - }, - "RequestBody": null, - "StatusCode": 200, - "ResponseHeaders": { - "Cache-Control": "no-cache", - "Content-Length": "2351", - "Content-Type": "application/json; charset=utf-8", - "Date": "Mon, 16 May 2022 18:15:46 GMT", - "Expires": "-1", - "Pragma": "no-cache", - "Strict-Transport-Security": "max-age=31536000;includeSubDomains", - "X-Content-Type-Options": "nosniff", - "x-ms-keyvault-network-info": "conn_type=Ipv4;addr=73.83.78.150;act_addr_fam=InterNetwork;", - "x-ms-keyvault-region": "westus2", - "x-ms-keyvault-service-version": "1.9.395.1", - "x-ms-request-id": "e5cca82d-94cd-4d39-8321-2d0139115d46" - }, - "ResponseBody": { - "id": "https://fakekvurl.vault.azure.net/certificates/delCert01493630328/85120256ffa545b8b96c7b96d3ce3587", - "kid": "https://fakekvurl.vault.azure.net/keys/delCert01493630328/85120256ffa545b8b96c7b96d3ce3587", - "sid": "https://fakekvurl.vault.azure.net/secrets/delCert01493630328/85120256ffa545b8b96c7b96d3ce3587", - "x5t": "NCD_-PKgI356rH5ID8mJhQ7anq4", - "cer": "MIIDNjCCAh6gAwIBAgIQKEg1ihVnQZeQVnaFfFLXpDANBgkqhkiG9w0BAQsFADAYMRYwFAYDVQQDEw1EZWZhdWx0UG9saWN5MB4XDTIyMDUxNjE4MDU0MVoXDTIzMDUxNjE4MTU0MVowGDEWMBQGA1UEAxMNRGVmYXVsdFBvbGljeTCCASIwDQYJKoZIhvcNAQEBBQADggEPADCCAQoCggEBAPSgriw3Ey2ABNs1eGimLoXHtzHFF90GS9GJqBs\u002BXkaNNcM3I7iPbG2MayxSw1srMlgN8suYeaV/WC1XVQf9qVdhUTqphNM2D37IrIg4wejy/znar4dEl0sC3HwnUnuxJC4JqDBffAs/Wrgkh6V66lxuCa8VW/Pnr/urWaSMA2a/yQCSCvGqiDCIxsy/XkIt6ETowrOh89BWvP5NGWC4BpQrhSp6cUYeGMccL3FZMSu0XsAV4t7Cl584\u002Bb8NrJdQn3YlDr9n9TgJKc43NN8R\u002BNIlPWy3SRgGtwXjog9iWFdWbuWU/EV\u002B7MtueczN41d92LxsdOsd4yomZ9UmbuvXYlECAwEAAaN8MHowDgYDVR0PAQH/BAQDAgWgMAkGA1UdEwQCMAAwHQYDVR0lBBYwFAYIKwYBBQUHAwEGCCsGAQUFBwMCMB8GA1UdIwQYMBaAFCl1Mmtikb4\u002Bb2wDk\u002Bk3E9BLl785MB0GA1UdDgQWBBQpdTJrYpG\u002BPm9sA5PpNxPQS5e/OTANBgkqhkiG9w0BAQsFAAOCAQEAa/iCqKKc5jJ6ctDKXjcraCunvtqZNZ2VHWM1bRIZ\u002Bx0xnPdd8WlQuLJ\u002Bk5rt/bRYhfTAI5x06ZmqeuMaSLd60Z6mOqvzglomjJSQMpSj3jhZ2N55fHjdjcEGRqAVNKnyXxeW3CxmDMZToulNx3jA/FCKUYZ9\u002BLc5awQWkGT2wZzyJ/w94Uhj9EIvx0I/Qw9CT4HSlONX0qFWQ12Lvy0h5YLGdlC15FDwAV7bFzW9\u002BZ9Td9dp4gAlNPJHPM0ZYcEEhVNVPwLiNpjMrZFj0f7BJ0PuQQtX9R8OO\u002BQduGF1xbeocgnyNh4Abf5GN5kKlHOt4AGMamqT6RfO8FMNypGYYw==", - "attributes": { - "enabled": true, - "nbf": 1652724341, - "exp": 1684260941, - "created": 1652724941, - "updated": 1652724941, - "recoveryLevel": "CustomizedRecoverable\u002BPurgeable", - "recoverableDays": 7 - }, - "policy": { - "id": "https://fakekvurl.vault.azure.net/certificates/delCert01493630328/policy", - "key_props": { - "exportable": true, - "kty": "RSA", - "key_size": 2048, - "reuse_key": false - }, - "secret_props": { - "contentType": "application/x-pkcs12" - }, - "x509_props": { - "subject": "CN=DefaultPolicy", - "sans": {}, - "ekus": [ - "1.3.6.1.5.5.7.3.1", - "1.3.6.1.5.5.7.3.2" - ], - "key_usage": [ - "digitalSignature", - "keyEncipherment" - ], - "validity_months": 12, - "basic_constraints": { - "ca": false - } - }, - "lifetime_actions": [ - { - "trigger": { - "lifetime_percentage": 80 - }, - "action": { - "action_type": "AutoRenew" - } - } - ], - "issuer": { - "name": "Self" - }, - "attributes": { - "enabled": true, - "created": 1652724936, - "updated": 1652724936 - } - }, - "pending": { - "id": "https://fakekvurl.vault.azure.net/certificates/delCert01493630328/pending" - } - } - }, - { - "RequestUri": "https://fakekvurl.vault.azure.net/certificates/delCert11493630328/create?api-version=7.3", - "RequestMethod": "POST", - "RequestHeaders": { - ":method": "POST", - "Accept": "application/json", - "Accept-Encoding": "gzip", - "Authorization": "Sanitized", - "Content-Length": "125", - "Content-Type": "application/json", - "User-Agent": "azsdk-go-azcertificates/v0.4.2 (go1.18; Windows_NT)" - }, - "RequestBody": { - "attributes": {}, - "policy": { - "issuer": { - "name": "Self" - }, - "secret_props": {}, - "x509_props": { - "sans": {}, - "subject": "CN=DefaultPolicy" - } - } - }, - "StatusCode": 202, - "ResponseHeaders": { - "Cache-Control": "no-cache", - "Content-Length": "1293", - "Content-Type": "application/json; charset=utf-8", - "Date": "Mon, 16 May 2022 18:15:46 GMT", - "Expires": "-1", - "Location": "https://fakekvurl.vault.azure.net/certificates/delCert11493630328/pending?api-version=7.3\u0026request_id=93f1ce8046db468e948779a872d30014", - "Pragma": "no-cache", - "Retry-After": "10", - "Strict-Transport-Security": "max-age=31536000;includeSubDomains", - "X-Content-Type-Options": "nosniff", - "x-ms-keyvault-network-info": "conn_type=Ipv4;addr=73.83.78.150;act_addr_fam=InterNetwork;", - "x-ms-keyvault-region": "westus2", - "x-ms-keyvault-service-version": "1.9.395.1", - "x-ms-request-id": "91361e2c-21cb-4159-9020-8ae9a5e81d35" - }, - "ResponseBody": { - "id": "https://fakekvurl.vault.azure.net/certificates/delCert11493630328/pending", - "issuer": { - "name": "Self" - }, - "csr": "MIICqDCCAZACAQAwGDEWMBQGA1UEAxMNRGVmYXVsdFBvbGljeTCCASIwDQYJKoZIhvcNAQEBBQADggEPADCCAQoCggEBAM\u002BStK73w4Cj1DaI68wFiCLoZyl1n6YW3pDmdZ/EK25lPWUtobRa\u002BLg5S4\u002BZO434Hb75gYRGXW0IJ\u002BA5KSxUSIIpvukC8wN/j32L7oOBJ/qjKetFcWcQXoq/1ZM5HVUJDt3ivhdshcIIgtX9/sNic/G0/vu4d6kN04UYBI7DxHXWvt3fY0TY9KrJZeOcpZWFP4rosGMT1r4SfGAeZwgyrWaufHhKh3u0Q6\u002BLZ8y8jp/d\u002BIV97sceGBAQNWGAuZF3bF06cH6lSCtKNtNgtq9KEk8XqJDBfoJQB8kI3ALtRB\u002BQgAxuN8Nxj\u002Bn3XTmR0nk\u002B20zhVkS1hJKPRCwmj6ne2WkCAwEAAaBLMEkGCSqGSIb3DQEJDjE8MDowDgYDVR0PAQH/BAQDAgWgMB0GA1UdJQQWMBQGCCsGAQUFBwMBBggrBgEFBQcDAjAJBgNVHRMEAjAAMA0GCSqGSIb3DQEBCwUAA4IBAQCAwwzMtMj/z5hQdXM3qAnOcWB11BXdvEeLByZ5OpPbTMappylT9FJShsZDygT8BMfZe0smm3dk3Skq99LXMBgukxiD8srULpP40wN50m2Wgrd4b2Kib85FpabXc0SD5DrDw0xa\u002BqwpYdzV1Giwjpru7Lj2sd1UblOwB\u002BnK3qRYbahyvMxC2lnfXJwIKkwamtDAlS1G6s1yKNC3ujYdhoYLGYpjGiq/Z/dRlsB39Zc2Lww/gF9aWQmo9hunKLJObx\u002BjXHiUQrOUQAq89zzXDgJ7YXX9YO3R9fcMk4xkNqArNUP\u002BmjWIU8KpBYVimvrNRZzU3m2vQG9sDrMujcBKI1hF", - "cancellation_requested": false, - "status": "inProgress", - "status_details": "Pending certificate created. Certificate request is in progress. This may take some time based on the issuer provider. Please check again later.", - "request_id": "93f1ce8046db468e948779a872d30014" - } - }, - { - "RequestUri": "https://fakekvurl.vault.azure.net/certificates/delCert11493630328/pending?api-version=7.3\u0026request_id=93f1ce8046db468e948779a872d30014", - "RequestMethod": "GET", - "RequestHeaders": { - ":method": "GET", - "Accept-Encoding": "gzip", - "Authorization": "Sanitized", - "User-Agent": "azsdk-go-azcertificates/v0.4.2 (go1.18; Windows_NT)" - }, - "RequestBody": null, - "StatusCode": 200, - "ResponseHeaders": { - "Cache-Control": "no-cache", - "Content-Length": "1205", - "Content-Type": "application/json; charset=utf-8", - "Date": "Mon, 16 May 2022 18:15:56 GMT", - "Expires": "-1", - "Pragma": "no-cache", - "Strict-Transport-Security": "max-age=31536000;includeSubDomains", - "X-Content-Type-Options": "nosniff", - "x-ms-keyvault-network-info": "conn_type=Ipv4;addr=73.83.78.150;act_addr_fam=InterNetwork;", - "x-ms-keyvault-region": "westus2", - "x-ms-keyvault-service-version": "1.9.395.1", - "x-ms-request-id": "8732a753-ac03-4963-94df-4b45f528d81d" - }, - "ResponseBody": { - "id": "https://fakekvurl.vault.azure.net/certificates/delCert11493630328/pending", - "issuer": { - "name": "Self" - }, - "csr": "MIICqDCCAZACAQAwGDEWMBQGA1UEAxMNRGVmYXVsdFBvbGljeTCCASIwDQYJKoZIhvcNAQEBBQADggEPADCCAQoCggEBAM\u002BStK73w4Cj1DaI68wFiCLoZyl1n6YW3pDmdZ/EK25lPWUtobRa\u002BLg5S4\u002BZO434Hb75gYRGXW0IJ\u002BA5KSxUSIIpvukC8wN/j32L7oOBJ/qjKetFcWcQXoq/1ZM5HVUJDt3ivhdshcIIgtX9/sNic/G0/vu4d6kN04UYBI7DxHXWvt3fY0TY9KrJZeOcpZWFP4rosGMT1r4SfGAeZwgyrWaufHhKh3u0Q6\u002BLZ8y8jp/d\u002BIV97sceGBAQNWGAuZF3bF06cH6lSCtKNtNgtq9KEk8XqJDBfoJQB8kI3ALtRB\u002BQgAxuN8Nxj\u002Bn3XTmR0nk\u002B20zhVkS1hJKPRCwmj6ne2WkCAwEAAaBLMEkGCSqGSIb3DQEJDjE8MDowDgYDVR0PAQH/BAQDAgWgMB0GA1UdJQQWMBQGCCsGAQUFBwMBBggrBgEFBQcDAjAJBgNVHRMEAjAAMA0GCSqGSIb3DQEBCwUAA4IBAQCAwwzMtMj/z5hQdXM3qAnOcWB11BXdvEeLByZ5OpPbTMappylT9FJShsZDygT8BMfZe0smm3dk3Skq99LXMBgukxiD8srULpP40wN50m2Wgrd4b2Kib85FpabXc0SD5DrDw0xa\u002BqwpYdzV1Giwjpru7Lj2sd1UblOwB\u002BnK3qRYbahyvMxC2lnfXJwIKkwamtDAlS1G6s1yKNC3ujYdhoYLGYpjGiq/Z/dRlsB39Zc2Lww/gF9aWQmo9hunKLJObx\u002BjXHiUQrOUQAq89zzXDgJ7YXX9YO3R9fcMk4xkNqArNUP\u002BmjWIU8KpBYVimvrNRZzU3m2vQG9sDrMujcBKI1hF", - "cancellation_requested": false, - "status": "completed", - "target": "https://fakekvurl.vault.azure.net/certificates/delCert11493630328", - "request_id": "93f1ce8046db468e948779a872d30014" - } - }, - { - "RequestUri": "https://fakekvurl.vault.azure.net/certificates/delCert11493630328/?api-version=7.3", - "RequestMethod": "GET", - "RequestHeaders": { - ":method": "GET", - "Accept": "application/json", - "Accept-Encoding": "gzip", - "Authorization": "Sanitized", - "User-Agent": "azsdk-go-azcertificates/v0.4.2 (go1.18; Windows_NT)" - }, - "RequestBody": null, - "StatusCode": 200, - "ResponseHeaders": { - "Cache-Control": "no-cache", - "Content-Length": "2351", - "Content-Type": "application/json; charset=utf-8", - "Date": "Mon, 16 May 2022 18:15:56 GMT", - "Expires": "-1", - "Pragma": "no-cache", - "Strict-Transport-Security": "max-age=31536000;includeSubDomains", - "X-Content-Type-Options": "nosniff", - "x-ms-keyvault-network-info": "conn_type=Ipv4;addr=73.83.78.150;act_addr_fam=InterNetwork;", - "x-ms-keyvault-region": "westus2", - "x-ms-keyvault-service-version": "1.9.395.1", - "x-ms-request-id": "202a34d2-b7fd-4909-885d-684532562d0c" - }, - "ResponseBody": { - "id": "https://fakekvurl.vault.azure.net/certificates/delCert11493630328/d49acc927d7a422e9a0a82483add980e", - "kid": "https://fakekvurl.vault.azure.net/keys/delCert11493630328/d49acc927d7a422e9a0a82483add980e", - "sid": "https://fakekvurl.vault.azure.net/secrets/delCert11493630328/d49acc927d7a422e9a0a82483add980e", - "x5t": "G6DZlrfejTOt_ETQWlRb-GqmFCs", - "cer": "MIIDNjCCAh6gAwIBAgIQUWIQtWLjTIOWsQEiap9t/TANBgkqhkiG9w0BAQsFADAYMRYwFAYDVQQDEw1EZWZhdWx0UG9saWN5MB4XDTIyMDUxNjE4MDU1MVoXDTIzMDUxNjE4MTU1MVowGDEWMBQGA1UEAxMNRGVmYXVsdFBvbGljeTCCASIwDQYJKoZIhvcNAQEBBQADggEPADCCAQoCggEBAM\u002BStK73w4Cj1DaI68wFiCLoZyl1n6YW3pDmdZ/EK25lPWUtobRa\u002BLg5S4\u002BZO434Hb75gYRGXW0IJ\u002BA5KSxUSIIpvukC8wN/j32L7oOBJ/qjKetFcWcQXoq/1ZM5HVUJDt3ivhdshcIIgtX9/sNic/G0/vu4d6kN04UYBI7DxHXWvt3fY0TY9KrJZeOcpZWFP4rosGMT1r4SfGAeZwgyrWaufHhKh3u0Q6\u002BLZ8y8jp/d\u002BIV97sceGBAQNWGAuZF3bF06cH6lSCtKNtNgtq9KEk8XqJDBfoJQB8kI3ALtRB\u002BQgAxuN8Nxj\u002Bn3XTmR0nk\u002B20zhVkS1hJKPRCwmj6ne2WkCAwEAAaN8MHowDgYDVR0PAQH/BAQDAgWgMAkGA1UdEwQCMAAwHQYDVR0lBBYwFAYIKwYBBQUHAwEGCCsGAQUFBwMCMB8GA1UdIwQYMBaAFNYi1eM6VXd\u002ByfvtNYU14hsB2KMYMB0GA1UdDgQWBBTWItXjOlV3fsn77TWFNeIbAdijGDANBgkqhkiG9w0BAQsFAAOCAQEAKTrR4uGfmtVBsDrS/WaMOLwbv5iIviC1ZjPpx8v7gVbgAWRcXMl5jEoXUrt21TNduzDlWvIaMtcf4KPd5ZCQJqaEBzJK75Hr/mfolgnUHltWzSKnE1QYPxeUmUNfg1o8NbobfDI2whKu2Ec6RkKINEi\u002BZ349\u002B/9mK0PLFnaKbXNz2EscLvO7zYequqMgQbjxW28hU0QGB4wcr\u002BOsuJvwOlZZFTQ5VBikZl1Ke2eWf422yLvjhtttHuhJ\u002BwR1jyozAvtumHk177eKT9HzZZ2b5EPwmZUrWrLhnQ09yW0ozODHsOh7KCHg2iOr51DtzxEfggYGUCwzCrJHd5Ve\u002B85aYA==", - "attributes": { - "enabled": true, - "nbf": 1652724351, - "exp": 1684260951, - "created": 1652724951, - "updated": 1652724951, - "recoveryLevel": "CustomizedRecoverable\u002BPurgeable", - "recoverableDays": 7 - }, - "policy": { - "id": "https://fakekvurl.vault.azure.net/certificates/delCert11493630328/policy", - "key_props": { - "exportable": true, - "kty": "RSA", - "key_size": 2048, - "reuse_key": false - }, - "secret_props": { - "contentType": "application/x-pkcs12" - }, - "x509_props": { - "subject": "CN=DefaultPolicy", - "sans": {}, - "ekus": [ - "1.3.6.1.5.5.7.3.1", - "1.3.6.1.5.5.7.3.2" - ], - "key_usage": [ - "digitalSignature", - "keyEncipherment" - ], - "validity_months": 12, - "basic_constraints": { - "ca": false - } - }, - "lifetime_actions": [ - { - "trigger": { - "lifetime_percentage": 80 - }, - "action": { - "action_type": "AutoRenew" - } - } - ], - "issuer": { - "name": "Self" - }, - "attributes": { - "enabled": true, - "created": 1652724947, - "updated": 1652724947 - } - }, - "pending": { - "id": "https://fakekvurl.vault.azure.net/certificates/delCert11493630328/pending" - } - } - }, - { - "RequestUri": "https://fakekvurl.vault.azure.net/certificates/delCert21493630328/create?api-version=7.3", - "RequestMethod": "POST", - "RequestHeaders": { - ":method": "POST", - "Accept": "application/json", - "Accept-Encoding": "gzip", - "Authorization": "Sanitized", - "Content-Length": "125", - "Content-Type": "application/json", - "User-Agent": "azsdk-go-azcertificates/v0.4.2 (go1.18; Windows_NT)" - }, - "RequestBody": { - "attributes": {}, - "policy": { - "issuer": { - "name": "Self" - }, - "secret_props": {}, - "x509_props": { - "sans": {}, - "subject": "CN=DefaultPolicy" - } - } - }, - "StatusCode": 202, - "ResponseHeaders": { - "Cache-Control": "no-cache", - "Content-Length": "1293", - "Content-Type": "application/json; charset=utf-8", - "Date": "Mon, 16 May 2022 18:15:57 GMT", - "Expires": "-1", - "Location": "https://fakekvurl.vault.azure.net/certificates/delCert21493630328/pending?api-version=7.3\u0026request_id=17793f936d2f458da043594d87ee4120", - "Pragma": "no-cache", - "Retry-After": "10", - "Strict-Transport-Security": "max-age=31536000;includeSubDomains", - "X-Content-Type-Options": "nosniff", - "x-ms-keyvault-network-info": "conn_type=Ipv4;addr=73.83.78.150;act_addr_fam=InterNetwork;", - "x-ms-keyvault-region": "westus2", - "x-ms-keyvault-service-version": "1.9.395.1", - "x-ms-request-id": "b1083f97-ea1a-44e4-99f6-a939f8ea3600" - }, - "ResponseBody": { - "id": "https://fakekvurl.vault.azure.net/certificates/delCert21493630328/pending", - "issuer": { - "name": "Self" - }, - "csr": "MIICqDCCAZACAQAwGDEWMBQGA1UEAxMNRGVmYXVsdFBvbGljeTCCASIwDQYJKoZIhvcNAQEBBQADggEPADCCAQoCggEBALHlMJPVR10dQHUdsdgR0ofZPPaFv0T4glNgvcQV2VoTegHyOfHpT9\u002BYyZb1izBHl8drrfFPqqtfhZp2\u002BxrdXGgEOazqNPBSPzmpNocGsMBVrcQOcMwQP/5P\u002BfE3lwTslQxlHBnJKjIjuh2sY6SogszsLSwiSdVlv6U4TlwjgAMpvw7G0zklNKNTu4/Q3IFyKJEdm581nuEJzs0DHkIzIe2GPuGbTkAynPImRDgEJH2oGZLJhJBgfcQ9OF/kMJZWJ7L3xfVcG1RO6IO8MPhNy5SkIQLnR4tXacK8BNHjc44\u002Bd9A2duCzU5MzVumjkEzCNoHgErGefFzocn4MV5ax2XECAwEAAaBLMEkGCSqGSIb3DQEJDjE8MDowDgYDVR0PAQH/BAQDAgWgMB0GA1UdJQQWMBQGCCsGAQUFBwMBBggrBgEFBQcDAjAJBgNVHRMEAjAAMA0GCSqGSIb3DQEBCwUAA4IBAQCVAs2VSSbUgGNTnnojiUSNQItg/iDGSL46ThmAqA9u2SqicayGNERf3EKUCrc9S/CZfIAILwR3\u002BNllZVv3Rx6\u002Bkh\u002BssPoQkGI91\u002BmuQwkF0a7a5OrWgkRoG81Bxs0VcyT5tJGHfpgqJG7BJy2zkVD\u002Bj\u002B5/26bnlE2sbTNGFFUcrzgAcTa6O5kc\u002Bl8DJUgAFx8KhURR8YHwaaFbF4Xy0nzqdcD0NL/9kzq5mu6N6XZ2Lqrm0/U0kLf0v9lgiZOnr9F4\u002Btvoic3Dxh6trC5t3jLHzbQXz1VqnirEVoIEQ4Wl9om8m5RJVLZ4p2oyytBFanANO9XuZjBv4ztR3eUmGIJE", - "cancellation_requested": false, - "status": "inProgress", - "status_details": "Pending certificate created. Certificate request is in progress. This may take some time based on the issuer provider. Please check again later.", - "request_id": "17793f936d2f458da043594d87ee4120" - } - }, - { - "RequestUri": "https://fakekvurl.vault.azure.net/certificates/delCert21493630328/pending?api-version=7.3\u0026request_id=17793f936d2f458da043594d87ee4120", - "RequestMethod": "GET", - "RequestHeaders": { - ":method": "GET", - "Accept-Encoding": "gzip", - "Authorization": "Sanitized", - "User-Agent": "azsdk-go-azcertificates/v0.4.2 (go1.18; Windows_NT)" - }, - "RequestBody": null, - "StatusCode": 200, - "ResponseHeaders": { - "Cache-Control": "no-cache", - "Content-Length": "1205", - "Content-Type": "application/json; charset=utf-8", - "Date": "Mon, 16 May 2022 18:16:08 GMT", - "Expires": "-1", - "Pragma": "no-cache", - "Strict-Transport-Security": "max-age=31536000;includeSubDomains", - "X-Content-Type-Options": "nosniff", - "x-ms-keyvault-network-info": "conn_type=Ipv4;addr=73.83.78.150;act_addr_fam=InterNetwork;", - "x-ms-keyvault-region": "westus2", - "x-ms-keyvault-service-version": "1.9.395.1", - "x-ms-request-id": "38eaa61b-a5f6-42de-858d-ccdb599b4b6e" - }, - "ResponseBody": { - "id": "https://fakekvurl.vault.azure.net/certificates/delCert21493630328/pending", - "issuer": { - "name": "Self" - }, - "csr": "MIICqDCCAZACAQAwGDEWMBQGA1UEAxMNRGVmYXVsdFBvbGljeTCCASIwDQYJKoZIhvcNAQEBBQADggEPADCCAQoCggEBALHlMJPVR10dQHUdsdgR0ofZPPaFv0T4glNgvcQV2VoTegHyOfHpT9\u002BYyZb1izBHl8drrfFPqqtfhZp2\u002BxrdXGgEOazqNPBSPzmpNocGsMBVrcQOcMwQP/5P\u002BfE3lwTslQxlHBnJKjIjuh2sY6SogszsLSwiSdVlv6U4TlwjgAMpvw7G0zklNKNTu4/Q3IFyKJEdm581nuEJzs0DHkIzIe2GPuGbTkAynPImRDgEJH2oGZLJhJBgfcQ9OF/kMJZWJ7L3xfVcG1RO6IO8MPhNy5SkIQLnR4tXacK8BNHjc44\u002Bd9A2duCzU5MzVumjkEzCNoHgErGefFzocn4MV5ax2XECAwEAAaBLMEkGCSqGSIb3DQEJDjE8MDowDgYDVR0PAQH/BAQDAgWgMB0GA1UdJQQWMBQGCCsGAQUFBwMBBggrBgEFBQcDAjAJBgNVHRMEAjAAMA0GCSqGSIb3DQEBCwUAA4IBAQCVAs2VSSbUgGNTnnojiUSNQItg/iDGSL46ThmAqA9u2SqicayGNERf3EKUCrc9S/CZfIAILwR3\u002BNllZVv3Rx6\u002Bkh\u002BssPoQkGI91\u002BmuQwkF0a7a5OrWgkRoG81Bxs0VcyT5tJGHfpgqJG7BJy2zkVD\u002Bj\u002B5/26bnlE2sbTNGFFUcrzgAcTa6O5kc\u002Bl8DJUgAFx8KhURR8YHwaaFbF4Xy0nzqdcD0NL/9kzq5mu6N6XZ2Lqrm0/U0kLf0v9lgiZOnr9F4\u002Btvoic3Dxh6trC5t3jLHzbQXz1VqnirEVoIEQ4Wl9om8m5RJVLZ4p2oyytBFanANO9XuZjBv4ztR3eUmGIJE", - "cancellation_requested": false, - "status": "completed", - "target": "https://fakekvurl.vault.azure.net/certificates/delCert21493630328", - "request_id": "17793f936d2f458da043594d87ee4120" - } - }, - { - "RequestUri": "https://fakekvurl.vault.azure.net/certificates/delCert21493630328/?api-version=7.3", - "RequestMethod": "GET", - "RequestHeaders": { - ":method": "GET", - "Accept": "application/json", - "Accept-Encoding": "gzip", - "Authorization": "Sanitized", - "User-Agent": "azsdk-go-azcertificates/v0.4.2 (go1.18; Windows_NT)" - }, - "RequestBody": null, - "StatusCode": 200, - "ResponseHeaders": { - "Cache-Control": "no-cache", - "Content-Length": "2351", - "Content-Type": "application/json; charset=utf-8", - "Date": "Mon, 16 May 2022 18:16:08 GMT", - "Expires": "-1", - "Pragma": "no-cache", - "Strict-Transport-Security": "max-age=31536000;includeSubDomains", - "X-Content-Type-Options": "nosniff", - "x-ms-keyvault-network-info": "conn_type=Ipv4;addr=73.83.78.150;act_addr_fam=InterNetwork;", - "x-ms-keyvault-region": "westus2", - "x-ms-keyvault-service-version": "1.9.395.1", - "x-ms-request-id": "8472778c-6e54-406d-8258-6532c2777dd8" - }, - "ResponseBody": { - "id": "https://fakekvurl.vault.azure.net/certificates/delCert21493630328/dc814947d4ba4c1b9cace198e56b2205", - "kid": "https://fakekvurl.vault.azure.net/keys/delCert21493630328/dc814947d4ba4c1b9cace198e56b2205", - "sid": "https://fakekvurl.vault.azure.net/secrets/delCert21493630328/dc814947d4ba4c1b9cace198e56b2205", - "x5t": "oJZDnMdDGp09vVxTfNQw-2lMrs4", - "cer": "MIIDNjCCAh6gAwIBAgIQYkJBn0/qSdmW63ayt6qLrTANBgkqhkiG9w0BAQsFADAYMRYwFAYDVQQDEw1EZWZhdWx0UG9saWN5MB4XDTIyMDUxNjE4MDYwNFoXDTIzMDUxNjE4MTYwNFowGDEWMBQGA1UEAxMNRGVmYXVsdFBvbGljeTCCASIwDQYJKoZIhvcNAQEBBQADggEPADCCAQoCggEBALHlMJPVR10dQHUdsdgR0ofZPPaFv0T4glNgvcQV2VoTegHyOfHpT9\u002BYyZb1izBHl8drrfFPqqtfhZp2\u002BxrdXGgEOazqNPBSPzmpNocGsMBVrcQOcMwQP/5P\u002BfE3lwTslQxlHBnJKjIjuh2sY6SogszsLSwiSdVlv6U4TlwjgAMpvw7G0zklNKNTu4/Q3IFyKJEdm581nuEJzs0DHkIzIe2GPuGbTkAynPImRDgEJH2oGZLJhJBgfcQ9OF/kMJZWJ7L3xfVcG1RO6IO8MPhNy5SkIQLnR4tXacK8BNHjc44\u002Bd9A2duCzU5MzVumjkEzCNoHgErGefFzocn4MV5ax2XECAwEAAaN8MHowDgYDVR0PAQH/BAQDAgWgMAkGA1UdEwQCMAAwHQYDVR0lBBYwFAYIKwYBBQUHAwEGCCsGAQUFBwMCMB8GA1UdIwQYMBaAFBWrlQ25dThSy\u002BxaEj0VXZydH0tOMB0GA1UdDgQWBBQVq5UNuXU4UsvsWhI9FV2cnR9LTjANBgkqhkiG9w0BAQsFAAOCAQEAVsBJA9d615XBY9qTaSeYnyLdvb3yZPH2lQRjg5BORjCRQgvX/gjlI9WAK7jbFS0KsZsybDivpeD05JeVyXKBIHaumKq7FX77XfkFeDLHzur8b1xtKipdTqwasRpoEsNTxHLzRMKf8CT4zSEcelY/1oVzMFJql7DSGWeDHjFMkQSluIA3Zw24kYf1TRWpgcNaQY2rgkvEShyT8F/NrGOW93T8Jl\u002BvLvPFl5TQ\u002BfRIntRFCkdCAjy8HNhf//oR9SOjskGQ92Jr0JAPEAii9uObT09D4Jd/E1Bpe8Vqhv1SuP727N15FhU1v5VdL4RkpXgv6C9A9zUP2h7BdIUNovDNpw==", - "attributes": { - "enabled": true, - "nbf": 1652724364, - "exp": 1684260964, - "created": 1652724964, - "updated": 1652724964, - "recoveryLevel": "CustomizedRecoverable\u002BPurgeable", - "recoverableDays": 7 - }, - "policy": { - "id": "https://fakekvurl.vault.azure.net/certificates/delCert21493630328/policy", - "key_props": { - "exportable": true, - "kty": "RSA", - "key_size": 2048, - "reuse_key": false - }, - "secret_props": { - "contentType": "application/x-pkcs12" - }, - "x509_props": { - "subject": "CN=DefaultPolicy", - "sans": {}, - "ekus": [ - "1.3.6.1.5.5.7.3.1", - "1.3.6.1.5.5.7.3.2" - ], - "key_usage": [ - "digitalSignature", - "keyEncipherment" - ], - "validity_months": 12, - "basic_constraints": { - "ca": false - } - }, - "lifetime_actions": [ - { - "trigger": { - "lifetime_percentage": 80 - }, - "action": { - "action_type": "AutoRenew" - } - } - ], - "issuer": { - "name": "Self" - }, - "attributes": { - "enabled": true, - "created": 1652724957, - "updated": 1652724957 - } - }, - "pending": { - "id": "https://fakekvurl.vault.azure.net/certificates/delCert21493630328/pending" - } - } - }, - { - "RequestUri": "https://fakekvurl.vault.azure.net/certificates/delCert31493630328/create?api-version=7.3", - "RequestMethod": "POST", - "RequestHeaders": { - ":method": "POST", - "Accept": "application/json", - "Accept-Encoding": "gzip", - "Authorization": "Sanitized", - "Content-Length": "125", - "Content-Type": "application/json", - "User-Agent": "azsdk-go-azcertificates/v0.4.2 (go1.18; Windows_NT)" - }, - "RequestBody": { - "attributes": {}, - "policy": { - "issuer": { - "name": "Self" - }, - "secret_props": {}, - "x509_props": { - "sans": {}, - "subject": "CN=DefaultPolicy" - } - } - }, - "StatusCode": 202, - "ResponseHeaders": { - "Cache-Control": "no-cache", - "Content-Length": "1293", - "Content-Type": "application/json; charset=utf-8", - "Date": "Mon, 16 May 2022 18:16:08 GMT", - "Expires": "-1", - "Location": "https://fakekvurl.vault.azure.net/certificates/delCert31493630328/pending?api-version=7.3\u0026request_id=8ba584c409324269b077a7bb1c639fa4", - "Pragma": "no-cache", - "Retry-After": "10", - "Strict-Transport-Security": "max-age=31536000;includeSubDomains", - "X-Content-Type-Options": "nosniff", - "x-ms-keyvault-network-info": "conn_type=Ipv4;addr=73.83.78.150;act_addr_fam=InterNetwork;", - "x-ms-keyvault-region": "westus2", - "x-ms-keyvault-service-version": "1.9.395.1", - "x-ms-request-id": "12d6df4f-7894-43ca-9ea3-eb360b98d471" - }, - "ResponseBody": { - "id": "https://fakekvurl.vault.azure.net/certificates/delCert31493630328/pending", - "issuer": { - "name": "Self" - }, - "csr": "MIICqDCCAZACAQAwGDEWMBQGA1UEAxMNRGVmYXVsdFBvbGljeTCCASIwDQYJKoZIhvcNAQEBBQADggEPADCCAQoCggEBALeILE3wTsF0UFIENYIj6tD3eWTxM7eZLflndOcMYBb8UlRs6zkpKu8Qq1oQucPZhrQngzt37xEP3/k6FsWyt91IRFvgj7XQnx9IF\u002BJQa\u002BoQmLWpCDflAi4NKAwPpAGxsDtUxy62mlh2iobhpeYyw1XdUPBZq6eeIUMsm30tsEfrJ2N3BFAyjH6SMaa5or3zZ\u002BWdgFINPq39yRPr7g4fnO3ejphemPIkTMZWlJPwGplloKgLszRLyHLmC15fpk\u002Bc0oli5pPFHAF3Www/qd\u002B3pWZzyj1S7zLPvcjF1YLw7EIj\u002B/J6/pQJBiW4fNAa2uuxfymCK8zUYTgGokCu7bQFbTECAwEAAaBLMEkGCSqGSIb3DQEJDjE8MDowDgYDVR0PAQH/BAQDAgWgMB0GA1UdJQQWMBQGCCsGAQUFBwMBBggrBgEFBQcDAjAJBgNVHRMEAjAAMA0GCSqGSIb3DQEBCwUAA4IBAQBuhrSACdlEuvGiQW52zP/vNoG90oAJ8r/Y8je7wnSyFiNsuIyKqTp8QWHjKUnBgV\u002BZjF5voNdmhSYsVYQ7o549cbC6xkgrOGAMsFg6KqX6qG3QWdjNLG9Ac5FLdn8J9W/cSz6S7EdaSfRu5fL0yWkSsSMnuoXARhKIZXZYvm2HOuft1asDneLVj5yx/PPnjKDMTV0FKUxRmn\u002BbsdNsV80cxxi4VEFoJGImAWQD6hrvZGBlWG5NRhRi5P6cDF2dy/TqnGJs5RK6WxNx3x\u002BiI32ehncoGqdKxBpawm9ZvkdGaoBLkGB4tOB/DfCDegG1gHygTc9Qy9gVvB02pPTHm9xy", - "cancellation_requested": false, - "status": "inProgress", - "status_details": "Pending certificate created. Certificate request is in progress. This may take some time based on the issuer provider. Please check again later.", - "request_id": "8ba584c409324269b077a7bb1c639fa4" - } - }, - { - "RequestUri": "https://fakekvurl.vault.azure.net/certificates/delCert31493630328/pending?api-version=7.3\u0026request_id=8ba584c409324269b077a7bb1c639fa4", - "RequestMethod": "GET", - "RequestHeaders": { - ":method": "GET", - "Accept-Encoding": "gzip", - "Authorization": "Sanitized", - "User-Agent": "azsdk-go-azcertificates/v0.4.2 (go1.18; Windows_NT)" - }, - "RequestBody": null, - "StatusCode": 200, - "ResponseHeaders": { - "Cache-Control": "no-cache", - "Content-Length": "1293", - "Content-Type": "application/json; charset=utf-8", - "Date": "Mon, 16 May 2022 18:16:18 GMT", - "Expires": "-1", - "Pragma": "no-cache", - "Retry-After": "10", - "Strict-Transport-Security": "max-age=31536000;includeSubDomains", - "X-Content-Type-Options": "nosniff", - "x-ms-keyvault-network-info": "conn_type=Ipv4;addr=73.83.78.150;act_addr_fam=InterNetwork;", - "x-ms-keyvault-region": "westus2", - "x-ms-keyvault-service-version": "1.9.395.1", - "x-ms-request-id": "4484afa8-a83f-4cb5-942c-99e42aa5b901" - }, - "ResponseBody": { - "id": "https://fakekvurl.vault.azure.net/certificates/delCert31493630328/pending", - "issuer": { - "name": "Self" - }, - "csr": "MIICqDCCAZACAQAwGDEWMBQGA1UEAxMNRGVmYXVsdFBvbGljeTCCASIwDQYJKoZIhvcNAQEBBQADggEPADCCAQoCggEBALeILE3wTsF0UFIENYIj6tD3eWTxM7eZLflndOcMYBb8UlRs6zkpKu8Qq1oQucPZhrQngzt37xEP3/k6FsWyt91IRFvgj7XQnx9IF\u002BJQa\u002BoQmLWpCDflAi4NKAwPpAGxsDtUxy62mlh2iobhpeYyw1XdUPBZq6eeIUMsm30tsEfrJ2N3BFAyjH6SMaa5or3zZ\u002BWdgFINPq39yRPr7g4fnO3ejphemPIkTMZWlJPwGplloKgLszRLyHLmC15fpk\u002Bc0oli5pPFHAF3Www/qd\u002B3pWZzyj1S7zLPvcjF1YLw7EIj\u002B/J6/pQJBiW4fNAa2uuxfymCK8zUYTgGokCu7bQFbTECAwEAAaBLMEkGCSqGSIb3DQEJDjE8MDowDgYDVR0PAQH/BAQDAgWgMB0GA1UdJQQWMBQGCCsGAQUFBwMBBggrBgEFBQcDAjAJBgNVHRMEAjAAMA0GCSqGSIb3DQEBCwUAA4IBAQBuhrSACdlEuvGiQW52zP/vNoG90oAJ8r/Y8je7wnSyFiNsuIyKqTp8QWHjKUnBgV\u002BZjF5voNdmhSYsVYQ7o549cbC6xkgrOGAMsFg6KqX6qG3QWdjNLG9Ac5FLdn8J9W/cSz6S7EdaSfRu5fL0yWkSsSMnuoXARhKIZXZYvm2HOuft1asDneLVj5yx/PPnjKDMTV0FKUxRmn\u002BbsdNsV80cxxi4VEFoJGImAWQD6hrvZGBlWG5NRhRi5P6cDF2dy/TqnGJs5RK6WxNx3x\u002BiI32ehncoGqdKxBpawm9ZvkdGaoBLkGB4tOB/DfCDegG1gHygTc9Qy9gVvB02pPTHm9xy", - "cancellation_requested": false, - "status": "inProgress", - "status_details": "Pending certificate created. Certificate request is in progress. This may take some time based on the issuer provider. Please check again later.", - "request_id": "8ba584c409324269b077a7bb1c639fa4" - } - }, - { - "RequestUri": "https://fakekvurl.vault.azure.net/certificates/delCert31493630328/pending?api-version=7.3\u0026request_id=8ba584c409324269b077a7bb1c639fa4", - "RequestMethod": "GET", - "RequestHeaders": { - ":method": "GET", - "Accept-Encoding": "gzip", - "Authorization": "Sanitized", - "User-Agent": "azsdk-go-azcertificates/v0.4.2 (go1.18; Windows_NT)" - }, - "RequestBody": null, - "StatusCode": 200, - "ResponseHeaders": { - "Cache-Control": "no-cache", - "Content-Length": "1205", - "Content-Type": "application/json; charset=utf-8", - "Date": "Mon, 16 May 2022 18:16:28 GMT", - "Expires": "-1", - "Pragma": "no-cache", - "Strict-Transport-Security": "max-age=31536000;includeSubDomains", - "X-Content-Type-Options": "nosniff", - "x-ms-keyvault-network-info": "conn_type=Ipv4;addr=73.83.78.150;act_addr_fam=InterNetwork;", - "x-ms-keyvault-region": "westus2", - "x-ms-keyvault-service-version": "1.9.395.1", - "x-ms-request-id": "e99d58ac-a36e-4bc1-b9cf-5bd2f640bdfa" - }, - "ResponseBody": { - "id": "https://fakekvurl.vault.azure.net/certificates/delCert31493630328/pending", - "issuer": { - "name": "Self" - }, - "csr": "MIICqDCCAZACAQAwGDEWMBQGA1UEAxMNRGVmYXVsdFBvbGljeTCCASIwDQYJKoZIhvcNAQEBBQADggEPADCCAQoCggEBALeILE3wTsF0UFIENYIj6tD3eWTxM7eZLflndOcMYBb8UlRs6zkpKu8Qq1oQucPZhrQngzt37xEP3/k6FsWyt91IRFvgj7XQnx9IF\u002BJQa\u002BoQmLWpCDflAi4NKAwPpAGxsDtUxy62mlh2iobhpeYyw1XdUPBZq6eeIUMsm30tsEfrJ2N3BFAyjH6SMaa5or3zZ\u002BWdgFINPq39yRPr7g4fnO3ejphemPIkTMZWlJPwGplloKgLszRLyHLmC15fpk\u002Bc0oli5pPFHAF3Www/qd\u002B3pWZzyj1S7zLPvcjF1YLw7EIj\u002B/J6/pQJBiW4fNAa2uuxfymCK8zUYTgGokCu7bQFbTECAwEAAaBLMEkGCSqGSIb3DQEJDjE8MDowDgYDVR0PAQH/BAQDAgWgMB0GA1UdJQQWMBQGCCsGAQUFBwMBBggrBgEFBQcDAjAJBgNVHRMEAjAAMA0GCSqGSIb3DQEBCwUAA4IBAQBuhrSACdlEuvGiQW52zP/vNoG90oAJ8r/Y8je7wnSyFiNsuIyKqTp8QWHjKUnBgV\u002BZjF5voNdmhSYsVYQ7o549cbC6xkgrOGAMsFg6KqX6qG3QWdjNLG9Ac5FLdn8J9W/cSz6S7EdaSfRu5fL0yWkSsSMnuoXARhKIZXZYvm2HOuft1asDneLVj5yx/PPnjKDMTV0FKUxRmn\u002BbsdNsV80cxxi4VEFoJGImAWQD6hrvZGBlWG5NRhRi5P6cDF2dy/TqnGJs5RK6WxNx3x\u002BiI32ehncoGqdKxBpawm9ZvkdGaoBLkGB4tOB/DfCDegG1gHygTc9Qy9gVvB02pPTHm9xy", - "cancellation_requested": false, - "status": "completed", - "target": "https://fakekvurl.vault.azure.net/certificates/delCert31493630328", - "request_id": "8ba584c409324269b077a7bb1c639fa4" - } - }, - { - "RequestUri": "https://fakekvurl.vault.azure.net/certificates/delCert31493630328/?api-version=7.3", - "RequestMethod": "GET", - "RequestHeaders": { - ":method": "GET", - "Accept": "application/json", - "Accept-Encoding": "gzip", - "Authorization": "Sanitized", - "User-Agent": "azsdk-go-azcertificates/v0.4.2 (go1.18; Windows_NT)" - }, - "RequestBody": null, - "StatusCode": 200, - "ResponseHeaders": { - "Cache-Control": "no-cache", - "Content-Length": "2351", - "Content-Type": "application/json; charset=utf-8", - "Date": "Mon, 16 May 2022 18:16:28 GMT", - "Expires": "-1", - "Pragma": "no-cache", - "Strict-Transport-Security": "max-age=31536000;includeSubDomains", - "X-Content-Type-Options": "nosniff", - "x-ms-keyvault-network-info": "conn_type=Ipv4;addr=73.83.78.150;act_addr_fam=InterNetwork;", - "x-ms-keyvault-region": "westus2", - "x-ms-keyvault-service-version": "1.9.395.1", - "x-ms-request-id": "6be2f288-287e-40f0-bca2-811fcfef3d59" - }, - "ResponseBody": { - "id": "https://fakekvurl.vault.azure.net/certificates/delCert31493630328/1ae4fb3f37ae4a879576aead3f7a4aeb", - "kid": "https://fakekvurl.vault.azure.net/keys/delCert31493630328/1ae4fb3f37ae4a879576aead3f7a4aeb", - "sid": "https://fakekvurl.vault.azure.net/secrets/delCert31493630328/1ae4fb3f37ae4a879576aead3f7a4aeb", - "x5t": "qabypGFzGAcC55evOcEBBRMAm_E", - "cer": "MIIDNjCCAh6gAwIBAgIQNCgjGtOEQkqMQnmqYgLgXDANBgkqhkiG9w0BAQsFADAYMRYwFAYDVQQDEw1EZWZhdWx0UG9saWN5MB4XDTIyMDUxNjE4MDYxOVoXDTIzMDUxNjE4MTYxOVowGDEWMBQGA1UEAxMNRGVmYXVsdFBvbGljeTCCASIwDQYJKoZIhvcNAQEBBQADggEPADCCAQoCggEBALeILE3wTsF0UFIENYIj6tD3eWTxM7eZLflndOcMYBb8UlRs6zkpKu8Qq1oQucPZhrQngzt37xEP3/k6FsWyt91IRFvgj7XQnx9IF\u002BJQa\u002BoQmLWpCDflAi4NKAwPpAGxsDtUxy62mlh2iobhpeYyw1XdUPBZq6eeIUMsm30tsEfrJ2N3BFAyjH6SMaa5or3zZ\u002BWdgFINPq39yRPr7g4fnO3ejphemPIkTMZWlJPwGplloKgLszRLyHLmC15fpk\u002Bc0oli5pPFHAF3Www/qd\u002B3pWZzyj1S7zLPvcjF1YLw7EIj\u002B/J6/pQJBiW4fNAa2uuxfymCK8zUYTgGokCu7bQFbTECAwEAAaN8MHowDgYDVR0PAQH/BAQDAgWgMAkGA1UdEwQCMAAwHQYDVR0lBBYwFAYIKwYBBQUHAwEGCCsGAQUFBwMCMB8GA1UdIwQYMBaAFHFQjyostPu\u002BrxKwhf2hyw5onrxBMB0GA1UdDgQWBBRxUI8qLLT7vq8SsIX9ocsOaJ68QTANBgkqhkiG9w0BAQsFAAOCAQEAck\u002BQwjrWFurcIJJU66LyLyXonIGTSO18hqjbYX\u002Br7atCG5/iYYYBN\u002BM6aksJVZJXThpoe41ozIxRbtvdu0gFXNypG/\u002BLrxJgRb02O8Cyq5qqu1ys2neXtLIeaAJWbzMby\u002BVqN2vY55\u002BGZkSK6q6fAZupYT5Hjx4UcJuLj/3xTq1nVHOvzrgK6InyN8LEIApNi\u002B7q/sXUk\u002BO4KTPtg4tLDcwrq0gPk8W7DdR6XlhdFFI3Xv7LNHziMbOu\u002Bp45O6IFh7nWtBovPhySqiCpHfcWliQ\u002BvebZC6MIpzcwtyNtJYzSU9\u002BEIbZw2qf5ZYnZuq4XxqhYBwjyA35G4PcR\u002BVwMCw==", - "attributes": { - "enabled": true, - "nbf": 1652724379, - "exp": 1684260979, - "created": 1652724980, - "updated": 1652724980, - "recoveryLevel": "CustomizedRecoverable\u002BPurgeable", - "recoverableDays": 7 - }, - "policy": { - "id": "https://fakekvurl.vault.azure.net/certificates/delCert31493630328/policy", - "key_props": { - "exportable": true, - "kty": "RSA", - "key_size": 2048, - "reuse_key": false - }, - "secret_props": { - "contentType": "application/x-pkcs12" - }, - "x509_props": { - "subject": "CN=DefaultPolicy", - "sans": {}, - "ekus": [ - "1.3.6.1.5.5.7.3.1", - "1.3.6.1.5.5.7.3.2" - ], - "key_usage": [ - "digitalSignature", - "keyEncipherment" - ], - "validity_months": 12, - "basic_constraints": { - "ca": false - } - }, - "lifetime_actions": [ - { - "trigger": { - "lifetime_percentage": 80 - }, - "action": { - "action_type": "AutoRenew" - } - } - ], - "issuer": { - "name": "Self" - }, - "attributes": { - "enabled": true, - "created": 1652724968, - "updated": 1652724968 - } - }, - "pending": { - "id": "https://fakekvurl.vault.azure.net/certificates/delCert31493630328/pending" - } - } - }, - { - "RequestUri": "https://fakekvurl.vault.azure.net/certificates/delCert01493630328?api-version=7.3", - "RequestMethod": "DELETE", - "RequestHeaders": { - "Accept": "application/json", - "Accept-Encoding": "gzip", - "Authorization": "Sanitized", - "User-Agent": "azsdk-go-azcertificates/v0.4.2 (go1.18; Windows_NT)" - }, - "RequestBody": null, - "StatusCode": 200, - "ResponseHeaders": { - "Cache-Control": "no-cache", - "Content-Length": "2496", - "Content-Type": "application/json; charset=utf-8", - "Date": "Mon, 16 May 2022 18:16:28 GMT", - "Expires": "-1", - "Pragma": "no-cache", - "Strict-Transport-Security": "max-age=31536000;includeSubDomains", - "X-Content-Type-Options": "nosniff", - "x-ms-keyvault-network-info": "conn_type=Ipv4;addr=73.83.78.150;act_addr_fam=InterNetwork;", - "x-ms-keyvault-region": "westus2", - "x-ms-keyvault-service-version": "1.9.395.1", - "x-ms-request-id": "96f4af6f-a5f5-45ec-98d6-e75b4b9605e6" - }, - "ResponseBody": { - "recoveryId": "https://fakekvurl.vault.azure.net/deletedcertificates/delCert01493630328", - "deletedDate": 1652724989, - "scheduledPurgeDate": 1653329789, - "id": "https://fakekvurl.vault.azure.net/certificates/delCert01493630328/85120256ffa545b8b96c7b96d3ce3587", - "kid": "https://fakekvurl.vault.azure.net/keys/delCert01493630328/85120256ffa545b8b96c7b96d3ce3587", - "sid": "https://fakekvurl.vault.azure.net/secrets/delCert01493630328/85120256ffa545b8b96c7b96d3ce3587", - "x5t": "NCD_-PKgI356rH5ID8mJhQ7anq4", - "cer": "MIIDNjCCAh6gAwIBAgIQKEg1ihVnQZeQVnaFfFLXpDANBgkqhkiG9w0BAQsFADAYMRYwFAYDVQQDEw1EZWZhdWx0UG9saWN5MB4XDTIyMDUxNjE4MDU0MVoXDTIzMDUxNjE4MTU0MVowGDEWMBQGA1UEAxMNRGVmYXVsdFBvbGljeTCCASIwDQYJKoZIhvcNAQEBBQADggEPADCCAQoCggEBAPSgriw3Ey2ABNs1eGimLoXHtzHFF90GS9GJqBs\u002BXkaNNcM3I7iPbG2MayxSw1srMlgN8suYeaV/WC1XVQf9qVdhUTqphNM2D37IrIg4wejy/znar4dEl0sC3HwnUnuxJC4JqDBffAs/Wrgkh6V66lxuCa8VW/Pnr/urWaSMA2a/yQCSCvGqiDCIxsy/XkIt6ETowrOh89BWvP5NGWC4BpQrhSp6cUYeGMccL3FZMSu0XsAV4t7Cl584\u002Bb8NrJdQn3YlDr9n9TgJKc43NN8R\u002BNIlPWy3SRgGtwXjog9iWFdWbuWU/EV\u002B7MtueczN41d92LxsdOsd4yomZ9UmbuvXYlECAwEAAaN8MHowDgYDVR0PAQH/BAQDAgWgMAkGA1UdEwQCMAAwHQYDVR0lBBYwFAYIKwYBBQUHAwEGCCsGAQUFBwMCMB8GA1UdIwQYMBaAFCl1Mmtikb4\u002Bb2wDk\u002Bk3E9BLl785MB0GA1UdDgQWBBQpdTJrYpG\u002BPm9sA5PpNxPQS5e/OTANBgkqhkiG9w0BAQsFAAOCAQEAa/iCqKKc5jJ6ctDKXjcraCunvtqZNZ2VHWM1bRIZ\u002Bx0xnPdd8WlQuLJ\u002Bk5rt/bRYhfTAI5x06ZmqeuMaSLd60Z6mOqvzglomjJSQMpSj3jhZ2N55fHjdjcEGRqAVNKnyXxeW3CxmDMZToulNx3jA/FCKUYZ9\u002BLc5awQWkGT2wZzyJ/w94Uhj9EIvx0I/Qw9CT4HSlONX0qFWQ12Lvy0h5YLGdlC15FDwAV7bFzW9\u002BZ9Td9dp4gAlNPJHPM0ZYcEEhVNVPwLiNpjMrZFj0f7BJ0PuQQtX9R8OO\u002BQduGF1xbeocgnyNh4Abf5GN5kKlHOt4AGMamqT6RfO8FMNypGYYw==", - "attributes": { - "enabled": true, - "nbf": 1652724341, - "exp": 1684260941, - "created": 1652724941, - "updated": 1652724941, - "recoveryLevel": "CustomizedRecoverable\u002BPurgeable", - "recoverableDays": 7 - }, - "policy": { - "id": "https://fakekvurl.vault.azure.net/certificates/delCert01493630328/policy", - "key_props": { - "exportable": true, - "kty": "RSA", - "key_size": 2048, - "reuse_key": false - }, - "secret_props": { - "contentType": "application/x-pkcs12" - }, - "x509_props": { - "subject": "CN=DefaultPolicy", - "sans": {}, - "ekus": [ - "1.3.6.1.5.5.7.3.1", - "1.3.6.1.5.5.7.3.2" - ], - "key_usage": [ - "digitalSignature", - "keyEncipherment" - ], - "validity_months": 12, - "basic_constraints": { - "ca": false - } - }, - "lifetime_actions": [ - { - "trigger": { - "lifetime_percentage": 80 - }, - "action": { - "action_type": "AutoRenew" - } - } - ], - "issuer": { - "name": "Self" - }, - "attributes": { - "enabled": true, - "created": 1652724936, - "updated": 1652724936 - } - }, - "pending": { - "id": "https://fakekvurl.vault.azure.net/certificates/delCert01493630328/pending" - } - } - }, - { - "RequestUri": "https://fakekvurl.vault.azure.net/deletedcertificates/delCert01493630328?api-version=7.3", - "RequestMethod": "GET", - "RequestHeaders": { - ":method": "GET", - "Accept": "application/json", - "Accept-Encoding": "gzip", - "Authorization": "Sanitized", - "User-Agent": "azsdk-go-azcertificates/v0.4.2 (go1.18; Windows_NT)" - }, - "RequestBody": null, - "StatusCode": 404, - "ResponseHeaders": { - "Cache-Control": "no-cache", - "Content-Length": "102", - "Content-Type": "application/json; charset=utf-8", - "Date": "Mon, 16 May 2022 18:16:29 GMT", - "Expires": "-1", - "Pragma": "no-cache", - "Strict-Transport-Security": "max-age=31536000;includeSubDomains", - "X-Content-Type-Options": "nosniff", - "x-ms-keyvault-network-info": "conn_type=Ipv4;addr=73.83.78.150;act_addr_fam=InterNetwork;", - "x-ms-keyvault-region": "westus2", - "x-ms-keyvault-service-version": "1.9.395.1", - "x-ms-request-id": "56826afe-6dc5-4af7-b47d-3d1638f76dcd" - }, - "ResponseBody": { - "error": { - "code": "CertificateNotFound", - "message": "Deleted Certificate not found: delCert01493630328" - } - } - }, - { - "RequestUri": "https://fakekvurl.vault.azure.net/deletedcertificates/delCert01493630328?api-version=7.3", - "RequestMethod": "GET", - "RequestHeaders": { - ":method": "GET", - "Accept": "application/json", - "Accept-Encoding": "gzip", - "Authorization": "Sanitized", - "User-Agent": "azsdk-go-azcertificates/v0.4.2 (go1.18; Windows_NT)" - }, - "RequestBody": null, - "StatusCode": 404, - "ResponseHeaders": { - "Cache-Control": "no-cache", - "Content-Length": "102", - "Content-Type": "application/json; charset=utf-8", - "Date": "Mon, 16 May 2022 18:16:30 GMT", - "Expires": "-1", - "Pragma": "no-cache", - "Strict-Transport-Security": "max-age=31536000;includeSubDomains", - "X-Content-Type-Options": "nosniff", - "x-ms-keyvault-network-info": "conn_type=Ipv4;addr=73.83.78.150;act_addr_fam=InterNetwork;", - "x-ms-keyvault-region": "westus2", - "x-ms-keyvault-service-version": "1.9.395.1", - "x-ms-request-id": "6f79fc13-2b29-45c6-9efe-3060804cd816" - }, - "ResponseBody": { - "error": { - "code": "CertificateNotFound", - "message": "Deleted Certificate not found: delCert01493630328" - } - } - }, - { - "RequestUri": "https://fakekvurl.vault.azure.net/deletedcertificates/delCert01493630328?api-version=7.3", - "RequestMethod": "GET", - "RequestHeaders": { - ":method": "GET", - "Accept": "application/json", - "Accept-Encoding": "gzip", - "Authorization": "Sanitized", - "User-Agent": "azsdk-go-azcertificates/v0.4.2 (go1.18; Windows_NT)" - }, - "RequestBody": null, - "StatusCode": 404, - "ResponseHeaders": { - "Cache-Control": "no-cache", - "Content-Length": "102", - "Content-Type": "application/json; charset=utf-8", - "Date": "Mon, 16 May 2022 18:16:31 GMT", - "Expires": "-1", - "Pragma": "no-cache", - "Strict-Transport-Security": "max-age=31536000;includeSubDomains", - "X-Content-Type-Options": "nosniff", - "x-ms-keyvault-network-info": "conn_type=Ipv4;addr=73.83.78.150;act_addr_fam=InterNetwork;", - "x-ms-keyvault-region": "westus2", - "x-ms-keyvault-service-version": "1.9.395.1", - "x-ms-request-id": "4cfaea8e-c085-4f14-9464-b87122bd41e9" - }, - "ResponseBody": { - "error": { - "code": "CertificateNotFound", - "message": "Deleted Certificate not found: delCert01493630328" - } - } - }, - { - "RequestUri": "https://fakekvurl.vault.azure.net/deletedcertificates/delCert01493630328?api-version=7.3", - "RequestMethod": "GET", - "RequestHeaders": { - ":method": "GET", - "Accept": "application/json", - "Accept-Encoding": "gzip", - "Authorization": "Sanitized", - "User-Agent": "azsdk-go-azcertificates/v0.4.2 (go1.18; Windows_NT)" - }, - "RequestBody": null, - "StatusCode": 404, - "ResponseHeaders": { - "Cache-Control": "no-cache", - "Content-Length": "102", - "Content-Type": "application/json; charset=utf-8", - "Date": "Mon, 16 May 2022 18:16:32 GMT", - "Expires": "-1", - "Pragma": "no-cache", - "Strict-Transport-Security": "max-age=31536000;includeSubDomains", - "X-Content-Type-Options": "nosniff", - "x-ms-keyvault-network-info": "conn_type=Ipv4;addr=73.83.78.150;act_addr_fam=InterNetwork;", - "x-ms-keyvault-region": "westus2", - "x-ms-keyvault-service-version": "1.9.395.1", - "x-ms-request-id": "5e22c32f-e1d2-44e4-9e18-e962c164353d" - }, - "ResponseBody": { - "error": { - "code": "CertificateNotFound", - "message": "Deleted Certificate not found: delCert01493630328" - } - } - }, - { - "RequestUri": "https://fakekvurl.vault.azure.net/deletedcertificates/delCert01493630328?api-version=7.3", - "RequestMethod": "GET", - "RequestHeaders": { - ":method": "GET", - "Accept": "application/json", - "Accept-Encoding": "gzip", - "Authorization": "Sanitized", - "User-Agent": "azsdk-go-azcertificates/v0.4.2 (go1.18; Windows_NT)" - }, - "RequestBody": null, - "StatusCode": 404, - "ResponseHeaders": { - "Cache-Control": "no-cache", - "Content-Length": "102", - "Content-Type": "application/json; charset=utf-8", - "Date": "Mon, 16 May 2022 18:16:33 GMT", - "Expires": "-1", - "Pragma": "no-cache", - "Strict-Transport-Security": "max-age=31536000;includeSubDomains", - "X-Content-Type-Options": "nosniff", - "x-ms-keyvault-network-info": "conn_type=Ipv4;addr=73.83.78.150;act_addr_fam=InterNetwork;", - "x-ms-keyvault-region": "westus2", - "x-ms-keyvault-service-version": "1.9.395.1", - "x-ms-request-id": "276c5069-7eae-489c-b3b6-08b975ad6ab9" - }, - "ResponseBody": { - "error": { - "code": "CertificateNotFound", - "message": "Deleted Certificate not found: delCert01493630328" - } - } - }, - { - "RequestUri": "https://fakekvurl.vault.azure.net/deletedcertificates/delCert01493630328?api-version=7.3", - "RequestMethod": "GET", - "RequestHeaders": { - ":method": "GET", - "Accept": "application/json", - "Accept-Encoding": "gzip", - "Authorization": "Sanitized", - "User-Agent": "azsdk-go-azcertificates/v0.4.2 (go1.18; Windows_NT)" - }, - "RequestBody": null, - "StatusCode": 200, - "ResponseHeaders": { - "Cache-Control": "no-cache", - "Content-Length": "2496", - "Content-Type": "application/json; charset=utf-8", - "Date": "Mon, 16 May 2022 18:16:34 GMT", - "Expires": "-1", - "Pragma": "no-cache", - "Strict-Transport-Security": "max-age=31536000;includeSubDomains", - "X-Content-Type-Options": "nosniff", - "x-ms-keyvault-network-info": "conn_type=Ipv4;addr=73.83.78.150;act_addr_fam=InterNetwork;", - "x-ms-keyvault-region": "westus2", - "x-ms-keyvault-service-version": "1.9.395.1", - "x-ms-request-id": "6488fb51-9bf0-4f12-a748-55313eedce24" - }, - "ResponseBody": { - "recoveryId": "https://fakekvurl.vault.azure.net/deletedcertificates/delCert01493630328", - "deletedDate": 1652724989, - "scheduledPurgeDate": 1653329789, - "id": "https://fakekvurl.vault.azure.net/certificates/delCert01493630328/85120256ffa545b8b96c7b96d3ce3587", - "kid": "https://fakekvurl.vault.azure.net/keys/delCert01493630328/85120256ffa545b8b96c7b96d3ce3587", - "sid": "https://fakekvurl.vault.azure.net/secrets/delCert01493630328/85120256ffa545b8b96c7b96d3ce3587", - "x5t": "NCD_-PKgI356rH5ID8mJhQ7anq4", - "cer": "MIIDNjCCAh6gAwIBAgIQKEg1ihVnQZeQVnaFfFLXpDANBgkqhkiG9w0BAQsFADAYMRYwFAYDVQQDEw1EZWZhdWx0UG9saWN5MB4XDTIyMDUxNjE4MDU0MVoXDTIzMDUxNjE4MTU0MVowGDEWMBQGA1UEAxMNRGVmYXVsdFBvbGljeTCCASIwDQYJKoZIhvcNAQEBBQADggEPADCCAQoCggEBAPSgriw3Ey2ABNs1eGimLoXHtzHFF90GS9GJqBs\u002BXkaNNcM3I7iPbG2MayxSw1srMlgN8suYeaV/WC1XVQf9qVdhUTqphNM2D37IrIg4wejy/znar4dEl0sC3HwnUnuxJC4JqDBffAs/Wrgkh6V66lxuCa8VW/Pnr/urWaSMA2a/yQCSCvGqiDCIxsy/XkIt6ETowrOh89BWvP5NGWC4BpQrhSp6cUYeGMccL3FZMSu0XsAV4t7Cl584\u002Bb8NrJdQn3YlDr9n9TgJKc43NN8R\u002BNIlPWy3SRgGtwXjog9iWFdWbuWU/EV\u002B7MtueczN41d92LxsdOsd4yomZ9UmbuvXYlECAwEAAaN8MHowDgYDVR0PAQH/BAQDAgWgMAkGA1UdEwQCMAAwHQYDVR0lBBYwFAYIKwYBBQUHAwEGCCsGAQUFBwMCMB8GA1UdIwQYMBaAFCl1Mmtikb4\u002Bb2wDk\u002Bk3E9BLl785MB0GA1UdDgQWBBQpdTJrYpG\u002BPm9sA5PpNxPQS5e/OTANBgkqhkiG9w0BAQsFAAOCAQEAa/iCqKKc5jJ6ctDKXjcraCunvtqZNZ2VHWM1bRIZ\u002Bx0xnPdd8WlQuLJ\u002Bk5rt/bRYhfTAI5x06ZmqeuMaSLd60Z6mOqvzglomjJSQMpSj3jhZ2N55fHjdjcEGRqAVNKnyXxeW3CxmDMZToulNx3jA/FCKUYZ9\u002BLc5awQWkGT2wZzyJ/w94Uhj9EIvx0I/Qw9CT4HSlONX0qFWQ12Lvy0h5YLGdlC15FDwAV7bFzW9\u002BZ9Td9dp4gAlNPJHPM0ZYcEEhVNVPwLiNpjMrZFj0f7BJ0PuQQtX9R8OO\u002BQduGF1xbeocgnyNh4Abf5GN5kKlHOt4AGMamqT6RfO8FMNypGYYw==", - "attributes": { - "enabled": true, - "nbf": 1652724341, - "exp": 1684260941, - "created": 1652724941, - "updated": 1652724941, - "recoveryLevel": "CustomizedRecoverable\u002BPurgeable", - "recoverableDays": 7 - }, - "policy": { - "id": "https://fakekvurl.vault.azure.net/certificates/delCert01493630328/policy", - "key_props": { - "exportable": true, - "kty": "RSA", - "key_size": 2048, - "reuse_key": false - }, - "secret_props": { - "contentType": "application/x-pkcs12" - }, - "x509_props": { - "subject": "CN=DefaultPolicy", - "sans": {}, - "ekus": [ - "1.3.6.1.5.5.7.3.1", - "1.3.6.1.5.5.7.3.2" - ], - "key_usage": [ - "digitalSignature", - "keyEncipherment" - ], - "validity_months": 12, - "basic_constraints": { - "ca": false - } - }, - "lifetime_actions": [ - { - "trigger": { - "lifetime_percentage": 80 - }, - "action": { - "action_type": "AutoRenew" - } - } - ], - "issuer": { - "name": "Self" - }, - "attributes": { - "enabled": true, - "created": 1652724936, - "updated": 1652724936 - } - }, - "pending": { - "id": "https://fakekvurl.vault.azure.net/certificates/delCert01493630328/pending" - } - } - }, - { - "RequestUri": "https://fakekvurl.vault.azure.net/certificates/delCert11493630328?api-version=7.3", - "RequestMethod": "DELETE", - "RequestHeaders": { - "Accept": "application/json", - "Accept-Encoding": "gzip", - "Authorization": "Sanitized", - "User-Agent": "azsdk-go-azcertificates/v0.4.2 (go1.18; Windows_NT)" - }, - "RequestBody": null, - "StatusCode": 200, - "ResponseHeaders": { - "Cache-Control": "no-cache", - "Content-Length": "2496", - "Content-Type": "application/json; charset=utf-8", - "Date": "Mon, 16 May 2022 18:16:34 GMT", - "Expires": "-1", - "Pragma": "no-cache", - "Strict-Transport-Security": "max-age=31536000;includeSubDomains", - "X-Content-Type-Options": "nosniff", - "x-ms-keyvault-network-info": "conn_type=Ipv4;addr=73.83.78.150;act_addr_fam=InterNetwork;", - "x-ms-keyvault-region": "westus2", - "x-ms-keyvault-service-version": "1.9.395.1", - "x-ms-request-id": "2d7dbe78-4033-4787-a898-5bbbcc5b0fa5" - }, - "ResponseBody": { - "recoveryId": "https://fakekvurl.vault.azure.net/deletedcertificates/delCert11493630328", - "deletedDate": 1652724995, - "scheduledPurgeDate": 1653329795, - "id": "https://fakekvurl.vault.azure.net/certificates/delCert11493630328/d49acc927d7a422e9a0a82483add980e", - "kid": "https://fakekvurl.vault.azure.net/keys/delCert11493630328/d49acc927d7a422e9a0a82483add980e", - "sid": "https://fakekvurl.vault.azure.net/secrets/delCert11493630328/d49acc927d7a422e9a0a82483add980e", - "x5t": "G6DZlrfejTOt_ETQWlRb-GqmFCs", - "cer": "MIIDNjCCAh6gAwIBAgIQUWIQtWLjTIOWsQEiap9t/TANBgkqhkiG9w0BAQsFADAYMRYwFAYDVQQDEw1EZWZhdWx0UG9saWN5MB4XDTIyMDUxNjE4MDU1MVoXDTIzMDUxNjE4MTU1MVowGDEWMBQGA1UEAxMNRGVmYXVsdFBvbGljeTCCASIwDQYJKoZIhvcNAQEBBQADggEPADCCAQoCggEBAM\u002BStK73w4Cj1DaI68wFiCLoZyl1n6YW3pDmdZ/EK25lPWUtobRa\u002BLg5S4\u002BZO434Hb75gYRGXW0IJ\u002BA5KSxUSIIpvukC8wN/j32L7oOBJ/qjKetFcWcQXoq/1ZM5HVUJDt3ivhdshcIIgtX9/sNic/G0/vu4d6kN04UYBI7DxHXWvt3fY0TY9KrJZeOcpZWFP4rosGMT1r4SfGAeZwgyrWaufHhKh3u0Q6\u002BLZ8y8jp/d\u002BIV97sceGBAQNWGAuZF3bF06cH6lSCtKNtNgtq9KEk8XqJDBfoJQB8kI3ALtRB\u002BQgAxuN8Nxj\u002Bn3XTmR0nk\u002B20zhVkS1hJKPRCwmj6ne2WkCAwEAAaN8MHowDgYDVR0PAQH/BAQDAgWgMAkGA1UdEwQCMAAwHQYDVR0lBBYwFAYIKwYBBQUHAwEGCCsGAQUFBwMCMB8GA1UdIwQYMBaAFNYi1eM6VXd\u002ByfvtNYU14hsB2KMYMB0GA1UdDgQWBBTWItXjOlV3fsn77TWFNeIbAdijGDANBgkqhkiG9w0BAQsFAAOCAQEAKTrR4uGfmtVBsDrS/WaMOLwbv5iIviC1ZjPpx8v7gVbgAWRcXMl5jEoXUrt21TNduzDlWvIaMtcf4KPd5ZCQJqaEBzJK75Hr/mfolgnUHltWzSKnE1QYPxeUmUNfg1o8NbobfDI2whKu2Ec6RkKINEi\u002BZ349\u002B/9mK0PLFnaKbXNz2EscLvO7zYequqMgQbjxW28hU0QGB4wcr\u002BOsuJvwOlZZFTQ5VBikZl1Ke2eWf422yLvjhtttHuhJ\u002BwR1jyozAvtumHk177eKT9HzZZ2b5EPwmZUrWrLhnQ09yW0ozODHsOh7KCHg2iOr51DtzxEfggYGUCwzCrJHd5Ve\u002B85aYA==", - "attributes": { - "enabled": true, - "nbf": 1652724351, - "exp": 1684260951, - "created": 1652724951, - "updated": 1652724951, - "recoveryLevel": "CustomizedRecoverable\u002BPurgeable", - "recoverableDays": 7 - }, - "policy": { - "id": "https://fakekvurl.vault.azure.net/certificates/delCert11493630328/policy", - "key_props": { - "exportable": true, - "kty": "RSA", - "key_size": 2048, - "reuse_key": false - }, - "secret_props": { - "contentType": "application/x-pkcs12" - }, - "x509_props": { - "subject": "CN=DefaultPolicy", - "sans": {}, - "ekus": [ - "1.3.6.1.5.5.7.3.1", - "1.3.6.1.5.5.7.3.2" - ], - "key_usage": [ - "digitalSignature", - "keyEncipherment" - ], - "validity_months": 12, - "basic_constraints": { - "ca": false - } - }, - "lifetime_actions": [ - { - "trigger": { - "lifetime_percentage": 80 - }, - "action": { - "action_type": "AutoRenew" - } - } - ], - "issuer": { - "name": "Self" - }, - "attributes": { - "enabled": true, - "created": 1652724947, - "updated": 1652724947 - } - }, - "pending": { - "id": "https://fakekvurl.vault.azure.net/certificates/delCert11493630328/pending" - } - } - }, - { - "RequestUri": "https://fakekvurl.vault.azure.net/deletedcertificates/delCert11493630328?api-version=7.3", - "RequestMethod": "GET", - "RequestHeaders": { - ":method": "GET", - "Accept": "application/json", - "Accept-Encoding": "gzip", - "Authorization": "Sanitized", - "User-Agent": "azsdk-go-azcertificates/v0.4.2 (go1.18; Windows_NT)" - }, - "RequestBody": null, - "StatusCode": 404, - "ResponseHeaders": { - "Cache-Control": "no-cache", - "Content-Length": "102", - "Content-Type": "application/json; charset=utf-8", - "Date": "Mon, 16 May 2022 18:16:34 GMT", - "Expires": "-1", - "Pragma": "no-cache", - "Strict-Transport-Security": "max-age=31536000;includeSubDomains", - "X-Content-Type-Options": "nosniff", - "x-ms-keyvault-network-info": "conn_type=Ipv4;addr=73.83.78.150;act_addr_fam=InterNetwork;", - "x-ms-keyvault-region": "westus2", - "x-ms-keyvault-service-version": "1.9.395.1", - "x-ms-request-id": "61bfaced-f488-4410-b5ba-78562c0bb680" - }, - "ResponseBody": { - "error": { - "code": "CertificateNotFound", - "message": "Deleted Certificate not found: delCert11493630328" - } - } - }, - { - "RequestUri": "https://fakekvurl.vault.azure.net/deletedcertificates/delCert11493630328?api-version=7.3", - "RequestMethod": "GET", - "RequestHeaders": { - ":method": "GET", - "Accept": "application/json", - "Accept-Encoding": "gzip", - "Authorization": "Sanitized", - "User-Agent": "azsdk-go-azcertificates/v0.4.2 (go1.18; Windows_NT)" - }, - "RequestBody": null, - "StatusCode": 404, - "ResponseHeaders": { - "Cache-Control": "no-cache", - "Content-Length": "102", - "Content-Type": "application/json; charset=utf-8", - "Date": "Mon, 16 May 2022 18:16:35 GMT", - "Expires": "-1", - "Pragma": "no-cache", - "Strict-Transport-Security": "max-age=31536000;includeSubDomains", - "X-Content-Type-Options": "nosniff", - "x-ms-keyvault-network-info": "conn_type=Ipv4;addr=73.83.78.150;act_addr_fam=InterNetwork;", - "x-ms-keyvault-region": "westus2", - "x-ms-keyvault-service-version": "1.9.395.1", - "x-ms-request-id": "05485c6b-98ee-4240-b62b-05c873ad3d1e" - }, - "ResponseBody": { - "error": { - "code": "CertificateNotFound", - "message": "Deleted Certificate not found: delCert11493630328" - } - } - }, - { - "RequestUri": "https://fakekvurl.vault.azure.net/deletedcertificates/delCert11493630328?api-version=7.3", - "RequestMethod": "GET", - "RequestHeaders": { - ":method": "GET", - "Accept": "application/json", - "Accept-Encoding": "gzip", - "Authorization": "Sanitized", - "User-Agent": "azsdk-go-azcertificates/v0.4.2 (go1.18; Windows_NT)" - }, - "RequestBody": null, - "StatusCode": 404, - "ResponseHeaders": { - "Cache-Control": "no-cache", - "Content-Length": "102", - "Content-Type": "application/json; charset=utf-8", - "Date": "Mon, 16 May 2022 18:16:36 GMT", - "Expires": "-1", - "Pragma": "no-cache", - "Strict-Transport-Security": "max-age=31536000;includeSubDomains", - "X-Content-Type-Options": "nosniff", - "x-ms-keyvault-network-info": "conn_type=Ipv4;addr=73.83.78.150;act_addr_fam=InterNetwork;", - "x-ms-keyvault-region": "westus2", - "x-ms-keyvault-service-version": "1.9.395.1", - "x-ms-request-id": "d4f6cdaa-c730-4f04-9621-d325a6d0cbef" - }, - "ResponseBody": { - "error": { - "code": "CertificateNotFound", - "message": "Deleted Certificate not found: delCert11493630328" - } - } - }, - { - "RequestUri": "https://fakekvurl.vault.azure.net/deletedcertificates/delCert11493630328?api-version=7.3", - "RequestMethod": "GET", - "RequestHeaders": { - ":method": "GET", - "Accept": "application/json", - "Accept-Encoding": "gzip", - "Authorization": "Sanitized", - "User-Agent": "azsdk-go-azcertificates/v0.4.2 (go1.18; Windows_NT)" - }, - "RequestBody": null, - "StatusCode": 404, - "ResponseHeaders": { - "Cache-Control": "no-cache", - "Content-Length": "102", - "Content-Type": "application/json; charset=utf-8", - "Date": "Mon, 16 May 2022 18:16:38 GMT", - "Expires": "-1", - "Pragma": "no-cache", - "Strict-Transport-Security": "max-age=31536000;includeSubDomains", - "X-Content-Type-Options": "nosniff", - "x-ms-keyvault-network-info": "conn_type=Ipv4;addr=73.83.78.150;act_addr_fam=InterNetwork;", - "x-ms-keyvault-region": "westus2", - "x-ms-keyvault-service-version": "1.9.395.1", - "x-ms-request-id": "dcdddc91-bc2e-4032-95c5-60ff09a19051" - }, - "ResponseBody": { - "error": { - "code": "CertificateNotFound", - "message": "Deleted Certificate not found: delCert11493630328" - } - } - }, - { - "RequestUri": "https://fakekvurl.vault.azure.net/deletedcertificates/delCert11493630328?api-version=7.3", - "RequestMethod": "GET", - "RequestHeaders": { - ":method": "GET", - "Accept": "application/json", - "Accept-Encoding": "gzip", - "Authorization": "Sanitized", - "User-Agent": "azsdk-go-azcertificates/v0.4.2 (go1.18; Windows_NT)" - }, - "RequestBody": null, - "StatusCode": 404, - "ResponseHeaders": { - "Cache-Control": "no-cache", - "Content-Length": "102", - "Content-Type": "application/json; charset=utf-8", - "Date": "Mon, 16 May 2022 18:16:39 GMT", - "Expires": "-1", - "Pragma": "no-cache", - "Strict-Transport-Security": "max-age=31536000;includeSubDomains", - "X-Content-Type-Options": "nosniff", - "x-ms-keyvault-network-info": "conn_type=Ipv4;addr=73.83.78.150;act_addr_fam=InterNetwork;", - "x-ms-keyvault-region": "westus2", - "x-ms-keyvault-service-version": "1.9.395.1", - "x-ms-request-id": "e478cc18-95fe-44ce-be52-23c934e13dd8" - }, - "ResponseBody": { - "error": { - "code": "CertificateNotFound", - "message": "Deleted Certificate not found: delCert11493630328" - } - } - }, - { - "RequestUri": "https://fakekvurl.vault.azure.net/deletedcertificates/delCert11493630328?api-version=7.3", - "RequestMethod": "GET", - "RequestHeaders": { - ":method": "GET", - "Accept": "application/json", - "Accept-Encoding": "gzip", - "Authorization": "Sanitized", - "User-Agent": "azsdk-go-azcertificates/v0.4.2 (go1.18; Windows_NT)" - }, - "RequestBody": null, - "StatusCode": 404, - "ResponseHeaders": { - "Cache-Control": "no-cache", - "Content-Length": "102", - "Content-Type": "application/json; charset=utf-8", - "Date": "Mon, 16 May 2022 18:16:40 GMT", - "Expires": "-1", - "Pragma": "no-cache", - "Strict-Transport-Security": "max-age=31536000;includeSubDomains", - "X-Content-Type-Options": "nosniff", - "x-ms-keyvault-network-info": "conn_type=Ipv4;addr=73.83.78.150;act_addr_fam=InterNetwork;", - "x-ms-keyvault-region": "westus2", - "x-ms-keyvault-service-version": "1.9.395.1", - "x-ms-request-id": "2edea800-9018-4905-aea7-e0de818984ec" - }, - "ResponseBody": { - "error": { - "code": "CertificateNotFound", - "message": "Deleted Certificate not found: delCert11493630328" - } - } - }, - { - "RequestUri": "https://fakekvurl.vault.azure.net/deletedcertificates/delCert11493630328?api-version=7.3", - "RequestMethod": "GET", - "RequestHeaders": { - ":method": "GET", - "Accept": "application/json", - "Accept-Encoding": "gzip", - "Authorization": "Sanitized", - "User-Agent": "azsdk-go-azcertificates/v0.4.2 (go1.18; Windows_NT)" - }, - "RequestBody": null, - "StatusCode": 404, - "ResponseHeaders": { - "Cache-Control": "no-cache", - "Content-Length": "102", - "Content-Type": "application/json; charset=utf-8", - "Date": "Mon, 16 May 2022 18:16:41 GMT", - "Expires": "-1", - "Pragma": "no-cache", - "Strict-Transport-Security": "max-age=31536000;includeSubDomains", - "X-Content-Type-Options": "nosniff", - "x-ms-keyvault-network-info": "conn_type=Ipv4;addr=73.83.78.150;act_addr_fam=InterNetwork;", - "x-ms-keyvault-region": "westus2", - "x-ms-keyvault-service-version": "1.9.395.1", - "x-ms-request-id": "20a72246-160e-49c8-9e89-0d501733311f" - }, - "ResponseBody": { - "error": { - "code": "CertificateNotFound", - "message": "Deleted Certificate not found: delCert11493630328" - } - } - }, - { - "RequestUri": "https://fakekvurl.vault.azure.net/deletedcertificates/delCert11493630328?api-version=7.3", - "RequestMethod": "GET", - "RequestHeaders": { - ":method": "GET", - "Accept": "application/json", - "Accept-Encoding": "gzip", - "Authorization": "Sanitized", - "User-Agent": "azsdk-go-azcertificates/v0.4.2 (go1.18; Windows_NT)" - }, - "RequestBody": null, - "StatusCode": 404, - "ResponseHeaders": { - "Cache-Control": "no-cache", - "Content-Length": "102", - "Content-Type": "application/json; charset=utf-8", - "Date": "Mon, 16 May 2022 18:16:42 GMT", - "Expires": "-1", - "Pragma": "no-cache", - "Strict-Transport-Security": "max-age=31536000;includeSubDomains", - "X-Content-Type-Options": "nosniff", - "x-ms-keyvault-network-info": "conn_type=Ipv4;addr=73.83.78.150;act_addr_fam=InterNetwork;", - "x-ms-keyvault-region": "westus2", - "x-ms-keyvault-service-version": "1.9.395.1", - "x-ms-request-id": "cb47929e-bcaa-4082-a722-2a8ae0f7d5ee" - }, - "ResponseBody": { - "error": { - "code": "CertificateNotFound", - "message": "Deleted Certificate not found: delCert11493630328" - } - } - }, - { - "RequestUri": "https://fakekvurl.vault.azure.net/deletedcertificates/delCert11493630328?api-version=7.3", - "RequestMethod": "GET", - "RequestHeaders": { - ":method": "GET", - "Accept": "application/json", - "Accept-Encoding": "gzip", - "Authorization": "Sanitized", - "User-Agent": "azsdk-go-azcertificates/v0.4.2 (go1.18; Windows_NT)" - }, - "RequestBody": null, - "StatusCode": 404, - "ResponseHeaders": { - "Cache-Control": "no-cache", - "Content-Length": "102", - "Content-Type": "application/json; charset=utf-8", - "Date": "Mon, 16 May 2022 18:16:43 GMT", - "Expires": "-1", - "Pragma": "no-cache", - "Strict-Transport-Security": "max-age=31536000;includeSubDomains", - "X-Content-Type-Options": "nosniff", - "x-ms-keyvault-network-info": "conn_type=Ipv4;addr=73.83.78.150;act_addr_fam=InterNetwork;", - "x-ms-keyvault-region": "westus2", - "x-ms-keyvault-service-version": "1.9.395.1", - "x-ms-request-id": "7dd2402d-47cf-44a5-a5ae-766958918d2a" - }, - "ResponseBody": { - "error": { - "code": "CertificateNotFound", - "message": "Deleted Certificate not found: delCert11493630328" - } - } - }, - { - "RequestUri": "https://fakekvurl.vault.azure.net/deletedcertificates/delCert11493630328?api-version=7.3", - "RequestMethod": "GET", - "RequestHeaders": { - ":method": "GET", - "Accept": "application/json", - "Accept-Encoding": "gzip", - "Authorization": "Sanitized", - "User-Agent": "azsdk-go-azcertificates/v0.4.2 (go1.18; Windows_NT)" - }, - "RequestBody": null, - "StatusCode": 200, - "ResponseHeaders": { - "Cache-Control": "no-cache", - "Content-Length": "2496", - "Content-Type": "application/json; charset=utf-8", - "Date": "Mon, 16 May 2022 18:16:44 GMT", - "Expires": "-1", - "Pragma": "no-cache", - "Strict-Transport-Security": "max-age=31536000;includeSubDomains", - "X-Content-Type-Options": "nosniff", - "x-ms-keyvault-network-info": "conn_type=Ipv4;addr=73.83.78.150;act_addr_fam=InterNetwork;", - "x-ms-keyvault-region": "westus2", - "x-ms-keyvault-service-version": "1.9.395.1", - "x-ms-request-id": "260158d7-029b-42a1-bbab-e2d5e7632ffe" - }, - "ResponseBody": { - "recoveryId": "https://fakekvurl.vault.azure.net/deletedcertificates/delCert11493630328", - "deletedDate": 1652724995, - "scheduledPurgeDate": 1653329795, - "id": "https://fakekvurl.vault.azure.net/certificates/delCert11493630328/d49acc927d7a422e9a0a82483add980e", - "kid": "https://fakekvurl.vault.azure.net/keys/delCert11493630328/d49acc927d7a422e9a0a82483add980e", - "sid": "https://fakekvurl.vault.azure.net/secrets/delCert11493630328/d49acc927d7a422e9a0a82483add980e", - "x5t": "G6DZlrfejTOt_ETQWlRb-GqmFCs", - "cer": "MIIDNjCCAh6gAwIBAgIQUWIQtWLjTIOWsQEiap9t/TANBgkqhkiG9w0BAQsFADAYMRYwFAYDVQQDEw1EZWZhdWx0UG9saWN5MB4XDTIyMDUxNjE4MDU1MVoXDTIzMDUxNjE4MTU1MVowGDEWMBQGA1UEAxMNRGVmYXVsdFBvbGljeTCCASIwDQYJKoZIhvcNAQEBBQADggEPADCCAQoCggEBAM\u002BStK73w4Cj1DaI68wFiCLoZyl1n6YW3pDmdZ/EK25lPWUtobRa\u002BLg5S4\u002BZO434Hb75gYRGXW0IJ\u002BA5KSxUSIIpvukC8wN/j32L7oOBJ/qjKetFcWcQXoq/1ZM5HVUJDt3ivhdshcIIgtX9/sNic/G0/vu4d6kN04UYBI7DxHXWvt3fY0TY9KrJZeOcpZWFP4rosGMT1r4SfGAeZwgyrWaufHhKh3u0Q6\u002BLZ8y8jp/d\u002BIV97sceGBAQNWGAuZF3bF06cH6lSCtKNtNgtq9KEk8XqJDBfoJQB8kI3ALtRB\u002BQgAxuN8Nxj\u002Bn3XTmR0nk\u002B20zhVkS1hJKPRCwmj6ne2WkCAwEAAaN8MHowDgYDVR0PAQH/BAQDAgWgMAkGA1UdEwQCMAAwHQYDVR0lBBYwFAYIKwYBBQUHAwEGCCsGAQUFBwMCMB8GA1UdIwQYMBaAFNYi1eM6VXd\u002ByfvtNYU14hsB2KMYMB0GA1UdDgQWBBTWItXjOlV3fsn77TWFNeIbAdijGDANBgkqhkiG9w0BAQsFAAOCAQEAKTrR4uGfmtVBsDrS/WaMOLwbv5iIviC1ZjPpx8v7gVbgAWRcXMl5jEoXUrt21TNduzDlWvIaMtcf4KPd5ZCQJqaEBzJK75Hr/mfolgnUHltWzSKnE1QYPxeUmUNfg1o8NbobfDI2whKu2Ec6RkKINEi\u002BZ349\u002B/9mK0PLFnaKbXNz2EscLvO7zYequqMgQbjxW28hU0QGB4wcr\u002BOsuJvwOlZZFTQ5VBikZl1Ke2eWf422yLvjhtttHuhJ\u002BwR1jyozAvtumHk177eKT9HzZZ2b5EPwmZUrWrLhnQ09yW0ozODHsOh7KCHg2iOr51DtzxEfggYGUCwzCrJHd5Ve\u002B85aYA==", - "attributes": { - "enabled": true, - "nbf": 1652724351, - "exp": 1684260951, - "created": 1652724951, - "updated": 1652724951, - "recoveryLevel": "CustomizedRecoverable\u002BPurgeable", - "recoverableDays": 7 - }, - "policy": { - "id": "https://fakekvurl.vault.azure.net/certificates/delCert11493630328/policy", - "key_props": { - "exportable": true, - "kty": "RSA", - "key_size": 2048, - "reuse_key": false - }, - "secret_props": { - "contentType": "application/x-pkcs12" - }, - "x509_props": { - "subject": "CN=DefaultPolicy", - "sans": {}, - "ekus": [ - "1.3.6.1.5.5.7.3.1", - "1.3.6.1.5.5.7.3.2" - ], - "key_usage": [ - "digitalSignature", - "keyEncipherment" - ], - "validity_months": 12, - "basic_constraints": { - "ca": false - } - }, - "lifetime_actions": [ - { - "trigger": { - "lifetime_percentage": 80 - }, - "action": { - "action_type": "AutoRenew" - } - } - ], - "issuer": { - "name": "Self" - }, - "attributes": { - "enabled": true, - "created": 1652724947, - "updated": 1652724947 - } - }, - "pending": { - "id": "https://fakekvurl.vault.azure.net/certificates/delCert11493630328/pending" - } - } - }, - { - "RequestUri": "https://fakekvurl.vault.azure.net/certificates/delCert21493630328?api-version=7.3", - "RequestMethod": "DELETE", - "RequestHeaders": { - "Accept": "application/json", - "Accept-Encoding": "gzip", - "Authorization": "Sanitized", - "User-Agent": "azsdk-go-azcertificates/v0.4.2 (go1.18; Windows_NT)" - }, - "RequestBody": null, - "StatusCode": 200, - "ResponseHeaders": { - "Cache-Control": "no-cache", - "Content-Length": "2496", - "Content-Type": "application/json; charset=utf-8", - "Date": "Mon, 16 May 2022 18:16:44 GMT", - "Expires": "-1", - "Pragma": "no-cache", - "Strict-Transport-Security": "max-age=31536000;includeSubDomains", - "X-Content-Type-Options": "nosniff", - "x-ms-keyvault-network-info": "conn_type=Ipv4;addr=73.83.78.150;act_addr_fam=InterNetwork;", - "x-ms-keyvault-region": "westus2", - "x-ms-keyvault-service-version": "1.9.395.1", - "x-ms-request-id": "d5c5aa4c-8c29-497e-a80b-d62e25d00a11" - }, - "ResponseBody": { - "recoveryId": "https://fakekvurl.vault.azure.net/deletedcertificates/delCert21493630328", - "deletedDate": 1652725005, - "scheduledPurgeDate": 1653329805, - "id": "https://fakekvurl.vault.azure.net/certificates/delCert21493630328/dc814947d4ba4c1b9cace198e56b2205", - "kid": "https://fakekvurl.vault.azure.net/keys/delCert21493630328/dc814947d4ba4c1b9cace198e56b2205", - "sid": "https://fakekvurl.vault.azure.net/secrets/delCert21493630328/dc814947d4ba4c1b9cace198e56b2205", - "x5t": "oJZDnMdDGp09vVxTfNQw-2lMrs4", - "cer": "MIIDNjCCAh6gAwIBAgIQYkJBn0/qSdmW63ayt6qLrTANBgkqhkiG9w0BAQsFADAYMRYwFAYDVQQDEw1EZWZhdWx0UG9saWN5MB4XDTIyMDUxNjE4MDYwNFoXDTIzMDUxNjE4MTYwNFowGDEWMBQGA1UEAxMNRGVmYXVsdFBvbGljeTCCASIwDQYJKoZIhvcNAQEBBQADggEPADCCAQoCggEBALHlMJPVR10dQHUdsdgR0ofZPPaFv0T4glNgvcQV2VoTegHyOfHpT9\u002BYyZb1izBHl8drrfFPqqtfhZp2\u002BxrdXGgEOazqNPBSPzmpNocGsMBVrcQOcMwQP/5P\u002BfE3lwTslQxlHBnJKjIjuh2sY6SogszsLSwiSdVlv6U4TlwjgAMpvw7G0zklNKNTu4/Q3IFyKJEdm581nuEJzs0DHkIzIe2GPuGbTkAynPImRDgEJH2oGZLJhJBgfcQ9OF/kMJZWJ7L3xfVcG1RO6IO8MPhNy5SkIQLnR4tXacK8BNHjc44\u002Bd9A2duCzU5MzVumjkEzCNoHgErGefFzocn4MV5ax2XECAwEAAaN8MHowDgYDVR0PAQH/BAQDAgWgMAkGA1UdEwQCMAAwHQYDVR0lBBYwFAYIKwYBBQUHAwEGCCsGAQUFBwMCMB8GA1UdIwQYMBaAFBWrlQ25dThSy\u002BxaEj0VXZydH0tOMB0GA1UdDgQWBBQVq5UNuXU4UsvsWhI9FV2cnR9LTjANBgkqhkiG9w0BAQsFAAOCAQEAVsBJA9d615XBY9qTaSeYnyLdvb3yZPH2lQRjg5BORjCRQgvX/gjlI9WAK7jbFS0KsZsybDivpeD05JeVyXKBIHaumKq7FX77XfkFeDLHzur8b1xtKipdTqwasRpoEsNTxHLzRMKf8CT4zSEcelY/1oVzMFJql7DSGWeDHjFMkQSluIA3Zw24kYf1TRWpgcNaQY2rgkvEShyT8F/NrGOW93T8Jl\u002BvLvPFl5TQ\u002BfRIntRFCkdCAjy8HNhf//oR9SOjskGQ92Jr0JAPEAii9uObT09D4Jd/E1Bpe8Vqhv1SuP727N15FhU1v5VdL4RkpXgv6C9A9zUP2h7BdIUNovDNpw==", - "attributes": { - "enabled": true, - "nbf": 1652724364, - "exp": 1684260964, - "created": 1652724964, - "updated": 1652724964, - "recoveryLevel": "CustomizedRecoverable\u002BPurgeable", - "recoverableDays": 7 - }, - "policy": { - "id": "https://fakekvurl.vault.azure.net/certificates/delCert21493630328/policy", - "key_props": { - "exportable": true, - "kty": "RSA", - "key_size": 2048, - "reuse_key": false - }, - "secret_props": { - "contentType": "application/x-pkcs12" - }, - "x509_props": { - "subject": "CN=DefaultPolicy", - "sans": {}, - "ekus": [ - "1.3.6.1.5.5.7.3.1", - "1.3.6.1.5.5.7.3.2" - ], - "key_usage": [ - "digitalSignature", - "keyEncipherment" - ], - "validity_months": 12, - "basic_constraints": { - "ca": false - } - }, - "lifetime_actions": [ - { - "trigger": { - "lifetime_percentage": 80 - }, - "action": { - "action_type": "AutoRenew" - } - } - ], - "issuer": { - "name": "Self" - }, - "attributes": { - "enabled": true, - "created": 1652724957, - "updated": 1652724957 - } - }, - "pending": { - "id": "https://fakekvurl.vault.azure.net/certificates/delCert21493630328/pending" - } - } - }, - { - "RequestUri": "https://fakekvurl.vault.azure.net/deletedcertificates/delCert21493630328?api-version=7.3", - "RequestMethod": "GET", - "RequestHeaders": { - ":method": "GET", - "Accept": "application/json", - "Accept-Encoding": "gzip", - "Authorization": "Sanitized", - "User-Agent": "azsdk-go-azcertificates/v0.4.2 (go1.18; Windows_NT)" - }, - "RequestBody": null, - "StatusCode": 404, - "ResponseHeaders": { - "Cache-Control": "no-cache", - "Content-Length": "102", - "Content-Type": "application/json; charset=utf-8", - "Date": "Mon, 16 May 2022 18:16:44 GMT", - "Expires": "-1", - "Pragma": "no-cache", - "Strict-Transport-Security": "max-age=31536000;includeSubDomains", - "X-Content-Type-Options": "nosniff", - "x-ms-keyvault-network-info": "conn_type=Ipv4;addr=73.83.78.150;act_addr_fam=InterNetwork;", - "x-ms-keyvault-region": "westus2", - "x-ms-keyvault-service-version": "1.9.395.1", - "x-ms-request-id": "5cd09b0c-cce3-4d69-b8ee-c1ea3a80d126" - }, - "ResponseBody": { - "error": { - "code": "CertificateNotFound", - "message": "Deleted Certificate not found: delCert21493630328" - } - } - }, - { - "RequestUri": "https://fakekvurl.vault.azure.net/deletedcertificates/delCert21493630328?api-version=7.3", - "RequestMethod": "GET", - "RequestHeaders": { - ":method": "GET", - "Accept": "application/json", - "Accept-Encoding": "gzip", - "Authorization": "Sanitized", - "User-Agent": "azsdk-go-azcertificates/v0.4.2 (go1.18; Windows_NT)" - }, - "RequestBody": null, - "StatusCode": 404, - "ResponseHeaders": { - "Cache-Control": "no-cache", - "Content-Length": "102", - "Content-Type": "application/json; charset=utf-8", - "Date": "Mon, 16 May 2022 18:16:45 GMT", - "Expires": "-1", - "Pragma": "no-cache", - "Strict-Transport-Security": "max-age=31536000;includeSubDomains", - "X-Content-Type-Options": "nosniff", - "x-ms-keyvault-network-info": "conn_type=Ipv4;addr=73.83.78.150;act_addr_fam=InterNetwork;", - "x-ms-keyvault-region": "westus2", - "x-ms-keyvault-service-version": "1.9.395.1", - "x-ms-request-id": "b4a40edc-e1ab-4c39-8cff-d8c349e5143a" - }, - "ResponseBody": { - "error": { - "code": "CertificateNotFound", - "message": "Deleted Certificate not found: delCert21493630328" - } - } - }, - { - "RequestUri": "https://fakekvurl.vault.azure.net/deletedcertificates/delCert21493630328?api-version=7.3", - "RequestMethod": "GET", - "RequestHeaders": { - ":method": "GET", - "Accept": "application/json", - "Accept-Encoding": "gzip", - "Authorization": "Sanitized", - "User-Agent": "azsdk-go-azcertificates/v0.4.2 (go1.18; Windows_NT)" - }, - "RequestBody": null, - "StatusCode": 404, - "ResponseHeaders": { - "Cache-Control": "no-cache", - "Content-Length": "102", - "Content-Type": "application/json; charset=utf-8", - "Date": "Mon, 16 May 2022 18:16:46 GMT", - "Expires": "-1", - "Pragma": "no-cache", - "Strict-Transport-Security": "max-age=31536000;includeSubDomains", - "X-Content-Type-Options": "nosniff", - "x-ms-keyvault-network-info": "conn_type=Ipv4;addr=73.83.78.150;act_addr_fam=InterNetwork;", - "x-ms-keyvault-region": "westus2", - "x-ms-keyvault-service-version": "1.9.395.1", - "x-ms-request-id": "3a9a8d2f-33f7-434f-9c38-04acaf0f16bd" - }, - "ResponseBody": { - "error": { - "code": "CertificateNotFound", - "message": "Deleted Certificate not found: delCert21493630328" - } - } - }, - { - "RequestUri": "https://fakekvurl.vault.azure.net/deletedcertificates/delCert21493630328?api-version=7.3", - "RequestMethod": "GET", - "RequestHeaders": { - ":method": "GET", - "Accept": "application/json", - "Accept-Encoding": "gzip", - "Authorization": "Sanitized", - "User-Agent": "azsdk-go-azcertificates/v0.4.2 (go1.18; Windows_NT)" - }, - "RequestBody": null, - "StatusCode": 404, - "ResponseHeaders": { - "Cache-Control": "no-cache", - "Content-Length": "102", - "Content-Type": "application/json; charset=utf-8", - "Date": "Mon, 16 May 2022 18:16:47 GMT", - "Expires": "-1", - "Pragma": "no-cache", - "Strict-Transport-Security": "max-age=31536000;includeSubDomains", - "X-Content-Type-Options": "nosniff", - "x-ms-keyvault-network-info": "conn_type=Ipv4;addr=73.83.78.150;act_addr_fam=InterNetwork;", - "x-ms-keyvault-region": "westus2", - "x-ms-keyvault-service-version": "1.9.395.1", - "x-ms-request-id": "1d4c7eb4-017d-4cfa-8920-386ac16a69f8" - }, - "ResponseBody": { - "error": { - "code": "CertificateNotFound", - "message": "Deleted Certificate not found: delCert21493630328" - } - } - }, - { - "RequestUri": "https://fakekvurl.vault.azure.net/deletedcertificates/delCert21493630328?api-version=7.3", - "RequestMethod": "GET", - "RequestHeaders": { - ":method": "GET", - "Accept": "application/json", - "Accept-Encoding": "gzip", - "Authorization": "Sanitized", - "User-Agent": "azsdk-go-azcertificates/v0.4.2 (go1.18; Windows_NT)" - }, - "RequestBody": null, - "StatusCode": 200, - "ResponseHeaders": { - "Cache-Control": "no-cache", - "Content-Length": "2496", - "Content-Type": "application/json; charset=utf-8", - "Date": "Mon, 16 May 2022 18:16:49 GMT", - "Expires": "-1", - "Pragma": "no-cache", - "Strict-Transport-Security": "max-age=31536000;includeSubDomains", - "X-Content-Type-Options": "nosniff", - "x-ms-keyvault-network-info": "conn_type=Ipv4;addr=73.83.78.150;act_addr_fam=InterNetwork;", - "x-ms-keyvault-region": "westus2", - "x-ms-keyvault-service-version": "1.9.395.1", - "x-ms-request-id": "f4482cc3-1718-462d-add1-043e930664d8" - }, - "ResponseBody": { - "recoveryId": "https://fakekvurl.vault.azure.net/deletedcertificates/delCert21493630328", - "deletedDate": 1652725005, - "scheduledPurgeDate": 1653329805, - "id": "https://fakekvurl.vault.azure.net/certificates/delCert21493630328/dc814947d4ba4c1b9cace198e56b2205", - "kid": "https://fakekvurl.vault.azure.net/keys/delCert21493630328/dc814947d4ba4c1b9cace198e56b2205", - "sid": "https://fakekvurl.vault.azure.net/secrets/delCert21493630328/dc814947d4ba4c1b9cace198e56b2205", - "x5t": "oJZDnMdDGp09vVxTfNQw-2lMrs4", - "cer": "MIIDNjCCAh6gAwIBAgIQYkJBn0/qSdmW63ayt6qLrTANBgkqhkiG9w0BAQsFADAYMRYwFAYDVQQDEw1EZWZhdWx0UG9saWN5MB4XDTIyMDUxNjE4MDYwNFoXDTIzMDUxNjE4MTYwNFowGDEWMBQGA1UEAxMNRGVmYXVsdFBvbGljeTCCASIwDQYJKoZIhvcNAQEBBQADggEPADCCAQoCggEBALHlMJPVR10dQHUdsdgR0ofZPPaFv0T4glNgvcQV2VoTegHyOfHpT9\u002BYyZb1izBHl8drrfFPqqtfhZp2\u002BxrdXGgEOazqNPBSPzmpNocGsMBVrcQOcMwQP/5P\u002BfE3lwTslQxlHBnJKjIjuh2sY6SogszsLSwiSdVlv6U4TlwjgAMpvw7G0zklNKNTu4/Q3IFyKJEdm581nuEJzs0DHkIzIe2GPuGbTkAynPImRDgEJH2oGZLJhJBgfcQ9OF/kMJZWJ7L3xfVcG1RO6IO8MPhNy5SkIQLnR4tXacK8BNHjc44\u002Bd9A2duCzU5MzVumjkEzCNoHgErGefFzocn4MV5ax2XECAwEAAaN8MHowDgYDVR0PAQH/BAQDAgWgMAkGA1UdEwQCMAAwHQYDVR0lBBYwFAYIKwYBBQUHAwEGCCsGAQUFBwMCMB8GA1UdIwQYMBaAFBWrlQ25dThSy\u002BxaEj0VXZydH0tOMB0GA1UdDgQWBBQVq5UNuXU4UsvsWhI9FV2cnR9LTjANBgkqhkiG9w0BAQsFAAOCAQEAVsBJA9d615XBY9qTaSeYnyLdvb3yZPH2lQRjg5BORjCRQgvX/gjlI9WAK7jbFS0KsZsybDivpeD05JeVyXKBIHaumKq7FX77XfkFeDLHzur8b1xtKipdTqwasRpoEsNTxHLzRMKf8CT4zSEcelY/1oVzMFJql7DSGWeDHjFMkQSluIA3Zw24kYf1TRWpgcNaQY2rgkvEShyT8F/NrGOW93T8Jl\u002BvLvPFl5TQ\u002BfRIntRFCkdCAjy8HNhf//oR9SOjskGQ92Jr0JAPEAii9uObT09D4Jd/E1Bpe8Vqhv1SuP727N15FhU1v5VdL4RkpXgv6C9A9zUP2h7BdIUNovDNpw==", - "attributes": { - "enabled": true, - "nbf": 1652724364, - "exp": 1684260964, - "created": 1652724964, - "updated": 1652724964, - "recoveryLevel": "CustomizedRecoverable\u002BPurgeable", - "recoverableDays": 7 - }, - "policy": { - "id": "https://fakekvurl.vault.azure.net/certificates/delCert21493630328/policy", - "key_props": { - "exportable": true, - "kty": "RSA", - "key_size": 2048, - "reuse_key": false - }, - "secret_props": { - "contentType": "application/x-pkcs12" - }, - "x509_props": { - "subject": "CN=DefaultPolicy", - "sans": {}, - "ekus": [ - "1.3.6.1.5.5.7.3.1", - "1.3.6.1.5.5.7.3.2" - ], - "key_usage": [ - "digitalSignature", - "keyEncipherment" - ], - "validity_months": 12, - "basic_constraints": { - "ca": false - } - }, - "lifetime_actions": [ - { - "trigger": { - "lifetime_percentage": 80 - }, - "action": { - "action_type": "AutoRenew" - } - } - ], - "issuer": { - "name": "Self" - }, - "attributes": { - "enabled": true, - "created": 1652724957, - "updated": 1652724957 - } - }, - "pending": { - "id": "https://fakekvurl.vault.azure.net/certificates/delCert21493630328/pending" - } - } - }, - { - "RequestUri": "https://fakekvurl.vault.azure.net/certificates/delCert31493630328?api-version=7.3", - "RequestMethod": "DELETE", - "RequestHeaders": { - "Accept": "application/json", - "Accept-Encoding": "gzip", - "Authorization": "Sanitized", - "User-Agent": "azsdk-go-azcertificates/v0.4.2 (go1.18; Windows_NT)" - }, - "RequestBody": null, - "StatusCode": 200, - "ResponseHeaders": { - "Cache-Control": "no-cache", - "Content-Length": "2496", - "Content-Type": "application/json; charset=utf-8", - "Date": "Mon, 16 May 2022 18:16:49 GMT", - "Expires": "-1", - "Pragma": "no-cache", - "Strict-Transport-Security": "max-age=31536000;includeSubDomains", - "X-Content-Type-Options": "nosniff", - "x-ms-keyvault-network-info": "conn_type=Ipv4;addr=73.83.78.150;act_addr_fam=InterNetwork;", - "x-ms-keyvault-region": "westus2", - "x-ms-keyvault-service-version": "1.9.395.1", - "x-ms-request-id": "2b06b4b4-3362-4c5e-881b-5f816e42321b" - }, - "ResponseBody": { - "recoveryId": "https://fakekvurl.vault.azure.net/deletedcertificates/delCert31493630328", - "deletedDate": 1652725009, - "scheduledPurgeDate": 1653329809, - "id": "https://fakekvurl.vault.azure.net/certificates/delCert31493630328/1ae4fb3f37ae4a879576aead3f7a4aeb", - "kid": "https://fakekvurl.vault.azure.net/keys/delCert31493630328/1ae4fb3f37ae4a879576aead3f7a4aeb", - "sid": "https://fakekvurl.vault.azure.net/secrets/delCert31493630328/1ae4fb3f37ae4a879576aead3f7a4aeb", - "x5t": "qabypGFzGAcC55evOcEBBRMAm_E", - "cer": "MIIDNjCCAh6gAwIBAgIQNCgjGtOEQkqMQnmqYgLgXDANBgkqhkiG9w0BAQsFADAYMRYwFAYDVQQDEw1EZWZhdWx0UG9saWN5MB4XDTIyMDUxNjE4MDYxOVoXDTIzMDUxNjE4MTYxOVowGDEWMBQGA1UEAxMNRGVmYXVsdFBvbGljeTCCASIwDQYJKoZIhvcNAQEBBQADggEPADCCAQoCggEBALeILE3wTsF0UFIENYIj6tD3eWTxM7eZLflndOcMYBb8UlRs6zkpKu8Qq1oQucPZhrQngzt37xEP3/k6FsWyt91IRFvgj7XQnx9IF\u002BJQa\u002BoQmLWpCDflAi4NKAwPpAGxsDtUxy62mlh2iobhpeYyw1XdUPBZq6eeIUMsm30tsEfrJ2N3BFAyjH6SMaa5or3zZ\u002BWdgFINPq39yRPr7g4fnO3ejphemPIkTMZWlJPwGplloKgLszRLyHLmC15fpk\u002Bc0oli5pPFHAF3Www/qd\u002B3pWZzyj1S7zLPvcjF1YLw7EIj\u002B/J6/pQJBiW4fNAa2uuxfymCK8zUYTgGokCu7bQFbTECAwEAAaN8MHowDgYDVR0PAQH/BAQDAgWgMAkGA1UdEwQCMAAwHQYDVR0lBBYwFAYIKwYBBQUHAwEGCCsGAQUFBwMCMB8GA1UdIwQYMBaAFHFQjyostPu\u002BrxKwhf2hyw5onrxBMB0GA1UdDgQWBBRxUI8qLLT7vq8SsIX9ocsOaJ68QTANBgkqhkiG9w0BAQsFAAOCAQEAck\u002BQwjrWFurcIJJU66LyLyXonIGTSO18hqjbYX\u002Br7atCG5/iYYYBN\u002BM6aksJVZJXThpoe41ozIxRbtvdu0gFXNypG/\u002BLrxJgRb02O8Cyq5qqu1ys2neXtLIeaAJWbzMby\u002BVqN2vY55\u002BGZkSK6q6fAZupYT5Hjx4UcJuLj/3xTq1nVHOvzrgK6InyN8LEIApNi\u002B7q/sXUk\u002BO4KTPtg4tLDcwrq0gPk8W7DdR6XlhdFFI3Xv7LNHziMbOu\u002Bp45O6IFh7nWtBovPhySqiCpHfcWliQ\u002BvebZC6MIpzcwtyNtJYzSU9\u002BEIbZw2qf5ZYnZuq4XxqhYBwjyA35G4PcR\u002BVwMCw==", - "attributes": { - "enabled": true, - "nbf": 1652724379, - "exp": 1684260979, - "created": 1652724980, - "updated": 1652724980, - "recoveryLevel": "CustomizedRecoverable\u002BPurgeable", - "recoverableDays": 7 - }, - "policy": { - "id": "https://fakekvurl.vault.azure.net/certificates/delCert31493630328/policy", - "key_props": { - "exportable": true, - "kty": "RSA", - "key_size": 2048, - "reuse_key": false - }, - "secret_props": { - "contentType": "application/x-pkcs12" - }, - "x509_props": { - "subject": "CN=DefaultPolicy", - "sans": {}, - "ekus": [ - "1.3.6.1.5.5.7.3.1", - "1.3.6.1.5.5.7.3.2" - ], - "key_usage": [ - "digitalSignature", - "keyEncipherment" - ], - "validity_months": 12, - "basic_constraints": { - "ca": false - } - }, - "lifetime_actions": [ - { - "trigger": { - "lifetime_percentage": 80 - }, - "action": { - "action_type": "AutoRenew" - } - } - ], - "issuer": { - "name": "Self" - }, - "attributes": { - "enabled": true, - "created": 1652724968, - "updated": 1652724968 - } - }, - "pending": { - "id": "https://fakekvurl.vault.azure.net/certificates/delCert31493630328/pending" - } - } - }, - { - "RequestUri": "https://fakekvurl.vault.azure.net/deletedcertificates/delCert31493630328?api-version=7.3", - "RequestMethod": "GET", - "RequestHeaders": { - ":method": "GET", - "Accept": "application/json", - "Accept-Encoding": "gzip", - "Authorization": "Sanitized", - "User-Agent": "azsdk-go-azcertificates/v0.4.2 (go1.18; Windows_NT)" - }, - "RequestBody": null, - "StatusCode": 404, - "ResponseHeaders": { - "Cache-Control": "no-cache", - "Content-Length": "102", - "Content-Type": "application/json; charset=utf-8", - "Date": "Mon, 16 May 2022 18:16:49 GMT", - "Expires": "-1", - "Pragma": "no-cache", - "Strict-Transport-Security": "max-age=31536000;includeSubDomains", - "X-Content-Type-Options": "nosniff", - "x-ms-keyvault-network-info": "conn_type=Ipv4;addr=73.83.78.150;act_addr_fam=InterNetwork;", - "x-ms-keyvault-region": "westus2", - "x-ms-keyvault-service-version": "1.9.395.1", - "x-ms-request-id": "52f6ca29-de32-4cf5-bc64-6db7dd8dec39" - }, - "ResponseBody": { - "error": { - "code": "CertificateNotFound", - "message": "Deleted Certificate not found: delCert31493630328" - } - } - }, - { - "RequestUri": "https://fakekvurl.vault.azure.net/deletedcertificates/delCert31493630328?api-version=7.3", - "RequestMethod": "GET", - "RequestHeaders": { - ":method": "GET", - "Accept": "application/json", - "Accept-Encoding": "gzip", - "Authorization": "Sanitized", - "User-Agent": "azsdk-go-azcertificates/v0.4.2 (go1.18; Windows_NT)" - }, - "RequestBody": null, - "StatusCode": 404, - "ResponseHeaders": { - "Cache-Control": "no-cache", - "Content-Length": "102", - "Content-Type": "application/json; charset=utf-8", - "Date": "Mon, 16 May 2022 18:16:50 GMT", - "Expires": "-1", - "Pragma": "no-cache", - "Strict-Transport-Security": "max-age=31536000;includeSubDomains", - "X-Content-Type-Options": "nosniff", - "x-ms-keyvault-network-info": "conn_type=Ipv4;addr=73.83.78.150;act_addr_fam=InterNetwork;", - "x-ms-keyvault-region": "westus2", - "x-ms-keyvault-service-version": "1.9.395.1", - "x-ms-request-id": "6d6c0e49-67ce-4b7e-ae7c-7d34953ff30b" - }, - "ResponseBody": { - "error": { - "code": "CertificateNotFound", - "message": "Deleted Certificate not found: delCert31493630328" - } - } - }, - { - "RequestUri": "https://fakekvurl.vault.azure.net/deletedcertificates/delCert31493630328?api-version=7.3", - "RequestMethod": "GET", - "RequestHeaders": { - ":method": "GET", - "Accept": "application/json", - "Accept-Encoding": "gzip", - "Authorization": "Sanitized", - "User-Agent": "azsdk-go-azcertificates/v0.4.2 (go1.18; Windows_NT)" - }, - "RequestBody": null, - "StatusCode": 404, - "ResponseHeaders": { - "Cache-Control": "no-cache", - "Content-Length": "102", - "Content-Type": "application/json; charset=utf-8", - "Date": "Mon, 16 May 2022 18:16:51 GMT", - "Expires": "-1", - "Pragma": "no-cache", - "Strict-Transport-Security": "max-age=31536000;includeSubDomains", - "X-Content-Type-Options": "nosniff", - "x-ms-keyvault-network-info": "conn_type=Ipv4;addr=73.83.78.150;act_addr_fam=InterNetwork;", - "x-ms-keyvault-region": "westus2", - "x-ms-keyvault-service-version": "1.9.395.1", - "x-ms-request-id": "1f9bae48-1ffb-4819-a415-32e2d328160b" - }, - "ResponseBody": { - "error": { - "code": "CertificateNotFound", - "message": "Deleted Certificate not found: delCert31493630328" - } - } - }, - { - "RequestUri": "https://fakekvurl.vault.azure.net/deletedcertificates/delCert31493630328?api-version=7.3", - "RequestMethod": "GET", - "RequestHeaders": { - ":method": "GET", - "Accept": "application/json", - "Accept-Encoding": "gzip", - "Authorization": "Sanitized", - "User-Agent": "azsdk-go-azcertificates/v0.4.2 (go1.18; Windows_NT)" - }, - "RequestBody": null, - "StatusCode": 404, - "ResponseHeaders": { - "Cache-Control": "no-cache", - "Content-Length": "102", - "Content-Type": "application/json; charset=utf-8", - "Date": "Mon, 16 May 2022 18:16:52 GMT", - "Expires": "-1", - "Pragma": "no-cache", - "Strict-Transport-Security": "max-age=31536000;includeSubDomains", - "X-Content-Type-Options": "nosniff", - "x-ms-keyvault-network-info": "conn_type=Ipv4;addr=73.83.78.150;act_addr_fam=InterNetwork;", - "x-ms-keyvault-region": "westus2", - "x-ms-keyvault-service-version": "1.9.395.1", - "x-ms-request-id": "f0581ca0-4626-4f70-8739-7676ad2505fb" - }, - "ResponseBody": { - "error": { - "code": "CertificateNotFound", - "message": "Deleted Certificate not found: delCert31493630328" - } - } - }, - { - "RequestUri": "https://fakekvurl.vault.azure.net/deletedcertificates/delCert31493630328?api-version=7.3", - "RequestMethod": "GET", - "RequestHeaders": { - ":method": "GET", - "Accept": "application/json", - "Accept-Encoding": "gzip", - "Authorization": "Sanitized", - "User-Agent": "azsdk-go-azcertificates/v0.4.2 (go1.18; Windows_NT)" - }, - "RequestBody": null, - "StatusCode": 404, - "ResponseHeaders": { - "Cache-Control": "no-cache", - "Content-Length": "102", - "Content-Type": "application/json; charset=utf-8", - "Date": "Mon, 16 May 2022 18:16:53 GMT", - "Expires": "-1", - "Pragma": "no-cache", - "Strict-Transport-Security": "max-age=31536000;includeSubDomains", - "X-Content-Type-Options": "nosniff", - "x-ms-keyvault-network-info": "conn_type=Ipv4;addr=73.83.78.150;act_addr_fam=InterNetwork;", - "x-ms-keyvault-region": "westus2", - "x-ms-keyvault-service-version": "1.9.395.1", - "x-ms-request-id": "def9e0e3-e4ec-42bb-988d-326d63d48708" - }, - "ResponseBody": { - "error": { - "code": "CertificateNotFound", - "message": "Deleted Certificate not found: delCert31493630328" - } - } - }, - { - "RequestUri": "https://fakekvurl.vault.azure.net/deletedcertificates/delCert31493630328?api-version=7.3", - "RequestMethod": "GET", - "RequestHeaders": { - ":method": "GET", - "Accept": "application/json", - "Accept-Encoding": "gzip", - "Authorization": "Sanitized", - "User-Agent": "azsdk-go-azcertificates/v0.4.2 (go1.18; Windows_NT)" - }, - "RequestBody": null, - "StatusCode": 200, - "ResponseHeaders": { - "Cache-Control": "no-cache", - "Content-Length": "2496", - "Content-Type": "application/json; charset=utf-8", - "Date": "Mon, 16 May 2022 18:16:54 GMT", - "Expires": "-1", - "Pragma": "no-cache", - "Strict-Transport-Security": "max-age=31536000;includeSubDomains", - "X-Content-Type-Options": "nosniff", - "x-ms-keyvault-network-info": "conn_type=Ipv4;addr=73.83.78.150;act_addr_fam=InterNetwork;", - "x-ms-keyvault-region": "westus2", - "x-ms-keyvault-service-version": "1.9.395.1", - "x-ms-request-id": "c396b781-b88e-4e0a-aba5-de56f206334c" - }, - "ResponseBody": { - "recoveryId": "https://fakekvurl.vault.azure.net/deletedcertificates/delCert31493630328", - "deletedDate": 1652725009, - "scheduledPurgeDate": 1653329809, - "id": "https://fakekvurl.vault.azure.net/certificates/delCert31493630328/1ae4fb3f37ae4a879576aead3f7a4aeb", - "kid": "https://fakekvurl.vault.azure.net/keys/delCert31493630328/1ae4fb3f37ae4a879576aead3f7a4aeb", - "sid": "https://fakekvurl.vault.azure.net/secrets/delCert31493630328/1ae4fb3f37ae4a879576aead3f7a4aeb", - "x5t": "qabypGFzGAcC55evOcEBBRMAm_E", - "cer": "MIIDNjCCAh6gAwIBAgIQNCgjGtOEQkqMQnmqYgLgXDANBgkqhkiG9w0BAQsFADAYMRYwFAYDVQQDEw1EZWZhdWx0UG9saWN5MB4XDTIyMDUxNjE4MDYxOVoXDTIzMDUxNjE4MTYxOVowGDEWMBQGA1UEAxMNRGVmYXVsdFBvbGljeTCCASIwDQYJKoZIhvcNAQEBBQADggEPADCCAQoCggEBALeILE3wTsF0UFIENYIj6tD3eWTxM7eZLflndOcMYBb8UlRs6zkpKu8Qq1oQucPZhrQngzt37xEP3/k6FsWyt91IRFvgj7XQnx9IF\u002BJQa\u002BoQmLWpCDflAi4NKAwPpAGxsDtUxy62mlh2iobhpeYyw1XdUPBZq6eeIUMsm30tsEfrJ2N3BFAyjH6SMaa5or3zZ\u002BWdgFINPq39yRPr7g4fnO3ejphemPIkTMZWlJPwGplloKgLszRLyHLmC15fpk\u002Bc0oli5pPFHAF3Www/qd\u002B3pWZzyj1S7zLPvcjF1YLw7EIj\u002B/J6/pQJBiW4fNAa2uuxfymCK8zUYTgGokCu7bQFbTECAwEAAaN8MHowDgYDVR0PAQH/BAQDAgWgMAkGA1UdEwQCMAAwHQYDVR0lBBYwFAYIKwYBBQUHAwEGCCsGAQUFBwMCMB8GA1UdIwQYMBaAFHFQjyostPu\u002BrxKwhf2hyw5onrxBMB0GA1UdDgQWBBRxUI8qLLT7vq8SsIX9ocsOaJ68QTANBgkqhkiG9w0BAQsFAAOCAQEAck\u002BQwjrWFurcIJJU66LyLyXonIGTSO18hqjbYX\u002Br7atCG5/iYYYBN\u002BM6aksJVZJXThpoe41ozIxRbtvdu0gFXNypG/\u002BLrxJgRb02O8Cyq5qqu1ys2neXtLIeaAJWbzMby\u002BVqN2vY55\u002BGZkSK6q6fAZupYT5Hjx4UcJuLj/3xTq1nVHOvzrgK6InyN8LEIApNi\u002B7q/sXUk\u002BO4KTPtg4tLDcwrq0gPk8W7DdR6XlhdFFI3Xv7LNHziMbOu\u002Bp45O6IFh7nWtBovPhySqiCpHfcWliQ\u002BvebZC6MIpzcwtyNtJYzSU9\u002BEIbZw2qf5ZYnZuq4XxqhYBwjyA35G4PcR\u002BVwMCw==", - "attributes": { - "enabled": true, - "nbf": 1652724379, - "exp": 1684260979, - "created": 1652724980, - "updated": 1652724980, - "recoveryLevel": "CustomizedRecoverable\u002BPurgeable", - "recoverableDays": 7 - }, - "policy": { - "id": "https://fakekvurl.vault.azure.net/certificates/delCert31493630328/policy", - "key_props": { - "exportable": true, - "kty": "RSA", - "key_size": 2048, - "reuse_key": false - }, - "secret_props": { - "contentType": "application/x-pkcs12" - }, - "x509_props": { - "subject": "CN=DefaultPolicy", - "sans": {}, - "ekus": [ - "1.3.6.1.5.5.7.3.1", - "1.3.6.1.5.5.7.3.2" - ], - "key_usage": [ - "digitalSignature", - "keyEncipherment" - ], - "validity_months": 12, - "basic_constraints": { - "ca": false - } - }, - "lifetime_actions": [ - { - "trigger": { - "lifetime_percentage": 80 - }, - "action": { - "action_type": "AutoRenew" - } - } - ], - "issuer": { - "name": "Self" - }, - "attributes": { - "enabled": true, - "created": 1652724968, - "updated": 1652724968 - } - }, - "pending": { - "id": "https://fakekvurl.vault.azure.net/certificates/delCert31493630328/pending" - } - } - }, - { - "RequestUri": "https://fakekvurl.vault.azure.net/deletedcertificates?api-version=7.3", - "RequestMethod": "GET", - "RequestHeaders": { - ":method": "GET", - "Accept": "application/json", - "Accept-Encoding": "gzip", - "Authorization": "Sanitized", - "User-Agent": "azsdk-go-azcertificates/v0.4.2 (go1.18; Windows_NT)" - }, - "RequestBody": null, - "StatusCode": 200, - "ResponseHeaders": { - "Cache-Control": "no-cache", - "Content-Length": "1163", - "Content-Type": "application/json; charset=utf-8", - "Date": "Mon, 16 May 2022 18:16:54 GMT", - "Expires": "-1", - "Pragma": "no-cache", - "Strict-Transport-Security": "max-age=31536000;includeSubDomains", - "X-Content-Type-Options": "nosniff", - "x-ms-keyvault-network-info": "conn_type=Ipv4;addr=73.83.78.150;act_addr_fam=InterNetwork;", - "x-ms-keyvault-region": "westus2", - "x-ms-keyvault-service-version": "1.9.395.1", - "x-ms-request-id": "0a5b3852-cde6-459b-ae7f-e083b6a8135e" - }, - "ResponseBody": { - "value": [ - { - "recoveryId": "https://fakekvurl.vault.azure.net/deletedcertificates/delCert01493630328", - "deletedDate": 1652724989, - "scheduledPurgeDate": 1653329789, - "id": "https://fakekvurl.vault.azure.net/certificates/delCert01493630328", - "x5t": "NCD_-PKgI356rH5ID8mJhQ7anq4", - "attributes": { - "enabled": true, - "nbf": 1652724341, - "exp": 1684260941, - "created": 1652724941, - "updated": 1652724941, - "recoveryLevel": "CustomizedRecoverable\u002BPurgeable", - "recoverableDays": 7 - } - }, - { - "recoveryId": "https://fakekvurl.vault.azure.net/deletedcertificates/delCert11493630328", - "deletedDate": 1652724995, - "scheduledPurgeDate": 1653329795, - "id": "https://fakekvurl.vault.azure.net/certificates/delCert11493630328", - "x5t": "G6DZlrfejTOt_ETQWlRb-GqmFCs", - "attributes": { - "enabled": true, - "nbf": 1652724351, - "exp": 1684260951, - "created": 1652724951, - "updated": 1652724951, - "recoveryLevel": "CustomizedRecoverable\u002BPurgeable", - "recoverableDays": 7 - } - } - ], - "nextLink": "https://fakekvurl.vault.azure.net/deletedcertificates?api-version=7.3\u0026$skiptoken=eyJOZXh0TWFya2VyIjoiMiExMDAhTURBd01ETXdJV05sY25ScFptbGpZWFJsTDBSRlRFTkZVbFF5TVRRNU16WXpNRE15T0NFd01EQXdNamdoT1RrNU9TMHhNaTB6TVZReU16bzFPVG8xT1M0NU9UazVPVGs1V2lFLSIsIlRhcmdldExvY2F0aW9uIjowfQ" - } - }, - { - "RequestUri": "https://fakekvurl.vault.azure.net/deletedcertificates/delCert01493630328?api-version=7.3", - "RequestMethod": "DELETE", - "RequestHeaders": { - "Accept": "application/json", - "Accept-Encoding": "gzip", - "Authorization": "Sanitized", - "User-Agent": "azsdk-go-azcertificates/v0.4.2 (go1.18; Windows_NT)" - }, - "RequestBody": null, - "StatusCode": 204, - "ResponseHeaders": { - "Cache-Control": "no-cache", - "Date": "Mon, 16 May 2022 18:16:54 GMT", - "Expires": "-1", - "Pragma": "no-cache", - "Strict-Transport-Security": "max-age=31536000;includeSubDomains", - "X-Content-Type-Options": "nosniff", - "x-ms-keyvault-network-info": "conn_type=Ipv4;addr=73.83.78.150;act_addr_fam=InterNetwork;", - "x-ms-keyvault-region": "westus2", - "x-ms-keyvault-service-version": "1.9.395.1", - "x-ms-request-id": "7468ee22-e5ac-466c-995d-0a3e8459940d" - }, - "ResponseBody": null - }, - { - "RequestUri": "https://fakekvurl.vault.azure.net/deletedcertificates/delCert11493630328?api-version=7.3", - "RequestMethod": "DELETE", - "RequestHeaders": { - "Accept": "application/json", - "Accept-Encoding": "gzip", - "Authorization": "Sanitized", - "User-Agent": "azsdk-go-azcertificates/v0.4.2 (go1.18; Windows_NT)" - }, - "RequestBody": null, - "StatusCode": 204, - "ResponseHeaders": { - "Cache-Control": "no-cache", - "Date": "Mon, 16 May 2022 18:16:54 GMT", - "Expires": "-1", - "Pragma": "no-cache", - "Strict-Transport-Security": "max-age=31536000;includeSubDomains", - "X-Content-Type-Options": "nosniff", - "x-ms-keyvault-network-info": "conn_type=Ipv4;addr=73.83.78.150;act_addr_fam=InterNetwork;", - "x-ms-keyvault-region": "westus2", - "x-ms-keyvault-service-version": "1.9.395.1", - "x-ms-request-id": "58f5da35-e91e-49f4-8bd8-a745be5a540d" - }, - "ResponseBody": null - }, - { - "RequestUri": "https://fakekvurl.vault.azure.net/deletedcertificates?api-version=7.3\u0026$skiptoken=eyJOZXh0TWFya2VyIjoiMiExMDAhTURBd01ETXdJV05sY25ScFptbGpZWFJsTDBSRlRFTkZVbFF5TVRRNU16WXpNRE15T0NFd01EQXdNamdoT1RrNU9TMHhNaTB6TVZReU16bzFPVG8xT1M0NU9UazVPVGs1V2lFLSIsIlRhcmdldExvY2F0aW9uIjowfQ", - "RequestMethod": "GET", - "RequestHeaders": { - ":method": "GET", - "Accept-Encoding": "gzip", - "Authorization": "Sanitized", - "User-Agent": "azsdk-go-azcertificates/v0.4.2 (go1.18; Windows_NT)" - }, - "RequestBody": null, - "StatusCode": 200, - "ResponseHeaders": { - "Cache-Control": "no-cache", - "Content-Length": "891", - "Content-Type": "application/json; charset=utf-8", - "Date": "Mon, 16 May 2022 18:16:55 GMT", - "Expires": "-1", - "Pragma": "no-cache", - "Strict-Transport-Security": "max-age=31536000;includeSubDomains", - "X-Content-Type-Options": "nosniff", - "x-ms-keyvault-network-info": "conn_type=Ipv4;addr=73.83.78.150;act_addr_fam=InterNetwork;", - "x-ms-keyvault-region": "westus2", - "x-ms-keyvault-service-version": "1.9.395.1", - "x-ms-request-id": "9d6d0d45-bcef-4ef8-9927-498a4045878f" - }, - "ResponseBody": { - "value": [ - { - "recoveryId": "https://fakekvurl.vault.azure.net/deletedcertificates/delCert21493630328", - "deletedDate": 1652725005, - "scheduledPurgeDate": 1653329805, - "id": "https://fakekvurl.vault.azure.net/certificates/delCert21493630328", - "x5t": "oJZDnMdDGp09vVxTfNQw-2lMrs4", - "attributes": { - "enabled": true, - "nbf": 1652724364, - "exp": 1684260964, - "created": 1652724964, - "updated": 1652724964, - "recoveryLevel": "CustomizedRecoverable\u002BPurgeable", - "recoverableDays": 7 - } - }, - { - "recoveryId": "https://fakekvurl.vault.azure.net/deletedcertificates/delCert31493630328", - "deletedDate": 1652725009, - "scheduledPurgeDate": 1653329809, - "id": "https://fakekvurl.vault.azure.net/certificates/delCert31493630328", - "x5t": "qabypGFzGAcC55evOcEBBRMAm_E", - "attributes": { - "enabled": true, - "nbf": 1652724379, - "exp": 1684260979, - "created": 1652724980, - "updated": 1652724980, - "recoveryLevel": "CustomizedRecoverable\u002BPurgeable", - "recoverableDays": 7 - } - } - ], - "nextLink": null - } - }, - { - "RequestUri": "https://fakekvurl.vault.azure.net/deletedcertificates/delCert21493630328?api-version=7.3", - "RequestMethod": "DELETE", - "RequestHeaders": { - "Accept": "application/json", - "Accept-Encoding": "gzip", - "Authorization": "Sanitized", - "User-Agent": "azsdk-go-azcertificates/v0.4.2 (go1.18; Windows_NT)" - }, - "RequestBody": null, - "StatusCode": 204, - "ResponseHeaders": { - "Cache-Control": "no-cache", - "Date": "Mon, 16 May 2022 18:16:55 GMT", - "Expires": "-1", - "Pragma": "no-cache", - "Strict-Transport-Security": "max-age=31536000;includeSubDomains", - "X-Content-Type-Options": "nosniff", - "x-ms-keyvault-network-info": "conn_type=Ipv4;addr=73.83.78.150;act_addr_fam=InterNetwork;", - "x-ms-keyvault-region": "westus2", - "x-ms-keyvault-service-version": "1.9.395.1", - "x-ms-request-id": "ed69b20e-684c-417f-8143-377c4910b0fc" - }, - "ResponseBody": null - }, - { - "RequestUri": "https://fakekvurl.vault.azure.net/deletedcertificates/delCert31493630328?api-version=7.3", - "RequestMethod": "DELETE", - "RequestHeaders": { - "Accept": "application/json", - "Accept-Encoding": "gzip", - "Authorization": "Sanitized", - "User-Agent": "azsdk-go-azcertificates/v0.4.2 (go1.18; Windows_NT)" - }, - "RequestBody": null, - "StatusCode": 204, - "ResponseHeaders": { - "Cache-Control": "no-cache", - "Date": "Mon, 16 May 2022 18:16:55 GMT", - "Expires": "-1", - "Pragma": "no-cache", - "Strict-Transport-Security": "max-age=31536000;includeSubDomains", - "X-Content-Type-Options": "nosniff", - "x-ms-keyvault-network-info": "conn_type=Ipv4;addr=73.83.78.150;act_addr_fam=InterNetwork;", - "x-ms-keyvault-region": "westus2", - "x-ms-keyvault-service-version": "1.9.395.1", - "x-ms-request-id": "29842361-ca8a-469c-95fc-f998682066e9" - }, - "ResponseBody": null - } - ], - "Variables": {} -} diff --git a/sdk/keyvault/azcertificates/testdata/recordings/TestClient_RestoreCertificateBackup.json b/sdk/keyvault/azcertificates/testdata/recordings/TestClient_RestoreCertificateBackup.json deleted file mode 100644 index 6b80e703236d..000000000000 --- a/sdk/keyvault/azcertificates/testdata/recordings/TestClient_RestoreCertificateBackup.json +++ /dev/null @@ -1,1134 +0,0 @@ -{ - "Entries": [ - { - "RequestUri": "https://fakekvurl.vault.azure.net/certificates/certRestore3931096132/create?api-version=7.3", - "RequestMethod": "POST", - "RequestHeaders": { - ":method": "POST", - "Accept": "application/json", - "Accept-Encoding": "gzip", - "Content-Length": "0", - "User-Agent": "azsdk-go-azcertificates/v0.4.2 (go1.18; Windows_NT)" - }, - "RequestBody": null, - "StatusCode": 401, - "ResponseHeaders": { - "Cache-Control": "no-cache", - "Content-Length": "97", - "Content-Type": "application/json; charset=utf-8", - "Date": "Mon, 16 May 2022 18:15:04 GMT", - "Expires": "-1", - "Pragma": "no-cache", - "Strict-Transport-Security": "max-age=31536000;includeSubDomains", - "WWW-Authenticate": "Bearer authorization=\u0022https://login.windows.net/00000000-0000-0000-0000-000000000000\u0022, resource=\u0022https://vault.azure.net\u0022", - "X-Content-Type-Options": "nosniff", - "x-ms-keyvault-network-info": "conn_type=Ipv4;addr=73.83.78.150;act_addr_fam=InterNetwork;", - "x-ms-keyvault-region": "westus2", - "x-ms-keyvault-service-version": "1.9.395.1", - "x-ms-request-id": "e300e003-4eb6-4359-9fdf-cd32e5a867f8" - }, - "ResponseBody": { - "error": { - "code": "Unauthorized", - "message": "AKV10000: Request is missing a Bearer or PoP token." - } - } - }, - { - "RequestUri": "https://fakekvurl.vault.azure.net/certificates/certRestore3931096132/create?api-version=7.3", - "RequestMethod": "POST", - "RequestHeaders": { - ":method": "POST", - "Accept": "application/json", - "Accept-Encoding": "gzip", - "Authorization": "Sanitized", - "Content-Length": "155", - "Content-Type": "application/json", - "User-Agent": "azsdk-go-azcertificates/v0.4.2 (go1.18; Windows_NT)" - }, - "RequestBody": { - "attributes": {}, - "policy": { - "issuer": { - "name": "Self" - }, - "secret_props": {}, - "x509_props": { - "sans": { - "upns": [ - "john.doe@domain.com" - ] - }, - "subject": "CN=DefaultPolicy" - } - } - }, - "StatusCode": 202, - "ResponseHeaders": { - "Cache-Control": "no-cache", - "Content-Length": "1360", - "Content-Type": "application/json; charset=utf-8", - "Date": "Mon, 16 May 2022 18:15:05 GMT", - "Expires": "-1", - "Location": "https://fakekvurl.vault.azure.net/certificates/certRestore3931096132/pending?api-version=7.3\u0026request_id=f4500e4979664858870be8f49f38cfbc", - "Pragma": "no-cache", - "Retry-After": "10", - "Strict-Transport-Security": "max-age=31536000;includeSubDomains", - "X-Content-Type-Options": "nosniff", - "x-ms-keyvault-network-info": "conn_type=Ipv4;addr=73.83.78.150;act_addr_fam=InterNetwork;", - "x-ms-keyvault-region": "westus2", - "x-ms-keyvault-service-version": "1.9.395.1", - "x-ms-request-id": "22a4f8b4-83f4-4e1a-9635-6c722aba0a88" - }, - "ResponseBody": { - "id": "https://fakekvurl.vault.azure.net/certificates/certRestore3931096132/pending", - "issuer": { - "name": "Self" - }, - "csr": "MIIC2DCCAcACAQAwGDEWMBQGA1UEAxMNRGVmYXVsdFBvbGljeTCCASIwDQYJKoZIhvcNAQEBBQADggEPADCCAQoCggEBAMdR0rElA7k50BFmpI6TX8bveV7KlxXboKF3IKuetI2X8MckqJTo\u002BKlJ1GGeaC/IHQ/hnW1V/g1gznxQi1dGEhQXIAXwKwGuMjU97jU/YZCYmhtmZ0qHe3IKv1vlNkHqlUsFTKkVQ2dKZzja6Lj07J\u002Bd1ocUk8wa7GsxDjptds6WHu0JXZ4NgwuIqQ2kn96K/fVpBAVy4gA5G2UDfiYNPlnThWvoT6oN1vSD0aI6T31uujEgeCjWjSAR9i2FQekM9neP0O3ShpAlCVLTnN37NsgUA12szbiOiCojOqpkJufzPM7qC/0FCW1ojxoacv8U3C7zJCfTmXMSEISJVQULvxUCAwEAAaB7MHkGCSqGSIb3DQEJDjFsMGowDgYDVR0PAQH/BAQDAgWgMB0GA1UdJQQWMBQGCCsGAQUFBwMBBggrBgEFBQcDAjAuBgNVHREEJzAloCMGCisGAQQBgjcUAgOgFQwTam9obi5kb2VAZG9tYWluLmNvbTAJBgNVHRMEAjAAMA0GCSqGSIb3DQEBCwUAA4IBAQCG5csHD45Ki2ceSm55vlnvsKvmc026qh/VIFQG4f3ohZYzfQOVMX88bQCsiJSm7DFgrf3Kv/JdD09D1RVgB1GG15US9AMK98Renl7JT4Nnlb32Gc\u002BLAVLKtmCrb5KjIuuZDskpO1xnBWY2AqANGM00a5SBlGDUjCVG0gPABQfJEwJr2TSVME77bhCZvm0hjhN\u002Bv3OnHRX\u002BcqRs5YObJ\u002BN6zIcSqSntlNT2tTgJnj32sVoafxiD1aP2gyZxRDRJpICystnV/2Px8Dz17qLeBLojPs3\u002Ba10j06AgG7tiyt2\u002BamIGKsUxOfsM1Q29Lvi\u002BY1xokH3qRG9r6kJMgdcdkGQe", - "cancellation_requested": false, - "status": "inProgress", - "status_details": "Pending certificate created. Certificate request is in progress. This may take some time based on the issuer provider. Please check again later.", - "request_id": "f4500e4979664858870be8f49f38cfbc" - } - }, - { - "RequestUri": "https://fakekvurl.vault.azure.net/certificates/certRestore3931096132/pending?api-version=7.3\u0026request_id=f4500e4979664858870be8f49f38cfbc", - "RequestMethod": "GET", - "RequestHeaders": { - ":method": "GET", - "Accept-Encoding": "gzip", - "Authorization": "Sanitized", - "User-Agent": "azsdk-go-azcertificates/v0.4.2 (go1.18; Windows_NT)" - }, - "RequestBody": null, - "StatusCode": 200, - "ResponseHeaders": { - "Cache-Control": "no-cache", - "Content-Length": "1275", - "Content-Type": "application/json; charset=utf-8", - "Date": "Mon, 16 May 2022 18:15:15 GMT", - "Expires": "-1", - "Pragma": "no-cache", - "Strict-Transport-Security": "max-age=31536000;includeSubDomains", - "X-Content-Type-Options": "nosniff", - "x-ms-keyvault-network-info": "conn_type=Ipv4;addr=73.83.78.150;act_addr_fam=InterNetwork;", - "x-ms-keyvault-region": "westus2", - "x-ms-keyvault-service-version": "1.9.395.1", - "x-ms-request-id": "cc090d08-15e7-4b4c-9b13-b9d467e0ad46" - }, - "ResponseBody": { - "id": "https://fakekvurl.vault.azure.net/certificates/certRestore3931096132/pending", - "issuer": { - "name": "Self" - }, - "csr": "MIIC2DCCAcACAQAwGDEWMBQGA1UEAxMNRGVmYXVsdFBvbGljeTCCASIwDQYJKoZIhvcNAQEBBQADggEPADCCAQoCggEBAMdR0rElA7k50BFmpI6TX8bveV7KlxXboKF3IKuetI2X8MckqJTo\u002BKlJ1GGeaC/IHQ/hnW1V/g1gznxQi1dGEhQXIAXwKwGuMjU97jU/YZCYmhtmZ0qHe3IKv1vlNkHqlUsFTKkVQ2dKZzja6Lj07J\u002Bd1ocUk8wa7GsxDjptds6WHu0JXZ4NgwuIqQ2kn96K/fVpBAVy4gA5G2UDfiYNPlnThWvoT6oN1vSD0aI6T31uujEgeCjWjSAR9i2FQekM9neP0O3ShpAlCVLTnN37NsgUA12szbiOiCojOqpkJufzPM7qC/0FCW1ojxoacv8U3C7zJCfTmXMSEISJVQULvxUCAwEAAaB7MHkGCSqGSIb3DQEJDjFsMGowDgYDVR0PAQH/BAQDAgWgMB0GA1UdJQQWMBQGCCsGAQUFBwMBBggrBgEFBQcDAjAuBgNVHREEJzAloCMGCisGAQQBgjcUAgOgFQwTam9obi5kb2VAZG9tYWluLmNvbTAJBgNVHRMEAjAAMA0GCSqGSIb3DQEBCwUAA4IBAQCG5csHD45Ki2ceSm55vlnvsKvmc026qh/VIFQG4f3ohZYzfQOVMX88bQCsiJSm7DFgrf3Kv/JdD09D1RVgB1GG15US9AMK98Renl7JT4Nnlb32Gc\u002BLAVLKtmCrb5KjIuuZDskpO1xnBWY2AqANGM00a5SBlGDUjCVG0gPABQfJEwJr2TSVME77bhCZvm0hjhN\u002Bv3OnHRX\u002BcqRs5YObJ\u002BN6zIcSqSntlNT2tTgJnj32sVoafxiD1aP2gyZxRDRJpICystnV/2Px8Dz17qLeBLojPs3\u002Ba10j06AgG7tiyt2\u002BamIGKsUxOfsM1Q29Lvi\u002BY1xokH3qRG9r6kJMgdcdkGQe", - "cancellation_requested": false, - "status": "completed", - "target": "https://fakekvurl.vault.azure.net/certificates/certRestore3931096132", - "request_id": "f4500e4979664858870be8f49f38cfbc" - } - }, - { - "RequestUri": "https://fakekvurl.vault.azure.net/certificates/certRestore3931096132/?api-version=7.3", - "RequestMethod": "GET", - "RequestHeaders": { - ":method": "GET", - "Accept": "application/json", - "Accept-Encoding": "gzip", - "Authorization": "Sanitized", - "User-Agent": "azsdk-go-azcertificates/v0.4.2 (go1.18; Windows_NT)" - }, - "RequestBody": null, - "StatusCode": 200, - "ResponseHeaders": { - "Cache-Control": "no-cache", - "Content-Length": "2460", - "Content-Type": "application/json; charset=utf-8", - "Date": "Mon, 16 May 2022 18:15:15 GMT", - "Expires": "-1", - "Pragma": "no-cache", - "Strict-Transport-Security": "max-age=31536000;includeSubDomains", - "X-Content-Type-Options": "nosniff", - "x-ms-keyvault-network-info": "conn_type=Ipv4;addr=73.83.78.150;act_addr_fam=InterNetwork;", - "x-ms-keyvault-region": "westus2", - "x-ms-keyvault-service-version": "1.9.395.1", - "x-ms-request-id": "e803f377-ef20-46e3-80ef-73dbefba0cc0" - }, - "ResponseBody": { - "id": "https://fakekvurl.vault.azure.net/certificates/certRestore3931096132/a0aff3fe2bf644f1b0bccf83e3363d5d", - "kid": "https://fakekvurl.vault.azure.net/keys/certRestore3931096132/a0aff3fe2bf644f1b0bccf83e3363d5d", - "sid": "https://fakekvurl.vault.azure.net/secrets/certRestore3931096132/a0aff3fe2bf644f1b0bccf83e3363d5d", - "x5t": "kaeg05Ip-MbGgDaf0LGwcRPttxM", - "cer": "MIIDaDCCAlCgAwIBAgIQDbSXN0imSUa9lNjfmVGRETANBgkqhkiG9w0BAQsFADAYMRYwFAYDVQQDEw1EZWZhdWx0UG9saWN5MB4XDTIyMDUxNjE4MDUxMloXDTIzMDUxNjE4MTUxMlowGDEWMBQGA1UEAxMNRGVmYXVsdFBvbGljeTCCASIwDQYJKoZIhvcNAQEBBQADggEPADCCAQoCggEBAMdR0rElA7k50BFmpI6TX8bveV7KlxXboKF3IKuetI2X8MckqJTo\u002BKlJ1GGeaC/IHQ/hnW1V/g1gznxQi1dGEhQXIAXwKwGuMjU97jU/YZCYmhtmZ0qHe3IKv1vlNkHqlUsFTKkVQ2dKZzja6Lj07J\u002Bd1ocUk8wa7GsxDjptds6WHu0JXZ4NgwuIqQ2kn96K/fVpBAVy4gA5G2UDfiYNPlnThWvoT6oN1vSD0aI6T31uujEgeCjWjSAR9i2FQekM9neP0O3ShpAlCVLTnN37NsgUA12szbiOiCojOqpkJufzPM7qC/0FCW1ojxoacv8U3C7zJCfTmXMSEISJVQULvxUCAwEAAaOBrTCBqjAOBgNVHQ8BAf8EBAMCBaAwCQYDVR0TBAIwADAdBgNVHSUEFjAUBggrBgEFBQcDAQYIKwYBBQUHAwIwLgYDVR0RBCcwJaAjBgorBgEEAYI3FAIDoBUME2pvaG4uZG9lQGRvbWFpbi5jb20wHwYDVR0jBBgwFoAUaXJ\u002BalkPK2XUl4Zr1UwQO/hOO88wHQYDVR0OBBYEFGlyfmpZDytl1JeGa9VMEDv4TjvPMA0GCSqGSIb3DQEBCwUAA4IBAQATTEQFspnaY0R57fPErQ1iW7eERtv/crheXcIMCG2r2RXRvwXZ2NYF5gtNf8o6AFc/tKst4qmQYYcTyezL2q8pbW2l8r7I1USTwiR36i5zagYO/YTbBxXbyuW0Wl134Mww2sJM4t8WBqzT596DvT0nYm5HM49D6NnoqVh0NMrrx73fvp/\u002BvzEZZemHH0o8wqw2\u002BdlcQvSlHLTiKC2uHA7CH5bKOw2O5Dtt1sRssLpAHU5QZvhG9zC5myuH/9OHvjG9Hv2WL3P2aF8wDDSTRDLZlsaZLCVYPErfsfvodyhPi6ZFyfwiBLgwfVhTfKawsLS3z7fEw\u002B9KmvLyrbRyDIM\u002B", - "attributes": { - "enabled": true, - "nbf": 1652724312, - "exp": 1684260912, - "created": 1652724912, - "updated": 1652724912, - "recoveryLevel": "CustomizedRecoverable\u002BPurgeable", - "recoverableDays": 7 - }, - "policy": { - "id": "https://fakekvurl.vault.azure.net/certificates/certRestore3931096132/policy", - "key_props": { - "exportable": true, - "kty": "RSA", - "key_size": 2048, - "reuse_key": false - }, - "secret_props": { - "contentType": "application/x-pkcs12" - }, - "x509_props": { - "subject": "CN=DefaultPolicy", - "sans": { - "upns": [ - "john.doe@domain.com" - ] - }, - "ekus": [ - "1.3.6.1.5.5.7.3.1", - "1.3.6.1.5.5.7.3.2" - ], - "key_usage": [ - "digitalSignature", - "keyEncipherment" - ], - "validity_months": 12, - "basic_constraints": { - "ca": false - } - }, - "lifetime_actions": [ - { - "trigger": { - "lifetime_percentage": 80 - }, - "action": { - "action_type": "AutoRenew" - } - } - ], - "issuer": { - "name": "Self" - }, - "attributes": { - "enabled": true, - "created": 1652724905, - "updated": 1652724905 - } - }, - "pending": { - "id": "https://fakekvurl.vault.azure.net/certificates/certRestore3931096132/pending" - } - } - }, - { - "RequestUri": "https://fakekvurl.vault.azure.net/certificates/certRestore3931096132/backup?api-version=7.3", - "RequestMethod": "POST", - "RequestHeaders": { - ":method": "POST", - "Accept": "application/json", - "Accept-Encoding": "gzip", - "Authorization": "Sanitized", - "Content-Length": "0", - "User-Agent": "azsdk-go-azcertificates/v0.4.2 (go1.18; Windows_NT)" - }, - "RequestBody": null, - "StatusCode": 200, - "ResponseHeaders": { - "Cache-Control": "no-cache", - "Content-Length": "43523", - "Content-Type": "application/json; charset=utf-8", - "Date": "Mon, 16 May 2022 18:15:15 GMT", - "Expires": "-1", - "Pragma": "no-cache", - "Strict-Transport-Security": "max-age=31536000;includeSubDomains", - "X-Content-Type-Options": "nosniff", - "x-ms-keyvault-network-info": "conn_type=Ipv4;addr=73.83.78.150;act_addr_fam=InterNetwork;", - "x-ms-keyvault-region": "westus2", - "x-ms-keyvault-service-version": "1.9.395.1", - "x-ms-request-id": "38b9b449-da6f-4075-884b-fb3b371a8a61" - }, - "ResponseBody": { - "value": "JkF6dXJlS2V5VmF1bHRLZXlCYWNrdXBWMS5taWNyb3NvZnQuY29tZXlKcmFXUWlPaUl5WVdabU5tRmhNUzAzTm1Ka0xUUTBZVGN0WVRjek5DMDJaalZoWkRCaU5XRTRPVGdpTENKaGJHY2lPaUpTVTBFdFQwRkZVQzB5TlRZaUxDSmxibU1pT2lKQk1qVTJRMEpETFVoVE5URXlJbjAuSEotNy1sR01tX1BRR1VhTkl5X0doaS1ueFhRczFxVUMybGRMdkNGSzZsNTRjQTlkb0N2MHF0QnM4aUlPWE5jX0JBQ25ZVjVnT0VncTk5NlNrOHQ5dlg3bTJtMXl6RWVVQzQ0Zk1sSm9jZk81c0VvVkkxZUkzeDluRi1lOVJTNFRwZzRfRFh2czRNXzREZjlQUkhLd1hKQzctLVVCcFdMMG91RHRhLWFZelJvVXRLX2Z0eE04a3h6Q1FpV3FuVlNVSTFZMXk1bjNmWjVxcElSUmgyZ1hrWlJnRTg3dUduUmpqbDJVRVhyMlJOdjltMmdZYnpkNEo5eS1HOEQzTGhXSEE1SUZ0WnRjRTVoOVJhVVVsVGppN29aTUxsZUZfa0JKWUJmYm9ZRFFJam12aHZEZDFiNGJxNms4NUs2NldvWjZ1V1JoNVVCUzZiRU1zVVRDdUpCT3F3LkU3UzE5M0xVWnhLeHJSZnB6U1JKWncua3ZwTGxDSUkxU1NaUFAwR3lLZ1lTU2FpZjFzVG1kaFVvRFY3UTFXaENkTUQwYTFiQi1oaXJoWGxPYkw1YW42SlZlZGJOclRfQjlJRkgtYmhwVXB1eTVBRjJQV3hzWGdMc0dWMGxVdUVfYWlkRVdjM2d4d3Y0VFVZY0tBazlGTHRTSjJMdkR5RlhpanhaMVphdnh1dW1RT2g1clc1RDJZTWVMc2VEcDktdkJDblJpVEk0T1o0N0FkMjhIVEl5eDNnR0xXMDc4aDZBTElKVl9LMW8teFJyUm9DRG1ReEFjUldhVzdOakdBVk5kbkZIR0xlR0dQYW12NDdub0x1aXN4bGRVc0pKa09ZQm44V0VuU1hjMWpsS0JqTjdveFh6Mm5CRTNicmp0b09vNHkzc0ZoUjYzY0V5cGcwS1Mzd2hBT2JmaHc4ajlIUkNwTmVjTUEyVThPZHRWTVlwOXEtM2hVdXZhd3lESng4Q2phcV85ZGdCTVp4MnRKTERwZEd2ekJ2SGQwaHBYdTZ5RFNiZVNyalhZMzlIRTFVNWVOSTZIVUlCYnI3UUx4N2F4UVlsSmdUQnlSQjBDLUM3TTFpVC00dUtYd05wbUtvMkNBS01QM2xfT2VzQ3NRclBRTXN1eGRUODlSZmJ0U1JacVd1Yi1vNUNVTWdTTHBmSlFrbGNvYVhIMThydUxmRHJJSGtGeFBhcGtkRlR0dGtINjc5eWZXMHk2N1NQSWVVLUUxVTdENHlDRE5vNUpROW9ka0M4bTFJd21IWUttQUpQRDlmd1dKNlFRLVM0Vnc4bU5SdjNDZzRPSzROMzN2Ym5ibHZaS0NLeGNxV2dnMzlyTk1pZmE5Rm1wVTJsTzNGSUk0dUFkNFBRTjVGd0sxZk5zOTlYMWdWdDJoOUVRUFVjV3EyeUVtNENsUzVmTndBbUswdXB1MVJXSTQ0bWVLRTdBUUpxeWxNSUdja0s1ZzFqZFRtQlc1VTd3aUxQZVVBNTR6T1ZKREJtbm0tVjV5TkdwR2Z5bmtyUmFLdDlFN09nZGFFNnFkWDRYMGRBSHpNb1Q3QzJYZ2NaY3RkeTR1dE1ZNy01UEUxQ2tKdVRTNmw5a3d0ZTZpc2hkazdFQ2VzcWJyVkpSeC0zZ3RiSE04alBoVHRrU1h2Njc4aklBNy1mZG42Z3ZORVhHczFZajJFQmNhTUZhU1FtZF93YTBMQlNTaHdLdGRYdjZSVXVZZFpqM3VldkVPdHc3VUFkcVBjdkExV0swVnBjSU5jcTBLYzkxQlhYMXFGRzdVRDl4MTQyM01ZN2NKMXlVMDZNeUs1RG9rY2treGNhSlBJWEFlQldodWpTMVFWWHdiZkdIZUdpMVR2dk03d3poTzJXaXIyRVhwNUhpMm41UlVtUm9IMXJHUDRmeEtRemYwTUkzRnZnSHBpN2tWeWdVaDVZbXdrbFVlVGxTQU4teHlRYnlFWFFlMHVaSC1TaEV4ME1XRzZLbElsU2RGS0sxNEJCVERFVE1oMHA3NF9nNWlNRUhLRDJzSWF3dVpUTWF4WGNGcFhlLXdFZkxnLXEwYzh1NGYzd01qVFRfc2pvOFRkM25laHU2eV9SUk90NkpRbURrUFBFdzNzbkNIOEJSRnR2ZGFWODZWYlZFc3ViMmdZZW1KTUk1Q24yTDgyMTZLXy1UUHRKWnlJcXNOV2pUaEhfMGpicXhhMThvcmNrTURKbVBSLVQ5am9jSUI0elgwTVR1SzN4bDR0UnFTUW5wRXZ0WUstQWdYM0R0NlZqdWlYQU1EMFFKX0wteTF6dVpUY1Z4SEhiVnU5LVRDb2ZiU1dRR0ZqSDFIWlljYURsa1BKNVdfZEUyZ2ZDMEFVZzZDUEhZcXFlckxvQzZfd3lTLU91TDFLblR3aUZfRVh1WXhYUndyNHBMR2VCdG1jOEVmQVc2XzFPdWxlS2NrMnBTcjdDUk0zV0VNeU5WNmxGT0c3TVlNdE1aNHNtbEV4VGF6ZE9RUEJkRXR3LUJXbnFsdnhZM05ZeUJWMkRFME5ZdnMzaUZ1TnhfTXhxZ0g3UzFHdFN2YW0wVWJ5cFdLRHVjeDFmQ3h6WXNST09SOGd1Sy1QU0RwVHFuX2luWWJuTi05dlFQQ3RzcERHR1JHTnQzTUQyVlZRS0lHTHp1NFpaa3IxRlZvRTZBemtabUEzYjdLVkpxNlItdU4xZHNvQXl3OElfNjRpVFVBbVdWYTI1aUpkdjdLQWlQYVpmbWFuM1BqN3gwSnJfRVNiTGRGb29ZM3otQXFTNmhjZ2dVRGYyVmMtUFlGTXRnZEhzRzlhWWRLeXNLYmJoTFN2Z0laTFg4VzJGa1J4OTVFTk12UERsR3ZLYXpJdVVVc284UDBteUR6SDEzbnRwZEU3R2YyckVRMU92WllDbk5IRXZmS3BocGZoenlZY1kyTFFPQnZQWEx3VnRzVWdFRk5yMzJ2S0RfVEVuSmFNN2RWS043Q0NzWnV1S0dqNVJjRnotR3dzRFVqZXpwajR6QU9neV9Gc1FFMmt0eE9SYjJWVTlZbHlOM09BM3kwOGllRUo3VkR3cnhmNzY0eWZFaVZvTktUQzJkZlZtazhrbGg3VWd2d0F4SzQtQ3E0TXhKcHl6YXQ2LTdBdUlIdloxSlM1NWcwQmVtNXRjNlpFR0NaODM4MkhDakNVbFFvSTRIY25MbE9WQS1hRVAzRGNuc0NYd3NjRU1hYlU1WjJ3cWQ5Qm9mQzg2U3pYa2staHFGUlB5S0lIT0FLZVVId0QtWEhhd2ZhTjh6Y2ppRURPclNzbnJrbHQzYTBNRkljeVBJVXNybXk3Mlh0eGczRmttNmJMSlRqeWEzWk9BOVV2QkNDVnZXS1FQdzBjRGNqdmlhLVh4YjZmWC11dU5zVFhXZUhkbFlSQnJhTExHeGNLOXVrc0l0dDBFS3FVUmJRQk5Ld3lWa29HSXNkejNWMlZEdmZoWlk0cmhCdmJwdFo3bWF1enBfMmpMTU82TEwxTi1xV2g2UnJIWFlfTmJOd1FCZS1BV003Q2k2bUFYX1VwRXRRUGo4T0NwYUtWa1N5ekRCUkYtRWVoOXM3S1MtemZVSWNRM3B4V0NnQXNxblhlMHNKQkltaGZCUmdKTnBnMFVzOVZpY2otVTdPV0FuNVFvdWtqREhJLTZjM0Q5dGF1ZlRVTEc4VWpVdjJTYzhVamVLdmY4dWJzY0FCaVh6WTAzc1dOQXFQdW5QSURPdVZKOHRPQ2N3RDdHOFNQT0pPSTRjaUVScFNOUkFoT01RNXp2Z04xUXdhSkxpdlpVNFNtMUVCLWZLcC1fTXVBOXNyNW9Dc2RpQVU2VHpseFpJRGxZR3g1RU1KSmRJWm1FdUx5enJxRnA2VDNNeVFNdGlScFV0LUk0TDdpSENYUUphd20yUkhQLVVsdWJyMkhxVDFHaFFnTk42dUxKYXJCUlI2dnJRT2hJazJUME02S2g5czBtaXpNcTdsTC1XaEdTXzdpOTZZb0lMajNkVFY1NTU0bWtRNlRIQV9NTUpYMU1DTWdPWHZfb1M4QmdVdHJpTVVUaWVUNFdIeGN6bFRacFVFQXFNdjRpSTFDQmdnRHY2V05pUVJxN3pZb21mcE81cVg3Q25jeUd3MXNiSmctZXhVQUF0S3F2c3BYYlkxcDZzRkZseVhPNFlQOU9IV3NLM1kyRVBJSk9FSW5GTlhXbmw2VjlJdE82TzBMZy1kaTlpTGtlaUJxSlhWNGhMYURBRXhIb3RmOFVkaHNIdVFPclRLWDFuU0xzSVZmMmZROUhCdzRYVVAzWVZpQjhvdDVleHo0OF9UY2QxRnpOWk1pcE5tMmtLTUVsMWYyU1BjVlotX0o4ZWpId1p1ZGdkU1h2aHM3MmNRVHNBVkRGS1loSDFkRzBNSnJwbnhkSW5GZ0hWN2tTbjlYMGEzRjJOa1NldWtMbGJfSzEzQm5oMzhlZmRlNHIweWtiQmpNR1c2ZHhoT2RGcFllVmdmM09GaWkxd3NGME01a3ZYOFFBaEkzVzM0MW4zcXdlWjludnltWDBhblNJZmVQbEpwU190X0NuVVBIVzFtTkVjNVJmWndKYkxHYjJES2hKaUx5LTJGZWhFTHdvTVJ0akJtcC1CSnlBX1VkcDBEdmljUk9hd01DS2g5eWZJa2NQQnFWQ2E3OWduaHJ0NTlYbzFzNW1kSjdIN0ZWM2hjbjZwaURFWWhWRnBfaTNrZ21xQmlUV1NnbnlLc0ZkX0xIS2RIaFpLZk9kN2o5X0d2OTBKVk1ZVGZOTVh1NUJjR3ZIUzN1M1hHMmE2bDBXdHBGNTdCSmdCZUhYazBIOUgyYU95T0czdWdoYjR6QUFwN256NXJUclJvT283NURxTEpfdkR6bGVBLXpIX3pDQnUzTTh4UW1WZ3FhUzN2QllzRm92MHZRd2VEU29mUW90VnNRMHJTNEpvVnFEQzVZMk1kaWM5aEs1OVgtUjl1dkZQUGVlNURnczBHdk9ublZnQ0I5b0Y1djU0UW13RjVBU01teEJaVkR5WHYwNi1McTlkTFBaelJHaTVVbC1OcWMzYmI3X285aUtTZW9xSmxjRE1ydURyOFNKWHl5YTJLWTZtTWlMRzVMMmxLUTFvQ2dZMy03M0E4N2JHMHJpakZ2QnF3dzdvY3NwaUI1YzE2VFdzb0p2V3MwY0JYZDFoRmV1Z05xbkYxeHVPMjhoNnpFQjVvUGpQUjBnYnVxM0I5eVU1dEZjQjM3Z1dreTN5SWc3bTR6S3g5UFdSMnZnOXlKTkJybTY1SjNNaU1xeXlzWTJKR0gwdjk4WmZfYVNaT0xjYWI3UFZIcjExTDVQTWtwdkZJUTB2bi1FVEVobFVqVmY2b1dndXEzSW5xMHUwaHNhWDdDN1ltV3ROSzdwQ3VKa0xlalVLVE04TUFqaWF0X0dBQ3htV3lxdmM3N2VJTmtUa0NENmdPWVhYd1JmNUQtYkl1cjFyYThGeTV3QXoxd2VmRTFWa0YzQmhTTmZnTi1EczZONy10Zy1tNUV2X1hlT2w3NGFvb3lQYXFVWFNadFhLYkRiVjV3QjAtemdidVdXc3pia2hvelREbngyTmlOak5Sdlo0ekp1eEp4TWNtRkUtOFQwbFBmcVBVYlBoeFJ0ZTZscTFUbzhfcnZiLWkxbUc1NUxfY1VUc0lLeHF3REplc3dveVRfLTFBUkRERDJXWDRPa3N6bmE5RjItQVNWS0ZnX3JjZDJ6V3F3eEhyT0xheWlmZTF6OElPbmJLODRYbVBCLWZJVW4zWG93ektSQjc5Qm1JYTl2UFJGRlNTejVuZ1V2UTBCVHVaY2ZuUXBNQWF3TkVBRnZaSkNRaC1vaU9EcHNLOWtuam9nTTBPQUNSbWdvU1hwb2ZGbnJQUXlHOVBtMHhVNGhzMEZLMERmSFpKWHBhdFExX1BiUmlGRGlwMjZKRVFmVE1TT2lGRVRUVklaVnZzaHJ1TGJoc1FxU2hzcmJEa2tuMGRDRmlQNDNxLTRycENNMmQtMllVaFpCbFlnVkRCT2JCOENrd0dQTUd0U0QxakZuZnJycm10MDhha2NSeXhBLWdSWm9vZkpkdDJvUm5wS3I5TklGeFZZekM2aXlySWxYeHk3d05UdXBDMzdhRFZhQTNBUlROaDJZUFZTMGhVOXVkOFNUdC1seGNaWk1BZXF3Ni0weXlvX21OSXpUZkVybHlSdTIzZmdJQVhxajNtemoyN2FSeHZ5QmhsZzE3Yll5cXpycy1kRXBGcURCbWJXWWdVN2hYS1l2Z2I0dlAxU0lrajlTUzB1NnlMNGZXYWR5RWt2WlFlTldzdXJqMzZfSHNqenB3T3dhOER1SVMxWVBfRDNtTHBhZzBDaEpfcUF4b2ROQnU3azBXeTMyV1FhQmNfSnE5OW1UWUl4OC1BRnJGbFJYTUJHS3ZwaE8xYzJCd085S0JGMkU3dERRRkpCX19DMHpiSFVKS0tZbTZVczNsLXpxMnNKX0dETEphNlN5dGZYWFI5ZVc5M2xmR1p2SnFWLWNheVBFQkNHd2c4MTdpNldxaGdkbFVtSnZHYjZSTzNBUHRfSGsyZjNlckJzVVFuc0RHcnQtdWFVSlRJVVZENTkya1AwZUFOU092QUV5V0JLVEZhd3FQSVZEYmpHQmFqS0Q2N29tTWtLX0EtRlA0aGpnZFM0bDk1a3JIT3dLYUxOSU1TRTNQN3ZYejVqNHp3MjAyUlVCSWJrY1hMdmxtV3VoWVA0QnI1bTJESEVESzVfY3gwSHE4Y1hoYlR4b1ZXcGZPellOY2FhcEx2VXBrb3ZKNDFqLXp4aW80ZnI3R3NnOFpQSzZHWU5XeXlwcnd2b3NqUHJZMmJRYzVPWURhN051aDREN2tJUk1sM0tvX0dNVWNtbU95aEpjUV84eGtMRGtreTlYSlFONWFHaUlFRkpQeE9ibFdWcGdfNzR3TXVUTjVLdmU2MUM0ODZBQ04zZDRWbzROZVZrUDBzU2tpUTBHVk9HMG9LbERUV0pPUjVZdlpab3J2bjNvbjFESkE2SWRvdGFENC11MTRYbHRXenlwNlZHZnZMcUc3eXVUUS1Lb1BVaEFZVUhjekREaUw1RUpZQ3NVQnVIbWVMY1pmR3ZIcUx4ZnZsT1Y3NUU1cEcyRjd5V2pjdWx6X1JyaF82YTFMT3lHOXZDLXNNeHFpNkZ6VDFfT0ZMX21xVXU4UnIzTnZObHdqNHloZENaQlYtZ3VZbGQ5MEh0NFhsZE1od1F1emZ0MEUzOWdXTm1yUEFaRENoLW1VTGxBd1JYeF9zRzNOUmh3YUNnUl9OazNCU2Y1Z2RTejk3TFYzM292MGw2ZDhuYTUtS2FaODgydmFFSXVyX090cVlZNlJzYjNkc29McXAxR05vajZyem9kLV9VOEVaYWRfdWhTRkNUZ0tWMFNCckZOQjIwcl82SDRIQlF3MURVVWFjUEY2UXl6V1l2OVdhTm1YeG9KS3Z6TlNxSENDdmw4RGNLbG5Yd0Jpdzdkb2Nucl9RVl9idTVjQU5DbWhlSkN3dWNpVVZ0Zi10TjdvdHN0dGxBb0k5bmJqelNhN01pZGpOMXRRVXZiTmxoVHBveTFjRF9WT2RJLWsyTHhQQTNwemJNaEdnSk1QaHZtM2p1R2tZS2VGVVNoLXd6ckpJLU1jT0JnNUtZbmdBWmNpTTZ6SjFmd0pfODYwNmRwV3pucENxU0tWSTNIU1ZjdVU4NUtOZnhEREcwSldQRzRYdjBVY0UzTUtybzVEN1M2Sk9keDNuRHRGRzF3R1EzOWhfSkprMmlmU1laLXpITUd4TnAzOTVZaTBCcDdyMDQyVFBwd2dvMVBIRmtWQkd0SkNFTTl1enBQdmlxX2V0a2xUR3lnUy1wVGg5c3VhMWNsd2xiblhHSzNZUFNCWWZIczNrc1RwX002U1Vrek4wWTFQU2JQVG9mM0xVcUt4UnNaYmFYYXZ0VVNVZ3NoYmU5eTl0R2U2NTJjY0o4ZE42RUcyVHU0WTR2cVVxc1FlUDViSHJPOUliMHU5dzFqOXc1Q1B3TXBleTZZYjROZ05PQlVldW8yNUVUNUpLbndSZzdiVTlvWDJGWnJxMERCTzFlS3B0N21RYi1YcmY4NTh2bEJaZTZVZ1BrT0ZsdER1TUdBVVdmWnhYdUtVd2J5TG1NTXJKWFo2aHdTWVJrZGRCd2ltLV8tQ0xMRjR4WHpIN3Y5anhrR0RrU19ZUDc3d3RYLVMxMG9NZTR2R1hJelU1dDhkajRfeF9hNmdYdXZ2OXJCcFg1ZkIxeFFKUzlyZHVBbkowdjN5cmd3LTZkeUhmYXBwakJ2MTVWdUo3TXJiWk9fTWhQbWh2M1h3NGJmcjBFOVUyZ0tHcnNlempoY2pEZ0NMOTNrUGI3V2oxeXFxaVJId3QwT3FleWR5MTh3V2ZEeVBpbjBqbjUxaUJmSWhvZTN3c0pJeWd3U2xieE9ieDRPTUlybHdXZ0hZM0Y5OE9kcFU4Vm94QmxCSHFwSDdXLXJsOHVlMUo2UHdEYzV6VXFWNkJVVVlVRXhYWW04SXBFRlYzenRnR3VRcnBSd0ZaVFlFc3ZzRTZhRHd6YTR0cnVmSGZ6NUZfbFFMaHpQeDU3MDg4WFNMRWczcGh5Y2NyNlJFNHh5UnhIUW5CQjgxWTlrQVBBZnNqYmxWc0dBR0RWVTFVQkJENGF2eGx2VURrdGc3WE9LVWltR1Bsb2lIOUdSREhoWjhVQWZfWEc1dXlkMTBId042OF91VzVMQXgtZFV5UXhVZERRQW84c3Q0QkRYLXd3TmQtMkdBSENKWl9GT1BNQ2ZfbnlIbi16YlhHMWczZVo1V2hxN3dGQXhwY003Z2E4aTVvY2pReXZRMW5uYnFMSlVWVnZoaUxGZTNZOGJvRzY4SExLTjRhRFJ5VGJLLXlSMi00eGg3SEx3RDgtX1ZRVEtMOFlEY1R5S0ZaUUhKZ0hPSWhEWC1Ga0l4MWNsZGdfRWJiVjJpMGhFNFlYTVBNNm1zdnBKTUhkZ1pUNWJkRlpzMi1FcmZ4NGR6X0pCZTV2eGtDclZUcEJyWFczVUxCQnBmS0kyQXVyZkNZckt4SXM1WkVlVV91R3B4NUF2bUhuOGl6c0dEeG9LN0dGMnlQVmlqdEs1cmRMVmdfa25BanJKbGs0amtwbFVaZjVGVzlFa0RIZ2l2S0JtMU9oTzhyUlo2c1J5VnlTUEF6dWY1dl82SFJIcF9tLWhKcW1lTnpBRklpZUNSeUFJYmJBWnlfRWNVMWE5VmpzNGVvSU9XVXpISFdtOXZkaE9lcVR0MWVPSWVYN0tScEJSX2tzTWVOZk50eUlxVjNsU3pfdGwtdk42RHkxNHg2RjhVcklob21MeGMyaWNUd3ktU2ZIOUJhVThRYzFKaGUzNVBITnNsMk1BUm1sU1p0Wlc3U3JPUGdlb0ZOT3JVMnpyRGp5T0lxZ0NZREpuMGxaQlY5c0RKWTZCZDFhQ3VCb2xyUk96cElJbjhQQlVZOFY0ZFh6TmpndU1GWWVodU1tSEVzTmc4X1VybTZrYS0ybDNDeXJpSWQzNkJod2xOTHl2RVZaRWxCNGxkRVhsYmFhdGpVT2NPb1huMlM0VG9BSkFCUXh5T010ZEo4OTVjQURfbm5iYjM5VG82MDJ4bFFlM0dZQmVVZmIwNFY5UUtaR0l0Z1lmS0R1Z2lXcmxIYmJKLVFJQ2FtVEw4YW1zdTByODJTMHd6bUFVemNCV2I2bzlSYjR3bmNLTHFEVDN3ZGpzSnprN3ZwdXAtYVRJNkxOUUJyU1ZvU015ck50cUVqVEg5X18xQWcydmp2cWprS1djaTRBTFpMREpUZ1lCWGRMOUQ4aDdHdkRIbF9FUzF0X2FrZWFyQ3Y0Zi1PeWlNZF9GcjlhRkx1UWNGb3ZYU3ZBOGJEZGdSNGF3alQyVU5PcWZmZVR6VlhXZTMtUGxSaE5jRUlyTm1zVXlLYUd2eGZHZUZSMG1vY3g5NWdhMHVJZXhaTW85SUt4WU4xaW5xTVFZT2U5Tlo5NTRHVWNLOGx1cHhQbnctYW1wMUJZanNEZUdnUFNDdzJPWWJFYWlrdFlZZlJOSTJsYXEyUnRHMWJQNkRGTl96R0U4TnlPZU5QSzNidUlzcUJhRHQtOU1vNVRROHBBMmdPRDNGbUt2TU0tVWV4a3UzUktyQjRzSnRWN3MxWXFaZENjMEhIeEw5WjRpTmZBQnFuMmVuR1BveUYwYkRSTzJpMHcyOXM5bjNMWk1vc3J1WDJJLW9jbkJjNW5XeUN1SzVwUHBwZ081UEFldm8tY3h1WHMzMjZJb3dzMlpRZW83Mlo4bTZ3UkYwb1JvYXdiZEZwYk5OTEVGbFpVTkp1aEpWbjJYMEJKY1kwZGhCd2FyMXpRWEQtS0FxOFZhM1dla1NVVG5fSmd1eXlNV2x0SGx1ajBXSEQwT2I1SWZvU1oybTJGOHJLRkw4eTF1cjQ4cEpUNjdFR09KbmJXelpKY1hRTGRiZ2NrdHNVNG1oUjllcDhpeHRkZ0hnbXlPVmVUM0hhdEt2RENDdHBhRjJMbC11SDI3R3NIcVdQdXdMb0ZvWlNRNGtVQTd1d3k0MXNaUWh2TF9UUVJjY2NaVEFNLV84QkJUb2VSc0lMcUFrS0p2X3FCYmFhN3pKRXRtS2txRmMyUlJzY0FfMVQtZU0yOW1WazVLZWJnSENtVmxrX3ZVUnlxaDJhUExTUl81UDBaeVBOUk9VLVJXS2JSbG1PNmp6SV8tOVhrSWNpenBRUk5WZm9lUS1FbHduWUFMdnpHeEZwWUtGWlVFczhBSlloRGdvQ1Zxc3Z0WVZkZjMwSWV0aHVvN0ZXS3dtYmJKYzZvY3ZHVWdvQmF2RmtqWV9sM3ZyMzlnR3NGMTRLeXJtWGktSklweEZBTURxLU9vb1FKN0U3Q0Q1Y1pVSDh6VmU5TEdFMTBKZkp6RnlXeVFBNHhLbXhURkI4RzB1WEd4RVZzV0F4bUh3MTJWUFY4VEJxcnMxSllrdWlZRnlqd290Z2hGMllVbWJzMk5rRDgtZnhkZWtXMHh3bW9GbnJaUzQydmVPM1pjX0xUTU9vRm5hVndQWWhKZEpnUjFGM1JiRWU2bHBGOTFVRFNTYnNnTjU2MjdOU09IRXQ1RTJxNEQyWDR3UURIMkZWUGVlSm1QOEhlR3J2eF9jRlhoSUpJWjZhRWpVblBuVWk2NWJncVNDOUg5bzNtNEgxVkpLdDVHUVRVMzhJU1ZlZzBBRXVZTVU3N0wyNVFQUVRKZVQtd2pPb0pGeEgwMDU3YjFmb3E1RkNfOWdNbGNXRnVWNTR0anZ2Z1AzU3NyYkYtaU1tbEp6b1p4TnN6dTRlYVA2X2xMSXRmSWRfQjg5bXdtOE1LZVUzdG1lSWt2R2ZBQWNUS3BtMUI5VXI2TDNQZHdNMlM3TG55N1czS3g2LU5scEp1aTU3ZDluRFdvNXZXTk5qb3lURzBuemd4aFRicnE4U3RyNndBY0k3cDBYUmN2eWhHZS1aalBONTJGWVQtaWdOaG0xNGlHLW9aTjFBLVBUb3Z1aHNKdUZNS3NBV2hvV2pHMEVCUmVUcXhWMUl4QUxQTC05MGJaa2d4dlBCRnJkZzh3ZFdEa2oxa0JVRnpwcDI5RlZuV2lscnliamYyWnZqMWJYOEE1SEMxWFhNcGZ6cEpNS2hMWWVqUzY0UHkwZTd1RWs0czFZSXRNZDRsMmp4bGoyZ3FwSzVUOS03V2JGdFg2TzJsVC1YenV3OGZ4ak5VQ1UyRUIzY3B6c1Jla3BDTGJxbWtLX01sbHFWemVvU1JFRkxpS1ZoZWpCd1lQRHhyeVdKWTZDOEdueWFnV2tsVWVEYnV4UVlsTzdoYVpzS3h2T0pMU0RFNTFPYnozc2t2ZDZuOUt3b050dFluWUE5c2ZFNTQwODB2cU5WZk9fc0xBNDc0WFlCTk1VMkhNQW5ERXNrMlItRHV2TmZQZmc5WXdyU05YZTVmOG9LV1J0X0NrcGY5MGhjVXltb0ozdUdZRVQzQm1HbzBqVkltaEU0QUN6QjJQY1VSeDREcXJCMDE4MVhsLWh0NmMyRjZCbGtfZkExNFRNX2JLLWRsaU9rOVZMdEhzN3RKMTlnUWFQWTRiUW83ZFhfeFBVaXdwWHF4SjFSdVBSTWg2TWlNb0tCbWR4VHlNbGF0U0VEWWQxSl9hOU1PTTRpNzhTT29qVVRVdXN3MVRGT0hGRXdmaWN6aEJrdENRTmxSeDIwRW1aVkMyWnkya2tBWFhmVFZFb25YXzdCbzFMbmpmdGtEM2xJWWpPZ1ZSMUhtQWRRREhFYjBmVGZ1WURUZ0VMOE1HQjNZWXpqSTJETlg4TkpiQmlZVGI4Unc2YV8zOXF4dE9tRUVYdUg5OVpKQjVhdm9xRzhIVWJPazZsVFl5QUg5d2llQV9KZGFWRk81eXNFY25PQ0FMbmFWcjQzZ0ZfckNhUUt2aS1DRl9YWkFhYUd0dzAzMDBzeWZESURGQkNWbWttNlViTHdqbFNHSTFPT1RYNzVnU2ZZVndJa0xBNE10cDZ6dWhvSFl2TWk1ZkxBSjRrbnhfc21jSFd1TjNfVXdKcDJvaDdrd19CYm9ubHhaaXpYSW9OYTVzWlVaS3RwdDJZQmIzN0VHak9WcmYzQklOZk5OeEg3VzNoUzY5dnRxWDY5bENDWlVyS3hqTU1ZN0kyM2ZZeVM4eUlrUEdlS25KLVNuRXlrenFxOFJoQUsxbzE0Q215aTBNVUtmdEY3LWhxV3gwazUzME5jQ1NNbTNmcG9tZ3pQZVJyUTFvci1NSVNndTdZUXdGdDFfM0tKN0hTbzUtM201RzlheTFSaVB3WlhEc29BWFU1cWlUVTBqSVppSVZVeGc4aDRzNldaUnpHelJwWW5KeEU0WjFFY09CdFBHLWk0ekxrRlFsX3hBY1pPeDRoMWx0ZTVrVThwaDZqZTZYMUg3ZDJVVEc4Qk5pZXlzTkZXX3R5T2dOTGFVQVpNNGZVRHVPX3kybk9SdFpXRC0taDZjN0REeWJWaTd2dVYxd3JvVFlNOEs1QVlySHdkX1hXZkFQWHA4MVh0cURFM1BESVA2SzhabFpvX2lJWkVvRTBwWnpKcmViZjJPaXJmNERwamxHZmd5MmRHNWc2eTlPSzV2Q1psTW1QWWJBSzlWZ0F5dlFhY0lrX2VhMFVxbjZLY1NaTkhsQkQ5TGlhWnUyM2wtamFrRFEzc2tKNmc0c3RUa1BZdzQyUUdDM2g1THUyR2VOQ0lyNjd5eHh5Wm9vUEZwYXljZTBaX1plVXFXUE13VEg1NUFlb0c5UW9LTlBILWhwSE9BSmtiODlTZ0JpRGNKYWR6MkFRRm9rbmxtcm9Rcy01VTRxUTBoQlJQTk9VaTFZdDRaZS1neXZfMnlaX0d6bWNQdUYtNmxCWWZ4TmQ4RUVwVVM0TUhlUkZIUmlodXN4VGRtcU5Iay1GUEZKVUdtVnV4NzdfdGU4QjNFSTBGb090cUJ3aGsxam1TZlZFdHp4VG9weEdnZy0zSFM1STBhTGx6TkJTZjVkSGlkM1V2SnhPbUVKaTJMbnV4eDBPd3dOV3J3SFV5UlItUW1VajBxVnNBRS1OY2pYLTM3U1RXc21JRFpqM2ZxS3I2Zm51eUJYTTREd2R0RXc4ZFkwVEdzYllGM3J1NnJtNDRKaGJSbms3RGdWWVZTZi1wakI2bHpMak5NUW9uRFJHVUxtdUpiT1VDZFFTeV83amVLQW9kMDlfbFFBUjdXYzJqVk4wNksyWVBIblRBdlROekNyX0RacGZBc090Mjg3YzhRNURfQmhWY3BsRHFhZGFMOVhEWThuRERiSmo2a0ZMOUpqRXdGaE9TYlNaeEdUOW8yVkFQcnNhRXprd05wdjhfY3VnNUVMNkdRRWlEUkFma1NoelhVaU1vSjdDQnM5WlJSYzNkZEl4SXhFbWN2RnkxQ0kxcm5FWDVHVEZhX3VLUmNKQllWMnNSaG1xSXhWMkZ5akpLa3ltLWlDd1JFMnViSkx5ZjhRS21UZHBtSjBOS0JSang1aWNUMXdVOVdGa1lvSERSMkJqcFdTYVREMFVnanpNQldLX1NrZnNkOVM2REoxUVJqX3dvZlBPOHhXVjR6Wkx2bzZiRW5mQ0ExTFhDYzR0ZUVVSTRrZm9oLUpPSDF5b1IxQWFsQ1JJWW5iWDV0Y0x6VVd5N1VUVmZYNllDeHZCNzRYVm9RWVhVY3pBeWZNV3ZmZzVlTC1oak5FalBTenY2QUhLelVFWFpHM0kxTFdoeUdUdXFvb1Uzcm5QeUpQQ0ZqeUJqd3RiSDR3NUVseUpvNHpNa01yNGtUTW1fNWZsbG9TNUx4ZHNyaXZ4UkJTTEJ5LWUwTmQybjlKdFhIQmZod3ljT3YxekF1RTRoM191T1JPTHFGUmFqdVFnaldNSDRmU0ZUTHktdUpWcEY5YzMyYjVPX3F5aXlQc1VLNlBKZG1jd2tjanExYjhHRWRGbzIyRmFHWXAzT2lYeEk1blQwbmk0OGRzelpNTGNBTXFsdXV2b19KaHVzRGVBbjlJLWFmZzM1M0Y3ZVBIblcyMlFCR2xsYkpOZDJqa2NNbktQWldlV0hfeE42Yl9UNFZzZzZaM3dsZVUwYWgybVRacnVNdnpRVzJ5X19NaDRXOG1aM3BLVEdxRmc0OUg4RE1ZNTlEcGVmMENvNTlod3hUazVTWFQ0bXNGOXpxdkVfcFNoU0dVWDBvRUVtanBiZTlxbi1xWDJWcDhrNmtBY0Q1QTBCeFUwLVZtc2pmMXhjQVlNMWo2c3o1V1JuVHhBb21HTmhnYVd3ZmhRMkgweGZvcDlYVlZxZjlMd1lnTlhSMDh5YzdnV1ktVy1CYzFXQ1FFcHNobzdqb09SVVNBSUhBUmZuUnFBX0tob1pZTnlEdEVHLURoX0dZeXlOdWFXMkx0MHh5TGJwQ0pFV1lnQnVNTTRFSkc0Z2Q0LXVzMV9rbTFHQW9YQ0lvXzVXUE9odTBRSVI0cEtncWdMVWQ0NkV6aU1MQy1FSDRkZGpfcmR2ODB2SkF6alpJWDBLR0V4b2RZdV9ZTmxhUDRVVXFwVW9mNTlTclVhTjZqZ0o2RUlSWVRnMHlGTVpycWJTdlVJMklaT09zUUNxcFdXYUI0dzlaS1VhTVhJRy1udTlDU0hQTEJQQlRHdFBub2Zhcmh6V1ROOTZRaDdxZk13SG9yaDFPMl84aV9xWENLZTR3NnU2V3RCRnVQUWJZQlJUYU5QZ2xFTWZMUHJORWZTSnhGa1ZJTVg5N3dEc0VTaG9Bbk5sRlVfd3Z4YUZQdDVUSXZPcUpUNEtweC1LMGdoZDNKSWMycy1XZmRHaUx0bHJQZk5FWWJNbkt1bGtlb2szZ2RqR0JONGVoaHo3OWhEWTkxNlJlcUdMOVlrQTI1Z2FkU1NKY19ZR3ZiY0NiM3ZCSUVhUkdSRTBxTnRDclN0WmgxdURwRWVvY0xocm0wSTdzVXYtYWotTXB4MmgwMGl2Z3BtLWNraVl6amUzSHFoalltcHY1Q2RPWUZoQ0JwTC0xRWpVa0V3bndIc3E0Si1ZR0NGV25qNHF5dWNoVU9KVUl4RGZUaEtUR2ZPa3cxRVktTnFZdGNPaThxS2txNHVIRkx0OGZVLVlGN1VGTVlNQzBfNVFJalBsSWNYWGc5bFFlQnAxZWxpOUY3WlluMTFPWG1oYWE5dlZxU1FRX2t6LS1NdHpyNl9yWWVYTi16TXJGV2tITmVVS19hQ0VrbHBfd2VZUHg2Mm82d1B1NU1uaDktVXlqRGNraFFzSC1la21pQ1BwN1hLZ1dWOE44N085bVB4allRWTlBVWZNT3BhaHZZbHNKWGh1RlM2Q2p4N1BzSGRTbGFMQ01jcHhabVV0YU9lTFo4cW91WWZUdHJ0UlBreWdtYXQwY3RpNUFvYjNPeWVWS3BHSXZRaDBseXA4cTltWkFMNWtFVDBGMUo2QTA4VGFVemVJSkNDakFLTzhEaUZYeTZnZlpleUpHeUZUTzVmWDRkWEtOU1hZRXY1aTRmYTZIc2tieklIaUlGU2tkZWV3S0lKa2lZa0s0aVB3M0luZDRTR1dCZ2liZWdZamRYY1drb1R0YXVTNUdTdHh5UEhrelhqRVFka1NTd2tnMVh0c25ZN0VkVHV3d1N0V01kM09UWWFlVjlLV2lHQVpDOHpQUEgyeG9qbVJnc3pZUjNoTk04VmllLTNNRi1jOW9UNXpZMG52NmFaV0FxSW0xLUZ3VnA0OHh1WEpUQzBoSmJLLU1kNzBWb0ZKMkVVcEdMMk5nVWdpMElKMjQ5ZXBuX242RVpzTUVXUEJTS3BGUGotYnZpTW5CV2Vkd3NRWTNfNkJpQTZaUkFZV0xORnZBb0pqSldtQWJMRVFnS0ViSlYxTUMyZHpmc01MTk42Q2h0azFnYUtlOUhpR2FzZjFNLVZpU2pzaUNCTmpaejNQUjVzUXVqRGUyZWNnU05yZS12dzdYUGhhdUJmQ2FUeHhQZTFuejBkRkJyTGpHV2ZLNW1KUkJGSnNnR0g5OU9zV2tKZ1F4b0p4VEdjMkxNaGE1Zm51Y2xBVnVJWE15Y3Y3cmw2bkJvOUs2cXU4Vk1GQ01TM3lTUEFZcjBreE5XNzUwandDVkFEdlNqbVltalNDOWpRVzBMb2ZrUC1aTHJzRVRHY202RUNxUkl2TDdqaEk5c1p1UWdiME9lNUtiZ2ZIM3lpMWpJR2dZVmNfQUFFMGhOcHRhaUNTaHB4SWRGT2JiRGhkd0xDalJpWUpiRjFWX0RFYnExRXhIVVJLX2pNV3NPa2V3cENveU52ZkFYRkFzTTZnUE5taVBFWFhvU1pEbUVhS0hEUl9KaFRTZmFvNk51LW1tNG5jV0I0N1lnMVREYU15VXFWellqX09vTVFlQUZZeWpBNmlBR05FZEZqMXN0NzFjNW1COTV1WVE2aFhwX25hajdkZ0IydjlwZF9Kd3hNczlzanhPVzV1SFRzdFA4Q2FqY2pjME42MS1MUm9acS1xZWFFMjl2a2pWQlM4cks5OTlwcHd1N3Bob1lUOEhKQ21Db25xSzZ1VFlVcG5yQW5oZ3MyVUh0YVVfUDRUcXJyMXJVYm9rWkVzamxJbWpTMURIMlh3N3c0bWhMVGMtQXd0bGZ3UUd2NEQzbUN1dUFkbVV5OTdZTzBpdWYtUk85SGloNDZLbC11NmZQNmlQQ3VrU2dmSkJZOFFqdzcyc29hUXpaUkRfMVZSYzZyUUVzdXN0NE1EVU5ubGdDSHNTanBwVUo2dUFxbXd6N1lzQkZDd0tUN2o3T2hHQUFXa3BPdGhQY0FDZ3U4MGJlMzdBSnNxV00yTXlxNFVydVRKNkk5OWxQTmwtcE05and1d2hSZ2NRQUJxcm1mbUtmQUdoWk9LRFFVUXk2aXp5bmVmZ1IyR1pzaC1tQmk0VDMxQk1xdktSTXBCYjgxWXRxcDVySE9iTnhqVUZ0SXZsYzVybjVMWXR0UjFpa2gxX3k4dkFHLU1JX01xdkhHbG10dGNrTldCOWlldVNBNHVwdW5hcmRCajIwVTNKdnNzeEUxTlUzS01JMWlhOU9JU3M1azdUc1VPMlE5TzZYNjhUZ0Nza2Z6dGRCSjQzdFNGVzdpSWNVTDZZZmxyZzhKT3N1SmtScWhCX01oVmduQ290aGxGT1VwZDA1TnJpRm8wYUxIWmcxa0czbWx1QU56bVNPVlpBd2tfLTV5bHZHSzdzclViQTE3NVZOd1Q5bG42VGtVQWFkdVhkMC1mLWdCbzVpMk4xdGpldjVMLTRTQy00RlY4bzB2Z1o2TTEzd0FieXZsck8tQlY3b2FuZzEtYkYwWHBRUlFhVHUyTDcxMGNRV2VOSkxLYkpGblhwQ0M2RVA3Q2FJT09fdXBUdjRPMTEwd3NiUDV2SEN6MF96MjNkWEQzV2Z4YWRqRkpodlhXNTBFbGxKbXBqVjZFWUlvWER4MldvU3NoemVveTlVX3MwNXZnbzZ1dFBVS2c3aGwwejJDblJBMUVUY3FONlladHlJUU1mSi13V2tBSm1KZmJVenA3MS1uN2htRlp1WURsaUNGaG1XNWRNVVMyVTd0dGtKdFJjVExHRFdWX3RqQVllY3NzdUxFOFdDTDhTRmFiZElrZmdUNDJ3N3E4dngweHlHVEhSaXMtNFhWZjhiUm1nd0ZMbVFYb2EtSDJYWFEzb0REenIwV2NSdjNEN2ZERXc4cU5qWlN6U1J3ZmpmdFQ5b25RVWtFR0VBWVRVQWtab19LTmRkejRBVW45bGZwbHZCM2RGS0FwX3BWTGtOTHZtSXpXZ0NERmFWak5TLVdmWWlFeEpfOHd0MjNEMmZkZTJiQzFLbXdnM3hpWDQtTm1KZm9PREJadUxQYXdfMDlkS3hmaXFYajNtdl9WdUY0ZE9xZzF2Y1d1X1VUbTJoVEJKQUtyMmNJRklZb21jZFVQZ0NOcG9Ld1l4elpzUzlPZmdEcGNDWkVXdkNfNU96QlByVjNsdElfRmFSZFJKLVZ0TmZUUk5mQWZxSmRreDg5bGg0X2xUSmduMVpodGRpWjJLUG9ONHdxYXhpYWM0akt1TV9MYXZlaGh0eUxBemNFSHc5MG1oYUZ5TDByVl9HZ1FlbDNwU1o2cnI0VXRWZ3FFcDA4VUsyRFYyZlM2QXZZWlk0ODNndzBqMmpickg5eUdrQVdkX2FXUVZMMzZ2WkxZVkxKX294NkRLOU0wb2hPUUJuS1E3X2tDNlNUVFR5SjlpRDU0U25mUlF3dWxVX2ZpeU43dmVkaVJTVDJrZ1ExWm9OWnlEZ0FOSnpiSGtxclZhU0wxRF9JSnAyYmJoWEZjZjd5ZzlEay1YRU1rQUdDMGR5akNfTENVNTVSQ21GbTAzM1lHd1QtbGhxQ1drR2dOQ1BCdDNPamtwZ3pSRlBLclU2enZCYWVUbXdxT0JROGdCQzdycmhLb3A3Nno1RUFoemU3bVM4VWdEaE9PTGt1NVE4Y0I1dXcxMjQxT3prNDcwYi1xc1l5OTQ3VHdjdWxTUEN1NW5zR2hvaWVUR0o1WlRjaXVLeUo5ck1TRkhfUEI2N2JGZExseXVveWFBQUg5SlhqZWN0VS1zNDN6aGpzYjJrX2x3bG9sX3ZIb3lKeTRHOWxwT1dUcDBMeEZPclcySlg1YURoUlJ5dzZrblNDQVlNbjBzZjBBdnlHMUYtMnR1dEFSZkJPWTc5eXI3S3BqalZpR2lfSnZIRHN1c25TZUozZlRTNDktM0I5dkljam1fcDMtQWhJeXRIeTQ1LWFUMkw1UkZvRVNXVEhNNjZYcTRBTDFKSDVWY0daa0dHNGltUHZ4MkZ0VXRDZ3pQWjRTQWUwYnJsYW1lTVV3Wm5JSnNKVU4zRVE2WTdKenlWSjFfb2kyUzFpNFRKaU9ySXNTdGNYLThZV1VtTzVvZ1R4RnIxdk1qM09MbWIwOGhSNE5tcWpyUVdCTUs2OGt4Y1lTR2tqeVlkYkthUklVSG5BV2lEWExjd1QwZjNWVDdLMTN1aEVmeEJ5bHE4NWR0QmNwdE96WjkxSFVVNzFLYWo3QXZFb21WTGZQby1JcllQUUptQjlXUU5fZWFDM1FuQTlUc2hEaDUtQS1mdEwwNDNGaGg2NFZyaDF3WmZYRm5abUlvR0l0bUVkVmxDZXQ0a1IyemxZVUVOQ2tJWW9sREdYcEFqZWRTNER4aFFGYVNnajFvQnp5QThMZU15T3FmbWZZT1dxTDNBT0ZDMExyay1XaVdFWC1NWmVQdXVycldZRHBSYmhPWGExckFkcXNuX1ItUnlTTWR4RHlJRmJyMFZfN1Q0aW5qWnFrTkJTUXJnTHFhMHVKeW9vd09BLXBvMXM4ajRsT21vLVhTR3V1c2NRMGRBMWJIdUF2VTNSY3dSeFRfYWg4NHN1MEpfQTFBZlVqY3RrMmpsYUQ2Zlpqb2E4dVNsNnJSakFyU1dVdzdFZ19Yc1hxTVg1bUszcEE2bkp1dDFBS3REOXlvdDZhc1hJUUdMNE1RaFdVVmpPcVlhVlJ5Q3hkOEgzV3NXc2cxMFNpUWZHY2djYXVEdUxxU3ZwU05fUEZzb0VHU0pZODZPYzduOEJEYk1BMXJiTWhtR0ppUTBOMUVnb2hsMXhwTDVWWWxyaGtsUWlZWHdkb1ExQWgzNl9jTS1uZkU3NGtuRmlzVGJpekxKTS1aZTNTTGFIVDRJTDRiM3NoNmZxR2lFaEtUMVRDRjhRMzlPdk5KcFZuT2k1ckFVb2JSc0xFRW5HbVVlZlVPZ0xUamdpOU1DOW55M3MyWVE2alZpbXZxSnowZFJSY1hPbGpXeDBncEppUm0yOW5aT2NXVGpXRjl6N3BUOGRZal9hZHp1VmRqckloTXp6eXpTdzN0T1ZRbk9ldjhJZWdVeFlCcVNLSzc2Z2Jmb0tBRzV6OEZoVmprbEJkaEhrRVA5NWFlQ3lCSURFNWp4N1FUYVZ2cmpIWUMtSk5PM3J2NEk1QWhsUWpTWVJ2RGtoWnVPSUZ1a3ZiR3l2bGFTMnltTlFYQUllWmpIVThyUnpqRFQzSFJhS0p1dnk5NF9JNnBFeXdKMGFGU0hGX29yYXNpS1lrUlg1VFliUFdNcF9NQW9nbXBkU09nQlhVak9HWE5EWXlpTXBzMlIwalFCZVdiSlRneGszTEtGYTVmXzNfWWpMdmNiZUZVN0tIeDhGaWc2T21ES2hEYVhNMU1idG5aS1lvcUFKMURpUUx2ajlSOVJWQnI4TVF5RkExWlJBYV9VX21UNW5uckVQc0ROeW5idGpfSm12X2o1S3p4M1JMR0JDOGNxSEZMeDFFUElsTFdvcFlpZTlITXh5NV91N2FrS2E4NDJXaWhPVDhJX1gzWjBGY1h3Y3RJMVZPOE5USTJhOWxkV2xzV21KRUY2eVNLc2Y4YnBpUHRkdmV0UW83d3ZkMzBGQ3ktR0haTVBmY0RIaWR2ZlVYQmhmeS1RYXlpaXV1OWl5d2VteG5nZnQyRXgyQnZPUHdFY0NIMnNkSjFHY2lVcWgyejJjYWFrc19DRHBSSXRwam9DWEZFWnZWRDhMY3NodV9ma2V0WkthdWpfM1p5TnBiQkE2TGdXX1dUQXpXNkpaZElFVlR1T1d3QVU4T0loSTY3OXI4clc0Z1dRZzZjNmtkUWM0cXQwa3BfWnBhSEduSUN2OFhNSmVac3Vnd0dqOVE1OW5TYTVtRzB6OXpIaGVwVzNoV0ZXQXNOTFo5cFhCZXpvbWNGS2VDSzFFYzdLTFVrOFVsdG1RMkY0Q19pRlplcEY0NGNyZTluNF9KMVN4Sm5ySlJldWltRGJLSHhQeG5VZ3hWc1hzVm1QU0Y4SDRPcXZDeUVkODhhc20xaC1lcjhkdXZyekxWT3VaUUt1dmtsVDhNN1FpbTNfZkc3Mks4dVlUWU83emtFNndKOGZnLUF6VWZGeWJsZ1EtOFk1X25XZlNLZGdGUmtxMmwwcmF0VUZaTXRCLUtMRC1yQmZ4cXRzTGtvTHJlVXp0aUFDcjNDNVJyOWdOTjVwb012ekVpSVZpUUx1R0RJSzUwTHExTXk5ZDdpT2NlVXdyd3dkbXRHY0NIUWZZRUQwMWJJZzZMMVlIeENSV3FIRVl0SWx2RkJORkVfc1JCU0xPR3hFQ2lNNnEybEs4Q0Jib0p2UnpoeWNWTlNzUFBtUFlpc0dNd0ROdEVYeG5mWjNWM09HMHJkZGMzWnRrOTZyeWJRNEZOb3BkZkFnZ3NjVmUyWUhMUHBBYzJNN1Y0VWc0M1N6d0VWUkhoamNSR2VRZ2hrcTJ1T0p0dzZrS29uTUhrSFl6a3hyNXBEVjVNN0VWU3FzZHN2LWg0NEp0V2VaUTFUd21PS1FyZVpzR2hMNHZtRjNLM0lKaENKNENJOXpwT3EwN0lhUzJjTHZKZmpJXzVkNjB4X3EyQkxtblNSWnNMQ0hrNFBsbUVIVVk2NE4yTVR5eVpwY3FxZnJ6MkFtOU5LcW5EbHJSX2FMdVc2Z01HOFhPNHJvaFpIc3NtaVBKUUVoYlpXQzJyRWlEakpsejd5SFFkV2ZOMzZKOTgtTHJXa0xseEJOM2kzZjlxMXR2NFB6VnFhZ0d2Ylg5UnZ5R3RSeXZoNHk0RTJoTGk3SkR6UGN3Z0NmTmEzbjVGc3hGZFVpdHY2Xy1aMTh4NG8wZHd0UkRtLVh6bFZwTUxZVjJWRlVmQjVReEplbVdjZy1zOG96WnJZcjVBTDV4RlZ6ZWNKYUx1SVd4Q1VpaHJIR2k4VUxLVVF5U0otUEx3eFR6VzFiT0d1bjFPUHNLRlJjZ3JuXzFERUxqbGJMdlpheU10a211QUZMMXowUVZwOHpHbDNLWjh3NEp2Tnp0V2UtXzBCTVJJSXJCcmktd3pIdFlvdEJWV2RWMHktOUVCVVQ5Mk9PVVNaaTlQV1hQQmVGZ3JhVnphS01JVENRS2d5bXFaNV9QNHJTYTVvQTFqNlVKSWNDRHpySTdyOHZnLTdpdWJrZHpkM1lSdE9GeGVxVVQwaE4yMkxnQ0d1bVdqV2tRRU1tTGl4SXd4enhxdVBsZ1dCWVlVdkEyeDFjSE83SUVKYURLbDhvZ3JXd3JySllTMGFmdEszRUFzcVRSaWtSODRhX1I3OTBHYXNRWXowRFBzN2VtQWFOWDRRZ1lOdU9mekxkaHpaY2o5N0hmMnZzLXJaRElrOEJCLW1nakVZeHlnQ01scEdKaVZkRVRVM0U1UEIzR1pUazFtMThvU3laSUVuYXZEUUFXUGlrdi12UEFKYWRqVVhHcnN6UC1DamtIRXhVUEVyRVVLbGRzeDNFajJtMk9FeHRjWUxteUpMTWFqQkZPVXo1Unk4eEdtZmZtT2FhRU1DaVhNQ3ZmWUhQRnNJMXRQRHIwaHRENW1HMW53VGxfcFdDR0pxeTVyb3RieFgxSWYwd3p3SnpITWlDYVI4S0V6MDVWTFdwbW1FeHBveVEwWmg1azVMTDFMeUhubUdXa2pEOE9wcGNlVkwyNDhsWkFrWFFPamlpNkFZWjBTYWlzZjVPOGxnejN2TXRQWjJhX3V3R3hnYjBBczdENDFSUXdoYmlNWGl0Zmg5VlpvN1JmeU5XdHlxRGlhbzMyRkVRUDlQYkdpM0ZmQ05lYldUeEVQNUlNLVBEbk5BSUlZUGk1MEtsR0FFSmNVS3NyclAwRDBCQ0NRVjJJQWdYLUlEelN6QzFoOXNVc2ItTmFDck9OWEZreWtmNWdTTjBHNmFnWjBMdDg3OFNXRGhiOWdDZmVPb2ZKbEQzaHhjdldZRkw5SmdxSHRrWTJtOEt5ekp4ckhLaXF5YU1mcElnbEIzaTZtRE9weVZsSmhhdjBsY2NqZ29nNGdHaVpoRjJRUFI5SmpZWFpzc3FzXzJWSnQxMGYxQkQ0dEFGYkRHQk1Rd2RBckI2T0RTQ2hOWEZ0akxXUnhobnY3S1IwYkI4eDFrVGdTTkxqZ2lCZV9VTVZlaEJaSHNpU3JraW90X2twREZsb0hEV09abkNsVDhRVlhWM0VsSmNqbzc3c0NrNzRXRTljc05pS0ZvLUZOVkVqOG5KTUtGTVpYRGV4OW9RSUhZcUhtMG1FZUh0QzBWS0RtajBLdnh6X3N0WE5nNEIwclFJUGhSckp1ZWhBTUtmZXZmcWEyMXZLZW9YMVhpWXdBS2lndkd5TWRJNzdwQ2tzcGtnYVF1dDdmT0d1SUlUTUwyeFR2d2F1N0hoQWtjc2MxR1RYeDZ0ZlpEU2RVWS1nLVFpUjltdU44Y3ZJMnVxQjEzQ3l6VWkxODZvazNnYlFiOU1tWGRvaXQ3OElERDZTdmEzay1XaGpONENjcDlIbVlwSFZPNWNKV1AtTmwtUmU3b0RwRjdlMDFKeWs0bFlJM3JHTEdpVUZ2TFc5bW45bk1jQnVaTW91dmk4MjY4S3RHMTM3cDJZV1JKaE01TkduaHA2WW9yN3owQTVKdHM1RkFfSnNYbnlCSFpObTE2cG9uRTRmemloSVNQOHVwQ1UwdEF0YmhWeU9CLTdfMzBGNV9tWjZBeFVaeC1lRExXbDJpUEE2ZFBhODVKYzRjVUZTOTAzWVBOeHVwelU2eVZBMDk1QWFkR0ladXBQWllvakFTYnpZWU5NdTZ5SExOSXlYYXNlS0g2ZVdrRHVZaWRSVTJDZGdWb3p5bkVoS3A0MnIwMUtwX1FzOWhzLUhaemRHRzJ4WmJrb0JZeWhNWUtJRk5sbmVaMWtZWjBPV0FwOHBlZ3BtZDVlX3RadWxJanJmUWRVMmFqcEJtRk9JaGJRcDVqWl9oSlotSy1DYy1fUjRKZnUwcy1TUVRmV3NWQndyUkU5ZzVRWEhvUWRQZEZ6eWsyZ3ZZNmRBQVhuUkVGbWlqMFM3aExmbmxXd0FwcmJIalloYUZaQUtkMFNJXzJPRFFJS3luaGQtbVNIbTR3dnFza3hLQjlXMGUyNWpsMkZ1SkFpZUpzOHNkTW94WXltQjlKLV9kdEI5VTQ4YVcycXowZU4wNUZMR3ROR0FyMmhLVWhxbXlPc0s1S2tuRFdnOGRCQTNOREtTdEN2Tnc2cDg2bDRoNkVzVEsxZXJoZmQtZ2RlS003SDFKSVNLZUFuT0swTEl0QUpzNV9DNE9rMTY0eENXTXJPaUE2aU5US2oxNFpCM3I5aUQ3MEdycVExbHJaa1dxWmVuTmw5NEZZczNJOHBlTUZySm5qMXFfaWVMbmNlN1dEa1ByTEVQaHRhT2RIbnZRS2Rha3c5aUs5ZENSZ29QZE9MQTlVTHNZMUJjcFNnYmVlTFhLZklGSXZJWXhyT2s3LTA2VGpBUGVOQ2NSV3g0UURsdXZFeER1QnJYZ0JHandnNWRudDRRSW9JOTRMZkJwNXhWS2taZjRiWnRFLTVDZkhaVnJYWUx5cWhRdDktQXVnYnJvNndBUTBtYlhvTkV2TXQ1RmRFU3o2SzFFZXZPN0hJbGtPWS1nWmpRWE9qNW80WEF2dWp2eWV4MUlrYnc2eE1NMkdrS3g5aVF3YWtBaEZqUjRicE4xOXZJTzl0bmVrOXZ1VXFKR0tQd1MwVXNfVWFaRlBialdPNVhKWmRnbDQ3LUhuVFFtUk1Td3E0U2Q0UVVsb3Flc1Z4cWJhWTAzdHp6bVJ6UVNZUG01bm9sOXV0dkFjcndqUFdaZmc2YzhYZFFERENfMUNqMlBweXFsOUpjOTYzNEllbGJfajNQZ3I3MExnbkhlQnZVTnNLZTR2NDZaZlc3MFZGelUyQ0I4NWNuMW54S1NPbDRpMXc4YUdJejc0NUhBNzg5UU51bVpGamplRTRwNmRjRVU1am5kaUZLWGMtZzUtdGZuaDJUWmhrOGp2MlFTUmN1TkZ5TnBRZkU5TzY0NG1FbmhjOU4tVk5iQ1dWM0ZXaG5ETEdtUVh0RWV6N0pWSjFlR0ROazF4Q3VFSF95SFNkYzZ1SDhmRjB6U1Q1bnZEM0h0LTQxNVBVTEZHMjJ5UXlVTWtkM2ZZMzR4a1F2UC1CM3FGOWRINUFXVmJLRGVIdDBVRW1fTzRVQU12eVRjTVU4VDB0ZW5wcWZrREN6cEtzU2tMU2stWjBYYnJQR0FIOXJxNFJqVnRra1pZeUFfQmh0VndwZ3I1RkNLYW5kaloxcUx6Q014NDA0UnRZV2hRZXVpa1hMMkpKNzZLZzczNGt1Xzg1OERBOExnbjFWanRLRHVVdXlOSGNTM0NXalpBTlE4TngzRUVLQU5JYmIyRVRXTThIOXdSMDF5OFM4U2gxT0wwQ2FuRDZ3R01fS1U5RUZLZkJFZGFwVHpfLUdxVEcwU3hYUGZSR3BZOGJ6SVM0MkFvaUNBdzJiLTNfU1BzVndJQW5TQUNkRXo0enN0NlZaQXc4YlZCZWlJbWNoRnpjZ3VLVFoyUURpQ1lzM2JIVi1sLXNZSGFtcndKRnZpMWNMQjdHOUdNVkZlZ2IyNmxSeDF5OGN1MURiSVlmdDRqcXlZOGpQWFNxSE53QjhtOHJraFBZNjg4Rk9panJTSmhleGlRQmJWUkJCS1g0M1pSTU1KMlBFNlp2ZEkwQWlYUXdVUVlQTFBBY19rM1d4V0ZWUFZGYlY3NjJsbHZESXRZRTlVRnZWNFRjX1gtdURtemVxVkRURkVibDN2VUpxdmZHMTBTUWd4aEVXM1owZEVhOUY0Tm84VHRBSzFlMXQ4ZFZrMUJSNC0tdlRBc0tIN3BOdXNtMmlNQVNMV2FOa0cxWFRydlBCNy1VU0d5SkNBYWI5Mi1EYk1TdDQ3X2xyZVJYaHJ1Sk1DeGNFNXVCLTQwaUhCODdpaHdqRDRNampaV0dpM0o2Y3JoNDdYNjIwVWg0X2l2ZWJ5ZU0xb2VHZ2tobjY1SVZtRC16U2ctcWJ3UW0tRWdSMXVhOExnVXRhQWV6UFRyTjA5S3pOVmdRTzhaa1JwMmhfVjZYTVNSanJMV295YnZsWE5PX0thTF9maDVEa3I1SHdtU2l3cHdMMUxYVDg4MFFnOVE3N1VYcnVndFpMNTBoeG8xcWVmendXbmtYMTZvWmxFZENUbWtaUExRT2hfTkY5eS0xSTdmMkE5cllUX1Z4Qk5KMHFjb2FUNThVckZRbi1sdU5LOFhqaTFuOHZrMVB5bmc0MVAzZ2tCZms1bnVSS2E5eHl5OWtNTGIyTFZaRjJyTW9qRUhvQ2FBQ2cyM09UUVM3N1otV25FU0hHWlJoWkcwbktvMl84QjhnVlhqdzBRYzh5TjMzMDlJblgtYUs5a3FTdlhqbVNublJrOEVuemRkNDhWQ2tOamR2VmFLM0p3QkllUGtmUWRkcWNsNzFnQW1vTF9HdjhSM0dwV09ZVFRQWW82RHE3ckk1YmlkWUZSQlJmbWVPLVNjdVluTFFlNjN1SDFXNFhlbXVuNEpiMVRJblNaOXc0U29MVGVOOUZqdHp4eDBEYnFHcU05NnQ4YzV6SWhCa3dIZWZDVEdiV3d6VzZzemI2Y3Q0LXprWGdiUVNiVnZJcTktdU90QXhMQlZEU08wSElTanBVY3dueEM4clExRF8yNEVCRVg4aXBYSUp1dHBoVXZHVWxuNkxKaU1QYUdmdHJVSWJFVmZ6VENkdDh2dDFTMkVEb3padlA4VVAwN1dHekxSd3p0RTFQS2lwd1BTM2lXU19LV0FDdDlPTEpnNWZrc3VhSXU0YkhBZUlCdW92R3BUYmJ2dWE3QzR6eE1DUDR2U1ViX09lbUhxTmVLV3NldFYydFRINEpZRGxqaUxxWUVUQ1BtSmJOY0ZBVEg0YXQtZy1xWWRHLXlQbTNNNGZYTEx3b3ZRLWZwZDJ0bTgxUnFlMFNSWlpQUjNTMFUwREJmYkJHRF9pX0ZMWU9RdFNIZzlndnhrVUlGTUpkREQ0bmJkWEVWcTlYSGstWUczZFgyM05PNHRtcnk3ZWlxTVpqRmVJZ2VUNklhNHNicUZkTUtPTU5BcDFtVkljNGN6YWc1R1MzZ2pXczNRZ0dLeHoydms3WkJHbTdCV1N6UUphZ1I1SFF0LVZFR1JFektQZVpSd0llSXE1TjBDOURpUndjQ2FZLWdUX2toUm9nZzFFWHlGOHZ0VjEzWmEtSGUxbDBTemhpWXRsbloyb2xUS1Z4SlpOemhpTU0wOGgzUDFzWVpSc212a2ZtSUR0QTVyWE10eXd1N2pWVURrRU5OcTJXMlVRMTc1M2l3TTJKaG10dnlDRDNtSG01bVU2eDNMVXg3Ui1lYW82ZUFYMkxZNXJKbzVvQXBUbWVaNnlhellJaV95STJNd1VWV2N6Z2hrY2xuRzJIOGV3TGUxSnVIYjRHRWZmZTE1ekFQckF0UG5QbXVWVlNRTVRLSmFPcFhib0hqOUhJdVU4RjJtank5VDJXZGpYSU5rT2xDT1VWQVR5eW1tTHNqN292aGNOM096Yk11TWhZNVZSSDJSb0lfV0Y5c0pLN0FKNjlMYTFsYmtSYnIybkZsUEJEVWF6dy1CdHJoQzg0X0EyZl9PLU1TaWNfZFJkUlY0UzFaT2wtVGt2eWNUYWl6ZlZOcG1OSWNZU3JYcnBlcFBYUG1FZDVCNjdKbGRCdUJLcHBwTGQyMXF5VW1oaTZxMEtQdk55RVFaQlo5SE12dGxNNG1CTkt3SE43bG1nUXI5ci1iVlZHVEpPME43LXJ1c25ZUkEyd0ZtRjYxTF80dzBjUl9ibThaX1A3d2dXd0RmbHNvMi05cmZlVkNobzFNUWV0eVBpRnQ5X2d1VnlYTnRudEhZM1FWZFUxY19uUUt4Y2o4bHF6VDUxTkk1cjdzUDV4bFp5ZGdTbFFlMXdpcWRiWEhaS1NQUldVZER6OG1Sd0xGVW1MNkpkek92ZFlNRTZxM1Y1UHJieC1aaXBDVkJtN0tUM1lRTXJIWDlqUHBWZGhMZEhNSUJfZmttRGZSb1Yta3V5TUdkNWw3aTRfSE5WNDJZNTNOS3RhYjdMcHhNcDctcFBNZ2w4dlhFUEw4TVJMRDRqa3g2UFowSGNZd0xaSWJFY3U2NVJsZTFMYVlibkpmTjFDUlNTeVI1bVVJbDNqT25HeGMySWtJelgtSE1qMWhlVG9EeHZ6OHl0bGVoUjMtN0dCQ3VON1ozdFQwRnh4MlNIZG9EUEQ1Q3BnMVRYMzdid2ZocDhReC1MTG1iYUo2RXAtZ2VwcjNOOEhmc1ZfRU96cjg3TnJJVzlUU1RaTWx3YTNVRk95bXNRTEowZjRFTERPZUdOaFl4VHRfVzdlSTFTQnluc3NrRWdWYXU1Q1RrRWJDMWdNeHpsRmtJOEZBUERPa3lQTkV2T1ZYbWg1c0dEX0Q5di0tSWdldHpHN2VTZi0zV1NWZGRoNzBrckQ5M016bGtJNXdRdUxHNWhfcFZrRWdHRFFDc2oyd3NYYThrN0R1MHl4QVJWM3lxNXFUMU9MdWZOMkR3R1lyOGx5SmlWMzRpWElYSllldGlYYUloVnRJYkJtR2E2QTluX3VnWEx6NU9LZW5YWDB2eXZmN0tIVzdxOEJUdldSeFhpdUZpRU5ka1VhRW5pQUk3Nk5nUE5aOHZCRjl6X2FxMzJHRnlLNDdvV1RfcWwtQXdWSUVCVl9mNV9CeVc3M1lZdG5GUmdLOFY2LUlxSUw0cGdadlZZMXdEQzBGZ0RXTVI2Sy1pT2N6eHdJai1xUjQ2OUtkaUhXWEVmYzZtVXd2RnBfcmItSTdlNlJOUm1lZ0RYcTdTUW5aOTREZGdXaUx6c1U2YThUMTJtRWkwcHBJaHJHMHJST1l2cGpESUszbXNFTXBiME9DblRIbHdWSEJXM25abVpsMXh3VVVuaE0zVDJTZDBGREdkUTlqY1ZfUUZHZnRYbXotTGhiLXJ3SnZIbjRmdlVxTHV5S0diUmFwWnJJVG1IdHU5X0t2VEJsaXh0ZzhKbjNsZXk3b0FlSkpEY1VsTWlDcHNpcmpfNlhuWnBJcWhHNFZURlZCUWRRRmpfSXE0MTlXdmMwMkJSTTdScTZyMDI0WkhVRnFhYlpRempGTVJLaXEtTHVZZkhLMko3TkkwSlVKdXBkNVFxWXVNNnFid3ZWcFJ6cGRabGhreVZpUkFHYVIzWHRJV1NiVmVpWEh1eHEyTklub0Z2dXc3Qkx5dzFBSE1INjQ2TXYzMy1rQ0xValQtN3YzNEIzdE5waHMwTXdMYzNlaUIzNjNqSVFoUm9aRkhaRDhFRXRyME5UUEpIWUQ1bTUxakJ0UHFDUDM4QTAxMVBRNDFJeDZzdGdud3RZNnFWUU5SVmZJU0ZvTWZ0QzRKcVF3LVp5aE1UOHYzMFF1TEVod1Z6NkZsV2JXSkpzRzBOWW1qanpEZEc1dm5qRlV4bWVfazIxWWQxZVFwdzdjazNFcHkzMHdwUzI2ZThZTWlyNHBRb3B1M0xlbTg3dExWN2pjNVRkVXhsNWFIQ1VIY3lOMFB4REM2YnRlbWZ5TklUY0J0Y0NxeGpHUUVxRFJGYXpfb01qZ2d3bmpBZTRUb1h2OXFzQS1TZTdrU1NIVXo2M2ZMQWkwN0VZbW9UeFJnNllwNmhQdVRzTGdraEpVRC1XQ1NVaDNJc0M2Z2c0Qlg3MXdRN3QyNlBiVS0zMGdTZGlQVFBhQmNzTnNxbGVReEktalFDX09NY3NaM1RmaWpQUTN1eXByY3J6aXFHVVo5UjBycC1UVERUV3c4WjVnX3ZJTkU0SnZIeTY2bDRBLWpkcFByQWg0REJyamMtZHBGdzVpSERLRGFKNngxU2hxb3c2X21KNVFLOGZDYkl2d3czN3BPbWU1WmdIWHBWUDA3NnNzMDhTLWZKYkludUpOWEszNXVZT0lpNXBOd3JtVDdGSE5SQ1JvUWlZdFJwSjlvZ1dhT2ZMUWpweXRMZUl2b1hkajFaWWZ6ekkwbFg2MjNjVnRfYTFINnZONHNfa3hCdUZLemVlUVRXTld2aVMtZFIzMnNhRGRZTUxEVVE2OF9VUTd0R2hkM1NVTWlFYVFIV2FrRjNOaFVDTm4zeGtqNkV1VHA1ZElMWHBGZmx6VW9OaTJrVmpzclpUYmhVNXRwMTgzN1VFQjh3ZVRRTzYwWHd2Uk5GbDZwNmJPdnFBaEpCU09XbTNxMVR6cHJtenFhTFhGRDFTU2hXc0tlZXM4WjJCM3AxVmdaa2k5TDVlcC1COTRvMTA3YU1SbnEyNWQtbDBvdUxLeDVBVHBzc2Uwc3Fmd2RJMU51eHZ2c0ZJQ3VMczZnakk3YldXTVhpN3hJTjdUVzdiWFlUUS1USUNnZ3FmQlJHRnVNTWk2c3FSNEVOWkhhVkxJR2owZWhOM21TSzZpUnN1a2MwcEJ6ZVNMTVFvUTBlc3FjRkRRNnVWdVFuRjludkZWemFYNnZKUjNWaDVsT2NoQmVwSnVQMTNLdm1za0t4YkQ3WmtNbXUzT1BFX1pJOFpfQWJvaUdkVUNlMUZ3Y0VlaE8xNmpDc2t6bTNERklNbmJEMktLWjVZVTFTSEo2N3JBYnpzMUN2XzE5bmhhZ3doNDdMaUpWVXVOZlhRTUVRcHQtMWw2bi1weFdYZ2hoM2dPS3pHYXJSRUY5S1B4WmZTTkJmSXVncHExVTRPdXRZZXN0cXB2QU1Wc1lQYmZMcXBIYzVaOWhBX013Vm1IWUlOd0pUQUZtREtrYjVnS1BlRlR2T2NvSExuYUNQRmdwd1JXeXo0STlSUE12OTJocEU5NThKNkcxZjAxMnhlbW1rbEZjaktuYnhxVlh5UGx6VzdvY0NJX1JMY3VMeHJOeEl6M2tCUEhlaXlILVFfZHBpel90S3hjUDctaWlDTnZoN1FTQ0dDd3lLenZwSU04Z0w5T3lXRDN4THk5aHE2a3lzdVpFN0RmM191c0h4aGhUWXJVTkJXV2hOdHRnbHpuZ0xGYzhsTzNkVnVNdXltdWU0bDVWTkRLMnJMY1FsQUVaN2RsNzl3QlpwVnJPZEUyQ1Zab0ZnZkctWUNYYkVGWlFuZ1l3WTZndXFRMU1Nb0dsUzhBWlNSeXM4dldaX3B6UGJXbjJwc0ZPVll4U2xCWDd4YnhGbUlmNlQzUkZMNWNiVndqTTVocVRxYnE2Rzc1ajRzbmdlSWxJcUowU2ZOLXJwUlRVVmJfM293R2JZWU1PenRrVzNjeDN4ZG81YjIzTE1OYnNrUmRCc2dvUVlvVm9vMU50cjhlQjVWMlFXM08xbE5RS1M4UFYtVU9QR2E4S2NJelRTZ3ZCSmhvV3djWkxHbVpfVU1oeGFUS2FUbTFHdTRDV3laT2d2U0xMVnd1TlluY0cwbkt0MEpDdmVwSUxEODBFem51dWM1OVpwcWxoNmxGOFdXZHVWc2NWNy1zUGY4N1RpSnc1dVJXeXN1Q0xIYUVrNTFOa05pU0htYVktR3k5WF82NFFfdHNJOGw0N3IzeWw1NXAtc3IwZlpidE1kR2MyNXNuV2piQmRueWthT01hUU9tV3lUQ2xnSUNyLXhMZEpVRmdxWDBKM2RvUW40bUlHQlNuNkVPTUFUWE9aaURpTXQ1WFh6ZVRfRGRPX1BQNVhwLXVUZHlVODI0ejZkZjJScExtSU84cVd6WUZOLTg0UndkY0ozakppN1YzWUp5WGEtSkVQU2VaOE0wSGxxQnRFamUwVWVidG1CWi1CWFFxYlVMTW5ZNXdwVzVTWG9WVmNnVC00NThCdVpkd3JaaUtzR2dnQ2l0QnIteGVPcS1tbnZwT05CUlRZa3R1aEN1MGFYcno5Sk9MYlNYYTVHSzAzYUgyN0VOVURwT3lVZmxuaWt1YkYyQmJwaHl1QVdFcXFpYkRFelFkY0l1LV9wdEotZ3NQYTN2TUdpeENsYkpMTFZMMmRYOEphbGQ2cWZwMmxwTFdzWVV5d0wzbjB1QlB1Nl9qNmM1T0JHYUlTbURPaTg1YlBVbTRHN1JVbzloU3hCMlVBN1BySmIxSnB1WmJFaWRyMW9tMU9VcHN2cThIVUNlWFFSY0pDcllqTklfRnpPUWVOXy1NWW1na2JVZDFBYjdpenRjTWtybnlnSk5DUGFFWXVpd21GMlpsaEZkYWQ0emo1bnI1V0JQTEo4bkplSkgyS29BVDZ2UXhQVWJyVzRwcGFNX1VnZjhFTUlrekxhYnVvSEM5S2xUVnZVSWZVeGtsWWdZOUlMRWdPNVRHenJSRlY2WXFjSnhMVl9HTE83X2ZlNkRqU0pkWlgtWV93WDE5Vm1DT19zV3VNTkFzdjd1VzVfdXdqR214d3BDRHFKWDZpSTBiM2tHRF96bE9OdmY4cVZZUkFMaFY4LTZ1Y1RtWjNpc0picUUyek5aRjcxU01aQjRueGdCNUJXRldrRDFqVzJqZlNzSHM4QjhhRXVSWUpXQl9XWW9aa2YtQXU1NVpfaFgta3BEMGhRelIxNnZWbHV4VWRVbnplUlJvdDdJWGF0S1ZxMTFTaXVWMGdtMERCRVdGZWZfRDJ6bGhrRTN2OE1QY1NNVVo3VEJ1LVpZTnJRb3RJWEtvTHk4bldpUGlQNERUQWNsUm5GbV9QcFdWZ0lXVUN1c2tZRW1kSDlFLWNDYXNwRHBMenBlWnMtR0JORDBZTFBIY2IwQmRBbnVEekV3Ql9MU1hQRmtTeXpYeWh0NjBVUjdNVE9ZaWJRcTF1cDBkR3lYSDZvTGV4MkstMmUwaWJzUFNQRDVsdDQ5ZkhlM0swSzhRZE13T0hTbmV6OExSQUYyUDg0TEN1U1FNVks2amk0REVjZFZ0TVVva3J5MFFSYzhsNE01b2xNd0Y5bHpXU3cyMlJjLWVMVXFKQ3hxZkFGVjJOV0NtV2xfS05NeVUxa3BWcnFfV09JaHE2Tm9qSV9fSHJmSElFM2VKQ3psRU5zS05IOGRmdmloaXdFTmdoYThHNV8tOFhGMVo4WGpPbzY1VjBXazRBMUhGaFNTLUNrcVNZRUJJM0hsZThqV2ZRZTdnNmttaF9mWmROdWgyYTlyVUJPOWZNQUV1MnpSYmlkVDJJVHhxNURHemlvbHdWSDZXbHBUaGcycHBxX3RPSzF6WDk1MkktUXJudVU2dnRjRnJqTXVMMjRlUjl2R2RUMWVpQkQ3SkpKWHItem1FNGoxakdIVkliN2swM3JHM3lYaVN6V3ZfeDFBek1mNnphZkdtMnlaYm5PTWNxVzRGc0hlNEVFUnFrZ29zd0FIaHdxUjF3OXpWU21UWTdTTm9lbzRiYXJ3MmZlNnVsYlFLaDE4MzVDZjVrSDRrY3ZCeDlEXzFtQUFzVEp5VzJkZkNGX1AtdUxhRDN6aVg4RjRpbG9XNXROZ25JUTZJTXlhaWtoYlNRemZQOV9KZERUWGt1N2J5Nnl3TGgyYWxYUVFKbC1aa1JiSHRYWFVsazhlSWY1RTdpN29xeWtmRldRMGt2MGRFWXQzVVpwTE1oeDFZR0pyYVQ4TmF2aFJ2LUdoMmtxVUdaUUxNZGJqREswai1zTnJzMFVGYXM4UW9nWGpLckdXQ2FfSlhTTWZETmhMN3ZvR1NqVk4tX2JLT2stQUtsdnY5QVNkX1k0U05WUGF4RVdXZzUyWjAxSVZwalpJUk5janREekR0WHY1c3hfZG16TXJnMk5oZ1R6Q3FZWTRKQ2RFUUxaaUpyWnlORlBrLXpMdi1KV2c3VEdxSWpaZGktUWs3ZXVEZ3IydldIT0NvaUlVOGtUeFZ6TGctMndDYUo4VWZNWENteTFiU3B2Vnpza3ZmdHdvTkh1dmptVTlHbnVzb3duNHBtRVlSTVl0dDNSY3RJeVh5bUJoXzU2cm1lelNQenNJY1M2aGtQb3JqSTFuUFlxYmMtU3BTdGI4NThwZ0h4ZEt1T2VYNUk1NzFWTUJhdzlOc3RoZ0daQzVZSEw1Z2ZxQzZyZXBlVFRBOWdReE1Oa1lsUGVGRFNjRUpjbGlsUnBkRk5mMkJ1T2oxRDFkUFBxMTNDSDFXVS1LTWFSQlZ3aExtMW55dGU3NnNHemJMd3hJNVZsbG9DTGhVZVhOeEhuZ2J5VWtxS0V4VENpUjhHbzRxdDZEZnFzNy1KaURfeDhwQ1B0a19ZUEVmU1VSY0pidzFUNGdOMHk1OUpqUVU1V0RLeGlEeEZXLWdFc1A3Q1pJWXFxSUtFWTFmd05VWkllTWtQZkNnNDY5VkppR2oxS1pqOTgyM3doazlDRTczOHd6UVdpaDBJVUFjcTdQOWY0UDl6YjM2MVpFMUc5TDAyRGtMWEVUN2Q1ZVp1bHBBb1NfYV90REpibjdZNHJ0cW1BcXVBQl9VQXNvZTBYbTlsYmpYUFdyTGNqMWhvbEFXM3lRMXZhNkFsS1FWYUVqV193czJNZlNMZlhjNVF5Si1VekNDRVlCaks2RktNN3FRS090S3hhdGFjbjloLUF4cmQtVjYycnB6SHRJbnJoaVAyNEV6dm1BQUY5WUJNVkZJdTVmNHdUMFJNMWFCX2RXNFlXNFVldHcyZXpOa19HTWJSdS1xOFI2dDU4ZUNybDhveTJ4RUk4eGJUWUlSNWlGTmUxbTY0X00zMG5LOTFHME5mbWpqYnltYTBKQVU0WGdfaEZQUTI4SnZ0VXJjRzA0UzVQZlV6aFlxZDlaWHFJSnBqdjgzR2c1RUJhamRZOXhpaHYtRjF5Ry1BNFRPcFc4a0lGWUpqZnRneHRMSTM1ZG1Ya3BwZlA1d05Ob09CUjJ3Y3piTkJmRGZwYmRSQzZLZFM2d19ValZ0N2huUV80WnFjWTktWnZjamFNWkswUUFaVjZuMi1TZl81VEd5U0VYOE1XLXduNUlaQ2VZZXpCNkVzaGduYTJpQV84VUQxSjBBbnNlT0lyejd5STFVQUVEWXRXZ21IX056ZzByTnZNOHhkdnVNMjdtNEtSNVJsamNweXlDRmV4NHJLdXlhVzdLQ19lSkZsUkdXYkxKYjFSNTk2UTNXOFVyMEsxQmRvYW1ReUw2UGtRNUZxNDVDZUp2NnpHOUx2SERTUTUtU20wX3VzXzg0a1lhTTZ5blRKS3RVajdybmVUb0hvbDN4YmdMMjBpRkVnTzhYYjBDNy1uTzhIbldsYnJuVkYyeTVtWndfNW1USGRJSGYtcmNiLUdEN29SOGNGWVAzT0pmcDhTdHZIbjFsUlJsS3BXN1ZBQzVib1p5N0NDQzhpMGtyOHNqenJ3UlVxb0Y3bGhFMGVRdXNjRUVrMWdsUjF3ZWpQQmFOSnhWZU05TldSRHRveldEa28zd2hobHhWNW1kUlRXbGFmUlM5X0U5WkJUS0ZQVzRybjRtZjNhZWZNNjQ3T3FZc2NYXy1WZHJLX2g4eUdUSnZ3eVNJV1c5dTEzWVc1c0RKckk5LURUbUZzTHB5bXZIQjU3NENvRGxsMXhYRU9FclU0VlJibXZmN09halFyLUxnOW52OGQtS3pzeWRVR05oSXNLdUNxWHpBVVZ5TS1DLW1hMVowTlBEMDhneXBzaEZRTlJhS3Fyd01lcElBNDk2OFVDTElMVGlEWnFXeEtkZFo1VHpjMGFpdkVhbWwyR3dOR1ZnbFpfMHJqR2FITVg0TVVmTWdYdy1abFpKX2Z6WWZzNTFUN2R1N1pKRnFyd2dGQlRBVGRsUjRTSkVQMW1TNEVwSm9fMGptb0ZZLThqTnNOSzJwQld0c3MxWDlFT1VtZUpnT1JpcmVZZ3k3b0ZkWDhBZTdULVNrc0ZnRmNXMVM1ODRjUUtJbndfS2FkaUZEUlNZQ29OZkY2bUtTel9VaGVReUNDSGFZeUxhZm9mU0VtZmZ1REpwV2tyTzF6Q2xRUTNYNXIyaUNCWDVqQnNOS0RFMGQ1TFdBVHI0OEVXUGNubkNXeTBBVUtqSWhUTXJ6enp2by13bTVsTjF2VVYwZ0tVOG1rWE9qSDZiS1NCdjRMV1o4a3p2VWNhRW5DWGNsbWJoTjZXZm10Y1k2dTE5eE5WempSOEMwa0Y3UWZGWWZFcVFQUW1ndmpPWHhGZ2RteU16ZElLT1VqT2ZYSEhVWDZtNnhSZTlEc1Vaem45N0l3NDJhNDBSNzRwd1R0b25SenlleWF4eGlYZHRvN2JUM2lVbXhTakRNc3BQWEJ3NFZ1UURRNmFwSEhidUExVWh1UGxOTnluMTMzV25kSWtMQkxGQUxvZF8xUXM2TDY0MXMyeUtzNnpxODF4eV9fT3ZtWG8weFJUMlhHd2o1R2NpSGh6UmVaTklsbUJUR2pOa0NuLVY3UFN4a0doSXBTMWo0TnF0S09GY2lyQ1JMaFRiZ1J1eG9nejFnWmNJV1gwUlhfem9QMEVNdXdfV0VqWmVJMTJfNVMzVjRQeFFtS0I1TW1NTVZvYi14aU1sRHlPRlpEcW9ZdVhWTkI4LVplU1RvcEhLaUJvZmxGajQtRXJiSTVoejYtcEVzTEZ6VmVIU2RCSEZibGFLUkxtXzFnR1hJcnR3Q3lEWERYOTBrRWhWU2UxX1U2TkVsUXJ5SXFVSlVIX2s2UmFwZG93aFlGUktfaTVSZ0psLW1ROGdYNWkyZl9NTHcxVmxtVElHTEw2eTJBelI2TFZ4cms0UHRmcy0xeHc0YzBfRHRQYzRXX0k3dFJuZm5GaEpBSS1GWnhZeUcxVHFaMWhtbUpMejhiSkNIaDNyQk56STNxRmtBaXdLSFN5YjJ5VWZ1dEFjZXRVZkc4eUtmRUNybk4xQUpZMWtyVkpVa2JTUUtKWnM2M3NyUTZFYjBGc2dTaTBUQXN5SjFRSDZFN0h6NE5vcXgxa0tnWlF4cnBKbi1tTFZRelNGamc4X0FpQWxEYzc0TzZtcldqT3NoejVBVWtER2VRSEczZEE0dHZTaTJxdFpaYW0wX2psUmVDeUdWaHE1amptdTh4R2s0a0Q5YUdLeDJmVVRpalNMSmdFQWttbVlDbTNLNkVZR2JDX284U2JjSnpRVGNoa09vNnA1dlpSblZyLUo1bUxaY0VnOHJ0bG1WWWZzbGRZMVVPeUVqR2xNRjgyZEQ5M0g1cFVSVk5VUkVoRVAzQTgxMFc4Y1NXeXByR3p6RURJaktZdmRDMjF1MENXaE1GYTRvN1VyT1A0M0NyRnZKSWNZNzROWHNOTWVYTk05ZFBzdzBpdV9HMjZ5cGhOUEZIb3J3V3RoWmozMHRLOVhHeDFCZzJDY0Q4a2VMUFdrOU1Ccm5KZGMwNWRWUE92TEUwX1JfOHFfYkpicDNZR1Y1YmY3Tm9LOTduU0pEVUFYVWlVZlp5cDRrZDQ1UjlPdG16V3J4RnZkSG1MaWdvZl9WdUJjWTBHa1lYeHNZTVd5RFN5SkdqM2E4bHJxeUF0dXpyVldmdjdweTlnVWRtZWlkVmpHU0RSUkx2eDhCQzZsOU12UGFIdW4zaFRFeEtJX2tzUkNSVXg3TDlBUkZkcUtBaGVweXpfZTlKUHFnMXVDbnVYcjZ4bWdtV1VxTGgyZ2tvakFtN1dxWTlyTUlSZEtUX0h5OE5McVpES2ZaVUQtcUpFT01LeUh6d3NBTkJ6VzhnOHVMeWNHUHJrSkliTnpFUE1NdjRQM2lhOFhhdDNIbzNzQ2VsZHEyWTVvMXV4MEdiZGpSbjIyQ0VZazhid0dUZ2JhM08wd3hsVWhXdjZkeFZianRmVnY5QTBJSmxvZ0swX2lwc3NWb0d1RGp4Rm5nMjZGLW5WcTFEbXctTTFPRGNjVDVXVm5tTkRWcEc0UDJGTGVweUN2QWhjZ0ZYUEVUN0ZzajZzT3NoTUdoTnZFOU5feHJ0dGMwV2dtaTR3aE1RVTZYTHVmS1QyeGZwNWU3cFVoQ29TaldieURMUExKZ3dVRzZpVkMzNXZJTmlMZVV2MlpzU0E1THU4NmJ3V2laeGs2cHhlbWFweEgwWFZmU29jZ2E0bkltR0dtRUdfWm9ZVHlyZ0syRm5nRXRXandFNEtEaWZFVms3d2pEWkRwUEhEZG5Kb0x1d0FWNk10WHlqdm01Y2ZhTVNlV3Flcnh1dXYtMHhDVXl3TG42WDJhbjdCVXJDdE93ZmJNeVRSZ3FwLTJ6Um9pdUdVUlA1dEs4bkR0bEJ1YXRnaXVRdmZCcjZ5RmpXWlpnYkt3aUlFeUxKWjJqd2hweVMzbEhfak1vY3lWZzA1SkZHQUZxY3R5NFFPTGQxT0F6TEpDY0pIalBqX3NQdnRGZFNVa1NvZ2IzQTVYYmY2MzdGVVRnMDI4ZkxuOF9vWVpjbGQ2MHM3ZUFBSC1sUDJUV09zeUR0UlBIckJ3RGFtU25DNncyWmxWRjRNbmdOX2duNWdnU2ZsWlNRQVl4LVVHWFhjR3pYX01SZURYaXZYMjlHNF9LaGtkSnA2V25BZ19ydTNWTGhPTUFSeXpER2p0UzYyVlYyN29fMG5GdzBKVkU3My1vYWlxTVVoanNqWHhMUlZ3Z0NhQ09IWWVUVlA1VUZxSTFpZXl2cnlIek8xRUpaNTNZSVpBT1BYMjdtNmxUNlNBa1VzV0NPTUZmR21nVTllbmsxMnVtU05JS1pUajV0Y0Y2ZjY1ZjFQaHk4WFdITDYtR0lNVUMzVmNEZmdqUVZXUkJ2Um5ILURhdEEwdEc5UERzQmhsZ2VzblF3QlF0dkgxR0FmRXNkNnhsTUZJOW5sSkp5Q2pzZWpZV2pHRE1rVWFfcGllelVuZElpck9qS05BR1pTdzhRYUVCbXF6SC02Q0hTZXQ1TThwZmI4NTV4ZTc0RXNpVFZWWjRGNDh4U1M1NG9Zdml2X0VCajlPUklOZTg3Q3ZUdlZ6VU5vQ2ZWajlrb0Jub1BmdmFQd0JRdmZSYzJmbE1TM3hTOFdSRUpvbUkycXEta0RLbkNfbC10QVZzR2FPS1VpTUJQem5fa2RLbWxEVXFWYXp4XzJPOXIteEVKM05tSlpIU2hOQ2dtNTYxZTl0emJVY2Fud3hBcnhISlRtbk5RMmEtYlB6di1Sa3lWdEN6Qm9ualAxTkw0elJndkNqdjIyQV91cWJzMXhqRTVSOUJmSkVEcE5IS0xfa2JwZnBBV3M1bTkwNDlxVDkxYTdoQ0tIdzFORWlpd05iNnRNZWV3OHBLc011Znd0S2VLOHNiMWxVSlotNDRleTlxZXhGOWNiR2tHb3lhcGxBNTAyUTdHWEoyWlBNcEFsdDBsenBhamp0MVlmQkRka0tEQTEtUEk5NDFaRDVoOVVMbUFPSTJaUllWNDNWcUxSaXJYc1VIdUh5cnVmLWxmX2hkX2loTmpIcnVVbnE5ODktcVBVOGhtY3R3b1RMRl82eGROWnpuc2VfSjNLLVRQazJKMHZEc2pFdHpPTVU2c2VYWEV2bC03LXdJTG1QTm1zdjRnNjYzVjBpUFU0enFaQV9FSlZTQUdmZ3YycUM4bk55QUlzZ25uTk1RSXlCaS1NQkwzbVppZnVab0s1aHlvZ0JCSEsyQjI2ZlkxMEFnclVfSkN2MlQ3UVpRaWZUTk56dGtHTUpvUDh3RVpkVnlaTlRtcXVRLVFZUG85TmFjME9OSTdfOENDb1pkRWV1cFhKUHlrR0xzOUt5VzVqbGxmNzlvNHVnb19rZl92bnRaQWFxVmdyZjRrakNFalNBZGw4NGZEaEEySlNCaVRYSjlqY2owQUlfT29XaTN3R01Ja3Z5NTlkNmxJRVRFVW5pd2NNRUtOVUZ3TWUwS0JEekhrOXdCN2Z4M1BiMVlDdmJWcnRVM2wtNDd1aFUzb2c0TW9VVVBSWE02VkVnUWtpcWd0cW5ySWpISUZOM182RmpnQXo3ZjczVWJQM0FmR1ZuWUc5ME94Ui1NUGFmXzdEcjVEYVhMUXkwWjVYdGJULTlJSFFNMWU5M1ZsVWFYVk9jYko0cFc3RFNpN3lwZ0VzUmhlX3BGcWZsNF9UeDFzY2dIWlhpaU9XZ2pEMmczelFRYzhEUDZPVUVjQ3N0TFdQN2RRVVdydG5zTWNOV21pYXNaV3dJWXBKVU9KTGJwRF9nZW8zOUowUDFZVUt1WEREN0xJNnFzRm84VFJqcmFnMjl4U1B2MVF6VmliaHpPUkJTRnRRdVNFU1l4Z3pzUTFLT2tPdk95cVJEdkE2TTJBWTgzR3B2aHc3emFkZWwyb01zQVhITU9YajhHT2Z5R2d6a1U4T1Z1bEVXOWNsRlM0bm8yNTNZaE9HNmFFU2J1TFRvQW9MWTF0RVBWWGltQS0wd25STy01TW9uWmtWQjdFOU9LeDVzeTlGVlJRc2h2VWJGTDRwbGFoYXJwN2FsbmE3S1dkLWthNzkzczhzZnJiU0Z1WC1QVF9LVjFzYzNNQnVwWXhKUUdIQmdUNFhuTENjMlZUdTA1eGV3WjNaUW5ZakRHQlpvY3V0SDVCampNdDZQSVpETVgzZHJoOTFLVzdUaEJFUHl2aXF5N19ZMEVzUWxnTldyVlZBLThWR1AtRUNaeU1kZ21zRlVVNTFMVFJNY3kwc0FZSFZMb1p1VHRMSzEwWG8wa1pmc0RaQXNYc2JXNTZ5YVhvak1WbXgwdDZ4NGZlYm1udzdIaURwQlhxcEhiejdMYXpLMnVtNHRQZlJIYVlLSXpkRjR3aGVMSHZlSVpUSHQ3MGdrWENZZTR1NHN0MkZvaUR3RlAyM0RPb015Vk9UV0xyYW16SXAwWXRWd2Z4cjF0bWlJeFZfZ1U0ekJpR0s1bXhwS2xhOExVcXdSYVlWd3Rib213QjRJdjlTM2lKQ2xua1Itb0x6bTJ0cmNlMENBbEVuVFVPXzF4NjM4SEoxS2Q0aXNNT3NCeDNRRlR0Zlo4ZVdYZ1dQZFVHVktOWW9VZ0txSDE1NVF4T3Nyekl4aDZXbEt6d21RTThSbTVJNHJqZ0pVeWpSMHdhNlFyOUxFcE5mVFpjYnQwcWIybmRXOWsxQlNTazh0eUV4S3NsSzJhU3lhMWt1eVFoUTBxRWxsSUFCemNEU05kb0hIRUIzaEhWZ0tNOHNLcDBxNzFIaXNZeDlaTTZzeGxUWm5KdG1ZXzFvZV9qaGVmMWNlTGswYlNIY0ZlaUpKZ2JwWUhRNV93S0ZuSlhPa2wtWkRjbjhvZ3NFaVlNWmJfMUJ2OUM3VFdmOEFRUGMtQjlKZHRoYk11Sy1IODUzS01lSUpyZlI4RTZFR3ZWQ09ubXpaeEpsVlJmQlF1ei1kZy1BWVh4ZHpnU0Z1Q0hOamNwbmpiaU9ZZVh0STNFaUpfaWY5b0lJTHU1cW12R1I1M1U5ai1SNUQ4YUh5UzRTZzctS2hnWjAtNk1NbllfaVUwbjVRQ1JJV0I0MFVmWExWdVEyVXkxLWRwNnJfdlUzQzdvOVFTTTdTc3VXWVNHTzR4RGNjMWEyckw0X2R5R0dMRVlEblR4MTd1ak5MVExKYU9UYUNIYmlIUkhuQ3I3a2R2eFRaWWhOeXFQRjBlUElkcUlITmVGQ0FkcmN0eHZhZWhWMzBGek5WMXpJQnRYbjNJZ1FfRTdxZDdBRjVtN3ZpOWdfOEtUSGMyR0otZ3Jkd2ZNTXhjdkRsOHc2dmxOaFY3eDQ0ZXBqX0w2dnByZ196SW9NcHZsaUI3WE55dlhrd2hKeDVtUWU2LU1rT0pOQWhJY2stU0djeUhuLXZjOWl2dkxaWVh5WXRjZVg1VHJpQnZ6cktCM3pVOE1Ib1BjZjJCWmxJMjJ3QmV6bjNoNS1qQm9mdFhYR2UtWWpwMUZleUFWcDhtYTlON1Z5SjF3eWtXNzBnREplNlZYcE5aYW5lSVQ0T255ZnZpTTZiV21IRnlrd3VnUHROR3FPcXdzSVpSYjdTai1TSzRTYmN4M0ZIY3VlVTNsX3VLRWZLdU45ZTAtR0NlVVp0bDNzYlA2dUJvNi1jY2tHV3NGa3k1UllfWVUxb2lWbkV1ZGJPMmFHNWJEeS1va3NvM2VyUkpGZzBCWVhiWkpHeC1XbVdtWHkwTUV3RC1mZW9zSEdWdE82WHRqNUlwWVJnVGdQZ3puQzgzVTB1ZlJlSVB4SXc5aUtDX0hIMVUyQVJLMkdEUG9CdHpYeC16T3F1Q2NHUVhfa3dIdF9RRUJBdGJvTUt1VnZaWV9lVjNHdmVFZG1DbU83LW14S280NTM3UHg2MTlfRmZ5NGxKa2lnN2hhNE9JYmJENUhaZzFWdFFBQWhQNUtuVjkyVVJFbExXOGdjcW95ZkVEWjlWaDFPSkk4MFdaY2YzNHA4LWxJcEluMHV0bXdNMExjVkctUWhLcjVIc2tmRXFmLW5VMDhQRFd3UkRjTXpHUDFmcXdZVFhpeUJtMmxzaFlWQnRzTU9HaWZiMDJMMVpGbjk3eEFrZUZPNjhBTWhrTmZLQUl4TFJyWVZONU9hdnlFQTB1Y0RKVEdLWm54MmZPeEh6a1ZiTDFBUEhqWThyeEdBU0UwNEdQZmM5OGRKTjNtRF8wQ2NmaEpTcUJzMFpJcnQ2OVd3OFFqelJ5ZFhZVzgxVWlmRnp2VVlUdlhrWkFJT1JRNGU1NUpjbHVZZmttNFRyNzF4eTRuWW9aX0IwMklfa2R1LXhwMnJ6M3o1bEZHWVhCQUJQR082TGxLc00wbnhtN21HVVZldU5MeGxYT3NBTkV3aFJzbC1hYXM0RjQ2a1ZqY1ZMTy1vYjRkUHRUWVNrNXBZSlRZaWFvQThSX1UxUGRIc2FwZzZWX0tVdm51bE9hZ01NX1BZVjhsSDU2bVFMVWFDTXNNZTJVeGVDQ3R4UHpQN0t0aWZaaEpkWFQzSWYwZHY0bVJib29ZUGwyMFhJQVZOeG03QU9JZV9GMjcyajBUYXo3M2VQNXd4OFNkZldoUjlBcWlwaGNXMEhGeHJrRFRXQXhxa2tXRXlyWk9wejZBSUo0MWhBeWZ3dmN0LnYwZk5jc0h2VU1ua1Z0b1BFVXVORktlSGhEY3VIYXNIeHBNa0E0SktCZ2s" - } - }, - { - "RequestUri": "https://fakekvurl.vault.azure.net/certificates/certRestore3931096132?api-version=7.3", - "RequestMethod": "DELETE", - "RequestHeaders": { - "Accept": "application/json", - "Accept-Encoding": "gzip", - "Authorization": "Sanitized", - "User-Agent": "azsdk-go-azcertificates/v0.4.2 (go1.18; Windows_NT)" - }, - "RequestBody": null, - "StatusCode": 200, - "ResponseHeaders": { - "Cache-Control": "no-cache", - "Content-Length": "2608", - "Content-Type": "application/json; charset=utf-8", - "Date": "Mon, 16 May 2022 18:15:15 GMT", - "Expires": "-1", - "Pragma": "no-cache", - "Strict-Transport-Security": "max-age=31536000;includeSubDomains", - "X-Content-Type-Options": "nosniff", - "x-ms-keyvault-network-info": "conn_type=Ipv4;addr=73.83.78.150;act_addr_fam=InterNetwork;", - "x-ms-keyvault-region": "westus2", - "x-ms-keyvault-service-version": "1.9.395.1", - "x-ms-request-id": "14b010ea-1c45-431b-b461-2d5c1f4c6b4f" - }, - "ResponseBody": { - "recoveryId": "https://fakekvurl.vault.azure.net/deletedcertificates/certRestore3931096132", - "deletedDate": 1652724915, - "scheduledPurgeDate": 1653329715, - "id": "https://fakekvurl.vault.azure.net/certificates/certRestore3931096132/a0aff3fe2bf644f1b0bccf83e3363d5d", - "kid": "https://fakekvurl.vault.azure.net/keys/certRestore3931096132/a0aff3fe2bf644f1b0bccf83e3363d5d", - "sid": "https://fakekvurl.vault.azure.net/secrets/certRestore3931096132/a0aff3fe2bf644f1b0bccf83e3363d5d", - "x5t": "kaeg05Ip-MbGgDaf0LGwcRPttxM", - "cer": "MIIDaDCCAlCgAwIBAgIQDbSXN0imSUa9lNjfmVGRETANBgkqhkiG9w0BAQsFADAYMRYwFAYDVQQDEw1EZWZhdWx0UG9saWN5MB4XDTIyMDUxNjE4MDUxMloXDTIzMDUxNjE4MTUxMlowGDEWMBQGA1UEAxMNRGVmYXVsdFBvbGljeTCCASIwDQYJKoZIhvcNAQEBBQADggEPADCCAQoCggEBAMdR0rElA7k50BFmpI6TX8bveV7KlxXboKF3IKuetI2X8MckqJTo\u002BKlJ1GGeaC/IHQ/hnW1V/g1gznxQi1dGEhQXIAXwKwGuMjU97jU/YZCYmhtmZ0qHe3IKv1vlNkHqlUsFTKkVQ2dKZzja6Lj07J\u002Bd1ocUk8wa7GsxDjptds6WHu0JXZ4NgwuIqQ2kn96K/fVpBAVy4gA5G2UDfiYNPlnThWvoT6oN1vSD0aI6T31uujEgeCjWjSAR9i2FQekM9neP0O3ShpAlCVLTnN37NsgUA12szbiOiCojOqpkJufzPM7qC/0FCW1ojxoacv8U3C7zJCfTmXMSEISJVQULvxUCAwEAAaOBrTCBqjAOBgNVHQ8BAf8EBAMCBaAwCQYDVR0TBAIwADAdBgNVHSUEFjAUBggrBgEFBQcDAQYIKwYBBQUHAwIwLgYDVR0RBCcwJaAjBgorBgEEAYI3FAIDoBUME2pvaG4uZG9lQGRvbWFpbi5jb20wHwYDVR0jBBgwFoAUaXJ\u002BalkPK2XUl4Zr1UwQO/hOO88wHQYDVR0OBBYEFGlyfmpZDytl1JeGa9VMEDv4TjvPMA0GCSqGSIb3DQEBCwUAA4IBAQATTEQFspnaY0R57fPErQ1iW7eERtv/crheXcIMCG2r2RXRvwXZ2NYF5gtNf8o6AFc/tKst4qmQYYcTyezL2q8pbW2l8r7I1USTwiR36i5zagYO/YTbBxXbyuW0Wl134Mww2sJM4t8WBqzT596DvT0nYm5HM49D6NnoqVh0NMrrx73fvp/\u002BvzEZZemHH0o8wqw2\u002BdlcQvSlHLTiKC2uHA7CH5bKOw2O5Dtt1sRssLpAHU5QZvhG9zC5myuH/9OHvjG9Hv2WL3P2aF8wDDSTRDLZlsaZLCVYPErfsfvodyhPi6ZFyfwiBLgwfVhTfKawsLS3z7fEw\u002B9KmvLyrbRyDIM\u002B", - "attributes": { - "enabled": true, - "nbf": 1652724312, - "exp": 1684260912, - "created": 1652724912, - "updated": 1652724912, - "recoveryLevel": "CustomizedRecoverable\u002BPurgeable", - "recoverableDays": 7 - }, - "policy": { - "id": "https://fakekvurl.vault.azure.net/certificates/certRestore3931096132/policy", - "key_props": { - "exportable": true, - "kty": "RSA", - "key_size": 2048, - "reuse_key": false - }, - "secret_props": { - "contentType": "application/x-pkcs12" - }, - "x509_props": { - "subject": "CN=DefaultPolicy", - "sans": { - "upns": [ - "john.doe@domain.com" - ] - }, - "ekus": [ - "1.3.6.1.5.5.7.3.1", - "1.3.6.1.5.5.7.3.2" - ], - "key_usage": [ - "digitalSignature", - "keyEncipherment" - ], - "validity_months": 12, - "basic_constraints": { - "ca": false - } - }, - "lifetime_actions": [ - { - "trigger": { - "lifetime_percentage": 80 - }, - "action": { - "action_type": "AutoRenew" - } - } - ], - "issuer": { - "name": "Self" - }, - "attributes": { - "enabled": true, - "created": 1652724905, - "updated": 1652724905 - } - }, - "pending": { - "id": "https://fakekvurl.vault.azure.net/certificates/certRestore3931096132/pending" - } - } - }, - { - "RequestUri": "https://fakekvurl.vault.azure.net/deletedcertificates/certRestore3931096132?api-version=7.3", - "RequestMethod": "GET", - "RequestHeaders": { - ":method": "GET", - "Accept": "application/json", - "Accept-Encoding": "gzip", - "Authorization": "Sanitized", - "User-Agent": "azsdk-go-azcertificates/v0.4.2 (go1.18; Windows_NT)" - }, - "RequestBody": null, - "StatusCode": 404, - "ResponseHeaders": { - "Cache-Control": "no-cache", - "Content-Length": "105", - "Content-Type": "application/json; charset=utf-8", - "Date": "Mon, 16 May 2022 18:15:15 GMT", - "Expires": "-1", - "Pragma": "no-cache", - "Strict-Transport-Security": "max-age=31536000;includeSubDomains", - "X-Content-Type-Options": "nosniff", - "x-ms-keyvault-network-info": "conn_type=Ipv4;addr=73.83.78.150;act_addr_fam=InterNetwork;", - "x-ms-keyvault-region": "westus2", - "x-ms-keyvault-service-version": "1.9.395.1", - "x-ms-request-id": "d2a79ce0-cebb-4909-8da1-dd0372036513" - }, - "ResponseBody": { - "error": { - "code": "CertificateNotFound", - "message": "Deleted Certificate not found: certRestore3931096132" - } - } - }, - { - "RequestUri": "https://fakekvurl.vault.azure.net/deletedcertificates/certRestore3931096132?api-version=7.3", - "RequestMethod": "GET", - "RequestHeaders": { - ":method": "GET", - "Accept": "application/json", - "Accept-Encoding": "gzip", - "Authorization": "Sanitized", - "User-Agent": "azsdk-go-azcertificates/v0.4.2 (go1.18; Windows_NT)" - }, - "RequestBody": null, - "StatusCode": 404, - "ResponseHeaders": { - "Cache-Control": "no-cache", - "Content-Length": "105", - "Content-Type": "application/json; charset=utf-8", - "Date": "Mon, 16 May 2022 18:15:16 GMT", - "Expires": "-1", - "Pragma": "no-cache", - "Strict-Transport-Security": "max-age=31536000;includeSubDomains", - "X-Content-Type-Options": "nosniff", - "x-ms-keyvault-network-info": "conn_type=Ipv4;addr=73.83.78.150;act_addr_fam=InterNetwork;", - "x-ms-keyvault-region": "westus2", - "x-ms-keyvault-service-version": "1.9.395.1", - "x-ms-request-id": "47e0e1ff-e50f-42a8-819a-a138ea741a7b" - }, - "ResponseBody": { - "error": { - "code": "CertificateNotFound", - "message": "Deleted Certificate not found: certRestore3931096132" - } - } - }, - { - "RequestUri": "https://fakekvurl.vault.azure.net/deletedcertificates/certRestore3931096132?api-version=7.3", - "RequestMethod": "GET", - "RequestHeaders": { - ":method": "GET", - "Accept": "application/json", - "Accept-Encoding": "gzip", - "Authorization": "Sanitized", - "User-Agent": "azsdk-go-azcertificates/v0.4.2 (go1.18; Windows_NT)" - }, - "RequestBody": null, - "StatusCode": 404, - "ResponseHeaders": { - "Cache-Control": "no-cache", - "Content-Length": "105", - "Content-Type": "application/json; charset=utf-8", - "Date": "Mon, 16 May 2022 18:15:17 GMT", - "Expires": "-1", - "Pragma": "no-cache", - "Strict-Transport-Security": "max-age=31536000;includeSubDomains", - "X-Content-Type-Options": "nosniff", - "x-ms-keyvault-network-info": "conn_type=Ipv4;addr=73.83.78.150;act_addr_fam=InterNetwork;", - "x-ms-keyvault-region": "westus2", - "x-ms-keyvault-service-version": "1.9.395.1", - "x-ms-request-id": "ce5c4a96-aff2-42bc-b45c-a83ad0a912dc" - }, - "ResponseBody": { - "error": { - "code": "CertificateNotFound", - "message": "Deleted Certificate not found: certRestore3931096132" - } - } - }, - { - "RequestUri": "https://fakekvurl.vault.azure.net/deletedcertificates/certRestore3931096132?api-version=7.3", - "RequestMethod": "GET", - "RequestHeaders": { - ":method": "GET", - "Accept": "application/json", - "Accept-Encoding": "gzip", - "Authorization": "Sanitized", - "User-Agent": "azsdk-go-azcertificates/v0.4.2 (go1.18; Windows_NT)" - }, - "RequestBody": null, - "StatusCode": 404, - "ResponseHeaders": { - "Cache-Control": "no-cache", - "Content-Length": "105", - "Content-Type": "application/json; charset=utf-8", - "Date": "Mon, 16 May 2022 18:15:18 GMT", - "Expires": "-1", - "Pragma": "no-cache", - "Strict-Transport-Security": "max-age=31536000;includeSubDomains", - "X-Content-Type-Options": "nosniff", - "x-ms-keyvault-network-info": "conn_type=Ipv4;addr=73.83.78.150;act_addr_fam=InterNetwork;", - "x-ms-keyvault-region": "westus2", - "x-ms-keyvault-service-version": "1.9.395.1", - "x-ms-request-id": "9c2cb2fe-20c4-4128-bfea-f8150998bd85" - }, - "ResponseBody": { - "error": { - "code": "CertificateNotFound", - "message": "Deleted Certificate not found: certRestore3931096132" - } - } - }, - { - "RequestUri": "https://fakekvurl.vault.azure.net/deletedcertificates/certRestore3931096132?api-version=7.3", - "RequestMethod": "GET", - "RequestHeaders": { - ":method": "GET", - "Accept": "application/json", - "Accept-Encoding": "gzip", - "Authorization": "Sanitized", - "User-Agent": "azsdk-go-azcertificates/v0.4.2 (go1.18; Windows_NT)" - }, - "RequestBody": null, - "StatusCode": 200, - "ResponseHeaders": { - "Cache-Control": "no-cache", - "Content-Length": "2608", - "Content-Type": "application/json; charset=utf-8", - "Date": "Mon, 16 May 2022 18:15:19 GMT", - "Expires": "-1", - "Pragma": "no-cache", - "Strict-Transport-Security": "max-age=31536000;includeSubDomains", - "X-Content-Type-Options": "nosniff", - "x-ms-keyvault-network-info": "conn_type=Ipv4;addr=73.83.78.150;act_addr_fam=InterNetwork;", - "x-ms-keyvault-region": "westus2", - "x-ms-keyvault-service-version": "1.9.395.1", - "x-ms-request-id": "32ccc3df-3ca2-4b17-91a0-525da6ca8501" - }, - "ResponseBody": { - "recoveryId": "https://fakekvurl.vault.azure.net/deletedcertificates/certRestore3931096132", - "deletedDate": 1652724915, - "scheduledPurgeDate": 1653329715, - "id": "https://fakekvurl.vault.azure.net/certificates/certRestore3931096132/a0aff3fe2bf644f1b0bccf83e3363d5d", - "kid": "https://fakekvurl.vault.azure.net/keys/certRestore3931096132/a0aff3fe2bf644f1b0bccf83e3363d5d", - "sid": "https://fakekvurl.vault.azure.net/secrets/certRestore3931096132/a0aff3fe2bf644f1b0bccf83e3363d5d", - "x5t": "kaeg05Ip-MbGgDaf0LGwcRPttxM", - "cer": "MIIDaDCCAlCgAwIBAgIQDbSXN0imSUa9lNjfmVGRETANBgkqhkiG9w0BAQsFADAYMRYwFAYDVQQDEw1EZWZhdWx0UG9saWN5MB4XDTIyMDUxNjE4MDUxMloXDTIzMDUxNjE4MTUxMlowGDEWMBQGA1UEAxMNRGVmYXVsdFBvbGljeTCCASIwDQYJKoZIhvcNAQEBBQADggEPADCCAQoCggEBAMdR0rElA7k50BFmpI6TX8bveV7KlxXboKF3IKuetI2X8MckqJTo\u002BKlJ1GGeaC/IHQ/hnW1V/g1gznxQi1dGEhQXIAXwKwGuMjU97jU/YZCYmhtmZ0qHe3IKv1vlNkHqlUsFTKkVQ2dKZzja6Lj07J\u002Bd1ocUk8wa7GsxDjptds6WHu0JXZ4NgwuIqQ2kn96K/fVpBAVy4gA5G2UDfiYNPlnThWvoT6oN1vSD0aI6T31uujEgeCjWjSAR9i2FQekM9neP0O3ShpAlCVLTnN37NsgUA12szbiOiCojOqpkJufzPM7qC/0FCW1ojxoacv8U3C7zJCfTmXMSEISJVQULvxUCAwEAAaOBrTCBqjAOBgNVHQ8BAf8EBAMCBaAwCQYDVR0TBAIwADAdBgNVHSUEFjAUBggrBgEFBQcDAQYIKwYBBQUHAwIwLgYDVR0RBCcwJaAjBgorBgEEAYI3FAIDoBUME2pvaG4uZG9lQGRvbWFpbi5jb20wHwYDVR0jBBgwFoAUaXJ\u002BalkPK2XUl4Zr1UwQO/hOO88wHQYDVR0OBBYEFGlyfmpZDytl1JeGa9VMEDv4TjvPMA0GCSqGSIb3DQEBCwUAA4IBAQATTEQFspnaY0R57fPErQ1iW7eERtv/crheXcIMCG2r2RXRvwXZ2NYF5gtNf8o6AFc/tKst4qmQYYcTyezL2q8pbW2l8r7I1USTwiR36i5zagYO/YTbBxXbyuW0Wl134Mww2sJM4t8WBqzT596DvT0nYm5HM49D6NnoqVh0NMrrx73fvp/\u002BvzEZZemHH0o8wqw2\u002BdlcQvSlHLTiKC2uHA7CH5bKOw2O5Dtt1sRssLpAHU5QZvhG9zC5myuH/9OHvjG9Hv2WL3P2aF8wDDSTRDLZlsaZLCVYPErfsfvodyhPi6ZFyfwiBLgwfVhTfKawsLS3z7fEw\u002B9KmvLyrbRyDIM\u002B", - "attributes": { - "enabled": true, - "nbf": 1652724312, - "exp": 1684260912, - "created": 1652724912, - "updated": 1652724912, - "recoveryLevel": "CustomizedRecoverable\u002BPurgeable", - "recoverableDays": 7 - }, - "policy": { - "id": "https://fakekvurl.vault.azure.net/certificates/certRestore3931096132/policy", - "key_props": { - "exportable": true, - "kty": "RSA", - "key_size": 2048, - "reuse_key": false - }, - "secret_props": { - "contentType": "application/x-pkcs12" - }, - "x509_props": { - "subject": "CN=DefaultPolicy", - "sans": { - "upns": [ - "john.doe@domain.com" - ] - }, - "ekus": [ - "1.3.6.1.5.5.7.3.1", - "1.3.6.1.5.5.7.3.2" - ], - "key_usage": [ - "digitalSignature", - "keyEncipherment" - ], - "validity_months": 12, - "basic_constraints": { - "ca": false - } - }, - "lifetime_actions": [ - { - "trigger": { - "lifetime_percentage": 80 - }, - "action": { - "action_type": "AutoRenew" - } - } - ], - "issuer": { - "name": "Self" - }, - "attributes": { - "enabled": true, - "created": 1652724905, - "updated": 1652724905 - } - }, - "pending": { - "id": "https://fakekvurl.vault.azure.net/certificates/certRestore3931096132/pending" - } - } - }, - { - "RequestUri": "https://fakekvurl.vault.azure.net/deletedcertificates/certRestore3931096132?api-version=7.3", - "RequestMethod": "DELETE", - "RequestHeaders": { - "Accept": "application/json", - "Accept-Encoding": "gzip", - "Authorization": "Sanitized", - "User-Agent": "azsdk-go-azcertificates/v0.4.2 (go1.18; Windows_NT)" - }, - "RequestBody": null, - "StatusCode": 204, - "ResponseHeaders": { - "Cache-Control": "no-cache", - "Date": "Mon, 16 May 2022 18:15:19 GMT", - "Expires": "-1", - "Pragma": "no-cache", - "Strict-Transport-Security": "max-age=31536000;includeSubDomains", - "X-Content-Type-Options": "nosniff", - "x-ms-keyvault-network-info": "conn_type=Ipv4;addr=73.83.78.150;act_addr_fam=InterNetwork;", - "x-ms-keyvault-region": "westus2", - "x-ms-keyvault-service-version": "1.9.395.1", - "x-ms-request-id": "338c316b-b271-4579-b2b4-b3a58c469111" - }, - "ResponseBody": null - }, - { - "RequestUri": "https://fakekvurl.vault.azure.net/certificates/restore?api-version=7.3", - "RequestMethod": "POST", - "RequestHeaders": { - ":method": "POST", - "Accept": "application/json", - "Accept-Encoding": "gzip", - "Authorization": "Sanitized", - "Content-Length": "43523", - "Content-Type": "application/json", - "User-Agent": "azsdk-go-azcertificates/v0.4.2 (go1.18; Windows_NT)" - }, - "RequestBody": { - "value": "JkF6dXJlS2V5VmF1bHRLZXlCYWNrdXBWMS5taWNyb3NvZnQuY29tZXlKcmFXUWlPaUl5WVdabU5tRmhNUzAzTm1Ka0xUUTBZVGN0WVRjek5DMDJaalZoWkRCaU5XRTRPVGdpTENKaGJHY2lPaUpTVTBFdFQwRkZVQzB5TlRZaUxDSmxibU1pT2lKQk1qVTJRMEpETFVoVE5URXlJbjAuSEotNy1sR01tX1BRR1VhTkl5X0doaS1ueFhRczFxVUMybGRMdkNGSzZsNTRjQTlkb0N2MHF0QnM4aUlPWE5jX0JBQ25ZVjVnT0VncTk5NlNrOHQ5dlg3bTJtMXl6RWVVQzQ0Zk1sSm9jZk81c0VvVkkxZUkzeDluRi1lOVJTNFRwZzRfRFh2czRNXzREZjlQUkhLd1hKQzctLVVCcFdMMG91RHRhLWFZelJvVXRLX2Z0eE04a3h6Q1FpV3FuVlNVSTFZMXk1bjNmWjVxcElSUmgyZ1hrWlJnRTg3dUduUmpqbDJVRVhyMlJOdjltMmdZYnpkNEo5eS1HOEQzTGhXSEE1SUZ0WnRjRTVoOVJhVVVsVGppN29aTUxsZUZfa0JKWUJmYm9ZRFFJam12aHZEZDFiNGJxNms4NUs2NldvWjZ1V1JoNVVCUzZiRU1zVVRDdUpCT3F3LkU3UzE5M0xVWnhLeHJSZnB6U1JKWncua3ZwTGxDSUkxU1NaUFAwR3lLZ1lTU2FpZjFzVG1kaFVvRFY3UTFXaENkTUQwYTFiQi1oaXJoWGxPYkw1YW42SlZlZGJOclRfQjlJRkgtYmhwVXB1eTVBRjJQV3hzWGdMc0dWMGxVdUVfYWlkRVdjM2d4d3Y0VFVZY0tBazlGTHRTSjJMdkR5RlhpanhaMVphdnh1dW1RT2g1clc1RDJZTWVMc2VEcDktdkJDblJpVEk0T1o0N0FkMjhIVEl5eDNnR0xXMDc4aDZBTElKVl9LMW8teFJyUm9DRG1ReEFjUldhVzdOakdBVk5kbkZIR0xlR0dQYW12NDdub0x1aXN4bGRVc0pKa09ZQm44V0VuU1hjMWpsS0JqTjdveFh6Mm5CRTNicmp0b09vNHkzc0ZoUjYzY0V5cGcwS1Mzd2hBT2JmaHc4ajlIUkNwTmVjTUEyVThPZHRWTVlwOXEtM2hVdXZhd3lESng4Q2phcV85ZGdCTVp4MnRKTERwZEd2ekJ2SGQwaHBYdTZ5RFNiZVNyalhZMzlIRTFVNWVOSTZIVUlCYnI3UUx4N2F4UVlsSmdUQnlSQjBDLUM3TTFpVC00dUtYd05wbUtvMkNBS01QM2xfT2VzQ3NRclBRTXN1eGRUODlSZmJ0U1JacVd1Yi1vNUNVTWdTTHBmSlFrbGNvYVhIMThydUxmRHJJSGtGeFBhcGtkRlR0dGtINjc5eWZXMHk2N1NQSWVVLUUxVTdENHlDRE5vNUpROW9ka0M4bTFJd21IWUttQUpQRDlmd1dKNlFRLVM0Vnc4bU5SdjNDZzRPSzROMzN2Ym5ibHZaS0NLeGNxV2dnMzlyTk1pZmE5Rm1wVTJsTzNGSUk0dUFkNFBRTjVGd0sxZk5zOTlYMWdWdDJoOUVRUFVjV3EyeUVtNENsUzVmTndBbUswdXB1MVJXSTQ0bWVLRTdBUUpxeWxNSUdja0s1ZzFqZFRtQlc1VTd3aUxQZVVBNTR6T1ZKREJtbm0tVjV5TkdwR2Z5bmtyUmFLdDlFN09nZGFFNnFkWDRYMGRBSHpNb1Q3QzJYZ2NaY3RkeTR1dE1ZNy01UEUxQ2tKdVRTNmw5a3d0ZTZpc2hkazdFQ2VzcWJyVkpSeC0zZ3RiSE04alBoVHRrU1h2Njc4aklBNy1mZG42Z3ZORVhHczFZajJFQmNhTUZhU1FtZF93YTBMQlNTaHdLdGRYdjZSVXVZZFpqM3VldkVPdHc3VUFkcVBjdkExV0swVnBjSU5jcTBLYzkxQlhYMXFGRzdVRDl4MTQyM01ZN2NKMXlVMDZNeUs1RG9rY2treGNhSlBJWEFlQldodWpTMVFWWHdiZkdIZUdpMVR2dk03d3poTzJXaXIyRVhwNUhpMm41UlVtUm9IMXJHUDRmeEtRemYwTUkzRnZnSHBpN2tWeWdVaDVZbXdrbFVlVGxTQU4teHlRYnlFWFFlMHVaSC1TaEV4ME1XRzZLbElsU2RGS0sxNEJCVERFVE1oMHA3NF9nNWlNRUhLRDJzSWF3dVpUTWF4WGNGcFhlLXdFZkxnLXEwYzh1NGYzd01qVFRfc2pvOFRkM25laHU2eV9SUk90NkpRbURrUFBFdzNzbkNIOEJSRnR2ZGFWODZWYlZFc3ViMmdZZW1KTUk1Q24yTDgyMTZLXy1UUHRKWnlJcXNOV2pUaEhfMGpicXhhMThvcmNrTURKbVBSLVQ5am9jSUI0elgwTVR1SzN4bDR0UnFTUW5wRXZ0WUstQWdYM0R0NlZqdWlYQU1EMFFKX0wteTF6dVpUY1Z4SEhiVnU5LVRDb2ZiU1dRR0ZqSDFIWlljYURsa1BKNVdfZEUyZ2ZDMEFVZzZDUEhZcXFlckxvQzZfd3lTLU91TDFLblR3aUZfRVh1WXhYUndyNHBMR2VCdG1jOEVmQVc2XzFPdWxlS2NrMnBTcjdDUk0zV0VNeU5WNmxGT0c3TVlNdE1aNHNtbEV4VGF6ZE9RUEJkRXR3LUJXbnFsdnhZM05ZeUJWMkRFME5ZdnMzaUZ1TnhfTXhxZ0g3UzFHdFN2YW0wVWJ5cFdLRHVjeDFmQ3h6WXNST09SOGd1Sy1QU0RwVHFuX2luWWJuTi05dlFQQ3RzcERHR1JHTnQzTUQyVlZRS0lHTHp1NFpaa3IxRlZvRTZBemtabUEzYjdLVkpxNlItdU4xZHNvQXl3OElfNjRpVFVBbVdWYTI1aUpkdjdLQWlQYVpmbWFuM1BqN3gwSnJfRVNiTGRGb29ZM3otQXFTNmhjZ2dVRGYyVmMtUFlGTXRnZEhzRzlhWWRLeXNLYmJoTFN2Z0laTFg4VzJGa1J4OTVFTk12UERsR3ZLYXpJdVVVc284UDBteUR6SDEzbnRwZEU3R2YyckVRMU92WllDbk5IRXZmS3BocGZoenlZY1kyTFFPQnZQWEx3VnRzVWdFRk5yMzJ2S0RfVEVuSmFNN2RWS043Q0NzWnV1S0dqNVJjRnotR3dzRFVqZXpwajR6QU9neV9Gc1FFMmt0eE9SYjJWVTlZbHlOM09BM3kwOGllRUo3VkR3cnhmNzY0eWZFaVZvTktUQzJkZlZtazhrbGg3VWd2d0F4SzQtQ3E0TXhKcHl6YXQ2LTdBdUlIdloxSlM1NWcwQmVtNXRjNlpFR0NaODM4MkhDakNVbFFvSTRIY25MbE9WQS1hRVAzRGNuc0NYd3NjRU1hYlU1WjJ3cWQ5Qm9mQzg2U3pYa2staHFGUlB5S0lIT0FLZVVId0QtWEhhd2ZhTjh6Y2ppRURPclNzbnJrbHQzYTBNRkljeVBJVXNybXk3Mlh0eGczRmttNmJMSlRqeWEzWk9BOVV2QkNDVnZXS1FQdzBjRGNqdmlhLVh4YjZmWC11dU5zVFhXZUhkbFlSQnJhTExHeGNLOXVrc0l0dDBFS3FVUmJRQk5Ld3lWa29HSXNkejNWMlZEdmZoWlk0cmhCdmJwdFo3bWF1enBfMmpMTU82TEwxTi1xV2g2UnJIWFlfTmJOd1FCZS1BV003Q2k2bUFYX1VwRXRRUGo4T0NwYUtWa1N5ekRCUkYtRWVoOXM3S1MtemZVSWNRM3B4V0NnQXNxblhlMHNKQkltaGZCUmdKTnBnMFVzOVZpY2otVTdPV0FuNVFvdWtqREhJLTZjM0Q5dGF1ZlRVTEc4VWpVdjJTYzhVamVLdmY4dWJzY0FCaVh6WTAzc1dOQXFQdW5QSURPdVZKOHRPQ2N3RDdHOFNQT0pPSTRjaUVScFNOUkFoT01RNXp2Z04xUXdhSkxpdlpVNFNtMUVCLWZLcC1fTXVBOXNyNW9Dc2RpQVU2VHpseFpJRGxZR3g1RU1KSmRJWm1FdUx5enJxRnA2VDNNeVFNdGlScFV0LUk0TDdpSENYUUphd20yUkhQLVVsdWJyMkhxVDFHaFFnTk42dUxKYXJCUlI2dnJRT2hJazJUME02S2g5czBtaXpNcTdsTC1XaEdTXzdpOTZZb0lMajNkVFY1NTU0bWtRNlRIQV9NTUpYMU1DTWdPWHZfb1M4QmdVdHJpTVVUaWVUNFdIeGN6bFRacFVFQXFNdjRpSTFDQmdnRHY2V05pUVJxN3pZb21mcE81cVg3Q25jeUd3MXNiSmctZXhVQUF0S3F2c3BYYlkxcDZzRkZseVhPNFlQOU9IV3NLM1kyRVBJSk9FSW5GTlhXbmw2VjlJdE82TzBMZy1kaTlpTGtlaUJxSlhWNGhMYURBRXhIb3RmOFVkaHNIdVFPclRLWDFuU0xzSVZmMmZROUhCdzRYVVAzWVZpQjhvdDVleHo0OF9UY2QxRnpOWk1pcE5tMmtLTUVsMWYyU1BjVlotX0o4ZWpId1p1ZGdkU1h2aHM3MmNRVHNBVkRGS1loSDFkRzBNSnJwbnhkSW5GZ0hWN2tTbjlYMGEzRjJOa1NldWtMbGJfSzEzQm5oMzhlZmRlNHIweWtiQmpNR1c2ZHhoT2RGcFllVmdmM09GaWkxd3NGME01a3ZYOFFBaEkzVzM0MW4zcXdlWjludnltWDBhblNJZmVQbEpwU190X0NuVVBIVzFtTkVjNVJmWndKYkxHYjJES2hKaUx5LTJGZWhFTHdvTVJ0akJtcC1CSnlBX1VkcDBEdmljUk9hd01DS2g5eWZJa2NQQnFWQ2E3OWduaHJ0NTlYbzFzNW1kSjdIN0ZWM2hjbjZwaURFWWhWRnBfaTNrZ21xQmlUV1NnbnlLc0ZkX0xIS2RIaFpLZk9kN2o5X0d2OTBKVk1ZVGZOTVh1NUJjR3ZIUzN1M1hHMmE2bDBXdHBGNTdCSmdCZUhYazBIOUgyYU95T0czdWdoYjR6QUFwN256NXJUclJvT283NURxTEpfdkR6bGVBLXpIX3pDQnUzTTh4UW1WZ3FhUzN2QllzRm92MHZRd2VEU29mUW90VnNRMHJTNEpvVnFEQzVZMk1kaWM5aEs1OVgtUjl1dkZQUGVlNURnczBHdk9ublZnQ0I5b0Y1djU0UW13RjVBU01teEJaVkR5WHYwNi1McTlkTFBaelJHaTVVbC1OcWMzYmI3X285aUtTZW9xSmxjRE1ydURyOFNKWHl5YTJLWTZtTWlMRzVMMmxLUTFvQ2dZMy03M0E4N2JHMHJpakZ2QnF3dzdvY3NwaUI1YzE2VFdzb0p2V3MwY0JYZDFoRmV1Z05xbkYxeHVPMjhoNnpFQjVvUGpQUjBnYnVxM0I5eVU1dEZjQjM3Z1dreTN5SWc3bTR6S3g5UFdSMnZnOXlKTkJybTY1SjNNaU1xeXlzWTJKR0gwdjk4WmZfYVNaT0xjYWI3UFZIcjExTDVQTWtwdkZJUTB2bi1FVEVobFVqVmY2b1dndXEzSW5xMHUwaHNhWDdDN1ltV3ROSzdwQ3VKa0xlalVLVE04TUFqaWF0X0dBQ3htV3lxdmM3N2VJTmtUa0NENmdPWVhYd1JmNUQtYkl1cjFyYThGeTV3QXoxd2VmRTFWa0YzQmhTTmZnTi1EczZONy10Zy1tNUV2X1hlT2w3NGFvb3lQYXFVWFNadFhLYkRiVjV3QjAtemdidVdXc3pia2hvelREbngyTmlOak5Sdlo0ekp1eEp4TWNtRkUtOFQwbFBmcVBVYlBoeFJ0ZTZscTFUbzhfcnZiLWkxbUc1NUxfY1VUc0lLeHF3REplc3dveVRfLTFBUkRERDJXWDRPa3N6bmE5RjItQVNWS0ZnX3JjZDJ6V3F3eEhyT0xheWlmZTF6OElPbmJLODRYbVBCLWZJVW4zWG93ektSQjc5Qm1JYTl2UFJGRlNTejVuZ1V2UTBCVHVaY2ZuUXBNQWF3TkVBRnZaSkNRaC1vaU9EcHNLOWtuam9nTTBPQUNSbWdvU1hwb2ZGbnJQUXlHOVBtMHhVNGhzMEZLMERmSFpKWHBhdFExX1BiUmlGRGlwMjZKRVFmVE1TT2lGRVRUVklaVnZzaHJ1TGJoc1FxU2hzcmJEa2tuMGRDRmlQNDNxLTRycENNMmQtMllVaFpCbFlnVkRCT2JCOENrd0dQTUd0U0QxakZuZnJycm10MDhha2NSeXhBLWdSWm9vZkpkdDJvUm5wS3I5TklGeFZZekM2aXlySWxYeHk3d05UdXBDMzdhRFZhQTNBUlROaDJZUFZTMGhVOXVkOFNUdC1seGNaWk1BZXF3Ni0weXlvX21OSXpUZkVybHlSdTIzZmdJQVhxajNtemoyN2FSeHZ5QmhsZzE3Yll5cXpycy1kRXBGcURCbWJXWWdVN2hYS1l2Z2I0dlAxU0lrajlTUzB1NnlMNGZXYWR5RWt2WlFlTldzdXJqMzZfSHNqenB3T3dhOER1SVMxWVBfRDNtTHBhZzBDaEpfcUF4b2ROQnU3azBXeTMyV1FhQmNfSnE5OW1UWUl4OC1BRnJGbFJYTUJHS3ZwaE8xYzJCd085S0JGMkU3dERRRkpCX19DMHpiSFVKS0tZbTZVczNsLXpxMnNKX0dETEphNlN5dGZYWFI5ZVc5M2xmR1p2SnFWLWNheVBFQkNHd2c4MTdpNldxaGdkbFVtSnZHYjZSTzNBUHRfSGsyZjNlckJzVVFuc0RHcnQtdWFVSlRJVVZENTkya1AwZUFOU092QUV5V0JLVEZhd3FQSVZEYmpHQmFqS0Q2N29tTWtLX0EtRlA0aGpnZFM0bDk1a3JIT3dLYUxOSU1TRTNQN3ZYejVqNHp3MjAyUlVCSWJrY1hMdmxtV3VoWVA0QnI1bTJESEVESzVfY3gwSHE4Y1hoYlR4b1ZXcGZPellOY2FhcEx2VXBrb3ZKNDFqLXp4aW80ZnI3R3NnOFpQSzZHWU5XeXlwcnd2b3NqUHJZMmJRYzVPWURhN051aDREN2tJUk1sM0tvX0dNVWNtbU95aEpjUV84eGtMRGtreTlYSlFONWFHaUlFRkpQeE9ibFdWcGdfNzR3TXVUTjVLdmU2MUM0ODZBQ04zZDRWbzROZVZrUDBzU2tpUTBHVk9HMG9LbERUV0pPUjVZdlpab3J2bjNvbjFESkE2SWRvdGFENC11MTRYbHRXenlwNlZHZnZMcUc3eXVUUS1Lb1BVaEFZVUhjekREaUw1RUpZQ3NVQnVIbWVMY1pmR3ZIcUx4ZnZsT1Y3NUU1cEcyRjd5V2pjdWx6X1JyaF82YTFMT3lHOXZDLXNNeHFpNkZ6VDFfT0ZMX21xVXU4UnIzTnZObHdqNHloZENaQlYtZ3VZbGQ5MEh0NFhsZE1od1F1emZ0MEUzOWdXTm1yUEFaRENoLW1VTGxBd1JYeF9zRzNOUmh3YUNnUl9OazNCU2Y1Z2RTejk3TFYzM292MGw2ZDhuYTUtS2FaODgydmFFSXVyX090cVlZNlJzYjNkc29McXAxR05vajZyem9kLV9VOEVaYWRfdWhTRkNUZ0tWMFNCckZOQjIwcl82SDRIQlF3MURVVWFjUEY2UXl6V1l2OVdhTm1YeG9KS3Z6TlNxSENDdmw4RGNLbG5Yd0Jpdzdkb2Nucl9RVl9idTVjQU5DbWhlSkN3dWNpVVZ0Zi10TjdvdHN0dGxBb0k5bmJqelNhN01pZGpOMXRRVXZiTmxoVHBveTFjRF9WT2RJLWsyTHhQQTNwemJNaEdnSk1QaHZtM2p1R2tZS2VGVVNoLXd6ckpJLU1jT0JnNUtZbmdBWmNpTTZ6SjFmd0pfODYwNmRwV3pucENxU0tWSTNIU1ZjdVU4NUtOZnhEREcwSldQRzRYdjBVY0UzTUtybzVEN1M2Sk9keDNuRHRGRzF3R1EzOWhfSkprMmlmU1laLXpITUd4TnAzOTVZaTBCcDdyMDQyVFBwd2dvMVBIRmtWQkd0SkNFTTl1enBQdmlxX2V0a2xUR3lnUy1wVGg5c3VhMWNsd2xiblhHSzNZUFNCWWZIczNrc1RwX002U1Vrek4wWTFQU2JQVG9mM0xVcUt4UnNaYmFYYXZ0VVNVZ3NoYmU5eTl0R2U2NTJjY0o4ZE42RUcyVHU0WTR2cVVxc1FlUDViSHJPOUliMHU5dzFqOXc1Q1B3TXBleTZZYjROZ05PQlVldW8yNUVUNUpLbndSZzdiVTlvWDJGWnJxMERCTzFlS3B0N21RYi1YcmY4NTh2bEJaZTZVZ1BrT0ZsdER1TUdBVVdmWnhYdUtVd2J5TG1NTXJKWFo2aHdTWVJrZGRCd2ltLV8tQ0xMRjR4WHpIN3Y5anhrR0RrU19ZUDc3d3RYLVMxMG9NZTR2R1hJelU1dDhkajRfeF9hNmdYdXZ2OXJCcFg1ZkIxeFFKUzlyZHVBbkowdjN5cmd3LTZkeUhmYXBwakJ2MTVWdUo3TXJiWk9fTWhQbWh2M1h3NGJmcjBFOVUyZ0tHcnNlempoY2pEZ0NMOTNrUGI3V2oxeXFxaVJId3QwT3FleWR5MTh3V2ZEeVBpbjBqbjUxaUJmSWhvZTN3c0pJeWd3U2xieE9ieDRPTUlybHdXZ0hZM0Y5OE9kcFU4Vm94QmxCSHFwSDdXLXJsOHVlMUo2UHdEYzV6VXFWNkJVVVlVRXhYWW04SXBFRlYzenRnR3VRcnBSd0ZaVFlFc3ZzRTZhRHd6YTR0cnVmSGZ6NUZfbFFMaHpQeDU3MDg4WFNMRWczcGh5Y2NyNlJFNHh5UnhIUW5CQjgxWTlrQVBBZnNqYmxWc0dBR0RWVTFVQkJENGF2eGx2VURrdGc3WE9LVWltR1Bsb2lIOUdSREhoWjhVQWZfWEc1dXlkMTBId042OF91VzVMQXgtZFV5UXhVZERRQW84c3Q0QkRYLXd3TmQtMkdBSENKWl9GT1BNQ2ZfbnlIbi16YlhHMWczZVo1V2hxN3dGQXhwY003Z2E4aTVvY2pReXZRMW5uYnFMSlVWVnZoaUxGZTNZOGJvRzY4SExLTjRhRFJ5VGJLLXlSMi00eGg3SEx3RDgtX1ZRVEtMOFlEY1R5S0ZaUUhKZ0hPSWhEWC1Ga0l4MWNsZGdfRWJiVjJpMGhFNFlYTVBNNm1zdnBKTUhkZ1pUNWJkRlpzMi1FcmZ4NGR6X0pCZTV2eGtDclZUcEJyWFczVUxCQnBmS0kyQXVyZkNZckt4SXM1WkVlVV91R3B4NUF2bUhuOGl6c0dEeG9LN0dGMnlQVmlqdEs1cmRMVmdfa25BanJKbGs0amtwbFVaZjVGVzlFa0RIZ2l2S0JtMU9oTzhyUlo2c1J5VnlTUEF6dWY1dl82SFJIcF9tLWhKcW1lTnpBRklpZUNSeUFJYmJBWnlfRWNVMWE5VmpzNGVvSU9XVXpISFdtOXZkaE9lcVR0MWVPSWVYN0tScEJSX2tzTWVOZk50eUlxVjNsU3pfdGwtdk42RHkxNHg2RjhVcklob21MeGMyaWNUd3ktU2ZIOUJhVThRYzFKaGUzNVBITnNsMk1BUm1sU1p0Wlc3U3JPUGdlb0ZOT3JVMnpyRGp5T0lxZ0NZREpuMGxaQlY5c0RKWTZCZDFhQ3VCb2xyUk96cElJbjhQQlVZOFY0ZFh6TmpndU1GWWVodU1tSEVzTmc4X1VybTZrYS0ybDNDeXJpSWQzNkJod2xOTHl2RVZaRWxCNGxkRVhsYmFhdGpVT2NPb1huMlM0VG9BSkFCUXh5T010ZEo4OTVjQURfbm5iYjM5VG82MDJ4bFFlM0dZQmVVZmIwNFY5UUtaR0l0Z1lmS0R1Z2lXcmxIYmJKLVFJQ2FtVEw4YW1zdTByODJTMHd6bUFVemNCV2I2bzlSYjR3bmNLTHFEVDN3ZGpzSnprN3ZwdXAtYVRJNkxOUUJyU1ZvU015ck50cUVqVEg5X18xQWcydmp2cWprS1djaTRBTFpMREpUZ1lCWGRMOUQ4aDdHdkRIbF9FUzF0X2FrZWFyQ3Y0Zi1PeWlNZF9GcjlhRkx1UWNGb3ZYU3ZBOGJEZGdSNGF3alQyVU5PcWZmZVR6VlhXZTMtUGxSaE5jRUlyTm1zVXlLYUd2eGZHZUZSMG1vY3g5NWdhMHVJZXhaTW85SUt4WU4xaW5xTVFZT2U5Tlo5NTRHVWNLOGx1cHhQbnctYW1wMUJZanNEZUdnUFNDdzJPWWJFYWlrdFlZZlJOSTJsYXEyUnRHMWJQNkRGTl96R0U4TnlPZU5QSzNidUlzcUJhRHQtOU1vNVRROHBBMmdPRDNGbUt2TU0tVWV4a3UzUktyQjRzSnRWN3MxWXFaZENjMEhIeEw5WjRpTmZBQnFuMmVuR1BveUYwYkRSTzJpMHcyOXM5bjNMWk1vc3J1WDJJLW9jbkJjNW5XeUN1SzVwUHBwZ081UEFldm8tY3h1WHMzMjZJb3dzMlpRZW83Mlo4bTZ3UkYwb1JvYXdiZEZwYk5OTEVGbFpVTkp1aEpWbjJYMEJKY1kwZGhCd2FyMXpRWEQtS0FxOFZhM1dla1NVVG5fSmd1eXlNV2x0SGx1ajBXSEQwT2I1SWZvU1oybTJGOHJLRkw4eTF1cjQ4cEpUNjdFR09KbmJXelpKY1hRTGRiZ2NrdHNVNG1oUjllcDhpeHRkZ0hnbXlPVmVUM0hhdEt2RENDdHBhRjJMbC11SDI3R3NIcVdQdXdMb0ZvWlNRNGtVQTd1d3k0MXNaUWh2TF9UUVJjY2NaVEFNLV84QkJUb2VSc0lMcUFrS0p2X3FCYmFhN3pKRXRtS2txRmMyUlJzY0FfMVQtZU0yOW1WazVLZWJnSENtVmxrX3ZVUnlxaDJhUExTUl81UDBaeVBOUk9VLVJXS2JSbG1PNmp6SV8tOVhrSWNpenBRUk5WZm9lUS1FbHduWUFMdnpHeEZwWUtGWlVFczhBSlloRGdvQ1Zxc3Z0WVZkZjMwSWV0aHVvN0ZXS3dtYmJKYzZvY3ZHVWdvQmF2RmtqWV9sM3ZyMzlnR3NGMTRLeXJtWGktSklweEZBTURxLU9vb1FKN0U3Q0Q1Y1pVSDh6VmU5TEdFMTBKZkp6RnlXeVFBNHhLbXhURkI4RzB1WEd4RVZzV0F4bUh3MTJWUFY4VEJxcnMxSllrdWlZRnlqd290Z2hGMllVbWJzMk5rRDgtZnhkZWtXMHh3bW9GbnJaUzQydmVPM1pjX0xUTU9vRm5hVndQWWhKZEpnUjFGM1JiRWU2bHBGOTFVRFNTYnNnTjU2MjdOU09IRXQ1RTJxNEQyWDR3UURIMkZWUGVlSm1QOEhlR3J2eF9jRlhoSUpJWjZhRWpVblBuVWk2NWJncVNDOUg5bzNtNEgxVkpLdDVHUVRVMzhJU1ZlZzBBRXVZTVU3N0wyNVFQUVRKZVQtd2pPb0pGeEgwMDU3YjFmb3E1RkNfOWdNbGNXRnVWNTR0anZ2Z1AzU3NyYkYtaU1tbEp6b1p4TnN6dTRlYVA2X2xMSXRmSWRfQjg5bXdtOE1LZVUzdG1lSWt2R2ZBQWNUS3BtMUI5VXI2TDNQZHdNMlM3TG55N1czS3g2LU5scEp1aTU3ZDluRFdvNXZXTk5qb3lURzBuemd4aFRicnE4U3RyNndBY0k3cDBYUmN2eWhHZS1aalBONTJGWVQtaWdOaG0xNGlHLW9aTjFBLVBUb3Z1aHNKdUZNS3NBV2hvV2pHMEVCUmVUcXhWMUl4QUxQTC05MGJaa2d4dlBCRnJkZzh3ZFdEa2oxa0JVRnpwcDI5RlZuV2lscnliamYyWnZqMWJYOEE1SEMxWFhNcGZ6cEpNS2hMWWVqUzY0UHkwZTd1RWs0czFZSXRNZDRsMmp4bGoyZ3FwSzVUOS03V2JGdFg2TzJsVC1YenV3OGZ4ak5VQ1UyRUIzY3B6c1Jla3BDTGJxbWtLX01sbHFWemVvU1JFRkxpS1ZoZWpCd1lQRHhyeVdKWTZDOEdueWFnV2tsVWVEYnV4UVlsTzdoYVpzS3h2T0pMU0RFNTFPYnozc2t2ZDZuOUt3b050dFluWUE5c2ZFNTQwODB2cU5WZk9fc0xBNDc0WFlCTk1VMkhNQW5ERXNrMlItRHV2TmZQZmc5WXdyU05YZTVmOG9LV1J0X0NrcGY5MGhjVXltb0ozdUdZRVQzQm1HbzBqVkltaEU0QUN6QjJQY1VSeDREcXJCMDE4MVhsLWh0NmMyRjZCbGtfZkExNFRNX2JLLWRsaU9rOVZMdEhzN3RKMTlnUWFQWTRiUW83ZFhfeFBVaXdwWHF4SjFSdVBSTWg2TWlNb0tCbWR4VHlNbGF0U0VEWWQxSl9hOU1PTTRpNzhTT29qVVRVdXN3MVRGT0hGRXdmaWN6aEJrdENRTmxSeDIwRW1aVkMyWnkya2tBWFhmVFZFb25YXzdCbzFMbmpmdGtEM2xJWWpPZ1ZSMUhtQWRRREhFYjBmVGZ1WURUZ0VMOE1HQjNZWXpqSTJETlg4TkpiQmlZVGI4Unc2YV8zOXF4dE9tRUVYdUg5OVpKQjVhdm9xRzhIVWJPazZsVFl5QUg5d2llQV9KZGFWRk81eXNFY25PQ0FMbmFWcjQzZ0ZfckNhUUt2aS1DRl9YWkFhYUd0dzAzMDBzeWZESURGQkNWbWttNlViTHdqbFNHSTFPT1RYNzVnU2ZZVndJa0xBNE10cDZ6dWhvSFl2TWk1ZkxBSjRrbnhfc21jSFd1TjNfVXdKcDJvaDdrd19CYm9ubHhaaXpYSW9OYTVzWlVaS3RwdDJZQmIzN0VHak9WcmYzQklOZk5OeEg3VzNoUzY5dnRxWDY5bENDWlVyS3hqTU1ZN0kyM2ZZeVM4eUlrUEdlS25KLVNuRXlrenFxOFJoQUsxbzE0Q215aTBNVUtmdEY3LWhxV3gwazUzME5jQ1NNbTNmcG9tZ3pQZVJyUTFvci1NSVNndTdZUXdGdDFfM0tKN0hTbzUtM201RzlheTFSaVB3WlhEc29BWFU1cWlUVTBqSVppSVZVeGc4aDRzNldaUnpHelJwWW5KeEU0WjFFY09CdFBHLWk0ekxrRlFsX3hBY1pPeDRoMWx0ZTVrVThwaDZqZTZYMUg3ZDJVVEc4Qk5pZXlzTkZXX3R5T2dOTGFVQVpNNGZVRHVPX3kybk9SdFpXRC0taDZjN0REeWJWaTd2dVYxd3JvVFlNOEs1QVlySHdkX1hXZkFQWHA4MVh0cURFM1BESVA2SzhabFpvX2lJWkVvRTBwWnpKcmViZjJPaXJmNERwamxHZmd5MmRHNWc2eTlPSzV2Q1psTW1QWWJBSzlWZ0F5dlFhY0lrX2VhMFVxbjZLY1NaTkhsQkQ5TGlhWnUyM2wtamFrRFEzc2tKNmc0c3RUa1BZdzQyUUdDM2g1THUyR2VOQ0lyNjd5eHh5Wm9vUEZwYXljZTBaX1plVXFXUE13VEg1NUFlb0c5UW9LTlBILWhwSE9BSmtiODlTZ0JpRGNKYWR6MkFRRm9rbmxtcm9Rcy01VTRxUTBoQlJQTk9VaTFZdDRaZS1neXZfMnlaX0d6bWNQdUYtNmxCWWZ4TmQ4RUVwVVM0TUhlUkZIUmlodXN4VGRtcU5Iay1GUEZKVUdtVnV4NzdfdGU4QjNFSTBGb090cUJ3aGsxam1TZlZFdHp4VG9weEdnZy0zSFM1STBhTGx6TkJTZjVkSGlkM1V2SnhPbUVKaTJMbnV4eDBPd3dOV3J3SFV5UlItUW1VajBxVnNBRS1OY2pYLTM3U1RXc21JRFpqM2ZxS3I2Zm51eUJYTTREd2R0RXc4ZFkwVEdzYllGM3J1NnJtNDRKaGJSbms3RGdWWVZTZi1wakI2bHpMak5NUW9uRFJHVUxtdUpiT1VDZFFTeV83amVLQW9kMDlfbFFBUjdXYzJqVk4wNksyWVBIblRBdlROekNyX0RacGZBc090Mjg3YzhRNURfQmhWY3BsRHFhZGFMOVhEWThuRERiSmo2a0ZMOUpqRXdGaE9TYlNaeEdUOW8yVkFQcnNhRXprd05wdjhfY3VnNUVMNkdRRWlEUkFma1NoelhVaU1vSjdDQnM5WlJSYzNkZEl4SXhFbWN2RnkxQ0kxcm5FWDVHVEZhX3VLUmNKQllWMnNSaG1xSXhWMkZ5akpLa3ltLWlDd1JFMnViSkx5ZjhRS21UZHBtSjBOS0JSang1aWNUMXdVOVdGa1lvSERSMkJqcFdTYVREMFVnanpNQldLX1NrZnNkOVM2REoxUVJqX3dvZlBPOHhXVjR6Wkx2bzZiRW5mQ0ExTFhDYzR0ZUVVSTRrZm9oLUpPSDF5b1IxQWFsQ1JJWW5iWDV0Y0x6VVd5N1VUVmZYNllDeHZCNzRYVm9RWVhVY3pBeWZNV3ZmZzVlTC1oak5FalBTenY2QUhLelVFWFpHM0kxTFdoeUdUdXFvb1Uzcm5QeUpQQ0ZqeUJqd3RiSDR3NUVseUpvNHpNa01yNGtUTW1fNWZsbG9TNUx4ZHNyaXZ4UkJTTEJ5LWUwTmQybjlKdFhIQmZod3ljT3YxekF1RTRoM191T1JPTHFGUmFqdVFnaldNSDRmU0ZUTHktdUpWcEY5YzMyYjVPX3F5aXlQc1VLNlBKZG1jd2tjanExYjhHRWRGbzIyRmFHWXAzT2lYeEk1blQwbmk0OGRzelpNTGNBTXFsdXV2b19KaHVzRGVBbjlJLWFmZzM1M0Y3ZVBIblcyMlFCR2xsYkpOZDJqa2NNbktQWldlV0hfeE42Yl9UNFZzZzZaM3dsZVUwYWgybVRacnVNdnpRVzJ5X19NaDRXOG1aM3BLVEdxRmc0OUg4RE1ZNTlEcGVmMENvNTlod3hUazVTWFQ0bXNGOXpxdkVfcFNoU0dVWDBvRUVtanBiZTlxbi1xWDJWcDhrNmtBY0Q1QTBCeFUwLVZtc2pmMXhjQVlNMWo2c3o1V1JuVHhBb21HTmhnYVd3ZmhRMkgweGZvcDlYVlZxZjlMd1lnTlhSMDh5YzdnV1ktVy1CYzFXQ1FFcHNobzdqb09SVVNBSUhBUmZuUnFBX0tob1pZTnlEdEVHLURoX0dZeXlOdWFXMkx0MHh5TGJwQ0pFV1lnQnVNTTRFSkc0Z2Q0LXVzMV9rbTFHQW9YQ0lvXzVXUE9odTBRSVI0cEtncWdMVWQ0NkV6aU1MQy1FSDRkZGpfcmR2ODB2SkF6alpJWDBLR0V4b2RZdV9ZTmxhUDRVVXFwVW9mNTlTclVhTjZqZ0o2RUlSWVRnMHlGTVpycWJTdlVJMklaT09zUUNxcFdXYUI0dzlaS1VhTVhJRy1udTlDU0hQTEJQQlRHdFBub2Zhcmh6V1ROOTZRaDdxZk13SG9yaDFPMl84aV9xWENLZTR3NnU2V3RCRnVQUWJZQlJUYU5QZ2xFTWZMUHJORWZTSnhGa1ZJTVg5N3dEc0VTaG9Bbk5sRlVfd3Z4YUZQdDVUSXZPcUpUNEtweC1LMGdoZDNKSWMycy1XZmRHaUx0bHJQZk5FWWJNbkt1bGtlb2szZ2RqR0JONGVoaHo3OWhEWTkxNlJlcUdMOVlrQTI1Z2FkU1NKY19ZR3ZiY0NiM3ZCSUVhUkdSRTBxTnRDclN0WmgxdURwRWVvY0xocm0wSTdzVXYtYWotTXB4MmgwMGl2Z3BtLWNraVl6amUzSHFoalltcHY1Q2RPWUZoQ0JwTC0xRWpVa0V3bndIc3E0Si1ZR0NGV25qNHF5dWNoVU9KVUl4RGZUaEtUR2ZPa3cxRVktTnFZdGNPaThxS2txNHVIRkx0OGZVLVlGN1VGTVlNQzBfNVFJalBsSWNYWGc5bFFlQnAxZWxpOUY3WlluMTFPWG1oYWE5dlZxU1FRX2t6LS1NdHpyNl9yWWVYTi16TXJGV2tITmVVS19hQ0VrbHBfd2VZUHg2Mm82d1B1NU1uaDktVXlqRGNraFFzSC1la21pQ1BwN1hLZ1dWOE44N085bVB4allRWTlBVWZNT3BhaHZZbHNKWGh1RlM2Q2p4N1BzSGRTbGFMQ01jcHhabVV0YU9lTFo4cW91WWZUdHJ0UlBreWdtYXQwY3RpNUFvYjNPeWVWS3BHSXZRaDBseXA4cTltWkFMNWtFVDBGMUo2QTA4VGFVemVJSkNDakFLTzhEaUZYeTZnZlpleUpHeUZUTzVmWDRkWEtOU1hZRXY1aTRmYTZIc2tieklIaUlGU2tkZWV3S0lKa2lZa0s0aVB3M0luZDRTR1dCZ2liZWdZamRYY1drb1R0YXVTNUdTdHh5UEhrelhqRVFka1NTd2tnMVh0c25ZN0VkVHV3d1N0V01kM09UWWFlVjlLV2lHQVpDOHpQUEgyeG9qbVJnc3pZUjNoTk04VmllLTNNRi1jOW9UNXpZMG52NmFaV0FxSW0xLUZ3VnA0OHh1WEpUQzBoSmJLLU1kNzBWb0ZKMkVVcEdMMk5nVWdpMElKMjQ5ZXBuX242RVpzTUVXUEJTS3BGUGotYnZpTW5CV2Vkd3NRWTNfNkJpQTZaUkFZV0xORnZBb0pqSldtQWJMRVFnS0ViSlYxTUMyZHpmc01MTk42Q2h0azFnYUtlOUhpR2FzZjFNLVZpU2pzaUNCTmpaejNQUjVzUXVqRGUyZWNnU05yZS12dzdYUGhhdUJmQ2FUeHhQZTFuejBkRkJyTGpHV2ZLNW1KUkJGSnNnR0g5OU9zV2tKZ1F4b0p4VEdjMkxNaGE1Zm51Y2xBVnVJWE15Y3Y3cmw2bkJvOUs2cXU4Vk1GQ01TM3lTUEFZcjBreE5XNzUwandDVkFEdlNqbVltalNDOWpRVzBMb2ZrUC1aTHJzRVRHY202RUNxUkl2TDdqaEk5c1p1UWdiME9lNUtiZ2ZIM3lpMWpJR2dZVmNfQUFFMGhOcHRhaUNTaHB4SWRGT2JiRGhkd0xDalJpWUpiRjFWX0RFYnExRXhIVVJLX2pNV3NPa2V3cENveU52ZkFYRkFzTTZnUE5taVBFWFhvU1pEbUVhS0hEUl9KaFRTZmFvNk51LW1tNG5jV0I0N1lnMVREYU15VXFWellqX09vTVFlQUZZeWpBNmlBR05FZEZqMXN0NzFjNW1COTV1WVE2aFhwX25hajdkZ0IydjlwZF9Kd3hNczlzanhPVzV1SFRzdFA4Q2FqY2pjME42MS1MUm9acS1xZWFFMjl2a2pWQlM4cks5OTlwcHd1N3Bob1lUOEhKQ21Db25xSzZ1VFlVcG5yQW5oZ3MyVUh0YVVfUDRUcXJyMXJVYm9rWkVzamxJbWpTMURIMlh3N3c0bWhMVGMtQXd0bGZ3UUd2NEQzbUN1dUFkbVV5OTdZTzBpdWYtUk85SGloNDZLbC11NmZQNmlQQ3VrU2dmSkJZOFFqdzcyc29hUXpaUkRfMVZSYzZyUUVzdXN0NE1EVU5ubGdDSHNTanBwVUo2dUFxbXd6N1lzQkZDd0tUN2o3T2hHQUFXa3BPdGhQY0FDZ3U4MGJlMzdBSnNxV00yTXlxNFVydVRKNkk5OWxQTmwtcE05and1d2hSZ2NRQUJxcm1mbUtmQUdoWk9LRFFVUXk2aXp5bmVmZ1IyR1pzaC1tQmk0VDMxQk1xdktSTXBCYjgxWXRxcDVySE9iTnhqVUZ0SXZsYzVybjVMWXR0UjFpa2gxX3k4dkFHLU1JX01xdkhHbG10dGNrTldCOWlldVNBNHVwdW5hcmRCajIwVTNKdnNzeEUxTlUzS01JMWlhOU9JU3M1azdUc1VPMlE5TzZYNjhUZ0Nza2Z6dGRCSjQzdFNGVzdpSWNVTDZZZmxyZzhKT3N1SmtScWhCX01oVmduQ290aGxGT1VwZDA1TnJpRm8wYUxIWmcxa0czbWx1QU56bVNPVlpBd2tfLTV5bHZHSzdzclViQTE3NVZOd1Q5bG42VGtVQWFkdVhkMC1mLWdCbzVpMk4xdGpldjVMLTRTQy00RlY4bzB2Z1o2TTEzd0FieXZsck8tQlY3b2FuZzEtYkYwWHBRUlFhVHUyTDcxMGNRV2VOSkxLYkpGblhwQ0M2RVA3Q2FJT09fdXBUdjRPMTEwd3NiUDV2SEN6MF96MjNkWEQzV2Z4YWRqRkpodlhXNTBFbGxKbXBqVjZFWUlvWER4MldvU3NoemVveTlVX3MwNXZnbzZ1dFBVS2c3aGwwejJDblJBMUVUY3FONlladHlJUU1mSi13V2tBSm1KZmJVenA3MS1uN2htRlp1WURsaUNGaG1XNWRNVVMyVTd0dGtKdFJjVExHRFdWX3RqQVllY3NzdUxFOFdDTDhTRmFiZElrZmdUNDJ3N3E4dngweHlHVEhSaXMtNFhWZjhiUm1nd0ZMbVFYb2EtSDJYWFEzb0REenIwV2NSdjNEN2ZERXc4cU5qWlN6U1J3ZmpmdFQ5b25RVWtFR0VBWVRVQWtab19LTmRkejRBVW45bGZwbHZCM2RGS0FwX3BWTGtOTHZtSXpXZ0NERmFWak5TLVdmWWlFeEpfOHd0MjNEMmZkZTJiQzFLbXdnM3hpWDQtTm1KZm9PREJadUxQYXdfMDlkS3hmaXFYajNtdl9WdUY0ZE9xZzF2Y1d1X1VUbTJoVEJKQUtyMmNJRklZb21jZFVQZ0NOcG9Ld1l4elpzUzlPZmdEcGNDWkVXdkNfNU96QlByVjNsdElfRmFSZFJKLVZ0TmZUUk5mQWZxSmRreDg5bGg0X2xUSmduMVpodGRpWjJLUG9ONHdxYXhpYWM0akt1TV9MYXZlaGh0eUxBemNFSHc5MG1oYUZ5TDByVl9HZ1FlbDNwU1o2cnI0VXRWZ3FFcDA4VUsyRFYyZlM2QXZZWlk0ODNndzBqMmpickg5eUdrQVdkX2FXUVZMMzZ2WkxZVkxKX294NkRLOU0wb2hPUUJuS1E3X2tDNlNUVFR5SjlpRDU0U25mUlF3dWxVX2ZpeU43dmVkaVJTVDJrZ1ExWm9OWnlEZ0FOSnpiSGtxclZhU0wxRF9JSnAyYmJoWEZjZjd5ZzlEay1YRU1rQUdDMGR5akNfTENVNTVSQ21GbTAzM1lHd1QtbGhxQ1drR2dOQ1BCdDNPamtwZ3pSRlBLclU2enZCYWVUbXdxT0JROGdCQzdycmhLb3A3Nno1RUFoemU3bVM4VWdEaE9PTGt1NVE4Y0I1dXcxMjQxT3prNDcwYi1xc1l5OTQ3VHdjdWxTUEN1NW5zR2hvaWVUR0o1WlRjaXVLeUo5ck1TRkhfUEI2N2JGZExseXVveWFBQUg5SlhqZWN0VS1zNDN6aGpzYjJrX2x3bG9sX3ZIb3lKeTRHOWxwT1dUcDBMeEZPclcySlg1YURoUlJ5dzZrblNDQVlNbjBzZjBBdnlHMUYtMnR1dEFSZkJPWTc5eXI3S3BqalZpR2lfSnZIRHN1c25TZUozZlRTNDktM0I5dkljam1fcDMtQWhJeXRIeTQ1LWFUMkw1UkZvRVNXVEhNNjZYcTRBTDFKSDVWY0daa0dHNGltUHZ4MkZ0VXRDZ3pQWjRTQWUwYnJsYW1lTVV3Wm5JSnNKVU4zRVE2WTdKenlWSjFfb2kyUzFpNFRKaU9ySXNTdGNYLThZV1VtTzVvZ1R4RnIxdk1qM09MbWIwOGhSNE5tcWpyUVdCTUs2OGt4Y1lTR2tqeVlkYkthUklVSG5BV2lEWExjd1QwZjNWVDdLMTN1aEVmeEJ5bHE4NWR0QmNwdE96WjkxSFVVNzFLYWo3QXZFb21WTGZQby1JcllQUUptQjlXUU5fZWFDM1FuQTlUc2hEaDUtQS1mdEwwNDNGaGg2NFZyaDF3WmZYRm5abUlvR0l0bUVkVmxDZXQ0a1IyemxZVUVOQ2tJWW9sREdYcEFqZWRTNER4aFFGYVNnajFvQnp5QThMZU15T3FmbWZZT1dxTDNBT0ZDMExyay1XaVdFWC1NWmVQdXVycldZRHBSYmhPWGExckFkcXNuX1ItUnlTTWR4RHlJRmJyMFZfN1Q0aW5qWnFrTkJTUXJnTHFhMHVKeW9vd09BLXBvMXM4ajRsT21vLVhTR3V1c2NRMGRBMWJIdUF2VTNSY3dSeFRfYWg4NHN1MEpfQTFBZlVqY3RrMmpsYUQ2Zlpqb2E4dVNsNnJSakFyU1dVdzdFZ19Yc1hxTVg1bUszcEE2bkp1dDFBS3REOXlvdDZhc1hJUUdMNE1RaFdVVmpPcVlhVlJ5Q3hkOEgzV3NXc2cxMFNpUWZHY2djYXVEdUxxU3ZwU05fUEZzb0VHU0pZODZPYzduOEJEYk1BMXJiTWhtR0ppUTBOMUVnb2hsMXhwTDVWWWxyaGtsUWlZWHdkb1ExQWgzNl9jTS1uZkU3NGtuRmlzVGJpekxKTS1aZTNTTGFIVDRJTDRiM3NoNmZxR2lFaEtUMVRDRjhRMzlPdk5KcFZuT2k1ckFVb2JSc0xFRW5HbVVlZlVPZ0xUamdpOU1DOW55M3MyWVE2alZpbXZxSnowZFJSY1hPbGpXeDBncEppUm0yOW5aT2NXVGpXRjl6N3BUOGRZal9hZHp1VmRqckloTXp6eXpTdzN0T1ZRbk9ldjhJZWdVeFlCcVNLSzc2Z2Jmb0tBRzV6OEZoVmprbEJkaEhrRVA5NWFlQ3lCSURFNWp4N1FUYVZ2cmpIWUMtSk5PM3J2NEk1QWhsUWpTWVJ2RGtoWnVPSUZ1a3ZiR3l2bGFTMnltTlFYQUllWmpIVThyUnpqRFQzSFJhS0p1dnk5NF9JNnBFeXdKMGFGU0hGX29yYXNpS1lrUlg1VFliUFdNcF9NQW9nbXBkU09nQlhVak9HWE5EWXlpTXBzMlIwalFCZVdiSlRneGszTEtGYTVmXzNfWWpMdmNiZUZVN0tIeDhGaWc2T21ES2hEYVhNMU1idG5aS1lvcUFKMURpUUx2ajlSOVJWQnI4TVF5RkExWlJBYV9VX21UNW5uckVQc0ROeW5idGpfSm12X2o1S3p4M1JMR0JDOGNxSEZMeDFFUElsTFdvcFlpZTlITXh5NV91N2FrS2E4NDJXaWhPVDhJX1gzWjBGY1h3Y3RJMVZPOE5USTJhOWxkV2xzV21KRUY2eVNLc2Y4YnBpUHRkdmV0UW83d3ZkMzBGQ3ktR0haTVBmY0RIaWR2ZlVYQmhmeS1RYXlpaXV1OWl5d2VteG5nZnQyRXgyQnZPUHdFY0NIMnNkSjFHY2lVcWgyejJjYWFrc19DRHBSSXRwam9DWEZFWnZWRDhMY3NodV9ma2V0WkthdWpfM1p5TnBiQkE2TGdXX1dUQXpXNkpaZElFVlR1T1d3QVU4T0loSTY3OXI4clc0Z1dRZzZjNmtkUWM0cXQwa3BfWnBhSEduSUN2OFhNSmVac3Vnd0dqOVE1OW5TYTVtRzB6OXpIaGVwVzNoV0ZXQXNOTFo5cFhCZXpvbWNGS2VDSzFFYzdLTFVrOFVsdG1RMkY0Q19pRlplcEY0NGNyZTluNF9KMVN4Sm5ySlJldWltRGJLSHhQeG5VZ3hWc1hzVm1QU0Y4SDRPcXZDeUVkODhhc20xaC1lcjhkdXZyekxWT3VaUUt1dmtsVDhNN1FpbTNfZkc3Mks4dVlUWU83emtFNndKOGZnLUF6VWZGeWJsZ1EtOFk1X25XZlNLZGdGUmtxMmwwcmF0VUZaTXRCLUtMRC1yQmZ4cXRzTGtvTHJlVXp0aUFDcjNDNVJyOWdOTjVwb012ekVpSVZpUUx1R0RJSzUwTHExTXk5ZDdpT2NlVXdyd3dkbXRHY0NIUWZZRUQwMWJJZzZMMVlIeENSV3FIRVl0SWx2RkJORkVfc1JCU0xPR3hFQ2lNNnEybEs4Q0Jib0p2UnpoeWNWTlNzUFBtUFlpc0dNd0ROdEVYeG5mWjNWM09HMHJkZGMzWnRrOTZyeWJRNEZOb3BkZkFnZ3NjVmUyWUhMUHBBYzJNN1Y0VWc0M1N6d0VWUkhoamNSR2VRZ2hrcTJ1T0p0dzZrS29uTUhrSFl6a3hyNXBEVjVNN0VWU3FzZHN2LWg0NEp0V2VaUTFUd21PS1FyZVpzR2hMNHZtRjNLM0lKaENKNENJOXpwT3EwN0lhUzJjTHZKZmpJXzVkNjB4X3EyQkxtblNSWnNMQ0hrNFBsbUVIVVk2NE4yTVR5eVpwY3FxZnJ6MkFtOU5LcW5EbHJSX2FMdVc2Z01HOFhPNHJvaFpIc3NtaVBKUUVoYlpXQzJyRWlEakpsejd5SFFkV2ZOMzZKOTgtTHJXa0xseEJOM2kzZjlxMXR2NFB6VnFhZ0d2Ylg5UnZ5R3RSeXZoNHk0RTJoTGk3SkR6UGN3Z0NmTmEzbjVGc3hGZFVpdHY2Xy1aMTh4NG8wZHd0UkRtLVh6bFZwTUxZVjJWRlVmQjVReEplbVdjZy1zOG96WnJZcjVBTDV4RlZ6ZWNKYUx1SVd4Q1VpaHJIR2k4VUxLVVF5U0otUEx3eFR6VzFiT0d1bjFPUHNLRlJjZ3JuXzFERUxqbGJMdlpheU10a211QUZMMXowUVZwOHpHbDNLWjh3NEp2Tnp0V2UtXzBCTVJJSXJCcmktd3pIdFlvdEJWV2RWMHktOUVCVVQ5Mk9PVVNaaTlQV1hQQmVGZ3JhVnphS01JVENRS2d5bXFaNV9QNHJTYTVvQTFqNlVKSWNDRHpySTdyOHZnLTdpdWJrZHpkM1lSdE9GeGVxVVQwaE4yMkxnQ0d1bVdqV2tRRU1tTGl4SXd4enhxdVBsZ1dCWVlVdkEyeDFjSE83SUVKYURLbDhvZ3JXd3JySllTMGFmdEszRUFzcVRSaWtSODRhX1I3OTBHYXNRWXowRFBzN2VtQWFOWDRRZ1lOdU9mekxkaHpaY2o5N0hmMnZzLXJaRElrOEJCLW1nakVZeHlnQ01scEdKaVZkRVRVM0U1UEIzR1pUazFtMThvU3laSUVuYXZEUUFXUGlrdi12UEFKYWRqVVhHcnN6UC1DamtIRXhVUEVyRVVLbGRzeDNFajJtMk9FeHRjWUxteUpMTWFqQkZPVXo1Unk4eEdtZmZtT2FhRU1DaVhNQ3ZmWUhQRnNJMXRQRHIwaHRENW1HMW53VGxfcFdDR0pxeTVyb3RieFgxSWYwd3p3SnpITWlDYVI4S0V6MDVWTFdwbW1FeHBveVEwWmg1azVMTDFMeUhubUdXa2pEOE9wcGNlVkwyNDhsWkFrWFFPamlpNkFZWjBTYWlzZjVPOGxnejN2TXRQWjJhX3V3R3hnYjBBczdENDFSUXdoYmlNWGl0Zmg5VlpvN1JmeU5XdHlxRGlhbzMyRkVRUDlQYkdpM0ZmQ05lYldUeEVQNUlNLVBEbk5BSUlZUGk1MEtsR0FFSmNVS3NyclAwRDBCQ0NRVjJJQWdYLUlEelN6QzFoOXNVc2ItTmFDck9OWEZreWtmNWdTTjBHNmFnWjBMdDg3OFNXRGhiOWdDZmVPb2ZKbEQzaHhjdldZRkw5SmdxSHRrWTJtOEt5ekp4ckhLaXF5YU1mcElnbEIzaTZtRE9weVZsSmhhdjBsY2NqZ29nNGdHaVpoRjJRUFI5SmpZWFpzc3FzXzJWSnQxMGYxQkQ0dEFGYkRHQk1Rd2RBckI2T0RTQ2hOWEZ0akxXUnhobnY3S1IwYkI4eDFrVGdTTkxqZ2lCZV9VTVZlaEJaSHNpU3JraW90X2twREZsb0hEV09abkNsVDhRVlhWM0VsSmNqbzc3c0NrNzRXRTljc05pS0ZvLUZOVkVqOG5KTUtGTVpYRGV4OW9RSUhZcUhtMG1FZUh0QzBWS0RtajBLdnh6X3N0WE5nNEIwclFJUGhSckp1ZWhBTUtmZXZmcWEyMXZLZW9YMVhpWXdBS2lndkd5TWRJNzdwQ2tzcGtnYVF1dDdmT0d1SUlUTUwyeFR2d2F1N0hoQWtjc2MxR1RYeDZ0ZlpEU2RVWS1nLVFpUjltdU44Y3ZJMnVxQjEzQ3l6VWkxODZvazNnYlFiOU1tWGRvaXQ3OElERDZTdmEzay1XaGpONENjcDlIbVlwSFZPNWNKV1AtTmwtUmU3b0RwRjdlMDFKeWs0bFlJM3JHTEdpVUZ2TFc5bW45bk1jQnVaTW91dmk4MjY4S3RHMTM3cDJZV1JKaE01TkduaHA2WW9yN3owQTVKdHM1RkFfSnNYbnlCSFpObTE2cG9uRTRmemloSVNQOHVwQ1UwdEF0YmhWeU9CLTdfMzBGNV9tWjZBeFVaeC1lRExXbDJpUEE2ZFBhODVKYzRjVUZTOTAzWVBOeHVwelU2eVZBMDk1QWFkR0ladXBQWllvakFTYnpZWU5NdTZ5SExOSXlYYXNlS0g2ZVdrRHVZaWRSVTJDZGdWb3p5bkVoS3A0MnIwMUtwX1FzOWhzLUhaemRHRzJ4WmJrb0JZeWhNWUtJRk5sbmVaMWtZWjBPV0FwOHBlZ3BtZDVlX3RadWxJanJmUWRVMmFqcEJtRk9JaGJRcDVqWl9oSlotSy1DYy1fUjRKZnUwcy1TUVRmV3NWQndyUkU5ZzVRWEhvUWRQZEZ6eWsyZ3ZZNmRBQVhuUkVGbWlqMFM3aExmbmxXd0FwcmJIalloYUZaQUtkMFNJXzJPRFFJS3luaGQtbVNIbTR3dnFza3hLQjlXMGUyNWpsMkZ1SkFpZUpzOHNkTW94WXltQjlKLV9kdEI5VTQ4YVcycXowZU4wNUZMR3ROR0FyMmhLVWhxbXlPc0s1S2tuRFdnOGRCQTNOREtTdEN2Tnc2cDg2bDRoNkVzVEsxZXJoZmQtZ2RlS003SDFKSVNLZUFuT0swTEl0QUpzNV9DNE9rMTY0eENXTXJPaUE2aU5US2oxNFpCM3I5aUQ3MEdycVExbHJaa1dxWmVuTmw5NEZZczNJOHBlTUZySm5qMXFfaWVMbmNlN1dEa1ByTEVQaHRhT2RIbnZRS2Rha3c5aUs5ZENSZ29QZE9MQTlVTHNZMUJjcFNnYmVlTFhLZklGSXZJWXhyT2s3LTA2VGpBUGVOQ2NSV3g0UURsdXZFeER1QnJYZ0JHandnNWRudDRRSW9JOTRMZkJwNXhWS2taZjRiWnRFLTVDZkhaVnJYWUx5cWhRdDktQXVnYnJvNndBUTBtYlhvTkV2TXQ1RmRFU3o2SzFFZXZPN0hJbGtPWS1nWmpRWE9qNW80WEF2dWp2eWV4MUlrYnc2eE1NMkdrS3g5aVF3YWtBaEZqUjRicE4xOXZJTzl0bmVrOXZ1VXFKR0tQd1MwVXNfVWFaRlBialdPNVhKWmRnbDQ3LUhuVFFtUk1Td3E0U2Q0UVVsb3Flc1Z4cWJhWTAzdHp6bVJ6UVNZUG01bm9sOXV0dkFjcndqUFdaZmc2YzhYZFFERENfMUNqMlBweXFsOUpjOTYzNEllbGJfajNQZ3I3MExnbkhlQnZVTnNLZTR2NDZaZlc3MFZGelUyQ0I4NWNuMW54S1NPbDRpMXc4YUdJejc0NUhBNzg5UU51bVpGamplRTRwNmRjRVU1am5kaUZLWGMtZzUtdGZuaDJUWmhrOGp2MlFTUmN1TkZ5TnBRZkU5TzY0NG1FbmhjOU4tVk5iQ1dWM0ZXaG5ETEdtUVh0RWV6N0pWSjFlR0ROazF4Q3VFSF95SFNkYzZ1SDhmRjB6U1Q1bnZEM0h0LTQxNVBVTEZHMjJ5UXlVTWtkM2ZZMzR4a1F2UC1CM3FGOWRINUFXVmJLRGVIdDBVRW1fTzRVQU12eVRjTVU4VDB0ZW5wcWZrREN6cEtzU2tMU2stWjBYYnJQR0FIOXJxNFJqVnRra1pZeUFfQmh0VndwZ3I1RkNLYW5kaloxcUx6Q014NDA0UnRZV2hRZXVpa1hMMkpKNzZLZzczNGt1Xzg1OERBOExnbjFWanRLRHVVdXlOSGNTM0NXalpBTlE4TngzRUVLQU5JYmIyRVRXTThIOXdSMDF5OFM4U2gxT0wwQ2FuRDZ3R01fS1U5RUZLZkJFZGFwVHpfLUdxVEcwU3hYUGZSR3BZOGJ6SVM0MkFvaUNBdzJiLTNfU1BzVndJQW5TQUNkRXo0enN0NlZaQXc4YlZCZWlJbWNoRnpjZ3VLVFoyUURpQ1lzM2JIVi1sLXNZSGFtcndKRnZpMWNMQjdHOUdNVkZlZ2IyNmxSeDF5OGN1MURiSVlmdDRqcXlZOGpQWFNxSE53QjhtOHJraFBZNjg4Rk9panJTSmhleGlRQmJWUkJCS1g0M1pSTU1KMlBFNlp2ZEkwQWlYUXdVUVlQTFBBY19rM1d4V0ZWUFZGYlY3NjJsbHZESXRZRTlVRnZWNFRjX1gtdURtemVxVkRURkVibDN2VUpxdmZHMTBTUWd4aEVXM1owZEVhOUY0Tm84VHRBSzFlMXQ4ZFZrMUJSNC0tdlRBc0tIN3BOdXNtMmlNQVNMV2FOa0cxWFRydlBCNy1VU0d5SkNBYWI5Mi1EYk1TdDQ3X2xyZVJYaHJ1Sk1DeGNFNXVCLTQwaUhCODdpaHdqRDRNampaV0dpM0o2Y3JoNDdYNjIwVWg0X2l2ZWJ5ZU0xb2VHZ2tobjY1SVZtRC16U2ctcWJ3UW0tRWdSMXVhOExnVXRhQWV6UFRyTjA5S3pOVmdRTzhaa1JwMmhfVjZYTVNSanJMV295YnZsWE5PX0thTF9maDVEa3I1SHdtU2l3cHdMMUxYVDg4MFFnOVE3N1VYcnVndFpMNTBoeG8xcWVmendXbmtYMTZvWmxFZENUbWtaUExRT2hfTkY5eS0xSTdmMkE5cllUX1Z4Qk5KMHFjb2FUNThVckZRbi1sdU5LOFhqaTFuOHZrMVB5bmc0MVAzZ2tCZms1bnVSS2E5eHl5OWtNTGIyTFZaRjJyTW9qRUhvQ2FBQ2cyM09UUVM3N1otV25FU0hHWlJoWkcwbktvMl84QjhnVlhqdzBRYzh5TjMzMDlJblgtYUs5a3FTdlhqbVNublJrOEVuemRkNDhWQ2tOamR2VmFLM0p3QkllUGtmUWRkcWNsNzFnQW1vTF9HdjhSM0dwV09ZVFRQWW82RHE3ckk1YmlkWUZSQlJmbWVPLVNjdVluTFFlNjN1SDFXNFhlbXVuNEpiMVRJblNaOXc0U29MVGVOOUZqdHp4eDBEYnFHcU05NnQ4YzV6SWhCa3dIZWZDVEdiV3d6VzZzemI2Y3Q0LXprWGdiUVNiVnZJcTktdU90QXhMQlZEU08wSElTanBVY3dueEM4clExRF8yNEVCRVg4aXBYSUp1dHBoVXZHVWxuNkxKaU1QYUdmdHJVSWJFVmZ6VENkdDh2dDFTMkVEb3padlA4VVAwN1dHekxSd3p0RTFQS2lwd1BTM2lXU19LV0FDdDlPTEpnNWZrc3VhSXU0YkhBZUlCdW92R3BUYmJ2dWE3QzR6eE1DUDR2U1ViX09lbUhxTmVLV3NldFYydFRINEpZRGxqaUxxWUVUQ1BtSmJOY0ZBVEg0YXQtZy1xWWRHLXlQbTNNNGZYTEx3b3ZRLWZwZDJ0bTgxUnFlMFNSWlpQUjNTMFUwREJmYkJHRF9pX0ZMWU9RdFNIZzlndnhrVUlGTUpkREQ0bmJkWEVWcTlYSGstWUczZFgyM05PNHRtcnk3ZWlxTVpqRmVJZ2VUNklhNHNicUZkTUtPTU5BcDFtVkljNGN6YWc1R1MzZ2pXczNRZ0dLeHoydms3WkJHbTdCV1N6UUphZ1I1SFF0LVZFR1JFektQZVpSd0llSXE1TjBDOURpUndjQ2FZLWdUX2toUm9nZzFFWHlGOHZ0VjEzWmEtSGUxbDBTemhpWXRsbloyb2xUS1Z4SlpOemhpTU0wOGgzUDFzWVpSc212a2ZtSUR0QTVyWE10eXd1N2pWVURrRU5OcTJXMlVRMTc1M2l3TTJKaG10dnlDRDNtSG01bVU2eDNMVXg3Ui1lYW82ZUFYMkxZNXJKbzVvQXBUbWVaNnlhellJaV95STJNd1VWV2N6Z2hrY2xuRzJIOGV3TGUxSnVIYjRHRWZmZTE1ekFQckF0UG5QbXVWVlNRTVRLSmFPcFhib0hqOUhJdVU4RjJtank5VDJXZGpYSU5rT2xDT1VWQVR5eW1tTHNqN292aGNOM096Yk11TWhZNVZSSDJSb0lfV0Y5c0pLN0FKNjlMYTFsYmtSYnIybkZsUEJEVWF6dy1CdHJoQzg0X0EyZl9PLU1TaWNfZFJkUlY0UzFaT2wtVGt2eWNUYWl6ZlZOcG1OSWNZU3JYcnBlcFBYUG1FZDVCNjdKbGRCdUJLcHBwTGQyMXF5VW1oaTZxMEtQdk55RVFaQlo5SE12dGxNNG1CTkt3SE43bG1nUXI5ci1iVlZHVEpPME43LXJ1c25ZUkEyd0ZtRjYxTF80dzBjUl9ibThaX1A3d2dXd0RmbHNvMi05cmZlVkNobzFNUWV0eVBpRnQ5X2d1VnlYTnRudEhZM1FWZFUxY19uUUt4Y2o4bHF6VDUxTkk1cjdzUDV4bFp5ZGdTbFFlMXdpcWRiWEhaS1NQUldVZER6OG1Sd0xGVW1MNkpkek92ZFlNRTZxM1Y1UHJieC1aaXBDVkJtN0tUM1lRTXJIWDlqUHBWZGhMZEhNSUJfZmttRGZSb1Yta3V5TUdkNWw3aTRfSE5WNDJZNTNOS3RhYjdMcHhNcDctcFBNZ2w4dlhFUEw4TVJMRDRqa3g2UFowSGNZd0xaSWJFY3U2NVJsZTFMYVlibkpmTjFDUlNTeVI1bVVJbDNqT25HeGMySWtJelgtSE1qMWhlVG9EeHZ6OHl0bGVoUjMtN0dCQ3VON1ozdFQwRnh4MlNIZG9EUEQ1Q3BnMVRYMzdid2ZocDhReC1MTG1iYUo2RXAtZ2VwcjNOOEhmc1ZfRU96cjg3TnJJVzlUU1RaTWx3YTNVRk95bXNRTEowZjRFTERPZUdOaFl4VHRfVzdlSTFTQnluc3NrRWdWYXU1Q1RrRWJDMWdNeHpsRmtJOEZBUERPa3lQTkV2T1ZYbWg1c0dEX0Q5di0tSWdldHpHN2VTZi0zV1NWZGRoNzBrckQ5M016bGtJNXdRdUxHNWhfcFZrRWdHRFFDc2oyd3NYYThrN0R1MHl4QVJWM3lxNXFUMU9MdWZOMkR3R1lyOGx5SmlWMzRpWElYSllldGlYYUloVnRJYkJtR2E2QTluX3VnWEx6NU9LZW5YWDB2eXZmN0tIVzdxOEJUdldSeFhpdUZpRU5ka1VhRW5pQUk3Nk5nUE5aOHZCRjl6X2FxMzJHRnlLNDdvV1RfcWwtQXdWSUVCVl9mNV9CeVc3M1lZdG5GUmdLOFY2LUlxSUw0cGdadlZZMXdEQzBGZ0RXTVI2Sy1pT2N6eHdJai1xUjQ2OUtkaUhXWEVmYzZtVXd2RnBfcmItSTdlNlJOUm1lZ0RYcTdTUW5aOTREZGdXaUx6c1U2YThUMTJtRWkwcHBJaHJHMHJST1l2cGpESUszbXNFTXBiME9DblRIbHdWSEJXM25abVpsMXh3VVVuaE0zVDJTZDBGREdkUTlqY1ZfUUZHZnRYbXotTGhiLXJ3SnZIbjRmdlVxTHV5S0diUmFwWnJJVG1IdHU5X0t2VEJsaXh0ZzhKbjNsZXk3b0FlSkpEY1VsTWlDcHNpcmpfNlhuWnBJcWhHNFZURlZCUWRRRmpfSXE0MTlXdmMwMkJSTTdScTZyMDI0WkhVRnFhYlpRempGTVJLaXEtTHVZZkhLMko3TkkwSlVKdXBkNVFxWXVNNnFid3ZWcFJ6cGRabGhreVZpUkFHYVIzWHRJV1NiVmVpWEh1eHEyTklub0Z2dXc3Qkx5dzFBSE1INjQ2TXYzMy1rQ0xValQtN3YzNEIzdE5waHMwTXdMYzNlaUIzNjNqSVFoUm9aRkhaRDhFRXRyME5UUEpIWUQ1bTUxakJ0UHFDUDM4QTAxMVBRNDFJeDZzdGdud3RZNnFWUU5SVmZJU0ZvTWZ0QzRKcVF3LVp5aE1UOHYzMFF1TEVod1Z6NkZsV2JXSkpzRzBOWW1qanpEZEc1dm5qRlV4bWVfazIxWWQxZVFwdzdjazNFcHkzMHdwUzI2ZThZTWlyNHBRb3B1M0xlbTg3dExWN2pjNVRkVXhsNWFIQ1VIY3lOMFB4REM2YnRlbWZ5TklUY0J0Y0NxeGpHUUVxRFJGYXpfb01qZ2d3bmpBZTRUb1h2OXFzQS1TZTdrU1NIVXo2M2ZMQWkwN0VZbW9UeFJnNllwNmhQdVRzTGdraEpVRC1XQ1NVaDNJc0M2Z2c0Qlg3MXdRN3QyNlBiVS0zMGdTZGlQVFBhQmNzTnNxbGVReEktalFDX09NY3NaM1RmaWpQUTN1eXByY3J6aXFHVVo5UjBycC1UVERUV3c4WjVnX3ZJTkU0SnZIeTY2bDRBLWpkcFByQWg0REJyamMtZHBGdzVpSERLRGFKNngxU2hxb3c2X21KNVFLOGZDYkl2d3czN3BPbWU1WmdIWHBWUDA3NnNzMDhTLWZKYkludUpOWEszNXVZT0lpNXBOd3JtVDdGSE5SQ1JvUWlZdFJwSjlvZ1dhT2ZMUWpweXRMZUl2b1hkajFaWWZ6ekkwbFg2MjNjVnRfYTFINnZONHNfa3hCdUZLemVlUVRXTld2aVMtZFIzMnNhRGRZTUxEVVE2OF9VUTd0R2hkM1NVTWlFYVFIV2FrRjNOaFVDTm4zeGtqNkV1VHA1ZElMWHBGZmx6VW9OaTJrVmpzclpUYmhVNXRwMTgzN1VFQjh3ZVRRTzYwWHd2Uk5GbDZwNmJPdnFBaEpCU09XbTNxMVR6cHJtenFhTFhGRDFTU2hXc0tlZXM4WjJCM3AxVmdaa2k5TDVlcC1COTRvMTA3YU1SbnEyNWQtbDBvdUxLeDVBVHBzc2Uwc3Fmd2RJMU51eHZ2c0ZJQ3VMczZnakk3YldXTVhpN3hJTjdUVzdiWFlUUS1USUNnZ3FmQlJHRnVNTWk2c3FSNEVOWkhhVkxJR2owZWhOM21TSzZpUnN1a2MwcEJ6ZVNMTVFvUTBlc3FjRkRRNnVWdVFuRjludkZWemFYNnZKUjNWaDVsT2NoQmVwSnVQMTNLdm1za0t4YkQ3WmtNbXUzT1BFX1pJOFpfQWJvaUdkVUNlMUZ3Y0VlaE8xNmpDc2t6bTNERklNbmJEMktLWjVZVTFTSEo2N3JBYnpzMUN2XzE5bmhhZ3doNDdMaUpWVXVOZlhRTUVRcHQtMWw2bi1weFdYZ2hoM2dPS3pHYXJSRUY5S1B4WmZTTkJmSXVncHExVTRPdXRZZXN0cXB2QU1Wc1lQYmZMcXBIYzVaOWhBX013Vm1IWUlOd0pUQUZtREtrYjVnS1BlRlR2T2NvSExuYUNQRmdwd1JXeXo0STlSUE12OTJocEU5NThKNkcxZjAxMnhlbW1rbEZjaktuYnhxVlh5UGx6VzdvY0NJX1JMY3VMeHJOeEl6M2tCUEhlaXlILVFfZHBpel90S3hjUDctaWlDTnZoN1FTQ0dDd3lLenZwSU04Z0w5T3lXRDN4THk5aHE2a3lzdVpFN0RmM191c0h4aGhUWXJVTkJXV2hOdHRnbHpuZ0xGYzhsTzNkVnVNdXltdWU0bDVWTkRLMnJMY1FsQUVaN2RsNzl3QlpwVnJPZEUyQ1Zab0ZnZkctWUNYYkVGWlFuZ1l3WTZndXFRMU1Nb0dsUzhBWlNSeXM4dldaX3B6UGJXbjJwc0ZPVll4U2xCWDd4YnhGbUlmNlQzUkZMNWNiVndqTTVocVRxYnE2Rzc1ajRzbmdlSWxJcUowU2ZOLXJwUlRVVmJfM293R2JZWU1PenRrVzNjeDN4ZG81YjIzTE1OYnNrUmRCc2dvUVlvVm9vMU50cjhlQjVWMlFXM08xbE5RS1M4UFYtVU9QR2E4S2NJelRTZ3ZCSmhvV3djWkxHbVpfVU1oeGFUS2FUbTFHdTRDV3laT2d2U0xMVnd1TlluY0cwbkt0MEpDdmVwSUxEODBFem51dWM1OVpwcWxoNmxGOFdXZHVWc2NWNy1zUGY4N1RpSnc1dVJXeXN1Q0xIYUVrNTFOa05pU0htYVktR3k5WF82NFFfdHNJOGw0N3IzeWw1NXAtc3IwZlpidE1kR2MyNXNuV2piQmRueWthT01hUU9tV3lUQ2xnSUNyLXhMZEpVRmdxWDBKM2RvUW40bUlHQlNuNkVPTUFUWE9aaURpTXQ1WFh6ZVRfRGRPX1BQNVhwLXVUZHlVODI0ejZkZjJScExtSU84cVd6WUZOLTg0UndkY0ozakppN1YzWUp5WGEtSkVQU2VaOE0wSGxxQnRFamUwVWVidG1CWi1CWFFxYlVMTW5ZNXdwVzVTWG9WVmNnVC00NThCdVpkd3JaaUtzR2dnQ2l0QnIteGVPcS1tbnZwT05CUlRZa3R1aEN1MGFYcno5Sk9MYlNYYTVHSzAzYUgyN0VOVURwT3lVZmxuaWt1YkYyQmJwaHl1QVdFcXFpYkRFelFkY0l1LV9wdEotZ3NQYTN2TUdpeENsYkpMTFZMMmRYOEphbGQ2cWZwMmxwTFdzWVV5d0wzbjB1QlB1Nl9qNmM1T0JHYUlTbURPaTg1YlBVbTRHN1JVbzloU3hCMlVBN1BySmIxSnB1WmJFaWRyMW9tMU9VcHN2cThIVUNlWFFSY0pDcllqTklfRnpPUWVOXy1NWW1na2JVZDFBYjdpenRjTWtybnlnSk5DUGFFWXVpd21GMlpsaEZkYWQ0emo1bnI1V0JQTEo4bkplSkgyS29BVDZ2UXhQVWJyVzRwcGFNX1VnZjhFTUlrekxhYnVvSEM5S2xUVnZVSWZVeGtsWWdZOUlMRWdPNVRHenJSRlY2WXFjSnhMVl9HTE83X2ZlNkRqU0pkWlgtWV93WDE5Vm1DT19zV3VNTkFzdjd1VzVfdXdqR214d3BDRHFKWDZpSTBiM2tHRF96bE9OdmY4cVZZUkFMaFY4LTZ1Y1RtWjNpc0picUUyek5aRjcxU01aQjRueGdCNUJXRldrRDFqVzJqZlNzSHM4QjhhRXVSWUpXQl9XWW9aa2YtQXU1NVpfaFgta3BEMGhRelIxNnZWbHV4VWRVbnplUlJvdDdJWGF0S1ZxMTFTaXVWMGdtMERCRVdGZWZfRDJ6bGhrRTN2OE1QY1NNVVo3VEJ1LVpZTnJRb3RJWEtvTHk4bldpUGlQNERUQWNsUm5GbV9QcFdWZ0lXVUN1c2tZRW1kSDlFLWNDYXNwRHBMenBlWnMtR0JORDBZTFBIY2IwQmRBbnVEekV3Ql9MU1hQRmtTeXpYeWh0NjBVUjdNVE9ZaWJRcTF1cDBkR3lYSDZvTGV4MkstMmUwaWJzUFNQRDVsdDQ5ZkhlM0swSzhRZE13T0hTbmV6OExSQUYyUDg0TEN1U1FNVks2amk0REVjZFZ0TVVva3J5MFFSYzhsNE01b2xNd0Y5bHpXU3cyMlJjLWVMVXFKQ3hxZkFGVjJOV0NtV2xfS05NeVUxa3BWcnFfV09JaHE2Tm9qSV9fSHJmSElFM2VKQ3psRU5zS05IOGRmdmloaXdFTmdoYThHNV8tOFhGMVo4WGpPbzY1VjBXazRBMUhGaFNTLUNrcVNZRUJJM0hsZThqV2ZRZTdnNmttaF9mWmROdWgyYTlyVUJPOWZNQUV1MnpSYmlkVDJJVHhxNURHemlvbHdWSDZXbHBUaGcycHBxX3RPSzF6WDk1MkktUXJudVU2dnRjRnJqTXVMMjRlUjl2R2RUMWVpQkQ3SkpKWHItem1FNGoxakdIVkliN2swM3JHM3lYaVN6V3ZfeDFBek1mNnphZkdtMnlaYm5PTWNxVzRGc0hlNEVFUnFrZ29zd0FIaHdxUjF3OXpWU21UWTdTTm9lbzRiYXJ3MmZlNnVsYlFLaDE4MzVDZjVrSDRrY3ZCeDlEXzFtQUFzVEp5VzJkZkNGX1AtdUxhRDN6aVg4RjRpbG9XNXROZ25JUTZJTXlhaWtoYlNRemZQOV9KZERUWGt1N2J5Nnl3TGgyYWxYUVFKbC1aa1JiSHRYWFVsazhlSWY1RTdpN29xeWtmRldRMGt2MGRFWXQzVVpwTE1oeDFZR0pyYVQ4TmF2aFJ2LUdoMmtxVUdaUUxNZGJqREswai1zTnJzMFVGYXM4UW9nWGpLckdXQ2FfSlhTTWZETmhMN3ZvR1NqVk4tX2JLT2stQUtsdnY5QVNkX1k0U05WUGF4RVdXZzUyWjAxSVZwalpJUk5janREekR0WHY1c3hfZG16TXJnMk5oZ1R6Q3FZWTRKQ2RFUUxaaUpyWnlORlBrLXpMdi1KV2c3VEdxSWpaZGktUWs3ZXVEZ3IydldIT0NvaUlVOGtUeFZ6TGctMndDYUo4VWZNWENteTFiU3B2Vnpza3ZmdHdvTkh1dmptVTlHbnVzb3duNHBtRVlSTVl0dDNSY3RJeVh5bUJoXzU2cm1lelNQenNJY1M2aGtQb3JqSTFuUFlxYmMtU3BTdGI4NThwZ0h4ZEt1T2VYNUk1NzFWTUJhdzlOc3RoZ0daQzVZSEw1Z2ZxQzZyZXBlVFRBOWdReE1Oa1lsUGVGRFNjRUpjbGlsUnBkRk5mMkJ1T2oxRDFkUFBxMTNDSDFXVS1LTWFSQlZ3aExtMW55dGU3NnNHemJMd3hJNVZsbG9DTGhVZVhOeEhuZ2J5VWtxS0V4VENpUjhHbzRxdDZEZnFzNy1KaURfeDhwQ1B0a19ZUEVmU1VSY0pidzFUNGdOMHk1OUpqUVU1V0RLeGlEeEZXLWdFc1A3Q1pJWXFxSUtFWTFmd05VWkllTWtQZkNnNDY5VkppR2oxS1pqOTgyM3doazlDRTczOHd6UVdpaDBJVUFjcTdQOWY0UDl6YjM2MVpFMUc5TDAyRGtMWEVUN2Q1ZVp1bHBBb1NfYV90REpibjdZNHJ0cW1BcXVBQl9VQXNvZTBYbTlsYmpYUFdyTGNqMWhvbEFXM3lRMXZhNkFsS1FWYUVqV193czJNZlNMZlhjNVF5Si1VekNDRVlCaks2RktNN3FRS090S3hhdGFjbjloLUF4cmQtVjYycnB6SHRJbnJoaVAyNEV6dm1BQUY5WUJNVkZJdTVmNHdUMFJNMWFCX2RXNFlXNFVldHcyZXpOa19HTWJSdS1xOFI2dDU4ZUNybDhveTJ4RUk4eGJUWUlSNWlGTmUxbTY0X00zMG5LOTFHME5mbWpqYnltYTBKQVU0WGdfaEZQUTI4SnZ0VXJjRzA0UzVQZlV6aFlxZDlaWHFJSnBqdjgzR2c1RUJhamRZOXhpaHYtRjF5Ry1BNFRPcFc4a0lGWUpqZnRneHRMSTM1ZG1Ya3BwZlA1d05Ob09CUjJ3Y3piTkJmRGZwYmRSQzZLZFM2d19ValZ0N2huUV80WnFjWTktWnZjamFNWkswUUFaVjZuMi1TZl81VEd5U0VYOE1XLXduNUlaQ2VZZXpCNkVzaGduYTJpQV84VUQxSjBBbnNlT0lyejd5STFVQUVEWXRXZ21IX056ZzByTnZNOHhkdnVNMjdtNEtSNVJsamNweXlDRmV4NHJLdXlhVzdLQ19lSkZsUkdXYkxKYjFSNTk2UTNXOFVyMEsxQmRvYW1ReUw2UGtRNUZxNDVDZUp2NnpHOUx2SERTUTUtU20wX3VzXzg0a1lhTTZ5blRKS3RVajdybmVUb0hvbDN4YmdMMjBpRkVnTzhYYjBDNy1uTzhIbldsYnJuVkYyeTVtWndfNW1USGRJSGYtcmNiLUdEN29SOGNGWVAzT0pmcDhTdHZIbjFsUlJsS3BXN1ZBQzVib1p5N0NDQzhpMGtyOHNqenJ3UlVxb0Y3bGhFMGVRdXNjRUVrMWdsUjF3ZWpQQmFOSnhWZU05TldSRHRveldEa28zd2hobHhWNW1kUlRXbGFmUlM5X0U5WkJUS0ZQVzRybjRtZjNhZWZNNjQ3T3FZc2NYXy1WZHJLX2g4eUdUSnZ3eVNJV1c5dTEzWVc1c0RKckk5LURUbUZzTHB5bXZIQjU3NENvRGxsMXhYRU9FclU0VlJibXZmN09halFyLUxnOW52OGQtS3pzeWRVR05oSXNLdUNxWHpBVVZ5TS1DLW1hMVowTlBEMDhneXBzaEZRTlJhS3Fyd01lcElBNDk2OFVDTElMVGlEWnFXeEtkZFo1VHpjMGFpdkVhbWwyR3dOR1ZnbFpfMHJqR2FITVg0TVVmTWdYdy1abFpKX2Z6WWZzNTFUN2R1N1pKRnFyd2dGQlRBVGRsUjRTSkVQMW1TNEVwSm9fMGptb0ZZLThqTnNOSzJwQld0c3MxWDlFT1VtZUpnT1JpcmVZZ3k3b0ZkWDhBZTdULVNrc0ZnRmNXMVM1ODRjUUtJbndfS2FkaUZEUlNZQ29OZkY2bUtTel9VaGVReUNDSGFZeUxhZm9mU0VtZmZ1REpwV2tyTzF6Q2xRUTNYNXIyaUNCWDVqQnNOS0RFMGQ1TFdBVHI0OEVXUGNubkNXeTBBVUtqSWhUTXJ6enp2by13bTVsTjF2VVYwZ0tVOG1rWE9qSDZiS1NCdjRMV1o4a3p2VWNhRW5DWGNsbWJoTjZXZm10Y1k2dTE5eE5WempSOEMwa0Y3UWZGWWZFcVFQUW1ndmpPWHhGZ2RteU16ZElLT1VqT2ZYSEhVWDZtNnhSZTlEc1Vaem45N0l3NDJhNDBSNzRwd1R0b25SenlleWF4eGlYZHRvN2JUM2lVbXhTakRNc3BQWEJ3NFZ1UURRNmFwSEhidUExVWh1UGxOTnluMTMzV25kSWtMQkxGQUxvZF8xUXM2TDY0MXMyeUtzNnpxODF4eV9fT3ZtWG8weFJUMlhHd2o1R2NpSGh6UmVaTklsbUJUR2pOa0NuLVY3UFN4a0doSXBTMWo0TnF0S09GY2lyQ1JMaFRiZ1J1eG9nejFnWmNJV1gwUlhfem9QMEVNdXdfV0VqWmVJMTJfNVMzVjRQeFFtS0I1TW1NTVZvYi14aU1sRHlPRlpEcW9ZdVhWTkI4LVplU1RvcEhLaUJvZmxGajQtRXJiSTVoejYtcEVzTEZ6VmVIU2RCSEZibGFLUkxtXzFnR1hJcnR3Q3lEWERYOTBrRWhWU2UxX1U2TkVsUXJ5SXFVSlVIX2s2UmFwZG93aFlGUktfaTVSZ0psLW1ROGdYNWkyZl9NTHcxVmxtVElHTEw2eTJBelI2TFZ4cms0UHRmcy0xeHc0YzBfRHRQYzRXX0k3dFJuZm5GaEpBSS1GWnhZeUcxVHFaMWhtbUpMejhiSkNIaDNyQk56STNxRmtBaXdLSFN5YjJ5VWZ1dEFjZXRVZkc4eUtmRUNybk4xQUpZMWtyVkpVa2JTUUtKWnM2M3NyUTZFYjBGc2dTaTBUQXN5SjFRSDZFN0h6NE5vcXgxa0tnWlF4cnBKbi1tTFZRelNGamc4X0FpQWxEYzc0TzZtcldqT3NoejVBVWtER2VRSEczZEE0dHZTaTJxdFpaYW0wX2psUmVDeUdWaHE1amptdTh4R2s0a0Q5YUdLeDJmVVRpalNMSmdFQWttbVlDbTNLNkVZR2JDX284U2JjSnpRVGNoa09vNnA1dlpSblZyLUo1bUxaY0VnOHJ0bG1WWWZzbGRZMVVPeUVqR2xNRjgyZEQ5M0g1cFVSVk5VUkVoRVAzQTgxMFc4Y1NXeXByR3p6RURJaktZdmRDMjF1MENXaE1GYTRvN1VyT1A0M0NyRnZKSWNZNzROWHNOTWVYTk05ZFBzdzBpdV9HMjZ5cGhOUEZIb3J3V3RoWmozMHRLOVhHeDFCZzJDY0Q4a2VMUFdrOU1Ccm5KZGMwNWRWUE92TEUwX1JfOHFfYkpicDNZR1Y1YmY3Tm9LOTduU0pEVUFYVWlVZlp5cDRrZDQ1UjlPdG16V3J4RnZkSG1MaWdvZl9WdUJjWTBHa1lYeHNZTVd5RFN5SkdqM2E4bHJxeUF0dXpyVldmdjdweTlnVWRtZWlkVmpHU0RSUkx2eDhCQzZsOU12UGFIdW4zaFRFeEtJX2tzUkNSVXg3TDlBUkZkcUtBaGVweXpfZTlKUHFnMXVDbnVYcjZ4bWdtV1VxTGgyZ2tvakFtN1dxWTlyTUlSZEtUX0h5OE5McVpES2ZaVUQtcUpFT01LeUh6d3NBTkJ6VzhnOHVMeWNHUHJrSkliTnpFUE1NdjRQM2lhOFhhdDNIbzNzQ2VsZHEyWTVvMXV4MEdiZGpSbjIyQ0VZazhid0dUZ2JhM08wd3hsVWhXdjZkeFZianRmVnY5QTBJSmxvZ0swX2lwc3NWb0d1RGp4Rm5nMjZGLW5WcTFEbXctTTFPRGNjVDVXVm5tTkRWcEc0UDJGTGVweUN2QWhjZ0ZYUEVUN0ZzajZzT3NoTUdoTnZFOU5feHJ0dGMwV2dtaTR3aE1RVTZYTHVmS1QyeGZwNWU3cFVoQ29TaldieURMUExKZ3dVRzZpVkMzNXZJTmlMZVV2MlpzU0E1THU4NmJ3V2laeGs2cHhlbWFweEgwWFZmU29jZ2E0bkltR0dtRUdfWm9ZVHlyZ0syRm5nRXRXandFNEtEaWZFVms3d2pEWkRwUEhEZG5Kb0x1d0FWNk10WHlqdm01Y2ZhTVNlV3Flcnh1dXYtMHhDVXl3TG42WDJhbjdCVXJDdE93ZmJNeVRSZ3FwLTJ6Um9pdUdVUlA1dEs4bkR0bEJ1YXRnaXVRdmZCcjZ5RmpXWlpnYkt3aUlFeUxKWjJqd2hweVMzbEhfak1vY3lWZzA1SkZHQUZxY3R5NFFPTGQxT0F6TEpDY0pIalBqX3NQdnRGZFNVa1NvZ2IzQTVYYmY2MzdGVVRnMDI4ZkxuOF9vWVpjbGQ2MHM3ZUFBSC1sUDJUV09zeUR0UlBIckJ3RGFtU25DNncyWmxWRjRNbmdOX2duNWdnU2ZsWlNRQVl4LVVHWFhjR3pYX01SZURYaXZYMjlHNF9LaGtkSnA2V25BZ19ydTNWTGhPTUFSeXpER2p0UzYyVlYyN29fMG5GdzBKVkU3My1vYWlxTVVoanNqWHhMUlZ3Z0NhQ09IWWVUVlA1VUZxSTFpZXl2cnlIek8xRUpaNTNZSVpBT1BYMjdtNmxUNlNBa1VzV0NPTUZmR21nVTllbmsxMnVtU05JS1pUajV0Y0Y2ZjY1ZjFQaHk4WFdITDYtR0lNVUMzVmNEZmdqUVZXUkJ2Um5ILURhdEEwdEc5UERzQmhsZ2VzblF3QlF0dkgxR0FmRXNkNnhsTUZJOW5sSkp5Q2pzZWpZV2pHRE1rVWFfcGllelVuZElpck9qS05BR1pTdzhRYUVCbXF6SC02Q0hTZXQ1TThwZmI4NTV4ZTc0RXNpVFZWWjRGNDh4U1M1NG9Zdml2X0VCajlPUklOZTg3Q3ZUdlZ6VU5vQ2ZWajlrb0Jub1BmdmFQd0JRdmZSYzJmbE1TM3hTOFdSRUpvbUkycXEta0RLbkNfbC10QVZzR2FPS1VpTUJQem5fa2RLbWxEVXFWYXp4XzJPOXIteEVKM05tSlpIU2hOQ2dtNTYxZTl0emJVY2Fud3hBcnhISlRtbk5RMmEtYlB6di1Sa3lWdEN6Qm9ualAxTkw0elJndkNqdjIyQV91cWJzMXhqRTVSOUJmSkVEcE5IS0xfa2JwZnBBV3M1bTkwNDlxVDkxYTdoQ0tIdzFORWlpd05iNnRNZWV3OHBLc011Znd0S2VLOHNiMWxVSlotNDRleTlxZXhGOWNiR2tHb3lhcGxBNTAyUTdHWEoyWlBNcEFsdDBsenBhamp0MVlmQkRka0tEQTEtUEk5NDFaRDVoOVVMbUFPSTJaUllWNDNWcUxSaXJYc1VIdUh5cnVmLWxmX2hkX2loTmpIcnVVbnE5ODktcVBVOGhtY3R3b1RMRl82eGROWnpuc2VfSjNLLVRQazJKMHZEc2pFdHpPTVU2c2VYWEV2bC03LXdJTG1QTm1zdjRnNjYzVjBpUFU0enFaQV9FSlZTQUdmZ3YycUM4bk55QUlzZ25uTk1RSXlCaS1NQkwzbVppZnVab0s1aHlvZ0JCSEsyQjI2ZlkxMEFnclVfSkN2MlQ3UVpRaWZUTk56dGtHTUpvUDh3RVpkVnlaTlRtcXVRLVFZUG85TmFjME9OSTdfOENDb1pkRWV1cFhKUHlrR0xzOUt5VzVqbGxmNzlvNHVnb19rZl92bnRaQWFxVmdyZjRrakNFalNBZGw4NGZEaEEySlNCaVRYSjlqY2owQUlfT29XaTN3R01Ja3Z5NTlkNmxJRVRFVW5pd2NNRUtOVUZ3TWUwS0JEekhrOXdCN2Z4M1BiMVlDdmJWcnRVM2wtNDd1aFUzb2c0TW9VVVBSWE02VkVnUWtpcWd0cW5ySWpISUZOM182RmpnQXo3ZjczVWJQM0FmR1ZuWUc5ME94Ui1NUGFmXzdEcjVEYVhMUXkwWjVYdGJULTlJSFFNMWU5M1ZsVWFYVk9jYko0cFc3RFNpN3lwZ0VzUmhlX3BGcWZsNF9UeDFzY2dIWlhpaU9XZ2pEMmczelFRYzhEUDZPVUVjQ3N0TFdQN2RRVVdydG5zTWNOV21pYXNaV3dJWXBKVU9KTGJwRF9nZW8zOUowUDFZVUt1WEREN0xJNnFzRm84VFJqcmFnMjl4U1B2MVF6VmliaHpPUkJTRnRRdVNFU1l4Z3pzUTFLT2tPdk95cVJEdkE2TTJBWTgzR3B2aHc3emFkZWwyb01zQVhITU9YajhHT2Z5R2d6a1U4T1Z1bEVXOWNsRlM0bm8yNTNZaE9HNmFFU2J1TFRvQW9MWTF0RVBWWGltQS0wd25STy01TW9uWmtWQjdFOU9LeDVzeTlGVlJRc2h2VWJGTDRwbGFoYXJwN2FsbmE3S1dkLWthNzkzczhzZnJiU0Z1WC1QVF9LVjFzYzNNQnVwWXhKUUdIQmdUNFhuTENjMlZUdTA1eGV3WjNaUW5ZakRHQlpvY3V0SDVCampNdDZQSVpETVgzZHJoOTFLVzdUaEJFUHl2aXF5N19ZMEVzUWxnTldyVlZBLThWR1AtRUNaeU1kZ21zRlVVNTFMVFJNY3kwc0FZSFZMb1p1VHRMSzEwWG8wa1pmc0RaQXNYc2JXNTZ5YVhvak1WbXgwdDZ4NGZlYm1udzdIaURwQlhxcEhiejdMYXpLMnVtNHRQZlJIYVlLSXpkRjR3aGVMSHZlSVpUSHQ3MGdrWENZZTR1NHN0MkZvaUR3RlAyM0RPb015Vk9UV0xyYW16SXAwWXRWd2Z4cjF0bWlJeFZfZ1U0ekJpR0s1bXhwS2xhOExVcXdSYVlWd3Rib213QjRJdjlTM2lKQ2xua1Itb0x6bTJ0cmNlMENBbEVuVFVPXzF4NjM4SEoxS2Q0aXNNT3NCeDNRRlR0Zlo4ZVdYZ1dQZFVHVktOWW9VZ0txSDE1NVF4T3Nyekl4aDZXbEt6d21RTThSbTVJNHJqZ0pVeWpSMHdhNlFyOUxFcE5mVFpjYnQwcWIybmRXOWsxQlNTazh0eUV4S3NsSzJhU3lhMWt1eVFoUTBxRWxsSUFCemNEU05kb0hIRUIzaEhWZ0tNOHNLcDBxNzFIaXNZeDlaTTZzeGxUWm5KdG1ZXzFvZV9qaGVmMWNlTGswYlNIY0ZlaUpKZ2JwWUhRNV93S0ZuSlhPa2wtWkRjbjhvZ3NFaVlNWmJfMUJ2OUM3VFdmOEFRUGMtQjlKZHRoYk11Sy1IODUzS01lSUpyZlI4RTZFR3ZWQ09ubXpaeEpsVlJmQlF1ei1kZy1BWVh4ZHpnU0Z1Q0hOamNwbmpiaU9ZZVh0STNFaUpfaWY5b0lJTHU1cW12R1I1M1U5ai1SNUQ4YUh5UzRTZzctS2hnWjAtNk1NbllfaVUwbjVRQ1JJV0I0MFVmWExWdVEyVXkxLWRwNnJfdlUzQzdvOVFTTTdTc3VXWVNHTzR4RGNjMWEyckw0X2R5R0dMRVlEblR4MTd1ak5MVExKYU9UYUNIYmlIUkhuQ3I3a2R2eFRaWWhOeXFQRjBlUElkcUlITmVGQ0FkcmN0eHZhZWhWMzBGek5WMXpJQnRYbjNJZ1FfRTdxZDdBRjVtN3ZpOWdfOEtUSGMyR0otZ3Jkd2ZNTXhjdkRsOHc2dmxOaFY3eDQ0ZXBqX0w2dnByZ196SW9NcHZsaUI3WE55dlhrd2hKeDVtUWU2LU1rT0pOQWhJY2stU0djeUhuLXZjOWl2dkxaWVh5WXRjZVg1VHJpQnZ6cktCM3pVOE1Ib1BjZjJCWmxJMjJ3QmV6bjNoNS1qQm9mdFhYR2UtWWpwMUZleUFWcDhtYTlON1Z5SjF3eWtXNzBnREplNlZYcE5aYW5lSVQ0T255ZnZpTTZiV21IRnlrd3VnUHROR3FPcXdzSVpSYjdTai1TSzRTYmN4M0ZIY3VlVTNsX3VLRWZLdU45ZTAtR0NlVVp0bDNzYlA2dUJvNi1jY2tHV3NGa3k1UllfWVUxb2lWbkV1ZGJPMmFHNWJEeS1va3NvM2VyUkpGZzBCWVhiWkpHeC1XbVdtWHkwTUV3RC1mZW9zSEdWdE82WHRqNUlwWVJnVGdQZ3puQzgzVTB1ZlJlSVB4SXc5aUtDX0hIMVUyQVJLMkdEUG9CdHpYeC16T3F1Q2NHUVhfa3dIdF9RRUJBdGJvTUt1VnZaWV9lVjNHdmVFZG1DbU83LW14S280NTM3UHg2MTlfRmZ5NGxKa2lnN2hhNE9JYmJENUhaZzFWdFFBQWhQNUtuVjkyVVJFbExXOGdjcW95ZkVEWjlWaDFPSkk4MFdaY2YzNHA4LWxJcEluMHV0bXdNMExjVkctUWhLcjVIc2tmRXFmLW5VMDhQRFd3UkRjTXpHUDFmcXdZVFhpeUJtMmxzaFlWQnRzTU9HaWZiMDJMMVpGbjk3eEFrZUZPNjhBTWhrTmZLQUl4TFJyWVZONU9hdnlFQTB1Y0RKVEdLWm54MmZPeEh6a1ZiTDFBUEhqWThyeEdBU0UwNEdQZmM5OGRKTjNtRF8wQ2NmaEpTcUJzMFpJcnQ2OVd3OFFqelJ5ZFhZVzgxVWlmRnp2VVlUdlhrWkFJT1JRNGU1NUpjbHVZZmttNFRyNzF4eTRuWW9aX0IwMklfa2R1LXhwMnJ6M3o1bEZHWVhCQUJQR082TGxLc00wbnhtN21HVVZldU5MeGxYT3NBTkV3aFJzbC1hYXM0RjQ2a1ZqY1ZMTy1vYjRkUHRUWVNrNXBZSlRZaWFvQThSX1UxUGRIc2FwZzZWX0tVdm51bE9hZ01NX1BZVjhsSDU2bVFMVWFDTXNNZTJVeGVDQ3R4UHpQN0t0aWZaaEpkWFQzSWYwZHY0bVJib29ZUGwyMFhJQVZOeG03QU9JZV9GMjcyajBUYXo3M2VQNXd4OFNkZldoUjlBcWlwaGNXMEhGeHJrRFRXQXhxa2tXRXlyWk9wejZBSUo0MWhBeWZ3dmN0LnYwZk5jc0h2VU1ua1Z0b1BFVXVORktlSGhEY3VIYXNIeHBNa0E0SktCZ2s" - }, - "StatusCode": 409, - "ResponseHeaders": { - "Cache-Control": "no-cache", - "Content-Length": "677", - "Content-Type": "application/json; charset=utf-8", - "Date": "Mon, 16 May 2022 18:15:20 GMT", - "Expires": "-1", - "Pragma": "no-cache", - "Strict-Transport-Security": "max-age=31536000;includeSubDomains", - "X-Content-Type-Options": "nosniff", - "x-ms-keyvault-network-info": "conn_type=Ipv4;addr=73.83.78.150;act_addr_fam=InterNetwork;", - "x-ms-keyvault-region": "westus2", - "x-ms-keyvault-service-version": "1.9.395.1", - "x-ms-request-id": "45f7cf21-9433-4b25-842a-dadea9bd5eed" - }, - "ResponseBody": { - "error": { - "code": "Conflict", - "message": "There was a conflict restoring the certificate \u0027https://fakekvurl.vault.azure.net/certificates/certRestore3931096132/a0aff3fe2bf644f1b0bccf83e3363d5d\u0027. This can happen if either: a second certificate with the same name was created after the first certificate was deleted; thus trying to restore a certificate whose name is already in use. To fix this, rename the second certificate to something else so that the restore works. The second probable cause of this exception is when multiple operations are performed in parallel against the certificate. To avoid this error, perform operations against a certificate in a sequential manner." - } - } - }, - { - "RequestUri": "https://fakekvurl.vault.azure.net/certificates/restore?api-version=7.3", - "RequestMethod": "POST", - "RequestHeaders": { - ":method": "POST", - "Accept": "application/json", - "Accept-Encoding": "gzip", - "Authorization": "Sanitized", - "Content-Length": "43523", - "Content-Type": "application/json", - "User-Agent": "azsdk-go-azcertificates/v0.4.2 (go1.18; Windows_NT)" - }, - "RequestBody": { - "value": "JkF6dXJlS2V5VmF1bHRLZXlCYWNrdXBWMS5taWNyb3NvZnQuY29tZXlKcmFXUWlPaUl5WVdabU5tRmhNUzAzTm1Ka0xUUTBZVGN0WVRjek5DMDJaalZoWkRCaU5XRTRPVGdpTENKaGJHY2lPaUpTVTBFdFQwRkZVQzB5TlRZaUxDSmxibU1pT2lKQk1qVTJRMEpETFVoVE5URXlJbjAuSEotNy1sR01tX1BRR1VhTkl5X0doaS1ueFhRczFxVUMybGRMdkNGSzZsNTRjQTlkb0N2MHF0QnM4aUlPWE5jX0JBQ25ZVjVnT0VncTk5NlNrOHQ5dlg3bTJtMXl6RWVVQzQ0Zk1sSm9jZk81c0VvVkkxZUkzeDluRi1lOVJTNFRwZzRfRFh2czRNXzREZjlQUkhLd1hKQzctLVVCcFdMMG91RHRhLWFZelJvVXRLX2Z0eE04a3h6Q1FpV3FuVlNVSTFZMXk1bjNmWjVxcElSUmgyZ1hrWlJnRTg3dUduUmpqbDJVRVhyMlJOdjltMmdZYnpkNEo5eS1HOEQzTGhXSEE1SUZ0WnRjRTVoOVJhVVVsVGppN29aTUxsZUZfa0JKWUJmYm9ZRFFJam12aHZEZDFiNGJxNms4NUs2NldvWjZ1V1JoNVVCUzZiRU1zVVRDdUpCT3F3LkU3UzE5M0xVWnhLeHJSZnB6U1JKWncua3ZwTGxDSUkxU1NaUFAwR3lLZ1lTU2FpZjFzVG1kaFVvRFY3UTFXaENkTUQwYTFiQi1oaXJoWGxPYkw1YW42SlZlZGJOclRfQjlJRkgtYmhwVXB1eTVBRjJQV3hzWGdMc0dWMGxVdUVfYWlkRVdjM2d4d3Y0VFVZY0tBazlGTHRTSjJMdkR5RlhpanhaMVphdnh1dW1RT2g1clc1RDJZTWVMc2VEcDktdkJDblJpVEk0T1o0N0FkMjhIVEl5eDNnR0xXMDc4aDZBTElKVl9LMW8teFJyUm9DRG1ReEFjUldhVzdOakdBVk5kbkZIR0xlR0dQYW12NDdub0x1aXN4bGRVc0pKa09ZQm44V0VuU1hjMWpsS0JqTjdveFh6Mm5CRTNicmp0b09vNHkzc0ZoUjYzY0V5cGcwS1Mzd2hBT2JmaHc4ajlIUkNwTmVjTUEyVThPZHRWTVlwOXEtM2hVdXZhd3lESng4Q2phcV85ZGdCTVp4MnRKTERwZEd2ekJ2SGQwaHBYdTZ5RFNiZVNyalhZMzlIRTFVNWVOSTZIVUlCYnI3UUx4N2F4UVlsSmdUQnlSQjBDLUM3TTFpVC00dUtYd05wbUtvMkNBS01QM2xfT2VzQ3NRclBRTXN1eGRUODlSZmJ0U1JacVd1Yi1vNUNVTWdTTHBmSlFrbGNvYVhIMThydUxmRHJJSGtGeFBhcGtkRlR0dGtINjc5eWZXMHk2N1NQSWVVLUUxVTdENHlDRE5vNUpROW9ka0M4bTFJd21IWUttQUpQRDlmd1dKNlFRLVM0Vnc4bU5SdjNDZzRPSzROMzN2Ym5ibHZaS0NLeGNxV2dnMzlyTk1pZmE5Rm1wVTJsTzNGSUk0dUFkNFBRTjVGd0sxZk5zOTlYMWdWdDJoOUVRUFVjV3EyeUVtNENsUzVmTndBbUswdXB1MVJXSTQ0bWVLRTdBUUpxeWxNSUdja0s1ZzFqZFRtQlc1VTd3aUxQZVVBNTR6T1ZKREJtbm0tVjV5TkdwR2Z5bmtyUmFLdDlFN09nZGFFNnFkWDRYMGRBSHpNb1Q3QzJYZ2NaY3RkeTR1dE1ZNy01UEUxQ2tKdVRTNmw5a3d0ZTZpc2hkazdFQ2VzcWJyVkpSeC0zZ3RiSE04alBoVHRrU1h2Njc4aklBNy1mZG42Z3ZORVhHczFZajJFQmNhTUZhU1FtZF93YTBMQlNTaHdLdGRYdjZSVXVZZFpqM3VldkVPdHc3VUFkcVBjdkExV0swVnBjSU5jcTBLYzkxQlhYMXFGRzdVRDl4MTQyM01ZN2NKMXlVMDZNeUs1RG9rY2treGNhSlBJWEFlQldodWpTMVFWWHdiZkdIZUdpMVR2dk03d3poTzJXaXIyRVhwNUhpMm41UlVtUm9IMXJHUDRmeEtRemYwTUkzRnZnSHBpN2tWeWdVaDVZbXdrbFVlVGxTQU4teHlRYnlFWFFlMHVaSC1TaEV4ME1XRzZLbElsU2RGS0sxNEJCVERFVE1oMHA3NF9nNWlNRUhLRDJzSWF3dVpUTWF4WGNGcFhlLXdFZkxnLXEwYzh1NGYzd01qVFRfc2pvOFRkM25laHU2eV9SUk90NkpRbURrUFBFdzNzbkNIOEJSRnR2ZGFWODZWYlZFc3ViMmdZZW1KTUk1Q24yTDgyMTZLXy1UUHRKWnlJcXNOV2pUaEhfMGpicXhhMThvcmNrTURKbVBSLVQ5am9jSUI0elgwTVR1SzN4bDR0UnFTUW5wRXZ0WUstQWdYM0R0NlZqdWlYQU1EMFFKX0wteTF6dVpUY1Z4SEhiVnU5LVRDb2ZiU1dRR0ZqSDFIWlljYURsa1BKNVdfZEUyZ2ZDMEFVZzZDUEhZcXFlckxvQzZfd3lTLU91TDFLblR3aUZfRVh1WXhYUndyNHBMR2VCdG1jOEVmQVc2XzFPdWxlS2NrMnBTcjdDUk0zV0VNeU5WNmxGT0c3TVlNdE1aNHNtbEV4VGF6ZE9RUEJkRXR3LUJXbnFsdnhZM05ZeUJWMkRFME5ZdnMzaUZ1TnhfTXhxZ0g3UzFHdFN2YW0wVWJ5cFdLRHVjeDFmQ3h6WXNST09SOGd1Sy1QU0RwVHFuX2luWWJuTi05dlFQQ3RzcERHR1JHTnQzTUQyVlZRS0lHTHp1NFpaa3IxRlZvRTZBemtabUEzYjdLVkpxNlItdU4xZHNvQXl3OElfNjRpVFVBbVdWYTI1aUpkdjdLQWlQYVpmbWFuM1BqN3gwSnJfRVNiTGRGb29ZM3otQXFTNmhjZ2dVRGYyVmMtUFlGTXRnZEhzRzlhWWRLeXNLYmJoTFN2Z0laTFg4VzJGa1J4OTVFTk12UERsR3ZLYXpJdVVVc284UDBteUR6SDEzbnRwZEU3R2YyckVRMU92WllDbk5IRXZmS3BocGZoenlZY1kyTFFPQnZQWEx3VnRzVWdFRk5yMzJ2S0RfVEVuSmFNN2RWS043Q0NzWnV1S0dqNVJjRnotR3dzRFVqZXpwajR6QU9neV9Gc1FFMmt0eE9SYjJWVTlZbHlOM09BM3kwOGllRUo3VkR3cnhmNzY0eWZFaVZvTktUQzJkZlZtazhrbGg3VWd2d0F4SzQtQ3E0TXhKcHl6YXQ2LTdBdUlIdloxSlM1NWcwQmVtNXRjNlpFR0NaODM4MkhDakNVbFFvSTRIY25MbE9WQS1hRVAzRGNuc0NYd3NjRU1hYlU1WjJ3cWQ5Qm9mQzg2U3pYa2staHFGUlB5S0lIT0FLZVVId0QtWEhhd2ZhTjh6Y2ppRURPclNzbnJrbHQzYTBNRkljeVBJVXNybXk3Mlh0eGczRmttNmJMSlRqeWEzWk9BOVV2QkNDVnZXS1FQdzBjRGNqdmlhLVh4YjZmWC11dU5zVFhXZUhkbFlSQnJhTExHeGNLOXVrc0l0dDBFS3FVUmJRQk5Ld3lWa29HSXNkejNWMlZEdmZoWlk0cmhCdmJwdFo3bWF1enBfMmpMTU82TEwxTi1xV2g2UnJIWFlfTmJOd1FCZS1BV003Q2k2bUFYX1VwRXRRUGo4T0NwYUtWa1N5ekRCUkYtRWVoOXM3S1MtemZVSWNRM3B4V0NnQXNxblhlMHNKQkltaGZCUmdKTnBnMFVzOVZpY2otVTdPV0FuNVFvdWtqREhJLTZjM0Q5dGF1ZlRVTEc4VWpVdjJTYzhVamVLdmY4dWJzY0FCaVh6WTAzc1dOQXFQdW5QSURPdVZKOHRPQ2N3RDdHOFNQT0pPSTRjaUVScFNOUkFoT01RNXp2Z04xUXdhSkxpdlpVNFNtMUVCLWZLcC1fTXVBOXNyNW9Dc2RpQVU2VHpseFpJRGxZR3g1RU1KSmRJWm1FdUx5enJxRnA2VDNNeVFNdGlScFV0LUk0TDdpSENYUUphd20yUkhQLVVsdWJyMkhxVDFHaFFnTk42dUxKYXJCUlI2dnJRT2hJazJUME02S2g5czBtaXpNcTdsTC1XaEdTXzdpOTZZb0lMajNkVFY1NTU0bWtRNlRIQV9NTUpYMU1DTWdPWHZfb1M4QmdVdHJpTVVUaWVUNFdIeGN6bFRacFVFQXFNdjRpSTFDQmdnRHY2V05pUVJxN3pZb21mcE81cVg3Q25jeUd3MXNiSmctZXhVQUF0S3F2c3BYYlkxcDZzRkZseVhPNFlQOU9IV3NLM1kyRVBJSk9FSW5GTlhXbmw2VjlJdE82TzBMZy1kaTlpTGtlaUJxSlhWNGhMYURBRXhIb3RmOFVkaHNIdVFPclRLWDFuU0xzSVZmMmZROUhCdzRYVVAzWVZpQjhvdDVleHo0OF9UY2QxRnpOWk1pcE5tMmtLTUVsMWYyU1BjVlotX0o4ZWpId1p1ZGdkU1h2aHM3MmNRVHNBVkRGS1loSDFkRzBNSnJwbnhkSW5GZ0hWN2tTbjlYMGEzRjJOa1NldWtMbGJfSzEzQm5oMzhlZmRlNHIweWtiQmpNR1c2ZHhoT2RGcFllVmdmM09GaWkxd3NGME01a3ZYOFFBaEkzVzM0MW4zcXdlWjludnltWDBhblNJZmVQbEpwU190X0NuVVBIVzFtTkVjNVJmWndKYkxHYjJES2hKaUx5LTJGZWhFTHdvTVJ0akJtcC1CSnlBX1VkcDBEdmljUk9hd01DS2g5eWZJa2NQQnFWQ2E3OWduaHJ0NTlYbzFzNW1kSjdIN0ZWM2hjbjZwaURFWWhWRnBfaTNrZ21xQmlUV1NnbnlLc0ZkX0xIS2RIaFpLZk9kN2o5X0d2OTBKVk1ZVGZOTVh1NUJjR3ZIUzN1M1hHMmE2bDBXdHBGNTdCSmdCZUhYazBIOUgyYU95T0czdWdoYjR6QUFwN256NXJUclJvT283NURxTEpfdkR6bGVBLXpIX3pDQnUzTTh4UW1WZ3FhUzN2QllzRm92MHZRd2VEU29mUW90VnNRMHJTNEpvVnFEQzVZMk1kaWM5aEs1OVgtUjl1dkZQUGVlNURnczBHdk9ublZnQ0I5b0Y1djU0UW13RjVBU01teEJaVkR5WHYwNi1McTlkTFBaelJHaTVVbC1OcWMzYmI3X285aUtTZW9xSmxjRE1ydURyOFNKWHl5YTJLWTZtTWlMRzVMMmxLUTFvQ2dZMy03M0E4N2JHMHJpakZ2QnF3dzdvY3NwaUI1YzE2VFdzb0p2V3MwY0JYZDFoRmV1Z05xbkYxeHVPMjhoNnpFQjVvUGpQUjBnYnVxM0I5eVU1dEZjQjM3Z1dreTN5SWc3bTR6S3g5UFdSMnZnOXlKTkJybTY1SjNNaU1xeXlzWTJKR0gwdjk4WmZfYVNaT0xjYWI3UFZIcjExTDVQTWtwdkZJUTB2bi1FVEVobFVqVmY2b1dndXEzSW5xMHUwaHNhWDdDN1ltV3ROSzdwQ3VKa0xlalVLVE04TUFqaWF0X0dBQ3htV3lxdmM3N2VJTmtUa0NENmdPWVhYd1JmNUQtYkl1cjFyYThGeTV3QXoxd2VmRTFWa0YzQmhTTmZnTi1EczZONy10Zy1tNUV2X1hlT2w3NGFvb3lQYXFVWFNadFhLYkRiVjV3QjAtemdidVdXc3pia2hvelREbngyTmlOak5Sdlo0ekp1eEp4TWNtRkUtOFQwbFBmcVBVYlBoeFJ0ZTZscTFUbzhfcnZiLWkxbUc1NUxfY1VUc0lLeHF3REplc3dveVRfLTFBUkRERDJXWDRPa3N6bmE5RjItQVNWS0ZnX3JjZDJ6V3F3eEhyT0xheWlmZTF6OElPbmJLODRYbVBCLWZJVW4zWG93ektSQjc5Qm1JYTl2UFJGRlNTejVuZ1V2UTBCVHVaY2ZuUXBNQWF3TkVBRnZaSkNRaC1vaU9EcHNLOWtuam9nTTBPQUNSbWdvU1hwb2ZGbnJQUXlHOVBtMHhVNGhzMEZLMERmSFpKWHBhdFExX1BiUmlGRGlwMjZKRVFmVE1TT2lGRVRUVklaVnZzaHJ1TGJoc1FxU2hzcmJEa2tuMGRDRmlQNDNxLTRycENNMmQtMllVaFpCbFlnVkRCT2JCOENrd0dQTUd0U0QxakZuZnJycm10MDhha2NSeXhBLWdSWm9vZkpkdDJvUm5wS3I5TklGeFZZekM2aXlySWxYeHk3d05UdXBDMzdhRFZhQTNBUlROaDJZUFZTMGhVOXVkOFNUdC1seGNaWk1BZXF3Ni0weXlvX21OSXpUZkVybHlSdTIzZmdJQVhxajNtemoyN2FSeHZ5QmhsZzE3Yll5cXpycy1kRXBGcURCbWJXWWdVN2hYS1l2Z2I0dlAxU0lrajlTUzB1NnlMNGZXYWR5RWt2WlFlTldzdXJqMzZfSHNqenB3T3dhOER1SVMxWVBfRDNtTHBhZzBDaEpfcUF4b2ROQnU3azBXeTMyV1FhQmNfSnE5OW1UWUl4OC1BRnJGbFJYTUJHS3ZwaE8xYzJCd085S0JGMkU3dERRRkpCX19DMHpiSFVKS0tZbTZVczNsLXpxMnNKX0dETEphNlN5dGZYWFI5ZVc5M2xmR1p2SnFWLWNheVBFQkNHd2c4MTdpNldxaGdkbFVtSnZHYjZSTzNBUHRfSGsyZjNlckJzVVFuc0RHcnQtdWFVSlRJVVZENTkya1AwZUFOU092QUV5V0JLVEZhd3FQSVZEYmpHQmFqS0Q2N29tTWtLX0EtRlA0aGpnZFM0bDk1a3JIT3dLYUxOSU1TRTNQN3ZYejVqNHp3MjAyUlVCSWJrY1hMdmxtV3VoWVA0QnI1bTJESEVESzVfY3gwSHE4Y1hoYlR4b1ZXcGZPellOY2FhcEx2VXBrb3ZKNDFqLXp4aW80ZnI3R3NnOFpQSzZHWU5XeXlwcnd2b3NqUHJZMmJRYzVPWURhN051aDREN2tJUk1sM0tvX0dNVWNtbU95aEpjUV84eGtMRGtreTlYSlFONWFHaUlFRkpQeE9ibFdWcGdfNzR3TXVUTjVLdmU2MUM0ODZBQ04zZDRWbzROZVZrUDBzU2tpUTBHVk9HMG9LbERUV0pPUjVZdlpab3J2bjNvbjFESkE2SWRvdGFENC11MTRYbHRXenlwNlZHZnZMcUc3eXVUUS1Lb1BVaEFZVUhjekREaUw1RUpZQ3NVQnVIbWVMY1pmR3ZIcUx4ZnZsT1Y3NUU1cEcyRjd5V2pjdWx6X1JyaF82YTFMT3lHOXZDLXNNeHFpNkZ6VDFfT0ZMX21xVXU4UnIzTnZObHdqNHloZENaQlYtZ3VZbGQ5MEh0NFhsZE1od1F1emZ0MEUzOWdXTm1yUEFaRENoLW1VTGxBd1JYeF9zRzNOUmh3YUNnUl9OazNCU2Y1Z2RTejk3TFYzM292MGw2ZDhuYTUtS2FaODgydmFFSXVyX090cVlZNlJzYjNkc29McXAxR05vajZyem9kLV9VOEVaYWRfdWhTRkNUZ0tWMFNCckZOQjIwcl82SDRIQlF3MURVVWFjUEY2UXl6V1l2OVdhTm1YeG9KS3Z6TlNxSENDdmw4RGNLbG5Yd0Jpdzdkb2Nucl9RVl9idTVjQU5DbWhlSkN3dWNpVVZ0Zi10TjdvdHN0dGxBb0k5bmJqelNhN01pZGpOMXRRVXZiTmxoVHBveTFjRF9WT2RJLWsyTHhQQTNwemJNaEdnSk1QaHZtM2p1R2tZS2VGVVNoLXd6ckpJLU1jT0JnNUtZbmdBWmNpTTZ6SjFmd0pfODYwNmRwV3pucENxU0tWSTNIU1ZjdVU4NUtOZnhEREcwSldQRzRYdjBVY0UzTUtybzVEN1M2Sk9keDNuRHRGRzF3R1EzOWhfSkprMmlmU1laLXpITUd4TnAzOTVZaTBCcDdyMDQyVFBwd2dvMVBIRmtWQkd0SkNFTTl1enBQdmlxX2V0a2xUR3lnUy1wVGg5c3VhMWNsd2xiblhHSzNZUFNCWWZIczNrc1RwX002U1Vrek4wWTFQU2JQVG9mM0xVcUt4UnNaYmFYYXZ0VVNVZ3NoYmU5eTl0R2U2NTJjY0o4ZE42RUcyVHU0WTR2cVVxc1FlUDViSHJPOUliMHU5dzFqOXc1Q1B3TXBleTZZYjROZ05PQlVldW8yNUVUNUpLbndSZzdiVTlvWDJGWnJxMERCTzFlS3B0N21RYi1YcmY4NTh2bEJaZTZVZ1BrT0ZsdER1TUdBVVdmWnhYdUtVd2J5TG1NTXJKWFo2aHdTWVJrZGRCd2ltLV8tQ0xMRjR4WHpIN3Y5anhrR0RrU19ZUDc3d3RYLVMxMG9NZTR2R1hJelU1dDhkajRfeF9hNmdYdXZ2OXJCcFg1ZkIxeFFKUzlyZHVBbkowdjN5cmd3LTZkeUhmYXBwakJ2MTVWdUo3TXJiWk9fTWhQbWh2M1h3NGJmcjBFOVUyZ0tHcnNlempoY2pEZ0NMOTNrUGI3V2oxeXFxaVJId3QwT3FleWR5MTh3V2ZEeVBpbjBqbjUxaUJmSWhvZTN3c0pJeWd3U2xieE9ieDRPTUlybHdXZ0hZM0Y5OE9kcFU4Vm94QmxCSHFwSDdXLXJsOHVlMUo2UHdEYzV6VXFWNkJVVVlVRXhYWW04SXBFRlYzenRnR3VRcnBSd0ZaVFlFc3ZzRTZhRHd6YTR0cnVmSGZ6NUZfbFFMaHpQeDU3MDg4WFNMRWczcGh5Y2NyNlJFNHh5UnhIUW5CQjgxWTlrQVBBZnNqYmxWc0dBR0RWVTFVQkJENGF2eGx2VURrdGc3WE9LVWltR1Bsb2lIOUdSREhoWjhVQWZfWEc1dXlkMTBId042OF91VzVMQXgtZFV5UXhVZERRQW84c3Q0QkRYLXd3TmQtMkdBSENKWl9GT1BNQ2ZfbnlIbi16YlhHMWczZVo1V2hxN3dGQXhwY003Z2E4aTVvY2pReXZRMW5uYnFMSlVWVnZoaUxGZTNZOGJvRzY4SExLTjRhRFJ5VGJLLXlSMi00eGg3SEx3RDgtX1ZRVEtMOFlEY1R5S0ZaUUhKZ0hPSWhEWC1Ga0l4MWNsZGdfRWJiVjJpMGhFNFlYTVBNNm1zdnBKTUhkZ1pUNWJkRlpzMi1FcmZ4NGR6X0pCZTV2eGtDclZUcEJyWFczVUxCQnBmS0kyQXVyZkNZckt4SXM1WkVlVV91R3B4NUF2bUhuOGl6c0dEeG9LN0dGMnlQVmlqdEs1cmRMVmdfa25BanJKbGs0amtwbFVaZjVGVzlFa0RIZ2l2S0JtMU9oTzhyUlo2c1J5VnlTUEF6dWY1dl82SFJIcF9tLWhKcW1lTnpBRklpZUNSeUFJYmJBWnlfRWNVMWE5VmpzNGVvSU9XVXpISFdtOXZkaE9lcVR0MWVPSWVYN0tScEJSX2tzTWVOZk50eUlxVjNsU3pfdGwtdk42RHkxNHg2RjhVcklob21MeGMyaWNUd3ktU2ZIOUJhVThRYzFKaGUzNVBITnNsMk1BUm1sU1p0Wlc3U3JPUGdlb0ZOT3JVMnpyRGp5T0lxZ0NZREpuMGxaQlY5c0RKWTZCZDFhQ3VCb2xyUk96cElJbjhQQlVZOFY0ZFh6TmpndU1GWWVodU1tSEVzTmc4X1VybTZrYS0ybDNDeXJpSWQzNkJod2xOTHl2RVZaRWxCNGxkRVhsYmFhdGpVT2NPb1huMlM0VG9BSkFCUXh5T010ZEo4OTVjQURfbm5iYjM5VG82MDJ4bFFlM0dZQmVVZmIwNFY5UUtaR0l0Z1lmS0R1Z2lXcmxIYmJKLVFJQ2FtVEw4YW1zdTByODJTMHd6bUFVemNCV2I2bzlSYjR3bmNLTHFEVDN3ZGpzSnprN3ZwdXAtYVRJNkxOUUJyU1ZvU015ck50cUVqVEg5X18xQWcydmp2cWprS1djaTRBTFpMREpUZ1lCWGRMOUQ4aDdHdkRIbF9FUzF0X2FrZWFyQ3Y0Zi1PeWlNZF9GcjlhRkx1UWNGb3ZYU3ZBOGJEZGdSNGF3alQyVU5PcWZmZVR6VlhXZTMtUGxSaE5jRUlyTm1zVXlLYUd2eGZHZUZSMG1vY3g5NWdhMHVJZXhaTW85SUt4WU4xaW5xTVFZT2U5Tlo5NTRHVWNLOGx1cHhQbnctYW1wMUJZanNEZUdnUFNDdzJPWWJFYWlrdFlZZlJOSTJsYXEyUnRHMWJQNkRGTl96R0U4TnlPZU5QSzNidUlzcUJhRHQtOU1vNVRROHBBMmdPRDNGbUt2TU0tVWV4a3UzUktyQjRzSnRWN3MxWXFaZENjMEhIeEw5WjRpTmZBQnFuMmVuR1BveUYwYkRSTzJpMHcyOXM5bjNMWk1vc3J1WDJJLW9jbkJjNW5XeUN1SzVwUHBwZ081UEFldm8tY3h1WHMzMjZJb3dzMlpRZW83Mlo4bTZ3UkYwb1JvYXdiZEZwYk5OTEVGbFpVTkp1aEpWbjJYMEJKY1kwZGhCd2FyMXpRWEQtS0FxOFZhM1dla1NVVG5fSmd1eXlNV2x0SGx1ajBXSEQwT2I1SWZvU1oybTJGOHJLRkw4eTF1cjQ4cEpUNjdFR09KbmJXelpKY1hRTGRiZ2NrdHNVNG1oUjllcDhpeHRkZ0hnbXlPVmVUM0hhdEt2RENDdHBhRjJMbC11SDI3R3NIcVdQdXdMb0ZvWlNRNGtVQTd1d3k0MXNaUWh2TF9UUVJjY2NaVEFNLV84QkJUb2VSc0lMcUFrS0p2X3FCYmFhN3pKRXRtS2txRmMyUlJzY0FfMVQtZU0yOW1WazVLZWJnSENtVmxrX3ZVUnlxaDJhUExTUl81UDBaeVBOUk9VLVJXS2JSbG1PNmp6SV8tOVhrSWNpenBRUk5WZm9lUS1FbHduWUFMdnpHeEZwWUtGWlVFczhBSlloRGdvQ1Zxc3Z0WVZkZjMwSWV0aHVvN0ZXS3dtYmJKYzZvY3ZHVWdvQmF2RmtqWV9sM3ZyMzlnR3NGMTRLeXJtWGktSklweEZBTURxLU9vb1FKN0U3Q0Q1Y1pVSDh6VmU5TEdFMTBKZkp6RnlXeVFBNHhLbXhURkI4RzB1WEd4RVZzV0F4bUh3MTJWUFY4VEJxcnMxSllrdWlZRnlqd290Z2hGMllVbWJzMk5rRDgtZnhkZWtXMHh3bW9GbnJaUzQydmVPM1pjX0xUTU9vRm5hVndQWWhKZEpnUjFGM1JiRWU2bHBGOTFVRFNTYnNnTjU2MjdOU09IRXQ1RTJxNEQyWDR3UURIMkZWUGVlSm1QOEhlR3J2eF9jRlhoSUpJWjZhRWpVblBuVWk2NWJncVNDOUg5bzNtNEgxVkpLdDVHUVRVMzhJU1ZlZzBBRXVZTVU3N0wyNVFQUVRKZVQtd2pPb0pGeEgwMDU3YjFmb3E1RkNfOWdNbGNXRnVWNTR0anZ2Z1AzU3NyYkYtaU1tbEp6b1p4TnN6dTRlYVA2X2xMSXRmSWRfQjg5bXdtOE1LZVUzdG1lSWt2R2ZBQWNUS3BtMUI5VXI2TDNQZHdNMlM3TG55N1czS3g2LU5scEp1aTU3ZDluRFdvNXZXTk5qb3lURzBuemd4aFRicnE4U3RyNndBY0k3cDBYUmN2eWhHZS1aalBONTJGWVQtaWdOaG0xNGlHLW9aTjFBLVBUb3Z1aHNKdUZNS3NBV2hvV2pHMEVCUmVUcXhWMUl4QUxQTC05MGJaa2d4dlBCRnJkZzh3ZFdEa2oxa0JVRnpwcDI5RlZuV2lscnliamYyWnZqMWJYOEE1SEMxWFhNcGZ6cEpNS2hMWWVqUzY0UHkwZTd1RWs0czFZSXRNZDRsMmp4bGoyZ3FwSzVUOS03V2JGdFg2TzJsVC1YenV3OGZ4ak5VQ1UyRUIzY3B6c1Jla3BDTGJxbWtLX01sbHFWemVvU1JFRkxpS1ZoZWpCd1lQRHhyeVdKWTZDOEdueWFnV2tsVWVEYnV4UVlsTzdoYVpzS3h2T0pMU0RFNTFPYnozc2t2ZDZuOUt3b050dFluWUE5c2ZFNTQwODB2cU5WZk9fc0xBNDc0WFlCTk1VMkhNQW5ERXNrMlItRHV2TmZQZmc5WXdyU05YZTVmOG9LV1J0X0NrcGY5MGhjVXltb0ozdUdZRVQzQm1HbzBqVkltaEU0QUN6QjJQY1VSeDREcXJCMDE4MVhsLWh0NmMyRjZCbGtfZkExNFRNX2JLLWRsaU9rOVZMdEhzN3RKMTlnUWFQWTRiUW83ZFhfeFBVaXdwWHF4SjFSdVBSTWg2TWlNb0tCbWR4VHlNbGF0U0VEWWQxSl9hOU1PTTRpNzhTT29qVVRVdXN3MVRGT0hGRXdmaWN6aEJrdENRTmxSeDIwRW1aVkMyWnkya2tBWFhmVFZFb25YXzdCbzFMbmpmdGtEM2xJWWpPZ1ZSMUhtQWRRREhFYjBmVGZ1WURUZ0VMOE1HQjNZWXpqSTJETlg4TkpiQmlZVGI4Unc2YV8zOXF4dE9tRUVYdUg5OVpKQjVhdm9xRzhIVWJPazZsVFl5QUg5d2llQV9KZGFWRk81eXNFY25PQ0FMbmFWcjQzZ0ZfckNhUUt2aS1DRl9YWkFhYUd0dzAzMDBzeWZESURGQkNWbWttNlViTHdqbFNHSTFPT1RYNzVnU2ZZVndJa0xBNE10cDZ6dWhvSFl2TWk1ZkxBSjRrbnhfc21jSFd1TjNfVXdKcDJvaDdrd19CYm9ubHhaaXpYSW9OYTVzWlVaS3RwdDJZQmIzN0VHak9WcmYzQklOZk5OeEg3VzNoUzY5dnRxWDY5bENDWlVyS3hqTU1ZN0kyM2ZZeVM4eUlrUEdlS25KLVNuRXlrenFxOFJoQUsxbzE0Q215aTBNVUtmdEY3LWhxV3gwazUzME5jQ1NNbTNmcG9tZ3pQZVJyUTFvci1NSVNndTdZUXdGdDFfM0tKN0hTbzUtM201RzlheTFSaVB3WlhEc29BWFU1cWlUVTBqSVppSVZVeGc4aDRzNldaUnpHelJwWW5KeEU0WjFFY09CdFBHLWk0ekxrRlFsX3hBY1pPeDRoMWx0ZTVrVThwaDZqZTZYMUg3ZDJVVEc4Qk5pZXlzTkZXX3R5T2dOTGFVQVpNNGZVRHVPX3kybk9SdFpXRC0taDZjN0REeWJWaTd2dVYxd3JvVFlNOEs1QVlySHdkX1hXZkFQWHA4MVh0cURFM1BESVA2SzhabFpvX2lJWkVvRTBwWnpKcmViZjJPaXJmNERwamxHZmd5MmRHNWc2eTlPSzV2Q1psTW1QWWJBSzlWZ0F5dlFhY0lrX2VhMFVxbjZLY1NaTkhsQkQ5TGlhWnUyM2wtamFrRFEzc2tKNmc0c3RUa1BZdzQyUUdDM2g1THUyR2VOQ0lyNjd5eHh5Wm9vUEZwYXljZTBaX1plVXFXUE13VEg1NUFlb0c5UW9LTlBILWhwSE9BSmtiODlTZ0JpRGNKYWR6MkFRRm9rbmxtcm9Rcy01VTRxUTBoQlJQTk9VaTFZdDRaZS1neXZfMnlaX0d6bWNQdUYtNmxCWWZ4TmQ4RUVwVVM0TUhlUkZIUmlodXN4VGRtcU5Iay1GUEZKVUdtVnV4NzdfdGU4QjNFSTBGb090cUJ3aGsxam1TZlZFdHp4VG9weEdnZy0zSFM1STBhTGx6TkJTZjVkSGlkM1V2SnhPbUVKaTJMbnV4eDBPd3dOV3J3SFV5UlItUW1VajBxVnNBRS1OY2pYLTM3U1RXc21JRFpqM2ZxS3I2Zm51eUJYTTREd2R0RXc4ZFkwVEdzYllGM3J1NnJtNDRKaGJSbms3RGdWWVZTZi1wakI2bHpMak5NUW9uRFJHVUxtdUpiT1VDZFFTeV83amVLQW9kMDlfbFFBUjdXYzJqVk4wNksyWVBIblRBdlROekNyX0RacGZBc090Mjg3YzhRNURfQmhWY3BsRHFhZGFMOVhEWThuRERiSmo2a0ZMOUpqRXdGaE9TYlNaeEdUOW8yVkFQcnNhRXprd05wdjhfY3VnNUVMNkdRRWlEUkFma1NoelhVaU1vSjdDQnM5WlJSYzNkZEl4SXhFbWN2RnkxQ0kxcm5FWDVHVEZhX3VLUmNKQllWMnNSaG1xSXhWMkZ5akpLa3ltLWlDd1JFMnViSkx5ZjhRS21UZHBtSjBOS0JSang1aWNUMXdVOVdGa1lvSERSMkJqcFdTYVREMFVnanpNQldLX1NrZnNkOVM2REoxUVJqX3dvZlBPOHhXVjR6Wkx2bzZiRW5mQ0ExTFhDYzR0ZUVVSTRrZm9oLUpPSDF5b1IxQWFsQ1JJWW5iWDV0Y0x6VVd5N1VUVmZYNllDeHZCNzRYVm9RWVhVY3pBeWZNV3ZmZzVlTC1oak5FalBTenY2QUhLelVFWFpHM0kxTFdoeUdUdXFvb1Uzcm5QeUpQQ0ZqeUJqd3RiSDR3NUVseUpvNHpNa01yNGtUTW1fNWZsbG9TNUx4ZHNyaXZ4UkJTTEJ5LWUwTmQybjlKdFhIQmZod3ljT3YxekF1RTRoM191T1JPTHFGUmFqdVFnaldNSDRmU0ZUTHktdUpWcEY5YzMyYjVPX3F5aXlQc1VLNlBKZG1jd2tjanExYjhHRWRGbzIyRmFHWXAzT2lYeEk1blQwbmk0OGRzelpNTGNBTXFsdXV2b19KaHVzRGVBbjlJLWFmZzM1M0Y3ZVBIblcyMlFCR2xsYkpOZDJqa2NNbktQWldlV0hfeE42Yl9UNFZzZzZaM3dsZVUwYWgybVRacnVNdnpRVzJ5X19NaDRXOG1aM3BLVEdxRmc0OUg4RE1ZNTlEcGVmMENvNTlod3hUazVTWFQ0bXNGOXpxdkVfcFNoU0dVWDBvRUVtanBiZTlxbi1xWDJWcDhrNmtBY0Q1QTBCeFUwLVZtc2pmMXhjQVlNMWo2c3o1V1JuVHhBb21HTmhnYVd3ZmhRMkgweGZvcDlYVlZxZjlMd1lnTlhSMDh5YzdnV1ktVy1CYzFXQ1FFcHNobzdqb09SVVNBSUhBUmZuUnFBX0tob1pZTnlEdEVHLURoX0dZeXlOdWFXMkx0MHh5TGJwQ0pFV1lnQnVNTTRFSkc0Z2Q0LXVzMV9rbTFHQW9YQ0lvXzVXUE9odTBRSVI0cEtncWdMVWQ0NkV6aU1MQy1FSDRkZGpfcmR2ODB2SkF6alpJWDBLR0V4b2RZdV9ZTmxhUDRVVXFwVW9mNTlTclVhTjZqZ0o2RUlSWVRnMHlGTVpycWJTdlVJMklaT09zUUNxcFdXYUI0dzlaS1VhTVhJRy1udTlDU0hQTEJQQlRHdFBub2Zhcmh6V1ROOTZRaDdxZk13SG9yaDFPMl84aV9xWENLZTR3NnU2V3RCRnVQUWJZQlJUYU5QZ2xFTWZMUHJORWZTSnhGa1ZJTVg5N3dEc0VTaG9Bbk5sRlVfd3Z4YUZQdDVUSXZPcUpUNEtweC1LMGdoZDNKSWMycy1XZmRHaUx0bHJQZk5FWWJNbkt1bGtlb2szZ2RqR0JONGVoaHo3OWhEWTkxNlJlcUdMOVlrQTI1Z2FkU1NKY19ZR3ZiY0NiM3ZCSUVhUkdSRTBxTnRDclN0WmgxdURwRWVvY0xocm0wSTdzVXYtYWotTXB4MmgwMGl2Z3BtLWNraVl6amUzSHFoalltcHY1Q2RPWUZoQ0JwTC0xRWpVa0V3bndIc3E0Si1ZR0NGV25qNHF5dWNoVU9KVUl4RGZUaEtUR2ZPa3cxRVktTnFZdGNPaThxS2txNHVIRkx0OGZVLVlGN1VGTVlNQzBfNVFJalBsSWNYWGc5bFFlQnAxZWxpOUY3WlluMTFPWG1oYWE5dlZxU1FRX2t6LS1NdHpyNl9yWWVYTi16TXJGV2tITmVVS19hQ0VrbHBfd2VZUHg2Mm82d1B1NU1uaDktVXlqRGNraFFzSC1la21pQ1BwN1hLZ1dWOE44N085bVB4allRWTlBVWZNT3BhaHZZbHNKWGh1RlM2Q2p4N1BzSGRTbGFMQ01jcHhabVV0YU9lTFo4cW91WWZUdHJ0UlBreWdtYXQwY3RpNUFvYjNPeWVWS3BHSXZRaDBseXA4cTltWkFMNWtFVDBGMUo2QTA4VGFVemVJSkNDakFLTzhEaUZYeTZnZlpleUpHeUZUTzVmWDRkWEtOU1hZRXY1aTRmYTZIc2tieklIaUlGU2tkZWV3S0lKa2lZa0s0aVB3M0luZDRTR1dCZ2liZWdZamRYY1drb1R0YXVTNUdTdHh5UEhrelhqRVFka1NTd2tnMVh0c25ZN0VkVHV3d1N0V01kM09UWWFlVjlLV2lHQVpDOHpQUEgyeG9qbVJnc3pZUjNoTk04VmllLTNNRi1jOW9UNXpZMG52NmFaV0FxSW0xLUZ3VnA0OHh1WEpUQzBoSmJLLU1kNzBWb0ZKMkVVcEdMMk5nVWdpMElKMjQ5ZXBuX242RVpzTUVXUEJTS3BGUGotYnZpTW5CV2Vkd3NRWTNfNkJpQTZaUkFZV0xORnZBb0pqSldtQWJMRVFnS0ViSlYxTUMyZHpmc01MTk42Q2h0azFnYUtlOUhpR2FzZjFNLVZpU2pzaUNCTmpaejNQUjVzUXVqRGUyZWNnU05yZS12dzdYUGhhdUJmQ2FUeHhQZTFuejBkRkJyTGpHV2ZLNW1KUkJGSnNnR0g5OU9zV2tKZ1F4b0p4VEdjMkxNaGE1Zm51Y2xBVnVJWE15Y3Y3cmw2bkJvOUs2cXU4Vk1GQ01TM3lTUEFZcjBreE5XNzUwandDVkFEdlNqbVltalNDOWpRVzBMb2ZrUC1aTHJzRVRHY202RUNxUkl2TDdqaEk5c1p1UWdiME9lNUtiZ2ZIM3lpMWpJR2dZVmNfQUFFMGhOcHRhaUNTaHB4SWRGT2JiRGhkd0xDalJpWUpiRjFWX0RFYnExRXhIVVJLX2pNV3NPa2V3cENveU52ZkFYRkFzTTZnUE5taVBFWFhvU1pEbUVhS0hEUl9KaFRTZmFvNk51LW1tNG5jV0I0N1lnMVREYU15VXFWellqX09vTVFlQUZZeWpBNmlBR05FZEZqMXN0NzFjNW1COTV1WVE2aFhwX25hajdkZ0IydjlwZF9Kd3hNczlzanhPVzV1SFRzdFA4Q2FqY2pjME42MS1MUm9acS1xZWFFMjl2a2pWQlM4cks5OTlwcHd1N3Bob1lUOEhKQ21Db25xSzZ1VFlVcG5yQW5oZ3MyVUh0YVVfUDRUcXJyMXJVYm9rWkVzamxJbWpTMURIMlh3N3c0bWhMVGMtQXd0bGZ3UUd2NEQzbUN1dUFkbVV5OTdZTzBpdWYtUk85SGloNDZLbC11NmZQNmlQQ3VrU2dmSkJZOFFqdzcyc29hUXpaUkRfMVZSYzZyUUVzdXN0NE1EVU5ubGdDSHNTanBwVUo2dUFxbXd6N1lzQkZDd0tUN2o3T2hHQUFXa3BPdGhQY0FDZ3U4MGJlMzdBSnNxV00yTXlxNFVydVRKNkk5OWxQTmwtcE05and1d2hSZ2NRQUJxcm1mbUtmQUdoWk9LRFFVUXk2aXp5bmVmZ1IyR1pzaC1tQmk0VDMxQk1xdktSTXBCYjgxWXRxcDVySE9iTnhqVUZ0SXZsYzVybjVMWXR0UjFpa2gxX3k4dkFHLU1JX01xdkhHbG10dGNrTldCOWlldVNBNHVwdW5hcmRCajIwVTNKdnNzeEUxTlUzS01JMWlhOU9JU3M1azdUc1VPMlE5TzZYNjhUZ0Nza2Z6dGRCSjQzdFNGVzdpSWNVTDZZZmxyZzhKT3N1SmtScWhCX01oVmduQ290aGxGT1VwZDA1TnJpRm8wYUxIWmcxa0czbWx1QU56bVNPVlpBd2tfLTV5bHZHSzdzclViQTE3NVZOd1Q5bG42VGtVQWFkdVhkMC1mLWdCbzVpMk4xdGpldjVMLTRTQy00RlY4bzB2Z1o2TTEzd0FieXZsck8tQlY3b2FuZzEtYkYwWHBRUlFhVHUyTDcxMGNRV2VOSkxLYkpGblhwQ0M2RVA3Q2FJT09fdXBUdjRPMTEwd3NiUDV2SEN6MF96MjNkWEQzV2Z4YWRqRkpodlhXNTBFbGxKbXBqVjZFWUlvWER4MldvU3NoemVveTlVX3MwNXZnbzZ1dFBVS2c3aGwwejJDblJBMUVUY3FONlladHlJUU1mSi13V2tBSm1KZmJVenA3MS1uN2htRlp1WURsaUNGaG1XNWRNVVMyVTd0dGtKdFJjVExHRFdWX3RqQVllY3NzdUxFOFdDTDhTRmFiZElrZmdUNDJ3N3E4dngweHlHVEhSaXMtNFhWZjhiUm1nd0ZMbVFYb2EtSDJYWFEzb0REenIwV2NSdjNEN2ZERXc4cU5qWlN6U1J3ZmpmdFQ5b25RVWtFR0VBWVRVQWtab19LTmRkejRBVW45bGZwbHZCM2RGS0FwX3BWTGtOTHZtSXpXZ0NERmFWak5TLVdmWWlFeEpfOHd0MjNEMmZkZTJiQzFLbXdnM3hpWDQtTm1KZm9PREJadUxQYXdfMDlkS3hmaXFYajNtdl9WdUY0ZE9xZzF2Y1d1X1VUbTJoVEJKQUtyMmNJRklZb21jZFVQZ0NOcG9Ld1l4elpzUzlPZmdEcGNDWkVXdkNfNU96QlByVjNsdElfRmFSZFJKLVZ0TmZUUk5mQWZxSmRreDg5bGg0X2xUSmduMVpodGRpWjJLUG9ONHdxYXhpYWM0akt1TV9MYXZlaGh0eUxBemNFSHc5MG1oYUZ5TDByVl9HZ1FlbDNwU1o2cnI0VXRWZ3FFcDA4VUsyRFYyZlM2QXZZWlk0ODNndzBqMmpickg5eUdrQVdkX2FXUVZMMzZ2WkxZVkxKX294NkRLOU0wb2hPUUJuS1E3X2tDNlNUVFR5SjlpRDU0U25mUlF3dWxVX2ZpeU43dmVkaVJTVDJrZ1ExWm9OWnlEZ0FOSnpiSGtxclZhU0wxRF9JSnAyYmJoWEZjZjd5ZzlEay1YRU1rQUdDMGR5akNfTENVNTVSQ21GbTAzM1lHd1QtbGhxQ1drR2dOQ1BCdDNPamtwZ3pSRlBLclU2enZCYWVUbXdxT0JROGdCQzdycmhLb3A3Nno1RUFoemU3bVM4VWdEaE9PTGt1NVE4Y0I1dXcxMjQxT3prNDcwYi1xc1l5OTQ3VHdjdWxTUEN1NW5zR2hvaWVUR0o1WlRjaXVLeUo5ck1TRkhfUEI2N2JGZExseXVveWFBQUg5SlhqZWN0VS1zNDN6aGpzYjJrX2x3bG9sX3ZIb3lKeTRHOWxwT1dUcDBMeEZPclcySlg1YURoUlJ5dzZrblNDQVlNbjBzZjBBdnlHMUYtMnR1dEFSZkJPWTc5eXI3S3BqalZpR2lfSnZIRHN1c25TZUozZlRTNDktM0I5dkljam1fcDMtQWhJeXRIeTQ1LWFUMkw1UkZvRVNXVEhNNjZYcTRBTDFKSDVWY0daa0dHNGltUHZ4MkZ0VXRDZ3pQWjRTQWUwYnJsYW1lTVV3Wm5JSnNKVU4zRVE2WTdKenlWSjFfb2kyUzFpNFRKaU9ySXNTdGNYLThZV1VtTzVvZ1R4RnIxdk1qM09MbWIwOGhSNE5tcWpyUVdCTUs2OGt4Y1lTR2tqeVlkYkthUklVSG5BV2lEWExjd1QwZjNWVDdLMTN1aEVmeEJ5bHE4NWR0QmNwdE96WjkxSFVVNzFLYWo3QXZFb21WTGZQby1JcllQUUptQjlXUU5fZWFDM1FuQTlUc2hEaDUtQS1mdEwwNDNGaGg2NFZyaDF3WmZYRm5abUlvR0l0bUVkVmxDZXQ0a1IyemxZVUVOQ2tJWW9sREdYcEFqZWRTNER4aFFGYVNnajFvQnp5QThMZU15T3FmbWZZT1dxTDNBT0ZDMExyay1XaVdFWC1NWmVQdXVycldZRHBSYmhPWGExckFkcXNuX1ItUnlTTWR4RHlJRmJyMFZfN1Q0aW5qWnFrTkJTUXJnTHFhMHVKeW9vd09BLXBvMXM4ajRsT21vLVhTR3V1c2NRMGRBMWJIdUF2VTNSY3dSeFRfYWg4NHN1MEpfQTFBZlVqY3RrMmpsYUQ2Zlpqb2E4dVNsNnJSakFyU1dVdzdFZ19Yc1hxTVg1bUszcEE2bkp1dDFBS3REOXlvdDZhc1hJUUdMNE1RaFdVVmpPcVlhVlJ5Q3hkOEgzV3NXc2cxMFNpUWZHY2djYXVEdUxxU3ZwU05fUEZzb0VHU0pZODZPYzduOEJEYk1BMXJiTWhtR0ppUTBOMUVnb2hsMXhwTDVWWWxyaGtsUWlZWHdkb1ExQWgzNl9jTS1uZkU3NGtuRmlzVGJpekxKTS1aZTNTTGFIVDRJTDRiM3NoNmZxR2lFaEtUMVRDRjhRMzlPdk5KcFZuT2k1ckFVb2JSc0xFRW5HbVVlZlVPZ0xUamdpOU1DOW55M3MyWVE2alZpbXZxSnowZFJSY1hPbGpXeDBncEppUm0yOW5aT2NXVGpXRjl6N3BUOGRZal9hZHp1VmRqckloTXp6eXpTdzN0T1ZRbk9ldjhJZWdVeFlCcVNLSzc2Z2Jmb0tBRzV6OEZoVmprbEJkaEhrRVA5NWFlQ3lCSURFNWp4N1FUYVZ2cmpIWUMtSk5PM3J2NEk1QWhsUWpTWVJ2RGtoWnVPSUZ1a3ZiR3l2bGFTMnltTlFYQUllWmpIVThyUnpqRFQzSFJhS0p1dnk5NF9JNnBFeXdKMGFGU0hGX29yYXNpS1lrUlg1VFliUFdNcF9NQW9nbXBkU09nQlhVak9HWE5EWXlpTXBzMlIwalFCZVdiSlRneGszTEtGYTVmXzNfWWpMdmNiZUZVN0tIeDhGaWc2T21ES2hEYVhNMU1idG5aS1lvcUFKMURpUUx2ajlSOVJWQnI4TVF5RkExWlJBYV9VX21UNW5uckVQc0ROeW5idGpfSm12X2o1S3p4M1JMR0JDOGNxSEZMeDFFUElsTFdvcFlpZTlITXh5NV91N2FrS2E4NDJXaWhPVDhJX1gzWjBGY1h3Y3RJMVZPOE5USTJhOWxkV2xzV21KRUY2eVNLc2Y4YnBpUHRkdmV0UW83d3ZkMzBGQ3ktR0haTVBmY0RIaWR2ZlVYQmhmeS1RYXlpaXV1OWl5d2VteG5nZnQyRXgyQnZPUHdFY0NIMnNkSjFHY2lVcWgyejJjYWFrc19DRHBSSXRwam9DWEZFWnZWRDhMY3NodV9ma2V0WkthdWpfM1p5TnBiQkE2TGdXX1dUQXpXNkpaZElFVlR1T1d3QVU4T0loSTY3OXI4clc0Z1dRZzZjNmtkUWM0cXQwa3BfWnBhSEduSUN2OFhNSmVac3Vnd0dqOVE1OW5TYTVtRzB6OXpIaGVwVzNoV0ZXQXNOTFo5cFhCZXpvbWNGS2VDSzFFYzdLTFVrOFVsdG1RMkY0Q19pRlplcEY0NGNyZTluNF9KMVN4Sm5ySlJldWltRGJLSHhQeG5VZ3hWc1hzVm1QU0Y4SDRPcXZDeUVkODhhc20xaC1lcjhkdXZyekxWT3VaUUt1dmtsVDhNN1FpbTNfZkc3Mks4dVlUWU83emtFNndKOGZnLUF6VWZGeWJsZ1EtOFk1X25XZlNLZGdGUmtxMmwwcmF0VUZaTXRCLUtMRC1yQmZ4cXRzTGtvTHJlVXp0aUFDcjNDNVJyOWdOTjVwb012ekVpSVZpUUx1R0RJSzUwTHExTXk5ZDdpT2NlVXdyd3dkbXRHY0NIUWZZRUQwMWJJZzZMMVlIeENSV3FIRVl0SWx2RkJORkVfc1JCU0xPR3hFQ2lNNnEybEs4Q0Jib0p2UnpoeWNWTlNzUFBtUFlpc0dNd0ROdEVYeG5mWjNWM09HMHJkZGMzWnRrOTZyeWJRNEZOb3BkZkFnZ3NjVmUyWUhMUHBBYzJNN1Y0VWc0M1N6d0VWUkhoamNSR2VRZ2hrcTJ1T0p0dzZrS29uTUhrSFl6a3hyNXBEVjVNN0VWU3FzZHN2LWg0NEp0V2VaUTFUd21PS1FyZVpzR2hMNHZtRjNLM0lKaENKNENJOXpwT3EwN0lhUzJjTHZKZmpJXzVkNjB4X3EyQkxtblNSWnNMQ0hrNFBsbUVIVVk2NE4yTVR5eVpwY3FxZnJ6MkFtOU5LcW5EbHJSX2FMdVc2Z01HOFhPNHJvaFpIc3NtaVBKUUVoYlpXQzJyRWlEakpsejd5SFFkV2ZOMzZKOTgtTHJXa0xseEJOM2kzZjlxMXR2NFB6VnFhZ0d2Ylg5UnZ5R3RSeXZoNHk0RTJoTGk3SkR6UGN3Z0NmTmEzbjVGc3hGZFVpdHY2Xy1aMTh4NG8wZHd0UkRtLVh6bFZwTUxZVjJWRlVmQjVReEplbVdjZy1zOG96WnJZcjVBTDV4RlZ6ZWNKYUx1SVd4Q1VpaHJIR2k4VUxLVVF5U0otUEx3eFR6VzFiT0d1bjFPUHNLRlJjZ3JuXzFERUxqbGJMdlpheU10a211QUZMMXowUVZwOHpHbDNLWjh3NEp2Tnp0V2UtXzBCTVJJSXJCcmktd3pIdFlvdEJWV2RWMHktOUVCVVQ5Mk9PVVNaaTlQV1hQQmVGZ3JhVnphS01JVENRS2d5bXFaNV9QNHJTYTVvQTFqNlVKSWNDRHpySTdyOHZnLTdpdWJrZHpkM1lSdE9GeGVxVVQwaE4yMkxnQ0d1bVdqV2tRRU1tTGl4SXd4enhxdVBsZ1dCWVlVdkEyeDFjSE83SUVKYURLbDhvZ3JXd3JySllTMGFmdEszRUFzcVRSaWtSODRhX1I3OTBHYXNRWXowRFBzN2VtQWFOWDRRZ1lOdU9mekxkaHpaY2o5N0hmMnZzLXJaRElrOEJCLW1nakVZeHlnQ01scEdKaVZkRVRVM0U1UEIzR1pUazFtMThvU3laSUVuYXZEUUFXUGlrdi12UEFKYWRqVVhHcnN6UC1DamtIRXhVUEVyRVVLbGRzeDNFajJtMk9FeHRjWUxteUpMTWFqQkZPVXo1Unk4eEdtZmZtT2FhRU1DaVhNQ3ZmWUhQRnNJMXRQRHIwaHRENW1HMW53VGxfcFdDR0pxeTVyb3RieFgxSWYwd3p3SnpITWlDYVI4S0V6MDVWTFdwbW1FeHBveVEwWmg1azVMTDFMeUhubUdXa2pEOE9wcGNlVkwyNDhsWkFrWFFPamlpNkFZWjBTYWlzZjVPOGxnejN2TXRQWjJhX3V3R3hnYjBBczdENDFSUXdoYmlNWGl0Zmg5VlpvN1JmeU5XdHlxRGlhbzMyRkVRUDlQYkdpM0ZmQ05lYldUeEVQNUlNLVBEbk5BSUlZUGk1MEtsR0FFSmNVS3NyclAwRDBCQ0NRVjJJQWdYLUlEelN6QzFoOXNVc2ItTmFDck9OWEZreWtmNWdTTjBHNmFnWjBMdDg3OFNXRGhiOWdDZmVPb2ZKbEQzaHhjdldZRkw5SmdxSHRrWTJtOEt5ekp4ckhLaXF5YU1mcElnbEIzaTZtRE9weVZsSmhhdjBsY2NqZ29nNGdHaVpoRjJRUFI5SmpZWFpzc3FzXzJWSnQxMGYxQkQ0dEFGYkRHQk1Rd2RBckI2T0RTQ2hOWEZ0akxXUnhobnY3S1IwYkI4eDFrVGdTTkxqZ2lCZV9VTVZlaEJaSHNpU3JraW90X2twREZsb0hEV09abkNsVDhRVlhWM0VsSmNqbzc3c0NrNzRXRTljc05pS0ZvLUZOVkVqOG5KTUtGTVpYRGV4OW9RSUhZcUhtMG1FZUh0QzBWS0RtajBLdnh6X3N0WE5nNEIwclFJUGhSckp1ZWhBTUtmZXZmcWEyMXZLZW9YMVhpWXdBS2lndkd5TWRJNzdwQ2tzcGtnYVF1dDdmT0d1SUlUTUwyeFR2d2F1N0hoQWtjc2MxR1RYeDZ0ZlpEU2RVWS1nLVFpUjltdU44Y3ZJMnVxQjEzQ3l6VWkxODZvazNnYlFiOU1tWGRvaXQ3OElERDZTdmEzay1XaGpONENjcDlIbVlwSFZPNWNKV1AtTmwtUmU3b0RwRjdlMDFKeWs0bFlJM3JHTEdpVUZ2TFc5bW45bk1jQnVaTW91dmk4MjY4S3RHMTM3cDJZV1JKaE01TkduaHA2WW9yN3owQTVKdHM1RkFfSnNYbnlCSFpObTE2cG9uRTRmemloSVNQOHVwQ1UwdEF0YmhWeU9CLTdfMzBGNV9tWjZBeFVaeC1lRExXbDJpUEE2ZFBhODVKYzRjVUZTOTAzWVBOeHVwelU2eVZBMDk1QWFkR0ladXBQWllvakFTYnpZWU5NdTZ5SExOSXlYYXNlS0g2ZVdrRHVZaWRSVTJDZGdWb3p5bkVoS3A0MnIwMUtwX1FzOWhzLUhaemRHRzJ4WmJrb0JZeWhNWUtJRk5sbmVaMWtZWjBPV0FwOHBlZ3BtZDVlX3RadWxJanJmUWRVMmFqcEJtRk9JaGJRcDVqWl9oSlotSy1DYy1fUjRKZnUwcy1TUVRmV3NWQndyUkU5ZzVRWEhvUWRQZEZ6eWsyZ3ZZNmRBQVhuUkVGbWlqMFM3aExmbmxXd0FwcmJIalloYUZaQUtkMFNJXzJPRFFJS3luaGQtbVNIbTR3dnFza3hLQjlXMGUyNWpsMkZ1SkFpZUpzOHNkTW94WXltQjlKLV9kdEI5VTQ4YVcycXowZU4wNUZMR3ROR0FyMmhLVWhxbXlPc0s1S2tuRFdnOGRCQTNOREtTdEN2Tnc2cDg2bDRoNkVzVEsxZXJoZmQtZ2RlS003SDFKSVNLZUFuT0swTEl0QUpzNV9DNE9rMTY0eENXTXJPaUE2aU5US2oxNFpCM3I5aUQ3MEdycVExbHJaa1dxWmVuTmw5NEZZczNJOHBlTUZySm5qMXFfaWVMbmNlN1dEa1ByTEVQaHRhT2RIbnZRS2Rha3c5aUs5ZENSZ29QZE9MQTlVTHNZMUJjcFNnYmVlTFhLZklGSXZJWXhyT2s3LTA2VGpBUGVOQ2NSV3g0UURsdXZFeER1QnJYZ0JHandnNWRudDRRSW9JOTRMZkJwNXhWS2taZjRiWnRFLTVDZkhaVnJYWUx5cWhRdDktQXVnYnJvNndBUTBtYlhvTkV2TXQ1RmRFU3o2SzFFZXZPN0hJbGtPWS1nWmpRWE9qNW80WEF2dWp2eWV4MUlrYnc2eE1NMkdrS3g5aVF3YWtBaEZqUjRicE4xOXZJTzl0bmVrOXZ1VXFKR0tQd1MwVXNfVWFaRlBialdPNVhKWmRnbDQ3LUhuVFFtUk1Td3E0U2Q0UVVsb3Flc1Z4cWJhWTAzdHp6bVJ6UVNZUG01bm9sOXV0dkFjcndqUFdaZmc2YzhYZFFERENfMUNqMlBweXFsOUpjOTYzNEllbGJfajNQZ3I3MExnbkhlQnZVTnNLZTR2NDZaZlc3MFZGelUyQ0I4NWNuMW54S1NPbDRpMXc4YUdJejc0NUhBNzg5UU51bVpGamplRTRwNmRjRVU1am5kaUZLWGMtZzUtdGZuaDJUWmhrOGp2MlFTUmN1TkZ5TnBRZkU5TzY0NG1FbmhjOU4tVk5iQ1dWM0ZXaG5ETEdtUVh0RWV6N0pWSjFlR0ROazF4Q3VFSF95SFNkYzZ1SDhmRjB6U1Q1bnZEM0h0LTQxNVBVTEZHMjJ5UXlVTWtkM2ZZMzR4a1F2UC1CM3FGOWRINUFXVmJLRGVIdDBVRW1fTzRVQU12eVRjTVU4VDB0ZW5wcWZrREN6cEtzU2tMU2stWjBYYnJQR0FIOXJxNFJqVnRra1pZeUFfQmh0VndwZ3I1RkNLYW5kaloxcUx6Q014NDA0UnRZV2hRZXVpa1hMMkpKNzZLZzczNGt1Xzg1OERBOExnbjFWanRLRHVVdXlOSGNTM0NXalpBTlE4TngzRUVLQU5JYmIyRVRXTThIOXdSMDF5OFM4U2gxT0wwQ2FuRDZ3R01fS1U5RUZLZkJFZGFwVHpfLUdxVEcwU3hYUGZSR3BZOGJ6SVM0MkFvaUNBdzJiLTNfU1BzVndJQW5TQUNkRXo0enN0NlZaQXc4YlZCZWlJbWNoRnpjZ3VLVFoyUURpQ1lzM2JIVi1sLXNZSGFtcndKRnZpMWNMQjdHOUdNVkZlZ2IyNmxSeDF5OGN1MURiSVlmdDRqcXlZOGpQWFNxSE53QjhtOHJraFBZNjg4Rk9panJTSmhleGlRQmJWUkJCS1g0M1pSTU1KMlBFNlp2ZEkwQWlYUXdVUVlQTFBBY19rM1d4V0ZWUFZGYlY3NjJsbHZESXRZRTlVRnZWNFRjX1gtdURtemVxVkRURkVibDN2VUpxdmZHMTBTUWd4aEVXM1owZEVhOUY0Tm84VHRBSzFlMXQ4ZFZrMUJSNC0tdlRBc0tIN3BOdXNtMmlNQVNMV2FOa0cxWFRydlBCNy1VU0d5SkNBYWI5Mi1EYk1TdDQ3X2xyZVJYaHJ1Sk1DeGNFNXVCLTQwaUhCODdpaHdqRDRNampaV0dpM0o2Y3JoNDdYNjIwVWg0X2l2ZWJ5ZU0xb2VHZ2tobjY1SVZtRC16U2ctcWJ3UW0tRWdSMXVhOExnVXRhQWV6UFRyTjA5S3pOVmdRTzhaa1JwMmhfVjZYTVNSanJMV295YnZsWE5PX0thTF9maDVEa3I1SHdtU2l3cHdMMUxYVDg4MFFnOVE3N1VYcnVndFpMNTBoeG8xcWVmendXbmtYMTZvWmxFZENUbWtaUExRT2hfTkY5eS0xSTdmMkE5cllUX1Z4Qk5KMHFjb2FUNThVckZRbi1sdU5LOFhqaTFuOHZrMVB5bmc0MVAzZ2tCZms1bnVSS2E5eHl5OWtNTGIyTFZaRjJyTW9qRUhvQ2FBQ2cyM09UUVM3N1otV25FU0hHWlJoWkcwbktvMl84QjhnVlhqdzBRYzh5TjMzMDlJblgtYUs5a3FTdlhqbVNublJrOEVuemRkNDhWQ2tOamR2VmFLM0p3QkllUGtmUWRkcWNsNzFnQW1vTF9HdjhSM0dwV09ZVFRQWW82RHE3ckk1YmlkWUZSQlJmbWVPLVNjdVluTFFlNjN1SDFXNFhlbXVuNEpiMVRJblNaOXc0U29MVGVOOUZqdHp4eDBEYnFHcU05NnQ4YzV6SWhCa3dIZWZDVEdiV3d6VzZzemI2Y3Q0LXprWGdiUVNiVnZJcTktdU90QXhMQlZEU08wSElTanBVY3dueEM4clExRF8yNEVCRVg4aXBYSUp1dHBoVXZHVWxuNkxKaU1QYUdmdHJVSWJFVmZ6VENkdDh2dDFTMkVEb3padlA4VVAwN1dHekxSd3p0RTFQS2lwd1BTM2lXU19LV0FDdDlPTEpnNWZrc3VhSXU0YkhBZUlCdW92R3BUYmJ2dWE3QzR6eE1DUDR2U1ViX09lbUhxTmVLV3NldFYydFRINEpZRGxqaUxxWUVUQ1BtSmJOY0ZBVEg0YXQtZy1xWWRHLXlQbTNNNGZYTEx3b3ZRLWZwZDJ0bTgxUnFlMFNSWlpQUjNTMFUwREJmYkJHRF9pX0ZMWU9RdFNIZzlndnhrVUlGTUpkREQ0bmJkWEVWcTlYSGstWUczZFgyM05PNHRtcnk3ZWlxTVpqRmVJZ2VUNklhNHNicUZkTUtPTU5BcDFtVkljNGN6YWc1R1MzZ2pXczNRZ0dLeHoydms3WkJHbTdCV1N6UUphZ1I1SFF0LVZFR1JFektQZVpSd0llSXE1TjBDOURpUndjQ2FZLWdUX2toUm9nZzFFWHlGOHZ0VjEzWmEtSGUxbDBTemhpWXRsbloyb2xUS1Z4SlpOemhpTU0wOGgzUDFzWVpSc212a2ZtSUR0QTVyWE10eXd1N2pWVURrRU5OcTJXMlVRMTc1M2l3TTJKaG10dnlDRDNtSG01bVU2eDNMVXg3Ui1lYW82ZUFYMkxZNXJKbzVvQXBUbWVaNnlhellJaV95STJNd1VWV2N6Z2hrY2xuRzJIOGV3TGUxSnVIYjRHRWZmZTE1ekFQckF0UG5QbXVWVlNRTVRLSmFPcFhib0hqOUhJdVU4RjJtank5VDJXZGpYSU5rT2xDT1VWQVR5eW1tTHNqN292aGNOM096Yk11TWhZNVZSSDJSb0lfV0Y5c0pLN0FKNjlMYTFsYmtSYnIybkZsUEJEVWF6dy1CdHJoQzg0X0EyZl9PLU1TaWNfZFJkUlY0UzFaT2wtVGt2eWNUYWl6ZlZOcG1OSWNZU3JYcnBlcFBYUG1FZDVCNjdKbGRCdUJLcHBwTGQyMXF5VW1oaTZxMEtQdk55RVFaQlo5SE12dGxNNG1CTkt3SE43bG1nUXI5ci1iVlZHVEpPME43LXJ1c25ZUkEyd0ZtRjYxTF80dzBjUl9ibThaX1A3d2dXd0RmbHNvMi05cmZlVkNobzFNUWV0eVBpRnQ5X2d1VnlYTnRudEhZM1FWZFUxY19uUUt4Y2o4bHF6VDUxTkk1cjdzUDV4bFp5ZGdTbFFlMXdpcWRiWEhaS1NQUldVZER6OG1Sd0xGVW1MNkpkek92ZFlNRTZxM1Y1UHJieC1aaXBDVkJtN0tUM1lRTXJIWDlqUHBWZGhMZEhNSUJfZmttRGZSb1Yta3V5TUdkNWw3aTRfSE5WNDJZNTNOS3RhYjdMcHhNcDctcFBNZ2w4dlhFUEw4TVJMRDRqa3g2UFowSGNZd0xaSWJFY3U2NVJsZTFMYVlibkpmTjFDUlNTeVI1bVVJbDNqT25HeGMySWtJelgtSE1qMWhlVG9EeHZ6OHl0bGVoUjMtN0dCQ3VON1ozdFQwRnh4MlNIZG9EUEQ1Q3BnMVRYMzdid2ZocDhReC1MTG1iYUo2RXAtZ2VwcjNOOEhmc1ZfRU96cjg3TnJJVzlUU1RaTWx3YTNVRk95bXNRTEowZjRFTERPZUdOaFl4VHRfVzdlSTFTQnluc3NrRWdWYXU1Q1RrRWJDMWdNeHpsRmtJOEZBUERPa3lQTkV2T1ZYbWg1c0dEX0Q5di0tSWdldHpHN2VTZi0zV1NWZGRoNzBrckQ5M016bGtJNXdRdUxHNWhfcFZrRWdHRFFDc2oyd3NYYThrN0R1MHl4QVJWM3lxNXFUMU9MdWZOMkR3R1lyOGx5SmlWMzRpWElYSllldGlYYUloVnRJYkJtR2E2QTluX3VnWEx6NU9LZW5YWDB2eXZmN0tIVzdxOEJUdldSeFhpdUZpRU5ka1VhRW5pQUk3Nk5nUE5aOHZCRjl6X2FxMzJHRnlLNDdvV1RfcWwtQXdWSUVCVl9mNV9CeVc3M1lZdG5GUmdLOFY2LUlxSUw0cGdadlZZMXdEQzBGZ0RXTVI2Sy1pT2N6eHdJai1xUjQ2OUtkaUhXWEVmYzZtVXd2RnBfcmItSTdlNlJOUm1lZ0RYcTdTUW5aOTREZGdXaUx6c1U2YThUMTJtRWkwcHBJaHJHMHJST1l2cGpESUszbXNFTXBiME9DblRIbHdWSEJXM25abVpsMXh3VVVuaE0zVDJTZDBGREdkUTlqY1ZfUUZHZnRYbXotTGhiLXJ3SnZIbjRmdlVxTHV5S0diUmFwWnJJVG1IdHU5X0t2VEJsaXh0ZzhKbjNsZXk3b0FlSkpEY1VsTWlDcHNpcmpfNlhuWnBJcWhHNFZURlZCUWRRRmpfSXE0MTlXdmMwMkJSTTdScTZyMDI0WkhVRnFhYlpRempGTVJLaXEtTHVZZkhLMko3TkkwSlVKdXBkNVFxWXVNNnFid3ZWcFJ6cGRabGhreVZpUkFHYVIzWHRJV1NiVmVpWEh1eHEyTklub0Z2dXc3Qkx5dzFBSE1INjQ2TXYzMy1rQ0xValQtN3YzNEIzdE5waHMwTXdMYzNlaUIzNjNqSVFoUm9aRkhaRDhFRXRyME5UUEpIWUQ1bTUxakJ0UHFDUDM4QTAxMVBRNDFJeDZzdGdud3RZNnFWUU5SVmZJU0ZvTWZ0QzRKcVF3LVp5aE1UOHYzMFF1TEVod1Z6NkZsV2JXSkpzRzBOWW1qanpEZEc1dm5qRlV4bWVfazIxWWQxZVFwdzdjazNFcHkzMHdwUzI2ZThZTWlyNHBRb3B1M0xlbTg3dExWN2pjNVRkVXhsNWFIQ1VIY3lOMFB4REM2YnRlbWZ5TklUY0J0Y0NxeGpHUUVxRFJGYXpfb01qZ2d3bmpBZTRUb1h2OXFzQS1TZTdrU1NIVXo2M2ZMQWkwN0VZbW9UeFJnNllwNmhQdVRzTGdraEpVRC1XQ1NVaDNJc0M2Z2c0Qlg3MXdRN3QyNlBiVS0zMGdTZGlQVFBhQmNzTnNxbGVReEktalFDX09NY3NaM1RmaWpQUTN1eXByY3J6aXFHVVo5UjBycC1UVERUV3c4WjVnX3ZJTkU0SnZIeTY2bDRBLWpkcFByQWg0REJyamMtZHBGdzVpSERLRGFKNngxU2hxb3c2X21KNVFLOGZDYkl2d3czN3BPbWU1WmdIWHBWUDA3NnNzMDhTLWZKYkludUpOWEszNXVZT0lpNXBOd3JtVDdGSE5SQ1JvUWlZdFJwSjlvZ1dhT2ZMUWpweXRMZUl2b1hkajFaWWZ6ekkwbFg2MjNjVnRfYTFINnZONHNfa3hCdUZLemVlUVRXTld2aVMtZFIzMnNhRGRZTUxEVVE2OF9VUTd0R2hkM1NVTWlFYVFIV2FrRjNOaFVDTm4zeGtqNkV1VHA1ZElMWHBGZmx6VW9OaTJrVmpzclpUYmhVNXRwMTgzN1VFQjh3ZVRRTzYwWHd2Uk5GbDZwNmJPdnFBaEpCU09XbTNxMVR6cHJtenFhTFhGRDFTU2hXc0tlZXM4WjJCM3AxVmdaa2k5TDVlcC1COTRvMTA3YU1SbnEyNWQtbDBvdUxLeDVBVHBzc2Uwc3Fmd2RJMU51eHZ2c0ZJQ3VMczZnakk3YldXTVhpN3hJTjdUVzdiWFlUUS1USUNnZ3FmQlJHRnVNTWk2c3FSNEVOWkhhVkxJR2owZWhOM21TSzZpUnN1a2MwcEJ6ZVNMTVFvUTBlc3FjRkRRNnVWdVFuRjludkZWemFYNnZKUjNWaDVsT2NoQmVwSnVQMTNLdm1za0t4YkQ3WmtNbXUzT1BFX1pJOFpfQWJvaUdkVUNlMUZ3Y0VlaE8xNmpDc2t6bTNERklNbmJEMktLWjVZVTFTSEo2N3JBYnpzMUN2XzE5bmhhZ3doNDdMaUpWVXVOZlhRTUVRcHQtMWw2bi1weFdYZ2hoM2dPS3pHYXJSRUY5S1B4WmZTTkJmSXVncHExVTRPdXRZZXN0cXB2QU1Wc1lQYmZMcXBIYzVaOWhBX013Vm1IWUlOd0pUQUZtREtrYjVnS1BlRlR2T2NvSExuYUNQRmdwd1JXeXo0STlSUE12OTJocEU5NThKNkcxZjAxMnhlbW1rbEZjaktuYnhxVlh5UGx6VzdvY0NJX1JMY3VMeHJOeEl6M2tCUEhlaXlILVFfZHBpel90S3hjUDctaWlDTnZoN1FTQ0dDd3lLenZwSU04Z0w5T3lXRDN4THk5aHE2a3lzdVpFN0RmM191c0h4aGhUWXJVTkJXV2hOdHRnbHpuZ0xGYzhsTzNkVnVNdXltdWU0bDVWTkRLMnJMY1FsQUVaN2RsNzl3QlpwVnJPZEUyQ1Zab0ZnZkctWUNYYkVGWlFuZ1l3WTZndXFRMU1Nb0dsUzhBWlNSeXM4dldaX3B6UGJXbjJwc0ZPVll4U2xCWDd4YnhGbUlmNlQzUkZMNWNiVndqTTVocVRxYnE2Rzc1ajRzbmdlSWxJcUowU2ZOLXJwUlRVVmJfM293R2JZWU1PenRrVzNjeDN4ZG81YjIzTE1OYnNrUmRCc2dvUVlvVm9vMU50cjhlQjVWMlFXM08xbE5RS1M4UFYtVU9QR2E4S2NJelRTZ3ZCSmhvV3djWkxHbVpfVU1oeGFUS2FUbTFHdTRDV3laT2d2U0xMVnd1TlluY0cwbkt0MEpDdmVwSUxEODBFem51dWM1OVpwcWxoNmxGOFdXZHVWc2NWNy1zUGY4N1RpSnc1dVJXeXN1Q0xIYUVrNTFOa05pU0htYVktR3k5WF82NFFfdHNJOGw0N3IzeWw1NXAtc3IwZlpidE1kR2MyNXNuV2piQmRueWthT01hUU9tV3lUQ2xnSUNyLXhMZEpVRmdxWDBKM2RvUW40bUlHQlNuNkVPTUFUWE9aaURpTXQ1WFh6ZVRfRGRPX1BQNVhwLXVUZHlVODI0ejZkZjJScExtSU84cVd6WUZOLTg0UndkY0ozakppN1YzWUp5WGEtSkVQU2VaOE0wSGxxQnRFamUwVWVidG1CWi1CWFFxYlVMTW5ZNXdwVzVTWG9WVmNnVC00NThCdVpkd3JaaUtzR2dnQ2l0QnIteGVPcS1tbnZwT05CUlRZa3R1aEN1MGFYcno5Sk9MYlNYYTVHSzAzYUgyN0VOVURwT3lVZmxuaWt1YkYyQmJwaHl1QVdFcXFpYkRFelFkY0l1LV9wdEotZ3NQYTN2TUdpeENsYkpMTFZMMmRYOEphbGQ2cWZwMmxwTFdzWVV5d0wzbjB1QlB1Nl9qNmM1T0JHYUlTbURPaTg1YlBVbTRHN1JVbzloU3hCMlVBN1BySmIxSnB1WmJFaWRyMW9tMU9VcHN2cThIVUNlWFFSY0pDcllqTklfRnpPUWVOXy1NWW1na2JVZDFBYjdpenRjTWtybnlnSk5DUGFFWXVpd21GMlpsaEZkYWQ0emo1bnI1V0JQTEo4bkplSkgyS29BVDZ2UXhQVWJyVzRwcGFNX1VnZjhFTUlrekxhYnVvSEM5S2xUVnZVSWZVeGtsWWdZOUlMRWdPNVRHenJSRlY2WXFjSnhMVl9HTE83X2ZlNkRqU0pkWlgtWV93WDE5Vm1DT19zV3VNTkFzdjd1VzVfdXdqR214d3BDRHFKWDZpSTBiM2tHRF96bE9OdmY4cVZZUkFMaFY4LTZ1Y1RtWjNpc0picUUyek5aRjcxU01aQjRueGdCNUJXRldrRDFqVzJqZlNzSHM4QjhhRXVSWUpXQl9XWW9aa2YtQXU1NVpfaFgta3BEMGhRelIxNnZWbHV4VWRVbnplUlJvdDdJWGF0S1ZxMTFTaXVWMGdtMERCRVdGZWZfRDJ6bGhrRTN2OE1QY1NNVVo3VEJ1LVpZTnJRb3RJWEtvTHk4bldpUGlQNERUQWNsUm5GbV9QcFdWZ0lXVUN1c2tZRW1kSDlFLWNDYXNwRHBMenBlWnMtR0JORDBZTFBIY2IwQmRBbnVEekV3Ql9MU1hQRmtTeXpYeWh0NjBVUjdNVE9ZaWJRcTF1cDBkR3lYSDZvTGV4MkstMmUwaWJzUFNQRDVsdDQ5ZkhlM0swSzhRZE13T0hTbmV6OExSQUYyUDg0TEN1U1FNVks2amk0REVjZFZ0TVVva3J5MFFSYzhsNE01b2xNd0Y5bHpXU3cyMlJjLWVMVXFKQ3hxZkFGVjJOV0NtV2xfS05NeVUxa3BWcnFfV09JaHE2Tm9qSV9fSHJmSElFM2VKQ3psRU5zS05IOGRmdmloaXdFTmdoYThHNV8tOFhGMVo4WGpPbzY1VjBXazRBMUhGaFNTLUNrcVNZRUJJM0hsZThqV2ZRZTdnNmttaF9mWmROdWgyYTlyVUJPOWZNQUV1MnpSYmlkVDJJVHhxNURHemlvbHdWSDZXbHBUaGcycHBxX3RPSzF6WDk1MkktUXJudVU2dnRjRnJqTXVMMjRlUjl2R2RUMWVpQkQ3SkpKWHItem1FNGoxakdIVkliN2swM3JHM3lYaVN6V3ZfeDFBek1mNnphZkdtMnlaYm5PTWNxVzRGc0hlNEVFUnFrZ29zd0FIaHdxUjF3OXpWU21UWTdTTm9lbzRiYXJ3MmZlNnVsYlFLaDE4MzVDZjVrSDRrY3ZCeDlEXzFtQUFzVEp5VzJkZkNGX1AtdUxhRDN6aVg4RjRpbG9XNXROZ25JUTZJTXlhaWtoYlNRemZQOV9KZERUWGt1N2J5Nnl3TGgyYWxYUVFKbC1aa1JiSHRYWFVsazhlSWY1RTdpN29xeWtmRldRMGt2MGRFWXQzVVpwTE1oeDFZR0pyYVQ4TmF2aFJ2LUdoMmtxVUdaUUxNZGJqREswai1zTnJzMFVGYXM4UW9nWGpLckdXQ2FfSlhTTWZETmhMN3ZvR1NqVk4tX2JLT2stQUtsdnY5QVNkX1k0U05WUGF4RVdXZzUyWjAxSVZwalpJUk5janREekR0WHY1c3hfZG16TXJnMk5oZ1R6Q3FZWTRKQ2RFUUxaaUpyWnlORlBrLXpMdi1KV2c3VEdxSWpaZGktUWs3ZXVEZ3IydldIT0NvaUlVOGtUeFZ6TGctMndDYUo4VWZNWENteTFiU3B2Vnpza3ZmdHdvTkh1dmptVTlHbnVzb3duNHBtRVlSTVl0dDNSY3RJeVh5bUJoXzU2cm1lelNQenNJY1M2aGtQb3JqSTFuUFlxYmMtU3BTdGI4NThwZ0h4ZEt1T2VYNUk1NzFWTUJhdzlOc3RoZ0daQzVZSEw1Z2ZxQzZyZXBlVFRBOWdReE1Oa1lsUGVGRFNjRUpjbGlsUnBkRk5mMkJ1T2oxRDFkUFBxMTNDSDFXVS1LTWFSQlZ3aExtMW55dGU3NnNHemJMd3hJNVZsbG9DTGhVZVhOeEhuZ2J5VWtxS0V4VENpUjhHbzRxdDZEZnFzNy1KaURfeDhwQ1B0a19ZUEVmU1VSY0pidzFUNGdOMHk1OUpqUVU1V0RLeGlEeEZXLWdFc1A3Q1pJWXFxSUtFWTFmd05VWkllTWtQZkNnNDY5VkppR2oxS1pqOTgyM3doazlDRTczOHd6UVdpaDBJVUFjcTdQOWY0UDl6YjM2MVpFMUc5TDAyRGtMWEVUN2Q1ZVp1bHBBb1NfYV90REpibjdZNHJ0cW1BcXVBQl9VQXNvZTBYbTlsYmpYUFdyTGNqMWhvbEFXM3lRMXZhNkFsS1FWYUVqV193czJNZlNMZlhjNVF5Si1VekNDRVlCaks2RktNN3FRS090S3hhdGFjbjloLUF4cmQtVjYycnB6SHRJbnJoaVAyNEV6dm1BQUY5WUJNVkZJdTVmNHdUMFJNMWFCX2RXNFlXNFVldHcyZXpOa19HTWJSdS1xOFI2dDU4ZUNybDhveTJ4RUk4eGJUWUlSNWlGTmUxbTY0X00zMG5LOTFHME5mbWpqYnltYTBKQVU0WGdfaEZQUTI4SnZ0VXJjRzA0UzVQZlV6aFlxZDlaWHFJSnBqdjgzR2c1RUJhamRZOXhpaHYtRjF5Ry1BNFRPcFc4a0lGWUpqZnRneHRMSTM1ZG1Ya3BwZlA1d05Ob09CUjJ3Y3piTkJmRGZwYmRSQzZLZFM2d19ValZ0N2huUV80WnFjWTktWnZjamFNWkswUUFaVjZuMi1TZl81VEd5U0VYOE1XLXduNUlaQ2VZZXpCNkVzaGduYTJpQV84VUQxSjBBbnNlT0lyejd5STFVQUVEWXRXZ21IX056ZzByTnZNOHhkdnVNMjdtNEtSNVJsamNweXlDRmV4NHJLdXlhVzdLQ19lSkZsUkdXYkxKYjFSNTk2UTNXOFVyMEsxQmRvYW1ReUw2UGtRNUZxNDVDZUp2NnpHOUx2SERTUTUtU20wX3VzXzg0a1lhTTZ5blRKS3RVajdybmVUb0hvbDN4YmdMMjBpRkVnTzhYYjBDNy1uTzhIbldsYnJuVkYyeTVtWndfNW1USGRJSGYtcmNiLUdEN29SOGNGWVAzT0pmcDhTdHZIbjFsUlJsS3BXN1ZBQzVib1p5N0NDQzhpMGtyOHNqenJ3UlVxb0Y3bGhFMGVRdXNjRUVrMWdsUjF3ZWpQQmFOSnhWZU05TldSRHRveldEa28zd2hobHhWNW1kUlRXbGFmUlM5X0U5WkJUS0ZQVzRybjRtZjNhZWZNNjQ3T3FZc2NYXy1WZHJLX2g4eUdUSnZ3eVNJV1c5dTEzWVc1c0RKckk5LURUbUZzTHB5bXZIQjU3NENvRGxsMXhYRU9FclU0VlJibXZmN09halFyLUxnOW52OGQtS3pzeWRVR05oSXNLdUNxWHpBVVZ5TS1DLW1hMVowTlBEMDhneXBzaEZRTlJhS3Fyd01lcElBNDk2OFVDTElMVGlEWnFXeEtkZFo1VHpjMGFpdkVhbWwyR3dOR1ZnbFpfMHJqR2FITVg0TVVmTWdYdy1abFpKX2Z6WWZzNTFUN2R1N1pKRnFyd2dGQlRBVGRsUjRTSkVQMW1TNEVwSm9fMGptb0ZZLThqTnNOSzJwQld0c3MxWDlFT1VtZUpnT1JpcmVZZ3k3b0ZkWDhBZTdULVNrc0ZnRmNXMVM1ODRjUUtJbndfS2FkaUZEUlNZQ29OZkY2bUtTel9VaGVReUNDSGFZeUxhZm9mU0VtZmZ1REpwV2tyTzF6Q2xRUTNYNXIyaUNCWDVqQnNOS0RFMGQ1TFdBVHI0OEVXUGNubkNXeTBBVUtqSWhUTXJ6enp2by13bTVsTjF2VVYwZ0tVOG1rWE9qSDZiS1NCdjRMV1o4a3p2VWNhRW5DWGNsbWJoTjZXZm10Y1k2dTE5eE5WempSOEMwa0Y3UWZGWWZFcVFQUW1ndmpPWHhGZ2RteU16ZElLT1VqT2ZYSEhVWDZtNnhSZTlEc1Vaem45N0l3NDJhNDBSNzRwd1R0b25SenlleWF4eGlYZHRvN2JUM2lVbXhTakRNc3BQWEJ3NFZ1UURRNmFwSEhidUExVWh1UGxOTnluMTMzV25kSWtMQkxGQUxvZF8xUXM2TDY0MXMyeUtzNnpxODF4eV9fT3ZtWG8weFJUMlhHd2o1R2NpSGh6UmVaTklsbUJUR2pOa0NuLVY3UFN4a0doSXBTMWo0TnF0S09GY2lyQ1JMaFRiZ1J1eG9nejFnWmNJV1gwUlhfem9QMEVNdXdfV0VqWmVJMTJfNVMzVjRQeFFtS0I1TW1NTVZvYi14aU1sRHlPRlpEcW9ZdVhWTkI4LVplU1RvcEhLaUJvZmxGajQtRXJiSTVoejYtcEVzTEZ6VmVIU2RCSEZibGFLUkxtXzFnR1hJcnR3Q3lEWERYOTBrRWhWU2UxX1U2TkVsUXJ5SXFVSlVIX2s2UmFwZG93aFlGUktfaTVSZ0psLW1ROGdYNWkyZl9NTHcxVmxtVElHTEw2eTJBelI2TFZ4cms0UHRmcy0xeHc0YzBfRHRQYzRXX0k3dFJuZm5GaEpBSS1GWnhZeUcxVHFaMWhtbUpMejhiSkNIaDNyQk56STNxRmtBaXdLSFN5YjJ5VWZ1dEFjZXRVZkc4eUtmRUNybk4xQUpZMWtyVkpVa2JTUUtKWnM2M3NyUTZFYjBGc2dTaTBUQXN5SjFRSDZFN0h6NE5vcXgxa0tnWlF4cnBKbi1tTFZRelNGamc4X0FpQWxEYzc0TzZtcldqT3NoejVBVWtER2VRSEczZEE0dHZTaTJxdFpaYW0wX2psUmVDeUdWaHE1amptdTh4R2s0a0Q5YUdLeDJmVVRpalNMSmdFQWttbVlDbTNLNkVZR2JDX284U2JjSnpRVGNoa09vNnA1dlpSblZyLUo1bUxaY0VnOHJ0bG1WWWZzbGRZMVVPeUVqR2xNRjgyZEQ5M0g1cFVSVk5VUkVoRVAzQTgxMFc4Y1NXeXByR3p6RURJaktZdmRDMjF1MENXaE1GYTRvN1VyT1A0M0NyRnZKSWNZNzROWHNOTWVYTk05ZFBzdzBpdV9HMjZ5cGhOUEZIb3J3V3RoWmozMHRLOVhHeDFCZzJDY0Q4a2VMUFdrOU1Ccm5KZGMwNWRWUE92TEUwX1JfOHFfYkpicDNZR1Y1YmY3Tm9LOTduU0pEVUFYVWlVZlp5cDRrZDQ1UjlPdG16V3J4RnZkSG1MaWdvZl9WdUJjWTBHa1lYeHNZTVd5RFN5SkdqM2E4bHJxeUF0dXpyVldmdjdweTlnVWRtZWlkVmpHU0RSUkx2eDhCQzZsOU12UGFIdW4zaFRFeEtJX2tzUkNSVXg3TDlBUkZkcUtBaGVweXpfZTlKUHFnMXVDbnVYcjZ4bWdtV1VxTGgyZ2tvakFtN1dxWTlyTUlSZEtUX0h5OE5McVpES2ZaVUQtcUpFT01LeUh6d3NBTkJ6VzhnOHVMeWNHUHJrSkliTnpFUE1NdjRQM2lhOFhhdDNIbzNzQ2VsZHEyWTVvMXV4MEdiZGpSbjIyQ0VZazhid0dUZ2JhM08wd3hsVWhXdjZkeFZianRmVnY5QTBJSmxvZ0swX2lwc3NWb0d1RGp4Rm5nMjZGLW5WcTFEbXctTTFPRGNjVDVXVm5tTkRWcEc0UDJGTGVweUN2QWhjZ0ZYUEVUN0ZzajZzT3NoTUdoTnZFOU5feHJ0dGMwV2dtaTR3aE1RVTZYTHVmS1QyeGZwNWU3cFVoQ29TaldieURMUExKZ3dVRzZpVkMzNXZJTmlMZVV2MlpzU0E1THU4NmJ3V2laeGs2cHhlbWFweEgwWFZmU29jZ2E0bkltR0dtRUdfWm9ZVHlyZ0syRm5nRXRXandFNEtEaWZFVms3d2pEWkRwUEhEZG5Kb0x1d0FWNk10WHlqdm01Y2ZhTVNlV3Flcnh1dXYtMHhDVXl3TG42WDJhbjdCVXJDdE93ZmJNeVRSZ3FwLTJ6Um9pdUdVUlA1dEs4bkR0bEJ1YXRnaXVRdmZCcjZ5RmpXWlpnYkt3aUlFeUxKWjJqd2hweVMzbEhfak1vY3lWZzA1SkZHQUZxY3R5NFFPTGQxT0F6TEpDY0pIalBqX3NQdnRGZFNVa1NvZ2IzQTVYYmY2MzdGVVRnMDI4ZkxuOF9vWVpjbGQ2MHM3ZUFBSC1sUDJUV09zeUR0UlBIckJ3RGFtU25DNncyWmxWRjRNbmdOX2duNWdnU2ZsWlNRQVl4LVVHWFhjR3pYX01SZURYaXZYMjlHNF9LaGtkSnA2V25BZ19ydTNWTGhPTUFSeXpER2p0UzYyVlYyN29fMG5GdzBKVkU3My1vYWlxTVVoanNqWHhMUlZ3Z0NhQ09IWWVUVlA1VUZxSTFpZXl2cnlIek8xRUpaNTNZSVpBT1BYMjdtNmxUNlNBa1VzV0NPTUZmR21nVTllbmsxMnVtU05JS1pUajV0Y0Y2ZjY1ZjFQaHk4WFdITDYtR0lNVUMzVmNEZmdqUVZXUkJ2Um5ILURhdEEwdEc5UERzQmhsZ2VzblF3QlF0dkgxR0FmRXNkNnhsTUZJOW5sSkp5Q2pzZWpZV2pHRE1rVWFfcGllelVuZElpck9qS05BR1pTdzhRYUVCbXF6SC02Q0hTZXQ1TThwZmI4NTV4ZTc0RXNpVFZWWjRGNDh4U1M1NG9Zdml2X0VCajlPUklOZTg3Q3ZUdlZ6VU5vQ2ZWajlrb0Jub1BmdmFQd0JRdmZSYzJmbE1TM3hTOFdSRUpvbUkycXEta0RLbkNfbC10QVZzR2FPS1VpTUJQem5fa2RLbWxEVXFWYXp4XzJPOXIteEVKM05tSlpIU2hOQ2dtNTYxZTl0emJVY2Fud3hBcnhISlRtbk5RMmEtYlB6di1Sa3lWdEN6Qm9ualAxTkw0elJndkNqdjIyQV91cWJzMXhqRTVSOUJmSkVEcE5IS0xfa2JwZnBBV3M1bTkwNDlxVDkxYTdoQ0tIdzFORWlpd05iNnRNZWV3OHBLc011Znd0S2VLOHNiMWxVSlotNDRleTlxZXhGOWNiR2tHb3lhcGxBNTAyUTdHWEoyWlBNcEFsdDBsenBhamp0MVlmQkRka0tEQTEtUEk5NDFaRDVoOVVMbUFPSTJaUllWNDNWcUxSaXJYc1VIdUh5cnVmLWxmX2hkX2loTmpIcnVVbnE5ODktcVBVOGhtY3R3b1RMRl82eGROWnpuc2VfSjNLLVRQazJKMHZEc2pFdHpPTVU2c2VYWEV2bC03LXdJTG1QTm1zdjRnNjYzVjBpUFU0enFaQV9FSlZTQUdmZ3YycUM4bk55QUlzZ25uTk1RSXlCaS1NQkwzbVppZnVab0s1aHlvZ0JCSEsyQjI2ZlkxMEFnclVfSkN2MlQ3UVpRaWZUTk56dGtHTUpvUDh3RVpkVnlaTlRtcXVRLVFZUG85TmFjME9OSTdfOENDb1pkRWV1cFhKUHlrR0xzOUt5VzVqbGxmNzlvNHVnb19rZl92bnRaQWFxVmdyZjRrakNFalNBZGw4NGZEaEEySlNCaVRYSjlqY2owQUlfT29XaTN3R01Ja3Z5NTlkNmxJRVRFVW5pd2NNRUtOVUZ3TWUwS0JEekhrOXdCN2Z4M1BiMVlDdmJWcnRVM2wtNDd1aFUzb2c0TW9VVVBSWE02VkVnUWtpcWd0cW5ySWpISUZOM182RmpnQXo3ZjczVWJQM0FmR1ZuWUc5ME94Ui1NUGFmXzdEcjVEYVhMUXkwWjVYdGJULTlJSFFNMWU5M1ZsVWFYVk9jYko0cFc3RFNpN3lwZ0VzUmhlX3BGcWZsNF9UeDFzY2dIWlhpaU9XZ2pEMmczelFRYzhEUDZPVUVjQ3N0TFdQN2RRVVdydG5zTWNOV21pYXNaV3dJWXBKVU9KTGJwRF9nZW8zOUowUDFZVUt1WEREN0xJNnFzRm84VFJqcmFnMjl4U1B2MVF6VmliaHpPUkJTRnRRdVNFU1l4Z3pzUTFLT2tPdk95cVJEdkE2TTJBWTgzR3B2aHc3emFkZWwyb01zQVhITU9YajhHT2Z5R2d6a1U4T1Z1bEVXOWNsRlM0bm8yNTNZaE9HNmFFU2J1TFRvQW9MWTF0RVBWWGltQS0wd25STy01TW9uWmtWQjdFOU9LeDVzeTlGVlJRc2h2VWJGTDRwbGFoYXJwN2FsbmE3S1dkLWthNzkzczhzZnJiU0Z1WC1QVF9LVjFzYzNNQnVwWXhKUUdIQmdUNFhuTENjMlZUdTA1eGV3WjNaUW5ZakRHQlpvY3V0SDVCampNdDZQSVpETVgzZHJoOTFLVzdUaEJFUHl2aXF5N19ZMEVzUWxnTldyVlZBLThWR1AtRUNaeU1kZ21zRlVVNTFMVFJNY3kwc0FZSFZMb1p1VHRMSzEwWG8wa1pmc0RaQXNYc2JXNTZ5YVhvak1WbXgwdDZ4NGZlYm1udzdIaURwQlhxcEhiejdMYXpLMnVtNHRQZlJIYVlLSXpkRjR3aGVMSHZlSVpUSHQ3MGdrWENZZTR1NHN0MkZvaUR3RlAyM0RPb015Vk9UV0xyYW16SXAwWXRWd2Z4cjF0bWlJeFZfZ1U0ekJpR0s1bXhwS2xhOExVcXdSYVlWd3Rib213QjRJdjlTM2lKQ2xua1Itb0x6bTJ0cmNlMENBbEVuVFVPXzF4NjM4SEoxS2Q0aXNNT3NCeDNRRlR0Zlo4ZVdYZ1dQZFVHVktOWW9VZ0txSDE1NVF4T3Nyekl4aDZXbEt6d21RTThSbTVJNHJqZ0pVeWpSMHdhNlFyOUxFcE5mVFpjYnQwcWIybmRXOWsxQlNTazh0eUV4S3NsSzJhU3lhMWt1eVFoUTBxRWxsSUFCemNEU05kb0hIRUIzaEhWZ0tNOHNLcDBxNzFIaXNZeDlaTTZzeGxUWm5KdG1ZXzFvZV9qaGVmMWNlTGswYlNIY0ZlaUpKZ2JwWUhRNV93S0ZuSlhPa2wtWkRjbjhvZ3NFaVlNWmJfMUJ2OUM3VFdmOEFRUGMtQjlKZHRoYk11Sy1IODUzS01lSUpyZlI4RTZFR3ZWQ09ubXpaeEpsVlJmQlF1ei1kZy1BWVh4ZHpnU0Z1Q0hOamNwbmpiaU9ZZVh0STNFaUpfaWY5b0lJTHU1cW12R1I1M1U5ai1SNUQ4YUh5UzRTZzctS2hnWjAtNk1NbllfaVUwbjVRQ1JJV0I0MFVmWExWdVEyVXkxLWRwNnJfdlUzQzdvOVFTTTdTc3VXWVNHTzR4RGNjMWEyckw0X2R5R0dMRVlEblR4MTd1ak5MVExKYU9UYUNIYmlIUkhuQ3I3a2R2eFRaWWhOeXFQRjBlUElkcUlITmVGQ0FkcmN0eHZhZWhWMzBGek5WMXpJQnRYbjNJZ1FfRTdxZDdBRjVtN3ZpOWdfOEtUSGMyR0otZ3Jkd2ZNTXhjdkRsOHc2dmxOaFY3eDQ0ZXBqX0w2dnByZ196SW9NcHZsaUI3WE55dlhrd2hKeDVtUWU2LU1rT0pOQWhJY2stU0djeUhuLXZjOWl2dkxaWVh5WXRjZVg1VHJpQnZ6cktCM3pVOE1Ib1BjZjJCWmxJMjJ3QmV6bjNoNS1qQm9mdFhYR2UtWWpwMUZleUFWcDhtYTlON1Z5SjF3eWtXNzBnREplNlZYcE5aYW5lSVQ0T255ZnZpTTZiV21IRnlrd3VnUHROR3FPcXdzSVpSYjdTai1TSzRTYmN4M0ZIY3VlVTNsX3VLRWZLdU45ZTAtR0NlVVp0bDNzYlA2dUJvNi1jY2tHV3NGa3k1UllfWVUxb2lWbkV1ZGJPMmFHNWJEeS1va3NvM2VyUkpGZzBCWVhiWkpHeC1XbVdtWHkwTUV3RC1mZW9zSEdWdE82WHRqNUlwWVJnVGdQZ3puQzgzVTB1ZlJlSVB4SXc5aUtDX0hIMVUyQVJLMkdEUG9CdHpYeC16T3F1Q2NHUVhfa3dIdF9RRUJBdGJvTUt1VnZaWV9lVjNHdmVFZG1DbU83LW14S280NTM3UHg2MTlfRmZ5NGxKa2lnN2hhNE9JYmJENUhaZzFWdFFBQWhQNUtuVjkyVVJFbExXOGdjcW95ZkVEWjlWaDFPSkk4MFdaY2YzNHA4LWxJcEluMHV0bXdNMExjVkctUWhLcjVIc2tmRXFmLW5VMDhQRFd3UkRjTXpHUDFmcXdZVFhpeUJtMmxzaFlWQnRzTU9HaWZiMDJMMVpGbjk3eEFrZUZPNjhBTWhrTmZLQUl4TFJyWVZONU9hdnlFQTB1Y0RKVEdLWm54MmZPeEh6a1ZiTDFBUEhqWThyeEdBU0UwNEdQZmM5OGRKTjNtRF8wQ2NmaEpTcUJzMFpJcnQ2OVd3OFFqelJ5ZFhZVzgxVWlmRnp2VVlUdlhrWkFJT1JRNGU1NUpjbHVZZmttNFRyNzF4eTRuWW9aX0IwMklfa2R1LXhwMnJ6M3o1bEZHWVhCQUJQR082TGxLc00wbnhtN21HVVZldU5MeGxYT3NBTkV3aFJzbC1hYXM0RjQ2a1ZqY1ZMTy1vYjRkUHRUWVNrNXBZSlRZaWFvQThSX1UxUGRIc2FwZzZWX0tVdm51bE9hZ01NX1BZVjhsSDU2bVFMVWFDTXNNZTJVeGVDQ3R4UHpQN0t0aWZaaEpkWFQzSWYwZHY0bVJib29ZUGwyMFhJQVZOeG03QU9JZV9GMjcyajBUYXo3M2VQNXd4OFNkZldoUjlBcWlwaGNXMEhGeHJrRFRXQXhxa2tXRXlyWk9wejZBSUo0MWhBeWZ3dmN0LnYwZk5jc0h2VU1ua1Z0b1BFVXVORktlSGhEY3VIYXNIeHBNa0E0SktCZ2s" - }, - "StatusCode": 409, - "ResponseHeaders": { - "Cache-Control": "no-cache", - "Content-Length": "677", - "Content-Type": "application/json; charset=utf-8", - "Date": "Mon, 16 May 2022 18:15:25 GMT", - "Expires": "-1", - "Pragma": "no-cache", - "Strict-Transport-Security": "max-age=31536000;includeSubDomains", - "X-Content-Type-Options": "nosniff", - "x-ms-keyvault-network-info": "conn_type=Ipv4;addr=73.83.78.150;act_addr_fam=InterNetwork;", - "x-ms-keyvault-region": "westus2", - "x-ms-keyvault-service-version": "1.9.395.1", - "x-ms-request-id": "38b2dc27-408e-4f1d-9c4d-cc390d9d9eba" - }, - "ResponseBody": { - "error": { - "code": "Conflict", - "message": "There was a conflict restoring the certificate \u0027https://fakekvurl.vault.azure.net/certificates/certRestore3931096132/a0aff3fe2bf644f1b0bccf83e3363d5d\u0027. This can happen if either: a second certificate with the same name was created after the first certificate was deleted; thus trying to restore a certificate whose name is already in use. To fix this, rename the second certificate to something else so that the restore works. The second probable cause of this exception is when multiple operations are performed in parallel against the certificate. To avoid this error, perform operations against a certificate in a sequential manner." - } - } - }, - { - "RequestUri": "https://fakekvurl.vault.azure.net/certificates/restore?api-version=7.3", - "RequestMethod": "POST", - "RequestHeaders": { - ":method": "POST", - "Accept": "application/json", - "Accept-Encoding": "gzip", - "Authorization": "Sanitized", - "Content-Length": "43523", - "Content-Type": "application/json", - "User-Agent": "azsdk-go-azcertificates/v0.4.2 (go1.18; Windows_NT)" - }, - "RequestBody": { - "value": "JkF6dXJlS2V5VmF1bHRLZXlCYWNrdXBWMS5taWNyb3NvZnQuY29tZXlKcmFXUWlPaUl5WVdabU5tRmhNUzAzTm1Ka0xUUTBZVGN0WVRjek5DMDJaalZoWkRCaU5XRTRPVGdpTENKaGJHY2lPaUpTVTBFdFQwRkZVQzB5TlRZaUxDSmxibU1pT2lKQk1qVTJRMEpETFVoVE5URXlJbjAuSEotNy1sR01tX1BRR1VhTkl5X0doaS1ueFhRczFxVUMybGRMdkNGSzZsNTRjQTlkb0N2MHF0QnM4aUlPWE5jX0JBQ25ZVjVnT0VncTk5NlNrOHQ5dlg3bTJtMXl6RWVVQzQ0Zk1sSm9jZk81c0VvVkkxZUkzeDluRi1lOVJTNFRwZzRfRFh2czRNXzREZjlQUkhLd1hKQzctLVVCcFdMMG91RHRhLWFZelJvVXRLX2Z0eE04a3h6Q1FpV3FuVlNVSTFZMXk1bjNmWjVxcElSUmgyZ1hrWlJnRTg3dUduUmpqbDJVRVhyMlJOdjltMmdZYnpkNEo5eS1HOEQzTGhXSEE1SUZ0WnRjRTVoOVJhVVVsVGppN29aTUxsZUZfa0JKWUJmYm9ZRFFJam12aHZEZDFiNGJxNms4NUs2NldvWjZ1V1JoNVVCUzZiRU1zVVRDdUpCT3F3LkU3UzE5M0xVWnhLeHJSZnB6U1JKWncua3ZwTGxDSUkxU1NaUFAwR3lLZ1lTU2FpZjFzVG1kaFVvRFY3UTFXaENkTUQwYTFiQi1oaXJoWGxPYkw1YW42SlZlZGJOclRfQjlJRkgtYmhwVXB1eTVBRjJQV3hzWGdMc0dWMGxVdUVfYWlkRVdjM2d4d3Y0VFVZY0tBazlGTHRTSjJMdkR5RlhpanhaMVphdnh1dW1RT2g1clc1RDJZTWVMc2VEcDktdkJDblJpVEk0T1o0N0FkMjhIVEl5eDNnR0xXMDc4aDZBTElKVl9LMW8teFJyUm9DRG1ReEFjUldhVzdOakdBVk5kbkZIR0xlR0dQYW12NDdub0x1aXN4bGRVc0pKa09ZQm44V0VuU1hjMWpsS0JqTjdveFh6Mm5CRTNicmp0b09vNHkzc0ZoUjYzY0V5cGcwS1Mzd2hBT2JmaHc4ajlIUkNwTmVjTUEyVThPZHRWTVlwOXEtM2hVdXZhd3lESng4Q2phcV85ZGdCTVp4MnRKTERwZEd2ekJ2SGQwaHBYdTZ5RFNiZVNyalhZMzlIRTFVNWVOSTZIVUlCYnI3UUx4N2F4UVlsSmdUQnlSQjBDLUM3TTFpVC00dUtYd05wbUtvMkNBS01QM2xfT2VzQ3NRclBRTXN1eGRUODlSZmJ0U1JacVd1Yi1vNUNVTWdTTHBmSlFrbGNvYVhIMThydUxmRHJJSGtGeFBhcGtkRlR0dGtINjc5eWZXMHk2N1NQSWVVLUUxVTdENHlDRE5vNUpROW9ka0M4bTFJd21IWUttQUpQRDlmd1dKNlFRLVM0Vnc4bU5SdjNDZzRPSzROMzN2Ym5ibHZaS0NLeGNxV2dnMzlyTk1pZmE5Rm1wVTJsTzNGSUk0dUFkNFBRTjVGd0sxZk5zOTlYMWdWdDJoOUVRUFVjV3EyeUVtNENsUzVmTndBbUswdXB1MVJXSTQ0bWVLRTdBUUpxeWxNSUdja0s1ZzFqZFRtQlc1VTd3aUxQZVVBNTR6T1ZKREJtbm0tVjV5TkdwR2Z5bmtyUmFLdDlFN09nZGFFNnFkWDRYMGRBSHpNb1Q3QzJYZ2NaY3RkeTR1dE1ZNy01UEUxQ2tKdVRTNmw5a3d0ZTZpc2hkazdFQ2VzcWJyVkpSeC0zZ3RiSE04alBoVHRrU1h2Njc4aklBNy1mZG42Z3ZORVhHczFZajJFQmNhTUZhU1FtZF93YTBMQlNTaHdLdGRYdjZSVXVZZFpqM3VldkVPdHc3VUFkcVBjdkExV0swVnBjSU5jcTBLYzkxQlhYMXFGRzdVRDl4MTQyM01ZN2NKMXlVMDZNeUs1RG9rY2treGNhSlBJWEFlQldodWpTMVFWWHdiZkdIZUdpMVR2dk03d3poTzJXaXIyRVhwNUhpMm41UlVtUm9IMXJHUDRmeEtRemYwTUkzRnZnSHBpN2tWeWdVaDVZbXdrbFVlVGxTQU4teHlRYnlFWFFlMHVaSC1TaEV4ME1XRzZLbElsU2RGS0sxNEJCVERFVE1oMHA3NF9nNWlNRUhLRDJzSWF3dVpUTWF4WGNGcFhlLXdFZkxnLXEwYzh1NGYzd01qVFRfc2pvOFRkM25laHU2eV9SUk90NkpRbURrUFBFdzNzbkNIOEJSRnR2ZGFWODZWYlZFc3ViMmdZZW1KTUk1Q24yTDgyMTZLXy1UUHRKWnlJcXNOV2pUaEhfMGpicXhhMThvcmNrTURKbVBSLVQ5am9jSUI0elgwTVR1SzN4bDR0UnFTUW5wRXZ0WUstQWdYM0R0NlZqdWlYQU1EMFFKX0wteTF6dVpUY1Z4SEhiVnU5LVRDb2ZiU1dRR0ZqSDFIWlljYURsa1BKNVdfZEUyZ2ZDMEFVZzZDUEhZcXFlckxvQzZfd3lTLU91TDFLblR3aUZfRVh1WXhYUndyNHBMR2VCdG1jOEVmQVc2XzFPdWxlS2NrMnBTcjdDUk0zV0VNeU5WNmxGT0c3TVlNdE1aNHNtbEV4VGF6ZE9RUEJkRXR3LUJXbnFsdnhZM05ZeUJWMkRFME5ZdnMzaUZ1TnhfTXhxZ0g3UzFHdFN2YW0wVWJ5cFdLRHVjeDFmQ3h6WXNST09SOGd1Sy1QU0RwVHFuX2luWWJuTi05dlFQQ3RzcERHR1JHTnQzTUQyVlZRS0lHTHp1NFpaa3IxRlZvRTZBemtabUEzYjdLVkpxNlItdU4xZHNvQXl3OElfNjRpVFVBbVdWYTI1aUpkdjdLQWlQYVpmbWFuM1BqN3gwSnJfRVNiTGRGb29ZM3otQXFTNmhjZ2dVRGYyVmMtUFlGTXRnZEhzRzlhWWRLeXNLYmJoTFN2Z0laTFg4VzJGa1J4OTVFTk12UERsR3ZLYXpJdVVVc284UDBteUR6SDEzbnRwZEU3R2YyckVRMU92WllDbk5IRXZmS3BocGZoenlZY1kyTFFPQnZQWEx3VnRzVWdFRk5yMzJ2S0RfVEVuSmFNN2RWS043Q0NzWnV1S0dqNVJjRnotR3dzRFVqZXpwajR6QU9neV9Gc1FFMmt0eE9SYjJWVTlZbHlOM09BM3kwOGllRUo3VkR3cnhmNzY0eWZFaVZvTktUQzJkZlZtazhrbGg3VWd2d0F4SzQtQ3E0TXhKcHl6YXQ2LTdBdUlIdloxSlM1NWcwQmVtNXRjNlpFR0NaODM4MkhDakNVbFFvSTRIY25MbE9WQS1hRVAzRGNuc0NYd3NjRU1hYlU1WjJ3cWQ5Qm9mQzg2U3pYa2staHFGUlB5S0lIT0FLZVVId0QtWEhhd2ZhTjh6Y2ppRURPclNzbnJrbHQzYTBNRkljeVBJVXNybXk3Mlh0eGczRmttNmJMSlRqeWEzWk9BOVV2QkNDVnZXS1FQdzBjRGNqdmlhLVh4YjZmWC11dU5zVFhXZUhkbFlSQnJhTExHeGNLOXVrc0l0dDBFS3FVUmJRQk5Ld3lWa29HSXNkejNWMlZEdmZoWlk0cmhCdmJwdFo3bWF1enBfMmpMTU82TEwxTi1xV2g2UnJIWFlfTmJOd1FCZS1BV003Q2k2bUFYX1VwRXRRUGo4T0NwYUtWa1N5ekRCUkYtRWVoOXM3S1MtemZVSWNRM3B4V0NnQXNxblhlMHNKQkltaGZCUmdKTnBnMFVzOVZpY2otVTdPV0FuNVFvdWtqREhJLTZjM0Q5dGF1ZlRVTEc4VWpVdjJTYzhVamVLdmY4dWJzY0FCaVh6WTAzc1dOQXFQdW5QSURPdVZKOHRPQ2N3RDdHOFNQT0pPSTRjaUVScFNOUkFoT01RNXp2Z04xUXdhSkxpdlpVNFNtMUVCLWZLcC1fTXVBOXNyNW9Dc2RpQVU2VHpseFpJRGxZR3g1RU1KSmRJWm1FdUx5enJxRnA2VDNNeVFNdGlScFV0LUk0TDdpSENYUUphd20yUkhQLVVsdWJyMkhxVDFHaFFnTk42dUxKYXJCUlI2dnJRT2hJazJUME02S2g5czBtaXpNcTdsTC1XaEdTXzdpOTZZb0lMajNkVFY1NTU0bWtRNlRIQV9NTUpYMU1DTWdPWHZfb1M4QmdVdHJpTVVUaWVUNFdIeGN6bFRacFVFQXFNdjRpSTFDQmdnRHY2V05pUVJxN3pZb21mcE81cVg3Q25jeUd3MXNiSmctZXhVQUF0S3F2c3BYYlkxcDZzRkZseVhPNFlQOU9IV3NLM1kyRVBJSk9FSW5GTlhXbmw2VjlJdE82TzBMZy1kaTlpTGtlaUJxSlhWNGhMYURBRXhIb3RmOFVkaHNIdVFPclRLWDFuU0xzSVZmMmZROUhCdzRYVVAzWVZpQjhvdDVleHo0OF9UY2QxRnpOWk1pcE5tMmtLTUVsMWYyU1BjVlotX0o4ZWpId1p1ZGdkU1h2aHM3MmNRVHNBVkRGS1loSDFkRzBNSnJwbnhkSW5GZ0hWN2tTbjlYMGEzRjJOa1NldWtMbGJfSzEzQm5oMzhlZmRlNHIweWtiQmpNR1c2ZHhoT2RGcFllVmdmM09GaWkxd3NGME01a3ZYOFFBaEkzVzM0MW4zcXdlWjludnltWDBhblNJZmVQbEpwU190X0NuVVBIVzFtTkVjNVJmWndKYkxHYjJES2hKaUx5LTJGZWhFTHdvTVJ0akJtcC1CSnlBX1VkcDBEdmljUk9hd01DS2g5eWZJa2NQQnFWQ2E3OWduaHJ0NTlYbzFzNW1kSjdIN0ZWM2hjbjZwaURFWWhWRnBfaTNrZ21xQmlUV1NnbnlLc0ZkX0xIS2RIaFpLZk9kN2o5X0d2OTBKVk1ZVGZOTVh1NUJjR3ZIUzN1M1hHMmE2bDBXdHBGNTdCSmdCZUhYazBIOUgyYU95T0czdWdoYjR6QUFwN256NXJUclJvT283NURxTEpfdkR6bGVBLXpIX3pDQnUzTTh4UW1WZ3FhUzN2QllzRm92MHZRd2VEU29mUW90VnNRMHJTNEpvVnFEQzVZMk1kaWM5aEs1OVgtUjl1dkZQUGVlNURnczBHdk9ublZnQ0I5b0Y1djU0UW13RjVBU01teEJaVkR5WHYwNi1McTlkTFBaelJHaTVVbC1OcWMzYmI3X285aUtTZW9xSmxjRE1ydURyOFNKWHl5YTJLWTZtTWlMRzVMMmxLUTFvQ2dZMy03M0E4N2JHMHJpakZ2QnF3dzdvY3NwaUI1YzE2VFdzb0p2V3MwY0JYZDFoRmV1Z05xbkYxeHVPMjhoNnpFQjVvUGpQUjBnYnVxM0I5eVU1dEZjQjM3Z1dreTN5SWc3bTR6S3g5UFdSMnZnOXlKTkJybTY1SjNNaU1xeXlzWTJKR0gwdjk4WmZfYVNaT0xjYWI3UFZIcjExTDVQTWtwdkZJUTB2bi1FVEVobFVqVmY2b1dndXEzSW5xMHUwaHNhWDdDN1ltV3ROSzdwQ3VKa0xlalVLVE04TUFqaWF0X0dBQ3htV3lxdmM3N2VJTmtUa0NENmdPWVhYd1JmNUQtYkl1cjFyYThGeTV3QXoxd2VmRTFWa0YzQmhTTmZnTi1EczZONy10Zy1tNUV2X1hlT2w3NGFvb3lQYXFVWFNadFhLYkRiVjV3QjAtemdidVdXc3pia2hvelREbngyTmlOak5Sdlo0ekp1eEp4TWNtRkUtOFQwbFBmcVBVYlBoeFJ0ZTZscTFUbzhfcnZiLWkxbUc1NUxfY1VUc0lLeHF3REplc3dveVRfLTFBUkRERDJXWDRPa3N6bmE5RjItQVNWS0ZnX3JjZDJ6V3F3eEhyT0xheWlmZTF6OElPbmJLODRYbVBCLWZJVW4zWG93ektSQjc5Qm1JYTl2UFJGRlNTejVuZ1V2UTBCVHVaY2ZuUXBNQWF3TkVBRnZaSkNRaC1vaU9EcHNLOWtuam9nTTBPQUNSbWdvU1hwb2ZGbnJQUXlHOVBtMHhVNGhzMEZLMERmSFpKWHBhdFExX1BiUmlGRGlwMjZKRVFmVE1TT2lGRVRUVklaVnZzaHJ1TGJoc1FxU2hzcmJEa2tuMGRDRmlQNDNxLTRycENNMmQtMllVaFpCbFlnVkRCT2JCOENrd0dQTUd0U0QxakZuZnJycm10MDhha2NSeXhBLWdSWm9vZkpkdDJvUm5wS3I5TklGeFZZekM2aXlySWxYeHk3d05UdXBDMzdhRFZhQTNBUlROaDJZUFZTMGhVOXVkOFNUdC1seGNaWk1BZXF3Ni0weXlvX21OSXpUZkVybHlSdTIzZmdJQVhxajNtemoyN2FSeHZ5QmhsZzE3Yll5cXpycy1kRXBGcURCbWJXWWdVN2hYS1l2Z2I0dlAxU0lrajlTUzB1NnlMNGZXYWR5RWt2WlFlTldzdXJqMzZfSHNqenB3T3dhOER1SVMxWVBfRDNtTHBhZzBDaEpfcUF4b2ROQnU3azBXeTMyV1FhQmNfSnE5OW1UWUl4OC1BRnJGbFJYTUJHS3ZwaE8xYzJCd085S0JGMkU3dERRRkpCX19DMHpiSFVKS0tZbTZVczNsLXpxMnNKX0dETEphNlN5dGZYWFI5ZVc5M2xmR1p2SnFWLWNheVBFQkNHd2c4MTdpNldxaGdkbFVtSnZHYjZSTzNBUHRfSGsyZjNlckJzVVFuc0RHcnQtdWFVSlRJVVZENTkya1AwZUFOU092QUV5V0JLVEZhd3FQSVZEYmpHQmFqS0Q2N29tTWtLX0EtRlA0aGpnZFM0bDk1a3JIT3dLYUxOSU1TRTNQN3ZYejVqNHp3MjAyUlVCSWJrY1hMdmxtV3VoWVA0QnI1bTJESEVESzVfY3gwSHE4Y1hoYlR4b1ZXcGZPellOY2FhcEx2VXBrb3ZKNDFqLXp4aW80ZnI3R3NnOFpQSzZHWU5XeXlwcnd2b3NqUHJZMmJRYzVPWURhN051aDREN2tJUk1sM0tvX0dNVWNtbU95aEpjUV84eGtMRGtreTlYSlFONWFHaUlFRkpQeE9ibFdWcGdfNzR3TXVUTjVLdmU2MUM0ODZBQ04zZDRWbzROZVZrUDBzU2tpUTBHVk9HMG9LbERUV0pPUjVZdlpab3J2bjNvbjFESkE2SWRvdGFENC11MTRYbHRXenlwNlZHZnZMcUc3eXVUUS1Lb1BVaEFZVUhjekREaUw1RUpZQ3NVQnVIbWVMY1pmR3ZIcUx4ZnZsT1Y3NUU1cEcyRjd5V2pjdWx6X1JyaF82YTFMT3lHOXZDLXNNeHFpNkZ6VDFfT0ZMX21xVXU4UnIzTnZObHdqNHloZENaQlYtZ3VZbGQ5MEh0NFhsZE1od1F1emZ0MEUzOWdXTm1yUEFaRENoLW1VTGxBd1JYeF9zRzNOUmh3YUNnUl9OazNCU2Y1Z2RTejk3TFYzM292MGw2ZDhuYTUtS2FaODgydmFFSXVyX090cVlZNlJzYjNkc29McXAxR05vajZyem9kLV9VOEVaYWRfdWhTRkNUZ0tWMFNCckZOQjIwcl82SDRIQlF3MURVVWFjUEY2UXl6V1l2OVdhTm1YeG9KS3Z6TlNxSENDdmw4RGNLbG5Yd0Jpdzdkb2Nucl9RVl9idTVjQU5DbWhlSkN3dWNpVVZ0Zi10TjdvdHN0dGxBb0k5bmJqelNhN01pZGpOMXRRVXZiTmxoVHBveTFjRF9WT2RJLWsyTHhQQTNwemJNaEdnSk1QaHZtM2p1R2tZS2VGVVNoLXd6ckpJLU1jT0JnNUtZbmdBWmNpTTZ6SjFmd0pfODYwNmRwV3pucENxU0tWSTNIU1ZjdVU4NUtOZnhEREcwSldQRzRYdjBVY0UzTUtybzVEN1M2Sk9keDNuRHRGRzF3R1EzOWhfSkprMmlmU1laLXpITUd4TnAzOTVZaTBCcDdyMDQyVFBwd2dvMVBIRmtWQkd0SkNFTTl1enBQdmlxX2V0a2xUR3lnUy1wVGg5c3VhMWNsd2xiblhHSzNZUFNCWWZIczNrc1RwX002U1Vrek4wWTFQU2JQVG9mM0xVcUt4UnNaYmFYYXZ0VVNVZ3NoYmU5eTl0R2U2NTJjY0o4ZE42RUcyVHU0WTR2cVVxc1FlUDViSHJPOUliMHU5dzFqOXc1Q1B3TXBleTZZYjROZ05PQlVldW8yNUVUNUpLbndSZzdiVTlvWDJGWnJxMERCTzFlS3B0N21RYi1YcmY4NTh2bEJaZTZVZ1BrT0ZsdER1TUdBVVdmWnhYdUtVd2J5TG1NTXJKWFo2aHdTWVJrZGRCd2ltLV8tQ0xMRjR4WHpIN3Y5anhrR0RrU19ZUDc3d3RYLVMxMG9NZTR2R1hJelU1dDhkajRfeF9hNmdYdXZ2OXJCcFg1ZkIxeFFKUzlyZHVBbkowdjN5cmd3LTZkeUhmYXBwakJ2MTVWdUo3TXJiWk9fTWhQbWh2M1h3NGJmcjBFOVUyZ0tHcnNlempoY2pEZ0NMOTNrUGI3V2oxeXFxaVJId3QwT3FleWR5MTh3V2ZEeVBpbjBqbjUxaUJmSWhvZTN3c0pJeWd3U2xieE9ieDRPTUlybHdXZ0hZM0Y5OE9kcFU4Vm94QmxCSHFwSDdXLXJsOHVlMUo2UHdEYzV6VXFWNkJVVVlVRXhYWW04SXBFRlYzenRnR3VRcnBSd0ZaVFlFc3ZzRTZhRHd6YTR0cnVmSGZ6NUZfbFFMaHpQeDU3MDg4WFNMRWczcGh5Y2NyNlJFNHh5UnhIUW5CQjgxWTlrQVBBZnNqYmxWc0dBR0RWVTFVQkJENGF2eGx2VURrdGc3WE9LVWltR1Bsb2lIOUdSREhoWjhVQWZfWEc1dXlkMTBId042OF91VzVMQXgtZFV5UXhVZERRQW84c3Q0QkRYLXd3TmQtMkdBSENKWl9GT1BNQ2ZfbnlIbi16YlhHMWczZVo1V2hxN3dGQXhwY003Z2E4aTVvY2pReXZRMW5uYnFMSlVWVnZoaUxGZTNZOGJvRzY4SExLTjRhRFJ5VGJLLXlSMi00eGg3SEx3RDgtX1ZRVEtMOFlEY1R5S0ZaUUhKZ0hPSWhEWC1Ga0l4MWNsZGdfRWJiVjJpMGhFNFlYTVBNNm1zdnBKTUhkZ1pUNWJkRlpzMi1FcmZ4NGR6X0pCZTV2eGtDclZUcEJyWFczVUxCQnBmS0kyQXVyZkNZckt4SXM1WkVlVV91R3B4NUF2bUhuOGl6c0dEeG9LN0dGMnlQVmlqdEs1cmRMVmdfa25BanJKbGs0amtwbFVaZjVGVzlFa0RIZ2l2S0JtMU9oTzhyUlo2c1J5VnlTUEF6dWY1dl82SFJIcF9tLWhKcW1lTnpBRklpZUNSeUFJYmJBWnlfRWNVMWE5VmpzNGVvSU9XVXpISFdtOXZkaE9lcVR0MWVPSWVYN0tScEJSX2tzTWVOZk50eUlxVjNsU3pfdGwtdk42RHkxNHg2RjhVcklob21MeGMyaWNUd3ktU2ZIOUJhVThRYzFKaGUzNVBITnNsMk1BUm1sU1p0Wlc3U3JPUGdlb0ZOT3JVMnpyRGp5T0lxZ0NZREpuMGxaQlY5c0RKWTZCZDFhQ3VCb2xyUk96cElJbjhQQlVZOFY0ZFh6TmpndU1GWWVodU1tSEVzTmc4X1VybTZrYS0ybDNDeXJpSWQzNkJod2xOTHl2RVZaRWxCNGxkRVhsYmFhdGpVT2NPb1huMlM0VG9BSkFCUXh5T010ZEo4OTVjQURfbm5iYjM5VG82MDJ4bFFlM0dZQmVVZmIwNFY5UUtaR0l0Z1lmS0R1Z2lXcmxIYmJKLVFJQ2FtVEw4YW1zdTByODJTMHd6bUFVemNCV2I2bzlSYjR3bmNLTHFEVDN3ZGpzSnprN3ZwdXAtYVRJNkxOUUJyU1ZvU015ck50cUVqVEg5X18xQWcydmp2cWprS1djaTRBTFpMREpUZ1lCWGRMOUQ4aDdHdkRIbF9FUzF0X2FrZWFyQ3Y0Zi1PeWlNZF9GcjlhRkx1UWNGb3ZYU3ZBOGJEZGdSNGF3alQyVU5PcWZmZVR6VlhXZTMtUGxSaE5jRUlyTm1zVXlLYUd2eGZHZUZSMG1vY3g5NWdhMHVJZXhaTW85SUt4WU4xaW5xTVFZT2U5Tlo5NTRHVWNLOGx1cHhQbnctYW1wMUJZanNEZUdnUFNDdzJPWWJFYWlrdFlZZlJOSTJsYXEyUnRHMWJQNkRGTl96R0U4TnlPZU5QSzNidUlzcUJhRHQtOU1vNVRROHBBMmdPRDNGbUt2TU0tVWV4a3UzUktyQjRzSnRWN3MxWXFaZENjMEhIeEw5WjRpTmZBQnFuMmVuR1BveUYwYkRSTzJpMHcyOXM5bjNMWk1vc3J1WDJJLW9jbkJjNW5XeUN1SzVwUHBwZ081UEFldm8tY3h1WHMzMjZJb3dzMlpRZW83Mlo4bTZ3UkYwb1JvYXdiZEZwYk5OTEVGbFpVTkp1aEpWbjJYMEJKY1kwZGhCd2FyMXpRWEQtS0FxOFZhM1dla1NVVG5fSmd1eXlNV2x0SGx1ajBXSEQwT2I1SWZvU1oybTJGOHJLRkw4eTF1cjQ4cEpUNjdFR09KbmJXelpKY1hRTGRiZ2NrdHNVNG1oUjllcDhpeHRkZ0hnbXlPVmVUM0hhdEt2RENDdHBhRjJMbC11SDI3R3NIcVdQdXdMb0ZvWlNRNGtVQTd1d3k0MXNaUWh2TF9UUVJjY2NaVEFNLV84QkJUb2VSc0lMcUFrS0p2X3FCYmFhN3pKRXRtS2txRmMyUlJzY0FfMVQtZU0yOW1WazVLZWJnSENtVmxrX3ZVUnlxaDJhUExTUl81UDBaeVBOUk9VLVJXS2JSbG1PNmp6SV8tOVhrSWNpenBRUk5WZm9lUS1FbHduWUFMdnpHeEZwWUtGWlVFczhBSlloRGdvQ1Zxc3Z0WVZkZjMwSWV0aHVvN0ZXS3dtYmJKYzZvY3ZHVWdvQmF2RmtqWV9sM3ZyMzlnR3NGMTRLeXJtWGktSklweEZBTURxLU9vb1FKN0U3Q0Q1Y1pVSDh6VmU5TEdFMTBKZkp6RnlXeVFBNHhLbXhURkI4RzB1WEd4RVZzV0F4bUh3MTJWUFY4VEJxcnMxSllrdWlZRnlqd290Z2hGMllVbWJzMk5rRDgtZnhkZWtXMHh3bW9GbnJaUzQydmVPM1pjX0xUTU9vRm5hVndQWWhKZEpnUjFGM1JiRWU2bHBGOTFVRFNTYnNnTjU2MjdOU09IRXQ1RTJxNEQyWDR3UURIMkZWUGVlSm1QOEhlR3J2eF9jRlhoSUpJWjZhRWpVblBuVWk2NWJncVNDOUg5bzNtNEgxVkpLdDVHUVRVMzhJU1ZlZzBBRXVZTVU3N0wyNVFQUVRKZVQtd2pPb0pGeEgwMDU3YjFmb3E1RkNfOWdNbGNXRnVWNTR0anZ2Z1AzU3NyYkYtaU1tbEp6b1p4TnN6dTRlYVA2X2xMSXRmSWRfQjg5bXdtOE1LZVUzdG1lSWt2R2ZBQWNUS3BtMUI5VXI2TDNQZHdNMlM3TG55N1czS3g2LU5scEp1aTU3ZDluRFdvNXZXTk5qb3lURzBuemd4aFRicnE4U3RyNndBY0k3cDBYUmN2eWhHZS1aalBONTJGWVQtaWdOaG0xNGlHLW9aTjFBLVBUb3Z1aHNKdUZNS3NBV2hvV2pHMEVCUmVUcXhWMUl4QUxQTC05MGJaa2d4dlBCRnJkZzh3ZFdEa2oxa0JVRnpwcDI5RlZuV2lscnliamYyWnZqMWJYOEE1SEMxWFhNcGZ6cEpNS2hMWWVqUzY0UHkwZTd1RWs0czFZSXRNZDRsMmp4bGoyZ3FwSzVUOS03V2JGdFg2TzJsVC1YenV3OGZ4ak5VQ1UyRUIzY3B6c1Jla3BDTGJxbWtLX01sbHFWemVvU1JFRkxpS1ZoZWpCd1lQRHhyeVdKWTZDOEdueWFnV2tsVWVEYnV4UVlsTzdoYVpzS3h2T0pMU0RFNTFPYnozc2t2ZDZuOUt3b050dFluWUE5c2ZFNTQwODB2cU5WZk9fc0xBNDc0WFlCTk1VMkhNQW5ERXNrMlItRHV2TmZQZmc5WXdyU05YZTVmOG9LV1J0X0NrcGY5MGhjVXltb0ozdUdZRVQzQm1HbzBqVkltaEU0QUN6QjJQY1VSeDREcXJCMDE4MVhsLWh0NmMyRjZCbGtfZkExNFRNX2JLLWRsaU9rOVZMdEhzN3RKMTlnUWFQWTRiUW83ZFhfeFBVaXdwWHF4SjFSdVBSTWg2TWlNb0tCbWR4VHlNbGF0U0VEWWQxSl9hOU1PTTRpNzhTT29qVVRVdXN3MVRGT0hGRXdmaWN6aEJrdENRTmxSeDIwRW1aVkMyWnkya2tBWFhmVFZFb25YXzdCbzFMbmpmdGtEM2xJWWpPZ1ZSMUhtQWRRREhFYjBmVGZ1WURUZ0VMOE1HQjNZWXpqSTJETlg4TkpiQmlZVGI4Unc2YV8zOXF4dE9tRUVYdUg5OVpKQjVhdm9xRzhIVWJPazZsVFl5QUg5d2llQV9KZGFWRk81eXNFY25PQ0FMbmFWcjQzZ0ZfckNhUUt2aS1DRl9YWkFhYUd0dzAzMDBzeWZESURGQkNWbWttNlViTHdqbFNHSTFPT1RYNzVnU2ZZVndJa0xBNE10cDZ6dWhvSFl2TWk1ZkxBSjRrbnhfc21jSFd1TjNfVXdKcDJvaDdrd19CYm9ubHhaaXpYSW9OYTVzWlVaS3RwdDJZQmIzN0VHak9WcmYzQklOZk5OeEg3VzNoUzY5dnRxWDY5bENDWlVyS3hqTU1ZN0kyM2ZZeVM4eUlrUEdlS25KLVNuRXlrenFxOFJoQUsxbzE0Q215aTBNVUtmdEY3LWhxV3gwazUzME5jQ1NNbTNmcG9tZ3pQZVJyUTFvci1NSVNndTdZUXdGdDFfM0tKN0hTbzUtM201RzlheTFSaVB3WlhEc29BWFU1cWlUVTBqSVppSVZVeGc4aDRzNldaUnpHelJwWW5KeEU0WjFFY09CdFBHLWk0ekxrRlFsX3hBY1pPeDRoMWx0ZTVrVThwaDZqZTZYMUg3ZDJVVEc4Qk5pZXlzTkZXX3R5T2dOTGFVQVpNNGZVRHVPX3kybk9SdFpXRC0taDZjN0REeWJWaTd2dVYxd3JvVFlNOEs1QVlySHdkX1hXZkFQWHA4MVh0cURFM1BESVA2SzhabFpvX2lJWkVvRTBwWnpKcmViZjJPaXJmNERwamxHZmd5MmRHNWc2eTlPSzV2Q1psTW1QWWJBSzlWZ0F5dlFhY0lrX2VhMFVxbjZLY1NaTkhsQkQ5TGlhWnUyM2wtamFrRFEzc2tKNmc0c3RUa1BZdzQyUUdDM2g1THUyR2VOQ0lyNjd5eHh5Wm9vUEZwYXljZTBaX1plVXFXUE13VEg1NUFlb0c5UW9LTlBILWhwSE9BSmtiODlTZ0JpRGNKYWR6MkFRRm9rbmxtcm9Rcy01VTRxUTBoQlJQTk9VaTFZdDRaZS1neXZfMnlaX0d6bWNQdUYtNmxCWWZ4TmQ4RUVwVVM0TUhlUkZIUmlodXN4VGRtcU5Iay1GUEZKVUdtVnV4NzdfdGU4QjNFSTBGb090cUJ3aGsxam1TZlZFdHp4VG9weEdnZy0zSFM1STBhTGx6TkJTZjVkSGlkM1V2SnhPbUVKaTJMbnV4eDBPd3dOV3J3SFV5UlItUW1VajBxVnNBRS1OY2pYLTM3U1RXc21JRFpqM2ZxS3I2Zm51eUJYTTREd2R0RXc4ZFkwVEdzYllGM3J1NnJtNDRKaGJSbms3RGdWWVZTZi1wakI2bHpMak5NUW9uRFJHVUxtdUpiT1VDZFFTeV83amVLQW9kMDlfbFFBUjdXYzJqVk4wNksyWVBIblRBdlROekNyX0RacGZBc090Mjg3YzhRNURfQmhWY3BsRHFhZGFMOVhEWThuRERiSmo2a0ZMOUpqRXdGaE9TYlNaeEdUOW8yVkFQcnNhRXprd05wdjhfY3VnNUVMNkdRRWlEUkFma1NoelhVaU1vSjdDQnM5WlJSYzNkZEl4SXhFbWN2RnkxQ0kxcm5FWDVHVEZhX3VLUmNKQllWMnNSaG1xSXhWMkZ5akpLa3ltLWlDd1JFMnViSkx5ZjhRS21UZHBtSjBOS0JSang1aWNUMXdVOVdGa1lvSERSMkJqcFdTYVREMFVnanpNQldLX1NrZnNkOVM2REoxUVJqX3dvZlBPOHhXVjR6Wkx2bzZiRW5mQ0ExTFhDYzR0ZUVVSTRrZm9oLUpPSDF5b1IxQWFsQ1JJWW5iWDV0Y0x6VVd5N1VUVmZYNllDeHZCNzRYVm9RWVhVY3pBeWZNV3ZmZzVlTC1oak5FalBTenY2QUhLelVFWFpHM0kxTFdoeUdUdXFvb1Uzcm5QeUpQQ0ZqeUJqd3RiSDR3NUVseUpvNHpNa01yNGtUTW1fNWZsbG9TNUx4ZHNyaXZ4UkJTTEJ5LWUwTmQybjlKdFhIQmZod3ljT3YxekF1RTRoM191T1JPTHFGUmFqdVFnaldNSDRmU0ZUTHktdUpWcEY5YzMyYjVPX3F5aXlQc1VLNlBKZG1jd2tjanExYjhHRWRGbzIyRmFHWXAzT2lYeEk1blQwbmk0OGRzelpNTGNBTXFsdXV2b19KaHVzRGVBbjlJLWFmZzM1M0Y3ZVBIblcyMlFCR2xsYkpOZDJqa2NNbktQWldlV0hfeE42Yl9UNFZzZzZaM3dsZVUwYWgybVRacnVNdnpRVzJ5X19NaDRXOG1aM3BLVEdxRmc0OUg4RE1ZNTlEcGVmMENvNTlod3hUazVTWFQ0bXNGOXpxdkVfcFNoU0dVWDBvRUVtanBiZTlxbi1xWDJWcDhrNmtBY0Q1QTBCeFUwLVZtc2pmMXhjQVlNMWo2c3o1V1JuVHhBb21HTmhnYVd3ZmhRMkgweGZvcDlYVlZxZjlMd1lnTlhSMDh5YzdnV1ktVy1CYzFXQ1FFcHNobzdqb09SVVNBSUhBUmZuUnFBX0tob1pZTnlEdEVHLURoX0dZeXlOdWFXMkx0MHh5TGJwQ0pFV1lnQnVNTTRFSkc0Z2Q0LXVzMV9rbTFHQW9YQ0lvXzVXUE9odTBRSVI0cEtncWdMVWQ0NkV6aU1MQy1FSDRkZGpfcmR2ODB2SkF6alpJWDBLR0V4b2RZdV9ZTmxhUDRVVXFwVW9mNTlTclVhTjZqZ0o2RUlSWVRnMHlGTVpycWJTdlVJMklaT09zUUNxcFdXYUI0dzlaS1VhTVhJRy1udTlDU0hQTEJQQlRHdFBub2Zhcmh6V1ROOTZRaDdxZk13SG9yaDFPMl84aV9xWENLZTR3NnU2V3RCRnVQUWJZQlJUYU5QZ2xFTWZMUHJORWZTSnhGa1ZJTVg5N3dEc0VTaG9Bbk5sRlVfd3Z4YUZQdDVUSXZPcUpUNEtweC1LMGdoZDNKSWMycy1XZmRHaUx0bHJQZk5FWWJNbkt1bGtlb2szZ2RqR0JONGVoaHo3OWhEWTkxNlJlcUdMOVlrQTI1Z2FkU1NKY19ZR3ZiY0NiM3ZCSUVhUkdSRTBxTnRDclN0WmgxdURwRWVvY0xocm0wSTdzVXYtYWotTXB4MmgwMGl2Z3BtLWNraVl6amUzSHFoalltcHY1Q2RPWUZoQ0JwTC0xRWpVa0V3bndIc3E0Si1ZR0NGV25qNHF5dWNoVU9KVUl4RGZUaEtUR2ZPa3cxRVktTnFZdGNPaThxS2txNHVIRkx0OGZVLVlGN1VGTVlNQzBfNVFJalBsSWNYWGc5bFFlQnAxZWxpOUY3WlluMTFPWG1oYWE5dlZxU1FRX2t6LS1NdHpyNl9yWWVYTi16TXJGV2tITmVVS19hQ0VrbHBfd2VZUHg2Mm82d1B1NU1uaDktVXlqRGNraFFzSC1la21pQ1BwN1hLZ1dWOE44N085bVB4allRWTlBVWZNT3BhaHZZbHNKWGh1RlM2Q2p4N1BzSGRTbGFMQ01jcHhabVV0YU9lTFo4cW91WWZUdHJ0UlBreWdtYXQwY3RpNUFvYjNPeWVWS3BHSXZRaDBseXA4cTltWkFMNWtFVDBGMUo2QTA4VGFVemVJSkNDakFLTzhEaUZYeTZnZlpleUpHeUZUTzVmWDRkWEtOU1hZRXY1aTRmYTZIc2tieklIaUlGU2tkZWV3S0lKa2lZa0s0aVB3M0luZDRTR1dCZ2liZWdZamRYY1drb1R0YXVTNUdTdHh5UEhrelhqRVFka1NTd2tnMVh0c25ZN0VkVHV3d1N0V01kM09UWWFlVjlLV2lHQVpDOHpQUEgyeG9qbVJnc3pZUjNoTk04VmllLTNNRi1jOW9UNXpZMG52NmFaV0FxSW0xLUZ3VnA0OHh1WEpUQzBoSmJLLU1kNzBWb0ZKMkVVcEdMMk5nVWdpMElKMjQ5ZXBuX242RVpzTUVXUEJTS3BGUGotYnZpTW5CV2Vkd3NRWTNfNkJpQTZaUkFZV0xORnZBb0pqSldtQWJMRVFnS0ViSlYxTUMyZHpmc01MTk42Q2h0azFnYUtlOUhpR2FzZjFNLVZpU2pzaUNCTmpaejNQUjVzUXVqRGUyZWNnU05yZS12dzdYUGhhdUJmQ2FUeHhQZTFuejBkRkJyTGpHV2ZLNW1KUkJGSnNnR0g5OU9zV2tKZ1F4b0p4VEdjMkxNaGE1Zm51Y2xBVnVJWE15Y3Y3cmw2bkJvOUs2cXU4Vk1GQ01TM3lTUEFZcjBreE5XNzUwandDVkFEdlNqbVltalNDOWpRVzBMb2ZrUC1aTHJzRVRHY202RUNxUkl2TDdqaEk5c1p1UWdiME9lNUtiZ2ZIM3lpMWpJR2dZVmNfQUFFMGhOcHRhaUNTaHB4SWRGT2JiRGhkd0xDalJpWUpiRjFWX0RFYnExRXhIVVJLX2pNV3NPa2V3cENveU52ZkFYRkFzTTZnUE5taVBFWFhvU1pEbUVhS0hEUl9KaFRTZmFvNk51LW1tNG5jV0I0N1lnMVREYU15VXFWellqX09vTVFlQUZZeWpBNmlBR05FZEZqMXN0NzFjNW1COTV1WVE2aFhwX25hajdkZ0IydjlwZF9Kd3hNczlzanhPVzV1SFRzdFA4Q2FqY2pjME42MS1MUm9acS1xZWFFMjl2a2pWQlM4cks5OTlwcHd1N3Bob1lUOEhKQ21Db25xSzZ1VFlVcG5yQW5oZ3MyVUh0YVVfUDRUcXJyMXJVYm9rWkVzamxJbWpTMURIMlh3N3c0bWhMVGMtQXd0bGZ3UUd2NEQzbUN1dUFkbVV5OTdZTzBpdWYtUk85SGloNDZLbC11NmZQNmlQQ3VrU2dmSkJZOFFqdzcyc29hUXpaUkRfMVZSYzZyUUVzdXN0NE1EVU5ubGdDSHNTanBwVUo2dUFxbXd6N1lzQkZDd0tUN2o3T2hHQUFXa3BPdGhQY0FDZ3U4MGJlMzdBSnNxV00yTXlxNFVydVRKNkk5OWxQTmwtcE05and1d2hSZ2NRQUJxcm1mbUtmQUdoWk9LRFFVUXk2aXp5bmVmZ1IyR1pzaC1tQmk0VDMxQk1xdktSTXBCYjgxWXRxcDVySE9iTnhqVUZ0SXZsYzVybjVMWXR0UjFpa2gxX3k4dkFHLU1JX01xdkhHbG10dGNrTldCOWlldVNBNHVwdW5hcmRCajIwVTNKdnNzeEUxTlUzS01JMWlhOU9JU3M1azdUc1VPMlE5TzZYNjhUZ0Nza2Z6dGRCSjQzdFNGVzdpSWNVTDZZZmxyZzhKT3N1SmtScWhCX01oVmduQ290aGxGT1VwZDA1TnJpRm8wYUxIWmcxa0czbWx1QU56bVNPVlpBd2tfLTV5bHZHSzdzclViQTE3NVZOd1Q5bG42VGtVQWFkdVhkMC1mLWdCbzVpMk4xdGpldjVMLTRTQy00RlY4bzB2Z1o2TTEzd0FieXZsck8tQlY3b2FuZzEtYkYwWHBRUlFhVHUyTDcxMGNRV2VOSkxLYkpGblhwQ0M2RVA3Q2FJT09fdXBUdjRPMTEwd3NiUDV2SEN6MF96MjNkWEQzV2Z4YWRqRkpodlhXNTBFbGxKbXBqVjZFWUlvWER4MldvU3NoemVveTlVX3MwNXZnbzZ1dFBVS2c3aGwwejJDblJBMUVUY3FONlladHlJUU1mSi13V2tBSm1KZmJVenA3MS1uN2htRlp1WURsaUNGaG1XNWRNVVMyVTd0dGtKdFJjVExHRFdWX3RqQVllY3NzdUxFOFdDTDhTRmFiZElrZmdUNDJ3N3E4dngweHlHVEhSaXMtNFhWZjhiUm1nd0ZMbVFYb2EtSDJYWFEzb0REenIwV2NSdjNEN2ZERXc4cU5qWlN6U1J3ZmpmdFQ5b25RVWtFR0VBWVRVQWtab19LTmRkejRBVW45bGZwbHZCM2RGS0FwX3BWTGtOTHZtSXpXZ0NERmFWak5TLVdmWWlFeEpfOHd0MjNEMmZkZTJiQzFLbXdnM3hpWDQtTm1KZm9PREJadUxQYXdfMDlkS3hmaXFYajNtdl9WdUY0ZE9xZzF2Y1d1X1VUbTJoVEJKQUtyMmNJRklZb21jZFVQZ0NOcG9Ld1l4elpzUzlPZmdEcGNDWkVXdkNfNU96QlByVjNsdElfRmFSZFJKLVZ0TmZUUk5mQWZxSmRreDg5bGg0X2xUSmduMVpodGRpWjJLUG9ONHdxYXhpYWM0akt1TV9MYXZlaGh0eUxBemNFSHc5MG1oYUZ5TDByVl9HZ1FlbDNwU1o2cnI0VXRWZ3FFcDA4VUsyRFYyZlM2QXZZWlk0ODNndzBqMmpickg5eUdrQVdkX2FXUVZMMzZ2WkxZVkxKX294NkRLOU0wb2hPUUJuS1E3X2tDNlNUVFR5SjlpRDU0U25mUlF3dWxVX2ZpeU43dmVkaVJTVDJrZ1ExWm9OWnlEZ0FOSnpiSGtxclZhU0wxRF9JSnAyYmJoWEZjZjd5ZzlEay1YRU1rQUdDMGR5akNfTENVNTVSQ21GbTAzM1lHd1QtbGhxQ1drR2dOQ1BCdDNPamtwZ3pSRlBLclU2enZCYWVUbXdxT0JROGdCQzdycmhLb3A3Nno1RUFoemU3bVM4VWdEaE9PTGt1NVE4Y0I1dXcxMjQxT3prNDcwYi1xc1l5OTQ3VHdjdWxTUEN1NW5zR2hvaWVUR0o1WlRjaXVLeUo5ck1TRkhfUEI2N2JGZExseXVveWFBQUg5SlhqZWN0VS1zNDN6aGpzYjJrX2x3bG9sX3ZIb3lKeTRHOWxwT1dUcDBMeEZPclcySlg1YURoUlJ5dzZrblNDQVlNbjBzZjBBdnlHMUYtMnR1dEFSZkJPWTc5eXI3S3BqalZpR2lfSnZIRHN1c25TZUozZlRTNDktM0I5dkljam1fcDMtQWhJeXRIeTQ1LWFUMkw1UkZvRVNXVEhNNjZYcTRBTDFKSDVWY0daa0dHNGltUHZ4MkZ0VXRDZ3pQWjRTQWUwYnJsYW1lTVV3Wm5JSnNKVU4zRVE2WTdKenlWSjFfb2kyUzFpNFRKaU9ySXNTdGNYLThZV1VtTzVvZ1R4RnIxdk1qM09MbWIwOGhSNE5tcWpyUVdCTUs2OGt4Y1lTR2tqeVlkYkthUklVSG5BV2lEWExjd1QwZjNWVDdLMTN1aEVmeEJ5bHE4NWR0QmNwdE96WjkxSFVVNzFLYWo3QXZFb21WTGZQby1JcllQUUptQjlXUU5fZWFDM1FuQTlUc2hEaDUtQS1mdEwwNDNGaGg2NFZyaDF3WmZYRm5abUlvR0l0bUVkVmxDZXQ0a1IyemxZVUVOQ2tJWW9sREdYcEFqZWRTNER4aFFGYVNnajFvQnp5QThMZU15T3FmbWZZT1dxTDNBT0ZDMExyay1XaVdFWC1NWmVQdXVycldZRHBSYmhPWGExckFkcXNuX1ItUnlTTWR4RHlJRmJyMFZfN1Q0aW5qWnFrTkJTUXJnTHFhMHVKeW9vd09BLXBvMXM4ajRsT21vLVhTR3V1c2NRMGRBMWJIdUF2VTNSY3dSeFRfYWg4NHN1MEpfQTFBZlVqY3RrMmpsYUQ2Zlpqb2E4dVNsNnJSakFyU1dVdzdFZ19Yc1hxTVg1bUszcEE2bkp1dDFBS3REOXlvdDZhc1hJUUdMNE1RaFdVVmpPcVlhVlJ5Q3hkOEgzV3NXc2cxMFNpUWZHY2djYXVEdUxxU3ZwU05fUEZzb0VHU0pZODZPYzduOEJEYk1BMXJiTWhtR0ppUTBOMUVnb2hsMXhwTDVWWWxyaGtsUWlZWHdkb1ExQWgzNl9jTS1uZkU3NGtuRmlzVGJpekxKTS1aZTNTTGFIVDRJTDRiM3NoNmZxR2lFaEtUMVRDRjhRMzlPdk5KcFZuT2k1ckFVb2JSc0xFRW5HbVVlZlVPZ0xUamdpOU1DOW55M3MyWVE2alZpbXZxSnowZFJSY1hPbGpXeDBncEppUm0yOW5aT2NXVGpXRjl6N3BUOGRZal9hZHp1VmRqckloTXp6eXpTdzN0T1ZRbk9ldjhJZWdVeFlCcVNLSzc2Z2Jmb0tBRzV6OEZoVmprbEJkaEhrRVA5NWFlQ3lCSURFNWp4N1FUYVZ2cmpIWUMtSk5PM3J2NEk1QWhsUWpTWVJ2RGtoWnVPSUZ1a3ZiR3l2bGFTMnltTlFYQUllWmpIVThyUnpqRFQzSFJhS0p1dnk5NF9JNnBFeXdKMGFGU0hGX29yYXNpS1lrUlg1VFliUFdNcF9NQW9nbXBkU09nQlhVak9HWE5EWXlpTXBzMlIwalFCZVdiSlRneGszTEtGYTVmXzNfWWpMdmNiZUZVN0tIeDhGaWc2T21ES2hEYVhNMU1idG5aS1lvcUFKMURpUUx2ajlSOVJWQnI4TVF5RkExWlJBYV9VX21UNW5uckVQc0ROeW5idGpfSm12X2o1S3p4M1JMR0JDOGNxSEZMeDFFUElsTFdvcFlpZTlITXh5NV91N2FrS2E4NDJXaWhPVDhJX1gzWjBGY1h3Y3RJMVZPOE5USTJhOWxkV2xzV21KRUY2eVNLc2Y4YnBpUHRkdmV0UW83d3ZkMzBGQ3ktR0haTVBmY0RIaWR2ZlVYQmhmeS1RYXlpaXV1OWl5d2VteG5nZnQyRXgyQnZPUHdFY0NIMnNkSjFHY2lVcWgyejJjYWFrc19DRHBSSXRwam9DWEZFWnZWRDhMY3NodV9ma2V0WkthdWpfM1p5TnBiQkE2TGdXX1dUQXpXNkpaZElFVlR1T1d3QVU4T0loSTY3OXI4clc0Z1dRZzZjNmtkUWM0cXQwa3BfWnBhSEduSUN2OFhNSmVac3Vnd0dqOVE1OW5TYTVtRzB6OXpIaGVwVzNoV0ZXQXNOTFo5cFhCZXpvbWNGS2VDSzFFYzdLTFVrOFVsdG1RMkY0Q19pRlplcEY0NGNyZTluNF9KMVN4Sm5ySlJldWltRGJLSHhQeG5VZ3hWc1hzVm1QU0Y4SDRPcXZDeUVkODhhc20xaC1lcjhkdXZyekxWT3VaUUt1dmtsVDhNN1FpbTNfZkc3Mks4dVlUWU83emtFNndKOGZnLUF6VWZGeWJsZ1EtOFk1X25XZlNLZGdGUmtxMmwwcmF0VUZaTXRCLUtMRC1yQmZ4cXRzTGtvTHJlVXp0aUFDcjNDNVJyOWdOTjVwb012ekVpSVZpUUx1R0RJSzUwTHExTXk5ZDdpT2NlVXdyd3dkbXRHY0NIUWZZRUQwMWJJZzZMMVlIeENSV3FIRVl0SWx2RkJORkVfc1JCU0xPR3hFQ2lNNnEybEs4Q0Jib0p2UnpoeWNWTlNzUFBtUFlpc0dNd0ROdEVYeG5mWjNWM09HMHJkZGMzWnRrOTZyeWJRNEZOb3BkZkFnZ3NjVmUyWUhMUHBBYzJNN1Y0VWc0M1N6d0VWUkhoamNSR2VRZ2hrcTJ1T0p0dzZrS29uTUhrSFl6a3hyNXBEVjVNN0VWU3FzZHN2LWg0NEp0V2VaUTFUd21PS1FyZVpzR2hMNHZtRjNLM0lKaENKNENJOXpwT3EwN0lhUzJjTHZKZmpJXzVkNjB4X3EyQkxtblNSWnNMQ0hrNFBsbUVIVVk2NE4yTVR5eVpwY3FxZnJ6MkFtOU5LcW5EbHJSX2FMdVc2Z01HOFhPNHJvaFpIc3NtaVBKUUVoYlpXQzJyRWlEakpsejd5SFFkV2ZOMzZKOTgtTHJXa0xseEJOM2kzZjlxMXR2NFB6VnFhZ0d2Ylg5UnZ5R3RSeXZoNHk0RTJoTGk3SkR6UGN3Z0NmTmEzbjVGc3hGZFVpdHY2Xy1aMTh4NG8wZHd0UkRtLVh6bFZwTUxZVjJWRlVmQjVReEplbVdjZy1zOG96WnJZcjVBTDV4RlZ6ZWNKYUx1SVd4Q1VpaHJIR2k4VUxLVVF5U0otUEx3eFR6VzFiT0d1bjFPUHNLRlJjZ3JuXzFERUxqbGJMdlpheU10a211QUZMMXowUVZwOHpHbDNLWjh3NEp2Tnp0V2UtXzBCTVJJSXJCcmktd3pIdFlvdEJWV2RWMHktOUVCVVQ5Mk9PVVNaaTlQV1hQQmVGZ3JhVnphS01JVENRS2d5bXFaNV9QNHJTYTVvQTFqNlVKSWNDRHpySTdyOHZnLTdpdWJrZHpkM1lSdE9GeGVxVVQwaE4yMkxnQ0d1bVdqV2tRRU1tTGl4SXd4enhxdVBsZ1dCWVlVdkEyeDFjSE83SUVKYURLbDhvZ3JXd3JySllTMGFmdEszRUFzcVRSaWtSODRhX1I3OTBHYXNRWXowRFBzN2VtQWFOWDRRZ1lOdU9mekxkaHpaY2o5N0hmMnZzLXJaRElrOEJCLW1nakVZeHlnQ01scEdKaVZkRVRVM0U1UEIzR1pUazFtMThvU3laSUVuYXZEUUFXUGlrdi12UEFKYWRqVVhHcnN6UC1DamtIRXhVUEVyRVVLbGRzeDNFajJtMk9FeHRjWUxteUpMTWFqQkZPVXo1Unk4eEdtZmZtT2FhRU1DaVhNQ3ZmWUhQRnNJMXRQRHIwaHRENW1HMW53VGxfcFdDR0pxeTVyb3RieFgxSWYwd3p3SnpITWlDYVI4S0V6MDVWTFdwbW1FeHBveVEwWmg1azVMTDFMeUhubUdXa2pEOE9wcGNlVkwyNDhsWkFrWFFPamlpNkFZWjBTYWlzZjVPOGxnejN2TXRQWjJhX3V3R3hnYjBBczdENDFSUXdoYmlNWGl0Zmg5VlpvN1JmeU5XdHlxRGlhbzMyRkVRUDlQYkdpM0ZmQ05lYldUeEVQNUlNLVBEbk5BSUlZUGk1MEtsR0FFSmNVS3NyclAwRDBCQ0NRVjJJQWdYLUlEelN6QzFoOXNVc2ItTmFDck9OWEZreWtmNWdTTjBHNmFnWjBMdDg3OFNXRGhiOWdDZmVPb2ZKbEQzaHhjdldZRkw5SmdxSHRrWTJtOEt5ekp4ckhLaXF5YU1mcElnbEIzaTZtRE9weVZsSmhhdjBsY2NqZ29nNGdHaVpoRjJRUFI5SmpZWFpzc3FzXzJWSnQxMGYxQkQ0dEFGYkRHQk1Rd2RBckI2T0RTQ2hOWEZ0akxXUnhobnY3S1IwYkI4eDFrVGdTTkxqZ2lCZV9VTVZlaEJaSHNpU3JraW90X2twREZsb0hEV09abkNsVDhRVlhWM0VsSmNqbzc3c0NrNzRXRTljc05pS0ZvLUZOVkVqOG5KTUtGTVpYRGV4OW9RSUhZcUhtMG1FZUh0QzBWS0RtajBLdnh6X3N0WE5nNEIwclFJUGhSckp1ZWhBTUtmZXZmcWEyMXZLZW9YMVhpWXdBS2lndkd5TWRJNzdwQ2tzcGtnYVF1dDdmT0d1SUlUTUwyeFR2d2F1N0hoQWtjc2MxR1RYeDZ0ZlpEU2RVWS1nLVFpUjltdU44Y3ZJMnVxQjEzQ3l6VWkxODZvazNnYlFiOU1tWGRvaXQ3OElERDZTdmEzay1XaGpONENjcDlIbVlwSFZPNWNKV1AtTmwtUmU3b0RwRjdlMDFKeWs0bFlJM3JHTEdpVUZ2TFc5bW45bk1jQnVaTW91dmk4MjY4S3RHMTM3cDJZV1JKaE01TkduaHA2WW9yN3owQTVKdHM1RkFfSnNYbnlCSFpObTE2cG9uRTRmemloSVNQOHVwQ1UwdEF0YmhWeU9CLTdfMzBGNV9tWjZBeFVaeC1lRExXbDJpUEE2ZFBhODVKYzRjVUZTOTAzWVBOeHVwelU2eVZBMDk1QWFkR0ladXBQWllvakFTYnpZWU5NdTZ5SExOSXlYYXNlS0g2ZVdrRHVZaWRSVTJDZGdWb3p5bkVoS3A0MnIwMUtwX1FzOWhzLUhaemRHRzJ4WmJrb0JZeWhNWUtJRk5sbmVaMWtZWjBPV0FwOHBlZ3BtZDVlX3RadWxJanJmUWRVMmFqcEJtRk9JaGJRcDVqWl9oSlotSy1DYy1fUjRKZnUwcy1TUVRmV3NWQndyUkU5ZzVRWEhvUWRQZEZ6eWsyZ3ZZNmRBQVhuUkVGbWlqMFM3aExmbmxXd0FwcmJIalloYUZaQUtkMFNJXzJPRFFJS3luaGQtbVNIbTR3dnFza3hLQjlXMGUyNWpsMkZ1SkFpZUpzOHNkTW94WXltQjlKLV9kdEI5VTQ4YVcycXowZU4wNUZMR3ROR0FyMmhLVWhxbXlPc0s1S2tuRFdnOGRCQTNOREtTdEN2Tnc2cDg2bDRoNkVzVEsxZXJoZmQtZ2RlS003SDFKSVNLZUFuT0swTEl0QUpzNV9DNE9rMTY0eENXTXJPaUE2aU5US2oxNFpCM3I5aUQ3MEdycVExbHJaa1dxWmVuTmw5NEZZczNJOHBlTUZySm5qMXFfaWVMbmNlN1dEa1ByTEVQaHRhT2RIbnZRS2Rha3c5aUs5ZENSZ29QZE9MQTlVTHNZMUJjcFNnYmVlTFhLZklGSXZJWXhyT2s3LTA2VGpBUGVOQ2NSV3g0UURsdXZFeER1QnJYZ0JHandnNWRudDRRSW9JOTRMZkJwNXhWS2taZjRiWnRFLTVDZkhaVnJYWUx5cWhRdDktQXVnYnJvNndBUTBtYlhvTkV2TXQ1RmRFU3o2SzFFZXZPN0hJbGtPWS1nWmpRWE9qNW80WEF2dWp2eWV4MUlrYnc2eE1NMkdrS3g5aVF3YWtBaEZqUjRicE4xOXZJTzl0bmVrOXZ1VXFKR0tQd1MwVXNfVWFaRlBialdPNVhKWmRnbDQ3LUhuVFFtUk1Td3E0U2Q0UVVsb3Flc1Z4cWJhWTAzdHp6bVJ6UVNZUG01bm9sOXV0dkFjcndqUFdaZmc2YzhYZFFERENfMUNqMlBweXFsOUpjOTYzNEllbGJfajNQZ3I3MExnbkhlQnZVTnNLZTR2NDZaZlc3MFZGelUyQ0I4NWNuMW54S1NPbDRpMXc4YUdJejc0NUhBNzg5UU51bVpGamplRTRwNmRjRVU1am5kaUZLWGMtZzUtdGZuaDJUWmhrOGp2MlFTUmN1TkZ5TnBRZkU5TzY0NG1FbmhjOU4tVk5iQ1dWM0ZXaG5ETEdtUVh0RWV6N0pWSjFlR0ROazF4Q3VFSF95SFNkYzZ1SDhmRjB6U1Q1bnZEM0h0LTQxNVBVTEZHMjJ5UXlVTWtkM2ZZMzR4a1F2UC1CM3FGOWRINUFXVmJLRGVIdDBVRW1fTzRVQU12eVRjTVU4VDB0ZW5wcWZrREN6cEtzU2tMU2stWjBYYnJQR0FIOXJxNFJqVnRra1pZeUFfQmh0VndwZ3I1RkNLYW5kaloxcUx6Q014NDA0UnRZV2hRZXVpa1hMMkpKNzZLZzczNGt1Xzg1OERBOExnbjFWanRLRHVVdXlOSGNTM0NXalpBTlE4TngzRUVLQU5JYmIyRVRXTThIOXdSMDF5OFM4U2gxT0wwQ2FuRDZ3R01fS1U5RUZLZkJFZGFwVHpfLUdxVEcwU3hYUGZSR3BZOGJ6SVM0MkFvaUNBdzJiLTNfU1BzVndJQW5TQUNkRXo0enN0NlZaQXc4YlZCZWlJbWNoRnpjZ3VLVFoyUURpQ1lzM2JIVi1sLXNZSGFtcndKRnZpMWNMQjdHOUdNVkZlZ2IyNmxSeDF5OGN1MURiSVlmdDRqcXlZOGpQWFNxSE53QjhtOHJraFBZNjg4Rk9panJTSmhleGlRQmJWUkJCS1g0M1pSTU1KMlBFNlp2ZEkwQWlYUXdVUVlQTFBBY19rM1d4V0ZWUFZGYlY3NjJsbHZESXRZRTlVRnZWNFRjX1gtdURtemVxVkRURkVibDN2VUpxdmZHMTBTUWd4aEVXM1owZEVhOUY0Tm84VHRBSzFlMXQ4ZFZrMUJSNC0tdlRBc0tIN3BOdXNtMmlNQVNMV2FOa0cxWFRydlBCNy1VU0d5SkNBYWI5Mi1EYk1TdDQ3X2xyZVJYaHJ1Sk1DeGNFNXVCLTQwaUhCODdpaHdqRDRNampaV0dpM0o2Y3JoNDdYNjIwVWg0X2l2ZWJ5ZU0xb2VHZ2tobjY1SVZtRC16U2ctcWJ3UW0tRWdSMXVhOExnVXRhQWV6UFRyTjA5S3pOVmdRTzhaa1JwMmhfVjZYTVNSanJMV295YnZsWE5PX0thTF9maDVEa3I1SHdtU2l3cHdMMUxYVDg4MFFnOVE3N1VYcnVndFpMNTBoeG8xcWVmendXbmtYMTZvWmxFZENUbWtaUExRT2hfTkY5eS0xSTdmMkE5cllUX1Z4Qk5KMHFjb2FUNThVckZRbi1sdU5LOFhqaTFuOHZrMVB5bmc0MVAzZ2tCZms1bnVSS2E5eHl5OWtNTGIyTFZaRjJyTW9qRUhvQ2FBQ2cyM09UUVM3N1otV25FU0hHWlJoWkcwbktvMl84QjhnVlhqdzBRYzh5TjMzMDlJblgtYUs5a3FTdlhqbVNublJrOEVuemRkNDhWQ2tOamR2VmFLM0p3QkllUGtmUWRkcWNsNzFnQW1vTF9HdjhSM0dwV09ZVFRQWW82RHE3ckk1YmlkWUZSQlJmbWVPLVNjdVluTFFlNjN1SDFXNFhlbXVuNEpiMVRJblNaOXc0U29MVGVOOUZqdHp4eDBEYnFHcU05NnQ4YzV6SWhCa3dIZWZDVEdiV3d6VzZzemI2Y3Q0LXprWGdiUVNiVnZJcTktdU90QXhMQlZEU08wSElTanBVY3dueEM4clExRF8yNEVCRVg4aXBYSUp1dHBoVXZHVWxuNkxKaU1QYUdmdHJVSWJFVmZ6VENkdDh2dDFTMkVEb3padlA4VVAwN1dHekxSd3p0RTFQS2lwd1BTM2lXU19LV0FDdDlPTEpnNWZrc3VhSXU0YkhBZUlCdW92R3BUYmJ2dWE3QzR6eE1DUDR2U1ViX09lbUhxTmVLV3NldFYydFRINEpZRGxqaUxxWUVUQ1BtSmJOY0ZBVEg0YXQtZy1xWWRHLXlQbTNNNGZYTEx3b3ZRLWZwZDJ0bTgxUnFlMFNSWlpQUjNTMFUwREJmYkJHRF9pX0ZMWU9RdFNIZzlndnhrVUlGTUpkREQ0bmJkWEVWcTlYSGstWUczZFgyM05PNHRtcnk3ZWlxTVpqRmVJZ2VUNklhNHNicUZkTUtPTU5BcDFtVkljNGN6YWc1R1MzZ2pXczNRZ0dLeHoydms3WkJHbTdCV1N6UUphZ1I1SFF0LVZFR1JFektQZVpSd0llSXE1TjBDOURpUndjQ2FZLWdUX2toUm9nZzFFWHlGOHZ0VjEzWmEtSGUxbDBTemhpWXRsbloyb2xUS1Z4SlpOemhpTU0wOGgzUDFzWVpSc212a2ZtSUR0QTVyWE10eXd1N2pWVURrRU5OcTJXMlVRMTc1M2l3TTJKaG10dnlDRDNtSG01bVU2eDNMVXg3Ui1lYW82ZUFYMkxZNXJKbzVvQXBUbWVaNnlhellJaV95STJNd1VWV2N6Z2hrY2xuRzJIOGV3TGUxSnVIYjRHRWZmZTE1ekFQckF0UG5QbXVWVlNRTVRLSmFPcFhib0hqOUhJdVU4RjJtank5VDJXZGpYSU5rT2xDT1VWQVR5eW1tTHNqN292aGNOM096Yk11TWhZNVZSSDJSb0lfV0Y5c0pLN0FKNjlMYTFsYmtSYnIybkZsUEJEVWF6dy1CdHJoQzg0X0EyZl9PLU1TaWNfZFJkUlY0UzFaT2wtVGt2eWNUYWl6ZlZOcG1OSWNZU3JYcnBlcFBYUG1FZDVCNjdKbGRCdUJLcHBwTGQyMXF5VW1oaTZxMEtQdk55RVFaQlo5SE12dGxNNG1CTkt3SE43bG1nUXI5ci1iVlZHVEpPME43LXJ1c25ZUkEyd0ZtRjYxTF80dzBjUl9ibThaX1A3d2dXd0RmbHNvMi05cmZlVkNobzFNUWV0eVBpRnQ5X2d1VnlYTnRudEhZM1FWZFUxY19uUUt4Y2o4bHF6VDUxTkk1cjdzUDV4bFp5ZGdTbFFlMXdpcWRiWEhaS1NQUldVZER6OG1Sd0xGVW1MNkpkek92ZFlNRTZxM1Y1UHJieC1aaXBDVkJtN0tUM1lRTXJIWDlqUHBWZGhMZEhNSUJfZmttRGZSb1Yta3V5TUdkNWw3aTRfSE5WNDJZNTNOS3RhYjdMcHhNcDctcFBNZ2w4dlhFUEw4TVJMRDRqa3g2UFowSGNZd0xaSWJFY3U2NVJsZTFMYVlibkpmTjFDUlNTeVI1bVVJbDNqT25HeGMySWtJelgtSE1qMWhlVG9EeHZ6OHl0bGVoUjMtN0dCQ3VON1ozdFQwRnh4MlNIZG9EUEQ1Q3BnMVRYMzdid2ZocDhReC1MTG1iYUo2RXAtZ2VwcjNOOEhmc1ZfRU96cjg3TnJJVzlUU1RaTWx3YTNVRk95bXNRTEowZjRFTERPZUdOaFl4VHRfVzdlSTFTQnluc3NrRWdWYXU1Q1RrRWJDMWdNeHpsRmtJOEZBUERPa3lQTkV2T1ZYbWg1c0dEX0Q5di0tSWdldHpHN2VTZi0zV1NWZGRoNzBrckQ5M016bGtJNXdRdUxHNWhfcFZrRWdHRFFDc2oyd3NYYThrN0R1MHl4QVJWM3lxNXFUMU9MdWZOMkR3R1lyOGx5SmlWMzRpWElYSllldGlYYUloVnRJYkJtR2E2QTluX3VnWEx6NU9LZW5YWDB2eXZmN0tIVzdxOEJUdldSeFhpdUZpRU5ka1VhRW5pQUk3Nk5nUE5aOHZCRjl6X2FxMzJHRnlLNDdvV1RfcWwtQXdWSUVCVl9mNV9CeVc3M1lZdG5GUmdLOFY2LUlxSUw0cGdadlZZMXdEQzBGZ0RXTVI2Sy1pT2N6eHdJai1xUjQ2OUtkaUhXWEVmYzZtVXd2RnBfcmItSTdlNlJOUm1lZ0RYcTdTUW5aOTREZGdXaUx6c1U2YThUMTJtRWkwcHBJaHJHMHJST1l2cGpESUszbXNFTXBiME9DblRIbHdWSEJXM25abVpsMXh3VVVuaE0zVDJTZDBGREdkUTlqY1ZfUUZHZnRYbXotTGhiLXJ3SnZIbjRmdlVxTHV5S0diUmFwWnJJVG1IdHU5X0t2VEJsaXh0ZzhKbjNsZXk3b0FlSkpEY1VsTWlDcHNpcmpfNlhuWnBJcWhHNFZURlZCUWRRRmpfSXE0MTlXdmMwMkJSTTdScTZyMDI0WkhVRnFhYlpRempGTVJLaXEtTHVZZkhLMko3TkkwSlVKdXBkNVFxWXVNNnFid3ZWcFJ6cGRabGhreVZpUkFHYVIzWHRJV1NiVmVpWEh1eHEyTklub0Z2dXc3Qkx5dzFBSE1INjQ2TXYzMy1rQ0xValQtN3YzNEIzdE5waHMwTXdMYzNlaUIzNjNqSVFoUm9aRkhaRDhFRXRyME5UUEpIWUQ1bTUxakJ0UHFDUDM4QTAxMVBRNDFJeDZzdGdud3RZNnFWUU5SVmZJU0ZvTWZ0QzRKcVF3LVp5aE1UOHYzMFF1TEVod1Z6NkZsV2JXSkpzRzBOWW1qanpEZEc1dm5qRlV4bWVfazIxWWQxZVFwdzdjazNFcHkzMHdwUzI2ZThZTWlyNHBRb3B1M0xlbTg3dExWN2pjNVRkVXhsNWFIQ1VIY3lOMFB4REM2YnRlbWZ5TklUY0J0Y0NxeGpHUUVxRFJGYXpfb01qZ2d3bmpBZTRUb1h2OXFzQS1TZTdrU1NIVXo2M2ZMQWkwN0VZbW9UeFJnNllwNmhQdVRzTGdraEpVRC1XQ1NVaDNJc0M2Z2c0Qlg3MXdRN3QyNlBiVS0zMGdTZGlQVFBhQmNzTnNxbGVReEktalFDX09NY3NaM1RmaWpQUTN1eXByY3J6aXFHVVo5UjBycC1UVERUV3c4WjVnX3ZJTkU0SnZIeTY2bDRBLWpkcFByQWg0REJyamMtZHBGdzVpSERLRGFKNngxU2hxb3c2X21KNVFLOGZDYkl2d3czN3BPbWU1WmdIWHBWUDA3NnNzMDhTLWZKYkludUpOWEszNXVZT0lpNXBOd3JtVDdGSE5SQ1JvUWlZdFJwSjlvZ1dhT2ZMUWpweXRMZUl2b1hkajFaWWZ6ekkwbFg2MjNjVnRfYTFINnZONHNfa3hCdUZLemVlUVRXTld2aVMtZFIzMnNhRGRZTUxEVVE2OF9VUTd0R2hkM1NVTWlFYVFIV2FrRjNOaFVDTm4zeGtqNkV1VHA1ZElMWHBGZmx6VW9OaTJrVmpzclpUYmhVNXRwMTgzN1VFQjh3ZVRRTzYwWHd2Uk5GbDZwNmJPdnFBaEpCU09XbTNxMVR6cHJtenFhTFhGRDFTU2hXc0tlZXM4WjJCM3AxVmdaa2k5TDVlcC1COTRvMTA3YU1SbnEyNWQtbDBvdUxLeDVBVHBzc2Uwc3Fmd2RJMU51eHZ2c0ZJQ3VMczZnakk3YldXTVhpN3hJTjdUVzdiWFlUUS1USUNnZ3FmQlJHRnVNTWk2c3FSNEVOWkhhVkxJR2owZWhOM21TSzZpUnN1a2MwcEJ6ZVNMTVFvUTBlc3FjRkRRNnVWdVFuRjludkZWemFYNnZKUjNWaDVsT2NoQmVwSnVQMTNLdm1za0t4YkQ3WmtNbXUzT1BFX1pJOFpfQWJvaUdkVUNlMUZ3Y0VlaE8xNmpDc2t6bTNERklNbmJEMktLWjVZVTFTSEo2N3JBYnpzMUN2XzE5bmhhZ3doNDdMaUpWVXVOZlhRTUVRcHQtMWw2bi1weFdYZ2hoM2dPS3pHYXJSRUY5S1B4WmZTTkJmSXVncHExVTRPdXRZZXN0cXB2QU1Wc1lQYmZMcXBIYzVaOWhBX013Vm1IWUlOd0pUQUZtREtrYjVnS1BlRlR2T2NvSExuYUNQRmdwd1JXeXo0STlSUE12OTJocEU5NThKNkcxZjAxMnhlbW1rbEZjaktuYnhxVlh5UGx6VzdvY0NJX1JMY3VMeHJOeEl6M2tCUEhlaXlILVFfZHBpel90S3hjUDctaWlDTnZoN1FTQ0dDd3lLenZwSU04Z0w5T3lXRDN4THk5aHE2a3lzdVpFN0RmM191c0h4aGhUWXJVTkJXV2hOdHRnbHpuZ0xGYzhsTzNkVnVNdXltdWU0bDVWTkRLMnJMY1FsQUVaN2RsNzl3QlpwVnJPZEUyQ1Zab0ZnZkctWUNYYkVGWlFuZ1l3WTZndXFRMU1Nb0dsUzhBWlNSeXM4dldaX3B6UGJXbjJwc0ZPVll4U2xCWDd4YnhGbUlmNlQzUkZMNWNiVndqTTVocVRxYnE2Rzc1ajRzbmdlSWxJcUowU2ZOLXJwUlRVVmJfM293R2JZWU1PenRrVzNjeDN4ZG81YjIzTE1OYnNrUmRCc2dvUVlvVm9vMU50cjhlQjVWMlFXM08xbE5RS1M4UFYtVU9QR2E4S2NJelRTZ3ZCSmhvV3djWkxHbVpfVU1oeGFUS2FUbTFHdTRDV3laT2d2U0xMVnd1TlluY0cwbkt0MEpDdmVwSUxEODBFem51dWM1OVpwcWxoNmxGOFdXZHVWc2NWNy1zUGY4N1RpSnc1dVJXeXN1Q0xIYUVrNTFOa05pU0htYVktR3k5WF82NFFfdHNJOGw0N3IzeWw1NXAtc3IwZlpidE1kR2MyNXNuV2piQmRueWthT01hUU9tV3lUQ2xnSUNyLXhMZEpVRmdxWDBKM2RvUW40bUlHQlNuNkVPTUFUWE9aaURpTXQ1WFh6ZVRfRGRPX1BQNVhwLXVUZHlVODI0ejZkZjJScExtSU84cVd6WUZOLTg0UndkY0ozakppN1YzWUp5WGEtSkVQU2VaOE0wSGxxQnRFamUwVWVidG1CWi1CWFFxYlVMTW5ZNXdwVzVTWG9WVmNnVC00NThCdVpkd3JaaUtzR2dnQ2l0QnIteGVPcS1tbnZwT05CUlRZa3R1aEN1MGFYcno5Sk9MYlNYYTVHSzAzYUgyN0VOVURwT3lVZmxuaWt1YkYyQmJwaHl1QVdFcXFpYkRFelFkY0l1LV9wdEotZ3NQYTN2TUdpeENsYkpMTFZMMmRYOEphbGQ2cWZwMmxwTFdzWVV5d0wzbjB1QlB1Nl9qNmM1T0JHYUlTbURPaTg1YlBVbTRHN1JVbzloU3hCMlVBN1BySmIxSnB1WmJFaWRyMW9tMU9VcHN2cThIVUNlWFFSY0pDcllqTklfRnpPUWVOXy1NWW1na2JVZDFBYjdpenRjTWtybnlnSk5DUGFFWXVpd21GMlpsaEZkYWQ0emo1bnI1V0JQTEo4bkplSkgyS29BVDZ2UXhQVWJyVzRwcGFNX1VnZjhFTUlrekxhYnVvSEM5S2xUVnZVSWZVeGtsWWdZOUlMRWdPNVRHenJSRlY2WXFjSnhMVl9HTE83X2ZlNkRqU0pkWlgtWV93WDE5Vm1DT19zV3VNTkFzdjd1VzVfdXdqR214d3BDRHFKWDZpSTBiM2tHRF96bE9OdmY4cVZZUkFMaFY4LTZ1Y1RtWjNpc0picUUyek5aRjcxU01aQjRueGdCNUJXRldrRDFqVzJqZlNzSHM4QjhhRXVSWUpXQl9XWW9aa2YtQXU1NVpfaFgta3BEMGhRelIxNnZWbHV4VWRVbnplUlJvdDdJWGF0S1ZxMTFTaXVWMGdtMERCRVdGZWZfRDJ6bGhrRTN2OE1QY1NNVVo3VEJ1LVpZTnJRb3RJWEtvTHk4bldpUGlQNERUQWNsUm5GbV9QcFdWZ0lXVUN1c2tZRW1kSDlFLWNDYXNwRHBMenBlWnMtR0JORDBZTFBIY2IwQmRBbnVEekV3Ql9MU1hQRmtTeXpYeWh0NjBVUjdNVE9ZaWJRcTF1cDBkR3lYSDZvTGV4MkstMmUwaWJzUFNQRDVsdDQ5ZkhlM0swSzhRZE13T0hTbmV6OExSQUYyUDg0TEN1U1FNVks2amk0REVjZFZ0TVVva3J5MFFSYzhsNE01b2xNd0Y5bHpXU3cyMlJjLWVMVXFKQ3hxZkFGVjJOV0NtV2xfS05NeVUxa3BWcnFfV09JaHE2Tm9qSV9fSHJmSElFM2VKQ3psRU5zS05IOGRmdmloaXdFTmdoYThHNV8tOFhGMVo4WGpPbzY1VjBXazRBMUhGaFNTLUNrcVNZRUJJM0hsZThqV2ZRZTdnNmttaF9mWmROdWgyYTlyVUJPOWZNQUV1MnpSYmlkVDJJVHhxNURHemlvbHdWSDZXbHBUaGcycHBxX3RPSzF6WDk1MkktUXJudVU2dnRjRnJqTXVMMjRlUjl2R2RUMWVpQkQ3SkpKWHItem1FNGoxakdIVkliN2swM3JHM3lYaVN6V3ZfeDFBek1mNnphZkdtMnlaYm5PTWNxVzRGc0hlNEVFUnFrZ29zd0FIaHdxUjF3OXpWU21UWTdTTm9lbzRiYXJ3MmZlNnVsYlFLaDE4MzVDZjVrSDRrY3ZCeDlEXzFtQUFzVEp5VzJkZkNGX1AtdUxhRDN6aVg4RjRpbG9XNXROZ25JUTZJTXlhaWtoYlNRemZQOV9KZERUWGt1N2J5Nnl3TGgyYWxYUVFKbC1aa1JiSHRYWFVsazhlSWY1RTdpN29xeWtmRldRMGt2MGRFWXQzVVpwTE1oeDFZR0pyYVQ4TmF2aFJ2LUdoMmtxVUdaUUxNZGJqREswai1zTnJzMFVGYXM4UW9nWGpLckdXQ2FfSlhTTWZETmhMN3ZvR1NqVk4tX2JLT2stQUtsdnY5QVNkX1k0U05WUGF4RVdXZzUyWjAxSVZwalpJUk5janREekR0WHY1c3hfZG16TXJnMk5oZ1R6Q3FZWTRKQ2RFUUxaaUpyWnlORlBrLXpMdi1KV2c3VEdxSWpaZGktUWs3ZXVEZ3IydldIT0NvaUlVOGtUeFZ6TGctMndDYUo4VWZNWENteTFiU3B2Vnpza3ZmdHdvTkh1dmptVTlHbnVzb3duNHBtRVlSTVl0dDNSY3RJeVh5bUJoXzU2cm1lelNQenNJY1M2aGtQb3JqSTFuUFlxYmMtU3BTdGI4NThwZ0h4ZEt1T2VYNUk1NzFWTUJhdzlOc3RoZ0daQzVZSEw1Z2ZxQzZyZXBlVFRBOWdReE1Oa1lsUGVGRFNjRUpjbGlsUnBkRk5mMkJ1T2oxRDFkUFBxMTNDSDFXVS1LTWFSQlZ3aExtMW55dGU3NnNHemJMd3hJNVZsbG9DTGhVZVhOeEhuZ2J5VWtxS0V4VENpUjhHbzRxdDZEZnFzNy1KaURfeDhwQ1B0a19ZUEVmU1VSY0pidzFUNGdOMHk1OUpqUVU1V0RLeGlEeEZXLWdFc1A3Q1pJWXFxSUtFWTFmd05VWkllTWtQZkNnNDY5VkppR2oxS1pqOTgyM3doazlDRTczOHd6UVdpaDBJVUFjcTdQOWY0UDl6YjM2MVpFMUc5TDAyRGtMWEVUN2Q1ZVp1bHBBb1NfYV90REpibjdZNHJ0cW1BcXVBQl9VQXNvZTBYbTlsYmpYUFdyTGNqMWhvbEFXM3lRMXZhNkFsS1FWYUVqV193czJNZlNMZlhjNVF5Si1VekNDRVlCaks2RktNN3FRS090S3hhdGFjbjloLUF4cmQtVjYycnB6SHRJbnJoaVAyNEV6dm1BQUY5WUJNVkZJdTVmNHdUMFJNMWFCX2RXNFlXNFVldHcyZXpOa19HTWJSdS1xOFI2dDU4ZUNybDhveTJ4RUk4eGJUWUlSNWlGTmUxbTY0X00zMG5LOTFHME5mbWpqYnltYTBKQVU0WGdfaEZQUTI4SnZ0VXJjRzA0UzVQZlV6aFlxZDlaWHFJSnBqdjgzR2c1RUJhamRZOXhpaHYtRjF5Ry1BNFRPcFc4a0lGWUpqZnRneHRMSTM1ZG1Ya3BwZlA1d05Ob09CUjJ3Y3piTkJmRGZwYmRSQzZLZFM2d19ValZ0N2huUV80WnFjWTktWnZjamFNWkswUUFaVjZuMi1TZl81VEd5U0VYOE1XLXduNUlaQ2VZZXpCNkVzaGduYTJpQV84VUQxSjBBbnNlT0lyejd5STFVQUVEWXRXZ21IX056ZzByTnZNOHhkdnVNMjdtNEtSNVJsamNweXlDRmV4NHJLdXlhVzdLQ19lSkZsUkdXYkxKYjFSNTk2UTNXOFVyMEsxQmRvYW1ReUw2UGtRNUZxNDVDZUp2NnpHOUx2SERTUTUtU20wX3VzXzg0a1lhTTZ5blRKS3RVajdybmVUb0hvbDN4YmdMMjBpRkVnTzhYYjBDNy1uTzhIbldsYnJuVkYyeTVtWndfNW1USGRJSGYtcmNiLUdEN29SOGNGWVAzT0pmcDhTdHZIbjFsUlJsS3BXN1ZBQzVib1p5N0NDQzhpMGtyOHNqenJ3UlVxb0Y3bGhFMGVRdXNjRUVrMWdsUjF3ZWpQQmFOSnhWZU05TldSRHRveldEa28zd2hobHhWNW1kUlRXbGFmUlM5X0U5WkJUS0ZQVzRybjRtZjNhZWZNNjQ3T3FZc2NYXy1WZHJLX2g4eUdUSnZ3eVNJV1c5dTEzWVc1c0RKckk5LURUbUZzTHB5bXZIQjU3NENvRGxsMXhYRU9FclU0VlJibXZmN09halFyLUxnOW52OGQtS3pzeWRVR05oSXNLdUNxWHpBVVZ5TS1DLW1hMVowTlBEMDhneXBzaEZRTlJhS3Fyd01lcElBNDk2OFVDTElMVGlEWnFXeEtkZFo1VHpjMGFpdkVhbWwyR3dOR1ZnbFpfMHJqR2FITVg0TVVmTWdYdy1abFpKX2Z6WWZzNTFUN2R1N1pKRnFyd2dGQlRBVGRsUjRTSkVQMW1TNEVwSm9fMGptb0ZZLThqTnNOSzJwQld0c3MxWDlFT1VtZUpnT1JpcmVZZ3k3b0ZkWDhBZTdULVNrc0ZnRmNXMVM1ODRjUUtJbndfS2FkaUZEUlNZQ29OZkY2bUtTel9VaGVReUNDSGFZeUxhZm9mU0VtZmZ1REpwV2tyTzF6Q2xRUTNYNXIyaUNCWDVqQnNOS0RFMGQ1TFdBVHI0OEVXUGNubkNXeTBBVUtqSWhUTXJ6enp2by13bTVsTjF2VVYwZ0tVOG1rWE9qSDZiS1NCdjRMV1o4a3p2VWNhRW5DWGNsbWJoTjZXZm10Y1k2dTE5eE5WempSOEMwa0Y3UWZGWWZFcVFQUW1ndmpPWHhGZ2RteU16ZElLT1VqT2ZYSEhVWDZtNnhSZTlEc1Vaem45N0l3NDJhNDBSNzRwd1R0b25SenlleWF4eGlYZHRvN2JUM2lVbXhTakRNc3BQWEJ3NFZ1UURRNmFwSEhidUExVWh1UGxOTnluMTMzV25kSWtMQkxGQUxvZF8xUXM2TDY0MXMyeUtzNnpxODF4eV9fT3ZtWG8weFJUMlhHd2o1R2NpSGh6UmVaTklsbUJUR2pOa0NuLVY3UFN4a0doSXBTMWo0TnF0S09GY2lyQ1JMaFRiZ1J1eG9nejFnWmNJV1gwUlhfem9QMEVNdXdfV0VqWmVJMTJfNVMzVjRQeFFtS0I1TW1NTVZvYi14aU1sRHlPRlpEcW9ZdVhWTkI4LVplU1RvcEhLaUJvZmxGajQtRXJiSTVoejYtcEVzTEZ6VmVIU2RCSEZibGFLUkxtXzFnR1hJcnR3Q3lEWERYOTBrRWhWU2UxX1U2TkVsUXJ5SXFVSlVIX2s2UmFwZG93aFlGUktfaTVSZ0psLW1ROGdYNWkyZl9NTHcxVmxtVElHTEw2eTJBelI2TFZ4cms0UHRmcy0xeHc0YzBfRHRQYzRXX0k3dFJuZm5GaEpBSS1GWnhZeUcxVHFaMWhtbUpMejhiSkNIaDNyQk56STNxRmtBaXdLSFN5YjJ5VWZ1dEFjZXRVZkc4eUtmRUNybk4xQUpZMWtyVkpVa2JTUUtKWnM2M3NyUTZFYjBGc2dTaTBUQXN5SjFRSDZFN0h6NE5vcXgxa0tnWlF4cnBKbi1tTFZRelNGamc4X0FpQWxEYzc0TzZtcldqT3NoejVBVWtER2VRSEczZEE0dHZTaTJxdFpaYW0wX2psUmVDeUdWaHE1amptdTh4R2s0a0Q5YUdLeDJmVVRpalNMSmdFQWttbVlDbTNLNkVZR2JDX284U2JjSnpRVGNoa09vNnA1dlpSblZyLUo1bUxaY0VnOHJ0bG1WWWZzbGRZMVVPeUVqR2xNRjgyZEQ5M0g1cFVSVk5VUkVoRVAzQTgxMFc4Y1NXeXByR3p6RURJaktZdmRDMjF1MENXaE1GYTRvN1VyT1A0M0NyRnZKSWNZNzROWHNOTWVYTk05ZFBzdzBpdV9HMjZ5cGhOUEZIb3J3V3RoWmozMHRLOVhHeDFCZzJDY0Q4a2VMUFdrOU1Ccm5KZGMwNWRWUE92TEUwX1JfOHFfYkpicDNZR1Y1YmY3Tm9LOTduU0pEVUFYVWlVZlp5cDRrZDQ1UjlPdG16V3J4RnZkSG1MaWdvZl9WdUJjWTBHa1lYeHNZTVd5RFN5SkdqM2E4bHJxeUF0dXpyVldmdjdweTlnVWRtZWlkVmpHU0RSUkx2eDhCQzZsOU12UGFIdW4zaFRFeEtJX2tzUkNSVXg3TDlBUkZkcUtBaGVweXpfZTlKUHFnMXVDbnVYcjZ4bWdtV1VxTGgyZ2tvakFtN1dxWTlyTUlSZEtUX0h5OE5McVpES2ZaVUQtcUpFT01LeUh6d3NBTkJ6VzhnOHVMeWNHUHJrSkliTnpFUE1NdjRQM2lhOFhhdDNIbzNzQ2VsZHEyWTVvMXV4MEdiZGpSbjIyQ0VZazhid0dUZ2JhM08wd3hsVWhXdjZkeFZianRmVnY5QTBJSmxvZ0swX2lwc3NWb0d1RGp4Rm5nMjZGLW5WcTFEbXctTTFPRGNjVDVXVm5tTkRWcEc0UDJGTGVweUN2QWhjZ0ZYUEVUN0ZzajZzT3NoTUdoTnZFOU5feHJ0dGMwV2dtaTR3aE1RVTZYTHVmS1QyeGZwNWU3cFVoQ29TaldieURMUExKZ3dVRzZpVkMzNXZJTmlMZVV2MlpzU0E1THU4NmJ3V2laeGs2cHhlbWFweEgwWFZmU29jZ2E0bkltR0dtRUdfWm9ZVHlyZ0syRm5nRXRXandFNEtEaWZFVms3d2pEWkRwUEhEZG5Kb0x1d0FWNk10WHlqdm01Y2ZhTVNlV3Flcnh1dXYtMHhDVXl3TG42WDJhbjdCVXJDdE93ZmJNeVRSZ3FwLTJ6Um9pdUdVUlA1dEs4bkR0bEJ1YXRnaXVRdmZCcjZ5RmpXWlpnYkt3aUlFeUxKWjJqd2hweVMzbEhfak1vY3lWZzA1SkZHQUZxY3R5NFFPTGQxT0F6TEpDY0pIalBqX3NQdnRGZFNVa1NvZ2IzQTVYYmY2MzdGVVRnMDI4ZkxuOF9vWVpjbGQ2MHM3ZUFBSC1sUDJUV09zeUR0UlBIckJ3RGFtU25DNncyWmxWRjRNbmdOX2duNWdnU2ZsWlNRQVl4LVVHWFhjR3pYX01SZURYaXZYMjlHNF9LaGtkSnA2V25BZ19ydTNWTGhPTUFSeXpER2p0UzYyVlYyN29fMG5GdzBKVkU3My1vYWlxTVVoanNqWHhMUlZ3Z0NhQ09IWWVUVlA1VUZxSTFpZXl2cnlIek8xRUpaNTNZSVpBT1BYMjdtNmxUNlNBa1VzV0NPTUZmR21nVTllbmsxMnVtU05JS1pUajV0Y0Y2ZjY1ZjFQaHk4WFdITDYtR0lNVUMzVmNEZmdqUVZXUkJ2Um5ILURhdEEwdEc5UERzQmhsZ2VzblF3QlF0dkgxR0FmRXNkNnhsTUZJOW5sSkp5Q2pzZWpZV2pHRE1rVWFfcGllelVuZElpck9qS05BR1pTdzhRYUVCbXF6SC02Q0hTZXQ1TThwZmI4NTV4ZTc0RXNpVFZWWjRGNDh4U1M1NG9Zdml2X0VCajlPUklOZTg3Q3ZUdlZ6VU5vQ2ZWajlrb0Jub1BmdmFQd0JRdmZSYzJmbE1TM3hTOFdSRUpvbUkycXEta0RLbkNfbC10QVZzR2FPS1VpTUJQem5fa2RLbWxEVXFWYXp4XzJPOXIteEVKM05tSlpIU2hOQ2dtNTYxZTl0emJVY2Fud3hBcnhISlRtbk5RMmEtYlB6di1Sa3lWdEN6Qm9ualAxTkw0elJndkNqdjIyQV91cWJzMXhqRTVSOUJmSkVEcE5IS0xfa2JwZnBBV3M1bTkwNDlxVDkxYTdoQ0tIdzFORWlpd05iNnRNZWV3OHBLc011Znd0S2VLOHNiMWxVSlotNDRleTlxZXhGOWNiR2tHb3lhcGxBNTAyUTdHWEoyWlBNcEFsdDBsenBhamp0MVlmQkRka0tEQTEtUEk5NDFaRDVoOVVMbUFPSTJaUllWNDNWcUxSaXJYc1VIdUh5cnVmLWxmX2hkX2loTmpIcnVVbnE5ODktcVBVOGhtY3R3b1RMRl82eGROWnpuc2VfSjNLLVRQazJKMHZEc2pFdHpPTVU2c2VYWEV2bC03LXdJTG1QTm1zdjRnNjYzVjBpUFU0enFaQV9FSlZTQUdmZ3YycUM4bk55QUlzZ25uTk1RSXlCaS1NQkwzbVppZnVab0s1aHlvZ0JCSEsyQjI2ZlkxMEFnclVfSkN2MlQ3UVpRaWZUTk56dGtHTUpvUDh3RVpkVnlaTlRtcXVRLVFZUG85TmFjME9OSTdfOENDb1pkRWV1cFhKUHlrR0xzOUt5VzVqbGxmNzlvNHVnb19rZl92bnRaQWFxVmdyZjRrakNFalNBZGw4NGZEaEEySlNCaVRYSjlqY2owQUlfT29XaTN3R01Ja3Z5NTlkNmxJRVRFVW5pd2NNRUtOVUZ3TWUwS0JEekhrOXdCN2Z4M1BiMVlDdmJWcnRVM2wtNDd1aFUzb2c0TW9VVVBSWE02VkVnUWtpcWd0cW5ySWpISUZOM182RmpnQXo3ZjczVWJQM0FmR1ZuWUc5ME94Ui1NUGFmXzdEcjVEYVhMUXkwWjVYdGJULTlJSFFNMWU5M1ZsVWFYVk9jYko0cFc3RFNpN3lwZ0VzUmhlX3BGcWZsNF9UeDFzY2dIWlhpaU9XZ2pEMmczelFRYzhEUDZPVUVjQ3N0TFdQN2RRVVdydG5zTWNOV21pYXNaV3dJWXBKVU9KTGJwRF9nZW8zOUowUDFZVUt1WEREN0xJNnFzRm84VFJqcmFnMjl4U1B2MVF6VmliaHpPUkJTRnRRdVNFU1l4Z3pzUTFLT2tPdk95cVJEdkE2TTJBWTgzR3B2aHc3emFkZWwyb01zQVhITU9YajhHT2Z5R2d6a1U4T1Z1bEVXOWNsRlM0bm8yNTNZaE9HNmFFU2J1TFRvQW9MWTF0RVBWWGltQS0wd25STy01TW9uWmtWQjdFOU9LeDVzeTlGVlJRc2h2VWJGTDRwbGFoYXJwN2FsbmE3S1dkLWthNzkzczhzZnJiU0Z1WC1QVF9LVjFzYzNNQnVwWXhKUUdIQmdUNFhuTENjMlZUdTA1eGV3WjNaUW5ZakRHQlpvY3V0SDVCampNdDZQSVpETVgzZHJoOTFLVzdUaEJFUHl2aXF5N19ZMEVzUWxnTldyVlZBLThWR1AtRUNaeU1kZ21zRlVVNTFMVFJNY3kwc0FZSFZMb1p1VHRMSzEwWG8wa1pmc0RaQXNYc2JXNTZ5YVhvak1WbXgwdDZ4NGZlYm1udzdIaURwQlhxcEhiejdMYXpLMnVtNHRQZlJIYVlLSXpkRjR3aGVMSHZlSVpUSHQ3MGdrWENZZTR1NHN0MkZvaUR3RlAyM0RPb015Vk9UV0xyYW16SXAwWXRWd2Z4cjF0bWlJeFZfZ1U0ekJpR0s1bXhwS2xhOExVcXdSYVlWd3Rib213QjRJdjlTM2lKQ2xua1Itb0x6bTJ0cmNlMENBbEVuVFVPXzF4NjM4SEoxS2Q0aXNNT3NCeDNRRlR0Zlo4ZVdYZ1dQZFVHVktOWW9VZ0txSDE1NVF4T3Nyekl4aDZXbEt6d21RTThSbTVJNHJqZ0pVeWpSMHdhNlFyOUxFcE5mVFpjYnQwcWIybmRXOWsxQlNTazh0eUV4S3NsSzJhU3lhMWt1eVFoUTBxRWxsSUFCemNEU05kb0hIRUIzaEhWZ0tNOHNLcDBxNzFIaXNZeDlaTTZzeGxUWm5KdG1ZXzFvZV9qaGVmMWNlTGswYlNIY0ZlaUpKZ2JwWUhRNV93S0ZuSlhPa2wtWkRjbjhvZ3NFaVlNWmJfMUJ2OUM3VFdmOEFRUGMtQjlKZHRoYk11Sy1IODUzS01lSUpyZlI4RTZFR3ZWQ09ubXpaeEpsVlJmQlF1ei1kZy1BWVh4ZHpnU0Z1Q0hOamNwbmpiaU9ZZVh0STNFaUpfaWY5b0lJTHU1cW12R1I1M1U5ai1SNUQ4YUh5UzRTZzctS2hnWjAtNk1NbllfaVUwbjVRQ1JJV0I0MFVmWExWdVEyVXkxLWRwNnJfdlUzQzdvOVFTTTdTc3VXWVNHTzR4RGNjMWEyckw0X2R5R0dMRVlEblR4MTd1ak5MVExKYU9UYUNIYmlIUkhuQ3I3a2R2eFRaWWhOeXFQRjBlUElkcUlITmVGQ0FkcmN0eHZhZWhWMzBGek5WMXpJQnRYbjNJZ1FfRTdxZDdBRjVtN3ZpOWdfOEtUSGMyR0otZ3Jkd2ZNTXhjdkRsOHc2dmxOaFY3eDQ0ZXBqX0w2dnByZ196SW9NcHZsaUI3WE55dlhrd2hKeDVtUWU2LU1rT0pOQWhJY2stU0djeUhuLXZjOWl2dkxaWVh5WXRjZVg1VHJpQnZ6cktCM3pVOE1Ib1BjZjJCWmxJMjJ3QmV6bjNoNS1qQm9mdFhYR2UtWWpwMUZleUFWcDhtYTlON1Z5SjF3eWtXNzBnREplNlZYcE5aYW5lSVQ0T255ZnZpTTZiV21IRnlrd3VnUHROR3FPcXdzSVpSYjdTai1TSzRTYmN4M0ZIY3VlVTNsX3VLRWZLdU45ZTAtR0NlVVp0bDNzYlA2dUJvNi1jY2tHV3NGa3k1UllfWVUxb2lWbkV1ZGJPMmFHNWJEeS1va3NvM2VyUkpGZzBCWVhiWkpHeC1XbVdtWHkwTUV3RC1mZW9zSEdWdE82WHRqNUlwWVJnVGdQZ3puQzgzVTB1ZlJlSVB4SXc5aUtDX0hIMVUyQVJLMkdEUG9CdHpYeC16T3F1Q2NHUVhfa3dIdF9RRUJBdGJvTUt1VnZaWV9lVjNHdmVFZG1DbU83LW14S280NTM3UHg2MTlfRmZ5NGxKa2lnN2hhNE9JYmJENUhaZzFWdFFBQWhQNUtuVjkyVVJFbExXOGdjcW95ZkVEWjlWaDFPSkk4MFdaY2YzNHA4LWxJcEluMHV0bXdNMExjVkctUWhLcjVIc2tmRXFmLW5VMDhQRFd3UkRjTXpHUDFmcXdZVFhpeUJtMmxzaFlWQnRzTU9HaWZiMDJMMVpGbjk3eEFrZUZPNjhBTWhrTmZLQUl4TFJyWVZONU9hdnlFQTB1Y0RKVEdLWm54MmZPeEh6a1ZiTDFBUEhqWThyeEdBU0UwNEdQZmM5OGRKTjNtRF8wQ2NmaEpTcUJzMFpJcnQ2OVd3OFFqelJ5ZFhZVzgxVWlmRnp2VVlUdlhrWkFJT1JRNGU1NUpjbHVZZmttNFRyNzF4eTRuWW9aX0IwMklfa2R1LXhwMnJ6M3o1bEZHWVhCQUJQR082TGxLc00wbnhtN21HVVZldU5MeGxYT3NBTkV3aFJzbC1hYXM0RjQ2a1ZqY1ZMTy1vYjRkUHRUWVNrNXBZSlRZaWFvQThSX1UxUGRIc2FwZzZWX0tVdm51bE9hZ01NX1BZVjhsSDU2bVFMVWFDTXNNZTJVeGVDQ3R4UHpQN0t0aWZaaEpkWFQzSWYwZHY0bVJib29ZUGwyMFhJQVZOeG03QU9JZV9GMjcyajBUYXo3M2VQNXd4OFNkZldoUjlBcWlwaGNXMEhGeHJrRFRXQXhxa2tXRXlyWk9wejZBSUo0MWhBeWZ3dmN0LnYwZk5jc0h2VU1ua1Z0b1BFVXVORktlSGhEY3VIYXNIeHBNa0E0SktCZ2s" - }, - "StatusCode": 200, - "ResponseHeaders": { - "Cache-Control": "no-cache", - "Content-Length": "2364", - "Content-Type": "application/json; charset=utf-8", - "Date": "Mon, 16 May 2022 18:15:30 GMT", - "Expires": "-1", - "Pragma": "no-cache", - "Strict-Transport-Security": "max-age=31536000;includeSubDomains", - "X-Content-Type-Options": "nosniff", - "x-ms-keyvault-network-info": "conn_type=Ipv4;addr=73.83.78.150;act_addr_fam=InterNetwork;", - "x-ms-keyvault-region": "westus2", - "x-ms-keyvault-service-version": "1.9.395.1", - "x-ms-request-id": "493d501f-a1bc-4c54-82c8-bf4c5be1a69b" - }, - "ResponseBody": { - "id": "https://fakekvurl.vault.azure.net/certificates/certRestore3931096132/a0aff3fe2bf644f1b0bccf83e3363d5d", - "kid": "https://fakekvurl.vault.azure.net/keys/certRestore3931096132/a0aff3fe2bf644f1b0bccf83e3363d5d", - "sid": "https://fakekvurl.vault.azure.net/secrets/certRestore3931096132/a0aff3fe2bf644f1b0bccf83e3363d5d", - "x5t": "kaeg05Ip-MbGgDaf0LGwcRPttxM", - "cer": "MIIDaDCCAlCgAwIBAgIQDbSXN0imSUa9lNjfmVGRETANBgkqhkiG9w0BAQsFADAYMRYwFAYDVQQDEw1EZWZhdWx0UG9saWN5MB4XDTIyMDUxNjE4MDUxMloXDTIzMDUxNjE4MTUxMlowGDEWMBQGA1UEAxMNRGVmYXVsdFBvbGljeTCCASIwDQYJKoZIhvcNAQEBBQADggEPADCCAQoCggEBAMdR0rElA7k50BFmpI6TX8bveV7KlxXboKF3IKuetI2X8MckqJTo\u002BKlJ1GGeaC/IHQ/hnW1V/g1gznxQi1dGEhQXIAXwKwGuMjU97jU/YZCYmhtmZ0qHe3IKv1vlNkHqlUsFTKkVQ2dKZzja6Lj07J\u002Bd1ocUk8wa7GsxDjptds6WHu0JXZ4NgwuIqQ2kn96K/fVpBAVy4gA5G2UDfiYNPlnThWvoT6oN1vSD0aI6T31uujEgeCjWjSAR9i2FQekM9neP0O3ShpAlCVLTnN37NsgUA12szbiOiCojOqpkJufzPM7qC/0FCW1ojxoacv8U3C7zJCfTmXMSEISJVQULvxUCAwEAAaOBrTCBqjAOBgNVHQ8BAf8EBAMCBaAwCQYDVR0TBAIwADAdBgNVHSUEFjAUBggrBgEFBQcDAQYIKwYBBQUHAwIwLgYDVR0RBCcwJaAjBgorBgEEAYI3FAIDoBUME2pvaG4uZG9lQGRvbWFpbi5jb20wHwYDVR0jBBgwFoAUaXJ\u002BalkPK2XUl4Zr1UwQO/hOO88wHQYDVR0OBBYEFGlyfmpZDytl1JeGa9VMEDv4TjvPMA0GCSqGSIb3DQEBCwUAA4IBAQATTEQFspnaY0R57fPErQ1iW7eERtv/crheXcIMCG2r2RXRvwXZ2NYF5gtNf8o6AFc/tKst4qmQYYcTyezL2q8pbW2l8r7I1USTwiR36i5zagYO/YTbBxXbyuW0Wl134Mww2sJM4t8WBqzT596DvT0nYm5HM49D6NnoqVh0NMrrx73fvp/\u002BvzEZZemHH0o8wqw2\u002BdlcQvSlHLTiKC2uHA7CH5bKOw2O5Dtt1sRssLpAHU5QZvhG9zC5myuH/9OHvjG9Hv2WL3P2aF8wDDSTRDLZlsaZLCVYPErfsfvodyhPi6ZFyfwiBLgwfVhTfKawsLS3z7fEw\u002B9KmvLyrbRyDIM\u002B", - "attributes": { - "enabled": true, - "nbf": 1652724312, - "exp": 1684260912, - "created": 1652724912, - "updated": 1652724912, - "recoveryLevel": "CustomizedRecoverable\u002BPurgeable", - "recoverableDays": 7 - }, - "policy": { - "id": "https://fakekvurl.vault.azure.net/certificates/certRestore3931096132/policy", - "key_props": { - "exportable": true, - "kty": "RSA", - "key_size": 2048, - "reuse_key": false - }, - "secret_props": { - "contentType": "application/x-pkcs12" - }, - "x509_props": { - "subject": "CN=DefaultPolicy", - "sans": { - "upns": [ - "john.doe@domain.com" - ] - }, - "ekus": [ - "1.3.6.1.5.5.7.3.1", - "1.3.6.1.5.5.7.3.2" - ], - "key_usage": [ - "digitalSignature", - "keyEncipherment" - ], - "validity_months": 12, - "basic_constraints": { - "ca": false - } - }, - "lifetime_actions": [ - { - "trigger": { - "lifetime_percentage": 80 - }, - "action": { - "action_type": "AutoRenew" - } - } - ], - "issuer": { - "name": "Self" - }, - "attributes": { - "enabled": true, - "created": 1652724905, - "updated": 1652724905 - } - } - } - }, - { - "RequestUri": "https://fakekvurl.vault.azure.net/certificates/certRestore3931096132?api-version=7.3", - "RequestMethod": "DELETE", - "RequestHeaders": { - "Accept": "application/json", - "Accept-Encoding": "gzip", - "Authorization": "Sanitized", - "User-Agent": "azsdk-go-azcertificates/v0.4.2 (go1.18; Windows_NT)" - }, - "RequestBody": null, - "StatusCode": 200, - "ResponseHeaders": { - "Cache-Control": "no-cache", - "Content-Length": "2512", - "Content-Type": "application/json; charset=utf-8", - "Date": "Mon, 16 May 2022 18:15:30 GMT", - "Expires": "-1", - "Pragma": "no-cache", - "Strict-Transport-Security": "max-age=31536000;includeSubDomains", - "X-Content-Type-Options": "nosniff", - "x-ms-keyvault-network-info": "conn_type=Ipv4;addr=73.83.78.150;act_addr_fam=InterNetwork;", - "x-ms-keyvault-region": "westus2", - "x-ms-keyvault-service-version": "1.9.395.1", - "x-ms-request-id": "073dcb67-3442-4127-a964-3a04057a6132" - }, - "ResponseBody": { - "recoveryId": "https://fakekvurl.vault.azure.net/deletedcertificates/certRestore3931096132", - "deletedDate": 1652724930, - "scheduledPurgeDate": 1653329730, - "id": "https://fakekvurl.vault.azure.net/certificates/certRestore3931096132/a0aff3fe2bf644f1b0bccf83e3363d5d", - "kid": "https://fakekvurl.vault.azure.net/keys/certRestore3931096132/a0aff3fe2bf644f1b0bccf83e3363d5d", - "sid": "https://fakekvurl.vault.azure.net/secrets/certRestore3931096132/a0aff3fe2bf644f1b0bccf83e3363d5d", - "x5t": "kaeg05Ip-MbGgDaf0LGwcRPttxM", - "cer": "MIIDaDCCAlCgAwIBAgIQDbSXN0imSUa9lNjfmVGRETANBgkqhkiG9w0BAQsFADAYMRYwFAYDVQQDEw1EZWZhdWx0UG9saWN5MB4XDTIyMDUxNjE4MDUxMloXDTIzMDUxNjE4MTUxMlowGDEWMBQGA1UEAxMNRGVmYXVsdFBvbGljeTCCASIwDQYJKoZIhvcNAQEBBQADggEPADCCAQoCggEBAMdR0rElA7k50BFmpI6TX8bveV7KlxXboKF3IKuetI2X8MckqJTo\u002BKlJ1GGeaC/IHQ/hnW1V/g1gznxQi1dGEhQXIAXwKwGuMjU97jU/YZCYmhtmZ0qHe3IKv1vlNkHqlUsFTKkVQ2dKZzja6Lj07J\u002Bd1ocUk8wa7GsxDjptds6WHu0JXZ4NgwuIqQ2kn96K/fVpBAVy4gA5G2UDfiYNPlnThWvoT6oN1vSD0aI6T31uujEgeCjWjSAR9i2FQekM9neP0O3ShpAlCVLTnN37NsgUA12szbiOiCojOqpkJufzPM7qC/0FCW1ojxoacv8U3C7zJCfTmXMSEISJVQULvxUCAwEAAaOBrTCBqjAOBgNVHQ8BAf8EBAMCBaAwCQYDVR0TBAIwADAdBgNVHSUEFjAUBggrBgEFBQcDAQYIKwYBBQUHAwIwLgYDVR0RBCcwJaAjBgorBgEEAYI3FAIDoBUME2pvaG4uZG9lQGRvbWFpbi5jb20wHwYDVR0jBBgwFoAUaXJ\u002BalkPK2XUl4Zr1UwQO/hOO88wHQYDVR0OBBYEFGlyfmpZDytl1JeGa9VMEDv4TjvPMA0GCSqGSIb3DQEBCwUAA4IBAQATTEQFspnaY0R57fPErQ1iW7eERtv/crheXcIMCG2r2RXRvwXZ2NYF5gtNf8o6AFc/tKst4qmQYYcTyezL2q8pbW2l8r7I1USTwiR36i5zagYO/YTbBxXbyuW0Wl134Mww2sJM4t8WBqzT596DvT0nYm5HM49D6NnoqVh0NMrrx73fvp/\u002BvzEZZemHH0o8wqw2\u002BdlcQvSlHLTiKC2uHA7CH5bKOw2O5Dtt1sRssLpAHU5QZvhG9zC5myuH/9OHvjG9Hv2WL3P2aF8wDDSTRDLZlsaZLCVYPErfsfvodyhPi6ZFyfwiBLgwfVhTfKawsLS3z7fEw\u002B9KmvLyrbRyDIM\u002B", - "attributes": { - "enabled": true, - "nbf": 1652724312, - "exp": 1684260912, - "created": 1652724912, - "updated": 1652724912, - "recoveryLevel": "CustomizedRecoverable\u002BPurgeable", - "recoverableDays": 7 - }, - "policy": { - "id": "https://fakekvurl.vault.azure.net/certificates/certRestore3931096132/policy", - "key_props": { - "exportable": true, - "kty": "RSA", - "key_size": 2048, - "reuse_key": false - }, - "secret_props": { - "contentType": "application/x-pkcs12" - }, - "x509_props": { - "subject": "CN=DefaultPolicy", - "sans": { - "upns": [ - "john.doe@domain.com" - ] - }, - "ekus": [ - "1.3.6.1.5.5.7.3.1", - "1.3.6.1.5.5.7.3.2" - ], - "key_usage": [ - "digitalSignature", - "keyEncipherment" - ], - "validity_months": 12, - "basic_constraints": { - "ca": false - } - }, - "lifetime_actions": [ - { - "trigger": { - "lifetime_percentage": 80 - }, - "action": { - "action_type": "AutoRenew" - } - } - ], - "issuer": { - "name": "Self" - }, - "attributes": { - "enabled": true, - "created": 1652724905, - "updated": 1652724905 - } - } - } - }, - { - "RequestUri": "https://fakekvurl.vault.azure.net/deletedcertificates/certRestore3931096132?api-version=7.3", - "RequestMethod": "GET", - "RequestHeaders": { - ":method": "GET", - "Accept": "application/json", - "Accept-Encoding": "gzip", - "Authorization": "Sanitized", - "User-Agent": "azsdk-go-azcertificates/v0.4.2 (go1.18; Windows_NT)" - }, - "RequestBody": null, - "StatusCode": 404, - "ResponseHeaders": { - "Cache-Control": "no-cache", - "Content-Length": "105", - "Content-Type": "application/json; charset=utf-8", - "Date": "Mon, 16 May 2022 18:15:30 GMT", - "Expires": "-1", - "Pragma": "no-cache", - "Strict-Transport-Security": "max-age=31536000;includeSubDomains", - "X-Content-Type-Options": "nosniff", - "x-ms-keyvault-network-info": "conn_type=Ipv4;addr=73.83.78.150;act_addr_fam=InterNetwork;", - "x-ms-keyvault-region": "westus2", - "x-ms-keyvault-service-version": "1.9.395.1", - "x-ms-request-id": "d444cb00-9f7e-485c-89a9-bdf3d417f28b" - }, - "ResponseBody": { - "error": { - "code": "CertificateNotFound", - "message": "Deleted Certificate not found: certRestore3931096132" - } - } - }, - { - "RequestUri": "https://fakekvurl.vault.azure.net/deletedcertificates/certRestore3931096132?api-version=7.3", - "RequestMethod": "GET", - "RequestHeaders": { - ":method": "GET", - "Accept": "application/json", - "Accept-Encoding": "gzip", - "Authorization": "Sanitized", - "User-Agent": "azsdk-go-azcertificates/v0.4.2 (go1.18; Windows_NT)" - }, - "RequestBody": null, - "StatusCode": 404, - "ResponseHeaders": { - "Cache-Control": "no-cache", - "Content-Length": "105", - "Content-Type": "application/json; charset=utf-8", - "Date": "Mon, 16 May 2022 18:15:31 GMT", - "Expires": "-1", - "Pragma": "no-cache", - "Strict-Transport-Security": "max-age=31536000;includeSubDomains", - "X-Content-Type-Options": "nosniff", - "x-ms-keyvault-network-info": "conn_type=Ipv4;addr=73.83.78.150;act_addr_fam=InterNetwork;", - "x-ms-keyvault-region": "westus2", - "x-ms-keyvault-service-version": "1.9.395.1", - "x-ms-request-id": "0dc220f4-51a3-42f3-8555-47075823c358" - }, - "ResponseBody": { - "error": { - "code": "CertificateNotFound", - "message": "Deleted Certificate not found: certRestore3931096132" - } - } - }, - { - "RequestUri": "https://fakekvurl.vault.azure.net/deletedcertificates/certRestore3931096132?api-version=7.3", - "RequestMethod": "GET", - "RequestHeaders": { - ":method": "GET", - "Accept": "application/json", - "Accept-Encoding": "gzip", - "Authorization": "Sanitized", - "User-Agent": "azsdk-go-azcertificates/v0.4.2 (go1.18; Windows_NT)" - }, - "RequestBody": null, - "StatusCode": 404, - "ResponseHeaders": { - "Cache-Control": "no-cache", - "Content-Length": "105", - "Content-Type": "application/json; charset=utf-8", - "Date": "Mon, 16 May 2022 18:15:32 GMT", - "Expires": "-1", - "Pragma": "no-cache", - "Strict-Transport-Security": "max-age=31536000;includeSubDomains", - "X-Content-Type-Options": "nosniff", - "x-ms-keyvault-network-info": "conn_type=Ipv4;addr=73.83.78.150;act_addr_fam=InterNetwork;", - "x-ms-keyvault-region": "westus2", - "x-ms-keyvault-service-version": "1.9.395.1", - "x-ms-request-id": "e92a630e-000b-40bf-bf70-b6d84181f188" - }, - "ResponseBody": { - "error": { - "code": "CertificateNotFound", - "message": "Deleted Certificate not found: certRestore3931096132" - } - } - }, - { - "RequestUri": "https://fakekvurl.vault.azure.net/deletedcertificates/certRestore3931096132?api-version=7.3", - "RequestMethod": "GET", - "RequestHeaders": { - ":method": "GET", - "Accept": "application/json", - "Accept-Encoding": "gzip", - "Authorization": "Sanitized", - "User-Agent": "azsdk-go-azcertificates/v0.4.2 (go1.18; Windows_NT)" - }, - "RequestBody": null, - "StatusCode": 404, - "ResponseHeaders": { - "Cache-Control": "no-cache", - "Content-Length": "105", - "Content-Type": "application/json; charset=utf-8", - "Date": "Mon, 16 May 2022 18:15:33 GMT", - "Expires": "-1", - "Pragma": "no-cache", - "Strict-Transport-Security": "max-age=31536000;includeSubDomains", - "X-Content-Type-Options": "nosniff", - "x-ms-keyvault-network-info": "conn_type=Ipv4;addr=73.83.78.150;act_addr_fam=InterNetwork;", - "x-ms-keyvault-region": "westus2", - "x-ms-keyvault-service-version": "1.9.395.1", - "x-ms-request-id": "b239bb39-c511-4982-834a-6927fdb2f1a9" - }, - "ResponseBody": { - "error": { - "code": "CertificateNotFound", - "message": "Deleted Certificate not found: certRestore3931096132" - } - } - }, - { - "RequestUri": "https://fakekvurl.vault.azure.net/deletedcertificates/certRestore3931096132?api-version=7.3", - "RequestMethod": "GET", - "RequestHeaders": { - ":method": "GET", - "Accept": "application/json", - "Accept-Encoding": "gzip", - "Authorization": "Sanitized", - "User-Agent": "azsdk-go-azcertificates/v0.4.2 (go1.18; Windows_NT)" - }, - "RequestBody": null, - "StatusCode": 200, - "ResponseHeaders": { - "Cache-Control": "no-cache", - "Content-Length": "2512", - "Content-Type": "application/json; charset=utf-8", - "Date": "Mon, 16 May 2022 18:15:34 GMT", - "Expires": "-1", - "Pragma": "no-cache", - "Strict-Transport-Security": "max-age=31536000;includeSubDomains", - "X-Content-Type-Options": "nosniff", - "x-ms-keyvault-network-info": "conn_type=Ipv4;addr=73.83.78.150;act_addr_fam=InterNetwork;", - "x-ms-keyvault-region": "westus2", - "x-ms-keyvault-service-version": "1.9.395.1", - "x-ms-request-id": "17535abf-02d0-47f5-a8d1-0ab9b0bde296" - }, - "ResponseBody": { - "recoveryId": "https://fakekvurl.vault.azure.net/deletedcertificates/certRestore3931096132", - "deletedDate": 1652724930, - "scheduledPurgeDate": 1653329730, - "id": "https://fakekvurl.vault.azure.net/certificates/certRestore3931096132/a0aff3fe2bf644f1b0bccf83e3363d5d", - "kid": "https://fakekvurl.vault.azure.net/keys/certRestore3931096132/a0aff3fe2bf644f1b0bccf83e3363d5d", - "sid": "https://fakekvurl.vault.azure.net/secrets/certRestore3931096132/a0aff3fe2bf644f1b0bccf83e3363d5d", - "x5t": "kaeg05Ip-MbGgDaf0LGwcRPttxM", - "cer": "MIIDaDCCAlCgAwIBAgIQDbSXN0imSUa9lNjfmVGRETANBgkqhkiG9w0BAQsFADAYMRYwFAYDVQQDEw1EZWZhdWx0UG9saWN5MB4XDTIyMDUxNjE4MDUxMloXDTIzMDUxNjE4MTUxMlowGDEWMBQGA1UEAxMNRGVmYXVsdFBvbGljeTCCASIwDQYJKoZIhvcNAQEBBQADggEPADCCAQoCggEBAMdR0rElA7k50BFmpI6TX8bveV7KlxXboKF3IKuetI2X8MckqJTo\u002BKlJ1GGeaC/IHQ/hnW1V/g1gznxQi1dGEhQXIAXwKwGuMjU97jU/YZCYmhtmZ0qHe3IKv1vlNkHqlUsFTKkVQ2dKZzja6Lj07J\u002Bd1ocUk8wa7GsxDjptds6WHu0JXZ4NgwuIqQ2kn96K/fVpBAVy4gA5G2UDfiYNPlnThWvoT6oN1vSD0aI6T31uujEgeCjWjSAR9i2FQekM9neP0O3ShpAlCVLTnN37NsgUA12szbiOiCojOqpkJufzPM7qC/0FCW1ojxoacv8U3C7zJCfTmXMSEISJVQULvxUCAwEAAaOBrTCBqjAOBgNVHQ8BAf8EBAMCBaAwCQYDVR0TBAIwADAdBgNVHSUEFjAUBggrBgEFBQcDAQYIKwYBBQUHAwIwLgYDVR0RBCcwJaAjBgorBgEEAYI3FAIDoBUME2pvaG4uZG9lQGRvbWFpbi5jb20wHwYDVR0jBBgwFoAUaXJ\u002BalkPK2XUl4Zr1UwQO/hOO88wHQYDVR0OBBYEFGlyfmpZDytl1JeGa9VMEDv4TjvPMA0GCSqGSIb3DQEBCwUAA4IBAQATTEQFspnaY0R57fPErQ1iW7eERtv/crheXcIMCG2r2RXRvwXZ2NYF5gtNf8o6AFc/tKst4qmQYYcTyezL2q8pbW2l8r7I1USTwiR36i5zagYO/YTbBxXbyuW0Wl134Mww2sJM4t8WBqzT596DvT0nYm5HM49D6NnoqVh0NMrrx73fvp/\u002BvzEZZemHH0o8wqw2\u002BdlcQvSlHLTiKC2uHA7CH5bKOw2O5Dtt1sRssLpAHU5QZvhG9zC5myuH/9OHvjG9Hv2WL3P2aF8wDDSTRDLZlsaZLCVYPErfsfvodyhPi6ZFyfwiBLgwfVhTfKawsLS3z7fEw\u002B9KmvLyrbRyDIM\u002B", - "attributes": { - "enabled": true, - "nbf": 1652724312, - "exp": 1684260912, - "created": 1652724912, - "updated": 1652724912, - "recoveryLevel": "CustomizedRecoverable\u002BPurgeable", - "recoverableDays": 7 - }, - "policy": { - "id": "https://fakekvurl.vault.azure.net/certificates/certRestore3931096132/policy", - "key_props": { - "exportable": true, - "kty": "RSA", - "key_size": 2048, - "reuse_key": false - }, - "secret_props": { - "contentType": "application/x-pkcs12" - }, - "x509_props": { - "subject": "CN=DefaultPolicy", - "sans": { - "upns": [ - "john.doe@domain.com" - ] - }, - "ekus": [ - "1.3.6.1.5.5.7.3.1", - "1.3.6.1.5.5.7.3.2" - ], - "key_usage": [ - "digitalSignature", - "keyEncipherment" - ], - "validity_months": 12, - "basic_constraints": { - "ca": false - } - }, - "lifetime_actions": [ - { - "trigger": { - "lifetime_percentage": 80 - }, - "action": { - "action_type": "AutoRenew" - } - } - ], - "issuer": { - "name": "Self" - }, - "attributes": { - "enabled": true, - "created": 1652724905, - "updated": 1652724905 - } - } - } - }, - { - "RequestUri": "https://fakekvurl.vault.azure.net/deletedcertificates/certRestore3931096132?api-version=7.3", - "RequestMethod": "DELETE", - "RequestHeaders": { - "Accept": "application/json", - "Accept-Encoding": "gzip", - "Authorization": "Sanitized", - "User-Agent": "azsdk-go-azcertificates/v0.4.2 (go1.18; Windows_NT)" - }, - "RequestBody": null, - "StatusCode": 204, - "ResponseHeaders": { - "Cache-Control": "no-cache", - "Date": "Mon, 16 May 2022 18:15:35 GMT", - "Expires": "-1", - "Pragma": "no-cache", - "Strict-Transport-Security": "max-age=31536000;includeSubDomains", - "X-Content-Type-Options": "nosniff", - "x-ms-keyvault-network-info": "conn_type=Ipv4;addr=73.83.78.150;act_addr_fam=InterNetwork;", - "x-ms-keyvault-region": "westus2", - "x-ms-keyvault-service-version": "1.9.395.1", - "x-ms-request-id": "c6a7b9e9-681c-4ec7-be4c-afda8aa75c4c" - }, - "ResponseBody": null - } - ], - "Variables": {} -} diff --git a/sdk/keyvault/azcertificates/testdata/recordings/TestContactsCRUD.json b/sdk/keyvault/azcertificates/testdata/recordings/TestContactsCRUD.json new file mode 100644 index 000000000000..a5565a60a03f --- /dev/null +++ b/sdk/keyvault/azcertificates/testdata/recordings/TestContactsCRUD.json @@ -0,0 +1,176 @@ +{ + "Entries": [ + { + "RequestUri": "https://fakevault/certificates/contacts?api-version=7.3", + "RequestMethod": "PUT", + "RequestHeaders": { + "Accept": "application/json", + "Accept-Encoding": "gzip", + "Content-Length": "0", + "User-Agent": "azsdk-go-azcertificates/v0.5.0 (go1.18; linux)" + }, + "RequestBody": null, + "StatusCode": 401, + "ResponseHeaders": { + "Cache-Control": "no-cache", + "Content-Length": "97", + "Content-Type": "application/json; charset=utf-8", + "Date": "Wed, 29 Jun 2022 20:49:07 GMT", + "Expires": "-1", + "Pragma": "no-cache", + "Strict-Transport-Security": "max-age=31536000;includeSubDomains", + "WWW-Authenticate": "Bearer authorization=\u0022https://login.windows.net/72f988bf-86f1-41af-91ab-2d7cd011db47\u0022, resource=\u0022https://vault.azure.net\u0022", + "X-Content-Type-Options": "nosniff", + "x-ms-keyvault-network-info": "conn_type=Ipv4;addr=24.17.201.78;act_addr_fam=InterNetwork;", + "x-ms-keyvault-region": "eastus", + "x-ms-keyvault-service-version": "1.9.444.2", + "x-ms-request-id": "37e19621-5081-4121-992e-c02abced83ed" + }, + "ResponseBody": { + "error": { + "code": "Unauthorized", + "message": "AKV10000: Request is missing a Bearer or PoP token." + } + } + }, + { + "RequestUri": "https://fakevault/certificates/contacts?api-version=7.3", + "RequestMethod": "PUT", + "RequestHeaders": { + "Accept": "application/json", + "Accept-Encoding": "gzip", + "Authorization": "Sanitized", + "Content-Length": "134", + "Content-Type": "application/json", + "User-Agent": "azsdk-go-azcertificates/v0.5.0 (go1.18; linux)" + }, + "RequestBody": { + "contacts": [ + { + "email": "one@localhost", + "name": "One", + "phone": "1111111111" + }, + { + "email": "two@localhost", + "name": "Two", + "phone": "2222222222" + } + ] + }, + "StatusCode": 200, + "ResponseHeaders": { + "Cache-Control": "no-cache", + "Content-Length": "181", + "Content-Type": "application/json; charset=utf-8", + "Date": "Wed, 29 Jun 2022 20:49:07 GMT", + "Expires": "-1", + "Pragma": "no-cache", + "Strict-Transport-Security": "max-age=31536000;includeSubDomains", + "X-Content-Type-Options": "nosniff", + "x-ms-keyvault-network-info": "conn_type=Ipv4;addr=24.17.201.78;act_addr_fam=InterNetwork;", + "x-ms-keyvault-region": "eastus", + "x-ms-keyvault-service-version": "1.9.444.2", + "x-ms-request-id": "c75d8426-9e5b-4fc1-b526-5fd28b68da6b" + }, + "ResponseBody": { + "id": "https://fakevault/certificates/contacts", + "contacts": [ + { + "email": "one@localhost", + "name": "One", + "phone": "1111111111" + }, + { + "email": "two@localhost", + "name": "Two", + "phone": "2222222222" + } + ] + } + }, + { + "RequestUri": "https://fakevault/certificates/contacts?api-version=7.3", + "RequestMethod": "GET", + "RequestHeaders": { + "Accept": "application/json", + "Accept-Encoding": "gzip", + "Authorization": "Sanitized", + "User-Agent": "azsdk-go-azcertificates/v0.5.0 (go1.18; linux)" + }, + "RequestBody": null, + "StatusCode": 200, + "ResponseHeaders": { + "Cache-Control": "no-cache", + "Content-Length": "181", + "Content-Type": "application/json; charset=utf-8", + "Date": "Wed, 29 Jun 2022 20:49:08 GMT", + "Expires": "-1", + "Pragma": "no-cache", + "Strict-Transport-Security": "max-age=31536000;includeSubDomains", + "X-Content-Type-Options": "nosniff", + "x-ms-keyvault-network-info": "conn_type=Ipv4;addr=24.17.201.78;act_addr_fam=InterNetwork;", + "x-ms-keyvault-region": "eastus", + "x-ms-keyvault-service-version": "1.9.444.2", + "x-ms-request-id": "bf7c5898-f33c-441e-baaa-6616a4f81733" + }, + "ResponseBody": { + "id": "https://fakevault/certificates/contacts", + "contacts": [ + { + "email": "one@localhost", + "name": "One", + "phone": "1111111111" + }, + { + "email": "two@localhost", + "name": "Two", + "phone": "2222222222" + } + ] + } + }, + { + "RequestUri": "https://fakevault/certificates/contacts?api-version=7.3", + "RequestMethod": "DELETE", + "RequestHeaders": { + "Accept": "application/json", + "Accept-Encoding": "gzip", + "Authorization": "Sanitized", + "User-Agent": "azsdk-go-azcertificates/v0.5.0 (go1.18; linux)" + }, + "RequestBody": null, + "StatusCode": 200, + "ResponseHeaders": { + "Cache-Control": "no-cache", + "Content-Length": "181", + "Content-Type": "application/json; charset=utf-8", + "Date": "Wed, 29 Jun 2022 20:49:08 GMT", + "Expires": "-1", + "Pragma": "no-cache", + "Strict-Transport-Security": "max-age=31536000;includeSubDomains", + "X-Content-Type-Options": "nosniff", + "x-ms-keyvault-network-info": "conn_type=Ipv4;addr=24.17.201.78;act_addr_fam=InterNetwork;", + "x-ms-keyvault-region": "eastus", + "x-ms-keyvault-service-version": "1.9.444.2", + "x-ms-request-id": "c2712b17-6034-4c7e-a7de-fcadd2d67357" + }, + "ResponseBody": { + "id": "https://fakevault/certificates/contacts", + "contacts": [ + { + "email": "one@localhost", + "name": "One", + "phone": "1111111111" + }, + { + "email": "two@localhost", + "name": "Two", + "phone": "2222222222" + } + ] + } + } + ], + "Variables": {} +} diff --git a/sdk/keyvault/azcertificates/testdata/recordings/TestDeleteRecover.json b/sdk/keyvault/azcertificates/testdata/recordings/TestDeleteRecover.json new file mode 100644 index 000000000000..5bda7fa11624 --- /dev/null +++ b/sdk/keyvault/azcertificates/testdata/recordings/TestDeleteRecover.json @@ -0,0 +1,1022 @@ +{ + "Entries": [ + { + "RequestUri": "https://fakevault/certificates/3575422782/create?api-version=7.3", + "RequestMethod": "POST", + "RequestHeaders": { + "Accept": "application/json", + "Accept-Encoding": "gzip", + "Content-Length": "0", + "User-Agent": "azsdk-go-azcertificates/v0.5.0 (go1.18; linux)" + }, + "RequestBody": null, + "StatusCode": 401, + "ResponseHeaders": { + "Cache-Control": "no-cache", + "Content-Length": "97", + "Content-Type": "application/json; charset=utf-8", + "Date": "Wed, 29 Jun 2022 20:49:04 GMT", + "Expires": "-1", + "Pragma": "no-cache", + "Strict-Transport-Security": "max-age=31536000;includeSubDomains", + "WWW-Authenticate": "Bearer authorization=\u0022https://login.windows.net/72f988bf-86f1-41af-91ab-2d7cd011db47\u0022, resource=\u0022https://vault.azure.net\u0022", + "X-Content-Type-Options": "nosniff", + "x-ms-keyvault-network-info": "conn_type=Ipv4;addr=24.17.201.78;act_addr_fam=InterNetwork;", + "x-ms-keyvault-region": "eastus", + "x-ms-keyvault-service-version": "1.9.444.2", + "x-ms-request-id": "2ee845f9-71ec-495e-b9f5-cc6551e64be3" + }, + "ResponseBody": { + "error": { + "code": "Unauthorized", + "message": "AKV10000: Request is missing a Bearer or PoP token." + } + } + }, + { + "RequestUri": "https://fakevault/certificates/3575422782/create?api-version=7.3", + "RequestMethod": "POST", + "RequestHeaders": { + "Accept": "application/json", + "Accept-Encoding": "gzip", + "Authorization": "Sanitized", + "Content-Length": "81", + "Content-Type": "application/json", + "User-Agent": "azsdk-go-azcertificates/v0.5.0 (go1.18; linux)" + }, + "RequestBody": { + "policy": { + "issuer": { + "name": "self" + }, + "x509_props": { + "subject": "CN=DefaultPolicy" + } + } + }, + "StatusCode": 202, + "ResponseHeaders": { + "Cache-Control": "no-cache", + "Content-Length": "1269", + "Content-Type": "application/json; charset=utf-8", + "Date": "Wed, 29 Jun 2022 20:49:07 GMT", + "Expires": "-1", + "Location": "https://fakevault/certificates/3575422782/pending?api-version=7.3\u0026request_id=f45c4640ce6b4feabf6805628d9257eb", + "Pragma": "no-cache", + "Retry-After": "10", + "Strict-Transport-Security": "max-age=31536000;includeSubDomains", + "X-Content-Type-Options": "nosniff", + "x-ms-keyvault-network-info": "conn_type=Ipv4;addr=24.17.201.78;act_addr_fam=InterNetwork;", + "x-ms-keyvault-region": "eastus", + "x-ms-keyvault-service-version": "1.9.444.2", + "x-ms-request-id": "cbbac68d-c066-4a41-bbfe-62af533b8e49" + }, + "ResponseBody": { + "id": "https://fakevault/certificates/3575422782/pending", + "issuer": { + "name": "self" + }, + "csr": "MIICqDCCAZACAQAwGDEWMBQGA1UEAxMNRGVmYXVsdFBvbGljeTCCASIwDQYJKoZIhvcNAQEBBQADggEPADCCAQoCggEBANxsPXRRvPq29YV4ORQrQInzb16AQ1OexC8sor7fB/bI7Jj3/BAdk6Knjv7L5lD640/sMWYMX2LGM6f8TawjUejwG/gmV05jYGil3/UFQaJPlFm3jFbcOKMYIVeIdJhlFigZ7k7uD1uPtbcWuhMYTyJpWLtT1JfiyyLrWOVJtfFSdjWYCcVBYuZardNyYGDoN6OPwcJgriqzi8lFaMISN4niHt3C5dAVu\u002B7F1SYhavn3ZQHxjJy1oTgi8o4D1Ecr8OJAM0phk9d4lb12ErGdEy9WM1sv9UdcBkCX\u002BEqhYayWLNlnUHk3nF41z23igpijAmcRhWTHl9TIdOqd\u002Bg90YBkCAwEAAaBLMEkGCSqGSIb3DQEJDjE8MDowDgYDVR0PAQH/BAQDAgWgMB0GA1UdJQQWMBQGCCsGAQUFBwMBBggrBgEFBQcDAjAJBgNVHRMEAjAAMA0GCSqGSIb3DQEBCwUAA4IBAQB7ZZF7Jm36C6jqFZSsSGy8kXjfe0xZ598t6YFenkQhzsnXf84iSOeIyiNpgh85Q3E3xiWcqWPozlRp0pqjFid7qzdyirIGfV9cPhz/redgf31tqy9sHjMQ2dwyVU42w0ztYtii6DWmakcBPLTk9lTtOsE7Zej70xRwtbKG6WHK/XcMcrUJdbbiD6cBi3iY2izhaxgpOJ0EDSuPG/2rtUTd\u002BIAVqZhfsBdwCXRQAJnAc2iYw9JLOASAGznHbcjRdJgazUUd8g97a7\u002BkBBxuvT8x\u002B56e\u002BT\u002Bc8FvkVcZbBFvOZMJtK4UhLfaFoOc0s50X5bB5O\u002Bqw/wi\u002Bx5L0Y1ON7dbE", + "cancellation_requested": false, + "status": "inProgress", + "status_details": "Pending certificate created. Certificate request is in progress. This may take some time based on the issuer provider. Please check again later.", + "request_id": "f45c4640ce6b4feabf6805628d9257eb" + } + }, + { + "RequestUri": "https://fakevault/certificates/3575422782/pending?api-version=7.3", + "RequestMethod": "GET", + "RequestHeaders": { + "Accept": "application/json", + "Accept-Encoding": "gzip", + "Authorization": "Sanitized", + "User-Agent": "azsdk-go-azcertificates/v0.5.0 (go1.18; linux)" + }, + "RequestBody": null, + "StatusCode": 200, + "ResponseHeaders": { + "Cache-Control": "no-cache", + "Content-Length": "1269", + "Content-Type": "application/json; charset=utf-8", + "Date": "Wed, 29 Jun 2022 20:49:07 GMT", + "Expires": "-1", + "Pragma": "no-cache", + "Retry-After": "10", + "Strict-Transport-Security": "max-age=31536000;includeSubDomains", + "X-Content-Type-Options": "nosniff", + "x-ms-keyvault-network-info": "conn_type=Ipv4;addr=24.17.201.78;act_addr_fam=InterNetwork;", + "x-ms-keyvault-region": "eastus", + "x-ms-keyvault-service-version": "1.9.444.2", + "x-ms-request-id": "9828f69c-abbe-48f8-a4b3-ee9768c91b15" + }, + "ResponseBody": { + "id": "https://fakevault/certificates/3575422782/pending", + "issuer": { + "name": "self" + }, + "csr": "MIICqDCCAZACAQAwGDEWMBQGA1UEAxMNRGVmYXVsdFBvbGljeTCCASIwDQYJKoZIhvcNAQEBBQADggEPADCCAQoCggEBANxsPXRRvPq29YV4ORQrQInzb16AQ1OexC8sor7fB/bI7Jj3/BAdk6Knjv7L5lD640/sMWYMX2LGM6f8TawjUejwG/gmV05jYGil3/UFQaJPlFm3jFbcOKMYIVeIdJhlFigZ7k7uD1uPtbcWuhMYTyJpWLtT1JfiyyLrWOVJtfFSdjWYCcVBYuZardNyYGDoN6OPwcJgriqzi8lFaMISN4niHt3C5dAVu\u002B7F1SYhavn3ZQHxjJy1oTgi8o4D1Ecr8OJAM0phk9d4lb12ErGdEy9WM1sv9UdcBkCX\u002BEqhYayWLNlnUHk3nF41z23igpijAmcRhWTHl9TIdOqd\u002Bg90YBkCAwEAAaBLMEkGCSqGSIb3DQEJDjE8MDowDgYDVR0PAQH/BAQDAgWgMB0GA1UdJQQWMBQGCCsGAQUFBwMBBggrBgEFBQcDAjAJBgNVHRMEAjAAMA0GCSqGSIb3DQEBCwUAA4IBAQB7ZZF7Jm36C6jqFZSsSGy8kXjfe0xZ598t6YFenkQhzsnXf84iSOeIyiNpgh85Q3E3xiWcqWPozlRp0pqjFid7qzdyirIGfV9cPhz/redgf31tqy9sHjMQ2dwyVU42w0ztYtii6DWmakcBPLTk9lTtOsE7Zej70xRwtbKG6WHK/XcMcrUJdbbiD6cBi3iY2izhaxgpOJ0EDSuPG/2rtUTd\u002BIAVqZhfsBdwCXRQAJnAc2iYw9JLOASAGznHbcjRdJgazUUd8g97a7\u002BkBBxuvT8x\u002B56e\u002BT\u002Bc8FvkVcZbBFvOZMJtK4UhLfaFoOc0s50X5bB5O\u002Bqw/wi\u002Bx5L0Y1ON7dbE", + "cancellation_requested": false, + "status": "inProgress", + "status_details": "Pending certificate created. Certificate request is in progress. This may take some time based on the issuer provider. Please check again later.", + "request_id": "f45c4640ce6b4feabf6805628d9257eb" + } + }, + { + "RequestUri": "https://fakevault/certificates/3575422782/pending?api-version=7.3", + "RequestMethod": "GET", + "RequestHeaders": { + "Accept": "application/json", + "Accept-Encoding": "gzip", + "Authorization": "Sanitized", + "User-Agent": "azsdk-go-azcertificates/v0.5.0 (go1.18; linux)" + }, + "RequestBody": null, + "StatusCode": 200, + "ResponseHeaders": { + "Cache-Control": "no-cache", + "Content-Length": "1157", + "Content-Type": "application/json; charset=utf-8", + "Date": "Wed, 29 Jun 2022 20:49:12 GMT", + "Expires": "-1", + "Pragma": "no-cache", + "Strict-Transport-Security": "max-age=31536000;includeSubDomains", + "X-Content-Type-Options": "nosniff", + "x-ms-keyvault-network-info": "conn_type=Ipv4;addr=24.17.201.78;act_addr_fam=InterNetwork;", + "x-ms-keyvault-region": "eastus", + "x-ms-keyvault-service-version": "1.9.444.2", + "x-ms-request-id": "a8d1c0ec-5e18-462f-8d18-47843f53a0d7" + }, + "ResponseBody": { + "id": "https://fakevault/certificates/3575422782/pending", + "issuer": { + "name": "self" + }, + "csr": "MIICqDCCAZACAQAwGDEWMBQGA1UEAxMNRGVmYXVsdFBvbGljeTCCASIwDQYJKoZIhvcNAQEBBQADggEPADCCAQoCggEBANxsPXRRvPq29YV4ORQrQInzb16AQ1OexC8sor7fB/bI7Jj3/BAdk6Knjv7L5lD640/sMWYMX2LGM6f8TawjUejwG/gmV05jYGil3/UFQaJPlFm3jFbcOKMYIVeIdJhlFigZ7k7uD1uPtbcWuhMYTyJpWLtT1JfiyyLrWOVJtfFSdjWYCcVBYuZardNyYGDoN6OPwcJgriqzi8lFaMISN4niHt3C5dAVu\u002B7F1SYhavn3ZQHxjJy1oTgi8o4D1Ecr8OJAM0phk9d4lb12ErGdEy9WM1sv9UdcBkCX\u002BEqhYayWLNlnUHk3nF41z23igpijAmcRhWTHl9TIdOqd\u002Bg90YBkCAwEAAaBLMEkGCSqGSIb3DQEJDjE8MDowDgYDVR0PAQH/BAQDAgWgMB0GA1UdJQQWMBQGCCsGAQUFBwMBBggrBgEFBQcDAjAJBgNVHRMEAjAAMA0GCSqGSIb3DQEBCwUAA4IBAQB7ZZF7Jm36C6jqFZSsSGy8kXjfe0xZ598t6YFenkQhzsnXf84iSOeIyiNpgh85Q3E3xiWcqWPozlRp0pqjFid7qzdyirIGfV9cPhz/redgf31tqy9sHjMQ2dwyVU42w0ztYtii6DWmakcBPLTk9lTtOsE7Zej70xRwtbKG6WHK/XcMcrUJdbbiD6cBi3iY2izhaxgpOJ0EDSuPG/2rtUTd\u002BIAVqZhfsBdwCXRQAJnAc2iYw9JLOASAGznHbcjRdJgazUUd8g97a7\u002BkBBxuvT8x\u002B56e\u002BT\u002Bc8FvkVcZbBFvOZMJtK4UhLfaFoOc0s50X5bB5O\u002Bqw/wi\u002Bx5L0Y1ON7dbE", + "cancellation_requested": false, + "status": "completed", + "target": "https://fakevault/certificates/3575422782", + "request_id": "f45c4640ce6b4feabf6805628d9257eb" + } + }, + { + "RequestUri": "https://fakevault/certificates/3575422782/pending?api-version=7.3", + "RequestMethod": "GET", + "RequestHeaders": { + "Accept": "application/json", + "Accept-Encoding": "gzip", + "Authorization": "Sanitized", + "User-Agent": "azsdk-go-azcertificates/v0.5.0 (go1.18; linux)" + }, + "RequestBody": null, + "StatusCode": 200, + "ResponseHeaders": { + "Cache-Control": "no-cache", + "Content-Length": "1157", + "Content-Type": "application/json; charset=utf-8", + "Date": "Wed, 29 Jun 2022 20:49:17 GMT", + "Expires": "-1", + "Pragma": "no-cache", + "Strict-Transport-Security": "max-age=31536000;includeSubDomains", + "X-Content-Type-Options": "nosniff", + "x-ms-keyvault-network-info": "conn_type=Ipv4;addr=24.17.201.78;act_addr_fam=InterNetwork;", + "x-ms-keyvault-region": "eastus", + "x-ms-keyvault-service-version": "1.9.444.2", + "x-ms-request-id": "52262bd6-6339-434c-a0a4-0b3c80bd358d" + }, + "ResponseBody": { + "id": "https://fakevault/certificates/3575422782/pending", + "issuer": { + "name": "self" + }, + "csr": "MIICqDCCAZACAQAwGDEWMBQGA1UEAxMNRGVmYXVsdFBvbGljeTCCASIwDQYJKoZIhvcNAQEBBQADggEPADCCAQoCggEBANxsPXRRvPq29YV4ORQrQInzb16AQ1OexC8sor7fB/bI7Jj3/BAdk6Knjv7L5lD640/sMWYMX2LGM6f8TawjUejwG/gmV05jYGil3/UFQaJPlFm3jFbcOKMYIVeIdJhlFigZ7k7uD1uPtbcWuhMYTyJpWLtT1JfiyyLrWOVJtfFSdjWYCcVBYuZardNyYGDoN6OPwcJgriqzi8lFaMISN4niHt3C5dAVu\u002B7F1SYhavn3ZQHxjJy1oTgi8o4D1Ecr8OJAM0phk9d4lb12ErGdEy9WM1sv9UdcBkCX\u002BEqhYayWLNlnUHk3nF41z23igpijAmcRhWTHl9TIdOqd\u002Bg90YBkCAwEAAaBLMEkGCSqGSIb3DQEJDjE8MDowDgYDVR0PAQH/BAQDAgWgMB0GA1UdJQQWMBQGCCsGAQUFBwMBBggrBgEFBQcDAjAJBgNVHRMEAjAAMA0GCSqGSIb3DQEBCwUAA4IBAQB7ZZF7Jm36C6jqFZSsSGy8kXjfe0xZ598t6YFenkQhzsnXf84iSOeIyiNpgh85Q3E3xiWcqWPozlRp0pqjFid7qzdyirIGfV9cPhz/redgf31tqy9sHjMQ2dwyVU42w0ztYtii6DWmakcBPLTk9lTtOsE7Zej70xRwtbKG6WHK/XcMcrUJdbbiD6cBi3iY2izhaxgpOJ0EDSuPG/2rtUTd\u002BIAVqZhfsBdwCXRQAJnAc2iYw9JLOASAGznHbcjRdJgazUUd8g97a7\u002BkBBxuvT8x\u002B56e\u002BT\u002Bc8FvkVcZbBFvOZMJtK4UhLfaFoOc0s50X5bB5O\u002Bqw/wi\u002Bx5L0Y1ON7dbE", + "cancellation_requested": false, + "status": "completed", + "target": "https://fakevault/certificates/3575422782", + "request_id": "f45c4640ce6b4feabf6805628d9257eb" + } + }, + { + "RequestUri": "https://fakevault/certificates/3575422782/pending?api-version=7.3", + "RequestMethod": "GET", + "RequestHeaders": { + "Accept": "application/json", + "Accept-Encoding": "gzip", + "Authorization": "Sanitized", + "User-Agent": "azsdk-go-azcertificates/v0.5.0 (go1.18; linux)" + }, + "RequestBody": null, + "StatusCode": 200, + "ResponseHeaders": { + "Cache-Control": "no-cache", + "Content-Length": "1157", + "Content-Type": "application/json; charset=utf-8", + "Date": "Wed, 29 Jun 2022 20:49:22 GMT", + "Expires": "-1", + "Pragma": "no-cache", + "Strict-Transport-Security": "max-age=31536000;includeSubDomains", + "X-Content-Type-Options": "nosniff", + "x-ms-keyvault-network-info": "conn_type=Ipv4;addr=24.17.201.78;act_addr_fam=InterNetwork;", + "x-ms-keyvault-region": "eastus", + "x-ms-keyvault-service-version": "1.9.444.2", + "x-ms-request-id": "2c64c737-78e8-4f3c-80cf-eb839974a6ed" + }, + "ResponseBody": { + "id": "https://fakevault/certificates/3575422782/pending", + "issuer": { + "name": "self" + }, + "csr": "MIICqDCCAZACAQAwGDEWMBQGA1UEAxMNRGVmYXVsdFBvbGljeTCCASIwDQYJKoZIhvcNAQEBBQADggEPADCCAQoCggEBANxsPXRRvPq29YV4ORQrQInzb16AQ1OexC8sor7fB/bI7Jj3/BAdk6Knjv7L5lD640/sMWYMX2LGM6f8TawjUejwG/gmV05jYGil3/UFQaJPlFm3jFbcOKMYIVeIdJhlFigZ7k7uD1uPtbcWuhMYTyJpWLtT1JfiyyLrWOVJtfFSdjWYCcVBYuZardNyYGDoN6OPwcJgriqzi8lFaMISN4niHt3C5dAVu\u002B7F1SYhavn3ZQHxjJy1oTgi8o4D1Ecr8OJAM0phk9d4lb12ErGdEy9WM1sv9UdcBkCX\u002BEqhYayWLNlnUHk3nF41z23igpijAmcRhWTHl9TIdOqd\u002Bg90YBkCAwEAAaBLMEkGCSqGSIb3DQEJDjE8MDowDgYDVR0PAQH/BAQDAgWgMB0GA1UdJQQWMBQGCCsGAQUFBwMBBggrBgEFBQcDAjAJBgNVHRMEAjAAMA0GCSqGSIb3DQEBCwUAA4IBAQB7ZZF7Jm36C6jqFZSsSGy8kXjfe0xZ598t6YFenkQhzsnXf84iSOeIyiNpgh85Q3E3xiWcqWPozlRp0pqjFid7qzdyirIGfV9cPhz/redgf31tqy9sHjMQ2dwyVU42w0ztYtii6DWmakcBPLTk9lTtOsE7Zej70xRwtbKG6WHK/XcMcrUJdbbiD6cBi3iY2izhaxgpOJ0EDSuPG/2rtUTd\u002BIAVqZhfsBdwCXRQAJnAc2iYw9JLOASAGznHbcjRdJgazUUd8g97a7\u002BkBBxuvT8x\u002B56e\u002BT\u002Bc8FvkVcZbBFvOZMJtK4UhLfaFoOc0s50X5bB5O\u002Bqw/wi\u002Bx5L0Y1ON7dbE", + "cancellation_requested": false, + "status": "completed", + "target": "https://fakevault/certificates/3575422782", + "request_id": "f45c4640ce6b4feabf6805628d9257eb" + } + }, + { + "RequestUri": "https://fakevault/certificates/3575422782/pending?api-version=7.3", + "RequestMethod": "GET", + "RequestHeaders": { + "Accept": "application/json", + "Accept-Encoding": "gzip", + "Authorization": "Sanitized", + "User-Agent": "azsdk-go-azcertificates/v0.5.0 (go1.18; linux)" + }, + "RequestBody": null, + "StatusCode": 200, + "ResponseHeaders": { + "Cache-Control": "no-cache", + "Content-Length": "1157", + "Content-Type": "application/json; charset=utf-8", + "Date": "Wed, 29 Jun 2022 20:49:28 GMT", + "Expires": "-1", + "Pragma": "no-cache", + "Strict-Transport-Security": "max-age=31536000;includeSubDomains", + "X-Content-Type-Options": "nosniff", + "x-ms-keyvault-network-info": "conn_type=Ipv4;addr=24.17.201.78;act_addr_fam=InterNetwork;", + "x-ms-keyvault-region": "eastus", + "x-ms-keyvault-service-version": "1.9.444.2", + "x-ms-request-id": "617bf8b5-e00d-4440-8714-54da89198616" + }, + "ResponseBody": { + "id": "https://fakevault/certificates/3575422782/pending", + "issuer": { + "name": "self" + }, + "csr": "MIICqDCCAZACAQAwGDEWMBQGA1UEAxMNRGVmYXVsdFBvbGljeTCCASIwDQYJKoZIhvcNAQEBBQADggEPADCCAQoCggEBANxsPXRRvPq29YV4ORQrQInzb16AQ1OexC8sor7fB/bI7Jj3/BAdk6Knjv7L5lD640/sMWYMX2LGM6f8TawjUejwG/gmV05jYGil3/UFQaJPlFm3jFbcOKMYIVeIdJhlFigZ7k7uD1uPtbcWuhMYTyJpWLtT1JfiyyLrWOVJtfFSdjWYCcVBYuZardNyYGDoN6OPwcJgriqzi8lFaMISN4niHt3C5dAVu\u002B7F1SYhavn3ZQHxjJy1oTgi8o4D1Ecr8OJAM0phk9d4lb12ErGdEy9WM1sv9UdcBkCX\u002BEqhYayWLNlnUHk3nF41z23igpijAmcRhWTHl9TIdOqd\u002Bg90YBkCAwEAAaBLMEkGCSqGSIb3DQEJDjE8MDowDgYDVR0PAQH/BAQDAgWgMB0GA1UdJQQWMBQGCCsGAQUFBwMBBggrBgEFBQcDAjAJBgNVHRMEAjAAMA0GCSqGSIb3DQEBCwUAA4IBAQB7ZZF7Jm36C6jqFZSsSGy8kXjfe0xZ598t6YFenkQhzsnXf84iSOeIyiNpgh85Q3E3xiWcqWPozlRp0pqjFid7qzdyirIGfV9cPhz/redgf31tqy9sHjMQ2dwyVU42w0ztYtii6DWmakcBPLTk9lTtOsE7Zej70xRwtbKG6WHK/XcMcrUJdbbiD6cBi3iY2izhaxgpOJ0EDSuPG/2rtUTd\u002BIAVqZhfsBdwCXRQAJnAc2iYw9JLOASAGznHbcjRdJgazUUd8g97a7\u002BkBBxuvT8x\u002B56e\u002BT\u002Bc8FvkVcZbBFvOZMJtK4UhLfaFoOc0s50X5bB5O\u002Bqw/wi\u002Bx5L0Y1ON7dbE", + "cancellation_requested": false, + "status": "completed", + "target": "https://fakevault/certificates/3575422782", + "request_id": "f45c4640ce6b4feabf6805628d9257eb" + } + }, + { + "RequestUri": "https://fakevault/certificates/3575422782?api-version=7.3", + "RequestMethod": "DELETE", + "RequestHeaders": { + "Accept": "application/json", + "Accept-Encoding": "gzip", + "Authorization": "Sanitized", + "User-Agent": "azsdk-go-azcertificates/v0.5.0 (go1.18; linux)" + }, + "RequestBody": null, + "StatusCode": 200, + "ResponseHeaders": { + "Cache-Control": "no-cache", + "Content-Length": "2342", + "Content-Type": "application/json; charset=utf-8", + "Date": "Wed, 29 Jun 2022 20:49:28 GMT", + "Expires": "-1", + "Pragma": "no-cache", + "Strict-Transport-Security": "max-age=31536000;includeSubDomains", + "X-Content-Type-Options": "nosniff", + "x-ms-keyvault-network-info": "conn_type=Ipv4;addr=24.17.201.78;act_addr_fam=InterNetwork;", + "x-ms-keyvault-region": "eastus", + "x-ms-keyvault-service-version": "1.9.444.2", + "x-ms-request-id": "b0cdcd1a-8cbb-4830-9e78-84fe307e98ba" + }, + "ResponseBody": { + "recoveryId": "https://fakevault/deletedcertificates/3575422782", + "deletedDate": 1656535768, + "scheduledPurgeDate": 1657140568, + "id": "https://fakevault/certificates/3575422782/c3ab64b3e60b402db4e41a94c67b42e3", + "kid": "https://fakevault/keys/3575422782/c3ab64b3e60b402db4e41a94c67b42e3", + "sid": "https://fakevault/secrets/3575422782/c3ab64b3e60b402db4e41a94c67b42e3", + "x5t": "mUMBTCLAnpIAH495Vy6b1H0gydA", + "cer": "MIIDNjCCAh6gAwIBAgIQVxXl7iMFSy2G7OgYKhSANDANBgkqhkiG9w0BAQsFADAYMRYwFAYDVQQDEw1EZWZhdWx0UG9saWN5MB4XDTIyMDYyOTIwMzkxMFoXDTIzMDYyOTIwNDkxMFowGDEWMBQGA1UEAxMNRGVmYXVsdFBvbGljeTCCASIwDQYJKoZIhvcNAQEBBQADggEPADCCAQoCggEBANxsPXRRvPq29YV4ORQrQInzb16AQ1OexC8sor7fB/bI7Jj3/BAdk6Knjv7L5lD640/sMWYMX2LGM6f8TawjUejwG/gmV05jYGil3/UFQaJPlFm3jFbcOKMYIVeIdJhlFigZ7k7uD1uPtbcWuhMYTyJpWLtT1JfiyyLrWOVJtfFSdjWYCcVBYuZardNyYGDoN6OPwcJgriqzi8lFaMISN4niHt3C5dAVu\u002B7F1SYhavn3ZQHxjJy1oTgi8o4D1Ecr8OJAM0phk9d4lb12ErGdEy9WM1sv9UdcBkCX\u002BEqhYayWLNlnUHk3nF41z23igpijAmcRhWTHl9TIdOqd\u002Bg90YBkCAwEAAaN8MHowDgYDVR0PAQH/BAQDAgWgMAkGA1UdEwQCMAAwHQYDVR0lBBYwFAYIKwYBBQUHAwEGCCsGAQUFBwMCMB8GA1UdIwQYMBaAFOR\u002Bl//8h/savWHmnKXHoAvz3E59MB0GA1UdDgQWBBTkfpf//If7Gr1h5pylx6AL89xOfTANBgkqhkiG9w0BAQsFAAOCAQEAEkZ9ncnlBtntGhwmBzq2Gy1p24DnUOjGJ5SI7yyV8Z9ofkX1q3d42zE00rRnGWLc\u002Brih\u002BxTuMa\u002BU/OCBGy\u002BuWxZZcTU4Nb2A8fVxL8SzvkN4gWOTRNXNJuH3z6Qd5BlFSopuUA0mybXk0W64c653nf9\u002B7TpK4c/BAEskhKjZ0PkzPk7IVyl1FvyipQsD4MXwpc8xrlhlOam5YITbfpc3phX47pAHHduvFFr1hNasDPUCnNvWcF3xrviwFXTmkdCx5/uSV2xXhlYEBZCPxDwiWkMTXX26lXmlghMVVwnxLPCqEqk54AXB7wJjGVdylGfM4CxnxpK9y4xp/IM\u002BjLCcig==", + "attributes": { + "enabled": true, + "nbf": 1656535150, + "exp": 1688071750, + "created": 1656535751, + "updated": 1656535751, + "recoveryLevel": "CustomizedRecoverable\u002BPurgeable", + "recoverableDays": 7 + }, + "policy": { + "id": "https://fakevault/certificates/3575422782/policy", + "key_props": { + "exportable": true, + "kty": "RSA", + "key_size": 2048, + "reuse_key": false + }, + "secret_props": { + "contentType": "application/x-pkcs12" + }, + "x509_props": { + "subject": "CN=DefaultPolicy", + "ekus": [ + "1.3.6.1.5.5.7.3.1", + "1.3.6.1.5.5.7.3.2" + ], + "key_usage": [ + "digitalSignature", + "keyEncipherment" + ], + "validity_months": 12, + "basic_constraints": { + "ca": false + } + }, + "lifetime_actions": [ + { + "trigger": { + "lifetime_percentage": 80 + }, + "action": { + "action_type": "AutoRenew" + } + } + ], + "issuer": { + "name": "self" + }, + "attributes": { + "enabled": true, + "created": 1656535747, + "updated": 1656535747 + } + }, + "pending": { + "id": "https://fakevault/certificates/3575422782/pending" + } + } + }, + { + "RequestUri": "https://fakevault/deletedcertificates/3575422782?api-version=7.3", + "RequestMethod": "GET", + "RequestHeaders": { + "Accept": "application/json", + "Accept-Encoding": "gzip", + "Authorization": "Sanitized", + "User-Agent": "azsdk-go-azcertificates/v0.5.0 (go1.18; linux)" + }, + "RequestBody": null, + "StatusCode": 404, + "ResponseHeaders": { + "Cache-Control": "no-cache", + "Content-Length": "94", + "Content-Type": "application/json; charset=utf-8", + "Date": "Wed, 29 Jun 2022 20:49:28 GMT", + "Expires": "-1", + "Pragma": "no-cache", + "Strict-Transport-Security": "max-age=31536000;includeSubDomains", + "X-Content-Type-Options": "nosniff", + "x-ms-keyvault-network-info": "conn_type=Ipv4;addr=24.17.201.78;act_addr_fam=InterNetwork;", + "x-ms-keyvault-region": "eastus", + "x-ms-keyvault-service-version": "1.9.444.2", + "x-ms-request-id": "5e3ce323-2b2f-4ae6-b7f9-a2852e708a7c" + }, + "ResponseBody": { + "error": { + "code": "CertificateNotFound", + "message": "Deleted Certificate not found: 3575422782" + } + } + }, + { + "RequestUri": "https://fakevault/deletedcertificates/3575422782?api-version=7.3", + "RequestMethod": "GET", + "RequestHeaders": { + "Accept": "application/json", + "Accept-Encoding": "gzip", + "Authorization": "Sanitized", + "User-Agent": "azsdk-go-azcertificates/v0.5.0 (go1.18; linux)" + }, + "RequestBody": null, + "StatusCode": 404, + "ResponseHeaders": { + "Cache-Control": "no-cache", + "Content-Length": "94", + "Content-Type": "application/json; charset=utf-8", + "Date": "Wed, 29 Jun 2022 20:49:38 GMT", + "Expires": "-1", + "Pragma": "no-cache", + "Strict-Transport-Security": "max-age=31536000;includeSubDomains", + "X-Content-Type-Options": "nosniff", + "x-ms-keyvault-network-info": "conn_type=Ipv4;addr=24.17.201.78;act_addr_fam=InterNetwork;", + "x-ms-keyvault-region": "eastus", + "x-ms-keyvault-service-version": "1.9.444.2", + "x-ms-request-id": "6a26f0f9-94d2-4d7f-9dd7-d4f7d42ad3eb" + }, + "ResponseBody": { + "error": { + "code": "CertificateNotFound", + "message": "Deleted Certificate not found: 3575422782" + } + } + }, + { + "RequestUri": "https://fakevault/deletedcertificates/3575422782?api-version=7.3", + "RequestMethod": "GET", + "RequestHeaders": { + "Accept": "application/json", + "Accept-Encoding": "gzip", + "Authorization": "Sanitized", + "User-Agent": "azsdk-go-azcertificates/v0.5.0 (go1.18; linux)" + }, + "RequestBody": null, + "StatusCode": 404, + "ResponseHeaders": { + "Cache-Control": "no-cache", + "Content-Length": "94", + "Content-Type": "application/json; charset=utf-8", + "Date": "Wed, 29 Jun 2022 20:49:48 GMT", + "Expires": "-1", + "Pragma": "no-cache", + "Strict-Transport-Security": "max-age=31536000;includeSubDomains", + "X-Content-Type-Options": "nosniff", + "x-ms-keyvault-network-info": "conn_type=Ipv4;addr=24.17.201.78;act_addr_fam=InterNetwork;", + "x-ms-keyvault-region": "eastus", + "x-ms-keyvault-service-version": "1.9.444.2", + "x-ms-request-id": "c87a0233-1873-416c-a90b-82ee5f041f8c" + }, + "ResponseBody": { + "error": { + "code": "CertificateNotFound", + "message": "Deleted Certificate not found: 3575422782" + } + } + }, + { + "RequestUri": "https://fakevault/deletedcertificates/3575422782?api-version=7.3", + "RequestMethod": "GET", + "RequestHeaders": { + "Accept": "application/json", + "Accept-Encoding": "gzip", + "Authorization": "Sanitized", + "User-Agent": "azsdk-go-azcertificates/v0.5.0 (go1.18; linux)" + }, + "RequestBody": null, + "StatusCode": 404, + "ResponseHeaders": { + "Cache-Control": "no-cache", + "Content-Length": "94", + "Content-Type": "application/json; charset=utf-8", + "Date": "Wed, 29 Jun 2022 20:49:58 GMT", + "Expires": "-1", + "Pragma": "no-cache", + "Strict-Transport-Security": "max-age=31536000;includeSubDomains", + "X-Content-Type-Options": "nosniff", + "x-ms-keyvault-network-info": "conn_type=Ipv4;addr=24.17.201.78;act_addr_fam=InterNetwork;", + "x-ms-keyvault-region": "eastus", + "x-ms-keyvault-service-version": "1.9.444.2", + "x-ms-request-id": "3ff67508-4d27-4e05-98b5-bc55a2bb7446" + }, + "ResponseBody": { + "error": { + "code": "CertificateNotFound", + "message": "Deleted Certificate not found: 3575422782" + } + } + }, + { + "RequestUri": "https://fakevault/deletedcertificates/3575422782?api-version=7.3", + "RequestMethod": "GET", + "RequestHeaders": { + "Accept": "application/json", + "Accept-Encoding": "gzip", + "Authorization": "Sanitized", + "User-Agent": "azsdk-go-azcertificates/v0.5.0 (go1.18; linux)" + }, + "RequestBody": null, + "StatusCode": 200, + "ResponseHeaders": { + "Cache-Control": "no-cache", + "Content-Length": "2342", + "Content-Type": "application/json; charset=utf-8", + "Date": "Wed, 29 Jun 2022 20:50:08 GMT", + "Expires": "-1", + "Pragma": "no-cache", + "Strict-Transport-Security": "max-age=31536000;includeSubDomains", + "X-Content-Type-Options": "nosniff", + "x-ms-keyvault-network-info": "conn_type=Ipv4;addr=24.17.201.78;act_addr_fam=InterNetwork;", + "x-ms-keyvault-region": "eastus", + "x-ms-keyvault-service-version": "1.9.444.2", + "x-ms-request-id": "900da2c0-9a70-4899-a409-04b961a35428" + }, + "ResponseBody": { + "recoveryId": "https://fakevault/deletedcertificates/3575422782", + "deletedDate": 1656535768, + "scheduledPurgeDate": 1657140568, + "id": "https://fakevault/certificates/3575422782/c3ab64b3e60b402db4e41a94c67b42e3", + "kid": "https://fakevault/keys/3575422782/c3ab64b3e60b402db4e41a94c67b42e3", + "sid": "https://fakevault/secrets/3575422782/c3ab64b3e60b402db4e41a94c67b42e3", + "x5t": "mUMBTCLAnpIAH495Vy6b1H0gydA", + "cer": "MIIDNjCCAh6gAwIBAgIQVxXl7iMFSy2G7OgYKhSANDANBgkqhkiG9w0BAQsFADAYMRYwFAYDVQQDEw1EZWZhdWx0UG9saWN5MB4XDTIyMDYyOTIwMzkxMFoXDTIzMDYyOTIwNDkxMFowGDEWMBQGA1UEAxMNRGVmYXVsdFBvbGljeTCCASIwDQYJKoZIhvcNAQEBBQADggEPADCCAQoCggEBANxsPXRRvPq29YV4ORQrQInzb16AQ1OexC8sor7fB/bI7Jj3/BAdk6Knjv7L5lD640/sMWYMX2LGM6f8TawjUejwG/gmV05jYGil3/UFQaJPlFm3jFbcOKMYIVeIdJhlFigZ7k7uD1uPtbcWuhMYTyJpWLtT1JfiyyLrWOVJtfFSdjWYCcVBYuZardNyYGDoN6OPwcJgriqzi8lFaMISN4niHt3C5dAVu\u002B7F1SYhavn3ZQHxjJy1oTgi8o4D1Ecr8OJAM0phk9d4lb12ErGdEy9WM1sv9UdcBkCX\u002BEqhYayWLNlnUHk3nF41z23igpijAmcRhWTHl9TIdOqd\u002Bg90YBkCAwEAAaN8MHowDgYDVR0PAQH/BAQDAgWgMAkGA1UdEwQCMAAwHQYDVR0lBBYwFAYIKwYBBQUHAwEGCCsGAQUFBwMCMB8GA1UdIwQYMBaAFOR\u002Bl//8h/savWHmnKXHoAvz3E59MB0GA1UdDgQWBBTkfpf//If7Gr1h5pylx6AL89xOfTANBgkqhkiG9w0BAQsFAAOCAQEAEkZ9ncnlBtntGhwmBzq2Gy1p24DnUOjGJ5SI7yyV8Z9ofkX1q3d42zE00rRnGWLc\u002Brih\u002BxTuMa\u002BU/OCBGy\u002BuWxZZcTU4Nb2A8fVxL8SzvkN4gWOTRNXNJuH3z6Qd5BlFSopuUA0mybXk0W64c653nf9\u002B7TpK4c/BAEskhKjZ0PkzPk7IVyl1FvyipQsD4MXwpc8xrlhlOam5YITbfpc3phX47pAHHduvFFr1hNasDPUCnNvWcF3xrviwFXTmkdCx5/uSV2xXhlYEBZCPxDwiWkMTXX26lXmlghMVVwnxLPCqEqk54AXB7wJjGVdylGfM4CxnxpK9y4xp/IM\u002BjLCcig==", + "attributes": { + "enabled": true, + "nbf": 1656535150, + "exp": 1688071750, + "created": 1656535751, + "updated": 1656535751, + "recoveryLevel": "CustomizedRecoverable\u002BPurgeable", + "recoverableDays": 7 + }, + "policy": { + "id": "https://fakevault/certificates/3575422782/policy", + "key_props": { + "exportable": true, + "kty": "RSA", + "key_size": 2048, + "reuse_key": false + }, + "secret_props": { + "contentType": "application/x-pkcs12" + }, + "x509_props": { + "subject": "CN=DefaultPolicy", + "ekus": [ + "1.3.6.1.5.5.7.3.1", + "1.3.6.1.5.5.7.3.2" + ], + "key_usage": [ + "digitalSignature", + "keyEncipherment" + ], + "validity_months": 12, + "basic_constraints": { + "ca": false + } + }, + "lifetime_actions": [ + { + "trigger": { + "lifetime_percentage": 80 + }, + "action": { + "action_type": "AutoRenew" + } + } + ], + "issuer": { + "name": "self" + }, + "attributes": { + "enabled": true, + "created": 1656535747, + "updated": 1656535747 + } + }, + "pending": { + "id": "https://fakevault/certificates/3575422782/pending" + } + } + }, + { + "RequestUri": "https://fakevault/deletedcertificates/3575422782/recover?api-version=7.3", + "RequestMethod": "POST", + "RequestHeaders": { + "Accept": "application/json", + "Accept-Encoding": "gzip", + "Authorization": "Sanitized", + "Content-Length": "0", + "User-Agent": "azsdk-go-azcertificates/v0.5.0 (go1.18; linux)" + }, + "RequestBody": null, + "StatusCode": 200, + "ResponseHeaders": { + "Cache-Control": "no-cache", + "Content-Length": "2221", + "Content-Type": "application/json; charset=utf-8", + "Date": "Wed, 29 Jun 2022 20:50:08 GMT", + "Expires": "-1", + "Pragma": "no-cache", + "Strict-Transport-Security": "max-age=31536000;includeSubDomains", + "X-Content-Type-Options": "nosniff", + "x-ms-keyvault-network-info": "conn_type=Ipv4;addr=24.17.201.78;act_addr_fam=InterNetwork;", + "x-ms-keyvault-region": "eastus", + "x-ms-keyvault-service-version": "1.9.444.2", + "x-ms-request-id": "2d5bf2ba-eeca-4409-bc97-d2881ccc10cb" + }, + "ResponseBody": { + "id": "https://fakevault/certificates/3575422782/c3ab64b3e60b402db4e41a94c67b42e3", + "kid": "https://fakevault/keys/3575422782/c3ab64b3e60b402db4e41a94c67b42e3", + "sid": "https://fakevault/secrets/3575422782/c3ab64b3e60b402db4e41a94c67b42e3", + "x5t": "mUMBTCLAnpIAH495Vy6b1H0gydA", + "cer": "MIIDNjCCAh6gAwIBAgIQVxXl7iMFSy2G7OgYKhSANDANBgkqhkiG9w0BAQsFADAYMRYwFAYDVQQDEw1EZWZhdWx0UG9saWN5MB4XDTIyMDYyOTIwMzkxMFoXDTIzMDYyOTIwNDkxMFowGDEWMBQGA1UEAxMNRGVmYXVsdFBvbGljeTCCASIwDQYJKoZIhvcNAQEBBQADggEPADCCAQoCggEBANxsPXRRvPq29YV4ORQrQInzb16AQ1OexC8sor7fB/bI7Jj3/BAdk6Knjv7L5lD640/sMWYMX2LGM6f8TawjUejwG/gmV05jYGil3/UFQaJPlFm3jFbcOKMYIVeIdJhlFigZ7k7uD1uPtbcWuhMYTyJpWLtT1JfiyyLrWOVJtfFSdjWYCcVBYuZardNyYGDoN6OPwcJgriqzi8lFaMISN4niHt3C5dAVu\u002B7F1SYhavn3ZQHxjJy1oTgi8o4D1Ecr8OJAM0phk9d4lb12ErGdEy9WM1sv9UdcBkCX\u002BEqhYayWLNlnUHk3nF41z23igpijAmcRhWTHl9TIdOqd\u002Bg90YBkCAwEAAaN8MHowDgYDVR0PAQH/BAQDAgWgMAkGA1UdEwQCMAAwHQYDVR0lBBYwFAYIKwYBBQUHAwEGCCsGAQUFBwMCMB8GA1UdIwQYMBaAFOR\u002Bl//8h/savWHmnKXHoAvz3E59MB0GA1UdDgQWBBTkfpf//If7Gr1h5pylx6AL89xOfTANBgkqhkiG9w0BAQsFAAOCAQEAEkZ9ncnlBtntGhwmBzq2Gy1p24DnUOjGJ5SI7yyV8Z9ofkX1q3d42zE00rRnGWLc\u002Brih\u002BxTuMa\u002BU/OCBGy\u002BuWxZZcTU4Nb2A8fVxL8SzvkN4gWOTRNXNJuH3z6Qd5BlFSopuUA0mybXk0W64c653nf9\u002B7TpK4c/BAEskhKjZ0PkzPk7IVyl1FvyipQsD4MXwpc8xrlhlOam5YITbfpc3phX47pAHHduvFFr1hNasDPUCnNvWcF3xrviwFXTmkdCx5/uSV2xXhlYEBZCPxDwiWkMTXX26lXmlghMVVwnxLPCqEqk54AXB7wJjGVdylGfM4CxnxpK9y4xp/IM\u002BjLCcig==", + "attributes": { + "enabled": true, + "nbf": 1656535150, + "exp": 1688071750, + "created": 1656535751, + "updated": 1656535751, + "recoveryLevel": "CustomizedRecoverable\u002BPurgeable", + "recoverableDays": 7 + }, + "policy": { + "id": "https://fakevault/certificates/3575422782/policy", + "key_props": { + "exportable": true, + "kty": "RSA", + "key_size": 2048, + "reuse_key": false + }, + "secret_props": { + "contentType": "application/x-pkcs12" + }, + "x509_props": { + "subject": "CN=DefaultPolicy", + "ekus": [ + "1.3.6.1.5.5.7.3.1", + "1.3.6.1.5.5.7.3.2" + ], + "key_usage": [ + "digitalSignature", + "keyEncipherment" + ], + "validity_months": 12, + "basic_constraints": { + "ca": false + } + }, + "lifetime_actions": [ + { + "trigger": { + "lifetime_percentage": 80 + }, + "action": { + "action_type": "AutoRenew" + } + } + ], + "issuer": { + "name": "self" + }, + "attributes": { + "enabled": true, + "created": 1656535747, + "updated": 1656535747 + } + }, + "pending": { + "id": "https://fakevault/certificates/3575422782/pending" + } + } + }, + { + "RequestUri": "https://fakevault/certificates/3575422782/?api-version=7.3", + "RequestMethod": "GET", + "RequestHeaders": { + "Accept": "application/json", + "Accept-Encoding": "gzip", + "Authorization": "Sanitized", + "User-Agent": "azsdk-go-azcertificates/v0.5.0 (go1.18; linux)" + }, + "RequestBody": null, + "StatusCode": 404, + "ResponseHeaders": { + "Cache-Control": "no-cache", + "Content-Length": "322", + "Content-Type": "application/json; charset=utf-8", + "Date": "Wed, 29 Jun 2022 20:50:08 GMT", + "Expires": "-1", + "Pragma": "no-cache", + "Strict-Transport-Security": "max-age=31536000;includeSubDomains", + "X-Content-Type-Options": "nosniff", + "x-ms-keyvault-network-info": "conn_type=Ipv4;addr=24.17.201.78;act_addr_fam=InterNetwork;", + "x-ms-keyvault-region": "eastus", + "x-ms-keyvault-service-version": "1.9.444.2", + "x-ms-request-id": "112e6e43-ebd0-4aed-999f-69459bd9f3a2" + }, + "ResponseBody": { + "error": { + "code": "CertificateNotFound", + "message": "A certificate with (name/id) 3575422782 was not found in this key vault. If you recently deleted this certificate you may be able to recover it using the correct recovery command. For help resolving this issue, please see https://go.microsoft.com/fwlink/?linkid=2125182" + } + } + }, + { + "RequestUri": "https://fakevault/certificates/3575422782/?api-version=7.3", + "RequestMethod": "GET", + "RequestHeaders": { + "Accept": "application/json", + "Accept-Encoding": "gzip", + "Authorization": "Sanitized", + "User-Agent": "azsdk-go-azcertificates/v0.5.0 (go1.18; linux)" + }, + "RequestBody": null, + "StatusCode": 404, + "ResponseHeaders": { + "Cache-Control": "no-cache", + "Content-Length": "322", + "Content-Type": "application/json; charset=utf-8", + "Date": "Wed, 29 Jun 2022 20:50:19 GMT", + "Expires": "-1", + "Pragma": "no-cache", + "Strict-Transport-Security": "max-age=31536000;includeSubDomains", + "X-Content-Type-Options": "nosniff", + "x-ms-keyvault-network-info": "conn_type=Ipv4;addr=24.17.201.78;act_addr_fam=InterNetwork;", + "x-ms-keyvault-region": "eastus", + "x-ms-keyvault-service-version": "1.9.444.2", + "x-ms-request-id": "fe501060-0942-405d-a906-3a9202ca0414" + }, + "ResponseBody": { + "error": { + "code": "CertificateNotFound", + "message": "A certificate with (name/id) 3575422782 was not found in this key vault. If you recently deleted this certificate you may be able to recover it using the correct recovery command. For help resolving this issue, please see https://go.microsoft.com/fwlink/?linkid=2125182" + } + } + }, + { + "RequestUri": "https://fakevault/certificates/3575422782/?api-version=7.3", + "RequestMethod": "GET", + "RequestHeaders": { + "Accept": "application/json", + "Accept-Encoding": "gzip", + "Authorization": "Sanitized", + "User-Agent": "azsdk-go-azcertificates/v0.5.0 (go1.18; linux)" + }, + "RequestBody": null, + "StatusCode": 404, + "ResponseHeaders": { + "Cache-Control": "no-cache", + "Content-Length": "322", + "Content-Type": "application/json; charset=utf-8", + "Date": "Wed, 29 Jun 2022 20:50:28 GMT", + "Expires": "-1", + "Pragma": "no-cache", + "Strict-Transport-Security": "max-age=31536000;includeSubDomains", + "X-Content-Type-Options": "nosniff", + "x-ms-keyvault-network-info": "conn_type=Ipv4;addr=24.17.201.78;act_addr_fam=InterNetwork;", + "x-ms-keyvault-region": "eastus", + "x-ms-keyvault-service-version": "1.9.444.2", + "x-ms-request-id": "d6b9852d-cd92-4d22-b189-71a66553dc56" + }, + "ResponseBody": { + "error": { + "code": "CertificateNotFound", + "message": "A certificate with (name/id) 3575422782 was not found in this key vault. If you recently deleted this certificate you may be able to recover it using the correct recovery command. For help resolving this issue, please see https://go.microsoft.com/fwlink/?linkid=2125182" + } + } + }, + { + "RequestUri": "https://fakevault/certificates/3575422782/?api-version=7.3", + "RequestMethod": "GET", + "RequestHeaders": { + "Accept": "application/json", + "Accept-Encoding": "gzip", + "Authorization": "Sanitized", + "User-Agent": "azsdk-go-azcertificates/v0.5.0 (go1.18; linux)" + }, + "RequestBody": null, + "StatusCode": 404, + "ResponseHeaders": { + "Cache-Control": "no-cache", + "Content-Length": "322", + "Content-Type": "application/json; charset=utf-8", + "Date": "Wed, 29 Jun 2022 20:50:38 GMT", + "Expires": "-1", + "Pragma": "no-cache", + "Strict-Transport-Security": "max-age=31536000;includeSubDomains", + "X-Content-Type-Options": "nosniff", + "x-ms-keyvault-network-info": "conn_type=Ipv4;addr=24.17.201.78;act_addr_fam=InterNetwork;", + "x-ms-keyvault-region": "eastus", + "x-ms-keyvault-service-version": "1.9.444.2", + "x-ms-request-id": "0e1549c3-cd49-40cb-96af-13d5034ec5f6" + }, + "ResponseBody": { + "error": { + "code": "CertificateNotFound", + "message": "A certificate with (name/id) 3575422782 was not found in this key vault. If you recently deleted this certificate you may be able to recover it using the correct recovery command. For help resolving this issue, please see https://go.microsoft.com/fwlink/?linkid=2125182" + } + } + }, + { + "RequestUri": "https://fakevault/certificates/3575422782/?api-version=7.3", + "RequestMethod": "GET", + "RequestHeaders": { + "Accept": "application/json", + "Accept-Encoding": "gzip", + "Authorization": "Sanitized", + "User-Agent": "azsdk-go-azcertificates/v0.5.0 (go1.18; linux)" + }, + "RequestBody": null, + "StatusCode": 404, + "ResponseHeaders": { + "Cache-Control": "no-cache", + "Content-Length": "322", + "Content-Type": "application/json; charset=utf-8", + "Date": "Wed, 29 Jun 2022 20:50:49 GMT", + "Expires": "-1", + "Pragma": "no-cache", + "Strict-Transport-Security": "max-age=31536000;includeSubDomains", + "X-Content-Type-Options": "nosniff", + "x-ms-keyvault-network-info": "conn_type=Ipv4;addr=24.17.201.78;act_addr_fam=InterNetwork;", + "x-ms-keyvault-region": "eastus", + "x-ms-keyvault-service-version": "1.9.444.2", + "x-ms-request-id": "98ea487d-a563-4b74-9dd1-87fd7b904d0b" + }, + "ResponseBody": { + "error": { + "code": "CertificateNotFound", + "message": "A certificate with (name/id) 3575422782 was not found in this key vault. If you recently deleted this certificate you may be able to recover it using the correct recovery command. For help resolving this issue, please see https://go.microsoft.com/fwlink/?linkid=2125182" + } + } + }, + { + "RequestUri": "https://fakevault/certificates/3575422782/?api-version=7.3", + "RequestMethod": "GET", + "RequestHeaders": { + "Accept": "application/json", + "Accept-Encoding": "gzip", + "Authorization": "Sanitized", + "User-Agent": "azsdk-go-azcertificates/v0.5.0 (go1.18; linux)" + }, + "RequestBody": null, + "StatusCode": 200, + "ResponseHeaders": { + "Cache-Control": "no-cache", + "Content-Length": "2221", + "Content-Type": "application/json; charset=utf-8", + "Date": "Wed, 29 Jun 2022 20:50:59 GMT", + "Expires": "-1", + "Pragma": "no-cache", + "Strict-Transport-Security": "max-age=31536000;includeSubDomains", + "X-Content-Type-Options": "nosniff", + "x-ms-keyvault-network-info": "conn_type=Ipv4;addr=24.17.201.78;act_addr_fam=InterNetwork;", + "x-ms-keyvault-region": "eastus", + "x-ms-keyvault-service-version": "1.9.444.2", + "x-ms-request-id": "b7857e8f-b8b7-415d-8d40-0d1f68630948" + }, + "ResponseBody": { + "id": "https://fakevault/certificates/3575422782/c3ab64b3e60b402db4e41a94c67b42e3", + "kid": "https://fakevault/keys/3575422782/c3ab64b3e60b402db4e41a94c67b42e3", + "sid": "https://fakevault/secrets/3575422782/c3ab64b3e60b402db4e41a94c67b42e3", + "x5t": "mUMBTCLAnpIAH495Vy6b1H0gydA", + "cer": "MIIDNjCCAh6gAwIBAgIQVxXl7iMFSy2G7OgYKhSANDANBgkqhkiG9w0BAQsFADAYMRYwFAYDVQQDEw1EZWZhdWx0UG9saWN5MB4XDTIyMDYyOTIwMzkxMFoXDTIzMDYyOTIwNDkxMFowGDEWMBQGA1UEAxMNRGVmYXVsdFBvbGljeTCCASIwDQYJKoZIhvcNAQEBBQADggEPADCCAQoCggEBANxsPXRRvPq29YV4ORQrQInzb16AQ1OexC8sor7fB/bI7Jj3/BAdk6Knjv7L5lD640/sMWYMX2LGM6f8TawjUejwG/gmV05jYGil3/UFQaJPlFm3jFbcOKMYIVeIdJhlFigZ7k7uD1uPtbcWuhMYTyJpWLtT1JfiyyLrWOVJtfFSdjWYCcVBYuZardNyYGDoN6OPwcJgriqzi8lFaMISN4niHt3C5dAVu\u002B7F1SYhavn3ZQHxjJy1oTgi8o4D1Ecr8OJAM0phk9d4lb12ErGdEy9WM1sv9UdcBkCX\u002BEqhYayWLNlnUHk3nF41z23igpijAmcRhWTHl9TIdOqd\u002Bg90YBkCAwEAAaN8MHowDgYDVR0PAQH/BAQDAgWgMAkGA1UdEwQCMAAwHQYDVR0lBBYwFAYIKwYBBQUHAwEGCCsGAQUFBwMCMB8GA1UdIwQYMBaAFOR\u002Bl//8h/savWHmnKXHoAvz3E59MB0GA1UdDgQWBBTkfpf//If7Gr1h5pylx6AL89xOfTANBgkqhkiG9w0BAQsFAAOCAQEAEkZ9ncnlBtntGhwmBzq2Gy1p24DnUOjGJ5SI7yyV8Z9ofkX1q3d42zE00rRnGWLc\u002Brih\u002BxTuMa\u002BU/OCBGy\u002BuWxZZcTU4Nb2A8fVxL8SzvkN4gWOTRNXNJuH3z6Qd5BlFSopuUA0mybXk0W64c653nf9\u002B7TpK4c/BAEskhKjZ0PkzPk7IVyl1FvyipQsD4MXwpc8xrlhlOam5YITbfpc3phX47pAHHduvFFr1hNasDPUCnNvWcF3xrviwFXTmkdCx5/uSV2xXhlYEBZCPxDwiWkMTXX26lXmlghMVVwnxLPCqEqk54AXB7wJjGVdylGfM4CxnxpK9y4xp/IM\u002BjLCcig==", + "attributes": { + "enabled": true, + "nbf": 1656535150, + "exp": 1688071750, + "created": 1656535751, + "updated": 1656535751, + "recoveryLevel": "CustomizedRecoverable\u002BPurgeable", + "recoverableDays": 7 + }, + "policy": { + "id": "https://fakevault/certificates/3575422782/policy", + "key_props": { + "exportable": true, + "kty": "RSA", + "key_size": 2048, + "reuse_key": false + }, + "secret_props": { + "contentType": "application/x-pkcs12" + }, + "x509_props": { + "subject": "CN=DefaultPolicy", + "ekus": [ + "1.3.6.1.5.5.7.3.1", + "1.3.6.1.5.5.7.3.2" + ], + "key_usage": [ + "digitalSignature", + "keyEncipherment" + ], + "validity_months": 12, + "basic_constraints": { + "ca": false + } + }, + "lifetime_actions": [ + { + "trigger": { + "lifetime_percentage": 80 + }, + "action": { + "action_type": "AutoRenew" + } + } + ], + "issuer": { + "name": "self" + }, + "attributes": { + "enabled": true, + "created": 1656535747, + "updated": 1656535747 + } + }, + "pending": { + "id": "https://fakevault/certificates/3575422782/pending" + } + } + }, + { + "RequestUri": "https://fakevault/certificates/3575422782?api-version=7.3", + "RequestMethod": "DELETE", + "RequestHeaders": { + "Accept": "application/json", + "Accept-Encoding": "gzip", + "Authorization": "Sanitized", + "User-Agent": "azsdk-go-azcertificates/v0.5.0 (go1.18; linux)" + }, + "RequestBody": null, + "StatusCode": 200, + "ResponseHeaders": { + "Cache-Control": "no-cache", + "Content-Length": "2342", + "Content-Type": "application/json; charset=utf-8", + "Date": "Wed, 29 Jun 2022 20:50:59 GMT", + "Expires": "-1", + "Pragma": "no-cache", + "Strict-Transport-Security": "max-age=31536000;includeSubDomains", + "X-Content-Type-Options": "nosniff", + "x-ms-keyvault-network-info": "conn_type=Ipv4;addr=24.17.201.78;act_addr_fam=InterNetwork;", + "x-ms-keyvault-region": "eastus", + "x-ms-keyvault-service-version": "1.9.444.2", + "x-ms-request-id": "fa36f0b0-e13a-4f09-8a9e-8d9901d92083" + }, + "ResponseBody": { + "recoveryId": "https://fakevault/deletedcertificates/3575422782", + "deletedDate": 1656535860, + "scheduledPurgeDate": 1657140660, + "id": "https://fakevault/certificates/3575422782/c3ab64b3e60b402db4e41a94c67b42e3", + "kid": "https://fakevault/keys/3575422782/c3ab64b3e60b402db4e41a94c67b42e3", + "sid": "https://fakevault/secrets/3575422782/c3ab64b3e60b402db4e41a94c67b42e3", + "x5t": "mUMBTCLAnpIAH495Vy6b1H0gydA", + "cer": "MIIDNjCCAh6gAwIBAgIQVxXl7iMFSy2G7OgYKhSANDANBgkqhkiG9w0BAQsFADAYMRYwFAYDVQQDEw1EZWZhdWx0UG9saWN5MB4XDTIyMDYyOTIwMzkxMFoXDTIzMDYyOTIwNDkxMFowGDEWMBQGA1UEAxMNRGVmYXVsdFBvbGljeTCCASIwDQYJKoZIhvcNAQEBBQADggEPADCCAQoCggEBANxsPXRRvPq29YV4ORQrQInzb16AQ1OexC8sor7fB/bI7Jj3/BAdk6Knjv7L5lD640/sMWYMX2LGM6f8TawjUejwG/gmV05jYGil3/UFQaJPlFm3jFbcOKMYIVeIdJhlFigZ7k7uD1uPtbcWuhMYTyJpWLtT1JfiyyLrWOVJtfFSdjWYCcVBYuZardNyYGDoN6OPwcJgriqzi8lFaMISN4niHt3C5dAVu\u002B7F1SYhavn3ZQHxjJy1oTgi8o4D1Ecr8OJAM0phk9d4lb12ErGdEy9WM1sv9UdcBkCX\u002BEqhYayWLNlnUHk3nF41z23igpijAmcRhWTHl9TIdOqd\u002Bg90YBkCAwEAAaN8MHowDgYDVR0PAQH/BAQDAgWgMAkGA1UdEwQCMAAwHQYDVR0lBBYwFAYIKwYBBQUHAwEGCCsGAQUFBwMCMB8GA1UdIwQYMBaAFOR\u002Bl//8h/savWHmnKXHoAvz3E59MB0GA1UdDgQWBBTkfpf//If7Gr1h5pylx6AL89xOfTANBgkqhkiG9w0BAQsFAAOCAQEAEkZ9ncnlBtntGhwmBzq2Gy1p24DnUOjGJ5SI7yyV8Z9ofkX1q3d42zE00rRnGWLc\u002Brih\u002BxTuMa\u002BU/OCBGy\u002BuWxZZcTU4Nb2A8fVxL8SzvkN4gWOTRNXNJuH3z6Qd5BlFSopuUA0mybXk0W64c653nf9\u002B7TpK4c/BAEskhKjZ0PkzPk7IVyl1FvyipQsD4MXwpc8xrlhlOam5YITbfpc3phX47pAHHduvFFr1hNasDPUCnNvWcF3xrviwFXTmkdCx5/uSV2xXhlYEBZCPxDwiWkMTXX26lXmlghMVVwnxLPCqEqk54AXB7wJjGVdylGfM4CxnxpK9y4xp/IM\u002BjLCcig==", + "attributes": { + "enabled": true, + "nbf": 1656535150, + "exp": 1688071750, + "created": 1656535751, + "updated": 1656535751, + "recoveryLevel": "CustomizedRecoverable\u002BPurgeable", + "recoverableDays": 7 + }, + "policy": { + "id": "https://fakevault/certificates/3575422782/policy", + "key_props": { + "exportable": true, + "kty": "RSA", + "key_size": 2048, + "reuse_key": false + }, + "secret_props": { + "contentType": "application/x-pkcs12" + }, + "x509_props": { + "subject": "CN=DefaultPolicy", + "ekus": [ + "1.3.6.1.5.5.7.3.1", + "1.3.6.1.5.5.7.3.2" + ], + "key_usage": [ + "digitalSignature", + "keyEncipherment" + ], + "validity_months": 12, + "basic_constraints": { + "ca": false + } + }, + "lifetime_actions": [ + { + "trigger": { + "lifetime_percentage": 80 + }, + "action": { + "action_type": "AutoRenew" + } + } + ], + "issuer": { + "name": "self" + }, + "attributes": { + "enabled": true, + "created": 1656535747, + "updated": 1656535747 + } + }, + "pending": { + "id": "https://fakevault/certificates/3575422782/pending" + } + } + } + ], + "Variables": {} +} diff --git a/sdk/keyvault/azcertificates/testdata/recordings/TestImportCertificate.json b/sdk/keyvault/azcertificates/testdata/recordings/TestImportCertificate.json new file mode 100644 index 000000000000..6f936cc810ef --- /dev/null +++ b/sdk/keyvault/azcertificates/testdata/recordings/TestImportCertificate.json @@ -0,0 +1,210 @@ +{ + "Entries": [ + { + "RequestUri": "https://fakevault/certificates/1593022091/import?api-version=7.3", + "RequestMethod": "POST", + "RequestHeaders": { + "Accept": "application/json", + "Accept-Encoding": "gzip", + "Content-Length": "0", + "User-Agent": "azsdk-go-azcertificates/v0.5.0 (go1.18; linux)" + }, + "RequestBody": null, + "StatusCode": 401, + "ResponseHeaders": { + "Cache-Control": "no-cache", + "Content-Length": "97", + "Content-Type": "application/json; charset=utf-8", + "Date": "Wed, 29 Jun 2022 22:33:00 GMT", + "Expires": "-1", + "Pragma": "no-cache", + "Strict-Transport-Security": "max-age=31536000;includeSubDomains", + "WWW-Authenticate": "Bearer authorization=\u0022https://login.windows.net/72f988bf-86f1-41af-91ab-2d7cd011db47\u0022, resource=\u0022https://vault.azure.net\u0022", + "X-Content-Type-Options": "nosniff", + "x-ms-keyvault-network-info": "conn_type=Ipv4;addr=24.17.201.78;act_addr_fam=InterNetwork;", + "x-ms-keyvault-region": "eastus", + "x-ms-keyvault-service-version": "1.9.444.2", + "x-ms-request-id": "71889920-90e2-484f-8e81-1a7067382be4" + }, + "ResponseBody": { + "error": { + "code": "Unauthorized", + "message": "AKV10000: Request is missing a Bearer or PoP token." + } + } + }, + { + "RequestUri": "https://fakevault/certificates/1593022091/import?api-version=7.3", + "RequestMethod": "POST", + "RequestHeaders": { + "Accept": "application/json", + "Accept-Encoding": "gzip", + "Authorization": "Sanitized", + "Content-Length": "3359", + "Content-Type": "application/json", + "User-Agent": "azsdk-go-azcertificates/v0.5.0 (go1.18; linux)" + }, + "RequestBody": { + "attributes": { + "enabled": false + }, + "value": "MIIJsQIBAzCCCXcGCSqGSIb3DQEHAaCCCWgEgglkMIIJYDCCBBcGCSqGSIb3DQEHBqCCBAgwggQEAgEAMIID/QYJKoZIhvcNAQcBMBwGCiqGSIb3DQEMAQYwDgQIE7pdl4fTqmwCAggAgIID0MDlcRFQUH0YDxopuqVyuEd4OLfawucEAxGvdj9\u002BSMs34Cz1tVyZgfFuU4MwlLk6cA1dog8iw9/f8/VlA6wS0DHhslLL3JzSxZoi6JQQ0IYgjWaIv4c\u002BwT0IcBhc2USI3lPqoqALG15qcs8fAEpDIssUplDcmA7gLVvBvw1utAipib8y93J71tIIedDaf0pAuVuC6K1PRI3HWVnUetCaiq4AW2iQu7f0rxJVDcKubmNinEivyRi4yl2Q1g2OwGlqwZEAnIW02uE\u002BFzgFk51OA357vvooKicb0fdDz\u002BhsRuzlWMhs2ciFMg71jlCUIKnvAKXCR714ox\u002BOK8pTN1KQy3ICAFy\u002Bm6lNpkwkozfRoMwJyRGt5Tm6N/k9nQM1ysu3xqw3hG8q4srCbWhxcUrvrDcxvWe5Q8WX8Sl8nJ4joPZipBxDSEKYPqk9qkPF\u002BYZbAmjcS3mw0AI5V8v31WQaa/i6LxQGwKUVSyjHe6ZDskQjyogtRmt61z1MYHmv9iNuLyyWhq9w7hV/AyKTzQ7FsWcK2vdNZJA2lj8H7rSrYtaVFNPMBzOa4KsJmif9s9B0VyMlX37XB1tGEtRmRuJtA\u002BEZYVzu50J/ZVx2QGr40IpmyYKwB6CTQpBE12W9RMgMLYy\u002BYAykrexYOJaIh9wfzLi/bAH8uCNTKueeVREnMHrzSF1xNQzqW8okoEMvSdr6\u002BuCjHxt1cmRhUOcGvocLfNOgNhz\u002BqwztLr35QTE8zTnrjvhb0NKfT1vpGa0nXP3EBYDolRqTZgKlG9icupDI57wDNuHED/d63Ri\u002BtCbs3VF\u002BQjcPBO8q3xz0hMj38oYLnHYt1i4YQOvXSDdZLc4fW5GXB1cVmP9vxbM0lxBKCLA8V0wZ8P341Dknr5WhS21A0qs3b9FavwbUUCDTuvky/1qhA6MaxqbtzjeVm7mYJ7TnCQveH0Iy3RHEPQrzrGUQc0bEBfissGeVYlghNULlaDW9CobT6J\u002BpYT0y85flg\u002BqtTZX69NaI4mZuh11hkKLmbVx6gGouQ79XmpE3\u002BvNycEQNota534gUs77qF0VACJHnbgh05Qhxkp9Xd/LSUt\u002B6r9niTa9HWQ\u002BSMdfXuu6ognA3lMGeO4i0NTFkXA1MNs\u002Be0QQZqNX8CiCj09i6YeMNVTdIh1ufrEF9YlO8yjLitHVSJRuY65QCCpPsS5Ugdk\u002B5tUD3H2l1j/ZA5f73z2JdFEAchPRLsNQKTx49ZvsSex2ikEJeNjHDBuMQZtVZZDs9DdVQL/i49Mc7N\u002B/x37AcLFx\u002BDelOKZ0F5LgiDDprfU8wggVBBgkqhkiG9w0BBwGgggUyBIIFLjCCBSowggUmBgsqhkiG9w0BDAoBAqCCBO4wggTqMBwGCiqGSIb3DQEMAQMwDgQIwQ83ZA6tJFoCAggABIIEyHQt53aY9srYggLfYUSeD6Gcjm7uEA5F24s9r3FZF50YRSztbJIrqGd6oytw4LDCInANcGuCF3WQjSdEB6ABy\u002BIgmbk9OAsFAy18txfg05UQb4JYN3M0XkYywh\u002BGlMlZdcsZQakXqBGSj6kyG4J9ISgGPpvSqopo7fUHjc3QjWcG07d42u6lgkLxdQH2e\u002BqiHWA\u002B9C3mawA5AYWA6sciEoKzYOZkl7ZtWptpJJWD54HtIT7ENGkHM6y2LM\u002BFyMC0axoUsFawoObzcbJLX29Zfohzq9yt169ZLcKDC1zpS6R0MIRE5rs4727vG9mJWMetDpIg/2fka4nkhfry2Wo\u002BPp/065aUSfHbQGMZ2Lw/zgU1Eo/Bau\u002BfREft/DRX/sZpkd0ulPlbxmQ80Xf6IXRSGD5poq3B19dJpKHmJagFJu1IgXEovjpexrYEmEAuzLaH1wdMTMGViWHsxu\u002Bg066LuHbBfJQ4THnAOp0N2eUkcfO3oJ3thzGnvWXM4lKAkULcnBlQnnfKi2CrQYJCJMhyIicYYs\u002B03gxXxNwQihZPm3VI3an/ci1otoh19WP4on3DqZ4KySU\u002BPZ45XzDg1H00\u002BnhyShwuyiFhDN6XuJ0VWIZZEvoPRY1Tmt2prP/1B1Kk9\u002BlishvTJKkuZ3rqC1bkJioIWte1FEoktCtzQ3dVUwlvy1r2y1WL5OTdk6yIENvm9\u002BxHSkJelkZjW\u002BJr/B9dyZ2o9\u002BoJGuLW8J2gNixecnWJXlb/tPwmL7iwLmFfM5tw27LnYO54dfUnq00G5JM6yiAj9i73RLkZo4lq29HOsoi4T3s06KpkOVhrIud7VhPFdzWtptcV9gbidHKtX209oZKAVgXa538DyKownqHx3I8yjXs0eFlty1CJjBP9fuAvllyNpUteuZoDcS45Zwl3WOpPrL595gBwy5yGOADOJXA3ww2oqvlTcZv1lyteKght3hMkSgy2mIGYAa19v\u002BZK0LxKxvwCCkC\u002BbMuyTduiaUJmHmI7k0lVIt/5WPzz9cnvCahhCovN/\u002BC0LI1xbOTW9nDp2Ffsb0aC9XYBRf/amRCiHmMzB18E85aA05h3l7KXPdck/xrKEePdv4dnLWxvHw69O6sjssmdV3q6\u002BcZgYYLZAEl1byIbZBTQaHT0GhzcmHJrW71L6Sl/9TEfmDSvctEEe4cZd8o29TXqzE10kmrt8dqoRbYiNq5CODPiithVtCRWQu3aFoLkT0ooWEYk\u002BIWU6/WQ8rq7KkZ6BR8JV60I3WbXLejTyaTf79VMt8myIET5GjSc7r\u002BtWyDRCHcU32Guyw7F\u002B9ndkMlVuI5gB/zfrsfX6noSQnx72yF6NrIyhJWf/Zl3NMbnPKUHA\u002BsZkjE4\u002BHwvf5yWkjFZhNeLq/4gaXQk7yEddjoCpN/cWsVjX8NxZFsRLs00Ag89\u002BNAbgWkr2eejKcXB\u002BI4TZHVee8IPKdEh8ga6RtDD8GV9VpwhnOpDHT5K1CtuX2CyTMl8fgUxobZ4kauiRr4dChd5n9Bgp7mvTarl7k2nVXptSJDmaPvZ0ETht\u002BWF24\u002Ba/7XqV7fyHoYU/WOvEGPW34a7X8R5UJWaOwZTcpqmfp8iwapRtgvQoXAISy2wK20fS0nK79nlqnhp5KEddTElMCMGCSqGSIb3DQEJFTEWBBTsd3zCMw1XrWC/MBjgt8IbFbCL8jAxMCEwCQYFKw4DAhoFAAQUY8Q/ANtHMzVyl4asrQ/lPKRjd2AECOBKL60N\u002BUaKAgIIAA==" + }, + "StatusCode": 200, + "ResponseHeaders": { + "Cache-Control": "no-cache", + "Content-Length": "2188", + "Content-Type": "application/json; charset=utf-8", + "Date": "Wed, 29 Jun 2022 22:33:04 GMT", + "Expires": "-1", + "Pragma": "no-cache", + "Strict-Transport-Security": "max-age=31536000;includeSubDomains", + "X-Content-Type-Options": "nosniff", + "x-ms-keyvault-network-info": "conn_type=Ipv4;addr=24.17.201.78;act_addr_fam=InterNetwork;", + "x-ms-keyvault-region": "eastus", + "x-ms-keyvault-service-version": "1.9.444.2", + "x-ms-request-id": "928f501f-1bc3-4a4f-bbac-8278f721e53b" + }, + "ResponseBody": { + "id": "https://fakevault/certificates/1593022091/9f0f9c9f0db14d43bd359014653cb231", + "kid": "https://fakevault/keys/1593022091/9f0f9c9f0db14d43bd359014653cb231", + "sid": "https://fakevault/secrets/1593022091/9f0f9c9f0db14d43bd359014653cb231", + "x5t": "7Hd8wjMNV61gvzAY4LfCGxWwi_I", + "cer": "MIIDbTCCAlWgAwIBAgIUDFjUOQoN1Og7KiAL7Y2r90yA7DkwDQYJKoZIhvcNAQELBQAwRTELMAkGA1UEBhMCQVUxEzARBgNVBAgMClNvbWUtU3RhdGUxITAfBgNVBAoMGEludGVybmV0IFdpZGdpdHMgUHR5IEx0ZDAgFw0yMTA4MDYxNzIwMzdaGA8yMTIxMDcxMzE3MjAzN1owRTELMAkGA1UEBhMCQVUxEzARBgNVBAgMClNvbWUtU3RhdGUxITAfBgNVBAoMGEludGVybmV0IFdpZGdpdHMgUHR5IEx0ZDCCASIwDQYJKoZIhvcNAQEBBQADggEPADCCAQoCggEBAMabnSPxruPP2HIDZhPK4ElxRnIV7ZbIcQQyPvhPMOjOWRo4Rl4JHUrLZM\u002B\u002BkdZ/kI6GG8E0AzS1BwA3u/QLAlcsDq2e5Li7oPHn6ihVsTV6wiD3kxhpYwmhRoUaG6rQLpaKRZFLWc3NfbHjuk5TkaH9SctQi2s\u002B2f34ia30m2ZLY8YIoIcyruloEXgqooL5ggQO3HYJgTHYfzfVhqq9Yxn9qclM26RmRr1nP4Gz/ejiQ19kmETwHIDk0RpiEVyw0UDrI1/rZFaV2RsyqWbofeSY4RE92vueMDt/uKmidIvEVK\u002BsVSxPvotKq7RnWRZiHITiL3ToRRzp5qB8NP4nJa8CAwEAAaNTMFEwHQYDVR0OBBYEFOZ9/QBUAX7s3o\u002ByFHUIeluDvCFFMB8GA1UdIwQYMBaAFOZ9/QBUAX7s3o\u002ByFHUIeluDvCFFMA8GA1UdEwEB/wQFMAMBAf8wDQYJKoZIhvcNAQELBQADggEBACWwLnNSWdQei//i\u002BnCZurqu4iUI7qvBoH\u002BXvLnU/6GRZsWqPDDM\u002BWE/Pp1Vx1TxM5asT6STKsPxiNZLSSUGj32EQTv/\u002BR/do0tkqNbbtT9q65qrINcW0vjjQvboCOmqc/1dPGyMgiK5z7TAD3V2yMsIaggL2SlsUPbq0zKzQ6I7yiw0ePM0kmhWrbG8XpNkQCCYCf95\u002B9FkxwrxgEZ2wYrXUw/ulNw7aMkeGSKKmN/Ke0FKylX2i3el5YcS5pyNQQvsQW4QawU9caRelNZbINCZKGJJ826m0qTGofMMH4Hmtu9Vqyo7EEW/nm6LSKRbGEACgpmjr5DG7ufcCCTg2OE=", + "attributes": { + "enabled": false, + "nbf": 1628270437, + "exp": 4781870437, + "created": 1656541984, + "updated": 1656541984, + "recoveryLevel": "CustomizedRecoverable\u002BPurgeable", + "recoverableDays": 7 + }, + "policy": { + "id": "https://fakevault/certificates/1593022091/policy", + "key_props": { + "exportable": true, + "kty": "RSA", + "key_size": 2048, + "reuse_key": false + }, + "secret_props": { + "contentType": "application/x-pkcs12" + }, + "x509_props": { + "subject": "O=Internet Widgits Pty Ltd, S=Some-State, C=AU", + "ekus": [], + "key_usage": [], + "validity_months": 1200, + "basic_constraints": { + "ca": true + } + }, + "lifetime_actions": [ + { + "trigger": { + "lifetime_percentage": 80 + }, + "action": { + "action_type": "EmailContacts" + } + } + ], + "issuer": { + "name": "Unknown" + }, + "attributes": { + "enabled": true, + "created": 1656541984, + "updated": 1656541984 + } + } + } + }, + { + "RequestUri": "https://fakevault/certificates/1593022091?api-version=7.3", + "RequestMethod": "DELETE", + "RequestHeaders": { + "Accept": "application/json", + "Accept-Encoding": "gzip", + "Authorization": "Sanitized", + "User-Agent": "azsdk-go-azcertificates/v0.5.0 (go1.18; linux)" + }, + "RequestBody": null, + "StatusCode": 200, + "ResponseHeaders": { + "Cache-Control": "no-cache", + "Content-Length": "2309", + "Content-Type": "application/json; charset=utf-8", + "Date": "Wed, 29 Jun 2022 22:33:04 GMT", + "Expires": "-1", + "Pragma": "no-cache", + "Strict-Transport-Security": "max-age=31536000;includeSubDomains", + "X-Content-Type-Options": "nosniff", + "x-ms-keyvault-network-info": "conn_type=Ipv4;addr=24.17.201.78;act_addr_fam=InterNetwork;", + "x-ms-keyvault-region": "eastus", + "x-ms-keyvault-service-version": "1.9.444.2", + "x-ms-request-id": "f941cb3c-faec-4443-8474-e24afb9e5da3" + }, + "ResponseBody": { + "recoveryId": "https://fakevault/deletedcertificates/1593022091", + "deletedDate": 1656541984, + "scheduledPurgeDate": 1657146784, + "id": "https://fakevault/certificates/1593022091/9f0f9c9f0db14d43bd359014653cb231", + "kid": "https://fakevault/keys/1593022091/9f0f9c9f0db14d43bd359014653cb231", + "sid": "https://fakevault/secrets/1593022091/9f0f9c9f0db14d43bd359014653cb231", + "x5t": "7Hd8wjMNV61gvzAY4LfCGxWwi_I", + "cer": "MIIDbTCCAlWgAwIBAgIUDFjUOQoN1Og7KiAL7Y2r90yA7DkwDQYJKoZIhvcNAQELBQAwRTELMAkGA1UEBhMCQVUxEzARBgNVBAgMClNvbWUtU3RhdGUxITAfBgNVBAoMGEludGVybmV0IFdpZGdpdHMgUHR5IEx0ZDAgFw0yMTA4MDYxNzIwMzdaGA8yMTIxMDcxMzE3MjAzN1owRTELMAkGA1UEBhMCQVUxEzARBgNVBAgMClNvbWUtU3RhdGUxITAfBgNVBAoMGEludGVybmV0IFdpZGdpdHMgUHR5IEx0ZDCCASIwDQYJKoZIhvcNAQEBBQADggEPADCCAQoCggEBAMabnSPxruPP2HIDZhPK4ElxRnIV7ZbIcQQyPvhPMOjOWRo4Rl4JHUrLZM\u002B\u002BkdZ/kI6GG8E0AzS1BwA3u/QLAlcsDq2e5Li7oPHn6ihVsTV6wiD3kxhpYwmhRoUaG6rQLpaKRZFLWc3NfbHjuk5TkaH9SctQi2s\u002B2f34ia30m2ZLY8YIoIcyruloEXgqooL5ggQO3HYJgTHYfzfVhqq9Yxn9qclM26RmRr1nP4Gz/ejiQ19kmETwHIDk0RpiEVyw0UDrI1/rZFaV2RsyqWbofeSY4RE92vueMDt/uKmidIvEVK\u002BsVSxPvotKq7RnWRZiHITiL3ToRRzp5qB8NP4nJa8CAwEAAaNTMFEwHQYDVR0OBBYEFOZ9/QBUAX7s3o\u002ByFHUIeluDvCFFMB8GA1UdIwQYMBaAFOZ9/QBUAX7s3o\u002ByFHUIeluDvCFFMA8GA1UdEwEB/wQFMAMBAf8wDQYJKoZIhvcNAQELBQADggEBACWwLnNSWdQei//i\u002BnCZurqu4iUI7qvBoH\u002BXvLnU/6GRZsWqPDDM\u002BWE/Pp1Vx1TxM5asT6STKsPxiNZLSSUGj32EQTv/\u002BR/do0tkqNbbtT9q65qrINcW0vjjQvboCOmqc/1dPGyMgiK5z7TAD3V2yMsIaggL2SlsUPbq0zKzQ6I7yiw0ePM0kmhWrbG8XpNkQCCYCf95\u002B9FkxwrxgEZ2wYrXUw/ulNw7aMkeGSKKmN/Ke0FKylX2i3el5YcS5pyNQQvsQW4QawU9caRelNZbINCZKGJJ826m0qTGofMMH4Hmtu9Vqyo7EEW/nm6LSKRbGEACgpmjr5DG7ufcCCTg2OE=", + "attributes": { + "enabled": false, + "nbf": 1628270437, + "exp": 4781870437, + "created": 1656541984, + "updated": 1656541984, + "recoveryLevel": "CustomizedRecoverable\u002BPurgeable", + "recoverableDays": 7 + }, + "policy": { + "id": "https://fakevault/certificates/1593022091/policy", + "key_props": { + "exportable": true, + "kty": "RSA", + "key_size": 2048, + "reuse_key": false + }, + "secret_props": { + "contentType": "application/x-pkcs12" + }, + "x509_props": { + "subject": "O=Internet Widgits Pty Ltd, S=Some-State, C=AU", + "ekus": [], + "key_usage": [], + "validity_months": 1200, + "basic_constraints": { + "ca": true + } + }, + "lifetime_actions": [ + { + "trigger": { + "lifetime_percentage": 80 + }, + "action": { + "action_type": "EmailContacts" + } + } + ], + "issuer": { + "name": "Unknown" + }, + "attributes": { + "enabled": true, + "created": 1656541984, + "updated": 1656541984 + } + } + } + } + ], + "Variables": {} +} diff --git a/sdk/keyvault/azcertificates/testdata/recordings/TestIssuerCRUD.json b/sdk/keyvault/azcertificates/testdata/recordings/TestIssuerCRUD.json new file mode 100644 index 000000000000..3f02c43863c2 --- /dev/null +++ b/sdk/keyvault/azcertificates/testdata/recordings/TestIssuerCRUD.json @@ -0,0 +1,295 @@ +{ + "Entries": [ + { + "RequestUri": "https://fakevault/certificates/issuers/issuer3522408118?api-version=7.3", + "RequestMethod": "PUT", + "RequestHeaders": { + "Accept": "application/json", + "Accept-Encoding": "gzip", + "Content-Length": "0", + "User-Agent": "azsdk-go-azcertificates/v0.5.0 (go1.18; linux)" + }, + "RequestBody": null, + "StatusCode": 401, + "ResponseHeaders": { + "Cache-Control": "no-cache", + "Content-Length": "97", + "Content-Type": "application/json; charset=utf-8", + "Date": "Tue, 05 Jul 2022 20:58:46 GMT", + "Expires": "-1", + "Pragma": "no-cache", + "Strict-Transport-Security": "max-age=31536000;includeSubDomains", + "WWW-Authenticate": "Bearer authorization=\u0022https://login.windows.net/72f988bf-86f1-41af-91ab-2d7cd011db47\u0022, resource=\u0022https://vault.azure.net\u0022", + "X-Content-Type-Options": "nosniff", + "x-ms-keyvault-network-info": "conn_type=Ipv4;addr=24.17.201.78;act_addr_fam=InterNetwork;", + "x-ms-keyvault-region": "eastus", + "x-ms-keyvault-service-version": "1.9.444.2", + "x-ms-request-id": "f37269ac-b978-4e29-9634-8f4324561f6f" + }, + "ResponseBody": { + "error": { + "code": "Unauthorized", + "message": "AKV10000: Request is missing a Bearer or PoP token." + } + } + }, + { + "RequestUri": "https://fakevault/certificates/issuers/issuer3522408118?api-version=7.3", + "RequestMethod": "PUT", + "RequestHeaders": { + "Accept": "application/json", + "Accept-Encoding": "gzip", + "Authorization": "Sanitized", + "Content-Length": "200", + "Content-Type": "application/json", + "User-Agent": "azsdk-go-azcertificates/v0.5.0 (go1.18; linux)" + }, + "RequestBody": { + "attributes": { + "enabled": true + }, + "credentials": { + "account_id": "keyvaultuser" + }, + "org_details": { + "admin_details": [ + { + "email": "foo@bar", + "first_name": "First", + "last_name": "Last", + "phone": "42" + } + ] + }, + "provider": "Test" + }, + "StatusCode": 200, + "ResponseHeaders": { + "Cache-Control": "no-cache", + "Content-Length": "313", + "Content-Type": "application/json; charset=utf-8", + "Date": "Tue, 05 Jul 2022 20:58:48 GMT", + "Expires": "-1", + "Pragma": "no-cache", + "Strict-Transport-Security": "max-age=31536000;includeSubDomains", + "X-Content-Type-Options": "nosniff", + "x-ms-keyvault-network-info": "conn_type=Ipv4;addr=24.17.201.78;act_addr_fam=InterNetwork;", + "x-ms-keyvault-region": "eastus", + "x-ms-keyvault-service-version": "1.9.444.2", + "x-ms-request-id": "fcf78027-90da-4596-aff5-29b0af18c1cf" + }, + "ResponseBody": { + "id": "https://fakevault/certificates/issuers/issuer3522408118", + "provider": "Test", + "credentials": { + "account_id": "keyvaultuser" + }, + "org_details": { + "zip": 0, + "admin_details": [ + { + "first_name": "First", + "last_name": "Last", + "email": "foo@bar", + "phone": "42" + } + ] + }, + "attributes": { + "enabled": true, + "created": 1657054729, + "updated": 1657054729 + } + } + }, + { + "RequestUri": "https://fakevault/certificates/issuers/issuer3522408118?api-version=7.3", + "RequestMethod": "GET", + "RequestHeaders": { + "Accept": "application/json", + "Accept-Encoding": "gzip", + "Authorization": "Sanitized", + "User-Agent": "azsdk-go-azcertificates/v0.5.0 (go1.18; linux)" + }, + "RequestBody": null, + "StatusCode": 200, + "ResponseHeaders": { + "Cache-Control": "no-cache", + "Content-Length": "313", + "Content-Type": "application/json; charset=utf-8", + "Date": "Tue, 05 Jul 2022 20:58:48 GMT", + "Expires": "-1", + "Pragma": "no-cache", + "Strict-Transport-Security": "max-age=31536000;includeSubDomains", + "X-Content-Type-Options": "nosniff", + "x-ms-keyvault-network-info": "conn_type=Ipv4;addr=24.17.201.78;act_addr_fam=InterNetwork;", + "x-ms-keyvault-region": "eastus", + "x-ms-keyvault-service-version": "1.9.444.2", + "x-ms-request-id": "581ce931-fea9-41c3-b356-e577548f51d1" + }, + "ResponseBody": { + "id": "https://fakevault/certificates/issuers/issuer3522408118", + "provider": "Test", + "credentials": { + "account_id": "keyvaultuser" + }, + "org_details": { + "zip": 0, + "admin_details": [ + { + "first_name": "First", + "last_name": "Last", + "email": "foo@bar", + "phone": "42" + } + ] + }, + "attributes": { + "enabled": true, + "created": 1657054729, + "updated": 1657054729 + } + } + }, + { + "RequestUri": "https://fakevault/certificates/issuers?api-version=7.3\u0026maxresults=1", + "RequestMethod": "GET", + "RequestHeaders": { + "Accept": "application/json", + "Accept-Encoding": "gzip", + "Authorization": "Sanitized", + "User-Agent": "azsdk-go-azcertificates/v0.5.0 (go1.18; linux)" + }, + "RequestBody": null, + "StatusCode": 200, + "ResponseHeaders": { + "Cache-Control": "no-cache", + "Content-Length": "110", + "Content-Type": "application/json; charset=utf-8", + "Date": "Tue, 05 Jul 2022 20:58:48 GMT", + "Expires": "-1", + "Pragma": "no-cache", + "Strict-Transport-Security": "max-age=31536000;includeSubDomains", + "X-Content-Type-Options": "nosniff", + "x-ms-keyvault-network-info": "conn_type=Ipv4;addr=24.17.201.78;act_addr_fam=InterNetwork;", + "x-ms-keyvault-region": "eastus", + "x-ms-keyvault-service-version": "1.9.444.2", + "x-ms-request-id": "ab609185-9ac2-495c-a2cd-6048624ccc8f" + }, + "ResponseBody": { + "value": [ + { + "id": "https://fakevault/certificates/issuers/issuer3522408118", + "provider": "Test" + } + ], + "nextLink": null + } + }, + { + "RequestUri": "https://fakevault/certificates/issuers/issuer3522408118?api-version=7.3", + "RequestMethod": "PATCH", + "RequestHeaders": { + "Accept": "application/json", + "Accept-Encoding": "gzip", + "Authorization": "Sanitized", + "Content-Length": "32", + "Content-Type": "application/json", + "User-Agent": "azsdk-go-azcertificates/v0.5.0 (go1.18; linux)" + }, + "RequestBody": { + "attributes": { + "enabled": false + } + }, + "StatusCode": 200, + "ResponseHeaders": { + "Cache-Control": "no-cache", + "Content-Length": "314", + "Content-Type": "application/json; charset=utf-8", + "Date": "Tue, 05 Jul 2022 20:58:49 GMT", + "Expires": "-1", + "Pragma": "no-cache", + "Strict-Transport-Security": "max-age=31536000;includeSubDomains", + "X-Content-Type-Options": "nosniff", + "x-ms-keyvault-network-info": "conn_type=Ipv4;addr=24.17.201.78;act_addr_fam=InterNetwork;", + "x-ms-keyvault-region": "eastus", + "x-ms-keyvault-service-version": "1.9.444.2", + "x-ms-request-id": "836c9c2c-1887-4ba5-a314-421864b17d5e" + }, + "ResponseBody": { + "id": "https://fakevault/certificates/issuers/issuer3522408118", + "provider": "Test", + "credentials": { + "account_id": "keyvaultuser" + }, + "org_details": { + "zip": 0, + "admin_details": [ + { + "first_name": "First", + "last_name": "Last", + "email": "foo@bar", + "phone": "42" + } + ] + }, + "attributes": { + "enabled": false, + "created": 1657054729, + "updated": 1657054729 + } + } + }, + { + "RequestUri": "https://fakevault/certificates/issuers/issuer3522408118?api-version=7.3", + "RequestMethod": "DELETE", + "RequestHeaders": { + "Accept": "application/json", + "Accept-Encoding": "gzip", + "Authorization": "Sanitized", + "User-Agent": "azsdk-go-azcertificates/v0.5.0 (go1.18; linux)" + }, + "RequestBody": null, + "StatusCode": 200, + "ResponseHeaders": { + "Cache-Control": "no-cache", + "Content-Length": "314", + "Content-Type": "application/json; charset=utf-8", + "Date": "Tue, 05 Jul 2022 20:58:49 GMT", + "Expires": "-1", + "Pragma": "no-cache", + "Strict-Transport-Security": "max-age=31536000;includeSubDomains", + "X-Content-Type-Options": "nosniff", + "x-ms-keyvault-network-info": "conn_type=Ipv4;addr=24.17.201.78;act_addr_fam=InterNetwork;", + "x-ms-keyvault-region": "eastus", + "x-ms-keyvault-service-version": "1.9.444.2", + "x-ms-request-id": "ab06921d-145b-4eaa-ab33-fefb6e8e1b33" + }, + "ResponseBody": { + "id": "https://fakevault/certificates/issuers/issuer3522408118", + "provider": "Test", + "credentials": { + "account_id": "keyvaultuser" + }, + "org_details": { + "zip": 0, + "admin_details": [ + { + "first_name": "First", + "last_name": "Last", + "email": "foo@bar", + "phone": "42" + } + ] + }, + "attributes": { + "enabled": false, + "created": 1657054729, + "updated": 1657054729 + } + } + } + ], + "Variables": {} +} diff --git a/sdk/keyvault/azcertificates/testdata/recordings/TestListCertificateVersions.json b/sdk/keyvault/azcertificates/testdata/recordings/TestListCertificateVersions.json new file mode 100644 index 000000000000..a7762a20e846 --- /dev/null +++ b/sdk/keyvault/azcertificates/testdata/recordings/TestListCertificateVersions.json @@ -0,0 +1,907 @@ +{ + "Entries": [ + { + "RequestUri": "https://fakevault/certificates/2404801577/create?api-version=7.3", + "RequestMethod": "POST", + "RequestHeaders": { + "Accept": "application/json", + "Accept-Encoding": "gzip", + "Content-Length": "0", + "User-Agent": "azsdk-go-azcertificates/v0.5.0 (go1.18; linux)" + }, + "RequestBody": null, + "StatusCode": 401, + "ResponseHeaders": { + "Cache-Control": "no-cache", + "Content-Length": "97", + "Content-Type": "application/json; charset=utf-8", + "Date": "Wed, 29 Jun 2022 20:49:07 GMT", + "Expires": "-1", + "Pragma": "no-cache", + "Strict-Transport-Security": "max-age=31536000;includeSubDomains", + "WWW-Authenticate": "Bearer authorization=\u0022https://login.windows.net/72f988bf-86f1-41af-91ab-2d7cd011db47\u0022, resource=\u0022https://vault.azure.net\u0022", + "X-Content-Type-Options": "nosniff", + "x-ms-keyvault-network-info": "conn_type=Ipv4;addr=24.17.201.78;act_addr_fam=InterNetwork;", + "x-ms-keyvault-region": "eastus", + "x-ms-keyvault-service-version": "1.9.444.2", + "x-ms-request-id": "2d9966e4-4084-4b52-8326-979d6f892036" + }, + "ResponseBody": { + "error": { + "code": "Unauthorized", + "message": "AKV10000: Request is missing a Bearer or PoP token." + } + } + }, + { + "RequestUri": "https://fakevault/certificates/2404801577/create?api-version=7.3", + "RequestMethod": "POST", + "RequestHeaders": { + "Accept": "application/json", + "Accept-Encoding": "gzip", + "Authorization": "Sanitized", + "Content-Length": "81", + "Content-Type": "application/json", + "User-Agent": "azsdk-go-azcertificates/v0.5.0 (go1.18; linux)" + }, + "RequestBody": { + "policy": { + "issuer": { + "name": "self" + }, + "x509_props": { + "subject": "CN=DefaultPolicy" + } + } + }, + "StatusCode": 202, + "ResponseHeaders": { + "Cache-Control": "no-cache", + "Content-Length": "1269", + "Content-Type": "application/json; charset=utf-8", + "Date": "Wed, 29 Jun 2022 20:49:08 GMT", + "Expires": "-1", + "Location": "https://fakevault/certificates/2404801577/pending?api-version=7.3\u0026request_id=f63efddbc13d46f4b277a8108516ae65", + "Pragma": "no-cache", + "Retry-After": "10", + "Strict-Transport-Security": "max-age=31536000;includeSubDomains", + "X-Content-Type-Options": "nosniff", + "x-ms-keyvault-network-info": "conn_type=Ipv4;addr=24.17.201.78;act_addr_fam=InterNetwork;", + "x-ms-keyvault-region": "eastus", + "x-ms-keyvault-service-version": "1.9.444.2", + "x-ms-request-id": "2b5f0d35-8760-463f-ba0e-e2fbfbd9144a" + }, + "ResponseBody": { + "id": "https://fakevault/certificates/2404801577/pending", + "issuer": { + "name": "self" + }, + "csr": "MIICqDCCAZACAQAwGDEWMBQGA1UEAxMNRGVmYXVsdFBvbGljeTCCASIwDQYJKoZIhvcNAQEBBQADggEPADCCAQoCggEBAKoyGttVywLLga4PN\u002BvhFN8jVy4NnufCNwFISYyanbEnT9B2tw1NGwzWIJxgAgkn4a82RuQS4IadJbIfzWbtRlScArVJ30ZT/qZPzJ1l6q1thGTeKgeHzGz61HJ1XG82lfEGdBWeo3n4Dk2bXGIOp1dG6ioE7r4lHNHaXAtef2xXukXk2vgp17RdPXHm9PV/iyVE\u002BZaFd3bNoTTAPz77tZKgQkqeTxF2T09XeYRfkCXyBhLoMDII5RTwnUPWGSKah3F2p6uvthmPbZKusuu7Qm1p6\u002BldFVhfJxJBwHM/TSIFHFdEtUZ25gWizAYcnnKZfQF1hEuYC5Bf8epUttvmYhkCAwEAAaBLMEkGCSqGSIb3DQEJDjE8MDowDgYDVR0PAQH/BAQDAgWgMB0GA1UdJQQWMBQGCCsGAQUFBwMBBggrBgEFBQcDAjAJBgNVHRMEAjAAMA0GCSqGSIb3DQEBCwUAA4IBAQBCztb\u002BY3nVLOoOuvJwGgn4eQqzf7Cp/R5vSTPgVeGKzKjVSEr9/BaIAlJgv7jX9aO3TGtD4ABoFQSM6IN6PbwR6GKTDazjhpT9W7M6BhiO5Ficiske98uK49es/pI8isaLJKBiqaYb5kGFk7ZEveUuLI7rtUoXSSaeODQYUP\u002BCGZeE5LaJrTgvjCQOIiGk/bVohbaG1p1Fn0o9PemRnTwMxDqon59jiiu4\u002BSUDsxcdNd9Z2MUWwLvfOStmueHpdteurk\u002B6MSrqfOGPiP8\u002Bh1Ed6fwHGx1JE5mF9tNeYRibTMtFBpr6CsVY\u002BnHviMsfdRxul6icEoaZnDTRabReP0Fe", + "cancellation_requested": false, + "status": "inProgress", + "status_details": "Pending certificate created. Certificate request is in progress. This may take some time based on the issuer provider. Please check again later.", + "request_id": "f63efddbc13d46f4b277a8108516ae65" + } + }, + { + "RequestUri": "https://fakevault/certificates/2404801577/pending?api-version=7.3", + "RequestMethod": "GET", + "RequestHeaders": { + "Accept": "application/json", + "Accept-Encoding": "gzip", + "Authorization": "Sanitized", + "User-Agent": "azsdk-go-azcertificates/v0.5.0 (go1.18; linux)" + }, + "RequestBody": null, + "StatusCode": 200, + "ResponseHeaders": { + "Cache-Control": "no-cache", + "Content-Length": "1269", + "Content-Type": "application/json; charset=utf-8", + "Date": "Wed, 29 Jun 2022 20:49:08 GMT", + "Expires": "-1", + "Pragma": "no-cache", + "Retry-After": "10", + "Strict-Transport-Security": "max-age=31536000;includeSubDomains", + "X-Content-Type-Options": "nosniff", + "x-ms-keyvault-network-info": "conn_type=Ipv4;addr=24.17.201.78;act_addr_fam=InterNetwork;", + "x-ms-keyvault-region": "eastus", + "x-ms-keyvault-service-version": "1.9.444.2", + "x-ms-request-id": "cc79c7ba-d184-45b9-b107-b5ae70628955" + }, + "ResponseBody": { + "id": "https://fakevault/certificates/2404801577/pending", + "issuer": { + "name": "self" + }, + "csr": "MIICqDCCAZACAQAwGDEWMBQGA1UEAxMNRGVmYXVsdFBvbGljeTCCASIwDQYJKoZIhvcNAQEBBQADggEPADCCAQoCggEBAKoyGttVywLLga4PN\u002BvhFN8jVy4NnufCNwFISYyanbEnT9B2tw1NGwzWIJxgAgkn4a82RuQS4IadJbIfzWbtRlScArVJ30ZT/qZPzJ1l6q1thGTeKgeHzGz61HJ1XG82lfEGdBWeo3n4Dk2bXGIOp1dG6ioE7r4lHNHaXAtef2xXukXk2vgp17RdPXHm9PV/iyVE\u002BZaFd3bNoTTAPz77tZKgQkqeTxF2T09XeYRfkCXyBhLoMDII5RTwnUPWGSKah3F2p6uvthmPbZKusuu7Qm1p6\u002BldFVhfJxJBwHM/TSIFHFdEtUZ25gWizAYcnnKZfQF1hEuYC5Bf8epUttvmYhkCAwEAAaBLMEkGCSqGSIb3DQEJDjE8MDowDgYDVR0PAQH/BAQDAgWgMB0GA1UdJQQWMBQGCCsGAQUFBwMBBggrBgEFBQcDAjAJBgNVHRMEAjAAMA0GCSqGSIb3DQEBCwUAA4IBAQBCztb\u002BY3nVLOoOuvJwGgn4eQqzf7Cp/R5vSTPgVeGKzKjVSEr9/BaIAlJgv7jX9aO3TGtD4ABoFQSM6IN6PbwR6GKTDazjhpT9W7M6BhiO5Ficiske98uK49es/pI8isaLJKBiqaYb5kGFk7ZEveUuLI7rtUoXSSaeODQYUP\u002BCGZeE5LaJrTgvjCQOIiGk/bVohbaG1p1Fn0o9PemRnTwMxDqon59jiiu4\u002BSUDsxcdNd9Z2MUWwLvfOStmueHpdteurk\u002B6MSrqfOGPiP8\u002Bh1Ed6fwHGx1JE5mF9tNeYRibTMtFBpr6CsVY\u002BnHviMsfdRxul6icEoaZnDTRabReP0Fe", + "cancellation_requested": false, + "status": "inProgress", + "status_details": "Pending certificate created. Certificate request is in progress. This may take some time based on the issuer provider. Please check again later.", + "request_id": "f63efddbc13d46f4b277a8108516ae65" + } + }, + { + "RequestUri": "https://fakevault/certificates/2404801577/pending?api-version=7.3", + "RequestMethod": "GET", + "RequestHeaders": { + "Accept": "application/json", + "Accept-Encoding": "gzip", + "Authorization": "Sanitized", + "User-Agent": "azsdk-go-azcertificates/v0.5.0 (go1.18; linux)" + }, + "RequestBody": null, + "StatusCode": 200, + "ResponseHeaders": { + "Cache-Control": "no-cache", + "Content-Length": "1269", + "Content-Type": "application/json; charset=utf-8", + "Date": "Wed, 29 Jun 2022 20:49:13 GMT", + "Expires": "-1", + "Pragma": "no-cache", + "Retry-After": "10", + "Strict-Transport-Security": "max-age=31536000;includeSubDomains", + "X-Content-Type-Options": "nosniff", + "x-ms-keyvault-network-info": "conn_type=Ipv4;addr=24.17.201.78;act_addr_fam=InterNetwork;", + "x-ms-keyvault-region": "eastus", + "x-ms-keyvault-service-version": "1.9.444.2", + "x-ms-request-id": "f571d1fe-199a-46e9-ba5a-4ee870e0bbf9" + }, + "ResponseBody": { + "id": "https://fakevault/certificates/2404801577/pending", + "issuer": { + "name": "self" + }, + "csr": "MIICqDCCAZACAQAwGDEWMBQGA1UEAxMNRGVmYXVsdFBvbGljeTCCASIwDQYJKoZIhvcNAQEBBQADggEPADCCAQoCggEBAKoyGttVywLLga4PN\u002BvhFN8jVy4NnufCNwFISYyanbEnT9B2tw1NGwzWIJxgAgkn4a82RuQS4IadJbIfzWbtRlScArVJ30ZT/qZPzJ1l6q1thGTeKgeHzGz61HJ1XG82lfEGdBWeo3n4Dk2bXGIOp1dG6ioE7r4lHNHaXAtef2xXukXk2vgp17RdPXHm9PV/iyVE\u002BZaFd3bNoTTAPz77tZKgQkqeTxF2T09XeYRfkCXyBhLoMDII5RTwnUPWGSKah3F2p6uvthmPbZKusuu7Qm1p6\u002BldFVhfJxJBwHM/TSIFHFdEtUZ25gWizAYcnnKZfQF1hEuYC5Bf8epUttvmYhkCAwEAAaBLMEkGCSqGSIb3DQEJDjE8MDowDgYDVR0PAQH/BAQDAgWgMB0GA1UdJQQWMBQGCCsGAQUFBwMBBggrBgEFBQcDAjAJBgNVHRMEAjAAMA0GCSqGSIb3DQEBCwUAA4IBAQBCztb\u002BY3nVLOoOuvJwGgn4eQqzf7Cp/R5vSTPgVeGKzKjVSEr9/BaIAlJgv7jX9aO3TGtD4ABoFQSM6IN6PbwR6GKTDazjhpT9W7M6BhiO5Ficiske98uK49es/pI8isaLJKBiqaYb5kGFk7ZEveUuLI7rtUoXSSaeODQYUP\u002BCGZeE5LaJrTgvjCQOIiGk/bVohbaG1p1Fn0o9PemRnTwMxDqon59jiiu4\u002BSUDsxcdNd9Z2MUWwLvfOStmueHpdteurk\u002B6MSrqfOGPiP8\u002Bh1Ed6fwHGx1JE5mF9tNeYRibTMtFBpr6CsVY\u002BnHviMsfdRxul6icEoaZnDTRabReP0Fe", + "cancellation_requested": false, + "status": "inProgress", + "status_details": "Pending certificate created. Certificate request is in progress. This may take some time based on the issuer provider. Please check again later.", + "request_id": "f63efddbc13d46f4b277a8108516ae65" + } + }, + { + "RequestUri": "https://fakevault/certificates/2404801577/pending?api-version=7.3", + "RequestMethod": "GET", + "RequestHeaders": { + "Accept": "application/json", + "Accept-Encoding": "gzip", + "Authorization": "Sanitized", + "User-Agent": "azsdk-go-azcertificates/v0.5.0 (go1.18; linux)" + }, + "RequestBody": null, + "StatusCode": 200, + "ResponseHeaders": { + "Cache-Control": "no-cache", + "Content-Length": "1157", + "Content-Type": "application/json; charset=utf-8", + "Date": "Wed, 29 Jun 2022 20:49:18 GMT", + "Expires": "-1", + "Pragma": "no-cache", + "Strict-Transport-Security": "max-age=31536000;includeSubDomains", + "X-Content-Type-Options": "nosniff", + "x-ms-keyvault-network-info": "conn_type=Ipv4;addr=24.17.201.78;act_addr_fam=InterNetwork;", + "x-ms-keyvault-region": "eastus", + "x-ms-keyvault-service-version": "1.9.444.2", + "x-ms-request-id": "26c0e338-576a-4cd3-be04-de3739c714e4" + }, + "ResponseBody": { + "id": "https://fakevault/certificates/2404801577/pending", + "issuer": { + "name": "self" + }, + "csr": "MIICqDCCAZACAQAwGDEWMBQGA1UEAxMNRGVmYXVsdFBvbGljeTCCASIwDQYJKoZIhvcNAQEBBQADggEPADCCAQoCggEBAKoyGttVywLLga4PN\u002BvhFN8jVy4NnufCNwFISYyanbEnT9B2tw1NGwzWIJxgAgkn4a82RuQS4IadJbIfzWbtRlScArVJ30ZT/qZPzJ1l6q1thGTeKgeHzGz61HJ1XG82lfEGdBWeo3n4Dk2bXGIOp1dG6ioE7r4lHNHaXAtef2xXukXk2vgp17RdPXHm9PV/iyVE\u002BZaFd3bNoTTAPz77tZKgQkqeTxF2T09XeYRfkCXyBhLoMDII5RTwnUPWGSKah3F2p6uvthmPbZKusuu7Qm1p6\u002BldFVhfJxJBwHM/TSIFHFdEtUZ25gWizAYcnnKZfQF1hEuYC5Bf8epUttvmYhkCAwEAAaBLMEkGCSqGSIb3DQEJDjE8MDowDgYDVR0PAQH/BAQDAgWgMB0GA1UdJQQWMBQGCCsGAQUFBwMBBggrBgEFBQcDAjAJBgNVHRMEAjAAMA0GCSqGSIb3DQEBCwUAA4IBAQBCztb\u002BY3nVLOoOuvJwGgn4eQqzf7Cp/R5vSTPgVeGKzKjVSEr9/BaIAlJgv7jX9aO3TGtD4ABoFQSM6IN6PbwR6GKTDazjhpT9W7M6BhiO5Ficiske98uK49es/pI8isaLJKBiqaYb5kGFk7ZEveUuLI7rtUoXSSaeODQYUP\u002BCGZeE5LaJrTgvjCQOIiGk/bVohbaG1p1Fn0o9PemRnTwMxDqon59jiiu4\u002BSUDsxcdNd9Z2MUWwLvfOStmueHpdteurk\u002B6MSrqfOGPiP8\u002Bh1Ed6fwHGx1JE5mF9tNeYRibTMtFBpr6CsVY\u002BnHviMsfdRxul6icEoaZnDTRabReP0Fe", + "cancellation_requested": false, + "status": "completed", + "target": "https://fakevault/certificates/2404801577", + "request_id": "f63efddbc13d46f4b277a8108516ae65" + } + }, + { + "RequestUri": "https://fakevault/certificates/2404801577/pending?api-version=7.3", + "RequestMethod": "GET", + "RequestHeaders": { + "Accept": "application/json", + "Accept-Encoding": "gzip", + "Authorization": "Sanitized", + "User-Agent": "azsdk-go-azcertificates/v0.5.0 (go1.18; linux)" + }, + "RequestBody": null, + "StatusCode": 200, + "ResponseHeaders": { + "Cache-Control": "no-cache", + "Content-Length": "1157", + "Content-Type": "application/json; charset=utf-8", + "Date": "Wed, 29 Jun 2022 20:49:24 GMT", + "Expires": "-1", + "Pragma": "no-cache", + "Strict-Transport-Security": "max-age=31536000;includeSubDomains", + "X-Content-Type-Options": "nosniff", + "x-ms-keyvault-network-info": "conn_type=Ipv4;addr=24.17.201.78;act_addr_fam=InterNetwork;", + "x-ms-keyvault-region": "eastus", + "x-ms-keyvault-service-version": "1.9.444.2", + "x-ms-request-id": "f9b362ab-520f-4d7b-8a0f-4ad99807de72" + }, + "ResponseBody": { + "id": "https://fakevault/certificates/2404801577/pending", + "issuer": { + "name": "self" + }, + "csr": "MIICqDCCAZACAQAwGDEWMBQGA1UEAxMNRGVmYXVsdFBvbGljeTCCASIwDQYJKoZIhvcNAQEBBQADggEPADCCAQoCggEBAKoyGttVywLLga4PN\u002BvhFN8jVy4NnufCNwFISYyanbEnT9B2tw1NGwzWIJxgAgkn4a82RuQS4IadJbIfzWbtRlScArVJ30ZT/qZPzJ1l6q1thGTeKgeHzGz61HJ1XG82lfEGdBWeo3n4Dk2bXGIOp1dG6ioE7r4lHNHaXAtef2xXukXk2vgp17RdPXHm9PV/iyVE\u002BZaFd3bNoTTAPz77tZKgQkqeTxF2T09XeYRfkCXyBhLoMDII5RTwnUPWGSKah3F2p6uvthmPbZKusuu7Qm1p6\u002BldFVhfJxJBwHM/TSIFHFdEtUZ25gWizAYcnnKZfQF1hEuYC5Bf8epUttvmYhkCAwEAAaBLMEkGCSqGSIb3DQEJDjE8MDowDgYDVR0PAQH/BAQDAgWgMB0GA1UdJQQWMBQGCCsGAQUFBwMBBggrBgEFBQcDAjAJBgNVHRMEAjAAMA0GCSqGSIb3DQEBCwUAA4IBAQBCztb\u002BY3nVLOoOuvJwGgn4eQqzf7Cp/R5vSTPgVeGKzKjVSEr9/BaIAlJgv7jX9aO3TGtD4ABoFQSM6IN6PbwR6GKTDazjhpT9W7M6BhiO5Ficiske98uK49es/pI8isaLJKBiqaYb5kGFk7ZEveUuLI7rtUoXSSaeODQYUP\u002BCGZeE5LaJrTgvjCQOIiGk/bVohbaG1p1Fn0o9PemRnTwMxDqon59jiiu4\u002BSUDsxcdNd9Z2MUWwLvfOStmueHpdteurk\u002B6MSrqfOGPiP8\u002Bh1Ed6fwHGx1JE5mF9tNeYRibTMtFBpr6CsVY\u002BnHviMsfdRxul6icEoaZnDTRabReP0Fe", + "cancellation_requested": false, + "status": "completed", + "target": "https://fakevault/certificates/2404801577", + "request_id": "f63efddbc13d46f4b277a8108516ae65" + } + }, + { + "RequestUri": "https://fakevault/certificates/2404801577/pending?api-version=7.3", + "RequestMethod": "GET", + "RequestHeaders": { + "Accept": "application/json", + "Accept-Encoding": "gzip", + "Authorization": "Sanitized", + "User-Agent": "azsdk-go-azcertificates/v0.5.0 (go1.18; linux)" + }, + "RequestBody": null, + "StatusCode": 200, + "ResponseHeaders": { + "Cache-Control": "no-cache", + "Content-Length": "1157", + "Content-Type": "application/json; charset=utf-8", + "Date": "Wed, 29 Jun 2022 20:49:29 GMT", + "Expires": "-1", + "Pragma": "no-cache", + "Strict-Transport-Security": "max-age=31536000;includeSubDomains", + "X-Content-Type-Options": "nosniff", + "x-ms-keyvault-network-info": "conn_type=Ipv4;addr=24.17.201.78;act_addr_fam=InterNetwork;", + "x-ms-keyvault-region": "eastus", + "x-ms-keyvault-service-version": "1.9.444.2", + "x-ms-request-id": "f4fd3ef0-d19c-4060-af7e-28cd83e76203" + }, + "ResponseBody": { + "id": "https://fakevault/certificates/2404801577/pending", + "issuer": { + "name": "self" + }, + "csr": "MIICqDCCAZACAQAwGDEWMBQGA1UEAxMNRGVmYXVsdFBvbGljeTCCASIwDQYJKoZIhvcNAQEBBQADggEPADCCAQoCggEBAKoyGttVywLLga4PN\u002BvhFN8jVy4NnufCNwFISYyanbEnT9B2tw1NGwzWIJxgAgkn4a82RuQS4IadJbIfzWbtRlScArVJ30ZT/qZPzJ1l6q1thGTeKgeHzGz61HJ1XG82lfEGdBWeo3n4Dk2bXGIOp1dG6ioE7r4lHNHaXAtef2xXukXk2vgp17RdPXHm9PV/iyVE\u002BZaFd3bNoTTAPz77tZKgQkqeTxF2T09XeYRfkCXyBhLoMDII5RTwnUPWGSKah3F2p6uvthmPbZKusuu7Qm1p6\u002BldFVhfJxJBwHM/TSIFHFdEtUZ25gWizAYcnnKZfQF1hEuYC5Bf8epUttvmYhkCAwEAAaBLMEkGCSqGSIb3DQEJDjE8MDowDgYDVR0PAQH/BAQDAgWgMB0GA1UdJQQWMBQGCCsGAQUFBwMBBggrBgEFBQcDAjAJBgNVHRMEAjAAMA0GCSqGSIb3DQEBCwUAA4IBAQBCztb\u002BY3nVLOoOuvJwGgn4eQqzf7Cp/R5vSTPgVeGKzKjVSEr9/BaIAlJgv7jX9aO3TGtD4ABoFQSM6IN6PbwR6GKTDazjhpT9W7M6BhiO5Ficiske98uK49es/pI8isaLJKBiqaYb5kGFk7ZEveUuLI7rtUoXSSaeODQYUP\u002BCGZeE5LaJrTgvjCQOIiGk/bVohbaG1p1Fn0o9PemRnTwMxDqon59jiiu4\u002BSUDsxcdNd9Z2MUWwLvfOStmueHpdteurk\u002B6MSrqfOGPiP8\u002Bh1Ed6fwHGx1JE5mF9tNeYRibTMtFBpr6CsVY\u002BnHviMsfdRxul6icEoaZnDTRabReP0Fe", + "cancellation_requested": false, + "status": "completed", + "target": "https://fakevault/certificates/2404801577", + "request_id": "f63efddbc13d46f4b277a8108516ae65" + } + }, + { + "RequestUri": "https://fakevault/certificates/2404801577/create?api-version=7.3", + "RequestMethod": "POST", + "RequestHeaders": { + "Accept": "application/json", + "Accept-Encoding": "gzip", + "Authorization": "Sanitized", + "Content-Length": "81", + "Content-Type": "application/json", + "User-Agent": "azsdk-go-azcertificates/v0.5.0 (go1.18; linux)" + }, + "RequestBody": { + "policy": { + "issuer": { + "name": "self" + }, + "x509_props": { + "subject": "CN=DefaultPolicy" + } + } + }, + "StatusCode": 202, + "ResponseHeaders": { + "Cache-Control": "no-cache", + "Content-Length": "1269", + "Content-Type": "application/json; charset=utf-8", + "Date": "Wed, 29 Jun 2022 20:49:30 GMT", + "Expires": "-1", + "Location": "https://fakevault/certificates/2404801577/pending?api-version=7.3\u0026request_id=fe92864247364f70a63355d4df16b423", + "Pragma": "no-cache", + "Retry-After": "10", + "Strict-Transport-Security": "max-age=31536000;includeSubDomains", + "X-Content-Type-Options": "nosniff", + "x-ms-keyvault-network-info": "conn_type=Ipv4;addr=24.17.201.78;act_addr_fam=InterNetwork;", + "x-ms-keyvault-region": "eastus", + "x-ms-keyvault-service-version": "1.9.444.2", + "x-ms-request-id": "9a75c7a2-2aa6-4bdd-851a-d8e0a1e2f9ba" + }, + "ResponseBody": { + "id": "https://fakevault/certificates/2404801577/pending", + "issuer": { + "name": "self" + }, + "csr": "MIICqDCCAZACAQAwGDEWMBQGA1UEAxMNRGVmYXVsdFBvbGljeTCCASIwDQYJKoZIhvcNAQEBBQADggEPADCCAQoCggEBAPODDpvWhxQCqQHsFqDSNaSUmWZUGaA0ufX5yiA8364bHNuSELeAS6yMxsBYVgZvuMuLiLfpCZYXoGD\u002Bw7eIq\u002BqZkrmlg3OJY7mi4F4zWVjjxfslWPGnPQYeydcpVApXSCe/eDixDEfHjOBhCb6ZnwomNItBe4Rv8ZlUDHVrctSxjJzB0XpCEnAWxvVzSg7NZ5NDf9Cyoa7xJFexDJGyjhL8nsF0IpXOyBiyNoi0TqBypNZlkPC3EGNTXotj0Yf2VICSFbe57dFGDxw9I4QH2Z8z1BPvZ5yUwYAf\u002B4/\u002BjXyq5tlzTDwoxUCs5rOH4CeJOYkCkKnEalGjU1d4B4lDQOUCAwEAAaBLMEkGCSqGSIb3DQEJDjE8MDowDgYDVR0PAQH/BAQDAgWgMB0GA1UdJQQWMBQGCCsGAQUFBwMBBggrBgEFBQcDAjAJBgNVHRMEAjAAMA0GCSqGSIb3DQEBCwUAA4IBAQDY0UrZGyq26/pqzExVXa3Xf\u002BSTsFkLZYz0J/rQ8ggc6woew3kWhGQcnwHVWlvelMGEoB\u002B8cCPSt9q4QMqKCH3Bh1gZG8SaNxTBPnYrO4K/PGnBTkqR\u002BTDf88oqrayatTFftGEHlPUnHFbpWqGTv6H86wQNUYMKMW5zZ6BivFj3t\u002B4yf\u002Bjv4ccxOQasKqcLdCO2GxnvRMpe0neJPV\u002Bo4NLDEO8faRFyGWZTAXsrna/bgQaDoUTA0tI7JaJ6TlLvGlLpJqsydRw2ctkbjxsG8xmvIQ8A90fUH6GsAvjpuc1blJDCcnLYVmiMssk2\u002BCte4o2JOtp8hqdVYOttAegxg0ok", + "cancellation_requested": false, + "status": "inProgress", + "status_details": "Pending certificate created. Certificate request is in progress. This may take some time based on the issuer provider. Please check again later.", + "request_id": "fe92864247364f70a63355d4df16b423" + } + }, + { + "RequestUri": "https://fakevault/certificates/2404801577/pending?api-version=7.3", + "RequestMethod": "GET", + "RequestHeaders": { + "Accept": "application/json", + "Accept-Encoding": "gzip", + "Authorization": "Sanitized", + "User-Agent": "azsdk-go-azcertificates/v0.5.0 (go1.18; linux)" + }, + "RequestBody": null, + "StatusCode": 200, + "ResponseHeaders": { + "Cache-Control": "no-cache", + "Content-Length": "1269", + "Content-Type": "application/json; charset=utf-8", + "Date": "Wed, 29 Jun 2022 20:49:30 GMT", + "Expires": "-1", + "Pragma": "no-cache", + "Retry-After": "10", + "Strict-Transport-Security": "max-age=31536000;includeSubDomains", + "X-Content-Type-Options": "nosniff", + "x-ms-keyvault-network-info": "conn_type=Ipv4;addr=24.17.201.78;act_addr_fam=InterNetwork;", + "x-ms-keyvault-region": "eastus", + "x-ms-keyvault-service-version": "1.9.444.2", + "x-ms-request-id": "77eb587a-13ee-44c1-a5c9-df6e35cc0191" + }, + "ResponseBody": { + "id": "https://fakevault/certificates/2404801577/pending", + "issuer": { + "name": "self" + }, + "csr": "MIICqDCCAZACAQAwGDEWMBQGA1UEAxMNRGVmYXVsdFBvbGljeTCCASIwDQYJKoZIhvcNAQEBBQADggEPADCCAQoCggEBAPODDpvWhxQCqQHsFqDSNaSUmWZUGaA0ufX5yiA8364bHNuSELeAS6yMxsBYVgZvuMuLiLfpCZYXoGD\u002Bw7eIq\u002BqZkrmlg3OJY7mi4F4zWVjjxfslWPGnPQYeydcpVApXSCe/eDixDEfHjOBhCb6ZnwomNItBe4Rv8ZlUDHVrctSxjJzB0XpCEnAWxvVzSg7NZ5NDf9Cyoa7xJFexDJGyjhL8nsF0IpXOyBiyNoi0TqBypNZlkPC3EGNTXotj0Yf2VICSFbe57dFGDxw9I4QH2Z8z1BPvZ5yUwYAf\u002B4/\u002BjXyq5tlzTDwoxUCs5rOH4CeJOYkCkKnEalGjU1d4B4lDQOUCAwEAAaBLMEkGCSqGSIb3DQEJDjE8MDowDgYDVR0PAQH/BAQDAgWgMB0GA1UdJQQWMBQGCCsGAQUFBwMBBggrBgEFBQcDAjAJBgNVHRMEAjAAMA0GCSqGSIb3DQEBCwUAA4IBAQDY0UrZGyq26/pqzExVXa3Xf\u002BSTsFkLZYz0J/rQ8ggc6woew3kWhGQcnwHVWlvelMGEoB\u002B8cCPSt9q4QMqKCH3Bh1gZG8SaNxTBPnYrO4K/PGnBTkqR\u002BTDf88oqrayatTFftGEHlPUnHFbpWqGTv6H86wQNUYMKMW5zZ6BivFj3t\u002B4yf\u002Bjv4ccxOQasKqcLdCO2GxnvRMpe0neJPV\u002Bo4NLDEO8faRFyGWZTAXsrna/bgQaDoUTA0tI7JaJ6TlLvGlLpJqsydRw2ctkbjxsG8xmvIQ8A90fUH6GsAvjpuc1blJDCcnLYVmiMssk2\u002BCte4o2JOtp8hqdVYOttAegxg0ok", + "cancellation_requested": false, + "status": "inProgress", + "status_details": "Pending certificate created. Certificate request is in progress. This may take some time based on the issuer provider. Please check again later.", + "request_id": "fe92864247364f70a63355d4df16b423" + } + }, + { + "RequestUri": "https://fakevault/certificates/2404801577/pending?api-version=7.3", + "RequestMethod": "GET", + "RequestHeaders": { + "Accept": "application/json", + "Accept-Encoding": "gzip", + "Authorization": "Sanitized", + "User-Agent": "azsdk-go-azcertificates/v0.5.0 (go1.18; linux)" + }, + "RequestBody": null, + "StatusCode": 200, + "ResponseHeaders": { + "Cache-Control": "no-cache", + "Content-Length": "1157", + "Content-Type": "application/json; charset=utf-8", + "Date": "Wed, 29 Jun 2022 20:49:36 GMT", + "Expires": "-1", + "Pragma": "no-cache", + "Strict-Transport-Security": "max-age=31536000;includeSubDomains", + "X-Content-Type-Options": "nosniff", + "x-ms-keyvault-network-info": "conn_type=Ipv4;addr=24.17.201.78;act_addr_fam=InterNetwork;", + "x-ms-keyvault-region": "eastus", + "x-ms-keyvault-service-version": "1.9.444.2", + "x-ms-request-id": "826e1e31-4699-4cce-bc44-a413ec6901a9" + }, + "ResponseBody": { + "id": "https://fakevault/certificates/2404801577/pending", + "issuer": { + "name": "self" + }, + "csr": "MIICqDCCAZACAQAwGDEWMBQGA1UEAxMNRGVmYXVsdFBvbGljeTCCASIwDQYJKoZIhvcNAQEBBQADggEPADCCAQoCggEBAPODDpvWhxQCqQHsFqDSNaSUmWZUGaA0ufX5yiA8364bHNuSELeAS6yMxsBYVgZvuMuLiLfpCZYXoGD\u002Bw7eIq\u002BqZkrmlg3OJY7mi4F4zWVjjxfslWPGnPQYeydcpVApXSCe/eDixDEfHjOBhCb6ZnwomNItBe4Rv8ZlUDHVrctSxjJzB0XpCEnAWxvVzSg7NZ5NDf9Cyoa7xJFexDJGyjhL8nsF0IpXOyBiyNoi0TqBypNZlkPC3EGNTXotj0Yf2VICSFbe57dFGDxw9I4QH2Z8z1BPvZ5yUwYAf\u002B4/\u002BjXyq5tlzTDwoxUCs5rOH4CeJOYkCkKnEalGjU1d4B4lDQOUCAwEAAaBLMEkGCSqGSIb3DQEJDjE8MDowDgYDVR0PAQH/BAQDAgWgMB0GA1UdJQQWMBQGCCsGAQUFBwMBBggrBgEFBQcDAjAJBgNVHRMEAjAAMA0GCSqGSIb3DQEBCwUAA4IBAQDY0UrZGyq26/pqzExVXa3Xf\u002BSTsFkLZYz0J/rQ8ggc6woew3kWhGQcnwHVWlvelMGEoB\u002B8cCPSt9q4QMqKCH3Bh1gZG8SaNxTBPnYrO4K/PGnBTkqR\u002BTDf88oqrayatTFftGEHlPUnHFbpWqGTv6H86wQNUYMKMW5zZ6BivFj3t\u002B4yf\u002Bjv4ccxOQasKqcLdCO2GxnvRMpe0neJPV\u002Bo4NLDEO8faRFyGWZTAXsrna/bgQaDoUTA0tI7JaJ6TlLvGlLpJqsydRw2ctkbjxsG8xmvIQ8A90fUH6GsAvjpuc1blJDCcnLYVmiMssk2\u002BCte4o2JOtp8hqdVYOttAegxg0ok", + "cancellation_requested": false, + "status": "completed", + "target": "https://fakevault/certificates/2404801577", + "request_id": "fe92864247364f70a63355d4df16b423" + } + }, + { + "RequestUri": "https://fakevault/certificates/2404801577/pending?api-version=7.3", + "RequestMethod": "GET", + "RequestHeaders": { + "Accept": "application/json", + "Accept-Encoding": "gzip", + "Authorization": "Sanitized", + "User-Agent": "azsdk-go-azcertificates/v0.5.0 (go1.18; linux)" + }, + "RequestBody": null, + "StatusCode": 200, + "ResponseHeaders": { + "Cache-Control": "no-cache", + "Content-Length": "1157", + "Content-Type": "application/json; charset=utf-8", + "Date": "Wed, 29 Jun 2022 20:49:41 GMT", + "Expires": "-1", + "Pragma": "no-cache", + "Strict-Transport-Security": "max-age=31536000;includeSubDomains", + "X-Content-Type-Options": "nosniff", + "x-ms-keyvault-network-info": "conn_type=Ipv4;addr=24.17.201.78;act_addr_fam=InterNetwork;", + "x-ms-keyvault-region": "eastus", + "x-ms-keyvault-service-version": "1.9.444.2", + "x-ms-request-id": "f02bbf65-94f7-4bfd-b858-6e4947cf5522" + }, + "ResponseBody": { + "id": "https://fakevault/certificates/2404801577/pending", + "issuer": { + "name": "self" + }, + "csr": "MIICqDCCAZACAQAwGDEWMBQGA1UEAxMNRGVmYXVsdFBvbGljeTCCASIwDQYJKoZIhvcNAQEBBQADggEPADCCAQoCggEBAPODDpvWhxQCqQHsFqDSNaSUmWZUGaA0ufX5yiA8364bHNuSELeAS6yMxsBYVgZvuMuLiLfpCZYXoGD\u002Bw7eIq\u002BqZkrmlg3OJY7mi4F4zWVjjxfslWPGnPQYeydcpVApXSCe/eDixDEfHjOBhCb6ZnwomNItBe4Rv8ZlUDHVrctSxjJzB0XpCEnAWxvVzSg7NZ5NDf9Cyoa7xJFexDJGyjhL8nsF0IpXOyBiyNoi0TqBypNZlkPC3EGNTXotj0Yf2VICSFbe57dFGDxw9I4QH2Z8z1BPvZ5yUwYAf\u002B4/\u002BjXyq5tlzTDwoxUCs5rOH4CeJOYkCkKnEalGjU1d4B4lDQOUCAwEAAaBLMEkGCSqGSIb3DQEJDjE8MDowDgYDVR0PAQH/BAQDAgWgMB0GA1UdJQQWMBQGCCsGAQUFBwMBBggrBgEFBQcDAjAJBgNVHRMEAjAAMA0GCSqGSIb3DQEBCwUAA4IBAQDY0UrZGyq26/pqzExVXa3Xf\u002BSTsFkLZYz0J/rQ8ggc6woew3kWhGQcnwHVWlvelMGEoB\u002B8cCPSt9q4QMqKCH3Bh1gZG8SaNxTBPnYrO4K/PGnBTkqR\u002BTDf88oqrayatTFftGEHlPUnHFbpWqGTv6H86wQNUYMKMW5zZ6BivFj3t\u002B4yf\u002Bjv4ccxOQasKqcLdCO2GxnvRMpe0neJPV\u002Bo4NLDEO8faRFyGWZTAXsrna/bgQaDoUTA0tI7JaJ6TlLvGlLpJqsydRw2ctkbjxsG8xmvIQ8A90fUH6GsAvjpuc1blJDCcnLYVmiMssk2\u002BCte4o2JOtp8hqdVYOttAegxg0ok", + "cancellation_requested": false, + "status": "completed", + "target": "https://fakevault/certificates/2404801577", + "request_id": "fe92864247364f70a63355d4df16b423" + } + }, + { + "RequestUri": "https://fakevault/certificates/2404801577/pending?api-version=7.3", + "RequestMethod": "GET", + "RequestHeaders": { + "Accept": "application/json", + "Accept-Encoding": "gzip", + "Authorization": "Sanitized", + "User-Agent": "azsdk-go-azcertificates/v0.5.0 (go1.18; linux)" + }, + "RequestBody": null, + "StatusCode": 200, + "ResponseHeaders": { + "Cache-Control": "no-cache", + "Content-Length": "1157", + "Content-Type": "application/json; charset=utf-8", + "Date": "Wed, 29 Jun 2022 20:49:46 GMT", + "Expires": "-1", + "Pragma": "no-cache", + "Strict-Transport-Security": "max-age=31536000;includeSubDomains", + "X-Content-Type-Options": "nosniff", + "x-ms-keyvault-network-info": "conn_type=Ipv4;addr=24.17.201.78;act_addr_fam=InterNetwork;", + "x-ms-keyvault-region": "eastus", + "x-ms-keyvault-service-version": "1.9.444.2", + "x-ms-request-id": "279bb9c5-b52e-4e36-bd1e-313d47f0b6bc" + }, + "ResponseBody": { + "id": "https://fakevault/certificates/2404801577/pending", + "issuer": { + "name": "self" + }, + "csr": "MIICqDCCAZACAQAwGDEWMBQGA1UEAxMNRGVmYXVsdFBvbGljeTCCASIwDQYJKoZIhvcNAQEBBQADggEPADCCAQoCggEBAPODDpvWhxQCqQHsFqDSNaSUmWZUGaA0ufX5yiA8364bHNuSELeAS6yMxsBYVgZvuMuLiLfpCZYXoGD\u002Bw7eIq\u002BqZkrmlg3OJY7mi4F4zWVjjxfslWPGnPQYeydcpVApXSCe/eDixDEfHjOBhCb6ZnwomNItBe4Rv8ZlUDHVrctSxjJzB0XpCEnAWxvVzSg7NZ5NDf9Cyoa7xJFexDJGyjhL8nsF0IpXOyBiyNoi0TqBypNZlkPC3EGNTXotj0Yf2VICSFbe57dFGDxw9I4QH2Z8z1BPvZ5yUwYAf\u002B4/\u002BjXyq5tlzTDwoxUCs5rOH4CeJOYkCkKnEalGjU1d4B4lDQOUCAwEAAaBLMEkGCSqGSIb3DQEJDjE8MDowDgYDVR0PAQH/BAQDAgWgMB0GA1UdJQQWMBQGCCsGAQUFBwMBBggrBgEFBQcDAjAJBgNVHRMEAjAAMA0GCSqGSIb3DQEBCwUAA4IBAQDY0UrZGyq26/pqzExVXa3Xf\u002BSTsFkLZYz0J/rQ8ggc6woew3kWhGQcnwHVWlvelMGEoB\u002B8cCPSt9q4QMqKCH3Bh1gZG8SaNxTBPnYrO4K/PGnBTkqR\u002BTDf88oqrayatTFftGEHlPUnHFbpWqGTv6H86wQNUYMKMW5zZ6BivFj3t\u002B4yf\u002Bjv4ccxOQasKqcLdCO2GxnvRMpe0neJPV\u002Bo4NLDEO8faRFyGWZTAXsrna/bgQaDoUTA0tI7JaJ6TlLvGlLpJqsydRw2ctkbjxsG8xmvIQ8A90fUH6GsAvjpuc1blJDCcnLYVmiMssk2\u002BCte4o2JOtp8hqdVYOttAegxg0ok", + "cancellation_requested": false, + "status": "completed", + "target": "https://fakevault/certificates/2404801577", + "request_id": "fe92864247364f70a63355d4df16b423" + } + }, + { + "RequestUri": "https://fakevault/certificates/2404801577/pending?api-version=7.3", + "RequestMethod": "GET", + "RequestHeaders": { + "Accept": "application/json", + "Accept-Encoding": "gzip", + "Authorization": "Sanitized", + "User-Agent": "azsdk-go-azcertificates/v0.5.0 (go1.18; linux)" + }, + "RequestBody": null, + "StatusCode": 200, + "ResponseHeaders": { + "Cache-Control": "no-cache", + "Content-Length": "1157", + "Content-Type": "application/json; charset=utf-8", + "Date": "Wed, 29 Jun 2022 20:49:51 GMT", + "Expires": "-1", + "Pragma": "no-cache", + "Strict-Transport-Security": "max-age=31536000;includeSubDomains", + "X-Content-Type-Options": "nosniff", + "x-ms-keyvault-network-info": "conn_type=Ipv4;addr=24.17.201.78;act_addr_fam=InterNetwork;", + "x-ms-keyvault-region": "eastus", + "x-ms-keyvault-service-version": "1.9.444.2", + "x-ms-request-id": "a95cad46-b28b-47eb-85f3-d02e84abf299" + }, + "ResponseBody": { + "id": "https://fakevault/certificates/2404801577/pending", + "issuer": { + "name": "self" + }, + "csr": "MIICqDCCAZACAQAwGDEWMBQGA1UEAxMNRGVmYXVsdFBvbGljeTCCASIwDQYJKoZIhvcNAQEBBQADggEPADCCAQoCggEBAPODDpvWhxQCqQHsFqDSNaSUmWZUGaA0ufX5yiA8364bHNuSELeAS6yMxsBYVgZvuMuLiLfpCZYXoGD\u002Bw7eIq\u002BqZkrmlg3OJY7mi4F4zWVjjxfslWPGnPQYeydcpVApXSCe/eDixDEfHjOBhCb6ZnwomNItBe4Rv8ZlUDHVrctSxjJzB0XpCEnAWxvVzSg7NZ5NDf9Cyoa7xJFexDJGyjhL8nsF0IpXOyBiyNoi0TqBypNZlkPC3EGNTXotj0Yf2VICSFbe57dFGDxw9I4QH2Z8z1BPvZ5yUwYAf\u002B4/\u002BjXyq5tlzTDwoxUCs5rOH4CeJOYkCkKnEalGjU1d4B4lDQOUCAwEAAaBLMEkGCSqGSIb3DQEJDjE8MDowDgYDVR0PAQH/BAQDAgWgMB0GA1UdJQQWMBQGCCsGAQUFBwMBBggrBgEFBQcDAjAJBgNVHRMEAjAAMA0GCSqGSIb3DQEBCwUAA4IBAQDY0UrZGyq26/pqzExVXa3Xf\u002BSTsFkLZYz0J/rQ8ggc6woew3kWhGQcnwHVWlvelMGEoB\u002B8cCPSt9q4QMqKCH3Bh1gZG8SaNxTBPnYrO4K/PGnBTkqR\u002BTDf88oqrayatTFftGEHlPUnHFbpWqGTv6H86wQNUYMKMW5zZ6BivFj3t\u002B4yf\u002Bjv4ccxOQasKqcLdCO2GxnvRMpe0neJPV\u002Bo4NLDEO8faRFyGWZTAXsrna/bgQaDoUTA0tI7JaJ6TlLvGlLpJqsydRw2ctkbjxsG8xmvIQ8A90fUH6GsAvjpuc1blJDCcnLYVmiMssk2\u002BCte4o2JOtp8hqdVYOttAegxg0ok", + "cancellation_requested": false, + "status": "completed", + "target": "https://fakevault/certificates/2404801577", + "request_id": "fe92864247364f70a63355d4df16b423" + } + }, + { + "RequestUri": "https://fakevault/certificates/2404801577/create?api-version=7.3", + "RequestMethod": "POST", + "RequestHeaders": { + "Accept": "application/json", + "Accept-Encoding": "gzip", + "Authorization": "Sanitized", + "Content-Length": "81", + "Content-Type": "application/json", + "User-Agent": "azsdk-go-azcertificates/v0.5.0 (go1.18; linux)" + }, + "RequestBody": { + "policy": { + "issuer": { + "name": "self" + }, + "x509_props": { + "subject": "CN=DefaultPolicy" + } + } + }, + "StatusCode": 202, + "ResponseHeaders": { + "Cache-Control": "no-cache", + "Content-Length": "1269", + "Content-Type": "application/json; charset=utf-8", + "Date": "Wed, 29 Jun 2022 20:49:52 GMT", + "Expires": "-1", + "Location": "https://fakevault/certificates/2404801577/pending?api-version=7.3\u0026request_id=2dd807ffab5b45518bf9f418501d19c5", + "Pragma": "no-cache", + "Retry-After": "10", + "Strict-Transport-Security": "max-age=31536000;includeSubDomains", + "X-Content-Type-Options": "nosniff", + "x-ms-keyvault-network-info": "conn_type=Ipv4;addr=24.17.201.78;act_addr_fam=InterNetwork;", + "x-ms-keyvault-region": "eastus", + "x-ms-keyvault-service-version": "1.9.444.2", + "x-ms-request-id": "f84e875d-6d34-4572-aca3-c53adc13a004" + }, + "ResponseBody": { + "id": "https://fakevault/certificates/2404801577/pending", + "issuer": { + "name": "self" + }, + "csr": "MIICqDCCAZACAQAwGDEWMBQGA1UEAxMNRGVmYXVsdFBvbGljeTCCASIwDQYJKoZIhvcNAQEBBQADggEPADCCAQoCggEBALXOLCk0sAfh6aIIZOnX6rNhgHCrrvCj5cCkT7Ns2yzhWzbzPhhZ7Vtm9\u002BSMaWPBSDTwMOnHFD7R1/IYOvB4S0E1ioX4Ky0IL3/OeZ328zLuuzOht/mkDv49TsJDv0vqsK9rCVwa26KhWYbZ2unjJGAt5niKnl9xYJPl7WJZlwNPCHcUU\u002BrU\u002BI30lS9LeZ9iQcZuzx9nb90V/g2EQf/Jb9aGXKAA2cshx5l0eFtxrw3QJkRJDdaDatbsUbLKvqGkY2Y3txnGVUMCdHlSSuaZGplRix3/szFi1Er\u002B807W5w09paKqH/zcDpVjBzW0E7KUUcUqJxr0X1E9RlDJZzKS6NECAwEAAaBLMEkGCSqGSIb3DQEJDjE8MDowDgYDVR0PAQH/BAQDAgWgMB0GA1UdJQQWMBQGCCsGAQUFBwMBBggrBgEFBQcDAjAJBgNVHRMEAjAAMA0GCSqGSIb3DQEBCwUAA4IBAQAbK3qQ1O3suG8pJDtX/MHgJR0KdF/I\u002Bo/2Kz7cs23UsqcU4ccz8Jm0B7lSUiVARpCYOj5SY7\u002B8XpVbpd2AU9HXjYKK1MLuTfnOQxAVetI5LyI/g8W2aacFrO7YC9Ye78iNBYaBlz9yL6NMNyzIf1shggBxil2SsQZa6XtPhNO0/G/G84eymBI5lEQbPHzqxUkM\u002BH5WyLTe/wIqN5xa/EN53M5qfF1IASWd8ECsPkH6OEQIDIPX9yyuf7z0934SMj1pCt5HITLw3RqRimQhcN0d6Z4G0s3YvNsdmohLbnXrHMpGmdUdJWNSDdCrGoGappOtd12YI1yWJq\u002BD59m6EfGt", + "cancellation_requested": false, + "status": "inProgress", + "status_details": "Pending certificate created. Certificate request is in progress. This may take some time based on the issuer provider. Please check again later.", + "request_id": "2dd807ffab5b45518bf9f418501d19c5" + } + }, + { + "RequestUri": "https://fakevault/certificates/2404801577/pending?api-version=7.3", + "RequestMethod": "GET", + "RequestHeaders": { + "Accept": "application/json", + "Accept-Encoding": "gzip", + "Authorization": "Sanitized", + "User-Agent": "azsdk-go-azcertificates/v0.5.0 (go1.18; linux)" + }, + "RequestBody": null, + "StatusCode": 200, + "ResponseHeaders": { + "Cache-Control": "no-cache", + "Content-Length": "1269", + "Content-Type": "application/json; charset=utf-8", + "Date": "Wed, 29 Jun 2022 20:49:52 GMT", + "Expires": "-1", + "Pragma": "no-cache", + "Retry-After": "10", + "Strict-Transport-Security": "max-age=31536000;includeSubDomains", + "X-Content-Type-Options": "nosniff", + "x-ms-keyvault-network-info": "conn_type=Ipv4;addr=24.17.201.78;act_addr_fam=InterNetwork;", + "x-ms-keyvault-region": "eastus", + "x-ms-keyvault-service-version": "1.9.444.2", + "x-ms-request-id": "5a33e38c-c9ec-4e12-ae27-423853f5897b" + }, + "ResponseBody": { + "id": "https://fakevault/certificates/2404801577/pending", + "issuer": { + "name": "self" + }, + "csr": "MIICqDCCAZACAQAwGDEWMBQGA1UEAxMNRGVmYXVsdFBvbGljeTCCASIwDQYJKoZIhvcNAQEBBQADggEPADCCAQoCggEBALXOLCk0sAfh6aIIZOnX6rNhgHCrrvCj5cCkT7Ns2yzhWzbzPhhZ7Vtm9\u002BSMaWPBSDTwMOnHFD7R1/IYOvB4S0E1ioX4Ky0IL3/OeZ328zLuuzOht/mkDv49TsJDv0vqsK9rCVwa26KhWYbZ2unjJGAt5niKnl9xYJPl7WJZlwNPCHcUU\u002BrU\u002BI30lS9LeZ9iQcZuzx9nb90V/g2EQf/Jb9aGXKAA2cshx5l0eFtxrw3QJkRJDdaDatbsUbLKvqGkY2Y3txnGVUMCdHlSSuaZGplRix3/szFi1Er\u002B807W5w09paKqH/zcDpVjBzW0E7KUUcUqJxr0X1E9RlDJZzKS6NECAwEAAaBLMEkGCSqGSIb3DQEJDjE8MDowDgYDVR0PAQH/BAQDAgWgMB0GA1UdJQQWMBQGCCsGAQUFBwMBBggrBgEFBQcDAjAJBgNVHRMEAjAAMA0GCSqGSIb3DQEBCwUAA4IBAQAbK3qQ1O3suG8pJDtX/MHgJR0KdF/I\u002Bo/2Kz7cs23UsqcU4ccz8Jm0B7lSUiVARpCYOj5SY7\u002B8XpVbpd2AU9HXjYKK1MLuTfnOQxAVetI5LyI/g8W2aacFrO7YC9Ye78iNBYaBlz9yL6NMNyzIf1shggBxil2SsQZa6XtPhNO0/G/G84eymBI5lEQbPHzqxUkM\u002BH5WyLTe/wIqN5xa/EN53M5qfF1IASWd8ECsPkH6OEQIDIPX9yyuf7z0934SMj1pCt5HITLw3RqRimQhcN0d6Z4G0s3YvNsdmohLbnXrHMpGmdUdJWNSDdCrGoGappOtd12YI1yWJq\u002BD59m6EfGt", + "cancellation_requested": false, + "status": "inProgress", + "status_details": "Pending certificate created. Certificate request is in progress. This may take some time based on the issuer provider. Please check again later.", + "request_id": "2dd807ffab5b45518bf9f418501d19c5" + } + }, + { + "RequestUri": "https://fakevault/certificates/2404801577/pending?api-version=7.3", + "RequestMethod": "GET", + "RequestHeaders": { + "Accept": "application/json", + "Accept-Encoding": "gzip", + "Authorization": "Sanitized", + "User-Agent": "azsdk-go-azcertificates/v0.5.0 (go1.18; linux)" + }, + "RequestBody": null, + "StatusCode": 200, + "ResponseHeaders": { + "Cache-Control": "no-cache", + "Content-Length": "1157", + "Content-Type": "application/json; charset=utf-8", + "Date": "Wed, 29 Jun 2022 20:49:57 GMT", + "Expires": "-1", + "Pragma": "no-cache", + "Strict-Transport-Security": "max-age=31536000;includeSubDomains", + "X-Content-Type-Options": "nosniff", + "x-ms-keyvault-network-info": "conn_type=Ipv4;addr=24.17.201.78;act_addr_fam=InterNetwork;", + "x-ms-keyvault-region": "eastus", + "x-ms-keyvault-service-version": "1.9.444.2", + "x-ms-request-id": "41432a87-a53f-420e-87f4-0cb9b9463f5f" + }, + "ResponseBody": { + "id": "https://fakevault/certificates/2404801577/pending", + "issuer": { + "name": "self" + }, + "csr": "MIICqDCCAZACAQAwGDEWMBQGA1UEAxMNRGVmYXVsdFBvbGljeTCCASIwDQYJKoZIhvcNAQEBBQADggEPADCCAQoCggEBALXOLCk0sAfh6aIIZOnX6rNhgHCrrvCj5cCkT7Ns2yzhWzbzPhhZ7Vtm9\u002BSMaWPBSDTwMOnHFD7R1/IYOvB4S0E1ioX4Ky0IL3/OeZ328zLuuzOht/mkDv49TsJDv0vqsK9rCVwa26KhWYbZ2unjJGAt5niKnl9xYJPl7WJZlwNPCHcUU\u002BrU\u002BI30lS9LeZ9iQcZuzx9nb90V/g2EQf/Jb9aGXKAA2cshx5l0eFtxrw3QJkRJDdaDatbsUbLKvqGkY2Y3txnGVUMCdHlSSuaZGplRix3/szFi1Er\u002B807W5w09paKqH/zcDpVjBzW0E7KUUcUqJxr0X1E9RlDJZzKS6NECAwEAAaBLMEkGCSqGSIb3DQEJDjE8MDowDgYDVR0PAQH/BAQDAgWgMB0GA1UdJQQWMBQGCCsGAQUFBwMBBggrBgEFBQcDAjAJBgNVHRMEAjAAMA0GCSqGSIb3DQEBCwUAA4IBAQAbK3qQ1O3suG8pJDtX/MHgJR0KdF/I\u002Bo/2Kz7cs23UsqcU4ccz8Jm0B7lSUiVARpCYOj5SY7\u002B8XpVbpd2AU9HXjYKK1MLuTfnOQxAVetI5LyI/g8W2aacFrO7YC9Ye78iNBYaBlz9yL6NMNyzIf1shggBxil2SsQZa6XtPhNO0/G/G84eymBI5lEQbPHzqxUkM\u002BH5WyLTe/wIqN5xa/EN53M5qfF1IASWd8ECsPkH6OEQIDIPX9yyuf7z0934SMj1pCt5HITLw3RqRimQhcN0d6Z4G0s3YvNsdmohLbnXrHMpGmdUdJWNSDdCrGoGappOtd12YI1yWJq\u002BD59m6EfGt", + "cancellation_requested": false, + "status": "completed", + "target": "https://fakevault/certificates/2404801577", + "request_id": "2dd807ffab5b45518bf9f418501d19c5" + } + }, + { + "RequestUri": "https://fakevault/certificates/2404801577/pending?api-version=7.3", + "RequestMethod": "GET", + "RequestHeaders": { + "Accept": "application/json", + "Accept-Encoding": "gzip", + "Authorization": "Sanitized", + "User-Agent": "azsdk-go-azcertificates/v0.5.0 (go1.18; linux)" + }, + "RequestBody": null, + "StatusCode": 200, + "ResponseHeaders": { + "Cache-Control": "no-cache", + "Content-Length": "1157", + "Content-Type": "application/json; charset=utf-8", + "Date": "Wed, 29 Jun 2022 20:50:03 GMT", + "Expires": "-1", + "Pragma": "no-cache", + "Strict-Transport-Security": "max-age=31536000;includeSubDomains", + "X-Content-Type-Options": "nosniff", + "x-ms-keyvault-network-info": "conn_type=Ipv4;addr=24.17.201.78;act_addr_fam=InterNetwork;", + "x-ms-keyvault-region": "eastus", + "x-ms-keyvault-service-version": "1.9.444.2", + "x-ms-request-id": "d6b8f20d-613a-4281-a3f0-7604cbe5213c" + }, + "ResponseBody": { + "id": "https://fakevault/certificates/2404801577/pending", + "issuer": { + "name": "self" + }, + "csr": "MIICqDCCAZACAQAwGDEWMBQGA1UEAxMNRGVmYXVsdFBvbGljeTCCASIwDQYJKoZIhvcNAQEBBQADggEPADCCAQoCggEBALXOLCk0sAfh6aIIZOnX6rNhgHCrrvCj5cCkT7Ns2yzhWzbzPhhZ7Vtm9\u002BSMaWPBSDTwMOnHFD7R1/IYOvB4S0E1ioX4Ky0IL3/OeZ328zLuuzOht/mkDv49TsJDv0vqsK9rCVwa26KhWYbZ2unjJGAt5niKnl9xYJPl7WJZlwNPCHcUU\u002BrU\u002BI30lS9LeZ9iQcZuzx9nb90V/g2EQf/Jb9aGXKAA2cshx5l0eFtxrw3QJkRJDdaDatbsUbLKvqGkY2Y3txnGVUMCdHlSSuaZGplRix3/szFi1Er\u002B807W5w09paKqH/zcDpVjBzW0E7KUUcUqJxr0X1E9RlDJZzKS6NECAwEAAaBLMEkGCSqGSIb3DQEJDjE8MDowDgYDVR0PAQH/BAQDAgWgMB0GA1UdJQQWMBQGCCsGAQUFBwMBBggrBgEFBQcDAjAJBgNVHRMEAjAAMA0GCSqGSIb3DQEBCwUAA4IBAQAbK3qQ1O3suG8pJDtX/MHgJR0KdF/I\u002Bo/2Kz7cs23UsqcU4ccz8Jm0B7lSUiVARpCYOj5SY7\u002B8XpVbpd2AU9HXjYKK1MLuTfnOQxAVetI5LyI/g8W2aacFrO7YC9Ye78iNBYaBlz9yL6NMNyzIf1shggBxil2SsQZa6XtPhNO0/G/G84eymBI5lEQbPHzqxUkM\u002BH5WyLTe/wIqN5xa/EN53M5qfF1IASWd8ECsPkH6OEQIDIPX9yyuf7z0934SMj1pCt5HITLw3RqRimQhcN0d6Z4G0s3YvNsdmohLbnXrHMpGmdUdJWNSDdCrGoGappOtd12YI1yWJq\u002BD59m6EfGt", + "cancellation_requested": false, + "status": "completed", + "target": "https://fakevault/certificates/2404801577", + "request_id": "2dd807ffab5b45518bf9f418501d19c5" + } + }, + { + "RequestUri": "https://fakevault/certificates/2404801577/pending?api-version=7.3", + "RequestMethod": "GET", + "RequestHeaders": { + "Accept": "application/json", + "Accept-Encoding": "gzip", + "Authorization": "Sanitized", + "User-Agent": "azsdk-go-azcertificates/v0.5.0 (go1.18; linux)" + }, + "RequestBody": null, + "StatusCode": 200, + "ResponseHeaders": { + "Cache-Control": "no-cache", + "Content-Length": "1157", + "Content-Type": "application/json; charset=utf-8", + "Date": "Wed, 29 Jun 2022 20:50:08 GMT", + "Expires": "-1", + "Pragma": "no-cache", + "Strict-Transport-Security": "max-age=31536000;includeSubDomains", + "X-Content-Type-Options": "nosniff", + "x-ms-keyvault-network-info": "conn_type=Ipv4;addr=24.17.201.78;act_addr_fam=InterNetwork;", + "x-ms-keyvault-region": "eastus", + "x-ms-keyvault-service-version": "1.9.444.2", + "x-ms-request-id": "af72ef37-c77a-4aa8-8edb-d09caebb520d" + }, + "ResponseBody": { + "id": "https://fakevault/certificates/2404801577/pending", + "issuer": { + "name": "self" + }, + "csr": "MIICqDCCAZACAQAwGDEWMBQGA1UEAxMNRGVmYXVsdFBvbGljeTCCASIwDQYJKoZIhvcNAQEBBQADggEPADCCAQoCggEBALXOLCk0sAfh6aIIZOnX6rNhgHCrrvCj5cCkT7Ns2yzhWzbzPhhZ7Vtm9\u002BSMaWPBSDTwMOnHFD7R1/IYOvB4S0E1ioX4Ky0IL3/OeZ328zLuuzOht/mkDv49TsJDv0vqsK9rCVwa26KhWYbZ2unjJGAt5niKnl9xYJPl7WJZlwNPCHcUU\u002BrU\u002BI30lS9LeZ9iQcZuzx9nb90V/g2EQf/Jb9aGXKAA2cshx5l0eFtxrw3QJkRJDdaDatbsUbLKvqGkY2Y3txnGVUMCdHlSSuaZGplRix3/szFi1Er\u002B807W5w09paKqH/zcDpVjBzW0E7KUUcUqJxr0X1E9RlDJZzKS6NECAwEAAaBLMEkGCSqGSIb3DQEJDjE8MDowDgYDVR0PAQH/BAQDAgWgMB0GA1UdJQQWMBQGCCsGAQUFBwMBBggrBgEFBQcDAjAJBgNVHRMEAjAAMA0GCSqGSIb3DQEBCwUAA4IBAQAbK3qQ1O3suG8pJDtX/MHgJR0KdF/I\u002Bo/2Kz7cs23UsqcU4ccz8Jm0B7lSUiVARpCYOj5SY7\u002B8XpVbpd2AU9HXjYKK1MLuTfnOQxAVetI5LyI/g8W2aacFrO7YC9Ye78iNBYaBlz9yL6NMNyzIf1shggBxil2SsQZa6XtPhNO0/G/G84eymBI5lEQbPHzqxUkM\u002BH5WyLTe/wIqN5xa/EN53M5qfF1IASWd8ECsPkH6OEQIDIPX9yyuf7z0934SMj1pCt5HITLw3RqRimQhcN0d6Z4G0s3YvNsdmohLbnXrHMpGmdUdJWNSDdCrGoGappOtd12YI1yWJq\u002BD59m6EfGt", + "cancellation_requested": false, + "status": "completed", + "target": "https://fakevault/certificates/2404801577", + "request_id": "2dd807ffab5b45518bf9f418501d19c5" + } + }, + { + "RequestUri": "https://fakevault/certificates/2404801577/pending?api-version=7.3", + "RequestMethod": "GET", + "RequestHeaders": { + "Accept": "application/json", + "Accept-Encoding": "gzip", + "Authorization": "Sanitized", + "User-Agent": "azsdk-go-azcertificates/v0.5.0 (go1.18; linux)" + }, + "RequestBody": null, + "StatusCode": 200, + "ResponseHeaders": { + "Cache-Control": "no-cache", + "Content-Length": "1157", + "Content-Type": "application/json; charset=utf-8", + "Date": "Wed, 29 Jun 2022 20:50:13 GMT", + "Expires": "-1", + "Pragma": "no-cache", + "Strict-Transport-Security": "max-age=31536000;includeSubDomains", + "X-Content-Type-Options": "nosniff", + "x-ms-keyvault-network-info": "conn_type=Ipv4;addr=24.17.201.78;act_addr_fam=InterNetwork;", + "x-ms-keyvault-region": "eastus", + "x-ms-keyvault-service-version": "1.9.444.2", + "x-ms-request-id": "d7fddb78-1f97-496e-9bca-89067a06d3f5" + }, + "ResponseBody": { + "id": "https://fakevault/certificates/2404801577/pending", + "issuer": { + "name": "self" + }, + "csr": "MIICqDCCAZACAQAwGDEWMBQGA1UEAxMNRGVmYXVsdFBvbGljeTCCASIwDQYJKoZIhvcNAQEBBQADggEPADCCAQoCggEBALXOLCk0sAfh6aIIZOnX6rNhgHCrrvCj5cCkT7Ns2yzhWzbzPhhZ7Vtm9\u002BSMaWPBSDTwMOnHFD7R1/IYOvB4S0E1ioX4Ky0IL3/OeZ328zLuuzOht/mkDv49TsJDv0vqsK9rCVwa26KhWYbZ2unjJGAt5niKnl9xYJPl7WJZlwNPCHcUU\u002BrU\u002BI30lS9LeZ9iQcZuzx9nb90V/g2EQf/Jb9aGXKAA2cshx5l0eFtxrw3QJkRJDdaDatbsUbLKvqGkY2Y3txnGVUMCdHlSSuaZGplRix3/szFi1Er\u002B807W5w09paKqH/zcDpVjBzW0E7KUUcUqJxr0X1E9RlDJZzKS6NECAwEAAaBLMEkGCSqGSIb3DQEJDjE8MDowDgYDVR0PAQH/BAQDAgWgMB0GA1UdJQQWMBQGCCsGAQUFBwMBBggrBgEFBQcDAjAJBgNVHRMEAjAAMA0GCSqGSIb3DQEBCwUAA4IBAQAbK3qQ1O3suG8pJDtX/MHgJR0KdF/I\u002Bo/2Kz7cs23UsqcU4ccz8Jm0B7lSUiVARpCYOj5SY7\u002B8XpVbpd2AU9HXjYKK1MLuTfnOQxAVetI5LyI/g8W2aacFrO7YC9Ye78iNBYaBlz9yL6NMNyzIf1shggBxil2SsQZa6XtPhNO0/G/G84eymBI5lEQbPHzqxUkM\u002BH5WyLTe/wIqN5xa/EN53M5qfF1IASWd8ECsPkH6OEQIDIPX9yyuf7z0934SMj1pCt5HITLw3RqRimQhcN0d6Z4G0s3YvNsdmohLbnXrHMpGmdUdJWNSDdCrGoGappOtd12YI1yWJq\u002BD59m6EfGt", + "cancellation_requested": false, + "status": "completed", + "target": "https://fakevault/certificates/2404801577", + "request_id": "2dd807ffab5b45518bf9f418501d19c5" + } + }, + { + "RequestUri": "https://fakevault/certificates/2404801577/versions?api-version=7.3", + "RequestMethod": "GET", + "RequestHeaders": { + "Accept": "application/json", + "Accept-Encoding": "gzip", + "Authorization": "Sanitized", + "User-Agent": "azsdk-go-azcertificates/v0.5.0 (go1.18; linux)" + }, + "RequestBody": null, + "StatusCode": 200, + "ResponseHeaders": { + "Cache-Control": "no-cache", + "Content-Length": "744", + "Content-Type": "application/json; charset=utf-8", + "Date": "Wed, 29 Jun 2022 20:50:13 GMT", + "Expires": "-1", + "Pragma": "no-cache", + "Strict-Transport-Security": "max-age=31536000;includeSubDomains", + "X-Content-Type-Options": "nosniff", + "x-ms-keyvault-network-info": "conn_type=Ipv4;addr=24.17.201.78;act_addr_fam=InterNetwork;", + "x-ms-keyvault-region": "eastus", + "x-ms-keyvault-service-version": "1.9.444.2", + "x-ms-request-id": "27fe5bfc-1652-46a0-9a7e-b4c534a26b91" + }, + "ResponseBody": { + "value": [ + { + "id": "https://fakevault/certificates/2404801577/521e7642254e4d37a846d4dd711707df", + "x5t": "-iE2YS2whEu9NG-p97fE9lSxACI", + "attributes": { + "enabled": true, + "nbf": 1656535197, + "exp": 1688071797, + "created": 1656535797, + "updated": 1656535797 + }, + "subject": "" + }, + { + "id": "https://fakevault/certificates/2404801577/ced31ad37139455dac4930e6420ff34a", + "x5t": "zTr0ULtzDHV_XLsTYDPDU0Y5L_M", + "attributes": { + "enabled": true, + "nbf": 1656535172, + "exp": 1688071772, + "created": 1656535773, + "updated": 1656535773 + }, + "subject": "" + }, + { + "id": "https://fakevault/certificates/2404801577/f4636ffd6193414295b0caaaec5bbad9", + "x5t": "XUkmhu6cff-fYIQaHMyPxICZJaA", + "attributes": { + "enabled": true, + "nbf": 1656535156, + "exp": 1688071756, + "created": 1656535756, + "updated": 1656535756 + }, + "subject": "" + } + ], + "nextLink": null + } + }, + { + "RequestUri": "https://fakevault/certificates/2404801577?api-version=7.3", + "RequestMethod": "DELETE", + "RequestHeaders": { + "Accept": "application/json", + "Accept-Encoding": "gzip", + "Authorization": "Sanitized", + "User-Agent": "azsdk-go-azcertificates/v0.5.0 (go1.18; linux)" + }, + "RequestBody": null, + "StatusCode": 200, + "ResponseHeaders": { + "Cache-Control": "no-cache", + "Content-Length": "2342", + "Content-Type": "application/json; charset=utf-8", + "Date": "Wed, 29 Jun 2022 20:50:14 GMT", + "Expires": "-1", + "Pragma": "no-cache", + "Strict-Transport-Security": "max-age=31536000;includeSubDomains", + "X-Content-Type-Options": "nosniff", + "x-ms-keyvault-network-info": "conn_type=Ipv4;addr=24.17.201.78;act_addr_fam=InterNetwork;", + "x-ms-keyvault-region": "eastus", + "x-ms-keyvault-service-version": "1.9.444.2", + "x-ms-request-id": "7a642c94-4c4c-41de-91ae-97355694a8e8" + }, + "ResponseBody": { + "recoveryId": "https://fakevault/deletedcertificates/2404801577", + "deletedDate": 1656535814, + "scheduledPurgeDate": 1657140614, + "id": "https://fakevault/certificates/2404801577/521e7642254e4d37a846d4dd711707df", + "kid": "https://fakevault/keys/2404801577/521e7642254e4d37a846d4dd711707df", + "sid": "https://fakevault/secrets/2404801577/521e7642254e4d37a846d4dd711707df", + "x5t": "-iE2YS2whEu9NG-p97fE9lSxACI", + "cer": "MIIDNjCCAh6gAwIBAgIQJuYKtjF8SC6pzqAg9PcXYjANBgkqhkiG9w0BAQsFADAYMRYwFAYDVQQDEw1EZWZhdWx0UG9saWN5MB4XDTIyMDYyOTIwMzk1N1oXDTIzMDYyOTIwNDk1N1owGDEWMBQGA1UEAxMNRGVmYXVsdFBvbGljeTCCASIwDQYJKoZIhvcNAQEBBQADggEPADCCAQoCggEBALXOLCk0sAfh6aIIZOnX6rNhgHCrrvCj5cCkT7Ns2yzhWzbzPhhZ7Vtm9\u002BSMaWPBSDTwMOnHFD7R1/IYOvB4S0E1ioX4Ky0IL3/OeZ328zLuuzOht/mkDv49TsJDv0vqsK9rCVwa26KhWYbZ2unjJGAt5niKnl9xYJPl7WJZlwNPCHcUU\u002BrU\u002BI30lS9LeZ9iQcZuzx9nb90V/g2EQf/Jb9aGXKAA2cshx5l0eFtxrw3QJkRJDdaDatbsUbLKvqGkY2Y3txnGVUMCdHlSSuaZGplRix3/szFi1Er\u002B807W5w09paKqH/zcDpVjBzW0E7KUUcUqJxr0X1E9RlDJZzKS6NECAwEAAaN8MHowDgYDVR0PAQH/BAQDAgWgMAkGA1UdEwQCMAAwHQYDVR0lBBYwFAYIKwYBBQUHAwEGCCsGAQUFBwMCMB8GA1UdIwQYMBaAFETxtjwlFYMxpepC6IMTjZR5g/k0MB0GA1UdDgQWBBRE8bY8JRWDMaXqQuiDE42UeYP5NDANBgkqhkiG9w0BAQsFAAOCAQEATo9oFV942yv78UvHv1DqZGahcypltVAnUzPv\u002BUW43MHLp/PprCUqkVuipgkYLVm9Cjvwy3QXdaBQNTIFIx0JZ2fsmOIZOjnJqsZTYgPKTcYJhkaB9ndqzWT9RWKdRDrK8CpdGWlVjj2g2fS7J/RNolqXN31jTl\u002B5P1YS8/SZEbm1aVydJ0coG0duQB7gTQJsD3WaWzoZbkLvEgkhRDBaPpmbuzEtL8kLYW4MIhdk0eFjCKSQ42HjCfehpRMYnRt4PHdlKib8Qb\u002BXeYhKtsdWs2mKEgZw5mHU2WdJEQcqbZzmZ9J0l2Sbp\u002BPPwEoNmyLPozFVMZoPLbWg/1J1/3tqBg==", + "attributes": { + "enabled": true, + "nbf": 1656535197, + "exp": 1688071797, + "created": 1656535797, + "updated": 1656535797, + "recoveryLevel": "CustomizedRecoverable\u002BPurgeable", + "recoverableDays": 7 + }, + "policy": { + "id": "https://fakevault/certificates/2404801577/policy", + "key_props": { + "exportable": true, + "kty": "RSA", + "key_size": 2048, + "reuse_key": false + }, + "secret_props": { + "contentType": "application/x-pkcs12" + }, + "x509_props": { + "subject": "CN=DefaultPolicy", + "ekus": [ + "1.3.6.1.5.5.7.3.1", + "1.3.6.1.5.5.7.3.2" + ], + "key_usage": [ + "digitalSignature", + "keyEncipherment" + ], + "validity_months": 12, + "basic_constraints": { + "ca": false + } + }, + "lifetime_actions": [ + { + "trigger": { + "lifetime_percentage": 80 + }, + "action": { + "action_type": "AutoRenew" + } + } + ], + "issuer": { + "name": "self" + }, + "attributes": { + "enabled": true, + "created": 1656535748, + "updated": 1656535792 + } + }, + "pending": { + "id": "https://fakevault/certificates/2404801577/pending" + } + } + } + ], + "Variables": {} +} diff --git a/sdk/keyvault/azcertificates/testdata/recordings/TestListCertificates.json b/sdk/keyvault/azcertificates/testdata/recordings/TestListCertificates.json new file mode 100644 index 000000000000..d1cb3317da83 --- /dev/null +++ b/sdk/keyvault/azcertificates/testdata/recordings/TestListCertificates.json @@ -0,0 +1,2481 @@ +{ + "Entries": [ + { + "RequestUri": "https://fakevault/certificates/1374356525-0/create?api-version=7.3", + "RequestMethod": "POST", + "RequestHeaders": { + "Accept": "application/json", + "Accept-Encoding": "gzip", + "Content-Length": "0", + "User-Agent": "azsdk-go-azcertificates/v0.5.0 (go1.18; linux)" + }, + "RequestBody": null, + "StatusCode": 401, + "ResponseHeaders": { + "Cache-Control": "no-cache", + "Content-Length": "97", + "Content-Type": "application/json; charset=utf-8", + "Date": "Wed, 29 Jun 2022 23:07:45 GMT", + "Expires": "-1", + "Pragma": "no-cache", + "Strict-Transport-Security": "max-age=31536000;includeSubDomains", + "WWW-Authenticate": "Bearer authorization=\u0022https://login.windows.net/72f988bf-86f1-41af-91ab-2d7cd011db47\u0022, resource=\u0022https://vault.azure.net\u0022", + "X-Content-Type-Options": "nosniff", + "x-ms-keyvault-network-info": "conn_type=Ipv4;addr=24.17.201.78;act_addr_fam=InterNetwork;", + "x-ms-keyvault-region": "eastus", + "x-ms-keyvault-service-version": "1.9.444.2", + "x-ms-request-id": "8596b221-dba5-4d78-9fd5-f891c56d1146" + }, + "ResponseBody": { + "error": { + "code": "Unauthorized", + "message": "AKV10000: Request is missing a Bearer or PoP token." + } + } + }, + { + "RequestUri": "https://fakevault/certificates/1374356525-0/create?api-version=7.3", + "RequestMethod": "POST", + "RequestHeaders": { + "Accept": "application/json", + "Accept-Encoding": "gzip", + "Authorization": "Sanitized", + "Content-Length": "109", + "Content-Type": "application/json", + "User-Agent": "azsdk-go-azcertificates/v0.5.0 (go1.18; linux)" + }, + "RequestBody": { + "policy": { + "issuer": { + "name": "self" + }, + "x509_props": { + "subject": "CN=DefaultPolicy" + } + }, + "tags": { + "1374356525": "yes" + } + }, + "StatusCode": 202, + "ResponseHeaders": { + "Cache-Control": "no-cache", + "Content-Length": "1271", + "Content-Type": "application/json; charset=utf-8", + "Date": "Wed, 29 Jun 2022 23:07:47 GMT", + "Expires": "-1", + "Location": "https://fakevault/certificates/1374356525-0/pending?api-version=7.3\u0026request_id=011ed8cae88d412fbcf572b8669194b2", + "Pragma": "no-cache", + "Retry-After": "10", + "Strict-Transport-Security": "max-age=31536000;includeSubDomains", + "X-Content-Type-Options": "nosniff", + "x-ms-keyvault-network-info": "conn_type=Ipv4;addr=24.17.201.78;act_addr_fam=InterNetwork;", + "x-ms-keyvault-region": "eastus", + "x-ms-keyvault-service-version": "1.9.444.2", + "x-ms-request-id": "4d8b54d9-582e-4c5f-8cd0-e6fcfdc6e184" + }, + "ResponseBody": { + "id": "https://fakevault/certificates/1374356525-0/pending", + "issuer": { + "name": "self" + }, + "csr": "MIICqDCCAZACAQAwGDEWMBQGA1UEAxMNRGVmYXVsdFBvbGljeTCCASIwDQYJKoZIhvcNAQEBBQADggEPADCCAQoCggEBAMqflblALjYyqNzOzCeBd8rIxbq4/58/vDytzm7E\u002B2ln69UV4LP\u002BS4A\u002BFuOU49R/Y3tKQp6Z7131vtsahGXzWOwNjpzDzE3eDIu5\u002BlvXj/zxdCbOE7Pkv0Yn9AS33mTt54a76uULA\u002BT6hRX2xhNhfmVDUzPPtEQHERPbQR9p/q0Hzgf1cmTorvnqaKr63jpSMubqeuG8XK9KDZM4Q1pOkP2gEqKY3xPvS\u002B2gR83gCEtyYhP1pWCR6lJX/ndh56R\u002BC8GGQY7vm4sYeTghtllkwxFNHNjaKoHfW\u002BdRB73d9W7hLtnLUfbQkQ\u002BUfarX7mo4QJm8te97rtC2c1VNiKkTv20CAwEAAaBLMEkGCSqGSIb3DQEJDjE8MDowDgYDVR0PAQH/BAQDAgWgMB0GA1UdJQQWMBQGCCsGAQUFBwMBBggrBgEFBQcDAjAJBgNVHRMEAjAAMA0GCSqGSIb3DQEBCwUAA4IBAQAsFDlHDduECKs2WaB5F0E4wsxJksoe70FnAuLzZ9vKCJ6CUSG2yUMTVoLImY7QqoB6LlhnlrqfxV0I\u002BE52qc7SPpGtm0q2fsPKOsT\u002BDqp6pZHLxR6hy/C0ekZgPjZMUuXQTc50lcCA/ZFpMIlzqYPGSIejjvDBCXfVSyv5uXpsrVmhZaoTGMM9/uenw7mC3N0nHhrdY1d7//mVqKO7GV1tCs2iHD2Otu13TuU6W5Qiva0Gvxlo58CHpNHwRLi4yBnwfO5zcJz1vY0u4GbQul5qQbIYBjVyLals6EctKpcnMJKzK9poddnvL0OK3Lnifu09JF1z/Q7bPu/4fly0\u002BECU", + "cancellation_requested": false, + "status": "inProgress", + "status_details": "Pending certificate created. Certificate request is in progress. This may take some time based on the issuer provider. Please check again later.", + "request_id": "011ed8cae88d412fbcf572b8669194b2" + } + }, + { + "RequestUri": "https://fakevault/certificates/1374356525-1/create?api-version=7.3", + "RequestMethod": "POST", + "RequestHeaders": { + "Accept": "application/json", + "Accept-Encoding": "gzip", + "Authorization": "Sanitized", + "Content-Length": "109", + "Content-Type": "application/json", + "User-Agent": "azsdk-go-azcertificates/v0.5.0 (go1.18; linux)" + }, + "RequestBody": { + "policy": { + "issuer": { + "name": "self" + }, + "x509_props": { + "subject": "CN=DefaultPolicy" + } + }, + "tags": { + "1374356525": "yes" + } + }, + "StatusCode": 202, + "ResponseHeaders": { + "Cache-Control": "no-cache", + "Content-Length": "1271", + "Content-Type": "application/json; charset=utf-8", + "Date": "Wed, 29 Jun 2022 23:07:48 GMT", + "Expires": "-1", + "Location": "https://fakevault/certificates/1374356525-1/pending?api-version=7.3\u0026request_id=e00ae4c5ba3f484381446585ecc45551", + "Pragma": "no-cache", + "Retry-After": "10", + "Strict-Transport-Security": "max-age=31536000;includeSubDomains", + "X-Content-Type-Options": "nosniff", + "x-ms-keyvault-network-info": "conn_type=Ipv4;addr=24.17.201.78;act_addr_fam=InterNetwork;", + "x-ms-keyvault-region": "eastus", + "x-ms-keyvault-service-version": "1.9.444.2", + "x-ms-request-id": "76069cb2-78a8-42aa-8e35-c1da2babc307" + }, + "ResponseBody": { + "id": "https://fakevault/certificates/1374356525-1/pending", + "issuer": { + "name": "self" + }, + "csr": "MIICqDCCAZACAQAwGDEWMBQGA1UEAxMNRGVmYXVsdFBvbGljeTCCASIwDQYJKoZIhvcNAQEBBQADggEPADCCAQoCggEBAMQVgk7O4ETVoxr7IXi31g7HrHPEfwc3uNBhZsds/kw6/hPwlnqdAM6GfAFw0QX6ggYRCYgCftgKvIjiWkTjTUtuSZeFbLuCM1V6QJjbi1Z5iGqFTayWKZKYLh4rfPH\u002BqPyFovr4SxfRk8CNFvTVQQamna5dZMxBn1MzrO65SuYSFIW2Dzq4VMWW0Jh0hyd3/adbEatbtbQ9L3qGxwijHLk\u002B7iAkYjYKU8ucVoy87KwK8UK6mhRzrfYKIQozqSX2F6thEBSNBcVS7esjX6Oe7JiqHhksTVkuHRBCovd5rnAiSw4oyKJqzosG5ewIhEBrVeKKU5ORes19emyYSodTTuUCAwEAAaBLMEkGCSqGSIb3DQEJDjE8MDowDgYDVR0PAQH/BAQDAgWgMB0GA1UdJQQWMBQGCCsGAQUFBwMBBggrBgEFBQcDAjAJBgNVHRMEAjAAMA0GCSqGSIb3DQEBCwUAA4IBAQBQ7JIWlcc\u002BPP2HgBSCfokU\u002B02kfI0pRQPNLMMtxLX2YWeuTNYl/NR1Y3ztjrNiow3cvKk5qABp5bsc9/TbNhpGH2HN4NFvxwHFhGIcigORvFy/fTksdECzSD/s3faMjJgxmED\u002Bm7TcXtbJCNtIemo7WbsPTqdBVfF/jYGWazI8m\u002B17kcUuXHlvc7qZL9A1wtCa7zVyzl1IaOZi\u002Bmxmw6vi5n1hVPTq\u002BpkCmEgb43\u002B3NeOKDuF4dHHBb0\u002B2HdbveONHxsuCJIuaqhZD948iUui78UWhxLDqQ2QWJxxW/2bk/SFaTVqv03Ouv3tjaLskdRhduofdQM38wYyL7KWPsDXO", + "cancellation_requested": false, + "status": "inProgress", + "status_details": "Pending certificate created. Certificate request is in progress. This may take some time based on the issuer provider. Please check again later.", + "request_id": "e00ae4c5ba3f484381446585ecc45551" + } + }, + { + "RequestUri": "https://fakevault/certificates/1374356525-2/create?api-version=7.3", + "RequestMethod": "POST", + "RequestHeaders": { + "Accept": "application/json", + "Accept-Encoding": "gzip", + "Authorization": "Sanitized", + "Content-Length": "109", + "Content-Type": "application/json", + "User-Agent": "azsdk-go-azcertificates/v0.5.0 (go1.18; linux)" + }, + "RequestBody": { + "policy": { + "issuer": { + "name": "self" + }, + "x509_props": { + "subject": "CN=DefaultPolicy" + } + }, + "tags": { + "1374356525": "yes" + } + }, + "StatusCode": 202, + "ResponseHeaders": { + "Cache-Control": "no-cache", + "Content-Length": "1271", + "Content-Type": "application/json; charset=utf-8", + "Date": "Wed, 29 Jun 2022 23:07:49 GMT", + "Expires": "-1", + "Location": "https://fakevault/certificates/1374356525-2/pending?api-version=7.3\u0026request_id=f8a3a09eda414084bd63f27f0e96c86b", + "Pragma": "no-cache", + "Retry-After": "10", + "Strict-Transport-Security": "max-age=31536000;includeSubDomains", + "X-Content-Type-Options": "nosniff", + "x-ms-keyvault-network-info": "conn_type=Ipv4;addr=24.17.201.78;act_addr_fam=InterNetwork;", + "x-ms-keyvault-region": "eastus", + "x-ms-keyvault-service-version": "1.9.444.2", + "x-ms-request-id": "73eed899-076d-4d3d-a953-dbaa52dc9665" + }, + "ResponseBody": { + "id": "https://fakevault/certificates/1374356525-2/pending", + "issuer": { + "name": "self" + }, + "csr": "MIICqDCCAZACAQAwGDEWMBQGA1UEAxMNRGVmYXVsdFBvbGljeTCCASIwDQYJKoZIhvcNAQEBBQADggEPADCCAQoCggEBAPqy7PWnxnNSMWP1Am3QQ6sU4tsB5LyJDhKLzN2rbVTtCCD8KATxfuh/zkhWAkKMQEk0LnAfv9fNih9OzCVtfJdYZaxxR38WBFcbQAAMJ0osECqPM5ggvC5CT59g3gA/v7mcIQVnMhXBqPKUV7qq/cACbeLAw/2gsM7jctUKXP\u002Balo/tg7rAgk5vsBS/066e55e\u002B1AUatnwxWI0fl4eR4VuYKFu\u002BKPvQtIkXhwGnCkyZ1sfmnHymVVC6oH54zRJPHNQLfFvP9HSBkSzt5yVTdH9YOdy6KP5tUBtT4ZtGPowSB4D3Q77KrSFsE7xbda402weSD7XchcaDdY/sTRu24n0CAwEAAaBLMEkGCSqGSIb3DQEJDjE8MDowDgYDVR0PAQH/BAQDAgWgMB0GA1UdJQQWMBQGCCsGAQUFBwMBBggrBgEFBQcDAjAJBgNVHRMEAjAAMA0GCSqGSIb3DQEBCwUAA4IBAQA8WC93byihxzPusRIkk9vjwsvCOAvOJUMYYi3t/1Y0yqwJpG0gITvtwBaxM/LF/RNAw\u002BVqzoiQPWtF4QMD5yTxk2QsxNPnpBl\u002B/zR3vVFaRRK5WTSR3GIMevp5HoLu9qchcLjyDBlGqyjNCANzOzPuJNRdkc1ZvA0f4Ieqd910PHKKqTwWIRUYkngngcoFAyp0Y68pqkSDbCVqdHDDDZuFmKWEd5\u002BlK77f7SXxfyxEv43uhF0saVggbqXDOL05AsuiK1t0WqwNE9IzpMsYUBRJl/W84k4vB3i4WVsTq7db3moqJuCZtOBssI2Kfp7Up\u002B9eAGyU7CSsx4kJeIpiA6jh", + "cancellation_requested": false, + "status": "inProgress", + "status_details": "Pending certificate created. Certificate request is in progress. This may take some time based on the issuer provider. Please check again later.", + "request_id": "f8a3a09eda414084bd63f27f0e96c86b" + } + }, + { + "RequestUri": "https://fakevault/certificates/1374356525-3/create?api-version=7.3", + "RequestMethod": "POST", + "RequestHeaders": { + "Accept": "application/json", + "Accept-Encoding": "gzip", + "Authorization": "Sanitized", + "Content-Length": "109", + "Content-Type": "application/json", + "User-Agent": "azsdk-go-azcertificates/v0.5.0 (go1.18; linux)" + }, + "RequestBody": { + "policy": { + "issuer": { + "name": "self" + }, + "x509_props": { + "subject": "CN=DefaultPolicy" + } + }, + "tags": { + "1374356525": "yes" + } + }, + "StatusCode": 202, + "ResponseHeaders": { + "Cache-Control": "no-cache", + "Content-Length": "1271", + "Content-Type": "application/json; charset=utf-8", + "Date": "Wed, 29 Jun 2022 23:07:50 GMT", + "Expires": "-1", + "Location": "https://fakevault/certificates/1374356525-3/pending?api-version=7.3\u0026request_id=9d43b908ce5d4beb8414df1fb1839817", + "Pragma": "no-cache", + "Retry-After": "10", + "Strict-Transport-Security": "max-age=31536000;includeSubDomains", + "X-Content-Type-Options": "nosniff", + "x-ms-keyvault-network-info": "conn_type=Ipv4;addr=24.17.201.78;act_addr_fam=InterNetwork;", + "x-ms-keyvault-region": "eastus", + "x-ms-keyvault-service-version": "1.9.444.2", + "x-ms-request-id": "7ff6e7cd-4078-414f-af47-00dd6e21ef8f" + }, + "ResponseBody": { + "id": "https://fakevault/certificates/1374356525-3/pending", + "issuer": { + "name": "self" + }, + "csr": "MIICqDCCAZACAQAwGDEWMBQGA1UEAxMNRGVmYXVsdFBvbGljeTCCASIwDQYJKoZIhvcNAQEBBQADggEPADCCAQoCggEBANM\u002BBDuyohn/sUkVCOP/0Wx6oBQuiXttn4rA3ds4zRbuYwodZ8/2narcU6q3pOOvoqHCG0flFwe8yp24NtosnZz01auCFIbIwGk5k9RLxUrx7O24abRRj9FpK67ePJJwa0G8SDdRvn5cKhz58dVIoPRtcz06Aty4yh46HsfJ\u002BaEGIkq20tQMs\u002BG4lxZskuKeztrjZRHkMk0Nj0CAdIu6dYcSi/neeiIsHbbyd9c1vqmiW\u002BuhKyd4KCGtDgYlHZ7WiE7l8mG5AU7LELe3Zj9GXfOopaTM0XHhNaHd4htOl7WRlwLeP0Zn4bDA1raZbU0vOhhXACZZBLwrk2N7GPVS350CAwEAAaBLMEkGCSqGSIb3DQEJDjE8MDowDgYDVR0PAQH/BAQDAgWgMB0GA1UdJQQWMBQGCCsGAQUFBwMBBggrBgEFBQcDAjAJBgNVHRMEAjAAMA0GCSqGSIb3DQEBCwUAA4IBAQCi2/5rQvVsIpRuJzBJ7sUwDADUoy6jBWpu8Tu0kky0p/9Wdyl1ez9ZzmxzdJdSOjT91U3h/8GPCWcVdE\u002BVrxNI\u002BrNIbQWVA1LkkVcWwem9zIXxTqEu\u002B1S9h\u002BNCjzmp1ZMLF0nNOIVzTt2XPPvzAFPVG/xdTy2pdwY6TSm8RbJERzPm9NhkjyRg37xn/kZszKOf8s2P8JHsUMUbQUmkxIt8fS1Sy3W7N4szoBfNWutwFbeekEwYJgzcxLtRP\u002B76ecTx4scw8IoAV5bIs7jk16asuN2G7PgpK62GZ2mpEXEwCbEbxsfMU73NwlAIU2mvPdLme/6ybKweZTI9hUVXjW\u002BR", + "cancellation_requested": false, + "status": "inProgress", + "status_details": "Pending certificate created. Certificate request is in progress. This may take some time based on the issuer provider. Please check again later.", + "request_id": "9d43b908ce5d4beb8414df1fb1839817" + } + }, + { + "RequestUri": "https://fakevault/certificates/1374356525-0/pending?api-version=7.3", + "RequestMethod": "GET", + "RequestHeaders": { + "Accept": "application/json", + "Accept-Encoding": "gzip", + "Authorization": "Sanitized", + "User-Agent": "azsdk-go-azcertificates/v0.5.0 (go1.18; linux)" + }, + "RequestBody": null, + "StatusCode": 200, + "ResponseHeaders": { + "Cache-Control": "no-cache", + "Content-Length": "1271", + "Content-Type": "application/json; charset=utf-8", + "Date": "Wed, 29 Jun 2022 23:07:50 GMT", + "Expires": "-1", + "Pragma": "no-cache", + "Retry-After": "10", + "Strict-Transport-Security": "max-age=31536000;includeSubDomains", + "X-Content-Type-Options": "nosniff", + "x-ms-keyvault-network-info": "conn_type=Ipv4;addr=24.17.201.78;act_addr_fam=InterNetwork;", + "x-ms-keyvault-region": "eastus", + "x-ms-keyvault-service-version": "1.9.444.2", + "x-ms-request-id": "5c807ca7-6881-4edc-80fc-24b9fef120c6" + }, + "ResponseBody": { + "id": "https://fakevault/certificates/1374356525-0/pending", + "issuer": { + "name": "self" + }, + "csr": "MIICqDCCAZACAQAwGDEWMBQGA1UEAxMNRGVmYXVsdFBvbGljeTCCASIwDQYJKoZIhvcNAQEBBQADggEPADCCAQoCggEBAMqflblALjYyqNzOzCeBd8rIxbq4/58/vDytzm7E\u002B2ln69UV4LP\u002BS4A\u002BFuOU49R/Y3tKQp6Z7131vtsahGXzWOwNjpzDzE3eDIu5\u002BlvXj/zxdCbOE7Pkv0Yn9AS33mTt54a76uULA\u002BT6hRX2xhNhfmVDUzPPtEQHERPbQR9p/q0Hzgf1cmTorvnqaKr63jpSMubqeuG8XK9KDZM4Q1pOkP2gEqKY3xPvS\u002B2gR83gCEtyYhP1pWCR6lJX/ndh56R\u002BC8GGQY7vm4sYeTghtllkwxFNHNjaKoHfW\u002BdRB73d9W7hLtnLUfbQkQ\u002BUfarX7mo4QJm8te97rtC2c1VNiKkTv20CAwEAAaBLMEkGCSqGSIb3DQEJDjE8MDowDgYDVR0PAQH/BAQDAgWgMB0GA1UdJQQWMBQGCCsGAQUFBwMBBggrBgEFBQcDAjAJBgNVHRMEAjAAMA0GCSqGSIb3DQEBCwUAA4IBAQAsFDlHDduECKs2WaB5F0E4wsxJksoe70FnAuLzZ9vKCJ6CUSG2yUMTVoLImY7QqoB6LlhnlrqfxV0I\u002BE52qc7SPpGtm0q2fsPKOsT\u002BDqp6pZHLxR6hy/C0ekZgPjZMUuXQTc50lcCA/ZFpMIlzqYPGSIejjvDBCXfVSyv5uXpsrVmhZaoTGMM9/uenw7mC3N0nHhrdY1d7//mVqKO7GV1tCs2iHD2Otu13TuU6W5Qiva0Gvxlo58CHpNHwRLi4yBnwfO5zcJz1vY0u4GbQul5qQbIYBjVyLals6EctKpcnMJKzK9poddnvL0OK3Lnifu09JF1z/Q7bPu/4fly0\u002BECU", + "cancellation_requested": false, + "status": "inProgress", + "status_details": "Pending certificate created. Certificate request is in progress. This may take some time based on the issuer provider. Please check again later.", + "request_id": "011ed8cae88d412fbcf572b8669194b2" + } + }, + { + "RequestUri": "https://fakevault/certificates/1374356525-0/pending?api-version=7.3", + "RequestMethod": "GET", + "RequestHeaders": { + "Accept": "application/json", + "Accept-Encoding": "gzip", + "Authorization": "Sanitized", + "User-Agent": "azsdk-go-azcertificates/v0.5.0 (go1.18; linux)" + }, + "RequestBody": null, + "StatusCode": 200, + "ResponseHeaders": { + "Cache-Control": "no-cache", + "Content-Length": "1161", + "Content-Type": "application/json; charset=utf-8", + "Date": "Wed, 29 Jun 2022 23:07:55 GMT", + "Expires": "-1", + "Pragma": "no-cache", + "Strict-Transport-Security": "max-age=31536000;includeSubDomains", + "X-Content-Type-Options": "nosniff", + "x-ms-keyvault-network-info": "conn_type=Ipv4;addr=24.17.201.78;act_addr_fam=InterNetwork;", + "x-ms-keyvault-region": "eastus", + "x-ms-keyvault-service-version": "1.9.444.2", + "x-ms-request-id": "8e8bd41a-e936-487d-b94f-846de3d418c7" + }, + "ResponseBody": { + "id": "https://fakevault/certificates/1374356525-0/pending", + "issuer": { + "name": "self" + }, + "csr": "MIICqDCCAZACAQAwGDEWMBQGA1UEAxMNRGVmYXVsdFBvbGljeTCCASIwDQYJKoZIhvcNAQEBBQADggEPADCCAQoCggEBAMqflblALjYyqNzOzCeBd8rIxbq4/58/vDytzm7E\u002B2ln69UV4LP\u002BS4A\u002BFuOU49R/Y3tKQp6Z7131vtsahGXzWOwNjpzDzE3eDIu5\u002BlvXj/zxdCbOE7Pkv0Yn9AS33mTt54a76uULA\u002BT6hRX2xhNhfmVDUzPPtEQHERPbQR9p/q0Hzgf1cmTorvnqaKr63jpSMubqeuG8XK9KDZM4Q1pOkP2gEqKY3xPvS\u002B2gR83gCEtyYhP1pWCR6lJX/ndh56R\u002BC8GGQY7vm4sYeTghtllkwxFNHNjaKoHfW\u002BdRB73d9W7hLtnLUfbQkQ\u002BUfarX7mo4QJm8te97rtC2c1VNiKkTv20CAwEAAaBLMEkGCSqGSIb3DQEJDjE8MDowDgYDVR0PAQH/BAQDAgWgMB0GA1UdJQQWMBQGCCsGAQUFBwMBBggrBgEFBQcDAjAJBgNVHRMEAjAAMA0GCSqGSIb3DQEBCwUAA4IBAQAsFDlHDduECKs2WaB5F0E4wsxJksoe70FnAuLzZ9vKCJ6CUSG2yUMTVoLImY7QqoB6LlhnlrqfxV0I\u002BE52qc7SPpGtm0q2fsPKOsT\u002BDqp6pZHLxR6hy/C0ekZgPjZMUuXQTc50lcCA/ZFpMIlzqYPGSIejjvDBCXfVSyv5uXpsrVmhZaoTGMM9/uenw7mC3N0nHhrdY1d7//mVqKO7GV1tCs2iHD2Otu13TuU6W5Qiva0Gvxlo58CHpNHwRLi4yBnwfO5zcJz1vY0u4GbQul5qQbIYBjVyLals6EctKpcnMJKzK9poddnvL0OK3Lnifu09JF1z/Q7bPu/4fly0\u002BECU", + "cancellation_requested": false, + "status": "completed", + "target": "https://fakevault/certificates/1374356525-0", + "request_id": "011ed8cae88d412fbcf572b8669194b2" + } + }, + { + "RequestUri": "https://fakevault/certificates/1374356525-0/pending?api-version=7.3", + "RequestMethod": "GET", + "RequestHeaders": { + "Accept": "application/json", + "Accept-Encoding": "gzip", + "Authorization": "Sanitized", + "User-Agent": "azsdk-go-azcertificates/v0.5.0 (go1.18; linux)" + }, + "RequestBody": null, + "StatusCode": 200, + "ResponseHeaders": { + "Cache-Control": "no-cache", + "Content-Length": "1161", + "Content-Type": "application/json; charset=utf-8", + "Date": "Wed, 29 Jun 2022 23:08:01 GMT", + "Expires": "-1", + "Pragma": "no-cache", + "Strict-Transport-Security": "max-age=31536000;includeSubDomains", + "X-Content-Type-Options": "nosniff", + "x-ms-keyvault-network-info": "conn_type=Ipv4;addr=24.17.201.78;act_addr_fam=InterNetwork;", + "x-ms-keyvault-region": "eastus", + "x-ms-keyvault-service-version": "1.9.444.2", + "x-ms-request-id": "2e172e54-e34d-44d0-89b8-22502c753113" + }, + "ResponseBody": { + "id": "https://fakevault/certificates/1374356525-0/pending", + "issuer": { + "name": "self" + }, + "csr": "MIICqDCCAZACAQAwGDEWMBQGA1UEAxMNRGVmYXVsdFBvbGljeTCCASIwDQYJKoZIhvcNAQEBBQADggEPADCCAQoCggEBAMqflblALjYyqNzOzCeBd8rIxbq4/58/vDytzm7E\u002B2ln69UV4LP\u002BS4A\u002BFuOU49R/Y3tKQp6Z7131vtsahGXzWOwNjpzDzE3eDIu5\u002BlvXj/zxdCbOE7Pkv0Yn9AS33mTt54a76uULA\u002BT6hRX2xhNhfmVDUzPPtEQHERPbQR9p/q0Hzgf1cmTorvnqaKr63jpSMubqeuG8XK9KDZM4Q1pOkP2gEqKY3xPvS\u002B2gR83gCEtyYhP1pWCR6lJX/ndh56R\u002BC8GGQY7vm4sYeTghtllkwxFNHNjaKoHfW\u002BdRB73d9W7hLtnLUfbQkQ\u002BUfarX7mo4QJm8te97rtC2c1VNiKkTv20CAwEAAaBLMEkGCSqGSIb3DQEJDjE8MDowDgYDVR0PAQH/BAQDAgWgMB0GA1UdJQQWMBQGCCsGAQUFBwMBBggrBgEFBQcDAjAJBgNVHRMEAjAAMA0GCSqGSIb3DQEBCwUAA4IBAQAsFDlHDduECKs2WaB5F0E4wsxJksoe70FnAuLzZ9vKCJ6CUSG2yUMTVoLImY7QqoB6LlhnlrqfxV0I\u002BE52qc7SPpGtm0q2fsPKOsT\u002BDqp6pZHLxR6hy/C0ekZgPjZMUuXQTc50lcCA/ZFpMIlzqYPGSIejjvDBCXfVSyv5uXpsrVmhZaoTGMM9/uenw7mC3N0nHhrdY1d7//mVqKO7GV1tCs2iHD2Otu13TuU6W5Qiva0Gvxlo58CHpNHwRLi4yBnwfO5zcJz1vY0u4GbQul5qQbIYBjVyLals6EctKpcnMJKzK9poddnvL0OK3Lnifu09JF1z/Q7bPu/4fly0\u002BECU", + "cancellation_requested": false, + "status": "completed", + "target": "https://fakevault/certificates/1374356525-0", + "request_id": "011ed8cae88d412fbcf572b8669194b2" + } + }, + { + "RequestUri": "https://fakevault/certificates/1374356525-0/pending?api-version=7.3", + "RequestMethod": "GET", + "RequestHeaders": { + "Accept": "application/json", + "Accept-Encoding": "gzip", + "Authorization": "Sanitized", + "User-Agent": "azsdk-go-azcertificates/v0.5.0 (go1.18; linux)" + }, + "RequestBody": null, + "StatusCode": 200, + "ResponseHeaders": { + "Cache-Control": "no-cache", + "Content-Length": "1161", + "Content-Type": "application/json; charset=utf-8", + "Date": "Wed, 29 Jun 2022 23:08:06 GMT", + "Expires": "-1", + "Pragma": "no-cache", + "Strict-Transport-Security": "max-age=31536000;includeSubDomains", + "X-Content-Type-Options": "nosniff", + "x-ms-keyvault-network-info": "conn_type=Ipv4;addr=24.17.201.78;act_addr_fam=InterNetwork;", + "x-ms-keyvault-region": "eastus", + "x-ms-keyvault-service-version": "1.9.444.2", + "x-ms-request-id": "2a7bd670-188a-4f2f-8903-3a37bac17218" + }, + "ResponseBody": { + "id": "https://fakevault/certificates/1374356525-0/pending", + "issuer": { + "name": "self" + }, + "csr": "MIICqDCCAZACAQAwGDEWMBQGA1UEAxMNRGVmYXVsdFBvbGljeTCCASIwDQYJKoZIhvcNAQEBBQADggEPADCCAQoCggEBAMqflblALjYyqNzOzCeBd8rIxbq4/58/vDytzm7E\u002B2ln69UV4LP\u002BS4A\u002BFuOU49R/Y3tKQp6Z7131vtsahGXzWOwNjpzDzE3eDIu5\u002BlvXj/zxdCbOE7Pkv0Yn9AS33mTt54a76uULA\u002BT6hRX2xhNhfmVDUzPPtEQHERPbQR9p/q0Hzgf1cmTorvnqaKr63jpSMubqeuG8XK9KDZM4Q1pOkP2gEqKY3xPvS\u002B2gR83gCEtyYhP1pWCR6lJX/ndh56R\u002BC8GGQY7vm4sYeTghtllkwxFNHNjaKoHfW\u002BdRB73d9W7hLtnLUfbQkQ\u002BUfarX7mo4QJm8te97rtC2c1VNiKkTv20CAwEAAaBLMEkGCSqGSIb3DQEJDjE8MDowDgYDVR0PAQH/BAQDAgWgMB0GA1UdJQQWMBQGCCsGAQUFBwMBBggrBgEFBQcDAjAJBgNVHRMEAjAAMA0GCSqGSIb3DQEBCwUAA4IBAQAsFDlHDduECKs2WaB5F0E4wsxJksoe70FnAuLzZ9vKCJ6CUSG2yUMTVoLImY7QqoB6LlhnlrqfxV0I\u002BE52qc7SPpGtm0q2fsPKOsT\u002BDqp6pZHLxR6hy/C0ekZgPjZMUuXQTc50lcCA/ZFpMIlzqYPGSIejjvDBCXfVSyv5uXpsrVmhZaoTGMM9/uenw7mC3N0nHhrdY1d7//mVqKO7GV1tCs2iHD2Otu13TuU6W5Qiva0Gvxlo58CHpNHwRLi4yBnwfO5zcJz1vY0u4GbQul5qQbIYBjVyLals6EctKpcnMJKzK9poddnvL0OK3Lnifu09JF1z/Q7bPu/4fly0\u002BECU", + "cancellation_requested": false, + "status": "completed", + "target": "https://fakevault/certificates/1374356525-0", + "request_id": "011ed8cae88d412fbcf572b8669194b2" + } + }, + { + "RequestUri": "https://fakevault/certificates/1374356525-0/pending?api-version=7.3", + "RequestMethod": "GET", + "RequestHeaders": { + "Accept": "application/json", + "Accept-Encoding": "gzip", + "Authorization": "Sanitized", + "User-Agent": "azsdk-go-azcertificates/v0.5.0 (go1.18; linux)" + }, + "RequestBody": null, + "StatusCode": 200, + "ResponseHeaders": { + "Cache-Control": "no-cache", + "Content-Length": "1161", + "Content-Type": "application/json; charset=utf-8", + "Date": "Wed, 29 Jun 2022 23:08:11 GMT", + "Expires": "-1", + "Pragma": "no-cache", + "Strict-Transport-Security": "max-age=31536000;includeSubDomains", + "X-Content-Type-Options": "nosniff", + "x-ms-keyvault-network-info": "conn_type=Ipv4;addr=24.17.201.78;act_addr_fam=InterNetwork;", + "x-ms-keyvault-region": "eastus", + "x-ms-keyvault-service-version": "1.9.444.2", + "x-ms-request-id": "005aac90-62a4-4818-a4b6-18b95791ca97" + }, + "ResponseBody": { + "id": "https://fakevault/certificates/1374356525-0/pending", + "issuer": { + "name": "self" + }, + "csr": "MIICqDCCAZACAQAwGDEWMBQGA1UEAxMNRGVmYXVsdFBvbGljeTCCASIwDQYJKoZIhvcNAQEBBQADggEPADCCAQoCggEBAMqflblALjYyqNzOzCeBd8rIxbq4/58/vDytzm7E\u002B2ln69UV4LP\u002BS4A\u002BFuOU49R/Y3tKQp6Z7131vtsahGXzWOwNjpzDzE3eDIu5\u002BlvXj/zxdCbOE7Pkv0Yn9AS33mTt54a76uULA\u002BT6hRX2xhNhfmVDUzPPtEQHERPbQR9p/q0Hzgf1cmTorvnqaKr63jpSMubqeuG8XK9KDZM4Q1pOkP2gEqKY3xPvS\u002B2gR83gCEtyYhP1pWCR6lJX/ndh56R\u002BC8GGQY7vm4sYeTghtllkwxFNHNjaKoHfW\u002BdRB73d9W7hLtnLUfbQkQ\u002BUfarX7mo4QJm8te97rtC2c1VNiKkTv20CAwEAAaBLMEkGCSqGSIb3DQEJDjE8MDowDgYDVR0PAQH/BAQDAgWgMB0GA1UdJQQWMBQGCCsGAQUFBwMBBggrBgEFBQcDAjAJBgNVHRMEAjAAMA0GCSqGSIb3DQEBCwUAA4IBAQAsFDlHDduECKs2WaB5F0E4wsxJksoe70FnAuLzZ9vKCJ6CUSG2yUMTVoLImY7QqoB6LlhnlrqfxV0I\u002BE52qc7SPpGtm0q2fsPKOsT\u002BDqp6pZHLxR6hy/C0ekZgPjZMUuXQTc50lcCA/ZFpMIlzqYPGSIejjvDBCXfVSyv5uXpsrVmhZaoTGMM9/uenw7mC3N0nHhrdY1d7//mVqKO7GV1tCs2iHD2Otu13TuU6W5Qiva0Gvxlo58CHpNHwRLi4yBnwfO5zcJz1vY0u4GbQul5qQbIYBjVyLals6EctKpcnMJKzK9poddnvL0OK3Lnifu09JF1z/Q7bPu/4fly0\u002BECU", + "cancellation_requested": false, + "status": "completed", + "target": "https://fakevault/certificates/1374356525-0", + "request_id": "011ed8cae88d412fbcf572b8669194b2" + } + }, + { + "RequestUri": "https://fakevault/certificates/1374356525-1/pending?api-version=7.3", + "RequestMethod": "GET", + "RequestHeaders": { + "Accept": "application/json", + "Accept-Encoding": "gzip", + "Authorization": "Sanitized", + "User-Agent": "azsdk-go-azcertificates/v0.5.0 (go1.18; linux)" + }, + "RequestBody": null, + "StatusCode": 200, + "ResponseHeaders": { + "Cache-Control": "no-cache", + "Content-Length": "1161", + "Content-Type": "application/json; charset=utf-8", + "Date": "Wed, 29 Jun 2022 23:08:11 GMT", + "Expires": "-1", + "Pragma": "no-cache", + "Strict-Transport-Security": "max-age=31536000;includeSubDomains", + "X-Content-Type-Options": "nosniff", + "x-ms-keyvault-network-info": "conn_type=Ipv4;addr=24.17.201.78;act_addr_fam=InterNetwork;", + "x-ms-keyvault-region": "eastus", + "x-ms-keyvault-service-version": "1.9.444.2", + "x-ms-request-id": "8596a897-ce7b-430f-a31b-34c376bf7a64" + }, + "ResponseBody": { + "id": "https://fakevault/certificates/1374356525-1/pending", + "issuer": { + "name": "self" + }, + "csr": "MIICqDCCAZACAQAwGDEWMBQGA1UEAxMNRGVmYXVsdFBvbGljeTCCASIwDQYJKoZIhvcNAQEBBQADggEPADCCAQoCggEBAMQVgk7O4ETVoxr7IXi31g7HrHPEfwc3uNBhZsds/kw6/hPwlnqdAM6GfAFw0QX6ggYRCYgCftgKvIjiWkTjTUtuSZeFbLuCM1V6QJjbi1Z5iGqFTayWKZKYLh4rfPH\u002BqPyFovr4SxfRk8CNFvTVQQamna5dZMxBn1MzrO65SuYSFIW2Dzq4VMWW0Jh0hyd3/adbEatbtbQ9L3qGxwijHLk\u002B7iAkYjYKU8ucVoy87KwK8UK6mhRzrfYKIQozqSX2F6thEBSNBcVS7esjX6Oe7JiqHhksTVkuHRBCovd5rnAiSw4oyKJqzosG5ewIhEBrVeKKU5ORes19emyYSodTTuUCAwEAAaBLMEkGCSqGSIb3DQEJDjE8MDowDgYDVR0PAQH/BAQDAgWgMB0GA1UdJQQWMBQGCCsGAQUFBwMBBggrBgEFBQcDAjAJBgNVHRMEAjAAMA0GCSqGSIb3DQEBCwUAA4IBAQBQ7JIWlcc\u002BPP2HgBSCfokU\u002B02kfI0pRQPNLMMtxLX2YWeuTNYl/NR1Y3ztjrNiow3cvKk5qABp5bsc9/TbNhpGH2HN4NFvxwHFhGIcigORvFy/fTksdECzSD/s3faMjJgxmED\u002Bm7TcXtbJCNtIemo7WbsPTqdBVfF/jYGWazI8m\u002B17kcUuXHlvc7qZL9A1wtCa7zVyzl1IaOZi\u002Bmxmw6vi5n1hVPTq\u002BpkCmEgb43\u002B3NeOKDuF4dHHBb0\u002B2HdbveONHxsuCJIuaqhZD948iUui78UWhxLDqQ2QWJxxW/2bk/SFaTVqv03Ouv3tjaLskdRhduofdQM38wYyL7KWPsDXO", + "cancellation_requested": false, + "status": "completed", + "target": "https://fakevault/certificates/1374356525-1", + "request_id": "e00ae4c5ba3f484381446585ecc45551" + } + }, + { + "RequestUri": "https://fakevault/certificates/1374356525-1/pending?api-version=7.3", + "RequestMethod": "GET", + "RequestHeaders": { + "Accept": "application/json", + "Accept-Encoding": "gzip", + "Authorization": "Sanitized", + "User-Agent": "azsdk-go-azcertificates/v0.5.0 (go1.18; linux)" + }, + "RequestBody": null, + "StatusCode": 200, + "ResponseHeaders": { + "Cache-Control": "no-cache", + "Content-Length": "1161", + "Content-Type": "application/json; charset=utf-8", + "Date": "Wed, 29 Jun 2022 23:08:17 GMT", + "Expires": "-1", + "Pragma": "no-cache", + "Strict-Transport-Security": "max-age=31536000;includeSubDomains", + "X-Content-Type-Options": "nosniff", + "x-ms-keyvault-network-info": "conn_type=Ipv4;addr=24.17.201.78;act_addr_fam=InterNetwork;", + "x-ms-keyvault-region": "eastus", + "x-ms-keyvault-service-version": "1.9.444.2", + "x-ms-request-id": "22d71d2e-3f07-4f5b-bc71-e95463c5c6b6" + }, + "ResponseBody": { + "id": "https://fakevault/certificates/1374356525-1/pending", + "issuer": { + "name": "self" + }, + "csr": "MIICqDCCAZACAQAwGDEWMBQGA1UEAxMNRGVmYXVsdFBvbGljeTCCASIwDQYJKoZIhvcNAQEBBQADggEPADCCAQoCggEBAMQVgk7O4ETVoxr7IXi31g7HrHPEfwc3uNBhZsds/kw6/hPwlnqdAM6GfAFw0QX6ggYRCYgCftgKvIjiWkTjTUtuSZeFbLuCM1V6QJjbi1Z5iGqFTayWKZKYLh4rfPH\u002BqPyFovr4SxfRk8CNFvTVQQamna5dZMxBn1MzrO65SuYSFIW2Dzq4VMWW0Jh0hyd3/adbEatbtbQ9L3qGxwijHLk\u002B7iAkYjYKU8ucVoy87KwK8UK6mhRzrfYKIQozqSX2F6thEBSNBcVS7esjX6Oe7JiqHhksTVkuHRBCovd5rnAiSw4oyKJqzosG5ewIhEBrVeKKU5ORes19emyYSodTTuUCAwEAAaBLMEkGCSqGSIb3DQEJDjE8MDowDgYDVR0PAQH/BAQDAgWgMB0GA1UdJQQWMBQGCCsGAQUFBwMBBggrBgEFBQcDAjAJBgNVHRMEAjAAMA0GCSqGSIb3DQEBCwUAA4IBAQBQ7JIWlcc\u002BPP2HgBSCfokU\u002B02kfI0pRQPNLMMtxLX2YWeuTNYl/NR1Y3ztjrNiow3cvKk5qABp5bsc9/TbNhpGH2HN4NFvxwHFhGIcigORvFy/fTksdECzSD/s3faMjJgxmED\u002Bm7TcXtbJCNtIemo7WbsPTqdBVfF/jYGWazI8m\u002B17kcUuXHlvc7qZL9A1wtCa7zVyzl1IaOZi\u002Bmxmw6vi5n1hVPTq\u002BpkCmEgb43\u002B3NeOKDuF4dHHBb0\u002B2HdbveONHxsuCJIuaqhZD948iUui78UWhxLDqQ2QWJxxW/2bk/SFaTVqv03Ouv3tjaLskdRhduofdQM38wYyL7KWPsDXO", + "cancellation_requested": false, + "status": "completed", + "target": "https://fakevault/certificates/1374356525-1", + "request_id": "e00ae4c5ba3f484381446585ecc45551" + } + }, + { + "RequestUri": "https://fakevault/certificates/1374356525-1/pending?api-version=7.3", + "RequestMethod": "GET", + "RequestHeaders": { + "Accept": "application/json", + "Accept-Encoding": "gzip", + "Authorization": "Sanitized", + "User-Agent": "azsdk-go-azcertificates/v0.5.0 (go1.18; linux)" + }, + "RequestBody": null, + "StatusCode": 200, + "ResponseHeaders": { + "Cache-Control": "no-cache", + "Content-Length": "1161", + "Content-Type": "application/json; charset=utf-8", + "Date": "Wed, 29 Jun 2022 23:08:22 GMT", + "Expires": "-1", + "Pragma": "no-cache", + "Strict-Transport-Security": "max-age=31536000;includeSubDomains", + "X-Content-Type-Options": "nosniff", + "x-ms-keyvault-network-info": "conn_type=Ipv4;addr=24.17.201.78;act_addr_fam=InterNetwork;", + "x-ms-keyvault-region": "eastus", + "x-ms-keyvault-service-version": "1.9.444.2", + "x-ms-request-id": "91e8cc73-c107-48c1-b912-4c17f41120b6" + }, + "ResponseBody": { + "id": "https://fakevault/certificates/1374356525-1/pending", + "issuer": { + "name": "self" + }, + "csr": "MIICqDCCAZACAQAwGDEWMBQGA1UEAxMNRGVmYXVsdFBvbGljeTCCASIwDQYJKoZIhvcNAQEBBQADggEPADCCAQoCggEBAMQVgk7O4ETVoxr7IXi31g7HrHPEfwc3uNBhZsds/kw6/hPwlnqdAM6GfAFw0QX6ggYRCYgCftgKvIjiWkTjTUtuSZeFbLuCM1V6QJjbi1Z5iGqFTayWKZKYLh4rfPH\u002BqPyFovr4SxfRk8CNFvTVQQamna5dZMxBn1MzrO65SuYSFIW2Dzq4VMWW0Jh0hyd3/adbEatbtbQ9L3qGxwijHLk\u002B7iAkYjYKU8ucVoy87KwK8UK6mhRzrfYKIQozqSX2F6thEBSNBcVS7esjX6Oe7JiqHhksTVkuHRBCovd5rnAiSw4oyKJqzosG5ewIhEBrVeKKU5ORes19emyYSodTTuUCAwEAAaBLMEkGCSqGSIb3DQEJDjE8MDowDgYDVR0PAQH/BAQDAgWgMB0GA1UdJQQWMBQGCCsGAQUFBwMBBggrBgEFBQcDAjAJBgNVHRMEAjAAMA0GCSqGSIb3DQEBCwUAA4IBAQBQ7JIWlcc\u002BPP2HgBSCfokU\u002B02kfI0pRQPNLMMtxLX2YWeuTNYl/NR1Y3ztjrNiow3cvKk5qABp5bsc9/TbNhpGH2HN4NFvxwHFhGIcigORvFy/fTksdECzSD/s3faMjJgxmED\u002Bm7TcXtbJCNtIemo7WbsPTqdBVfF/jYGWazI8m\u002B17kcUuXHlvc7qZL9A1wtCa7zVyzl1IaOZi\u002Bmxmw6vi5n1hVPTq\u002BpkCmEgb43\u002B3NeOKDuF4dHHBb0\u002B2HdbveONHxsuCJIuaqhZD948iUui78UWhxLDqQ2QWJxxW/2bk/SFaTVqv03Ouv3tjaLskdRhduofdQM38wYyL7KWPsDXO", + "cancellation_requested": false, + "status": "completed", + "target": "https://fakevault/certificates/1374356525-1", + "request_id": "e00ae4c5ba3f484381446585ecc45551" + } + }, + { + "RequestUri": "https://fakevault/certificates/1374356525-1/pending?api-version=7.3", + "RequestMethod": "GET", + "RequestHeaders": { + "Accept": "application/json", + "Accept-Encoding": "gzip", + "Authorization": "Sanitized", + "User-Agent": "azsdk-go-azcertificates/v0.5.0 (go1.18; linux)" + }, + "RequestBody": null, + "StatusCode": 200, + "ResponseHeaders": { + "Cache-Control": "no-cache", + "Content-Length": "1161", + "Content-Type": "application/json; charset=utf-8", + "Date": "Wed, 29 Jun 2022 23:08:27 GMT", + "Expires": "-1", + "Pragma": "no-cache", + "Strict-Transport-Security": "max-age=31536000;includeSubDomains", + "X-Content-Type-Options": "nosniff", + "x-ms-keyvault-network-info": "conn_type=Ipv4;addr=24.17.201.78;act_addr_fam=InterNetwork;", + "x-ms-keyvault-region": "eastus", + "x-ms-keyvault-service-version": "1.9.444.2", + "x-ms-request-id": "9dcff39d-498d-4ea8-b900-c5e59234c9b1" + }, + "ResponseBody": { + "id": "https://fakevault/certificates/1374356525-1/pending", + "issuer": { + "name": "self" + }, + "csr": "MIICqDCCAZACAQAwGDEWMBQGA1UEAxMNRGVmYXVsdFBvbGljeTCCASIwDQYJKoZIhvcNAQEBBQADggEPADCCAQoCggEBAMQVgk7O4ETVoxr7IXi31g7HrHPEfwc3uNBhZsds/kw6/hPwlnqdAM6GfAFw0QX6ggYRCYgCftgKvIjiWkTjTUtuSZeFbLuCM1V6QJjbi1Z5iGqFTayWKZKYLh4rfPH\u002BqPyFovr4SxfRk8CNFvTVQQamna5dZMxBn1MzrO65SuYSFIW2Dzq4VMWW0Jh0hyd3/adbEatbtbQ9L3qGxwijHLk\u002B7iAkYjYKU8ucVoy87KwK8UK6mhRzrfYKIQozqSX2F6thEBSNBcVS7esjX6Oe7JiqHhksTVkuHRBCovd5rnAiSw4oyKJqzosG5ewIhEBrVeKKU5ORes19emyYSodTTuUCAwEAAaBLMEkGCSqGSIb3DQEJDjE8MDowDgYDVR0PAQH/BAQDAgWgMB0GA1UdJQQWMBQGCCsGAQUFBwMBBggrBgEFBQcDAjAJBgNVHRMEAjAAMA0GCSqGSIb3DQEBCwUAA4IBAQBQ7JIWlcc\u002BPP2HgBSCfokU\u002B02kfI0pRQPNLMMtxLX2YWeuTNYl/NR1Y3ztjrNiow3cvKk5qABp5bsc9/TbNhpGH2HN4NFvxwHFhGIcigORvFy/fTksdECzSD/s3faMjJgxmED\u002Bm7TcXtbJCNtIemo7WbsPTqdBVfF/jYGWazI8m\u002B17kcUuXHlvc7qZL9A1wtCa7zVyzl1IaOZi\u002Bmxmw6vi5n1hVPTq\u002BpkCmEgb43\u002B3NeOKDuF4dHHBb0\u002B2HdbveONHxsuCJIuaqhZD948iUui78UWhxLDqQ2QWJxxW/2bk/SFaTVqv03Ouv3tjaLskdRhduofdQM38wYyL7KWPsDXO", + "cancellation_requested": false, + "status": "completed", + "target": "https://fakevault/certificates/1374356525-1", + "request_id": "e00ae4c5ba3f484381446585ecc45551" + } + }, + { + "RequestUri": "https://fakevault/certificates/1374356525-1/pending?api-version=7.3", + "RequestMethod": "GET", + "RequestHeaders": { + "Accept": "application/json", + "Accept-Encoding": "gzip", + "Authorization": "Sanitized", + "User-Agent": "azsdk-go-azcertificates/v0.5.0 (go1.18; linux)" + }, + "RequestBody": null, + "StatusCode": 200, + "ResponseHeaders": { + "Cache-Control": "no-cache", + "Content-Length": "1161", + "Content-Type": "application/json; charset=utf-8", + "Date": "Wed, 29 Jun 2022 23:08:32 GMT", + "Expires": "-1", + "Pragma": "no-cache", + "Strict-Transport-Security": "max-age=31536000;includeSubDomains", + "X-Content-Type-Options": "nosniff", + "x-ms-keyvault-network-info": "conn_type=Ipv4;addr=24.17.201.78;act_addr_fam=InterNetwork;", + "x-ms-keyvault-region": "eastus", + "x-ms-keyvault-service-version": "1.9.444.2", + "x-ms-request-id": "eed0d034-f05b-4719-9314-f1f6cd81c6e7" + }, + "ResponseBody": { + "id": "https://fakevault/certificates/1374356525-1/pending", + "issuer": { + "name": "self" + }, + "csr": "MIICqDCCAZACAQAwGDEWMBQGA1UEAxMNRGVmYXVsdFBvbGljeTCCASIwDQYJKoZIhvcNAQEBBQADggEPADCCAQoCggEBAMQVgk7O4ETVoxr7IXi31g7HrHPEfwc3uNBhZsds/kw6/hPwlnqdAM6GfAFw0QX6ggYRCYgCftgKvIjiWkTjTUtuSZeFbLuCM1V6QJjbi1Z5iGqFTayWKZKYLh4rfPH\u002BqPyFovr4SxfRk8CNFvTVQQamna5dZMxBn1MzrO65SuYSFIW2Dzq4VMWW0Jh0hyd3/adbEatbtbQ9L3qGxwijHLk\u002B7iAkYjYKU8ucVoy87KwK8UK6mhRzrfYKIQozqSX2F6thEBSNBcVS7esjX6Oe7JiqHhksTVkuHRBCovd5rnAiSw4oyKJqzosG5ewIhEBrVeKKU5ORes19emyYSodTTuUCAwEAAaBLMEkGCSqGSIb3DQEJDjE8MDowDgYDVR0PAQH/BAQDAgWgMB0GA1UdJQQWMBQGCCsGAQUFBwMBBggrBgEFBQcDAjAJBgNVHRMEAjAAMA0GCSqGSIb3DQEBCwUAA4IBAQBQ7JIWlcc\u002BPP2HgBSCfokU\u002B02kfI0pRQPNLMMtxLX2YWeuTNYl/NR1Y3ztjrNiow3cvKk5qABp5bsc9/TbNhpGH2HN4NFvxwHFhGIcigORvFy/fTksdECzSD/s3faMjJgxmED\u002Bm7TcXtbJCNtIemo7WbsPTqdBVfF/jYGWazI8m\u002B17kcUuXHlvc7qZL9A1wtCa7zVyzl1IaOZi\u002Bmxmw6vi5n1hVPTq\u002BpkCmEgb43\u002B3NeOKDuF4dHHBb0\u002B2HdbveONHxsuCJIuaqhZD948iUui78UWhxLDqQ2QWJxxW/2bk/SFaTVqv03Ouv3tjaLskdRhduofdQM38wYyL7KWPsDXO", + "cancellation_requested": false, + "status": "completed", + "target": "https://fakevault/certificates/1374356525-1", + "request_id": "e00ae4c5ba3f484381446585ecc45551" + } + }, + { + "RequestUri": "https://fakevault/certificates/1374356525-2/pending?api-version=7.3", + "RequestMethod": "GET", + "RequestHeaders": { + "Accept": "application/json", + "Accept-Encoding": "gzip", + "Authorization": "Sanitized", + "User-Agent": "azsdk-go-azcertificates/v0.5.0 (go1.18; linux)" + }, + "RequestBody": null, + "StatusCode": 200, + "ResponseHeaders": { + "Cache-Control": "no-cache", + "Content-Length": "1161", + "Content-Type": "application/json; charset=utf-8", + "Date": "Wed, 29 Jun 2022 23:08:33 GMT", + "Expires": "-1", + "Pragma": "no-cache", + "Strict-Transport-Security": "max-age=31536000;includeSubDomains", + "X-Content-Type-Options": "nosniff", + "x-ms-keyvault-network-info": "conn_type=Ipv4;addr=24.17.201.78;act_addr_fam=InterNetwork;", + "x-ms-keyvault-region": "eastus", + "x-ms-keyvault-service-version": "1.9.444.2", + "x-ms-request-id": "8601de03-2bff-4ad2-9b9a-c7a417953818" + }, + "ResponseBody": { + "id": "https://fakevault/certificates/1374356525-2/pending", + "issuer": { + "name": "self" + }, + "csr": "MIICqDCCAZACAQAwGDEWMBQGA1UEAxMNRGVmYXVsdFBvbGljeTCCASIwDQYJKoZIhvcNAQEBBQADggEPADCCAQoCggEBAPqy7PWnxnNSMWP1Am3QQ6sU4tsB5LyJDhKLzN2rbVTtCCD8KATxfuh/zkhWAkKMQEk0LnAfv9fNih9OzCVtfJdYZaxxR38WBFcbQAAMJ0osECqPM5ggvC5CT59g3gA/v7mcIQVnMhXBqPKUV7qq/cACbeLAw/2gsM7jctUKXP\u002Balo/tg7rAgk5vsBS/066e55e\u002B1AUatnwxWI0fl4eR4VuYKFu\u002BKPvQtIkXhwGnCkyZ1sfmnHymVVC6oH54zRJPHNQLfFvP9HSBkSzt5yVTdH9YOdy6KP5tUBtT4ZtGPowSB4D3Q77KrSFsE7xbda402weSD7XchcaDdY/sTRu24n0CAwEAAaBLMEkGCSqGSIb3DQEJDjE8MDowDgYDVR0PAQH/BAQDAgWgMB0GA1UdJQQWMBQGCCsGAQUFBwMBBggrBgEFBQcDAjAJBgNVHRMEAjAAMA0GCSqGSIb3DQEBCwUAA4IBAQA8WC93byihxzPusRIkk9vjwsvCOAvOJUMYYi3t/1Y0yqwJpG0gITvtwBaxM/LF/RNAw\u002BVqzoiQPWtF4QMD5yTxk2QsxNPnpBl\u002B/zR3vVFaRRK5WTSR3GIMevp5HoLu9qchcLjyDBlGqyjNCANzOzPuJNRdkc1ZvA0f4Ieqd910PHKKqTwWIRUYkngngcoFAyp0Y68pqkSDbCVqdHDDDZuFmKWEd5\u002BlK77f7SXxfyxEv43uhF0saVggbqXDOL05AsuiK1t0WqwNE9IzpMsYUBRJl/W84k4vB3i4WVsTq7db3moqJuCZtOBssI2Kfp7Up\u002B9eAGyU7CSsx4kJeIpiA6jh", + "cancellation_requested": false, + "status": "completed", + "target": "https://fakevault/certificates/1374356525-2", + "request_id": "f8a3a09eda414084bd63f27f0e96c86b" + } + }, + { + "RequestUri": "https://fakevault/certificates/1374356525-2/pending?api-version=7.3", + "RequestMethod": "GET", + "RequestHeaders": { + "Accept": "application/json", + "Accept-Encoding": "gzip", + "Authorization": "Sanitized", + "User-Agent": "azsdk-go-azcertificates/v0.5.0 (go1.18; linux)" + }, + "RequestBody": null, + "StatusCode": 200, + "ResponseHeaders": { + "Cache-Control": "no-cache", + "Content-Length": "1161", + "Content-Type": "application/json; charset=utf-8", + "Date": "Wed, 29 Jun 2022 23:08:38 GMT", + "Expires": "-1", + "Pragma": "no-cache", + "Strict-Transport-Security": "max-age=31536000;includeSubDomains", + "X-Content-Type-Options": "nosniff", + "x-ms-keyvault-network-info": "conn_type=Ipv4;addr=24.17.201.78;act_addr_fam=InterNetwork;", + "x-ms-keyvault-region": "eastus", + "x-ms-keyvault-service-version": "1.9.444.2", + "x-ms-request-id": "9b1cb700-db51-4fec-8640-287f9f11c7ea" + }, + "ResponseBody": { + "id": "https://fakevault/certificates/1374356525-2/pending", + "issuer": { + "name": "self" + }, + "csr": "MIICqDCCAZACAQAwGDEWMBQGA1UEAxMNRGVmYXVsdFBvbGljeTCCASIwDQYJKoZIhvcNAQEBBQADggEPADCCAQoCggEBAPqy7PWnxnNSMWP1Am3QQ6sU4tsB5LyJDhKLzN2rbVTtCCD8KATxfuh/zkhWAkKMQEk0LnAfv9fNih9OzCVtfJdYZaxxR38WBFcbQAAMJ0osECqPM5ggvC5CT59g3gA/v7mcIQVnMhXBqPKUV7qq/cACbeLAw/2gsM7jctUKXP\u002Balo/tg7rAgk5vsBS/066e55e\u002B1AUatnwxWI0fl4eR4VuYKFu\u002BKPvQtIkXhwGnCkyZ1sfmnHymVVC6oH54zRJPHNQLfFvP9HSBkSzt5yVTdH9YOdy6KP5tUBtT4ZtGPowSB4D3Q77KrSFsE7xbda402weSD7XchcaDdY/sTRu24n0CAwEAAaBLMEkGCSqGSIb3DQEJDjE8MDowDgYDVR0PAQH/BAQDAgWgMB0GA1UdJQQWMBQGCCsGAQUFBwMBBggrBgEFBQcDAjAJBgNVHRMEAjAAMA0GCSqGSIb3DQEBCwUAA4IBAQA8WC93byihxzPusRIkk9vjwsvCOAvOJUMYYi3t/1Y0yqwJpG0gITvtwBaxM/LF/RNAw\u002BVqzoiQPWtF4QMD5yTxk2QsxNPnpBl\u002B/zR3vVFaRRK5WTSR3GIMevp5HoLu9qchcLjyDBlGqyjNCANzOzPuJNRdkc1ZvA0f4Ieqd910PHKKqTwWIRUYkngngcoFAyp0Y68pqkSDbCVqdHDDDZuFmKWEd5\u002BlK77f7SXxfyxEv43uhF0saVggbqXDOL05AsuiK1t0WqwNE9IzpMsYUBRJl/W84k4vB3i4WVsTq7db3moqJuCZtOBssI2Kfp7Up\u002B9eAGyU7CSsx4kJeIpiA6jh", + "cancellation_requested": false, + "status": "completed", + "target": "https://fakevault/certificates/1374356525-2", + "request_id": "f8a3a09eda414084bd63f27f0e96c86b" + } + }, + { + "RequestUri": "https://fakevault/certificates/1374356525-2/pending?api-version=7.3", + "RequestMethod": "GET", + "RequestHeaders": { + "Accept": "application/json", + "Accept-Encoding": "gzip", + "Authorization": "Sanitized", + "User-Agent": "azsdk-go-azcertificates/v0.5.0 (go1.18; linux)" + }, + "RequestBody": null, + "StatusCode": 200, + "ResponseHeaders": { + "Cache-Control": "no-cache", + "Content-Length": "1161", + "Content-Type": "application/json; charset=utf-8", + "Date": "Wed, 29 Jun 2022 23:08:43 GMT", + "Expires": "-1", + "Pragma": "no-cache", + "Strict-Transport-Security": "max-age=31536000;includeSubDomains", + "X-Content-Type-Options": "nosniff", + "x-ms-keyvault-network-info": "conn_type=Ipv4;addr=24.17.201.78;act_addr_fam=InterNetwork;", + "x-ms-keyvault-region": "eastus", + "x-ms-keyvault-service-version": "1.9.444.2", + "x-ms-request-id": "f6162afe-fa69-4337-a46f-440d7e788043" + }, + "ResponseBody": { + "id": "https://fakevault/certificates/1374356525-2/pending", + "issuer": { + "name": "self" + }, + "csr": "MIICqDCCAZACAQAwGDEWMBQGA1UEAxMNRGVmYXVsdFBvbGljeTCCASIwDQYJKoZIhvcNAQEBBQADggEPADCCAQoCggEBAPqy7PWnxnNSMWP1Am3QQ6sU4tsB5LyJDhKLzN2rbVTtCCD8KATxfuh/zkhWAkKMQEk0LnAfv9fNih9OzCVtfJdYZaxxR38WBFcbQAAMJ0osECqPM5ggvC5CT59g3gA/v7mcIQVnMhXBqPKUV7qq/cACbeLAw/2gsM7jctUKXP\u002Balo/tg7rAgk5vsBS/066e55e\u002B1AUatnwxWI0fl4eR4VuYKFu\u002BKPvQtIkXhwGnCkyZ1sfmnHymVVC6oH54zRJPHNQLfFvP9HSBkSzt5yVTdH9YOdy6KP5tUBtT4ZtGPowSB4D3Q77KrSFsE7xbda402weSD7XchcaDdY/sTRu24n0CAwEAAaBLMEkGCSqGSIb3DQEJDjE8MDowDgYDVR0PAQH/BAQDAgWgMB0GA1UdJQQWMBQGCCsGAQUFBwMBBggrBgEFBQcDAjAJBgNVHRMEAjAAMA0GCSqGSIb3DQEBCwUAA4IBAQA8WC93byihxzPusRIkk9vjwsvCOAvOJUMYYi3t/1Y0yqwJpG0gITvtwBaxM/LF/RNAw\u002BVqzoiQPWtF4QMD5yTxk2QsxNPnpBl\u002B/zR3vVFaRRK5WTSR3GIMevp5HoLu9qchcLjyDBlGqyjNCANzOzPuJNRdkc1ZvA0f4Ieqd910PHKKqTwWIRUYkngngcoFAyp0Y68pqkSDbCVqdHDDDZuFmKWEd5\u002BlK77f7SXxfyxEv43uhF0saVggbqXDOL05AsuiK1t0WqwNE9IzpMsYUBRJl/W84k4vB3i4WVsTq7db3moqJuCZtOBssI2Kfp7Up\u002B9eAGyU7CSsx4kJeIpiA6jh", + "cancellation_requested": false, + "status": "completed", + "target": "https://fakevault/certificates/1374356525-2", + "request_id": "f8a3a09eda414084bd63f27f0e96c86b" + } + }, + { + "RequestUri": "https://fakevault/certificates/1374356525-2/pending?api-version=7.3", + "RequestMethod": "GET", + "RequestHeaders": { + "Accept": "application/json", + "Accept-Encoding": "gzip", + "Authorization": "Sanitized", + "User-Agent": "azsdk-go-azcertificates/v0.5.0 (go1.18; linux)" + }, + "RequestBody": null, + "StatusCode": 200, + "ResponseHeaders": { + "Cache-Control": "no-cache", + "Content-Length": "1161", + "Content-Type": "application/json; charset=utf-8", + "Date": "Wed, 29 Jun 2022 23:08:49 GMT", + "Expires": "-1", + "Pragma": "no-cache", + "Strict-Transport-Security": "max-age=31536000;includeSubDomains", + "X-Content-Type-Options": "nosniff", + "x-ms-keyvault-network-info": "conn_type=Ipv4;addr=24.17.201.78;act_addr_fam=InterNetwork;", + "x-ms-keyvault-region": "eastus", + "x-ms-keyvault-service-version": "1.9.444.2", + "x-ms-request-id": "66329a4b-077f-4934-b56c-f1dde2d699e1" + }, + "ResponseBody": { + "id": "https://fakevault/certificates/1374356525-2/pending", + "issuer": { + "name": "self" + }, + "csr": "MIICqDCCAZACAQAwGDEWMBQGA1UEAxMNRGVmYXVsdFBvbGljeTCCASIwDQYJKoZIhvcNAQEBBQADggEPADCCAQoCggEBAPqy7PWnxnNSMWP1Am3QQ6sU4tsB5LyJDhKLzN2rbVTtCCD8KATxfuh/zkhWAkKMQEk0LnAfv9fNih9OzCVtfJdYZaxxR38WBFcbQAAMJ0osECqPM5ggvC5CT59g3gA/v7mcIQVnMhXBqPKUV7qq/cACbeLAw/2gsM7jctUKXP\u002Balo/tg7rAgk5vsBS/066e55e\u002B1AUatnwxWI0fl4eR4VuYKFu\u002BKPvQtIkXhwGnCkyZ1sfmnHymVVC6oH54zRJPHNQLfFvP9HSBkSzt5yVTdH9YOdy6KP5tUBtT4ZtGPowSB4D3Q77KrSFsE7xbda402weSD7XchcaDdY/sTRu24n0CAwEAAaBLMEkGCSqGSIb3DQEJDjE8MDowDgYDVR0PAQH/BAQDAgWgMB0GA1UdJQQWMBQGCCsGAQUFBwMBBggrBgEFBQcDAjAJBgNVHRMEAjAAMA0GCSqGSIb3DQEBCwUAA4IBAQA8WC93byihxzPusRIkk9vjwsvCOAvOJUMYYi3t/1Y0yqwJpG0gITvtwBaxM/LF/RNAw\u002BVqzoiQPWtF4QMD5yTxk2QsxNPnpBl\u002B/zR3vVFaRRK5WTSR3GIMevp5HoLu9qchcLjyDBlGqyjNCANzOzPuJNRdkc1ZvA0f4Ieqd910PHKKqTwWIRUYkngngcoFAyp0Y68pqkSDbCVqdHDDDZuFmKWEd5\u002BlK77f7SXxfyxEv43uhF0saVggbqXDOL05AsuiK1t0WqwNE9IzpMsYUBRJl/W84k4vB3i4WVsTq7db3moqJuCZtOBssI2Kfp7Up\u002B9eAGyU7CSsx4kJeIpiA6jh", + "cancellation_requested": false, + "status": "completed", + "target": "https://fakevault/certificates/1374356525-2", + "request_id": "f8a3a09eda414084bd63f27f0e96c86b" + } + }, + { + "RequestUri": "https://fakevault/certificates/1374356525-2/pending?api-version=7.3", + "RequestMethod": "GET", + "RequestHeaders": { + "Accept": "application/json", + "Accept-Encoding": "gzip", + "Authorization": "Sanitized", + "User-Agent": "azsdk-go-azcertificates/v0.5.0 (go1.18; linux)" + }, + "RequestBody": null, + "StatusCode": 200, + "ResponseHeaders": { + "Cache-Control": "no-cache", + "Content-Length": "1161", + "Content-Type": "application/json; charset=utf-8", + "Date": "Wed, 29 Jun 2022 23:08:54 GMT", + "Expires": "-1", + "Pragma": "no-cache", + "Strict-Transport-Security": "max-age=31536000;includeSubDomains", + "X-Content-Type-Options": "nosniff", + "x-ms-keyvault-network-info": "conn_type=Ipv4;addr=24.17.201.78;act_addr_fam=InterNetwork;", + "x-ms-keyvault-region": "eastus", + "x-ms-keyvault-service-version": "1.9.444.2", + "x-ms-request-id": "22c56927-4555-47f1-a441-70a5c5db9d92" + }, + "ResponseBody": { + "id": "https://fakevault/certificates/1374356525-2/pending", + "issuer": { + "name": "self" + }, + "csr": "MIICqDCCAZACAQAwGDEWMBQGA1UEAxMNRGVmYXVsdFBvbGljeTCCASIwDQYJKoZIhvcNAQEBBQADggEPADCCAQoCggEBAPqy7PWnxnNSMWP1Am3QQ6sU4tsB5LyJDhKLzN2rbVTtCCD8KATxfuh/zkhWAkKMQEk0LnAfv9fNih9OzCVtfJdYZaxxR38WBFcbQAAMJ0osECqPM5ggvC5CT59g3gA/v7mcIQVnMhXBqPKUV7qq/cACbeLAw/2gsM7jctUKXP\u002Balo/tg7rAgk5vsBS/066e55e\u002B1AUatnwxWI0fl4eR4VuYKFu\u002BKPvQtIkXhwGnCkyZ1sfmnHymVVC6oH54zRJPHNQLfFvP9HSBkSzt5yVTdH9YOdy6KP5tUBtT4ZtGPowSB4D3Q77KrSFsE7xbda402weSD7XchcaDdY/sTRu24n0CAwEAAaBLMEkGCSqGSIb3DQEJDjE8MDowDgYDVR0PAQH/BAQDAgWgMB0GA1UdJQQWMBQGCCsGAQUFBwMBBggrBgEFBQcDAjAJBgNVHRMEAjAAMA0GCSqGSIb3DQEBCwUAA4IBAQA8WC93byihxzPusRIkk9vjwsvCOAvOJUMYYi3t/1Y0yqwJpG0gITvtwBaxM/LF/RNAw\u002BVqzoiQPWtF4QMD5yTxk2QsxNPnpBl\u002B/zR3vVFaRRK5WTSR3GIMevp5HoLu9qchcLjyDBlGqyjNCANzOzPuJNRdkc1ZvA0f4Ieqd910PHKKqTwWIRUYkngngcoFAyp0Y68pqkSDbCVqdHDDDZuFmKWEd5\u002BlK77f7SXxfyxEv43uhF0saVggbqXDOL05AsuiK1t0WqwNE9IzpMsYUBRJl/W84k4vB3i4WVsTq7db3moqJuCZtOBssI2Kfp7Up\u002B9eAGyU7CSsx4kJeIpiA6jh", + "cancellation_requested": false, + "status": "completed", + "target": "https://fakevault/certificates/1374356525-2", + "request_id": "f8a3a09eda414084bd63f27f0e96c86b" + } + }, + { + "RequestUri": "https://fakevault/certificates/1374356525-3/pending?api-version=7.3", + "RequestMethod": "GET", + "RequestHeaders": { + "Accept": "application/json", + "Accept-Encoding": "gzip", + "Authorization": "Sanitized", + "User-Agent": "azsdk-go-azcertificates/v0.5.0 (go1.18; linux)" + }, + "RequestBody": null, + "StatusCode": 200, + "ResponseHeaders": { + "Cache-Control": "no-cache", + "Content-Length": "1161", + "Content-Type": "application/json; charset=utf-8", + "Date": "Wed, 29 Jun 2022 23:08:54 GMT", + "Expires": "-1", + "Pragma": "no-cache", + "Strict-Transport-Security": "max-age=31536000;includeSubDomains", + "X-Content-Type-Options": "nosniff", + "x-ms-keyvault-network-info": "conn_type=Ipv4;addr=24.17.201.78;act_addr_fam=InterNetwork;", + "x-ms-keyvault-region": "eastus", + "x-ms-keyvault-service-version": "1.9.444.2", + "x-ms-request-id": "ea3f8602-a854-4a32-bb19-b0dc933ae992" + }, + "ResponseBody": { + "id": "https://fakevault/certificates/1374356525-3/pending", + "issuer": { + "name": "self" + }, + "csr": "MIICqDCCAZACAQAwGDEWMBQGA1UEAxMNRGVmYXVsdFBvbGljeTCCASIwDQYJKoZIhvcNAQEBBQADggEPADCCAQoCggEBANM\u002BBDuyohn/sUkVCOP/0Wx6oBQuiXttn4rA3ds4zRbuYwodZ8/2narcU6q3pOOvoqHCG0flFwe8yp24NtosnZz01auCFIbIwGk5k9RLxUrx7O24abRRj9FpK67ePJJwa0G8SDdRvn5cKhz58dVIoPRtcz06Aty4yh46HsfJ\u002BaEGIkq20tQMs\u002BG4lxZskuKeztrjZRHkMk0Nj0CAdIu6dYcSi/neeiIsHbbyd9c1vqmiW\u002BuhKyd4KCGtDgYlHZ7WiE7l8mG5AU7LELe3Zj9GXfOopaTM0XHhNaHd4htOl7WRlwLeP0Zn4bDA1raZbU0vOhhXACZZBLwrk2N7GPVS350CAwEAAaBLMEkGCSqGSIb3DQEJDjE8MDowDgYDVR0PAQH/BAQDAgWgMB0GA1UdJQQWMBQGCCsGAQUFBwMBBggrBgEFBQcDAjAJBgNVHRMEAjAAMA0GCSqGSIb3DQEBCwUAA4IBAQCi2/5rQvVsIpRuJzBJ7sUwDADUoy6jBWpu8Tu0kky0p/9Wdyl1ez9ZzmxzdJdSOjT91U3h/8GPCWcVdE\u002BVrxNI\u002BrNIbQWVA1LkkVcWwem9zIXxTqEu\u002B1S9h\u002BNCjzmp1ZMLF0nNOIVzTt2XPPvzAFPVG/xdTy2pdwY6TSm8RbJERzPm9NhkjyRg37xn/kZszKOf8s2P8JHsUMUbQUmkxIt8fS1Sy3W7N4szoBfNWutwFbeekEwYJgzcxLtRP\u002B76ecTx4scw8IoAV5bIs7jk16asuN2G7PgpK62GZ2mpEXEwCbEbxsfMU73NwlAIU2mvPdLme/6ybKweZTI9hUVXjW\u002BR", + "cancellation_requested": false, + "status": "completed", + "target": "https://fakevault/certificates/1374356525-3", + "request_id": "9d43b908ce5d4beb8414df1fb1839817" + } + }, + { + "RequestUri": "https://fakevault/certificates/1374356525-3/pending?api-version=7.3", + "RequestMethod": "GET", + "RequestHeaders": { + "Accept": "application/json", + "Accept-Encoding": "gzip", + "Authorization": "Sanitized", + "User-Agent": "azsdk-go-azcertificates/v0.5.0 (go1.18; linux)" + }, + "RequestBody": null, + "StatusCode": 200, + "ResponseHeaders": { + "Cache-Control": "no-cache", + "Content-Length": "1161", + "Content-Type": "application/json; charset=utf-8", + "Date": "Wed, 29 Jun 2022 23:08:59 GMT", + "Expires": "-1", + "Pragma": "no-cache", + "Strict-Transport-Security": "max-age=31536000;includeSubDomains", + "X-Content-Type-Options": "nosniff", + "x-ms-keyvault-network-info": "conn_type=Ipv4;addr=24.17.201.78;act_addr_fam=InterNetwork;", + "x-ms-keyvault-region": "eastus", + "x-ms-keyvault-service-version": "1.9.444.2", + "x-ms-request-id": "255103dc-4bc0-4258-a2e6-ed8433af1a62" + }, + "ResponseBody": { + "id": "https://fakevault/certificates/1374356525-3/pending", + "issuer": { + "name": "self" + }, + "csr": "MIICqDCCAZACAQAwGDEWMBQGA1UEAxMNRGVmYXVsdFBvbGljeTCCASIwDQYJKoZIhvcNAQEBBQADggEPADCCAQoCggEBANM\u002BBDuyohn/sUkVCOP/0Wx6oBQuiXttn4rA3ds4zRbuYwodZ8/2narcU6q3pOOvoqHCG0flFwe8yp24NtosnZz01auCFIbIwGk5k9RLxUrx7O24abRRj9FpK67ePJJwa0G8SDdRvn5cKhz58dVIoPRtcz06Aty4yh46HsfJ\u002BaEGIkq20tQMs\u002BG4lxZskuKeztrjZRHkMk0Nj0CAdIu6dYcSi/neeiIsHbbyd9c1vqmiW\u002BuhKyd4KCGtDgYlHZ7WiE7l8mG5AU7LELe3Zj9GXfOopaTM0XHhNaHd4htOl7WRlwLeP0Zn4bDA1raZbU0vOhhXACZZBLwrk2N7GPVS350CAwEAAaBLMEkGCSqGSIb3DQEJDjE8MDowDgYDVR0PAQH/BAQDAgWgMB0GA1UdJQQWMBQGCCsGAQUFBwMBBggrBgEFBQcDAjAJBgNVHRMEAjAAMA0GCSqGSIb3DQEBCwUAA4IBAQCi2/5rQvVsIpRuJzBJ7sUwDADUoy6jBWpu8Tu0kky0p/9Wdyl1ez9ZzmxzdJdSOjT91U3h/8GPCWcVdE\u002BVrxNI\u002BrNIbQWVA1LkkVcWwem9zIXxTqEu\u002B1S9h\u002BNCjzmp1ZMLF0nNOIVzTt2XPPvzAFPVG/xdTy2pdwY6TSm8RbJERzPm9NhkjyRg37xn/kZszKOf8s2P8JHsUMUbQUmkxIt8fS1Sy3W7N4szoBfNWutwFbeekEwYJgzcxLtRP\u002B76ecTx4scw8IoAV5bIs7jk16asuN2G7PgpK62GZ2mpEXEwCbEbxsfMU73NwlAIU2mvPdLme/6ybKweZTI9hUVXjW\u002BR", + "cancellation_requested": false, + "status": "completed", + "target": "https://fakevault/certificates/1374356525-3", + "request_id": "9d43b908ce5d4beb8414df1fb1839817" + } + }, + { + "RequestUri": "https://fakevault/certificates/1374356525-3/pending?api-version=7.3", + "RequestMethod": "GET", + "RequestHeaders": { + "Accept": "application/json", + "Accept-Encoding": "gzip", + "Authorization": "Sanitized", + "User-Agent": "azsdk-go-azcertificates/v0.5.0 (go1.18; linux)" + }, + "RequestBody": null, + "StatusCode": 200, + "ResponseHeaders": { + "Cache-Control": "no-cache", + "Content-Length": "1161", + "Content-Type": "application/json; charset=utf-8", + "Date": "Wed, 29 Jun 2022 23:09:05 GMT", + "Expires": "-1", + "Pragma": "no-cache", + "Strict-Transport-Security": "max-age=31536000;includeSubDomains", + "X-Content-Type-Options": "nosniff", + "x-ms-keyvault-network-info": "conn_type=Ipv4;addr=24.17.201.78;act_addr_fam=InterNetwork;", + "x-ms-keyvault-region": "eastus", + "x-ms-keyvault-service-version": "1.9.444.2", + "x-ms-request-id": "7c8cbb35-0bbb-41fa-b07d-4bbc37f6348a" + }, + "ResponseBody": { + "id": "https://fakevault/certificates/1374356525-3/pending", + "issuer": { + "name": "self" + }, + "csr": "MIICqDCCAZACAQAwGDEWMBQGA1UEAxMNRGVmYXVsdFBvbGljeTCCASIwDQYJKoZIhvcNAQEBBQADggEPADCCAQoCggEBANM\u002BBDuyohn/sUkVCOP/0Wx6oBQuiXttn4rA3ds4zRbuYwodZ8/2narcU6q3pOOvoqHCG0flFwe8yp24NtosnZz01auCFIbIwGk5k9RLxUrx7O24abRRj9FpK67ePJJwa0G8SDdRvn5cKhz58dVIoPRtcz06Aty4yh46HsfJ\u002BaEGIkq20tQMs\u002BG4lxZskuKeztrjZRHkMk0Nj0CAdIu6dYcSi/neeiIsHbbyd9c1vqmiW\u002BuhKyd4KCGtDgYlHZ7WiE7l8mG5AU7LELe3Zj9GXfOopaTM0XHhNaHd4htOl7WRlwLeP0Zn4bDA1raZbU0vOhhXACZZBLwrk2N7GPVS350CAwEAAaBLMEkGCSqGSIb3DQEJDjE8MDowDgYDVR0PAQH/BAQDAgWgMB0GA1UdJQQWMBQGCCsGAQUFBwMBBggrBgEFBQcDAjAJBgNVHRMEAjAAMA0GCSqGSIb3DQEBCwUAA4IBAQCi2/5rQvVsIpRuJzBJ7sUwDADUoy6jBWpu8Tu0kky0p/9Wdyl1ez9ZzmxzdJdSOjT91U3h/8GPCWcVdE\u002BVrxNI\u002BrNIbQWVA1LkkVcWwem9zIXxTqEu\u002B1S9h\u002BNCjzmp1ZMLF0nNOIVzTt2XPPvzAFPVG/xdTy2pdwY6TSm8RbJERzPm9NhkjyRg37xn/kZszKOf8s2P8JHsUMUbQUmkxIt8fS1Sy3W7N4szoBfNWutwFbeekEwYJgzcxLtRP\u002B76ecTx4scw8IoAV5bIs7jk16asuN2G7PgpK62GZ2mpEXEwCbEbxsfMU73NwlAIU2mvPdLme/6ybKweZTI9hUVXjW\u002BR", + "cancellation_requested": false, + "status": "completed", + "target": "https://fakevault/certificates/1374356525-3", + "request_id": "9d43b908ce5d4beb8414df1fb1839817" + } + }, + { + "RequestUri": "https://fakevault/certificates/1374356525-3/pending?api-version=7.3", + "RequestMethod": "GET", + "RequestHeaders": { + "Accept": "application/json", + "Accept-Encoding": "gzip", + "Authorization": "Sanitized", + "User-Agent": "azsdk-go-azcertificates/v0.5.0 (go1.18; linux)" + }, + "RequestBody": null, + "StatusCode": 200, + "ResponseHeaders": { + "Cache-Control": "no-cache", + "Content-Length": "1161", + "Content-Type": "application/json; charset=utf-8", + "Date": "Wed, 29 Jun 2022 23:09:10 GMT", + "Expires": "-1", + "Pragma": "no-cache", + "Strict-Transport-Security": "max-age=31536000;includeSubDomains", + "X-Content-Type-Options": "nosniff", + "x-ms-keyvault-network-info": "conn_type=Ipv4;addr=24.17.201.78;act_addr_fam=InterNetwork;", + "x-ms-keyvault-region": "eastus", + "x-ms-keyvault-service-version": "1.9.444.2", + "x-ms-request-id": "7eeda788-3c50-4fc5-bf8d-c42ef0858c5c" + }, + "ResponseBody": { + "id": "https://fakevault/certificates/1374356525-3/pending", + "issuer": { + "name": "self" + }, + "csr": "MIICqDCCAZACAQAwGDEWMBQGA1UEAxMNRGVmYXVsdFBvbGljeTCCASIwDQYJKoZIhvcNAQEBBQADggEPADCCAQoCggEBANM\u002BBDuyohn/sUkVCOP/0Wx6oBQuiXttn4rA3ds4zRbuYwodZ8/2narcU6q3pOOvoqHCG0flFwe8yp24NtosnZz01auCFIbIwGk5k9RLxUrx7O24abRRj9FpK67ePJJwa0G8SDdRvn5cKhz58dVIoPRtcz06Aty4yh46HsfJ\u002BaEGIkq20tQMs\u002BG4lxZskuKeztrjZRHkMk0Nj0CAdIu6dYcSi/neeiIsHbbyd9c1vqmiW\u002BuhKyd4KCGtDgYlHZ7WiE7l8mG5AU7LELe3Zj9GXfOopaTM0XHhNaHd4htOl7WRlwLeP0Zn4bDA1raZbU0vOhhXACZZBLwrk2N7GPVS350CAwEAAaBLMEkGCSqGSIb3DQEJDjE8MDowDgYDVR0PAQH/BAQDAgWgMB0GA1UdJQQWMBQGCCsGAQUFBwMBBggrBgEFBQcDAjAJBgNVHRMEAjAAMA0GCSqGSIb3DQEBCwUAA4IBAQCi2/5rQvVsIpRuJzBJ7sUwDADUoy6jBWpu8Tu0kky0p/9Wdyl1ez9ZzmxzdJdSOjT91U3h/8GPCWcVdE\u002BVrxNI\u002BrNIbQWVA1LkkVcWwem9zIXxTqEu\u002B1S9h\u002BNCjzmp1ZMLF0nNOIVzTt2XPPvzAFPVG/xdTy2pdwY6TSm8RbJERzPm9NhkjyRg37xn/kZszKOf8s2P8JHsUMUbQUmkxIt8fS1Sy3W7N4szoBfNWutwFbeekEwYJgzcxLtRP\u002B76ecTx4scw8IoAV5bIs7jk16asuN2G7PgpK62GZ2mpEXEwCbEbxsfMU73NwlAIU2mvPdLme/6ybKweZTI9hUVXjW\u002BR", + "cancellation_requested": false, + "status": "completed", + "target": "https://fakevault/certificates/1374356525-3", + "request_id": "9d43b908ce5d4beb8414df1fb1839817" + } + }, + { + "RequestUri": "https://fakevault/certificates/1374356525-3/pending?api-version=7.3", + "RequestMethod": "GET", + "RequestHeaders": { + "Accept": "application/json", + "Accept-Encoding": "gzip", + "Authorization": "Sanitized", + "User-Agent": "azsdk-go-azcertificates/v0.5.0 (go1.18; linux)" + }, + "RequestBody": null, + "StatusCode": 200, + "ResponseHeaders": { + "Cache-Control": "no-cache", + "Content-Length": "1161", + "Content-Type": "application/json; charset=utf-8", + "Date": "Wed, 29 Jun 2022 23:09:15 GMT", + "Expires": "-1", + "Pragma": "no-cache", + "Strict-Transport-Security": "max-age=31536000;includeSubDomains", + "X-Content-Type-Options": "nosniff", + "x-ms-keyvault-network-info": "conn_type=Ipv4;addr=24.17.201.78;act_addr_fam=InterNetwork;", + "x-ms-keyvault-region": "eastus", + "x-ms-keyvault-service-version": "1.9.444.2", + "x-ms-request-id": "47d821c4-82e2-49f7-8956-ab62e58ed890" + }, + "ResponseBody": { + "id": "https://fakevault/certificates/1374356525-3/pending", + "issuer": { + "name": "self" + }, + "csr": "MIICqDCCAZACAQAwGDEWMBQGA1UEAxMNRGVmYXVsdFBvbGljeTCCASIwDQYJKoZIhvcNAQEBBQADggEPADCCAQoCggEBANM\u002BBDuyohn/sUkVCOP/0Wx6oBQuiXttn4rA3ds4zRbuYwodZ8/2narcU6q3pOOvoqHCG0flFwe8yp24NtosnZz01auCFIbIwGk5k9RLxUrx7O24abRRj9FpK67ePJJwa0G8SDdRvn5cKhz58dVIoPRtcz06Aty4yh46HsfJ\u002BaEGIkq20tQMs\u002BG4lxZskuKeztrjZRHkMk0Nj0CAdIu6dYcSi/neeiIsHbbyd9c1vqmiW\u002BuhKyd4KCGtDgYlHZ7WiE7l8mG5AU7LELe3Zj9GXfOopaTM0XHhNaHd4htOl7WRlwLeP0Zn4bDA1raZbU0vOhhXACZZBLwrk2N7GPVS350CAwEAAaBLMEkGCSqGSIb3DQEJDjE8MDowDgYDVR0PAQH/BAQDAgWgMB0GA1UdJQQWMBQGCCsGAQUFBwMBBggrBgEFBQcDAjAJBgNVHRMEAjAAMA0GCSqGSIb3DQEBCwUAA4IBAQCi2/5rQvVsIpRuJzBJ7sUwDADUoy6jBWpu8Tu0kky0p/9Wdyl1ez9ZzmxzdJdSOjT91U3h/8GPCWcVdE\u002BVrxNI\u002BrNIbQWVA1LkkVcWwem9zIXxTqEu\u002B1S9h\u002BNCjzmp1ZMLF0nNOIVzTt2XPPvzAFPVG/xdTy2pdwY6TSm8RbJERzPm9NhkjyRg37xn/kZszKOf8s2P8JHsUMUbQUmkxIt8fS1Sy3W7N4szoBfNWutwFbeekEwYJgzcxLtRP\u002B76ecTx4scw8IoAV5bIs7jk16asuN2G7PgpK62GZ2mpEXEwCbEbxsfMU73NwlAIU2mvPdLme/6ybKweZTI9hUVXjW\u002BR", + "cancellation_requested": false, + "status": "completed", + "target": "https://fakevault/certificates/1374356525-3", + "request_id": "9d43b908ce5d4beb8414df1fb1839817" + } + }, + { + "RequestUri": "https://fakevault/certificates?api-version=7.3\u0026includePending=true\u0026maxresults=1", + "RequestMethod": "GET", + "RequestHeaders": { + "Accept": "application/json", + "Accept-Encoding": "gzip", + "Authorization": "Sanitized", + "User-Agent": "azsdk-go-azcertificates/v0.5.0 (go1.18; linux)" + }, + "RequestBody": null, + "StatusCode": 200, + "ResponseHeaders": { + "Cache-Control": "no-cache", + "Content-Length": "514", + "Content-Type": "application/json; charset=utf-8", + "Date": "Wed, 29 Jun 2022 23:09:15 GMT", + "Expires": "-1", + "Pragma": "no-cache", + "Strict-Transport-Security": "max-age=31536000;includeSubDomains", + "X-Content-Type-Options": "nosniff", + "x-ms-keyvault-network-info": "conn_type=Ipv4;addr=24.17.201.78;act_addr_fam=InterNetwork;", + "x-ms-keyvault-region": "eastus", + "x-ms-keyvault-service-version": "1.9.444.2", + "x-ms-request-id": "cfa59dbb-63a0-416b-82d0-60b28b3dc03f" + }, + "ResponseBody": { + "value": [ + { + "id": "https://fakevault/certificates/1374356525-0", + "x5t": "on6zpOmz7jKOCqFmzLLSFdWV7pg", + "attributes": { + "enabled": true, + "nbf": 1656543470, + "exp": 1688080070, + "created": 1656544071, + "updated": 1656544071 + }, + "tags": { + "1374356525": "yes" + }, + "subject": "" + } + ], + "nextLink": "https://fakevault:443/certificates?api-version=7.3\u0026$skiptoken=eyJOZXh0TWFya2VyIjoiMiE5MiFNREF3TURJMElXTmxjblJwWm1sallYUmxMekV6TnpRek5UWTFNalV0TVNFd01EQXdNamdoT1RrNU9TMHhNaTB6TVZReU16bzFPVG8xT1M0NU9UazVPVGs1V2lFLSIsIlRhcmdldExvY2F0aW9uIjowfQ\u0026maxresults=1" + } + }, + { + "RequestUri": "https://fakevault/certificates/1374356525-0?api-version=7.3", + "RequestMethod": "DELETE", + "RequestHeaders": { + "Accept": "application/json", + "Accept-Encoding": "gzip", + "Authorization": "Sanitized", + "User-Agent": "azsdk-go-azcertificates/v0.5.0 (go1.18; linux)" + }, + "RequestBody": null, + "StatusCode": 200, + "ResponseHeaders": { + "Cache-Control": "no-cache", + "Content-Length": "2382", + "Content-Type": "application/json; charset=utf-8", + "Date": "Wed, 29 Jun 2022 23:09:15 GMT", + "Expires": "-1", + "Pragma": "no-cache", + "Strict-Transport-Security": "max-age=31536000;includeSubDomains", + "X-Content-Type-Options": "nosniff", + "x-ms-keyvault-network-info": "conn_type=Ipv4;addr=24.17.201.78;act_addr_fam=InterNetwork;", + "x-ms-keyvault-region": "eastus", + "x-ms-keyvault-service-version": "1.9.444.2", + "x-ms-request-id": "d3e1251a-7304-4b9d-85ca-834d3cd302a4" + }, + "ResponseBody": { + "recoveryId": "https://fakevault/deletedcertificates/1374356525-0", + "deletedDate": 1656544155, + "scheduledPurgeDate": 1657148955, + "id": "https://fakevault/certificates/1374356525-0/d0e89095388f4467a51bc382a7e8c406", + "kid": "https://fakevault/keys/1374356525-0/d0e89095388f4467a51bc382a7e8c406", + "sid": "https://fakevault/secrets/1374356525-0/d0e89095388f4467a51bc382a7e8c406", + "x5t": "on6zpOmz7jKOCqFmzLLSFdWV7pg", + "cer": "MIIDNjCCAh6gAwIBAgIQQML1kmZ0TjuvTtzjOmql0jANBgkqhkiG9w0BAQsFADAYMRYwFAYDVQQDEw1EZWZhdWx0UG9saWN5MB4XDTIyMDYyOTIyNTc1MFoXDTIzMDYyOTIzMDc1MFowGDEWMBQGA1UEAxMNRGVmYXVsdFBvbGljeTCCASIwDQYJKoZIhvcNAQEBBQADggEPADCCAQoCggEBAMqflblALjYyqNzOzCeBd8rIxbq4/58/vDytzm7E\u002B2ln69UV4LP\u002BS4A\u002BFuOU49R/Y3tKQp6Z7131vtsahGXzWOwNjpzDzE3eDIu5\u002BlvXj/zxdCbOE7Pkv0Yn9AS33mTt54a76uULA\u002BT6hRX2xhNhfmVDUzPPtEQHERPbQR9p/q0Hzgf1cmTorvnqaKr63jpSMubqeuG8XK9KDZM4Q1pOkP2gEqKY3xPvS\u002B2gR83gCEtyYhP1pWCR6lJX/ndh56R\u002BC8GGQY7vm4sYeTghtllkwxFNHNjaKoHfW\u002BdRB73d9W7hLtnLUfbQkQ\u002BUfarX7mo4QJm8te97rtC2c1VNiKkTv20CAwEAAaN8MHowDgYDVR0PAQH/BAQDAgWgMAkGA1UdEwQCMAAwHQYDVR0lBBYwFAYIKwYBBQUHAwEGCCsGAQUFBwMCMB8GA1UdIwQYMBaAFNZlSUnnuOoF4K0A7wF53cLKq2ukMB0GA1UdDgQWBBTWZUlJ57jqBeCtAO8Bed3CyqtrpDANBgkqhkiG9w0BAQsFAAOCAQEAU\u002Bkv2Y93MDAMGIFv8cs92jpoE1vWWHoAircqXbmTpkhWgXvVsK4fswSrpEBE8b4PKHyPgNfgFCI01cbKzJ8FVlxvc5wWgV3ZABnIWO7YYuEzMzHWunsmeX\u002BVGD5xr9dFKf6PLe2kTtZqOjVnbPMQULnQTtG57vNO7PJfJYaGoRBssElMQ1ia/Exbt1IkuxIPEWLZ04NKrqlVQFVd7skMOUVeMYelCu04GOjVNxkI1SNVbe7nxTu26tkhy/xUDIAuee6VI5TPrGldwjeBHMv0z3NLH3\u002BLduKoEHjNLMvxRIVzgC0RZKm4t5041YNIpV9arkZv7KCiFDAwgDfXGgPQXQ==", + "attributes": { + "enabled": true, + "nbf": 1656543470, + "exp": 1688080070, + "created": 1656544071, + "updated": 1656544071, + "recoveryLevel": "CustomizedRecoverable\u002BPurgeable", + "recoverableDays": 7 + }, + "tags": { + "1374356525": "yes" + }, + "policy": { + "id": "https://fakevault/certificates/1374356525-0/policy", + "key_props": { + "exportable": true, + "kty": "RSA", + "key_size": 2048, + "reuse_key": false + }, + "secret_props": { + "contentType": "application/x-pkcs12" + }, + "x509_props": { + "subject": "CN=DefaultPolicy", + "ekus": [ + "1.3.6.1.5.5.7.3.1", + "1.3.6.1.5.5.7.3.2" + ], + "key_usage": [ + "digitalSignature", + "keyEncipherment" + ], + "validity_months": 12, + "basic_constraints": { + "ca": false + } + }, + "lifetime_actions": [ + { + "trigger": { + "lifetime_percentage": 80 + }, + "action": { + "action_type": "AutoRenew" + } + } + ], + "issuer": { + "name": "self" + }, + "attributes": { + "enabled": true, + "created": 1656544067, + "updated": 1656544067 + } + }, + "pending": { + "id": "https://fakevault/certificates/1374356525-0/pending" + } + } + }, + { + "RequestUri": "https://fakevault/certificates?api-version=7.3\u0026$skiptoken=eyJOZXh0TWFya2VyIjoiMiE5MiFNREF3TURJMElXTmxjblJwWm1sallYUmxMekV6TnpRek5UWTFNalV0TVNFd01EQXdNamdoT1RrNU9TMHhNaTB6TVZReU16bzFPVG8xT1M0NU9UazVPVGs1V2lFLSIsIlRhcmdldExvY2F0aW9uIjowfQ\u0026maxresults=1", + "RequestMethod": "GET", + "RequestHeaders": { + "Accept-Encoding": "gzip", + "Authorization": "Sanitized", + "User-Agent": "azsdk-go-azcertificates/v0.5.0 (go1.18; linux)" + }, + "RequestBody": null, + "StatusCode": 200, + "ResponseHeaders": { + "Cache-Control": "no-cache", + "Content-Length": "514", + "Content-Type": "application/json; charset=utf-8", + "Date": "Wed, 29 Jun 2022 23:09:16 GMT", + "Expires": "-1", + "Pragma": "no-cache", + "Strict-Transport-Security": "max-age=31536000;includeSubDomains", + "X-Content-Type-Options": "nosniff", + "x-ms-keyvault-network-info": "conn_type=Ipv4;addr=24.17.201.78;act_addr_fam=InterNetwork;", + "x-ms-keyvault-region": "eastus", + "x-ms-keyvault-service-version": "1.9.444.2", + "x-ms-request-id": "e270f1c4-2109-46ed-86c7-7b29a76d2e49" + }, + "ResponseBody": { + "value": [ + { + "id": "https://fakevault/certificates/1374356525-1", + "x5t": "0JYl10hflkFZqNCe8gR2KF1y_do", + "attributes": { + "enabled": true, + "nbf": 1656543470, + "exp": 1688080070, + "created": 1656544071, + "updated": 1656544071 + }, + "tags": { + "1374356525": "yes" + }, + "subject": "" + } + ], + "nextLink": "https://fakevault:443/certificates?api-version=7.3\u0026$skiptoken=eyJOZXh0TWFya2VyIjoiMiE5MiFNREF3TURJMElXTmxjblJwWm1sallYUmxMekV6TnpRek5UWTFNalV0TWlFd01EQXdNamdoT1RrNU9TMHhNaTB6TVZReU16bzFPVG8xT1M0NU9UazVPVGs1V2lFLSIsIlRhcmdldExvY2F0aW9uIjowfQ\u0026maxresults=1" + } + }, + { + "RequestUri": "https://fakevault/certificates/1374356525-1?api-version=7.3", + "RequestMethod": "DELETE", + "RequestHeaders": { + "Accept": "application/json", + "Accept-Encoding": "gzip", + "Authorization": "Sanitized", + "User-Agent": "azsdk-go-azcertificates/v0.5.0 (go1.18; linux)" + }, + "RequestBody": null, + "StatusCode": 200, + "ResponseHeaders": { + "Cache-Control": "no-cache", + "Content-Length": "2382", + "Content-Type": "application/json; charset=utf-8", + "Date": "Wed, 29 Jun 2022 23:09:16 GMT", + "Expires": "-1", + "Pragma": "no-cache", + "Strict-Transport-Security": "max-age=31536000;includeSubDomains", + "X-Content-Type-Options": "nosniff", + "x-ms-keyvault-network-info": "conn_type=Ipv4;addr=24.17.201.78;act_addr_fam=InterNetwork;", + "x-ms-keyvault-region": "eastus", + "x-ms-keyvault-service-version": "1.9.444.2", + "x-ms-request-id": "4d4dec42-6c27-4efc-837b-e73cb8144e8c" + }, + "ResponseBody": { + "recoveryId": "https://fakevault/deletedcertificates/1374356525-1", + "deletedDate": 1656544156, + "scheduledPurgeDate": 1657148956, + "id": "https://fakevault/certificates/1374356525-1/ac12127c97cb4f51bcfc21d0c944bc93", + "kid": "https://fakevault/keys/1374356525-1/ac12127c97cb4f51bcfc21d0c944bc93", + "sid": "https://fakevault/secrets/1374356525-1/ac12127c97cb4f51bcfc21d0c944bc93", + "x5t": "0JYl10hflkFZqNCe8gR2KF1y_do", + "cer": "MIIDNjCCAh6gAwIBAgIQDyJZY66WQKeidwyHUX\u002BD6DANBgkqhkiG9w0BAQsFADAYMRYwFAYDVQQDEw1EZWZhdWx0UG9saWN5MB4XDTIyMDYyOTIyNTc1MFoXDTIzMDYyOTIzMDc1MFowGDEWMBQGA1UEAxMNRGVmYXVsdFBvbGljeTCCASIwDQYJKoZIhvcNAQEBBQADggEPADCCAQoCggEBAMQVgk7O4ETVoxr7IXi31g7HrHPEfwc3uNBhZsds/kw6/hPwlnqdAM6GfAFw0QX6ggYRCYgCftgKvIjiWkTjTUtuSZeFbLuCM1V6QJjbi1Z5iGqFTayWKZKYLh4rfPH\u002BqPyFovr4SxfRk8CNFvTVQQamna5dZMxBn1MzrO65SuYSFIW2Dzq4VMWW0Jh0hyd3/adbEatbtbQ9L3qGxwijHLk\u002B7iAkYjYKU8ucVoy87KwK8UK6mhRzrfYKIQozqSX2F6thEBSNBcVS7esjX6Oe7JiqHhksTVkuHRBCovd5rnAiSw4oyKJqzosG5ewIhEBrVeKKU5ORes19emyYSodTTuUCAwEAAaN8MHowDgYDVR0PAQH/BAQDAgWgMAkGA1UdEwQCMAAwHQYDVR0lBBYwFAYIKwYBBQUHAwEGCCsGAQUFBwMCMB8GA1UdIwQYMBaAFGMEUtJX1jH2jkirvAUbEz40Nia4MB0GA1UdDgQWBBRjBFLSV9Yx9o5Iq7wFGxM\u002BNDYmuDANBgkqhkiG9w0BAQsFAAOCAQEAfUBjYusfR9HgkREXWZ4/p/3jG4tLA8y6LYV1LYvaM9O/MyejkuaYg0zpBNRocy2X6ukTRML2DUXzygNh5dJVtzUDQrIQTZeOHkjVDqs76MuogLQGCdGCeGx8rA9xc8YToi7DonQqJS8yT8/9KpzIkwPV\u002BKJVNBD0R1GRMTr6ZvK9N0UgQR0vS3vnZxYUyWmxYLu3ahJFB42JCDYd9DQ0t6DbgskYTPMA8y7s1att69ERDggSt4kkN5Oi/cN3YZnDmYD3hcE0FjhXpQ/82vW5q9oLKpeG/bDRWfPIqYyF/6JQ0kbeuh3rQaQWtMTHV1p5BrS5AidP6Aj95O9RsYXnag==", + "attributes": { + "enabled": true, + "nbf": 1656543470, + "exp": 1688080070, + "created": 1656544071, + "updated": 1656544071, + "recoveryLevel": "CustomizedRecoverable\u002BPurgeable", + "recoverableDays": 7 + }, + "tags": { + "1374356525": "yes" + }, + "policy": { + "id": "https://fakevault/certificates/1374356525-1/policy", + "key_props": { + "exportable": true, + "kty": "RSA", + "key_size": 2048, + "reuse_key": false + }, + "secret_props": { + "contentType": "application/x-pkcs12" + }, + "x509_props": { + "subject": "CN=DefaultPolicy", + "ekus": [ + "1.3.6.1.5.5.7.3.1", + "1.3.6.1.5.5.7.3.2" + ], + "key_usage": [ + "digitalSignature", + "keyEncipherment" + ], + "validity_months": 12, + "basic_constraints": { + "ca": false + } + }, + "lifetime_actions": [ + { + "trigger": { + "lifetime_percentage": 80 + }, + "action": { + "action_type": "AutoRenew" + } + } + ], + "issuer": { + "name": "self" + }, + "attributes": { + "enabled": true, + "created": 1656544068, + "updated": 1656544068 + } + }, + "pending": { + "id": "https://fakevault/certificates/1374356525-1/pending" + } + } + }, + { + "RequestUri": "https://fakevault/certificates?api-version=7.3\u0026$skiptoken=eyJOZXh0TWFya2VyIjoiMiE5MiFNREF3TURJMElXTmxjblJwWm1sallYUmxMekV6TnpRek5UWTFNalV0TWlFd01EQXdNamdoT1RrNU9TMHhNaTB6TVZReU16bzFPVG8xT1M0NU9UazVPVGs1V2lFLSIsIlRhcmdldExvY2F0aW9uIjowfQ\u0026maxresults=1", + "RequestMethod": "GET", + "RequestHeaders": { + "Accept-Encoding": "gzip", + "Authorization": "Sanitized", + "User-Agent": "azsdk-go-azcertificates/v0.5.0 (go1.18; linux)" + }, + "RequestBody": null, + "StatusCode": 200, + "ResponseHeaders": { + "Cache-Control": "no-cache", + "Content-Length": "514", + "Content-Type": "application/json; charset=utf-8", + "Date": "Wed, 29 Jun 2022 23:09:16 GMT", + "Expires": "-1", + "Pragma": "no-cache", + "Strict-Transport-Security": "max-age=31536000;includeSubDomains", + "X-Content-Type-Options": "nosniff", + "x-ms-keyvault-network-info": "conn_type=Ipv4;addr=24.17.201.78;act_addr_fam=InterNetwork;", + "x-ms-keyvault-region": "eastus", + "x-ms-keyvault-service-version": "1.9.444.2", + "x-ms-request-id": "62e1d6e4-9c5d-44b3-80d8-950d4d61c6f9" + }, + "ResponseBody": { + "value": [ + { + "id": "https://fakevault/certificates/1374356525-2", + "x5t": "Pv6jtNa13wEU32isuPrLWoRs9GY", + "attributes": { + "enabled": true, + "nbf": 1656543471, + "exp": 1688080071, + "created": 1656544071, + "updated": 1656544071 + }, + "tags": { + "1374356525": "yes" + }, + "subject": "" + } + ], + "nextLink": "https://fakevault:443/certificates?api-version=7.3\u0026$skiptoken=eyJOZXh0TWFya2VyIjoiMiE5MiFNREF3TURJMElXTmxjblJwWm1sallYUmxMekV6TnpRek5UWTFNalV0TXlFd01EQXdNamdoT1RrNU9TMHhNaTB6TVZReU16bzFPVG8xT1M0NU9UazVPVGs1V2lFLSIsIlRhcmdldExvY2F0aW9uIjowfQ\u0026maxresults=1" + } + }, + { + "RequestUri": "https://fakevault/certificates/1374356525-2?api-version=7.3", + "RequestMethod": "DELETE", + "RequestHeaders": { + "Accept": "application/json", + "Accept-Encoding": "gzip", + "Authorization": "Sanitized", + "User-Agent": "azsdk-go-azcertificates/v0.5.0 (go1.18; linux)" + }, + "RequestBody": null, + "StatusCode": 200, + "ResponseHeaders": { + "Cache-Control": "no-cache", + "Content-Length": "2382", + "Content-Type": "application/json; charset=utf-8", + "Date": "Wed, 29 Jun 2022 23:09:16 GMT", + "Expires": "-1", + "Pragma": "no-cache", + "Strict-Transport-Security": "max-age=31536000;includeSubDomains", + "X-Content-Type-Options": "nosniff", + "x-ms-keyvault-network-info": "conn_type=Ipv4;addr=24.17.201.78;act_addr_fam=InterNetwork;", + "x-ms-keyvault-region": "eastus", + "x-ms-keyvault-service-version": "1.9.444.2", + "x-ms-request-id": "11c9d1d8-4bf7-4103-b7c1-e8dbc4562cde" + }, + "ResponseBody": { + "recoveryId": "https://fakevault/deletedcertificates/1374356525-2", + "deletedDate": 1656544156, + "scheduledPurgeDate": 1657148956, + "id": "https://fakevault/certificates/1374356525-2/8b31c3b9216141d683f258e8d100e439", + "kid": "https://fakevault/keys/1374356525-2/8b31c3b9216141d683f258e8d100e439", + "sid": "https://fakevault/secrets/1374356525-2/8b31c3b9216141d683f258e8d100e439", + "x5t": "Pv6jtNa13wEU32isuPrLWoRs9GY", + "cer": "MIIDNjCCAh6gAwIBAgIQfh2W4QCZQqypoG8yiuLpUTANBgkqhkiG9w0BAQsFADAYMRYwFAYDVQQDEw1EZWZhdWx0UG9saWN5MB4XDTIyMDYyOTIyNTc1MVoXDTIzMDYyOTIzMDc1MVowGDEWMBQGA1UEAxMNRGVmYXVsdFBvbGljeTCCASIwDQYJKoZIhvcNAQEBBQADggEPADCCAQoCggEBAPqy7PWnxnNSMWP1Am3QQ6sU4tsB5LyJDhKLzN2rbVTtCCD8KATxfuh/zkhWAkKMQEk0LnAfv9fNih9OzCVtfJdYZaxxR38WBFcbQAAMJ0osECqPM5ggvC5CT59g3gA/v7mcIQVnMhXBqPKUV7qq/cACbeLAw/2gsM7jctUKXP\u002Balo/tg7rAgk5vsBS/066e55e\u002B1AUatnwxWI0fl4eR4VuYKFu\u002BKPvQtIkXhwGnCkyZ1sfmnHymVVC6oH54zRJPHNQLfFvP9HSBkSzt5yVTdH9YOdy6KP5tUBtT4ZtGPowSB4D3Q77KrSFsE7xbda402weSD7XchcaDdY/sTRu24n0CAwEAAaN8MHowDgYDVR0PAQH/BAQDAgWgMAkGA1UdEwQCMAAwHQYDVR0lBBYwFAYIKwYBBQUHAwEGCCsGAQUFBwMCMB8GA1UdIwQYMBaAFF/UXw\u002Bovitwv1Euyv\u002BJvgzyoEoWMB0GA1UdDgQWBBRf1F8PqL4rcL9RLsr/ib4M8qBKFjANBgkqhkiG9w0BAQsFAAOCAQEAq\u002BPcjWuqwNlewVGRiDO4iwX2x0u\u002BgYDnK3aa4RQ3dAOc3TongqiUGpiz0sflvpVCSumlryBxKdkwWrNKilUTAavGMY6z6Na0MetsnZUx2DKYf/LKkBDV1rs/yVaypgT0MC5muhDX0BfY3Ts04VFxZr44UqCGvNxIrSHapnB\u002Be0k/BWiBcKE5YeId5ViJmuXC0NNAxRREJMu\u002BiDkKY7ncaTlRTMTxH2PKr0V9tPtY4s4Rje00qbPLNen3NAlW1NxZX0Z86UY8mCLNgKI\u002BXB2fYijjAaLChvBlCyMyorSn55yHpwFXt6vNalz4x/\u002BXUx0WtvaS4YUPms6aDrcLBcj4tQ==", + "attributes": { + "enabled": true, + "nbf": 1656543471, + "exp": 1688080071, + "created": 1656544071, + "updated": 1656544071, + "recoveryLevel": "CustomizedRecoverable\u002BPurgeable", + "recoverableDays": 7 + }, + "tags": { + "1374356525": "yes" + }, + "policy": { + "id": "https://fakevault/certificates/1374356525-2/policy", + "key_props": { + "exportable": true, + "kty": "RSA", + "key_size": 2048, + "reuse_key": false + }, + "secret_props": { + "contentType": "application/x-pkcs12" + }, + "x509_props": { + "subject": "CN=DefaultPolicy", + "ekus": [ + "1.3.6.1.5.5.7.3.1", + "1.3.6.1.5.5.7.3.2" + ], + "key_usage": [ + "digitalSignature", + "keyEncipherment" + ], + "validity_months": 12, + "basic_constraints": { + "ca": false + } + }, + "lifetime_actions": [ + { + "trigger": { + "lifetime_percentage": 80 + }, + "action": { + "action_type": "AutoRenew" + } + } + ], + "issuer": { + "name": "self" + }, + "attributes": { + "enabled": true, + "created": 1656544069, + "updated": 1656544069 + } + }, + "pending": { + "id": "https://fakevault/certificates/1374356525-2/pending" + } + } + }, + { + "RequestUri": "https://fakevault/certificates?api-version=7.3\u0026$skiptoken=eyJOZXh0TWFya2VyIjoiMiE5MiFNREF3TURJMElXTmxjblJwWm1sallYUmxMekV6TnpRek5UWTFNalV0TXlFd01EQXdNamdoT1RrNU9TMHhNaTB6TVZReU16bzFPVG8xT1M0NU9UazVPVGs1V2lFLSIsIlRhcmdldExvY2F0aW9uIjowfQ\u0026maxresults=1", + "RequestMethod": "GET", + "RequestHeaders": { + "Accept-Encoding": "gzip", + "Authorization": "Sanitized", + "User-Agent": "azsdk-go-azcertificates/v0.5.0 (go1.18; linux)" + }, + "RequestBody": null, + "StatusCode": 200, + "ResponseHeaders": { + "Cache-Control": "no-cache", + "Content-Length": "508", + "Content-Type": "application/json; charset=utf-8", + "Date": "Wed, 29 Jun 2022 23:09:16 GMT", + "Expires": "-1", + "Pragma": "no-cache", + "Strict-Transport-Security": "max-age=31536000;includeSubDomains", + "X-Content-Type-Options": "nosniff", + "x-ms-keyvault-network-info": "conn_type=Ipv4;addr=24.17.201.78;act_addr_fam=InterNetwork;", + "x-ms-keyvault-region": "eastus", + "x-ms-keyvault-service-version": "1.9.444.2", + "x-ms-request-id": "f0e0f771-045c-4050-bea5-a16d17f04c2e" + }, + "ResponseBody": { + "value": [ + { + "id": "https://fakevault/certificates/1374356525-3", + "x5t": "zLZX_CExzYWtLVs0p0rSddOf5gM", + "attributes": { + "enabled": true, + "nbf": 1656543472, + "exp": 1688080072, + "created": 1656544072, + "updated": 1656544072 + }, + "tags": { + "1374356525": "yes" + }, + "subject": "" + } + ], + "nextLink": "https://fakevault:443/certificates?api-version=7.3\u0026$skiptoken=eyJOZXh0TWFya2VyIjoiMiE4OCFNREF3TURJeUlXTmxjblJwWm1sallYUmxMekUxT1RNd01qSXdPVEVoTURBd01ESTRJVGs1T1RrdE1USXRNekZVTWpNNk5UazZOVGt1T1RrNU9UazVPVm9oIiwiVGFyZ2V0TG9jYXRpb24iOjB9\u0026maxresults=1" + } + }, + { + "RequestUri": "https://fakevault/certificates/1374356525-3?api-version=7.3", + "RequestMethod": "DELETE", + "RequestHeaders": { + "Accept": "application/json", + "Accept-Encoding": "gzip", + "Authorization": "Sanitized", + "User-Agent": "azsdk-go-azcertificates/v0.5.0 (go1.18; linux)" + }, + "RequestBody": null, + "StatusCode": 200, + "ResponseHeaders": { + "Cache-Control": "no-cache", + "Content-Length": "2382", + "Content-Type": "application/json; charset=utf-8", + "Date": "Wed, 29 Jun 2022 23:09:16 GMT", + "Expires": "-1", + "Pragma": "no-cache", + "Strict-Transport-Security": "max-age=31536000;includeSubDomains", + "X-Content-Type-Options": "nosniff", + "x-ms-keyvault-network-info": "conn_type=Ipv4;addr=24.17.201.78;act_addr_fam=InterNetwork;", + "x-ms-keyvault-region": "eastus", + "x-ms-keyvault-service-version": "1.9.444.2", + "x-ms-request-id": "badf0561-1866-45a4-b688-dba75732ef93" + }, + "ResponseBody": { + "recoveryId": "https://fakevault/deletedcertificates/1374356525-3", + "deletedDate": 1656544156, + "scheduledPurgeDate": 1657148956, + "id": "https://fakevault/certificates/1374356525-3/a0aec17c4c0741ee97e00a1310bcb86d", + "kid": "https://fakevault/keys/1374356525-3/a0aec17c4c0741ee97e00a1310bcb86d", + "sid": "https://fakevault/secrets/1374356525-3/a0aec17c4c0741ee97e00a1310bcb86d", + "x5t": "zLZX_CExzYWtLVs0p0rSddOf5gM", + "cer": "MIIDNjCCAh6gAwIBAgIQaYQgqIHySFeR9Am3zPS2kDANBgkqhkiG9w0BAQsFADAYMRYwFAYDVQQDEw1EZWZhdWx0UG9saWN5MB4XDTIyMDYyOTIyNTc1MloXDTIzMDYyOTIzMDc1MlowGDEWMBQGA1UEAxMNRGVmYXVsdFBvbGljeTCCASIwDQYJKoZIhvcNAQEBBQADggEPADCCAQoCggEBANM\u002BBDuyohn/sUkVCOP/0Wx6oBQuiXttn4rA3ds4zRbuYwodZ8/2narcU6q3pOOvoqHCG0flFwe8yp24NtosnZz01auCFIbIwGk5k9RLxUrx7O24abRRj9FpK67ePJJwa0G8SDdRvn5cKhz58dVIoPRtcz06Aty4yh46HsfJ\u002BaEGIkq20tQMs\u002BG4lxZskuKeztrjZRHkMk0Nj0CAdIu6dYcSi/neeiIsHbbyd9c1vqmiW\u002BuhKyd4KCGtDgYlHZ7WiE7l8mG5AU7LELe3Zj9GXfOopaTM0XHhNaHd4htOl7WRlwLeP0Zn4bDA1raZbU0vOhhXACZZBLwrk2N7GPVS350CAwEAAaN8MHowDgYDVR0PAQH/BAQDAgWgMAkGA1UdEwQCMAAwHQYDVR0lBBYwFAYIKwYBBQUHAwEGCCsGAQUFBwMCMB8GA1UdIwQYMBaAFEb0hWPWiF9WAc7ebnNqUePpoT\u002BiMB0GA1UdDgQWBBRG9IVj1ohfVgHO3m5zalHj6aE/ojANBgkqhkiG9w0BAQsFAAOCAQEANUogy42L\u002BzJDOWUDtukyNh66udhdfsiIog0K3Pgzk7rI2bvimmAQ1zLL8mxk9AwajVVlpb4P7XUZPtYcvGViM4X9Qn\u002Bx6CJdE771ly65j4BJSccFS4fqCL5uz9P8HiSIva\u002BSORXPcBudR6g0fOk9k9SN/dbn9SvV/zV84ixyqjKCJD0c\u002Bg\u002BeBFOlWDjn54zTo3X4IHnde8d5ZZ9jOMmeLzDd2g3aB\u002BK4e450XKoLP5cpht4nIxDEYrB\u002Bq64q3XNJtSV1qqIxL/IB6oXpcV8cLGybO4ph8igqeFlJO3ah5J0GT\u002BGn1251kixLOBZjnYuWVUVD9MAhg8iaiPittMp89w==", + "attributes": { + "enabled": true, + "nbf": 1656543472, + "exp": 1688080072, + "created": 1656544072, + "updated": 1656544072, + "recoveryLevel": "CustomizedRecoverable\u002BPurgeable", + "recoverableDays": 7 + }, + "tags": { + "1374356525": "yes" + }, + "policy": { + "id": "https://fakevault/certificates/1374356525-3/policy", + "key_props": { + "exportable": true, + "kty": "RSA", + "key_size": 2048, + "reuse_key": false + }, + "secret_props": { + "contentType": "application/x-pkcs12" + }, + "x509_props": { + "subject": "CN=DefaultPolicy", + "ekus": [ + "1.3.6.1.5.5.7.3.1", + "1.3.6.1.5.5.7.3.2" + ], + "key_usage": [ + "digitalSignature", + "keyEncipherment" + ], + "validity_months": 12, + "basic_constraints": { + "ca": false + } + }, + "lifetime_actions": [ + { + "trigger": { + "lifetime_percentage": 80 + }, + "action": { + "action_type": "AutoRenew" + } + } + ], + "issuer": { + "name": "self" + }, + "attributes": { + "enabled": true, + "created": 1656544070, + "updated": 1656544070 + } + }, + "pending": { + "id": "https://fakevault/certificates/1374356525-3/pending" + } + } + }, + { + "RequestUri": "https://fakevault/certificates?api-version=7.3\u0026$skiptoken=eyJOZXh0TWFya2VyIjoiMiE4OCFNREF3TURJeUlXTmxjblJwWm1sallYUmxMekUxT1RNd01qSXdPVEVoTURBd01ESTRJVGs1T1RrdE1USXRNekZVTWpNNk5UazZOVGt1T1RrNU9UazVPVm9oIiwiVGFyZ2V0TG9jYXRpb24iOjB9\u0026maxresults=1", + "RequestMethod": "GET", + "RequestHeaders": { + "Accept-Encoding": "gzip", + "Authorization": "Sanitized", + "User-Agent": "azsdk-go-azcertificates/v0.5.0 (go1.18; linux)" + }, + "RequestBody": null, + "StatusCode": 200, + "ResponseHeaders": { + "Cache-Control": "no-cache", + "Content-Length": "279", + "Content-Type": "application/json; charset=utf-8", + "Date": "Wed, 29 Jun 2022 23:09:16 GMT", + "Expires": "-1", + "Pragma": "no-cache", + "Strict-Transport-Security": "max-age=31536000;includeSubDomains", + "X-Content-Type-Options": "nosniff", + "x-ms-keyvault-network-info": "conn_type=Ipv4;addr=24.17.201.78;act_addr_fam=InterNetwork;", + "x-ms-keyvault-region": "eastus", + "x-ms-keyvault-service-version": "1.9.444.2", + "x-ms-request-id": "7b75d4a3-7914-4d6e-8a9a-34e8388e457a" + }, + "ResponseBody": { + "value": [], + "nextLink": "https://fakevault:443/certificates?api-version=7.3\u0026$skiptoken=eyJOZXh0TWFya2VyIjoiMiE5MiFNREF3TURJeklXTmxjblJwWm1sallYUmxMek14TXpjME16VTJOVEkxSVRBd01EQXlPQ0U1T1RrNUxURXlMVE14VkRJek9qVTVPalU1TGprNU9UazVPVGxhSVEtLSIsIlRhcmdldExvY2F0aW9uIjowfQ\u0026maxresults=1" + } + }, + { + "RequestUri": "https://fakevault/certificates?api-version=7.3\u0026$skiptoken=eyJOZXh0TWFya2VyIjoiMiE5MiFNREF3TURJeklXTmxjblJwWm1sallYUmxMek14TXpjME16VTJOVEkxSVRBd01EQXlPQ0U1T1RrNUxURXlMVE14VkRJek9qVTVPalU1TGprNU9UazVPVGxhSVEtLSIsIlRhcmdldExvY2F0aW9uIjowfQ\u0026maxresults=1", + "RequestMethod": "GET", + "RequestHeaders": { + "Accept-Encoding": "gzip", + "Authorization": "Sanitized", + "User-Agent": "azsdk-go-azcertificates/v0.5.0 (go1.18; linux)" + }, + "RequestBody": null, + "StatusCode": 200, + "ResponseHeaders": { + "Cache-Control": "no-cache", + "Content-Length": "28", + "Content-Type": "application/json; charset=utf-8", + "Date": "Wed, 29 Jun 2022 23:09:16 GMT", + "Expires": "-1", + "Pragma": "no-cache", + "Strict-Transport-Security": "max-age=31536000;includeSubDomains", + "X-Content-Type-Options": "nosniff", + "x-ms-keyvault-network-info": "conn_type=Ipv4;addr=24.17.201.78;act_addr_fam=InterNetwork;", + "x-ms-keyvault-region": "eastus", + "x-ms-keyvault-service-version": "1.9.444.2", + "x-ms-request-id": "92491531-0ac5-4a70-8f80-f8e432fc7208" + }, + "ResponseBody": { + "value": [], + "nextLink": null + } + }, + { + "RequestUri": "https://fakevault/deletedcertificates/1374356525-0?api-version=7.3", + "RequestMethod": "GET", + "RequestHeaders": { + "Accept": "application/json", + "Accept-Encoding": "gzip", + "Authorization": "Sanitized", + "User-Agent": "azsdk-go-azcertificates/v0.5.0 (go1.18; linux)" + }, + "RequestBody": null, + "StatusCode": 404, + "ResponseHeaders": { + "Cache-Control": "no-cache", + "Content-Length": "96", + "Content-Type": "application/json; charset=utf-8", + "Date": "Wed, 29 Jun 2022 23:09:17 GMT", + "Expires": "-1", + "Pragma": "no-cache", + "Strict-Transport-Security": "max-age=31536000;includeSubDomains", + "X-Content-Type-Options": "nosniff", + "x-ms-keyvault-network-info": "conn_type=Ipv4;addr=24.17.201.78;act_addr_fam=InterNetwork;", + "x-ms-keyvault-region": "eastus", + "x-ms-keyvault-service-version": "1.9.444.2", + "x-ms-request-id": "3dc5238a-2a94-44e6-868a-a01577e7c43b" + }, + "ResponseBody": { + "error": { + "code": "CertificateNotFound", + "message": "Deleted Certificate not found: 1374356525-0" + } + } + }, + { + "RequestUri": "https://fakevault/deletedcertificates/1374356525-0?api-version=7.3", + "RequestMethod": "GET", + "RequestHeaders": { + "Accept": "application/json", + "Accept-Encoding": "gzip", + "Authorization": "Sanitized", + "User-Agent": "azsdk-go-azcertificates/v0.5.0 (go1.18; linux)" + }, + "RequestBody": null, + "StatusCode": 404, + "ResponseHeaders": { + "Cache-Control": "no-cache", + "Content-Length": "96", + "Content-Type": "application/json; charset=utf-8", + "Date": "Wed, 29 Jun 2022 23:09:27 GMT", + "Expires": "-1", + "Pragma": "no-cache", + "Strict-Transport-Security": "max-age=31536000;includeSubDomains", + "X-Content-Type-Options": "nosniff", + "x-ms-keyvault-network-info": "conn_type=Ipv4;addr=24.17.201.78;act_addr_fam=InterNetwork;", + "x-ms-keyvault-region": "eastus", + "x-ms-keyvault-service-version": "1.9.444.2", + "x-ms-request-id": "fd0000fb-5340-4335-98a1-b1e86e889756" + }, + "ResponseBody": { + "error": { + "code": "CertificateNotFound", + "message": "Deleted Certificate not found: 1374356525-0" + } + } + }, + { + "RequestUri": "https://fakevault/deletedcertificates/1374356525-0?api-version=7.3", + "RequestMethod": "GET", + "RequestHeaders": { + "Accept": "application/json", + "Accept-Encoding": "gzip", + "Authorization": "Sanitized", + "User-Agent": "azsdk-go-azcertificates/v0.5.0 (go1.18; linux)" + }, + "RequestBody": null, + "StatusCode": 200, + "ResponseHeaders": { + "Cache-Control": "no-cache", + "Content-Length": "2382", + "Content-Type": "application/json; charset=utf-8", + "Date": "Wed, 29 Jun 2022 23:09:37 GMT", + "Expires": "-1", + "Pragma": "no-cache", + "Strict-Transport-Security": "max-age=31536000;includeSubDomains", + "X-Content-Type-Options": "nosniff", + "x-ms-keyvault-network-info": "conn_type=Ipv4;addr=24.17.201.78;act_addr_fam=InterNetwork;", + "x-ms-keyvault-region": "eastus", + "x-ms-keyvault-service-version": "1.9.444.2", + "x-ms-request-id": "0477e562-cd98-43fd-ae77-b7684857ab0c" + }, + "ResponseBody": { + "recoveryId": "https://fakevault/deletedcertificates/1374356525-0", + "deletedDate": 1656544155, + "scheduledPurgeDate": 1657148955, + "id": "https://fakevault/certificates/1374356525-0/d0e89095388f4467a51bc382a7e8c406", + "kid": "https://fakevault/keys/1374356525-0/d0e89095388f4467a51bc382a7e8c406", + "sid": "https://fakevault/secrets/1374356525-0/d0e89095388f4467a51bc382a7e8c406", + "x5t": "on6zpOmz7jKOCqFmzLLSFdWV7pg", + "cer": "MIIDNjCCAh6gAwIBAgIQQML1kmZ0TjuvTtzjOmql0jANBgkqhkiG9w0BAQsFADAYMRYwFAYDVQQDEw1EZWZhdWx0UG9saWN5MB4XDTIyMDYyOTIyNTc1MFoXDTIzMDYyOTIzMDc1MFowGDEWMBQGA1UEAxMNRGVmYXVsdFBvbGljeTCCASIwDQYJKoZIhvcNAQEBBQADggEPADCCAQoCggEBAMqflblALjYyqNzOzCeBd8rIxbq4/58/vDytzm7E\u002B2ln69UV4LP\u002BS4A\u002BFuOU49R/Y3tKQp6Z7131vtsahGXzWOwNjpzDzE3eDIu5\u002BlvXj/zxdCbOE7Pkv0Yn9AS33mTt54a76uULA\u002BT6hRX2xhNhfmVDUzPPtEQHERPbQR9p/q0Hzgf1cmTorvnqaKr63jpSMubqeuG8XK9KDZM4Q1pOkP2gEqKY3xPvS\u002B2gR83gCEtyYhP1pWCR6lJX/ndh56R\u002BC8GGQY7vm4sYeTghtllkwxFNHNjaKoHfW\u002BdRB73d9W7hLtnLUfbQkQ\u002BUfarX7mo4QJm8te97rtC2c1VNiKkTv20CAwEAAaN8MHowDgYDVR0PAQH/BAQDAgWgMAkGA1UdEwQCMAAwHQYDVR0lBBYwFAYIKwYBBQUHAwEGCCsGAQUFBwMCMB8GA1UdIwQYMBaAFNZlSUnnuOoF4K0A7wF53cLKq2ukMB0GA1UdDgQWBBTWZUlJ57jqBeCtAO8Bed3CyqtrpDANBgkqhkiG9w0BAQsFAAOCAQEAU\u002Bkv2Y93MDAMGIFv8cs92jpoE1vWWHoAircqXbmTpkhWgXvVsK4fswSrpEBE8b4PKHyPgNfgFCI01cbKzJ8FVlxvc5wWgV3ZABnIWO7YYuEzMzHWunsmeX\u002BVGD5xr9dFKf6PLe2kTtZqOjVnbPMQULnQTtG57vNO7PJfJYaGoRBssElMQ1ia/Exbt1IkuxIPEWLZ04NKrqlVQFVd7skMOUVeMYelCu04GOjVNxkI1SNVbe7nxTu26tkhy/xUDIAuee6VI5TPrGldwjeBHMv0z3NLH3\u002BLduKoEHjNLMvxRIVzgC0RZKm4t5041YNIpV9arkZv7KCiFDAwgDfXGgPQXQ==", + "attributes": { + "enabled": true, + "nbf": 1656543470, + "exp": 1688080070, + "created": 1656544071, + "updated": 1656544071, + "recoveryLevel": "CustomizedRecoverable\u002BPurgeable", + "recoverableDays": 7 + }, + "tags": { + "1374356525": "yes" + }, + "policy": { + "id": "https://fakevault/certificates/1374356525-0/policy", + "key_props": { + "exportable": true, + "kty": "RSA", + "key_size": 2048, + "reuse_key": false + }, + "secret_props": { + "contentType": "application/x-pkcs12" + }, + "x509_props": { + "subject": "CN=DefaultPolicy", + "ekus": [ + "1.3.6.1.5.5.7.3.1", + "1.3.6.1.5.5.7.3.2" + ], + "key_usage": [ + "digitalSignature", + "keyEncipherment" + ], + "validity_months": 12, + "basic_constraints": { + "ca": false + } + }, + "lifetime_actions": [ + { + "trigger": { + "lifetime_percentage": 80 + }, + "action": { + "action_type": "AutoRenew" + } + } + ], + "issuer": { + "name": "self" + }, + "attributes": { + "enabled": true, + "created": 1656544067, + "updated": 1656544067 + } + }, + "pending": { + "id": "https://fakevault/certificates/1374356525-0/pending" + } + } + }, + { + "RequestUri": "https://fakevault/deletedcertificates/1374356525-1?api-version=7.3", + "RequestMethod": "GET", + "RequestHeaders": { + "Accept": "application/json", + "Accept-Encoding": "gzip", + "Authorization": "Sanitized", + "User-Agent": "azsdk-go-azcertificates/v0.5.0 (go1.18; linux)" + }, + "RequestBody": null, + "StatusCode": 404, + "ResponseHeaders": { + "Cache-Control": "no-cache", + "Content-Length": "96", + "Content-Type": "application/json; charset=utf-8", + "Date": "Wed, 29 Jun 2022 23:09:37 GMT", + "Expires": "-1", + "Pragma": "no-cache", + "Strict-Transport-Security": "max-age=31536000;includeSubDomains", + "X-Content-Type-Options": "nosniff", + "x-ms-keyvault-network-info": "conn_type=Ipv4;addr=24.17.201.78;act_addr_fam=InterNetwork;", + "x-ms-keyvault-region": "eastus", + "x-ms-keyvault-service-version": "1.9.444.2", + "x-ms-request-id": "183f3fd1-c8ad-4b19-9151-579b798eb71e" + }, + "ResponseBody": { + "error": { + "code": "CertificateNotFound", + "message": "Deleted Certificate not found: 1374356525-1" + } + } + }, + { + "RequestUri": "https://fakevault/deletedcertificates/1374356525-1?api-version=7.3", + "RequestMethod": "GET", + "RequestHeaders": { + "Accept": "application/json", + "Accept-Encoding": "gzip", + "Authorization": "Sanitized", + "User-Agent": "azsdk-go-azcertificates/v0.5.0 (go1.18; linux)" + }, + "RequestBody": null, + "StatusCode": 404, + "ResponseHeaders": { + "Cache-Control": "no-cache", + "Content-Length": "96", + "Content-Type": "application/json; charset=utf-8", + "Date": "Wed, 29 Jun 2022 23:09:47 GMT", + "Expires": "-1", + "Pragma": "no-cache", + "Strict-Transport-Security": "max-age=31536000;includeSubDomains", + "X-Content-Type-Options": "nosniff", + "x-ms-keyvault-network-info": "conn_type=Ipv4;addr=24.17.201.78;act_addr_fam=InterNetwork;", + "x-ms-keyvault-region": "eastus", + "x-ms-keyvault-service-version": "1.9.444.2", + "x-ms-request-id": "cac2e394-96d1-4257-b411-ebee814c37a4" + }, + "ResponseBody": { + "error": { + "code": "CertificateNotFound", + "message": "Deleted Certificate not found: 1374356525-1" + } + } + }, + { + "RequestUri": "https://fakevault/deletedcertificates/1374356525-1?api-version=7.3", + "RequestMethod": "GET", + "RequestHeaders": { + "Accept": "application/json", + "Accept-Encoding": "gzip", + "Authorization": "Sanitized", + "User-Agent": "azsdk-go-azcertificates/v0.5.0 (go1.18; linux)" + }, + "RequestBody": null, + "StatusCode": 200, + "ResponseHeaders": { + "Cache-Control": "no-cache", + "Content-Length": "2382", + "Content-Type": "application/json; charset=utf-8", + "Date": "Wed, 29 Jun 2022 23:09:57 GMT", + "Expires": "-1", + "Pragma": "no-cache", + "Strict-Transport-Security": "max-age=31536000;includeSubDomains", + "X-Content-Type-Options": "nosniff", + "x-ms-keyvault-network-info": "conn_type=Ipv4;addr=24.17.201.78;act_addr_fam=InterNetwork;", + "x-ms-keyvault-region": "eastus", + "x-ms-keyvault-service-version": "1.9.444.2", + "x-ms-request-id": "11ed24d8-41f8-4426-a5dd-2413713f525d" + }, + "ResponseBody": { + "recoveryId": "https://fakevault/deletedcertificates/1374356525-1", + "deletedDate": 1656544156, + "scheduledPurgeDate": 1657148956, + "id": "https://fakevault/certificates/1374356525-1/ac12127c97cb4f51bcfc21d0c944bc93", + "kid": "https://fakevault/keys/1374356525-1/ac12127c97cb4f51bcfc21d0c944bc93", + "sid": "https://fakevault/secrets/1374356525-1/ac12127c97cb4f51bcfc21d0c944bc93", + "x5t": "0JYl10hflkFZqNCe8gR2KF1y_do", + "cer": "MIIDNjCCAh6gAwIBAgIQDyJZY66WQKeidwyHUX\u002BD6DANBgkqhkiG9w0BAQsFADAYMRYwFAYDVQQDEw1EZWZhdWx0UG9saWN5MB4XDTIyMDYyOTIyNTc1MFoXDTIzMDYyOTIzMDc1MFowGDEWMBQGA1UEAxMNRGVmYXVsdFBvbGljeTCCASIwDQYJKoZIhvcNAQEBBQADggEPADCCAQoCggEBAMQVgk7O4ETVoxr7IXi31g7HrHPEfwc3uNBhZsds/kw6/hPwlnqdAM6GfAFw0QX6ggYRCYgCftgKvIjiWkTjTUtuSZeFbLuCM1V6QJjbi1Z5iGqFTayWKZKYLh4rfPH\u002BqPyFovr4SxfRk8CNFvTVQQamna5dZMxBn1MzrO65SuYSFIW2Dzq4VMWW0Jh0hyd3/adbEatbtbQ9L3qGxwijHLk\u002B7iAkYjYKU8ucVoy87KwK8UK6mhRzrfYKIQozqSX2F6thEBSNBcVS7esjX6Oe7JiqHhksTVkuHRBCovd5rnAiSw4oyKJqzosG5ewIhEBrVeKKU5ORes19emyYSodTTuUCAwEAAaN8MHowDgYDVR0PAQH/BAQDAgWgMAkGA1UdEwQCMAAwHQYDVR0lBBYwFAYIKwYBBQUHAwEGCCsGAQUFBwMCMB8GA1UdIwQYMBaAFGMEUtJX1jH2jkirvAUbEz40Nia4MB0GA1UdDgQWBBRjBFLSV9Yx9o5Iq7wFGxM\u002BNDYmuDANBgkqhkiG9w0BAQsFAAOCAQEAfUBjYusfR9HgkREXWZ4/p/3jG4tLA8y6LYV1LYvaM9O/MyejkuaYg0zpBNRocy2X6ukTRML2DUXzygNh5dJVtzUDQrIQTZeOHkjVDqs76MuogLQGCdGCeGx8rA9xc8YToi7DonQqJS8yT8/9KpzIkwPV\u002BKJVNBD0R1GRMTr6ZvK9N0UgQR0vS3vnZxYUyWmxYLu3ahJFB42JCDYd9DQ0t6DbgskYTPMA8y7s1att69ERDggSt4kkN5Oi/cN3YZnDmYD3hcE0FjhXpQ/82vW5q9oLKpeG/bDRWfPIqYyF/6JQ0kbeuh3rQaQWtMTHV1p5BrS5AidP6Aj95O9RsYXnag==", + "attributes": { + "enabled": true, + "nbf": 1656543470, + "exp": 1688080070, + "created": 1656544071, + "updated": 1656544071, + "recoveryLevel": "CustomizedRecoverable\u002BPurgeable", + "recoverableDays": 7 + }, + "tags": { + "1374356525": "yes" + }, + "policy": { + "id": "https://fakevault/certificates/1374356525-1/policy", + "key_props": { + "exportable": true, + "kty": "RSA", + "key_size": 2048, + "reuse_key": false + }, + "secret_props": { + "contentType": "application/x-pkcs12" + }, + "x509_props": { + "subject": "CN=DefaultPolicy", + "ekus": [ + "1.3.6.1.5.5.7.3.1", + "1.3.6.1.5.5.7.3.2" + ], + "key_usage": [ + "digitalSignature", + "keyEncipherment" + ], + "validity_months": 12, + "basic_constraints": { + "ca": false + } + }, + "lifetime_actions": [ + { + "trigger": { + "lifetime_percentage": 80 + }, + "action": { + "action_type": "AutoRenew" + } + } + ], + "issuer": { + "name": "self" + }, + "attributes": { + "enabled": true, + "created": 1656544068, + "updated": 1656544068 + } + }, + "pending": { + "id": "https://fakevault/certificates/1374356525-1/pending" + } + } + }, + { + "RequestUri": "https://fakevault/deletedcertificates/1374356525-2?api-version=7.3", + "RequestMethod": "GET", + "RequestHeaders": { + "Accept": "application/json", + "Accept-Encoding": "gzip", + "Authorization": "Sanitized", + "User-Agent": "azsdk-go-azcertificates/v0.5.0 (go1.18; linux)" + }, + "RequestBody": null, + "StatusCode": 200, + "ResponseHeaders": { + "Cache-Control": "no-cache", + "Content-Length": "2382", + "Content-Type": "application/json; charset=utf-8", + "Date": "Wed, 29 Jun 2022 23:09:57 GMT", + "Expires": "-1", + "Pragma": "no-cache", + "Strict-Transport-Security": "max-age=31536000;includeSubDomains", + "X-Content-Type-Options": "nosniff", + "x-ms-keyvault-network-info": "conn_type=Ipv4;addr=24.17.201.78;act_addr_fam=InterNetwork;", + "x-ms-keyvault-region": "eastus", + "x-ms-keyvault-service-version": "1.9.444.2", + "x-ms-request-id": "8bacf3b7-51fc-43a7-b0f1-7d218a9cd509" + }, + "ResponseBody": { + "recoveryId": "https://fakevault/deletedcertificates/1374356525-2", + "deletedDate": 1656544156, + "scheduledPurgeDate": 1657148956, + "id": "https://fakevault/certificates/1374356525-2/8b31c3b9216141d683f258e8d100e439", + "kid": "https://fakevault/keys/1374356525-2/8b31c3b9216141d683f258e8d100e439", + "sid": "https://fakevault/secrets/1374356525-2/8b31c3b9216141d683f258e8d100e439", + "x5t": "Pv6jtNa13wEU32isuPrLWoRs9GY", + "cer": "MIIDNjCCAh6gAwIBAgIQfh2W4QCZQqypoG8yiuLpUTANBgkqhkiG9w0BAQsFADAYMRYwFAYDVQQDEw1EZWZhdWx0UG9saWN5MB4XDTIyMDYyOTIyNTc1MVoXDTIzMDYyOTIzMDc1MVowGDEWMBQGA1UEAxMNRGVmYXVsdFBvbGljeTCCASIwDQYJKoZIhvcNAQEBBQADggEPADCCAQoCggEBAPqy7PWnxnNSMWP1Am3QQ6sU4tsB5LyJDhKLzN2rbVTtCCD8KATxfuh/zkhWAkKMQEk0LnAfv9fNih9OzCVtfJdYZaxxR38WBFcbQAAMJ0osECqPM5ggvC5CT59g3gA/v7mcIQVnMhXBqPKUV7qq/cACbeLAw/2gsM7jctUKXP\u002Balo/tg7rAgk5vsBS/066e55e\u002B1AUatnwxWI0fl4eR4VuYKFu\u002BKPvQtIkXhwGnCkyZ1sfmnHymVVC6oH54zRJPHNQLfFvP9HSBkSzt5yVTdH9YOdy6KP5tUBtT4ZtGPowSB4D3Q77KrSFsE7xbda402weSD7XchcaDdY/sTRu24n0CAwEAAaN8MHowDgYDVR0PAQH/BAQDAgWgMAkGA1UdEwQCMAAwHQYDVR0lBBYwFAYIKwYBBQUHAwEGCCsGAQUFBwMCMB8GA1UdIwQYMBaAFF/UXw\u002Bovitwv1Euyv\u002BJvgzyoEoWMB0GA1UdDgQWBBRf1F8PqL4rcL9RLsr/ib4M8qBKFjANBgkqhkiG9w0BAQsFAAOCAQEAq\u002BPcjWuqwNlewVGRiDO4iwX2x0u\u002BgYDnK3aa4RQ3dAOc3TongqiUGpiz0sflvpVCSumlryBxKdkwWrNKilUTAavGMY6z6Na0MetsnZUx2DKYf/LKkBDV1rs/yVaypgT0MC5muhDX0BfY3Ts04VFxZr44UqCGvNxIrSHapnB\u002Be0k/BWiBcKE5YeId5ViJmuXC0NNAxRREJMu\u002BiDkKY7ncaTlRTMTxH2PKr0V9tPtY4s4Rje00qbPLNen3NAlW1NxZX0Z86UY8mCLNgKI\u002BXB2fYijjAaLChvBlCyMyorSn55yHpwFXt6vNalz4x/\u002BXUx0WtvaS4YUPms6aDrcLBcj4tQ==", + "attributes": { + "enabled": true, + "nbf": 1656543471, + "exp": 1688080071, + "created": 1656544071, + "updated": 1656544071, + "recoveryLevel": "CustomizedRecoverable\u002BPurgeable", + "recoverableDays": 7 + }, + "tags": { + "1374356525": "yes" + }, + "policy": { + "id": "https://fakevault/certificates/1374356525-2/policy", + "key_props": { + "exportable": true, + "kty": "RSA", + "key_size": 2048, + "reuse_key": false + }, + "secret_props": { + "contentType": "application/x-pkcs12" + }, + "x509_props": { + "subject": "CN=DefaultPolicy", + "ekus": [ + "1.3.6.1.5.5.7.3.1", + "1.3.6.1.5.5.7.3.2" + ], + "key_usage": [ + "digitalSignature", + "keyEncipherment" + ], + "validity_months": 12, + "basic_constraints": { + "ca": false + } + }, + "lifetime_actions": [ + { + "trigger": { + "lifetime_percentage": 80 + }, + "action": { + "action_type": "AutoRenew" + } + } + ], + "issuer": { + "name": "self" + }, + "attributes": { + "enabled": true, + "created": 1656544069, + "updated": 1656544069 + } + }, + "pending": { + "id": "https://fakevault/certificates/1374356525-2/pending" + } + } + }, + { + "RequestUri": "https://fakevault/deletedcertificates/1374356525-3?api-version=7.3", + "RequestMethod": "GET", + "RequestHeaders": { + "Accept": "application/json", + "Accept-Encoding": "gzip", + "Authorization": "Sanitized", + "User-Agent": "azsdk-go-azcertificates/v0.5.0 (go1.18; linux)" + }, + "RequestBody": null, + "StatusCode": 200, + "ResponseHeaders": { + "Cache-Control": "no-cache", + "Content-Length": "2382", + "Content-Type": "application/json; charset=utf-8", + "Date": "Wed, 29 Jun 2022 23:09:57 GMT", + "Expires": "-1", + "Pragma": "no-cache", + "Strict-Transport-Security": "max-age=31536000;includeSubDomains", + "X-Content-Type-Options": "nosniff", + "x-ms-keyvault-network-info": "conn_type=Ipv4;addr=24.17.201.78;act_addr_fam=InterNetwork;", + "x-ms-keyvault-region": "eastus", + "x-ms-keyvault-service-version": "1.9.444.2", + "x-ms-request-id": "bc52b153-9fe4-4662-a054-eab6e8312778" + }, + "ResponseBody": { + "recoveryId": "https://fakevault/deletedcertificates/1374356525-3", + "deletedDate": 1656544156, + "scheduledPurgeDate": 1657148956, + "id": "https://fakevault/certificates/1374356525-3/a0aec17c4c0741ee97e00a1310bcb86d", + "kid": "https://fakevault/keys/1374356525-3/a0aec17c4c0741ee97e00a1310bcb86d", + "sid": "https://fakevault/secrets/1374356525-3/a0aec17c4c0741ee97e00a1310bcb86d", + "x5t": "zLZX_CExzYWtLVs0p0rSddOf5gM", + "cer": "MIIDNjCCAh6gAwIBAgIQaYQgqIHySFeR9Am3zPS2kDANBgkqhkiG9w0BAQsFADAYMRYwFAYDVQQDEw1EZWZhdWx0UG9saWN5MB4XDTIyMDYyOTIyNTc1MloXDTIzMDYyOTIzMDc1MlowGDEWMBQGA1UEAxMNRGVmYXVsdFBvbGljeTCCASIwDQYJKoZIhvcNAQEBBQADggEPADCCAQoCggEBANM\u002BBDuyohn/sUkVCOP/0Wx6oBQuiXttn4rA3ds4zRbuYwodZ8/2narcU6q3pOOvoqHCG0flFwe8yp24NtosnZz01auCFIbIwGk5k9RLxUrx7O24abRRj9FpK67ePJJwa0G8SDdRvn5cKhz58dVIoPRtcz06Aty4yh46HsfJ\u002BaEGIkq20tQMs\u002BG4lxZskuKeztrjZRHkMk0Nj0CAdIu6dYcSi/neeiIsHbbyd9c1vqmiW\u002BuhKyd4KCGtDgYlHZ7WiE7l8mG5AU7LELe3Zj9GXfOopaTM0XHhNaHd4htOl7WRlwLeP0Zn4bDA1raZbU0vOhhXACZZBLwrk2N7GPVS350CAwEAAaN8MHowDgYDVR0PAQH/BAQDAgWgMAkGA1UdEwQCMAAwHQYDVR0lBBYwFAYIKwYBBQUHAwEGCCsGAQUFBwMCMB8GA1UdIwQYMBaAFEb0hWPWiF9WAc7ebnNqUePpoT\u002BiMB0GA1UdDgQWBBRG9IVj1ohfVgHO3m5zalHj6aE/ojANBgkqhkiG9w0BAQsFAAOCAQEANUogy42L\u002BzJDOWUDtukyNh66udhdfsiIog0K3Pgzk7rI2bvimmAQ1zLL8mxk9AwajVVlpb4P7XUZPtYcvGViM4X9Qn\u002Bx6CJdE771ly65j4BJSccFS4fqCL5uz9P8HiSIva\u002BSORXPcBudR6g0fOk9k9SN/dbn9SvV/zV84ixyqjKCJD0c\u002Bg\u002BeBFOlWDjn54zTo3X4IHnde8d5ZZ9jOMmeLzDd2g3aB\u002BK4e450XKoLP5cpht4nIxDEYrB\u002Bq64q3XNJtSV1qqIxL/IB6oXpcV8cLGybO4ph8igqeFlJO3ah5J0GT\u002BGn1251kixLOBZjnYuWVUVD9MAhg8iaiPittMp89w==", + "attributes": { + "enabled": true, + "nbf": 1656543472, + "exp": 1688080072, + "created": 1656544072, + "updated": 1656544072, + "recoveryLevel": "CustomizedRecoverable\u002BPurgeable", + "recoverableDays": 7 + }, + "tags": { + "1374356525": "yes" + }, + "policy": { + "id": "https://fakevault/certificates/1374356525-3/policy", + "key_props": { + "exportable": true, + "kty": "RSA", + "key_size": 2048, + "reuse_key": false + }, + "secret_props": { + "contentType": "application/x-pkcs12" + }, + "x509_props": { + "subject": "CN=DefaultPolicy", + "ekus": [ + "1.3.6.1.5.5.7.3.1", + "1.3.6.1.5.5.7.3.2" + ], + "key_usage": [ + "digitalSignature", + "keyEncipherment" + ], + "validity_months": 12, + "basic_constraints": { + "ca": false + } + }, + "lifetime_actions": [ + { + "trigger": { + "lifetime_percentage": 80 + }, + "action": { + "action_type": "AutoRenew" + } + } + ], + "issuer": { + "name": "self" + }, + "attributes": { + "enabled": true, + "created": 1656544070, + "updated": 1656544070 + } + }, + "pending": { + "id": "https://fakevault/certificates/1374356525-3/pending" + } + } + }, + { + "RequestUri": "https://fakevault/deletedcertificates?api-version=7.3\u0026includePending=true\u0026maxresults=1", + "RequestMethod": "GET", + "RequestHeaders": { + "Accept": "application/json", + "Accept-Encoding": "gzip", + "Authorization": "Sanitized", + "User-Agent": "azsdk-go-azcertificates/v0.5.0 (go1.18; linux)" + }, + "RequestBody": null, + "StatusCode": 200, + "ResponseHeaders": { + "Cache-Control": "no-cache", + "Content-Length": "701", + "Content-Type": "application/json; charset=utf-8", + "Date": "Wed, 29 Jun 2022 23:09:57 GMT", + "Expires": "-1", + "Pragma": "no-cache", + "Strict-Transport-Security": "max-age=31536000;includeSubDomains", + "X-Content-Type-Options": "nosniff", + "x-ms-keyvault-network-info": "conn_type=Ipv4;addr=24.17.201.78;act_addr_fam=InterNetwork;", + "x-ms-keyvault-region": "eastus", + "x-ms-keyvault-service-version": "1.9.444.2", + "x-ms-request-id": "483bb704-85cc-4ad4-9bd8-7f539a438012" + }, + "ResponseBody": { + "value": [ + { + "recoveryId": "https://fakevault/deletedcertificates/1374356525-0", + "deletedDate": 1656544155, + "scheduledPurgeDate": 1657148955, + "id": "https://fakevault/certificates/1374356525-0", + "x5t": "on6zpOmz7jKOCqFmzLLSFdWV7pg", + "attributes": { + "enabled": true, + "nbf": 1656543470, + "exp": 1688080070, + "created": 1656544071, + "updated": 1656544071, + "recoveryLevel": "CustomizedRecoverable\u002BPurgeable", + "recoverableDays": 7 + }, + "tags": { + "1374356525": "yes" + } + } + ], + "nextLink": "https://fakevault:443/deletedcertificates?api-version=7.3\u0026$skiptoken=eyJOZXh0TWFya2VyIjoiMiE5MiFNREF3TURJMElXTmxjblJwWm1sallYUmxMekV6TnpRek5UWTFNalV0TVNFd01EQXdNamdoT1RrNU9TMHhNaTB6TVZReU16bzFPVG8xT1M0NU9UazVPVGs1V2lFLSIsIlRhcmdldExvY2F0aW9uIjowfQ\u0026maxresults=1" + } + }, + { + "RequestUri": "https://fakevault/deletedcertificates/1374356525-0?api-version=7.3", + "RequestMethod": "DELETE", + "RequestHeaders": { + "Accept": "application/json", + "Accept-Encoding": "gzip", + "Authorization": "Sanitized", + "User-Agent": "azsdk-go-azcertificates/v0.5.0 (go1.18; linux)" + }, + "RequestBody": null, + "StatusCode": 204, + "ResponseHeaders": { + "Cache-Control": "no-cache", + "Date": "Wed, 29 Jun 2022 23:09:58 GMT", + "Expires": "-1", + "Pragma": "no-cache", + "Strict-Transport-Security": "max-age=31536000;includeSubDomains", + "X-Content-Type-Options": "nosniff", + "x-ms-keyvault-network-info": "conn_type=Ipv4;addr=24.17.201.78;act_addr_fam=InterNetwork;", + "x-ms-keyvault-region": "eastus", + "x-ms-keyvault-service-version": "1.9.444.2", + "x-ms-request-id": "c93eaea4-8af0-4fdf-b6ed-a49de4d58264" + }, + "ResponseBody": null + }, + { + "RequestUri": "https://fakevault/deletedcertificates?api-version=7.3\u0026$skiptoken=eyJOZXh0TWFya2VyIjoiMiE5MiFNREF3TURJMElXTmxjblJwWm1sallYUmxMekV6TnpRek5UWTFNalV0TVNFd01EQXdNamdoT1RrNU9TMHhNaTB6TVZReU16bzFPVG8xT1M0NU9UazVPVGs1V2lFLSIsIlRhcmdldExvY2F0aW9uIjowfQ\u0026maxresults=1", + "RequestMethod": "GET", + "RequestHeaders": { + "Accept-Encoding": "gzip", + "Authorization": "Sanitized", + "User-Agent": "azsdk-go-azcertificates/v0.5.0 (go1.18; linux)" + }, + "RequestBody": null, + "StatusCode": 200, + "ResponseHeaders": { + "Cache-Control": "no-cache", + "Content-Length": "701", + "Content-Type": "application/json; charset=utf-8", + "Date": "Wed, 29 Jun 2022 23:09:58 GMT", + "Expires": "-1", + "Pragma": "no-cache", + "Strict-Transport-Security": "max-age=31536000;includeSubDomains", + "X-Content-Type-Options": "nosniff", + "x-ms-keyvault-network-info": "conn_type=Ipv4;addr=24.17.201.78;act_addr_fam=InterNetwork;", + "x-ms-keyvault-region": "eastus", + "x-ms-keyvault-service-version": "1.9.444.2", + "x-ms-request-id": "575946d2-7dc9-4177-9ea9-77d60d7274a5" + }, + "ResponseBody": { + "value": [ + { + "recoveryId": "https://fakevault/deletedcertificates/1374356525-1", + "deletedDate": 1656544156, + "scheduledPurgeDate": 1657148956, + "id": "https://fakevault/certificates/1374356525-1", + "x5t": "0JYl10hflkFZqNCe8gR2KF1y_do", + "attributes": { + "enabled": true, + "nbf": 1656543470, + "exp": 1688080070, + "created": 1656544071, + "updated": 1656544071, + "recoveryLevel": "CustomizedRecoverable\u002BPurgeable", + "recoverableDays": 7 + }, + "tags": { + "1374356525": "yes" + } + } + ], + "nextLink": "https://fakevault:443/deletedcertificates?api-version=7.3\u0026$skiptoken=eyJOZXh0TWFya2VyIjoiMiE5MiFNREF3TURJMElXTmxjblJwWm1sallYUmxMekV6TnpRek5UWTFNalV0TWlFd01EQXdNamdoT1RrNU9TMHhNaTB6TVZReU16bzFPVG8xT1M0NU9UazVPVGs1V2lFLSIsIlRhcmdldExvY2F0aW9uIjowfQ\u0026maxresults=1" + } + }, + { + "RequestUri": "https://fakevault/deletedcertificates/1374356525-1?api-version=7.3", + "RequestMethod": "DELETE", + "RequestHeaders": { + "Accept": "application/json", + "Accept-Encoding": "gzip", + "Authorization": "Sanitized", + "User-Agent": "azsdk-go-azcertificates/v0.5.0 (go1.18; linux)" + }, + "RequestBody": null, + "StatusCode": 204, + "ResponseHeaders": { + "Cache-Control": "no-cache", + "Date": "Wed, 29 Jun 2022 23:09:58 GMT", + "Expires": "-1", + "Pragma": "no-cache", + "Strict-Transport-Security": "max-age=31536000;includeSubDomains", + "X-Content-Type-Options": "nosniff", + "x-ms-keyvault-network-info": "conn_type=Ipv4;addr=24.17.201.78;act_addr_fam=InterNetwork;", + "x-ms-keyvault-region": "eastus", + "x-ms-keyvault-service-version": "1.9.444.2", + "x-ms-request-id": "b4b3e5f6-e9cc-4361-bfcf-c5813f06e776" + }, + "ResponseBody": null + }, + { + "RequestUri": "https://fakevault/deletedcertificates?api-version=7.3\u0026$skiptoken=eyJOZXh0TWFya2VyIjoiMiE5MiFNREF3TURJMElXTmxjblJwWm1sallYUmxMekV6TnpRek5UWTFNalV0TWlFd01EQXdNamdoT1RrNU9TMHhNaTB6TVZReU16bzFPVG8xT1M0NU9UazVPVGs1V2lFLSIsIlRhcmdldExvY2F0aW9uIjowfQ\u0026maxresults=1", + "RequestMethod": "GET", + "RequestHeaders": { + "Accept-Encoding": "gzip", + "Authorization": "Sanitized", + "User-Agent": "azsdk-go-azcertificates/v0.5.0 (go1.18; linux)" + }, + "RequestBody": null, + "StatusCode": 200, + "ResponseHeaders": { + "Cache-Control": "no-cache", + "Content-Length": "701", + "Content-Type": "application/json; charset=utf-8", + "Date": "Wed, 29 Jun 2022 23:09:58 GMT", + "Expires": "-1", + "Pragma": "no-cache", + "Strict-Transport-Security": "max-age=31536000;includeSubDomains", + "X-Content-Type-Options": "nosniff", + "x-ms-keyvault-network-info": "conn_type=Ipv4;addr=24.17.201.78;act_addr_fam=InterNetwork;", + "x-ms-keyvault-region": "eastus", + "x-ms-keyvault-service-version": "1.9.444.2", + "x-ms-request-id": "04caabe4-7f8f-4acb-9d36-04e098139a77" + }, + "ResponseBody": { + "value": [ + { + "recoveryId": "https://fakevault/deletedcertificates/1374356525-2", + "deletedDate": 1656544156, + "scheduledPurgeDate": 1657148956, + "id": "https://fakevault/certificates/1374356525-2", + "x5t": "Pv6jtNa13wEU32isuPrLWoRs9GY", + "attributes": { + "enabled": true, + "nbf": 1656543471, + "exp": 1688080071, + "created": 1656544071, + "updated": 1656544071, + "recoveryLevel": "CustomizedRecoverable\u002BPurgeable", + "recoverableDays": 7 + }, + "tags": { + "1374356525": "yes" + } + } + ], + "nextLink": "https://fakevault:443/deletedcertificates?api-version=7.3\u0026$skiptoken=eyJOZXh0TWFya2VyIjoiMiE5MiFNREF3TURJMElXTmxjblJwWm1sallYUmxMekV6TnpRek5UWTFNalV0TXlFd01EQXdNamdoT1RrNU9TMHhNaTB6TVZReU16bzFPVG8xT1M0NU9UazVPVGs1V2lFLSIsIlRhcmdldExvY2F0aW9uIjowfQ\u0026maxresults=1" + } + }, + { + "RequestUri": "https://fakevault/deletedcertificates/1374356525-2?api-version=7.3", + "RequestMethod": "DELETE", + "RequestHeaders": { + "Accept": "application/json", + "Accept-Encoding": "gzip", + "Authorization": "Sanitized", + "User-Agent": "azsdk-go-azcertificates/v0.5.0 (go1.18; linux)" + }, + "RequestBody": null, + "StatusCode": 204, + "ResponseHeaders": { + "Cache-Control": "no-cache", + "Date": "Wed, 29 Jun 2022 23:09:58 GMT", + "Expires": "-1", + "Pragma": "no-cache", + "Strict-Transport-Security": "max-age=31536000;includeSubDomains", + "X-Content-Type-Options": "nosniff", + "x-ms-keyvault-network-info": "conn_type=Ipv4;addr=24.17.201.78;act_addr_fam=InterNetwork;", + "x-ms-keyvault-region": "eastus", + "x-ms-keyvault-service-version": "1.9.444.2", + "x-ms-request-id": "e5512275-4006-4c8b-9fbb-b9afaaaae812" + }, + "ResponseBody": null + }, + { + "RequestUri": "https://fakevault/deletedcertificates?api-version=7.3\u0026$skiptoken=eyJOZXh0TWFya2VyIjoiMiE5MiFNREF3TURJMElXTmxjblJwWm1sallYUmxMekV6TnpRek5UWTFNalV0TXlFd01EQXdNamdoT1RrNU9TMHhNaTB6TVZReU16bzFPVG8xT1M0NU9UazVPVGs1V2lFLSIsIlRhcmdldExvY2F0aW9uIjowfQ\u0026maxresults=1", + "RequestMethod": "GET", + "RequestHeaders": { + "Accept-Encoding": "gzip", + "Authorization": "Sanitized", + "User-Agent": "azsdk-go-azcertificates/v0.5.0 (go1.18; linux)" + }, + "RequestBody": null, + "StatusCode": 200, + "ResponseHeaders": { + "Cache-Control": "no-cache", + "Content-Length": "695", + "Content-Type": "application/json; charset=utf-8", + "Date": "Wed, 29 Jun 2022 23:09:58 GMT", + "Expires": "-1", + "Pragma": "no-cache", + "Strict-Transport-Security": "max-age=31536000;includeSubDomains", + "X-Content-Type-Options": "nosniff", + "x-ms-keyvault-network-info": "conn_type=Ipv4;addr=24.17.201.78;act_addr_fam=InterNetwork;", + "x-ms-keyvault-region": "eastus", + "x-ms-keyvault-service-version": "1.9.444.2", + "x-ms-request-id": "d3da3f12-768e-44df-9080-e78ed51af9d6" + }, + "ResponseBody": { + "value": [ + { + "recoveryId": "https://fakevault/deletedcertificates/1374356525-3", + "deletedDate": 1656544156, + "scheduledPurgeDate": 1657148956, + "id": "https://fakevault/certificates/1374356525-3", + "x5t": "zLZX_CExzYWtLVs0p0rSddOf5gM", + "attributes": { + "enabled": true, + "nbf": 1656543472, + "exp": 1688080072, + "created": 1656544072, + "updated": 1656544072, + "recoveryLevel": "CustomizedRecoverable\u002BPurgeable", + "recoverableDays": 7 + }, + "tags": { + "1374356525": "yes" + } + } + ], + "nextLink": "https://fakevault:443/deletedcertificates?api-version=7.3\u0026$skiptoken=eyJOZXh0TWFya2VyIjoiMiE4OCFNREF3TURJeUlXTmxjblJwWm1sallYUmxMekUxT1RNd01qSXdPVEVoTURBd01ESTRJVGs1T1RrdE1USXRNekZVTWpNNk5UazZOVGt1T1RrNU9UazVPVm9oIiwiVGFyZ2V0TG9jYXRpb24iOjB9\u0026maxresults=1" + } + }, + { + "RequestUri": "https://fakevault/deletedcertificates/1374356525-3?api-version=7.3", + "RequestMethod": "DELETE", + "RequestHeaders": { + "Accept": "application/json", + "Accept-Encoding": "gzip", + "Authorization": "Sanitized", + "User-Agent": "azsdk-go-azcertificates/v0.5.0 (go1.18; linux)" + }, + "RequestBody": null, + "StatusCode": 204, + "ResponseHeaders": { + "Cache-Control": "no-cache", + "Date": "Wed, 29 Jun 2022 23:09:59 GMT", + "Expires": "-1", + "Pragma": "no-cache", + "Strict-Transport-Security": "max-age=31536000;includeSubDomains", + "X-Content-Type-Options": "nosniff", + "x-ms-keyvault-network-info": "conn_type=Ipv4;addr=24.17.201.78;act_addr_fam=InterNetwork;", + "x-ms-keyvault-region": "eastus", + "x-ms-keyvault-service-version": "1.9.444.2", + "x-ms-request-id": "494dabb0-4a39-41cc-b737-7c5866c29d97" + }, + "ResponseBody": null + }, + { + "RequestUri": "https://fakevault/deletedcertificates?api-version=7.3\u0026$skiptoken=eyJOZXh0TWFya2VyIjoiMiE4OCFNREF3TURJeUlXTmxjblJwWm1sallYUmxMekUxT1RNd01qSXdPVEVoTURBd01ESTRJVGs1T1RrdE1USXRNekZVTWpNNk5UazZOVGt1T1RrNU9UazVPVm9oIiwiVGFyZ2V0TG9jYXRpb24iOjB9\u0026maxresults=1", + "RequestMethod": "GET", + "RequestHeaders": { + "Accept-Encoding": "gzip", + "Authorization": "Sanitized", + "User-Agent": "azsdk-go-azcertificates/v0.5.0 (go1.18; linux)" + }, + "RequestBody": null, + "StatusCode": 200, + "ResponseHeaders": { + "Cache-Control": "no-cache", + "Content-Length": "286", + "Content-Type": "application/json; charset=utf-8", + "Date": "Wed, 29 Jun 2022 23:09:59 GMT", + "Expires": "-1", + "Pragma": "no-cache", + "Strict-Transport-Security": "max-age=31536000;includeSubDomains", + "X-Content-Type-Options": "nosniff", + "x-ms-keyvault-network-info": "conn_type=Ipv4;addr=24.17.201.78;act_addr_fam=InterNetwork;", + "x-ms-keyvault-region": "eastus", + "x-ms-keyvault-service-version": "1.9.444.2", + "x-ms-request-id": "5f4172d6-85b3-49f8-87fa-a378e9d011fe" + }, + "ResponseBody": { + "value": [], + "nextLink": "https://fakevault:443/deletedcertificates?api-version=7.3\u0026$skiptoken=eyJOZXh0TWFya2VyIjoiMiE5MiFNREF3TURJeklXTmxjblJwWm1sallYUmxMek14TXpjME16VTJOVEkxSVRBd01EQXlPQ0U1T1RrNUxURXlMVE14VkRJek9qVTVPalU1TGprNU9UazVPVGxhSVEtLSIsIlRhcmdldExvY2F0aW9uIjowfQ\u0026maxresults=1" + } + }, + { + "RequestUri": "https://fakevault/deletedcertificates?api-version=7.3\u0026$skiptoken=eyJOZXh0TWFya2VyIjoiMiE5MiFNREF3TURJeklXTmxjblJwWm1sallYUmxMek14TXpjME16VTJOVEkxSVRBd01EQXlPQ0U1T1RrNUxURXlMVE14VkRJek9qVTVPalU1TGprNU9UazVPVGxhSVEtLSIsIlRhcmdldExvY2F0aW9uIjowfQ\u0026maxresults=1", + "RequestMethod": "GET", + "RequestHeaders": { + "Accept-Encoding": "gzip", + "Authorization": "Sanitized", + "User-Agent": "azsdk-go-azcertificates/v0.5.0 (go1.18; linux)" + }, + "RequestBody": null, + "StatusCode": 200, + "ResponseHeaders": { + "Cache-Control": "no-cache", + "Content-Length": "28", + "Content-Type": "application/json; charset=utf-8", + "Date": "Wed, 29 Jun 2022 23:09:59 GMT", + "Expires": "-1", + "Pragma": "no-cache", + "Strict-Transport-Security": "max-age=31536000;includeSubDomains", + "X-Content-Type-Options": "nosniff", + "x-ms-keyvault-network-info": "conn_type=Ipv4;addr=24.17.201.78;act_addr_fam=InterNetwork;", + "x-ms-keyvault-region": "eastus", + "x-ms-keyvault-service-version": "1.9.444.2", + "x-ms-request-id": "9e326b3f-1b1d-41ef-ac47-15e006da3acd" + }, + "ResponseBody": { + "value": [], + "nextLink": null + } + } + ], + "Variables": {} +} diff --git a/sdk/keyvault/azcertificates/testdata/recordings/TestMergeCertificate.json b/sdk/keyvault/azcertificates/testdata/recordings/TestMergeCertificate.json index 8e858d428732..f6788b0d1474 100644 --- a/sdk/keyvault/azcertificates/testdata/recordings/TestMergeCertificate.json +++ b/sdk/keyvault/azcertificates/testdata/recordings/TestMergeCertificate.json @@ -1,18 +1,13 @@ { "Entries": [ { - "RequestUri": "https://fakekvurl.vault.azure.net/certificates/mergeCertificate1664686566/create?api-version=7.3", + "RequestUri": "https://fakevault/certificates/mergeCertificate1664686566/create?api-version=7.3", "RequestMethod": "POST", "RequestHeaders": { - ":authority": "localhost:5001", - ":method": "POST", - ":path": "/certificates/mergeCertificate1664686566/create?api-version=7.3", - ":scheme": "https", "Accept": "application/json", "Accept-Encoding": "gzip", "Content-Length": "0", - "Content-Type": "application/json", - "User-Agent": "azsdk-go-generated/v0.1.0 azsdk-go-azcore/v0.20.0 (go1.17; Windows_NT)" + "User-Agent": "azsdk-go-azcertificates/v0.5.0 (go1.18; linux)" }, "RequestBody": null, "StatusCode": 401, @@ -20,17 +15,16 @@ "Cache-Control": "no-cache", "Content-Length": "97", "Content-Type": "application/json; charset=utf-8", - "Date": "Tue, 18 Jan 2022 18:31:36 GMT", + "Date": "Wed, 29 Jun 2022 23:22:39 GMT", "Expires": "-1", "Pragma": "no-cache", "Strict-Transport-Security": "max-age=31536000;includeSubDomains", - "WWW-Authenticate": "Bearer authorization=\u0022https://login.windows.net/00000000-0000-0000-0000-000000000000\u0022, resource=\u0022https://vault.azure.net\u0022", + "WWW-Authenticate": "Bearer authorization=\u0022https://login.windows.net/72f988bf-86f1-41af-91ab-2d7cd011db47\u0022, resource=\u0022https://vault.azure.net\u0022", "X-Content-Type-Options": "nosniff", - "x-ms-keyvault-network-info": "conn_type=Ipv4;addr=72.49.29.93;act_addr_fam=InterNetwork;", - "x-ms-keyvault-region": "westus2", - "x-ms-keyvault-service-version": "1.9.264.1", - "x-ms-request-id": "a2510ed5-a8eb-4eb1-8015-7b62d4932a7e", - "X-Powered-By": "ASP.NET" + "x-ms-keyvault-network-info": "conn_type=Ipv4;addr=24.17.201.78;act_addr_fam=InterNetwork;", + "x-ms-keyvault-region": "eastus", + "x-ms-keyvault-service-version": "1.9.444.2", + "x-ms-request-id": "b40ca5d9-1d6c-4481-8762-5fee7f86609c" }, "ResponseBody": { "error": { @@ -40,19 +34,15 @@ } }, { - "RequestUri": "https://fakekvurl.vault.azure.net/certificates/mergeCertificate1664686566/create?api-version=7.3", + "RequestUri": "https://fakevault/certificates/mergeCertificate1664686566/create?api-version=7.3", "RequestMethod": "POST", "RequestHeaders": { - ":authority": "localhost:5001", - ":method": "POST", - ":path": "/certificates/mergeCertificate1664686566/create?api-version=7.3", - ":scheme": "https", "Accept": "application/json", "Accept-Encoding": "gzip", "Authorization": "Sanitized", - "Content-Length": "113", + "Content-Length": "103", "Content-Type": "application/json", - "User-Agent": "azsdk-go-generated/v0.1.0 azsdk-go-azcore/v0.20.0 (go1.17; Windows_NT)" + "User-Agent": "azsdk-go-azcertificates/v0.5.0 (go1.18; linux)" }, "RequestBody": { "policy": { @@ -61,7 +51,6 @@ "name": "Unknown" }, "x509_props": { - "sans": {}, "subject": "CN=MyCert" } } @@ -69,219 +58,119 @@ "StatusCode": 202, "ResponseHeaders": { "Cache-Control": "no-cache", - "Content-Length": "1226", + "Content-Length": "1210", "Content-Type": "application/json; charset=utf-8", - "Date": "Tue, 18 Jan 2022 18:31:37 GMT", + "Date": "Wed, 29 Jun 2022 23:22:41 GMT", "Expires": "-1", - "Location": "https://fakekvurl.vault.azure.net/certificates/mergeCertificate1664686566/pending?api-version=7.3\u0026request_id=4d7fca11074d4d66a9987486d40f2f5b", + "Location": "https://fakevault/certificates/mergeCertificate1664686566/pending?api-version=7.3\u0026request_id=adc8afabd8974d6a9e334f597d7e082e", "Pragma": "no-cache", "Retry-After": "10", "Strict-Transport-Security": "max-age=31536000;includeSubDomains", "X-Content-Type-Options": "nosniff", - "x-ms-keyvault-network-info": "conn_type=Ipv4;addr=72.49.29.93;act_addr_fam=InterNetwork;", - "x-ms-keyvault-region": "westus2", - "x-ms-keyvault-service-version": "1.9.264.1", - "x-ms-request-id": "6a99069e-e32a-468e-9d49-2f61ec1fd5d2", - "X-Powered-By": "ASP.NET" + "x-ms-keyvault-network-info": "conn_type=Ipv4;addr=24.17.201.78;act_addr_fam=InterNetwork;", + "x-ms-keyvault-region": "eastus", + "x-ms-keyvault-service-version": "1.9.444.2", + "x-ms-request-id": "9a78de98-a47c-42b6-a552-e0f28048dc2c" }, "ResponseBody": { - "id": "https://fakekvurl.vault.azure.net/certificates/mergeCertificate1664686566/pending", + "id": "https://fakevault/certificates/mergeCertificate1664686566/pending", "issuer": { "name": "Unknown" }, - "csr": "MIICoTCCAYkCAQAwETEPMA0GA1UEAxMGTXlDZXJ0MIIBIjANBgkqhkiG9w0BAQEFAAOCAQ8AMIIBCgKCAQEAxVr0qVG8z90zLtiyWIzDGK2AH/Q5a2WZXOPaLClrHTf5w/pXTKr52GeRKK7TZD2C2B4zKoAg3L4Uf3efDFnRYNjfAwn8RFYgSczwwVVoadhV7ayHLL1Bh9CPOuslaNGCwI0UVGH/Doa81ialhXlHH3CBJYwFMFgJqkNwbDNUsGQurED6606fdA84hU7N0rdSfJ7U/SK5ZbMkhhbMMfxFtVz11Ja2IYuN6shSSo5SLNxqYjLDuYyAg6EYlrCN/2sdwqH6aZcARxWVwJTzeat6elnhSkSMDa97jCAsdBqwqdGOWd7pWfoU/SP3Cr9ePnUnEKsXXdLZNad1kG\u002BtB7zhGQIDAQABoEswSQYJKoZIhvcNAQkOMTwwOjAOBgNVHQ8BAf8EBAMCBaAwHQYDVR0lBBYwFAYIKwYBBQUHAwEGCCsGAQUFBwMCMAkGA1UdEwQCMAAwDQYJKoZIhvcNAQELBQADggEBAG76m\u002BEhSC4DrzVgqonNVQHdVxzM5ZVOC9ME5DZ4DarLiidqMX0RSZuVfmjqDr\u002B2pNLScVjdjD323\u002BSQ3pnxLa7EVKQkx3eHt90i6xhZ3FjRFjFaR\u002BftLEqep6PvKLVLQiUvT3eb7eUqkjarScYnnjxydFQoFrAITtsENBtiS9Vwru5Rxq88FDj504U3fXe2jGA86vMH0YC87NZ9MMLHu6OECB1Po5zeg/xC1kXX\u002BLskkm3zYSACYSm7kksD\u002BDMdhz\u002BDU0kBVvoqhr96voWVIAfbkswh137TjDKU9gRlMQfuDD43k/KJj\u002BiTXsJsefI2Ercznix\u002BbPpcbPLn9zejgqs=", + "csr": "MIICoTCCAYkCAQAwETEPMA0GA1UEAxMGTXlDZXJ0MIIBIjANBgkqhkiG9w0BAQEFAAOCAQ8AMIIBCgKCAQEAsQdRzw7s4XN\u002BTKME\u002BzW3SudV\u002BGscLU7gPXbQI3QxHycRp00Xyx7tJTeo0h6fLTIZ0/jq6xuCCS5LHMFAN4nF/zy8wg9UnBFuJ3gR8WVLrxRqlWcigNokn0LninDzmkVHsXV7ZYXxgK2gBUS5oYvDsz9MKiuJ3mxDoiC8/Atc1nfFvIwKc3etNYwlZqsv\u002BUwqN4yZmmg/wj0uhdHS4hje0\u002BS59ErUaytDZFprahVv683D3yTfn2vA8sYMFxH9x/aIzcL7ClYTgwuSWBtwUs3OElKfQCa8TEZtvObxxCu6cE12LRfnzjF9MyiYzAx2d/WNXUYVhvOVv66cuGM9OxM2IQIDAQABoEswSQYJKoZIhvcNAQkOMTwwOjAOBgNVHQ8BAf8EBAMCBaAwHQYDVR0lBBYwFAYIKwYBBQUHAwEGCCsGAQUFBwMCMAkGA1UdEwQCMAAwDQYJKoZIhvcNAQELBQADggEBAHvaqGQTSg3zZHVmWjAw7b7isT/BFAJvZLcblc\u002BuMmgehX02yi6Xy040Y2UGaAN4HiezFZLhqg6ftFa5a/X3LQTOSJrLljDUAK7JBWRaDpluN91tHftUzzxiWAxqmUhK7XMmUis5/g1uhJBnWNlrQlGHT6nlNid\u002Bckae\u002BRNB84TMNM2kq9vnFLyCOzmrgBX0Ix/NXsV3HVS8OvH3zzvCsmXLx8bgqxGdHBVnp38zSsTX8tH59YI8lrygeSE5EJpPjoZibjgxPSK4qBhPn1zIN8OwNA3XD2k2ipXMgstCbsPQnko2qjsShcbO\u002Bn8Y3U7VcrvZW5VmEwxAbOQ1dYnJuLc=", "cancellation_requested": false, "status": "inProgress", "status_details": "Pending certificate created. Please Perform Merge to complete the request.", - "request_id": "4d7fca11074d4d66a9987486d40f2f5b" + "request_id": "adc8afabd8974d6a9e334f597d7e082e" } }, { - "RequestUri": "https://fakekvurl.vault.azure.net/certificates/mergeCertificate1664686566/?api-version=7.3", + "RequestUri": "https://fakevault/certificates/mergeCertificate1664686566/pending?api-version=7.3", "RequestMethod": "GET", "RequestHeaders": { - ":authority": "localhost:5001", - ":method": "GET", - ":path": "/certificates/mergeCertificate1664686566/?api-version=7.3", - ":scheme": "https", "Accept": "application/json", "Accept-Encoding": "gzip", "Authorization": "Sanitized", - "User-Agent": "azsdk-go-generated/v0.1.0 azsdk-go-azcore/v0.20.0 (go1.17; Windows_NT)" + "User-Agent": "azsdk-go-azcertificates/v0.5.0 (go1.18; linux)" }, "RequestBody": null, "StatusCode": 200, "ResponseHeaders": { "Cache-Control": "no-cache", - "Content-Length": "1052", + "Content-Length": "1210", "Content-Type": "application/json; charset=utf-8", - "Date": "Tue, 18 Jan 2022 18:31:37 GMT", - "Expires": "-1", - "Pragma": "no-cache", - "Strict-Transport-Security": "max-age=31536000;includeSubDomains", - "X-Content-Type-Options": "nosniff", - "x-ms-keyvault-network-info": "conn_type=Ipv4;addr=72.49.29.93;act_addr_fam=InterNetwork;", - "x-ms-keyvault-region": "westus2", - "x-ms-keyvault-service-version": "1.9.264.1", - "x-ms-request-id": "a01bba8d-8096-4690-8a96-200c544c1144", - "X-Powered-By": "ASP.NET" - }, - "ResponseBody": { - "id": "https://fakekvurl.vault.azure.net/certificates/mergeCertificate1664686566/19245982485b4fdea51fdbabe1ebf303", - "attributes": { - "enabled": false, - "nbf": 1642530098, - "exp": 1674066698, - "created": 1642530698, - "updated": 1642530698, - "recoveryLevel": "CustomizedRecoverable\u002BPurgeable", - "recoverableDays": 7 - }, - "policy": { - "id": "https://fakekvurl.vault.azure.net/certificates/mergeCertificate1664686566/policy", - "key_props": { - "exportable": true, - "kty": "RSA", - "key_size": 2048, - "reuse_key": false - }, - "secret_props": { - "contentType": "application/x-pkcs12" - }, - "x509_props": { - "subject": "CN=MyCert", - "sans": {}, - "ekus": [ - "1.3.6.1.5.5.7.3.1", - "1.3.6.1.5.5.7.3.2" - ], - "key_usage": [ - "digitalSignature", - "keyEncipherment" - ], - "validity_months": 12, - "basic_constraints": { - "ca": false - } - }, - "lifetime_actions": [ - { - "trigger": { - "lifetime_percentage": 80 - }, - "action": { - "action_type": "EmailContacts" - } - } - ], - "issuer": { - "name": "Unknown", - "cert_transparency": false - }, - "attributes": { - "enabled": true, - "created": 1642530698, - "updated": 1642530698 - } - }, - "pending": { - "id": "https://fakekvurl.vault.azure.net/certificates/mergeCertificate1664686566/pending" - } - } - }, - { - "RequestUri": "https://fakekvurl.vault.azure.net/certificates/mergeCertificate1664686566/pending?api-version=7.3", - "RequestMethod": "GET", - "RequestHeaders": { - ":authority": "localhost:5001", - ":method": "GET", - ":path": "/certificates/mergeCertificate1664686566/pending?api-version=7.3", - ":scheme": "https", - "Accept": "application/json", - "Accept-Encoding": "gzip", - "Authorization": "Sanitized", - "User-Agent": "azsdk-go-generated/v0.1.0 azsdk-go-azcore/v0.20.0 (go1.17; Windows_NT)" - }, - "RequestBody": null, - "StatusCode": 200, - "ResponseHeaders": { - "Cache-Control": "no-cache", - "Content-Length": "1226", - "Content-Type": "application/json; charset=utf-8", - "Date": "Tue, 18 Jan 2022 18:31:37 GMT", + "Date": "Wed, 29 Jun 2022 23:22:41 GMT", "Expires": "-1", "Pragma": "no-cache", "Retry-After": "10", "Strict-Transport-Security": "max-age=31536000;includeSubDomains", "X-Content-Type-Options": "nosniff", - "x-ms-keyvault-network-info": "conn_type=Ipv4;addr=72.49.29.93;act_addr_fam=InterNetwork;", - "x-ms-keyvault-region": "westus2", - "x-ms-keyvault-service-version": "1.9.264.1", - "x-ms-request-id": "246447b7-a554-4303-8ff5-92414e0a8f11", - "X-Powered-By": "ASP.NET" + "x-ms-keyvault-network-info": "conn_type=Ipv4;addr=24.17.201.78;act_addr_fam=InterNetwork;", + "x-ms-keyvault-region": "eastus", + "x-ms-keyvault-service-version": "1.9.444.2", + "x-ms-request-id": "ac02ae85-c0c6-40bf-91f5-e3dcb19ea549" }, "ResponseBody": { - "id": "https://fakekvurl.vault.azure.net/certificates/mergeCertificate1664686566/pending", + "id": "https://fakevault/certificates/mergeCertificate1664686566/pending", "issuer": { "name": "Unknown" }, - "csr": "MIICoTCCAYkCAQAwETEPMA0GA1UEAxMGTXlDZXJ0MIIBIjANBgkqhkiG9w0BAQEFAAOCAQ8AMIIBCgKCAQEAxVr0qVG8z90zLtiyWIzDGK2AH/Q5a2WZXOPaLClrHTf5w/pXTKr52GeRKK7TZD2C2B4zKoAg3L4Uf3efDFnRYNjfAwn8RFYgSczwwVVoadhV7ayHLL1Bh9CPOuslaNGCwI0UVGH/Doa81ialhXlHH3CBJYwFMFgJqkNwbDNUsGQurED6606fdA84hU7N0rdSfJ7U/SK5ZbMkhhbMMfxFtVz11Ja2IYuN6shSSo5SLNxqYjLDuYyAg6EYlrCN/2sdwqH6aZcARxWVwJTzeat6elnhSkSMDa97jCAsdBqwqdGOWd7pWfoU/SP3Cr9ePnUnEKsXXdLZNad1kG\u002BtB7zhGQIDAQABoEswSQYJKoZIhvcNAQkOMTwwOjAOBgNVHQ8BAf8EBAMCBaAwHQYDVR0lBBYwFAYIKwYBBQUHAwEGCCsGAQUFBwMCMAkGA1UdEwQCMAAwDQYJKoZIhvcNAQELBQADggEBAG76m\u002BEhSC4DrzVgqonNVQHdVxzM5ZVOC9ME5DZ4DarLiidqMX0RSZuVfmjqDr\u002B2pNLScVjdjD323\u002BSQ3pnxLa7EVKQkx3eHt90i6xhZ3FjRFjFaR\u002BftLEqep6PvKLVLQiUvT3eb7eUqkjarScYnnjxydFQoFrAITtsENBtiS9Vwru5Rxq88FDj504U3fXe2jGA86vMH0YC87NZ9MMLHu6OECB1Po5zeg/xC1kXX\u002BLskkm3zYSACYSm7kksD\u002BDMdhz\u002BDU0kBVvoqhr96voWVIAfbkswh137TjDKU9gRlMQfuDD43k/KJj\u002BiTXsJsefI2Ercznix\u002BbPpcbPLn9zejgqs=", + "csr": "MIICoTCCAYkCAQAwETEPMA0GA1UEAxMGTXlDZXJ0MIIBIjANBgkqhkiG9w0BAQEFAAOCAQ8AMIIBCgKCAQEAsQdRzw7s4XN\u002BTKME\u002BzW3SudV\u002BGscLU7gPXbQI3QxHycRp00Xyx7tJTeo0h6fLTIZ0/jq6xuCCS5LHMFAN4nF/zy8wg9UnBFuJ3gR8WVLrxRqlWcigNokn0LninDzmkVHsXV7ZYXxgK2gBUS5oYvDsz9MKiuJ3mxDoiC8/Atc1nfFvIwKc3etNYwlZqsv\u002BUwqN4yZmmg/wj0uhdHS4hje0\u002BS59ErUaytDZFprahVv683D3yTfn2vA8sYMFxH9x/aIzcL7ClYTgwuSWBtwUs3OElKfQCa8TEZtvObxxCu6cE12LRfnzjF9MyiYzAx2d/WNXUYVhvOVv66cuGM9OxM2IQIDAQABoEswSQYJKoZIhvcNAQkOMTwwOjAOBgNVHQ8BAf8EBAMCBaAwHQYDVR0lBBYwFAYIKwYBBQUHAwEGCCsGAQUFBwMCMAkGA1UdEwQCMAAwDQYJKoZIhvcNAQELBQADggEBAHvaqGQTSg3zZHVmWjAw7b7isT/BFAJvZLcblc\u002BuMmgehX02yi6Xy040Y2UGaAN4HiezFZLhqg6ftFa5a/X3LQTOSJrLljDUAK7JBWRaDpluN91tHftUzzxiWAxqmUhK7XMmUis5/g1uhJBnWNlrQlGHT6nlNid\u002Bckae\u002BRNB84TMNM2kq9vnFLyCOzmrgBX0Ix/NXsV3HVS8OvH3zzvCsmXLx8bgqxGdHBVnp38zSsTX8tH59YI8lrygeSE5EJpPjoZibjgxPSK4qBhPn1zIN8OwNA3XD2k2ipXMgstCbsPQnko2qjsShcbO\u002Bn8Y3U7VcrvZW5VmEwxAbOQ1dYnJuLc=", "cancellation_requested": false, "status": "inProgress", "status_details": "Pending certificate created. Please Perform Merge to complete the request.", - "request_id": "4d7fca11074d4d66a9987486d40f2f5b" + "request_id": "adc8afabd8974d6a9e334f597d7e082e" } }, { - "RequestUri": "https://fakekvurl.vault.azure.net/certificates/mergeCertificate1664686566/pending/merge?api-version=7.3", + "RequestUri": "https://fakevault/certificates/mergeCertificate1664686566/pending/merge?api-version=7.3", "RequestMethod": "POST", "RequestHeaders": { - ":authority": "localhost:5001", - ":method": "POST", - ":path": "/certificates/mergeCertificate1664686566/pending/merge?api-version=7.3", - ":scheme": "https", "Accept": "application/json", "Accept-Encoding": "gzip", "Authorization": "Sanitized", "Content-Length": "1028", "Content-Type": "application/json", - "User-Agent": "azsdk-go-generated/v0.1.0 azsdk-go-azcore/v0.20.0 (go1.17; Windows_NT)" + "User-Agent": "azsdk-go-azcertificates/v0.5.0 (go1.18; linux)" + }, + "RequestBody": { + "x5c": [ + "MIIC9DCCAdygAwIBAgIBATANBgkqhkiG9w0BAQsFADBFMQswCQYDVQQGEwJBVTETMBEGA1UECAwKU29tZS1TdGF0ZTEhMB8GA1UECgwYSW50ZXJuZXQgV2lkZ2l0cyBQdHkgTHRkMB4XDTMwMDEwMTAxMDEwMFoXDTQwMDEwMTAxMDEwMFowETEPMA0GA1UEAxMGTXlDZXJ0MIIBIjANBgkqhkiG9w0BAQEFAAOCAQ8AMIIBCgKCAQEAsQdRzw7s4XN\u002BTKME\u002BzW3SudV\u002BGscLU7gPXbQI3QxHycRp00Xyx7tJTeo0h6fLTIZ0/jq6xuCCS5LHMFAN4nF/zy8wg9UnBFuJ3gR8WVLrxRqlWcigNokn0LninDzmkVHsXV7ZYXxgK2gBUS5oYvDsz9MKiuJ3mxDoiC8/Atc1nfFvIwKc3etNYwlZqsv\u002BUwqN4yZmmg/wj0uhdHS4hje0\u002BS59ErUaytDZFprahVv683D3yTfn2vA8sYMFxH9x/aIzcL7ClYTgwuSWBtwUs3OElKfQCa8TEZtvObxxCu6cE12LRfnzjF9MyiYzAx2d/WNXUYVhvOVv66cuGM9OxM2IQIDAQABoyMwITAfBgNVHSMEGDAWgBQIAunu6y1BmFSDfFNfTnqFggB0gzANBgkqhkiG9w0BAQsFAAOCAQEA6Gc9lyC/SUiwOCtjp1rgaw8cYd/E2B1PtNzpX7vDKtLb3O8XFUXQM\u002BKJYJHj\u002B6UlYCf8S51gTLvav2JtLaraIIgyEg6f5ig0GdzeP4iozhlZKQva\u002ByCIZnaUTJQGNPox1iHud9XyVTrHNj6dLZOs9w2EdsXSFe9tuUONAOGnea965rO78VkwxYBZWfiMeherFFtzFWoZxsSJPgxWF2YNked8w5BuNTH9cUtOYN\u002Blsz5MKyQ7y/n6hgiMc21XNE52siCKOH/VCLcreEOB2XdANH0wYhm/ZI68YD\u002BtB6ZpT5oeLd8dGQBT5gVAiqxD/MshOcGBCc0txF9muvUCmi6BBA==" + ] }, - "RequestBody": "{\u0022x5c\u0022:[\u0022MIIC9DCCAdygAwIBAgIBATANBgkqhkiG9w0BAQsFADBFMQswCQYDVQQGEwJBVTETMBEGA1UECAwKU29tZS1TdGF0ZTEhMB8GA1UECgwYSW50ZXJuZXQgV2lkZ2l0cyBQdHkgTHRkMB4XDTIyMDExODE4MzEzOFoXDTIyMDExOTE4MzEzOFowETEPMA0GA1UEAxMGTXlDZXJ0MIIBIjANBgkqhkiG9w0BAQEFAAOCAQ8AMIIBCgKCAQEAxVr0qVG8z90zLtiyWIzDGK2AH/Q5a2WZXOPaLClrHTf5w/pXTKr52GeRKK7TZD2C2B4zKoAg3L4Uf3efDFnRYNjfAwn8RFYgSczwwVVoadhV7ayHLL1Bh9CPOuslaNGCwI0UVGH/Doa81ialhXlHH3CBJYwFMFgJqkNwbDNUsGQurED6606fdA84hU7N0rdSfJ7U/SK5ZbMkhhbMMfxFtVz11Ja2IYuN6shSSo5SLNxqYjLDuYyAg6EYlrCN/2sdwqH6aZcARxWVwJTzeat6elnhSkSMDa97jCAsdBqwqdGOWd7pWfoU/SP3Cr9ePnUnEKsXXdLZNad1kG\u002BtB7zhGQIDAQABoyMwITAfBgNVHSMEGDAWgBQIAunu6y1BmFSDfFNfTnqFggB0gzANBgkqhkiG9w0BAQsFAAOCAQEA5VmF7i1Sdf99mfcJGpdrvRPzUofBMlwZPcM43QY3mNyUrrFOSgfSLDEo0bLk8LffBB1GAoTKtCGoIotc3DKct64KMApPgGZoLjNnGZ4wquMxrMMO8LSirrgQvIAGfd8QfDe41XYT5Jek7EGF4xp7nqTYxYc3feJcjHWnuQyAAMD7J2h5jvfDoJ6A0noGd2eHjWPoeaChjuWoaeIxG4k9CHQXsSp/eVZJdRmhkObhnN6lu7VoNPfE0ruMzHANorBf\u002B\u002BlfPCLPhKB\u002Bp6QGI9OdRF8Y6Tfo6orq9da1Gfuj2qzu23o5yBdB/ZtcTAWIRGiUJsmuiMiyuCg6cOMgnHHE7A==\u0022]}", "StatusCode": 201, "ResponseHeaders": { "Cache-Control": "no-cache", - "Content-Length": "2329", + "Content-Length": "2239", "Content-Type": "application/json; charset=utf-8", - "Date": "Tue, 18 Jan 2022 18:31:38 GMT", + "Date": "Wed, 29 Jun 2022 23:22:41 GMT", "Expires": "-1", - "Location": "https://fakekvurl.vault.azure.net/certificates/mergeCertificate1664686566?api-version=7.3", + "Location": "https://fakevault/certificates/mergeCertificate1664686566?api-version=7.3", "Pragma": "no-cache", "Strict-Transport-Security": "max-age=31536000;includeSubDomains", "X-Content-Type-Options": "nosniff", - "x-ms-keyvault-network-info": "conn_type=Ipv4;addr=72.49.29.93;act_addr_fam=InterNetwork;", - "x-ms-keyvault-region": "westus2", - "x-ms-keyvault-service-version": "1.9.264.1", - "x-ms-request-id": "925daf4e-d94a-48b9-8787-60408e328a55", - "X-Powered-By": "ASP.NET" + "x-ms-keyvault-network-info": "conn_type=Ipv4;addr=24.17.201.78;act_addr_fam=InterNetwork;", + "x-ms-keyvault-region": "eastus", + "x-ms-keyvault-service-version": "1.9.444.2", + "x-ms-request-id": "e43c3aaf-9c62-49b4-b337-c5b1fef82ec8" }, "ResponseBody": { - "id": "https://fakekvurl.vault.azure.net/certificates/mergeCertificate1664686566/0fbe1f2822f04a45ad9d53a2b1589dcc", - "kid": "https://fakekvurl.vault.azure.net/keys/mergeCertificate1664686566/0fbe1f2822f04a45ad9d53a2b1589dcc", - "sid": "https://fakekvurl.vault.azure.net/secrets/mergeCertificate1664686566/0fbe1f2822f04a45ad9d53a2b1589dcc", - "x5t": "Fwhwou8Mun3oNFSoq7KN1PHdUN4", - "cer": "MIIC9DCCAdygAwIBAgIBATANBgkqhkiG9w0BAQsFADBFMQswCQYDVQQGEwJBVTETMBEGA1UECAwKU29tZS1TdGF0ZTEhMB8GA1UECgwYSW50ZXJuZXQgV2lkZ2l0cyBQdHkgTHRkMB4XDTIyMDExODE4MzEzOFoXDTIyMDExOTE4MzEzOFowETEPMA0GA1UEAxMGTXlDZXJ0MIIBIjANBgkqhkiG9w0BAQEFAAOCAQ8AMIIBCgKCAQEAxVr0qVG8z90zLtiyWIzDGK2AH/Q5a2WZXOPaLClrHTf5w/pXTKr52GeRKK7TZD2C2B4zKoAg3L4Uf3efDFnRYNjfAwn8RFYgSczwwVVoadhV7ayHLL1Bh9CPOuslaNGCwI0UVGH/Doa81ialhXlHH3CBJYwFMFgJqkNwbDNUsGQurED6606fdA84hU7N0rdSfJ7U/SK5ZbMkhhbMMfxFtVz11Ja2IYuN6shSSo5SLNxqYjLDuYyAg6EYlrCN/2sdwqH6aZcARxWVwJTzeat6elnhSkSMDa97jCAsdBqwqdGOWd7pWfoU/SP3Cr9ePnUnEKsXXdLZNad1kG\u002BtB7zhGQIDAQABoyMwITAfBgNVHSMEGDAWgBQIAunu6y1BmFSDfFNfTnqFggB0gzANBgkqhkiG9w0BAQsFAAOCAQEA5VmF7i1Sdf99mfcJGpdrvRPzUofBMlwZPcM43QY3mNyUrrFOSgfSLDEo0bLk8LffBB1GAoTKtCGoIotc3DKct64KMApPgGZoLjNnGZ4wquMxrMMO8LSirrgQvIAGfd8QfDe41XYT5Jek7EGF4xp7nqTYxYc3feJcjHWnuQyAAMD7J2h5jvfDoJ6A0noGd2eHjWPoeaChjuWoaeIxG4k9CHQXsSp/eVZJdRmhkObhnN6lu7VoNPfE0ruMzHANorBf\u002B\u002BlfPCLPhKB\u002Bp6QGI9OdRF8Y6Tfo6orq9da1Gfuj2qzu23o5yBdB/ZtcTAWIRGiUJsmuiMiyuCg6cOMgnHHE7A==", + "id": "https://fakevault/certificates/mergeCertificate1664686566/55f20738d579405bbcbfe85a78f29279", + "kid": "https://fakevault/keys/mergeCertificate1664686566/55f20738d579405bbcbfe85a78f29279", + "sid": "https://fakevault/secrets/mergeCertificate1664686566/55f20738d579405bbcbfe85a78f29279", + "x5t": "9L3dQQvRC6pGexkqYwwanO5oy3A", + "cer": "MIIC9DCCAdygAwIBAgIBATANBgkqhkiG9w0BAQsFADBFMQswCQYDVQQGEwJBVTETMBEGA1UECAwKU29tZS1TdGF0ZTEhMB8GA1UECgwYSW50ZXJuZXQgV2lkZ2l0cyBQdHkgTHRkMB4XDTMwMDEwMTAxMDEwMFoXDTQwMDEwMTAxMDEwMFowETEPMA0GA1UEAxMGTXlDZXJ0MIIBIjANBgkqhkiG9w0BAQEFAAOCAQ8AMIIBCgKCAQEAsQdRzw7s4XN\u002BTKME\u002BzW3SudV\u002BGscLU7gPXbQI3QxHycRp00Xyx7tJTeo0h6fLTIZ0/jq6xuCCS5LHMFAN4nF/zy8wg9UnBFuJ3gR8WVLrxRqlWcigNokn0LninDzmkVHsXV7ZYXxgK2gBUS5oYvDsz9MKiuJ3mxDoiC8/Atc1nfFvIwKc3etNYwlZqsv\u002BUwqN4yZmmg/wj0uhdHS4hje0\u002BS59ErUaytDZFprahVv683D3yTfn2vA8sYMFxH9x/aIzcL7ClYTgwuSWBtwUs3OElKfQCa8TEZtvObxxCu6cE12LRfnzjF9MyiYzAx2d/WNXUYVhvOVv66cuGM9OxM2IQIDAQABoyMwITAfBgNVHSMEGDAWgBQIAunu6y1BmFSDfFNfTnqFggB0gzANBgkqhkiG9w0BAQsFAAOCAQEA6Gc9lyC/SUiwOCtjp1rgaw8cYd/E2B1PtNzpX7vDKtLb3O8XFUXQM\u002BKJYJHj\u002B6UlYCf8S51gTLvav2JtLaraIIgyEg6f5ig0GdzeP4iozhlZKQva\u002ByCIZnaUTJQGNPox1iHud9XyVTrHNj6dLZOs9w2EdsXSFe9tuUONAOGnea965rO78VkwxYBZWfiMeherFFtzFWoZxsSJPgxWF2YNked8w5BuNTH9cUtOYN\u002Blsz5MKyQ7y/n6hgiMc21XNE52siCKOH/VCLcreEOB2XdANH0wYhm/ZI68YD\u002BtB6ZpT5oeLd8dGQBT5gVAiqxD/MshOcGBCc0txF9muvUCmi6BBA==", "attributes": { "enabled": true, - "nbf": 1642530698, - "exp": 1642617098, - "created": 1642530699, - "updated": 1642530699, + "nbf": 1893459660, + "exp": 2208992460, + "created": 1656544961, + "updated": 1656544961, "recoveryLevel": "CustomizedRecoverable\u002BPurgeable", "recoverableDays": 7 }, "policy": { - "id": "https://fakekvurl.vault.azure.net/certificates/mergeCertificate1664686566/policy", + "id": "https://fakevault/certificates/mergeCertificate1664686566/policy", "key_props": { "exportable": true, "kty": "RSA", @@ -293,7 +182,6 @@ }, "x509_props": { "subject": "CN=MyCert", - "sans": {}, "ekus": [ "1.3.6.1.5.5.7.3.1", "1.3.6.1.5.5.7.3.2" @@ -323,65 +211,60 @@ }, "attributes": { "enabled": true, - "created": 1642530698, - "updated": 1642530698 + "created": 1656544961, + "updated": 1656544961 } }, "pending": { - "id": "https://fakekvurl.vault.azure.net/certificates/mergeCertificate1664686566/pending" + "id": "https://fakevault/certificates/mergeCertificate1664686566/pending" } } }, { - "RequestUri": "https://fakekvurl.vault.azure.net/certificates/mergeCertificate1664686566?api-version=7.3", + "RequestUri": "https://fakevault/certificates/mergeCertificate1664686566?api-version=7.3", "RequestMethod": "DELETE", "RequestHeaders": { - ":authority": "localhost:5001", - ":method": "DELETE", - ":path": "/certificates/mergeCertificate1664686566?api-version=7.3", - ":scheme": "https", "Accept": "application/json", "Accept-Encoding": "gzip", "Authorization": "Sanitized", - "User-Agent": "azsdk-go-generated/v0.1.0 azsdk-go-azcore/v0.20.0 (go1.17; Windows_NT)" + "User-Agent": "azsdk-go-azcertificates/v0.5.0 (go1.18; linux)" }, "RequestBody": null, "StatusCode": 200, "ResponseHeaders": { "Cache-Control": "no-cache", - "Content-Length": "2482", + "Content-Length": "2376", "Content-Type": "application/json; charset=utf-8", - "Date": "Tue, 18 Jan 2022 18:31:38 GMT", + "Date": "Wed, 29 Jun 2022 23:22:42 GMT", "Expires": "-1", "Pragma": "no-cache", "Strict-Transport-Security": "max-age=31536000;includeSubDomains", "X-Content-Type-Options": "nosniff", - "x-ms-keyvault-network-info": "conn_type=Ipv4;addr=72.49.29.93;act_addr_fam=InterNetwork;", - "x-ms-keyvault-region": "westus2", - "x-ms-keyvault-service-version": "1.9.264.1", - "x-ms-request-id": "9beefb11-2262-419b-840b-f5d6bd7879ce", - "X-Powered-By": "ASP.NET" + "x-ms-keyvault-network-info": "conn_type=Ipv4;addr=24.17.201.78;act_addr_fam=InterNetwork;", + "x-ms-keyvault-region": "eastus", + "x-ms-keyvault-service-version": "1.9.444.2", + "x-ms-request-id": "14b970c1-d66f-4611-9478-c7d0dfabb64a" }, "ResponseBody": { - "recoveryId": "https://fakekvurl.vault.azure.net/deletedcertificates/mergeCertificate1664686566", - "deletedDate": 1642530699, - "scheduledPurgeDate": 1643135499, - "id": "https://fakekvurl.vault.azure.net/certificates/mergeCertificate1664686566/0fbe1f2822f04a45ad9d53a2b1589dcc", - "kid": "https://fakekvurl.vault.azure.net/keys/mergeCertificate1664686566/0fbe1f2822f04a45ad9d53a2b1589dcc", - "sid": "https://fakekvurl.vault.azure.net/secrets/mergeCertificate1664686566/0fbe1f2822f04a45ad9d53a2b1589dcc", - "x5t": "Fwhwou8Mun3oNFSoq7KN1PHdUN4", - "cer": "MIIC9DCCAdygAwIBAgIBATANBgkqhkiG9w0BAQsFADBFMQswCQYDVQQGEwJBVTETMBEGA1UECAwKU29tZS1TdGF0ZTEhMB8GA1UECgwYSW50ZXJuZXQgV2lkZ2l0cyBQdHkgTHRkMB4XDTIyMDExODE4MzEzOFoXDTIyMDExOTE4MzEzOFowETEPMA0GA1UEAxMGTXlDZXJ0MIIBIjANBgkqhkiG9w0BAQEFAAOCAQ8AMIIBCgKCAQEAxVr0qVG8z90zLtiyWIzDGK2AH/Q5a2WZXOPaLClrHTf5w/pXTKr52GeRKK7TZD2C2B4zKoAg3L4Uf3efDFnRYNjfAwn8RFYgSczwwVVoadhV7ayHLL1Bh9CPOuslaNGCwI0UVGH/Doa81ialhXlHH3CBJYwFMFgJqkNwbDNUsGQurED6606fdA84hU7N0rdSfJ7U/SK5ZbMkhhbMMfxFtVz11Ja2IYuN6shSSo5SLNxqYjLDuYyAg6EYlrCN/2sdwqH6aZcARxWVwJTzeat6elnhSkSMDa97jCAsdBqwqdGOWd7pWfoU/SP3Cr9ePnUnEKsXXdLZNad1kG\u002BtB7zhGQIDAQABoyMwITAfBgNVHSMEGDAWgBQIAunu6y1BmFSDfFNfTnqFggB0gzANBgkqhkiG9w0BAQsFAAOCAQEA5VmF7i1Sdf99mfcJGpdrvRPzUofBMlwZPcM43QY3mNyUrrFOSgfSLDEo0bLk8LffBB1GAoTKtCGoIotc3DKct64KMApPgGZoLjNnGZ4wquMxrMMO8LSirrgQvIAGfd8QfDe41XYT5Jek7EGF4xp7nqTYxYc3feJcjHWnuQyAAMD7J2h5jvfDoJ6A0noGd2eHjWPoeaChjuWoaeIxG4k9CHQXsSp/eVZJdRmhkObhnN6lu7VoNPfE0ruMzHANorBf\u002B\u002BlfPCLPhKB\u002Bp6QGI9OdRF8Y6Tfo6orq9da1Gfuj2qzu23o5yBdB/ZtcTAWIRGiUJsmuiMiyuCg6cOMgnHHE7A==", + "recoveryId": "https://fakevault/deletedcertificates/mergeCertificate1664686566", + "deletedDate": 1656544962, + "scheduledPurgeDate": 1657149762, + "id": "https://fakevault/certificates/mergeCertificate1664686566/55f20738d579405bbcbfe85a78f29279", + "kid": "https://fakevault/keys/mergeCertificate1664686566/55f20738d579405bbcbfe85a78f29279", + "sid": "https://fakevault/secrets/mergeCertificate1664686566/55f20738d579405bbcbfe85a78f29279", + "x5t": "9L3dQQvRC6pGexkqYwwanO5oy3A", + "cer": "MIIC9DCCAdygAwIBAgIBATANBgkqhkiG9w0BAQsFADBFMQswCQYDVQQGEwJBVTETMBEGA1UECAwKU29tZS1TdGF0ZTEhMB8GA1UECgwYSW50ZXJuZXQgV2lkZ2l0cyBQdHkgTHRkMB4XDTMwMDEwMTAxMDEwMFoXDTQwMDEwMTAxMDEwMFowETEPMA0GA1UEAxMGTXlDZXJ0MIIBIjANBgkqhkiG9w0BAQEFAAOCAQ8AMIIBCgKCAQEAsQdRzw7s4XN\u002BTKME\u002BzW3SudV\u002BGscLU7gPXbQI3QxHycRp00Xyx7tJTeo0h6fLTIZ0/jq6xuCCS5LHMFAN4nF/zy8wg9UnBFuJ3gR8WVLrxRqlWcigNokn0LninDzmkVHsXV7ZYXxgK2gBUS5oYvDsz9MKiuJ3mxDoiC8/Atc1nfFvIwKc3etNYwlZqsv\u002BUwqN4yZmmg/wj0uhdHS4hje0\u002BS59ErUaytDZFprahVv683D3yTfn2vA8sYMFxH9x/aIzcL7ClYTgwuSWBtwUs3OElKfQCa8TEZtvObxxCu6cE12LRfnzjF9MyiYzAx2d/WNXUYVhvOVv66cuGM9OxM2IQIDAQABoyMwITAfBgNVHSMEGDAWgBQIAunu6y1BmFSDfFNfTnqFggB0gzANBgkqhkiG9w0BAQsFAAOCAQEA6Gc9lyC/SUiwOCtjp1rgaw8cYd/E2B1PtNzpX7vDKtLb3O8XFUXQM\u002BKJYJHj\u002B6UlYCf8S51gTLvav2JtLaraIIgyEg6f5ig0GdzeP4iozhlZKQva\u002ByCIZnaUTJQGNPox1iHud9XyVTrHNj6dLZOs9w2EdsXSFe9tuUONAOGnea965rO78VkwxYBZWfiMeherFFtzFWoZxsSJPgxWF2YNked8w5BuNTH9cUtOYN\u002Blsz5MKyQ7y/n6hgiMc21XNE52siCKOH/VCLcreEOB2XdANH0wYhm/ZI68YD\u002BtB6ZpT5oeLd8dGQBT5gVAiqxD/MshOcGBCc0txF9muvUCmi6BBA==", "attributes": { "enabled": true, - "nbf": 1642530698, - "exp": 1642617098, - "created": 1642530699, - "updated": 1642530699, + "nbf": 1893459660, + "exp": 2208992460, + "created": 1656544961, + "updated": 1656544961, "recoveryLevel": "CustomizedRecoverable\u002BPurgeable", "recoverableDays": 7 }, "policy": { - "id": "https://fakekvurl.vault.azure.net/certificates/mergeCertificate1664686566/policy", + "id": "https://fakevault/certificates/mergeCertificate1664686566/policy", "key_props": { "exportable": true, "kty": "RSA", @@ -393,7 +276,6 @@ }, "x509_props": { "subject": "CN=MyCert", - "sans": {}, "ekus": [ "1.3.6.1.5.5.7.3.1", "1.3.6.1.5.5.7.3.2" @@ -423,255 +305,14 @@ }, "attributes": { "enabled": true, - "created": 1642530698, - "updated": 1642530698 + "created": 1656544961, + "updated": 1656544961 } }, "pending": { - "id": "https://fakekvurl.vault.azure.net/certificates/mergeCertificate1664686566/pending" + "id": "https://fakevault/certificates/mergeCertificate1664686566/pending" } } - }, - { - "RequestUri": "https://fakekvurl.vault.azure.net/deletedcertificates/mergeCertificate1664686566?api-version=7.3", - "RequestMethod": "GET", - "RequestHeaders": { - ":authority": "localhost:5001", - ":method": "GET", - ":path": "/deletedcertificates/mergeCertificate1664686566?api-version=7.3", - ":scheme": "https", - "Accept": "application/json", - "Accept-Encoding": "gzip", - "Authorization": "Sanitized", - "User-Agent": "azsdk-go-generated/v0.1.0 azsdk-go-azcore/v0.20.0 (go1.17; Windows_NT)" - }, - "RequestBody": null, - "StatusCode": 404, - "ResponseHeaders": { - "Cache-Control": "no-cache", - "Content-Length": "110", - "Content-Type": "application/json; charset=utf-8", - "Date": "Tue, 18 Jan 2022 18:31:38 GMT", - "Expires": "-1", - "Pragma": "no-cache", - "Strict-Transport-Security": "max-age=31536000;includeSubDomains", - "X-Content-Type-Options": "nosniff", - "x-ms-keyvault-network-info": "conn_type=Ipv4;addr=72.49.29.93;act_addr_fam=InterNetwork;", - "x-ms-keyvault-region": "westus2", - "x-ms-keyvault-service-version": "1.9.264.1", - "x-ms-request-id": "504261e2-5580-4811-a237-2b089f855611", - "X-Powered-By": "ASP.NET" - }, - "ResponseBody": { - "error": { - "code": "CertificateNotFound", - "message": "Deleted Certificate not found: mergeCertificate1664686566" - } - } - }, - { - "RequestUri": "https://fakekvurl.vault.azure.net/deletedcertificates/mergeCertificate1664686566?api-version=7.3", - "RequestMethod": "GET", - "RequestHeaders": { - ":authority": "localhost:5001", - ":method": "GET", - ":path": "/deletedcertificates/mergeCertificate1664686566?api-version=7.3", - ":scheme": "https", - "Accept": "application/json", - "Accept-Encoding": "gzip", - "Authorization": "Sanitized", - "User-Agent": "azsdk-go-generated/v0.1.0 azsdk-go-azcore/v0.20.0 (go1.17; Windows_NT)" - }, - "RequestBody": null, - "StatusCode": 404, - "ResponseHeaders": { - "Cache-Control": "no-cache", - "Content-Length": "110", - "Content-Type": "application/json; charset=utf-8", - "Date": "Tue, 18 Jan 2022 18:31:38 GMT", - "Expires": "-1", - "Pragma": "no-cache", - "Strict-Transport-Security": "max-age=31536000;includeSubDomains", - "X-Content-Type-Options": "nosniff", - "x-ms-keyvault-network-info": "conn_type=Ipv4;addr=72.49.29.93;act_addr_fam=InterNetwork;", - "x-ms-keyvault-region": "westus2", - "x-ms-keyvault-service-version": "1.9.264.1", - "x-ms-request-id": "b3568775-af85-4f73-988d-2e621529e894", - "X-Powered-By": "ASP.NET" - }, - "ResponseBody": { - "error": { - "code": "CertificateNotFound", - "message": "Deleted Certificate not found: mergeCertificate1664686566" - } - } - }, - { - "RequestUri": "https://fakekvurl.vault.azure.net/deletedcertificates/mergeCertificate1664686566?api-version=7.3", - "RequestMethod": "GET", - "RequestHeaders": { - ":authority": "localhost:5001", - ":method": "GET", - ":path": "/deletedcertificates/mergeCertificate1664686566?api-version=7.3", - ":scheme": "https", - "Accept": "application/json", - "Accept-Encoding": "gzip", - "Authorization": "Sanitized", - "User-Agent": "azsdk-go-generated/v0.1.0 azsdk-go-azcore/v0.20.0 (go1.17; Windows_NT)" - }, - "RequestBody": null, - "StatusCode": 404, - "ResponseHeaders": { - "Cache-Control": "no-cache", - "Content-Length": "110", - "Content-Type": "application/json; charset=utf-8", - "Date": "Tue, 18 Jan 2022 18:31:39 GMT", - "Expires": "-1", - "Pragma": "no-cache", - "Strict-Transport-Security": "max-age=31536000;includeSubDomains", - "X-Content-Type-Options": "nosniff", - "x-ms-keyvault-network-info": "conn_type=Ipv4;addr=72.49.29.93;act_addr_fam=InterNetwork;", - "x-ms-keyvault-region": "westus2", - "x-ms-keyvault-service-version": "1.9.264.1", - "x-ms-request-id": "302670cc-9c94-408a-a38e-b04f8ba01ae6", - "X-Powered-By": "ASP.NET" - }, - "ResponseBody": { - "error": { - "code": "CertificateNotFound", - "message": "Deleted Certificate not found: mergeCertificate1664686566" - } - } - }, - { - "RequestUri": "https://fakekvurl.vault.azure.net/deletedcertificates/mergeCertificate1664686566?api-version=7.3", - "RequestMethod": "GET", - "RequestHeaders": { - ":authority": "localhost:5001", - ":method": "GET", - ":path": "/deletedcertificates/mergeCertificate1664686566?api-version=7.3", - ":scheme": "https", - "Accept": "application/json", - "Accept-Encoding": "gzip", - "Authorization": "Sanitized", - "User-Agent": "azsdk-go-generated/v0.1.0 azsdk-go-azcore/v0.20.0 (go1.17; Windows_NT)" - }, - "RequestBody": null, - "StatusCode": 200, - "ResponseHeaders": { - "Cache-Control": "no-cache", - "Content-Length": "2482", - "Content-Type": "application/json; charset=utf-8", - "Date": "Tue, 18 Jan 2022 18:31:41 GMT", - "Expires": "-1", - "Pragma": "no-cache", - "Strict-Transport-Security": "max-age=31536000;includeSubDomains", - "X-Content-Type-Options": "nosniff", - "x-ms-keyvault-network-info": "conn_type=Ipv4;addr=72.49.29.93;act_addr_fam=InterNetwork;", - "x-ms-keyvault-region": "westus2", - "x-ms-keyvault-service-version": "1.9.264.1", - "x-ms-request-id": "5a7c5f0f-e003-43a7-b73f-374a66b1ae83", - "X-Powered-By": "ASP.NET" - }, - "ResponseBody": { - "recoveryId": "https://fakekvurl.vault.azure.net/deletedcertificates/mergeCertificate1664686566", - "deletedDate": 1642530699, - "scheduledPurgeDate": 1643135499, - "id": "https://fakekvurl.vault.azure.net/certificates/mergeCertificate1664686566/0fbe1f2822f04a45ad9d53a2b1589dcc", - "kid": "https://fakekvurl.vault.azure.net/keys/mergeCertificate1664686566/0fbe1f2822f04a45ad9d53a2b1589dcc", - "sid": "https://fakekvurl.vault.azure.net/secrets/mergeCertificate1664686566/0fbe1f2822f04a45ad9d53a2b1589dcc", - "x5t": "Fwhwou8Mun3oNFSoq7KN1PHdUN4", - "cer": "MIIC9DCCAdygAwIBAgIBATANBgkqhkiG9w0BAQsFADBFMQswCQYDVQQGEwJBVTETMBEGA1UECAwKU29tZS1TdGF0ZTEhMB8GA1UECgwYSW50ZXJuZXQgV2lkZ2l0cyBQdHkgTHRkMB4XDTIyMDExODE4MzEzOFoXDTIyMDExOTE4MzEzOFowETEPMA0GA1UEAxMGTXlDZXJ0MIIBIjANBgkqhkiG9w0BAQEFAAOCAQ8AMIIBCgKCAQEAxVr0qVG8z90zLtiyWIzDGK2AH/Q5a2WZXOPaLClrHTf5w/pXTKr52GeRKK7TZD2C2B4zKoAg3L4Uf3efDFnRYNjfAwn8RFYgSczwwVVoadhV7ayHLL1Bh9CPOuslaNGCwI0UVGH/Doa81ialhXlHH3CBJYwFMFgJqkNwbDNUsGQurED6606fdA84hU7N0rdSfJ7U/SK5ZbMkhhbMMfxFtVz11Ja2IYuN6shSSo5SLNxqYjLDuYyAg6EYlrCN/2sdwqH6aZcARxWVwJTzeat6elnhSkSMDa97jCAsdBqwqdGOWd7pWfoU/SP3Cr9ePnUnEKsXXdLZNad1kG\u002BtB7zhGQIDAQABoyMwITAfBgNVHSMEGDAWgBQIAunu6y1BmFSDfFNfTnqFggB0gzANBgkqhkiG9w0BAQsFAAOCAQEA5VmF7i1Sdf99mfcJGpdrvRPzUofBMlwZPcM43QY3mNyUrrFOSgfSLDEo0bLk8LffBB1GAoTKtCGoIotc3DKct64KMApPgGZoLjNnGZ4wquMxrMMO8LSirrgQvIAGfd8QfDe41XYT5Jek7EGF4xp7nqTYxYc3feJcjHWnuQyAAMD7J2h5jvfDoJ6A0noGd2eHjWPoeaChjuWoaeIxG4k9CHQXsSp/eVZJdRmhkObhnN6lu7VoNPfE0ruMzHANorBf\u002B\u002BlfPCLPhKB\u002Bp6QGI9OdRF8Y6Tfo6orq9da1Gfuj2qzu23o5yBdB/ZtcTAWIRGiUJsmuiMiyuCg6cOMgnHHE7A==", - "attributes": { - "enabled": true, - "nbf": 1642530698, - "exp": 1642617098, - "created": 1642530699, - "updated": 1642530699, - "recoveryLevel": "CustomizedRecoverable\u002BPurgeable", - "recoverableDays": 7 - }, - "policy": { - "id": "https://fakekvurl.vault.azure.net/certificates/mergeCertificate1664686566/policy", - "key_props": { - "exportable": true, - "kty": "RSA", - "key_size": 2048, - "reuse_key": false - }, - "secret_props": { - "contentType": "application/x-pkcs12" - }, - "x509_props": { - "subject": "CN=MyCert", - "sans": {}, - "ekus": [ - "1.3.6.1.5.5.7.3.1", - "1.3.6.1.5.5.7.3.2" - ], - "key_usage": [ - "digitalSignature", - "keyEncipherment" - ], - "validity_months": 12, - "basic_constraints": { - "ca": false - } - }, - "lifetime_actions": [ - { - "trigger": { - "lifetime_percentage": 80 - }, - "action": { - "action_type": "EmailContacts" - } - } - ], - "issuer": { - "name": "Unknown", - "cert_transparency": false - }, - "attributes": { - "enabled": true, - "created": 1642530698, - "updated": 1642530698 - } - }, - "pending": { - "id": "https://fakekvurl.vault.azure.net/certificates/mergeCertificate1664686566/pending" - } - } - }, - { - "RequestUri": "https://fakekvurl.vault.azure.net/deletedcertificates/mergeCertificate1664686566?api-version=7.3", - "RequestMethod": "DELETE", - "RequestHeaders": { - ":authority": "localhost:5001", - ":method": "DELETE", - ":path": "/deletedcertificates/mergeCertificate1664686566?api-version=7.3", - ":scheme": "https", - "Accept": "application/json", - "Accept-Encoding": "gzip", - "Authorization": "Sanitized", - "User-Agent": "azsdk-go-generated/v0.1.0 azsdk-go-azcore/v0.20.0 (go1.17; Windows_NT)" - }, - "RequestBody": null, - "StatusCode": 204, - "ResponseHeaders": { - "Cache-Control": "no-cache", - "Date": "Tue, 18 Jan 2022 18:31:41 GMT", - "Expires": "-1", - "Pragma": "no-cache", - "Strict-Transport-Security": "max-age=31536000;includeSubDomains", - "X-Content-Type-Options": "nosniff", - "x-ms-keyvault-network-info": "conn_type=Ipv4;addr=72.49.29.93;act_addr_fam=InterNetwork;", - "x-ms-keyvault-region": "westus2", - "x-ms-keyvault-service-version": "1.9.264.1", - "x-ms-request-id": "c3331935-2118-483e-9823-5bb920602e74", - "X-Powered-By": "ASP.NET" - }, - "ResponseBody": null } ], "Variables": {} diff --git a/sdk/keyvault/azcertificates/testdata/recordings/TestOperationCRUD.json b/sdk/keyvault/azcertificates/testdata/recordings/TestOperationCRUD.json new file mode 100644 index 000000000000..017c5becb232 --- /dev/null +++ b/sdk/keyvault/azcertificates/testdata/recordings/TestOperationCRUD.json @@ -0,0 +1,204 @@ +{ + "Entries": [ + { + "RequestUri": "https://fakevault/certificates/2455761926/create?api-version=7.3", + "RequestMethod": "POST", + "RequestHeaders": { + "Accept": "application/json", + "Accept-Encoding": "gzip", + "Content-Length": "0", + "User-Agent": "azsdk-go-azcertificates/v0.5.0 (go1.18; linux)" + }, + "RequestBody": null, + "StatusCode": 401, + "ResponseHeaders": { + "Cache-Control": "no-cache", + "Content-Length": "97", + "Content-Type": "application/json; charset=utf-8", + "Date": "Wed, 29 Jun 2022 20:49:04 GMT", + "Expires": "-1", + "Pragma": "no-cache", + "Strict-Transport-Security": "max-age=31536000;includeSubDomains", + "WWW-Authenticate": "Bearer authorization=\u0022https://login.windows.net/72f988bf-86f1-41af-91ab-2d7cd011db47\u0022, resource=\u0022https://vault.azure.net\u0022", + "X-Content-Type-Options": "nosniff", + "x-ms-keyvault-network-info": "conn_type=Ipv4;addr=24.17.201.78;act_addr_fam=InterNetwork;", + "x-ms-keyvault-region": "eastus", + "x-ms-keyvault-service-version": "1.9.444.2", + "x-ms-request-id": "f5d43ac0-2e5c-4a22-aed7-6c4f02646d26" + }, + "ResponseBody": { + "error": { + "code": "Unauthorized", + "message": "AKV10000: Request is missing a Bearer or PoP token." + } + } + }, + { + "RequestUri": "https://fakevault/certificates/2455761926/create?api-version=7.3", + "RequestMethod": "POST", + "RequestHeaders": { + "Accept": "application/json", + "Accept-Encoding": "gzip", + "Authorization": "Sanitized", + "Content-Length": "81", + "Content-Type": "application/json", + "User-Agent": "azsdk-go-azcertificates/v0.5.0 (go1.18; linux)" + }, + "RequestBody": { + "policy": { + "issuer": { + "name": "self" + }, + "x509_props": { + "subject": "CN=DefaultPolicy" + } + } + }, + "StatusCode": 202, + "ResponseHeaders": { + "Cache-Control": "no-cache", + "Content-Length": "1269", + "Content-Type": "application/json; charset=utf-8", + "Date": "Wed, 29 Jun 2022 20:49:06 GMT", + "Expires": "-1", + "Location": "https://fakevault/certificates/2455761926/pending?api-version=7.3\u0026request_id=875ad7b2fa874ca287938f32bd17055c", + "Pragma": "no-cache", + "Retry-After": "10", + "Strict-Transport-Security": "max-age=31536000;includeSubDomains", + "X-Content-Type-Options": "nosniff", + "x-ms-keyvault-network-info": "conn_type=Ipv4;addr=24.17.201.78;act_addr_fam=InterNetwork;", + "x-ms-keyvault-region": "eastus", + "x-ms-keyvault-service-version": "1.9.444.2", + "x-ms-request-id": "3e87b210-c507-41a2-bed5-cd60ae23257c" + }, + "ResponseBody": { + "id": "https://fakevault/certificates/2455761926/pending", + "issuer": { + "name": "self" + }, + "csr": "MIICqDCCAZACAQAwGDEWMBQGA1UEAxMNRGVmYXVsdFBvbGljeTCCASIwDQYJKoZIhvcNAQEBBQADggEPADCCAQoCggEBAKqmeaqkSdZVSkf4/bC/Nj8TYAf5z6dPjS7rrUCQAFgN3hM86PKNNoXxyB8hvnhsSgiU/002fX\u002BP/bCxCVg4fHjNKkgcgY5zh93\u002BG6h5THM01svlTXY3DDniPCkuy0vfn9gcb08rlCQuFnrA2ECBZXRzHadA5M\u002BFUeM4NUtjW5hpnDuenUEhEW3MwxDIQirQSinvmu8eTnx3WIhp3B1ASjH/a8aXZD0Dk\u002B2DGgmj0nEbqqfhXLjr6PemR94yE3hSkF4HOtJwuEkLuN/cq4YltIWolOjBZB4chTwWFO0sp0qHFavBGJIhiGuqVc3RmPsmeKrlD\u002Bosg49eTKHOeEeqUMECAwEAAaBLMEkGCSqGSIb3DQEJDjE8MDowDgYDVR0PAQH/BAQDAgWgMB0GA1UdJQQWMBQGCCsGAQUFBwMBBggrBgEFBQcDAjAJBgNVHRMEAjAAMA0GCSqGSIb3DQEBCwUAA4IBAQBEm\u002B0Ge4JQ7NgGc4xso1DOEDncVCP2a0EhG8xUSZ6B0RhpCYUdqajOHXGop\u002BvaAYEk\u002BWkuuok\u002Bwv7dlu2Ba7b5XLNiTB8L3fykER97Z9fXHRzHe49W1yoMqnJQ/SytcFMvSu2hLMKEhvHQxp3i3dmoqigU6ecbS1TRKDxrE1p1jvIfoEOK2YNqNeX\u002BvoL/fmGx\u002BpXvxCZTF/D/n06fVSdu56RI2V5GqTs7UOFpqrrUM9Kmtw8MqBS/ZC9/gG\u002BEE0KTq7hOODk7zzoNXK0afkjz8gfa2WiAA1puucKdbSxaLVFqn5n\u002BHF9Cpjw8QeQeKXC6XIuHH39lkqRqI1a9/e87", + "cancellation_requested": false, + "status": "inProgress", + "status_details": "Pending certificate created. Certificate request is in progress. This may take some time based on the issuer provider. Please check again later.", + "request_id": "875ad7b2fa874ca287938f32bd17055c" + } + }, + { + "RequestUri": "https://fakevault/certificates/2455761926/pending?api-version=7.3", + "RequestMethod": "PATCH", + "RequestHeaders": { + "Accept": "application/json", + "Accept-Encoding": "gzip", + "Authorization": "Sanitized", + "Content-Length": "31", + "Content-Type": "application/json", + "User-Agent": "azsdk-go-azcertificates/v0.5.0 (go1.18; linux)" + }, + "RequestBody": { + "cancellation_requested": true + }, + "StatusCode": 200, + "ResponseHeaders": { + "Cache-Control": "no-cache", + "Content-Length": "1268", + "Content-Type": "application/json; charset=utf-8", + "Date": "Wed, 29 Jun 2022 20:49:06 GMT", + "Expires": "-1", + "Pragma": "no-cache", + "Strict-Transport-Security": "max-age=31536000;includeSubDomains", + "X-Content-Type-Options": "nosniff", + "x-ms-keyvault-network-info": "conn_type=Ipv4;addr=24.17.201.78;act_addr_fam=InterNetwork;", + "x-ms-keyvault-region": "eastus", + "x-ms-keyvault-service-version": "1.9.444.2", + "x-ms-request-id": "c67f4d34-4275-4f39-b0b6-aeb72cdaf279" + }, + "ResponseBody": { + "id": "https://fakevault/certificates/2455761926/pending", + "issuer": { + "name": "self" + }, + "csr": "MIICqDCCAZACAQAwGDEWMBQGA1UEAxMNRGVmYXVsdFBvbGljeTCCASIwDQYJKoZIhvcNAQEBBQADggEPADCCAQoCggEBAKqmeaqkSdZVSkf4/bC/Nj8TYAf5z6dPjS7rrUCQAFgN3hM86PKNNoXxyB8hvnhsSgiU/002fX\u002BP/bCxCVg4fHjNKkgcgY5zh93\u002BG6h5THM01svlTXY3DDniPCkuy0vfn9gcb08rlCQuFnrA2ECBZXRzHadA5M\u002BFUeM4NUtjW5hpnDuenUEhEW3MwxDIQirQSinvmu8eTnx3WIhp3B1ASjH/a8aXZD0Dk\u002B2DGgmj0nEbqqfhXLjr6PemR94yE3hSkF4HOtJwuEkLuN/cq4YltIWolOjBZB4chTwWFO0sp0qHFavBGJIhiGuqVc3RmPsmeKrlD\u002Bosg49eTKHOeEeqUMECAwEAAaBLMEkGCSqGSIb3DQEJDjE8MDowDgYDVR0PAQH/BAQDAgWgMB0GA1UdJQQWMBQGCCsGAQUFBwMBBggrBgEFBQcDAjAJBgNVHRMEAjAAMA0GCSqGSIb3DQEBCwUAA4IBAQBEm\u002B0Ge4JQ7NgGc4xso1DOEDncVCP2a0EhG8xUSZ6B0RhpCYUdqajOHXGop\u002BvaAYEk\u002BWkuuok\u002Bwv7dlu2Ba7b5XLNiTB8L3fykER97Z9fXHRzHe49W1yoMqnJQ/SytcFMvSu2hLMKEhvHQxp3i3dmoqigU6ecbS1TRKDxrE1p1jvIfoEOK2YNqNeX\u002BvoL/fmGx\u002BpXvxCZTF/D/n06fVSdu56RI2V5GqTs7UOFpqrrUM9Kmtw8MqBS/ZC9/gG\u002BEE0KTq7hOODk7zzoNXK0afkjz8gfa2WiAA1puucKdbSxaLVFqn5n\u002BHF9Cpjw8QeQeKXC6XIuHH39lkqRqI1a9/e87", + "cancellation_requested": true, + "status": "inProgress", + "status_details": "Pending certificate created. Certificate request is in progress. This may take some time based on the issuer provider. Please check again later.", + "request_id": "875ad7b2fa874ca287938f32bd17055c" + } + }, + { + "RequestUri": "https://fakevault/certificates/2455761926/pending?api-version=7.3", + "RequestMethod": "GET", + "RequestHeaders": { + "Accept": "application/json", + "Accept-Encoding": "gzip", + "Authorization": "Sanitized", + "User-Agent": "azsdk-go-azcertificates/v0.5.0 (go1.18; linux)" + }, + "RequestBody": null, + "StatusCode": 200, + "ResponseHeaders": { + "Cache-Control": "no-cache", + "Content-Length": "1268", + "Content-Type": "application/json; charset=utf-8", + "Date": "Wed, 29 Jun 2022 20:49:07 GMT", + "Expires": "-1", + "Pragma": "no-cache", + "Retry-After": "10", + "Strict-Transport-Security": "max-age=31536000;includeSubDomains", + "X-Content-Type-Options": "nosniff", + "x-ms-keyvault-network-info": "conn_type=Ipv4;addr=24.17.201.78;act_addr_fam=InterNetwork;", + "x-ms-keyvault-region": "eastus", + "x-ms-keyvault-service-version": "1.9.444.2", + "x-ms-request-id": "0abc35cc-6038-44b7-bd2d-9783df847e1c" + }, + "ResponseBody": { + "id": "https://fakevault/certificates/2455761926/pending", + "issuer": { + "name": "self" + }, + "csr": "MIICqDCCAZACAQAwGDEWMBQGA1UEAxMNRGVmYXVsdFBvbGljeTCCASIwDQYJKoZIhvcNAQEBBQADggEPADCCAQoCggEBAKqmeaqkSdZVSkf4/bC/Nj8TYAf5z6dPjS7rrUCQAFgN3hM86PKNNoXxyB8hvnhsSgiU/002fX\u002BP/bCxCVg4fHjNKkgcgY5zh93\u002BG6h5THM01svlTXY3DDniPCkuy0vfn9gcb08rlCQuFnrA2ECBZXRzHadA5M\u002BFUeM4NUtjW5hpnDuenUEhEW3MwxDIQirQSinvmu8eTnx3WIhp3B1ASjH/a8aXZD0Dk\u002B2DGgmj0nEbqqfhXLjr6PemR94yE3hSkF4HOtJwuEkLuN/cq4YltIWolOjBZB4chTwWFO0sp0qHFavBGJIhiGuqVc3RmPsmeKrlD\u002Bosg49eTKHOeEeqUMECAwEAAaBLMEkGCSqGSIb3DQEJDjE8MDowDgYDVR0PAQH/BAQDAgWgMB0GA1UdJQQWMBQGCCsGAQUFBwMBBggrBgEFBQcDAjAJBgNVHRMEAjAAMA0GCSqGSIb3DQEBCwUAA4IBAQBEm\u002B0Ge4JQ7NgGc4xso1DOEDncVCP2a0EhG8xUSZ6B0RhpCYUdqajOHXGop\u002BvaAYEk\u002BWkuuok\u002Bwv7dlu2Ba7b5XLNiTB8L3fykER97Z9fXHRzHe49W1yoMqnJQ/SytcFMvSu2hLMKEhvHQxp3i3dmoqigU6ecbS1TRKDxrE1p1jvIfoEOK2YNqNeX\u002BvoL/fmGx\u002BpXvxCZTF/D/n06fVSdu56RI2V5GqTs7UOFpqrrUM9Kmtw8MqBS/ZC9/gG\u002BEE0KTq7hOODk7zzoNXK0afkjz8gfa2WiAA1puucKdbSxaLVFqn5n\u002BHF9Cpjw8QeQeKXC6XIuHH39lkqRqI1a9/e87", + "cancellation_requested": true, + "status": "inProgress", + "status_details": "Pending certificate created. Certificate request is in progress. This may take some time based on the issuer provider. Please check again later.", + "request_id": "875ad7b2fa874ca287938f32bd17055c" + } + }, + { + "RequestUri": "https://fakevault/certificates/2455761926/pending?api-version=7.3", + "RequestMethod": "DELETE", + "RequestHeaders": { + "Accept": "application/json", + "Accept-Encoding": "gzip", + "Authorization": "Sanitized", + "User-Agent": "azsdk-go-azcertificates/v0.5.0 (go1.18; linux)" + }, + "RequestBody": null, + "StatusCode": 200, + "ResponseHeaders": { + "Cache-Control": "no-cache", + "Content-Length": "1268", + "Content-Type": "application/json; charset=utf-8", + "Date": "Wed, 29 Jun 2022 20:49:07 GMT", + "Expires": "-1", + "Pragma": "no-cache", + "Strict-Transport-Security": "max-age=31536000;includeSubDomains", + "X-Content-Type-Options": "nosniff", + "x-ms-keyvault-network-info": "conn_type=Ipv4;addr=24.17.201.78;act_addr_fam=InterNetwork;", + "x-ms-keyvault-region": "eastus", + "x-ms-keyvault-service-version": "1.9.444.2", + "x-ms-request-id": "d9284c11-287a-45ea-b38a-74407ea43e6a" + }, + "ResponseBody": { + "id": "https://fakevault/certificates/2455761926/pending", + "issuer": { + "name": "self" + }, + "csr": "MIICqDCCAZACAQAwGDEWMBQGA1UEAxMNRGVmYXVsdFBvbGljeTCCASIwDQYJKoZIhvcNAQEBBQADggEPADCCAQoCggEBAKqmeaqkSdZVSkf4/bC/Nj8TYAf5z6dPjS7rrUCQAFgN3hM86PKNNoXxyB8hvnhsSgiU/002fX\u002BP/bCxCVg4fHjNKkgcgY5zh93\u002BG6h5THM01svlTXY3DDniPCkuy0vfn9gcb08rlCQuFnrA2ECBZXRzHadA5M\u002BFUeM4NUtjW5hpnDuenUEhEW3MwxDIQirQSinvmu8eTnx3WIhp3B1ASjH/a8aXZD0Dk\u002B2DGgmj0nEbqqfhXLjr6PemR94yE3hSkF4HOtJwuEkLuN/cq4YltIWolOjBZB4chTwWFO0sp0qHFavBGJIhiGuqVc3RmPsmeKrlD\u002Bosg49eTKHOeEeqUMECAwEAAaBLMEkGCSqGSIb3DQEJDjE8MDowDgYDVR0PAQH/BAQDAgWgMB0GA1UdJQQWMBQGCCsGAQUFBwMBBggrBgEFBQcDAjAJBgNVHRMEAjAAMA0GCSqGSIb3DQEBCwUAA4IBAQBEm\u002B0Ge4JQ7NgGc4xso1DOEDncVCP2a0EhG8xUSZ6B0RhpCYUdqajOHXGop\u002BvaAYEk\u002BWkuuok\u002Bwv7dlu2Ba7b5XLNiTB8L3fykER97Z9fXHRzHe49W1yoMqnJQ/SytcFMvSu2hLMKEhvHQxp3i3dmoqigU6ecbS1TRKDxrE1p1jvIfoEOK2YNqNeX\u002BvoL/fmGx\u002BpXvxCZTF/D/n06fVSdu56RI2V5GqTs7UOFpqrrUM9Kmtw8MqBS/ZC9/gG\u002BEE0KTq7hOODk7zzoNXK0afkjz8gfa2WiAA1puucKdbSxaLVFqn5n\u002BHF9Cpjw8QeQeKXC6XIuHH39lkqRqI1a9/e87", + "cancellation_requested": true, + "status": "inProgress", + "status_details": "Pending certificate created. Certificate request is in progress. This may take some time based on the issuer provider. Please check again later.", + "request_id": "875ad7b2fa874ca287938f32bd17055c" + } + } + ], + "Variables": {} +} diff --git a/sdk/keyvault/azcertificates/testdata/recordings/TestPolicy.json b/sdk/keyvault/azcertificates/testdata/recordings/TestPolicy.json deleted file mode 100644 index 2917f4c51243..000000000000 --- a/sdk/keyvault/azcertificates/testdata/recordings/TestPolicy.json +++ /dev/null @@ -1,321 +0,0 @@ -{ - "Entries": [ - { - "RequestUri": "https://fakekvurl.vault.azure.net/certificates/policyCertificate2501526751/create?api-version=7.3", - "RequestMethod": "POST", - "RequestHeaders": { - ":method": "POST", - "Accept": "application/json", - "Accept-Encoding": "gzip", - "Content-Length": "0", - "User-Agent": "azsdk-go-azcertificates/v0.4.2 (go1.18; Windows_NT)" - }, - "RequestBody": null, - "StatusCode": 401, - "ResponseHeaders": { - "Cache-Control": "no-cache", - "Content-Length": "97", - "Content-Type": "application/json; charset=utf-8", - "Date": "Mon, 16 May 2022 18:13:50 GMT", - "Expires": "-1", - "Pragma": "no-cache", - "Strict-Transport-Security": "max-age=31536000;includeSubDomains", - "WWW-Authenticate": "Bearer authorization=\u0022https://login.windows.net/00000000-0000-0000-0000-000000000000\u0022, resource=\u0022https://vault.azure.net\u0022", - "X-Content-Type-Options": "nosniff", - "x-ms-keyvault-network-info": "conn_type=Ipv4;addr=73.83.78.150;act_addr_fam=InterNetwork;", - "x-ms-keyvault-region": "westus2", - "x-ms-keyvault-service-version": "1.9.395.1", - "x-ms-request-id": "75d37e4d-4cca-4df9-8fce-97c7c3f072c9" - }, - "ResponseBody": { - "error": { - "code": "Unauthorized", - "message": "AKV10000: Request is missing a Bearer or PoP token." - } - } - }, - { - "RequestUri": "https://fakekvurl.vault.azure.net/certificates/policyCertificate2501526751/create?api-version=7.3", - "RequestMethod": "POST", - "RequestHeaders": { - ":method": "POST", - "Accept": "application/json", - "Accept-Encoding": "gzip", - "Authorization": "Sanitized", - "Content-Length": "497", - "Content-Type": "application/json", - "User-Agent": "azsdk-go-azcertificates/v0.4.2 (go1.18; Windows_NT)" - }, - "RequestBody": { - "attributes": {}, - "policy": { - "issuer": { - "cert_transparency": false, - "name": "Self" - }, - "key_props": { - "exportable": true, - "key_size": 2048, - "kty": "RSA", - "reuse_key": true - }, - "lifetime_actions": [ - { - "action": { - "action_type": "EmailContacts" - }, - "trigger": { - "lifetime_percentage": 98 - } - } - ], - "secret_props": { - "contentType": "application/x-pkcs12" - }, - "x509_props": { - "ekus": [ - "1.3.6.1.5.5.7.3.1", - "1.3.6.1.5.5.7.3.2" - ], - "key_usage": [ - "decipherOnly" - ], - "sans": { - "dns_names": [ - "sdk.azure-int.net" - ] - }, - "subject": "CN=DefaultPolicy", - "validity_months": 12 - } - } - }, - "StatusCode": 202, - "ResponseHeaders": { - "Cache-Control": "no-cache", - "Content-Length": "1346", - "Content-Type": "application/json; charset=utf-8", - "Date": "Mon, 16 May 2022 18:13:51 GMT", - "Expires": "-1", - "Location": "https://fakekvurl.vault.azure.net/certificates/policyCertificate2501526751/pending?api-version=7.3\u0026request_id=62461707442044acbc9fad36c665ea44", - "Pragma": "no-cache", - "Retry-After": "10", - "Strict-Transport-Security": "max-age=31536000;includeSubDomains", - "X-Content-Type-Options": "nosniff", - "x-ms-keyvault-network-info": "conn_type=Ipv4;addr=73.83.78.150;act_addr_fam=InterNetwork;", - "x-ms-keyvault-region": "westus2", - "x-ms-keyvault-service-version": "1.9.395.1", - "x-ms-request-id": "72986c37-068d-4a0f-b553-c29547acbf4f" - }, - "ResponseBody": { - "id": "https://fakekvurl.vault.azure.net/certificates/policyCertificate2501526751/pending", - "issuer": { - "name": "Self" - }, - "csr": "MIICxzCCAa8CAQAwGDEWMBQGA1UEAxMNRGVmYXVsdFBvbGljeTCCASIwDQYJKoZIhvcNAQEBBQADggEPADCCAQoCggEBANRQKzjSTThId3K4Urk6K8ZTPAY1w\u002BHc9zF25wPBjHjHChYrwWUkf3C9m4nh26ljAM0fnjMWYmhWzkZnZDACt8zowO\u002BQb/mwJvLLv\u002Bixgwe8pcvG8LVCteHMcIlRUAC6VZ3HvMrA0ZraU48BYmL8AYe645vDtRsIZtsu2tXHxM6FsjlksaAywHTiL17Ey01NpV0l/4\u002Bfac5EpfLNbuj3QqxMFbgNfPP91qGWmf/nWD3y51mvhE9OxdPtu9aXh\u002Bk0CW9Qv7o4Gawh8Oq21i3G4pa7tiYkI67IQ1cAEMdTAJ1Qj05tq/oecqO84R\u002Bf7g83Wgpoq7SZOBwbYxuV1YHpJxUCAwEAAaBqMGgGCSqGSIb3DQEJDjFbMFkwDwYDVR0PAQH/BAUDAwcAgDAdBgNVHSUEFjAUBggrBgEFBQcDAQYIKwYBBQUHAwIwHAYDVR0RBBUwE4IRc2RrLmF6dXJlLWludC5uZXQwCQYDVR0TBAIwADANBgkqhkiG9w0BAQsFAAOCAQEAVFT8Utu1dZkmnc0RHFonU6Xxq5UJgSIm8uHMU6SZGOye4ZZ48AsVcFJOiAbr671fdHATFX9BJVFAqvS0yT3SYPrEnXZZBLoeolS212Ni19nfHgt4L0lLAbDNLkmRAqsQ26cR4gtaVZnxd3bCUkQHyCLtPxiOGLrwj8JbTEPSYi8Z6ez13ln0syI54TM4UxkUzR1RXh8z2XELlGtL5K22hrn4gKkYNMeY044KK8WDggoGn2u/eugsz/bw6XZtmUDgLYEQVdPI91GydXaSxOGC9JXiIKQ4wZjlg4qEi9qLf0jAYC0PonSUTRXyReIyhja\u002BjKJAT2UrRbVo/j\u002BXdnoCNA==", - "cancellation_requested": false, - "status": "inProgress", - "status_details": "Pending certificate created. Certificate request is in progress. This may take some time based on the issuer provider. Please check again later.", - "request_id": "62461707442044acbc9fad36c665ea44" - } - }, - { - "RequestUri": "https://fakekvurl.vault.azure.net/certificates/policyCertificate2501526751/policy?api-version=7.3", - "RequestMethod": "GET", - "RequestHeaders": { - ":method": "GET", - "Accept": "application/json", - "Accept-Encoding": "gzip", - "Authorization": "Sanitized", - "User-Agent": "azsdk-go-azcertificates/v0.4.2 (go1.18; Windows_NT)" - }, - "RequestBody": null, - "StatusCode": 200, - "ResponseHeaders": { - "Cache-Control": "no-cache", - "Content-Length": "664", - "Content-Type": "application/json; charset=utf-8", - "Date": "Mon, 16 May 2022 18:13:51 GMT", - "Expires": "-1", - "Pragma": "no-cache", - "Strict-Transport-Security": "max-age=31536000;includeSubDomains", - "X-Content-Type-Options": "nosniff", - "x-ms-keyvault-network-info": "conn_type=Ipv4;addr=73.83.78.150;act_addr_fam=InterNetwork;", - "x-ms-keyvault-region": "westus2", - "x-ms-keyvault-service-version": "1.9.395.1", - "x-ms-request-id": "4d10f0c1-8103-4100-9d7e-0098672e05e8" - }, - "ResponseBody": { - "id": "https://fakekvurl.vault.azure.net/certificates/policyCertificate2501526751/policy", - "key_props": { - "exportable": true, - "kty": "RSA", - "key_size": 2048, - "reuse_key": true - }, - "secret_props": { - "contentType": "application/x-pkcs12" - }, - "x509_props": { - "subject": "CN=DefaultPolicy", - "sans": { - "dns_names": [ - "sdk.azure-int.net" - ] - }, - "ekus": [ - "1.3.6.1.5.5.7.3.1", - "1.3.6.1.5.5.7.3.2" - ], - "key_usage": [ - "decipherOnly" - ], - "validity_months": 12, - "basic_constraints": { - "ca": false - } - }, - "lifetime_actions": [ - { - "trigger": { - "lifetime_percentage": 98 - }, - "action": { - "action_type": "EmailContacts" - } - } - ], - "issuer": { - "name": "Self", - "cert_transparency": false - }, - "attributes": { - "enabled": true, - "created": 1652715903, - "updated": 1652724831 - } - } - }, - { - "RequestUri": "https://fakekvurl.vault.azure.net/certificates/policyCertificate2501526751/policy?api-version=7.3", - "RequestMethod": "PATCH", - "RequestHeaders": { - "Accept": "application/json", - "Accept-Encoding": "gzip", - "Authorization": "Sanitized", - "Content-Length": "482", - "Content-Type": "application/json", - "User-Agent": "azsdk-go-azcertificates/v0.4.2 (go1.18; Windows_NT)" - }, - "RequestBody": { - "issuer": { - "cert_transparency": false, - "name": "Self" - }, - "key_props": { - "crv": "P-256", - "exportable": true, - "key_size": 256, - "kty": "EC", - "reuse_key": true - }, - "lifetime_actions": [ - { - "action": { - "action_type": "EmailContacts" - }, - "trigger": { - "lifetime_percentage": 98 - } - } - ], - "secret_props": { - "contentType": "application/x-pkcs12" - }, - "x509_props": { - "ekus": [ - "1.3.6.1.5.5.7.3.1", - "1.3.6.1.5.5.7.3.2" - ], - "key_usage": [ - "decipherOnly" - ], - "sans": { - "dns_names": [ - "sdk.azure-int.net" - ] - }, - "subject": "CN=DefaultPolicy", - "validity_months": 12 - } - }, - "StatusCode": 200, - "ResponseHeaders": { - "Cache-Control": "no-cache", - "Content-Length": "676", - "Content-Type": "application/json; charset=utf-8", - "Date": "Mon, 16 May 2022 18:13:51 GMT", - "Expires": "-1", - "Pragma": "no-cache", - "Strict-Transport-Security": "max-age=31536000;includeSubDomains", - "X-Content-Type-Options": "nosniff", - "x-ms-keyvault-network-info": "conn_type=Ipv4;addr=73.83.78.150;act_addr_fam=InterNetwork;", - "x-ms-keyvault-region": "westus2", - "x-ms-keyvault-service-version": "1.9.395.1", - "x-ms-request-id": "333b63d6-1f5f-4077-a99a-83e863bae1e4" - }, - "ResponseBody": { - "id": "https://fakekvurl.vault.azure.net/certificates/policyCertificate2501526751/policy", - "key_props": { - "exportable": true, - "kty": "EC", - "key_size": 256, - "reuse_key": true, - "crv": "P-256" - }, - "secret_props": { - "contentType": "application/x-pkcs12" - }, - "x509_props": { - "subject": "CN=DefaultPolicy", - "sans": { - "dns_names": [ - "sdk.azure-int.net" - ] - }, - "ekus": [ - "1.3.6.1.5.5.7.3.1", - "1.3.6.1.5.5.7.3.2" - ], - "key_usage": [ - "decipherOnly" - ], - "validity_months": 12, - "basic_constraints": { - "ca": false - } - }, - "lifetime_actions": [ - { - "trigger": { - "lifetime_percentage": 98 - }, - "action": { - "action_type": "EmailContacts" - } - } - ], - "issuer": { - "name": "Self", - "cert_transparency": false - }, - "attributes": { - "enabled": true, - "created": 1652715903, - "updated": 1652724831 - } - } - } - ], - "Variables": {} -} diff --git a/sdk/keyvault/azcertificates/testdata/recordings/TestUpdateCertificatePolicy.json b/sdk/keyvault/azcertificates/testdata/recordings/TestUpdateCertificatePolicy.json new file mode 100644 index 000000000000..df4e67577189 --- /dev/null +++ b/sdk/keyvault/azcertificates/testdata/recordings/TestUpdateCertificatePolicy.json @@ -0,0 +1,384 @@ +{ + "Entries": [ + { + "RequestUri": "https://fakevault/certificates/1917406029/create?api-version=7.3", + "RequestMethod": "POST", + "RequestHeaders": { + "Accept": "application/json", + "Accept-Encoding": "gzip", + "Content-Length": "0", + "User-Agent": "azsdk-go-azcertificates/v0.5.0 (go1.18; linux)" + }, + "RequestBody": null, + "StatusCode": 401, + "ResponseHeaders": { + "Cache-Control": "no-cache", + "Content-Length": "97", + "Content-Type": "application/json; charset=utf-8", + "Date": "Wed, 29 Jun 2022 23:23:26 GMT", + "Expires": "-1", + "Pragma": "no-cache", + "Strict-Transport-Security": "max-age=31536000;includeSubDomains", + "WWW-Authenticate": "Bearer authorization=\u0022https://login.windows.net/72f988bf-86f1-41af-91ab-2d7cd011db47\u0022, resource=\u0022https://vault.azure.net\u0022", + "X-Content-Type-Options": "nosniff", + "x-ms-keyvault-network-info": "conn_type=Ipv4;addr=24.17.201.78;act_addr_fam=InterNetwork;", + "x-ms-keyvault-region": "eastus", + "x-ms-keyvault-service-version": "1.9.444.2", + "x-ms-request-id": "f9782b69-d4e8-4ef6-9bdc-421e0fb24974" + }, + "ResponseBody": { + "error": { + "code": "Unauthorized", + "message": "AKV10000: Request is missing a Bearer or PoP token." + } + } + }, + { + "RequestUri": "https://fakevault/certificates/1917406029/create?api-version=7.3", + "RequestMethod": "POST", + "RequestHeaders": { + "Accept": "application/json", + "Accept-Encoding": "gzip", + "Authorization": "Sanitized", + "Content-Length": "541", + "Content-Type": "application/json", + "User-Agent": "azsdk-go-azcertificates/v0.5.0 (go1.18; linux)" + }, + "RequestBody": { + "policy": { + "attributes": { + "enabled": true, + "exp": 2208992460, + "nbf": 1893459660 + }, + "issuer": { + "cert_transparency": false, + "name": "Self" + }, + "key_props": { + "exportable": true, + "key_size": 2048, + "kty": "RSA", + "reuse_key": true + }, + "lifetime_actions": [ + { + "action": { + "action_type": "EmailContacts" + }, + "trigger": { + "lifetime_percentage": 98 + } + } + ], + "secret_props": { + "contentType": "application/x-pkcs12" + }, + "x509_props": { + "ekus": [ + "1.3.6.1.5.5.7.3.1", + "1.3.6.1.5.5.7.3.2" + ], + "key_usage": [ + "dataEncipherment" + ], + "sans": { + "dns_names": [ + "localhost" + ] + }, + "subject": "CN=DefaultPolicy", + "validity_months": 12 + } + } + }, + "StatusCode": 202, + "ResponseHeaders": { + "Cache-Control": "no-cache", + "Content-Length": "1301", + "Content-Type": "application/json; charset=utf-8", + "Date": "Wed, 29 Jun 2022 23:23:29 GMT", + "Expires": "-1", + "Location": "https://fakevault/certificates/1917406029/pending?api-version=7.3\u0026request_id=e284b9d0fbe744baae74e0e4b2bcd7d7", + "Pragma": "no-cache", + "Retry-After": "10", + "Strict-Transport-Security": "max-age=31536000;includeSubDomains", + "X-Content-Type-Options": "nosniff", + "x-ms-keyvault-network-info": "conn_type=Ipv4;addr=24.17.201.78;act_addr_fam=InterNetwork;", + "x-ms-keyvault-region": "eastus", + "x-ms-keyvault-service-version": "1.9.444.2", + "x-ms-request-id": "b6b9d3fa-08ce-427b-8d68-61abbd9058b8" + }, + "ResponseBody": { + "id": "https://fakevault/certificates/1917406029/pending", + "issuer": { + "name": "Self" + }, + "csr": "MIICvjCCAaYCAQAwGDEWMBQGA1UEAxMNRGVmYXVsdFBvbGljeTCCASIwDQYJKoZIhvcNAQEBBQADggEPADCCAQoCggEBAMyJOdrrY7qm\u002BnycAlIze4bDWPRsGn7Q18riK5ilOku2Wf7vugxMJdJJ2yqZrtub3E/sal88cROiMucRR3z1lvIFiCUPQRm\u002BmkBvhJ4bXTQOzKvLF2WMcLK7Sb\u002B67xp79h289esQf8C6qc\u002Bi/YoTrzKh2zJAtQCi0buPGsH4Y6FSJsdy2LU3LgWjOe1yf0J1odswP47YtVsece6Gm8pEIN3iiWXuy\u002BPkVJx4L1pOCiIxdG29lK//39LmbdJu/Y4/OJDp27HukRKtGSH7SVWW7dhmDpXcIkGl5EbJshSGrNp7w/fy2o\u002Bn4VRbkaaN29wG5tKiviq5gcTj3tqDdF0Cc0UCAwEAAaBhMF8GCSqGSIb3DQEJDjFSMFAwDgYDVR0PAQH/BAQDAgQQMB0GA1UdJQQWMBQGCCsGAQUFBwMBBggrBgEFBQcDAjAUBgNVHREEDTALgglsb2NhbGhvc3QwCQYDVR0TBAIwADANBgkqhkiG9w0BAQsFAAOCAQEAvlai6\u002BsWnguInpKTaJWjNjycQ2kQV3XFDTp3WHZa5z42f\u002BG45kEd6l6/TnSsfCvEyqqorqzLyrNJV7kVo8hQbzPiZQWmdfWG1FTDh1fqKXDgQJKC2Bxl0JRmhncWa0OElRzOmr7qSyUUSzj6DNebbRgbzgQhONmeQDsktqhOJlApjDrFqNBxZoeISasnKNOJ6ybEij0BULk8fws5sdNAp64IKvGjujW1PTF4DI1yWSVP0K5hpUSHFNBrn0/YstsfgHNKcBh4G\u002BQcfkP04KXkpPqdjYDhF20/j4\u002BHikvj98IA6yD1JV0Jo8j2bcHb0wxPb2JDF6kOWgzrSSrORoIrmQ==", + "cancellation_requested": false, + "status": "inProgress", + "status_details": "Pending certificate created. Certificate request is in progress. This may take some time based on the issuer provider. Please check again later.", + "request_id": "e284b9d0fbe744baae74e0e4b2bcd7d7" + } + }, + { + "RequestUri": "https://fakevault/certificates/1917406029/policy?api-version=7.3", + "RequestMethod": "GET", + "RequestHeaders": { + "Accept": "application/json", + "Accept-Encoding": "gzip", + "Authorization": "Sanitized", + "User-Agent": "azsdk-go-azcertificates/v0.5.0 (go1.18; linux)" + }, + "RequestBody": null, + "StatusCode": 200, + "ResponseHeaders": { + "Cache-Control": "no-cache", + "Content-Length": "627", + "Content-Type": "application/json; charset=utf-8", + "Date": "Wed, 29 Jun 2022 23:23:29 GMT", + "Expires": "-1", + "Pragma": "no-cache", + "Strict-Transport-Security": "max-age=31536000;includeSubDomains", + "X-Content-Type-Options": "nosniff", + "x-ms-keyvault-network-info": "conn_type=Ipv4;addr=24.17.201.78;act_addr_fam=InterNetwork;", + "x-ms-keyvault-region": "eastus", + "x-ms-keyvault-service-version": "1.9.444.2", + "x-ms-request-id": "db947db3-c121-4d44-9e45-20cb44c9d9f9" + }, + "ResponseBody": { + "id": "https://fakevault/certificates/1917406029/policy", + "key_props": { + "exportable": true, + "kty": "RSA", + "key_size": 2048, + "reuse_key": true + }, + "secret_props": { + "contentType": "application/x-pkcs12" + }, + "x509_props": { + "subject": "CN=DefaultPolicy", + "sans": { + "dns_names": [ + "localhost" + ] + }, + "ekus": [ + "1.3.6.1.5.5.7.3.1", + "1.3.6.1.5.5.7.3.2" + ], + "key_usage": [ + "dataEncipherment" + ], + "validity_months": 12, + "basic_constraints": { + "ca": false + } + }, + "lifetime_actions": [ + { + "trigger": { + "lifetime_percentage": 98 + }, + "action": { + "action_type": "EmailContacts" + } + } + ], + "issuer": { + "name": "Self", + "cert_transparency": false + }, + "attributes": { + "enabled": true, + "created": 1656545008, + "updated": 1656545008 + } + } + }, + { + "RequestUri": "https://fakevault/certificates/1917406029/policy?api-version=7.3", + "RequestMethod": "PATCH", + "RequestHeaders": { + "Accept": "application/json", + "Accept-Encoding": "gzip", + "Authorization": "Sanitized", + "Content-Length": "92", + "Content-Type": "application/json", + "User-Agent": "azsdk-go-azcertificates/v0.5.0 (go1.18; linux)" + }, + "RequestBody": { + "key_props": { + "crv": "P-256K", + "exportable": true, + "key_size": 256, + "kty": "EC", + "reuse_key": false + } + }, + "StatusCode": 200, + "ResponseHeaders": { + "Cache-Control": "no-cache", + "Content-Length": "641", + "Content-Type": "application/json; charset=utf-8", + "Date": "Wed, 29 Jun 2022 23:23:29 GMT", + "Expires": "-1", + "Pragma": "no-cache", + "Strict-Transport-Security": "max-age=31536000;includeSubDomains", + "X-Content-Type-Options": "nosniff", + "x-ms-keyvault-network-info": "conn_type=Ipv4;addr=24.17.201.78;act_addr_fam=InterNetwork;", + "x-ms-keyvault-region": "eastus", + "x-ms-keyvault-service-version": "1.9.444.2", + "x-ms-request-id": "71fb65e0-b24a-4132-93ee-c34d77dd0dab" + }, + "ResponseBody": { + "id": "https://fakevault/certificates/1917406029/policy", + "key_props": { + "exportable": true, + "kty": "EC", + "key_size": 256, + "reuse_key": false, + "crv": "P-256K" + }, + "secret_props": { + "contentType": "application/x-pkcs12" + }, + "x509_props": { + "subject": "CN=DefaultPolicy", + "sans": { + "dns_names": [ + "localhost" + ] + }, + "ekus": [ + "1.3.6.1.5.5.7.3.1", + "1.3.6.1.5.5.7.3.2" + ], + "key_usage": [ + "dataEncipherment" + ], + "validity_months": 12, + "basic_constraints": { + "ca": false + } + }, + "lifetime_actions": [ + { + "trigger": { + "lifetime_percentage": 98 + }, + "action": { + "action_type": "EmailContacts" + } + } + ], + "issuer": { + "name": "Self", + "cert_transparency": false + }, + "attributes": { + "enabled": true, + "created": 1656545008, + "updated": 1656545009 + } + } + }, + { + "RequestUri": "https://fakevault/certificates/1917406029?api-version=7.3", + "RequestMethod": "DELETE", + "RequestHeaders": { + "Accept": "application/json", + "Accept-Encoding": "gzip", + "Authorization": "Sanitized", + "User-Agent": "azsdk-go-azcertificates/v0.5.0 (go1.18; linux)" + }, + "RequestBody": null, + "StatusCode": 200, + "ResponseHeaders": { + "Cache-Control": "no-cache", + "Content-Length": "1101", + "Content-Type": "application/json; charset=utf-8", + "Date": "Wed, 29 Jun 2022 23:23:29 GMT", + "Expires": "-1", + "Pragma": "no-cache", + "Strict-Transport-Security": "max-age=31536000;includeSubDomains", + "X-Content-Type-Options": "nosniff", + "x-ms-keyvault-network-info": "conn_type=Ipv4;addr=24.17.201.78;act_addr_fam=InterNetwork;", + "x-ms-keyvault-region": "eastus", + "x-ms-keyvault-service-version": "1.9.444.2", + "x-ms-request-id": "fd2e02e4-8718-491c-8281-ba892c51d2dd" + }, + "ResponseBody": { + "recoveryId": "https://fakevault/deletedcertificates/1917406029", + "deletedDate": 1656545009, + "scheduledPurgeDate": 1657149809, + "id": "https://fakevault/certificates/1917406029/c0ab5fb6eb974bbb84b0f7e7b33118fa", + "attributes": { + "enabled": false, + "nbf": 1656544408, + "exp": 1688081008, + "created": 1656545008, + "updated": 1656545008, + "recoveryLevel": "CustomizedRecoverable\u002BPurgeable", + "recoverableDays": 7 + }, + "policy": { + "id": "https://fakevault/certificates/1917406029/policy", + "key_props": { + "exportable": true, + "kty": "EC", + "key_size": 256, + "reuse_key": false, + "crv": "P-256K" + }, + "secret_props": { + "contentType": "application/x-pkcs12" + }, + "x509_props": { + "subject": "CN=DefaultPolicy", + "sans": { + "dns_names": [ + "localhost" + ] + }, + "ekus": [ + "1.3.6.1.5.5.7.3.1", + "1.3.6.1.5.5.7.3.2" + ], + "key_usage": [ + "dataEncipherment" + ], + "validity_months": 12, + "basic_constraints": { + "ca": false + } + }, + "lifetime_actions": [ + { + "trigger": { + "lifetime_percentage": 98 + }, + "action": { + "action_type": "EmailContacts" + } + } + ], + "issuer": { + "name": "Self", + "cert_transparency": false + }, + "attributes": { + "enabled": true, + "created": 1656545008, + "updated": 1656545009 + } + }, + "pending": { + "id": "https://fakevault/certificates/1917406029/pending" + } + } + } + ], + "Variables": {} +} diff --git a/sdk/keyvault/azcertificates/internal/generated/time_unix.go b/sdk/keyvault/azcertificates/time_unix.go similarity index 88% rename from sdk/keyvault/azcertificates/internal/generated/time_unix.go rename to sdk/keyvault/azcertificates/time_unix.go index 50d870c74c44..36b674f95a66 100644 --- a/sdk/keyvault/azcertificates/internal/generated/time_unix.go +++ b/sdk/keyvault/azcertificates/time_unix.go @@ -5,8 +5,9 @@ // Licensed under the MIT License. See License.txt in the project root for license information. // Code generated by Microsoft (R) AutoRest Code Generator. // Changes may cause incorrect behavior and will be lost if the code is regenerated. +// DO NOT EDIT. -package generated +package azcertificates import ( "encoding/json" @@ -48,13 +49,13 @@ func populateTimeUnix(m map[string]interface{}, k string, t *time.Time) { m[k] = (*timeUnix)(t) } -func unpopulateTimeUnix(data json.RawMessage, t **time.Time) error { +func unpopulateTimeUnix(data json.RawMessage, fn string, t **time.Time) error { if data == nil || strings.EqualFold(string(data), "null") { return nil } var aux timeUnix if err := json.Unmarshal(data, &aux); err != nil { - return err + return fmt.Errorf("struct field %s: %v", fn, err) } *t = (*time.Time)(&aux) return nil diff --git a/sdk/keyvault/azcertificates/utils_test.go b/sdk/keyvault/azcertificates/utils_test.go index 86dbe5bb3e5b..0450e674b6cf 100644 --- a/sdk/keyvault/azcertificates/utils_test.go +++ b/sdk/keyvault/azcertificates/utils_test.go @@ -4,91 +4,124 @@ // Copyright (c) Microsoft Corporation. All rights reserved. // Licensed under the MIT License. See License.txt in the project root for license information. -package azcertificates +package azcertificates_test import ( "context" "fmt" "hash/fnv" - "log" "os" + "strings" + "sync" "testing" "time" "github.com/Azure/azure-sdk-for-go/sdk/azcore" "github.com/Azure/azure-sdk-for-go/sdk/azcore/policy" - "github.com/Azure/azure-sdk-for-go/sdk/azcore/runtime" - "github.com/Azure/azure-sdk-for-go/sdk/azcore/to" "github.com/Azure/azure-sdk-for-go/sdk/azidentity" "github.com/Azure/azure-sdk-for-go/sdk/internal/recording" + "github.com/Azure/azure-sdk-for-go/sdk/keyvault/azcertificates" "github.com/stretchr/testify/require" ) -var pathToPackage = "sdk/keyvault/azcertificates/testdata" +const fakeVaultURL = "https://fakevault" -const fakeKvURL = "https://fakekvurl.vault.azure.net/" +var ( + certsToPurge = struct { + mut sync.Mutex + names []string + }{sync.Mutex{}, []string{}} -var certContentNotPasswordEncoded = []byte("MIIJsQIBAzCCCXcGCSqGSIb3DQEHAaCCCWgEgglkMIIJYDCCBBcGCSqGSIb3DQEHBqCCBAgwggQEAgEAMIID/QYJKoZIhvcNAQcBMBwGCiqGSIb3DQEMAQYwDgQIE7pdl4fTqmwCAggAgIID0MDlcRFQUH0YDxopuqVyuEd4OLfawucEAxGvdj9+SMs34Cz1tVyZgfFuU4MwlLk6cA1dog8iw9/f8/VlA6wS0DHhslLL3JzSxZoi6JQQ0IYgjWaIv4c+wT0IcBhc2USI3lPqoqALG15qcs8fAEpDIssUplDcmA7gLVvBvw1utAipib8y93J71tIIedDaf0pAuVuC6K1PRI3HWVnUetCaiq4AW2iQu7f0rxJVDcKubmNinEivyRi4yl2Q1g2OwGlqwZEAnIW02uE+FzgFk51OA357vvooKicb0fdDz+hsRuzlWMhs2ciFMg71jlCUIKnvAKXCR714ox+OK8pTN1KQy3ICAFy+m6lNpkwkozfRoMwJyRGt5Tm6N/k9nQM1ysu3xqw3hG8q4srCbWhxcUrvrDcxvWe5Q8WX8Sl8nJ4joPZipBxDSEKYPqk9qkPF+YZbAmjcS3mw0AI5V8v31WQaa/i6LxQGwKUVSyjHe6ZDskQjyogtRmt61z1MYHmv9iNuLyyWhq9w7hV/AyKTzQ7FsWcK2vdNZJA2lj8H7rSrYtaVFNPMBzOa4KsJmif9s9B0VyMlX37XB1tGEtRmRuJtA+EZYVzu50J/ZVx2QGr40IpmyYKwB6CTQpBE12W9RMgMLYy+YAykrexYOJaIh9wfzLi/bAH8uCNTKueeVREnMHrzSF1xNQzqW8okoEMvSdr6+uCjHxt1cmRhUOcGvocLfNOgNhz+qwztLr35QTE8zTnrjvhb0NKfT1vpGa0nXP3EBYDolRqTZgKlG9icupDI57wDNuHED/d63Ri+tCbs3VF+QjcPBO8q3xz0hMj38oYLnHYt1i4YQOvXSDdZLc4fW5GXB1cVmP9vxbM0lxBKCLA8V0wZ8P341Dknr5WhS21A0qs3b9FavwbUUCDTuvky/1qhA6MaxqbtzjeVm7mYJ7TnCQveH0Iy3RHEPQrzrGUQc0bEBfissGeVYlghNULlaDW9CobT6J+pYT0y85flg+qtTZX69NaI4mZuh11hkKLmbVx6gGouQ79XmpE3+vNycEQNota534gUs77qF0VACJHnbgh05Qhxkp9Xd/LSUt+6r9niTa9HWQ+SMdfXuu6ognA3lMGeO4i0NTFkXA1MNs+e0QQZqNX8CiCj09i6YeMNVTdIh1ufrEF9YlO8yjLitHVSJRuY65QCCpPsS5Ugdk+5tUD3H2l1j/ZA5f73z2JdFEAchPRLsNQKTx49ZvsSex2ikEJeNjHDBuMQZtVZZDs9DdVQL/i49Mc7N+/x37AcLFx+DelOKZ0F5LgiDDprfU8wggVBBgkqhkiG9w0BBwGgggUyBIIFLjCCBSowggUmBgsqhkiG9w0BDAoBAqCCBO4wggTqMBwGCiqGSIb3DQEMAQMwDgQIwQ83ZA6tJFoCAggABIIEyHQt53aY9srYggLfYUSeD6Gcjm7uEA5F24s9r3FZF50YRSztbJIrqGd6oytw4LDCInANcGuCF3WQjSdEB6ABy+Igmbk9OAsFAy18txfg05UQb4JYN3M0XkYywh+GlMlZdcsZQakXqBGSj6kyG4J9ISgGPpvSqopo7fUHjc3QjWcG07d42u6lgkLxdQH2e+qiHWA+9C3mawA5AYWA6sciEoKzYOZkl7ZtWptpJJWD54HtIT7ENGkHM6y2LM+FyMC0axoUsFawoObzcbJLX29Zfohzq9yt169ZLcKDC1zpS6R0MIRE5rs4727vG9mJWMetDpIg/2fka4nkhfry2Wo+Pp/065aUSfHbQGMZ2Lw/zgU1Eo/Bau+fREft/DRX/sZpkd0ulPlbxmQ80Xf6IXRSGD5poq3B19dJpKHmJagFJu1IgXEovjpexrYEmEAuzLaH1wdMTMGViWHsxu+g066LuHbBfJQ4THnAOp0N2eUkcfO3oJ3thzGnvWXM4lKAkULcnBlQnnfKi2CrQYJCJMhyIicYYs+03gxXxNwQihZPm3VI3an/ci1otoh19WP4on3DqZ4KySU+PZ45XzDg1H00+nhyShwuyiFhDN6XuJ0VWIZZEvoPRY1Tmt2prP/1B1Kk9+lishvTJKkuZ3rqC1bkJioIWte1FEoktCtzQ3dVUwlvy1r2y1WL5OTdk6yIENvm9+xHSkJelkZjW+Jr/B9dyZ2o9+oJGuLW8J2gNixecnWJXlb/tPwmL7iwLmFfM5tw27LnYO54dfUnq00G5JM6yiAj9i73RLkZo4lq29HOsoi4T3s06KpkOVhrIud7VhPFdzWtptcV9gbidHKtX209oZKAVgXa538DyKownqHx3I8yjXs0eFlty1CJjBP9fuAvllyNpUteuZoDcS45Zwl3WOpPrL595gBwy5yGOADOJXA3ww2oqvlTcZv1lyteKght3hMkSgy2mIGYAa19v+ZK0LxKxvwCCkC+bMuyTduiaUJmHmI7k0lVIt/5WPzz9cnvCahhCovN/+C0LI1xbOTW9nDp2Ffsb0aC9XYBRf/amRCiHmMzB18E85aA05h3l7KXPdck/xrKEePdv4dnLWxvHw69O6sjssmdV3q6+cZgYYLZAEl1byIbZBTQaHT0GhzcmHJrW71L6Sl/9TEfmDSvctEEe4cZd8o29TXqzE10kmrt8dqoRbYiNq5CODPiithVtCRWQu3aFoLkT0ooWEYk+IWU6/WQ8rq7KkZ6BR8JV60I3WbXLejTyaTf79VMt8myIET5GjSc7r+tWyDRCHcU32Guyw7F+9ndkMlVuI5gB/zfrsfX6noSQnx72yF6NrIyhJWf/Zl3NMbnPKUHA+sZkjE4+Hwvf5yWkjFZhNeLq/4gaXQk7yEddjoCpN/cWsVjX8NxZFsRLs00Ag89+NAbgWkr2eejKcXB+I4TZHVee8IPKdEh8ga6RtDD8GV9VpwhnOpDHT5K1CtuX2CyTMl8fgUxobZ4kauiRr4dChd5n9Bgp7mvTarl7k2nVXptSJDmaPvZ0ETht+WF24+a/7XqV7fyHoYU/WOvEGPW34a7X8R5UJWaOwZTcpqmfp8iwapRtgvQoXAISy2wK20fS0nK79nlqnhp5KEddTElMCMGCSqGSIb3DQEJFTEWBBTsd3zCMw1XrWC/MBjgt8IbFbCL8jAxMCEwCQYFKw4DAhoFAAQUY8Q/ANtHMzVyl4asrQ/lPKRjd2AECOBKL60N+UaKAgIIAA==") + credential azcore.TokenCredential + vaultURL string +) func TestMain(m *testing.M) { - // Initialize - if recording.GetRecordMode() == "record" { - err := recording.ResetProxy(nil) - if err != nil { - panic(err) + vaultURL = strings.TrimSuffix(recording.GetEnvVariable("AZURE_KEYVAULT_URL", fakeVaultURL), "/") + if vaultURL == "" { + if recording.GetRecordMode() != recording.PlaybackMode { + panic("no value for AZURE_KEYVAULT_URL") } - - err = recording.SetDefaultMatcher(nil, nil) + vaultURL = fakeVaultURL + } + err := recording.ResetProxy(nil) + if err != nil { + panic(err) + } + if recording.GetRecordMode() == recording.PlaybackMode { + credential = &FakeCredential{} + } else { + tenantId := lookupEnvVar("AZCERTIFICATES_TENANT_ID") + clientId := lookupEnvVar("AZCERTIFICATES_CLIENT_ID") + secret := lookupEnvVar("AZCERTIFICATES_CLIENT_SECRET") + credential, err = azidentity.NewClientSecretCredential(tenantId, clientId, secret, nil) if err != nil { panic(err) } - - vaultUrl := os.Getenv("AZURE_KEYVAULT_URL") - err = recording.AddGeneralRegexSanitizer(fakeKvURL, vaultUrl, nil) + } + if recording.GetRecordMode() == recording.RecordingMode { + defer func() { + err := recording.ResetProxy(nil) + if err != nil { + panic(err) + } + }() + err = recording.AddURISanitizer(fakeVaultURL, vaultURL, nil) if err != nil { panic(err) } - - err = recording.AddBodyKeySanitizer("$.key.kid", fakeKvURL, vaultUrl, nil) + err = recording.AddBodyRegexSanitizer(fakeVaultURL, vaultURL, nil) if err != nil { panic(err) } - - err = recording.AddBodyKeySanitizer("$.recoveryId", fakeKvURL, vaultUrl, nil) + err = recording.AddHeaderRegexSanitizer("Location", fakeVaultURL, vaultURL, nil) if err != nil { panic(err) } } - - // Run tests - exitVal := m.Run() - - // 3. Reset - if recording.GetRecordMode() != "live" { - err := recording.ResetProxy(nil) - if err != nil { - panic(err) + code := m.Run() + if recording.GetRecordMode() != recording.PlaybackMode { + // Purge test certs using a client whose requests aren't recorded. This + // will be fast because the tests which created these certs requested their + // deletion. Now, at the end of the run, Key Vault will have finished deleting + // most of them... + client := azcertificates.NewClient(vaultURL, credential, nil) + for _, name := range certsToPurge.names { + // ...but we need a retry loop for the others. Note this wouldn't benefit + // from client-side parallelization because Key Vault's delete operations + // are running in parallel. When the client waits on one deletion, it + // effectively waits on all of them. + for i := 0; i < 12; i++ { + _, err := client.PurgeDeletedCertificate(context.Background(), name, nil) + if err == nil { + break + } + if i < 11 { + recording.Sleep(10 * time.Second) + } + } } } - - // 4. Error out if applicable - os.Exit(exitVal) + os.Exit(code) } -func startTest(t *testing.T) func() { - err := recording.Start(t, pathToPackage, nil) +func startTest(t *testing.T) *azcertificates.Client { + err := recording.Start(t, "sdk/keyvault/azcertificates/testdata", nil) require.NoError(t, err) - return func() { + t.Cleanup(func() { err := recording.Stop(t, nil) require.NoError(t, err) - } + }) + transport, err := recording.NewRecordingHTTPClient(t, nil) + require.NoError(t, err) + return azcertificates.NewClient(vaultURL, credential, &azcore.ClientOptions{Transport: transport}) } -func createRandomName(t *testing.T, prefix string) (string, error) { - // NOTE: not really random names, the sequence is deterministic else test playback wouldn't work +func getName(t *testing.T, prefix string) string { h := fnv.New32a() _, err := h.Write([]byte(t.Name())) - return prefix + fmt.Sprint(h.Sum32()), err + require.NoError(t, err) + return prefix + fmt.Sprint(h.Sum32()) } func lookupEnvVar(s string) string { @@ -99,84 +132,21 @@ func lookupEnvVar(s string) string { return ret } -func createClient(t *testing.T) (*Client, error) { - vaultUrl := recording.GetEnvVariable("AZURE_KEYVAULT_URL", fakeKvURL) - var credOptions *azidentity.ClientSecretCredentialOptions - - transport, err := recording.NewRecordingHTTPClient(t, nil) - require.NoError(t, err) - - options := &ClientOptions{ - ClientOptions: azcore.ClientOptions{ - Transport: transport, - }, - } - - var cred azcore.TokenCredential - if recording.GetRecordMode() != "playback" { - tenantId := lookupEnvVar("AZCERTIFICATES_TENANT_ID") - clientId := lookupEnvVar("AZCERTIFICATES_CLIENT_ID") - clientSecret := lookupEnvVar("AZCERTIFICATES_CLIENT_SECRET") - cred, err = azidentity.NewClientSecretCredential(tenantId, clientId, clientSecret, credOptions) - require.NoError(t, err) - } else { - cred = NewFakeCredential("fake", "fake") - } - - return NewClient(vaultUrl, cred, options) -} - -func delay() *runtime.PollUntilDoneOptions { - return &runtime.PollUntilDoneOptions{Frequency: time.Second} -} - -type FakeCredential struct { - accountName string - accountKey string -} - -func NewFakeCredential(accountName, accountKey string) *FakeCredential { - return &FakeCredential{ - accountName: accountName, - accountKey: accountKey, - } -} +type FakeCredential struct{} func (f *FakeCredential) GetToken(ctx context.Context, options policy.TokenRequestOptions) (azcore.AccessToken, error) { - return azcore.AccessToken{ - Token: "faketoken", - ExpiresOn: time.Date(2040, time.January, 1, 1, 1, 1, 1, time.UTC), - }, nil -} - -func cleanUp(t *testing.T, client *Client, certName string) { - delResp, err := client.BeginDeleteCertificate(ctx, certName, nil) - require.NoError(t, err) - delPollerResp, err := delResp.PollUntilDone(ctx, delay()) - require.NoError(t, err) - require.Contains(t, *delPollerResp.ID, certName) - - _, err = client.PurgeDeletedCertificate(ctx, certName, nil) - require.NoError(t, err) + return azcore.AccessToken{Token: "faketoken", ExpiresOn: time.Now().Add(time.Hour).UTC()}, nil } -func createCert(t *testing.T, client *Client, certName string) { - resp, err := client.BeginCreateCertificate(ctx, certName, Policy{ - IssuerParameters: &IssuerParameters{ - IssuerName: to.Ptr("Self"), - }, - X509Properties: &X509CertificateProperties{ - Subject: to.Ptr("CN=DefaultPolicy"), - }, - }, nil) - require.NoError(t, err) - _, err = resp.PollUntilDone(ctx, delay()) - require.NoError(t, err) -} - -func purgeCert(t *testing.T, client *Client, cert string) { - _, err := client.PurgeDeletedCertificate(ctx, cert, nil) - if err != nil { - log.Printf("Was unable to purge certificate %s. %s\n", cert, err.Error()) +func cleanUpCert(t *testing.T, client *azcertificates.Client, name string) { + if recording.GetRecordMode() == recording.PlaybackMode { + return + } + if _, err := client.DeleteCertificate(context.Background(), name, nil); err == nil { + certsToPurge.mut.Lock() + defer certsToPurge.mut.Unlock() + certsToPurge.names = append(certsToPurge.names, name) + } else { + t.Logf(`cleanUpCert failed for "%s": %v`, name, err) } } diff --git a/sdk/keyvault/azcertificates/version.go b/sdk/keyvault/azcertificates/version.go new file mode 100644 index 000000000000..1833c7f373fd --- /dev/null +++ b/sdk/keyvault/azcertificates/version.go @@ -0,0 +1,12 @@ +//go:build go1.18 +// +build go1.18 + +// Copyright (c) Microsoft Corporation. All rights reserved. +// Licensed under the MIT License. + +package azcertificates + +const ( + moduleName = "azcertificates" + version = "v0.5.0" +)