From 18aac6508b00db9041a3128ac1b511803b36eb8e Mon Sep 17 00:00:00 2001 From: GLEF1X Date: Mon, 29 Jul 2024 22:38:10 -0400 Subject: [PATCH 01/71] fix(cli): make yaml exporting reliable and standardized --- cli/go.mod | 1 + cli/go.sum | 1 + cli/packages/cmd/export.go | 18 +++++--- cli/packages/cmd/export_test.go | 79 +++++++++++++++++++++++++++++++++ 4 files changed, 94 insertions(+), 5 deletions(-) create mode 100644 cli/packages/cmd/export_test.go diff --git a/cli/go.mod b/cli/go.mod index bcde660ab..3c0a240bb 100644 --- a/cli/go.mod +++ b/cli/go.mod @@ -77,6 +77,7 @@ require ( github.com/muesli/termenv v0.15.2 // indirect github.com/oklog/ulid v1.3.1 // indirect github.com/pelletier/go-toml v1.9.3 // indirect + github.com/pkg/errors v0.9.1 // indirect github.com/pmezard/go-difflib v1.0.0 // indirect github.com/rivo/uniseg v0.2.0 // indirect github.com/spf13/afero v1.6.0 // indirect diff --git a/cli/go.sum b/cli/go.sum index d6f04aed0..7932bed99 100644 --- a/cli/go.sum +++ b/cli/go.sum @@ -341,6 +341,7 @@ github.com/pelletier/go-toml v1.9.3/go.mod h1:u1nR/EPcESfeI/szUZKdtJ0xRNbUoANCko github.com/petar-dambovaliev/aho-corasick v0.0.0-20211021192214-5ab2d9280aa9 h1:lL+y4Xv20pVlCGyLzNHRC0I0rIHhIL1lTvHizoS/dU8= github.com/petar-dambovaliev/aho-corasick v0.0.0-20211021192214-5ab2d9280aa9/go.mod h1:EHPiTAKtiFmrMldLUNswFwfZ2eJIYBHktdaUTZxYWRw= github.com/pkg/errors v0.8.1/go.mod h1:bwawxfHBFNV+L2hUp1rHADufV3IMtnDRdf1r5NINEl0= +github.com/pkg/errors v0.9.1 h1:FEBLx1zS214owpjy7qsBeixbURkuhQAwrK5UwLGTwt4= github.com/pkg/errors v0.9.1/go.mod h1:bwawxfHBFNV+L2hUp1rHADufV3IMtnDRdf1r5NINEl0= github.com/pkg/sftp v1.10.1/go.mod h1:lYOWFsE0bwd1+KfKJaKeuokY15vzFx25BLbzYYoAxZI= github.com/pmezard/go-difflib v1.0.0 h1:4DBwDE0NGyQoBHbLQYPwSUPoCMWR5BEzIk/f1lZbAQM= diff --git a/cli/packages/cmd/export.go b/cli/packages/cmd/export.go index c0fea738e..5ae273fdc 100644 --- a/cli/packages/cmd/export.go +++ b/cli/packages/cmd/export.go @@ -12,8 +12,10 @@ import ( "github.com/Infisical/infisical-merge/packages/models" "github.com/Infisical/infisical-merge/packages/util" + "github.com/pkg/errors" "github.com/rs/zerolog/log" "github.com/spf13/cobra" + "gopkg.in/yaml.v2" ) const ( @@ -188,7 +190,7 @@ func formatEnvs(envs []models.SingleEnvironmentVariable, format string) (string, case FormatCSV: return formatAsCSV(envs), nil case FormatYaml: - return formatAsYaml(envs), nil + return formatAsYaml(envs) default: return "", fmt.Errorf("invalid format type: %s. Available format types are [%s]", format, []string{FormatDotenv, FormatJson, FormatCSV, FormatYaml, FormatDotEnvExport}) } @@ -224,12 +226,18 @@ func formatAsDotEnvExport(envs []models.SingleEnvironmentVariable) string { return dotenv } -func formatAsYaml(envs []models.SingleEnvironmentVariable) string { - var dotenv string +func formatAsYaml(envs []models.SingleEnvironmentVariable) (string, error) { + m := make(map[string]string) for _, env := range envs { - dotenv += fmt.Sprintf("%s: %s\n", env.Key, env.Value) + m[env.Key] = env.Value } - return dotenv + + yamlBytes, err := yaml.Marshal(m) + if err != nil { + return "", errors.Wrap(err, "unable to format env variables as yaml") + } + + return string(yamlBytes), nil } // Format environment variables as a JSON file diff --git a/cli/packages/cmd/export_test.go b/cli/packages/cmd/export_test.go new file mode 100644 index 000000000..d26741165 --- /dev/null +++ b/cli/packages/cmd/export_test.go @@ -0,0 +1,79 @@ +package cmd // Replace with your actual package name + +import ( + "testing" + + "github.com/Infisical/infisical-merge/packages/models" + "github.com/stretchr/testify/assert" + "gopkg.in/yaml.v2" +) + +func TestFormatAsYaml(t *testing.T) { + tests := []struct { + name string + input []models.SingleEnvironmentVariable + expected string + }{ + { + name: "Empty input", + input: []models.SingleEnvironmentVariable{}, + expected: "{}\n", + }, + { + name: "Single environment variable", + input: []models.SingleEnvironmentVariable{ + {Key: "KEY1", Value: "VALUE1"}, + }, + expected: "KEY1: VALUE1\n", + }, + { + name: "Multiple environment variables", + input: []models.SingleEnvironmentVariable{ + {Key: "KEY1", Value: "VALUE1"}, + {Key: "KEY2", Value: "VALUE2"}, + {Key: "KEY3", Value: "VALUE3"}, + }, + expected: "KEY1: VALUE1\nKEY2: VALUE2\nKEY3: VALUE3\n", + }, + { + name: "Overwriting duplicate keys", + input: []models.SingleEnvironmentVariable{ + {Key: "KEY1", Value: "VALUE1"}, + {Key: "KEY1", Value: "VALUE2"}, + }, + expected: "KEY1: VALUE2\n", + }, + { + name: "Special characters in values", + input: []models.SingleEnvironmentVariable{ + {Key: "KEY1", Value: "Value with spaces"}, + {Key: "KEY2", Value: "Value:with:colons"}, + {Key: "KEY3", Value: "Value\nwith\nnewlines"}, + }, + expected: "KEY1: Value with spaces\nKEY2: Value:with:colons\nKEY3: |-\n Value\n with\n newlines\n", + }, + } + + for _, tt := range tests { + t.Run(tt.name, func(t *testing.T) { + result, err := formatAsYaml(tt.input) + assert.NoError(t, err) + + // Compare the result with the expected output + assert.Equal(t, tt.expected, result) + + // Additionally, parse the result back into a map to ensure it's valid YAML + var resultMap map[string]string + err = yaml.Unmarshal([]byte(result), &resultMap) + assert.NoError(t, err) + + // Create an expected map from the input + expectedMap := make(map[string]string) + for _, env := range tt.input { + expectedMap[env.Key] = env.Value + } + + assert.Equal(t, expectedMap, resultMap) + }) + } +} From 273fd6c98f782764f5b0332c4ecab672cbec5e7b Mon Sep 17 00:00:00 2001 From: GLEF1X Date: Tue, 30 Jul 2024 05:22:45 -0400 Subject: [PATCH 02/71] refactor: remove deprecated errors package - Replace errors.Wrap with fmt.Errorf and %w verb --- cli/go.mod | 1 - cli/go.sum | 1 - cli/packages/cmd/export.go | 3 +-- 3 files changed, 1 insertion(+), 4 deletions(-) diff --git a/cli/go.mod b/cli/go.mod index 3c0a240bb..bcde660ab 100644 --- a/cli/go.mod +++ b/cli/go.mod @@ -77,7 +77,6 @@ require ( github.com/muesli/termenv v0.15.2 // indirect github.com/oklog/ulid v1.3.1 // indirect github.com/pelletier/go-toml v1.9.3 // indirect - github.com/pkg/errors v0.9.1 // indirect github.com/pmezard/go-difflib v1.0.0 // indirect github.com/rivo/uniseg v0.2.0 // indirect github.com/spf13/afero v1.6.0 // indirect diff --git a/cli/go.sum b/cli/go.sum index 7932bed99..d6f04aed0 100644 --- a/cli/go.sum +++ b/cli/go.sum @@ -341,7 +341,6 @@ github.com/pelletier/go-toml v1.9.3/go.mod h1:u1nR/EPcESfeI/szUZKdtJ0xRNbUoANCko github.com/petar-dambovaliev/aho-corasick v0.0.0-20211021192214-5ab2d9280aa9 h1:lL+y4Xv20pVlCGyLzNHRC0I0rIHhIL1lTvHizoS/dU8= github.com/petar-dambovaliev/aho-corasick v0.0.0-20211021192214-5ab2d9280aa9/go.mod h1:EHPiTAKtiFmrMldLUNswFwfZ2eJIYBHktdaUTZxYWRw= github.com/pkg/errors v0.8.1/go.mod h1:bwawxfHBFNV+L2hUp1rHADufV3IMtnDRdf1r5NINEl0= -github.com/pkg/errors v0.9.1 h1:FEBLx1zS214owpjy7qsBeixbURkuhQAwrK5UwLGTwt4= github.com/pkg/errors v0.9.1/go.mod h1:bwawxfHBFNV+L2hUp1rHADufV3IMtnDRdf1r5NINEl0= github.com/pkg/sftp v1.10.1/go.mod h1:lYOWFsE0bwd1+KfKJaKeuokY15vzFx25BLbzYYoAxZI= github.com/pmezard/go-difflib v1.0.0 h1:4DBwDE0NGyQoBHbLQYPwSUPoCMWR5BEzIk/f1lZbAQM= diff --git a/cli/packages/cmd/export.go b/cli/packages/cmd/export.go index 5ae273fdc..f6b028b7a 100644 --- a/cli/packages/cmd/export.go +++ b/cli/packages/cmd/export.go @@ -12,7 +12,6 @@ import ( "github.com/Infisical/infisical-merge/packages/models" "github.com/Infisical/infisical-merge/packages/util" - "github.com/pkg/errors" "github.com/rs/zerolog/log" "github.com/spf13/cobra" "gopkg.in/yaml.v2" @@ -234,7 +233,7 @@ func formatAsYaml(envs []models.SingleEnvironmentVariable) (string, error) { yamlBytes, err := yaml.Marshal(m) if err != nil { - return "", errors.Wrap(err, "unable to format env variables as yaml") + return "", fmt.Errorf("failed to format environment variables as YAML: %w", err) } return string(yamlBytes), nil From dbe771dba0dcefb4cf8e2eb6e144aa5e9313fe75 Mon Sep 17 00:00:00 2001 From: GLEF1X Date: Tue, 30 Jul 2024 05:30:13 -0400 Subject: [PATCH 03/71] refactor: remove unnecessary comment --- cli/packages/cmd/export_test.go | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/cli/packages/cmd/export_test.go b/cli/packages/cmd/export_test.go index d26741165..1be0a7ed2 100644 --- a/cli/packages/cmd/export_test.go +++ b/cli/packages/cmd/export_test.go @@ -1,4 +1,4 @@ -package cmd // Replace with your actual package name +package cmd import ( "testing" From 55a67407143e6c574798e395f708a9eb5c9c7e09 Mon Sep 17 00:00:00 2001 From: Sheen Capadngan Date: Fri, 2 Aug 2024 21:37:48 +0800 Subject: [PATCH 04/71] misc: moved to plan-based rate limit --- backend/src/@types/fastify.d.ts | 2 ++ .../src/ee/services/license/licence-fns.ts | 12 ++++++- .../src/ee/services/license/license-types.ts | 3 ++ .../services/rate-limit/rate-limit-service.ts | 4 +-- .../services/rate-limit/rate-limit-types.ts | 11 ++++++ backend/src/server/config/rateLimiter.ts | 25 ++++++++----- .../src/server/plugins/inject-rate-limits.ts | 35 +++++++++++++++++++ backend/src/server/routes/index.ts | 2 ++ 8 files changed, 82 insertions(+), 12 deletions(-) create mode 100644 backend/src/server/plugins/inject-rate-limits.ts diff --git a/backend/src/@types/fastify.d.ts b/backend/src/@types/fastify.d.ts index 8ae892560..00bc9e77c 100644 --- a/backend/src/@types/fastify.d.ts +++ b/backend/src/@types/fastify.d.ts @@ -18,6 +18,7 @@ import { TOidcConfigServiceFactory } from "@app/ee/services/oidc/oidc-config-ser import { TPermissionServiceFactory } from "@app/ee/services/permission/permission-service"; import { TProjectUserAdditionalPrivilegeServiceFactory } from "@app/ee/services/project-user-additional-privilege/project-user-additional-privilege-service"; import { TRateLimitServiceFactory } from "@app/ee/services/rate-limit/rate-limit-service"; +import { RateLimitConfiguration } from "@app/ee/services/rate-limit/rate-limit-types"; import { TSamlConfigServiceFactory } from "@app/ee/services/saml-config/saml-config-service"; import { TScimServiceFactory } from "@app/ee/services/scim/scim-service"; import { TSecretApprovalPolicyServiceFactory } from "@app/ee/services/secret-approval-policy/secret-approval-policy-service"; @@ -88,6 +89,7 @@ declare module "fastify" { id: string; orgId: string; }; + rateLimits: RateLimitConfiguration; // passport data passportUser: { isUserCompleted: string; diff --git a/backend/src/ee/services/license/licence-fns.ts b/backend/src/ee/services/license/licence-fns.ts index fc0fb54a7..c7bdd95ac 100644 --- a/backend/src/ee/services/license/licence-fns.ts +++ b/backend/src/ee/services/license/licence-fns.ts @@ -40,7 +40,17 @@ export const getDefaultOnPremFeatures = (): TFeatureSet => ({ secretRotation: true, caCrl: false, instanceUserManagement: false, - externalKms: false + externalKms: false, + rateLimits: { + readLimit: 60, + publicEndpointLimit: 30, + writeLimit: 200, + secretsLimit: 60, + authRateLimit: 60, + inviteUserRateLimit: 30, + mfaRateLimit: 20, + creationLimit: 30 + } }); export const setupLicenceRequestWithStore = (baseURL: string, refreshUrl: string, licenseKey: string) => { diff --git a/backend/src/ee/services/license/license-types.ts b/backend/src/ee/services/license/license-types.ts index df85f008f..262547772 100644 --- a/backend/src/ee/services/license/license-types.ts +++ b/backend/src/ee/services/license/license-types.ts @@ -1,5 +1,7 @@ import { TOrgPermission } from "@app/lib/types"; +import { RateLimitConfiguration } from "../rate-limit/rate-limit-types"; + export enum InstanceType { OnPrem = "self-hosted", EnterpriseOnPrem = "enterprise-self-hosted", @@ -58,6 +60,7 @@ export type TFeatureSet = { caCrl: false; instanceUserManagement: false; externalKms: false; + rateLimits: RateLimitConfiguration; }; export type TOrgPlansTableDTO = { diff --git a/backend/src/ee/services/rate-limit/rate-limit-service.ts b/backend/src/ee/services/rate-limit/rate-limit-service.ts index df90ca03f..b35b02dd4 100644 --- a/backend/src/ee/services/rate-limit/rate-limit-service.ts +++ b/backend/src/ee/services/rate-limit/rate-limit-service.ts @@ -4,9 +4,9 @@ import { logger } from "@app/lib/logger"; import { TLicenseServiceFactory } from "../license/license-service"; import { TRateLimitDALFactory } from "./rate-limit-dal"; -import { TRateLimit, TRateLimitUpdateDTO } from "./rate-limit-types"; +import { RateLimitConfiguration, TRateLimit, TRateLimitUpdateDTO } from "./rate-limit-types"; -let rateLimitMaxConfiguration = { +let rateLimitMaxConfiguration: RateLimitConfiguration = { readLimit: 60, publicEndpointLimit: 30, writeLimit: 200, diff --git a/backend/src/ee/services/rate-limit/rate-limit-types.ts b/backend/src/ee/services/rate-limit/rate-limit-types.ts index 19519aafb..7d5859367 100644 --- a/backend/src/ee/services/rate-limit/rate-limit-types.ts +++ b/backend/src/ee/services/rate-limit/rate-limit-types.ts @@ -14,3 +14,14 @@ export type TRateLimit = { createdAt: Date; updatedAt: Date; } & TRateLimitUpdateDTO; + +export type RateLimitConfiguration = { + readLimit: number; + publicEndpointLimit: number; + writeLimit: number; + secretsLimit: number; + authRateLimit: number; + inviteUserRateLimit: number; + mfaRateLimit: number; + creationLimit: number; +}; diff --git a/backend/src/server/config/rateLimiter.ts b/backend/src/server/config/rateLimiter.ts index 79b709ee6..cfadca9cc 100644 --- a/backend/src/server/config/rateLimiter.ts +++ b/backend/src/server/config/rateLimiter.ts @@ -1,7 +1,6 @@ import type { RateLimitOptions, RateLimitPluginOptions } from "@fastify/rate-limit"; import { Redis } from "ioredis"; -import { getRateLimiterConfig } from "@app/ee/services/rate-limit/rate-limit-service"; import { getConfig } from "@app/lib/config/env"; export const globalRateLimiterCfg = (): RateLimitPluginOptions => { @@ -22,14 +21,16 @@ export const globalRateLimiterCfg = (): RateLimitPluginOptions => { // GET endpoints export const readLimit: RateLimitOptions = { timeWindow: 60 * 1000, - max: () => getRateLimiterConfig().readLimit, + hook: "preValidation", + max: (req) => req.rateLimits.readLimit, keyGenerator: (req) => req.realIp }; // POST, PATCH, PUT, DELETE endpoints export const writeLimit: RateLimitOptions = { timeWindow: 60 * 1000, - max: () => getRateLimiterConfig().writeLimit, + hook: "preValidation", + max: (req) => req.rateLimits.writeLimit, keyGenerator: (req) => req.realIp }; @@ -37,25 +38,29 @@ export const writeLimit: RateLimitOptions = { export const secretsLimit: RateLimitOptions = { // secrets, folders, secret imports timeWindow: 60 * 1000, - max: () => getRateLimiterConfig().secretsLimit, + hook: "preValidation", + max: (req) => req.rateLimits.secretsLimit, keyGenerator: (req) => req.realIp }; export const authRateLimit: RateLimitOptions = { timeWindow: 60 * 1000, - max: () => getRateLimiterConfig().authRateLimit, + hook: "preValidation", + max: (req) => req.rateLimits.authRateLimit, keyGenerator: (req) => req.realIp }; export const inviteUserRateLimit: RateLimitOptions = { timeWindow: 60 * 1000, - max: () => getRateLimiterConfig().inviteUserRateLimit, + hook: "preValidation", + max: (req) => req.rateLimits.inviteUserRateLimit, keyGenerator: (req) => req.realIp }; export const mfaRateLimit: RateLimitOptions = { timeWindow: 60 * 1000, - max: () => getRateLimiterConfig().mfaRateLimit, + hook: "preValidation", + max: (req) => req.rateLimits.mfaRateLimit, keyGenerator: (req) => { return req.headers.authorization?.split(" ")[1] || req.realIp; } @@ -64,7 +69,8 @@ export const mfaRateLimit: RateLimitOptions = { export const creationLimit: RateLimitOptions = { // identity, project, org timeWindow: 60 * 1000, - max: () => getRateLimiterConfig().creationLimit, + hook: "preValidation", + max: (req) => req.rateLimits.creationLimit, keyGenerator: (req) => req.realIp }; @@ -72,7 +78,8 @@ export const creationLimit: RateLimitOptions = { export const publicEndpointLimit: RateLimitOptions = { // Read Shared Secrets timeWindow: 60 * 1000, - max: () => getRateLimiterConfig().publicEndpointLimit, + hook: "preValidation", + max: (req) => req.rateLimits.publicEndpointLimit, keyGenerator: (req) => req.realIp }; diff --git a/backend/src/server/plugins/inject-rate-limits.ts b/backend/src/server/plugins/inject-rate-limits.ts new file mode 100644 index 000000000..74acc8fcb --- /dev/null +++ b/backend/src/server/plugins/inject-rate-limits.ts @@ -0,0 +1,35 @@ +import fp from "fastify-plugin"; + +import { getRateLimiterConfig } from "@app/ee/services/rate-limit/rate-limit-service"; + +export const injectRateLimits = fp(async (server) => { + server.decorateRequest("rateLimits", null); + server.addHook("onRequest", async (req) => { + const defaultRateLimiterConfig = getRateLimiterConfig(); + if (!req.auth) { + // for public endpoints + req.rateLimits = defaultRateLimiterConfig; + return; + } + + const plan = await server.services.license.getPlan(req.auth.orgId); + const { rateLimits } = plan; + + if (plan.customRateLimits) { + req.rateLimits = defaultRateLimiterConfig; + return; + } + + // we're using the null coalescing operator in order to handle outdated licenses + req.rateLimits = { + readLimit: rateLimits?.readLimit ?? defaultRateLimiterConfig.readLimit, + publicEndpointLimit: rateLimits?.publicEndpointLimit ?? defaultRateLimiterConfig.publicEndpointLimit, + writeLimit: rateLimits?.writeLimit ?? defaultRateLimiterConfig.writeLimit, + secretsLimit: rateLimits?.secretsLimit ?? defaultRateLimiterConfig.secretsLimit, + authRateLimit: rateLimits?.authRateLimit ?? defaultRateLimiterConfig.authRateLimit, + inviteUserRateLimit: rateLimits?.inviteUserRateLimit ?? defaultRateLimiterConfig.inviteUserRateLimit, + mfaRateLimit: rateLimits?.mfaRateLimit ?? defaultRateLimiterConfig.mfaRateLimit, + creationLimit: rateLimits?.creationLimit ?? defaultRateLimiterConfig.creationLimit + }; + }); +}); diff --git a/backend/src/server/routes/index.ts b/backend/src/server/routes/index.ts index e8f80f020..d8c6b616d 100644 --- a/backend/src/server/routes/index.ts +++ b/backend/src/server/routes/index.ts @@ -183,6 +183,7 @@ import { webhookServiceFactory } from "@app/services/webhook/webhook-service"; import { injectAuditLogInfo } from "../plugins/audit-log"; import { injectIdentity } from "../plugins/auth/inject-identity"; import { injectPermission } from "../plugins/auth/inject-permission"; +import { injectRateLimits } from "../plugins/inject-rate-limits"; import { registerSecretScannerGhApp } from "../plugins/secret-scanner"; import { registerV1Routes } from "./v1"; import { registerV2Routes } from "./v2"; @@ -1130,6 +1131,7 @@ export const registerRoutes = async ( await server.register(injectIdentity, { userDAL, serviceTokenDAL }); await server.register(injectPermission); + await server.register(injectRateLimits); await server.register(injectAuditLogInfo); server.route({ From 1ad286ca871ab6f8401d93e2b18b1b1b55c0311c Mon Sep 17 00:00:00 2001 From: Sheen Capadngan Date: Fri, 2 Aug 2024 22:58:53 +0800 Subject: [PATCH 05/71] misc: name updates and more comments --- .../src/server/plugins/inject-rate-limits.ts | 31 +++++++++++-------- 1 file changed, 18 insertions(+), 13 deletions(-) diff --git a/backend/src/server/plugins/inject-rate-limits.ts b/backend/src/server/plugins/inject-rate-limits.ts index 74acc8fcb..487fdf1a6 100644 --- a/backend/src/server/plugins/inject-rate-limits.ts +++ b/backend/src/server/plugins/inject-rate-limits.ts @@ -1,35 +1,40 @@ import fp from "fastify-plugin"; import { getRateLimiterConfig } from "@app/ee/services/rate-limit/rate-limit-service"; +import { getConfig } from "@app/lib/config/env"; export const injectRateLimits = fp(async (server) => { server.decorateRequest("rateLimits", null); server.addHook("onRequest", async (req) => { - const defaultRateLimiterConfig = getRateLimiterConfig(); + const appCfg = getConfig(); + + const instanceRateLimiterConfig = getRateLimiterConfig(); if (!req.auth) { - // for public endpoints - req.rateLimits = defaultRateLimiterConfig; + // for public endpoints, we always use the instance-wide default rate limits + req.rateLimits = instanceRateLimiterConfig; return; } const plan = await server.services.license.getPlan(req.auth.orgId); const { rateLimits } = plan; - if (plan.customRateLimits) { - req.rateLimits = defaultRateLimiterConfig; + if (plan.customRateLimits && !appCfg.isCloud) { + // we do this because for self-hosted/dedicated instances, we want custom rate limits to be based on admin configuration + // note that the syncing of custom rate limit happens on the instanceRateLimiterConfig object + req.rateLimits = instanceRateLimiterConfig; return; } // we're using the null coalescing operator in order to handle outdated licenses req.rateLimits = { - readLimit: rateLimits?.readLimit ?? defaultRateLimiterConfig.readLimit, - publicEndpointLimit: rateLimits?.publicEndpointLimit ?? defaultRateLimiterConfig.publicEndpointLimit, - writeLimit: rateLimits?.writeLimit ?? defaultRateLimiterConfig.writeLimit, - secretsLimit: rateLimits?.secretsLimit ?? defaultRateLimiterConfig.secretsLimit, - authRateLimit: rateLimits?.authRateLimit ?? defaultRateLimiterConfig.authRateLimit, - inviteUserRateLimit: rateLimits?.inviteUserRateLimit ?? defaultRateLimiterConfig.inviteUserRateLimit, - mfaRateLimit: rateLimits?.mfaRateLimit ?? defaultRateLimiterConfig.mfaRateLimit, - creationLimit: rateLimits?.creationLimit ?? defaultRateLimiterConfig.creationLimit + readLimit: rateLimits?.readLimit ?? instanceRateLimiterConfig.readLimit, + publicEndpointLimit: rateLimits?.publicEndpointLimit ?? instanceRateLimiterConfig.publicEndpointLimit, + writeLimit: rateLimits?.writeLimit ?? instanceRateLimiterConfig.writeLimit, + secretsLimit: rateLimits?.secretsLimit ?? instanceRateLimiterConfig.secretsLimit, + authRateLimit: rateLimits?.authRateLimit ?? instanceRateLimiterConfig.authRateLimit, + inviteUserRateLimit: rateLimits?.inviteUserRateLimit ?? instanceRateLimiterConfig.inviteUserRateLimit, + mfaRateLimit: rateLimits?.mfaRateLimit ?? instanceRateLimiterConfig.mfaRateLimit, + creationLimit: rateLimits?.creationLimit ?? instanceRateLimiterConfig.creationLimit }; }); }); From 33193a47ae99948f687b89407c79180b7ddaaf83 Mon Sep 17 00:00:00 2001 From: Sheen Capadngan Date: Sat, 3 Aug 2024 01:52:04 +0800 Subject: [PATCH 06/71] misc: updated default onprem rate limits --- backend/src/ee/services/license/licence-fns.ts | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/backend/src/ee/services/license/licence-fns.ts b/backend/src/ee/services/license/licence-fns.ts index c7bdd95ac..ad6a98573 100644 --- a/backend/src/ee/services/license/licence-fns.ts +++ b/backend/src/ee/services/license/licence-fns.ts @@ -45,7 +45,7 @@ export const getDefaultOnPremFeatures = (): TFeatureSet => ({ readLimit: 60, publicEndpointLimit: 30, writeLimit: 200, - secretsLimit: 60, + secretsLimit: 40, authRateLimit: 60, inviteUserRateLimit: 30, mfaRateLimit: 20, From 0f23b7e1d3181f6100a5f4337d8548c36ca51a56 Mon Sep 17 00:00:00 2001 From: Sheen Capadngan Date: Sat, 3 Aug 2024 02:10:47 +0800 Subject: [PATCH 07/71] misc: added check for undefined orgId --- backend/src/server/plugins/inject-rate-limits.ts | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/backend/src/server/plugins/inject-rate-limits.ts b/backend/src/server/plugins/inject-rate-limits.ts index 487fdf1a6..4bd3729b3 100644 --- a/backend/src/server/plugins/inject-rate-limits.ts +++ b/backend/src/server/plugins/inject-rate-limits.ts @@ -9,7 +9,7 @@ export const injectRateLimits = fp(async (server) => { const appCfg = getConfig(); const instanceRateLimiterConfig = getRateLimiterConfig(); - if (!req.auth) { + if (!req.auth?.orgId) { // for public endpoints, we always use the instance-wide default rate limits req.rateLimits = instanceRateLimiterConfig; return; From cc689d3178c9de412b71794c64995c52858cc66a Mon Sep 17 00:00:00 2001 From: Sheen Capadngan Date: Tue, 6 Aug 2024 01:52:58 +0800 Subject: [PATCH 08/71] feat: added secrets deletion feature on integration removal --- .../ee/services/audit-log/audit-log-types.ts | 1 + backend/src/server/routes/index.ts | 9 +- .../server/routes/v1/integration-router.ts | 12 +- .../integration-delete-secret.ts | 350 ++++++++++++++++++ .../integration/integration-service.ts | 48 ++- .../services/integration/integration-types.ts | 1 + .../DeleteActionModal/DeleteActionModal.tsx | 7 +- .../src/hooks/api/integrations/queries.tsx | 11 +- .../IntegrationsPage/IntegrationsPage.tsx | 10 +- .../IntegrationsSection.tsx | 66 +++- 10 files changed, 493 insertions(+), 22 deletions(-) create mode 100644 backend/src/services/integration-auth/integration-delete-secret.ts diff --git a/backend/src/ee/services/audit-log/audit-log-types.ts b/backend/src/ee/services/audit-log/audit-log-types.ts index bfc1dbf92..07aeb320e 100644 --- a/backend/src/ee/services/audit-log/audit-log-types.ts +++ b/backend/src/ee/services/audit-log/audit-log-types.ts @@ -337,6 +337,7 @@ interface DeleteIntegrationEvent { targetServiceId?: string; path?: string; region?: string; + shouldDeleteIntegrationSecrets?: boolean; }; } diff --git a/backend/src/server/routes/index.ts b/backend/src/server/routes/index.ts index e8f80f020..681358193 100644 --- a/backend/src/server/routes/index.ts +++ b/backend/src/server/routes/index.ts @@ -885,8 +885,15 @@ export const registerRoutes = async ( folderDAL, integrationDAL, integrationAuthDAL, - secretQueueService + secretQueueService, + integrationAuthService, + projectBotService, + secretV2BridgeDAL, + secretImportDAL, + secretDAL, + kmsService }); + const serviceTokenService = serviceTokenServiceFactory({ projectEnvDAL, serviceTokenDAL, diff --git a/backend/src/server/routes/v1/integration-router.ts b/backend/src/server/routes/v1/integration-router.ts index 97a7f4d7a..6526dd940 100644 --- a/backend/src/server/routes/v1/integration-router.ts +++ b/backend/src/server/routes/v1/integration-router.ts @@ -170,6 +170,12 @@ export const registerIntegrationRouter = async (server: FastifyZodProvider) => { params: z.object({ integrationId: z.string().trim().describe(INTEGRATION.DELETE.integrationId) }), + querystring: z.object({ + shouldDeleteIntegrationSecrets: z + .enum(["true", "false"]) + .optional() + .transform((val) => val === "true") + }), response: { 200: z.object({ integration: IntegrationsSchema @@ -183,7 +189,8 @@ export const registerIntegrationRouter = async (server: FastifyZodProvider) => { actorAuthMethod: req.permission.authMethod, actor: req.permission.type, actorOrgId: req.permission.orgId, - id: req.params.integrationId + id: req.params.integrationId, + shouldDeleteIntegrationSecrets: req.query.shouldDeleteIntegrationSecrets }); await server.services.auditLog.createAuditLog({ @@ -205,7 +212,8 @@ export const registerIntegrationRouter = async (server: FastifyZodProvider) => { targetService: integration.targetService, targetServiceId: integration.targetServiceId, path: integration.path, - region: integration.region + region: integration.region, + shouldDeleteIntegrationSecrets: req.query.shouldDeleteIntegrationSecrets // eslint-disable-next-line }) as any } diff --git a/backend/src/services/integration-auth/integration-delete-secret.ts b/backend/src/services/integration-auth/integration-delete-secret.ts new file mode 100644 index 000000000..2a33677dd --- /dev/null +++ b/backend/src/services/integration-auth/integration-delete-secret.ts @@ -0,0 +1,350 @@ +import { Octokit } from "@octokit/rest"; + +import { TIntegrationAuths, TIntegrations } from "@app/db/schemas"; +import { decryptSymmetric128BitHexKeyUTF8 } from "@app/lib/crypto"; +import { BadRequestError, NotFoundError } from "@app/lib/errors"; +import { logger } from "@app/lib/logger"; + +import { IntegrationMetadataSchema } from "../integration/integration-schema"; +import { TKmsServiceFactory } from "../kms/kms-service"; +import { KmsDataKey } from "../kms/kms-types"; +import { TProjectBotServiceFactory } from "../project-bot/project-bot-service"; +import { TSecretDALFactory } from "../secret/secret-dal"; +import { TSecretFolderDALFactory } from "../secret-folder/secret-folder-dal"; +import { TSecretImportDALFactory } from "../secret-import/secret-import-dal"; +import { fnSecretsV2FromImports } from "../secret-import/secret-import-fns"; +import { TSecretV2BridgeDALFactory } from "../secret-v2-bridge/secret-v2-bridge-dal"; +import { TIntegrationAuthServiceFactory } from "./integration-auth-service"; +import { Integrations } from "./integration-list"; + +const MAX_SYNC_SECRET_DEPTH = 5; + +/** + * Return the secrets in a given [folderId] including secrets from + * nested imported folders recursively. + */ +const getIntegrationSecretsV2 = async ( + dto: { + projectId: string; + environment: string; + folderId: string; + depth: number; + decryptor: (value: Buffer | null | undefined) => string; + }, + secretV2BridgeDAL: Pick, + folderDAL: Pick, + secretImportDAL: Pick +) => { + const content: Record = {}; + if (dto.depth > MAX_SYNC_SECRET_DEPTH) { + logger.info( + `getIntegrationSecrets: secret depth exceeded for [projectId=${dto.projectId}] [folderId=${dto.folderId}] [depth=${dto.depth}]` + ); + return content; + } + + // process secrets in current folder + const secrets = await secretV2BridgeDAL.findByFolderId(dto.folderId); + + secrets.forEach((secret) => { + const secretKey = secret.key; + content[secretKey] = true; + }); + + // check if current folder has any imports from other folders + const secretImports = await secretImportDAL.find({ folderId: dto.folderId, isReplication: false }); + + // if no imports then return secrets in the current folder + if (!secretImports.length) return content; + const importedSecrets = await fnSecretsV2FromImports({ + decryptor: dto.decryptor, + folderDAL, + secretDAL: secretV2BridgeDAL, + secretImportDAL, + allowedImports: secretImports + }); + + for (let i = importedSecrets.length - 1; i >= 0; i -= 1) { + for (let j = 0; j < importedSecrets[i].secrets.length; j += 1) { + const importedSecret = importedSecrets[i].secrets[j]; + if (!content[importedSecret.key]) { + content[importedSecret.key] = true; + } + } + } + return content; +}; + +/** + * Return the secrets in a given [folderId] including secrets from + * nested imported folders recursively. + */ +const getIntegrationSecrets = async ( + dto: { + projectId: string; + environment: string; + folderId: string; + key: string; + depth: number; + }, + secretDAL: Pick, + folderDAL: Pick, + secretImportDAL: Pick +) => { + let content: Record = {}; + if (dto.depth > MAX_SYNC_SECRET_DEPTH) { + logger.info( + `getIntegrationSecrets: secret depth exceeded for [projectId=${dto.projectId}] [folderId=${dto.folderId}] [depth=${dto.depth}]` + ); + return content; + } + + // process secrets in current folder + const secrets = await secretDAL.findByFolderId(dto.folderId); + secrets.forEach((secret) => { + const secretKey = decryptSymmetric128BitHexKeyUTF8({ + ciphertext: secret.secretKeyCiphertext, + iv: secret.secretKeyIV, + tag: secret.secretKeyTag, + key: dto.key + }); + + content[secretKey] = true; + }); + + // check if current folder has any imports from other folders + const secretImport = await secretImportDAL.find({ folderId: dto.folderId, isReplication: false }); + + // if no imports then return secrets in the current folder + if (!secretImport) return content; + + const importedFolders = await folderDAL.findByManySecretPath( + secretImport.map(({ importEnv, importPath }) => ({ + envId: importEnv.id, + secretPath: importPath + })) + ); + + for await (const folder of importedFolders) { + if (folder) { + // get secrets contained in each imported folder by recursively calling + // this function against the imported folder + const importedSecrets = await getIntegrationSecrets( + { + environment: dto.environment, + projectId: dto.projectId, + folderId: folder.id, + key: dto.key, + depth: dto.depth + 1 + }, + secretDAL, + folderDAL, + secretImportDAL + ); + + // add the imported secrets to the current folder secrets + content = { ...importedSecrets, ...content }; + } + } + + return content; +}; + +export const deleteGithubSecrets = async ({ + integration, + secrets, + accessToken +}: { + integration: Omit; + secrets: Record; + accessToken: string; +}) => { + interface GitHubSecret { + name: string; + created_at: string; + updated_at: string; + visibility?: "all" | "private" | "selected"; + selected_repositories_url?: string | undefined; + } + + const octokit = new Octokit({ + auth: accessToken + }); + + enum GithubScope { + Repo = "github-repo", + Org = "github-org", + Env = "github-env" + } + + let encryptedSecrets: GitHubSecret[]; + + switch (integration.scope) { + case GithubScope.Org: { + encryptedSecrets = ( + await octokit.request("GET /orgs/{org}/actions/secrets", { + org: integration.owner as string + }) + ).data.secrets; + break; + } + case GithubScope.Env: { + encryptedSecrets = ( + await octokit.request("GET /repositories/{repository_id}/environments/{environment_name}/secrets", { + repository_id: Number(integration.appId), + environment_name: integration.targetEnvironmentId as string + }) + ).data.secrets; + break; + } + default: { + encryptedSecrets = ( + await octokit.request("GET /repos/{owner}/{repo}/actions/secrets", { + owner: integration.owner as string, + repo: integration.app as string + }) + ).data.secrets; + break; + } + } + + for await (const encryptedSecret of encryptedSecrets) { + if (encryptedSecret.name in secrets) { + switch (integration.scope) { + case GithubScope.Org: { + await octokit.request("DELETE /orgs/{org}/actions/secrets/{secret_name}", { + org: integration.owner as string, + secret_name: encryptedSecret.name + }); + break; + } + case GithubScope.Env: { + await octokit.request( + "DELETE /repositories/{repository_id}/environments/{environment_name}/secrets/{secret_name}", + { + repository_id: Number(integration.appId), + environment_name: integration.targetEnvironmentId as string, + secret_name: encryptedSecret.name + } + ); + break; + } + default: { + await octokit.request("DELETE /repos/{owner}/{repo}/actions/secrets/{secret_name}", { + owner: integration.owner as string, + repo: integration.app as string, + secret_name: encryptedSecret.name + }); + break; + } + } + } + } +}; + +export const deleteIntegrationSecrets = async ({ + integration, + integrationAuth, + integrationAuthService, + projectBotService, + secretV2BridgeDAL, + folderDAL, + secretDAL, + secretImportDAL, + kmsService +}: { + integration: Omit & { + projectId: string; + environment: { + id: string; + name: string; + slug: string; + }; + secretPath: string; + }; + integrationAuth: TIntegrationAuths; + integrationAuthService: Pick; + projectBotService: Pick; + secretV2BridgeDAL: Pick; + folderDAL: Pick; + secretImportDAL: Pick; + secretDAL: Pick; + kmsService: Pick; +}) => { + const { shouldUseSecretV2Bridge, botKey } = await projectBotService.getBotKey(integration.projectId); + const { decryptor: secretManagerDecryptor } = await kmsService.createCipherPairWithDataKey({ + type: KmsDataKey.SecretManager, + projectId: integration.projectId + }); + + const folder = await folderDAL.findBySecretPath( + integration.projectId, + integration.environment.slug, + integration.secretPath + ); + + if (!folder) { + throw new NotFoundError({ + message: "Folder not found." + }); + } + + const { accessToken } = await integrationAuthService.getIntegrationAccessToken( + integrationAuth, + shouldUseSecretV2Bridge, + botKey + ); + + const secrets = shouldUseSecretV2Bridge + ? await getIntegrationSecretsV2( + { + environment: integration.environment.id, + projectId: integration.projectId, + folderId: folder.id, + depth: 1, + decryptor: (value) => (value ? secretManagerDecryptor({ cipherTextBlob: value }).toString() : "") + }, + secretV2BridgeDAL, + folderDAL, + secretImportDAL + ) + : await getIntegrationSecrets( + { + environment: integration.environment.id, + projectId: integration.projectId, + folderId: folder.id, + key: botKey as string, + depth: 1 + }, + secretDAL, + folderDAL, + secretImportDAL + ); + + const suffixedSecrets: typeof secrets = {}; + const metadata = IntegrationMetadataSchema.parse(integration.metadata); + + if (metadata) { + Object.keys(secrets).forEach((key) => { + const prefix = metadata?.secretPrefix || ""; + const suffix = metadata?.secretSuffix || ""; + const newKey = prefix + key + suffix; + suffixedSecrets[newKey] = secrets[key]; + }); + } + + switch (integration.integration) { + case Integrations.GITHUB: { + await deleteGithubSecrets({ + integration, + accessToken, + secrets: Object.keys(suffixedSecrets).length !== 0 ? suffixedSecrets : secrets + }); + break; + } + default: + throw new BadRequestError({ + message: "Invalid integration" + }); + } +}; diff --git a/backend/src/services/integration/integration-service.ts b/backend/src/services/integration/integration-service.ts index da9cfc71f..02e520c6e 100644 --- a/backend/src/services/integration/integration-service.ts +++ b/backend/src/services/integration/integration-service.ts @@ -6,8 +6,15 @@ import { BadRequestError } from "@app/lib/errors"; import { TProjectPermission } from "@app/lib/types"; import { TIntegrationAuthDALFactory } from "../integration-auth/integration-auth-dal"; +import { TIntegrationAuthServiceFactory } from "../integration-auth/integration-auth-service"; +import { deleteIntegrationSecrets } from "../integration-auth/integration-delete-secret"; +import { TKmsServiceFactory } from "../kms/kms-service"; +import { TProjectBotServiceFactory } from "../project-bot/project-bot-service"; +import { TSecretDALFactory } from "../secret/secret-dal"; import { TSecretQueueFactory } from "../secret/secret-queue"; import { TSecretFolderDALFactory } from "../secret-folder/secret-folder-dal"; +import { TSecretImportDALFactory } from "../secret-import/secret-import-dal"; +import { TSecretV2BridgeDALFactory } from "../secret-v2-bridge/secret-v2-bridge-dal"; import { TIntegrationDALFactory } from "./integration-dal"; import { TCreateIntegrationDTO, @@ -19,9 +26,15 @@ import { type TIntegrationServiceFactoryDep = { integrationDAL: TIntegrationDALFactory; integrationAuthDAL: TIntegrationAuthDALFactory; - folderDAL: Pick; + integrationAuthService: TIntegrationAuthServiceFactory; + folderDAL: Pick; permissionService: Pick; + projectBotService: TProjectBotServiceFactory; secretQueueService: Pick; + secretV2BridgeDAL: Pick; + secretImportDAL: Pick; + kmsService: Pick; + secretDAL: Pick; }; export type TIntegrationServiceFactory = ReturnType; @@ -31,7 +44,13 @@ export const integrationServiceFactory = ({ integrationAuthDAL, folderDAL, permissionService, - secretQueueService + secretQueueService, + integrationAuthService, + projectBotService, + secretV2BridgeDAL, + secretImportDAL, + kmsService, + secretDAL }: TIntegrationServiceFactoryDep) => { const createIntegration = async ({ app, @@ -161,7 +180,14 @@ export const integrationServiceFactory = ({ return updatedIntegration; }; - const deleteIntegration = async ({ actorId, id, actor, actorAuthMethod, actorOrgId }: TDeleteIntegrationDTO) => { + const deleteIntegration = async ({ + actorId, + id, + actor, + actorAuthMethod, + actorOrgId, + shouldDeleteIntegrationSecrets + }: TDeleteIntegrationDTO) => { const integration = await integrationDAL.findById(id); if (!integration) throw new BadRequestError({ message: "Integration auth not found" }); @@ -174,6 +200,22 @@ export const integrationServiceFactory = ({ ); ForbiddenError.from(permission).throwUnlessCan(ProjectPermissionActions.Delete, ProjectPermissionSub.Integrations); + const integrationAuth = await integrationAuthDAL.findById(integration.integrationAuthId); + + if (shouldDeleteIntegrationSecrets) { + await deleteIntegrationSecrets({ + integration, + integrationAuth, + projectBotService, + integrationAuthService, + secretV2BridgeDAL, + folderDAL, + secretImportDAL, + secretDAL, + kmsService + }); + } + const deletedIntegration = await integrationDAL.transaction(async (tx) => { // delete integration const deletedIntegrationResult = await integrationDAL.deleteById(id, tx); diff --git a/backend/src/services/integration/integration-types.ts b/backend/src/services/integration/integration-types.ts index abbccbe90..cfb6d70a4 100644 --- a/backend/src/services/integration/integration-types.ts +++ b/backend/src/services/integration/integration-types.ts @@ -63,6 +63,7 @@ export type TUpdateIntegrationDTO = { export type TDeleteIntegrationDTO = { id: string; + shouldDeleteIntegrationSecrets?: boolean; } & Omit; export type TSyncIntegrationDTO = { diff --git a/frontend/src/components/v2/DeleteActionModal/DeleteActionModal.tsx b/frontend/src/components/v2/DeleteActionModal/DeleteActionModal.tsx index 8e4bcbe71..299b23bb5 100644 --- a/frontend/src/components/v2/DeleteActionModal/DeleteActionModal.tsx +++ b/frontend/src/components/v2/DeleteActionModal/DeleteActionModal.tsx @@ -1,4 +1,4 @@ -import { useEffect, useState } from "react"; +import { ReactNode, useEffect, useState } from "react"; import { useToggle } from "@app/hooks"; @@ -16,6 +16,7 @@ type Props = { subTitle?: string; onDeleteApproved: () => Promise; buttonText?: string; + children?: ReactNode; }; export const DeleteActionModal = ({ @@ -26,7 +27,8 @@ export const DeleteActionModal = ({ onDeleteApproved, title, subTitle = "This action is irreversible.", - buttonText = "Delete" + buttonText = "Delete", + children }: Props): JSX.Element => { const [inputData, setInputData] = useState(""); const [isLoading, setIsLoading] = useToggle(); @@ -97,6 +99,7 @@ export const DeleteActionModal = ({ placeholder={`Type ${deleteKey} here`} /> + {children} diff --git a/frontend/src/hooks/api/integrations/queries.tsx b/frontend/src/hooks/api/integrations/queries.tsx index 81d0f00ca..de4c1a914 100644 --- a/frontend/src/hooks/api/integrations/queries.tsx +++ b/frontend/src/hooks/api/integrations/queries.tsx @@ -110,8 +110,15 @@ export const useCreateIntegration = () => { export const useDeleteIntegration = () => { const queryClient = useQueryClient(); - return useMutation<{}, {}, { id: string; workspaceId: string }>({ - mutationFn: ({ id }) => apiRequest.delete(`/api/v1/integration/${id}`), + return useMutation< + {}, + {}, + { id: string; workspaceId: string; shouldDeleteIntegrationSecrets: boolean } + >({ + mutationFn: ({ id, shouldDeleteIntegrationSecrets }) => + apiRequest.delete( + `/api/v1/integration/${id}?shouldDeleteIntegrationSecrets=${shouldDeleteIntegrationSecrets}` + ), onSuccess: (_, { workspaceId }) => { queryClient.invalidateQueries(workspaceKeys.getWorkspaceIntegrations(workspaceId)); queryClient.invalidateQueries(workspaceKeys.getWorkspaceAuthorization(workspaceId)); diff --git a/frontend/src/views/IntegrationsPage/IntegrationsPage.tsx b/frontend/src/views/IntegrationsPage/IntegrationsPage.tsx index 5601a7f68..e44fd2539 100644 --- a/frontend/src/views/IntegrationsPage/IntegrationsPage.tsx +++ b/frontend/src/views/IntegrationsPage/IntegrationsPage.tsx @@ -106,9 +106,13 @@ export const IntegrationsPage = withProjectPermission( handleProviderIntegration(provider); }; - const handleIntegrationDelete = async (integrationId: string, cb: () => void) => { + const handleIntegrationDelete = async ( + integrationId: string, + shouldDeleteIntegrationSecrets: boolean, + cb: () => void + ) => { try { - await deleteIntegration({ id: integrationId, workspaceId }); + await deleteIntegration({ id: integrationId, workspaceId, shouldDeleteIntegrationSecrets }); if (cb) cb(); createNotification({ type: "success", @@ -152,7 +156,7 @@ export const IntegrationsPage = withProjectPermission( isLoading={isIntegrationLoading} integrations={integrations} environments={environments} - onIntegrationDelete={({ id }, cb) => handleIntegrationDelete(id, cb)} + onIntegrationDelete={handleIntegrationDelete} workspaceId={workspaceId} /> ; integrations?: TIntegration[]; isLoading?: boolean; - onIntegrationDelete: (integration: TIntegration, cb: () => void) => void; + onIntegrationDelete: ( + integrationId: string, + shouldDeleteIntegrationSecrets: boolean, + cb: () => void + ) => Promise; workspaceId: string; }; @@ -37,10 +42,12 @@ export const IntegrationsSection = ({ workspaceId }: Props) => { const { popUp, handlePopUpOpen, handlePopUpClose, handlePopUpToggle } = usePopUp([ - "deleteConfirmation" + "deleteConfirmation", + "deleteSecretsConfirmation" ] as const); const { mutate: syncIntegration } = useSyncIntegration(); + const [shouldDeleteSecrets, setShouldDeleteSecrets] = useToggle(false); return (
@@ -249,7 +256,10 @@ export const IntegrationsSection = ({
handlePopUpOpen("deleteConfirmation", integration)} + onClick={() => { + setShouldDeleteSecrets.off(); + handlePopUpOpen("deleteConfirmation", integration); + }} ariaLabel="delete" isDisabled={!isAllowed} colorSchema="danger" @@ -281,11 +291,49 @@ export const IntegrationsSection = ({ (popUp?.deleteConfirmation?.data as TIntegration)?.integration || "" } - onDeleteApproved={async () => - onIntegrationDelete(popUp?.deleteConfirmation.data as TIntegration, () => - handlePopUpClose("deleteConfirmation") - ) - } + onDeleteApproved={async () => { + if (shouldDeleteSecrets) { + handlePopUpOpen("deleteSecretsConfirmation"); + return; + } + + await onIntegrationDelete( + (popUp?.deleteConfirmation.data as TIntegration).id, + false, + () => handlePopUpClose("deleteConfirmation") + ); + }} + > + {(popUp?.deleteConfirmation?.data as TIntegration)?.integration === "github" && ( +
+ setShouldDeleteSecrets.toggle()} + > + Delete secrets in destination + +
+ )} + + handlePopUpToggle("deleteSecretsConfirmation", isOpen)} + deleteKey="confirm" + onDeleteApproved={async () => { + await onIntegrationDelete( + (popUp?.deleteConfirmation.data as TIntegration).id, + true, + () => { + handlePopUpClose("deleteSecretsConfirmation"); + handlePopUpClose("deleteConfirmation"); + } + ); + }} />
); From 1070954bdd67e15c1a6b065c1143bc789f616569 Mon Sep 17 00:00:00 2001 From: Sheen Capadngan Date: Tue, 6 Aug 2024 02:05:13 +0800 Subject: [PATCH 09/71] misc: used destructuring --- backend/src/server/plugins/inject-rate-limits.ts | 5 ++--- 1 file changed, 2 insertions(+), 3 deletions(-) diff --git a/backend/src/server/plugins/inject-rate-limits.ts b/backend/src/server/plugins/inject-rate-limits.ts index 4bd3729b3..49b95c761 100644 --- a/backend/src/server/plugins/inject-rate-limits.ts +++ b/backend/src/server/plugins/inject-rate-limits.ts @@ -15,10 +15,9 @@ export const injectRateLimits = fp(async (server) => { return; } - const plan = await server.services.license.getPlan(req.auth.orgId); - const { rateLimits } = plan; + const { rateLimits, customRateLimits } = await server.services.license.getPlan(req.auth.orgId); - if (plan.customRateLimits && !appCfg.isCloud) { + if (customRateLimits && !appCfg.isCloud) { // we do this because for self-hosted/dedicated instances, we want custom rate limits to be based on admin configuration // note that the syncing of custom rate limit happens on the instanceRateLimiterConfig object req.rateLimits = instanceRateLimiterConfig; From c5a2b0321fb1d1d247850e8c6fa549a7fc085ad6 Mon Sep 17 00:00:00 2001 From: = Date: Tue, 6 Aug 2024 15:35:00 +0530 Subject: [PATCH 10/71] feat: completed secret v3 raw to support tag based filtering --- backend/src/lib/api-docs/constants.ts | 3 ++- backend/src/server/routes/v3/secret-router.ts | 11 +++++++++-- .../secret-v2-bridge/secret-v2-bridge-service.ts | 10 +++++++--- .../secret-v2-bridge/secret-v2-bridge-types.ts | 1 + backend/src/services/secret/secret-service.ts | 13 +++++++++---- backend/src/services/secret/secret-types.ts | 1 + 6 files changed, 29 insertions(+), 10 deletions(-) diff --git a/backend/src/lib/api-docs/constants.ts b/backend/src/lib/api-docs/constants.ts index aa7d2fc51..4ea51df2b 100644 --- a/backend/src/lib/api-docs/constants.ts +++ b/backend/src/lib/api-docs/constants.ts @@ -596,7 +596,8 @@ export const RAW_SECRETS = { "The slug of the project to list secrets from. This parameter is only applicable by machine identities.", environment: "The slug of the environment to list secrets from.", secretPath: "The secret path to list secrets from.", - includeImports: "Weather to include imported secrets or not." + includeImports: "Weather to include imported secrets or not.", + tagSlugs: "The comma seperated tag slugs to filter secrets" }, CREATE: { secretName: "The name of the secret to create.", diff --git a/backend/src/server/routes/v3/secret-router.ts b/backend/src/server/routes/v3/secret-router.ts index b0776d150..bb2d6d827 100644 --- a/backend/src/server/routes/v3/secret-router.ts +++ b/backend/src/server/routes/v3/secret-router.ts @@ -180,7 +180,13 @@ export const registerSecretRouter = async (server: FastifyZodProvider) => { .enum(["true", "false"]) .default("false") .transform((value) => value === "true") - .describe(RAW_SECRETS.LIST.includeImports) + .describe(RAW_SECRETS.LIST.includeImports), + tagSlugs: z + .string() + .describe(RAW_SECRETS.LIST.tagSlugs) + .optional() + // split by comma and trim the strings + .transform((el) => (el ? el.split(",").map((i) => i.trim()) : [])) }), response: { 200: z.object({ @@ -251,7 +257,8 @@ export const registerSecretRouter = async (server: FastifyZodProvider) => { projectId: workspaceId, path: secretPath, includeImports: req.query.include_imports, - recursive: req.query.recursive + recursive: req.query.recursive, + tagSlugs: req.query.tagSlugs }); await server.services.auditLog.createAuditLog({ diff --git a/backend/src/services/secret-v2-bridge/secret-v2-bridge-service.ts b/backend/src/services/secret-v2-bridge/secret-v2-bridge-service.ts index 2cb03cf6d..d98d23823 100644 --- a/backend/src/services/secret-v2-bridge/secret-v2-bridge-service.ts +++ b/backend/src/services/secret-v2-bridge/secret-v2-bridge-service.ts @@ -429,6 +429,7 @@ export const secretV2BridgeServiceFactory = ({ actorAuthMethod, includeImports, recursive, + tagSlugs = [], expandSecretReferences: shouldExpandSecretReferences }: TGetSecretsDTO) => { const { permission } = await permissionService.getProjectPermission( @@ -496,6 +497,9 @@ export const secretV2BridgeServiceFactory = ({ : "" }) ); + const filteredSecrets = tagSlugs.length + ? decryptedSecrets.filter((secret) => Boolean(secret.tags?.find((el) => tagSlugs.includes(el.slug)))) + : decryptedSecrets; const expandSecretReferences = expandSecretReferencesFactory({ projectId, folderDAL, @@ -504,7 +508,7 @@ export const secretV2BridgeServiceFactory = ({ }); if (shouldExpandSecretReferences) { - const secretsGroupByPath = groupBy(decryptedSecrets, (i) => i.secretPath); + const secretsGroupByPath = groupBy(filteredSecrets, (i) => i.secretPath); for (const secretPathKey in secretsGroupByPath) { if (Object.hasOwn(secretsGroupByPath, secretPathKey)) { const secretsGroupByKey = secretsGroupByPath[secretPathKey].reduce( @@ -530,7 +534,7 @@ export const secretV2BridgeServiceFactory = ({ if (!includeImports) { return { - secrets: decryptedSecrets + secrets: filteredSecrets }; } @@ -558,7 +562,7 @@ export const secretV2BridgeServiceFactory = ({ }); return { - secrets: decryptedSecrets, + secrets: filteredSecrets, imports: importedSecrets }; }; diff --git a/backend/src/services/secret-v2-bridge/secret-v2-bridge-types.ts b/backend/src/services/secret-v2-bridge/secret-v2-bridge-types.ts index 1964aac05..8c7a32a7f 100644 --- a/backend/src/services/secret-v2-bridge/secret-v2-bridge-types.ts +++ b/backend/src/services/secret-v2-bridge/secret-v2-bridge-types.ts @@ -20,6 +20,7 @@ export type TGetSecretsDTO = { environment: string; includeImports?: boolean; recursive?: boolean; + tagSlugs?: string[]; } & TProjectPermission; export type TGetASecretDTO = { diff --git a/backend/src/services/secret/secret-service.ts b/backend/src/services/secret/secret-service.ts index 3a14f0e30..35c1de312 100644 --- a/backend/src/services/secret/secret-service.ts +++ b/backend/src/services/secret/secret-service.ts @@ -964,7 +964,8 @@ export const secretServiceFactory = ({ environment, includeImports, expandSecretReferences, - recursive + recursive, + tagSlugs = [] }: TGetSecretsRawDTO) => { const { botKey, shouldUseSecretV2Bridge } = await projectBotService.getBotKey(projectId); if (shouldUseSecretV2Bridge) { @@ -978,7 +979,8 @@ export const secretServiceFactory = ({ path, recursive, actorAuthMethod, - includeImports + includeImports, + tagSlugs }); return { secrets, imports }; } @@ -998,6 +1000,9 @@ export const secretServiceFactory = ({ }); const decryptedSecrets = secrets.map((el) => decryptSecretRaw(el, botKey)); + const filteredSecrets = tagSlugs.length + ? decryptedSecrets.filter((secret) => Boolean(secret.tags?.find((el) => tagSlugs.includes(el.slug)))) + : decryptedSecrets; const processedImports = (imports || [])?.map(({ secrets: importedSecrets, ...el }) => { const decryptedImportSecrets = importedSecrets.map((sec) => decryptSecretRaw( @@ -1106,14 +1111,14 @@ export const secretServiceFactory = ({ }; // expand secrets - await batchSecretsExpand(decryptedSecrets); + await batchSecretsExpand(filteredSecrets); // expand imports by batch await Promise.all(processedImports.map((processedImport) => batchSecretsExpand(processedImport.secrets))); } return { - secrets: decryptedSecrets, + secrets: filteredSecrets, imports: processedImports }; }; diff --git a/backend/src/services/secret/secret-types.ts b/backend/src/services/secret/secret-types.ts index 99bde05f2..1686ee488 100644 --- a/backend/src/services/secret/secret-types.ts +++ b/backend/src/services/secret/secret-types.ts @@ -149,6 +149,7 @@ export type TGetSecretsRawDTO = { environment: string; includeImports?: boolean; recursive?: boolean; + tagSlugs?: string[]; } & TProjectPermission; export type TGetASecretRawDTO = { From 8626bce632d5ac685d372aeed60e99074b219dad Mon Sep 17 00:00:00 2001 From: = Date: Tue, 6 Aug 2024 15:36:03 +0530 Subject: [PATCH 11/71] feat: added tag support for secret operation in cli --- cli/packages/api/api.go | 4 ++++ cli/packages/api/model.go | 1 + cli/packages/cmd/agent.go | 2 +- cli/packages/util/secrets.go | 13 +++++++------ 4 files changed, 13 insertions(+), 7 deletions(-) diff --git a/cli/packages/api/api.go b/cli/packages/api/api.go index 9eab5e759..c6ecd8bcd 100644 --- a/cli/packages/api/api.go +++ b/cli/packages/api/api.go @@ -404,6 +404,10 @@ func CallGetRawSecretsV3(httpClient *resty.Client, request GetRawSecretsV3Reques SetQueryParam("environment", request.Environment). SetQueryParam("secretPath", request.SecretPath) + if request.TagSlugs != "" { + req.SetQueryParam("tagSlugs", request.TagSlugs) + } + if request.IncludeImport { req.SetQueryParam("include_imports", "true") } diff --git a/cli/packages/api/model.go b/cli/packages/api/model.go index dc577bf9d..f954531e2 100644 --- a/cli/packages/api/model.go +++ b/cli/packages/api/model.go @@ -574,6 +574,7 @@ type GetRawSecretsV3Request struct { SecretPath string `json:"secretPath"` IncludeImport bool `json:"include_imports"` Recursive bool `json:"recursive"` + TagSlugs string `json:"tagSlugs,omitempty"` } type GetRawSecretsV3Response struct { diff --git a/cli/packages/cmd/agent.go b/cli/packages/cmd/agent.go index 59e496ec7..0c99377ae 100644 --- a/cli/packages/cmd/agent.go +++ b/cli/packages/cmd/agent.go @@ -312,7 +312,7 @@ func ParseAgentConfig(configFile []byte) (*Config, error) { func secretTemplateFunction(accessToken string, existingEtag string, currentEtag *string) func(string, string, string) ([]models.SingleEnvironmentVariable, error) { return func(projectID, envSlug, secretPath string) ([]models.SingleEnvironmentVariable, error) { - res, err := util.GetPlainTextSecretsV3(accessToken, projectID, envSlug, secretPath, false, false) + res, err := util.GetPlainTextSecretsV3(accessToken, projectID, envSlug, secretPath, false, false, "") if err != nil { return nil, err } diff --git a/cli/packages/util/secrets.go b/cli/packages/util/secrets.go index c51338d61..91daf088e 100644 --- a/cli/packages/util/secrets.go +++ b/cli/packages/util/secrets.go @@ -20,7 +20,7 @@ import ( "github.com/zalando/go-keyring" ) -func GetPlainTextSecretsViaServiceToken(fullServiceToken string, environment string, secretPath string, includeImports bool, recursive bool) ([]models.SingleEnvironmentVariable, error) { +func GetPlainTextSecretsViaServiceToken(fullServiceToken string, environment string, secretPath string, includeImports bool, recursive bool, tagSlugs string) ([]models.SingleEnvironmentVariable, error) { serviceTokenParts := strings.SplitN(fullServiceToken, ".", 4) if len(serviceTokenParts) < 4 { return nil, fmt.Errorf("invalid service token entered. Please double check your service token and try again") @@ -53,6 +53,7 @@ func GetPlainTextSecretsViaServiceToken(fullServiceToken string, environment str SecretPath: secretPath, IncludeImport: includeImports, Recursive: recursive, + TagSlugs: tagSlugs, }) if err != nil { @@ -76,7 +77,7 @@ func GetPlainTextSecretsViaServiceToken(fullServiceToken string, environment str } -func GetPlainTextSecretsV3(accessToken string, workspaceId string, environmentName string, secretsPath string, includeImports bool, recursive bool) (models.PlaintextSecretResult, error) { +func GetPlainTextSecretsV3(accessToken string, workspaceId string, environmentName string, secretsPath string, includeImports bool, recursive bool, tagSlugs string) (models.PlaintextSecretResult, error) { httpClient := resty.New() httpClient.SetAuthToken(accessToken). SetHeader("Accept", "application/json") @@ -86,7 +87,7 @@ func GetPlainTextSecretsV3(accessToken string, workspaceId string, environmentNa Environment: environmentName, IncludeImport: includeImports, Recursive: recursive, - // TagSlugs: tagSlugs, + TagSlugs: tagSlugs, } if secretsPath != "" { @@ -281,7 +282,7 @@ func GetAllEnvironmentVariables(params models.GetAllSecretsParameters, projectCo } res, err := GetPlainTextSecretsV3(loggedInUserDetails.UserCredentials.JTWToken, infisicalDotJson.WorkspaceId, - params.Environment, params.SecretsPath, params.IncludeImport, params.Recursive) + params.Environment, params.SecretsPath, params.IncludeImport, params.Recursive, params.TagSlugs) log.Debug().Msgf("GetAllEnvironmentVariables: Trying to fetch secrets JTW token [err=%s]", err) if err == nil { @@ -303,7 +304,7 @@ func GetAllEnvironmentVariables(params models.GetAllSecretsParameters, projectCo } else { if params.InfisicalToken != "" { log.Debug().Msg("Trying to fetch secrets using service token") - secretsToReturn, errorToReturn = GetPlainTextSecretsViaServiceToken(params.InfisicalToken, params.Environment, params.SecretsPath, params.IncludeImport, params.Recursive) + secretsToReturn, errorToReturn = GetPlainTextSecretsViaServiceToken(params.InfisicalToken, params.Environment, params.SecretsPath, params.IncludeImport, params.Recursive, params.TagSlugs) } else if params.UniversalAuthAccessToken != "" { if params.WorkspaceId == "" { @@ -311,7 +312,7 @@ func GetAllEnvironmentVariables(params models.GetAllSecretsParameters, projectCo } log.Debug().Msg("Trying to fetch secrets using universal auth") - res, err := GetPlainTextSecretsV3(params.UniversalAuthAccessToken, params.WorkspaceId, params.Environment, params.SecretsPath, params.IncludeImport, params.Recursive) + res, err := GetPlainTextSecretsV3(params.UniversalAuthAccessToken, params.WorkspaceId, params.Environment, params.SecretsPath, params.IncludeImport, params.Recursive, params.TagSlugs) errorToReturn = err secretsToReturn = res.Secrets From 216c0732907616aeda7d15143220274a1429f170 Mon Sep 17 00:00:00 2001 From: = Date: Tue, 6 Aug 2024 16:14:25 +0530 Subject: [PATCH 12/71] fix: missing comment key in updated project --- backend/src/services/secret-v2-bridge/secret-v2-bridge-fns.ts | 4 ++-- .../src/services/secret-v2-bridge/secret-v2-bridge-service.ts | 2 +- 2 files changed, 3 insertions(+), 3 deletions(-) diff --git a/backend/src/services/secret-v2-bridge/secret-v2-bridge-fns.ts b/backend/src/services/secret-v2-bridge/secret-v2-bridge-fns.ts index 19aef06f3..8bd5c55f3 100644 --- a/backend/src/services/secret-v2-bridge/secret-v2-bridge-fns.ts +++ b/backend/src/services/secret-v2-bridge/secret-v2-bridge-fns.ts @@ -542,8 +542,8 @@ export const reshapeBridgeSecret = ( secretPath, workspace: workspaceId, environment, - secretValue: secret.value, - secretComment: secret.comment, + secretValue: secret.value || "", + secretComment: secret.comment || "", version: secret.version, type: secret.type, _id: secret.id, diff --git a/backend/src/services/secret-v2-bridge/secret-v2-bridge-service.ts b/backend/src/services/secret-v2-bridge/secret-v2-bridge-service.ts index 2cb03cf6d..03ef8c86a 100644 --- a/backend/src/services/secret-v2-bridge/secret-v2-bridge-service.ts +++ b/backend/src/services/secret-v2-bridge/secret-v2-bridge-service.ts @@ -522,7 +522,7 @@ export const secretV2BridgeServiceFactory = ({ await expandSecretReferences(secretsGroupByKey); secretsGroupByPath[secretPathKey].forEach((decryptedSecret) => { // eslint-disable-next-line no-param-reassign - decryptedSecret.secretValue = secretsGroupByKey[decryptedSecret.secretKey].value; + decryptedSecret.secretValue = secretsGroupByKey[decryptedSecret.secretKey].value || ""; }); } } From c1decab91248bb126361a8b73da64f8a0df63846 Mon Sep 17 00:00:00 2001 From: Sheen Capadngan Date: Tue, 6 Aug 2024 18:58:07 +0800 Subject: [PATCH 13/71] misc: addressed comments --- backend/package-lock.json | 55 +++++++++++++++++-- backend/package.json | 1 + .../integration-delete-secret.ts | 25 ++++++--- 3 files changed, 66 insertions(+), 15 deletions(-) diff --git a/backend/package-lock.json b/backend/package-lock.json index ffe9cfcb0..71d994f2e 100644 --- a/backend/package-lock.json +++ b/backend/package-lock.json @@ -25,6 +25,7 @@ "@fastify/swagger": "^8.14.0", "@fastify/swagger-ui": "^2.1.0", "@node-saml/passport-saml": "^4.0.4", + "@octokit/plugin-retry": "^5.0.5", "@octokit/rest": "^20.0.2", "@octokit/webhooks-types": "^7.3.1", "@peculiar/asn1-schema": "^2.3.8", @@ -7812,19 +7813,45 @@ } }, "node_modules/@octokit/plugin-retry": { - "version": "6.0.1", - "resolved": "https://registry.npmjs.org/@octokit/plugin-retry/-/plugin-retry-6.0.1.tgz", - "integrity": "sha512-SKs+Tz9oj0g4p28qkZwl/topGcb0k0qPNX/i7vBKmDsjoeqnVfFUquqrE/O9oJY7+oLzdCtkiWSXLpLjvl6uog==", + "version": "5.0.5", + "resolved": "https://registry.npmjs.org/@octokit/plugin-retry/-/plugin-retry-5.0.5.tgz", + "integrity": "sha512-sB1RWMhSrre02Atv95K6bhESlJ/sPdZkK/wE/w1IdSCe0yM6FxSjksLa6T7aAvxvxlLKzQEC4KIiqpqyov1Tbg==", "dependencies": { - "@octokit/request-error": "^5.0.0", - "@octokit/types": "^12.0.0", + "@octokit/request-error": "^4.0.1", + "@octokit/types": "^10.0.0", "bottleneck": "^2.15.3" }, "engines": { "node": ">= 18" }, "peerDependencies": { - "@octokit/core": ">=5" + "@octokit/core": ">=3" + } + }, + "node_modules/@octokit/plugin-retry/node_modules/@octokit/openapi-types": { + "version": "18.1.1", + "resolved": "https://registry.npmjs.org/@octokit/openapi-types/-/openapi-types-18.1.1.tgz", + "integrity": "sha512-VRaeH8nCDtF5aXWnjPuEMIYf1itK/s3JYyJcWFJT8X9pSNnBtriDf7wlEWsGuhPLl4QIH4xM8fqTXDwJ3Mu6sw==" + }, + "node_modules/@octokit/plugin-retry/node_modules/@octokit/request-error": { + "version": "4.0.2", + "resolved": "https://registry.npmjs.org/@octokit/request-error/-/request-error-4.0.2.tgz", + "integrity": "sha512-uqwUEmZw3x4I9DGYq9fODVAAvcLsPQv97NRycP6syEFu5916M189VnNBW2zANNwqg3OiligNcAey7P0SET843w==", + "dependencies": { + "@octokit/types": "^10.0.0", + "deprecation": "^2.0.0", + "once": "^1.4.0" + }, + "engines": { + "node": ">= 18" + } + }, + "node_modules/@octokit/plugin-retry/node_modules/@octokit/types": { + "version": "10.0.0", + "resolved": "https://registry.npmjs.org/@octokit/types/-/types-10.0.0.tgz", + "integrity": "sha512-Vm8IddVmhCgU1fxC1eyinpwqzXPEYu0NrYzD3YZjlGjyftdLBTeqNblRC0jmJmgxbJIsQlyogVeGnrNaaMVzIg==", + "dependencies": { + "@octokit/openapi-types": "^18.0.0" } }, "node_modules/@octokit/plugin-throttling": { @@ -17396,6 +17423,22 @@ "node": ">=18" } }, + "node_modules/probot/node_modules/@octokit/plugin-retry": { + "version": "6.0.1", + "resolved": "https://registry.npmjs.org/@octokit/plugin-retry/-/plugin-retry-6.0.1.tgz", + "integrity": "sha512-SKs+Tz9oj0g4p28qkZwl/topGcb0k0qPNX/i7vBKmDsjoeqnVfFUquqrE/O9oJY7+oLzdCtkiWSXLpLjvl6uog==", + "dependencies": { + "@octokit/request-error": "^5.0.0", + "@octokit/types": "^12.0.0", + "bottleneck": "^2.15.3" + }, + "engines": { + "node": ">= 18" + }, + "peerDependencies": { + "@octokit/core": ">=5" + } + }, "node_modules/probot/node_modules/commander": { "version": "11.1.0", "resolved": "https://registry.npmjs.org/commander/-/commander-11.1.0.tgz", diff --git a/backend/package.json b/backend/package.json index 1328db4dd..4ea217808 100644 --- a/backend/package.json +++ b/backend/package.json @@ -121,6 +121,7 @@ "@fastify/swagger": "^8.14.0", "@fastify/swagger-ui": "^2.1.0", "@node-saml/passport-saml": "^4.0.4", + "@octokit/plugin-retry": "^5.0.5", "@octokit/rest": "^20.0.2", "@octokit/webhooks-types": "^7.3.1", "@peculiar/asn1-schema": "^2.3.8", diff --git a/backend/src/services/integration-auth/integration-delete-secret.ts b/backend/src/services/integration-auth/integration-delete-secret.ts index 2a33677dd..5da48fb6e 100644 --- a/backend/src/services/integration-auth/integration-delete-secret.ts +++ b/backend/src/services/integration-auth/integration-delete-secret.ts @@ -1,3 +1,4 @@ +import { retry } from "@octokit/plugin-retry"; import { Octokit } from "@octokit/rest"; import { TIntegrationAuths, TIntegrations } from "@app/db/schemas"; @@ -79,7 +80,7 @@ const getIntegrationSecretsV2 = async ( * Return the secrets in a given [folderId] including secrets from * nested imported folders recursively. */ -const getIntegrationSecrets = async ( +const getIntegrationSecretsV1 = async ( dto: { projectId: string; environment: string; @@ -129,7 +130,7 @@ const getIntegrationSecrets = async ( if (folder) { // get secrets contained in each imported folder by recursively calling // this function against the imported folder - const importedSecrets = await getIntegrationSecrets( + const importedSecrets = await getIntegrationSecretsV1( { environment: dto.environment, projectId: dto.projectId, @@ -167,7 +168,8 @@ export const deleteGithubSecrets = async ({ selected_repositories_url?: string | undefined; } - const octokit = new Octokit({ + const OctokitWithRetry = Octokit.plugin(retry); + const octokit = new OctokitWithRetry({ auth: accessToken }); @@ -177,11 +179,11 @@ export const deleteGithubSecrets = async ({ Env = "github-env" } - let encryptedSecrets: GitHubSecret[]; + let encryptedGithubSecrets: GitHubSecret[]; switch (integration.scope) { case GithubScope.Org: { - encryptedSecrets = ( + encryptedGithubSecrets = ( await octokit.request("GET /orgs/{org}/actions/secrets", { org: integration.owner as string }) @@ -189,7 +191,7 @@ export const deleteGithubSecrets = async ({ break; } case GithubScope.Env: { - encryptedSecrets = ( + encryptedGithubSecrets = ( await octokit.request("GET /repositories/{repository_id}/environments/{environment_name}/secrets", { repository_id: Number(integration.appId), environment_name: integration.targetEnvironmentId as string @@ -198,7 +200,7 @@ export const deleteGithubSecrets = async ({ break; } default: { - encryptedSecrets = ( + encryptedGithubSecrets = ( await octokit.request("GET /repos/{owner}/{repo}/actions/secrets", { owner: integration.owner as string, repo: integration.app as string @@ -208,7 +210,7 @@ export const deleteGithubSecrets = async ({ } } - for await (const encryptedSecret of encryptedSecrets) { + for await (const encryptedSecret of encryptedGithubSecrets) { if (encryptedSecret.name in secrets) { switch (integration.scope) { case GithubScope.Org: { @@ -238,6 +240,11 @@ export const deleteGithubSecrets = async ({ break; } } + + // small delay to prevent hitting API rate limits + await new Promise((resolve) => { + setTimeout(resolve, 50); + }); } } }; @@ -308,7 +315,7 @@ export const deleteIntegrationSecrets = async ({ folderDAL, secretImportDAL ) - : await getIntegrationSecrets( + : await getIntegrationSecretsV1( { environment: integration.environment.id, projectId: integration.projectId, From 26ed8df73c8048bbdb2628d49d016dae9b972447 Mon Sep 17 00:00:00 2001 From: Sheen Capadngan Date: Tue, 6 Aug 2024 19:14:49 +0800 Subject: [PATCH 14/71] misc: finalized list of license rate limits --- backend/src/ee/services/license/licence-fns.ts | 7 +------ backend/src/ee/services/license/license-types.ts | 8 +++++--- backend/src/ee/services/rate-limit/rate-limit-service.ts | 6 ++---- backend/src/ee/services/rate-limit/rate-limit-types.ts | 1 - backend/src/server/config/rateLimiter.ts | 8 -------- backend/src/server/plugins/inject-rate-limits.ts | 9 ++++----- backend/src/server/routes/v1/identity-router.ts | 4 ++-- backend/src/server/routes/v2/organization-router.ts | 4 ++-- backend/src/server/routes/v2/project-router.ts | 4 ++-- 9 files changed, 18 insertions(+), 33 deletions(-) diff --git a/backend/src/ee/services/license/licence-fns.ts b/backend/src/ee/services/license/licence-fns.ts index ad6a98573..bd40f75cb 100644 --- a/backend/src/ee/services/license/licence-fns.ts +++ b/backend/src/ee/services/license/licence-fns.ts @@ -43,13 +43,8 @@ export const getDefaultOnPremFeatures = (): TFeatureSet => ({ externalKms: false, rateLimits: { readLimit: 60, - publicEndpointLimit: 30, writeLimit: 200, - secretsLimit: 40, - authRateLimit: 60, - inviteUserRateLimit: 30, - mfaRateLimit: 20, - creationLimit: 30 + secretsLimit: 40 } }); diff --git a/backend/src/ee/services/license/license-types.ts b/backend/src/ee/services/license/license-types.ts index 262547772..70db8e4d9 100644 --- a/backend/src/ee/services/license/license-types.ts +++ b/backend/src/ee/services/license/license-types.ts @@ -1,7 +1,5 @@ import { TOrgPermission } from "@app/lib/types"; -import { RateLimitConfiguration } from "../rate-limit/rate-limit-types"; - export enum InstanceType { OnPrem = "self-hosted", EnterpriseOnPrem = "enterprise-self-hosted", @@ -60,7 +58,11 @@ export type TFeatureSet = { caCrl: false; instanceUserManagement: false; externalKms: false; - rateLimits: RateLimitConfiguration; + rateLimits: { + readLimit: number; + writeLimit: number; + secretsLimit: number; + }; }; export type TOrgPlansTableDTO = { diff --git a/backend/src/ee/services/rate-limit/rate-limit-service.ts b/backend/src/ee/services/rate-limit/rate-limit-service.ts index b35b02dd4..208fa8428 100644 --- a/backend/src/ee/services/rate-limit/rate-limit-service.ts +++ b/backend/src/ee/services/rate-limit/rate-limit-service.ts @@ -13,8 +13,7 @@ let rateLimitMaxConfiguration: RateLimitConfiguration = { secretsLimit: 60, authRateLimit: 60, inviteUserRateLimit: 30, - mfaRateLimit: 20, - creationLimit: 30 + mfaRateLimit: 20 }; Object.freeze(rateLimitMaxConfiguration); @@ -67,8 +66,7 @@ export const rateLimitServiceFactory = ({ rateLimitDAL, licenseService }: TRateL secretsLimit: rateLimit.secretsRateLimit, authRateLimit: rateLimit.authRateLimit, inviteUserRateLimit: rateLimit.inviteUserRateLimit, - mfaRateLimit: rateLimit.mfaRateLimit, - creationLimit: rateLimit.creationLimit + mfaRateLimit: rateLimit.mfaRateLimit }; logger.info(`syncRateLimitConfiguration: rate limit configuration: %o`, newRateLimitMaxConfiguration); diff --git a/backend/src/ee/services/rate-limit/rate-limit-types.ts b/backend/src/ee/services/rate-limit/rate-limit-types.ts index 7d5859367..5a0b875a4 100644 --- a/backend/src/ee/services/rate-limit/rate-limit-types.ts +++ b/backend/src/ee/services/rate-limit/rate-limit-types.ts @@ -23,5 +23,4 @@ export type RateLimitConfiguration = { authRateLimit: number; inviteUserRateLimit: number; mfaRateLimit: number; - creationLimit: number; }; diff --git a/backend/src/server/config/rateLimiter.ts b/backend/src/server/config/rateLimiter.ts index cfadca9cc..bdbf80371 100644 --- a/backend/src/server/config/rateLimiter.ts +++ b/backend/src/server/config/rateLimiter.ts @@ -66,14 +66,6 @@ export const mfaRateLimit: RateLimitOptions = { } }; -export const creationLimit: RateLimitOptions = { - // identity, project, org - timeWindow: 60 * 1000, - hook: "preValidation", - max: (req) => req.rateLimits.creationLimit, - keyGenerator: (req) => req.realIp -}; - // Public endpoints to avoid brute force attacks export const publicEndpointLimit: RateLimitOptions = { // Read Shared Secrets diff --git a/backend/src/server/plugins/inject-rate-limits.ts b/backend/src/server/plugins/inject-rate-limits.ts index 49b95c761..1674ea542 100644 --- a/backend/src/server/plugins/inject-rate-limits.ts +++ b/backend/src/server/plugins/inject-rate-limits.ts @@ -27,13 +27,12 @@ export const injectRateLimits = fp(async (server) => { // we're using the null coalescing operator in order to handle outdated licenses req.rateLimits = { readLimit: rateLimits?.readLimit ?? instanceRateLimiterConfig.readLimit, - publicEndpointLimit: rateLimits?.publicEndpointLimit ?? instanceRateLimiterConfig.publicEndpointLimit, writeLimit: rateLimits?.writeLimit ?? instanceRateLimiterConfig.writeLimit, secretsLimit: rateLimits?.secretsLimit ?? instanceRateLimiterConfig.secretsLimit, - authRateLimit: rateLimits?.authRateLimit ?? instanceRateLimiterConfig.authRateLimit, - inviteUserRateLimit: rateLimits?.inviteUserRateLimit ?? instanceRateLimiterConfig.inviteUserRateLimit, - mfaRateLimit: rateLimits?.mfaRateLimit ?? instanceRateLimiterConfig.mfaRateLimit, - creationLimit: rateLimits?.creationLimit ?? instanceRateLimiterConfig.creationLimit + publicEndpointLimit: instanceRateLimiterConfig.publicEndpointLimit, + authRateLimit: instanceRateLimiterConfig.authRateLimit, + inviteUserRateLimit: instanceRateLimiterConfig.inviteUserRateLimit, + mfaRateLimit: instanceRateLimiterConfig.mfaRateLimit }; }); }); diff --git a/backend/src/server/routes/v1/identity-router.ts b/backend/src/server/routes/v1/identity-router.ts index b1cd6cd9d..23aca9625 100644 --- a/backend/src/server/routes/v1/identity-router.ts +++ b/backend/src/server/routes/v1/identity-router.ts @@ -3,7 +3,7 @@ import { z } from "zod"; import { IdentitiesSchema, IdentityOrgMembershipsSchema, OrgMembershipRole, OrgRolesSchema } from "@app/db/schemas"; import { EventType } from "@app/ee/services/audit-log/audit-log-types"; import { IDENTITIES } from "@app/lib/api-docs"; -import { creationLimit, readLimit, writeLimit } from "@app/server/config/rateLimiter"; +import { readLimit, writeLimit } from "@app/server/config/rateLimiter"; import { getTelemetryDistinctId } from "@app/server/lib/telemetry"; import { verifyAuth } from "@app/server/plugins/auth/verify-auth"; import { AuthMode } from "@app/services/auth/auth-type"; @@ -16,7 +16,7 @@ export const registerIdentityRouter = async (server: FastifyZodProvider) => { method: "POST", url: "/", config: { - rateLimit: creationLimit + rateLimit: writeLimit }, onRequest: verifyAuth([AuthMode.JWT, AuthMode.IDENTITY_ACCESS_TOKEN]), schema: { diff --git a/backend/src/server/routes/v2/organization-router.ts b/backend/src/server/routes/v2/organization-router.ts index 49488776b..e6ea094c3 100644 --- a/backend/src/server/routes/v2/organization-router.ts +++ b/backend/src/server/routes/v2/organization-router.ts @@ -9,7 +9,7 @@ import { UsersSchema } from "@app/db/schemas"; import { ORGANIZATIONS } from "@app/lib/api-docs"; -import { creationLimit, readLimit, writeLimit } from "@app/server/config/rateLimiter"; +import { readLimit, writeLimit } from "@app/server/config/rateLimiter"; import { verifyAuth } from "@app/server/plugins/auth/verify-auth"; import { ActorType, AuthMode } from "@app/services/auth/auth-type"; @@ -307,7 +307,7 @@ export const registerOrgRouter = async (server: FastifyZodProvider) => { method: "POST", url: "/", config: { - rateLimit: creationLimit + rateLimit: writeLimit }, schema: { body: z.object({ diff --git a/backend/src/server/routes/v2/project-router.ts b/backend/src/server/routes/v2/project-router.ts index 58ae9e293..8cfb2c19b 100644 --- a/backend/src/server/routes/v2/project-router.ts +++ b/backend/src/server/routes/v2/project-router.ts @@ -4,7 +4,7 @@ import { z } from "zod"; import { CertificateAuthoritiesSchema, CertificatesSchema, ProjectKeysSchema } from "@app/db/schemas"; import { EventType } from "@app/ee/services/audit-log/audit-log-types"; import { PROJECTS } from "@app/lib/api-docs"; -import { creationLimit, readLimit, writeLimit } from "@app/server/config/rateLimiter"; +import { readLimit, writeLimit } from "@app/server/config/rateLimiter"; import { getTelemetryDistinctId } from "@app/server/lib/telemetry"; import { verifyAuth } from "@app/server/plugins/auth/verify-auth"; import { AuthMode } from "@app/services/auth/auth-type"; @@ -142,7 +142,7 @@ export const registerProjectRouter = async (server: FastifyZodProvider) => { method: "POST", url: "/", config: { - rateLimit: creationLimit + rateLimit: writeLimit }, schema: { description: "Create a new project", From ba9219253771a4170596cda661d878adcdab72c6 Mon Sep 17 00:00:00 2001 From: Sheen Capadngan Date: Tue, 6 Aug 2024 19:41:09 +0800 Subject: [PATCH 15/71] misc: removed creation limits completely --- ...113425_remove-creation-limit-rate-limit.ts | 21 +++++++++++++++++ backend/src/db/schemas/rate-limit.ts | 1 - backend/src/ee/routes/v1/rate-limit-router.ts | 1 - .../services/rate-limit/rate-limit-types.ts | 1 - frontend/src/hooks/api/rateLimit/types.ts | 1 - .../admin/DashboardPage/RateLimitPanel.tsx | 23 ------------------- 6 files changed, 21 insertions(+), 27 deletions(-) create mode 100644 backend/src/db/migrations/20240806113425_remove-creation-limit-rate-limit.ts diff --git a/backend/src/db/migrations/20240806113425_remove-creation-limit-rate-limit.ts b/backend/src/db/migrations/20240806113425_remove-creation-limit-rate-limit.ts new file mode 100644 index 000000000..d82e4d65d --- /dev/null +++ b/backend/src/db/migrations/20240806113425_remove-creation-limit-rate-limit.ts @@ -0,0 +1,21 @@ +import { Knex } from "knex"; + +import { TableName } from "../schemas"; + +export async function up(knex: Knex): Promise { + const hasCreationLimitCol = await knex.schema.hasColumn(TableName.RateLimit, "creationLimit"); + await knex.schema.alterTable(TableName.RateLimit, (t) => { + if (hasCreationLimitCol) { + t.dropColumn("creationLimit"); + } + }); +} + +export async function down(knex: Knex): Promise { + const hasCreationLimitCol = await knex.schema.hasColumn(TableName.RateLimit, "creationLimit"); + await knex.schema.alterTable(TableName.RateLimit, (t) => { + if (!hasCreationLimitCol) { + t.integer("creationLimit").defaultTo(30).notNullable(); + } + }); +} diff --git a/backend/src/db/schemas/rate-limit.ts b/backend/src/db/schemas/rate-limit.ts index 86b8776cc..233f6cdbc 100644 --- a/backend/src/db/schemas/rate-limit.ts +++ b/backend/src/db/schemas/rate-limit.ts @@ -15,7 +15,6 @@ export const RateLimitSchema = z.object({ authRateLimit: z.number().default(60), inviteUserRateLimit: z.number().default(30), mfaRateLimit: z.number().default(20), - creationLimit: z.number().default(30), publicEndpointLimit: z.number().default(30), createdAt: z.date(), updatedAt: z.date() diff --git a/backend/src/ee/routes/v1/rate-limit-router.ts b/backend/src/ee/routes/v1/rate-limit-router.ts index 2b08a0c32..66ea62ece 100644 --- a/backend/src/ee/routes/v1/rate-limit-router.ts +++ b/backend/src/ee/routes/v1/rate-limit-router.ts @@ -58,7 +58,6 @@ export const registerRateLimitRouter = async (server: FastifyZodProvider) => { authRateLimit: z.number(), inviteUserRateLimit: z.number(), mfaRateLimit: z.number(), - creationLimit: z.number(), publicEndpointLimit: z.number() }), response: { diff --git a/backend/src/ee/services/rate-limit/rate-limit-types.ts b/backend/src/ee/services/rate-limit/rate-limit-types.ts index 5a0b875a4..d924dce51 100644 --- a/backend/src/ee/services/rate-limit/rate-limit-types.ts +++ b/backend/src/ee/services/rate-limit/rate-limit-types.ts @@ -5,7 +5,6 @@ export type TRateLimitUpdateDTO = { authRateLimit: number; inviteUserRateLimit: number; mfaRateLimit: number; - creationLimit: number; publicEndpointLimit: number; }; diff --git a/frontend/src/hooks/api/rateLimit/types.ts b/frontend/src/hooks/api/rateLimit/types.ts index 5697fc298..53b075ce4 100644 --- a/frontend/src/hooks/api/rateLimit/types.ts +++ b/frontend/src/hooks/api/rateLimit/types.ts @@ -5,6 +5,5 @@ export type TRateLimit = { authRateLimit: number; inviteUserRateLimit: number; mfaRateLimit: number; - creationLimit: number; publicEndpointLimit: number; }; diff --git a/frontend/src/views/admin/DashboardPage/RateLimitPanel.tsx b/frontend/src/views/admin/DashboardPage/RateLimitPanel.tsx index 3979e002b..c1c987077 100644 --- a/frontend/src/views/admin/DashboardPage/RateLimitPanel.tsx +++ b/frontend/src/views/admin/DashboardPage/RateLimitPanel.tsx @@ -15,7 +15,6 @@ const formSchema = z.object({ authRateLimit: z.number(), inviteUserRateLimit: z.number(), mfaRateLimit: z.number(), - creationLimit: z.number(), publicEndpointLimit: z.number() }); @@ -41,7 +40,6 @@ export const RateLimitPanel = () => { authRateLimit: rateLimit?.authRateLimit ?? 60, inviteUserRateLimit: rateLimit?.inviteUserRateLimit ?? 30, mfaRateLimit: rateLimit?.mfaRateLimit ?? 20, - creationLimit: rateLimit?.creationLimit ?? 30, publicEndpointLimit: rateLimit?.publicEndpointLimit ?? 30 } }); @@ -60,7 +58,6 @@ export const RateLimitPanel = () => { authRateLimit, inviteUserRateLimit, mfaRateLimit, - creationLimit, publicEndpointLimit } = formData; @@ -71,7 +68,6 @@ export const RateLimitPanel = () => { authRateLimit, inviteUserRateLimit, mfaRateLimit, - creationLimit, publicEndpointLimit }); createNotification({ @@ -210,25 +206,6 @@ export const RateLimitPanel = () => { )} /> - ( - - field.onChange(Number(e.target.value))} - /> - - )} - /> Date: Tue, 6 Aug 2024 21:06:14 +0800 Subject: [PATCH 16/71] misc: made local workspace file not required if using auth token --- cli/packages/cmd/secrets.go | 24 +++++++++++++----------- 1 file changed, 13 insertions(+), 11 deletions(-) diff --git a/cli/packages/cmd/secrets.go b/cli/packages/cmd/secrets.go index 2894765ae..1ddfcc135 100644 --- a/cli/packages/cmd/secrets.go +++ b/cli/packages/cmd/secrets.go @@ -155,22 +155,24 @@ var secretsSetCmd = &cobra.Command{ DisableFlagsInUseLine: true, Args: cobra.MinimumNArgs(1), Run: func(cmd *cobra.Command, args []string) { - util.RequireLocalWorkspaceFile() - - environmentName, _ := cmd.Flags().GetString("env") - if !cmd.Flags().Changed("env") { - environmentFromWorkspace := util.GetEnvFromWorkspaceFile() - if environmentFromWorkspace != "" { - environmentName = environmentFromWorkspace - } - } - token, err := util.GetInfisicalToken(cmd) if err != nil { util.HandleError(err, "Unable to parse flag") } - projectId, err := cmd.Flags().GetString("projectId") + if (token == nil) { + util.RequireLocalWorkspaceFile() + } + + environmentName, _ := cmd.Flags().GetString("env") + if !cmd.Flags().Changed("env") { + environmentFromWorkspace := util.GetEnvFromWorkspaceFile() + if environmentFromWorkspace != "" { + environmentName = environmentFromWorkspace + } + } + + projectId, err := cmd.Flags().GetString("projectId") if err != nil { util.HandleError(err, "Unable to parse flag") } From 14c1b4f07b2c098026d9a0ca3977552d8497897a Mon Sep 17 00:00:00 2001 From: Sheen Capadngan Date: Tue, 6 Aug 2024 21:21:45 +0800 Subject: [PATCH 17/71] misc: hide not found text when flag plain is enabled --- cli/packages/cmd/secrets.go | 12 +++++++----- 1 file changed, 7 insertions(+), 5 deletions(-) diff --git a/cli/packages/cmd/secrets.go b/cli/packages/cmd/secrets.go index 1ddfcc135..2addf1c83 100644 --- a/cli/packages/cmd/secrets.go +++ b/cli/packages/cmd/secrets.go @@ -415,11 +415,13 @@ func getSecretsByNames(cmd *cobra.Command, args []string) { if value, ok := secretsMap[secretKeyFromArg]; ok { requestedSecrets = append(requestedSecrets, value) } else { - requestedSecrets = append(requestedSecrets, models.SingleEnvironmentVariable{ - Key: secretKeyFromArg, - Type: "*not found*", - Value: "*not found*", - }) + if !(plainOutput || showOnlyValue) { + requestedSecrets = append(requestedSecrets, models.SingleEnvironmentVariable{ + Key: secretKeyFromArg, + Type: "*not found*", + Value: "*not found*", + }) + } } } From 2a1cfe15b4ee6ecf8ac6f0e20403dc47a77c7890 Mon Sep 17 00:00:00 2001 From: Maidul Islam Date: Tue, 6 Aug 2024 10:07:41 -0400 Subject: [PATCH 18/71] update text when secrets deleted after integ delete --- .../components/IntegrationsSection/IntegrationsSection.tsx | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/frontend/src/views/IntegrationsPage/components/IntegrationsSection/IntegrationsSection.tsx b/frontend/src/views/IntegrationsPage/components/IntegrationsSection/IntegrationsSection.tsx index 19f21eb1a..0be10f129 100644 --- a/frontend/src/views/IntegrationsPage/components/IntegrationsSection/IntegrationsSection.tsx +++ b/frontend/src/views/IntegrationsPage/components/IntegrationsSection/IntegrationsSection.tsx @@ -311,7 +311,7 @@ export const IntegrationsSection = ({ checkIndicatorBg="text-white" onCheckedChange={() => setShouldDeleteSecrets.toggle()} > - Delete secrets in destination + Delete previously synced secrets from the destination
)} @@ -321,7 +321,7 @@ export const IntegrationsSection = ({ title={`Are you sure you also want to delete secrets on ${ (popUp?.deleteConfirmation.data as TIntegration)?.integration }?`} - subTitle="By confirming, all secrets managed by this integration will be deleted in the destination. This action is irreversible." + subTitle="By confirming, you acknowledge that all secrets managed by this integration will be removed from the destination. This action is irreversible." onChange={(isOpen) => handlePopUpToggle("deleteSecretsConfirmation", isOpen)} deleteKey="confirm" onDeleteApproved={async () => { From d1c142e5b121d1cbacfe43a785d65235ee0ad579 Mon Sep 17 00:00:00 2001 From: Maidul Islam Date: Tue, 6 Aug 2024 12:39:06 -0400 Subject: [PATCH 19/71] patch findProjectUserWorkspaceKey --- backend/src/services/project-bot/project-bot-dal.ts | 1 + 1 file changed, 1 insertion(+) diff --git a/backend/src/services/project-bot/project-bot-dal.ts b/backend/src/services/project-bot/project-bot-dal.ts index 81c177d21..ecb23f78b 100644 --- a/backend/src/services/project-bot/project-bot-dal.ts +++ b/backend/src/services/project-bot/project-bot-dal.ts @@ -46,6 +46,7 @@ export const projectBotDALFactory = (db: TDbClient) => { const doc = await db .replicaNode()(TableName.ProjectMembership) .where(`${TableName.ProjectMembership}.projectId` as "projectId", projectId) + .where(`${TableName.ProjectKeys}.projectId` as "projectId", projectId) .where(`${TableName.Users}.isGhost` as "isGhost", false) .join(TableName.Users, `${TableName.ProjectMembership}.userId`, `${TableName.Users}.id`) .join(TableName.ProjectKeys, `${TableName.ProjectMembership}.userId`, `${TableName.ProjectKeys}.receiverId`) From 6f4be3e25a89a8939982022bb2d31c03591a2adb Mon Sep 17 00:00:00 2001 From: = Date: Wed, 7 Aug 2024 13:14:39 +0530 Subject: [PATCH 20/71] feat: removed name from tag and stricter slugification for tag endpoint --- .../20240806185442_drop-tag-name.ts | 21 +++++++++++++++ backend/src/db/schemas/secret-tags.ts | 1 - .../secret-approval-request-secret-dal.ts | 8 +++--- .../services/secret-snapshot/snapshot-dal.ts | 8 +++--- .../src/server/routes/v1/secret-tag-router.ts | 26 ++++++++++++++----- .../services/secret-tag/secret-tag-service.ts | 20 ++++---------- .../services/secret-tag/secret-tag-types.ts | 2 -- .../secret-v2-bridge/secret-v2-bridge-dal.ts | 22 +++++++--------- backend/src/services/secret/secret-dal.ts | 19 ++++++-------- backend/src/services/secret/secret-fns.ts | 3 +-- backend/src/services/secret/secret-service.ts | 2 +- 11 files changed, 73 insertions(+), 59 deletions(-) create mode 100644 backend/src/db/migrations/20240806185442_drop-tag-name.ts diff --git a/backend/src/db/migrations/20240806185442_drop-tag-name.ts b/backend/src/db/migrations/20240806185442_drop-tag-name.ts new file mode 100644 index 000000000..db85ab216 --- /dev/null +++ b/backend/src/db/migrations/20240806185442_drop-tag-name.ts @@ -0,0 +1,21 @@ +import { Knex } from "knex"; + +import { TableName } from "../schemas"; + +export async function up(knex: Knex): Promise { + const hasNameField = await knex.schema.hasColumn(TableName.SecretTag, "name"); + if (hasNameField) { + await knex.schema.alterTable(TableName.SecretTag, (t) => { + t.dropColumn("name"); + }); + } +} + +export async function down(knex: Knex): Promise { + const hasNameField = await knex.schema.hasColumn(TableName.SecretTag, "name"); + if (!hasNameField) { + await knex.schema.alterTable(TableName.SecretTag, (t) => { + t.string("name"); + }); + } +} diff --git a/backend/src/db/schemas/secret-tags.ts b/backend/src/db/schemas/secret-tags.ts index 04bb7b752..7ba7204a4 100644 --- a/backend/src/db/schemas/secret-tags.ts +++ b/backend/src/db/schemas/secret-tags.ts @@ -9,7 +9,6 @@ import { TImmutableDBKeys } from "./models"; export const SecretTagsSchema = z.object({ id: z.string().uuid(), - name: z.string(), slug: z.string(), color: z.string().nullable().optional(), createdAt: z.date(), diff --git a/backend/src/ee/services/secret-approval-request/secret-approval-request-secret-dal.ts b/backend/src/ee/services/secret-approval-request/secret-approval-request-secret-dal.ts index b827f6a21..0f24c75b3 100644 --- a/backend/src/ee/services/secret-approval-request/secret-approval-request-secret-dal.ts +++ b/backend/src/ee/services/secret-approval-request/secret-approval-request-secret-dal.ts @@ -124,9 +124,9 @@ export const secretApprovalRequestSecretDALFactory = (db: TDbClient) => { { key: "tagJnId", label: "tags" as const, - mapper: ({ tagId: id, tagName: name, tagSlug: slug, tagColor: color }) => ({ + mapper: ({ tagId: id, tagSlug: slug, tagColor: color }) => ({ id, - name, + name: slug, slug, color }) @@ -292,9 +292,9 @@ export const secretApprovalRequestSecretDALFactory = (db: TDbClient) => { { key: "tagJnId", label: "tags" as const, - mapper: ({ tagId: id, tagName: name, tagSlug: slug, tagColor: color }) => ({ + mapper: ({ tagId: id, tagSlug: slug, tagColor: color }) => ({ id, - name, + name: slug, slug, color }) diff --git a/backend/src/ee/services/secret-snapshot/snapshot-dal.ts b/backend/src/ee/services/secret-snapshot/snapshot-dal.ts index 8e5014fdd..cee2292ad 100644 --- a/backend/src/ee/services/secret-snapshot/snapshot-dal.ts +++ b/backend/src/ee/services/secret-snapshot/snapshot-dal.ts @@ -377,9 +377,9 @@ export const snapshotDALFactory = (db: TDbClient) => { { key: "tagVersionId", label: "tags" as const, - mapper: ({ tagId: id, tagName: name, tagSlug: slug, tagColor: color, tagVersionId: vId }) => ({ + mapper: ({ tagId: id, tagSlug: slug, tagColor: color, tagVersionId: vId }) => ({ id, - name, + name: slug, slug, color, vId @@ -532,9 +532,9 @@ export const snapshotDALFactory = (db: TDbClient) => { { key: "tagVersionId", label: "tags" as const, - mapper: ({ tagId: id, tagName: name, tagSlug: slug, tagColor: color, tagVersionId: vId }) => ({ + mapper: ({ tagId: id, tagSlug: slug, tagColor: color, tagVersionId: vId }) => ({ id, - name, + name: slug, slug, color, vId diff --git a/backend/src/server/routes/v1/secret-tag-router.ts b/backend/src/server/routes/v1/secret-tag-router.ts index ce92409f6..4786548c6 100644 --- a/backend/src/server/routes/v1/secret-tag-router.ts +++ b/backend/src/server/routes/v1/secret-tag-router.ts @@ -1,3 +1,4 @@ +import slugify from "@sindresorhus/slugify"; import { z } from "zod"; import { SecretTagsSchema } from "@app/db/schemas"; @@ -49,7 +50,8 @@ export const registerSecretTagRouter = async (server: FastifyZodProvider) => { }), response: { 200: z.object({ - workspaceTag: SecretTagsSchema + // akhilmhdh: for terraform backward compatiability + workspaceTag: SecretTagsSchema.extend({ name: z.string() }) }) } }, @@ -79,7 +81,7 @@ export const registerSecretTagRouter = async (server: FastifyZodProvider) => { }), response: { 200: z.object({ - workspaceTag: SecretTagsSchema + workspaceTag: SecretTagsSchema.extend({ name: z.string() }) }) } }, @@ -108,8 +110,14 @@ export const registerSecretTagRouter = async (server: FastifyZodProvider) => { projectId: z.string().trim().describe(SECRET_TAGS.CREATE.projectId) }), body: z.object({ - name: z.string().trim().describe(SECRET_TAGS.CREATE.name), - slug: z.string().trim().describe(SECRET_TAGS.CREATE.slug), + slug: z + .string() + .toLowerCase() + .trim() + .describe(SECRET_TAGS.CREATE.slug) + .refine((v) => slugify(v) === v, { + message: "Invalid slug. Should contain only characters, numbers and hyphen." + }), color: z.string().trim().describe(SECRET_TAGS.CREATE.color) }), response: { @@ -144,8 +152,14 @@ export const registerSecretTagRouter = async (server: FastifyZodProvider) => { tagId: z.string().trim().describe(SECRET_TAGS.UPDATE.tagId) }), body: z.object({ - name: z.string().trim().describe(SECRET_TAGS.UPDATE.name), - slug: z.string().trim().describe(SECRET_TAGS.UPDATE.slug), + slug: z + .string() + .toLowerCase() + .trim() + .describe(SECRET_TAGS.UPDATE.slug) + .refine((v) => slugify(v) === v, { + message: "Invalid slug. Should contain only characters, numbers and hyphen." + }), color: z.string().trim().describe(SECRET_TAGS.UPDATE.color) }), response: { diff --git a/backend/src/services/secret-tag/secret-tag-service.ts b/backend/src/services/secret-tag/secret-tag-service.ts index 76b57dc90..dd595f046 100644 --- a/backend/src/services/secret-tag/secret-tag-service.ts +++ b/backend/src/services/secret-tag/secret-tag-service.ts @@ -22,16 +22,7 @@ type TSecretTagServiceFactoryDep = { export type TSecretTagServiceFactory = ReturnType; export const secretTagServiceFactory = ({ secretTagDAL, permissionService }: TSecretTagServiceFactoryDep) => { - const createTag = async ({ - name, - slug, - actor, - color, - actorId, - actorOrgId, - actorAuthMethod, - projectId - }: TCreateTagDTO) => { + const createTag = async ({ slug, actor, color, actorId, actorOrgId, actorAuthMethod, projectId }: TCreateTagDTO) => { const { permission } = await permissionService.getProjectPermission( actor, actorId, @@ -46,7 +37,6 @@ export const secretTagServiceFactory = ({ secretTagDAL, permissionService }: TSe const newTag = await secretTagDAL.create({ projectId, - name, slug, color, createdBy: actorId, @@ -55,7 +45,7 @@ export const secretTagServiceFactory = ({ secretTagDAL, permissionService }: TSe return newTag; }; - const updateTag = async ({ actorId, actor, actorOrgId, actorAuthMethod, id, name, color, slug }: TUpdateTagDTO) => { + const updateTag = async ({ actorId, actor, actorOrgId, actorAuthMethod, id, color, slug }: TUpdateTagDTO) => { const tag = await secretTagDAL.findById(id); if (!tag) throw new BadRequestError({ message: "Tag doesn't exist" }); @@ -73,7 +63,7 @@ export const secretTagServiceFactory = ({ secretTagDAL, permissionService }: TSe ); ForbiddenError.from(permission).throwUnlessCan(ProjectPermissionActions.Edit, ProjectPermissionSub.Tags); - const updatedTag = await secretTagDAL.updateById(tag.id, { name, color, slug }); + const updatedTag = await secretTagDAL.updateById(tag.id, { color, slug }); return updatedTag; }; @@ -107,7 +97,7 @@ export const secretTagServiceFactory = ({ secretTagDAL, permissionService }: TSe ); ForbiddenError.from(permission).throwUnlessCan(ProjectPermissionActions.Read, ProjectPermissionSub.Tags); - return tag; + return { ...tag, name: tag.slug }; }; const getTagBySlug = async ({ actorId, actor, actorOrgId, actorAuthMethod, slug, projectId }: TGetTagBySlugDTO) => { @@ -123,7 +113,7 @@ export const secretTagServiceFactory = ({ secretTagDAL, permissionService }: TSe ); ForbiddenError.from(permission).throwUnlessCan(ProjectPermissionActions.Read, ProjectPermissionSub.Tags); - return tag; + return { ...tag, name: tag.slug }; }; const getProjectTags = async ({ actor, actorId, actorOrgId, actorAuthMethod, projectId }: TListProjectTagsDTO) => { diff --git a/backend/src/services/secret-tag/secret-tag-types.ts b/backend/src/services/secret-tag/secret-tag-types.ts index f2ace0901..ede0c55a3 100644 --- a/backend/src/services/secret-tag/secret-tag-types.ts +++ b/backend/src/services/secret-tag/secret-tag-types.ts @@ -1,14 +1,12 @@ import { TProjectPermission } from "@app/lib/types"; export type TCreateTagDTO = { - name: string; color: string; slug: string; } & TProjectPermission; export type TUpdateTagDTO = { id: string; - name?: string; slug?: string; color?: string; } & Omit; diff --git a/backend/src/services/secret-v2-bridge/secret-v2-bridge-dal.ts b/backend/src/services/secret-v2-bridge/secret-v2-bridge-dal.ts index b41e2c250..53ad29b17 100644 --- a/backend/src/services/secret-v2-bridge/secret-v2-bridge-dal.ts +++ b/backend/src/services/secret-v2-bridge/secret-v2-bridge-dal.ts @@ -136,7 +136,6 @@ export const secretV2BridgeDALFactory = (db: TDbClient) => { .select(db.ref("id").withSchema(TableName.SecretTag).as("tagId")) .select(db.ref("color").withSchema(TableName.SecretTag).as("tagColor")) .select(db.ref("slug").withSchema(TableName.SecretTag).as("tagSlug")) - .select(db.ref("name").withSchema(TableName.SecretTag).as("tagName")) .orderBy("id", "asc"); const data = sqlNestRelationships({ @@ -147,11 +146,11 @@ export const secretV2BridgeDALFactory = (db: TDbClient) => { { key: "tagId", label: "tags" as const, - mapper: ({ tagId: id, tagColor: color, tagSlug: slug, tagName: name }) => ({ + mapper: ({ tagId: id, tagColor: color, tagSlug: slug }) => ({ id, color, slug, - name + name: slug }) } ] @@ -169,14 +168,13 @@ export const secretV2BridgeDALFactory = (db: TDbClient) => { .where({ [`${TableName.SecretV2}Id` as const]: secretId }) .select(db.ref("id").withSchema(TableName.SecretTag).as("tagId")) .select(db.ref("color").withSchema(TableName.SecretTag).as("tagColor")) - .select(db.ref("slug").withSchema(TableName.SecretTag).as("tagSlug")) - .select(db.ref("name").withSchema(TableName.SecretTag).as("tagName")); + .select(db.ref("slug").withSchema(TableName.SecretTag).as("tagSlug")); return tags.map((el) => ({ id: el.tagId, color: el.tagColor, slug: el.tagSlug, - name: el.tagName + name: el.tagSlug })); } catch (error) { throw new DatabaseError({ error, name: "get secret tags" }); @@ -210,7 +208,6 @@ export const secretV2BridgeDALFactory = (db: TDbClient) => { .select(db.ref("id").withSchema(TableName.SecretTag).as("tagId")) .select(db.ref("color").withSchema(TableName.SecretTag).as("tagColor")) .select(db.ref("slug").withSchema(TableName.SecretTag).as("tagSlug")) - .select(db.ref("name").withSchema(TableName.SecretTag).as("tagName")) .orderBy("id", "asc"); const data = sqlNestRelationships({ @@ -221,11 +218,11 @@ export const secretV2BridgeDALFactory = (db: TDbClient) => { { key: "tagId", label: "tags" as const, - mapper: ({ tagId: id, tagColor: color, tagSlug: slug, tagName: name }) => ({ + mapper: ({ tagId: id, tagColor: color, tagSlug: slug }) => ({ id, color, slug, - name + name: slug }) } ] @@ -350,8 +347,7 @@ export const secretV2BridgeDALFactory = (db: TDbClient) => { .select(selectAllTableCols(TableName.SecretV2)) .select(db.ref("id").withSchema(TableName.SecretTag).as("tagId")) .select(db.ref("color").withSchema(TableName.SecretTag).as("tagColor")) - .select(db.ref("slug").withSchema(TableName.SecretTag).as("tagSlug")) - .select(db.ref("name").withSchema(TableName.SecretTag).as("tagName")); + .select(db.ref("slug").withSchema(TableName.SecretTag).as("tagSlug")); const docs = sqlNestRelationships({ data: rawDocs, key: "id", @@ -360,11 +356,11 @@ export const secretV2BridgeDALFactory = (db: TDbClient) => { { key: "tagId", label: "tags" as const, - mapper: ({ tagId: id, tagColor: color, tagSlug: slug, tagName: name }) => ({ + mapper: ({ tagId: id, tagColor: color, tagSlug: slug }) => ({ id, color, slug, - name + name: slug }) } ] diff --git a/backend/src/services/secret/secret-dal.ts b/backend/src/services/secret/secret-dal.ts index aac01d393..c3d9eef73 100644 --- a/backend/src/services/secret/secret-dal.ts +++ b/backend/src/services/secret/secret-dal.ts @@ -123,7 +123,6 @@ export const secretDALFactory = (db: TDbClient) => { .select(db.ref("id").withSchema(TableName.SecretTag).as("tagId")) .select(db.ref("color").withSchema(TableName.SecretTag).as("tagColor")) .select(db.ref("slug").withSchema(TableName.SecretTag).as("tagSlug")) - .select(db.ref("name").withSchema(TableName.SecretTag).as("tagName")) .orderBy("id", "asc"); const data = sqlNestRelationships({ data: secs, @@ -133,11 +132,11 @@ export const secretDALFactory = (db: TDbClient) => { { key: "tagId", label: "tags" as const, - mapper: ({ tagId: id, tagColor: color, tagSlug: slug, tagName: name }) => ({ + mapper: ({ tagId: id, tagColor: color, tagSlug: slug }) => ({ id, color, slug, - name + name: slug }) } ] @@ -155,14 +154,13 @@ export const secretDALFactory = (db: TDbClient) => { .where({ [`${TableName.Secret}Id` as const]: secretId }) .select(db.ref("id").withSchema(TableName.SecretTag).as("tagId")) .select(db.ref("color").withSchema(TableName.SecretTag).as("tagColor")) - .select(db.ref("slug").withSchema(TableName.SecretTag).as("tagSlug")) - .select(db.ref("name").withSchema(TableName.SecretTag).as("tagName")); + .select(db.ref("slug").withSchema(TableName.SecretTag).as("tagSlug")); return tags.map((el) => ({ id: el.tagId, color: el.tagColor, slug: el.tagSlug, - name: el.tagName + name: el.tagSlug })); } catch (error) { throw new DatabaseError({ error, name: "get secret tags" }); @@ -188,7 +186,6 @@ export const secretDALFactory = (db: TDbClient) => { .select(db.ref("id").withSchema(TableName.SecretTag).as("tagId")) .select(db.ref("color").withSchema(TableName.SecretTag).as("tagColor")) .select(db.ref("slug").withSchema(TableName.SecretTag).as("tagSlug")) - .select(db.ref("name").withSchema(TableName.SecretTag).as("tagName")) .orderBy("id", "asc"); const data = sqlNestRelationships({ data: secs, @@ -198,11 +195,11 @@ export const secretDALFactory = (db: TDbClient) => { { key: "tagId", label: "tags" as const, - mapper: ({ tagId: id, tagColor: color, tagSlug: slug, tagName: name }) => ({ + mapper: ({ tagId: id, tagColor: color, tagSlug: slug }) => ({ id, color, slug, - name + name: slug }) } ] @@ -328,11 +325,11 @@ export const secretDALFactory = (db: TDbClient) => { { key: "tagId", label: "tags" as const, - mapper: ({ tagId: id, tagColor: color, tagSlug: slug, tagName: name }) => ({ + mapper: ({ tagId: id, tagColor: color, tagSlug: slug }) => ({ id, color, slug, - name + name: slug }) } ] diff --git a/backend/src/services/secret/secret-fns.ts b/backend/src/services/secret/secret-fns.ts index 662067645..d41770846 100644 --- a/backend/src/services/secret/secret-fns.ts +++ b/backend/src/services/secret/secret-fns.ts @@ -370,7 +370,6 @@ export const decryptSecretRaw = ( id: string; slug: string; color?: string | null; - name: string; }[]; }, key: string @@ -412,7 +411,7 @@ export const decryptSecretRaw = ( _id: secret.id, id: secret.id, user: secret.userId, - tags: secret.tags, + tags: secret.tags?.map((el) => ({ ...el, name: el.slug })), skipMultilineEncoding: secret.skipMultilineEncoding, secretReminderRepeatDays: secret.secretReminderRepeatDays, secretReminderNote: secret.secretReminderNote, diff --git a/backend/src/services/secret/secret-service.ts b/backend/src/services/secret/secret-service.ts index 35c1de312..f338d1fda 100644 --- a/backend/src/services/secret/secret-service.ts +++ b/backend/src/services/secret/secret-service.ts @@ -2086,7 +2086,7 @@ export const secretServiceFactory = ({ return { ...updatedSecret[0], - tags: [...existingSecretTags, ...tags].map((t) => ({ id: t.id, slug: t.slug, name: t.name, color: t.color })) + tags: [...existingSecretTags, ...tags].map((t) => ({ id: t.id, slug: t.slug, color: t.color })) }; }; From 15fb01089b4eb43509d45831947ebe0819ffd1b0 Mon Sep 17 00:00:00 2001 From: = Date: Wed, 7 Aug 2024 13:15:53 +0530 Subject: [PATCH 21/71] feat: name removal in tag respective changes in frontend --- .../tags/CreateTagModal/CreateTagModal.tsx | 22 +++++++++------ frontend/src/hooks/api/tags/queries.tsx | 3 +-- frontend/src/hooks/api/tags/types.ts | 2 -- .../SecretApprovalRequestChangeItem.tsx | 12 ++++----- .../components/ActionBar/ActionBar.tsx | 4 +-- .../SecretListView/SecretDetaiSidebar.tsx | 8 +++--- .../components/SecretListView/SecretItem.tsx | 4 +-- .../SecretListView/SecretListView.utils.ts | 1 - .../components/SnapshotView/SecretItem.tsx | 8 +++--- .../SecretTagsSection/AddSecretTagModal.tsx | 27 ++++++++++--------- .../SecretTagsSection/SecretTagsTable.tsx | 8 +++--- 11 files changed, 50 insertions(+), 49 deletions(-) diff --git a/frontend/src/components/tags/CreateTagModal/CreateTagModal.tsx b/frontend/src/components/tags/CreateTagModal/CreateTagModal.tsx index c65229a86..5eabb093d 100644 --- a/frontend/src/components/tags/CreateTagModal/CreateTagModal.tsx +++ b/frontend/src/components/tags/CreateTagModal/CreateTagModal.tsx @@ -3,6 +3,7 @@ import { Controller, useForm } from "react-hook-form"; import { faCheck } from "@fortawesome/free-solid-svg-icons"; import { FontAwesomeIcon } from "@fortawesome/react-fontawesome"; import { zodResolver } from "@hookform/resolvers/zod"; +import slugify from "@sindresorhus/slugify"; import { z } from "zod"; import { createNotification } from "@app/components/notifications"; @@ -87,7 +88,13 @@ type Props = { }; const createTagSchema = z.object({ - name: z.string().trim(), + slug: z + .string() + .trim() + .toLowerCase() + .refine((v) => slugify(v) === v, { + message: "Invalid slug. Should contain only characters, numbers and hyphen." + }), color: z.string().trim() }); @@ -110,7 +117,7 @@ export const CreateTagModal = ({ isOpen, onToggle }: Props): JSX.Element => { } = useForm({ resolver: zodResolver(createTagSchema) }); - + const { currentWorkspace } = useWorkspace(); const workspaceId = currentWorkspace?.id || ""; @@ -123,13 +130,12 @@ export const CreateTagModal = ({ isOpen, onToggle }: Props): JSX.Element => { if (!isOpen) reset(); }, [isOpen]); - const onFormSubmit = async ({ name, color }: FormData) => { + const onFormSubmit = async ({ slug, color }: FormData) => { try { await createWsTag({ workspaceID: workspaceId, - tagName: name, tagColor: color, - tagSlug: name.replace(" ", "_") + tagSlug: slug }); onToggle(false); reset(); @@ -155,11 +161,11 @@ export const CreateTagModal = ({ isOpen, onToggle }: Props): JSX.Element => {
( - - + + )} /> diff --git a/frontend/src/hooks/api/tags/queries.tsx b/frontend/src/hooks/api/tags/queries.tsx index 311ed0941..d1c4b533d 100644 --- a/frontend/src/hooks/api/tags/queries.tsx +++ b/frontend/src/hooks/api/tags/queries.tsx @@ -28,11 +28,10 @@ export const useCreateWsTag = () => { const queryClient = useQueryClient(); return useMutation({ - mutationFn: async ({ workspaceID, tagName, tagColor, tagSlug }) => { + mutationFn: async ({ workspaceID, tagColor, tagSlug }) => { const { data } = await apiRequest.post<{ workspaceTag: WsTag }>( `/api/v1/workspace/${workspaceID}/tags`, { - name: tagName, color: tagColor || "", slug: tagSlug } diff --git a/frontend/src/hooks/api/tags/types.ts b/frontend/src/hooks/api/tags/types.ts index 9b4f70587..72d710cfa 100644 --- a/frontend/src/hooks/api/tags/types.ts +++ b/frontend/src/hooks/api/tags/types.ts @@ -2,7 +2,6 @@ export type UserWsTags = WsTag[]; export type WsTag = { id: string; - name: string; slug: string; color?: string; projectId: string; @@ -16,7 +15,6 @@ export type WorkspaceTag = { id: string; name: string; slug: string }; export type CreateTagDTO = { workspaceID: string; tagSlug: string; - tagName: string; tagColor: string; }; diff --git a/frontend/src/views/SecretApprovalPage/components/SecretApprovalRequest/components/SecretApprovalRequestChangeItem.tsx b/frontend/src/views/SecretApprovalPage/components/SecretApprovalRequest/components/SecretApprovalRequestChangeItem.tsx index 3fbe4357b..6adf591e7 100644 --- a/frontend/src/views/SecretApprovalPage/components/SecretApprovalRequest/components/SecretApprovalRequestChangeItem.tsx +++ b/frontend/src/views/SecretApprovalPage/components/SecretApprovalRequest/components/SecretApprovalRequestChangeItem.tsx @@ -97,7 +97,7 @@ export const SecretApprovalRequestChangeItem = ({ {secretVersion?.secretComment} - {secretVersion?.tags?.map(({ name, id: tagId, color }) => ( + {secretVersion?.tags?.map(({ slug, id: tagId, color }) => ( -
{name}
+
{slug}
))} @@ -119,7 +119,7 @@ export const SecretApprovalRequestChangeItem = ({ {newVersion?.secretComment} - {newVersion?.tags?.map(({ name, id: tagId, color }) => ( + {newVersion?.tags?.map(({ slug, id: tagId, color }) => ( -
{name}
+
{slug}
))} @@ -157,7 +157,7 @@ export const SecretApprovalRequestChangeItem = ({ {(op === CommitType.CREATE ? newVersion?.tags : secretVersion?.tags)?.map( - ({ name, id: tagId, color }) => ( + ({ slug, id: tagId, color }) => ( -
{name}
+
{slug}
) )} diff --git a/frontend/src/views/SecretMainPage/components/ActionBar/ActionBar.tsx b/frontend/src/views/SecretMainPage/components/ActionBar/ActionBar.tsx index 705234f63..65cb0389f 100644 --- a/frontend/src/views/SecretMainPage/components/ActionBar/ActionBar.tsx +++ b/frontend/src/views/SecretMainPage/components/ActionBar/ActionBar.tsx @@ -327,7 +327,7 @@ export const ActionBar = ({ Apply tags to filter secrets - {tags.map(({ id, name, color }) => ( + {tags.map(({ id, slug, color }) => ( { evt.preventDefault(); @@ -342,7 +342,7 @@ export const ActionBar = ({ className="mr-2 h-2 w-2 rounded-full" style={{ background: color || "#bec2c8" }} /> - {name} + {slug} ))} diff --git a/frontend/src/views/SecretMainPage/components/SecretListView/SecretDetaiSidebar.tsx b/frontend/src/views/SecretMainPage/components/SecretListView/SecretDetaiSidebar.tsx index 2e983bda6..e2a1c3b87 100644 --- a/frontend/src/views/SecretMainPage/components/SecretListView/SecretDetaiSidebar.tsx +++ b/frontend/src/views/SecretMainPage/components/SecretListView/SecretDetaiSidebar.tsx @@ -254,7 +254,7 @@ export const SecretDetailSidebar = ({ )}
- {fields.map(({ tagColor, id: formId, name, id }) => ( + {fields.map(({ tagColor, id: formId, slug, id }) => ( -
{name}
+
{slug}
))} @@ -296,7 +296,7 @@ export const SecretDetailSidebar = ({ Add tags to this secret {tags.map((tag) => { - const { id: tagId, name, color } = tag; + const { id: tagId, slug, color } = tag; const isSelected = selectedTagsGroupById?.[tagId]; return ( @@ -311,7 +311,7 @@ export const SecretDetailSidebar = ({ className="mr-2 h-2 w-2 rounded-full" style={{ background: color || "#bec2c8" }} /> - {name} + {slug}
); diff --git a/frontend/src/views/SecretMainPage/components/SecretListView/SecretItem.tsx b/frontend/src/views/SecretMainPage/components/SecretListView/SecretItem.tsx index 22207cb90..5b62dd526 100644 --- a/frontend/src/views/SecretMainPage/components/SecretListView/SecretItem.tsx +++ b/frontend/src/views/SecretMainPage/components/SecretListView/SecretItem.tsx @@ -336,7 +336,7 @@ export const SecretItem = memo( Add tags to this secret {tags.map((tag) => { - const { id: tagId, name, color } = tag; + const { id: tagId, slug, color } = tag; const isTagSelected = selectedTagsGroupById?.[tagId]; return ( @@ -358,7 +358,7 @@ export const SecretItem = memo( className="mr-2 h-2 w-2 rounded-full" style={{ background: color || "#bec2c8" }} /> - {name} + {slug} ); diff --git a/frontend/src/views/SecretMainPage/components/SecretListView/SecretListView.utils.ts b/frontend/src/views/SecretMainPage/components/SecretListView/SecretListView.utils.ts index a3040b43c..eb9e4d195 100644 --- a/frontend/src/views/SecretMainPage/components/SecretListView/SecretListView.utils.ts +++ b/frontend/src/views/SecretMainPage/components/SecretListView/SecretListView.utils.ts @@ -49,7 +49,6 @@ export const formSchema = z.object({ tags: z .object({ id: z.string(), - name: z.string(), slug: z.string(), tagColor: z.string().optional() }) diff --git a/frontend/src/views/SecretMainPage/components/SnapshotView/SecretItem.tsx b/frontend/src/views/SecretMainPage/components/SnapshotView/SecretItem.tsx index 2a7397ec9..d6680bcef 100644 --- a/frontend/src/views/SecretMainPage/components/SnapshotView/SecretItem.tsx +++ b/frontend/src/views/SecretMainPage/components/SnapshotView/SecretItem.tsx @@ -151,7 +151,7 @@ export const SecretItem = ({ mode, preSecret, postSecret }: Props) => { Tags {isModified && ( - {preSecret?.tags?.map(({ name, id: tagId, color }) => ( + {preSecret?.tags?.map(({ slug, id: tagId, color }) => ( { className="h-3 w-3 rounded-full" style={{ backgroundColor: color || "#bec2c8" }} /> -
{name}
+
{slug}
))} )} - {postSecret?.tags?.map(({ name, id: tagId, color }) => ( + {postSecret?.tags?.map(({ slug, id: tagId, color }) => ( { className="h-3 w-3 rounded-full" style={{ backgroundColor: color || "#bec2c8" }} /> -
{name}
+
{slug}
))} diff --git a/frontend/src/views/Settings/ProjectSettingsPage/components/SecretTagsSection/AddSecretTagModal.tsx b/frontend/src/views/Settings/ProjectSettingsPage/components/SecretTagsSection/AddSecretTagModal.tsx index 7cc1a926e..0a2c4856e 100644 --- a/frontend/src/views/Settings/ProjectSettingsPage/components/SecretTagsSection/AddSecretTagModal.tsx +++ b/frontend/src/views/Settings/ProjectSettingsPage/components/SecretTagsSection/AddSecretTagModal.tsx @@ -1,6 +1,7 @@ import { Controller, useForm } from "react-hook-form"; -import { yupResolver } from "@hookform/resolvers/yup"; -import * as yup from "yup"; +import { zodResolver } from "@hookform/resolvers/zod"; +import slugify from "@sindresorhus/slugify"; +import { z } from "zod"; import { createNotification } from "@app/components/notifications"; import { Button, FormControl, Input, Modal, ModalClose, ModalContent } from "@app/components/v2"; @@ -8,11 +9,13 @@ import { useWorkspace } from "@app/context"; import { useCreateWsTag } from "@app/hooks/api"; import { UsePopUpState } from "@app/hooks/usePopUp"; -const schema = yup.object({ - name: yup.string().required().label("Tag Name") +const schema = z.object({ + slug: z.string().refine((v) => slugify(v) === v, { + message: "Invalid slug. Should contain only characters, numbers and hyphen." + }) }); -export type FormData = yup.InferType; +export type FormData = z.infer; type Props = { popUp: UsePopUpState<["CreateSecretTag", "deleteTagConfirmation"]>; @@ -26,7 +29,6 @@ type Props = { }; export const AddSecretTagModal = ({ popUp, handlePopUpClose, handlePopUpToggle }: Props) => { - const { currentWorkspace } = useWorkspace(); const createWsTag = useCreateWsTag(); const { @@ -35,17 +37,16 @@ export const AddSecretTagModal = ({ popUp, handlePopUpClose, handlePopUpToggle } handleSubmit, formState: { isSubmitting } } = useForm({ - resolver: yupResolver(schema) + resolver: zodResolver(schema) }); - const onFormSubmit = async ({ name }: FormData) => { + const onFormSubmit = async ({ slug }: FormData) => { try { if (!currentWorkspace?.id) return; await createWsTag.mutateAsync({ workspaceID: currentWorkspace?.id, - tagName: name, - tagSlug: name.replace(/\s+/g, " ").replace(" ", "_"), + tagSlug: slug, tagColor: "" }); @@ -80,11 +81,11 @@ export const AddSecretTagModal = ({ popUp, handlePopUpClose, handlePopUpToggle } ( - - + + )} /> diff --git a/frontend/src/views/Settings/ProjectSettingsPage/components/SecretTagsSection/SecretTagsTable.tsx b/frontend/src/views/Settings/ProjectSettingsPage/components/SecretTagsSection/SecretTagsTable.tsx index d0655f984..cc68b0700 100644 --- a/frontend/src/views/Settings/ProjectSettingsPage/components/SecretTagsSection/SecretTagsTable.tsx +++ b/frontend/src/views/Settings/ProjectSettingsPage/components/SecretTagsSection/SecretTagsTable.tsx @@ -40,7 +40,6 @@ export const SecretTagsTable = ({ handlePopUpOpen }: Props) => { - @@ -49,9 +48,8 @@ export const SecretTagsTable = ({ handlePopUpOpen }: Props) => { {isLoading && } {!isLoading && data && - data.map(({ id, name, slug }) => ( - - + data.map(({ id, slug }) => ( +
Tag Slug
{name}
{slug} { handlePopUpOpen("deleteTagConfirmation", { - name, + name: slug, id }) } From c109fbab3ec779267c86ff5b08640b10a89468d1 Mon Sep 17 00:00:00 2001 From: = Date: Wed, 7 Aug 2024 13:24:22 +0530 Subject: [PATCH 22/71] feat: removed tag name used in queries --- .../secret-approval-request-secret-dal.ts | 6 ++---- .../services/secret-snapshot/snapshot-dal.ts | 20 ++++++++----------- backend/src/services/secret/secret-dal.ts | 3 +-- 3 files changed, 11 insertions(+), 18 deletions(-) diff --git a/backend/src/ee/services/secret-approval-request/secret-approval-request-secret-dal.ts b/backend/src/ee/services/secret-approval-request/secret-approval-request-secret-dal.ts index 0f24c75b3..7bd6a3fa0 100644 --- a/backend/src/ee/services/secret-approval-request/secret-approval-request-secret-dal.ts +++ b/backend/src/ee/services/secret-approval-request/secret-approval-request-secret-dal.ts @@ -88,8 +88,7 @@ export const secretApprovalRequestSecretDALFactory = (db: TDbClient) => { db.ref("id").withSchema(TableName.SecretTag).as("tagId"), db.ref("id").withSchema(TableName.SecretApprovalRequestSecretTag).as("tagJnId"), db.ref("color").withSchema(TableName.SecretTag).as("tagColor"), - db.ref("slug").withSchema(TableName.SecretTag).as("tagSlug"), - db.ref("name").withSchema(TableName.SecretTag).as("tagName") + db.ref("slug").withSchema(TableName.SecretTag).as("tagSlug") ) .select( db.ref("secretBlindIndex").withSchema(TableName.Secret).as("orgSecBlindIndex"), @@ -269,8 +268,7 @@ export const secretApprovalRequestSecretDALFactory = (db: TDbClient) => { db.ref("id").withSchema(TableName.SecretTag).as("tagId"), db.ref("id").withSchema(TableName.SecretApprovalRequestSecretTagV2).as("tagJnId"), db.ref("color").withSchema(TableName.SecretTag).as("tagColor"), - db.ref("slug").withSchema(TableName.SecretTag).as("tagSlug"), - db.ref("name").withSchema(TableName.SecretTag).as("tagName") + db.ref("slug").withSchema(TableName.SecretTag).as("tagSlug") ) .select( db.ref("version").withSchema(TableName.SecretV2).as("orgSecVersion"), diff --git a/backend/src/ee/services/secret-snapshot/snapshot-dal.ts b/backend/src/ee/services/secret-snapshot/snapshot-dal.ts index cee2292ad..e4d341c1a 100644 --- a/backend/src/ee/services/secret-snapshot/snapshot-dal.ts +++ b/backend/src/ee/services/secret-snapshot/snapshot-dal.ts @@ -100,8 +100,7 @@ export const snapshotDALFactory = (db: TDbClient) => { db.ref("id").withSchema(TableName.SecretTag).as("tagId"), db.ref("id").withSchema(TableName.SecretVersionTag).as("tagVersionId"), db.ref("color").withSchema(TableName.SecretTag).as("tagColor"), - db.ref("slug").withSchema(TableName.SecretTag).as("tagSlug"), - db.ref("name").withSchema(TableName.SecretTag).as("tagName") + db.ref("slug").withSchema(TableName.SecretTag).as("tagSlug") ); return sqlNestRelationships({ data, @@ -132,9 +131,9 @@ export const snapshotDALFactory = (db: TDbClient) => { { key: "tagVersionId", label: "tags" as const, - mapper: ({ tagId: id, tagName: name, tagSlug: slug, tagColor: color, tagVersionId: vId }) => ({ + mapper: ({ tagId: id, tagSlug: slug, tagColor: color, tagVersionId: vId }) => ({ id, - name, + name: slug, slug, color, vId @@ -195,8 +194,7 @@ export const snapshotDALFactory = (db: TDbClient) => { db.ref("id").withSchema(TableName.SecretTag).as("tagId"), db.ref("id").withSchema(TableName.SecretVersionV2Tag).as("tagVersionId"), db.ref("color").withSchema(TableName.SecretTag).as("tagColor"), - db.ref("slug").withSchema(TableName.SecretTag).as("tagSlug"), - db.ref("name").withSchema(TableName.SecretTag).as("tagName") + db.ref("slug").withSchema(TableName.SecretTag).as("tagSlug") ); return sqlNestRelationships({ data, @@ -227,9 +225,9 @@ export const snapshotDALFactory = (db: TDbClient) => { { key: "tagVersionId", label: "tags" as const, - mapper: ({ tagId: id, tagName: name, tagSlug: slug, tagColor: color, tagVersionId: vId }) => ({ + mapper: ({ tagId: id, tagSlug: slug, tagColor: color, tagVersionId: vId }) => ({ id, - name, + name: slug, slug, color, vId @@ -353,8 +351,7 @@ export const snapshotDALFactory = (db: TDbClient) => { db.ref("id").withSchema(TableName.SecretTag).as("tagId"), db.ref("id").withSchema(TableName.SecretVersionTag).as("tagVersionId"), db.ref("color").withSchema(TableName.SecretTag).as("tagColor"), - db.ref("slug").withSchema(TableName.SecretTag).as("tagSlug"), - db.ref("name").withSchema(TableName.SecretTag).as("tagName") + db.ref("slug").withSchema(TableName.SecretTag).as("tagSlug") ); const formated = sqlNestRelationships({ @@ -508,8 +505,7 @@ export const snapshotDALFactory = (db: TDbClient) => { db.ref("id").withSchema(TableName.SecretTag).as("tagId"), db.ref("id").withSchema(TableName.SecretVersionV2Tag).as("tagVersionId"), db.ref("color").withSchema(TableName.SecretTag).as("tagColor"), - db.ref("slug").withSchema(TableName.SecretTag).as("tagSlug"), - db.ref("name").withSchema(TableName.SecretTag).as("tagName") + db.ref("slug").withSchema(TableName.SecretTag).as("tagSlug") ); const formated = sqlNestRelationships({ diff --git a/backend/src/services/secret/secret-dal.ts b/backend/src/services/secret/secret-dal.ts index c3d9eef73..290a9597a 100644 --- a/backend/src/services/secret/secret-dal.ts +++ b/backend/src/services/secret/secret-dal.ts @@ -315,8 +315,7 @@ export const secretDALFactory = (db: TDbClient) => { .select(selectAllTableCols(TableName.Secret)) .select(db.ref("id").withSchema(TableName.SecretTag).as("tagId")) .select(db.ref("color").withSchema(TableName.SecretTag).as("tagColor")) - .select(db.ref("slug").withSchema(TableName.SecretTag).as("tagSlug")) - .select(db.ref("name").withSchema(TableName.SecretTag).as("tagName")); + .select(db.ref("slug").withSchema(TableName.SecretTag).as("tagSlug")); const docs = sqlNestRelationships({ data: rawDocs, key: "id", From 64c8125e4b09e4458eec96dfe78030cf4ff13802 Mon Sep 17 00:00:00 2001 From: Maidul Islam Date: Wed, 7 Aug 2024 11:13:02 -0400 Subject: [PATCH 23/71] add external secrets operator mention in k8s docs --- docs/integrations/platforms/kubernetes.mdx | 6 +++++- 1 file changed, 5 insertions(+), 1 deletion(-) diff --git a/docs/integrations/platforms/kubernetes.mdx b/docs/integrations/platforms/kubernetes.mdx index dc76f2584..9ab7347ac 100644 --- a/docs/integrations/platforms/kubernetes.mdx +++ b/docs/integrations/platforms/kubernetes.mdx @@ -1,5 +1,5 @@ --- -title: "Kubernetes" +title: "Kubernetes Operator" description: "How to use Infisical to inject secrets into Kubernetes clusters." --- @@ -9,6 +9,10 @@ The Infisical Secrets Operator is a Kubernetes controller that retrieves secrets It uses an `InfisicalSecret` resource to specify authentication and storage methods. The operator continuously updates secrets and can also reload dependent deployments automatically. + + If you are already using the External Secrets operator, you can you can view the integration documentation for it [here](https://external-secrets.io/latest/provider/infisical/). + + ## Install Operator The operator can be install via [Helm](https://helm.sh) or [kubectl](https://github.com/kubernetes/kubectl) From 1248840dc86d9ae5835ac35ecd68c1fb95c69792 Mon Sep 17 00:00:00 2001 From: = Date: Wed, 7 Aug 2024 21:23:22 +0530 Subject: [PATCH 24/71] fix: resolved replication secret not getting deleted --- .../services/secret-replication/secret-replication-service.ts | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/backend/src/ee/services/secret-replication/secret-replication-service.ts b/backend/src/ee/services/secret-replication/secret-replication-service.ts index 52d10b690..b32d459c5 100644 --- a/backend/src/ee/services/secret-replication/secret-replication-service.ts +++ b/backend/src/ee/services/secret-replication/secret-replication-service.ts @@ -449,7 +449,7 @@ export const secretReplicationServiceFactory = ({ }); } if (locallyDeletedSecrets.length) { - await secretDAL.delete( + await secretV2BridgeDAL.delete( { $in: { id: locallyDeletedSecrets.map(({ id }) => id) From 68e05b7198b6b82bf510fb8604b3496849e0b964 Mon Sep 17 00:00:00 2001 From: Maidul Islam Date: Wed, 7 Aug 2024 14:51:48 -0400 Subject: [PATCH 25/71] add debug log to print keyring error --- cli/packages/util/keyringwrapper.go | 4 ++++ 1 file changed, 4 insertions(+) diff --git a/cli/packages/util/keyringwrapper.go b/cli/packages/util/keyringwrapper.go index cadb72ebd..065271906 100644 --- a/cli/packages/util/keyringwrapper.go +++ b/cli/packages/util/keyringwrapper.go @@ -2,8 +2,10 @@ package util import ( "encoding/base64" + "fmt" "github.com/manifoldco/promptui" + "github.com/rs/zerolog/log" "github.com/zalando/go-keyring" ) @@ -26,6 +28,7 @@ func SetValueInKeyring(key, value string) error { err = keyring.Set(currentVaultBackend, MAIN_KEYRING_SERVICE, key, value) if err != nil { + log.Debug().Msg(fmt.Sprintf("Error while setting default keyring: %v", err)) configFile, _ := GetConfigFile() if configFile.VaultBackendPassphrase == "" { @@ -50,6 +53,7 @@ func SetValueInKeyring(key, value string) error { } err = keyring.Set(VAULT_BACKEND_FILE_MODE, MAIN_KEYRING_SERVICE, key, value) + log.Debug().Msg(fmt.Sprintf("Error while setting file keyring: %v", err)) } return err From 353d231a4eaa1b62b7ee11e2f1883ee1d333abdc Mon Sep 17 00:00:00 2001 From: Maidul Islam Date: Wed, 7 Aug 2024 18:35:07 -0400 Subject: [PATCH 26/71] =?UTF-8?q?Patch=20CLI=20auto=20select=20file=20vaul?= =?UTF-8?q?t=20#=20Description=20=F0=9F=93=A3?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit When we auto select file vault, we also need to set it's type. When we set the type, we don't need to fall back to file vault in the `GetValueInKeyring` and `DeleteValueInKeyring` because `currentVaultBackend` will be `file`. Also rephrased the text asking the user to eneter a passphrase. --- cli/packages/util/keyringwrapper.go | 18 ++++-------------- 1 file changed, 4 insertions(+), 14 deletions(-) diff --git a/cli/packages/util/keyringwrapper.go b/cli/packages/util/keyringwrapper.go index 065271906..296f6439c 100644 --- a/cli/packages/util/keyringwrapper.go +++ b/cli/packages/util/keyringwrapper.go @@ -32,9 +32,8 @@ func SetValueInKeyring(key, value string) error { configFile, _ := GetConfigFile() if configFile.VaultBackendPassphrase == "" { - PrintWarning("System keyring could not be used, falling back to `file` vault for sensitive data storage.") passphrasePrompt := promptui.Prompt{ - Label: "Enter the passphrase to use for keyring encryption", + Label: "Enter a passphrase to protect your local backup secrets & login access token", } passphrase, err := passphrasePrompt.Run() if err != nil { @@ -43,6 +42,7 @@ func SetValueInKeyring(key, value string) error { encodedPassphrase := base64.StdEncoding.EncodeToString([]byte(passphrase)) configFile.VaultBackendPassphrase = encodedPassphrase + configFile.VaultBackendType = VAULT_BACKEND_FILE_MODE err = WriteConfigFile(&configFile) if err != nil { return err @@ -65,12 +65,7 @@ func GetValueInKeyring(key string) (string, error) { PrintErrorAndExit(1, err, "Unable to get current vault. Tip: run [infisical reset] then try again") } - value, err := keyring.Get(currentVaultBackend, MAIN_KEYRING_SERVICE, key) - - if err != nil { - value, err = keyring.Get(VAULT_BACKEND_FILE_MODE, MAIN_KEYRING_SERVICE, key) - } - return value, err + return keyring.Get(currentVaultBackend, MAIN_KEYRING_SERVICE, key) } @@ -80,11 +75,6 @@ func DeleteValueInKeyring(key string) error { return err } - err = keyring.Delete(currentVaultBackend, MAIN_KEYRING_SERVICE, key) + return keyring.Delete(currentVaultBackend, MAIN_KEYRING_SERVICE, key) - if err != nil { - err = keyring.Delete(VAULT_BACKEND_FILE_MODE, MAIN_KEYRING_SERVICE, key) - } - - return err } From 942e5f2f65202f3738fb7fc323a3417e25e9f41b Mon Sep 17 00:00:00 2001 From: Maidul Islam Date: Wed, 7 Aug 2024 18:35:57 -0400 Subject: [PATCH 27/71] update phrase --- cli/packages/util/keyringwrapper.go | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/cli/packages/util/keyringwrapper.go b/cli/packages/util/keyringwrapper.go index 296f6439c..3e8dbadba 100644 --- a/cli/packages/util/keyringwrapper.go +++ b/cli/packages/util/keyringwrapper.go @@ -33,7 +33,7 @@ func SetValueInKeyring(key, value string) error { if configFile.VaultBackendPassphrase == "" { passphrasePrompt := promptui.Prompt{ - Label: "Enter a passphrase to protect your local backup secrets & login access token", + Label: "Enter a passphrase to protect your local secret backups & login access token", } passphrase, err := passphrasePrompt.Run() if err != nil { From cd9316537d9b0673f4d397883259e6bdff557aab Mon Sep 17 00:00:00 2001 From: Maidul Islam Date: Wed, 7 Aug 2024 18:56:15 -0400 Subject: [PATCH 28/71] prevent auto saving passphrase to disk --- cli/packages/util/keyringwrapper.go | 10 +++------- 1 file changed, 3 insertions(+), 7 deletions(-) diff --git a/cli/packages/util/keyringwrapper.go b/cli/packages/util/keyringwrapper.go index 3e8dbadba..ecf958296 100644 --- a/cli/packages/util/keyringwrapper.go +++ b/cli/packages/util/keyringwrapper.go @@ -1,8 +1,8 @@ package util import ( - "encoding/base64" "fmt" + "os" "github.com/manifoldco/promptui" "github.com/rs/zerolog/log" @@ -33,23 +33,19 @@ func SetValueInKeyring(key, value string) error { if configFile.VaultBackendPassphrase == "" { passphrasePrompt := promptui.Prompt{ - Label: "Enter a passphrase to protect your local secret backups & login access token", + Label: "Enter a passphrase to encrypt sensitive CLI data at rest", } passphrase, err := passphrasePrompt.Run() if err != nil { return err } - - encodedPassphrase := base64.StdEncoding.EncodeToString([]byte(passphrase)) - configFile.VaultBackendPassphrase = encodedPassphrase configFile.VaultBackendType = VAULT_BACKEND_FILE_MODE err = WriteConfigFile(&configFile) if err != nil { return err } - // We call this function at last to trigger the environment variable to be set - GetConfigFile() + os.Setenv("INFISICAL_VAULT_FILE_PASSPHRASE", passphrase) } err = keyring.Set(VAULT_BACKEND_FILE_MODE, MAIN_KEYRING_SERVICE, key, value) From bb934ef7b1c47195b2ff65a335712add791cb59c Mon Sep 17 00:00:00 2001 From: Maidul Islam Date: Wed, 7 Aug 2024 23:02:35 +0000 Subject: [PATCH 29/71] set vault type when auto selection enabled --- cli/packages/util/keyringwrapper.go | 6 ++++-- 1 file changed, 4 insertions(+), 2 deletions(-) diff --git a/cli/packages/util/keyringwrapper.go b/cli/packages/util/keyringwrapper.go index ecf958296..4714858ac 100644 --- a/cli/packages/util/keyringwrapper.go +++ b/cli/packages/util/keyringwrapper.go @@ -39,13 +39,15 @@ func SetValueInKeyring(key, value string) error { if err != nil { return err } + encodedPassphrase := base64.StdEncoding.EncodeToString([]byte(passphrase)) + configFile.VaultBackendPassphrase = encodedPassphrase configFile.VaultBackendType = VAULT_BACKEND_FILE_MODE - err = WriteConfigFile(&configFile) if err != nil { return err } - os.Setenv("INFISICAL_VAULT_FILE_PASSPHRASE", passphrase) + // We call this function at last to trigger the environment variable to be set + GetConfigFile() } err = keyring.Set(VAULT_BACKEND_FILE_MODE, MAIN_KEYRING_SERVICE, key, value) From 79181a1e3d681f24c9cafc498e6e041c4a11b1ef Mon Sep 17 00:00:00 2001 From: Maidul Islam Date: Wed, 7 Aug 2024 23:03:14 +0000 Subject: [PATCH 30/71] remove os --- cli/packages/util/keyringwrapper.go | 1 - 1 file changed, 1 deletion(-) diff --git a/cli/packages/util/keyringwrapper.go b/cli/packages/util/keyringwrapper.go index 4714858ac..24ee0453b 100644 --- a/cli/packages/util/keyringwrapper.go +++ b/cli/packages/util/keyringwrapper.go @@ -2,7 +2,6 @@ package util import ( "fmt" - "os" "github.com/manifoldco/promptui" "github.com/rs/zerolog/log" From 4892eea009ee1ed73c27d783d2dc4e7adc735d11 Mon Sep 17 00:00:00 2001 From: Maidul Islam Date: Wed, 7 Aug 2024 19:06:25 -0400 Subject: [PATCH 31/71] add base64 package --- cli/packages/util/keyringwrapper.go | 1 + 1 file changed, 1 insertion(+) diff --git a/cli/packages/util/keyringwrapper.go b/cli/packages/util/keyringwrapper.go index 24ee0453b..4ca5ae98d 100644 --- a/cli/packages/util/keyringwrapper.go +++ b/cli/packages/util/keyringwrapper.go @@ -1,6 +1,7 @@ package util import ( + "encoding/base64" "fmt" "github.com/manifoldco/promptui" From d91fb0db0277c477574d6b354a3bb8ca101cef47 Mon Sep 17 00:00:00 2001 From: Maidul Islam Date: Wed, 7 Aug 2024 22:12:50 -0400 Subject: [PATCH 32/71] Revert "Patch CLI auto select file vault " --- cli/packages/util/keyringwrapper.go | 20 ++++++++++++++++---- 1 file changed, 16 insertions(+), 4 deletions(-) diff --git a/cli/packages/util/keyringwrapper.go b/cli/packages/util/keyringwrapper.go index 4ca5ae98d..065271906 100644 --- a/cli/packages/util/keyringwrapper.go +++ b/cli/packages/util/keyringwrapper.go @@ -32,16 +32,18 @@ func SetValueInKeyring(key, value string) error { configFile, _ := GetConfigFile() if configFile.VaultBackendPassphrase == "" { + PrintWarning("System keyring could not be used, falling back to `file` vault for sensitive data storage.") passphrasePrompt := promptui.Prompt{ - Label: "Enter a passphrase to encrypt sensitive CLI data at rest", + Label: "Enter the passphrase to use for keyring encryption", } passphrase, err := passphrasePrompt.Run() if err != nil { return err } + encodedPassphrase := base64.StdEncoding.EncodeToString([]byte(passphrase)) configFile.VaultBackendPassphrase = encodedPassphrase - configFile.VaultBackendType = VAULT_BACKEND_FILE_MODE + err = WriteConfigFile(&configFile) if err != nil { return err } @@ -63,7 +65,12 @@ func GetValueInKeyring(key string) (string, error) { PrintErrorAndExit(1, err, "Unable to get current vault. Tip: run [infisical reset] then try again") } - return keyring.Get(currentVaultBackend, MAIN_KEYRING_SERVICE, key) + value, err := keyring.Get(currentVaultBackend, MAIN_KEYRING_SERVICE, key) + + if err != nil { + value, err = keyring.Get(VAULT_BACKEND_FILE_MODE, MAIN_KEYRING_SERVICE, key) + } + return value, err } @@ -73,6 +80,11 @@ func DeleteValueInKeyring(key string) error { return err } - return keyring.Delete(currentVaultBackend, MAIN_KEYRING_SERVICE, key) + err = keyring.Delete(currentVaultBackend, MAIN_KEYRING_SERVICE, key) + if err != nil { + err = keyring.Delete(VAULT_BACKEND_FILE_MODE, MAIN_KEYRING_SERVICE, key) + } + + return err } From ba5e877a3b176394f33379cdb16ef8e6de55b713 Mon Sep 17 00:00:00 2001 From: Maidul Islam Date: Wed, 7 Aug 2024 22:12:03 -0400 Subject: [PATCH 33/71] Revert "add base64 package" This reverts commit 4892eea009ee1ed73c27d783d2dc4e7adc735d11. --- cli/packages/util/keyringwrapper.go | 1 - 1 file changed, 1 deletion(-) diff --git a/cli/packages/util/keyringwrapper.go b/cli/packages/util/keyringwrapper.go index 065271906..5bcf8830c 100644 --- a/cli/packages/util/keyringwrapper.go +++ b/cli/packages/util/keyringwrapper.go @@ -1,7 +1,6 @@ package util import ( - "encoding/base64" "fmt" "github.com/manifoldco/promptui" From 2739b08e59bd69e616cac444500577f3c14bbe63 Mon Sep 17 00:00:00 2001 From: Maidul Islam Date: Wed, 7 Aug 2024 22:15:06 -0400 Subject: [PATCH 34/71] revert bb934ef7b1c47195b2ff65a335712add791cb59c --- cli/packages/util/keyringwrapper.go | 1 + 1 file changed, 1 insertion(+) diff --git a/cli/packages/util/keyringwrapper.go b/cli/packages/util/keyringwrapper.go index 5bcf8830c..065271906 100644 --- a/cli/packages/util/keyringwrapper.go +++ b/cli/packages/util/keyringwrapper.go @@ -1,6 +1,7 @@ package util import ( + "encoding/base64" "fmt" "github.com/manifoldco/promptui" From bb52e2beb4567eb2eef9972ac90512fad3acb1a1 Mon Sep 17 00:00:00 2001 From: Maidul Islam Date: Thu, 8 Aug 2024 00:31:41 -0400 Subject: [PATCH 35/71] Update secret-tag-router.ts --- backend/src/server/routes/v1/secret-tag-router.ts | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/backend/src/server/routes/v1/secret-tag-router.ts b/backend/src/server/routes/v1/secret-tag-router.ts index 4786548c6..9fc08d6c7 100644 --- a/backend/src/server/routes/v1/secret-tag-router.ts +++ b/backend/src/server/routes/v1/secret-tag-router.ts @@ -116,7 +116,7 @@ export const registerSecretTagRouter = async (server: FastifyZodProvider) => { .trim() .describe(SECRET_TAGS.CREATE.slug) .refine((v) => slugify(v) === v, { - message: "Invalid slug. Should contain only characters, numbers and hyphen." + message: "Invalid slug. Slug can only contain alphanumeric characters and hyphens." }), color: z.string().trim().describe(SECRET_TAGS.CREATE.color) }), From 254446c89520ad821a4e14939996a9b180e81057 Mon Sep 17 00:00:00 2001 From: = Date: Thu, 8 Aug 2024 13:04:33 +0530 Subject: [PATCH 36/71] fix: resolved keyring dataset too big by keeping only the encryption key --- cli/packages/util/constants.go | 4 +- cli/packages/util/secrets.go | 123 ++++++++++++++++++++------------- 2 files changed, 78 insertions(+), 49 deletions(-) diff --git a/cli/packages/util/constants.go b/cli/packages/util/constants.go index 5cd66f50b..432b1cb82 100644 --- a/cli/packages/util/constants.go +++ b/cli/packages/util/constants.go @@ -38,7 +38,9 @@ const ( SERVICE_TOKEN_IDENTIFIER = "service-token" UNIVERSAL_AUTH_TOKEN_IDENTIFIER = "universal-auth-token" - INFISICAL_BACKUP_SECRET = "infisical-backup-secrets" + // akhilmhdh: @depreciated remove in version v0.30 + INFISICAL_BACKUP_SECRET = "infisical-backup-secrets" + INFISICAL_BACKUP_SECRET_ENCRYPTION_KEY = "infisical-backup-secret-encryption-key" ) var ( diff --git a/cli/packages/util/secrets.go b/cli/packages/util/secrets.go index c51338d61..5d528df86 100644 --- a/cli/packages/util/secrets.go +++ b/cli/packages/util/secrets.go @@ -1,14 +1,15 @@ package util import ( + "crypto/rand" "encoding/base64" + "encoding/hex" "encoding/json" "errors" "fmt" "os" "path" "regexp" - "slices" "strings" "unicode" @@ -285,18 +286,25 @@ func GetAllEnvironmentVariables(params models.GetAllSecretsParameters, projectCo log.Debug().Msgf("GetAllEnvironmentVariables: Trying to fetch secrets JTW token [err=%s]", err) if err == nil { - WriteBackupSecrets(infisicalDotJson.WorkspaceId, params.Environment, params.SecretsPath, res.Secrets) + backupEncryptionKey, err := GetBackupEncryptionKey() + if err != nil { + return nil, err + } + WriteBackupSecrets(infisicalDotJson.WorkspaceId, params.Environment, params.SecretsPath, backupEncryptionKey, res.Secrets) } secretsToReturn = res.Secrets errorToReturn = err // only attempt to serve cached secrets if no internet connection and if at least one secret cached if !isConnected { - backedSecrets, err := ReadBackupSecrets(infisicalDotJson.WorkspaceId, params.Environment, params.SecretsPath) - if len(backedSecrets) > 0 { - PrintWarning("Unable to fetch latest secret(s) due to connection error, serving secrets from last successful fetch. For more info, run with --debug") - secretsToReturn = backedSecrets - errorToReturn = err + backupEncryptionKey, _ := GetBackupEncryptionKey() + if backupEncryptionKey != nil { + backedSecrets, err := ReadBackupSecrets(infisicalDotJson.WorkspaceId, params.Environment, params.SecretsPath, backupEncryptionKey) + if len(backedSecrets) > 0 { + PrintWarning("Unable to fetch latest secret(s) due to connection error, serving secrets from last successful fetch. For more info, run with --debug") + secretsToReturn = backedSecrets + errorToReturn = err + } } } @@ -476,71 +484,90 @@ func OverrideSecrets(secrets []models.SingleEnvironmentVariable, secretType stri return secretsToReturn } -func WriteBackupSecrets(workspace string, environment string, secretsPath string, secrets []models.SingleEnvironmentVariable) error { - var backedUpSecrets []models.BackupSecretKeyRing - secretValueInKeyRing, err := GetValueInKeyring(INFISICAL_BACKUP_SECRET) +func GetBackupEncryptionKey() ([]byte, error) { + encryptionKey, err := GetValueInKeyring(INFISICAL_BACKUP_SECRET_ENCRYPTION_KEY) if err != nil { if err == keyring.ErrUnsupportedPlatform { - return errors.New("your OS does not support keyring. Consider using a service token https://infisical.com/docs/documentation/platform/token") - } else if err != keyring.ErrNotFound { - return fmt.Errorf("something went wrong, failed to retrieve value from system keyring [error=%v]", err) + return nil, errors.New("your OS does not support keyring. Consider using a service token https://infisical.com/docs/documentation/platform/token") + } else if err == keyring.ErrNotFound { + // generate a new key + randomizedKey := make([]byte, 16) + rand.Read(randomizedKey) + encryptionKey = hex.EncodeToString(randomizedKey) + if err := SetValueInKeyring(INFISICAL_BACKUP_SECRET_ENCRYPTION_KEY, encryptionKey); err != nil { + return nil, err + } + return []byte(encryptionKey), nil + } else { + return nil, fmt.Errorf("something went wrong, failed to retrieve value from system keyring [error=%v]", err) } } - _ = json.Unmarshal([]byte(secretValueInKeyRing), &backedUpSecrets) + return []byte(encryptionKey), nil +} - backedUpSecrets = slices.DeleteFunc(backedUpSecrets, func(e models.BackupSecretKeyRing) bool { - return e.SecretPath == secretsPath && e.ProjectID == workspace && e.Environment == environment - }) - newBackupSecret := models.BackupSecretKeyRing{ - ProjectID: workspace, - Environment: environment, - SecretPath: secretsPath, - Secrets: secrets, - } - backedUpSecrets = append(backedUpSecrets, newBackupSecret) +func WriteBackupSecrets(workspace string, environment string, secretsPath string, encryptionKey []byte, secrets []models.SingleEnvironmentVariable) error { + formattedPath := strings.ReplaceAll(secretsPath, "/", "-") + fileName := fmt.Sprintf("project_secrets_%s_%s_%s.json", workspace, environment, formattedPath) + secrets_backup_folder_name := "secrets-backup" - listOfSecretsMarshalled, err := json.Marshal(backedUpSecrets) + _, fullConfigFileDirPath, err := GetFullConfigFilePath() if err != nil { - return err + return fmt.Errorf("WriteBackupSecrets: unable to get full config folder path [err=%s]", err) } - err = SetValueInKeyring(INFISICAL_BACKUP_SECRET, string(listOfSecretsMarshalled)) + // create secrets backup directory + fullPathToSecretsBackupFolder := fmt.Sprintf("%s/%s", fullConfigFileDirPath, secrets_backup_folder_name) + if _, err := os.Stat(fullPathToSecretsBackupFolder); errors.Is(err, os.ErrNotExist) { + err := os.Mkdir(fullPathToSecretsBackupFolder, os.ModePerm) + if err != nil { + return err + } + } + marshaledSecrets, _ := json.Marshal(secrets) + result, err := crypto.EncryptSymmetric(marshaledSecrets, encryptionKey) + listOfSecretsMarshalled, _ := json.Marshal(result) + err = os.WriteFile(fmt.Sprintf("%s/%s", fullPathToSecretsBackupFolder, fileName), listOfSecretsMarshalled, 0600) if err != nil { - return fmt.Errorf("StoreUserCredsInKeyRing: unable to store user credentials because [err=%s]", err) + return fmt.Errorf("WriteBackupSecrets: Unable to write backup secrets to file [err=%s]", err) } return nil } -func ReadBackupSecrets(workspace string, environment string, secretsPath string) ([]models.SingleEnvironmentVariable, error) { - secretValueInKeyRing, err := GetValueInKeyring(INFISICAL_BACKUP_SECRET) +func ReadBackupSecrets(workspace string, environment string, secretsPath string, encryptionKey []byte) ([]models.SingleEnvironmentVariable, error) { + formattedPath := strings.ReplaceAll(secretsPath, "/", "-") + fileName := fmt.Sprintf("project_secrets_%s_%s_%s.json", workspace, environment, formattedPath) + secrets_backup_folder_name := "secrets-backup" + + _, fullConfigFileDirPath, err := GetFullConfigFilePath() if err != nil { - if err == keyring.ErrUnsupportedPlatform { - return nil, errors.New("your OS does not support keyring. Consider using a service token https://infisical.com/docs/documentation/platform/token") - } else if err == keyring.ErrNotFound { - return nil, errors.New("credentials not found in system keyring") - } else { - return nil, fmt.Errorf("something went wrong, failed to retrieve value from system keyring [error=%v]", err) - } + return nil, fmt.Errorf("ReadBackupSecrets: unable to write config file because an error occurred when getting config file path [err=%s]", err) } - var backedUpSecrets []models.BackupSecretKeyRing - err = json.Unmarshal([]byte(secretValueInKeyRing), &backedUpSecrets) + fullPathToSecretsBackupFolder := fmt.Sprintf("%s/%s", fullConfigFileDirPath, secrets_backup_folder_name) + if _, err := os.Stat(fullPathToSecretsBackupFolder); errors.Is(err, os.ErrNotExist) { + return nil, nil + } + + encryptedBackupSecretsFilePath := fmt.Sprintf("%s/%s", fullPathToSecretsBackupFolder, fileName) + + encryptedBackupSecretsAsBytes, err := os.ReadFile(encryptedBackupSecretsFilePath) if err != nil { - return nil, fmt.Errorf("getUserCredsFromKeyRing: Something went wrong when unmarshalling user creds [err=%s]", err) + return nil, err } - for _, backupSecret := range backedUpSecrets { - if backupSecret.Environment == environment && backupSecret.ProjectID == workspace && backupSecret.SecretPath == secretsPath { - return backupSecret.Secrets, nil - } - } + var encryptedBackUpSecrets models.SymmetricEncryptionResult + _ = json.Unmarshal(encryptedBackupSecretsAsBytes, &encryptedBackUpSecrets) + result, err := crypto.DecryptSymmetric(encryptionKey, encryptedBackUpSecrets.CipherText, encryptedBackUpSecrets.AuthTag, encryptedBackUpSecrets.Nonce) + + var plainTextSecrets []models.SingleEnvironmentVariable + _ = json.Unmarshal(result, &plainTextSecrets) + + return plainTextSecrets, nil - return nil, nil } func DeleteBackupSecrets() error { - // keeping this logic for now. Need to remove it later as more users migrate keyring would be used and this folder will be removed completely by then secrets_backup_folder_name := "secrets-backup" _, fullConfigFileDirPath, err := GetFullConfigFilePath() @@ -549,8 +576,8 @@ func DeleteBackupSecrets() error { } fullPathToSecretsBackupFolder := fmt.Sprintf("%s/%s", fullConfigFileDirPath, secrets_backup_folder_name) - DeleteValueInKeyring(INFISICAL_BACKUP_SECRET) + DeleteValueInKeyring(INFISICAL_BACKUP_SECRET_ENCRYPTION_KEY) return os.RemoveAll(fullPathToSecretsBackupFolder) } From 809e4eeba1d92a06e6fe181856f6c0e3be50fe99 Mon Sep 17 00:00:00 2001 From: = Date: Thu, 8 Aug 2024 21:23:04 +0530 Subject: [PATCH 37/71] fix: resolved cli failign to get overriden secret in get command --- cli/packages/cmd/secrets.go | 12 ++++++++++++ 1 file changed, 12 insertions(+) diff --git a/cli/packages/cmd/secrets.go b/cli/packages/cmd/secrets.go index 2894765ae..daf3eb039 100644 --- a/cli/packages/cmd/secrets.go +++ b/cli/packages/cmd/secrets.go @@ -374,6 +374,11 @@ func getSecretsByNames(cmd *cobra.Command, args []string) { util.HandleError(err, "Unable to parse flag") } + secretOverriding, err := cmd.Flags().GetBool("secret-overriding") + if err != nil { + util.HandleError(err, "Unable to parse flag") + } + request := models.GetAllSecretsParameters{ Environment: environmentName, WorkspaceId: projectId, @@ -394,6 +399,12 @@ func getSecretsByNames(cmd *cobra.Command, args []string) { util.HandleError(err, "To fetch all secrets") } + if secretOverriding { + secrets = util.OverrideSecrets(secrets, util.SECRET_TYPE_PERSONAL) + } else { + secrets = util.OverrideSecrets(secrets, util.SECRET_TYPE_SHARED) + } + if shouldExpand { authParams := models.ExpandSecretsAuthentication{} if token != nil && token.Type == util.SERVICE_TOKEN_IDENTIFIER { @@ -688,6 +699,7 @@ func init() { secretsGetCmd.Flags().Bool("include-imports", true, "Imported linked secrets ") secretsGetCmd.Flags().Bool("expand", true, "Parse shell parameter expansions in your secrets, and process your referenced secrets") secretsGetCmd.Flags().Bool("recursive", false, "Fetch secrets from all sub-folders") + secretsGetCmd.Flags().Bool("secret-overriding", true, "Prioritizes personal secrets, if any, with the same name over shared secrets") secretsCmd.AddCommand(secretsGetCmd) secretsCmd.Flags().Bool("secret-overriding", true, "Prioritizes personal secrets, if any, with the same name over shared secrets") secretsCmd.AddCommand(secretsSetCmd) From 6f56ed547495147a1598b0551e47e6671c78f892 Mon Sep 17 00:00:00 2001 From: Maidul Islam Date: Thu, 8 Aug 2024 13:01:14 -0400 Subject: [PATCH 38/71] add missing error logs on secrets backup --- cli/packages/util/secrets.go | 21 +++++++++++++++------ 1 file changed, 15 insertions(+), 6 deletions(-) diff --git a/cli/packages/util/secrets.go b/cli/packages/util/secrets.go index 5d528df86..64f32b83a 100644 --- a/cli/packages/util/secrets.go +++ b/cli/packages/util/secrets.go @@ -299,10 +299,10 @@ func GetAllEnvironmentVariables(params models.GetAllSecretsParameters, projectCo if !isConnected { backupEncryptionKey, _ := GetBackupEncryptionKey() if backupEncryptionKey != nil { - backedSecrets, err := ReadBackupSecrets(infisicalDotJson.WorkspaceId, params.Environment, params.SecretsPath, backupEncryptionKey) - if len(backedSecrets) > 0 { - PrintWarning("Unable to fetch latest secret(s) due to connection error, serving secrets from last successful fetch. For more info, run with --debug") - secretsToReturn = backedSecrets + backedUpSecrets, err := ReadBackupSecrets(infisicalDotJson.WorkspaceId, params.Environment, params.SecretsPath, backupEncryptionKey) + if len(backedUpSecrets) > 0 { + PrintWarning("Unable to fetch the latest secret(s) due to connection error, serving secrets from last successful fetch. For more info, run with --debug") + secretsToReturn = backedUpSecrets errorToReturn = err } } @@ -525,6 +525,9 @@ func WriteBackupSecrets(workspace string, environment string, secretsPath string } marshaledSecrets, _ := json.Marshal(secrets) result, err := crypto.EncryptSymmetric(marshaledSecrets, encryptionKey) + if err != nil { + return fmt.Errorf("WriteBackupSecrets: Unable to encrypt local secret backup to file [err=%s]", err) + } listOfSecretsMarshalled, _ := json.Marshal(result) err = os.WriteFile(fmt.Sprintf("%s/%s", fullPathToSecretsBackupFolder, fileName), listOfSecretsMarshalled, 0600) if err != nil { @@ -557,9 +560,15 @@ func ReadBackupSecrets(workspace string, environment string, secretsPath string, } var encryptedBackUpSecrets models.SymmetricEncryptionResult - _ = json.Unmarshal(encryptedBackupSecretsAsBytes, &encryptedBackUpSecrets) - result, err := crypto.DecryptSymmetric(encryptionKey, encryptedBackUpSecrets.CipherText, encryptedBackUpSecrets.AuthTag, encryptedBackUpSecrets.Nonce) + err = json.Unmarshal(encryptedBackupSecretsAsBytes, &encryptedBackUpSecrets) + if err != nil { + return nil, fmt.Errorf("ReadBackupSecrets: unable to parse encrypted backup secrets. The secrets backup may be malformed [err=%s]", err) + } + result, err := crypto.DecryptSymmetric(encryptionKey, encryptedBackUpSecrets.CipherText, encryptedBackUpSecrets.AuthTag, encryptedBackUpSecrets.Nonce) + if err != nil { + return nil, fmt.Errorf("ReadBackupSecrets: unable to decrypt encrypted backup secrets [err=%s]", err) + } var plainTextSecrets []models.SingleEnvironmentVariable _ = json.Unmarshal(result, &plainTextSecrets) From 281d703cc3a0ba4d4c2d96646d8f6e6daa83ec82 Mon Sep 17 00:00:00 2001 From: Maidul Islam Date: Thu, 8 Aug 2024 13:02:08 -0400 Subject: [PATCH 39/71] removeed vault use command and auto generated passphrase --- cli/packages/cmd/vault.go | 124 ++++++++++++-------------------------- 1 file changed, 37 insertions(+), 87 deletions(-) diff --git a/cli/packages/cmd/vault.go b/cli/packages/cmd/vault.go index 4720e094e..6a92ef960 100644 --- a/cli/packages/cmd/vault.go +++ b/cli/packages/cmd/vault.go @@ -31,37 +31,52 @@ var AvailableVaults = []VaultBackendType{ } var vaultSetCmd = &cobra.Command{ - Example: `infisical vault set file --passphrase `, - Use: "set [file|auto] [flags]", + Example: `infisical vault set file`, + Use: "set [file|auto]", Short: "Used to configure the vault backends", DisableFlagsInUseLine: true, Args: cobra.MinimumNArgs(1), Run: func(cmd *cobra.Command, args []string) { - - vaultType := args[0] - - passphrase, err := cmd.Flags().GetString("passphrase") + wantedVaultTypeName := args[0] + currentVaultBackend, err := util.GetCurrentVaultBackend() if err != nil { - util.HandleError(err, "Unable to get passphrase flag") - } - - if vaultType == util.VAULT_BACKEND_FILE_MODE && passphrase != "" { - setFileVaultPassphrase(passphrase) + log.Error().Msgf("Unable to set vault to [%s] because of [err=%s]", wantedVaultTypeName, err) return } - util.PrintWarning("This command has been deprecated. Please use 'infisical vault use [file|auto]' to select which vault to use.\n") - selectVaultTypeCmd(cmd, args) - }, -} + if wantedVaultTypeName == string(currentVaultBackend) { + log.Error().Msgf("You are already on vault backend [%s]", currentVaultBackend) + return + } -var vaultUseCmd = &cobra.Command{ - Example: `infisical vault use [file|auto]`, - Use: "use [file|auto]", - Short: "Used to select the the type of vault backend to store sensitive data securely at rest", - DisableFlagsInUseLine: true, - Args: cobra.MinimumNArgs(1), - Run: selectVaultTypeCmd, + if wantedVaultTypeName == util.VAULT_BACKEND_AUTO_MODE || wantedVaultTypeName == util.VAULT_BACKEND_FILE_MODE { + configFile, err := util.GetConfigFile() + if err != nil { + log.Error().Msgf("Unable to set vault to [%s] because of [err=%s]", wantedVaultTypeName, err) + return + } + + configFile.VaultBackendType = wantedVaultTypeName + configFile.LoggedInUserEmail = "" + configFile.VaultBackendPassphrase = base64.StdEncoding.EncodeToString([]byte(util.GenerateRandomString(10))) + + err = util.WriteConfigFile(&configFile) + if err != nil { + log.Error().Msgf("Unable to set vault to [%s] because an error occurred when saving the config file [err=%s]", wantedVaultTypeName, err) + return + } + + fmt.Printf("\nSuccessfully, switched vault backend from [%s] to [%s]. Please login in again to store your login details in the new vault with [infisical login]\n", currentVaultBackend, wantedVaultTypeName) + + Telemetry.CaptureEvent("cli-command:vault set", posthog.NewProperties().Set("currentVault", currentVaultBackend).Set("wantedVault", wantedVaultTypeName).Set("version", util.CLI_VERSION)) + } else { + var availableVaultsNames []string + for _, vault := range AvailableVaults { + availableVaultsNames = append(availableVaultsNames, vault.Name) + } + log.Error().Msgf("The requested vault type [%s] is not available on this system. Only the following vault backends are available for you system: %s", wantedVaultTypeName, strings.Join(availableVaultsNames, ", ")) + } + }, } // runCmd represents the run command @@ -75,26 +90,6 @@ var vaultCmd = &cobra.Command{ }, } -func setFileVaultPassphrase(passphrase string) { - configFile, err := util.GetConfigFile() - if err != nil { - log.Error().Msgf("Unable to set passphrase for file vault because of [err=%s]", err) - return - } - - // encode with base64 - encodedPassphrase := base64.StdEncoding.EncodeToString([]byte(passphrase)) - configFile.VaultBackendPassphrase = encodedPassphrase - - err = util.WriteConfigFile(&configFile) - if err != nil { - log.Error().Msgf("Unable to set passphrase for file vault because of [err=%s]", err) - return - } - - util.PrintSuccessMessage("\nSuccessfully, set passphrase for file vault.\n") -} - func printAvailableVaultBackends() { fmt.Printf("Vaults are used to securely store your login details locally. Available vaults:") for _, vaultType := range AvailableVaults { @@ -111,53 +106,8 @@ func printAvailableVaultBackends() { fmt.Printf("\n\nYou are currently using [%s] vault to store your login credentials\n", string(currentVaultBackend)) } -func selectVaultTypeCmd(cmd *cobra.Command, args []string) { - wantedVaultTypeName := args[0] - currentVaultBackend, err := util.GetCurrentVaultBackend() - if err != nil { - log.Error().Msgf("Unable to set vault to [%s] because of [err=%s]", wantedVaultTypeName, err) - return - } - - if wantedVaultTypeName == string(currentVaultBackend) { - log.Error().Msgf("You are already on vault backend [%s]", currentVaultBackend) - return - } - - if wantedVaultTypeName == util.VAULT_BACKEND_AUTO_MODE || wantedVaultTypeName == util.VAULT_BACKEND_FILE_MODE { - configFile, err := util.GetConfigFile() - if err != nil { - log.Error().Msgf("Unable to set vault to [%s] because of [err=%s]", wantedVaultTypeName, err) - return - } - - configFile.VaultBackendType = wantedVaultTypeName // save selected vault - configFile.LoggedInUserEmail = "" // reset the logged in user to prompt them to re login - - err = util.WriteConfigFile(&configFile) - if err != nil { - log.Error().Msgf("Unable to set vault to [%s] because an error occurred when saving the config file [err=%s]", wantedVaultTypeName, err) - return - } - - fmt.Printf("\nSuccessfully, switched vault backend from [%s] to [%s]. Please login in again to store your login details in the new vault with [infisical login]\n", currentVaultBackend, wantedVaultTypeName) - - Telemetry.CaptureEvent("cli-command:vault set", posthog.NewProperties().Set("currentVault", currentVaultBackend).Set("wantedVault", wantedVaultTypeName).Set("version", util.CLI_VERSION)) - } else { - var availableVaultsNames []string - for _, vault := range AvailableVaults { - availableVaultsNames = append(availableVaultsNames, vault.Name) - } - log.Error().Msgf("The requested vault type [%s] is not available on this system. Only the following vault backends are available for you system: %s", wantedVaultTypeName, strings.Join(availableVaultsNames, ", ")) - } -} - func init() { - - vaultSetCmd.Flags().StringP("passphrase", "p", "", "Set the passphrase for the file vault") - vaultCmd.AddCommand(vaultSetCmd) - vaultCmd.AddCommand(vaultUseCmd) rootCmd.AddCommand(vaultCmd) } From 385afdfcf8fe21eaa2317307972b8364317b7a55 Mon Sep 17 00:00:00 2001 From: Maidul Islam Date: Thu, 8 Aug 2024 13:03:45 -0400 Subject: [PATCH 40/71] generate random string fn --- cli/packages/util/constants.go | 3 +-- cli/packages/util/helper.go | 11 +++++++++++ cli/packages/util/keyringwrapper.go | 29 ++++------------------------- docs/cli/commands/vault.mdx | 5 +---- 4 files changed, 17 insertions(+), 31 deletions(-) diff --git a/cli/packages/util/constants.go b/cli/packages/util/constants.go index 432b1cb82..1f9ec0c65 100644 --- a/cli/packages/util/constants.go +++ b/cli/packages/util/constants.go @@ -38,8 +38,7 @@ const ( SERVICE_TOKEN_IDENTIFIER = "service-token" UNIVERSAL_AUTH_TOKEN_IDENTIFIER = "universal-auth-token" - // akhilmhdh: @depreciated remove in version v0.30 - INFISICAL_BACKUP_SECRET = "infisical-backup-secrets" + INFISICAL_BACKUP_SECRET = "infisical-backup-secrets" // akhilmhdh: @depreciated remove in version v0.30 INFISICAL_BACKUP_SECRET_ENCRYPTION_KEY = "infisical-backup-secret-encryption-key" ) diff --git a/cli/packages/util/helper.go b/cli/packages/util/helper.go index 9ce8c4a1d..69a310efa 100644 --- a/cli/packages/util/helper.go +++ b/cli/packages/util/helper.go @@ -5,6 +5,7 @@ import ( "crypto/sha256" "encoding/base64" "fmt" + "math/rand" "os" "os/exec" "path" @@ -25,6 +26,8 @@ type DecodedSymmetricEncryptionDetails = struct { Key []byte } +const charset = "abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ0123456789" + func GetBase64DecodedSymmetricEncryptionDetails(key string, cipher string, IV string, tag string) (DecodedSymmetricEncryptionDetails, error) { cipherx, err := base64.StdEncoding.DecodeString(cipher) if err != nil { @@ -287,3 +290,11 @@ func GetCmdFlagOrEnv(cmd *cobra.Command, flag, envName string) (string, error) { } return value, nil } + +func GenerateRandomString(length int) string { + b := make([]byte, length) + for i := range b { + b[i] = charset[rand.Intn(len(charset))] + } + return string(b) +} diff --git a/cli/packages/util/keyringwrapper.go b/cli/packages/util/keyringwrapper.go index 065271906..9c8211a3c 100644 --- a/cli/packages/util/keyringwrapper.go +++ b/cli/packages/util/keyringwrapper.go @@ -4,7 +4,6 @@ import ( "encoding/base64" "fmt" - "github.com/manifoldco/promptui" "github.com/rs/zerolog/log" "github.com/zalando/go-keyring" ) @@ -32,17 +31,9 @@ func SetValueInKeyring(key, value string) error { configFile, _ := GetConfigFile() if configFile.VaultBackendPassphrase == "" { - PrintWarning("System keyring could not be used, falling back to `file` vault for sensitive data storage.") - passphrasePrompt := promptui.Prompt{ - Label: "Enter the passphrase to use for keyring encryption", - } - passphrase, err := passphrasePrompt.Run() - if err != nil { - return err - } - - encodedPassphrase := base64.StdEncoding.EncodeToString([]byte(passphrase)) + encodedPassphrase := base64.StdEncoding.EncodeToString([]byte(GenerateRandomString(10))) // generate random passphrase configFile.VaultBackendPassphrase = encodedPassphrase + configFile.VaultBackendType = VAULT_BACKEND_FILE_MODE err = WriteConfigFile(&configFile) if err != nil { return err @@ -64,13 +55,7 @@ func GetValueInKeyring(key string) (string, error) { if err != nil { PrintErrorAndExit(1, err, "Unable to get current vault. Tip: run [infisical reset] then try again") } - - value, err := keyring.Get(currentVaultBackend, MAIN_KEYRING_SERVICE, key) - - if err != nil { - value, err = keyring.Get(VAULT_BACKEND_FILE_MODE, MAIN_KEYRING_SERVICE, key) - } - return value, err + return keyring.Get(currentVaultBackend, MAIN_KEYRING_SERVICE, key) } @@ -80,11 +65,5 @@ func DeleteValueInKeyring(key string) error { return err } - err = keyring.Delete(currentVaultBackend, MAIN_KEYRING_SERVICE, key) - - if err != nil { - err = keyring.Delete(VAULT_BACKEND_FILE_MODE, MAIN_KEYRING_SERVICE, key) - } - - return err + return keyring.Delete(currentVaultBackend, MAIN_KEYRING_SERVICE, key) } diff --git a/docs/cli/commands/vault.mdx b/docs/cli/commands/vault.mdx index 803af127f..b09513c34 100644 --- a/docs/cli/commands/vault.mdx +++ b/docs/cli/commands/vault.mdx @@ -30,8 +30,5 @@ description: "Change the vault type in Infisical" ## Description -To safeguard your login details when using the CLI, Infisical places them in a system vault or an encrypted text file, protected by a passphrase that only the user knows. - -To avoid constantly entering your passphrase when using the `file` vault type, use the `infisical vault set file --passphrase ` CLI command to specify your password once. - +To safeguard your login details when using the CLI, Infisical attempts to store them in a system keyring. If a system keyring cannot be found on your machine, the data is stored in a config file. From a42f3b37637673c2ff97eb92b8959560a48fdb89 Mon Sep 17 00:00:00 2001 From: Maidul Islam Date: Thu, 8 Aug 2024 13:50:34 -0400 Subject: [PATCH 41/71] remove INFISICAL_VAULT_FILE_PASSPHRASE because it is being auto generated now --- .github/workflows/run-cli-tests.yml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/.github/workflows/run-cli-tests.yml b/.github/workflows/run-cli-tests.yml index f8e9d7797..da6f507a7 100644 --- a/.github/workflows/run-cli-tests.yml +++ b/.github/workflows/run-cli-tests.yml @@ -50,6 +50,6 @@ jobs: CLI_TESTS_ENV_SLUG: ${{ secrets.CLI_TESTS_ENV_SLUG }} CLI_TESTS_USER_EMAIL: ${{ secrets.CLI_TESTS_USER_EMAIL }} CLI_TESTS_USER_PASSWORD: ${{ secrets.CLI_TESTS_USER_PASSWORD }} - INFISICAL_VAULT_FILE_PASSPHRASE: ${{ secrets.CLI_TESTS_INFISICAL_VAULT_FILE_PASSPHRASE }} + # INFISICAL_VAULT_FILE_PASSPHRASE: ${{ secrets.CLI_TESTS_INFISICAL_VAULT_FILE_PASSPHRASE }} run: go test -v -count=1 ./test From 2d8160604913815d27e103b717affb69ccb95e7d Mon Sep 17 00:00:00 2001 From: Maidul Islam Date: Thu, 8 Aug 2024 14:03:52 -0400 Subject: [PATCH 42/71] update test with typo fix --- .../.snapshots/test-testUserAuth_SecretsGetAllWithoutConnection | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/cli/test/.snapshots/test-testUserAuth_SecretsGetAllWithoutConnection b/cli/test/.snapshots/test-testUserAuth_SecretsGetAllWithoutConnection index c48627f73..71a189a65 100644 --- a/cli/test/.snapshots/test-testUserAuth_SecretsGetAllWithoutConnection +++ b/cli/test/.snapshots/test-testUserAuth_SecretsGetAllWithoutConnection @@ -1,4 +1,4 @@ -Warning: Unable to fetch latest secret(s) due to connection error, serving secrets from last successful fetch. For more info, run with --debug +Warning: Unable to fetch the latest secret(s) due to connection error, serving secrets from last successful fetch. For more info, run with --debug ┌───────────────┬──────────────┬─────────────┐ │ SECRET NAME │ SECRET VALUE │ SECRET TYPE │ ├───────────────┼──────────────┼─────────────┤ From e313c866a21e8143016eb018b2d85b3500f5d69e Mon Sep 17 00:00:00 2001 From: Maidul Islam Date: Thu, 8 Aug 2024 14:25:12 -0400 Subject: [PATCH 43/71] remove backup test for temp --- cli/test/secrets_test.go | 7 +++---- 1 file changed, 3 insertions(+), 4 deletions(-) diff --git a/cli/test/secrets_test.go b/cli/test/secrets_test.go index f5d5a7b1f..f11392f52 100644 --- a/cli/test/secrets_test.go +++ b/cli/test/secrets_test.go @@ -7,7 +7,6 @@ import ( "github.com/bradleyjkemp/cupaloy/v2" ) - func TestServiceToken_SecretsGetWithImportsAndRecursiveCmd(t *testing.T) { output, err := ExecuteCliCommand(FORMATTED_CLI_NAME, "secrets", "--token", creds.ServiceToken, "--projectId", creds.ProjectID, "--env", creds.EnvSlug, "--recursive", "--silent") @@ -94,7 +93,7 @@ func TestUserAuth_SecretsGetAll(t *testing.T) { } // explicitly called here because it should happen directly after successful secretsGetAll - testUserAuth_SecretsGetAllWithoutConnection(t) + // testUserAuth_SecretsGetAllWithoutConnection(t) } func testUserAuth_SecretsGetAllWithoutConnection(t *testing.T) { @@ -107,7 +106,7 @@ func testUserAuth_SecretsGetAllWithoutConnection(t *testing.T) { // set it to a URL that will always be unreachable newConfigFile.LoggedInUserDomain = "http://localhost:4999" util.WriteConfigFile(&newConfigFile) - + // restore config file defer util.WriteConfigFile(&originalConfigFile) @@ -121,4 +120,4 @@ func testUserAuth_SecretsGetAllWithoutConnection(t *testing.T) { if err != nil { t.Fatalf("snapshot failed: %v", err) } -} \ No newline at end of file +} From 5176e704376a6876ed5f1709d7d930ac2917fd57 Mon Sep 17 00:00:00 2001 From: Maidul Islam Date: Thu, 8 Aug 2024 18:15:13 -0400 Subject: [PATCH 44/71] rephrase error messages --- backend/src/lib/api-docs/constants.ts | 2 +- backend/src/server/routes/v1/secret-tag-router.ts | 2 +- frontend/src/components/tags/CreateTagModal/CreateTagModal.tsx | 2 +- .../components/SecretTagsSection/AddSecretTagModal.tsx | 2 +- 4 files changed, 4 insertions(+), 4 deletions(-) diff --git a/backend/src/lib/api-docs/constants.ts b/backend/src/lib/api-docs/constants.ts index 4ea51df2b..43c40d154 100644 --- a/backend/src/lib/api-docs/constants.ts +++ b/backend/src/lib/api-docs/constants.ts @@ -597,7 +597,7 @@ export const RAW_SECRETS = { environment: "The slug of the environment to list secrets from.", secretPath: "The secret path to list secrets from.", includeImports: "Weather to include imported secrets or not.", - tagSlugs: "The comma seperated tag slugs to filter secrets" + tagSlugs: "The comma separated tag slugs to filter secrets" }, CREATE: { secretName: "The name of the secret to create.", diff --git a/backend/src/server/routes/v1/secret-tag-router.ts b/backend/src/server/routes/v1/secret-tag-router.ts index 9fc08d6c7..99f04c6bd 100644 --- a/backend/src/server/routes/v1/secret-tag-router.ts +++ b/backend/src/server/routes/v1/secret-tag-router.ts @@ -158,7 +158,7 @@ export const registerSecretTagRouter = async (server: FastifyZodProvider) => { .trim() .describe(SECRET_TAGS.UPDATE.slug) .refine((v) => slugify(v) === v, { - message: "Invalid slug. Should contain only characters, numbers and hyphen." + message: "Invalid slug. Slug can only contain alphanumeric characters and hyphens." }), color: z.string().trim().describe(SECRET_TAGS.UPDATE.color) }), diff --git a/frontend/src/components/tags/CreateTagModal/CreateTagModal.tsx b/frontend/src/components/tags/CreateTagModal/CreateTagModal.tsx index 5eabb093d..acbcdcb2d 100644 --- a/frontend/src/components/tags/CreateTagModal/CreateTagModal.tsx +++ b/frontend/src/components/tags/CreateTagModal/CreateTagModal.tsx @@ -93,7 +93,7 @@ const createTagSchema = z.object({ .trim() .toLowerCase() .refine((v) => slugify(v) === v, { - message: "Invalid slug. Should contain only characters, numbers and hyphen." + message: "Invalid slug. Slug can only contain alphanumeric characters and hyphens." }), color: z.string().trim() }); diff --git a/frontend/src/views/Settings/ProjectSettingsPage/components/SecretTagsSection/AddSecretTagModal.tsx b/frontend/src/views/Settings/ProjectSettingsPage/components/SecretTagsSection/AddSecretTagModal.tsx index 0a2c4856e..75f6b69bf 100644 --- a/frontend/src/views/Settings/ProjectSettingsPage/components/SecretTagsSection/AddSecretTagModal.tsx +++ b/frontend/src/views/Settings/ProjectSettingsPage/components/SecretTagsSection/AddSecretTagModal.tsx @@ -11,7 +11,7 @@ import { UsePopUpState } from "@app/hooks/usePopUp"; const schema = z.object({ slug: z.string().refine((v) => slugify(v) === v, { - message: "Invalid slug. Should contain only characters, numbers and hyphen." + message: "Invalid slug. Slug can only contain alphanumeric characters and hyphens." }) }); From 99403e122b66244b16311be79f7e86e335d7fde0 Mon Sep 17 00:00:00 2001 From: Ayush Dutt Sharma Date: Fri, 9 Aug 2024 14:33:29 +0530 Subject: [PATCH 45/71] kubernetes operators integration doc fix --- docs/integrations/platforms/kubernetes.mdx | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/docs/integrations/platforms/kubernetes.mdx b/docs/integrations/platforms/kubernetes.mdx index 9ab7347ac..57329d4fd 100644 --- a/docs/integrations/platforms/kubernetes.mdx +++ b/docs/integrations/platforms/kubernetes.mdx @@ -10,7 +10,7 @@ It uses an `InfisicalSecret` resource to specify authentication and storage meth The operator continuously updates secrets and can also reload dependent deployments automatically. - If you are already using the External Secrets operator, you can you can view the integration documentation for it [here](https://external-secrets.io/latest/provider/infisical/). + If you are already using the External Secrets operator, you can view the integration documentation for it [here](https://external-secrets.io/latest/provider/infisical/). ## Install Operator From 1fc18fe23b1448011ab051e683951253b498dc94 Mon Sep 17 00:00:00 2001 From: = Date: Fri, 9 Aug 2024 14:37:42 +0530 Subject: [PATCH 46/71] feat: added name in attach tag --- .../src/server/routes/v1/secret-tag-router.ts | 1 + backend/src/server/routes/v3/secret-router.ts | 31 ++++++++++--------- backend/src/services/secret/secret-service.ts | 2 +- 3 files changed, 18 insertions(+), 16 deletions(-) diff --git a/backend/src/server/routes/v1/secret-tag-router.ts b/backend/src/server/routes/v1/secret-tag-router.ts index 99f04c6bd..7d696999e 100644 --- a/backend/src/server/routes/v1/secret-tag-router.ts +++ b/backend/src/server/routes/v1/secret-tag-router.ts @@ -81,6 +81,7 @@ export const registerSecretTagRouter = async (server: FastifyZodProvider) => { }), response: { 200: z.object({ + // akhilmhdh: for terraform backward compatiability workspaceTag: SecretTagsSchema.extend({ name: z.string() }) }) } diff --git a/backend/src/server/routes/v3/secret-router.ts b/backend/src/server/routes/v3/secret-router.ts index bb2d6d827..7a1868fef 100644 --- a/backend/src/server/routes/v3/secret-router.ts +++ b/backend/src/server/routes/v3/secret-router.ts @@ -59,9 +59,10 @@ export const registerSecretRouter = async (server: FastifyZodProvider) => { tags: SecretTagsSchema.pick({ id: true, slug: true, - name: true, color: true - }).array() + }) + .extend({ name: z.string() }) + .array() }) ) }) @@ -116,16 +117,15 @@ export const registerSecretRouter = async (server: FastifyZodProvider) => { }), response: { 200: z.object({ - secret: SecretsSchema.omit({ secretBlindIndex: true }).merge( - z.object({ - tags: SecretTagsSchema.pick({ - id: true, - slug: true, - name: true, - color: true - }).array() + secret: SecretsSchema.omit({ secretBlindIndex: true }).extend({ + tags: SecretTagsSchema.pick({ + id: true, + slug: true, + color: true }) - ) + .extend({ name: z.string() }) + .array() + }) }) } }, @@ -196,9 +196,9 @@ export const registerSecretRouter = async (server: FastifyZodProvider) => { tags: SecretTagsSchema.pick({ id: true, slug: true, - name: true, color: true }) + .extend({ name: z.string() }) .array() .optional() }) @@ -332,9 +332,9 @@ export const registerSecretRouter = async (server: FastifyZodProvider) => { tags: SecretTagsSchema.pick({ id: true, slug: true, - name: true, color: true }) + .extend({ name: z.string() }) .array() .optional() }) @@ -738,9 +738,10 @@ export const registerSecretRouter = async (server: FastifyZodProvider) => { tags: SecretTagsSchema.pick({ id: true, slug: true, - name: true, color: true - }).array() + }) + .extend({ name: z.string() }) + .array() }) .array(), imports: z diff --git a/backend/src/services/secret/secret-service.ts b/backend/src/services/secret/secret-service.ts index f338d1fda..57f301594 100644 --- a/backend/src/services/secret/secret-service.ts +++ b/backend/src/services/secret/secret-service.ts @@ -2086,7 +2086,7 @@ export const secretServiceFactory = ({ return { ...updatedSecret[0], - tags: [...existingSecretTags, ...tags].map((t) => ({ id: t.id, slug: t.slug, color: t.color })) + tags: [...existingSecretTags, ...tags].map((t) => ({ id: t.id, slug: t.slug, name: t.slug, color: t.color })) }; }; From 635fbdc80b36d5650538e8cc326300f608e80b7a Mon Sep 17 00:00:00 2001 From: Sheen Capadngan Date: Fri, 9 Aug 2024 21:29:33 +0800 Subject: [PATCH 47/71] misc: addressedm misleading docs and placeholder values for google saml --- .../platform/sso/google-saml.mdx | 40 ++++++++++-------- .../sso/google-saml/infisical-config.png | Bin 619612 -> 223805 bytes .../components/OrgAuthTab/SSOModal.tsx | 11 +++-- 3 files changed, 30 insertions(+), 21 deletions(-) diff --git a/docs/documentation/platform/sso/google-saml.mdx b/docs/documentation/platform/sso/google-saml.mdx index 1897a651a..da34e076a 100644 --- a/docs/documentation/platform/sso/google-saml.mdx +++ b/docs/documentation/platform/sso/google-saml.mdx @@ -4,10 +4,10 @@ description: "Learn how to configure Google SAML for Infisical SSO." --- - Google SAML SSO feature is a paid feature. - - If you're using Infisical Cloud, then it is available under the **Pro Tier**. If you're self-hosting Infisical, - then you should contact sales@infisical.com to purchase an enterprise license to use it. + Google SAML SSO feature is a paid feature. If you're using Infisical Cloud, + then it is available under the **Pro Tier**. If you're self-hosting Infisical, + then you should contact sales@infisical.com to purchase an enterprise license + to use it. @@ -15,8 +15,9 @@ description: "Learn how to configure Google SAML for Infisical SSO." In Infisical, head to your Organization Settings > Authentication > SAML SSO Configuration and select **Set up SAML SSO**. Next, note the **ACS URL** and **SP Entity ID** to use when configuring the Google SAML application. - + ![Google SAML initial configuration](../../../images/sso/google-saml/init-config.png) + 2.1. In your [Google Admin console](https://support.google.com/a/answer/182076), head to Menu > Apps > Web and mobile apps and @@ -32,7 +33,7 @@ description: "Learn how to configure Google SAML for Infisical SSO." ![Google SAML custom app details](../../../images/sso/google-saml/custom-saml-app-config.png) - 2.4. Back in Infisical, set **SSO URL**, **IdP Entity ID**, and **Certificate** to the corresponding items from step 2.3. + 2.4. Back in Infisical, set **SSO URL** and **Certificate** to the corresponding items from step 2.3. ![Google SAML Infisical config](../../../images/sso/google-saml/infisical-config.png) @@ -41,7 +42,7 @@ description: "Learn how to configure Google SAML for Infisical SSO." Also, check the **Signed response** checkbox. ![Google SAML app config 2](../../../images/sso/google-saml/custom-saml-app-config-2.png) - + 2.6. In the **Attribute mapping** tab, configure the following map: - **First name** -> **firstName** @@ -49,7 +50,7 @@ description: "Learn how to configure Google SAML for Infisical SSO." - **Primary email** -> **email** ![Google SAML attribute mapping](../../../images/sso/google-saml/attribute-mapping.png) - + Click **Finish**. @@ -57,11 +58,11 @@ description: "Learn how to configure Google SAML for Infisical SSO." and press on **User access**. ![Google SAML user access](../../../images/sso/google-saml/user-access.png) - + To assign everyone in your organization to the application, click **On for everyone** or **Off for everyone** and then click **Save**. - + You can also assign an organizational unit or set of users to an application; you can learn more about that [here](https://support.google.com/a/answer/6087519?hl=en#add_custom_saml&turn_on&verify_sso&&zippy=%2Cstep-add-the-custom-saml-app%2Cstep-turn-on-your-saml-app%2Cstep-verify-that-sso-is-working-with-your-custom-app). - + ![Google SAML user access assignment](../../../images/sso/google-saml/user-access-assign.png) @@ -75,21 +76,24 @@ description: "Learn how to configure Google SAML for Infisical SSO." To enforce SAML SSO, you're required to test out the SAML connection by successfully authenticating at least one Google user with Infisical; Once you've completed this requirement, you can toggle the **Enforce SAML SSO** button to enforce SAML SSO. - + We recommend ensuring that your account is provisioned the application in Google prior to enforcing SAML SSO to prevent any unintended issues. + - If you're configuring SAML SSO on a self-hosted instance of Infisical, make sure to - set the `AUTH_SECRET` and `SITE_URL` environment variable for it to work: - - - `AUTH_SECRET`: A secret key used for signing and verifying JWT. This can be a random 32-byte base64 string generated with `openssl rand -base64 32`. - - `SITE_URL`: The URL of your self-hosted instance of Infisical - should be an absolute URL including the protocol (e.g. https://app.infisical.com) + If you're configuring SAML SSO on a self-hosted instance of Infisical, make + sure to set the `AUTH_SECRET` and `SITE_URL` environment variable for it to + work: - `AUTH_SECRET`: A secret key used for signing and verifying JWT. This + can be a random 32-byte base64 string generated with `openssl rand -base64 + 32`. - `SITE_URL`: The URL of your self-hosted instance of Infisical - should + be an absolute URL including the protocol (e.g. https://app.infisical.com) References: -- Google's guide to [set up your own custom SAML app](https://support.google.com/a/answer/6087519?hl=en#add_custom_saml&turn_on&verify_sso&&zippy=%2Cstep-add-the-custom-saml-app%2Cstep-turn-on-your-saml-app%2Cstep-verify-that-sso-is-working-with-your-custom-app). \ No newline at end of file + +- Google's guide to [set up your own custom SAML app](https://support.google.com/a/answer/6087519?hl=en#add_custom_saml&turn_on&verify_sso&&zippy=%2Cstep-add-the-custom-saml-app%2Cstep-turn-on-your-saml-app%2Cstep-verify-that-sso-is-working-with-your-custom-app). diff --git a/docs/images/sso/google-saml/infisical-config.png b/docs/images/sso/google-saml/infisical-config.png index 250b4ed37c031ecbe66ce64ad965b1a7f63f075b..31943df81b216b1147e675dd665875f0c5ee0e9a 100644 GIT binary patch literal 223805 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 Zzb7WW1Y*4eEw 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

{FgFpcKzR5d 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�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 literal 619612 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%0DmC1H~Pu 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

?=`9C`BHJ!Enxxw-8Q$*Si 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≦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%0DZF_}*rTa1dcTz+5Qp$m3d}oD>66}^5}xjuTT&xm zI~|jKQrMCh4PvL6pDr_=I{z9#4Oe-i#548g*I&PdXEQOzAAx-BOlDBt0e=y0vSTo} zX{)5J$shlfha1aXGr{7O`HxiQe7}@@5BRIDzWJIfe7(d2QFcA0HmXDKA>I1TgGBX^ z^((H#im=}WH4Exprj`6j3!^ggAjS8wGte62ynV6L)fyhwE$#W>&{#2nxJb8m(bBs2 zb=xiOZwhUR`Q_uRnjTOc&$kK^tL2-3{(SsxGJ{taCA=W>{#{sWQ|n5sDA^4Db581iWO zb27dms9efX0%`jBw)D`@YO($Pf(Nxyx7X>A9pQ;Tqh##3!^u--)Tp-Xg^td)8rTxW z==UDzs>r*1g5}Km!b}B=hIeno*|bs>RE%QZC9Gy1)zdjgZt582?&p!-(fI_DL$Rq$ zy=y_S_qaT>vA3u4+P6EZ7sNHfaj7drNYduNx?E+J5_me}$zweNec(?V)3a$&*4e}@ z1X{^!Ml&Tl?AmvFGPjq{3H+1xm!Idpdh&3me+^8x=QHX{wdT@j85cn6nmg} zq*JLcb6q^fev^fShOd6euXKBV~V0oX7ZtT$%m>RRA^puQ3e+YODVKzc&n}998lw zhp$Ha%~^e8my=hIv9kf3+c$u=t_d63(UC7r5r1V$HF{Z~(HeX`OvRcTV*{mKeYOrF zKCYy3hckc8e%^h>(V=%{?g4f-zS^fQj=4^d$XdDljQ%xfAW?wQR z>(-=)XtrEEPTnGA3n-xVdHVF}TKATbh|MTr*kI_({+DamiWX*k3RG0DBRLd8Nx}!h zpIkxGzQ$fv{0@moi}lESL;OCG?ub>{o<)jVzAK+ubLQ_l?f^@O-}^^h{vt3eIs#?i z8k24_M(st08FstnK5_63&-=GOfZUb-4ztM*@i<%_PPkRW-Iy*EoUg9kv-Bwx!toMj zm@>UKL!aIWkwWY?L%a|nmCRx3qzO?4A`HoTrh285RhlE|o6NB~ETynNRZl0^Am7W0 zCgWQ^9rGq0ton8CeYz}F^yLk;*0(ib=yD+8)t!$~!{&v0c@D}gSB7gke0QX_ev7MG zbTjQfPO70Ton>F86*D!OB~`?%paCbR`q|eVk>FgdMX7FU5I8F-&N`YhqqXT2EnuD_ zmYw0H4tr9hkx8R2@0+)a9GjJf`!XKod6`O{GL=WVhvh7PT1VZd+mQ2p7tyQ7ptlkz z&##XZYz~huXv29~)!njBn>9`<>A|T5##KIUoOapDaUPhZn>p8(Z~IVCm#%T#81am^ z^sH&I>-V~}@&j>h-ZZq;cvtXm%Yv90k5@%WY-~&#}DJT@?G_Udg8Q`p~-q9C{t{-mMT z-bs#p3(L$A{n`7a0mC_vQ+|e?hZPSsdE?CAL=@lc#=+lm^WC+fFX&WNcT1QCZV;Iu zL6vz^FMn0cA;TirnaI8Ch}tGGx!<;}(?u@=I-}q1CD#MseopVPAC9S;b(2LZ?9JE( z>^P+|QK^{4sxgD_)bWD4dIbs&YL-N6Q#IvRj^!Gj%+LvBYy`BMD}u`gw4~OxjhGW@ zVBHI7Qn)__XEzSxWvD{!ruB7-dFlDDa>tlhFf~AdqEGo5e!Ig|$@|GEmqZSGp1KT| z%34aP!%*Zi)!n!JI`lD;TZ+pC-(?tPGJ&@nc^wuPD>e`joMf+^%N6uVN z%0kkp-mJ|rtxd~XgQFQ%%d|IE34=x@(tFP`O9!lGOS#lpPzW@V$leZnOj8<5%#EfC znzkNatM6KnJtjID9cv9M$jubO5Jcp{c;7sOYq#6{(cQbZ>=hP^ACSO}AH;`G;xxqU z*2?X#&$yT-0RiW394#`lauS;&wNDlO7BQ`rZx#TVC~AsXQuak=)xRK(4sQ|TghnVD zJJ&`_u5L^&NnAsat)&F*-d7i1E=$c+rtUwr##%9F4}9^h1{kKirS?k_NBGi9?~Xf` z1M)T5|4I!!!RQ}SFJvnI`d?u>SCN^y;Jo;Z1JWNAn)FxUoPG$kkGe;d(Vou3M(>hU z!{Cm~!UO$f`tk88h#R<)4+MtR-NZc~o{Z(no~wFvs7Ib>Y~d1Z8AaJUG&oa~mWo6S zXP0h`@TgTJ48KxQtVNzaIz@1Er+e60<;2MuMf)P*`u5c1=tPe}%yV+H_8XQf@gJEF-+UC`nG)75 z&@!!=!$g0*)t0`~wh7|Vf5VOP;VnAFE{W-*x57Vsh5Uth+>1mL<~$zaOJn~ zGegEn#`w4&kGsWYc=XrUCFZ^nQRXvw0q5^)-D*muPK(yaw(3qa?^=39WkzCch`3un zU6+Mck({!DaB&CNlVMPwbO#a0%96w`Cf({pI>TN#xsjs|{t)s8bkN$~W^h@iu=%F0 z(|ce=X1`{jY%-}AeKjM6guVP*(s+m`pGo+sPKp*O(0o`IN;2W`Xe*J+(1tyO=hAWB zY2$-<7Q(jv7PaD)u{itK>DIP>9+Jf$51bUKZ8rg#ERHdbngisIxzqA2;6DvMU@NI1 zZWA5YPMw&xWyI53nxZgS0j58As{Sj5UKRayRYc_Vp{bU+`QA3enqwY;@6v+;3Kn2n z3iSnt%Hll65tK{2HP^@6Jg=Q=-I7IVw?x=`@&)`OB;q*-ckuH;gKUzQ<~Px%r`^GA z8vNsBEY%{!EWq~Q=|Tbu@U)`;%oF&hGgu_%r)zH^*?lRGQSl$8YiJE|v${_V(gAfV zH(Qj|1%7D_A)%`aucPjZjg$V79fL|aeM0sP#T~=b$8AcLFtdaF z7OTw~Bnd#|YP|W7`)M>YJhuN0_eWYsrs})vInY!AUq9i&Lak2lWsZ8}RFhzwUH_4T z+N|x+_nSW|#pr#!EspW;PCL`Z1$C~l>+w>>CW&gqw!@l*i){7XlA{YuC_t6y`&caT zP3q{qAxxwrNJxLRTT+#o7e@A&^Ci`J!7DjN+4PeJr0AusB9XMyV%@kQ8DJ*9iu?FD znc86}-C@Rd-w@EOg<-4SDaa_^(TX@P`FuCtQ7xdex;N+8&91=?D)*W&{63l3xf7_c z-Z)?8nMrmvDPQbuH}c8f(nKRaB8oX>_WTq$eSP*7>uD(@{;1kE9<}ZeNhwaqkgPu9 zN5z_Wl`LRZhG3?E+R0}0YX{0AYME@pZf-tm2lFkuIqzY)XVW-%XEuJyO6fBC1#fE8 z+~9DVaC!e8W6+ZSC*~v|B`Z+81LG|GNG0&wb49s+TV5vBhki;YR zqFuJL>!qrdanLud3BJYPTk=-@zaEK5IzNcv+ZHUO{`wIZlZ8fV!D?C;cJn<+%~biY zvYytfMgd$9c#3&LX2@y$D0%U@13(h+qe@|r+thTI`2_WC^H{z7vReP+U-ijiuBb=N znVKQ7Z_tOIzmoju-LuK|Ax5@39IzgWz)$&Gwh55gHf_+R$*U&MKYZCVtI_klo-ZHkbeBvLzj3Y}sn^9YNoAwmsAXg4mKnC20{45i zX4t`rVR<#?z~Db18p$s&2lC-O`ch`ID@1!^f$SgJlX`K%wHqRV&!sc>gyi=++R_PM zgUp;!hcdO~opNL>QlEGBxmnzxLAR=T#JXFThl>K!*-Rteit{~(@erB9Bz8yNfd&7* z_lU+pyhtiO-TN<>vQ!4fT7N`lH#stW((6t}FMY-Rj}PiUJXZVNO(L~MT{|m_-f`eI zU-Cd`{swBjzg%ymYB-$>LcvS7f?m>W6%Koz6xlQq0w;4=Pr5v`o4nX1(kTO*J>8xL z{_1-5Vqowtk)z6YjP-eQNNq1bi(CkPtkMNutAubF{l>(a)r0R>Kaj)N?)5BgJlf2v zd~&b-_6wNKwNE1hU(JT650Bv+r68nxB`QR+W2L!*(8evX#A)}K3kwh3S_wBMg3elc zB)(Zj?D)V>Si{&Vs_rK*0sjKJoJyHjuzT!)`O5vQLvaflJo&eF@Z0;G#Y$(>G!}wJ z&vWj2Q_Se;yf)VxBfc3-8Ct7A$KQNuGS+H?qT_p|^CSZKcW<^FyXeBX_T!y&yGkrH zf)Zis8m=FhYcc4@sh&E?9;h;wJ$z)f4rZb`U1*1wpuEzuUJcd$vD?NKj|rk>t? zSsrO}yz@QWft?#3Abah+|-fqgZIwjP-a-oYgd;-ZK7Y|cD} zhTqd0WGWwXW%Jd7{mQ|?AEzNfZ_|@2+ zH{V&2skBG{|MqfsqIfvRJSYk%gg>6Wnb@}ns-YN%HKrkwTr||dJ+5y2kM5+N z!!!eBZPq4>>IhBlxfnR;l z!G8ow?A?>CJxpvZi(5(c95BAeqW;yfWM6sal3ROYMC`YUr|dtC<9+1z2X+7STVy4w zpGJ0qy`%c!lAq$+sYlqj7~T2C@BHQjM*sBgsZ^okaurM^ZtzhKQT;9(lZ4}6A7V=@ zg2}nBI)7k`p4c|7)M;s(--HcABF%Ht?Cgr5-*B8;T&i~1W2UXY_nus88@tJa&R_^b z$q)B0?>NMwD7Qf8hoz+>Zqi4(UulFti7PiL;68h#!s0aBmbHtk9vv)BI7g=NUKIGI zg8sC!TFg60h0zfs0AiMJxq0j6xiUycQV_tw!6scRtA~6{yKZ+c>l&)ka&gd^+3>1&iOTbQxa_{<1q_MbZ@Q=kd z;97~P?asV$=6mv+$N#%J8)#|7EbyAU*ziZQMX(ho(a*zK7M<(!BzL|GzhsWpC%i|k zKum^q%@wIL$et*Etk`?X+O6>E70)}ilj_cHQJS*5GYHk*XKM0BWFwlg_Tz_4xqcMA z(X$n=`qncv{%IUev%Ow8``HOYUPVRp+O_$!uvqEMNLIZjNAfE!f%m3k&41rH9cS68 zM&014G@2&|r1c>sy>?3^|F%ZPAYaw7nHllR?5h|ezj=gZ&jxHa8liQrx@%PchVMnn zY)ALsxLcIV`cL(yd?@7$t=7)Qx%#s94O;7^Z)AwzdLnsq3@Hk4zq3$ezX^GAmF5aC za(y zbzA0O*dxakxul#2yaw<_-NRT3Zma?HkABii#%L$3U;+i-JpT+=kCxoRVbJP*av|K^ zZBncsyqgn5ibvx~=fstCJ91Ihxq_wrnzv(aoy)*f9_tLMe~whXTa6)l4t(ES-W;EA zipWN9tfOj`z=>i>X5=YEgeP7Tgw(>Rk!bGz_%m(mr`)KC=-YjYOs1m<_98R4b1(k1 zvubUiKCY@3;-|0d2P?24}WaO7<7_9=0uY^t>#zoEnun2;qAMOTR3xnA0Xg z)(u_ABu4Gqr!aW=!-0$*c?BA2`AJnXUq9B=>=t)1lWcvzO7ZwR;av*GTf*NH)Kv`JlT&kwy#=%z+L-aJ;U*ZlZ4QwtN@CjtqR<)b#Yot;+^QS#sWf@WvMZulh4j6kAwYP<6lrgYIpvZB16S6TDcul62 zm7248tj&#T$Po9IS0AsT)`X#khWOpL@(gRL&uKjZtzBZ}}rwesE7*K}O#R9yyGS4XG9l9My7L?!H#DG>G#rY_>M&EC|+^J1*+{&4Yn zDq?NTn$cmmsE%X#d=@wJXyFlB#Pbf}U}}lk7sAWh^?+iAcbIr$*H?r0HCQCG*nY|R zd;iXPXynk3`D$JG9d?a8tt_I!Kp{^uxYWopdO-&c-#enuBrZN^X`guCJ@19^aR2ki zeD}M~sHav@kD)(COg|ss@s|9+0m8kWqyx5xns^*Ue~Gc8*5sr!ZLIb4sj z+(fmG=iTY}JP5QV8yPs1=K1HFL$gHZy(Fs|*yrqKpNCa)H?x7|}V?TiENkX<=c|GJ<;0%moI*FCcK)@Wuv$+i)TL6#qw!V;goyc7v@Q7uM zUbaYFD_pl+oxY@5vBT9O>`($^zUqig=)-6^-BCNjo^;guI^9iMMHg@Ax3PsnnSY#M z(+Dzi1r}C}9QwRsuqzGSSil_qk^n@;g(+fE&7-F~gYdf5bcsyy2HjMO#kn5j6V_F} z7q;QInAf{BGz+;)HP-z`TEQmC_=qLtU6y>zPu|&wJ;&=X2O_5);pE|HZvn$X=KwnL zFS&_*7Fq8U5^)uKJgQ}P#Fu0ewlihsG zDIVhGsAi@CWp_FdB0QozUyDhGUmY~`URzS_6+k~1LTE1<0fAd5FUi*(S%6Tsn~s#< zN^;K?!2jw4g=RP{k=cbJm{@`!P#=3noa61lHfq|==0+6=S26M1SjCgZaWN)@`r1H2 z4_Bx{_C6X}-g%ydR-}W9F7V=yXjVBC{T?~w)>Z%09JN2Gh4zo30_mI^)hUGEZ(+7h zMSZtNrN(}r$>_DE)?+Iq7j#1T%-S?4dLkk|*%1x;mG4Y77B9FVOrP@kocgL-JkElu z^i?#K@GP45|GTH*eA_a@QoW}22v<7(E2io3dI3xFW|E}Nj^5h47)llxH&!VoR;gO8 zUH-F=?<%E1b3awuK%^hIlVyxZZ9!Ii9$9T@`;pTl2{@o-|8Tnp=J#+AV#KI2{vn26 z(=X`2lHmJ05#MuvAZBJUX8wzP%e{1(pg?@T=CtgKU))A_EsN=&%Rf&lfwi3heOR^( z4UfWLo&vI{@7Jqn7mI`}0QYjH-@^Os7j21fLW`o(LREJe0x$jn%47#P=6diip=}(Gp7;WCEKcEmVBEm5RC{;`iV~YU4hP>y|HX@bYZL0FkAE&&@iX~**tr1_SwZ&mk+|zlChflNW zc^bS8KFN0CL3$R`%;=e9k8DQQ)oA^}cT$w=`PHp#+a)-(0UiJ{HsIyozn9!B%+r2Q z=_BAjg316Po8BW;ABBy}>pqZp7{Q>+`{Vh;lYiipXSy*mcUGlyiYB(_SFNAn8guI- z|2DVZJZW73j1&>o0JxC31`oOxt%?tqQ0Jk+R)=)E>p*3UrXiMTJVWuzQ4+x z1S%*G#`!eqvmxeERyXer;)^_eIJEA=7r=5UX6B!}H6k!^iiesJU3Byq1~l6#5hNeC z-?w209zm8VYrk2D4!}QQb0@m>fVMGXS468AjO7S@4^sBWAsXrX=^mR=bF&$qRnynL zOfp);w3ln*F`}0;r;3S`AYFkd1A|a2hzD6AeG-T5X#Lv0F9Nl~9>gEM^om@6(+q(e z-8GBXRtGP5Aa6aZm?o;TfW|27p-KHDX6eFc@3gISjt5!z*2I`Er@ zt71CTXHHzqIqj9`@&hGIOS{V4@F*6!=#J23SdWr^BydTkdjD#^ zTf6PA)IdPmW<=_E6Fqh?=u=3oS{wTrrF^dY^;uEJ$7EUmyb{OgzFg^ESxwRUE2O&c ztY6TiZDH7ej;y$gS4Vil;`#@AQQ`v2&M_TGFHIEPrO+UY*WdM8WHa}`V6CBZre4CC6ZvyZaCPRRc51R(8$Ke94+*v zvzHoTPYQIT&wJWy+*5#n+YHC1G|9cp`^i%r*fNG;Es3G_DnVzb9r}~&z838sm0tJc zI~);%5C59`lG5viy*veH4@r(*{PTZ<0|7Fx(!brRIsB6m6(a%=#ssyz^{YH)(AwY_ zys^34Rlkvs74Kwcx^wtUsbdj}_1&I>=p;v+gNJ{O<>fL%Q5IQ57_3)G*_7=UM`b`l zCgIM+l43fRbDMlFuVJZq@3!ChXRHzUkqVd$eH(V;RHFo*i7EYP%C41JSZa8ZUgp&7 zZQt>=0b>l*eA#n~2};;`3?Ua#6J{xwJPw$A zIWjU*-rcNdAa}ntna`Nn)WFniCUNsfVd=*A^!$_PB7@>afl$}k&ZHMmDlg}CeM&O= z>Mf9T)8)Z&fU}4zb7l4hdZv`&2RHBhmtZeD06Akz3%2 z#36S)grFq-m{SLQwhEi`-X;Zq7yAaT^LT>ac#0UC1Xy}LIts5LvdwLY7*Y)UK*b8pIACtPOKFr?I~JJ22rP}ZK9^i2IS0)w2(-kjc_K2 zfd%~;4*vN8eEhy`jun4vhsu|_V>>uSF z#r!pF`IPyeX1AAxlHD*efDq2?=JCF&;@@eA`4dD>r9qjZrzhBxDVd{HALW`||7E z_@lTai0(BG0&`D#B6^BCDF#Y({kKi9B>C7S)`jI9GdG`ai3!-|&bI0*GOs2ecZrVq@7H7DfhzZpFW9>VN@PG6`c!7% z+PtVB-<^K~{cBv+V66|hsU8E`8ZRc*PP$2#i{ZCkU(Z7~)=&8xaP;l7D4zMg>Ta&U zlJ;MCx@4d({4aTF-H?r`fPT`M-x;r=QXvuhsLqB-+2FDj<{!Pe1%|>0t6=?jt0q*oSb--{3}$ymjuOH2!TF3sf?OZpro=n8gHld3>g> zbS-f^)$OBltqO9ISn2gM_w?J{kfnIKoZ^9dP)D~!3fQ9Q7SVXvoH zu6UVz!6GG4I?UHcbFs5c`V>+1Y)&fAaTHk754nDi=!4R995ZnCN711$PIL>|7_${K zj%?4ST`C?IZk6#^X-{BY?eqC7`{B0>(-!om#1oG9)OHtW+^zUDavM5hs^X;J6Y z|3`D$jUzh{v>@SR(RaqRyNZVtQ9UbPb^*w_{WZvJ>UzNqaLe|kIlV&}y5LCoPvG({ zo;D7HPBGRVyh@+X!@WgMuByF&b3K2a&7HOo=vOB;24LeA6XnLehIxPRK5leQX2`9O ze}pf|t+(v63|($;G?_a0$i(@3ODe8Np?AIm*ancJB6Af)gd znvvk0)-gOqx9-+rzrZN`H_rOFI9Po<_M9$Bt7-j=Q&JX>u>m>SZ&N$~>4}Hg2g#T` ze`;}`72zx+2szFtAG~_vz{t&%<~y;mUVgi;os#3o^OkZX1dHp?W4%f+Spv_@D_Z39 z2XFw|#7g3#84nsgphY0)l_7a9R{HnTjeOPX^|X&t;ODD$A55q`4;D-zL#wpkF2R?b zAaO3ovMl<&*q~_uiG)e$bg#*H+)QkC2wJ)bV^OL6RTo(Y6G;*(oO0*Y%2|~ag6jYp zkR<-;iCLkuQNXLI>KYcntw-cmA;d!S%YZcm6JY(YNC6W(EQw>F_+O&f|9t)DwpOx~ z0wy2ep%>Saxid{@KOiN~ap;EW6NrK9XU^X4N3zCZ^V(m1Wcyj)(?7`q$Ho<8)5_e{|dA0F* zkeHM39A6-MXPwVEh?GXbHXitY=z7brrsMy6c#LiYC8eaLLqLfk3aFHX(k&p8(zy+k zP(}$zml7hv0O{^7X{pf-gArpe*nfV%zx%$f`?`Ps>-}(hus!&E&ikC#Ip?)$%oN#& zG+wavX!LchC{}K(zWekqwyxIy*jBq~tC#(xA}*t$ISB15a!80LC9l5UGlp%!CvuWr z)a%TJZ4zI8SNOM4t2rk>XadmuCw8}z^w|aP^PG=dOa_$mDAxygC!y%iksX4Pf9Fo$kcluL3+Bohcd!I+& zRc`Y{Prw+ZL2oKB?!VkAT=6HBi#_=>3C-R7N4~q;^bg;z~eWWTKiwNF9n+xe35PBAdNx6YzCc&*!+g8+$h7$Yn%Q}Lp^i5Mk=`5YgTED zNEq9KNV}X{+&veM`#?yef9r)Nyn7V(?ijUyQBG33_=4UQ9(4w$WwbR!-9t(LJul}7 zUVUD)G9{{ErrxqOVm3L>7cELoQMBk(M+6&0q@|3qV%wwJWOh?k$0Nk&=AT-IZj9le^s+t^VWp>||u?S%Mc_WW7P`K6gh z*pr}Zv7rg+f7bn?5Ok^BWKjTikD;?&IlP}Lp)(w zec#F)m$Qb6f1**0H|Xafsg;?2WNK?p8u|yK59Fq1xX^po{KAeF3;!{l94Dm6CgkM1 zn5JgS&D75vz=C_{-t8SseGI|GW~A&<}zIFrYSydb;SKAJxr6T zxMS3P?2?J&Xr-M-X&R-Zzim!Y|G>k$k|@)(rF>PA_wt_9$)=h7@yDlD|I)jX4==x? zr|_YUt!W$n9uyBQaO|P|#6Vv~FN6H$IcM$@2)?W+kYg?Rvwkr?l-WR}^Dgn-f{VaP1xA)to-DY}6zsY}`yJqjx)GLXd^IscY=*e)~oO@?kr=3x= z6D)JB4E1Hk1oZgV+Ug_fnA3XWw66i1UPZn9UvAx->&xhBE+9jpL zti_2pqaN`zIOX3gDjxl$eadXqgz2F}PqV?DV_PKp)h-Ur3D*`Ke&8U4!{6EeToj*o((RE8q&@c1)hRIc>}|5gDITc5n=3`5Kkd$c|GL`Ps` zpvxmAmVxFkWuGqOBO$n6w-gJ%+RnL43eF<2`3Fu|V}tr=V$@7;>LU@2*)jr@UAgyM z+E)EJ3LL5kN9IEqFLZV%i=$bxYu^4DZ?VY^Ue!Z??n!G^#*LG$)7~);yCz!~57oE( zqDT0@9p_wPYBgLwp%!mZrY_ak(l+_T7Ri1DtYU`%k)r zh0s|2)PoeSym!VHA^jb$z+BqVb)*qL2_@~aUnMF!H5`fsO#i7*N%JgLdf!1*YYgxo zVe_Zw{c@;1nyuvGNq6)pSJPZHjuWIz`bGDUI```9IJfnsgXyym{T$_&Pb)M#gLTPG z1i9}Xt~~rx>{WC(-fHyQE{7Bu5T)h=Le+= z<(poMZK#1-RZGIYlu8@LW&5vCY^Tk7%9w)*(LSOzr}_ya>yN!ErwQUrI_Z`GB7lf^ zO~_OXsytOEeLMWZUyy6x#ZLYE!7JwF4|~H?H3X66v(N;BaTNeWIOCkaj*3}A<$Yb4 zUK>yp8dD?c7$0kzM9zXCzZ;4zEPwhq&1&(>J3hyOL`(N^!2r%TOef=jv#K?#^@5S2 z!qrQ^@do+SAH_>6)z#q%Ia2s?#D?9l`t0ih%@k8B*yB6bRohn6 z#&)M)Ag?vWI9<48bl$Y5GYVcf2>^P-Q_SrV{F!1zlOw=;zuWS->cbkRl9T-~F|`ZH z!Ow&?&w#fbSQIJwjo14r#p~yM`Us|NNJBQQAmUOEi(%|SZD+Fc2X7M!2fXH}XDpIQ z^EVrjDFRv9Qp0h~HwBF+=NS~NY||v`TQ}Juhid6TZ|yMGdz`xDT9?QsAntSvI7g8b z35aU4_;r0VUt10MoMP^)P024Z0x1F}{cj!c$e~~T2)Q^q%ZrS)#o?-F z9WYDFW~>n}vz_uC;Y)|G-y?D=oPjrShdX*8rRlOfgWa8te1lQX>;jH*snN%R-Bmku zr$kpEFJ==0z=9zOYw(r0Rm)Heg9+Xb*D4A>E;XW+-ohyue13V-2k7epgCsIKrypzUH!iFf%k0X&8q1vnDQphixF1xt2V(R^L ztFYZTRW4j3606H$f0H|7ag*B7TUfgKkf`(Cx`m`Z=*N*I{&R1ZYW!OJ@EiRlS)%RH zTY~4~lp}ckj<)7i&V?OJk9Q#_dPHHu%9G8lsTh`{Q?oWVr^i~{Hd4`>wJrPC+p955 zBchS`8~RH~j}>_3AdyZ~L;REGol-0gSk-yucCU@Hj+$r&0@{9v zQ7zr$xLrO!xEmN(>oos5LPN#2&zaem49s?wDC;RsDquWJ{U4|~?iXrhzYW1M z<sI|^x#yn_M^4))n zu4z)dBgIOQlVA(Q-aMojq(A(vOaNFKZM`^;6PzI3PT?4Uk* zlJBJnJQ4jt{kVlKsTXZ3Ji-r}34h!C?!Dshcy_sDcX)%ZfzkaisbS{!>$qomPxz`{ za}sBpxy*;n}fvdQ05D#l=+Bod|9ij-~NB6MF=sR8}bBnj8I>tXy zR9xM!^Rj(vXl9i#T$H-@AHWOv{{o&zV3eX!YNQx(rkFb$bH~~z-lUK>-VIhGi5&~| zzwMbJr7(!2Iv3HpUavBy6&%zbW_{2k_F<6l zXhCIYvu~g>!Yx3Jup&dUxT;M%ql1Vq7u?tf=Os-Uebp8FTI?3r_cTV0YQc$L<_x1@ zZ6#!Yqw1bryNm5NZ+7Bqh;K)M`@c}g`7P1QsRf9c^1iHxkwuX&bG6gj3aZd2MRfeO zTEX|b-fvT()DD#Mr6%4MH)=NdC~GYjN+Fc_BdQ>e>xG!jI%!|41OR0eQQ;EZs`s@C zcZ^=*6!3W#YrW1X$kl2E$ZsK8XNp?NAzc1j>&_Ps3E!2oS@0))Lc4$5!jb&+P7+Q?|5 z!~<%Zyw$0ZT0x8fe&m#Yo6ER0$GV*5Tc_goOF&SYag{*EFduM*XP5q%FZpYs*iE;G zOn|oQBb&~HsJHA2K1q#Bhh-JUm>&YsUl_UssmHixjK}lqW80t1h*@;`lEs5eu#p>( z!-aZ^trP8mC)a<-F|%MD(xenf6X10JuO`E`r?|K{p~y=ZhxDW8(IkA_RMrsjt{`Ny zpZ$+8QYbG~u_NEZHMk>udh5MChtvDdTFQTP5<)*%+gKS^Z$54ta$}Cuyw#VZH}(j; z%|x$xeIx!lW^vtZfsHnN|5Oy4#l!G^H1`|X9%*|sQSCm={dkU2)8P1ArP8<3%USkNLUKFte+TtGFJaG$Rd6^eW%aL!lWO0nSs>m74Tbn|GT2uvqgD*$V*I$ z_HF*zuCRE0FXxq42yaFT2?EYte#1i$hQpwHPdYrx*K`^il)5fp5?~qY$~n{5?+8&0 zH+|pj<;z`dD^J)MG5jYtx~AiQRj;pI)&>_=<;I(MULG$FiU;0=c;)T9iss zgv;t5@9>EXgwK&m?rG8vRb&bA+-W(!C+@x?H3IBiD34Wgjo63C3Ra)x!f9Gt{Iv`7TKBE zrzw6tbB#PR((YAmLI8J_Zc>U04{rKDimAyKh$PJLv@DjsQx!;@QDf1P$o%=6uM!O^2zEvusj&c@oOa4<< zVs#tY2UUY^Jx4GRMh?Aa6>h?IK-f7zmGnz; zv?_(I56@1miXtB3rS{K3T9!slW1C=XqFtDBP^NcKmeOE10JC=$(6&ZCH1({8`a;UF zmU#pFqUSA{*SsT9w!CU*?60kGmq!{L*Iu>Nuuqlr=j4B7UiStqq(s*5*X;7_%mfr2 zbL`F)G~VK=nyx>Wa{2yisQQ}%6;Wi!aebU6at*G(CoAgj7Fo{>Q!rt8i+JpH5Lk44 zw|e}lHHOMEV20aY8l!)`0m;6u%}BS|r2P+S)h=S$2=)>mo|#MjbQ$^jp40xZ@|YJG za+GOAo~b}^67)SH<^jiB2TMlg&Nh+Q1aWmge{k^GR7%$n&NP{~!w({P{Vug_<+8AC zkMc`M%kFp4T4%%`i{QUgPG7gOeLh!fK<;5VY?bhB1uj!!!i&P)aPUkB?Kh?}vT!^DJf-1u96sJvRlfkh+VQnG62abI7~ z&*C=<_?L*(RL{rnB;Wp*Gc8E{l&jT^RN@oeubnvOxy#09iX8#R&^moWjN;Y%5Gjak|qB~58p&+OASr&YkYCTiL8bqy)=h0PbH*`RiP$>PyF zp3qpKOH^5W3fe3mboj6%uQ;W~E5!ILVJZRsVU0~KWUr%&2dH)2$7R88ND z5oP#ufw&36ZdNZ6VF?V&Bh7x%#OU97U&)Z|R@wgPvqq$I#~PeXTZgSk4nl^q9Tjko zZHfhkt%9t!yb^TYm$R@3r>?lxmYrWa(yEpoOa#*}p^j%Xq68#UmaK^NB zwrG=5#+WD$N|oOHdlJo}fh(njxtP5i9iZ{|tFS>IF1tR;M~n0SjI zRvuO4hHpcx@xTILwm0{LPthDreZk$x!zMmjnHLxF77CQCLxsJPuA7%^?lYMdQgH@G zTp*PZ%_+2hs4FwclIl2QnX7iRG=Ti2lg9Z2lNSt>zAui4CP{p$ zE8*|uh)@Xd-kDohxwtbGWUO5ZI~!z0+37dEk&>AaK^uw<2h=HBldX@2m4z_ZWVniP z;c$0IP=xwT*q?h7%SPs&Etka|2ZGdw)})1pBS2OjaV1>l)x1GmL0;wPh3Z+P2^WZn z8Ai=TWRmMEYqF#Qir1j-xwRDiJU!R9<7zV$YmU(9p}yLHv86h8y&Pm4^Vyz#&LIy( zs^}^mS_ZCwzPd=_l@u_?Ib$R0=Ap0s>;^oZz|ghw;9Q}elhX%Ayq47&)Hyf;6t$!K zl)Dz)O*euL;r?qk8nST7=4!Y>&mq-x%#wXhV&(Ik)d4RcP7H;y_e2fF5CR;3{cG`- z^JqRZhi5kr8^h{Jm*gOITO(DalmB5;)IZJaQ!rwe&tQt&sFg(p>o%^0-c#95rX>>? z)3NWJ7Z{>Rb_f zjWg|fZ|<>i2!qRy_tIf<=?Fx@@yjw=gv*KO;vbO0$aHR95&oVN&Gz73U3iQN*x<=? z$i4X1{N0#O8q`n!m-9=KHA>|su;q?O7`L-@ycP4txBS2+|1T;OAd@>>t)#~W^n3yw zUZwT2w>_Hj%xgx*!bWTftKo)qsLH2XjC9cIs|tv79~NTV$+UvsyuzL11h zjYBlGA35vgiP!`Uz`=wYCSpeQl-0}+t=v+`6YX#Uk2iE#?(;3c6*Z{`^2<@EWZM%b z5ov(=Xm%#_oqac>Y$YAN6jsuE3a^X@4O$2;QOz!u*0^-NM! zXCShZCEjW|XwblBj;s&SsOwIc%;1>D=*6#becY3m^EVPn@KXm$%;6|gb7**Z!h_`>7MA0=@HLhaGp+oKQ7 z{o${eJ2#b#%KVb7)x8Lh6c8=b_0puYdM;( z7l{DOG~zf8Hk}?zB_tEX=fo$~FEC@$^0g0H3WT^A6+am)zf;QoIrOBqR;RU#W7sFB$QK|KsT_GX{lP)Y?HnBi`qQvn` z`(7fy_7I_swAL*#JDoQdpA-ID@rGJgy zOGkU{g1v=wRQ{@CGForI6poMns^4XEPiGd-9lh#O=Ul>R6Rne0eZbSat)aws>{r*9 zVT1b1K6&SQh`?<=IDJtTIJVjy`ozcroR@rjuVTORoC2^{X2NKW?os60&2W++5Rfj z*M>;NY-SM4*iFYyM+S$SF5^H$LTW>AlHn&6K;=pt^>7z!C?v6<YS)Zcn0gfC~!l-b@TLfJKi z4ExmPA8f;I%OM9-M&p$i>`mtWK=#eMMR-M>nb1G(?nlT)JE)-+_#tjz`eww;{Rgs7 zE;Y|p)U@j53G`&)cEEV5oL~0bXnvFOL`t};KSGrY6p$6z13#Eg_d_v2Lb|8}Hq@dU zW@^!1q#T~92c2)g6FxI_Cco*|e&X*aXV;1@zZYXSOQV3tL*^cbECI*|!f!VnAuL7* zS<+?c0<>aGRvxceZI=W08X0tzCt?GNtQBR2{Ar5_swea;KX#yVTYZmg5MCjZNS^QN zRDQLe3l=qt5%>gjdd*P16e&%H!sWb91T~pD*W^s?;3Wqn*|he-)Waqc0}u?mxK3;z zr*!UnO~Ol3{@Y<#YiX3#IgtE6goz1z=^a#bbrD|UZ~4~{YWpU?r=fN+*doumI=gco z*uxkJL26J9xHPYXULE>!4#dkPH8fpy`UiWN^F^k#p`0&{Cx;n*K zNkp>nZ0qN|R0M1AVyOew6XqbJCakLE(Itn$Rad9)0sbB_ufLQS`=$1FOMt(?!u!1# zhxLv|bgCU>N47u2!20P)qk?<&8E93F3uG!-`jiXebjD^7_rEBDQLM%WGIXI>wFPqP z+xCy;A?9!Qm~K}_!ylgp{yod>*Ox$Ty{d^A-(2f{Ld};j7Do=&xl`|**xp)9X9$kV(M0S zA4Wpe2YRk@BWcU`wH9h4 zxBu`ER}wO_3oT>6sYUzH0Koe2P1}I|v5N2flV)iN0Mo*(3i~g&yT5L9h>x#wY@{nW z*NE=^ZQjZ*7Coi!<9)Lp+3nKRm(U;b>K(J3N7khmd}~n9dbZrArY&(-@rQL^6Vzjl1PS7;4zp7}CvbA%ng-O6G^TXV zm@$dw&sIOsDwm@+z8JhC?g|rlPhno#Ymgi;X`Bsw7?CdQQ9ozE%>_bE8?y2EaSL*t zEB#aPI;Knaobf@X>x|}%Nk`rg%c(1<9PRAWTbDA5qQBlLj_0Ic)z4d@*jI+O z0;=WD$=0`4Yke0xL(oAQZ`;iI?G`bIU)e|+ohFJJc)-El1D}=jNcw9RQEY@H4363) zsFTTFGzRiM)>nZpjoa7mkz1!hJAC-ULA+vzlx^>=2#Iq{{htHT!HjbrPF ziMIMI-vfFm;~J;&#&4=Qyq5HQH}^@`uj_*l(W!o^;HKltk}mp%@vNYm?jFXW=GIn# zN~td5=1`{MNyZPIlxXt#4=)lEF|DxbvZiwqN&4C<%J4ajkUawabuW9xWoj9`9gSm{ zQ{=&GO9}$JZHrogWo$MuwtZk!i9{=))4j}lE6SC%uWRQ&-l!cEj}k7 zqb&c*e&?Qgzz?e>|lKLGW!5B98uaQ^s zh(Cm2ly=lXd;Ia5J7Mll%RL|ab%BwzEptKOho$|772Eb!4Oov)8pHJsZJejVL1jsI zPO0N&C8cot`a%%kkJ6i8AFcZc{-|oN<_L9Q&GuVIm9F6FVe{1|;w}0ovd`IsCJQ@> z{)eTVz@0!uC>*98#CU2>*8{ptwW`DKMVZ!VR|Z||YK{+A5_dJ+X8gwfCqq0TO@&PWR~yyB$iOVn@37l286kgbC%v^(M&cT4zHRa`|;K{ z&AuK=!Yd(^q1aQ9278Fhu8;lxw%#F4!1^+~KdN}E?lArL(;IY8$zehyE{Wz8uL!5C z25gIkWS2UoO5Q>~fYxwCWtWQgp1u;u^iDT(Z>By#MXgw+ALr6i3bhdjW@CenK%>|R zrE4T4-{*AY=RD9w$$%t;j)4nb7YafbT_LqUq@a|t=?Y|Oo4)q{_)$|q-_W*45t1Y~ z8)(Rpu;lL=RiKCXrxkvEm=Qru-}zfDnyJuk*$|V)4!HhTnxmkfYxVJc&nqL#bqB4C zuMt%Lfj$2P76k`y*4D8RmM!z#`U_=WA?Ks#X^Q1R;RA^WPbzov3}8T;ZH>xoMR}tc zKhXR57`bE(5f=6_&fE-z4Q_{2#TI{|LeaHFQbI$r`1ny}_WP);T34#*_T^$J&n`_; z6uv{b0d%wCSA&FfAoHdu)<^GHm$)8LoI!j)<_)T`CcdO0T2sFK>|lGOar6S;MS~M* zfWQ4IIUPzGVsxBXKbS%cErL_q`@lF^5-kFTshw)#oH8*Dio$nzvhYg?<*zHfsVwKtjPn0Do@RJG{ z{%PEmC%)CYAx7x`Le`%Dm#ncN%++t+{1G>FqyYURHWD<;B}+gQ(^KgXg8=^nTP zG?(+ZBgM!p?U3F!Up_*ZO3G-CamRcqrI&-sOL%o_j~94D`Ch%=a5lO1I2$m~g+=5( z4tJg}`vll!zvEZ0+Hpt|Y-}SG$n_?)JogJR3T{}h&&?5PB!GXr7dBT#Bv`3{LG?{q z3{?yORP2msPXK^BP1E>%^!|_ zAZF)#KrfdFvv$^_DXOIXr-!8Cd=jhN!c&|&=`s)f)U+T{b0|VfXqw)C_2=ne>h(CA zcdUeJT#%JU7NAk33Yf8-fGTivvxxXK7(d8b+;PltBpG5gXS3Tp!G-W^2jgLC&0<+V z17~%~F%*_QSIhJgJzlb(5k_$bxLbHR)A8vIDaXEV0yh~j>U6F|?2n)AhTL&>5OR;^(M6+gNU^a9zIes{s;rVB9DGV$ zH!;$<6C^|6(0Y6+eE27lbBNMJB%V{8q=>?Q;)kBy#FT5Td69cNheNJv7@!NzG%v)l zrD_B7IkulEL|=&mH=8hlKvk+vObEbkD;rWwFd=XBBP2-SH#(UG0W*V!lT!xDy&J-*A)lQlxVMX$xj;K> zc{bl;=sUmYg05#5y|!GPYM@s)$T|jgH1i5aGrL4o5y6KnMp4sxcHf1EA<7)UQ@-4i zl+v2NmbvwI2XuDH2(oP}20_2xtQI~v0qFP-Mq1{R~r~d>@RjS4o9e8+qcI88W2Zn!Rt=&PBd08S9AurKO0$T;YRuGZmq94@?_3Y^vXQ=yHHNxs<_lx zz>)^MGTdWzb+Ak)hTO{k#snQ##G%`H3caeFMu|JH3y7THp_ruFC&p_51*+RnwvZNKOw=GZ3${7?_p6Pkyt2%lmt|KqR&as~x!^3`|_-lA9>Xt(;m85H#hona)3Wlk1dOUa+AA8``s<F3sMw`D*XJBKxK6+CwiF zIB95e-#Vhd0zo;1B%0I(9NCV$bDbae0H;0>$^byi&QJuPss1}PRjxY}XLt;4HexMr z2^f?LC3*BYt2vZ$-sp3;T|)-QFB~xbk(;Rv_q_3$Y1D`$i^vgpt!E=$-jD;hlc;=x z9sK&Twx{fIJ>$5S7Sgx*uF4Gs!IIJESHGGU{20_>JG{w-aQ3HXXjMxq;dsb0fN=c8 z1HgfMv;ESp9%YT3PB$m%Lx!e`7;4j5(=%RqhVG^ro~Z^yPdNH?MQwD?+aR2=qAPgC z0`>@SlP2@#R%dj@RtbJ;PSi&$aXY4?5A=cxf?ftyVttB7e`o2Y41*QM8`0_>M!R1Wy=m}2G6<0wrCzRCOUGl}w!C@31ZQ=<>E z;`hi*5sA+^$x8vWVXGco$`ExHZVof75yeXCkg?q6iRUbR`U%hfjT>d+K@r7HRJZZt z4x|g2IUW!{9XE4w?EFh_Mk@x4KPB*6@|G}>Ud|S0+{OzCz>o1 z=Bk{n{KB~wZ*{Y4ID=0_(Jacur~y#aoHuGQxfea!=?&W5UHpW7b%3dD)A|kytj6_a*E6t&1V0y8FgulwE;8;sdkR0{ZGjE{z>4vxt&3hAcTH zNH2?&SJMcD_h`k>JIu2`Owzj&k^E(q5NNP$UZDbR>C{!;5Sb~mvh6zh-1gC;0sX8! z2~HExuOvnbG_j$fTq9}o@9VqOxnKtg=sPxlLws)7Rugo1mUXIM6O#0TmW^T`oY|J8 z_&uKZmoc|0NkzZ3+uh*df@z)LJn-f3wFSI=!Y&dzCp&K|JkKfT25a28bRLqJj69pS zo%1FOyid|cyL|M|PjR`?*6sc|EzkeUzkzf*>d&7S(w=idtQ?vBOufCa_rO`Kjl2T9(oxy*H-5A*!eGc zC^m6DZ4K>*ICL2K@vcr)>cjL2bm!xzOLt&o3-8OOlqu@C>w^J=UIK@f| z4>9edN|hG45!WpitC)uCuWXB{R7c(lEat(;E09#DR13z64OJPmk-W8dy0D-sYXO0A zBbKiA#raQ$_ivN1!+I-wo)rYfA+NIt@Aljy^WsJ${Nhd}mtsq<@^Ifd(J-uyf?)SW zNm7H74pMmZP}ykhR#OT7sV#5#IWPZi&(+UE<7VB_DV43PaUh1aZSp_1d)&!rWCIA~ zVb$)(h{TDWVwazPe4l2?y1RBL!NY3>=n*JygNeziRir9L$Mr!6uKed&a28;57=xEF=~RS z5KLcl@|oyVV~(1wlun`|*%?ux2K>Pk&$)c_B0NpWIeS)lvmxLlV5@1(c6jC&U_YBtpI#|UZzId#q) zR+{-!b8Z4dv4lkHwQ95G2@y2clZ>*0{9CQ`@m9$W1aF(5I4@X2jv)iV^55?ow2oy8 z^^}7~siAFJp*xA^@gJq(WG_g|9p&&7tVtt(!1wR!vG?(gii`USiQO`y%(#P_UBI%^ zvMyfN7mqC#$er%DZ8ItJ^e8hzTH3b$B0`Pcj)x>cvFp12Dp-pK-#-;p&smewYzSau z0HkPR{)Nq}Uo;|PUhL2ge0ZC>oMP{WKf~o)_>IH6jHLP@Z<4xjXU4}{KPc@9`)KEt zS1!;hH}xm?1;Q1o72CTfA{7394`vI++D?pn zeM*{(htD>qom%Who@(i)%Ls|H0?3T1oav1Z9EVb!LVnQJ;^7TpPF08Z#^+MySk|ez z1JK(g6a<)uw9c*W&Nd4kIcksFEb{P@_K%ple0SOvnHXr1xK#bx@Q9@qIQuhKJR#ABCCHkYajg3y4i z&Y|mdhPYP*sJj8Dqr{Ae_9Wt5G$$meBlR`G&wv$+Xv-GiqbyRA_o9@Oo92?xzE`5c zJB0fWPmefxwayx7J0l@ZuqFT%!QMxzdI_7=Nh!e>3A5c#t`r7OO1sr!KswJB@f!`Yw zb(ExuPuf3TUpm9{pTDa8eM7>=V%J2F=0nSQvDR$M4pE@C#9sl(xPNa^O@$v@P81IB zn_b14xzqpnA(0x;N=W-2?+VSCijgH)#varns(h=g+f@nvur_`bHT`_h(0Wy)@|EMQ zX7=B6z57Zs45`~4(Qt{lTfx6k!N4EcKd-PECF0dvsVFWpx8_oU>seB=&ouFL)=mOp zIsd`7pX7a`{&(2V4kvW2r+M@@cS(r^saRtD5MJ)29!%|KZNoEGd;HTtR=#}#QucS~ z&}+O&+ya*&JQc}j?K*c$1eZjQ9N%MV$UApiym*@jUaO?xa?K475{9 z5uf9D)b@c!I-Uvru|7*z89UZ|b2%tg9-lJ!@Hfix4Gbe`JL}tcFeSn-`TukQEKUR8 z)H-GPFNG=L$`DKYo5R{L8bExO&!O5mm3|F+5}1DvYv3uyQ;62+&L zFQx)so!XLq5?CE-L2dxUYuwrPZTsTnDxZ&i1y7x-nzf1O)ByfV!E4Kk{OfqMD>^uY zv~jzkm0Dc6LgsD_^}w6YD?=Y`kr~6hk$*HJSP_1NGxKe+0zVd)V~9IBi0twsiHJtR z{GtPTL_;58KcY)t;wtA45x$YYz?nuO4}PQ?q54nSp#49Q3v6)e{=rgyJk84?RSdx5 zLkI`g-KpF4j<}7bz>~8Vn=Z*;z^-Gt)I-idud=?kXTp9r=dXuDMQZGDozfTIzsJ63 zbF2H5WxEi1Yvo_d;ll{00ChA`E(CdRdHXPE|3G#;Qy|-(8H7Vqbx5f@6tM;_SxUXolkxG4oTl-4ed{7K<~X&(VkF^*3TQgi-sLj78e zy8$r8#r-$-jyjuvG&nqY)PtSu)~i(O*{NPhm@gRpS|pqjizjAfvk2+#4zL?LViCe$ zjZ!f?kZX&z_!(5M-HX=9?CZ`4>IZUM$4!!sBQDZls+h(a0}SMJEr)-P_}vrT!7==_ ze7#={Eunj=HNGi}@N}-tneDyR!&p8C!LD2dJa!I23yaRVWXP6U?7eoy2kBf7W#@y1 zONG2Ey?bD+I~+GBgaOwjqq(UyFoLlW1?2Aek{@IbbR+}KGj9bG{wkFkdF%*(LuJ&@ zgXJ)_z+WK+j%2Ov9F-=P$~`Zuir;ZEZG>1=-%cPyvf{+jizF!#Hk>;gS~ImKWS2$C zACY|*kJWq4@Ga3TpVCcn5>G7^B-Dj@3phYu1nk!EvG&WQDb{Qpl|dOqGcXBFPq?x}3NscOdWnefj&8Sjes zT?qwo6O6}_ZMoUjoxPDO_C9O?y*ii{)*wi2`-%6pU{VOW{9+bokEIv#`%fN7l1?e} z<$Hu}e-3H3=}b1w6r11$2NCq!?2$f$50wI+%Xf&GR4xo>R=?aCng$l9&UB-!UVkM# zGYc&57N2<9#3;a8c_hdW_PEknk-^siwW{W-AKd52y-@?od3$Cl)VyY1)wj7WqWGQ^ zLj)D^`mUjS=f}%jXLg0?K|I|53a;OqD+u5FQ(F3sQX==X|G{njbN$;qt+e~KPHEUr zwlx_0w~GzQfEB{q3FEvo5#V$QRATyOPXX>Vo+;Z!vt&v~gb+->Zzt!0Okb%E^ug5- z14nBGB@cavXdkxIEH-PL1sqbtu+on2Zix#z)boE%V?G$uQvrt}`x!zP-{s>m zxm=8)E{oj0Oce}^m-|wp@8TI@ z*!7+8%UH(voYOx9Jscrd=fA_%43dB&)3$_56!fw?T@u8)gc7*3 z0AYOL9EAnKGg_2^y+lMr3dW`|tv&Hg$(~!;>?3NmKiAnvyUJ60>uZ!x&}r(Q8i_-b zt$E5+DQgu-bSG^97}YO8KF=p7Ygic@tk{um%nW(ypYc|@o^heFBa||m+CY#w_o)Bg zz-vL<W zjv(DKc;#UT&jv_$L#lkqDaHMh2^evkOYu424s)XoeGXib9O1B?A9}h7X#-Ro!;6qB zp|Wm3m9s+yca}AOGKoj~M?6%|bTI_OG%cH+F-7#tLR&u>dR{wbdnK^&&^c`Pa@GeS z>v=@|@T}}$&d3Q>o-3 zzMMXd^yQWUx^S;-+V7%H;%!5Y>jYB{gw*(h4?nLeIN%=FLq9{DZ~HD>{6`5M;#+7KU&XJjL#!-0u{}=!g`rG!>_f-)&+n* zknw4T{Y7 zp*gODSDVL7H#_*Uv2;Hr|FEhXEUeSE{GfXN(A(zDNgcd7LA93v|A@L>7i*&Y;W%eG z!Kw}IY?x0%_7Wb!CGlB%w2z_Q)PXvHJ+A1(?r*`RcYO6gNLg?zcnS#Wayp8oo{)Qe z-WA7_hm-YYl?Vi9YCYL>XusMgzWm{R^w{$=55qxurPTb{X~pPTX`xCPZEm^w!^c%$ zr`?bnH)hzezU_KBXPVCzUrzzZRb@Te%_Yg3Gsea0VSYayOY?VP`26u!!GdW@OYS$+ z_N5>$`LiQ(kR`5ZmsK9n0&vSH5x%s_ylZ|;AT{*r#;&X}&pzL=#d$<1cA1T;y&TR}??IUDy<53ssSk5{r|GTDtF?Z|bC*UN zyBsSYb>tWIXrQ)jqD97)G5|c-t3ELoIF?a#vT=IvCF{Gdztb>;opb{ZwEt=3vk9*&|P@6y{^eKvgl1l2dLBLu2zhU62E zIW2(6$f*HfiTRU`%HpNASj+hu9nspUae7Cq#d=pO0t(0(*S-BUW_Mg%pSt_`BLr^M9Igw$G2N%pS}ctW z-PnUig8Y4hn5`%q+HRX{ez$cB5THtS+?9a7PW1=FO;*1t;tXD$O`G_P6Zkn8ag!eGvlHxx%?PQ2^#;;FZzOyH@Fp)uyc#2}ncDU^mRFs7Tuv4}n(<<6JnTZ4mD!e$b2WAX{sjiFt=ec`Nv9<7k4{7@vpf`E6ngEvrs4iW+as=vV~h=V)S5|1)R zfOF;9YlbQHhLpkNyqDbn8YG3n{*oGHsorsUs59p{$c&MKt>W%wBcJTBzQa>Gh!<)) zs6d&$WN;+!*hMAW{QajPZmA9^h)zlKF&l_^#Xy1)@>&jxthiu__hcb|MtA?3Lwy#v ze2k`x^qY>b;RX?F!vpiH3r%j5T9z)7@3=rAozS9~BFt7h%UES&xF-T2Ow1X2442wO zB7fSZ`4OTrFSnC|kH{45-mb-w-ewD>eZ|jnERKj3ifGJxweVIUmlN@`;_q%nF+h30 zHB(u9hXyBW6Q!R)Ga33NWT5$k&Lo?b8ZrJ3nbj;}Ie~RKFX~VR7r%D{A>^XSEql7! zR$4BvFdLS&-Xpp5PAgG}pRU|a8&Uq2AZz$K(wy-eGt|vD{lI<1<0THNR1~%79F!3l zCqOEnYmn(Eg7aZvx(Ch2+Y{&vOI5LNH%bib?#-9#tJQBU-8=_LV0@Yg=&1i)k~)4a zUMs!)m2Lf3VI0b?2$t0N_qTR8f~omOm6uD1EJ}EP#8d0J!kv0hSbOb!ro-v4dO@hj zmT7#@BvpX|$PU*c5oe_M3pC|m{cWgYdk}aV^_kB_DkMD2rA2M%A^y6P|QfY<|zsnGZdhv^@Gn3p_zvIu}Sp1tnh{ue#%Gs11HaW;sS~UtbZ%@tz z78)ah5d~mi-1`i46GC&Pj$!U1^KBIJh$A&ABq%km!q)@}B;&Eu?xKeo+y^euB9#TV ztx~X_Ru!#l+I5EC6yj-UrYmS5ORL$tnEnclLIjeZLQ)$VW`t9%n=yZA}UOjZ_7La{sTs|8I}Q8`(VFUR2X z$Bhdg2i$$z}(T@|w`yTfdLdoC|xxR-Dm8Tup7&j+vIfhOA5k7tr12s7J9 z23`RziHRXsMPnK7FS&OKjzt$~?Vl7DB3aKK0!Xc@JJ`10PH>`N zb-6^#4K#w^jz_25m`9hz%oJ6B;(-A@dqI4k-7b>T$eW6v4qZ1|Sg_&h%K*mc52A-P zc1H1B?N=?{yJ79?U)Hik=_C%OJ8N! z_dYEaU%e0T~<;u9LE?nBzUo@dqk z01|L=#^*<0pMG4*gdEzOiV-B$maTDZ3X&JnuigkKSHEe>FZnaQB=VV{TI(C0f;9Tr zldnM$c>(C(J@^^pfjCsd6zh-Hr?de}h zybw}5D(z9BuqkU#@B$s1>%b8aVi?M)Vmw@unU8vSBTu}Gveu}fa-rXNY5dPj!+Jbb z1hj0vwgp|9D@9SGbj3{8cgAWP@pkwceG)0!S&SKFaXqXt?6`>3_Ns>uUPej;x0$Ve^1}GEMRm|-F)#)GnfY0_*yd{`znwPu zB)z9@kJIiXJ=eFg&)q=&t{HOBL=c-L@I66Qc>bJVHjymz9P{qV+e^u7I!m!0U{rtq z`u{^_g!s>+ya!iU8rDfXCY6cBT2Cf&3DssE1I>C6#zIUU(LsWC*boostLBV#4=slc z4`pM%e0#tZM8HZDD*^KCIE|txC%}Pi2n?&P zm1=moVg*SimTH$_VeQ+dMad{eJXe|0wtiiglk#@X8s*i>_UEtr+HDV}8_|E=Yvf_~ zGoXG#oN9;nS;sRoe2&>gUyIG>>Vh&yu^9~0*c&tpMh%vAY^7)ExSY8G)z)_HPpt`6 zKG(B_4uHr^VzPGz2;p7qkZDQ_^km~9Cz`KAD#8M&=6l>@-DW6f`t})!% z*2_7qylM)QQx@{QpMx49oH-Kj3QLC=$HX%?e>I)}*;(u-suk1iHc1V!=+a-SRu$LFrU8T;ruZG$49ME;3)%CM7U zmmq!1@exybspaqKH+Sz_+z4SYvahJG)?hHMO&yfiv9H_jITEgjf!g(-Pet_Kl#p0v zfF~~$^oNS!0dO+rWjZA47oImLNPm$t7Y80pL$XCT&RqA! zppmD;!ljBS1OzA3a!&{5bT--=$WI=G!!$hoBr|^N0hp7S-;n z(Mi%){!HB#a#%>QMR9yLA+w*?e1x#~O>i`Ux^@Ucrx0ztNtXUqAhalgHF0y%6oxp! z&Av{abb_ij@i^JN3`;d&bX&>uhwrgI=Qh%-{b1}S-a zLSx>5*ELbI-0TRctj@COVCobmwN1_}13x3d=PIFv{3^GEA*{WFwY^3Z}2RE$;Vm9?W|+g;kcUkLSL$2pNB zsp$=CJ`F2301xXNc(^dYGyMBea;7oCLhCY0NP{n$;yHY-xIDD+{slzGBHezx76qXI zts@HeW!acx9NhFNUaLG>1p4J!e(*{ZbKk1~eDQ^YICGLM8bipz=O!c9^mFIg!^$m* z!hl?I8P{*a?>JCY!Zg*0tS zw17gw;O?+Lmvu|wiqh?~nFR8G&+^5Rl4tylUdHWR&kYvb4` zs~H1z9JHLxx6_iDyvG%i0QKY^QO~me*@P1H5vR8Ix^P{a(aMXCdND~&8SazaVsLre zP4s3y(O0~zsXyW_Ey??~A%EDD3roww9S2;mc+j*~i@DlIjQi&u>JVDI{31VwPTm`M z9`1Ne-=Z94wSjj~i+aXUeIYZ^+oy|7e+t%xwmgogk*%zam0iyS- zrPnC)oBj35rvroZsH&Tb@(40(RkGMC%%k?TC9ge*VDH{Ie7-5NeNI8H6)5r*t=>!) zZq(?7W&T#8)nXU3KLkaw3Id)Im22IeR&v$W>;4G6dc+uLT7tSAxA!sw=f(=a2~wGlJ$l6E za&()Tc9dl!n-7|?gJZ0n7JcKmL6-d5fY(c?-?*L+{^6V01|;~r_L@JQ55SQqZIPO! zLIMou1|YEGZ`D)Q)8gFue9nDHz0n0a1Hu{STnlzt(PvELy$|&qee2hTmS0Pbj*4OC z`v%QD-WkKBuUM=O4wx?TIKR~_TC_N2-MAXv3JR(CB{;8``K)fbxj6kX`Hgpv9GOc{rZ=*M2w5J3ipqkX;xnMmtySOO zMP{d~E4w=I=wp-&k{u)Gn>40MO% zE8TU6xz-jn=@8qn-=Rw2ckZ%&Yw92d@7rbS4I*$2Jx~tQh1B}vHZ2hA_eK4R#1(A@ z==1CDj3{iDHu27tF8+v=vp%&1PuzFwBl)Qhsdbc3w@$}T<<9ZfhXIZ_OSApt_x#El z-MF_xhdWzY5YGCV0d`jCDWKsU+G=FtrV`C)(DjHn`|?@iHX7Y2FkVri{*4IcI_6dR zaZYT#)jH<$7&Zeal07t?A)sS@JjWcX;kZI-pBkF=+&R8Kwn4Mt7a*}SPg>;5^O~-G>|IV8l9kLs ztJ(b^UY}k5155xe1KIw?hahK_aWmwG_|N@%u5!p(gRTt+ZU3R8QWx(F|9mZHzOOy2 z8wnK%`bkP^I~$K*C0%CF8~K7|oeLVfA5)B$;w$3Y-fx?@E zC>Um;uN1kz!5y?;OA#Hxs-H9Cbv}SrREAV|a5~V)2}bbk%H!XP+8BN~O3QBdDL$h zhWxl;k-XJiYTQRze&B=8G3tSX(F45%M!6aW#qm=P(|YVJjf1XHF>qZt(&{Jb!98OS z^e@NqBYw6B_qE<$P&#Bo!zk^m!enmF64VxOz_P(rBK^CksOmGN`uM08KQia!=~84> z(o*91dqyj?;jI|vhlQ^s1u?W!0wdzI0R5HiQT-m=0E6Kr-^fMUFQBnCQTuOaEj~Ya zeRGFMP4-`*o&s#rA8jFBXDCm>Vy~>_@UdXVlpvl+eAYv2|D$vPC8^;q3+0o+_IuM8 ztkXFmPoM`c515rhZb{9C+L8TxuRF%Kvhdw57rfGaw=BCXV^Zn%M_ZHk7`i;q#tfGC zLC?2_zObob@ttvqEk%*0KU3ZcK#P9`IugG=&U)XT_>m5EZg;eoily8aE=v!j_opFu zAF_b)10OGUw(um*ns;{Y#cpbDctLsjWGw`ef_8lFTD&Ae?b|QA810unp>7J&d_0c9i2sH2rVHg1M-F+l&EE~VKP|aIR;!Jf zyMsQCd7K|kPOsK}^{Vb3fedBnrp>1u_Vk@DKd+=Q7QbTVp%JQV@EGX&VU@L6NIcc7 zzD#NvF83)jjnNd(Di+jYj|MCB6$0k7hSJh)yX;t2g3=NMjQI^Z`kc+>w0At3pWdx5 zOERcjFPp)sg?)5B8VnBQgxpG5D5ShgMMbQ&wigS|#YBrRf0;&Hb>X8C`L@kftOk`| z4_?)@-Lx|DFVA$*lD7KZ*3yF`+CKkLI{=-2Jlj90TXGOJ*K{nC$ofV<$7}+(F>A)a z5(R3FI8`!7bvH)v&{)q)az5L{o8Dy{)Rj&TO5Y7&E@OHU%L3q;V?p0GGb^~uhENovX)dW3VLd`;1zdQKWJLswi1QH_#qv3kMYV!tR44q2(L_0N_w$ytw4n;(@W(RP%IZ*bJ8W!+IY;!b#% zrM8;m(v^iNY-%HV8>~xu_!;FMR{MQp#yI63xc(RuV$-R-tbLldfRnP4{_SX8;w#Q3 z&WWm0Dj8Q2&tT#=FcHLht3CL8r3rez5qL$IcPq@CCG7BX>j>a4U7CXa)R8tW$r<+ zl)!@{O)(sO;~YQOHTL<7C;?^`l|#wPjH8NSiCY~E@Y+Kkqd|)IKmu+0g_UpZ0#|Sb zwq#u5D`1;J|z=ZTCC@pZ@lj`&NnGBbBGS%X5CxF7nnwY3i7!`Z;vm#UHHNsuRXdIS-(uF8|Tdp}!LGb!es zvuVye{}8q;6NyA^w(WFoWA;maOdt#)8s?QJMm3T2L;CQPvJ=r!w0zeKt{mj%wkAs6mORdX6!35n}M=}PeLqapZUNMwAnUgfmc7z>IHF<7yQY+a~f8rs8!i# z7BY2orQh5(GXfUtAqbk*n7SZ^ev`{L`ciZimqOi&ufWBxjXsgYGu2w;m}SD#**6Jw z4!%|A=feT59_>M>y+S7%J{oibWzL(fy?v^-c%~bsxsp&4E9rLH$uK4DuVIp;Jed;# zdiqhGcKtzh#B^~x7dZ{xhh5E|FK6X0yKy@1G|blVSuW@69m{V^ zw^qNizqUv@ey7vGFMX$)f@WLV9QbsC-ks2bEs?_h-6WHw5gNQajdXfShY;3Yx74U} z_#Y)!4M2%CJS~_XU<+N{)jqPu%w_{8c*5RL_s~5wCF~hzM5AM40(}B~r3clbY+71C zrNS>%a&Rh$P^WOvlisET#bM{8R6HS>DM8c~DeTWH8Et@)QOVQ!tm>kc?ZOjUr?fCo zeK1inJFS~a9%f%qkXEDPHXUUJ%S!4>@k31M&%+waQolLd0dVosTEyJ^^96EIR5q?8HsHAjStrLn4UVn#*F;eF8Z~mQ zRLVZ=$Th!1rk3Sdr%7r)G7#(3z~EzU5WpS)1v<GZY zKmtbIi>2RIF_l*A(SSiO0##_4 z%OxpR*l(B2o;DKd=DnY_6=8^}ooHW3LEXDz3hc7?(sXlukN zLvfP`u@M%4JUzKo--4emX#cX_^hhsL|KUc};HVZ%&(DO&k_rvl9t467^6_OU%zsrg z!AtNsEYaoL_bPqT*fMZ_LNlzSj(Ju|{!-VNIoRpYH6er3llHX(v>ZpKgZJ&q0Xwm; zpm=ok8dnca&4v@w4Ip1N;|g)&!H!N@gB*0Z_vdPx{jVM~3fRpVU>NhdkVwtN|1P##Q2iMN=tG7Xh&|0!B0m}AJD zY5(1s5xSv8u~j?b8`u%-<=iv6O`9uv9lgusgGq}0O1Z}>(I!V{>V(cf*_$;{%gsKu zlGQhp1sHU=cQCjHDmibd29n(6g?WlS9$B0x$P27tvT8{USz@ttqi_`*-;zWLR#&*M zMyr2>n&<+r<&R>5qj$^N6`WljkIbhCspMa%reC$QkaTeGXpyzWo&bnm+=gA<%4+CI)JM2+UuL53b zf&jFvr5L&luL8lZZCLGO*3v)kxf zicyi4P$W6_;Fs#oC<-1;;$~2$XHy0U{CxyjmfGBwS%F85+ z?I{?Z_d3)P@~+lc=P3ZK#7Dx}!k1?eTx}KTzR)!gLYI6H6V4@6K&4~-{-r?z#OV3O zDy3aq=*{oc3tg;=*v4ZJ1E>rYXlRD^&7Z8X%z)K&`1*h3dG)GN*FK;5MH&c;2^!GI z?FJB5^es%W7!dNsj>xexL(z1DpL|kg*{e!VJxX~wp^viA`FBw?(;uG3Qf-N%!#$LUY!+c~nh3C)Oy4Z!u*3V?gEzv7V2Syn``2mG0-nyXL?K zA{O-_vGZC>JL}RG+f6l1+@st<$37f4WB1?Xb=sSL4i9sI5qkx#wc<6HMiY-rs_Ldi zlO+EWiDZ*dz-Tom`18V~?p|--r^hi5=Bc3dn+4*jQ`RlkzA)+DpbRbLQNl?y*iL`< zcDK_9kIortQBm|8kxgDP^L_no_;YCe<&u?T{qmhz>r}`l)nls#?yG*iAN&BwRGymO z8uf904F9HUTQkms9xkg4Uw{9bhP#QinDAC)d(fvISK|Z>(2%)jpfe1p2pZ@1MxP7K z%zSbB{mn+9yb0O)^~JtTo}RmBCg_Ow9z{LUE4rzIWI7%>?c$~4YYEU=$>Rw72asg9 z;@2U%;y70|P`l$8N4ddb4a{rE^;77U=s`>I{Kt9fcgnrBPY!>QWxCQ9AIRyt;d0Y% zFW2@NSp2@VoYYh{i{}j1A{VT1ynKE8(zmwvH897ZDEA8wSp+9{LCu!DdEi?@$vddLXm9`^G7&_Ng|P;Rmw!68ms7QJ_l*ce3Cg@uUE(}orjDmJ}--!Hli_6 z4;eph8P*gGF9z8^E=N+S6%;6J}Fk4<|+K=P5%2yc^S$kaV!i*yG=AB zjU|2F`}4hS%1cG@#|?tK@aade@_gpT-7j0rYAAybV^c+AkwOktuN|61Lmy+xOLW-c z|G@J{E`;@q_T|x5ax|C;Ps>9sS+tiD1PHMSnsPXGv0f^KHox3AH51ue?h~-DQ?@#0 z${zQ`>S&P4zIzsbiYJBq3?LQ@pg=(9ay4jR#1s#$9zer7Vxog&NtBYfG~P98>Aa@9 zUq^R1v#xaTqJx}kB&z%K>cItMzrO}aI)@iT$w(6yDZixf4tZO-F!Q@Blzpgdq?4i~ zw4&crgFivmB}T6db=V+_y?cW{`xMPQ4lfoX0+TJDO~;`jId5PJ$8=O+I6G+Akj}pU z2blKh_47O&b7nfv&aRTcW-YFU;(YVKouE&i?$q~@2{bm3DYGYg{YuK#t-NLzm4^~I zEnaXN9Y@5n8^Q>EydbXxg;LXJ9q4eD=}x1As+<&DHQDe~uubNO*qEq@v0Ql0(V z&3|b`5<%QU`A(g*-1vg<@X@9JX;Jb`!smsAcZIDIUEH(epFR5CJjUQ~kyOrsv7+J3 z$x)l7`t1?5@xJ#HZhs)#TLy1J7yk=YqJ~?mLvz zEHdIVw8}4>^12o%M(%H}^&P8A=UvN>W-f)7liFKvnT1@WP1Q(iEvZlwrBVM3=J=z6 z9z}Rxos-qzvE-*|^s*pD4(ynX((F|@Wcco?vVGoj{8tGT_qwrjA36ppyTXsD9O>x^ zs{)|yERuKq>8*bwaM3dKJGbg>kXXZ zeewv2k@#4?-t*|(I3mStLTcwv`7(dnd6549kvnDI{kae4g-S|&ToeH0GT#j4dMY(; zIkp3Yuxfs)*$p!u?VuZ#O2LJ4SR(zw@OlSa0!nCI2j|n2cHSc={9~S2a+BW{-~%o) zzPkqJ>TaJl`5n|1(h7Z>{7)w!soT#HwRB4p=ev`tD>fa-X8|3{E9pP+voJiKDoGX= zLE!`Wn4~_doi3Lf$>SerJo*i^uNB*rd%%WG{2JG#pD8$hKD8j~bU#bT7}aunKhY3G zK1oD(uZV)+$lDnR8FKJ_KQv9wOCpJ2C zeplL}+_6oEn&HvkIT^D|{p~p&QXu5dlzD9Y``+S@;CEf`nPwb|+(^*kbj3)TqOjq= z=PK1E9|x13CvfD>7U{fxA>rjkqFPsQO%fd^uAgdrp%~RGlUSEJhgoeFDp4 zu+}}yu9~slkQ zOthHUEQc~y?~ZSl!}Hw?O2gjQoLC-)GR7qJc1`t=ihP`q7kXnfSD-?6r62qos|O4y zhQ{3qIor?IRXYNjL?O-IhizRP02^&e%nUkN=R9Y&n^TJG^0KlM*LgxG z`7KGnDS?^8iI`<@{40Z$AM{+rG02!%d$sf@`SfcXfd>ssTlU@BK=_APIwjsz-|TL3`itKeL&da`|`^$tA@>R8ZhI6uIT< z*wfw9ExhmCR@FFZ(7GAZ zS8m(T|9ZxVX15rgrj}c0e_<02$U*QYm9GJXW)#-qVgA%zhk=CAIT%L z6w9eu0Z5gyGSSH5`gHL-o$<6g-J-3B#I={E=$^b2GVl3dZhAk=cOP%n_^8(QPb=2p z4+RJnv-D_=6?ZI6&^`@@wMp5L&ZX9|1SrwFa5r)pHg!kQiuSZ#?+zRS@(pDIx8x@0 zw%PYkf8bp_XYr30@s-Z5UXKkn3slp0lVGmP;nd~kQV zFS*#jW3J_BIz6^9HDR@x{&3w`Dg8CO`-D^`u;Y?y)F*$V4p-Rh=)j2fDr|G`zjNO; zP>VHy<7GVDA03HApsj+UaKH#{c0NmA(onW1fls>Jj5&KMEL=jwG;w}{mMNKaydo+V zYHf87ukp9{(*&R3R>HSXc2L^a?>Ka&jyJB!uG+rl=v1OE&k1Q&a6byU1K?C3+jgneFNkF({Nk?}$nS4K_QUO{9`|j%lgD*JSAKzuP$5M?LaK z+U7E5ZfKQ3?q8JIhv1djBrs#ZgIm7{f5{(6YI>rS)F1;6P|JM&qxF1q&tYPl zu-{dqQn%ZwSOIkqfcW19JDhUVPZ?-(O&8efPfG`rM^Ok=aT#u|He`9~>r|NdQ}XO9 zT>=waLOsoDcv8y?%*xJZOTvZ+H?)n*8>il3Yyw)8&N!RH#(U>fY=Cg4%2-F7BqDX* zX-%c1-?8E>pc=AQYjvO5`X#G}@0;53}qz1zSgV*G?=@G4c|lgpJ$_^>gWrzSHOVBWfV zmgT1{V%2l@%=!ZkXkP`k`Tl%A9SKuZ8%=n<%}r1Yh#XCL{sP0vp4qAIiyVDL=kl`I zqF#R)=?fOkZde-upOHQ>+nebMB@vP^hmC^Vke7WKLbT%s$o~r2y#Zy&4 z)Fx8|o9fNdE6%bAAZQ}5!-nj)c7yg21&U~Jh~|+`iO1jT`SkBT7daq}nm+W!Vstoe(-J@OPF=?erZhQU&hcw^uUk-$wwQwtjnJT2s90XKjmMNl^?nd{glzPPd zRGsrX@UKjNDhpVlh$8R0tDoziX$xTBO}W>v^lCkq&=}GU4tf!YQXtme{Qz9GA>eSi zl`>}jS9h|g83W!+B7kcH(7g}mqIdv;&l5ntaehg_X0H2tjpqrV4`kf-e)gF*A;`1Y zT_G)sQed>xrMrn47O#x#WOl@A8$_ zg#@F(4KGx!t7L@%%CwElZO=%)PV2iQU+Ix<+w=e>U!kf4bN$9Y7s<+mmFr?wXB zYEWd}lzhSz+d@$s-v)zGgMt5E(9*QmA!z0Lky%l>)4`k|F^-`o>Qpi%f&}LC5T$#! z-TGU)xK&%as8v|HkYg(7ROQihz*VE2Vj)%V{i8CQY7E7~T7!|{_yJFi9X3b`LLua= z2D?Cp=Qlf9x-Ke5sGzg`Tn$OF-&&py#tY+bA|mxpKX@xwI0)<(%{V@?eTOUeN6~{7 z-ojW-8V#mBoJ#f0gR-l1eE<)BUwz4}p2VT+rn4@F|5jIcI#%=T?J_aHJnjcnT>bD3M^;Lz!VwT>6lPW`z>ZJUY zUx!8~W1nu<^ktQ{^q36tELMVhRXtKvo!#q7WSu|j?tgFi5cXtae!H>DbI~GhJm%GU zeZWbE?!N9-ih#XoUrjYH538$DRfS^p2pj&q0s}-)&#E*@`mS0qmkOVd4lKQ*%Rt~) z2>X~%A9t@iM0~>xmWE;xpfE_Gg@XQk|DS(U8Nf{NtZv;LmH$5Z-@c9w28AJQV2Qdz zp-ATyDY2)YVUWB*GXkC6KoTwugw-^ETATXv=fN0?7%HE46a=$N`-&ebQOC#hSmF*f zP#GYl(o2#=FYn3-cJQBYNnbO@1u;UAul9YyWSG6eI*qHj4laJdW}r6q_PoW#dzS8- zIq!v|?+Aox?Q_Ti@AaIeK{>ReH<$U#6j4xZZI*M}%N*%5xpqvKKt`!n>9yr)kr~5? zyU$V8j+|#TsjCsxW;bVav=q?_us2G19m_(SA6%MEKj21>7qrcU~X}%HD*UD{}V|RaR(9|8jHn&|n%uu-X1m5LT%prnBgh2hk zF31GeXUdFW3_}k0in%8KSug*>0I926uD!Pj(szY?jQc_VvckZ6J{QM|g+V@Uh9?pI zV*^5=JWTK{9rSFC2BfKX<_9qjLPQs1KMGiy1dS}r=RoRMrsk%t4Udm!lxyCz97h)(#9r+9_sk_Us$GNI^Iju9_Inlc-}4M`^`wD zc#-g*tN-UNu+X3oA=Hp0qf-C(?Ev=9iJ$`6UJYw4wz0Fr=cCK;*Jkt9V}O&H`muE7 zuFvyhIJgie(mZH4WQ1P^z$De_;71ljh!@J*zr}RgUxrJHl?dsl_bfElvW_0?4c^gX z-5O(JfI0mx!9g)CehDXWlJYN1ih>+7v(l*Y%Qp+{xKmW&wu+WER(ArKQC)? z(wC2~o*^33%`CtQ=j&~;rqmD6WXbhNVc|IAaTjOaCvh{1l43$4NUrofEg2C6cKs>r zzghrx&5;Mzau&94j7`<8gGq#+#4QIrIdS~ZPaO0$$U*=+@m=M2@Hg{KDYkldS<*mj zykwom63$cD^8?Lp)O4!Z?)N$`W|rgwDvGp%BRZ|(rcTCrw^)G9Fl_R8JP`|{?b#~H zii1I>tWwq(|Ckjq6|~MHG2L>0Cb;A;FH_@xu`5z&p&d3-Q0cpIZl#*If4MX4fKk$C zigrf()fum;upWb|OB!c9!J4Y|0RA$D?01{6EjQ&JrlqCj?ECkMrD{Iq#7J@8_KI~J zj1}wCXcZA%y7_@Jr^ydsx@xPy6D_sBERzvF7zOQm=6xJo}_y$k@e*J$p^h1KcnreIc{aMXj zLIl3DF~s{W6!~2ii~VK%r8Rr@y&@B`OXSqkqIaRW-BwWW;)$(9KV^+-VD0DI0C&1! zZ-p}|?9{dkb$86?{3>v9RV(d?or67Im0z_CEP>aI-^fk_?4 zyzdpJhkEPfqT64J;&pb#YatN-19PqRdzErE?*>(CX8iuy$A^~@Zj?!-KaknxPkYY^ z%5anL=Dw9+6&bvU84{e!S< ziWDXGiX*PQvDUCx0We!%9PlFlaT%PL3F+e6!Q0WN(m3vx z78WfZrt8R&FHm*+0^4ga=u0`p^L%*`F#>Swdx0FK8t!-VcosSkOiU+s|A$i|8A{UX z&sJx^v#7Dh_Kd=pn+9d_-{kbERwpXCyzC3ZTQO!fz>9}RM-dOHtmwdIl5^f@kYRt> zK!&GcuU4x=t&t?=tc(_nnPsukenf~$k?*%iHDmu0`agDzz`q)B?$peCpM!z0if@nV z0pKeB#h9s6fRnoKha9~M?^Mr!B;V;giiH_dL?`}Bz~yfh0R&W!da?)+YtSU+b?w9Q zC*>rpwHI$D0tOue4cZ~5zj+>>+p)Bib5Y&KsfspsIW&|> zkcj_l>CS&!b4}$-Y(jb(g|d=sF2UtqzT-}PtHOJ5-{U}Q(d=#)7Go z;GSK%b-5$%J{r-v`SXQpG-+op%+AZ9i@L~WDTd4Nb4NH9mA^}sf+9{`V(t*7MHq)g zNmNz-D|7P%f*FfNdk5he&y>$am7$)3r3){?-x#0Fd#`)XOplF~7#keQ2Rg-W*ISgu z8o+8=BOlz?*48Sd1C(o8lJ(0(A6kOj(#l;{Mi%=j!Ck4}<;9;vSsL&xro$J-Co#<= zGf-nqD5n%Oa}9`pak!{V6?cI$K!Soom5AUisqC>Iw9``+8~)0+s@H5RC=o71VMr#p z`693}Lz7*Ce{UjzEFF?F{#@}D1B6^S^ZyYV3}b>h!|n}_J|^GMT*UZo)9$S(tV1NG zKynKIXB_<}%3}kfJmVhaPg*FpwqtRB_L#xNqm*Fg=2~>HTe>~gZTd3^x9Ud2|3f)6 zI1RfAJ=i6&fx*W_fkyXnw~6$?@-pAc3Q3}>s@T)Fg+iiqgyyQdyMdr(Cnh=RrDVUH zC6@6BY_*oyxPXFBC_#LoQbK3+BEnzqj}8^vn`a26cIiMYs0!9kTP!t~S?_mS+X%d< zMu%eXUTlUW3Q9542i??xhd;q$+Io9>OCJnrY!C4s+tY`YOZYLo+sDmX$$H;9KG6pb zT7YZ(V8@av-<3^&(>Q_M`;vuiO(r5UljgR*veI;OYm3_dO2^>!^C_d9zG|LdueI0O zo|E!pYXEu+rv=r;V^9+22x-D-X)+2A;pAI1EEo(wbe-U&)h zK}FJ=q;>o9(RsyVRg3}rBXDEvYSe>@mU$JY+Fi3_Wbx4@t zy_~qD|8b{%|I3{|HW2*R>nw$)DhyU&y1Q&ULf!N|@@|igl)lrH_`#p`57T^{K`+Gs z31Z3kv(=xF`uc3rcWnB~{X{WMBbL-hK`Ox?2Rp~B{i*kYnRPXV^I7P~%OkGm4?BnytbHOs_%J})?pg^w z8NZY9UUg3vfBeLHkfIh_r2*Os)C=ortFO1Bk@RDiK9Qq%OFbFuzZMX+a42j@f>G{7 z!u=vH0OxFW`yliz`XUxhfr@a6W3XaPy??h`BH6@f`$s+Tb!^Gt>W`e~+7mclK5FmF z$IAkEyh>v#q5?kzx*!8iG2Ce@zO}b68*I0lOleII4h}|=%vW~kb}6F!&JoSDa|zDp z&6xO%E!3UD?q)bT$G>SD)GoG}9iXbK|Nc-Ya{ci}c{qrsmNFV6C7qOhNJvOP!Ec$J zlQTsn42lmI>p`bnNpX5H2TG2LQi)oK*+zz@wO3cO4Pm?L1q(y@us1ENJz*c*-LG#= z%I4=s3trr0q@@uVQZ~t&JnNT}lM`T&9MZt_r8^fA5=u9$bhZ2_`vt=!d5G*dq#~=+ z%FkJ^0BWk|rsq{N&EIG({FfzA0piwHUQgA(?{GdNf!|i&pG>*^!-v^V|JY|BTm^1- zD;5dkiTOJqTV6usZ~Vg%_-_#cSp=Kd9&q4L(CMcc;q^+=cPRAIEYj=AmPxROxTd>` zI)y|&wXl3{OkP&pdM;QH&MTj7>$lk)PgrnAdhD%AQ3xreSKf3+iH?w*+x%4f4C6ut z^)(w|%@7l>DGs%H9Ay%<^0-72@7*pmx?baVH9_wEy;unsUP$zcq0mZuW0D?L_(rza zKm4?+m-7;JQnTarNiCfc&bt@xy_K?|8xo^NEcq)^bk}riJA^O#UI~2d4H$_DOl2eiaBQr*czVZ>N*?3lotP6)m>s)|<%|RUw&sHKpQy@Kw@HM=EP~ ze??JY8NCq2ji12kf#ds3zr@C;6^iZ<>mojL^EKOHK-_!~5YI|vUshkvj>c?#372~u ziUoT(8_QQxtZ2Vq@o(gEHQ++?BRImu3{lqCFOI)DT54ny)$mls+8WN%e#o8q z?VExd0n{8sg~ADx%bJ>+2E(QAvNAH>Fi3J!lT&fu`riH~uPC)&p@X80-NCktY-}8O zii?Z&wtkgeY8Q^vI$aHNsScP_4ahI`bF|X`bp$2>TYX*IMfx9SAVY`5OE_0_wG2fr z-yK|=-4(ZA>}hcS_lW#syHRB5@WW_7DXu4Tz46=ffLy*|oSyVmJ!n7K-O}teh3Mg; zEg0hkyx#mP()&MOUs-4PV>h;dxZ-(sr~^$jEJl8T2-g6sUk)!$^jhXsXd98p3tCqB zdxrl(*L#P<`EXmq`Y174LeycjAZkQsl!+28QuG=`L~o-LEk-wbln_B8IuX4k%IHM& z&gf6EsbqgUkGAs}1SSoanI&frqWXdu#GgG_e$NcpCJ%V$f z-?5ja!YGiNeY@$BD!iagcyvQau8!-5u&S-NSkGyCe*Oi3aEkayniMNLJ1f(Dc`3tD zCCQIq?SEtE-?O`)@8Z%d!u}Km*lNK&!@cRGw-|rro1UqWeANlx#7ddijyPOJ(Tnl6 zb!5Mh;T$_6siG*jR!Q8j4cH{KWp8S#EZ7vfl?%8WbpifV3q0Q0x;UHZGQ;QT?@ z{H2`Bd}E(NgP>=%q4biU#i|$J5)Bzn-5# zdh6Gqb_S+~7ujj|uGhF|FErICfe>}v3erMJ1x`U@V`EP)Tv9-gt%>}{vmU-1av-ZU zAuwpfaTL5$7gW-kemhffn|t}`Tx;2G<9~+2zbLu(C>3_$C{Ua1bxYe-%VpM@|HAPn zI?4Fwcfg3YyFVUi{yW-e!J&;@>wU#9uD#V~a$BUYMV{A21*C~L2q@L|Ywp9{-;MAT z))5-j{e&%^oO-F-V1hV!(v?t=Q5*^}PaxAUUGdi?^fFITF)Ufx&rMPSABwBL^QMo& z($Ud9EwC^)z6-uBii}&bqj9u%qH)K(SM_f5cIkZxG1dRo%#HHa>?DP{^+?mkXDRyx zV|||F&r~>k+@{T8-^Y+Lvc%)p64T1%PpYuV5;#&UFKi=X?d_dXYsX8};%tOvsGUIJ z7~JmgEe5Z|NNarct(+XzH+n3zBjqM=w3l+);{5ErqpJ@x{Ovl_D@p@uS%hxTjNDww z9p(7C>oW|7&x#d=SyStO`U!9WLIozy&=i9L!~VvKE@`UFJu!~h^#5Ep`J=XOE8{b$ zAh`CG$n5Owm^(5)HvT?!*k?e7rzebm0VnlLd3$MY6A%;p86m^(8O?G@%*Up8gjg!Y zGgDFd-N@WA-{hT&qOuEJ{>;IBK}ZK31w?_!Bz_m;)11xD%nbbbBR}o7+$y8^BkBbn z_~Lglp>;&*^<-fA>>UlR;1kM7e6I=W952_z#2ox*z}Qe$GT=SUUGhqv`?}gX_JQZ+ z6fsHV5-D~Czx?_W)l0z$2u<36@|70upqRPA8wN**W#0qe$}SuN=f}4sZ-2XNUELIC3NihAjQs~ddU-G8HCNDI&hdU1 zuk-6|m)kP*AJ*>{ep`j#XI?q2;YbB$t8LzY>x{DR5UHao4&+3@!7R_X^(NU!ryI@S zSVHApGlP6*91ZTKZLUF&Af{#8<9_O`ftmuU{9!Qts2O%=4CP4{j3bnjTtU6nkcz!`HAbAebbVu8t~&mK z3d%c?Q>k)sdiqr3Dvma%t)bz`3|nTyv~*1^WoSTI%Hu6(ytqF=nk%IvHJfwX7tvt- z`92_i6U&}d5~r-ZI5VRkDi6Nq>nrBWJ}yt3VpK3emtx-{MIIjdhF`* z^6#{zZugHG!XAPz*7)`y1bTUd&`eWP^W7uxj!bN)Xg&<g#cxxV=(BEgn_DFc-B#rCnt97!z3b;+rj&bRQ zlUnN!X?R+KMa%x)L-0LJCz->O?D!1+NIVv9#lLFCLFesq^})hL&2_pkVT2tM?I(d3 z-Yz{hhKfXR#Wm{so0XkFTlOOWFe&JeuP=Nt5Jz1Nkt1$37qD+0iOIZEI0%7=d#phF zq5qc8{(mseo*3Eb5``Ts+go2bsJ!TQ!IF@%JhoT3{y3cdjvB{qjgP6VM*W|})_)}3 z1{_HOk$kxonrCF#$QOlm%jVZXsWDhNYkqrC(Kn?2jek<(!?xko!{>42Cbsd?Uz3rL z^3F?c4ulIi<08);3e?{3-<)yZ7dS_Ez0Y6+sCf7#l zU*_=Z@^Yc5zFR}iWfcbSGUjQxHFf<)xMOSW+LK$r=avc!76Ps$dD0{HnlS1`Uc{lS zY?JuA>u6}XnoS^e_iWeaJPVZ4H^9fB)86mvfXL2iMfe%}pD=N%$oDcF$(W}p0Vjc6 zt3C%yA!qo^ibA0KEYHMt|EwhKvoGOz<>!&|{rw3k4@q9jWK)kwBCV&CELHLc`roHO z6BL$A-?LIUqTHcdXa+lglxUvIk{)O06+*xu{QlfK7_3X*O%)FxbY>s!zvRrz;rWAN z$j2sl%Yc=(GYU_Z$5IXx;TZkkwq8gH)#iQ?Jwyg$RSXYI?*x8aUgpRV*oC`Z!AQtn z-PwMNe)e49(ln8DX~D1nEJE?@!7`%`sGUORP9;TW@WA-lSv&-cWD|(O6-MZ&S2sEog>U_gJ24dNI}R#)jjdxpXZ#;_|SR0};IDgQu`Mp|WxpyJm5C?}!n% zv0@nj`G)>JJjDgm{ojL3&YI{b>3s1*5dC*C+x&7Qa!@khdQvm-yVWsoF17%xUwa;_ z=GwfE3pTbON9}+65Gg@Y!<*c-luz_c$5TdQ6BFiaF^>|??lRI|thN(DZ-7zAMPZ`V z)h8%5DkH3^%b$Kby!6Jm)s9hL@O6$w9c90ZQpWAAFRXm{m`TFew6FtyQ7D_QrL<_O zZe_~;JSGVzntzEu!m!0Uzk*!;!klzYQbG3UP@ljHcd4!72x)Gw| z;=F1BhE}_S+RCW(L#v*Uiwo&02hIL6AWKyYK6uxK|Tu0tx|*``w_hWdOGRp zXY%82eobx{9GhMqyD86H6Ly8%J$bneO$BFtM}-@-lfAQXR4(gm!LB=4jQIQg-KCxm zeu}(tN88EBlgd#!T$~K3Drn-OWF8tMbs02n5SWUCdN=6XkOtmdP<-;izQ0a(EaImv zpe&Mmvm~9hiG(Ebhv0%414{m)py+r*IAh}HMAG1I9Z@P!xF{P7)5NfVec$`8PrGbC zg`1L`qJN*pZ%XMjvIFOQiojNY+QPz!>haoMyXK)G=kds4>q`!(LYSr6BdJJ;Z*zXr zs*Tq(N9@~}VeRufq;^hH#*jhOkk=pVy&BuM=lMYr;Vjurd$IyB=P*vW=MBfMxUSI} zAkP&r5%>f9?D+gx+^r0ic?5W-{Kj=N-&Cc;?u<6`G9Pdx-?^fECJ)G!Z5%#*`<^JE z=lv47+8^K~uYw6A?bLkel#I6PD;nv*mUG^a?$FKg_6TnjojUzAHrRV*JF0|i$k$0|MiBxBno-1jz!}Z zNuN9#*1bXLX1UNjzs0qn18R^I3_CwBytF4}V9pbpD5pYo>rR z2&z&IiQd+@cQduw({#1QuUmv~_ihY_sbBnZ$DJhI)MG-ly#zXEA2HWH7P9Iw;csYt zIqL|KdS|g!RG+WZDw6WWn(pGWShVIy+@KPHH4&LCZa7HF5u^c!AE^|4Z)c}I#33SO zRfsT@ks5QTg2tiE@aFgj2Z2n1flib|%mDos)wIYl3gmwMn<6FhdtPuGDlj?Ntz45C ztxVUMLTz4Y0yKQ_mf`}}c}2Om?LWy&X9HT*V`~r#R>L{6-T}(8EEH*J^n_-$GsL#|Fhg4*%oj!-07bsN0jC1dztNP}abcHNU=~L8p zSHzR5+VPl|!UbMZd_Lg;OS~G6#NF^`32(0{j(+n7owI^+6XE-mPhBnU`Xl80t2Pwf zf61{kDL6{g{vq!U1C@RDH-Ui;zzhE2%$wg`zDcfHTZ>6X;<`d5Nz_AjvG#N2Vd5Gg zuNN;~1odow(Yc&S_a(*$KydX6mf^)wn+LM|a?B$rVv%vn#0Y7BN1IO{#PuQ2wY0sQ z{2O2y&q?&~EghF6D20A7!t-wG8S$>^C9&ZGn~j%5z^*pTr$wO)|GNPTczOXgo&%Iq*U(Jn@xFnGjAaX_HD0F! zUBMTz_RGe_kJp&ZRo7+PcKlEL;bNJW+Do3dAYAKlzTr%g`x$Tv(5{dgNr+46$K1&& zsw!53F_w;@trVFoOe`L~NcLX44pxG3nEuHjFk{v5ZLTwCX|?I*DesLBNEd%gpir{< z=<;mhXMll-!~Q}mA7*{JnuRFok|h}}yKt83GWngD%=F+7s8v#9cgoiF`NbLfTxUEv z!bzHy5(uPtL+5vE?}B~_APray+32R5ZaCb}nO%=x`hb4VkN6(P_=&rIn1%Ox;}%nA zt2WRhdhhGC`MkhlOyIHP?JHJ>Ru633&3r|7HW7P4kXOQ&d)Nk!lJ>Z4Blq zIYp4;BRg?wgEc|_Mkd?@q0y&C^1puhzes=@<@Tf7AuuMM=HijTE2eu=Ul0;}Ev%sh zlN0-z;hxkNxRoTQk1v#5ErJ~HR+rNin*`lb7CHi*Q{FM#v;0X3pe-UvpHP_niMny* zL!R4m+v_ue+xFz=fqyMyGw8UF`V%_gNFYJ88p?p|vq^ujOhRN)aGnMDEzAK`WzP{1 zmbl0ZfrUJydhQ#NDy)_;cZZT47FJ0qCO32iAW1n1!o)*`=-s)3cE^IBebVsU82++~n4BNixU7t|c zw_KUlC5@-f?LXv+-O8p`7omq@>xGG;ex6BKKv*c=GkTVc;X6K)eV0O%Fi-LR^n9v* zU$GJl1hmgH=T7Q$($T2`OP9Iycwv@WtT{Q#ol}o$XhrY%g(N6*2Q!5uMaA5o^vFv} zevK!hSDWoPIH*)rou>}%J309wI1wbG4{c_lJ-U-ke86s$;`CI>wd31EMvH{TPa@B4 z-Zyz)6COKvP|RjK=eJD^S-EhEW5@Nx_l$^2T-TZ7VqckPFi0nLN=@fbITd|oCTw>UvrTO->?=( z+!p-kw6OK{L6h|{;Wkr=kGCZYH(pPLy8Db$y^nISQ6S+~I63V#Vc2@)?JQ{QQNYkS zItZJaq9rmsKP^h!hI^&h~3gTmoq!gp=o6KqND4e|9H zVEXnt{nn0y(cdt5G^_0|whVn^{wl=xysqu2Eqd&CjvW6h5?NyG5>?x5Za-Bs1~V9G z?$@?>gG(z>xU^#SW}P?a$ZqXXfc3|+mN)0EOS!jWps20(jmw=$3p)`D*Ua{K&U(Ah z&V=E$?fU8jI98VSj$*5dVYX!MRZRL|SyqLuYD8pI=+S+gvoHpnFQ_5-y(qtYX6lx z@}82WXs-0cPfnJbJ*J?w+!@QgNxAu8z)hE%X-s>O%k*~_{%-?~11*}$wy`9n#bYfTf$9_gm>tR@S+h}Pjn1Z$};HQ^%`fv+qH zIhai;w<9eJ*b&llnn~gJW)s@CYWdUq#{3T zeg)ne9vHYE2Skgurf!y-(HD_xZc$&+wrQpuJnq$6<;Z?j1k#)NmlqPOt{8kE>hQw8GEfj(^pfZJlp&e^RT*^7R& z3Hz3i!#G!1J;B=QHgzAAp+U@rts>A0qmzo4`Q}mQuLE>-6Sfc_OvuiU6EXt2bqzAX zP>SrgOw7z&D+^D?W@f;8XY1pKc&8Gd_tyGxEk=lXnyXl4uZ(V9t64Xohr;V55gvG- z`NT)+wb1*_MElqilaUIwEpi~k6r-gUjO1HM$z<*EQb(AwB&;(;`{%8xn%%<&6ooR^ zQF>?^Z$BK{%`5!s>LS-0_6K~l+EwwTMMYgzdnKdxGsZa4IG=3NP1B)-9;1QMm9pgs zNeQyZADIb9=GK2Y?pslaBnpJhD}J5VBajXF@#E*mHykUhENpLsca+(x_Z-{o)f~J_ zHrwTin-Gp<)6@k#{9al`u>GroZg&+w1F%uhVtIFuQne6gz~&Y;rNwR`<_SLzzia zeB#3lKQt&pEe6ny)NC~;Q)b4N!V@ni0<7cy_GTp8j7{8Af45h?KT2<{0?Mks`64lW zN;uy&5ttPBGw|`GMTu#8y(*LK2B#_KIdvUh)4HMmGnYx;brBg=;_?IDX4v+c*&rug zc|TA|KUW|(t;ZNPNj39&|4_(o(c#Zbv4z|Jly|73&ZlKklMAP z=WwhcMg3W+!W`#P>ANfUQ#Rg&s-?_!FXC*^R+~Lmt~u}D*FK)yp9u!&t8Q{6?X*N%}Jtm;Ek(tEm)3(;dl0v7Q}%}f7iF2`Xr;!$_- zWkOpqP22Iw@$v1tLGy4l7~9`=La{P+@LfWd_q_Qk7wZxDGjHijFqY$3w(Z))IDLaE z`%UX=g@3r?TyD@-@MQyat1iXl)6!zO)xo3-g!k|0PRn?T@d=1Qth5;%;`}%Vb6*)S^0Ym-dxRo zuh&gg!VTi0R4Th&gOjgCsr-uzw#YlvYI>9aEy~R75V7-Cvm(o!15?*4dspFhcvvTk zs`-{`U;~1g=6c1Qx;%5evv@H-Lqf9?ykdbh)Yv;F$3$E2L9PySpSd;DT_Yjbiem}w z)ZdR*b`}of*1IO#^!5RJjhY?Ru~sJQ1dIMl@|25Y%U4#hduzJ4A1^BBybp2)+@9Bp z`Y(IAh@dYW7M#U>cRL?_Ht4pe+wXu}C*KA-^48b5RiJ*w;9po$k&JX|5rLBp;{SN4ha;voU*;lRdRq@$Yn~GL-6;_BlnT|6 z(DZsUZ_jlUW8uW=goaa>8lK?kTLo2x}2eTpCv`IHKFIRsIHEXqSAE~Ub$1$7dMsRJCdIlOs zGU~1fd)|($vYSHr_BViPt!G~?$iD*OQa0V{0jl!pQ#bTZRgXnlklocy zh)-t2ecyu^2H`6r3kIXa;G(blA4u!i*MJs{yV2b14C@;y^=St5qy7k0)t(6GY`!nF zHn{l+c?W3m=PI6FCfJoPEYHuyp2OXRH2mOU{R1MdooCd4eWVljECt|E8f2L7LL3Pz z3M5Ca#=ou|e<)^zn@L*ubC2?*??Pnd3o%v(yy_l-*Mxp;p8Za2m|n(@$>M+Rpk@BT-W7X{%|WFC)R+#K_1kU-Z$l+eD2msD5-oA_jy z@O$hljvh-OLPQsq^HvEp+&R9ZFnaO{>S|_WbjF>(Lmpn-&-vvNxI}SJ%x3}2{|LD* zky^cP#+=Y}<9KVNmiUt9dR(TxzB*$EfI)8oY1qAHi?bX3c@Y^vRuz>MB=2!rO65-_ zlu1fMC7N5q-SE*hp^D#LK^Z8qF^_krG1NJ6MMfqfAfxh*H*VpE*Jv3H-2d-g(~^3Z z20khTND8QK;Zvva)K$*VI76Tr&7*-52=f?fUwRhugR$8F&xFgA4ucl9O}vaxxg*1V z{yJS?cF1A3r8v*g!$W&vb;$k@H^sFUkyrM4LL@JBF*GRrK$k=GJm z@Fz7eB;Ppr{5METiOaOP8jGAuw9Cjc{dH<*ar47>usHJANmJ8g`BBDh=R}}R`78(b z$!cSW^{hXR76?l5HgFNA>PZ7(KZ72p3t5o8>L9zc3)<%WE6w*3;Tj4@EgrW7FSfe@ zF_v=HJZqmM<$ZhPlH^Eh*=JYT9=n}pst$Hb?`u>9+|;bs1szMi*6XV2rlQ*}1W{*R zg-^+Gp+a3(hsri|gLG-{7=R3JqyZ!6lK^wOdm~XGIi)b!z$618i z(0~Evg_ExDuZPsUx4xjB9MOKtx58eqK;5@3;(F`Yhta)U#&ofW^mNnNh`D(JtaR-~d0NPe(* zgnRSL0S>1bhc)EJ4ui;g=$ox!{g0!?Wo2y_gqygUlN4Lgo4aDc8|a{1BAR-hMLQ%g zx*w-(7#t?kX*oFG8aRe+vbe3Qrs(SBDco6F(=Cj`o-dHd zk_Bv~w?2XNwgX*n&OE73p=w>*5H{;!5VpY(mHg|H54 z5j(he7kv1IE+8J^`h2|^OMhk&xVR`8e6x`&!4Qd?_xNdepZ}IUHqyXRNU0xDQva?H znf_k_{?3y6$5|pvfb2S7;PRMIOVkfFtYIO;|-K zc0@Bj4Px;(#L@D6U?@SbOFD@)M4l?$&+cuBu5T?z&wERsMi2KxGcfdi~3KvF$YiMe{W7hhj|__lSFDnQF9qlH4#d?lWW zCJKdsA$~-#MBJgEhq9&C?|-*{$F@_N&|I_@78>ml*|T*TjZ}^d`$lC`y(VM1PhESz z;Ofv#7z_zIX%U_cS=V6i`YnVFdqLpn&$UWqbm!QX4ynt&-hm*Xi57(wL`3*<@2F6L zuU}`I(T-9b<7OGfFeTt>$RK!yRq2r9><>3Id?N9t$Gn9E z#J`guK*O}V3RYjnzD{rKe}C53SO>jXEpHQVnsZMaT2@T*qErdGSSIwf*zV#qd_ju< z0makT{CaC(BIvPX*Q4pfyE4I5LFI529VU(insM*^hzmxJYi`*;ccSUk(_3!~A$3)6 z6h(GZFti2kaBPN!)E%P$Q|9Yt(;t-t@r0Wd*?*_UxlzkjUvn)@M-AxaZj)F{Gf_-! z4~AaCJ}K{!OZ<|UqoVo9xb=|cLX<7wL%sW2^}hQ!cgE1*V886j_vuv7(P5C$!??aC zak#hoR0l_#cvivJFEziLPX*e#E0j%|JYp?;l*L>wqU$bz&FnS22(M(VuB$*#twnad z1}DqVCU56{FA?T<-)Sx)!l`&|cWFcXA>d<9D;?*B^U#k;{;E~s5*F8wEf_qsLgN#H zcN4;f?=eOnd^{8mo}NXqq2~`oU{aLJH6#lRB0ps~Uam^J>L80bIlrtJj+HWb7u>9Z zZq?zA(b2D0d*tt9og_P{4@857gD;225gloTtZiEr z&HcAxsNvfa-II@2wiSK;BN>Uf4AXYK83`%C7@6e4I%}3n+SXZv3VfxgTCrQY5uLdt z<*9}*IKK4Dxp{X*eOG+xo|uVH42`VOdj6}1VOT2b-P)t8tk%uJ?UdL3OGGhfv&x04 z%lw}ZoScdN5SHvfK?N|fV~n6^B*?|I-T_6UmHEV!Q3oV z{atOq>bsS`e?dj-*t3Bj5Tv+7ILEv6a#T3Jn)8eGO`x+ztAj??aWly)=0~Q(6QeQ- z+SW(etVtMt?NGt&-}%GuYuqck?b_Q;(u6TqzPBJ27uJjDjQ^DH|KpYEQ^m_AK4hj3 zeYuR0!YZ6UYh}p#^hx>=;#^SbZ2qRZB)9HK)tBZEs?ST=pAWzIHx!MNecJys6k2Ai zf&?TZL3mfCaBK*%)t|QOOR&~$WubG4^1{C;5>7<0r{~My5w#yx@)wBv5SKx@nrMoweqe?H9Is!+9!(BKa z=7|r`=lCor+C;BBX1_{X={K|m!J0&by(Ho8(4{cv#Cu8)BDC4Rg++V0Y<*Il?W!gF z)yRDmHudh~oit>E@U3$FQXcKJAS^~0_yo;!AGs(xD_0!gJ75<^?YfI2seLe*9A zH5O0}Fx>bSt46WOD)*_7IX-zAm}q)-hB?vHnWAXM39UTS@nV@R!e<1?h=`!8JwBq& zvE%R5KyRrYR%N~S!d3!FDhYj@eo1`v7O*qD0{0eidO`4&Ko}4S<^fhfTiH3 zHNvcqX)jt>AHFxO&As)tvop<4TV?X1D;G5Ne>y-D$xF?NyB?>J10(PB{80;`eg7?P z6RkcaO=RPfRe20IJ!!DTaJ>^wVwRrY{zapsQ~#BPWjE%xfn6+D^U+(Q{hb(RI>Mum zvOqab@gs$O+av7OTl8PMG$&6raFns^Gnf*bk%1f)ki9DH&Ka^BE<>H?bk}27gy5I4 z_$jGXWgWHXJ-ul3(_jhw7f`l3GT_}TlZEUhg&7`en8pn|cp;56*ZJ2Y`eTafIPFSC z6bCfD$MiF(jtyf5<%5kC3UEf)l^8^u@PHdv7$g32K*BqE2Y620j=M|z66$Q>G78{f z0m&_vXx2*B;n&o>*J_ERp_U2i=gzo9y|``Qh`P4*uvQW6sDF5PS4^n8u++clLwwUs zX^y>`+*nU{MZ`pXdDfs;AjzsP<)2pv*;L|BaDsSQIs*$*Gpb8AP6q(mr>xAW@y2um zuoUJ%G7OV!m?Y@aOYjcW{&>~h&C{YY_ZYtJjSjDn|DkeXsrexSh}`RyC7*E5nfvP6 zGJQpba^g=#Qe~-j^C&yepx=Jtd>u!9G}G*bPsp__4EMbs%tr<)cMJBQTfj)58h^>t z!z?KqkBI?y62+X9S=XC?3i&ks%JxTRWfc`RjKAMZ@FjR-hx9Sm6Vh1J68WUs~`?NNzIZXy*aLq%qUvzIxwHlS!vpsaW)6^>tW;S#nEJ(H}Or{ z>VGGNf8nk0e>6j}JypZ%s00;K1udt+RwxRc2*+M4FPxJ4c`2WGec@~55`N2f@OFh< zFWoTH+|X2ky|43!R9udu)5d76e_%ogrY@cVZlhcO$!y@LwU z?HmxwyMBTsr7>wI=pfa@_=gv~5{9xQIx8-yqWqyY77Rx?VURze72TfV4T=3tcH;5q z(2iPuWB+SKR8Zn64J+^%Z&vQQI-(hBLli|>;8kF3q=gd{tyfWN<&u76>F$ieDk}*7 zQ%ud2TLDpyW^jxv4_@z`PJvh|u9rK1Ej5I`v}%;}^(Dap8GzrEvIOJ}x;A`ynAIX*Z!rdXFZSj;K^9sxhwNiNF9| zceGcSunCAvN%A~@yk>lC^K=>aif4Jz^**!488x^JUcCs5v@YgqH|=BP_zy#`PI}eD zC@e2-Omd3<{QJg(Rc(%P6G<64p^pV1BGX@z$l98*7gdifDUSMhXfD#}H@Yh6AR424H4X+Gj|l&kPA zreIdm;&^9%pq9b>>(ILgSven{#xm{FW`B{zV?S!+<_&@)Cacle5I(5W%} zZmxKwk8`Z9DHWpUD=(VgZI0=gAQ*hrWq#*chiy z^SILLYuX_@tyg_tlO@6f-Az#KNua%0hQ1EQs`yK_3=9v}e-}?szbaShRdK8DgkR@KhyDlY zHKagr9(2ErZv|6=^L|_h@t&J)?ZzzzrKg{?w6Hqi<}?`0V}UNt|HXHgZA0|%mJ0u7 z$oM;gG?ndYneQK)j?@(U<-`PAMr$iMPSh|THt-!%6>;oSaY);y-Td^aSnFTp+YG&X zTihcRPDhe=PT=HH_~PO}v;1S2-@Lm-WHW&I0NaGVkPTQG-#5WhB4ZAh-Xn#BGiDBs z5K!M-C>L?)gCli?DrR0Vg*zislAS4}J%NZZu@&}{o4*B`i{ZUHo=MCCOX(vP2$l?^&8JXzaPJxuL-4DkzOuEh{sE58k+r)$mG+eA&Lw!#q9WCNJNkk>b7j`IVF!J!aG&6uL@W{c-Y~b`7{{06uW;Ue(d7!d>b(#G?vk0Vx%o|)c>j;LF_smMVY}T^mn9aE;x!2hr z?K{mIb$wdRh#YZTJMP076-ugidVU2+J#8AF9v^1~A2t@erVfa-;ib*WFYq=2+6m7Y zAbxUhH#0=cmULZHhEGjQz#1^D8HEuS_d6Jpg!JoM<^uNawM_aNhqeh#2Rpx+NpPhi zgMxYj@7ll09^9=_rpShr$NN&pb4RymJDX)b!n0BG%&CW&mg- z=35GfrOINl_)2rMc{Cl^Awic&{FKi_Ji9}cQXnbyDR-8T+f;<}4Ijb+0=9nmKG@(ssAsV|WX`z33Y_DcH}> zOGQ9jNjDM5T?zb{W@ykZ(c|^f@kr%z3mACGBuDC3RJXT&iigxGl=ZHuuVg}yX;1iR z?W=|gZVS38dpsbwgc4Bi3c;iK{2TMXb^+M*P`Z3-#yAdey2kSijHQl>Hc0x)+AT5J zf&ce6^q=A?ivz&Hu=OO)f3Ki6|M=hNWu$i$ODa2GP=_VLSXavEU!Es$Ywwfbt7`7z z)2C5I2^^%xhD|I8-r)Y$%SFpAVlBhJxHU&-9nl_qC)IYMVOY~by?(rd=XTl zt?ONtiF!=j6v~A7c1V8R_^fa|(emS?P${gqxZM~+zsycgSlxrj|>R9#=iVkttdY`h6sb%myIKtrTVnUlpul) zod^D!F;$zRzNCZt-sVQQA*Meb>A4YxC0z^nm7h8i!Ni=^NyEXO%z5;<`>iS!%qUFG^1)cwTZIrXau|pz?^>An!X9iwl_ndvO&Ms$-!Q*OATc64!z{#{3 z*jqV6?#D^j6*J*9jFIzcW+Z=bOyODJ<>*m$L$GkO^HJ&A)ABYh*)L5`v=(U8nB7#h zG&lT(NNEDwD_~LB(c0uEnUSI22q`CICjvdM z$E_0+3;XC1{0*>__pcD~DZy3bK(EkKlPu=%!o?QQVi3O+5soMer|$n3r2Fq#3eNw4 z`@z)@hw*MtaGT2h-Jp;X`hJa66dcU=%@!$!Gbyk@F=w1d7JKOrvYD0F7t2giHxb`b=3(qDmhaDj0S?a61pCTXj?#j?!)Er7X)bf5rTExyN1f6E?r-ewn zX{^HHkEk;>Q@x_F&MDp{ynZZ9t#4(x#URg9i1t+()#Q=uaA3kWG<$`eG^wJ3i@Tdo zHF$K7p=I;T**|?Z*Ur?ZHAE`*?Y397bu8OjfTb(aU}q?*1VmsjOMMij&^+D&%*?p; zKYo2>XUF5F!R&dfAX+wiBa^o(MMkh@M#d~f{bWs)u-9I_>@&sbX6inrx59SU^+U@0 zL)4QN;VMy>_(YV}avb&1=&Z$hx8zVioBWvx`RJ>I4az=o1-P-Y2(tw)h_KoL_1g4 zG90U4?i!$vo08>m$UKA>8t#}^TWgzeEW8zw{PZX$R*S_XG-YDw`ARa^XwisJ0BJa# z`#%4;CRwnj)+hNw8cPaRwaY5bu<}qp?tS~xdE!ihJ(`IAmR*wPL)18MoIW2z_J zU?z2G&>)7mnp{XP^rqm!)qZUK=)T#X`qW;{w;uxjNo8%VKY8@Nes%JWQcDky)tu!P z56kmE{G;B1;Gbi`u3EB)}IUO@nWJ^c-(CV{LR?)`coJom7>I=8FDu;2j zh#;M>_xl$ke_mh4-z#U5iWGnR*q)}GObU{c>FUyc4ct0dYM*P^+vBGZ6)2!T4u^t+ zN$EfR&tUn7iTckBwe*)$5qw*ms|@_toc6z+EQu62|FB0#iUk}8Wc6Qh9ED9fd~^|w zcPUkjdn#0WX8gTM-aGyyo2id6nY zQGZ4E6zUN?Z`D=SMN7;X4o8!jBu4it87;j>j3CtV<4l_--c&Hmrq9agwv`8PL|>58SXDuu@dGrw0u!PUK(J#4rdq?&>IN+hWd)&5%Ibo z;eGRTa~>PqmjSf+i>aD@YF`q+KKbQMwj~kTP(o$%ni@$H0daAU!iFjD?(7f;y)bC@|L*Mv&3yZ<6zneRbuh2*gf5LM|sQkFYUuUr;DB zHPzPQuNSqiF*L~2yzCUP(#Y)vA}z)#Dh#fxcx;!rLN_rI4bYno4kKCGJyt&Sj9ZSu zu8bpkGsWSsdQUm~ojKn&`>IU6C3F2&uk6f%*IhiLo5Ma%3zz34vK}}Gq5Ug9=uK5r z$xS(@hM$Tp!aMSn+muntLwoz28N8;v>NGXVPU#ej;L{)VPd863;$k| zIu5)2=q#Pj$q^IZaCuFp)pT_+8_qpX6YlVQ_=iUEUN|kT701yV$#AT}7n+NXr}(Z( z`4-|_wE6}9_j*9Hc_Zejo4JNcs>M#JqUAPT5g!g=<@H&0@@pbIT;F*koRgxk&yA92 zlEuAuR?fO*DJop*Zn=yEJ(?0jk@oLucF9Y+*lG#~$vBQo1PDvQvdaX59{%XSA7gG@ z?KGKXlLJGx3p?q%yXc-qlg)a)&>GsAeah>3S3)2`=2eo3$eitpHrK->PgQU*E&sIb z*+-(#_2W!jK)q>Y!TC_3<)1!&>NAy*XYkW@v1sdCY9T-^7rZnusGu3Z88K7;QoZ&N z=cd{HA~xy)#m9N3{=9}(sEJ>^jiw#{ViP>&{wn`+c9P-8;^HEM*j3u}?EGUu62Qpc z;)arJtFg$kiTjxf+i2q<6(0rQp8Cbu+}vx`?(S>j^k-;>b!2R;4r#YJ^rmc3`;okt zWX(Mod%fpHw6Mq3x`Ry6-E0`H=Y3f?34&QDas_7PJM^W^a>4+3_6s~Xw6_D8r1^u` z1$(a6?#{C;z4f{7nlyREl*$J6m+Eh~`c>2`TQ{JC7?#J;6E>JARj2A!Az9Y}EeAFo zz!}pM)Ya?oiz+t`6vIi1GD@ugyZ&pRrrw!tuFY;xSMC?j?vL;vEw%PX3bRWE);Uol zxGE~97p%{*j@)l_^YpQFX4rphUm*@-AlbBm-aNE1Qu}|Ew6REBN&D(D^j4IH{r_qQ z@>u>UX@J^TiC83v7?5HJWyQd;bOwO%`!&u$3`Q#_(MGYTYQQ{wibOCf{GJu5CIvdd zDUbNU4?g|8d%cA}wMkB;YOLyW1h&_mgl|M^{-l$OMK}W!-bIj(zu6ab$|&ZGQuP0e z=UJkQqI%eyD&XbQ`?QSSUn}iMvqTG}Ynl+WVe~QkEb`^unWgtzxQu5sqli*_4)#mS zd)g5EPfVF>4V7T7pVDSZkG-tVFq8dr)OD$CZ?Il~K<0+psftEnyAzRU!9*NchV$nA z%}K?1$kWv4a`@eSa0<8uBoBv)89VySbn|#NKfvFAHo@I#Et<8884o=ja<#gl8gUrTw3(fZlKTUS-v+q2@N+`=v3_Ec#ia_l#v z`0=Ti;2SqLZPNF;1*PWw&2X%JOWH*G-p^)z^Br-`(*1xQ7GrmK=M{g6o~ibJlKW+{ zg!3aiv4_QrWk8DGmFiboCciVqo_M^XA7vRu!!ZeGP*qvVD zu@9nMlY4soB|2vMA3MpRtQHctQV>ghAt@=r<#%KAi~k_n6dasZs#)KC8hG_aqWFHN z6*U||z2)b36hCP-)F!mmoUMK)G%6SOKA6U488|#``6@p~cwji9)FX$cx*PA8*kw&G z_YvoJ>HMtOyWG{Y?*6;f{)!}OGlmuhV2LAVE>B5ineF`I;$kCjX~m23T^37?vwb15 zZvv`!)PA@-P{2U-Yf>)tG_xQ<;jAkR{b#YX?d@hWO2;Rj*!@O7oX6|rq0#8nXl)O7 zx=BZ~!*rh=YeLP9X%8{(kcj%|kdRD+w}0@RYdZ9tDl#@4w?@+|r1gol)O0Ug3!S zoz1>?S%&F`_gOV>JS@zji`g_}%l_=~wyzuiXA-f#I@@H9!{5&2*s_)l0Ev7j!y5S-HTyN2-!jhye!cFI z>EHZa+y@>|n=~ciDo#s6=8|i738iCYojcDIIGE~w`u=oM|Nj_!>#!=e-6h>6-67Il(xI>jNm-PO{M`%p`#kSv@Ao^t|JJc?ab4G3Gv}N$bKNtw zzku6RP$#?1RxEc=Sit2#gr?A;hPD0*$;jw|Lijt92w@DIUw(V2Sn{Ci4y-g02iLeT zd4d?BCrvBBHN4dT@!f`5(sY~`

    vKaS_wD8MH~{g1?SLz`sT-m^)C?F}{0Y$-mp| z41pg-e05;=NLknQ^OWDq*V}fo*b>2Pf-m1ruteb0>(L=ar(g&2KS#$vC%Ih5-zk*= zk5wfy)ZJK_CDFg+>4a`5^wPPeRp7WIjelI77{Nr{$ z(1D5&)~nI5Jpgmlmzp+42u=xz1_CB2CWHr#OB7%DcqzSuhaNjplCGsjt^n@1@>=HbeS;01L;rY_N4>{N!ov~C)D*~d87sF7)()NO~B&RTBYUgCj z^sBroptL=sY9mK)fxPcyu-ECCh@Es4R9jtRFqR|Nv~Tdtsk*MNwzkNxMf9x@iluIU z9=fQ$gj2|&bbSP>C0?F=-ZM*5GYVuk*=dV3;g`#EuNw-pP4wr1w+Cc|sSUJse}xQF zzIb2R9VcRMd--lP|vF-Bbc>=FG?L_e|8K_JI{fGnR78N+&MHl%c(Uc0| zS-cMt^=Lp5N_;OIiDzqVwzIQC6MBPo#=*)f@B%@QYh*+r?X-^5v!rkPof1(-ob#54 z-0kH_YLl+`8^bk2S;7-L|0|FBZ_z_A>Z!rlld4Z zcb#ouhg7fbNL&Rey~R*|gcK5%Bz2{iJU+X;$Stb8fj!XbOF@K7%J%);_kuSkuG8vq z{h1a_Qd_0zr?d13r?S;La6q=~eD5R=tDAc{JMEd{(}d2WU%xsH8uW=>TTu0}asY(- z=T_kcK9W$F1&54R#DImNMk%=)rj! z35a;f{=2Tt~6^(2K$G!Qzq%XPF=>cwoZmjSZ)jR%OQ4tc^(;#CTR3Y9o* zblo@z10}U>Gt$RkReFdTl<>9p4y1!vr6~cBu3V+g2(0e5bh&V@HexEqH>xtWDA|11 z3=rT)PVF9-6mBR!P;Ctbpa)eASxm>}QWI9nQ-&=i%E`n1!_@ph#1IX#=*Z*2W^tb- z2EDkmhlDfgZeU=f6&qbFiLTA4yR!_*_Mh6!AL( zb_N|*H!Bxe9A8roV@O_9(^Ikzf>gStDJ+zy&2ha5Ejhbi^fZI_d~R1_IfYyisz{W7 z#R%`{Yd>C(vtZIRzHV~uOq6#lNXE7x=7xJ1y)5FPDBBomUU+z+02dvG16Agtjrr-< zkoMW!4beVcYIZbHSC-@C0!!HqmP0~@hU|MoLp`s5D(IY1i)-HR7G^b-g z+7@F*NC%uVj)g#nuNe-?Wx8_paB?mN=21Q(QjZ)Anz`&QUffQuGK;+zM!3JGd`OWH zTJzU^YCC+R-^sttFa2%Xc|VS{@*@>=-gZT<6+~Mpdqi*yl*y@TY2SlKzEshM?-luWaJx zSgrMX0y6v=TS%*N=4s~x5sDWOJpVM&en=a0Yl90F@yZbH_5d|Ys&c5nsud3CI5wVA zLD8yT!E0{}qQ4%%PfUNKQNE-x_KD9TN%-mwT>JNruK$XCnHyk>wPwHk?wh@jdT@*D zUf8koX2>2XmV9v6^89>$k9BFOxsM$!ea_ZI(Ur6)g;TDO?1BRD@>9mo>OD3rnq#`3 zp762F;UtIJ6Y=7`k%Qk!G2nxjFl=&)wQ|BfgdfDF<+7dehv`OfIvh>nGo-!?m=en^ z!}T0123+K!w&1~q7{c$fNCn^4UF%XDZ-I87_bjjWf@cn5_kVa*RaIp>hi`SB5*i#D zph=7S)b?QDpUwYpOOO77B)*3gE#8hK*m&^b#u#PS+yi3wW;XauT4JIG)N7nYfuuZp z?BSdve2eM#X0dpWT`v`S;4RkdC}4SWPZD=-w?UMXP2qgo__UeJb8# zoA$0w2d1eHpQJMEZ|L#Ff7gD-X;xm!sHf#>R);oAmQwJDMcb|p|eLpQIifIAid9 zOMVt3R9PkqMrtCtrWECWHK;5qICJJ*Y#>iDzF1|5j)7^wMv)-3_+h)13VV%k%Yw73 z#nvP$S}MR(JPPT#t0i`~?w%KJR1T)UFHVYpI51P-s^NOhL`SEE7!SU-&CZ7BLh{7^ zN{qu!c2bcNl8e6gsEXuP*O+_9VQeXh40oJMhE1|9O_&ntjL4S*1pm?%By4&~E%ksQ z>U3g}+mN@V+4#5EBjp>`K9XJQdg-+))mJ~-yuGVeK9h)1_#c(=LuODY2N&NQCNs>k zK5U$~#(tSIR{QqnVDJ}R3K68Y5~?dMzUik(K@q@P7ra5Qb%0mrs}&k@3j#)2&y$aH zbH%ixL;^hH4Lsq*eH8ga`lFuo`(cs0pnlHyzKlCdbAvDIUp4Vt-dJ3HuU2bP6AYfgenda* zVcZ#JQm5!WZ&}6PLH|OC|9@rAhnilk(}Puia{?L%O+5;^~b(65`o;%TNJa8(T{z;ARCy=wd*Us(5X$O9w-MIhMYx^jy!QV?WQwubO&nYMVtC zB5{I5EMW6*7rQ2KD;?wnM&u71x-3zG^!2!)_ zrpLflwN+I~545+m@DYQ*zoj8U`dmqP^?v^BOk?28P!65VEm??v`3Ld?&-Z%IrK@6i zx;;4^<^>*c<)5U{q}3ItPuVR_eleOY~mJjtck^+kKwJvcFGv24E>5B#Jol!z*+g!74lHFQ; zH~1LO`A-cRHG6fu;{@v?&h~zcl$%u5f(MoklbtTg{DG^_)q>{2mJwbkcFv4Wof58Q z?Eow;lAh+D{{64`EEPzp-*Su)*aFjv@8#v=qktU4hDp*~toRM}>-YmYe9>1iw*r*B z{m(@u;hV_6i8_VgSah8vP`CYHQ-+iH(G{Q5s4L1>TAU0bmM;(ePK1oqWJ+bS{1gPC zH|@dBc@)#04TtzUNkR+boVsi586p+^x121q?vnsidopS@yi^aOM;?r!BGTH-dKTJY z)kC?G+7hU`3Vg=KRq&;Ct+^#b#Zws$h0^i;hoKS?G9Revw?0|u;aBK#kk>J2XZjpG zRtR_nR+QRdoZ(j#zmXX>Ac*O}xnRhD2)xe*jhUI%7+KnrljEd}#nc<7z3h8Z^&S~4 zZus`9q(cY()tMX3q?h)So>3gpO{p%=(+EuiXQa^|8U*h3_IQHfAnz3=tC{qqYUQ5BF$=_ zZ29lC-|fDp|LYn=R`&`g{CAcDaUbOMyAK9yKK{H6P(29u#5uUOqaH@SHn95Kim$Qj~K|b9rFYiyyjL+=O3lu(CJzRly!JndPe1PJFCA*h4 zEc0C{+kNneY-w`M-@O&`jBEVMkFbK$Qk@}e8ZSFnUfQqlluFF-6}iZ74U>2?*$GvC4)WZ@6AgFEq{0W$%gCQJO5yy=K>`rovCh{;VoF z7N|e<&HJfON9r#Hhb;ov_Gh+*L4{mJp>OegI{G~@fi97h?^XYgw)8+20cb=A$!vU{ zEplI#vHVIXU>#_UXkvtrvbtoe0+y-LLOA0>mGri$X~~$MNpLMq@}V`HyJEeH4U4D2 z?x&*kNEO^pew*C2t`;Q!mOi$c26!W-NH~QLXI@#DvtZ6lBEw1tkDWT3QUOc|LUOJQ zu_fBW#GWcg)L?Gn^0iETY7q@GvxH1Ir5A4hlDH0^eb`MUkzH~8sVI^|!g9lCL%BFU z=1ndmyv}QD2SCv8CF-0Lw_EG#)b}eC%7E_tvT3PP!r;pCa!y!t9ih*_y-oJZ%gdXl zkw$SaM|DTSMhtTNhxaYLOJ@|#ANtAV8wtl06jQ%`{rcux2;U(dT{6h=qe$rfC=Cnh z#E&1|hL%R7K=Pi)(WJOc9G7I{MO|ma@w4^Jcl2^`NN=>9B zV5(n}{%DFl7YkM>g7=kY4j+^1wv40f_8ydz<5H67y~+ zz(9fGr^$!#m}~px7nh!%tULr*e(MzPUATaZ9Z=9DQ2(Gu^PhB`;3JG)_%oQEKc1S9U5pVT_O*g$%KaQhEy7F6s{gTS5YLQQz8r`&cDx zS_mPvnA3su98N>8H8IQ4CG&IK+4a+OQO>C9IxqHh50w!>vE)kLXyKP|$-8O0YYAB9 zKBIQ$$j{QL1$shCfI?ATP<8<0miiJU%)bP#2m-zPD%hf)GNskw66v+*_4fef#c#bp z2fE{5U#{npcXoFJ-|xj-W0(5^fy#4bwW!T_ zVgcRAY+~pBS#tZ!`;>$NUPnDJY4D#ZMY=~oW`%(tpBh4rq?B2{_Z%hTqeAFgl~9}5 zk~f#z?&Gv-z-)sDa*TwuRDlj*gC8ZN!AOFFhRO~(-+8v$i!vSQ8KTweESskWhYq>J zIui>LfXhjy^acvB&iM%j>eF|(U*3HJhA7FJ!4CbFzY;ex7eG;eba-uhppC3PP?zqsN|&_A(T{el49B z}>ob_BQU_&{caHF|@*FxB9UN(_R)1f^zz!InkW^3!v< zZ{|NoOBmXYVS39?M%htEEx1zfk+*zlb+JZNooC^$n;F|D*tn9K8Km7m8^}@v_KknH z@1#(sjen}jU+jh##%|sY@O#t6eK3`j6am_#ql=$4 zBL!Ww)H8Z&YPd3yb)MC&-?>rVPW8$ru{gbn6MxMq>Iq^VLymDdNPlG9+G z5#xC1emMX=pHF>0Ov_aqP?iJ1{R5RARY|ag_zgWXOUd1682%t&7)8t-Px8e`0(#&7 zJDBnl!q%)S$By*Ri6bvyaEc8Swc${Aq%DDKLld)11IXW>rij!!=}4BSDtu*Xt$E>1 zn{TAm18gP;eY7?QzRhgM?Z_2n+cE;!q!{fpH%GZltF}RZ$<)%7l8Cp|U$%}<%*-Yw zjdo2IOc0xz!)k%H)bOwH6{W#+F&&{pVI_C^H3owJ;r7RAW`5oH0{TCS!efYlK?xB~ z4U7D9^c~QU@8k)Pk`u$5j`IRC-e0(1x=A;Fqk|w_FK}WPjLl8TkTM9DMPs4=T(Hp()lYm&SzU2zc0L5zRrWxn zXqPJt>-y@%7dbhni^p$P^mQBkX=bP@7p_fH4T)X`bf2k^4+pAOR+>f^lPP|)Q}M#;4#fC@ zh7bRvEGsjQ`un}uPmL%kud$%hogpgzW4Wtjq10jqX3P%h{hx+ z2<0gApbuHb*-5y{^8yZdKIF~73)WovoNj@L`oXT4Y}0(d_9VDZrkZqWFPRPyMjXc*7UZqlrPDk)!s|?icivn5-inUISVK1 zlivw+rlke`W@@~O?P?-myTdxda$h{p#Grf_y>;`34ZTWsP}hOd{7Q>~#Rp4u=#PYFc<2Iv6@lat}9}3iX#RE2=C2Js3rf z=jL9=YN<9b>9@WlA{V_W_+PZr}6)^Gr$^au!Q?p8QBM3 z-g`=o`}v~7e0rtM#qInzYOpCmN-ZVWjrGYy*|(AAZJ%F304ZD>N?Ajab=~?z){;Xcblh5uN_pL|JnQ?;EFXpwe|_f zH%@`^E6l2t2;px8Vx7a3Q(y73T0pM(xIzjypC^6HCb7IAkBy;=YGsTBjI1p<|J6COH(jz9sG?~%C z;N29DKsMfr@i7j)ief-DlA3m;oog7ix}ngH8~&9%CrSg&1gyNy%7K9db}-UC@#qT zjb3@wtf44%9nG0i$;2a9zFL=^u;|qw1OLLX(X?6|AN?A_Zfj}AM!SQziGyEHW%np5 zSZx7mIwI7q_(TIc&QZJO3b^`aA%_WDqju1rHM*F8iV^)6^MR9n0P3Lm!ti(8_S>X2 zJoN<-A=Lsvwtg*%&vcJn7iH5m8Nm&XLq8iybx3@fD`_qmCdvdnX)9*>tY3VTwsj^J z75uztl>WUrHWD>tQ8xQ^x7ueE?B^5NyP91b>dudjTCwy&>W_GGQLlBm-FT0kN#p!? z2~AXVGkT?Mm&Chf)t^}zTCEdYErc=?+19vb6DdrbY{oCN%B6o?Q!VTuo>GTdjjF9* z+cj)xZO=pIX&~Z$6lmU>@+_PU`WWQPMy`E_16ic-2W`Pko=0K&SxkMTgz-p77i}J> z|J(ok7ZoGq0qrpvBcH#A{jX#@cWzUaJ!fZ@m*XhhUxgL%w|vBcq=B@I-u|4x7q7~< zHDR1|Bfu3do!X2sCA31r$K@SsEUu26GEP@UblfvqM7595)y0=ttbc9cyo`61Qx+>O zseHEa&2ly0nURd${c--aUYJ9fLsPhyfM(@)*Vk*UY#k{oxP+|XI7yV=M^wx3_FWFtl``{l2OyzRJF#BHnMX zRh;8_&llhAUx^0L%Tk2I&-bLUNennMVnx7}BWGFSZ(~;kmeh(aQnx7S6usUqU9d=S zNhdI=rdU1G!$JaqGl#qgUvB0E3?;gS3i4}KMt9Aps%-{EcZ9oF7f~5_-ylP&K%BNT z0EA^|KY9d%Fbn{~Py?=9lHr^G)jPSspnMcp`260&ti*xy>CM81NIj4*6^?RXQp?9* z04lEwqCKJp-vmp`)@zBdAxWu121M$EyiEe647$uF6@WaW)BR_)QveiY+Z4NFhBE|59druiZC-DM1FX<_w z@iDd51jkg?qE?GRlQwg=q6 zXd(DF+KA0t+QnXtkA=pj8Q!Is8WfdP{*fx{AE_?)R#zJB1~f%Fqli*-edKc-On~;F zKyjwSa&H(M)@BbkCg+W5O89Cx97X3s2FH3(U&Ubffs7$Ww+y=$kvU zsLg0Cmf7nQm~fUL=|cqB zI-zRDv5ZZv-;jqyzX3+Y37{QGU+a!+0U_UzvcbcIbqp-HBj#;XM6~bC@RO8#Ugr-1 zVML(-kHykf-SfG_26qc4`Okt?;NOhRJ*WOn!@(IBZO|7>eKrtLM}c9b3-UF3Jc{@| zy;uI-b0N9_x70r?L?`|43g2afwCT&38A#GaT7quDyVH&_{!uzQ7p*ECdHp{DQmeQ& z=VglwO|w@Z#)fIf1@^B)?%0DAEXb^V;x_T$i1%N>rxpirL90m`u6x)I6@zJovmZ<= ztU$g5)jyJnSic3@$Uec7+w#)TGAL&K2$5aL?kFE2LMVMtwvbQWU2Hb<570A3%I`y`TiV^kLxz} zza7rBKX5qON(GqrO!kxxV72Q!!u{lM9Ch#lXef?y;YxKZ5z0SZ`YDWw=GE0_G_Att zX|!GQsAH5D3=s;*Se^=EXOSq6Y#fdZKr@%dyR73|mnyJdR=v6}Z-(N!rlM4s~`}%%e z$~?IxtRyo^I$YP+nF!O|+G|LV5)pkhD=;@NdmV1DVjD4NU^weGcVL zH;9WV-G~o*KKb0%(2&?^Fp;;u)?74~yKXP@>vae>7c1}$0e1I9x&IKy$^AF!a-z(r zp3F|=M&l>vBW%dl%i2N3fU9!0sc>9aV9SL3`H;%-Rfh36i7M$>S7R~}wqhqPRY(hGg1e?2> zo>o%M1tc#0!T)Fa82v5-XD`o|ru%!qC{(7YDd&T$mY;eV#iu1%C+PPddWJM^C>hij zEv}^9wj|m;?J=oO zxsf~AizGH4V1xIf?fA9#ExB0aeO-dX^jooSX$e13(GiQ-Y)3t4OPRK%HnNwlbqw3`?|qVCx1LPIm?s z!J5Wo>E}dY`8aV)pJyGJCx-|DSAu;z3B0^~AHJKIn0(tc{UjyXFEmCMd;-%74m`Nq z6*}0ee8uD$2k!mw9}hhZ{Cc5eAn2Z*egx>I(E3j?KyUCsz6kL$C6hx*3?YKIUS4pj z-ymqsD5rtZ9n=S;RagzN`p8gK3i`!vpJ?*rbjC$)27rlBB13DMQ-lA+cjisGNN}Kz zpbzkW|Cv9G>B1QFrbsho+99JuKG{#W(YdN7N_a>W8&I+ueeO1K<0y z#J(Ntj=XaI5zcaNk$38v+yRJjY_$o*eouR~a6VrM0T!q%0Z6iXhtgeYZ8!Z!9gy$mP zcvn>3W5_>B3k%yxtp9M*^2XT}Y=6UJ9stubE2++oVgRoAASVd_#&tK*04z8*qwRnA zcl#4|fw8n?K(NSJ>VyM)@NQci{nX{Zn|F959iF$)^EXyMobLQWNCqXN-N*!QNu@YH zmqx+YFmB19(UT4Fv5WrYUcYWGbz|I~fL$@n;00tFFvp~vlK`@Ke#OQM6G0;~hgyo}Z#G~)xT@_Lj_8efrcv)*Rw)q($zt+6X@RUpI^o5= z?B<_@S{)S-mARJvM7bwXfjf!%j09fAwfBD|S7<${V_Wv{Y8CC^BJZ2w8JWjd$6I3H zbzb8s6e*fs+eO4b)zvBd_1$XG)63p9-)H2S);r3>&p*4(oFC-u!d-S-|ixLJ5^TPf1 z5_FM|XL&|`Fqb5+Grl}ZpQ0$jH*;afUMyPo z@{joaI>XAOESuIY*B>CQ4u>|K$Z%|}pC0OO^#wp3BeSuLiT#U-{oUm)T)ZEpb2$2j zUpB!}dIpyup#VKK{Gb2wxgRb*pZs|M=60ngqovf%b z+0I7c;WaPlLC0cCXOh$rpOutyu%3eA%Xg4;0eLx0I7?#0T|0K?Ae-O!8UsvSJ1 z=#!#sop+~M(x{~S?L8w8o->p0nk}N4>6om~6X?`;;6OH#afKAJ)$mw)g^E+jpmE!# zi!&4R#0aD$Btu*d4<&&3ML15P1a>@|0)AZrF$Fuz3Ll*So&qoWucV&?1vn>pwwTBF z!3*X*WFOEsG@Xgw2hYz$_;3+AXt9r6sWB^?)P*X9*7p zC74j8UuX+x26LxX(R50Ubd&S}SMD#;?tgqk~_m_=$=D~VkRED78b_Dfb3 zSQ0Rp$p#BT1s>a!p+vn?3NSL>K}cwI%zdpk(2fFxFq7si`S@=L zR7(pp$+62TEXZXSrX~9Zu@r%|!s77lrq3Kv_KkmMJyUZMB_^jEeHcU*W9x0~!uSzu zq2;n}A z9lV+LiPmh%%p1lAWUtsP_~yJo?qt61fIt=2b-;HG}lxROr2CY{B153C7BVGG(>yO~08b`CekC2V++)1{T&=dbyL zk+=OcB-D6uNt64N4!Pq~Hh`IYDGDhiV9_THw=?!?4UrnS16AQHE`+Nz)Z3eZF(3~< z_5tT#fCuXh0iZl-X0*gee}C#{3Va_2jb9FpUZs>J7`T|kThHB8pb_;Ms#4d_7*Hgw z_SDNiJ*q74{uL5od7%m%4tjDgOVxUE?_Y-_7tNzac%Dg{oMyt2*4P+`jX#PiK+uY6 zF>zF`sD`(=+1`A#bP;?U{Tv`JlJdF$9}S^P%7(?!MLck~1zjD!kT{Y4!{e-fWkacf zfbyBANcY}TO^OuYds9KPh8gXCAy(pqH8};|^x5Jkpnkb_tnKiy0En`Y%#5X+rs>*= za@XuBs+?GM7qo8VBQu0yht3=0leJaD^hf=79nlhxg^bseWX5dFP0AWeWyly#!$=%O zTLTIj-z3ax&ZMx2hlOIR7k1Q7w%eoL)O4Vje0=T0kB+ys5ydbI1Fp~r z82jTsefl(-$$crE)?_q(dy>p*FLxc4%Zo5mu0v!vwb$rf;>%l02P_`k{=Sv-Juupf0dQ@i)H3-FXdA;VStKy{fnJcUc@feJpT z1C2ppWoH3zG-KE)Vdp^YqeKf3RT>b9fsP#Xik;lcWF)L3T`eG`0$HIgCDTa%qh0Hv{^<^Z0RQsRvCCrpLSO&KjqTUSfL4r&q`<_+P2Vio$V+v06R*ar?N=j6G z%F{zOOm}du`_v^~pr~SGXBx1WuECNRAET9vBTEl-*Pk*SXm)FAKE8Q>IAJmUH4l z+=wRfCNdP{dNHdk1Fpa7B}4Hvdr!9r2}xuqN}Nnnif)@57s&XR6k;$<7a|xEGcZ5 zd7r^N@G2LGS6{w-?WzR)0#)f898jO%b_ftg1xgQrzPI2OD)70x(!X-=5m<)4W|(^Y z&fEUigG9>#-?L>_>sZr(?d=bv>k(~%-`EGg=_%9r9m9a+e?z>O$Zl_aJfslKrVwTV zZmD{n{H8}EkeReb)XZUqHX%QGTBiuD;dQnSWP1r?={S_n`2)u<_p7p5Q>B>YAcn7I zBaBunIeR6XsEbJ>RJvT(w8gCuORWyCK%Oer*bmr2H+pD%rsf`!1qB%5NMl7aKG8K)zLLTWk3U3rhyu+sMSYMYAEr}+?cYmN z_B;ZrR__DsSX+S(E$0qO_xAdS3ChE=(o=FY5AQ`z(XW6S-CT?iw(3Q%HVTxmmL(by zZ2=oXC@=p?OK1A2s&clD8T@uAUzl`zOo_L$iXK~(97va#*}6dan7~Z4TzS6T=IM{> zpWMWaK+9nAuMIxg+ zRQ%_EbJj%re(^_~oS(NOn5!EAhQDg1vn4#y_Vo1pUW%qS?dH+^`#Q_HrRwj%H^i!*fD{m|?%}S&u=cW~} zIg#p|FB^tsdd6KNvTuK8I~O`mLZY#%<_?XYNCw42B!;P#Gb4Nf# zctRB8@d#I!S$R7A0H<_^d-3d^ZQOwd1v0b=`G0`}>|^aCxYAoOfFXI!%Jf%?(&2MJ z0i#BWiL0G4mb$r8xZ*-I@HDm#%Nu7kmt?mU_ja#zQlLLB`OF^on&w)4O%>w<)XLgI z$KdN@o3zcRc0=#@?KGj|fCtzlF;=jN1bLQYsP`Z|Q_jGnUTR>nUX}JK7)h4Y`rR_h zcZ5?D9vZ)m#c}bRwg)S zY%W6iXzA!oXGirMNA$f3L~jDo2vZ$d;uMab2y!HS@e@f&PDbY57~1LZf{!mTFX@q)JLkn!a%u=R_M_pHocrxkPtsTk%L@Mz=ZNTVYxU=9aTgOZFKZ z%9s0%`knFd^V^h$>Z^BFn!GkOeixMDsb|P)MW9_~(6QoGkt~5~?$U3fJQvaNYi)Wjt|k^#cuC& za0WQQjI_lRk@>o&gHn>kJfD(QWv$^5V!P z)d%`+Z!+YT@VMzb=s#xht(wQkgM#V6EC(-EwZ2ek;@fLmM*esT(WA>$+tx_gZe1IV z?R#;kvv0F&o$O~jB@(d6_B44>U9h&iwi5a=88^+OU%ymLofS?-jSkWAvVN=PN35ED zO^ExU`ub+rZ%&10n>O2PNqMAU<+k!36J};d%X_8F;8_u^_q2LK>%>}f6Z$g;%ZbWO zm1iGFLB37k>NIw!Mh&ptMLY z3Q7&0%~;he*Vm&a9iywD+jQHn&};Fhd;IRS0N7onehuw}Z#VL`=ddV}fMf)b_Y2?; ztOo>BC|;mmkFVyMT%HZY9vozu9e!FiHwt6{v*3%7sXr#C*_`E36Y-uFeUuhDn#s&H zPBLhP0!@%_(0YvH7QRoy8TQ0!Rw*6*6zh#He0B?J$2L0J|D7Uy0;8Gc^u);bXr?&4 z#w`$>+#wt)RQ(O7Kn(@;Qy1qEX>I3bOwE-i+ZDQBQOD3&acgPx_xyu2$?&d-fSV^M zoE{NEUvJ(l)#sIVpUW^ev62majum)QU4QniDvH03r=Tth8OOB_)aFHb)g|i55~+#I zLs!>SpigNhw#{$Lzsdv)eP{X)++R~3N)0EVj{SNDR`&+^W>@BWHenJDDClY}!P$b9~6fqUH)zVnK{j`tbaM6}X^;YjyI(_v7_M zqph@N$YFx6lL>DkGL(!+xzG~Y_bUSR=QIt&B@SBI_*#jUjH)ou9^W#Zhc zER|1lFf@Jcr#>(onr3|lH83XKovp+~_(}hAwcb_-#kzy1L#$mna;E}%8IH9ipcdb5 zzQ2$q6S&#T*Cw!(apjigfq&Ezbnv--m=R$-V=0aRE&%bsE08 z;g3}Ytw$JGh@ z`x5N&v6gF-DRawKm z+r}9XZEzehAjIOBNfrlOE=(7p>p@EiTn|b+-pFf*NJ`LYFltX5((esho1XK3k^srn zMjI?L3{6RLk?hiu9z~$VlHnRBt^$_{fqM*N%(7ADIFQ00)icP@#fU6}!0(EJP}3E& zI+!JDlhc65NF>u6;g3Ie3Uu*Tm#Ba`4hlL(8GXjZd=>ZSs`Ls93&Jjx_{dt8>wNpp z_Mv*v{h(v$Xf^NoP^= z#GqR^D)1^WAK^*dqCHvcqCJV|xB-_u>3!S#|F~Onhp@TOA^>M!3CyK*ydJ@NB^+8B z@ro;_8sVXV!WzlqJ3q+;XZ@S|C?v!aU z7rsLnQ8Ia^}K)Zu&llvfuz2^#p8V+Q0__`)^P!=MlO-)wdgJ?F^e`+U)jW zoTu-V&LG~tq;)(jG`C3!uNBL)yicM&4fft8{s+C}ZjF3h0IXT}auXz1 ztbPVz%_e!EirU*(p6sZi4F5od@&V)G>gHn%qONH-^>O(Q95Nq&M};nv-R8QkHykbL zo$7sQWf)&=vo3Vc5j|n<2_tYB2u&#Ucld?_X+e8zvvN@~yR2OkEfRI)cs%XDe4~oy z|Hwx;>jw(hp3OgodfCmEXS1=>+##!ppw5P;KOUr*U-9_?is_zw|~+jAK#<8 z6^{5Sw^(SBL|;+exuZU?>F^ks@vEDnrbh11FU+r)dSLHnkIW9EBD%xA2eoQ8=c4yo!D-9UX0>Skn-9gdOkbAC zgh`tFq-c5vLqTO?v`~fbh#sN*wsNS8VK*i+2Q}QSwM{7sG}B{E#r-F_U9?5UyhXqz zI~$MDOxK*ZGwN~!Ez?`&pi$t$ zl7mw*9^;-Ig|jwbnG_%k{UqK2&?>h}Wlhkn@w1 z-~;o@pcXN2LCdY~Jerkp^`Ps5{Sm#fP-; zonE%}Ch4+zEfk`@sYOR3!$Sa2NytlY9-9K(K>g0v4!)cL;EulyjxWSEz^aLe@Hf{c zs*>FXtDfbX?K9e*Z!c1S*w6exYvG~DEsHPfv&`RpQu8Stbu4I-nEwsfVe&Fu0WO9J z*%$bW-vcJKg!kXx0B=DcAA131at^$%KP=%P)@O1sP`={R8leUow0YEF*DwvkafYd# z&>nUAJv65S7hlEEscrv1_TKy*>h}E~FO`%Eb)(3ZyOgyZS;m?+sU*oVN@=l-Y-62g zNGjQqrEHZ7StiLkm@HXC5<_E580#>@491x4dyVe<^?vE|c^}8;5BUD#n8R4+d0yxG zI3MSEAu?9|rBv2q&z>&e0@DUv?GztF%|Fo2{ZPc&=s*DzS*nW zOWpTnO-@Zc>vri`J3kBxrgXi)*A*g@b~V*1BqWlA>#fL^r<|L8t#0()zu4F13{Pf{ zh~AKIJ?L`Q-1$PC2DXG7;kgXt?-qNAAsxRaRH0)_@T$KFvZyW z%cXzF#kEuGwZXVa*?Z?7szxYrBKi=9iFX1)D&!kJahm+ohb(ZQG;#PoyQio6eKIuh z{f7UmvVoul-~vwB*{z`_Eqquk>3GZ<`B2 z8TRrvx*5Xmh>*?wD)2D8NLb$645bn+B6SnW_H&Rtb-A!or`<8j{{~usHF3MI(8=tB zN9{b0ZeW7-b#u(R0n!%>qw#b?4&>o+?l4N*3=Ypwb@=$V$0O;mqZN_rfbw9x-B#$$ z?r$%QxRDN(mkI({Vh8n(C@R)HT%C!Y@P(~cHU05rl{uHYMx+@Bn#(DlP5!_@ zfO1_t0pOAFUmkz7&b~SRBf)JTu>Efmw0@Z{;3NJ%LIkPl>*f{C{`oF~GN z*vz_1U;rrT>i5vKQBGs0#+us`S`psfKcFd{TwdfYUT||1wbY+qy6uxzL ztLvS{kGx_rnq7E{?!F_4IRBf;f5ehe6`+iCALph&C_Dxw|H#q~w13t<-M{>6v5)WZ zomj?3>+UBnOq-}1r>#y@w@#^2WtIJKG7~yCk?FXjz@)y+DC-k$451 ze9UZIh-t20G&xs#YxZ^J3F4OBsw9y`m9V~W0n7DU9uB;b+mHVF4)?qY_vt{t4Abf* zwp~~4RU7GbW7EusO`A8{bp5h&yZ8{1p}gO*9?Lq;Sm#DzyM(jqLq30Id+czLF+!bw zU@dh0tH+$dZ)F4&$9oo?uX;RKg=BSIB|#{U-n*Ijy&>lzm@i3&SVtb z25d{72@4Ag$+mM#QnlID%38Wcm@4kM>iZA}LS*hQdt|=F){nU{8#{|FtPKk0Ctc9D z)yN05Z>Mi^G@;+#V%?O{;J_j-kmCKj4jTo{_Z55Hlz-Bpb4;nlvG3yz)8TXOYmPY= z`57Q7I7NUc&MS}Nw)+m=>zQ~J%2wEBj8A&ut5*x8rc%7!z|DInrpvXtGL3&o&w~3Z*Nj#9Y}G###TBikm1GsFxEEUk*5}OUFnd zL`r-T{I1!TyB`1NoWa)w(EBRi3VvaQvKlyvez>v^^kmy4jkr$?whAu4eL)O_;7fLC zE&H4lRmR;LQXYNEmU3uZNp z>Ody*Y(t^wj(duKQB(XH|V)7eXk=Nfa-M%4gBk6mY#(!EJPc4qYq5gMhpxLunV|> zzSMSVGPPktJr^)(IL{GXGMu(}!3R;>;Tgw7eQr@&3?zMemG)+*sT+Np&E-AVEUmni zhQ3^AB%$W8(;MT}xCLQ&9}}wx(jMJ}v4Cm(&SB@Pb+Yv9>$eCUmg5VYI5TV+YX6Nv zN&m_#aH;mcVG?Cv0PYINo7|MXWw!qi)G4$t{tq53;O6ZEp49wU;if-5>BD>7yd#+l z1-~1>_XXimfDCfy-0nTg1$8}N=t9h4q3(C6>J7{ysp5?lI>#P|lWq@pe1V%z1t@AB z(zBF2pS6+cJ+<^+AV9pz_5kX~qSYt#aJOP}34ZE2T3BXooQSdRPw~KKl$6&7t6?J4 z-+U0>TmmjT>av{0Sd)hyZYkPsAkwCCwvyUVI;I}x8SJ*nL19(MDWOHUQycnauM@w^ z?FPEsg-4^l%?!iSCGw zQ~8Et3+Vws8b8ZYc@hg35oeJL z7650{ph#>cft4>$!cLTQg`PBNBD&%{oubXc*#W6{0Sl}l)$rqkKT@up{8n0{?!k>K zJjp77x8PHQL7EG1E|h>y&Z%?B%Uo`QJ-?H&Gai?A0+z>@@fQu}k!W}+aMW+mI=wMe zqQUMiiC#uFdw%$H;C!gq6&!xON3V`%>YjdfT+1b0#4-2pHE``Kr@xV@Q z`Q1A4AR>akz^9!2rvrBD43MX^*FclhABI~b2Ea7eLoI%PWYs3W!L-hxmI8i9@!)Sb zz;Vm(Ppob5^|QDFBq*99f8Sw!aB#4HA*w(2;xBNy0d=|o;g+OsudG*9RkEG+_#sSU z^JdXo0(^MZaqAAFHGK5$bG+H)3I_t_0r>;XdtRJ*@W&L6d2hDbetj~|x`?PS zJARxte_pBL5Vm1_e0=`_36i<mtN`&PjB_r;s?7`o} z*MzOh=BlzgISMFr)Rom(6DOq-YM_~mNN z$(v1d{;BvM-tp#-Q+XNA|B1ooo8v2v(crY$KLxGMpK$;%fCt~d5HsSwf3U=F89A-MR^woI&Ka-v`I`bX+_F#!#@MO%tLkZE@AwU3_Hpo{{*9b6XX% z=kI^!N$o&{4f%W1^4o8AIr6c}tXiuhiuc)8#-|=g4~95lO59ndq^M%rw?L#QbJ=ueL` z)Ee<^RV%$N{z7Yo-&(cy0)O^GO8mhe-yp+L8XO(?;Ju^5+eIV(pn>oX%xMVWuWx;BVU! z*8@h}x*LRw&{)XX`N{&w5LgS-hm5%SAAQJ|%IWPoZ9e)J5dHLzyrTAFmhCVeTV7L~ zhUIbOl9T+O{&DgA{_P6T z=!p$N{7Au%184>*<1X!p^B65PmS>I#d{H@fqdcuVp0-pK=^o3XN^d&jz->{ZE#;m) zaS(k6|3xzBv~1stZ8R*0pwxWB+O_2q7J=fNFP|UN2}`!nyZhEIsBiFj0~-0^!C$nL zi1X<|-%ol@=47?JGf#PIE_e312dKrHWsv>*h)X@CQDxBKnvX|P9A-ktTD{Wgsg5%s za(Z@KA?}!qK3SRYWb@$(pDz|;|Mj^1mv@c>hXCNi`=C93Tzok*7OLADc zW>b8}D!qhK&FgiFNip502=LB*DwpzNH%lMg9tWKrfjP-C?hZ%6o{ z6&jn7`(KqPc$qB1cjpl{^6UR_=iN#mHkgC;A+U4rMR&2U$drNU^ty!X<>wRq4G6@H zTIOB>GYY%RVf=4j2>~%ZpyQwsm$U;Y{nxCX{L@M52`cEy3rF2`Rf+TVNWyL`XPR@o ziI@E331}R>5~DGiuSUoyXQlbR@J1rnm#p8iGqwZb(rLMHLL6gctpW_UG8JB)f6I`g z8%X>iX#i3zM{l^>eN@o@5b(~~|Mt8-+DVTAIp{BipTFa|9yqTF8>_~HE(*K>yN#PQYs<24F>fOYZ;qFEVjq_V)8VrQ=;uacADlnyN>wOtYpi23IbxB^z0K)*=0Q4ufNAaSAW-< zHSq^^4=Y4U6rZMk5C3?Ze!-^5{cc=`Tj|u(+1cC7MKhEdqrY436GA(nypsEVTd3DG zYcZ=}FD>PHqI`yutaO4xJUWqe$s6=~?Dvd)A6DCVdF1hNd>pTm-ku;?JrnM)j3fq^ z+CiLB(rlw#2d*zZI(m!t@RP2#Xu8IJoQ>JJDqz#hMu?q!WYz&NqDHd+uAH8tx{R1-9k=7eoF&0l! z7;PVPnIzx7s=%b1F2Ykyh?6tF^PGRr^#^|vI^cU2;t$O%2K`+A7L05EZ|NqQ@#dx) z3CmQ{A;DoN>-~9kG2;oiN{SZqyQFL^iz2h>K3h?7TSzSY%VHzU=dGRJ?A4C}ZiTT9 zYo-Q@;RRLBx$LFrDjI29X2`O}l6T#6ik^-q22Si@#;ZWj_LAg)W6gM;iVEoRRV2wJ z)P!u<0TwFAeDuDZwe#wIwuR2^1YK&aaoettb+ zdtoXB%@4#^9ku^3Q>=m593%_5){}H@*AovpBmKl_8XF~!q$0V7o=sQv(&2i-QGb&V zE-vwkuC|DkfemE5Ve4X-eI$)5BtY5d{kYAqVCqo-_ z34bI**#~};;Kcm?-xAg;B|Tu?xTqPfy)|*`Ch~`{dR{#;gu8(`7Q?+#&73#8?&{j&wy|AOs*_`yB&)88qCPV4Kqm~!Ftgq{ zlZtq#3_Ij>ChganFw+CB;p)nZ!!Vso4&KejZ>MzA;C@^mT3MeJ3~1Vp+z}#=JQYMI z)qe^agi(_^lDUF{L9ad?nVgt-R@B}n4=w$48u?|6ar3c;S6YN-y$P5*>L+BM66 zXl?)2Sm%U6;_PDhT>p;*{zt~|v5o$CHZrr@sqb?+-`UNS}wCRZ`Ef<1@(L5ZyPQJ`ZA6B1EO+XfR@uFx$xHA zh@FA`8*QL(ThE7Z*I;FyMaU^nJ>=d*!_GR)Dm9YU{aosh;xXkI&1PImyKZ8X^ZC!t zMZ#R*Og~OH2YWIQOE-F_^3W0Xe~U`ch_s?KS|au^CY#!}f$Ss6Yco@i?{<-BEl6|n z#Gx52#v-FMEz&nx<_{>%DSgX_y$_jk8I_u%B;sO~Qd=}t(U2e*&-3rl)6ydPEne`S zrOL>rk_%XHUdttBRt&pAsGhOjCrjTYf9JLOC3}0BkHL6-W}gMJsj2DuH(%yy%~okN z>OEuay_c`Hz@$z#K}!=IPg~V7sumN&a;!4lxtThqXaC8-z=%ADH2fF1oA(&Ixw+pi zPcw3j1835@nKsh821&?A0m4p=I{S2@cWXn`=p(UQ>-BERC|vlO(t)Mcmw7Ndu}bkq zDrhFj2G5<}A-f~aYII_CgdEC*`?IG6%fVw0S*+cws;WKyGE6{>2hyd`vWj8ua12aA z$9HPKzgoQU7HyM6Rhy>>R{xm360-liAHucwC0Fv1y5Kis$xY+ieW&~PRh>?10pWfR z0Co)V_4W6IMvF2M0x8u>d&wfmO+rliWv!J>v^)HwGAg7?W<`RzD&!b|1F(A}Xt+dG zkQvk7EpLg*Kl{5)K}`U~Sv7ltUnClMfl?AqW#+vD%RS!djPVNlLb%Vf3P8H+4t#YI zD=L-;*Y{1*{ph2$9rPLUcpVz)DlWLO`W6h5l9XgWTV?P8Ex2CpyCT}3Q0Vz1apXJL zzJv$AmI$AEW)U=}=`V);S;esj38zN$qgTc32?%3dz{EzZQQ#(KCbhbJ4Gl3jQ$M1E z)<{e{-UN|5kj)rkdSJl4pAb9#X3LHahpeoFB?#r-VzwUSliTmXaWW)mkIDQ^<>C9= zDQV7jX~JH31`*kDuX18ub8H>213R;yX&-NPwuz{&Qxer&iiQsR9lNJ~>{}WWw)ChA zw8T9HX660TP=}w!@?J+e{CzVc*w^5cDII~L+nShCy|mMrUvIVu!xsfWvsFU85E|1V zCa|cyd{=x4;o+E76O>&^+N}{69Uc8rnsAp#h@xlm!h}Na*I#|}{GHi~a}-DpZvLYw|h>uUChXYB^1wKwd)&SlDR&QYou`hX84tGZu{ z6l=VukW(8jye5T3g$(p(A6b|zk&V{M)P;%YI~LqkBvGvtc&}(clQf%5(`5ZgV$5Wl zwFmUl0#7~A5xmdV&SS4^A*@*X@OMto*uT2~{wJ)21OQG1UuOWA=@KRhKpd?u;bpZV z{Z7Z{t9F5)lLV{cqe8dTfdeD!Wpqo>;4`7dBj^FIkKPQ@{ckmXZJ(eKNbV`4s^~)z zGmtmB!*g)Abl4~Yq95=lOGAlfUh_H@8}HA$Em_DGHCA`7q2Z|2=GFewiY2E8obR)h zUzRqel~Usx<)k-DY}y(8)l++n9p-8|^Zpt~xC5(>jpSyK<5zR%ws#!&Vz(s8Zk%+u zP791_J`@x*C5KYW;6e<+ZVT-K3;jirtQLicc|T|4ux+$Ubnkm9&_~5=UY)gToMz=d zrGbS_E_S#6R^Z8T2U|(EEds9?oIw7tR^Zvi7>np#oP%M8IUo|8-_uqwPnqp0tv2l` zu$R8LdDEt*zybO|P?1U~u0@Xh>v;LXPnR%L`JP*CFOKl*pTic8Vmf&pgG%okT2a!N)M#Ofeapd!}~DfuZN$T>=;Sai(fozXUoYqzNPVJd{)vkOxv2-a<=!IaL zob&wMv7MsXf~%|4=V5wtFV0k`=XOGwjo!?O%Twy1BTrf%|NSFE`{AC_JKf5KaxXe1 zoJ*Sr6?RCqOuv@88ShgCE(V5ruD3>lC0n`{0OAaGw>+DjKRG)>ps50+X(HKp4LQ8 zCBVwqfy~~k3Rt(~W;b2;YMrl5zdqmZI}&{1L4?u`{I*P*VHYl4kF}<&RUKwD;4UFk zW+tV;qdNG7feOX(m+$P`h*lL|J$#en@I=>Y{rTp=(4m|xbOOZuVN;Uhjs~eDFH;4s z-q=C0%SZs5Cb5o&7$!y6!fALJGAD`fph29KE$w!jAo)XPavEAuIz&^nZe81X$ZYG!h2=<4|%+c3L! zUHTdS*+^k7kEX%9BeD9)==9Xdn>QmWDL!aToYiP@JWL$zr!a>3oT9DGm_LtrbvcrjyIfo0RjzgK;^R zk$$)K`hE2;GjCNsg8<+CEW1v_lOi1b~_!Jny3^{ZJvn}(hY;AEwT3-e zlG+qF(qc+WlY{SdE05~c!(5Tzry6}Xl3FIR#tPQif8#Xd7PN4-_3jLrI4&x!>HZ9a z`^yq)S5&L2^uW3p#U+AeIJ-58F|uyv>MIOTkko>TN%OeKdHw;{*2Dg8nk#ISO%j0? z>uQ+d)^-XVL8JR>%9r55^Z3xHz2CP?&{{Q;EG>ea2iQ0)*N3Ycajfxf9kN;l z2S?gF4n-^IR(ot}`Qymnn}Q6XxM{283I)0MnZ4^bet}k-VeTSPr>BqX;=auh#6qrT zmfD8v>M$?C3~jhb<|d&sBk%j{ku^Td9LBd_j#C0@+2eym$^8B6Z~NkiPQFn)<>W+S zb7JAzeIjjpqf54c&5WH_(4Z6IQoTcspP)|ifgAhkx0x6tF4m83IdTK?zIZb0G%2R(Rz^SmpwM7r3L=PwISL4!LFB^ut-K(&>)tQgh5ql ziqaU=w!S{m7a6kP_9ZaxYQNWGsTtQBd!ve5`(eWFGJH3rxPjTB$FM7(sg)ev0sUG7 zIr(CV2^!X(uZh9woT;LbCPmHlMkvgxpHXjlsOuT;B_%4d#A~pFo6$*iTXa-~z^(!~ zv&Fgz9H#USa{S*!T4HI1eUdJcb6QGA5X&BMqm_3At7o6o5o}De{GZ^v+`xFwheEY4 z2>emhB`2-T+f(=`oZUw$gWr)D3yX!Rwxp%Mcse*Z_)Bc~(CEZk;kGTD3R@_N*&z!6 zqWwCv({uG~A*Py)L$3K}@zq2F4QAf=M`kSZe z1K)+yjz5T~CnUf`ZY}(+zQu^UKc{D}A_)=Y@BECfQ+N2IY;IbO3|jvobb>u*VZ9)h z_0;_JwZ%71LA+;n9t)Z`9OacB13)!>7qnE7Dr&>2HR8$<10LDPOQ~IgcskHNa8kyG z$i}n}MqKjgv2|nUfIg9t9{ALzcDP^XRa&*kh_9-Ma;n_=ukMS0i3*bZb3mj~3s>}) zkjNGuFkbOVgl?tv7VS@Fm-42bzCA73LaSCUpAEEVLR0&t7p-@Zh_Iu(v!2T^r(X^C z23?6GNaJNLPPo$YBDKEPdrRog5Q(UHu&+O`Q#9&`>D-w9m^?EA z3b^D*FUduz3P3)FOkGC zc6-g9B(PN(gE1bMTS^(hXzI%LUfe~pzPf1Bv3Lh{pr*B;f0u^8O^BJO){t3*7!7^J zzSl#(_RStE5XNx?8gVunyOnb`yYXz1VI7Rq1zR7=`unm*HR+l*=gA>~Z3KIsF~maF zjBW`quNoszk47Hz6xNuVh=Oq@+6?=v0vRvL%D=QH*##A*`u98!fqDQ3QavCpHF%+q zIY*?YGm=dYhA}?^>YuK!2l5CgyT91QddL9qp|1J% zAG(Ip`znVhb;BnTC-PEdn0P$?3s)1gw<}y;a1UrszpAdlr*K#MdwO0teEcW4)qWfb zxRvp_wc}G$`*EIT9x@3Pi4v-Nr(WMi+vMApd0bru^*^ki zzw)DODMR*32`;OOG9B2^AhfA>8%e2xwe2Y(j;yD$>}@?DN~=U&|7+3%UiZR58oYd3G1OWL9nqqf|q#OPs8MY_2h zcp_3w^<@r?$u%M8kvzW_04b~)-FJ!kp4~k2?G30JD9?DTYwnW4Zi_$0+7si`tB)bJ zNzkwWUnY&9doTQ5k7X3B_V1P(NS6G}n{bIqu;%qyhH7On87z_50o*X3_Y`G zy{ikD%IRjiV;Q_D4vitFI%PoF$V6a$O4*$}#u^tj_|i`=euIs6Lr;6Zwwea2rgWsx z%q(>2f)SVKKcGOXiAkOO@~zgzVOFsmz_OuBUhO(3^cM#$6*G)xdKDF&6{f0xJzAwa zM78a-`YX3b9H_SSQ4RlQanF{0;Yx?uGZC<72#6)9cuFqP1o`8Um&bOX_B8GvR+vRDq&2b-(2 zN+=Xr`0BV|Ia4w6K9Y6e)Y3eet}{hFs8eYA$cgZ#`(}P$4RLguG6YZrbm$15iZYhx z(HEtst*sE|j62MVI9J-1&RAGDWnmE`X0rJB;SNR6zIn69KKVt)f}2u*R~ zynE7dOWT0|d}~6w+t)r4aJlS*WugXko62!t*0*&BD(H^S&IQ*!*j&RhU-#oqrVbu& zx?5_Q%AMgbR#l`UH5r(fnW-mg{z>f?60iE?-o{S@laqR9!WxLB5 zcl&~d*~pZzQ$*_EEV&?#uvDF4-~W&nI8qM5n)S*f}#$TwA)<_!zx&FwNQ(oeMh)`wiPZ|FEb7#ClbzD7@Oo`N95nl2ns8jd&L?>(4xm&4_{O zMBsaKaq8_!B0H1g$kp73m96z3%$~*a>f|acx#TX!x;TZ`hcfk7Mv|P`~TshfMY26K8dt^6dhcV(!TmshTfhdB4I$ z60Jep8r8W7Y@Jgu7oWj4p;WVELC-qhd2sIf48es-yYcZxYbWi=OMK>8l^5U1RU%!fQ7^+`CF2H4ll>*EW!pA4lGnslyK}l&~!~KC7|DE?M~l z{CbTo=T&4wLLGAqrnHF6;&Mao)kVwb@RJ7ri+`*$^5N4gqGu*n_FC^5Z03`mo;p-K zn7ID4I}a54C#E(k)Q+5CeT{6fa=k)!>U?b)5__4Ic2uVep}A}5a0FrYirc(MWkvjR z*|+!E6)6kvyL0K#ug$5ou&?m&`J7c(JM%aCS?AeZ<<4OCP7Nk7qM`+BozdU_>hG_0 zE78?Gd_S33n>>at5Y;Rs4MU8VaQcfEw+mE;Hk`QkuAGo$w#CSAV6sdYd_^P);lxzX~ z$Ih=K97;4?QbqM(q(?vC`I4y*xzyL-b|yuDlhC*?}0rqHh0@`q0~UBG!QcQNu@@>Y(r&6`h74b!1&tL)6!*O zqozDbEDFT-^YDh{qdeK3cfYjeZCpk&Gqec0cQr~Ek=KH*3@rZ4XfcQVbT%jL>gpI( zOj?KOMFe_g^gH|ZgI*jLyQa*D`>JMxe~mwG1j)wEF`{EF&)O^I;#8k@0?2G8tZuYf zK%^zpIVmX6WCIg>RYIe3I3Fu?M#5J;7PgqF_7PRL6;L*04;36StfF;>Zy@q0+YCXF zJxyXt%I--ys&R-X@oo2uRy7!LAN+_@`hJVm0EyPL^PXt(p! z7+Ss;BDbRQHAv$VB8;4BR)t9Y3ynV{xoY|%7X!d`28C0LT+Ztlvy9fk$C-7t z4us}FfaEdL=Bx}VI)uD^7@p$n_h`af*eP!^K#_e3;dZ>TJe|9_WkiZY0W&w7d2i#} zn<4~pJ4w-ACs(3=AEF@_dNO@5az{ndc=Y`WN8?cY>Xg}`5+_8Wwe>^U>K?FyRvj1i zct_7f^jr}x^6}UCD;H|29fqq;2e!>u?muCOcC&vrBzvg|LH1r9<$&1M07o0>;mF^E z5rQS}-0Ovwlo}Y3eOi`t9LII@KMQo)b3f=$57N41c-DEB#VR%DtKJF+9FCZI73wd8 z(ckRk9MB>pu@v>v*~(EOJ*>Q%7}#WcCLwktUm{1k+z6m7-wA;$;X9@{CtPC zPE2N$h%b_gg{%N)Qz_tsjxy^j5(h#;CZ2-+?vr`8An67r_ zGZqNqErI|GhPb2TrFt97Ba{E9JBY%A3{dqL1&GP!}({GeH zTry#zt#*~(4~D4X0CubZbzY2Z7(u$vHa6aN^x3#N!x~FB(Vm?Mr&j%3B*Ui@L@HTH zp2RBc!or^0l_SCSAH7)B2BK&Sk?peSqT&nWS>GZT9%wjBUnv-2aJ%ydLPP3eE+11N zWjt$?-EqWdY=g~BUna3yZ43+*L+rxy{$HrP&#DD7U9mMt@BwL z<_4}GQG}3LrDcx84G#1wr#NQ&Aq5fr{mG?z4DI#J7~ay3QJu?!Ck2@eQW=L|$HI|~ zFh;-E$Xr)O0`bwnwJz$Jh1<8>2~~^%72;xpCaGCTIMVnNhuHyD>yBxUjReoJlDR2S z4d)cFD9tWv+mha;m^(tu;+Qc#s(}AOQHG4F(Kpl_a&TtmoP0Zu`e0#k8Ud-`?7X6w z6inTvM_e6XCG6-iG*Q6^35~q6K>nbX2aGemBZA4c1M%xcX=CR-S8_>z!~y=mvDz$` z70DP_S;%KSwq^TlnQlTLhhhTT9t40P$))vHm@Z^aT3OeVqo9E1W4)3w8&iEsX&+u5 zbsc{E((0Bga%8}*zVlMO3;nyymn5|#G2xofUSDJn@=N0#o$G5m6cuWUFeeOn-!Xs; z@w(p?R@p8BDh)l=T^21K1-LNoEaVS|e+yR^I)4BYc#D0+1vkq5EO%E8Os53PjSuZ0 zF!u-D51$HTOdYLV&&!diIfAHP8!&DpA8hef&ki+N+VoH>ARurJqiT zq0yS%Uw*pfkXs7J{t38}r*N{jO$jV?$=ISjHFI%|j5J;epYErdpmzLs5u(CJ+)XPk z!We`@^8EH?Io&#tRC-(&fs96SE`El-S}u{E6!kRI9sIIYHAiL!DNR^k!ZpS3u#@_{ zK315_guN}HlSjIlx54)GdD;*;!1NQ}6 z02dgkb|-36&CT1Itg9DegXUXBTGx!86i946rTC4v5aV#G8YWJwrZ4Ex`YZ@a$Yh*e z;A3o3_6MHL&4NQt`gYOBjxmCp$a!1BkN-te*;BP%clwj%4f<%?$J<@+92LB`XFR4L zliRj})XJUNhCl)8#M6|UIQMX7G~2aEk-INTx9j0Nhitwg|sJ920|@%XBYlh6=^#FnBbKt3}->aOe8>{Q_)` zC&28Q%wg3hWdjzkc32BfLN!!7`Nj;7Ant}W1#u``&{ScgNyaG;dYfhnH9MSqXnK3U zU+N##Mic*%sk}#9Mg9az`Q`wKUTC$&fQ?N1yFsbvN_I*We8Y(^2x5}aaJl>6VMCPV z-2;!mwB9N0dHB+&5uxXsoK`a*(-4ro9Y^T}K1SrpF4VZX*Cp4~xgR0b)g#W5^%VI~ z%FldAcNFX>wp(2qn4i#6CV>mX7&tQu(vHtKlqK3JK#R>{?v#R9dnAYGa(`;j*mRPt z=_>Tzs=h#HA`9re^2dyWI-3i+l{P0EuUlG@6_%p}daxGUzV~%LhY;mnv0qqvZHq@> z!7UMlyD&;{uEq3aj5>p57A_s=o5Ul<0TBMS2|F?0AtqovI=UDvJOg8@S1xE!T=X|E z=W`@@ut0`{Vr$|UGWdow!PkBvnA$bg`{d?}+j3_ahCRK;E`o<-{S1wyuGefES~p;D zLPA7d!9Yl1tx-4EAaNR(xV5FwELZ-fu2=B1bseWU=4NHB zrI7r+RRZ%HL`molE;kOgm@w?Nn=Qx9H)e1NZ+Q*b%9$QLxUQ;2P_UTco;Q?u3jMSLQWtYs^&FYScobXDTFmb#d;7~>p7aP zZ4~8=`*|}6*$N^HJ7AJKnvw3n`b>LJBt8oZeh+i5{SVs{cN z^A7agVL>Ar!6R4>MfVu$lM!>+jnNpCJrK&4SSXcV=gRsXGh)G8S|m!`L5$3d_Hg8| z^HHqknCM-S!k4Jih%#ulBUnR>R2uAdgUe$vh!t4Y`YdirV?id9LPan+nuHEstyU9n z<~&Db7Ju2z#U&OdRf%=iXU)Yd?&p6lE6ep z(r?N7u34;X``N1nuk@pgU7Ie=Rm%wW~(wW9xg z2~l1vM6-T%0$gbW4*cIQ2K05$cw~=QB8ru^$w-y{DbF|-Rz1Xd-JO-87dWbV?v^ck zG&F*nRCwh;ztI{w_TyhA$}@S=0z+fuSMb7ql$Z-XuY0i=5%hN6Z?6s7^5|)KSrZX$ zcx$z+svWNh?zQwT5~=^UoXBmJCP+tW34uzMtBhISS5$yUFlVYbGS{e&(AXtq#>vMl zn^@vN(k#PaY0nzloY`=ZHvBtj;UP`a`VK>JDr1oy!!DIgWg=iF5VO)dB-)@MlJ&Vy zh<+ggO^|79#D3+J?Fn(@m73sh@A$#jGV9uIh47zrzlA)LYAt-C1Fz2;Y8`(&oJrC= z-G;~Jbnq5LP)DSGVl=JIWnS}2C-X%Pz*+LVD3Jp(sq2`?;8FH`6tzMdDt;VDqyP{Z6yPQ_DC=G36X*Iz#*f4ZsYwIhW07#s}s&ila z0cE6#(YMgIGYh`FA98AM+th>Z1CKh2p)!hj{i)ItMvdo3xcOUXjq+3PTv??7+j)X0LKJW%R$@I|uj{@*jK|W@cAy@a*RM`J$0C@EYZotHDS1c1y-0wML3iqeY<%pcoP1e<;N;XMs?D0h{bjrxe=A7y?2=Nou zlidYB{NsH=M1FqT_=EVg>9oBkhzy*C_vSAJiqfr>^4N9RMVD4TS>H#*29m?p7g@VP z6WE$s0YUw^U)9PxNHOc_UDPg8>88p@m!@N=a+yBS3z^m~@AXxV_3+I)R{krWO z7hPwF%5TDEr<(n>5R_)f^}D=48>$5exVr01PSw~trkiPy?FK@L-!IK>-S-XF4HiT@ z#~ORv=^!PEuQ7}Rw82_qYydK7-P~A5hJ{h?Y;cjR#!}C{ypqZisgT!(+>f}haC?y{ zyaJ_q+Td;5|QpynsUQcho<=@H7(7Q z`12}p;HoYAc&fi4S9yTyAIhE(XNnN9F%4Q|k*d<^Bbd&{cB>`{kqKx%0@5nVxkQ5h zHH1U;oLpK;?wj43{zJqwlzsa1=5ZjBRT7w8e9x;YD&K@%mF=UkjfBAMQ*0s@(7)VT z>8cAhiUMlu^BWHTy6I&h8eI5orepc_8TYf_U%ClA_4kstv3z*Wl5*pzZi{r?M@Dl! zqg5gu%5(Y}O^Bk818@?)dCMZqqhWM_|8S zEOdSxhRArunpm%G$URqnhXFixzEYI}5Dr<*AQtN~#?#<@fqCOJPPzcD9zHtXyor5RE>Sv??rp@9C@(TeBQx05XU-Z) zR2Sv-gyf|NO(h?DaOqOavEi8G8~JKj4%BdV`qsGdbPq(#(ny5(Z_h+)I|Kr6HHRwdZef4!M+;~u|(g8 z=ua^6gVn-)`VhC@Z3*OWkr9;P8b@IoHvO)mf$l}u+(rByZix-Hq}Hzkeb^nJBS&2i zqbxeJdN*%g+OtYnBO_Qhl3F|b;2*QrpVxfTTYMe&ilF+mI*0U%C-{(qLEPK_@u(nk zSo2H01*VERq_DUcNaxa$%=?rVqRPSQB2|ZJQ>Gu-+F2w=rB+4Np`$8 zBnn3AEQfA~vWHWMPrjiB3i-+@B!BKKa9`T6D~kVl@n5MF_<@UxKz*gm0t{Dpw-@T) zX61RPgR2Wei_RlsiSM?H)LkJ66lP^*Q6?vqH>%oxz!_n#l*3uQElacVUY9`Hu~-sN zGU@^{9{-W3B-;MoW2)Iq9Qani#*o?H?v7e zvnG5#KN|253JWh7JPql&Es~oGu5#Ap6n;9;gm8*Mdn0@fl_1Cu5jG&&P#KkmC}|7! zyVW`!CAFBeZTJ#o34ua!nCsFY;xDapEV^woyk)N`vbVk8h~J<30TvL0xnQ3wg< z#L>(0D(%279t@c7C06#2PM1P6xt%k_s`5MZ!`lPRK$?mqnH=1_(!xjh7LF3wq0j$A z%kGf>CDzhF+p6`HuN!%K+9nqJQ=B2Gu&>vF@wjqgKh#sE_JhUc=*WGN+wI%Bk%o_! zNG!eg;Zmc;;p*JpQ)3AB`=7H3*y-KEEc|1Rjhh?x5LUS?+$TR{v81SII30u_XmY^G zh29g9Fg+?z;w)Sr#`ZscXKaCtu6{9fWiH^dx6IGG>KyZ36%%js4Y>q@J!7#s{t@mK z??L1oe96WT<#KtHBfFJUim(B~yhV+{*4*aUeQ#6`(NV#QNOkHII%${4Fs zhvJOqCEXl4*7p5ZL12WJtwTuI;0wIJPQ4T*S$Lc?e7O}^a>D-a;6jN1lEFQLli=IC zSKp5Qk68Eu`efp`Ih38Nx6OP54WBnn(%020D}7&P;`$csGLE5;NG2A$PYG+_ACHvC zus%g(&e z?t~JW^``YX&v#WyQvS#Go}iFl@>qBdhm6LaJ(D*+@3`6r)2>-svX#@PdAZjI!IACN zG+AtO-&8nO47&U`J2lPh;4E17A_pD)Wvjp3se!u7TVp;+CSDv{Te;gADYy3&y=d+F%DCUl(bxjuoiOIP;x z)TT=m$T9bOTcxZE*F1W(!SJfwo6=RmCwLP5#S0RSB`*sS{7bo?OJ!V5F!;M0sACD_ zQIshX-MObrMKIvH=DrN?>Z8p ziwp1Wy;l5YCq$DJ&wD4MLbDz|p|PwVdt%w8=XzjKm*X;21Vbj*f$|S=DrSZ1tP&Um z&;D`?fi3{*1r>8REp|IG&cw<2%9&HoWD-%*Z7-=je?TWBuf9Pjef_!F^^ zcEQ|ZAn%L&9It{}OAR=P4;M?VlaheD{2sjMap8T&!KnGLRC#E}7n<7!T9W3Q^~>G@ zpcqMOcMJFk0W`xn&FQ}*7x;5;fCREkvzL$jKlVfTYdJ&bcBgBBPdq<*3w+|w6~g2E z+#~?KHk3WTW*h|PGueF5 zH^OA;S5>copwSRtvTac6sD=XcTYcBSFPn+{v6Vi3Cy2uGwlDwKpnk%~;XcAtF9Gw7 zfu<0`I~snZwXcky+3WYJQh0=&SZTlSsSh$}=U_}w>l{#V$;rLDAhD;w=3=t3Uu|yI z$Dn2{^;DGQFDnxAs}avme?QfPu$)p1fTVr zY%uk}`53%B#7J}!&ITho;5{wZ-&4Bztl;)Rsn6>BY3GWd|2jyKXC$H~mXU3XB$Zya zxrSn4cgHXEyo1=~UJN-ESNMIu)9DRQ0XmZeZ9Bu*@jj6!F@GPX-qQTb34YYuLR{ytpE65aS9smR44LaT+zlkze+xk0YC zt1@n_5;cX9_5S#RdxO5hVn2b$D|k6ZfSt|16bZmhDA`-TYagC@gW;HEuggdJMN}zU zBwW=XML#SV3#Cn(*ItiM<_T1`<>x4` z4nd*5kCBnOc>e}>g#%gHO>TkFb{}!%0h#3nstl^+oXoAG|2zb+VSAu6gnXF__l-%# zO(@AaS%r(a4BI8cZle~Y^5l6G?OQIf)6_jU=wRed@S)NdoM?CR22ziSZG(V{LnDe% zb1|z2Oqj?dyWP3{BJ}Az?pX>?N(H|+Py;bNsFfLta~{hGWIP)b^)s-Q%H!@&HvFZt z(O-GY#~5Vk+uX~4W2P!GnuO*(ByFW0l4^nz;ovA1f=tkTSy8f+rwP<=0=s856@uE$97B zGGO~V3=$a^pirTVv7Ay1LK){QK$JvALYXHZ8ZM(KUrN`)DMK+%sPVPH_~X(F+X9dP01O^ab!)eyTm?mUtv@UWv?K3q0!f6tKe9Ql&5gdQA!tT zT4tG>+PzbbzfawlGBNQ=V6`&g)&5oj`nmT|ZuSo(Zl=e=LWF|+z>XrQP*hM8jbu0K zl;JdnN_iX>_>^Ij)(Ici1aU)xCmIUpf2VteV(W2(1;mX(Qdf(~QrWpYQzhv|N#G5*9Ow&*$S5yifyx zxcHMinLIMRj9T_vBMW)mtJLTyCpT>n9u#COL6C$e9rNA@E$Y^71dx9SRaSIH3|7K5 z7@#z#1R6wuouHi+UW-XH090D=dm-A5;D){EZ=`Kr2i)M3v_sv{FMxSzm&F%GY5%f_XMb0n|o5BM)7>Bye24@-ehj zYSS-f}lw zxyirMJZ&RCI4k;${#FQ={e9NM2eX(}DOZ)t1J=l;PRd4ieXE=9?dpkUUUx2oJfqyJ z4!3T}6yCRUcM8E853Ow1y0>JSAZRKk;Q~mq*LSKo3Cthb=|3yEq zvCNYdB6or=!!FmSDxt%c=U>}okoC1+D+vu^d4e?(UKJH&B3uRsQ&MPjh_h}P{emk) z1i5w(=i@xBSHdc)lYH+dU`D{wdV;r~N0*@_ord%o9aL@T{nX;a)r>WmLxqy-=c| zq=!r&_^D`k0Lo|pLJ~kA%$K`&f;ULPXTm)Q z=g&i&ihqW#R#`|t&>@&LC{Md55CbfZ-}4Iyu)ezFGv#6jL+`jB z+?}m+PQ=j-RzcIG;~M5)Lhzd=!>6w_FP zAVcAO--U=_U@eFmrBDufw~12bGZ5MGzu1u=_gu#ZQEG44Htu=T#vHcvL)ckSFn<8a zYROWn#F~eKM0tgDTA!X1q1@PS%{m9T@XwE`gdtn52eO>0O}#C;L161@qYB=f>6^7b z?N5LG@5ANT0jR_RCqG;BXmC=jMc7L;BFbyH}ADG%`@C2 z)W8;8UGWj|*$IhlfTF_K`qBy*vFw0y*_lh}S|Rem)mZ=<&-h-p@UJGj4IG8@%=WDe z8%)+H2UZC_tS7Td<&2y1ldfedaVS(wdv-ly`0DuLNAG0m4mdFGuhI@uSunYSf;7e# z0;R_C#T#FXrdSz%z))OH*VJy`@R)m3@Eda;@u2$~08pR)ODT0;i)MA}Ax>#5moN7}h|7Khyv0L5p!Y7kE?{-UuWwMQ~ zwiN3%9L+;Wv3pFU)tX*06(clwB2yES68%!ZktHo}fro&bul-U5gT!!!wUZ@bOg-rT zek3WAS1RIX(lpOC8MPg$VZUHTh8|!qX;}qxAs(m}6>OEh#?^h%SGt3+P(jxeI;Q2F z@j*hm|MQw#VuF2LIqevAU#eli(tQoUF<$>q$H)~$@$h|g#Efe$W?Wr6N=@^Wv}}jT zmN`f4wjSf!QKG9Vd^xsf(J(2mkN3uaWC4~r!$FVxNZV^iOAzST<}i~t2Vg+pWhUSV zG5^yM8cbiQcz1_wYnxBA3hTzcPD$tL`+9Z!?K|jp+OPU=)eF~-muOa%lo^VR+I85C zoSJ719U=d<^zGQE%V;6=c;43HKEEA6S>Q7~RZWmYGTAy=g8!%E0Et9%6kl-AC$|Ti zw)x1iww=3_7f>DKpI3YOgvn8}osEmh9;wPj#V%M~b45a5{ftswxZL;gHXjoOI?i{} z$6!G*!YGnw{|U&~!FcGG;_eo2r?EW$R7{%h%TlKQ2I}Nm!UE9u{^cFOPvIHm_YHPD zBdG-^$cF_yDYZEsb@=%^&M2m^ytCHyk7`6YZKF=G%!I-UCNLLlOAz|))yB8!`S0yN z6kC2W{QxjkoU!471PBQg3R?)7R0yadFY0W-)`YmnNB-Icu>SOk{UG>y*UQS#(DP4M z?7PT2>K+usLrnizY#ROm2*l$rfgJGO>8y8j8*358C>uxbSjfsN4Ecza_&7S~7nae} zt!+KsJN$^K0-6}ClLrz$jn!`=K-QsybxB#gFscD58Pz$h^vXSqeUmg~nAWB7{0C2H z8xqoz@c#S*X-5+?DZdn<&})ZfG}lQPS-q$ozB%+BnJQ*(N0TchnoUYl-Ypq?N)X-I zcwFEF9p|0AgHZTQFZq6&meX*73%XsneK5x42kS=N1ayQfy<$bdz5R!)de5Vj97hBC~s=20CwS^Wf z*gCEL{LiW>2)VIO#&=%+^Lak75kJzr!5}wBwLBlUZqQ!zYCuA698w>0R{QJKA(K6y z%8cY~nooNix+C_yupX=#R(xQU*j?NsvWrAu1ZSgt9(*E6ktx&;zM z$a7y7+M{^bIvA7+WJsq!#mULp-dhGSNP-H+PySL zv#v0}!0TCvBcMlNv~`4|>QG0#d8-(PkEgLq=RsTUr78TA-QF~j?6GZ}mpY#s^_dIl zIp&#gC!<^^|0=8_h8g2|AvOOi?qG}IRB@rngiD*@Rhzf#0U=ZOBCud8zuEL<9!LY? ze7v{pL4Y=aO^o__w0jIQ0Ihzkyl(wvb}QM-au+(<%ia6p0K zWTX0Jn4j@XFodfXku1j_fH-VnOuwZ1pS{aI;G#PQ6lF9wfII*_C?4W-A$#qc6A6X6 zadaHIi#?Xpg5>SZ7l)k9{DAUcd@@z0FrKA3RRIizHu~dLd7*EUxH2J`h3*6f!AKP2 zW8kLU#nD|^+=mAOgmDKBZ@3_uDfuo!odf$uB8)e<9w;P3fhYXq92x|k4Z=|WdTT00 zY+bM8YxuWXiZSM7DwrW!axVNZzdWwCXi}XumU9y&DfaaYbP(IZh0_wiHXHBLtqGs( zW1Z7{NW(?z_~kEyHsXfN_GQzkciT!pE7~vb-*L~=3ahmCZDu$NrQx8s|Q&&PCZ=V8ssw#4qFJp{>9aj*qCuzKgole<& zowX@@sH5Z-@jwIhhsm9k2whjmXbvTN8l-wx%F%b~r%I-WW%fCz=I4d-X92|ke=obe zt>YsUc~AjTs3ZuZOX!v<2fYB$JUDjaE7KIG{T#skp6{&gY^qZ!Rw00Le#lsrZm7my zdZ25(_~zlNI1q^NTcf`OQf-FH=!E;cI|PyXI|t$Jud)~*A;VPZ)+R>~(R=xpS64{S zr4mM726D}mRP6lSuWX^8;;8~zBHSW(y;A-w{C?1fETkB40@^VTb3Dx<{XCM+%X)^R zFb;O>LdPQMswSrqi|$7G#CA_$y88^aWYSIOKoQCr(%Qnc*nyyyRxtxCr)Ah~Z(4R?h zKBM&7WMU75573EQ_oVDT*$BQJb7S3~nlD}61NqZeKHf$mRX9;Qu8o~%G=F+h9k9%| zt}rodBynCJh0;NEm3DK^xOmEiX?-hI%eGtWia*Cz}n zwPnI0kcCp?VW7MQKw;OH^XrjChLI$8dTr~;TWgSVSOo@hSru2W_Y-drJg7+URPh1j zF#kTob-Ek_RhQ-klLN<#Q-z?Wqm-*yM#{4??;;V)hFDRX0i&QXWl5 zy&d{tR}E1BvDlbu?vZX>7~0u3?;IPEsL(hMU1yaOd93i-86|^P?c-`gAF%xUcp`lK zyPmLFA5WKLgA9L)r*ge!w)2h9Ae9JTQNxzx4qVZ`(sR!}*Wq|A-`_U&*H@$O%Pg|K zEpc=841IaD)CDCi`-VL3)*?U{u#1CDPa>(Qm`yOCys-Uw;mQwzXGMI zQkHG>R}FE$WH`FI$T^968u1}g@yDkQrs!j`GD;YENcU*CLhnkT@%uba-7`~Ye+{)m zu{TcLr02i94vE{$br)zbCJ4lIVM+|cfaq*)5A>& zo%SZM5KxI+{`0{ai^K8VA2F0Zp^qUU+{^w7T(kI=r5dqKD&%_#YRm$@KKBv(ZWB@r z3A_U2-B6r*QEAadtuG%b=$yO6cywFi;v3BEFJ$(rF;OF0wCjKFzs@Jp(J!63=Nd#P zy+fW^yQMOdk9F(m>e6uYcHwE1T5nza2WE#H{7EefC)=8->FI)+8jfW*DlUe|wAW#p z^OZ1FX-D)g_KD`9O~fIe1AnE`k>r!%YM_+fS{ka)aXZykbwZ8ie5BmzZTbUuXk7*% zZh!C}5+Oi%q%{>0+i^zdqTfO^6M z^>ropfdSO@PEMr?0neqNwW&|=D(<71Yzy9fwK;BBWrXW}kFHWSiQU=Ub89?A@vl<= z_^V^j>p7J%T{E2t2idV1^HE!#tW-xs;6d02ugFj zO)atWL(F(ys7DgUH*MYh`UVT*oJ=E49kNc``xF^jK>g&&az*wUO&wCy%9MRxVDV$; zlz74vD3LeJz2=@$yBEoaYf(cukvr~Ab=c1bLQ^&=8uZ7yomp*sECP`ZHJCDM5lU|E zwdLV9akmpz2P^JAAq?NddEMMt>eyzT4jh48XXg(bL8vf&B0c}gt?7?527@tc@=}Al zbR6`HXvCRhB6FHwdbGX`;jnwU;NtsnaXSImF&aZ4SCJpV{CIpqqYuHsN2}0{r0lAf7)c)&MfZp1NNZT(Y$vNUPKw};=tli z+j{lxs8VdHf#jxpqYUKzXUT5CB=VIo$DFDAz{0|3!O{l< zpGa0tkAZhR#woQ?K;Ario`LkNJ&Zc5Gw9E z=-ibz)-ESBWGYL)4vJ`I24bIpnL)R%b{e=s_$9___EGt3Dm3zok3573&(6;fb+09U9-5RBi&k?2-iVJ25N$x|(q>hoP9&uer z*y<~7l@MGba?4Hz-t4m&KVDGNqp-TaRr*}ri<}U8%S_x&Ij+&82FBv)Nf=ccAbNZW zG_QsL0-9rWsoq_m5;SKkh;6Z! zEv2TfaFz)U{rAGO+Zt(%aKb|@$O>WlhYrR1dtQao_9TVYb(B&#-Q0mcc{(P!joj|A z2yc(~eWpQ68VnD`a`ONNKwRO@HSQ0<-<=|*RbnZhfYjt>LhaI&2B2PwLP-lD{|eJQ zurzroof2tepfGZ%KIp`ztOO)CDKP2Qechg6Yj{L|T34`BW+uT#U1Pm-?(g^UU^<1( zzurLIKT}bPu9Mo0Z?i8JMa6YJI-uUt)Nz*Oy{}|BJUPw|lFyY;k)#rcIP`>}p-WS5CImOA9w!jCJ%!{V42nNGe>uxKSpKdKy zy6-KIUCc|(frNj_E(%2~aHP8x>Q8WcMtpTQdH_o%30o`iIl`)4*CXod{9_0=fNYE- zjuj~`w$*DD7z*mI69ea%(`qg-1dRWM@d5q1L`$&viyOL4!%M2~+8RuTe<=)SB!(Em z2vp1%90{ zYWL45WTC{g>$@AJV<0@7&!M#rPSL(H?XE^iJfM9}6f;J5xuVkV8Ka5Ysgo9U@SjA= zN6P2R#$m9C354f>kNUMFxy9_}oGPEiQ+fr>beLfa&?={ZHw(d=;+x=~uoQ-lMigi8 zqt&kU#~ubL{`n-+N~)4dlr=gqcsP&ik>AEbJ>WZx=+>B6@zPAeB1nZD!!-*@hz%Yr z)`qSonDf-B>kSm&5frDlhf4vkaZc+ql74O`0;T4d(QI@6W!?f~wX-nWCB|p$p#_vA z)zu*Llg%c5IQ|soI2zfb31YuWWV^vIp}X5riK<$g-*j)#|5IF1$-zby(-&5>ypflq z^KtB~`fp~njta3%!K%o!q+Vrw?S>Yn!UK&H#4TVA=c?a*;a^;^r+`iDSYh;x z#l;|%wfA7yppX-#k$7qib|-xve~G-RjrrN!6a-A~N|L}0N-9&}Kd<~}eshfdz&X;X zb8AeyHuLj4ne4uJldaN!*wPsZOw`o{6qS}be9sC$l>{VwNiVJSK1l1djrC&JQ`M$h zhRvBERqfx9s%GCr=`Ok;G=fmGJQnHm2s^t~%msdlz6d4SSxgRD#Nd)l=l@(pdVLj9 z_lufsb>8u>{CNua9G^#Ci09Goh}9)#hKr1HoEewi4*b*J%H-L$BK(ybPG ze+o194Vsvy5H=*SEiKv|wh=H{mV;F>geHR19&i2T*cqI3D#FcT6{D47>q~2%jr~Hu zA`+eD0!jIpDB-kujv>vI+?#pIq$IUGWPNhk-+AWg z5ZA-L4c`uO&=q(gq3>mnwey63LYx4nhO$alDekE@x{9!ri+?wZKWIt4&3#1HGw+)B zK?pcOEQ!6I|H%x?ilN|%e!DxDE|?vIbA)b1(NJ$>#_BLIp2r$OE>P; zzn*P=$D0_F`7J21^71-k{V#|zRV7ApScz_*){n$&%b=~H=#BL^iHNg2o7GoQdBdTb@F&i$jh(Jnpk**eu(i&hbIku=O@ z&S*)YIf_Ssh~rC25Lu@s#CK$IYn;LQm^m$d4DL0NpA74~w{3%a0*~!JWPx+C8R9+p zBR0zPYkBO3dj&01ra)x4;KZ?8rlAC8dsM}i$S<^Vj-zC%WyU-Q~tQC=h8_@ z_s?OcCRP>%>3?dP59}7>WQV974{NBuM6W7SNbJV0ARt-;si5nx zaILd|)72DwQz66n>>cNjn|}SMtBW?1HjIvH6v|PyOrH^-6s=MjgaGt=R>CK`7H0FCBvU&2H z{gEgGR-Wl4kdYZXZ>(C8dZ@cn$kUyxK#t^X1wr*$TX>>_)O&byK zaQs5~yk_VSDgubgb00d_2_4^j*3Oa2gLazZu59}gH`)pRrv{~w*C{7Y z|5?a7D&OJ-l_h4#Zr2UOr=pIHEGHQn7`=`tV}ESC7zaibBrl=X@9Cs|newEBhiSRU zYej~_-?2s^<7D^+O@e`AP-4SFhJU(gNWHS`Af=LjCmKsrs^tHuR4G20GI`gO;Hf;z z^HWj9J}!GhO0Rb{fYTG5yR(00?2kgoLy9EX=Fzd&1?ev30Wx&L3N*P0z!1Uj^x z=~%hJDRHh%-TOYUHhPeuiI3%h3@w4S znOz^M(lW2PZ_E*i@U(oI$eeL*9pr01Bnc`PTwb52@O=R4SJsd4&$zLFM%+KV*+XnQ zEN+3*Ga1XDW5{%N-TRxrI?4pv-I5dH#tOO6Bl^i(d2~wkr+%S;!s|OMUvZth=JFoU zUvcz>l-4VYUI)dOY67GIiHdr{yS7gFHS*A{c@=y|`=85n_usn#qtH~Gm#q_X&9Jo1 zu`#S6__zL4oy0PCHRMoyi)EOGBauGmST;P7AvX67C?v(z9BA(y7h={HZjT+Yx+jnx z82)3~sj*fs6KS$HJDt9;@1zPugg&5p*4iYNv<#8@7OHoE+QMTUP@l!~0z_--HMbjT z4Fq{j7)K{d9J3wg9(9HTyTNCBZd98(zAQN9wiEWx6hy6=BI)acYEOCp}SasCyNJdv;#ZpUyueLOoLo$Ay zBMlhOzq+Nj&oSniV0~zWRN*{dG}kVVcWU5ti`MZkqBmIo>*cPwvx=>|y>Cll1lM4GM2u{kB8&`)#heex5~hM>%vTQ`@OA-J zu)AyB)a%U?0aOiu?M>y1lO#{+2-MGyG?)SQ@3EZRbZ?PcJ-7YaaO}4V7XCJ?saV00 zFxk4i{g1tuCL{2jo%cR9Rh4+pC+*KYD$faO1sGbzEquN>-MMex2Hl|#znFS=%z_qG zB20l6I~;Xg_p=stjFab#IPza_&1DMSy0P~PxV%&!a(oJpsV#FiyB70iR?dep8022M z@)*7JOVx@`bpgy}T;|Y;_e=MdOhE!^~|FBs0RXFXwn{x=7jzuD)ZH<~c z>Y=kl9>Zd>Jp+~6hqQ%CQ8SsD7_r4m`>bQfFaJ!4#)~K?ODsdB%!{8m{7iL)Y4{-r}^G*o8jtNFfeY`K&d~0vMfz^2{vMCe# zU|fc5XsSl%F(498`K>p+{?dLU6*{3o!ZOZPTkL>7TqS7X1=s=#mQJANoWaEStDZEj zw=Sn#uc=aU->D)Om9VWod4A((s*$)6^J1?v4rAfpQDA`r{1s|&Vj$wYoW|soI!0)p zV8Mhq2eDz?y@v^POv9q&A*rzRcIxV6b1DAM%=X##`MmqyOMRThp0YYxsx&4*9OO~( zJqHEXVIfqjZfy5O?{66`i?CqdWXkEg-cTOi4bw3DGh1Hf)xpljjWuiF3fkB}{K90y z3D=@Or*NI-a!+r6pQA567qh}cY^V^Q(}cgK;gI)x7uFnXZEL{iG#13cXO&6?_f8h| z_ReDW?iJiusEKPRk-QxXHO{=^nhuC>(ataoLbWC5fOfC^E)ROx^6jcdb_C|yIF_{ zC&Dk9=i4@mB%p27C~B1wX}AwO#Ca~GHKxn`{Wp$Qq3)_ue7Ft~gya0K@q+mTAwzLD za+s~4Q023Iwq^3P*08I?px-Da@|oaI;AkOgA=KD;haDyp@+hz`MY?bQ@+~2L>5c<+&(zdZuiUD}+rFgTvcj#S&tm08=I?ii5bxYL1tOReA zgg;b=0QAxT<0Qi_d^Kag`5sx8jn3~5d*=*&r@`SZE9}{4c5RM5Z0j}_Zy+sgW&>Bk ztgeREn7qQJ?X_)xMmpunQHOVRci+ua$L&=z!Z0v91$K#euly)Kau4ARNW2zu`(Mgh74okuVd7Ouabv2o!M^iSK429=1StPxMixjW)7 z`6p?*#E$4=Fn06LNJZJgP{HUn56So~Z!L0yVOid`AzEo(yeQBx88s4v<@w$c8I=e& z-n=~5r<_3n%ac<|rre~eW@4T{B$00$^)0oz4*QYBl9SWa(`)djn?>fna#6|`+w`47 z&W46{Sndpa`;>4*7q?ix;EhEcFD);3*!Se&`0SN|K<~<7XUMu^Y={@8 zf-L|tm^~A{4u5={8}YG!<&#+%LA->sRo<*)UQ<%mLhwA~N)!s!UfXx@w3UaOm{ck33r3R1+pY#C z*XOn-+7J2lvLMx#AM57s#GPG@fG3(`G{hS!8Tyn%k;4pRUa(Q-JBWEvkH~pZ?^c$q zMs#IMn{iBEw7vV4O6(Dcg37>{^V<0Fl}gG=_cRlc{D++jIU0VVuOe?K&>o*Ug9i%} zjE#`)*i|na!HM^K$EC%N4#Vm1q(6-h_Zq|#dV8b1a?1+PwKInG4Ml3l06UtlRY+yw z-go(>Qo&b|LQ{*L_!*qN@Cjv=#~jo;W{*lMr!4)&ysm0uI0e78w#;td3i!-x7=$blcy+EHcx3Qkw&VVN3n``~##K^;suKWrB(R%bb0OFRaTWRGgFb#if; zQbxYZJgS1grA2Eq61}%kNynZb$d!hJ*wt6?J<27Xp2Z~wSgg0?J?ftZ_+@Vmg zmjdYAOg$G#U`YxmRg0m)Zqm)vYtnPN|6BRs-fov$BQcWaVSH)pxHq##+0`X*+0eEm zh6Vt~X#fx(4`TB3E4=5{+jV2Z08RC5F|9vVEHknU&jfK7DE}h?*gZBxTP=es!1yGIrn&k(0NsT)94l z=brT6Vh^_auu$;q3tF7H4%;qZvHCQ6PDkQh8jvjwgMWSbM0;S`RAfFKmJrpv~$X@ZBaup7FAqqa&+? zp>TmH?xp_4d%47~O=8NI1>yGa7AaGtBKc#EK5;;N+|-vpbDxTWl)2)v zcp0}>cPC2@92Y$}>*m$(wIdX}&0XR!uB2pWpUS?+O$lw^Z($+`CBmq!E=|u!c+=9E zqS&?DvXm8{naqarGK>lJyISk~&?B7gw@yOJ@h)v{XNxvO6wc$z)Ea^*Yl;LuDd#k$ zU#M%MI|;GH^bBsqurly*+f*d|WOufG;agnyl^Sb(%F4=gslM>OP`ES0pMxu%Cxl7~oI>4N8}9Mdm3jmrs>fRGiM3{`9>&Lx>|7pSE^RXc#GA zdWMqCeIK#LGixvK_@j4O4}TBjRkGOx6?@!@iXJpYhul{a{~o9SlBG(e1+sQN_<&Pw z^Z8r3k|j6EgNu8(zo)lap-&^U27EmpwF#~K@Qj#M0vjlW71oxRIXWBgV28{2DY?oH zD@DDS-QnDLJTU_6eUq@yg7B^%=iOg7F_uOFIz1c7GRf>;fR8FEiFT1G?^y~!inx|v z>C<&Z*CC^M)&#tz1!TZ}h=4OZTN&5cU0I&06+2v#=;ck@LbmuWaePLq;wfK`Gi*-V z+phrKrIOx_pT-^CHg-4x8)Nt0g97lJ#aB?#4}( z6g6V&a?*rxb7{e#AOAysQ4x1fdHJW5NNX1loG30oM|{pyB@&rPNmd?3;K#=9F4!~R zDFR#fsd(&AS_U{a3Vyvub1RS@{_}MH1HgnmT$tsVu}}0+m@Y<-7(T*oDEd8r{y@2WJoP9a8juSP0%=Z-}sZ3o>Lt?VS?Qt9&2 zN4J6J>e)FE2l;W4I02W*%xHZ;R9sqiwv1|_jn&hDZUkrny}haT1z6jD#UQBUO*3dCigvCb*gF&n_YeB~F1tN{;ya zOU2wNIOO~x_S9tE87AT_1qm>5g-j?5;~o*JXAh|qi}k(px`o;G$}%@dnc*w2so7Z; zmBO)!76H==f@0&uvYA)gDtgL(d2m|Y-`b0U=Q?|8?X{m7%I}H&bAy~f%u7W2F#fdN za~5JCxo+2~Kx2Ga3>Hdgq!KIT!TN{Vm>EtK!(;pB4m+N>eh=JBUs(Df9qQF-dxTz{ zOxJ%5;Tag=T$x2mblRtX#$TEbM;@f?7ZQ!h z>jfJNnfC#zqx~6$jBF@zCrXdEKb!!|kPfqF+1_b!%sTPJL2-BQ%lNjr%3Dnnx$3TR zLPAMc$u5*5RgzlA0IV<|y12B^5!iL$KGQ6M0UBG^jhh{~R;KJJy;Nz@&oGNTy|n7i zRsRLS_;FTFqj+9Uqf=}9m?YB6bc%w;-92lnSQW!HYAYnZOvYXu6*$-|$63oUH&W6R zJ0mzLu-(oUEb?gz;v>az7!;*OgSJ3qfo=sTJypuOLo>V(C)&IHBNY)bT^kUwks$^7 zRan`In~naWy2>U_0#xrfef#<-)cO!_B{wj@8o~e&UQ5m(t{G02+8@)b)hZ3bM#<_*P9yYq9(@|HpJbT zzwb4eXuhEA(r0|4rgx9{T+Qjy;L@|po|5LuflNerFB5S9gC9uNj{c~HJ6m$f^adpl zy-meRls!!w1Y=S~y`SLnXw!Zd9`qz?%N2;SCyiJ7Tf7Cxhl zlKJHBFtES7ZX0ifp$=i#l9|_ETL@Uq+L$nI(MH6(D6YKXZaQUVh1yEZh-4aOBBC*7 zsF2U)pB^tAFH|kBxI^v2vUhgY>3BEr6F%Mup|(CsKamDn+H$^^zI?x&3z`#&NfBNs z+t`3NKFlqdK)yxwdih^l@S9lsfkdH~r22`wnreKwYfx@>*x(F{mOa zE_gx5%FGNn!&A+wlm$zRMSCH;z{fKU%1CE1WZ0?)9)L=_%2K!`r2szLYcLsz7*kHr zA0ulqv%jcZ4p7PGAxqUuk&s~K`16j%F%HOuE+rhZOZ4_ufE8;iKMlC@hnq9YXS#yPH|9i+P&v3)}Wqs6I^M8g#lcS!ps(V&J)^sSIWZ8 z?G;O4S(3^37^tz%Ns<~{ZCRj|-WGD&WsK1~!b=dbg<`N#YK$)e&x#9#TmOt9ym`@v6d>5qYSsW zmc+0m;HUZ_tqARfiAC-jRGF1yIUn9;WC7?pE-tQkp5d0toUnfFE83(>q*GjY6#_5( z72&!>2DK5Rj0r+}X6w(Xyz{EMK1S%_4Mb4nn2g?_P$+6&HaTZ?y5})f@;xHGKN;&D zL~WBJoF@odI9(v@z5fmKIOL4CB5L-}t~%BxtavT)kpJlFa{5g2THdK-A#JcK%1Pw| zX=%*kBsLmK@wIcuJYEr(H4>@qdfwfIbn&xy@A^EiR@Z|0-8D$X-Kr;kK6+7D6+UD4-R)Up&3EWbcPrQ!2p)+Bcg_$E( zVfhFQ0wphGgiWaL^F;Dc%VTF&OOU(lumX%b9@v)IWUjt&M4+VD8}OML&@K^%HQskK zYY5gXiz54Ws=K0${F|Pm+o$-+C-xD9*^5noD4UcMmLuGr3q2Ub2iPI^Otq*Y1uIvx zBRNj`XDGKG((YPb@}qQCIP_-;tC)s?PT`0?-7!Z`ue^2{8i%f#>O0;~BRnM16EL|s8QFD{h79e` zp~ne?iE!4`oh}i@p(hFXpdlA$KW|;{?n1tMKCR(c-gjhai4{RC5sY2Eef@JDuK)s{6Gc z=hZq7t3uu8cbh^yGO?|X1R~8|wa-6z?oyog7|au7-xW>6ZiLJKRZ0GFO0b9kh-u+f z=!aHlh!tx553ioB3O0!Vm~**^aaprmuOnMh-4L=Jp(6^0EB1=IY7*{H6F>DPfm9T0PdJ`i1ZG zw9-A6HI}BVcpf4KliWdl-#h3_(C#oSY^_}=9&&`s&`{zG=I~P16+(AUb5{Aq z-p}t+K4=I}u1?fGTf5P6rSC^`bO`>Zt7_2~buz{njX&YX_%Z-1%5~U&Rjis^DoQyNLF2mu^$e zKob?;n|BzA&kLH^e>al)C7-*W>77e&bA8hw6=Zr6N_cuI4443 zuTtn_Ql)T3>m_Y&V)%&=|M6!3lsiln!hpU9uO(}KNKa7o(4R8B=&0C0=OP@&zXeR$ zsMY(|KdVlw+|>&I!Pr_RbnvYY2tMkqPxjaz4~^RP*W}0N=O3a8_z#3IC8*AF1=Lwo zL1g+5<6QrI{-)Ex>gcmUyUe@RC$#=!zmO3Ao1Zj~*uL55mfVJiLfVe^3Y!^L{u-H@ zD9F3+3;%Fa=QoD-KfHPrliJI_b^&ZUMp-x83qKP3&0|NuB#`x_^!%ADE8%-|Mqwwb zp)P$r$1{VwZ{6hMGy?4dw07dNp8jKn%&Jde=5%JLZaBo*C&N>&W-NY)2~%o@xxk=K zczZBojZ+hQ9=CDk>OUOs*O9Vr`+}tJ`O96wSqDaoFXT>6pcMr8vkuV)P!nn{DvV!* zuxicXVYcctFgIMZuvqboOcCekEC#dg$9|(X{^5Q8P5*)*?_lBjSz7ywzK4ETh&kD> ztHdU7uVn6d}MXP^0t2Hh59t9q(zcKn#yRA zDyo0g8$PjExqNwO=HdF=nCf`Lt7mI(6wC>VRfrgLUX~V~A%snY=yRPl80>gELiGqLt zExFF!zdC5Qv4U1Qk<_W_)IFH@uJ70DoEycf^SEr#?PdtetZuEBbSXpNCSun__;~T2 z!pKNlxk57>p|28JNR+fyEb9GrJvi7nFv1g5x?~77>zGsr`Htr_!x9SR8)^NT;ZR?4 zVSQ^L1W+Y;i(~Q~$}VLax3sRwn%U6Prs#J*i{L&bC+GbHb!)DBs%pA$!Oe7)+iDdt zC%Qgc|No<&zf{<a1K%$v6%y*Yl*P*vo-Nlhsv|w!Fg+z%U+fQ!y@#&EaUH2d=}% zs(Pz%|MAJUnxK6vWzexowz~5Qe^&I>O|#6ki-waGbY@?U+FD9Vdvjj5MDKj#4faRn zn%VJC&}j5m7U{LL_uuaA_V#X`fcu}o&+t^i3&Oh;M=x=)i1=wPhwcNQS!%>R^dEo zipw$yUgLwmuk(G(R>T*}=!QtI4oWe<=Qz#Nr~D5BG^@3mt7VMJ~<2QXi4#k z#BU$ejxLFsvhSD|`p7yfX12ZY1;-EVeWOqJ{%j|A?1(Y3-L)Rlpb233@i9-yox6oXg{iwxEd<$u zZ#d?$rKNT=xS1Bb{}+S!-&Jh=U(32V>>TWgyAch&Jv|>MCMN1VZ-bRBht6~vW5TpD zULf~7rYDN&B>9C!9pY*=2Ah`P9ELp|&MwNdk#|~g^Mn=w^|8CJ>*-NB3d3u3Rm1N^ z%nd5E(Yg5eFs_nIuMJOwj)wqJe70Fng(~tO?p)1P(MwO#cG83;AujB)_)}eI5Du(T zNSIKzt@J=_b%8;h!#_m?^?(~r8>x?h;%PUG%jDb&LJ#ib?gI}Jw<#HQZ9TPTsJe|w93 zEOWfPr7>L;=Rd``+H+NEg}G_yJupN+U_b54J02cFYu|r;E$&Ym(WI$_dSu3(E`(JhJ=Mb zLJ3-D&sHup_THZ<9@#^@kkB-3<95(E$K#ODX@#O|^v_@Pu^tk4X8qIjnMRboP4lx&}4PuOnf* zTuOSs*cEtRYBm2(XU#PBh3hi-C#9=9-X026NxhV5Y;^?G5oCmXl53Tv@**PK90 zd-okaO?1^M4UG9Wj~k-@gW$lA_*&4rxVR*x7If`?6)7okjFGSV&;O6Lw}7g$>%K<; zK}w_qRHOxzR!Z{F-7QE-OLwOr2ar-42|-G_n?r+icXxyIfy3ed9Q?lD{ogz8xYzf+ zcMOJO96^0td+oL6nse^`m^tD@!*Hlm1;+z=#5i1^GRcBBRi4>-EgQbY_)$yBi!&D2 z5nU1foZL?%>ft^T2ZhOaZPMdXUeS7H3?P8MO;9K-(xOqjkAaIh2l{jBO`E3V_|Hrq zy+PZ6tSJ3Jm^JlUd_@C}ri4xFqxU4wg;4(S*U=2Vxs64sk)GC6gb4gxL5lj`2(h}% z{m;gXsVY}H^&4Nc3U!E*+m(qXHr`qbHBNdFmhzZ|J5l!8~Gh2V=MkJHl(A zDgrEdK4r_M8u!hEd4>8%O)-_a6{&n(ULX0PO8tv3N@D+g=C#8qykkw>nzy0%N)KqT zX(^R@=5sO0Y!Nxwz^oQj?jtvk_rLU+})lnc0AhkTB#SFKx6kB(KlZ$0|mBI5o{BxLAI8iCg=M?)UxxLu9G zl!j(Z-#U$Ey-AN4iVG7;s{cMJWL@heJ+82V47^6k7`6DD7hNEv<~xmQau2%(HE?$Y z@8ao~jm&~L=5LY8l@%4XZ91cjL=`(FF5jWgHFh*RaUBT`{7$$&uFnVgBdT^N6d_u8m6MGd)D@xWd^%1W1^8NtYn)JSTUwPpYJNqj%MFCsiEi`*yOhH+Vyu; zm14`_nj{|Wyky42@K@Q;w^{bfV9MgOHd3{I8hrLjtv>Hz*Y0N#A1vr<|D(8nR~D2| zW_7wL_^2T(808i*@rKsFy;M+S^mi@(lqTtCXF+vb`ZD*_pSIxQpwddg zjY3^Jr*Y=p{^vdYljQf~%KLIB(ghRV;Y^5phDeO2h|>O>wJO7#S`dMkfMFd&wD?vU zV(!|Z_d4!(?Mh=>)z*K1xGTg-G26-VLf{hD&qYQS#R4achN9{J+^(C0UqOwp6}*KyQips&mye8FM0|pEBYVGhU`XR`?S; zF=}~7>Roa^v!pT&jwM?$vZ+)$Dhlsy1!lkGTjpfK0m;~NGy5VgnghnLLYtRsIZ?j( zgN9d%|GWSSp(M*A(wCDO!XOu0bhoF8lYbb+HpgWdaZ#hjG_?*PYF_^PuWx>i(hp`^ zq%+W%$t+6fx8)vgtkG3Ql;pYER)>G{XhJAY5QQg=ml^^RP_xL}ylYJiY@GT!RkgKm zSIo>tdX62ec}P~|A3103>sZSSS~f9M#UN`1%i5$fw3+721_@c56vxb{yZekAHhLr0 z{D7+p(Z?X+Io!b#|7OjIs1SY35J>Isa(_Y=c82dR5Pokaoi_vOg}v;I|wO> z{+QrvV>7^Hi?8gvMA_q|a`=fW|E^Va(AkeEP!v)wY^J3v$`Q^m!Y#-Vcpv1nHSn!<}z^QjxQpl`VTGX__!O59u3N2@W7ZemE#Ez@?zAVmr zZM=i}qB9)6leMV6jeY}gHL>5Fxs*LoLkA(@MC2r8M|xDkc$#w*)}E zFY-;Q2f830?_SALfr4N}$?vQZ{>|>MdWnExKsTkJ9a1wieWf!JD7EV6k{e+mm@57p zevq2#7Q`*n-#-wN;LD|);y}DmX&LWta1)C$E-5K##M$V$sW3V+^PyMabEM9&dugZ# zcg432@7cvg+a1!U1t1zy_>X$h8CBjev?pZ9*sq%{92``{&Z)OFyHE-vhUu7acNRB_}4n!p6pi({4ypBKyPKlgtqHpk#4EK8`*j7s`?)(DftkE)ZVEyRm zDA6=ddP()Z_x--o6XcQZZmIBxT))~)+I{L{rNS3}In;?$foP879R*97|3RYXqWXJa zGU(_pQu^-DHe02j`Uh5phTJ8LK|Q`3ZEK_EZgF27YJr}IE`QCG79$s9^miMT)~ffLT@&IcrFr?ko5P)vpSNY^5jOKP2Hb%Mlu=? z?7l94t*@b>x!>yF*(otPGx0%N`!yd$`m+tfp0z5Jp_vM4j8jb4BXN)4F!wJ%XLAb_ zw8*|7x=*sF&*<1h7tQ1h-Lt&RnOMZ{)rZ6(03Nq}T`A)~2$qx>QtQqA;WZ90IPFi2 zmdBFvgHBnX0*h&pM2dcTZhR@-y3js_sZuv!PFOS0ajsoi>%E|9VoZ!b8TmOn#bN z71ibR2Un!4paLsXkPcDV&#`a?Vz4R!G{>m|uu^&1!{SJzc&qit=Ns%8gDAawFc7M0cgtc2A?peT%(M-1)hosv=5IA z|D|l|W5~2~FL0TV@T)^V8P5kQqO?dYA!Sx?s_(d`L~)c-T|d=-sN?_Mt)g)m7Iv)` z0NosCedh5U_6Ph*hD9%PqDfc_%qb@4em^qeWtOvFgpDmM*zof5?Qj1I!IZs+O|?{> z%qDo5pc}ZPH}|F!1*PxF=U&CBa03@pF1ye0H*qGx_xi%G!maDr=sN>{7x^PYrW^QS ztmktZ>bd3;o3X&i=@y579Xoq|2a+L;rW}%@e+_O*#xdClZZ#kuPty>Ul0h;(j`}43 z6PKKs4i8qWZEcZ&jTroWQ~PL6_P9LBu5MBMicmImW5d)FPx1jj&@;|nMjU~3YWmP) z!QHs{+!@`nk1v&MsRGkt&~SaQ!nz}akQp+9(;Kp~Xh{v{ZSO(jRaH%gC2Dc&o_ZHa zw*S5w8t5NLdi(Z`pJ&(!FCD2k=tHSQ^mYYdz*!a7Zg&8aOhRgE+-f))(voTB>TZCa zLD*HDC(=%4O8O(oZi?XTv6#JQCE%2M4!?+w2Qlf_M8AH<47f_)f`MBjc`~tyTW2t| zOO~*p@$0Fxn?s47I;!0i66q?N&aEG=lOoHsH8yiLWUo1xt(YfmIwG7BX8iAfzVIK+ z@lDSv=^tPY0(_yNfsKtgF=wqmP-W?ix}>2Y21ie~KRTbz%@YfX9}QBM$%s15O7Rhl zy{DePCb1e!h*u#x)s!gxe^gOM1rF#Hj&PMkvVQc|Ru}=9ud{VOhpgB&8J~+W+NB%i zYn1c3?p3k1$&uX=I_kq!;ot<)=sEQ*EGpRLWsO*!e(%m|rJe*Ug`kKoSc(32>VXV9 zby8OZQq~VH{AE|^H4k~b^ueAC|6K5ywuW_T)NK|9lqA4AlxA&`i(QVy%GiS`)h{hb z&aoc7259#*o`WWOLTZs*PJ-#)V5t6d5SDgZ!oq^yXhkXB{o#vOW^sX-JC!{d;l%VZ z5M8llrV+a!*bKD`i;#E0mPjiKYK-Vk9NLqe$a!&tHj?`Cz|HtVrD%u~++sB;(ri?0 zZZh@5$|(B++leOX*cj4SVt?folTDYeTsv*ZAmMW_)7R1eglJWZM5++PIl~!u^b`1c z_Xo%L{W*s}+EfYhV)XnOdo;gi6Wn3f-uGXf-aW~)^punoZa*&RJ~esb@L58wJ2Jx% zfBwc44@W;}h){zmjnGB(c_AUWNbk##&xdqGzbuWfLqag`4OcFtyupVKleaId8m*en z6YA9upAH|?RHV`E4g7JiJ?Jl^O+U2gA$><+=i2df9!g$7_Ba>sj=Rf6gpExH*WpV0|)O%B2174goGZ$>eVa*Nqhs2PH#78Jn?O;)Z7-Tn1&xZo&dhTUh9 zm1DV)T_0>cJ-7XsT-cN}C6n-*NZg2^jt&%mZy?|g@S$C_DuNj!*Lg)ndK=OT;KR^G zUH?X13_s5U<{}}_aQX1;;^IZFaQ8^GXGwODW<1QzHVyqVsWBh1OG%HH*kZ&%m|qyz z1|hiT4lVjRqTR)W8uOEgQOo(fcJyt+#0N|DQsuS>q*1&-CpjU1xG>wy?Y{4S72LZ# zwlYKkECtg-Njh$iol^ebTS5$>__{g<s=Yj{+i}N*Rx8lT6n9H<~ zeua)^d3{60_tm%6cd14m^JjZU^D9h5fQG}h{otck4P^i^u`YDwkV1M`(bv9XJTQ4JsV{K zlkD=P2(i}G^S%4%=k485)MHyybIAairA`8QJ@c~u{Ci9 zt)^)WcA%bFZ8wlfea1t}kBAJOxJ4Q{Au2)4`}+PC9dv(>3Z*Dt`EP6xV))sQp( zS(gSM)O1gAHTZ{YV3L#+gO~ky(eZ|hof^kObD|ptEt9^fFcy8}oVsi4hm3ko- zlpX)HEoiRjE10@C!-kvMSI07WduBS8@hM)SfTuF*oD@UP3C_{xnuNF>i(kE7;?7ObG*2B zEls<{o<2S{1AW~rxXO84K`>tbamPC@lLZAbQ4~6EXt8-mvRE3QomlYM91>n|y>B5T z5WJW0kF=AYqDV8Pb^O0IoM8sVf2Q0@#idvbx9_EerZWJuSc4B$PtS7|LC_`4Vd0~t zEceIqgYqbXx32!)|_<#^xo^Lr)wCU?ORk?L8E)Nsi% z6o*qnGwtbZwFXLJtV_9^Y`XP(%rpl5gvarZqkVn!P>)8JQ7$#!{wP&-;T1~yYR{mm z*&SKi_=u{gL%@Gfija`dR6O-#XST#!p<&xWW>#iXV)LnY%lcFdh>9$Fr1u%I9h)*PpdjY z_k|MW2VWCcjiKNt_}7}68sQt(Yqw|xj~%4Z!ug>*^~b)VH0%KN;835~IN|#}mE&cU9Gj0I;_fTZ``? zonq-A+B6z4Ko-|(4R|beCaFy@404eZa_A~`ra7MdE(Tj4U^H9V=;yxmDykj%usJhb zLF25&H-_LjtE2DeRBMhDo=1N@O8Ya*`H8@py-v1x5i+ovzuyOi{GrNymC7b;>~UQs zrI6o~m0jW8`US2;<{x+vgbsJ?ctk}Rg6>vFF5GY=MllDcM1Np@3i1kNT$6k&4=#w< zkB*{y{`%%8MoBa!@nIYpMik|Pv{1a+SrKGkC_c1O%E-uw>+0reCg}-LOSQ^{wW6!5 zh5?9WT_ek@v_h5oz_Q}9;BqlP(8t5WBsd7?mB)D*lhk7}vi`6oimYNAE30ma3;i$R z4|)l7n@YTF7646c%|4|9qX$=P``WiB^+#Q20O+i_x9ZUbRToz94r8_i(obWF09phfSTfv7Bz>4Qyd%x z`Ye+*u(_dcXzX(vGU_!D&rw-PR9QRm(=NsoX~z@|T?oPO@%EelgEF0-g!*Ewn9dux zlmsXfI*~|0u-JMt=Y4Q@8bh9n3Zo@Lp{lUJycB`IIR$3FN!geiUFr#m04>tt@k#M- zWHC=kpYBMBFQS)mI;x^;C6Tii$uJ6T)bpm8Y^Qcx|MNpz;su4VwFo7&~c zW~84Y%-7$ny43ycL#irGsy5o*zoPr=L`FCOcJR`pAiQ(ajEGdWQb&1ota&id5!qeb zDt{)9&^~|qsh;E&xcrDk(D7DppAB_>=(z&oI}jwkCOL0I{}lcc+^XABRTbX7Lq@G2 zsjdC4LV50tuypyM&BIJu?!NUbW7jz?iuDjdi4} z_Ue!H|5viTYNM-g~m5o$49mq`<`LV+o19)O#%eC3AYE&Vu=gVI>W7212N4v#!U0aDKV`hS7!}-Vmqqjta6{P8v-v;wAP2 z82;A0y}hSj93OCAxLvLHS~925gQA}07?Ih-#VF6 zZYBy39uGG6kq|rKtFJ3tZ9hO!eNC5~k=@_vHD8+9@08*58Fl$8hUrl^M!zE=`MV4) z(MOS6=L|>>36EFX@+vV@>t+4H^Yd$1&{x&37TXBCo=`|u+?=&iw=T?QrI!e8e6FYQ zkCSFtbM3VxE%{m|WWclh&3@Omc=a*i)Y~_djO@ps(z2@tK2*Bn*tpR3BaL-oJrqh? z-M@^)?9l9ckN=2(c!BL7<+oZeP^8C~2lNnS-XNae71B|}phTpm z@PXtd6Y8>nfPgzE)sLdAM+o)7h9*fi#`!s8pPp{-*WW8P92{H;0}%?D`C3-X;SkE^ zZ$!fvq18x8@l-gc;X^eFLahLsNkr4{oa7 zbh0sCWNWoH1Rfq7;8oJDMS7rM)1O*C@z=L4TN#3JRb9P9=&QF}sTXx`h+9?__H+}%$^~@*RG{^L#c^l|nEMa!##}9>`&*`p;zmsla!7DS@2g->EZ%pD*6FJ&kNOfMI6AXn$xU8nX`!al z{eTWE-Z=Fqy*oWJ!l>}RDG_p{OGfM$J8Ph^E^5ErHHqwMId0UW^HgcRGv~7>*;E$~ ztT!>CCM2lgU&6WAh@a2J_bH%ok?ykgJ+YINQ3Ywxt6=!7;2uc4(zBnPd%Erf&#S(Z z^EX!Cnwh-IudHm?;O^LAt7JzYEmuOoJVjSNB$=>l)=#%$ruk=I|K+cwKsDY}`(s0t z5&=-&^NKIA{bFmHwAr>_E7gBgFfdgnAYfc!sm!bT50l0%-* zIuH&=ap9HwA7zALE%N7AS9!9DuSt>Cl?Gq#S6C(CTh8}Pvr+keAwLO(5kyneBe7ZE zM^1_S%|vr<+bNLeMR7O5Lf>|h|AQ$i{SBgZu)oK=>;C@FfKQH0J>D^b0571pvaNa| zDr}i-GAtjz;>Y`?6x^ri?g*cxR+(kmHL=( z;K)vvU>h2EQJN~5H&cT znsZ`6b+!x}pshe>jV}rwa~?W1ty?95uV-?qG64Ibaa(`E10_kz_eeW(CU?F%O_xul z&i?=-fhB=FaQmheddIs^iUOZ{`U6k#q4_LxOdb9`$lkg-EH2zuV(#$! z-|8vM-Dgz$=r;h`*E#uZl@xT3*K+*Bpn55<-2OX66z0Y580zFV^HW5a&*_vjHO&-K z`7N%lf7^!fvh(m57U|a804QF!os4IFL=I=)2g$pi*fOl=iiuY zr-*@#ut;1T{Soog{_-?JRKDv|uScs*_PIk^RmfiE-z#=DlF_I7-z}@an(RA` z1bC<*preBz1LlkaJ~+u0?v>AO5qPnax0sZ=s77j5vy-dsJT$lqWj24gwx})Q!z5&B zYs(GD-5M|I%gWvp6L0j-%{379$9ZA_M^h3bA{3ybRIS^bv$(`f%#Qx*)MI#=)zxOi zd7Rwb$sHZyhCF6~x~8WidB>?>L$o03BsOs?LZvOgJycKt_5A0S+qfZF?*E<*>9qbes4~gE7Q_#?3e-s_M?+&q zmn~QC3fmJPPb*p1YylUtWW=*l{9jZkxU%{A`2>YtBXjkxgK~<4fka{axGg;GkB$dk*jSeq_W&%YgboEM;*oDe)_{% zP11;Fk-BZ^A{ZaUb8IZ-T8Rz_de-+{SNwE97Riv?geDhE1gi5PiT0D4JTFeJXCeY zaP`Zhr4~`g&4Cmc_AC?0Bf~|C3@m8N@mEE`bJkgYVrR%D*xQFV!2n#}n)goShI&d_B_<;PeZ{xhq5vKld||9EIQ`Cn}S z3(y8ERl9MAq39Ga#?r@gDGZE^j2m4Pti(honXKSVe4eHlr|WZTMlswEneRm4z^*)L z!v)=URz98czlXlp3QiALCpf-1J=MbZRYQfR!{;3zud+g5W!9Pfx0@gmxzeDQnVFdz zgP_|oExhQ(&5-M}aZUYr0DAR)>k2|mN_yIFmgcQtx4hg2!AU(!4kepx1ZhLz) zXJe*v7j4r$;IEWBFBBd1?#1C@L%gN`+C>}@Er@3UU|Q6Nay72cPCS~PlV+8SJ@nR5 z2`<>flM;nwA4nu2Z(Z&S$yf-HX3+XqpvolrIurQcs=M%jZ{K}dA6IQG0$R?TTydPjGrLb(YS?HshTG(m5=445U_raej;z1u*^*MRKxb(6PBr>j-Ty}W|jf6*uXj|rwiMc}~g z(mEJ;$F}DW_ipO1`kR{#&gqtPPv!&bnat!M8 zM~(@kym1%V;hcg4hMNBFuxP8r@zjr95fto?HD{a-7v?XSM0r~Tcs)*E=q1e(0GF%0 zk`0rk%5txpLu?)H;dh<@1m2v%5LEe|tv8O~0#)DcOZ|sITBnOzW4UZK0_ock|uF2IT$<* zAXtUhNk$2Kks!*WUWl`H!`(2flEq+3>5l zawM1R;H6plwzf9v^Hf*GAaZVCc4Idi&{j_%P9pq%xxc)mTUYtOdL3iW+o<@-RIEFQ zd;{RfCspGo%&$c?kwU1 zf>)fKQt8(B6oE$yUa_%>2nH^Jwc%UCnE_9D-n^mIFB&w~RH#RzY`?wQwVhKvuc@z} zg#mzr=-VVA>w53x+3w_t*y!2WnM*7e^&mGVTCsU2^*vt_KL>zo54_#UFCOpLI-jd8 zH??CU32H7@`x$ksf9tX6`wA9?E{wjemb;l&KzY%k-+z~`beULEl_L%7>Aw9m_ z8lu|;yM+ZO-ez*8;ERaa$W|2%8Zwlqtr-9=5 z@%ob#%n&nr1GwFo5x(3qsF-^@@4C2|#`ML~#^yB+PPj|g{m=OXn0!J)TLK_RR4$Z~ z$~P(KNeFLj>k$byLzPD>dsAIqlKEpTwt!M27Fy|X;^XS7s+k~Gt;cG4G1E^n6;fk+ z&Xiv+PP6>KLs2WuyM-$k7V&AIZE}E?%`-P?S(*)|u;U!V7v&!v*K=?kx?R{z&kMuN zTfM)1OJHNo(eJrlAR47Jloqn#GSJ@h&O+g#Eqgx z?N*p?XpheQ>XpR=K~u2n?rH)))SEgv8Q|v}8ct}A^V5|J&vyZXvotXU&5Yf<|Mu8L zh^zv@t0o|LRWhlUIOd`i&!ggiQwzlk@LwkkXE`~7T^0h0>Wabnv7CsLI?PtUfevOW zP+%6`)HNox7x;Hr79o8^^3C-H$)kFon@?8xafD4Y9{d^I=vly}#g8$dt3PlBFXOkj zwqCs86%erYxjDNn+w5gt>*DewVTH$7gLVuK7aH&LVTfe`+sAPDk}9=x0M$Nl61cv8 zn?R(=GgZ8YI+Rn*b^DFpQEd0GXguZ|S+RZjxPelR!svut}c7 z&Swu@l#!^nAXH)5dhR*4nnNFti+R@v?Q2rZ%*_7S3`&dg)wYXV zta`>S)XmhGd*sV>r;gBLq6@W!S66N2ejWxH@K((}vP)j}uh8XXAn}N9wNG|3Z7Y5KV_^1S~_Zm>NUIbX;B99_IxVX3Z+?N3P&Qd)rdWdt$Jpqt%{U_(ig5 zc~zr#@RO%c%N&tK+6ya>9$pT&tZQyHkIs2)@U@zvQR&@T1-vyR1JsdYZZy>+GV`MLzMF40_)TG6_ zz=vz#G??C!`86!az^>zk=+a)coh@1rK-K`-8O`DT(%w5Vg*%;<*xo|MQcg zqma>=ouE636>&Pz_tK{+5E+1-IwEj3VeY^I5ZtYFE9KJ^35qFbzR`0qwD1g;$Zpn` zDo`6c=RuxvXbZVfC>LiI>ppC}&=ckXPeI^U$$L--fL1@k1;NbGHl`Is9tr~Ja&%#V z+=0`Pw=jw#V3oD$(pBTdfs4axr#$`;$VE|{-1l@iSmXI2No!-h>tU+zOz7(E@5l?3 zjtR7&b<|EU^D;R}ZkvFEm#C|Y zUMJR7dXItHd@Cw;mV-t7B%Qkb1OZ&CaGpKmahQTPXM_J5(0qpTmiZx@e1HEjOPyXuUU6d9I;}fBbgr*|z+%{d z(HlqV$9Zb19_Hsy1|OVFE$oLsOGCgui>!yNo}TQ7q`wu;h8KO&t3IZGz+jjH9Qims z=Q0`dG(xL;d!NrTh1e*jWZ=K52OzWy;E!L3+s2sn_L*X%?Xy-VC|WFiT3D0r9qhX8l8&In*i%T#g1v+k0%2!aVT3S>ik<8i*3 zZN@ibN*uj0e*jCt8jE}*;)6QE_r^)-r}07QxSf=ru$H{@*=q>8YwrLy-+n`Dxqs6u zlC+-IZzU=B9#RNesokEPZWGq;qNEld9FW(apacjG^!N98p8pzpm5b}f<=Vp@K}MRC zoP^`zp!N1GC+qrj$I538N1fTCn5-y>im^!*@Y>uB5k5;$LR+nSz8Rr5N0j^H*F->L zpxgV>A&U9@yI$NZ#g23z_D%`$-67yYd6iN+j5YVcJ`MUPE4T%4=+?Px#^myHB4Tug z-)7P+*L6mtvI}(%yhabMT*C!1ai!&Q% zyU^(CGp`sN0_{xx_8vSawYo@mBzOg2oyzxvZ-Q7w(tNI@r`Gq}iLOi)+xdlloC8wL zr?f9DV4)kI>4W|KYV6EJ#qLNnJm>nCG(JAE?Sq$gGI2-uda`7FiPf+OV?>oArC|17 z8CxY&SevH!sctt4JPc&Sd ztRRC_PK-ZK(?YR@LHYWjOu3`uMnt)1olbT!WbnWgn5tciSKWLJ7alBP5f@fhR3!kT zaq@lJU^{E0o%I-|2j(0pWi?0^CeGs2qa+^)N|JB%rqu=ZtOXX@1l=yva}Bhw)e)AJ zg(jbyIz1U<#T3DmM#U%@s=B5R+^tVr>$fu{9qaslhuFVuKYF3VA09;!+slJqKG4oD z#jqA^v-D%nptznI)tQ}j=I63bH5LmIuuATH_AAB$C4lmpUz#MT>dhu*FvL)rJwFW%bU4MGVWue)ba9t{5kD7HErN_8OP+4*VNSG z`~~pQNVrG#l0@qVCGVsmG=vUze+OFHeJRpmga~G0FGQM2grYna>+(uRJ?f6+^6#*q zEDkU=mrj3xy3z-_#q4uV&USILtaahue*vg-JY?XFUVuR@E(F7BDsQ2KLCqM4c*%1MJwF+*{!T zstleh7eb%MTc=HKKZuSYCj)#0H}#X&3*@W4qp{S(I9Lq7LVTdh-;0U_4+&tpF&Icm zcq#DJND$UH8tv=^01ZW_$lBDhQ9*R*27UuCg+Bq{iHR@96cg1geuz{gYwWsICFNS= z(_qH6uA&F?WlsgI9cE|bs6fO@-vm7A3TLYpD16`bTz_l%g@DWoB{j?gEH5l(Ov(O+ zhp+?EGq@bH4v@+5c}QCt)pN;-LT;K{K4!a$%Hi_#{sd2`H}7FXOYdE8vzv*abr$J^ zTYdItI8S62NG$=E;n6D@a3rsrzUM96yU?bPHD;iG%f$3K1ALy(^<;pHgDYv2+76dc z+H%<$IoBj05XMKVay9f_^gFeWHF{?75}&k^yry5Iiv+FIB5=QM3wxHiKXtnz_;R{nlpE5=ZUTuj^w^~UW zjB1HT77l5c>^2V!LNh00U{ zmEabPf}{t59p}$2x}3D2Q=mRXb3~^07K=rv*t^8zIzSZjs^R2nY!rp=xDctWF5d+^ z^8GpxSASpM48@8a4xjipkbX^m;O)2fB>swm&>sf$s1^Q!=bTRkiC-F+g{KF0@N01d zSR-+E;2#@3NDy5L&{b+3$&!sXCf~Sq!`F!0{2Mz|4?=`8e&&tOxuAM+aW*TFeqQTw z7W($|y~XhTxum3TuK~9O*HtwO ziVz4a5owtOco$MXHuIm@cy=`P?wJpYwRAaO-b|(qu$&w}z3fXY&mP7XQS9X##SD3h zTj~T6>y{kiCla2$^1Y$OS$^>~q6wP4ZEibR&=L?3&zjRQC_TzDyya>9?BKD|5Xo`% zuj>ONf>*kWGNSaHz)*N&o@*OL>F4dP9l0J$O8|a$D4|es#ijSfbTA4{dD(*Vi<6@V z1<$>c!w?2A0M&!&PWP{I_Xe*YxWQLy-B~6rX_WynlTWz`Aey||3&s^SW5$63&!vpJ zE+eB%W`W+soF}RgK^e7SGd4Ca&5u+_skA2q(C>b%qGgT8tc4 zU5BOzBr#IH8P7!El9A*j7)SHwD^0HV?$!6{9It*%Zr<(;Pu>6uw7ueNY^%NxRDGfL z%@c6fN3l+G?3LdR^j%ER;!;5tov|4PhQ8u}xYKl4(z=H*!7po7$8(cU)QYgS-Cn~8^o)-r#4KGlE z(w!BSrK+Huxx0ND1&xc8MejEZ{25q_SRhxqrqt!jZux=Vt>Z=wEuF1jnnA z5x{>;TnyGbeGL55oH@px?djr_z>maK*_!np|IM+%^kdWy(%q3M+ohvUrE3QUk*-Ez9ECX*U5K2)>^cFNKnld~*GO_EpXkOl%+G7!7>wEqvBN!J4CuE45u&w|UC=Q>b;T_4yGZ!?b}@`>wUuGV_PbhFHQ$zX6nz|@X%6TN+537?zH`y`j?O*iug zyIsR-Bvf(Ic+b#_r2`Q(=1CgmGhE)osKdENBU9QpI(ff{LP-dZHQztX{tW{B`-6wW znUdwY1)=vhcgFMGy*|1)2|YoL7R3T$t|#2SxQ80=`4aoy!D4;dJ~lc)Blfa13B!SF z-8X_rh6wg4cpNzRf^S^ru0L`GY|JN?CoCp*pd`q~lgax-!0lwDGorlqD}ffoWG$gg zN>2#AM{@TVlo&$*<$XQ`AaG6g(J3;oAPgJ@(C1YJ4;wYYUz(6r{Lf(he|znZmv*S% z(Dv)M`>zW;9j+9d6FQe0Ho4V{IrV|Rc82iSXkrb^9mP{# z^OB?~MWA|cP8OSGK-}>HOfE<@wNzjxVAlC<;A75R+l&bJr?ZkO|TB5{7 z<*U?w`@Yp_aqv0Rb}f^Hp4=mCX;3(&zv&q{{8z8P`oTeqWEFIRdsZdQ6Km28AMq2 z-0zxlhxbjFznve;73=n;K6Lyz@)olIjD{|?O1h){xZZ52u?D<-9y^|Yf?0*^1(76 zAk8LzxP-^o(bqRz0b-|yVNVzUD;_SL zmeMl)<FQ3=uG|C| z3L8X<^B7{zVy+~1-kcL2l*2Cp7a+v>S)y&_y(#HaNkIY82`rJ1Jwh0vQG za96sKylg6N9B{6o*!Y0Y{n3{k3y@Uz;>*Leh-ZRdtPfh+&`m!$^la#8>-7C1q%WUL z75KWfNN~v*5v9+_$-$+?VqIvRomDw5vFn-{!5V4@%O))8BRZZn-_$(*_}QYq=rPZW zou;^t;&|+Hq^FB?d?*#Nk35M6SL^BtTUtJ%%PT6f80aZg*pCVGUQFneQBq|h0|zB_ z%XFFzr#XcP7fM%BY?K1<^l7dKS^JWgb=rhGG6qAiy}fU;ArO5RYI97YGetRt1c*tn ztNaV#&Qff`EK6w3L?gF-AS^cZqdhEwaSh~r<;3*?p0p)U^sedIOhd1sjSWkETRrPq z*PO)%tDY)$R%GZWllYMIwW^Sd4fx7~!t(O^*^0v{!*Z=|e>B3RIj(Fo)4s;~pu^4^ z&y|CTCD!-C^==x7GcSW`rpx$Fwwy_T{eCX|7jW)+u=547@!K2l&Wk>LXQ5)tRIZoE zS;c4nbA8s1)35RwKab+O%dx%)<)MD*^ zt=s+T#lE%9c!vu2weIBx)`T~~r@*T-rUh9p!$h;it{}a%YhCfdks$bsL3}Iq^M3Bd zjTG$A5`ovRsTr?Xr@QH1R@c})Ey4IHrTB7?nwb#W;lgsBh zz3%2M{Fl3mDN){uRT zj3v8FlE_-fZYEL4GD^t4B`UIS4I>g`7s)!vPR7`ohVi?n@AJI>{NCs7@rUCu=HN5; zecji6E$4Y&YO<`Xi7dwl9U*V+V3`{%{QhxqcWbe9;6~A7m>el*tw!n=vYSWZKmS)% z$3VR)OPRC&hBy7*&@;tEU4$+}#RpaMeNqkE7;-?$sfbwK6cq{(m?wo4YinJU;UO0_ zIikZi6OaIgid)@Z8*>5;&??P<9hO%BeQnCrG5wNjN{%)xF%j;vZ!Du&KS8@+V{dY- zxI~M`=r5k#hQf(#mc5xu7nNDi{A7Yw=w|oZsXopX0+H98;ZgaIEW~ zvwy}T>{ggVQwM}QqvG4;5c(0sg-(gtz=M4)nX8x6tW zSwy=R0yi@3He_Zye)g!FV~c=N4ccmpOSm_6A34H^rYDma5^NOisEVDR%K27tc}!yV zp+*vzDGNwD(>>V%PY)G?tQT*j_T=P7I;7mKI}zt-?_XP1qfK(C`oN)bY+p_@maEED zpSVd@yJ$XUc0qrbPfUkV-&eu!d~v)hYAcoGQls7dPXL#i%yTj%@D}y5%Fw183D(^z zEJ-56dItVcGrB|}(sBbNxOV8WI(DXlQwp_^FW0@bGZ7h#eB7D=)`A}A0&Hu)ZYR-V zjMCieM z5@Mm_)1<$z>%^_b$4j$7Vo9p@fE@4A#vtt~?7DO^vy2K9QL<*z;xc%DOam>Oqs-+L zo^omVP_H(d6V+*&M9>tQz~~-6#Gt|^R01~!)Ur|$<_bn=9$6ktdqlP~=%Z+={9Q>e zyqC|!5U@W4o{hrmqPyjO9#lcoRwg+9l7GANi1H7H&%%RQ&qAXlVZ2d3SNIQVbvid2sEk%q z<}YUT)n)b`3Mh_PWsck0+IL23aJ$d}`{Bis)TZa@6}tBkl(Io}O1l+EzwHM0jQ{ZdweT!P;Ns2Vgz zVq-eDm3*%Nz)0R$Ma82u-*I~Y8tUnnsxP{(s_Pda4|0M zI1tI$+!f9M*Sgb-6YO-6g#g4B6R5IJk(ffqY;2{8=3)PN^wEPY0OxS8?*l|*uk~r` zEw)K~q|yvM5k`Byz)r{&cA%{PW?_9#MppK20{1m$!)n}*A)rUNb*h)_z*PK>YF8vS zcf&fLX0rYvi;huZqFUef5yy@FDYed;@HIEO!+uFyN71x zmg7~otXCrY5}c;%1^n4S98ItM3&2t?T}TwDj=(T5_AtPJ2GdeZ+AY50fjqvUCYicz z1^-g0on5y(MCN1h1l!jBbIG~Ku57Y=A`^pKmG`u;FQc<#v4f1ZS7)Def1h^#952li zz^CD4Ua+S7z;^1Yi&7S-!Z7ft_5{z+ex0Mmcgvruau8IG1{b;SUfi0)3mVpysqNgU zzRs##{s0w7o!9f+TV}wA+bl+{uRp%>;mQ&~`?@)lYL(Z%pgah=Z_YCA7h$~`H2u-g zF7T~f!+sGfUvupUX2{dOOJ+zi__a`wKW2%?d7w^Nt=gdm2#X~PK!HwfA+^F~fvhDF z%!c7Z-dl(gHe*r=FlB{t-FAcRk#(7yYHj>2li&@#<)vX7Tjpp(fQw1J_w#X|ZOy}L zrTPuBU#vQYEk9qT#n-(}oX(+@sJy=4lO`iS-UvT~Z)mu>Jp@skFg(bAygUTcY$KMT zevhl&N(sFR08EAOO{%t$KxrQuBw!%K>(E-4%)I^i(-F_SS$ECC7-Uh<<#`Z5E$(5J zKhj;~!6ha4A8dYs0PvJ_z&b1L*YQ#F@qtAzKyczWJ7V`jZ8d^wfLNQd(QWrnzc?pG z*-nSfX^)ael>*w3dSKR!70DO`bfxX!@?XxxevfZ-Pn( z;EY7o0`2RTBE|t);lw$}-)Z{ly@1xDHdYFPi-P0=Z*Dm*ELW|Dc0Mo=xf}5}^YdC_GjzIwmlzXQY}-Raw~Q1={ne ziKaTy-^3;qm~X8dTfYu{IqY*wZEXB}I)+}>(^=4uPwp1vM-EN!^%=4tHebh1S3Q)z2P^M7URz(tC>p00A<6^q}h zETM1w5q~M{Y3{$J@op|vDY;|YIQ7DxNRsW!<#1&3BcR#Oc*VixPRTR64uQ0=bz+kB@Nu+x$sdZLw6e<@yV(TVQmK zQEjR6?TJUnJ{-pNO9cs=3#VS3KBS_Rn(scI>wu6S>4pF@?&4tKGWOiW_;?RUw{8wx zLs=7l{{o}yNYGLNv6ktOvIkKyX=&%SyQRJ<8%1J`D=Z=pLF4}8%EMZt9dGGHm28dB zm>+6fTxmS3la(2l=G88KlivuM5kAyEm^au#=mGGzWOQ}7e>r9egWUH>V%;L#O%wjB zf@*jv35M;Cxe;ZY0nXxHtiENYEBL{W1qoe10im>fnH+VJ$S19CwDWH+@) zHk$PS?5YJ;$(;~@y+W7@6v(jRlQWi;Q%D!E@dS~EKCG+$YkRun^L$Z@cY6q3rQDf0^5_RlAwrOO002^IT^TbCy zvv|V9*-<5R0p;rE=`IJxlcU{gXJ)72YO+Zz4bw-G@#m5uqSRsIk5b5~Z!FVU$i_EwAEO@p0l9N>>nY=%5p)i4|w zA9tg8stVgtoG9bYR7swAB;eK(kuq%rs;&#JR+4~9lVix_m7;?N%Fh1?(7y6f=(@r+ zs8q7c%)tAQ3LBF`*`=QQ3ZDvuc~y(tx}~FcZY*!qQ2il+hl93tZR8g-O=<{jpujFdrjDyE~%=@ewqgCuIoW3vfs^{L? znEAl>KN$Z;o`6Zs95^xUzFU`e^}sd?dcPqGTM`Zf&Qhp#Px;=%hX%;raXOCj44p7} zLf-k@6>_s6c*@lU9MebC<;YH2ik6 zb}X(6tEC>Q<$tdufjoU&N9}PyqNqnl5Qq&AW0Hg~t_IW5dusAlcfK=_k-O^buU~zH zLOBc#W+D?bflV!&z}^t923f&F0!M3$;7xqtj2QI7919CS?XjIy)cDDtfs3cx@C~wJ z-^Or;CNc-_-x>P5gR-GW>&B$=bgl?aQl?Z{M%gL*`UAQ69fp=;&dP(lf&!VcX$}FY z9+{w}wYQ`o({%NM-;uu01uJxp&Dn?Y2#qO~)Ql%HDIxw#vJ~#jCb+JJZkvF^CGDq& zB9BA-4+io)Y*hTeT=8bVOXPLr`>J81pGUJ#_#MxA?}jWxy8kT7kW)!*O_SM0@60~& z4bv7O*80%(Xh3-8-21Zb!1D6?+g_N)!gUJ_0JS#QF><|VE;$l1)xX29bbLze15cR? zVD{*hkvLZFvtHU)-_!q=_dfBzI_X}TrGo2v#&A!!suHF5M}Kfp6KL>f0jvq4cGOm_ z2<5&!%!naoc%wRX>k#R%gO_p9JD?=Bg-c2Pv|j7ug`b8IZlD4o4Mm!WP3N<%_G&*3 zw?W}F=i04x06tNCJscdaj|XR==EIBOG=P|ufrX0hm)Km`4<#pWh?0w zPZc>o-FFyU?SU}x5IviDXF*JWZ}453H~jT@x*CszH;XHBR40+=%aM2+RL;9?!j&fE zbV8GnUnNLjq`mJP(8GzD?wTB83XirIrtA2pcK7YnCjeb#vPegSBSB-D`= zf2Y3-PW0vT4xrvKljJ+*j-h?b<8$Z-y2n61^ugU{Qm^_QJm7{-He1k$#Bg!>8RvR1Zj11#t*%W=#hU)U5^I_WwS&r7IlItg zaT4Z(n|-;QrH@lmQ?Q3#d*q;-={o_SQF*U#tRESGA_!w|$J8}^IyE8Fa6?^Xj(8{c zpC+Lx7PXo}Y8O1|(wXlNW>S6na)rKpul+*k-t;Qc>;d2YU8sC2jt7pQW zr`6h%SRD;dDOPV>D!tE{;WngLg2)@ERW#y*d(z;)@Gt1myu{omGYvDT{xvpc6G6S1 zex>!H_G0^d7to(N?v`ps``e@qH{-2*ua+Eyf#w)pfdxK+4F!1>bAniNlh481a*2jxd~QCqj!A8R{MxOR0iwr)yE_(gkwbAQ9B^}dt; zWO7bXA!FQnyAh?U1o?jymALY}iKajVI4!y-6gk-{gb9$8sFVptqp$^I^o#NLF`qJJvv%n7ONOM~b zsM4AnNU?IpTXV_v2}2xP1>{p%JTGoP^^y&#%UemiA2Ac7Jbnc?PZxP;c2At=+tLXlAGV2i0_dWPxBJGj;lKDy_x`W!^BtgW4H zT+6BECnA|;>3<6W{`Te@O`=baMt_#|n4l(1c64OgWe-R91Lhi~?z_LvC8I3!p{PUx zprQESj!&BlzT|z0>goHK6@)$MywOJl4YHurNkWn?8qxlzJ)Y?D#yUNPH)Q{A5w$?S zeW@TVUMxU3Utnu4iFTW}CuO*-I6?kvcxA%94{~pJhP_EbOCJLCwt;$B!utr6g&r1f zc7EWQs{yYBSr*(DN}`-BM(&#y3KTWV*VtHc4HN%VUnTDTfkYp_5Qyq^v{~SM1uFe_ zyrvp29kaK;5jTpWKa(b)cNbZIqGgX|jQb3<9TN!~fSNpceGDj6{HQQ)zp)>5+bnFb zgP(d;_4Thy?P&Pa+C~A82={r@t>a+p!T!h4@CRlfeB7AZ?pN!!v%&ef@V-R(EV#8W z@QFm|Z-ZKb8m+(Mz;BdmFbG1_R#qh1BSkS`bygTbYn;{gvetBu)a$=1=1=+Hc;u-nZMN{0duC-~!WucGJl0|RI=;W@_7 z6`P#rnzkknGaIgjDwpZ!P+Ep)Q6BAPbCZRs2Jh6Ju^&MR2#`A@s(M`wtM`-=mqgdt z1$nx+#~-RG$-8Ao>$cuF6-A%EzMf6~LU~GR3JHfy74mdT3Y|U2bs3@~{8PA5N@wR` zbwogZ;1Zos(v}0<$7is97RSq{Htz1~Ar1P(^B7;fa48dC^_!s(KUy*7-fK5n=_yaq zU#JdW37vA~Y3XB}#G>MC1U><`;ks>oVL<3NrCMH7VWAG7aA;LYH_t%(7H{R%OU+N0 zTz&mWXfZrQs^v7<^7D()AORh70;)N5&+lYkgB@D?of@JV0e4`podO-89fc}`w!@Un zj{Z0&4`+966#B5K=~{T~4QU=8l|Ydf2iv}j5CCEI=b>PL0_jhg!xesq|4(nkHm z5+MF0j=AJe>2`HspHc^ET6*-OuWy{QSr{K26opC$bme#r{a{D^J_Ly*-Qmjvz`xV^ z@r8pa)FvwbKt*4o@3KH)7#r?;{g=jzH^IS-usPD0R?!1WMKD)Y09>Zj#g5 zlqRd1*nH&yi4Li4Y`jzF{A+EkoE$`Ia;q)yHKE5_>Ab2P`DEhU8!TNBM@hm6=j@WP zs}HR$Jx;|OnC|akC-w}pYpaq0XiDqmO&FJx{VzIv%SKhd>X}md%U4%{PI7pTQMhNRCkPgqdFu@+2PnKG;z7Wpy2na5F zWH|PR18p9vkl^4oFYelx00*TWbg>{=j`?2_p&NG4LAvigo$iv0Hu z-tGpP;j)7NkZv#u4?`4Jw4O?7JV$0chq>=!RaD%*+Osz45pI1o_xc!wkMXQ_C(ufk zzY=WQ5}N45Xse(gH)c3sctFO2QHqvjfHHn&coHoB*xJ_KC-zn7B=2~fWK8k2;3VIS zE{_J&w$mfQ*t5KgQHvD6$tRoH^bm|6;z!gNrxw05v7EKw!)2BlP~&_?MOWBv?VJW-}$1 zJN|5{%44(hBGb~NgTDYm4xh?0D12YXz-j?+p*KwPM|OhF4)hER(TI1EQh4BEJ57TI zV>zUH7P?!+Vhi|h6|IB;B`r{Ytx#8iUgA@u9Ex7&dR2bnC&;g)>RAOJx2JvwRM_{q z9xqt{liIo9wBS1yi#-6*@t3QE-rHZ-@ZDRpIrhs}LEQz7h5n#NwVx7spt%*&h4<(5 zk{er|-et5QTR2)i1R>n88h+l1Kw+eBUI7992?TwGz*Ag^hhF9rAV($cKy62zKaAOI zW7{fNZ}4^Lotep%PwKiO)@4`sY4@tGNG>XG zYHg}%;v|>W4t^}HwRka}xgNW-A|qcdq0%1mh!X7t2GSIJ0>^5#PP_@yY3A^^qK091 zgY{rYmo_OJE0jonY&PQmPZ!bp(M{!%(Bfe_vz9)0u*l=*{`A2+8;2NX?Q?AH`d$BY zZ+`4_35|>B4Qoul4+(bIzG(diorsvQku*I3R||f31S;U7UsN*n>@4c0hO}h?wDBMb zBlj6sZl(#_iJ;!qn8kwpLxS_t_mREn6VUWIP>keERw-E@t8!UGoOT>3 z=o6T|%5EnvA+f|Zv8o9>eew@}q2s58r=!p>R zBK@Qdfn`92HZuXGE^cH`WvgQ>A4O>Z~fYX zkMBJ7GOmUml;3yj(VpwT7xibSzu*wCjRYK=T-`qs9Gpo&*pT0^BpUwk!eByoarJj0 zs4r&}%FOBm`mhm5H`r~RxPJe(xn5Ua?ZxoHMd+oP4_k-tzXVJDVPl;K!!}0VCi0js zet(y=7_Ts;e=S5;ucHS5U7YK*#ePsnZZN7lg?yB~@8|d3zQM5yqEG1bnHjzWZ-qf~|OQ)4mkeqRASzyDCSK{gt^ru0q%#`s@bKYJgBKexMp2 zr0wd@QWkzOe2R9Q@UQGny>QfvI)_rbwWE)Ll+$Stg30@PK{#~7&@eW;%T^k;F_YH- zfCbk$Scg?X)X*wyd_jS*kL#~xd-Q;?#}x$IXBQWJ@Dx{^lY-o9a_Q$rKGxoLWY2^j zA2A@$l1<fc9FsCAf#XKb8Su~RaWZZ@8Sm`xBX6)@g9%N%aA*paE5Gpc zFx)!u<=^27wWopfL0wPjxLLyb7_#Fu{XFh0J-&Z@{C#6xiNcvFoTS}^T4&M_2%sT_NouwT_XGpP?MLJ zpByTJV5(fy9+fd>VUroXy#2}*ly{UqHF4!y`4DGkhecM@cHs%ygykVf$i#FbzT;Zw z2AIdVzTMxvELYfu4{qWX&Yw7b5W>>L{cZ6_Q0P`Cbnmd%Lk)hki|KPy&H<>>Uy`>z zjqXY?T6RwP0VRou1BK0>QSb*V(=VGEW~=&%4MR}N{Ve)?27lk@m;)zB9YoD@detT$ zh2g!Upzeo!*y8mYSUAijHKyPHOLVF7kw4jo??FRGbs2X{5_UbEc9e{BYMYgtefRts zryUinRbYpL4v?~7j2C-_0@Ebw2;p#Jb{pe$wqiQI$vKkZKh2svLHfn*2jqfV41K|a zx`2kio1v8Fq2a z_D=c5W!uX2uCCZ?FEtfYp=O@&y;gUJzqVZX<0dVdl4zQCr`y$ z@NG1%qdY?_xM{QCx_7(opPl$m-$X1Q1K#4b6^TpI+Zk!g5^K1Q<7KcLBU61OvjmS>d4%t({527*Hq47bKp`8jsnNj{xdBtb4EU zSqb>Rjt3^tCZe0AnArY|TUMgfpT~U`Ihga}hqrLyCbFb7%wy6BU&BsqTA;6x?H0wn zGwKn`{g4MEoeDdH(`l}aVc&VvJ@ZSpkJ_$VcI7(pWFJ=!%?U&4pFX;+~o*j(?`~}wmu*l zDkr37>ij2b`q#kka5K_sC#Uv-Vddc!EF_aLwEZxGsHtO#DbRRjIwr=hgh-4txS`LY zpZX|!wCwSY1@zx`R~lHe0H4HAo3~6IjryPyvwd_tX6!+5O&49tdiZhAu^WRj zSEr!=dR8=1^u&o%$_CmRH_2tw%JoV6;;8&=oceUp=flHB!c4@k2BA6>Y8?g08}?xX zXa7%s1wL0LT_QRMlaN9(BSEkU&?yU^Nfx{qWU@yld`t54o4w2hHxam1g&A^&s#rtz zS0EX%BTGeAu^)G%o%m)Z0#=SvB)2JvC3cUsVa)idb*^zfX%F%u<1C+%GH7hhCmyA` z;bDvYUIhkwr022t?Eg$j{|}?J!$raNmuY5QCavZ-HqvUk*JYr~8ja%%ee`cmXx>48 zUeO-%Ye=NIaZ`A3B%ic&BqJ!UHRQjyqAq5kC(6P^%{D+ZS579xs#HL|zOWh03%`KZ z`wLcS@aBNX(|jFJ*S#DaTL2^xY1>OYDk6MytC`GD@Sgk{H>73&uIrNds#`8SStLKPY=1GVrDTaJ>Xc@8_k=C!&Q$FN*=30NZzp~5H_&DKY z3N?pXp{3Xgn@n$T@kXJcEe zsN)(x_w>YpYt$FSYKW0Lodf{NGo2-Vva<`3+xq21_J57P2Gg+Pl1{`N&iTpN(2-N~ znxMcB3+F~wcbzU{q6dEPu`eANj~Q$5uNo7FQ7#m`cOm&C zc4n=UmhAz26hj6a;VM>6A|H)6$e(cfna;72+fY>>e|K<(-o!LDD?-JFjXS2ARx+5u zRmn$k3K;?~(GY%k0#?iXzZn=!OFFdD*OfHEvkPg02ilVK^(5}3`Gb4Tm?r+bA^1nP zoIT##>+hT?Asebl3||psPDDxnkN*kg{JJ2{=H;M?MaBEAoNA004K-`aiyg zVI<+M{9m?)WJpP(>ioxV9D;ttgT1;7o=PplPOa3;~V>rV~cL+v$yZPHBgKGW%4C-%} z3wVyxMqow4O=TE?$w;$<5GOU@oO`OIRPAxqr!{%bjJ`_|l~&(XcAC1Lwk5`OnhBYp zMRjXfR@{jsqo)5lym8|ui;f8r#w>U9%@|bxp1czW3z2e0S!$*)2Mog>rxXuwKajcw>U#ofLXen@bT1h3eTy zbs+%Ew6*hA_2l^~BgIWZue=?}(EDqBU7v!5`PYum6$U+7- ze%#wBKcGbbm_SE?!ufbw7t_9hnyOg1Cr{9RPZJSeI59dp%5~8&zra@Pr|E)`DT|2{ z=|C`V)9T+kDqf3yZ-@3baj_}z&QHIsB-Gx8(a2YzrH-U=J${$mg)06e`MYD8C}qD= zbMy#SS4S2KF1}Z!i!VxqbS#b;J@wu``TO%rw~$BCbNQQ_o3n_29{h8#f3uZGwKa#- z4SVmJt;Rp%KPEIEhafBVk}~e2;&Qs0fwcLwy9@p$#kE(t?=(oBIpdNWubd@muV3D@ zI-{Cmx@wzAdK9sk^x~6N4Y<*OudbAPIj>`MNO6Z-=@{wOu6=p-is{keU`2Nu$#XY% z*Uqs1eYsDNQ*gY_R$YEuRCG#JlH!jCkIPoC8uRO2EK4>H&1AtJpHe$=3-Z`uw>Sa5 O40MdOKWg57^8WyH7Z8^K diff --git a/frontend/src/views/Settings/OrgSettingsPage/components/OrgAuthTab/SSOModal.tsx b/frontend/src/views/Settings/OrgSettingsPage/components/OrgAuthTab/SSOModal.tsx index 582205214..6257ffa6f 100644 --- a/frontend/src/views/Settings/OrgSettingsPage/components/OrgAuthTab/SSOModal.tsx +++ b/frontend/src/views/Settings/OrgSettingsPage/components/OrgAuthTab/SSOModal.tsx @@ -62,7 +62,7 @@ export const SSOModal = ({ popUp, handlePopUpClose, handlePopUpToggle, hideDelet const [isDeletePopupOpen, setIsDeletePopupOpen] = useToggle(); const { data } = useGetSSOConfig(currentOrg?.id ?? ""); - const { control, handleSubmit, reset, watch } = useForm({ + const { control, handleSubmit, reset, watch, setValue, getValues } = useForm({ defaultValues: { authProvider: AuthProvider.OKTA_SAML }, @@ -188,8 +188,8 @@ export const SSOModal = ({ popUp, handlePopUpClose, handlePopUpToggle, hideDelet entityId: "SP Entity ID", entryPoint: "SSO URL", entryPointPlaceholder: "https://accounts.google.com/o/saml2/idp?idpid=xxx", - issuer: "IdP Entity ID", - issuerPlaceholder: "https://accounts.google.com/o/saml2/idp?idpid=xxx" + issuer: "Issuer", + issuerPlaceholder: window.origin }; default: return { @@ -204,6 +204,11 @@ export const SSOModal = ({ popUp, handlePopUpClose, handlePopUpToggle, hideDelet }; const authProvider = watch("authProvider"); + useEffect(() => { + if (authProvider === AuthProvider.GOOGLE_SAML && getValues("issuer") === "") { + setValue("issuer", window.origin); + } + }, [authProvider]); return ( <> From 32a84471f2ccfe7a630d0ea425bc30f5da80a63e Mon Sep 17 00:00:00 2001 From: = Date: Fri, 9 Aug 2024 21:02:26 +0530 Subject: [PATCH 48/71] feat: added a new batch insert operation to convert inserts into chunks and updated secret migration --- backend/src/lib/knex/index.ts | 10 ++++++++++ backend/src/services/secret-tag/secret-tag-dal.ts | 2 +- .../secret-v2-bridge/secret-v2-bridge-dal.ts | 2 +- backend/src/services/secret/secret-queue.ts | 14 +++++++------- 4 files changed, 19 insertions(+), 9 deletions(-) diff --git a/backend/src/lib/knex/index.ts b/backend/src/lib/knex/index.ts index dcab16218..cbf5db3b0 100644 --- a/backend/src/lib/knex/index.ts +++ b/backend/src/lib/knex/index.ts @@ -128,6 +128,16 @@ export const ormify = (db: Kne throw new DatabaseError({ error, name: "Create" }); } }, + // This spilit the insert into multiple chunk + batchInsert: async (data: readonly Tables[Tname]["insert"][], tx?: Knex) => { + try { + if (!data.length) return []; + const res = await (tx || db).batchInsert(tableName, data as never).returning("*"); + return res as Tables[Tname]["base"][]; + } catch (error) { + throw new DatabaseError({ error, name: "batchInsert" }); + } + }, upsert: async (data: readonly Tables[Tname]["insert"][], onConflictField: keyof Tables[Tname]["base"], tx?: Knex) => { try { if (!data.length) return []; diff --git a/backend/src/services/secret-tag/secret-tag-dal.ts b/backend/src/services/secret-tag/secret-tag-dal.ts index d1f149f35..1df64afa2 100644 --- a/backend/src/services/secret-tag/secret-tag-dal.ts +++ b/backend/src/services/secret-tag/secret-tag-dal.ts @@ -51,7 +51,7 @@ export const secretTagDALFactory = (db: TDbClient) => { ...secretTagOrm, saveTagsToSecret: secretJnTagOrm.insertMany, deleteTagsToSecret: secretJnTagOrm.delete, - saveTagsToSecretV2: secretV2JnTagOrm.insertMany, + saveTagsToSecretV2: secretV2JnTagOrm.batchInsert, deleteTagsToSecretV2: secretV2JnTagOrm.delete, findSecretTagsByProjectId, deleteTagsManySecret, diff --git a/backend/src/services/secret-v2-bridge/secret-v2-bridge-dal.ts b/backend/src/services/secret-v2-bridge/secret-v2-bridge-dal.ts index 53ad29b17..fe4d89bac 100644 --- a/backend/src/services/secret-v2-bridge/secret-v2-bridge-dal.ts +++ b/backend/src/services/secret-v2-bridge/secret-v2-bridge-dal.ts @@ -287,7 +287,7 @@ export const secretV2BridgeDALFactory = (db: TDbClient) => { })) ); if (!newSecretReferences.length) return; - const secretReferences = await (tx || db)(TableName.SecretReferenceV2).insert(newSecretReferences); + const secretReferences = await (tx || db).batchInsert(TableName.SecretReferenceV2, newSecretReferences); return secretReferences; } catch (error) { throw new DatabaseError({ error, name: "UpsertSecretReference" }); diff --git a/backend/src/services/secret/secret-queue.ts b/backend/src/services/secret/secret-queue.ts index 28053f4b3..de437a6a5 100644 --- a/backend/src/services/secret/secret-queue.ts +++ b/backend/src/services/secret/secret-queue.ts @@ -73,12 +73,12 @@ type TSecretQueueFactoryDep = { secretVersionTagDAL: TSecretVersionTagDALFactory; kmsService: Pick; secretV2BridgeDAL: TSecretV2BridgeDALFactory; - secretVersionV2BridgeDAL: Pick; - secretVersionTagV2BridgeDAL: Pick; + secretVersionV2BridgeDAL: Pick; + secretVersionTagV2BridgeDAL: Pick; secretRotationDAL: Pick; secretApprovalRequestDAL: Pick; snapshotDAL: Pick; - snapshotSecretV2BridgeDAL: Pick; + snapshotSecretV2BridgeDAL: Pick; }; export type TGetSecrets = { @@ -828,7 +828,7 @@ export const secretQueueFactory = ({ secretId: string; references: { environment: string; secretPath: string; secretKey: string }[]; }[] = []; - await secretV2BridgeDAL.insertMany( + await secretV2BridgeDAL.batchInsert( projectV1Secrets.map((el) => { const key = decryptSymmetric128BitHexKeyUTF8({ ciphertext: el.secretKeyCiphertext, @@ -1004,14 +1004,14 @@ export const secretQueueFactory = ({ const projectV3SecretVersions = Object.values(projectV3SecretVersionsGroupById); if (projectV3SecretVersions.length) { - await secretVersionV2BridgeDAL.insertMany(projectV3SecretVersions, tx); + await secretVersionV2BridgeDAL.batchInsert(projectV3SecretVersions, tx); } if (projectV3SecretVersionTags.length) { - await secretVersionTagV2BridgeDAL.insertMany(projectV3SecretVersionTags, tx); + await secretVersionTagV2BridgeDAL.batchInsert(projectV3SecretVersionTags, tx); } if (projectV3SnapshotSecrets.length) { - await snapshotSecretV2BridgeDAL.insertMany(projectV3SnapshotSecrets, tx); + await snapshotSecretV2BridgeDAL.batchInsert(projectV3SnapshotSecrets, tx); } await snapshotDAL.deleteSnapshotsAboveLimit(folderId, SNAPSHOT_BATCH_SIZE, tx); } From 3bc920c593f2ea65c45834a80a1c09fd0b4a0c72 Mon Sep 17 00:00:00 2001 From: Ayush Dutt Sharma Date: Sat, 10 Aug 2024 15:36:43 +0530 Subject: [PATCH 49/71] better logging and while loop for ask propmt again --- backend/scripts/create-backend-file.ts | 21 ++++++++++++++++++++- 1 file changed, 20 insertions(+), 1 deletion(-) diff --git a/backend/scripts/create-backend-file.ts b/backend/scripts/create-backend-file.ts index fb71994ce..39e9c816c 100644 --- a/backend/scripts/create-backend-file.ts +++ b/backend/scripts/create-backend-file.ts @@ -7,14 +7,33 @@ const prompt = promptSync({ sigint: true }); +type ComponentType = 1 | 2 | 3; + console.log(` Component List -------------- +0. Exit 1. Service component 2. DAL component 3. Router component `); -const componentType = parseInt(prompt("Select a component: "), 10); + +function getComponentType(): ComponentType { + while (true) { + const input = prompt("Select a component (0-3): "); + const componentType = parseInt(input, 10); + + if (componentType === 0) { + console.log("Exiting the program. Goodbye!"); + process.exit(0); + } else if (componentType === 1 || componentType === 2 || componentType === 3) { + return componentType; + } else { + console.log("Invalid input. Please enter 0, 1, 2, or 3."); + } + } +} +const componentType = getComponentType(); if (componentType === 1) { const componentName = prompt("Enter service name: "); From 541a2e7d059576a8e8f1229d913cc0e28f163432 Mon Sep 17 00:00:00 2001 From: Ayush Dutt Sharma Date: Sun, 11 Aug 2024 14:10:49 +0530 Subject: [PATCH 50/71] replaced "creditnals" to "credentials" --- cli/packages/util/credentials.go | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/cli/packages/util/credentials.go b/cli/packages/util/credentials.go index be49e9267..cb5b94080 100644 --- a/cli/packages/util/credentials.go +++ b/cli/packages/util/credentials.go @@ -71,7 +71,7 @@ func GetCurrentLoggedInUserDetails() (LoggedInUserDetails, error) { if strings.Contains(err.Error(), "credentials not found in system keyring") { return LoggedInUserDetails{}, errors.New("we couldn't find your logged in details, try running [infisical login] then try again") } else { - return LoggedInUserDetails{}, fmt.Errorf("failed to fetch creditnals from keyring because [err=%s]", err) + return LoggedInUserDetails{}, fmt.Errorf("failed to fetch credentials from keyring because [err=%s]", err) } } From a4bbe2c612212e5c68314eaa2cd6454cf7c0c799 Mon Sep 17 00:00:00 2001 From: MohamadTahir Date: Sun, 11 Aug 2024 16:46:48 +0300 Subject: [PATCH 51/71] fix the client site url & the creation of new variable instead of updating the previous initiated variable --- k8-operator/controllers/infisicalsecret_helper.go | 5 +++-- 1 file changed, 3 insertions(+), 2 deletions(-) diff --git a/k8-operator/controllers/infisicalsecret_helper.go b/k8-operator/controllers/infisicalsecret_helper.go index acb8b9e76..d13eba866 100644 --- a/k8-operator/controllers/infisicalsecret_helper.go +++ b/k8-operator/controllers/infisicalsecret_helper.go @@ -294,7 +294,7 @@ func (r *InfisicalSecretReconciler) GetResourceVariables(infisicalSecret v1alpha if _, ok := resourceVariablesMap[string(infisicalSecret.UID)]; !ok { client := infisicalSdk.NewInfisicalClient(infisicalSdk.Config{ - SiteUrl: infisicalSecret.Spec.HostAPI, + SiteUrl: api.API_HOST_URL, UserAgent: api.USER_AGENT_NAME, }) @@ -322,10 +322,11 @@ func (r *InfisicalSecretReconciler) ReconcileInfisicalSecret(ctx context.Context resourceVariables := r.GetResourceVariables(infisicalSecret) infisicalClient := resourceVariables.infisicalClient authDetails := resourceVariables.authDetails + var err error if authDetails.authStrategy == "" { fmt.Println("ReconcileInfisicalSecret: No authentication strategy found. Attempting to authenticate") - authDetails, err := r.HandleAuthentication(ctx, infisicalSecret, infisicalClient) + authDetails, err = r.HandleAuthentication(ctx, infisicalSecret, infisicalClient) r.SetInfisicalTokenLoadCondition(ctx, &infisicalSecret, authDetails.authStrategy, err) if err != nil { From 61791e385cbb288a7b23375ff7a5abcc789d3d92 Mon Sep 17 00:00:00 2001 From: Maidul Islam Date: Sun, 11 Aug 2024 10:34:15 -0400 Subject: [PATCH 52/71] update chart version of k8 --- helm-charts/secrets-operator/Chart.yaml | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/helm-charts/secrets-operator/Chart.yaml b/helm-charts/secrets-operator/Chart.yaml index 2247b79b0..f28a99ce1 100644 --- a/helm-charts/secrets-operator/Chart.yaml +++ b/helm-charts/secrets-operator/Chart.yaml @@ -13,9 +13,9 @@ type: application # This is the chart version. This version number should be incremented each time you make changes # to the chart and its templates, including the app version. # Versions are expected to follow Semantic Versioning (https://semver.org/) -version: v0.7.0 +version: v0.7.1 # This is the version number of the application being deployed. This version number should be # incremented each time you make changes to the application. Versions are not expected to # follow Semantic Versioning. They should reflect the version the application is using. # It is recommended to use it with quotes. -appVersion: "v0.7.0" +appVersion: "v0.7.1" From 16807c3dd68dbc95a788f140b0a76586625ca087 Mon Sep 17 00:00:00 2001 From: Maidul Islam Date: Sun, 11 Aug 2024 13:09:22 -0400 Subject: [PATCH 53/71] update k8s helm chart image tag --- helm-charts/secrets-operator/values.yaml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/helm-charts/secrets-operator/values.yaml b/helm-charts/secrets-operator/values.yaml index f69d2e91c..d0109f673 100644 --- a/helm-charts/secrets-operator/values.yaml +++ b/helm-charts/secrets-operator/values.yaml @@ -32,7 +32,7 @@ controllerManager: - ALL image: repository: infisical/kubernetes-operator - tag: v0.6.5 + tag: v0.7.1 resources: limits: cpu: 500m From cb8e4d884e31f1aa1c3e194e52b0c033fa1f81f3 Mon Sep 17 00:00:00 2001 From: Maidul Islam Date: Sun, 11 Aug 2024 23:17:46 -0400 Subject: [PATCH 54/71] add equipment details to handbook --- company/handbook/spending-money.mdx | 40 +++++++++++++++++++++++++++-- 1 file changed, 38 insertions(+), 2 deletions(-) diff --git a/company/handbook/spending-money.mdx b/company/handbook/spending-money.mdx index 667ed5ef2..854e36b49 100644 --- a/company/handbook/spending-money.mdx +++ b/company/handbook/spending-money.mdx @@ -6,9 +6,11 @@ description: "The guide to spending money at Infisical." Fairly frequently, you might run into situations when you need to spend company money. -**Please spend money in a way that you think is in the best interest of the company.** + +Please spend money in a way that you think is in the best interest of the company. + -## Trivial expenses +# Trivial expenses We don't want you to be slowed down because you're waiting for an approval to purchase some SaaS. For trivial expenses – **Just do it**. @@ -22,6 +24,40 @@ Make sure you keep copies for all receipts. If you expense something on a compan You should default to using your company card in all cases - it has no transaction fees. If using your personal card is unavoidable, please reach out to Maidul to get it reimbursed manually. + +# Equipment + +Infisical is a remote first company so we understand the importance of having a comfortable work setup. To support this, we provide allowances for essential office equipment. + +### Desk & Chair + +Most people already have a comfortable desk and chair, but if you need an upgrade, Infisical offers the following allowances. +While we're not yet able to provide the latest and greatest, we strive to be reasonable given the stage of our company. + +**Desk**: $150 USD + +**Chair**: $150 USD + +### Laptop +- Each team member will get a company issues Macbook Pro before they start their first day. + +### Headphones +- If you require noise-cancelling headphones for your work environment, discuss your needs with your manager. + + +### Important Notes + +1. All equipment purchased using company allowances remains the property of Infisical. +2. Keep all receipts for equipment purchases and submit them for reimbursement. +3. If you leave Infisical, you may be required to return company-owned equipment. + +Please note that Infisical is unable to offer a split payment option where the company pays half and the employee pays half for equipment exceeding the allowance. +This is due to the absence of a formal HR department, which would make such arrangements logistically challenging to manage and track. +If you require equipment that exceeds the provided allowance, please discuss alternative options with your manager. + +For any questions or special requirements, please reach out to your direct supervisor or the operations team. + + ## Brex We use Brex as our primary credit card provider. Don't have a company card yet? Reach out to Maidul. \ No newline at end of file From 9017a5e838a44e891f08a18704572f9127cba082 Mon Sep 17 00:00:00 2001 From: Maidul Islam Date: Mon, 12 Aug 2024 01:29:45 -0400 Subject: [PATCH 55/71] Update spending-money.mdx --- company/handbook/spending-money.mdx | 17 ++++++----------- 1 file changed, 6 insertions(+), 11 deletions(-) diff --git a/company/handbook/spending-money.mdx b/company/handbook/spending-money.mdx index 854e36b49..ac2980ec2 100644 --- a/company/handbook/spending-money.mdx +++ b/company/handbook/spending-money.mdx @@ -31,7 +31,7 @@ Infisical is a remote first company so we understand the importance of having a ### Desk & Chair -Most people already have a comfortable desk and chair, but if you need an upgrade, Infisical offers the following allowances. +Most people already have a comfortable desk and chair, but if you need an upgrade, we offer the following allowances. While we're not yet able to provide the latest and greatest, we strive to be reasonable given the stage of our company. **Desk**: $150 USD @@ -39,23 +39,18 @@ While we're not yet able to provide the latest and greatest, we strive to be rea **Chair**: $150 USD ### Laptop -- Each team member will get a company issues Macbook Pro before they start their first day. +- Each team member will receive a company issued Macbook Pro before they start their first day. -### Headphones -- If you require noise-cancelling headphones for your work environment, discuss your needs with your manager. - - -### Important Notes +### Notes 1. All equipment purchased using company allowances remains the property of Infisical. 2. Keep all receipts for equipment purchases and submit them for reimbursement. 3. If you leave Infisical, you may be required to return company-owned equipment. -Please note that Infisical is unable to offer a split payment option where the company pays half and the employee pays half for equipment exceeding the allowance. -This is due to the absence of a formal HR department, which would make such arrangements logistically challenging to manage and track. -If you require equipment that exceeds the provided allowance, please discuss alternative options with your manager. +Please note that we're unable to offer a split payment option where the Infisical pays half and you pay half for equipment exceeding the allowance. +This is because we don't yet have a formal HR department to handle such logistics. -For any questions or special requirements, please reach out to your direct supervisor or the operations team. +For any equipment related questions, please reach out to Maidul. ## Brex From 6afc17b84b88952f85f26b911116948cd91a46fc Mon Sep 17 00:00:00 2001 From: = Date: Mon, 12 Aug 2024 13:19:25 +0530 Subject: [PATCH 56/71] feat: implemented universal auth client secret cleanup in resource cleanup queue --- .../ee/services/audit-log/audit-log-dal.ts | 14 +++-- backend/src/server/routes/index.ts | 3 +- .../identity-ua-client-secret-dal.ts | 56 ++++++++++++++++++- .../resource-cleanup-queue.ts | 6 +- 4 files changed, 71 insertions(+), 8 deletions(-) diff --git a/backend/src/ee/services/audit-log/audit-log-dal.ts b/backend/src/ee/services/audit-log/audit-log-dal.ts index 316cf34a5..9d181e1aa 100644 --- a/backend/src/ee/services/audit-log/audit-log-dal.ts +++ b/backend/src/ee/services/audit-log/audit-log-dal.ts @@ -75,15 +75,19 @@ export const auditLogDALFactory = (db: TDbClient) => { .del() .returning("id"); numberOfRetryOnFailure = 0; // reset - // eslint-disable-next-line no-await-in-loop - await new Promise((resolve) => { - setTimeout(resolve, 100); // time to breathe for db - }); } catch (error) { numberOfRetryOnFailure += 1; logger.error(error, "Failed to delete audit log on pruning"); + } finally { + // eslint-disable-next-line no-await-in-loop + await new Promise((resolve) => { + setTimeout(resolve, 10); // time to breathe for db + }); } - } while (deletedAuditLogIds.length > 0 && numberOfRetryOnFailure < MAX_RETRY_ON_FAILURE); + } while ( + deletedAuditLogIds.length > 0 || + (numberOfRetryOnFailure > 0 && numberOfRetryOnFailure < MAX_RETRY_ON_FAILURE) + ); }; return { ...auditLogOrm, pruneAuditLog, find }; diff --git a/backend/src/server/routes/index.ts b/backend/src/server/routes/index.ts index 2902dad94..5116261d5 100644 --- a/backend/src/server/routes/index.ts +++ b/backend/src/server/routes/index.ts @@ -1037,7 +1037,8 @@ export const registerRoutes = async ( snapshotDAL, identityAccessTokenDAL, secretSharingDAL, - secretVersionV2DAL: secretVersionV2BridgeDAL + secretVersionV2DAL: secretVersionV2BridgeDAL, + identityUniversalAuthClientSecretDAL: identityUaClientSecretDAL }); const oidcService = oidcConfigServiceFactory({ diff --git a/backend/src/services/identity-ua/identity-ua-client-secret-dal.ts b/backend/src/services/identity-ua/identity-ua-client-secret-dal.ts index 6310da97a..4e35f6232 100644 --- a/backend/src/services/identity-ua/identity-ua-client-secret-dal.ts +++ b/backend/src/services/identity-ua/identity-ua-client-secret-dal.ts @@ -4,6 +4,7 @@ import { TDbClient } from "@app/db"; import { TableName } from "@app/db/schemas"; import { DatabaseError } from "@app/lib/errors"; import { ormify } from "@app/lib/knex"; +import { logger } from "@app/lib/logger"; export type TIdentityUaClientSecretDALFactory = ReturnType; @@ -23,5 +24,58 @@ export const identityUaClientSecretDALFactory = (db: TDbClient) => { } }; - return { ...uaClientSecretOrm, incrementUsage }; + const removeExpiredClientSecrets = async (tx?: Knex) => { + const BATCH_SIZE = 10000; + const MAX_RETRY_ON_FAILURE = 3; + + let deletedClientSecret: { id: string }[] = []; + let numberOfRetryOnFailure = 0; + + do { + try { + const findExpiredClientSecretQuery = (tx || db)(TableName.IdentityUaClientSecret) + .where({ + isClientSecretRevoked: true + }) + .orWhere((qb) => { + void qb + .where("clientSecretNumUses", ">", 0) + .andWhere( + "clientSecretNumUses", + ">=", + db.ref("clientSecretNumUsesLimit").withSchema(TableName.IdentityUaClientSecret) + ); + }) + .orWhere((qb) => { + void qb + .where("clientSecretTTL", ">", 0) + .andWhereRaw( + `"${TableName.IdentityUaClientSecret}"."createdAt" + make_interval(secs => "${TableName.IdentityUaClientSecret}"."clientSecretTTL") < NOW()` + ); + }) + .select("id") + .limit(BATCH_SIZE); + + // eslint-disable-next-line no-await-in-loop + deletedClientSecret = await (tx || db)(TableName.IdentityUaClientSecret) + .whereIn("id", findExpiredClientSecretQuery) + .del() + .returning("id"); + numberOfRetryOnFailure = 0; // reset + } catch (error) { + numberOfRetryOnFailure += 1; + logger.error(error, "Failed to delete client secret on pruning"); + } finally { + // eslint-disable-next-line no-await-in-loop + await new Promise((resolve) => { + setTimeout(resolve, 10); // time to breathe for db + }); + } + } while ( + deletedClientSecret.length > 0 || + (numberOfRetryOnFailure > 0 && numberOfRetryOnFailure < MAX_RETRY_ON_FAILURE) + ); + }; + + return { ...uaClientSecretOrm, incrementUsage, removeExpiredClientSecrets }; }; diff --git a/backend/src/services/resource-cleanup/resource-cleanup-queue.ts b/backend/src/services/resource-cleanup/resource-cleanup-queue.ts index cb9756dd4..dab70806f 100644 --- a/backend/src/services/resource-cleanup/resource-cleanup-queue.ts +++ b/backend/src/services/resource-cleanup/resource-cleanup-queue.ts @@ -4,6 +4,7 @@ import { logger } from "@app/lib/logger"; import { QueueJobs, QueueName, TQueueServiceFactory } from "@app/queue"; import { TIdentityAccessTokenDALFactory } from "../identity-access-token/identity-access-token-dal"; +import { TIdentityUaClientSecretDALFactory } from "../identity-ua/identity-ua-client-secret-dal"; import { TSecretVersionDALFactory } from "../secret/secret-version-dal"; import { TSecretFolderVersionDALFactory } from "../secret-folder/secret-folder-version-dal"; import { TSecretSharingDALFactory } from "../secret-sharing/secret-sharing-dal"; @@ -12,6 +13,7 @@ import { TSecretVersionV2DALFactory } from "../secret-v2-bridge/secret-version-d type TDailyResourceCleanUpQueueServiceFactoryDep = { auditLogDAL: Pick; identityAccessTokenDAL: Pick; + identityUniversalAuthClientSecretDAL: Pick; secretVersionDAL: Pick; secretVersionV2DAL: Pick; secretFolderVersionDAL: Pick; @@ -30,12 +32,14 @@ export const dailyResourceCleanUpQueueServiceFactory = ({ secretFolderVersionDAL, identityAccessTokenDAL, secretSharingDAL, - secretVersionV2DAL + secretVersionV2DAL, + identityUniversalAuthClientSecretDAL }: TDailyResourceCleanUpQueueServiceFactoryDep) => { queueService.start(QueueName.DailyResourceCleanUp, async () => { logger.info(`${QueueName.DailyResourceCleanUp}: queue task started`); await auditLogDAL.pruneAuditLog(); await identityAccessTokenDAL.removeExpiredTokens(); + await identityUniversalAuthClientSecretDAL.removeExpiredClientSecrets(); await secretSharingDAL.pruneExpiredSharedSecrets(); await snapshotDAL.pruneExcessSnapshots(); await secretVersionDAL.pruneExcessVersions(); From 897ce1f267f45c63d76e2ef3ff1b220c85b714f5 Mon Sep 17 00:00:00 2001 From: = Date: Mon, 12 Aug 2024 13:19:55 +0530 Subject: [PATCH 57/71] chore: new reviewable command in root make file to check all the entities lint and type error --- Makefile | 13 +++++++++++++ 1 file changed, 13 insertions(+) diff --git a/Makefile b/Makefile index 11143162e..aec2dad74 100644 --- a/Makefile +++ b/Makefile @@ -15,3 +15,16 @@ up-prod: down: docker compose -f docker-compose.dev.yml down + +reviewable-ui: + cd frontend && \ + npm run lint:fix && \ + npm run type:check + +reviewable-api: + cd backend && \ + npm run lint:fix && \ + npm run type:check + +reviewable: reviewable-ui reviewable-api + From 5f2cd04f46ab7cc706d60779db9e18f6ff0dd138 Mon Sep 17 00:00:00 2001 From: = Date: Mon, 12 Aug 2024 20:29:05 +0530 Subject: [PATCH 58/71] feat: removed not needed condition --- backend/src/ee/services/audit-log/audit-log-dal.ts | 5 +---- .../services/identity-ua/identity-ua-client-secret-dal.ts | 5 +---- 2 files changed, 2 insertions(+), 8 deletions(-) diff --git a/backend/src/ee/services/audit-log/audit-log-dal.ts b/backend/src/ee/services/audit-log/audit-log-dal.ts index 9d181e1aa..249e239c5 100644 --- a/backend/src/ee/services/audit-log/audit-log-dal.ts +++ b/backend/src/ee/services/audit-log/audit-log-dal.ts @@ -84,10 +84,7 @@ export const auditLogDALFactory = (db: TDbClient) => { setTimeout(resolve, 10); // time to breathe for db }); } - } while ( - deletedAuditLogIds.length > 0 || - (numberOfRetryOnFailure > 0 && numberOfRetryOnFailure < MAX_RETRY_ON_FAILURE) - ); + } while (deletedAuditLogIds.length > 0 || numberOfRetryOnFailure < MAX_RETRY_ON_FAILURE); }; return { ...auditLogOrm, pruneAuditLog, find }; diff --git a/backend/src/services/identity-ua/identity-ua-client-secret-dal.ts b/backend/src/services/identity-ua/identity-ua-client-secret-dal.ts index 4e35f6232..ec0fd6fbf 100644 --- a/backend/src/services/identity-ua/identity-ua-client-secret-dal.ts +++ b/backend/src/services/identity-ua/identity-ua-client-secret-dal.ts @@ -71,10 +71,7 @@ export const identityUaClientSecretDALFactory = (db: TDbClient) => { setTimeout(resolve, 10); // time to breathe for db }); } - } while ( - deletedClientSecret.length > 0 || - (numberOfRetryOnFailure > 0 && numberOfRetryOnFailure < MAX_RETRY_ON_FAILURE) - ); + } while (deletedClientSecret.length > 0 || numberOfRetryOnFailure < MAX_RETRY_ON_FAILURE); }; return { ...uaClientSecretOrm, incrementUsage, removeExpiredClientSecrets }; From df07d7b6d76a6cadaf1dff6dbe368a2bbc80f9d5 Mon Sep 17 00:00:00 2001 From: Maidul Islam Date: Mon, 12 Aug 2024 11:34:32 -0400 Subject: [PATCH 59/71] update spending docs --- company/handbook/spending-money.mdx | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/company/handbook/spending-money.mdx b/company/handbook/spending-money.mdx index ac2980ec2..d9ea4c535 100644 --- a/company/handbook/spending-money.mdx +++ b/company/handbook/spending-money.mdx @@ -39,7 +39,7 @@ While we're not yet able to provide the latest and greatest, we strive to be rea **Chair**: $150 USD ### Laptop -- Each team member will receive a company issued Macbook Pro before they start their first day. +Each team member will receive a company-issued Macbook Pro before they start their first day. ### Notes From 3fcc3ccff4f96f07d68cf53f52adb0894bc5fd0f Mon Sep 17 00:00:00 2001 From: Maidul Islam Date: Mon, 12 Aug 2024 12:41:15 -0400 Subject: [PATCH 60/71] fix spending money tpyo --- company/handbook/spending-money.mdx | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/company/handbook/spending-money.mdx b/company/handbook/spending-money.mdx index d9ea4c535..046604399 100644 --- a/company/handbook/spending-money.mdx +++ b/company/handbook/spending-money.mdx @@ -1,5 +1,5 @@ --- -title: "Spenging Money" +title: "Spending Money" sidebarTitle: "Spending Money" description: "The guide to spending money at Infisical." --- From 5db3e177eb375c4f655964816036e2908958f7dd Mon Sep 17 00:00:00 2001 From: Rhythm Bhiwani Date: Tue, 13 Aug 2024 02:01:25 +0530 Subject: [PATCH 61/71] Fixed Pagination Disappearing on Secret Sharing Page --- .../src/views/ShareSecretPage/components/ShareSecretsTable.tsx | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/frontend/src/views/ShareSecretPage/components/ShareSecretsTable.tsx b/frontend/src/views/ShareSecretPage/components/ShareSecretsTable.tsx index 33dfa297a..bdb2b2ffa 100644 --- a/frontend/src/views/ShareSecretPage/components/ShareSecretsTable.tsx +++ b/frontend/src/views/ShareSecretPage/components/ShareSecretsTable.tsx @@ -61,7 +61,7 @@ export const ShareSecretsTable = ({ handlePopUpOpen }: Props) => {

{!isLoading && data?.secrets && - data.secrets.length >= perPage && + data?.totalCount >= perPage && data?.totalCount !== undefined && ( Date: Tue, 13 Aug 2024 02:04:55 +0530 Subject: [PATCH 62/71] feat: switched to ssm update as overwrite with tag as seperate operation --- .../integration-sync-secret.ts | 36 +++++++++++++++---- 1 file changed, 29 insertions(+), 7 deletions(-) diff --git a/backend/src/services/integration-auth/integration-sync-secret.ts b/backend/src/services/integration-auth/integration-sync-secret.ts index 4fc69b76c..33f58edfb 100644 --- a/backend/src/services/integration-auth/integration-sync-secret.ts +++ b/backend/src/services/integration-auth/integration-sync-secret.ts @@ -609,15 +609,37 @@ const syncSecretsAWSParameterStore = async ({ Type: "SecureString", Value: secrets[key].value, ...(metadata.kmsKeyId && { KeyId: metadata.kmsKeyId }), - // Overwrite: true, - Tags: metadata.secretAWSTag - ? metadata.secretAWSTag.map((tag: { key: string; value: string }) => ({ - Key: tag.key, - Value: tag.value - })) - : [] + Overwrite: true }) .promise(); + if (metadata.secretAWSTag?.length) { + try { + await ssm + .addTagsToResource({ + ResourceType: "Parameter", + ResourceId: `${integration.path}${key}`, + Tags: metadata.secretAWSTag + ? metadata.secretAWSTag.map((tag: { key: string; value: string }) => ({ + Key: tag.key, + Value: tag.value + })) + : [] + }) + .promise(); + } catch (err) { + // eslint-disable-next-line @typescript-eslint/no-explicit-any + if ((err as any).code === "AccessDeniedException") { + logger.error( + `AWS Parameter Store Error [integration=${integration.id}]: double check AWS account permissions (refer to the Infisical docs)` + ); + } + + response = { + isSynced: false, + syncMessage: (err as AWSError)?.message || "Error syncing with AWS Parameter Store" + }; + } + } } // case: secret exists in AWS parameter store } else { From 69d60a227a9858e45d23e7f5a739aa248b46fa46 Mon Sep 17 00:00:00 2001 From: = Date: Tue, 13 Aug 2024 02:16:57 +0530 Subject: [PATCH 63/71] fix: resolved secret approval broken due to tag name removal --- .../secret-approval-request-secret-dal.ts | 14 ++++++-------- 1 file changed, 6 insertions(+), 8 deletions(-) diff --git a/backend/src/ee/services/secret-approval-request/secret-approval-request-secret-dal.ts b/backend/src/ee/services/secret-approval-request/secret-approval-request-secret-dal.ts index 7bd6a3fa0..592f6ccd0 100644 --- a/backend/src/ee/services/secret-approval-request/secret-approval-request-secret-dal.ts +++ b/backend/src/ee/services/secret-approval-request/secret-approval-request-secret-dal.ts @@ -81,8 +81,7 @@ export const secretApprovalRequestSecretDALFactory = (db: TDbClient) => { .select({ secVerTagId: "secVerTag.id", secVerTagColor: "secVerTag.color", - secVerTagSlug: "secVerTag.slug", - secVerTagName: "secVerTag.name" + secVerTagSlug: "secVerTag.slug" }) .select( db.ref("id").withSchema(TableName.SecretTag).as("tagId"), @@ -199,11 +198,11 @@ export const secretApprovalRequestSecretDALFactory = (db: TDbClient) => { { key: "secVerTagId", label: "tags" as const, - mapper: ({ secVerTagId: id, secVerTagName: name, secVerTagSlug: slug, secVerTagColor: color }) => ({ + mapper: ({ secVerTagId: id, secVerTagSlug: slug, secVerTagColor: color }) => ({ // eslint-disable-next-line id, // eslint-disable-next-line - name, + name: slug, // eslint-disable-next-line slug, // eslint-disable-next-line @@ -261,8 +260,7 @@ export const secretApprovalRequestSecretDALFactory = (db: TDbClient) => { .select({ secVerTagId: "secVerTag.id", secVerTagColor: "secVerTag.color", - secVerTagSlug: "secVerTag.slug", - secVerTagName: "secVerTag.name" + secVerTagSlug: "secVerTag.slug" }) .select( db.ref("id").withSchema(TableName.SecretTag).as("tagId"), @@ -328,11 +326,11 @@ export const secretApprovalRequestSecretDALFactory = (db: TDbClient) => { { key: "secVerTagId", label: "tags" as const, - mapper: ({ secVerTagId: id, secVerTagName: name, secVerTagSlug: slug, secVerTagColor: color }) => ({ + mapper: ({ secVerTagId: id, secVerTagSlug: slug, secVerTagColor: color }) => ({ // eslint-disable-next-line id, // eslint-disable-next-line - name, + name: slug, // eslint-disable-next-line slug, // eslint-disable-next-line From dae26daeebf6a5d279fa52dcea2a678a58d4bbc8 Mon Sep 17 00:00:00 2001 From: = Date: Tue, 13 Aug 2024 20:39:20 +0530 Subject: [PATCH 64/71] feat: added debug points to test ssm integration in replication --- .../integration-auth/integration-sync-secret.ts | 15 ++++++++++++--- 1 file changed, 12 insertions(+), 3 deletions(-) diff --git a/backend/src/services/integration-auth/integration-sync-secret.ts b/backend/src/services/integration-auth/integration-sync-secret.ts index 33f58edfb..ffd57f6cc 100644 --- a/backend/src/services/integration-auth/integration-sync-secret.ts +++ b/backend/src/services/integration-auth/integration-sync-secret.ts @@ -538,19 +538,21 @@ const syncSecretsAWSParameterStore = async ({ integration, secrets, accessId, - accessToken + accessToken, + projectId }: { integration: TIntegrations; secrets: Record; accessId: string | null; accessToken: string; + projectId?: string; }) => { let response: { isSynced: boolean; syncMessage: string } | null = null; if (!accessId) { throw new Error("AWS access ID is required"); } - + logger.info(`getIntegrationSecrets: [projectId=${projectId}] ssm debug: started`); const config = new AWS.Config({ region: integration.region as string, credentials: { @@ -594,6 +596,12 @@ const syncSecretsAWSParameterStore = async ({ nextToken = parameters.NextToken; } + logger.info( + `getIntegrationSecrets: [projectId=${projectId}] ssm debug: ${Object.keys(awsParameterStoreSecretsObj).join(",")}` + ); + logger.info( + `getIntegrationSecrets: [projectId=${projectId}] ssm infisical secrets debug: ${Object.keys(secrets).join(",")}` + ); // Identify secrets to create // don't use Promise.all() and promise map here // it will cause rate limit @@ -3678,7 +3686,8 @@ export const syncIntegrationSecrets = async ({ integration, secrets, accessId, - accessToken + accessToken, + projectId }); break; case Integrations.AWS_SECRET_MANAGER: From 8e08c443ada557d85f28fdd257203312be47294e Mon Sep 17 00:00:00 2001 From: = Date: Tue, 13 Aug 2024 20:50:19 +0530 Subject: [PATCH 65/71] feat: added log to print operation based keys --- .../src/services/integration-auth/integration-sync-secret.ts | 3 +++ 1 file changed, 3 insertions(+) diff --git a/backend/src/services/integration-auth/integration-sync-secret.ts b/backend/src/services/integration-auth/integration-sync-secret.ts index ffd57f6cc..08a6e00b0 100644 --- a/backend/src/services/integration-auth/integration-sync-secret.ts +++ b/backend/src/services/integration-auth/integration-sync-secret.ts @@ -611,6 +611,7 @@ const syncSecretsAWSParameterStore = async ({ // case: secret does not exist in AWS parameter store // -> create secret if (secrets[key].value) { + logger.info(`getIntegrationSecrets: [projectId=${projectId}] ssm debug create: ${key}`); await ssm .putParameter({ Name: `${integration.path}${key}`, @@ -651,6 +652,7 @@ const syncSecretsAWSParameterStore = async ({ } // case: secret exists in AWS parameter store } else { + logger.info(`getIntegrationSecrets: [projectId=${projectId}] ssm debug update: ${key}`); // -> update secret if (awsParameterStoreSecretsObj[key].Value !== secrets[key].value) { await ssm @@ -703,6 +705,7 @@ const syncSecretsAWSParameterStore = async ({ for (const key in awsParameterStoreSecretsObj) { if (Object.hasOwn(awsParameterStoreSecretsObj, key)) { if (!(key in secrets)) { + logger.info(`getIntegrationSecrets: [projectId=${projectId}] ssm debug delete: ${key}`); // case: // -> delete secret await ssm From 943b540383287c9fe00be6be6d37cce46feecb3f Mon Sep 17 00:00:00 2001 From: = Date: Tue, 13 Aug 2024 21:48:03 +0530 Subject: [PATCH 66/71] feat: added more endpoints for delete --- .../integration-sync-secret.ts | 35 +++++++++++++++---- 1 file changed, 28 insertions(+), 7 deletions(-) diff --git a/backend/src/services/integration-auth/integration-sync-secret.ts b/backend/src/services/integration-auth/integration-sync-secret.ts index 08a6e00b0..2bb613f6b 100644 --- a/backend/src/services/integration-auth/integration-sync-secret.ts +++ b/backend/src/services/integration-auth/integration-sync-secret.ts @@ -541,7 +541,7 @@ const syncSecretsAWSParameterStore = async ({ accessToken, projectId }: { - integration: TIntegrations; + integration: TIntegrations & { secretPath: string; environment: { slug: string } }; secrets: Record; accessId: string | null; accessToken: string; @@ -552,7 +552,9 @@ const syncSecretsAWSParameterStore = async ({ if (!accessId) { throw new Error("AWS access ID is required"); } - logger.info(`getIntegrationSecrets: [projectId=${projectId}] ssm debug: started`); + logger.info( + `getIntegrationSecrets: [projectId=${projectId}] [environment=${integration.environment.slug}] [secretPath=${integration.secretPath}] ssm debug: started` + ); const config = new AWS.Config({ region: integration.region as string, credentials: { @@ -597,10 +599,14 @@ const syncSecretsAWSParameterStore = async ({ } logger.info( - `getIntegrationSecrets: [projectId=${projectId}] ssm debug: ${Object.keys(awsParameterStoreSecretsObj).join(",")}` + `getIntegrationSecrets: [projectId=${projectId}] [environment=${integration.environment.slug}] [secretPath=${ + integration.secretPath + }] ssm debug: ${Object.keys(awsParameterStoreSecretsObj).join(",")}` ); logger.info( - `getIntegrationSecrets: [projectId=${projectId}] ssm infisical secrets debug: ${Object.keys(secrets).join(",")}` + `getIntegrationSecrets: [projectId=${projectId}] [environment=${integration.environment.slug}] [secretPath=${ + integration.secretPath + }] ssm infisical secrets debug: ${Object.keys(secrets).join(",")}` ); // Identify secrets to create // don't use Promise.all() and promise map here @@ -611,7 +617,9 @@ const syncSecretsAWSParameterStore = async ({ // case: secret does not exist in AWS parameter store // -> create secret if (secrets[key].value) { - logger.info(`getIntegrationSecrets: [projectId=${projectId}] ssm debug create: ${key}`); + logger.info( + `getIntegrationSecrets: [projectId=${projectId}] [environment=${integration.environment.slug}] [secretPath=${integration.secretPath}] ssm debug create: ${key}` + ); await ssm .putParameter({ Name: `${integration.path}${key}`, @@ -652,7 +660,9 @@ const syncSecretsAWSParameterStore = async ({ } // case: secret exists in AWS parameter store } else { - logger.info(`getIntegrationSecrets: [projectId=${projectId}] ssm debug update: ${key}`); + logger.info( + `getIntegrationSecrets: [projectId=${projectId}] [environment=${integration.environment.slug}] [secretPath=${integration.secretPath}] ssm debug update: ${key}` + ); // -> update secret if (awsParameterStoreSecretsObj[key].Value !== secrets[key].value) { await ssm @@ -702,10 +712,18 @@ const syncSecretsAWSParameterStore = async ({ } if (!metadata.shouldDisableDelete) { + logger.info( + `getIntegrationSecrets: [projectId=${projectId}] [environment=${integration.environment.slug}] [secretPath=${integration.secretPath}] ssm debug delete started` + ); for (const key in awsParameterStoreSecretsObj) { if (Object.hasOwn(awsParameterStoreSecretsObj, key)) { + logger.info( + `getIntegrationSecrets: [projectId=${projectId}] [environment=${integration.environment.slug}] [secretPath=${integration.secretPath}] ssm debug delete in hasOwn: ${key}` + ); if (!(key in secrets)) { - logger.info(`getIntegrationSecrets: [projectId=${projectId}] ssm debug delete: ${key}`); + logger.info( + `getIntegrationSecrets: [projectId=${projectId}] [environment=${integration.environment.slug}] [secretPath=${integration.secretPath}] ssm debug delete: ${key}` + ); // case: // -> delete secret await ssm @@ -713,6 +731,9 @@ const syncSecretsAWSParameterStore = async ({ Name: awsParameterStoreSecretsObj[key].Name as string }) .promise(); + logger.info( + `getIntegrationSecrets: [projectId=${projectId}] [environment=${integration.environment.slug}] [secretPath=${integration.secretPath}] ssm debug delete completed: ${key}` + ); } await new Promise((resolve) => { setTimeout(resolve, 50); From 2b16c19b7070af17b38b921608de93f48a09f121 Mon Sep 17 00:00:00 2001 From: Maidul Islam Date: Tue, 13 Aug 2024 12:40:02 -0400 Subject: [PATCH 67/71] improve logs for aws ssm debug --- .../integration-sync-secret.ts | 33 ++++++++++--------- 1 file changed, 17 insertions(+), 16 deletions(-) diff --git a/backend/src/services/integration-auth/integration-sync-secret.ts b/backend/src/services/integration-auth/integration-sync-secret.ts index 2bb613f6b..f99bf689b 100644 --- a/backend/src/services/integration-auth/integration-sync-secret.ts +++ b/backend/src/services/integration-auth/integration-sync-secret.ts @@ -552,9 +552,6 @@ const syncSecretsAWSParameterStore = async ({ if (!accessId) { throw new Error("AWS access ID is required"); } - logger.info( - `getIntegrationSecrets: [projectId=${projectId}] [environment=${integration.environment.slug}] [secretPath=${integration.secretPath}] ssm debug: started` - ); const config = new AWS.Config({ region: integration.region as string, credentials: { @@ -571,7 +568,9 @@ const syncSecretsAWSParameterStore = async ({ const metadata = z.record(z.any()).parse(integration.metadata || {}); const awsParameterStoreSecretsObj: Record = {}; - + logger.info( + `getIntegrationSecrets: integration sync triggered for ssm with [projectId=${projectId}] [environment=${integration.environment.slug}] [secretPath=${integration.secretPath}] [shouldDisableDelete=${metadata.shouldDisableDelete}]` + ); // now fetch all aws parameter store secrets let hasNext = true; let nextToken: string | undefined; @@ -599,14 +598,16 @@ const syncSecretsAWSParameterStore = async ({ } logger.info( - `getIntegrationSecrets: [projectId=${projectId}] [environment=${integration.environment.slug}] [secretPath=${ - integration.secretPath - }] ssm debug: ${Object.keys(awsParameterStoreSecretsObj).join(",")}` + `getIntegrationSecrets: all fetched keys from AWS SSM [projectId=${projectId}] [environment=${ + integration.environment.slug + }] [secretPath=${integration.secretPath}] [awsParameterStoreSecretsObj=${Object.keys( + awsParameterStoreSecretsObj + ).join(",")}]` ); logger.info( - `getIntegrationSecrets: [projectId=${projectId}] [environment=${integration.environment.slug}] [secretPath=${ - integration.secretPath - }] ssm infisical secrets debug: ${Object.keys(secrets).join(",")}` + `getIntegrationSecrets: all secrets from Infisical to send to AWS SSM [projectId=${projectId}] [environment=${ + integration.environment.slug + }] [secretPath=${integration.secretPath}] [secrets=${Object.keys(secrets).join(",")}]` ); // Identify secrets to create // don't use Promise.all() and promise map here @@ -618,7 +619,7 @@ const syncSecretsAWSParameterStore = async ({ // -> create secret if (secrets[key].value) { logger.info( - `getIntegrationSecrets: [projectId=${projectId}] [environment=${integration.environment.slug}] [secretPath=${integration.secretPath}] ssm debug create: ${key}` + `getIntegrationSecrets: create secret in AWS SSM for [projectId=${projectId}] [environment=${integration.environment.slug}] [secretPath=${integration.secretPath}] [key=${key}]` ); await ssm .putParameter({ @@ -661,7 +662,7 @@ const syncSecretsAWSParameterStore = async ({ // case: secret exists in AWS parameter store } else { logger.info( - `getIntegrationSecrets: [projectId=${projectId}] [environment=${integration.environment.slug}] [secretPath=${integration.secretPath}] ssm debug update: ${key}` + `getIntegrationSecrets: update secret in AWS SSM for [projectId=${projectId}] [environment=${integration.environment.slug}] [secretPath=${integration.secretPath}] [key=${key}]` ); // -> update secret if (awsParameterStoreSecretsObj[key].Value !== secrets[key].value) { @@ -713,16 +714,16 @@ const syncSecretsAWSParameterStore = async ({ if (!metadata.shouldDisableDelete) { logger.info( - `getIntegrationSecrets: [projectId=${projectId}] [environment=${integration.environment.slug}] [secretPath=${integration.secretPath}] ssm debug delete started` + `getIntegrationSecrets: inside of shouldDisableDelete AWS SSM [projectId=${projectId}] [environment=${integration.environment.slug}] [secretPath=${integration.secretPath}] [step=1]` ); for (const key in awsParameterStoreSecretsObj) { if (Object.hasOwn(awsParameterStoreSecretsObj, key)) { logger.info( - `getIntegrationSecrets: [projectId=${projectId}] [environment=${integration.environment.slug}] [secretPath=${integration.secretPath}] ssm debug delete in hasOwn: ${key}` + `getIntegrationSecrets: inside of shouldDisableDelete AWS SSM [projectId=${projectId}] [environment=${integration.environment.slug}] [secretPath=${integration.secretPath}] [key=${key}] [step=2]` ); if (!(key in secrets)) { logger.info( - `getIntegrationSecrets: [projectId=${projectId}] [environment=${integration.environment.slug}] [secretPath=${integration.secretPath}] ssm debug delete: ${key}` + `getIntegrationSecrets: inside of shouldDisableDelete AWS SSM [projectId=${projectId}] [environment=${integration.environment.slug}] [secretPath=${integration.secretPath}] [key=${key}] [step=3]` ); // case: // -> delete secret @@ -732,7 +733,7 @@ const syncSecretsAWSParameterStore = async ({ }) .promise(); logger.info( - `getIntegrationSecrets: [projectId=${projectId}] [environment=${integration.environment.slug}] [secretPath=${integration.secretPath}] ssm debug delete completed: ${key}` + `getIntegrationSecrets: inside of shouldDisableDelete AWS SSM [projectId=${projectId}] [environment=${integration.environment.slug}] [secretPath=${integration.secretPath}] [key=${key}] [step=4]` ); } await new Promise((resolve) => { From 742f5f6621ef24f4bfda26ec6dc70c78961bb248 Mon Sep 17 00:00:00 2001 From: = Date: Wed, 14 Aug 2024 00:13:55 +0530 Subject: [PATCH 68/71] feat(ui): resolved a race condition in ui --- .../src/pages/integrations/aws-parameter-store/create.tsx | 8 ++------ 1 file changed, 2 insertions(+), 6 deletions(-) diff --git a/frontend/src/pages/integrations/aws-parameter-store/create.tsx b/frontend/src/pages/integrations/aws-parameter-store/create.tsx index 9c46840b5..5af4a86c2 100644 --- a/frontend/src/pages/integrations/aws-parameter-store/create.tsx +++ b/frontend/src/pages/integrations/aws-parameter-store/create.tsx @@ -277,18 +277,14 @@ export default function AWSParameterStoreCreateIntegrationPage() {
setShouldDisableDelete(!shouldDisableDelete)} + onCheckedChange={setShouldDisableDelete} isChecked={shouldDisableDelete} > Disable deleting secrets in AWS Parameter Store
- setShouldTag(!shouldTag)} - isChecked={shouldTag} - > + Tag in AWS Parameter Store
From b60d0992f455a7c8ee6c83487ed26178f770eea1 Mon Sep 17 00:00:00 2001 From: = Date: Wed, 14 Aug 2024 21:42:07 +0530 Subject: [PATCH 69/71] feat: added log point for aws tag and check for delete secret in bridge --- .../integration-auth/integration-sync-secret.ts | 8 ++++++++ .../secret-v2-bridge/secret-v2-bridge-service.ts | 12 ++++++++++++ backend/src/services/secret/secret-queue.ts | 5 ++++- 3 files changed, 24 insertions(+), 1 deletion(-) diff --git a/backend/src/services/integration-auth/integration-sync-secret.ts b/backend/src/services/integration-auth/integration-sync-secret.ts index f99bf689b..b1f7d4cb8 100644 --- a/backend/src/services/integration-auth/integration-sync-secret.ts +++ b/backend/src/services/integration-auth/integration-sync-secret.ts @@ -645,6 +645,10 @@ const syncSecretsAWSParameterStore = async ({ }) .promise(); } catch (err) { + logger.error( + err, + `getIntegrationSecrets: create secret in AWS SSM for failed [projectId=${projectId}] [environment=${integration.environment.slug}] [secretPath=${integration.secretPath}] [key=${key}]` + ); // eslint-disable-next-line @typescript-eslint/no-explicit-any if ((err as any).code === "AccessDeniedException") { logger.error( @@ -691,6 +695,10 @@ const syncSecretsAWSParameterStore = async ({ }) .promise(); } catch (err) { + logger.error( + err, + `getIntegrationSecrets: update secret in AWS SSM for failed [projectId=${projectId}] [environment=${integration.environment.slug}] [secretPath=${integration.secretPath}] [key=${key}]` + ); // eslint-disable-next-line @typescript-eslint/no-explicit-any if ((err as any).code === "AccessDeniedException") { logger.error( diff --git a/backend/src/services/secret-v2-bridge/secret-v2-bridge-service.ts b/backend/src/services/secret-v2-bridge/secret-v2-bridge-service.ts index c5c270585..ba3c8539d 100644 --- a/backend/src/services/secret-v2-bridge/secret-v2-bridge-service.ts +++ b/backend/src/services/secret-v2-bridge/secret-v2-bridge-service.ts @@ -378,6 +378,18 @@ export const secretV2BridgeServiceFactory = ({ throw new BadRequestError({ message: "Must be user to delete personal secret" }); } + const secretToDelete = await secretDAL.findOne({ + key: inputSecret.secretName, + folderId, + ...(inputSecret.type === SecretType.Shared + ? {} + : { + type: SecretType.Personal, + userId: actorId + }) + }); + if (!secretToDelete) throw new NotFoundError({ message: "Secret not found" }); + const deletedSecret = await secretDAL.transaction(async (tx) => fnSecretBulkDelete({ projectId, diff --git a/backend/src/services/secret/secret-queue.ts b/backend/src/services/secret/secret-queue.ts index de437a6a5..84e49aabe 100644 --- a/backend/src/services/secret/secret-queue.ts +++ b/backend/src/services/secret/secret-queue.ts @@ -728,7 +728,10 @@ export const secretQueueFactory = ({ isSynced: response?.isSynced ?? true }); } catch (err) { - logger.info("Secret integration sync error: %o", err); + logger.error( + err, + `Secret integration sync error [projectId=${job.data.projectId}] [environment=${job.data.environment}] [secretPath=${job.data.secretPath}]` + ); const message = (err instanceof AxiosError ? JSON.stringify(err?.response?.data) : (err as Error)?.message) || From 4feff5b4ca6d7cb2adbb2ce53d1dac3908ca3649 Mon Sep 17 00:00:00 2001 From: = Date: Thu, 15 Aug 2024 01:24:54 +0530 Subject: [PATCH 70/71] feat: resolved getSecretByName empty value from imported in kms arch --- .../secret-approval-request-service.ts | 14 +++-- .../secret-replication-service.ts | 2 +- .../secret-snapshot-service.ts | 4 +- backend/src/server/routes/sanitizedSchemas.ts | 4 +- .../secret-import/secret-import-fns.ts | 9 ++-- .../secret-import/secret-import-service.ts | 2 +- .../secret-v2-bridge/secret-v2-bridge-fns.ts | 4 +- .../secret-v2-bridge-service.ts | 53 ++++++++----------- backend/src/services/secret/secret-service.ts | 1 + 9 files changed, 42 insertions(+), 51 deletions(-) diff --git a/backend/src/ee/services/secret-approval-request/secret-approval-request-service.ts b/backend/src/ee/services/secret-approval-request/secret-approval-request-service.ts index 4ae4d25ea..81ccf35f6 100644 --- a/backend/src/ee/services/secret-approval-request/secret-approval-request-service.ts +++ b/backend/src/ee/services/secret-approval-request/secret-approval-request-service.ts @@ -224,12 +224,10 @@ export const secretApprovalRequestServiceFactory = ({ secretKey: el.key, id: el.id, version: el.version, - secretValue: el.encryptedValue - ? secretManagerDecryptor({ cipherTextBlob: el.encryptedValue }).toString() - : undefined, + secretValue: el.encryptedValue ? secretManagerDecryptor({ cipherTextBlob: el.encryptedValue }).toString() : "", secretComment: el.encryptedComment ? secretManagerDecryptor({ cipherTextBlob: el.encryptedComment }).toString() - : undefined, + : "", secret: el.secret ? { secretKey: el.secret.key, @@ -237,10 +235,10 @@ export const secretApprovalRequestServiceFactory = ({ version: el.secret.version, secretValue: el.secret.encryptedValue ? secretManagerDecryptor({ cipherTextBlob: el.secret.encryptedValue }).toString() - : undefined, + : "", secretComment: el.secret.encryptedComment ? secretManagerDecryptor({ cipherTextBlob: el.secret.encryptedComment }).toString() - : undefined + : "" } : undefined, secretVersion: el.secretVersion @@ -250,10 +248,10 @@ export const secretApprovalRequestServiceFactory = ({ version: el.secretVersion.version, secretValue: el.secretVersion.encryptedValue ? secretManagerDecryptor({ cipherTextBlob: el.secretVersion.encryptedValue }).toString() - : undefined, + : "", secretComment: el.secretVersion.encryptedComment ? secretManagerDecryptor({ cipherTextBlob: el.secretVersion.encryptedComment }).toString() - : undefined + : "" } : undefined })); diff --git a/backend/src/ee/services/secret-replication/secret-replication-service.ts b/backend/src/ee/services/secret-replication/secret-replication-service.ts index b32d459c5..b77d6cbc2 100644 --- a/backend/src/ee/services/secret-replication/secret-replication-service.ts +++ b/backend/src/ee/services/secret-replication/secret-replication-service.ts @@ -257,7 +257,7 @@ export const secretReplicationServiceFactory = ({ secretDAL: secretV2BridgeDAL, folderDAL, secretImportDAL, - decryptor: (value) => (value ? secretManagerDecryptor({ cipherTextBlob: value }).toString() : undefined) + decryptor: (value) => (value ? secretManagerDecryptor({ cipherTextBlob: value }).toString() : "") }); // secrets that gets replicated across imports const sourceDecryptedLocalSecrets = sourceLocalSecrets.map((el) => ({ diff --git a/backend/src/ee/services/secret-snapshot/secret-snapshot-service.ts b/backend/src/ee/services/secret-snapshot/secret-snapshot-service.ts index c5d8bd4fa..225339104 100644 --- a/backend/src/ee/services/secret-snapshot/secret-snapshot-service.ts +++ b/backend/src/ee/services/secret-snapshot/secret-snapshot-service.ts @@ -164,10 +164,10 @@ export const secretSnapshotServiceFactory = ({ secretKey: el.key, secretValue: el.encryptedValue ? secretManagerDecryptor({ cipherTextBlob: el.encryptedValue }).toString() - : undefined, + : "", secretComment: el.encryptedComment ? secretManagerDecryptor({ cipherTextBlob: el.encryptedComment }).toString() - : undefined + : "" })) }; } else { diff --git a/backend/src/server/routes/sanitizedSchemas.ts b/backend/src/server/routes/sanitizedSchemas.ts index a10a962cf..02d9e37e0 100644 --- a/backend/src/server/routes/sanitizedSchemas.ts +++ b/backend/src/server/routes/sanitizedSchemas.ts @@ -63,8 +63,8 @@ export const secretRawSchema = z.object({ version: z.number(), type: z.string(), secretKey: z.string(), - secretValue: z.string().optional(), - secretComment: z.string().optional(), + secretValue: z.string(), + secretComment: z.string(), secretReminderNote: z.string().nullable().optional(), secretReminderRepeatDays: z.number().nullable().optional(), skipMultilineEncoding: z.boolean().default(false).nullable().optional(), diff --git a/backend/src/services/secret-import/secret-import-fns.ts b/backend/src/services/secret-import/secret-import-fns.ts index 1ccaaefc2..f7c31ac61 100644 --- a/backend/src/services/secret-import/secret-import-fns.ts +++ b/backend/src/services/secret-import/secret-import-fns.ts @@ -36,8 +36,8 @@ type TSecretImportSecretsV2 = { secretKey: string; // akhilmhdh: yes i know you can put ?. // But for somereason ts consider ? and undefined explicit as different just ts things - secretValue: string | undefined; - secretComment: string | undefined; + secretValue: string; + secretComment: string; })[]; }; @@ -157,7 +157,7 @@ export const fnSecretsV2FromImports = async ({ secretImportDAL: Pick; depth?: number; cyclicDetector?: Set; - decryptor: (value?: Buffer | null) => string | undefined; + decryptor: (value?: Buffer | null) => string; expandSecretReferences?: ( secrets: Record ) => Promise>; @@ -231,6 +231,7 @@ export const fnSecretsV2FromImports = async ({ _id: item.id // The old Python SDK depends on the _id field being returned. We return this to keep the older Python SDK versions backwards compatible with the new Postgres backend. })) .concat(folderDeeperImportSecrets); + return { secretPath: importPath, environment: importEnv.slug, @@ -254,7 +255,7 @@ export const fnSecretsV2FromImports = async ({ }; return acc; }, - {} as Record + {} as Record ); // eslint-disable-next-line await expandSecretReferences(secretsGroupByKey); diff --git a/backend/src/services/secret-import/secret-import-service.ts b/backend/src/services/secret-import/secret-import-service.ts index c69fec6b6..c3d1a6791 100644 --- a/backend/src/services/secret-import/secret-import-service.ts +++ b/backend/src/services/secret-import/secret-import-service.ts @@ -507,7 +507,7 @@ export const secretImportServiceFactory = ({ folderDAL, secretDAL: secretV2BridgeDAL, secretImportDAL, - decryptor: (value) => (value ? secretManagerDecryptor({ cipherTextBlob: value }).toString() : undefined) + decryptor: (value) => (value ? secretManagerDecryptor({ cipherTextBlob: value }).toString() : "") }); return importedSecrets; } diff --git a/backend/src/services/secret-v2-bridge/secret-v2-bridge-fns.ts b/backend/src/services/secret-v2-bridge/secret-v2-bridge-fns.ts index 8bd5c55f3..e58960a4b 100644 --- a/backend/src/services/secret-v2-bridge/secret-v2-bridge-fns.ts +++ b/backend/src/services/secret-v2-bridge/secret-v2-bridge-fns.ts @@ -528,8 +528,8 @@ export const reshapeBridgeSecret = ( environment: string, secretPath: string, secret: Omit & { - value?: string; - comment?: string; + value: string; + comment: string; tags?: { id: string; slug: string; diff --git a/backend/src/services/secret-v2-bridge/secret-v2-bridge-service.ts b/backend/src/services/secret-v2-bridge/secret-v2-bridge-service.ts index ba3c8539d..b594f98ca 100644 --- a/backend/src/services/secret-v2-bridge/secret-v2-bridge-service.ts +++ b/backend/src/services/secret-v2-bridge/secret-v2-bridge-service.ts @@ -196,7 +196,7 @@ export const secretV2BridgeServiceFactory = ({ return reshapeBridgeSecret(projectId, environment, secretPath, { ...secret[0], value: inputSecret.secretValue, - comment: inputSecret.secretComment + comment: inputSecret.secretComment || "" }); }; @@ -339,8 +339,8 @@ export const secretV2BridgeServiceFactory = ({ }); return reshapeBridgeSecret(projectId, environment, secretPath, { ...updatedSecret[0], - value: inputSecret.secretValue, - comment: inputSecret.secretComment + value: inputSecret.secretValue || "", + comment: inputSecret.secretComment || "" }); }; @@ -424,10 +424,10 @@ export const secretV2BridgeServiceFactory = ({ ...deletedSecret[0], value: deletedSecret[0].encryptedValue ? secretManagerDecryptor({ cipherTextBlob: deletedSecret[0].encryptedValue }).toString() - : undefined, + : "", comment: deletedSecret[0].encryptedComment ? secretManagerDecryptor({ cipherTextBlob: deletedSecret[0].encryptedComment }).toString() - : undefined + : "" }); }; @@ -570,7 +570,7 @@ export const secretV2BridgeServiceFactory = ({ folderDAL, secretImportDAL, expandSecretReferences, - decryptor: (value) => (value ? secretManagerDecryptor({ cipherTextBlob: value }).toString() : undefined) + decryptor: (value) => (value ? secretManagerDecryptor({ cipherTextBlob: value }).toString() : "") }); return { @@ -670,7 +670,7 @@ export const secretV2BridgeServiceFactory = ({ secretDAL, folderDAL, secretImportDAL, - decryptor: (value) => (value ? secretManagerDecryptor({ cipherTextBlob: value }).toString() : undefined), + decryptor: (value) => (value ? secretManagerDecryptor({ cipherTextBlob: value }).toString() : ""), expandSecretReferences: shouldExpandSecretReferences ? expandSecretReferences : undefined }); @@ -678,12 +678,11 @@ export const secretV2BridgeServiceFactory = ({ for (let j = 0; j < importedSecrets[i].secrets.length; j += 1) { const importedSecret = importedSecrets[i].secrets[j]; if (secretName === importedSecret.key) { - return reshapeBridgeSecret( - projectId, - importedSecrets[i].environment, - importedSecrets[i].secretPath, - importedSecret - ); + return reshapeBridgeSecret(projectId, importedSecrets[i].environment, importedSecrets[i].secretPath, { + ...importedSecret, + value: importedSecret.secretValue || "", + comment: importedSecret.secretComment || "" + }); } } } @@ -692,7 +691,7 @@ export const secretV2BridgeServiceFactory = ({ let secretValue = secret.encryptedValue ? secretManagerDecryptor({ cipherTextBlob: secret.encryptedValue }).toString() - : undefined; + : ""; if (shouldExpandSecretReferences && secretValue) { const secretReferenceExpandedRecord = { [secret.key]: { value: secretValue } @@ -707,7 +706,7 @@ export const secretV2BridgeServiceFactory = ({ value: secretValue, comment: secret.encryptedComment ? secretManagerDecryptor({ cipherTextBlob: secret.encryptedComment }).toString() - : undefined + : "" }); }; @@ -797,10 +796,8 @@ export const secretV2BridgeServiceFactory = ({ return newSecrets.map((el) => reshapeBridgeSecret(projectId, environment, secretPath, { ...el, - value: el.encryptedValue ? secretManagerDecryptor({ cipherTextBlob: el.encryptedValue }).toString() : undefined, - comment: el.encryptedComment - ? secretManagerDecryptor({ cipherTextBlob: el.encryptedComment }).toString() - : undefined + value: el.encryptedValue ? secretManagerDecryptor({ cipherTextBlob: el.encryptedValue }).toString() : "", + comment: el.encryptedComment ? secretManagerDecryptor({ cipherTextBlob: el.encryptedComment }).toString() : "" }) ); }; @@ -918,10 +915,8 @@ export const secretV2BridgeServiceFactory = ({ return secrets.map((el) => reshapeBridgeSecret(projectId, environment, secretPath, { ...el, - value: el.encryptedValue ? secretManagerDecryptor({ cipherTextBlob: el.encryptedValue }).toString() : undefined, - comment: el.encryptedComment - ? secretManagerDecryptor({ cipherTextBlob: el.encryptedComment }).toString() - : undefined + value: el.encryptedValue ? secretManagerDecryptor({ cipherTextBlob: el.encryptedValue }).toString() : "", + comment: el.encryptedComment ? secretManagerDecryptor({ cipherTextBlob: el.encryptedComment }).toString() : "" }) ); }; @@ -997,10 +992,8 @@ export const secretV2BridgeServiceFactory = ({ return secretsDeleted.map((el) => reshapeBridgeSecret(projectId, environment, secretPath, { ...el, - value: el.encryptedValue ? secretManagerDecryptor({ cipherTextBlob: el.encryptedValue }).toString() : undefined, - comment: el.encryptedComment - ? secretManagerDecryptor({ cipherTextBlob: el.encryptedComment }).toString() - : undefined + value: el.encryptedValue ? secretManagerDecryptor({ cipherTextBlob: el.encryptedValue }).toString() : "", + comment: el.encryptedComment ? secretManagerDecryptor({ cipherTextBlob: el.encryptedComment }).toString() : "" }) ); }; @@ -1036,10 +1029,8 @@ export const secretV2BridgeServiceFactory = ({ return secretVersions.map((el) => reshapeBridgeSecret(folder.projectId, folder.environment.envSlug, "/", { ...el, - value: el.encryptedValue ? secretManagerDecryptor({ cipherTextBlob: el.encryptedValue }).toString() : undefined, - comment: el.encryptedComment - ? secretManagerDecryptor({ cipherTextBlob: el.encryptedComment }).toString() - : undefined + value: el.encryptedValue ? secretManagerDecryptor({ cipherTextBlob: el.encryptedValue }).toString() : "", + comment: el.encryptedComment ? secretManagerDecryptor({ cipherTextBlob: el.encryptedComment }).toString() : "" }) ); }; diff --git a/backend/src/services/secret/secret-service.ts b/backend/src/services/secret/secret-service.ts index 57f301594..c62a73f69 100644 --- a/backend/src/services/secret/secret-service.ts +++ b/backend/src/services/secret/secret-service.ts @@ -1154,6 +1154,7 @@ export const secretServiceFactory = ({ type, secretName }); + return secret; } From b176f133924e807faa22a32363f22155f35fc817 Mon Sep 17 00:00:00 2001 From: Sheen Capadngan Date: Thu, 15 Aug 2024 15:21:49 +0800 Subject: [PATCH 71/71] doc: add dynamic secrets to api references --- .../ee/routes/v1/dynamic-secret-lease-router.ts | 2 +- .../endpoints/dynamic-secrets/create-lease.mdx | 4 ++++ .../endpoints/dynamic-secrets/create.mdx | 4 ++++ .../endpoints/dynamic-secrets/delete-lease.mdx | 4 ++++ .../endpoints/dynamic-secrets/delete.mdx | 4 ++++ .../endpoints/dynamic-secrets/get-lease.mdx | 4 ++++ .../endpoints/dynamic-secrets/get.mdx | 4 ++++ .../endpoints/dynamic-secrets/list-leases.mdx | 4 ++++ .../endpoints/dynamic-secrets/list.mdx | 4 ++++ .../endpoints/dynamic-secrets/renew-lease.mdx | 4 ++++ .../endpoints/dynamic-secrets/update.mdx | 4 ++++ docs/mint.json | 15 +++++++++++++++ 12 files changed, 56 insertions(+), 1 deletion(-) create mode 100644 docs/api-reference/endpoints/dynamic-secrets/create-lease.mdx create mode 100644 docs/api-reference/endpoints/dynamic-secrets/create.mdx create mode 100644 docs/api-reference/endpoints/dynamic-secrets/delete-lease.mdx create mode 100644 docs/api-reference/endpoints/dynamic-secrets/delete.mdx create mode 100644 docs/api-reference/endpoints/dynamic-secrets/get-lease.mdx create mode 100644 docs/api-reference/endpoints/dynamic-secrets/get.mdx create mode 100644 docs/api-reference/endpoints/dynamic-secrets/list-leases.mdx create mode 100644 docs/api-reference/endpoints/dynamic-secrets/list.mdx create mode 100644 docs/api-reference/endpoints/dynamic-secrets/renew-lease.mdx create mode 100644 docs/api-reference/endpoints/dynamic-secrets/update.mdx diff --git a/backend/src/ee/routes/v1/dynamic-secret-lease-router.ts b/backend/src/ee/routes/v1/dynamic-secret-lease-router.ts index 5ef9f7eeb..c19af4d22 100644 --- a/backend/src/ee/routes/v1/dynamic-secret-lease-router.ts +++ b/backend/src/ee/routes/v1/dynamic-secret-lease-router.ts @@ -131,7 +131,7 @@ export const registerDynamicSecretLeaseRouter = async (server: FastifyZodProvide .default("/") .transform(removeTrailingSlash) .describe(DYNAMIC_SECRET_LEASES.RENEW.path), - environmentSlug: z.string().min(1).describe(DYNAMIC_SECRET_LEASES.RENEW.ttl) + environmentSlug: z.string().min(1).describe(DYNAMIC_SECRET_LEASES.RENEW.environmentSlug) }), response: { 200: z.object({ diff --git a/docs/api-reference/endpoints/dynamic-secrets/create-lease.mdx b/docs/api-reference/endpoints/dynamic-secrets/create-lease.mdx new file mode 100644 index 000000000..57e235f50 --- /dev/null +++ b/docs/api-reference/endpoints/dynamic-secrets/create-lease.mdx @@ -0,0 +1,4 @@ +--- +title: "Create Lease" +openapi: "POST /api/v1/dynamic-secrets/leases" +--- diff --git a/docs/api-reference/endpoints/dynamic-secrets/create.mdx b/docs/api-reference/endpoints/dynamic-secrets/create.mdx new file mode 100644 index 000000000..1c591bd3d --- /dev/null +++ b/docs/api-reference/endpoints/dynamic-secrets/create.mdx @@ -0,0 +1,4 @@ +--- +title: "Create" +openapi: "POST /api/v1/dynamic-secrets" +--- diff --git a/docs/api-reference/endpoints/dynamic-secrets/delete-lease.mdx b/docs/api-reference/endpoints/dynamic-secrets/delete-lease.mdx new file mode 100644 index 000000000..93e209995 --- /dev/null +++ b/docs/api-reference/endpoints/dynamic-secrets/delete-lease.mdx @@ -0,0 +1,4 @@ +--- +title: "Delete Lease" +openapi: "DELETE /api/v1/dynamic-secrets/leases/{leaseId}" +--- diff --git a/docs/api-reference/endpoints/dynamic-secrets/delete.mdx b/docs/api-reference/endpoints/dynamic-secrets/delete.mdx new file mode 100644 index 000000000..e59ac4379 --- /dev/null +++ b/docs/api-reference/endpoints/dynamic-secrets/delete.mdx @@ -0,0 +1,4 @@ +--- +title: "Delete" +openapi: "DELETE /api/v1/dynamic-secrets/{name}" +--- diff --git a/docs/api-reference/endpoints/dynamic-secrets/get-lease.mdx b/docs/api-reference/endpoints/dynamic-secrets/get-lease.mdx new file mode 100644 index 000000000..aff12207e --- /dev/null +++ b/docs/api-reference/endpoints/dynamic-secrets/get-lease.mdx @@ -0,0 +1,4 @@ +--- +title: "Get Lease" +openapi: "GET /api/v1/dynamic-secrets/leases/{leaseId}" +--- diff --git a/docs/api-reference/endpoints/dynamic-secrets/get.mdx b/docs/api-reference/endpoints/dynamic-secrets/get.mdx new file mode 100644 index 000000000..bc3267e97 --- /dev/null +++ b/docs/api-reference/endpoints/dynamic-secrets/get.mdx @@ -0,0 +1,4 @@ +--- +title: "Get" +openapi: "GET /api/v1/dynamic-secrets/{name}" +--- diff --git a/docs/api-reference/endpoints/dynamic-secrets/list-leases.mdx b/docs/api-reference/endpoints/dynamic-secrets/list-leases.mdx new file mode 100644 index 000000000..26cad150d --- /dev/null +++ b/docs/api-reference/endpoints/dynamic-secrets/list-leases.mdx @@ -0,0 +1,4 @@ +--- +title: "List Leases" +openapi: "GET /api/v1/dynamic-secrets/{name}/leases" +--- diff --git a/docs/api-reference/endpoints/dynamic-secrets/list.mdx b/docs/api-reference/endpoints/dynamic-secrets/list.mdx new file mode 100644 index 000000000..d76c1167e --- /dev/null +++ b/docs/api-reference/endpoints/dynamic-secrets/list.mdx @@ -0,0 +1,4 @@ +--- +title: "List" +openapi: "GET /api/v1/dynamic-secrets" +--- diff --git a/docs/api-reference/endpoints/dynamic-secrets/renew-lease.mdx b/docs/api-reference/endpoints/dynamic-secrets/renew-lease.mdx new file mode 100644 index 000000000..ea1777e6b --- /dev/null +++ b/docs/api-reference/endpoints/dynamic-secrets/renew-lease.mdx @@ -0,0 +1,4 @@ +--- +title: "Renew Lease" +openapi: "POST /api/v1/dynamic-secrets/leases/{leaseId}/renew" +--- diff --git a/docs/api-reference/endpoints/dynamic-secrets/update.mdx b/docs/api-reference/endpoints/dynamic-secrets/update.mdx new file mode 100644 index 000000000..0ab4aaab4 --- /dev/null +++ b/docs/api-reference/endpoints/dynamic-secrets/update.mdx @@ -0,0 +1,4 @@ +--- +title: "Update" +openapi: "PATCH /api/v1/dynamic-secrets/{name}" +--- diff --git a/docs/mint.json b/docs/mint.json index ed824284b..bf0f396d2 100644 --- a/docs/mint.json +++ b/docs/mint.json @@ -617,6 +617,21 @@ "api-reference/endpoints/secrets/detach-tags" ] }, + { + "group": "Dynamic Secrets", + "pages": [ + "api-reference/endpoints/dynamic-secrets/create", + "api-reference/endpoints/dynamic-secrets/update", + "api-reference/endpoints/dynamic-secrets/delete", + "api-reference/endpoints/dynamic-secrets/get", + "api-reference/endpoints/dynamic-secrets/list", + "api-reference/endpoints/dynamic-secrets/list-leases", + "api-reference/endpoints/dynamic-secrets/create-lease", + "api-reference/endpoints/dynamic-secrets/delete-lease", + "api-reference/endpoints/dynamic-secrets/renew-lease", + "api-reference/endpoints/dynamic-secrets/get-lease" + ] + }, { "group": "Secret Imports", "pages": [