From 73116200cd0b500575051f1fc4ca1aa557edbc07 Mon Sep 17 00:00:00 2001 From: HarshCasper Date: Fri, 13 Oct 2023 04:14:59 +0000 Subject: [PATCH] deploy: 5cb2750197583b73e002981df42404653d064fb4 --- academy/index.html | 10 +- academy/localstack-101/cloud-pods/index.html | 10 +- .../localstack-101/course-overview/index.html | 10 +- .../full-project-demo/index.html | 10 +- .../localstack-101/getting-started/index.html | 10 +- academy/localstack-101/index.html | 10 +- .../web-app-resource-browser/index.html | 10 +- .../what-is-localstack/index.html | 10 +- .../localstack-101/why-localstack/index.html | 10 +- applications/index.html | 10 +- applications/temp/index.html | 10 +- categories/cli/index.html | 7 - categories/cli/index.xml | 207 -------- categories/index.html | 2 +- categories/localstack-pro/index.html | 2 +- categories/localstack-pro/index.xml | 265 +--------- categories/persistence/index.html | 7 - categories/persistence/index.xml | 223 -------- categories/tools/index.html | 2 +- categories/tools/index.xml | 263 +--------- contributing/concepts/index.html | 10 +- contributing/contributing/index.html | 10 +- .../development-environment-setup/index.html | 10 +- contributing/index.html | 10 +- contributing/integration-tests/index.html | 10 +- contributing/parity-testing/index.html | 10 +- contributing/terraform-tests/index.html | 10 +- developer-hub/index.html | 10 +- getting-started/api-key/index.html | 10 +- getting-started/faq/index.html | 10 +- getting-started/glossary/index.html | 10 +- getting-started/help-and-support/index.html | 10 +- getting-started/index.html | 10 +- getting-started/installation/index.html | 10 +- getting-started/quickstart/index.html | 10 +- overview/index.html | 10 +- references/arm64-support/index.html | 10 +- references/configuration/index.html | 10 +- references/coverage/coverage_acm/index.html | 10 +- .../coverage/coverage_amplify/index.html | 10 +- .../coverage/coverage_apigateway/index.html | 10 +- .../index.html | 10 +- .../coverage/coverage_apigatewayv2/index.html | 10 +- .../coverage/coverage_appconfig/index.html | 10 +- .../index.html | 10 +- .../coverage/coverage_appsync/index.html | 10 +- .../coverage/coverage_athena/index.html | 10 +- .../coverage/coverage_autoscaling/index.html | 10 +- .../coverage/coverage_backup/index.html | 10 +- references/coverage/coverage_batch/index.html | 10 +- references/coverage/coverage_ce/index.html | 10 +- .../coverage_cloudformation/index.html | 10 +- .../coverage/coverage_cloudfront/index.html | 10 +- .../coverage/coverage_cloudtrail/index.html | 10 +- .../coverage/coverage_cloudwatch/index.html | 10 +- .../coverage/coverage_codecommit/index.html | 10 +- .../coverage_cognito-identity/index.html | 10 +- .../coverage/coverage_cognito-idp/index.html | 10 +- .../coverage/coverage_config/index.html | 10 +- references/coverage/coverage_docdb/index.html | 10 +- .../coverage/coverage_dynamodb/index.html | 10 +- .../coverage_dynamodbstreams/index.html | 10 +- references/coverage/coverage_ec2/index.html | 10 +- references/coverage/coverage_ecr/index.html | 10 +- references/coverage/coverage_ecs/index.html | 10 +- references/coverage/coverage_efs/index.html | 10 +- references/coverage/coverage_eks/index.html | 10 +- .../coverage/coverage_elasticache/index.html | 10 +- .../coverage_elasticbeanstalk/index.html | 10 +- references/coverage/coverage_elb/index.html | 10 +- references/coverage/coverage_elbv2/index.html | 10 +- .../coverage_emr-serverless/index.html | 10 +- references/coverage/coverage_emr/index.html | 10 +- references/coverage/coverage_es/index.html | 10 +- .../coverage/coverage_events/index.html | 10 +- .../coverage/coverage_firehose/index.html | 10 +- references/coverage/coverage_fis/index.html | 10 +- .../coverage/coverage_glacier/index.html | 10 +- references/coverage/coverage_glue/index.html | 10 +- references/coverage/coverage_iam/index.html | 10 +- .../coverage/coverage_iot-data/index.html | 10 +- references/coverage/coverage_iot/index.html | 10 +- .../coverage/coverage_iotanalytics/index.html | 10 +- .../coverage/coverage_iotwireless/index.html | 10 +- references/coverage/coverage_kafka/index.html | 10 +- .../coverage/coverage_kinesis/index.html | 10 +- .../coverage_kinesisanalytics/index.html | 10 +- .../coverage_kinesisanalyticsv2/index.html | 10 +- references/coverage/coverage_kms/index.html | 10 +- .../coverage_lakeformation/index.html | 10 +- .../coverage/coverage_lambda/index.html | 10 +- references/coverage/coverage_logs/index.html | 10 +- .../coverage_mediastore-data/index.html | 10 +- .../coverage/coverage_mediastore/index.html | 10 +- references/coverage/coverage_mq/index.html | 10 +- references/coverage/coverage_mwaa/index.html | 10 +- .../coverage/coverage_neptune/index.html | 10 +- .../coverage/coverage_opensearch/index.html | 10 +- .../coverage_organizations/index.html | 10 +- .../coverage/coverage_qldb-session/index.html | 10 +- references/coverage/coverage_qldb/index.html | 10 +- references/coverage/coverage_ram/index.html | 10 +- .../coverage/coverage_rds-data/index.html | 10 +- references/coverage/coverage_rds/index.html | 10 +- .../coverage_redshift-data/index.html | 10 +- .../coverage/coverage_redshift/index.html | 10 +- .../coverage_resource-groups/index.html | 10 +- .../index.html | 10 +- .../coverage/coverage_route53/index.html | 10 +- .../coverage_route53resolver/index.html | 10 +- references/coverage/coverage_s3/index.html | 10 +- .../coverage/coverage_s3control/index.html | 10 +- .../coverage_sagemaker-runtime/index.html | 10 +- .../coverage/coverage_sagemaker/index.html | 10 +- .../coverage/coverage_scheduler/index.html | 10 +- .../coverage_secretsmanager/index.html | 10 +- .../coverage_serverlessrepo/index.html | 10 +- .../coverage_servicediscovery/index.html | 10 +- references/coverage/coverage_ses/index.html | 10 +- references/coverage/coverage_sesv2/index.html | 10 +- references/coverage/coverage_sns/index.html | 10 +- references/coverage/coverage_sqs/index.html | 10 +- references/coverage/coverage_ssm/index.html | 10 +- .../coverage/coverage_sso-admin/index.html | 10 +- .../coverage_stepfunctions/index.html | 10 +- references/coverage/coverage_sts/index.html | 10 +- .../coverage/coverage_support/index.html | 10 +- references/coverage/coverage_swf/index.html | 10 +- .../coverage_timestream-query/index.html | 10 +- .../coverage_timestream-write/index.html | 10 +- .../coverage/coverage_transcribe/index.html | 10 +- .../coverage/coverage_transfer/index.html | 10 +- references/coverage/coverage_xray/index.html | 10 +- references/coverage/index.html | 10 +- references/credentials/index.html | 10 +- references/cross-account-access/index.html | 10 +- references/custom-tls-certificates/index.html | 10 +- references/docker-images/index.html | 10 +- references/extensions/index.html | 10 +- references/external-ports/index.html | 10 +- references/filesystem/index.html | 10 +- references/index.html | 10 +- references/init-hooks/index.html | 10 +- references/internal-endpoints/index.html | 10 +- references/lambda-provider-v2/index.html | 10 +- .../localstack-on-kubernetes/index.html | 10 +- references/logging/index.html | 10 +- references/multi-account-setups/index.html | 10 +- .../created-resources/index.html | 10 +- .../endpoint-url/index.html | 10 +- references/network-troubleshooting/index.html | 10 +- .../network-troubleshooting/readme/index.html | 10 +- .../transparent-endpoint-injection/index.html | 10 +- references/persistence-mechanism/index.html | 10 +- references/podman/index.html | 10 +- references/usage-tracking/index.html | 10 +- sitemap.xml | 2 +- tools/cloud-pods/getting-started/index.html | 1 - tools/cloud-pods/index.html | 1 - tools/cloud-pods/pods-cli/index.html | 1 - tutorials/ecs-ecr-container-app/index.html | 10 +- tutorials/elb-load-balancing/index.html | 10 +- tutorials/index.html | 10 +- tutorials/java-notification-app/index.html | 10 +- .../lambda-ecr-container-images/index.html | 10 +- .../index.html | 10 +- .../s3-static-website-terraform/index.html | 10 +- .../schema-evolution-glue-msk/index.html | 10 +- user-guide/aws/acm/index.html | 10 +- user-guide/aws/amplify/index.html | 10 +- user-guide/aws/apigateway/index.html | 10 +- user-guide/aws/appconfig/index.html | 10 +- .../aws/application-autoscaling/index.html | 10 +- user-guide/aws/appsync/index.html | 10 +- user-guide/aws/athena/index.html | 10 +- user-guide/aws/backup/index.html | 10 +- user-guide/aws/batch/index.html | 10 +- user-guide/aws/cloudformation/index.html | 10 +- user-guide/aws/cloudfront/index.html | 10 +- user-guide/aws/cloudtrail/index.html | 10 +- user-guide/aws/cloudwatch/index.html | 10 +- user-guide/aws/codecommit/index.html | 10 +- user-guide/aws/cognito/index.html | 10 +- user-guide/aws/config/index.html | 10 +- user-guide/aws/cost-explorer/index.html | 10 +- user-guide/aws/docdb/index.html | 10 +- user-guide/aws/dynamodb/index.html | 10 +- user-guide/aws/elastic-beanstalk/index.html | 10 +- .../aws/elastic-compute-cloud/index.html | 10 +- .../aws/elastic-container-registry/index.html | 10 +- .../aws/elastic-container-service/index.html | 10 +- user-guide/aws/elastic-file-system/index.html | 10 +- .../aws/elastic-kubernetes-service/index.html | 10 +- .../aws/elastic-load-balancing/index.html | 10 +- user-guide/aws/elastic-mapreduce/index.html | 10 +- user-guide/aws/elasticache/index.html | 10 +- user-guide/aws/elasticsearch/index.html | 10 +- user-guide/aws/eventbridge/index.html | 10 +- user-guide/aws/feature-coverage/index.html | 10 +- user-guide/aws/fis/index.html | 10 +- user-guide/aws/glacier/index.html | 10 +- user-guide/aws/glue/index.html | 10 +- user-guide/aws/iam/index.html | 10 +- user-guide/aws/iot/index.html | 10 +- user-guide/aws/kinesis-analytics/index.html | 10 +- user-guide/aws/kinesis-firehose/index.html | 10 +- user-guide/aws/kinesis/index.html | 10 +- user-guide/aws/kms/index.html | 10 +- user-guide/aws/lambda/index.html | 10 +- user-guide/aws/logs/index.html | 10 +- .../managed-streaming-for-kafka/index.html | 10 +- user-guide/aws/mediastore/index.html | 10 +- user-guide/aws/mq/index.html | 10 +- user-guide/aws/mwaa/index.html | 10 +- user-guide/aws/neptune/index.html | 10 +- user-guide/aws/opensearch/index.html | 10 +- user-guide/aws/organization/index.html | 10 +- user-guide/aws/qldb/index.html | 10 +- user-guide/aws/rds/index.html | 10 +- user-guide/aws/redshift/index.html | 10 +- user-guide/aws/resourcegroups/index.html | 10 +- user-guide/aws/route53/index.html | 10 +- user-guide/aws/s3/index.html | 10 +- user-guide/aws/sagemaker/index.html | 10 +- user-guide/aws/secretsmanager/index.html | 10 +- .../aws/security-token-service/index.html | 10 +- user-guide/aws/serverlessrepo/index.html | 10 +- user-guide/aws/servicediscovery/index.html | 10 +- user-guide/aws/ses/index.html | 10 +- user-guide/aws/sns/index.html | 10 +- user-guide/aws/sqs/index.html | 10 +- user-guide/aws/stepfunctions/index.html | 10 +- user-guide/aws/support/index.html | 10 +- user-guide/aws/swf/index.html | 10 +- user-guide/aws/systems-manager/index.html | 10 +- user-guide/aws/timestream/index.html | 10 +- user-guide/aws/transcribe/index.html | 10 +- user-guide/aws/transfer/index.html | 10 +- user-guide/aws/xray/index.html | 10 +- user-guide/ci/circle-ci/index.html | 10 +- user-guide/ci/drone-ci/index.html | 10 +- user-guide/ci/github-actions/index.html | 10 +- user-guide/ci/gitlab-ci/index.html | 10 +- user-guide/ci/harness-ci/index.html | 10 +- user-guide/ci/index.html | 10 +- user-guide/ci/travis-ci/index.html | 10 +- .../developing-extensions/index.html | 10 +- user-guide/extensions/index.html | 10 +- .../extensions/managing-extensions/index.html | 10 +- .../extensions/official-extensions/index.html | 10 +- user-guide/extensions/quickstart/index.html | 10 +- user-guide/index.html | 10 +- user-guide/integrations/architect/index.html | 10 +- user-guide/integrations/aws-cdk/index.html | 10 +- user-guide/integrations/aws-cli/index.html | 10 +- user-guide/integrations/aws-sam/index.html | 10 +- .../integrations/cdk-for-terraform/index.html | 10 +- user-guide/integrations/chalice/index.html | 10 +- user-guide/integrations/copilot/index.html | 10 +- user-guide/integrations/crossplane/index.html | 10 +- user-guide/integrations/gitpod/index.html | 10 +- user-guide/integrations/index.html | 10 +- user-guide/integrations/kafka/index.html | 10 +- user-guide/integrations/pulumi/index.html | 10 +- user-guide/integrations/sdks/cpp/index.html | 10 +- .../integrations/sdks/dotnet/index.html | 10 +- user-guide/integrations/sdks/go/index.html | 10 +- user-guide/integrations/sdks/index.html | 10 +- user-guide/integrations/sdks/java/index.html | 10 +- .../integrations/sdks/javascript/index.html | 10 +- user-guide/integrations/sdks/php/index.html | 10 +- .../integrations/sdks/python/index.html | 10 +- user-guide/integrations/sdks/ruby/index.html | 10 +- .../serverless-framework/index.html | 10 +- .../spring-cloud-function/index.html | 10 +- user-guide/integrations/terraform/index.html | 10 +- .../integrations/testcontainers/index.html | 10 +- .../tools/cloud-pods/community/index.html | 18 +- .../cloud-pods/getting-started/index.html | 95 ++-- user-guide/tools/cloud-pods/index.html | 13 +- user-guide/tools/cloud-pods/index.xml | 474 ++++++++---------- .../tools/cloud-pods/launchpad/index.html | 28 +- .../tools/cloud-pods/pods-cli/index.html | 137 ++--- user-guide/tools/cloud-pods/pods-ui.png | Bin 173391 -> 329491 bytes .../tools/cloud-pods/remotes/index.html | 10 +- user-guide/tools/cockpit/index.html | 10 +- user-guide/tools/index.html | 10 +- user-guide/tools/index.xml | 20 +- .../tools/lambda-tools/debugging/index.html | 10 +- .../lambda-tools/hot-reloading/index.html | 10 +- user-guide/tools/lambda-tools/index.html | 10 +- .../localstack-docker-extension/index.html | 10 +- user-guide/tools/localsurf/index.html | 10 +- user-guide/tools/testing-tools/index.html | 10 +- .../dns-server/index.html | 10 +- .../transparent-endpoint-injection/index.html | 10 +- .../patched-sdks/index.html | 10 +- .../web-application/accounts/index.html | 10 +- .../cloud-pods-browser/index.html | 10 +- .../custom-local-endpoint/index.html | 10 +- .../export-import-state/index.html | 10 +- .../extensions-library/index.html | 10 +- user-guide/web-application/index.html | 10 +- .../resource-browser/index.html | 10 +- .../single-sign-on/azure-ad/index.html | 10 +- .../web-application/single-sign-on/index.html | 10 +- .../web-application/stack-insights/index.html | 10 +- user-guide/web-application/teams/index.html | 10 +- 308 files changed, 1809 insertions(+), 2829 deletions(-) delete mode 100644 categories/cli/index.html delete mode 100644 categories/cli/index.xml delete mode 100644 categories/persistence/index.html delete mode 100644 categories/persistence/index.xml delete mode 100644 tools/cloud-pods/getting-started/index.html delete mode 100644 tools/cloud-pods/index.html delete mode 100644 tools/cloud-pods/pods-cli/index.html diff --git a/academy/index.html b/academy/index.html index 816e0dff4b..148e9cc7e6 100644 --- a/academy/index.html +++ b/academy/index.html @@ -130,11 +130,11 @@
  • +
  • +
  • +
  • +
  • +
  • diff --git a/academy/localstack-101/cloud-pods/index.html b/academy/localstack-101/cloud-pods/index.html index 8c4ab1e42e..f3e268fb55 100644 --- a/academy/localstack-101/cloud-pods/index.html +++ b/academy/localstack-101/cloud-pods/index.html @@ -130,11 +130,11 @@
  • +
  • +
  • +
  • +
  • +
  • diff --git a/academy/localstack-101/course-overview/index.html b/academy/localstack-101/course-overview/index.html index 3964911158..e253986b5a 100644 --- a/academy/localstack-101/course-overview/index.html +++ b/academy/localstack-101/course-overview/index.html @@ -130,11 +130,11 @@
  • +
  • +
  • +
  • +
  • +
  • diff --git a/academy/localstack-101/full-project-demo/index.html b/academy/localstack-101/full-project-demo/index.html index 28256bd7ae..f6fa5d316f 100644 --- a/academy/localstack-101/full-project-demo/index.html +++ b/academy/localstack-101/full-project-demo/index.html @@ -130,11 +130,11 @@
  • +
  • +
  • +
  • +
  • +
  • diff --git a/academy/localstack-101/getting-started/index.html b/academy/localstack-101/getting-started/index.html index 2a9557da5a..6d83bd6124 100644 --- a/academy/localstack-101/getting-started/index.html +++ b/academy/localstack-101/getting-started/index.html @@ -130,11 +130,11 @@
  • +
  • +
  • +
  • +
  • +
  • diff --git a/academy/localstack-101/index.html b/academy/localstack-101/index.html index 5516b1fa1b..275db0dbc6 100644 --- a/academy/localstack-101/index.html +++ b/academy/localstack-101/index.html @@ -130,11 +130,11 @@
  • +
  • +
  • +
  • +
  • +
  • diff --git a/academy/localstack-101/web-app-resource-browser/index.html b/academy/localstack-101/web-app-resource-browser/index.html index 66bde1d4e6..5dd99b6a87 100644 --- a/academy/localstack-101/web-app-resource-browser/index.html +++ b/academy/localstack-101/web-app-resource-browser/index.html @@ -130,11 +130,11 @@
  • +
  • +
  • +
  • +
  • +
  • diff --git a/academy/localstack-101/what-is-localstack/index.html b/academy/localstack-101/what-is-localstack/index.html index a3d88dd11a..f3037a0eaf 100644 --- a/academy/localstack-101/what-is-localstack/index.html +++ b/academy/localstack-101/what-is-localstack/index.html @@ -130,11 +130,11 @@
  • +
  • +
  • +
  • +
  • +
  • diff --git a/academy/localstack-101/why-localstack/index.html b/academy/localstack-101/why-localstack/index.html index 984d107705..17decf335f 100644 --- a/academy/localstack-101/why-localstack/index.html +++ b/academy/localstack-101/why-localstack/index.html @@ -130,11 +130,11 @@
  • +
  • +
  • +
  • +
  • +
  • diff --git a/applications/index.html b/applications/index.html index ffc0cc850d..81e7746655 100644 --- a/applications/index.html +++ b/applications/index.html @@ -130,11 +130,11 @@
  • +
  • +
  • +
  • +
  • +
  • diff --git a/applications/temp/index.html b/applications/temp/index.html index fd37a3341b..f8581eb687 100644 --- a/applications/temp/index.html +++ b/applications/temp/index.html @@ -126,11 +126,11 @@
  • +
  • +
  • +
  • +
  • +
  • diff --git a/categories/cli/index.html b/categories/cli/index.html deleted file mode 100644 index 8f43ba2af7..0000000000 --- a/categories/cli/index.html +++ /dev/null @@ -1,7 +0,0 @@ -CLI | Docs - -

    Category: CLI

    All Categories
    - - - \ No newline at end of file diff --git a/categories/cli/index.xml b/categories/cli/index.xml deleted file mode 100644 index 0105f9e2fe..0000000000 --- a/categories/cli/index.xml +++ /dev/null @@ -1,207 +0,0 @@ -Docs – CLI/categories/cli/Recent content in CLI on DocsHugo -- gohugo.ioUser-Guide: Getting started with the Cloud Pods CLI/user-guide/tools/cloud-pods/getting-started/Mon, 01 Jan 0001 00:00:00 +0000/user-guide/tools/cloud-pods/getting-started/ -<p>With the LocalStack Cloud Pods command-line interface (CLI), the <code>pod</code> command, you can create cloud pods and manage them from a terminal. The Cloud Pods CLI is ideal in the following situations:</p> -<ul> -<li>Taking a snapshot of your running LocalStack instance.</li> -<li>Sharing your snapshot across teams with LocalStack Team features.</li> -<li>Injecting snapshots into a running instance without a restart.</li> -</ul> -<h2 id="installation">Installation</h2> -<p>LocalStack Cloud Pods CLI is directly available with the LocalStack installation, and no further installation is required to get started. If you are a Pro user, we recommend you to export the <code>LOCALSTACK_API_KEY</code> as an environment variable to allow you to use the full spectrum of LocalStack Cloud Pods feature.</p> -<p>This tutorial is intended for licensed users. The Community users can replicate a similar workflow by leveraging the <code>save</code> and <code>load</code> commands available to them. For more details, look at our <a href="/user-guide/tools/cloud-pods/community/">Community Cloud Pods guide</a>.</p> -<h2 id="basic-example">Basic example</h2> -<p>In this tutorial, you&rsquo;ll learn how to make a basic usage of LocalStack Cloud Pods CLI. This tutorial is intended for Pro users who wish to get more acquainted with Cloud Pods CLI. It assumes you have basic knowledge of:</p> -<ul> -<li>LocalStack</li> -<li><code>awscli</code> commands</li> -<li>Understanding of Cloud Pods workflow</li> -</ul> -<p>By the end of this tutorial, you would be able to create a snapshot of your running LocalStack instance, commit it and would be able to push this to your LocalStack account.</p> -<h3 id="procedure">Procedure</h3> -<p>To get started, start your LocalStack instance with your <code>LOCALSTACK_API_KEY</code> configured as an environment variable:</p> -<ol> -<li> -<p>Use the <code>awslocal</code> CLI to create AWS resources inside your running LocalStack instance.</p> -<p>As an example, we will create a S3 bucket using the <code>awslocal</code> CLI and enter some data inside it:</p> -<div class="highlight"><pre tabindex="0" style="background-color:#f8f8f8;-moz-tab-size:4;-o-tab-size:4;tab-size:4;"><code class="language-text" data-lang="text"><span style="display:flex;"><span><span class="command-prefix">$ </span>awslocal s3 mb s3://test -</span></span><span style="display:flex;"><span><span class="command-prefix">$ </span>echo &#34;hello world&#34; &gt; /tmp/hello-world -</span></span><span style="display:flex;"><span><span class="command-prefix">$ </span>awslocal s3 cp /tmp/hello-world s3://test/hello-world -</span></span><span style="display:flex;"><span><span class="command-prefix">$ </span>awslocal s3 ls s3://test/</span></span></code></pre></div> -</li> -<li> -<p>Save your Pod state using the <code>save</code> command by specifying the desired name as the first argument. This command will save the pod and register it to the remote platform. Optionally you can attach a message to the saved Cloud Pod with the <code>--message</code> flag:</p> -<div class="highlight"><pre tabindex="0" style="background-color:#f8f8f8;-moz-tab-size:4;-o-tab-size:4;tab-size:4;"><code class="language-text" data-lang="text"><span style="display:flex;"><span><span class="command-prefix">$ </span>localstack pod save &lt;pod-name&gt; --message &#34;&lt;description-message&gt;&#34;</span></span></code></pre></div> -</li> -<li> -<p>Check the list of Cloud Pods available to you and your organization using the <code>list</code> command:</p> -<div class="highlight"><pre tabindex="0" style="background-color:#f8f8f8;-moz-tab-size:4;-o-tab-size:4;tab-size:4;"><code class="language-text" data-lang="text"><span style="display:flex;"><span><span class="command-prefix">$ </span>localstack pod list -</span></span><span style="display:flex;"><span> ┏━━━━━━━━━━━━━━┳━━━━━━━━━━━┓ -</span></span><span style="display:flex;"><span> ┃ local/remote ┃ Name ┃ -</span></span><span style="display:flex;"><span> ┡━━━━━━━━━━━━━━╇━━━━━━━━━━━┩ -</span></span><span style="display:flex;"><span> │ local+remote │ pod-name │ -</span></span><span style="display:flex;"><span> └──────────────┴───────────┘</span></span></code></pre></div> -</li> -<li> -<p>Optional: You can inspect the contents of a Cloud Pod using the <code>inspect</code> command:</p> -<div class="highlight"><pre tabindex="0" style="background-color:#f8f8f8;-moz-tab-size:4;-o-tab-size:4;tab-size:4;"><code class="language-text" data-lang="text"><span style="display:flex;"><span><span class="command-prefix">$ </span>localstack pod inspect --name &lt;pod-name&gt; -</span></span><span style="display:flex;"><span> - 000000000000 -</span></span><span style="display:flex;"><span> - S3 -</span></span><span style="display:flex;"><span> - global -</span></span><span style="display:flex;"><span> - listBuckets -</span></span><span style="display:flex;"><span> - Buckets -</span></span><span style="display:flex;"><span> - 0 -</span></span><span style="display:flex;"><span> - Name = test -</span></span><span style="display:flex;"><span> - CreationDate = 2022-10-04T17:03:47.000Z -</span></span><span style="display:flex;"><span> - Owner -</span></span><span style="display:flex;"><span> - DisplayName = webfile -</span></span><span style="display:flex;"><span> - ID = bcaf1ffd86f41161ca5fb16fd081034f</span></span></code></pre></div> -</li> -<li> -<p>On an alternate machine, start LocalStack with the API key configured, and pull the Cloud Pod we created previously using <code>load</code> command with the Cloud Pod name as the first argument:</p> -<div class="highlight"><pre tabindex="0" style="background-color:#f8f8f8;-moz-tab-size:4;-o-tab-size:4;tab-size:4;"><code class="language-text" data-lang="text"><span style="display:flex;"><span><span class="command-prefix">$ </span>localstack pod load &lt;pod-name&gt; -</span></span><span style="display:flex;"><span> -</span></span><span style="display:flex;"><span> Done.</span></span></code></pre></div> -<p>Let&rsquo;s check the S3 buckets in our Cloud Pod: -<div class="highlight"><pre tabindex="0" style="background-color:#f8f8f8;-moz-tab-size:4;-o-tab-size:4;tab-size:4;"><code class="language-text" data-lang="text"><span style="display:flex;"><span><span class="command-prefix">$ </span>awslocal s3 ls s3://test/ -</span></span><span style="display:flex;"><span> -</span></span><span style="display:flex;"><span> 2022-10-04 22:33:54 12 hello-world</span></span></code></pre></div> -</p> -</li> -<li> -<p>Optional: You can make the Cloud Pod available to users outside your organization by making it public:</p> -<div class="highlight"><pre tabindex="0" style="background-color:#f8f8f8;-moz-tab-size:4;-o-tab-size:4;tab-size:4;"><code class="language-text" data-lang="text"><span style="display:flex;"><span><span class="command-prefix">$ </span>localstack pod save &lt;pod-name&gt; --visibility public</span></span></code></pre></div> -</li> -</ol> -<p>For a more detailed manual, refer to our <a href="/user-guide/tools/cloud-pods/pods-cli/">command-line interface (CLI) guide</a>. To check your Pods on the LocalStack Web user interface, navigate to <a href="https://app.localstack.cloud/pods">Cloud Pods page</a>.</p>User-Guide: Cloud Pods CLI command reference/user-guide/tools/cloud-pods/pods-cli/Mon, 01 Jan 0001 00:00:00 +0000/user-guide/tools/cloud-pods/pods-cli/ -<p>This reference provides descriptions and example commands for LocalStack Cloud Pods CLI (<code>pod</code>) commands.</p> -<h2 id="syntax">Syntax</h2> -<p>Use the following syntax to run <code>localstack pod</code> commands from your terminal window:</p> -<div class="highlight"><pre tabindex="0" style="background-color:#f8f8f8;-moz-tab-size:4;-o-tab-size:4;tab-size:4;"><code class="language-text" data-lang="text"><span style="display:flex;"><span><span class="command-prefix">$ </span>localstack pod [OPTIONS] COMMAND [ARGS]</span></span></code></pre></div> -<p>In the above syntax:</p> -<ul> -<li><code>COMMAND</code> specifies the operation you want to perform with your Cloud Pods (<code>save</code> or <code>load</code>).</li> -<li><code>OPTIONS</code> specifies the optional flags.</li> -<li><code>ARGS</code> specifies the command arguments.</li> -</ul> -<h2 id="commands">Commands</h2> -<p>The following section lists the available commands for the Cloud Pods CLI.</p> -<h3 id="save"><code>save</code></h3> -<p>The <code>save</code> command creates a new version of a Cloud Pod. Pro users can dump the Cloud Pod locally or upload it to the LocalStack platform. To dump the state locally, pass a local file URI as an argument to the <code>save</code> command. For instance, the following command:</p> -<div class="highlight"><pre tabindex="0" style="background-color:#f8f8f8;-moz-tab-size:4;-o-tab-size:4;tab-size:4;"><code class="language-text" data-lang="text"><span style="display:flex;"><span><span class="command-prefix">$ </span>localstack pod save file://&lt;path_to_disk&gt;/my-pod</span></span></code></pre></div> -<p>The above command will create a zip file named <code>my-pod</code> to the specified location on the disk. To use the Cloud Pods platform, specify the Cloud Pod&rsquo;s name as an argument, for example:</p> -<div class="highlight"><pre tabindex="0" style="background-color:#f8f8f8;-moz-tab-size:4;-o-tab-size:4;tab-size:4;"><code class="language-text" data-lang="text"><span style="display:flex;"><span><span class="command-prefix">$ </span>localstack pod save my-pod</span></span></code></pre></div> -<p>The above command creates a version of <code>my-pod</code> and registers it to our platform. Pushing already existing pod results in creating a new version and, eventually, uploading it to the platform. Users can also select a subset of AWS services they wish to incorporate in a new Cloud Pod version with the <code>--services</code> option.</p> -<p>Users who want to make a Cloud Pod accessible outside their organization can mark it as <strong>public</strong> with the following command:</p> -<div class="highlight"><pre tabindex="0" style="background-color:#f8f8f8;-moz-tab-size:4;-o-tab-size:4;tab-size:4;"><code class="language-text" data-lang="text"><span style="display:flex;"><span><span class="command-prefix">$ </span>localstack pod push --name &lt;pod_name&gt; --visibility public</span></span></code></pre></div> -<p>The above command does not create a new version and requires a version already registered with the platform. The CLI manual for the <code>save</code> command is as follows:</p> -<div class="highlight"><pre tabindex="0" style="background-color:#f8f8f8;-moz-tab-size:4;-o-tab-size:4;tab-size:4;"><code class="language-bash" data-lang="bash"><span style="display:flex;"><span>Usage: python -m localstack.cli.main pod save <span style="color:#ce5c00;font-weight:bold">[</span>OPTIONS<span style="color:#ce5c00;font-weight:bold">]</span> URL_OR_NAME -</span></span><span style="display:flex;"><span> -</span></span><span style="display:flex;"><span> Save the current state of the LocalStack container in a Cloud Pod. A Cloud Pod can be exported -</span></span><span style="display:flex;"><span> locally or registered within the LocalStack Pod<span style="color:#4e9a06">&#39;s platform (with a Pro license). An optional -</span></span></span><span style="display:flex;"><span><span style="color:#4e9a06"> message can be attached to any Cloud Pod. Furthermore, one could decide to export only a subset -</span></span></span><span style="display:flex;"><span><span style="color:#4e9a06"> of services with the optional --service option. -</span></span></span><span style="display:flex;"><span><span style="color:#4e9a06"> -</span></span></span><span style="display:flex;"><span><span style="color:#4e9a06"> To export on a local path run the following command: -</span></span></span><span style="display:flex;"><span><span style="color:#4e9a06"> localstack pod save file://&lt;path_on_disk&gt;/&lt;pod_name&gt; -</span></span></span><span style="display:flex;"><span><span style="color:#4e9a06"> -</span></span></span><span style="display:flex;"><span><span style="color:#4e9a06"> The output will be a &lt;pod_name&gt; zip file in the specified directory. This Cloud Pod instance can -</span></span></span><span style="display:flex;"><span><span style="color:#4e9a06"> be restored at any point in time with the load command. -</span></span></span><span style="display:flex;"><span><span style="color:#4e9a06"> -</span></span></span><span style="display:flex;"><span><span style="color:#4e9a06"> To use the LocalStack Pod&#39;</span>s platform, the desired Pod<span style="color:#4e9a06">&#39;s name only will suffice, e,g.: -</span></span></span><span style="display:flex;"><span><span style="color:#4e9a06"> -</span></span></span><span style="display:flex;"><span><span style="color:#4e9a06"> localstack pod save &lt;pod_name&gt; -</span></span></span><span style="display:flex;"><span><span style="color:#4e9a06"> -</span></span></span><span style="display:flex;"><span><span style="color:#4e9a06"> Please be aware that each following save invocation with the same name will result in a new -</span></span></span><span style="display:flex;"><span><span style="color:#4e9a06"> version being created. -</span></span></span><span style="display:flex;"><span><span style="color:#4e9a06"> -</span></span></span><span style="display:flex;"><span><span style="color:#4e9a06">Options: -</span></span></span><span style="display:flex;"><span><span style="color:#4e9a06"> -m, --message TEXT Add a comment describing this Cloud Pod&#39;</span>s version -</span></span><span style="display:flex;"><span> -s, --services TEXT Comma-delimited list of services to push in the Cloud Pod <span style="color:#ce5c00;font-weight:bold">(</span>all by default<span style="color:#ce5c00;font-weight:bold">)</span> -</span></span><span style="display:flex;"><span> --visibility TEXT Set the visibility of the Cloud Pod <span style="color:#ce5c00;font-weight:bold">[</span><span style="color:#4e9a06">`</span>public<span style="color:#4e9a06">`</span> or <span style="color:#4e9a06">`</span>private<span style="color:#4e9a06">`</span><span style="color:#ce5c00;font-weight:bold">]</span>. Does not -</span></span><span style="display:flex;"><span> create a new version -</span></span><span style="display:flex;"><span> --help Show this message and exit. -</span></span></code></pre></div> -<div class="alert alert-primary" role="alert"> -<h4 class="alert-heading">Note</h4> -Community users have access to a restricted version of the <code>save</code> command. -In particular, they can simply invoke the <code>save</code> command with a file URI as an argument. -</div> -<h3 id="load"><code>load</code></h3> -<p>The <code>load</code> command is the inverse operation of <code>save</code>. It retrieves the content of a previously stored Cloud Pod from the local file system or the Cloud Pod&rsquo;s platform and injects it into the application runtime.</p> -<p>The <code>load</code> command takes an argument that can either be a URI or a Cloud Pods name. While the first option is available to all users, the second is valid only for licensed ones.</p> -<p>By default, the injecting state updates the application runtime at a service level. Using the merge injection strategy, the state of all services specified in the injecting state is reflected precisely in the application runtime, while all other active services remain unchanged.</p> -<p>The <code>--strategy</code> option can be used to change such default injection behavior. More specifically, the overwrite strategy will ensure the application runtime is an exact instance of the injecting state. The deep-merge strategy will perform a fine-grain merge of the injecting state into the application runtime.</p> -<p>The CLI manual for the <code>load</code> command is as follows:</p> -<div class="highlight"><pre tabindex="0" style="background-color:#f8f8f8;-moz-tab-size:4;-o-tab-size:4;tab-size:4;"><code class="language-shell" data-lang="shell"><span style="display:flex;"><span>Usage: python -m localstack.cli.main pod load <span style="color:#ce5c00;font-weight:bold">[</span>OPTIONS<span style="color:#ce5c00;font-weight:bold">]</span> URL_OR_NAME -</span></span><span style="display:flex;"><span> -</span></span><span style="display:flex;"><span> Load a Cloud Pod into the running LocalStack container. Users can import Pods different sources: -</span></span><span style="display:flex;"><span> community users can store and retrieve Pods from <span style="color:#204a87">local</span> storage or any provided HTTP URL<span style="color:#000;font-weight:bold">;</span> -</span></span><span style="display:flex;"><span> licensed users can take advantage of the LocalStack Pod<span style="color:#4e9a06">&#39;s platform to ease the storage, -</span></span></span><span style="display:flex;"><span><span style="color:#4e9a06"> versioning, and retrieval of Pods. -</span></span></span><span style="display:flex;"><span><span style="color:#4e9a06"> -</span></span></span><span style="display:flex;"><span><span style="color:#4e9a06"> The --source option specifies a URI scheme that point to the Cloud Pod&#39;</span>s resources to import. -</span></span><span style="display:flex;"><span> -</span></span><span style="display:flex;"><span> We support the following protocols: -</span></span><span style="display:flex;"><span> localstack pod load file://&lt;path_to_disk&gt; -</span></span><span style="display:flex;"><span> localstack pod load https://&lt;some_url&gt; -</span></span><span style="display:flex;"><span> localstack pod load git://&lt;user&gt;/&lt;repo&gt;/&lt;local_repo_path&gt; -</span></span><span style="display:flex;"><span> -</span></span><span style="display:flex;"><span> The latter option is merely a shortcut <span style="color:#204a87;font-weight:bold">for</span> --source -</span></span><span style="display:flex;"><span> https://raw.githubusercontent.com/&lt;user&gt;/&lt;repo&gt;/&lt;branch&gt;/&lt;path&gt; -</span></span><span style="display:flex;"><span> -</span></span><span style="display:flex;"><span> Importing via a provided --source is available <span style="color:#204a87;font-weight:bold">for</span> all users. Licensed users can omit this -</span></span><span style="display:flex;"><span> option and simply provide a name <span style="color:#204a87;font-weight:bold">for</span> their Cloud Pods. -</span></span><span style="display:flex;"><span> -</span></span><span style="display:flex;"><span>Options: -</span></span><span style="display:flex;"><span> -s, --strategy TEXT Inject strategy <span style="color:#ce5c00;font-weight:bold">(</span>merge, overwrite, deep-merge<span style="color:#ce5c00;font-weight:bold">)</span>. -</span></span><span style="display:flex;"><span> --help Show this message and exit. -</span></span></code></pre></div> -<div class="alert alert-primary" role="alert"> -<h4 class="alert-heading">Note</h4> -Similar to the <code>save</code> command, the usage of the Cloud Pod&rsquo;s platform is restricted to licensed users. Community users can load a Cloud Pod from a local URI file, URL, or public GitHub repository. However, they have no access to Cloud Pods versioning. -</div> -<h3 id="delete"><code>delete</code></h3> -<p>The <code>delete</code> command let users delete a Cloud Pod stored in the remote platform. The CLI manual for the <code>delete</code> command is as follows:</p> -<div class="highlight"><pre tabindex="0" style="background-color:#f8f8f8;-moz-tab-size:4;-o-tab-size:4;tab-size:4;"><code class="language-shell" data-lang="shell"><span style="display:flex;"><span>Usage: python -m localstack.cli.main pod delete <span style="color:#ce5c00;font-weight:bold">[</span>OPTIONS<span style="color:#ce5c00;font-weight:bold">]</span> -</span></span><span style="display:flex;"><span> -</span></span><span style="display:flex;"><span> Delete a Cloud Pod register on the remove LocalStack Pod<span style="color:#4e9a06">&#39;s platform. This command will cancel -</span></span></span><span style="display:flex;"><span><span style="color:#4e9a06"> all the versions of a created Pod and won&#39;</span>t be reversible. -</span></span><span style="display:flex;"><span> -</span></span><span style="display:flex;"><span>Options: -</span></span><span style="display:flex;"><span> -n, --name TEXT Name of the Cloud Pod <span style="color:#ce5c00;font-weight:bold">[</span>required<span style="color:#ce5c00;font-weight:bold">]</span> -</span></span><span style="display:flex;"><span> --help Show this message and exit. -</span></span></code></pre></div><h3 id="inspect"><code>inspect</code></h3> -<p>The <code>inspect</code> command simply lets the user inspect the content of a Cloud Pod. The CLI manual for the <code>inspect</code> command is as follows:</p> -<div class="highlight"><pre tabindex="0" style="background-color:#f8f8f8;-moz-tab-size:4;-o-tab-size:4;tab-size:4;"><code class="language-shell" data-lang="shell"><span style="display:flex;"><span>Usage: python -m localstack.cli.main pod inspect <span style="color:#ce5c00;font-weight:bold">[</span>OPTIONS<span style="color:#ce5c00;font-weight:bold">]</span> -</span></span><span style="display:flex;"><span> -</span></span><span style="display:flex;"><span> Inspect the contents of a Cloud Pod -</span></span><span style="display:flex;"><span> -</span></span><span style="display:flex;"><span>Options: -</span></span><span style="display:flex;"><span> -n, --name TEXT Name of the Cloud Pod <span style="color:#ce5c00;font-weight:bold">[</span>required<span style="color:#ce5c00;font-weight:bold">]</span> -</span></span><span style="display:flex;"><span> -f, --format TEXT Format <span style="color:#ce5c00;font-weight:bold">(</span>curses, rich, json<span style="color:#ce5c00;font-weight:bold">)</span>. -</span></span><span style="display:flex;"><span> --help Show this message and exit. -</span></span></code></pre></div><h3 id="list">list</h3> -<p>The <code>list</code> command lists all of the available Cloud Pods. It shows all the pods available for a single user and its organization by default. If the <code>--public option is passed to the commands, it shows only the Cloud Pods marked as public and are, therefore, available to all licensed users. The CLI manual for the </code>list` command is as follows:</p> -<div class="highlight"><pre tabindex="0" style="background-color:#f8f8f8;-moz-tab-size:4;-o-tab-size:4;tab-size:4;"><code class="language-shell" data-lang="shell"><span style="display:flex;"><span>Usage: python -m localstack.cli.main pod list <span style="color:#ce5c00;font-weight:bold">[</span>OPTIONS<span style="color:#ce5c00;font-weight:bold">]</span> -</span></span><span style="display:flex;"><span> -</span></span><span style="display:flex;"><span> List all the Cloud Pods available <span style="color:#204a87;font-weight:bold">for</span> a single user, or <span style="color:#204a87;font-weight:bold">for</span> an entire organization, <span style="color:#204a87;font-weight:bold">if</span> the user -</span></span><span style="display:flex;"><span> is part of one. -</span></span><span style="display:flex;"><span> -</span></span><span style="display:flex;"><span> With the --public flag, it lists the all the available public Cloud Pods. A public Cloud Pod is -</span></span><span style="display:flex;"><span> available across the boundary of a user ond/or organization. In other words, any public Cloud -</span></span><span style="display:flex;"><span> Pod can be injected by any other user holding a LocalStack Pro <span style="color:#ce5c00;font-weight:bold">(</span>or above<span style="color:#ce5c00;font-weight:bold">)</span> license. -</span></span><span style="display:flex;"><span> -</span></span><span style="display:flex;"><span>Options: -</span></span><span style="display:flex;"><span> -p, --public List all the available public Cloud Pods -</span></span><span style="display:flex;"><span> --help Show this message and exit. -</span></span></code></pre></div><h3 id="versions">versions</h3> -<p>The <code>versions</code> command simply lists all the available versions of a Cloud Pod. The CLI manual for the <code>version</code> command is as follows:</p> -<div class="highlight"><pre tabindex="0" style="background-color:#f8f8f8;-moz-tab-size:4;-o-tab-size:4;tab-size:4;"><code class="language-shell" data-lang="shell"><span style="display:flex;"><span>Usage: python -m localstack.cli.main pod versions <span style="color:#ce5c00;font-weight:bold">[</span>OPTIONS<span style="color:#ce5c00;font-weight:bold">]</span> -</span></span><span style="display:flex;"><span> -</span></span><span style="display:flex;"><span> List the versions available <span style="color:#204a87;font-weight:bold">for</span> a Cloud Pod. Each invocation of the save <span style="color:#204a87">command</span> is going to -</span></span><span style="display:flex;"><span> create a new version <span style="color:#204a87;font-weight:bold">for</span> a named Cloud Pod, is a Pod with such name already does exist in the -</span></span><span style="display:flex;"><span> LocalStack Pods platform. -</span></span><span style="display:flex;"><span> -</span></span><span style="display:flex;"><span>Options: -</span></span><span style="display:flex;"><span> -n, --name TEXT Name of the Cloud Pod <span style="color:#ce5c00;font-weight:bold">[</span>required<span style="color:#ce5c00;font-weight:bold">]</span> -</span></span><span style="display:flex;"><span> --help Show this message and exit. -</span></span></code></pre></div> \ No newline at end of file diff --git a/categories/index.html b/categories/index.html index 870ec28f28..e7ef2c9f5a 100644 --- a/categories/index.html +++ b/categories/index.html @@ -1,7 +1,7 @@ Categories | Docs
    +| docs \ No newline at end of file diff --git a/categories/localstack-pro/index.html b/categories/localstack-pro/index.html index 738153d50d..232e8f2753 100644 --- a/categories/localstack-pro/index.html +++ b/categories/localstack-pro/index.html @@ -1,7 +1,7 @@ LocalStack Pro | Docs

    Category: LocalStack Pro

    All Categories
    +| docs

    Category: LocalStack Pro

    All Categories
    \ No newline at end of file diff --git a/categories/localstack-pro/index.xml b/categories/localstack-pro/index.xml index 68ff0b046c..90878c822f 100644 --- a/categories/localstack-pro/index.xml +++ b/categories/localstack-pro/index.xml @@ -1,77 +1,4 @@ -Docs – LocalStack Pro/categories/localstack-pro/Recent content in LocalStack Pro on DocsHugo -- gohugo.ioSat, 11 Feb 2023 00:00:00 +0000User-Guide: Getting started with the Cloud Pods CLI/user-guide/tools/cloud-pods/getting-started/Mon, 01 Jan 0001 00:00:00 +0000/user-guide/tools/cloud-pods/getting-started/ -<p>With the LocalStack Cloud Pods command-line interface (CLI), the <code>pod</code> command, you can create cloud pods and manage them from a terminal. The Cloud Pods CLI is ideal in the following situations:</p> -<ul> -<li>Taking a snapshot of your running LocalStack instance.</li> -<li>Sharing your snapshot across teams with LocalStack Team features.</li> -<li>Injecting snapshots into a running instance without a restart.</li> -</ul> -<h2 id="installation">Installation</h2> -<p>LocalStack Cloud Pods CLI is directly available with the LocalStack installation, and no further installation is required to get started. If you are a Pro user, we recommend you to export the <code>LOCALSTACK_API_KEY</code> as an environment variable to allow you to use the full spectrum of LocalStack Cloud Pods feature.</p> -<p>This tutorial is intended for licensed users. The Community users can replicate a similar workflow by leveraging the <code>save</code> and <code>load</code> commands available to them. For more details, look at our <a href="/user-guide/tools/cloud-pods/community/">Community Cloud Pods guide</a>.</p> -<h2 id="basic-example">Basic example</h2> -<p>In this tutorial, you&rsquo;ll learn how to make a basic usage of LocalStack Cloud Pods CLI. This tutorial is intended for Pro users who wish to get more acquainted with Cloud Pods CLI. It assumes you have basic knowledge of:</p> -<ul> -<li>LocalStack</li> -<li><code>awscli</code> commands</li> -<li>Understanding of Cloud Pods workflow</li> -</ul> -<p>By the end of this tutorial, you would be able to create a snapshot of your running LocalStack instance, commit it and would be able to push this to your LocalStack account.</p> -<h3 id="procedure">Procedure</h3> -<p>To get started, start your LocalStack instance with your <code>LOCALSTACK_API_KEY</code> configured as an environment variable:</p> -<ol> -<li> -<p>Use the <code>awslocal</code> CLI to create AWS resources inside your running LocalStack instance.</p> -<p>As an example, we will create a S3 bucket using the <code>awslocal</code> CLI and enter some data inside it:</p> -<div class="highlight"><pre tabindex="0" style="background-color:#f8f8f8;-moz-tab-size:4;-o-tab-size:4;tab-size:4;"><code class="language-text" data-lang="text"><span style="display:flex;"><span><span class="command-prefix">$ </span>awslocal s3 mb s3://test -</span></span><span style="display:flex;"><span><span class="command-prefix">$ </span>echo &#34;hello world&#34; &gt; /tmp/hello-world -</span></span><span style="display:flex;"><span><span class="command-prefix">$ </span>awslocal s3 cp /tmp/hello-world s3://test/hello-world -</span></span><span style="display:flex;"><span><span class="command-prefix">$ </span>awslocal s3 ls s3://test/</span></span></code></pre></div> -</li> -<li> -<p>Save your Pod state using the <code>save</code> command by specifying the desired name as the first argument. This command will save the pod and register it to the remote platform. Optionally you can attach a message to the saved Cloud Pod with the <code>--message</code> flag:</p> -<div class="highlight"><pre tabindex="0" style="background-color:#f8f8f8;-moz-tab-size:4;-o-tab-size:4;tab-size:4;"><code class="language-text" data-lang="text"><span style="display:flex;"><span><span class="command-prefix">$ </span>localstack pod save &lt;pod-name&gt; --message &#34;&lt;description-message&gt;&#34;</span></span></code></pre></div> -</li> -<li> -<p>Check the list of Cloud Pods available to you and your organization using the <code>list</code> command:</p> -<div class="highlight"><pre tabindex="0" style="background-color:#f8f8f8;-moz-tab-size:4;-o-tab-size:4;tab-size:4;"><code class="language-text" data-lang="text"><span style="display:flex;"><span><span class="command-prefix">$ </span>localstack pod list -</span></span><span style="display:flex;"><span> ┏━━━━━━━━━━━━━━┳━━━━━━━━━━━┓ -</span></span><span style="display:flex;"><span> ┃ local/remote ┃ Name ┃ -</span></span><span style="display:flex;"><span> ┡━━━━━━━━━━━━━━╇━━━━━━━━━━━┩ -</span></span><span style="display:flex;"><span> │ local+remote │ pod-name │ -</span></span><span style="display:flex;"><span> └──────────────┴───────────┘</span></span></code></pre></div> -</li> -<li> -<p>Optional: You can inspect the contents of a Cloud Pod using the <code>inspect</code> command:</p> -<div class="highlight"><pre tabindex="0" style="background-color:#f8f8f8;-moz-tab-size:4;-o-tab-size:4;tab-size:4;"><code class="language-text" data-lang="text"><span style="display:flex;"><span><span class="command-prefix">$ </span>localstack pod inspect --name &lt;pod-name&gt; -</span></span><span style="display:flex;"><span> - 000000000000 -</span></span><span style="display:flex;"><span> - S3 -</span></span><span style="display:flex;"><span> - global -</span></span><span style="display:flex;"><span> - listBuckets -</span></span><span style="display:flex;"><span> - Buckets -</span></span><span style="display:flex;"><span> - 0 -</span></span><span style="display:flex;"><span> - Name = test -</span></span><span style="display:flex;"><span> - CreationDate = 2022-10-04T17:03:47.000Z -</span></span><span style="display:flex;"><span> - Owner -</span></span><span style="display:flex;"><span> - DisplayName = webfile -</span></span><span style="display:flex;"><span> - ID = bcaf1ffd86f41161ca5fb16fd081034f</span></span></code></pre></div> -</li> -<li> -<p>On an alternate machine, start LocalStack with the API key configured, and pull the Cloud Pod we created previously using <code>load</code> command with the Cloud Pod name as the first argument:</p> -<div class="highlight"><pre tabindex="0" style="background-color:#f8f8f8;-moz-tab-size:4;-o-tab-size:4;tab-size:4;"><code class="language-text" data-lang="text"><span style="display:flex;"><span><span class="command-prefix">$ </span>localstack pod load &lt;pod-name&gt; -</span></span><span style="display:flex;"><span> -</span></span><span style="display:flex;"><span> Done.</span></span></code></pre></div> -<p>Let&rsquo;s check the S3 buckets in our Cloud Pod: -<div class="highlight"><pre tabindex="0" style="background-color:#f8f8f8;-moz-tab-size:4;-o-tab-size:4;tab-size:4;"><code class="language-text" data-lang="text"><span style="display:flex;"><span><span class="command-prefix">$ </span>awslocal s3 ls s3://test/ -</span></span><span style="display:flex;"><span> -</span></span><span style="display:flex;"><span> 2022-10-04 22:33:54 12 hello-world</span></span></code></pre></div> -</p> -</li> -<li> -<p>Optional: You can make the Cloud Pod available to users outside your organization by making it public:</p> -<div class="highlight"><pre tabindex="0" style="background-color:#f8f8f8;-moz-tab-size:4;-o-tab-size:4;tab-size:4;"><code class="language-text" data-lang="text"><span style="display:flex;"><span><span class="command-prefix">$ </span>localstack pod save &lt;pod-name&gt; --visibility public</span></span></code></pre></div> -</li> -</ol> -<p>For a more detailed manual, refer to our <a href="/user-guide/tools/cloud-pods/pods-cli/">command-line interface (CLI) guide</a>. To check your Pods on the LocalStack Web user interface, navigate to <a href="https://app.localstack.cloud/pods">Cloud Pods page</a>.</p>User-Guide: Testcontainers/user-guide/integrations/testcontainers/Sat, 11 Feb 2023 00:00:00 +0000/user-guide/integrations/testcontainers/ +Docs – LocalStack Pro/categories/localstack-pro/Recent content in LocalStack Pro on DocsHugo -- gohugo.ioSat, 11 Feb 2023 00:00:00 +0000User-Guide: Testcontainers/user-guide/integrations/testcontainers/Sat, 11 Feb 2023 00:00:00 +0000/user-guide/integrations/testcontainers/ <img src="testcontainers-logo.svg" width="600px" alt="Testcontainers logo"> <h2 id="overview">Overview</h2> <p><a href="https://www.testcontainers.com/">Testcontainers</a> is a library that helps you to run your @@ -1883,140 +1810,7 @@ id="tabs-10-01" role="tabpanel" aria-labelled-by="tabs-10-01-tab"> <ul> <li><a href="https://github.com/localstack/localstack-pro-samples/tree/master/lambda-mounting-and-debugging">Lambda Code Mounting and Debugging (Python)</a></li> <li><a href="https://github.com/localstack/localstack-pro-samples/tree/master/sample-archive/spring-cloud-function-microservice">Spring Cloud Function on LocalStack (Kotlin JVM)</a></li> -</ul>User-Guide: Cloud Pods CLI command reference/user-guide/tools/cloud-pods/pods-cli/Mon, 01 Jan 0001 00:00:00 +0000/user-guide/tools/cloud-pods/pods-cli/ -<p>This reference provides descriptions and example commands for LocalStack Cloud Pods CLI (<code>pod</code>) commands.</p> -<h2 id="syntax">Syntax</h2> -<p>Use the following syntax to run <code>localstack pod</code> commands from your terminal window:</p> -<div class="highlight"><pre tabindex="0" style="background-color:#f8f8f8;-moz-tab-size:4;-o-tab-size:4;tab-size:4;"><code class="language-text" data-lang="text"><span style="display:flex;"><span><span class="command-prefix">$ </span>localstack pod [OPTIONS] COMMAND [ARGS]</span></span></code></pre></div> -<p>In the above syntax:</p> -<ul> -<li><code>COMMAND</code> specifies the operation you want to perform with your Cloud Pods (<code>save</code> or <code>load</code>).</li> -<li><code>OPTIONS</code> specifies the optional flags.</li> -<li><code>ARGS</code> specifies the command arguments.</li> -</ul> -<h2 id="commands">Commands</h2> -<p>The following section lists the available commands for the Cloud Pods CLI.</p> -<h3 id="save"><code>save</code></h3> -<p>The <code>save</code> command creates a new version of a Cloud Pod. Pro users can dump the Cloud Pod locally or upload it to the LocalStack platform. To dump the state locally, pass a local file URI as an argument to the <code>save</code> command. For instance, the following command:</p> -<div class="highlight"><pre tabindex="0" style="background-color:#f8f8f8;-moz-tab-size:4;-o-tab-size:4;tab-size:4;"><code class="language-text" data-lang="text"><span style="display:flex;"><span><span class="command-prefix">$ </span>localstack pod save file://&lt;path_to_disk&gt;/my-pod</span></span></code></pre></div> -<p>The above command will create a zip file named <code>my-pod</code> to the specified location on the disk. To use the Cloud Pods platform, specify the Cloud Pod&rsquo;s name as an argument, for example:</p> -<div class="highlight"><pre tabindex="0" style="background-color:#f8f8f8;-moz-tab-size:4;-o-tab-size:4;tab-size:4;"><code class="language-text" data-lang="text"><span style="display:flex;"><span><span class="command-prefix">$ </span>localstack pod save my-pod</span></span></code></pre></div> -<p>The above command creates a version of <code>my-pod</code> and registers it to our platform. Pushing already existing pod results in creating a new version and, eventually, uploading it to the platform. Users can also select a subset of AWS services they wish to incorporate in a new Cloud Pod version with the <code>--services</code> option.</p> -<p>Users who want to make a Cloud Pod accessible outside their organization can mark it as <strong>public</strong> with the following command:</p> -<div class="highlight"><pre tabindex="0" style="background-color:#f8f8f8;-moz-tab-size:4;-o-tab-size:4;tab-size:4;"><code class="language-text" data-lang="text"><span style="display:flex;"><span><span class="command-prefix">$ </span>localstack pod push --name &lt;pod_name&gt; --visibility public</span></span></code></pre></div> -<p>The above command does not create a new version and requires a version already registered with the platform. The CLI manual for the <code>save</code> command is as follows:</p> -<div class="highlight"><pre tabindex="0" style="background-color:#f8f8f8;-moz-tab-size:4;-o-tab-size:4;tab-size:4;"><code class="language-bash" data-lang="bash"><span style="display:flex;"><span>Usage: python -m localstack.cli.main pod save <span style="color:#ce5c00;font-weight:bold">[</span>OPTIONS<span style="color:#ce5c00;font-weight:bold">]</span> URL_OR_NAME -</span></span><span style="display:flex;"><span> -</span></span><span style="display:flex;"><span> Save the current state of the LocalStack container in a Cloud Pod. A Cloud Pod can be exported -</span></span><span style="display:flex;"><span> locally or registered within the LocalStack Pod<span style="color:#4e9a06">&#39;s platform (with a Pro license). An optional -</span></span></span><span style="display:flex;"><span><span style="color:#4e9a06"> message can be attached to any Cloud Pod. Furthermore, one could decide to export only a subset -</span></span></span><span style="display:flex;"><span><span style="color:#4e9a06"> of services with the optional --service option. -</span></span></span><span style="display:flex;"><span><span style="color:#4e9a06"> -</span></span></span><span style="display:flex;"><span><span style="color:#4e9a06"> To export on a local path run the following command: -</span></span></span><span style="display:flex;"><span><span style="color:#4e9a06"> localstack pod save file://&lt;path_on_disk&gt;/&lt;pod_name&gt; -</span></span></span><span style="display:flex;"><span><span style="color:#4e9a06"> -</span></span></span><span style="display:flex;"><span><span style="color:#4e9a06"> The output will be a &lt;pod_name&gt; zip file in the specified directory. This Cloud Pod instance can -</span></span></span><span style="display:flex;"><span><span style="color:#4e9a06"> be restored at any point in time with the load command. -</span></span></span><span style="display:flex;"><span><span style="color:#4e9a06"> -</span></span></span><span style="display:flex;"><span><span style="color:#4e9a06"> To use the LocalStack Pod&#39;</span>s platform, the desired Pod<span style="color:#4e9a06">&#39;s name only will suffice, e,g.: -</span></span></span><span style="display:flex;"><span><span style="color:#4e9a06"> -</span></span></span><span style="display:flex;"><span><span style="color:#4e9a06"> localstack pod save &lt;pod_name&gt; -</span></span></span><span style="display:flex;"><span><span style="color:#4e9a06"> -</span></span></span><span style="display:flex;"><span><span style="color:#4e9a06"> Please be aware that each following save invocation with the same name will result in a new -</span></span></span><span style="display:flex;"><span><span style="color:#4e9a06"> version being created. -</span></span></span><span style="display:flex;"><span><span style="color:#4e9a06"> -</span></span></span><span style="display:flex;"><span><span style="color:#4e9a06">Options: -</span></span></span><span style="display:flex;"><span><span style="color:#4e9a06"> -m, --message TEXT Add a comment describing this Cloud Pod&#39;</span>s version -</span></span><span style="display:flex;"><span> -s, --services TEXT Comma-delimited list of services to push in the Cloud Pod <span style="color:#ce5c00;font-weight:bold">(</span>all by default<span style="color:#ce5c00;font-weight:bold">)</span> -</span></span><span style="display:flex;"><span> --visibility TEXT Set the visibility of the Cloud Pod <span style="color:#ce5c00;font-weight:bold">[</span><span style="color:#4e9a06">`</span>public<span style="color:#4e9a06">`</span> or <span style="color:#4e9a06">`</span>private<span style="color:#4e9a06">`</span><span style="color:#ce5c00;font-weight:bold">]</span>. Does not -</span></span><span style="display:flex;"><span> create a new version -</span></span><span style="display:flex;"><span> --help Show this message and exit. -</span></span></code></pre></div> -<div class="alert alert-primary" role="alert"> -<h4 class="alert-heading">Note</h4> -Community users have access to a restricted version of the <code>save</code> command. -In particular, they can simply invoke the <code>save</code> command with a file URI as an argument. -</div> -<h3 id="load"><code>load</code></h3> -<p>The <code>load</code> command is the inverse operation of <code>save</code>. It retrieves the content of a previously stored Cloud Pod from the local file system or the Cloud Pod&rsquo;s platform and injects it into the application runtime.</p> -<p>The <code>load</code> command takes an argument that can either be a URI or a Cloud Pods name. While the first option is available to all users, the second is valid only for licensed ones.</p> -<p>By default, the injecting state updates the application runtime at a service level. Using the merge injection strategy, the state of all services specified in the injecting state is reflected precisely in the application runtime, while all other active services remain unchanged.</p> -<p>The <code>--strategy</code> option can be used to change such default injection behavior. More specifically, the overwrite strategy will ensure the application runtime is an exact instance of the injecting state. The deep-merge strategy will perform a fine-grain merge of the injecting state into the application runtime.</p> -<p>The CLI manual for the <code>load</code> command is as follows:</p> -<div class="highlight"><pre tabindex="0" style="background-color:#f8f8f8;-moz-tab-size:4;-o-tab-size:4;tab-size:4;"><code class="language-shell" data-lang="shell"><span style="display:flex;"><span>Usage: python -m localstack.cli.main pod load <span style="color:#ce5c00;font-weight:bold">[</span>OPTIONS<span style="color:#ce5c00;font-weight:bold">]</span> URL_OR_NAME -</span></span><span style="display:flex;"><span> -</span></span><span style="display:flex;"><span> Load a Cloud Pod into the running LocalStack container. Users can import Pods different sources: -</span></span><span style="display:flex;"><span> community users can store and retrieve Pods from <span style="color:#204a87">local</span> storage or any provided HTTP URL<span style="color:#000;font-weight:bold">;</span> -</span></span><span style="display:flex;"><span> licensed users can take advantage of the LocalStack Pod<span style="color:#4e9a06">&#39;s platform to ease the storage, -</span></span></span><span style="display:flex;"><span><span style="color:#4e9a06"> versioning, and retrieval of Pods. -</span></span></span><span style="display:flex;"><span><span style="color:#4e9a06"> -</span></span></span><span style="display:flex;"><span><span style="color:#4e9a06"> The --source option specifies a URI scheme that point to the Cloud Pod&#39;</span>s resources to import. -</span></span><span style="display:flex;"><span> -</span></span><span style="display:flex;"><span> We support the following protocols: -</span></span><span style="display:flex;"><span> localstack pod load file://&lt;path_to_disk&gt; -</span></span><span style="display:flex;"><span> localstack pod load https://&lt;some_url&gt; -</span></span><span style="display:flex;"><span> localstack pod load git://&lt;user&gt;/&lt;repo&gt;/&lt;local_repo_path&gt; -</span></span><span style="display:flex;"><span> -</span></span><span style="display:flex;"><span> The latter option is merely a shortcut <span style="color:#204a87;font-weight:bold">for</span> --source -</span></span><span style="display:flex;"><span> https://raw.githubusercontent.com/&lt;user&gt;/&lt;repo&gt;/&lt;branch&gt;/&lt;path&gt; -</span></span><span style="display:flex;"><span> -</span></span><span style="display:flex;"><span> Importing via a provided --source is available <span style="color:#204a87;font-weight:bold">for</span> all users. Licensed users can omit this -</span></span><span style="display:flex;"><span> option and simply provide a name <span style="color:#204a87;font-weight:bold">for</span> their Cloud Pods. -</span></span><span style="display:flex;"><span> -</span></span><span style="display:flex;"><span>Options: -</span></span><span style="display:flex;"><span> -s, --strategy TEXT Inject strategy <span style="color:#ce5c00;font-weight:bold">(</span>merge, overwrite, deep-merge<span style="color:#ce5c00;font-weight:bold">)</span>. -</span></span><span style="display:flex;"><span> --help Show this message and exit. -</span></span></code></pre></div> -<div class="alert alert-primary" role="alert"> -<h4 class="alert-heading">Note</h4> -Similar to the <code>save</code> command, the usage of the Cloud Pod&rsquo;s platform is restricted to licensed users. Community users can load a Cloud Pod from a local URI file, URL, or public GitHub repository. However, they have no access to Cloud Pods versioning. -</div> -<h3 id="delete"><code>delete</code></h3> -<p>The <code>delete</code> command let users delete a Cloud Pod stored in the remote platform. The CLI manual for the <code>delete</code> command is as follows:</p> -<div class="highlight"><pre tabindex="0" style="background-color:#f8f8f8;-moz-tab-size:4;-o-tab-size:4;tab-size:4;"><code class="language-shell" data-lang="shell"><span style="display:flex;"><span>Usage: python -m localstack.cli.main pod delete <span style="color:#ce5c00;font-weight:bold">[</span>OPTIONS<span style="color:#ce5c00;font-weight:bold">]</span> -</span></span><span style="display:flex;"><span> -</span></span><span style="display:flex;"><span> Delete a Cloud Pod register on the remove LocalStack Pod<span style="color:#4e9a06">&#39;s platform. This command will cancel -</span></span></span><span style="display:flex;"><span><span style="color:#4e9a06"> all the versions of a created Pod and won&#39;</span>t be reversible. -</span></span><span style="display:flex;"><span> -</span></span><span style="display:flex;"><span>Options: -</span></span><span style="display:flex;"><span> -n, --name TEXT Name of the Cloud Pod <span style="color:#ce5c00;font-weight:bold">[</span>required<span style="color:#ce5c00;font-weight:bold">]</span> -</span></span><span style="display:flex;"><span> --help Show this message and exit. -</span></span></code></pre></div><h3 id="inspect"><code>inspect</code></h3> -<p>The <code>inspect</code> command simply lets the user inspect the content of a Cloud Pod. The CLI manual for the <code>inspect</code> command is as follows:</p> -<div class="highlight"><pre tabindex="0" style="background-color:#f8f8f8;-moz-tab-size:4;-o-tab-size:4;tab-size:4;"><code class="language-shell" data-lang="shell"><span style="display:flex;"><span>Usage: python -m localstack.cli.main pod inspect <span style="color:#ce5c00;font-weight:bold">[</span>OPTIONS<span style="color:#ce5c00;font-weight:bold">]</span> -</span></span><span style="display:flex;"><span> -</span></span><span style="display:flex;"><span> Inspect the contents of a Cloud Pod -</span></span><span style="display:flex;"><span> -</span></span><span style="display:flex;"><span>Options: -</span></span><span style="display:flex;"><span> -n, --name TEXT Name of the Cloud Pod <span style="color:#ce5c00;font-weight:bold">[</span>required<span style="color:#ce5c00;font-weight:bold">]</span> -</span></span><span style="display:flex;"><span> -f, --format TEXT Format <span style="color:#ce5c00;font-weight:bold">(</span>curses, rich, json<span style="color:#ce5c00;font-weight:bold">)</span>. -</span></span><span style="display:flex;"><span> --help Show this message and exit. -</span></span></code></pre></div><h3 id="list">list</h3> -<p>The <code>list</code> command lists all of the available Cloud Pods. It shows all the pods available for a single user and its organization by default. If the <code>--public option is passed to the commands, it shows only the Cloud Pods marked as public and are, therefore, available to all licensed users. The CLI manual for the </code>list` command is as follows:</p> -<div class="highlight"><pre tabindex="0" style="background-color:#f8f8f8;-moz-tab-size:4;-o-tab-size:4;tab-size:4;"><code class="language-shell" data-lang="shell"><span style="display:flex;"><span>Usage: python -m localstack.cli.main pod list <span style="color:#ce5c00;font-weight:bold">[</span>OPTIONS<span style="color:#ce5c00;font-weight:bold">]</span> -</span></span><span style="display:flex;"><span> -</span></span><span style="display:flex;"><span> List all the Cloud Pods available <span style="color:#204a87;font-weight:bold">for</span> a single user, or <span style="color:#204a87;font-weight:bold">for</span> an entire organization, <span style="color:#204a87;font-weight:bold">if</span> the user -</span></span><span style="display:flex;"><span> is part of one. -</span></span><span style="display:flex;"><span> -</span></span><span style="display:flex;"><span> With the --public flag, it lists the all the available public Cloud Pods. A public Cloud Pod is -</span></span><span style="display:flex;"><span> available across the boundary of a user ond/or organization. In other words, any public Cloud -</span></span><span style="display:flex;"><span> Pod can be injected by any other user holding a LocalStack Pro <span style="color:#ce5c00;font-weight:bold">(</span>or above<span style="color:#ce5c00;font-weight:bold">)</span> license. -</span></span><span style="display:flex;"><span> -</span></span><span style="display:flex;"><span>Options: -</span></span><span style="display:flex;"><span> -p, --public List all the available public Cloud Pods -</span></span><span style="display:flex;"><span> --help Show this message and exit. -</span></span></code></pre></div><h3 id="versions">versions</h3> -<p>The <code>versions</code> command simply lists all the available versions of a Cloud Pod. The CLI manual for the <code>version</code> command is as follows:</p> -<div class="highlight"><pre tabindex="0" style="background-color:#f8f8f8;-moz-tab-size:4;-o-tab-size:4;tab-size:4;"><code class="language-shell" data-lang="shell"><span style="display:flex;"><span>Usage: python -m localstack.cli.main pod versions <span style="color:#ce5c00;font-weight:bold">[</span>OPTIONS<span style="color:#ce5c00;font-weight:bold">]</span> -</span></span><span style="display:flex;"><span> -</span></span><span style="display:flex;"><span> List the versions available <span style="color:#204a87;font-weight:bold">for</span> a Cloud Pod. Each invocation of the save <span style="color:#204a87">command</span> is going to -</span></span><span style="display:flex;"><span> create a new version <span style="color:#204a87;font-weight:bold">for</span> a named Cloud Pod, is a Pod with such name already does exist in the -</span></span><span style="display:flex;"><span> LocalStack Pods platform. -</span></span><span style="display:flex;"><span> -</span></span><span style="display:flex;"><span>Options: -</span></span><span style="display:flex;"><span> -n, --name TEXT Name of the Cloud Pod <span style="color:#ce5c00;font-weight:bold">[</span>required<span style="color:#ce5c00;font-weight:bold">]</span> -</span></span><span style="display:flex;"><span> --help Show this message and exit. -</span></span></code></pre></div>User-Guide: LocalStack Testing Tools/user-guide/tools/testing-tools/Mon, 01 Jan 0001 00:00:00 +0000/user-guide/tools/testing-tools/ +</ul>User-Guide: LocalStack Testing Tools/user-guide/tools/testing-tools/Mon, 01 Jan 0001 00:00:00 +0000/user-guide/tools/testing-tools/ <h2 id="covered-topics">Covered Topics</h2> <ul> <li><a href="#jvm-testing-utils">JVM Testing Utils</a></li> @@ -2721,60 +2515,7 @@ After clicking **Sign In** in this form, we can see that the browser makes a req <br> This sample demonstrates how we can take an existing Web application, without any modification, and make it talk to the LocalStack APIs directly from the browser via the LocalSurf plugin. <h2 id="note">Note</h2> -<p>Use this extension at your own risk - it is provided on an as-is basis, <strong>without</strong> warranties or conditions of <strong>any</strong> kind. In particular, it is your obligation to ensure that the use of this extension is compliant with the user license agreement and the terms &amp; conditions of Amazon Web Services (AWS) and their services.</p>User-Guide: Cloud Pods/user-guide/tools/cloud-pods/Mon, 01 Jan 0001 00:00:00 +0000/user-guide/tools/cloud-pods/ -<div class="alert alert-primary" role="alert"> -<h4 class="alert-heading">Note</h4> -Please note that cloud pods may not be compatible across different versions of LocalStack. -We are actively working on addressing this limitation in the upcoming releases. -</div> -<p>Cloud Pods are a mechanism that allows you to take a snapshot of the state in your current LocalStack instance, persist it to a storage backend, and easily share it with your team members.</p> -<p><img src="pods-persistence.png" alt="Persistence versus Cloud Pods"></p> -<div class="alert alert-success" role="alert"> -<h4 class="alert-heading">Hint</h4> -To quickly see cloud pods in action, we prepared a small sample application that uses cloud pods to inject its state into a running LocalStack container. <a href="https://app.localstack.cloud/quickstart/demo4">Cloud Pod Thumbnail Sample App</a> -</div> -<p>While the <a href="/references/persistence-mechanism/">Persistence</a> feature ensures that the service state survives container restarts, Cloud Pods go beyond and allow more fine-grained control over your state.</p> -<p>Instead of simply restoring a state when restarting LocalStack, Cloud Pods allow you to take snapshots of your local instance (with the <code>save</code> command) and inject such snapshots into a running instance (with the <code>load</code> command) without requiring a restart.</p> -<p>In addition, we provide a remote storage backend that can be used to store the state of your running application and share it with your team members.</p> -<p>You can interact with Cloud Pods via the Web UI, and to load and store the persistent state of pods, you can use the <code>localstack</code> <a href="/user-guide/tools/cloud-pods/pods-cli/">command-line interface (CLI)</a>.</p> -<p><img src="pods-ui.png" alt="Cloud Pods Web UI"></p>User-Guide: Cloud Pods Launchpad/user-guide/tools/cloud-pods/launchpad/Mon, 01 Jan 0001 00:00:00 +0000/user-guide/tools/cloud-pods/launchpad/ -<p>The LocalStack Cloud Pods Launchpad allows you to quickly share and inject cloud pods into a LocalStack instance.</p> -<h2 id="creating-your-sharable-link">Creating your sharable link</h2> -<p>Navigate to <a href="https://app.localstack.cloud/launchpad">https://app.localstack.cloud/launchpad</a> where you can create a sharable link for your pods.</p> -<p><img src="link-generator.png" alt="Cloud Pods Launchpad Link Generator"></p> -<p>Enter a public URl to your pod in the first input field, and click on &lsquo;Generate Link&rsquo;. -The resulting link can be copied and shared with others.</p> -<p>You can also copy the markdown snippet to quickly add a badge to your repository.</p> -<div class="alert alert-warning" role="alert"> -<h4 class="alert-heading">Warning</h4> -<p>Please consider that the launchpad takes an arbitrary URL as input and passes it onto your LocalStack instance to inject the pod. -This may lead to unintended side effects, as the URL that is passed to the launchpad is not validated in any way.</p> -<p>We also display the URL on the UI, so please make sure that your trust the URL when using the launchpad.</p> -</div> -<h2 id="adding-a-badge-to-your-repository">Adding a badge to your repository</h2> -<p>If you want to add a badge to your README that links to the Cloud Pod Launchpad, you can use the following markdown snippet:</p> -<div class="highlight"><pre tabindex="0" style="background-color:#f8f8f8;-moz-tab-size:4;-o-tab-size:4;tab-size:4;"><code class="language-markdown" data-lang="markdown"><span style="display:flex;"><span>[<span style="color:#204a87;font-weight:bold">![Launch LocalStack Cloudpod</span>](<span style="color:#c4a000">https://localstack.cloud/gh/launch-pod-badge.svg</span>)](https://app.localstack.cloud/launchpad?url=url_of_your_pod) -</span></span></code></pre></div><p><img src="badge-demo.png" alt="Cloud Pods Badge Demonstration"></p> -<p>Please note that you have to add the <code>url_of_your_pod</code> as the <code>url</code> query parameter to the URL. -For example if you are hosting the pod in the same repository, just use the URL pointing to the raw pod file. -Additionally, you can use the <a href="#creating-your-sharable-link">Link Generator</a> to create the sharable link for your pod and copy the markdown for your repo.</p> -<p>Check out a proper example <a href="https://github.com/localstack/cloud-pod-badge" target="_blank">on this GitHub repository</a>.</p> -<h2 id="troubleshooting-common-problems">Troubleshooting common problems</h2> -<p>In this section we present an overview of common problems and how to solve them.</p> -<h3 id="localstack-is-not-running">LocalStack is not running</h3> -<p>In case your LocalStack instance is not running, you will see the following error message:</p> -<p><img src="ls-not-running.png" alt="Cloud Pods Launchpad Error LocalStack not running"></p> -<p>Please start up your LocalStack instance and try again. -Find out more about how to start LocalStack in the <a href="/user-guide/tools/cloud-pods/getting-started/">Getting Started</a> section.</p> -<h3 id="failed-to-load-metadata">Failed to load metadata</h3> -<p>In case the launchpad fails to load the metadata of your pod, you will see the following error message:</p> -<p><img src="metadata-load-failed.png" alt="Cloud Pods Launchpad Error failed to load metadata"></p> -<p>This can happen if the pod is not available anymore or if the URL is not valid. -Please check the URL and try again.</p> -<h3 id="failed-to-inject-pod">Failed to inject pod</h3> -<p>In case the launchpad fails to inject the pod into your LocalStack instance, you will see &lsquo;Pod injection failed&rsquo; in the log message. -This may be due to a couple of reasons, like version mismatch. -Please check out your LocalStack logs for more information.</p>User-Guide: Self-managed Kafka cluster/user-guide/integrations/kafka/Mon, 01 Jan 0001 00:00:00 +0000/user-guide/integrations/kafka/ +<p>Use this extension at your own risk - it is provided on an as-is basis, <strong>without</strong> warranties or conditions of <strong>any</strong> kind. In particular, it is your obligation to ensure that the use of this extension is compliant with the user license agreement and the terms &amp; conditions of Amazon Web Services (AWS) and their services.</p>User-Guide: Self-managed Kafka cluster/user-guide/integrations/kafka/Mon, 01 Jan 0001 00:00:00 +0000/user-guide/integrations/kafka/ <p>LocalStack Pro supports <a href="/user-guide/aws/managed-streaming-for-kafka/">AWS Managed Streaming for Kafka (MSK)</a> and you can create Kafka clusters directly through the MSK API that will run in LocalStack. In some cases, you may want to run your own self-managed Kafka cluster and integrate it with your applications, like triggering Lambdas from a Kafka stream running in your own cluster. The Lambda integration with self-managed Kafka clusters is also a LocalStack Pro feature.</p> diff --git a/categories/persistence/index.html b/categories/persistence/index.html deleted file mode 100644 index 03944a6691..0000000000 --- a/categories/persistence/index.html +++ /dev/null @@ -1,7 +0,0 @@ -Persistence | Docs - -

    Category: Persistence

    All Categories
    - - - \ No newline at end of file diff --git a/categories/persistence/index.xml b/categories/persistence/index.xml deleted file mode 100644 index f8cda66e04..0000000000 --- a/categories/persistence/index.xml +++ /dev/null @@ -1,223 +0,0 @@ -Docs – Persistence/categories/persistence/Recent content in Persistence on DocsHugo -- gohugo.ioUser-Guide: Getting started with the Cloud Pods CLI/user-guide/tools/cloud-pods/getting-started/Mon, 01 Jan 0001 00:00:00 +0000/user-guide/tools/cloud-pods/getting-started/ -<p>With the LocalStack Cloud Pods command-line interface (CLI), the <code>pod</code> command, you can create cloud pods and manage them from a terminal. The Cloud Pods CLI is ideal in the following situations:</p> -<ul> -<li>Taking a snapshot of your running LocalStack instance.</li> -<li>Sharing your snapshot across teams with LocalStack Team features.</li> -<li>Injecting snapshots into a running instance without a restart.</li> -</ul> -<h2 id="installation">Installation</h2> -<p>LocalStack Cloud Pods CLI is directly available with the LocalStack installation, and no further installation is required to get started. If you are a Pro user, we recommend you to export the <code>LOCALSTACK_API_KEY</code> as an environment variable to allow you to use the full spectrum of LocalStack Cloud Pods feature.</p> -<p>This tutorial is intended for licensed users. The Community users can replicate a similar workflow by leveraging the <code>save</code> and <code>load</code> commands available to them. For more details, look at our <a href="/user-guide/tools/cloud-pods/community/">Community Cloud Pods guide</a>.</p> -<h2 id="basic-example">Basic example</h2> -<p>In this tutorial, you&rsquo;ll learn how to make a basic usage of LocalStack Cloud Pods CLI. This tutorial is intended for Pro users who wish to get more acquainted with Cloud Pods CLI. It assumes you have basic knowledge of:</p> -<ul> -<li>LocalStack</li> -<li><code>awscli</code> commands</li> -<li>Understanding of Cloud Pods workflow</li> -</ul> -<p>By the end of this tutorial, you would be able to create a snapshot of your running LocalStack instance, commit it and would be able to push this to your LocalStack account.</p> -<h3 id="procedure">Procedure</h3> -<p>To get started, start your LocalStack instance with your <code>LOCALSTACK_API_KEY</code> configured as an environment variable:</p> -<ol> -<li> -<p>Use the <code>awslocal</code> CLI to create AWS resources inside your running LocalStack instance.</p> -<p>As an example, we will create a S3 bucket using the <code>awslocal</code> CLI and enter some data inside it:</p> -<div class="highlight"><pre tabindex="0" style="background-color:#f8f8f8;-moz-tab-size:4;-o-tab-size:4;tab-size:4;"><code class="language-text" data-lang="text"><span style="display:flex;"><span><span class="command-prefix">$ </span>awslocal s3 mb s3://test -</span></span><span style="display:flex;"><span><span class="command-prefix">$ </span>echo &#34;hello world&#34; &gt; /tmp/hello-world -</span></span><span style="display:flex;"><span><span class="command-prefix">$ </span>awslocal s3 cp /tmp/hello-world s3://test/hello-world -</span></span><span style="display:flex;"><span><span class="command-prefix">$ </span>awslocal s3 ls s3://test/</span></span></code></pre></div> -</li> -<li> -<p>Save your Pod state using the <code>save</code> command by specifying the desired name as the first argument. This command will save the pod and register it to the remote platform. Optionally you can attach a message to the saved Cloud Pod with the <code>--message</code> flag:</p> -<div class="highlight"><pre tabindex="0" style="background-color:#f8f8f8;-moz-tab-size:4;-o-tab-size:4;tab-size:4;"><code class="language-text" data-lang="text"><span style="display:flex;"><span><span class="command-prefix">$ </span>localstack pod save &lt;pod-name&gt; --message &#34;&lt;description-message&gt;&#34;</span></span></code></pre></div> -</li> -<li> -<p>Check the list of Cloud Pods available to you and your organization using the <code>list</code> command:</p> -<div class="highlight"><pre tabindex="0" style="background-color:#f8f8f8;-moz-tab-size:4;-o-tab-size:4;tab-size:4;"><code class="language-text" data-lang="text"><span style="display:flex;"><span><span class="command-prefix">$ </span>localstack pod list -</span></span><span style="display:flex;"><span> ┏━━━━━━━━━━━━━━┳━━━━━━━━━━━┓ -</span></span><span style="display:flex;"><span> ┃ local/remote ┃ Name ┃ -</span></span><span style="display:flex;"><span> ┡━━━━━━━━━━━━━━╇━━━━━━━━━━━┩ -</span></span><span style="display:flex;"><span> │ local+remote │ pod-name │ -</span></span><span style="display:flex;"><span> └──────────────┴───────────┘</span></span></code></pre></div> -</li> -<li> -<p>Optional: You can inspect the contents of a Cloud Pod using the <code>inspect</code> command:</p> -<div class="highlight"><pre tabindex="0" style="background-color:#f8f8f8;-moz-tab-size:4;-o-tab-size:4;tab-size:4;"><code class="language-text" data-lang="text"><span style="display:flex;"><span><span class="command-prefix">$ </span>localstack pod inspect --name &lt;pod-name&gt; -</span></span><span style="display:flex;"><span> - 000000000000 -</span></span><span style="display:flex;"><span> - S3 -</span></span><span style="display:flex;"><span> - global -</span></span><span style="display:flex;"><span> - listBuckets -</span></span><span style="display:flex;"><span> - Buckets -</span></span><span style="display:flex;"><span> - 0 -</span></span><span style="display:flex;"><span> - Name = test -</span></span><span style="display:flex;"><span> - CreationDate = 2022-10-04T17:03:47.000Z -</span></span><span style="display:flex;"><span> - Owner -</span></span><span style="display:flex;"><span> - DisplayName = webfile -</span></span><span style="display:flex;"><span> - ID = bcaf1ffd86f41161ca5fb16fd081034f</span></span></code></pre></div> -</li> -<li> -<p>On an alternate machine, start LocalStack with the API key configured, and pull the Cloud Pod we created previously using <code>load</code> command with the Cloud Pod name as the first argument:</p> -<div class="highlight"><pre tabindex="0" style="background-color:#f8f8f8;-moz-tab-size:4;-o-tab-size:4;tab-size:4;"><code class="language-text" data-lang="text"><span style="display:flex;"><span><span class="command-prefix">$ </span>localstack pod load &lt;pod-name&gt; -</span></span><span style="display:flex;"><span> -</span></span><span style="display:flex;"><span> Done.</span></span></code></pre></div> -<p>Let&rsquo;s check the S3 buckets in our Cloud Pod: -<div class="highlight"><pre tabindex="0" style="background-color:#f8f8f8;-moz-tab-size:4;-o-tab-size:4;tab-size:4;"><code class="language-text" data-lang="text"><span style="display:flex;"><span><span class="command-prefix">$ </span>awslocal s3 ls s3://test/ -</span></span><span style="display:flex;"><span> -</span></span><span style="display:flex;"><span> 2022-10-04 22:33:54 12 hello-world</span></span></code></pre></div> -</p> -</li> -<li> -<p>Optional: You can make the Cloud Pod available to users outside your organization by making it public:</p> -<div class="highlight"><pre tabindex="0" style="background-color:#f8f8f8;-moz-tab-size:4;-o-tab-size:4;tab-size:4;"><code class="language-text" data-lang="text"><span style="display:flex;"><span><span class="command-prefix">$ </span>localstack pod save &lt;pod-name&gt; --visibility public</span></span></code></pre></div> -</li> -</ol> -<p>For a more detailed manual, refer to our <a href="/user-guide/tools/cloud-pods/pods-cli/">command-line interface (CLI) guide</a>. To check your Pods on the LocalStack Web user interface, navigate to <a href="https://app.localstack.cloud/pods">Cloud Pods page</a>.</p>User-Guide: Cloud Pods CLI command reference/user-guide/tools/cloud-pods/pods-cli/Mon, 01 Jan 0001 00:00:00 +0000/user-guide/tools/cloud-pods/pods-cli/ -<p>This reference provides descriptions and example commands for LocalStack Cloud Pods CLI (<code>pod</code>) commands.</p> -<h2 id="syntax">Syntax</h2> -<p>Use the following syntax to run <code>localstack pod</code> commands from your terminal window:</p> -<div class="highlight"><pre tabindex="0" style="background-color:#f8f8f8;-moz-tab-size:4;-o-tab-size:4;tab-size:4;"><code class="language-text" data-lang="text"><span style="display:flex;"><span><span class="command-prefix">$ </span>localstack pod [OPTIONS] COMMAND [ARGS]</span></span></code></pre></div> -<p>In the above syntax:</p> -<ul> -<li><code>COMMAND</code> specifies the operation you want to perform with your Cloud Pods (<code>save</code> or <code>load</code>).</li> -<li><code>OPTIONS</code> specifies the optional flags.</li> -<li><code>ARGS</code> specifies the command arguments.</li> -</ul> -<h2 id="commands">Commands</h2> -<p>The following section lists the available commands for the Cloud Pods CLI.</p> -<h3 id="save"><code>save</code></h3> -<p>The <code>save</code> command creates a new version of a Cloud Pod. Pro users can dump the Cloud Pod locally or upload it to the LocalStack platform. To dump the state locally, pass a local file URI as an argument to the <code>save</code> command. For instance, the following command:</p> -<div class="highlight"><pre tabindex="0" style="background-color:#f8f8f8;-moz-tab-size:4;-o-tab-size:4;tab-size:4;"><code class="language-text" data-lang="text"><span style="display:flex;"><span><span class="command-prefix">$ </span>localstack pod save file://&lt;path_to_disk&gt;/my-pod</span></span></code></pre></div> -<p>The above command will create a zip file named <code>my-pod</code> to the specified location on the disk. To use the Cloud Pods platform, specify the Cloud Pod&rsquo;s name as an argument, for example:</p> -<div class="highlight"><pre tabindex="0" style="background-color:#f8f8f8;-moz-tab-size:4;-o-tab-size:4;tab-size:4;"><code class="language-text" data-lang="text"><span style="display:flex;"><span><span class="command-prefix">$ </span>localstack pod save my-pod</span></span></code></pre></div> -<p>The above command creates a version of <code>my-pod</code> and registers it to our platform. Pushing already existing pod results in creating a new version and, eventually, uploading it to the platform. Users can also select a subset of AWS services they wish to incorporate in a new Cloud Pod version with the <code>--services</code> option.</p> -<p>Users who want to make a Cloud Pod accessible outside their organization can mark it as <strong>public</strong> with the following command:</p> -<div class="highlight"><pre tabindex="0" style="background-color:#f8f8f8;-moz-tab-size:4;-o-tab-size:4;tab-size:4;"><code class="language-text" data-lang="text"><span style="display:flex;"><span><span class="command-prefix">$ </span>localstack pod push --name &lt;pod_name&gt; --visibility public</span></span></code></pre></div> -<p>The above command does not create a new version and requires a version already registered with the platform. The CLI manual for the <code>save</code> command is as follows:</p> -<div class="highlight"><pre tabindex="0" style="background-color:#f8f8f8;-moz-tab-size:4;-o-tab-size:4;tab-size:4;"><code class="language-bash" data-lang="bash"><span style="display:flex;"><span>Usage: python -m localstack.cli.main pod save <span style="color:#ce5c00;font-weight:bold">[</span>OPTIONS<span style="color:#ce5c00;font-weight:bold">]</span> URL_OR_NAME -</span></span><span style="display:flex;"><span> -</span></span><span style="display:flex;"><span> Save the current state of the LocalStack container in a Cloud Pod. A Cloud Pod can be exported -</span></span><span style="display:flex;"><span> locally or registered within the LocalStack Pod<span style="color:#4e9a06">&#39;s platform (with a Pro license). An optional -</span></span></span><span style="display:flex;"><span><span style="color:#4e9a06"> message can be attached to any Cloud Pod. Furthermore, one could decide to export only a subset -</span></span></span><span style="display:flex;"><span><span style="color:#4e9a06"> of services with the optional --service option. -</span></span></span><span style="display:flex;"><span><span style="color:#4e9a06"> -</span></span></span><span style="display:flex;"><span><span style="color:#4e9a06"> To export on a local path run the following command: -</span></span></span><span style="display:flex;"><span><span style="color:#4e9a06"> localstack pod save file://&lt;path_on_disk&gt;/&lt;pod_name&gt; -</span></span></span><span style="display:flex;"><span><span style="color:#4e9a06"> -</span></span></span><span style="display:flex;"><span><span style="color:#4e9a06"> The output will be a &lt;pod_name&gt; zip file in the specified directory. This Cloud Pod instance can -</span></span></span><span style="display:flex;"><span><span style="color:#4e9a06"> be restored at any point in time with the load command. -</span></span></span><span style="display:flex;"><span><span style="color:#4e9a06"> -</span></span></span><span style="display:flex;"><span><span style="color:#4e9a06"> To use the LocalStack Pod&#39;</span>s platform, the desired Pod<span style="color:#4e9a06">&#39;s name only will suffice, e,g.: -</span></span></span><span style="display:flex;"><span><span style="color:#4e9a06"> -</span></span></span><span style="display:flex;"><span><span style="color:#4e9a06"> localstack pod save &lt;pod_name&gt; -</span></span></span><span style="display:flex;"><span><span style="color:#4e9a06"> -</span></span></span><span style="display:flex;"><span><span style="color:#4e9a06"> Please be aware that each following save invocation with the same name will result in a new -</span></span></span><span style="display:flex;"><span><span style="color:#4e9a06"> version being created. -</span></span></span><span style="display:flex;"><span><span style="color:#4e9a06"> -</span></span></span><span style="display:flex;"><span><span style="color:#4e9a06">Options: -</span></span></span><span style="display:flex;"><span><span style="color:#4e9a06"> -m, --message TEXT Add a comment describing this Cloud Pod&#39;</span>s version -</span></span><span style="display:flex;"><span> -s, --services TEXT Comma-delimited list of services to push in the Cloud Pod <span style="color:#ce5c00;font-weight:bold">(</span>all by default<span style="color:#ce5c00;font-weight:bold">)</span> -</span></span><span style="display:flex;"><span> --visibility TEXT Set the visibility of the Cloud Pod <span style="color:#ce5c00;font-weight:bold">[</span><span style="color:#4e9a06">`</span>public<span style="color:#4e9a06">`</span> or <span style="color:#4e9a06">`</span>private<span style="color:#4e9a06">`</span><span style="color:#ce5c00;font-weight:bold">]</span>. Does not -</span></span><span style="display:flex;"><span> create a new version -</span></span><span style="display:flex;"><span> --help Show this message and exit. -</span></span></code></pre></div> -<div class="alert alert-primary" role="alert"> -<h4 class="alert-heading">Note</h4> -Community users have access to a restricted version of the <code>save</code> command. -In particular, they can simply invoke the <code>save</code> command with a file URI as an argument. -</div> -<h3 id="load"><code>load</code></h3> -<p>The <code>load</code> command is the inverse operation of <code>save</code>. It retrieves the content of a previously stored Cloud Pod from the local file system or the Cloud Pod&rsquo;s platform and injects it into the application runtime.</p> -<p>The <code>load</code> command takes an argument that can either be a URI or a Cloud Pods name. While the first option is available to all users, the second is valid only for licensed ones.</p> -<p>By default, the injecting state updates the application runtime at a service level. Using the merge injection strategy, the state of all services specified in the injecting state is reflected precisely in the application runtime, while all other active services remain unchanged.</p> -<p>The <code>--strategy</code> option can be used to change such default injection behavior. More specifically, the overwrite strategy will ensure the application runtime is an exact instance of the injecting state. The deep-merge strategy will perform a fine-grain merge of the injecting state into the application runtime.</p> -<p>The CLI manual for the <code>load</code> command is as follows:</p> -<div class="highlight"><pre tabindex="0" style="background-color:#f8f8f8;-moz-tab-size:4;-o-tab-size:4;tab-size:4;"><code class="language-shell" data-lang="shell"><span style="display:flex;"><span>Usage: python -m localstack.cli.main pod load <span style="color:#ce5c00;font-weight:bold">[</span>OPTIONS<span style="color:#ce5c00;font-weight:bold">]</span> URL_OR_NAME -</span></span><span style="display:flex;"><span> -</span></span><span style="display:flex;"><span> Load a Cloud Pod into the running LocalStack container. Users can import Pods different sources: -</span></span><span style="display:flex;"><span> community users can store and retrieve Pods from <span style="color:#204a87">local</span> storage or any provided HTTP URL<span style="color:#000;font-weight:bold">;</span> -</span></span><span style="display:flex;"><span> licensed users can take advantage of the LocalStack Pod<span style="color:#4e9a06">&#39;s platform to ease the storage, -</span></span></span><span style="display:flex;"><span><span style="color:#4e9a06"> versioning, and retrieval of Pods. -</span></span></span><span style="display:flex;"><span><span style="color:#4e9a06"> -</span></span></span><span style="display:flex;"><span><span style="color:#4e9a06"> The --source option specifies a URI scheme that point to the Cloud Pod&#39;</span>s resources to import. -</span></span><span style="display:flex;"><span> -</span></span><span style="display:flex;"><span> We support the following protocols: -</span></span><span style="display:flex;"><span> localstack pod load file://&lt;path_to_disk&gt; -</span></span><span style="display:flex;"><span> localstack pod load https://&lt;some_url&gt; -</span></span><span style="display:flex;"><span> localstack pod load git://&lt;user&gt;/&lt;repo&gt;/&lt;local_repo_path&gt; -</span></span><span style="display:flex;"><span> -</span></span><span style="display:flex;"><span> The latter option is merely a shortcut <span style="color:#204a87;font-weight:bold">for</span> --source -</span></span><span style="display:flex;"><span> https://raw.githubusercontent.com/&lt;user&gt;/&lt;repo&gt;/&lt;branch&gt;/&lt;path&gt; -</span></span><span style="display:flex;"><span> -</span></span><span style="display:flex;"><span> Importing via a provided --source is available <span style="color:#204a87;font-weight:bold">for</span> all users. Licensed users can omit this -</span></span><span style="display:flex;"><span> option and simply provide a name <span style="color:#204a87;font-weight:bold">for</span> their Cloud Pods. -</span></span><span style="display:flex;"><span> -</span></span><span style="display:flex;"><span>Options: -</span></span><span style="display:flex;"><span> -s, --strategy TEXT Inject strategy <span style="color:#ce5c00;font-weight:bold">(</span>merge, overwrite, deep-merge<span style="color:#ce5c00;font-weight:bold">)</span>. -</span></span><span style="display:flex;"><span> --help Show this message and exit. -</span></span></code></pre></div> -<div class="alert alert-primary" role="alert"> -<h4 class="alert-heading">Note</h4> -Similar to the <code>save</code> command, the usage of the Cloud Pod&rsquo;s platform is restricted to licensed users. Community users can load a Cloud Pod from a local URI file, URL, or public GitHub repository. However, they have no access to Cloud Pods versioning. -</div> -<h3 id="delete"><code>delete</code></h3> -<p>The <code>delete</code> command let users delete a Cloud Pod stored in the remote platform. The CLI manual for the <code>delete</code> command is as follows:</p> -<div class="highlight"><pre tabindex="0" style="background-color:#f8f8f8;-moz-tab-size:4;-o-tab-size:4;tab-size:4;"><code class="language-shell" data-lang="shell"><span style="display:flex;"><span>Usage: python -m localstack.cli.main pod delete <span style="color:#ce5c00;font-weight:bold">[</span>OPTIONS<span style="color:#ce5c00;font-weight:bold">]</span> -</span></span><span style="display:flex;"><span> -</span></span><span style="display:flex;"><span> Delete a Cloud Pod register on the remove LocalStack Pod<span style="color:#4e9a06">&#39;s platform. This command will cancel -</span></span></span><span style="display:flex;"><span><span style="color:#4e9a06"> all the versions of a created Pod and won&#39;</span>t be reversible. -</span></span><span style="display:flex;"><span> -</span></span><span style="display:flex;"><span>Options: -</span></span><span style="display:flex;"><span> -n, --name TEXT Name of the Cloud Pod <span style="color:#ce5c00;font-weight:bold">[</span>required<span style="color:#ce5c00;font-weight:bold">]</span> -</span></span><span style="display:flex;"><span> --help Show this message and exit. -</span></span></code></pre></div><h3 id="inspect"><code>inspect</code></h3> -<p>The <code>inspect</code> command simply lets the user inspect the content of a Cloud Pod. The CLI manual for the <code>inspect</code> command is as follows:</p> -<div class="highlight"><pre tabindex="0" style="background-color:#f8f8f8;-moz-tab-size:4;-o-tab-size:4;tab-size:4;"><code class="language-shell" data-lang="shell"><span style="display:flex;"><span>Usage: python -m localstack.cli.main pod inspect <span style="color:#ce5c00;font-weight:bold">[</span>OPTIONS<span style="color:#ce5c00;font-weight:bold">]</span> -</span></span><span style="display:flex;"><span> -</span></span><span style="display:flex;"><span> Inspect the contents of a Cloud Pod -</span></span><span style="display:flex;"><span> -</span></span><span style="display:flex;"><span>Options: -</span></span><span style="display:flex;"><span> -n, --name TEXT Name of the Cloud Pod <span style="color:#ce5c00;font-weight:bold">[</span>required<span style="color:#ce5c00;font-weight:bold">]</span> -</span></span><span style="display:flex;"><span> -f, --format TEXT Format <span style="color:#ce5c00;font-weight:bold">(</span>curses, rich, json<span style="color:#ce5c00;font-weight:bold">)</span>. -</span></span><span style="display:flex;"><span> --help Show this message and exit. -</span></span></code></pre></div><h3 id="list">list</h3> -<p>The <code>list</code> command lists all of the available Cloud Pods. It shows all the pods available for a single user and its organization by default. If the <code>--public option is passed to the commands, it shows only the Cloud Pods marked as public and are, therefore, available to all licensed users. The CLI manual for the </code>list` command is as follows:</p> -<div class="highlight"><pre tabindex="0" style="background-color:#f8f8f8;-moz-tab-size:4;-o-tab-size:4;tab-size:4;"><code class="language-shell" data-lang="shell"><span style="display:flex;"><span>Usage: python -m localstack.cli.main pod list <span style="color:#ce5c00;font-weight:bold">[</span>OPTIONS<span style="color:#ce5c00;font-weight:bold">]</span> -</span></span><span style="display:flex;"><span> -</span></span><span style="display:flex;"><span> List all the Cloud Pods available <span style="color:#204a87;font-weight:bold">for</span> a single user, or <span style="color:#204a87;font-weight:bold">for</span> an entire organization, <span style="color:#204a87;font-weight:bold">if</span> the user -</span></span><span style="display:flex;"><span> is part of one. -</span></span><span style="display:flex;"><span> -</span></span><span style="display:flex;"><span> With the --public flag, it lists the all the available public Cloud Pods. A public Cloud Pod is -</span></span><span style="display:flex;"><span> available across the boundary of a user ond/or organization. In other words, any public Cloud -</span></span><span style="display:flex;"><span> Pod can be injected by any other user holding a LocalStack Pro <span style="color:#ce5c00;font-weight:bold">(</span>or above<span style="color:#ce5c00;font-weight:bold">)</span> license. -</span></span><span style="display:flex;"><span> -</span></span><span style="display:flex;"><span>Options: -</span></span><span style="display:flex;"><span> -p, --public List all the available public Cloud Pods -</span></span><span style="display:flex;"><span> --help Show this message and exit. -</span></span></code></pre></div><h3 id="versions">versions</h3> -<p>The <code>versions</code> command simply lists all the available versions of a Cloud Pod. The CLI manual for the <code>version</code> command is as follows:</p> -<div class="highlight"><pre tabindex="0" style="background-color:#f8f8f8;-moz-tab-size:4;-o-tab-size:4;tab-size:4;"><code class="language-shell" data-lang="shell"><span style="display:flex;"><span>Usage: python -m localstack.cli.main pod versions <span style="color:#ce5c00;font-weight:bold">[</span>OPTIONS<span style="color:#ce5c00;font-weight:bold">]</span> -</span></span><span style="display:flex;"><span> -</span></span><span style="display:flex;"><span> List the versions available <span style="color:#204a87;font-weight:bold">for</span> a Cloud Pod. Each invocation of the save <span style="color:#204a87">command</span> is going to -</span></span><span style="display:flex;"><span> create a new version <span style="color:#204a87;font-weight:bold">for</span> a named Cloud Pod, is a Pod with such name already does exist in the -</span></span><span style="display:flex;"><span> LocalStack Pods platform. -</span></span><span style="display:flex;"><span> -</span></span><span style="display:flex;"><span>Options: -</span></span><span style="display:flex;"><span> -n, --name TEXT Name of the Cloud Pod <span style="color:#ce5c00;font-weight:bold">[</span>required<span style="color:#ce5c00;font-weight:bold">]</span> -</span></span><span style="display:flex;"><span> --help Show this message and exit. -</span></span></code></pre></div>User-Guide: Cloud Pods/user-guide/tools/cloud-pods/Mon, 01 Jan 0001 00:00:00 +0000/user-guide/tools/cloud-pods/ -<div class="alert alert-primary" role="alert"> -<h4 class="alert-heading">Note</h4> -Please note that cloud pods may not be compatible across different versions of LocalStack. -We are actively working on addressing this limitation in the upcoming releases. -</div> -<p>Cloud Pods are a mechanism that allows you to take a snapshot of the state in your current LocalStack instance, persist it to a storage backend, and easily share it with your team members.</p> -<p><img src="pods-persistence.png" alt="Persistence versus Cloud Pods"></p> -<div class="alert alert-success" role="alert"> -<h4 class="alert-heading">Hint</h4> -To quickly see cloud pods in action, we prepared a small sample application that uses cloud pods to inject its state into a running LocalStack container. <a href="https://app.localstack.cloud/quickstart/demo4">Cloud Pod Thumbnail Sample App</a> -</div> -<p>While the <a href="/references/persistence-mechanism/">Persistence</a> feature ensures that the service state survives container restarts, Cloud Pods go beyond and allow more fine-grained control over your state.</p> -<p>Instead of simply restoring a state when restarting LocalStack, Cloud Pods allow you to take snapshots of your local instance (with the <code>save</code> command) and inject such snapshots into a running instance (with the <code>load</code> command) without requiring a restart.</p> -<p>In addition, we provide a remote storage backend that can be used to store the state of your running application and share it with your team members.</p> -<p>You can interact with Cloud Pods via the Web UI, and to load and store the persistent state of pods, you can use the <code>localstack</code> <a href="/user-guide/tools/cloud-pods/pods-cli/">command-line interface (CLI)</a>.</p> -<p><img src="pods-ui.png" alt="Cloud Pods Web UI"></p> \ No newline at end of file diff --git a/categories/tools/index.html b/categories/tools/index.html index e1d1ad8243..11125511f5 100644 --- a/categories/tools/index.html +++ b/categories/tools/index.html @@ -1,7 +1,7 @@ Tools | Docs

    Category: Tools

    All Categories
    +| docs

    Category: Tools

    All Categories
    \ No newline at end of file diff --git a/categories/tools/index.xml b/categories/tools/index.xml index b0d8d1cc2e..6536657c80 100644 --- a/categories/tools/index.xml +++ b/categories/tools/index.xml @@ -1,210 +1,4 @@ -Docs – Tools/categories/tools/Recent content in Tools on DocsHugo -- gohugo.ioUser-Guide: Getting started with the Cloud Pods CLI/user-guide/tools/cloud-pods/getting-started/Mon, 01 Jan 0001 00:00:00 +0000/user-guide/tools/cloud-pods/getting-started/ -<p>With the LocalStack Cloud Pods command-line interface (CLI), the <code>pod</code> command, you can create cloud pods and manage them from a terminal. The Cloud Pods CLI is ideal in the following situations:</p> -<ul> -<li>Taking a snapshot of your running LocalStack instance.</li> -<li>Sharing your snapshot across teams with LocalStack Team features.</li> -<li>Injecting snapshots into a running instance without a restart.</li> -</ul> -<h2 id="installation">Installation</h2> -<p>LocalStack Cloud Pods CLI is directly available with the LocalStack installation, and no further installation is required to get started. If you are a Pro user, we recommend you to export the <code>LOCALSTACK_API_KEY</code> as an environment variable to allow you to use the full spectrum of LocalStack Cloud Pods feature.</p> -<p>This tutorial is intended for licensed users. The Community users can replicate a similar workflow by leveraging the <code>save</code> and <code>load</code> commands available to them. For more details, look at our <a href="/user-guide/tools/cloud-pods/community/">Community Cloud Pods guide</a>.</p> -<h2 id="basic-example">Basic example</h2> -<p>In this tutorial, you&rsquo;ll learn how to make a basic usage of LocalStack Cloud Pods CLI. This tutorial is intended for Pro users who wish to get more acquainted with Cloud Pods CLI. It assumes you have basic knowledge of:</p> -<ul> -<li>LocalStack</li> -<li><code>awscli</code> commands</li> -<li>Understanding of Cloud Pods workflow</li> -</ul> -<p>By the end of this tutorial, you would be able to create a snapshot of your running LocalStack instance, commit it and would be able to push this to your LocalStack account.</p> -<h3 id="procedure">Procedure</h3> -<p>To get started, start your LocalStack instance with your <code>LOCALSTACK_API_KEY</code> configured as an environment variable:</p> -<ol> -<li> -<p>Use the <code>awslocal</code> CLI to create AWS resources inside your running LocalStack instance.</p> -<p>As an example, we will create a S3 bucket using the <code>awslocal</code> CLI and enter some data inside it:</p> -<div class="highlight"><pre tabindex="0" style="background-color:#f8f8f8;-moz-tab-size:4;-o-tab-size:4;tab-size:4;"><code class="language-text" data-lang="text"><span style="display:flex;"><span><span class="command-prefix">$ </span>awslocal s3 mb s3://test -</span></span><span style="display:flex;"><span><span class="command-prefix">$ </span>echo &#34;hello world&#34; &gt; /tmp/hello-world -</span></span><span style="display:flex;"><span><span class="command-prefix">$ </span>awslocal s3 cp /tmp/hello-world s3://test/hello-world -</span></span><span style="display:flex;"><span><span class="command-prefix">$ </span>awslocal s3 ls s3://test/</span></span></code></pre></div> -</li> -<li> -<p>Save your Pod state using the <code>save</code> command by specifying the desired name as the first argument. This command will save the pod and register it to the remote platform. Optionally you can attach a message to the saved Cloud Pod with the <code>--message</code> flag:</p> -<div class="highlight"><pre tabindex="0" style="background-color:#f8f8f8;-moz-tab-size:4;-o-tab-size:4;tab-size:4;"><code class="language-text" data-lang="text"><span style="display:flex;"><span><span class="command-prefix">$ </span>localstack pod save &lt;pod-name&gt; --message &#34;&lt;description-message&gt;&#34;</span></span></code></pre></div> -</li> -<li> -<p>Check the list of Cloud Pods available to you and your organization using the <code>list</code> command:</p> -<div class="highlight"><pre tabindex="0" style="background-color:#f8f8f8;-moz-tab-size:4;-o-tab-size:4;tab-size:4;"><code class="language-text" data-lang="text"><span style="display:flex;"><span><span class="command-prefix">$ </span>localstack pod list -</span></span><span style="display:flex;"><span> ┏━━━━━━━━━━━━━━┳━━━━━━━━━━━┓ -</span></span><span style="display:flex;"><span> ┃ local/remote ┃ Name ┃ -</span></span><span style="display:flex;"><span> ┡━━━━━━━━━━━━━━╇━━━━━━━━━━━┩ -</span></span><span style="display:flex;"><span> │ local+remote │ pod-name │ -</span></span><span style="display:flex;"><span> └──────────────┴───────────┘</span></span></code></pre></div> -</li> -<li> -<p>Optional: You can inspect the contents of a Cloud Pod using the <code>inspect</code> command:</p> -<div class="highlight"><pre tabindex="0" style="background-color:#f8f8f8;-moz-tab-size:4;-o-tab-size:4;tab-size:4;"><code class="language-text" data-lang="text"><span style="display:flex;"><span><span class="command-prefix">$ </span>localstack pod inspect --name &lt;pod-name&gt; -</span></span><span style="display:flex;"><span> - 000000000000 -</span></span><span style="display:flex;"><span> - S3 -</span></span><span style="display:flex;"><span> - global -</span></span><span style="display:flex;"><span> - listBuckets -</span></span><span style="display:flex;"><span> - Buckets -</span></span><span style="display:flex;"><span> - 0 -</span></span><span style="display:flex;"><span> - Name = test -</span></span><span style="display:flex;"><span> - CreationDate = 2022-10-04T17:03:47.000Z -</span></span><span style="display:flex;"><span> - Owner -</span></span><span style="display:flex;"><span> - DisplayName = webfile -</span></span><span style="display:flex;"><span> - ID = bcaf1ffd86f41161ca5fb16fd081034f</span></span></code></pre></div> -</li> -<li> -<p>On an alternate machine, start LocalStack with the API key configured, and pull the Cloud Pod we created previously using <code>load</code> command with the Cloud Pod name as the first argument:</p> -<div class="highlight"><pre tabindex="0" style="background-color:#f8f8f8;-moz-tab-size:4;-o-tab-size:4;tab-size:4;"><code class="language-text" data-lang="text"><span style="display:flex;"><span><span class="command-prefix">$ </span>localstack pod load &lt;pod-name&gt; -</span></span><span style="display:flex;"><span> -</span></span><span style="display:flex;"><span> Done.</span></span></code></pre></div> -<p>Let&rsquo;s check the S3 buckets in our Cloud Pod: -<div class="highlight"><pre tabindex="0" style="background-color:#f8f8f8;-moz-tab-size:4;-o-tab-size:4;tab-size:4;"><code class="language-text" data-lang="text"><span style="display:flex;"><span><span class="command-prefix">$ </span>awslocal s3 ls s3://test/ -</span></span><span style="display:flex;"><span> -</span></span><span style="display:flex;"><span> 2022-10-04 22:33:54 12 hello-world</span></span></code></pre></div> -</p> -</li> -<li> -<p>Optional: You can make the Cloud Pod available to users outside your organization by making it public:</p> -<div class="highlight"><pre tabindex="0" style="background-color:#f8f8f8;-moz-tab-size:4;-o-tab-size:4;tab-size:4;"><code class="language-text" data-lang="text"><span style="display:flex;"><span><span class="command-prefix">$ </span>localstack pod save &lt;pod-name&gt; --visibility public</span></span></code></pre></div> -</li> -</ol> -<p>For a more detailed manual, refer to our <a href="/user-guide/tools/cloud-pods/pods-cli/">command-line interface (CLI) guide</a>. To check your Pods on the LocalStack Web user interface, navigate to <a href="https://app.localstack.cloud/pods">Cloud Pods page</a>.</p>User-Guide: Cloud Pods CLI command reference/user-guide/tools/cloud-pods/pods-cli/Mon, 01 Jan 0001 00:00:00 +0000/user-guide/tools/cloud-pods/pods-cli/ -<p>This reference provides descriptions and example commands for LocalStack Cloud Pods CLI (<code>pod</code>) commands.</p> -<h2 id="syntax">Syntax</h2> -<p>Use the following syntax to run <code>localstack pod</code> commands from your terminal window:</p> -<div class="highlight"><pre tabindex="0" style="background-color:#f8f8f8;-moz-tab-size:4;-o-tab-size:4;tab-size:4;"><code class="language-text" data-lang="text"><span style="display:flex;"><span><span class="command-prefix">$ </span>localstack pod [OPTIONS] COMMAND [ARGS]</span></span></code></pre></div> -<p>In the above syntax:</p> -<ul> -<li><code>COMMAND</code> specifies the operation you want to perform with your Cloud Pods (<code>save</code> or <code>load</code>).</li> -<li><code>OPTIONS</code> specifies the optional flags.</li> -<li><code>ARGS</code> specifies the command arguments.</li> -</ul> -<h2 id="commands">Commands</h2> -<p>The following section lists the available commands for the Cloud Pods CLI.</p> -<h3 id="save"><code>save</code></h3> -<p>The <code>save</code> command creates a new version of a Cloud Pod. Pro users can dump the Cloud Pod locally or upload it to the LocalStack platform. To dump the state locally, pass a local file URI as an argument to the <code>save</code> command. For instance, the following command:</p> -<div class="highlight"><pre tabindex="0" style="background-color:#f8f8f8;-moz-tab-size:4;-o-tab-size:4;tab-size:4;"><code class="language-text" data-lang="text"><span style="display:flex;"><span><span class="command-prefix">$ </span>localstack pod save file://&lt;path_to_disk&gt;/my-pod</span></span></code></pre></div> -<p>The above command will create a zip file named <code>my-pod</code> to the specified location on the disk. To use the Cloud Pods platform, specify the Cloud Pod&rsquo;s name as an argument, for example:</p> -<div class="highlight"><pre tabindex="0" style="background-color:#f8f8f8;-moz-tab-size:4;-o-tab-size:4;tab-size:4;"><code class="language-text" data-lang="text"><span style="display:flex;"><span><span class="command-prefix">$ </span>localstack pod save my-pod</span></span></code></pre></div> -<p>The above command creates a version of <code>my-pod</code> and registers it to our platform. Pushing already existing pod results in creating a new version and, eventually, uploading it to the platform. Users can also select a subset of AWS services they wish to incorporate in a new Cloud Pod version with the <code>--services</code> option.</p> -<p>Users who want to make a Cloud Pod accessible outside their organization can mark it as <strong>public</strong> with the following command:</p> -<div class="highlight"><pre tabindex="0" style="background-color:#f8f8f8;-moz-tab-size:4;-o-tab-size:4;tab-size:4;"><code class="language-text" data-lang="text"><span style="display:flex;"><span><span class="command-prefix">$ </span>localstack pod push --name &lt;pod_name&gt; --visibility public</span></span></code></pre></div> -<p>The above command does not create a new version and requires a version already registered with the platform. The CLI manual for the <code>save</code> command is as follows:</p> -<div class="highlight"><pre tabindex="0" style="background-color:#f8f8f8;-moz-tab-size:4;-o-tab-size:4;tab-size:4;"><code class="language-bash" data-lang="bash"><span style="display:flex;"><span>Usage: python -m localstack.cli.main pod save <span style="color:#ce5c00;font-weight:bold">[</span>OPTIONS<span style="color:#ce5c00;font-weight:bold">]</span> URL_OR_NAME -</span></span><span style="display:flex;"><span> -</span></span><span style="display:flex;"><span> Save the current state of the LocalStack container in a Cloud Pod. A Cloud Pod can be exported -</span></span><span style="display:flex;"><span> locally or registered within the LocalStack Pod<span style="color:#4e9a06">&#39;s platform (with a Pro license). An optional -</span></span></span><span style="display:flex;"><span><span style="color:#4e9a06"> message can be attached to any Cloud Pod. Furthermore, one could decide to export only a subset -</span></span></span><span style="display:flex;"><span><span style="color:#4e9a06"> of services with the optional --service option. -</span></span></span><span style="display:flex;"><span><span style="color:#4e9a06"> -</span></span></span><span style="display:flex;"><span><span style="color:#4e9a06"> To export on a local path run the following command: -</span></span></span><span style="display:flex;"><span><span style="color:#4e9a06"> localstack pod save file://&lt;path_on_disk&gt;/&lt;pod_name&gt; -</span></span></span><span style="display:flex;"><span><span style="color:#4e9a06"> -</span></span></span><span style="display:flex;"><span><span style="color:#4e9a06"> The output will be a &lt;pod_name&gt; zip file in the specified directory. This Cloud Pod instance can -</span></span></span><span style="display:flex;"><span><span style="color:#4e9a06"> be restored at any point in time with the load command. -</span></span></span><span style="display:flex;"><span><span style="color:#4e9a06"> -</span></span></span><span style="display:flex;"><span><span style="color:#4e9a06"> To use the LocalStack Pod&#39;</span>s platform, the desired Pod<span style="color:#4e9a06">&#39;s name only will suffice, e,g.: -</span></span></span><span style="display:flex;"><span><span style="color:#4e9a06"> -</span></span></span><span style="display:flex;"><span><span style="color:#4e9a06"> localstack pod save &lt;pod_name&gt; -</span></span></span><span style="display:flex;"><span><span style="color:#4e9a06"> -</span></span></span><span style="display:flex;"><span><span style="color:#4e9a06"> Please be aware that each following save invocation with the same name will result in a new -</span></span></span><span style="display:flex;"><span><span style="color:#4e9a06"> version being created. -</span></span></span><span style="display:flex;"><span><span style="color:#4e9a06"> -</span></span></span><span style="display:flex;"><span><span style="color:#4e9a06">Options: -</span></span></span><span style="display:flex;"><span><span style="color:#4e9a06"> -m, --message TEXT Add a comment describing this Cloud Pod&#39;</span>s version -</span></span><span style="display:flex;"><span> -s, --services TEXT Comma-delimited list of services to push in the Cloud Pod <span style="color:#ce5c00;font-weight:bold">(</span>all by default<span style="color:#ce5c00;font-weight:bold">)</span> -</span></span><span style="display:flex;"><span> --visibility TEXT Set the visibility of the Cloud Pod <span style="color:#ce5c00;font-weight:bold">[</span><span style="color:#4e9a06">`</span>public<span style="color:#4e9a06">`</span> or <span style="color:#4e9a06">`</span>private<span style="color:#4e9a06">`</span><span style="color:#ce5c00;font-weight:bold">]</span>. Does not -</span></span><span style="display:flex;"><span> create a new version -</span></span><span style="display:flex;"><span> --help Show this message and exit. -</span></span></code></pre></div> -<div class="alert alert-primary" role="alert"> -<h4 class="alert-heading">Note</h4> -Community users have access to a restricted version of the <code>save</code> command. -In particular, they can simply invoke the <code>save</code> command with a file URI as an argument. -</div> -<h3 id="load"><code>load</code></h3> -<p>The <code>load</code> command is the inverse operation of <code>save</code>. It retrieves the content of a previously stored Cloud Pod from the local file system or the Cloud Pod&rsquo;s platform and injects it into the application runtime.</p> -<p>The <code>load</code> command takes an argument that can either be a URI or a Cloud Pods name. While the first option is available to all users, the second is valid only for licensed ones.</p> -<p>By default, the injecting state updates the application runtime at a service level. Using the merge injection strategy, the state of all services specified in the injecting state is reflected precisely in the application runtime, while all other active services remain unchanged.</p> -<p>The <code>--strategy</code> option can be used to change such default injection behavior. More specifically, the overwrite strategy will ensure the application runtime is an exact instance of the injecting state. The deep-merge strategy will perform a fine-grain merge of the injecting state into the application runtime.</p> -<p>The CLI manual for the <code>load</code> command is as follows:</p> -<div class="highlight"><pre tabindex="0" style="background-color:#f8f8f8;-moz-tab-size:4;-o-tab-size:4;tab-size:4;"><code class="language-shell" data-lang="shell"><span style="display:flex;"><span>Usage: python -m localstack.cli.main pod load <span style="color:#ce5c00;font-weight:bold">[</span>OPTIONS<span style="color:#ce5c00;font-weight:bold">]</span> URL_OR_NAME -</span></span><span style="display:flex;"><span> -</span></span><span style="display:flex;"><span> Load a Cloud Pod into the running LocalStack container. Users can import Pods different sources: -</span></span><span style="display:flex;"><span> community users can store and retrieve Pods from <span style="color:#204a87">local</span> storage or any provided HTTP URL<span style="color:#000;font-weight:bold">;</span> -</span></span><span style="display:flex;"><span> licensed users can take advantage of the LocalStack Pod<span style="color:#4e9a06">&#39;s platform to ease the storage, -</span></span></span><span style="display:flex;"><span><span style="color:#4e9a06"> versioning, and retrieval of Pods. -</span></span></span><span style="display:flex;"><span><span style="color:#4e9a06"> -</span></span></span><span style="display:flex;"><span><span style="color:#4e9a06"> The --source option specifies a URI scheme that point to the Cloud Pod&#39;</span>s resources to import. -</span></span><span style="display:flex;"><span> -</span></span><span style="display:flex;"><span> We support the following protocols: -</span></span><span style="display:flex;"><span> localstack pod load file://&lt;path_to_disk&gt; -</span></span><span style="display:flex;"><span> localstack pod load https://&lt;some_url&gt; -</span></span><span style="display:flex;"><span> localstack pod load git://&lt;user&gt;/&lt;repo&gt;/&lt;local_repo_path&gt; -</span></span><span style="display:flex;"><span> -</span></span><span style="display:flex;"><span> The latter option is merely a shortcut <span style="color:#204a87;font-weight:bold">for</span> --source -</span></span><span style="display:flex;"><span> https://raw.githubusercontent.com/&lt;user&gt;/&lt;repo&gt;/&lt;branch&gt;/&lt;path&gt; -</span></span><span style="display:flex;"><span> -</span></span><span style="display:flex;"><span> Importing via a provided --source is available <span style="color:#204a87;font-weight:bold">for</span> all users. Licensed users can omit this -</span></span><span style="display:flex;"><span> option and simply provide a name <span style="color:#204a87;font-weight:bold">for</span> their Cloud Pods. -</span></span><span style="display:flex;"><span> -</span></span><span style="display:flex;"><span>Options: -</span></span><span style="display:flex;"><span> -s, --strategy TEXT Inject strategy <span style="color:#ce5c00;font-weight:bold">(</span>merge, overwrite, deep-merge<span style="color:#ce5c00;font-weight:bold">)</span>. -</span></span><span style="display:flex;"><span> --help Show this message and exit. -</span></span></code></pre></div> -<div class="alert alert-primary" role="alert"> -<h4 class="alert-heading">Note</h4> -Similar to the <code>save</code> command, the usage of the Cloud Pod&rsquo;s platform is restricted to licensed users. Community users can load a Cloud Pod from a local URI file, URL, or public GitHub repository. However, they have no access to Cloud Pods versioning. -</div> -<h3 id="delete"><code>delete</code></h3> -<p>The <code>delete</code> command let users delete a Cloud Pod stored in the remote platform. The CLI manual for the <code>delete</code> command is as follows:</p> -<div class="highlight"><pre tabindex="0" style="background-color:#f8f8f8;-moz-tab-size:4;-o-tab-size:4;tab-size:4;"><code class="language-shell" data-lang="shell"><span style="display:flex;"><span>Usage: python -m localstack.cli.main pod delete <span style="color:#ce5c00;font-weight:bold">[</span>OPTIONS<span style="color:#ce5c00;font-weight:bold">]</span> -</span></span><span style="display:flex;"><span> -</span></span><span style="display:flex;"><span> Delete a Cloud Pod register on the remove LocalStack Pod<span style="color:#4e9a06">&#39;s platform. This command will cancel -</span></span></span><span style="display:flex;"><span><span style="color:#4e9a06"> all the versions of a created Pod and won&#39;</span>t be reversible. -</span></span><span style="display:flex;"><span> -</span></span><span style="display:flex;"><span>Options: -</span></span><span style="display:flex;"><span> -n, --name TEXT Name of the Cloud Pod <span style="color:#ce5c00;font-weight:bold">[</span>required<span style="color:#ce5c00;font-weight:bold">]</span> -</span></span><span style="display:flex;"><span> --help Show this message and exit. -</span></span></code></pre></div><h3 id="inspect"><code>inspect</code></h3> -<p>The <code>inspect</code> command simply lets the user inspect the content of a Cloud Pod. The CLI manual for the <code>inspect</code> command is as follows:</p> -<div class="highlight"><pre tabindex="0" style="background-color:#f8f8f8;-moz-tab-size:4;-o-tab-size:4;tab-size:4;"><code class="language-shell" data-lang="shell"><span style="display:flex;"><span>Usage: python -m localstack.cli.main pod inspect <span style="color:#ce5c00;font-weight:bold">[</span>OPTIONS<span style="color:#ce5c00;font-weight:bold">]</span> -</span></span><span style="display:flex;"><span> -</span></span><span style="display:flex;"><span> Inspect the contents of a Cloud Pod -</span></span><span style="display:flex;"><span> -</span></span><span style="display:flex;"><span>Options: -</span></span><span style="display:flex;"><span> -n, --name TEXT Name of the Cloud Pod <span style="color:#ce5c00;font-weight:bold">[</span>required<span style="color:#ce5c00;font-weight:bold">]</span> -</span></span><span style="display:flex;"><span> -f, --format TEXT Format <span style="color:#ce5c00;font-weight:bold">(</span>curses, rich, json<span style="color:#ce5c00;font-weight:bold">)</span>. -</span></span><span style="display:flex;"><span> --help Show this message and exit. -</span></span></code></pre></div><h3 id="list">list</h3> -<p>The <code>list</code> command lists all of the available Cloud Pods. It shows all the pods available for a single user and its organization by default. If the <code>--public option is passed to the commands, it shows only the Cloud Pods marked as public and are, therefore, available to all licensed users. The CLI manual for the </code>list` command is as follows:</p> -<div class="highlight"><pre tabindex="0" style="background-color:#f8f8f8;-moz-tab-size:4;-o-tab-size:4;tab-size:4;"><code class="language-shell" data-lang="shell"><span style="display:flex;"><span>Usage: python -m localstack.cli.main pod list <span style="color:#ce5c00;font-weight:bold">[</span>OPTIONS<span style="color:#ce5c00;font-weight:bold">]</span> -</span></span><span style="display:flex;"><span> -</span></span><span style="display:flex;"><span> List all the Cloud Pods available <span style="color:#204a87;font-weight:bold">for</span> a single user, or <span style="color:#204a87;font-weight:bold">for</span> an entire organization, <span style="color:#204a87;font-weight:bold">if</span> the user -</span></span><span style="display:flex;"><span> is part of one. -</span></span><span style="display:flex;"><span> -</span></span><span style="display:flex;"><span> With the --public flag, it lists the all the available public Cloud Pods. A public Cloud Pod is -</span></span><span style="display:flex;"><span> available across the boundary of a user ond/or organization. In other words, any public Cloud -</span></span><span style="display:flex;"><span> Pod can be injected by any other user holding a LocalStack Pro <span style="color:#ce5c00;font-weight:bold">(</span>or above<span style="color:#ce5c00;font-weight:bold">)</span> license. -</span></span><span style="display:flex;"><span> -</span></span><span style="display:flex;"><span>Options: -</span></span><span style="display:flex;"><span> -p, --public List all the available public Cloud Pods -</span></span><span style="display:flex;"><span> --help Show this message and exit. -</span></span></code></pre></div><h3 id="versions">versions</h3> -<p>The <code>versions</code> command simply lists all the available versions of a Cloud Pod. The CLI manual for the <code>version</code> command is as follows:</p> -<div class="highlight"><pre tabindex="0" style="background-color:#f8f8f8;-moz-tab-size:4;-o-tab-size:4;tab-size:4;"><code class="language-shell" data-lang="shell"><span style="display:flex;"><span>Usage: python -m localstack.cli.main pod versions <span style="color:#ce5c00;font-weight:bold">[</span>OPTIONS<span style="color:#ce5c00;font-weight:bold">]</span> -</span></span><span style="display:flex;"><span> -</span></span><span style="display:flex;"><span> List the versions available <span style="color:#204a87;font-weight:bold">for</span> a Cloud Pod. Each invocation of the save <span style="color:#204a87">command</span> is going to -</span></span><span style="display:flex;"><span> create a new version <span style="color:#204a87;font-weight:bold">for</span> a named Cloud Pod, is a Pod with such name already does exist in the -</span></span><span style="display:flex;"><span> LocalStack Pods platform. -</span></span><span style="display:flex;"><span> -</span></span><span style="display:flex;"><span>Options: -</span></span><span style="display:flex;"><span> -n, --name TEXT Name of the Cloud Pod <span style="color:#ce5c00;font-weight:bold">[</span>required<span style="color:#ce5c00;font-weight:bold">]</span> -</span></span><span style="display:flex;"><span> --help Show this message and exit. -</span></span></code></pre></div>User-Guide: DNS Server/user-guide/tools/transparent-endpoint-injection/dns-server/Mon, 01 Jan 0001 00:00:00 +0000/user-guide/tools/transparent-endpoint-injection/dns-server/ +Docs – Tools/categories/tools/Recent content in Tools on DocsHugo -- gohugo.ioUser-Guide: DNS Server/user-guide/tools/transparent-endpoint-injection/dns-server/Mon, 01 Jan 0001 00:00:00 +0000/user-guide/tools/transparent-endpoint-injection/dns-server/ <p>All versions of LocalStack include a DNS server that resolves the domain name <code>localhost.localstack.cloud</code> to the LocalStack container. This enables seamless connectivity from your container to LocalStack, or from created compute resources like Lambda, ECS or EC2 to LocalStack. In addition, LocalStack Pro supports transparent execution mode, which means that your application code automatically accesses the LocalStack APIs as opposed to the real APIs on AWS.</p> @@ -412,57 +206,4 @@ If you choose to ship your own SDKs with your Lambda or using a layer, it will f <li>docker</li> <li>docker-reuse</li> </ul> -<p>This feature is currently not supported for custom Lambda container images.</p>User-Guide: Cloud Pods/user-guide/tools/cloud-pods/Mon, 01 Jan 0001 00:00:00 +0000/user-guide/tools/cloud-pods/ -<div class="alert alert-primary" role="alert"> -<h4 class="alert-heading">Note</h4> -Please note that cloud pods may not be compatible across different versions of LocalStack. -We are actively working on addressing this limitation in the upcoming releases. -</div> -<p>Cloud Pods are a mechanism that allows you to take a snapshot of the state in your current LocalStack instance, persist it to a storage backend, and easily share it with your team members.</p> -<p><img src="pods-persistence.png" alt="Persistence versus Cloud Pods"></p> -<div class="alert alert-success" role="alert"> -<h4 class="alert-heading">Hint</h4> -To quickly see cloud pods in action, we prepared a small sample application that uses cloud pods to inject its state into a running LocalStack container. <a href="https://app.localstack.cloud/quickstart/demo4">Cloud Pod Thumbnail Sample App</a> -</div> -<p>While the <a href="/references/persistence-mechanism/">Persistence</a> feature ensures that the service state survives container restarts, Cloud Pods go beyond and allow more fine-grained control over your state.</p> -<p>Instead of simply restoring a state when restarting LocalStack, Cloud Pods allow you to take snapshots of your local instance (with the <code>save</code> command) and inject such snapshots into a running instance (with the <code>load</code> command) without requiring a restart.</p> -<p>In addition, we provide a remote storage backend that can be used to store the state of your running application and share it with your team members.</p> -<p>You can interact with Cloud Pods via the Web UI, and to load and store the persistent state of pods, you can use the <code>localstack</code> <a href="/user-guide/tools/cloud-pods/pods-cli/">command-line interface (CLI)</a>.</p> -<p><img src="pods-ui.png" alt="Cloud Pods Web UI"></p>User-Guide: Cloud Pods Launchpad/user-guide/tools/cloud-pods/launchpad/Mon, 01 Jan 0001 00:00:00 +0000/user-guide/tools/cloud-pods/launchpad/ -<p>The LocalStack Cloud Pods Launchpad allows you to quickly share and inject cloud pods into a LocalStack instance.</p> -<h2 id="creating-your-sharable-link">Creating your sharable link</h2> -<p>Navigate to <a href="https://app.localstack.cloud/launchpad">https://app.localstack.cloud/launchpad</a> where you can create a sharable link for your pods.</p> -<p><img src="link-generator.png" alt="Cloud Pods Launchpad Link Generator"></p> -<p>Enter a public URl to your pod in the first input field, and click on &lsquo;Generate Link&rsquo;. -The resulting link can be copied and shared with others.</p> -<p>You can also copy the markdown snippet to quickly add a badge to your repository.</p> -<div class="alert alert-warning" role="alert"> -<h4 class="alert-heading">Warning</h4> -<p>Please consider that the launchpad takes an arbitrary URL as input and passes it onto your LocalStack instance to inject the pod. -This may lead to unintended side effects, as the URL that is passed to the launchpad is not validated in any way.</p> -<p>We also display the URL on the UI, so please make sure that your trust the URL when using the launchpad.</p> -</div> -<h2 id="adding-a-badge-to-your-repository">Adding a badge to your repository</h2> -<p>If you want to add a badge to your README that links to the Cloud Pod Launchpad, you can use the following markdown snippet:</p> -<div class="highlight"><pre tabindex="0" style="background-color:#f8f8f8;-moz-tab-size:4;-o-tab-size:4;tab-size:4;"><code class="language-markdown" data-lang="markdown"><span style="display:flex;"><span>[<span style="color:#204a87;font-weight:bold">![Launch LocalStack Cloudpod</span>](<span style="color:#c4a000">https://localstack.cloud/gh/launch-pod-badge.svg</span>)](https://app.localstack.cloud/launchpad?url=url_of_your_pod) -</span></span></code></pre></div><p><img src="badge-demo.png" alt="Cloud Pods Badge Demonstration"></p> -<p>Please note that you have to add the <code>url_of_your_pod</code> as the <code>url</code> query parameter to the URL. -For example if you are hosting the pod in the same repository, just use the URL pointing to the raw pod file. -Additionally, you can use the <a href="#creating-your-sharable-link">Link Generator</a> to create the sharable link for your pod and copy the markdown for your repo.</p> -<p>Check out a proper example <a href="https://github.com/localstack/cloud-pod-badge" target="_blank">on this GitHub repository</a>.</p> -<h2 id="troubleshooting-common-problems">Troubleshooting common problems</h2> -<p>In this section we present an overview of common problems and how to solve them.</p> -<h3 id="localstack-is-not-running">LocalStack is not running</h3> -<p>In case your LocalStack instance is not running, you will see the following error message:</p> -<p><img src="ls-not-running.png" alt="Cloud Pods Launchpad Error LocalStack not running"></p> -<p>Please start up your LocalStack instance and try again. -Find out more about how to start LocalStack in the <a href="/user-guide/tools/cloud-pods/getting-started/">Getting Started</a> section.</p> -<h3 id="failed-to-load-metadata">Failed to load metadata</h3> -<p>In case the launchpad fails to load the metadata of your pod, you will see the following error message:</p> -<p><img src="metadata-load-failed.png" alt="Cloud Pods Launchpad Error failed to load metadata"></p> -<p>This can happen if the pod is not available anymore or if the URL is not valid. -Please check the URL and try again.</p> -<h3 id="failed-to-inject-pod">Failed to inject pod</h3> -<p>In case the launchpad fails to inject the pod into your LocalStack instance, you will see &lsquo;Pod injection failed&rsquo; in the log message. -This may be due to a couple of reasons, like version mismatch. -Please check out your LocalStack logs for more information.</p> \ No newline at end of file +<p>This feature is currently not supported for custom Lambda container images.</p> \ No newline at end of file diff --git a/contributing/concepts/index.html b/contributing/concepts/index.html index a7a0438c65..918779a3de 100644 --- a/contributing/concepts/index.html +++ b/contributing/concepts/index.html @@ -130,11 +130,11 @@
  • +
  • +
  • +
  • +
  • +
  • diff --git a/contributing/contributing/index.html b/contributing/contributing/index.html index 41ecfd586c..4ee0e09226 100644 --- a/contributing/contributing/index.html +++ b/contributing/contributing/index.html @@ -130,11 +130,11 @@
  • +
  • +
  • +
  • +
  • +
  • diff --git a/contributing/development-environment-setup/index.html b/contributing/development-environment-setup/index.html index f7edf47af2..3e1e7dd8e5 100644 --- a/contributing/development-environment-setup/index.html +++ b/contributing/development-environment-setup/index.html @@ -130,11 +130,11 @@
  • +
  • +
  • +
  • +
  • +
  • diff --git a/contributing/index.html b/contributing/index.html index 035e64da00..b49d0553bb 100644 --- a/contributing/index.html +++ b/contributing/index.html @@ -130,11 +130,11 @@
  • +
  • +
  • +
  • +
  • +
  • diff --git a/contributing/integration-tests/index.html b/contributing/integration-tests/index.html index 7d1a5ea239..702290d3e1 100644 --- a/contributing/integration-tests/index.html +++ b/contributing/integration-tests/index.html @@ -130,11 +130,11 @@
  • +
  • +
  • +
  • +
  • +
  • diff --git a/contributing/parity-testing/index.html b/contributing/parity-testing/index.html index b25404f598..20dcc2cb85 100644 --- a/contributing/parity-testing/index.html +++ b/contributing/parity-testing/index.html @@ -130,11 +130,11 @@
  • +
  • +
  • +
  • +
  • +
  • diff --git a/contributing/terraform-tests/index.html b/contributing/terraform-tests/index.html index fc7f05f94b..79f7a3e1d3 100644 --- a/contributing/terraform-tests/index.html +++ b/contributing/terraform-tests/index.html @@ -130,11 +130,11 @@
  • +
  • +
  • +
  • +
  • +
  • diff --git a/developer-hub/index.html b/developer-hub/index.html index 8ae1dd62ab..17b1a569e5 100644 --- a/developer-hub/index.html +++ b/developer-hub/index.html @@ -126,11 +126,11 @@
  • +
  • +
  • +
  • +
  • +
  • diff --git a/getting-started/api-key/index.html b/getting-started/api-key/index.html index 2799b551de..f23fd11e58 100644 --- a/getting-started/api-key/index.html +++ b/getting-started/api-key/index.html @@ -130,11 +130,11 @@
  • +
  • +
  • +
  • +
  • +
  • diff --git a/getting-started/faq/index.html b/getting-started/faq/index.html index 654fa99ee1..58565f7d03 100644 --- a/getting-started/faq/index.html +++ b/getting-started/faq/index.html @@ -130,11 +130,11 @@
  • +
  • +
  • +
  • +
  • +
  • diff --git a/getting-started/glossary/index.html b/getting-started/glossary/index.html index f3e8da103e..4eea553425 100644 --- a/getting-started/glossary/index.html +++ b/getting-started/glossary/index.html @@ -130,11 +130,11 @@
  • +
  • +
  • +
  • +
  • +
  • diff --git a/getting-started/help-and-support/index.html b/getting-started/help-and-support/index.html index 01e0810d6c..b0eb804182 100644 --- a/getting-started/help-and-support/index.html +++ b/getting-started/help-and-support/index.html @@ -130,11 +130,11 @@
  • +
  • +
  • +
  • +
  • +
  • diff --git a/getting-started/index.html b/getting-started/index.html index 51b7cf93d4..89afdfba53 100644 --- a/getting-started/index.html +++ b/getting-started/index.html @@ -130,11 +130,11 @@
  • +
  • +
  • +
  • +
  • +
  • diff --git a/getting-started/installation/index.html b/getting-started/installation/index.html index a9006cc13b..72b6a2a960 100644 --- a/getting-started/installation/index.html +++ b/getting-started/installation/index.html @@ -130,11 +130,11 @@
  • +
  • +
  • +
  • +
  • +
  • diff --git a/getting-started/quickstart/index.html b/getting-started/quickstart/index.html index e9b27803c2..ae47ec0639 100644 --- a/getting-started/quickstart/index.html +++ b/getting-started/quickstart/index.html @@ -130,11 +130,11 @@
  • +
  • +
  • +
  • +
  • +
  • diff --git a/overview/index.html b/overview/index.html index 74e9ac72b1..e2c9bf688d 100644 --- a/overview/index.html +++ b/overview/index.html @@ -126,11 +126,11 @@
  • +
  • +
  • +
  • +
  • +
  • diff --git a/references/arm64-support/index.html b/references/arm64-support/index.html index 889a95006a..c846853947 100644 --- a/references/arm64-support/index.html +++ b/references/arm64-support/index.html @@ -130,11 +130,11 @@
  • +
  • +
  • +
  • +
  • +
  • diff --git a/references/configuration/index.html b/references/configuration/index.html index a91604b8cc..8d026c9788 100644 --- a/references/configuration/index.html +++ b/references/configuration/index.html @@ -130,11 +130,11 @@
  • +
  • +
  • +
  • +
  • +
  • diff --git a/references/coverage/coverage_acm/index.html b/references/coverage/coverage_acm/index.html index b124f60ea3..9a99238610 100644 --- a/references/coverage/coverage_acm/index.html +++ b/references/coverage/coverage_acm/index.html @@ -130,11 +130,11 @@
  • +
  • +
  • +
  • +
  • +
  • diff --git a/references/coverage/coverage_amplify/index.html b/references/coverage/coverage_amplify/index.html index 0356c3dce0..ce76a2275a 100644 --- a/references/coverage/coverage_amplify/index.html +++ b/references/coverage/coverage_amplify/index.html @@ -130,11 +130,11 @@
  • +
  • +
  • +
  • +
  • +
  • diff --git a/references/coverage/coverage_apigateway/index.html b/references/coverage/coverage_apigateway/index.html index 68abe50d90..6eabf7fdfa 100644 --- a/references/coverage/coverage_apigateway/index.html +++ b/references/coverage/coverage_apigateway/index.html @@ -130,11 +130,11 @@
  • +
  • +
  • +
  • +
  • +
  • diff --git a/references/coverage/coverage_apigatewaymanagementapi/index.html b/references/coverage/coverage_apigatewaymanagementapi/index.html index b6d1dc2462..587e38dc32 100644 --- a/references/coverage/coverage_apigatewaymanagementapi/index.html +++ b/references/coverage/coverage_apigatewaymanagementapi/index.html @@ -130,11 +130,11 @@
  • +
  • +
  • +
  • +
  • +
  • diff --git a/references/coverage/coverage_apigatewayv2/index.html b/references/coverage/coverage_apigatewayv2/index.html index 711654a61b..f65473f328 100644 --- a/references/coverage/coverage_apigatewayv2/index.html +++ b/references/coverage/coverage_apigatewayv2/index.html @@ -130,11 +130,11 @@
  • +
  • +
  • +
  • +
  • +
  • diff --git a/references/coverage/coverage_appconfig/index.html b/references/coverage/coverage_appconfig/index.html index b4a2bcc10e..4b54bbf7d1 100644 --- a/references/coverage/coverage_appconfig/index.html +++ b/references/coverage/coverage_appconfig/index.html @@ -130,11 +130,11 @@
  • +
  • +
  • +
  • +
  • +
  • diff --git a/references/coverage/coverage_application-autoscaling/index.html b/references/coverage/coverage_application-autoscaling/index.html index fab29e18e3..7573121907 100644 --- a/references/coverage/coverage_application-autoscaling/index.html +++ b/references/coverage/coverage_application-autoscaling/index.html @@ -130,11 +130,11 @@
  • +
  • +
  • +
  • +
  • +
  • diff --git a/references/coverage/coverage_appsync/index.html b/references/coverage/coverage_appsync/index.html index 9518cfe69a..d392dc88af 100644 --- a/references/coverage/coverage_appsync/index.html +++ b/references/coverage/coverage_appsync/index.html @@ -130,11 +130,11 @@
  • +
  • +
  • +
  • +
  • +
  • diff --git a/references/coverage/coverage_athena/index.html b/references/coverage/coverage_athena/index.html index 3678a26576..73d06c0dc6 100644 --- a/references/coverage/coverage_athena/index.html +++ b/references/coverage/coverage_athena/index.html @@ -130,11 +130,11 @@
  • +
  • +
  • +
  • +
  • +
  • diff --git a/references/coverage/coverage_autoscaling/index.html b/references/coverage/coverage_autoscaling/index.html index 9cc4c647b5..5cd9cc56b2 100644 --- a/references/coverage/coverage_autoscaling/index.html +++ b/references/coverage/coverage_autoscaling/index.html @@ -130,11 +130,11 @@
  • +
  • +
  • +
  • +
  • +
  • diff --git a/references/coverage/coverage_backup/index.html b/references/coverage/coverage_backup/index.html index e4d9be65e0..40d31ebab6 100644 --- a/references/coverage/coverage_backup/index.html +++ b/references/coverage/coverage_backup/index.html @@ -130,11 +130,11 @@
  • +
  • +
  • +
  • +
  • +
  • diff --git a/references/coverage/coverage_batch/index.html b/references/coverage/coverage_batch/index.html index 808849e0db..3d7af2224f 100644 --- a/references/coverage/coverage_batch/index.html +++ b/references/coverage/coverage_batch/index.html @@ -130,11 +130,11 @@
  • +
  • +
  • +
  • +
  • +
  • diff --git a/references/coverage/coverage_ce/index.html b/references/coverage/coverage_ce/index.html index f1f1b5328c..cc996670a8 100644 --- a/references/coverage/coverage_ce/index.html +++ b/references/coverage/coverage_ce/index.html @@ -130,11 +130,11 @@
  • +
  • +
  • +
  • +
  • +
  • diff --git a/references/coverage/coverage_cloudformation/index.html b/references/coverage/coverage_cloudformation/index.html index 7dda6682d1..88bd7e9dc2 100644 --- a/references/coverage/coverage_cloudformation/index.html +++ b/references/coverage/coverage_cloudformation/index.html @@ -130,11 +130,11 @@
  • +
  • +
  • +
  • +
  • +
  • diff --git a/references/coverage/coverage_cloudfront/index.html b/references/coverage/coverage_cloudfront/index.html index f85efaaf7e..cbef665ce7 100644 --- a/references/coverage/coverage_cloudfront/index.html +++ b/references/coverage/coverage_cloudfront/index.html @@ -130,11 +130,11 @@
  • +
  • +
  • +
  • +
  • +
  • diff --git a/references/coverage/coverage_cloudtrail/index.html b/references/coverage/coverage_cloudtrail/index.html index 497b404a89..7a468e7513 100644 --- a/references/coverage/coverage_cloudtrail/index.html +++ b/references/coverage/coverage_cloudtrail/index.html @@ -130,11 +130,11 @@
  • +
  • +
  • +
  • +
  • +
  • diff --git a/references/coverage/coverage_cloudwatch/index.html b/references/coverage/coverage_cloudwatch/index.html index 8cda569479..a07cf38a18 100644 --- a/references/coverage/coverage_cloudwatch/index.html +++ b/references/coverage/coverage_cloudwatch/index.html @@ -130,11 +130,11 @@
  • +
  • +
  • +
  • +
  • +
  • diff --git a/references/coverage/coverage_codecommit/index.html b/references/coverage/coverage_codecommit/index.html index 83795eea15..ac82eeb46a 100644 --- a/references/coverage/coverage_codecommit/index.html +++ b/references/coverage/coverage_codecommit/index.html @@ -130,11 +130,11 @@
  • +
  • +
  • +
  • +
  • +
  • diff --git a/references/coverage/coverage_cognito-identity/index.html b/references/coverage/coverage_cognito-identity/index.html index 5ab64e50f1..1c28e2da45 100644 --- a/references/coverage/coverage_cognito-identity/index.html +++ b/references/coverage/coverage_cognito-identity/index.html @@ -130,11 +130,11 @@
  • +
  • +
  • +
  • +
  • +
  • diff --git a/references/coverage/coverage_cognito-idp/index.html b/references/coverage/coverage_cognito-idp/index.html index 4e23ce35dc..01c54aea5e 100644 --- a/references/coverage/coverage_cognito-idp/index.html +++ b/references/coverage/coverage_cognito-idp/index.html @@ -130,11 +130,11 @@
  • +
  • +
  • +
  • +
  • +
  • diff --git a/references/coverage/coverage_config/index.html b/references/coverage/coverage_config/index.html index 7ed325047c..9935457b91 100644 --- a/references/coverage/coverage_config/index.html +++ b/references/coverage/coverage_config/index.html @@ -130,11 +130,11 @@
  • +
  • +
  • +
  • +
  • +
  • diff --git a/references/coverage/coverage_docdb/index.html b/references/coverage/coverage_docdb/index.html index dab3388002..ae7e1b18d0 100644 --- a/references/coverage/coverage_docdb/index.html +++ b/references/coverage/coverage_docdb/index.html @@ -130,11 +130,11 @@
  • +
  • +
  • +
  • +
  • +
  • diff --git a/references/coverage/coverage_dynamodb/index.html b/references/coverage/coverage_dynamodb/index.html index 2f2717adb8..3c76c3fba5 100644 --- a/references/coverage/coverage_dynamodb/index.html +++ b/references/coverage/coverage_dynamodb/index.html @@ -130,11 +130,11 @@
  • +
  • +
  • +
  • +
  • +
  • diff --git a/references/coverage/coverage_dynamodbstreams/index.html b/references/coverage/coverage_dynamodbstreams/index.html index 0da9c66a5a..4bc99f7b72 100644 --- a/references/coverage/coverage_dynamodbstreams/index.html +++ b/references/coverage/coverage_dynamodbstreams/index.html @@ -130,11 +130,11 @@
  • +
  • +
  • +
  • +
  • +
  • diff --git a/references/coverage/coverage_ec2/index.html b/references/coverage/coverage_ec2/index.html index 7e2d38c444..3bd1ffbfcb 100644 --- a/references/coverage/coverage_ec2/index.html +++ b/references/coverage/coverage_ec2/index.html @@ -130,11 +130,11 @@
  • +
  • +
  • +
  • +
  • +
  • diff --git a/references/coverage/coverage_ecr/index.html b/references/coverage/coverage_ecr/index.html index 219696086f..28befa69cd 100644 --- a/references/coverage/coverage_ecr/index.html +++ b/references/coverage/coverage_ecr/index.html @@ -130,11 +130,11 @@
  • +
  • +
  • +
  • +
  • +
  • diff --git a/references/coverage/coverage_ecs/index.html b/references/coverage/coverage_ecs/index.html index 8897abf657..d8e422ce8a 100644 --- a/references/coverage/coverage_ecs/index.html +++ b/references/coverage/coverage_ecs/index.html @@ -130,11 +130,11 @@
  • +
  • +
  • +
  • +
  • +
  • diff --git a/references/coverage/coverage_efs/index.html b/references/coverage/coverage_efs/index.html index 054a3b85eb..70195bbb43 100644 --- a/references/coverage/coverage_efs/index.html +++ b/references/coverage/coverage_efs/index.html @@ -130,11 +130,11 @@
  • +
  • +
  • +
  • +
  • +
  • diff --git a/references/coverage/coverage_eks/index.html b/references/coverage/coverage_eks/index.html index a6a3cc8261..ffa5cc201c 100644 --- a/references/coverage/coverage_eks/index.html +++ b/references/coverage/coverage_eks/index.html @@ -130,11 +130,11 @@
  • +
  • +
  • +
  • +
  • +
  • diff --git a/references/coverage/coverage_elasticache/index.html b/references/coverage/coverage_elasticache/index.html index e0867619e9..f53a19c107 100644 --- a/references/coverage/coverage_elasticache/index.html +++ b/references/coverage/coverage_elasticache/index.html @@ -130,11 +130,11 @@
  • +
  • +
  • +
  • +
  • +
  • diff --git a/references/coverage/coverage_elasticbeanstalk/index.html b/references/coverage/coverage_elasticbeanstalk/index.html index af1494e2c8..73c456e5d9 100644 --- a/references/coverage/coverage_elasticbeanstalk/index.html +++ b/references/coverage/coverage_elasticbeanstalk/index.html @@ -130,11 +130,11 @@
  • +
  • +
  • +
  • +
  • +
  • diff --git a/references/coverage/coverage_elb/index.html b/references/coverage/coverage_elb/index.html index b2c7a1ae35..87bb4dd6a2 100644 --- a/references/coverage/coverage_elb/index.html +++ b/references/coverage/coverage_elb/index.html @@ -130,11 +130,11 @@
  • +
  • +
  • +
  • +
  • +
  • diff --git a/references/coverage/coverage_elbv2/index.html b/references/coverage/coverage_elbv2/index.html index 596b7dd9a8..0dd5c8cb00 100644 --- a/references/coverage/coverage_elbv2/index.html +++ b/references/coverage/coverage_elbv2/index.html @@ -130,11 +130,11 @@
  • +
  • +
  • +
  • +
  • +
  • diff --git a/references/coverage/coverage_emr-serverless/index.html b/references/coverage/coverage_emr-serverless/index.html index d27b90283b..e7c9a89ba5 100644 --- a/references/coverage/coverage_emr-serverless/index.html +++ b/references/coverage/coverage_emr-serverless/index.html @@ -130,11 +130,11 @@
  • +
  • +
  • +
  • +
  • +
  • diff --git a/references/coverage/coverage_emr/index.html b/references/coverage/coverage_emr/index.html index 2a3a2b7870..709376f581 100644 --- a/references/coverage/coverage_emr/index.html +++ b/references/coverage/coverage_emr/index.html @@ -130,11 +130,11 @@
  • +
  • +
  • +
  • +
  • +
  • diff --git a/references/coverage/coverage_es/index.html b/references/coverage/coverage_es/index.html index 2882c0ec9f..25997ff335 100644 --- a/references/coverage/coverage_es/index.html +++ b/references/coverage/coverage_es/index.html @@ -130,11 +130,11 @@
  • +
  • +
  • +
  • +
  • +
  • diff --git a/references/coverage/coverage_events/index.html b/references/coverage/coverage_events/index.html index 468ecf112d..b52e5a6471 100644 --- a/references/coverage/coverage_events/index.html +++ b/references/coverage/coverage_events/index.html @@ -130,11 +130,11 @@
  • +
  • +
  • +
  • +
  • +
  • diff --git a/references/coverage/coverage_firehose/index.html b/references/coverage/coverage_firehose/index.html index 9a15a95c12..2d532bef7f 100644 --- a/references/coverage/coverage_firehose/index.html +++ b/references/coverage/coverage_firehose/index.html @@ -130,11 +130,11 @@
  • +
  • +
  • +
  • +
  • +
  • diff --git a/references/coverage/coverage_fis/index.html b/references/coverage/coverage_fis/index.html index c43242bba5..35fb8c2925 100644 --- a/references/coverage/coverage_fis/index.html +++ b/references/coverage/coverage_fis/index.html @@ -130,11 +130,11 @@
  • +
  • +
  • +
  • +
  • +
  • diff --git a/references/coverage/coverage_glacier/index.html b/references/coverage/coverage_glacier/index.html index 51d634d9ba..b080b18952 100644 --- a/references/coverage/coverage_glacier/index.html +++ b/references/coverage/coverage_glacier/index.html @@ -130,11 +130,11 @@
  • +
  • +
  • +
  • +
  • +
  • diff --git a/references/coverage/coverage_glue/index.html b/references/coverage/coverage_glue/index.html index dfb3139a0a..36e09bd996 100644 --- a/references/coverage/coverage_glue/index.html +++ b/references/coverage/coverage_glue/index.html @@ -130,11 +130,11 @@
  • +
  • +
  • +
  • +
  • +
  • diff --git a/references/coverage/coverage_iam/index.html b/references/coverage/coverage_iam/index.html index ccf76a2650..9c9ac08c19 100644 --- a/references/coverage/coverage_iam/index.html +++ b/references/coverage/coverage_iam/index.html @@ -130,11 +130,11 @@
  • +
  • +
  • +
  • +
  • +
  • diff --git a/references/coverage/coverage_iot-data/index.html b/references/coverage/coverage_iot-data/index.html index 7f32bf9686..4fe409ca27 100644 --- a/references/coverage/coverage_iot-data/index.html +++ b/references/coverage/coverage_iot-data/index.html @@ -130,11 +130,11 @@
  • +
  • +
  • +
  • +
  • +
  • diff --git a/references/coverage/coverage_iot/index.html b/references/coverage/coverage_iot/index.html index 8333bcd3d7..5ac50f0af4 100644 --- a/references/coverage/coverage_iot/index.html +++ b/references/coverage/coverage_iot/index.html @@ -130,11 +130,11 @@
  • +
  • +
  • +
  • +
  • +
  • diff --git a/references/coverage/coverage_iotanalytics/index.html b/references/coverage/coverage_iotanalytics/index.html index de886cdbbb..c891e0cb29 100644 --- a/references/coverage/coverage_iotanalytics/index.html +++ b/references/coverage/coverage_iotanalytics/index.html @@ -130,11 +130,11 @@
  • +
  • +
  • +
  • +
  • +
  • diff --git a/references/coverage/coverage_iotwireless/index.html b/references/coverage/coverage_iotwireless/index.html index c43984c525..0f173c9877 100644 --- a/references/coverage/coverage_iotwireless/index.html +++ b/references/coverage/coverage_iotwireless/index.html @@ -130,11 +130,11 @@
  • +
  • +
  • +
  • +
  • +
  • diff --git a/references/coverage/coverage_kafka/index.html b/references/coverage/coverage_kafka/index.html index 665cbe9156..b0e2433e8d 100644 --- a/references/coverage/coverage_kafka/index.html +++ b/references/coverage/coverage_kafka/index.html @@ -130,11 +130,11 @@
  • +
  • +
  • +
  • +
  • +
  • diff --git a/references/coverage/coverage_kinesis/index.html b/references/coverage/coverage_kinesis/index.html index 4d67bbab91..6f479a3ec6 100644 --- a/references/coverage/coverage_kinesis/index.html +++ b/references/coverage/coverage_kinesis/index.html @@ -130,11 +130,11 @@
  • +
  • +
  • +
  • +
  • +
  • diff --git a/references/coverage/coverage_kinesisanalytics/index.html b/references/coverage/coverage_kinesisanalytics/index.html index 29cd89f3d7..ea41fab49c 100644 --- a/references/coverage/coverage_kinesisanalytics/index.html +++ b/references/coverage/coverage_kinesisanalytics/index.html @@ -130,11 +130,11 @@
  • +
  • +
  • +
  • +
  • +
  • diff --git a/references/coverage/coverage_kinesisanalyticsv2/index.html b/references/coverage/coverage_kinesisanalyticsv2/index.html index fc5ae1afc9..deab0f14c8 100644 --- a/references/coverage/coverage_kinesisanalyticsv2/index.html +++ b/references/coverage/coverage_kinesisanalyticsv2/index.html @@ -130,11 +130,11 @@
  • +
  • +
  • +
  • +
  • +
  • diff --git a/references/coverage/coverage_kms/index.html b/references/coverage/coverage_kms/index.html index aaabec8a69..64cd7c2948 100644 --- a/references/coverage/coverage_kms/index.html +++ b/references/coverage/coverage_kms/index.html @@ -130,11 +130,11 @@
  • +
  • +
  • +
  • +
  • +
  • diff --git a/references/coverage/coverage_lakeformation/index.html b/references/coverage/coverage_lakeformation/index.html index da091ba1b8..42fef2c21d 100644 --- a/references/coverage/coverage_lakeformation/index.html +++ b/references/coverage/coverage_lakeformation/index.html @@ -130,11 +130,11 @@
  • +
  • +
  • +
  • +
  • +
  • diff --git a/references/coverage/coverage_lambda/index.html b/references/coverage/coverage_lambda/index.html index 2a1f02b765..3d89357112 100644 --- a/references/coverage/coverage_lambda/index.html +++ b/references/coverage/coverage_lambda/index.html @@ -130,11 +130,11 @@
  • +
  • +
  • +
  • +
  • +
  • diff --git a/references/coverage/coverage_logs/index.html b/references/coverage/coverage_logs/index.html index bac9c4f468..1da8ea8377 100644 --- a/references/coverage/coverage_logs/index.html +++ b/references/coverage/coverage_logs/index.html @@ -130,11 +130,11 @@
  • +
  • +
  • +
  • +
  • +
  • diff --git a/references/coverage/coverage_mediastore-data/index.html b/references/coverage/coverage_mediastore-data/index.html index d707e9e778..d237de2c85 100644 --- a/references/coverage/coverage_mediastore-data/index.html +++ b/references/coverage/coverage_mediastore-data/index.html @@ -130,11 +130,11 @@
  • +
  • +
  • +
  • +
  • +
  • diff --git a/references/coverage/coverage_mediastore/index.html b/references/coverage/coverage_mediastore/index.html index c737f88d1c..62f3a2e9c6 100644 --- a/references/coverage/coverage_mediastore/index.html +++ b/references/coverage/coverage_mediastore/index.html @@ -130,11 +130,11 @@
  • +
  • +
  • +
  • +
  • +
  • diff --git a/references/coverage/coverage_mq/index.html b/references/coverage/coverage_mq/index.html index e7bbae7926..04d785453b 100644 --- a/references/coverage/coverage_mq/index.html +++ b/references/coverage/coverage_mq/index.html @@ -130,11 +130,11 @@
  • +
  • +
  • +
  • +
  • +
  • diff --git a/references/coverage/coverage_mwaa/index.html b/references/coverage/coverage_mwaa/index.html index 68274d4734..ade65f0464 100644 --- a/references/coverage/coverage_mwaa/index.html +++ b/references/coverage/coverage_mwaa/index.html @@ -130,11 +130,11 @@
  • +
  • +
  • +
  • +
  • +
  • diff --git a/references/coverage/coverage_neptune/index.html b/references/coverage/coverage_neptune/index.html index 7b0804a149..6ea6678251 100644 --- a/references/coverage/coverage_neptune/index.html +++ b/references/coverage/coverage_neptune/index.html @@ -130,11 +130,11 @@
  • +
  • +
  • +
  • +
  • +
  • diff --git a/references/coverage/coverage_opensearch/index.html b/references/coverage/coverage_opensearch/index.html index b9ff75c86f..ef00cf3825 100644 --- a/references/coverage/coverage_opensearch/index.html +++ b/references/coverage/coverage_opensearch/index.html @@ -130,11 +130,11 @@
  • +
  • +
  • +
  • +
  • +
  • diff --git a/references/coverage/coverage_organizations/index.html b/references/coverage/coverage_organizations/index.html index 210a73f47c..56e3225306 100644 --- a/references/coverage/coverage_organizations/index.html +++ b/references/coverage/coverage_organizations/index.html @@ -130,11 +130,11 @@
  • +
  • +
  • +
  • +
  • +
  • diff --git a/references/coverage/coverage_qldb-session/index.html b/references/coverage/coverage_qldb-session/index.html index d450bc4fd5..2b90d8a919 100644 --- a/references/coverage/coverage_qldb-session/index.html +++ b/references/coverage/coverage_qldb-session/index.html @@ -130,11 +130,11 @@
  • +
  • +
  • +
  • +
  • +
  • diff --git a/references/coverage/coverage_qldb/index.html b/references/coverage/coverage_qldb/index.html index 4ff72c1cc7..12eeadaa88 100644 --- a/references/coverage/coverage_qldb/index.html +++ b/references/coverage/coverage_qldb/index.html @@ -130,11 +130,11 @@
  • +
  • +
  • +
  • +
  • +
  • diff --git a/references/coverage/coverage_ram/index.html b/references/coverage/coverage_ram/index.html index 5a67cd8621..afa877500d 100644 --- a/references/coverage/coverage_ram/index.html +++ b/references/coverage/coverage_ram/index.html @@ -130,11 +130,11 @@
  • +
  • +
  • +
  • +
  • +
  • diff --git a/references/coverage/coverage_rds-data/index.html b/references/coverage/coverage_rds-data/index.html index 4800b8865d..0017141dba 100644 --- a/references/coverage/coverage_rds-data/index.html +++ b/references/coverage/coverage_rds-data/index.html @@ -130,11 +130,11 @@
  • +
  • +
  • +
  • +
  • +
  • diff --git a/references/coverage/coverage_rds/index.html b/references/coverage/coverage_rds/index.html index d7cd5874de..37acd70a2c 100644 --- a/references/coverage/coverage_rds/index.html +++ b/references/coverage/coverage_rds/index.html @@ -130,11 +130,11 @@
  • +
  • +
  • +
  • +
  • +
  • diff --git a/references/coverage/coverage_redshift-data/index.html b/references/coverage/coverage_redshift-data/index.html index 67358c0688..c4af87daa9 100644 --- a/references/coverage/coverage_redshift-data/index.html +++ b/references/coverage/coverage_redshift-data/index.html @@ -130,11 +130,11 @@
  • +
  • +
  • +
  • +
  • +
  • diff --git a/references/coverage/coverage_redshift/index.html b/references/coverage/coverage_redshift/index.html index bdfebded7e..522ed1d43b 100644 --- a/references/coverage/coverage_redshift/index.html +++ b/references/coverage/coverage_redshift/index.html @@ -130,11 +130,11 @@
  • +
  • +
  • +
  • +
  • +
  • diff --git a/references/coverage/coverage_resource-groups/index.html b/references/coverage/coverage_resource-groups/index.html index 1e465a3fd6..c1c78c3127 100644 --- a/references/coverage/coverage_resource-groups/index.html +++ b/references/coverage/coverage_resource-groups/index.html @@ -130,11 +130,11 @@
  • +
  • +
  • +
  • +
  • +
  • diff --git a/references/coverage/coverage_resourcegroupstaggingapi/index.html b/references/coverage/coverage_resourcegroupstaggingapi/index.html index 3393c76146..eb04fbbbbc 100644 --- a/references/coverage/coverage_resourcegroupstaggingapi/index.html +++ b/references/coverage/coverage_resourcegroupstaggingapi/index.html @@ -130,11 +130,11 @@
  • +
  • +
  • +
  • +
  • +
  • diff --git a/references/coverage/coverage_route53/index.html b/references/coverage/coverage_route53/index.html index e8bdad0fb7..8c22174268 100644 --- a/references/coverage/coverage_route53/index.html +++ b/references/coverage/coverage_route53/index.html @@ -130,11 +130,11 @@
  • +
  • +
  • +
  • +
  • +
  • diff --git a/references/coverage/coverage_route53resolver/index.html b/references/coverage/coverage_route53resolver/index.html index 04c571688c..d869799c36 100644 --- a/references/coverage/coverage_route53resolver/index.html +++ b/references/coverage/coverage_route53resolver/index.html @@ -130,11 +130,11 @@
  • +
  • +
  • +
  • +
  • +
  • diff --git a/references/coverage/coverage_s3/index.html b/references/coverage/coverage_s3/index.html index 5aa8725f9c..d33e69a03d 100644 --- a/references/coverage/coverage_s3/index.html +++ b/references/coverage/coverage_s3/index.html @@ -130,11 +130,11 @@
  • +
  • +
  • +
  • +
  • +
  • diff --git a/references/coverage/coverage_s3control/index.html b/references/coverage/coverage_s3control/index.html index 08d435bee0..816af1f6da 100644 --- a/references/coverage/coverage_s3control/index.html +++ b/references/coverage/coverage_s3control/index.html @@ -130,11 +130,11 @@
  • +
  • +
  • +
  • +
  • +
  • diff --git a/references/coverage/coverage_sagemaker-runtime/index.html b/references/coverage/coverage_sagemaker-runtime/index.html index 55987ac794..863968b342 100644 --- a/references/coverage/coverage_sagemaker-runtime/index.html +++ b/references/coverage/coverage_sagemaker-runtime/index.html @@ -130,11 +130,11 @@
  • +
  • +
  • +
  • +
  • +
  • diff --git a/references/coverage/coverage_sagemaker/index.html b/references/coverage/coverage_sagemaker/index.html index f2ec2b6050..1b3efa0ea5 100644 --- a/references/coverage/coverage_sagemaker/index.html +++ b/references/coverage/coverage_sagemaker/index.html @@ -130,11 +130,11 @@
  • +
  • +
  • +
  • +
  • +
  • diff --git a/references/coverage/coverage_scheduler/index.html b/references/coverage/coverage_scheduler/index.html index 4ff787c67c..5668dbdb91 100644 --- a/references/coverage/coverage_scheduler/index.html +++ b/references/coverage/coverage_scheduler/index.html @@ -130,11 +130,11 @@
  • +
  • +
  • +
  • +
  • +
  • diff --git a/references/coverage/coverage_secretsmanager/index.html b/references/coverage/coverage_secretsmanager/index.html index 6397b6dbb7..e461fcc5de 100644 --- a/references/coverage/coverage_secretsmanager/index.html +++ b/references/coverage/coverage_secretsmanager/index.html @@ -130,11 +130,11 @@
  • +
  • +
  • +
  • +
  • +
  • diff --git a/references/coverage/coverage_serverlessrepo/index.html b/references/coverage/coverage_serverlessrepo/index.html index f322d1c2dd..621b9f808f 100644 --- a/references/coverage/coverage_serverlessrepo/index.html +++ b/references/coverage/coverage_serverlessrepo/index.html @@ -130,11 +130,11 @@
  • +
  • +
  • +
  • +
  • +
  • diff --git a/references/coverage/coverage_servicediscovery/index.html b/references/coverage/coverage_servicediscovery/index.html index aa30fc7014..9d512025ef 100644 --- a/references/coverage/coverage_servicediscovery/index.html +++ b/references/coverage/coverage_servicediscovery/index.html @@ -130,11 +130,11 @@
  • +
  • +
  • +
  • +
  • +
  • diff --git a/references/coverage/coverage_ses/index.html b/references/coverage/coverage_ses/index.html index 495cbb45c5..7e4287ef98 100644 --- a/references/coverage/coverage_ses/index.html +++ b/references/coverage/coverage_ses/index.html @@ -130,11 +130,11 @@
  • +
  • +
  • +
  • +
  • +
  • diff --git a/references/coverage/coverage_sesv2/index.html b/references/coverage/coverage_sesv2/index.html index bb6ea8a8aa..e3bd449087 100644 --- a/references/coverage/coverage_sesv2/index.html +++ b/references/coverage/coverage_sesv2/index.html @@ -130,11 +130,11 @@
  • +
  • +
  • +
  • +
  • +
  • diff --git a/references/coverage/coverage_sns/index.html b/references/coverage/coverage_sns/index.html index 6b95345d59..54092fc2f5 100644 --- a/references/coverage/coverage_sns/index.html +++ b/references/coverage/coverage_sns/index.html @@ -130,11 +130,11 @@
  • +
  • +
  • +
  • +
  • +
  • diff --git a/references/coverage/coverage_sqs/index.html b/references/coverage/coverage_sqs/index.html index 9fe0d994f3..7865086ed6 100644 --- a/references/coverage/coverage_sqs/index.html +++ b/references/coverage/coverage_sqs/index.html @@ -130,11 +130,11 @@
  • +
  • +
  • +
  • +
  • +
  • diff --git a/references/coverage/coverage_ssm/index.html b/references/coverage/coverage_ssm/index.html index 250f1dfa01..63e5cfb62b 100644 --- a/references/coverage/coverage_ssm/index.html +++ b/references/coverage/coverage_ssm/index.html @@ -130,11 +130,11 @@
  • +
  • +
  • +
  • +
  • +
  • diff --git a/references/coverage/coverage_sso-admin/index.html b/references/coverage/coverage_sso-admin/index.html index b554ebde75..a64aa13a98 100644 --- a/references/coverage/coverage_sso-admin/index.html +++ b/references/coverage/coverage_sso-admin/index.html @@ -130,11 +130,11 @@
  • +
  • +
  • +
  • +
  • +
  • diff --git a/references/coverage/coverage_stepfunctions/index.html b/references/coverage/coverage_stepfunctions/index.html index 41053fc277..5cdf2be32c 100644 --- a/references/coverage/coverage_stepfunctions/index.html +++ b/references/coverage/coverage_stepfunctions/index.html @@ -130,11 +130,11 @@
  • +
  • +
  • +
  • +
  • +
  • diff --git a/references/coverage/coverage_sts/index.html b/references/coverage/coverage_sts/index.html index 32abcaf369..40629b540f 100644 --- a/references/coverage/coverage_sts/index.html +++ b/references/coverage/coverage_sts/index.html @@ -130,11 +130,11 @@
  • +
  • +
  • +
  • +
  • +
  • diff --git a/references/coverage/coverage_support/index.html b/references/coverage/coverage_support/index.html index 492942fae5..734a617507 100644 --- a/references/coverage/coverage_support/index.html +++ b/references/coverage/coverage_support/index.html @@ -130,11 +130,11 @@
  • +
  • +
  • +
  • +
  • +
  • diff --git a/references/coverage/coverage_swf/index.html b/references/coverage/coverage_swf/index.html index 03ac18e1c1..0c98578a3e 100644 --- a/references/coverage/coverage_swf/index.html +++ b/references/coverage/coverage_swf/index.html @@ -130,11 +130,11 @@
  • +
  • +
  • +
  • +
  • +
  • diff --git a/references/coverage/coverage_timestream-query/index.html b/references/coverage/coverage_timestream-query/index.html index 3a22e5c04b..302ae5107b 100644 --- a/references/coverage/coverage_timestream-query/index.html +++ b/references/coverage/coverage_timestream-query/index.html @@ -130,11 +130,11 @@
  • +
  • +
  • +
  • +
  • +
  • diff --git a/references/coverage/coverage_timestream-write/index.html b/references/coverage/coverage_timestream-write/index.html index fb1cfcf8fe..a7154e8d83 100644 --- a/references/coverage/coverage_timestream-write/index.html +++ b/references/coverage/coverage_timestream-write/index.html @@ -130,11 +130,11 @@
  • +
  • +
  • +
  • +
  • +
  • diff --git a/references/coverage/coverage_transcribe/index.html b/references/coverage/coverage_transcribe/index.html index 01d9e14dd3..3a3ddb67d8 100644 --- a/references/coverage/coverage_transcribe/index.html +++ b/references/coverage/coverage_transcribe/index.html @@ -130,11 +130,11 @@
  • +
  • +
  • +
  • +
  • +
  • diff --git a/references/coverage/coverage_transfer/index.html b/references/coverage/coverage_transfer/index.html index c4ae8f35c1..cc2842c758 100644 --- a/references/coverage/coverage_transfer/index.html +++ b/references/coverage/coverage_transfer/index.html @@ -130,11 +130,11 @@
  • +
  • +
  • +
  • +
  • +
  • diff --git a/references/coverage/coverage_xray/index.html b/references/coverage/coverage_xray/index.html index dcf14095f0..b21b611b29 100644 --- a/references/coverage/coverage_xray/index.html +++ b/references/coverage/coverage_xray/index.html @@ -130,11 +130,11 @@
  • +
  • +
  • +
  • +
  • +
  • diff --git a/references/coverage/index.html b/references/coverage/index.html index 617f277a0c..b4a6b23100 100644 --- a/references/coverage/index.html +++ b/references/coverage/index.html @@ -130,11 +130,11 @@
  • +
  • +
  • +
  • +
  • +
  • diff --git a/references/credentials/index.html b/references/credentials/index.html index 84795a670a..d6b6b66e1f 100644 --- a/references/credentials/index.html +++ b/references/credentials/index.html @@ -130,11 +130,11 @@
  • +
  • +
  • +
  • +
  • +
  • diff --git a/references/cross-account-access/index.html b/references/cross-account-access/index.html index 0337d9ec8b..e4487e7b89 100644 --- a/references/cross-account-access/index.html +++ b/references/cross-account-access/index.html @@ -130,11 +130,11 @@
  • +
  • +
  • +
  • +
  • +
  • diff --git a/references/custom-tls-certificates/index.html b/references/custom-tls-certificates/index.html index 433990e006..6b95fb4b42 100644 --- a/references/custom-tls-certificates/index.html +++ b/references/custom-tls-certificates/index.html @@ -130,11 +130,11 @@
  • +
  • +
  • +
  • +
  • +
  • diff --git a/references/docker-images/index.html b/references/docker-images/index.html index df2c1c10ab..a69fe0ec52 100644 --- a/references/docker-images/index.html +++ b/references/docker-images/index.html @@ -130,11 +130,11 @@
  • +
  • +
  • +
  • +
  • +
  • diff --git a/references/extensions/index.html b/references/extensions/index.html index 424288f05e..e133461557 100644 --- a/references/extensions/index.html +++ b/references/extensions/index.html @@ -130,11 +130,11 @@
  • +
  • +
  • +
  • +
  • +
  • diff --git a/references/external-ports/index.html b/references/external-ports/index.html index b9a47f3b9b..51ee87f1ff 100644 --- a/references/external-ports/index.html +++ b/references/external-ports/index.html @@ -130,11 +130,11 @@
  • +
  • +
  • +
  • +
  • +
  • diff --git a/references/filesystem/index.html b/references/filesystem/index.html index fcbedfe438..178ec166ea 100644 --- a/references/filesystem/index.html +++ b/references/filesystem/index.html @@ -130,11 +130,11 @@
  • +
  • +
  • +
  • +
  • +
  • diff --git a/references/index.html b/references/index.html index 18d1034773..93963240a2 100644 --- a/references/index.html +++ b/references/index.html @@ -130,11 +130,11 @@
  • +
  • +
  • +
  • +
  • +
  • diff --git a/references/init-hooks/index.html b/references/init-hooks/index.html index 38b8d5a071..06aed77c1b 100644 --- a/references/init-hooks/index.html +++ b/references/init-hooks/index.html @@ -130,11 +130,11 @@
  • +
  • +
  • +
  • +
  • +
  • diff --git a/references/internal-endpoints/index.html b/references/internal-endpoints/index.html index 77d93f350d..755b09a7ce 100644 --- a/references/internal-endpoints/index.html +++ b/references/internal-endpoints/index.html @@ -130,11 +130,11 @@
  • +
  • +
  • +
  • +
  • +
  • diff --git a/references/lambda-provider-v2/index.html b/references/lambda-provider-v2/index.html index 3e35aab17a..c8340bbc1b 100644 --- a/references/lambda-provider-v2/index.html +++ b/references/lambda-provider-v2/index.html @@ -130,11 +130,11 @@
  • +
  • +
  • +
  • +
  • +
  • diff --git a/references/localstack-on-kubernetes/index.html b/references/localstack-on-kubernetes/index.html index b60b9eef2f..59de5e246f 100644 --- a/references/localstack-on-kubernetes/index.html +++ b/references/localstack-on-kubernetes/index.html @@ -130,11 +130,11 @@
  • +
  • +
  • +
  • +
  • +
  • diff --git a/references/logging/index.html b/references/logging/index.html index eef4f9ffd3..2a599a22f9 100644 --- a/references/logging/index.html +++ b/references/logging/index.html @@ -130,11 +130,11 @@
  • +
  • +
  • +
  • +
  • +
  • diff --git a/references/multi-account-setups/index.html b/references/multi-account-setups/index.html index 78b6c8c481..92930bac82 100644 --- a/references/multi-account-setups/index.html +++ b/references/multi-account-setups/index.html @@ -130,11 +130,11 @@
  • +
  • +
  • +
  • +
  • +
  • diff --git a/references/network-troubleshooting/created-resources/index.html b/references/network-troubleshooting/created-resources/index.html index 81aeeaa763..76832ed9ee 100644 --- a/references/network-troubleshooting/created-resources/index.html +++ b/references/network-troubleshooting/created-resources/index.html @@ -126,11 +126,11 @@
  • +
  • +
  • +
  • +
  • +
  • diff --git a/references/network-troubleshooting/endpoint-url/index.html b/references/network-troubleshooting/endpoint-url/index.html index 979d95ed14..55f8dee276 100644 --- a/references/network-troubleshooting/endpoint-url/index.html +++ b/references/network-troubleshooting/endpoint-url/index.html @@ -126,11 +126,11 @@
  • +
  • +
  • +
  • +
  • +
  • diff --git a/references/network-troubleshooting/index.html b/references/network-troubleshooting/index.html index a257103332..d0e349cafc 100644 --- a/references/network-troubleshooting/index.html +++ b/references/network-troubleshooting/index.html @@ -130,11 +130,11 @@
  • +
  • +
  • +
  • +
  • +
  • diff --git a/references/network-troubleshooting/readme/index.html b/references/network-troubleshooting/readme/index.html index 961fcaea20..45ca82c6a4 100644 --- a/references/network-troubleshooting/readme/index.html +++ b/references/network-troubleshooting/readme/index.html @@ -126,11 +126,11 @@
  • +
  • +
  • +
  • +
  • +
  • diff --git a/references/network-troubleshooting/transparent-endpoint-injection/index.html b/references/network-troubleshooting/transparent-endpoint-injection/index.html index 7cd676fc24..4c7db4e3e1 100644 --- a/references/network-troubleshooting/transparent-endpoint-injection/index.html +++ b/references/network-troubleshooting/transparent-endpoint-injection/index.html @@ -126,11 +126,11 @@
  • +
  • +
  • +
  • +
  • +
  • diff --git a/references/persistence-mechanism/index.html b/references/persistence-mechanism/index.html index d85abadff4..e0d25ef655 100644 --- a/references/persistence-mechanism/index.html +++ b/references/persistence-mechanism/index.html @@ -130,11 +130,11 @@
  • +
  • +
  • +
  • +
  • +
  • diff --git a/references/podman/index.html b/references/podman/index.html index 60674e6bab..be69db92b5 100644 --- a/references/podman/index.html +++ b/references/podman/index.html @@ -130,11 +130,11 @@
  • +
  • +
  • +
  • +
  • +
  • diff --git a/references/usage-tracking/index.html b/references/usage-tracking/index.html index 5950ca658d..151962c0df 100644 --- a/references/usage-tracking/index.html +++ b/references/usage-tracking/index.html @@ -130,11 +130,11 @@
  • +
  • +
  • +
  • +
  • +
  • diff --git a/sitemap.xml b/sitemap.xml index 4973789635..c2254c01fa 100644 --- a/sitemap.xml +++ b/sitemap.xml @@ -1 +1 @@ -/user-guide/aws/feature-coverage/2023-09-18T08:38:19+02:00/references/network-troubleshooting/endpoint-url/2023-09-29T12:57:11+01:00/academy/localstack-101/course-overview/2023-08-23T14:33:03+05:00/user-guide/aws/2022-12-01T14:30:06+05:30/references/network-troubleshooting/2023-05-19T17:05:51+05:30/developer-hub/2023-03-30T17:05:01+02:00/overview/2023-08-17T22:23:40+05:30/tutorials/schema-evolution-glue-msk/2023-08-17T22:23:40+05:30/user-guide/web-application/accounts/2023-08-17T22:23:40+05:30/user-guide/integrations/aws-cli/2023-02-03T15:18:39+05:30/tutorials/lambda-ecr-container-images/2023-08-17T22:23:40+05:30/getting-started/2023-08-17T22:23:40+05:30/user-guide/integrations/2022-12-01T14:30:06+05:30/user-guide/web-application/teams/2023-04-17T16:22:53+05:30/references/network-troubleshooting/transparent-endpoint-injection/2023-09-29T12:57:11+01:00/academy/localstack-101/what-is-localstack/2023-08-23T14:33:03+05:00/references/network-troubleshooting/created-resources/2023-09-29T12:57:11+01:00/tutorials/java-notification-app/2023-08-17T22:54:42+05:30/contributing/contributing/2022-12-01T14:30:06+05:30/user-guide/extensions/2023-10-12T09:22:38+02:00/user-guide/tools/cloud-pods/getting-started/2022-12-01T14:30:06+05:30/user-guide/ci/2023-04-27T14:09:45+05:30/user-guide/extensions/quickstart/2023-10-12T09:22:38+02:00/tutorials/elb-load-balancing/2023-08-17T22:23:40+05:30/user-guide/web-application/stack-insights/2023-02-20T23:11:36+01:00/academy/localstack-101/why-localstack/2023-08-23T14:33:03+05:00/user-guide/ci/circle-ci/2023-04-27T14:09:45+05:30/user-guide/tools/cloud-pods/community/2023-09-28T16:37:25+05:30/contributing/development-environment-setup/2023-09-26T13:38:02+02:00/academy/localstack-101/getting-started/2023-08-23T14:33:03+05:00/tutorials/s3-static-website-terraform/2023-08-17T22:23:40+05:30/user-guide/web-application/resource-browser/2023-04-24T21:27:46+05:30/user-guide/integrations/serverless-framework/2023-03-27T16:55:20+02:00/user-guide/integrations/testcontainers/2023-06-23T00:43:59-06:00/user-guide/integrations/spring-cloud-function/2023-03-27T16:55:20+02:00/user-guide/tools/lambda-tools/hot-reloading/2023-09-16T14:23:55+02:00/user-guide/integrations/architect/2022-12-01T14:30:06+05:30/user-guide/integrations/copilot/2022-12-01T14:30:06+05:30/user-guide/tools/cloud-pods/remotes/2023-09-28T16:37:25+05:30/user-guide/web-application/cloud-pods-browser/2023-04-24T21:27:46+05:30/user-guide/tools/cloud-pods/pods-cli/2023-02-03T15:18:39+05:30/tutorials/reproducible-machine-learning-cloud-pods/2023-08-17T22:23:40+05:30/user-guide/integrations/crossplane/2023-09-06T08:59:00+02:00/user-guide/ci/drone-ci/2023-04-27T14:09:45+05:30/user-guide/web-application/extensions-library/2023-10-03T12:28:46-07:00/user-guide/ci/github-actions/2023-04-27T14:09:45+05:30/references/lambda-provider-v2/2023-05-08T14:00:03+00:00/references/coverage/2023-05-19T17:05:51+05:30/user-guide/tools/testing-tools/2022-12-01T14:30:06+05:30/user-guide/extensions/managing-extensions/2023-10-12T09:22:38+02:00/user-guide/tools/lambda-tools/debugging/2023-09-16T14:23:55+02:00/user-guide/web-application/single-sign-on/azure-ad/2023-03-02T21:22:50+05:30/user-guide/integrations/terraform/2023-09-06T08:59:00+02:00/academy/localstack-101/web-app-resource-browser/2023-08-23T14:33:03+05:00/user-guide/tools/cockpit/2023-04-03T16:21:02+01:00/tutorials/ecs-ecr-container-app/2023-08-17T22:54:42+05:30/user-guide/tools/transparent-endpoint-injection/dns-server/2023-09-29T12:57:11+01:00/user-guide/web-application/export-import-state/2023-10-10T02:16:00+05:30/academy/localstack-101/full-project-demo/2023-08-23T14:33:03+05:00/academy/localstack-101/2023-08-23T14:33:03+05:00/contributing/concepts/2022-12-29T12:19:43+01:00/user-guide/tools/transparent-endpoint-injection/patched-sdks/2023-05-04T17:56:26+05:30/user-guide/ci/travis-ci/2023-04-27T14:09:45+05:30/user-guide/integrations/aws-sam/2022-12-01T14:30:06+05:30/academy/localstack-101/cloud-pods/2023-08-23T14:33:03+05:00/user-guide/web-application/custom-local-endpoint/custom-local-endpoint/2023-10-10T02:16:00+05:30/user-guide/ci/gitlab-ci/2023-05-04T11:45:00+05:30/contributing/integration-tests/2023-10-12T10:43:09+02:00/user-guide/tools/localsurf/2023-03-14T14:32:31+05:30/contributing/parity-testing/2023-02-03T15:18:39+05:30/user-guide/2022-12-01T14:30:06+05:30/user-guide/integrations/aws-cdk/2023-06-23T12:19:51+05:30/user-guide/ci/harness-ci/2023-04-27T14:09:45+05:30/user-guide/tools/localstack-docker-extension/2023-01-13T18:45:43+05:30/user-guide/web-application/single-sign-on/2023-10-10T02:16:00+05:30/user-guide/tools/cloud-pods/2023-08-30T12:00:12+05:30/user-guide/tools/cloud-pods/launchpad/2023-02-13T09:00:48-08:00/references/configuration/2023-10-11T16:58:45+02:00/user-guide/extensions/developing-extensions/2023-10-12T09:22:38+02:00/getting-started/installation/2023-09-29T12:57:11+01:00/user-guide/tools/lambda-tools/2022-12-01T14:30:06+05:30/user-guide/integrations/pulumi/2023-02-03T15:18:39+05:30/contributing/terraform-tests/2022-12-01T14:30:06+05:30/user-guide/tools/transparent-endpoint-injection/2023-03-27T16:55:20+02:00/tutorials/2023-03-30T17:05:01+02:00/user-guide/integrations/cdk-for-terraform/2023-04-23T09:59:36+05:30/user-guide/integrations/kafka/2023-04-23T09:59:36+05:30/user-guide/integrations/chalice/2023-04-23T09:59:36+05:30/user-guide/integrations/gitpod/2023-04-23T09:59:36+05:30/user-guide/extensions/official-extensions/2023-10-12T09:22:38+02:00/getting-started/api-key/2023-09-19T15:32:31+01:00/applications/2023-03-30T17:05:01+02:00/academy/2023-08-23T14:33:03+05:00/getting-started/quickstart/2023-06-23T09:37:24+02:00/getting-started/faq/2023-09-29T12:57:11+01:00/user-guide/tools/2022-12-01T14:30:06+05:30/references/arm64-support/2023-05-19T17:05:51+05:30/references/credentials/2023-05-19T17:05:51+05:30/references/cross-account-access/2023-09-28T12:05:02+05:30/references/custom-tls-certificates/2023-08-02T12:53:03+02:00/references/docker-images/2023-05-19T17:05:51+05:30/references/extensions/2023-10-12T09:22:38+02:00/references/external-ports/2023-09-04T20:13:29+05:30/references/filesystem/2023-05-19T17:05:51+05:30/getting-started/glossary/2023-10-12T09:22:38+02:00/references/init-hooks/2023-09-13T12:33:31+02:00/references/internal-endpoints/2023-05-19T17:05:51+05:30/references/localstack-on-kubernetes/2023-05-19T17:05:51+05:30/user-guide/web-application/2022-12-01T14:30:06+05:30/references/logging/2023-05-19T17:05:51+05:30/references/multi-account-setups/2023-05-25T10:39:37+05:30/references/persistence-mechanism/2023-08-17T22:23:40+05:30/references/podman/2023-05-19T17:05:51+05:30/references/2023-02-03T15:18:39+05:30/references/usage-tracking/2023-05-19T17:05:51+05:30/contributing/2022-12-01T14:30:06+05:30/getting-started/help-and-support/2023-06-23T09:37:24+02:00/categories/2023-10-11T10:24:58+02:00/tags/dotnet/2023-06-23T00:43:59-06:00/tags/go/2023-06-23T00:43:59-06:00/tags/java/2023-08-17T22:54:42+05:30/tags/jvm/2023-06-23T00:43:59-06:00/tags/kotlin/2023-06-23T00:43:59-06:00/categories/localstack-community/2023-10-11T10:24:58+02:00/categories/localstack-pro/2023-10-11T10:24:58+02:00/tags/2023-10-12T09:22:38+02:00/tags/test/2023-06-23T00:43:59-06:00/tags/testcontainers/2023-06-23T00:43:59-06:00/tags/serverless-framework/2023-08-17T22:23:40+05:30/tags/spring/2023-03-27T16:55:20+02:00/tags/spring-cloud/2023-03-27T16:55:20+02:00/tags/spring-cloud-function/2023-03-27T16:55:20+02:00/applications/temp/2023-03-30T17:05:01+02:00/references/network-troubleshooting/readme/2023-03-17T10:22:16+00:00/user-guide/integrations/sdks/dotnet/2023-09-11T10:43:08+03:00/tags/access-key-id/2023-05-19T17:05:51+05:30/tags/account-id/2023-05-25T10:39:37+05:30/tags/accounts/2023-08-17T22:23:40+05:30/tags/acm/2023-04-28T19:11:32+05:30/references/coverage/coverage_acm/2023-03-20T14:38:19+01:00/user-guide/aws/apigateway/2023-05-11T08:58:11+03:00/applications/amazon-rds-initialization-using-cdk-lambda-ecr-and-secrets-manager/2023-06-28T15:22:44+05:00/tags/amplify/2023-04-27T21:08:52+05:30/references/coverage/coverage_amplify/2023-03-20T14:38:19+01:00/tags/amplify-localstack/2023-04-27T21:08:52+05:30/tags/amplify-plugin/2023-04-27T21:08:52+05:30/tags/amplifylocal/2023-04-27T21:08:52+05:30/tags/apigateway/2023-05-11T08:58:11+03:00/references/coverage/coverage_apigateway/2023-03-20T14:38:19+01:00/tags/apigateway-localstack/2023-05-11T08:58:11+03:00/references/coverage/coverage_apigatewaymanagementapi/2023-03-20T14:38:19+01:00/tags/apigatewayv2/2023-05-11T08:58:11+03:00/references/coverage/coverage_apigatewayv2/2023-03-20T14:38:19+01:00/references/coverage/coverage_appconfig/2023-03-20T14:38:19+01:00/user-guide/aws/appconfig/2023-08-30T15:42:43+05:30/tags/apple/2023-05-19T17:05:51+05:30/user-guide/aws/application-autoscaling/2023-08-31T16:43:39+05:30/references/coverage/coverage_application-autoscaling/2023-03-20T14:38:19+01:00/tags/appsync/2023-06-28T15:22:44+05:00/references/coverage/coverage_appsync/2023-03-20T14:38:19+01:00/user-guide/aws/appsync/2023-09-04T23:45:02+05:30/applications/appsync-graphql-apis-for-dynamodb-and-rds-aurora-postgresql/2023-06-28T15:22:44+05:00/tags/architect/2022-12-01T14:30:06+05:30/references/coverage/coverage_athena/2023-03-20T14:38:19+01:00/user-guide/aws/athena/2023-09-05T13:17:30+05:30/references/coverage/coverage_autoscaling/2023-03-20T14:38:19+01:00/user-guide/aws/amplify/2023-04-27T21:08:52+05:30/user-guide/aws/acm/2023-04-28T19:11:32+05:30/tags/aws-java-sdk/2023-08-17T22:54:42+05:30/user-guide/aws/organization/2022-12-01T14:30:06+05:30/tags/aws-amplify/2023-04-27T21:08:52+05:30/tags/aws-certificate-manager/2023-04-28T19:11:32+05:30/tags/aws-lambda/2023-10-11T10:24:58+02:00/references/coverage/coverage_backup/2023-03-20T14:38:19+01:00/user-guide/aws/backup/2023-08-30T00:43:03+05:30/tags/bash/2023-08-17T22:54:42+05:30/references/coverage/coverage_batch/2023-03-20T14:38:19+01:00/user-guide/aws/batch/2023-09-27T07:30:16+01:00/tags/big-data/2023-06-28T15:22:44+05:00/user-guide/integrations/sdks/cpp/2023-03-07T19:17:35+01:00/tags/cdk/2023-06-23T12:19:51+05:30/tags/cdk-for-terraform/2023-04-23T09:59:36+05:30/tags/cdktf/2023-04-23T09:59:36+05:30/references/coverage/coverage_ce/2023-03-20T14:38:19+01:00/tags/chalice/2023-04-23T09:59:36+05:30/tags/ci/2023-05-04T11:45:00+05:30/categories/cli/2023-02-03T15:18:39+05:30/tags/cloud-pods/2023-08-17T22:23:40+05:30/references/coverage/coverage_cloudformation/2023-03-20T14:38:19+01:00/tags/cloudformation/2023-08-17T22:54:42+05:30/user-guide/aws/cloudformation/2023-08-30T19:47:20+05:30/references/coverage/coverage_cloudfront/2023-03-20T14:38:19+01:00/user-guide/aws/cloudfront/2023-08-31T11:20:16+05:30/references/coverage/coverage_cloudtrail/2023-03-20T14:38:19+01:00/user-guide/aws/cloudtrail/2023-08-29T21:22:38+05:30/references/coverage/coverage_cloudwatch/2023-03-20T14:38:19+01:00/user-guide/aws/cloudwatch/2023-08-10T09:44:16+05:30/references/coverage/coverage_codecommit/2023-03-20T14:38:19+01:00/user-guide/aws/codecommit/2023-09-05T17:51:59+05:30/user-guide/aws/cognito/2023-10-03T12:22:36-04:00/references/coverage/coverage_cognito-identity/2023-03-20T14:38:19+01:00/references/coverage/coverage_cognito-idp/2023-03-20T14:38:19+01:00/tags/compliance/2023-06-28T15:22:44+05:00/references/coverage/coverage_config/2023-03-20T14:38:19+01:00/user-guide/aws/config/2023-09-11T20:12:33+05:30/tags/container/2023-08-17T22:23:40+05:30/tags/container-image/2023-08-17T22:23:40+05:30/tags/continuous-delivery/2023-05-04T11:45:00+05:30/tags/continuous-integration/2023-05-04T11:45:00+05:30/user-guide/aws/cost-explorer/2023-08-31T12:11:26+05:30/tags/crossplane/2023-09-06T08:59:00+02:00/tags/data-analytics/2023-06-28T15:22:44+05:00/tags/databases/2023-06-28T15:22:44+05:00/tags/development-environment/2023-04-23T09:59:36+05:30/categories/dns/2023-09-29T12:57:11+01:00/references/coverage/coverage_docdb/2023-03-20T14:38:19+01:00/tags/docker/2023-08-17T22:23:40+05:30/tags/docker-desktop/2023-01-13T18:45:43+05:30/2021-10-08T11:40:02+02:00/user-guide/aws/docdb/2023-08-04T11:21:49+05:30/tags/dynamodb/2023-06-28T15:22:44+05:00/references/coverage/coverage_dynamodb/2023-03-20T14:38:19+01:00/user-guide/aws/dynamodb/2023-08-30T12:47:00+05:30/references/coverage/coverage_dynamodbstreams/2023-03-20T14:38:19+01:00/references/coverage/coverage_ec2/2023-03-20T14:38:19+01:00/references/coverage/coverage_ecr/2023-03-20T14:38:19+01:00/tags/ecr/2023-08-17T22:54:42+05:30/references/coverage/coverage_ecs/2023-03-20T14:38:19+01:00/tags/ecs/2023-08-17T22:54:42+05:30/references/coverage/coverage_efs/2023-03-20T14:38:19+01:00/references/coverage/coverage_eks/2023-03-20T14:38:19+01:00/user-guide/aws/elastic-beanstalk/2023-08-31T16:39:58+05:30/user-guide/aws/elastic-compute-cloud/2023-09-21T18:34:37+05:30/user-guide/aws/elastic-container-registry/2023-09-05T17:25:25+05:30/user-guide/aws/elastic-container-service/2023-03-27T16:55:20+02:00/user-guide/aws/elastic-file-system/2023-08-29T21:38:11+05:30/user-guide/aws/elastic-kubernetes-service/2023-10-03T11:00:55+01:00/tags/elastic-load-balancing/2023-08-17T22:23:40+05:30/user-guide/aws/elastic-load-balancing/2023-10-06T17:03:26+05:30/user-guide/aws/elastic-mapreduce/2023-06-21T20:27:39+05:30/references/coverage/coverage_elasticache/2023-03-20T14:38:19+01:00/user-guide/aws/elasticache/2023-09-15T17:41:05+02:00/references/coverage/coverage_elasticbeanstalk/2023-03-20T14:38:19+01:00/user-guide/aws/elasticsearch/2023-03-27T16:55:20+02:00/references/coverage/coverage_elb/2023-03-20T14:38:19+01:00/references/coverage/coverage_elbv2/2023-03-20T14:38:19+01:00/user-guide/aws/mediastore/2023-09-13T11:26:44+01:00/references/coverage/coverage_emr/2023-03-20T14:38:19+01:00/references/coverage/coverage_emr-serverless/2023-06-26T09:29:22+02:00/references/coverage/coverage_es/2023-03-20T14:38:19+01:00/applications/event-driven-architecture-with-amazon-sns-fifo-dynamodb-lambda-and-s3/2023-06-28T15:22:44+05:00/tags/event-driven-architecture/2023-07-27T12:31:23+02:00/user-guide/aws/eventbridge/2023-07-23T22:17:43-04:00/references/coverage/coverage_events/2023-03-20T14:38:19+01:00/tags/extensions/2023-10-12T09:22:38+02:00/tags/fargate/2023-08-17T22:54:42+05:30/user-guide/aws/fis/2023-08-30T13:05:02+05:30/references/coverage/coverage_firehose/2023-03-20T14:38:19+01:00/references/coverage/coverage_fis/2023-03-20T14:38:19+01:00/applications/full-stack-application-with-aws-lambda-dynamodb-s3-for-shipment-validation/2023-06-28T15:22:44+05:00/tags/gitpod/2023-04-23T09:59:36+05:30/references/coverage/coverage_glacier/2023-03-20T14:38:19+01:00/user-guide/aws/glacier/2023-09-13T09:09:02+02:00/references/coverage/coverage_glue/2023-03-20T14:38:19+01:00/user-guide/aws/glue/2023-09-12T13:08:30+02:00/tags/glue-schema-registry/2023-08-17T22:23:40+05:30/user-guide/integrations/sdks/go/2023-02-06T15:46:00+01:00/tags/graphql/2023-06-28T15:22:44+05:00/references/coverage/coverage_iam/2023-03-20T14:38:19+01:00/tags/ide-integration/2023-04-23T09:59:36+05:30/tags/identity/2023-06-28T15:22:44+05:00/user-guide/aws/iam/2023-08-13T16:25:17+05:30/tags/infrastructure-as-code/2023-09-06T08:59:00+02:00/tags/internal-endpoints/2023-05-19T17:05:51+05:30/references/coverage/coverage_iot/2023-03-20T14:38:19+01:00/user-guide/aws/iot/2023-09-21T18:34:37+05:30/references/coverage/coverage_iot-data/2023-03-20T14:38:19+01:00/references/coverage/coverage_iotanalytics/2023-03-20T14:38:19+01:00/references/coverage/coverage_iotwireless/2023-03-20T14:38:19+01:00/user-guide/integrations/sdks/java/2023-08-07T21:00:38+02:00/tags/javascript/2023-08-17T22:23:40+05:30/user-guide/integrations/sdks/javascript/2023-08-17T22:23:40+05:30/tags/k8s/2023-05-19T17:05:51+05:30/references/coverage/coverage_kafka/2023-03-20T14:38:19+01:00/tags/kafka/2023-08-17T22:23:40+05:30/user-guide/aws/kms/2023-08-14T18:56:38+02:00/references/coverage/coverage_kinesis/2023-03-20T14:38:19+01:00/user-guide/aws/kinesis/2023-09-04T23:27:09+05:30/user-guide/aws/kinesis-analytics/2023-08-30T13:04:38+05:30/user-guide/aws/kinesis-firehose/2023-08-30T00:36:11+05:30/references/coverage/coverage_kinesisanalytics/2023-03-20T14:38:19+01:00/references/coverage/coverage_kinesisanalyticsv2/2023-03-20T14:38:19+01:00/references/coverage/coverage_kms/2023-03-20T14:38:19+01:00/tags/kubernetes/2023-09-06T08:59:00+02:00/references/coverage/coverage_lakeformation/2023-03-20T14:38:19+01:00/references/coverage/coverage_lambda/2023-03-20T14:38:19+01:00/tags/lambda/2023-10-11T10:24:58+02:00/user-guide/aws/lambda/2023-10-11T10:24:58+02:00/tags/lambda-layers/2023-10-11T10:24:58+02:00/tags/lambda-debugging/2023-10-11T10:24:58+02:00/tags/lambda-hot-reloading/2023-10-11T10:24:58+02:00/tags/lambda-trigger/2023-06-28T15:22:44+05:00/user-guide/integrations/sdks/2022-12-01T14:30:06+05:30/applications/loan-broker-application-with-aws-step-functions-dynamodb-lambda-sqs-and-sns/2023-06-28T15:22:44+05:00/categories/localstack/2023-09-28T12:05:02+05:30/categories/localstack-cockpit/2023-04-03T16:21:02+01:00/tags/localstack-enterprise/2023-04-24T21:27:46+05:30/tags/localstack-pro/2023-10-10T02:16:00+05:30/categories/localstack-pro-enterprise/2023-09-19T15:32:31+01:00/tags/localstack-team/2023-04-24T21:27:46+05:30/tags/localstack-endpoints/2023-05-19T17:05:51+05:30/tags/localstack-lambda/2023-10-11T10:24:58+02:00/tags/localsurf/2023-06-28T15:22:44+05:00/tags/logging/2023-05-19T17:05:51+05:30/references/coverage/coverage_logs/2023-03-20T14:38:19+01:00/user-guide/aws/logs/2022-12-01T14:30:06+05:30/tags/m1/2023-05-19T17:05:51+05:30/tags/machine-learning/2023-08-17T22:23:40+05:30/user-guide/aws/managed-streaming-for-kafka/2023-08-31T12:07:13+05:30/user-guide/aws/mwaa/2023-08-30T12:46:33+05:30/references/coverage/coverage_mediastore/2023-03-20T14:38:19+01:00/references/coverage/coverage_mediastore-data/2023-03-20T14:38:19+01:00/applications/messaging-processing-application-with-sqs-dynamodb-and-fargate/2023-06-28T15:22:44+05:00/tags/microservices/2023-06-28T15:22:44+05:00/applications/mnist-handwritten-digit-recognition-model-running-on-a-local-sagemaker-endpoint/2023-06-28T15:22:44+05:00/references/coverage/coverage_mq/2023-03-20T14:38:19+01:00/user-guide/aws/mq/2023-09-27T11:21:47+02:00/tags/msk/2023-08-17T22:23:40+05:30/tags/multi-account/2023-09-28T12:05:02+05:30/tags/multi-tenant/2023-09-28T12:05:02+05:30/references/coverage/coverage_mwaa/2023-03-20T14:38:19+01:00/tags/namespaces/2023-09-28T12:05:02+05:30/references/coverage/coverage_neptune/2023-03-20T14:38:19+01:00/user-guide/aws/neptune/2023-09-13T12:01:26+02:00/tags/networking/2023-09-29T12:57:11+01:00/tags/nginx/2023-08-17T22:54:42+05:30/tags/node.js/2023-08-17T22:23:40+05:30/applications/note-taking-application-using-aws-sdk-for-javascript/2023-06-28T15:22:44+05:00/references/coverage/coverage_opensearch/2023-03-20T14:38:19+01:00/user-guide/aws/opensearch/2023-08-30T20:58:41+05:30/references/coverage/coverage_organizations/2023-03-20T14:38:19+01:00/categories/persistence/2023-08-30T12:00:12+05:30/user-guide/integrations/sdks/php/2022-12-01T14:30:06+05:30/tags/podman/2023-05-19T17:05:51+05:30/tags/pulumi/2023-02-03T15:18:39+05:30/user-guide/integrations/sdks/python/2023-03-17T10:22:16+00:00/references/coverage/coverage_qldb/2023-03-20T14:38:19+01:00/references/coverage/coverage_qldb-session/2023-03-20T14:38:19+01:00/user-guide/aws/qldb/2023-02-03T15:18:39+05:30/applications/query-data-in-s3-bucket-with-amazon-athena-glue-catalog-cloudformation/2023-06-28T15:22:44+05:00/references/coverage/coverage_ram/2023-09-25T09:26:05+02:00/tags/raspberry-pi/2023-05-19T17:05:51+05:30/tags/rds/2023-06-28T15:22:44+05:00/references/coverage/coverage_rds/2023-03-20T14:38:19+01:00/references/coverage/coverage_rds-data/2023-03-20T14:38:19+01:00/tags/rds-proxy/2023-07-27T12:31:23+02:00/references/coverage/coverage_redshift/2023-03-20T14:38:19+01:00/user-guide/aws/redshift/2023-09-01T15:19:01+05:30/references/coverage/coverage_redshift-data/2023-03-20T14:38:19+01:00/user-guide/aws/rds/2023-10-11T16:58:45+02:00/tags/reproducible/2023-08-17T22:23:40+05:30/user-guide/aws/resourcegroups/2023-09-11T16:47:36+05:30/references/coverage/coverage_resource-groups/2023-03-20T14:38:19+01:00/references/coverage/coverage_resourcegroupstaggingapi/2023-03-20T14:38:19+01:00/references/coverage/coverage_route53/2023-03-20T14:38:19+01:00/user-guide/aws/route53/2023-09-15T09:42:50+05:30/references/coverage/coverage_route53resolver/2023-03-20T14:38:19+01:00/tags/ruby/2023-04-27T11:54:24+05:30/user-guide/integrations/sdks/ruby/2023-04-27T11:54:24+05:30/tags/rule-based-authentication/2023-06-28T15:22:44+05:00/references/coverage/coverage_s3/2023-03-20T14:38:19+01:00/tags/s3/2023-08-17T22:23:40+05:30/user-guide/aws/s3/2023-09-27T07:46:00+02:00/tags/s3-website/2023-08-17T22:23:40+05:30/references/coverage/coverage_s3control/2023-03-20T14:38:19+01:00/references/coverage/coverage_sagemaker/2023-03-20T14:38:19+01:00/user-guide/aws/sagemaker/2023-10-12T13:40:11+05:30/references/coverage/coverage_sagemaker-runtime/2023-03-20T14:38:19+01:00/tags/sam/2022-12-01T14:30:06+05:30/references/coverage/coverage_scheduler/2023-08-07T09:31:39+02:00/tags/schema-evolution/2023-08-17T22:23:40+05:30/tags/sdk/2023-09-11T10:43:08+03:00/applications/search-application-with-lambda-kinesis-firehose-elasticsearch-s3/2023-07-27T12:31:23+02:00/tags/secret-access-key/2023-05-19T17:05:51+05:30/user-guide/aws/secretsmanager/2023-09-11T19:23:39+05:30/references/coverage/coverage_secretsmanager/2023-03-20T14:38:19+01:00/tags/security/2023-06-28T15:22:44+05:00/user-guide/aws/security-token-service/2023-09-13T06:43:17+02:00/tags/self-managed/2023-04-23T09:59:36+05:30/tags/serverless/2023-10-11T10:24:58+02:00/user-guide/aws/serverlessrepo/2023-09-11T19:10:28+05:30/applications/serverless-container-based-apis-with-amazon-ecs-api-gateway/2023-06-28T15:22:44+05:00/applications/serverless-image-resizer-with-aws-lambda-s3-sns-and-ses/2023-06-28T15:22:44+05:00/applications/serverless-microservices-with-amazon-api-gateway-dynamodb-sqs-and-lambda/2023-06-28T15:22:44+05:00/applications/serverless-rds-proxy-with-api-gateway-lambda-and-aurora-rds/2023-07-27T12:31:23+02:00/applications/serverless-transcription-application-using-transcribe-s3-lambda-sqs-and-ses/2023-06-28T15:22:44+05:00/tags/serverless-containers/2023-06-28T15:22:44+05:00/tags/serverless-localstack-plugin/2023-08-17T22:23:40+05:30/references/coverage/coverage_serverlessrepo/2023-03-20T14:38:19+01:00/user-guide/aws/servicediscovery/2023-09-04T23:45:02+05:30/references/coverage/coverage_servicediscovery/2023-03-20T14:38:19+01:00/references/coverage/coverage_ses/2023-03-20T14:38:19+01:00/references/coverage/coverage_sesv2/2023-03-20T14:38:19+01:00/tags/silicon/2023-05-19T17:05:51+05:30/tags/simple-email-service/2023-08-17T22:54:42+05:30/user-guide/aws/ses/2023-09-27T11:21:28+05:30/tags/simple-notification-service/2023-08-17T22:54:42+05:30/user-guide/aws/sns/2023-08-24T22:36:50+05:30/tags/simple-queue-service/2023-08-17T22:54:42+05:30/user-guide/aws/sqs/2023-09-13T06:42:57+02:00/user-guide/aws/swf/2023-09-02T00:15:24+05:30/references/coverage/coverage_sns/2023-03-20T14:38:19+01:00/tags/spring-boot/2023-08-17T22:54:42+05:30/references/coverage/coverage_sqs/2023-03-20T14:38:19+01:00/tags/ssl/2023-08-02T12:53:03+02:00/references/coverage/coverage_ssm/2023-03-20T14:38:19+01:00/tags/sso/2023-10-10T02:16:00+05:30/references/coverage/coverage_sso-admin/2023-05-29T10:37:24+02:00/tags/stack-insights/2023-02-20T23:11:36+01:00/tags/static-website/2023-08-17T22:23:40+05:30/user-guide/aws/stepfunctions/2023-09-02T00:12:48+05:30/applications/step-up-authentication-using-amazon-cognito/2023-06-28T15:22:44+05:00/tags/step-up-auth/2023-06-28T15:22:44+05:00/references/coverage/coverage_stepfunctions/2023-03-20T14:38:19+01:00/references/coverage/coverage_sts/2023-03-20T14:38:19+01:00/references/coverage/coverage_support/2023-03-20T14:38:19+01:00/user-guide/aws/support/2023-08-30T15:39:42+05:30/references/coverage/coverage_swf/2023-03-20T14:38:19+01:00/user-guide/aws/systems-manager/2023-09-11T15:14:44+05:30/tags/terraform/2023-09-06T08:59:00+02:00/tags/testing/2023-05-04T11:45:00+05:30/tags/tflocal-cli/2023-08-17T22:23:40+05:30/user-guide/aws/timestream/2023-07-20T15:44:07+02:00/references/coverage/coverage_timestream-query/2023-03-20T14:38:19+01:00/references/coverage/coverage_timestream-write/2023-03-20T14:38:19+01:00/categories/tools/2023-09-29T12:57:11+01:00/references/coverage/coverage_transcribe/2023-03-20T14:38:19+01:00/user-guide/aws/transcribe/2023-09-27T11:21:47+02:00/references/coverage/coverage_transfer/2023-03-20T14:38:19+01:00/user-guide/aws/transfer/2023-09-11T18:22:02-05:00/tags/troubleshooting/2023-09-29T12:57:11+01:00/user-guide/aws/xray/2023-09-18T08:38:19+02:00/references/coverage/coverage_xray/2023-03-20T14:38:19+01:00 \ No newline at end of file +/user-guide/aws/feature-coverage/2023-09-18T08:38:19+02:00/references/network-troubleshooting/endpoint-url/2023-09-29T12:57:11+01:00/academy/localstack-101/course-overview/2023-08-23T14:33:03+05:00/user-guide/aws/2022-12-01T14:30:06+05:30/references/network-troubleshooting/2023-05-19T17:05:51+05:30/developer-hub/2023-03-30T17:05:01+02:00/overview/2023-08-17T22:23:40+05:30/tutorials/schema-evolution-glue-msk/2023-08-17T22:23:40+05:30/user-guide/web-application/accounts/2023-08-17T22:23:40+05:30/user-guide/integrations/aws-cli/2023-02-03T15:18:39+05:30/tutorials/lambda-ecr-container-images/2023-08-17T22:23:40+05:30/getting-started/2023-08-17T22:23:40+05:30/user-guide/integrations/2022-12-01T14:30:06+05:30/user-guide/web-application/teams/2023-04-17T16:22:53+05:30/references/network-troubleshooting/transparent-endpoint-injection/2023-09-29T12:57:11+01:00/academy/localstack-101/what-is-localstack/2023-08-23T14:33:03+05:00/references/network-troubleshooting/created-resources/2023-09-29T12:57:11+01:00/tutorials/java-notification-app/2023-08-17T22:54:42+05:30/contributing/contributing/2022-12-01T14:30:06+05:30/user-guide/extensions/2023-10-12T09:22:38+02:00/user-guide/tools/cloud-pods/getting-started/2023-10-13T09:43:04+05:30/user-guide/ci/2023-04-27T14:09:45+05:30/user-guide/extensions/quickstart/2023-10-12T09:22:38+02:00/tutorials/elb-load-balancing/2023-08-17T22:23:40+05:30/user-guide/web-application/stack-insights/2023-02-20T23:11:36+01:00/academy/localstack-101/why-localstack/2023-08-23T14:33:03+05:00/user-guide/ci/circle-ci/2023-04-27T14:09:45+05:30/user-guide/tools/cloud-pods/pods-cli/2023-10-13T09:43:04+05:30/contributing/development-environment-setup/2023-09-26T13:38:02+02:00/academy/localstack-101/getting-started/2023-08-23T14:33:03+05:00/tutorials/s3-static-website-terraform/2023-08-17T22:23:40+05:30/user-guide/web-application/resource-browser/2023-04-24T21:27:46+05:30/user-guide/integrations/serverless-framework/2023-03-27T16:55:20+02:00/user-guide/integrations/testcontainers/2023-06-23T00:43:59-06:00/user-guide/integrations/spring-cloud-function/2023-03-27T16:55:20+02:00/user-guide/tools/lambda-tools/hot-reloading/2023-09-16T14:23:55+02:00/user-guide/integrations/architect/2022-12-01T14:30:06+05:30/user-guide/integrations/copilot/2022-12-01T14:30:06+05:30/user-guide/tools/cloud-pods/remotes/2023-09-28T16:37:25+05:30/user-guide/web-application/cloud-pods-browser/2023-04-24T21:27:46+05:30/tutorials/reproducible-machine-learning-cloud-pods/2023-08-17T22:23:40+05:30/user-guide/integrations/crossplane/2023-09-06T08:59:00+02:00/user-guide/ci/drone-ci/2023-04-27T14:09:45+05:30/user-guide/web-application/extensions-library/2023-10-03T12:28:46-07:00/user-guide/ci/github-actions/2023-04-27T14:09:45+05:30/references/lambda-provider-v2/2023-05-08T14:00:03+00:00/references/coverage/2023-05-19T17:05:51+05:30/user-guide/tools/testing-tools/2022-12-01T14:30:06+05:30/user-guide/extensions/managing-extensions/2023-10-12T09:22:38+02:00/user-guide/tools/lambda-tools/debugging/2023-09-16T14:23:55+02:00/user-guide/web-application/single-sign-on/azure-ad/2023-03-02T21:22:50+05:30/user-guide/integrations/terraform/2023-09-06T08:59:00+02:00/academy/localstack-101/web-app-resource-browser/2023-08-23T14:33:03+05:00/user-guide/tools/cockpit/2023-04-03T16:21:02+01:00/tutorials/ecs-ecr-container-app/2023-08-17T22:54:42+05:30/user-guide/tools/transparent-endpoint-injection/dns-server/2023-09-29T12:57:11+01:00/user-guide/web-application/export-import-state/2023-10-10T02:16:00+05:30/academy/localstack-101/full-project-demo/2023-08-23T14:33:03+05:00/academy/localstack-101/2023-08-23T14:33:03+05:00/contributing/concepts/2022-12-29T12:19:43+01:00/user-guide/tools/transparent-endpoint-injection/patched-sdks/2023-05-04T17:56:26+05:30/user-guide/ci/travis-ci/2023-04-27T14:09:45+05:30/user-guide/integrations/aws-sam/2022-12-01T14:30:06+05:30/academy/localstack-101/cloud-pods/2023-08-23T14:33:03+05:00/user-guide/web-application/custom-local-endpoint/custom-local-endpoint/2023-10-10T02:16:00+05:30/user-guide/ci/gitlab-ci/2023-05-04T11:45:00+05:30/contributing/integration-tests/2023-10-12T10:43:09+02:00/user-guide/tools/localsurf/2023-03-14T14:32:31+05:30/contributing/parity-testing/2023-02-03T15:18:39+05:30/user-guide/2022-12-01T14:30:06+05:30/user-guide/integrations/aws-cdk/2023-06-23T12:19:51+05:30/user-guide/ci/harness-ci/2023-04-27T14:09:45+05:30/user-guide/tools/localstack-docker-extension/2023-01-13T18:45:43+05:30/user-guide/web-application/single-sign-on/2023-10-10T02:16:00+05:30/user-guide/tools/cloud-pods/2023-10-13T09:43:04+05:30/user-guide/tools/cloud-pods/launchpad/2023-10-13T09:43:04+05:30/references/configuration/2023-10-11T16:58:45+02:00/user-guide/extensions/developing-extensions/2023-10-12T09:22:38+02:00/getting-started/installation/2023-09-29T12:57:11+01:00/user-guide/tools/lambda-tools/2022-12-01T14:30:06+05:30/user-guide/integrations/pulumi/2023-02-03T15:18:39+05:30/contributing/terraform-tests/2022-12-01T14:30:06+05:30/user-guide/tools/transparent-endpoint-injection/2023-03-27T16:55:20+02:00/tutorials/2023-03-30T17:05:01+02:00/user-guide/integrations/cdk-for-terraform/2023-04-23T09:59:36+05:30/user-guide/integrations/kafka/2023-04-23T09:59:36+05:30/user-guide/integrations/chalice/2023-04-23T09:59:36+05:30/user-guide/integrations/gitpod/2023-04-23T09:59:36+05:30/user-guide/extensions/official-extensions/2023-10-12T09:22:38+02:00/getting-started/api-key/2023-09-19T15:32:31+01:00/applications/2023-03-30T17:05:01+02:00/academy/2023-08-23T14:33:03+05:00/getting-started/quickstart/2023-06-23T09:37:24+02:00/getting-started/faq/2023-09-29T12:57:11+01:00/user-guide/tools/2022-12-01T14:30:06+05:30/references/arm64-support/2023-05-19T17:05:51+05:30/references/credentials/2023-05-19T17:05:51+05:30/references/cross-account-access/2023-09-28T12:05:02+05:30/references/custom-tls-certificates/2023-08-02T12:53:03+02:00/references/docker-images/2023-05-19T17:05:51+05:30/references/extensions/2023-10-12T09:22:38+02:00/references/external-ports/2023-09-04T20:13:29+05:30/references/filesystem/2023-05-19T17:05:51+05:30/getting-started/glossary/2023-10-12T09:22:38+02:00/references/init-hooks/2023-09-13T12:33:31+02:00/references/internal-endpoints/2023-05-19T17:05:51+05:30/references/localstack-on-kubernetes/2023-05-19T17:05:51+05:30/user-guide/web-application/2022-12-01T14:30:06+05:30/references/logging/2023-05-19T17:05:51+05:30/references/multi-account-setups/2023-05-25T10:39:37+05:30/references/persistence-mechanism/2023-08-17T22:23:40+05:30/references/podman/2023-05-19T17:05:51+05:30/references/2023-02-03T15:18:39+05:30/references/usage-tracking/2023-05-19T17:05:51+05:30/contributing/2022-12-01T14:30:06+05:30/getting-started/help-and-support/2023-06-23T09:37:24+02:00/user-guide/tools/cloud-pods/community/2023-10-13T09:43:04+05:30/categories/2023-10-11T10:24:58+02:00/tags/dotnet/2023-06-23T00:43:59-06:00/tags/go/2023-06-23T00:43:59-06:00/tags/java/2023-08-17T22:54:42+05:30/tags/jvm/2023-06-23T00:43:59-06:00/tags/kotlin/2023-06-23T00:43:59-06:00/categories/localstack-community/2023-10-11T10:24:58+02:00/categories/localstack-pro/2023-10-11T10:24:58+02:00/tags/2023-10-12T09:22:38+02:00/tags/test/2023-06-23T00:43:59-06:00/tags/testcontainers/2023-06-23T00:43:59-06:00/tags/serverless-framework/2023-08-17T22:23:40+05:30/tags/spring/2023-03-27T16:55:20+02:00/tags/spring-cloud/2023-03-27T16:55:20+02:00/tags/spring-cloud-function/2023-03-27T16:55:20+02:00/applications/temp/2023-03-30T17:05:01+02:00/references/network-troubleshooting/readme/2023-03-17T10:22:16+00:00/user-guide/integrations/sdks/dotnet/2023-09-11T10:43:08+03:00/tags/access-key-id/2023-05-19T17:05:51+05:30/tags/account-id/2023-05-25T10:39:37+05:30/tags/accounts/2023-08-17T22:23:40+05:30/tags/acm/2023-04-28T19:11:32+05:30/references/coverage/coverage_acm/2023-03-20T14:38:19+01:00/user-guide/aws/apigateway/2023-05-11T08:58:11+03:00/applications/amazon-rds-initialization-using-cdk-lambda-ecr-and-secrets-manager/2023-06-28T15:22:44+05:00/tags/amplify/2023-04-27T21:08:52+05:30/references/coverage/coverage_amplify/2023-03-20T14:38:19+01:00/tags/amplify-localstack/2023-04-27T21:08:52+05:30/tags/amplify-plugin/2023-04-27T21:08:52+05:30/tags/amplifylocal/2023-04-27T21:08:52+05:30/tags/apigateway/2023-05-11T08:58:11+03:00/references/coverage/coverage_apigateway/2023-03-20T14:38:19+01:00/tags/apigateway-localstack/2023-05-11T08:58:11+03:00/references/coverage/coverage_apigatewaymanagementapi/2023-03-20T14:38:19+01:00/tags/apigatewayv2/2023-05-11T08:58:11+03:00/references/coverage/coverage_apigatewayv2/2023-03-20T14:38:19+01:00/references/coverage/coverage_appconfig/2023-03-20T14:38:19+01:00/user-guide/aws/appconfig/2023-08-30T15:42:43+05:30/tags/apple/2023-05-19T17:05:51+05:30/user-guide/aws/application-autoscaling/2023-08-31T16:43:39+05:30/references/coverage/coverage_application-autoscaling/2023-03-20T14:38:19+01:00/tags/appsync/2023-06-28T15:22:44+05:00/references/coverage/coverage_appsync/2023-03-20T14:38:19+01:00/user-guide/aws/appsync/2023-09-04T23:45:02+05:30/applications/appsync-graphql-apis-for-dynamodb-and-rds-aurora-postgresql/2023-06-28T15:22:44+05:00/tags/architect/2022-12-01T14:30:06+05:30/references/coverage/coverage_athena/2023-03-20T14:38:19+01:00/user-guide/aws/athena/2023-09-05T13:17:30+05:30/references/coverage/coverage_autoscaling/2023-03-20T14:38:19+01:00/user-guide/aws/amplify/2023-04-27T21:08:52+05:30/user-guide/aws/acm/2023-04-28T19:11:32+05:30/tags/aws-java-sdk/2023-08-17T22:54:42+05:30/user-guide/aws/organization/2022-12-01T14:30:06+05:30/tags/aws-amplify/2023-04-27T21:08:52+05:30/tags/aws-certificate-manager/2023-04-28T19:11:32+05:30/tags/aws-lambda/2023-10-11T10:24:58+02:00/references/coverage/coverage_backup/2023-03-20T14:38:19+01:00/user-guide/aws/backup/2023-08-30T00:43:03+05:30/tags/bash/2023-08-17T22:54:42+05:30/references/coverage/coverage_batch/2023-03-20T14:38:19+01:00/user-guide/aws/batch/2023-09-27T07:30:16+01:00/tags/big-data/2023-06-28T15:22:44+05:00/user-guide/integrations/sdks/cpp/2023-03-07T19:17:35+01:00/tags/cdk/2023-06-23T12:19:51+05:30/tags/cdk-for-terraform/2023-04-23T09:59:36+05:30/tags/cdktf/2023-04-23T09:59:36+05:30/references/coverage/coverage_ce/2023-03-20T14:38:19+01:00/tags/chalice/2023-04-23T09:59:36+05:30/tags/ci/2023-05-04T11:45:00+05:30/tags/cloud-pods/2023-08-17T22:23:40+05:30/references/coverage/coverage_cloudformation/2023-03-20T14:38:19+01:00/tags/cloudformation/2023-08-17T22:54:42+05:30/user-guide/aws/cloudformation/2023-08-30T19:47:20+05:30/references/coverage/coverage_cloudfront/2023-03-20T14:38:19+01:00/user-guide/aws/cloudfront/2023-08-31T11:20:16+05:30/references/coverage/coverage_cloudtrail/2023-03-20T14:38:19+01:00/user-guide/aws/cloudtrail/2023-08-29T21:22:38+05:30/references/coverage/coverage_cloudwatch/2023-03-20T14:38:19+01:00/user-guide/aws/cloudwatch/2023-08-10T09:44:16+05:30/references/coverage/coverage_codecommit/2023-03-20T14:38:19+01:00/user-guide/aws/codecommit/2023-09-05T17:51:59+05:30/user-guide/aws/cognito/2023-10-03T12:22:36-04:00/references/coverage/coverage_cognito-identity/2023-03-20T14:38:19+01:00/references/coverage/coverage_cognito-idp/2023-03-20T14:38:19+01:00/tags/compliance/2023-06-28T15:22:44+05:00/references/coverage/coverage_config/2023-03-20T14:38:19+01:00/user-guide/aws/config/2023-09-11T20:12:33+05:30/tags/container/2023-08-17T22:23:40+05:30/tags/container-image/2023-08-17T22:23:40+05:30/tags/continuous-delivery/2023-05-04T11:45:00+05:30/tags/continuous-integration/2023-05-04T11:45:00+05:30/user-guide/aws/cost-explorer/2023-08-31T12:11:26+05:30/tags/crossplane/2023-09-06T08:59:00+02:00/tags/data-analytics/2023-06-28T15:22:44+05:00/tags/databases/2023-06-28T15:22:44+05:00/tags/development-environment/2023-04-23T09:59:36+05:30/categories/dns/2023-09-29T12:57:11+01:00/references/coverage/coverage_docdb/2023-03-20T14:38:19+01:00/tags/docker/2023-08-17T22:23:40+05:30/tags/docker-desktop/2023-01-13T18:45:43+05:30/2021-10-08T11:40:02+02:00/user-guide/aws/docdb/2023-08-04T11:21:49+05:30/tags/dynamodb/2023-06-28T15:22:44+05:00/references/coverage/coverage_dynamodb/2023-03-20T14:38:19+01:00/user-guide/aws/dynamodb/2023-08-30T12:47:00+05:30/references/coverage/coverage_dynamodbstreams/2023-03-20T14:38:19+01:00/references/coverage/coverage_ec2/2023-03-20T14:38:19+01:00/references/coverage/coverage_ecr/2023-03-20T14:38:19+01:00/tags/ecr/2023-08-17T22:54:42+05:30/references/coverage/coverage_ecs/2023-03-20T14:38:19+01:00/tags/ecs/2023-08-17T22:54:42+05:30/references/coverage/coverage_efs/2023-03-20T14:38:19+01:00/references/coverage/coverage_eks/2023-03-20T14:38:19+01:00/user-guide/aws/elastic-beanstalk/2023-08-31T16:39:58+05:30/user-guide/aws/elastic-compute-cloud/2023-09-21T18:34:37+05:30/user-guide/aws/elastic-container-registry/2023-09-05T17:25:25+05:30/user-guide/aws/elastic-container-service/2023-03-27T16:55:20+02:00/user-guide/aws/elastic-file-system/2023-08-29T21:38:11+05:30/user-guide/aws/elastic-kubernetes-service/2023-10-03T11:00:55+01:00/tags/elastic-load-balancing/2023-08-17T22:23:40+05:30/user-guide/aws/elastic-load-balancing/2023-10-06T17:03:26+05:30/user-guide/aws/elastic-mapreduce/2023-06-21T20:27:39+05:30/references/coverage/coverage_elasticache/2023-03-20T14:38:19+01:00/user-guide/aws/elasticache/2023-09-15T17:41:05+02:00/references/coverage/coverage_elasticbeanstalk/2023-03-20T14:38:19+01:00/user-guide/aws/elasticsearch/2023-03-27T16:55:20+02:00/references/coverage/coverage_elb/2023-03-20T14:38:19+01:00/references/coverage/coverage_elbv2/2023-03-20T14:38:19+01:00/user-guide/aws/mediastore/2023-09-13T11:26:44+01:00/references/coverage/coverage_emr/2023-03-20T14:38:19+01:00/references/coverage/coverage_emr-serverless/2023-06-26T09:29:22+02:00/references/coverage/coverage_es/2023-03-20T14:38:19+01:00/applications/event-driven-architecture-with-amazon-sns-fifo-dynamodb-lambda-and-s3/2023-06-28T15:22:44+05:00/tags/event-driven-architecture/2023-07-27T12:31:23+02:00/user-guide/aws/eventbridge/2023-07-23T22:17:43-04:00/references/coverage/coverage_events/2023-03-20T14:38:19+01:00/tags/extensions/2023-10-12T09:22:38+02:00/tags/fargate/2023-08-17T22:54:42+05:30/user-guide/aws/fis/2023-08-30T13:05:02+05:30/references/coverage/coverage_firehose/2023-03-20T14:38:19+01:00/references/coverage/coverage_fis/2023-03-20T14:38:19+01:00/applications/full-stack-application-with-aws-lambda-dynamodb-s3-for-shipment-validation/2023-06-28T15:22:44+05:00/tags/gitpod/2023-04-23T09:59:36+05:30/references/coverage/coverage_glacier/2023-03-20T14:38:19+01:00/user-guide/aws/glacier/2023-09-13T09:09:02+02:00/references/coverage/coverage_glue/2023-03-20T14:38:19+01:00/user-guide/aws/glue/2023-09-12T13:08:30+02:00/tags/glue-schema-registry/2023-08-17T22:23:40+05:30/user-guide/integrations/sdks/go/2023-02-06T15:46:00+01:00/tags/graphql/2023-06-28T15:22:44+05:00/references/coverage/coverage_iam/2023-03-20T14:38:19+01:00/tags/ide-integration/2023-04-23T09:59:36+05:30/tags/identity/2023-06-28T15:22:44+05:00/user-guide/aws/iam/2023-08-13T16:25:17+05:30/tags/infrastructure-as-code/2023-09-06T08:59:00+02:00/tags/internal-endpoints/2023-05-19T17:05:51+05:30/references/coverage/coverage_iot/2023-03-20T14:38:19+01:00/user-guide/aws/iot/2023-09-21T18:34:37+05:30/references/coverage/coverage_iot-data/2023-03-20T14:38:19+01:00/references/coverage/coverage_iotanalytics/2023-03-20T14:38:19+01:00/references/coverage/coverage_iotwireless/2023-03-20T14:38:19+01:00/user-guide/integrations/sdks/java/2023-08-07T21:00:38+02:00/tags/javascript/2023-08-17T22:23:40+05:30/user-guide/integrations/sdks/javascript/2023-08-17T22:23:40+05:30/tags/k8s/2023-05-19T17:05:51+05:30/references/coverage/coverage_kafka/2023-03-20T14:38:19+01:00/tags/kafka/2023-08-17T22:23:40+05:30/user-guide/aws/kms/2023-08-14T18:56:38+02:00/references/coverage/coverage_kinesis/2023-03-20T14:38:19+01:00/user-guide/aws/kinesis/2023-09-04T23:27:09+05:30/user-guide/aws/kinesis-analytics/2023-08-30T13:04:38+05:30/user-guide/aws/kinesis-firehose/2023-08-30T00:36:11+05:30/references/coverage/coverage_kinesisanalytics/2023-03-20T14:38:19+01:00/references/coverage/coverage_kinesisanalyticsv2/2023-03-20T14:38:19+01:00/references/coverage/coverage_kms/2023-03-20T14:38:19+01:00/tags/kubernetes/2023-09-06T08:59:00+02:00/references/coverage/coverage_lakeformation/2023-03-20T14:38:19+01:00/references/coverage/coverage_lambda/2023-03-20T14:38:19+01:00/tags/lambda/2023-10-11T10:24:58+02:00/user-guide/aws/lambda/2023-10-11T10:24:58+02:00/tags/lambda-layers/2023-10-11T10:24:58+02:00/tags/lambda-debugging/2023-10-11T10:24:58+02:00/tags/lambda-hot-reloading/2023-10-11T10:24:58+02:00/tags/lambda-trigger/2023-06-28T15:22:44+05:00/user-guide/integrations/sdks/2022-12-01T14:30:06+05:30/applications/loan-broker-application-with-aws-step-functions-dynamodb-lambda-sqs-and-sns/2023-06-28T15:22:44+05:00/categories/localstack/2023-09-28T12:05:02+05:30/categories/localstack-cockpit/2023-04-03T16:21:02+01:00/tags/localstack-enterprise/2023-04-24T21:27:46+05:30/tags/localstack-pro/2023-10-10T02:16:00+05:30/categories/localstack-pro-enterprise/2023-09-19T15:32:31+01:00/tags/localstack-team/2023-04-24T21:27:46+05:30/tags/localstack-endpoints/2023-05-19T17:05:51+05:30/tags/localstack-lambda/2023-10-11T10:24:58+02:00/tags/localsurf/2023-06-28T15:22:44+05:00/tags/logging/2023-05-19T17:05:51+05:30/references/coverage/coverage_logs/2023-03-20T14:38:19+01:00/user-guide/aws/logs/2022-12-01T14:30:06+05:30/tags/m1/2023-05-19T17:05:51+05:30/tags/machine-learning/2023-08-17T22:23:40+05:30/user-guide/aws/managed-streaming-for-kafka/2023-08-31T12:07:13+05:30/user-guide/aws/mwaa/2023-08-30T12:46:33+05:30/references/coverage/coverage_mediastore/2023-03-20T14:38:19+01:00/references/coverage/coverage_mediastore-data/2023-03-20T14:38:19+01:00/applications/messaging-processing-application-with-sqs-dynamodb-and-fargate/2023-06-28T15:22:44+05:00/tags/microservices/2023-06-28T15:22:44+05:00/applications/mnist-handwritten-digit-recognition-model-running-on-a-local-sagemaker-endpoint/2023-06-28T15:22:44+05:00/references/coverage/coverage_mq/2023-03-20T14:38:19+01:00/user-guide/aws/mq/2023-09-27T11:21:47+02:00/tags/msk/2023-08-17T22:23:40+05:30/tags/multi-account/2023-09-28T12:05:02+05:30/tags/multi-tenant/2023-09-28T12:05:02+05:30/references/coverage/coverage_mwaa/2023-03-20T14:38:19+01:00/tags/namespaces/2023-09-28T12:05:02+05:30/references/coverage/coverage_neptune/2023-03-20T14:38:19+01:00/user-guide/aws/neptune/2023-09-13T12:01:26+02:00/tags/networking/2023-09-29T12:57:11+01:00/tags/nginx/2023-08-17T22:54:42+05:30/tags/node.js/2023-08-17T22:23:40+05:30/applications/note-taking-application-using-aws-sdk-for-javascript/2023-06-28T15:22:44+05:00/references/coverage/coverage_opensearch/2023-03-20T14:38:19+01:00/user-guide/aws/opensearch/2023-08-30T20:58:41+05:30/references/coverage/coverage_organizations/2023-03-20T14:38:19+01:00/user-guide/integrations/sdks/php/2022-12-01T14:30:06+05:30/tags/podman/2023-05-19T17:05:51+05:30/tags/pulumi/2023-02-03T15:18:39+05:30/user-guide/integrations/sdks/python/2023-03-17T10:22:16+00:00/references/coverage/coverage_qldb/2023-03-20T14:38:19+01:00/references/coverage/coverage_qldb-session/2023-03-20T14:38:19+01:00/user-guide/aws/qldb/2023-02-03T15:18:39+05:30/applications/query-data-in-s3-bucket-with-amazon-athena-glue-catalog-cloudformation/2023-06-28T15:22:44+05:00/references/coverage/coverage_ram/2023-09-25T09:26:05+02:00/tags/raspberry-pi/2023-05-19T17:05:51+05:30/tags/rds/2023-06-28T15:22:44+05:00/references/coverage/coverage_rds/2023-03-20T14:38:19+01:00/references/coverage/coverage_rds-data/2023-03-20T14:38:19+01:00/tags/rds-proxy/2023-07-27T12:31:23+02:00/references/coverage/coverage_redshift/2023-03-20T14:38:19+01:00/user-guide/aws/redshift/2023-09-01T15:19:01+05:30/references/coverage/coverage_redshift-data/2023-03-20T14:38:19+01:00/user-guide/aws/rds/2023-10-11T16:58:45+02:00/tags/reproducible/2023-08-17T22:23:40+05:30/user-guide/aws/resourcegroups/2023-09-11T16:47:36+05:30/references/coverage/coverage_resource-groups/2023-03-20T14:38:19+01:00/references/coverage/coverage_resourcegroupstaggingapi/2023-03-20T14:38:19+01:00/references/coverage/coverage_route53/2023-03-20T14:38:19+01:00/user-guide/aws/route53/2023-09-15T09:42:50+05:30/references/coverage/coverage_route53resolver/2023-03-20T14:38:19+01:00/tags/ruby/2023-04-27T11:54:24+05:30/user-guide/integrations/sdks/ruby/2023-04-27T11:54:24+05:30/tags/rule-based-authentication/2023-06-28T15:22:44+05:00/references/coverage/coverage_s3/2023-03-20T14:38:19+01:00/tags/s3/2023-08-17T22:23:40+05:30/user-guide/aws/s3/2023-09-27T07:46:00+02:00/tags/s3-website/2023-08-17T22:23:40+05:30/references/coverage/coverage_s3control/2023-03-20T14:38:19+01:00/references/coverage/coverage_sagemaker/2023-03-20T14:38:19+01:00/user-guide/aws/sagemaker/2023-10-12T13:40:11+05:30/references/coverage/coverage_sagemaker-runtime/2023-03-20T14:38:19+01:00/tags/sam/2022-12-01T14:30:06+05:30/references/coverage/coverage_scheduler/2023-08-07T09:31:39+02:00/tags/schema-evolution/2023-08-17T22:23:40+05:30/tags/sdk/2023-09-11T10:43:08+03:00/applications/search-application-with-lambda-kinesis-firehose-elasticsearch-s3/2023-07-27T12:31:23+02:00/tags/secret-access-key/2023-05-19T17:05:51+05:30/user-guide/aws/secretsmanager/2023-09-11T19:23:39+05:30/references/coverage/coverage_secretsmanager/2023-03-20T14:38:19+01:00/tags/security/2023-06-28T15:22:44+05:00/user-guide/aws/security-token-service/2023-09-13T06:43:17+02:00/tags/self-managed/2023-04-23T09:59:36+05:30/tags/serverless/2023-10-11T10:24:58+02:00/user-guide/aws/serverlessrepo/2023-09-11T19:10:28+05:30/applications/serverless-container-based-apis-with-amazon-ecs-api-gateway/2023-06-28T15:22:44+05:00/applications/serverless-image-resizer-with-aws-lambda-s3-sns-and-ses/2023-06-28T15:22:44+05:00/applications/serverless-microservices-with-amazon-api-gateway-dynamodb-sqs-and-lambda/2023-06-28T15:22:44+05:00/applications/serverless-rds-proxy-with-api-gateway-lambda-and-aurora-rds/2023-07-27T12:31:23+02:00/applications/serverless-transcription-application-using-transcribe-s3-lambda-sqs-and-ses/2023-06-28T15:22:44+05:00/tags/serverless-containers/2023-06-28T15:22:44+05:00/tags/serverless-localstack-plugin/2023-08-17T22:23:40+05:30/references/coverage/coverage_serverlessrepo/2023-03-20T14:38:19+01:00/user-guide/aws/servicediscovery/2023-09-04T23:45:02+05:30/references/coverage/coverage_servicediscovery/2023-03-20T14:38:19+01:00/references/coverage/coverage_ses/2023-03-20T14:38:19+01:00/references/coverage/coverage_sesv2/2023-03-20T14:38:19+01:00/tags/silicon/2023-05-19T17:05:51+05:30/tags/simple-email-service/2023-08-17T22:54:42+05:30/user-guide/aws/ses/2023-09-27T11:21:28+05:30/tags/simple-notification-service/2023-08-17T22:54:42+05:30/user-guide/aws/sns/2023-08-24T22:36:50+05:30/tags/simple-queue-service/2023-08-17T22:54:42+05:30/user-guide/aws/sqs/2023-09-13T06:42:57+02:00/user-guide/aws/swf/2023-09-02T00:15:24+05:30/references/coverage/coverage_sns/2023-03-20T14:38:19+01:00/tags/spring-boot/2023-08-17T22:54:42+05:30/references/coverage/coverage_sqs/2023-03-20T14:38:19+01:00/tags/ssl/2023-08-02T12:53:03+02:00/references/coverage/coverage_ssm/2023-03-20T14:38:19+01:00/tags/sso/2023-10-10T02:16:00+05:30/references/coverage/coverage_sso-admin/2023-05-29T10:37:24+02:00/tags/stack-insights/2023-02-20T23:11:36+01:00/tags/static-website/2023-08-17T22:23:40+05:30/user-guide/aws/stepfunctions/2023-09-02T00:12:48+05:30/applications/step-up-authentication-using-amazon-cognito/2023-06-28T15:22:44+05:00/tags/step-up-auth/2023-06-28T15:22:44+05:00/references/coverage/coverage_stepfunctions/2023-03-20T14:38:19+01:00/references/coverage/coverage_sts/2023-03-20T14:38:19+01:00/references/coverage/coverage_support/2023-03-20T14:38:19+01:00/user-guide/aws/support/2023-08-30T15:39:42+05:30/references/coverage/coverage_swf/2023-03-20T14:38:19+01:00/user-guide/aws/systems-manager/2023-09-11T15:14:44+05:30/tags/terraform/2023-09-06T08:59:00+02:00/tags/testing/2023-05-04T11:45:00+05:30/tags/tflocal-cli/2023-08-17T22:23:40+05:30/user-guide/aws/timestream/2023-07-20T15:44:07+02:00/references/coverage/coverage_timestream-query/2023-03-20T14:38:19+01:00/references/coverage/coverage_timestream-write/2023-03-20T14:38:19+01:00/categories/tools/2023-09-29T12:57:11+01:00/references/coverage/coverage_transcribe/2023-03-20T14:38:19+01:00/user-guide/aws/transcribe/2023-09-27T11:21:47+02:00/references/coverage/coverage_transfer/2023-03-20T14:38:19+01:00/user-guide/aws/transfer/2023-09-11T18:22:02-05:00/tags/troubleshooting/2023-09-29T12:57:11+01:00/user-guide/aws/xray/2023-09-18T08:38:19+02:00/references/coverage/coverage_xray/2023-03-20T14:38:19+01:00 \ No newline at end of file diff --git a/tools/cloud-pods/getting-started/index.html b/tools/cloud-pods/getting-started/index.html deleted file mode 100644 index accb6b5106..0000000000 --- a/tools/cloud-pods/getting-started/index.html +++ /dev/null @@ -1 +0,0 @@ -/user-guide/tools/cloud-pods/getting-started/ \ No newline at end of file diff --git a/tools/cloud-pods/index.html b/tools/cloud-pods/index.html deleted file mode 100644 index c741997508..0000000000 --- a/tools/cloud-pods/index.html +++ /dev/null @@ -1 +0,0 @@ -/user-guide/tools/cloud-pods/ \ No newline at end of file diff --git a/tools/cloud-pods/pods-cli/index.html b/tools/cloud-pods/pods-cli/index.html deleted file mode 100644 index ad74a4559f..0000000000 --- a/tools/cloud-pods/pods-cli/index.html +++ /dev/null @@ -1 +0,0 @@ -/user-guide/tools/cloud-pods/pods-cli/ \ No newline at end of file diff --git a/tutorials/ecs-ecr-container-app/index.html b/tutorials/ecs-ecr-container-app/index.html index c2ee4cb3a9..2e683ee974 100644 --- a/tutorials/ecs-ecr-container-app/index.html +++ b/tutorials/ecs-ecr-container-app/index.html @@ -130,11 +130,11 @@
  • +
  • +
  • +
  • +
  • +
  • diff --git a/tutorials/elb-load-balancing/index.html b/tutorials/elb-load-balancing/index.html index 1ec7394333..98832c0c80 100644 --- a/tutorials/elb-load-balancing/index.html +++ b/tutorials/elb-load-balancing/index.html @@ -130,11 +130,11 @@
  • +
  • +
  • +
  • +
  • +
  • diff --git a/tutorials/index.html b/tutorials/index.html index 38bf1b5f50..04baa77c24 100644 --- a/tutorials/index.html +++ b/tutorials/index.html @@ -129,11 +129,11 @@
  • +
  • +
  • +
  • +
  • +
  • diff --git a/tutorials/java-notification-app/index.html b/tutorials/java-notification-app/index.html index 15c97f2f59..5776c249e7 100644 --- a/tutorials/java-notification-app/index.html +++ b/tutorials/java-notification-app/index.html @@ -130,11 +130,11 @@
  • +
  • +
  • +
  • +
  • +
  • diff --git a/tutorials/lambda-ecr-container-images/index.html b/tutorials/lambda-ecr-container-images/index.html index e717216417..a28f711baf 100644 --- a/tutorials/lambda-ecr-container-images/index.html +++ b/tutorials/lambda-ecr-container-images/index.html @@ -130,11 +130,11 @@
  • +
  • +
  • +
  • +
  • +
  • diff --git a/tutorials/reproducible-machine-learning-cloud-pods/index.html b/tutorials/reproducible-machine-learning-cloud-pods/index.html index 9d634ce9f7..2b320fb179 100644 --- a/tutorials/reproducible-machine-learning-cloud-pods/index.html +++ b/tutorials/reproducible-machine-learning-cloud-pods/index.html @@ -130,11 +130,11 @@
  • +
  • +
  • +
  • +
  • +
  • diff --git a/tutorials/s3-static-website-terraform/index.html b/tutorials/s3-static-website-terraform/index.html index 278f1bcb51..d1a8f5eb71 100644 --- a/tutorials/s3-static-website-terraform/index.html +++ b/tutorials/s3-static-website-terraform/index.html @@ -130,11 +130,11 @@
  • +
  • +
  • +
  • +
  • +
  • diff --git a/tutorials/schema-evolution-glue-msk/index.html b/tutorials/schema-evolution-glue-msk/index.html index 53d389ba02..cf60aba85f 100644 --- a/tutorials/schema-evolution-glue-msk/index.html +++ b/tutorials/schema-evolution-glue-msk/index.html @@ -130,11 +130,11 @@
  • +
  • +
  • +
  • +
  • +
  • diff --git a/user-guide/aws/acm/index.html b/user-guide/aws/acm/index.html index 4a46386db5..f118035856 100644 --- a/user-guide/aws/acm/index.html +++ b/user-guide/aws/acm/index.html @@ -130,11 +130,11 @@
  • +
  • +
  • +
  • +
  • +
  • diff --git a/user-guide/aws/amplify/index.html b/user-guide/aws/amplify/index.html index 94e19a7204..9c72173e4c 100644 --- a/user-guide/aws/amplify/index.html +++ b/user-guide/aws/amplify/index.html @@ -130,11 +130,11 @@
  • +
  • +
  • +
  • +
  • +
  • diff --git a/user-guide/aws/apigateway/index.html b/user-guide/aws/apigateway/index.html index 92af36df75..47ed4ee2d0 100644 --- a/user-guide/aws/apigateway/index.html +++ b/user-guide/aws/apigateway/index.html @@ -130,11 +130,11 @@
  • +
  • +
  • +
  • +
  • +
  • diff --git a/user-guide/aws/appconfig/index.html b/user-guide/aws/appconfig/index.html index d3231adca5..679baf5795 100644 --- a/user-guide/aws/appconfig/index.html +++ b/user-guide/aws/appconfig/index.html @@ -126,11 +126,11 @@
  • +
  • +
  • +
  • +
  • +
  • diff --git a/user-guide/aws/application-autoscaling/index.html b/user-guide/aws/application-autoscaling/index.html index 669b1c98c2..4d2cb34fd1 100644 --- a/user-guide/aws/application-autoscaling/index.html +++ b/user-guide/aws/application-autoscaling/index.html @@ -130,11 +130,11 @@
  • +
  • +
  • +
  • +
  • +
  • diff --git a/user-guide/aws/appsync/index.html b/user-guide/aws/appsync/index.html index b87793fc4d..24ef5e3cef 100644 --- a/user-guide/aws/appsync/index.html +++ b/user-guide/aws/appsync/index.html @@ -126,11 +126,11 @@
  • +
  • +
  • +
  • +
  • +
  • diff --git a/user-guide/aws/athena/index.html b/user-guide/aws/athena/index.html index 4640f6dbcf..2a4ba93e91 100644 --- a/user-guide/aws/athena/index.html +++ b/user-guide/aws/athena/index.html @@ -126,11 +126,11 @@
  • +
  • +
  • +
  • +
  • +
  • diff --git a/user-guide/aws/backup/index.html b/user-guide/aws/backup/index.html index 81af725420..ae09a72aa1 100644 --- a/user-guide/aws/backup/index.html +++ b/user-guide/aws/backup/index.html @@ -126,11 +126,11 @@
  • +
  • +
  • +
  • +
  • +
  • diff --git a/user-guide/aws/batch/index.html b/user-guide/aws/batch/index.html index c38bd95e1e..b288c76cb2 100644 --- a/user-guide/aws/batch/index.html +++ b/user-guide/aws/batch/index.html @@ -126,11 +126,11 @@
  • +
  • +
  • +
  • +
  • +
  • diff --git a/user-guide/aws/cloudformation/index.html b/user-guide/aws/cloudformation/index.html index e011feaea7..a32b9cef7b 100644 --- a/user-guide/aws/cloudformation/index.html +++ b/user-guide/aws/cloudformation/index.html @@ -126,11 +126,11 @@
  • +
  • +
  • +
  • +
  • +
  • diff --git a/user-guide/aws/cloudfront/index.html b/user-guide/aws/cloudfront/index.html index 37bb685f4f..50ce7d188b 100644 --- a/user-guide/aws/cloudfront/index.html +++ b/user-guide/aws/cloudfront/index.html @@ -130,11 +130,11 @@
  • +
  • +
  • +
  • +
  • +
  • diff --git a/user-guide/aws/cloudtrail/index.html b/user-guide/aws/cloudtrail/index.html index a85a2004b7..cd6b8d4b4e 100644 --- a/user-guide/aws/cloudtrail/index.html +++ b/user-guide/aws/cloudtrail/index.html @@ -130,11 +130,11 @@
  • +
  • +
  • +
  • +
  • +
  • diff --git a/user-guide/aws/cloudwatch/index.html b/user-guide/aws/cloudwatch/index.html index daad24d4f1..8e8f805fb6 100644 --- a/user-guide/aws/cloudwatch/index.html +++ b/user-guide/aws/cloudwatch/index.html @@ -126,11 +126,11 @@
  • +
  • +
  • +
  • +
  • +
  • diff --git a/user-guide/aws/codecommit/index.html b/user-guide/aws/codecommit/index.html index 8fcbadbc32..642bddc27b 100644 --- a/user-guide/aws/codecommit/index.html +++ b/user-guide/aws/codecommit/index.html @@ -130,11 +130,11 @@
  • +
  • +
  • +
  • +
  • +
  • diff --git a/user-guide/aws/cognito/index.html b/user-guide/aws/cognito/index.html index d56bd32718..b56752d02b 100644 --- a/user-guide/aws/cognito/index.html +++ b/user-guide/aws/cognito/index.html @@ -130,11 +130,11 @@
  • +
  • +
  • +
  • +
  • +
  • diff --git a/user-guide/aws/config/index.html b/user-guide/aws/config/index.html index 064b6259b1..37ed9d8712 100644 --- a/user-guide/aws/config/index.html +++ b/user-guide/aws/config/index.html @@ -130,11 +130,11 @@
  • +
  • +
  • +
  • +
  • +
  • diff --git a/user-guide/aws/cost-explorer/index.html b/user-guide/aws/cost-explorer/index.html index cfdcd36a03..45f7f1ba37 100644 --- a/user-guide/aws/cost-explorer/index.html +++ b/user-guide/aws/cost-explorer/index.html @@ -130,11 +130,11 @@
  • +
  • +
  • +
  • +
  • +
  • diff --git a/user-guide/aws/docdb/index.html b/user-guide/aws/docdb/index.html index 36ed3da613..91e725bb7f 100644 --- a/user-guide/aws/docdb/index.html +++ b/user-guide/aws/docdb/index.html @@ -130,11 +130,11 @@
  • +
  • +
  • +
  • +
  • +
  • diff --git a/user-guide/aws/dynamodb/index.html b/user-guide/aws/dynamodb/index.html index 807b2cbe37..7fc1116dd4 100644 --- a/user-guide/aws/dynamodb/index.html +++ b/user-guide/aws/dynamodb/index.html @@ -126,11 +126,11 @@
  • +
  • +
  • +
  • +
  • +
  • diff --git a/user-guide/aws/elastic-beanstalk/index.html b/user-guide/aws/elastic-beanstalk/index.html index d228044d9d..a9df00f113 100644 --- a/user-guide/aws/elastic-beanstalk/index.html +++ b/user-guide/aws/elastic-beanstalk/index.html @@ -130,11 +130,11 @@
  • +
  • +
  • +
  • +
  • +
  • diff --git a/user-guide/aws/elastic-compute-cloud/index.html b/user-guide/aws/elastic-compute-cloud/index.html index af47bcee1e..dfbeb55745 100644 --- a/user-guide/aws/elastic-compute-cloud/index.html +++ b/user-guide/aws/elastic-compute-cloud/index.html @@ -126,11 +126,11 @@
  • +
  • +
  • +
  • +
  • +
  • diff --git a/user-guide/aws/elastic-container-registry/index.html b/user-guide/aws/elastic-container-registry/index.html index 6db0b09067..8e01452afb 100644 --- a/user-guide/aws/elastic-container-registry/index.html +++ b/user-guide/aws/elastic-container-registry/index.html @@ -130,11 +130,11 @@
  • +
  • +
  • +
  • +
  • +
  • diff --git a/user-guide/aws/elastic-container-service/index.html b/user-guide/aws/elastic-container-service/index.html index 81506b1ab0..83953471da 100644 --- a/user-guide/aws/elastic-container-service/index.html +++ b/user-guide/aws/elastic-container-service/index.html @@ -130,11 +130,11 @@
  • +
  • +
  • +
  • +
  • +
  • diff --git a/user-guide/aws/elastic-file-system/index.html b/user-guide/aws/elastic-file-system/index.html index 3aaf70cb6d..d2833d07a1 100644 --- a/user-guide/aws/elastic-file-system/index.html +++ b/user-guide/aws/elastic-file-system/index.html @@ -130,11 +130,11 @@
  • +
  • +
  • +
  • +
  • +
  • diff --git a/user-guide/aws/elastic-kubernetes-service/index.html b/user-guide/aws/elastic-kubernetes-service/index.html index 3538e915c7..a31a636657 100644 --- a/user-guide/aws/elastic-kubernetes-service/index.html +++ b/user-guide/aws/elastic-kubernetes-service/index.html @@ -130,11 +130,11 @@
  • +
  • +
  • +
  • +
  • +
  • diff --git a/user-guide/aws/elastic-load-balancing/index.html b/user-guide/aws/elastic-load-balancing/index.html index 564c1602f2..48b1944177 100644 --- a/user-guide/aws/elastic-load-balancing/index.html +++ b/user-guide/aws/elastic-load-balancing/index.html @@ -126,11 +126,11 @@
  • +
  • +
  • +
  • +
  • +
  • diff --git a/user-guide/aws/elastic-mapreduce/index.html b/user-guide/aws/elastic-mapreduce/index.html index 1fa10cf73c..c8078d0c1d 100644 --- a/user-guide/aws/elastic-mapreduce/index.html +++ b/user-guide/aws/elastic-mapreduce/index.html @@ -130,11 +130,11 @@
  • +
  • +
  • +
  • +
  • +
  • diff --git a/user-guide/aws/elasticache/index.html b/user-guide/aws/elasticache/index.html index c3a53c8770..cc26e59b1e 100644 --- a/user-guide/aws/elasticache/index.html +++ b/user-guide/aws/elasticache/index.html @@ -130,11 +130,11 @@
  • +
  • +
  • +
  • +
  • +
  • diff --git a/user-guide/aws/elasticsearch/index.html b/user-guide/aws/elasticsearch/index.html index c19c0915ef..95bc6b6c8c 100644 --- a/user-guide/aws/elasticsearch/index.html +++ b/user-guide/aws/elasticsearch/index.html @@ -130,11 +130,11 @@
  • +
  • +
  • +
  • +
  • +
  • diff --git a/user-guide/aws/eventbridge/index.html b/user-guide/aws/eventbridge/index.html index 6004466375..18ac4702c2 100644 --- a/user-guide/aws/eventbridge/index.html +++ b/user-guide/aws/eventbridge/index.html @@ -130,11 +130,11 @@
  • +
  • +
  • +
  • +
  • +
  • diff --git a/user-guide/aws/feature-coverage/index.html b/user-guide/aws/feature-coverage/index.html index a696b79456..497d5d4787 100644 --- a/user-guide/aws/feature-coverage/index.html +++ b/user-guide/aws/feature-coverage/index.html @@ -130,11 +130,11 @@
  • +
  • +
  • +
  • +
  • +
  • diff --git a/user-guide/aws/fis/index.html b/user-guide/aws/fis/index.html index 4eb55a2116..3bc779c499 100644 --- a/user-guide/aws/fis/index.html +++ b/user-guide/aws/fis/index.html @@ -130,11 +130,11 @@
  • +
  • +
  • +
  • +
  • +
  • diff --git a/user-guide/aws/glacier/index.html b/user-guide/aws/glacier/index.html index 8c7921e092..01af14c095 100644 --- a/user-guide/aws/glacier/index.html +++ b/user-guide/aws/glacier/index.html @@ -126,11 +126,11 @@
  • +
  • +
  • +
  • +
  • +
  • diff --git a/user-guide/aws/glue/index.html b/user-guide/aws/glue/index.html index c1d5288270..9b9437d9b5 100644 --- a/user-guide/aws/glue/index.html +++ b/user-guide/aws/glue/index.html @@ -126,11 +126,11 @@
  • +
  • +
  • +
  • +
  • +
  • diff --git a/user-guide/aws/iam/index.html b/user-guide/aws/iam/index.html index 267f7675f6..ec6096834f 100644 --- a/user-guide/aws/iam/index.html +++ b/user-guide/aws/iam/index.html @@ -130,11 +130,11 @@
  • +
  • +
  • +
  • +
  • +
  • diff --git a/user-guide/aws/iot/index.html b/user-guide/aws/iot/index.html index 5ef36517f7..c1fdcc2404 100644 --- a/user-guide/aws/iot/index.html +++ b/user-guide/aws/iot/index.html @@ -130,11 +130,11 @@
  • +
  • +
  • +
  • +
  • +
  • diff --git a/user-guide/aws/kinesis-analytics/index.html b/user-guide/aws/kinesis-analytics/index.html index ccc4e9a826..5171306841 100644 --- a/user-guide/aws/kinesis-analytics/index.html +++ b/user-guide/aws/kinesis-analytics/index.html @@ -130,11 +130,11 @@
  • +
  • +
  • +
  • +
  • +
  • diff --git a/user-guide/aws/kinesis-firehose/index.html b/user-guide/aws/kinesis-firehose/index.html index 52988e1869..ab717a1e43 100644 --- a/user-guide/aws/kinesis-firehose/index.html +++ b/user-guide/aws/kinesis-firehose/index.html @@ -130,11 +130,11 @@
  • +
  • +
  • +
  • +
  • +
  • diff --git a/user-guide/aws/kinesis/index.html b/user-guide/aws/kinesis/index.html index 54d6e94bbd..5238aad3c8 100644 --- a/user-guide/aws/kinesis/index.html +++ b/user-guide/aws/kinesis/index.html @@ -130,11 +130,11 @@
  • +
  • +
  • +
  • +
  • +
  • diff --git a/user-guide/aws/kms/index.html b/user-guide/aws/kms/index.html index 0cd8e457a8..026bfbefdb 100644 --- a/user-guide/aws/kms/index.html +++ b/user-guide/aws/kms/index.html @@ -130,11 +130,11 @@
  • +
  • +
  • +
  • +
  • +
  • diff --git a/user-guide/aws/lambda/index.html b/user-guide/aws/lambda/index.html index 83ffe4cc18..c9cc448f44 100644 --- a/user-guide/aws/lambda/index.html +++ b/user-guide/aws/lambda/index.html @@ -130,11 +130,11 @@
  • +
  • +
  • +
  • +
  • +
  • diff --git a/user-guide/aws/logs/index.html b/user-guide/aws/logs/index.html index 509b28073a..84a6c7c76c 100644 --- a/user-guide/aws/logs/index.html +++ b/user-guide/aws/logs/index.html @@ -126,11 +126,11 @@
  • +
  • +
  • +
  • +
  • +
  • diff --git a/user-guide/aws/managed-streaming-for-kafka/index.html b/user-guide/aws/managed-streaming-for-kafka/index.html index 6c837d9847..2ba0bcb629 100644 --- a/user-guide/aws/managed-streaming-for-kafka/index.html +++ b/user-guide/aws/managed-streaming-for-kafka/index.html @@ -130,11 +130,11 @@
  • +
  • +
  • +
  • +
  • +
  • diff --git a/user-guide/aws/mediastore/index.html b/user-guide/aws/mediastore/index.html index 6926c7f9d9..ac40225717 100644 --- a/user-guide/aws/mediastore/index.html +++ b/user-guide/aws/mediastore/index.html @@ -126,11 +126,11 @@
  • +
  • +
  • +
  • +
  • +
  • diff --git a/user-guide/aws/mq/index.html b/user-guide/aws/mq/index.html index 7ee859cd25..22b24cd43a 100644 --- a/user-guide/aws/mq/index.html +++ b/user-guide/aws/mq/index.html @@ -126,11 +126,11 @@
  • +
  • +
  • +
  • +
  • +
  • diff --git a/user-guide/aws/mwaa/index.html b/user-guide/aws/mwaa/index.html index 1d482db4c1..11a01ecae6 100644 --- a/user-guide/aws/mwaa/index.html +++ b/user-guide/aws/mwaa/index.html @@ -130,11 +130,11 @@
  • +
  • +
  • +
  • +
  • +
  • diff --git a/user-guide/aws/neptune/index.html b/user-guide/aws/neptune/index.html index 187cd62636..2d0e74f622 100644 --- a/user-guide/aws/neptune/index.html +++ b/user-guide/aws/neptune/index.html @@ -130,11 +130,11 @@
  • +
  • +
  • +
  • +
  • +
  • diff --git a/user-guide/aws/opensearch/index.html b/user-guide/aws/opensearch/index.html index 7b786dfb9b..cca5f4a30f 100644 --- a/user-guide/aws/opensearch/index.html +++ b/user-guide/aws/opensearch/index.html @@ -130,11 +130,11 @@
  • +
  • +
  • +
  • +
  • +
  • diff --git a/user-guide/aws/organization/index.html b/user-guide/aws/organization/index.html index ea889d552a..be2fe9531c 100644 --- a/user-guide/aws/organization/index.html +++ b/user-guide/aws/organization/index.html @@ -126,11 +126,11 @@
  • +
  • +
  • +
  • +
  • +
  • diff --git a/user-guide/aws/qldb/index.html b/user-guide/aws/qldb/index.html index a1c0fca943..5580b9dfb5 100644 --- a/user-guide/aws/qldb/index.html +++ b/user-guide/aws/qldb/index.html @@ -130,11 +130,11 @@
  • +
  • +
  • +
  • +
  • +
  • diff --git a/user-guide/aws/rds/index.html b/user-guide/aws/rds/index.html index 22782f4af7..7f7d3da01a 100644 --- a/user-guide/aws/rds/index.html +++ b/user-guide/aws/rds/index.html @@ -130,11 +130,11 @@
  • +
  • +
  • +
  • +
  • +
  • diff --git a/user-guide/aws/redshift/index.html b/user-guide/aws/redshift/index.html index 4f10ef0b4f..3c0d089fc3 100644 --- a/user-guide/aws/redshift/index.html +++ b/user-guide/aws/redshift/index.html @@ -126,11 +126,11 @@
  • +
  • +
  • +
  • +
  • +
  • diff --git a/user-guide/aws/resourcegroups/index.html b/user-guide/aws/resourcegroups/index.html index 557d5c8095..fd63378d3d 100644 --- a/user-guide/aws/resourcegroups/index.html +++ b/user-guide/aws/resourcegroups/index.html @@ -130,11 +130,11 @@
  • +
  • +
  • +
  • +
  • +
  • diff --git a/user-guide/aws/route53/index.html b/user-guide/aws/route53/index.html index d5cce0ef32..3d5c36c782 100644 --- a/user-guide/aws/route53/index.html +++ b/user-guide/aws/route53/index.html @@ -126,11 +126,11 @@
  • +
  • +
  • +
  • +
  • +
  • diff --git a/user-guide/aws/s3/index.html b/user-guide/aws/s3/index.html index ded1ed81d5..d2cf81ecd5 100644 --- a/user-guide/aws/s3/index.html +++ b/user-guide/aws/s3/index.html @@ -130,11 +130,11 @@
  • +
  • +
  • +
  • +
  • +
  • diff --git a/user-guide/aws/sagemaker/index.html b/user-guide/aws/sagemaker/index.html index af14390682..4eaab81e76 100644 --- a/user-guide/aws/sagemaker/index.html +++ b/user-guide/aws/sagemaker/index.html @@ -126,11 +126,11 @@
  • +
  • +
  • +
  • +
  • +
  • diff --git a/user-guide/aws/secretsmanager/index.html b/user-guide/aws/secretsmanager/index.html index 6ed99ff78d..6331394f41 100644 --- a/user-guide/aws/secretsmanager/index.html +++ b/user-guide/aws/secretsmanager/index.html @@ -130,11 +130,11 @@
  • +
  • +
  • +
  • +
  • +
  • diff --git a/user-guide/aws/security-token-service/index.html b/user-guide/aws/security-token-service/index.html index 24ff4736d0..8b0e5d50a9 100644 --- a/user-guide/aws/security-token-service/index.html +++ b/user-guide/aws/security-token-service/index.html @@ -126,11 +126,11 @@
  • +
  • +
  • +
  • +
  • +
  • diff --git a/user-guide/aws/serverlessrepo/index.html b/user-guide/aws/serverlessrepo/index.html index 899ce6550c..c4fe3bd466 100644 --- a/user-guide/aws/serverlessrepo/index.html +++ b/user-guide/aws/serverlessrepo/index.html @@ -130,11 +130,11 @@
  • +
  • +
  • +
  • +
  • +
  • diff --git a/user-guide/aws/servicediscovery/index.html b/user-guide/aws/servicediscovery/index.html index 6944716f5a..d955329aa7 100644 --- a/user-guide/aws/servicediscovery/index.html +++ b/user-guide/aws/servicediscovery/index.html @@ -130,11 +130,11 @@
  • +
  • +
  • +
  • +
  • +
  • diff --git a/user-guide/aws/ses/index.html b/user-guide/aws/ses/index.html index f3f4ca6644..8632c86ba4 100644 --- a/user-guide/aws/ses/index.html +++ b/user-guide/aws/ses/index.html @@ -126,11 +126,11 @@
  • +
  • +
  • +
  • +
  • +
  • diff --git a/user-guide/aws/sns/index.html b/user-guide/aws/sns/index.html index 990bddeef6..62781f7de3 100644 --- a/user-guide/aws/sns/index.html +++ b/user-guide/aws/sns/index.html @@ -130,11 +130,11 @@
  • +
  • +
  • +
  • +
  • +
  • diff --git a/user-guide/aws/sqs/index.html b/user-guide/aws/sqs/index.html index 6a40b57579..a9cc05674b 100644 --- a/user-guide/aws/sqs/index.html +++ b/user-guide/aws/sqs/index.html @@ -130,11 +130,11 @@
  • +
  • +
  • +
  • +
  • +
  • diff --git a/user-guide/aws/stepfunctions/index.html b/user-guide/aws/stepfunctions/index.html index c399199167..fa25aec7ca 100644 --- a/user-guide/aws/stepfunctions/index.html +++ b/user-guide/aws/stepfunctions/index.html @@ -130,11 +130,11 @@
  • +
  • +
  • +
  • +
  • +
  • diff --git a/user-guide/aws/support/index.html b/user-guide/aws/support/index.html index 94c04480af..1e3c43854d 100644 --- a/user-guide/aws/support/index.html +++ b/user-guide/aws/support/index.html @@ -126,11 +126,11 @@
  • +
  • +
  • +
  • +
  • +
  • diff --git a/user-guide/aws/swf/index.html b/user-guide/aws/swf/index.html index 223a08373e..99773d8cdd 100644 --- a/user-guide/aws/swf/index.html +++ b/user-guide/aws/swf/index.html @@ -130,11 +130,11 @@
  • +
  • +
  • +
  • +
  • +
  • diff --git a/user-guide/aws/systems-manager/index.html b/user-guide/aws/systems-manager/index.html index 7df2c7e61d..3053056298 100644 --- a/user-guide/aws/systems-manager/index.html +++ b/user-guide/aws/systems-manager/index.html @@ -126,11 +126,11 @@
  • +
  • +
  • +
  • +
  • +
  • diff --git a/user-guide/aws/timestream/index.html b/user-guide/aws/timestream/index.html index 615237bc91..94b1962ace 100644 --- a/user-guide/aws/timestream/index.html +++ b/user-guide/aws/timestream/index.html @@ -130,11 +130,11 @@
  • +
  • +
  • +
  • +
  • +
  • diff --git a/user-guide/aws/transcribe/index.html b/user-guide/aws/transcribe/index.html index e6b1696343..b36a53fca0 100644 --- a/user-guide/aws/transcribe/index.html +++ b/user-guide/aws/transcribe/index.html @@ -126,11 +126,11 @@
  • +
  • +
  • +
  • +
  • +
  • diff --git a/user-guide/aws/transfer/index.html b/user-guide/aws/transfer/index.html index 0cb37e55d0..81b68b39a8 100644 --- a/user-guide/aws/transfer/index.html +++ b/user-guide/aws/transfer/index.html @@ -130,11 +130,11 @@
  • +
  • +
  • +
  • +
  • +
  • diff --git a/user-guide/aws/xray/index.html b/user-guide/aws/xray/index.html index f93e6b3eab..42967713a0 100644 --- a/user-guide/aws/xray/index.html +++ b/user-guide/aws/xray/index.html @@ -126,11 +126,11 @@
  • +
  • +
  • +
  • +
  • +
  • diff --git a/user-guide/ci/circle-ci/index.html b/user-guide/ci/circle-ci/index.html index efcc356232..b6bddc7f07 100644 --- a/user-guide/ci/circle-ci/index.html +++ b/user-guide/ci/circle-ci/index.html @@ -130,11 +130,11 @@
  • +
  • +
  • +
  • +
  • +
  • diff --git a/user-guide/ci/drone-ci/index.html b/user-guide/ci/drone-ci/index.html index a8cee5fe06..3d0c3424d3 100644 --- a/user-guide/ci/drone-ci/index.html +++ b/user-guide/ci/drone-ci/index.html @@ -130,11 +130,11 @@
  • +
  • +
  • +
  • +
  • +
  • diff --git a/user-guide/ci/github-actions/index.html b/user-guide/ci/github-actions/index.html index a4642a5af4..b4ebae466e 100644 --- a/user-guide/ci/github-actions/index.html +++ b/user-guide/ci/github-actions/index.html @@ -130,11 +130,11 @@
  • +
  • +
  • +
  • +
  • +
  • diff --git a/user-guide/ci/gitlab-ci/index.html b/user-guide/ci/gitlab-ci/index.html index 11a7f497d3..8a36cfa561 100644 --- a/user-guide/ci/gitlab-ci/index.html +++ b/user-guide/ci/gitlab-ci/index.html @@ -130,11 +130,11 @@
  • +
  • +
  • +
  • +
  • +
  • diff --git a/user-guide/ci/harness-ci/index.html b/user-guide/ci/harness-ci/index.html index 49b10e5626..baad80653f 100644 --- a/user-guide/ci/harness-ci/index.html +++ b/user-guide/ci/harness-ci/index.html @@ -130,11 +130,11 @@
  • +
  • +
  • +
  • +
  • +
  • diff --git a/user-guide/ci/index.html b/user-guide/ci/index.html index a01a9dc917..147e1a27f2 100644 --- a/user-guide/ci/index.html +++ b/user-guide/ci/index.html @@ -130,11 +130,11 @@
  • +
  • +
  • +
  • +
  • +
  • diff --git a/user-guide/ci/travis-ci/index.html b/user-guide/ci/travis-ci/index.html index d3078f6646..d11eb0d3d3 100644 --- a/user-guide/ci/travis-ci/index.html +++ b/user-guide/ci/travis-ci/index.html @@ -130,11 +130,11 @@
  • +
  • +
  • +
  • +
  • +
  • diff --git a/user-guide/extensions/developing-extensions/index.html b/user-guide/extensions/developing-extensions/index.html index 88a6eb957f..6496e2dc12 100644 --- a/user-guide/extensions/developing-extensions/index.html +++ b/user-guide/extensions/developing-extensions/index.html @@ -130,11 +130,11 @@
  • +
  • +
  • +
  • +
  • +
  • diff --git a/user-guide/extensions/index.html b/user-guide/extensions/index.html index bddf48efb2..7159ccc1d9 100644 --- a/user-guide/extensions/index.html +++ b/user-guide/extensions/index.html @@ -130,11 +130,11 @@
  • +
  • +
  • +
  • +
  • +
  • diff --git a/user-guide/extensions/managing-extensions/index.html b/user-guide/extensions/managing-extensions/index.html index a8868b00eb..6947f03efd 100644 --- a/user-guide/extensions/managing-extensions/index.html +++ b/user-guide/extensions/managing-extensions/index.html @@ -130,11 +130,11 @@
  • +
  • +
  • +
  • +
  • +
  • diff --git a/user-guide/extensions/official-extensions/index.html b/user-guide/extensions/official-extensions/index.html index 0fc933a8be..5510fc2125 100644 --- a/user-guide/extensions/official-extensions/index.html +++ b/user-guide/extensions/official-extensions/index.html @@ -130,11 +130,11 @@
  • +
  • +
  • +
  • +
  • +
  • diff --git a/user-guide/extensions/quickstart/index.html b/user-guide/extensions/quickstart/index.html index 2356c8f6b2..c18a36c2a1 100644 --- a/user-guide/extensions/quickstart/index.html +++ b/user-guide/extensions/quickstart/index.html @@ -130,11 +130,11 @@
  • +
  • +
  • +
  • +
  • +
  • diff --git a/user-guide/index.html b/user-guide/index.html index b8a7725095..2a3e9b5268 100644 --- a/user-guide/index.html +++ b/user-guide/index.html @@ -130,11 +130,11 @@
  • +
  • +
  • +
  • +
  • +
  • diff --git a/user-guide/integrations/architect/index.html b/user-guide/integrations/architect/index.html index 98d9ca2131..e18a1420a4 100644 --- a/user-guide/integrations/architect/index.html +++ b/user-guide/integrations/architect/index.html @@ -130,11 +130,11 @@
  • +
  • +
  • +
  • +
  • +
  • diff --git a/user-guide/integrations/aws-cdk/index.html b/user-guide/integrations/aws-cdk/index.html index 441a0a761b..149215287b 100644 --- a/user-guide/integrations/aws-cdk/index.html +++ b/user-guide/integrations/aws-cdk/index.html @@ -130,11 +130,11 @@
  • +
  • +
  • +
  • +
  • +
  • diff --git a/user-guide/integrations/aws-cli/index.html b/user-guide/integrations/aws-cli/index.html index 6244bb61f8..fbb366d227 100644 --- a/user-guide/integrations/aws-cli/index.html +++ b/user-guide/integrations/aws-cli/index.html @@ -130,11 +130,11 @@
  • +
  • +
  • +
  • +
  • +
  • diff --git a/user-guide/integrations/aws-sam/index.html b/user-guide/integrations/aws-sam/index.html index f3a778f9d6..34a06a7c5b 100644 --- a/user-guide/integrations/aws-sam/index.html +++ b/user-guide/integrations/aws-sam/index.html @@ -130,11 +130,11 @@
  • +
  • +
  • +
  • +
  • +
  • diff --git a/user-guide/integrations/cdk-for-terraform/index.html b/user-guide/integrations/cdk-for-terraform/index.html index 3b13cc1d55..ef055262a5 100644 --- a/user-guide/integrations/cdk-for-terraform/index.html +++ b/user-guide/integrations/cdk-for-terraform/index.html @@ -130,11 +130,11 @@
  • +
  • +
  • +
  • +
  • +
  • diff --git a/user-guide/integrations/chalice/index.html b/user-guide/integrations/chalice/index.html index b9a474e555..aa53ed497b 100644 --- a/user-guide/integrations/chalice/index.html +++ b/user-guide/integrations/chalice/index.html @@ -130,11 +130,11 @@
  • +
  • +
  • +
  • +
  • +
  • diff --git a/user-guide/integrations/copilot/index.html b/user-guide/integrations/copilot/index.html index 570865983d..17ef19a6a8 100644 --- a/user-guide/integrations/copilot/index.html +++ b/user-guide/integrations/copilot/index.html @@ -130,11 +130,11 @@
  • +
  • +
  • +
  • +
  • +
  • diff --git a/user-guide/integrations/crossplane/index.html b/user-guide/integrations/crossplane/index.html index 5540f06552..5f8a54bd01 100644 --- a/user-guide/integrations/crossplane/index.html +++ b/user-guide/integrations/crossplane/index.html @@ -130,11 +130,11 @@
  • +
  • +
  • +
  • +
  • +
  • diff --git a/user-guide/integrations/gitpod/index.html b/user-guide/integrations/gitpod/index.html index 7d8d519bbd..13c75a7188 100644 --- a/user-guide/integrations/gitpod/index.html +++ b/user-guide/integrations/gitpod/index.html @@ -130,11 +130,11 @@
  • +
  • +
  • +
  • +
  • +
  • diff --git a/user-guide/integrations/index.html b/user-guide/integrations/index.html index 49294b0736..5e23871068 100644 --- a/user-guide/integrations/index.html +++ b/user-guide/integrations/index.html @@ -130,11 +130,11 @@
  • +
  • +
  • +
  • +
  • +
  • diff --git a/user-guide/integrations/kafka/index.html b/user-guide/integrations/kafka/index.html index a2f8a25f72..977d2a60ec 100644 --- a/user-guide/integrations/kafka/index.html +++ b/user-guide/integrations/kafka/index.html @@ -130,11 +130,11 @@
  • +
  • +
  • +
  • +
  • +
  • diff --git a/user-guide/integrations/pulumi/index.html b/user-guide/integrations/pulumi/index.html index 4cf16b5576..b8a9be8357 100644 --- a/user-guide/integrations/pulumi/index.html +++ b/user-guide/integrations/pulumi/index.html @@ -130,11 +130,11 @@
  • +
  • +
  • +
  • +
  • +
  • diff --git a/user-guide/integrations/sdks/cpp/index.html b/user-guide/integrations/sdks/cpp/index.html index d56530289b..c69bb0a8bf 100644 --- a/user-guide/integrations/sdks/cpp/index.html +++ b/user-guide/integrations/sdks/cpp/index.html @@ -130,11 +130,11 @@
  • +
  • +
  • +
  • +
  • +
  • diff --git a/user-guide/integrations/sdks/dotnet/index.html b/user-guide/integrations/sdks/dotnet/index.html index 53d75023fc..583580da40 100644 --- a/user-guide/integrations/sdks/dotnet/index.html +++ b/user-guide/integrations/sdks/dotnet/index.html @@ -130,11 +130,11 @@
  • +
  • +
  • +
  • +
  • +
  • diff --git a/user-guide/integrations/sdks/go/index.html b/user-guide/integrations/sdks/go/index.html index 4c5d0d40d5..fd26e734b5 100644 --- a/user-guide/integrations/sdks/go/index.html +++ b/user-guide/integrations/sdks/go/index.html @@ -130,11 +130,11 @@
  • +
  • +
  • +
  • +
  • +
  • diff --git a/user-guide/integrations/sdks/index.html b/user-guide/integrations/sdks/index.html index b6aeab6332..19ac8ca8a8 100644 --- a/user-guide/integrations/sdks/index.html +++ b/user-guide/integrations/sdks/index.html @@ -130,11 +130,11 @@
  • +
  • +
  • +
  • +
  • +
  • diff --git a/user-guide/integrations/sdks/java/index.html b/user-guide/integrations/sdks/java/index.html index 6830226bd2..3dbea322c1 100644 --- a/user-guide/integrations/sdks/java/index.html +++ b/user-guide/integrations/sdks/java/index.html @@ -130,11 +130,11 @@
  • +
  • +
  • +
  • +
  • +
  • diff --git a/user-guide/integrations/sdks/javascript/index.html b/user-guide/integrations/sdks/javascript/index.html index 19962874a8..2f60e3ce05 100644 --- a/user-guide/integrations/sdks/javascript/index.html +++ b/user-guide/integrations/sdks/javascript/index.html @@ -130,11 +130,11 @@
  • +
  • +
  • +
  • +
  • +
  • diff --git a/user-guide/integrations/sdks/php/index.html b/user-guide/integrations/sdks/php/index.html index 0d923b21a0..2c30232a68 100644 --- a/user-guide/integrations/sdks/php/index.html +++ b/user-guide/integrations/sdks/php/index.html @@ -130,11 +130,11 @@
  • +
  • +
  • +
  • +
  • +
  • diff --git a/user-guide/integrations/sdks/python/index.html b/user-guide/integrations/sdks/python/index.html index 202410c435..a60d24b309 100644 --- a/user-guide/integrations/sdks/python/index.html +++ b/user-guide/integrations/sdks/python/index.html @@ -130,11 +130,11 @@
  • +
  • +
  • +
  • +
  • +
  • diff --git a/user-guide/integrations/sdks/ruby/index.html b/user-guide/integrations/sdks/ruby/index.html index d6959de36c..1d08687406 100644 --- a/user-guide/integrations/sdks/ruby/index.html +++ b/user-guide/integrations/sdks/ruby/index.html @@ -130,11 +130,11 @@
  • +
  • +
  • +
  • +
  • +
  • diff --git a/user-guide/integrations/serverless-framework/index.html b/user-guide/integrations/serverless-framework/index.html index 4831817a44..918c129c19 100644 --- a/user-guide/integrations/serverless-framework/index.html +++ b/user-guide/integrations/serverless-framework/index.html @@ -130,11 +130,11 @@
  • +
  • +
  • +
  • +
  • +
  • diff --git a/user-guide/integrations/spring-cloud-function/index.html b/user-guide/integrations/spring-cloud-function/index.html index aba689c671..d7fc997d33 100644 --- a/user-guide/integrations/spring-cloud-function/index.html +++ b/user-guide/integrations/spring-cloud-function/index.html @@ -130,11 +130,11 @@
  • +
  • +
  • +
  • +
  • +
  • diff --git a/user-guide/integrations/terraform/index.html b/user-guide/integrations/terraform/index.html index 312e84bb3a..2ebd78f6f8 100644 --- a/user-guide/integrations/terraform/index.html +++ b/user-guide/integrations/terraform/index.html @@ -130,11 +130,11 @@
  • +
  • +
  • +
  • +
  • +
  • diff --git a/user-guide/integrations/testcontainers/index.html b/user-guide/integrations/testcontainers/index.html index eec50e9c2a..7c0944e5e0 100644 --- a/user-guide/integrations/testcontainers/index.html +++ b/user-guide/integrations/testcontainers/index.html @@ -130,11 +130,11 @@
  • +
  • +
  • +
  • +
  • +
  • diff --git a/user-guide/tools/cloud-pods/community/index.html b/user-guide/tools/cloud-pods/community/index.html index 27077cf277..dbbb85656d 100644 --- a/user-guide/tools/cloud-pods/community/index.html +++ b/user-guide/tools/cloud-pods/community/index.html @@ -1,7 +1,7 @@ Community Cloud Pods | Docs
  • +
  • +
  • +
  • +
  • +
  • @@ -283,10 +283,10 @@
  • Community Cloud Pods

    Get started with LocalStack Community Cloud Pods to to save and load your container state at will

    LocalStack supports Community Cloud Pods to give our community users a limited Cloud Pods experience. Using Community Cloud Pods, you get two commands: save and load to save the container state in a Cloud Pod and dump it into their running LocalStack container at any given time, respectively.

    Getting started

    In this getting started guide, we will demonstrate how community users can leverage Community Cloud Pods to save the state of their running LocalStack instance permanently. To get started, you would only need awscli installed. We intend this feature to be open to community users; hence no LOCALSTACK_API_KEY is required.

    Let us start by creating some AWS resources in LocalStack. Just a mere example, let us create a S3 bucket and a SQS queue:

    $ awslocal s3 mb s3://test
    + Create project issue
    Table of Contents

    Community Cloud Pods

    Get started with LocalStack Community Cloud Pods to to save and load your container state at will

    LocalStack supports Community Cloud Pods to give our community users a limited Cloud Pods experience. Using Community Cloud Pods, you get two commands: save and load to save the container state in a Cloud Pod and dump it into their running LocalStack container at any given time, respectively.

    Getting started

    In this getting started guide, we will demonstrate how community users can leverage Community Cloud Pods to save the state of their running LocalStack instance permanently. To get started, you would only need awscli installed. We intend this feature to be open to community users; hence no LOCALSTACK_API_KEY is required.

    Let us start by creating some AWS resources in LocalStack. Just a mere example, let us create a S3 bucket and a SQS queue:

    $ awslocal s3 mb s3://test
     $ awslocal sqs create-queue --queue-name test-queue

    Let us dump such a simple state into a Cloud Pod using the save command. This command takes a file URI as an argument and creates a ZIP file in the specified directory. Assuming we want to create a pod named awesome-pod in our Desktop folder, we will run the below commands to save an awesome-pod in your Desktop directory:

    $ localstack pod save file:///Users/<my_username>/Desktop/awesome-pod
     Cloud Pods file:///Users/<my_username>/Desktop/awesome-pod successfully exported

    This exported ZIP file now contains the state we previously created, and we can restore it at any time with the inverse command, i.e., load. For instance, the following command will restore the same state of a fresh instance of LocalStack:

    $ localstack pod load file:///Users/<my_username>/Desktop/awesome-pod
    -Cloud Pods file:///Users/<my_username>/Desktop/awesome-pod successfully loaded

    It is worth noting that the load command also allows loading a Cloud Pod stored at a given URL. We also provide a short-hand option to load Cloud Pods saved in a public GitHub repository. To showcase this possibility, we opened a new public repository at localstack/cloud-pods, where we started storing several Cloud Pods for demonstration purposes.

    For example, we uploaded a Cloud Pod named s3-trigger-thumbnail based on an official AWS documentation tutorial. This Cloud Pod stores a simple application consisting of two S3 buckets and a Lambda function. For each jpg image uploaded in one of the buckets, the Lamda function will create a thumbnail of it and store it in the other bucket.

    To load this Cloud Pod, you can run the following command:

    $ localstack pod load git://localstack/cloud-pods/s3-trigger-thumbnail

    To test the loaded pod, you can run the following command:

    $ awslocal s3 cp <path_to_file>.jpg s3://img-bucket

    To check the content of the destination bucket run the following command:

    $ awslocal s3 ls s3://img-bucket-resized

    Limitations

    Community Cloud Pods have some limitations:

    • Only Community-available AWS services can be saved and loaded in a Community Cloud Pod.
    • Users are responsible for storing their saved states. Pro users can use our Cloud Pods platform to make storing and sharing their saved states easier.
    • Cloud Pods for Community users do not support versioning out of the box.

    Last modified September 28, 2023: improve cloud pod remote docs (#837) (6546c3832)
    +Cloud Pods file:///Users/<my_username>/Desktop/awesome-pod successfully loaded

    It is worth noting that the load command also allows loading a Cloud Pod stored at a given URL. We also provide a short-hand option to load Cloud Pods saved in a public GitHub repository. To showcase this possibility, we opened a new public repository at localstack/cloud-pods, where we started storing several Cloud Pods for demonstration purposes.

    For example, we uploaded a Cloud Pod named s3-trigger-thumbnail based on an official AWS documentation tutorial. This Cloud Pod stores a simple application consisting of two S3 buckets and a Lambda function. For each jpg image uploaded in one of the buckets, the Lamda function will create a thumbnail of it and store it in the other bucket.

    To load this Cloud Pod, you can run the following command:

    $ localstack pod load git://localstack/cloud-pods/s3-trigger-thumbnail

    To test the loaded pod, you can run the following command:

    $ awslocal s3 cp <path_to_file>.jpg s3://img-bucket

    To check the content of the destination bucket run the following command:

    $ awslocal s3 ls s3://img-bucket-resized

    Limitations

    Community Cloud Pods have some limitations:


    \ No newline at end of file diff --git a/user-guide/tools/cloud-pods/getting-started/index.html b/user-guide/tools/cloud-pods/getting-started/index.html index 0041b85783..a31cb35d67 100644 --- a/user-guide/tools/cloud-pods/getting-started/index.html +++ b/user-guide/tools/cloud-pods/getting-started/index.html @@ -1,8 +1,4 @@ -Getting started with the Cloud Pods CLI | Docs +Getting started with the Cloud Pods | Docs

    Getting started with the Cloud Pods CLI

    LocalStack provides a command line tool to manage the state of your instance via Cloud Pods.

    With the LocalStack Cloud Pods command-line interface (CLI), the pod command, you can create cloud pods and manage them from a terminal. The Cloud Pods CLI is ideal in the following situations:

    • Taking a snapshot of your running LocalStack instance.
    • Sharing your snapshot across teams with LocalStack Team features.
    • Injecting snapshots into a running instance without a restart.

    Installation

    LocalStack Cloud Pods CLI is directly available with the LocalStack installation, and no further installation is required to get started. If you are a Pro user, we recommend you to export the LOCALSTACK_API_KEY as an environment variable to allow you to use the full spectrum of LocalStack Cloud Pods feature.

    This tutorial is intended for licensed users. The Community users can replicate a similar workflow by leveraging the save and load commands available to them. For more details, look at our Community Cloud Pods guide.

    Basic example

    In this tutorial, you’ll learn how to make a basic usage of LocalStack Cloud Pods CLI. This tutorial is intended for Pro users who wish to get more acquainted with Cloud Pods CLI. It assumes you have basic knowledge of:

    • LocalStack
    • awscli commands
    • Understanding of Cloud Pods workflow

    By the end of this tutorial, you would be able to create a snapshot of your running LocalStack instance, commit it and would be able to push this to your LocalStack account.

    Procedure

    To get started, start your LocalStack instance with your LOCALSTACK_API_KEY configured as an environment variable:

    1. Use the awslocal CLI to create AWS resources inside your running LocalStack instance.

      As an example, we will create a S3 bucket using the awslocal CLI and enter some data inside it:

      $ awslocal s3 mb s3://test
      -$ echo "hello world" > /tmp/hello-world
      -$ awslocal s3 cp /tmp/hello-world s3://test/hello-world
      -$ awslocal s3 ls s3://test/
    2. Save your Pod state using the save command by specifying the desired name as the first argument. This command will save the pod and register it to the remote platform. Optionally you can attach a message to the saved Cloud Pod with the --message flag:

      $ localstack pod save <pod-name> --message "<description-message>"
    3. Check the list of Cloud Pods available to you and your organization using the list command:

      $ localstack pod list
      -    ┏━━━━━━━━━━━━━━┳━━━━━━━━━━━┓
      -    ┃ local/remote ┃ Name      ┃
      -    ┡━━━━━━━━━━━━━━╇━━━━━━━━━━━┩
      -    │ local+remote │ pod-name  │
      -    └──────────────┴───────────┘
    4. Optional: You can inspect the contents of a Cloud Pod using the inspect command:

      $ localstack pod inspect --name <pod-name>
      -    - 000000000000
      -        - S3
      -        - global
      -            - listBuckets
      -            - Buckets
      -                - 0
      -                - Name = test
      -                - CreationDate = 2022-10-04T17:03:47.000Z
      -            - Owner
      -                - DisplayName = webfile
      -                - ID = bcaf1ffd86f41161ca5fb16fd081034f
    5. On an alternate machine, start LocalStack with the API key configured, and pull the Cloud Pod we created previously using load command with the Cloud Pod name as the first argument:

      $ localstack pod load <pod-name>
      +
      Improve our documentation
      Create documentation issue + Create project issue
    Table of Contents

    Getting started with the Cloud Pods

    Get started with Cloud Pods to manage the state of your LocalStack instance state

    Using the LocalStack Cloud Pods command-line interface (CLI) via the pod command enables you to create and manage cloud pods directly from your terminal. The Cloud Pods CLI is particularly useful in these scenarios:

    • Saving a snapshot of your active and running LocalStack instance.
    • Sharing your snapshots with teams using LocalStack’s collaboration features.
    • Pulling snapshots to a running instance without needing to restart it.

    Installation

    The LocalStack Cloud Pods CLI is included in the LocalStack CLI installation, so there’s no need for additional installations to begin using it. If you’re a licensed user, we suggest setting the LOCALSTACK_API_KEY as an environment variable. This enables you to access the complete range of LocalStack Cloud Pods features.

    You can access the Cloud Pods CLI by running the pod command from your terminal.

    $ localstack pod --help
    +Usage: localstack pod [OPTIONS] COMMAND [ARGS]...
    +
    + Manage the state of your instance via Cloud Pods. - Done.

    Let’s check the S3 buckets in our Cloud Pod:

    $ awslocal s3 ls s3://test/
    +Options:
    +  -h, --help  Show this message and exit.
     
    -   2022-10-04 22:33:54         12 hello-world

  • Optional: You can make the Cloud Pod available to users outside your organization by making it public:

    $ localstack pod save <pod-name> --visibility public
  • For a more detailed manual, refer to our command-line interface (CLI) guide. To check your Pods on the LocalStack Web user interface, navigate to Cloud Pods page.


    Last modified December 1, 2022: LocalStack Beta Docs (#337) (28576f899)
    +Commands: + delete Delete a Cloud Pod + inspect + list List all available Cloud Pods + load + remote Manage cloud pod remotes + save Create a new Cloud Pod + versions +

    Getting started

    This guide is designed for users new to Cloud Pods and assumes basic knowledge of the LocalStack CLI and our awslocal wrapper script.

    Start your LocalStack container using your preferred method. We will demonstrate how you can save a snapshot of your active LocalStack instance into your LocalStack account, and pull it to a running instance.

    Create AWS resources

    You can use the awslocal CLI to create new AWS resources within your active LocalStack instance. For example, you can create an S3 bucket and add data to it using the awslocal CLI:

    $ awslocal s3 mb s3://test
    +$ echo "hello world" > /tmp/hello-world
    +$ awslocal s3 cp /tmp/hello-world s3://test/hello-world
    +$ awslocal s3 ls s3://test/

    Save your Cloud Pod state

    You can now your Pod state using the save command, specifying the desired Cloud Pod name as the first argument. This action will save the pod and register it with the LocalStack Web Application:

    $ localstack pod save s3-test
    +
    +Cloud Pod `s3-test` successfully created ✅ +Version: 1 +Remote: platform +Services: s3 +

    Optionally, you can include a message with the saved Cloud Pod using the --message flag.

    You can access the list of available Cloud Pods for both you and your organization by utilizing the list command:

    $ localstack pod list
    +
    +┏━━━━━━━━━━━━━━━━━━━━━━━━━━━┳━━━━━━━━━━━━━┳━━━━━━━━━━━━━┓ +┃ Name ┃ Max Version ┃ Last Change ┃ +┡━━━━━━━━━━━━━━━━━━━━━━━━━━━╇━━━━━━━━━━━━━╇━━━━━━━━━━━━━┩ +│ s3-test │ 1 │ n/a │ +└───────────────────────────┴─────────────┴─────────────┘ +

    Inspect the contents of a Cloud Pod

    1. Optional: You can inspect the contents of a Cloud Pod using the inspect command:
    $ localstack pod inspect s3-test --format json
    +
    +{ + "000000000000": { + "S3": { + "global": { + "listBuckets": { + "Buckets": [ + { + "Name": "test", + "CreationDate": "2023-10-03T07:19:31.000Z" + } + ], + } + } + } + } +} +

    Pull your Pod state

    On a separate machine, start LocalStack while ensuring the API key is properly configured. Then, retrieve the previously created Cloud Pod by employing the load command, specifying the Cloud Pod name as the first argument:

    $ localstack pod load s3-test
    +
    +Cloud Pod s3-test successfully loaded +

    Let’s examine the S3 buckets within our Cloud Pod:

    $ awslocal s3 ls s3://test/
    +
    +2022-10-04 22:33:54 12 hello-world +

    For comprehensive instructions, navigate to our Command-Line Interface (CLI) Guide. To access your Cloud Pods through the LocalStack Web Application, simply go to the Cloud Pods page.


    Last modified October 13, 2023: rework the cloud pods documentation (#840) (5cb275019)
    \ No newline at end of file diff --git a/user-guide/tools/cloud-pods/index.html b/user-guide/tools/cloud-pods/index.html index 6d15ba4b34..39db859188 100644 --- a/user-guide/tools/cloud-pods/index.html +++ b/user-guide/tools/cloud-pods/index.html @@ -130,11 +130,11 @@
  • +
  • +
  • +
  • +
  • +
  • @@ -283,8 +283,7 @@
  • Cloud Pods

    Cloud Pods provides a new way of collaborating in cloud application development workflows.

    Cloud Pods are a mechanism that allows you to take a snapshot of the state in your current LocalStack instance, persist it to a storage backend, and easily share it with your team members.

    Persistence versus Cloud Pods

    While the Persistence feature ensures that the service state survives container restarts, Cloud Pods go beyond and allow more fine-grained control over your state.

    Instead of simply restoring a state when restarting LocalStack, Cloud Pods allow you to take snapshots of your local instance (with the save command) and inject such snapshots into a running instance (with the load command) without requiring a restart.

    In addition, we provide a remote storage backend that can be used to store the state of your running application and share it with your team members.

    You can interact with Cloud Pods via the Web UI, and to load and store the persistent state of pods, you can use the localstack command-line interface (CLI).

    Cloud Pods Web UI


    Getting started with the Cloud Pods CLI

    LocalStack provides a command line tool to manage the state of your instance via Cloud Pods.

    Community Cloud Pods

    Get started with LocalStack Community Cloud Pods to to save and load your container state at will

    Cloud Pod Remotes

    The reference guide for LocalStack Cloud Pods remotes and how to get started on using them!

    Cloud Pods CLI command reference

    The reference guide for LocalStack Cloud Pods CLI commands and how to get started on using them!

    Cloud Pods Launchpad

    The LocalStack Cloud Pods Launchpad offers the easiest way of sharing and injecting cloud pods directly from your repositories or via a simple URL.


    + Create project issue
    Table of Contents

    Cloud Pods

    Cloud Pods provides a new way of collaborating in cloud application development workflows.

    Introduction

    Cloud Pods are a mechanism that allows you to take a snapshot of the state in your current LocalStack instance, persist it to a storage backend, and easily share it with your team members.

    Persistence versus Cloud Pods

    Cloud Pods & Persistence

    The Persistence feature ensures that the service state persists across container restarts. In contrast, Cloud Pods provide more detailed control over your state.

    Rather than just restoring a state during LocalStack restarts, Cloud Pods enable you to capture snapshots of your local instance using the save command and inject these snapshots into a running instance using the load command, all without needing to perform a full restart.

    In addition, LocalStack provides a remote storage backend that can be used to store the state of your running application and share it with your team members.

    Getting started

    You can interact with Cloud Pods via the LocalStack Web Application. To save and load the persistent state of Cloud Pods, you can use the Cloud Pods command-line interface (CLI).

    Cloud Pods Web UI


    Getting started with the Cloud Pods

    Get started with Cloud Pods to manage the state of your LocalStack instance state

    Cloud Pods CLI command reference

    Reference guide for LocalStack Cloud Pods CLI commands and how to get started on using them!

    Cloud Pod Remotes

    The reference guide for LocalStack Cloud Pods remotes and how to get started on using them!

    Cloud Pods Launchpad

    Get started with Cloud Pods Launchpad to share and inject Cloud Pods into your LocalStack instance via a URL

    Community Cloud Pods

    Get started with LocalStack Community Cloud Pods to to save and load your container state at will


    \ No newline at end of file diff --git a/user-guide/tools/cloud-pods/index.xml b/user-guide/tools/cloud-pods/index.xml index c5b0ebf475..ed48058aed 100644 --- a/user-guide/tools/cloud-pods/index.xml +++ b/user-guide/tools/cloud-pods/index.xml @@ -1,109 +1,185 @@ -Docs – Cloud Pods/user-guide/tools/cloud-pods/Recent content in Cloud Pods on DocsHugo -- gohugo.ioUser-Guide: Getting started with the Cloud Pods CLI/user-guide/tools/cloud-pods/getting-started/Mon, 01 Jan 0001 00:00:00 +0000/user-guide/tools/cloud-pods/getting-started/ -<p>With the LocalStack Cloud Pods command-line interface (CLI), the <code>pod</code> command, you can create cloud pods and manage them from a terminal. The Cloud Pods CLI is ideal in the following situations:</p> +Docs – Cloud Pods/user-guide/tools/cloud-pods/Recent content in Cloud Pods on DocsHugo -- gohugo.ioUser-Guide: Getting started with the Cloud Pods/user-guide/tools/cloud-pods/getting-started/Mon, 01 Jan 0001 00:00:00 +0000/user-guide/tools/cloud-pods/getting-started/ +<p>Using the LocalStack Cloud Pods command-line interface (CLI) via the <code>pod</code> command enables you to create and manage cloud pods directly from your terminal. The Cloud Pods CLI is particularly useful in these scenarios:</p> <ul> -<li>Taking a snapshot of your running LocalStack instance.</li> -<li>Sharing your snapshot across teams with LocalStack Team features.</li> -<li>Injecting snapshots into a running instance without a restart.</li> +<li>Saving a snapshot of your active and running LocalStack instance.</li> +<li>Sharing your snapshots with teams using LocalStack&rsquo;s collaboration features.</li> +<li>Pulling snapshots to a running instance without needing to restart it.</li> </ul> <h2 id="installation">Installation</h2> -<p>LocalStack Cloud Pods CLI is directly available with the LocalStack installation, and no further installation is required to get started. If you are a Pro user, we recommend you to export the <code>LOCALSTACK_API_KEY</code> as an environment variable to allow you to use the full spectrum of LocalStack Cloud Pods feature.</p> -<p>This tutorial is intended for licensed users. The Community users can replicate a similar workflow by leveraging the <code>save</code> and <code>load</code> commands available to them. For more details, look at our <a href="/user-guide/tools/cloud-pods/community/">Community Cloud Pods guide</a>.</p> -<h2 id="basic-example">Basic example</h2> -<p>In this tutorial, you&rsquo;ll learn how to make a basic usage of LocalStack Cloud Pods CLI. This tutorial is intended for Pro users who wish to get more acquainted with Cloud Pods CLI. It assumes you have basic knowledge of:</p> -<ul> -<li>LocalStack</li> -<li><code>awscli</code> commands</li> -<li>Understanding of Cloud Pods workflow</li> -</ul> -<p>By the end of this tutorial, you would be able to create a snapshot of your running LocalStack instance, commit it and would be able to push this to your LocalStack account.</p> -<h3 id="procedure">Procedure</h3> -<p>To get started, start your LocalStack instance with your <code>LOCALSTACK_API_KEY</code> configured as an environment variable:</p> -<ol> -<li> -<p>Use the <code>awslocal</code> CLI to create AWS resources inside your running LocalStack instance.</p> -<p>As an example, we will create a S3 bucket using the <code>awslocal</code> CLI and enter some data inside it:</p> +<p>The LocalStack Cloud Pods CLI is included in the <a href="https://docs.localstack.cloud/getting-started/installation/#localstack-cli">LocalStack CLI installation</a>, so there&rsquo;s no need for additional installations to begin using it. If you&rsquo;re a licensed user, we suggest setting the <code>LOCALSTACK_API_KEY</code> as an environment variable. This enables you to access the complete range of LocalStack Cloud Pods features.</p> +<p>You can access the Cloud Pods CLI by running the <code>pod</code> command from your terminal.</p> +<div class="highlight"><pre tabindex="0" style="background-color:#f8f8f8;-moz-tab-size:4;-o-tab-size:4;tab-size:4;"><code class="language-text" data-lang="text"><span style="display:flex;"><span><span class="command-prefix">$ </span>localstack pod --help +</span></span><span style="display:flex;"><span>Usage: localstack pod [OPTIONS] COMMAND [ARGS]... +</span></span><span style="display:flex;"><span><div class="disable-copy"> +</span></span><span style="display:flex;"><span> Manage the state of your instance via Cloud Pods. +</span></span><span style="display:flex;"><span> +</span></span><span style="display:flex;"><span>Options: +</span></span><span style="display:flex;"><span> -h, --help Show this message and exit. +</span></span><span style="display:flex;"><span> +</span></span><span style="display:flex;"><span>Commands: +</span></span><span style="display:flex;"><span> delete Delete a Cloud Pod +</span></span><span style="display:flex;"><span> inspect +</span></span><span style="display:flex;"><span> list List all available Cloud Pods +</span></span><span style="display:flex;"><span> load +</span></span><span style="display:flex;"><span> remote Manage cloud pod remotes +</span></span><span style="display:flex;"><span> save Create a new Cloud Pod +</span></span><span style="display:flex;"><span> versions +</span></span><span style="display:flex;"><span></div></span></span></code></pre></div> +<h2 id="getting-started">Getting started</h2> +<p>This guide is designed for users new to Cloud Pods and assumes basic knowledge of the LocalStack CLI and our <a href="https://github.com/localstack/awscli-local"><code>awslocal</code></a> wrapper script.</p> +<p>Start your LocalStack container using your preferred method. We will demonstrate how you can save a snapshot of your active LocalStack instance into your LocalStack account, and pull it to a running instance.</p> +<h3 id="create-aws-resources">Create AWS resources</h3> +<p>You can use the <code>awslocal</code> CLI to create new AWS resources within your active LocalStack instance. For example, you can create an S3 bucket and add data to it using the <code>awslocal</code> CLI:</p> <div class="highlight"><pre tabindex="0" style="background-color:#f8f8f8;-moz-tab-size:4;-o-tab-size:4;tab-size:4;"><code class="language-text" data-lang="text"><span style="display:flex;"><span><span class="command-prefix">$ </span>awslocal s3 mb s3://test </span></span><span style="display:flex;"><span><span class="command-prefix">$ </span>echo &#34;hello world&#34; &gt; /tmp/hello-world </span></span><span style="display:flex;"><span><span class="command-prefix">$ </span>awslocal s3 cp /tmp/hello-world s3://test/hello-world </span></span><span style="display:flex;"><span><span class="command-prefix">$ </span>awslocal s3 ls s3://test/</span></span></code></pre></div> -</li> -<li> -<p>Save your Pod state using the <code>save</code> command by specifying the desired name as the first argument. This command will save the pod and register it to the remote platform. Optionally you can attach a message to the saved Cloud Pod with the <code>--message</code> flag:</p> -<div class="highlight"><pre tabindex="0" style="background-color:#f8f8f8;-moz-tab-size:4;-o-tab-size:4;tab-size:4;"><code class="language-text" data-lang="text"><span style="display:flex;"><span><span class="command-prefix">$ </span>localstack pod save &lt;pod-name&gt; --message &#34;&lt;description-message&gt;&#34;</span></span></code></pre></div> -</li> -<li> -<p>Check the list of Cloud Pods available to you and your organization using the <code>list</code> command:</p> +<h3 id="save-your-cloud-pod-state">Save your Cloud Pod state</h3> +<p>You can now your Pod state using the <code>save</code> command, specifying the desired Cloud Pod name as the first argument. This action will save the pod and register it with the LocalStack Web Application:</p> +<div class="highlight"><pre tabindex="0" style="background-color:#f8f8f8;-moz-tab-size:4;-o-tab-size:4;tab-size:4;"><code class="language-text" data-lang="text"><span style="display:flex;"><span><span class="command-prefix">$ </span>localstack pod save s3-test +</span></span><span style="display:flex;"><span><div class="disable-copy"> +</span></span><span style="display:flex;"><span>Cloud Pod `s3-test` successfully created ✅ +</span></span><span style="display:flex;"><span>Version: 1 +</span></span><span style="display:flex;"><span>Remote: platform +</span></span><span style="display:flex;"><span>Services: s3 +</span></span><span style="display:flex;"><span></div></span></span></code></pre></div> +<p>Optionally, you can include a message with the saved Cloud Pod using the <code>--message</code> flag.</p> +<p>You can access the list of available Cloud Pods for both you and your organization by utilizing the <code>list</code> command:</p> <div class="highlight"><pre tabindex="0" style="background-color:#f8f8f8;-moz-tab-size:4;-o-tab-size:4;tab-size:4;"><code class="language-text" data-lang="text"><span style="display:flex;"><span><span class="command-prefix">$ </span>localstack pod list -</span></span><span style="display:flex;"><span> ┏━━━━━━━━━━━━━━┳━━━━━━━━━━━┓ -</span></span><span style="display:flex;"><span> ┃ local/remote ┃ Name ┃ -</span></span><span style="display:flex;"><span> ┡━━━━━━━━━━━━━━╇━━━━━━━━━━━┩ -</span></span><span style="display:flex;"><span> │ local+remote │ pod-name │ -</span></span><span style="display:flex;"><span> └──────────────┴───────────┘</span></span></code></pre></div> -</li> -<li> -<p>Optional: You can inspect the contents of a Cloud Pod using the <code>inspect</code> command:</p> -<div class="highlight"><pre tabindex="0" style="background-color:#f8f8f8;-moz-tab-size:4;-o-tab-size:4;tab-size:4;"><code class="language-text" data-lang="text"><span style="display:flex;"><span><span class="command-prefix">$ </span>localstack pod inspect --name &lt;pod-name&gt; -</span></span><span style="display:flex;"><span> - 000000000000 -</span></span><span style="display:flex;"><span> - S3 -</span></span><span style="display:flex;"><span> - global -</span></span><span style="display:flex;"><span> - listBuckets -</span></span><span style="display:flex;"><span> - Buckets -</span></span><span style="display:flex;"><span> - 0 -</span></span><span style="display:flex;"><span> - Name = test -</span></span><span style="display:flex;"><span> - CreationDate = 2022-10-04T17:03:47.000Z -</span></span><span style="display:flex;"><span> - Owner -</span></span><span style="display:flex;"><span> - DisplayName = webfile -</span></span><span style="display:flex;"><span> - ID = bcaf1ffd86f41161ca5fb16fd081034f</span></span></code></pre></div> -</li> -<li> -<p>On an alternate machine, start LocalStack with the API key configured, and pull the Cloud Pod we created previously using <code>load</code> command with the Cloud Pod name as the first argument:</p> -<div class="highlight"><pre tabindex="0" style="background-color:#f8f8f8;-moz-tab-size:4;-o-tab-size:4;tab-size:4;"><code class="language-text" data-lang="text"><span style="display:flex;"><span><span class="command-prefix">$ </span>localstack pod load &lt;pod-name&gt; -</span></span><span style="display:flex;"><span> -</span></span><span style="display:flex;"><span> Done.</span></span></code></pre></div> -<p>Let&rsquo;s check the S3 buckets in our Cloud Pod: -<div class="highlight"><pre tabindex="0" style="background-color:#f8f8f8;-moz-tab-size:4;-o-tab-size:4;tab-size:4;"><code class="language-text" data-lang="text"><span style="display:flex;"><span><span class="command-prefix">$ </span>awslocal s3 ls s3://test/ -</span></span><span style="display:flex;"><span> -</span></span><span style="display:flex;"><span> 2022-10-04 22:33:54 12 hello-world</span></span></code></pre></div> -</p> -</li> -<li> -<p>Optional: You can make the Cloud Pod available to users outside your organization by making it public:</p> -<div class="highlight"><pre tabindex="0" style="background-color:#f8f8f8;-moz-tab-size:4;-o-tab-size:4;tab-size:4;"><code class="language-text" data-lang="text"><span style="display:flex;"><span><span class="command-prefix">$ </span>localstack pod save &lt;pod-name&gt; --visibility public</span></span></code></pre></div> -</li> +</span></span><span style="display:flex;"><span><div class="disable-copy"> +</span></span><span style="display:flex;"><span>┏━━━━━━━━━━━━━━━━━━━━━━━━━━━┳━━━━━━━━━━━━━┳━━━━━━━━━━━━━┓ +</span></span><span style="display:flex;"><span>┃ Name ┃ Max Version ┃ Last Change ┃ +</span></span><span style="display:flex;"><span>┡━━━━━━━━━━━━━━━━━━━━━━━━━━━╇━━━━━━━━━━━━━╇━━━━━━━━━━━━━┩ +</span></span><span style="display:flex;"><span>│ s3-test │ 1 │ n/a │ +</span></span><span style="display:flex;"><span>└───────────────────────────┴─────────────┴─────────────┘ +</span></span><span style="display:flex;"><span></div></span></span></code></pre></div> +<h3 id="inspect-the-contents-of-a-cloud-pod">Inspect the contents of a Cloud Pod</h3> +<ol start="4"> +<li>Optional: You can inspect the contents of a Cloud Pod using the <code>inspect</code> command:</li> </ol> -<p>For a more detailed manual, refer to our <a href="/user-guide/tools/cloud-pods/pods-cli/">command-line interface (CLI) guide</a>. To check your Pods on the LocalStack Web user interface, navigate to <a href="https://app.localstack.cloud/pods">Cloud Pods page</a>.</p>User-Guide: Community Cloud Pods/user-guide/tools/cloud-pods/community/Mon, 01 Jan 0001 00:00:00 +0000/user-guide/tools/cloud-pods/community/ -<p>LocalStack supports Community Cloud Pods to give our community users a limited Cloud Pods experience. Using Community Cloud Pods, you get two commands: <code>save</code> and <code>load</code> to save the container state in a Cloud Pod and dump it into their running LocalStack container at any given time, respectively.</p> -<h2 id="getting-started">Getting started</h2> -<p>In this getting started guide, we will demonstrate how community users can leverage Community Cloud Pods to save the state of their running LocalStack instance permanently. To get started, you would only need <code>awscli</code> installed. We intend this feature to be open to community users; hence no <code>LOCALSTACK_API_KEY</code> is required.</p> -<p>Let us start by creating some AWS resources in LocalStack. Just a mere example, let us create a S3 bucket and a SQS queue:</p> -<div class="highlight"><pre tabindex="0" style="background-color:#f8f8f8;-moz-tab-size:4;-o-tab-size:4;tab-size:4;"><code class="language-text" data-lang="text"><span style="display:flex;"><span><span class="command-prefix">$ </span>awslocal s3 mb s3://test -</span></span><span style="display:flex;"><span><span class="command-prefix">$ </span>awslocal sqs create-queue --queue-name test-queue</span></span></code></pre></div> -<p>Let us dump such a simple state into a Cloud Pod using the <code>save</code> command. This command takes a file URI as an argument and creates a ZIP file in the specified directory. Assuming we want to create a pod named <code>awesome-pod</code> in our Desktop folder, we will run the below commands to save an <code>awesome-pod</code> in your Desktop directory:</p> -<div class="highlight"><pre tabindex="0" style="background-color:#f8f8f8;-moz-tab-size:4;-o-tab-size:4;tab-size:4;"><code class="language-text" data-lang="text"><span style="display:flex;"><span><span class="command-prefix">$ </span>localstack pod save file:///Users/&lt;my_username&gt;/Desktop/awesome-pod -</span></span><span style="display:flex;"><span>Cloud Pods file:///Users/&lt;my_username&gt;/Desktop/awesome-pod successfully exported</span></span></code></pre></div> -<p>This exported ZIP file now contains the state we previously created, and we can restore it at any time with the inverse command, i.e., <code>load</code>. For instance, the following command will restore the same state of a fresh instance of LocalStack:</p> -<div class="highlight"><pre tabindex="0" style="background-color:#f8f8f8;-moz-tab-size:4;-o-tab-size:4;tab-size:4;"><code class="language-text" data-lang="text"><span style="display:flex;"><span><span class="command-prefix">$ </span>localstack pod load file:///Users/&lt;my_username&gt;/Desktop/awesome-pod -</span></span><span style="display:flex;"><span>Cloud Pods file:///Users/&lt;my_username&gt;/Desktop/awesome-pod successfully loaded</span></span></code></pre></div> -<p>It is worth noting that the <code>load</code> command also allows loading a Cloud Pod stored at a given URL. We also provide a short-hand option to load Cloud Pods saved in a public GitHub repository. To showcase this possibility, we opened a new public repository at <a href="https://github.com/localstack/cloud-pods">localstack/cloud-pods</a>, where we started storing several Cloud Pods for demonstration purposes.</p> -<p>For example, we uploaded a Cloud Pod named <code>s3-trigger-thumbnail</code> based on an <a href="https://docs.aws.amazon.com/lambda/latest/dg/with-s3-tutorial.html">official AWS documentation tutorial</a>. This Cloud Pod stores a simple application consisting of two S3 buckets and a Lambda function. For each <code>jpg</code> image uploaded in one of the buckets, the Lamda function will create a thumbnail of it and store it in the other bucket.</p> -<p>To load this Cloud Pod, you can run the following command:</p> -<div class="highlight"><pre tabindex="0" style="background-color:#f8f8f8;-moz-tab-size:4;-o-tab-size:4;tab-size:4;"><code class="language-text" data-lang="text"><span style="display:flex;"><span><span class="command-prefix">$ </span>localstack pod load git://localstack/cloud-pods/s3-trigger-thumbnail</span></span></code></pre></div> -<div class="alert alert-primary" role="alert"> -<h4 class="alert-heading">Note</h4> -<p>The above command is equivalent to:</p> -<div class="highlight"><pre tabindex="0" style="background-color:#f8f8f8;-moz-tab-size:4;-o-tab-size:4;tab-size:4;"><code class="language-text" data-lang="text"><span style="display:flex;"><span><span class="command-prefix">$ </span>localstack pod load https://raw.githubusercontent.com/localstack/cloud-pods/main/s3-trigger-thumbnail</span></span></code></pre></div> -</div> -<p>To test the loaded pod, you can run the following command:</p> -<div class="highlight"><pre tabindex="0" style="background-color:#f8f8f8;-moz-tab-size:4;-o-tab-size:4;tab-size:4;"><code class="language-text" data-lang="text"><span style="display:flex;"><span><span class="command-prefix">$ </span>awslocal s3 cp &lt;path_to_file&gt;.jpg s3://img-bucket</span></span></code></pre></div> -<p>To check the content of the destination bucket run the following command:</p> -<div class="highlight"><pre tabindex="0" style="background-color:#f8f8f8;-moz-tab-size:4;-o-tab-size:4;tab-size:4;"><code class="language-text" data-lang="text"><span style="display:flex;"><span><span class="command-prefix">$ </span>awslocal s3 ls s3://img-bucket-resized</span></span></code></pre></div> -<h2 id="limitations">Limitations</h2> -<p>Community Cloud Pods have some limitations:</p> +<div class="highlight"><pre tabindex="0" style="background-color:#f8f8f8;-moz-tab-size:4;-o-tab-size:4;tab-size:4;"><code class="language-text" data-lang="text"><span style="display:flex;"><span><span class="command-prefix">$ </span>localstack pod inspect s3-test --format json +</span></span><span style="display:flex;"><span><div class="disable-copy"> +</span></span><span style="display:flex;"><span>{ +</span></span><span style="display:flex;"><span> &#34;000000000000&#34;: { +</span></span><span style="display:flex;"><span> &#34;S3&#34;: { +</span></span><span style="display:flex;"><span> &#34;global&#34;: { +</span></span><span style="display:flex;"><span> &#34;listBuckets&#34;: { +</span></span><span style="display:flex;"><span> &#34;Buckets&#34;: [ +</span></span><span style="display:flex;"><span> { +</span></span><span style="display:flex;"><span> &#34;Name&#34;: &#34;test&#34;, +</span></span><span style="display:flex;"><span> &#34;CreationDate&#34;: &#34;2023-10-03T07:19:31.000Z&#34; +</span></span><span style="display:flex;"><span> } +</span></span><span style="display:flex;"><span> ], +</span></span><span style="display:flex;"><span> } +</span></span><span style="display:flex;"><span> } +</span></span><span style="display:flex;"><span> } +</span></span><span style="display:flex;"><span> } +</span></span><span style="display:flex;"><span>} +</span></span><span style="display:flex;"><span></div></span></span></code></pre></div> +<h3 id="pull-your-pod-state">Pull your Pod state</h3> +<p>On a separate machine, start LocalStack while ensuring the API key is properly configured. Then, retrieve the previously created Cloud Pod by employing the <code>load</code> command, specifying the Cloud Pod name as the first argument:</p> +<div class="highlight"><pre tabindex="0" style="background-color:#f8f8f8;-moz-tab-size:4;-o-tab-size:4;tab-size:4;"><code class="language-text" data-lang="text"><span style="display:flex;"><span><span class="command-prefix">$ </span>localstack pod load s3-test +</span></span><span style="display:flex;"><span><div class="disable-copy"> +</span></span><span style="display:flex;"><span>Cloud Pod s3-test successfully loaded +</span></span><span style="display:flex;"><span></div></span></span></code></pre></div> +<p>Let&rsquo;s examine the S3 buckets within our Cloud Pod:</p> +<div class="highlight"><pre tabindex="0" style="background-color:#f8f8f8;-moz-tab-size:4;-o-tab-size:4;tab-size:4;"><code class="language-text" data-lang="text"><span style="display:flex;"><span><span class="command-prefix">$ </span>awslocal s3 ls s3://test/ +</span></span><span style="display:flex;"><span><div class="disable-copy"> +</span></span><span style="display:flex;"><span>2022-10-04 22:33:54 12 hello-world +</span></span><span style="display:flex;"><span></div></span></span></code></pre></div> +<p>For comprehensive instructions, navigate to our <a href="/user-guide/tools/cloud-pods/pods-cli/">Command-Line Interface (CLI) Guide</a>. To access your Cloud Pods through the LocalStack Web Application, simply go to the <a href="https://app.localstack.cloud/pods">Cloud Pods page</a>.</p>User-Guide: Cloud Pods CLI command reference/user-guide/tools/cloud-pods/pods-cli/Mon, 01 Jan 0001 00:00:00 +0000/user-guide/tools/cloud-pods/pods-cli/ +<p>This reference provides descriptions and example commands for LocalStack Cloud Pods CLI (<code>pod</code>) commands.</p> +<h2 id="syntax">Syntax</h2> +<p>Use the following syntax to run <code>localstack pod</code> commands from your terminal window:</p> +<div class="highlight"><pre tabindex="0" style="background-color:#f8f8f8;-moz-tab-size:4;-o-tab-size:4;tab-size:4;"><code class="language-text" data-lang="text"><span style="display:flex;"><span><span class="command-prefix">$ </span>localstack pod [OPTIONS] COMMAND [ARGS]</span></span></code></pre></div> +<p>In the above syntax:</p> <ul> -<li>Only Community-available AWS services can be saved and loaded in a Community Cloud Pod.</li> -<li>Users are responsible for storing their saved states. Pro users can use our Cloud Pods platform to make storing and sharing their saved states easier.</li> -<li>Cloud Pods for Community users do not support versioning out of the box.</li> -</ul>User-Guide: Cloud Pod Remotes/user-guide/tools/cloud-pods/remotes/Mon, 01 Jan 0001 00:00:00 +0000/user-guide/tools/cloud-pods/remotes/ +<li><code>COMMAND</code> specifies the operation you want to perform with your Cloud Pods (<code>save</code> or <code>load</code>).</li> +<li><code>OPTIONS</code> specifies the optional flags.</li> +<li><code>ARGS</code> specifies the command arguments.</li> +</ul> +<h2 id="commands">Commands</h2> +<p>The following section lists the available commands for the Cloud Pods CLI.</p> +<h3 id="save"><code>save</code></h3> +<p>The <code>save</code> command allows you to save a new version of a Cloud Pod. For licensed users, it provides the option to either save the Cloud Pod locally or upload it to the LocalStack platform.</p> +<p>To save the state locally, simply provide a local file URI as an argument when using the <code>save</code> command. Running the following command will create a file named <code>my-pod</code> in the specified location on the disk:</p> +<div class="highlight"><pre tabindex="0" style="background-color:#f8f8f8;-moz-tab-size:4;-o-tab-size:4;tab-size:4;"><code class="language-text" data-lang="text"><span style="display:flex;"><span><span class="command-prefix">$ </span>localstack pod save file://&lt;path_to_disk&gt;/my-pod</span></span></code></pre></div> +<p>The command mentioned above will produce a zip file named <code>my-pod</code> and save it to the designated location on your disk. If you intend to utilize the Cloud Pods platform, you should specify the Cloud Pod&rsquo;s name as an argument, as shown below:</p> +<div class="highlight"><pre tabindex="0" style="background-color:#f8f8f8;-moz-tab-size:4;-o-tab-size:4;tab-size:4;"><code class="language-text" data-lang="text"><span style="display:flex;"><span><span class="command-prefix">$ </span>localstack pod save my-pod</span></span></code></pre></div> +<p>The above command generates a new version of <code>my-pod</code> and uploads it on the LocalStack platform. When pushing an already existing pod, a new version is created and subsequently uploaded to the platform.</p> +<p>Users also have the option to select a specific subset of AWS services they want to include in the new Cloud Pod version using the <code>--services</code> option.</p> +<p>Users who want to make a Cloud Pod accessible outside their organization can mark it as <strong>public</strong> with the following command:</p> +<div class="highlight"><pre tabindex="0" style="background-color:#f8f8f8;-moz-tab-size:4;-o-tab-size:4;tab-size:4;"><code class="language-text" data-lang="text"><span style="display:flex;"><span><span class="command-prefix">$ </span>localstack pod save --name my-pod --visibility public</span></span></code></pre></div> +<p>The above command does not create a new version and requires a version already registered with the platform. The CLI manual for the <code>save</code> command is as follows:</p> +<div class="highlight"><pre tabindex="0" style="background-color:#f8f8f8;-moz-tab-size:4;-o-tab-size:4;tab-size:4;"><code class="language-text" data-lang="text"><span style="display:flex;"><span><span class="command-prefix">$ </span>localstack pod save --help +</span></span><span style="display:flex;"><span><div class="disable-copy"> +</span></span><span style="display:flex;"><span>Usage: localstack pod save [OPTIONS] URL_OR_NAME [REMOTE] +</span></span><span style="display:flex;"><span> +</span></span><span style="display:flex;"><span>Options: +</span></span><span style="display:flex;"><span> -m, --message TEXT Add a comment describing this Cloud Pod&#39;s version +</span></span><span style="display:flex;"><span> -s, --services TEXT Comma-delimited list of services to push in the Cloud Pod +</span></span><span style="display:flex;"><span> (all by default) +</span></span><span style="display:flex;"><span> --visibility [public|private] Set the visibility of the Cloud Pod [`public` or `private`]. +</span></span><span style="display:flex;"><span> Does not create a new version +</span></span><span style="display:flex;"><span> -f, --format [json] The formatting style for the save command output. +</span></span><span style="display:flex;"><span> -h, --help Show this message and exit. +</span></span><span style="display:flex;"><span></div></span></span></code></pre></div> +<h3 id="load"><code>load</code></h3> +<p>The <code>load</code> command is the inverse operation of <code>save</code>. It retrieves the content of a previously stored Cloud Pod from the local file system or the LocalStack platform and injects it into the LocalStack container.</p> +<p>The <code>load</code> command takes an argument that can either be a URI or a Cloud Pods name. By default, the injecting state updates the container state at a service level. The CLI manual for the <code>load</code> command is as follows:</p> +<div class="highlight"><pre tabindex="0" style="background-color:#f8f8f8;-moz-tab-size:4;-o-tab-size:4;tab-size:4;"><code class="language-text" data-lang="text"><span style="display:flex;"><span><span class="command-prefix">$ </span>localstack pod save --help +</span></span><span style="display:flex;"><span><div class="disable-copy"> +</span></span><span style="display:flex;"><span>Usage: localstack pod load [OPTIONS] URL_OR_NAME [REMOTE] +</span></span><span style="display:flex;"><span> +</span></span><span style="display:flex;"><span>Options: +</span></span><span style="display:flex;"><span> --merge [overwrite|merge] The merge strategy to adopt when loading the Cloud Pod [default: +</span></span><span style="display:flex;"><span> merge] +</span></span><span style="display:flex;"><span> -h, --help Show this message and exit. +</span></span><span style="display:flex;"><span></div></span></span></code></pre></div> +<h3 id="delete"><code>delete</code></h3> +<p>The <code>delete</code> command let users delete a Cloud Pod stored in the remote platform. The CLI manual for the <code>delete</code> command is as follows:</p> +<div class="highlight"><pre tabindex="0" style="background-color:#f8f8f8;-moz-tab-size:4;-o-tab-size:4;tab-size:4;"><code class="language-text" data-lang="text"><span style="display:flex;"><span><span class="command-prefix">$ </span>localstack pod delete --help +</span></span><span style="display:flex;"><span><div class="disable-copy"> +</span></span><span style="display:flex;"><span>Usage: localstack pod delete [OPTIONS] NAME +</span></span><span style="display:flex;"><span> +</span></span><span style="display:flex;"><span>Options: +</span></span><span style="display:flex;"><span> -h, --help Show this message and exit. +</span></span><span style="display:flex;"><span></div></span></span></code></pre></div> +<h3 id="inspect"><code>inspect</code></h3> +<p>The <code>inspect</code> command simply lets the user inspect the content of a Cloud Pod. The CLI manual for the <code>inspect</code> command is as follows:</p> +<div class="highlight"><pre tabindex="0" style="background-color:#f8f8f8;-moz-tab-size:4;-o-tab-size:4;tab-size:4;"><code class="language-text" data-lang="text"><span style="display:flex;"><span><span class="command-prefix">$ </span>localstack pod delete --help +</span></span><span style="display:flex;"><span><div class="disable-copy"> +</span></span><span style="display:flex;"><span>Usage: localstack pod inspect [OPTIONS] NAME +</span></span><span style="display:flex;"><span> +</span></span><span style="display:flex;"><span>Options: +</span></span><span style="display:flex;"><span> -f, --format [curses|rich|json] +</span></span><span style="display:flex;"><span> The formatting style for the inspect command output. +</span></span><span style="display:flex;"><span> [default: curses] +</span></span><span style="display:flex;"><span> -h, --help Show this message and exit. +</span></span><span style="display:flex;"><span></div></span></span></code></pre></div> +<h3 id="list">list</h3> +<p>The <code>list</code> command lists all of the available Cloud Pods. It shows all the pods available for a single user and its organization by default. The CLI manual for the <code>list</code> command is as follows:</p> +<div class="highlight"><pre tabindex="0" style="background-color:#f8f8f8;-moz-tab-size:4;-o-tab-size:4;tab-size:4;"><code class="language-text" data-lang="text"><span style="display:flex;"><span><span class="command-prefix">$ </span>localstack pod list --help +</span></span><span style="display:flex;"><span><div class="disable-copy"> +</span></span><span style="display:flex;"><span>Usage: localstack pod list [OPTIONS] [REMOTE] +</span></span><span style="display:flex;"><span> +</span></span><span style="display:flex;"><span>Options: +</span></span><span style="display:flex;"><span> -p, --public List all the available public Cloud Pods +</span></span><span style="display:flex;"><span> -f, --format [table|json] The formatting style for the list pods command output. [default: +</span></span><span style="display:flex;"><span> table] +</span></span><span style="display:flex;"><span> -h, --help Show this message and exit. +</span></span><span style="display:flex;"><span></div></span></span></code></pre></div> +<h3 id="versions">versions</h3> +<p>The <code>versions</code> command lists all the available versions of a Cloud Pod. The CLI manual for the <code>version</code> command is as follows:</p> +<div class="highlight"><pre tabindex="0" style="background-color:#f8f8f8;-moz-tab-size:4;-o-tab-size:4;tab-size:4;"><code class="language-text" data-lang="text"><span style="display:flex;"><span><span class="command-prefix">$ </span>localstack pod versions --help +</span></span><span style="display:flex;"><span><div class="disable-copy"> +</span></span><span style="display:flex;"><span>Usage: localstack pod versions [OPTIONS] NAME +</span></span><span style="display:flex;"><span> +</span></span><span style="display:flex;"><span>Options: +</span></span><span style="display:flex;"><span> -f, --format [table|json] The formatting style for the version command output. [default: +</span></span><span style="display:flex;"><span> table] +</span></span><span style="display:flex;"><span> -h, --help Show this message and exit. +</span></span><span style="display:flex;"><span></div></span></span></code></pre></div>User-Guide: Cloud Pod Remotes/user-guide/tools/cloud-pods/remotes/Mon, 01 Jan 0001 00:00:00 +0000/user-guide/tools/cloud-pods/remotes/ <p>A remote is the location where Cloud Pods are stored. By default, Cloud Pod artifacts are stored in the LocalStack platform. However, if your organization&rsquo;s data regulations or sovereignty requirements prohibit storing Cloud Pod assets in a remote storage infrastructure, you have the option to persist Cloud Pods in an on-premises storage location under your complete control.</p> <div class="alert alert-primary" role="alert"> <h4 class="alert-heading">Beta</h4> @@ -161,174 +237,68 @@ Cloud Pod Remotes is a beta feature exclusively accessible within the Team produ <div class="highlight"><pre tabindex="0" style="background-color:#f8f8f8;-moz-tab-size:4;-o-tab-size:4;tab-size:4;"><code class="language-text" data-lang="text"><span style="display:flex;"><span><span class="command-prefix">$ </span>localstack pod load my-pod oras-remote</span></span></code></pre></div> <h3 id="miscellaneous">Miscellaneous</h3> <p>Unless explicitly specified, all Cloud Pods commands default to targeting the LocalStack Platform as the storage remote. It&rsquo;s important to note that the CLI must be authenticated correctly with our Platform, and a Team/Enterprise subscription is mandatory.</p> -<p>Custom remote configurations are stored within the <a href="https://docs.localstack.cloud/references/filesystem/#localstack-volume-directory">LocalStack volume directory</a> and are managed by the LocalStack container. Consequently, when sharing Cloud Pods among your team using a custom remote, each team member must define the identical remote configuration. Once added, a remote persists even after LocalStack restarts.</p>User-Guide: Cloud Pods CLI command reference/user-guide/tools/cloud-pods/pods-cli/Mon, 01 Jan 0001 00:00:00 +0000/user-guide/tools/cloud-pods/pods-cli/ -<p>This reference provides descriptions and example commands for LocalStack Cloud Pods CLI (<code>pod</code>) commands.</p> -<h2 id="syntax">Syntax</h2> -<p>Use the following syntax to run <code>localstack pod</code> commands from your terminal window:</p> -<div class="highlight"><pre tabindex="0" style="background-color:#f8f8f8;-moz-tab-size:4;-o-tab-size:4;tab-size:4;"><code class="language-text" data-lang="text"><span style="display:flex;"><span><span class="command-prefix">$ </span>localstack pod [OPTIONS] COMMAND [ARGS]</span></span></code></pre></div> -<p>In the above syntax:</p> -<ul> -<li><code>COMMAND</code> specifies the operation you want to perform with your Cloud Pods (<code>save</code> or <code>load</code>).</li> -<li><code>OPTIONS</code> specifies the optional flags.</li> -<li><code>ARGS</code> specifies the command arguments.</li> -</ul> -<h2 id="commands">Commands</h2> -<p>The following section lists the available commands for the Cloud Pods CLI.</p> -<h3 id="save"><code>save</code></h3> -<p>The <code>save</code> command creates a new version of a Cloud Pod. Pro users can dump the Cloud Pod locally or upload it to the LocalStack platform. To dump the state locally, pass a local file URI as an argument to the <code>save</code> command. For instance, the following command:</p> -<div class="highlight"><pre tabindex="0" style="background-color:#f8f8f8;-moz-tab-size:4;-o-tab-size:4;tab-size:4;"><code class="language-text" data-lang="text"><span style="display:flex;"><span><span class="command-prefix">$ </span>localstack pod save file://&lt;path_to_disk&gt;/my-pod</span></span></code></pre></div> -<p>The above command will create a zip file named <code>my-pod</code> to the specified location on the disk. To use the Cloud Pods platform, specify the Cloud Pod&rsquo;s name as an argument, for example:</p> -<div class="highlight"><pre tabindex="0" style="background-color:#f8f8f8;-moz-tab-size:4;-o-tab-size:4;tab-size:4;"><code class="language-text" data-lang="text"><span style="display:flex;"><span><span class="command-prefix">$ </span>localstack pod save my-pod</span></span></code></pre></div> -<p>The above command creates a version of <code>my-pod</code> and registers it to our platform. Pushing already existing pod results in creating a new version and, eventually, uploading it to the platform. Users can also select a subset of AWS services they wish to incorporate in a new Cloud Pod version with the <code>--services</code> option.</p> -<p>Users who want to make a Cloud Pod accessible outside their organization can mark it as <strong>public</strong> with the following command:</p> -<div class="highlight"><pre tabindex="0" style="background-color:#f8f8f8;-moz-tab-size:4;-o-tab-size:4;tab-size:4;"><code class="language-text" data-lang="text"><span style="display:flex;"><span><span class="command-prefix">$ </span>localstack pod push --name &lt;pod_name&gt; --visibility public</span></span></code></pre></div> -<p>The above command does not create a new version and requires a version already registered with the platform. The CLI manual for the <code>save</code> command is as follows:</p> -<div class="highlight"><pre tabindex="0" style="background-color:#f8f8f8;-moz-tab-size:4;-o-tab-size:4;tab-size:4;"><code class="language-bash" data-lang="bash"><span style="display:flex;"><span>Usage: python -m localstack.cli.main pod save <span style="color:#ce5c00;font-weight:bold">[</span>OPTIONS<span style="color:#ce5c00;font-weight:bold">]</span> URL_OR_NAME -</span></span><span style="display:flex;"><span> -</span></span><span style="display:flex;"><span> Save the current state of the LocalStack container in a Cloud Pod. A Cloud Pod can be exported -</span></span><span style="display:flex;"><span> locally or registered within the LocalStack Pod<span style="color:#4e9a06">&#39;s platform (with a Pro license). An optional -</span></span></span><span style="display:flex;"><span><span style="color:#4e9a06"> message can be attached to any Cloud Pod. Furthermore, one could decide to export only a subset -</span></span></span><span style="display:flex;"><span><span style="color:#4e9a06"> of services with the optional --service option. -</span></span></span><span style="display:flex;"><span><span style="color:#4e9a06"> -</span></span></span><span style="display:flex;"><span><span style="color:#4e9a06"> To export on a local path run the following command: -</span></span></span><span style="display:flex;"><span><span style="color:#4e9a06"> localstack pod save file://&lt;path_on_disk&gt;/&lt;pod_name&gt; -</span></span></span><span style="display:flex;"><span><span style="color:#4e9a06"> -</span></span></span><span style="display:flex;"><span><span style="color:#4e9a06"> The output will be a &lt;pod_name&gt; zip file in the specified directory. This Cloud Pod instance can -</span></span></span><span style="display:flex;"><span><span style="color:#4e9a06"> be restored at any point in time with the load command. -</span></span></span><span style="display:flex;"><span><span style="color:#4e9a06"> -</span></span></span><span style="display:flex;"><span><span style="color:#4e9a06"> To use the LocalStack Pod&#39;</span>s platform, the desired Pod<span style="color:#4e9a06">&#39;s name only will suffice, e,g.: -</span></span></span><span style="display:flex;"><span><span style="color:#4e9a06"> -</span></span></span><span style="display:flex;"><span><span style="color:#4e9a06"> localstack pod save &lt;pod_name&gt; -</span></span></span><span style="display:flex;"><span><span style="color:#4e9a06"> -</span></span></span><span style="display:flex;"><span><span style="color:#4e9a06"> Please be aware that each following save invocation with the same name will result in a new -</span></span></span><span style="display:flex;"><span><span style="color:#4e9a06"> version being created. -</span></span></span><span style="display:flex;"><span><span style="color:#4e9a06"> -</span></span></span><span style="display:flex;"><span><span style="color:#4e9a06">Options: -</span></span></span><span style="display:flex;"><span><span style="color:#4e9a06"> -m, --message TEXT Add a comment describing this Cloud Pod&#39;</span>s version -</span></span><span style="display:flex;"><span> -s, --services TEXT Comma-delimited list of services to push in the Cloud Pod <span style="color:#ce5c00;font-weight:bold">(</span>all by default<span style="color:#ce5c00;font-weight:bold">)</span> -</span></span><span style="display:flex;"><span> --visibility TEXT Set the visibility of the Cloud Pod <span style="color:#ce5c00;font-weight:bold">[</span><span style="color:#4e9a06">`</span>public<span style="color:#4e9a06">`</span> or <span style="color:#4e9a06">`</span>private<span style="color:#4e9a06">`</span><span style="color:#ce5c00;font-weight:bold">]</span>. Does not -</span></span><span style="display:flex;"><span> create a new version -</span></span><span style="display:flex;"><span> --help Show this message and exit. -</span></span></code></pre></div> -<div class="alert alert-primary" role="alert"> -<h4 class="alert-heading">Note</h4> -Community users have access to a restricted version of the <code>save</code> command. -In particular, they can simply invoke the <code>save</code> command with a file URI as an argument. -</div> -<h3 id="load"><code>load</code></h3> -<p>The <code>load</code> command is the inverse operation of <code>save</code>. It retrieves the content of a previously stored Cloud Pod from the local file system or the Cloud Pod&rsquo;s platform and injects it into the application runtime.</p> -<p>The <code>load</code> command takes an argument that can either be a URI or a Cloud Pods name. While the first option is available to all users, the second is valid only for licensed ones.</p> -<p>By default, the injecting state updates the application runtime at a service level. Using the merge injection strategy, the state of all services specified in the injecting state is reflected precisely in the application runtime, while all other active services remain unchanged.</p> -<p>The <code>--strategy</code> option can be used to change such default injection behavior. More specifically, the overwrite strategy will ensure the application runtime is an exact instance of the injecting state. The deep-merge strategy will perform a fine-grain merge of the injecting state into the application runtime.</p> -<p>The CLI manual for the <code>load</code> command is as follows:</p> -<div class="highlight"><pre tabindex="0" style="background-color:#f8f8f8;-moz-tab-size:4;-o-tab-size:4;tab-size:4;"><code class="language-shell" data-lang="shell"><span style="display:flex;"><span>Usage: python -m localstack.cli.main pod load <span style="color:#ce5c00;font-weight:bold">[</span>OPTIONS<span style="color:#ce5c00;font-weight:bold">]</span> URL_OR_NAME -</span></span><span style="display:flex;"><span> -</span></span><span style="display:flex;"><span> Load a Cloud Pod into the running LocalStack container. Users can import Pods different sources: -</span></span><span style="display:flex;"><span> community users can store and retrieve Pods from <span style="color:#204a87">local</span> storage or any provided HTTP URL<span style="color:#000;font-weight:bold">;</span> -</span></span><span style="display:flex;"><span> licensed users can take advantage of the LocalStack Pod<span style="color:#4e9a06">&#39;s platform to ease the storage, -</span></span></span><span style="display:flex;"><span><span style="color:#4e9a06"> versioning, and retrieval of Pods. -</span></span></span><span style="display:flex;"><span><span style="color:#4e9a06"> -</span></span></span><span style="display:flex;"><span><span style="color:#4e9a06"> The --source option specifies a URI scheme that point to the Cloud Pod&#39;</span>s resources to import. -</span></span><span style="display:flex;"><span> -</span></span><span style="display:flex;"><span> We support the following protocols: -</span></span><span style="display:flex;"><span> localstack pod load file://&lt;path_to_disk&gt; -</span></span><span style="display:flex;"><span> localstack pod load https://&lt;some_url&gt; -</span></span><span style="display:flex;"><span> localstack pod load git://&lt;user&gt;/&lt;repo&gt;/&lt;local_repo_path&gt; -</span></span><span style="display:flex;"><span> -</span></span><span style="display:flex;"><span> The latter option is merely a shortcut <span style="color:#204a87;font-weight:bold">for</span> --source -</span></span><span style="display:flex;"><span> https://raw.githubusercontent.com/&lt;user&gt;/&lt;repo&gt;/&lt;branch&gt;/&lt;path&gt; -</span></span><span style="display:flex;"><span> -</span></span><span style="display:flex;"><span> Importing via a provided --source is available <span style="color:#204a87;font-weight:bold">for</span> all users. Licensed users can omit this -</span></span><span style="display:flex;"><span> option and simply provide a name <span style="color:#204a87;font-weight:bold">for</span> their Cloud Pods. -</span></span><span style="display:flex;"><span> -</span></span><span style="display:flex;"><span>Options: -</span></span><span style="display:flex;"><span> -s, --strategy TEXT Inject strategy <span style="color:#ce5c00;font-weight:bold">(</span>merge, overwrite, deep-merge<span style="color:#ce5c00;font-weight:bold">)</span>. -</span></span><span style="display:flex;"><span> --help Show this message and exit. -</span></span></code></pre></div> -<div class="alert alert-primary" role="alert"> -<h4 class="alert-heading">Note</h4> -Similar to the <code>save</code> command, the usage of the Cloud Pod&rsquo;s platform is restricted to licensed users. Community users can load a Cloud Pod from a local URI file, URL, or public GitHub repository. However, they have no access to Cloud Pods versioning. -</div> -<h3 id="delete"><code>delete</code></h3> -<p>The <code>delete</code> command let users delete a Cloud Pod stored in the remote platform. The CLI manual for the <code>delete</code> command is as follows:</p> -<div class="highlight"><pre tabindex="0" style="background-color:#f8f8f8;-moz-tab-size:4;-o-tab-size:4;tab-size:4;"><code class="language-shell" data-lang="shell"><span style="display:flex;"><span>Usage: python -m localstack.cli.main pod delete <span style="color:#ce5c00;font-weight:bold">[</span>OPTIONS<span style="color:#ce5c00;font-weight:bold">]</span> -</span></span><span style="display:flex;"><span> -</span></span><span style="display:flex;"><span> Delete a Cloud Pod register on the remove LocalStack Pod<span style="color:#4e9a06">&#39;s platform. This command will cancel -</span></span></span><span style="display:flex;"><span><span style="color:#4e9a06"> all the versions of a created Pod and won&#39;</span>t be reversible. -</span></span><span style="display:flex;"><span> -</span></span><span style="display:flex;"><span>Options: -</span></span><span style="display:flex;"><span> -n, --name TEXT Name of the Cloud Pod <span style="color:#ce5c00;font-weight:bold">[</span>required<span style="color:#ce5c00;font-weight:bold">]</span> -</span></span><span style="display:flex;"><span> --help Show this message and exit. -</span></span></code></pre></div><h3 id="inspect"><code>inspect</code></h3> -<p>The <code>inspect</code> command simply lets the user inspect the content of a Cloud Pod. The CLI manual for the <code>inspect</code> command is as follows:</p> -<div class="highlight"><pre tabindex="0" style="background-color:#f8f8f8;-moz-tab-size:4;-o-tab-size:4;tab-size:4;"><code class="language-shell" data-lang="shell"><span style="display:flex;"><span>Usage: python -m localstack.cli.main pod inspect <span style="color:#ce5c00;font-weight:bold">[</span>OPTIONS<span style="color:#ce5c00;font-weight:bold">]</span> -</span></span><span style="display:flex;"><span> -</span></span><span style="display:flex;"><span> Inspect the contents of a Cloud Pod -</span></span><span style="display:flex;"><span> -</span></span><span style="display:flex;"><span>Options: -</span></span><span style="display:flex;"><span> -n, --name TEXT Name of the Cloud Pod <span style="color:#ce5c00;font-weight:bold">[</span>required<span style="color:#ce5c00;font-weight:bold">]</span> -</span></span><span style="display:flex;"><span> -f, --format TEXT Format <span style="color:#ce5c00;font-weight:bold">(</span>curses, rich, json<span style="color:#ce5c00;font-weight:bold">)</span>. -</span></span><span style="display:flex;"><span> --help Show this message and exit. -</span></span></code></pre></div><h3 id="list">list</h3> -<p>The <code>list</code> command lists all of the available Cloud Pods. It shows all the pods available for a single user and its organization by default. If the <code>--public option is passed to the commands, it shows only the Cloud Pods marked as public and are, therefore, available to all licensed users. The CLI manual for the </code>list` command is as follows:</p> -<div class="highlight"><pre tabindex="0" style="background-color:#f8f8f8;-moz-tab-size:4;-o-tab-size:4;tab-size:4;"><code class="language-shell" data-lang="shell"><span style="display:flex;"><span>Usage: python -m localstack.cli.main pod list <span style="color:#ce5c00;font-weight:bold">[</span>OPTIONS<span style="color:#ce5c00;font-weight:bold">]</span> -</span></span><span style="display:flex;"><span> -</span></span><span style="display:flex;"><span> List all the Cloud Pods available <span style="color:#204a87;font-weight:bold">for</span> a single user, or <span style="color:#204a87;font-weight:bold">for</span> an entire organization, <span style="color:#204a87;font-weight:bold">if</span> the user -</span></span><span style="display:flex;"><span> is part of one. -</span></span><span style="display:flex;"><span> -</span></span><span style="display:flex;"><span> With the --public flag, it lists the all the available public Cloud Pods. A public Cloud Pod is -</span></span><span style="display:flex;"><span> available across the boundary of a user ond/or organization. In other words, any public Cloud -</span></span><span style="display:flex;"><span> Pod can be injected by any other user holding a LocalStack Pro <span style="color:#ce5c00;font-weight:bold">(</span>or above<span style="color:#ce5c00;font-weight:bold">)</span> license. -</span></span><span style="display:flex;"><span> -</span></span><span style="display:flex;"><span>Options: -</span></span><span style="display:flex;"><span> -p, --public List all the available public Cloud Pods -</span></span><span style="display:flex;"><span> --help Show this message and exit. -</span></span></code></pre></div><h3 id="versions">versions</h3> -<p>The <code>versions</code> command simply lists all the available versions of a Cloud Pod. The CLI manual for the <code>version</code> command is as follows:</p> -<div class="highlight"><pre tabindex="0" style="background-color:#f8f8f8;-moz-tab-size:4;-o-tab-size:4;tab-size:4;"><code class="language-shell" data-lang="shell"><span style="display:flex;"><span>Usage: python -m localstack.cli.main pod versions <span style="color:#ce5c00;font-weight:bold">[</span>OPTIONS<span style="color:#ce5c00;font-weight:bold">]</span> -</span></span><span style="display:flex;"><span> -</span></span><span style="display:flex;"><span> List the versions available <span style="color:#204a87;font-weight:bold">for</span> a Cloud Pod. Each invocation of the save <span style="color:#204a87">command</span> is going to -</span></span><span style="display:flex;"><span> create a new version <span style="color:#204a87;font-weight:bold">for</span> a named Cloud Pod, is a Pod with such name already does exist in the -</span></span><span style="display:flex;"><span> LocalStack Pods platform. -</span></span><span style="display:flex;"><span> -</span></span><span style="display:flex;"><span>Options: -</span></span><span style="display:flex;"><span> -n, --name TEXT Name of the Cloud Pod <span style="color:#ce5c00;font-weight:bold">[</span>required<span style="color:#ce5c00;font-weight:bold">]</span> -</span></span><span style="display:flex;"><span> --help Show this message and exit. -</span></span></code></pre></div>User-Guide: Cloud Pods Launchpad/user-guide/tools/cloud-pods/launchpad/Mon, 01 Jan 0001 00:00:00 +0000/user-guide/tools/cloud-pods/launchpad/ -<p>The LocalStack Cloud Pods Launchpad allows you to quickly share and inject cloud pods into a LocalStack instance.</p> +<p>Custom remote configurations are stored within the <a href="https://docs.localstack.cloud/references/filesystem/#localstack-volume-directory">LocalStack volume directory</a> and are managed by the LocalStack container. Consequently, when sharing Cloud Pods among your team using a custom remote, each team member must define the identical remote configuration. Once added, a remote persists even after LocalStack restarts.</p>User-Guide: Cloud Pods Launchpad/user-guide/tools/cloud-pods/launchpad/Mon, 01 Jan 0001 00:00:00 +0000/user-guide/tools/cloud-pods/launchpad/ +<p>The LocalStack Cloud Pods Launchpad enables you to easily share and inject Cloud Pods into a LocalStack instance.</p> <h2 id="creating-your-sharable-link">Creating your sharable link</h2> -<p>Navigate to <a href="https://app.localstack.cloud/launchpad">https://app.localstack.cloud/launchpad</a> where you can create a sharable link for your pods.</p> +<p>You can visit <a href="https://app.localstack.cloud/launchpad">Cloud Pods launchpad</a> to generate a shareable link for your pods.</p> <p><img src="link-generator.png" alt="Cloud Pods Launchpad Link Generator"></p> -<p>Enter a public URl to your pod in the first input field, and click on &lsquo;Generate Link&rsquo;. -The resulting link can be copied and shared with others.</p> -<p>You can also copy the markdown snippet to quickly add a badge to your repository.</p> +<p>Enter a public URL to your pod Cloud Pod the first input field, then click <strong>Generate Link</strong>. You can copy the resulting link and share it with others. Additionally, you have the option to copy a markdown snippet for quickly adding a badge to your repository.</p> <div class="alert alert-warning" role="alert"> <h4 class="alert-heading">Warning</h4> -<p>Please consider that the launchpad takes an arbitrary URL as input and passes it onto your LocalStack instance to inject the pod. -This may lead to unintended side effects, as the URL that is passed to the launchpad is not validated in any way.</p> -<p>We also display the URL on the UI, so please make sure that your trust the URL when using the launchpad.</p> +<p>The Launchpad accepts any URL as input and directly passes it to your LocalStack instance for Cloud Pod injection. As a result, this process may carry the risk of unintended side effects, as there is no validation applied to the URL provided to the launchpad.</p> +<p>Furthermore, it&rsquo;s essential to exercise caution and only use URLs that you trust when utilizing the launchpad, as the URL is displayed in the user interface.</p> </div> <h2 id="adding-a-badge-to-your-repository">Adding a badge to your repository</h2> -<p>If you want to add a badge to your README that links to the Cloud Pod Launchpad, you can use the following markdown snippet:</p> +<p>To add a badge to your README that links to the Cloud Pod Launchpad, you can include the following markdown snippet:</p> <div class="highlight"><pre tabindex="0" style="background-color:#f8f8f8;-moz-tab-size:4;-o-tab-size:4;tab-size:4;"><code class="language-markdown" data-lang="markdown"><span style="display:flex;"><span>[<span style="color:#204a87;font-weight:bold">![Launch LocalStack Cloudpod</span>](<span style="color:#c4a000">https://localstack.cloud/gh/launch-pod-badge.svg</span>)](https://app.localstack.cloud/launchpad?url=url_of_your_pod) </span></span></code></pre></div><p><img src="badge-demo.png" alt="Cloud Pods Badge Demonstration"></p> -<p>Please note that you have to add the <code>url_of_your_pod</code> as the <code>url</code> query parameter to the URL. -For example if you are hosting the pod in the same repository, just use the URL pointing to the raw pod file. -Additionally, you can use the <a href="#creating-your-sharable-link">Link Generator</a> to create the sharable link for your pod and copy the markdown for your repo.</p> -<p>Check out a proper example <a href="https://github.com/localstack/cloud-pod-badge" target="_blank">on this GitHub repository</a>.</p> +<p>You need to include the <code>url_of_your_pod</code> as the <code>url</code> query parameter in the URL. For instance, if your Cloud Pod is hosted within the same repository, simply use the URL that directs to the raw Cloud Pod file.</p> +<p>Additionally, you can utilize the <a href="#creating-your-sharable-link">Link Generator</a> to generate a sharable link for your pod and copy the corresponding markdown snippet for your repository. Check out a proper example <a href="https://github.com/localstack/cloud-pod-badge" target="_blank">on th Cloud Pod badge GitHub repository</a>.</p> <h2 id="troubleshooting-common-problems">Troubleshooting common problems</h2> <p>In this section we present an overview of common problems and how to solve them.</p> <h3 id="localstack-is-not-running">LocalStack is not running</h3> -<p>In case your LocalStack instance is not running, you will see the following error message:</p> +<p>If your LocalStack instance is not running, you will encounter the following error message:</p> <p><img src="ls-not-running.png" alt="Cloud Pods Launchpad Error LocalStack not running"></p> -<p>Please start up your LocalStack instance and try again. -Find out more about how to start LocalStack in the <a href="/user-guide/tools/cloud-pods/getting-started/">Getting Started</a> section.</p> +<p>Start your LocalStack instance and attempt the operation once more. For detailed instructions on starting LocalStack, refer to the <a href="/user-guide/tools/cloud-pods/getting-started/">Getting Started</a> section.</p> <h3 id="failed-to-load-metadata">Failed to load metadata</h3> -<p>In case the launchpad fails to load the metadata of your pod, you will see the following error message:</p> +<p>If the launchpad encounters difficulties while loading the metadata of your pod, you will receive the following error message:</p> <p><img src="metadata-load-failed.png" alt="Cloud Pods Launchpad Error failed to load metadata"></p> -<p>This can happen if the pod is not available anymore or if the URL is not valid. -Please check the URL and try again.</p> +<p>This can occur when the pod is no longer accessible or if the URL provided is invalid. Review the URL and attempt the operation once more.</p> <h3 id="failed-to-inject-pod">Failed to inject pod</h3> -<p>In case the launchpad fails to inject the pod into your LocalStack instance, you will see &lsquo;Pod injection failed&rsquo; in the log message. -This may be due to a couple of reasons, like version mismatch. -Please check out your LocalStack logs for more information.</p> \ No newline at end of file +<p>If the launchpad is unable to successfully inject the pod into your LocalStack instance, you will encounter a <code>Pod injection failed</code> message in the log. This issue may arise from various factors, such as version disparities. For further insights and information, please review your LocalStack logs.</p>User-Guide: Community Cloud Pods/user-guide/tools/cloud-pods/community/Mon, 01 Jan 0001 00:00:00 +0000/user-guide/tools/cloud-pods/community/ +<div class="alert alert-primary" role="alert"> +<h4 class="alert-heading">Note</h4> +With the release of LocalStack 2.3, we have officially marked Community Cloud Pods as <strong>deprecated</strong>. In our upcoming 3.0 release, we will be removing Community Cloud Pods entirely. Moving forward, Cloud Pods will only be accessible to Pro/Team users. We understand this may affect some users and we are open to feedback, through our <a href="https://github.com/localstack/localstack">GitHub Issues</a> or <a href="https://discuss.localstack.cloud/">Discuss Forum</a>. +</div> +<p>LocalStack supports Community Cloud Pods to give our community users a limited Cloud Pods experience. Using Community Cloud Pods, you get two commands: <code>save</code> and <code>load</code> to save the container state in a Cloud Pod and dump it into their running LocalStack container at any given time, respectively.</p> +<h2 id="getting-started">Getting started</h2> +<p>In this getting started guide, we will demonstrate how community users can leverage Community Cloud Pods to save the state of their running LocalStack instance permanently. To get started, you would only need <code>awscli</code> installed. We intend this feature to be open to community users; hence no <code>LOCALSTACK_API_KEY</code> is required.</p> +<p>Let us start by creating some AWS resources in LocalStack. Just a mere example, let us create a S3 bucket and a SQS queue:</p> +<div class="highlight"><pre tabindex="0" style="background-color:#f8f8f8;-moz-tab-size:4;-o-tab-size:4;tab-size:4;"><code class="language-text" data-lang="text"><span style="display:flex;"><span><span class="command-prefix">$ </span>awslocal s3 mb s3://test +</span></span><span style="display:flex;"><span><span class="command-prefix">$ </span>awslocal sqs create-queue --queue-name test-queue</span></span></code></pre></div> +<p>Let us dump such a simple state into a Cloud Pod using the <code>save</code> command. This command takes a file URI as an argument and creates a ZIP file in the specified directory. Assuming we want to create a pod named <code>awesome-pod</code> in our Desktop folder, we will run the below commands to save an <code>awesome-pod</code> in your Desktop directory:</p> +<div class="highlight"><pre tabindex="0" style="background-color:#f8f8f8;-moz-tab-size:4;-o-tab-size:4;tab-size:4;"><code class="language-text" data-lang="text"><span style="display:flex;"><span><span class="command-prefix">$ </span>localstack pod save file:///Users/&lt;my_username&gt;/Desktop/awesome-pod +</span></span><span style="display:flex;"><span>Cloud Pods file:///Users/&lt;my_username&gt;/Desktop/awesome-pod successfully exported</span></span></code></pre></div> +<p>This exported ZIP file now contains the state we previously created, and we can restore it at any time with the inverse command, i.e., <code>load</code>. For instance, the following command will restore the same state of a fresh instance of LocalStack:</p> +<div class="highlight"><pre tabindex="0" style="background-color:#f8f8f8;-moz-tab-size:4;-o-tab-size:4;tab-size:4;"><code class="language-text" data-lang="text"><span style="display:flex;"><span><span class="command-prefix">$ </span>localstack pod load file:///Users/&lt;my_username&gt;/Desktop/awesome-pod +</span></span><span style="display:flex;"><span>Cloud Pods file:///Users/&lt;my_username&gt;/Desktop/awesome-pod successfully loaded</span></span></code></pre></div> +<p>It is worth noting that the <code>load</code> command also allows loading a Cloud Pod stored at a given URL. We also provide a short-hand option to load Cloud Pods saved in a public GitHub repository. To showcase this possibility, we opened a new public repository at <a href="https://github.com/localstack/cloud-pods">localstack/cloud-pods</a>, where we started storing several Cloud Pods for demonstration purposes.</p> +<p>For example, we uploaded a Cloud Pod named <code>s3-trigger-thumbnail</code> based on an <a href="https://docs.aws.amazon.com/lambda/latest/dg/with-s3-tutorial.html">official AWS documentation tutorial</a>. This Cloud Pod stores a simple application consisting of two S3 buckets and a Lambda function. For each <code>jpg</code> image uploaded in one of the buckets, the Lamda function will create a thumbnail of it and store it in the other bucket.</p> +<p>To load this Cloud Pod, you can run the following command:</p> +<div class="highlight"><pre tabindex="0" style="background-color:#f8f8f8;-moz-tab-size:4;-o-tab-size:4;tab-size:4;"><code class="language-text" data-lang="text"><span style="display:flex;"><span><span class="command-prefix">$ </span>localstack pod load git://localstack/cloud-pods/s3-trigger-thumbnail</span></span></code></pre></div> +<div class="alert alert-primary" role="alert"> +<h4 class="alert-heading">Note</h4> +<p>The above command is equivalent to:</p> +<div class="highlight"><pre tabindex="0" style="background-color:#f8f8f8;-moz-tab-size:4;-o-tab-size:4;tab-size:4;"><code class="language-text" data-lang="text"><span style="display:flex;"><span><span class="command-prefix">$ </span>localstack pod load https://raw.githubusercontent.com/localstack/cloud-pods/main/s3-trigger-thumbnail</span></span></code></pre></div> +</div> +<p>To test the loaded pod, you can run the following command:</p> +<div class="highlight"><pre tabindex="0" style="background-color:#f8f8f8;-moz-tab-size:4;-o-tab-size:4;tab-size:4;"><code class="language-text" data-lang="text"><span style="display:flex;"><span><span class="command-prefix">$ </span>awslocal s3 cp &lt;path_to_file&gt;.jpg s3://img-bucket</span></span></code></pre></div> +<p>To check the content of the destination bucket run the following command:</p> +<div class="highlight"><pre tabindex="0" style="background-color:#f8f8f8;-moz-tab-size:4;-o-tab-size:4;tab-size:4;"><code class="language-text" data-lang="text"><span style="display:flex;"><span><span class="command-prefix">$ </span>awslocal s3 ls s3://img-bucket-resized</span></span></code></pre></div> +<h2 id="limitations">Limitations</h2> +<p>Community Cloud Pods have some limitations:</p> +<ul> +<li>Only Community-available AWS services can be saved and loaded in a Community Cloud Pod.</li> +<li>Users are responsible for storing their saved states. Pro users can use our Cloud Pods platform to make storing and sharing their saved states easier.</li> +<li>Cloud Pods for Community users do not support versioning out of the box.</li> +</ul> \ No newline at end of file diff --git a/user-guide/tools/cloud-pods/launchpad/index.html b/user-guide/tools/cloud-pods/launchpad/index.html index 293ca8b9b0..b78e28caf1 100644 --- a/user-guide/tools/cloud-pods/launchpad/index.html +++ b/user-guide/tools/cloud-pods/launchpad/index.html @@ -1,8 +1,4 @@ -Cloud Pods Launchpad | Docs +Cloud Pods Launchpad | Docs

    Cloud Pods Launchpad

    The LocalStack Cloud Pods Launchpad offers the easiest way of sharing and injecting cloud pods directly from your repositories or via a simple URL.

    The LocalStack Cloud Pods Launchpad allows you to quickly share and inject cloud pods into a LocalStack instance.

    Navigate to https://app.localstack.cloud/launchpad where you can create a sharable link for your pods.

    Cloud Pods Launchpad Link Generator

    Enter a public URl to your pod in the first input field, and click on ‘Generate Link’. -The resulting link can be copied and shared with others.

    You can also copy the markdown snippet to quickly add a badge to your repository.

    Adding a badge to your repository

    If you want to add a badge to your README that links to the Cloud Pod Launchpad, you can use the following markdown snippet:

    [![Launch LocalStack Cloudpod](https://localstack.cloud/gh/launch-pod-badge.svg)](https://app.localstack.cloud/launchpad?url=url_of_your_pod)
    -

    Cloud Pods Badge Demonstration

    Please note that you have to add the url_of_your_pod as the url query parameter to the URL. -For example if you are hosting the pod in the same repository, just use the URL pointing to the raw pod file. -Additionally, you can use the Link Generator to create the sharable link for your pod and copy the markdown for your repo.

    Check out a proper example on this GitHub repository.

    Troubleshooting common problems

    In this section we present an overview of common problems and how to solve them.

    LocalStack is not running

    In case your LocalStack instance is not running, you will see the following error message:

    Cloud Pods Launchpad Error LocalStack not running

    Please start up your LocalStack instance and try again. -Find out more about how to start LocalStack in the Getting Started section.

    Failed to load metadata

    In case the launchpad fails to load the metadata of your pod, you will see the following error message:

    Cloud Pods Launchpad Error failed to load metadata

    This can happen if the pod is not available anymore or if the URL is not valid. -Please check the URL and try again.

    Failed to inject pod

    In case the launchpad fails to inject the pod into your LocalStack instance, you will see ‘Pod injection failed’ in the log message. -This may be due to a couple of reasons, like version mismatch. -Please check out your LocalStack logs for more information.


    + Create project issue
    Table of Contents

    Cloud Pods Launchpad

    Get started with Cloud Pods Launchpad to share and inject Cloud Pods into your LocalStack instance via a URL

    The LocalStack Cloud Pods Launchpad enables you to easily share and inject Cloud Pods into a LocalStack instance.

    You can visit Cloud Pods launchpad to generate a shareable link for your pods.

    Cloud Pods Launchpad Link Generator

    Enter a public URL to your pod Cloud Pod the first input field, then click Generate Link. You can copy the resulting link and share it with others. Additionally, you have the option to copy a markdown snippet for quickly adding a badge to your repository.

    Adding a badge to your repository

    To add a badge to your README that links to the Cloud Pod Launchpad, you can include the following markdown snippet:

    [![Launch LocalStack Cloudpod](https://localstack.cloud/gh/launch-pod-badge.svg)](https://app.localstack.cloud/launchpad?url=url_of_your_pod)
    +

    Cloud Pods Badge Demonstration

    You need to include the url_of_your_pod as the url query parameter in the URL. For instance, if your Cloud Pod is hosted within the same repository, simply use the URL that directs to the raw Cloud Pod file.

    Additionally, you can utilize the Link Generator to generate a sharable link for your pod and copy the corresponding markdown snippet for your repository. Check out a proper example on th Cloud Pod badge GitHub repository.

    Troubleshooting common problems

    In this section we present an overview of common problems and how to solve them.

    LocalStack is not running

    If your LocalStack instance is not running, you will encounter the following error message:

    Cloud Pods Launchpad Error LocalStack not running

    Start your LocalStack instance and attempt the operation once more. For detailed instructions on starting LocalStack, refer to the Getting Started section.

    Failed to load metadata

    If the launchpad encounters difficulties while loading the metadata of your pod, you will receive the following error message:

    Cloud Pods Launchpad Error failed to load metadata

    This can occur when the pod is no longer accessible or if the URL provided is invalid. Review the URL and attempt the operation once more.

    Failed to inject pod

    If the launchpad is unable to successfully inject the pod into your LocalStack instance, you will encounter a Pod injection failed message in the log. This issue may arise from various factors, such as version disparities. For further insights and information, please review your LocalStack logs.


    \ No newline at end of file diff --git a/user-guide/tools/cloud-pods/pods-cli/index.html b/user-guide/tools/cloud-pods/pods-cli/index.html index d174b8d418..515ee4c8a1 100644 --- a/user-guide/tools/cloud-pods/pods-cli/index.html +++ b/user-guide/tools/cloud-pods/pods-cli/index.html @@ -1,7 +1,7 @@ -Cloud Pods CLI command reference | DocsCloud Pods CLI command reference | Docs

    Cloud Pods CLI command reference

    The reference guide for LocalStack Cloud Pods CLI commands and how to get started on using them!

    This reference provides descriptions and example commands for LocalStack Cloud Pods CLI (pod) commands.

    Syntax

    Use the following syntax to run localstack pod commands from your terminal window:

    $ localstack pod [OPTIONS] COMMAND [ARGS]

    In the above syntax:

    • COMMAND specifies the operation you want to perform with your Cloud Pods (save or load).
    • OPTIONS specifies the optional flags.
    • ARGS specifies the command arguments.

    Commands

    The following section lists the available commands for the Cloud Pods CLI.

    save

    The save command creates a new version of a Cloud Pod. Pro users can dump the Cloud Pod locally or upload it to the LocalStack platform. To dump the state locally, pass a local file URI as an argument to the save command. For instance, the following command:

    $ localstack pod save file://<path_to_disk>/my-pod

    The above command will create a zip file named my-pod to the specified location on the disk. To use the Cloud Pods platform, specify the Cloud Pod’s name as an argument, for example:

    $ localstack pod save my-pod

    The above command creates a version of my-pod and registers it to our platform. Pushing already existing pod results in creating a new version and, eventually, uploading it to the platform. Users can also select a subset of AWS services they wish to incorporate in a new Cloud Pod version with the --services option.

    Users who want to make a Cloud Pod accessible outside their organization can mark it as public with the following command:

    $ localstack pod push --name <pod_name> --visibility public

    The above command does not create a new version and requires a version already registered with the platform. The CLI manual for the save command is as follows:

    Usage: python -m localstack.cli.main pod save [OPTIONS] URL_OR_NAME
    -
    -  Save the current state of the LocalStack container in a Cloud Pod. A Cloud Pod can be exported
    -  locally or registered within the LocalStack Pod's platform (with a Pro license). An optional
    -  message can be attached to any Cloud Pod. Furthermore, one could decide to export only a subset
    -  of services with the optional --service option.
    -
    -  To export on a local path run the following command:
    -  localstack pod save file://<path_on_disk>/<pod_name>
    -
    -  The output will be a <pod_name> zip file in the specified directory. This Cloud Pod instance can
    -  be restored at any point in time with the load command.
    -
    -  To use the LocalStack Pod's platform, the desired Pod's name only will suffice, e,g.:
    -
    -  localstack pod save <pod_name>
    -
    -  Please be aware that each following save invocation with the same name will result in a new
    -  version being created.
    -
    -Options:
    -  -m, --message TEXT   Add a comment describing this Cloud Pod's version
    -  -s, --services TEXT  Comma-delimited list of services to push in the Cloud Pod (all by default)
    -  --visibility TEXT    Set the visibility of the Cloud Pod [`public` or `private`]. Does not
    -                       create a new version
    -  --help               Show this message and exit.
    -

    load

    The load command is the inverse operation of save. It retrieves the content of a previously stored Cloud Pod from the local file system or the Cloud Pod’s platform and injects it into the application runtime.

    The load command takes an argument that can either be a URI or a Cloud Pods name. While the first option is available to all users, the second is valid only for licensed ones.

    By default, the injecting state updates the application runtime at a service level. Using the merge injection strategy, the state of all services specified in the injecting state is reflected precisely in the application runtime, while all other active services remain unchanged.

    The --strategy option can be used to change such default injection behavior. More specifically, the overwrite strategy will ensure the application runtime is an exact instance of the injecting state. The deep-merge strategy will perform a fine-grain merge of the injecting state into the application runtime.

    The CLI manual for the load command is as follows:

    Usage: python -m localstack.cli.main pod load [OPTIONS] URL_OR_NAME
    -
    -  Load a Cloud Pod into the running LocalStack container. Users can import Pods different sources:
    -  community users can store and retrieve Pods from local storage or any provided HTTP URL;
    -  licensed users can take advantage of the LocalStack Pod's platform to ease the storage,
    -  versioning, and retrieval of Pods.
    -
    -  The --source option specifies a URI scheme that point to the Cloud Pod's resources to import.
    -
    -  We support the following protocols:
    -  localstack pod load file://<path_to_disk>
    -  localstack pod load https://<some_url>
    -  localstack pod load git://<user>/<repo>/<local_repo_path>
    -
    -  The latter option is merely a shortcut for --source
    -  https://raw.githubusercontent.com/<user>/<repo>/<branch>/<path>
    -
    -  Importing via a provided --source is available for all users. Licensed users can omit this
    -  option and simply provide a name for their Cloud Pods.
    + Create project issue
    Table of Contents

    Cloud Pods CLI command reference

    Reference guide for LocalStack Cloud Pods CLI commands and how to get started on using them!

    This reference provides descriptions and example commands for LocalStack Cloud Pods CLI (pod) commands.

    Syntax

    Use the following syntax to run localstack pod commands from your terminal window:

    $ localstack pod [OPTIONS] COMMAND [ARGS]

    In the above syntax:

    • COMMAND specifies the operation you want to perform with your Cloud Pods (save or load).
    • OPTIONS specifies the optional flags.
    • ARGS specifies the command arguments.

    Commands

    The following section lists the available commands for the Cloud Pods CLI.

    save

    The save command allows you to save a new version of a Cloud Pod. For licensed users, it provides the option to either save the Cloud Pod locally or upload it to the LocalStack platform.

    To save the state locally, simply provide a local file URI as an argument when using the save command. Running the following command will create a file named my-pod in the specified location on the disk:

    $ localstack pod save file://<path_to_disk>/my-pod

    The command mentioned above will produce a zip file named my-pod and save it to the designated location on your disk. If you intend to utilize the Cloud Pods platform, you should specify the Cloud Pod’s name as an argument, as shown below:

    $ localstack pod save my-pod

    The above command generates a new version of my-pod and uploads it on the LocalStack platform. When pushing an already existing pod, a new version is created and subsequently uploaded to the platform.

    Users also have the option to select a specific subset of AWS services they want to include in the new Cloud Pod version using the --services option.

    Users who want to make a Cloud Pod accessible outside their organization can mark it as public with the following command:

    $ localstack pod save --name my-pod --visibility public

    The above command does not create a new version and requires a version already registered with the platform. The CLI manual for the save command is as follows:

    $ localstack pod save --help
    +
    +Usage: localstack pod save [OPTIONS] URL_OR_NAME [REMOTE] Options: - -s, --strategy TEXT Inject strategy (merge, overwrite, deep-merge). - --help Show this message and exit. -

    delete

    The delete command let users delete a Cloud Pod stored in the remote platform. The CLI manual for the delete command is as follows:

    Usage: python -m localstack.cli.main pod delete [OPTIONS]
    -
    -  Delete a Cloud Pod register on the remove LocalStack Pod's platform. This command will cancel
    -  all the versions of a created Pod and won't be reversible.
    +  -m, --message TEXT             Add a comment describing this Cloud Pod's version
    +  -s, --services TEXT            Comma-delimited list of services to push in the Cloud Pod
    +                                 (all by default)
    +  --visibility [public|private]  Set the visibility of the Cloud Pod [`public` or `private`].
    +                                 Does not create a new version
    +  -f, --format [json]            The formatting style for the save command output.
    +  -h, --help                     Show this message and exit.
    +

    load

    The load command is the inverse operation of save. It retrieves the content of a previously stored Cloud Pod from the local file system or the LocalStack platform and injects it into the LocalStack container.

    The load command takes an argument that can either be a URI or a Cloud Pods name. By default, the injecting state updates the container state at a service level. The CLI manual for the load command is as follows:

    $ localstack pod save --help
    +
    +Usage: localstack pod load [OPTIONS] URL_OR_NAME [REMOTE] Options: - -n, --name TEXT Name of the Cloud Pod [required] - --help Show this message and exit. -

    inspect

    The inspect command simply lets the user inspect the content of a Cloud Pod. The CLI manual for the inspect command is as follows:

    Usage: python -m localstack.cli.main pod inspect [OPTIONS]
    -
    -  Inspect the contents of a Cloud Pod
    +  --merge [overwrite|merge]  The merge strategy to adopt when loading the Cloud Pod  [default:
    +                             merge]
    +  -h, --help                 Show this message and exit.
    +

    delete

    The delete command let users delete a Cloud Pod stored in the remote platform. The CLI manual for the delete command is as follows:

    $ localstack pod delete --help
    +
    +Usage: localstack pod delete [OPTIONS] NAME Options: - -n, --name TEXT Name of the Cloud Pod [required] - -f, --format TEXT Format (curses, rich, json). - --help Show this message and exit. -

    list

    The list command lists all of the available Cloud Pods. It shows all the pods available for a single user and its organization by default. If the --public option is passed to the commands, it shows only the Cloud Pods marked as public and are, therefore, available to all licensed users. The CLI manual for the list` command is as follows:

    Usage: python -m localstack.cli.main pod list [OPTIONS]
    -
    -  List all the Cloud Pods available for a single user, or for an entire organization, if the user
    -  is part of one.
    -
    -  With the --public flag, it lists the all the available public Cloud Pods. A public Cloud Pod is
    -  available across the boundary of a user ond/or organization. In other words, any public Cloud
    -  Pod can be injected by any other user holding a LocalStack Pro (or above) license.
    +  -h, --help  Show this message and exit.
    +

    inspect

    The inspect command simply lets the user inspect the content of a Cloud Pod. The CLI manual for the inspect command is as follows:

    $ localstack pod delete --help
    +
    +Usage: localstack pod inspect [OPTIONS] NAME Options: - -p, --public List all the available public Cloud Pods - --help Show this message and exit. -

    versions

    The versions command simply lists all the available versions of a Cloud Pod. The CLI manual for the version command is as follows:

    Usage: python -m localstack.cli.main pod versions [OPTIONS]
    +  -f, --format [curses|rich|json]
    +                                  The formatting style for the inspect command output.
    +                                  [default: curses]
    +  -h, --help                      Show this message and exit.
    +

    list

    The list command lists all of the available Cloud Pods. It shows all the pods available for a single user and its organization by default. The CLI manual for the list command is as follows:

    $ localstack pod list --help
    +
    +Usage: localstack pod list [OPTIONS] [REMOTE] - List the versions available for a Cloud Pod. Each invocation of the save command is going to - create a new version for a named Cloud Pod, is a Pod with such name already does exist in the - LocalStack Pods platform. +Options: + -p, --public List all the available public Cloud Pods + -f, --format [table|json] The formatting style for the list pods command output. [default: + table] + -h, --help Show this message and exit. +

    versions

    The versions command lists all the available versions of a Cloud Pod. The CLI manual for the version command is as follows:

    $ localstack pod versions --help
    +
    +Usage: localstack pod versions [OPTIONS] NAME Options: - -n, --name TEXT Name of the Cloud Pod [required] - --help Show this message and exit. -

    + -f, --format [table|json] The formatting style for the version command output. [default: + table] + -h, --help Show this message and exit. +
    \ No newline at end of file diff --git a/user-guide/tools/cloud-pods/pods-ui.png b/user-guide/tools/cloud-pods/pods-ui.png index e6bec2b735ee438c47ef8ce04195902e7af17d15..11fc8eadb36c40efbf3a0884fdd3a7f6a2dcc9f5 100644 GIT binary patch literal 329491 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
    AfJ?*2 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

    mFt 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�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 literal 173391 zcmeFZWmH_vwk{k9Nr2!4m*8%}8z)F`cMXKbwYzaA1c%_-xO;Gi1PKm}1&0u%ahKq? zv-de?@4N5!jd9=i_wBJ3Rb5rHs@JTw=6vQ;wFp;Jd54KkivHxu6HIwIX^kgO&|puV zJPk&DjwmUo42*vA1WC$9N=i*$N{UJi|&qBP$7fB!o6b@=P|oYAk@sYXUWiE(~D)#`qdul}vc4kL={rj}!%f`Hx1t=eFe z(s1K7NM7#Oj+}i-2h~?xTZ=VYGh2zTr3D}3 zrz7xi4xpxL`iW^->Ulp=F>OwlF11~+(Av-j)QoAt-X z@mdUw{WfCa2g3WuNAJVONBLF7@N zpdgVxd4|X#Ax<$Qvj54;A~8LA`j2wtCr?6co}m0!8x=(Q=M#%K|H%9^eHtI~-{pr`t+{qOpN<;H!p#S;&^LGM0Z2mQpBly2A3vq#*e`+}2aBy+{Pu~bpkw2wE zYBnA~dwppe2ZYWLV~7E`xJ3TZ{{N`?*NFcnsrN5QZoW6%|1SD(RsSif4F-awoE#8i zLd5{5uVPJRp02H~ueqbP>Lqu@@h9E*jfes-| zfBFSn{P)IYf}N04A>sXvgDDP$36?a_GnUElx8!pq`oVu)SAVpWBaN3Mp-Y1;?4JI2 z)GZf)Ofmkqelk@co_qkZak$9-lFi>y8P%VOe)0b%`u|n~|8JuIZ#DIA4-ylMpc~-K z%V$ja2#=*J0EStZKix^SFlU&ejyKD;q*-lQNu2W3nz&Y)ozDEsFLKIL?+|J;o4aYe zrx^Nt&~A1*K~5>{Zwx%DU?{zj!Jd`2c5```f zXJ0W@$~GA*L5M&>z9S-TvcN#!#<&g&snS%pP5LZ&=6;E>NBykztsqs#uLR&w46WnZ zD5@h%?|gw^6P4BJbO5+&{2XVWYN^z$xC(05F%$B`ooZ^saF0tn?yzRqR<3-v5Z!Ei zj_$9UatS}Qf�d$u8_c_#=5-wOdx~djC4r(_C#|n^+Fz!_pzi)_v&LA~1)b(I&*! zf-Y36+(3szxIDsWq9Vj-s;nsZS=*4FHemEE!b%X*U5|4iFON+jXS%-vSkVC*mYsuI zgIkoKy;vzswu6u&Xx4B36P5gVz@BjN_Z%J|^Z@v4^kS}%j~TZ4$W{C7FPj)9HRNG_ zisUQ*Wlq*dp)hrJZS-1t*X47d%(MpMfQ6nWMI7F z9keRWa*A?e#c8Rw^|o?}erltazw~M`|FZrESOddN?^(xvn~dqGpN)N15ciAMFOH9+ zf1wYg?gg9|g2-t`09tvP;4y{RP%WiN-Poj~GCKwx@2b;6DWKAo?CAzDy7IZgT_UnE zH58dN&~eBF6%t0CQp(sMj7P!0g|`x=22a-4~b0gB9?%tw%=al90x8e^W9@iwP4ME!BQr=>` zOxc_%&$@-+Y$-~@`k0}2-?MpGGp~Q|2?OX#G;Gq`Wbj++G(}fs6x2BWJi~LAsI$H- zuw0kD%?MdI;pV>j)(D`&-dG>1 z#PyRK@XI69N&L0L56vDx$oQGUl$!@M{xCs);uLGamr@H8yS zBGkvYkuh|pirp)75Ipc{w0yYUkG;@yhWnC~-Ztyc@Q0)FVG>P8sb?0`_;{xoR&+v& ziBg@4QFSy^`kGc^EQS{y!=>_}18&8OqQ-7U0tDMMf79>;a3WV%FSF;1-DuJo%VaMx zD1v&X@m7>jgi=K4SVjv0Kw8Bdo}Lz43!!#Mf)2hue03f2p|Q9H?zP?W*5dxPPp z@Y!*VIywuroH~lll-2MQ(?=Co1v^=_9=0(_Q6e55=VX0&zW!L^Kp54|Ym<)Y z2JZHyFfGgz6~xd=&TqXdT)egP1DJwi#lIaR9ZId=K{Mltj<`O-WmSx|g$5y7*nAAD z)n7)MIb3KM2Im=UOJ5j|GSoQbpHXE#|0H4i@>AFgGZmh08~_LP^D~_AAgcBq#rr&^ zB)HlbZV0mm*AK=I19Ldj*fJ)hyTx`CiBpXq)qlvzj{UMUtkTb1S}N^q_tq3PR2fVy zl&}&WyMG<+wvg(@(FznWmY~)}5hU1wzNI*gT|KYB@$|9xG-Rd8NWcv|3}8jhw3GWW zB~_P)N7Em!IH37$tR7B3F;2uP`>-z?erP}#+piIp;qEcDPflB!h#%fD18Ft1IPS;oI-l|B~J9=lC1XT$3-Ez zgHw8|b47HB*PU_cqctjIM-XuCFN(`o+Fo?#HJ0kbw%yJ;jtcqUg9-`72~-(w9%}g{ zs4GmlIML3Aoav|}BMj%&R0Wk+srWYR*?w5M4wKOB<6)t+<%;|3G0`iWKyj=-xg!AC z#_yBnARF~ffut>74Ws890zARx3J`0tExP14)e{>*R0E~QMR9OM3gCq$Z&B~uXeDiO zMYF9#a<#Hv%F=$%)+Cbeqa}zwt_|teQXQ181Is0`04+AZs!TRo0yYR9wenC}JB0Cp zThqoMw>oZaYrPJ(ckW+PiGPE<;@>AJs`2EJ5%Mjj9T_>vB7X;G3Lc-C5@w3fbu z;%--fN0zhbJ4xQCJ_A@Z%K%1pz3dhn{RE$hz#CmV3@qVxa>axZFGI`u;KesgjnC|&Bo8PR%nK+0O^f$ z<1-a|S;?qZF?VP(cWF+I->A~d<}9}H$eZ|kg^~*fBoM*}?>HB%0QL9%ts%~R=}OXh zVC|*5i_Q+X znBmN6d?@s>jau>^b_MkmUKFD1l>R6R+~zHHENIQ>)LIqBO=1iEr2*VY@3Oe~E)H~` zW*%hI{((}HpcZAWPl{)RtWc&^+)$sVsn$Jhn8U-`5P(Y8>gt|tx=%Zigc|7hSViY~ zk!B1+J%xsIg{})b&9rO@E{rI~(m0wbG$-gY z7gZMKpq4F)*bMHeczX0hW2GGpyia$g0y4vJQ-4k}0jGoxwAk3U6K}0;FpkgzIZzj2 zsIFKk)fR*Dq)Kc98s`=4;Ur_O%f7~iZr8uaM#|@2LRiK-F83(`&EmN42yvIR1f@=y zVbQbHM#^uBV~d{QhL45WvV5^QrH4h2u)vf>-Cj8WMlOSJuqNzv7oEeM9jR5C;0qz% z!VK8gI;Qn6`6X38wTwV`EexHU+BAg{6roAcO43vBtTKBU2bjBdQ64UhaSfy1~3llrrn?; z%-7%s4#!#OUv6Tb9&q{(M6>vPaok3ItcvUU?^Ra3%ozcM1LID& za&k8cC7rCrqlEzhUq}8jEfXk$M_j)xpxQKF|-Zmr;?O8{CI!xE23Ad^;=_XL^|(+xuQRpNF%a2<2Wy zlwO$Kgx_YM`J zN`*`@CL_woE;*Lil-y8;?vQR2guo~vw>aB*F=@3}sGbaX6hmz?LK&~Dh*m53l?5iS z>l}3T-BE-H?v{cm78)CXgRbifw8#|Cguto4L;pqy^7Ep>+hRJjE0-i1vKjUJ`BTi{ zn@MX&p>M4o(s8W1BoiBI-#rut-f?lDy+umecuW1Q&^%K%fJd|9vjkZw&SnsGJ-vh* z8K0gPA2Ta4gh1JrwxpaREBn zv!Cw>QMDG^v)22zgiXvOIM&Y%9^?#4-l(f`d;%EP)k-mZJO16SI5ifW`G+0u>@@qd zO;OwobkBHHZt5mX;z~~cvm5_Zjrkw*kk?S$ycu`Abt!xC zRYv6+#$mI|F{&KNt&iot_?9b6hCbn{m$oMNNhmQ8WF{-4po@)m0Qhnrb^c1aP%&jL z3I_nCr1mF|NGY}&OE5mZE6|eR4T# zGJBf_{BZQzXbFK4#T>;RoGP4cB|70sE0v+Cxa}aVM9rsTUYuq>>aB)^h7A|N@Wr9s zmK|~fomC_Ql7pQLmA!Q!N^1mpHvwOgLAa073je;UyAQMGFOp7$S&7 zgwl1CS140KY6ne&lSb3=&?VPs<$~F5$!d zWh_U$n|ohCi?i*RRGzLKkK-_&6a=$~oo{qBrtLP<_oYet6ckTALA{FWNM7*%T=Ly$ zFKU(ZIye2Zp4OsWAGzlJX!#`nJf6+X7DeE?q#lH1&aseX%-X}!Urnu$0UxM(rJHbA z%!9uCClZ5831=+*IxW^igS^nn%J6y;2iI`M84akcV#ccQo@Y+KUoCd1CGSB}?aN4b zH_qB5XobHOg;UHLJyP@uioE8=FtQ1#T0Gquh9y0<0CBCbo*M?tpv{v|M11k)2Ts-4X%RKl z$=2P{wpVakfF`ps)Mrn0i+Xy#K=>e(d7Wi%|8o{pZ;fyt#{c89T_m*;GYsi(pvR3& ziH#{!`S0=+M_LK!B62KgfJea&3S+IE7gD7PUKNm14FePZeSRCltyqm?|DYhqwl>Ah z3^k)Fy}X8Hf&FLqfstyz#OqauSK%cguEY-9uX;)uC_^ONGmK{P+9yt7W%Ff@+)5f> zNHB&G*onBOS16tuT{1`UWuFL2>wAJwh|+8h&TmKJtr?^wl{yHMK8E;Std_izasvKf z8c2{`2@628d6EJjFb(}6GbH&7EU_g;QD=?4GDJHnal4;$Y6+qKPZI9$ z-6KXkkWQB*p>(pmXN23%69q4N|g%ux>@VW>+p0_vnhDNwqTI)blTg|38twi1F zgvz@XlFK`49Lf}jPszJy)^nT#|Not3jvU@xyRUohWn14oCVGP}zsi4tTKd4R;U!GW zx>eBN5Q(oWvNpeT7dKi|o8EucI(IopMYol8m;xqwRuJWl1Ha2pO{Q_LpLlO9onnP6 zDJA@bK?EJq@W?4SBE^fpv1mo6|+;eV+ya4m+MxL zGqa=xe=kI3Jxy(WCTKM^S#J^><^L5yI-o;NaJK7X+Oiry-4wBhdE%T_$U!7ohIY`2 zvn>q`#s$3beaBIAPk^H*|TW?q>c^sR}Z|!(Yj6 z<@)(YU%If`{~v2<5!iuR(%iyd{JY2jUeYRAVcfzxjYj${KZC0JtQcz;nQ^9u#IFG% zA7)kySq^^|YNUn3ilmxs341A`g9>$wyrQOu1z8d(TgXlg`IsZM*HDGv1HD2Rd+7md z##0|Z(lIbd;;AqwAk%!6u}Y33+VZ6`r4*x6@rIaSV!lj{*m2QNSciN{lErCt9)PHr4ovw^U#pnhGZ7$XsY0IFYR?1TfQX?Fwy_#m0w7Pb6$RM` zT6%dYK-z`8x|)_I0y*$tbeCvqn5dio4^+rFqb-UMl*)r=XIiR#>MDjcFB2W4PcxAl zLBFD}iQvqwXSG);!pC&1loVxihC$Aep0e#6g zDW0bFeG;_Tul@?}ry7lGUHh{{E^-Zv!3DO3=tYM$C7QLCJx89l#WwjjleI2AA~Qhx z|D-OC8FIQ*8QOWvVVeNEHkJuxV!xEztGJ|b=Ko{ORJJzPDYV^MQ$}w5k?2 zcoyqS`3F>(c_M>il@@Y%A@9qGaflvxR3iPe>3FTgI@~>Y_}et9ey3xC(jzF7PO2mUNBYYY zlN-xKT7=LY8w**Sitzfzu|+l^_tr1jF>aaPPH_a=2>fyJ>kS~x%#cq3s+rv5!d;YM z7vY&dx`tAFIuktgxb+)n`?=B}Y2X;%964zSto~zuC1a7|d%GZNqt|V-iaEoGI1ptP zr>dwT+5N{9cyL<4JTq%*e#G8s2nsO+scCU0IhzU}>itv;?*?g*6C zsiV%7u=@B-ACD@K9AB^1wxQzARyk&P@nuZ&ty|OYBAS&*9{9X2+@tdfxV*8DwG1}O zdiI|*FcnVV-Q5`4v}2CzoiTnG*6e>!hlv)*q%Mxb$)g}=e;rQAmP8h91&-a7jydWw zzH38(CmYsnVJ$WrpE65g>Dl^Mt)4de{_Yw18cC-LWTVkGV+jAg2yLd&u1RUPD zxMUXfH;nWor{fR#jCA~>5 z@cU^HuHt$M*e;Dlg$bxS`yi;A^94%5sB!Zakiag z#ozt}phC8zWNQ>v;+tPde^FFUY2M%kKyjJZS0Cj3gfRSBD1zS8UD6SYs+n>l|zTTxGEZ|NQoKD{pbbyRYHuWtg4gA_ihj{<6~7M zyqYMp()QX4vtQg9!5HKQ0aiF959@z#EyVzs8`Rmul=-VZqe8Ac&>@CeIf@{e9G*>k z1i;NOSmoo3+cr9r&8a&zHiyo~7=Dow-eG!Q?Q|1#S#hc-TJ($tMi3w&aDJn^QQhU1 z>oPvw>ME7iv0*l@#BpDYa!Ly;6%=s#Ay8|vMjHOv9rF|PV@FG#l{X3B$qjiV&nboV{1-`Pu(fg_|I@g&CuW4+j?(9kU zHwe3cEkP&`x+q)hhV-{s6ele$t$gLf2eappYSxO{Lrmw8f5R&|z4)*aFd2VE3a_-t zSxP#e69XnG?|D`>%jxzoD3Pkr%vx&@#+>)1knwGvFmsZ|hmDJH z+Ku>D$sj=x!+Uat=3+_a()d7K`#WYp5)P;OU@1s&p1Pl#b+G)Uc+x7?+i6x^0<&E; z=IatRN-?>rAPHTA4l36m-q*|&7g{-yDq(%BeHgc`Zg4Y_H)o>qtftDlDOf3cUPd%c z#uGX$RC;=aVejSTl@jITVisOUXAq&BFyT8C{7hv)KuZPr_>EveKr$|MId;)tU7dJr zNo*}m;Tx!3>mjX>+Vh^)@BMV4$mJlBx%`NBO4&imH2olbw>`b|QVxP(u6hV^$10jq1RSV(Y~Sr=@Ed7ve6~>u z#Nt)Z8Y-7)x*osh-g=lPPPx;{^03irorQ}~u`f&yHg<}?i9*g~6!M2M!8}2~@X%rd z7!ey`vP7Eyg9TJONAq|IIch&{_INjX8AEJU4R-5krspIn)LxD*g_@j%;>kfG zRbABEKU|tB7_OiYSMmjPI+~Sm+MUNK)4gV#_}1YC@@smEWEtA$@<$BG62<1RyH4BB zcIiJf&!I?v7N*Rms$u?Cd!hyv5%i|!k3e-Z+cq6hZ^_*QoDKx|X%yE>v6TC~P-lL1 zk1aVZ=pau~riBV&-myWIO`($C*4488Le8qKXp(+gQ!!WnG9wtfP<M zD4|Q}6z0Q#fHjO?AI&b>Q6Z$Bhr5alTP(ZKYU80&X}Bszz64x;<~1YYhJgOLA%4n# zHOy(ty#i`fyJ3#Mttx!Yf5)-sf4kVhp@t%KWQ}#Gka`kx_tSTM$Rzn+Sl5a_@aV@Q zgPs5NRDJ@y$%&T8m1BXZL&PoYB?1r2!~`_Gk`AmIpm^&h_!^~s+}~UC)%HHGpz6OF zEri7av5XV+uNi9MoR{4-YZEtWp_SL?(?IEAlH{6!O3#E)=Hh$tH8|-cS9~9EZJy{? zl4@n4PNRm1z}3Rv(Yl$<&CC^egsUpV|JFQ-hvL$;<^QrUwG37=Jc+);{{;FL_LDHA z#7Qz)LVy_An8XUDl{YD9I!G#r_7w#YZFm@|JIfn=tSqH?*HCldT{ovR%d{+#oCC=q zO-*Q_cRndM@LZxaI@f6Un_)z7Y;dee5y{l6o8&U7mZAbVbMv6y_i}UhXx~ncN-@%S z!CCvN-?9>?{3Ow&dxgWlb{6M4G)cU8zQAeE?FCXrdnvZu=uInQQ8a*xApA$O2sgkq=-f_y+W|c-H~2jWJArrAAC52@j2s9M;emHdxV^6d zwUUpM0MFT+q2NRgZZ!;p>Tg`X;1K6qt6 zx{>~G(>;$LCM8{{6~;<1ycZBb&sw_fyg&D*RI7zsHf@?oU5PFhj4WioxA5A3K>d?J zgPmdqzXM3CvE-G(?|w;=^A#r*z(|-Vf1t{Jmb3JtW;ol^z*ddC0@X92)9+u(3)ys% zLM?*782rZeuOSa!Q`Jnsr)QuxFvq7V?JFFbK#9BGDcrp1W8F;A#M$b`_2fXw)(qod zBnD~6e;$58`&_ZQD6Wdyh??kG3yP5aCF;te{NPD^Vlwl)50e|A_ch#(NGPqf4KS<_ zof$E^^R|Knkl(1r=|Y0L{IXgoiGhwGn%m`=K8JE>uyV?FfmXPpN>P-U~F$rP{? zB~r|v_He{KID$eVTOieGNB^Td%`&O3h^Y{G3_tjso_=vD{?v2=71Bz{nF8A)T&mA& zz^WSyb4i=5=b(XMjv92Q(1`cWZOo>p|ix~oQu z?$*LZ#?TdxT-7$fmOVP;a@_!L3(N}hZ8&u&5jT%9Y+aht->(YT^3HT`p0#yXfWA&T^4S9KR+xl+q zD?W#xMyW<&p}l@^lGw+oho>*-I52(>W z#p;7EXn$KB4HG+sC8=C4KLm3lf>KwmFrrydJ#1(0Wc@d08g(HpZ6Suqweq_f?DV1a zZYROZPvI!1ieGQrf*W4fY|>a*yUC7Nng zWGf=ycwQ_X`47Y#2wRMIc4$-?dD?`nPZYR(*n#Exau|L%iI@FqNX0USY%JoK)7#&7 zE!z8yn)(joOtILb>R9aYz*~O_rB$<7CC!@X()TDBzpk>$Dp`5_`Ghb1cUj@a$*{Wr~+n;tal?Hs9^TmwU2AgpLo7Y4Z!^!?i zS(g`iFFDWkURz66ONrhty}I_ie-3ay&M7c&mb-7NH)yb(Y*aS%JpT4#1KOxBQ=F~l zw>6?4n10z-<+v=wZSxDIYY$xeYalK^J~@t~!S2V1yh}2(1+v%uecMbqJ!X&h79F3h zPb05bn~O>WVH)>GqI;H?eqvz{Wj^RG?+P=OIyj#(zoQ*5EyoYCt1GR+%kt5(jPjMZ z$)cc6f{6Yu-A^WY6(t8gPQ+Per)QSL%gd)@5YtyF3LXfYc1~;9eQ|BR=x2{S8#S!^ zY5)1kH)}&+?gswpw*hL9_LK%*xD0J?3k{5Zy;-^++I#ZtxDss;B*HJnPpOz-cI5ww z`h9sWCc(BEGr>J-AMau860D}B-NWChG@$4_0+fo?Q|8-utKzQubSYCoAwgPtK(XJs zDm3Ba#;vdXX|Hf3J%HRHB=2(}^+X>ny73nl55zVs`q0yfO-M_jCc7uR2>iyBcZ!4) zMzNH_aMbRF7YBEK?{W|E9b=B+`L*9V<*d5u~xrxJMm2Tg-(e^inU?bBn! zt6g3Np7T@)-kOa)Mw0_n4c~6~TpjyrdZ)sT%-z=n#tr~;jno%f*@6AC`K?uCyR z%9ks?w}VGrYlGQON-akXnvW;RRYe<;4IMi+qi)xHr`Vf@K8xQ`RT?xUYiIl6y;rTR zBK3kV*V@il%{4Wi?l7{}5;7qH+FVY`?V21dRadjcO*z_O08?Z)QPno<<$&Qm@0kc8 z{We)X5--Irkw_2ET^}))`|GRK)4AXMn*u&2df57&0z|=)#F@hG@!|Lka*>3i9lAsV zp!K3rI$VM8PAwNYo_<5%YsWg3Wv`;>!34%(il)`%qsuvj`}R*!qw&0N|6Ofe^>}UN zd3VBSaaN=()`mk#Nv&%NZVQZ(3h)J{7%=n=8-&UUFF ze93*)7j)k+8`cvTS*1kxQ|9ZwezFu23jV#TA>fV^RuS+^}b5J zJcvA0M#~l+P{KxDfp_@=UGTR#Ix0f#ms|TfBgNnp&H8$sK7buqO#%i9uUf0?-fkT^ z&p%0x2*N-PxGB}`)j>i`rqFOLHj&lhwOw_aB)`2LXT#of(uMeaYGJ!rs`D+y(+#Uc zw8Zna8AF`?G4X1}9CM^uV?P;HImgbUrknD)FKha>TemY0IvGAm!;6`VNK!0Cshg1; zyBufm4x%qH4WPkEAUBqVIdb0NGX+s^6EuBCA#&m*6R6EesN!avSx-fuk@EO=DUI^3 zYaw0N{ZHCAcB{Gh!8Eo%Vh$b`bX^|AX^!F9{zH-|NCP&upKiHasY(cor{AB#K^wv7 z!MiIZ1qmT3ia9So2_^@7W-`1}EN3x0UE^tr+|34R{tUM0R{y%lib-jR+*@lg04|+y ziT9&XQK7dO${m?JJu!V8A~UTf2oL7WlPbvSmeR&Gz$TcgF-C<%Qp1er+1^geaX;X9 z;+Hcd23^Rb5kKc&E0E5NO3G(UpoSF=4}4n9d)k0li+kJsez5eI@FS@;c2A3#?=1Ud zm!WZK2-JC*h~P7~voZsdk_PujI;2^!2Hr0^`mJDSH>_4T$Zmj^vz@*zenN#=B)BTY z3G!PfGu;j_=Z{#eI>W&z*F{TO{^0!{IH6=!FX1k?*)nUsah%J$v=5tl^0a;zr8u}) zA{4QMwg?23Z;eX10saYq>U;MKqcb<{{atq&>})g%H|n8%@}%;mgVL46kcpo_d* zd*vUGz2(O#>`sY3w>L0=x-(J!amfwdr(aMPK+vI6X5Vm}d4%gYeI?`S?UK~ywF;9L za(A#DA3JG3Tx^><`Q~+=xGH3osjV5ZwA#a7Y4b=)`s+4m{-$!ur!m1Wuu63nO)P(q z&t6ZHu!{5mOqO06|6?<=|Hk-n^Jb8;JG~1$;PkYS;NfzHCC@iaV2@0{);YSj|F)C3 z8aUpSQ@AAZ`|Z^mAH=f3>B^$1!Dw@F3$9e9L$$#P`0I!A=q4L*@_B1xf|0M{SZ4rS zJEyG${z_!?*P|%!)?mg)y5TtZh|>xIrXq-tjxtuB(Ze=FCLeDYyj4(yydPP0DuQ1k z^PIX$_O6&nj%el#zm`FVw5(foAofF7=qhCgQIMetmjV?;!McEBoswfcNA8NB(OH_N!&@Ceb#Dt;kl1tBu}b zD(VN0=rKn+&aPvhK(0Y$S}!E`!zIt6q4>T?I<{B3S*hrW0axy54tM_dPTqcQ*586; zxNXn#5AE2@!bbEuyj+)1QInrG&)F?QU=E2r%JHf?6|o_hWbb#n6d!36RtD6^R#(^i zKPQb*2tT-IGXG>}q*XWuHpkW5!Lh7{fA3f7<>qNs>JUi1ph!tj&%$n4o_NGcyBp!r z_fk*I7QHhX47!aP`Qq$ytGTh?%#>*x9{T_E!?&qYm?>kxTNR&sB;m0f`1bLI($xJ6jN`D7 zt3@aO0q?WSSph+uC$q2Ns8MK!4}L$n3YCeOg(OczW?-63&jhi1zcz zNMakLZmegmP;=IL5My2*&Nr?v!MhzNF`1FN8;^fB$6jh?zvU0|ep)j^3?L0uk>PCs zJNxQ$;l)cVBt?0&6u%=P@irz4e9pK=5^JidjyAiR^cO6iVK^345Q#i z^*L%9uT|jwC`Kr6sF~qMoMmMhUI*Pxfa_(Hgn*tGKP!;tJ0R3ZMoh!@d5C_rSonMA ziTK!5wwiF7J#4xmsk2U;(tvSZpXUlFH$)5{bxi;3|?*z=pxEvSO$T<5&xl=?nX)x98@ zV$y-C5q-mOz7npIRmC5QZkBpHZ2)}ZL>xmHlQktU{7E9z7E4og&+y+7<_4g z9L8{!3x8j1Ywc)CtD-R=9H*)Z74mWVip_5@`!11ef(eHpdWp~G{La1)VCsND3~E`r zvgR}`zuPK3Ki@d^1mMBj$yzSISAmYgOejIA?j*M$lS^fp>Tu3w4#S5P!)@eDae2j1 zN8g*7uS67C-uB`4kNwwuL!IM7;&{RmYV`Orb2zN}GGN{aciD@rU11jrJ?{KlYT1`m;T{MM@9V z*TfBSBvQnWUu}c>$8VoQ6`Y?s?bA{$@{X%Zxdo1u!5U@o@uN9vr_-)Jc&yxA0Y~&i zey`mjF&n=b>HB!K%2;XG@a;HoY%TL*P$#K7D}!6+VYzjt#qhUMnxKn$puft}gntel zJ-x!`EK%V0Pf5aV5!J_8+-=A99ZUT-H}<@h`q=7Dqa?T=ydlpOS9{NC^|D%88tMr* zGPycXDuv%0zrEGgLJ_*Z`WZnf>e9h&QYM-1eOJ@JkzRh=GEuZHIq2W?z?$D5)rT2s zs^s_aIp!vhwEsP4sP}5~36XSf+xK&LWs~J_l4!N_RZGcu6!Ap~n?W;d|ND%tX|!C< zdZ8?4NASMVn>Q}C)+aBxpGl$bSmhTLQ^PQW<*ZacUC;N76A16{xUbyaD$3(-%YLS0 zuQX^l73AuVp-52vZG1MK%ziqhx_6AxY*J4+aWyy0*%d5D(LB+uRe?HU*r;$xDY6gF z-km9ZtlM)GDAhz@vlGs?m%Du=}BecrmCi`qtsmF+u$CMp5kkT+?TCHbanR zT=WXMRI$2w4 z^f>`je`X*J^@c~GpmfpHo|aB<=TXY|g=O1l~IpP04Oo0WjAwUVMH)tKgxmN|^^sE;XULebXx`d$muzvH3Z zES%{YEOT(?m^7P{NtC*sQ?W)VDk*ocg;Y=D*Fr|9TIyX$@=GNH6Q~AUNdephali16 zpL{R^p(D?lHP7U$*Ya`b9cD-4Mh*#lRVxRY9a7^J`e9jnr$a~y>6%O+G3_273bH76i8KI4Zlg`^j&1`&QbGTvcti;Il8dc~EXZwWdx z_F%QmjT|u;Y2wY1MvHkN^A_s2;O_`3Pux|(?Er=oreMr?SsDS+<9}=`vg}Z-m^vLx zvQ%08;-{v6(0;Ktzfkdx^xU%6M)R4FriuT@9m@+~q_kDC@!QOB2>~uU6rs-{k=sGy z*QHb_LeV3aOT9AJH2HChmK+{T?=%ceg87feHX+`vl`o!mX4!pHXtI*YCqr;JS6idC z;-zd&xZ8K~2Jp<)w?!S^DdP@s`l(ewVnXBHft}wNMKqIMzFVQlyPRPatzpM5-iTj& zU`kY`iECm02b9)*j}7UFk*ZZAgsXJk!v7OL#iIyObOTpcmXWY0>vc`~rtCN~GL&vM z)`(1fI7ZX?(e&W{HSx&C4@?MLLLq)c2Gcn}n3PTwAqUzfnyiN9ZYZUohZ;w74jIjO zVS1$FXHkBW=a}R_-4mFbNdz8h`hnkWk21J%Q4_ixmkmlaNOI4{VbXzEL<#?mG}=p0 zAw9BDiS)01sBWYmhLT<@mM63O)=un6ehgVcLwlwAi>BjzQV~Q;gL|i2+KdiiVQdm^ z>M+qupu{0t%@Q5v{H2`1uQ<+H%{}{bccz-t&R=g`JsCOkMGRic&-?qnY>C-=b>C~- z(dV?6U8iGj=R57P*ET5%hhO)8qh)N--9+pzd5bhU7wYWm|KQVd-0kRR_^_MdwE6AD z>-f1;YfVe!jmIFI^LxiwR=J#5G`)BU3kwqI=OD2sMAiwBguYa?vN60et;Qa4Y^mY` zYA#i@|9Fc`um|l`frOQeBdcLmyZ!vR?pM(xG?zoCu=$&S8Em`GmwG=|hq`gL&)wt2 z0!nR8;_0~wvBMnSp`7Vd8V<9Fpb|1Q*e=ULe$Uo;1nfWD9$gromsfYi1wMU|elca@ zDO1(;#ILG@&D-{N|D3YAQ)v%lE9SlVG_6>YC4>& zSC9XEf*mD3<3^4JX4WgOnD;W?T3>Kqc4xl5Ry{GNLY}D#_~Kdq(^T31K1Hp!dA$rD z#28HcgrQ8>EHAO{ z-4M8<-5fuj{yDt6v_Nn^FwC>Z(uXNDh$Xix_C5$UuH?+ck;JVQh($J)YvnTTIGr@Q zS*l2uKa-a-rWfdV0`<5ybH(Gx3v9*xnbW?3>ESeLBQu?G^b`BUi7n zS$5Md%*YU|0YlD|%{pTwT4*A(UU|K`-wV4N0_$YgCTxQc%U9R@+aW|1MRiKd<3P!7 z3_PYrly)aCMD!s{=&JC;{Q1 z7FsrfVnE8{had*&eD7C8Xcyn>ip+XK1_y9^DjlCgcc+?G{cfX~d906r+J{b|&gqHi zl)+M#aSH#$JsWij?uA_R$z}prz@B%bF(q@=)g_v5 zECI#bM(X(65P0Lk9CeDRTMJ26K=q`u6FquQ=nXI)=w$Hq?i5Ap+bOj5kmz zQJgw<08@{l1kkX^*+1Nl+xz=J5?P%zoC7=zplC-o#_ecycbla(E)g@yIJZp@kPk`8k39Mc@ zoz3>QoIgxMfY8`Rfn`u#OLgq5+4^c<4OGOlmd)Uc+Cl@EGMi1; znv_q>kTlzvw~*OX*n2N1x^_S1UhmT_{Vq;RUOnz`6T-kH%b>Bl>K!P-p3NII zP)Sp!O|k1+?j0$se-v6TDuD&=fu>p7yQV|^yE@_Ip z%psL%E7xL)j+;Xa6 zWrgE>G6{l4K*G4K$0WhX9*Ec93>K-^Z?Zd^uT0O|zBKNr`VFb@qEBaEh}&NXi`e9N z1^(E96?1lhi&tqLE_+OJ&3e)`iZH%wt-1^p>sfMok761FN2WTnHM$V2zWe^6W>AUE>Lcl8z}wtcKcZP zxqhYXvr?1%JaT}KMhwllZO$vX-jPy?6bfw7Vk`C${owBszMDdb-AH+oUvG=tO`f&p z)ijNn7zh}GSztRdfn&yF2|b}$Yq#F9J}1{KHZhEO`|`tVj~<_Jo!pM*X&Ga(V-YX; zAVOJfWt1?iVY$lt->m8>QLPXEMAl5lX%Pfnej@k`%DsM)NUR|Fj z5Y(O~r~*%Z(OV8Icmz*7LELCB*U?j7zUhOo z{6;=g@Cdy};lQkZ^d}Z`-(<`lKzPHGr|dc`I%P}^&Vgm_*(RXj(I&ZTkcZb0>&_QP z#(b5b29H|x7B>A>rJ^ptQ&qCVBmj6N>1=%OSCz~5v6=pt_qZWTx7v+IbB=xi+3qWz zlP?a6iwhNJ9ha5n_wyjlWdDn(x8REMkJ^O=K{`YbrMtVk1r+IS>F%K!LRv&Xx*Mds zOF~k*BnK22x&{~+7&!O;dERqgzQ8Qjtl9h8SN%Bp`GHvoF2rP*ux6fd2n={0xX+1f zj1lc^)iv-RQO`-7%AHQOHX;6DQu?L($-(7Y^!<9TSGkGLfz6&GsA8^k7kYiPuAULx zeoTL7T?%7`v~6Y`XbWt#h4e|>m1qz9-)>`+x?~HTZcxN+;|LxjBSq}$TJSg>NNzC( zRn!IpF97f^B(D)274_HBO||2)vWn;G7~(`L=ZL~LNH^R=ZYU1VxD1o=DhUyfJRZF}viuiQ>>6M6p?k$N?; zEg6t!C~Y%tU4cEUH$GwaS+SB#GN9VQa{abJtItf*|1mP1@SSrcg|v@}8Tf?6zPP*0Q|PRJb#UrcMIF4CyKo3l<2-S$GToUxT$YMR9`U{;!KS6D zp%Vk4rt{gY;Cs{Xa?j#YtC4S)e_`5_^LK+vU-_;k)cfj{#k@2&r8t7o3L{!C=ansQiHtJJMwGCg5pZ(oiJLcsI(oFiXaukS$>;%C+QG1#@y5INgu zGlv4kOA+`oLq4B7$T;Z-Q+1dv@-Ga&sYd*bbC%Y>yw9w=4rTQ@5tsLQDJ)Bd0Kc7qC?ipJPIB%u_0mzjGQch05YxcbPwKeX1=lj3RV z=&YjYqH7;DrSIwSJ}5Zha)ppz1vd;ZmMjr^Bj|7H`W~-t@twl%p9}9oMkWtc2~T|g zb_GiYEg#PmhMNS8F?xEy=`$E;`+?tx2Wsr_L?Fuc% zgM|(+*UFq(8*V?Z_=nDaA`v{wR*J;o3}u$tNkcqUKu~c=AjWyw$CZ;m3Y2n*Sr!98 z|Kid?V;murEiKyWcmFyUD~8ZSiLx2Wwdi(gQX%7)xt}NuNlxsqM4N4*A|kh~HyM<+@-NWA`Q9v~vEGpLq*>%Hpc!lDcSBRZ!u7&35nK{Wj7zgC1C*``lQ zooJo&bd*zcl1W!+i(c5=Q1YSFgx%U2xe`7)k}T`-)x8!;hMH675suY8(-V=nOi!k{ z+!excqqTX*S|PD!g7g=7*C(3o01HQ~EHGZH1nyKjXD3bNqNH7h%&8(a)_+l=s4^DT zNh3}FvnBLhgR-Z)MKrjMz-noecBBo}Pl*$|-@3Ri-n`Ib>}xBl86Y?_HC%1tlX|%H z@TIQlK4xIw=%eZpQ-+XtwMUn|M{h_KH)>wL@~cquucsoV4T9NspH{HZ&{~10!3FGvGR7r2vBLc~V zk81!UgULbg>^oZz*dC|n8l`VW<5GZ=5k5HZCesf1w?dZy{|Mc`kVEkERrB{DL?(dH zQ8oFb)v4)mykeKnYpVJ7xDX>38nf7TTo&Nr`RfZw*`FLyuk|zd`)LVwe!Jg1cL?G# zWRG*p9rI3G6%TP?8L%!n^>4Zdj2Ppyg_0G5^wvF(YAzp$p^+v|rJD$Sy^Yt zFEjLp;t#o{o<2G*{n(x&V3?5!eJljvV18aCOs--|yX(fRQC%*CW&L5yIz zKtKzP+1U+}JGWIhL~P%mfk}RyGdY#Wh9hiE&7@!XoUC$gT+#7-?@ciO>Au$Y*f`5^ zL@gP$1Z@?c7la8&J%4f2Hz=MxVTKme0|#RUnW8lF%>QYoYl0CZwrW@ zIt>S>dg{#FuP`D41dff`@ACq8JuuI2uFmVXFSnyrjt!|`lwv;L+s-!_5}p5P7NT+g z4}VHIfX7B%;W~Nfc`qor;e=gP9r!#_BAFB*sI~iKpWk_?E}c~cyb8u1YSxM0*{0tJ zi{{Pyh2Ga) zkGZ}ZE>WV*tBvZ{ZBKzu!b(Oh&JNQ;u!oPMpCkUuEJ|Sl3=JG3%KBuZir}=(>UOB! z{b0U}l&a{E*>qZZ8o6>%jN?Dm7@SbK)$0D(EzxGB`>-=Vy>r@i78UU~Q4j)V#v>Qv zsj415YH?hC8UF#wy%9X}%&-Sx+|)U{VmC1Pu(Si5`;l3HtD;ihi?tb zA9uKS_B}9D(q!x&DAO5iBdB7m$YODpgQ$;vJ3j7fo3oYJT7F%`Ws%C98I}8}&?bOJ zCxXH%B*ba>jlpJoGXju&VBnSSnlE1Nvkge%@SXWvjUEW`4b*?VSB|k{J{YlC$q?Tu zLf9}6{gRVmQ%2I7{C%&cHY`|S5Iaa%HG6^Oi8^}{95HiltdPuEHthj8Q(Tw@$rN*?hI=%MS;^ z?U%eAh)OL_A>_WZ8unAVmF*CQAW4N2>s4)677tQNcj(pna405 zZ8fis1r*j=dJi9{E_7{}Sd9|Y-9C&}+C#)++oiIz01Y5G44(|wn##y_&x$6Dp(vhc zqa#k|S6A`v+r}7w(-p&wo?z249Pq+e*J5D_;qBo7KapUX_PHLoG!47d;~Rpjh|$DC z`Ii=zRSSw6rsBS1YiGSjY3jrAl+5rA-vnK}ZHQYc^~=-}or<}bkEtvqo25$}auXt+`ZV%uEe#UcXYw_c6i0o6h3^?3L1Z^VGPmcDdeZ zu~Gck@-D5;D{=xv26a^d+0+i53E=x1-lRx@!xa3!Hp|@)n6k9DJ>}9@7%B;)2jdA_N;}9|U4u>?0(=lR5h5IzG zs%9-;Cy&RY2$xb~bYZ&gd;8W{u{#t zWuiLS&bW6vwQRbT^r*mzCY;12|>vZO@!qE*6C$beG%Dnr?R@ zusorO{kBqVkmn$STy;WGA9!BRDg4N#4dUu5mhY`6-|;NzN}y(V^84fS7i1STmcKrD zE}Qy}i@L0h%PPzxvDCx4fB7ck;!s8SUGrHd>BrOqbHWRk<>)_iwe%If{dh;u4 z>bYW!E-#aYiM+2BwL*>|jJM8lF)^d9y{}n*Pv>#IiBc@ae1R|-o3`u4k6uRpRk7wS zdRwJY06F36t|u?~t+DbI^Ygq}UKA!#m%B6vWUlGD+*I%{ zlJso*88Uyz)n*6J^DS8~s=hePxpY&{23BFW$NM4zHiyG_+Wy+k#`5N2(crBu6opkY zMi}kHk)1sJlysuIIPA|d2I=R;2kyu;MM=46fIx4%l1c9Ll{Y>Ern)l;Wa8I7On?k`{dr*D}>9dZ{MEgPD z{9t(QN@rEfc}^RIl9>>!h`wPjAyYs=vKfY9Ab_wI8wx_gLA1ev2ZQJc%Et}g&6}8y zW7BBic_DzO#Z#t$23>4p{Xg^Sdv(>zKc4pXZ)!zbQ+)hB)#K1vA7G-`Ovssy*);-+ zFK6X!bCXIyjraCF4EegN_(|sOX3b54YISbl=15mX%7o5T%=>aBD%cf%;@fh((z9mO z^C%=r+BYxebNDRt9MucCSS%xi!>Cy>4`~Gx_6L(Hx-^vMD1&-;M3KF{mUnz`z=ta| zUE<#(b-r=9=zprE)ZNEMPh{$$TuNok`aR~J0MIqGl9ZDTqneY`&|+~vkfU{$W302l zy*cSgl5)3|!?06gpX3}5wB4kjJa76zf7?kXtd4|wOliR~X{)_jX^ z=*#k+%DnjnErFBhee9VVQ)4c+zeD1hjyujU`{NHCubdPD$QwqNK}szle##`MB_l(T zKo&tVaZKn%tUX*Og~8$pzbtCvOUS>SRGW4w<61IAyCoVA#}9>QbR>j> ze%g`L-w47vYBAf(rA_Xh+5lHt(+oR}qGJIf2dz4{{{Nl;J#m_qO7(Gd#`}zm>R>iX zk(wM74o$G*EFVjM1~u_Q)O|2Ua^>ywduFyh5ZfDfhD`K<=jztI1LDHq>Jua-GUfNa z%ae64QpS(LO?#Y~r-#O!28NX|m2gpB}x9n^-=$-wt*zkmpgMi3^DgCdjtApI(+^p$40ge%92O_wAF zKG3rx4cFyd>xQkhCB=z})4#ScZhwZo<_eVuzS@>Qzp@d3b+Cch=i#CP~Z zKWMXaZeeS-cCv{i3c~oq>V3GBYNH~372{kQc~xv&#(Qf7Kjt)jd@4tv^q5hM9M0oca=@rm%IV?#q%DhT{%_$4ozT?O#9J2%<4E6u zY+i4VP&I5H)%B&7sggN)`JFBC&;O6RHHNFy0d+H>$s@@?TUx>tiEyg>JKSpa%e{=0 zC#7KXe2LuL>D+LKl2U7TVU5s3Z6461FJh$p|EUU3thP8!;*A2%l3nMSYhmepET1s7 z?4!9-oT!qlq+Pi+74AMd?v5gZ6?#`cPy~(?)@{I9AOy7h1vth8>V7B`Xy0`~1eZJC z5u9`}k&KGd&S{oUdo03GVf2nE)yi9EL)TsW-rNFE)Rpj-b)PezpIEcHbDnb*?Ty9(=B?t_LX4r zSj_JMroTTRR^}^p+1Kk2>|G5G?l&HLM%e7~UoY7uxYEx+KLks`P6(X4zfP}{(rL6QsLl?-1Qyb_5$LLI0&#t$AljNj0r_i@x=X#213A;NGUbrm5afw)Op%lIEJobdp^Bp00d!a? zC)HHrcSV&h%X~7qwKtGrBiBDMNq!o;&$V}-f1Dl(f17oQc$)`-o5*5; zIthAv)uB+|5qf&1vA^%$pb`>HgWGSP`<6Ivq?PsYN}Q_R))aisRm^y>KOll)KLG3@ zIr@JN%SKuaKs9w$qt3{b0!KYuPAE!9M8v3=y${I;4ZHn%Nw1{LjC+>5Y>fpHt*KiU zgKuS3*Ogov-``M94yxTmi?vig+5-OfIR8<;F38K(DRMWp5kW|)Cy;b9&*mdg-o(U0 z%6^^Es?=f4w>i%IZxJD<;}rB$c11VrBtwFScg)nO`G3$EFl z9g6s!vUCH^Fg0{u5)GPFJE zc=hmYBPI}5{d@sp3ag`J?V)CGNoImsgc9FEiTCBsWjceMGifao#$%+Q<1uEGrF=qf zqmDQ--v|j&0-AF8Osq#NQ9^WaF-2iTx6{ zP|c=o;mv4R^lmuo;BMogEaB7KjBB;X09^q`DiO%|?_YIGh156mkJ}5Fcb>jk5?#-V zc~b`Ko7iq0(8R*!-bpvt;UwOERgT`mh~>VLHJeo--gh2xJ{RXvb{WX7Qw9xx9Tc^# zMLG1}BKrGVG%U!;a91Q1DgZRcc_Vi6Ok*Yj8N@I_`j$WDk8;!zYn|p>O^-v=Aw`-6 z`1WY^M_lh@Xx4i66xgXT^l+-)-ly?j_O*jba83A7@miY9r85R*C{*~Mtwwjbk@SJ-q zFucE9$?Gfp3Vv!Mbv zgHrhnL1(|Tj*4Ou(7qrzz%(B#OT?o{{PX7?-X7)Im!#o>Ju#Sq!nB^rWw~8GndJ@M z!MEox`5uy@y_e`6&@vNfw<4pX$E_mefGCEiqX9XX=TmqzRpqNO&T{c;H$lKxy zR57EA5eP_;qHgHG4Es|ZHd46oVo!f%!ca-ByQaAQ-f`;4uyg(FC>~HEgY6{O7O$m$oLGg6^iit?K&a6kG z2#%Bvv_oNecddAFCb&UMOG8UDH%AlygT{ik;72GXU8`kyk!7Lf=SP=cGP3=08t>5= zNfJ-LM=jq;LpE}4d^S&eH%P|=b8y_sT_@e_fWIlp{A+)041)4dE@miNS7`0W70*WN z3%LZ1KgVD1853uI0;m-`}jr)zFtDT>)F z0fD>7!>AX`LMoVUZiQ|@?XrE3!3B}Kvgxk(;|#|1;rb7P=o1SfFHcHBWf{A^ZP$=` zx3jt_c-O;+S7w^%2NP+Jhbzu~!}ZZhZ9t1_u?nz_I1rw3i+IIul+Tq`GR>9=_3l2E z&G+TdPD?*Y)Xw`Le%CIeK>NLK{sQ*RH&ZT4G$?_4-C}Ti@~|m(QBi0g>@@K5e2^e} zBSX|G%EVpP>z*s~u5B||3An^DG(9D!{Ux=TYI)FdpgiTFY8d$O9T$$=BWsZ5>U3Y} zZ1iX-!-aP*EK*1sXFtGvNnfwl#KOmEGHX$*4CF9&aQ%qRX*?F(ZdxgR`kgVZdn)>M zAGs^V3+6h}qQbo=lb*S1*Dv+6h{RUT90BS3g+Nk5h zQl0r3$)@ocbCIkmtL6KsxKkkNfPV&uhX?@T&JBTtDd)s1wDPcZ>sXB zxt$JszQn}826LxHO3X@ri;%!%=cJjom zHgEpmb8iWEWhFZLdovmdO;24u>oj637Tt-WU&o4#exoj(Zgewrfp&*+>e+=unmm>t z!ad5~|qWQm!!Htt`21fRMHLr|+d1?MYGgXTGL3;AzKIi33Azu3|WA`6@ z;k_;el-v`}t_wbX9yVoT*!1+d%M?y&XE&m2Tk8>XdkdHcoP`c4>`8Yw^m$47^{k8Z8|lc`R1Jxe<9pU(-#e)z+; zGZ!QkyY^33Wc8sWlk^fQ|$76OedfU9}B(jh-M7) z-)%h3tHTIeo4-xjeqhsx8yV~&TXa(H>4avT_@HcvMHn^@=$n1xS>)~!Vb!MW{F@2Q zOCNJjn=i2_q#nLI42s~!VnQcsu-28D5$)$H=YV-JR&W6Ug z`#6vQ9l7TDzcU<5dpwPuxoTtJjk=vP|IPGp4t4N(1a4z3?^XYVUQBH6=T%_m%Wln0 zEm-@mHS2Q1X|EoXsO3cB$p^c9oTqi7CF}b9d!pvx7F-kpq}*nf3Rdsm2gompJG2)k zY||`YF5BIt=tHSo2B)SDoHLWX9_v)nX&r}1Y=svNd{NQnfHdNzf36)wf9jrTOCov& z9b~%NlGu+7KydgG)~+Q(9*GHD2+5#nN8r7Ny5G~No$Om=$ThdV%;`hDhq4(S=#rqK zPc0mNCjE@G;`Ix4Urf8|^8_C=u|5pcE@|4~#f26XQrJw3v_j9sdbrQkIv*MS=1rIY z6TkUq;1eHD&~qWX|8H=2YOLCS;Q?uv_ikSsYflI}uj>GwI_Gt0bw5wX=3JGHgR|C!PbRUxZ-EPdje50Ev!;B^ts7Z<;#waWE4`OktH%;zOy`hDo# zd^W_lMEl==nE-wsk3hZq(xAu}@mvn%Zrc<$bg712dJ;KnE|h;HD6y+9{q%X}l6vBE zB+hUCAUt{Ge0K*`d9cdpUbV~_(si@B->HSMz$u~MC_g9yqAsdz+UboEjmI<30(i}8 z_!pZ!{wc2Xg0l^ufRpw;pxyE9jyXntDYgSk8gJfjJs0)7O&pW@?`*dHtBn%(f*r^e z<~H@u>&lcPaTOKx35UEo>zLJYhMM+~S}&g4RBKdss$uX^gg*1)e(}pXwNk&1>v~$8 zyUMv7c~gJ}YGAgwddXIzn)3PqMr;8 z3;*k>ZN7T5<`gaAo_dCdcOO0kSiJxEK3d}pbD(p0qG2%F#$1cm(49tZxDOtw+;B-e zlY67&#^rrJ40nHaAZvx@@ zzcSm<{7wZ1tn+$EVP0>3y6kRs)b(-{Ub%&7$ z#;o8aws=>~GL-tbddWCGUU_(2PX;<@YV`No;bCxP;i{yF2!@rWCu*k)a{`!ceEa;%seZ8; z$`OK|7p@J;%n_iw^KiHXvdtEMd*tWm$hhB=Urhbly91}qRyw?*DITB;y{o_ipCWT{ zSuEU620EK;T|rm-n;S5mwN+Qun&`DucKs+PT&jROWk@i*XB{-JY8z+DV2ia6O4$-_ z;yoNuZ%in7vU%iYlGw2U-%nsiaF13VYqlQ?IAeBsn}nKqUoY|pq&C6JlOzOeT-%U*sQG2ECr=m}dcnnZXP2`H~M|}geJgU7pEzCp2em{kuo&8b?{x$eFpQbXKTPcC+ z0yJ?zQDr$jteQ<$2nHgBs&A~>VJ?`FkAUYm00zDszac)+Ffq-A{jfZIs-+@JG=gfggky2=NN5 zs94mbP(lBSO1B<$vxR4L<`qT4YgYMNjMg&sG2_ti2L{8;JyXnP}T`K1}d;V{p1Lfs^j1__C?DVzEKMFz)mhs-wsjK;|f7%o6|Fnez9N&a!)rr%G zT!?!<2weGO@#-h?r*}K|AJp0o{@&a5ruX?BM;#{GJg3e#qtrKEKk!e%H<`cTvN+pq zbzY&`u2}mE9Vg%8!b9@b-Y$nycR$sx=pVg05yrE1v7>}W7{)9k!2aE^2m;?n;e||5Pcs{-8&fhG_eW6?H(siR%gcf0P zC$cLL;Z&(W*X@)MF)~bB)UPR;M!|h=fo%25AMGIIhV z89sOI4w4k+a{`^zzm-Efb#@lxG^(ulF}#w5+}0AAk_ zh+#@l(Xy=034Oltxbr5ni{CU4fd()5B6~|3kDxzaS5y~#dy6bD`_%c9uy#u$bS|EH z3#hLe_oskf8O*_rQ=Jghu-cj04BoZ%qmA8_Mmb!bhf$y;Ek9%Ry?J2{|d(hiI=KD5VQA_t{do8Jk|md+Ft}PXIY? z^Iby^xc;}J|C$MYlA@H$FeSo1viO5rQs=!_Ue0hv@TgIi3gETx0U3?Va>)%1=ClSY z>hrG>SI$4bZgRM~2S2|%QeS?~3Y@sG!^yDpZDp@Fv^zQPse=iI!WU+XmHZ{$+o)Xc zy)5Sg8i{7Se~k{oH}CSB-cL97JOI4{u5wF)T?LU1M{UvNSH$kWb0GD+uJ{zGT&A7l z_h&u-RyucaH7&znZ49G@*5li&dEzPn}cwp=yI4d#~hd%d3I*1he4BJ7!kh zO5%*VhRR6+LDW7NdDb=YjLkr@!@GiL$En|JLG#m3zj96fVsD&2{1%@ONxv@KJa<9_ zMCy3$jm7PDo%N_oWeQE|AX(+2TjVhtH0C0hna9cN`fR`aQG&goFEi+|jW-FXaJs59 z9W6@z4^eN=PSqF_(3e3Y=2QW^u18CfXJ8?+>Gu!sz`NosyEdS<>**20rvEc~EhIw^ zJ)@G`mRv+@!+Qi+-1xSPmSd;?!RTxOhwmQe&E8}D#LH z{QB_pj~R57u_h@OquKT~4P$uoXe{kNoJ=$0&sYw9C@Ep^w_f+le7pkzk61)!Zv%x! z=`V#L4Eko9kfyqv3)TM_qNZjg4{Qb67^zY5Ss6Sjg4?()&jxfdI zb25>y{}l;2sSx?JU!QHAx8`BLUvI(pIIHy0$6NB``OBam4kS4%6CLs+wor<^PLdO-#0`BGyaFWXeWd7zUDS_Ud6rH{Zdu?oismWDmfR5Mu0s9yvBq^ z^9hf5i6ew&!Cnu)b<((5ApCjYRlD-$BP2U7>uIxI6R7mCP0NMbNMt(mBaF{X9&YBG zd;*D4jng>n{`*NHALq^n)?B+L-MXZIXIj0mLSVzhcA^UR?s=>F6ZCd(l+i;5;uqiY zEsdAYe?kY{@D)zwpQ4IwP>0ZoL3>~8T;zbIea}`nLux!Exf|-*_TuCvmhtI2A9Apz z1<2LhX9%|M65lJ1hKn}ga;lRlxFx-ziGbLs<92*dY-MLFZ4i^>czc=8qZ~-bfcm+S zC&FFQ=QxH!<$a?3Ti(V!gOqjnI8CVJw6ZrmKY7L?@^zD5 z9?ECv&%>2}k5H$4*dDQ7EfFs@oaJGyl`Fw@p?(^q1v)5`lRZWVhe=R7i(?@B!;xkRapNjT}WcnBCraPX&~?0z7QKs{k1@zD|(iu z3mb==%`1@s6id-z8=~%xw(N%h8pFF2e9tsL{58&Plh)jQXYXrG6w~~H);#Fsao=|3 zo=S7d;^yru83)m>pTF}7S-H_bJ!=WcA^5iVHJQ1ssF7VQXZg9>09AE-U6pZKr5>Do zFi$9j&Fmk-s$npn(@p(2zUet)6Rj&82%7)e^^(kAy0E( z75zU0RR&9h`U|N53h?-vTWVb|V!V3=D8Tylqc_j?5i|H1=x}|}$~Z)?^aJ5W^Wf-p zfL52Di^FO&mWj+iiNdM8kWTG{LN<~bXcOy2TcC!N~ zheKF&QZVqw*uHzZC)i$T}iu@^(`>ii4 zjW$m7hu%?=<5gY>H?;pVeS@5+b=Lt`u{z&by7`W;3BA#FTJ?!fxwaE!`R0F2GxmP> zU691ds}A^P;N-YdvHP&|R#!nKKqEn&RcBCgrsn%!4X+FGD@St3L6 zov!@2&tigtsYwi%Yr$NnHf5u!F=ZE@6YR-uRu|q^p}c?|_M~X!`ql(^$^%4!22_W{ z?)qq1-7N3nyDqrwAi)bdh9|uKX-OPI-VjxQ61Ug#7q!{xW+vMJ_K|Q>9#r^~yCF^a zC+vN-m%l$K=qC<&MJKeIJQQzz*qcyw#e4Az1N*?J!;!?HpwL)gohh;w7RkNKy3wfcgrnV-LEV*dMry6s+|U8DKt#Y(P-zudQh z$rFta5yxsAbOdUER!}9Ir}{AI+hy318qXA zRNT~(;)<2@IF2$OlCBm6bPSa(|0OeW-Js>g6pcG-J2y2WM3+lH5`r`nYnRvWzNLRpagCGXXB%ykvd7AQ6V<@)%*!AA{?qwRG4e zcuk5bLX48TWFx&)-RWg@=w^;wtjRCTl$K;;{IJ{eW67MlJr8)ldyCK=+Zr|YliXM~ zX@s12!F)C(K3jmFz;)s76Q|;$q242WU0AOS{J_iAIqk_;hl$@8D#em{5yej8g9ffRN|2#Exg+Kuc2U?FZ3w;um~ zA8Me368=iwLX5dAAe}8o4_`u$zkT)*n(B35dH3_~*(zzeh7_!K{Qec>ZaiE62-Mv0 zO-3)w?(TATcbPG+RD*V1<~(VE_cV^%ZX8H~*}D=2BM$65mp6Q~a{~T(E-mv*mVSPz z9fZHV57ec(j-$~RG|5ToO5Qu);UTZmLHQs7kf?-p>$(vK%7%M{X%O)?si3MqOx2&_ z8+XOiHMi4+;r+9GD1r3D=mV4Y7sUTRGJTdiE2>~VBY38^*dKo`+x5|4?K4Rs zzjj}av%eTvCL9xXO1lofOpwZB0&KJStgzLpx^Ww!uq>%|`?(TUIVTEu&^OmU7?(&a z*ma7P3{~@0synHnYSadc723-YZqCcSJwal4 z%lfhg;iL_JQU4BREevB??t=d~34v{~YP--J$vgiV$I+XWzd zw%#zf;}j|@8AjE9*x^0)o$+$jsV;E6`oBsPt23|Ir;m(5qQzJSkidSC8CDjOnkpH& zLG&Z|&9Px^n5W0Zg%&9t2t4d5IfVX-iag)RyGr^ zD896I{|)NgA8ZQ0$=ry5DFw zo-;Z9ewfQ8NMpei;i%ToP<$hyoZdNFq0dhgUw1!kp?`~QZwthv>y&qI7EdzLF+*Pd zSBR;JIZIQ3GatBY|NP0+i1zo70xmpn=HdYs%#(%pYHL~};z*URN}^Zq$mb)Dtmq5o zzm-{KbCE}j?CAQ6lPt+n*xk@$7j^B(^VQ3~^?zJqFJ);Qh`?VgRrz4_MIrjvXzZ&7 zq69lf=6_b(GX7dOax(D0zU(%q!(jVY;jQ!qDjKtS4r@d+4vd|zw&$AlL=E{WbAhaW zU}@;oO%z`4o|HX}EkCL#5_dnkKZxeM=*i>RN_x%7p#s$CY|~YA)^I@Fw}YpRhAa71 zZeW+gax-+}+v}#)llkZPp!D4y118~j7H54I$=!&70UWBcpWK6GPA;YP}hF>!QW#JmiIcq%(DV( z+Nehn&#>D)%&rH#w*i+EVzrNI?@15pxYQPI_-Hy$vSyJ7G@#s$LKGw^w##O=@LWu0ShyjLO9 zKjxY90)WSyPIQx}r-nBPrt;~wf}VjLPXcsukxG^raB?74to?9LN(2sK!^6u>-%R=lSl=x^5U0$ugU?Xxil? zoZq2D1=evT6IxgR4&c0iL)H$TbDAc#5S5$ueM`eWs=ieB=ez$1q*HLXk3Y2@$X9lq zcCI~4>849`b>)n01vlh~<^DAZp-aojdj%}>`RQzb^L*rIhJt&)L?3Z>H9mgfj(zM zT}~M-x%2$#p^QG5dNSoD3%ttcXHz`hs#!wmzzF>imsVpvOqzcmSsAYWh=6g=_H)2D z{*fspZ~QOdl|8yw+jyIfY#p-8U-RAHf15#C89H@n{sYk9f}xWBJ4w;1AyOlsJ`2?t z-yLV0=}W}R;$=la1lEJuiKdQg#i9 zHdMtwub(35_2GG8B(?Weq4r3i;?sp1E-~=9sH)h{?9e>on2!$@wy8x{rE`>q4{zT;XCZzc-pge;ciwdZ6h3=$aJ?te zrrV9~Yn_ni-=m{&d>0`e$-+xwN%IdM11}N#N<(cxGgEC|gZ8u`BeCI7k@UGN<>_^n zw0CkGrWaJ6lFb%-M2KXo)Y2^Xc!80d7v)H^4*QfwF>N9I5)os@_d}O5R<41knfhg9 zebb*2`-t3l@wd#(v<2c}C~PBJ3T^Cyid6T9T!C$9Or zPgr)ECT)2Ym+4Q5O8z6kV!M^-SGg^w<*SsFPLJnB+6z_yPvN1l=YjpsK1Ej_HIfnh z_wK0FxQ@wC*P=CFB#manc;k$}PWugfCIil^75J{Kd*x+|P32GnUE)6H0%7*!kmag1 zz};UV&%IIfs{LMy)@kl>OOBj=k>)j_k&M)Gpp09s(?H80`*L%6njr2w!f{VD zv%BPR)Fdm-j`YZS=u5hU!9!jU&#K;^N=dhP3IdxzmU)Z)*r@(KXgQ{zYWAx(&8siu zx&__+H;gGkfX_xp;}Suxy$g7C1pW_uZyi*}n(cuGf+x5IcL|zc!Ciy9Lqc$ZZ#1~O zJ8axF!P!`F3-0dj5Zqp8&b>4D+@X=C1+69QA?uL=26Z;M!!pb#Z{Dn_QySchc_ zBdH43c|Jk;88@S~uCL$+!SC%+uQXXHO0>Pus%Ar#sYXWHi4$JgaC>ICX{FLy`;uga zS$Z|~{Qg5cvkt9zd24Z9wW-Ro)k~S-m1hcG%W_ku& z-$L)m*StQoAanCY2)j6s=U%+N7@bIYR1kkCu6Nm>b=mR$rsj~o+p8_!fjG>L*2iBtm*^$;!fd8^;P&U+JC(e>SsS~Q zZS)C^tURXX>O>irb#{4z%j7R)XOqL@vp~~XMJTQdhbAfzzAa-u-+Elp%ow*9c7y?4 z!Uv>B*mN^P{kBVtpJW`)>znd_!KPD-lNU%1h#stYI2%E)UW7QkGtg|NR*=v#(Yn1m zwsUzJ7~E65e%W$aJg{nYw9uebanztU3l!yjz#ZWl#?$|i6nsAQYCK^Pc512KL%pt} z<#@45J8gBP3ew#x4Fz@}9&JG(;9saWWb2u+%Hw2jW zLpM{T(0s(|q@uMIY!*|W@wm+6W~=Wb1#%6Y0eJ+3JdUa$8SMxbgL<|@RR9!FQ zyoT8D2(cJ!I?uz@X@1wScn4rXc`08}ZW}XYWWiKYWLkKiEZnozWmu_R!`RP^Z5U?J zUoDRafFmH#40FZF7^uytgd=y)ZR$KfWx2(lr5cXn^JqLZ?Ew!v5ALrCLwdBBEH)BO zIhtwc;It^Rk&8u1yFDA&wX*_q8*@$IN(+Wsm_dHu z{hR><7SsZzNzT2c?XU)YY*dvet}T9?owZUwGaz z=tH%BArLk-7lS=Z-euFi*=a&P`{A@dO0U}4AZ9)%ft(tmiUIXj9{-3&?iCZoathPkI+^)+RN*RGSDp|8 z7M}02bKx`Jm*Fi4qj4Yfx6KRQbXrH7YWUmI1<{AG;CHLC7Awe!bQce#F-aI`b~(|# zQHlm{Y6Px3 ze>?V|xTEM7PE#jLc0l7pdPNk=BA5y!L@r3n&5j%DTX?6~zig`>u6ZT{HrXi2E#8vG zy%XZ3%GWKsY-Pp#mhFNm6Fo=Eaq`_IVV+1#aKbeATQS}4V3cuCDJxkFk(`5`9EcWL zv-ow1>d#$b3iY4;`atpk$SHgk4>#{m&1kfGY0)D1Ix2Q?Mxr9YGdNSvu z@^Ga)wZ>?A$O*~;k1_LJa^027(ShpOite#%?X1aMtpzD_6W>Bh|FK)@xs}Fwp4eQYh(CmAJg|g^e}= zg1BJ8P4|Lhs%<{dLK?@^AA(K42_X{+bFSdEVq?_4O`VP$e@xVWJ@6)5@s4fvw5OR+ z38b?9_2WAiad$bN?>oix6>k8nWc!5)u4ipN2@h}!rSKS9R()$!c0m5@N04WUm$Jr8 z^$n~Y+7OPnuna%fDPH6Up)UT4CYIT8PwWGoFNY45Nbk1FfI3UD_NR%PXWS~QsQ@*< zuJJrI_ct;+1`1n>!6tT`%&I||)|jh?bIL`|(ySVCZiY|u5h+fGiiP4Nr52~hCn@$o z;P%k`NDS#@?hI~CURi32seC`XJN66;=$;8Y@iivJIpgVi19VNr!YtU-8?OkuTt~@uJ9N1 z5kuY!q_VE4sJ?oquGei+Y!XRK9eI(x9o~k9X#Ohd@!@V@BT){l%{YzJd+iq&)mO`>U1!!HLdOQj3U9S z*Gr;v3i53`JlMU;X|ry=;8<76oEBClJ!t+J6UyiQ%Ohci1>JrC#&uf}OUOGU^M&+ml$cMJ; zWGwo6BRN84@sl=grL>)0E$@fzD`uiC<;Sqzce$YOD8qp0#EbUP4$}R!+nC&})GD+X zrEM*(sqUPbYvc-mT&RA7UCqxU`(!QwGg>oj8tvy%Kkr%Ht`W|)g}eAkJbz}<{Lm=j zI1Fn{&JCL7FzsrAcB~XSv*_Grs3=_vN@{oytqyq&jsqsT|cg6q}yOetYOG z5DyFG;`&upVuHF@aD~0(Y9E3Jle1j3?Ed7t@MXAp%eC{i487P(?uxOom4~-=(6;%l zK_|k?+lJ-y=KPN^8SU0rMaua}!xuI6@@H5_i5kJ%FrhF7Kv`iM#>n}SFDhTyUHGyy z;#TPy;Khs2?CYI%`t{_|deFeW$4_{Smgq@tYil{%6@)6=pVGGK+jxIO-`eWHg+0=I zwr63}Zof!##%?;G-smb&V!NJid{W6>#O^$<_ zg2nphH}U<_f{$a-R)pL#!~|DCkvd%3M(*2%p=Sw$1ompPtr}Vtd~BLmn@?T&_RU2% zt@qHD*nXOtl*rp!cqq|EXhV~DW9(7B;E-eUPa~g@@AZ07cLyBq3`gc~=jk!BiGu*? zWJRnJcgQCv-&v+a{9%CF8+KYJHEo{_gTYx3$rB0-2)iE49S%|&S6X$(gCA53AQZ6E ziNK+w$85QiH7;8UIYR?ud;2@gI$cX%eQ6DEW!6S?}Jm1dLkVsDte4|xZv^Cn8|f1%Ev5YzWrI(qGmLCEWX5Ym2S8vaTCWd1DMgOa5jrPFbV zceOE(+u%IL|0)0{xNRWTu*ymy{%{+h4NriA!?y!k(>m@qK@kPBZyxNwiCkx}@leEiGam>?&dp|PEiF+{)7vQ?j=%bG6h5EHqPm_bj!9P>pN)5!_kPjO^{I2mc3<3o{E)FEa9&Ga z4H`l%o6>JJbEN%Hs$0O({)31enw_!2AhSq$IVu8IuP`*dnwX-k9N#9Kkk4+Wv_z$d zr4#Cc41=3&f2xdKm}GGT7sZiTNHm9nyet>Br8|Pif^ltC&;4G5iK=9}G}`$dVFLaY zFy{cZ9f$Yx*+ijj1n78lk#l4xB3X-PjB^p=Ly0u`2YEy~k}5U5-we7=6b}7*-VUV;fmQSbleUHZk!ID`;Z|*uS-0V*xffm*h7At_MS;a{MUUB!mM><}Mgf&SWRCS;bM~9O z2p9l9c;69UXqwaE57yxwd4jW9FGLgyee71DVQ@GZ$)#xWOnEoG50?~BL}L54fMx)A2b zu7@U>e3|=%8IXXKT-cwSxV zL0xA#UtG1-Se}^fxv+|HaVy$!4B%4sE_juOq>k6vdW^L%BB(L67*PiYDSGYl{B_VOm;pu ze#!CJVvo}dw>R$ZMp$Y zB~XGI=>2Ixwyx#olE7@?YgR$%uU@MwQp&~vc=fk#vh^rn$^K(0i{fZOJWo$gqRYPrtrg6BvZn<7G6UU_*%Yrrt25^$5*hs9`^ zs|NmuTZ)CljQm3Yq!SOgC_UA3=If|m!!$CoZREy&g|RDK%Px01W*jso5WjFl=v?I= zxW9Q}hLA2&I+m@bPQtcP1}GAd~ZDDqhjnk)u0TFzCY z6fu2izA@5+=P!M*D4V?kUn8p_F&*IBt~9w`*pSrgdCVeTp6iom`uc4@Tz~2<;}U@o zb9z}kVbeoT>sx7-5_+~O z%bJn%w(;4Bs%#!ct+*7qp+xk^Vi75ds-S3M^eg!FdgtIS(qUgbe!59-{vBaNKXva-M5X#w)Z%augxR!4~N%#Pj=E47!l-?;nn3OG6&VVbZF7 zpHO~3P{r69XmfE8^hw-0CUG2o8?F9lOKIK9CS$?xspQMU$rM+M@6=F4J{ZVzhsYDn zK^zXrFVQ~jwO6~(a?7!N!xfPuPKM+6j)C~k$)@R3%S57OePUHzHrSG8~)khCbkb1+OmiZLEa zGwau6o*Qbmal~^UpyiD!k%9ulQim2@C@?mzCNM(j##hnxezmxjbP(81Vt|}hSgS?% zTGlO+4J0!6e9M0Kj)ew$=H;t5f60gSO|jC9w>pA{?ma-$B@~xTd$#E9?0g8LQVten$#6hU zE&va$X>kvyX|fx+s6k-p?P`(wdRt=pekuG1y?BEx)sm^RjaYd@jBkas$7l2vSlC~+ z%tqV&(>;u?($IiCX}$>)RY>6Or*g@S*Xk;7GSD$;vK-NVGoo9^RY3&;SDgDhFpV6l zovCKj94@ErIW+_@)DiRFnKzn^8{3#R%au1ZwN?zKJK)ciu@Zh@+ud<$zOishx-jgN z`L$O>0Gc`ej>P%9y@y?Z#uPm9o*$3rBXi0k{bY$#I`8$$!;XnW#RVj4l3iTy#ZEP< z1nG|FT3>=NI_<(GtY*npGxW zGNu=i_eDxY;BmDV{!6*Rh3#o8zU-vwir# z#hV#KP~gq-(uc9*&ISRG4xJfSHF|Rh_nSM@5Z%?|Ku%&2H?+6}BT-+D!UKT`xRQl28$e2b}NG?}34 zi?mCp`uY=&@2o&cnjBDF3+Qyk2A#K=zB(i25d|(rtPipN9%5l~>iqITS2CGbddpW@ z4#kpS*Lc3JG=qLYVUCih%SPQmIO3MOOTy@`7t^F-c)O&zW=EIhQ)q7KU@hP#idNE_9ue&XWgG% zjo1_?>ScP*>*|nSZR#OXToI6|Y`S2SQN%z~62ac?TT8E|)o2g(m_ALFX}Jbt)yNN! zadLuA&{|A}ul&l974n8<@z)NgsapHX`M%`2ROOFlcfr2$@<-Q@AwwVeDo3Qn(N}vS zD{xLwdl2==$KyY7v>T%d%e4RWsQsvOUQnvty5#q^%zOA7grim%L2Q4uB1DteV*~vq zaae%DkwuZq5LdFJkTvbDiTEPD`9z`jSG@41hzA*1ADt}JYPA*Cob4!}cz<2!!y*Go z7`$eUI>&?T&HR{AB`kE7C4xxVod*hx>&08>20Z>xk1+}J4fb^hJYVI9iWT0Db8Rhi z((L$lS*|EInZ7N0UQjIAY}<(y>%5eB=b9%+P5 z+QCNd3_C?B_l!GkLaMd<5LC>wBvX_Z8u8Sjmb! z?rMt{-sD!*aFQSY% zUws%d2L|5pG)~{m(LB7g^4nhs*`%jr;qFh980M+)_`Zy^hkp(L1SKCI0L1{(eQRBL z;)C|Nnz7V+zL;lr883tv0b{#Ge&~3qso%nyRbXh}p>6pZ`Kw#k`&r-RSQFJ!THI>W z^xe9q3ip9NE?$}pu4YHgh~d-#UmhSZI%sXyNYPZ$5&&TWLORvf^xy4}Jzj{BcP8rT z>$=(w%M2|JJ)WekP_`QZnA5-hIQbAwU#+UVG)HCU(%tbvhTX3q!k#LkWk#Y#d~$%C zj&HJ9&gy|gj)jC_a#27DUQEJWW-Hjpy3$%{em%#rPkfx>OeMOKD>NoC(*5}?5DDAp=W(ufFsj$negR)f$b|P3oG%FX`0iL6*;@+jph79 z0Ubp%bFr~5UEB+ahL>PE*6QNyMp~Ijkx$Qk;idRr`;SLREpIt&CP(8UYQ6D10gG@= z>%*mQQ-1J_=+1kEu6r=*Yxjmq80SzrdOLqOy7N`gcD7<7|GW1A-{lv-^FniP=6p$| zey*jK;8boEadQs@>IX88=Ud12OGQQ6K<%%umDI~q;bgiy^4;68Q0XGE=f?E6O8vwi z`){-=44T!K2^hE8i}x(53S$>am<6fQB>MWs&5cL$hTDCdBWre&^#qy%!Gl#v85M$U~dh>b61 zN4S#!EFUB|sBIBzq#dO0yZ&Zig|4j;Ot15DoIgzBtnwyFlD1-=TnH`#hRW5b3uD&) zS&o<79hktZ&BvbwXtY(HRJRefTx!y^QW@X|eodGXFbEU{amfXZho@oEdRpC0(tc}0 zrr!Q-ekpL$ue)-1vs+B{>WQ8suyetJX0g{a4{J>)-}kq>-+?4EO6M5gHMRCrVX#=LfSb%IxdMR+Gc0i>yiOc zQ9qW7*a~E;D7JY#14_Pbl{egl;+z+2FXF+V8doSl+F`>g30aspWQ2~_JhJxJF;?-3 z`Z|N~ksxiqT80kBk*;t&*Pzi9VQ(!$N=Bu!nhBR8mKdL${Zl&|T1j-HnVjWo3O=#1 z6?0s8+vU+2Q7)9krcd9#*}cj#UQTM3^jPqC)y|(Jo0}sl!*=VV)MryMKK7CO4aUBz zOkhiky)G->NIlZlxkl+!qkBczuk@0Sa7ILsjbU!T?a;bGbHV6;y4za@@G~9?kaR{g+IW zdO!JjLFA7X8kb8B&Etn-fG&5}veZ^k9>e3OnrVn5E?YuGS(7fJ)4?n=$>9AGeMZG? z6U#=2KY&Y4d%iUoe~!-<#kCBN>q<#-MBOL@UBCxbKpO-N8GmH_1aBYxtCL4v777f8 z`yCJ2`Fe?;C|uPm=&wXW#tr0$EL{zm$vV0FsCT4%}!OdJ@X(3K z)`wTlF+2|jxjg#fRq`NaH&jk4(p+M@C$^&v<_WTy!hmLg=3>%Po<~FZ;M(?H18EPS zIApWV=|KO$n)IXG*ToYmpRvjYGQX7TGvu*i_r(v59g1)W)!oBB?-v!(zI(*o_EDPL*S15{tR;? zeBnx+Gml4)n&EX)dMGdl_WLJy2S)nSv;;(;vz{03!ga3VjiMOnc(_TTcr7&gZ!Rl_ z4FHoeJ1z(fQP|7!V#3n;A^kUN`j{v+1M)lM0S&l^V2P`UD=n{3O z?m+u=cOuXxFQE#&03Kl7D%+0m`NaYvSzbeOzUTjCmH*8)ZxCDQ432e%Yt@o7z?ZQ@ zS^_4l04+~kMk{DCL~6t)x>L7Lu5(Ym@n?&4;pK%{a;iVJ95Y||N)93=r=Wb()+!av zC5-hL-0K@hh($sqOxual7c(hV8uz1%A#;-sSl6cOv<ov1Sb03u3=zMUT)Y1^SH>MP~{H@aSk@M|`$6@3xOvR}g3CXBFW8eM8ER3OFWA-I|f$#Aw3RcqIq#`Dfdgv$p z=SrumG<&)}is6?mSsy2N8C0Oa0;8&#XyuoeHG{a+KVH7BE=L;bmc=Jz!9@<_J{m%; zaznjG+$r@41VG#F_T(k;!T>KIa~1ygf6#lm$UogVS45H0fW~pUXG@0x+2m)LYlwdWm?i4&&C)tL1JBX$6}8O8Dgd z=Z-VP01b~q7==kA-#gkN;dbP_TWOSQ;9r$18oZ`ApU9-WR~M!(J}+#j631pabx@5s zZ@!TRJCS9{bmy^SkRxv&rzDE7mB1t|6midZs?_68;*)nQ3SxqV z&B+Q@T-CyuL+*hHqg582FcHOz3f1Rlsf@3}6|8E-t}AeLg8bVz(}E1~#u@`(9;r!B z7)!*nN6jE+SK&YBqHqz>A47+*L#;Ke+n(C7T;@`Cf}=cF`0K7eq{!TwCUlA?`cUXm z)z4-%BY+@pVC;K88GKK9_Ep2Ay*r>U@Lg@(0D+1q{mnZ?!Nh^%#h3=p%uAXtqPg9H z=$1R%ZEpArhekUz9hB1(RXdLph8pbkRl8@ZA|;T4d!E=}RN2Hq&*MJDPu8-nj00zM zk||e*bjeTa8I?xkOENyJ*d#!7O_STvnpT(DEQX$(6r0ffVbDjj|ywz!F-`KAG9|r3Ay0LCLYGP;o2WH^5pG#>C&O@ShV~# z<(Ki3G4EEUVhfBlD^Gy6*X_6AAvm<|s(Mer1pdOoVIZLI0MjUUbskAYV03&$!5_)$ zd1qds9|=y*xHrGGI4;@xc8x+f)m2h)>*033$?}EWxCOwUV{vT9PM*5c{%BGIjC!cJ zQX43wt-NfA&%IJD^T8O>JS?=CREL~L4>VtPB=;{HN?b~ z@Y`I&-wftoHghcE=eZ_Ct;j(#vO7z^fb6}SkO4I#V{3^FuG!6 zG06(0{prDypUrbA#kzY@l6srZ838lrDdqt_l8oU4;zY&SI~%39x*?a(rF6H)*y8Bu zUUWeGFqLWyGzJ)w8ux@Bb=8fWwevT`d+gc+;5+tOV^r|iO2aT;IW)uRg3WABD z$4lvleP=sh9tDaGE7yr#&pMW&FXr<{wHzSJcd$A=MEwmRS}v@)$CL3J#UEAezx9-c z{B7VXU}R>JqG>dmrGB2to+iyIKw(UkykU7I8qQ*=>lGEWF>U#Xhl z|C?F*kI(N?f}R;+scfnk7;i-%^(FmZbdj330{}}BPr|XEfj+apnX!NWJmd2|1cpH^ z?@z-wlNj~Kd3!5?$EO^I8Ytu+n#72KTvSPxUDcz^wHiXN%(YS}N0tg1r-<`7Mp2I; z==g<^OolPSkK!Y1v!HUM)nr@q&^PF66q!8IJ*{j(%VU{n@4JlGWdhAuM9qr)DU7zG zRWw^1a~Skm#HTEm83WgpHwRsH--)JXBzS)GYn#bp7Uq&#UP%PE~ zWA|=DH1>MjkZ}8rDzXl~BLzFG5_kPDFfNwV%&f?6q0f)BSeRzd2*{DmNE2v=424<1-h-GWm@^Y?U zn=R$V9W8P`x-D^)4i&$6!J%+Ogb4Ik|Ifb-a$v?_#CI2~Si&|o1*K6P{}Al3b59TZ zdwKEtshG&el@QP3TjB>+Tg{JDCZe_wBv%s7K0K$|YR;l0Hx0d4PLZHuVzRDpMH=;c z-eXjchCW!YBSz}z;DmLiK{D+4pIx=^anMiL`4H#oUk1y+h&?f&3fCrr&hP)I;!gQm zeDyGH{V~xvUI(W>caS_#KA4opG8lXqFm5mgRq|6uJFu-r9E486Hf59^!9=WZ5Am){;ySG1G7}bZ zZeJmNKtAv(dU`J6b`Ye?11E3T0DT>5twRk3?q6SkkEnYN_8|TNci#4<3T!=~H;$ltZsZyY`Z0}a3?#bE_i z9lWMvdH+7n3ynUb;MD$IU#In?5vnk!G)+D^x8%4EqB)6!kusUCIExyUWcUu2i|3kT zk&mn@nO*4An-aj3rKFNn$s)Hx1~)bp@36$_vWQx*#$f4bC@H*q{|X&!KCV!8BO(`D zI#mM)R%hniXJ#Q=Cl9!8NtM*)*`B?QJ>eh6RnL#c=F5M65Fgv@& zwKue2;J_B1nL!BJCSTDtxm2#QV7z9H-z}}hr~brT#2o3!gL{4>@QZB6Sx7t7e6`aP zJ5)*ML2Eyg?1*Fw08kaTU7-N=ML*Oyt|49{7Q+d?$vj!ykZn5vW?%K6Q16ewilXw) z#@u>;JId+AUl$_7ZkUiQ=g&`f+vjy4D+by<9m{m~lW|`YFM0u`%jsuMl`~Goi!o$V zT;;pK_|kyObT3MM)0VbC&cUWe8aY(hMqM}Zq(q^&LDUZ6HYFsg0s)@DO4Rb>NVgeL zH1S99R5m$8lA>Gr28^`Qj!ukY&=iLyB^ws##Y{ZT$vNBAuV{LSlH1)I5l4R3TCvsF zZ}}7ySL$crKT?<=hJ9;tDSelJx1$$q=A2B9ai#FikoHwDG(^XZB>ef}r#stwK^T(> z8&^U+)ijIZ4D5=FsmhRTP>y5wrl?6gfrAtKFEa7{8)QOb@P3zg822`#T-Y%YuD5VL z3?yrzFq?ujKPy3fmrZ$yaWEg*=v#j(3UZw>bahpB zGjz1!k0`1l)d6u(s^FW%^lTO$bujlNXK8WFcy2L-O;=D(1v;Ft+791pGQK@i2uUPq zs(OM=$_JnMHBf_zxkiOZ4xvQYiJ;8wT|F_Vq;Cjnx}UwO^f-PSv`v@kaUe~Zwhti8 z>s$~hW~x~TPeC@^=yFqeGlO4RyVRDnL7%*b(q(E1rpx@YdiuOj5!SXmXG;1_;B%Fy z(*#cs8wwNf&aWtH&^gz`Wa?GuNM=nFIkRn>Qe_)%UT#acjK2%~o zLeO|S%U9@mzl~NhQpDaHkE*0D3I#tl z%#RP@Z|c>93iTDYURs#hVaEXtA9kl;HfRXq_1BddDRp)l6lrECB92#!gnCWWIYAb_ zLrLqN8@j5m(+9e)0#u`aukHVoE`L7_NXeH9yrLgWzk@a4z#d+e@2J7|j|`bnIn770 z*~3UQq>c$YTt!0@%avvijk;SmgvRmI)cYgil&htX|E}UsgyUHWp))$j_2p7-Gnk zjzRrJIoqgXRK>;QlDQJ^jxrCemK{PX>X{VjbEjkY(ef30!`1jfPHp5;Q7<#yd$ol{ z#l1v{Wau~`OxX4A{8#{U6SmF^MIxLl(~W!dV=DTOWCqs}Gd1uYQZ%}gYV;KNeaeL! z+23NSe>W8W%E7fYVpFAI;KF&=dl0k|ho2-nIY}LTYIJK6YZ~3G%JbYT1=STtXcTMz z_FT7isD>8#cMX@>#!7@tptmvPiZ&T9d<~f}hHTLbS)n({PneY!H@`B9&5yYFdCB@_ z(jqh2r;wAAhjB1dzz&#F@bbOHhk!oIM_+GnN{R8=zTS6-(4)@g~&_zRWO#1vz)&tb(ZBKZdC?N*=>qVM0`Q&REMdB>K|6%@6EKo+iU;#z|Q|Waz=Ta ze1c`*h(w99JZIw9AAYLrEjD||+mF7iX@U$UI=d^}xL{W$CeFq*9ZxZ9GbazcKF)M% zF)GdX-}9KrU*nAGqkFJ7p~-A26zpx0pF*Q+)A`xrA>0+WH-Qi~+sQI9gSN(2`4bb0 z_cMjxcQ|f@_68+lo__P0+HltLyOEA~O;%ES5Pyur5TDnGA|H6@0SfWgxu|YM53I7w9)?aSxv%E5$_GEBxN$N ztl+z~i2ku+OcW*R|Bl!Fb*}Lqj}UB}#_0=T3}m?)=+v%(ae&|zlTE%Tiq&zg+?S8Z z)p1P&Svj`+Jod;+)6PO5+#So+cqLrX-6OTyF7^Q~5$RonA?6l45;-IY!J$|>7UX9X z9v0@6$t0q5l9-Z0U7RW{(fHaXSz4%Ysxy}pF*G8Y!jy@l^y@)5?v3NBQgW*~I4y_{ zc9hW1{v!eb0aPGwqqE$FG=2h(l{3>e*YTo-T1grM@#NAMBPcB(o{GCHljwCsYOb=H zMy#RLAeVL72{R|p+?Li?;PUk$pNCGWBm!&r_1k})8k|Ik2VCj2Wn|erAlj+MFXGR0 z$rM!m;1W5Jcg@3UK+mU2qEOm7rFes*ioPk8X@s$rs7pXVrWD8)iLq%fuAs~hVVJ>)P?wTTBJl*f4vjxqCZ zJNGA5pvf4s_)QJhK=N}9^<;TO>SXYa737e?Y*tYK?w?xWe`F*AW=;XC_vD?NFIx#E(@UZ`2e zFF(yu^2m1vV=)C>j?@O2Ga_9zh*pgg~%H-S>lD^1k z=($B+C}Z!|e+IZn$KgOJ66tJEazQEAw~+Cc;P(mP1qyU(%W{*euF53!OSb+u7JzyS z2(L(?wp4{q9cr9KiIQ#($QzO8P`+i?G+1BXJUPX*Tj?d^a^48Kx8L}B5Gn>1qswIR zGf{PkskOfK;&8zC7NF3!d$9#-Tjwpsqir-&n4l6l$`j{9>2ofFo#|Tk!Coy90k>&{iN6V(L~nB{sA-xB?+* zSnMIqk2RPK z(rqcLrUmAb^ZHq_zb3rc%gBFeNduRql_lmwPlN-6$3$hyo-;XN_*)4A#Hyh`>`h;o%N|- zk$0QCUHxBP>fS_{OG5d$68>8ewa)>@y<_mZ>4L4sF-R+6pL?6hk=nWZ4A?!nGvH2B zxJQam{`Vvw4D|1z8_u!G$Vf)^vre1FE0{u@7*Zd`3R%gnAgF?r) z>8$Xnb(o7^wFjg^FU9P?8L5f=Gf(c1m+nL#y?%8({;aPOY^n!qV`ZC?T&yw3sG|&} z&6c(TDvq#2M;kF4vnj_np7c}f;ux%G=VYu929ikll-NVN8F@pjWLjj|0KnyIUs*(( zn(^Gj!tXbzB%%(Zc3K(;dx$ab1*I~o5_`sHKUzk!Bi)g|NsQkPss_b)F6 zClSJLw#uYdB4!#;7nr3)7Ie;_4UC1Q8@I*oDykw(TT|IE9wx}YDH9kxz!@>p5azZ( z%F=}su0iT_q}Bw|*(uYnMIDII)4%X79Ht+R3yRm3S-np;V+N8ZYdkHAL_5^P9c@Vw z9csGU3JpEpC?B=085wb_bIx^`$W8urm(OMnO~dnzoRx2o)hguqPHae^3U5I+hcrxJ z(U2CCU3wAH_C&NCtX1y^#O<)|L97ws^4vA95){^o`HPe#Cj> zfVj&&Q9;Wr#H-$VpIl;=?Ijl(sq>x~iU>s#vmJo@LE8QK6rQ8Xt4^7yWx)Q&EB_~o z{I`<}=zsZMG4tD>qkdA@?qt)={v3W!XHfOjFkMhGBD@ z7GDFgxl%b#+DLATG5)HQUM7TlF8mtVZXT8qnPKKUO~sdU*{6ZO`Eh zb*X9mJ6@OvSyWmASuD=yXmyYI*MaD3lT>!fS*eHe{`NrC*SJju1QChyf%V)`kxJ&7?gD`r2V2hl-qsBvI#*l$n4AX+UPR_(yM`cU;(@#fZBP?v?_81XvUl7}9hy%({8C2F z*@%X6Zj7y0N*=vxcX|_Vs8B^`=i(c3*`8L1p6N9NM^R8EE_n6Bme3E6Wn*g%Yj_ij zb^w53{(pDH{^vP@P?VYFAlAn@8v93nQUOaY$~)AyWF|r;y9C-H)9ugDK(KIo^hePL zxhDqBy$^}h*aO({fp1>waQ7xA*2t%9sLX?JJ9%oQC$_|@6S1)JhbDS~y zzpPnEy;;M*r>_TBf`;E})*R=4zNV3LBn(dkYdEnnNl_vWfx633R95I{-l8i(Ov6;@ zH6@D^naCaJvEr%YL!?XS@^X=;-ujDsK|@BI-@f}7Y4ICf1fj?Tp>&~KC>jX<4Y>s_ z$pV&#iB0c^?7zMl04hO25J5puU2sYA2=3o|eA8cx5sqvBFSEkmULOk$8fyeQ>Rn8u z(7*NgX!uY-etErX;oqYjtRIl4f!zq-u=>~7_`g}&@Bgn$|NUvU5%o<`aU<&YC!<6< zA4U#QA)#O-jjxpWT~_3sdIrI|n4b*ZQIDF6hEreC;!H3H2QR*o4WqvFX*Q^s`2t%s zz_i@#Yd@>&2=6!(kGBQhZsXcsvLA36c7U59*+wH3^m+yb4TJE1531z^y~-W*v@rkt zl;2(S-Hn`7@Lk5sT&v&x`%ixT*ExdwFfcn>+j;DN`~d&=XMWH?Lxaxy1ozJ|Ta zi9cK3-%JRx?@a6@=Nc_{QJ*dCRQdnf9!0?F_kv|ZbKfGz?JuJ*lzvs(~zqAs+-Xa7IcxmWC zvOki_Ke~m&BOn%=0s*dnD$D=-Dlr5V*%T$7=Ad;#;lKP?{aOHNO9O`o|Efk1{02N% zS3g(8KhXid`|3Y;_$y5HA1eKaN`FFu|47{L^vQpy^p7p%KU(8YxZ!sk^B*exhf04! z0YJB&i+NeKcLtwMD9d-jlXzeOQ|vwtW$U+M8+1KBXh3Zb)Z+TGIhL>2fM^@`(jNohK>4x72kg3Gq<%^qR1)9x7i z?d4(Y3$Ahi(fQllijX}>r-;q<{*-2|P@gzuzcJUo#>FcVEOAd0G8@ zj@oG*!N;WMz8SBE$UI#jpXR(4{H;%10_TF?u&ic%VmSljxti9u!u8f&UjUvbea8KY zuX13?>A1N;@I$ST_wPjZPnPSMcML9V<1=0E`Pm?J8Zns+V8D&4YT(X9k+MuOOT+BL zZntIaEcMXccmv}RZf2^~xh(9?82uDw)pKHx>($fH3=-aRxcAkRg6i4N*K7amF2C~{ zs)aL4p+TP9$M>9v)#Lb16~%NMvxegu7QHFo=FELRon*FsTk%<3Uzg_(p6-bVhZh$> zOVqKGa=Y0~43FTs-O15@X^uEDm`g`3_>LCOmnuQSU`r|`j#@q$L*MPxC5-4!+>PBs zC#RW+TcwA6T90VIyxB45Fi#CVlfDMsR^T7%{+~Rr7PA5e6lDImp7nC>%dt4?@Wsw7 z>k#Kd*!5#VD(=C}^{IYWU*B1#XXCxKX5*e=ZB_9xIw0F_oqFYsPL$Ij7%-p?K?F;$7XA1u~E3Mw{6G6-x&|K)LgHf z?ogmg$T~RGGBP5J3~rbXKhu4rlaIv11h8|pb2Oocx$h2UZ0`=wWZxg@dX;YkbRwhw zp)dHq*vhmq=7fjSUobDmU^?Vr6uY5sbv*LX^|H(6UQo0OqAk8V(JpRcV z{o|`@z08g0Amx0S;K^x1jP;g#minjb+=rjmr!XIFo=fTl*UOm|Bg4v;#Nqbe%a;epHyJvCQ_T{+8Zh(=Xq_pz=&)q5= z6;)NEZMDBbdQ!oaRCL;#XN%bCde{;q?x6f{A0pFFPkd1UjP}JU%d*#Q=`g1pGapPR zs8_%JtTA|c?5iw)$HpyY@f>ta4OLAM!Al3guLLJ?+6w2`=f$U_M0|U^-S08;q?AtPfB2cSuw|66i(U6{HI*-GT%>O|`_zSJl9p`QdX?U|rX9+dFqw*@=dl@| z`=DvNt?SgCOF1!lGHH>#^sVQpvCA8tIO@fNJ3uf%oMpR>Iu6ussn+eTz)pr2`Tn(R z*3L)sR;?6FkezJjjZul5mh$q|at+Ii$#oidLbQ$mOYAbl5%=p=3ETdnf^J}{#hU@H z@fU#9u&e30Y;vyu7|(e^qGyBTBmGX#{BL*u?_z&Qqi_ZV$sqn&bv@ns7>`KkcG711 zgV_Xbuad}8!xZ3(siy~K6oLC7an_9*5d9*K2C0X`kGJ2h^uE+iPzE3`b0@bQ^({Oa z#o(DUvXqc}?R-`E+xB;jW$8J1d2|8g9@=s3@3aobEO zx#Y(NA5{L(~z1F)%$FRN)ITVth5KMx+b(&dMM4l({8_TD@m>bGwnwp5DHN?DU^ z*(xDpEtN{Pge*fP%h;E(?+KMqk-=CKLdZ6lVT6!0OtZ-T^waR;2H=fo8a69S? z9Be+84nF{?$qN{pL$f{|xxTQ$>os;#ykMxd2Z1PTzaQ+>UfR`UsCq6wEYHr)ZmO(L zJ94Q4D`l6LUuwE-SO03u<{HZ|00!h1vbEYAN!=NsJ=a~2t1o^f8Ke9&Y8aqt{@ajm zrJY{STjN?NnvK8f@*7v~-vhkCuuT$U0w2RRu&eTD&{h+?2_5pKo|O96Ck2yIl%1Vy z(y5DUU6yN-hk<(&m)!)9Se|*ns(=^ji6%M9#s}O$fme-MiscM-zZE~Q`n`(>k~{uo~P@!#X|zx6%932pV#zc50bYj!>TH&KL+YRaWw z>kDntcVJRrYbX1N-sD4g1om0ZB?q!DaRIpd^X-S0k}NFNZHUIF2PNE}qDtt*}@9Hbbls>VZ@(B=cj5n_XC- zFuaI-v|D+%U8bc3Q5${LGPP4`AV&vVNhK=U6hoxfB!j*iD8a`xwin*N;@44H`8h;r zmVw!HI7x_Ae{2`6Bov~$uGyRQ(ShwMS1;#VPY3KA6ZyGECH5^pj%tOxCccJx{wT75 zoO7=L2gMcniX6fwdGVoLy41gS@*5`-H?Zd&PDZ$4A2U!kI`Z|E_HZz zbIiWzhR@G8#x+^>uVZ!IL`qd(84Z|vBltY6#wJx{yoZk-2_=`651K2&6&&ZY{2CeA z$5b`dBvHj*mWh6(MxbfJiSlxN;F@}_^wB^n@ADtQpGu~aID{|BRMx~wyx9f-s62D$ z?C35~=;YX^CD&=>PFk`GB-Ly-7NVBo!S-9rldg5YUKmd>6cL=aY!@hRlSC6!?$9Ged=^psu+eJl9<}*ct#aYB(^d!5s7Idc8wtD0y31na zbhI(d$Yg%hwRwrwv9M&201kG-fdkKEYQ&_vQeGHV`;n^r;%61%sEV<7zJvn)ma-RB za&2JNrGBVUhthE`Tk}1xJ(bH|p zu}`17Kl@3(hIP$JDNQ8z4&#WG(`0;YJ@a8_58rEn+{ednG@hzvT(~@Mlh!yRrtgMAN_Q*!lAnC9vPK*TM_uT?%OJ#??zczbd=9wq zFC^&ckJgrwoC@m=^5yHtqdf=+wQKq#EKySBWDxcZaM_i7g=3U##7`~Sjz;Eg*kyJ3 ziA(zg!z^~d&{TPEw}_it)){#77|&5bB5E^r%meAU!~wJwcPQ1YkVAg>vic*Gy-{0n zDbCTUi*CF=Qi97S)z#MlF)uv40YvIH|E!tBq$`v8V_Ad7Hse6HvF9>JG_FE|wk&t% zbz~S_wHTrE-+~yK*xqh$BNurfPgmco2cF!eZnPo9{!;+>JGQw(`or!gBlsJW)WctZ zl>Nx>aH#>p`4vVPy1`B+VDPu@qM&{)csy!{Pjx~tFle>K-CrCf{0wp3;S-v}-1~#K zb-R94^!^fW%AMn~Y(}S|w9`}qruV4UX0<(G@Z2wLKv`nRjy^N&y|C}<1+;G!R{ zGbOXjE#Ncl?XKmIx8g!KTRNTth!uix^h*pPQ*c*pyMHexDPDS3R~mZ)n_OL3xteza zpdO{!`)?i1Ppa|)Xd|yN-2d4p1EZ*@aJHxoGmr6zz7rPs#UJJ6dErc-x*A@ls*kZt?!X1b4*@J^kPN=0+$&+wd zCtZARmi?(yU>Ug)TifIOauU9hHPFzSw|_%b|M7>i9JTvQ_}*xCo@!tJz2Th1x`K*{ zQ~8A@4-BQVmn&*5PIf6#9X#2T)cfnjRb5Dr>RvnWub&h#JRwx(m;BRnm>Ym`VVCVVA!3n&`cGe8S! z(v$ZXPS!>6MFUXg zs(tUHU@7cVpvBh8*0j#gAg3BxVl8dYdp-+RlDNC-xJuHLDu28~&4xd35rX}4Ue!Jb zUkz4MJR0X8O#G~u`TXY_!IDCDp6jAcRTQjoO?lYWmUeg5tv&XVhH$oV(LGO!MTxJ8 z=$UlCfW@Jqr=hH+%NJVUi#1RW~;ly#lt^qo^cQPLBYb$!#y&zs>3%z%h z9=U|TUgh(dnOsx?;uE(s(x*3q)13-?;@0B5)1y&>2xFdq2QhUn)f#+Zei%Q}ro>vz zdapi=g8BZeVY;5Bv&)DDo#sJSaBVto^TN@DJH3r<2f3VP>J+8Ut}FrEl715U5au30 zY2^G2G)~rn=N)W&b3du^r)yHH+6qxZGUeki4+ZeYbqo1jnfxxuWI+X1+d76j=@r(_ zJpzi?1=NrL8wqTMbEZBJ`?6Ruluq9jqM|b{dcOQ2$r~R+&CJWo>rqI`-ytDJEz<(X zEuKs0W}@qYSk8-$vhN#+Q4yJ6%1NVx<)#&8uk*UA>|-xrgXzVaoyxTo5RvTWD7FhouiHMgfg+UFG!yK3zPA|S)p(S!BRCL>y}lywCf!d3P82enCB0%$39T+FgR3)V=|z9C@mHNJsq zMA{dn44ge+d@v0uIod6oa!gWai_#UuSF5!BRbemzKvJWQ73xYG{jtMW{fOm8$x2f{ z0qwF~O09xMulmN+iK2t{F#{UDx0HN0wcdzlX4;!cucQ!WZSwO#Gq)V~WkS8R0P?u% z-exV$dX$JHbmFl^7KY9ymD@@7)2{`iZOf|Wk3$7D%+KZQ1X}Al178@Wn&PLOX_;gw ztdq*4K4_wd2IkHIQ+>R<97X{+XW}bSQtP(&Hb3ngYO%z9AN>IB1e=%n*__MrA;C^V z>=n^DsmUwf9Lop3SK{kGM2*NBRguutX$=%HX$d*s#BCWRYuL5G{2x=t-_mGV!M@Ve zD@8(K=~u9{iIK0H+>T|gX744ch66$lb2&PjoR=r&-@x0b+MkIt$@U^uiX6+4t++i0 zKhaz0J|Hl`2^HwWco-AOgY7<1}v$EE%;gqHlM(w_gY(D0uB zq){^;H;gu0M6uf;Z%t1J?~*$J4i2ewjGa*eRPCD$9WBQ_V;WCswkL;3v9cFdOl(f= zZerWY31d~7JJaC=md;yV+vjbXhHcWu@zrbB)G+3A(&%+J2XrHcUYbM^91X--ZrUCu zs<`_Wi|m3Q`lFNx3b;bK8Q+t+26rO?&dl0eOns?5^&x`qEuS({9+VB4Z7=P7Bh!^! zEa3pC-&3es9{T*oiBMS*pI4ueX*sFQ~`$(;{28NyTEfXXpHFd}` zM!Ce7>kF4h%hw_3bX18W!L?qUPoXo?P~=^>Z(URQ%Tp@{tQKQkhDK61DhIo-!E z_v&R%`C&~}YsLIjDVsTshXuR37AWX4;4&E0|;S-2alo7m+# zn3^QKe}`3}5;-$TwY7g48UvN9l8yLwR!}2VzD;3G#CJI(!VJ@)N&CazaoOZRF^ij7+nL8uGUNO8uGz z)3N-#=KyburUCBxEx;XMhB(89z=W|rePa|L_1%B%{OQ~c+kq#L#!pj?F!Q$>d_I@V zeJHbLa4VRp)Mn~tDrP@f(zarCru?{%M-?^2v^j7*N%wQ&VPZ9xj5l+8<9+dbGZVl6 z6_q`FrWqVcZh-oX?*Ps(H9q0eGEtV=dAnlCbM)ui-E9rp-tKeX-F5G^f{H01>V9mu z^$L<>F$Y+Gtk6qmsY9V5z@1iY=#u83Vbb(L>&b)we{jFJiT(do?xg0BU$-M{oLXKrT4v zTzwVMC`aLq;PbUTHDjvkIrc1KC)?U4UDGR?KTXQY&n5G>k*99#t(Z%%ye&&4mUM!A zT?T7Uilm(JBT=S>B?Z}(cU}Xq+rD&(^BvFmh6why1xI6B>9s%L}LCNFR?d zSaGJeZBl@w8f`(_9s(o{)GFM>-vUTomPIw>hw)0g5a`lKd7~$V7hwOIqZn;CN3HVY ztIC}s*uH$H+9*MqSLX3p*ISvsbk5*YJC{5Plam&}0puL7clWJ}^NWh$Srq2o?MByT zUYO~K$Nt7vry}WNIRtV9=^qO0kBE0FY>ruX!4c<621i`?d~kP*vS86bP%Zhw0G;0j zGKbM=;h$Y>dw0fMsgCnj);?L2h!oEWF>OBA=hyoCGA(FlOXUFa(VG%0to0U~MsD6B zSnToieYDBy76;FH{CtgVOgAu+>~B{&n6Zr9OLt&|QucyY8aY?YN|NVUq|s-jg*4x1 zYo>WF^eb?H9eVIJ?bnKXx-*KKxbnO7Y$by_pHHZ6{ciAH&CRg{F!~e)mm1?b-Q0YU zMVd!*(*z_p?49`pxM}0FWr@Foy~Sx^?HymSA(81!9hKA}=XDltW3SzqGhLaWlJ3MD=6q-6yBUoR*#7w=B)=(~ z+d;R#iud-xAh|1p6@R*T;b`>5e@qYmK|>FD030;TUl&oM9gN&w(9HnOww(nnBef3n zM09_C!T$;r|D2*fr|4hZ^-o9p4`J&szxs2E{+yzJK@5LJ(?6r>|0mJ(tFOuII9I`$ocnSUcdnr|2~+eUJaI3-(txPrnFMR9to&@<=-9_=oUHjQKFU*A1RW6N(F1>;`o9LF|5}!>_vq=7Z+SdZ4t8Dv0Gjlm zu7kev(Z^qc>A-i`P}&F6Gu48F=~8SC24;aby!;3#2Dumk&N(1nR#OY^l=-h0|DV;H zf0(zkV!#op4-JKV|I?!V!}|Pfzzb@)^Z)Cpe;q93?HK^;|9Xaj{7caMhe!CwZ$6Q} zcKm<(*1vuIKm4F}hxur?!OVBU^?x(izdYvAZl5Fn=S}~AdY?bd{T~+cpB(M~Z*#wb zJ%Z2HNi+Yzn0HW{w-pZowhRy;gZrsA=wsbyncD|g`aaDx;Ia>9OrpvmY=>{TubHM7 zeq)4csk^g=x@m2Gny{RUKG*;kbVnFi8Qrx)Jyg!#y|KD>SezU<$<6H#(TbUNdG5Nw23PZVc2-y$9Ka@Sh{B!-B?52=MiH?X1Y?6 zA{kXPsua0-@0l3!%wpI4fArOVaj(A{`qtgUT;Y?w@6AloK4fT4#6BH=xBYHuK58}; z${Itx>+CHhZ3vu<^{12Kf7=E$Vymm#{#umZ#o#W>oA()+EetX=($LcKfNuGA&-J!U z9`IYg9t|0rv1)l?-IqOZ#}Nz$_WU{e7IJX)ZV=rAlAo6}^aOz#lCjPdg+3$rk^^>WpZotF%D0Qm@HoU#eY*?K2cnD9FBvbUWVj z3D~BCcuVoVp5O4eDw*gZ1;!Z?>6AUzV}NN-h$_5n+*+=_Djp!+XmtND-Yui*$Yj+v5_!)imC#=d+CS)X zW_RrLzkA64KHL71%d?d$SIZGjO%I_1164v`O@-S=*XWVPFsBrb^1g-7=t32AIsTRq zTy1^kpwQ&U@et@nkB-XjMbKlf*U_@~gA09u@#iI=^ZEVOpT%?O#@n+@ZQ7NLj7+)5 zIq+QLC=YlBq4t22azVG3!9pwf+-Z@AZx^C@ZQ5^RGC-Wk;*D8mnithDP;wO#(z58@ z(p%7%gK387BwvBElUl1`U2nP8E5{!~my-vfSd^*QjP59v=7E z%isrdhhVypCI;X?R-RpB0p}!X-+x^w%+-0z$iQHraz*J|#~K|tkTQt8qy%H{&T6Z; z+i!~Y;8Qs#bwF4gQg!kk%ry$%ZF?TGz{cyABk>6c7>DqyZ54CYX__A+%Jp;Z!a7r) zXQV36HDQYnIulo74xzW)%pL;q4&?d3Iz!X&qLxht5EpnqS};H@*dKrx!CdKWT`Djs zEGWyXZ@UL_i56TgC@EJ4F(9uVy2F2B+wFHs^evrOt;6qco$j5aSY?fP8Ap$ zCzuCqrk*lF;Y{kin~{RlT8B!GND zu4;+Rxt(SOOWdF{J+RX`9GUBl?2h4+3pq7?( zIy|XeO+?K|uB(#!fHt94$^Z#2)W60E&Ve35CMB5#7v|+%23@M{-SpYbOS+!rxm}HX z6VC{Z1zw5d<6&B;`5(f=KmE$_!g7iUHbT%-k)T^PKyDb2!Hiut|pLq36L) zZr2#c-K^8a)oeHq_|Ff_e@Ds3p2s5-LJEgNPNmz&H{Ly+Ms&?m2mGG6DuB<1(4R>c54Jq$YqgpIEcFK+bNAUF#RmmZR#E`>d`fp1 z&-{Dn&Oa^AzkRuoYx`{~t^@<~;Ieo?D5aJNG@dwnP7Roc8=eQ-2vtjO2ZRsirKT3}sSCQ>3@SRBLGQ){=ox^I*UJ9&V;}`3qy&@JhL4qZ1p=v~@UJN+{rTZu z=|upOy6=+4ax>|`jVi}Lf1F>Ql>o*EE}*PAeL?rZ{`ipVV=Tb<62SQX`Y|xRsP>Od zA6F-Lzc?Vx-27{L(k*5{e;4<}dnE5m5p#m{Sln9A(*>X`aqaOB+`Q7Pm+K!Nr{(UJr0)P5T5g^g9* z=w_9Fz0Sv6vwy0yOPO}7u;pT;#Hj$Pgwa=@KMGQ3D_yGsCCmFi9v&UJ|3_-K7SUzK z;#g~0jKEg2__3s&7KUKsAc$1nqa|7!f#u*14t%*Gj%|)!cg} z>uYXdG;oTo96E|PogjV4KNYciC7NGV1t=CB7<yE^f_9Vs|J*}$}Q>!ta@n! zwHQXLKI;$mOTVEH4WI2-@(S+O40_d;Iswtw?i!^{H0*LT{Rl?;n68#O;LW0BOzbI~?u@z^Zg3 zU|rI9pe|-!yQ!q6aox(O-MYKyQayA^6Gz0=cuh!bsi&6p zL`v825S*`E$DnOiIRn|F(DLYw0_WLIYa;S&7X0=x5iBr|=RB;4$(7We=Q;GiFuhkr$5in|qyOH7>UPMGHHy~_<~x@w!o26Q(I(y8$SltGt9+M= z-QzNKKtSxBiw%}c*KE+YM6^SL=Gi~=b!|G0BhT862vZRgo)PDEe=xc(4Hz}uRhM^& zbq5^_L2!tMb@lnD@%iH?Z_Htuo7}sUVc33rKzI7h{ep4cdDV1>?FZ^V=JWkFiEBHX zFSJMn{R@qtw4k~$SD;3(Dc;oSd=RzGDr-=3Q~hZwOI$AwqW+FWn(u5gpO?Q=UpTkZ zIgEw7Rl~Tufz-NRz7>qb4@e!aQN&8gBZbITGjMa=AK3Oc{M5cdIOoyU7C=B`nK_KN zX6^PceHwD^`_$V+6T7%h=yDyVl=q9Gp{b+G&MZwT%3QPS=*JgPz&UWh3m(j}DDtP9 z%26=2kwU6wPFveEeLB-Xm1y+3%;kWB@<9{VH7)tu5p29%a`tO(_JIk#SFXRG_~kk3 z#La2p9T>S8N2{x(14rKW+z*dx;)fngQmZGup7}B1?nW<)WyGy zWY2S`p5u#A-SaksPX5}j{TI^i2GC;%iw~-{5E9HX74o^hm|nAf9sl)tE1a_pCeownC^T zZ6gb0pjt)P{fE+t{naWPm9E)wb0`^(uNn@fl9#wudC&&y3j^X!LLuWu=6;fU?roA+ z1IM<;RNH|A*|gUJ_JtoHSs9b&HPo4ft|*_&Kxc;)hqPOkAyuv%>Glq}chhs#asjWe zDPonMkYEuu5(?6xwa3O(3^QK~3v?C&RH#e+`+IHafK6^tt9cgZ=J)`Pf(P0~aHVr! zdvR~fcTKDGYXDH;)ndUn#?`#DAYWB$cF#udLC{e|_bp``h&>|^_a${NTMPk}^;I@$ z=TUpMFk@YjOSHVjmyuG@`Z`ogCoD-vMU0GfPBR`UpAD}%1{^@vvz4QxM*m&p!{(Zd44;H`FQ?_OjyEfO#70p+8vg-sZAfDhKI z2V}9-l|-Ag$b!I1Eho@S1Do=tz_omfIWHd(wWlg4ML$U|4j;y^j*XJmGb?eae$UrB zZC|>TBo8aP#QStJvp3{nU!U+R;yt<&#!nE{kG=N(e{GBOr_?(o62>dg6b`L*RZv~ zb{Tr=ojoM%lOnNN+;gwTNg+XmKj;#RD_~8-rPnGt-96719DQ8)M;&H?W*Ac8a&gSCSWKCE>O+6TE9#^#U?9XTE=sHfX|IUx~bRy5-vy z{+}cEtZ$;^xwt})u)cc^RM|$MrRAu5>~5ODJifoAr}n$4-pI`>jhT)){N2()uP*$; zMbUeDZ+r7EK8>nrmUr^I#H*B3Y>j=n|)Ghb%-{Q0CVPMMa8 z^R@AuBN8PRJFnEPQ5LloDgsHws->zf1=?6?TL);2r)w~buwU?_4kjlSTQ(=AzA^{u zLB3@W%)iixyABoO+s5M{kKSyr`PrZfp-9*eBq#NGWRRIdLt4O~`8kEwK`-zmnb0@t zyRrBTSTtlus!TJV_p$(dYnyvdtVXWD3kt^a#;q}|e$!DYeiozbw19Bjds&pC#Z4H> z2;IO>bQqdIvdXM}Gcp{#5UjSue5QV{8blBMG`<-yg@o2Fkrf^5Utt`2N1aVetvkNi z!#dIV1tE;&*K#jAclm-=@57fz2y(;9XTHF*mPSc00>%TcVxshyHk~TxIp83VypFWm zA6^ZZsfy{>+Z&jbK0~8#f*MhXX1<_$^v*gezv0@!ar09 zMpBX@_^Yw}&M(+FNa&3`ahj6`U*MDL_Y4N_8!Hv=Zf@+|ZF;Y-O>S1eU|ljz=c*v* ze>E#MqloC{)>iAGM;NO`gjPjyil?1T1i$a=Hn|G7>&{VLUELXb^Luq7Ddz(CC*E-> zH}M83*^snS9U{#Jf6oz{?z4L-dHmQ5y6n}SZkf!klHkO|4-IZR*ZqrkZHyG7W!;_t z=|DKzrGPgPer!A^gge9;WTkX3FF|+^*On}-MzLGa2C7w07-3EDF3>lp2G@B9NkuGB zP6|4-M@o+Zpu-H_H+F<|tO4n6^9Ltt*i(` z=m01&QSRwt=%6XJI@d|L!ktu=N zK;0gDM&dpFccUK5n9?;2+0U*+G7(gFkD!z_4~qC1irnRNVAohOt~^Mj)f zyn%i5T&L5N4ARnYlUii_{n9WtW=c}3c956=^MeQOn+ zk{65eHvrGAwsqMrBR4bc{N387^-(HOhr?G@iPc>_e_H9xal` zCdJteSm%7L8L6zB>!F65I;CvaqDW%$U@zCJ1NkIkkBc2{eVPIHr~*p~>e(c|nRc7D z4xDs)tI>eEK&PszMTlXQ)6A7BU0lmy+*zh=;bb8O#HPo2#*y(oWpa?pJL~3sqmD5* zbNK_e1RRq)5O#|Zt|7s>1r?BZx$352QgG;_SZvxyJ9I+p8~Mu#>r4#p?bvl;voOzLZP_|9X-=EyV*FbKFnj;pLTb z%}w*bo!E%vc#q1A&2bW;T*4$qHxH?8WhJu%9U+cgolPCnajd+rPOGY$GYz|+EmgJX zMoS?t9No+Y+JPDscFF_>o}TL z2lOhWWb@CJJFf9Q;tw+8=+M~6kg7)5W5x2kLKJdq!GU4Ug6aX@1}I7zxAWU@R_E)T zxjAXZPDn0N!nF3i4T5SnCO0bQg6>y_ur;$%~Q@J&CBKHBC6?M=L7;Ja*u$V3y~dns|U>uy81JTasDaipQ+=lQT%$1x}h zza8)QUgkK_VhsZC6+S`L<+aheyObVJNmq|~o$cFX(J57-@~md62;@>>HFe@(2s6Qs&8W=G7^M zcr%dWZIyjHI~rG}ma){OX=N$O@$l-ix2*c_5}r4nk;xt^9(ijT*#)CRa_wmz7nvP6 zmfm+U;zvB(sj5626Fe*s{9~0vG>+HP*5)Gv9(q&C?8Hu+0`AUrWF0p{^O><2-zXSnk}aOb>f>rM{zL zf@AzkPZ-nqZJ-X^rn)VZT{+nfIZh5V52{&rhDZ_TZD=)8?dFu2d~iDDTmM*$gA-b+>0yV|O@+P5xT>+4?;% zOri24<`I|kcKW1hs`iMK++xTI`MbaLx=cSFp>{QL#br%$_FYB})i zZOC|Gzym53MXbW;7&R-J>;Xkry{eb8e$%ovVcEi3zKR3o8qOA+s)Ma()pDi}X=&Wt zl+wKSARZe;3wY3cYVyciryD;tkEZukdmMMC@_KDsUO7w^7rourr(^K)%5)!2nPK3p z=qK`HZ3D=@OU{*8#M47T8hWU?Yw8rTiDSgezFVV{C5l;+cU5ryM&Ml?Rps%o9>b^r z>Q_(mIy*(LkpWC&s8Sh!H>0V^kre59ccmXv5^3?&3=KZ5fQ-M$`d&L&aPEok zKyL=x15@IfboG#q&IYoIP?Ed#l(-!5#DW3eJG7tWoRiFiOGfSP(`y~^_^>%z2CP!v5N(=ub~r|F?m)5U4EBikW6b*&rnjSU4|VTxRVi`MEyc^$o=+s+VH(!j=9 z3!N%BJ+T$@vL;#;;u4prrSq|>P)m>ul*|3B&|_X`^?X?vYmu_JP;VmIYMoBHj+I8= z>#ELyygKd08cT^YPPn^cAVTIcR7D;u_zdTnykFrLKEcVa#M~Rn)II-YBJDdW6277q zd}Rt^v(us44Npd(MT8+v)K}@&xssE#_0*n-vp=d-D$9 z7i?=R!`}6k)fe}pP=D&a+f7sJTaT#DqDU3VoR`Eky4e)}mWrC)+^4)jpwLUuVWky3o6;8=T9k?L5_+1AT=!Yh*S{cw9tzbVBs;enzm$oR(JB{Yp#Rii!5v^ItrsLT5NE zU3wPG&OH6IhdWVB!yDH72APoyNMlx`6?N5F6?cvIWahDW}VFej}x`A?` zjn;HZW6|zRpWG+Y^mo#E(>yPqOwmKn$Hu5E)EO7VjC6Qkm|1<2W1C%lGd=z=bC&Yi z(2-h~2`<$%zo6FsuQmOQ28lvS-Gf!8I{Z95MbhH%lZUC{WJyf%rzRF$hCr}3ZbjK| zb8XGY#obyjy`VF4z%w~uf}-bP>$hIR*ZE5VDCmyk2j)!FKpDn1z48`Vdw`}102v5k ze?m=z4m^VOyCGKObOibS?9|UX_1^3*rb8!014C{NKZ~FPrF<9O#or&D1WvXb;cp5M z7;Mz>r}H3jW#__AUKVK3+__)1bwirw<#1gaO%F{nzmYrW7U4snUZHu@rD)G-MDb0h z-59)*c*poy8DApjnT9)|4kFtEv6|LoPAw`>F-`7^#O~-FVeC*JKV`*ox8HkGOx@$d z?VEG}q!m3La%(6JcUlcbLQ5ObMev>I4SWbLwhcPxmHi;q#SJ(afZ4 z?2V!QKpyEU`?Rax=3U>C^QGf56q{!mzSYs?KbZS%agz?DERbe=%M<9DIoQ$J{&~Z| zI#0LcaCaD-6=@95$8V_<@}w$n9ixX1zudguK0)RE-K=*+l$oJiK=;8CL}kgMkSq@| zm23kBx)4_&s{VC^dl!FG_>)Vg!GODpRdBD5u~NQXLQYA5JzpZ&1cz+lMs9(o@Rs$L zdd0;*8^Lb z^}O_fSZ#&!vCxPr2K=fr8#88Mz)uZv&1&H~cJGDX*GI$n`jUwBlUjmir`tY#xOQl$ zkrBTNftN@+&v{WmOkM2+aAF@u_PV1qZ$-XxG;Fq9d&Os&FJ$DD=oj*OINXU$ix~GM zi#4A-<@!Pq!?FY`AzO?4s;QlyYoK`+T8c+;XP+IZcR}a1*R(=m1)_e{BQfL@kj6m9 z5(L2b-!OHbTC}I}d$#|ZfzhR;GWUdh*1j!v^uqV&$Ii5}DVi-4D(#JeGSxZBQ>r=1 zzP=B}Q?0Bey0t9Ibsm(aig#ndOYSQ&Lq1p&POG$d%ex-rZ`y)N*{I zxRDeE;;Y!tdi5R2-gMx{^AnXpn^QkXMT1%=H-AYrD;<~_82$cA$wcf?{UUg0OAM00NT4W+ql@{SelQl zJeBE?PV=}dPL&PT276j5M(bU8=F*+dph)x>PqebmAJ{RdXMN-S7WY1gd zB{q6!>-UcZ__=a~PA{}Hs@dzPg!n%M!aae~ti1}EF5I=|$h3$k9$8SHiq9_y+EEwr z)$Gpj>+3N%^K+9-#vC~RkqWWM?9MwL+Gjg!rj|0S;|an=*HY~g&soQJQZyAl-L zySe?w1}K)lA!?S7x%%ji6?suXtUPpqXsmp+%n74n5`W_Q=ZCt_C~+Z@rat=w{R(LC zxKJ8G?49W_ChtbXg?PX?SA4`QZ7QX*nRKpcYJJn6Q=+_6(>iwMkzbyZ;Q-OheW`X= z-N<+O^3E$YLtg3m8!~Y&yXMnjYs}IPQc@ zEqRS4$^`((RBeT2-$D;{&%gPd7x$iCZ9G8elZ&MpJ%sry3+H&8xr)&-oedk*O0t5s zlI;aPwVcVgx(n?(iA#^`wN~4KA>SM1Q8*+`sh&n6^OG}yInk)?&A$Y|_mH}--xU@D z!BVD(%J;`E0{;vrKTADZbJ;ui<$iqDJ;xCCT{VWpl7C7K)`gZfrHi;$V^~Idi)jvJ zgEm}Ugikk!3g$BiPmQZXB8^0XwdGIMyXqWWeeH$is?B&$`fKWSxLox%n(=_>|wbyIiL?>sZECrE*j zRG-Ik!P>^!^_6F9S`CF>@YQS}6x|B!>}a8ED}7O@6<3I5vnjx$=HGHk!do+%) z+YrMRd3#^>sxYv#ktu>}Fj`gTKA;2R%V&S7^24uw!m2JL$V=ECea+^mQ@C=A&P^#; zTmM^Y)jCP@hvFaL@DZnI8~_d-BW|&$o6ZMG{phgEtyDciZQR9g;L-w1vWPYCwh|n)ZBzsm~GC3Enl5QB8HSFDN&x9?@3b zeTeeH2Mm7I6Xd4$+A3~+7hG)Qv?wX<0`+y?SbD6wxTxU%%^kx>?vTem0o3ttFniP} z0^(@uSpKQp7M)TB@Ae#2z!}#D?k-NCh_ACrPW7Yg*dXWAO;P1dQ5Df>3^(Tq8?W(z zm=u>CSI?G4&g_AzhbQE0ivk?RJuu}lDhX4BPSB=5YC2l6z-MjFbLM137Hb;iS?C6) zV%&=WqsXS6R0G`I?q>Q4GHxYca?5DXUMuN(q3%U&05%H-cA}w)s-AcOrcqfVi&@UKlLGp=q$#hJ927$w|CTX|ZHgpFwcU;8b1bS}&D-@_d;*tuPA!^v(WmA3 zv$ShS81AsBiekZ&=itsGlJZzvKazr|%9{r@UdDrqbxiyv0h`04PRL1LclHwrZ3x09 zrAX%-rlv0O;&Oc{Y zz0wcJvS;0OhT(*~fkAT{NBGJl6M8~9%h@ue=PZoY5v{WD%OO^d^Z0WNI4IO(VW@{U zRCyu76Pk!Y{ayZ{ zASNGmA0lZ&#OFJs=Z}oq6e+v2+7+4_k8bKPZEe4qZmwF(DcGTQ%O#UW!UPHfei@n> z%E7N$y;a^`4js%;r&f1TpnR34v=H*(m;2}r!bAbwz5(u7(rnm}2O3C(5vN%Ku^hstM$A1TBj&&m2Q4rh0>m@9HWcv0UL zJ0(>;G3gj{zol=}O||VF4q4CY%a=JdV#=0Gugk;6$Mymn4F+pzL{AKFMWe{+8ZUYu zatJq`hE4n(*-bQ`26qkO}b5v4(UrS?GUHzKk()&AkQ%~GoiZ{Dae4i!I0i;${ zx?J+A`(TbC1}s=aAg*CtsX;0B1!cVt5GB+e`vT6x-2;PN?5a}tCAYCt{a&g&2_{=h zpZkqiII^vSuF7Y9Z8%&0DrY1wHbm;h(QbXjnL{U@tQ=w%no@r8JlF0B(%b87B!^@x zGGq#TBtXs&!JlmaPubD8(NUs29(0X^2rGRu96t_C3PE198~mJ=HV2TkvsP6A^iZT$ zuLabgZl=V~sYs+FL4DV9P2YMSJC9e{S;)Lebc?lx%=Nq&ofA{0Jp2o#VEcno z08fJruqZr!uQe}kcSy2g!hDG}M}lu*PUyvU={FPl2A|WsnXY@7IYU`_p{tof6R9zLd`tLqp|Y<= z=v*tnu3U914bvnU$9E31e3tMYE;Pv1d~B7Z&z<$o;WC#-+Q#WFKAwVLzf4b~jg{k2 zN}1LQASD+Sx_|F#SHm%!)8E}@UvH~*&jIUW{ns4lzGZf``KEk6wss_h;e_Zb^5dmv zH{=bnSImT7IF7o+hKqTO=ba+eZ-ku`ERD{y{Lbx+7Lr{GW%myN2!}zq{iFal&QeEd ze)J8oX4^Uifv%p)%iq1Sz@`}2P38$`UzyA=!+e(l$|HJ@Y%i%7y3ac_tn&UrY$1Q_ zKc1OoQD#gT0QNHGG=ct}v{SfbuMpKI-|#8~2$SYjqO$g&T)Igd6$Cd0c8D zq$aJ3HOG-|DzU4z$mtifSa-ZKJpH@N8u`0mOs7gT0WE0us{feF9U;E!@5RsVPS>Wi zJC8kGdpw$=xIN#@h`+^oVTClc=AmUvFDG(7T1+r?lhC?U@y#!G0DW?>+4C45*iUo#^X%JSo#;}cHB8FvrgQSAVXAUN?P*>e2@3gRZn#ollc9wknga4#Bk(xg zc+vTI1H|Dn{42l!K?m}IoIC7V`A#b__MX_&Caax|hB4ZYP`!W~M+AeVE>3EN9E*G8 zm!z|AngzBpdG-?J=NDdH;XB94uQOg4PBs9?H31T*KCF8(S<0MNjXIw{-;BC?d`Zio zlX8pmDdXmdyb1*$;QdvMPxo7^nY_=y?6-JL9O_x^X|48}4|h=H6o2?PgrU$_`vBt; z=7biBg%QKPes+3jBFJCr(!K)IKr4Hxav6y@J@QT3f+A3K0S0= zqv;c-6*?ra<>z)fCO{92>n2*6lbGon zO`6{#=`02bXH1nRF6t8Y#ZMJVe;-=1N5Q->V(9P&aDM16dxqErskr5*lrT<17*2w)ovK$Pv~&`tz(NW+n6DRKB@xTpm*O3iWdm`K_wgK$L7WqK&UH=?bZ z{-zc5?z0(}4>-arP3E}hIUyJV%>Hhl&>csvI?@(IvW*9R=_udtZ&ad|$NN63Z z&Qi=ZMv1tqQj0mlwW>mnrlOX2hMKFSIx~?jjE{BlZHQ}Uzhqos)>*=&QV(3ju~^&50q`Q> zQ8{d#j)>_p%_^w27bEsVijVG;llEyf&YwP#*Z)q4{~z|=Gpwm^>mC&p3kui}1pyl% zU8&NWihzKW&>8fLcEYtjSyt?lRt7 z*ll%!XLo zFp%ElAG3tW@G=xrdlc?pDSagvt9Kh_keW-Yi%B+y>~fvpVHk|>OS(dJcd#l*A$9Q; z0d(>^oZ8^q1Ri+_Sc#^%1NGoeceuc4Hcy64om z^rHStWyx64mtDPRWo<^_`Rt{R+}=~CSW6KBx_XTl29~Zw$&s#^E|4f|gJ$w_7JzZ> zleah>UH8U%cZ4I6tNU%DUQWmU-eAh<@(*Ao7FS&m{n8-=4rczFeTu6+v`<=|r!NK^ z!Dx0LGd8DoB9u=4Zy*QWZdSSpkxDsgL@q=0ZDNSG*!M6){CR=R-#e^pT zUEy;8N|f_Pa-dHPD^)vW22Lwxig!%bI6LSnDE8t;OeIscH44(4SQK|+h{Pae+Cgm_ zv+!!wgttqQvvl3~v(u>xfwg_9(gXHT*jx+Vfok<(uN;MKPeR^E##X70W(^o4r4*I(o_- z8(gw1h2EhS1wNZrq^ydgfi@~Gy`77$_?ofp54%7=jHJfv%VbJliey#r_H+-sl*?0t ze4QFLaL~kbFxgV6Un@ub{^I>o3R~k|=Gac~^F)z!d{RzyWxAh}@lU4$ltTb@6IZ-i zuEwmx!5dVFlkH2oJ3LuKd|nK%O$nAN7JAGZ0KtSLuZT^D?Cv@M0)_$zaT0|a19uQt zEE8p=Iyj-LGS6c$zCDp4X@1lGV=OJ(vd-v_EJ|&G$8A_WvF6IKh=z`H--=(2lP)fO$^9b&c@iz+rAFspI0OLZR|oX!+OS@>Bt zYn%DUgH~%(-KzoV(xX(1=NzM8XmF|$v{|VI4N275#(W{JE*C_gfd#V$3jd}@vahG1 zAg;OqExMR0M;7#J9&NuQV(~nZUDC^SMp=o!#<@&82opfY+1dQ~SkeB04eeOKToH^> z%+ZMbvEVk6(&K?E6R&kekNP@|Ny*Z@SiB}23o@4rhJm<#v{u`BxY=Q3i46}Ffv-dm zEH-x?GAlT1-OpV@b9pQl@ilIO;&swxCq&X^>m5ZU$;z?9CgrWQlU`bZ&O^5X{|=l& z?uA@`^8C;dcHbX+W6}C5FJ!lU)T;w3>^J^3Mba4;y)xBCPcR`WP_~A36|fq78BY)8 zv+Q{*pQnFBXa0&lVNM+HF5Rch6E2rG&jX3VsAZ9+U-BG5L+>0n^-`NCp$do4?clQa zU@IMAa%7cRu)>u<54w7r$;8JUPAp0uV2Oc0k{%&<*zD@d`PDBUL@NOO=j31`(Z_W! zv6dR;x-T`nK6jj81}^n#w@ZB3kpje|UVX8|bA^s!lWw}0HpT;}{$eysgKutxv+n2a z@{Y`Mn`pVOEF0ZWaHVUin~fG`9Se{tmM?_B0WOQ+_8-x?=UBcxPS~B%-G#w2v^oxzM~CUhp-Y8$fMLQ7q>+kHkg-k( zKCd5Eyl2CVF)*2++Wyc$y+3DJk1&{F7n&)OQh=NjojGN!!0>rDrvSH=8_`%XQzf?i z&V-TvWJx{!oAc{d>1TWNFtcXIIC3fuXa@g#u7sOByl?yG>ZS6AvH(2qPYO2pjZe zzi~Ynm!L6R|LaRjc-fb+LCaz>tnDRjt>hQKd$P%v2=YeHXBqjw^D_UiTnh&`H@$mC z@i)qYwu8F~v-GWBs3ZIZ8C=@B6hAvRrU}(=P4U`~C~9^lJwn|^V^w}F&jYNlA`z+i zMa#oVk2xMpIH_$*GHtHqv<=||DJr^i&Ovr|`n+ovd9W2jqlC0DolQNX34EiJ1l=?}eY1W?cX&KGc2ZV%CVm$4bI8$ZJ8T(6OgLd!N8U~MP!WH07l*Ew(BYSg2 zYVVriqML#NhuhE{IQ8eECBjFSDR6(iBo@G$J_kNO!J?!qzkj<%AsYKfkzgQgPvfL$ z#*1r3(EWrb3stSx_~4+Kc>Pb}(d z*SZqMW)F*CKQu-Mb=f5rsItB5o~(5qMC$$oV5?^8{2Y;>nvWzOPyiizCgr1eALfF?O1%re zMmwZ$R=jk7z>euTAi(Q+`J~ZQgJhUldFpoYR~-@W>HJi;&$T<^vbC{(<=Mj$Je@Dgz0>NVQZ6Pj4D|d(ZhffW36e4pNQ)Ag-eYw+@h?`z|9C} z?RI;mLOPZGwoM%-uN0)?2I4K);M;GU%j#SwCAt+qyIKSr18K{eX!oYwgaMbaN;@q- zw~1SL`A*2u<*HPHm3NiPZ^Q=dIt(t!*%|J>>e=EH?M_o{w?n6{_8Z4v_mLZ$#-)iA zJ(rmV6rcl9dGpU}T@5BjZ{5K$YG$294_8)R+4eL|24dYA@g*sj!PeU80B2fD{ObZ* zJ5XYy7gtuL)8H)8vv=>2>qe@(c4ah%blL8k3kqguX0L5mZb+FZnW&wgyaIm}p#LO) zeozV%(vj}F-LQzZ7TF{!Sswq@`&kzqCllE_uq*4J!-pN{u}R;sy!1ousp-j!&jQWT zN&2ak2V0YNtMEvmOrFf??cR)YytQ>Tmh}$dlztW#{be zf%Fp3HRV9FB#z`Gh;LIOLag)}^wk9#vOT4Qo!H~(o6+)4!2#r23IQqT`fcD0bTsPT z-eq%?oo2??kNcU{GOkAslVf@(2Qx0U+dsShhh{(f=;BjoMrYNO05G~No=_3G2;h+3 zHl_0&=V@Fv_53pf)<>b#UB>FWrmO&{1kp_no6Qf%cmp}7p(kO=Ul|88Mtk#K?L{k|M1KO+UJ*XAT#M@1Mg6(_QG*HYfKhKp(FDi9_|3;Yrp{HOZB{ozyQj5|2}{}F#7-P_z1hfb}dxI`Y4cE4OKflD}Qy8Pv+=>LAodd z>*Gc1!Pe?6H0J&FI^CI7m8{%cPE zR~PbMpZGtW(*MI_{{PP>I*Wz6Ee~a$Pk4QZ2mjaO@UMRelZ6;r=AQ)oxX1sw|8E2Q zKkC{G?c;-}Uru)g|4*Jv$ESQ8@mlHVe`AM#ds+XrSpT(He=&;BnqvqtOQ{rH*nhsc zaPS-}v_H{I3n`*j&#_T>KpPTAgpP*A8;hCO5V~s@QXnMi#`b?PE@shq1XffL;CqzQ~`y?p6~nIce`|UT^?InZ0#y+3o7ihjw5+Yc5`qId2jUP5mk1{|bPpHx8d9{+G~| zvIgVhkVSLK^GUy-2%2Xs%B3xGWg=i@tV(jsYyyX}YC3 zrCmpOqZOw!ayTHq|6xIicPy{S9I<}V{N*WIMnkf@xOYI%!y{oS7XU2wHRUg1xGdXa z3(%VHRvgmU1fhfWgJ1LsweHB$o_of1wxgM>!t!AZn~9T+?jf$HTdbT&M&|9lxatg` zA>0ObZr`6k+=*ZFvlyUqj`=}5AdK$wCSSf>>RfcMDl|@dqyCiP>>(<=`PaNc-0M)W zfyh9|43-SE%O(mAp^#j75YL6*xq{aOmk~dMg7@iDsmrvWvltP}vAUWS2bQ-63k}9r z``t87>8T(lXY>J!kEF#KNBvv2az<$CgQf%_S$e^bhmbb)^IuzzTgR-}?~Xa_I{kXN zI0-Q+yEU2|FC-E+2Bu2B)xk9Q;%oFq-$4E6BEEy}nw{D*t301Z`kaB){Hwhq_ z46hw-#Kd9B`?dg@#p`gl-8=V}c3a6HJq|%?XIt2VtWMdenY+J2 z2yX3FdbJDRfli<2klPb%Ij^wib`dfUD>d(sr{&R_t4`Bfx>Hvzn=X+jtG3<<#jLnj z#Uv)%sb!5EV^jzw(CCgFq0yckXI%Y9BZgJXsWfd8tz$jf)y0P6V=%Ug7?*o%NR@x` zx$*Vfn8Mrfk0_dYE%!ftsl2F~@HrS8$@B5<_TApg;xr-|C~|}m_g?IMR_{#=PUo5m z95@Kha2F@b5-Gd(a%|q$RhlGtZrys+w3ovz`lG#zfy5^zW%O(yGx0rZxBqgD**_$=`<}cOvr8XH=8Vab_rG=f_9L(PUVfR8OqYpD4PTPF zQb1t$!_acx#PgECb;+kA-Kw-J*XM7ktR$ZA_8=Un4!Or<=tw1?mw;j4!m^|s@vII z{=8^7E6WhB*ZTJdj%|xqI$|8fKNh>Cb2ZoKw5jUX1eDVx6E5w>g$81)!!K_a9rvg_ zxl;j5FXDq%Xg^)Vga1S@{i>t?aPT%JmQUo-N^Lt&u1O5GHa2`Wv$dkr#I*8P;YH>y zo{3wHY4^Bp!rhtUW4@eGTZI~<>&)h+rP0-=N$}W3mvd|0bo4&VY)MDbk1~Jww-D=J zqTp6{2K#}NiQ`EhhSp1m&R>k{``i4kJtU!JV6=t)bhYy%(2Be3Ue1f37iwrV!2CV~ z^BW2Ne2VT^B~YVWHo{ruuTD<9fa`p4OSQq6*yqUoG^~{a)Fp{fhoIT_WN23wEv}!s zkq%NanqNvfy9NUuvg+gRSe9}6g!&P>M&Ln>5qMTQS&kE;|7lX!l#ki(dkj`rdrPy* zKT~b(I977toGwKj|NQGGn%)STs~bSk^awh(N`Gu=m8;hH*pkcDrvC&S!j7D~Hh1nC z+oW!)BMDsW|2kgi6c|KC4&@+_Sy7oAr& zwK~~|R+FM`()HiL{deX5#r^?%u2bN8w6}w(=2ZLZizsgfyI6UDuiW~n;g_3>qTO%C zDf-wIBah+~ePEu(Hvm!&R<} za8Gni?Z2nbD*DM>0MsSQ3Y&{{HfM|f_CTK*yTlnxov<=(x;EsQ$uE3WIa6z&ZrN41nf>}6s9=t&Cud+L zslCZ}F#f$}8mkr6RnKxBJ)e^NgYRg#Q7nS#be<<(uqp)wg(CyyN^%Dr7OLA8e5``t z;Uo3=p%AA9&u;~Rc3qk8g7wK*X>8d|e^7a!<0N9a`Xg6!Tgg!1Q&z{JrnkemT03v( zsYLDra%Qsh9En{YnLrIHog;zemGtwqWv@BpoIe^=d%-}|XJ=znPOBSlsi{er>S79K znZ7|WGlsX<>3T>8Q}2dB(xA2v0uf0{7@H=ua=u{}YHnjh5p zAc{XoI1b%k=-=bXn$)p5r+m$WK_^r3rZ;V;?bzF~GHhWpU4}XgR4m}??sBuPx>3f% z`ne1c7{us=eLRpy5mlgR2eGSYsIq|3ZJ>IFMB*siOar*lr7!;q2sM(i-ny*mj{&eHb>A)#B>;bj%*T5U6R8pnuiWG^V^Sr(#wTT!&RM0QBXNpGW zN^Smb{~(6%SgzbDFMb=2gx{26=qLC!O|eiwNA50^?x{{ zR)=Ginw>X=>16#3ITeSjzrawhFb?R93t3g3^;W>U)wA7;-8#0k_0=8s!~&tD_jO%9 zNLaa`c$(@yWo25sG@j>MB;-`c*n0fLVqDI-yIu=EY0jpPeqQsRiO1=~J|f4N>15f? z=>qxB3x_B9>7G|8!Nj(tX>IHH;a-8%=e+g_tWQh6a^;*LcQj`HZcVzJpD!uA3O3^E z!SCXL*Pwk#&1#09%dCD~xtB+NQTBca_v6_p%rRigK9o?b`^|P)wGKR0l(y~=%bwpT z;Umy!d-w2V*&RDMXt%F_Hmj$e)BHwgs5|3TxeyD)RA8pdWObL#Q35FYJsBGuaW+hy z)BdpTLE~aA1s6ealkQBJ(q`pc;Vg&NmfILckLagA5?41{6q~!zSRvlSX zk%78BY*W;5X{beA(rHq4yZ9{FEPs!*((_VjA=eINyK+_WstAc)^3yR;yxc}-wrvmm z3O95w`3(0uf;6;k0`qZ9-lp0XndTr|75^Fcgq4WI%+veeGG>3xXf&5(PyfJCzEHLw zYK=$To~W5Eu|~0$1jw7JnAMSjphF7EWRHQ3&w{u8B zeO^ENnPN2hMT);R@}>T*?+uJu1$Z&<48Uv!=XancdBwShIkI~4_Zmem=Mo?(9WtCj%KR^Go z#zn0Z_eFNG-->b4RFTc_Q z8?gdy**xrmWR%$;ygKm~3cm(r^=NklHpri6dDlj(+8kl2#opxyLU9()eAcSR%N`lqQLvN-){grka0|a5eq@dVYgpF(%Sk zr>kt3<--93ZOc0zRau=Vv<+-eQBb96U6zQod!_y#`HeM2B|jJLqqErzU1W0FKlz#MeHHxJ{Y#r_1pvQRUTq^0HolOrNi1vDyCGJlYhDxXKMg4V{(rSE&AbU)3`^S8ifs zTyQ#8Ee@1N6!Xb0Krv*Ct6s(}t_|o{Ki5kp^_(d(t9f6Hk1Yri4W{rNJRU_Y$WBkH z2*insrb@XdNIyghH~JDj$Hbg9T_@`s^C0@nYr9?jd=m=A9dZGE!p2e?CQk=H>9w?G zy}J~vYj?2EU{4c=W{8YgqK6M+M0(yP{?iW6?xjz3^iNX+4;zS>s`hMpx8~C z=Vw?F>Ttnvw+1L|R!{lZaPU9L3I(pgsspqi?5d2{eUJ^D_XAshVwS};^4(HJcJKXv zU>*IlfPZHxrcZCi-m^A~z1T11xlL^0{8WVFDr$BpQggeBx|5XgQj9={7-(@`@=SWv zakN3Ww-@MSD0vKD><*r-CHMO8&HB;0N-{5~i*oEe)Gji+Igbk(J%>5!Lya)>W+0W! zn^J$`T1Nc?XXR$fJB+jeUK6>ccm4 zT@Hd8A*@HV9rxV6g(NGDz%vQcYN=8`?Ds`WGU}XHYGqFz-7nIo^$~Q5*AE#RG<&zy#twy z9xB!aUl>dxQ(XALBJ1Me^LL!KKYhYJ?#rW4Xm%+_ zdwTD(CV9iX?PdJ4kH&t$B?u%qLCEw*x*X)QXh-mZ*=X)=O{E{vY8kU~<;ps)r*wBu zW3Ix+%e9zeuAZ@o=|yQv)7I~6RZT?ifgT|Ad)%shVsfg*Hisq*-^7r+E9ZOqHcVUg zUC<7iq6x*Jlj-S1Bk*J|zj!|Fws4BHH#}f#Nv~lh-}n5vbJuMiM(c+mxk~MHbOEn= zlash~i-|)b25kRW*PArFwsup@Y3uSt_P1BXV7CU=R%>Kd3 zxnvnq%#^ROM#G{CrQxb^UeefppsH`NSnpnTPP}eT3uviq8Lp z_C?37sV&Z1Y(2QZRq{k8lm7yz*-+s8Q~2iWxv&!6EVYN;P?{RMM4_l31YvMsR%y6! zupZ%psnm9>p9yGy&%*U{0)E%sw?Eh@7BbsUbiveG!i>v!rE43$y4ch>;-ZJ`W`Ahs z!@dErSfxFhi?1kE0bNIoc^Jt)Sz7~-`@u$Gxf=5hOw%28f8zcd#gzU9W~Msd9iMAH z7U(J+yhUKzmrnrCbF?ZfUFFoo*X9 zE5}7F2x?aUyh7k;hH;97+bv!4DnG;NNhr5z$1p3oIbC96>n7e5ZU(A~h9V;WU@h5@EgX zow?;u(nwr(nr3mwR{m^a!6E~rC0c6ZOc9Vfttmuc`nR zD%B6mYboR&#V$;2CO2CY3rteK2%z(%(iH+nUlXD@m3TkU(lUic@YU2k5=SmxnDaCI zi&6n6lTwn)!2^(Gjebqad3aQVHQtHe5@A>g0WNa7!ghoAy3~hA86sT?;zt2{`G-*I zgwZ#%XAR$UV>vVMT~-Q@oEYogB2p(}+VCvM6)taIq2^FNA208SYQF z^x+=O>EKBZ;!!43rBC!Cp}_~1jm64O`3AyTbMeCrVIg|{bP7!DdIkbTjFCDQ=w$gg z6M#Y!P5?u8_4U4_askxy40rtlW^Q@DvPihFUH3eMze)aS)qX)ZZ%w!lM0khBC(Aia zu7E6{%B7t(<8fb~f#8CL-`t7OWD9FTpEY_UrciGoG5a9zxwaPD!|v|`W4S7W)1S$g8pZ%`bx>JTcVYq!6 zp@rbKx_R~yeP+;hLzC>jR^$aTzj}Y##%8p^e4S~PT^jp=Fz_SR*6$~` zO(B~+nT)b{LzL@O@%1JAGf|5e_OX#q;xN^=#92jS*2{#)h(?K)1Dolf<%3R}()Y(y zR8-D$aI8!oBo}0U9#e0^1-N3~^5=YWJ&KCCKfv@tg(*FF+2NCw=lEb^ZqRP!P@}FA zt63E-%^BN_45Ff5p!>>?(x`lRcO>RDd23r^K!qhR*WG9NS5k(3@BV{~rQK?O!q(Uc zVkD^TD#qQ2AAr6MSE@a}%Cl}2yDliK4YqA`H2H7*JVETb2&r;wU{v8vx4J6-#Om@| znrkidam9_DST7TX{;7f+58l7Eg06iK?a~G$u?7V}i_P~e2OvrCkTza{LX+{G6~-&4 zWL@!6%h?Pq$vg4vPTf|FU~;Ak?&_AutAOsjy&MQjVjqiGn zw-WhuKc}Ln<6JoH|D+z?!cr0rG7AP^)+PmoGbVCH1JdB40U3>g&BXz&JeXu}Aevtw zE5Bv60szlL^V4qng-@C9iM;9|=S}iS12>VP>{IX>YPT}01g-B3agH+xS$slaY^MXq;wMeo;^uLQ1hhhUyydNdDq#U0UN8!1ODAC8P4r#mJD1ON%IBh;ZxgTb^K%@;J^`-j}j z){^Ph(G6ozxf|4^x@ad~u!Sf6#X-e&xbI$wg2qwm^Q0p$J=SnV3G1qWA{$X9=k%a#@K4m@aFwVj4%8RA&n84rMDw}?BwFR z(2a{Fy+(GvV}&#Bn+%J0P!#$7#_Hj0)9_I6X%jkGPNVKT)#qvvXA-vSrf%@*rp2%w zZ@IlP3YS*fwfNY08))rNDDQy{UidMPc!9TDLee6w`CX+unc3jMbxllMp=o2ro{Xne zGu8e}5pE%>K+T;+enc%kP~;j~+Wpa`a&Pe1asxA+VM~4~OzesVku~$o9420Ol2|djO;3eN*XH` zfKYQyD!zz05V*xQBBlEdK2Lir=SHZT)%F@Xy`aFQb5(aYymmb5_mRK3jZY3JbY`{L z6&t~~$Ez!d!Pm@dT|VvO>__$+sC_-)St z)%ov8&p4rAjxR%Uu>ND!RS1~V&e*rz&j#r&86`7Dq{xbFHLExZ0wQ^kD&?9`hrJ@W zX^7?5`|^58$`rK{b@knomeXb8bZVSNS94!}0>KO~A^XaW!&7I& z&94D^1mp5<(q(@0{OXHOS{!0^T8cAsSYX(%0h84s@HnC6{b{-7?WRKkKK+AhH7-7o^8EF1#V3_Si*H|*s$Vf^mUZ1xFMAXyytl61W*XL{HeW_Wi(Y7g7)w(OBw zVp*qyC?;VI(93s{xF!vCQJ_3~UDUjl9yn^xFjxcTHQ&8K#A?OjrI$Zm;M3KtVSfj9 z*$wU&ax4*e!g`eeZ@QBoDxgT-&_w#Bhs9aN!MYvvKu@oAF01 z%LvYfGcRB8TS}F|@)J!8RqFVw_y9;M+pZen zauf`AyJW7h$?O*w*1l7jIA9)Y-$14OzXJDe2-@E@%r4cy!D8ttB#2 zu}qf4pvGrOuD`sc^LVwfou$oYeBRxM=z9t+5q3wU#%HniuGzd<%k8jFtE|D7iZj+x>G3BH^wd+~?lqf$qdt3Ar-K5kuSUL&BjI{ft*x!~ zE1o^LQlPk!-+rf!uRHu7zPXk4?ArVhj0Wh@Y(vIMq~o%phhbGHAt8_+O?gb2N=RF|d8rWDp`b&|6=Z5^lt+(JYtjX38eT2iF z{MK%+T_pj9gG4mz8Nfy#fr0MmJvYvqiTRl^^JtsDe)PsLeDd*dl!!M^G0m)T-S@1- zO~60MPH9o4V3aFtd2bON)P)GhE!_;QbQCosfEXt5bZm;NylRrL>{$x>!!cvd zk4R?QqTdn5*P7B+pbH}mKyBOKv=4~!K5sQVO*BBZ?qmN=pl6LtEl>zi7|2>@bMM%M z5|Glq-QhI_`d7_^kT6DaGmNpI z>DT=OQee0|`^0~(VxyFV$y~w#chRZ3-NxN~H-A{%Z1lU|)tOkEECweA=>cW0D_ee! zpv~Hv&8#IkU$0Qt%nX9vLIK2QOns>>OO=?<+Lxu4A0`~yUC};fFGqIPBugu3zsJxt zn5w%{(V%%-{+m4FFPMhka)4{F!GjjhV2TYT^@1~x!an|;O@)4`YO}2ha(w*QGTG$! zuJcjXudk2LzoRz_Ej29C$1T1?%1&k|SPwl0?FGw5gr^B;U`x;SuCyf~*Y*{;X254X3b7>S-+EGD7 zin>R#3v(-tdFj?s`m{xKJA4@jA^3o@puL|bH2jLT$)Q4K)sK#| z1gIQWRB9C}dy!l^mIT5XxYHRrG z!s~XiI@}@q@0zyvIAC9_BtdW7Do!!tvXj0HWN3Td&XYmR@k!A zKultIv&*+Lc_YL=hL(X(gM+`r?kk%gCfXjK^Vst@%MaoKbtye;&RENv3NcrY?pWDw zRjYjZHFIOjK*4U#xlN%o$Km1qtMOk&nc~4vYF~-?T)PTP)|Ym1Z0z*2XEyUlvQiv* z#3A7W?zE)qWc8;a173~oRhWQ}z%WkIIgbjjORn*SW!rwZD6;DLp^{Y~Rdbdf*)hgp zN}PbSuMkmBYLf5fNh>c}2@lAI0I|+oZ1i-Z7><1H!apQEzqII$j&z~F=6p2FGGK_G ze@8L;(A;8D8f4{E4^hb^uiT8*~ zD<|f^+NWtolS^;I-GmY{v`ae?fLz0ufDcLgbR=DoZ1*9mE0LS;xJ2x9bc-3CY|kCx zXpJ(ONc`y+YV-74bB?c@s#nF~E5P~|Ut9tBeLld^W*8noGg=sym{%hcjIG9>!TOPM zrOoV>{hQ;zxg#g+!rA*i-Ar9tAJK~I%~AEPsPvsbbwPEwXuC6~;u+HnEW#SqRuLco zby+{yZ&TT|o3v(qdOCp(T+9y@ejE2L6CeK`pnuDngClEF@SYprkBYgEo-?kg%Te#| z$(l~>mCe+4dagBQ&QZEcejOwcP$#VHAUqtsr|mUPsKS}IR(L(Gv2GFD_1pE7{GOT1 zo>gT*Fi=C*>e>|=2Mf7wW1GEk_wFvd0CZNR;YpFG50Br*97)gqC3@^*C~KB;k?K># z`$WoI$fk8FV;ifW6Kw&-nNCb-p&h7C8?t^4fOS6&7*c7NB(ZmTO4=^@#U3oe@}&f*%VvyA_9j-kT^!x$vt!s=0ln+ zxn=*EK(P!E#!A-u;@#t8oyK$HzIo^XJ)>a8@@Q!27<*Kmab|O}S(sba99&6?4i$YHYM6qLV=OK`583eVK2SJ3=GdB zoG)M_8p{gRf|xj@4d_}=?s^|^>zBE4lG_({bGr=Y8oRK3sY+Q;uw#L$Uq=4c@g<*{ zCRFiQlBgSg5^2t>yQ|{6I&LiwP1;YFaGv}=Y@PJyYW1PI&{l&^Fmw+8OYb4Q5Bt{g ziP1vQ!0%c$DZBG|pSC~MO#v=E!?Jdyg<@T**YXwhnCA}pbV4#6VoGHq&$dCH(5Soa zKcm`^OVe^JUVt>v$yx@BxF2Z659rJD*JN!f z?M8DotNEDduzmISACc5wrU~u?DND?}1+6Wjzeg+h0&zW%J-HvDn7sZdR7CvZ#0mN^ z!9yA0B*i?mpWR8a2K<-})VZ4I7%^9u*{1!g_r_4mWeQ6XFR`f>W0=hWz&qHSp>m0I z(pU|@fbLe2E!-_IZEIf9^bWa@JrP;Xo{5B+xDT;QiwXrF4=CM}Qjd>JhjsrjV_n)B zEDAV@+W#suH(SOrx$TZTiRKh8W19Xfr0loxoxxOsShz1qD@=RBlM3gLU_2Kde!Oc& z?QRquqU{7qbo(H+H>QFZT}G^UmN8v$Al35_G(#M~-n4B?F<7X9l<4Pqr(R1xXxC^wus5z7J{zi#7M#kz|66J_#m;!0AL33Rf^S1M}Z-LFqw$V){`Y<5KuQ-jU2 zOBIoUU2DeS6H&3B*kp6_i<7id4`P?H)!{{NVO9xper^WZ{RW|>CKb;rT{n+AL&kDg zv%FcTrl$=U2RUWVU&jVf;6ZYZl~)ym#?3IVo4Sn)uQmGNH7n@TnGY~tD|q`tQ_Ji4 z#4E#=s67igecd#ApB!w67FXb$H5t{n**u^i8jI@V7gQz_yFo+i+j5{CndqzIjpo6f zT3o*moV)ZJC>f>6m$HUc+Fwz=xkwXAF4RPUDs43+CCKa*Fp@v+)u>cJeaZ32l$69& z>5^Ds^SW*%%nNJ{x^9yQi<@yYt8+t6mC(O8%-YOtlRtKL&6tk!>I*fH4t4c|CvNlm z0|PjzW~S_s11T^AkVOLO2R!}quK#3pJA}7&yJBxOR{s|sF)H1?jYr#!q~4r=*TG$t z-f2c^CM{17qztg^A@>w42?^)Qntz+zH8h3=*3!K5Vd>M!Ap>&uBdIto0f;MQRP=rP zBP)M6pw_K)BemeXAJ>n#4tBa!86iaq7WmSmibT~>h4Gi)npeKa?hyEe4U*FU+D65U zl!3vQ_V4m7i}bG4b$pD!OZ=!^yPCr?9ZMmuB)BwZe40LDIh4Ni6kO0qxZAd~1Oh5vCq2qk`cTu9KDJ0%xAJa64kKBZ5H(mTDyT zJ;&1#{s@!gD_PzGioch~9n&2!si+kP+mpt@(I#wG>v>&3l2j(JksGW7R2bZEIuqVVbdjCIL}{Wo6%v-p2TB4dnVHh9q}XoXq(k&xvV)#HcBmJQSi$Q8 zhkJLm-9h?MP*W!d_ejE!-G*$nyyqt_udTH(?=Ni*c7hA6mdEem9;eAumSkhyXdbFZ zFWjmM*M_6BV$NJ%*fnQ1dQs*Y@q1(N0;?^8-H9YEIpPFlW%c*%UxRA;83$dbUzkl_ zsZc|P^_5O{@*cD~4Lx*0`#juAT@pZTre1$e+L(1(nn*n1@_A|L#c+54E(ruXq4m7$ z8o%+~O#VQ*ta#hFmY(PnYmrwF1FIn<+G4l$Z1wCIe^s8jTdk!F>5`n6} z-Dy~R1icT?-7OWM!*^`)KgBQYH#|XLXjyZe$p#FY+esXbh#QvELA!IIvQY&ZEEVWo zLg2|k|8Le@^e1=nTC>$6@)}`H4I$KkpKZ^Sl(Jg3LKYk^WNr5xAHEG7&tHtEa>v{&Z8__FLjCKy11B!NuM7jW@dAp2IzSoCb&ppFAu+ zYw_wh$+Aa5;b(SbM`n=bjhidqOI$2D(DQqW_ zSrxY&g35H)qfWBX`|JgQag9GOR{xx7naLRrfr`iq=orE875QCfMb#EXt^qd%o~*M0 zKKseF;uA}A7QJtdxl`XMa;Kh!i15xl-r9W~Taa@;ic2Zkn_BQc=#sVaWePl zsc0Y5xKni%FtqNQiIe&b6 z^64lLj^3@p488fZKmzb^!*=Xe*G}|y5@f4kg~wG6~18-5+rHY+5+u*DHpU7Z4Db*g(r+ z>=K}N2|czwDH1KCLaEYFm6zB?B0qw}`3$J*KGR4hbSx@v#ZbJns4 zBq=6d1`vg%{si3=upiR2^qW7Ss&BJynhU7%Gox(TV|7)wx7RsP>jbGvZc-8(@C61- zo@Y@A0tCMkf^A^&o^GSUw5;&V8vDQ?A>$&LsbAXhwQL6U58Ac(`oL3#JaDz;ZoZPq8l-rJ5Y4-;j8tlkyz zzLnHT$Xb1KMiJ~t3WQzK)p~RS`YUwhp8Cz33U1Q#6z*PG*idH2{2!gozQ#4FZB^CA zZO*;{q?D_>#(1+$gpy=*?O`IvSo@HS%?u35+TC4QMz$!f1Np7QELdx@(w=yNB+zGc z%*D9GHu*JKY5(4J9gOQE*U364R5cz~)9b6Nh!ULn{w}u2^)qh6Uf4XD+5ipl!Y)NP zDy7T|n`3?{qDlJ$Z$9*Hh|LS~q{%`iC6&Z83PszKf}NFgV@Wa#$%?@W!cv=;M9f^a zvz4Gl<>2=#z^#mbBvhT~m7p~6%Y#|G<47^Oms+Qe3a+o#xuA4f9KA$&zhcY>{lD0I z%djZhweMRHBot5(5Rj5?1?d(6$suOwQcAkJF%W4HkVcvrLb^dkx*0-RfdPhYWQJkh zlWSdT-Pc-o`EJki?O7k$+&0fSkMlT=z5e@eAC}mMtMw0OgD^p#;BF~=nk~B}amT0T zk*AL`Cr@h}wRXP+l%RrFlRlINbfWG;8t!XE7+g#hcq0S8wTS?=8~>w|v(3Yi3)FDk zV6SX_;IYcH?7)^y?zkf8t}t1EbK>*`l0cv1t|V>ZC+lUdDH;6>kGb0UQI-cpD29d$ zid(@$!i$*RQkn?US?9%f=YfKUsCHTVh|L!GA$B$+HD$={_^sNuhf4(d@H+Rh1x*}7 z<$REKvVRr?WtIHsr`63KTwICkg+fmy=n93NN$?a3SxQK*md&N1f$6)}Ivk^6qL}_? z7h5c`0q3ZwR-0Cr?%m^ttP91wQz6R@`6+jd+D-|9Uiz7X)cMj(D@z|QynV|{3ZLa3cQPdS`Uf<&f{^}Z6TM{8nv}83BO~j zBdh?{;{Do{`KF}Ek6&yVP1B#rY3;gnPr_HlBpiLTTfRNNxG z9mYeMQ;iFf7?`NX9QOqrRD!4qKL*LdF z(=~q6!3SN@K~oYhw?~QhrN1w0&j#|07r0y*JV)ry3W5X#S>%dN9pd<=K=R05^Pog+3Oy*%nze09wGpgUY40WE za-L$&wkS6^>NMKTEVq^r0Vr;M*y2in%R*L>*=yaPjJ@i~(Yu$nXM+e3ER;|ljP1^o zF-X1NvXcF^Zh0uwWEwH+*ngA~a5TIl(4JYFKL|GCcoirD-8jKNz(as2|eh1Tghp_;RHWWv$TZzC$( z=JH>x{zu_afXFH-UKvP-Hd(y!0#&9o)fc}|RsrmUisHNWp@A!qgI4o1alkq-RGi<+ zjLR8TSmc-t5hTxn2P_usG;cDMEJW~=ChCMb!%=Eqnn)a^fKQR;jto3%Md$0GRi*H?Bs#|A=I+fwA1H0CYTf{p*N*TP5E4`rfC1i_D&&~1!4?E3>xM*2B zx=mQ{iB~-{r=gS_D~S)9C$zk#5t*P(m9`&h{aqoq+54#(bvqy{??e}1EPjV;_h*q+ z(B0@c=BLfM1&CwC0^4@ga!gE6P=upVh>`sS7boU5SX-f*-8paAf`m&1HOAIYF~%4Zt=rCON_k+ zUTa)eTl@ksMOSC3XZgyl4obY+*eg?x%Se%L6-^yPwHj#9KIF36esmA$od|H*dar=Z z6gpJmoE=vkXcAc^!o^{7Wqa*9;TUl8Ql&b1D)p&CwRJyxk!E&sjDx;fB>BgbGNbyZ z6cA@rywu^5?g8qJzA0L=B3M~!9&LEGU2kZ!&@-jn1DDQzI4l%EIAuHTR)`TZ-I#!J zgbbx`N)TXHUc|{HB)GKL1xI+TkI1tJ34P(k`XIQ4@{2EmM4taR6kLC`<}~Z)pFpF~ zuz_jAeo?+G=jQ{7fdhD)?2}gqh{2ynu4*7@xU$VahMk%12D?yJtK;uQdz9!DSgnF&RS|tD!NZt?O_zi36w-shyeHA*MO*B~3?m>nzk(BT zTMP1LWsOGY9SO;LoKt}Y5W0L$y4}+=tc!6mfa+A;6?2uFS#*z5M=d@c%?>-Naf90+ z-Cab*gU=gUPIn~7Fkc7;&P|)Wfi{lv6aaYIH`W=F=4W@dnbt(I@+)$=D)^XtDgasI zxK^WS@ZIcqm%r>W+kw@$J^g{b#YvQ`dL}#6y~b)d%QTtSh-m@_sitaVaA_#XbX;he zcKf9_)rSmxH*>Q*f-E9^ICDcyUJyu%9-Mn%oRke3?Q7?PK>DNoiFJc@_x?jB$jfO# z5{BIVC;*py32VfPs?1|`b!SOC5g$3YS>e`%`mbFz{?H2c(|?_ikQPRz@qX|aZ)s_? zEZ)4V4?yx&4)57qTzq=&=kF>5$FIap4Tu*BvLo6@dwg4@?KnCd+nG(?p+3O1*iIi^d!cDi$ucA@6k5O05v`Akk5 zvDk(R!TOPB-i*)j#>8U+!nI*@i`5wPl5S(OhwY&Ww$^e@v#~Kq*#lGFxJv7_T$%Zj zN`T*CvP>xKNl*t2v}?vs-KwFk9z8cwm-&E%hzO82ZgK*GfMft_{g#$WZw6YozI-bO zZgeRJ*v0jtdzjo2LDq~*r@4)B+cWDv`L8PbWLTQ*N*E0%Nrv|D{(XIyxF` zK2+*5Y1rZ#Hr`gKSLMZTt7H%4&vr+5qmxE0yV5!y+K)d0u-Z&tzMNV2Czq`rhRTFs zQn#mQ;2Jmg+=n8Z{svP73NA3N9}YMYK^4wFcW)hR>!UUHZv^eSj1zb{D$4W9;(Fq( zm$tdqG6?a=`CObU(#*IdHW7q;nOhpgn1O(5<%bVZ2S*AHgIEG!12dmWKNBF$uOCgl z667Ka%Gx^E7bRg+CJlJQ1XPhw=NCpdxhQ03VcF1tle2=;>yUzYVz^)0$#!gVrOQsd zP|*^r@{nV06#P9`$`n8v_4~7NHq7&~FYF2&+khaWTyLYP2T@_%z#GE6tivQ47ku;i zcuntSz73!B>rtZIvpp@!jN_^n)Ts2&jb!U29FaPcgBz0dnH5vg-DEq1nqxli%l!zn*&{bdkZQnl~1t;my! zjWg@@^puM)VEuTsHY80qkGn~Pi;9+2I;+$o+@CRe1~Ic3K|$NVy_+fJCZ84H-a5UC zsJB-^NJYKF{W}Z5{>*eXz~5aRl7`-Dov#Y$Hk?|@Xsk+&H;c&> zQ1|`R%~E9{|4ca2$ylT>Mzmfu>9EvG*FW$Hq`=o4QZ%9qC~}V4#`o%0SI6FS$rh*k z-P*7X)-3rLh&u8&dKF#WFVu?aaoV6o61&o5mR`wR$S%(xT^{AIIxYV;lCxlY@xub* z=Mq{5edSdu9q@H!KMT~~6+>5MxT>w6M|V6)S8h+ga~+f^!3R3t*d|^z?9cLDdVnn8 zzAa)uW|9WzbUbV^&-j)umHm5?VL|9qHA~1DXIUcYNNwXsFC%?h>C42Z1s*?;d3hV6 z-?t2sVf*>>C%+JVY%}I$c4ZkzNS>bwV49UGY|+y)!wn*Pd--1aA^QpWzKd5@_bl)H*erGl;#dj5TniP0;(0Cc`|C#fQ zN8nc(g=&J^icSwB^IkM8XNm{O-(z_ONr=^Tw=iFNt|j3KSH}08Q;v3D>;k&1Mko*y z)Uy1PQ?BO2aF15d>5pM|Ve&~|;d{wh&d-h2xgl!O8HKyqdQf*H=I5URfwxp-?Rm>;NFQd%x<;v^g0yRH0m3%r~hl(3-CPI+Xt^KQLW&KXyT$Zb1=SF zuofll8piu^ySm8RjMS2gCi1C}0SCzejC;@x=_QjCg1$8E70*ig%xh8&vPN|-;w*3u zM(}Ct(qM_FUrx3UHk)#M>QN*G>|Q57WH_t($E zD%&FHNwREFiCEFqV9i9*j#t~!Itu&jA3Vl7#+!iPuV}cy@l_xfrIow6bmy8xWxFx` z+8cj`T-YxN^xfi1+%gi+rH~5M!4wGB*?CDubu9@{Rf~5EgTSVqM8wvsJ%3(YYF^E4 zD(W)k4mPb-CyN9ZTgclLI&)L<8hoxzy^zk0W27~j6E-Pvc*-s#?#>GIg8?l|ACVrM zrbdutkMugHMP@hqJMN~D%(Z>w&grK6MNK-7aUhXHwA>TKk}`97&C&FS-ml|!8FD23 z#VXaY!NTv8+ENX`kVyCh)7#tp8A}(-6Q8u3eRdN_pgLxy(EIwvkUW@n^=nkT9kw;W zlRzS{-u~EL=%HgGdkkBCPXQTJWeOqu_nmo}QqhrX&&Jqx5)%8E&ukcv|P$e z-Q+<&{$t=Osg){=laLdAYP9r*S98|HIdsTwF)MlA%iON);FJ9>2Sw+8le}hw5v;<->=*pmL(pnZZq`p(S-GD< z7*E^3C`}kzaS>rIP2h{_t88AWu$p;TX87}B0Eii;^X%hhg zsv+o4SGW*z#3&pEBKryD88O6ZI@)^S^>;J=_hi#Qm=M6Sy{mtrTmsaeYa8Qp8}kjG zU*?A2)HE=E1JAoRy~bM~(+?Z!9fMcB#|39iw(9(`fQ!HaRs##@I{>6W`x@83sXD0u zf6h0(or{CcWH9UqBlDF#H%0T)^1=CCt+=LRPPzfxo*1tjm+9Omsn8)cve7ipv5zD6 zwc&_STWj0G6J`W_#k9Jr70^|K{BYu<^q0%y z??t^!*j)Tm;Fr)8T6XX(qAG8u~cnL#L#_O2x0_7C~qF-BGyqoH41VmqXD1Y7s=mO#)!A@9WmAvZiy6A&AV|4lcEu-Pex5HrVNZ$bb-fJYcy+ROZaF~;e=3M zw#>gG`b`9v#dbS~mAOI9xSf_3bdvK&{dWG-3yx0?XqxGoof>dy#_&VuU51G`I;wX7 zUjkE6S<_R5H;1+X;ADXtbK-`0=a*MX2PM1QT4=|;|N8R(4_mNj9CkGz&-(Z+1t64- zGYL@8Zg=7!Ig|}UM6p~dYyrj0z3D3JL_52%l46J*!&9fa~o2|2W)SB$tMfj`Y4-nXIQqE3s(Z8i8v2n zt)Cn(n;2HOWh8*ETjjf;JYR_W;hoF= zeOo#45rbXg$C6m(2`c<-^Sed)(>A+A(yjlWXJUgYbUyL1s)lkHTLvN(dy}T0@MhK)ANH@FSyQIKb3< z(kvcVs$gZQq*n}`chh5=`T^MBeB|EC+_-`CauD@%&|&(^g!%KhXI>zeZGWoQu&69rzCEk!TQ zd((rpVYXMqYw@`s8wRiB?BhZ_oYGX z&$l+@3cAd}Dx2IS6oEUkLx^ zk`n?FJRY88`o!-ae7SOQ)x78^^(fcEaSJgIA8r!emGzbvDV1U70GY(k`ME!--h7n* z{K1-xAFs~wa)F-gP#MaN8StU4Tf5wpWccC}+K_OP)s@Q#?6@H`QX z)=~E~e9KMFTE>bM-&k3`nG9_>F>Fh)zcZK=!kF@cU?}ybDNIDMK#qAhOw82J8TmD@ zkTHcX8Sf^y{%_rg0@y7b-)e$#s=38$f5zXY4_dK6g>C0{+%2~F_BYK{hBuC#Y?aqx6*0qKM* zkAKTs|M8Dl@C_;ZysHOi(%SjOTeS1lvK-q9+Algq^328xrNJhwto0k+oyAhN@SmMY zRIVH8`l#<)0Qhc<{W2_y{H=xkT!DWyQg%Hg?!FTMc4~Ne`})D=$(Yz8l^7Kbj~dlo z;h5*M%;UoEVGK>j!;Q)V=abxcv^wL5H!Ira{fA_DuIG=7Rv(CaI1}QfT?QmPn!opo zQ@ERYS?^i{a`Sa2EJ_x?n~nBY&}l9Q>RDi*iR5+YQXpjlqJ5}wx6o_8j{?f5tY$qC zw>cUYbTR`pp$BZFw=J*_G2(=fUuJ29f6w%s>oEZ^U>mIGI`(@r*&ZiUm~`2kSS57i z(JtRj|6B37xH@1w{4M{^1#NAA$Ybrt+LhPekl;HSXy3xiKV1kQvwQzij&{z2eW)tY z@ii-+NHcmUh`$-Wc0TkaW=D20p?dAHgcldfN5zsEL~Z7_B8i$o;?%k-(iGBDVFvj?b&06#FEq zt;Z+HZr%6lNxC;%YhC8U0W==fa9l!h53Ai|)yrRJz>tjsH=Vk`H#N@vVkd12C#6*4 zaf5vm#D0?@j@<*I3i^$pm;yxxwjWX=gIuqrp*T{!xMsY-t}OH* z8kzp_2`G~OC2aYZCtd#8qGz#C$|)Yqt2pD$%lEV(yyb7N_ssI0^_Pt2Tnu`0=ikg@ zJK0obHLY1oS>ZPW%v}QXqB6Q|&_mWzn?L=G@LGVef|(iw0LS&qQ$UjcSLgGu&g9?z z!ME)5K=wU0aV`z#EkpV6@bf<(_-?!bqY$(B`FEA`tN?aUuUx&x$Oem!ODvJEV660n5`HR__AJ{xon8+zV7aD76tNS zS0%S{cX+5VKJZGXvpfyQh7CX!-T+8u8A|gy;H~rCE&ZS02q;R#5uQK9#E*_K_&|T$ zx{k}hZV_vKSV_}eh*z;gb-$b4a%^7u3+C1*K&evgZ!ih`*J1|$JYVy__)3fb^8F_Z z{dU3N!|sY{sjsU4{@?z+ZvS+I|8MV*9s%Y!c+nWE@U}_v27dTCD=RBgKc?I}Lp+h4 ztJlyRJ|VtZcTe%^V11W^{f4-B<_DV=0Rv7s+^ZN~bak~mw+v)xb;%7ETz#EVGbHQb z@!d$Qw6gaOa^ucgop^o!M5XsEF;_&WiP(2jp(6CazC+g9&L}#e3#oLNEIEY^8(-$w#Lji+>%{vhKbWxB8GK4e?{^nAcdr!KGfpXf z)&&mu^wC{lq(jEtt(k_Md^b;wl49pD%0rH{e2FF^OIP;0^CG!`GAUaLqaFs)C-O9F z|A!PCE}?!iV;WJf&kbfNzrGvQ%~!B}Gc-6h3rG#q8EzoU`c^hWL$$`SkSP(rGR~_T#t4 z4rkM|ENX}|6_Jl!4WyYZ?np6p=I5Aq=HvMCC6z>pbcPr0&1NITH@i8%Tg)Uqj-9Xl zU17yB({i_t)&9AG_$LAFXL*U^WFO=KeeDA~czHfv$>NV5 zot65{ zvmZ7MRY*vkPV&rl-nj8v`F8TtJa~wOmrU#_kXdiXZ#r$!pyD&*UDU|to~m<6X=h9> z`kOL^Df@b<_LrjvmW%P1piAfG0$Z67BL=enWL7iqfv?OWi6gPLHVItX?8Ja+ZkayF zx{~>-qw*0TYe-mgaR-_hM0Z^k?2yM#AhT zWrTF8jk4>X$~NrQM6cJYJPzs+wbN5it0zu`&7^pGan1r(ml1H7`nxkb^8T2^?3*FC zcySfcUs2fe83$u!femIjJ(s%wuZF*kH+~nugiAKav#^w!<`SEH>tgM1YmKb34G7fq1j@5i_ z$nyj_yVACl@&3qVt}0vQ@O_zO#whUq`y{nEx^$QJ`gh>sI~n^oEn8Kh4k-sRc;dbE z@YSJuJSzux_31WCQhQZjPV3`%dYPFy3w2lc4Q4c?t*sy&G_QL4+tfd;n4~ndz7IpV zIV1SQQ%c6g|~e)fnv_}ZdqB^PLi7iskcTY`}KG^5fk9b9ixFt0cv-r%{DzWl&EDL@0}fl(h?*43KE7ac##V^6EDFHZw>R&|?;dWmb~ z!#0~|l2dS+?CptXsLd)JDrO+ip|Mt zlx=TMTb>Hk^odBSqR-J?o?Bc5VMJ>^auqCCx@|D?=Lq5vgd!Gu((&}{>BiGMNm_Gl zb%vnArrUZrBc;g|9J?vgLV3~ihSmgvS?N$*&$xx!zVD?98CSu_P3H}NTsnfXGkfZU z4Z48e8q-#Rzb=EZh~v$mgRP2^C4I@;cyqx#Zu0KknALi9IxD}3Awyu5QF43PQ-$tJ9l$*}EKMZ)FcqngEd6wNAE$`1vcQq1;w^QN8E;9{xY} zW6|6yDe3)4XfRG9ysmvZ2CISs+BO+qW?y|vPI>yFnXW0eX7B^27m7a7887paowm$<&;&50C- zd6#z%v-KW+Cx*uqN7VNA4VTbkR196d>&LG;6=tT5o3XP9s7RSz<`hlhgr2erRnRe#{4$bRnHLI zsRzg4=|+c?3@JaIz9b$V0BjZ?u-m8%0H#;PbP0ItoM!p?Djb>Tn-OBL5>RU{_SeMR37>a~vD1a6k2VpTcHWG7czLvvaolM10NaiJ0V@N4P&G|CeOuv+F=gk zq2!@{ue)DzaP-0r2w0DP;tAa>hlax{VP+~pS0`)#n~QYT`&vPJ?GW?ev!8FyF=%bzTK>~*?1|a9 zdhC7t#s4GX+01Piu1DT$#|OBtP%>fMyhXCEg9Un-TF4^RHv1?A0?q!tHPO`OyA`z? zx063s+)sjCeJM)#olpuLD0`-a4@JQQCT)jPSsbRytM8V*Pyxy8HvnjSLNz%~Zf+xn zfU0_4lZFv7nNM;#`GxtkyT{_E$4&ZXAxhY-~^7ymD zyX3Tm*Eu;%Dw>+!Cc1P0Mky-xSUTWDHA>G3e7~#-&`3k){Dxb*9{MpeGrPMkIxmaO zF92@dd!L0M&=Asm%FPHE2x7f*y@Sp2$sjWRZfnrl#FSMF@exuHO@Mbz48pjAPnP;?Us-8=_JhpJb;TvpPhh8 zCX+e;P-@m{1kk(-Nq>m^s}r#DF|_E~`opk`w*B;B(mS-+fZ{68rpi*q*H`EP09k0m z4IXjeK%_0Gi0h*hkidTV8%L9FJx; zY1RwZvoUEIfZL1!H44YBup)wWaxkZ}#qP1Y#D1yv{B~CsBHuseD>>kL1q!=mJI-cU zyj(N$Yi?V&cK{t5Sw6oJQX4y7nt2w%F5L;uvWE!lYB=Bfs0hExwMvkc6?|Nd=20W@ zayC(acaFl`T7EGvCXY#Y0HDRumIG17*63tBq~ycajm!&q5!jXa(#6=m@nJH+5zr6$ zg?#JZ#8&{GG1G6_950Bz%^fJi>hZuyP)&XlX%HZ71W`>Q5-d!f2>TYfyRH2**~9(x zYEsNWBg!xqx@K_TQhF}KqC+df#qP6Uu7ZCDH~Mhk(oLSFh2S z|7gGe?1L2A)8+6s&Hj?w!Dx4OG2_q+tM4OU#u{~%DRtBmkc+{#j-q6qq$9^I+nR=- zEW$i@gR5_BElw4S`JDeE$~&0n$uk!&uYHDmmdBmu7p!Rx%9i1)-4q662Q=TWp`>_P zv;7~vrRHI8TAGOy3Ql%&X>~Gj-^pk%c=`g>6(A(1pZl1|vi13B?igm(S*O+>(rEsQ z;8+kZibjBLASe4ApEmIv2 z|NMGz(jW@Y4Hu8%Bd(a+{vdWW(o;c=>HoT*$WL-Q$pcifmVrwJmJFL?8srCLzV$_%v6XAn*j}lCVBpXz zm23iK=iNwME|Y>j*XQOA^$c5liGaCTK6t19YQC7LakK8`%$5;{w3NQJUN7*Ns&XHG zk;Dg_Bf$`AM;slXxNw;Y2#6k(Xem%I$*TDPc-N~8K6(!qn-Ic9I1-rn8S~Q@X8xxY zT!Y31A&gdzS|Prwp*tmJFbKoXQgAU?3j$Ze#`ZfZn6;7T^s8xo)Dd4#CNlRim>-QjQ4^Vjcs3kYl7y?J7Hn(RaT>j z&{hkj&n?lgWw;uBI^?IPaP!oH181jNMmD*gIogXd9xgB4st%@H_hb|GI6IE$I9ML< z*btTJE7mfhw5&D_b?(a#5(EN&N)fGzA3EcmLcEF-o;75$5Di*Ww~L7Sxf-P7jJV(V z!i3V3oiY%unj7T}Pc!w1KfPu#@4+(`)xy9g^YRvM^{l{)bMI~(Ad3^miw~d}WqwqH zIQlf^n~Y-V#jHN4XPu{lOAWO3_>FV96Y-(QpEfXnL$C57ZOOAYHzdYRJrji5K21Fc zh2AfGVc1V4@bIhCg9i_CVddt&Jn#F&g$MxvV1jHe}TK#60AVZb=&Y2xbQcXk(PV zW|j>SyTiTcdT`G^gmN?lBNjDx994ni^r1FMfgo>4E*QZ)4@=%%4Dg@ zDq$}&AVUXU1t7a0lTU2g*H!@C^W^mOWre%WmX2scNOZrL@TV-D+Mw&#fcv1&`)0WQ-$!!s4uiNkI$Xr;3?+1V7U^L>sb0HlNJBMjE>-s)l9}w{iX7AI~ zXNHainpOwfL{OA|M+p(p9)q%;NspzKjy#6Zwsi&mS$;Pv00R~(2?Sk@3Yh_ygV+9Q z(BegLZLajre_^TKdzE(kF?-0AlyMBa+C#dc4Lz=wxZ0UNY~gUszjnnGh@wi&35O@G zV^XV#Uu6lbe;hU{ee0+mC@THDuw8O|k$KgV=IH2J!|>86rxAQh%@)GNx|oc>yFu&AR57#YAzM ze1$3IMr7#5OCQ?hMoqV%oUb0w_ndw4Z^ZSahGX|RbXKM#;8^~RCE;PR>I>6{Xbu50 zq7lTadsA|sef~&owgNUZ3(WjU$abg?69-8+nM&#%AESYj_9iG4#Vj@zLyF$0>wCmu zOI8^KO!Xkvw5IxROBhE66jR;=1sr)lu*K3zx3z(b4MsTWV5jrn6*OS}E~_K+$s`=s zTWZJx>&&a3lJy)t4lH#gZ>5+ImgtVb&sn4mY^ihLZ1%^kM>QqVJ5VN|%{}Q}C$9DB zknX{9c<;e zdQ<~K0v4!_9y*e!LE;EWnJ_wLK&VNwr(3R-9 zUTQx$qoi1`LLs9EH(n?$d=O;r+1U`C)H>h+f?fe*x-?=ufZbMpL%&t;<*f^U70Atg zv3WZkop(^r6kcY01=c4J+Wu{F8b7dz(?V%@@J6=9&)$*AKE z!@>s>YwMqL%gc*8Oou3sj>ZcBdUaxOP_`)dC#2<|6Jv|0nZGO?;OjebwPOVpcHf1p z4kb$NG$~7zK*Qi*0HD267<0Ia<*A={OL?GJO8U)o`YVdj#8XQ^SXhIYn&0Z>u?#?U z@pD_@%=6D6z1L)Pbkyjvdd@;7KCuDumWw7 z{QYgWg-P7bRFU!;Lat&y3xSQ8q2>Zl zlmWTO_jcEyEjLCGD~77c#P399o!^(~@{7o&l%=2hjC8cZdMBom`+B)jRt!AO)2Mw; z#fCIOHD%GcewBhq%u#5e$5YzYT_AOL)LPYSwH1D~7aRz!T{ z&(#&7Jbm=vQ=a2ZLBRs70KA_*H$Y$Gr_p1LpEJArUgXrUog~HSg>SkgW9W<8t}j63Qm8FUG2VZxuJ@%e|0zR8FfzjnQs1L2ARCCp#=p>zE8WwQ8B?Mw}xHb0VR#b zTx&N!8#(_^e4Gdxs41=B{gix0k1>J_ylQ0n$CZl*l8EquXWXfoDla+A=KT z?<>lwJZPt36>UbrsGr8mH-+S;+Re>rq&~GHYG~}Gq@i7q?U`EZ{cykJAk}}gPW~;@QNB-du#}A-Hy?WdS(G&%SwGMCqiqo%m7`hvQX$@mWPGzUe>aa0U*+m?eDY#6{L&oxiXJs zQP7ft_b`pbi6f7agHDbB>xru6uk!kcIOEy|X0APVr9ToK zGuE}tA?$tkU7|?IjklF|Ws~n6Uc@Gc*ecV(XVR#zYw3<8b5XD=lXBe35z_WmWFiC3 zOC~HQ!SAeG^z`8)D}Q1*c0MQtWvfY|q78?oQ6dMHGt39=Z7$Oh3;rIZb0fz#hK=q8 z4QaS=saaYo$rGdAlZF*M(Wd#}G zSHGU2f7T4rKTkg#HaXim6hQ2Xd#q$=8e{9%M}Fc^>cPE-0PN^~h2A`h{LalBXrwcR zbf@!j;b4Ko6dfX}H*qDQJL^3VJ{k^inMr!K$xl|83k>NZSLTDg_zjIvXy#!q zPYaUkWwsxRtE9BhcOuFV<5CLcJ&lLnU$alW*!EHCYypyaP_7r$cOrlQReudY90Qfk z{tUxOsCPN8=hbT@+I8j)OG1KpHxn;WA#At9fo}lC|LztjEIy}76 zqh`D-ahgismY9qym@Xv_?mH|1F48YRy`!CAYxRMfJrQc712f8t=ho2$4T3$+xJOLY zv76z-anSp)V5bFW!_kflruq4Qy?32v?+RF&eYXj8ZNn<+3M-ln1+Pm|W^)seW$5XC z&rG!6sOKk!z4hctVMrufm_u-Sl%7g^pK_0~#hYu%_N1!#*y>>9i~CtNEeD7_Z2$<; zynWZ=>Jv>F4!eyeiDIhT`S1Mg{Tv=GJK|p%6xsA(S9ettXjAToaWLh1-}~!=Py|x2QI~x?g{K^xv~w*B8){3eU)CKiw{v;%yF%u9 zVBF80Dz;hECvF!lhDd6ZH=?+eL!G~zH}V%rO@Q1@Q=F^(kL_v1a{hr5~ zV>6EH=Vp1NGYVkQ0H@20cCtd?CwHJ8M{b=I>YMHX4EkLJm85;}D=+TOlxUIbAh(>4 zS2Jmq*QVa6ZiCtSG;MK!aC5F*Z1$|w({I4IFJ;D%+>0}MPW@UtmhD+nOZ8ehVC*Hp ztP(DK8xs|k=!YFhzIHr}?Qchx73D~~?&U}oK=ESzjw$_Cenx!DSgqMT9PUj7N!ggN znBb2m7uy96BA(6qt~|-V^~<=ywQ>WFuk;3F-rSO=>N7d8I1XM$0G0m3#(@CI_E>-G znili|fzoV9)_!Yc|BaE>v#!m9&q1vjWGNZf)~}J!^JfQ37;eCV{nzEEm}L&H6{se^ zFBkQGpzo)6d7*Oy7kb(G+`qPtheeV9<3eBK6v@St@ZsS(m9i-FR}AGp3b(ZE4L3-= z9~|d4*NIom@0+LQ87dw;*xwv**IYeRv;OBPO+xOAc>hM@n6=IEhBgz*b^bbRgiP}n zPOZF-5SH#NY;4c-=t0IvqLQkE_OG%NvQ5}jGb=whQ5MP z4Qapc+XvfrAzsmDz%~Ptb%>YHy;Xbh#1Dm8%cUqjvJhpO9}jkg<6kD)x&IoW;VM!C|$%L8(*nOwrEE%XqrcvM5j*q1M>u zQKY`M4t1Nb9~Xp<2mQKecJJPd+`%nurS*!T5OI5aqfF zL$S!tT%(%5^j^F+qO98gb;*XId-DgJFQr-A$+Liejm3y6<20ce{T~Nog9>jIqJV(Z z1O1#@N&pzw6j?kghdDgS2$a~TK$hbM45_KALcwGeWfy0`?7E@OEyS6vrC)7JE$=tq=JrjGPVJ$7EVK*55&*3c)?Pjr9T#KKhm+I39-8qaq?K_`-aP8#K zK26v3eup2koO0-ppOi`L>7~C=-4O$>?xdd!F$&7w706q(V^W4#OGvlE%>2oUfy_`L zD3gvNiC2v}KMtF$AEAP*N-e_AI`ha6Jcal(xd2iS=o|T4*A>jJadx-2DNL4&J(W6@ z%oZ8)?(CL@h&*lT<6K9ih6zuc9-io41;m1$%shblLg8}PS^&EiKDcq%BO&f5rPx$# zr?aaCFOU%Mf2%_u3}?Jo(PC=Ot;b)y$^ZfdHxqXtnT*;wCe@xjO1r^8$$aa0Ojd3Y zD1nq3d)@1IhYhLt3dyaV-=$ehN4${q=Hfe*F`1|gSZ+!b+(B%2MQk)@3lD-#H5tYB zTcxXfgG(RU8>we8>h+6>iaODv-=!%8cc>u!^zj?d>WE`)?=QA|JaN%Or`K`v50es$ zie9H&zk9nyo~ax6GK>l-fkj#0Aixw9f-%`?Mi6}?$xl8h#Am49t7Nj=?UAEOY;& zhQAIdAjXr)MyP9WL84sX+AzQP%X%vMSV2B}6MmBWDNt zk_H8OEk(5eQU`)X_UB>=`{w5FQqM~y;w)jiuCOHq>wNvvlH~ZjELgrSJR(`tM^ILy zB7*!R3n_qMXQrZH5h}BdPQ$}z8%722QICg4e2jenph2*MT*G=mPI-6QrC~>)VPFXemF|ASb zj&K6)mCd;@+FBl#+lePm12WVfPF^+NBQhKuS&D2SOd+L@C1`3RPv* zdqH`lBm(oN#K6caxK&{f^XUD>RRDl$x2z&JKKN#k5r2F0radP3lS(S#lI z5{0CzZ9j?nFOdM+HTv-!VKL1s{7+J;4LUxbgP>`w6+Sz1u zybRe+AR+2*%gLf}KykIbxMw$>EQrWyTy~>+4&w!G3L$Og;}I_hukux9O_Z*bzj_OD zxBSSJnLYPt&ulGe&UB4(ZazL$1l-s{3)GW+Cqc?d@NHBuN;5OEql2?%>6v!$cR%!+h6dr+uGZISR1bzA@=T6rtA_o02Y&h7wyF03h8Ju+S1U1{c`&m3G#zQoyxl5 z8poAEW|MI#K>cU>`K1iMDKz!^fSnOFkJhB;2{rx8asZTV*;xSlt4w9Dc8P!it%2sx z=hHP?@pMxNOK;&EiOlCP_6`UKH|*((lg?ia10V@^BeM7VI}qc@iEVSwod}cu>{D!^ z)a;9pg_%jv0YQLcAg$sD<@Q7IY+8r*>=mzbv9ICTC}8f(8vZ;AsgfAlwXbRBCS8u%?SItC#(y=>pzv1Hdn`Xjeq(eL>L z@eaZ^mXX!~mlBbi7htsV^zp-YGBVFLT#o>DoZ>ychyLPxSj18suzwYZ1GR{C=-Noa z^@+m>tOR%Y-k93R3JkTGo{FEP zV0o(d{s`0+1Jqw=Ta~e0_~1A za;+kmcs9|%7d~p+fl!tDVKuO+B*AgV+!J%3W=E{qYmd#wpk>e$8d9K+# z2oTfYwf3ea#*VV^EntY>!UQ(D5IUD3S14Xtt1qxTSQ^IF1t-@*Zo{5c!RJ@tdhltj5H)!Y4h|I% z49*Dbg)dZ^vDB(&1@>GDAJ(6-*x$3&l-4hC|9F~?$z(-z9Xn+`%`xtAfF{>^VEfvq zhX-L+hJI%*{Q%*l$oIR9?l=3WM=%`iVl(ag2bQB5A3cLk=2NRTqHh2Y8;`fZg4Obv zo&VOei7J=4#TCJiA3t(?bsOl`c$VI&ICfgJ>(6=hE?Kl_&i%|I_q$;SK;W2d3RR56 z@GAl$L8c?yaYgoh4|8?Cyj26)cf_;z7t0b=9{9QG<3;ws(I*Nb*+$$~&U{aonLO6E zvcr4~t0x~DE2Wwu-OlN=Z3frvd|ZSCoR>Zg=Iak%%K$_=)j;3J9y+1BA$zOCa4rqQ z#jb?REJ9T%pZ9V3RNFw0sJW8H*q866j-VvIW_mW=DowMVRFmDYjO(RTLaDj2iqw1ZNHbh7fQ9P9KW|D21^W~hwuJiDU`s1fgC>E?@rsFyP>}+={9KZ+#RJ6@P zLzTG*x|bXfWM}{%RoVGbV-;3+wdz@yA(5tv*ixO?o&e|m*rTiGNrd}noZQ+LogFwS zwd-|Gujh*+_bF6gz*Sx?Ply?WW;_V&be(>-ntKgDUJE1Ez4T zHfeA#J7Q}Wna%+~w#$N<89m=|-7DNb>1ZamTpMWfVXErXvmEo21_v{Yy^-1g6=wB2 zRjBCsmr2y%-M7on@mdJ?WQ-4FL9=`1w4jf}7our#zH;myuj(25cJfpchm>}& zCQkrZ=Ky+{z(dU2skb6^$K~z2vjxmmm|S&tW->qJhSNY+ou3%Xv99w+b0=mHqa4Po z1U6`=so5Mk!n``1)0?U{nKCXFa`%=gfi_8q_GQNhFR#p8xwVFX`7pHqkcTP&SpA$r zzJ57C{s@nu;Drg5E%P5k2LMp>3k+w!DkIn8X$mBsUBBHthB0SZPf^H@Z}K9mQKklT ze??Q`t%-4^Oy!e*-bC#~Ds=bJR#2ELjDzGep4JtZcCPoXJ7 zE}a#uva6nnT81|3`lN&0WMZJ0s!9R{pPZ~5k)(J=0Pt+hnb)dzwb4bsG%5r3SLpe{ z{UL<6nsZp}x)lMANb9#R?=s6^;%mI>!MiXm`hmYdt<%3CuA2H1CY1I3VV)}RmLhT zcJ6s#j(m&E*7eXG_cz8$EZFCoYi%zxq_}kh6s%p}tjIgt&XYz)_?P!|24V6B7YG+2Lo$LT%X~@fMGLHZ%#)AvzFMm+o?%+dz)(*VJY? zZJHOd;Bjx&J)~O~jE@G?{HRobF6bvsw?uBIzo_kPpVii~^jUvSPI+WQxh>!rk1tK9 zgj%%xzuIRNn>>P7bDT4a6+i@rOMDS$RW?=O7z3blCMp>z#F}U~v7M+5^t3mvw5ejY z5F14$>24Q^{RX7fT#zq4wl8>S8OQ@)9^br0W+*PpX_1RI1&CRP2X?aIdqcyqu`S0s zb$$av9MTtcU$WvR@_ z%OdIHX--m>V7U>;2bL^CdnB*#0Zbz2Q=O2tktjOmmEda=so$c9ib{hud8>+7bXh>` z&d-zBXhOTL(QQJ3AjFg1GB{JYz^bJ%-k;}clMNJ_?c#bX*zz5dtIp)eLJPd`!t_%U$4?3Hza4^5!^p@Yvw2vIHP4(%;o7RftDgk2rJmtyqos<0)K*w(1v}{_mxc1u)gd^{&L!hLOcOG!s4|uV z)fVeXt?^pOp|JAod_SDS98SU8x!t$>bG!%)x7M7?mwS`LH3YC5T^kBx7Vw=4CB+U@ zz)0J(EAm=B8u@y>7U>dMzQ=X3-~Mji|LhTaJo>A2_Vk(O8-baHv}1_%9=%AVc`nlrClto7}7v?iQXh06yOPEydF6kN+@L9}>|$8#WTRI*niboc5~D>3Qiu5I1x z*=!I3wrM8Zb6;46jOQDbjhlqq5Fya>G%EzBiNKI;AWljO;R!INErGSu_ef@O^8qDS zEVx0x90nus|DVx19n*_yH^q~ZqhlI0pNg^J8`KqGHgOB_J0 z!xH9q2dhwn7m}e>gxv{7kYkW?8NHfpPwOkt9Zq#+UidrjIM}_|5D(*{1&v8h@9 zNDBL*bGNm)8QfjU{RQ~QV=$QOm`HyRKyyWXF9Mb|H8v3Z3-#h(Oyn=y0fd$w5YaBb z;k3yD&VTXFe?IL$@9kgB?FZ?!C{Z z03+>`9=MrVod0#*f2XehHwW|wZI zDZ$e9W54)APk_-#s$W6j|MYzR!vuM{zDoP+^08NxLloSl?jW!NiJ}21W3%A7(HQl7 znFr|(UT$!Q@siK)hY9y;oBJO|5(Dp2Sub`o#~l6Y&ZaB&U5Y6E>ASqT&)5zFw`3?) z-o{P^4wuCQc|hxDkGP0Q6CQQx#orba6Vt7Hs?r`$6g6Z+-ZD8nmWq0aF4V2m^Q<2z z)~g?QI9-Evp~vw!DYpo#|F=H;x3^qxg|DvB)7D8#)G^}pFr_Lss`sms-|}y|1J5i= zmVlJCRe;ymy!%OugD!8xrJ9`5r%f@Jxg)y##l=)Ty;DhX5rEp5`9Kr!&GtY4t(1}x z`#0C7>m$`d&tbvA3IK%~S(X2^Tj(+%Pr~8ln!=rB$D7@1P(AyZqUEEyWcZv+n90V{ z8zSpKc;RwD*L2jKO}$?x3aBFfiHV}{m?E-Uf$n-3U)j2jUZVoOhl`g*viS|{)ZSZx zJ{fw!$rmyqcNGzd?%PtZ(;ah9P*qtvw)oXIVoR?1o!63|qH_3{%SRf|- zkpO|wO8}TJaE)V*2*>{Trd*fEoC+cIG$rn$p%D^Z7)F>$U!O6MCz zOQzKQmekQMnxk=7lL30lACmObf!OmDjQg|mWV+nBDci(?pDDfi1d5dxVGAG)oty6s z7?9~L_Ca%V(E6TFaXGSa$g_Z$A9d+N>^*K$-f6W8SPSby)-nxC;shjPB_z0jVEHG4 z4%cx-;#PsgBpOgPV1eJBAkA;gkwTM*Y~Y3qGZnp-_jKoY_DH2T0{gKRb$Z$;n;le2p7F)hGf*WZV4AJ~$8;y;qsI7EtDwhMd|_Lh15wY&A>98CRZ?p=9hQN^5Y zw5-e|&LN=1`0`WTT@C~B5K^K~(crh4-hpq4b;Q?OzXv)b2Y(iI%`8yC*`{ZHU420N@ef@2?|C}WFK-<1 zXO{F^2z19PN+l6K`lGx5dl>nSJxXV~KMJeAn zc6z@o=l|sqPA}Z-&CJLc6~6v&bBEsz?lQsMYn>XGfip?|zio5|X24lO?wmSaS>iA$ zt|0w)wbXAH#NVGd4KJnZ3E(&XAXxp!V1ILFzu&^&ZRkHf=U?pl|Mxzp9t~6g-SYD@ zJj5g}G5}*dMk8DO5${o6vIu(TDGtD3s)Ne?7FpH75*Y@8x39CMxz5itKI@iLqOBZU zphyyJl;^o)UyY3)9DjBlH+2I@S~N_1A}){AF-3h#?uo!VcxrGJg5{y}T9QS5ZNlSR zd7zRi7dJ6BN8Un~+1i#RZWN)slZbriU%!A&mgfGju!_N>98QT%(VwHX;nWwEQh?lw z|EB(2{n=CTw{P)&aN6B?FMw&HoFaaf%|gz|1aA+zZb3{I!`3GoGrttYL->C4!wZYv zjL#+_Om_EM1o~!whT%aRt<8{Rs{l7`85{fV|CvJAVXS|FV7b{57obYk^u}#(^F^*M z{M-9`H5Du`MFZtbIQ8geGGG+te`SpZa48*J3s1048N6@V0SVMh0{0-M$;LoQL=iR@ ziXr2mb1XC=kpx)(P;A=l^=FyMf2GX~0?T=KwF5F`ltU>=(cV}5gBFDXDt_J_`6eiG zjqL6kCp&_JnE^y9RV}Sus9*KOhiY}&@H^|^GY$*Ch>5+Q!TziP<6+9$!>=fTxo=Ty zNFMq#_b>V&jn$PsF!f z^YYxY=4%03T62d4&4pK;zg-o3P1u}uwLDr@w%!WMFL7r0qtwG+^;%~VDOhO?_T7nH zFZf6*$s)u2dY%pyQ!rsNAB-N06D)l1xe#jpTm}k8Cvrs?QWSD+;1}`m?VJ}F02|o; zYBGlXQASq3ijN%>7AkM1Y{+m;X$K@qR=vh0DRW>xT_-{!OXR3M>52 z?8J!mQ=+Ge@5R=Kr41#aU$Tfd+->wNJ|A3rl&lmt;zvcgMN+vOPhfc((wXd_(+wL| zF>Hr9P%VjsXEM+*d~&e9avAo#9bgY0VU;?SwSn69&y@TE068Da5iVv84yn-+*5!W) z6}tO|Nl7yTJA)a1^z^7|afHWUi!T@b=E8%$GV{__4{NOgt=3|i)NJYcj$cXfA7f3Q z2g>>0sB1RThq&7a0Z({+Z8VjRawz#pmIEq(;MWh8!slLWSh2BhKgLBDTBvZXsok0e zK&IE&o0sy3XhLewg1TmiQNAlA@s@5lurGBj1W$v z?TA9pYfDb3Nt+^1lZW?<`T3M0^+kO5W)aO80OArEe5SRqq;uOI?!WVM%^{m2h7BNU z+Wqn&z-E{~Lj`{cBJxSl7>zXq6!T8Uo{YuRK^WOf)9@oFI5W2ee!YWXOn86Y!T^QN5?U+xW{MinwM;#WG5;Go| z`zULpKaT+%m8Vk_h}>NCyz}eCt=gAgaIW9nEne&CZqGf`6i5nfx&ESyL-X00NB^MH zqw@o*k;-hiN%Gj@IEQx2s10id6`teFOSi6M3|5jXwfeh)e49DLQK#;l0|BX)DDIHM ztT1D-P}acURH)S6fh4B@ud3FZnEaW@lWvzSVMzLg$=4Y021cXE&+TinXbR&(J3tK} zc%WWs`J7n`>Az)Na4x4L7gyq}pk2*b!T$J%@!NN&obKb9fSb?4l$Hz~A8PU10{q<3x zgR*B#=j6^z_;-nd|GLYqnc}|JJ&>Y~N!Anh?Z!g>Tnq7H-E*t1kb7%FqQxrAWcY9^aMD+4XAikQaf$e2ex?h1LnZ7Ve%_yF;vo_;B>5d3B!Xp#801 ze@g~U9inzXoB;MRX`%=`Cr=Jc%sI$y;PPgAbP&4+>+hc(DP|~LY^N34{7-s_@mDoi z1-(ZW79IQ7ha8Eil1E<7rvdC(?bpo%MKzOW5d{5`XH$lu0(=u9j1wqdOsKf;uLI%1 z9*DtONT_nWZXI>pnU_jOu12nm1k$ne_VT#0&o^+?bcCp<%=rbuN=^U!rdS_G{*>gOwY)o><*H-DGtuc2c&{)F_j0t zfZop3_CH3VJ>@A<*#eJ38$G?Gse^r*PWOzpm^HG5E8qa4!+T|x|?&~kmUGWE4ZQck{ zK-xV-*e@mqV8wX^Qz|GTWMQMC!P&rWOH?%{(^{PL&g-6XMV}gD8J{Uy3W~>lYVyQ> z+^9m%Jkw9ReqYLB5%*_*W=#P(kNr0w1@d@=#XO^dIMXH zpUo#&S}vFSd3^Ei)j89>F=}(3cmplkXsqr;L2X&=f_n`hO7S>h{|L8_!Gwnc;Bd=B z8%o2X3&;-^nvVZDyr?LGLIjn(vAGzdZ<$rkn3`LiPxjPA)AH@i>Q-FAyEac0@XukC zSXONnOvRa2B|@7sSF5xg3{22%PExx~(DPai#ezf0=7~NDdlKL|dt7b<1FtKl7BT{w2@&11rxMiKq<@4VRDi@gf2D>|Y+K6geZC zbis$8(B!k&2$`MNsu|Y{h`U{wfHK5iEV5`1QKlGM<+F?*33Z)+hLA2Pg26{$pUqW-#1XWAD0E@R_bRiAfDFLW zRGS&3!Pi8o%Ex}@We3zOa14VM+y4);i~xJ<-CW74|8aox;3sw&cNNGZ%y?;DtoBaK z#-xjas0MDO4zHWXz`dr0k>@iJ#je)j5H3#Zm|{!Y?R)u(_g_^?e8DYxwRauRFQK<= z7mZ>{Ee{%W&877;rmjUjlbuROp{KlIe_cNZmDGveaCikU(}ArlEgdqOd@#TUu+x$2p*rt-8GEmpnSoyR_YIto(TXKBd@k#`Sh^2f6WaPD#y9hQ^}cr|j%*n4x9B!vH^v8D#fB ztzQ~!WqEU48WqB;V!&DHvl=yqlM)GgmhJb`@Yx0vQ^bTzZl0_^#$s=TFaV-YCyViR zoNK;g^4HeEh_wSxL8Wn`orQJo41(!6qO=nWP@T5$2y4 z^fw5!Uh&bd^Xnn~4v5)$cL(qpp3Z$I)P0vroJKEBw)Vxn`$i*0T4+I|Bd=yt9r(tj zOOYFVs+^^(S*~8LslflS(XI9?(#A~O_;mStddCM^0tGGhC+&uO(84vk+xM{bltL5(Ff9M!JRep_IFy zGb{fnfhBy!)-z)ic3!wvLN$?Ah8SpH)!a`!4uS!^6msxN^0{tBWJZFUeRv zi_mCAv)rJ@>mUj_L|2-j6}RjxEoha*8MF|UH)7b)y~1J#eLBS)sVRYM@i&MTGL|U5 z5Tzz+J#zBxpFg{)zFw-?pi-T5{KadpsP3sYIG%M_ZkgK`MD3JsdEvP-Z`ijGO2QaY z07ErJ6~#p>MvMoXxQ*0XG%J+zTP8f`%dcTES3QxhE*Qyhw-|=0XRD6$o(-k&-SUPv z253n1Tc9xi)B-rN`uuY28&1Gu#%}=OSGV?cCeX-}qZovs$X&vcNgDctKOF^}XQZtz+@Zi``pL_kaVPdpO+ z7*!J4L~BL+i#&Kdb{~t!a~N~Lhfgi=-bxSpSfIXEa=Db-8BZl~`_4*@)OaBr`>nr{kVs ztaRO#^C;T`+)9Q}KqitO0J8>O-Nd~tK>{S@^mobeoZW0iVn0rKbfi+(HWX-64 zzVz5;awMT>2l9*+8!BID|o~w(524b;( z{D^8slDfTkDHz4X(#J^FP64|t{Zbks@3GU(K{2U4Q+D`)tzItTe9EKBaXHo5u5KzB zy}4oV&ii<@?r6Ir{h>kF{XV7R@zL5v%G?aK(3?Yf9jmG9wcMURx%wE4s(qt0j$K4< zzxG$TdhYzJCozJyl3mO@-!l*Jj>sgH*tV-+iXDW1`sdDNl{pKf;)c&AME5`8~t# zb6=DjgSVnHxnIpbf^dlp9E478>z=rp9VwNrXHyHxBM-Mg_U?5o)ih&ZpNp$RkF+OG z9ak6G6P~_G9@Gw~VM@^}wP3A--!|;Ez$A~T7fN^(HePyn_12RI+%=P&1Lkts-G-SK zG0oB3V1=WV)jqQw7;JCV8il7-?vt-u9br&Qr4ykCJvci#=n{08Yl`7Aj*R7B9p>N3 z9Wd9lDW*+47!uPhHjAq(w=OY*9+v8~aXTLGS{%7{4)@#D(^dMORdtBIO?}5(;WTV( zan=wFENjv&ewsYn|oo4IK!v7MX`Wm97z$_Xi^J>mt7%Wpdu79DqBEQZ84!CFr5xUr@KQpB38o zBVvJJ>QqzebyGj?`%UPz-oQF$FDW_}tj1gASQL;51$J|rhOvfE0l96_j~G_SMu!aP zYyHy0=q2KBg7@QvF6LOQhxjZ|#;=iM!tW>)>3rSrOt+9Xiad`&I2mBNbgKzH~YQU1=kdotP#dlevew=a zywUWPk7mnCAj-u{*(p0do4HhO>Mn-TipMd0L9uw}8skf#s5oRX%hTzvHYdu}O%FQE z+0QZb@-ARWT32hRx)0-CptqQ)ihF81*!sSNQ91P?pt{7^heQr?PRcT*5?C*@*jDb4 zK8>64J@N<{EC3BGxU*`XeZjNs0#%~lJI>cnzQh%R#7TY@KPRAoxkx=cQKj3S!b@-Z@3VE!ou{ch){_(ztz z_jRlHRjqg*h@;b{Zvl>Wx)9HW63LJR%GAYkrt!KV;P9_?V8COx={DRdKs2T`Ej74v z0)FnvvL}#b#dYg1*9+N?0bKKu^8Gn>eLe%8?3Dt^#O%vUq84Qur>A(2Y>q2niIa0Z z+uu)UZl~R_Q`-*~AH?eDJJpGZh-ZJdHjzzv`n!V%<+e~zN#<3(*r!2;#xM&=U#3z<7_YJV2bg5hb657^A zfs34W#f!vEgV&^%13o=_8Gh4c8>w9j$&u8xnJmN9YTyKuj$ST&1H$x!Y{e;~XMQ~n zB0~h8))@-BwBueHqb?fjdW!f#I4)_xuHMWatavj_fX(jGv_w*}+VNh?E6GB;SPf@& z>93UcOO%pP^S-X|KwR|U76>2RNPIG}of)d^rCEbi9*YEd^#*2rov0|BT9%H;t%0dz zvyRss7||cO?rKLYsO~TVDP>mEa(wtIh;^ubBi&QX6_^)2_l3uE8-Vl%NQZYb;IrV) z=q}B;u|gX-eVW-7l-M2xl0Avfjt@2CT&*RNulBsyjgmLsdZeh$IEnu=xMw?(G%XZL z7m#Os65Js$esBO8MGVIQ*;#wiEsECn4pT{z%L*=2k!R1_A)K5}eksgGENp0DpULV- zCH4GQJBwXb`?)PzIXEUHq%Q|sj=Xkc29AeD8O6`iaxaF27~gz>q=SU|-sd*8Go+H83MTtG)DJ|c(Yh_P-7I{=B8sOdw^RGsJBnOK^zbOrw zBRnT2B^?#_4OH)?v8plVW+<(XZZT!d#Xn9_;tuS$_f90Yg|32s^yzKr_OpIg2<{Mvo; zCZ6+5Zd>i`51v?h6s8go0}R>~G#&lMXBDFc8&n`)Q&5E>SF<9;P zniQF5BVt*SlmaJURKNw?T~VLMa3MD7)2Yt&_> z4UjdThpW+NcnmO_brM)4usB^k5RlLz(i|HYKO*>mKp;8+HLrHajd4T=A@t><1u(gn zOo*8Pv!HZ?w|918*aRFCa3=iEeKIFnXmuqQLFJA$epAM?Kf>qUSR5nqoN0Z2YF!~( z+i>(2DYoz1$O2h~+-24b?5Z&n)+kGMlm(q8aoNCfzmhrAPfV7|F0++dE*rf-Mn^n^`W^o$3XSAy4v-ytNB~8v5~_Gb%AaW)FIj zC5C9r*g$rHmkR8=p@_O1oD}f=_~EpJi^IM#?u_AA#TE+`2)UiIgvO$zY`tKd35~+S zJ9yVlnE*6xQEhV<$FO=)XaO^UWAXFhyQQJ52FAUlIeudre$==p5y;O17%JR7wuYWM z&D0_%9@QWx>2~XMmIjvnVYlbaUC#;$#^W>_gwSoUH`x#uEsJeD7LcgfPp*-g3GMMX z#j>&#u@fYldfcL8?!9kNqE4H82u*f#b5#+z9RBcJTD-rEK4{(5s`Ff^HK=qpCd@T1+2ivBUfuHf>O0NDCr7M>ruD5z z4rX6K4xSNl?LESuG>ugwtK_uyWokz^!l3ditdo?xgAo42AY{J4&tp&Kj33+)pU>^Q zNoR5L+^RU0uzi75N2kEJj$;5+0nf6Gf@OzFoi9p2+ghUQ@Lz%nha6F_Aru1J~Q6T8db5!0xt~C zk}Ge&Ug{n`$TIC9KlFj(7=9b8#{=A8{T$Hj^B8BJdw=I&UE*!~YdW|Y9|&ng0JAXu zAsg=2?sI|D79~`>OOf2-V0awv1dMDge^?xS*#tI3ClHD_epYzd-O`p! zko>&k@U~Vp`dOCq8flrOQ4gTWfkMwV6X_?^9@}L{H8S8;d*O?q$pq{~>V~-Jj|F^3 z0ZHBq&J+08Cnt7^x0lJjZ!5%Ku$%%g&P4I}g&)Vb2KoE5MZQ5#`nWa@or6b6DsKECv&6}RpfTh5a@PCWR`^6JvI^vf~rn(h$|H*nW>2TbhL1=Jv)e>fFO_saR> zoq-O`++sZE^YaUZDUOqc5KE0QD|_3vc>3DXDh~#6bYsI!ycul9xq^bTimBX37a0Qz z_{%XZk9@s{5sGfOf;I0jB3>QyZ5kP`zPl})*vTaM_>LA9cP0xcj+UQD9UlOxN^*9B zMFCh-$L!|a$z1s!t4J;Ve)D$A z{lfDe-e`W+moGS$T*-?}wZ-@`{f)ejZ|(p9q5oAtFL0+mshOGnZ*?^=lS(QcvNRpF z=P@6n31}Mf0y$fUf&52q`S}=*5km}o&m+_5nXTuYkJLieGfyBXr~D+TxK*7j_cKES z-yiJe;Z{Y6pv+rfHxihXhjy$|oTS8BdH{UXdnx>^!0M|$L!|^Z(G187FQ3sWD0#w-)&>~ zZZc>qUA28Ed^poGUpvDhNeN~+%}zeK@qqv-9kVqMnqYkGt!*&~f4(_VfZ1WrqwQy| zbl0~6=WN!=W%-Lexq!xxomPn@4oaX}hxEP5Be^*(awTabD+D8d;CiC$DW)<$?PuxO z!zqq0CI!;lCPv)1geJ@hu*@gCdv<1$Qk>)1uhFQZGHT&8`S5n;L}czZ4lS#luUK-V~&_6=6VLTK6=kDM|q2yhZ{QWQik3STGO<)G5h?e$0x zhUpn5-b`39E+r&gN(Q?}V&h>J5D$BhcFDYd$7S^D3FxGqHzPvhH`#ItJ5Lgy*s@D>^ggyi+j$?}W&br5f z*K(QQ&%&541C@lH;imH;;sWyO!W)BG4=y_6q^-HpmRE*?9*ikpURra$56pq|Vo4F# zJRAXMsC5!wJ>R`93nTKplDn_RlEmsGYOAT#jMs_@^%XVo)OFB-L>&%q-{X4|+kJV?S)9WN0EH)FA2R0MbFRj$?{AN{Ef|%!0JWRsvM~Oqq6Z$8n!{s};0$$CkupBxg z9?~B-1jFwGNfoAg8CdI3Gs`LINlQ?bXmTFEA*lhdoV?gbzbYcAlHn5qTAIL`v0qvd zUIFMkX#=usYE^meUS1t+pe^>qgAcR_`?W?9O^v(cn!C&%!p{yh1)wCo2b`?R0hL2$+9Fmf=uET35Ko7%?9fkk$8 zM1#JWv6rh2#2Ekuqh>Sb*G7uB=YDLdBQTT=5l;K#0?g`p8M-R|9QTQCU{mx+02V_# zl!uZ0eKfWH!Aty44+Y(KpW;?Qn^U4){0w-9`{hdo*mVX=Jt?ruTq3TX;n#Q!0a6=p z2kOS23uKF)M3A&728DHVLNvjG6O$m-^(t`8Y$l#Q+6Xi;RAzh4`&=Um!I$UOBu2k{Jf8Wqp!=e5a2t8TB|$iPN}Er+A8q1;}U(?H-7NxI8! zF-7qiC#8ek^a}3f)E5B3>ego<8$TaD_(mn-K6ZIxJP_IKJ_Q0z5W+)jxJ(b-@Rc^# zf)T3iQ%MDiati_Z_p+47Of^w6>g@qF{NVZebYf%tcA3)`FJ_xv*zNNCBn+{$hwvijWeaQG*;sIs}pTN3*tqOB(aF+)1&?DMl+}^;binHAC&RO z9824DrhCypN@cJeEzViAiJV<6{liVH~JPEc^5eLDII&kp0eB&LoYDmdb(+@PJ7 zTfRDG@d^K(7j-m=>_$#mQNS><=}#~)On2id&$XWf!U&v+%{%F)KU&rLE4I8=#$=zO zXk3DJHS+bvKtPii&Tudx z-`Q(@iNwr`-oDJC+k%SgZi{ zK}De)S8$cbyGGd@bUE9fC5Xhih+tu9;S4l3tpxM=wsRK+}KuAIp+w_o1rAZS?V}XZjk`BH8@qy6? zMI=JaR?Ju@6gj_oLCu4jXBqaEPV~F2ld`^MA+|ic=buY3oa?4SQd?X$QnpZK+2YxM z>Q8ZQ_*_1UJD!{(>#e7(=8Fv!LEFNaYl5LKZmIA6EO|2hD?V{kTzp&lb|Xkkq9rAz zMv!-kF_4+voLuJ4qrXZ^x-sXLsdO~oUnY6a>84nnZ2#VO5l8K_uljkK#7Eyu_&(;2 zR_evr*1#^g4kJW99p4&IsB!C0{K8>LS(En{WZaUOu*ca=QYY|Wto%y6cWL{$-pP&S zI2=PcZZ_HJk;|#t{+M}rJ7(RiyhrlUKQz;JYCJRmddUO80KCgc&h4yN#mm5Ro^4U| z)h19aIqS_d+-VU z;9_PolK|H@x6$8@?+qPEvyWZb1QHA%%)iK5x(7Qsz^LbEUaDiNUOT*Q781uspABdT zvFo|SRa>qI=Ua^JQ*SQ{-9labwAVI+ZyJC|zYYwznfQG=zjP(Rf4uRiPCjTik`=O| z;D|uwGF_bRL_X6l9XNrV9aFNDP)quzZl@2z)FuSOs6e3o$((~MgKF0cKv!+Da~LMIAM$4Ed!dWV8!$cL&0ifa=LsNuH5wQ*tdJ zpk26I|!c<-s_R%N(j(5-_x9!r12Zt@HSYjLHVfkpu3?jJa>D*w*n6p{5hm3t^lTa6ALVS z5(dCCPUVBlVX^VoaMyG&3j+jTBDe0riRSG{gQ~Me4QFwTqCpcf|920dNgKxvM3Hg;ztNvYolp^}!j?`+h_oPrqr62Y9RO z9+=F!V38AA#px|zeQ~-2eja5pE~A0~KHv#q*Y~3fCFA4@sK7SS#8U~O%X~RjLwTSt zGoOnbkJQ_soCtw;zQiAuA}?cC@2*yPZ|N&eyOlN~D@fz*8xnL!aZq zpn?tni$6*4pkX_Hr`pfgg`A^-UPjVw!wEqbV2jSFBjyx80nV}oZjY7khKg}&BaE=j z8q3LF4wDsdm?n1AOc8%~m@NPz4k{>R<>=rPOXY$xF)C3>28FkAZV?NgPi5ziDfk0G z4|bYO&>;$?XEi3 zdut)a8hj6&Hd(>}3ms@Ns5^!!9nHl0!bOWC5rVZ~w=ox$$km>6*;^tk<=(W3Jx6=! z3&E?mN2UBZo<3;4BVMlp1lw>GQ$QMo*0)3RV%vkKCrK-7XrcK9Y7CZpFAq_dAVd7< z=DFhB3K#+&8Z6%4Z159vKm}bVmVxk3DzKuARl&aZ^-uZ{WEYi8bF$D_jSKvdyh2Tj z*BwkL#q!N;1q{Y}6^NcoO0CqjRV_u zoH`mME~n~Fdt6y!JbR`qx`Ap*o>Prsl1~{n_FCL2b-fKll~sP*RO3x8vm$WU?2^&S#stOq|(q85~0_%z-Kx+q^0pUMKj^{7B zCQO>Y21$1$@*(Q71dTnCMnXUua`9AOf(LfdUv!i8%=X{Zsd5-2Iopgsf<+@s_o+wW z=i|k11ZKbc{9qy5cLs?VEp3h;T%H|`S4WXwn@|90XK3i&X!|6PnxR0=r1O(w zsnGe8$^{(~O_nBM?I3X$s7#9q<3v-z-cD1omO zgldIM0uIhIGTzwuQ8)%`GGUX|AN{od-SP76P2qrlmXPhS%;28xb&j}Rqh`2(@9BFB zu;=2Mu6*+2sN7bqJe|JV`Xxr7brnwI+SjACjG%l=sB00Pa~)?gCs+XzO(`l`WHDg2 zCnB79_wgrVZZrF{)r_>3O8Xhw5w~f7i;+ZDbCos-KjM)>?2{!+jvZ}a)?}g|r3xAt zKw%_=f;yTzf6wLq#Zw7u|1ZQe2curz=$&8XE_Y)4f3^3XQB7`5*svg2;D9IsB2^KQ zt{@;C1w}waN(d!@NbfClLJ<+ADgvQM2ayCq4WTzF(tGbU^xi{xZ#?Ba=XsuU4)6E# zTe6mGB|`3y+1Jcm(+@-h^gkG!9lq%05W5{nY{-ybr}0E9*t03J?sRqy8E z_sJX>GT7c3kr-{}xxDJ7xt_8=kUf8Gwzb2auXe-eP|A09Gr73Yej%=tnap&lO;Ey! zlX$`G>CW*!V9&;paP^q%^06nT5 z0V_O|c7WmFA)Gbm`g8*T?--Scp)38Gw~>CPT0)K?v7$wVkcHu5$LZu9R=9y~WPJ>K z>b_atShw)EoTUv&9j?oy(|t=O=p%=T63}uZkbtC3v|dc@Kl@eukwM6~e(_ff(1#L0 z?q))mgMq#u)gP5IZ-45b_!NoIbZ~rgX802*J~tOCK&j-}FkIAXc5>Io0e9^OC1;^x z0`yNaNpaOHmM>HCKsJgZiAMIl@vV624 zF$!SN4Vm*LQ2(CzPozFG-#3Mz!|*R zC3yQkRr_zNwYpA3w(jJ-LSjT&%CY>()=qU-Wg8WhFGRwX0 zeMgxUD<50`u8f?P0q>--Jc^zR$ZUr^h&buT^1q+->o2_S+?4pveK<8M!KNKDZq!)2{Z^CIaJyCKP~#NG1P9#r$E%$V>>sxeD$a?J(4vk#xwW ztKAB|xfB@mhRQ)l6w}zXK_lz{-2)%S9Uq=a(-KEV2ETzfGCP0p+{jIfletYm=Hz^W zRSpsVp&I{bK#63EUAt+6wZb(CHWk?8kd${6CYhgz{oU|;QTvT=yTP|)av~73pW#CV z?mBELa;!iWW`G-2BZYG)Fra#xi)^rv<8w-{?5t zC)3+6f9Amds0BFv&2+a<*bd14Mlt;nfsoShvP(VG2V&eIJodEC=vV7cU1K0>Q{;Um z%LquBla61Q5*~9m%&D%2W?nETBX;uY$CX!wCj?gR{Ji?4zc{&c5nAV5kor+wC;&h0 zM$(HNfWupg8S#$&RFE-BS8gR98YGwYf1Itd9Cf?n!BKpxy(Cd4=A6lt&ej1}tjEJ@ zk-D@lJ6fhITAc6+8T^NF&9nDZiauS$BhbEn0uf*LK0TOs3K^mu& zAj;J(XGSwHguhoUVV*sN<8k^^SSbXcl!6q`bJM8m+@n%NtIEnmJjgPgkRSEUG2CO$ zEqR0v4dD>%zAB1)?mE)%yJ_w+5@ua{K}!2%mODQPyZ-&8%n@#{6tdP`8VyOVf8|HY z@HlDVWpX(-*2!x>_s|}Rde<6wK7>i(Q9bzX$3}z2(Ixh};GytaGJ3Kp^Q@1Zg0$Qs zoZaygM59|*zAsV(sIAn=MUwJ2Q0|{?2&3!;pbZ7c5>n1R$6Nbp!XV_yd$XCFqH-?> zXBKRa(&KI^K2#w8U}v`vpsgHYy$nx_ez8fZM%E9dSKcJ3(qZIiHQZ$g69vlmKb^GL zy8MG=>fa^#BHnO=ePXH;LP!znnl(}A4Z<#fTZT@b%1UZi%d*Xb|wEQUK{#R9z2yg_9p%+#b5HSm9?S|EJYT)LA zbXa!eDJ`m3_Iw1wp`$3s=;&T1tR=*3u$2sB})|fDKy|Fy@<}zWogKo)C z%3Zk?z?J>VStieT)5-qK+DsbZrqTA%5uPoshpEtJsSHwfZTGl`)NV@V&K}Y29K*QT z?qR$1xas72y$xFNkNRDZJ!i3KMdeWB6UHC(PrIj6pNZ+7sEHJ$XN-`uK*M$G@ykqP z&FoS74Ya)~;?E);%<#q#w65{4W!sQ>t-A4hFGi^YMxo_ot36M+g-)^6+GFkCJf^Dz z#S0y#%XW7~$jXKBCXN{;j!1R|8V1j-F5(M)xXS(oULCl?3}CmRQ<>G_d2^Gpo7cuQ z$3I|q`&U3JgWvpJ_>-d8d;KM(PJ;6vSx%*?|0Hz3vaeV&p6WRMc?W+mKH2>sQu_DF z{>eK2N*6?PI;r@R%vAhfd>Z<}h4tey@~3D1X+HmbuzoN;&7AweHt?@U;ZIWfE8~;E z4=${K)slZ2_E*xb!XI2%*Z!VF_Rnki>*4r8+SN?*gA40lRn(uR{BsNcdo6$6$KSSa z_3^n`dJ!jMyW9Uyf^(rdfSL(%8PMF;|IfnXR0*g8ZN^=HpdngC83hR%*ll3Hm z@(1JnJd%GpjXyNO&m;LKJ@Xe|;-^;qld1TNI{2wo|70ruB0fJ2Zfn>cd*M(_w+CJ2nbfnF=v_W(4Vxvnri+eeZ36l5Ye)fjKLgay99n-6=R<3{PJ;q zxfK$sE=xBj>aVG*H0*AyE)55-Iw_~n1c_%PpcgGm*_=4 z&qVo>O+{I@@*g#ZU1iJuBU{` z1?%h(Hdl{H9f>lj<`Sid5-f`ug#2(zh7LJ~}x+hPUek zhtvj+kUS}X;YdwZpEIo$yVeCT%ZEP$l{RwXb{MYe=rH6y1N&&?7?<687IC+4n?qvE z;A)!=mDv%5MY^k3DWv-Suo#Ye(peg9XG_|u-iwlihOvXgBkt*G_&br@eCdNtuX!`e z@xB6l`l!K}4-u`X14Nq>e4|V6wrr>xP*=?rmwzlZ;#BJJbs-lY|D(*9pJ^TDW#!G2 zY&6@sj>mQ;37~kKeG6nS`7qT`i!L$ZcrY{Mmdq<&kIA>eT^6hPv_jAqiO3gzs9WF! zH^K9fN3^B-k+u^V8s+n*cB4Ui8rS*U>H-$B=W-3@>VjgL50IJRAA$T1q5Nt2De?l> z9n^ixo=3LW2Ig;XN!{m(yAr^DMg`O;iWb zeSu{u^$`sDU^m0xR4yJ`=kBy80rDJh8hNg;qXcTH3|c-v2J(+5ZKV#KN2b}~)3sX* zhJ~nzZj2R!$?=*m*TOw-3H__Pwo_mp_bMsSTC+gk^hxXyuiz7lf^5!Iy}@J=U&wkG z7_vPMn-5j_3K>?3K!S3=Jc|~pxhICjIIr6jZyS~=`;vAPgD=%ZY|Z38*V3;Ih%|KQ z+!tpCqdxbLWqy1%2A|_iR>q=~lAm5yN4wQ4YsHiwpLNbOu~Wxb#tbeIQ*zw#r)v4+ zv^G&lcPZGXcxN%pl+X0NtdHzoj=?ku#el00;n<_-x53w#nVtmM7Hjxj&HSF3YxK18 zU~ecWcNK_Md5K1X+t6#oY!gBXe~q>Mhcf!h+maV}SSu4lsxxQA@5o3!R5>&3XCRlX z)_&76*kgIf*<>Iw%#@)}2g=?+E=}6O-;r^ZnCX+J-BZq4`+mY%pt_zh451hpsl&tE$Mdibg=l*i^}c-+r?G)_dq3p`bd@y?@0^4Jq_VJtIS&pvG@D7&y&)J z`h_7Qr{nUiSPsi(>CEXUoysa&w1D=+J5d0VO4E8Z-fZpYe2#womG?B?}__hG-uW4b=aKyk4p{@nUOS2PLQa7GW&!AilUhY1{GI`D5CUb^Y!i&PgBCLNSX}oQq>?@(c8`&Q{kBFUAZK`%-coWv&)~Q^br#i zQz}tYWCad(mve?{*4>6K6JGt^<>8KGMalZiAUv?6FpYd;%89h)fl_Ho zu6-@rnI_g1J~wIAbOfsHK<5Ddi{ii^`wNQAlm@%g|TftRm2g6Kj3`SzpJ{HtX z@c1Z9g;iO0&(@m~okq<-i^8K2Z-lHyRF{d$%P+}Yu%sY>VWZtZOVn;f@4ulOa*h(?W22m+`cnn2IqaOx;&Hxt-_M)L+Z07agvY~nRC#0Eyv@MpkJ^u z`7R}>7VR3p%igO)dLb+)nCVZ>|^m6zkV zv;ERcyTnOxor=vgd}U}GuHO`Kqfcm=lHhCBbl)1eLE}t@?ds}{jYA~BMiSmO zo6-oM_O&6`$D*`yoHr=z;Y1fS8eCa=2!%fUxU9BRF zy(N)))|{Hh=+hYr(+F|Lpo=={Ea~1776a}aa4xO;{;$5CX_lm@YFA$Dvq=VLwx$eA zTQncUEeL!cT)BULiB*AK^cLV{-EG_w=hVc6)%c%1dz1HzJf9b*nf2Cyc#3XPZHS;9 zW&cs{?Oe6lzRiAF>CqEdf5szM7eCZ;An6yii)ldKbwkMGjT5_QIJ9q6mCTT$Q|?8oVCLKc zDNK1b7qY(5s+?k%`n+Rd!?NcCq|`xP^gKg-ZJ^gq-M#pcS)7Q?!6hXv^h;|BEXI z)lq7OCBs;aB!P6a#97($DD*(=wG=bFWjAyGG95A<@05jKn*o==wTp09KO#Y^C+%F4KJF(7rNHkhSoLYcw7Y+u8Vf}M*!oXgf+k8rjl zMS&aJ8V5H8A)`L%gvnA^Xp(6Fd0|09)nC84Ta|Z90IqR5zB9YQ_v5$GWTTpF1w2Q- zE3|bB;?`MiJBMmANQ7wMp+mrl-?2PY$gY`h8K$kX$=e;>0RGCjfo%eY(SmEY0p%zN z^sHHk5-430AW#ZW)s6L?-#tE}A>)t$r?_zT7lT1aWs38@r1W3e)+jzrvOJGi4JJJ^ z_n{eT---lfOgvE42k>!?gd8GWdPT#usj;#O&*aJ1F(b1TxFCXjz?b%5@`WxlHuySXIBQty>XD&pPu_VBQOfr6PZMIRGM@LzFHkW&C)iD5+xm9%WcwS;7B2zkQMN0ss1NLg6=+K1e z0PfZ3WumfFjk@_bzRvF4{UoB9a4s#`x1`kRWxcibY0u~ToUe^;(%gMo#(?uqt0*uV zRE6JlxaN2{1U;bRlxFl}Qh z^AVY_!=j2VvRn$o8c4?u@M3HWr)gsO>P)qYJS-6(=i>WvYKUK>$j_O~W4ePC?NLS5maY?jxGVfFt?gH6d|B6sVD|E)A0L1)!-?Fl>#o95{Of+`;dg z4t2c=C0!hzyAo1tzYsoEuhW-zgmYcE-Ra(y%_LxzekO+gI&K)VzAS82nBKjd`<%yh z+uZpvI%YW6F8bo7`FZJ-MpZH^E33IqBpkZfHex^n69rnK@?o=pOnhl(5g?f#OwT)G z*4fZ)@QuvyWKLZ@#>}G?OA5=!_80B zqosP$$qI2?)%J0QjOjOoK-K~I8471&g=ffJC_lAm) z!!tE;z86zDHOn4Fp^a1Ub!4Vz6JV9Ey#tXYoeHe^a&ko6KnCnbcS?DfXpJQQ&97gTg#SE1$uyi9-Y)zPv=QA9N z)+Xu%GHAAPEC%!CmW1r(yDNA{>H^BOmqq5r;z|1i&(E@{rddAXJlx;@s4z%)Zt*jw zzYONv<#I@(?6W*JA{rv%tc2AKc4hz=jrxf|Q}0aAepVz@ay%+!t~L{P-Tr))Rl6eq zqpAb`*4^8iSR*%m*kjR@V^tdvegeGM;4X>NsbY}eT%H0vZG;c2=PqqRI* z&eGDl3iP?<(k{8PM@(Ta`1wdo$mU=tgjMeee7dQRm~1v@$C*Bl#$agAmW51buYddH`8>qhfTbC zCmo*zLC{^;$-*3jcyJY3B)hV8;-UYB2hbg62B;*sMq zCiOhykLeoO&yED#-lVJNJ~4b2%?7yrc5nO;Drq;%TRt0-CLkTdIFz-yv=8cN%dHb$ zn-0$>Y9>&!t9GT_)M~RM60#zkHSPJz+UXH_1=`oNke^$G-%)*WGWlU?(R!GvfzYPM zH!0ucvf1IrCH@Ucj!;5k%BM2j6Ap7L8_hzho~Whs3}5+E&kk8)EfXl><)SzuX@&Df zhuJ!QyVC!D_0O{3UKWqn@Tcdquq-WAsDISWwK*ax4lr)2k4JT-b$&k*6@I-W$(>aK zX!yu3(K0)1kg3ODv*KZk^W>SZ>izg7=`ZL>fF(etFeg*!l4}z#3*Z^^{Agz&?nqSt zc$#V2x%t!`mF=h)VIlkgm+`TOXQz|$y>x{f2g|pXU2`mlh2A3vNaH}dbyz;1tBFbL zLmO8dhpmk9iY_8J=K~^hwFH#xfR^jfG)mKq__LJ&0ujOv&-{)WE(S%<7tXjwTe6oL zPW!$1mf_lZVY82Z$quJiN50u4h;u0~`u03alVICfx^n=)1lFlpJ zy@Gb~FV#GbJ2Da);p_{xq$d)Vn7ebaRWbc6ACLqi0s^2b>wimu7!xE0x;?9MXx^;x zqqK3YjuxP|VS9S>&0qtR;E_J7|~YF_zGAL_Q6hN9(VQ zlm@-%1bo%+nRYV;S^~3GC5V`L7f|7I1wdfruq_?A(l3!M@e9S#7<{M?F;$4T%J;V6 zE}Z`nfU^;#{Q%IeUnA&x_zftn42^S-WvdG+e47pcJ+G=hw%`?2O8VB%-Wz=i=vw{y z#ELeZHa+#aY<%c#GWE8@Tym(UsQ6YY>$--;P9=@wLiw}CDj+F=?b}?%T%>ZHe2tW2 z?@RQJ9=)U|K_4iaqrO(mPa>dkumSD;Z5xJ`u0a*$@#0~&H*kInjs9Y@V(rbLFYz~o zs_a?=h5CXdiQCjC9}3VOl_zxUABI1qIv*{bHt+(Rp{)tpFPU>9_0HHF#UHj6)T-q` z6k#Q^5jI7dy+l&wTQkuozGD*`z&k?h@)-cA<(dcVpG`NO+gd=%LiM~+Rc?3i35p-# z5&7x{Ffd(-cQwDfNQYPS@)pPM!M4B23>)*g_y$0-6^vV~Hl`*WmYNGKz!t2$$n8+T zYUox;O~4Ma1~+=b7IJ33GvVO{)9MPAPEZ}5Yq&I7`yTb8E9WsUt7>B2tg4}%p*(nr zJ6N`#C=4jhd!1w0ZOgi4>MUrpp1e4SmITNY=oTLcLG$$cZTquyKbeDcg-)>V=O=h0 zVp{H&ieTgtJ2Svy7##Th{cpCEV&?K7Urh-jxRlAwaor^OQNsjF77D`g06; zGk&3CFLM6G^O(pPmvPQ;O8qRfrF-!;{rqn@X~!3N8ft$1c*OR$1REI1446co$~tgk z=*Jwyx@M5MddfSZ39TYq5JDw`YYjx0+R1YEoBg*kT2>}$7&8UCYG`43%P%e$ct?L= z7SOaLpM@|W0-{j%+Hmn(z6G<^KGYJEOIfCheCzCj^zacW!)44~-b%`%h$RK1;?+x}5 zyA;a=bM`BsX#dkQZixz_?-ZOGDrlHC?c%$lrS%}KVsFk&m4uS1mKeDpdQn4sD{5Xt zfR*+Nfu;htarcbm-r>$DX!XGq+h-S1fO};g#Gd@365qupE6pv%)ONP*p~+5t9Z&oy zmEn-f2ofoqz?*tVYaSg>48Y{vLM1UGk8NebcnsQfdBvR@T00ImVy|eRr7<+QZ5PN^ zUED9>=cDq0vIJ4c%!Rf>>$~26fqeff1YSW*;RMiitf$i({nhUZDj|(XB2osfJa;HYbtiTaT?(S#i1~$HNaYH%EJs~1Eg3gAH)fDfYZstpnPLlY1UL=j zi}^N4Moeze^Z<0e-+X0|;my;S!j0)9g@H)QI3$<@^i~j(uUW2}RI;~S%!Ma3Ou6=H zJ5Clr8^U(3!?!XbCsG<3(v(Mlx)kkLK~1hg7%rTMaXa)mofuj*5Spobv5gLBR?q-S zH%FD~`L-r2WVQ|qsUS4Isn`Q_IR56xW}oz80NT6ybpSx_GdYfpv6NJ31gD1r{}*LZ zcDzkvvb#JOv=oP>p-b!}A1{>frCK|&NNp{Z`z|CJm7UJTKqX}u5WebHjm_)fPONG% zIvyQ~sjCNt@8Ns6H1n9>cvxS{?|JJ+g(op1>0QUFtitBfJMTz&{F?6IQ(eAFOIMNg zE@$#Pqus}cD|I;PFvX8Hq4E+0k6!yN5}mtXcHzT^=Z>kx%edHOHbn6!$ul=V%{vlX z>LYfDmc6p!X@�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 diff --git a/user-guide/tools/cloud-pods/remotes/index.html b/user-guide/tools/cloud-pods/remotes/index.html index a332c989e9..14bf16d2ff 100644 --- a/user-guide/tools/cloud-pods/remotes/index.html +++ b/user-guide/tools/cloud-pods/remotes/index.html @@ -126,11 +126,11 @@ LocalSurf

  • +
  • +
  • +
  • +
  • +
  • diff --git a/user-guide/tools/cockpit/index.html b/user-guide/tools/cockpit/index.html index 63e69ad484..5ceb75865e 100644 --- a/user-guide/tools/cockpit/index.html +++ b/user-guide/tools/cockpit/index.html @@ -130,11 +130,11 @@
  • +
  • +
  • +
  • +
  • +
  • diff --git a/user-guide/tools/index.html b/user-guide/tools/index.html index 52152f4cf0..e29697a1d8 100644 --- a/user-guide/tools/index.html +++ b/user-guide/tools/index.html @@ -130,11 +130,11 @@
  • +
  • +
  • +
  • +
  • +
  • diff --git a/user-guide/tools/index.xml b/user-guide/tools/index.xml index 363ec15306..6d22b6dd7b 100644 --- a/user-guide/tools/index.xml +++ b/user-guide/tools/index.xml @@ -246,21 +246,15 @@ This sample demonstrates how we can take an existing Web application, without an <h3 id="localstack-configurations">LocalStack configurations</h3> <p>You can manage and use your profiles via configurations and create new configurations for your LocalStack container.</p> <img src="localstack-docker-extension-configuration-profile.png" title="Create your configuration profiles within LocalStack's Extension to affect the state of LocalStack" width="900" />User-Guide: Cloud Pods/user-guide/tools/cloud-pods/Mon, 01 Jan 0001 00:00:00 +0000/user-guide/tools/cloud-pods/ -<div class="alert alert-primary" role="alert"> -<h4 class="alert-heading">Note</h4> -Please note that cloud pods may not be compatible across different versions of LocalStack. -We are actively working on addressing this limitation in the upcoming releases. -</div> +<h2 id="introduction">Introduction</h2> <p>Cloud Pods are a mechanism that allows you to take a snapshot of the state in your current LocalStack instance, persist it to a storage backend, and easily share it with your team members.</p> <p><img src="pods-persistence.png" alt="Persistence versus Cloud Pods"></p> -<div class="alert alert-success" role="alert"> -<h4 class="alert-heading">Hint</h4> -To quickly see cloud pods in action, we prepared a small sample application that uses cloud pods to inject its state into a running LocalStack container. <a href="https://app.localstack.cloud/quickstart/demo4">Cloud Pod Thumbnail Sample App</a> -</div> -<p>While the <a href="/references/persistence-mechanism/">Persistence</a> feature ensures that the service state survives container restarts, Cloud Pods go beyond and allow more fine-grained control over your state.</p> -<p>Instead of simply restoring a state when restarting LocalStack, Cloud Pods allow you to take snapshots of your local instance (with the <code>save</code> command) and inject such snapshots into a running instance (with the <code>load</code> command) without requiring a restart.</p> -<p>In addition, we provide a remote storage backend that can be used to store the state of your running application and share it with your team members.</p> -<p>You can interact with Cloud Pods via the Web UI, and to load and store the persistent state of pods, you can use the <code>localstack</code> <a href="/user-guide/tools/cloud-pods/pods-cli/">command-line interface (CLI)</a>.</p> +<h2 id="cloud-pods--persistence">Cloud Pods &amp; Persistence</h2> +<p>The <a href="/references/persistence-mechanism/">Persistence</a> feature ensures that the service state persists across container restarts. In contrast, Cloud Pods provide more detailed control over your state.</p> +<p>Rather than just restoring a state during LocalStack restarts, Cloud Pods enable you to capture snapshots of your local instance using the <code>save</code> command and inject these snapshots into a running instance using the <code>load</code> command, all without needing to perform a full restart.</p> +<p>In addition, LocalStack provides a remote storage backend that can be used to store the state of your running application and share it with your team members.</p> +<h2 id="getting-started">Getting started</h2> +<p>You can interact with Cloud Pods via the LocalStack Web Application. To save and load the persistent state of Cloud Pods, you can use the <a href="/user-guide/tools/cloud-pods/pods-cli/">Cloud Pods command-line interface (CLI)</a>.</p> <p><img src="pods-ui.png" alt="Cloud Pods Web UI"></p>User-Guide: Lambda Tools/user-guide/tools/lambda-tools/Mon, 01 Jan 0001 00:00:00 +0000/user-guide/tools/lambda-tools/ <p>Lambdas are awesome!</p>User-Guide: Transparent Endpoint Injection/user-guide/tools/transparent-endpoint-injection/Mon, 01 Jan 0001 00:00:00 +0000/user-guide/tools/transparent-endpoint-injection/ <p>In the community (open source) edition, the application code needs to configure each AWS SDK client instance with the target <code>endpoint URL</code> to point to the APIs on <code>localhost</code> or, in the case of Lambdas running in the context of LocalStack, the <code>endpoint URL</code> should point to <code>http://${LOCALSTACK_HOSTNAME}:${EDGE_PORT}</code>.</p> diff --git a/user-guide/tools/lambda-tools/debugging/index.html b/user-guide/tools/lambda-tools/debugging/index.html index e2a639912e..6de35c371d 100644 --- a/user-guide/tools/lambda-tools/debugging/index.html +++ b/user-guide/tools/lambda-tools/debugging/index.html @@ -130,11 +130,11 @@
  • +
  • +
  • +
  • +
  • +
  • diff --git a/user-guide/tools/lambda-tools/hot-reloading/index.html b/user-guide/tools/lambda-tools/hot-reloading/index.html index 96bedd3cdb..c90e5cd652 100644 --- a/user-guide/tools/lambda-tools/hot-reloading/index.html +++ b/user-guide/tools/lambda-tools/hot-reloading/index.html @@ -130,11 +130,11 @@
  • +
  • +
  • +
  • +
  • +
  • diff --git a/user-guide/tools/lambda-tools/index.html b/user-guide/tools/lambda-tools/index.html index 27e660d2f4..cf522de39c 100644 --- a/user-guide/tools/lambda-tools/index.html +++ b/user-guide/tools/lambda-tools/index.html @@ -130,11 +130,11 @@
  • +
  • +
  • +
  • +
  • +
  • diff --git a/user-guide/tools/localstack-docker-extension/index.html b/user-guide/tools/localstack-docker-extension/index.html index bc796da580..f8ccd08488 100644 --- a/user-guide/tools/localstack-docker-extension/index.html +++ b/user-guide/tools/localstack-docker-extension/index.html @@ -130,11 +130,11 @@
  • +
  • +
  • +
  • +
  • +
  • diff --git a/user-guide/tools/localsurf/index.html b/user-guide/tools/localsurf/index.html index c445d0159a..3d250e4587 100644 --- a/user-guide/tools/localsurf/index.html +++ b/user-guide/tools/localsurf/index.html @@ -130,11 +130,11 @@
  • +
  • +
  • +
  • +
  • +
  • diff --git a/user-guide/tools/testing-tools/index.html b/user-guide/tools/testing-tools/index.html index 8aa07408b2..e218eacd82 100644 --- a/user-guide/tools/testing-tools/index.html +++ b/user-guide/tools/testing-tools/index.html @@ -130,11 +130,11 @@
  • +
  • +
  • +
  • +
  • +
  • diff --git a/user-guide/tools/transparent-endpoint-injection/dns-server/index.html b/user-guide/tools/transparent-endpoint-injection/dns-server/index.html index 9fc3b42228..0169a9b9b6 100644 --- a/user-guide/tools/transparent-endpoint-injection/dns-server/index.html +++ b/user-guide/tools/transparent-endpoint-injection/dns-server/index.html @@ -130,11 +130,11 @@
  • +
  • +
  • +
  • +
  • +
  • diff --git a/user-guide/tools/transparent-endpoint-injection/index.html b/user-guide/tools/transparent-endpoint-injection/index.html index c36b8435f8..b44b87c26d 100644 --- a/user-guide/tools/transparent-endpoint-injection/index.html +++ b/user-guide/tools/transparent-endpoint-injection/index.html @@ -130,11 +130,11 @@
  • +
  • +
  • +
  • +
  • +
  • diff --git a/user-guide/tools/transparent-endpoint-injection/patched-sdks/index.html b/user-guide/tools/transparent-endpoint-injection/patched-sdks/index.html index c177985daa..bc9ee9ff3c 100644 --- a/user-guide/tools/transparent-endpoint-injection/patched-sdks/index.html +++ b/user-guide/tools/transparent-endpoint-injection/patched-sdks/index.html @@ -130,11 +130,11 @@
  • +
  • +
  • +
  • +
  • +
  • diff --git a/user-guide/web-application/accounts/index.html b/user-guide/web-application/accounts/index.html index 341d929a32..6323a051b7 100644 --- a/user-guide/web-application/accounts/index.html +++ b/user-guide/web-application/accounts/index.html @@ -130,11 +130,11 @@
  • +
  • +
  • +
  • +
  • +
  • diff --git a/user-guide/web-application/cloud-pods-browser/index.html b/user-guide/web-application/cloud-pods-browser/index.html index 90df1e455a..afbc38d6d5 100644 --- a/user-guide/web-application/cloud-pods-browser/index.html +++ b/user-guide/web-application/cloud-pods-browser/index.html @@ -130,11 +130,11 @@
  • +
  • +
  • +
  • +
  • +
  • diff --git a/user-guide/web-application/custom-local-endpoint/custom-local-endpoint/index.html b/user-guide/web-application/custom-local-endpoint/custom-local-endpoint/index.html index 7422e67963..26b354b9f0 100644 --- a/user-guide/web-application/custom-local-endpoint/custom-local-endpoint/index.html +++ b/user-guide/web-application/custom-local-endpoint/custom-local-endpoint/index.html @@ -130,11 +130,11 @@
  • +
  • +
  • +
  • +
  • +
  • diff --git a/user-guide/web-application/export-import-state/index.html b/user-guide/web-application/export-import-state/index.html index cc824f47a8..eae93e460e 100644 --- a/user-guide/web-application/export-import-state/index.html +++ b/user-guide/web-application/export-import-state/index.html @@ -126,11 +126,11 @@
  • +
  • +
  • +
  • +
  • +
  • diff --git a/user-guide/web-application/extensions-library/index.html b/user-guide/web-application/extensions-library/index.html index 427e4ab308..41219b1af5 100644 --- a/user-guide/web-application/extensions-library/index.html +++ b/user-guide/web-application/extensions-library/index.html @@ -126,11 +126,11 @@
  • +
  • +
  • +
  • +
  • +
  • diff --git a/user-guide/web-application/index.html b/user-guide/web-application/index.html index a2f7cd8595..66d917a28f 100644 --- a/user-guide/web-application/index.html +++ b/user-guide/web-application/index.html @@ -130,11 +130,11 @@
  • +
  • +
  • +
  • +
  • +
  • diff --git a/user-guide/web-application/resource-browser/index.html b/user-guide/web-application/resource-browser/index.html index 041e017ea3..9115dd4074 100644 --- a/user-guide/web-application/resource-browser/index.html +++ b/user-guide/web-application/resource-browser/index.html @@ -130,11 +130,11 @@
  • +
  • +
  • +
  • +
  • +
  • diff --git a/user-guide/web-application/single-sign-on/azure-ad/index.html b/user-guide/web-application/single-sign-on/azure-ad/index.html index a1355e7e52..c5dec09ee8 100644 --- a/user-guide/web-application/single-sign-on/azure-ad/index.html +++ b/user-guide/web-application/single-sign-on/azure-ad/index.html @@ -130,11 +130,11 @@
  • +
  • +
  • +
  • +
  • +
  • diff --git a/user-guide/web-application/single-sign-on/index.html b/user-guide/web-application/single-sign-on/index.html index 500bbfc40f..b4b7116a73 100644 --- a/user-guide/web-application/single-sign-on/index.html +++ b/user-guide/web-application/single-sign-on/index.html @@ -130,11 +130,11 @@
  • +
  • +
  • +
  • +
  • +
  • diff --git a/user-guide/web-application/stack-insights/index.html b/user-guide/web-application/stack-insights/index.html index 8de89f0b84..39e3611bb9 100644 --- a/user-guide/web-application/stack-insights/index.html +++ b/user-guide/web-application/stack-insights/index.html @@ -130,11 +130,11 @@
  • +
  • +
  • +
  • +
  • +
  • diff --git a/user-guide/web-application/teams/index.html b/user-guide/web-application/teams/index.html index 8134d64dec..d0ac6b4584 100644 --- a/user-guide/web-application/teams/index.html +++ b/user-guide/web-application/teams/index.html @@ -130,11 +130,11 @@
  • +
  • +
  • +
  • +
  • +