From 8523b7b4085f19c6b6ec3de274a1cfbe6ba19af8 Mon Sep 17 00:00:00 2001 From: docs-bot <77750099+docs-bot@users.noreply.github.com> Date: Mon, 20 Apr 2026 16:19:34 -0700 Subject: [PATCH 01/10] fix(translations): add new Liquid corruption correction patterns (2026-04-20) (#60856) Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com> Co-authored-by: Kevin Heis --- .../lib/correct-translation-content.ts | 54 +++++++++ .../tests/correct-translation-content.ts | 109 ++++++++++++++++++ 2 files changed, 163 insertions(+) diff --git a/src/languages/lib/correct-translation-content.ts b/src/languages/lib/correct-translation-content.ts index fca1adefd0f9..2e1eb3fed434 100644 --- a/src/languages/lib/correct-translation-content.ts +++ b/src/languages/lib/correct-translation-content.ts @@ -26,6 +26,10 @@ export function correctTranslatedContentStrings( // Remove colon prefix on Liquid tags: `{%:` → `{%` content = content.replace(/\{%:/g, '{%') + // `{% siVersion X %}` — Spanish "si" (if) fused with "Version" = ifversion + content = content.replaceAll('{% siVersion ', '{% ifversion ') + content = content.replaceAll('{%- siVersion ', '{%- ifversion ') + content = content.replaceAll('{% vulnerables variables.', '{% data variables.') content = content.replaceAll('{% datos variables', '{% data variables') content = content.replaceAll('{% de datos variables', '{% data variables') @@ -235,9 +239,17 @@ export function correctTranslatedContentStrings( } if (context.code === 'pt') { + // `{%–` — en-dash (U+2013) used instead of hyphen in `{%-` trim modifier + content = content.replaceAll('{%–', '{%-') + content = content.replaceAll('{% dados variables', '{% data variables') content = content.replaceAll('{% de dados variables', '{% data variables') content = content.replaceAll('{% dados reusables', '{% data reusables') + // `{% dadosvariables` / `{% datavariables` — no space between "dados"/"data" and "variables" + content = content.replaceAll('{% dadosvariables', '{% data variables') + content = content.replaceAll('{%- dadosvariables', '{%- data variables') + content = content.replaceAll('{% datavariables', '{% data variables') + content = content.replaceAll('{%- datavariables', '{%- data variables') // Fully translated reusables path: `{% dados reutilizáveis.X.Y %}` → `{% data reusables.X.Y %}` content = content.replaceAll('{% dados reutilizáveis.', '{% data reusables.') // Translated path segment inside reusables path: `repositórios` → `repositories` @@ -292,6 +304,9 @@ export function correctTranslatedContentStrings( if (context.code === 'zh') { content = content.replaceAll('{% 数据variables', '{% data variables') content = content.replaceAll('{% 数据 variables', '{% data variables') + // `{%数据variables` — no space between `{%` and 数据 (data) + content = content.replaceAll('{%数据variables', '{% data variables') + content = content.replaceAll('{%数据 variables', '{% data variables') // Order matters: the more specific `s.` variant must run first to // avoid the broader rule producing a double-s (`reusabless`). content = content.replaceAll('{% 数据可重用s.', '{% data reusables.') @@ -467,6 +482,12 @@ export function correctTranslatedContentStrings( content = content.replaceAll('{% données variables', '{% data variables') content = content.replaceAll('{% données réutilisables.', '{% data reusables.') content = content.replaceAll('{% variables de données.', '{% data variables.') + // `{% de données variables.` — preposition "de" prepended to "données variables" + content = content.replaceAll('{% de données variables.', '{% data variables.') + content = content.replaceAll('{%- de données variables.', '{%- data variables.') + // `{% de data variables.` — partially-corrected form (données already fixed to data) + content = content.replaceAll('{% de data variables.', '{% data variables.') + content = content.replaceAll('{%- de data variables.', '{%- data variables.') content = content.replaceAll('{% autre %}', '{% else %}') content = content.replaceAll('{%- autre %}', '{%- else %}') content = content.replaceAll('{% brut %}', '{% raw %}') @@ -571,6 +592,10 @@ export function correctTranslatedContentStrings( content = content.replaceAll('{% 옥티콘 ', '{% octicon ') content = content.replaceAll('{%- 옥티콘 ', '{%- octicon ') + // `{% data Variables.` — capital V in "Variables" (Korean translator capitalised the word) + content = content.replaceAll('{% data Variables.', '{% data variables.') + content = content.replaceAll('{%- data Variables.', '{%- data variables.') + // Korean translation of github-glossary.md content = content.replaceAll('{{ 용어집.term }}', '{{ glossary.term }}') // `{% 데이터 재사용.` — Korean translation of "data reusables" path @@ -662,8 +687,23 @@ export function correctTranslatedContentStrings( // `{% Endnotiz %}` — "end note" = endnote content = content.replaceAll('{% Endnotiz %}', '{% endnote %}') content = content.replaceAll('{%- Endnotiz %}', '{%- endnote %}') + // `{% data-variables.` — hyphen used instead of space between "data" and "variables" + content = content.replaceAll('{% data-variables.', '{% data variables.') + content = content.replaceAll('{%- data-variables.', '{%- data variables.') + // `{%- Datenworkflow variables.` — compound "Datenworkflow" (data workflow) = data + content = content.replaceAll('{%- Datenworkflow variables.', '{%- data variables.') + content = content.replaceAll('{% Datenworkflow variables.', '{% data variables.') + // `{% ifec ` — truncated/corrupted form of "ifversion" + content = content.replaceAll('{% ifec ', '{% ifversion ') + content = content.replaceAll('{%- ifec ', '{%- ifversion ') + // `{% andere %}` / `{%- andere %}` — German "andere" (other) = else + content = content.replaceAll('{% andere %}', '{% else %}') + content = content.replaceAll('{%- andere %}', '{%- else %}') // `{% Dateninstanz` — "data instance" = data content = content.replaceAll('{% Dateninstanz ', '{% data ') + // `{% Datenauflistung ` — "data listing" (compound) = data + content = content.replaceAll('{% Datenauflistung ', '{% data ') + content = content.replaceAll('{%- Datenauflistung ', '{%- data ') // `{% ifversion-Sicherheitskonfigurationen %}` — hyphenated compound content = content.replaceAll( '{% ifversion-Sicherheitskonfigurationen %}', @@ -731,6 +771,20 @@ export function correctTranslatedContentStrings( content = content.replaceAll('{% dada variables', '{% data variables') content = content.replaceAll('{% % data', '{% data') + // Leading dot in `{% data` paths: `{% data .variables.X %}` / `{% data .reusables.X %}` + // — translator inserted a stray dot. Affects ja, pt, zh. + content = content.replaceAll('{% data .variables.', '{% data variables.') + content = content.replaceAll('{%- data .variables.', '{%- data variables.') + content = content.replaceAll('{% data .reusables.', '{% data reusables.') + content = content.replaceAll('{%- data .reusables.', '{%- data reusables.') + + // Singular "variable" / "reusable" in `{% data` paths: + // `{% data variable.product.X %}` → `{% data variables.product.X %}` (es, zh) + content = content.replaceAll('{% data variable.', '{% data variables.') + content = content.replaceAll('{%- data variable.', '{%- data variables.') + content = content.replaceAll('{% data reusable.', '{% data reusables.') + content = content.replaceAll('{%- data reusable.', '{%- data reusables.') + // Double-quote corruption in href attributes content = content.replace(/href=""https:\/\//g, 'href="https://') diff --git a/src/languages/tests/correct-translation-content.ts b/src/languages/tests/correct-translation-content.ts index 308391c5bb5b..26f5382ff528 100644 --- a/src/languages/tests/correct-translation-content.ts +++ b/src/languages/tests/correct-translation-content.ts @@ -131,6 +131,11 @@ describe('correctTranslatedContentStrings', () => { '{% data reusables.profile.access_org %}', ) }) + + test('fixes siVersion → ifversion', () => { + expect(fix('{% siVersion productos-ghas %}', 'es')).toBe('{% ifversion productos-ghas %}') + expect(fix('{%- siVersion productos-ghas %}', 'es')).toBe('{%- ifversion productos-ghas %}') + }) }) // ─── JAPANESE (ja) ────────────────────────────────────────────────── @@ -318,6 +323,26 @@ describe('correctTranslatedContentStrings', () => { ) }) + test('fixes en-dash in trim modifier', () => { + // `{%–` — en-dash (U+2013) used instead of hyphen in `{%-` trim modifier + expect(fix('{%– ifversion projects-v1 %}', 'pt')).toBe('{%- ifversion projects-v1 %}') + expect(fix('{%– endif %}', 'pt')).toBe('{%- endif %}') + }) + + test('fixes datavariables / dadosvariables (no space)', () => { + // `{% datavariables` — no space between "data" and "variables" (post-translation) + expect(fix('{% datavariables.product.github %}', 'pt')).toBe( + '{% data variables.product.github %}', + ) + expect(fix('{%- datavariables.product.github %}', 'pt')).toBe( + '{%- data variables.product.github %}', + ) + // `{% dadosvariables` — Portuguese "dados" fused with "variables" + expect(fix('{% dadosvariables.product.github %}', 'pt')).toBe( + '{% data variables.product.github %}', + ) + }) + test('fixes translated else variants', () => { expect(fix('{% senão %}', 'pt')).toBe('{% else %}') expect(fix('{%- senão %}', 'pt')).toBe('{%- else %}') @@ -434,6 +459,13 @@ describe('correctTranslatedContentStrings', () => { '{% data variables.product.github %}', ) expect(fix('{% 数据可重用s.foo %}', 'zh')).toBe('{% data reusables.foo %}') + // No space between `{%` and 数据 + expect(fix('{%数据variables.product.github%}', 'zh')).toBe( + '{% data variables.product.github%}', + ) + expect(fix('{%数据 variables.product.github%}', 'zh')).toBe( + '{% data variables.product.github%}', + ) }) test('fixes translated else and raw', () => { @@ -687,6 +719,14 @@ describe('correctTranslatedContentStrings', () => { '{% data variables.product.github %}', ) expect(fix('{% données reusables.foo %}', 'fr')).toBe('{% data reusables.foo %}') + // `{% de données variables.` — preposition "de" prepended + expect(fix('{% de données variables.product.github %}', 'fr')).toBe( + '{% data variables.product.github %}', + ) + // `{% de data variables.` — partially-corrected form + expect(fix('{% de data variables.product.github %}', 'fr')).toBe( + '{% data variables.product.github %}', + ) }) test('fixes translated else', () => { @@ -889,6 +929,15 @@ describe('correctTranslatedContentStrings', () => { expect(fix('{% 주석 끝 %}', 'ko')).toBe('{% endnote %}') expect(fix('{%- 주석 끝 %}', 'ko')).toBe('{%- endnote %}') }) + + test('fixes capitalized Variables → data variables', () => { + expect(fix('{% data Variables.product.github %}', 'ko')).toBe( + '{% data variables.product.github %}', + ) + expect(fix('{%- data Variables.product.github %}', 'ko')).toBe( + '{%- data variables.product.github %}', + ) + }) }) // ─── GERMAN (de) ────────────────────────────────────────────────── @@ -1088,6 +1137,44 @@ describe('correctTranslatedContentStrings', () => { '{% ifversion enterprise-installed-apps %}', ) }) + + test('fixes data-variables (hyphen instead of space)', () => { + expect(fix('{% data-variables.product.github %}', 'de')).toBe( + '{% data variables.product.github %}', + ) + expect(fix('{%- data-variables.product.github %}', 'de')).toBe( + '{%- data variables.product.github %}', + ) + }) + + test('fixes Datenworkflow variables → data variables', () => { + expect(fix('{%- Datenworkflow variables.product.prodname_actions %}', 'de')).toBe( + '{%- data variables.product.prodname_actions %}', + ) + expect(fix('{% Datenworkflow variables.product.prodname_actions %}', 'de')).toBe( + '{% data variables.product.prodname_actions %}', + ) + }) + + test('fixes ifec → ifversion', () => { + expect(fix('{% ifec ghec %}', 'de')).toBe('{% ifversion ghec %}') + expect(fix('{%- ifec ghec %}', 'de')).toBe('{%- ifversion ghec %}') + }) + + test('fixes andere → else', () => { + expect(fix('{% andere %}', 'de')).toBe('{% else %}') + expect(fix('{%- andere %}', 'de')).toBe('{%- else %}') + }) + + test('fixes Datenauflistung → data', () => { + // `{% Datenauflistung variables.X %}` — "data listing" compound = data + expect(fix('{% Datenauflistung variables.product.github %}', 'de')).toBe( + '{% data variables.product.github %}', + ) + expect(fix('{%- Datenauflistung variables.product.github %}', 'de')).toBe( + '{%- data variables.product.github %}', + ) + }) }) describe('Generic fixes (all languages)', () => { @@ -1108,6 +1195,28 @@ describe('correctTranslatedContentStrings', () => { ) }) + test('fixes leading dot in {% data paths', () => { + // `{% data .variables.X %}` — translator inserted a stray dot + expect(fix('{% data .variables.product.prodname_ghe_server %}', 'ja')).toBe( + '{% data variables.product.prodname_ghe_server %}', + ) + expect(fix('{%- data .variables.product.github %}', 'pt')).toBe( + '{%- data variables.product.github %}', + ) + expect(fix('{% data .reusables.foo.bar %}', 'zh')).toBe('{% data reusables.foo.bar %}') + }) + + test('fixes singular variable / reusable in {% data paths', () => { + // `{% data variable.product.X %}` (singular) → `{% data variables.product.X %}` + expect(fix('{% data variable.product.prodname_container_registry %}', 'zh')).toBe( + '{% data variables.product.prodname_container_registry %}', + ) + expect(fix('{%- data variable.product.github %}', 'es')).toBe( + '{%- data variables.product.github %}', + ) + expect(fix('{% data reusable.foo.bar %}', 'fr')).toBe('{% data reusables.foo.bar %}') + }) + test('fixes capitalized platform tags across all languages', () => { expect(fix('{% Windows %}', 'zh')).toBe('{% windows %}') expect(fix('{% Eclipse %}', 'zh')).toBe('{% eclipse %}') From 15e9917d569d444fe843234cf5efbfec2f2340cb Mon Sep 17 00:00:00 2001 From: Aaron LaBrie Date: Tue, 21 Apr 2026 01:46:40 -0700 Subject: [PATCH 02/10] Clarify exclusion rules for bin directory files (#60838) Co-authored-by: hubwriter --- content/copilot/reference/review-excluded-files.md | 5 ++++- 1 file changed, 4 insertions(+), 1 deletion(-) diff --git a/content/copilot/reference/review-excluded-files.md b/content/copilot/reference/review-excluded-files.md index 854f260d1b23..be94825f4416 100644 --- a/content/copilot/reference/review-excluded-files.md +++ b/content/copilot/reference/review-excluded-files.md @@ -79,6 +79,9 @@ Files matching these patterns are also excluded: * `**/*.map` * `**/out/**/*` * `**/vendor/**/*` -* `**/bin/**/*` * `**/generated/**/*` * `**/generated-sources/**/*` +* `**/bin/**/*` + + > [!NOTE] + > Rust files matching `**/bin/**/*.rs` _are_ included for review. From 7984b0660746031ff4fba840ddba57f7b71426a6 Mon Sep 17 00:00:00 2001 From: Isaac Brown <101839405+isaacmbrown@users.noreply.github.com> Date: Tue, 21 Apr 2026 10:33:29 +0100 Subject: [PATCH 03/10] Giving CCA access to resources in an organization (#60757) Co-authored-by: Copilot <175728472+Copilot@users.noreply.github.com> Co-authored-by: Joe Clark <31087804+jc-clark@users.noreply.github.com> --- .../customize-the-agent-environment.md | 31 +----- .../extend-cloud-agent-with-mcp.md | 1 - .../cloud-agent/give-access-to-resources.md | 104 ++++++++++++++++++ .../copilot/tutorials/cloud-agent/index.md | 1 + .../cloud-agent/install-dependencies.md | 22 ++++ 5 files changed, 132 insertions(+), 27 deletions(-) create mode 100644 content/copilot/tutorials/cloud-agent/give-access-to-resources.md create mode 100644 data/reusables/copilot/cloud-agent/install-dependencies.md diff --git a/content/copilot/how-tos/use-copilot-agents/cloud-agent/customize-the-agent-environment.md b/content/copilot/how-tos/use-copilot-agents/cloud-agent/customize-the-agent-environment.md index 32516b39d1ef..345cfa573aa7 100644 --- a/content/copilot/how-tos/use-copilot-agents/cloud-agent/customize-the-agent-environment.md +++ b/content/copilot/how-tos/use-copilot-agents/cloud-agent/customize-the-agent-environment.md @@ -13,7 +13,7 @@ redirect_from: - /copilot/how-tos/agents/copilot-coding-agent/customize-the-agent-environment - /copilot/how-tos/agents/coding-agent/customize-the-agent-environment contentType: how-tos -category: +category: - Configure Copilot --- @@ -110,28 +110,7 @@ In its ephemeral development environment, {% data variables.product.prodname_cop You can use a Copilot setup steps file to deterministically install tools or dependencies before {% data variables.product.prodname_copilot_short %} starts work. To do this, add `steps` to the `copilot-setup-steps` job: -```yaml -# ... - -jobs: - copilot-setup-steps: - # ... - - # You can define any steps you want, and they will run before the agent starts. - # If you do not check out your code, Copilot will do this for you. - steps: - - name: Checkout code - uses: {% data reusables.actions.action-checkout %} - - - name: Set up Node.js - uses: {% data reusables.actions.action-setup-node %} - with: - node-version: "20" - cache: "npm" - - - name: Install JavaScript dependencies - run: npm ci -``` +{% data reusables.copilot.cloud-agent.install-dependencies %} ## Upgrading to larger {% data variables.product.prodname_dotcom %}-hosted {% data variables.product.prodname_actions %} runners @@ -158,14 +137,14 @@ By default, {% data variables.product.prodname_copilot_short %} works in a stand ## Using self-hosted {% data variables.product.prodname_actions %} runners -You can run {% data variables.copilot.copilot_cloud_agent %} on self-hosted runners. You may want to do this to match how you run CI/CD workflows on {% data variables.product.prodname_actions %}, or to give {% data variables.product.prodname_copilot_short %} access to internal resources on your network. +You can run {% data variables.copilot.copilot_cloud_agent %} on self-hosted runners. You may want to do this to match how you run CI/CD workflows on {% data variables.product.prodname_actions %}, or to give {% data variables.product.prodname_copilot_short %} access to internal resources on your network. We recommend that you only use {% data variables.copilot.copilot_cloud_agent %} with ephemeral, single-use runners that are not reused for multiple jobs. Most customers set this up using ARC (Actions Runner Controller) or the {% data variables.product.prodname_actions %} Runner Scale Set Client. For more information, see [AUTOTITLE](/actions/reference/runners/self-hosted-runners#supported-autoscaling-solutions). > [!NOTE] > {% data variables.copilot.copilot_cloud_agent %} is only compatible with Ubuntu x64 and Windows 64-bit runners. Runners with macOS or other operating systems are not supported. -1. Configure network security controls for your {% data variables.product.prodname_actions %} runners to ensure that {% data variables.copilot.copilot_cloud_agent %} does not have open access to your network or the public internet. +1. Configure network security controls for your {% data variables.product.prodname_actions %} runners to ensure that {% data variables.copilot.copilot_cloud_agent %} does not have open access to your network or the public internet. You must configure your firewall to allow connections to the [standard hosts required for {% data variables.product.prodname_actions %} self-hosted runners](/actions/reference/runners/self-hosted-runners#accessible-domains-by-function), plus the following hosts: @@ -193,7 +172,7 @@ We recommend that you only use {% data variables.copilot.copilot_cloud_agent %} ## Switching {% data variables.product.prodname_copilot_short %} to a Windows development environment -By default, {% data variables.product.prodname_copilot_short %} uses an Ubuntu Linux-based development environment. +By default, {% data variables.product.prodname_copilot_short %} uses an Ubuntu Linux-based development environment. You may want to use a Windows development environment if you're building software for Windows or your repository uses a Windows-based toolchain so {% data variables.product.prodname_copilot_short %} can build your project, run tests and validate its work. diff --git a/content/copilot/how-tos/use-copilot-agents/cloud-agent/extend-cloud-agent-with-mcp.md b/content/copilot/how-tos/use-copilot-agents/cloud-agent/extend-cloud-agent-with-mcp.md index 2266a05e7389..74dd25e29fca 100644 --- a/content/copilot/how-tos/use-copilot-agents/cloud-agent/extend-cloud-agent-with-mcp.md +++ b/content/copilot/how-tos/use-copilot-agents/cloud-agent/extend-cloud-agent-with-mcp.md @@ -129,7 +129,6 @@ The [Sentry MCP server](https://github.com/getsentry/sentry-mcp) gives {% data v // We can use the $SENTRY_HOST environment variable which is passed to // the server because of the `env` value below. "args": ["@sentry/mcp-server@latest", "--host=$SENTRY_HOST"], - "tools": ["get_issue_details", "get_issue_summary"], "env": { // We can specify an environment variable value as a string... "SENTRY_HOST": "https://contoso.sentry.io", diff --git a/content/copilot/tutorials/cloud-agent/give-access-to-resources.md b/content/copilot/tutorials/cloud-agent/give-access-to-resources.md new file mode 100644 index 000000000000..a5ecda353f19 --- /dev/null +++ b/content/copilot/tutorials/cloud-agent/give-access-to-resources.md @@ -0,0 +1,104 @@ +--- +title: 'Giving GitHub Copilot cloud agent access to resources in your organization' +shortTitle: 'Give access to resources' +intro: 'Get more out of {% data variables.product.prodname_copilot_short %} by giving it access to approved MCP servers and internal packages.' +versions: + feature: copilot +contentType: tutorials +category: + - Manage Copilot for a team + - Roll Copilot out at scale +--- + +{% data variables.copilot.copilot_cloud_agent %} can connect to MCP servers, use private packages, and access external services, but only if your organization's repositories are configured to allow it. + +Although much of the configuration below is done at the repository level, organization owners have control over which resources are in scope and who can configure access to them. + +## Example scenario + +Your organization uses Sentry to track bugs in your Node app. New exceptions are raised as issues on {% data variables.product.github %}, and your developers want to assign these issues to {% data variables.product.prodname_copilot_short %}. + +You want {% data variables.product.prodname_copilot_short %} to: + +* Connect to the Sentry MCP server so it can access details on your Sentry instance +* Install dependencies, including private packages hosted on {% data variables.product.github %}, to build your app and run tests +* Follow your organization's conventions for error-handling + +## Storing secrets securely + +By default, the scope of {% data variables.product.prodname_copilot_short %}'s authentication token is limited to the repository where it's running. This means that {% data variables.product.prodname_copilot_short %} won't be able to authenticate to external systems or access private, organization-scoped packages. + +Repository administrators should add variables and secrets that {% data variables.product.prodname_copilot_short %} requires to a dedicated `copilot` {% data variables.product.prodname_actions %} environment. {% data variables.product.prodname_copilot_short %} can access this data in its setup and task execution. It won't be able to access variables or secrets outside this environment, such as organization-wide {% data variables.product.prodname_actions %} secrets. + +### Example: Save a secret + +A repository administrator saves an authentication token for the organization's Sentry instance. + +1. Go to the **Environments** section of the repository settings. +1. Create a new environment called `copilot`. +1. Save an access token for your Sentry instance in an environment secret called `COPILOT_MCP_SENTRY_ACCESS_TOKEN`. + +> [!TIP] We don't need to save a token for our private {% data variables.product.prodname_registry %} registry, which we'll access using the standard {% data variables.product.prodname_actions %} `GITHUB_TOKEN`. However, you would want to save an authentication token if you were using an external package registry. + +## Configuring access to MCP servers + +Organization and enterprise owners can set a policy to allow users to configure access to MCP servers. If this policy is enabled, users can configure MCP servers for {% data variables.copilot.copilot_cloud_agent %} in repository settings or in custom agent profiles. For organization-wide consistency, we recommend creating **custom agent profiles** at the organization or enterprise level. + +A session using a custom agent has access to MCP servers configured in **both** the repository settings and the agent profile. However, the more use cases you cover with organization-wide custom agents, the less users will need to configure ad hoc access to MCP servers in repository settings. + +We recommend browsing the [{% data variables.product.github %} MCP Registry](https://github.com/mcp) to find trusted, highly rated options. + +### Example: Create a custom agent + +An organization owner creates a custom agent profile for the Sentry agent. It has access to the Sentry MCP server and custom instructions for the organization's error-handling conventions. + +1. Create a repository called `.github-private` in your organization. Optionally, an enterprise owner can set this repository as the source for all custom agents in the enterprise. +1. In the repository, add an `agent.md` file with a profile like the following. This includes configuration for the MCP server, which references the secret we saved. + + ``` text + --- + name: sentry-error-fixer + description: Proposed fixes for exception issues raised from Sentry + mcp-servers: + sentry: + type: 'local' + command: 'npx' + args: ['@sentry/mcp-server@latest'] + env: + SENTRY_ACCESS_TOKEN: {% raw %}${{ secrets.COPILOT_MCP_SENTRY_ACCESS_TOKEN }}{% endraw %} + --- + + You are an error resolution specialist. When you're assigned an issue created by our Sentry integration, check for error details and stack traces using the MCP server, then propose a fix. + + Make sure you check that your proposed fix works by building the site with `npm run build` and running the test suite in `npm test`. + ``` + +1. When developers assign an issue to {% data variables.product.prodname_copilot_short %}, they can select the custom agent from a dropdown. + +## Installing private packages + +The best way to give {% data variables.product.prodname_copilot_short %} access to a project's dependencies is to install them in a `copilot-setup-steps.yml` workflow file. This file defines how the environment is set up before {% data variables.product.prodname_copilot_short %} starts working. + +To allow the workflow to pull your private, organization-scoped packages, you will update the package settings to make sure that the repository's `GITHUB_TOKEN` has access to the package. This is more secure than using a long-lived {% data variables.product.pat_generic %} with organization permissions. + +### Example: Install Node dependencies + +A developer creates a workflow to install the Node dependencies defined in a repository's `package-lock.json` file. This includes private, organization-scoped packages hosted on {% data variables.product.github %}. + +1. The developer creates a `copilot-setup-steps.yml` file in the repository. +1. They add steps for installing the project's dependencies. For example: + + {% data reusables.copilot.cloud-agent.install-dependencies %} + +1. An organization administrator ensures that the repository has access to the organization's private packages by granting access to the repository in each package's settings. See [AUTOTITLE](/packages/learn-github-packages/configuring-a-packages-access-control-and-visibility#github-actions-access-for-packages-scoped-to-organizations). + +>[!TIP] If you need to access packages that are hosted internally within your corporate network, you may need to run {% data variables.copilot.copilot_cloud_agent %} on self-hosted {% data variables.product.prodname_actions %} runners. + +## Controlling who can configure these settings + +Now you have seen how access to resources is controlled at the repository and organization levels, consider how much scope you want to give users to manage these settings. + +1. **Choose which repositories have access** to {% data variables.copilot.copilot_cloud_agent %}. If you're concerned about a specific repository, you can block it for all users. +1. **Consider who gets admin access** to these repositories. You can control this at the organization level by creating a team with the **All-repository admin** custom role. These users will be able to manage configuration _settings_, such as MCP configuration and `copilot` environments, in every repository. +1. **Use rulesets and CODEOWNERS files** to control edits of configuration _files_, such as `copilot-setup-steps.yml`, which anyone with write access can edit by default. +1. **Review the default firewall**. The firewall doesn't affect connections to MCP servers or setup steps in `copilot-setup-steps.yml`, but it does limit {% data variables.product.prodname_copilot_short %}'s access to the Internet during task execution. See [AUTOTITLE](/copilot/how-tos/use-copilot-agents/cloud-agent/customize-the-agent-firewall). diff --git a/content/copilot/tutorials/cloud-agent/index.md b/content/copilot/tutorials/cloud-agent/index.md index 7b2be160db42..1a564b7b0ba7 100644 --- a/content/copilot/tutorials/cloud-agent/index.md +++ b/content/copilot/tutorials/cloud-agent/index.md @@ -10,6 +10,7 @@ children: - /pilot-cloud-agent - /improve-a-project - /build-guardrails + - /give-access-to-resources contentType: tutorials redirect_from: - /copilot/tutorials/coding-agent diff --git a/data/reusables/copilot/cloud-agent/install-dependencies.md b/data/reusables/copilot/cloud-agent/install-dependencies.md new file mode 100644 index 000000000000..d2e4545621b3 --- /dev/null +++ b/data/reusables/copilot/cloud-agent/install-dependencies.md @@ -0,0 +1,22 @@ +```yaml +# ... + +jobs: + copilot-setup-steps: + # ... + + # You can define any steps you want, and they will run before the agent starts. + # If you do not check out your code, Copilot will do this for you. + steps: + - name: Checkout code + uses: {% data reusables.actions.action-checkout %} + + - name: Set up Node.js + uses: {% data reusables.actions.action-setup-node %} + with: + node-version: "20" + cache: "npm" + + - name: Install JavaScript dependencies + run: npm ci +``` From ab3588dcf58f979808049c08870ab3c6cc1a74eb Mon Sep 17 00:00:00 2001 From: Eyal Gal Date: Tue, 21 Apr 2026 02:34:21 -0700 Subject: [PATCH 04/10] Clarify DR support ticket requirements and fix EMU sign-in wording (#60776) Co-authored-by: Isaac Brown <101839405+isaacmbrown@users.noreply.github.com> --- .../creating-a-support-ticket.md | 8 +++++--- 1 file changed, 5 insertions(+), 3 deletions(-) diff --git a/content/support/contacting-github-support/creating-a-support-ticket.md b/content/support/contacting-github-support/creating-a-support-ticket.md index ff0a6b40bbf7..16d2c70bf5e9 100644 --- a/content/support/contacting-github-support/creating-a-support-ticket.md +++ b/content/support/contacting-github-support/creating-a-support-ticket.md @@ -78,13 +78,15 @@ Especially for tickets with {% data variables.product.support_ticket_priority_ur ## Creating a support ticket{% ifversion ghes %} using the {% data variables.contact.enterprise_portal %}{% endif %} -> [!NOTE] -> Before you submit a ticket, you have the option of using {% data variables.copilot.copilot_in_support %} to receive an immediate response to your question. If {% data variables.copilot.copilot_in_support %} is unable to resolve your issue, you can continue submitting your ticket. For more information, see [AUTOTITLE](/support/learning-about-github-support/about-copilot-in-github-support). +Before you submit a ticket, you have the option of using {% data variables.copilot.copilot_in_support %} to receive an immediate response to your question. If {% data variables.copilot.copilot_in_support %} is unable to resolve your issue, you can continue submitting your ticket. For more information, see [AUTOTITLE](/support/learning-about-github-support/about-copilot-in-github-support). + +> [!IMPORTANT] +> If your enterprise uses {% data variables.enterprise.data_residency_short %}, you must sign in with your {% data variables.enterprise.data_residency_site %} account when creating a support ticket about your data-resident enterprise. Otherwise, you will be asked to open a new ticket using your {% data variables.enterprise.data_residency_site %} account. 1. Navigate to the {% data variables.contact.contact_landing_page_portal %} and choose one of the following options: * To sign in with your {% data variables.product.github %} account, click **Sign in with {% data variables.product.github %}**. - * If your organization uses {% data variables.enterprise.data_residency_short %} or {% data variables.enterprise.prodname_managed_users %} (accounts ending in `.ghe`): + * If your enterprise uses {% data variables.enterprise.data_residency_short %} (you will use a domain like `{% data variables.enterprise.data_residency_example_domain %}`): 1. In the sign-in dialog, click **Sign in to your .ghe account**. 1. Enter your enterprise or tenant name (provided by your administrator) and continue. 1. Complete the SAML authentication process as prompted. This will sign you in to your .ghe enterprise-managed account. From b4f58fbdffd2d9de61199e3fddcda4c453aa3303 Mon Sep 17 00:00:00 2001 From: docs-bot <77750099+docs-bot@users.noreply.github.com> Date: Tue, 21 Apr 2026 02:42:18 -0700 Subject: [PATCH 05/10] Delete orphaned files (2026-04-20-16-43) (#60852) --- .../open-agent-session-in-copilot-cli.png | Bin 171917 -> 0 bytes data/reusables/copilot/trial-period.md | 1 - 2 files changed, 1 deletion(-) delete mode 100644 assets/images/help/copilot/cloud-agent/open-agent-session-in-copilot-cli.png delete mode 100644 data/reusables/copilot/trial-period.md diff --git a/assets/images/help/copilot/cloud-agent/open-agent-session-in-copilot-cli.png b/assets/images/help/copilot/cloud-agent/open-agent-session-in-copilot-cli.png deleted file mode 100644 index 4feaa802831ecbebcabf961389c8264f4c6cdddc..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 171917 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
x^K^*}eCwS51vBGo*V+oA*tA)JFAjk-d8lz`0r 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

+ **15 April 2026** LSP servers greatly improve Copilot CLI's ability to work with your code. For example, when Copilot renames a symbol throughout a project it can do this more quickly and reliably if it has access to an LSP server for the language the code is written in.

E< zDUwUQvJ($KQ$^s~k>S|+$j68dtfO{IrRpgEqF!gAIyCwX0fHeO+%KmCKxaatxp<3c z}z*){S>J9$hQ_1A)*VZ5c657}h~Nh+;GLzdXJFmT6)sqHRT_wK(;G{_Sh4 zCk7IF*2#_INoC+9$xeNmM*)}JXq%JtelT~ZpGz)2m*ps|l&oyrwB-y+Y0A5iEhyk2 z_o^p4e@J6+5kV%Jg-;6vZ`?Zx5ji&%eV*m+9&`s@z�W$p| zU7|AWOVe34Byw!}^<_brNeg~Mk`KA<1DN`9f=Ll}O0)tXIT$+gg(vG(agj)Z!k!IZk5iE z%ho1^vY}!`gb8IeE_$qGiCW{)N57-f?w+;C9HOnBm{!mGqBP$oBwsL+QW(G9EUM^f zDsWw8V1yW(^m^<6=Ko7TOJ6`MJf3yHbp-S>GObUde?8$FO92fHgC}}5oBWCq* z!oI9(V%1rGSJSO97GGpsZLcDBCg~$K{+KkC($CX32+6QMX??0jH?mc{vrpO>#IAEK z?e6K#*%ekY_jf%zK51kG8Ae7JHr7?0&?5?MyUFcd>1lW9!zdBJoi0vD!QodaMlJ*u_cnC0g7GNBpneq z!#+;0hS*Wwnx1=xx=_d9mC@dVH0#uzKG&k~jqps>zgLaR`SQI7Ss8h>Wmp?=#$f!( z1JO7Hd)01v(P{1H7ABv%;grbS8xdARzJ;K)@2r>uw3M8dlPo;~H1xNJo%Si4E|EAV zNeq!|wUUvLxhx`l{uHls$pfZn36CT+ZRe{^RpWSK{GvsO0{D?-y?P$WD{L`LV{xD@p%R=ay2!pM6gTEcb%YDD>-u6 zuiRzZ(?@y32e1=o*S`~S(h8=mk+4JWQuO&q`hdZd(d#p-_))~bH9R`{D{f`l)1jYY z6UMsc-Xyh34`(2PO3`N3e5f#@X~5Dg+#8dXXHE0T$_#in)$aUQc1})xsAAY0oEth0 z{odw=ZXqYL4?E0pUyqCit&Vzlxhfr19fLSOjjI`l2C{!2#k=#l%^Kq!rg^A}fw&au z4&wcxsJGw_Z^rCv-6?LR{!|{bRx5E+&Es6042C|Iwy=cq@rwdYu;q;n;!He6Lq6#; z=|B11U(p-PKWLRcJhX41{%y`IM%y!^<*c=0m9N3Rvj~4Giz`Iec{+bDu*n={@$(td zd7scr@sIA#Hx3spD>|RVeC^)S4Be3|Nacs(uHj3EB`jgLkl;$2m9TV?Okzn)*t|~r zn$B03IGAm|E)IdqSSQ1=rUfXXX0tftsP~A9+1*#$A7CSr<}31Np%Ys>5XDSfr}LRU z1Rc@ah zX`Px!-uv=hB>IGN-R2&l45$jQJEnw|d`W=XW8hHdI(lPTM^4m#MsWY(phy|^xl0;}1mgEk>of}u^SeXqG5g9Yb8mSe! z&veb5QMal1T8d7Kli#R<?aUjC}d*6sc0$=T`+W_ z>=iNEgwxbEBfYShf*-9{~nd6^X`2w||+?pY(@cpXBH#<5skF}&o>|ABkQ-@qs!{2lRHJ#Pa zcq?k1Dq>=e3NvJ0_D#FmgiZ_ohA90TP6U4`gfyTuLc|E#>#j^NIiX%>PhFXg!1|p_ zEb+-ayL45g_zkZLL;|KCE4RV76Sd0(qpJ#9Qu5!<1#%*OBqQ$t$d2e$Y9<52aRIV{ zRrYNGD7Xp6fX0c&T^^y)>-ol=GbnQdI+?0ZldMd!AXfDY{;*1C~w6x4FL`qBN=^0a5e;p zr5wzfSpGc|tP*Rx1(wW-(%HEARB6g>&sQMi_o&%yvp<=-# z&N37Mjm?60k2;OdDIJqp`eGIO?X?%ROfBC|IJxax?35lc||em0)DMokB-g| zD16RO+!4{e`xu4@N~W*pSzwdIzerppL2VAqw&<%=45`+ zn68j`F6v>6AM*muGe(_ZfB@*Wjm7Bw0wB z9yWkEK^uOTD35}7#h=OsxaPU&s#Jt_ctKKS5QdBzu01$1-go6|?f&TdiaQBO`jBY^ z{SbK{H-NoZh5}87Re`Cba!z3(x{_ujpxoiKAXI0@Ab{5Sk8c+L<}UmT(d_sAabo+Z zWd$fHz3s`Mh%R&4-9uhad~(BDOPLKdIDUh+n+x{5^&Knu>42@~-@Yy5uv%S7AFl#z zWyP5`U+k@!An1F}U}8WfD`OjI{?FwrBX6rO{GkeJ3;1RaP2P)DwoN1H&;a$7X{6U99nN=28ba85I^j3nO|{do=>UOsh<>^WN8 z3J=o&t(DlF(B49gkDkhl)PF;w*RD;xWTv*e+?N>Pt=V>X;rn%AWHzGP2!o(W% zB9pBLKK}|IxtWaf66E}nx_9}o&JU@DwY=ZD{)avKpU~j1A&idsoPlD4Goy*v&X+BK z5QvNmORpj=`dHLSe*}b1-^gRygK7Ld_Xa{}V(C zrk2VfL0$Q(cwp>11j=!4GtwK4EgN)CI;eCBXD`>8mt2SY~GZBzRm2; zq_DcTel%#L5&!;{k$ZJV1Lv*|o8r-AIK7Un^IZUCsQwn#@y^mZ7SrAmZS9#RjyA2V zTObGTde{wThPMiUlHr})7vIlYOWZ+klsnC|JYz#%rZ|R)#Aj8^)65_vbDF3>vLkVo z^0FxGPphaKXJe++C!T4rMjrIH zV=dDDytnx1(mt*TcF~yBz{?zRu?DUX%V@?cB34ev%}?T5vLVTByVS6|3t|+a3`C47 zhZcS8Uc1xX9CE68 zUsh$+TaiVPVB)g&LCV)Sf^(gg8neW@!>(Y!fbvohJ7*~1;@wB#oELc9?GgI>FuD-625G1PIRH z?(Y6hHoN=m`^nF_=9+u%?yjotKBwwbOtYL$la&%Yf-Pph6DUQNk&O$N`$x<$=vry0 zFp27bdCA2#QZ`nedECd)1y#9X{l4yDcQ}#}6Z9VLe98TEA=&OO2DjfEyMIXD#8m|$ zpw`jlnF#i@ArFz>O32Xzl`s<1SPOm@ti5oW$|&X(BP!5ZIRv%mu+!=|=Hla_OZMS| zTL0)+%6zy;cHeujh8ZR-yl`zKfd95%EY`=j%MI?Cfjwbb=j>{RWHg03W^mnc&Tjtw z)Tc3}z?AP?cPSzqFj6tY&dE=_R-4#FIN5^on~gON=PV0vnsc3rbtRj3300|A8W;5} zXZP*@OLzazw82H7p2W&tENAcCKBlng4ftGl>bhT>O;)?30$O54u|75jf6jYD0P{{= zZ_9}%$qB?48UoI|*Ye+yJ)ErVjC!!BAhh-j_cP4E8#18`lcyIN=rp~PrpGzrO%np>di>ugF(O?16)KeY9EorR<(uEf9 z*YEU_sX>v&1`atkNq&(a))o#A&f-Bym9*Gi4 znp*js%oG)}>XGaslUmac?xO3_C#Ajz*Xi}9PseW;S}e=O*711}YMZzs?b)nBLgK^M zXq$YyCa7ZLrD$8Y#y`-Ei_;kUyv%b)K2*QHf%{saKH8eWXPbo3h53W&WR*_uSHcg; zPuBmQS^gXPG3g;K4@8J#7N^cPJT)WnyYNHV+7>-tPx~!tTP(X1URD-8UyrS`yOJDV zi}RIIT1yNRQh9t)B3W%D_x2#0OVmG4ij!ec9*E=|%y+Rb*%nSB=gJf+?oXC>{>W;V z%FA~j!iM8j%v6-hg%c48-s)(oWXoV#mO$f}*XFRUU@XK!vlz zm1E+U4c@5DurCKFzpVMaFC+Sv5+nktx^!_gc%Sp78oIx?fzQU0-%1trs|Xrr^V&mH zSlkdZ`de|au;4lbdKjtV_@q!{kjCW~3Lv97|BGJ?w1+cY-2oOGu# z1fpUJMq7mw6H=EsXCsi6>n2fn%FeT{<*$bLi~P-45fePFH=|@Y#MSGmaGtXfH}eY2 zp93*zxVw=uU9}w<2d~wTj5E#WooHO`>uTQix^}wn*x3AkyDI{?!;1ZorwcizPnlX} zRDP@IP6pExCZ$^sL{f$iTkv71h~zkNCcAE}eYG8ra@b>HSbo@jFJU<5ZDLf-Fa}zP zh$!6yABDpD(7ur42CfKTvB9Q_yE9|E)zg4jzG{WPttf=VF4@;%kNK!pLQ@TSH@`-d z`fIhsuS$jSDh&U%HyCq+d9q|&Taavl-8wx(Em+?Z0-UxBcy3l(g!SZJP9d{NZ6wbJ zR0!8+)kx#?rss~ioOVLUa`naq6++SN-Ejt2n$%cBxT&oCSe=+)C2{+VSP9(a@zxVc|6EQ^O51EU4jJK$Xs^2w~!yF;aiy z==RFs#>*Ywo{K)gGP_=I76V*vX(n$|@ZnJjLKUr3p8qW)k@C(EQRK(kTCJ~Pv_21M zh;;`G&pudJ9t>PROAGLonQ@IKzR@D_7_T#*Npo$Dt?%qd735dHhVnOXL1%`_n-tCq zipT!`^oKSyz>|3lD}vw>iOx@aqY`;70!Vdmm0q7DF3E$%=QKfkW6tX&F^yvI%_-|}{#{}?2H|-DeFQM+M;uuM;>d#CZ{&Ki zXWUHD6dC2FjSV6hUbMD6O};^{;IgDF?|h2Wmm0CsvCkdfm#vM6c!7EK4y)ohbOx_d z+<@w#mzZzdTU?%qzzR{V`g+0fCHFDr3~vL-v|B>Yn8Agy%dE=-RUOwPmAx!x z@2oJI@VP4Z_@*p@=9Vn+cY7bqr0Pie#}q$1W<}?vyXWUf!4|o1-uY$*y9+*o^#J}G z%l>>25~lh+RYt#Zr>iyG0eK2Z=dW_&d)h&aCXAKf_A)Z%;O;DuTuWn?NH86iLs$o& z^PMB3t1^m-JLmR+>sctwVc(UG^4<$eqK1YaR^vrY{7Axk$R2}Pzyitd;@YfA^pFXW z#i?26Hy_8jY9npF5s{@UwT`>ro0YVi+?C7xoJI@eU0nEYI`4l%FZiIH7L@3?Y^f&# z`@;;5+hk~sQ}BtFPNQ0d`WI||w@_7?1Z@y=0!z6%3Jg@;Vp63hgW&5+Y=st1X$%jK z*THNlgNDABl2zXA(FvWwZSeJB%cve7WLh3ri^3MNqU10(!}d#ZRb1tJu{_UrWb&-x zB#3Gs%ypqNim0&72})hrApdh~`eS2(&Iv+fEuFgm7mM#%J!!L8t1{sCoF8fDlBx9G zIHnHeSljZY!p&COO2j9umz%q=E{%!m!5o(`lY5g|KJogHll)aH=ty#fEfQu)ax=_z zyNRG`%#D4tA|^R|_V=YmyvgV1%uc2#y*P20eQy#jHw3qpRVcSn=F53A zSn#42zt&}teKLt*RPMvv^f!XXO}z&9DNDzT$@#bL%AQ$JIyLQoVEPPlh<8i!=sC7_ z;KYa~xQxg(w*e8E&he-XoN}BC4zmZFR95?VdYxA7P_`Yf^k&1_mko!f7FigMWnzOh zT8g8DApCc2IJ8K&_$}g%G_*XW2Y1HbUa=pi!Xnu>HoJ+{jT3> z6(?PVv&*8M2J1BLFV$v(?`9(Fr5NBg@LBq35XIFmC~{V<7*o%ER1wx4XtvgHWm$uqWpoOPPg%Q zd1}GM=0Derj7{hm0Cjmgs2+I39n&wr`hQ1`j7#W?%C(&zNSW3h%tqed*AONTl5$_*tl+Ur9E9Z`T$@2D+AjKSac6ee zf@8#g{~#v^ZRj>Aol`2(Qathl6lXdXzk_p)|KFwmobX4&zcPoS(;L@Nrm$`|scV z)?}!U77Bc~G}Z)PbNMI#Iq*qz4VPA1A%jO{KrV$`r^!xKe!}E^-GTbjUWpr-q($=> z(e?_j-Gs180G)QhXTpzMfN+d=jcqsBs-u1{GtB_9^&IST$1xNwiS=1V3ORzgWL~>2 zb(v(^?TR|@e~5;E20q3DPJz!fduLVrw@*?ltewSEu$X~t7VtaeQV1HP*2znGWnEju zr$6fL@Z~&$q|Fsk7H6sn7zq@Q!i_VgVni!=6H*Fb0(XAsWR$DbXXXiKZ92ppdS*xY zI9ELBHCUh*SPuz?hHw>aZBg)0jfPT7WjgA*9nD8rPZ&HsKl2xVm>R_Vf(q`Lc&JGF zl=P!vwY0*aid8*WP)RoAO{e{;U#TWDmqEDpS6A|^WX$pV42P^iYM$<(wv}gm2eGH8 zr;FZ-|B z`xkGGk7ubya}1l+v`|oRFzeCb?`%nMra0yEgZ}&Kjw_$AYjfjo%o&5Q`2s*xNniTD zEMJ+o25$SQxDs95RN|HXubJ;}1ee{jbic zFUB58M&8BplZ#fh@>HW(5B`(E?;sDB3OdfnaO1W7vmjjP5D3=PhfR4i7sN}Zpd^Hf2>_5D<^Jz2U3I(!iB?dwy5;HMuCYjRuGUU-XseYW0L zXMVb(`ptH+>A247+Uj##;ADl?l*=5ho_4$Y=`Uttg;rvD*B%%D=ch}1mQP2?EaoS= zKP~rkyXlp&P?U~t7VYBc-WrsVr#g3lbq^NatlKa_*QTACPefMcAM9emMsx-4EXiKD|d>a*yTXJi;4S~chWm0z_Vi0`sp9v*hX_TdI-OBq?0G2$} z%x-329DCN4<%;Xv#V2wE7m&n1d;GMRYD-KAFR}k0_4af@!3 z5SfPES6@rk?e*H-;=v`W$s3fBvZm7#sVrt?A2T`h>^kn@?T3 zKJiphXZfkmRx4CF>G%3Ehv-)39_0ZjydXTcrbiq(rmN2?hth($=8o5waHqv%_u(<#(*mHB+;TFuO7^(GY7x(Fm0sHhNME(GRdXH> zs?PS_*bCocuRvjM7&0EYhOT2NkL0?uEMz@e z|MoOkJfZtmAO{%v+P34hzfxI#)ON_Ib7UEQ!m7&}7lDlg@u!I>glNtS-29N1e+7N< zKhq*d|l!Jrl_mUqGtXPYMvFLBB(A}@H~LPd>Lq7N2? zM=eFzUmfGqyUS;bMg-iywe9ZI^}bHLSgcsMcwB0|nBPFGB~ml-l3f-q?UmE|Uj!-ft}+Cyi-_VRzi%Jy-`tvE3MNe}D4b_3gx^Z&`8K_UWEv@mOXbU?3%8QnI17(dXW&(O)vL_4}9PA({CNT8KbttHh>JzYtne z?hBMKT64J&>~q~Vn^X|QAtF4re~!x(Sev3ir8owpkSxLS2_2M=V0pUISzr>50)%Sp zUZ~%d^76v3+7*(L+%AvYAt?zK!zwJKQpiGJAH&>_akiUliY}KQ*0*A~B*cD`ZZ@hR zLexZ8u-zuRJC+%AZ?%~Fu=Yi9?#K8l>0=OA`}1tNYS5%X7+0plQ>{Z(jXYRP7TyOrB({30c#u9|NUbkumiSZOPWdV6kP@Ap+z z*B``!6fdq{YSzNh-^PBlbbY$mtgV)iwAs0_yekVpzPtU-KW4q}KURhn^?8k(S@2Z4 z8`JpHry@ePJu*-;>#JXt073K9BTDMo($vffR)hJVdH7r{=9uoC&CTH=!L7oTb;=j- zAaM1#D);F^e!I)J>l3hVik(^sZ1J~&cY|Zz!pohX*H*AxMnv;WH8x$I0TvRe1qwoaZlT9?~5$Ltdi9ufNFYCnc-@I4TQ)zeX z8j!|T0`1gNX92xmyt^^@0c(5c&PVgiP83H*u3t0@rl`O&x=#cgoBFCWL>ONZn(%o{ zHA*V==^sy6XXk>NAMbGtMwVait9@9_%2adsjT7FIn*vlP8M$6{@wlDD8d>7eRdYMe z^8AM)6X~`$zKm&X1OsHGEh8{u!4aNIDnpI*ry&{QZsIbJY$l^FQoFvYwM!sS)BNe# zhWqf;d}P^u30ndaQWLMiesQW%)hdFrM#3Y%FBJ5(LK5TV&;2?3M=Gm^ z--~AvXv^7CW5cibYO(#)H{ce@w$f8MI{yY2T=a#HLcr5+HgilKx5l~Z)ZTHvvpCcZ zF)mUefa)W_)ONI4cUbb=4ebtY_qWM&%q}BjDg%<=T>5&LB&jauA_^h^wovyp9;)vXFF>P!a1n{E- zk1XOG`Be*V_%k*y-|0`jU|iD20gJP}A_Y$U>R2=bkN@=%9dt;E7F%(g(Kf5!8({!h zjVJnNm{L}|BYhcp{-^#+83FFe=z}8fBMvcn?tR>0XwMl!ql>L!8E|FZ0wM-ernT(` z@C#$y#pPIOQuvqoVU?ocWKF5l#$72q7LN~r{#jw)Gs?zF@#@^$6=(MeMZsYXP?Y!1 z0(_g)ihZ}^BsPW!fVwM{Mf@dD{H~h}qET=|@9w0XWUE(}F%c`S3gkQgVZnKvpHxW$ zCEegFxUi0D_%_bQ>m+s1D8v_ccBkNTSvXiZTCS@7g({czjm*(6F2UL&(?wBK!6H*) z_`%Is-nUylZgINW^dvra@qF+bR>%bjCmoyWdL8wjFepoDN`Y{7jM_OaY6z3kpxWs3 zP1LY0O?OYi0zmZsDW_dU6mchK!Jx5KVn0~68@HAJ(vA{tf1#dW8U}BkQ$|DS!fu7+ za$U_W)dg8s5Ccs`Nap5nPQh)#)BGn1V%}iASyI7d)S~dlZp@hG-k}oUF zoYUP&&j&QA492j6B`ghniiT%5a=^s<(EAryl5cMFNUgXbBlVrDoR){~|;d#8!#C6HY$V^(}r4oaiqx(hz$~MsyBHHPyyCi@)Wxgw|=A{L@zmLq> zfmfZ^P3;cj&B$dxBxV;=HYtQVx^6(}wBHBJgET)({DRIdbzgl{bOSlU;<2WkrmJ79 zOOlL6o%$zyVQl^Qa(co$T||62H2?yS44LItbisRE$?0x=Q@Dm|cre?CHrwX{@1PB1 zH-q*uisKM;0WZWFxR+_(FDKrH$-)=?saEs&PPzXGeH7M0QBNqG=MGXeC3eG4|SF2Pgg*=^!IN!T7$H;fm2 z+dpU9CPXb!oZ*9ky{kdPe6y2&`u^J%oa`K@9SxD>qG4#Lcny(TYQ|IYyI_o9aP(+= zTIIhjBkClmYJUs#gDt;8KHgQTJF0MIjB{V{MU8>EnQ+QjpXO9GVifav|E+Jeyt*?t zWRWzS z>|#@8IlC}wgDN%OW?>b=p*S{;J#DI1AC|438iU*4+k+B@O2Ge``{U~$C=K)e+^6TIKs99P9SPfD*2KcJc^+1%R8 zkBO6IY}XZdzH)AaxZUeR-E)>A6nNdBOC)dK53@E44`5pegguHi-=pF~JRLR9_SdIa zzhNNMR|H0v6(ql2Ds!Vw`kbVxJi9JGTwlOT>6azN2yPkTG4lb)T5T4b;?A3cKI%hU z-%OFVdc}B6Z1cNt!F@+$>QW`LT5{a=4|(2x9`8AnyfzSce1%%^j>a$Tw-%U|g*`s2 zSn{0nSA}#+)^h_cyCb5HpinI0|9cR^fEe>MHd*>nY{WpfF0nWsai^j^CUd~+YNaWf zwD`ND@o&SQPePkF|M5Pi>*7haTACzIEx~5A7qX4J&q^v@Rb9R0z?6-pQowd9Y*L;V z1!z(eK)o=~(-s4L?|ABqS~hZ!(b^p>L;y*R^qn?TG#u@Uhuf!l!nhr|V9BoY{w>;@ z>~HGxB3kf|x`3rm=%%BvLjtK5zkWh}K)3+@1^ zEpJ}0>c_XhLVQXXXW%|mL8j9Y-!2k>`C@X6*oT0e7=Z(a#81Xys`NX9;Ct_G*0cL{ z)jc}EXAgpfj*d>VtJPgfEGA5BvU#do#pz1{(Qvqd`A_BQd;np#uOB1;sd!{P+%trr z@R?S)3^}xbj55^<5%5iy)Dj(U9$U?FoNseFhllb~sWA5Dw1jq~YZ`kGF2wY6fKLGf zgCN<6Q@MI&Qbcv9K0{VNDG}wwj+QOi{3-rUrH%deh?>)7rF#j!({;V+I5e~z5JSGP zaVCxpB;Ed0C)+#C?s=NwKBgt3ET4W;33_i$+Z*k>$ttp>4yp2XL*RU7PEF>tPL@fT zsW>e_Fu|hpKJ0L-=M+`L+Z?Q2^K17r?eKR>hpnK)AG^~q7#Hr#=k~3~N$G4qzqd1F zdx9o-AD0k?n<{~a)z8UgP7?a|8zdc{&~Y{q(Kcm;=%?P2P%367Ys=s((_YG;d6+*P z+jQ<)C^!`pxx4%=wFNbk7ENakmycuJ(^V6+-B~pIuaJeqM%aCN*v{`TM}o zidGV^4}|`4PZ9Rb%T*GdQ|6J{xEl8pPLxwQj$P95KjsxztC(2uU?CYN`BSb5{R9(t zcy}W?OPPSc!lcxs7-h1}wS`R$a)=ycnP-YknSpD;=09uyK_u2~R}>gVn~s)(@V3ky z2+)RPmyl^fhAtJ|uPQ5(S-_%oVgnK5HHG_D^5zonLmsCyJH)?GsvcU5M*=lDmp$}w z7Y6vYx6OXbInbhuO7oU=iieTa=!i2~VFRwEBy41Qqj!a*yJa$7nE(q8c5H@%t_RI^ z&pClkm{RgGNEos*Tk&jpmr%xBhC;7HDy428E!lCN9$#9bqL3&@bTbxNvI2o08)3?v zii(O3T&Y&Ns2XuIRTZ5g%5pN;fzSo@C?J@Ez$Xw~vxRTW5u%!*=T8ZwRlNvm&@Lik zOOxtxCIVy>3S=62je%v$pnCxN>rh-`X5m3P09=@6!k8fy1&<*X?@8eGV>f)9^%N@1 z^Ah_#y7-glEAZ@Q(?C}@WEUEv>~OaHD{2|#?eUcC!_@(0_X`iA*!2v{%No=*_Yt@t zSJ8@H**EEU!U%#AnYu@xNG%%-Dp|xe6pQOg-BqXhXJ4NYo0BZ|jp?z46Sj+x$0^(T zWYdSTWn?>i2`uP|`{twGm(0ZH4t%!ndXAZhfXXJLb{ypR&wUFc5Fy2c0Y)JyBWHDi zV5tGaF2PPVm?rEA1K%U`88`tu{Z_*Q<{!KvFeyj~X<$6J{iI=7zS(3Dg;q<SL7^rm zG~_i;gyHfRFW0%}zF-I6Y;3*@Y1$;mSxk7V{Wd57S|L2ydRVp^crK+a1 zFW}`lH*&$iBE;|cfiMo)di#>8TX~ol14xmZ^{^Q$NVhLBGlA#uStvH``Qdtbuj&GH z=4C1#pFoj1($Lm5uG|};FXx#Zhr87ng4JQTx>tL7F8NY?3v=qPR+)8{$0JV~UtgO` z2rUa1LN&ZSTouOZw{XpJ|MtD?fsmmx*AajSi?W1Ao0U2fNfr3HXix#ez}YXmyx&*_ zO(;Pk-&bgMrtpj8$4h;qq40vm#u|emYqXn=zzmrlcKSdz;u&r{P_sR1H&^5CSb+m6t_Uv0%Qitk+3Mq(=<|rYtC|-AgJ|ZjA#M#S(5$m2WT^~V zB|w-0%C_;BD8o#VW&KZ>6%{=m$=lCA+!Yi&rp;_!dWDqhXwKYh|FpgTy-8TWK^9`E z(WcB&vA=cB4okSYpj{8ERi8X_v~@)3A~w-C3(@HdY{2;Yq_p@JQa+MGxv`99e5~=; z1kdBm$uYW}B7{!2Kr?uYH^ox>K!g5H+UFkU{6#?QMwW7@W^Xs|wt`h5Inxa!OzEJD z2X22UGt>{Qb`B)H?-zHrlegEoonhPu@?Gq`n}i*Bj^(-d zY={o@PY9q1)~3&-5kowpqg*Uu)XBD%q9-5c)$Y8GwuWN=#&7iX0IZ9mro6@J;ah+i zw@XSYeGKY+8PK7HPeH^8GBwjE0lB?#oKz(P-HUxGFXi_t1e8i!_FdPk&*X}h*aO%U z_|{ttmCF1Dz_1oq3_3=y9Jdw|iG0a@16!7$QWl3%fYcw* zv`y@LCw%>Z#}(v~dUefN_EuJ*9<0JzkKsYx6Bve=Xc3IUc{5PYVRoSENx*?Bc~tAo z9-*AvUBp0XfXAm$Hsg%mzVyUL`Qs_eZef?Ne-2P8t7C_h-~vFm|MpLWp4Wv-5NfN$ z6?J?I{aEg=UDmE4)54ryZm6e}=rUsQQO%X}6ZgOF%YYAo+;&=GylxE`(v92Z+SH8;*icx_t5-fMDpS3YaqqS2OiTNz`(=w`h=MJ3Gful-xpFB& z?6|7EPyNy4@$6I;QV)J&a`W$(+r{~$GBgn2FwpCFh(&y@(tCi37~os2qK!*8!rdCG37vSV(98&Y(h zp!uy%>~Qx9u6YjUEdG2|C5A{2tlN2$ke4yRQ=56=N8wJyuK^U_WUHHenwc@Nu!dK2 zM7;I|8UF&Ic#K+}W7@AhP1~=LJ0$liU5He5Wg}(#70PN+Wb&20Vwx7}>g$4MF7V^m zblY57k2;)NLO#^yni34FY{+fQ1^t1?z;}Ocv^C9!t|1j_xo`;!6OlLvS%s+hf)HA* zOan@yNis$p-<5?Fj*6&%e*jKVf^@P>CW0O2R4E?KSLlATU)g5*>A+uGwR=%gprpj)a$)V!R){T8d|Ui{!R#V0n369b{pcw&yy70+LxqWDt@Nx6FE{G|66AZz;( zFq)F{_Q$i8dBT#{{kBG7Nr5H`&zgeOysyyfvFfBH7#Y3*!|S8N)Y+J`FCjPvNv|un z0a5s^;Y%LR?83@Xh{xdIfey5^bb7EX9%`^JE{|MdCtZHIUGps?mdpb-b%O7SqH2Qt zdp&|QWV`rl8!w3w)n#N4V5!`ms;pviDV89y`3!DnHP8kg7>Ewnt34 z`mEh8eH|h4fXd9NZ^`lV*_6TuziyQY6B_A(_caypM) zwEPvO!;!^_tE#gdnMvF4kytIC%6sAT%B+D~TfW%frb*{?NOmyh!*Vk1W$T zWm?@Y1B;~3#%A4)k9+(QO!-$2ZOd-YLAU6OMMP|6K)=^M1sR{O0WKi~%xjH#ZAV%T zZawDLmCY-OI%_3)lCi`O`i{@rNf@pkuEW|TJr7WsL40@Jl4d6){zIH!i-%H}y&u1B z7bY7hH6ENSw|#3bm*i?kiim(`SuadB!_0yKeQ*hs*ATeBQu!W+(W!%he*9pe^M{oP zObQgD>H1X(DL9LNP#}H&>l3Q$CK_M~<3m=nxVWryxv8yiVguCvr+=fEg&nk%$jp1; zklfGv>9h`kK6iJ5G`Z)G9rvW>GUdJjd6DmMI*_jRK93y=;I!%zUg(Y(S^xNMP5$yh zM`PaVVX7;CJ)T9ktZ%#2S~h4K!Q&<01t$YhL#Hn&G#zDy;cTukmuI-TK=73c;O7DM{>^Quf0aiKzfb-zhc2rPt94D%vei z-*21UlK?=1bL%g#A3{nd9?>eF$pg<%sqZ+$el~EYAuX$rNMa~^90*ISED8Aw`{o$b zIAi@VT%3)F+@rGbson26(Z|6zrm1lA4KUw8?m?R}&u!k%n_pwcc9}Fk6 zX2?d+!BCO^gSOra7ieUIU&cN^;SFGTp3ghGQfic< zED-Fj4dqyD9}q}xl<^i^`n_!9v|g{e4{@Jqj<&s~a4HacoEdSwNk!hTMGM@nP98r+ ze5bFBHP(m1D+cOCA)OKM>}J$!L$YcZ9E}Ms<5fGGTffno>wvl3u5@2f3(AZky|}nA zJvsFsa*^VH3GgbF@xeSXD~o9pLV9uC7TjLCWCXtQKYgx%koI_!WgtU1sWs$0-bo6E z6#`|%h(BA8_qc!K-qrhjc|wb`(Yk2A)OCgpk~rZqlU6nuFl*v{5?lEqnXUUGw#3LH$7S|iWmXqGZ2a=i1nryk<&PC$ldC|fMm)=Q9A zT>eU%6mw^slq>pnbVfsuG1-{xWu$+O)c2wlD5)x&KRw~Lc%57>gmD!R==OHwV)tuI z_;Ypk_6+BWvTLKcFy@DePk4s{4<&uVOGFg_LY$W)CY=2jw|%L#2kYvj?rdLy0$&03 zjm=)fF_^B*Es%9p&~v%kK}vwKY(iwd948OW-fZO;AkZ)NE1(C3_sY=o>AYBIq?6Xb zhg(`&1>}|Awn*$?dUigT9o9JhLj2Y#zRVL5n{oP*`uuEP@-*CN#3w$m-*9(~sL(Z3apV5vtu)}3-B_WMBKW1^St80!1xLtPUoW`(EWD+J^aXx*%m}VU>O=F*do!j?SuQHuT z)X=92ZX(%>JV^50?cC`u;=A>|#iIi=+eu|G2A(sGUax#NL&08pG)nl#9euPYglEK` zo?kA>BAoXraYkTpo}q~CyOUDmp7JtlgMvi(yrmDYoF_TI_I)6q4Gj&A+aN&U^>Y3h z@AHoqz%l9YeOKHMIY^qJ$HbfAFeGAnFnJEy*oTQu^+Kqv?WY1r(3do6$^Lo#)&Sw^jwj{Tql@w@Z3D!M zqwZJtWKcqWbSty>Y32Ac5+5Qf(^ELli^ofl@>#2pcJIN2q70c}HmG zfDO8d0UAN3+>{%xIjR76cnJ=X)p3rD%VOjFTh@5bx;KK{E}0CaeB%18GMBZFizs`?-euwu$km52l3<*M*}<#f5Y83~_F zQ4?pCA6^lw=rUSI7~C+)k^SiUSImmOcg!R?4C$hUbu7>gklE&ToYyq-*>RD>c3smD zbAu@u)0|{Zta5RCG`YMU3B*!B>uk+OeU&ELIFc(GHnbj2LjKxzfPm+JCM*p9(Lc1q zy+mfjoDY?@Afd#}Ky&U+6a|=07A-Mjjq^UV?R1`b5@B2bo-V0aRSTT!usuY9^7T+i z{wtrW5yVM6d-+_MoWx2x<5^on@3WY6hY#8>sHVeWWy^}#x!4$fi_v&f;%sz~*XH%6 zB=m~H&|CIh5WYfTFvzOPeR(z2@LEL#T#EhHWmF!e4%YvhqlIt71-8DAG3VC_ zLm@)yc*S#*)6)V2+wpJ?S#iy|XtzG}0}u)^A-5GPar14cpY$c$R8y!Mu*)qVSs-X)}n5_n7MhpH4ZLfsmKh(a6jmN}hCSLdbk+jdjXSAFA=^ zAqohlKmHHY@`EN1Ly?P&x{P5CbHIg1Vt?UVLVYD8c=22)PY^Qxh-cdB%!w&I=vGOI zr%avBN)Ns7Jl7dp61l)E8Iw#gNP-67NMbOcnOnUfp$A@?J_SAwpAQl?Nw>*JzPZAb zPS@9~t+9&^^>ltK1ErJ}g~4&H=P;3P<>ZtnbHL`h`W{d6A}l0nl|#q&I1Wx${$pVL z?Zc`q-;Ipy0v(4`OcRe` zfm~^Bayg|>QurdZG()Xe7M&H$DwJh=&~wWjVeJPugfy=Zb<~GY^7XWKPBYQM=jqog z%<*?6?WF#VojrF`l4FlU;Q*4fBzgnnh;gLdzj3Wr2iMK0#XMQgzKR@;YD8OD5%zU>#n#yD z=72V}vrOip?;T%szt-Pu#0O|?9!Ld&$2t&6K4`BiUlL}RV?)HXk66+C31a1zO5s)h z2Cu!i!JdH8XqNEq7ju9!$^_xH=ki^W`R0hU5e=+5X6p(Z|5^ZRvI_V9#`)_+~O+?vyqp_&^lr%^_kNwov zqU^3N?G+%T%@IcYA8#mb2#O*x8ntFtE!qgRvS?m$?Jm>c;o~YbK&^{Dh%V2qyME9i z85*W0ENsfrCH_O=OiZHZ;By_f+*4-h@KCwE{QbCe9Eiz_Q71aHb)FQifF8X24{5rK z^Js|erLz9y@dcO>l~6>gRV}^_@_B7 zPro!pmQdm085^#C97lKC?Mi*9By^n*lxPtTG93i};e;`I4r`?Enp!GG2y)_zb#2Z< z1ScY7)|O7as%;{eYwA%C6QcQe%{W>Lq)Y)d2L*?8*_r@KC5kGHs5PwFwH(rFh*V{E zD=UF8XyuEFw3B$+xL4DL|GT$I!x7eGoA+nlBp3$d&Z-p0KL;*eYfx-8ergc=>oTZ~ z2C2&JyHOjiJ%P7a`Zv90Qwq2C*s_J~Nm~H3)>a|`LM)2=YHc=*@5bS(F79NjIEbrN zpDXk7=Dev&5rFuX8Pp>NJ@fILdG%l1V*&stmK=~Dce~TvJz1>bzCQl%SB7vl3veaS zI{d{bD@!J$0wjl-zh{pKvd}@atx4!ASw|Np=;u2&YbdqJqNZ3K>h*!Cyc60P=_%nZ zhH&)O85lL74t*W8u{$1G>uA7NrZyQf$xWdic30|j6z%fA$&nlyv>f;Tp_~_SU-)l& zekteM?&nJqFYmdE_N9U^nUS&P)zuc}GNn3>=l{X#EEeE;KEhC;Bq*=z1_mA~KA*oi zXJ)?JJbpV@!Wc`nh8nxP6!Q2jAXwgyYm0T5vr?ut&BA!+{j%>RZggi5^pG8)6+AX>>;a z+{|s!1JjObLcbp#C9)cjqu~?j5-&R~!M(&qdo~gdV6xcF$M)H9!gtSNo`?A={p$n2 z%`eVEC(D4c&~P#GgE=X@ge7~T-PC=EWD$C)CWs8R#`GH>1e_ANP)n`|$=9N5=nFAB zE7>nUtbf}fI6-C2vMCA`Sr23@wJH)+bzd(H{!mis@IYFsU<3h zGKXPI|0gT52aOam1KVN!qg=T<1g|8Z*VuJ6osH||<0d35`#ZY|HnxS5Xw`CtXy3ow zO9usVdj8{^+9b#uI%JYl6%3JaPv_e@rI7SP%vDKM*21lH91gufy)RAdf77la=!!e^ zBP}`S#KQyCQ!zFwkSN7@!*`qLcI0N;%)oTixuu^^Fjk1-zuL_HaBjcdSP5-SJAoq^ zqt?SNl%Y|Ezc;#$e&wm}+#IlE3No&-c1~&GCXei0F3uG$1oFX7hjD^LJPlgv=m0 z(~zgblsa=Z|FP@AUR1i~Lpt`oozKn=18@Aw;#)S8cH4Kn-^8;JwA8E4zp*@x5JF)& zNM$J+`7Y9i1jvakMrZ%eSZuz+*&JbhOE2wt4yv_S+mHiNT~hmLYs%-GXe{5#kw zp|2HiI&H}A^8G*7=0JBCR=lA#m}$Z7ul$YqEjZlureU(?w|{;708I!Pqk5?TY&|WW zz5B+^LDdB62hIFr#eZ=co^YxY>D-@?m>q-CPUkUqiH#e3XO`7DCBuzk#EWhpU zn#?d{an}83#cwMF#|0I*5UMJ>NJ2laI9C;%6|?Pat4jvHnV5e7a_~%3lJ|H*?4q%I zGo${b6LF4C`kati|NFO$zXzu~q|^TAQNeK2<{~=Te0~>ll+B8XEkw5QDx9zCqpDCRXL9>|XXFn4L zB}Vkk9eR8$0zXe}!mJeLKTrDwr~0kZLRt$Cu*NJIAXAEHcd{092;yM#*Spqg13wlQ z(hpk1p4z|SnBd<;0z8Ndy9_vIg5n#kvVxKpQ`Xy&G|oR}{M(X#MhiJwrY49MvJqpP zrO-nYF@z>a5lr++U|9)0C(VGZO`9H^Z`KIzj!kX%`(1@DDb~6OCDTXS*!-DvGwjZ< zK`=5cN|Ti}CG+A7v;PD;@bBJ3il?9|jxdlxgy@K^5%vmZpPfpYBIB1ic#=>335$Wz z!aZ=!(Zb^+e{T({qB#!*>|z;eqq+>_33CRhx9>JK3o1H95D=nW%HO7o|Fw_*9w`HK zpwkbS$S<;##FvmVJ?(4RoD<%EPZtL#WG?6Q&Phb$zZS~{{XqdGo9hdJs=v>`5(}=G zytIN%#}0+|e>oQnFc6a#Y)ne}N@UV0ICr8BD~7u1B-o4K*$VvmIRM=*9o@$o^q2o7 zg$Oy2M}3W1+O7TKtix&GHdy;1DkC9<^gE>)I0zYVjA7W%+r z*I5@XOi16s%F6yb*nL-UdmZ~9nfbYjpf_~!JL7A!o`OWA<>b^M$7cR_B?YI5xS{8` zc+1;$$+QlBr}mgU$-pG-S8l}Im&r3)`DP(m;wZ84-P`#c&Uj^d6?ECJw!6V?cnN5? z4~W8f8VaUqL|{|uNs0)#O*)%JW9MJ|IdduT&aNR}MOhmGYL*i1kRj2y#f*`Oj*~rm zr%hS?&scPDA!9y#nXN3bBs}(UR!ts^xAY=Rxo05|+^CT3r-hPQA=CN z00C43-uf}=tKIFLld>e^x*Q+KNCR zuLy>^X=S*LZ^=s#WVSiC^X6L^1<)=<&3n;M;A0l^aMc@#@Yi!R*@#dSzyEFvTq2=><; zK_phd;c+`(3QN4Dp6~h{f@K54q%C2Zcs5DvXeV=VF>Kudv$qx*+nTYb1o7%ED?Nr%~}^Qw2WTj84`WPO`FQ>Jyn>a{goSe`Q1616iJ_X40j^u+K=^hW95wI?|!807(8U zdcEooNg4&Grs{mmn-rP!>+0*n-8inGiRn^`4m7aLk@{^~VifBaJ}&?NC*nYWP<>qk zyAwNe;dFdT6^*kC=c(~A#V=!x)g-qH$qUB6Xgle)hj1cIn3~u>L@{UUpMsqDz=NR2 z0e9AKBiVGmx26UgJ4UHp^I7T!yX7yicuN?x_x$S)F5ml%uS1=t?Q467W}3_ z1?cvs&r3Bki6A^| z`OCKltrLPi`rwQLqsoE*SujuxoY(9`$}+|KD9Je;uGbzg;rGc*wSpH4$Kn3d%074A znz6@1w2fd=2e&&)s-<@q8%{5U($ zRj=AwI}BZ3+W$?=4U_JS{nd#gbJYbwIfqp$3aU!A~a#!_vK((rJ!LTZn?ycsFfLyZg4*^ z0+(HB>hvhWc#epOvmmphVw!z~ZTvH+J+CQ&lwWg?7opYofA30;ToE4)GY3oHmL(dX zt*aX)UF@T5O{6MaL%oW%vxG`mg>dMatCOt=b?fMh0)=kh_x4dQYau{!^ZmK&@3qNr z+fMDo(0>$BGe6W*6*d;;1pI>uDr1*WJ2ylRvjx7nT806RdX-iw5&oJ`bdq@KNyO^^ zg|T(iXgh}3WUUYwu7gU@L%Agwh5(m0_`k`Lh}r31_PEeSMx6U(a{?gT5|Z{;Tj_x! zeKPyM&EYAaC?E3upA$|uqN^&WAyWP?8dwR2U6ADvI}48K>4W;jIbIZzr)3G=g9yfD z2|k5O+Si=WGZ$~t$BlWqzf9k;V$FOXAl*sc!j9Qt$aOj`@ixmBF=j%;3 z6@t;s&fQjbmQuMTgO4B%67WVM@p$EvKLT5$8oz>SStBcw|8t+`L6i1|+sOe`O|`Fa z#5I1t_Ksh;OzfN@46#nDP$@afxp)P1qHDtk{J|D=G)6|VuO5-BY9cs27L1j3(W%W* z%-mu=GloTT)bBhi^ibXI(bs#JvU~o&-B%3*9&LAr5C_Bx+K@gtp2`>TtDh(lfxXp^u2{FsQS)GpICDdw3D!rif(uzxxHG>UfXZ zd_NNRaZZU9Ho4B431l|~Q}(-&>u_4!40>FR_(lXNmLQTF_(mM3Fv9Kx^1NVVEgaWJ z{RlrFV$B-_|MOiI!oar4T{9H5)ft{qWo>L>rCTvmlPd6!*d&{06EpuWf&f_-f8gpB zWa&K5{f3bv;-L3u%K~!!c9^LatHi0+xQaxznTY4og91(@16SDz6Fu;Z%|#J8lAQ0H zzdSbSH}Cw4OTu>+D`F0nK{1VO4_BtM7Kmg6iQ^-YUjCk~yU~`QfB$QR3#x)u?UH-m zTd!Wgev1{G0EIo;RLc+%8Q{owR5NUiW;%$)mg!CNFnl3Y8_&EFOnb$S!J*%vP-9?U z$?k~+O=BV#*uN4P8J!5VLVxVRW8g~SfaH{~x(?b-f%ItLX=&xXwVm~y`gcIf(zt}A zZ{=fB2`%}G+QNJE!g33u6Iw31agMYnh z596(P432!WK-9@1oxE>7A+*dP>FqMhooQk&?b8W7CosDs)d+alWg2%K$nA(L?e2a` z&HwRaa3Fl;CnjhY1~kRQegQ!swinAyW~gQ!DBpdPva5V%wy)SE^$_^jGiWO&4X&so zLg(>z`L2vwk@@r=kq0kH$5%cl6OTGS36^2@z3?0>#wMXKOvEzouep(4IbYX*d3hetNOOz>e>HYjld66XaL3i)1nxymj@Jwsy9Zl{v}j z)zqse;^*dAq$Km@{)RwPY?Kvh!@jF_k0xNqwO1RVYTN&BKq;?(M*fZ&^VNJ3(8c88 zez*xpb90J|tePkPqf1Zs_i>dv7ow&c1?se4kx) zc%SZnDvGB7`5n7|?e)=evaGHY1oKsUX`y->*=-brY zyVf!W?<2g}LN@WgD)&!4TA3YKWC~UU!elG?7opVY>Q}T~MPJw}X~eu~sqain8o4RU zC;nxfoKwJ(mkM`0y1y4tQte?+JEtTpTQUF4^aj#isYBuyOeRx#H(&hLKc{Tz=%*e*FI;0E4Q6c<^hf7Z)%(jmZ#kw?& zGzD6u^%610@#5KOJ+oj~FsPTzjr_+*X+@RvIKnuE0FrX~4cd&#COexH^7I+)1Z^?I z+$E+NWL%d1ay<(lx#~0E(0W&?KWXH;0 zgeb=Pg-HPUIswanjWSDA2%hqXc-@cw*}49`4T24WZ*?=i3~^itgo$By%73v)@7ei< zDt_yd1f{?oxE)HBsr7B)i$pmHUygEKWp-)=tZd`GXp;+LtFIt~e(>|k(RNs~QC?{( zU7UZ%#VkU5iCat8rT@VP;F$4(Hi04nL=v6Lpq8)ffLhr%;3ivd~G}5 z8h5DL{Pudx%(kSZpuAEu((pJ?V3&4zFrw-RK_{sU6I=iUK+kls`Fv|%a+b>)bvN11 zXNd{$o&Eat>*#zgKT>TW{z0QtX`h9#@inBsotz79AJE8Gx9V#UF*v3} z0>fVP7(O+tT)<6DvyNcd60?$uBDdc9ziTxJC=_cZ-c-3D?=W6%FSkP+;wp?ai&bKe zy@8PgT2Jfo50P(tbB5u?exn&pRrkZI(O+!FSAqK-uAHT>Wme@` zkGg)@ww8_yAr}s|P3iPBo*rfZf#jhHnzH7otTX=uv}8CEXidFPx^T?rtgY<@tFA65 z`sxQBEx6d&@9ON1Yef~@$B%b`&guf(OgUfUhJtN^G#qc2HBEYgyj}Pp6 zHSRS}R$@$b$W+C?>CG2SX_|rL(03v1G|w>AIi$#`zxgFkiuQyyBB6aQyB@@n&8%SqO0Z=nw^}5Uh2M96f!D!OZjWDsmwL7 zSW~Y5G#k8f#D?k7;y+RR0{72QVvX z^a-_tG-#(=4`+~;PQN@fR)84Es&w6<_ta=}isRx1K_(u!e|Aw%>C+00RCG1lUUfP6 z7W~&~sV${%;6^=Md}a}avs3ng$Z6pZ@# z)cO6^A?WZezUkcNwW&xa;h#0Z2SM?)r>m$+XV<_g+)Q!OF_hC4J+f%c1cmog$j+p+ zl8Qy)nk&H)0dY;g(PJmXhG^D=+OBohoILk4$#lgf61Iw$sfwH;Z!1EocP}~eFfmsk zenC~Tnc|5O7VYrj&p#ta80vbIYT$XiB1`S|p{lmn;x*?5y!+$Mr=`FWhhrC1#XfF7 z-!}1kZ=yOZ5q{?s%gVk(F1Iy1i}Vj7Y+MyXb#Rd-MW<|_t4w$$qJYNKpDeXDOp+bB z5ONp>A|DLH1pAMj8RD!W7?##RmZXtH``NMP?t!jx-R#K`oD>(c!ia%j^RqQ&(~ggi z)&Dp$L{RXNkrV2b)Z57ps6k<3Vh(dR_B&fT| z56EwF9X#AWsrqX0FQ_rUV$tp%&1o_M^)`j;k#2s+DW~&T&>R&M$GHa5SbxKa{Fhn{ z#QFgi{@6Om_3Xa|WU)_mnj@`*d?Kny;V@w8r-yGg(@Z|p5VA#OG|p@n10O9w42%}a z15+*p2uOB<{=R~|7njK%wL5^@Du$#>*PpY^yj{@XNx&uaR5648T6x)9N${=%=-bpB zcl5o9E!FT}vS`H@cIUa2^kFani4Wx^4?Pt8zu?3eunw(Tm423?oFr!wCB zT|w)5(76JwR0LSg1(YXqZjW*I!Pf)H(({YLMD#6GE_oqI6xAM187|2F(UybuK-~*L zxEB}BW8Jd!B6?v_Mc3DH15xyE!wI^QY^)y&on7OzNL}ZVm^d+{gcbW55hG)*B7{Ps zWHWRnY%Xh^{!)wYyECf2WaJ(Dxq~XJxcJI%(D7iyhDcUR#_6DaXtR~X*Co78FBzX!@G+HKdyUR7)hN0e2S*9M`T{>9Qnc*-;dZ_n*WbCQ*dKoQLZC zcB0z%eM0O+$L5E2x(Fu-9#?)yquW#w)vX)D0#e{bp1dt&UgTQttz z{@S~i7smu_l8JnaP2G!WbL&%xdfrdJEPfv2)EK8Fro%t{+K&ZMllC8fF_CBvX2&qT^7qzj-_A7T z&u@n`cQMzqVXJ1mu&|6vG4BVpUus7~ZQlI|DtTmVg0M0!Fm3==d?{XZ=uI7uc#|c2P>fEfVszmVi>bjR2@|n(>1;J(QG& zk#{}xJwuh>f%!6L4D~Xx*%YkoDnuXmN_+v(FS;Cc8FC5y_v$NvDZ94l>v!!41IuqK z&ac+|tWeF+Q1|Hrkg1*YSy9;{(XftlI=Nz&jlTI@8}z>1g$!GqA1@n4YeUbmZC8Ts z*-?`dp4i8SP8jYQ{dTL~Q>2|S8FyL{|9-=>VXu+m;&2%6uo+U|7<(8R0&=N>Jhqg? z5s7Jdk?_8aU8iWmXF6y8Eqq>rD|qm(6zz>Jp5-OBdr;+Ph{6^T6TYQoYWxzbM~((v z@F3g(mAMDg_;=q`?xu!%Q=Abm<<~ynSfEH~RI11qV!F+B*ZJo$+IfTI(r#bvaP|Zz z!1|ua{$VTH$oQDghnPU_!>>-ZLo=y&fyWTP3=jjY!%}Lg_sXz1tZrLwmpX_?BQPrgXgTN>zMnyF z*LSif+byZ*0=8l2+{T=>B672Ni$<`v-=W@2aO_%UYpC}f*U6!@s=a}u1_q}2?W62R zwdI||XP}Z9@jrwLrVzY&_n;<*Q}h5FdN zoK;ka@9lKHPk*8I2sqe9x5qDtI%Ls9Xmv-EQaJUtLut8?igb z&(E)CV4Ufq1fkQhF1mvw>Ow|9;^iQY5LG)!oH}hsfEZ?MyIBD7IuJOvy`*ki#1O67P8)(?;}qlK-y9^TX-jVLo?$ zJyu=fLAQ#|+IC@duvK)`r&mAY@gd9MAYE!^j8p_UCCFU>?9>TnEVZF0VdJMRx6=Wf zGth#}|Xb7mj-9Ll^fK zN$Yl>Ufd%MMC-Pz=Dc}JG`(Fnqa8OX1^Lv4qJ^^KDc>YIx8;;{>2c{`D163arGc2F zfl#6dzMBetZAJKpxsVmt$TjPEF?&$c9^^| z{?)y~o!L_V_f-qY6xXY?qJzxJcqnyYr($0Ya)~2)+7ORg8fx0wgn|TVZf94W)i#5S z;kGyY4mT)$lOt%~AMmra#%~GeCKT+rbBc0YJ%-yQGg~AssaRui7c4~qz^~wygEa|{SXv)0r4D(ropIm91lgZb1mv@1f89=ZV>M_G6)2j*kb;9Sh$ zdmo-7*vVKj&fi(|?-i*-OKE|779&r_v6Z3kQwejXYFLy2_+a#X>sk4T!N-dd|VgsAS z)aq!5IL9a-ogbe6lkJTK%T@TSW#*3lK1Tpul5{|wprGcHFq}LY}0j#q-u?C|dMV*|&_l{ZW z`JBwOj5AVFN?LDQNuO@tG&Q(~-BKt{#!Z&S3|ydcmO(S)i|XnW>+9=_)GF1HPF+M^ z2Oob55*p!aizL03H8l4=TEolEQ;qYh_f_>}XGAO!ZU5NII&+FyMrvNiq5KrkD*0fR zV^L;Fay(lrsVo8%Ny=(RowFMz?H%JO$jQbp2({JJ@i&RI2-ovCM87qkw|JM&-h9we z120w90{3+}wDY71;W#Q9DEs{hL~@b+{?wZ0e^tW0TwQaFQ9oY#Ix?|JU0G<{P8m?0 zz{0m(wLtgA@~a~9SFxDRJhhfVpiobYpIHy#V`8kiKV3uW%+hh(3|VgYh+u&7_AiMm z|D=jkXTR$e?AVEr0wkTuE+PSwmBG{`l-{iE4`a?f7qY^}#fJipW;pTkgY1GY{z zN?xd2dB{~x=VwM)+-*S;Oa~hRFyicd2M`oA;BmJ^si$K&Clvd6w0`9u7w*tajt_sm z$ahTy8dF}Llj?GFCQ*&;64v5cOgukK)ete6>rcXg`l@|#??8~C} zog3cGFDg<6^(Cqh;)NjN(ycmL3eT~inH-$2HvFf1ZI42x7;L#-0(dz`7`#){ajtuH zlm1R}!tOP$D#<>b@^H2!mC0dOB$GPL;@B&M8l{&UW^+0rtb7G(p^BGE>`qZp;1-MF z+N(1s2XeGu1v<5NKP)^>GDUlIZ9Vs`=O)-8f}_g=2R;|nEtpC*q^|2~2&bVZXvfX4 zB6ASaqm;sf#OO0o1>@nSHf5zOeraxAF$89%xH8fR;;IC)JwKihu*L4jP5 z?Y385V<^q$tfJie%qvjnZ+_Vl@QdIV3xLHa(Wb<=@L})Uh`T?T*BFM~7ajJD{A;eM zYF?EGBVvM5l}YN(uTCxbz8Sjr=Yl(nP9;3fWoNoAORm$~Gq@hjj+cJNydGndLp^(V zfQel9EfjRc(1`%SR*mj-);9IdmL(U52>&}hEnWSpV0(1QwQJrgYHdqRLV~+i4qmH+ z@cLu-!nzRJ6tBu-=n;&XvxtcZ(v!y|)6%AtSxBJrdW7zN7uR7i$;n2YdZqx-oMOXM z$)V%HyzMCC>@bqCCuxGAN4chb&zVs4X>s)X0O}4`QW`3xR1?QstxW_XewvaUxHQ^* zRHG-ii7!>MZDG>#vf$yE-3){HR!EbE#wCp#D&bAVdX;5Cpu_-f=S%9A6 zH-~_raM?@kTb0WXp{{Rml!XQNWlMEhR(Pj|t0R6pwMii0qE z+TVa(pW~AhtZoouqLPzM@(%Q&SMIG@V3crPekl|{RG(cf|XmBFkVJqbY#LVH+fdk=gOE6HxhLcby9ooh=m{l-|U_y78ZaZ zAhAdk`L8@lE(k2w=Cd}xdX5sL>HMjmNen+4XSV9E(z+T2mPA-C4wttQ7^&pqk?`S} zi9F|zq$L?G%*>^E07dFmx`&zT*VP!O3VtvB%;qm1+q(mIo3|5;J$cy>cDYw%34WWx z@X>-#B+u*H(~43w)7dTez1=N#%j!HHmjJ@2T~5bnj*{&`&}94VgBN`J1Q3FDbU#*r zF1_`O|6H{Di2u_K6*uq=!3;aj64YRT!dQQil;(Z;3;QsfDmMul0qZ9!tw`>-{uuve zJK9hp=ddiN;qrC^{O(TTk0+BH5GQAoWxwOfY-)|2M{wtvvJ@cGBjD$lJ)IPU%tumX zfbX(ZLl?fgSgA45>4gAbWYoBtdWo{C@fB&g%&@}8XFjpBBu*FPT0d^R09E zC#iTQqP&^%zaggB^mIrxEXGK@;Cav>4L$Dh%2&GJkjS5sZbj?;@OvFcS~j5N6l%H$ z@iO8w9lGSAU5VWPdYUnIrOLWwdCxD7d8B&Gb`9z2b;eE15P5PcKXhNajr!IwT;5TP zy)jH1j8`VkN&T+hwqIrOc1%fdn6>4LGo6qgDPHCggKORKJgQ|I7l_z-srv>a`ZmzX zSYP!B{rnA$1EC04Osn~BWar5=*^Ao56qjFbenz@- zE20wy#CtOXN!6Zi9o`)7GH-pyqZMw&w*yzu^|SzBSoA<4hwTa#r{@dP}r5la#TB4>8J2)wL8P&bSmogIRY$}6UXOvyDvu_ik+_wmN@qhMz@OR&+V}m z=+2l@?Vs|AF;AjI8zo~k+ zqwp=8c{Zq$*4z5x_d|KlBOcwqdQ1)q2!O_xFHnR_NR!&h)1v$45hiVaaI6e%fGJcu zNkczCN8srRAu1G8c#P8@^>X2NP?pnpc)jC|vX|2yzGDj(gO%F0%TB-1<2kqUP_o8E z|1ShH;HF0+h60zqH}JF=-GeybHoTK*mjcxLFHz){xs-9V6-qZjJQLXC=}*wl3>o__ zn$#m$lT|sA3_Lc%gJbBPPrDpnP;03SvQ8c$@=GG9`}9x9iO+Xqk`pw{w_h5AlcIYi z@a$>mY3dRQe-$tp85cp}Cz~J{lS4}97e_?loxzb+6#RU1sSdc`@}bol>z;YJ;C!C> z+$G%80sJ#?ixbw$CCgVkC=uYD9*w0r^YUAQf>{6 zoi{gnRnh?6r$lsnpI)MkK?ef_+Tmjh)S~sWn(+@`Zl8pTWGrF7+X{`EcqmK51G1b9 zTn0zNQXm|bi|+Do#?x;>80$iLR$q?_`RP9WcE*1@d^}~`cD%GwP)?T4K&~yYgqaxX zRm~HV-M!8iG>vd!U)}N~GB2nus}P z->y1->=o?k;-`5QNn?VUKAYvlZzkG}y-$Z{;|Irr@Qe2AI4cFTcZ)MDjitlW2Lm~H zXJ(R+DT5()&|B+xGlE$S*Slu^6${PMk&r2~>lXgf-SK(jn~F717L>P%fb|uj`lJh! zjB>xCB7B1sv0@xwrkgqa0-eF$&n-%+5tqkH_BDtgS2byZ&bC1sj`-sV??{=7ydHgI zKAI+5TEl_Y`GDG+cBQ6dNU(Jo>E2%KR`pK*8o^E&y|B($EeSr#3a!?w^w=kd@!nKs zgSvSp@NwG7M6~x%kpj96eMBnuJ0?$G6lUK&zqhje!>9NWhz@w%IiIqe&;4A1nn$j0 zzlO1aIf`hYR0x;QA@TvScsbXVrWf$l;{n0^tkJd&$AC@3p{GUF z&~e>oXKRkSBe654HeQvT-*Fkz4b@06gUqonfz>Xf>ixh(>T*u3J=;5DvTN7dW1dqC zV@e(7riu~yVGMs9qgNf5v-UN{*TuuxZ{2QmtikV}>sM!mw&QaA$zJ4^fVV$sc z(7m=tCVaa$Q7e45XLACpe6g(6z`Wdx6TzH-pnY_;-cbr74E8A!pHs=C*8bs+^SNzX zG{{qMd-xTZ`%3Joh()grC=|aW<=k@2UgMh=LmP&bwwl#n_5%uj`$y|lCH9E_ha$PF zlm_9cs}GJ2r8wrw=UQD)l*h)#go*cy{a)QGq;aL%e}B5FHY3Im!W%`#pnE4>kAqPk zvB`v)DJh`=fa(>|4KZ%<|qH(%2m(FhME^B)}w6$C8 z={qjrS<%L%xD$ek|hW7%7dL-jGR{!1xly^hixb2^{2yN1199mkWo*_7F?%gg~On9AZkla6RTM3>l zHixb?W+2Q{#AM||{jvA+P{Ewb#r}+n?H4qm-;Fm?l`zY@U|I8Y@gou5q^?X%DgVKp z+=Ra*{M~_H-#DiMe2Y`Il=Q_djFFBSaSLN%BhMXXCc8vC3}Ge`3Sc*R_`ML&!_|&N zUjggh8+xKUxoV{nok3BZk34EK=B|ERi=2b~Drc9_{6x}Cn$Xorow36UNQ=p3Tb*lOh_{hSQ9diL8vFNoUGce(=V=T^>^&^x%@%8 z1Xk^cWJ&G{Dm8d0kV;+_jmxdPRX<}V%^z%j`q1z8_gdla7ih9sl!v1*E zEpRcnFia{rz@VUaL2$Y5hC}l*#d(Sulb(Q>UiJ2qRILtKy9qH)lM>SJ&b554F)^30 z%N$9nkw%D1s;c;h zk^3GifX?S=9W%7aPgIzkP#*)fqwM8B{v3c$bE=J%Rb`y8i)gsXhh;r-4FkVwUtYhE z4REIm4jj#qi;h}kbtLX`xp?d=8H)6h&t~Dp>y#=QC9-0XOaLwi38DDYym03b3@qiw zw^0RSli?~PmgiJoBY$bMho2P(IlLC|YEOTiLI)7+YTw@^;yYQrva`G_CDL0OH7Vb- zs1Qg47Z_ND-GeH=T~rSxLJ5OkbKVXC+is^O`6$}Pg+0F}tB-aM)SC&uT~99HtPlmb zL8B|$I8T_)#d@*0=m%DfQKxdG->{T|Z!o`UV;rmD=dSk$p7bc6@WA(z6-p)fwI0GtGY8VX zdKL4dN}Ag_b_!_-^B-|VdL8k+=F(Twjtfe;nbJBdPlAAr+sM1a@R=M%kqltAH}RK# zceEf#xNYM&CvwLgjWNeKXESgrI5xmKKBIfcBF+=nj}ssMaqjD1pYK1f%wCA+i$P^= z6(Q2=sQ64?C4=~4pcxBH-ygrM4*O6vv&f?-?jN-B$0W`Mi9;%&F5cuwbVLifEd0o< zprg`A;eU-%HFTQ4`-wo&=7Ykwpv1EcK;rPDARsv7Wm=-D#kXCZSM1vAP~LwEjb$bt z6>{{+e`6SG{&(NdllKCl)g+(o{V$?D+=K^z4Uel;nsFCzK_I9zs7p#;usgR#ZP}p2 z$yXP5+U^tV)@5%We~_w_$g3oP$j6^@#U*dkU}>S~4uUgpVq1Pd{y3>bv)&&ULP^Er zASf?#Y;9)NPe;9DR`-1gR_#ZCQKE=gKe6 zUZ&V)*`CFAMG-e(RG6feiQ#7>Dfm5xWHE@O+!jU1sx2OkM;*)m82kohRcE?_w(fRa z17c_eB$Ecgz?^|FAaPJI=>PDKo!9+P3w}(JH9fRO52J;#W3H1o3fzZ`(to=?UhwM) zip)U7w!^vsl;lLmnv*)-@iQfr6%Y&Oc5b3p2+1Ra0CrI>!Ld_7wI}=j!NdEaEJP+t z+9}#oJ}GR!$$ZOnh4ZkMGT>cTbJ{Gp=9_rZV zBz?&<7j5_caz^L%cUR&db4(=(mXOUcFUxOQ%NzNFImV7Pz~5g0KuR@ATiZz)iNzRS zQ%BWuH_bZ+SLQPs*Jl)*bLP-s9|&!CL; zNkWv4<#dj9fi@e>6LoGN=f=7Xh_lZ!00jP}(3(#ZGLAlyPN~u?Bn{M+Xjrd7 z?CI^-8~*B0j_BCc_iwmsK4G$HZv~wr-n=*b(PxRbhG=gP<#WkE-4c-Lvm|G3v* z8^&v=5XOw>lw9i=WzdMkc16#BRPZ1g*I|sf@~AImQ>oshh0yim9V4tCn^GapAs>07 znahGW0%hOg>W;H%?BVo&nLWlcb#H+4qRA~#bz3BN&nx|1uIcg3ZnBYq=n9Un zQ%MFhy93A_XN6rt90RB3#BDy;&%Ftm1b529%Plw^?ReZ!lNz$G?ijNh*+TTOFLqwq zKNfAm)x^$;mOE~neIyxMAAO*|V)a}4!3!sx@O#ip24z>F&-|QTszr~9Yr_wyC*AJ% zyr|&};@C-DVtP408HI`yf^lkiJUhlKdfrcA-eQf0bKt_UAP!34N@f!ahjpS9*lyTs zIe*ORk+@+pbw_5thkK}xo*C4rU8Mj7%E+Dt5Fh6)KXZW&j1qySq*@`|kcf8!;=QGn zYQ@fkVKp&!=tb;dX;LH-l9t)95C=(+yxyF+_Og?N*I*ISy_l&f6D=f<&1X3kC;$g} zQ!CfJg*oLoK9893C7ST zmTq^$b3nQ1Ob#G=1to{GD;9lZv=_$aJp`U2^=UJ*h(L;jDt^Re3^MS(XIW$Pc>B1F zYRQP?@LSukjWGLyjKW_UpR0&k?^a3MpgB)Q2pOKlJd4?UNEWuw&#p$kneC$$Qbb`E?rPsWSSB`&Q;?bo*3->>FvJ!goLbo1@vo^^KU3u^V zY;?Xx_&Ek+&Hz7GJCJ+JDysZQy1=9)VY7p`B4OuzR0d=Glz!KAw4b?q0Jj&LYV0Dr zYV=eUg~h;6x~RpxuPERE08;+vo-0{>Ph3i*@35W>vgSuqel5PhZs#6gwhPX}UUe|nD_TItI&N~gN3B;!#9Y&&28*BwR=sD+C74%lOE9*Xhisl|&Sm$P<7he); z3Apj{w9KBa{P_E;h|;ODOf7XrF4x}S42mQ| z+z{Z^+9<|BWN=-WqbB(k6JYfSB@{_8)VYtEk*H>N^x`an)FBs;UCC^!qnBk(T+3$Bu@~zk~hO89+d+1 zpMU++TTKhj<<=@^D|vQ|xr^pezgscVxd0wdZ2(6JvkBdP_(w1j zryEi^&xe$w()JyR%h`oRA1~t*?-9qx>BCZ4$Hhe~{tRXcum2zi(_bO@7#@BJdRNl~ zi19s2Y3lMBf7^ODyy5+!6tf44p}V|(sL+%jjK^)v1=~_y?>J@*3ik1f)IG}pgxoY8 zdE;a^;_SFVu=fyF&Blk)>7Y3?&R?xtMs}AIr{BD$W#pw&B!~l)yI)>xPBuGQ-p-FQ zO^JV|#CK{pdj5U`3VzPLI;uqvjGJ=)#F)%t*T5=>1}tm$Lr-RT-I=a6o+wrjCZrnp zD;ejhx`dHEZcDWmD>^HvnMiq#h6xz?p(L*wt%levoH=wB3v7XIRydWlO%{g_2(^%# z-R+B(E$!egm7Kfjo4-)M3`SxIf6shhZSqMS{2ngp95^de3L>14cj|i@c{~uNhWp1E z+H808WA(A;EBc_IfJSu{>3#i4U3US%c@<(G!KbZQynorjgItnh-)e5+J>1z9QH)+x zPgF(sx@0zAKNT7S&QK9+G?`jjmIQlY%>qiLcZjE}~X=d0V0MPkv%ryBUk zExkPz^4&ZYDpD+&s3T?Egu;B%;d9z2fY_3fu?UQ!jv-SxyqcdvfhQ6!2+gr+dqV;O z50edwi+(hIulMoz4(;H8Bk**1Ww(>t!`pimg>f-{A8$QiW5wL3CE@7Lij8+VCn|^^ zgB)nfjNKm)=FJTNSWj$dax2BQ<1I~ zvjt@wOk)`&RAKUi<-*H(m?`4kWlUn}Sn%g1guq_1{9xlhFviW~PE@1$6Nf)r5rn2? zXYWYg^O3Aj8f^LME|*IfWldAd+i8hDdU$@^7w$!$lG6lrVQ8TDc`C}et<=ej99G29 zs!=~t>vp(WElDv%T_KYdm-9UiVZgrBX{*T?DSFNx%3Q?pTZG!1{E44)X2_4_=EZBAdA*s0~rXNH8VCJ(aI$htwy) zmN&{Nl+4%?uoCWFrMi~jXce%P(zSvZ?az1CGtBkdY<@vM@skrS$Fd@(wQ99 z#gGgs-3+G|kcKpWQmSNBLO%$FhU0p}ewqYS#3TqWbwaQhug#f06pKTn*Fw+={ZLw6 zKz^2jRT>&(YxgMPdt0(k=b}P8kZe^f9uiH)oRaXWdD(9rmTtazbC#+_d|uD&5T+|0 zbu3%PTSn*?#o*ekB@b%%Qgz65@9RXS;Yo374`0^Fu$2!A3J|{sgmb~me*_uUOBS!S z$i$8!BqEQCqG|`UwuM(*4&O&7$aqWaLaB)Oe;|q|Vv|UU_*wmIPJkNl`hI7Ii7tQ1 zaZ4cbKrGeipM55|k5f^+;-XOSasm6*TJ>Hp!rQ(Jpe{$ds)8=dD8E)K-9x%5)w(N= zN4Nrc>x_PF2UmaE!pRoT^=%+6x9BJm14Z(?v(fI0I+&Xg&re)}WYX&(kL5!o0G_k} zdgz&Z(L|5nR_S3oaL3|99y8m5)PMkpn&#(>&>{S=e8u!Jcr}0vcY9JL8W)7-JVg>$ z{fiEtxzvj4Zu!T#6Z1lJ?u=XlT5mR2eQqn|C}!BkOKgk#*fK2LY=?xE7l^%vfRR5I(5@= z!U$BkFod?leDY3{Q#k41dW#BmOG`U_nM{kF9( zQ=T13gRar0s3RdJUjA&Lel+$m;K^T!t%7otz3Yr>UB~x=FTCg89BQ5ce80u6sM&iI zA^An*ckU#5nnkbD{U&{hBS;j{YUt(GUs_>{&*7TJ_wiS7K{eUDC|gMX9o)KEL1^WV zDoeY4kv_2$EM-69-OUJbeExOzu*+ezV&0}3a3(owz1c03EtqA>3gyh5s#!rU`T8;n zO-gR-EHot88Xs?OO|1X#x6JWsGi~OvG#7$g6`c|X-7{!F|)Y?EG6z_U0 zK;V#+d{zGKm>}bMlP;a>#D!u#=jAvttPwxb`)(KIn(X=g>J#w!0ld52eZBJLY&yUC zwZd(p@ray5P?ZTVZ!mX)z5Wqa=kxd%i1C`+T7pjgGS_jOp&f2BQn93)PBljZ_(6o`lXE|&=SkLK(2A4EPVzBwo!CE zRh&8c;4l|o4r1G!jZ0E01H3v`>S$pDS_S+l;u_>vM; zXJ)*^rmh+#G2->}1E8D3bob5S!Ht@MSo3cJW6>U?+DTuzBm1nkMlVzpB8sALZPX_M;b+?dsvB8PmU2-7j)oDq|(U*dttHzX_P z@jC-G%EzFC+XzBhH@a4aGe`sq$_yqKSxJaF(@d8uU9Rp*%-s@6W7+weq8Ott?#`s% zyO3a`*-DYUtU?y6hb7QF5hbk!k_>cLg)=-TnDM3oRRD2T4a-i|BtY@4vVAtwuQ0a?!jenf&_O61b26WyL)hl;Dfsdhu|(jg1fsj zxVwInbC3Pbx!-&L>Zj+a>Z;ncyLL_2+G~LVA&#d%%i@@_qnP?>EtEv&oA3_yyTZr( z;v&~Upn_By6f**PTz)lh$|K9p^u2b!o8XHtOuP1}Et`h*7cQ*k2m=`EZwqgjYM@py zK)23@I!pYDmUMaAz$~MGqLm4xh;#iMZ=u~aV+_UT>*8a%!6>%UUAFQCauL@ot}S=g zIlbr7sBjztT|dPiIl7z_o?`5pK~9a(8;{m&Qo%hR%7IPx+xz1iiPRtbwg~yRyX|xB z(rS*g-il$U<6CHfb9=h3KXb(ZG`+NfNbkDYASW(RFTOu<}L5F zXw-O5`_y8p0Q)EZXL{$=>(8y*#Hcw(!5|Yt`)$wP#X{^)nwvw(f@JssiCv$16F3EL zH$x(5Y(phMSd^y{TawqiqwUvR;|nGET5+Bmf+p>Phf`7dejW+Ek@HREol{8EIS!Yh zK?=Rlzi795A@m`%KwfcKT+w#)et`+PPd?us?&uh(84mwsL>L%cS=-iW;LvnJd0<+8 zY;!9e?s?3ESP|Xc1|ZWz%Lha0M%{H>H|`S20bv(p`kd-=60>ef1`4yk76s=;&;Gv_m^riJ|;VPin=wT`DA)*-Xe&gEn^ZMO1WF zm0dsp1tbZ|L&VE}oGw$7`FLNKakDyftroct#^h$Oc~w;eeW%AmN;o0%TdMa=pf40h zCH>L4N4~vhsHVjNG!KHkor}6Wh^NGa{;Ml=Tk(M;aHdI@3|pVE&C{C*z70)`uf9#^ZWOqq@(59yz5)Jv(*UbW&R_re9Xuq;IfS0B6wU7a(4HJh2jN1$uJ z{pPBb?&u^rbFQeZtDEId@?Bbl9Y-^WxaEnUmuj>GYoPwv@rQh6 zpJqJH^<;pSsnD#^Etr{3OkF4dLsDgsy)RfjbZ4lezgZzrKw&5jkSU+;4khdjxE?FD z!|600Ka=`SK7XuA==l;n>z}{DLYO%mZ4H&h<_lMIYDvW6vBrgJahD+O8(uA$j*@2;M)jmthk5W zm@vAS)GTB1d8yTx;ekpYy2~_z%(am&Kot#xVrFZmoCaHu57VuTFlCE4jP6mwsZh;^ zK~3w@SuT#;l>WS&zD=01%^?X z&xuy-g7rdkeRutHwm(m|c|$uN51?Z$-KXuApzC%*F+9*?pDY~{(vA@Tld!f0LkH`W zn$AY3YWA9W(K6_)g=#Ge+h-(obl9_A{k!9B}+C+E1u9Dyu7@q&4&?$3Kyz zS_#jkKMB^uL6ay%D^-YWZZ^B}^Yc**MIkQ3YdM0T4@;)@g~P1d0tiAVARNRZqzLLK z#7V~0TjSDCtmDP@b2rU6`edKTj4G+=h{oAIeJf)TI@?qA{CZ_YIt*yRg80&#wfb0k zk*^%N??=bd;nK$_|9aNgJiCz|avuqG*^5+K+;sx=THo*?g2Tu2$CFyQ zQg0C4vGek-H&eOo2}eXG&qlGNbDRXAZ`Je{5vGNz$Lm%4lhdvy$zVP5L&As>lqFX< zoBbS7jWL*-UlNcbsmYTG<998ePP(5`QNW}c`EpkO+w*=sY(C68+PeiG!N(XIG(LG<2Mn@<7?N9931+5n0|)_)ixLDREH69VKv}Zyd#X zkR01cA!apM!oyQ934$93kujRwyV>emizLO%)61gDcCs6-SKH=ryEX3aGGPxahwyV| z{E2Cfii*7aD9&lpFl)~@A+uMfr3AgvP<7MK9=6}8 zjJh`v-EZpWoaIoFk%6$$l5ZZqCTZ+&D4|E61U}&q3J6Xhx(gge-*N_3PlGj>hK}Z} zO_)cGj>X0OOSC_*tx!6x*fv>ZtnFe7aal|XpM_yMtd4O76+V#&&Np^*t;g1SKT1Cc z2AxyIRla*)vEGt{B3%kFBL&y-Qv<2n0g>$k!)-MuT$F`QviSwZxiRG-mlrOXwpQyD z`Z%6_K3s|48aBJmXubR6{i7ozXKIYoMhPPX#e0KOBAnNQEKyQ3zGMY&bOo2P2-ThT zW!bK@IHv$BR@Y0E3O=uthv2QlppTDN{(W$wi@n87!KcCb|^Ya!Gt_)7> z48*3CSKkr0tf_Rlm*PC@e>7FC_`{Zyp+qSK6Yo$UR28CwTiOOh5(Z9@zwZa>@b8=u zdH1L9M(i&lnh>Zk!)WCyk4v>HoXuC1``Ui!vWwaN0khnI7v2AAUw;BKHIL(Y&}1{; zx&V91I}B1s?Tz zLfoi3j2*_}BFGg9gi#X__9O28iCj_lbq_H$1otj}fK*ODZJE=e{IwMNT0?uhVx@`1 znh93jkhDcUNE_F52G4*p&Zro;2n&nz&FF#?Xd!Q;bI2T1N&=s^m4x!lIYQ6-Ztj)TSs(;p*RU}_2y96McK1E&%FKm2 zP%br^AoMW4pPnBPC2uw6cs}JkiG^QXTP3huIDGwy$f*Y8iAU8%*$v@9lG_)+LSxj` za1ezaxD7CgORISp!ydv0ejX4RjW2OfaMP&yN-8zZYC1!sjWfyvWV^Y=3BGHa)3Jfp z!6XvH3h=g_i0Do1QfG`GO+(Y^CMeFErUmV3`lskTLvDCHP^sA4R6eq1(` z%O|OhMp`@=8k2>vaBsS2ECN@zJKSGOgw>#GI{@^gU3~J%fi5~7d(E)Isq8c&`RLyH zII8~cy0}QwjVFX(H&8G?PBz4_N23Jh2q!A!gvi8N2}i@i;UH6XU<3v}ccCQWEl!jlIb2R6l zGx>{^lk2KG{<11Q20`Gx*>_%(d#C+|qZywAh%VP#k#p(!MbAPW-rd1rZ5mq#>2s+D zKq~KF)2Wy~kFQ-_uMFT&7SR7d#6!6p+fM8=+#L>vd4Pe90Er=)dh&-|@)amdmwM|G z&AHN4A+<|=YimDe^~lbc^1eSN;M4Jmq_^jTG6P<*@cmbST*qk0#Qe2rm)#S-4I`ErPm+t^e+C$T9BfQGC-RA8l8o`Ds*-okE2;|cdheksj^7OAI} zXCGG04tX&bq0Q}V_2c~+OIWDX)skkR)7$Ooibla2&}9W?JJyFAKyjND-QEt;ZE`1u&+rMK=av-I`mB_7G~>7Eg(T=t!KlQ_RB0Qah|GE# znzMDvBDE`OO+C(;o^sXRbLx`NybpH4>%Jmg0Ud? zvpOqpin~;sFN!nKoRRxX^@2Cz*gybxQlhNv!Kpezq0@e!r`I`(+f;Sk>+%`{Rir_F zi#G^navwS);2L3-lXN*B!x9U_JKA{nCg-7MtzRcXe}`Ya9adqaCC6Q8?eQTaT^ToK z%dNR3FNcRjL;eZlI_UPamk7aM%N}!7l=SHY;}GGP2w1=lZ8ix9EMb55**`YVv%3)! za~m!}J^vwU2m;xs$L5kSxULO64tpv=p#BjMDih6+u?l)F(^Jl7Yt6z69G9eve`6SI zB*loJ6BN{cyV@iL=VSYu!u>I(xcJBrpQy3gQ^R7s z*P+yb6ZA&H3yjWydiyW9vj}#9jiCRlaMfLVa z7_m-+T2v3$f3VUc@Q8k7Dc0j;HHTcm=NDW6A=%e31vc0(xf69`ERMQpGwNLaed$&l z>6#>Phlh4hth*yw4_U*U=>tFy=l5}EEh(RGU7kxNl13R?f<9eIs!T)d;~beOA<_-h zHIQYQCIU8SI1bueZ=0<}siyfk@dwag*}ko?m|$ZlRsWoEdDWRs_s-J1V4{0hOdXPg ziM#H?54)ux7&j+B?za}rIQ9_jm>(@l9r^4OXM&rzXS1T8(K>HS0K3iH^t{C}!{2G> za3eOM-BCMK>}Neh9Uvf)NW=?s^upYSY=i8u1P^yU#16#+uGyF+N1B*Z{Cpo11r3dE zCRgA#Vp<4MYd;y-^ET%=7mWINfLWw-P90K*4@6RWMM^VLjn^GcNHLC-DnnqsUKS1m zp_~I%qNsnh3p?v*jSEPX%n=KI$%jQ@65LW$Kw*SWk_{qFYiA#vnaW}3&r{H8OO~7K zQ<~vtQRBVY!$t`F7=dXQ(v?$g{~fDmNFQOy8C9@_?7lhYrQ8H_6Z!n-0(=HROFDAltY81?s@~(~JaKCXc^O4ttEYZW( zB?drEC9Q4M8XR~*IZvcRkHm&vSRj=^J&pYZ+O8mwDBb9E(JIWfX+41))!C1`N>Fgi%EmEM}TB~c2P|L;$7(EXF zq^y}0qWTsu1G0MYLBO*Dg@)DXyPeA+yz|3UZu5uj*Mhpr!dK7t19aWd-ih@U>1B=U zf^h(UyI!+r9*{Z<9ognvTL3TG0!0taIftd|7T**Ul|dseEW~2HeL*|YyOAuf#H8@isS*2pc}r~&&rVDPfzq_>`Fi>LR1^Yo>=(@&)89a6m~i$1*<^XgnC4& zF@H;edA^EBNOb%>Cyi}8p6@RujRT(D#3(o)*9KW=p)bu@0?4ScGbuay8?v=Y%FZq9 zWUj}sQ#(63k5T%gj;ST!MGPkR@3@Oqa$^cU()k=;cIMdbuWs6_4o>0K*U5`ue9z>) zrolXpnB6Jm4i#|zLES6A{S@_fnWi9ltO0HW%XQte5P;_^G+~yMn81GAf0e zP5M&^y7Z`;>5hCJ(?r@fwp&GoUWtuPgH`m)?K=rQ#md{|c7>v{ zNY8`VXzK8@-OGi&Awno;d011;Ur+ehV&U3|6cMg$N>l?IhL&KwXHz_W!6R8y9TWRk z@R8Hg*7WH^^mDCT_Gb$cgf`2UGad&FR|FGnuQ;6>+s11$3c)x!37_ zv7VHqg=lR(pdOj`9R=x%c!KH~i28Jqw$U5|e)N^>T$>e>#(S>Cr^!?Mj3+)$l@Fe6 z>P_!RSP3WpXRE8#ln{}^Jb--(k0hH!nZ8p{7Uj|uVR-_+xFU!7X`2r!LDr>%b`Hj@ zG99MZUazqt;Cp2AudY!)b`G>FqiR&#)1ic-^ArY|DG6XiJee$ykQ?#f^r?IsH`gK@ zwcymrJiTr~fwGdgD-~bpHLa`<(r$-6)^5WP+&4EwP&_RIF@`v)xFU+UmZ=wo^&{QV zN+m}&bxceWESak%>Z$G3P&)>`dCUl^7!j54xF%2Mz9!AU`$Y8_@V=OemPx7MHP~$W zl{ZW@0L~dVA7BA>q1MMKIv8bV%X% z=mSJPB}xK=mwqW1jd!hR5|IJ&$|+#JHzSI9GbkFbXDWPCm2@g{6+~r+1~)X{WNT2F z5ieC-m0tE6)8qGIR+)OY}Kmg1Hbai5e}?tlM_h&s<-YPnSqYe3w1$cA)P0 zU`rW2?wTsJ;t|#Y=A=}atOfjt_7Xfa?9zxq8&^2A&&oXsnyFXN7Hxz-blWKs;h z{KdV;`sD~exgAjg>BkIGsx_7BCmhiO5@`G)z9E)Q<4WKDVu{s3hOOcDxQK&omXwyB zcXM(ak}S?ZuT0!I1dQh)p^Jdi0Nh8CnKkNmE*zeogFKlUeIBM@JWp@A04P7)$5)1B z_d3*T#a_S`CGsWF^^sl9wCVPC&mkB!jga^1D$ zg)7pPLOeZ1hqc99dqsa5b`m{5#(2q%c!FeF)*Oc07GD6UQpe{K%-BYW53M3x%c>R8 z9jZ7%+B`GuQYlRl#vB|vKX{Bg^1ud$TWW^oeXe>RJBo}F!#n1Ky)wrc6*dOBAccPW-h=uM(XbyacXP2K?Qj%puF+Y1JsAR2|?11(I!h*G@#DwnH;wVMT z0#$qmPt=fBT;lM=0WCeYHe3s|3pef3L$V|bvL`z=qsH2}U2Ma&2y8%;n-2o$t}R&5 zh$r0bD%Da!E6~vB@rNv9raF?qm_tr&yCbiHNf60EASB$M+vl{#_?>oAvo@FVIy>f9 zk-&xS^dYIT!CsOYSY!%cE1~kv;>Tz=eUUrD~z13DQ(R0%Di* za~+pJF|CCK@jue7*F9~`p%h%h9ua>Wn>h04*_vKA8bPpv7x94e`O4C#TXBhI=n z$fXkcIc)R5Sdbt2<5OA81&cD46a|>d2Dr?DB<`#9Zg%WOl=7x$&2TsnR>qivdU78m zNzPLX7Ys)NJmf3zx!RAQ2HNg?A%hOZ#uc0So+twM4)Esm@21#lz?hO-!o$=6}XMDNN>$ zI>Rb*?YbT#|Mln)9_86jqZ-NTE+~2tHE*$z1YO{&ADYLHSsVperlnSFZ9rY%5y2t$ z*-;|)bgY&fjl~MUT7<>~4{p%$(G0;6aZ<9dj}1%y9REX-GYzg4AN}WIM*o7hR>+G6 zJg8BN(2VNegwrvgkq@>3=Mk0;RuDZjzF&w>$Mr>sWwrEw2^(QxJcwEis7x3f z*$^t2h?kEaXA9uBgW9k_Y2Ww{nla0oRO4_XQ>rGNGM^s$hmO77Bzf-L)`kYavMuhb ztorlztNzcMdsi2fv1QKQPb<<2GASXEcyyOva8`Y~+BLMz>=AuGiYCU-T85v-Id|ay-86?aq8oZDHXt&Gxwe<=qZ)Y~=Cu>9~F| zXmjJn4(u?&39tAXnIcU{+reu@REp`0#k1w%(C-fosL1xb<9Xm%q08cR?H29-)*mHC zDb?)z`c#s`W&YBBOf|&ib~0!6XZWC+x%~zRAQphC+cYC zIrtiAF+6vW;lAct%zwYywFf492sP-aR2-hu2()>+Ih^kF;cGc-tw~RD)%QEqG=vC0 zHyaOZaYUc>T2q4@vi%JYK2GD^>3I=_MVk))Ir)V z?#YdFbD!_6RTp{#YIyV+V@>W3^?R2R^4|_jK9%kdZ^(z;`-y+6Kj^H)k`VM0Tg$ua#w|=kOnmOW|(A zg6KP{Vw6R(oR|`_In@te=Dr4aOm^6v$9`AvfqV&%$L9-&Fy529S#VR?AWRfnLAb@2 zD$fg#lj^cFcxAzHH8GCfLfdc&n`Ij8)pO>SePk}sW&Dbb)bp!;Cy!2&2Q$?)0$;v?IH_eri)xkI^Zja} zYpbVLcY9}hv+i{02vj!)x6Gat8I7DMv_7jz?d`7lc7H3P+f0t|#|=|Fs7+$9fvkui z@WNsA$O8BXw_ChXv+$G1pEnHCNbu9AIKt3@!M)exFO@qQsToB>cM0-o8a3+;Mji@3FXJZq9pzse!Vea0B|e{0J3SLU0MGL_ zK{vSa_g?kIo;mh^LI-cUeE|@~z3z+4rvnZ4W0NuEa1z!4P0Une{EJEAu|lQ`GEbNH zhUnciw7cOI15&8*2oEDol`4pRjqTgBrm&<@lNCCo7-*$?uc$dN7>@Zptr<-WtHAqd z=u^t9%7;Zv^dO>)8L1NkHnGB@!@c)!KZeL)q}>946?&fK3~-19&yw{gzD>V5N@R{_ zfTpr1dpvvKc%wAEW(L2L4dDOo-`UxDt3lc8ungO?P2_{Tj@|>Z^i?8^$`vnIeCL*>9Ad&zBJuG1J~TYDG-gDoUtTyoxMZho#hH(Mrn#J6M9 zb9P<}6}-x7a*N#O5mbF;geFHH*^b~+Zr?J3QGRNEaJekLdV9HVAZ}-Aw4D_{BXNrr zl-qqP_9_@cNIf5EqI%Nury05d{m~H2&yIf(BvqM;b~6OY6V6;?0FD#DqW;tpCbV)3Ux4+*hCNi^?|>}Nvw z7L*#45w$4y>t3J|epSXh zHyvL0NW0)LnM9NAtu6S$@NOy?p)C02I_C{=jXMel$tQQNw#3<3s^4MZc~TR$_kot2 zCRdJB?m;s{uUOtT(TDlZ+>Uje=Y$(Q!pc=+`JyYSn4%iZy3Ta#wgwn@RckA7M%ksw z^EGtK&_*E+Peb3Mg>kJF#stYbRY`GET2*8XY8s5Ik%N-*VExs-sJ|cy`k7?{Km6eE zTS9ZdQxbonipB?k&_HT}d~6SkdE}uE`w}*Gj~>@wKIbDfd0AA5=wPg~u6IE)&Q?PD zqjp@54|k50bh!8)&o@_axET%W+|k{Cb0ilL1+ZguqvV5}&y+6z2LHKAqg?;uun`gQ z*RHY@F#pGe;pKc$E%bh66H2>U70lsa9~naRgfB5*Q~3G_~0=_L-ugSHwAYC{yuBo=_?NuhSHxuRX&7%$zpfC5s)JX4F39yq{-gPJ zmNhSCXxHoJegCZcy6aSZ`t@{L@p_j=@i~VB6q6)hHl2?9S;Eg~BPwJCg|ef<(V+>X ziJOmXjy3NMx`=Gb`t@aHzW2fx7t-S)t5~r+-kIgAT9JY?FEP}4Qi?B=vawUlhhfog z%O&X7)X|wQH^r_H0PHTVa8zZgcs?f+3kQ@(t1Ts}#y80660|`^@n!yS-UI#|*SH6V zL4JMF*x$2>Q;JzZA`^J+mS3zNzo?a|767B4m9qYXXNQ1reB7)0y=fwpn^5I7o4+~u z?HeyiOfJCG@3A}yW5&PDl=$zY@;u`~sx}*N9vS9f<)V&=tg#Lnz`>CDOk!9k%e))C zKbqtKfhpt!RtVl1xMPiqN)5z6V}}mld_v<@jlC=>S~JY5$s)H6^JTV`j=MdRJr6TJ zp_rvaACXJrVr#djnB-W6JeF%QKX+fHVT#C}@nn|1S_QtGFb`yy6#-aEsR5kD8H;A( z+NQztycTd{4#yCL139D_qF=QU|D+yuKp#NclV!{ziD$ed`BN?(1Mbq|WzZ;=kG2YU zEb59^pStM?xIY921C)-l7VVQ0!o!PId#3m~YSsP4x@{8AeY34`)-UUixt9a365^P# zj(D~WNUyWs&OPL=Iq=$#ojWDqglo^ddHUVQyP`6Y^&k|1XFhqmL?eAzguGs+%{SAS zIqaWz*|Bn}lyJwd3brx=O|SnH6!v{@LCaaT6)7wkt&p`;>IxZdJ#>#bl+D?YtTm+p zSU7|Ti0(md(`jm5~Z#(c7^^$buxaI z54`f*EVX|{CE}&M71sVUFu)LlaX>iYxYN_R#Pl>z=_?W2jhLq-D)yzs}96+m3LJa5VX(XSZ;q-n+M<7`F)VaxnzB(QWloIA#RJ-O@@ z2x2+?MO5pe_m*=KB*f1wgTq5tN23chW>r)uld!-qVR^r#yM3DY4*4bE@ExLjwmP`y zjNpK1R?n6VKyRX{ppTc>K9QloH~=zq`BYTGYmotWSzgRfQnj8Lz0PO0k)L#?xP$#- zC+A~`+-NrugnG8;IxPRe1u%MH$Tw%B+QrI35Wz4%(ARmD$G0-7K|N1r!#3h!b3)l8 z`K!z0Suid`r@o_pHjmC6+aabBtDsDDAT!ylpl_b_)%4NZUjZt0ct{hR$Rf+lX(RF7 z?fVpdE%Av2yR2csCK?kIH#J$lE#|My*11@#SR_jJjVuTbzj zPUxd75XS=qn#|AAfNX=0?-YqiS+iYt)$6a(cVV7d%#>HjW=x}QSO#$R$@kN?%)Ns}%i{MSp#-KgPLxXg8xf;9jh6m1y^!ATFd1G|aXyd?}_AwC<;F5Z!xgep7 zE>TYPlO_G=d7OE6G|gKr5iCjWGF{BG18@^+YkXpd7YYWQcrPW{gR<90Ds>iGDfFYZ zv|HJ^yl!MO=`&8qcZ=kuR-=12S(QM@&BonJj>#M*l^4JWRn~(!+K+ zsS1P1vaB2q)t!<2lBTShmx6-YnI}~xO@g8pYt$=EQxI!oFg|W`M+VDL0+y&)`g^Ut zeA2j=Y_Je~|3%Ns3604PnR0KQ$4+NRzn8C2bk`IaVu6x|Qb6!Pw7~GbM?zm^NGlH- z|Esv5w?l%h4eUVBkA80Sm`twp6d{jq%#Q7vxFB&K^mxDoyW@{T(x> zT^;#XX*dQ%FR4vsm>>w|@3KTP=Y6(-DcX2y)FP^h#qYzLUo(Fewkuv5smy-}!xPfq z{YaJc2A7%{>8kadJpc2@i}<@8Ig8_#F!q6n_h%9ux^vx;a!_oK_;WfENZYUCua=>r z0D3NB%x=G0ie7%<{H%S~%&{CmmRF}SJjJ?-i1Jos{bIc_A4G!54QNjv7&snT+Th7a z5>LHI@9!7h`4fG!m)q~=K{GFUtqSC*)NWvWO1tH8ypBU)XXI0NvY9A_~ zc8;IRzfG@e#cW4^*W$W&9p3U?N940}Uf!FXu$ApR+T)~tO4u2ZS{;8a@cA}zWl6Du z__{qJ)j90$TRwhn$6v0(=P4xdu1t7mKPwE`yM>erGfta&!K%cwKY|$874N?jqzPWB zl8l2Tfg0X}BVvAfnGcYz5LbiL16g?iu3coAp(?147kEeTvh!*}sw z&c>q+5D_v45zRArIs}7S+KVhaw^Ks(?kifP{V=1)yY6?6v3Wt}p39@JOX5FJ9*mss z7MRs;!hBGA2r4KdPTj_HaF(j+ud>y8#tzBQo{k{UV`Kz`v)qzESqop?SJrZTPS3MQ z`JRV=W=Pd~T-C+&*o?O==+h(}-?rUrP$~XEynSofJ>?Qp}%ryj>}he#K5)DV(UCDSRJI;&VUzxOUyGA+KDRUK}j= zxE!{UNw^2}yaeVC9sn;36odm4YLA^Wx40_p5PYwgSZc(Ml0xkU~DqHjW1eoIZ! z_j$BHkf@h>(mI~(jCKhK=06XE<*d))1(o zzoooRoK5*LyQ3#=`J8;0;r_h3!BCsyzCL~7y0G=SMA&z=V{ zn#GVq>{Q6xlmft^babG;c)Oj*x03)Y_RSmU{4Jl02MNPei&Tv#hUNqkGS$l-1YwI>L6> z`LtDTXRtCH3I1>QXcg)9=QviBzLm?Fko2H!PHX&}Dq2eFAu(}-ZsOIK*VZjXB`qh5 zGrr^}V*LZouNMv_1PL57h!{5N;?=7Z2Qz1Nq@L4Jx0;tCxY^N^3h&S_f^89K_a&Of zF4CPj6A|~x?8T>xL}myFv~$|}_ZcAPd%r6mqzaL=I;y`XWQx;c!)et^V0jYc0JaE! zChiONRZpP=*BYC!o92`4t&#*pmsLL8r`d|KYvl8!Pzq&^*J{_(`L8RgYOXn!-jy$4 z9IG=w&-q+|nt2xv|C=SEl#_qqM`*)S|6V_FA8)^{urh*cb>5meRiY{8x!xQB3U`zi zXy3usa$dW!vxcknzp4dI>8i;t?Wv;2+TSE*|S!J1y#?(he!<~A#yTvhYr zU{MSf7+*wqZotaY0mG}ho{N%#PmOOF3_qc54KH{viwOlluxRD0!vEq8V({#DliBf8$LhDvmL9osi%BrR2LV(q3ea`!qeuk?pDn; z3n&C#J8*kNz+e+!!I7Wv2_>ZdGJ(%jfcF^Wy7 z<7)+wA<>|c9NW2v(}El>sw3GM2|O8-#T$7ZX6h4RR#*q_3Dh%J?^I*}pC-<%o=+&{ zQ`m$|kv)i5m5)Z)43f?q*9v`MUTkvAmQ&gdsH;;e;x&j9_JBVsq*H{1Iw;!#vq(*0 zlNI$4@~8~xmGw~+3Ww&?=%6+*!>NBw);JQ3q(zwjD)o@xy1HSYgJ~Z&)mWO)xZo zhPH23ZDTNH!>?#q2`)p$2gE96V24Vluguf#Ha*%_79&cz+AbalBW&BnFEw_ZkXa|& z>d7(INdN^xfim7;C^+ zUp~7}yiZz_#d}cWw_H$`mAC9iP3J%t(R!rz6`u?=f13nyhad14*|bChxJiX>Hdz$m zjsGs)>rc^bE$#5l-vqR~ofKrhYV_A?L$&3yb10#WbWl=I`T(L^GP~!d%Ji_Q`!_>`3WuP>qo9g!7V-0B$7|)iGXDKNvjF~E zK<0-)0iiD8FQS1XYY0y$$4jln!5>1Td^t^+R9m#bs*V9U*ifo}a82+AKYU_}J6N7d zG8)##^)~|xWq)C3M(Jh1uLq3DJeEOW)+gdFDTH>ngg``C)jkDq$4Khx{HH7=JyyWx zrf_NqjMQ+AiSa&onm&IjvyyfPN8A+v# zd?~~r`;Du_Cks@W5pE@pALQLqCX93x>;NCpH+{HO_#UVUVujSlc48Kf`sXF-YF(F3E(Y26EkNlM!lXgc?0Za z!(kBe6puWQKv#a5Kr7gx=peg9R)If~cD{Cxch$kV;>~JM;p)Nv)v><@S`x_>A4^we zU=%Azq%I~&38owXP@OghhlN@weh?Dss+(acpF`)Cz#uFAY9JxYzQwOo3gNr#bmc_F zkRiBoMa2T~L%n4Bpe=gfwX`s^oyc;oB#EEMZ@Iv>=u}wOfN!q_KJSn{PVpu z$&22$#s>_x!+CvU!3p8 z3JR>>Nvm}Q30f}0Zz(xK?Wn-W{QFz~AD8YHe~5EEXAxu*W5aCJclnQ6OApz_Q^=>C zce?l@*2b=)xv)6-7OHAumkg!nfVUUnipL;$q>wJoCu?M36J@_tV5^!3)v3X1r#xIpAl9LJe7swbtO9_n6Qd+jV`}>wB2KZ<5cw9jgsX8PR@jpC2%A8IvPm|>b z)Z49UR~`C9v)eD~Mm+xj^YQiZgdaWb8kbIYnz9LyCP9kSTobl!rzUeHM}nHFwI8B%mTB2HwMY3K%20DLsh6|M{Pf3sC)B>Vw6esX^3H-?xh zG~!2drNuBlOtZD-lpnX;I2D_C!GN2;G3P%*4>2UuAF0;MENY7n?2&vj)Sr^pc^D?q zOTNI=)>$91Vk4_9X~}GkSn>`Vr&rIYHF(|!fx;Qv1EB+pTnpx*lyb6|+C^&5L%Vsx zAx=3g>(gSx>^whsHsft3*Cj+b@bNY4RQ}h<|GuT>5Re?AJ1(` zw*T7Dzutj(pv0TAK+ra8|0ePK-)!*jruer@i8f4>L%DW)CFg&)(tj`UcLR1!1WCC% zeht}p2JYp5PV2vS=RYs1pTI4ueOmtynfL!|!M|g~ume3p=-mI0R{mw4%5cFgmf_l$ zkNwx&{jc(y{1V+cuMD*4Ln9LlRr4iEz1QPi*|AS+Z~qso{bx7vp+Fo^n}ZhygRwaN zEF;XjBlOE4g2fhp6P@qhe`4A!@w5PwvKU%CJ%M2HTu4U$g#fZe}hcedI{BTI=NW%RPX8onAd^5A3u5GSGj$8~1@3tSpN2 zh91Gi$EVdoFP^Kyp$~YoqSdZKo!9Je^a|+8$$^1=kg<@A3xv-3FO6tq+If zoBn5f`qyXv+Z}f?MlJ$frLgn2$F%sQPlq4VfD!J9vsRl1Hf!+c_J+fGNpn*KZTF;1 zB{(GX4Lx7_(3E-p=PL9+CzK4BkU>*=IABPe&Qxmo5fhV$_SQHbz|UT&%BFI=Wd;Ej zko%u?{@XN!`rE@?T_XuM6Q}e_r~r`4ns~Pir+@jbVfI^#H$VQFYW(N={pf=uBPl@< z5_^(YtPv%|s0})RK*r3ImDAl%{Xc4$|G8~)VHo`LT*D69Xp`^oeL8~Pog7u9(Wk!s z5TA=}`!|36b9Lb%_*vnb>C_VVQbH{WSjgLcMj zY|N}Kc+-K1n0PR_{M9S1rxG6V`CrWQFQM$OArsL8z(O)5Xiaf(WKv=*A)^(U`NUws z^}rs%fA;u2iCpSJyBb$Y01b@-Ft!LcEtz0T-52>&@&9V$zduM3Ip9~^w}=WXCW+W0 zDfLE)J+ojP*6@?af3D>VgD;k6C-!M*Y$RoO)#(!?h0TW6jAOMqufRS!s znhLy)123is6f6G^gOEbPD#9b6Dkn^jj@nSJ4x?r5fyMa#!S>#i=$P2FkZ-=gA z4Eu1Kf8R^}|2V3mFHE3F^J9<$pIxxdqexxmKYEq06g&*fL!`l2IxsEE8nFo|TzmS@ z6+AIYA}orcG}AN8gLOPv>%9NDcqzQUeL^5qq_Q@>jB?1@`K{pSu2{f$kZIq&`-E@JpM?68R?t4f+1N>;BI&_)tmV!e6#Aq~xXICnwP@XLEh2lD*x2eC|0t*|cl; zruV~!75X2}N{~qxpZmcn6CRI)Up5;pI;f=b5b^P!IBMt-ojxfl6zQ%Mb3^Iw`rV$o zUtJb57daNdDs$1-dcZ!b+ri*|(xbEQdXL!M-<6KscidaAZZ(&c;-RkYdX4|f8s{iS zc#Ke1!Fj&sC#>&rYr9l;?_Y1fBL4DXCGF2erS8Ft3U=F4Tv)if6kCh#InL$9d${Sd=@D{-^}Hs<(d@j_g8eEZ7L7s@ zr3A3Zb!0zDS>r3>7SDYLLe9{(DMJy}zP+Y}#aA~Wnro7Y!MOL1`x=|2Ruyd{dDvuD z=J~1(TKjeZkr*h3al>)z{~h)eUold@F6@rKD? z8okbaBce(u8>~V!j!~&dWfB-KQ1?=LvE9O8CIkCNOzvL#Yi*yIc+xZT#dOwMm8PrY zkUnyF|8lX~Xw(El$Yb&HLo%rukx+N5#->9xgRcPClL zh}|hkW=V3j?k7I?^Cau4W*8Wa@ZB#`E&Br~PW+TAIb?}?!=)f@hl^j{Y{rd@dY3^L zY$iI&5I8Ebs)@Rbm65vNFBL793#Upo90W)(k}!O zoQ=D?2ZFmh1ef5J;BLWneP`ADF{^6Tnx3BD z^mO;kbXzVI)+S4dISkxc`?FK|7pIl5?7~F;j71CYNl3qvql?s58mD1Bw`-@WnH zSTUUzr3XLy^_OcKSC*iCTorCBPI|pV_*^%bdJLSBr+w#kI+M5j=uwWgC3O{wnD>Qj zrFXO6ZYlR==IxB=$jDfd?TXt-FZI~hzQIbT`LDR9J>vs$v?^?$Tpw)GnvH6oo_jWo zazZARZc$-leiV&7V$zKC^o3t73a?g2Rl*>Tj5u<~B(1Nw$((1eWlh|^`Q!9l@2N31 zD#9D!Ontkk;~TK!7TnH$e)jbpn!q3=q$DS&RY>|0lW`%4$y2#fBWv)wAzf!ZWzaZ8 zDrgcWAu$)ydrCJ+n(=iqP_oW$ho;qM^~Onb@w0h8!jEKp5)zu`HSbEf)Q^Ww`M&Wc z*aNMF5w~ajWK%+~=`LqKHSNHAA)k_TnL^9jR(!cMo$8$PJ6U|OmYqKsS<#U4jsnWQt zvzc@{#BND>=SbidtwywI&u zr|cphm}P z{UFV1#zV!9BXJ=mhVQcGpyM#nwfDaO_XmNj8*abGOZ6;Fj+<6eQVQPCyTq5ipTMPF zeDT|eLnVjLzFy>R_FS8yWdu zAGzjL=!0dG7}Xtq9^ff{9+4plO~WDnGE39^0VnnP21lQ}E|p$`WL)D2z``sj9?r|4 zXmTQ%Qno5P6vzqf)_E;Fa8+P5MHrC6@93D}#H68`M`f)HCONJ^(A}h38+=ayS6$Kn z2~{*eDo2c?{Ksoyn}wgH5D-s4=*H~pUUw81RKM6CS=Z@A4svo8;)cEjbfHRAe{cEO zt1LHaT2dIABUbWA)zuam;dfV`Fivkd)53OC{-lkLk0w6U)=C!AJ<2q08D9s%T12OF zHYnbh^TeOD5&FuTbS=Y+5wxkCz#bO5Fcs5eJ4jK+734#TXM%2<l(gYrTh1&pK52-_ zEk*FcW11haDOOubHn(dzNNslPI&@@V&GWdw9=m+$Fry|K{CeVR-@z|Bf;IYb)(J_b zPz{dcPS0ZT543v?=tJw>>$`4} zy{rJloHs>LmoolV5^N9N^VF}I^mlRM8h7;bIX|`1l#&jZ0zctA$?K~h`jzvvihqhh zy_9`eb)T{=BQt464Pv^#ZEw9mxa(xG!5;vkKdA0rf#Qg~h|o&5w#S9A{n_kQfkrXl3Ee=qB-fRIkI z);>x%-ZKL)so7??gL9Ak`A@s+5goUIm!yhU$#s5Cf4HGHvlbb_*Z}1R+&D5S{H`8H zF(yCXp{WS;js7?@44;BZ{bm&mHUL4O(b-Z}rO6geA>QTQz~XwG=ERQKQ_D$W1&ftG z2teid=h}$n_r7dVf`!FuN!N9^cbE6I1GTmHZ%rG_=j6(s%WjDDc{VN<<;p6)Y$o8) zIWAs=3QIOWP=j%_js#=Jl5Be+7nG?x-j@K8`2*U$?x`<6n>a8N%>pmc78eT_7e`61uC4ITvi+sED^HCSE_M!p9f! z@4w9Pg+x-sCp!n)?$vgh;$~kPkz5%|Nsmt$2R-DU|H#N85%$$P5QDT7IqfVlMvQ)a zMi#pe$|jpe>Gru>Wq^L6o#YhAE;2d;4Bqct_3nfpET216Wq}>&-x>c_y#np`o(8dG8snIHefu!Wa(qn&kTA_yk z2;3y0q`psSE+QM2IOF{#Ki)L^Jm0RpqS`vNA)LE4zs=au$x^Z+Bv=Ffj@dfw@_-W? zSlcC33Qi;dtBKiRt}hSBT~ayvhzxXBkOijW8}dB2-}t+0_RVU~^@djt?&joJ6huIf zmRlRCl_7Y$JntQDLRwKCZ2>7gJHY0`7+a}24}fe*2=Icv*}3Aei>Qq zQY$Habd9oDDGyg^&O)J~Jl!XPY!}<|^L`P@-hX11ywlSqfjky>z9=K-#2{2Hl?eWRcviXxAemU8x{?lc*#==^rj#IXiChJFiWt?vl10S)X zRI1Pf7^grOnb{K_mK1Db z_#*44DxC|J#^oF%-t$rMt%Nt|!(LwWwT1pz#eicYO%$#v8ZpJqI2TW)>?g$$`J$YSC>IiJ@Hg?>xI zxYL}z^`dS3SNP0snd~f9md`qkZp1Qa+|=k28$dD{9)oBRb=##n4Oz`}31^kFLW!Ew zD3g%}cnQ*ZOCOQzi`#h4bjL7#%*blPGl&H|92XuKQ$B*8l z+;zmevQpndFw#CZNKS?}i?p#)u&#`lM&HZoIr!azzO8iTah;;Rn!};eK#e6`NV{nt z1O~mA&9et*6aA`Y-4}}d zbH@xI)6L66@|>%^UAr?5V91b>P$ z-U)DjdJp$ro;Y<{^}|G62=ecOn}p39%@u5oKtLJ~u3`qK7KrmUgQiHKUW5nyun?Mh z5a4t)Y#brWv%gDmZOk@&qe<7?;7kO1j!r%44;)Gkf*D(g#GRz2s%+crIDLuUrG_Dh z>bz2=PUqzozW>db#_Cu%`MAY1q5)-Ak9HSQZT`T$Lk?2gpVar-gmDOG2=@w@`=&ZhBAc%fXrwgOvVAs^^5pJbK%jQ4qXW)T!kV(n2xJ3YC68C(N8o#u| z3t|{E4r0SGKvXS8_IgXh`gg}*z!iD-O@CW-29hKXCJsyAQQ*g{jkmB)`8+&T?ijdA^#{y}rP^q590l9sYGD__0RyC20N9GOzIO-)PC^=w4_NWO`!r6UCB@W#8@(L z`>S2Fzf9u?u9S2xyR{;-H`&&S-mytQ&C??8$Mo{kg*s&EBMU~FMbY)K?)lhyCtNO3 zo52S$;NSpW5@}y8tJm4R)>r&t28=NE5=V5|#tF}ote8G5TRJTI_5Cl)ZmA&NgrErY z+cc!f30-$AX09*76Mf0#4`#$n$g-La?^J6c6W3o-EeLlbrYZNVB!28_?}B{5X-WIU=6-XJ?W!22xnP!K!Or(Wa3CXW9#olrXvPSVWx$i=e zoMTGGJ#T-nOQu~OX_w5h`AKBm>U_AQ^w{4Vj!w)|eHK$a>dM(D+R1lD;4uh(&#z(B zAF^)=lj~+`VurQ<>)p}u5~Eb#`O+rEk8dC(zOg=~C*6|XWf;{kI9J*5-###@PiH}h zk!6w$QK=<0DfCP2hy^YrXU-#U(TmV1){y4M1u)L zzT0WIBFOe?&S!kC0!0m(cbSCVNlAFM5Oy^GPUQt=o)6zEoQ2CMN?X#w7Om+#S4+&y zaU5SQ%;RysmcDAE4uxBB(>gL)Rx4c{Xu@J_5jhP;$Vp5V|4Vz+mc%6nF;TMqG%Vry zaeR~FzE-x2xgrcd#DPFjMk1WeAxZLQAZz$U#o^LDi}CXwbqD0T7sR$q-F<7-^~Z%V z^a1(7ixHY-b?1G+0~VR(T|Hsd0%V9)0Qf8TGL_9dJ6%k*XV^E9wpQPpH~c2n0ZB5e z8PqPS(-=0JgJ%D<3l1bK><&))ZkSH@g)$5V`4Who!c1eyfALSh@3Q;b5 z?@_@EzT_#~F1N%4y^DoiU7Y>j^CUBsa131$83K z+1dCOY5TaXoJDP~fc=9`+{s&DkZ0=Fr%AY+GK$lxOKxmR=(NzC{lPHF3rqZwh5buM zf~cUKo(`%ELugB|^2iAGOdXo=?P-vbP>MjqY4+t#;Sf-Njwx+tB2?AmRh7^G*eeJ?BolEL*Ar$(r1!}9Xsohri*mpcv*3yjyxYObSH74j_2GwS{PdNV zU_N(V3GpVc8==la|hgQvYaUR2-P|f#Ptv!sPd_1b&enWNO{F>w>SWUZLE*6Oj1R_N7{v@EyUN|vRB>ck(PPuNn=qZuhy zQgdASjx#D(+_AAmrQF7vPPMz6g5*lH;;sTPfiynNy@lbnw+3i9*vc^g8)w22O__I& zpV}~e5>>VqI=-k`&i%wB^Y8k(-%ZuX8Kx9(%h74l+{#*MC@d8Yg#qkO#Y;-INFHs1 zgN4P3vmIBWIJjd4d!2=YvEwqSGM8}DcX`bSAx?f6PS^7TQ{@Xbo8J_#&811bpvj<# z>Y{}$?#bp~Zg$1xnjCd8o_6BQeh7=)@u=QAqlDEgzCa2w5XN;?b&zjxpLyf-cA#}Q zQdkW#X;XTbl4#ti*pB)}WZzDVU@W$v!_ON?ni2X@j{GFih9;~&7aaV7k@Ebh$#Tq1@JN|{_l#Y!#^blL=wYnwYUoM{7XJr!2?ke& z^zY--g=tOarlPx!sQk_;w2it(P11GdD=}GRR1B5gWw@otdmXNrmOoB+UTk>>{e@6J z_9Mi9^Es={|K#>3Ho!s`MI*cIfKAcGGQ=BSL7G?S^J6J;=h-nE&*$Tl`@nB`*oql! zB-geht-V~lg&&7P%*H3U^?s~a$jSHC)?p%$J)9JzHLc`Og|nn{z8>TN-t_z|_^%lj z+lr*t8IEU8ll20m7sgOi^-6E+3XE)YJc zm3H{fzl$x)G;~LDI~lSE&oVgKvBjG(v_%#R?DTY-J$Zk30P|roCF7@b(+YhG_+O{0 z{%cWHllCV9?g&Mk84BJ1mdDmnvDtg}^y{U9H>b%|$0uD+ke&(MReBa5VC&hmYq85u zHJS&VC@mi-*zu5)(wj4z5tm-)(@$W~HI`W9Q`$c)rwh2IkLx!`46ZpuvzW-4Qf3`n z9Dj#0TCi6J?0<*LEtC1EbIl6KGQ#9|5G}Bz$JOR{JDUfR66ej@r_{@s__7q1z>f`C zg&k9;SM!BO7JN@>oBU<4?#>`oQdNMD5uQ!V%C@te7yy;o@IHdwDwp8N&+CBXhsKxl zOLHTF%LJ5jSC0Aj5W$b<;~ngf&kf#SrRcY+m#~*`&hu|U zfsMPz$LEGkv%IvG!7WPZ6B*5ePqvg)-aU*o zW#)|~A3jz=Ga-zb+R&>rZ}7$l?^^&nH3l+OTHuF3gqT^{_hJjfZ|P$*ohh5Obt;N? zoCGZiIowtIP)2(F_SmNe&`hrww(>_7U*AGnn{GilNp3Yz1S1>!2VVil1!L~77^@}o zD1fBJ5Si*IfFrz0(CQb<0I=cqiUaoh(h3`cDF5dVB#shG%rP}@`=~8(%~qYOmK^(6 z#|H+=fv*9^A;D0=UlHRr(F!ZQF5fOUNAY_qJn=rmu{pF{9a8tuK4)w7?xJNi*=}S% zyNYgL3WK*Mz_R@(*nR#Z#mSu;EmLS-O}6FHfvVO(b^=LM-gK8Km%=UB{%{^H^WUW( zuY%Cm$9$$b(|g&|+*>-YvIsliv1yBODQ3dZqbXdE>npW_rNorstA{;f!i?w2heM9{dbW!AxGYldHCa@N>M(TS8S7-t#2M_R^Hv=#YePwcnBFG0kM zU`EQsd5bgFyFbBU_rWsJjJ7j>9HZ}sk|)^QiH(N~Gz96I9fjX=H*iE8emu(VyGhmo z2yW=My)K1#h_?uCjk&Ko+q(q%zHB3t%=kLifr%Qp zC2x5p+s`;lte#|^LQR9$+P%y|tWzxd7Dx)gFpzW3m} zK|RGVf-ra{5m_{)R2wG}^3N1*xt|m6m>K6B^z_)mlHiFQD95d@OA30w8Wz58gsf1J zT_;CI97n_3sm%+YbyJzC0x#uL^ss;*uDFN0wC4dfikJ~%z;qiHB@Xu$=(>I3j-sOWJu z-CQ{DOA)K(^r&8OTYKwJntZ6-3eh%xdyUYic2?J&H{S}1H6w?rSkPSK1kg5JMfb8aa@(}ieMDy-~xQCOX7qRQ&2-8)Iw2@ZT}(d0xNSu5jB!d`v2 zE{y@~t@_@lS^FCecr-SXi;xd*9$J;EIQZ9m?mwuq;2A|*B$>e*R^pYpllKev-WiIC znc7r=6HC(N=Ypg=yv32%3MP1F6NByB3W3-LXV!T;h_ZAjmeoXTO35%$5JM6|TB3$! zFB4r}4@f|*qClf;>0g6zR7cs9FG4<3q+iN(A*DF^si+tSDxTn2tuw$GqymZcR4Wh6 z`)iOrGBf=v-x(C}{J{E&H~@yCBLgAT|1U-403mlR_EW^*!_M{;6TILLQ?uQ?KP0bB z(y5dtADhvEvTT#Cqbi+}tuxaEt?dW3ZEXln)a~N=WC6_GOf83IWyxp87#WVuv>6`EuNUV5$P2d`A;(6w-YkFR$(GcKY!6S ze)B0dY`SXOJ~B6{;vmA=E$5fJkAAS2mYG+z$mJ4+5eb!_k z=M5yBB+;{?>wz~dCAV;T*{z`f?MoM7uxZri100JviRS-S z*~Rkw`~9@!5K6Zr+8EBbu=qi&R~EqXe5Tn0_Qcu6X9E^ybI%OUh#p)=uHY|4LZQ) zcwF=?hUP{Wq1Khg1M^8hF@S=GygNzGfV4cM=yS_F2krMT6{y@sDLc-6yo%D>73o$| zUF%h89theZdblGwn^ZR2JwZNzyu4)SmsPsW7$ne3o<#>w->Q;0=+Q2*_a}mi z^xU4eqsN4RrRNT52_-18vmGS%c~Lqb-ix@|+UfUY-iN7WI)W2|J!>BO)*|Ax_VG0O zGQF}9TqMq?r>1rj&mix!dhemn;4$}atzgsN-bORIUO9m@_XG#xTj))$?9iC3e<_Co z&q{dB${3)OW%Rby`|57`k1p(F!R}-avE(Fq1jVNEV`^FGw^jgNZvQ%;B+XKk zrCI@HaicGiM|HErka`5}XX_tShVBqs=m4h(v7f_)T$>_QRRMf2*B~yOB)UTTro30c zXwQ(=Z^Qic8}4VZXJJC%6h2&pdJS{n+Att0%y6{5N$bU>duY`x7->73!EMJA6XW}3$=% z-TrtB^fUGM^e@wf1K+8$lt;nE&rKGH^+Ih=;dCN71q_1&CaHq7*_BUmQXPe5%#yfuww+GXm*d0SIdv=dUVnog zYd|l&k&B095n+EM8!zt|^^(F zz8h{T4hXlbmg(=QOCtal%7Ckyj)zknk)lW6;WCfcK|9a>zqXHD(p+nW>AdR-YsdDlSomA8pLA zErM?c$@|Jme^pukIiTw*&HVHRrjxdYK0aeY)w}@hb&LZi0mad9LCBDU z;TiO*eIV2?^YFzI7-dKZWX4sliYx1c5PTZjJ-T@=7*p!RF4jjZB9V9(`@CcOo?5jHwdB zh|FirY8NFGR>JdBa2d2+YGKm^O{`_!D=vNNRamebNo^Zx9lI~O+&j}9p1NGeebxE| z)LjBy#?mG3*v+yTEo<`2K^$_g(zaB8@C?;#iJP{tKcZiSJ16%d@O-|X3-`#-F>L+q z0K6145sm?I)7<7nPjSyg5o^A1?FA~}N3OgxT_8}7Lvxa*AN|gmxLK;)8-#w;M zNazh5QC`Le>3)+dmaFl}BFw`Gh(ivI(YyZ?Wd_)v=<5ri%TJHsMl5|SlgD|%JK*`t zMf#sM#TYJ%+9C#KOyCuZ8e)Y!Hnw}q09Tc6Paq*`#25CWp@BWc=5>61oAyt}>WwSz z!MgTf#;2FsA;L;8M0bVgh{#~0c%x_ZP7s-tJQ96b0tMEy%gD^dHM@1bc;FrP2=#3} zp*>QH;pNUn=uozWPAY~S&)qmLTkVT0H?s!b-ry2$WUG1OpQlNHFGkhNFGc1Mm}z%% zl%aJvEU{6bG#Obau5EkfC%sKhr^H&t2GD@J7?Uagc?EARPtT2$cU%Q1HeM= zdYU2Q1ks%o=}qKh67p;!+76NO^X}7&BTL5iP%oW}Sgy{&c??e`jafsInYW$l%NQ8g z+9YTQJXU;NPNTP+*t~9B=XMte-!1NKfcZjxeJf|7&?8Gme+h*|OVQDzCRUC*yH4B) zgY4p{4&xT1GkrGNuXLD=8vTWTqS>>6x2-gYzARH!Txy!WR!f=h)j9=FYd^gnrc-ah zVFc8hpxsZ()O?2Da!jD*L;yP$XTB%kgu)^Kr~hSg|_8 zcXqmES_eJ5*ej?2)rs`=K=ebTOlsr#zUh0=qDfA!&Wi9S66NpTZ}pMOVU4UpAc9<5^!rC zW&IhpnYejH;1lti|~GTlJ}8gVye0ChI@mgFWUq4 z@(B5Cl<=B=RRuDc&Kzp?RqZZVdFP$@u2f=qifJ=trDzN|=g43y+uLgXxQGRf69KSC zGVo*2=a=RVuLK?YWM#YGqfxFHyWRF2jjUc_3nCGSNI<)F4HeOD_qKqKqxXdv{GjM! zbH>N2MAzff#|)0Td$laX@Tp+Pa4U42uo#k~0`KNS#Is=6bKZJZn`P20>iJDIE<^b^ zBV`@`4-;xRE=A75DM*Z0axeSvRa42x<^<9R7(gQw;7`NJziu zbH>KAirynr=gwK`L0VvJedFMtlxiPp@8@zuc--=CbGfO+wO0opLkAgp+V9&9^m#>Y zUM=z_m<|^4aLyI*PE>_CwfzY*K+h5$Y`#Wf*584)4YXYs9*(aO}=WkS}F3J zEroB5s*R(4|AJy=^p+dE=Nm!g7%jtz{DZ-6R-{Wy@(JNmBC?yN%NatPs=pO*cBJ=nEm@2eSvhatWJ(n8u(BG6~==Y>S3ORgS%!a+$0UvezJHc?HGL` zfhtsm$=h5cf5G=WmoU3;ydX=OfL6!SmfCfBzG1Zv7Gpe+UF{ARFQ|d4Dx%HtY<+J{hXe~z7jR-6|79@LaxaX z(P4QmwUzFO?wMXa0GWR5C>q4OIt@a>P5F8&#QSZWE*yZ=2lDe&Yq@>UHNi7ZnoN7d zjKh=u^&V-T6vHhgCdr3d!Tz$>c}Jk28}8jjrKk37LPB*>5!WZ$-)Oj`tq*T$4usGu zSQhHvx3g+UqIZlKHkl4prPhG`Ub{v~TV&?BHc|x5hyb4(@vrtP&1Oe)*)?-Smg@`e9u!AP@iS!~I{VHTjx%r!Mz zi5r!67(Y}o1`;J|$zJRWz04fo3_W@OI<4C%;Esb~J_#I1av#k6()M~D{fve)#{Rt? zQRG6jN5;oUM8+-;@A;BeYcPx=O2Oh27Ky;OaSKZXc2fz>E`ezvaiewf z@e8RHkR)(`GO}zsqL|u6rW_YRzD4rZ+E{>0A)8f*C2WYXft6b!BG?^eBCuw#d46 z<*>zA6i6}JYr8BhJi`)-hO~o#F~sv>0KcR}I&2Myv`-J7>&BZLnfl@ga^5lTU3ObM zTD=y=+2T>e$>!G59NNjaG=75TQ+F(cg2_iudQU4y1@*xM2ZYfRa2a3_sL6+N5VTSiE?ZYHWBH!m_99$ z0udu;*HB#8N;E@=o^F*ej!LFzSi&zvpvGvzAdeS)aP&#i>Fc|jseHj3fcaHKoIPSK zz%ki+LLj}sgWZrq&P@RxO;5W2vqb(JyjK>}0Um|yPJTO62EG8Wsa^Z zvRs}4IBH+?{ZvL(C!&6H37mZy@@OH4cNii3;`2WBK29LC_@O7E)5I^1EMFgY`8Kbp zCbMeyXyT<;&0Z4jqE^*8c*qneh81R(cuAaXf*#00i_*I-lu;i!%N(3Q7+i>^P0~wg zyrw#TqG07oz5}@!1mZ(u9HjM>TiVgi(1csv#-()Iy7 z!ROZOkC#$bN|D*(6X|3I+h+nW=?0 zLt`?qfKM(Yt<_;_gh?wg_n$8l5~VRk6L*~b98p@EcGrV;BrzVphhQ(muXvjVAy!A> zRe5|DdooSF-D@*m+|LxI$;-S?UV+c}x{75f+HaB>SC4m*Cu=uvbk!D@VqcfN*B45R z)u;xJx<>)VB=kk|CS=XkrKZrPZilfHti^ycF6^l9~L;LGaYT%6so z%SuK`s^Oh~uF4%xL%JlWe#U3m0h9#m`HDt*N z4p(=FORFj(V(P@2UcGGkwuz=;;|kcLebK%lcHXL^^~kCpIb-g1j@P(NeanwC{i1C6I(2T{KWlh4}eC zKC-=TfPJ6qiWHj|&02IkAa%XpW;3#$LhggunHaZS>&61zhipefaqc5k_hurQTU_t4FQNa+!1WW@ zmjf>?;Jlv!;e_69o}GfqY_6+D(yC2CqSaAft;PP9ws~X9vo+xhjulq;d{yksYEYrX zax3`!_Y{xE@=8SQAN!M3Vr-`xftP|t6XxNS6(uhuKtu7XK^7LERjP%;S)b?CV)4u& z2hiK}Vwf26CnC~92F|n3c6r)*UfTFXe;)PV`E%-bud}o&6A>`{<(CvQEt2vjp9Dht zUsu>pwSvTxs&;J&!jAc?-O{7wL?);TV&A#T(cnIt>!sNJ$2$4HmP!_-NCRfz3eJzA zJamnIa9{Y$b~z=V%E4p_#LHdI;pAy+E$CnVMi*jevEVa7}?cTtn5=xn{LOdYg3P6RYE9@p+= z12*`x5a|WIi%%&t-W;1EE3hRYUhQSyy8QYdO@6F5-Cf|&IK)D+G)a>@n|{~#*o8N& zQnnj0c4~_g=HSLX=;?gQ`inpGU%#Nolp+6tvnuC-^Zob#qvAb!H+5RZSYA^sM{P*&LM6=1J?ejjX$tV zE!a7wUL60X>+cmh<9BbI`LpeH`0trZ~EUPMTq#X+P1qb4rG@xdg(YYzEg8I{)++rH)FgP_W14$ zrIFtq*wtAs4mfxljI_;v9trrk=%51Q+Q z_R2P`>fu~n+4zgxf1+9;7aq2$qg_y$)mUU>J+Gs~>-Th^E_!zx(m#P~hEiFroxOvy zrxM)X)a6r_4yEm2Ew*L}#Pygf(i z3qeNqDFcMW7iBTEP-FOV{=+b{2H?Q|UTgo@QE%(@-P~GnbsMHHH28RQu&l7PJ@I_C zllHo-1b(e8X|L-b=bt%Qi12#_EIfC%M9gKoPH;Q77`m>JWIUV;omZzN8L2mF=xb|w zxYo{aeXd4a)?n;$cb4aMXE%Y-+1S#&@o&uicO~EsEg&Q$q{e-tOZlTT;a0)=kD0&ybADE?>hXeJ$JpuKs2NLB{-Y+n@ejdD5WXy80x`p^%48FLC{~^_n-sNF?mY z?$=J3{95rx?tj1tH0JkeOgctJq&2LYFDeEsah1{~Rma!^O%@7j5*A)MSgUpXzc)6} zl+U-dZc+T~|6!UKy*oF42OB}rA$eJed4r0IzPjEwF2M1RjUGC^TWfoQ7y91>+W$jK zBHF)1r%SD%`ak?6po-S0r}6~<5&l0={Oim$dPgnsFTtm81DO8@j^>`c3D* Date: Tue, 21 Apr 2026 11:42:38 +0100 Subject: [PATCH 06/10] Copilot CLI: document rolling back changes made during a CLI session (#60810) Co-authored-by: Copilot Autofix powered by AI <175728472+Copilot@users.noreply.github.com> Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com> Co-authored-by: mc <42146119+mchammer01@users.noreply.github.com> Co-authored-by: Vanessa --- .../copilot-cli/cancel-and-roll-back.md | 75 +++++++++++++++++++ .../concepts/agents/copilot-cli/index.md | 1 + content/copilot/how-tos/copilot-cli/index.md | 2 + .../how-tos/copilot-cli/roll-back-changes.md | 70 +++++++++++++++++ .../copilot/copilot-cli/cli-rewind-warning.md | 1 + 5 files changed, 149 insertions(+) create mode 100644 content/copilot/concepts/agents/copilot-cli/cancel-and-roll-back.md create mode 100644 content/copilot/how-tos/copilot-cli/roll-back-changes.md create mode 100644 data/reusables/copilot/copilot-cli/cli-rewind-warning.md diff --git a/content/copilot/concepts/agents/copilot-cli/cancel-and-roll-back.md b/content/copilot/concepts/agents/copilot-cli/cancel-and-roll-back.md new file mode 100644 index 000000000000..e25d30058598 --- /dev/null +++ b/content/copilot/concepts/agents/copilot-cli/cancel-and-roll-back.md @@ -0,0 +1,75 @@ +--- +title: Canceling a {% data variables.copilot.copilot_cli %} operation and rolling back changes +shortTitle: Cancel and roll back +intro: 'Find out about the different ways to cancel an active {% data variables.product.prodname_copilot_short %} operation, and how to roll back changes made during a session if the result isn''t what you expected.' +versions: + feature: copilot +contentType: concepts +docsTeamMetrics: + - copilot-cli +category: + - Learn about Copilot # Copilot discovery page + - Learn about Copilot CLI # Copilot CLI bespoke page +--- + +## Introduction + +When you work in an interactive {% data variables.copilot.copilot_cli_short %} session, you can press Esc or Ctrl+C to control what {% data variables.product.prodname_copilot_short %} is doing. Both keypresses can cancel operations, but they work slightly differently: + +* Ctrl+C immediately stops the current operation. +* A single Esc keypress gives you more gradual control—letting you dismiss dialogs, clear queued prompts, or cancel an operation in stages. + +If {% data variables.product.prodname_copilot_short %} has already made changes and you want to undo them, you can roll back your workspace to a previous point in the session. {% data variables.copilot.copilot_cli_short %} takes a snapshot of your workspace state each time you enter a prompt, and this allows you to rewind to an earlier state by pressing Esc twice when {% data variables.product.prodname_copilot_short %} is idle and the input area is empty. + +## What pressing Esc does in different situations + +Pressing Esc once performs different actions depending on the current state of the session: + +| Current state | What pressing Esc does | +| ------------- | ------------------------ | +| {% data variables.product.prodname_copilot_short %} is active with no queued prompts. | Cancels the running operation. | +| {% data variables.product.prodname_copilot_short %} is active and there are queued prompts. | Clears the queued prompts without stopping the current operation. | +| A dialog, overlay, or picker is open. | Closes the dialog, overlay, or picker. | +| {% data variables.product.prodname_copilot_short %} is idle. | Shows a brief reminder that pressing Esc again quickly will open the rewind picker. See [Rolling back changes](#rolling-back-changes). | + +## When to use Esc instead of Ctrl+C + +The main difference between these two ways of canceling an operation is that Esc is designed for gradual, targeted intervention, while Ctrl+C is a hard stop. + +Use Esc when you want to interact with {% data variables.product.prodname_copilot_short %} without necessarily ending the current operation. For example, if a permission dialog appears and you want to deny that specific request, pressing Esc dismisses the dialog and {% data variables.product.prodname_copilot_short %} continues working—it just won't use the tool you denied. Similarly, if you've queued follow-up prompts and want to cancel them without interrupting the work already in progress, Esc clears the queue while the current operation keeps running. Pressing Esc only cancels the operation outright if there are no dialogs open and no queued prompts to clear first. + +Use Ctrl+C when you want to stop everything at once. It immediately cancels the active operation and clears any queued prompts in a single keypress. Any file write that is already in progress will complete—files are not left corrupted mid-write—but any remaining planned changes are abandoned. Pressing Ctrl+C a second time within two seconds, when the input area is empty, exits the session entirely. + +As a rule of thumb, use Esc when you want to intervene selectively, and Ctrl+C when you want to stop and start over. + +## Rolling back changes + +While {% data variables.product.prodname_copilot_short %} is inactive and there is no text in the input area, you can press Esc twice to display a list of points in your current session that you can roll back to. Each point corresponds to a snapshot of your workspace that was taken immediately before {% data variables.product.prodname_copilot_short %} started working on the prompt shown in the list. + +For full details of how to use the double Esc keypress to roll back changes made during a session, see [AUTOTITLE](/copilot/how-tos/copilot-cli/roll-back-changes). + +> [!WARNING] +> {% data reusables.copilot.copilot-cli.cli-rewind-warning %} + +### What happens when you roll back + +When you select a snapshot from the rewind picker, the following actions occur: + +1. **Git state is restored.** The repository is checked out to the Git commit and branch recorded in the snapshot. +1. **Untracked files are cleaned.** Files that did not exist at the time of the snapshot are removed. +1. **Modified files are restored.** Files that were changed after the snapshot are reverted to their backed-up state, including permissions and staging state. +1. **Session history is truncated.** The conversation is rewound to the point where the selected snapshot was taken. All messages and tool calls that occurred after that point are removed from the session. +1. **Snapshots are removed.** The selected snapshot and all snapshots after it are permanently deleted. Only snapshots from earlier conversation steps remain available for future rewinds. +1. **Rollback confirmed.** After the rollback, {% data variables.product.prodname_copilot_short %} displays a message indicating how many files were restored. +1. **Your prompt is restored.** The prompt associated with the selected snapshot is placed in the input area. + +### Changes that can't be rolled back + +Rewind is unavailable in the following situations: + +* **Files over 10 MB.** Individual files larger than 10 MB are skipped during snapshot creation. Changes to these files are not restored during a rollback. +* **More than 500 changed files.** If more than 500 files were changed during a single step of a CLI conversation, a snapshot is not created for that step. You will not be able to roll back changes made in that step. Earlier snapshots are unaffected. + +## Further reading + +* [AUTOTITLE](/copilot/reference/copilot-cli-reference/cli-command-reference) diff --git a/content/copilot/concepts/agents/copilot-cli/index.md b/content/copilot/concepts/agents/copilot-cli/index.md index a78a8fa3a4be..4fb6f7c59556 100644 --- a/content/copilot/concepts/agents/copilot-cli/index.md +++ b/content/copilot/concepts/agents/copilot-cli/index.md @@ -8,6 +8,7 @@ versions: children: - /about-copilot-cli - /comparing-cli-features + - /cancel-and-roll-back - /about-remote-access - /about-custom-agents - /about-cli-plugins diff --git a/content/copilot/how-tos/copilot-cli/index.md b/content/copilot/how-tos/copilot-cli/index.md index 101102e16629..bb40b56de0c1 100644 --- a/content/copilot/how-tos/copilot-cli/index.md +++ b/content/copilot/how-tos/copilot-cli/index.md @@ -25,9 +25,11 @@ children: - /use-copilot-cli-agents - /administer-copilot-cli-for-your-enterprise - /speed-up-task-completion + - /roll-back-changes - /chronicle - /content/copilot/concepts/agents/copilot-cli/about-copilot-cli - /content/copilot/concepts/agents/copilot-cli/comparing-cli-features + - /content/copilot/concepts/agents/copilot-cli/cancel-and-roll-back - /content/copilot/concepts/agents/about-agent-skills - /content/copilot/concepts/agents/copilot-cli/about-cli-plugins - /content/copilot/concepts/agents/copilot-cli/autopilot diff --git a/content/copilot/how-tos/copilot-cli/roll-back-changes.md b/content/copilot/how-tos/copilot-cli/roll-back-changes.md new file mode 100644 index 000000000000..a7c47cfd1920 --- /dev/null +++ b/content/copilot/how-tos/copilot-cli/roll-back-changes.md @@ -0,0 +1,70 @@ +--- +title: Rolling back changes made during a {% data variables.copilot.copilot_cli %} session +shortTitle: Roll back changes +intro: 'Rewind your {% data variables.copilot.copilot_cli_short %} session to a previous prompt to undo changes and restore your repository to a previous state.' +versions: + feature: copilot +contentType: how-tos +category: + - Author and optimize with Copilot # Copilot discovery page + - Build with Copilot CLI # Copilot CLI bespoke page +docsTeamMetrics: + - copilot-cli +--- + +## Introduction + +When you work in an interactive {% data variables.copilot.copilot_cli_short %} session, {% data variables.product.prodname_copilot_short %} can make changes to files, run shell commands, and modify your repository. If the result isn't what you expected, you can rewind to a previous point in the session to undo those changes. + +When you enter a prompt, the first thing {% data variables.copilot.copilot_cli_short %} does is take a snapshot of your workspace state. This snapshot allows you to roll back to that point in the session if you need to. You can trigger a rewind by pressing Esc twice, or by using the `/undo` slash command. + +This article explains how to roll back changes. For more conceptual information about rewinding to an earlier point in a session, see [AUTOTITLE](/copilot/concepts/agents/copilot-cli/cancel-and-roll-back). + +## Prerequisites + +* **You must be working in a Git repository with at least one commit.** {% data variables.copilot.copilot_cli_short %} uses Git operations to track and restore workspace state. +* **A snapshot must exist.** Snapshots are created automatically at the start of each of your interactions with {% data variables.product.prodname_copilot_short %} in a CLI session. You can't roll back changes made before your first prompt in a session, or to the repository state for a step where snapshot creation was skipped, see [Changes that can't be rolled back](/copilot/concepts/agents/copilot-cli/cancel-and-roll-back#changes-that-cant-be-rolled-back). + +## Rolling back with a double Esc keypress + +> [!WARNING] +> * {% data reusables.copilot.copilot-cli.cli-rewind-warning %} +> * Rewinding cannot be undone. Once you roll back to a snapshot, all snapshots and session history after that point are permanently removed. + +When {% data variables.product.prodname_copilot_short %} has finished responding to a prompt you've entered: + +1. Make sure the input area is empty. If there's text in the input area, pressing Esc twice in quick succession clears the text. +1. Press Esc twice in quick succession to open the rewind picker. + + The rewind picker lists the available snapshots for the current session, with the most recent first. The ten most recent snapshots are displayed. If there are more than ten snapshots available you can use the arrow key to scroll down through earlier snapshots. + + For each snapshot, the beginning of the prompt you entered is shown, with an indication of how long ago you submitted it. + +1. Choose a snapshot to roll back to. This will return you to the state of the repository when you entered the associated prompt. + + > [!NOTE] + > The repository is rolled back to its state immediately before {% data variables.product.prodname_copilot_short %} started working on the prompt, not immediately after it finished working on the prompt. + + The prompt you selected is shown in the input area, so you can edit and resubmit it, if required. + +## Rolling back with the `/undo` slash command + +The `/undo` slash command, and its alias `/rewind`, provide an alternative way of opening the rewind picker. + +Both commands produce the same result that you get by pressing Esc twice when {% data variables.product.prodname_copilot_short %} is idle and there is no text in the input area. + +## Verifying the rollback + +After rolling back, you can use Git commands to verify the state of your repository and confirm that it matches your expectations. + +Typing `!` allows you to run shell commands directly from the {% data variables.copilot.copilot_cli_short %} input prompt, so you don't need to exit the CLI to check the repository state. + +| To do this | Enter this command | +| ---------- | ------------------------ | +| Check which files show as modified, staged, or untracked. | `! git status` | +| Show the SHA and commit message of the current commit. | `! git log --oneline -1` | +| Review the unstaged changes. | `! git diff` | + +## Further reading + +* [AUTOTITLE](/copilot/reference/copilot-cli-reference/cli-command-reference) diff --git a/data/reusables/copilot/copilot-cli/cli-rewind-warning.md b/data/reusables/copilot/copilot-cli/cli-rewind-warning.md new file mode 100644 index 000000000000..0218b807e97d --- /dev/null +++ b/data/reusables/copilot/copilot-cli/cli-rewind-warning.md @@ -0,0 +1 @@ +Rewinding restores your entire workspace to the state it was in at the selected snapshot. This reverts all changes made after that point—not only changes made by {% data variables.product.prodname_copilot_short %}, but also any manual edits, and changes resulting from shell commands. Any new files created in the workspace after the snapshot was taken are deleted, irrespective of their Git status. From 960897d217110d8fe4525e7dfa27b7502946d4f2 Mon Sep 17 00:00:00 2001 From: hubwriter Date: Tue, 21 Apr 2026 12:47:51 +0100 Subject: [PATCH 07/10] Update exclusions in config.yml (#60842) --- src/content-pipelines/config.yml | 5 ++++- 1 file changed, 4 insertions(+), 1 deletion(-) diff --git a/src/content-pipelines/config.yml b/src/content-pipelines/config.yml index 2ba9ae316698..01d357911c3c 100644 --- a/src/content-pipelines/config.yml +++ b/src/content-pipelines/config.yml @@ -24,7 +24,10 @@ copilot-cli: - content/copilot/reference/copilot-cli-reference/cli-plugin-reference.md - content/copilot/reference/copilot-cli-reference/acp-server.md - content/copilot/reference/copilot-cli-reference/cli-config-dir-reference.md - exclusions: [] + exclusions: + - All mentions of, or information directly relating to, feature flags + - enabledFeatureFlags configuration setting + - COPILOT_CLI_ENABLED_FEATURE_FLAGS environment variable content-mapping: | cli-plugin-reference.md covers only plugin-specific content. All other CLI topics (hooks, MCP, skills, agents, permissions, etc.) belong in cli-command-reference.md even when they mention plugins. From 911f0e2bdda30b29a2d463252304fd11ce768541 Mon Sep 17 00:00:00 2001 From: hubwriter Date: Tue, 21 Apr 2026 14:24:13 +0100 Subject: [PATCH 08/10] Copilot CLI: Update the command reference article (#60824) Co-authored-by: copilot-swe-agent[bot] <198982749+Copilot@users.noreply.github.com> Co-authored-by: Copilot Autofix powered by AI <175728472+Copilot@users.noreply.github.com> Co-authored-by: Vanessa --- .../sdk-and-cli-compatibility.md | 1 - .../cli-command-reference.md | 149 +++++++++--------- data/reusables/copilot/experimental.md | 1 + 3 files changed, 74 insertions(+), 77 deletions(-) create mode 100644 data/reusables/copilot/experimental.md diff --git a/content/copilot/how-tos/copilot-sdk/troubleshooting/sdk-and-cli-compatibility.md b/content/copilot/how-tos/copilot-sdk/troubleshooting/sdk-and-cli-compatibility.md index 5f10da7276ea..c83b556c9cbc 100644 --- a/content/copilot/how-tos/copilot-sdk/troubleshooting/sdk-and-cli-compatibility.md +++ b/content/copilot/how-tos/copilot-sdk/troubleshooting/sdk-and-cli-compatibility.md @@ -118,7 +118,6 @@ contentType: how-tos | Screen reader mode | `--screen-reader` | Accessibility | | Rich diff rendering | `--plain-diff` | Terminal rendering | | Startup banner | `--banner` | Visual element | -| Streamer mode | `/streamer-mode` | TUI display mode | | Alternate screen buffer | `--alt-screen`, `--no-alt-screen` | Terminal rendering | | Mouse support | `--mouse`, `--no-mouse` | Terminal input | | **Path/Permission Shortcuts** | | | diff --git a/content/copilot/reference/copilot-cli-reference/cli-command-reference.md b/content/copilot/reference/copilot-cli-reference/cli-command-reference.md index b5cf739dba0b..e183675a7b2a 100644 --- a/content/copilot/reference/copilot-cli-reference/cli-command-reference.md +++ b/content/copilot/reference/copilot-cli-reference/cli-command-reference.md @@ -18,27 +18,63 @@ docsTeamMetrics: | Command | Purpose | |------------------------|----------------------------------------------------| -| `copilot` | Launch the interactive user interface. | -| `copilot help [topic]` | Display help information. Help topics include: `config`, `commands`, `environment`, `logging`, `permissions`, and `providers`. | +| `copilot` | Launch the interactive user interface. | +| `copilot help [TOPIC]` | Display help information. Help topics include: `config`, `commands`, `environment`, `logging`, `monitoring`, `permissions`, and `providers`. | | `copilot init` | Initialize {% data variables.product.prodname_copilot_short %} custom instructions for this repository. | -| `copilot update` | Download and install the latest version. | -| `copilot version` | Display version information and check for updates. | | `copilot login` | Authenticate with {% data variables.product.prodname_copilot_short %} via the OAuth device flow. Accepts `--host HOST` to specify the {% data variables.product.github %} host URL (default: `https://github.com`). | -| `copilot logout` | Sign out of {% data variables.product.github %} and remove stored credentials. | -| `copilot plugin` | Manage plugins and plugin marketplaces. | +| `copilot login` [OPTION] | Authenticate with {% data variables.product.prodname_copilot_short %} via the OAuth device flow. See [`copilot login` options](#copilot-login-options). | | `copilot mcp` | Manage MCP server configurations from the command line. | +| `copilot plugin` | Manage plugins and plugin marketplaces. | +| `copilot update` | Download and install the latest version. | +| `copilot version` | Display version information and check for updates. | + +### `copilot login` options + +| Option | Purpose | +|-------------------------|-----------------------------------------------------------------------------------------------| +| `--host HOST` | {% data variables.product.github %} host URL (default: `https://github.com`). Use this to authenticate with a {% data variables.product.prodname_ghe_cloud %} instance that uses data residency (for example, `https://example.ghe.com`). | +| `--config-dir PATH` | Set the configuration directory (default: `~/.copilot`). | + +The default authentication mode is a web-based browser flow. After completion, an authentication token is stored securely in the system credential store. If a credential store is not found, the token is stored in a plain text config file under `~/.copilot/`. + +Alternatively, {% data variables.copilot.copilot_cli_short %} will use an authentication token found in environment variables. The following are checked in order of precedence: `COPILOT_GITHUB_TOKEN`, `GH_TOKEN`, `GITHUB_TOKEN`. This method is most suitable for headless use such as automation. + +Supported token types include {% data variables.product.pat_v2_plural %} (v2 PATs) with the "Copilot Requests" permission, OAuth tokens from the {% data variables.product.prodname_copilot_short %} CLI app, and OAuth tokens from the {% data variables.product.prodname_cli %} (`gh`) app. Classic {% data variables.product.pat_generic_plural %} (`ghp_`) are not supported. + +**Examples:** + +```shell +# Authenticate with github.com +copilot login + +# Authenticate with GitHub Enterprise Cloud (data residency) +copilot login --host https://example.ghe.com + +# Use a fine-grained PAT via environment variable +COPILOT_GITHUB_TOKEN=github_pat_... copilot +``` ## Global shortcuts in the interactive interface | Shortcut | Purpose | |-------------------------------------|---------------------------------------| | `@ FILENAME` | Include file contents in the context. | -| Ctrl+X then `/` | After you have started typing a prompt, this allows you to run a slash command—for example, if you want to change the model without having to retype your prompt. | -| Esc | Cancel the current operation. | +| `# NUMBER` | Include a {% data variables.product.github %} issue or pull request in the context. | | `! COMMAND` | Execute a command in your local shell, bypassing {% data variables.product.prodname_copilot_short %}. | +| `?` | Open quick help (on an empty prompt). | +| Esc | Cancel the current operation. | | Ctrl+C | Cancel operation / clear input. Press twice to exit. | | Ctrl+D | Shutdown. | +| Ctrl+G | Edit the prompt in an external editor (`$EDITOR`). | | Ctrl+L | Clear the screen. | +| Ctrl+Enter or Ctrl+Q | Queue a message to send while the agent is busy. | +| Ctrl+R | Reverse search through command history. | +| Ctrl+V | Paste from clipboard as an attachment. | +| Ctrl+X then `/` | After you have started typing a prompt, this allows you to run a slash command—for example, if you want to change the model without having to retype your prompt. | +| Ctrl+X then `e` | Edit the prompt in an external editor (`$EDITOR`). | +| Ctrl+X then `o` | Open the most recent link from the timeline. | +| Ctrl+Z | Suspend the process to the background (Unix). | +| Shift+Enter or Option+Enter (Mac) / Alt+Enter (Windows/Linux) | Insert a newline in the input. | | Shift+Tab | Cycle between standard, plan, and autopilot mode. | ## Timeline shortcuts in the interactive interface @@ -48,6 +84,7 @@ docsTeamMetrics: | Ctrl+O | While there is nothing in the prompt input, this expands recent items in {% data variables.product.prodname_copilot_short %}'s response timeline to show more details. | | Ctrl+E | While there is nothing in the prompt input, this expands all items in {% data variables.product.prodname_copilot_short %}'s response timeline. | | Ctrl+T | Expand/collapse display of reasoning in responses. | +| Page Up/Page Down | Scroll the timeline up or down by one page. | ## Navigation shortcuts in the interactive interface @@ -57,50 +94,48 @@ docsTeamMetrics: | Ctrl+B | Move to the previous character. | | Ctrl+E | Move to end of the line (when typing). | | Ctrl+F | Move to the next character. | -| Ctrl+G | Edit the prompt in an external editor. | | Ctrl+H | Delete the previous character. | | Ctrl+K | Delete from cursor to end of the line. If the cursor is at the end of the line, delete the line break. | | Ctrl+U | Delete from cursor to beginning of the line. | | Ctrl+W | Delete the previous word. | -| Home | Move to the start of the current line. | -| End | Move to the end of the current line. | -| Ctrl+Home | Move to the start of the text. | -| Ctrl+End | Move to the end of the text. | -| Meta+/ | Move the cursor by a word. | +| Home | Move to the start of the text. | +| End | Move to the end of the text. | +| Alt+/ (Windows/Linux)
Option+/ (Mac) | Move the cursor by a word. | | / | Navigate the command history. | - ## Slash commands in the interactive interface | Command | Purpose | |-----------------------------------------------------|---------| | `/add-dir PATH` | Add a directory to the allowed list for file access. | | `/agent` | Browse and select from available agents (if any). See [AUTOTITLE](/copilot/concepts/agents/copilot-cli/about-custom-agents). | -| `/allow-all`, `/yolo` | Enable all permissions (tools, paths, and URLs). | -| `/changelog [SUMMARIZE] [VERSION]` | Display the CLI changelog with an optional AI-generated summary. | -| `/clear [PROMPT]`, `/new [PROMPT]` | Start a new conversation. | +| `/ask QUESTION` | Ask a quick side question without adding to the conversation history. {% data reusables.copilot.experimental %} | +| `/allow-all [on\|off\|show]`, `/yolo [on\|off\|show]` | Enable all permissions (tools, paths, and URLs). | +| `/changelog [summarize] [VERSION\|last N\|since VERSION]`, `/release-notes [summarize] [VERSION\|last N\|since VERSION]` | Display the CLI changelog. Optionally specify a version, a count of recent releases, or a starting version. Add the keyword `summarize` for an AI-generated summary. | +| `/chronicle ` | Session history tools and insights. {% data reusables.copilot.experimental %} | +| `/clear [PROMPT]`, `/new [PROMPT]`, `/reset [PROMPT]` | Start a new conversation. | | `/compact` | Summarize the conversation history to reduce context window usage. See [AUTOTITLE](/copilot/concepts/agents/copilot-cli/context-management#compaction). | | `/context` | Show the context window token usage and visualization. See [AUTOTITLE](/copilot/concepts/agents/copilot-cli/context-management#checking-your-context-usage). | | `/copy` | Copy the last response to the clipboard. | | `/cwd`, `/cd [PATH]` | Change the working directory or display the current directory. | | `/delegate [PROMPT]` | Delegate changes to a remote repository with an AI-generated pull request. See [AUTOTITLE](/copilot/how-tos/copilot-cli/use-copilot-cli-agents/delegate-tasks-to-cca). | | `/diff` | Review the changes made in the current directory. | +| `/env` | Show loaded environment details (instructions, MCP servers, skills, agents, plugins, LSPs, extensions). | | `/exit`, `/quit` | Exit the CLI. | | `/experimental [on\|off\|show]` | Toggle, set, or show experimental features. | -| `/feedback` | Provide feedback about the CLI. | +| `/feedback`, `/bug` | Provide feedback about the CLI. | | `/fleet [PROMPT]` | Enable parallel subagent execution of parts of a task. See [AUTOTITLE](/copilot/concepts/agents/copilot-cli/fleet). | | `/help` | Show the help for interactive commands. | | `/ide` | Connect to an IDE workspace. See [AUTOTITLE](/copilot/how-tos/copilot-cli/connecting-vs-code#managing-the-connection-with-the-ide-slash-command). | | `/init` | Initialize {% data variables.product.prodname_copilot_short %} custom instructions and agentic features for this repository. See [Project initialization for {% data variables.product.prodname_copilot_short %}](#project-initialization-for-copilot). | | `/instructions` | View and toggle custom instruction files. | -| `/keep-alive [on\|busy\|NUMBERm\|NUMBERh]` | Prevent the machine from going to sleep: while a CLI session is active, while the agent is busy, or for a defined length of time. | +| `/keep-alive [on\|busy\|NUMBERm\|NUMBERh]` | Prevent the machine from going to sleep: while a CLI session is active, while the agent is busy, or for a defined length of time. {% data reusables.copilot.experimental %} | | `/list-dirs` | Display all of the directories for which file access has been allowed. | | `/login` | Log in to {% data variables.product.prodname_copilot_short %}. | | `/logout` | Log out of {% data variables.product.prodname_copilot_short %}. | | `/lsp [show\|test\|reload\|help] [SERVER-NAME]` | Manage the language server configuration. | | `/mcp [show\|add\|edit\|delete\|disable\|enable\|auth\|reload] [SERVER-NAME]` | Manage the MCP server configuration. See [AUTOTITLE](/copilot/how-tos/copilot-cli/customize-copilot/add-mcp-servers#managing-mcp-servers). | | `/model`, `/models [MODEL]` | Select the AI model you want to use. | -| `/on-air`, `/streamer-mode` | Toggle streamer mode (hides preview model names). | | `/plan [PROMPT]` | Create an implementation plan before coding. | | `/plugin [marketplace\|install\|uninstall\|update\|list] [ARGS...]` | Manage plugins and plugin marketplaces. See [AUTOTITLE](/copilot/concepts/agents/copilot-cli/about-cli-plugins). | | `/pr [view\|create\|fix\|auto]` | Operate on pull requests for the current branch. | @@ -109,16 +144,17 @@ docsTeamMetrics: | `/research TOPIC` | Run a deep research investigation using {% data variables.product.github %} search and web sources. See [AUTOTITLE](/copilot/concepts/agents/copilot-cli/research). | | `/reset-allowed-tools` | Reset the list of allowed tools. | | `/restart` | Restart the CLI, preserving the current session. | -| `/resume [SESSION-ID]` | Switch to a different session by choosing from a list (optionally specify a session ID). | +| `/resume [SESSION-ID]`, `/continue [SESSION-ID]` | Switch to a different session by choosing from a list (optionally specify a session ID). | | `/review [PROMPT]` | Run the code review agent to analyze changes. See [AUTOTITLE](/copilot/how-tos/copilot-cli/use-copilot-cli-agents/agentic-code-review). | -| `/session [checkpoints [n]\|files\|plan\|rename NAME]` | Show session information and a workspace summary. Use the subcommands for details. | -| `/share [file\|gist] [session\|research] [PATH]` | Share the session to a Markdown file or {% data variables.product.github %} gist. | +| `/session [checkpoints [n]\|files\|plan\|rename NAME]`, `/sessions [checkpoints [n]\|files\|plan\|rename NAME]` | Show session information and a workspace summary. Use the subcommands for details. | +| `/share [file\|html\|gist] [session\|research] [PATH]`, `/export [file\|html\|gist] [session\|research] [PATH]` | Share the session to a Markdown file, interactive HTML file, or {% data variables.product.github %} gist. | | `/skills [list\|info\|add\|remove\|reload] [ARGS...]` | Manage skills for enhanced capabilities. See [AUTOTITLE](/copilot/how-tos/copilot-cli/customize-copilot/create-skills). | +| `/statusline`, `/footer` | Configure which items appear in the status line. | | `/tasks` | View and manage background tasks (subagents and shell sessions). | | `/terminal-setup` | Configure the terminal for multiline input support (Shift+Enter and Ctrl+Enter). | -| `/theme [show\|set\|list] [auto\|THEME-ID]` | View or configure the terminal theme. | +| `/theme [default\|dim\|high-contrast\|colorblind]` | View or set the color mode. | | `/undo`, `/rewind` | Rewind the last turn and revert file changes. | -| `/update` | Update the CLI to the latest version. | +| `/update`, `/upgrade` | Update the CLI to the latest version. | | `/usage` | Display session usage metrics and statistics. | | `/user [show\|list\|switch]` | Manage the current {% data variables.product.github %} user. | | `/version` | Display version information and check for updates. | @@ -129,7 +165,6 @@ For a complete list of available slash commands enter `/help` in the CLI's inter | Option | Purpose | |------------------------------------|------------------------------------------| -| `--acp` | Start the Agent Client Protocol server. | | `--add-dir=PATH` | Add a directory to the allowed list for file access (can be used multiple times). | | `--add-github-mcp-tool=TOOL` | Add a tool to enable for the {% data variables.product.github %} MCP server, instead of the default CLI subset (can be used multiple times). Use `*` for all tools. | | `--add-github-mcp-toolset=TOOLSET` | Add a toolset to enable for the {% data variables.product.github %} MCP server, instead of the default CLI subset (can be used multiple times). Use `all` for all toolsets. | @@ -143,7 +178,7 @@ For a complete list of available slash commands enter `/help` in the CLI's inter | `--allow-url=URL ...` | Allow access to specific URLs or domains. For multiple URLs, use a quoted, comma-separated list. | | `--autopilot` | Enable autopilot continuation in prompt mode. See [AUTOTITLE](/copilot/concepts/agents/copilot-cli/autopilot). | | `--available-tools=TOOL ...` | Only these tools will be available to the model. For multiple tools, use a quoted, comma-separated list. See [AUTOTITLE](/copilot/how-tos/copilot-cli/allowing-tools). | -| `--banner` | Show the startup banner. | +| `--banner`, `--no-banner` | Show or hide the startup banner. | | `--bash-env` | Enable `BASH_ENV` support for bash shells. | | `--config-dir=PATH` | Set the configuration directory (default: `~/.copilot`). | | `--continue` | Resume the most recent session. | @@ -151,7 +186,6 @@ For a complete list of available slash commands enter `/help` in the CLI's inter | `--deny-url=URL ...` | Deny access to specific URLs or domains, takes precedence over `--allow-url`. For multiple URLs, use a quoted, comma-separated list. | | `--disable-builtin-mcps` | Disable all built-in MCP servers (currently: `github-mcp-server`). | | `--disable-mcp-server=SERVER-NAME` | Disable a specific MCP server (can be used multiple times). | -| `--disable-parallel-tools-execution` | Disable parallel execution of tools (LLM can still make parallel tool calls, but they will be executed sequentially). | | `--disallow-temp-dir` | Prevent automatic access to the system temporary directory. | | `--effort=LEVEL`, `--reasoning-effort=LEVEL` | Set the reasoning effort level (`low`, `medium`, `high`). | | `--enable-all-github-mcp-tools` | Enable all {% data variables.product.github %} MCP server tools, instead of the default CLI subset. Overrides the `--add-github-mcp-toolset` and `--add-github-mcp-tool` options. | @@ -197,7 +231,7 @@ For a complete list of commands and options, run `copilot help`. ## Tool availability values -The `--available-tools` and `--excluded-tools` options support the following values for specifying tools: +The `--available-tools` and `--excluded-tools` options support these values: ### Shell tools @@ -235,15 +269,6 @@ The `--available-tools` and `--excluded-tools` options support the following val | `web_fetch` | Fetch and parse web content | | `skill` | Invoke custom skills | | `ask_user` | Ask the user a question | -| `report_intent` | Report what the agent plans to do | -| `show_file` | Display a file prominently | -| `fetch_copilot_cli_documentation` | Look up CLI documentation | -| `update_todo` | Update task checklist | -| `store_memory` | Persist facts across sessions | -| `task_complete` | Signal task is done (autopilot only) | -| `exit_plan_mode` | Exit plan mode | -| `sql` | Query session data (experimental) | -| `lsp` | Language server refactoring (experimental) | ## Tool permission patterns @@ -293,7 +318,6 @@ copilot --allow-tool='MyMCP' | `USE_BUILTIN_RIPGREP` | Set to `false` to use the system ripgrep instead of the bundled version. | | `PLAIN_DIFF` | Set to `true` to disable rich diff rendering. | | `COLORFGBG` | Fallback for dark/light terminal background detection. | -| `COPILOT_CLI_ENABLED_FEATURE_FLAGS` | Comma-separated list of feature flags to enable (for example, `"SOME_FEATURE,SOME_OTHER_FEATURE"`). | ## Configuration file settings @@ -317,7 +341,6 @@ Settings cascade from user to repository to local, with more specific scopes ove | `compactPaste` | `boolean` | `true` | Collapse large pastes into compact tokens. | | `custom_agents.default_local_only` | `boolean` | `false` | Only use local custom agents. | | `denied_urls` | `string[]` | `[]` | URLs or domains blocked (takes precedence over `allowed_urls`). | -| `enabledFeatureFlags` | `object` | — | Enable or disable individual feature flags. Keys are flag names; values are `true` (enable) or `false` (explicitly disable). Takes precedence over the legacy `feature_flags.enabled` array format. See [Feature flag reference](#feature-flag-reference). | | `experimental` | `boolean` | `false` | Enable experimental features. | | `includeCoAuthoredBy` | `boolean` | `true` | Add a `Co-authored-by` trailer to git commits made by the agent. | | `companyAnnouncements` | `string[]` | `[]` | Custom messages shown randomly on startup. | @@ -325,6 +348,7 @@ Settings cascade from user to repository to local, with more specific scopes ove | `model` | `string` | varies | AI model to use (see the `/model` command). | | `powershellFlags` | `string[]` | `["-NoProfile", "-NoLogo"]` | Flags passed to PowerShell (`pwsh`) on startup. Windows only. | | `effortLevel` | `string` | `"medium"` | Reasoning effort level for extended thinking (e.g., `"low"`, `"medium"`, `"high"`, `"xhigh"`). Higher levels use more compute. | +| `mergeStrategy` | `"rebase"` \| `"merge"` | — | Conflict resolution strategy for `/pr fix conflicts`. When set to `"rebase"`, conflicts are resolved by rebasing onto the base branch. When set to `"merge"`, the base branch is merged into the feature branch. If not configured, a picker dialog is shown. | | `renderMarkdown` | `boolean` | `true` | Render Markdown in terminal output. | | `screenReader` | `boolean` | `false` | Enable screen reader optimizations. | | `stream` | `boolean` | `true` | Enable streaming responses. | @@ -336,17 +360,23 @@ Settings cascade from user to repository to local, with more specific scopes ove | `respectGitignore` | `boolean` | `true` | Exclude gitignored files from the `@` file picker. | | `disableAllHooks` | `boolean` | `false` | Disable all hooks. | | `hooks` | `object` | — | Inline user-level hook definitions. | +| `copyOnSelect` | `boolean` | `true` (macOS), `false` (other) | Automatically copy mouse-selected text to the system clipboard in alt screen mode. | +| `statusLine` | `object` | — | Custom status line display. `type`: must be `"command"`. `command`: path to a script that receives session JSON on stdin and prints status content to stdout. `padding`: optional left-padding spaces. | +| `suppress_init_folders` | `string[]` | `[]` | Folders where the `/init` suggestion has been dismissed. Managed automatically by `/init suppress`. | | `updateTerminalTitle` | `boolean` | `true` | Show the current intent in the terminal title. | ### Repository settings (`.github/copilot/settings.json`) -Repository settings apply to everyone who works in the repository. Only a subset of settings is supported at the repository level. Unsupported keys are ignored. +Repository settings apply to everyone who works in the repository. Only the keys listed in the following table are supported at the repository level. Any other keys—including keys that are valid in the user configuration file—are silently ignored. | Key | Type | Merge behavior | Description | |-----|------|---------------|-------------| | `companyAnnouncements` | `string[]` | Replaced—repository takes precedence | Messages shown randomly on startup. | +| `disableAllHooks` | `boolean` | Repository takes precedence | Disable all hooks. | | `enabledPlugins` | `Record` | Merged—repository overrides user for same key | Declarative plugin auto-install. | | `extraKnownMarketplaces` | `Record` | Merged—repository overrides user for same key | Plugin marketplaces available in this repository. | +| `hooks` | `object` | Concatenated—repository hooks run after user hooks | Hook definitions scoped to this repository. See [Hooks reference](#hooks-reference). | +| `mergeStrategy` | `"rebase"` \| `"merge"` | Repository takes precedence | Conflict resolution strategy for `/pr fix conflicts`. | ### Local settings (`.github/copilot/settings.local.json`) @@ -1034,7 +1064,7 @@ Custom agents are specialized AI agents defined in Markdown files. The filename | Agent | Default model | Description | |-------|--------------|-------------| | `code-review` | claude-sonnet-4.5 | High signal-to-noise code review. Analyzes diffs for bugs, security issues, and logic errors. | -| `rubber-duck` | complementary model | Use a complementary model to provide a constructive critique of proposals, designs, implementations, or tests. Identifies weak points and suggests improvements. Only available in experimental mode. | +| `rubber-duck` | complementary model | Use a complementary model to provide a constructive critique of proposals, designs, implementations, or tests. Identifies weak points and suggests improvements. {% data reusables.copilot.experimental %} | | `explore` | claude-haiku-4.5 | Fast codebase exploration. Searches files, reads code, and answers questions. Returns focused answers under 300 words. Safe to run in parallel. | | `general-purpose` | claude-sonnet-4.5 | Full-capability agent for complex multi-step tasks. Runs in a separate context window. | | `research` | claude-sonnet-4.6 | Deep research agent. Generates a report based on information in your codebase, in relevant repositories, and on the web. | @@ -1258,39 +1288,6 @@ When content capture is enabled, the following attributes are populated. | `gen_ai.tool.call.arguments` | Tool input arguments | | `gen_ai.tool.call.result` | Tool output | -## Feature flag reference - -Feature flags enable functionality that is not yet generally available. You can enable or disable individual flags in three ways: - -* **Environment variable**: Set `COPILOT_CLI_ENABLED_FEATURE_FLAGS` to a comma-separated list of flag names (for example, `"SOME_FEATURE,SOME_OTHER_FEATURE"`). -* **Slash command**: Use `/experimental on` in an interactive session to enable all experimental-tier flags. -* **Configuration file**: Add an `enabledFeatureFlags` object to `~/.copilot/config.json`. Set a flag to `true` to enable it or `false` to explicitly disable a flag that would otherwise be enabled by your tier. - -```json -{ - "enabledFeatureFlags": { - "SOME_FEATURE": true, - "SOME_OTHER_FEATURE": false - } -} -``` - -> [!NOTE] -> The legacy `feature_flags.enabled` array format is still supported as a fallback, but `enabledFeatureFlags` takes precedence when both are present. - -| Flag | Tier | Description | -|------|------|-------------| -| `RUBBER_DUCK_AGENT` | experimental | Rubber-duck subagent for adversarial feedback on code and designs | -| `BACKGROUND_SESSIONS` | experimental | Multiple concurrent sessions with background management | -| `MULTI_TURN_AGENTS` | experimental | Multi-turn subagent message passing via `write_agent` | -| `EXTENSIONS` | experimental | Programmatic extensions with custom tools and hooks | -| `QUEUED_COMMANDS` | staff-or-experimental | Queue commands with Ctrl+Enter while the agent runs | -| `PERSISTED_PERMISSIONS` | staff-or-experimental | Persist tool permissions across sessions per location | -| `SESSION_STORE` | staff-or-experimental | SQLite-based session store for cross-session history | -| `COMPUTER_USE` | staff | Built-in computer use MCP server (screen capture and mouse/keyboard control) | -| `copilot-feature-agentic-memory` | on | Persistent memory tools across sessions | -| `COPILOT_SWE_AGENT_BACKGROUND_AGENTS` | on | Background agent task execution | - ## Further reading * [AUTOTITLE](/copilot/how-tos/copilot-cli) diff --git a/data/reusables/copilot/experimental.md b/data/reusables/copilot/experimental.md new file mode 100644 index 000000000000..817b67d556ec --- /dev/null +++ b/data/reusables/copilot/experimental.md @@ -0,0 +1 @@ +Only available in experimental mode. From 235ee54b0732f468e12f637c70660feb3d117ebf Mon Sep 17 00:00:00 2001 From: docs-bot <77750099+docs-bot@users.noreply.github.com> Date: Tue, 21 Apr 2026 07:08:31 -0700 Subject: [PATCH 09/10] docs: update copilot-cli content from source docs (#60853) Co-authored-by: github-actions[bot] Co-authored-by: hubwriter --- .../cli-command-reference.md | 39 ++++++++++++++----- .../cli-config-dir-reference.md | 7 ++-- src/content-pipelines/state/copilot-cli.sha | 2 +- 3 files changed, 34 insertions(+), 14 deletions(-) diff --git a/content/copilot/reference/copilot-cli-reference/cli-command-reference.md b/content/copilot/reference/copilot-cli-reference/cli-command-reference.md index e183675a7b2a..e5d7181108e3 100644 --- a/content/copilot/reference/copilot-cli-reference/cli-command-reference.md +++ b/content/copilot/reference/copilot-cli-reference/cli-command-reference.md @@ -181,6 +181,7 @@ For a complete list of available slash commands enter `/help` in the CLI's inter | `--banner`, `--no-banner` | Show or hide the startup banner. | | `--bash-env` | Enable `BASH_ENV` support for bash shells. | | `--config-dir=PATH` | Set the configuration directory (default: `~/.copilot`). | +| `--connect[=SESSION-ID]` | Connect directly to a remote session (optionally specify a session ID or task ID). Conflicts with `--resume` and `--continue`. | | `--continue` | Resume the most recent session. | | `--deny-tool=TOOL ...` | Tools the CLI does not have permission to use. Will not prompt for permission. For multiple tools, use a quoted, comma-separated list. | | `--deny-url=URL ...` | Deny access to specific URLs or domains, takes precedence over `--allow-url`. For multiple URLs, use a quoted, comma-separated list. | @@ -198,7 +199,7 @@ For a complete list of available slash commands enter `/help` in the CLI's inter | `--log-level=LEVEL` | Set the log level (choices: `none`, `error`, `warning`, `info`, `debug`, `all`, `default`). | | `--max-autopilot-continues=COUNT` | Maximum number of continuation messages in autopilot mode (default: unlimited). See [AUTOTITLE](/copilot/concepts/agents/copilot-cli/autopilot). | | `--mode=MODE` | Set the initial agent mode (choices: `interactive`, `plan`, `autopilot`). Cannot be combined with `--autopilot` or `--plan`. | -| `--model=MODEL` | Set the AI model you want to use. | +| `--model=MODEL` | Set the AI model you want to use. Pass `auto` to let {% data variables.product.prodname_copilot_short %} pick the best available model automatically. | | `--mouse[=VALUE]` | Enable mouse support in alt screen mode. VALUE can be `on` (default) or `off`. When enabled, the CLI captures mouse events in alt screen mode—scroll wheel, clicks, etc. When disabled, the terminal's native mouse behavior is preserved. Once set the setting is persisted by being written to your configuration file.| | `--no-ask-user` | Disable the `ask_user` tool (the agent works autonomously without asking questions). | | `--no-auto-update` | Disable downloading CLI updates automatically. | @@ -214,7 +215,7 @@ For a complete list of available slash commands enter `/help` in the CLI's inter | `--plain-diff` | Disable rich diff rendering (syntax highlighting via the diff tool specified by your git config). | | `--plugin-dir=DIRECTORY` | Load a plugin from a local directory (can be used multiple times). | | `--remote` | Enable remote access to this session from {% data variables.product.prodname_dotcom_the_website %} and {% data variables.product.prodname_mobile %}. See [AUTOTITLE](/copilot/how-tos/copilot-cli/steer-remotely). | -| `--resume=SESSION-ID` | Resume a previous interactive session by choosing from a list (optionally specify a session ID). | +| `--resume=SESSION-ID` | Resume a previous interactive session by choosing from a list (optionally specify a session ID or unique prefix of 7+ hex characters). | | `-s`, `--silent` | Output only the agent response (without usage statistics), useful for scripting with `-p`. | | `--screen-reader` | Enable screen reader optimizations. | | `--secret-env-vars=VAR ...` | Redact an environment variable from shell and MCP server environments (can be used multiple times). For multiple variables, use a quoted, comma-separated list. The values in the `GITHUB_TOKEN` and `COPILOT_GITHUB_TOKEN` environment variables are redacted from output by default. | @@ -227,7 +228,7 @@ For a complete list of available slash commands enter `/help` in the CLI's inter For a complete list of commands and options, run `copilot help`. > [!NOTE] -> The `--remote` and `--no-remote` options require the remote sessions feature to be available on your account. +> The `--remote`, `--no-remote`, and `--connect` options require the remote sessions feature to be available on your account. ## Tool availability values @@ -256,7 +257,7 @@ The `--available-tools` and `--excluded-tools` options support these values: | Tool name | Description | |---|---| -| `task` | Run sub-agents | +| `task` | Run subagents | | `read_agent` | Check background agent status | | `list_agents` | List available agents | @@ -333,7 +334,7 @@ Settings cascade from user to repository to local, with more specific scopes ove | Key | Type | Default | Description | |-----|------|---------|-------------| -| `allowed_urls` | `string[]` | `[]` | URLs or domains allowed without prompting. | +| `allowedUrls` | `string[]` | `[]` | URLs or domains allowed without prompting. | | `autoUpdate` | `boolean` | `true` | Automatically download CLI updates. | | `banner` | `"always"` \| `"once"` \| `"never"` | `"once"` | Animated banner display frequency. | | `bashEnv` | `boolean` | `false` | Enable `BASH_ENV` support for bash shells. | @@ -345,7 +346,7 @@ Settings cascade from user to repository to local, with more specific scopes ove | `includeCoAuthoredBy` | `boolean` | `true` | Add a `Co-authored-by` trailer to git commits made by the agent. | | `companyAnnouncements` | `string[]` | `[]` | Custom messages shown randomly on startup. | | `logLevel` | `"none"` \| `"error"` \| `"warning"` \| `"info"` \| `"debug"` \| `"all"` \| `"default"` | `"default"` | Logging verbosity. | -| `model` | `string` | varies | AI model to use (see the `/model` command). | +| `model` | `string` | varies | AI model to use (see the `/model` command). Set to `"auto"` to let {% data variables.product.prodname_copilot_short %} pick the best available model automatically. | | `powershellFlags` | `string[]` | `["-NoProfile", "-NoLogo"]` | Flags passed to PowerShell (`pwsh`) on startup. Windows only. | | `effortLevel` | `string` | `"medium"` | Reasoning effort level for extended thinking (e.g., `"low"`, `"medium"`, `"high"`, `"xhigh"`). Higher levels use more compute. | | `mergeStrategy` | `"rebase"` \| `"merge"` | — | Conflict resolution strategy for `/pr fix conflicts`. When set to `"rebase"`, conflicts are resolved by rebasing onto the base branch. When set to `"merge"`, the base branch is merged into the feature branch. If not configured, a picker dialog is shown. | @@ -355,7 +356,6 @@ Settings cascade from user to repository to local, with more specific scopes ove | `storeTokenPlaintext` | `boolean` | `false` | Store authentication tokens in plain text in the configuration file when no system keychain is available. | | `streamerMode` | `boolean` | `false` | Hide preview model names and quota details (useful when demonstrating {% data variables.copilot.copilot_cli_short %}). | | `theme` | `"auto"` \| `"dark"` \| `"light"` | `"auto"` | Terminal color theme. | -| `trusted_folders` | `string[]` | `[]` | Folders with pre-granted file access. | | `mouse` | `boolean` | `true` | Enable mouse support in alt screen mode. | | `respectGitignore` | `boolean` | `true` | Exclude gitignored files from the `@` file picker. | | `disableAllHooks` | `boolean` | `false` | Disable all hooks. | @@ -860,7 +860,7 @@ The `notification` hook fires asynchronously when the CLI emits a system notific |------|---------------| | `shell_completed` | A background (async) shell command finishes | | `shell_detached_completed` | A detached shell session completes | -| `agent_completed` | A background sub-agent finishes (completed or failed) | +| `agent_completed` | A background subagent finishes (completed or failed) | | `agent_idle` | A background agent finishes a turn and enters idle state (waiting for `write_agent`) | | `permission_prompt` | The agent requests permission to execute a tool | | `elicitation_dialog` | The agent requests additional information from the user | @@ -1000,6 +1000,27 @@ MCP servers are loaded from multiple sources, each with a different trust level. All MCP tool invocations require explicit permission. This applies even to read-only operations on external services. +### Enterprise MCP allowlist + +{% data variables.product.prodname_enterprise %} organizations can enforce an allowlist of permitted MCP servers. When active, the CLI evaluates each non-default server against the enterprise policy before connecting. + +When a {% data variables.product.prodname_enterprise %} registry policy is detected (or the `MCP_ENTERPRISE_ALLOWLIST` experimental feature flag is enabled), the CLI: + +1. Computes a fingerprint for each configured non-default server based on its command, arguments, and remote URL. +1. Sends the fingerprints to the enterprise allowlist evaluate endpoint. +1. Allows only servers whose fingerprints are approved; all others are blocked with a message naming the enterprise. + +This check is fail-closed: if the evaluate endpoint is unreachable or returns an error, non-default servers are blocked until the policy can be verified. + +When a server is blocked by an enterprise allowlist, the CLI displays: + +```text +MCP server "SERVER-NAME" was blocked by your enterprise "ENTERPRISE-NAME". +Contact your enterprise administrator to add this server to the allowlist. +``` + +Built-in default servers are always exempt from allowlist enforcement. + ### Migrating from `.vscode/mcp.json` If your project uses `.vscode/mcp.json` (VS Code's MCP configuration format), migrate to `.mcp.json` for {% data variables.copilot.copilot_cli %}. The migration remaps the `servers` key to `mcpServers`. @@ -1077,7 +1098,7 @@ Custom agents are specialized AI agents defined in Markdown files. The filename | `description` | string | Yes | Description shown in the agent list and `task` tool. | | `infer` | boolean | No | Allow auto-delegation by the main agent. Default: `true`. | | `mcp-servers` | object | No | MCP servers to connect. Uses the same schema as `~/.copilot/mcp-config.json`. | -| `model` | string | No | AI model for this agent. When unset, inherits the outer agent's model. | +| `model` | string | No | AI model for this agent. When unset, inherits the outer agent's model. When the session model is set to `Auto` (server-selected), subagents always inherit the resolved session model regardless of this field. | | `name` | string | No | Display name. Defaults to the filename. | | `tools` | string[] | No | Tools available to the agent. Default: `["*"]` (all tools). | diff --git a/content/copilot/reference/copilot-cli-reference/cli-config-dir-reference.md b/content/copilot/reference/copilot-cli-reference/cli-config-dir-reference.md index ca501b9c5a83..eb1e976572ab 100644 --- a/content/copilot/reference/copilot-cli-reference/cli-config-dir-reference.md +++ b/content/copilot/reference/copilot-cli-reference/cli-config-dir-reference.md @@ -50,7 +50,7 @@ Common settings include: | Key | Type | Description | |-----|------|-------------| -| `model` | string | AI model to use (e.g., `"gpt-5.2"`, `"claude-sonnet-4.6"`) | +| `model` | string | AI model to use (for example, `"gpt-5.2"`, `"claude-sonnet-4.6"`). Set to `Auto` to let {% data variables.product.prodname_copilot_short %} pick the best available model automatically. | | `effortLevel` | string | Reasoning effort level for models that support it | | `theme` | string | Color theme: `"auto"`, `"dark"`, or `"light"` | | `mouse` | boolean | Enable mouse support in alt screen mode (default: `true`) | @@ -61,9 +61,8 @@ Common settings include: | `stream` | boolean | Stream responses token by token (default: `true`) | | `includeCoAuthoredBy` | boolean | Add Co-authored-by to agent-created commits (default: `true`) | | `respectGitignore` | boolean | Exclude gitignored files from the `@` file picker (default: `true`) | -| `trusted_folders` | string[] | Folders where read/execute permission has been granted | -| `allowed_urls` | string[] | URLs or domains allowed without prompting | -| `denied_urls` | string[] | URLs or domains that are always denied | +| `allowedUrls` | string[] | URLs or domains allowed without prompting | +| `deniedUrls` | string[] | URLs or domains that are always denied | | `logLevel` | string | Log verbosity: `"none"`, `"error"`, `"warning"`, `"info"`, `"debug"`, `"all"`, or `"default"` (default: `"default"`) | | `disableAllHooks` | boolean | Disable all hooks (default: `false`) | | `hooks` | object | Inline user-level hook definitions | diff --git a/src/content-pipelines/state/copilot-cli.sha b/src/content-pipelines/state/copilot-cli.sha index 3813f23c6c28..960e9f298976 100644 --- a/src/content-pipelines/state/copilot-cli.sha +++ b/src/content-pipelines/state/copilot-cli.sha @@ -1 +1 @@ -584832db507d47454ed410791e2d0c53468bea20 +aaf6f363050eb7ad4b98542f7389b76f4e29f5b8 From 5e795b5945957937ba481a6b78052b9ec59b104e Mon Sep 17 00:00:00 2001 From: docs-bot <77750099+docs-bot@users.noreply.github.com> Date: Tue, 21 Apr 2026 07:13:09 -0700 Subject: [PATCH 10/10] Update docs changelog (for PR #60757) (#60868) Co-authored-by: github-actions[bot] Co-authored-by: Isaac Brown <101839405+isaacmbrown@users.noreply.github.com> Co-authored-by: hubwriter Co-authored-by: Copilot Autofix powered by AI <175728472+Copilot@users.noreply.github.com> --- CHANGELOG.md | 9 +++++++++ 1 file changed, 9 insertions(+) diff --git a/CHANGELOG.md b/CHANGELOG.md index 3a42d77f0ea6..8faa174523df 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -1,5 +1,14 @@ # Docs changelog +**21 April 2026** + +We recently published two new guides for organizations adopting Copilot cloud agent. + +* Pre-enablement: [Building guardrails for GitHub Copilot cloud agent](https://docs.github.com/en/enterprise-cloud@latest/copilot/tutorials/cloud-agent/build-guardrails) helps you expand built-in protections to create a secure environment for agents to operate in. +* Post-enablement: [Giving GitHub Copilot cloud agent access to resources in your organization](https://docs.github.com/en/enterprise-cloud@latest/copilot/tutorials/cloud-agent/give-access-to-resources) helps you get more out of Copilot by giving it access to MCP servers and internal packages, while promoting secure, consistent practices. + +