From 812a8a7f564da71ce9217e33cefd6ac9cf0816c1 Mon Sep 17 00:00:00 2001
From: he3als <65787561+he3als@users.noreply.github.com>
Date: Sat, 15 Jun 2024 14:42:36 +0100
Subject: [PATCH 01/57] fix: clean component store after optional features
(#1124)
### Questions
- [x] Did you test your changes or double-check that they work?
- [x] Did you read and follow the [Atlas Contribution
Guidelines](https://docs.atlasos.net/contributions/)?
### Describe your pull request
Disables cleaning the component store and Windows Update in Disk Cleanup
(`cleanmgr`) as I'm guessing this causes DISM to randomly hang when
changing features.
---
src/playbook/Configuration/atlas/start.yml | 3 +++
src/playbook/Executables/CLEANUP.ps1 | 2 +-
2 files changed, 4 insertions(+), 1 deletion(-)
diff --git a/src/playbook/Configuration/atlas/start.yml b/src/playbook/Configuration/atlas/start.yml
index e4116999ef..3ee7b65310 100644
--- a/src/playbook/Configuration/atlas/start.yml
+++ b/src/playbook/Configuration/atlas/start.yml
@@ -42,6 +42,9 @@ actions:
- !writeStatus: {status: 'Disabling Steps Recorder'}
- !run: {exe: 'DISM.exe', args: '/Online /Remove-Capability /CapabilityName:"App.StepsRecorder~~~~0.0.1.0" /NoRestart', weight: 30}
+ - !writeStatus: {status: 'Cleaning the component store'}
+ - !run: {exe: 'DISM.exe', args: '/Online /Cleanup-Image /StartComponentCleanup', weight: 50}
+
# Initial software
# 7-Zip, Visual C++ Runtimes, DirectX
- !writeStatus: {status: 'Installing utilities'}
diff --git a/src/playbook/Executables/CLEANUP.ps1 b/src/playbook/Executables/CLEANUP.ps1
index b22a53c8cf..de4d2da7fb 100644
--- a/src/playbook/Executables/CLEANUP.ps1
+++ b/src/playbook/Executables/CLEANUP.ps1
@@ -23,7 +23,7 @@ function Invoke-AtlasDiskCleanup {
"System error minidump files" = 2
"Temporary Files" = 0
"Thumbnail Cache" = 2
- "Update Cleanup" = 2
+ "Update Cleanup" = 0
"User file versions" = 2
"Windows Error Reporting Files" = 2
"Windows Defender" = 2
From 2a2380225a569a5b4c96dc4718ad09179677a3dc Mon Sep 17 00:00:00 2001
From: he3als <65787561+he3als@users.noreply.github.com>
Date: Sat, 15 Jun 2024 17:50:43 +0100
Subject: [PATCH 02/57] fix(power saving): full path to toggledev
---
.../AtlasModules/Scripts/ScriptWrappers/DisablePowerSaving.ps1 | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)
diff --git a/src/playbook/Executables/AtlasModules/Scripts/ScriptWrappers/DisablePowerSaving.ps1 b/src/playbook/Executables/AtlasModules/Scripts/ScriptWrappers/DisablePowerSaving.ps1
index 9f86e5b0a1..3e5e76fc6c 100644
--- a/src/playbook/Executables/AtlasModules/Scripts/ScriptWrappers/DisablePowerSaving.ps1
+++ b/src/playbook/Executables/AtlasModules/Scripts/ScriptWrappers/DisablePowerSaving.ps1
@@ -54,7 +54,7 @@ powercfg /setacvalueindex scheme_current 54533251-82be-4824-96c1-47b60b740d00 4d
powercfg /setactive scheme_current
Write-Host "Disabling power-saving ACPI devices..." -ForegroundColor Yellow
-& toggleDev.cmd -Disable '@("ACPI Processor Aggregator", "Microsoft Windows Management Interface for ACPI")' | Out-Null
+& "$([Environment]::GetFolderPath('Windows'))\AtlasModules\Scripts\toggleDev.cmd" -Disable '@("ACPI Processor Aggregator", "Microsoft Windows Management Interface for ACPI")' | Out-Null
Write-Host "Disabling network adapter power-saving..." -ForegroundColor Yellow
$properties = Get-NetAdapter -Physical | Get-NetAdapterAdvancedProperty
From ac89e2559fac1d90841c0ce2b31de5ff5381c075 Mon Sep 17 00:00:00 2001
From: PencilNavigator <85282140+PencilNavigator@users.noreply.github.com>
Date: Sun, 16 Jun 2024 14:54:25 +0800
Subject: [PATCH 03/57] fix: broken banner, branding kit link
---
README.md | 4 ++--
1 file changed, 2 insertions(+), 2 deletions(-)
diff --git a/README.md b/README.md
index 7390760e79..873c173aed 100644
--- a/README.md
+++ b/README.md
@@ -1,5 +1,5 @@
-
+
@@ -62,4 +62,4 @@ Although the GUI is not open source for AME Wizard, AME Wizard's entire backend
As Atlas doesn't redistribute a modified Windows ISO, it complies with [Windows's Usage Terms](https://www.microsoft.com/en-us/Useterms/Retail/Windows/10/UseTerms_Retail_Windows_10_English.htm). In addition, Atlas does not alter activation in Windows.
## 🎨 Brand kit
-Want to create your own Atlas wallpaper with some original creative designs? Download our brand kit [here](https://github.com/Atlas-OS/branding/archive/refs/heads/main.zip) and share your creations on our [forum](https://forum.atlasos.net/t/art-showcase).
+Want to create your own Atlas wallpaper with some original creative designs? Visit our [Branding Kit on Docs](https://docs.atlasos.net/branding/) and share your creations on our [forum](https://forum.atlasos.net/t/art-showcase)!
From 3abfbf449d106a108dbadd3ca0a47bafedcafcea Mon Sep 17 00:00:00 2001
From: he3als <65787561+he3als@users.noreply.github.com>
Date: Mon, 1 Jul 2024 20:35:15 +0100
Subject: [PATCH 04/57] feat(local-build): kill old instances of explorer
---
src/local-build.ps1 | 11 ++++++++++-
1 file changed, 10 insertions(+), 1 deletion(-)
diff --git a/src/local-build.ps1 b/src/local-build.ps1
index 39e5ed7a17..b954a9bccf 100644
--- a/src/local-build.ps1
+++ b/src/local-build.ps1
@@ -140,7 +140,16 @@ while ($true) { Get-Content -Wait -LiteralPath $a -EA 0 | Write-Output; Start-Sl
}
Write-Host "Built successfully! Path: `"$apbxPath`"" -ForegroundColor Green
- if (!$IsLinux -and !$IsMacOS -and !$DontOpenPbLocation) {
+ if (!$DontOpenPbLocation) {
+ if ($IsLinux -or $IsMacOS) {
+ Write-Warning "Can't open to APBX directory as the system isn't Windows."
+ break
+ }
+
+ # Kill old instances
+ # Would use SetForegroundWindow but it doesn't always work, so opening a new window is most reliable :/
+ ((New-Object -Com Shell.Application).Windows() | Where-Object { $_.Document.Folder.Self.Path -eq "$(Split-Path -Path $apbxPath)" }).Quit()
+
explorer /select,"$apbxPath"
}
} finally {
From 8e2da1031858b611e6c36b49f101f653d36245ce Mon Sep 17 00:00:00 2001
From: he3als <65787561+he3als@users.noreply.github.com>
Date: Mon, 1 Jul 2024 20:51:39 +0100
Subject: [PATCH 05/57] fix(local-build): killing old instances
---
src/local-build.ps1 | 3 ++-
1 file changed, 2 insertions(+), 1 deletion(-)
diff --git a/src/local-build.ps1 b/src/local-build.ps1
index b954a9bccf..3d672dd8d1 100644
--- a/src/local-build.ps1
+++ b/src/local-build.ps1
@@ -148,7 +148,8 @@ while ($true) { Get-Content -Wait -LiteralPath $a -EA 0 | Write-Output; Start-Sl
# Kill old instances
# Would use SetForegroundWindow but it doesn't always work, so opening a new window is most reliable :/
- ((New-Object -Com Shell.Application).Windows() | Where-Object { $_.Document.Folder.Self.Path -eq "$(Split-Path -Path $apbxPath)" }).Quit()
+ $openWindows = ((New-Object -Com Shell.Application).Windows() | Where-Object { $_.Document.Folder.Self.Path -eq "$(Split-Path -Path $apbxPath)" })
+ if ($openWindows.Count -ne 0) { $openWindows.Quit() }
explorer /select,"$apbxPath"
}
From 2291ceae8259759bd9a813297f85752517e73122 Mon Sep 17 00:00:00 2001
From: he3als <65787561+he3als@users.noreply.github.com>
Date: Wed, 3 Jul 2024 21:40:09 +0100
Subject: [PATCH 06/57] disabling notifications security warning
---
.../Services/Notifications/Disable Notifications.cmd | 11 +++++++++++
1 file changed, 11 insertions(+)
diff --git a/src/playbook/Executables/AtlasDesktop/6. Advanced Configuration/Services/Notifications/Disable Notifications.cmd b/src/playbook/Executables/AtlasDesktop/6. Advanced Configuration/Services/Notifications/Disable Notifications.cmd
index 22d5ea3f4b..c55bafd76a 100644
--- a/src/playbook/Executables/AtlasDesktop/6. Advanced Configuration/Services/Notifications/Disable Notifications.cmd
+++ b/src/playbook/Executables/AtlasDesktop/6. Advanced Configuration/Services/Notifications/Disable Notifications.cmd
@@ -13,6 +13,17 @@ fltmc > nul 2>&1 || (
exit /b
)
+echo Disabling notifications means **all** notifications, including system ones.
+echo This includes notifications that notify you about security updates.
+echo]
+echo This doesn't improve performance.
+echo]
+echo ---------------------------------------------------------------------------
+echo]
+choice /c:yn /n /m "Would you like to continue anyways? [Y/N] "
+if %errorlevel% neq 1 exit /b
+cls
+
:main
sc config WpnService start=disabled > nul
sc stop WpnService > nul 2>&1
From 778b4a743e4bc0a7a35aa2d85d11eb3a402c6e4f Mon Sep 17 00:00:00 2001
From: he3als <65787561+he3als@users.noreply.github.com>
Date: Sun, 7 Jul 2024 02:27:51 +0100
Subject: [PATCH 07/57] fix(local-build): path separator for Linux/macOS
---
src/local-build.ps1 | 25 +++++++++++++++----------
1 file changed, 15 insertions(+), 10 deletions(-)
diff --git a/src/local-build.ps1 b/src/local-build.ps1
index 3d672dd8d1..65b5421e20 100644
--- a/src/local-build.ps1
+++ b/src/local-build.ps1
@@ -10,6 +10,11 @@ param (
$removals | % { Set-Variable -Name "remove$_" -Value $true }
+# Function to convert paths for convienience, needed for Linux/macOS
+function Seperator {
+ return $args -replace '\\', "$([IO.Path]::DirectorySeparatorChar)"
+}
+
# check 7z
if (Get-Command '7z' -EA 0) {
$7zPath = '7z'
@@ -42,7 +47,7 @@ function GetNewName {
}
if ($replaceOldPlaybook -and (Test-Path -Path $apbxFileName)) {
try {
- $stream = [System.IO.File]::Open("$PWD\$apbxFileName", 'Open', 'Read', 'Write')
+ $stream = [System.IO.File]::Open($(Seperator "$PWD\$apbxFileName"), 'Open', 'Read', 'Write')
$stream.Close()
Remove-Item -Path $apbxFileName -Force -EA 0
} catch {
@@ -52,12 +57,12 @@ if ($replaceOldPlaybook -and (Test-Path -Path $apbxFileName)) {
} elseif (Test-Path -Path $apbxFileName) {
GetNewName
}
-$apbxPath = "$PWD\$apbxFileName"
+$apbxPath = Seperator "$PWD\$apbxFileName"
# make temp directories
$rootTemp = New-Item (Join-Path -Path $([System.IO.Path]::GetTempPath()) -ChildPath $([System.Guid]::NewGuid())) -ItemType Directory -Force
if (!(Test-Path -Path "$rootTemp")) { throw "Failed to create temporary directory!" }
-$playbookTemp = New-Item "$rootTemp\playbook" -Type Directory
+$playbookTemp = New-Item $(Seperator "$rootTemp\playbook") -Type Directory
try {
# remove entries in playbook config that make it awkward for testing
@@ -68,13 +73,13 @@ try {
if ($removeWinverRequirement) {$patterns += "", "", ""}
if ($removeVerification) {$patterns += ""}
- $tempPbConfPath = "$playbookTemp\playbook.conf"
+ $tempPbConfPath = Seperator "$playbookTemp\playbook.conf"
if ($patterns.Count -gt 0) {
Get-Content "playbook.conf" | Where-Object { $_ -notmatch ($patterns -join '|') } | Set-Content $tempPbConfPath
}
- $customYmlPath = "Configuration\custom.yml"
- $tempCustomYmlPath = "$playbookTemp\$customYmlPath"
+ $customYmlPath = Seperator "Configuration\custom.yml"
+ $tempCustomYmlPath = Seperator "$playbookTemp\$customYmlPath"
if ($AddLiveLog) {
if (Test-Path $customYmlPath -PathType Leaf) {
New-Item (Split-Path $tempCustomYmlPath -Parent) -ItemType Directory -Force | Out-Null
@@ -100,8 +105,8 @@ while ($true) { Get-Content -Wait -LiteralPath $a -EA 0 | Write-Output; Start-Sl
}
}
- $startYmlPath = "Configuration\atlas\start.yml"
- $tempStartYmlPath = "$playbookTemp\$startYmlPath"
+ $startYmlPath = Seperator "Configuration\atlas\start.yml"
+ $tempStartYmlPath = Seperator "$playbookTemp\$startYmlPath"
if ($removeDependencies) {
if (Test-Path $startYmlPath -PathType Leaf) {
New-Item (Split-Path $tempStartYmlPath -Parent) -ItemType Directory -Force | Out-Null
@@ -127,13 +132,13 @@ while ($true) { Get-Content -Wait -LiteralPath $a -EA 0 | Write-Output; Start-Sl
if (Test-Path $tempCustomYmlPath) { $excludeFiles += "custom.yml" }
if (Test-Path $tempStartYmlPath) { $excludeFiles += "start.yml" }
if (Test-Path $tempPbConfPath) { $excludeFiles += "playbook.conf" }
- $files = "$rootTemp\7zFiles.txt"
+ $files = Seperator "$rootTemp\7zFiles.txt"
(Get-ChildItem -File -Exclude $excludeFiles -Recurse).FullName | Resolve-Path -Relative | ForEach-Object {$_.Substring(2)} | Out-File $files -Encoding utf8
if (!$NoPassword) { $pass = '-pmalte' }
& $7zPath a -spf -y -mx1 $pass -tzip "$apbxPath" `@"$files" | Out-Null
# add edited files
- if (Test-Path "$playbookTemp\*.*") {
+ if (Test-Path $(Seperator "$playbookTemp\*.*")) {
Push-Location "$playbookTemp"
& $7zPath u $pass "$apbxPath" * | Out-Null
Pop-Location
From 69e1c31c107364c1051a0b92c0fbb59019098a1b Mon Sep 17 00:00:00 2001
From: he3als <65787561+he3als@users.noreply.github.com>
Date: Sun, 7 Jul 2024 02:38:40 +0100
Subject: [PATCH 08/57] feat(local-build): .sh script
---
.gitattributes | 3 ++-
src/local-build.ps1 | 2 +-
src/playbook/local-build.sh | 4 ++++
3 files changed, 7 insertions(+), 2 deletions(-)
create mode 100644 src/playbook/local-build.sh
diff --git a/.gitattributes b/.gitattributes
index 3c8787f263..082474d9fe 100644
--- a/.gitattributes
+++ b/.gitattributes
@@ -1,3 +1,4 @@
# perform crlf normalization on batch and cmd files
*.bat eol=crlf
-*.cmd eol=crlf
\ No newline at end of file
+*.cmd eol=crlf
+*.sh eol=lf
\ No newline at end of file
diff --git a/src/local-build.ps1 b/src/local-build.ps1
index 65b5421e20..c16bdccaa2 100644
--- a/src/local-build.ps1
+++ b/src/local-build.ps1
@@ -126,7 +126,7 @@ while ($true) { Get-Content -Wait -LiteralPath $a -EA 0 | Write-Output; Start-Sl
# exclude files
$excludeFiles = @(
- "local-build.cmd",
+ "local-build.*",
"*.apbx"
)
if (Test-Path $tempCustomYmlPath) { $excludeFiles += "custom.yml" }
diff --git a/src/playbook/local-build.sh b/src/playbook/local-build.sh
new file mode 100644
index 0000000000..ad599d06d6
--- /dev/null
+++ b/src/playbook/local-build.sh
@@ -0,0 +1,4 @@
+#!/bin/bash
+
+echo "Building Playbook..."
+pwsh -NoP -EP Bypass -C "& \"$(dirname "$PWD")/local-build.ps1\" -AddLiveLog -ReplaceOldPlaybook -Removals WinverRequirement, Verification -DontOpenPbLocation"
From 33a9194f7101f2433714991fb4b5b22e8bbc652d Mon Sep 17 00:00:00 2001
From: he3als <65787561+he3als@users.noreply.github.com>
Date: Sun, 7 Jul 2024 15:51:11 +0100
Subject: [PATCH 09/57] fix(local-build): open pb location OS compat
---
src/local-build.ps1 | 15 +++++++--------
1 file changed, 7 insertions(+), 8 deletions(-)
diff --git a/src/local-build.ps1 b/src/local-build.ps1
index c16bdccaa2..ecae38cbfa 100644
--- a/src/local-build.ps1
+++ b/src/local-build.ps1
@@ -148,15 +148,14 @@ while ($true) { Get-Content -Wait -LiteralPath $a -EA 0 | Write-Output; Start-Sl
if (!$DontOpenPbLocation) {
if ($IsLinux -or $IsMacOS) {
Write-Warning "Can't open to APBX directory as the system isn't Windows."
- break
- }
-
- # Kill old instances
- # Would use SetForegroundWindow but it doesn't always work, so opening a new window is most reliable :/
- $openWindows = ((New-Object -Com Shell.Application).Windows() | Where-Object { $_.Document.Folder.Self.Path -eq "$(Split-Path -Path $apbxPath)" })
- if ($openWindows.Count -ne 0) { $openWindows.Quit() }
+ } else {
+ # Kill old instances
+ # Would use SetForegroundWindow but it doesn't always work, so opening a new window is most reliable :/
+ $openWindows = ((New-Object -Com Shell.Application).Windows() | Where-Object { $_.Document.Folder.Self.Path -eq "$(Split-Path -Path $apbxPath)" })
+ if ($openWindows.Count -ne 0) { $openWindows.Quit() }
- explorer /select,"$apbxPath"
+ explorer /select,"$apbxPath"
+ }
}
} finally {
Remove-Item $rootTemp -Force -EA 0 -Recurse | Out-Null
From d434dd63b772748b54e68a7e5bb9789be5451c3e Mon Sep 17 00:00:00 2001
From: conaN <158789764+36conaN@users.noreply.github.com>
Date: Sat, 13 Jul 2024 00:48:07 +0200
Subject: [PATCH 10/57] feat: disable narrator and screen capture shortcuts
(#1144)
---
src/playbook/Configuration/tweaks.yml | 1 +
.../tweaks/qol/disable-screen-capture-hotkey.yml | 9 +++++++++
.../disable-annoying-features-shortcuts.yml | 7 +++++++
3 files changed, 17 insertions(+)
create mode 100644 src/playbook/Configuration/tweaks/qol/disable-screen-capture-hotkey.yml
diff --git a/src/playbook/Configuration/tweaks.yml b/src/playbook/Configuration/tweaks.yml
index 0afbe04eed..85d5f4b88d 100644
--- a/src/playbook/Configuration/tweaks.yml
+++ b/src/playbook/Configuration/tweaks.yml
@@ -158,6 +158,7 @@ actions:
- !task: {path: 'tweaks\qol\visual-effects.yml'}
- !task: {path: 'tweaks\qol\disable-tips.yml'}
- !task: {path: 'tweaks\qol\disable-win11-settings-banner.yml'}
+ - !task: {path: 'tweaks\qol\disable-screen-capture-hotkey.yml', option: 'remove-snipping-tool'}
# -------------------------------------------------------------------------- #
# qol\appearance #
diff --git a/src/playbook/Configuration/tweaks/qol/disable-screen-capture-hotkey.yml b/src/playbook/Configuration/tweaks/qol/disable-screen-capture-hotkey.yml
new file mode 100644
index 0000000000..0571b5c7e9
--- /dev/null
+++ b/src/playbook/Configuration/tweaks/qol/disable-screen-capture-hotkey.yml
@@ -0,0 +1,9 @@
+---
+title: Disable Screen Capture Hotkey
+description: Disables using the print screen key to open Screen Capture when Snipping Tool is removed
+actions:
+ - !registryValue:
+ path: 'HKCU\Control Panel\Keyboard'
+ value: 'PrintScreenKeyForSnippingEnabled'
+ data: '0'
+ type: REG_DWORD
diff --git a/src/playbook/Configuration/tweaks/qol/ease-of-access/disable-annoying-features-shortcuts.yml b/src/playbook/Configuration/tweaks/qol/ease-of-access/disable-annoying-features-shortcuts.yml
index ff8c593e4b..63a0045d65 100644
--- a/src/playbook/Configuration/tweaks/qol/ease-of-access/disable-annoying-features-shortcuts.yml
+++ b/src/playbook/Configuration/tweaks/qol/ease-of-access/disable-annoying-features-shortcuts.yml
@@ -46,3 +46,10 @@ actions:
value: 'Hotkey'
data: '3'
type: REG_DWORD
+
+ # Disable Narrator shortcut
+ - !registryValue:
+ path: 'HKCU\Software\Microsoft\Narrator\NoRoam'
+ value: 'WinEnterLaunchEnabled'
+ data: '0'
+ type: REG_DWORD
From 5ddda43d35f3f2c41ff2c4a9347d215806c439fb Mon Sep 17 00:00:00 2001
From: nick <62725534+nicklvh@users.noreply.github.com>
Date: Sun, 14 Jul 2024 00:09:43 +0100
Subject: [PATCH 11/57] fix: toggle 'Give access to' context menu (#1146)
Co-authored-by: he3als <65787561+he3als@users.noreply.github.com>
---
src/playbook/Configuration/tweaks.yml | 1 -
.../remove-context-menus/give-access-to.yml | 10 ----------
.../Give Access To Menu Disable (default).reg | 13 +++++++++++++
.../Give Access To Menu Enable.reg | Bin 0 -> 1474 bytes
.../ScriptWrappers/DisableFileSharing.ps1 | 3 +++
.../Scripts/ScriptWrappers/EnableFileSharing.ps1 | 5 +++++
6 files changed, 21 insertions(+), 11 deletions(-)
delete mode 100644 src/playbook/Configuration/tweaks/qol/explorer/remove-context-menus/give-access-to.yml
create mode 100644 src/playbook/Executables/AtlasDesktop/3. General Configuration/File Sharing/Give Access To Menu/Give Access To Menu Disable (default).reg
create mode 100644 src/playbook/Executables/AtlasDesktop/3. General Configuration/File Sharing/Give Access To Menu/Give Access To Menu Enable.reg
diff --git a/src/playbook/Configuration/tweaks.yml b/src/playbook/Configuration/tweaks.yml
index 85d5f4b88d..b2c2172d7e 100644
--- a/src/playbook/Configuration/tweaks.yml
+++ b/src/playbook/Configuration/tweaks.yml
@@ -225,7 +225,6 @@ actions:
# -------------------------------------------------------------------------- #
- !task: {path: 'tweaks\qol\explorer\remove-context-menus\cast-to-device.yml'}
- !task: {path: 'tweaks\qol\explorer\remove-context-menus\extract-all.yml'}
- - !task: {path: 'tweaks\qol\explorer\remove-context-menus\give-access-to.yml'}
- !task: {path: 'tweaks\qol\explorer\remove-context-menus\include-in-library.yml'}
- !task: {path: 'tweaks\qol\explorer\remove-context-menus\new-bitmap.yml'}
- !task: {path: 'tweaks\qol\explorer\remove-context-menus\new-rtf.yml'}
diff --git a/src/playbook/Configuration/tweaks/qol/explorer/remove-context-menus/give-access-to.yml b/src/playbook/Configuration/tweaks/qol/explorer/remove-context-menus/give-access-to.yml
deleted file mode 100644
index b5b1ff2a80..0000000000
--- a/src/playbook/Configuration/tweaks/qol/explorer/remove-context-menus/give-access-to.yml
+++ /dev/null
@@ -1,10 +0,0 @@
----
-title: Remove 'Give access to' from Context Menu
-description: Removes 'Give access to' from context menu
-actions:
- - !registryKey: {path: 'HKCR\*\shellex\ContextMenuHandlers\Sharing'}
- - !registryKey: {path: 'HKCR\Directory\Background\shellex\ContextMenuHandlers\Sharing'}
- - !registryKey: {path: 'HKCR\Directory\shellex\ContextMenuHandlers\Sharing'}
- - !registryKey: {path: 'HKCR\Drive\shellex\ContextMenuHandlers\Sharing'}
- - !registryKey: {path: 'HKCR\LibraryFolder\background\shellex\ContextMenuHandlers\Sharing'}
- - !registryKey: {path: 'HKCR\UserLibraryFolder\shellex\ContextMenuHandlers\Sharing'}
diff --git a/src/playbook/Executables/AtlasDesktop/3. General Configuration/File Sharing/Give Access To Menu/Give Access To Menu Disable (default).reg b/src/playbook/Executables/AtlasDesktop/3. General Configuration/File Sharing/Give Access To Menu/Give Access To Menu Disable (default).reg
new file mode 100644
index 0000000000..62c51eed14
--- /dev/null
+++ b/src/playbook/Executables/AtlasDesktop/3. General Configuration/File Sharing/Give Access To Menu/Give Access To Menu Disable (default).reg
@@ -0,0 +1,13 @@
+Windows Registry Editor Version 5.00
+
+[-HKEY_CLASSES_ROOT\*\shellex\ContextMenuHandlers\Sharing]
+
+[-HKEY_CLASSES_ROOT\Directory\Background\shellex\ContextMenuHandlers\Sharing]
+
+[-HKEY_CLASSES_ROOT\Directory\shellex\ContextMenuHandlers\Sharing]
+
+[-HKEY_CLASSES_ROOT\Drive\shellex\ContextMenuHandlers\Sharing]
+
+[-HKEY_CLASSES_ROOT\LibraryFolder\background\shellex\ContextMenuHandlers\Sharing]
+
+[-HKEY_CLASSES_ROOT\UserLibraryFolder\shellex\ContextMenuHandlers\Sharing]
diff --git a/src/playbook/Executables/AtlasDesktop/3. General Configuration/File Sharing/Give Access To Menu/Give Access To Menu Enable.reg b/src/playbook/Executables/AtlasDesktop/3. General Configuration/File Sharing/Give Access To Menu/Give Access To Menu Enable.reg
new file mode 100644
index 0000000000000000000000000000000000000000..83b46cf957a33eb03ec59267fa0af95bbbb8d0b6
GIT binary patch
literal 1474
zcmd^<+e!m55Qe{N!FMQL3KbX67lK+Vf)&9d;!0W99u`Xr+g4q~S69CTuLbX9Wf+ow
zX7XnyndI~1hJrDVOn6~RgL8Tev`v{&QfX=HEkqM>gKPbz-aNsXDTNd*RQDNUyrlGbn<~`s(
z?z+b=OT5u%o5aW+GfLDZo1%<$XNi)Fn&K@Z`_4k|yTYk#9Y`vs8Qid-ux!
NBvkv;IsElr{sPZR@Sgwx
literal 0
HcmV?d00001
diff --git a/src/playbook/Executables/AtlasModules/Scripts/ScriptWrappers/DisableFileSharing.ps1 b/src/playbook/Executables/AtlasModules/Scripts/ScriptWrappers/DisableFileSharing.ps1
index 315b39eae0..4bb572d39a 100644
--- a/src/playbook/Executables/AtlasModules/Scripts/ScriptWrappers/DisableFileSharing.ps1
+++ b/src/playbook/Executables/AtlasModules/Scripts/ScriptWrappers/DisableFileSharing.ps1
@@ -4,6 +4,7 @@ param (
[switch]$Silent
)
+$networkDiscoveryConfigPath = "$([Environment]::GetFolderPath('Windows'))\AtlasDesktop\6. Advanced Configuration\Services\Network Discovery"
$fileSharingConfigPath = "$([Environment]::GetFolderPath('Windows'))\AtlasDesktop\3. General Configuration\File Sharing"
# Disable network items
@@ -32,6 +33,8 @@ Get-NetFirewallRule | Where-Object {
reg import "$networkDiscoveryConfigPath\Network Navigation Pane\Disable Network Navigation Pane (default).reg" | Out-Null
+reg import "$fileSharingConfigPath\Give Access To Menu\Give Access To Menu Disable (default).reg" | Out-Null
+
if ($Silent) { exit }
Write-Host "Completed!" -ForegroundColor Green
diff --git a/src/playbook/Executables/AtlasModules/Scripts/ScriptWrappers/EnableFileSharing.ps1 b/src/playbook/Executables/AtlasModules/Scripts/ScriptWrappers/EnableFileSharing.ps1
index ffb46772df..1c743d8637 100644
--- a/src/playbook/Executables/AtlasModules/Scripts/ScriptWrappers/EnableFileSharing.ps1
+++ b/src/playbook/Executables/AtlasModules/Scripts/ScriptWrappers/EnableFileSharing.ps1
@@ -41,6 +41,11 @@ if ($LASTEXITCODE -eq 1) {
reg import "$([Environment]::GetFolderPath('Windows'))\AtlasDesktop\3. General Configuration\File Sharing\Network Navigation Pane\User Network Navigation Pane choice.reg" | Out-Null
}
+choice /c:yn /n /m "Would you like to restore the 'Give access to' context menu in Explorer? [Y/N] "
+if ($LASTEXITCODE -eq 1) {
+ reg import "$([Environment]::GetFolderPath('Windows'))\AtlasDesktop\3. General Configuration\File Sharing\Give Access To Menu\Give Access To Menu Enable.reg" | Out-Null
+}
+
Write-Host "Completed!" -ForegroundColor Green
Write-Host "Press any key to exit... " -NoNewLine
$Host.UI.RawUI.ReadKey('NoEcho,IncludeKeyDown') | Out-Null
From e0b4ad9db99051aad315047fa642066939797c71 Mon Sep 17 00:00:00 2001
From: he3als <65787561+he3als@users.noreply.github.com>
Date: Sun, 14 Jul 2024 01:15:11 +0100
Subject: [PATCH 12/57] fix: new sxsc changes
---
.github/workflows/apbx.yaml | 9 ++++++---
1 file changed, 6 insertions(+), 3 deletions(-)
diff --git a/.github/workflows/apbx.yaml b/.github/workflows/apbx.yaml
index 6bc74d0a71..56502e5c36 100644
--- a/.github/workflows/apbx.yaml
+++ b/.github/workflows/apbx.yaml
@@ -69,6 +69,9 @@ jobs:
Write-Output "Installing dependencies..."
pip install -r requirements.txt | Out-Null
+ Write-Output "Making certificate..."
+ $thumbprint = .\make-cert.ps1
+
$atlasSrcPath = '..\Atlas\src\'
$packagePath = "$atlasSrcPath\playbook\Executables\AtlasModules\Packages"
mkdir $packagePath -EA 0 | Out-Null
@@ -84,10 +87,10 @@ jobs:
Write-Output "Generating package files..."
python sxsc.py
- if ($LASTEXITCODE -ne 0) { exit 1 }
+ if ($LASTEXITCODE -ne 0) { throw "sxsc.py didn't return 0!" }
Write-Output "Building package..."
- .\build.bat
+ .\start-build.ps1 -Thumbprint $thumbprint
Write-Output "Copying package to AtlasModules..."
Get-ChildItem -File -Recurse -Filter *.cab | ForEach-Object {
@@ -95,7 +98,7 @@ jobs:
}
Write-Output "Cleaning up..."
- .\clean.bat
+ .\clean.ps1
}
working-directory: ..\sxsc
if: env.runSxsc == 'true'
From 208e66bbe5a09752c972c3662a826687f9035816 Mon Sep 17 00:00:00 2001
From: he3als <65787561+he3als@users.noreply.github.com>
Date: Sun, 14 Jul 2024 01:16:08 +0100
Subject: [PATCH 13/57] refactor: test CI
---
src/sxsc/regenAllConfigs | 0
1 file changed, 0 insertions(+), 0 deletions(-)
create mode 100644 src/sxsc/regenAllConfigs
diff --git a/src/sxsc/regenAllConfigs b/src/sxsc/regenAllConfigs
new file mode 100644
index 0000000000..e69de29bb2
From 7d4f0b7035255960b7dc0cb41bc4b6809564aad2 Mon Sep 17 00:00:00 2001
From: he3als <65787561+he3als@users.noreply.github.com>
Date: Sun, 14 Jul 2024 01:16:52 +0100
Subject: [PATCH 14/57] fix(apbx): push paths
---
.github/workflows/apbx.yaml | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)
diff --git a/.github/workflows/apbx.yaml b/.github/workflows/apbx.yaml
index 56502e5c36..e7380fc35a 100644
--- a/.github/workflows/apbx.yaml
+++ b/.github/workflows/apbx.yaml
@@ -3,7 +3,7 @@ name: Create and Validate Atlas Playbook
on:
push:
paths:
- - "src/playbook/**"
+ - "src/**"
- "**/*.yaml"
- "**/*.yml"
From 29ac552217177e9f9bd07d30d8bc866fd189a775 Mon Sep 17 00:00:00 2001
From: he3als <65787561+he3als@users.noreply.github.com>
Date: Sun, 14 Jul 2024 01:23:31 +0100
Subject: [PATCH 15/57] refactor: test CI (attempt 2!)
---
src/sxsc/regenAllConfigs | 1 +
1 file changed, 1 insertion(+)
diff --git a/src/sxsc/regenAllConfigs b/src/sxsc/regenAllConfigs
index e69de29bb2..569cf523b5 100644
--- a/src/sxsc/regenAllConfigs
+++ b/src/sxsc/regenAllConfigs
@@ -0,0 +1 @@
+:3
From bf84637f1e068fc93a3e24cb48af6f69fc13e1e0 Mon Sep 17 00:00:00 2001
From: atlasos-admin <141822421+atlasos-admin@users.noreply.github.com>
Date: Sun, 14 Jul 2024 00:24:21 +0000
Subject: [PATCH 16/57] feat: auto-update CAB packages (29ac5522)
---
...er-Package31bf3856ad364e35amd644.0.0.0.cab | Bin 43798 -> 43674 bytes
...er-Package31bf3856ad364e35arm644.0.0.0.cab | Bin 52271 -> 52196 bytes
...ry-Package31bf3856ad364e35amd644.0.0.0.cab | Bin 33791 -> 33741 bytes
...ry-Package31bf3856ad364e35arm644.0.0.0.cab | Bin 37174 -> 37098 bytes
src/sxsc/regenAllConfigs | 1 -
5 files changed, 1 deletion(-)
delete mode 100644 src/sxsc/regenAllConfigs
diff --git a/src/playbook/Executables/AtlasModules/Packages/Z-Atlas-NoDefender-Package31bf3856ad364e35amd644.0.0.0.cab b/src/playbook/Executables/AtlasModules/Packages/Z-Atlas-NoDefender-Package31bf3856ad364e35amd644.0.0.0.cab
index 3fe00b7a77d2ca08a8afb3b7a00453f77ab4338d..2ca766d3e25359cfc813e8b799837c67026cbb89 100644
GIT binary patch
literal 43674
zcmcG130#fs_I5;xh@>=-DMf=lKYOQvjDVRa?$>+1Z~OnhbAAWEYWJ*r-RoZKTGzVn=WH@vwN?oJ6BkeX
zDI~P|&%cC($Bh%ZCNx1PjU^-`^~cwy|M4^5ME>;y@RydEkkCY-aYCN9|NdH!#bn`m
zLY}T1)C1RW@^lh1JRtP1Z~x_680sN(V4RRp$vfhce|`&f;xK4C+;Pm)&CbI|-3fK{
zLfvq6FFR+Bi9NcXOmCWW+nREuqp)zPVmA-?@WYFmv@FfbO0so@X|NL`@
zvx_sn11Do-l)>R(Y@CVU6qbe)>TJiw-93avgkiN^{Le>OG@MDnsTj(|xhT%1kP#Z4
zi_qB&ghZt?xMUiOgkT)5pk}bhRGfw~afC!cm~0+1&VU;XKJuHvziM^VNkhZV+0Mhx
z#hLJhtD}pL6YlIGpcxD>0--Z$95$0hp|Kfb-jD%rwDj28GMT>108@L8q~3D27wGY!-*cA@g`+FLGrt+X@P<0>Y-gRtj!oX0B!lF?i)JQCh%ci3gHqN17WGYIb
zvB-21gHA#aj(}#6VbM$yg@Rz@KSFEF3~yM!;{d-IzgoY$ovpiokEJn~EZ99RlS@ZY
z8pgBwVOag!LH@@gD4C42a4rcYQ|Yj71|7vPoXeqM9E3w9F;Fs%giy##0nI=#ltQPH
zaT1*ahm3`ct=dIAsg^4e*~6q^^^a(
z2%V0QIVh7#qcGve5hjJgK{+%M%H)zTIu#*PIb0UPrU_^UiZMA9I5;SS!l5z9e9N~O
z9W%qr#S1dx|Jw4o6bx3urIXoknwj)5w-d{+hCKf7O#J6_NjSp7$p}Kl$QVjvaM>g>
zgU!PK2w5hJ$>g#)I7EY>%V%QXJrp4^F%p-WkmaJe*;jj?bl!a*PmsbdyQf+T1%k>3I~mBB(G+z~dJ0#U$$l7KNu;2sKx%cjwo
z3=AQW=oG4eaX`fpltg8-F%lEfEQXDlK{&!{(wG_lmpJ%sN03-7E`z}(F)%8^rE;KR
z|GPF4j(8!)Zvg~68FCiJp)(MurX-9)rO;{M1TOJK3KjlAp>r96CS?u{=dx&A8jHhX
zQ#c6EfgoyQyZD$H{}2(VtA>UfN8Qeu?c)9WwUI<&5S1SiJcr4IY(M4=qBeR><2M6m
zFsXEm4LJfQN&$p2gGFIexGV=YK6LB{|fkZ~p(<sW{3LcBgWYG{78R3kXF$cWyUWVTcCXq8B9Oz^kjn1Z_ER0G+DO3`h
zfph3kJsGge7>kMsxG9joxfCwMDaIjFnH-)FO#}->k8~7eT(1KPEoCrobz&ARJ!$nv;5c(&S(T(%@pUR*h
zWIB~X!)bI1lS79*hj1u#Hj7HZP?Ulp6odvaiV1CuKz$8`$;8=g293$0lgNKT^2FlT
zFB&uBAF9W1EuKr_G7&C#fW^hxEEdns6N@iW;(sc}V6&MduoFe82!(~ff5`}m#=xNP
zkswRJKR7HZOVF%d5R$~=`ZGyb7s{JHqwE}T%f*??Th2!jO+
zVe(`pqN&tc%Kv;64hf6KVbL%K3ui%T0Mvnz5i*;Dq9g$2kXJ|)GF8w6Kw_g*6iN`r
z;*zKw5)YIj+@PmEX2ySwf!}rmlg0orj8jn*;)25qs0lZeXz)KDhjK>ZkfCX3Qs^9n
zf)a5+AZiAkC^BRw7lGPKCJA^H5Gskwrcf|Qs#FSv!V?YtU_m)~%#44C23toLHtML3
zxj1v}1Z^s~fC(uyCWXeqQ96^&b0UPn2kWT(52v%}G!ln|z;U3_0Y%|7z|d?a3ONC1
zK|e&rs3`Q?sDM6TqbxW_D2bD*c9&=_>U3u8&)2v|_A$#2Ggb-{0+2{M~Or2_J!(@>NQ$a>5Qad3u_7QYo3
z6%ZuOWx|JO2#%0ha2`;E#iT=L33UOZL!N|eBj}kRlPGYsm;lGPOq9*x0W3$sf^E9|
zX8c!Y{620%5C)abgeu3xa1x~YF>g!-Z@gW>Zw8l%leu&TFiH$Af&hHxav3CyO~Kh1
zg9gz8+e;^rs1yN10}dMl!+`gKJPUx9CqmDG1)o>(oAC>8{BK}t28D?sbOdNbHjtGl
zPok0oZv?I3H-pAvGH?`NG#ff?7IYavJfSGYVWB9&O#p+#VRNB;2ej{-*xQXA4
z|KE$2pT(Q7PJjie#{6dd!Vwx89_s({!EfhHXdRgdU|J^R
zPe9B(XG0RavD}p33@QW>^qOoIIDrMYg2{!36XmkWB!~+ruXF?j)J+%E8}NJ-;7^+!}&i41m@uw04>4i-c$~>(li#Z
zkI-z>cs7OL=<411&47Uv3rC@&hp`j@4FX$nfO{ndw9s3_q<{j=41x4a1SwFg)d
z1n?Fa=gAuc))XSRs=ti?|5i_3xLik=^TPc5Hy{>ZA{4e3Y5@xYP{5Ns39K1F3|s&5
zbPfq+Q790s{ozG-}kO2S)Aa1A-bTY;fn7`&glLi9-
zl+FNe(m6a02H^)uV*3046a~NU2Mpvuz%4*!!zj=%jBNzrhp@B!2GF3UQmIT5%&!n2
z4uDr9KFi>M3V_4{SD?@_q8MG!A_>zxC^Rq?`Gc3?g$zU*xEMZW#y>O||2hroPOg}v
z9f1}+yaa7Cs4$!Y;*`lIA&{GSz>^qwLXjA@{v{-#4S=GK(Wnd(XzO77Kqqm4{bsXJ
zoC$yh*a;~32wl)t3;0_uokoTTW7C;9FJDM_LgnI^8UH;m{7*aq+9m`j8G=~@3X%s@
z6P`#WAnjj*5@taliJ`F&plJc?P)TGe0|8yg9}*{!$pIe?gd2@5;D*pZdIlXln+my>
z%VqK;YNA4A$Bdcre~k$@4_Cnh0yG^U)1jcSHqblq%5;d?4kMQT`3#Usa;XGu0z5oS
zdZ8O&kwMM@@)!mQ`T~&pffwk4Dg{vxpkcs+5Cdcwaq#R0;RdY)elz|lRYE|x@4*Cj
z0}dbsrd%Y91d=&WO^#&;nr*uJN1kH#a!jfojyvZVwPrf<77~QcMceD>|7D
zEh5jO$AJfQuk$||_!R~hhgE`RmILxJE{98Df*gcIcw
zECuv|7=TEiX(>3F457qe;y`2w=mE$fK!&mCU<5HKY(W-7?wH{)*}_`Ur{ppzv*
zC%|BWYL?EccOWnmJ&XUbz{QgQ8*o?@pq>bk9R)_7Bqj|A1}YR!qHI8}09~VCdIvHE
z2N^b(3D_HIFqemfBN|Cc4!;@yw0dJS2l4ET`?!NA2~8C*JagDgRt1}2aTY!FRACWXYvJK{VH7G&r0
zoAHlMfONod+vCOkjluv;JjkFaz!U&gkF$9im&xD?&3t|v$e@ydGY<+d5>yA6{Xl@g
zupfoFCj<%bx=>~~Y`UQJ5eRaansPyo%7!+A$|J$BodCN2B7QUe<_b?c0b>9K$tUzG
za1_{ZpMV!Me}jW?qlEv7P`5zR2x?o93xo254cse`@f0we$|Ra+IyBORfq2_`-n_B5qHB5)Y(XyeOGixb#E*C!%m=f(EG%xN;a$
zL6-}CBbyCe7zu2K5MZJ(!9q!bW&j402{ThTO)vzdff9Wz4HL}8w8vv+`~xELwEOKw
zfr|p~!v!PMoGAxvPn%7OtSz*)f5bdXLX2u33Vkp{DDfQm2+
z7I5$B6qsUw86X*^K;Oxeh6op&s2VflANT&ZT|lBCR6sYdu`B>HWF8WWaKYqi{$~RK
zCY%6AoW)^6sDluI45|-8&j7Zw7+jQsL*pRmfDV{<22KM;iVjjA7|D!90YRgQKN~aS
zuTkKRI|G&aM|Y(DdoTdBMJzTINL@(kROnjAo-70oI8w*|WYDX^JsUW#a9x6+OhBlG
zbLk*|g6S>HXMpwLP(cDCC=i0NJxuhV^@fTF3?)yeM$~{Kjr?Z(JMsO(0lys!&>Bzy
z+M`rDhmb+?@CQT<5O3zU0hIED>H(k+$_23yP+l-?ptC^OL6DJb_zDT?Dp^n-g-xfy
zaR7k?6S58H0LFIYC|Drt@!2LE3@Z<~x#+DeEGiC-Ma#`_)-wenOBm{@CEsG6k8OjA&F#W)9
z1h6EK))}D6!9k1yq5~+pY$zPi^a8^O(swGth9n`VFF@u4G$q`&0=g1VD^KY@1r}`Y
zZC2piLD>ib
zOOS9t9}U+fK_dt9c{Yg+B&>i*0(ue9#h^ecks(HL9y16kMfeN98Drk~_W|KRl5qZ8
zd^bQgM@-q0lE&}CYSKWv{8ODKphD5
zB52|WH6)N!ko)K;;0utxkbsYen#=&+Uf^~EW?pav5ki6m1T4-Y&m*Q&i^oGg{|oc?
zOKsD}V2#cKuuwT8v{
z%^QL?
zhRk$+Gk)ofKe*|C`+|Vw0%uW>B#<#Ka6uSwORzIz$y@=vkvfCl3gXkWl|1{7-p*%I^Gk7Jxy8Spcw5K=2|k0~he5fDj0U
z`U=;+ffk0llVc%DNDmgxh(i>1=|7_b(cX!;~{Wsna1A|LY
zy8uTGvku6DJl-HG?63;I83fG-HwTETIRG(W#0l5}z&!{tiN2cxpcLLT!lVe=r@+Nv
z*c1S67+f+2-Rjt;TmWy(QsXz{m)?Mv5P7@eZctt^{7((Gpvas`gBRxDpsWYpl?5&7
zm>G)TjWl(BGoW%n`UI3gs1D&xIdDw{I2pLq1z8owC2)_41Wla43R@D$2jQg^Oe%&U
zWQepeGl;J335nl~UwY#|KKSjEf&y~|cP&8|0c{3~@#uAkuFZ|YZw5??0Im)`i-Ik5w=
zjH9ESEfFFDrZ2!7kPAT@28=LVw&U3p0)3GXelsA1;5HtF2i#l6P~a?~$${INa77MS
zRM=PssE|O8E~q!y;9+>X0Avh^Iu>ucMBohrO@1?e>5V`76nLMCE4*C_|E)JG!SMi+
zmjnbq=mJR?ANqQ=oZk#O6c9KeaM=d51yEH9&tQN+p&$`jODM2#>j8xN0&WUS1OeSb
zxhBDt5qQQ}Y!IThVI6)me(4S3ZUSUdPpGc{t}X(a0Vf?u1z@z{tp{+wfG0MjAT~l)
z@S6b>QQ`tH32r!`@nF?azP
znGVI4&VnoN&;^621ax}>ZVC{K#N9H=AN)F<#52Gl1Qh1$`OO&f#=p5Q)Ya7u7aV&6
zdq4tS1+MkN4Q-x*Eg_(&(&v9H(RqM81g>QejUC)kBqMOm1MnBjeK{;p?ZPc#pg{#a
z8FV%q0oe%!*k*W75AW-rh}BnY95aKzFZmy>9)-KzFz12miJQ@``KNd!7
z&`QEZPayi>9d#67xDYCg3qb(}EC@(TfEXfPBqHG6!|VG1)lh*)0huC<6~;~iF)CVV
zJZ1)eAM)4Lt7E&oAqq6$f8I{0owI;uz&$LS!GiHEY$J?BdDEo(a?zz#=Y)asY@zy9=)~6Ig&ufm+OjmJYaAh%??%I-$9(-^y>sFHVAn
z#(#Y9+j#-rT|%djU{~Q@85u-=W1B*}acP%1zZuYR!22BuDLOG)W&eXilYf@SE{>Z@`4$-`D)yolrLqcWB&kK~D;FQt*~Y7Rabr
z02X<%Ch`8M?4A5(K&^#52{UOX2h_-rX(7g;Ifc%Y&IHv45W#SR6<(zvaBRS9|G=ei
z!5YSzysdHuya=@k<2U2)-uQhN0LW%w6xc~BsP#emH?|Xm;^LS+|Fc10LcCW1-pt1V
zIuC?*Al0V=$^z99yl4+5Yw*i}dk_>vpb(D$bD{LYC3TSRjG19x(s^>aw9x)l8(M6{
zLblg=4v6OjPi+jc^0bkbz%rybL(zFVLMj)8ucZw%F66**yY#5MtXBNgkMo?4N%#
z?ELf<(<~>41tliklRI{1-mc<9n*xP`#Za+R>A`+G#1lH35}vBm-Z_@M)bEE#OG7ZeGyQ6j%XXwf`h`v6vag-dg{A$u5fasEZ7=A|Lw>Tp
zLqm`9dtOl*3#xt=>~>98J5f+#^Yd%r%0l#wPLq#djzydXj{|LdQx%W;Uw{C0}>yQ
zQ=z@GOYL@j7drT|#?jNueA$5d_9tyo4KK{YC8q9l@iO1mT6^)N!uAIZA_gvZR|eVS
zXblV`RE51-IJ8+MBz4}Iz6WeGGZ{R$v!cznX|a6nUWU~MZTw{b@^#^-P3m*Dq-Wf?
z@jcA9aG&La*goR`^1Ii#u~^b{=`$~H&bN*8)RWzC`Jn5PnE@wX6odpM6vocDWIlBu
zL-pLP2NfMX2FS&>C0Xy=MpYX|>Q60Xn#hs-Z}lC0@XB4M`Z?>O*1+=U{^?=l17V-;
z$wnUfLa`T0JnJ=oxoYsS1DaJ^4`$zWf3kQZWmmb;ffJYV%`ewF)QDTQPbC6|HFj&9o|9*JeJ^?&1b_!NeR_0#`YQp
zr7j8ct*>jDPpuC+uUfBqc0uRWnk_}!Zce2bOqLcaSRuQ}eATt%@D#>&@en-Ue2FH&)L$&~V04<)nG*ctY0jr{wp>I9qc
z#Ue^G<2D*8z2l>-EzYwS=k>eIM%L9z
zlQcyyIjS6ZtSHryF^#=es$R5j<$5E}_-wi4sbur0@CCvp-gcR18z-!fKcBqh*{+Rl
zWZ&tY$q8T^**36x!IZN24f0pg)?{fNo6FKYck1*OliBOhbMWh}?so1=&v;uQT)8Xh
z%-{*FM}^~pCLBH#ZppGntQ_uI8PAt89nssKblGP2bZ^(#DXkNvW2_dHB+XfqOsvi6
zlfw7$oaAwtZxtLCE>JZIQ(An3<(65oc9PN!!to+i?_WBttY1%#kg{;@2=Yx-n0~Q|
zaf!60
z_B#};k}s(yO&luGzE$&FcXCnrhwR0RuW6c0+xX2Uvx#cEb*bIe6Oz$MvUQb-<_EI_
z&(1bFyoUKLq*Td8Yw5gomsiAgj>ygRG&XlTLxi`+nVrs)EgLJ`^zCcHR#+`OcKF@4
zQ+H#PwC=SIbc^L(!iNL5Ti-l$
z$D+hM>+?p{%uthK(-YFm&*j=E5zgNxJv(9bP0P1uHe~fIkXrO{6pKe={@
z_w4X32X4M;
zb@kGxFN2MILn?}HXHDZgZTXzrYy}_RI;rz6Mlu$;l6IH&*iUC?U()J&<83piCTzRY
zw{>d$VK8a8cNd
zrgcZh9p9Y9Oqw&%wu_xAmpmu$(3I!SnS==MwMDaa+uF4W;NS7EfL?`RVi3MwoxU7KJ`(s}}JgYxl?~-#0#BH>{>!u&ZmGgt*l6Na0Zx>zP#oQyA
zX;`MP=?~W&?9>}S$0B&$<^{XV*01%+tdTb=jFhIV32eyG=zw2uY<<_R@_Wl{^=vPz
zr6sEjrMQwCmBYSHS{Zxou{(st&U>-@jg5V0?prYF!5U0Y|B2F66N?)&j~{s3HDC_D
z(fhoi)*~Xz=wYq%+*ouisjmctn6bzmw
zS|aP`o;x0Op^HdJ$NY|%$R(9KZhPZi+)~6^Kew2>bI;oCtE7y#_N0OBrAtYMSk)vXWpTQ5y$CaH!@-JslUc^hWlEUmlXJO{tY@h*Tl4NK(7h{XELfkxrqs93
z8}GYvdB?2q(iQEK4b?4FxeULf^TbzB)}9h-(8}76t-^(6i)A9te$H`D%!OZYOz~pU
zJjM7)4{fNWSJtmII>s;%+vsHJp=o`~#0Hk9eQ~Yz60&Vrr07L4gZ41XiOkZ9RIoV8ar-Mvows4z7JR9#BFZH%YQ0*
z_GR{o!{V3k$+Lgbu`&Ol@QuYbTI{FOPo2#_X%?<>`G>e6-9l9=VE(SPrmq#YT)VAu
zOf9yNtJxxVQ(DS<$DL`$uyQRKdUMcfi
zSK}W?W`)yg%yc>vrITmPTF|FD#V%|^=uF>@2@_^_NG)Ey#ZvweXX)TMa1Q%s=6SWi
znWyI^ZhP62D;arkO*&b0RV?%A%cbiaU~BDfy#8RiZMuh)%LL+bCwu}Rgp(`K1#K^6(Lcx;e_^L8eKmaCLse>*
zS$nmuWK`Wj$ASLqlbXEm23%gyp!Gf3@K$|bHs-bZm}AahSbW%{@`@w_+T%n<=XkS4
z@3oF;>Hw4+edg}2^W!A??S+drX-Bfo*QcLn4lv);+U6H*Dht0PlcwXTvBT}soH-;*
zN2>q5w&>6ALo-VopM>tl?suJSmDfe9KF`6Ho8<-1fuDWvQ}`vMaqrLjCpDa3RFn5S
zn$tF8gQB8W{f_PQ(F&!(p22}nH=PosHyRu|C3jEee!}LK!qT